var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
  get: (a5, b3) => (typeof require !== "undefined" ? require : a5)[b3]
}) : x)(function(x) {
  if (typeof require !== "undefined") return require.apply(this, arguments);
  throw Error('Dynamic require of "' + x + '" is not supported');
});
var __esm = (fn, res) => function __init() {
  return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
};
var __commonJS = (cb, mod3) => function __require2() {
  return mod3 || (0, cb[__getOwnPropNames(cb)[0]])((mod3 = { exports: {} }).exports, mod3), mod3.exports;
};
var __export = (target, all5) => {
  for (var name in all5)
    __defProp(target, name, { get: all5[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod3, isNodeMode, target) => (target = mod3 != null ? __create(__getProtoOf(mod3)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod3 || !mod3.__esModule ? __defProp(target, "default", { value: mod3, enumerable: true }) : target,
  mod3
));
var __toCommonJS = (mod3) => __copyProps(__defProp({}, "__esModule", { value: true }), mod3);

// ../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs
var tslib_es6_exports = {};
__export(tslib_es6_exports, {
  __addDisposableResource: () => __addDisposableResource,
  __assign: () => __assign,
  __asyncDelegator: () => __asyncDelegator,
  __asyncGenerator: () => __asyncGenerator,
  __asyncValues: () => __asyncValues,
  __await: () => __await,
  __awaiter: () => __awaiter,
  __classPrivateFieldGet: () => __classPrivateFieldGet,
  __classPrivateFieldIn: () => __classPrivateFieldIn,
  __classPrivateFieldSet: () => __classPrivateFieldSet,
  __createBinding: () => __createBinding,
  __decorate: () => __decorate,
  __disposeResources: () => __disposeResources,
  __esDecorate: () => __esDecorate,
  __exportStar: () => __exportStar,
  __extends: () => __extends,
  __generator: () => __generator,
  __importDefault: () => __importDefault,
  __importStar: () => __importStar,
  __makeTemplateObject: () => __makeTemplateObject,
  __metadata: () => __metadata,
  __param: () => __param,
  __propKey: () => __propKey,
  __read: () => __read,
  __rest: () => __rest,
  __rewriteRelativeImportExtension: () => __rewriteRelativeImportExtension,
  __runInitializers: () => __runInitializers,
  __setFunctionName: () => __setFunctionName,
  __spread: () => __spread,
  __spreadArray: () => __spreadArray,
  __spreadArrays: () => __spreadArrays,
  __values: () => __values,
  default: () => tslib_es6_default
});
function __extends(d3, b3) {
  if (typeof b3 !== "function" && b3 !== null)
    throw new TypeError("Class extends value " + String(b3) + " is not a constructor or null");
  extendStatics(d3, b3);
  function __() {
    this.constructor = d3;
  }
  d3.prototype = b3 === null ? Object.create(b3) : (__.prototype = b3.prototype, new __());
}
function __rest(s4, e4) {
  var t4 = {};
  for (var p3 in s4) if (Object.prototype.hasOwnProperty.call(s4, p3) && e4.indexOf(p3) < 0)
    t4[p3] = s4[p3];
  if (s4 != null && typeof Object.getOwnPropertySymbols === "function")
    for (var i5 = 0, p3 = Object.getOwnPropertySymbols(s4); i5 < p3.length; i5++) {
      if (e4.indexOf(p3[i5]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p3[i5]))
        t4[p3[i5]] = s4[p3[i5]];
    }
  return t4;
}
function __decorate(decorators, target, key, desc) {
  var c6 = arguments.length, r4 = c6 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d3;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r4 = Reflect.decorate(decorators, target, key, desc);
  else for (var i5 = decorators.length - 1; i5 >= 0; i5--) if (d3 = decorators[i5]) r4 = (c6 < 3 ? d3(r4) : c6 > 3 ? d3(target, key, r4) : d3(target, key)) || r4;
  return c6 > 3 && r4 && Object.defineProperty(target, key, r4), r4;
}
function __param(paramIndex, decorator) {
  return function(target, key) {
    decorator(target, key, paramIndex);
  };
}
function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
  function accept(f4) {
    if (f4 !== void 0 && typeof f4 !== "function") throw new TypeError("Function expected");
    return f4;
  }
  var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
  var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
  var _, done = false;
  for (var i5 = decorators.length - 1; i5 >= 0; i5--) {
    var context = {};
    for (var p3 in contextIn) context[p3] = p3 === "access" ? {} : contextIn[p3];
    for (var p3 in contextIn.access) context.access[p3] = contextIn.access[p3];
    context.addInitializer = function(f4) {
      if (done) throw new TypeError("Cannot add initializers after decoration has completed");
      extraInitializers.push(accept(f4 || null));
    };
    var result = (0, decorators[i5])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
    if (kind === "accessor") {
      if (result === void 0) continue;
      if (result === null || typeof result !== "object") throw new TypeError("Object expected");
      if (_ = accept(result.get)) descriptor.get = _;
      if (_ = accept(result.set)) descriptor.set = _;
      if (_ = accept(result.init)) initializers.unshift(_);
    } else if (_ = accept(result)) {
      if (kind === "field") initializers.unshift(_);
      else descriptor[key] = _;
    }
  }
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
  done = true;
}
function __runInitializers(thisArg, initializers, value2) {
  var useValue = arguments.length > 2;
  for (var i5 = 0; i5 < initializers.length; i5++) {
    value2 = useValue ? initializers[i5].call(thisArg, value2) : initializers[i5].call(thisArg);
  }
  return useValue ? value2 : void 0;
}
function __propKey(x) {
  return typeof x === "symbol" ? x : "".concat(x);
}
function __setFunctionName(f4, name, prefix) {
  if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
  return Object.defineProperty(f4, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
}
function __metadata(metadataKey, metadataValue) {
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}
function __awaiter(thisArg, _arguments, P, generator2) {
  function adopt(value2) {
    return value2 instanceof P ? value2 : new P(function(resolve4) {
      resolve4(value2);
    });
  }
  return new (P || (P = Promise))(function(resolve4, reject) {
    function fulfilled(value2) {
      try {
        step(generator2.next(value2));
      } catch (e4) {
        reject(e4);
      }
    }
    function rejected(value2) {
      try {
        step(generator2["throw"](value2));
      } catch (e4) {
        reject(e4);
      }
    }
    function step(result) {
      result.done ? resolve4(result.value) : adopt(result.value).then(fulfilled, rejected);
    }
    step((generator2 = generator2.apply(thisArg, _arguments || [])).next());
  });
}
function __generator(thisArg, body) {
  var _ = { label: 0, sent: function() {
    if (t4[0] & 1) throw t4[1];
    return t4[1];
  }, trys: [], ops: [] }, f4, y3, t4, g3 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
  return g3.next = verb(0), g3["throw"] = verb(1), g3["return"] = verb(2), typeof Symbol === "function" && (g3[Symbol.iterator] = function() {
    return this;
  }), g3;
  function verb(n6) {
    return function(v3) {
      return step([n6, v3]);
    };
  }
  function step(op) {
    if (f4) throw new TypeError("Generator is already executing.");
    while (g3 && (g3 = 0, op[0] && (_ = 0)), _) try {
      if (f4 = 1, y3 && (t4 = op[0] & 2 ? y3["return"] : op[0] ? y3["throw"] || ((t4 = y3["return"]) && t4.call(y3), 0) : y3.next) && !(t4 = t4.call(y3, op[1])).done) return t4;
      if (y3 = 0, t4) op = [op[0] & 2, t4.value];
      switch (op[0]) {
        case 0:
        case 1:
          t4 = op;
          break;
        case 4:
          _.label++;
          return { value: op[1], done: false };
        case 5:
          _.label++;
          y3 = op[1];
          op = [0];
          continue;
        case 7:
          op = _.ops.pop();
          _.trys.pop();
          continue;
        default:
          if (!(t4 = _.trys, t4 = t4.length > 0 && t4[t4.length - 1]) && (op[0] === 6 || op[0] === 2)) {
            _ = 0;
            continue;
          }
          if (op[0] === 3 && (!t4 || op[1] > t4[0] && op[1] < t4[3])) {
            _.label = op[1];
            break;
          }
          if (op[0] === 6 && _.label < t4[1]) {
            _.label = t4[1];
            t4 = op;
            break;
          }
          if (t4 && _.label < t4[2]) {
            _.label = t4[2];
            _.ops.push(op);
            break;
          }
          if (t4[2]) _.ops.pop();
          _.trys.pop();
          continue;
      }
      op = body.call(thisArg, _);
    } catch (e4) {
      op = [6, e4];
      y3 = 0;
    } finally {
      f4 = t4 = 0;
    }
    if (op[0] & 5) throw op[1];
    return { value: op[0] ? op[1] : void 0, done: true };
  }
}
function __exportStar(m3, o5) {
  for (var p3 in m3) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(o5, p3)) __createBinding(o5, m3, p3);
}
function __values(o5) {
  var s4 = typeof Symbol === "function" && Symbol.iterator, m3 = s4 && o5[s4], i5 = 0;
  if (m3) return m3.call(o5);
  if (o5 && typeof o5.length === "number") return {
    next: function() {
      if (o5 && i5 >= o5.length) o5 = void 0;
      return { value: o5 && o5[i5++], done: !o5 };
    }
  };
  throw new TypeError(s4 ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
function __read(o5, n6) {
  var m3 = typeof Symbol === "function" && o5[Symbol.iterator];
  if (!m3) return o5;
  var i5 = m3.call(o5), r4, ar = [], e4;
  try {
    while ((n6 === void 0 || n6-- > 0) && !(r4 = i5.next()).done) ar.push(r4.value);
  } catch (error) {
    e4 = { error };
  } finally {
    try {
      if (r4 && !r4.done && (m3 = i5["return"])) m3.call(i5);
    } finally {
      if (e4) throw e4.error;
    }
  }
  return ar;
}
function __spread() {
  for (var ar = [], i5 = 0; i5 < arguments.length; i5++)
    ar = ar.concat(__read(arguments[i5]));
  return ar;
}
function __spreadArrays() {
  for (var s4 = 0, i5 = 0, il = arguments.length; i5 < il; i5++) s4 += arguments[i5].length;
  for (var r4 = Array(s4), k3 = 0, i5 = 0; i5 < il; i5++)
    for (var a5 = arguments[i5], j = 0, jl = a5.length; j < jl; j++, k3++)
      r4[k3] = a5[j];
  return r4;
}
function __spreadArray(to, from, pack) {
  if (pack || arguments.length === 2) for (var i5 = 0, l4 = from.length, ar; i5 < l4; i5++) {
    if (ar || !(i5 in from)) {
      if (!ar) ar = Array.prototype.slice.call(from, 0, i5);
      ar[i5] = from[i5];
    }
  }
  return to.concat(ar || Array.prototype.slice.call(from));
}
function __await(v3) {
  return this instanceof __await ? (this.v = v3, this) : new __await(v3);
}
function __asyncGenerator(thisArg, _arguments, generator2) {
  if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
  var g3 = generator2.apply(thisArg, _arguments || []), i5, q = [];
  return i5 = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i5[Symbol.asyncIterator] = function() {
    return this;
  }, i5;
  function awaitReturn(f4) {
    return function(v3) {
      return Promise.resolve(v3).then(f4, reject);
    };
  }
  function verb(n6, f4) {
    if (g3[n6]) {
      i5[n6] = function(v3) {
        return new Promise(function(a5, b3) {
          q.push([n6, v3, a5, b3]) > 1 || resume(n6, v3);
        });
      };
      if (f4) i5[n6] = f4(i5[n6]);
    }
  }
  function resume(n6, v3) {
    try {
      step(g3[n6](v3));
    } catch (e4) {
      settle2(q[0][3], e4);
    }
  }
  function step(r4) {
    r4.value instanceof __await ? Promise.resolve(r4.value.v).then(fulfill, reject) : settle2(q[0][2], r4);
  }
  function fulfill(value2) {
    resume("next", value2);
  }
  function reject(value2) {
    resume("throw", value2);
  }
  function settle2(f4, v3) {
    if (f4(v3), q.shift(), q.length) resume(q[0][0], q[0][1]);
  }
}
function __asyncDelegator(o5) {
  var i5, p3;
  return i5 = {}, verb("next"), verb("throw", function(e4) {
    throw e4;
  }), verb("return"), i5[Symbol.iterator] = function() {
    return this;
  }, i5;
  function verb(n6, f4) {
    i5[n6] = o5[n6] ? function(v3) {
      return (p3 = !p3) ? { value: __await(o5[n6](v3)), done: false } : f4 ? f4(v3) : v3;
    } : f4;
  }
}
function __asyncValues(o5) {
  if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
  var m3 = o5[Symbol.asyncIterator], i5;
  return m3 ? m3.call(o5) : (o5 = typeof __values === "function" ? __values(o5) : o5[Symbol.iterator](), i5 = {}, verb("next"), verb("throw"), verb("return"), i5[Symbol.asyncIterator] = function() {
    return this;
  }, i5);
  function verb(n6) {
    i5[n6] = o5[n6] && function(v3) {
      return new Promise(function(resolve4, reject) {
        v3 = o5[n6](v3), settle2(resolve4, reject, v3.done, v3.value);
      });
    };
  }
  function settle2(resolve4, reject, d3, v3) {
    Promise.resolve(v3).then(function(v4) {
      resolve4({ value: v4, done: d3 });
    }, reject);
  }
}
function __makeTemplateObject(cooked, raw) {
  if (Object.defineProperty) {
    Object.defineProperty(cooked, "raw", { value: raw });
  } else {
    cooked.raw = raw;
  }
  return cooked;
}
function __importStar(mod3) {
  if (mod3 && mod3.__esModule) return mod3;
  var result = {};
  if (mod3 != null) {
    for (var k3 = ownKeys(mod3), i5 = 0; i5 < k3.length; i5++) if (k3[i5] !== "default") __createBinding(result, mod3, k3[i5]);
  }
  __setModuleDefault(result, mod3);
  return result;
}
function __importDefault(mod3) {
  return mod3 && mod3.__esModule ? mod3 : { default: mod3 };
}
function __classPrivateFieldGet(receiver, state, kind, f4) {
  if (kind === "a" && !f4) throw new TypeError("Private accessor was defined without a getter");
  if (typeof state === "function" ? receiver !== state || !f4 : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
  return kind === "m" ? f4 : kind === "a" ? f4.call(receiver) : f4 ? f4.value : state.get(receiver);
}
function __classPrivateFieldSet(receiver, state, value2, kind, f4) {
  if (kind === "m") throw new TypeError("Private method is not writable");
  if (kind === "a" && !f4) throw new TypeError("Private accessor was defined without a setter");
  if (typeof state === "function" ? receiver !== state || !f4 : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
  return kind === "a" ? f4.call(receiver, value2) : f4 ? f4.value = value2 : state.set(receiver, value2), value2;
}
function __classPrivateFieldIn(state, receiver) {
  if (receiver === null || typeof receiver !== "object" && typeof receiver !== "function") throw new TypeError("Cannot use 'in' operator on non-object");
  return typeof state === "function" ? receiver === state : state.has(receiver);
}
function __addDisposableResource(env, value2, async) {
  if (value2 !== null && value2 !== void 0) {
    if (typeof value2 !== "object" && typeof value2 !== "function") throw new TypeError("Object expected.");
    var dispose, inner;
    if (async) {
      if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
      dispose = value2[Symbol.asyncDispose];
    }
    if (dispose === void 0) {
      if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
      dispose = value2[Symbol.dispose];
      if (async) inner = dispose;
    }
    if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
    if (inner) dispose = function() {
      try {
        inner.call(this);
      } catch (e4) {
        return Promise.reject(e4);
      }
    };
    env.stack.push({ value: value2, dispose, async });
  } else if (async) {
    env.stack.push({ async: true });
  }
  return value2;
}
function __disposeResources(env) {
  function fail(e4) {
    env.error = env.hasError ? new _SuppressedError(e4, env.error, "An error was suppressed during disposal.") : e4;
    env.hasError = true;
  }
  var r4, s4 = 0;
  function next() {
    while (r4 = env.stack.pop()) {
      try {
        if (!r4.async && s4 === 1) return s4 = 0, env.stack.push(r4), Promise.resolve().then(next);
        if (r4.dispose) {
          var result = r4.dispose.call(r4.value);
          if (r4.async) return s4 |= 2, Promise.resolve(result).then(next, function(e4) {
            fail(e4);
            return next();
          });
        } else s4 |= 1;
      } catch (e4) {
        fail(e4);
      }
    }
    if (s4 === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
    if (env.hasError) throw env.error;
  }
  return next();
}
function __rewriteRelativeImportExtension(path3, preserveJsx) {
  if (typeof path3 === "string" && /^\.\.?\//.test(path3)) {
    return path3.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function(m3, tsx, d3, ext, cm) {
      return tsx ? preserveJsx ? ".jsx" : ".js" : d3 && (!ext || !cm) ? m3 : d3 + ext + "." + cm.toLowerCase() + "js";
    });
  }
  return path3;
}
var extendStatics, __assign, __createBinding, __setModuleDefault, ownKeys, _SuppressedError, tslib_es6_default;
var init_tslib_es6 = __esm({
  "../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs"() {
    extendStatics = function(d3, b3) {
      extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d4, b4) {
        d4.__proto__ = b4;
      } || function(d4, b4) {
        for (var p3 in b4) if (Object.prototype.hasOwnProperty.call(b4, p3)) d4[p3] = b4[p3];
      };
      return extendStatics(d3, b3);
    };
    __assign = function() {
      __assign = Object.assign || function __assign2(t4) {
        for (var s4, i5 = 1, n6 = arguments.length; i5 < n6; i5++) {
          s4 = arguments[i5];
          for (var p3 in s4) if (Object.prototype.hasOwnProperty.call(s4, p3)) t4[p3] = s4[p3];
        }
        return t4;
      };
      return __assign.apply(this, arguments);
    };
    __createBinding = Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    });
    __setModuleDefault = Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    };
    ownKeys = function(o5) {
      ownKeys = Object.getOwnPropertyNames || function(o6) {
        var ar = [];
        for (var k3 in o6) if (Object.prototype.hasOwnProperty.call(o6, k3)) ar[ar.length] = k3;
        return ar;
      };
      return ownKeys(o5);
    };
    _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
      var e4 = new Error(message);
      return e4.name = "SuppressedError", e4.error = error, e4.suppressed = suppressed, e4;
    };
    tslib_es6_default = {
      __extends,
      __assign,
      __rest,
      __decorate,
      __param,
      __esDecorate,
      __runInitializers,
      __propKey,
      __setFunctionName,
      __metadata,
      __awaiter,
      __generator,
      __createBinding,
      __exportStar,
      __values,
      __read,
      __spread,
      __spreadArrays,
      __spreadArray,
      __await,
      __asyncGenerator,
      __asyncDelegator,
      __asyncValues,
      __makeTemplateObject,
      __importStar,
      __importDefault,
      __classPrivateFieldGet,
      __classPrivateFieldSet,
      __classPrivateFieldIn,
      __addDisposableResource,
      __disposeResources,
      __rewriteRelativeImportExtension
    };
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/errors.js
var require_errors = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/errors.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.SessionError = exports.RetryRequestError = exports.MissingRouteError = exports.CriticalError = exports.NonRetryableError = void 0;
    var NonRetryableError2 = class extends Error {
    };
    exports.NonRetryableError = NonRetryableError2;
    var CriticalError2 = class extends NonRetryableError2 {
    };
    exports.CriticalError = CriticalError2;
    var MissingRouteError2 = class extends CriticalError2 {
    };
    exports.MissingRouteError = MissingRouteError2;
    var RetryRequestError2 = class extends Error {
      constructor(message) {
        super(message ?? "Request is being retried at the user's request");
      }
    };
    exports.RetryRequestError = RetryRequestError2;
    var SessionError2 = class extends RetryRequestError2 {
      constructor(message) {
        super(`Detected a session error, rotating session... ${message ? `
${message}` : ""}`);
      }
    };
    exports.SessionError = SessionError2;
  }
});

// ../../node_modules/.pnpm/callsites@3.1.0/node_modules/callsites/index.js
var require_callsites = __commonJS({
  "../../node_modules/.pnpm/callsites@3.1.0/node_modules/callsites/index.js"(exports, module) {
    "use strict";
    var callsites2 = () => {
      const _prepareStackTrace = Error.prepareStackTrace;
      Error.prepareStackTrace = (_, stack2) => stack2;
      const stack = new Error().stack.slice(1);
      Error.prepareStackTrace = _prepareStackTrace;
      return stack;
    };
    module.exports = callsites2;
    module.exports.default = callsites2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/is-valid-identifier.js
var require_is_valid_identifier = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/is-valid-identifier.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var identifierRegex2 = /^[a-z$_][$\w]*$/i;
    var reservedSet2 = /* @__PURE__ */ new Set([
      "undefined",
      "null",
      "true",
      "false",
      "super",
      "this",
      "Infinity",
      "NaN"
    ]);
    exports.default = (string) => string && !reservedSet2.has(string) && identifierRegex2.test(string);
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/node/is-node.js
var require_is_node = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/node/is-node.js"(exports) {
    "use strict";
    var _a2;
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.default = Boolean((_a2 = process === null || process === void 0 ? void 0 : process.versions) === null || _a2 === void 0 ? void 0 : _a2.node);
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/infer-label.js
var require_infer_label = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/infer-label.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.inferLabel = void 0;
    var fs7 = __require("fs");
    var is_valid_identifier_1 = require_is_valid_identifier();
    var is_node_1 = require_is_node();
    var labelRegex2 = /^.*?\((?<label>.*?)[,)]/;
    var inferLabel2 = (callsites2) => {
      var _a2;
      if (!is_node_1.default) {
        return;
      }
      const functionCallStackFrame = callsites2[1];
      if (!functionCallStackFrame) {
        return;
      }
      const fileName = functionCallStackFrame.getFileName();
      const lineNumber = functionCallStackFrame.getLineNumber();
      const columnNumber = functionCallStackFrame.getColumnNumber();
      if (fileName === null || lineNumber === null || columnNumber === null) {
        return;
      }
      let content = [];
      try {
        content = fs7.readFileSync(fileName, "utf8").split("\n");
      } catch {
        return;
      }
      let line2 = content[lineNumber - 1];
      if (!line2) {
        return;
      }
      line2 = line2.slice(columnNumber - 1);
      const match = labelRegex2.exec(line2);
      if (!((_a2 = match === null || match === void 0 ? void 0 : match.groups) === null || _a2 === void 0 ? void 0 : _a2.label)) {
        return;
      }
      const token = match.groups.label;
      if ((0, is_valid_identifier_1.default)(token) || (0, is_valid_identifier_1.default)(token.split(".").pop())) {
        return token;
      }
      return;
    };
    exports.inferLabel = inferLabel2;
  }
});

// ../../node_modules/.pnpm/@sindresorhus+is@4.6.0/node_modules/@sindresorhus/is/dist/index.js
var require_dist = __commonJS({
  "../../node_modules/.pnpm/@sindresorhus+is@4.6.0/node_modules/@sindresorhus/is/dist/index.js"(exports, module) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var typedArrayTypeNames3 = [
      "Int8Array",
      "Uint8Array",
      "Uint8ClampedArray",
      "Int16Array",
      "Uint16Array",
      "Int32Array",
      "Uint32Array",
      "Float32Array",
      "Float64Array",
      "BigInt64Array",
      "BigUint64Array"
    ];
    function isTypedArrayName3(name) {
      return typedArrayTypeNames3.includes(name);
    }
    var objectTypeNames3 = [
      "Function",
      "Generator",
      "AsyncGenerator",
      "GeneratorFunction",
      "AsyncGeneratorFunction",
      "AsyncFunction",
      "Observable",
      "Array",
      "Buffer",
      "Blob",
      "Object",
      "RegExp",
      "Date",
      "Error",
      "Map",
      "Set",
      "WeakMap",
      "WeakSet",
      "ArrayBuffer",
      "SharedArrayBuffer",
      "DataView",
      "Promise",
      "URL",
      "FormData",
      "URLSearchParams",
      "HTMLElement",
      ...typedArrayTypeNames3
    ];
    function isObjectTypeName3(name) {
      return objectTypeNames3.includes(name);
    }
    var primitiveTypeNames3 = [
      "null",
      "undefined",
      "string",
      "number",
      "bigint",
      "boolean",
      "symbol"
    ];
    function isPrimitiveTypeName3(name) {
      return primitiveTypeNames3.includes(name);
    }
    function isOfType2(type) {
      return (value2) => typeof value2 === type;
    }
    var { toString: toString5 } = Object.prototype;
    var getObjectType4 = (value2) => {
      const objectTypeName = toString5.call(value2).slice(8, -1);
      if (/HTML\w+Element/.test(objectTypeName) && is3.domElement(value2)) {
        return "HTMLElement";
      }
      if (isObjectTypeName3(objectTypeName)) {
        return objectTypeName;
      }
      return void 0;
    };
    var isObjectOfType2 = (type) => (value2) => getObjectType4(value2) === type;
    function is3(value2) {
      if (value2 === null) {
        return "null";
      }
      switch (typeof value2) {
        case "undefined":
          return "undefined";
        case "string":
          return "string";
        case "number":
          return "number";
        case "boolean":
          return "boolean";
        case "function":
          return "Function";
        case "bigint":
          return "bigint";
        case "symbol":
          return "symbol";
        default:
      }
      if (is3.observable(value2)) {
        return "Observable";
      }
      if (is3.array(value2)) {
        return "Array";
      }
      if (is3.buffer(value2)) {
        return "Buffer";
      }
      const tagType = getObjectType4(value2);
      if (tagType) {
        return tagType;
      }
      if (value2 instanceof String || value2 instanceof Boolean || value2 instanceof Number) {
        throw new TypeError("Please don't use object wrappers for primitive types");
      }
      return "Object";
    }
    is3.undefined = isOfType2("undefined");
    is3.string = isOfType2("string");
    var isNumberType2 = isOfType2("number");
    is3.number = (value2) => isNumberType2(value2) && !is3.nan(value2);
    is3.bigint = isOfType2("bigint");
    is3.function_ = isOfType2("function");
    is3.null_ = (value2) => value2 === null;
    is3.class_ = (value2) => is3.function_(value2) && value2.toString().startsWith("class ");
    is3.boolean = (value2) => value2 === true || value2 === false;
    is3.symbol = isOfType2("symbol");
    is3.numericString = (value2) => is3.string(value2) && !is3.emptyStringOrWhitespace(value2) && !Number.isNaN(Number(value2));
    is3.array = (value2, assertion) => {
      if (!Array.isArray(value2)) {
        return false;
      }
      if (!is3.function_(assertion)) {
        return true;
      }
      return value2.every(assertion);
    };
    is3.buffer = (value2) => {
      var _a2, _b2, _c, _d;
      return (_d = (_c = (_b2 = (_a2 = value2) === null || _a2 === void 0 ? void 0 : _a2.constructor) === null || _b2 === void 0 ? void 0 : _b2.isBuffer) === null || _c === void 0 ? void 0 : _c.call(_b2, value2)) !== null && _d !== void 0 ? _d : false;
    };
    is3.blob = (value2) => isObjectOfType2("Blob")(value2);
    is3.nullOrUndefined = (value2) => is3.null_(value2) || is3.undefined(value2);
    is3.object = (value2) => !is3.null_(value2) && (typeof value2 === "object" || is3.function_(value2));
    is3.iterable = (value2) => {
      var _a2;
      return is3.function_((_a2 = value2) === null || _a2 === void 0 ? void 0 : _a2[Symbol.iterator]);
    };
    is3.asyncIterable = (value2) => {
      var _a2;
      return is3.function_((_a2 = value2) === null || _a2 === void 0 ? void 0 : _a2[Symbol.asyncIterator]);
    };
    is3.generator = (value2) => {
      var _a2, _b2;
      return is3.iterable(value2) && is3.function_((_a2 = value2) === null || _a2 === void 0 ? void 0 : _a2.next) && is3.function_((_b2 = value2) === null || _b2 === void 0 ? void 0 : _b2.throw);
    };
    is3.asyncGenerator = (value2) => is3.asyncIterable(value2) && is3.function_(value2.next) && is3.function_(value2.throw);
    is3.nativePromise = (value2) => isObjectOfType2("Promise")(value2);
    var hasPromiseAPI = (value2) => {
      var _a2, _b2;
      return is3.function_((_a2 = value2) === null || _a2 === void 0 ? void 0 : _a2.then) && is3.function_((_b2 = value2) === null || _b2 === void 0 ? void 0 : _b2.catch);
    };
    is3.promise = (value2) => is3.nativePromise(value2) || hasPromiseAPI(value2);
    is3.generatorFunction = isObjectOfType2("GeneratorFunction");
    is3.asyncGeneratorFunction = (value2) => getObjectType4(value2) === "AsyncGeneratorFunction";
    is3.asyncFunction = (value2) => getObjectType4(value2) === "AsyncFunction";
    is3.boundFunction = (value2) => is3.function_(value2) && !value2.hasOwnProperty("prototype");
    is3.regExp = isObjectOfType2("RegExp");
    is3.date = isObjectOfType2("Date");
    is3.error = isObjectOfType2("Error");
    is3.map = (value2) => isObjectOfType2("Map")(value2);
    is3.set = (value2) => isObjectOfType2("Set")(value2);
    is3.weakMap = (value2) => isObjectOfType2("WeakMap")(value2);
    is3.weakSet = (value2) => isObjectOfType2("WeakSet")(value2);
    is3.int8Array = isObjectOfType2("Int8Array");
    is3.uint8Array = isObjectOfType2("Uint8Array");
    is3.uint8ClampedArray = isObjectOfType2("Uint8ClampedArray");
    is3.int16Array = isObjectOfType2("Int16Array");
    is3.uint16Array = isObjectOfType2("Uint16Array");
    is3.int32Array = isObjectOfType2("Int32Array");
    is3.uint32Array = isObjectOfType2("Uint32Array");
    is3.float32Array = isObjectOfType2("Float32Array");
    is3.float64Array = isObjectOfType2("Float64Array");
    is3.bigInt64Array = isObjectOfType2("BigInt64Array");
    is3.bigUint64Array = isObjectOfType2("BigUint64Array");
    is3.arrayBuffer = isObjectOfType2("ArrayBuffer");
    is3.sharedArrayBuffer = isObjectOfType2("SharedArrayBuffer");
    is3.dataView = isObjectOfType2("DataView");
    is3.enumCase = (value2, targetEnum) => Object.values(targetEnum).includes(value2);
    is3.directInstanceOf = (instance, class_) => Object.getPrototypeOf(instance) === class_.prototype;
    is3.urlInstance = (value2) => isObjectOfType2("URL")(value2);
    is3.urlString = (value2) => {
      if (!is3.string(value2)) {
        return false;
      }
      try {
        new URL(value2);
        return true;
      } catch (_a2) {
        return false;
      }
    };
    is3.truthy = (value2) => Boolean(value2);
    is3.falsy = (value2) => !value2;
    is3.nan = (value2) => Number.isNaN(value2);
    is3.primitive = (value2) => is3.null_(value2) || isPrimitiveTypeName3(typeof value2);
    is3.integer = (value2) => Number.isInteger(value2);
    is3.safeInteger = (value2) => Number.isSafeInteger(value2);
    is3.plainObject = (value2) => {
      if (toString5.call(value2) !== "[object Object]") {
        return false;
      }
      const prototype2 = Object.getPrototypeOf(value2);
      return prototype2 === null || prototype2 === Object.getPrototypeOf({});
    };
    is3.typedArray = (value2) => isTypedArrayName3(getObjectType4(value2));
    var isValidLength3 = (value2) => is3.safeInteger(value2) && value2 >= 0;
    is3.arrayLike = (value2) => !is3.nullOrUndefined(value2) && !is3.function_(value2) && isValidLength3(value2.length);
    is3.inRange = (value2, range2) => {
      if (is3.number(range2)) {
        return value2 >= Math.min(0, range2) && value2 <= Math.max(range2, 0);
      }
      if (is3.array(range2) && range2.length === 2) {
        return value2 >= Math.min(...range2) && value2 <= Math.max(...range2);
      }
      throw new TypeError(`Invalid range: ${JSON.stringify(range2)}`);
    };
    var NODE_TYPE_ELEMENT3 = 1;
    var DOM_PROPERTIES_TO_CHECK3 = [
      "innerHTML",
      "ownerDocument",
      "style",
      "attributes",
      "nodeValue"
    ];
    is3.domElement = (value2) => {
      return is3.object(value2) && value2.nodeType === NODE_TYPE_ELEMENT3 && is3.string(value2.nodeName) && !is3.plainObject(value2) && DOM_PROPERTIES_TO_CHECK3.every((property) => property in value2);
    };
    is3.observable = (value2) => {
      var _a2, _b2, _c, _d;
      if (!value2) {
        return false;
      }
      if (value2 === ((_b2 = (_a2 = value2)[Symbol.observable]) === null || _b2 === void 0 ? void 0 : _b2.call(_a2))) {
        return true;
      }
      if (value2 === ((_d = (_c = value2)["@@observable"]) === null || _d === void 0 ? void 0 : _d.call(_c))) {
        return true;
      }
      return false;
    };
    is3.nodeStream = (value2) => is3.object(value2) && is3.function_(value2.pipe) && !is3.observable(value2);
    is3.infinite = (value2) => value2 === Infinity || value2 === -Infinity;
    var isAbsoluteMod22 = (remainder) => (value2) => is3.integer(value2) && Math.abs(value2 % 2) === remainder;
    is3.evenInteger = isAbsoluteMod22(0);
    is3.oddInteger = isAbsoluteMod22(1);
    is3.emptyArray = (value2) => is3.array(value2) && value2.length === 0;
    is3.nonEmptyArray = (value2) => is3.array(value2) && value2.length > 0;
    is3.emptyString = (value2) => is3.string(value2) && value2.length === 0;
    var isWhiteSpaceString2 = (value2) => is3.string(value2) && !/\S/.test(value2);
    is3.emptyStringOrWhitespace = (value2) => is3.emptyString(value2) || isWhiteSpaceString2(value2);
    is3.nonEmptyString = (value2) => is3.string(value2) && value2.length > 0;
    is3.nonEmptyStringAndNotWhitespace = (value2) => is3.string(value2) && !is3.emptyStringOrWhitespace(value2);
    is3.emptyObject = (value2) => is3.object(value2) && !is3.map(value2) && !is3.set(value2) && Object.keys(value2).length === 0;
    is3.nonEmptyObject = (value2) => is3.object(value2) && !is3.map(value2) && !is3.set(value2) && Object.keys(value2).length > 0;
    is3.emptySet = (value2) => is3.set(value2) && value2.size === 0;
    is3.nonEmptySet = (value2) => is3.set(value2) && value2.size > 0;
    is3.emptyMap = (value2) => is3.map(value2) && value2.size === 0;
    is3.nonEmptyMap = (value2) => is3.map(value2) && value2.size > 0;
    is3.propertyKey = (value2) => is3.any([is3.string, is3.number, is3.symbol], value2);
    is3.formData = (value2) => isObjectOfType2("FormData")(value2);
    is3.urlSearchParams = (value2) => isObjectOfType2("URLSearchParams")(value2);
    var predicateOnArray3 = (method, predicate, values) => {
      if (!is3.function_(predicate)) {
        throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);
      }
      if (values.length === 0) {
        throw new TypeError("Invalid number of values");
      }
      return method.call(values, predicate);
    };
    is3.any = (predicate, ...values) => {
      const predicates3 = is3.array(predicate) ? predicate : [predicate];
      return predicates3.some((singlePredicate) => predicateOnArray3(Array.prototype.some, singlePredicate, values));
    };
    is3.all = (predicate, ...values) => predicateOnArray3(Array.prototype.every, predicate, values);
    var assertType2 = (condition, description, value2, options = {}) => {
      if (!condition) {
        const { multipleValues } = options;
        const valuesMessage = multipleValues ? `received values of types ${[
          ...new Set(value2.map((singleValue) => `\`${is3(singleValue)}\``))
        ].join(", ")}` : `received value of type \`${is3(value2)}\``;
        throw new TypeError(`Expected value which is \`${description}\`, ${valuesMessage}.`);
      }
    };
    exports.assert = {
      // Unknowns.
      undefined: (value2) => assertType2(is3.undefined(value2), "undefined", value2),
      string: (value2) => assertType2(is3.string(value2), "string", value2),
      number: (value2) => assertType2(is3.number(value2), "number", value2),
      bigint: (value2) => assertType2(is3.bigint(value2), "bigint", value2),
      // eslint-disable-next-line @typescript-eslint/ban-types
      function_: (value2) => assertType2(is3.function_(value2), "Function", value2),
      null_: (value2) => assertType2(is3.null_(value2), "null", value2),
      class_: (value2) => assertType2(is3.class_(value2), "Class", value2),
      boolean: (value2) => assertType2(is3.boolean(value2), "boolean", value2),
      symbol: (value2) => assertType2(is3.symbol(value2), "symbol", value2),
      numericString: (value2) => assertType2(is3.numericString(value2), "string with a number", value2),
      array: (value2, assertion) => {
        const assert3 = assertType2;
        assert3(is3.array(value2), "Array", value2);
        if (assertion) {
          value2.forEach(assertion);
        }
      },
      buffer: (value2) => assertType2(is3.buffer(value2), "Buffer", value2),
      blob: (value2) => assertType2(is3.blob(value2), "Blob", value2),
      nullOrUndefined: (value2) => assertType2(is3.nullOrUndefined(value2), "null or undefined", value2),
      object: (value2) => assertType2(is3.object(value2), "Object", value2),
      iterable: (value2) => assertType2(is3.iterable(value2), "Iterable", value2),
      asyncIterable: (value2) => assertType2(is3.asyncIterable(value2), "AsyncIterable", value2),
      generator: (value2) => assertType2(is3.generator(value2), "Generator", value2),
      asyncGenerator: (value2) => assertType2(is3.asyncGenerator(value2), "AsyncGenerator", value2),
      nativePromise: (value2) => assertType2(is3.nativePromise(value2), "native Promise", value2),
      promise: (value2) => assertType2(is3.promise(value2), "Promise", value2),
      generatorFunction: (value2) => assertType2(is3.generatorFunction(value2), "GeneratorFunction", value2),
      asyncGeneratorFunction: (value2) => assertType2(is3.asyncGeneratorFunction(value2), "AsyncGeneratorFunction", value2),
      // eslint-disable-next-line @typescript-eslint/ban-types
      asyncFunction: (value2) => assertType2(is3.asyncFunction(value2), "AsyncFunction", value2),
      // eslint-disable-next-line @typescript-eslint/ban-types
      boundFunction: (value2) => assertType2(is3.boundFunction(value2), "Function", value2),
      regExp: (value2) => assertType2(is3.regExp(value2), "RegExp", value2),
      date: (value2) => assertType2(is3.date(value2), "Date", value2),
      error: (value2) => assertType2(is3.error(value2), "Error", value2),
      map: (value2) => assertType2(is3.map(value2), "Map", value2),
      set: (value2) => assertType2(is3.set(value2), "Set", value2),
      weakMap: (value2) => assertType2(is3.weakMap(value2), "WeakMap", value2),
      weakSet: (value2) => assertType2(is3.weakSet(value2), "WeakSet", value2),
      int8Array: (value2) => assertType2(is3.int8Array(value2), "Int8Array", value2),
      uint8Array: (value2) => assertType2(is3.uint8Array(value2), "Uint8Array", value2),
      uint8ClampedArray: (value2) => assertType2(is3.uint8ClampedArray(value2), "Uint8ClampedArray", value2),
      int16Array: (value2) => assertType2(is3.int16Array(value2), "Int16Array", value2),
      uint16Array: (value2) => assertType2(is3.uint16Array(value2), "Uint16Array", value2),
      int32Array: (value2) => assertType2(is3.int32Array(value2), "Int32Array", value2),
      uint32Array: (value2) => assertType2(is3.uint32Array(value2), "Uint32Array", value2),
      float32Array: (value2) => assertType2(is3.float32Array(value2), "Float32Array", value2),
      float64Array: (value2) => assertType2(is3.float64Array(value2), "Float64Array", value2),
      bigInt64Array: (value2) => assertType2(is3.bigInt64Array(value2), "BigInt64Array", value2),
      bigUint64Array: (value2) => assertType2(is3.bigUint64Array(value2), "BigUint64Array", value2),
      arrayBuffer: (value2) => assertType2(is3.arrayBuffer(value2), "ArrayBuffer", value2),
      sharedArrayBuffer: (value2) => assertType2(is3.sharedArrayBuffer(value2), "SharedArrayBuffer", value2),
      dataView: (value2) => assertType2(is3.dataView(value2), "DataView", value2),
      enumCase: (value2, targetEnum) => assertType2(is3.enumCase(value2, targetEnum), "EnumCase", value2),
      urlInstance: (value2) => assertType2(is3.urlInstance(value2), "URL", value2),
      urlString: (value2) => assertType2(is3.urlString(value2), "string with a URL", value2),
      truthy: (value2) => assertType2(is3.truthy(value2), "truthy", value2),
      falsy: (value2) => assertType2(is3.falsy(value2), "falsy", value2),
      nan: (value2) => assertType2(is3.nan(value2), "NaN", value2),
      primitive: (value2) => assertType2(is3.primitive(value2), "primitive", value2),
      integer: (value2) => assertType2(is3.integer(value2), "integer", value2),
      safeInteger: (value2) => assertType2(is3.safeInteger(value2), "integer", value2),
      plainObject: (value2) => assertType2(is3.plainObject(value2), "plain object", value2),
      typedArray: (value2) => assertType2(is3.typedArray(value2), "TypedArray", value2),
      arrayLike: (value2) => assertType2(is3.arrayLike(value2), "array-like", value2),
      domElement: (value2) => assertType2(is3.domElement(value2), "HTMLElement", value2),
      observable: (value2) => assertType2(is3.observable(value2), "Observable", value2),
      nodeStream: (value2) => assertType2(is3.nodeStream(value2), "Node.js Stream", value2),
      infinite: (value2) => assertType2(is3.infinite(value2), "infinite number", value2),
      emptyArray: (value2) => assertType2(is3.emptyArray(value2), "empty array", value2),
      nonEmptyArray: (value2) => assertType2(is3.nonEmptyArray(value2), "non-empty array", value2),
      emptyString: (value2) => assertType2(is3.emptyString(value2), "empty string", value2),
      emptyStringOrWhitespace: (value2) => assertType2(is3.emptyStringOrWhitespace(value2), "empty string or whitespace", value2),
      nonEmptyString: (value2) => assertType2(is3.nonEmptyString(value2), "non-empty string", value2),
      nonEmptyStringAndNotWhitespace: (value2) => assertType2(is3.nonEmptyStringAndNotWhitespace(value2), "non-empty string and not whitespace", value2),
      emptyObject: (value2) => assertType2(is3.emptyObject(value2), "empty object", value2),
      nonEmptyObject: (value2) => assertType2(is3.nonEmptyObject(value2), "non-empty object", value2),
      emptySet: (value2) => assertType2(is3.emptySet(value2), "empty set", value2),
      nonEmptySet: (value2) => assertType2(is3.nonEmptySet(value2), "non-empty set", value2),
      emptyMap: (value2) => assertType2(is3.emptyMap(value2), "empty map", value2),
      nonEmptyMap: (value2) => assertType2(is3.nonEmptyMap(value2), "non-empty map", value2),
      propertyKey: (value2) => assertType2(is3.propertyKey(value2), "PropertyKey", value2),
      formData: (value2) => assertType2(is3.formData(value2), "FormData", value2),
      urlSearchParams: (value2) => assertType2(is3.urlSearchParams(value2), "URLSearchParams", value2),
      // Numbers.
      evenInteger: (value2) => assertType2(is3.evenInteger(value2), "even integer", value2),
      oddInteger: (value2) => assertType2(is3.oddInteger(value2), "odd integer", value2),
      // Two arguments.
      directInstanceOf: (instance, class_) => assertType2(is3.directInstanceOf(instance, class_), "T", instance),
      inRange: (value2, range2) => assertType2(is3.inRange(value2, range2), "in range", value2),
      // Variadic functions.
      any: (predicate, ...values) => {
        return assertType2(is3.any(predicate, ...values), "predicate returns truthy for any value", values, { multipleValues: true });
      },
      all: (predicate, ...values) => assertType2(is3.all(predicate, ...values), "predicate returns truthy for all values", values, { multipleValues: true })
    };
    Object.defineProperties(is3, {
      class: {
        value: is3.class_
      },
      function: {
        value: is3.function_
      },
      null: {
        value: is3.null_
      }
    });
    Object.defineProperties(exports.assert, {
      class: {
        value: exports.assert.class_
      },
      function: {
        value: exports.assert.function_
      },
      null: {
        value: exports.assert.null_
      }
    });
    exports.default = is3;
    module.exports = is3;
    module.exports.default = is3;
    module.exports.assert = exports.assert;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/generate-stack.js
var require_generate_stack = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/generate-stack.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.generateStackTrace = void 0;
    var generateStackTrace2 = () => {
      const stack = new RangeError("INTERNAL_OW_ERROR").stack;
      return stack;
    };
    exports.generateStackTrace = generateStackTrace2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/argument-error.js
var require_argument_error = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/argument-error.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ArgumentError = void 0;
    var generate_stack_1 = require_generate_stack();
    var wrapStackTrace2 = (error, stack) => `${error.name}: ${error.message}
${stack}`;
    var ArgumentError2 = class extends Error {
      constructor(message, context, errors = /* @__PURE__ */ new Map()) {
        super(message);
        Object.defineProperty(this, "validationErrors", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.name = "ArgumentError";
        if (Error.captureStackTrace) {
          Error.captureStackTrace(this, context);
        } else {
          this.stack = wrapStackTrace2(this, (0, generate_stack_1.generateStackTrace)());
        }
        this.validationErrors = errors;
      }
    };
    exports.ArgumentError = ArgumentError2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/random-id.js
var require_random_id = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/random-id.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.default = () => Math.random().toString(16).slice(2);
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/operators/not.js
var require_not = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/operators/not.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.not = void 0;
    var random_id_1 = require_random_id();
    var predicate_1 = require_predicate();
    var not2 = (predicate) => {
      const originalAddValidator = predicate.addValidator;
      predicate.addValidator = (validator) => {
        const { validator: fn, message, negatedMessage } = validator;
        const placeholder = (0, random_id_1.default)();
        validator.message = (value2, label) => negatedMessage ? negatedMessage(value2, label) : message(value2, placeholder).replace(/ to /, "$&not ").replace(placeholder, label);
        validator.validator = (value2) => !fn(value2);
        predicate[predicate_1.validatorSymbol].push(validator);
        predicate.addValidator = originalAddValidator;
        return predicate;
      };
      return predicate;
    };
    exports.not = not2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/base-predicate.js
var require_base_predicate = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/base-predicate.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.isPredicate = exports.testSymbol = void 0;
    exports.testSymbol = Symbol("test");
    var isPredicate2 = (value2) => Boolean(value2[exports.testSymbol]);
    exports.isPredicate = isPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/generate-argument-error-message.js
var require_generate_argument_error_message = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/generate-argument-error-message.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.generateArgumentErrorMessage = void 0;
    var generateArgumentErrorMessage2 = (errors, isAny2 = false) => {
      const message = [];
      const errorArray = [...errors.entries()];
      const anyErrorWithoutOneItemOnly = errorArray.some(([, array]) => array.size !== 1);
      if (errorArray.length === 1) {
        const [, returnedErrors] = errorArray[0];
        if (!isAny2 && returnedErrors.size === 1) {
          const [errorMessage] = returnedErrors;
          return errorMessage;
        }
        for (const entry of returnedErrors) {
          message.push(`${isAny2 ? "  - " : ""}${entry}`);
        }
        return message.join("\n");
      }
      if (!anyErrorWithoutOneItemOnly) {
        return errorArray.map(([, [item]]) => `  - ${item}`).join("\n");
      }
      for (const [key, value2] of errorArray) {
        message.push(`Errors from the "${key}" predicate:`);
        for (const entry of value2) {
          message.push(`  - ${entry}`);
        }
      }
      return message.join("\n");
    };
    exports.generateArgumentErrorMessage = generateArgumentErrorMessage2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/predicate.js
var require_predicate = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/predicate.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Predicate = exports.validatorSymbol = void 0;
    var is_1 = require_dist();
    var argument_error_1 = require_argument_error();
    var not_1 = require_not();
    var base_predicate_1 = require_base_predicate();
    var generate_argument_error_message_1 = require_generate_argument_error_message();
    exports.validatorSymbol = Symbol("validators");
    var Predicate2 = class {
      constructor(type, options = {}) {
        Object.defineProperty(this, "type", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: type
        });
        Object.defineProperty(this, "options", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: options
        });
        Object.defineProperty(this, "context", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {
            validators: []
          }
        });
        this.context = {
          ...this.context,
          ...this.options
        };
        const typeString = this.type.charAt(0).toLowerCase() + this.type.slice(1);
        this.addValidator({
          message: (value2, label) => {
            const label_ = label === null || label === void 0 ? void 0 : label.slice(this.type.length + 1);
            return `Expected ${label_ || "argument"} to be of type \`${this.type}\` but received type \`${(0, is_1.default)(value2)}\``;
          },
          validator: (value2) => is_1.default[typeString](value2)
        });
      }
      /**
      @hidden
      */
      [base_predicate_1.testSymbol](value2, main, label, idLabel) {
        const errors = /* @__PURE__ */ new Map();
        for (const { validator, message } of this.context.validators) {
          if (this.options.optional === true && value2 === void 0) {
            continue;
          }
          let result;
          try {
            result = validator(value2);
          } catch (error) {
            result = error;
          }
          if (result === true) {
            continue;
          }
          const label2 = is_1.default.function_(label) ? label() : label;
          const labelWithTick = label2 && idLabel ? `\`${label2}\`` : label2;
          const label_ = labelWithTick ? `${this.type} ${labelWithTick}` : this.type;
          const mapKey = label2 || this.type;
          const currentErrors = errors.get(mapKey);
          const errorMessage = message(value2, label_, result);
          if (currentErrors) {
            currentErrors.add(errorMessage);
          } else {
            errors.set(mapKey, /* @__PURE__ */ new Set([errorMessage]));
          }
        }
        if (errors.size > 0) {
          const message = (0, generate_argument_error_message_1.generateArgumentErrorMessage)(errors);
          throw new argument_error_1.ArgumentError(message, main, errors);
        }
      }
      /**
      @hidden
      */
      get [exports.validatorSymbol]() {
        return this.context.validators;
      }
      /**
      Invert the following validators.
      */
      get not() {
        return (0, not_1.not)(this);
      }
      /**
          Test if the value matches a custom validation function. The validation function should return an object containing a `validator` and `message`. If the `validator` is `false`, the validation fails and the `message` will be used as error message. If the `message` is a function, the function is invoked with the `label` as argument to let you further customize the error message.
      
          @param customValidator - Custom validation function.
          */
      validate(customValidator) {
        return this.addValidator({
          message: (_, label, error) => typeof error === "string" ? `(${label}) ${error}` : error(label),
          validator: (value2) => {
            const { message, validator } = customValidator(value2);
            if (validator) {
              return true;
            }
            return message;
          }
        });
      }
      /**
          Test if the value matches a custom validation function. The validation function should return `true` if the value passes the function. If the function either returns `false` or a string, the function fails and the string will be used as error message.
      
          @param validator - Validation function.
          */
      is(validator) {
        return this.addValidator({
          message: (value2, label, error) => error ? `(${label}) ${error}` : `Expected ${label} \`${value2}\` to pass custom validation function`,
          validator
        });
      }
      /**
          Provide a new error message to be thrown when the validation fails.
      
          @param newMessage - Either a string containing the new message or a function returning the new message.
      
          @example
          ```
          ow('🌈', 'unicorn', ow.string.equals('🦄').message('Expected unicorn, got rainbow'));
          //=> ArgumentError: Expected unicorn, got rainbow
          ```
      
          @example
          ```
          ow('🌈', ow.string.minLength(5).message((value, label) => `Expected ${label}, to have a minimum length of 5, got \`${value}\``));
          //=> ArgumentError: Expected string, to be have a minimum length of 5, got `🌈`
          ```
          */
      message(newMessage) {
        const { validators: validators4 } = this.context;
        validators4[validators4.length - 1].message = (value2, label) => {
          if (typeof newMessage === "function") {
            return newMessage(value2, label);
          }
          return newMessage;
        };
        return this;
      }
      /**
          Register a new validator.
      
          @param validator - Validator to register.
          */
      addValidator(validator) {
        this.context.validators.push(validator);
        return this;
      }
    };
    exports.Predicate = Predicate2;
  }
});

// ../../node_modules/.pnpm/vali-date@1.0.0/node_modules/vali-date/index.js
var require_vali_date = __commonJS({
  "../../node_modules/.pnpm/vali-date@1.0.0/node_modules/vali-date/index.js"(exports, module) {
    "use strict";
    module.exports = function(str) {
      return !isNaN(Date.parse(str));
    };
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/string.js
var require_string = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/string.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.StringPredicate = void 0;
    var is_1 = require_dist();
    var valiDate2 = require_vali_date();
    var predicate_1 = require_predicate();
    var StringPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("string", options);
      }
      /**
          Test a string to have a specific length.
      
          @param length - The length of the string.
          */
      length(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have length \`${length2}\`, got \`${value2}\``,
          validator: (value2) => value2.length === length2
        });
      }
      /**
          Test a string to have a minimum length.
      
          @param length - The minimum length of the string.
          */
      minLength(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a minimum length of \`${length2}\`, got \`${value2}\``,
          validator: (value2) => value2.length >= length2,
          negatedMessage: (value2, label) => `Expected ${label} to have a maximum length of \`${length2 - 1}\`, got \`${value2}\``
        });
      }
      /**
          Test a string to have a maximum length.
      
          @param length - The maximum length of the string.
          */
      maxLength(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a maximum length of \`${length2}\`, got \`${value2}\``,
          validator: (value2) => value2.length <= length2,
          negatedMessage: (value2, label) => `Expected ${label} to have a minimum length of \`${length2 + 1}\`, got \`${value2}\``
        });
      }
      /**
          Test a string against a regular expression.
      
          @param regex - The regular expression to match the value with.
          */
      matches(regex2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to match \`${regex2}\`, got \`${value2}\``,
          validator: (value2) => regex2.test(value2)
        });
      }
      /**
          Test a string to start with a specific value.
      
          @param searchString - The value that should be the start of the string.
          */
      startsWith(searchString) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to start with \`${searchString}\`, got \`${value2}\``,
          validator: (value2) => value2.startsWith(searchString)
        });
      }
      /**
          Test a string to end with a specific value.
      
          @param searchString - The value that should be the end of the string.
          */
      endsWith(searchString) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to end with \`${searchString}\`, got \`${value2}\``,
          validator: (value2) => value2.endsWith(searchString)
        });
      }
      /**
          Test a string to include a specific value.
      
          @param searchString - The value that should be included in the string.
          */
      includes(searchString) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to include \`${searchString}\`, got \`${value2}\``,
          validator: (value2) => value2.includes(searchString)
        });
      }
      /**
          Test if the string is an element of the provided list.
      
          @param list - List of possible values.
          */
      oneOf(list) {
        return this.addValidator({
          message: (value2, label) => {
            let printedList = JSON.stringify(list);
            if (list.length > 10) {
              const overflow = list.length - 10;
              printedList = JSON.stringify(list.slice(0, 10)).replace(/]$/, `,\u2026+${overflow} more]`);
            }
            return `Expected ${label} to be one of \`${printedList}\`, got \`${value2}\``;
          },
          validator: (value2) => list.includes(value2)
        });
      }
      /**
      Test a string to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be empty, got \`${value2}\``,
          validator: (value2) => value2 === ""
        });
      }
      /**
      Test a string to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to not be empty`,
          validator: (value2) => value2 !== ""
        });
      }
      /**
          Test a string to be equal to a specified string.
      
          @param expected - Expected value to match.
          */
      equals(expected) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be equal to \`${expected}\`, got \`${value2}\``,
          validator: (value2) => value2 === expected
        });
      }
      /**
      Test a string to be alphanumeric.
      */
      get alphanumeric() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be alphanumeric, got \`${value2}\``,
          validator: (value2) => /^[a-z\d]+$/i.test(value2)
        });
      }
      /**
      Test a string to be alphabetical.
      */
      get alphabetical() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be alphabetical, got \`${value2}\``,
          validator: (value2) => /^[a-z]+$/gi.test(value2)
        });
      }
      /**
      Test a string to be numeric.
      */
      get numeric() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be numeric, got \`${value2}\``,
          validator: (value2) => /^[+-]?\d+$/i.test(value2)
        });
      }
      /**
      Test a string to be a valid date.
      */
      get date() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be a date, got \`${value2}\``,
          validator: valiDate2
        });
      }
      /**
      Test a non-empty string to be lowercase. Matching both alphabetical & numbers.
      */
      get lowercase() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be lowercase, got \`${value2}\``,
          validator: (value2) => value2.trim() !== "" && value2 === value2.toLowerCase()
        });
      }
      /**
      Test a non-empty string to be uppercase. Matching both alphabetical & numbers.
      */
      get uppercase() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be uppercase, got \`${value2}\``,
          validator: (value2) => value2.trim() !== "" && value2 === value2.toUpperCase()
        });
      }
      /**
      Test a string to be a valid URL.
      */
      get url() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be a URL, got \`${value2}\``,
          validator: is_1.default.urlString
        });
      }
    };
    exports.StringPredicate = StringPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/number.js
var require_number = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/number.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.NumberPredicate = void 0;
    var is_1 = require_dist();
    var predicate_1 = require_predicate();
    var NumberPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("number", options);
      }
      /**
          Test a number to be in a specified range.
      
          @param start - Start of the range.
          @param end - End of the range.
          */
      inRange(start2, end2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be in range [${start2}..${end2}], got ${value2}`,
          validator: (value2) => is_1.default.inRange(value2, [start2, end2])
        });
      }
      /**
          Test a number to be greater than the provided value.
      
          @param number - Minimum value.
          */
      greaterThan(number3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be greater than ${number3}, got ${value2}`,
          validator: (value2) => value2 > number3
        });
      }
      /**
          Test a number to be greater than or equal to the provided value.
      
          @param number - Minimum value.
          */
      greaterThanOrEqual(number3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be greater than or equal to ${number3}, got ${value2}`,
          validator: (value2) => value2 >= number3
        });
      }
      /**
          Test a number to be less than the provided value.
      
          @param number - Maximum value.
          */
      lessThan(number3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be less than ${number3}, got ${value2}`,
          validator: (value2) => value2 < number3
        });
      }
      /**
          Test a number to be less than or equal to the provided value.
      
          @param number - Minimum value.
          */
      lessThanOrEqual(number3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be less than or equal to ${number3}, got ${value2}`,
          validator: (value2) => value2 <= number3
        });
      }
      /**
          Test a number to be equal to a specified number.
      
          @param expected - Expected value to match.
          */
      equal(expected) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be equal to ${expected}, got ${value2}`,
          validator: (value2) => value2 === expected
        });
      }
      /**
          Test if a number is an element of the provided list.
      
          @param list - List of possible values.
          */
      oneOf(list) {
        return this.addValidator({
          message: (value2, label) => {
            let printedList = JSON.stringify(list);
            if (list.length > 10) {
              const overflow = list.length - 10;
              printedList = JSON.stringify(list.slice(0, 10)).replace(/]$/, `,\u2026+${overflow} more]`);
            }
            return `Expected ${label} to be one of \`${printedList}\`, got ${value2}`;
          },
          validator: (value2) => list.includes(value2)
        });
      }
      /**
      Test a number to be an integer.
      */
      get integer() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be an integer, got ${value2}`,
          validator: (value2) => is_1.default.integer(value2)
        });
      }
      /**
      Test a number to be finite.
      */
      get finite() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be finite, got ${value2}`,
          validator: (value2) => !is_1.default.infinite(value2)
        });
      }
      /**
      Test a number to be infinite.
      */
      get infinite() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be infinite, got ${value2}`,
          validator: (value2) => is_1.default.infinite(value2)
        });
      }
      /**
      Test a number to be positive.
      */
      get positive() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be positive, got ${value2}`,
          validator: (value2) => value2 > 0
        });
      }
      /**
      Test a number to be negative.
      */
      get negative() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be negative, got ${value2}`,
          validator: (value2) => value2 < 0
        });
      }
      /**
      Test a number to be an integer or infinite.
      */
      get integerOrInfinite() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be an integer or infinite, got ${value2}`,
          validator: (value2) => is_1.default.integer(value2) || is_1.default.infinite(value2)
        });
      }
      /**
      Test a number to be in a valid range for a 8-bit unsigned integer.
      */
      get uint8() {
        return this.integer.inRange(0, 255);
      }
      /**
      Test a number to be in a valid range for a 16-bit unsigned integer.
      */
      get uint16() {
        return this.integer.inRange(0, 65535);
      }
      /**
      Test a number to be in a valid range for a 32-bit unsigned integer.
      */
      get uint32() {
        return this.integer.inRange(0, 4294967295);
      }
      /**
      Test a number to be in a valid range for a 8-bit signed integer.
      */
      get int8() {
        return this.integer.inRange(-128, 127);
      }
      /**
      Test a number to be in a valid range for a 16-bit signed integer.
      */
      get int16() {
        return this.integer.inRange(-32768, 32767);
      }
      /**
      Test a number to be in a valid range for a 32-bit signed integer.
      */
      get int32() {
        return this.integer.inRange(-2147483648, 2147483647);
      }
    };
    exports.NumberPredicate = NumberPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/bigint.js
var require_bigint = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/bigint.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BigIntPredicate = void 0;
    var predicate_1 = require_predicate();
    var BigIntPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("bigint", options);
      }
    };
    exports.BigIntPredicate = BigIntPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/boolean.js
var require_boolean = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/boolean.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BooleanPredicate = void 0;
    var predicate_1 = require_predicate();
    var BooleanPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("boolean", options);
      }
      /**
      Test a boolean to be true.
      */
      get true() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be true, got ${value2}`,
          validator: (value2) => value2
        });
      }
      /**
      Test a boolean to be false.
      */
      get false() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be false, got ${value2}`,
          validator: (value2) => !value2
        });
      }
    };
    exports.BooleanPredicate = BooleanPredicate2;
  }
});

// ../../node_modules/.pnpm/lodash.isequal@4.5.0/node_modules/lodash.isequal/index.js
var require_lodash = __commonJS({
  "../../node_modules/.pnpm/lodash.isequal@4.5.0/node_modules/lodash.isequal/index.js"(exports, module) {
    var LARGE_ARRAY_SIZE = 200;
    var HASH_UNDEFINED = "__lodash_hash_undefined__";
    var COMPARE_PARTIAL_FLAG = 1;
    var COMPARE_UNORDERED_FLAG = 2;
    var MAX_SAFE_INTEGER = 9007199254740991;
    var argsTag = "[object Arguments]";
    var arrayTag = "[object Array]";
    var asyncTag = "[object AsyncFunction]";
    var boolTag = "[object Boolean]";
    var dateTag = "[object Date]";
    var errorTag = "[object Error]";
    var funcTag = "[object Function]";
    var genTag = "[object GeneratorFunction]";
    var mapTag = "[object Map]";
    var numberTag = "[object Number]";
    var nullTag = "[object Null]";
    var objectTag = "[object Object]";
    var promiseTag = "[object Promise]";
    var proxyTag = "[object Proxy]";
    var regexpTag = "[object RegExp]";
    var setTag = "[object Set]";
    var stringTag = "[object String]";
    var symbolTag = "[object Symbol]";
    var undefinedTag = "[object Undefined]";
    var weakMapTag = "[object WeakMap]";
    var arrayBufferTag = "[object ArrayBuffer]";
    var dataViewTag = "[object DataView]";
    var float32Tag = "[object Float32Array]";
    var float64Tag = "[object Float64Array]";
    var int8Tag = "[object Int8Array]";
    var int16Tag = "[object Int16Array]";
    var int32Tag = "[object Int32Array]";
    var uint8Tag = "[object Uint8Array]";
    var uint8ClampedTag = "[object Uint8ClampedArray]";
    var uint16Tag = "[object Uint16Array]";
    var uint32Tag = "[object Uint32Array]";
    var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
    var reIsHostCtor = /^\[object .+?Constructor\]$/;
    var reIsUint = /^(?:0|[1-9]\d*)$/;
    var typedArrayTags = {};
    typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
    typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
    var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
    var freeSelf = typeof self == "object" && self && self.Object === Object && self;
    var root = freeGlobal || freeSelf || Function("return this")();
    var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
    var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
    var moduleExports = freeModule && freeModule.exports === freeExports;
    var freeProcess = moduleExports && freeGlobal.process;
    var nodeUtil = (function() {
      try {
        return freeProcess && freeProcess.binding && freeProcess.binding("util");
      } catch (e4) {
      }
    })();
    var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
    function arrayFilter(array, predicate) {
      var index2 = -1, length2 = array == null ? 0 : array.length, resIndex = 0, result = [];
      while (++index2 < length2) {
        var value2 = array[index2];
        if (predicate(value2, index2, array)) {
          result[resIndex++] = value2;
        }
      }
      return result;
    }
    function arrayPush(array, values) {
      var index2 = -1, length2 = values.length, offset2 = array.length;
      while (++index2 < length2) {
        array[offset2 + index2] = values[index2];
      }
      return array;
    }
    function arraySome(array, predicate) {
      var index2 = -1, length2 = array == null ? 0 : array.length;
      while (++index2 < length2) {
        if (predicate(array[index2], index2, array)) {
          return true;
        }
      }
      return false;
    }
    function baseTimes(n6, iteratee) {
      var index2 = -1, result = Array(n6);
      while (++index2 < n6) {
        result[index2] = iteratee(index2);
      }
      return result;
    }
    function baseUnary(func) {
      return function(value2) {
        return func(value2);
      };
    }
    function cacheHas(cache2, key) {
      return cache2.has(key);
    }
    function getValue(object, key) {
      return object == null ? void 0 : object[key];
    }
    function mapToArray(map) {
      var index2 = -1, result = Array(map.size);
      map.forEach(function(value2, key) {
        result[++index2] = [key, value2];
      });
      return result;
    }
    function overArg(func, transform) {
      return function(arg) {
        return func(transform(arg));
      };
    }
    function setToArray(set) {
      var index2 = -1, result = Array(set.size);
      set.forEach(function(value2) {
        result[++index2] = value2;
      });
      return result;
    }
    var arrayProto = Array.prototype;
    var funcProto = Function.prototype;
    var objectProto = Object.prototype;
    var coreJsData = root["__core-js_shared__"];
    var funcToString = funcProto.toString;
    var hasOwnProperty2 = objectProto.hasOwnProperty;
    var maskSrcKey = (function() {
      var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
      return uid ? "Symbol(src)_1." + uid : "";
    })();
    var nativeObjectToString = objectProto.toString;
    var reIsNative = RegExp(
      "^" + funcToString.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
    );
    var Buffer5 = moduleExports ? root.Buffer : void 0;
    var Symbol2 = root.Symbol;
    var Uint8Array2 = root.Uint8Array;
    var propertyIsEnumerable = objectProto.propertyIsEnumerable;
    var splice = arrayProto.splice;
    var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
    var nativeGetSymbols = Object.getOwnPropertySymbols;
    var nativeIsBuffer = Buffer5 ? Buffer5.isBuffer : void 0;
    var nativeKeys = overArg(Object.keys, Object);
    var DataView2 = getNative(root, "DataView");
    var Map2 = getNative(root, "Map");
    var Promise2 = getNative(root, "Promise");
    var Set2 = getNative(root, "Set");
    var WeakMap2 = getNative(root, "WeakMap");
    var nativeCreate = getNative(Object, "create");
    var dataViewCtorString = toSource(DataView2);
    var mapCtorString = toSource(Map2);
    var promiseCtorString = toSource(Promise2);
    var setCtorString = toSource(Set2);
    var weakMapCtorString = toSource(WeakMap2);
    var symbolProto = Symbol2 ? Symbol2.prototype : void 0;
    var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
    function Hash(entries3) {
      var index2 = -1, length2 = entries3 == null ? 0 : entries3.length;
      this.clear();
      while (++index2 < length2) {
        var entry = entries3[index2];
        this.set(entry[0], entry[1]);
      }
    }
    function hashClear() {
      this.__data__ = nativeCreate ? nativeCreate(null) : {};
      this.size = 0;
    }
    function hashDelete(key) {
      var result = this.has(key) && delete this.__data__[key];
      this.size -= result ? 1 : 0;
      return result;
    }
    function hashGet(key) {
      var data2 = this.__data__;
      if (nativeCreate) {
        var result = data2[key];
        return result === HASH_UNDEFINED ? void 0 : result;
      }
      return hasOwnProperty2.call(data2, key) ? data2[key] : void 0;
    }
    function hashHas(key) {
      var data2 = this.__data__;
      return nativeCreate ? data2[key] !== void 0 : hasOwnProperty2.call(data2, key);
    }
    function hashSet(key, value2) {
      var data2 = this.__data__;
      this.size += this.has(key) ? 0 : 1;
      data2[key] = nativeCreate && value2 === void 0 ? HASH_UNDEFINED : value2;
      return this;
    }
    Hash.prototype.clear = hashClear;
    Hash.prototype["delete"] = hashDelete;
    Hash.prototype.get = hashGet;
    Hash.prototype.has = hashHas;
    Hash.prototype.set = hashSet;
    function ListCache(entries3) {
      var index2 = -1, length2 = entries3 == null ? 0 : entries3.length;
      this.clear();
      while (++index2 < length2) {
        var entry = entries3[index2];
        this.set(entry[0], entry[1]);
      }
    }
    function listCacheClear() {
      this.__data__ = [];
      this.size = 0;
    }
    function listCacheDelete(key) {
      var data2 = this.__data__, index2 = assocIndexOf(data2, key);
      if (index2 < 0) {
        return false;
      }
      var lastIndex = data2.length - 1;
      if (index2 == lastIndex) {
        data2.pop();
      } else {
        splice.call(data2, index2, 1);
      }
      --this.size;
      return true;
    }
    function listCacheGet(key) {
      var data2 = this.__data__, index2 = assocIndexOf(data2, key);
      return index2 < 0 ? void 0 : data2[index2][1];
    }
    function listCacheHas(key) {
      return assocIndexOf(this.__data__, key) > -1;
    }
    function listCacheSet(key, value2) {
      var data2 = this.__data__, index2 = assocIndexOf(data2, key);
      if (index2 < 0) {
        ++this.size;
        data2.push([key, value2]);
      } else {
        data2[index2][1] = value2;
      }
      return this;
    }
    ListCache.prototype.clear = listCacheClear;
    ListCache.prototype["delete"] = listCacheDelete;
    ListCache.prototype.get = listCacheGet;
    ListCache.prototype.has = listCacheHas;
    ListCache.prototype.set = listCacheSet;
    function MapCache(entries3) {
      var index2 = -1, length2 = entries3 == null ? 0 : entries3.length;
      this.clear();
      while (++index2 < length2) {
        var entry = entries3[index2];
        this.set(entry[0], entry[1]);
      }
    }
    function mapCacheClear() {
      this.size = 0;
      this.__data__ = {
        "hash": new Hash(),
        "map": new (Map2 || ListCache)(),
        "string": new Hash()
      };
    }
    function mapCacheDelete(key) {
      var result = getMapData(this, key)["delete"](key);
      this.size -= result ? 1 : 0;
      return result;
    }
    function mapCacheGet(key) {
      return getMapData(this, key).get(key);
    }
    function mapCacheHas(key) {
      return getMapData(this, key).has(key);
    }
    function mapCacheSet(key, value2) {
      var data2 = getMapData(this, key), size = data2.size;
      data2.set(key, value2);
      this.size += data2.size == size ? 0 : 1;
      return this;
    }
    MapCache.prototype.clear = mapCacheClear;
    MapCache.prototype["delete"] = mapCacheDelete;
    MapCache.prototype.get = mapCacheGet;
    MapCache.prototype.has = mapCacheHas;
    MapCache.prototype.set = mapCacheSet;
    function SetCache(values) {
      var index2 = -1, length2 = values == null ? 0 : values.length;
      this.__data__ = new MapCache();
      while (++index2 < length2) {
        this.add(values[index2]);
      }
    }
    function setCacheAdd(value2) {
      this.__data__.set(value2, HASH_UNDEFINED);
      return this;
    }
    function setCacheHas(value2) {
      return this.__data__.has(value2);
    }
    SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
    SetCache.prototype.has = setCacheHas;
    function Stack(entries3) {
      var data2 = this.__data__ = new ListCache(entries3);
      this.size = data2.size;
    }
    function stackClear() {
      this.__data__ = new ListCache();
      this.size = 0;
    }
    function stackDelete(key) {
      var data2 = this.__data__, result = data2["delete"](key);
      this.size = data2.size;
      return result;
    }
    function stackGet(key) {
      return this.__data__.get(key);
    }
    function stackHas(key) {
      return this.__data__.has(key);
    }
    function stackSet(key, value2) {
      var data2 = this.__data__;
      if (data2 instanceof ListCache) {
        var pairs2 = data2.__data__;
        if (!Map2 || pairs2.length < LARGE_ARRAY_SIZE - 1) {
          pairs2.push([key, value2]);
          this.size = ++data2.size;
          return this;
        }
        data2 = this.__data__ = new MapCache(pairs2);
      }
      data2.set(key, value2);
      this.size = data2.size;
      return this;
    }
    Stack.prototype.clear = stackClear;
    Stack.prototype["delete"] = stackDelete;
    Stack.prototype.get = stackGet;
    Stack.prototype.has = stackHas;
    Stack.prototype.set = stackSet;
    function arrayLikeKeys(value2, inherited) {
      var isArr = isArray3(value2), isArg = !isArr && isArguments(value2), isBuff = !isArr && !isArg && isBuffer4(value2), isType2 = !isArr && !isArg && !isBuff && isTypedArray3(value2), skipIndexes = isArr || isArg || isBuff || isType2, result = skipIndexes ? baseTimes(value2.length, String) : [], length2 = result.length;
      for (var key in value2) {
        if ((inherited || hasOwnProperty2.call(value2, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
        (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
        isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
        isType2 && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
        isIndex(key, length2)))) {
          result.push(key);
        }
      }
      return result;
    }
    function assocIndexOf(array, key) {
      var length2 = array.length;
      while (length2--) {
        if (eq(array[length2][0], key)) {
          return length2;
        }
      }
      return -1;
    }
    function baseGetAllKeys(object, keysFunc, symbolsFunc) {
      var result = keysFunc(object);
      return isArray3(object) ? result : arrayPush(result, symbolsFunc(object));
    }
    function baseGetTag(value2) {
      if (value2 == null) {
        return value2 === void 0 ? undefinedTag : nullTag;
      }
      return symToStringTag && symToStringTag in Object(value2) ? getRawTag(value2) : objectToString2(value2);
    }
    function baseIsArguments(value2) {
      return isObjectLike(value2) && baseGetTag(value2) == argsTag;
    }
    function baseIsEqual(value2, other, bitmask, customizer, stack) {
      if (value2 === other) {
        return true;
      }
      if (value2 == null || other == null || !isObjectLike(value2) && !isObjectLike(other)) {
        return value2 !== value2 && other !== other;
      }
      return baseIsEqualDeep(value2, other, bitmask, customizer, baseIsEqual, stack);
    }
    function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
      var objIsArr = isArray3(object), othIsArr = isArray3(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);
      objTag = objTag == argsTag ? objectTag : objTag;
      othTag = othTag == argsTag ? objectTag : othTag;
      var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
      if (isSameTag && isBuffer4(object)) {
        if (!isBuffer4(other)) {
          return false;
        }
        objIsArr = true;
        objIsObj = false;
      }
      if (isSameTag && !objIsObj) {
        stack || (stack = new Stack());
        return objIsArr || isTypedArray3(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
      }
      if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
        var objIsWrapped = objIsObj && hasOwnProperty2.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty2.call(other, "__wrapped__");
        if (objIsWrapped || othIsWrapped) {
          var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;
          stack || (stack = new Stack());
          return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
        }
      }
      if (!isSameTag) {
        return false;
      }
      stack || (stack = new Stack());
      return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
    }
    function baseIsNative(value2) {
      if (!isObject4(value2) || isMasked(value2)) {
        return false;
      }
      var pattern3 = isFunction5(value2) ? reIsNative : reIsHostCtor;
      return pattern3.test(toSource(value2));
    }
    function baseIsTypedArray(value2) {
      return isObjectLike(value2) && isLength(value2.length) && !!typedArrayTags[baseGetTag(value2)];
    }
    function baseKeys(object) {
      if (!isPrototype(object)) {
        return nativeKeys(object);
      }
      var result = [];
      for (var key in Object(object)) {
        if (hasOwnProperty2.call(object, key) && key != "constructor") {
          result.push(key);
        }
      }
      return result;
    }
    function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
      var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length;
      if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
        return false;
      }
      var stacked = stack.get(array);
      if (stacked && stack.get(other)) {
        return stacked == other;
      }
      var index2 = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : void 0;
      stack.set(array, other);
      stack.set(other, array);
      while (++index2 < arrLength) {
        var arrValue = array[index2], othValue = other[index2];
        if (customizer) {
          var compared = isPartial ? customizer(othValue, arrValue, index2, other, array, stack) : customizer(arrValue, othValue, index2, array, other, stack);
        }
        if (compared !== void 0) {
          if (compared) {
            continue;
          }
          result = false;
          break;
        }
        if (seen) {
          if (!arraySome(other, function(othValue2, othIndex) {
            if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
              return seen.push(othIndex);
            }
          })) {
            result = false;
            break;
          }
        } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
          result = false;
          break;
        }
      }
      stack["delete"](array);
      stack["delete"](other);
      return result;
    }
    function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
      switch (tag) {
        case dataViewTag:
          if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {
            return false;
          }
          object = object.buffer;
          other = other.buffer;
        case arrayBufferTag:
          if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) {
            return false;
          }
          return true;
        case boolTag:
        case dateTag:
        case numberTag:
          return eq(+object, +other);
        case errorTag:
          return object.name == other.name && object.message == other.message;
        case regexpTag:
        case stringTag:
          return object == other + "";
        case mapTag:
          var convert = mapToArray;
        case setTag:
          var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
          convert || (convert = setToArray);
          if (object.size != other.size && !isPartial) {
            return false;
          }
          var stacked = stack.get(object);
          if (stacked) {
            return stacked == other;
          }
          bitmask |= COMPARE_UNORDERED_FLAG;
          stack.set(object, other);
          var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
          stack["delete"](object);
          return result;
        case symbolTag:
          if (symbolValueOf) {
            return symbolValueOf.call(object) == symbolValueOf.call(other);
          }
      }
      return false;
    }
    function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
      var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;
      if (objLength != othLength && !isPartial) {
        return false;
      }
      var index2 = objLength;
      while (index2--) {
        var key = objProps[index2];
        if (!(isPartial ? key in other : hasOwnProperty2.call(other, key))) {
          return false;
        }
      }
      var stacked = stack.get(object);
      if (stacked && stack.get(other)) {
        return stacked == other;
      }
      var result = true;
      stack.set(object, other);
      stack.set(other, object);
      var skipCtor = isPartial;
      while (++index2 < objLength) {
        key = objProps[index2];
        var objValue = object[key], othValue = other[key];
        if (customizer) {
          var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
        }
        if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
          result = false;
          break;
        }
        skipCtor || (skipCtor = key == "constructor");
      }
      if (result && !skipCtor) {
        var objCtor = object.constructor, othCtor = other.constructor;
        if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
          result = false;
        }
      }
      stack["delete"](object);
      stack["delete"](other);
      return result;
    }
    function getAllKeys(object) {
      return baseGetAllKeys(object, keys2, getSymbols);
    }
    function getMapData(map, key) {
      var data2 = map.__data__;
      return isKeyable(key) ? data2[typeof key == "string" ? "string" : "hash"] : data2.map;
    }
    function getNative(object, key) {
      var value2 = getValue(object, key);
      return baseIsNative(value2) ? value2 : void 0;
    }
    function getRawTag(value2) {
      var isOwn = hasOwnProperty2.call(value2, symToStringTag), tag = value2[symToStringTag];
      try {
        value2[symToStringTag] = void 0;
        var unmasked = true;
      } catch (e4) {
      }
      var result = nativeObjectToString.call(value2);
      if (unmasked) {
        if (isOwn) {
          value2[symToStringTag] = tag;
        } else {
          delete value2[symToStringTag];
        }
      }
      return result;
    }
    var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
      if (object == null) {
        return [];
      }
      object = Object(object);
      return arrayFilter(nativeGetSymbols(object), function(symbol) {
        return propertyIsEnumerable.call(object, symbol);
      });
    };
    var getTag = baseGetTag;
    if (DataView2 && getTag(new DataView2(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) {
      getTag = function(value2) {
        var result = baseGetTag(value2), Ctor = result == objectTag ? value2.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
        if (ctorString) {
          switch (ctorString) {
            case dataViewCtorString:
              return dataViewTag;
            case mapCtorString:
              return mapTag;
            case promiseCtorString:
              return promiseTag;
            case setCtorString:
              return setTag;
            case weakMapCtorString:
              return weakMapTag;
          }
        }
        return result;
      };
    }
    function isIndex(value2, length2) {
      length2 = length2 == null ? MAX_SAFE_INTEGER : length2;
      return !!length2 && (typeof value2 == "number" || reIsUint.test(value2)) && (value2 > -1 && value2 % 1 == 0 && value2 < length2);
    }
    function isKeyable(value2) {
      var type = typeof value2;
      return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value2 !== "__proto__" : value2 === null;
    }
    function isMasked(func) {
      return !!maskSrcKey && maskSrcKey in func;
    }
    function isPrototype(value2) {
      var Ctor = value2 && value2.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto;
      return value2 === proto;
    }
    function objectToString2(value2) {
      return nativeObjectToString.call(value2);
    }
    function toSource(func) {
      if (func != null) {
        try {
          return funcToString.call(func);
        } catch (e4) {
        }
        try {
          return func + "";
        } catch (e4) {
        }
      }
      return "";
    }
    function eq(value2, other) {
      return value2 === other || value2 !== value2 && other !== other;
    }
    var isArguments = baseIsArguments(/* @__PURE__ */ (function() {
      return arguments;
    })()) ? baseIsArguments : function(value2) {
      return isObjectLike(value2) && hasOwnProperty2.call(value2, "callee") && !propertyIsEnumerable.call(value2, "callee");
    };
    var isArray3 = Array.isArray;
    function isArrayLike2(value2) {
      return value2 != null && isLength(value2.length) && !isFunction5(value2);
    }
    var isBuffer4 = nativeIsBuffer || stubFalse;
    function isEqual6(value2, other) {
      return baseIsEqual(value2, other);
    }
    function isFunction5(value2) {
      if (!isObject4(value2)) {
        return false;
      }
      var tag = baseGetTag(value2);
      return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
    }
    function isLength(value2) {
      return typeof value2 == "number" && value2 > -1 && value2 % 1 == 0 && value2 <= MAX_SAFE_INTEGER;
    }
    function isObject4(value2) {
      var type = typeof value2;
      return value2 != null && (type == "object" || type == "function");
    }
    function isObjectLike(value2) {
      return value2 != null && typeof value2 == "object";
    }
    var isTypedArray3 = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
    function keys2(object) {
      return isArrayLike2(object) ? arrayLikeKeys(object) : baseKeys(object);
    }
    function stubArray() {
      return [];
    }
    function stubFalse() {
      return false;
    }
    module.exports = isEqual6;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/test.js
var require_test = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/test.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var base_predicate_1 = require_base_predicate();
    function test3(value2, label, predicate, idLabel = true) {
      predicate[base_predicate_1.testSymbol](value2, test3, label, idLabel);
    }
    exports.default = test3;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/match-shape.js
var require_match_shape = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/match-shape.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.exact = exports.partial = void 0;
    var is_1 = require_dist();
    var test_1 = require_test();
    var base_predicate_1 = require_base_predicate();
    function partial2(object, shape, parent) {
      try {
        for (const key of Object.keys(shape)) {
          const label = parent ? `${parent}.${key}` : key;
          if ((0, base_predicate_1.isPredicate)(shape[key])) {
            (0, test_1.default)(object[key], label, shape[key]);
          } else if (is_1.default.plainObject(shape[key])) {
            const result = partial2(object[key], shape[key], label);
            if (result !== true) {
              return result;
            }
          }
        }
        return true;
      } catch (error) {
        return error.message;
      }
    }
    exports.partial = partial2;
    function exact2(object, shape, parent, isArray3) {
      try {
        const objectKeys = new Set(Object.keys(object));
        for (const key of Object.keys(shape)) {
          objectKeys.delete(key);
          const label = parent ? `${parent}.${key}` : key;
          if ((0, base_predicate_1.isPredicate)(shape[key])) {
            (0, test_1.default)(object[key], label, shape[key]);
          } else if (is_1.default.plainObject(shape[key])) {
            if (!Object.prototype.hasOwnProperty.call(object, key)) {
              return `Expected \`${label}\` to exist`;
            }
            const result = exact2(object[key], shape[key], label);
            if (result !== true) {
              return result;
            }
          }
        }
        if (objectKeys.size > 0) {
          const firstKey = [...objectKeys.keys()][0];
          const label = parent ? `${parent}.${firstKey}` : firstKey;
          return `Did not expect ${isArray3 ? "element" : "property"} \`${label}\` to exist, got \`${object[firstKey]}\``;
        }
        return true;
      } catch (error) {
        return error.message;
      }
    }
    exports.exact = exact2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/of-type.js
var require_of_type = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/of-type.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var test_1 = require_test();
    exports.default = (source, name, predicate) => {
      try {
        for (const item of source) {
          (0, test_1.default)(item, name, predicate, false);
        }
        return true;
      } catch (error) {
        return error.message;
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/array.js
var require_array = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/array.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ArrayPredicate = void 0;
    var isEqual6 = require_lodash();
    var predicate_1 = require_predicate();
    var match_shape_1 = require_match_shape();
    var of_type_1 = require_of_type();
    var ArrayPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("array", options);
      }
      /**
          Test an array to have a specific length.
      
          @param length - The length of the array.
          */
      length(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have length \`${length2}\`, got \`${value2.length}\``,
          validator: (value2) => value2.length === length2
        });
      }
      /**
          Test an array to have a minimum length.
      
          @param length - The minimum length of the array.
          */
      minLength(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a minimum length of \`${length2}\`, got \`${value2.length}\``,
          validator: (value2) => value2.length >= length2,
          negatedMessage: (value2, label) => `Expected ${label} to have a maximum length of \`${length2 - 1}\`, got \`${value2.length}\``
        });
      }
      /**
          Test an array to have a maximum length.
      
          @param length - The maximum length of the array.
          */
      maxLength(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a maximum length of \`${length2}\`, got \`${value2.length}\``,
          validator: (value2) => value2.length <= length2,
          negatedMessage: (value2, label) => `Expected ${label} to have a minimum length of \`${length2 + 1}\`, got \`${value2.length}\``
        });
      }
      /**
          Test an array to start with a specific value. The value is tested by identity, not structure.
      
          @param searchElement - The value that should be the start of the array.
          */
      startsWith(searchElement) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to start with \`${searchElement}\`, got \`${value2[0]}\``,
          validator: (value2) => value2[0] === searchElement
        });
      }
      /**
          Test an array to end with a specific value. The value is tested by identity, not structure.
      
          @param searchElement - The value that should be the end of the array.
          */
      endsWith(searchElement) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to end with \`${searchElement}\`, got \`${value2[value2.length - 1]}\``,
          validator: (value2) => value2[value2.length - 1] === searchElement
        });
      }
      /**
          Test an array to include all the provided elements. The values are tested by identity, not structure.
      
          @param searchElements - The values that should be included in the array.
          */
      includes(...searchElements) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to include all elements of \`${JSON.stringify(searchElements)}\`, got \`${JSON.stringify(value2)}\``,
          validator: (value2) => searchElements.every((element) => value2.includes(element))
        });
      }
      /**
          Test an array to include any of the provided elements. The values are tested by identity, not structure.
      
          @param searchElements - The values that should be included in the array.
          */
      includesAny(...searchElements) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to include any element of \`${JSON.stringify(searchElements)}\`, got \`${JSON.stringify(value2)}\``,
          validator: (value2) => searchElements.some((element) => value2.includes(element))
        });
      }
      /**
      Test an array to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be empty, got \`${JSON.stringify(value2)}\``,
          validator: (value2) => value2.length === 0
        });
      }
      /**
      Test an array to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to not be empty`,
          validator: (value2) => value2.length > 0
        });
      }
      /**
          Test an array to be deeply equal to the provided array.
      
          @param expected - Expected value to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify(expected)}\`, got \`${JSON.stringify(value2)}\``,
          validator: (value2) => isEqual6(value2, expected)
        });
      }
      /**
          Test all elements in the array to match to provided predicate.
      
          @param predicate - The predicate that should be applied against every individual item.
      
          @example
          ```
          ow(['a', 1], ow.array.ofType(ow.any(ow.string, ow.number)));
          ```
          */
      ofType(predicate) {
        return this.addValidator({
          message: (_, label, error) => `(${label}) ${error}`,
          validator: (value2) => (0, of_type_1.default)(value2, "values", predicate)
        });
      }
      /**
          Test if the elements in the array exactly matches the elements placed at the same indices in the predicates array.
      
          @param predicates - Predicates to test the array against. Describes what the tested array should look like.
      
          @example
          ```
          ow(['1', 2], ow.array.exactShape([ow.string, ow.number]));
          ```
          */
      exactShape(predicates3) {
        const shape = predicates3;
        return this.addValidator({
          message: (_, label, message) => `${message.replace("Expected", "Expected element")} in ${label}`,
          validator: (object) => (0, match_shape_1.exact)(object, shape, void 0, true)
        });
      }
    };
    exports.ArrayPredicate = ArrayPredicate2;
  }
});

// ../../node_modules/.pnpm/is-obj@2.0.0/node_modules/is-obj/index.js
var require_is_obj = __commonJS({
  "../../node_modules/.pnpm/is-obj@2.0.0/node_modules/is-obj/index.js"(exports, module) {
    "use strict";
    module.exports = (value2) => {
      const type = typeof value2;
      return value2 !== null && (type === "object" || type === "function");
    };
  }
});

// ../../node_modules/.pnpm/dot-prop@6.0.1/node_modules/dot-prop/index.js
var require_dot_prop = __commonJS({
  "../../node_modules/.pnpm/dot-prop@6.0.1/node_modules/dot-prop/index.js"(exports, module) {
    "use strict";
    var isObj = require_is_obj();
    var disallowedKeys2 = /* @__PURE__ */ new Set([
      "__proto__",
      "prototype",
      "constructor"
    ]);
    var isValidPath = (pathSegments) => !pathSegments.some((segment) => disallowedKeys2.has(segment));
    function getPathSegments2(path3) {
      const pathArray = path3.split(".");
      const parts = [];
      for (let i5 = 0; i5 < pathArray.length; i5++) {
        let p3 = pathArray[i5];
        while (p3[p3.length - 1] === "\\" && pathArray[i5 + 1] !== void 0) {
          p3 = p3.slice(0, -1) + ".";
          p3 += pathArray[++i5];
        }
        parts.push(p3);
      }
      if (!isValidPath(parts)) {
        return [];
      }
      return parts;
    }
    module.exports = {
      get(object, path3, value2) {
        if (!isObj(object) || typeof path3 !== "string") {
          return value2 === void 0 ? object : value2;
        }
        const pathArray = getPathSegments2(path3);
        if (pathArray.length === 0) {
          return;
        }
        for (let i5 = 0; i5 < pathArray.length; i5++) {
          object = object[pathArray[i5]];
          if (object === void 0 || object === null) {
            if (i5 !== pathArray.length - 1) {
              return value2;
            }
            break;
          }
        }
        return object === void 0 ? value2 : object;
      },
      set(object, path3, value2) {
        if (!isObj(object) || typeof path3 !== "string") {
          return object;
        }
        const root = object;
        const pathArray = getPathSegments2(path3);
        for (let i5 = 0; i5 < pathArray.length; i5++) {
          const p3 = pathArray[i5];
          if (!isObj(object[p3])) {
            object[p3] = {};
          }
          if (i5 === pathArray.length - 1) {
            object[p3] = value2;
          }
          object = object[p3];
        }
        return root;
      },
      delete(object, path3) {
        if (!isObj(object) || typeof path3 !== "string") {
          return false;
        }
        const pathArray = getPathSegments2(path3);
        for (let i5 = 0; i5 < pathArray.length; i5++) {
          const p3 = pathArray[i5];
          if (i5 === pathArray.length - 1) {
            delete object[p3];
            return true;
          }
          object = object[p3];
          if (!isObj(object)) {
            return false;
          }
        }
      },
      has(object, path3) {
        if (!isObj(object) || typeof path3 !== "string") {
          return false;
        }
        const pathArray = getPathSegments2(path3);
        if (pathArray.length === 0) {
          return false;
        }
        for (let i5 = 0; i5 < pathArray.length; i5++) {
          if (isObj(object)) {
            if (!(pathArray[i5] in object)) {
              return false;
            }
            object = object[pathArray[i5]];
          } else {
            return false;
          }
        }
        return true;
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/has-items.js
var require_has_items = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/has-items.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.default = (source, items, maxValues = 5) => {
      const missingValues = [];
      for (const value2 of items) {
        if (source.has(value2)) {
          continue;
        }
        missingValues.push(value2);
        if (missingValues.length === maxValues) {
          return missingValues;
        }
      }
      return missingValues.length === 0 ? true : missingValues;
    };
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/of-type-deep.js
var require_of_type_deep = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/of-type-deep.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var is_1 = require_dist();
    var test_1 = require_test();
    var ofTypeDeep2 = (object, predicate) => {
      if (!is_1.default.plainObject(object)) {
        (0, test_1.default)(object, "deep values", predicate, false);
        return true;
      }
      return Object.values(object).every((value2) => ofTypeDeep2(value2, predicate));
    };
    exports.default = (object, predicate) => {
      try {
        return ofTypeDeep2(object, predicate);
      } catch (error) {
        return error.message;
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/object.js
var require_object = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/object.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ObjectPredicate = void 0;
    var is_1 = require_dist();
    var dotProp = require_dot_prop();
    var isEqual6 = require_lodash();
    var has_items_1 = require_has_items();
    var of_type_1 = require_of_type();
    var of_type_deep_1 = require_of_type_deep();
    var match_shape_1 = require_match_shape();
    var predicate_1 = require_predicate();
    var ObjectPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("object", options);
      }
      /**
      Test if an Object is a plain object.
      */
      get plain() {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to be a plain object`,
          validator: (object) => is_1.default.plainObject(object)
        });
      }
      /**
      Test an object to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (object, label) => `Expected ${label} to be empty, got \`${JSON.stringify(object)}\``,
          validator: (object) => Object.keys(object).length === 0
        });
      }
      /**
      Test an object to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to not be empty`,
          validator: (object) => Object.keys(object).length > 0
        });
      }
      /**
          Test all the values in the object to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every value in the object.
          */
      valuesOfType(predicate) {
        return this.addValidator({
          message: (_, label, error) => `(${label}) ${error}`,
          validator: (object) => (0, of_type_1.default)(Object.values(object), "values", predicate)
        });
      }
      /**
          Test all the values in the object deeply to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every value in the object.
          */
      deepValuesOfType(predicate) {
        return this.addValidator({
          message: (_, label, error) => `(${label}) ${error}`,
          validator: (object) => (0, of_type_deep_1.default)(object, predicate)
        });
      }
      /**
          Test an object to be deeply equal to the provided object.
      
          @param expected - Expected object to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (object, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify(expected)}\`, got \`${JSON.stringify(object)}\``,
          validator: (object) => isEqual6(object, expected)
        });
      }
      /**
          Test an object to be of a specific instance type.
      
          @param instance - The expected instance type of the object.
          */
      instanceOf(instance) {
        return this.addValidator({
          message: (object, label) => {
            var _a2;
            let { name } = (_a2 = object === null || object === void 0 ? void 0 : object.constructor) !== null && _a2 !== void 0 ? _a2 : {};
            if (!name || name === "Object") {
              name = JSON.stringify(object);
            }
            return `Expected ${label} \`${name}\` to be of type \`${instance.name}\``;
          },
          validator: (object) => object instanceof instance
        });
      }
      /**
          Test an object to include all the provided keys. You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties.
      
          @param keys - The keys that should be present in the object.
          */
      hasKeys(...keys2) {
        return this.addValidator({
          message: (_, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``,
          validator: (object) => (0, has_items_1.default)({
            has: (item) => dotProp.has(object, item)
          }, keys2)
        });
      }
      /**
          Test an object to include any of the provided keys. You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties.
      
          @param keys - The keys that could be a key in the object.
          */
      hasAnyKeys(...keys2) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys2)}\``,
          validator: (object) => keys2.some((key) => dotProp.has(object, key))
        });
      }
      /**
          Test an object to match the `shape` partially. This means that it ignores unexpected properties. The shape comparison is deep.
      
          The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.
      
          @param shape - Shape to test the object against.
      
          @example
          ```
          import ow from 'ow';
      
          const object = {
              unicorn: '🦄',
              rainbow: '🌈'
          };
      
          ow(object, ow.object.partialShape({
              unicorn: ow.string
          }));
          ```
          */
      partialShape(shape) {
        return this.addValidator({
          // TODO: Improve this when message handling becomes smarter
          message: (_, label, message) => `${message.replace("Expected", "Expected property")} in ${label}`,
          validator: (object) => (0, match_shape_1.partial)(object, shape)
        });
      }
      /**
          Test an object to match the `shape` exactly. This means that will fail if it comes across unexpected properties. The shape comparison is deep.
      
          The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.
      
          @param shape - Shape to test the object against.
      
          @example
          ```
          import ow from 'ow';
      
          ow({unicorn: '🦄'}, ow.object.exactShape({
              unicorn: ow.string
          }));
          ```
          */
      exactShape(shape) {
        return this.addValidator({
          // TODO: Improve this when message handling becomes smarter
          message: (_, label, message) => `${message.replace("Expected", "Expected property")} in ${label}`,
          validator: (object) => (0, match_shape_1.exact)(object, shape)
        });
      }
    };
    exports.ObjectPredicate = ObjectPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/date.js
var require_date = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/date.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DatePredicate = void 0;
    var predicate_1 = require_predicate();
    var DatePredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("date", options);
      }
      /**
          Test a date to be before another date.
      
          @param date - Maximum value.
          */
      before(date) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} ${value2.toISOString()} to be before ${date.toISOString()}`,
          validator: (value2) => value2.getTime() < date.getTime()
        });
      }
      /**
          Test a date to be before another date.
      
          @param date - Minimum value.
          */
      after(date) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} ${value2.toISOString()} to be after ${date.toISOString()}`,
          validator: (value2) => value2.getTime() > date.getTime()
        });
      }
    };
    exports.DatePredicate = DatePredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/error.js
var require_error = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/error.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ErrorPredicate = void 0;
    var predicate_1 = require_predicate();
    var ErrorPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("error", options);
      }
      /**
          Test an error to have a specific name.
      
          @param expected - Expected name of the Error.
          */
      name(expected) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} to have name \`${expected}\`, got \`${error.name}\``,
          validator: (error) => error.name === expected
        });
      }
      /**
          Test an error to have a specific message.
      
          @param expected - Expected message of the Error.
          */
      message(expected) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} message to be \`${expected}\`, got \`${error.message}\``,
          validator: (error) => error.message === expected
        });
      }
      /**
          Test the error message to include a specific message.
      
          @param message - Message that should be included in the error.
          */
      messageIncludes(message) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} message to include \`${message}\`, got \`${error.message}\``,
          validator: (error) => error.message.includes(message)
        });
      }
      /**
          Test the error object to have specific keys.
      
          @param keys - One or more keys which should be part of the error object.
          */
      hasKeys(...keys2) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} message to have keys \`${keys2.join("`, `")}\``,
          validator: (error) => keys2.every((key) => Object.prototype.hasOwnProperty.call(error, key))
        });
      }
      /**
          Test an error to be of a specific instance type.
      
          @param instance - The expected instance type of the error.
          */
      instanceOf(instance) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} \`${error.name}\` to be of type \`${instance.name}\``,
          validator: (error) => error instanceof instance
        });
      }
      /**
      Test an Error to be a TypeError.
      */
      get typeError() {
        return this.instanceOf(TypeError);
      }
      /**
      Test an Error to be an EvalError.
      */
      get evalError() {
        return this.instanceOf(EvalError);
      }
      /**
      Test an Error to be a RangeError.
      */
      get rangeError() {
        return this.instanceOf(RangeError);
      }
      /**
      Test an Error to be a ReferenceError.
      */
      get referenceError() {
        return this.instanceOf(ReferenceError);
      }
      /**
      Test an Error to be a SyntaxError.
      */
      get syntaxError() {
        return this.instanceOf(SyntaxError);
      }
      /**
      Test an Error to be a URIError.
      */
      get uriError() {
        return this.instanceOf(URIError);
      }
    };
    exports.ErrorPredicate = ErrorPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/map.js
var require_map = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/map.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.MapPredicate = void 0;
    var isEqual6 = require_lodash();
    var has_items_1 = require_has_items();
    var of_type_1 = require_of_type();
    var predicate_1 = require_predicate();
    var MapPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("Map", options);
      }
      /**
          Test a Map to have a specific size.
      
          @param size - The size of the Map.
          */
      size(size) {
        return this.addValidator({
          message: (map, label) => `Expected ${label} to have size \`${size}\`, got \`${map.size}\``,
          validator: (map) => map.size === size
        });
      }
      /**
          Test an Map to have a minimum size.
      
          @param size - The minimum size of the Map.
          */
      minSize(size) {
        return this.addValidator({
          message: (map, label) => `Expected ${label} to have a minimum size of \`${size}\`, got \`${map.size}\``,
          validator: (map) => map.size >= size,
          negatedMessage: (map, label) => `Expected ${label} to have a maximum size of \`${size - 1}\`, got \`${map.size}\``
        });
      }
      /**
          Test an Map to have a maximum size.
      
          @param size - The maximum size of the Map.
          */
      maxSize(size) {
        return this.addValidator({
          message: (map, label) => `Expected ${label} to have a maximum size of \`${size}\`, got \`${map.size}\``,
          validator: (map) => map.size <= size,
          negatedMessage: (map, label) => `Expected ${label} to have a minimum size of \`${size + 1}\`, got \`${map.size}\``
        });
      }
      /**
          Test a Map to include all the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that should be a key in the Map.
          */
      hasKeys(...keys2) {
        return this.addValidator({
          message: (_, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``,
          validator: (map) => (0, has_items_1.default)(map, keys2)
        });
      }
      /**
          Test a Map to include any of the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that could be a key in the Map.
          */
      hasAnyKeys(...keys2) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys2)}\``,
          validator: (map) => keys2.some((key) => map.has(key))
        });
      }
      /**
          Test a Map to include all the provided values. The values are tested by identity, not structure.
      
          @param values - The values that should be a value in the Map.
          */
      hasValues(...values) {
        return this.addValidator({
          message: (_, label, missingValues) => `Expected ${label} to have values \`${JSON.stringify(missingValues)}\``,
          validator: (map) => (0, has_items_1.default)(new Set(map.values()), values)
        });
      }
      /**
          Test a Map to include any of the provided values. The values are tested by identity, not structure.
      
          @param values - The values that could be a value in the Map.
          */
      hasAnyValues(...values) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to have any value of \`${JSON.stringify(values)}\``,
          validator: (map) => {
            const valueSet = new Set(map.values());
            return values.some((key) => valueSet.has(key));
          }
        });
      }
      /**
          Test all the keys in the Map to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every key in the Map.
          */
      keysOfType(predicate) {
        return this.addValidator({
          message: (_, label, error) => `(${label}) ${error}`,
          validator: (map) => (0, of_type_1.default)(map.keys(), "keys", predicate)
        });
      }
      /**
          Test all the values in the Map to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every value in the Map.
          */
      valuesOfType(predicate) {
        return this.addValidator({
          message: (_, label, error) => `(${label}) ${error}`,
          validator: (map) => (0, of_type_1.default)(map.values(), "values", predicate)
        });
      }
      /**
      Test a Map to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (map, label) => `Expected ${label} to be empty, got \`${JSON.stringify([...map])}\``,
          validator: (map) => map.size === 0
        });
      }
      /**
      Test a Map to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to not be empty`,
          validator: (map) => map.size > 0
        });
      }
      /**
          Test a Map to be deeply equal to the provided Map.
      
          @param expected - Expected Map to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (map, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify([...expected])}\`, got \`${JSON.stringify([...map])}\``,
          validator: (map) => isEqual6(map, expected)
        });
      }
    };
    exports.MapPredicate = MapPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/weak-map.js
var require_weak_map = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/weak-map.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.WeakMapPredicate = void 0;
    var has_items_1 = require_has_items();
    var predicate_1 = require_predicate();
    var WeakMapPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("WeakMap", options);
      }
      /**
          Test a WeakMap to include all the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that should be a key in the WeakMap.
          */
      hasKeys(...keys2) {
        return this.addValidator({
          message: (_, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``,
          validator: (map) => (0, has_items_1.default)(map, keys2)
        });
      }
      /**
          Test a WeakMap to include any of the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that could be a key in the WeakMap.
          */
      hasAnyKeys(...keys2) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys2)}\``,
          validator: (map) => keys2.some((key) => map.has(key))
        });
      }
    };
    exports.WeakMapPredicate = WeakMapPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/set.js
var require_set = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/set.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.SetPredicate = void 0;
    var isEqual6 = require_lodash();
    var has_items_1 = require_has_items();
    var of_type_1 = require_of_type();
    var predicate_1 = require_predicate();
    var SetPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("Set", options);
      }
      /**
          Test a Set to have a specific size.
      
          @param size - The size of the Set.
          */
      size(size) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to have size \`${size}\`, got \`${set.size}\``,
          validator: (set) => set.size === size
        });
      }
      /**
          Test a Set to have a minimum size.
      
          @param size - The minimum size of the Set.
          */
      minSize(size) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to have a minimum size of \`${size}\`, got \`${set.size}\``,
          validator: (set) => set.size >= size,
          negatedMessage: (set, label) => `Expected ${label} to have a maximum size of \`${size - 1}\`, got \`${set.size}\``
        });
      }
      /**
          Test a Set to have a maximum size.
      
          @param size - The maximum size of the Set.
          */
      maxSize(size) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to have a maximum size of \`${size}\`, got \`${set.size}\``,
          validator: (set) => set.size <= size,
          negatedMessage: (set, label) => `Expected ${label} to have a minimum size of \`${size + 1}\`, got \`${set.size}\``
        });
      }
      /**
          Test a Set to include all the provided items. The items are tested by identity, not structure.
      
          @param items - The items that should be a item in the Set.
          */
      has(...items) {
        return this.addValidator({
          message: (_, label, missingItems) => `Expected ${label} to have items \`${JSON.stringify(missingItems)}\``,
          validator: (set) => (0, has_items_1.default)(set, items)
        });
      }
      /**
          Test a Set to include any of the provided items. The items are tested by identity, not structure.
      
          @param items - The items that could be a item in the Set.
          */
      hasAny(...items) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to have any item of \`${JSON.stringify(items)}\``,
          validator: (set) => items.some((item) => set.has(item))
        });
      }
      /**
          Test all the items in the Set to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every item in the Set.
          */
      ofType(predicate) {
        return this.addValidator({
          message: (_, label, error) => `(${label}) ${error}`,
          validator: (set) => (0, of_type_1.default)(set, "values", predicate)
        });
      }
      /**
      Test a Set to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to be empty, got \`${JSON.stringify([...set])}\``,
          validator: (set) => set.size === 0
        });
      }
      /**
      Test a Set to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to not be empty`,
          validator: (set) => set.size > 0
        });
      }
      /**
          Test a Set to be deeply equal to the provided Set.
      
          @param expected - Expected Set to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify([...expected])}\`, got \`${JSON.stringify([...set])}\``,
          validator: (set) => isEqual6(set, expected)
        });
      }
    };
    exports.SetPredicate = SetPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/weak-set.js
var require_weak_set = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/weak-set.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.WeakSetPredicate = void 0;
    var has_items_1 = require_has_items();
    var predicate_1 = require_predicate();
    var WeakSetPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("WeakSet", options);
      }
      /**
          Test a WeakSet to include all the provided items. The items are tested by identity, not structure.
      
          @param items - The items that should be a item in the WeakSet.
          */
      has(...items) {
        return this.addValidator({
          message: (_, label, missingItems) => `Expected ${label} to have items \`${JSON.stringify(missingItems)}\``,
          validator: (set) => (0, has_items_1.default)(set, items)
        });
      }
      /**
          Test a WeakSet to include any of the provided items. The items are tested by identity, not structure.
      
          @param items - The items that could be a item in the WeakSet.
          */
      hasAny(...items) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to have any item of \`${JSON.stringify(items)}\``,
          validator: (set) => items.some((item) => set.has(item))
        });
      }
    };
    exports.WeakSetPredicate = WeakSetPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/typed-array.js
var require_typed_array = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/typed-array.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.TypedArrayPredicate = void 0;
    var predicate_1 = require_predicate();
    var TypedArrayPredicate2 = class extends predicate_1.Predicate {
      /**
          Test a typed array to have a specific byte length.
      
          @param byteLength - The byte length of the typed array.
          */
      byteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength === byteLength3
        });
      }
      /**
          Test a typed array to have a minimum byte length.
      
          @param byteLength - The minimum byte length of the typed array.
          */
      minByteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a minimum byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength >= byteLength3,
          negatedMessage: (value2, label) => `Expected ${label} to have a maximum byte length of \`${byteLength3 - 1}\`, got \`${value2.byteLength}\``
        });
      }
      /**
          Test a typed array to have a minimum byte length.
      
          @param length - The minimum byte length of the typed array.
          */
      maxByteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a maximum byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength <= byteLength3,
          negatedMessage: (value2, label) => `Expected ${label} to have a minimum byte length of \`${byteLength3 + 1}\`, got \`${value2.byteLength}\``
        });
      }
      /**
          Test a typed array to have a specific length.
      
          @param length - The length of the typed array.
          */
      length(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have length \`${length2}\`, got \`${value2.length}\``,
          validator: (value2) => value2.length === length2
        });
      }
      /**
          Test a typed array to have a minimum length.
      
          @param length - The minimum length of the typed array.
          */
      minLength(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a minimum length of \`${length2}\`, got \`${value2.length}\``,
          validator: (value2) => value2.length >= length2,
          negatedMessage: (value2, label) => `Expected ${label} to have a maximum length of \`${length2 - 1}\`, got \`${value2.length}\``
        });
      }
      /**
          Test a typed array to have a maximum length.
      
          @param length - The maximum length of the typed array.
          */
      maxLength(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a maximum length of \`${length2}\`, got \`${value2.length}\``,
          validator: (value2) => value2.length <= length2,
          negatedMessage: (value2, label) => `Expected ${label} to have a minimum length of \`${length2 + 1}\`, got \`${value2.length}\``
        });
      }
    };
    exports.TypedArrayPredicate = TypedArrayPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/array-buffer.js
var require_array_buffer = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/array-buffer.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ArrayBufferPredicate = void 0;
    var predicate_1 = require_predicate();
    var ArrayBufferPredicate2 = class extends predicate_1.Predicate {
      /**
          Test an array buffer to have a specific byte length.
      
          @param byteLength - The byte length of the array buffer.
          */
      byteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength === byteLength3
        });
      }
      /**
          Test an array buffer to have a minimum byte length.
      
          @param byteLength - The minimum byte length of the array buffer.
          */
      minByteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a minimum byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength >= byteLength3,
          negatedMessage: (value2, label) => `Expected ${label} to have a maximum byte length of \`${byteLength3 - 1}\`, got \`${value2.byteLength}\``
        });
      }
      /**
          Test an array buffer to have a minimum byte length.
      
          @param length - The minimum byte length of the array buffer.
          */
      maxByteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a maximum byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength <= byteLength3,
          negatedMessage: (value2, label) => `Expected ${label} to have a minimum byte length of \`${byteLength3 + 1}\`, got \`${value2.byteLength}\``
        });
      }
    };
    exports.ArrayBufferPredicate = ArrayBufferPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/data-view.js
var require_data_view = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/data-view.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DataViewPredicate = void 0;
    var predicate_1 = require_predicate();
    var DataViewPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("DataView", options);
      }
      /**
          Test a DataView to have a specific byte length.
      
          @param byteLength - The byte length of the DataView.
          */
      byteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength === byteLength3
        });
      }
      /**
          Test a DataView to have a minimum byte length.
      
          @param byteLength - The minimum byte length of the DataView.
          */
      minByteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a minimum byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength >= byteLength3,
          negatedMessage: (value2, label) => `Expected ${label} to have a maximum byte length of \`${byteLength3 - 1}\`, got \`${value2.byteLength}\``
        });
      }
      /**
          Test a DataView to have a minimum byte length.
      
          @param length - The minimum byte length of the DataView.
          */
      maxByteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a maximum byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength <= byteLength3,
          negatedMessage: (value2, label) => `Expected ${label} to have a minimum byte length of \`${byteLength3 + 1}\`, got \`${value2.byteLength}\``
        });
      }
    };
    exports.DataViewPredicate = DataViewPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/any.js
var require_any = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/any.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.AnyPredicate = void 0;
    var argument_error_1 = require_argument_error();
    var base_predicate_1 = require_base_predicate();
    var generate_argument_error_message_1 = require_generate_argument_error_message();
    var AnyPredicate2 = class {
      constructor(predicates3, options = {}) {
        Object.defineProperty(this, "predicates", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: predicates3
        });
        Object.defineProperty(this, "options", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: options
        });
      }
      [base_predicate_1.testSymbol](value2, main, label, idLabel) {
        const errors = /* @__PURE__ */ new Map();
        for (const predicate of this.predicates) {
          try {
            main(value2, label, predicate, idLabel);
            return;
          } catch (error) {
            if (value2 === void 0 && this.options.optional === true) {
              return;
            }
            if (error instanceof argument_error_1.ArgumentError) {
              for (const [key, value3] of error.validationErrors.entries()) {
                const alreadyPresent = errors.get(key);
                errors.set(key, /* @__PURE__ */ new Set([...alreadyPresent !== null && alreadyPresent !== void 0 ? alreadyPresent : [], ...value3]));
              }
            }
          }
        }
        if (errors.size > 0) {
          const message = (0, generate_argument_error_message_1.generateArgumentErrorMessage)(errors, true);
          throw new argument_error_1.ArgumentError(`Any predicate failed with the following errors:
${message}`, main, errors);
        }
      }
    };
    exports.AnyPredicate = AnyPredicate2;
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates.js
var require_predicates = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.AnyPredicate = exports.DataViewPredicate = exports.ArrayBufferPredicate = exports.TypedArrayPredicate = exports.WeakSetPredicate = exports.SetPredicate = exports.WeakMapPredicate = exports.MapPredicate = exports.ErrorPredicate = exports.DatePredicate = exports.ObjectPredicate = exports.ArrayPredicate = exports.BooleanPredicate = exports.BigIntPredicate = exports.NumberPredicate = exports.StringPredicate = void 0;
    var string_1 = require_string();
    Object.defineProperty(exports, "StringPredicate", { enumerable: true, get: function() {
      return string_1.StringPredicate;
    } });
    var number_1 = require_number();
    Object.defineProperty(exports, "NumberPredicate", { enumerable: true, get: function() {
      return number_1.NumberPredicate;
    } });
    var bigint_1 = require_bigint();
    Object.defineProperty(exports, "BigIntPredicate", { enumerable: true, get: function() {
      return bigint_1.BigIntPredicate;
    } });
    var boolean_1 = require_boolean();
    Object.defineProperty(exports, "BooleanPredicate", { enumerable: true, get: function() {
      return boolean_1.BooleanPredicate;
    } });
    var predicate_1 = require_predicate();
    var array_1 = require_array();
    Object.defineProperty(exports, "ArrayPredicate", { enumerable: true, get: function() {
      return array_1.ArrayPredicate;
    } });
    var object_1 = require_object();
    Object.defineProperty(exports, "ObjectPredicate", { enumerable: true, get: function() {
      return object_1.ObjectPredicate;
    } });
    var date_1 = require_date();
    Object.defineProperty(exports, "DatePredicate", { enumerable: true, get: function() {
      return date_1.DatePredicate;
    } });
    var error_1 = require_error();
    Object.defineProperty(exports, "ErrorPredicate", { enumerable: true, get: function() {
      return error_1.ErrorPredicate;
    } });
    var map_1 = require_map();
    Object.defineProperty(exports, "MapPredicate", { enumerable: true, get: function() {
      return map_1.MapPredicate;
    } });
    var weak_map_1 = require_weak_map();
    Object.defineProperty(exports, "WeakMapPredicate", { enumerable: true, get: function() {
      return weak_map_1.WeakMapPredicate;
    } });
    var set_1 = require_set();
    Object.defineProperty(exports, "SetPredicate", { enumerable: true, get: function() {
      return set_1.SetPredicate;
    } });
    var weak_set_1 = require_weak_set();
    Object.defineProperty(exports, "WeakSetPredicate", { enumerable: true, get: function() {
      return weak_set_1.WeakSetPredicate;
    } });
    var typed_array_1 = require_typed_array();
    Object.defineProperty(exports, "TypedArrayPredicate", { enumerable: true, get: function() {
      return typed_array_1.TypedArrayPredicate;
    } });
    var array_buffer_1 = require_array_buffer();
    Object.defineProperty(exports, "ArrayBufferPredicate", { enumerable: true, get: function() {
      return array_buffer_1.ArrayBufferPredicate;
    } });
    var data_view_1 = require_data_view();
    Object.defineProperty(exports, "DataViewPredicate", { enumerable: true, get: function() {
      return data_view_1.DataViewPredicate;
    } });
    var any_1 = require_any();
    Object.defineProperty(exports, "AnyPredicate", { enumerable: true, get: function() {
      return any_1.AnyPredicate;
    } });
    exports.default = (object, options) => {
      Object.defineProperties(object, {
        string: {
          get: () => new string_1.StringPredicate(options)
        },
        number: {
          get: () => new number_1.NumberPredicate(options)
        },
        bigint: {
          get: () => new bigint_1.BigIntPredicate(options)
        },
        boolean: {
          get: () => new boolean_1.BooleanPredicate(options)
        },
        undefined: {
          get: () => new predicate_1.Predicate("undefined", options)
        },
        null: {
          get: () => new predicate_1.Predicate("null", options)
        },
        nullOrUndefined: {
          get: () => new predicate_1.Predicate("nullOrUndefined", options)
        },
        nan: {
          get: () => new predicate_1.Predicate("nan", options)
        },
        symbol: {
          get: () => new predicate_1.Predicate("symbol", options)
        },
        array: {
          get: () => new array_1.ArrayPredicate(options)
        },
        object: {
          get: () => new object_1.ObjectPredicate(options)
        },
        date: {
          get: () => new date_1.DatePredicate(options)
        },
        error: {
          get: () => new error_1.ErrorPredicate(options)
        },
        map: {
          get: () => new map_1.MapPredicate(options)
        },
        weakMap: {
          get: () => new weak_map_1.WeakMapPredicate(options)
        },
        set: {
          get: () => new set_1.SetPredicate(options)
        },
        weakSet: {
          get: () => new weak_set_1.WeakSetPredicate(options)
        },
        function: {
          get: () => new predicate_1.Predicate("Function", options)
        },
        buffer: {
          get: () => new predicate_1.Predicate("Buffer", options)
        },
        regExp: {
          get: () => new predicate_1.Predicate("RegExp", options)
        },
        promise: {
          get: () => new predicate_1.Predicate("Promise", options)
        },
        typedArray: {
          get: () => new typed_array_1.TypedArrayPredicate("TypedArray", options)
        },
        int8Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Int8Array", options)
        },
        uint8Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Uint8Array", options)
        },
        uint8ClampedArray: {
          get: () => new typed_array_1.TypedArrayPredicate("Uint8ClampedArray", options)
        },
        int16Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Int16Array", options)
        },
        uint16Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Uint16Array", options)
        },
        int32Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Int32Array", options)
        },
        uint32Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Uint32Array", options)
        },
        float32Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Float32Array", options)
        },
        float64Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Float64Array", options)
        },
        arrayBuffer: {
          get: () => new array_buffer_1.ArrayBufferPredicate("ArrayBuffer", options)
        },
        sharedArrayBuffer: {
          get: () => new array_buffer_1.ArrayBufferPredicate("SharedArrayBuffer", options)
        },
        dataView: {
          get: () => new data_view_1.DataViewPredicate(options)
        },
        iterable: {
          get: () => new predicate_1.Predicate("Iterable", options)
        },
        any: {
          value: (...predicates3) => new any_1.AnyPredicate(predicates3, options)
        }
      });
      return object;
    };
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/modifiers.js
var require_modifiers = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/modifiers.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var predicates_1 = require_predicates();
    exports.default = (object) => {
      Object.defineProperties(object, {
        optional: {
          get: () => (0, predicates_1.default)({}, { optional: true })
        }
      });
      return object;
    };
  }
});

// ../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/index.js
var require_dist2 = __commonJS({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __exportStar2 = exports && exports.__exportStar || function(m3, exports2) {
      for (var p3 in m3) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p3)) __createBinding2(exports2, m3, p3);
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ArgumentError = exports.Predicate = void 0;
    var callsites_1 = require_callsites();
    var infer_label_1 = require_infer_label();
    var predicate_1 = require_predicate();
    Object.defineProperty(exports, "Predicate", { enumerable: true, get: function() {
      return predicate_1.Predicate;
    } });
    var base_predicate_1 = require_base_predicate();
    var modifiers_1 = require_modifiers();
    var predicates_1 = require_predicates();
    var test_1 = require_test();
    var ow2 = (value2, labelOrPredicate, predicate) => {
      if (!(0, base_predicate_1.isPredicate)(labelOrPredicate) && typeof labelOrPredicate !== "string") {
        throw new TypeError(`Expected second argument to be a predicate or a string, got \`${typeof labelOrPredicate}\``);
      }
      if ((0, base_predicate_1.isPredicate)(labelOrPredicate)) {
        const stackFrames = (0, callsites_1.default)();
        (0, test_1.default)(value2, () => (0, infer_label_1.inferLabel)(stackFrames), labelOrPredicate);
        return;
      }
      (0, test_1.default)(value2, labelOrPredicate, predicate);
    };
    Object.defineProperties(ow2, {
      isValid: {
        value: (value2, predicate) => {
          try {
            (0, test_1.default)(value2, "", predicate);
            return true;
          } catch {
            return false;
          }
        }
      },
      create: {
        value: (labelOrPredicate, predicate) => (value2, label) => {
          if ((0, base_predicate_1.isPredicate)(labelOrPredicate)) {
            const stackFrames = (0, callsites_1.default)();
            (0, test_1.default)(value2, label !== null && label !== void 0 ? label : (() => (0, infer_label_1.inferLabel)(stackFrames)), labelOrPredicate);
            return;
          }
          (0, test_1.default)(value2, label !== null && label !== void 0 ? label : labelOrPredicate, predicate);
        }
      }
    });
    var _ow2 = (0, predicates_1.default)((0, modifiers_1.default)(ow2));
    exports.default = _ow2;
    __exportStar2(require_predicates(), exports);
    var argument_error_1 = require_argument_error();
    Object.defineProperty(exports, "ArgumentError", { enumerable: true, get: function() {
      return argument_error_1.ArgumentError;
    } });
  }
});

// ../../node_modules/.pnpm/@apify+timeout@0.3.2/node_modules/@apify/timeout/cjs/index.cjs
var require_cjs = __commonJS({
  "../../node_modules/.pnpm/@apify+timeout@0.3.2/node_modules/@apify/timeout/cjs/index.cjs"(exports, module) {
    "use strict";
    var __defProp3 = Object.defineProperty;
    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames2 = Object.getOwnPropertyNames;
    var __hasOwnProp2 = Object.prototype.hasOwnProperty;
    var __name2 = (target, value2) => __defProp3(target, "name", { value: value2, configurable: true });
    var __export2 = (target, all5) => {
      for (var name in all5)
        __defProp3(target, name, { get: all5[name], enumerable: true });
    };
    var __copyProps2 = (to, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames2(from))
          if (!__hasOwnProp2.call(to, key) && key !== except)
            __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
      }
      return to;
    };
    var __toCommonJS2 = (mod3) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod3);
    var index_exports = {};
    __export2(index_exports, {
      TimeoutError: () => TimeoutError3,
      addTimeoutToPromise: () => addTimeoutToPromise,
      storage: () => storage2,
      tryCancel: () => tryCancel
    });
    module.exports = __toCommonJS2(index_exports);
    var import_node_async_hooks = __require("async_hooks");
    var storage2 = new import_node_async_hooks.AsyncLocalStorage();
    var _TimeoutError = class _TimeoutError extends Error {
    };
    __name2(_TimeoutError, "TimeoutError");
    var TimeoutError3 = _TimeoutError;
    var _InternalTimeoutError = class _InternalTimeoutError extends TimeoutError3 {
    };
    __name2(_InternalTimeoutError, "InternalTimeoutError");
    var InternalTimeoutError = _InternalTimeoutError;
    function tryCancel() {
      const signal = storage2.getStore()?.cancelTask.signal;
      if (signal?.aborted) {
        throw new InternalTimeoutError("Promise handler has been canceled due to a timeout");
      }
    }
    __name2(tryCancel, "tryCancel");
    async function addTimeoutToPromise(handler, timeoutMillis, errorMessage) {
      const context = storage2.getStore() ?? {
        cancelTask: new AbortController()
      };
      let returnValue;
      const wrap = /* @__PURE__ */ __name2(async () => {
        try {
          returnValue = await handler();
        } catch (e4) {
          if (!(e4 instanceof InternalTimeoutError)) {
            throw e4;
          }
        }
      }, "wrap");
      return new Promise((resolve4, reject) => {
        const timeout = setTimeout(() => {
          context.cancelTask.abort();
          const error = errorMessage instanceof Error ? errorMessage : new TimeoutError3(errorMessage);
          reject(error);
        }, timeoutMillis);
        storage2.run(context, () => {
          wrap().then(() => resolve4(returnValue)).catch(reject).finally(() => clearTimeout(timeout));
        });
      });
    }
    __name2(addTimeoutToPromise, "addTimeoutToPromise");
  }
});

// ../../node_modules/.pnpm/@apify+consts@2.51.0/node_modules/@apify/consts/cjs/index.cjs
var require_cjs2 = __commonJS({
  "../../node_modules/.pnpm/@apify+consts@2.51.0/node_modules/@apify/consts/cjs/index.cjs"(exports, module) {
    "use strict";
    var __defProp3 = Object.defineProperty;
    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames2 = Object.getOwnPropertyNames;
    var __hasOwnProp2 = Object.prototype.hasOwnProperty;
    var __export2 = (target, all5) => {
      for (var name in all5)
        __defProp3(target, name, { get: all5[name], enumerable: true });
    };
    var __copyProps2 = (to, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames2(from))
          if (!__hasOwnProp2.call(to, key) && key !== except)
            __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
      }
      return to;
    };
    var __toCommonJS2 = (mod3) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod3);
    var index_exports = {};
    __export2(index_exports, {
      ACTOR_BUILD_ARGS: () => ACTOR_BUILD_ARGS,
      ACTOR_CATEGORIES: () => ACTOR_CATEGORIES,
      ACTOR_ENV_VARS: () => ACTOR_ENV_VARS,
      ACTOR_EVENT_NAMES: () => ACTOR_EVENT_NAMES,
      ACTOR_JOB_STATUSES: () => ACTOR_JOB_STATUSES,
      ACTOR_JOB_TERMINAL_STATUSES: () => ACTOR_JOB_TERMINAL_STATUSES,
      ACTOR_JOB_TYPES: () => ACTOR_JOB_TYPES,
      ACTOR_LIMITS: () => ACTOR_LIMITS,
      ACTOR_NAME: () => ACTOR_NAME,
      ACTOR_PERMISSION_LEVEL: () => ACTOR_PERMISSION_LEVEL,
      ACTOR_RESTART_ON_ERROR: () => ACTOR_RESTART_ON_ERROR,
      ACTOR_SOURCE_TYPES: () => ACTOR_SOURCE_TYPES,
      ACTOR_TYPES: () => ACTOR_TYPES,
      ACT_JOB_STATUSES: () => ACT_JOB_STATUSES,
      ACT_JOB_TERMINAL_STATUSES: () => ACT_JOB_TERMINAL_STATUSES,
      ACT_JOB_TYPES: () => ACT_JOB_TYPES,
      ACT_RESTART_ON_ERROR: () => ACT_RESTART_ON_ERROR,
      ACT_SOURCE_TYPES: () => ACT_SOURCE_TYPES,
      ACT_TYPES: () => ACT_TYPES,
      ALL_ACTOR_CATEGORIES: () => ALL_ACTOR_CATEGORIES,
      ANONYMOUS_USERNAME: () => ANONYMOUS_USERNAME,
      APIFY_ENV_VARS: () => APIFY_ENV_VARS,
      APIFY_ID_REGEX: () => APIFY_ID_REGEX,
      APIFY_PROXY_VALUE_REGEX: () => APIFY_PROXY_VALUE_REGEX,
      BUILD_TAG_LATEST: () => BUILD_TAG_LATEST,
      COMMA_SEPARATED_EMAILS_REGEX: () => COMMA_SEPARATED_EMAILS_REGEX,
      COMMA_SEPARATED_EMAILS_REGEX_STR: () => COMMA_SEPARATED_EMAILS_REGEX_STR,
      COMMA_SEPARATED_LIST_ENV_VARS: () => COMMA_SEPARATED_LIST_ENV_VARS,
      COMPUTE_UNIT_MB: () => COMPUTE_UNIT_MB,
      COMPUTE_UNIT_MILLIS: () => COMPUTE_UNIT_MILLIS,
      CONTACT_LINK_REGEX: () => CONTACT_LINK_REGEX,
      DEFAULT_ACTOR_STANDBY_PORT: () => DEFAULT_ACTOR_STANDBY_PORT,
      DEFAULT_CONTAINER_PORT: () => DEFAULT_CONTAINER_PORT,
      DEFAULT_PLATFORM_LIMITS: () => DEFAULT_PLATFORM_LIMITS,
      DNS_SAFE_NAME_MAX_LENGTH: () => DNS_SAFE_NAME_MAX_LENGTH,
      DNS_SAFE_NAME_REGEX: () => DNS_SAFE_NAME_REGEX,
      DOCKER_LABELS: () => DOCKER_LABELS,
      EMAIL: () => EMAIL,
      EMAIL_REGEX: () => EMAIL_REGEX,
      EMAIL_REGEX_STR: () => EMAIL_REGEX_STR,
      ENV_VARS: () => ENV_VARS,
      FINISHED_PROJECT_STATUSES: () => FINISHED_PROJECT_STATUSES,
      FREE_SUBSCRIPTION_PLAN_CODE: () => FREE_SUBSCRIPTION_PLAN_CODE,
      GITHUB_GIST_URL_REGEX: () => GITHUB_GIST_URL_REGEX,
      GITHUB_REGEX: () => GITHUB_REGEX,
      GIT_MAIN_BRANCH: () => GIT_MAIN_BRANCH,
      GIT_REPO_REGEX: () => GIT_REPO_REGEX,
      HTTP_URL_REGEX: () => HTTP_URL_REGEX,
      INTEGER_ENV_VARS: () => INTEGER_ENV_VARS,
      ISSUES_STATUS_ALL: () => ISSUES_STATUS_ALL,
      ISSUES_STATUS_TYPES: () => ISSUES_STATUS_TYPES,
      JSON_ENCODED_ENV_VARS: () => JSON_ENCODED_ENV_VARS,
      KEY_VALUE_STORE_KEYS: () => KEY_VALUE_STORE_KEYS,
      KEY_VALUE_STORE_KEY_REGEX: () => KEY_VALUE_STORE_KEY_REGEX,
      LINKEDIN_PROFILE_REGEX: () => LINKEDIN_PROFILE_REGEX,
      LOCAL_ACTOR_ENV_VARS: () => LOCAL_ACTOR_ENV_VARS,
      LOCAL_APIFY_ENV_VARS: () => LOCAL_APIFY_ENV_VARS,
      LOCAL_ENV_VARS: () => LOCAL_ENV_VARS,
      LOCAL_STORAGE_SUBDIRS: () => LOCAL_STORAGE_SUBDIRS,
      MARKETPLACE_USER_ROLES: () => MARKETPLACE_USER_ROLES,
      MAX_MULTIFILE_BYTES: () => MAX_MULTIFILE_BYTES,
      MAX_PAYLOAD_SIZE_BYTES: () => MAX_PAYLOAD_SIZE_BYTES,
      META_ORIGINS: () => META_ORIGINS,
      ME_USER_NAME_PLACEHOLDER: () => ME_USER_NAME_PLACEHOLDER,
      PROFILE_NAME: () => PROFILE_NAME,
      PROJECT_STATUSES: () => PROJECT_STATUSES,
      PROXY_URL_REGEX: () => PROXY_URL_REGEX,
      RELATIVE_URL_REGEX: () => RELATIVE_URL_REGEX,
      REQUEST_QUEUE_HEAD_MAX_LIMIT: () => REQUEST_QUEUE_HEAD_MAX_LIMIT,
      REQUEST_QUEUE_MAX_REQUESTS_PER_BATCH_OPERATION: () => REQUEST_QUEUE_MAX_REQUESTS_PER_BATCH_OPERATION,
      RUN_GENERAL_ACCESS: () => RUN_GENERAL_ACCESS,
      SHORT_CRAWLER_ID_LENGTH: () => SHORT_CRAWLER_ID_LENGTH,
      SOURCE_FILE_FORMATS: () => SOURCE_FILE_FORMATS,
      SPLIT_PATH_REGEX: () => SPLIT_PATH_REGEX,
      STORAGE_GENERAL_ACCESS: () => STORAGE_GENERAL_ACCESS,
      STORAGE_OWNERSHIP_FILTER: () => STORAGE_OWNERSHIP_FILTER,
      TWITTER_REGEX: () => TWITTER_REGEX,
      URL_REGEX: () => URL_REGEX2,
      USERNAME: () => USERNAME,
      USER_BASIC_TEXT_XSS_OPTIONS: () => USER_BASIC_TEXT_XSS_OPTIONS,
      USER_PERSONA_TYPES: () => USER_PERSONA_TYPES,
      VERSION_INT_MAJOR_BASE: () => VERSION_INT_MAJOR_BASE,
      VERSION_INT_MINOR_BASE: () => VERSION_INT_MINOR_BASE,
      WEBHOOK_ALLOWED_PAYLOAD_VARIABLES: () => WEBHOOK_ALLOWED_PAYLOAD_VARIABLES,
      WEBHOOK_DEFAULT_PAYLOAD_TEMPLATE: () => WEBHOOK_DEFAULT_PAYLOAD_TEMPLATE,
      WEBHOOK_DISPATCH_STATUSES: () => WEBHOOK_DISPATCH_STATUSES,
      WEBHOOK_EVENT_TYPES: () => WEBHOOK_EVENT_TYPES,
      WEBHOOK_EVENT_TYPE_GROUPS: () => WEBHOOK_EVENT_TYPE_GROUPS,
      WORKER_SERVICE_TYPES: () => WORKER_SERVICE_TYPES
    });
    module.exports = __toCommonJS2(index_exports);
    var namePartSubRegexStr = "[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+";
    var nameSubRegexStr = `${namePartSubRegexStr}(?:\\.${namePartSubRegexStr})*`;
    var domainPartSubRegexStr = "[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?";
    var domainSubRegexStr = `${domainPartSubRegexStr}(?:\\.${domainPartSubRegexStr})+`;
    var EMAIL_REGEX_STR = `${nameSubRegexStr}@${domainSubRegexStr}`;
    var EMAIL_REGEX = new RegExp(`^${EMAIL_REGEX_STR}$`);
    var COMMA_SEPARATED_EMAILS_REGEX_STR = `(${EMAIL_REGEX_STR})( *, *${EMAIL_REGEX_STR})*`;
    var COMMA_SEPARATED_EMAILS_REGEX = new RegExp(`^${COMMA_SEPARATED_EMAILS_REGEX_STR}$`);
    var GIT_REPO_REGEX = /^(?:git|ssh|https?|git@[-\w.]+):(\/\/)?(.*?)(\/?|#[-\d\w._:/]+?)$/;
    var DNS_SAFE_NAME_REGEX = /^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])$/;
    var APIFY_PROXY_VALUE_REGEX = /^[\w._~]+$/;
    var PROXY_URL_REGEX = /^(socks(4|4a|5|5h)?|https?):\/\/(([^:]+:)?[^@]*@)?[^.:@]+\.[^:]+:[\d]+?$/;
    var KEY_VALUE_STORE_KEY_REGEX = /^([a-zA-Z0-9!\-_.'()]{1,256})$/;
    var GITHUB_REGEX_STR = "[a-z\\d](?:[a-z\\d]|-(?=[a-z\\d])){0,38}";
    var TWITTER_REGEX = /^@[a-z0-9_]{1,15}$/i;
    var GITHUB_REGEX = new RegExp(`^${GITHUB_REGEX_STR}$`, "i");
    var LINKEDIN_PROFILE_REGEX = /^(https?:\/\/)?(www\.)?([a-z]{2}\.)?linkedin.com\/(in|company)\/([A-Za-z0-9_-]+)\/?$/;
    var URL_REGEX2 = /^https?:\/\//i;
    var HTTP_URL_REGEX = new RegExp(
      "^(?:(?:(?:https?):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?|xn--[a-z0-9]+))(?::\\d{2,5})?(?:[/?#]\\S*)?$",
      "i"
    );
    var GITHUB_GIST_URL_REGEX = new RegExp(`^https:\\/\\/gist\\.github\\.com\\/${GITHUB_REGEX_STR}\\/[0-9a-f]{32}$`, "i");
    var SPLIT_PATH_REGEX = /[^/]+/g;
    var RELATIVE_URL_REGEX = /^(?!www\.|(?:http|ftp)s?:\/\/|[A-Za-z]:\|\/\/).*/i;
    var CONTACT_LINK_REGEX = /^(mailto|tel|sms):.*$/i;
    var APIFY_ID_REGEX = /[a-zA-Z0-9]{17}/;
    var FREE_SUBSCRIPTION_PLAN_CODE = "DEV";
    var ACTOR_JOB_TYPES = {
      BUILD: "BUILD",
      RUN: "RUN"
    };
    var ACTOR_SOURCE_TYPES = {
      SOURCE_CODE: "SOURCE_CODE",
      SOURCE_FILES: "SOURCE_FILES",
      GIT_REPO: "GIT_REPO",
      TARBALL: "TARBALL",
      GITHUB_GIST: "GITHUB_GIST"
    };
    var ACTOR_EVENT_NAMES = {
      CPU_INFO: "cpuInfo",
      SYSTEM_INFO: "systemInfo",
      MIGRATING: "migrating",
      PERSIST_STATE: "persistState",
      ABORTING: "aborting"
    };
    var ACTOR_JOB_STATUSES = {
      READY: "READY",
      // started but not allocated to any worker yet
      RUNNING: "RUNNING",
      // running on worker
      SUCCEEDED: "SUCCEEDED",
      // finished and all good
      FAILED: "FAILED",
      // run or build failed
      TIMING_OUT: "TIMING-OUT",
      // timing out now
      TIMED_OUT: "TIMED-OUT",
      // timed out
      ABORTING: "ABORTING",
      // being aborted by user
      ABORTED: "ABORTED"
      // aborted by user
    };
    var WEBHOOK_DISPATCH_STATUSES = {
      ACTIVE: "ACTIVE",
      // Attempting to deliver the webhook
      SUCCEEDED: "SUCCEEDED",
      // Webhook was delivered
      FAILED: "FAILED"
      // All calls to webhook target URL failed
    };
    var ACTOR_JOB_TERMINAL_STATUSES = [
      ACTOR_JOB_STATUSES.SUCCEEDED,
      ACTOR_JOB_STATUSES.FAILED,
      ACTOR_JOB_STATUSES.TIMED_OUT,
      ACTOR_JOB_STATUSES.ABORTED
    ];
    var WORKER_SERVICE_TYPES = {
      CRAWLING: "crawling",
      ACTOR: "actor"
    };
    var META_ORIGINS = {
      DEVELOPMENT: "DEVELOPMENT",
      // Job started from Developer console in Source section of actor
      WEB: "WEB",
      // Job started from other place on the website (either console or task detail page)
      API: "API",
      // Job started through API
      SCHEDULER: "SCHEDULER",
      // Job started through Scheduler
      TEST: "TEST",
      // Job started through test actor page
      WEBHOOK: "WEBHOOK",
      // Job started by the webhook
      ACTOR: "ACTOR",
      // Job started by another actor run
      CLI: "CLI",
      // Job started by apify CLI
      STANDBY: "STANDBY"
      // Job started by Actor Standby
    };
    var DOCKER_LABELS = {
      ACTOR_BUILD_ID: "com.apify.actBuildId",
      ACTOR_RUN_ID: "com.apify.actRunId",
      // Kept for backwards compatibility, will be removed soon (TODO: remove old usages!)
      /** @deprecated Use ACTOR_BUILD_ID instead! */
      ACT_BUILD_ID: "com.apify.actBuildId",
      /** @deprecated Use ACTOR_RUN_ID instead! */
      ACT_RUN_ID: "com.apify.actRunId"
    };
    var ACTOR_TYPES = {
      ACT: "acts",
      CRAWLER: "crawlers"
    };
    var ME_USER_NAME_PLACEHOLDER = "me";
    var ANONYMOUS_USERNAME = "anonymous";
    var USERNAME = {
      MIN_LENGTH: 3,
      MAX_LENGTH: 30,
      // Regexes matching a potentially allowed username. The numbers must match MIN and MAX!
      // Note that username must also pass isForbiddenUser() test to be allowed!
      REGEX: /^[a-z0-9_.-]{3,30}$/i,
      RESTRICTED_REGEX: /^(?!.*apify)[a-z0-9_.-]{3,30}$/i
    };
    var EMAIL = {
      MAX_LENGTH: 254,
      // see https://www.rfc-editor.org/errata_search.php?rfc=3696&eid=1690
      REGEX: EMAIL_REGEX
    };
    var PROFILE_NAME = {
      MAX_LENGTH: 50,
      REGEX: /^(?!.*:\/\/)[^@><]*$/
      // Prohibits usage of @, <, > and ://
    };
    var DNS_SAFE_NAME_MAX_LENGTH = 63;
    var ACTOR_NAME = {
      MIN_LENGTH: 3,
      MAX_LENGTH: DNS_SAFE_NAME_MAX_LENGTH,
      // DNS-safe string length
      REGEX: DNS_SAFE_NAME_REGEX
    };
    var SHORT_CRAWLER_ID_LENGTH = 5;
    var BUILD_TAG_LATEST = "latest";
    var ACTOR_RESTART_ON_ERROR = {
      MAX_RESTARTS: 3,
      // This needs to be low enough so that it only covers restart loops, rather than e.g.
      // errors during crawling of large lists of URLs
      INTERVAL_MILLIS: 1 * 60 * 1e3
    };
    var ACT_RESTART_ON_ERROR = ACTOR_RESTART_ON_ERROR;
    var ACT_JOB_TYPES = ACTOR_JOB_TYPES;
    var ACT_SOURCE_TYPES = ACTOR_SOURCE_TYPES;
    var ACT_JOB_STATUSES = ACTOR_JOB_STATUSES;
    var ACT_JOB_TERMINAL_STATUSES = ACTOR_JOB_TERMINAL_STATUSES;
    var ACT_TYPES = ACTOR_TYPES;
    var COMPUTE_UNIT_MB = 1024;
    var COMPUTE_UNIT_MILLIS = 60 * 60 * 1e3;
    var ACTOR_LIMITS = {
      // The actualy used limit is taken from private package @apify-packages/consts
      BUILD_DEFAULT_MEMORY_MBYTES: 4096,
      // Maximum duration of build in seconds.
      BUILD_TIMEOUT_SECS: 1800,
      // For each build or run container, set disk quota based on memory size
      RUN_DISK_TO_MEMORY_SIZE_COEFF: 2,
      // For each build or run container, set CPU cores based on memory size
      RUN_MEMORY_MBYTES_PER_CPU_CORE: 4096,
      // The default limit of memory for all running Actor jobs for free accounts.
      FREE_ACCOUNT_MAX_MEMORY_MBYTES: 8192,
      // The default limit of memory for all running Actor jobs for paid accounts.
      PAID_ACCOUNT_MAX_MEMORY_MBYTES: 65536,
      // Minimum and maximum memory for a single act run.
      MIN_RUN_MEMORY_MBYTES: 128,
      MAX_RUN_MEMORY_MBYTES: 32768,
      // Maximum size of actor input schema.
      INPUT_SCHEMA_MAX_BYTES: 500 * 1024,
      // Max length of run/build log in number of characters
      LOG_MAX_CHARS: 10 * 1024 * 1024
    };
    var DEFAULT_PLATFORM_LIMITS = {
      // Maximum number of actors per user
      MAX_ACTORS_PER_USER: 500,
      // Maximum number of tasks per user
      MAX_TASKS_PER_USER: 5e3,
      // Maximum number of schedules per user
      MAX_SCHEDULES_PER_USER: 100,
      // Maximum number of webhooks per user
      MAX_WEBHOOKS_PER_USER: 100,
      // Maximum number of concurrent actor runs per user for free accounts.
      FREE_ACCOUNT_MAX_CONCURRENT_ACTOR_RUNS_PER_USER: 25,
      // Maximum number of concurrent actor runs per user for paid accounts.
      PAID_ACCOUNT_MAX_CONCURRENT_ACTOR_RUNS_PER_USER: 250,
      // Maximum number of actors per scheduler
      MAX_ACTORS_PER_SCHEDULER: 10,
      // Maximum number of tasks per scheduler
      MAX_TASKS_PER_SCHEDULER: 10
    };
    var REQUEST_QUEUE_HEAD_MAX_LIMIT = 1e3;
    var APIFY_ENV_VARS = {
      ACTOR_PRICING_INFO: "APIFY_ACTOR_PRICING_INFO",
      API_BASE_URL: "APIFY_API_BASE_URL",
      API_PUBLIC_BASE_URL: "APIFY_API_PUBLIC_BASE_URL",
      CHARGED_ACTOR_EVENT_COUNTS: "APIFY_CHARGED_ACTOR_EVENT_COUNTS",
      CHROME_EXECUTABLE_PATH: "APIFY_CHROME_EXECUTABLE_PATH",
      DEDICATED_CPUS: "APIFY_DEDICATED_CPUS",
      DISABLE_OUTDATED_WARNING: "APIFY_DISABLE_OUTDATED_WARNING",
      FACT: "APIFY_FACT",
      HEADLESS: "APIFY_HEADLESS",
      INPUT_SECRETS_PRIVATE_KEY_FILE: "APIFY_INPUT_SECRETS_PRIVATE_KEY_FILE",
      INPUT_SECRETS_PRIVATE_KEY_PASSPHRASE: "APIFY_INPUT_SECRETS_PRIVATE_KEY_PASSPHRASE",
      IS_AT_HOME: "APIFY_IS_AT_HOME",
      LOCAL_STORAGE_DIR: "APIFY_LOCAL_STORAGE_DIR",
      LOG_FORMAT: "APIFY_LOG_FORMAT",
      LOG_LEVEL: "APIFY_LOG_LEVEL",
      METAMORPH_AFTER_SLEEP_MILLIS: "APIFY_METAMORPH_AFTER_SLEEP_MILLIS",
      META_ORIGIN: "APIFY_META_ORIGIN",
      PERSIST_STATE_INTERVAL_MILLIS: "APIFY_PERSIST_STATE_INTERVAL_MILLIS",
      PROXY_HOSTNAME: "APIFY_PROXY_HOSTNAME",
      PROXY_PASSWORD: "APIFY_PROXY_PASSWORD",
      PROXY_PORT: "APIFY_PROXY_PORT",
      PROXY_STATUS_URL: "APIFY_PROXY_STATUS_URL",
      PURGE_ON_START: "APIFY_PURGE_ON_START",
      SDK_LATEST_VERSION: "APIFY_SDK_LATEST_VERSION",
      SYSTEM_INFO_INTERVAL_MILLIS: "APIFY_SYSTEM_INFO_INTERVAL_MILLIS",
      TOKEN: "APIFY_TOKEN",
      USER_ID: "APIFY_USER_ID",
      USER_IS_PAYING: "APIFY_USER_IS_PAYING",
      USER_PRICING_TIER: "APIFY_USER_PRICING_TIER",
      WORKFLOW_KEY: "APIFY_WORKFLOW_KEY",
      XVFB: "APIFY_XVFB",
      // Replaced by ACTOR_ENV_VARS, kept for backward compatibility:
      ACTOR_BUILD_ID: "APIFY_ACTOR_BUILD_ID",
      ACTOR_BUILD_NUMBER: "APIFY_ACTOR_BUILD_NUMBER",
      ACTOR_EVENTS_WS_URL: "APIFY_ACTOR_EVENTS_WS_URL",
      ACTOR_ID: "APIFY_ACTOR_ID",
      ACTOR_MAX_PAID_DATASET_ITEMS: "ACTOR_MAX_PAID_DATASET_ITEMS",
      ACTOR_RUN_ID: "APIFY_ACTOR_RUN_ID",
      ACTOR_TASK_ID: "APIFY_ACTOR_TASK_ID",
      CONTAINER_PORT: "APIFY_CONTAINER_PORT",
      CONTAINER_URL: "APIFY_CONTAINER_URL",
      DEFAULT_DATASET_ID: "APIFY_DEFAULT_DATASET_ID",
      DEFAULT_KEY_VALUE_STORE_ID: "APIFY_DEFAULT_KEY_VALUE_STORE_ID",
      DEFAULT_REQUEST_QUEUE_ID: "APIFY_DEFAULT_REQUEST_QUEUE_ID",
      INPUT_KEY: "APIFY_INPUT_KEY",
      MEMORY_MBYTES: "APIFY_MEMORY_MBYTES",
      STARTED_AT: "APIFY_STARTED_AT",
      TIMEOUT_AT: "APIFY_TIMEOUT_AT",
      // Deprecated, keep them for backward compatibility:
      ACT_ID: "APIFY_ACT_ID",
      ACT_RUN_ID: "APIFY_ACT_RUN_ID"
    };
    var ENV_VARS = APIFY_ENV_VARS;
    var ACTOR_ENV_VARS = {
      BUILD_ID: "ACTOR_BUILD_ID",
      BUILD_NUMBER: "ACTOR_BUILD_NUMBER",
      BUILD_TAGS: "ACTOR_BUILD_TAGS",
      DEFAULT_DATASET_ID: "ACTOR_DEFAULT_DATASET_ID",
      DEFAULT_KEY_VALUE_STORE_ID: "ACTOR_DEFAULT_KEY_VALUE_STORE_ID",
      DEFAULT_REQUEST_QUEUE_ID: "ACTOR_DEFAULT_REQUEST_QUEUE_ID",
      STORAGES_JSON: "ACTOR_STORAGES_JSON",
      EVENTS_WEBSOCKET_URL: "ACTOR_EVENTS_WEBSOCKET_URL",
      FULL_NAME: "ACTOR_FULL_NAME",
      ID: "ACTOR_ID",
      INPUT_KEY: "ACTOR_INPUT_KEY",
      MAX_PAID_DATASET_ITEMS: "ACTOR_MAX_PAID_DATASET_ITEMS",
      MAX_TOTAL_CHARGE_USD: "ACTOR_MAX_TOTAL_CHARGE_USD",
      MEMORY_MBYTES: "ACTOR_MEMORY_MBYTES",
      RESTART_ON_ERROR: "ACTOR_RESTART_ON_ERROR",
      PERMISSION_LEVEL: "ACTOR_PERMISSION_LEVEL",
      RUN_ID: "ACTOR_RUN_ID",
      STANDBY_PORT: "ACTOR_STANDBY_PORT",
      STANDBY_URL: "ACTOR_STANDBY_URL",
      STARTED_AT: "ACTOR_STARTED_AT",
      TASK_ID: "ACTOR_TASK_ID",
      TIMEOUT_AT: "ACTOR_TIMEOUT_AT",
      WEB_SERVER_PORT: "ACTOR_WEB_SERVER_PORT",
      WEB_SERVER_URL: "ACTOR_WEB_SERVER_URL"
    };
    var INTEGER_ENV_VARS = [
      // Actor env vars
      ACTOR_ENV_VARS.MAX_PAID_DATASET_ITEMS,
      ACTOR_ENV_VARS.MEMORY_MBYTES,
      ACTOR_ENV_VARS.STANDBY_PORT,
      ACTOR_ENV_VARS.WEB_SERVER_PORT,
      // Apify env vars
      APIFY_ENV_VARS.ACTOR_MAX_PAID_DATASET_ITEMS,
      APIFY_ENV_VARS.CONTAINER_PORT,
      APIFY_ENV_VARS.DEDICATED_CPUS,
      APIFY_ENV_VARS.MEMORY_MBYTES,
      APIFY_ENV_VARS.METAMORPH_AFTER_SLEEP_MILLIS,
      APIFY_ENV_VARS.PERSIST_STATE_INTERVAL_MILLIS,
      APIFY_ENV_VARS.PROXY_PORT,
      APIFY_ENV_VARS.SYSTEM_INFO_INTERVAL_MILLIS
    ];
    var COMMA_SEPARATED_LIST_ENV_VARS = [
      ACTOR_ENV_VARS.BUILD_TAGS
    ];
    var JSON_ENCODED_ENV_VARS = [
      ACTOR_ENV_VARS.STORAGES_JSON
    ];
    var ACTOR_BUILD_ARGS = {
      ACTOR_PATH_IN_DOCKER_CONTEXT: "ACTOR_PATH_IN_DOCKER_CONTEXT"
    };
    var DEFAULT_CONTAINER_PORT = 4321;
    var DEFAULT_ACTOR_STANDBY_PORT = DEFAULT_CONTAINER_PORT;
    var LOCAL_STORAGE_SUBDIRS = {
      datasets: "datasets",
      keyValueStores: "key_value_stores",
      requestQueues: "request_queues"
    };
    var LOCAL_ACTOR_ENV_VARS = {
      [ACTOR_ENV_VARS.STANDBY_PORT]: DEFAULT_CONTAINER_PORT.toString(),
      [ACTOR_ENV_VARS.DEFAULT_DATASET_ID]: "default",
      [ACTOR_ENV_VARS.DEFAULT_KEY_VALUE_STORE_ID]: "default",
      [ACTOR_ENV_VARS.DEFAULT_REQUEST_QUEUE_ID]: "default",
      [ACTOR_ENV_VARS.WEB_SERVER_PORT]: DEFAULT_CONTAINER_PORT.toString(),
      [ACTOR_ENV_VARS.WEB_SERVER_URL]: `http://localhost:${DEFAULT_CONTAINER_PORT}`
      // Must match port line above!
    };
    var LOCAL_APIFY_ENV_VARS = {
      [APIFY_ENV_VARS.CONTAINER_PORT]: LOCAL_ACTOR_ENV_VARS.ACTOR_WEB_SERVER_PORT,
      [APIFY_ENV_VARS.CONTAINER_URL]: LOCAL_ACTOR_ENV_VARS.ACTOR_WEB_SERVER_URL,
      [APIFY_ENV_VARS.DEFAULT_DATASET_ID]: LOCAL_ACTOR_ENV_VARS.ACTOR_DEFAULT_DATASET_ID,
      [APIFY_ENV_VARS.DEFAULT_KEY_VALUE_STORE_ID]: LOCAL_ACTOR_ENV_VARS.ACTOR_DEFAULT_KEY_VALUE_STORE_ID,
      [APIFY_ENV_VARS.DEFAULT_REQUEST_QUEUE_ID]: LOCAL_ACTOR_ENV_VARS.ACTOR_DEFAULT_REQUEST_QUEUE_ID,
      [APIFY_ENV_VARS.PROXY_HOSTNAME]: "proxy.apify.com",
      [APIFY_ENV_VARS.PROXY_PORT]: 8e3.toString()
    };
    var LOCAL_ENV_VARS = LOCAL_APIFY_ENV_VARS;
    var KEY_VALUE_STORE_KEYS = {
      INPUT: "INPUT",
      OUTPUT: "OUTPUT"
    };
    var MAX_PAYLOAD_SIZE_BYTES = 9437184;
    var ACTOR_CATEGORIES = {
      AI: "AI",
      AGENTS: "Agents",
      AUTOMATION: "Automation",
      BUSINESS: "Business",
      COVID_19: "Covid-19",
      DEVELOPER_EXAMPLES: "Developer examples",
      DEVELOPER_TOOLS: "Developer tools",
      ECOMMERCE: "E-commerce",
      FOR_CREATORS: "For creators",
      GAMES: "Games",
      JOBS: "Jobs",
      LEAD_GENERATION: "Lead generation",
      MARKETING: "Marketing",
      NEWS: "News",
      SEO_TOOLS: "SEO tools",
      SOCIAL_MEDIA: "Social media",
      TRAVEL: "Travel",
      VIDEOS: "Videos",
      REAL_ESTATE: "Real estate",
      SPORTS: "Sports",
      EDUCATION: "Education",
      INTEGRATIONS: "Integrations",
      OTHER: "Other",
      OPEN_SOURCE: "Open source",
      MCP_SERVERS: "MCP servers"
    };
    var ALL_ACTOR_CATEGORIES = {
      ...ACTOR_CATEGORIES
      // ...LEGACY_ACTOR_CATEGORIES,
    };
    var VERSION_INT_MAJOR_BASE = 1e7;
    var VERSION_INT_MINOR_BASE = 1e5;
    var USER_BASIC_TEXT_XSS_OPTIONS = {
      whiteList: {
        a: ["href", "title", "target"],
        code: [],
        strong: [],
        b: [],
        br: [],
        ul: [],
        li: [],
        ol: [],
        i: [],
        u: [],
        p: []
      }
    };
    var WEBHOOK_EVENT_TYPES = {
      ACTOR_RUN_CREATED: "ACTOR.RUN.CREATED",
      ACTOR_RUN_SUCCEEDED: "ACTOR.RUN.SUCCEEDED",
      ACTOR_RUN_FAILED: "ACTOR.RUN.FAILED",
      ACTOR_RUN_TIMED_OUT: "ACTOR.RUN.TIMED_OUT",
      ACTOR_RUN_ABORTED: "ACTOR.RUN.ABORTED",
      ACTOR_RUN_RESURRECTED: "ACTOR.RUN.RESURRECTED",
      ACTOR_BUILD_CREATED: "ACTOR.BUILD.CREATED",
      ACTOR_BUILD_SUCCEEDED: "ACTOR.BUILD.SUCCEEDED",
      ACTOR_BUILD_FAILED: "ACTOR.BUILD.FAILED",
      ACTOR_BUILD_TIMED_OUT: "ACTOR.BUILD.TIMED_OUT",
      ACTOR_BUILD_ABORTED: "ACTOR.BUILD.ABORTED",
      TEST: "TEST"
    };
    var WEBHOOK_EVENT_TYPE_GROUPS = {
      ACTOR_RUN: [
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_CREATED,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_SUCCEEDED,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_FAILED,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_TIMED_OUT,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_ABORTED,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_RESURRECTED
      ],
      ACTOR_BUILD: [
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_CREATED,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_SUCCEEDED,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_FAILED,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_TIMED_OUT,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_ABORTED
      ],
      // If one of these occurs then we can be sure that none other can occur for the same triggerer.
      ACTOR_RUN_TERMINAL: [
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_SUCCEEDED,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_FAILED,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_TIMED_OUT,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_ABORTED
      ],
      ACTOR_BUILD_TERMINAL: [
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_SUCCEEDED,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_FAILED,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_TIMED_OUT,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_ABORTED
      ]
    };
    var WEBHOOK_DEFAULT_PAYLOAD_TEMPLATE = `{
    "userId": {{userId}},
    "createdAt": {{createdAt}},
    "eventType": {{eventType}},
    "eventData": {{eventData}},
    "resource": {{resource}}
}`;
    var WEBHOOK_ALLOWED_PAYLOAD_VARIABLES = /* @__PURE__ */ new Set([
      "userId",
      "createdAt",
      "eventType",
      "eventData",
      "resource"
    ]);
    var MAX_MULTIFILE_BYTES = 3 * 1024 ** 2;
    var SOURCE_FILE_FORMATS = {
      TEXT: "TEXT",
      BASE64: "BASE64"
    };
    var PROJECT_STATUSES = {
      REQUEST: "REQUEST",
      SPECIFICATION: "SPECIFICATION",
      OFFERS: "OFFERS",
      DEPOSIT: "DEPOSIT",
      DEPOSIT_PAID: "DEPOSIT_PAID",
      NEW: "NEW",
      IN_PROGRESS: "IN_PROGRESS",
      QA: "QA",
      CUSTOMER_QA: "CUSTOMER_QA",
      READY_FOR_INVOICE: "READY_FOR_INVOICE",
      INVOICED: "INVOICED",
      PAID: "PAID",
      DELIVERED: "DELIVERED",
      CLOSED: "CLOSED",
      FINISHED: "FINISHED"
    };
    var FINISHED_PROJECT_STATUSES = [
      PROJECT_STATUSES.READY_FOR_INVOICE,
      PROJECT_STATUSES.INVOICED,
      PROJECT_STATUSES.PAID,
      PROJECT_STATUSES.DELIVERED,
      PROJECT_STATUSES.FINISHED
    ];
    var MARKETPLACE_USER_ROLES = {
      DEVELOPER: "DEVELOPER",
      DATA_EXPERT: "DATA_EXPERT",
      CUSTOMER: "CUSTOMER"
    };
    var USER_PERSONA_TYPES = {
      DEVELOPER: "DEVELOPER",
      USER: "USER"
    };
    var GIT_MAIN_BRANCH = "main";
    var REQUEST_QUEUE_MAX_REQUESTS_PER_BATCH_OPERATION = 25;
    var ISSUES_STATUS_TYPES = {
      OPEN: "OPEN",
      CLOSED: "CLOSED"
    };
    var ISSUES_STATUS_ALL = "ALL";
    var STORAGE_GENERAL_ACCESS = {
      /** Respect the user setting of the storage owner (default behavior). */
      FOLLOW_USER_SETTING: "FOLLOW_USER_SETTING",
      /** Only signed-in users with explicit access can read this storage. */
      RESTRICTED: "RESTRICTED",
      /** Anyone with a link, or the unique storage ID, can read the storage. */
      ANYONE_WITH_ID_CAN_READ: "ANYONE_WITH_ID_CAN_READ",
      /** Anyone with a link, the unique storage ID, or the storage name, can read the storage. */
      ANYONE_WITH_NAME_CAN_READ: "ANYONE_WITH_NAME_CAN_READ"
    };
    var RUN_GENERAL_ACCESS = {
      /** Respect the user setting of the run owner (default behavior). */
      FOLLOW_USER_SETTING: "FOLLOW_USER_SETTING",
      /** Only signed-in users with explicit access can read this run. */
      RESTRICTED: "RESTRICTED",
      /** Anyone with a link, or the unique run ID, can read the run. */
      ANYONE_WITH_ID_CAN_READ: "ANYONE_WITH_ID_CAN_READ"
    };
    var ACTOR_PERMISSION_LEVEL = {
      /** Full permission Actors have access to all user data in the account. */
      FULL_PERMISSIONS: "FULL_PERMISSIONS",
      /**
       * Limited permission Actors have access only to specific resources:
       * - default storages
       * - storages provided via input
       * - the current run
       * - ...
       *
       * Broadly speaking, limited permission Actors cannot access any account data not related to the current run.
       * For details refer to the Apify documentation.
       */
      LIMITED_PERMISSIONS: "LIMITED_PERMISSIONS"
    };
    var STORAGE_OWNERSHIP_FILTER = {
      /** Return only storages owned by the user. */
      OWNED_BY_ME: "ownedByMe",
      /** Return only storages shared with the user. */
      SHARED_WITH_ME: "sharedWithMe"
    };
  }
});

// ../../node_modules/.pnpm/ansi-colors@4.1.3/node_modules/ansi-colors/symbols.js
var require_symbols = __commonJS({
  "../../node_modules/.pnpm/ansi-colors@4.1.3/node_modules/ansi-colors/symbols.js"(exports, module) {
    "use strict";
    var isHyper = typeof process !== "undefined" && process.env.TERM_PROGRAM === "Hyper";
    var isWindows = typeof process !== "undefined" && process.platform === "win32";
    var isLinux = typeof process !== "undefined" && process.platform === "linux";
    var common = {
      ballotDisabled: "\u2612",
      ballotOff: "\u2610",
      ballotOn: "\u2611",
      bullet: "\u2022",
      bulletWhite: "\u25E6",
      fullBlock: "\u2588",
      heart: "\u2764",
      identicalTo: "\u2261",
      line: "\u2500",
      mark: "\u203B",
      middot: "\xB7",
      minus: "\uFF0D",
      multiplication: "\xD7",
      obelus: "\xF7",
      pencilDownRight: "\u270E",
      pencilRight: "\u270F",
      pencilUpRight: "\u2710",
      percent: "%",
      pilcrow2: "\u2761",
      pilcrow: "\xB6",
      plusMinus: "\xB1",
      question: "?",
      section: "\xA7",
      starsOff: "\u2606",
      starsOn: "\u2605",
      upDownArrow: "\u2195"
    };
    var windows = Object.assign({}, common, {
      check: "\u221A",
      cross: "\xD7",
      ellipsisLarge: "...",
      ellipsis: "...",
      info: "i",
      questionSmall: "?",
      pointer: ">",
      pointerSmall: "\xBB",
      radioOff: "( )",
      radioOn: "(*)",
      warning: "\u203C"
    });
    var other = Object.assign({}, common, {
      ballotCross: "\u2718",
      check: "\u2714",
      cross: "\u2716",
      ellipsisLarge: "\u22EF",
      ellipsis: "\u2026",
      info: "\u2139",
      questionFull: "\uFF1F",
      questionSmall: "\uFE56",
      pointer: isLinux ? "\u25B8" : "\u276F",
      pointerSmall: isLinux ? "\u2023" : "\u203A",
      radioOff: "\u25EF",
      radioOn: "\u25C9",
      warning: "\u26A0"
    });
    module.exports = isWindows && !isHyper ? windows : other;
    Reflect.defineProperty(module.exports, "common", { enumerable: false, value: common });
    Reflect.defineProperty(module.exports, "windows", { enumerable: false, value: windows });
    Reflect.defineProperty(module.exports, "other", { enumerable: false, value: other });
  }
});

// ../../node_modules/.pnpm/ansi-colors@4.1.3/node_modules/ansi-colors/index.js
var require_ansi_colors = __commonJS({
  "../../node_modules/.pnpm/ansi-colors@4.1.3/node_modules/ansi-colors/index.js"(exports, module) {
    "use strict";
    var isObject4 = (val) => val !== null && typeof val === "object" && !Array.isArray(val);
    var ANSI_REGEX = /[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g;
    var hasColor = () => {
      if (typeof process !== "undefined") {
        return process.env.FORCE_COLOR !== "0";
      }
      return false;
    };
    var create2 = () => {
      const colors = {
        enabled: hasColor(),
        visible: true,
        styles: {},
        keys: {}
      };
      const ansi = (style2) => {
        let open = style2.open = `\x1B[${style2.codes[0]}m`;
        let close = style2.close = `\x1B[${style2.codes[1]}m`;
        let regex2 = style2.regex = new RegExp(`\\u001b\\[${style2.codes[1]}m`, "g");
        style2.wrap = (input, newline) => {
          if (input.includes(close)) input = input.replace(regex2, close + open);
          let output = open + input + close;
          return newline ? output.replace(/\r*\n/g, `${close}$&${open}`) : output;
        };
        return style2;
      };
      const wrap = (style2, input, newline) => {
        return typeof style2 === "function" ? style2(input) : style2.wrap(input, newline);
      };
      const style = (input, stack) => {
        if (input === "" || input == null) return "";
        if (colors.enabled === false) return input;
        if (colors.visible === false) return "";
        let str = "" + input;
        let nl = str.includes("\n");
        let n6 = stack.length;
        if (n6 > 0 && stack.includes("unstyle")) {
          stack = [.../* @__PURE__ */ new Set(["unstyle", ...stack])].reverse();
        }
        while (n6-- > 0) str = wrap(colors.styles[stack[n6]], str, nl);
        return str;
      };
      const define2 = (name, codes, type) => {
        colors.styles[name] = ansi({ name, codes });
        let keys2 = colors.keys[type] || (colors.keys[type] = []);
        keys2.push(name);
        Reflect.defineProperty(colors, name, {
          configurable: true,
          enumerable: true,
          set(value2) {
            colors.alias(name, value2);
          },
          get() {
            let color = (input) => style(input, color.stack);
            Reflect.setPrototypeOf(color, colors);
            color.stack = this.stack ? this.stack.concat(name) : [name];
            return color;
          }
        });
      };
      define2("reset", [0, 0], "modifier");
      define2("bold", [1, 22], "modifier");
      define2("dim", [2, 22], "modifier");
      define2("italic", [3, 23], "modifier");
      define2("underline", [4, 24], "modifier");
      define2("inverse", [7, 27], "modifier");
      define2("hidden", [8, 28], "modifier");
      define2("strikethrough", [9, 29], "modifier");
      define2("black", [30, 39], "color");
      define2("red", [31, 39], "color");
      define2("green", [32, 39], "color");
      define2("yellow", [33, 39], "color");
      define2("blue", [34, 39], "color");
      define2("magenta", [35, 39], "color");
      define2("cyan", [36, 39], "color");
      define2("white", [37, 39], "color");
      define2("gray", [90, 39], "color");
      define2("grey", [90, 39], "color");
      define2("bgBlack", [40, 49], "bg");
      define2("bgRed", [41, 49], "bg");
      define2("bgGreen", [42, 49], "bg");
      define2("bgYellow", [43, 49], "bg");
      define2("bgBlue", [44, 49], "bg");
      define2("bgMagenta", [45, 49], "bg");
      define2("bgCyan", [46, 49], "bg");
      define2("bgWhite", [47, 49], "bg");
      define2("blackBright", [90, 39], "bright");
      define2("redBright", [91, 39], "bright");
      define2("greenBright", [92, 39], "bright");
      define2("yellowBright", [93, 39], "bright");
      define2("blueBright", [94, 39], "bright");
      define2("magentaBright", [95, 39], "bright");
      define2("cyanBright", [96, 39], "bright");
      define2("whiteBright", [97, 39], "bright");
      define2("bgBlackBright", [100, 49], "bgBright");
      define2("bgRedBright", [101, 49], "bgBright");
      define2("bgGreenBright", [102, 49], "bgBright");
      define2("bgYellowBright", [103, 49], "bgBright");
      define2("bgBlueBright", [104, 49], "bgBright");
      define2("bgMagentaBright", [105, 49], "bgBright");
      define2("bgCyanBright", [106, 49], "bgBright");
      define2("bgWhiteBright", [107, 49], "bgBright");
      colors.ansiRegex = ANSI_REGEX;
      colors.hasColor = colors.hasAnsi = (str) => {
        colors.ansiRegex.lastIndex = 0;
        return typeof str === "string" && str !== "" && colors.ansiRegex.test(str);
      };
      colors.alias = (name, color) => {
        let fn = typeof color === "string" ? colors[color] : color;
        if (typeof fn !== "function") {
          throw new TypeError("Expected alias to be the name of an existing color (string) or a function");
        }
        if (!fn.stack) {
          Reflect.defineProperty(fn, "name", { value: name });
          colors.styles[name] = fn;
          fn.stack = [name];
        }
        Reflect.defineProperty(colors, name, {
          configurable: true,
          enumerable: true,
          set(value2) {
            colors.alias(name, value2);
          },
          get() {
            let color2 = (input) => style(input, color2.stack);
            Reflect.setPrototypeOf(color2, colors);
            color2.stack = this.stack ? this.stack.concat(fn.stack) : fn.stack;
            return color2;
          }
        });
      };
      colors.theme = (custom) => {
        if (!isObject4(custom)) throw new TypeError("Expected theme to be an object");
        for (let name of Object.keys(custom)) {
          colors.alias(name, custom[name]);
        }
        return colors;
      };
      colors.alias("unstyle", (str) => {
        if (typeof str === "string" && str !== "") {
          colors.ansiRegex.lastIndex = 0;
          return str.replace(colors.ansiRegex, "");
        }
        return "";
      });
      colors.alias("noop", (str) => str);
      colors.none = colors.clear = colors.noop;
      colors.stripColor = colors.unstyle;
      colors.symbols = require_symbols();
      colors.define = define2;
      return colors;
    };
    module.exports = create2();
    module.exports.create = create2;
  }
});

// ../../node_modules/.pnpm/@apify+log@2.5.32/node_modules/@apify/log/cjs/index.cjs
var require_cjs3 = __commonJS({
  "../../node_modules/.pnpm/@apify+log@2.5.32/node_modules/@apify/log/cjs/index.cjs"(exports, module) {
    "use strict";
    var __create2 = Object.create;
    var __defProp3 = Object.defineProperty;
    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames2 = Object.getOwnPropertyNames;
    var __getProtoOf2 = Object.getPrototypeOf;
    var __hasOwnProp2 = Object.prototype.hasOwnProperty;
    var __defNormalProp2 = (obj, key, value2) => key in obj ? __defProp3(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
    var __name2 = (target, value2) => __defProp3(target, "name", { value: value2, configurable: true });
    var __export2 = (target, all5) => {
      for (var name in all5)
        __defProp3(target, name, { get: all5[name], enumerable: true });
    };
    var __copyProps2 = (to, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames2(from))
          if (!__hasOwnProp2.call(to, key) && key !== except)
            __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
      }
      return to;
    };
    var __toESM2 = (mod3, isNodeMode, target) => (target = mod3 != null ? __create2(__getProtoOf2(mod3)) : {}, __copyProps2(
      // If the importer is in node compatibility mode or this is not an ESM
      // file that has been converted to a CommonJS file using a Babel-
      // compatible transform (i.e. "__esModule" has not been set), then set
      // "default" to the CommonJS "module.exports" for node compatibility.
      isNodeMode || !mod3 || !mod3.__esModule ? __defProp3(target, "default", { value: mod3, enumerable: true }) : target,
      mod3
    ));
    var __toCommonJS2 = (mod3) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod3);
    var __publicField2 = (obj, key, value2) => __defNormalProp2(obj, typeof key !== "symbol" ? key + "" : key, value2);
    var index_exports = {};
    __export2(index_exports, {
      IS_APIFY_LOGGER_EXCEPTION: () => IS_APIFY_LOGGER_EXCEPTION,
      LEVELS: () => LEVELS,
      LEVEL_TO_STRING: () => LEVEL_TO_STRING,
      Log: () => Log2,
      LogFormat: () => LogFormat,
      LogLevel: () => LogLevel3,
      Logger: () => Logger2,
      LoggerJson: () => LoggerJson2,
      LoggerText: () => LoggerText2,
      PREFERRED_API_ERROR_FIELDS: () => PREFERRED_API_ERROR_FIELDS,
      PREFERRED_DATA_FIELDS: () => PREFERRED_DATA_FIELDS,
      PREFERRED_ERROR_FIELDS: () => PREFERRED_ERROR_FIELDS,
      PREFERRED_FIELDS: () => PREFERRED_FIELDS,
      PREFERRED_HTTP_FIELDS: () => PREFERRED_HTTP_FIELDS,
      PREFERRED_ID_FIELDS: () => PREFERRED_ID_FIELDS,
      PREFIX_DELIMITER: () => PREFIX_DELIMITER,
      TRUNCATION_FLAG_KEY: () => TRUNCATION_FLAG_KEY,
      TRUNCATION_SUFFIX: () => TRUNCATION_SUFFIX,
      default: () => index_default,
      getFormatFromEnv: () => getFormatFromEnv,
      getLevelFromEnv: () => getLevelFromEnv,
      sanitizeData: () => sanitizeData,
      truncate: () => truncate2
    });
    module.exports = __toCommonJS2(index_exports);
    var LogLevel3 = /* @__PURE__ */ ((LogLevel22) => {
      LogLevel22[LogLevel22["OFF"] = 0] = "OFF";
      LogLevel22[LogLevel22["ERROR"] = 1] = "ERROR";
      LogLevel22[LogLevel22["SOFT_FAIL"] = 2] = "SOFT_FAIL";
      LogLevel22[LogLevel22["WARNING"] = 3] = "WARNING";
      LogLevel22[LogLevel22["INFO"] = 4] = "INFO";
      LogLevel22[LogLevel22["DEBUG"] = 5] = "DEBUG";
      LogLevel22[LogLevel22["PERF"] = 6] = "PERF";
      return LogLevel22;
    })(LogLevel3 || {});
    var LEVELS = LogLevel3;
    var LEVEL_TO_STRING = Object.keys(LogLevel3).filter((x) => Number.isNaN(+x));
    var LogFormat = /* @__PURE__ */ ((LogFormat2) => {
      LogFormat2["JSON"] = "JSON";
      LogFormat2["TEXT"] = "TEXT";
      return LogFormat2;
    })(LogFormat || {});
    var IS_APIFY_LOGGER_EXCEPTION = Symbol("apify.processed_error");
    var PREFIX_DELIMITER = ":";
    var TRUNCATION_FLAG_KEY = "[TRUNCATED]";
    var TRUNCATION_SUFFIX = "...[truncated]";
    var PREFERRED_ID_FIELDS = [
      "_id",
      "id",
      "userId",
      "impersonatedUserId",
      "impersonatingUserId",
      "adminUserId",
      "actorId",
      "actorTaskId",
      "taskId",
      "buildId",
      "buildNumber",
      "runId"
    ];
    var PREFERRED_ERROR_FIELDS = [
      "name",
      "message",
      "stack",
      "cause"
    ];
    var PREFERRED_HTTP_FIELDS = [
      "url",
      "method",
      "code",
      "status",
      "statusCode",
      "statusText"
    ];
    var PREFERRED_API_ERROR_FIELDS = [
      "errorCode",
      "errorMessage",
      "errorResponse"
    ];
    var PREFERRED_DATA_FIELDS = [
      "response",
      "request",
      "data",
      "payload",
      "details",
      "exception",
      "config",
      "headers"
    ];
    var PREFERRED_FIELDS = [
      ...PREFERRED_ID_FIELDS,
      ...PREFERRED_ERROR_FIELDS,
      ...PREFERRED_HTTP_FIELDS,
      ...PREFERRED_API_ERROR_FIELDS,
      ...PREFERRED_DATA_FIELDS
    ];
    var import_consts = require_cjs2();
    function truncate2(str, maxLength, suffix = TRUNCATION_SUFFIX) {
      maxLength = Math.floor(maxLength);
      if (suffix.length > maxLength) {
        throw new Error("suffix string cannot be longer than maxLength");
      }
      if (typeof str === "string" && str.length > maxLength) {
        str = str.substr(0, maxLength - suffix.length) + suffix;
      }
      return str;
    }
    __name2(truncate2, "truncate");
    function getLevelFromEnv() {
      const envVar = process.env[import_consts.APIFY_ENV_VARS.LOG_LEVEL];
      if (!envVar) return 4;
      if (Number.isFinite(+envVar)) return +envVar;
      if (LogLevel3[envVar]) return LogLevel3[envVar];
      return +envVar;
    }
    __name2(getLevelFromEnv, "getLevelFromEnv");
    function getFormatFromEnv() {
      const envVar = process.env[import_consts.APIFY_ENV_VARS.LOG_FORMAT] || "TEXT";
      switch (envVar.toLowerCase()) {
        case "JSON".toLowerCase():
          return "JSON";
        case "TEXT".toLowerCase():
          return "TEXT";
        default:
          console.warn(`Unknown value for environment variable ${import_consts.APIFY_ENV_VARS.LOG_FORMAT}: ${envVar}`);
          return "TEXT";
      }
    }
    __name2(getFormatFromEnv, "getFormatFromEnv");
    function sanitizeData(data2, options) {
      const {
        maxDepth = Infinity,
        gradualLimitFactor = 1,
        maxStringLength = Infinity,
        maxArrayLength = Infinity,
        maxFields = Infinity,
        preferredFieldsMap = {},
        truncationSuffix = TRUNCATION_SUFFIX,
        truncationFlagKey = TRUNCATION_FLAG_KEY
      } = options;
      if (typeof data2 === "string") {
        return data2.length > maxStringLength ? truncate2(data2, maxStringLength, truncationSuffix) : data2;
      }
      if (["number", "boolean", "symbol", "bigint"].includes(typeof data2) || data2 == null || data2 instanceof Date) {
        return data2;
      }
      if (data2 instanceof Error) {
        const { name, message, stack, cause, ...rest } = data2;
        data2 = { name, message, stack, cause, ...rest, [IS_APIFY_LOGGER_EXCEPTION]: true };
      }
      const nextCall = /* @__PURE__ */ __name2((dat) => sanitizeData(
        dat,
        {
          ...options,
          maxDepth: maxDepth - 1,
          maxStringLength: Math.max(
            Math.floor(maxStringLength * gradualLimitFactor),
            truncationSuffix.length
            // always at least the length of the truncation suffix
          ),
          maxArrayLength: Math.floor(maxArrayLength * gradualLimitFactor),
          maxFields: Math.floor(maxFields * gradualLimitFactor)
        }
      ), "nextCall");
      if (Array.isArray(data2)) {
        if (maxDepth <= 0) return "[array]";
        const sanitized = data2.slice(0, maxArrayLength).map(nextCall);
        if (data2.length > maxArrayLength) {
          sanitized.push(truncationSuffix);
        }
        return sanitized;
      }
      if (typeof data2 === "object" && data2 !== null) {
        if (maxDepth <= 0) return "[object]";
        const allKeys = Reflect.ownKeys(data2);
        allKeys.sort((a5, b3) => {
          const aIndex = preferredFieldsMap[String(a5)] ?? -1;
          const bIndex = preferredFieldsMap[String(b3)] ?? -1;
          if (aIndex === -1 && bIndex === -1) return 0;
          if (aIndex === -1) return 1;
          if (bIndex === -1) return -1;
          return aIndex - bIndex;
        });
        const sanitized = {};
        allKeys.slice(0, maxFields).forEach((key) => {
          sanitized[key] = nextCall(data2[key]);
        });
        if (allKeys.length > maxFields) {
          sanitized[truncationFlagKey] = true;
        }
        return sanitized;
      }
      if (typeof data2 === "function") {
        return "[function]";
      }
      console.log(`WARNING: Object cannot be logged: ${data2}`);
      return void 0;
    }
    __name2(sanitizeData, "sanitizeData");
    var import_node_events5 = __require("events");
    var _Logger = class _Logger extends import_node_events5.EventEmitter {
      constructor(options) {
        super();
        this.options = options;
      }
      setOptions(options) {
        this.options = { ...this.options, ...options };
      }
      getOptions() {
        return this.options;
      }
      _outputWithConsole(level, line2) {
        switch (level) {
          case 1:
            console.error(line2);
            break;
          case 3:
            console.warn(line2);
            break;
          case 5:
            console.debug(line2);
            break;
          default:
            console.log(line2);
        }
      }
      // eslint-disable-next-line @typescript-eslint/no-unused-vars
      _log(level, message, data2, exception, opts2 = {}) {
        throw new Error("log() method must be implemented!");
      }
      log(level, message, ...args) {
        const line2 = this._log(level, message, ...args);
        this.emit("line", line2);
      }
    };
    __name2(_Logger, "Logger");
    var Logger2 = _Logger;
    var DEFAULT_OPTIONS2 = {
      skipLevelInfo: false,
      skipTime: false
    };
    var _LoggerJson = class _LoggerJson extends Logger2 {
      constructor(options = {}) {
        super({ ...DEFAULT_OPTIONS2, ...options });
      }
      _log(level, message, data2, exception, opts2 = {}) {
        const { prefix, suffix } = opts2;
        if (exception) data2 = { ...data2, exception };
        if (prefix) message = `${prefix}${PREFIX_DELIMITER} ${message}`;
        if (suffix) message = `${message} ${suffix}`;
        const rec = {
          time: !this.options.skipTime ? /* @__PURE__ */ new Date() : void 0,
          level: this.options.skipLevelInfo && level === 4 ? void 0 : LogLevel3[level],
          msg: message,
          ...data2
        };
        const line2 = JSON.stringify(rec);
        this._outputWithConsole(level, line2);
        return line2;
      }
    };
    __name2(_LoggerJson, "LoggerJson");
    var LoggerJson2 = _LoggerJson;
    var import_ansi_colors2 = __toESM2(require_ansi_colors());
    var import_ansi_colors = __toESM2(require_ansi_colors());
    function identicalSequenceRange(a5, b3) {
      for (let i5 = 0; i5 < a5.length - 3; i5++) {
        const pos = b3.indexOf(a5[i5]);
        if (pos !== -1) {
          const rest = b3.length - pos;
          if (rest > 3) {
            let len = 1;
            const maxLen = Math.min(a5.length - i5, rest);
            while (maxLen > len && a5[i5 + len] === b3[pos + len]) {
              len++;
            }
            if (len > 3) {
              return { len, offset: i5 };
            }
          }
        }
      }
      return { len: 0, offset: 0 };
    }
    __name2(identicalSequenceRange, "identicalSequenceRange");
    function getStackString(error) {
      return error.stack ? String(error.stack) : Error.prototype.toString.call(error);
    }
    __name2(getStackString, "getStackString");
    function getStackFrames(err2, stack) {
      const frames = stack.split("\n");
      let cause;
      try {
        ({ cause } = err2);
      } catch {
      }
      if (cause != null && typeof cause === "object" && IS_APIFY_LOGGER_EXCEPTION in cause) {
        const causeStack = getStackString(cause);
        const causeStackStart = causeStack.indexOf("\n    at");
        if (causeStackStart !== -1) {
          const causeFrames = causeStack.slice(causeStackStart + 1).split("\n");
          const { len, offset: offset2 } = identicalSequenceRange(frames, causeFrames);
          if (len > 0) {
            const skipped = len - 2;
            const msg = `    ... ${skipped} lines matching cause stack trace ...`;
            frames.splice(offset2 + 1, skipped, import_ansi_colors.default.grey(msg));
          }
        }
      }
      return frames;
    }
    __name2(getStackFrames, "getStackFrames");
    var SHORTEN_LEVELS = {
      SOFT_FAIL: "SFAIL",
      WARNING: "WARN"
    };
    var LEVEL_TO_COLOR = {
      [
        1
        /* ERROR */
      ]: "red",
      [
        2
        /* SOFT_FAIL */
      ]: "red",
      [
        3
        /* WARNING */
      ]: "yellow",
      [
        4
        /* INFO */
      ]: "green",
      [
        5
        /* DEBUG */
      ]: "blue",
      [
        6
        /* PERF */
      ]: "magenta"
    };
    var SHORTENED_LOG_LEVELS = LEVEL_TO_STRING.map((level) => SHORTEN_LEVELS[level] || level);
    var MAX_LEVEL_LENGTH_SPACES = Math.max(...SHORTENED_LOG_LEVELS.map((l4) => l4.length));
    var getLevelIndent = /* @__PURE__ */ __name2((level) => {
      let spaces = "";
      for (let i5 = 0; i5 < MAX_LEVEL_LENGTH_SPACES - level.length; i5++) spaces += " ";
      return spaces;
    }, "getLevelIndent");
    var DEFAULT_OPTIONS22 = {
      skipTime: true
    };
    var _LoggerText = class _LoggerText extends Logger2 {
      constructor(options = {}) {
        super({ ...DEFAULT_OPTIONS22, ...options });
      }
      _log(level, message, data2, exception, opts2 = {}) {
        let { prefix, suffix } = opts2;
        let maybeDate = "";
        if (!this.options.skipTime) {
          maybeDate = `${(/* @__PURE__ */ new Date()).toISOString().replace("Z", "").replace("T", " ")} `;
        }
        const errStack = exception ? this._parseException(exception) : "";
        const color = LEVEL_TO_COLOR[level];
        const levelStr = SHORTENED_LOG_LEVELS[level];
        const levelIndent = getLevelIndent(levelStr);
        const dataStr = !data2 ? "" : ` ${JSON.stringify(data2)}`;
        prefix = prefix ? ` ${prefix}${PREFIX_DELIMITER}` : "";
        suffix = suffix ? ` ${suffix}` : "";
        const line2 = `${import_ansi_colors2.default.gray(maybeDate)}${import_ansi_colors2.default[color](levelStr)}${levelIndent}${import_ansi_colors2.default.yellow(prefix)} ${message || ""}${import_ansi_colors2.default.gray(dataStr)}${import_ansi_colors2.default.yellow(suffix)}${errStack}`;
        this._outputWithConsole(level, line2);
        return line2;
      }
      _parseException(exception, indentLevel = 1) {
        if (["string", "boolean", "number", "undefined", "bigint"].includes(typeof exception)) {
          return `
${exception}`;
        }
        if (exception === null) {
          return "\nnull";
        }
        if (typeof exception === "symbol") {
          return `
${exception.toString()}`;
        }
        if (typeof exception === "object" && IS_APIFY_LOGGER_EXCEPTION in exception) {
          return this._parseLoggerException(exception, indentLevel);
        }
        return `
${JSON.stringify(exception, null, 2)}`;
      }
      _parseLoggerException(exception, indentLevel = 1) {
        const errDetails = [];
        if (exception.type) {
          errDetails.push(`type=${exception.type}`);
        }
        if (exception.details) {
          Object.entries(exception.details).map(([key, val]) => errDetails.push(`${key}=${val}`));
        }
        const errorString = exception.stack || exception.reason || exception.message;
        const isStack = errorString === exception.stack;
        const errorLines = getStackFrames(exception, errorString);
        if (isStack) {
          errorLines[0] = exception.message || errorLines[0];
        }
        if (errDetails.length) {
          errorLines[0] += import_ansi_colors2.default.gray(`(details: ${errDetails.join(", ")})`);
        }
        for (let i5 = 1; i5 < errorLines.length; i5++) {
          errorLines[i5] = import_ansi_colors2.default.gray(errorLines[i5]);
        }
        if (exception.cause) {
          const causeString = this._parseException(exception.cause, indentLevel + 1);
          const causeLines = causeString.trim().split("\n");
          errorLines.push(import_ansi_colors2.default.red(`  CAUSE: ${import_ansi_colors2.default.reset(causeLines[0])}`), ...causeLines.slice(1));
        }
        return `
${errorLines.map((line2) => `${" ".repeat(indentLevel * 2)}${line2}`).join("\n")}`;
      }
    };
    __name2(_LoggerText, "LoggerText");
    var LoggerText2 = _LoggerText;
    var getLoggerForFormat = /* @__PURE__ */ __name2((format) => {
      switch (format) {
        case "JSON":
          return new LoggerJson2();
        case "TEXT":
        default:
          return new LoggerText2();
      }
    }, "getLoggerForFormat");
    var getDefaultOptions = /* @__PURE__ */ __name2(() => ({
      level: getLevelFromEnv(),
      maxDepth: 4,
      gradualLimitFactor: 1 / 2,
      // at each depth level, the limits will be reduced by half
      maxStringLength: 1e3,
      maxArrayLength: 500,
      maxFields: 20,
      preferredFields: [...PREFERRED_FIELDS],
      prefix: null,
      suffix: null,
      truncationSuffix: TRUNCATION_SUFFIX,
      truncationFlagKey: TRUNCATION_FLAG_KEY,
      logger: getLoggerForFormat(getFormatFromEnv()),
      data: {}
    }), "getDefaultOptions");
    var _Log = class _Log2 {
      constructor(options = {}) {
        __publicField2(this, "LEVELS", LogLevel3);
        __publicField2(this, "options");
        __publicField2(this, "preferredFieldsMap");
        __publicField2(this, "warningsOnceLogged", /* @__PURE__ */ new Set());
        this.options = { ...getDefaultOptions(), ...options };
        if (!LogLevel3[this.options.level]) throw new Error('Options "level" must be one of log.LEVELS enum!');
        if (typeof this.options.maxDepth !== "number") throw new Error('Options "maxDepth" must be a number!');
        if (typeof this.options.gradualLimitFactor !== "number") throw new Error('Options "gradualLimitFactor" must be a number!');
        if (typeof this.options.maxStringLength !== "number") throw new Error('Options "maxStringLength" must be a number!');
        if (typeof this.options.maxArrayLength !== "number") throw new Error('Options "maxArrayLength" must be a number!');
        if (typeof this.options.maxFields !== "number") throw new Error('Options "maxFields" must be a number!');
        if (!Array.isArray(this.options.preferredFields)) throw new Error('Options "preferredFields" must be an array!');
        if (this.options.prefix && typeof this.options.prefix !== "string") throw new Error('Options "prefix" must be a string!');
        if (this.options.suffix && typeof this.options.suffix !== "string") throw new Error('Options "suffix" must be a string!');
        if (typeof this.options.truncationSuffix !== "string") throw new Error('Options "truncationSuffix" must be a string!');
        if (typeof this.options.truncationFlagKey !== "string") throw new Error('Options "truncationFlagKey" must be a string!');
        if (typeof this.options.logger !== "object") throw new Error('Options "logger" must be an object!');
        if (typeof this.options.data !== "object") throw new Error('Options "data" must be an object!');
        this.preferredFieldsMap = Object.fromEntries(
          this.options.preferredFields.map((field, index2) => [field, index2])
        );
      }
      _sanitizeData(obj) {
        return sanitizeData(
          obj,
          {
            maxDepth: this.options.maxDepth,
            gradualLimitFactor: this.options.gradualLimitFactor,
            maxStringLength: this.options.maxStringLength,
            maxArrayLength: this.options.maxArrayLength,
            maxFields: this.options.maxFields,
            preferredFieldsMap: this.preferredFieldsMap,
            truncationSuffix: this.options.truncationSuffix,
            truncationFlagKey: this.options.truncationFlagKey
          }
        );
      }
      /**
       * Returns the currently selected logging level. This is useful for checking whether a message
       * will actually be printed to the console before one actually performs a resource intensive operation
       * to construct the message, such as querying a DB for some metadata that need to be added. If the log
       * level is not high enough at the moment, it doesn't make sense to execute the query.
       */
      getLevel() {
        return this.options.level;
      }
      /**
       * Sets the log level to the given value, preventing messages from less important log levels
       * from being printed to the console. Use in conjunction with the `log.LEVELS` constants such as
       *
       * ```
       * log.setLevel(log.LEVELS.DEBUG);
       * ```
       *
       * Default log level is INFO.
       */
      setLevel(level) {
        if (!LogLevel3[level]) throw new Error('Options "level" must be one of log.LEVELS enum!');
        this.options.level = level;
      }
      internal(level, message, data2, exception) {
        if (level > this.options.level) return;
        data2 = { ...this.options.data, ...data2 };
        data2 = Reflect.ownKeys(data2).length > 0 ? this._sanitizeData(data2) : void 0;
        exception = this._sanitizeData(exception);
        this.options.logger.log(level, message, data2, exception, {
          prefix: this.options.prefix,
          suffix: this.options.suffix
        });
      }
      /**
       * Configures logger.
       */
      setOptions(options) {
        this.options = { ...this.options, ...options };
      }
      /**
       * Returns the logger configuration.
       */
      getOptions() {
        return { ...this.options };
      }
      /**
       * Creates a new instance of logger that inherits settings from a parent logger.
       */
      child(options) {
        let { prefix } = this.options;
        if (options.prefix) {
          prefix = prefix ? `${prefix}${PREFIX_DELIMITER}${options.prefix}` : options.prefix;
        }
        const data2 = options.data ? { ...this.options.data, ...options.data } : this.options.data;
        const newOptions = {
          ...this.options,
          ...options,
          prefix,
          data: data2
        };
        return new _Log2(newOptions);
      }
      /**
       * Logs an `ERROR` message. Use this method to log error messages that are not directly connected
       * to an exception. For logging exceptions, use the `log.exception` method.
       */
      error(message, data2) {
        this.internal(1, message, data2);
      }
      /**
       * Logs an `ERROR` level message with a nicely formatted exception. Note that the exception is the first parameter
       * here and an additional message is only optional.
       */
      exception(exception, message, data2) {
        this.internal(1, message, data2, exception);
      }
      softFail(message, data2) {
        this.internal(2, message, data2);
      }
      /**
       * Logs a `WARNING` level message. Data are stringified and appended to the message.
       */
      warning(message, data2) {
        this.internal(3, message, data2);
      }
      /**
       * Logs an `INFO` message. `INFO` is the default log level so info messages will be always logged,
       * unless the log level is changed. Data are stringified and appended to the message.
       */
      info(message, data2) {
        this.internal(4, message, data2);
      }
      /**
       * Logs a `DEBUG` message. By default, it will not be written to the console. To see `DEBUG`
       * messages in the console, set the log level to `DEBUG` either using the `log.setLevel(log.LEVELS.DEBUG)`
       * method or using the environment variable `APIFY_LOG_LEVEL=DEBUG`. Data are stringified and appended
       * to the message.
       */
      debug(message, data2) {
        this.internal(5, message, data2);
      }
      perf(message, data2) {
        this.internal(6, message, data2);
      }
      /**
       * Logs a `WARNING` level message only once.
       */
      warningOnce(message) {
        if (this.warningsOnceLogged.has(message)) return;
        this.warningsOnceLogged.add(message);
        this.warning(message);
      }
      /**
       * Logs given message only once as WARNING. It's used to warn user that some feature he is using has been deprecated.
       */
      deprecated(message) {
        this.warningOnce(message);
      }
    };
    __name2(_Log, "Log");
    var Log2 = _Log;
    var log2 = new Log2();
    var index_default = log2;
  }
});

// ../../node_modules/.pnpm/@apify+utilities@2.25.4/node_modules/@apify/utilities/cjs/index.cjs
var require_cjs4 = __commonJS({
  "../../node_modules/.pnpm/@apify+utilities@2.25.4/node_modules/@apify/utilities/cjs/index.cjs"(exports, module) {
    "use strict";
    var __create2 = Object.create;
    var __defProp3 = Object.defineProperty;
    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames2 = Object.getOwnPropertyNames;
    var __getProtoOf2 = Object.getPrototypeOf;
    var __hasOwnProp2 = Object.prototype.hasOwnProperty;
    var __defNormalProp2 = (obj, key, value2) => key in obj ? __defProp3(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
    var __name2 = (target, value2) => __defProp3(target, "name", { value: value2, configurable: true });
    var __export2 = (target, all5) => {
      for (var name in all5)
        __defProp3(target, name, { get: all5[name], enumerable: true });
    };
    var __copyProps2 = (to, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames2(from))
          if (!__hasOwnProp2.call(to, key) && key !== except)
            __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
      }
      return to;
    };
    var __toESM2 = (mod3, isNodeMode, target) => (target = mod3 != null ? __create2(__getProtoOf2(mod3)) : {}, __copyProps2(
      // If the importer is in node compatibility mode or this is not an ESM
      // file that has been converted to a CommonJS file using a Babel-
      // compatible transform (i.e. "__esModule" has not been set), then set
      // "default" to the CommonJS "module.exports" for node compatibility.
      isNodeMode || !mod3 || !mod3.__esModule ? __defProp3(target, "default", { value: mod3, enumerable: true }) : target,
      mod3
    ));
    var __toCommonJS2 = (mod3) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod3);
    var __publicField2 = (obj, key, value2) => __defNormalProp2(obj, typeof key !== "symbol" ? key + "" : key, value2);
    var index_exports = {};
    __export2(index_exports, {
      CHECK_TYPES: () => CHECK_TYPES,
      CodeHashManager: () => CodeHashManager,
      CodeHashMetaKey: () => CodeHashMetaKey,
      HealthChecker: () => HealthChecker,
      InvalidJsonError: () => InvalidJsonError,
      InvalidVariableError: () => InvalidVariableError,
      JsonVariable: () => JsonVariable,
      ParseJsonlStream: () => ParseJsonlStream,
      RetryableError: () => RetryableError,
      WebhookPayloadTemplate: () => WebhookPayloadTemplate,
      betterClearInterval: () => betterClearInterval,
      betterSetInterval: () => betterSetInterval,
      buildOrVersionNumberIntToStr: () => buildOrVersionNumberIntToStr,
      checkParamPrototypeOrThrow: () => checkParamPrototypeOrThrow,
      concatStreamToBuffer: () => concatStreamToBuffer,
      configureLogger: () => configureLogger,
      createHmacSignature: () => createHmacSignature,
      createHmacSignatureAsync: () => createHmacSignatureAsync,
      createInjectableRegExp: () => createInjectableRegExp,
      createStorageContentSignature: () => createStorageContentSignature,
      createStorageContentSignatureAsync: () => createStorageContentSignatureAsync,
      cryptoRandomObjectId: () => cryptoRandomObjectId,
      dateToString: () => dateToString,
      delayPromise: () => delayPromise,
      deterministicUniqueId: () => deterministicUniqueId,
      escapeForBson: () => escapeForBson,
      escapePropertyName: () => escapePropertyName,
      escapeRegExp: () => escapeRegExp,
      expressErrorHandler: () => expressErrorHandler,
      getOrdinalSuffix: () => getOrdinalSuffix,
      getRandomInt: () => getRandomInt,
      http404Route: () => http404Route,
      isBadForMongo: () => isBadForMongo,
      isBuffer: () => isBuffer4,
      isForbiddenUsername: () => isForbiddenUsername,
      isNullOrUndefined: () => isNullOrUndefined2,
      isUrlRelative: () => isUrlRelative,
      jsonStringifyExtended: () => jsonStringifyExtended,
      leftpad: () => leftpad,
      markedDecreaseHeadsLevel: () => markedDecreaseHeadsLevel,
      markedSetNofollowLinks: () => markedSetNofollowLinks,
      normalizeUrl: () => normalizeUrl2,
      parseBooleanOrNull: () => parseBooleanOrNull,
      parseDateFromJson: () => parseDateFromJson,
      parseUrl: () => parseUrl,
      privateDecrypt: () => privateDecrypt,
      promisifyServerListen: () => promisifyServerListen,
      publicEncrypt: () => publicEncrypt,
      readStreamToString: () => readStreamToString,
      removeFromArray: () => removeFromArray,
      retryWithExpBackoff: () => retryWithExpBackoff,
      separateImports: () => separateImports,
      sequentializePromises: () => sequentializePromises,
      splitFullName: () => splitFullName,
      timeoutPromise: () => timeoutPromise,
      traverseObject: () => traverseObject,
      truncate: () => truncate2,
      unescapeFromBson: () => unescapeFromBson,
      unescapePropertyName: () => unescapePropertyName,
      weightedAverage: () => weightedAverage
    });
    module.exports = __toCommonJS2(index_exports);
    var import_node_crypto3 = __toESM2(__require("crypto"));
    var import_consts = require_cjs2();
    var import_log = __toESM2(require_cjs3());
    function cryptoRandomObjectId(length2 = 17) {
      const chars = "abcdefghijklmnopqrstuvwxyzABCEDFGHIJKLMNOPQRSTUVWXYZ0123456789";
      const bytes = import_node_crypto3.default.randomBytes(length2);
      let str = "";
      for (let i5 = bytes.length - 1; i5 >= 0; i5--) {
        str += chars[(bytes[i5] | 0) % chars.length];
      }
      return str;
    }
    __name2(cryptoRandomObjectId, "cryptoRandomObjectId");
    function deterministicUniqueId(key, length2 = 17) {
      return import_node_crypto3.default.createHash("sha256").update(key).digest("base64").replace(/(\+|\/|=)/g, "x").substr(0, length2);
    }
    __name2(deterministicUniqueId, "deterministicUniqueId");
    function getRandomInt(maxExcluded) {
      maxExcluded = Math.floor(maxExcluded);
      return Math.floor(Math.random() * maxExcluded);
    }
    __name2(getRandomInt, "getRandomInt");
    function parseDateFromJson(date) {
      if (typeof date === "string") {
        return new Date(Date.parse(date));
      }
      return date;
    }
    __name2(parseDateFromJson, "parseDateFromJson");
    async function delayPromise(millis) {
      return new Promise(((resolve4) => {
        if (millis > 0) {
          setTimeout(() => resolve4(), millis);
        } else {
          resolve4();
        }
      }));
    }
    __name2(delayPromise, "delayPromise");
    function removeFromArray(array, element) {
      const index2 = array.indexOf(element);
      if (index2 >= 0) {
        array.splice(index2, 1);
        return true;
      }
      return false;
    }
    __name2(removeFromArray, "removeFromArray");
    function http404Route(req, res) {
      res.status(404);
      res.send("Page not found");
    }
    __name2(http404Route, "http404Route");
    function expressErrorHandler(err2, req, res, next) {
      import_log.default.warning("Client HTTP request failed", { url: req.url, errMsg: err2.message });
      if (res.headersSent) {
        next(err2);
        return;
      }
      res.status(505);
      res.send("Internal server error");
    }
    __name2(expressErrorHandler, "expressErrorHandler");
    function betterSetInterval(func, delay2) {
      let scheduleNextRun;
      let timeoutId;
      let isRunning = true;
      const funcWrapper = /* @__PURE__ */ __name2(function() {
        void new Promise((resolve4) => {
          resolve4(func(() => void 0));
        }).finally(scheduleNextRun);
      }, "funcWrapper");
      scheduleNextRun = /* @__PURE__ */ __name2(function() {
        if (isRunning) timeoutId = setTimeout(funcWrapper, delay2);
      }, "scheduleNextRun");
      funcWrapper();
      return {
        _betterClearInterval() {
          isRunning = false;
          clearTimeout(timeoutId);
        }
      };
    }
    __name2(betterSetInterval, "betterSetInterval");
    function betterClearInterval(intervalID) {
      if (intervalID && intervalID._betterClearInterval) {
        try {
          intervalID._betterClearInterval();
        } catch (e4) {
          import_log.default.exception(e4, "_betterClearInterval() threw an exception!?");
        }
      }
    }
    __name2(betterClearInterval, "betterClearInterval");
    function escapeRegExp(str) {
      return String(str).replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
    }
    __name2(escapeRegExp, "escapeRegExp");
    function leftpad(str, len, ch = " ") {
      str = String(str);
      let i5 = -1;
      if (!ch && ch !== 0) ch = " ";
      len -= str.length;
      while (++i5 < len) {
        str = ch + str;
      }
      return str;
    }
    __name2(leftpad, "leftpad");
    function weightedAverage(val1, weight1, val2, weight2) {
      return (val1 * weight1 + val2 * weight2) / (weight1 + weight2);
    }
    __name2(weightedAverage, "weightedAverage");
    var FORBIDDEN_USERNAMES_REGEXPS = [
      // App routes
      "page-not-found",
      "docs",
      "terms-of-use",
      "about",
      "pricing",
      "privacy-policy",
      "customers",
      "request-form",
      "request-solution",
      "release-notes",
      "jobs",
      "api-reference",
      "video-tutorials",
      "acts",
      "key-value-stores",
      "schedules",
      "account",
      "sign-up",
      "sign-in-discourse",
      "admin",
      "documentation",
      "change-password",
      "enroll-account",
      "forgot-password",
      "reset-password",
      "sign-in",
      "verify-email",
      "live-status",
      "browser-info",
      "webhooks",
      "health-check",
      "api",
      "change-log",
      "dashboard",
      "community",
      "crawlers",
      "ext",
      "schemas",
      // Various strings
      "admin",
      "administration",
      "crawler",
      "act",
      "library",
      "lib",
      "apifier",
      "team",
      "contact",
      "doc",
      "documentation",
      "for-business",
      "for-developers",
      "developers",
      "business",
      "integrations",
      "job",
      "setting",
      "settings",
      "privacy",
      "policy",
      "assets",
      "help",
      "config",
      "configuration",
      "terms",
      "hiring",
      "hire",
      "status",
      "status-page",
      "solutions",
      "support",
      "market",
      "marketplace",
      "download",
      "downloads",
      "username",
      "users",
      "user",
      "login",
      "logout",
      "signin",
      "sign",
      "signup",
      "sign-out",
      "signout",
      "plugins",
      "plug-ins",
      "reset",
      "password",
      "passwords",
      "square",
      "profile-photos",
      "profiles",
      "true",
      "false",
      "js",
      "css",
      "img",
      "images",
      "image",
      "partials",
      "fonts",
      "font",
      "dynamic_templates",
      "app",
      "schedules",
      "community",
      "storage",
      "storages",
      "account",
      "node_modules",
      "bower_components",
      "video",
      "knowledgebase",
      "forum",
      "customers",
      "blog",
      "health-check",
      "health",
      "anim",
      "forum_topics.json",
      "forum_categories.json",
      "me",
      "you",
      "him",
      "she",
      "it",
      "external",
      "actor",
      "crawler",
      "scheduler",
      "api",
      "sdk",
      "puppeteer",
      "webdriver",
      "selenium",
      "(selenium.*webdriver)",
      "undefined",
      "page-analyzer",
      "wp-login.php",
      "welcome.action",
      "echo",
      "proxy",
      "super-proxy",
      "gdpr",
      "case-studies",
      "use-cases",
      "how-to",
      "kb",
      "cookies",
      "cookie-policy",
      "cookies-policy",
      "powered-by",
      "run",
      "runs",
      "actor",
      "actors",
      "act",
      "acts",
      "success-stories",
      "roadmap",
      "join-marketplace",
      "presskit",
      "press-kit",
      "covid-19",
      "covid",
      "covid19",
      "matfyz",
      "ideas",
      "public-actors",
      "resources",
      "partners",
      "affiliate",
      "industries",
      "web-scraping",
      "custom-solutions",
      "solution-provider",
      "alternatives",
      "platform",
      "freelancers",
      "freelancer",
      "partner",
      "preview",
      "templates",
      "data-for-generative-ai",
      "discord",
      "praguecrawl",
      "prague-crawl",
      "bob",
      "ai-agents",
      "reel",
      "video-reel",
      "mcp",
      "model-context-protocol",
      "modelcontextprotocol",
      "apify.com",
      "design-kit",
      "press-kit",
      "scrapers",
      "professional-services",
      "challenge",
      "challange",
      "1m-challenge",
      "1m-usd-challenge",
      // Special files
      "index",
      "index\\.html",
      "(favicon\\.[a-z]+)",
      "BingSiteAuth.xml",
      "(google.+\\.html)",
      "robots\\.txt",
      "(sitemap\\.[a-z]+)",
      "(apple-touch-icon.*)",
      "security-whitepaper\\.pdf",
      "security\\.txt",
      // All hidden files
      "(\\..*)",
      // Username starting with xxx-
      "(xxx-.*)",
      // Username starting with install-cli. (see https://docs.apify.com/cli/docs/installation)
      "(install-cli\\..*)",
      // Strings not starting with letter or number
      "([^0-9a-z].*)",
      // Strings not ending with letter or number
      "(.*[^0-9a-z])",
      // Strings where there's more than one underscore, comma or dash in row
      "(.*[_.\\-]{2}.*)",
      // Reserved usernames from https://github.com/shouldbee/reserved-usernames/blob/master/reserved-usernames.json
      "0",
      "about",
      "access",
      "account",
      "accounts",
      "activate",
      "activities",
      "activity",
      "ad",
      "add",
      "address",
      "adm",
      "admin",
      "administration",
      "administrator",
      "ads",
      "adult",
      "advertising",
      "affiliate",
      "affiliates",
      "ajax",
      "all",
      "alpha",
      "analysis",
      "analytics",
      "android",
      "anon",
      "anonymous",
      "api",
      "app",
      "apps",
      "archive",
      "archives",
      "article",
      "asct",
      "asset",
      "atom",
      "auth",
      "authentication",
      "avatar",
      "backup",
      "balancer-manager",
      "banner",
      "banners",
      "beta",
      "billing",
      "bin",
      "blog",
      "blogs",
      "board",
      "book",
      "bookmark",
      "bot",
      "bots",
      "bug",
      "business",
      "cache",
      "cadastro",
      "calendar",
      "call",
      "campaign",
      "cancel",
      "captcha",
      "career",
      "careers",
      "cart",
      "categories",
      "category",
      "cgi",
      "cgi-bin",
      "changelog",
      "chat",
      "check",
      "checking",
      "checkout",
      "client",
      "cliente",
      "clients",
      "code",
      "codereview",
      "comercial",
      "comment",
      "comments",
      "communities",
      "community",
      "company",
      "compare",
      "compras",
      "config",
      "configuration",
      "connect",
      "contact",
      "contact-us",
      "contact_us",
      "contactus",
      "contest",
      "contribute",
      "corp",
      "create",
      "css",
      "dashboard",
      "data",
      "db",
      "default",
      "delete",
      "demo",
      "design",
      "designer",
      "destroy",
      "dev",
      "devel",
      "developer",
      "developers",
      "diagram",
      "diary",
      "dict",
      "dictionary",
      "die",
      "dir",
      "direct_messages",
      "directory",
      "dist",
      "doc",
      "docs",
      "documentation",
      "domain",
      "download",
      "downloads",
      "ecommerce",
      "edit",
      "editor",
      "edu",
      "education",
      "email",
      "employment",
      "empty",
      "end",
      "enterprise",
      "entries",
      "entry",
      "error",
      "errors",
      "eval",
      "event",
      "exit",
      "explore",
      "facebook",
      "faq",
      "favorite",
      "favorites",
      "feature",
      "features",
      "feed",
      "feedback",
      "feeds",
      "file",
      "files",
      "first",
      "flash",
      "fleet",
      "fleets",
      "flog",
      "follow",
      "followers",
      "following",
      "forgot",
      "form",
      "forum",
      "forums",
      "founder",
      "free",
      "friend",
      "friends",
      "ftp",
      "gadget",
      "gadgets",
      "game",
      "games",
      "get",
      "gift",
      "gifts",
      "gist",
      "github",
      "graph",
      "group",
      "groups",
      "guest",
      "guests",
      "help",
      "home",
      "homepage",
      "host",
      "hosting",
      "hostmaster",
      "hostname",
      "howto",
      "hpg",
      "html",
      "http",
      "httpd",
      "https",
      "i",
      "iamges",
      "icon",
      "icons",
      "id",
      "idea",
      "ideas",
      "image",
      "images",
      "imap",
      "img",
      "index",
      "indice",
      "info",
      "information",
      "inquiry",
      "instagram",
      "intranet",
      "invitations",
      "invite",
      "ipad",
      "iphone",
      "irc",
      "is",
      "issue",
      "issues",
      "it",
      "item",
      "items",
      "java",
      "javascript",
      "job",
      "jobs",
      "join",
      "js",
      "json",
      "jump",
      "knowledgebase",
      "language",
      "languages",
      "last",
      "ldap-status",
      "legal",
      "license",
      "link",
      "links",
      "linux",
      "list",
      "lists",
      "log",
      "log-in",
      "log-out",
      "log_in",
      "log_out",
      "login",
      "logout",
      "logs",
      "m",
      "mac",
      "mail",
      "mail1",
      "mail2",
      "mail3",
      "mail4",
      "mail5",
      "mailer",
      "mailing",
      "maintenance",
      "manager",
      "manual",
      "map",
      "maps",
      "marketing",
      "master",
      "me",
      "media",
      "member",
      "members",
      "message",
      "messages",
      "messenger",
      "microblog",
      "microblogs",
      "mine",
      "mis",
      "mob",
      "mobile",
      "movie",
      "movies",
      "mp3",
      "msg",
      "msn",
      "music",
      "musicas",
      "mx",
      "my",
      "mysql",
      "name",
      "named",
      "nan",
      "navi",
      "navigation",
      "net",
      "network",
      "new",
      "news",
      "newsletter",
      "nick",
      "nickname",
      "notes",
      "noticias",
      "notification",
      "notifications",
      "notify",
      "ns",
      "ns1",
      "ns10",
      "ns2",
      "ns3",
      "ns4",
      "ns5",
      "ns6",
      "ns7",
      "ns8",
      "ns9",
      "null",
      "oauth",
      "oauth_clients",
      "offer",
      "offers",
      "official",
      "old",
      "online",
      "openid",
      "operator",
      "order",
      "orders",
      "organization",
      "organizations",
      "overview",
      "owner",
      "owners",
      "page",
      "pager",
      "pages",
      "panel",
      "password",
      "payment",
      "perl",
      "phone",
      "photo",
      "photoalbum",
      "photos",
      "php",
      "phpmyadmin",
      "phppgadmin",
      "phpredisadmin",
      "pic",
      "pics",
      "ping",
      "plan",
      "plans",
      "plugin",
      "plugins",
      "policy",
      "pop",
      "pop3",
      "popular",
      "portal",
      "post",
      "postfix",
      "postmaster",
      "posts",
      "pr",
      "premium",
      "press",
      "price",
      "pricing",
      "privacy",
      "privacy-policy",
      "privacy_policy",
      "privacypolicy",
      "private",
      "product",
      "products",
      "profile",
      "project",
      "projects",
      "promo",
      "pub",
      "public",
      "purpose",
      "put",
      "python",
      "query",
      "random",
      "ranking",
      "read",
      "readme",
      "recent",
      "recruit",
      "recruitment",
      "register",
      "registration",
      "release",
      "remove",
      "replies",
      "report",
      "reports",
      "repositories",
      "repository",
      "req",
      "request",
      "requests",
      "reset",
      "roc",
      "root",
      "rss",
      "ruby",
      "rule",
      "sag",
      "sale",
      "sales",
      "sample",
      "samples",
      "save",
      "school",
      "script",
      "scripts",
      "search",
      "secure",
      "security",
      "self",
      "send",
      "server",
      "server-info",
      "server-status",
      "service",
      "services",
      "session",
      "sessions",
      "setting",
      "settings",
      "setup",
      "share",
      "shop",
      "show",
      "sign-in",
      "sign-up",
      "sign_in",
      "sign_up",
      "signin",
      "signout",
      "signup",
      "site",
      "sitemap",
      "sites",
      "smartphone",
      "smtp",
      "soporte",
      "source",
      "spec",
      "special",
      "sql",
      "src",
      "ssh",
      "ssl",
      "ssladmin",
      "ssladministrator",
      "sslwebmaster",
      "staff",
      "stage",
      "staging",
      "start",
      "stat",
      "state",
      "static",
      "stats",
      "status",
      "store",
      "stores",
      "stories",
      "style",
      "styleguide",
      "stylesheet",
      "stylesheets",
      "subdomain",
      "subscribe",
      "subscription",
      "subscriptions",
      "suporte",
      "support",
      "svn",
      "swf",
      "sys",
      "sysadmin",
      "sysadministrator",
      "system",
      "tablet",
      "tablets",
      "tag",
      "talk",
      "task",
      "tasks",
      "team",
      "teams",
      "tech",
      "telnet",
      "term",
      "terms",
      "terms-of-service",
      "terms_of_service",
      "termsofservice",
      "test",
      "test1",
      "test2",
      "test3",
      "teste",
      "testing",
      "tests",
      "theme",
      "themes",
      "thread",
      "threads",
      "tmp",
      "todo",
      "tool",
      "tools",
      "top",
      "topic",
      "topics",
      "tos",
      "tour",
      "translations",
      "trends",
      "tutorial",
      "tux",
      "tv",
      "twitter",
      "undef",
      "unfollow",
      "unsubscribe",
      "update",
      "upload",
      "uploads",
      "url",
      "usage",
      "user",
      "username",
      "users",
      "usuario",
      "vendas",
      "ver",
      "version",
      "video",
      "videos",
      "visitor",
      "watch",
      "weather",
      "web",
      "webhook",
      "webhooks",
      "webmail",
      "webmaster",
      "website",
      "websites",
      "welcome",
      "widget",
      "widgets",
      "wiki",
      "win",
      "windows",
      "word",
      "work",
      "works",
      "workshop",
      "ww",
      "wws",
      "www",
      "www1",
      "www2",
      "www3",
      "www4",
      "www5",
      "www6",
      "www7",
      "wwws",
      "wwww",
      "xfn",
      "xml",
      "xmpp",
      "xpg",
      "xxx",
      "yaml",
      "year",
      "yml",
      "you",
      "yourdomain",
      "yourname",
      "yoursite",
      "yourusername"
    ];
    var FORBIDDEN_REGEXP = new RegExp(`^(${import_consts.ANONYMOUS_USERNAME}|${FORBIDDEN_USERNAMES_REGEXPS.join("|")})$`, "i");
    function isForbiddenUsername(username) {
      return !!username.match(import_consts.APIFY_ID_REGEX) || !!username.match(FORBIDDEN_REGEXP);
    }
    __name2(isForbiddenUsername, "isForbiddenUsername");
    async function sequentializePromises(promises) {
      if (!promises.length) return [];
      const results = [];
      for (const promiseOrFunc of promises) {
        const promise = promiseOrFunc instanceof Function ? promiseOrFunc() : promiseOrFunc;
        results.push(await promise);
      }
      return results;
    }
    __name2(sequentializePromises, "sequentializePromises");
    function checkParamPrototypeOrThrow(paramVal, paramName, prototypes, prototypeName, isOptional2 = false) {
      if (isOptional2 && (paramVal === void 0 || paramVal === null)) return;
      const hasCorrectPrototype = prototypes instanceof Array ? prototypes.some((prototype2) => paramVal instanceof prototype2) : paramVal instanceof prototypes;
      if (!hasCorrectPrototype) throw new Error(`Parameter "${paramName}" must be an instance of ${prototypeName}`);
    }
    __name2(checkParamPrototypeOrThrow, "checkParamPrototypeOrThrow");
    function promisifyServerListen(server) {
      return async (port) => {
        return new Promise((resolve4, reject) => {
          const onError = /* @__PURE__ */ __name2((err2) => {
            removeListeners();
            reject(err2);
          }, "onError");
          const onListening = /* @__PURE__ */ __name2(() => {
            removeListeners();
            resolve4();
          }, "onListening");
          const removeListeners = /* @__PURE__ */ __name2(() => {
            server.removeListener("error", onError);
            server.removeListener("listening", onListening);
          }, "removeListeners");
          server.on("error", onError);
          server.on("listening", onListening);
          server.listen(port);
        });
      };
    }
    __name2(promisifyServerListen, "promisifyServerListen");
    function configureLogger(givenLog, isProduction) {
      if (isProduction) {
        givenLog.setOptions({
          level: import_log.LogLevel.INFO,
          logger: new import_log.LoggerJson()
        });
      } else {
        givenLog.setOptions({ level: import_log.LogLevel.DEBUG });
      }
    }
    __name2(configureLogger, "configureLogger");
    async function timeoutPromise(promise, timeoutMillis, errorMessage = "Promise has timed-out") {
      return new Promise((resolve4, reject) => {
        let timeout;
        let hasFulfilled = false;
        const callback = /* @__PURE__ */ __name2((err2, result) => {
          if (hasFulfilled) return;
          clearTimeout(timeout);
          hasFulfilled = true;
          if (err2) {
            reject(err2);
            return;
          }
          resolve4(result);
        }, "callback");
        promise.then((result) => callback(null, result), callback);
        timeout = setTimeout(() => callback(new Error(errorMessage)), timeoutMillis);
      });
    }
    __name2(timeoutPromise, "timeoutPromise");
    function createInjectableRegExp(regex2) {
      return new RegExp(regex2.source.replace(/^\^|\$$/g, ""));
    }
    __name2(createInjectableRegExp, "createInjectableRegExp");
    var import_consts2 = require_cjs2();
    function isNullOrUndefined2(obj) {
      return obj == null;
    }
    __name2(isNullOrUndefined2, "isNullOrUndefined");
    function isBuffer4(obj) {
      return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === "function" && obj.constructor.isBuffer(obj);
    }
    __name2(isBuffer4, "isBuffer");
    function dateToString(date, middleT) {
      if (!(date instanceof Date)) {
        return "";
      }
      const year = date.getFullYear();
      const month = date.getMonth() + 1;
      const day = date.getDate();
      const hours = date.getHours();
      const minutes = date.getMinutes();
      const seconds = date.getSeconds();
      const millis = date.getMilliseconds();
      const pad2 = /* @__PURE__ */ __name2((num) => num < 10 ? `0${num}` : num, "pad");
      const datePart = `${year}-${pad2(month)}-${pad2(day)}`;
      const millisPart = millis < 10 ? `00${millis}` : millis < 100 ? `0${millis}` : millis;
      const timePart = `${pad2(hours)}:${pad2(minutes)}:${pad2(seconds)}.${millisPart}`;
      return `${datePart}${middleT ? "T" : " "}${timePart}`;
    }
    __name2(dateToString, "dateToString");
    function truncate2(str, maxLength, suffix = "...[truncated]") {
      maxLength = Math.floor(maxLength);
      if (suffix.length > maxLength) {
        throw new Error("suffix string cannot be longer than maxLength");
      }
      if (typeof str === "string" && str.length > maxLength) {
        str = str.substr(0, maxLength - suffix.length) + suffix;
      }
      return str;
    }
    __name2(truncate2, "truncate");
    function getOrdinalSuffix(num) {
      const s4 = ["th", "st", "nd", "rd"];
      const v3 = num % 100;
      return s4[(v3 - 20) % 10] || s4[v3] || s4[0];
    }
    __name2(getOrdinalSuffix, "getOrdinalSuffix");
    function parseUrl(str) {
      if (typeof str !== "string") return {};
      const o5 = {
        strictMode: false,
        key: [
          "source",
          "protocol",
          "authority",
          "userInfo",
          "user",
          "password",
          "host",
          "port",
          "relative",
          "path",
          "directory",
          "file",
          "query",
          "fragment"
        ],
        q: {
          name: "queryKey",
          parser: /(?:^|&)([^&=]*)=?([^&]*)/g
        },
        parser: {
          strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
          // eslint-disable-line max-len,no-useless-escape
          loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
          // eslint-disable-line max-len,no-useless-escape
        }
      };
      const m3 = o5.parser[o5.strictMode ? "strict" : "loose"].exec(str);
      const uri = {};
      let i5 = o5.key.length;
      while (i5--) uri[o5.key[i5]] = m3[i5] || "";
      uri[o5.q.name] = {};
      uri[o5.key[12]].replace(o5.q.parser, ($0, $1, $2) => {
        if ($1) uri[o5.q.name][$1] = $2;
      });
      uri.fragmentKey = {};
      if (uri.fragment) {
        uri.fragment.replace(o5.q.parser, (($0, $1, $2) => {
          if ($1) uri.fragmentKey[$1] = $2;
        }));
      }
      return uri;
    }
    __name2(parseUrl, "parseUrl");
    function normalizeUrl2(url3, keepFragment) {
      if (typeof url3 !== "string" || !url3.length) {
        return null;
      }
      let urlObj;
      try {
        urlObj = new URL(url3.trim());
      } catch {
        return null;
      }
      const { searchParams } = urlObj;
      for (const key of [...searchParams.keys()]) {
        if (key.startsWith("utm_")) {
          searchParams.delete(key);
        }
      }
      searchParams.sort();
      const protocol = urlObj.protocol.toLowerCase();
      const host = urlObj.host.toLowerCase();
      const path3 = urlObj.pathname.replace(/\/$/, "");
      const search = searchParams.toString() ? `?${searchParams}` : "";
      const hash = keepFragment ? urlObj.hash : "";
      return `${protocol}//${host}${path3}${search}${hash}`;
    }
    __name2(normalizeUrl2, "normalizeUrl");
    function markedSetNofollowLinks(href, title, text, referrerHostname) {
      let urlParsed;
      try {
        urlParsed = new URL(href);
      } catch {
      }
      const isApifyLink = urlParsed && /(\.|^)apify\.com$/i.test(urlParsed.hostname);
      const isSameHostname = !referrerHostname || urlParsed && urlParsed.hostname === referrerHostname;
      if (isApifyLink && isSameHostname) {
        return `<a href="${href}">${title || text}</a>`;
      }
      if (isApifyLink) {
        return `<a rel="noopener noreferrer" target="_blank" href="${href}">${title || text}</a>`;
      }
      return `<a rel="noopener noreferrer nofollow" target="_blank" href="${href}">${title || text}</a>`;
    }
    __name2(markedSetNofollowLinks, "markedSetNofollowLinks");
    function markedDecreaseHeadsLevel(text, level) {
      level += 1;
      return `<h${level}>${text}</h${level}>`;
    }
    __name2(markedDecreaseHeadsLevel, "markedDecreaseHeadsLevel");
    function buildOrVersionNumberIntToStr(int) {
      if (typeof int !== "number" || !(int >= 0)) return null;
      const major3 = Math.floor(int / import_consts2.VERSION_INT_MAJOR_BASE);
      const remainder = int % import_consts2.VERSION_INT_MAJOR_BASE;
      const minor3 = Math.floor(remainder / import_consts2.VERSION_INT_MINOR_BASE);
      const build = remainder % import_consts2.VERSION_INT_MINOR_BASE;
      let str = `${major3}.${minor3}`;
      if (build > 0) str += `.${build}`;
      return str;
    }
    __name2(buildOrVersionNumberIntToStr, "buildOrVersionNumberIntToStr");
    var ESCAPE_DOT = "\uFF0E";
    var ESCAPE_DOLLAR = "\uFF04";
    var ESCAPE_TO_BSON = "\uFF54\uFF4F\uFF22\uFF33\uFF2F\uFF2E";
    var ESCAPE_TO_STRING = "\uFF54\uFF4F\uFF33\uFF54\uFF52\uFF49\uFF4E\uFF47";
    var ESCAPE_BSON_TYPE = "\uFF3F\uFF42\uFF53\uFF4F\uFF4E\uFF54\uFF59\uFF50\uFF45";
    var ESCAPE_NULL = "";
    var REGEXP_IS_ESCAPED = new RegExp(`(${ESCAPE_DOT}|^${ESCAPE_DOLLAR}|^${ESCAPE_TO_BSON}$|^${ESCAPE_BSON_TYPE}|^${ESCAPE_TO_STRING}$)`);
    var REGEXP_DOT = new RegExp(ESCAPE_DOT, "g");
    var REGEXP_DOLLAR = new RegExp(`^${ESCAPE_DOLLAR}`);
    var REGEXP_TO_BSON = new RegExp(`^${ESCAPE_TO_BSON}$`);
    var REGEXP_TO_STRING = new RegExp(`^${ESCAPE_TO_STRING}$`);
    var REGEXP_BSON_TYPE = new RegExp(`^${ESCAPE_BSON_TYPE}$`);
    function escapePropertyName(name) {
      if (/(\.|^\$|^toBSON$|^_bsontype$|^toString$|\0)/.test(name)) {
        name = name.replace(/\./g, ESCAPE_DOT);
        name = name.replace(/^\$/, ESCAPE_DOLLAR);
        name = name.replace(/^toBSON$/, ESCAPE_TO_BSON);
        name = name.replace(/^toString$/, ESCAPE_TO_STRING);
        name = name.replace(/^_bsontype$/, ESCAPE_BSON_TYPE);
        name = name.replace(/\0/g, ESCAPE_NULL);
      }
      return name;
    }
    __name2(escapePropertyName, "escapePropertyName");
    function unescapePropertyName(name) {
      if (REGEXP_IS_ESCAPED.test(name)) {
        name = name.replace(REGEXP_DOT, ".");
        name = name.replace(REGEXP_DOLLAR, "$");
        name = name.replace(REGEXP_TO_BSON, "toBSON");
        name = name.replace(REGEXP_TO_STRING, "toString");
        name = name.replace(REGEXP_BSON_TYPE, "_bsontype");
      }
      return name;
    }
    __name2(unescapePropertyName, "unescapePropertyName");
    function traverseObject(obj, clone, transformFunc) {
      if (obj === null || typeof obj !== "object" || Object.prototype.toString.call(obj) === "[object Date]" || isBuffer4(obj)) return obj;
      let result;
      if (Array.isArray(obj)) {
        result = clone ? new Array(obj.length) : obj;
        for (let i5 = 0; i5 < obj.length; i5++) {
          const val = traverseObject(obj[i5], clone, transformFunc);
          if (clone) result[i5] = val;
        }
        return result;
      }
      result = clone ? {} : obj;
      for (const key in obj) {
        const val = traverseObject(obj[key], clone, transformFunc);
        const [transformedKey, transformedVal] = transformFunc(key, val);
        if (key === transformedKey) {
          if (clone || val !== transformedVal) result[key] = transformedVal;
        } else {
          result[transformedKey] = transformedVal;
          if (!clone) delete obj[key];
        }
      }
      return result;
    }
    __name2(traverseObject, "traverseObject");
    function escapeForBson(obj, clone = false) {
      return traverseObject(obj, clone, (key, value2) => [escapePropertyName(key), value2]);
    }
    __name2(escapeForBson, "escapeForBson");
    function unescapeFromBson(obj, clone = false) {
      return traverseObject(obj, clone, (key, value2) => [unescapePropertyName(key), value2]);
    }
    __name2(unescapeFromBson, "unescapeFromBson");
    function isBadForMongo(obj) {
      let isBad = false;
      try {
        traverseObject(obj, false, (key, value2) => {
          const escapedKey = escapePropertyName(key);
          if (key !== escapedKey) {
            isBad = true;
            throw new Error();
          }
          return [key, value2];
        });
      } catch (e4) {
        if (!isBad) throw e4;
      }
      return isBad;
    }
    __name2(isBadForMongo, "isBadForMongo");
    var _JsonVariable = class _JsonVariable {
      constructor(name) {
        this.name = name;
      }
      getToken() {
        return `{{${this.name}}}`;
      }
    };
    __name2(_JsonVariable, "JsonVariable");
    var JsonVariable = _JsonVariable;
    function jsonStringifyExtended(value2, replacer, space = 0) {
      if (replacer && !(replacer instanceof Function)) throw new Error('Parameter "replacer" of jsonStringifyExtended() must be a function!');
      const replacements = {};
      const extendedReplacer = /* @__PURE__ */ __name2((key, val) => {
        val = replacer ? replacer(key, val) : val;
        if (val instanceof Function) return val.toString();
        if (val instanceof JsonVariable) {
          const randomToken = `<<<REPLACEMENT_TOKEN::${Math.random()}>>>`;
          replacements[randomToken] = val.getToken();
          return randomToken;
        }
        return val;
      }, "extendedReplacer");
      let stringifiedValue = JSON.stringify(value2, extendedReplacer, space);
      Object.entries(replacements).forEach(([replacementToken, replacementValue]) => {
        stringifiedValue = stringifiedValue.replace(`"${replacementToken}"`, replacementValue);
      });
      return stringifiedValue;
    }
    __name2(jsonStringifyExtended, "jsonStringifyExtended");
    function splitFullName(fullName) {
      if (typeof fullName !== "string") return [null, null];
      const names = (fullName || "").trim().split(" ");
      const nonEmptyNames = names.filter((val) => val);
      if (nonEmptyNames.length === 0) {
        return [null, null];
      }
      if (nonEmptyNames.length === 1) {
        return [null, nonEmptyNames[0]];
      }
      return [names[0], nonEmptyNames.slice(1).join(" ")];
    }
    __name2(splitFullName, "splitFullName");
    function isUrlRelative(url3) {
      return import_consts2.RELATIVE_URL_REGEX.test(url3);
    }
    __name2(isUrlRelative, "isUrlRelative");
    var import_log2 = __toESM2(require_cjs3());
    var _RetryableError = class _RetryableError extends Error {
      constructor(error, ...args) {
        super(...args);
        __publicField2(this, "error");
        this.error = error;
      }
    };
    __name2(_RetryableError, "RetryableError");
    var RetryableError = _RetryableError;
    async function retryWithExpBackoff(params = {}) {
      const { func, expBackoffMillis, expBackoffMaxRepeats } = params;
      if (typeof func !== "function") {
        throw new Error('Parameter "func" should be a function.');
      }
      if (typeof expBackoffMillis !== "number") {
        throw new Error('Parameter "expBackoffMillis" should be a number.');
      }
      if (typeof expBackoffMaxRepeats !== "number") {
        throw new Error('Parameter "expBackoffMaxRepeats" should be a number.');
      }
      for (let i5 = 0; ; i5++) {
        let error;
        try {
          return await func();
        } catch (e4) {
          error = e4;
        }
        if (!(error instanceof RetryableError)) {
          throw error;
        }
        if (i5 >= expBackoffMaxRepeats - 1) {
          throw error.error;
        }
        const waitMillis = expBackoffMillis * 2 ** i5;
        const rand = /* @__PURE__ */ __name2((from, to) => from + Math.floor(Math.random() * (to - from + 1)), "rand");
        const randomizedWaitMillis = rand(waitMillis, waitMillis * 2);
        if (i5 === Math.round(expBackoffMaxRepeats / 2)) {
          import_log2.default.warning(`Retry failed ${i5} times and will be repeated in ${randomizedWaitMillis}ms`, {
            originalError: error.error.message,
            errorDetails: Reflect.get(error.error, "details")
          });
        }
        await delayPromise(randomizedWaitMillis);
      }
    }
    __name2(retryWithExpBackoff, "retryWithExpBackoff");
    var CHECK_TYPES = /* @__PURE__ */ ((CHECK_TYPES2) => {
      CHECK_TYPES2["MONGODB_PING"] = "MONGODB_PING";
      CHECK_TYPES2["MONGODB_READ"] = "MONGODB_READ";
      CHECK_TYPES2["MONGODB_WRITE"] = "MONGODB_WRITE";
      CHECK_TYPES2["REDIS"] = "REDIS";
      CHECK_TYPES2["REDIS_PING"] = "REDIS_PING";
      CHECK_TYPES2["REDIS_WRITE"] = "REDIS_WRITE";
      return CHECK_TYPES2;
    })(CHECK_TYPES || {});
    var _HealthChecker = class _HealthChecker {
      constructor(options) {
        this.options = options;
        __publicField2(this, "checks");
        __publicField2(this, "redisPrefix");
        __publicField2(this, "redisTtlSecs");
        __publicField2(this, "checkTimeoutMillis");
        __publicField2(this, "mongoDbWriteTestCollection");
        __publicField2(this, "mongoDbWriteTestRemoveOlderThanSecs");
        const {
          checks,
          redisPrefix = "health-check",
          redisTtlSecs = 15,
          checkTimeoutMillis = 15e3,
          mongoDbWriteTestCollection = "healthCheckPlayground",
          mongoDbWriteTestRemoveOlderThanSecs = 15
        } = options;
        if (!Array.isArray(checks)) throw new Error('Parameter "check" must be an array');
        checks.map((check) => this._validateCheck(check));
        this.checks = checks;
        this.redisPrefix = redisPrefix;
        this.redisTtlSecs = redisTtlSecs;
        this.checkTimeoutMillis = checkTimeoutMillis;
        this.mongoDbWriteTestCollection = mongoDbWriteTestCollection;
        this.mongoDbWriteTestRemoveOlderThanSecs = mongoDbWriteTestRemoveOlderThanSecs;
      }
      async ensureIsHealthy() {
        for (const check of this.checks) {
          try {
            const checkPromise = this._performCheck(check);
            await timeoutPromise(checkPromise, this.checkTimeoutMillis, "Check has timed-out");
          } catch (_err) {
            const err2 = _err;
            throw new Error(`Health check test "${check.type}" failed with an error: ${err2.message}"`);
          }
        }
      }
      _validateCheck(check) {
        if (!(check.type in CHECK_TYPES)) throw new Error(`Check type "${check.type}" is invalid`);
        if (typeof check.client !== "object") throw new Error(`Check client must be an object got "${typeof check.client}" instead`);
      }
      async _performCheck(check) {
        switch (check.type) {
          case "MONGODB_PING":
            return this._testMongoDbPing(check);
          case "MONGODB_READ":
            return this._testMongoDbRead(check);
          case "MONGODB_WRITE":
            return this._testMongoDbWrite(check);
          case "REDIS_PING":
            return this._testRedisPing(check);
          case "REDIS":
          case "REDIS_WRITE":
            return this._testRedisWrite(check);
          default:
            throw new Error("Unknown check type");
        }
      }
      async _testMongoDbPing({ client }) {
        const response = await client.command({ ping: 1 });
        if (response.ok !== 1) throw new Error(`Got ${response.ok} instead of 1!`);
      }
      async _testMongoDbRead({ client }) {
        const response = await client.listCollections().toArray();
        if (!Array.isArray(response)) throw new Error(`Got ${typeof response} instead of an array!`);
      }
      async _testMongoDbWrite({ client }) {
        const id = cryptoRandomObjectId();
        const collection = client.collection(this.mongoDbWriteTestCollection);
        await collection.deleteMany({
          createdAt: {
            $lt: new Date(Date.now() - this.mongoDbWriteTestRemoveOlderThanSecs * 1e3)
          }
        });
        await collection.insertOne({
          _id: id,
          createdAt: /* @__PURE__ */ new Date()
        });
        const retrieved = await collection.findOne({ _id: id });
        if (!retrieved) throw new Error(`Item with ID "${id}" not found!`);
      }
      async _testRedisPing({ client }) {
        const response = await client.ping();
        if (response !== "PONG") throw new Error(`Got "${response}" instead of "PONG"!`);
      }
      async _testRedisWrite({ client }) {
        const key = `${this.redisPrefix}:${cryptoRandomObjectId()}`;
        const expected = "OK";
        await client.set(key, expected, "EX", this.redisTtlSecs);
        const given = await client.get(key);
        if (given !== expected) throw new Error(`Returned value "${given}" is not equal to "${expected}"!`);
      }
    };
    __name2(_HealthChecker, "HealthChecker");
    __publicField2(_HealthChecker, "CHECK_TYPES", CHECK_TYPES);
    var HealthChecker = _HealthChecker;
    var import_node_stream7 = __require("stream");
    var _ParseJsonlStream = class _ParseJsonlStream extends import_node_stream7.Transform {
      constructor() {
        super(...arguments);
        __publicField2(this, "pendingChunk", null);
      }
      parseLineAndEmitObject(line2) {
        line2 = line2.trim();
        if (!line2) {
          return;
        }
        try {
          const obj = JSON.parse(line2);
          this.emit("object", obj);
        } catch (e4) {
          throw new Error(`Cannot parse JSON stream data ('${String(line2)}'): ${String(e4)}`);
        }
      }
      _transform(chunk3, encoding, callback) {
        let allData;
        if (this.pendingChunk) {
          allData = this.pendingChunk + chunk3;
          this.pendingChunk = null;
        } else {
          allData = chunk3;
        }
        const lines = allData.toString().split("\n");
        if (lines[lines.length - 1] !== "") {
          this.pendingChunk = lines.pop();
        }
        try {
          for (let i5 = 0; i5 < lines.length; i5++) {
            this.parseLineAndEmitObject(lines[i5]);
          }
        } catch (err2) {
          callback(err2, null);
          return;
        }
        callback(null, chunk3);
      }
      // This function is called right after stream.end() is called by the writer.
      // It just tries to process the pending chunk and returns an error if that fails.
      _flush(callback) {
        if (this.pendingChunk) {
          try {
            this.parseLineAndEmitObject(this.pendingChunk);
            this.pendingChunk = null;
          } catch (err2) {
            callback(err2, null);
            return;
          }
        }
        callback();
      }
    };
    __name2(_ParseJsonlStream, "ParseJsonlStream");
    var ParseJsonlStream = _ParseJsonlStream;
    async function concatStreamToBuffer(stream7) {
      return new Promise((resolve4, reject) => {
        const chunks = [];
        stream7.on("data", (chunk3) => {
          chunks.push(chunk3);
        }).on("error", (e4) => reject(e4)).on("end", () => {
          const buffer = Buffer.concat(chunks);
          return resolve4(buffer);
        });
      });
    }
    __name2(concatStreamToBuffer, "concatStreamToBuffer");
    async function readStreamToString(stream7, encoding) {
      const buffer = await concatStreamToBuffer(stream7);
      return buffer.toString(encoding);
    }
    __name2(readStreamToString, "readStreamToString");
    var _WebhookPayloadTemplateError = class _WebhookPayloadTemplateError extends Error {
      constructor(message) {
        super(message);
        this.name = this.constructor.name;
        if (typeof Error.captureStackTrace === "function") {
          Error.captureStackTrace(this, this.constructor);
        }
      }
    };
    __name2(_WebhookPayloadTemplateError, "WebhookPayloadTemplateError");
    var WebhookPayloadTemplateError = _WebhookPayloadTemplateError;
    var _InvalidJsonError = class _InvalidJsonError extends WebhookPayloadTemplateError {
      constructor(originalError) {
        super(originalError.message);
      }
    };
    __name2(_InvalidJsonError, "InvalidJsonError");
    var InvalidJsonError = _InvalidJsonError;
    var _InvalidVariableError = class _InvalidVariableError extends Error {
      constructor(variable) {
        super(`Invalid payload template variable: ${variable}`);
      }
    };
    __name2(_InvalidVariableError, "InvalidVariableError");
    var InvalidVariableError = _InvalidVariableError;
    var _WebhookPayloadTemplate = class _WebhookPayloadTemplate2 {
      constructor(template, allowedVariables = null, context = {}) {
        this.template = template;
        this.allowedVariables = allowedVariables;
        this.context = context;
        __publicField2(this, "payload");
        __publicField2(this, "replacedVariables", []);
        this.payload = template;
      }
      /**
       * Parse existing webhook payload template string into an object, replacing
       * template variables using the provided context.
       *
       * Parse also validates the template structure, so it can be used
       * to check validity of the template JSON and usage of allowedVariables.
       */
      static parse(payloadTemplate, allowedVariables = null, context = {}, options = {}) {
        const type = typeof payloadTemplate;
        if (type !== "string") throw new Error(`Cannot parse a ${type} payload template.`);
        const template = new _WebhookPayloadTemplate2(payloadTemplate, allowedVariables, context);
        const data2 = template._parse();
        if (options.interpolateStrings) {
          return template._interpolate(data2);
        }
        return data2;
      }
      /**
       * Stringify an object into a webhook payload template.
       * Values created using `getTemplateVariable('foo.bar')`
       * will be stringified to `{{foo.bar}}` template variable.
       */
      static stringify(objectTemplate, replacer, indent = 2) {
        const type = typeof objectTemplate;
        if (!objectTemplate || type !== "object") throw new Error(`Cannot stringify a ${type} payload template.`);
        return jsonStringifyExtended(objectTemplate, replacer, indent);
      }
      /**
       * Produces an instance of a template variable that can be used
       * in objects and will be stringified into `{{variableName}}` syntax.
       *
       * **Example:**
       * ```js
       * const resourceVariable = WebhookPayloadTemplate.getVariable('resource');
       * const objectTemplate = {
       *     foo: 'foo',
       *     bar: ['bar'],
       *     res: resourceVariable,
       * }
       *
       * const payloadTemplate = WebhookPayloadTemplate.stringify(objectTemplate);
       * ```
       *
       * **Produces:**
       * ```json
       * {
       *     "foo": "foo",
       *     "bar": ["bar"],
       *     "res": {{resource}},
       * }
       * ```
       */
      static getVariable(variableName) {
        return new JsonVariable(variableName);
      }
      _parse() {
        let currentIndex = 0;
        while (true) {
          try {
            return JSON.parse(this.payload);
          } catch (err2) {
            const position = this._findPositionOfNextVariable(currentIndex);
            if (!position) {
              throw new InvalidJsonError(err2);
            }
            if (!position.isInsideString) {
              this._replaceVariable(position);
            }
            currentIndex = position.openBraceIndex + 1;
          }
        }
      }
      _interpolate(value2) {
        if (typeof value2 === "string") {
          return this._interpolateString(value2);
        }
        if (Array.isArray(value2)) {
          return this._interpolateArray(value2);
        }
        if (typeof value2 === "object" && value2 !== null) {
          return this._interpolateObject(value2);
        }
        return value2;
      }
      _interpolateString(value2) {
        if (value2.match(/^\{\{([a-zA-Z0-9.]+)\}\}$/)) {
          const variableName = value2.substring(2, value2.length - 2);
          this._validateVariableName(variableName);
          return this._getVariableValue(variableName);
        }
        return value2.replace(/\{\{([a-zA-Z0-9.]+)\}\}/g, (match, variableName) => {
          this._validateVariableName(variableName);
          const variableValue = this._getVariableValue(variableName);
          return `${variableValue}`;
        });
      }
      _interpolateObject(value2) {
        const result = {};
        Object.entries(value2).forEach(([key, v3]) => {
          result[key] = this._interpolate(v3);
        });
        return result;
      }
      _interpolateArray(value2) {
        return value2.map(this._interpolate.bind(this));
      }
      _findPositionOfNextVariable(startIndex = 0) {
        const openBraceIndex = this.payload.indexOf("{{", startIndex);
        const closeBraceIndex = this.payload.indexOf("}}", openBraceIndex) + 1;
        const someVariableMaybeExists = openBraceIndex > -1 && closeBraceIndex > -1;
        if (!someVariableMaybeExists) return null;
        const isInsideString = this._isVariableInsideString(openBraceIndex);
        return { isInsideString, openBraceIndex, closeBraceIndex };
      }
      _isVariableInsideString(openBraceIndex) {
        const unescapedQuoteCount = this._countUnescapedDoubleQuotesUpToIndex(openBraceIndex);
        return unescapedQuoteCount % 2 === 1;
      }
      _countUnescapedDoubleQuotesUpToIndex(index2) {
        const payloadSection = this.payload.substring(0, index2);
        let unescapedQuoteCount = 0;
        for (let i5 = 0; i5 < payloadSection.length; i5++) {
          const char = payloadSection[i5];
          const prevChar = payloadSection[i5 - 1];
          if (char === '"' && prevChar !== "\\") {
            unescapedQuoteCount++;
          }
        }
        return unescapedQuoteCount;
      }
      _replaceVariable({ openBraceIndex, closeBraceIndex }) {
        const variableName = this.payload.substring(openBraceIndex + 2, closeBraceIndex - 1);
        this._validateVariableName(variableName);
        const replacement = this._getVariableReplacement(variableName);
        this.replacedVariables.push({ variableName, replacement });
        this.payload = this.payload.substring(0, openBraceIndex) + replacement + this.payload.substring(closeBraceIndex + 1);
      }
      _validateVariableName(variableName) {
        if (this.allowedVariables === null) return;
        const [variable] = variableName.split(".");
        const isVariableValid = this.allowedVariables.has(variable);
        if (!isVariableValid) throw new InvalidVariableError(variableName);
      }
      _getVariableValue(variableName) {
        const [variable, ...properties] = variableName.split(".");
        const context = this.context[variable];
        const value2 = properties.reduce((ctx, prop) => {
          if (!ctx || typeof ctx !== "object") return null;
          return ctx[prop];
        }, context);
        return value2;
      }
      _getVariableReplacement(variableName) {
        const value2 = this._getVariableValue(variableName);
        return value2 ? JSON.stringify(value2) : null;
      }
    };
    __name2(_WebhookPayloadTemplate, "WebhookPayloadTemplate");
    var WebhookPayloadTemplate = _WebhookPayloadTemplate;
    var import_node_crypto22 = __toESM2(__require("crypto"));
    var ENCRYPTION_ALGORITHM = "aes-256-gcm";
    var ENCRYPTION_KEY_LENGTH = 32;
    var ENCRYPTION_IV_LENGTH = 16;
    var ENCRYPTION_AUTH_TAG_LENGTH = 16;
    function publicEncrypt({ publicKey, value: value2 }) {
      const key = cryptoRandomObjectId(ENCRYPTION_KEY_LENGTH);
      const initVector = cryptoRandomObjectId(ENCRYPTION_IV_LENGTH);
      const cipher = import_node_crypto22.default.createCipheriv(ENCRYPTION_ALGORITHM, key, initVector);
      const bufferFromValue = Buffer.from(value2, "utf-8");
      const bufferFromKey = Buffer.from(key, "utf-8");
      const bufferFromInitVector = Buffer.from(initVector, "utf-8");
      const passwordBuffer = Buffer.concat([bufferFromKey, bufferFromInitVector]);
      const encryptedValue = Buffer.concat([cipher.update(bufferFromValue), cipher.final(), cipher.getAuthTag()]);
      const encryptedPassword = import_node_crypto22.default.publicEncrypt(publicKey, passwordBuffer);
      return {
        encryptedPassword: encryptedPassword.toString("base64"),
        encryptedValue: encryptedValue.toString("base64")
      };
    }
    __name2(publicEncrypt, "publicEncrypt");
    function privateDecrypt({
      privateKey,
      encryptedPassword,
      encryptedValue
    }) {
      const encryptedValueBuffer = Buffer.from(encryptedValue, "base64");
      const encryptedPasswordBuffer = Buffer.from(encryptedPassword, "base64");
      const passwordBuffer = import_node_crypto22.default.privateDecrypt(privateKey, encryptedPasswordBuffer);
      if (passwordBuffer.length !== ENCRYPTION_KEY_LENGTH + ENCRYPTION_IV_LENGTH) {
        throw new Error("privateDecrypt: Decryption failed, invalid password length!");
      }
      const authTagBuffer = encryptedValueBuffer.slice(encryptedValueBuffer.length - ENCRYPTION_AUTH_TAG_LENGTH);
      const encryptedDataBuffer = encryptedValueBuffer.slice(0, encryptedValueBuffer.length - ENCRYPTION_AUTH_TAG_LENGTH);
      const encryptionKeyBuffer = passwordBuffer.slice(0, ENCRYPTION_KEY_LENGTH);
      const initVectorBuffer = passwordBuffer.slice(ENCRYPTION_KEY_LENGTH);
      const decipher = import_node_crypto22.default.createDecipheriv(ENCRYPTION_ALGORITHM, encryptionKeyBuffer, initVectorBuffer);
      decipher.setAuthTag(authTagBuffer);
      return Buffer.concat([decipher.update(encryptedDataBuffer), decipher.final()]).toString("utf-8");
    }
    __name2(privateDecrypt, "privateDecrypt");
    function separateImports(code) {
      const lines = code.split("\n");
      return {
        code: lines.filter((line2) => !line2.trim().startsWith("import")).join("\n"),
        imports: lines.filter((line2) => line2.trim().startsWith("import")).join("\n")
      };
    }
    __name2(separateImports, "separateImports");
    var import_node_crypto32 = __require("crypto");
    var CodeHashMetaKey = /* @__PURE__ */ ((CodeHashMetaKey2) => {
      CodeHashMetaKey2["VERSION"] = "v";
      CodeHashMetaKey2["USER"] = "u";
      return CodeHashMetaKey2;
    })(CodeHashMetaKey || {});
    var _CodeHashManager = class _CodeHashManager2 {
      constructor(secret) {
        this.secret = secret;
      }
      /**
       * Encodes object (e.g. input for actor) to a string hash and uses the `secret` to sign the hash.
       */
      encode(data2, userId) {
        const meta = {
          [
            "u"
            /* USER */
          ]: userId,
          [
            "v"
            /* VERSION */
          ]: _CodeHashManager2.VERSION
        };
        const metaBase64 = this.toBase64(JSON.stringify(meta));
        const inputBase64 = this.toBase64(JSON.stringify(data2));
        const dataToSign = [metaBase64, inputBase64].join(_CodeHashManager2.SECTION_SEPARATOR);
        const signature = this.generateSignature(dataToSign);
        const signatureBase64 = this.toBase64(signature);
        const parts = [metaBase64, inputBase64, signatureBase64];
        return parts.join(_CodeHashManager2.SECTION_SEPARATOR);
      }
      decode(urlHash) {
        const parts = urlHash.split(_CodeHashManager2.SECTION_SEPARATOR);
        const dataToSign = parts.slice(0, 2).join(_CodeHashManager2.SECTION_SEPARATOR);
        const meta = JSON.parse(this.fromBase64(parts[0]).toString());
        const data2 = JSON.parse(this.fromBase64(parts[1]).toString());
        const signature = this.fromBase64(parts[2]);
        const expectedSignature = this.generateSignature(dataToSign);
        const isSignatureValid = (0, import_node_crypto32.timingSafeEqual)(signature, expectedSignature);
        return {
          data: data2,
          meta: {
            userId: meta[
              "u"
              /* USER */
            ],
            version: meta[
              "v"
              /* VERSION */
            ],
            isSignatureValid
          }
        };
      }
      toBase64(data2) {
        return Buffer.from(data2).toString("base64url");
      }
      fromBase64(encoded) {
        return Buffer.from(encoded, "base64url");
      }
      generateSignature(data2) {
        return (0, import_node_crypto32.createHmac)("sha256", this.secret).update(data2).digest();
      }
    };
    __name2(_CodeHashManager, "CodeHashManager");
    __publicField2(_CodeHashManager, "SECTION_SEPARATOR", ".");
    __publicField2(_CodeHashManager, "VERSION", 1);
    var CodeHashManager = _CodeHashManager;
    var import_node_crypto4 = __toESM2(__require("crypto"));
    var CHARSET = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
    function encodeBase62(num) {
      if (num === 0n) {
        return CHARSET[0];
      }
      let res = "";
      while (num > 0n) {
        res = CHARSET[Number(num % 62n)] + res;
        num /= 62n;
      }
      return res;
    }
    __name2(encodeBase62, "encodeBase62");
    function createHmacSignature(secretKey, message) {
      const signature = import_node_crypto4.default.createHmac("sha256", secretKey).update(message).digest("hex").substring(0, 30);
      return encodeBase62(BigInt(`0x${signature}`));
    }
    __name2(createHmacSignature, "createHmacSignature");
    var subtleCrypto = globalThis.crypto?.subtle;
    async function ensureSubtleCryptoExists() {
      if (!subtleCrypto) {
        try {
          subtleCrypto = __require("crypto")?.webcrypto?.subtle;
          if (subtleCrypto) return;
        } catch {
        }
        try {
          subtleCrypto = (await import("crypto"))?.webcrypto?.subtle;
        } catch {
        }
        if (!subtleCrypto) {
          throw new Error(`SubtleCrypto is not available in this environment.
Please ensure you're running in an environment that supports Web Crypto API,
or submit an issue to https://github.com/apify/apify-shared-js so we can help you further.`);
        }
      }
    }
    __name2(ensureSubtleCryptoExists, "ensureSubtleCryptoExists");
    async function createHmacSignatureAsync(secretKey, message) {
      await ensureSubtleCryptoExists();
      const encoder = new TextEncoder();
      const key = await subtleCrypto.importKey(
        "raw",
        encoder.encode(secretKey),
        { name: "HMAC", hash: "SHA-256" },
        false,
        ["sign"]
      );
      const signatureBuffer = await subtleCrypto.sign(
        "HMAC",
        key,
        encoder.encode(message)
      );
      const signatureArray = new Uint8Array(signatureBuffer);
      const signatureHex = Array.from(signatureArray).map((b3) => b3.toString(16).padStart(2, "0")).join("").substring(0, 30);
      return encodeBase62(BigInt(`0x${signatureHex}`));
    }
    __name2(createHmacSignatureAsync, "createHmacSignatureAsync");
    function createStorageContentSignature({
      resourceId,
      urlSigningSecretKey,
      expiresInMillis,
      version: version2 = 0
    }) {
      const expiresAt = expiresInMillis ? (/* @__PURE__ */ new Date()).getTime() + expiresInMillis : 0;
      const hmac = createHmacSignature(urlSigningSecretKey, `${version2}.${expiresAt}.${resourceId}`);
      return Buffer.from(`${version2}.${expiresAt}.${hmac}`).toString("base64url");
    }
    __name2(createStorageContentSignature, "createStorageContentSignature");
    function typedArrayToBase64Url(typedArray) {
      let binary = "";
      for (let i5 = 0; i5 < typedArray.length; i5++) {
        binary += String.fromCharCode(typedArray[i5]);
      }
      const base64 = btoa(binary);
      return base64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
    }
    __name2(typedArrayToBase64Url, "typedArrayToBase64Url");
    async function createStorageContentSignatureAsync({
      resourceId,
      urlSigningSecretKey,
      expiresInMillis,
      version: version2 = 0
    }) {
      const expiresAt = expiresInMillis ? (/* @__PURE__ */ new Date()).getTime() + expiresInMillis : 0;
      const hmac = await createHmacSignatureAsync(urlSigningSecretKey, `${version2}.${expiresAt}.${resourceId}`);
      return typedArrayToBase64Url(new TextEncoder().encode(`${version2}.${expiresAt}.${hmac}`));
    }
    __name2(createStorageContentSignatureAsync, "createStorageContentSignatureAsync");
    var parseBooleanOrNull = /* @__PURE__ */ __name2((value2) => {
      if (value2 === true || value2 === 1) return true;
      if (value2 === false || value2 === 0) return false;
      if (typeof value2 === "string") {
        const lowerValue = value2.trim().toLowerCase();
        if (lowerValue === "true" || lowerValue === "1") return true;
        if (lowerValue === "false" || lowerValue === "0") return false;
      }
      return null;
    }, "parseBooleanOrNull");
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isArray.js
var require_isArray = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isArray.js"(exports, module) {
    var isArray3 = Array.isArray;
    module.exports = isArray3;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_freeGlobal.js
var require_freeGlobal = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_freeGlobal.js"(exports, module) {
    var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
    module.exports = freeGlobal;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_root.js
var require_root = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_root.js"(exports, module) {
    var freeGlobal = require_freeGlobal();
    var freeSelf = typeof self == "object" && self && self.Object === Object && self;
    var root = freeGlobal || freeSelf || Function("return this")();
    module.exports = root;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Symbol.js
var require_Symbol = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Symbol.js"(exports, module) {
    var root = require_root();
    var Symbol2 = root.Symbol;
    module.exports = Symbol2;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getRawTag.js
var require_getRawTag = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getRawTag.js"(exports, module) {
    var Symbol2 = require_Symbol();
    var objectProto = Object.prototype;
    var hasOwnProperty2 = objectProto.hasOwnProperty;
    var nativeObjectToString = objectProto.toString;
    var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
    function getRawTag(value2) {
      var isOwn = hasOwnProperty2.call(value2, symToStringTag), tag = value2[symToStringTag];
      try {
        value2[symToStringTag] = void 0;
        var unmasked = true;
      } catch (e4) {
      }
      var result = nativeObjectToString.call(value2);
      if (unmasked) {
        if (isOwn) {
          value2[symToStringTag] = tag;
        } else {
          delete value2[symToStringTag];
        }
      }
      return result;
    }
    module.exports = getRawTag;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_objectToString.js
var require_objectToString = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_objectToString.js"(exports, module) {
    var objectProto = Object.prototype;
    var nativeObjectToString = objectProto.toString;
    function objectToString2(value2) {
      return nativeObjectToString.call(value2);
    }
    module.exports = objectToString2;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseGetTag.js
var require_baseGetTag = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseGetTag.js"(exports, module) {
    var Symbol2 = require_Symbol();
    var getRawTag = require_getRawTag();
    var objectToString2 = require_objectToString();
    var nullTag = "[object Null]";
    var undefinedTag = "[object Undefined]";
    var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
    function baseGetTag(value2) {
      if (value2 == null) {
        return value2 === void 0 ? undefinedTag : nullTag;
      }
      return symToStringTag && symToStringTag in Object(value2) ? getRawTag(value2) : objectToString2(value2);
    }
    module.exports = baseGetTag;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isObjectLike.js
var require_isObjectLike = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isObjectLike.js"(exports, module) {
    function isObjectLike(value2) {
      return value2 != null && typeof value2 == "object";
    }
    module.exports = isObjectLike;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isSymbol.js
var require_isSymbol = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isSymbol.js"(exports, module) {
    var baseGetTag = require_baseGetTag();
    var isObjectLike = require_isObjectLike();
    var symbolTag = "[object Symbol]";
    function isSymbol2(value2) {
      return typeof value2 == "symbol" || isObjectLike(value2) && baseGetTag(value2) == symbolTag;
    }
    module.exports = isSymbol2;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_isKey.js
var require_isKey = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_isKey.js"(exports, module) {
    var isArray3 = require_isArray();
    var isSymbol2 = require_isSymbol();
    var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
    var reIsPlainProp = /^\w*$/;
    function isKey(value2, object) {
      if (isArray3(value2)) {
        return false;
      }
      var type = typeof value2;
      if (type == "number" || type == "symbol" || type == "boolean" || value2 == null || isSymbol2(value2)) {
        return true;
      }
      return reIsPlainProp.test(value2) || !reIsDeepProp.test(value2) || object != null && value2 in Object(object);
    }
    module.exports = isKey;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isObject.js
var require_isObject = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isObject.js"(exports, module) {
    function isObject4(value2) {
      var type = typeof value2;
      return value2 != null && (type == "object" || type == "function");
    }
    module.exports = isObject4;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isFunction.js
var require_isFunction = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isFunction.js"(exports, module) {
    var baseGetTag = require_baseGetTag();
    var isObject4 = require_isObject();
    var asyncTag = "[object AsyncFunction]";
    var funcTag = "[object Function]";
    var genTag = "[object GeneratorFunction]";
    var proxyTag = "[object Proxy]";
    function isFunction5(value2) {
      if (!isObject4(value2)) {
        return false;
      }
      var tag = baseGetTag(value2);
      return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
    }
    module.exports = isFunction5;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_coreJsData.js
var require_coreJsData = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_coreJsData.js"(exports, module) {
    var root = require_root();
    var coreJsData = root["__core-js_shared__"];
    module.exports = coreJsData;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_isMasked.js
var require_isMasked = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_isMasked.js"(exports, module) {
    var coreJsData = require_coreJsData();
    var maskSrcKey = (function() {
      var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
      return uid ? "Symbol(src)_1." + uid : "";
    })();
    function isMasked(func) {
      return !!maskSrcKey && maskSrcKey in func;
    }
    module.exports = isMasked;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_toSource.js
var require_toSource = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_toSource.js"(exports, module) {
    var funcProto = Function.prototype;
    var funcToString = funcProto.toString;
    function toSource(func) {
      if (func != null) {
        try {
          return funcToString.call(func);
        } catch (e4) {
        }
        try {
          return func + "";
        } catch (e4) {
        }
      }
      return "";
    }
    module.exports = toSource;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseIsNative.js
var require_baseIsNative = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseIsNative.js"(exports, module) {
    var isFunction5 = require_isFunction();
    var isMasked = require_isMasked();
    var isObject4 = require_isObject();
    var toSource = require_toSource();
    var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
    var reIsHostCtor = /^\[object .+?Constructor\]$/;
    var funcProto = Function.prototype;
    var objectProto = Object.prototype;
    var funcToString = funcProto.toString;
    var hasOwnProperty2 = objectProto.hasOwnProperty;
    var reIsNative = RegExp(
      "^" + funcToString.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
    );
    function baseIsNative(value2) {
      if (!isObject4(value2) || isMasked(value2)) {
        return false;
      }
      var pattern3 = isFunction5(value2) ? reIsNative : reIsHostCtor;
      return pattern3.test(toSource(value2));
    }
    module.exports = baseIsNative;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getValue.js
var require_getValue = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getValue.js"(exports, module) {
    function getValue(object, key) {
      return object == null ? void 0 : object[key];
    }
    module.exports = getValue;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getNative.js
var require_getNative = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getNative.js"(exports, module) {
    var baseIsNative = require_baseIsNative();
    var getValue = require_getValue();
    function getNative(object, key) {
      var value2 = getValue(object, key);
      return baseIsNative(value2) ? value2 : void 0;
    }
    module.exports = getNative;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_nativeCreate.js
var require_nativeCreate = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_nativeCreate.js"(exports, module) {
    var getNative = require_getNative();
    var nativeCreate = getNative(Object, "create");
    module.exports = nativeCreate;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashClear.js
var require_hashClear = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashClear.js"(exports, module) {
    var nativeCreate = require_nativeCreate();
    function hashClear() {
      this.__data__ = nativeCreate ? nativeCreate(null) : {};
      this.size = 0;
    }
    module.exports = hashClear;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashDelete.js
var require_hashDelete = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashDelete.js"(exports, module) {
    function hashDelete(key) {
      var result = this.has(key) && delete this.__data__[key];
      this.size -= result ? 1 : 0;
      return result;
    }
    module.exports = hashDelete;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashGet.js
var require_hashGet = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashGet.js"(exports, module) {
    var nativeCreate = require_nativeCreate();
    var HASH_UNDEFINED = "__lodash_hash_undefined__";
    var objectProto = Object.prototype;
    var hasOwnProperty2 = objectProto.hasOwnProperty;
    function hashGet(key) {
      var data2 = this.__data__;
      if (nativeCreate) {
        var result = data2[key];
        return result === HASH_UNDEFINED ? void 0 : result;
      }
      return hasOwnProperty2.call(data2, key) ? data2[key] : void 0;
    }
    module.exports = hashGet;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashHas.js
var require_hashHas = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashHas.js"(exports, module) {
    var nativeCreate = require_nativeCreate();
    var objectProto = Object.prototype;
    var hasOwnProperty2 = objectProto.hasOwnProperty;
    function hashHas(key) {
      var data2 = this.__data__;
      return nativeCreate ? data2[key] !== void 0 : hasOwnProperty2.call(data2, key);
    }
    module.exports = hashHas;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashSet.js
var require_hashSet = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashSet.js"(exports, module) {
    var nativeCreate = require_nativeCreate();
    var HASH_UNDEFINED = "__lodash_hash_undefined__";
    function hashSet(key, value2) {
      var data2 = this.__data__;
      this.size += this.has(key) ? 0 : 1;
      data2[key] = nativeCreate && value2 === void 0 ? HASH_UNDEFINED : value2;
      return this;
    }
    module.exports = hashSet;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Hash.js
var require_Hash = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Hash.js"(exports, module) {
    var hashClear = require_hashClear();
    var hashDelete = require_hashDelete();
    var hashGet = require_hashGet();
    var hashHas = require_hashHas();
    var hashSet = require_hashSet();
    function Hash(entries3) {
      var index2 = -1, length2 = entries3 == null ? 0 : entries3.length;
      this.clear();
      while (++index2 < length2) {
        var entry = entries3[index2];
        this.set(entry[0], entry[1]);
      }
    }
    Hash.prototype.clear = hashClear;
    Hash.prototype["delete"] = hashDelete;
    Hash.prototype.get = hashGet;
    Hash.prototype.has = hashHas;
    Hash.prototype.set = hashSet;
    module.exports = Hash;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheClear.js
var require_listCacheClear = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheClear.js"(exports, module) {
    function listCacheClear() {
      this.__data__ = [];
      this.size = 0;
    }
    module.exports = listCacheClear;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/eq.js
var require_eq = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/eq.js"(exports, module) {
    function eq(value2, other) {
      return value2 === other || value2 !== value2 && other !== other;
    }
    module.exports = eq;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_assocIndexOf.js
var require_assocIndexOf = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_assocIndexOf.js"(exports, module) {
    var eq = require_eq();
    function assocIndexOf(array, key) {
      var length2 = array.length;
      while (length2--) {
        if (eq(array[length2][0], key)) {
          return length2;
        }
      }
      return -1;
    }
    module.exports = assocIndexOf;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheDelete.js
var require_listCacheDelete = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheDelete.js"(exports, module) {
    var assocIndexOf = require_assocIndexOf();
    var arrayProto = Array.prototype;
    var splice = arrayProto.splice;
    function listCacheDelete(key) {
      var data2 = this.__data__, index2 = assocIndexOf(data2, key);
      if (index2 < 0) {
        return false;
      }
      var lastIndex = data2.length - 1;
      if (index2 == lastIndex) {
        data2.pop();
      } else {
        splice.call(data2, index2, 1);
      }
      --this.size;
      return true;
    }
    module.exports = listCacheDelete;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheGet.js
var require_listCacheGet = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheGet.js"(exports, module) {
    var assocIndexOf = require_assocIndexOf();
    function listCacheGet(key) {
      var data2 = this.__data__, index2 = assocIndexOf(data2, key);
      return index2 < 0 ? void 0 : data2[index2][1];
    }
    module.exports = listCacheGet;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheHas.js
var require_listCacheHas = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheHas.js"(exports, module) {
    var assocIndexOf = require_assocIndexOf();
    function listCacheHas(key) {
      return assocIndexOf(this.__data__, key) > -1;
    }
    module.exports = listCacheHas;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheSet.js
var require_listCacheSet = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheSet.js"(exports, module) {
    var assocIndexOf = require_assocIndexOf();
    function listCacheSet(key, value2) {
      var data2 = this.__data__, index2 = assocIndexOf(data2, key);
      if (index2 < 0) {
        ++this.size;
        data2.push([key, value2]);
      } else {
        data2[index2][1] = value2;
      }
      return this;
    }
    module.exports = listCacheSet;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_ListCache.js
var require_ListCache = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_ListCache.js"(exports, module) {
    var listCacheClear = require_listCacheClear();
    var listCacheDelete = require_listCacheDelete();
    var listCacheGet = require_listCacheGet();
    var listCacheHas = require_listCacheHas();
    var listCacheSet = require_listCacheSet();
    function ListCache(entries3) {
      var index2 = -1, length2 = entries3 == null ? 0 : entries3.length;
      this.clear();
      while (++index2 < length2) {
        var entry = entries3[index2];
        this.set(entry[0], entry[1]);
      }
    }
    ListCache.prototype.clear = listCacheClear;
    ListCache.prototype["delete"] = listCacheDelete;
    ListCache.prototype.get = listCacheGet;
    ListCache.prototype.has = listCacheHas;
    ListCache.prototype.set = listCacheSet;
    module.exports = ListCache;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Map.js
var require_Map = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Map.js"(exports, module) {
    var getNative = require_getNative();
    var root = require_root();
    var Map2 = getNative(root, "Map");
    module.exports = Map2;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheClear.js
var require_mapCacheClear = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheClear.js"(exports, module) {
    var Hash = require_Hash();
    var ListCache = require_ListCache();
    var Map2 = require_Map();
    function mapCacheClear() {
      this.size = 0;
      this.__data__ = {
        "hash": new Hash(),
        "map": new (Map2 || ListCache)(),
        "string": new Hash()
      };
    }
    module.exports = mapCacheClear;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_isKeyable.js
var require_isKeyable = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_isKeyable.js"(exports, module) {
    function isKeyable(value2) {
      var type = typeof value2;
      return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value2 !== "__proto__" : value2 === null;
    }
    module.exports = isKeyable;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getMapData.js
var require_getMapData = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getMapData.js"(exports, module) {
    var isKeyable = require_isKeyable();
    function getMapData(map, key) {
      var data2 = map.__data__;
      return isKeyable(key) ? data2[typeof key == "string" ? "string" : "hash"] : data2.map;
    }
    module.exports = getMapData;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheDelete.js
var require_mapCacheDelete = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheDelete.js"(exports, module) {
    var getMapData = require_getMapData();
    function mapCacheDelete(key) {
      var result = getMapData(this, key)["delete"](key);
      this.size -= result ? 1 : 0;
      return result;
    }
    module.exports = mapCacheDelete;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheGet.js
var require_mapCacheGet = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheGet.js"(exports, module) {
    var getMapData = require_getMapData();
    function mapCacheGet(key) {
      return getMapData(this, key).get(key);
    }
    module.exports = mapCacheGet;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheHas.js
var require_mapCacheHas = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheHas.js"(exports, module) {
    var getMapData = require_getMapData();
    function mapCacheHas(key) {
      return getMapData(this, key).has(key);
    }
    module.exports = mapCacheHas;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheSet.js
var require_mapCacheSet = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheSet.js"(exports, module) {
    var getMapData = require_getMapData();
    function mapCacheSet(key, value2) {
      var data2 = getMapData(this, key), size = data2.size;
      data2.set(key, value2);
      this.size += data2.size == size ? 0 : 1;
      return this;
    }
    module.exports = mapCacheSet;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_MapCache.js
var require_MapCache = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_MapCache.js"(exports, module) {
    var mapCacheClear = require_mapCacheClear();
    var mapCacheDelete = require_mapCacheDelete();
    var mapCacheGet = require_mapCacheGet();
    var mapCacheHas = require_mapCacheHas();
    var mapCacheSet = require_mapCacheSet();
    function MapCache(entries3) {
      var index2 = -1, length2 = entries3 == null ? 0 : entries3.length;
      this.clear();
      while (++index2 < length2) {
        var entry = entries3[index2];
        this.set(entry[0], entry[1]);
      }
    }
    MapCache.prototype.clear = mapCacheClear;
    MapCache.prototype["delete"] = mapCacheDelete;
    MapCache.prototype.get = mapCacheGet;
    MapCache.prototype.has = mapCacheHas;
    MapCache.prototype.set = mapCacheSet;
    module.exports = MapCache;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/memoize.js
var require_memoize = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/memoize.js"(exports, module) {
    var MapCache = require_MapCache();
    var FUNC_ERROR_TEXT = "Expected a function";
    function memoize(func, resolver) {
      if (typeof func != "function" || resolver != null && typeof resolver != "function") {
        throw new TypeError(FUNC_ERROR_TEXT);
      }
      var memoized = function() {
        var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache2 = memoized.cache;
        if (cache2.has(key)) {
          return cache2.get(key);
        }
        var result = func.apply(this, args);
        memoized.cache = cache2.set(key, result) || cache2;
        return result;
      };
      memoized.cache = new (memoize.Cache || MapCache)();
      return memoized;
    }
    memoize.Cache = MapCache;
    module.exports = memoize;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_memoizeCapped.js
var require_memoizeCapped = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_memoizeCapped.js"(exports, module) {
    var memoize = require_memoize();
    var MAX_MEMOIZE_SIZE = 500;
    function memoizeCapped(func) {
      var result = memoize(func, function(key) {
        if (cache2.size === MAX_MEMOIZE_SIZE) {
          cache2.clear();
        }
        return key;
      });
      var cache2 = result.cache;
      return result;
    }
    module.exports = memoizeCapped;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_stringToPath.js
var require_stringToPath = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_stringToPath.js"(exports, module) {
    var memoizeCapped = require_memoizeCapped();
    var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
    var reEscapeChar = /\\(\\)?/g;
    var stringToPath = memoizeCapped(function(string) {
      var result = [];
      if (string.charCodeAt(0) === 46) {
        result.push("");
      }
      string.replace(rePropName, function(match, number3, quote, subString) {
        result.push(quote ? subString.replace(reEscapeChar, "$1") : number3 || match);
      });
      return result;
    });
    module.exports = stringToPath;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_arrayMap.js
var require_arrayMap = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_arrayMap.js"(exports, module) {
    function arrayMap(array, iteratee) {
      var index2 = -1, length2 = array == null ? 0 : array.length, result = Array(length2);
      while (++index2 < length2) {
        result[index2] = iteratee(array[index2], index2, array);
      }
      return result;
    }
    module.exports = arrayMap;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseToString.js
var require_baseToString = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseToString.js"(exports, module) {
    var Symbol2 = require_Symbol();
    var arrayMap = require_arrayMap();
    var isArray3 = require_isArray();
    var isSymbol2 = require_isSymbol();
    var INFINITY3 = 1 / 0;
    var symbolProto = Symbol2 ? Symbol2.prototype : void 0;
    var symbolToString = symbolProto ? symbolProto.toString : void 0;
    function baseToString(value2) {
      if (typeof value2 == "string") {
        return value2;
      }
      if (isArray3(value2)) {
        return arrayMap(value2, baseToString) + "";
      }
      if (isSymbol2(value2)) {
        return symbolToString ? symbolToString.call(value2) : "";
      }
      var result = value2 + "";
      return result == "0" && 1 / value2 == -INFINITY3 ? "-0" : result;
    }
    module.exports = baseToString;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/toString.js
var require_toString = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/toString.js"(exports, module) {
    var baseToString = require_baseToString();
    function toString5(value2) {
      return value2 == null ? "" : baseToString(value2);
    }
    module.exports = toString5;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_castPath.js
var require_castPath = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_castPath.js"(exports, module) {
    var isArray3 = require_isArray();
    var isKey = require_isKey();
    var stringToPath = require_stringToPath();
    var toString5 = require_toString();
    function castPath(value2, object) {
      if (isArray3(value2)) {
        return value2;
      }
      return isKey(value2, object) ? [value2] : stringToPath(toString5(value2));
    }
    module.exports = castPath;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_toKey.js
var require_toKey = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_toKey.js"(exports, module) {
    var isSymbol2 = require_isSymbol();
    var INFINITY3 = 1 / 0;
    function toKey(value2) {
      if (typeof value2 == "string" || isSymbol2(value2)) {
        return value2;
      }
      var result = value2 + "";
      return result == "0" && 1 / value2 == -INFINITY3 ? "-0" : result;
    }
    module.exports = toKey;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseGet.js
var require_baseGet = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseGet.js"(exports, module) {
    var castPath = require_castPath();
    var toKey = require_toKey();
    function baseGet(object, path3) {
      path3 = castPath(path3, object);
      var index2 = 0, length2 = path3.length;
      while (object != null && index2 < length2) {
        object = object[toKey(path3[index2++])];
      }
      return index2 && index2 == length2 ? object : void 0;
    }
    module.exports = baseGet;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/get.js
var require_get = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/get.js"(exports, module) {
    var baseGet = require_baseGet();
    function get(object, path3, defaultValue) {
      var result = object == null ? void 0 : baseGet(object, path3);
      return result === void 0 ? defaultValue : result;
    }
    module.exports = get;
  }
});

// ../../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/es6/index.js
var require_es6 = __commonJS({
  "../../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/es6/index.js"(exports, module) {
    "use strict";
    module.exports = function equal(a5, b3) {
      if (a5 === b3) return true;
      if (a5 && b3 && typeof a5 == "object" && typeof b3 == "object") {
        if (a5.constructor !== b3.constructor) return false;
        var length2, i5, keys2;
        if (Array.isArray(a5)) {
          length2 = a5.length;
          if (length2 != b3.length) return false;
          for (i5 = length2; i5-- !== 0; )
            if (!equal(a5[i5], b3[i5])) return false;
          return true;
        }
        if (a5 instanceof Map && b3 instanceof Map) {
          if (a5.size !== b3.size) return false;
          for (i5 of a5.entries())
            if (!b3.has(i5[0])) return false;
          for (i5 of a5.entries())
            if (!equal(i5[1], b3.get(i5[0]))) return false;
          return true;
        }
        if (a5 instanceof Set && b3 instanceof Set) {
          if (a5.size !== b3.size) return false;
          for (i5 of a5.entries())
            if (!b3.has(i5[0])) return false;
          return true;
        }
        if (ArrayBuffer.isView(a5) && ArrayBuffer.isView(b3)) {
          length2 = a5.length;
          if (length2 != b3.length) return false;
          for (i5 = length2; i5-- !== 0; )
            if (a5[i5] !== b3[i5]) return false;
          return true;
        }
        if (a5.constructor === RegExp) return a5.source === b3.source && a5.flags === b3.flags;
        if (a5.valueOf !== Object.prototype.valueOf) return a5.valueOf() === b3.valueOf();
        if (a5.toString !== Object.prototype.toString) return a5.toString() === b3.toString();
        keys2 = Object.keys(a5);
        length2 = keys2.length;
        if (length2 !== Object.keys(b3).length) return false;
        for (i5 = length2; i5-- !== 0; )
          if (!Object.prototype.hasOwnProperty.call(b3, keys2[i5])) return false;
        for (i5 = length2; i5-- !== 0; ) {
          var key = keys2[i5];
          if (!equal(a5[key], b3[key])) return false;
        }
        return true;
      }
      return a5 !== a5 && b3 !== b3;
    };
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_setCacheAdd.js
var require_setCacheAdd = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_setCacheAdd.js"(exports, module) {
    var HASH_UNDEFINED = "__lodash_hash_undefined__";
    function setCacheAdd(value2) {
      this.__data__.set(value2, HASH_UNDEFINED);
      return this;
    }
    module.exports = setCacheAdd;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_setCacheHas.js
var require_setCacheHas = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_setCacheHas.js"(exports, module) {
    function setCacheHas(value2) {
      return this.__data__.has(value2);
    }
    module.exports = setCacheHas;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_SetCache.js
var require_SetCache = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_SetCache.js"(exports, module) {
    var MapCache = require_MapCache();
    var setCacheAdd = require_setCacheAdd();
    var setCacheHas = require_setCacheHas();
    function SetCache(values) {
      var index2 = -1, length2 = values == null ? 0 : values.length;
      this.__data__ = new MapCache();
      while (++index2 < length2) {
        this.add(values[index2]);
      }
    }
    SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
    SetCache.prototype.has = setCacheHas;
    module.exports = SetCache;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseFindIndex.js
var require_baseFindIndex = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseFindIndex.js"(exports, module) {
    function baseFindIndex(array, predicate, fromIndex, fromRight) {
      var length2 = array.length, index2 = fromIndex + (fromRight ? 1 : -1);
      while (fromRight ? index2-- : ++index2 < length2) {
        if (predicate(array[index2], index2, array)) {
          return index2;
        }
      }
      return -1;
    }
    module.exports = baseFindIndex;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseIsNaN.js
var require_baseIsNaN = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseIsNaN.js"(exports, module) {
    function baseIsNaN(value2) {
      return value2 !== value2;
    }
    module.exports = baseIsNaN;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_strictIndexOf.js
var require_strictIndexOf = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_strictIndexOf.js"(exports, module) {
    function strictIndexOf(array, value2, fromIndex) {
      var index2 = fromIndex - 1, length2 = array.length;
      while (++index2 < length2) {
        if (array[index2] === value2) {
          return index2;
        }
      }
      return -1;
    }
    module.exports = strictIndexOf;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseIndexOf.js
var require_baseIndexOf = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseIndexOf.js"(exports, module) {
    var baseFindIndex = require_baseFindIndex();
    var baseIsNaN = require_baseIsNaN();
    var strictIndexOf = require_strictIndexOf();
    function baseIndexOf(array, value2, fromIndex) {
      return value2 === value2 ? strictIndexOf(array, value2, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);
    }
    module.exports = baseIndexOf;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_arrayIncludes.js
var require_arrayIncludes = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_arrayIncludes.js"(exports, module) {
    var baseIndexOf = require_baseIndexOf();
    function arrayIncludes(array, value2) {
      var length2 = array == null ? 0 : array.length;
      return !!length2 && baseIndexOf(array, value2, 0) > -1;
    }
    module.exports = arrayIncludes;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_arrayIncludesWith.js
var require_arrayIncludesWith = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_arrayIncludesWith.js"(exports, module) {
    function arrayIncludesWith(array, value2, comparator) {
      var index2 = -1, length2 = array == null ? 0 : array.length;
      while (++index2 < length2) {
        if (comparator(value2, array[index2])) {
          return true;
        }
      }
      return false;
    }
    module.exports = arrayIncludesWith;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_cacheHas.js
var require_cacheHas = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_cacheHas.js"(exports, module) {
    function cacheHas(cache2, key) {
      return cache2.has(key);
    }
    module.exports = cacheHas;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Set.js
var require_Set = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Set.js"(exports, module) {
    var getNative = require_getNative();
    var root = require_root();
    var Set2 = getNative(root, "Set");
    module.exports = Set2;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/noop.js
var require_noop = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/noop.js"(exports, module) {
    function noop6() {
    }
    module.exports = noop6;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_setToArray.js
var require_setToArray = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_setToArray.js"(exports, module) {
    function setToArray(set) {
      var index2 = -1, result = Array(set.size);
      set.forEach(function(value2) {
        result[++index2] = value2;
      });
      return result;
    }
    module.exports = setToArray;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_createSet.js
var require_createSet = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_createSet.js"(exports, module) {
    var Set2 = require_Set();
    var noop6 = require_noop();
    var setToArray = require_setToArray();
    var INFINITY3 = 1 / 0;
    var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY3) ? noop6 : function(values) {
      return new Set2(values);
    };
    module.exports = createSet;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseUniq.js
var require_baseUniq = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseUniq.js"(exports, module) {
    var SetCache = require_SetCache();
    var arrayIncludes = require_arrayIncludes();
    var arrayIncludesWith = require_arrayIncludesWith();
    var cacheHas = require_cacheHas();
    var createSet = require_createSet();
    var setToArray = require_setToArray();
    var LARGE_ARRAY_SIZE = 200;
    function baseUniq(array, iteratee, comparator) {
      var index2 = -1, includes2 = arrayIncludes, length2 = array.length, isCommon = true, result = [], seen = result;
      if (comparator) {
        isCommon = false;
        includes2 = arrayIncludesWith;
      } else if (length2 >= LARGE_ARRAY_SIZE) {
        var set = iteratee ? null : createSet(array);
        if (set) {
          return setToArray(set);
        }
        isCommon = false;
        includes2 = cacheHas;
        seen = new SetCache();
      } else {
        seen = iteratee ? [] : result;
      }
      outer:
        while (++index2 < length2) {
          var value2 = array[index2], computed = iteratee ? iteratee(value2) : value2;
          value2 = comparator || value2 !== 0 ? value2 : 0;
          if (isCommon && computed === computed) {
            var seenIndex = seen.length;
            while (seenIndex--) {
              if (seen[seenIndex] === computed) {
                continue outer;
              }
            }
            if (iteratee) {
              seen.push(computed);
            }
            result.push(value2);
          } else if (!includes2(seen, computed, comparator)) {
            if (seen !== result) {
              seen.push(computed);
            }
            result.push(value2);
          }
        }
      return result;
    }
    module.exports = baseUniq;
  }
});

// ../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/uniqWith.js
var require_uniqWith = __commonJS({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/uniqWith.js"(exports, module) {
    var baseUniq = require_baseUniq();
    function uniqWith(array, comparator) {
      comparator = typeof comparator == "function" ? comparator : void 0;
      return array && array.length ? baseUniq(array, void 0, comparator) : [];
    }
    module.exports = uniqWith;
  }
});

// ../../node_modules/.pnpm/@sapphire+shapeshift@3.9.7/node_modules/@sapphire/shapeshift/dist/cjs/index.cjs
var require_cjs5 = __commonJS({
  "../../node_modules/.pnpm/@sapphire+shapeshift@3.9.7/node_modules/@sapphire/shapeshift/dist/cjs/index.cjs"(exports) {
    "use strict";
    var get = require_get();
    var fastDeepEqual = require_es6();
    var uniqWith = require_uniqWith();
    function _interopDefault(e5) {
      return e5 && e5.__esModule ? e5 : { default: e5 };
    }
    var get__default = /* @__PURE__ */ _interopDefault(get);
    var fastDeepEqual__default = /* @__PURE__ */ _interopDefault(fastDeepEqual);
    var uniqWith__default = /* @__PURE__ */ _interopDefault(uniqWith);
    var __defProp3 = Object.defineProperty;
    var __name2 = (target, value2) => __defProp3(target, "name", { value: value2, configurable: true });
    var validationEnabled = true;
    function setGlobalValidationEnabled(enabled) {
      validationEnabled = enabled;
    }
    __name2(setGlobalValidationEnabled, "setGlobalValidationEnabled");
    function getGlobalValidationEnabled() {
      return validationEnabled;
    }
    __name2(getGlobalValidationEnabled, "getGlobalValidationEnabled");
    var _Result = class _Result2 {
      constructor(success, value2, error) {
        this.success = success;
        if (success) {
          this.value = value2;
        } else {
          this.error = error;
        }
      }
      isOk() {
        return this.success;
      }
      isErr() {
        return !this.success;
      }
      unwrap() {
        if (this.isOk())
          return this.value;
        throw this.error;
      }
      static ok(value2) {
        return new _Result2(true, value2);
      }
      static err(error) {
        return new _Result2(false, void 0, error);
      }
    };
    __name2(_Result, "Result");
    var Result = _Result;
    function getValue(valueOrFn) {
      return typeof valueOrFn === "function" ? valueOrFn() : valueOrFn;
    }
    __name2(getValue, "getValue");
    var e4;
    var t4;
    var n6;
    var r4 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis;
    var o5 = e4 = {};
    function i5() {
      throw new Error("setTimeout has not been defined");
    }
    __name2(i5, "i");
    function u5() {
      throw new Error("clearTimeout has not been defined");
    }
    __name2(u5, "u");
    function c6(e32) {
      if (t4 === setTimeout)
        return setTimeout(e32, 0);
      if ((t4 === i5 || !t4) && setTimeout)
        return t4 = setTimeout, setTimeout(e32, 0);
      try {
        return t4(e32, 0);
      } catch (n32) {
        try {
          return t4.call(null, e32, 0);
        } catch (n42) {
          return t4.call(this || r4, e32, 0);
        }
      }
    }
    __name2(c6, "c");
    !(function() {
      try {
        t4 = "function" == typeof setTimeout ? setTimeout : i5;
      } catch (e32) {
        t4 = i5;
      }
      try {
        n6 = "function" == typeof clearTimeout ? clearTimeout : u5;
      } catch (e32) {
        n6 = u5;
      }
    })();
    var l4;
    var s4 = [];
    var f4 = false;
    var a5 = -1;
    function h4() {
      f4 && l4 && (f4 = false, l4.length ? s4 = l4.concat(s4) : a5 = -1, s4.length && d3());
    }
    __name2(h4, "h");
    function d3() {
      if (!f4) {
        var e32 = c6(h4);
        f4 = true;
        for (var t32 = s4.length; t32; ) {
          for (l4 = s4, s4 = []; ++a5 < t32; )
            l4 && l4[a5].run();
          a5 = -1, t32 = s4.length;
        }
        l4 = null, f4 = false, (function(e42) {
          if (n6 === clearTimeout)
            return clearTimeout(e42);
          if ((n6 === u5 || !n6) && clearTimeout)
            return n6 = clearTimeout, clearTimeout(e42);
          try {
            n6(e42);
          } catch (t42) {
            try {
              return n6.call(null, e42);
            } catch (t5) {
              return n6.call(this || r4, e42);
            }
          }
        })(e32);
      }
    }
    __name2(d3, "d");
    function m3(e32, t32) {
      (this || r4).fun = e32, (this || r4).array = t32;
    }
    __name2(m3, "m");
    function p3() {
    }
    __name2(p3, "p");
    o5.nextTick = function(e32) {
      var t32 = new Array(arguments.length - 1);
      if (arguments.length > 1)
        for (var n32 = 1; n32 < arguments.length; n32++)
          t32[n32 - 1] = arguments[n32];
      s4.push(new m3(e32, t32)), 1 !== s4.length || f4 || c6(d3);
    }, m3.prototype.run = function() {
      (this || r4).fun.apply(null, (this || r4).array);
    }, o5.title = "browser", o5.browser = true, o5.env = {}, o5.argv = [], o5.version = "", o5.versions = {}, o5.on = p3, o5.addListener = p3, o5.once = p3, o5.off = p3, o5.removeListener = p3, o5.removeAllListeners = p3, o5.emit = p3, o5.prependListener = p3, o5.prependOnceListener = p3, o5.listeners = function(e32) {
      return [];
    }, o5.binding = function(e32) {
      throw new Error("process.binding is not supported");
    }, o5.cwd = function() {
      return "/";
    }, o5.chdir = function(e32) {
      throw new Error("process.chdir is not supported");
    }, o5.umask = function() {
      return 0;
    };
    var T = e4;
    T.addListener;
    T.argv;
    T.binding;
    T.browser;
    T.chdir;
    T.cwd;
    T.emit;
    T.env;
    T.listeners;
    T.nextTick;
    T.off;
    T.on;
    T.once;
    T.prependListener;
    T.prependOnceListener;
    T.removeAllListeners;
    T.removeListener;
    T.title;
    T.umask;
    T.version;
    T.versions;
    var t22 = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag;
    var e22 = Object.prototype.toString;
    var o22 = /* @__PURE__ */ __name2(function(o32) {
      return !(t22 && o32 && "object" == typeof o32 && Symbol.toStringTag in o32) && "[object Arguments]" === e22.call(o32);
    }, "o");
    var n22 = /* @__PURE__ */ __name2(function(t32) {
      return !!o22(t32) || null !== t32 && "object" == typeof t32 && "number" == typeof t32.length && t32.length >= 0 && "[object Array]" !== e22.call(t32) && "[object Function]" === e22.call(t32.callee);
    }, "n");
    var r22 = (function() {
      return o22(arguments);
    })();
    o22.isLegacyArguments = n22;
    var l22 = r22 ? o22 : n22;
    var t$1 = Object.prototype.toString;
    var o$1 = Function.prototype.toString;
    var n$1 = /^\s*(?:function)?\*/;
    var e$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag;
    var r$1 = Object.getPrototypeOf;
    var c22 = (function() {
      if (!e$1)
        return false;
      try {
        return Function("return function*() {}")();
      } catch (t32) {
      }
    })();
    var u22 = c22 ? r$1(c22) : {};
    var i22 = /* @__PURE__ */ __name2(function(c32) {
      return "function" == typeof c32 && (!!n$1.test(o$1.call(c32)) || (e$1 ? r$1(c32) === u22 : "[object GeneratorFunction]" === t$1.call(c32)));
    }, "i");
    var t$2 = "function" == typeof Object.create ? function(t32, e32) {
      e32 && (t32.super_ = e32, t32.prototype = Object.create(e32.prototype, { constructor: { value: t32, enumerable: false, writable: true, configurable: true } }));
    } : function(t32, e32) {
      if (e32) {
        t32.super_ = e32;
        var o32 = /* @__PURE__ */ __name2(function() {
        }, "o");
        o32.prototype = e32.prototype, t32.prototype = new o32(), t32.prototype.constructor = t32;
      }
    };
    var i$1 = /* @__PURE__ */ __name2(function(e32) {
      return e32 && "object" == typeof e32 && "function" == typeof e32.copy && "function" == typeof e32.fill && "function" == typeof e32.readUInt8;
    }, "i$1");
    var o$2 = {};
    var u$1 = i$1;
    var f22 = l22;
    var a22 = i22;
    function c$1(e32) {
      return e32.call.bind(e32);
    }
    __name2(c$1, "c$1");
    var s22 = "undefined" != typeof BigInt;
    var p22 = "undefined" != typeof Symbol;
    var y3 = p22 && void 0 !== Symbol.toStringTag;
    var l$1 = "undefined" != typeof Uint8Array;
    var d22 = "undefined" != typeof ArrayBuffer;
    if (l$1 && y3)
      var g3 = Object.getPrototypeOf(Uint8Array.prototype), b3 = c$1(Object.getOwnPropertyDescriptor(g3, Symbol.toStringTag).get);
    var m22 = c$1(Object.prototype.toString);
    var h22 = c$1(Number.prototype.valueOf);
    var j = c$1(String.prototype.valueOf);
    var A = c$1(Boolean.prototype.valueOf);
    if (s22)
      var w = c$1(BigInt.prototype.valueOf);
    if (p22)
      var v3 = c$1(Symbol.prototype.valueOf);
    function O(e32, t32) {
      if ("object" != typeof e32)
        return false;
      try {
        return t32(e32), true;
      } catch (e42) {
        return false;
      }
    }
    __name2(O, "O");
    function S3(e32) {
      return l$1 && y3 ? void 0 !== b3(e32) : B(e32) || k3(e32) || E(e32) || D(e32) || U(e32) || P(e32) || x(e32) || I(e32) || M(e32) || z(e32) || F(e32);
    }
    __name2(S3, "S");
    function B(e32) {
      return l$1 && y3 ? "Uint8Array" === b3(e32) : "[object Uint8Array]" === m22(e32) || u$1(e32) && void 0 !== e32.buffer;
    }
    __name2(B, "B");
    function k3(e32) {
      return l$1 && y3 ? "Uint8ClampedArray" === b3(e32) : "[object Uint8ClampedArray]" === m22(e32);
    }
    __name2(k3, "k");
    function E(e32) {
      return l$1 && y3 ? "Uint16Array" === b3(e32) : "[object Uint16Array]" === m22(e32);
    }
    __name2(E, "E");
    function D(e32) {
      return l$1 && y3 ? "Uint32Array" === b3(e32) : "[object Uint32Array]" === m22(e32);
    }
    __name2(D, "D");
    function U(e32) {
      return l$1 && y3 ? "Int8Array" === b3(e32) : "[object Int8Array]" === m22(e32);
    }
    __name2(U, "U");
    function P(e32) {
      return l$1 && y3 ? "Int16Array" === b3(e32) : "[object Int16Array]" === m22(e32);
    }
    __name2(P, "P");
    function x(e32) {
      return l$1 && y3 ? "Int32Array" === b3(e32) : "[object Int32Array]" === m22(e32);
    }
    __name2(x, "x");
    function I(e32) {
      return l$1 && y3 ? "Float32Array" === b3(e32) : "[object Float32Array]" === m22(e32);
    }
    __name2(I, "I");
    function M(e32) {
      return l$1 && y3 ? "Float64Array" === b3(e32) : "[object Float64Array]" === m22(e32);
    }
    __name2(M, "M");
    function z(e32) {
      return l$1 && y3 ? "BigInt64Array" === b3(e32) : "[object BigInt64Array]" === m22(e32);
    }
    __name2(z, "z");
    function F(e32) {
      return l$1 && y3 ? "BigUint64Array" === b3(e32) : "[object BigUint64Array]" === m22(e32);
    }
    __name2(F, "F");
    function T2(e32) {
      return "[object Map]" === m22(e32);
    }
    __name2(T2, "T");
    function N(e32) {
      return "[object Set]" === m22(e32);
    }
    __name2(N, "N");
    function W(e32) {
      return "[object WeakMap]" === m22(e32);
    }
    __name2(W, "W");
    function $(e32) {
      return "[object WeakSet]" === m22(e32);
    }
    __name2($, "$");
    function C(e32) {
      return "[object ArrayBuffer]" === m22(e32);
    }
    __name2(C, "C");
    function V(e32) {
      return "undefined" != typeof ArrayBuffer && (C.working ? C(e32) : e32 instanceof ArrayBuffer);
    }
    __name2(V, "V");
    function G2(e32) {
      return "[object DataView]" === m22(e32);
    }
    __name2(G2, "G");
    function R(e32) {
      return "undefined" != typeof DataView && (G2.working ? G2(e32) : e32 instanceof DataView);
    }
    __name2(R, "R");
    function J(e32) {
      return "[object SharedArrayBuffer]" === m22(e32);
    }
    __name2(J, "J");
    function _(e32) {
      return "undefined" != typeof SharedArrayBuffer && (J.working ? J(e32) : e32 instanceof SharedArrayBuffer);
    }
    __name2(_, "_");
    function H(e32) {
      return O(e32, h22);
    }
    __name2(H, "H");
    function Z(e32) {
      return O(e32, j);
    }
    __name2(Z, "Z");
    function q(e32) {
      return O(e32, A);
    }
    __name2(q, "q");
    function K(e32) {
      return s22 && O(e32, w);
    }
    __name2(K, "K");
    function L(e32) {
      return p22 && O(e32, v3);
    }
    __name2(L, "L");
    o$2.isArgumentsObject = f22, o$2.isGeneratorFunction = a22, o$2.isPromise = function(e32) {
      return "undefined" != typeof Promise && e32 instanceof Promise || null !== e32 && "object" == typeof e32 && "function" == typeof e32.then && "function" == typeof e32.catch;
    }, o$2.isArrayBufferView = function(e32) {
      return d22 && ArrayBuffer.isView ? ArrayBuffer.isView(e32) : S3(e32) || R(e32);
    }, o$2.isTypedArray = S3, o$2.isUint8Array = B, o$2.isUint8ClampedArray = k3, o$2.isUint16Array = E, o$2.isUint32Array = D, o$2.isInt8Array = U, o$2.isInt16Array = P, o$2.isInt32Array = x, o$2.isFloat32Array = I, o$2.isFloat64Array = M, o$2.isBigInt64Array = z, o$2.isBigUint64Array = F, T2.working = "undefined" != typeof Map && T2(/* @__PURE__ */ new Map()), o$2.isMap = function(e32) {
      return "undefined" != typeof Map && (T2.working ? T2(e32) : e32 instanceof Map);
    }, N.working = "undefined" != typeof Set && N(/* @__PURE__ */ new Set()), o$2.isSet = function(e32) {
      return "undefined" != typeof Set && (N.working ? N(e32) : e32 instanceof Set);
    }, W.working = "undefined" != typeof WeakMap && W(/* @__PURE__ */ new WeakMap()), o$2.isWeakMap = function(e32) {
      return "undefined" != typeof WeakMap && (W.working ? W(e32) : e32 instanceof WeakMap);
    }, $.working = "undefined" != typeof WeakSet && $(/* @__PURE__ */ new WeakSet()), o$2.isWeakSet = function(e32) {
      return $(e32);
    }, C.working = "undefined" != typeof ArrayBuffer && C(new ArrayBuffer()), o$2.isArrayBuffer = V, G2.working = "undefined" != typeof ArrayBuffer && "undefined" != typeof DataView && G2(new DataView(new ArrayBuffer(1), 0, 1)), o$2.isDataView = R, J.working = "undefined" != typeof SharedArrayBuffer && J(new SharedArrayBuffer()), o$2.isSharedArrayBuffer = _, o$2.isAsyncFunction = function(e32) {
      return "[object AsyncFunction]" === m22(e32);
    }, o$2.isMapIterator = function(e32) {
      return "[object Map Iterator]" === m22(e32);
    }, o$2.isSetIterator = function(e32) {
      return "[object Set Iterator]" === m22(e32);
    }, o$2.isGeneratorObject = function(e32) {
      return "[object Generator]" === m22(e32);
    }, o$2.isWebAssemblyCompiledModule = function(e32) {
      return "[object WebAssembly.Module]" === m22(e32);
    }, o$2.isNumberObject = H, o$2.isStringObject = Z, o$2.isBooleanObject = q, o$2.isBigIntObject = K, o$2.isSymbolObject = L, o$2.isBoxedPrimitive = function(e32) {
      return H(e32) || Z(e32) || q(e32) || K(e32) || L(e32);
    }, o$2.isAnyArrayBuffer = function(e32) {
      return l$1 && (V(e32) || _(e32));
    }, ["isProxy", "isExternal", "isModuleNamespaceObject"].forEach(function(e32) {
      Object.defineProperty(o$2, e32, { enumerable: false, value: function() {
        throw new Error(e32 + " is not supported in userland");
      } });
    });
    var Q = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis;
    var X = {};
    var Y = T;
    var ee = Object.getOwnPropertyDescriptors || function(e32) {
      for (var t32 = Object.keys(e32), r32 = {}, n32 = 0; n32 < t32.length; n32++)
        r32[t32[n32]] = Object.getOwnPropertyDescriptor(e32, t32[n32]);
      return r32;
    };
    var te = /%[sdj%]/g;
    X.format = function(e32) {
      if (!ge(e32)) {
        for (var t32 = [], r32 = 0; r32 < arguments.length; r32++)
          t32.push(oe(arguments[r32]));
        return t32.join(" ");
      }
      r32 = 1;
      for (var n32 = arguments, i33 = n32.length, o32 = String(e32).replace(te, function(e42) {
        if ("%%" === e42)
          return "%";
        if (r32 >= i33)
          return e42;
        switch (e42) {
          case "%s":
            return String(n32[r32++]);
          case "%d":
            return Number(n32[r32++]);
          case "%j":
            try {
              return JSON.stringify(n32[r32++]);
            } catch (e5) {
              return "[Circular]";
            }
          default:
            return e42;
        }
      }), u32 = n32[r32]; r32 < i33; u32 = n32[++r32])
        le(u32) || !he(u32) ? o32 += " " + u32 : o32 += " " + oe(u32);
      return o32;
    }, X.deprecate = function(e32, t32) {
      if (void 0 !== Y && true === Y.noDeprecation)
        return e32;
      if (void 0 === Y)
        return function() {
          return X.deprecate(e32, t32).apply(this || Q, arguments);
        };
      var r32 = false;
      return function() {
        if (!r32) {
          if (Y.throwDeprecation)
            throw new Error(t32);
          Y.traceDeprecation ? console.trace(t32) : console.error(t32), r32 = true;
        }
        return e32.apply(this || Q, arguments);
      };
    };
    var re = {};
    var ne = /^$/;
    if (Y.env.NODE_DEBUG) {
      ie = Y.env.NODE_DEBUG;
      ie = ie.replace(/[|\\{}()[\]^$+?.]/g, "\\$&").replace(/\*/g, ".*").replace(/,/g, "$|^").toUpperCase(), ne = new RegExp("^" + ie + "$", "i");
    }
    var ie;
    function oe(e32, t32) {
      var r32 = { seen: [], stylize: fe };
      return arguments.length >= 3 && (r32.depth = arguments[2]), arguments.length >= 4 && (r32.colors = arguments[3]), ye(t32) ? r32.showHidden = t32 : t32 && X._extend(r32, t32), be(r32.showHidden) && (r32.showHidden = false), be(r32.depth) && (r32.depth = 2), be(r32.colors) && (r32.colors = false), be(r32.customInspect) && (r32.customInspect = true), r32.colors && (r32.stylize = ue), ae(r32, e32, r32.depth);
    }
    __name2(oe, "oe");
    function ue(e32, t32) {
      var r32 = oe.styles[t32];
      return r32 ? "\x1B[" + oe.colors[r32][0] + "m" + e32 + "\x1B[" + oe.colors[r32][1] + "m" : e32;
    }
    __name2(ue, "ue");
    function fe(e32, t32) {
      return e32;
    }
    __name2(fe, "fe");
    function ae(e32, t32, r32) {
      if (e32.customInspect && t32 && we(t32.inspect) && t32.inspect !== X.inspect && (!t32.constructor || t32.constructor.prototype !== t32)) {
        var n32 = t32.inspect(r32, e32);
        return ge(n32) || (n32 = ae(e32, n32, r32)), n32;
      }
      var i33 = (function(e42, t42) {
        if (be(t42))
          return e42.stylize("undefined", "undefined");
        if (ge(t42)) {
          var r42 = "'" + JSON.stringify(t42).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
          return e42.stylize(r42, "string");
        }
        if (de(t42))
          return e42.stylize("" + t42, "number");
        if (ye(t42))
          return e42.stylize("" + t42, "boolean");
        if (le(t42))
          return e42.stylize("null", "null");
      })(e32, t32);
      if (i33)
        return i33;
      var o32 = Object.keys(t32), u32 = (function(e42) {
        var t42 = {};
        return e42.forEach(function(e5, r42) {
          t42[e5] = true;
        }), t42;
      })(o32);
      if (e32.showHidden && (o32 = Object.getOwnPropertyNames(t32)), Ae(t32) && (o32.indexOf("message") >= 0 || o32.indexOf("description") >= 0))
        return ce(t32);
      if (0 === o32.length) {
        if (we(t32)) {
          var f32 = t32.name ? ": " + t32.name : "";
          return e32.stylize("[Function" + f32 + "]", "special");
        }
        if (me(t32))
          return e32.stylize(RegExp.prototype.toString.call(t32), "regexp");
        if (je(t32))
          return e32.stylize(Date.prototype.toString.call(t32), "date");
        if (Ae(t32))
          return ce(t32);
      }
      var a32, c32 = "", s42 = false, p32 = ["{", "}"];
      (pe(t32) && (s42 = true, p32 = ["[", "]"]), we(t32)) && (c32 = " [Function" + (t32.name ? ": " + t32.name : "") + "]");
      return me(t32) && (c32 = " " + RegExp.prototype.toString.call(t32)), je(t32) && (c32 = " " + Date.prototype.toUTCString.call(t32)), Ae(t32) && (c32 = " " + ce(t32)), 0 !== o32.length || s42 && 0 != t32.length ? r32 < 0 ? me(t32) ? e32.stylize(RegExp.prototype.toString.call(t32), "regexp") : e32.stylize("[Object]", "special") : (e32.seen.push(t32), a32 = s42 ? (function(e42, t42, r42, n42, i42) {
        for (var o42 = [], u42 = 0, f42 = t42.length; u42 < f42; ++u42)
          ke(t42, String(u42)) ? o42.push(se(e42, t42, r42, n42, String(u42), true)) : o42.push("");
        return i42.forEach(function(i52) {
          i52.match(/^\d+$/) || o42.push(se(e42, t42, r42, n42, i52, true));
        }), o42;
      })(e32, t32, r32, u32, o32) : o32.map(function(n42) {
        return se(e32, t32, r32, u32, n42, s42);
      }), e32.seen.pop(), (function(e42, t42, r42) {
        var n42 = 0;
        if (e42.reduce(function(e5, t5) {
          return n42++, t5.indexOf("\n") >= 0 && n42++, e5 + t5.replace(/\u001b\[\d\d?m/g, "").length + 1;
        }, 0) > 60)
          return r42[0] + ("" === t42 ? "" : t42 + "\n ") + " " + e42.join(",\n  ") + " " + r42[1];
        return r42[0] + t42 + " " + e42.join(", ") + " " + r42[1];
      })(a32, c32, p32)) : p32[0] + c32 + p32[1];
    }
    __name2(ae, "ae");
    function ce(e32) {
      return "[" + Error.prototype.toString.call(e32) + "]";
    }
    __name2(ce, "ce");
    function se(e32, t32, r32, n32, i33, o32) {
      var u32, f32, a32;
      if ((a32 = Object.getOwnPropertyDescriptor(t32, i33) || { value: t32[i33] }).get ? f32 = a32.set ? e32.stylize("[Getter/Setter]", "special") : e32.stylize("[Getter]", "special") : a32.set && (f32 = e32.stylize("[Setter]", "special")), ke(n32, i33) || (u32 = "[" + i33 + "]"), f32 || (e32.seen.indexOf(a32.value) < 0 ? (f32 = le(r32) ? ae(e32, a32.value, null) : ae(e32, a32.value, r32 - 1)).indexOf("\n") > -1 && (f32 = o32 ? f32.split("\n").map(function(e42) {
        return "  " + e42;
      }).join("\n").substr(2) : "\n" + f32.split("\n").map(function(e42) {
        return "   " + e42;
      }).join("\n")) : f32 = e32.stylize("[Circular]", "special")), be(u32)) {
        if (o32 && i33.match(/^\d+$/))
          return f32;
        (u32 = JSON.stringify("" + i33)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (u32 = u32.substr(1, u32.length - 2), u32 = e32.stylize(u32, "name")) : (u32 = u32.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), u32 = e32.stylize(u32, "string"));
      }
      return u32 + ": " + f32;
    }
    __name2(se, "se");
    function pe(e32) {
      return Array.isArray(e32);
    }
    __name2(pe, "pe");
    function ye(e32) {
      return "boolean" == typeof e32;
    }
    __name2(ye, "ye");
    function le(e32) {
      return null === e32;
    }
    __name2(le, "le");
    function de(e32) {
      return "number" == typeof e32;
    }
    __name2(de, "de");
    function ge(e32) {
      return "string" == typeof e32;
    }
    __name2(ge, "ge");
    function be(e32) {
      return void 0 === e32;
    }
    __name2(be, "be");
    function me(e32) {
      return he(e32) && "[object RegExp]" === ve(e32);
    }
    __name2(me, "me");
    function he(e32) {
      return "object" == typeof e32 && null !== e32;
    }
    __name2(he, "he");
    function je(e32) {
      return he(e32) && "[object Date]" === ve(e32);
    }
    __name2(je, "je");
    function Ae(e32) {
      return he(e32) && ("[object Error]" === ve(e32) || e32 instanceof Error);
    }
    __name2(Ae, "Ae");
    function we(e32) {
      return "function" == typeof e32;
    }
    __name2(we, "we");
    function ve(e32) {
      return Object.prototype.toString.call(e32);
    }
    __name2(ve, "ve");
    function Oe(e32) {
      return e32 < 10 ? "0" + e32.toString(10) : e32.toString(10);
    }
    __name2(Oe, "Oe");
    X.debuglog = function(e32) {
      if (e32 = e32.toUpperCase(), !re[e32])
        if (ne.test(e32)) {
          var t32 = Y.pid;
          re[e32] = function() {
            var r32 = X.format.apply(X, arguments);
            console.error("%s %d: %s", e32, t32, r32);
          };
        } else
          re[e32] = function() {
          };
      return re[e32];
    }, X.inspect = oe, oe.colors = { bold: [1, 22], italic: [3, 23], underline: [4, 24], inverse: [7, 27], white: [37, 39], grey: [90, 39], black: [30, 39], blue: [34, 39], cyan: [36, 39], green: [32, 39], magenta: [35, 39], red: [31, 39], yellow: [33, 39] }, oe.styles = { special: "cyan", number: "yellow", boolean: "yellow", undefined: "grey", null: "bold", string: "green", date: "magenta", regexp: "red" }, X.types = o$2, X.isArray = pe, X.isBoolean = ye, X.isNull = le, X.isNullOrUndefined = function(e32) {
      return null == e32;
    }, X.isNumber = de, X.isString = ge, X.isSymbol = function(e32) {
      return "symbol" == typeof e32;
    }, X.isUndefined = be, X.isRegExp = me, X.types.isRegExp = me, X.isObject = he, X.isDate = je, X.types.isDate = je, X.isError = Ae, X.types.isNativeError = Ae, X.isFunction = we, X.isPrimitive = function(e32) {
      return null === e32 || "boolean" == typeof e32 || "number" == typeof e32 || "string" == typeof e32 || "symbol" == typeof e32 || void 0 === e32;
    }, X.isBuffer = i$1;
    var Se = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    function Be() {
      var e32 = /* @__PURE__ */ new Date(), t32 = [Oe(e32.getHours()), Oe(e32.getMinutes()), Oe(e32.getSeconds())].join(":");
      return [e32.getDate(), Se[e32.getMonth()], t32].join(" ");
    }
    __name2(Be, "Be");
    function ke(e32, t32) {
      return Object.prototype.hasOwnProperty.call(e32, t32);
    }
    __name2(ke, "ke");
    X.log = function() {
      console.log("%s - %s", Be(), X.format.apply(X, arguments));
    }, X.inherits = t$2, X._extend = function(e32, t32) {
      if (!t32 || !he(t32))
        return e32;
      for (var r32 = Object.keys(t32), n32 = r32.length; n32--; )
        e32[r32[n32]] = t32[r32[n32]];
      return e32;
    };
    var Ee = "undefined" != typeof Symbol ? Symbol("util.promisify.custom") : void 0;
    function De(e32, t32) {
      if (!e32) {
        var r32 = new Error("Promise was rejected with a falsy value");
        r32.reason = e32, e32 = r32;
      }
      return t32(e32);
    }
    __name2(De, "De");
    X.promisify = function(e32) {
      if ("function" != typeof e32)
        throw new TypeError('The "original" argument must be of type Function');
      if (Ee && e32[Ee]) {
        var t32;
        if ("function" != typeof (t32 = e32[Ee]))
          throw new TypeError('The "util.promisify.custom" argument must be of type Function');
        return Object.defineProperty(t32, Ee, { value: t32, enumerable: false, writable: false, configurable: true }), t32;
      }
      function t32() {
        for (var t42, r32, n32 = new Promise(function(e42, n42) {
          t42 = e42, r32 = n42;
        }), i33 = [], o32 = 0; o32 < arguments.length; o32++)
          i33.push(arguments[o32]);
        i33.push(function(e42, n42) {
          e42 ? r32(e42) : t42(n42);
        });
        try {
          e32.apply(this || Q, i33);
        } catch (e42) {
          r32(e42);
        }
        return n32;
      }
      __name2(t32, "t");
      return Object.setPrototypeOf(t32, Object.getPrototypeOf(e32)), Ee && Object.defineProperty(t32, Ee, { value: t32, enumerable: false, writable: false, configurable: true }), Object.defineProperties(t32, ee(e32));
    }, X.promisify.custom = Ee, X.callbackify = function(e32) {
      if ("function" != typeof e32)
        throw new TypeError('The "original" argument must be of type Function');
      function t32() {
        for (var t42 = [], r32 = 0; r32 < arguments.length; r32++)
          t42.push(arguments[r32]);
        var n32 = t42.pop();
        if ("function" != typeof n32)
          throw new TypeError("The last argument must be of type Function");
        var i33 = this || Q, o32 = /* @__PURE__ */ __name2(function() {
          return n32.apply(i33, arguments);
        }, "o");
        e32.apply(this || Q, t42).then(function(e42) {
          Y.nextTick(o32.bind(null, null, e42));
        }, function(e42) {
          Y.nextTick(De.bind(null, e42, o32));
        });
      }
      __name2(t32, "t");
      return Object.setPrototypeOf(t32, Object.getPrototypeOf(e32)), Object.defineProperties(t32, ee(e32)), t32;
    };
    X._extend;
    X.callbackify;
    X.debuglog;
    X.deprecate;
    X.format;
    X.inherits;
    X.inspect;
    X.isArray;
    X.isBoolean;
    X.isBuffer;
    X.isDate;
    X.isError;
    X.isFunction;
    X.isNull;
    X.isNullOrUndefined;
    X.isNumber;
    X.isObject;
    X.isPrimitive;
    X.isRegExp;
    X.isString;
    X.isSymbol;
    X.isUndefined;
    X.log;
    X.promisify;
    X._extend;
    X.callbackify;
    X.debuglog;
    X.deprecate;
    X.format;
    X.inherits;
    X.inspect;
    X.isArray;
    X.isBoolean;
    X.isBuffer;
    X.isDate;
    X.isError;
    X.isFunction;
    X.isNull;
    X.isNullOrUndefined;
    X.isNumber;
    X.isObject;
    X.isPrimitive;
    X.isRegExp;
    X.isString;
    X.isSymbol;
    X.isUndefined;
    X.log;
    X.promisify;
    X.types;
    X._extend;
    X.callbackify;
    X.debuglog;
    X.deprecate;
    X.format;
    X.inherits;
    var inspect2 = X.inspect;
    X.isArray;
    X.isBoolean;
    X.isBuffer;
    X.isDate;
    X.isError;
    X.isFunction;
    X.isNull;
    X.isNullOrUndefined;
    X.isNumber;
    X.isObject;
    X.isPrimitive;
    X.isRegExp;
    X.isString;
    X.isSymbol;
    X.isUndefined;
    X.log;
    X.promisify;
    X.types;
    X.TextEncoder = globalThis.TextEncoder;
    X.TextDecoder = globalThis.TextDecoder;
    var customInspectSymbol = Symbol.for("nodejs.util.inspect.custom");
    var customInspectSymbolStackLess = Symbol.for("nodejs.util.inspect.custom.stack-less");
    var _BaseError = class _BaseError extends Error {
      [customInspectSymbol](depth, options) {
        return `${this[customInspectSymbolStackLess](depth, options)}
${this.stack.slice(this.stack.indexOf("\n"))}`;
      }
    };
    __name2(_BaseError, "BaseError");
    var BaseError = _BaseError;
    var _BaseConstraintError = class _BaseConstraintError extends BaseError {
      constructor(constraint, message, given) {
        super(message);
        this.constraint = constraint;
        this.given = given;
      }
    };
    __name2(_BaseConstraintError, "BaseConstraintError");
    var BaseConstraintError = _BaseConstraintError;
    var _ExpectedConstraintError = class _ExpectedConstraintError extends BaseConstraintError {
      constructor(constraint, message, given, expected) {
        super(constraint, message, given);
        this.expected = expected;
      }
      toJSON() {
        return {
          name: this.name,
          constraint: this.constraint,
          given: this.given,
          expected: this.expected
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const constraint = options.stylize(this.constraint, "string");
        if (depth < 0) {
          return options.stylize(`[ExpectedConstraintError: ${constraint}]`, "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1 };
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const given = inspect2(this.given, newOptions).replace(/\n/g, padding);
        const header = `${options.stylize("ExpectedConstraintError", "special")} > ${constraint}`;
        const message = options.stylize(this.message, "regexp");
        const expectedBlock = `
  ${options.stylize("Expected: ", "string")}${options.stylize(this.expected, "boolean")}`;
        const givenBlock = `
  ${options.stylize("Received:", "regexp")}${padding}${given}`;
        return `${header}
  ${message}
${expectedBlock}
${givenBlock}`;
      }
    };
    __name2(_ExpectedConstraintError, "ExpectedConstraintError");
    var ExpectedConstraintError = _ExpectedConstraintError;
    function whenConstraint(key, options, validator) {
      return {
        run(input, parent) {
          if (!parent) {
            return Result.err(new ExpectedConstraintError("s.object(T.when)", "Validator has no parent", parent, "Validator to have a parent"));
          }
          const isKeyArray = Array.isArray(key);
          const value2 = isKeyArray ? key.map((k22) => get__default.default(parent, k22)) : get__default.default(parent, key);
          const predicate = resolveBooleanIs(options, value2, isKeyArray) ? options.then : options.otherwise;
          if (predicate) {
            return predicate(validator).run(input);
          }
          return Result.ok(input);
        }
      };
    }
    __name2(whenConstraint, "whenConstraint");
    function resolveBooleanIs(options, value2, isKeyArray) {
      if (options.is === void 0) {
        return isKeyArray ? !value2.some((val) => !val) : Boolean(value2);
      }
      if (typeof options.is === "function") {
        return options.is(value2);
      }
      return value2 === options.is;
    }
    __name2(resolveBooleanIs, "resolveBooleanIs");
    var _BaseValidator = class _BaseValidator {
      constructor(constraints = []) {
        this.constraints = [];
        this.isValidationEnabled = null;
        this.constraints = constraints;
      }
      setParent(parent) {
        this.parent = parent;
        return this;
      }
      get optional() {
        return new UnionValidator([new LiteralValidator(void 0), this.clone()]);
      }
      get nullable() {
        return new UnionValidator([new LiteralValidator(null), this.clone()]);
      }
      get nullish() {
        return new UnionValidator([new NullishValidator(), this.clone()]);
      }
      get array() {
        return new ArrayValidator(this.clone());
      }
      get set() {
        return new SetValidator(this.clone());
      }
      or(...predicates3) {
        return new UnionValidator([this.clone(), ...predicates3]);
      }
      transform(cb) {
        return this.addConstraint({ run: (input) => Result.ok(cb(input)) });
      }
      reshape(cb) {
        return this.addConstraint({ run: cb });
      }
      default(value2) {
        return new DefaultValidator(this.clone(), value2);
      }
      when(key, options) {
        return this.addConstraint(whenConstraint(key, options, this));
      }
      describe(description) {
        const clone = this.clone();
        clone.description = description;
        return clone;
      }
      run(value2) {
        let result = this.handle(value2);
        if (result.isErr())
          return result;
        for (const constraint of this.constraints) {
          result = constraint.run(result.value, this.parent);
          if (result.isErr())
            break;
        }
        return result;
      }
      parse(value2) {
        if (!this.shouldRunConstraints) {
          return this.handle(value2).unwrap();
        }
        return this.constraints.reduce((v22, constraint) => constraint.run(v22).unwrap(), this.handle(value2).unwrap());
      }
      is(value2) {
        return this.run(value2).isOk();
      }
      /**
       * Sets if the validator should also run constraints or just do basic checks.
       * @param isValidationEnabled Whether this validator should be enabled or disabled. You can pass boolean or a function returning boolean which will be called just before parsing.
       * Set to `null` to go off of the global configuration.
       */
      setValidationEnabled(isValidationEnabled) {
        const clone = this.clone();
        clone.isValidationEnabled = isValidationEnabled;
        return clone;
      }
      getValidationEnabled() {
        return getValue(this.isValidationEnabled);
      }
      get shouldRunConstraints() {
        return getValue(this.isValidationEnabled) ?? getGlobalValidationEnabled();
      }
      clone() {
        const clone = Reflect.construct(this.constructor, [this.constraints]);
        clone.isValidationEnabled = this.isValidationEnabled;
        return clone;
      }
      addConstraint(constraint) {
        const clone = this.clone();
        clone.constraints = clone.constraints.concat(constraint);
        return clone;
      }
    };
    __name2(_BaseValidator, "BaseValidator");
    var BaseValidator = _BaseValidator;
    function isUnique(input) {
      if (input.length < 2)
        return true;
      const uniqueArray2 = uniqWith__default.default(input, fastDeepEqual__default.default);
      return uniqueArray2.length === input.length;
    }
    __name2(isUnique, "isUnique");
    function lessThan(a32, b22) {
      return a32 < b22;
    }
    __name2(lessThan, "lessThan");
    function lessThanOrEqual(a32, b22) {
      return a32 <= b22;
    }
    __name2(lessThanOrEqual, "lessThanOrEqual");
    function greaterThan(a32, b22) {
      return a32 > b22;
    }
    __name2(greaterThan, "greaterThan");
    function greaterThanOrEqual(a32, b22) {
      return a32 >= b22;
    }
    __name2(greaterThanOrEqual, "greaterThanOrEqual");
    function equal(a32, b22) {
      return a32 === b22;
    }
    __name2(equal, "equal");
    function notEqual(a32, b22) {
      return a32 !== b22;
    }
    __name2(notEqual, "notEqual");
    function arrayLengthComparator(comparator, name, expected, length2) {
      return {
        run(input) {
          return comparator(input.length, length2) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid Array length", input, expected));
        }
      };
    }
    __name2(arrayLengthComparator, "arrayLengthComparator");
    function arrayLengthLessThan(value2) {
      const expected = `expected.length < ${value2}`;
      return arrayLengthComparator(lessThan, "s.array(T).lengthLessThan", expected, value2);
    }
    __name2(arrayLengthLessThan, "arrayLengthLessThan");
    function arrayLengthLessThanOrEqual(value2) {
      const expected = `expected.length <= ${value2}`;
      return arrayLengthComparator(lessThanOrEqual, "s.array(T).lengthLessThanOrEqual", expected, value2);
    }
    __name2(arrayLengthLessThanOrEqual, "arrayLengthLessThanOrEqual");
    function arrayLengthGreaterThan(value2) {
      const expected = `expected.length > ${value2}`;
      return arrayLengthComparator(greaterThan, "s.array(T).lengthGreaterThan", expected, value2);
    }
    __name2(arrayLengthGreaterThan, "arrayLengthGreaterThan");
    function arrayLengthGreaterThanOrEqual(value2) {
      const expected = `expected.length >= ${value2}`;
      return arrayLengthComparator(greaterThanOrEqual, "s.array(T).lengthGreaterThanOrEqual", expected, value2);
    }
    __name2(arrayLengthGreaterThanOrEqual, "arrayLengthGreaterThanOrEqual");
    function arrayLengthEqual(value2) {
      const expected = `expected.length === ${value2}`;
      return arrayLengthComparator(equal, "s.array(T).lengthEqual", expected, value2);
    }
    __name2(arrayLengthEqual, "arrayLengthEqual");
    function arrayLengthNotEqual(value2) {
      const expected = `expected.length !== ${value2}`;
      return arrayLengthComparator(notEqual, "s.array(T).lengthNotEqual", expected, value2);
    }
    __name2(arrayLengthNotEqual, "arrayLengthNotEqual");
    function arrayLengthRange(start2, endBefore) {
      const expected = `expected.length >= ${start2} && expected.length < ${endBefore}`;
      return {
        run(input) {
          return input.length >= start2 && input.length < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.array(T).lengthRange", "Invalid Array length", input, expected));
        }
      };
    }
    __name2(arrayLengthRange, "arrayLengthRange");
    function arrayLengthRangeInclusive(start2, end2) {
      const expected = `expected.length >= ${start2} && expected.length <= ${end2}`;
      return {
        run(input) {
          return input.length >= start2 && input.length <= end2 ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.array(T).lengthRangeInclusive", "Invalid Array length", input, expected));
        }
      };
    }
    __name2(arrayLengthRangeInclusive, "arrayLengthRangeInclusive");
    function arrayLengthRangeExclusive(startAfter, endBefore) {
      const expected = `expected.length > ${startAfter} && expected.length < ${endBefore}`;
      return {
        run(input) {
          return input.length > startAfter && input.length < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.array(T).lengthRangeExclusive", "Invalid Array length", input, expected));
        }
      };
    }
    __name2(arrayLengthRangeExclusive, "arrayLengthRangeExclusive");
    var uniqueArray = {
      run(input) {
        return isUnique(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.array(T).unique", "Array values are not unique", input, "Expected all values to be unique"));
      }
    };
    var _CombinedPropertyError = class _CombinedPropertyError2 extends BaseError {
      constructor(errors) {
        super("Received one or more errors");
        this.errors = errors;
      }
      [customInspectSymbolStackLess](depth, options) {
        if (depth < 0) {
          return options.stylize("[CombinedPropertyError]", "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1, compact: true };
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const header = `${options.stylize("CombinedPropertyError", "special")} (${options.stylize(this.errors.length.toString(), "number")})`;
        const message = options.stylize(this.message, "regexp");
        const errors = this.errors.map(([key, error]) => {
          const property = _CombinedPropertyError2.formatProperty(key, options);
          const body = error[customInspectSymbolStackLess](depth - 1, newOptions).replace(/\n/g, padding);
          return `  input${property}${padding}${body}`;
        }).join("\n\n");
        return `${header}
  ${message}

${errors}`;
      }
      static formatProperty(key, options) {
        if (typeof key === "string")
          return options.stylize(`.${key}`, "symbol");
        if (typeof key === "number")
          return `[${options.stylize(key.toString(), "number")}]`;
        return `[${options.stylize("Symbol", "symbol")}(${key.description})]`;
      }
    };
    __name2(_CombinedPropertyError, "CombinedPropertyError");
    var CombinedPropertyError = _CombinedPropertyError;
    var _ValidationError = class _ValidationError extends BaseError {
      constructor(validator, message, given) {
        super(message);
        this.validator = validator;
        this.given = given;
      }
      toJSON() {
        return {
          name: this.name,
          validator: this.validator,
          given: this.given
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const validator = options.stylize(this.validator, "string");
        if (depth < 0) {
          return options.stylize(`[ValidationError: ${validator}]`, "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1, compact: true };
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const given = inspect2(this.given, newOptions).replace(/\n/g, padding);
        const header = `${options.stylize("ValidationError", "special")} > ${validator}`;
        const message = options.stylize(this.message, "regexp");
        const givenBlock = `
  ${options.stylize("Received:", "regexp")}${padding}${given}`;
        return `${header}
  ${message}
${givenBlock}`;
      }
    };
    __name2(_ValidationError, "ValidationError");
    var ValidationError = _ValidationError;
    var _ArrayValidator = class _ArrayValidator extends BaseValidator {
      constructor(validator, constraints = []) {
        super(constraints);
        this.validator = validator;
      }
      lengthLessThan(length2) {
        return this.addConstraint(arrayLengthLessThan(length2));
      }
      lengthLessThanOrEqual(length2) {
        return this.addConstraint(arrayLengthLessThanOrEqual(length2));
      }
      lengthGreaterThan(length2) {
        return this.addConstraint(arrayLengthGreaterThan(length2));
      }
      lengthGreaterThanOrEqual(length2) {
        return this.addConstraint(arrayLengthGreaterThanOrEqual(length2));
      }
      lengthEqual(length2) {
        return this.addConstraint(arrayLengthEqual(length2));
      }
      lengthNotEqual(length2) {
        return this.addConstraint(arrayLengthNotEqual(length2));
      }
      lengthRange(start2, endBefore) {
        return this.addConstraint(arrayLengthRange(start2, endBefore));
      }
      lengthRangeInclusive(startAt, endAt) {
        return this.addConstraint(arrayLengthRangeInclusive(startAt, endAt));
      }
      lengthRangeExclusive(startAfter, endBefore) {
        return this.addConstraint(arrayLengthRangeExclusive(startAfter, endBefore));
      }
      get unique() {
        return this.addConstraint(uniqueArray);
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validator, this.constraints]);
      }
      handle(values) {
        if (!Array.isArray(values)) {
          return Result.err(new ValidationError("s.array(T)", "Expected an array", values));
        }
        if (!this.shouldRunConstraints) {
          return Result.ok(values);
        }
        const errors = [];
        const transformed = [];
        for (let i33 = 0; i33 < values.length; i33++) {
          const result = this.validator.run(values[i33]);
          if (result.isOk())
            transformed.push(result.value);
          else
            errors.push([i33, result.error]);
        }
        return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedPropertyError(errors));
      }
    };
    __name2(_ArrayValidator, "ArrayValidator");
    var ArrayValidator = _ArrayValidator;
    function bigintComparator(comparator, name, expected, number3) {
      return {
        run(input) {
          return comparator(input, number3) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid bigint value", input, expected));
        }
      };
    }
    __name2(bigintComparator, "bigintComparator");
    function bigintLessThan(value2) {
      const expected = `expected < ${value2}n`;
      return bigintComparator(lessThan, "s.bigint.lessThan", expected, value2);
    }
    __name2(bigintLessThan, "bigintLessThan");
    function bigintLessThanOrEqual(value2) {
      const expected = `expected <= ${value2}n`;
      return bigintComparator(lessThanOrEqual, "s.bigint.lessThanOrEqual", expected, value2);
    }
    __name2(bigintLessThanOrEqual, "bigintLessThanOrEqual");
    function bigintGreaterThan(value2) {
      const expected = `expected > ${value2}n`;
      return bigintComparator(greaterThan, "s.bigint.greaterThan", expected, value2);
    }
    __name2(bigintGreaterThan, "bigintGreaterThan");
    function bigintGreaterThanOrEqual(value2) {
      const expected = `expected >= ${value2}n`;
      return bigintComparator(greaterThanOrEqual, "s.bigint.greaterThanOrEqual", expected, value2);
    }
    __name2(bigintGreaterThanOrEqual, "bigintGreaterThanOrEqual");
    function bigintEqual(value2) {
      const expected = `expected === ${value2}n`;
      return bigintComparator(equal, "s.bigint.equal", expected, value2);
    }
    __name2(bigintEqual, "bigintEqual");
    function bigintNotEqual(value2) {
      const expected = `expected !== ${value2}n`;
      return bigintComparator(notEqual, "s.bigint.notEqual", expected, value2);
    }
    __name2(bigintNotEqual, "bigintNotEqual");
    function bigintDivisibleBy(divider) {
      const expected = `expected % ${divider}n === 0n`;
      return {
        run(input) {
          return input % divider === 0n ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.bigint.divisibleBy", "BigInt is not divisible", input, expected));
        }
      };
    }
    __name2(bigintDivisibleBy, "bigintDivisibleBy");
    var _BigIntValidator = class _BigIntValidator extends BaseValidator {
      lessThan(number3) {
        return this.addConstraint(bigintLessThan(number3));
      }
      lessThanOrEqual(number3) {
        return this.addConstraint(bigintLessThanOrEqual(number3));
      }
      greaterThan(number3) {
        return this.addConstraint(bigintGreaterThan(number3));
      }
      greaterThanOrEqual(number3) {
        return this.addConstraint(bigintGreaterThanOrEqual(number3));
      }
      equal(number3) {
        return this.addConstraint(bigintEqual(number3));
      }
      notEqual(number3) {
        return this.addConstraint(bigintNotEqual(number3));
      }
      get positive() {
        return this.greaterThanOrEqual(0n);
      }
      get negative() {
        return this.lessThan(0n);
      }
      divisibleBy(number3) {
        return this.addConstraint(bigintDivisibleBy(number3));
      }
      get abs() {
        return this.transform((value2) => value2 < 0 ? -value2 : value2);
      }
      intN(bits2) {
        return this.transform((value2) => BigInt.asIntN(bits2, value2));
      }
      uintN(bits2) {
        return this.transform((value2) => BigInt.asUintN(bits2, value2));
      }
      handle(value2) {
        return typeof value2 === "bigint" ? Result.ok(value2) : Result.err(new ValidationError("s.bigint", "Expected a bigint primitive", value2));
      }
    };
    __name2(_BigIntValidator, "BigIntValidator");
    var BigIntValidator = _BigIntValidator;
    var booleanTrue = {
      run(input) {
        return input ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.boolean.true", "Invalid boolean value", input, "true"));
      }
    };
    var booleanFalse = {
      run(input) {
        return input ? Result.err(new ExpectedConstraintError("s.boolean.false", "Invalid boolean value", input, "false")) : Result.ok(input);
      }
    };
    var _BooleanValidator = class _BooleanValidator extends BaseValidator {
      get true() {
        return this.addConstraint(booleanTrue);
      }
      get false() {
        return this.addConstraint(booleanFalse);
      }
      equal(value2) {
        return value2 ? this.true : this.false;
      }
      notEqual(value2) {
        return value2 ? this.false : this.true;
      }
      handle(value2) {
        return typeof value2 === "boolean" ? Result.ok(value2) : Result.err(new ValidationError("s.boolean", "Expected a boolean primitive", value2));
      }
    };
    __name2(_BooleanValidator, "BooleanValidator");
    var BooleanValidator = _BooleanValidator;
    function dateComparator(comparator, name, expected, number3) {
      return {
        run(input) {
          return comparator(input.getTime(), number3) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid Date value", input, expected));
        }
      };
    }
    __name2(dateComparator, "dateComparator");
    function dateLessThan(value2) {
      const expected = `expected < ${value2.toISOString()}`;
      return dateComparator(lessThan, "s.date.lessThan", expected, value2.getTime());
    }
    __name2(dateLessThan, "dateLessThan");
    function dateLessThanOrEqual(value2) {
      const expected = `expected <= ${value2.toISOString()}`;
      return dateComparator(lessThanOrEqual, "s.date.lessThanOrEqual", expected, value2.getTime());
    }
    __name2(dateLessThanOrEqual, "dateLessThanOrEqual");
    function dateGreaterThan(value2) {
      const expected = `expected > ${value2.toISOString()}`;
      return dateComparator(greaterThan, "s.date.greaterThan", expected, value2.getTime());
    }
    __name2(dateGreaterThan, "dateGreaterThan");
    function dateGreaterThanOrEqual(value2) {
      const expected = `expected >= ${value2.toISOString()}`;
      return dateComparator(greaterThanOrEqual, "s.date.greaterThanOrEqual", expected, value2.getTime());
    }
    __name2(dateGreaterThanOrEqual, "dateGreaterThanOrEqual");
    function dateEqual(value2) {
      const expected = `expected === ${value2.toISOString()}`;
      return dateComparator(equal, "s.date.equal", expected, value2.getTime());
    }
    __name2(dateEqual, "dateEqual");
    function dateNotEqual(value2) {
      const expected = `expected !== ${value2.toISOString()}`;
      return dateComparator(notEqual, "s.date.notEqual", expected, value2.getTime());
    }
    __name2(dateNotEqual, "dateNotEqual");
    var dateInvalid = {
      run(input) {
        return Number.isNaN(input.getTime()) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.date.invalid", "Invalid Date value", input, "expected === NaN"));
      }
    };
    var dateValid = {
      run(input) {
        return Number.isNaN(input.getTime()) ? Result.err(new ExpectedConstraintError("s.date.valid", "Invalid Date value", input, "expected !== NaN")) : Result.ok(input);
      }
    };
    var _DateValidator = class _DateValidator extends BaseValidator {
      lessThan(date) {
        return this.addConstraint(dateLessThan(new Date(date)));
      }
      lessThanOrEqual(date) {
        return this.addConstraint(dateLessThanOrEqual(new Date(date)));
      }
      greaterThan(date) {
        return this.addConstraint(dateGreaterThan(new Date(date)));
      }
      greaterThanOrEqual(date) {
        return this.addConstraint(dateGreaterThanOrEqual(new Date(date)));
      }
      equal(date) {
        const resolved = new Date(date);
        return Number.isNaN(resolved.getTime()) ? this.invalid : this.addConstraint(dateEqual(resolved));
      }
      notEqual(date) {
        const resolved = new Date(date);
        return Number.isNaN(resolved.getTime()) ? this.valid : this.addConstraint(dateNotEqual(resolved));
      }
      get valid() {
        return this.addConstraint(dateValid);
      }
      get invalid() {
        return this.addConstraint(dateInvalid);
      }
      handle(value2) {
        return value2 instanceof Date ? Result.ok(value2) : Result.err(new ValidationError("s.date", "Expected a Date", value2));
      }
    };
    __name2(_DateValidator, "DateValidator");
    var DateValidator = _DateValidator;
    var _ExpectedValidationError = class _ExpectedValidationError extends ValidationError {
      constructor(validator, message, given, expected) {
        super(validator, message, given);
        this.expected = expected;
      }
      toJSON() {
        return {
          name: this.name,
          validator: this.validator,
          given: this.given,
          expected: this.expected
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const validator = options.stylize(this.validator, "string");
        if (depth < 0) {
          return options.stylize(`[ExpectedValidationError: ${validator}]`, "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1 };
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const expected = inspect2(this.expected, newOptions).replace(/\n/g, padding);
        const given = inspect2(this.given, newOptions).replace(/\n/g, padding);
        const header = `${options.stylize("ExpectedValidationError", "special")} > ${validator}`;
        const message = options.stylize(this.message, "regexp");
        const expectedBlock = `
  ${options.stylize("Expected:", "string")}${padding}${expected}`;
        const givenBlock = `
  ${options.stylize("Received:", "regexp")}${padding}${given}`;
        return `${header}
  ${message}
${expectedBlock}
${givenBlock}`;
      }
    };
    __name2(_ExpectedValidationError, "ExpectedValidationError");
    var ExpectedValidationError = _ExpectedValidationError;
    var _InstanceValidator = class _InstanceValidator extends BaseValidator {
      constructor(expected, constraints = []) {
        super(constraints);
        this.expected = expected;
      }
      handle(value2) {
        return value2 instanceof this.expected ? Result.ok(value2) : Result.err(new ExpectedValidationError("s.instance(V)", "Expected", value2, this.expected));
      }
      clone() {
        return Reflect.construct(this.constructor, [this.expected, this.constraints]);
      }
    };
    __name2(_InstanceValidator, "InstanceValidator");
    var InstanceValidator = _InstanceValidator;
    var _LiteralValidator = class _LiteralValidator extends BaseValidator {
      constructor(literal, constraints = []) {
        super(constraints);
        this.expected = literal;
      }
      handle(value2) {
        return Object.is(value2, this.expected) ? Result.ok(value2) : Result.err(new ExpectedValidationError("s.literal(V)", "Expected values to be equals", value2, this.expected));
      }
      clone() {
        return Reflect.construct(this.constructor, [this.expected, this.constraints]);
      }
    };
    __name2(_LiteralValidator, "LiteralValidator");
    var LiteralValidator = _LiteralValidator;
    var _NeverValidator = class _NeverValidator extends BaseValidator {
      handle(value2) {
        return Result.err(new ValidationError("s.never", "Expected a value to not be passed", value2));
      }
    };
    __name2(_NeverValidator, "NeverValidator");
    var NeverValidator = _NeverValidator;
    var _NullishValidator = class _NullishValidator extends BaseValidator {
      handle(value2) {
        return value2 === void 0 || value2 === null ? Result.ok(value2) : Result.err(new ValidationError("s.nullish", "Expected undefined or null", value2));
      }
    };
    __name2(_NullishValidator, "NullishValidator");
    var NullishValidator = _NullishValidator;
    function numberComparator(comparator, name, expected, number3) {
      return {
        run(input) {
          return comparator(input, number3) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid number value", input, expected));
        }
      };
    }
    __name2(numberComparator, "numberComparator");
    function numberLessThan(value2) {
      const expected = `expected < ${value2}`;
      return numberComparator(lessThan, "s.number.lessThan", expected, value2);
    }
    __name2(numberLessThan, "numberLessThan");
    function numberLessThanOrEqual(value2) {
      const expected = `expected <= ${value2}`;
      return numberComparator(lessThanOrEqual, "s.number.lessThanOrEqual", expected, value2);
    }
    __name2(numberLessThanOrEqual, "numberLessThanOrEqual");
    function numberGreaterThan(value2) {
      const expected = `expected > ${value2}`;
      return numberComparator(greaterThan, "s.number.greaterThan", expected, value2);
    }
    __name2(numberGreaterThan, "numberGreaterThan");
    function numberGreaterThanOrEqual(value2) {
      const expected = `expected >= ${value2}`;
      return numberComparator(greaterThanOrEqual, "s.number.greaterThanOrEqual", expected, value2);
    }
    __name2(numberGreaterThanOrEqual, "numberGreaterThanOrEqual");
    function numberEqual(value2) {
      const expected = `expected === ${value2}`;
      return numberComparator(equal, "s.number.equal", expected, value2);
    }
    __name2(numberEqual, "numberEqual");
    function numberNotEqual(value2) {
      const expected = `expected !== ${value2}`;
      return numberComparator(notEqual, "s.number.notEqual", expected, value2);
    }
    __name2(numberNotEqual, "numberNotEqual");
    var numberInt = {
      run(input) {
        return Number.isInteger(input) ? Result.ok(input) : Result.err(
          new ExpectedConstraintError("s.number.int", "Given value is not an integer", input, "Number.isInteger(expected) to be true")
        );
      }
    };
    var numberSafeInt = {
      run(input) {
        return Number.isSafeInteger(input) ? Result.ok(input) : Result.err(
          new ExpectedConstraintError(
            "s.number.safeInt",
            "Given value is not a safe integer",
            input,
            "Number.isSafeInteger(expected) to be true"
          )
        );
      }
    };
    var numberFinite = {
      run(input) {
        return Number.isFinite(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.number.finite", "Given value is not finite", input, "Number.isFinite(expected) to be true"));
      }
    };
    var numberNaN = {
      run(input) {
        return Number.isNaN(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.number.equal(NaN)", "Invalid number value", input, "expected === NaN"));
      }
    };
    var numberNotNaN = {
      run(input) {
        return Number.isNaN(input) ? Result.err(new ExpectedConstraintError("s.number.notEqual(NaN)", "Invalid number value", input, "expected !== NaN")) : Result.ok(input);
      }
    };
    function numberDivisibleBy(divider) {
      const expected = `expected % ${divider} === 0`;
      return {
        run(input) {
          return input % divider === 0 ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.number.divisibleBy", "Number is not divisible", input, expected));
        }
      };
    }
    __name2(numberDivisibleBy, "numberDivisibleBy");
    var _NumberValidator = class _NumberValidator extends BaseValidator {
      lessThan(number3) {
        return this.addConstraint(numberLessThan(number3));
      }
      lessThanOrEqual(number3) {
        return this.addConstraint(numberLessThanOrEqual(number3));
      }
      greaterThan(number3) {
        return this.addConstraint(numberGreaterThan(number3));
      }
      greaterThanOrEqual(number3) {
        return this.addConstraint(numberGreaterThanOrEqual(number3));
      }
      equal(number3) {
        return Number.isNaN(number3) ? this.addConstraint(numberNaN) : this.addConstraint(numberEqual(number3));
      }
      notEqual(number3) {
        return Number.isNaN(number3) ? this.addConstraint(numberNotNaN) : this.addConstraint(numberNotEqual(number3));
      }
      get int() {
        return this.addConstraint(numberInt);
      }
      get safeInt() {
        return this.addConstraint(numberSafeInt);
      }
      get finite() {
        return this.addConstraint(numberFinite);
      }
      get positive() {
        return this.greaterThanOrEqual(0);
      }
      get negative() {
        return this.lessThan(0);
      }
      divisibleBy(divider) {
        return this.addConstraint(numberDivisibleBy(divider));
      }
      get abs() {
        return this.transform(Math.abs);
      }
      get sign() {
        return this.transform(Math.sign);
      }
      get trunc() {
        return this.transform(Math.trunc);
      }
      get floor() {
        return this.transform(Math.floor);
      }
      get fround() {
        return this.transform(Math.fround);
      }
      get round() {
        return this.transform(Math.round);
      }
      get ceil() {
        return this.transform(Math.ceil);
      }
      handle(value2) {
        return typeof value2 === "number" ? Result.ok(value2) : Result.err(new ValidationError("s.number", "Expected a number primitive", value2));
      }
    };
    __name2(_NumberValidator, "NumberValidator");
    var NumberValidator = _NumberValidator;
    var _MissingPropertyError = class _MissingPropertyError extends BaseError {
      constructor(property) {
        super("A required property is missing");
        this.property = property;
      }
      toJSON() {
        return {
          name: this.name,
          property: this.property
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const property = options.stylize(this.property.toString(), "string");
        if (depth < 0) {
          return options.stylize(`[MissingPropertyError: ${property}]`, "special");
        }
        const header = `${options.stylize("MissingPropertyError", "special")} > ${property}`;
        const message = options.stylize(this.message, "regexp");
        return `${header}
  ${message}`;
      }
    };
    __name2(_MissingPropertyError, "MissingPropertyError");
    var MissingPropertyError = _MissingPropertyError;
    var _UnknownPropertyError = class _UnknownPropertyError extends BaseError {
      constructor(property, value2) {
        super("Received unexpected property");
        this.property = property;
        this.value = value2;
      }
      toJSON() {
        return {
          name: this.name,
          property: this.property,
          value: this.value
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const property = options.stylize(this.property.toString(), "string");
        if (depth < 0) {
          return options.stylize(`[UnknownPropertyError: ${property}]`, "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1, compact: true };
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const given = inspect2(this.value, newOptions).replace(/\n/g, padding);
        const header = `${options.stylize("UnknownPropertyError", "special")} > ${property}`;
        const message = options.stylize(this.message, "regexp");
        const givenBlock = `
  ${options.stylize("Received:", "regexp")}${padding}${given}`;
        return `${header}
  ${message}
${givenBlock}`;
      }
    };
    __name2(_UnknownPropertyError, "UnknownPropertyError");
    var UnknownPropertyError = _UnknownPropertyError;
    var _DefaultValidator = class _DefaultValidator extends BaseValidator {
      constructor(validator, value2, constraints = []) {
        super(constraints);
        this.validator = validator;
        this.defaultValue = value2;
      }
      default(value2) {
        const clone = this.clone();
        clone.defaultValue = value2;
        return clone;
      }
      handle(value2) {
        return typeof value2 === "undefined" ? Result.ok(getValue(this.defaultValue)) : this.validator["handle"](value2);
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validator, this.defaultValue, this.constraints]);
      }
    };
    __name2(_DefaultValidator, "DefaultValidator");
    var DefaultValidator = _DefaultValidator;
    var _CombinedError = class _CombinedError extends BaseError {
      constructor(errors) {
        super("Received one or more errors");
        this.errors = errors;
      }
      [customInspectSymbolStackLess](depth, options) {
        if (depth < 0) {
          return options.stylize("[CombinedError]", "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1, compact: true };
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const header = `${options.stylize("CombinedError", "special")} (${options.stylize(this.errors.length.toString(), "number")})`;
        const message = options.stylize(this.message, "regexp");
        const errors = this.errors.map((error, i33) => {
          const index2 = options.stylize((i33 + 1).toString(), "number");
          const body = error[customInspectSymbolStackLess](depth - 1, newOptions).replace(/\n/g, padding);
          return `  ${index2} ${body}`;
        }).join("\n\n");
        return `${header}
  ${message}

${errors}`;
      }
    };
    __name2(_CombinedError, "CombinedError");
    var CombinedError = _CombinedError;
    var _UnionValidator = class _UnionValidator2 extends BaseValidator {
      constructor(validators4, constraints = []) {
        super(constraints);
        this.validators = validators4;
      }
      get optional() {
        if (this.validators.length === 0)
          return new _UnionValidator2([new LiteralValidator(void 0)], this.constraints);
        const [validator] = this.validators;
        if (validator instanceof LiteralValidator) {
          if (validator.expected === void 0)
            return this.clone();
          if (validator.expected === null) {
            return new _UnionValidator2(
              [new NullishValidator(), ...this.validators.slice(1)],
              this.constraints
            );
          }
        } else if (validator instanceof NullishValidator) {
          return this.clone();
        }
        return new _UnionValidator2([new LiteralValidator(void 0), ...this.validators]);
      }
      get required() {
        if (this.validators.length === 0)
          return this.clone();
        const [validator] = this.validators;
        if (validator instanceof LiteralValidator) {
          if (validator.expected === void 0)
            return new _UnionValidator2(this.validators.slice(1), this.constraints);
        } else if (validator instanceof NullishValidator) {
          return new _UnionValidator2([new LiteralValidator(null), ...this.validators.slice(1)], this.constraints);
        }
        return this.clone();
      }
      get nullable() {
        if (this.validators.length === 0)
          return new _UnionValidator2([new LiteralValidator(null)], this.constraints);
        const [validator] = this.validators;
        if (validator instanceof LiteralValidator) {
          if (validator.expected === null)
            return this.clone();
          if (validator.expected === void 0) {
            return new _UnionValidator2(
              [new NullishValidator(), ...this.validators.slice(1)],
              this.constraints
            );
          }
        } else if (validator instanceof NullishValidator) {
          return this.clone();
        }
        return new _UnionValidator2([new LiteralValidator(null), ...this.validators]);
      }
      get nullish() {
        if (this.validators.length === 0)
          return new _UnionValidator2([new NullishValidator()], this.constraints);
        const [validator] = this.validators;
        if (validator instanceof LiteralValidator) {
          if (validator.expected === null || validator.expected === void 0) {
            return new _UnionValidator2([new NullishValidator(), ...this.validators.slice(1)], this.constraints);
          }
        } else if (validator instanceof NullishValidator) {
          return this.clone();
        }
        return new _UnionValidator2([new NullishValidator(), ...this.validators]);
      }
      or(...predicates3) {
        return new _UnionValidator2([...this.validators, ...predicates3]);
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validators, this.constraints]);
      }
      handle(value2) {
        const errors = [];
        for (const validator of this.validators) {
          const result = validator.run(value2);
          if (result.isOk())
            return result;
          errors.push(result.error);
        }
        return Result.err(new CombinedError(errors));
      }
    };
    __name2(_UnionValidator, "UnionValidator");
    var UnionValidator = _UnionValidator;
    var _ObjectValidator = class _ObjectValidator2 extends BaseValidator {
      constructor(shape, strategy = 0, constraints = []) {
        super(constraints);
        this.keys = [];
        this.requiredKeys = /* @__PURE__ */ new Map();
        this.possiblyUndefinedKeys = /* @__PURE__ */ new Map();
        this.possiblyUndefinedKeysWithDefaults = /* @__PURE__ */ new Map();
        this.shape = shape;
        this.strategy = strategy;
        switch (this.strategy) {
          case 0:
            this.handleStrategy = (value2) => this.handleIgnoreStrategy(value2);
            break;
          case 1: {
            this.handleStrategy = (value2) => this.handleStrictStrategy(value2);
            break;
          }
          case 2:
            this.handleStrategy = (value2) => this.handlePassthroughStrategy(value2);
            break;
        }
        const shapeEntries = Object.entries(shape);
        this.keys = shapeEntries.map(([key]) => key);
        for (const [key, validator] of shapeEntries) {
          if (validator instanceof UnionValidator) {
            const [possiblyLiteralOrNullishPredicate] = validator["validators"];
            if (possiblyLiteralOrNullishPredicate instanceof NullishValidator) {
              this.possiblyUndefinedKeys.set(key, validator);
            } else if (possiblyLiteralOrNullishPredicate instanceof LiteralValidator) {
              if (possiblyLiteralOrNullishPredicate.expected === void 0) {
                this.possiblyUndefinedKeys.set(key, validator);
              } else {
                this.requiredKeys.set(key, validator);
              }
            } else if (validator instanceof DefaultValidator) {
              this.possiblyUndefinedKeysWithDefaults.set(key, validator);
            } else {
              this.requiredKeys.set(key, validator);
            }
          } else if (validator instanceof NullishValidator) {
            this.possiblyUndefinedKeys.set(key, validator);
          } else if (validator instanceof LiteralValidator) {
            if (validator.expected === void 0) {
              this.possiblyUndefinedKeys.set(key, validator);
            } else {
              this.requiredKeys.set(key, validator);
            }
          } else if (validator instanceof DefaultValidator) {
            this.possiblyUndefinedKeysWithDefaults.set(key, validator);
          } else {
            this.requiredKeys.set(key, validator);
          }
        }
      }
      get strict() {
        return Reflect.construct(this.constructor, [this.shape, 1, this.constraints]);
      }
      get ignore() {
        return Reflect.construct(this.constructor, [this.shape, 0, this.constraints]);
      }
      get passthrough() {
        return Reflect.construct(this.constructor, [this.shape, 2, this.constraints]);
      }
      get partial() {
        const shape = Object.fromEntries(this.keys.map((key) => [key, this.shape[key].optional]));
        return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]);
      }
      get required() {
        const shape = Object.fromEntries(
          this.keys.map((key) => {
            let validator = this.shape[key];
            if (validator instanceof UnionValidator)
              validator = validator.required;
            return [key, validator];
          })
        );
        return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]);
      }
      extend(schema) {
        const shape = { ...this.shape, ...schema instanceof _ObjectValidator2 ? schema.shape : schema };
        return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]);
      }
      pick(keys2) {
        const shape = Object.fromEntries(
          keys2.filter((key) => this.keys.includes(key)).map((key) => [key, this.shape[key]])
        );
        return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]);
      }
      omit(keys2) {
        const shape = Object.fromEntries(
          this.keys.filter((key) => !keys2.includes(key)).map((key) => [key, this.shape[key]])
        );
        return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]);
      }
      handle(value2) {
        const typeOfValue = typeof value2;
        if (typeOfValue !== "object") {
          return Result.err(new ValidationError("s.object(T)", `Expected the value to be an object, but received ${typeOfValue} instead`, value2));
        }
        if (value2 === null) {
          return Result.err(new ValidationError("s.object(T)", "Expected the value to not be null", value2));
        }
        if (Array.isArray(value2)) {
          return Result.err(new ValidationError("s.object(T)", "Expected the value to not be an array", value2));
        }
        if (!this.shouldRunConstraints) {
          return Result.ok(value2);
        }
        for (const predicate of Object.values(this.shape)) {
          predicate.setParent(this.parent ?? value2);
        }
        return this.handleStrategy(value2);
      }
      clone() {
        return Reflect.construct(this.constructor, [this.shape, this.strategy, this.constraints]);
      }
      handleIgnoreStrategy(value2) {
        const errors = [];
        const finalObject = {};
        const inputEntries = new Map(Object.entries(value2));
        const runPredicate = /* @__PURE__ */ __name2((key, predicate) => {
          const result = predicate.run(value2[key]);
          if (result.isOk()) {
            finalObject[key] = result.value;
          } else {
            const error = result.error;
            errors.push([key, error]);
          }
        }, "runPredicate");
        for (const [key, predicate] of this.requiredKeys) {
          if (inputEntries.delete(key)) {
            runPredicate(key, predicate);
          } else {
            errors.push([key, new MissingPropertyError(key)]);
          }
        }
        for (const [key, validator] of this.possiblyUndefinedKeysWithDefaults) {
          inputEntries.delete(key);
          runPredicate(key, validator);
        }
        if (inputEntries.size === 0) {
          return errors.length === 0 ? Result.ok(finalObject) : Result.err(new CombinedPropertyError(errors));
        }
        const checkInputEntriesInsteadOfSchemaKeys = this.possiblyUndefinedKeys.size > inputEntries.size;
        if (checkInputEntriesInsteadOfSchemaKeys) {
          for (const [key] of inputEntries) {
            const predicate = this.possiblyUndefinedKeys.get(key);
            if (predicate) {
              runPredicate(key, predicate);
            }
          }
        } else {
          for (const [key, predicate] of this.possiblyUndefinedKeys) {
            if (inputEntries.delete(key)) {
              runPredicate(key, predicate);
            }
          }
        }
        return errors.length === 0 ? Result.ok(finalObject) : Result.err(new CombinedPropertyError(errors));
      }
      handleStrictStrategy(value2) {
        const errors = [];
        const finalResult = {};
        const inputEntries = new Map(Object.entries(value2));
        const runPredicate = /* @__PURE__ */ __name2((key, predicate) => {
          const result = predicate.run(value2[key]);
          if (result.isOk()) {
            finalResult[key] = result.value;
          } else {
            const error = result.error;
            errors.push([key, error]);
          }
        }, "runPredicate");
        for (const [key, predicate] of this.requiredKeys) {
          if (inputEntries.delete(key)) {
            runPredicate(key, predicate);
          } else {
            errors.push([key, new MissingPropertyError(key)]);
          }
        }
        for (const [key, validator] of this.possiblyUndefinedKeysWithDefaults) {
          inputEntries.delete(key);
          runPredicate(key, validator);
        }
        for (const [key, predicate] of this.possiblyUndefinedKeys) {
          if (inputEntries.size === 0) {
            break;
          }
          if (inputEntries.delete(key)) {
            runPredicate(key, predicate);
          }
        }
        if (inputEntries.size !== 0) {
          for (const [key, value22] of inputEntries.entries()) {
            errors.push([key, new UnknownPropertyError(key, value22)]);
          }
        }
        return errors.length === 0 ? Result.ok(finalResult) : Result.err(new CombinedPropertyError(errors));
      }
      handlePassthroughStrategy(value2) {
        const result = this.handleIgnoreStrategy(value2);
        return result.isErr() ? result : Result.ok({ ...value2, ...result.value });
      }
    };
    __name2(_ObjectValidator, "ObjectValidator");
    var ObjectValidator = _ObjectValidator;
    var _PassthroughValidator = class _PassthroughValidator extends BaseValidator {
      handle(value2) {
        return Result.ok(value2);
      }
    };
    __name2(_PassthroughValidator, "PassthroughValidator");
    var PassthroughValidator = _PassthroughValidator;
    var _RecordValidator = class _RecordValidator extends BaseValidator {
      constructor(validator, constraints = []) {
        super(constraints);
        this.validator = validator;
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validator, this.constraints]);
      }
      handle(value2) {
        if (typeof value2 !== "object") {
          return Result.err(new ValidationError("s.record(T)", "Expected an object", value2));
        }
        if (value2 === null) {
          return Result.err(new ValidationError("s.record(T)", "Expected the value to not be null", value2));
        }
        if (Array.isArray(value2)) {
          return Result.err(new ValidationError("s.record(T)", "Expected the value to not be an array", value2));
        }
        if (!this.shouldRunConstraints) {
          return Result.ok(value2);
        }
        const errors = [];
        const transformed = {};
        for (const [key, val] of Object.entries(value2)) {
          const result = this.validator.run(val);
          if (result.isOk())
            transformed[key] = result.value;
          else
            errors.push([key, result.error]);
        }
        return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedPropertyError(errors));
      }
    };
    __name2(_RecordValidator, "RecordValidator");
    var RecordValidator = _RecordValidator;
    var _SetValidator = class _SetValidator extends BaseValidator {
      constructor(validator, constraints = []) {
        super(constraints);
        this.validator = validator;
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validator, this.constraints]);
      }
      handle(values) {
        if (!(values instanceof Set)) {
          return Result.err(new ValidationError("s.set(T)", "Expected a set", values));
        }
        if (!this.shouldRunConstraints) {
          return Result.ok(values);
        }
        const errors = [];
        const transformed = /* @__PURE__ */ new Set();
        for (const value2 of values) {
          const result = this.validator.run(value2);
          if (result.isOk())
            transformed.add(result.value);
          else
            errors.push(result.error);
        }
        return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedError(errors));
      }
    };
    __name2(_SetValidator, "SetValidator");
    var SetValidator = _SetValidator;
    var accountRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_+-\.]*)[A-Z0-9_+-]$/i;
    function validateEmail(email) {
      if (!email)
        return false;
      const atIndex = email.indexOf("@");
      if (atIndex === -1)
        return false;
      if (atIndex > 64)
        return false;
      const domainIndex = atIndex + 1;
      if (email.includes("@", domainIndex))
        return false;
      if (email.length - domainIndex > 255)
        return false;
      let dotIndex = email.indexOf(".", domainIndex);
      if (dotIndex === -1)
        return false;
      let lastDotIndex = domainIndex;
      do {
        if (dotIndex - lastDotIndex > 63)
          return false;
        lastDotIndex = dotIndex + 1;
      } while ((dotIndex = email.indexOf(".", lastDotIndex)) !== -1);
      if (email.length - lastDotIndex > 63)
        return false;
      return accountRegex.test(email.slice(0, atIndex)) && validateEmailDomain(email.slice(domainIndex));
    }
    __name2(validateEmail, "validateEmail");
    function validateEmailDomain(domain) {
      try {
        return new URL(`http://${domain}`).hostname === domain;
      } catch {
        return false;
      }
    }
    __name2(validateEmailDomain, "validateEmailDomain");
    var v4Seg = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])";
    var v4Str = `(${v4Seg}[.]){3}${v4Seg}`;
    var IPv4Reg = new RegExp(`^${v4Str}$`);
    var v6Seg = "(?:[0-9a-fA-F]{1,4})";
    var IPv6Reg = new RegExp(
      `^((?:${v6Seg}:){7}(?:${v6Seg}|:)|(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:)))(%[0-9a-zA-Z-.:]{1,})?$`
    );
    function isIPv4(s42) {
      return IPv4Reg.test(s42);
    }
    __name2(isIPv4, "isIPv4");
    function isIPv63(s42) {
      return IPv6Reg.test(s42);
    }
    __name2(isIPv63, "isIPv6");
    function isIP(s42) {
      if (isIPv4(s42))
        return 4;
      if (isIPv63(s42))
        return 6;
      return 0;
    }
    __name2(isIP, "isIP");
    var phoneNumberRegex = /^((?:\+|0{0,2})\d{1,2}\s?)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/;
    function validatePhoneNumber(input) {
      return phoneNumberRegex.test(input);
    }
    __name2(validatePhoneNumber, "validatePhoneNumber");
    var _MultiplePossibilitiesConstraintError = class _MultiplePossibilitiesConstraintError extends BaseConstraintError {
      constructor(constraint, message, given, expected) {
        super(constraint, message, given);
        this.expected = expected;
      }
      toJSON() {
        return {
          name: this.name,
          constraint: this.constraint,
          given: this.given,
          expected: this.expected
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const constraint = options.stylize(this.constraint, "string");
        if (depth < 0) {
          return options.stylize(`[MultiplePossibilitiesConstraintError: ${constraint}]`, "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1 };
        const verticalLine = options.stylize("|", "undefined");
        const padding = `
  ${verticalLine} `;
        const given = inspect2(this.given, newOptions).replace(/\n/g, padding);
        const header = `${options.stylize("MultiplePossibilitiesConstraintError", "special")} > ${constraint}`;
        const message = options.stylize(this.message, "regexp");
        const expectedPadding = `
  ${verticalLine} - `;
        const expectedBlock = `
  ${options.stylize("Expected any of the following:", "string")}${expectedPadding}${this.expected.map((possible) => options.stylize(possible, "boolean")).join(expectedPadding)}`;
        const givenBlock = `
  ${options.stylize("Received:", "regexp")}${padding}${given}`;
        return `${header}
  ${message}
${expectedBlock}
${givenBlock}`;
      }
    };
    __name2(_MultiplePossibilitiesConstraintError, "MultiplePossibilitiesConstraintError");
    var MultiplePossibilitiesConstraintError = _MultiplePossibilitiesConstraintError;
    function combinedErrorFn(...fns) {
      switch (fns.length) {
        case 0:
          return () => null;
        case 1:
          return fns[0];
        case 2: {
          const [fn0, fn1] = fns;
          return (...params) => fn0(...params) || fn1(...params);
        }
        default: {
          return (...params) => {
            for (const fn of fns) {
              const result = fn(...params);
              if (result)
                return result;
            }
            return null;
          };
        }
      }
    }
    __name2(combinedErrorFn, "combinedErrorFn");
    function createUrlValidators(options) {
      const fns = [];
      if (options?.allowedProtocols?.length)
        fns.push(allowedProtocolsFn(options.allowedProtocols));
      if (options?.allowedDomains?.length)
        fns.push(allowedDomainsFn(options.allowedDomains));
      return combinedErrorFn(...fns);
    }
    __name2(createUrlValidators, "createUrlValidators");
    function allowedProtocolsFn(allowedProtocols) {
      return (input, url3) => allowedProtocols.includes(url3.protocol) ? null : new MultiplePossibilitiesConstraintError("s.string.url", "Invalid URL protocol", input, allowedProtocols);
    }
    __name2(allowedProtocolsFn, "allowedProtocolsFn");
    function allowedDomainsFn(allowedDomains) {
      return (input, url3) => allowedDomains.includes(url3.hostname) ? null : new MultiplePossibilitiesConstraintError("s.string.url", "Invalid URL domain", input, allowedDomains);
    }
    __name2(allowedDomainsFn, "allowedDomainsFn");
    function stringLengthComparator(comparator, name, expected, length2) {
      return {
        run(input) {
          return comparator(input.length, length2) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid string length", input, expected));
        }
      };
    }
    __name2(stringLengthComparator, "stringLengthComparator");
    function stringLengthLessThan(length2) {
      const expected = `expected.length < ${length2}`;
      return stringLengthComparator(lessThan, "s.string.lengthLessThan", expected, length2);
    }
    __name2(stringLengthLessThan, "stringLengthLessThan");
    function stringLengthLessThanOrEqual(length2) {
      const expected = `expected.length <= ${length2}`;
      return stringLengthComparator(lessThanOrEqual, "s.string.lengthLessThanOrEqual", expected, length2);
    }
    __name2(stringLengthLessThanOrEqual, "stringLengthLessThanOrEqual");
    function stringLengthGreaterThan(length2) {
      const expected = `expected.length > ${length2}`;
      return stringLengthComparator(greaterThan, "s.string.lengthGreaterThan", expected, length2);
    }
    __name2(stringLengthGreaterThan, "stringLengthGreaterThan");
    function stringLengthGreaterThanOrEqual(length2) {
      const expected = `expected.length >= ${length2}`;
      return stringLengthComparator(greaterThanOrEqual, "s.string.lengthGreaterThanOrEqual", expected, length2);
    }
    __name2(stringLengthGreaterThanOrEqual, "stringLengthGreaterThanOrEqual");
    function stringLengthEqual(length2) {
      const expected = `expected.length === ${length2}`;
      return stringLengthComparator(equal, "s.string.lengthEqual", expected, length2);
    }
    __name2(stringLengthEqual, "stringLengthEqual");
    function stringLengthNotEqual(length2) {
      const expected = `expected.length !== ${length2}`;
      return stringLengthComparator(notEqual, "s.string.lengthNotEqual", expected, length2);
    }
    __name2(stringLengthNotEqual, "stringLengthNotEqual");
    function stringEmail() {
      return {
        run(input) {
          return validateEmail(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.string.email", "Invalid email address", input, "expected to be an email address"));
        }
      };
    }
    __name2(stringEmail, "stringEmail");
    function stringRegexValidator(type, expected, regex2) {
      return {
        run(input) {
          return regex2.test(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError(type, "Invalid string format", input, expected));
        }
      };
    }
    __name2(stringRegexValidator, "stringRegexValidator");
    function stringUrl(options) {
      const validatorFn = createUrlValidators(options);
      return {
        run(input) {
          let url3;
          try {
            url3 = new URL(input);
          } catch {
            return Result.err(new ExpectedConstraintError("s.string.url", "Invalid URL", input, "expected to match a URL"));
          }
          const validatorFnResult = validatorFn(input, url3);
          if (validatorFnResult === null)
            return Result.ok(input);
          return Result.err(validatorFnResult);
        }
      };
    }
    __name2(stringUrl, "stringUrl");
    function stringIp(version2) {
      const ipVersion = version2 ? `v${version2}` : "";
      const validatorFn = version2 === 4 ? isIPv4 : version2 === 6 ? isIPv63 : isIP;
      const name = `s.string.ip${ipVersion}`;
      const message = `Invalid IP${ipVersion} address`;
      const expected = `expected to be an IP${ipVersion} address`;
      return {
        run(input) {
          return validatorFn(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, message, input, expected));
        }
      };
    }
    __name2(stringIp, "stringIp");
    function stringRegex(regex2) {
      return stringRegexValidator("s.string.regex", `expected ${regex2}.test(expected) to be true`, regex2);
    }
    __name2(stringRegex, "stringRegex");
    function stringUuid({ version: version2 = 4, nullable = false } = {}) {
      version2 ?? (version2 = "1-5");
      const regex2 = new RegExp(
        `^(?:[0-9A-F]{8}-[0-9A-F]{4}-[${version2}][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}${nullable ? "|00000000-0000-0000-0000-000000000000" : ""})$`,
        "i"
      );
      const expected = `expected to match UUID${typeof version2 === "number" ? `v${version2}` : ` in range of ${version2}`}`;
      return stringRegexValidator("s.string.uuid", expected, regex2);
    }
    __name2(stringUuid, "stringUuid");
    function stringDate() {
      return {
        run(input) {
          const time = Date.parse(input);
          return Number.isNaN(time) ? Result.err(
            new ExpectedConstraintError(
              "s.string.date",
              "Invalid date string",
              input,
              "expected to be a valid date string (in the ISO 8601 or ECMA-262 format)"
            )
          ) : Result.ok(input);
        }
      };
    }
    __name2(stringDate, "stringDate");
    function stringPhone() {
      return {
        run(input) {
          return validatePhoneNumber(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.string.phone", "Invalid phone number", input, "expected to be a phone number"));
        }
      };
    }
    __name2(stringPhone, "stringPhone");
    var _StringValidator = class _StringValidator extends BaseValidator {
      lengthLessThan(length2) {
        return this.addConstraint(stringLengthLessThan(length2));
      }
      lengthLessThanOrEqual(length2) {
        return this.addConstraint(stringLengthLessThanOrEqual(length2));
      }
      lengthGreaterThan(length2) {
        return this.addConstraint(stringLengthGreaterThan(length2));
      }
      lengthGreaterThanOrEqual(length2) {
        return this.addConstraint(stringLengthGreaterThanOrEqual(length2));
      }
      lengthEqual(length2) {
        return this.addConstraint(stringLengthEqual(length2));
      }
      lengthNotEqual(length2) {
        return this.addConstraint(stringLengthNotEqual(length2));
      }
      get email() {
        return this.addConstraint(stringEmail());
      }
      url(options) {
        return this.addConstraint(stringUrl(options));
      }
      uuid(options) {
        return this.addConstraint(stringUuid(options));
      }
      regex(regex2) {
        return this.addConstraint(stringRegex(regex2));
      }
      get date() {
        return this.addConstraint(stringDate());
      }
      get ipv4() {
        return this.ip(4);
      }
      get ipv6() {
        return this.ip(6);
      }
      ip(version2) {
        return this.addConstraint(stringIp(version2));
      }
      phone() {
        return this.addConstraint(stringPhone());
      }
      handle(value2) {
        return typeof value2 === "string" ? Result.ok(value2) : Result.err(new ValidationError("s.string", "Expected a string primitive", value2));
      }
    };
    __name2(_StringValidator, "StringValidator");
    var StringValidator = _StringValidator;
    var _TupleValidator = class _TupleValidator extends BaseValidator {
      constructor(validators4, constraints = []) {
        super(constraints);
        this.validators = [];
        this.validators = validators4;
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validators, this.constraints]);
      }
      handle(values) {
        if (!Array.isArray(values)) {
          return Result.err(new ValidationError("s.tuple(T)", "Expected an array", values));
        }
        if (values.length !== this.validators.length) {
          return Result.err(new ValidationError("s.tuple(T)", `Expected an array of length ${this.validators.length}`, values));
        }
        if (!this.shouldRunConstraints) {
          return Result.ok(values);
        }
        const errors = [];
        const transformed = [];
        for (let i33 = 0; i33 < values.length; i33++) {
          const result = this.validators[i33].run(values[i33]);
          if (result.isOk())
            transformed.push(result.value);
          else
            errors.push([i33, result.error]);
        }
        return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedPropertyError(errors));
      }
    };
    __name2(_TupleValidator, "TupleValidator");
    var TupleValidator = _TupleValidator;
    var _MapValidator = class _MapValidator extends BaseValidator {
      constructor(keyValidator, valueValidator, constraints = []) {
        super(constraints);
        this.keyValidator = keyValidator;
        this.valueValidator = valueValidator;
      }
      clone() {
        return Reflect.construct(this.constructor, [this.keyValidator, this.valueValidator, this.constraints]);
      }
      handle(value2) {
        if (!(value2 instanceof Map)) {
          return Result.err(new ValidationError("s.map(K, V)", "Expected a map", value2));
        }
        if (!this.shouldRunConstraints) {
          return Result.ok(value2);
        }
        const errors = [];
        const transformed = /* @__PURE__ */ new Map();
        for (const [key, val] of value2.entries()) {
          const keyResult = this.keyValidator.run(key);
          const valueResult = this.valueValidator.run(val);
          const { length: length2 } = errors;
          if (keyResult.isErr())
            errors.push([key, keyResult.error]);
          if (valueResult.isErr())
            errors.push([key, valueResult.error]);
          if (errors.length === length2)
            transformed.set(keyResult.value, valueResult.value);
        }
        return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedPropertyError(errors));
      }
    };
    __name2(_MapValidator, "MapValidator");
    var MapValidator = _MapValidator;
    var _LazyValidator = class _LazyValidator extends BaseValidator {
      constructor(validator, constraints = []) {
        super(constraints);
        this.validator = validator;
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validator, this.constraints]);
      }
      handle(values) {
        return this.validator(values).run(values);
      }
    };
    __name2(_LazyValidator, "LazyValidator");
    var LazyValidator = _LazyValidator;
    var _UnknownEnumValueError = class _UnknownEnumValueError extends BaseError {
      constructor(value2, keys2, enumMappings) {
        super("Expected the value to be one of the following enum values:");
        this.value = value2;
        this.enumKeys = keys2;
        this.enumMappings = enumMappings;
      }
      toJSON() {
        return {
          name: this.name,
          value: this.value,
          enumKeys: this.enumKeys,
          enumMappings: [...this.enumMappings.entries()]
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const value2 = options.stylize(this.value.toString(), "string");
        if (depth < 0) {
          return options.stylize(`[UnknownEnumValueError: ${value2}]`, "special");
        }
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const pairs2 = this.enumKeys.map((key) => {
          const enumValue = this.enumMappings.get(key);
          return `${options.stylize(key, "string")} or ${options.stylize(
            enumValue.toString(),
            typeof enumValue === "number" ? "number" : "string"
          )}`;
        }).join(padding);
        const header = `${options.stylize("UnknownEnumValueError", "special")} > ${value2}`;
        const message = options.stylize(this.message, "regexp");
        const pairsBlock = `${padding}${pairs2}`;
        return `${header}
  ${message}
${pairsBlock}`;
      }
    };
    __name2(_UnknownEnumValueError, "UnknownEnumValueError");
    var UnknownEnumValueError = _UnknownEnumValueError;
    var _NativeEnumValidator = class _NativeEnumValidator extends BaseValidator {
      constructor(enumShape) {
        super();
        this.hasNumericElements = false;
        this.enumMapping = /* @__PURE__ */ new Map();
        this.enumShape = enumShape;
        this.enumKeys = Object.keys(enumShape).filter((key) => {
          return typeof enumShape[enumShape[key]] !== "number";
        });
        for (const key of this.enumKeys) {
          const enumValue = enumShape[key];
          this.enumMapping.set(key, enumValue);
          this.enumMapping.set(enumValue, enumValue);
          if (typeof enumValue === "number") {
            this.hasNumericElements = true;
            this.enumMapping.set(`${enumValue}`, enumValue);
          }
        }
      }
      handle(value2) {
        const typeOfValue = typeof value2;
        if (typeOfValue === "number") {
          if (!this.hasNumericElements) {
            return Result.err(new ValidationError("s.nativeEnum(T)", "Expected the value to be a string", value2));
          }
        } else if (typeOfValue !== "string") {
          return Result.err(new ValidationError("s.nativeEnum(T)", "Expected the value to be a string or number", value2));
        }
        const casted = value2;
        const possibleEnumValue = this.enumMapping.get(casted);
        return typeof possibleEnumValue === "undefined" ? Result.err(new UnknownEnumValueError(casted, this.enumKeys, this.enumMapping)) : Result.ok(possibleEnumValue);
      }
      clone() {
        return Reflect.construct(this.constructor, [this.enumShape]);
      }
    };
    __name2(_NativeEnumValidator, "NativeEnumValidator");
    var NativeEnumValidator = _NativeEnumValidator;
    function typedArrayByteLengthComparator(comparator, name, expected, length2) {
      return {
        run(input) {
          return comparator(input.byteLength, length2) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid Typed Array byte length", input, expected));
        }
      };
    }
    __name2(typedArrayByteLengthComparator, "typedArrayByteLengthComparator");
    function typedArrayByteLengthLessThan(value2) {
      const expected = `expected.byteLength < ${value2}`;
      return typedArrayByteLengthComparator(lessThan, "s.typedArray(T).byteLengthLessThan", expected, value2);
    }
    __name2(typedArrayByteLengthLessThan, "typedArrayByteLengthLessThan");
    function typedArrayByteLengthLessThanOrEqual(value2) {
      const expected = `expected.byteLength <= ${value2}`;
      return typedArrayByteLengthComparator(lessThanOrEqual, "s.typedArray(T).byteLengthLessThanOrEqual", expected, value2);
    }
    __name2(typedArrayByteLengthLessThanOrEqual, "typedArrayByteLengthLessThanOrEqual");
    function typedArrayByteLengthGreaterThan(value2) {
      const expected = `expected.byteLength > ${value2}`;
      return typedArrayByteLengthComparator(greaterThan, "s.typedArray(T).byteLengthGreaterThan", expected, value2);
    }
    __name2(typedArrayByteLengthGreaterThan, "typedArrayByteLengthGreaterThan");
    function typedArrayByteLengthGreaterThanOrEqual(value2) {
      const expected = `expected.byteLength >= ${value2}`;
      return typedArrayByteLengthComparator(greaterThanOrEqual, "s.typedArray(T).byteLengthGreaterThanOrEqual", expected, value2);
    }
    __name2(typedArrayByteLengthGreaterThanOrEqual, "typedArrayByteLengthGreaterThanOrEqual");
    function typedArrayByteLengthEqual(value2) {
      const expected = `expected.byteLength === ${value2}`;
      return typedArrayByteLengthComparator(equal, "s.typedArray(T).byteLengthEqual", expected, value2);
    }
    __name2(typedArrayByteLengthEqual, "typedArrayByteLengthEqual");
    function typedArrayByteLengthNotEqual(value2) {
      const expected = `expected.byteLength !== ${value2}`;
      return typedArrayByteLengthComparator(notEqual, "s.typedArray(T).byteLengthNotEqual", expected, value2);
    }
    __name2(typedArrayByteLengthNotEqual, "typedArrayByteLengthNotEqual");
    function typedArrayByteLengthRange(start2, endBefore) {
      const expected = `expected.byteLength >= ${start2} && expected.byteLength < ${endBefore}`;
      return {
        run(input) {
          return input.byteLength >= start2 && input.byteLength < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.typedArray(T).byteLengthRange", "Invalid Typed Array byte length", input, expected));
        }
      };
    }
    __name2(typedArrayByteLengthRange, "typedArrayByteLengthRange");
    function typedArrayByteLengthRangeInclusive(start2, end2) {
      const expected = `expected.byteLength >= ${start2} && expected.byteLength <= ${end2}`;
      return {
        run(input) {
          return input.byteLength >= start2 && input.byteLength <= end2 ? Result.ok(input) : Result.err(
            new ExpectedConstraintError("s.typedArray(T).byteLengthRangeInclusive", "Invalid Typed Array byte length", input, expected)
          );
        }
      };
    }
    __name2(typedArrayByteLengthRangeInclusive, "typedArrayByteLengthRangeInclusive");
    function typedArrayByteLengthRangeExclusive(startAfter, endBefore) {
      const expected = `expected.byteLength > ${startAfter} && expected.byteLength < ${endBefore}`;
      return {
        run(input) {
          return input.byteLength > startAfter && input.byteLength < endBefore ? Result.ok(input) : Result.err(
            new ExpectedConstraintError("s.typedArray(T).byteLengthRangeExclusive", "Invalid Typed Array byte length", input, expected)
          );
        }
      };
    }
    __name2(typedArrayByteLengthRangeExclusive, "typedArrayByteLengthRangeExclusive");
    function typedArrayLengthComparator(comparator, name, expected, length2) {
      return {
        run(input) {
          return comparator(input.length, length2) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid Typed Array length", input, expected));
        }
      };
    }
    __name2(typedArrayLengthComparator, "typedArrayLengthComparator");
    function typedArrayLengthLessThan(value2) {
      const expected = `expected.length < ${value2}`;
      return typedArrayLengthComparator(lessThan, "s.typedArray(T).lengthLessThan", expected, value2);
    }
    __name2(typedArrayLengthLessThan, "typedArrayLengthLessThan");
    function typedArrayLengthLessThanOrEqual(value2) {
      const expected = `expected.length <= ${value2}`;
      return typedArrayLengthComparator(lessThanOrEqual, "s.typedArray(T).lengthLessThanOrEqual", expected, value2);
    }
    __name2(typedArrayLengthLessThanOrEqual, "typedArrayLengthLessThanOrEqual");
    function typedArrayLengthGreaterThan(value2) {
      const expected = `expected.length > ${value2}`;
      return typedArrayLengthComparator(greaterThan, "s.typedArray(T).lengthGreaterThan", expected, value2);
    }
    __name2(typedArrayLengthGreaterThan, "typedArrayLengthGreaterThan");
    function typedArrayLengthGreaterThanOrEqual(value2) {
      const expected = `expected.length >= ${value2}`;
      return typedArrayLengthComparator(greaterThanOrEqual, "s.typedArray(T).lengthGreaterThanOrEqual", expected, value2);
    }
    __name2(typedArrayLengthGreaterThanOrEqual, "typedArrayLengthGreaterThanOrEqual");
    function typedArrayLengthEqual(value2) {
      const expected = `expected.length === ${value2}`;
      return typedArrayLengthComparator(equal, "s.typedArray(T).lengthEqual", expected, value2);
    }
    __name2(typedArrayLengthEqual, "typedArrayLengthEqual");
    function typedArrayLengthNotEqual(value2) {
      const expected = `expected.length !== ${value2}`;
      return typedArrayLengthComparator(notEqual, "s.typedArray(T).lengthNotEqual", expected, value2);
    }
    __name2(typedArrayLengthNotEqual, "typedArrayLengthNotEqual");
    function typedArrayLengthRange(start2, endBefore) {
      const expected = `expected.length >= ${start2} && expected.length < ${endBefore}`;
      return {
        run(input) {
          return input.length >= start2 && input.length < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.typedArray(T).lengthRange", "Invalid Typed Array length", input, expected));
        }
      };
    }
    __name2(typedArrayLengthRange, "typedArrayLengthRange");
    function typedArrayLengthRangeInclusive(start2, end2) {
      const expected = `expected.length >= ${start2} && expected.length <= ${end2}`;
      return {
        run(input) {
          return input.length >= start2 && input.length <= end2 ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.typedArray(T).lengthRangeInclusive", "Invalid Typed Array length", input, expected));
        }
      };
    }
    __name2(typedArrayLengthRangeInclusive, "typedArrayLengthRangeInclusive");
    function typedArrayLengthRangeExclusive(startAfter, endBefore) {
      const expected = `expected.length > ${startAfter} && expected.length < ${endBefore}`;
      return {
        run(input) {
          return input.length > startAfter && input.length < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.typedArray(T).lengthRangeExclusive", "Invalid Typed Array length", input, expected));
        }
      };
    }
    __name2(typedArrayLengthRangeExclusive, "typedArrayLengthRangeExclusive");
    var vowels = ["a", "e", "i", "o", "u"];
    var aOrAn = /* @__PURE__ */ __name2((word) => {
      return `${vowels.includes(word[0].toLowerCase()) ? "an" : "a"} ${word}`;
    }, "aOrAn");
    var TypedArrays = {
      Int8Array: (x2) => x2 instanceof Int8Array,
      Uint8Array: (x2) => x2 instanceof Uint8Array,
      Uint8ClampedArray: (x2) => x2 instanceof Uint8ClampedArray,
      Int16Array: (x2) => x2 instanceof Int16Array,
      Uint16Array: (x2) => x2 instanceof Uint16Array,
      Int32Array: (x2) => x2 instanceof Int32Array,
      Uint32Array: (x2) => x2 instanceof Uint32Array,
      Float32Array: (x2) => x2 instanceof Float32Array,
      Float64Array: (x2) => x2 instanceof Float64Array,
      BigInt64Array: (x2) => x2 instanceof BigInt64Array,
      BigUint64Array: (x2) => x2 instanceof BigUint64Array,
      TypedArray: (x2) => ArrayBuffer.isView(x2) && !(x2 instanceof DataView)
    };
    var _TypedArrayValidator = class _TypedArrayValidator extends BaseValidator {
      constructor(type, constraints = []) {
        super(constraints);
        this.type = type;
      }
      byteLengthLessThan(length2) {
        return this.addConstraint(typedArrayByteLengthLessThan(length2));
      }
      byteLengthLessThanOrEqual(length2) {
        return this.addConstraint(typedArrayByteLengthLessThanOrEqual(length2));
      }
      byteLengthGreaterThan(length2) {
        return this.addConstraint(typedArrayByteLengthGreaterThan(length2));
      }
      byteLengthGreaterThanOrEqual(length2) {
        return this.addConstraint(typedArrayByteLengthGreaterThanOrEqual(length2));
      }
      byteLengthEqual(length2) {
        return this.addConstraint(typedArrayByteLengthEqual(length2));
      }
      byteLengthNotEqual(length2) {
        return this.addConstraint(typedArrayByteLengthNotEqual(length2));
      }
      byteLengthRange(start2, endBefore) {
        return this.addConstraint(typedArrayByteLengthRange(start2, endBefore));
      }
      byteLengthRangeInclusive(startAt, endAt) {
        return this.addConstraint(typedArrayByteLengthRangeInclusive(startAt, endAt));
      }
      byteLengthRangeExclusive(startAfter, endBefore) {
        return this.addConstraint(typedArrayByteLengthRangeExclusive(startAfter, endBefore));
      }
      lengthLessThan(length2) {
        return this.addConstraint(typedArrayLengthLessThan(length2));
      }
      lengthLessThanOrEqual(length2) {
        return this.addConstraint(typedArrayLengthLessThanOrEqual(length2));
      }
      lengthGreaterThan(length2) {
        return this.addConstraint(typedArrayLengthGreaterThan(length2));
      }
      lengthGreaterThanOrEqual(length2) {
        return this.addConstraint(typedArrayLengthGreaterThanOrEqual(length2));
      }
      lengthEqual(length2) {
        return this.addConstraint(typedArrayLengthEqual(length2));
      }
      lengthNotEqual(length2) {
        return this.addConstraint(typedArrayLengthNotEqual(length2));
      }
      lengthRange(start2, endBefore) {
        return this.addConstraint(typedArrayLengthRange(start2, endBefore));
      }
      lengthRangeInclusive(startAt, endAt) {
        return this.addConstraint(typedArrayLengthRangeInclusive(startAt, endAt));
      }
      lengthRangeExclusive(startAfter, endBefore) {
        return this.addConstraint(typedArrayLengthRangeExclusive(startAfter, endBefore));
      }
      clone() {
        return Reflect.construct(this.constructor, [this.type, this.constraints]);
      }
      handle(value2) {
        return TypedArrays[this.type](value2) ? Result.ok(value2) : Result.err(new ValidationError("s.typedArray", `Expected ${aOrAn(this.type)}`, value2));
      }
    };
    __name2(_TypedArrayValidator, "TypedArrayValidator");
    var TypedArrayValidator = _TypedArrayValidator;
    var _Shapes = class _Shapes {
      get string() {
        return new StringValidator();
      }
      get number() {
        return new NumberValidator();
      }
      get bigint() {
        return new BigIntValidator();
      }
      get boolean() {
        return new BooleanValidator();
      }
      get date() {
        return new DateValidator();
      }
      object(shape) {
        return new ObjectValidator(shape);
      }
      get undefined() {
        return this.literal(void 0);
      }
      get null() {
        return this.literal(null);
      }
      get nullish() {
        return new NullishValidator();
      }
      get any() {
        return new PassthroughValidator();
      }
      get unknown() {
        return new PassthroughValidator();
      }
      get never() {
        return new NeverValidator();
      }
      enum(...values) {
        return this.union(...values.map((value2) => this.literal(value2)));
      }
      nativeEnum(enumShape) {
        return new NativeEnumValidator(enumShape);
      }
      literal(value2) {
        if (value2 instanceof Date)
          return this.date.equal(value2);
        return new LiteralValidator(value2);
      }
      instance(expected) {
        return new InstanceValidator(expected);
      }
      union(...validators4) {
        return new UnionValidator(validators4);
      }
      array(validator) {
        return new ArrayValidator(validator);
      }
      typedArray(type = "TypedArray") {
        return new TypedArrayValidator(type);
      }
      get int8Array() {
        return this.typedArray("Int8Array");
      }
      get uint8Array() {
        return this.typedArray("Uint8Array");
      }
      get uint8ClampedArray() {
        return this.typedArray("Uint8ClampedArray");
      }
      get int16Array() {
        return this.typedArray("Int16Array");
      }
      get uint16Array() {
        return this.typedArray("Uint16Array");
      }
      get int32Array() {
        return this.typedArray("Int32Array");
      }
      get uint32Array() {
        return this.typedArray("Uint32Array");
      }
      get float32Array() {
        return this.typedArray("Float32Array");
      }
      get float64Array() {
        return this.typedArray("Float64Array");
      }
      get bigInt64Array() {
        return this.typedArray("BigInt64Array");
      }
      get bigUint64Array() {
        return this.typedArray("BigUint64Array");
      }
      tuple(validators4) {
        return new TupleValidator(validators4);
      }
      set(validator) {
        return new SetValidator(validator);
      }
      record(validator) {
        return new RecordValidator(validator);
      }
      map(keyValidator, valueValidator) {
        return new MapValidator(keyValidator, valueValidator);
      }
      lazy(validator) {
        return new LazyValidator(validator);
      }
    };
    __name2(_Shapes, "Shapes");
    var Shapes = _Shapes;
    var s32 = new Shapes();
    exports.BaseError = BaseError;
    exports.CombinedError = CombinedError;
    exports.CombinedPropertyError = CombinedPropertyError;
    exports.ExpectedConstraintError = ExpectedConstraintError;
    exports.ExpectedValidationError = ExpectedValidationError;
    exports.MissingPropertyError = MissingPropertyError;
    exports.MultiplePossibilitiesConstraintError = MultiplePossibilitiesConstraintError;
    exports.Result = Result;
    exports.UnknownEnumValueError = UnknownEnumValueError;
    exports.UnknownPropertyError = UnknownPropertyError;
    exports.ValidationError = ValidationError;
    exports.customInspectSymbol = customInspectSymbol;
    exports.customInspectSymbolStackLess = customInspectSymbolStackLess;
    exports.getGlobalValidationEnabled = getGlobalValidationEnabled;
    exports.s = s32;
    exports.setGlobalValidationEnabled = setGlobalValidationEnabled;
  }
});

// ../../node_modules/.pnpm/universalify@2.0.1/node_modules/universalify/index.js
var require_universalify = __commonJS({
  "../../node_modules/.pnpm/universalify@2.0.1/node_modules/universalify/index.js"(exports) {
    "use strict";
    exports.fromCallback = function(fn) {
      return Object.defineProperty(function(...args) {
        if (typeof args[args.length - 1] === "function") fn.apply(this, args);
        else {
          return new Promise((resolve4, reject) => {
            args.push((err2, res) => err2 != null ? reject(err2) : resolve4(res));
            fn.apply(this, args);
          });
        }
      }, "name", { value: fn.name });
    };
    exports.fromPromise = function(fn) {
      return Object.defineProperty(function(...args) {
        const cb = args[args.length - 1];
        if (typeof cb !== "function") return fn.apply(this, args);
        else {
          args.pop();
          fn.apply(this, args).then((r4) => cb(null, r4), cb);
        }
      }, "name", { value: fn.name });
    };
  }
});

// ../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/polyfills.js
var require_polyfills = __commonJS({
  "../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/polyfills.js"(exports, module) {
    var constants2 = __require("constants");
    var origCwd = process.cwd;
    var cwd = null;
    var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform;
    process.cwd = function() {
      if (!cwd)
        cwd = origCwd.call(process);
      return cwd;
    };
    try {
      process.cwd();
    } catch (er) {
    }
    if (typeof process.chdir === "function") {
      chdir = process.chdir;
      process.chdir = function(d3) {
        cwd = null;
        chdir.call(process, d3);
      };
      if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir);
    }
    var chdir;
    module.exports = patch;
    function patch(fs7) {
      if (constants2.hasOwnProperty("O_SYMLINK") && process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) {
        patchLchmod(fs7);
      }
      if (!fs7.lutimes) {
        patchLutimes(fs7);
      }
      fs7.chown = chownFix(fs7.chown);
      fs7.fchown = chownFix(fs7.fchown);
      fs7.lchown = chownFix(fs7.lchown);
      fs7.chmod = chmodFix(fs7.chmod);
      fs7.fchmod = chmodFix(fs7.fchmod);
      fs7.lchmod = chmodFix(fs7.lchmod);
      fs7.chownSync = chownFixSync(fs7.chownSync);
      fs7.fchownSync = chownFixSync(fs7.fchownSync);
      fs7.lchownSync = chownFixSync(fs7.lchownSync);
      fs7.chmodSync = chmodFixSync(fs7.chmodSync);
      fs7.fchmodSync = chmodFixSync(fs7.fchmodSync);
      fs7.lchmodSync = chmodFixSync(fs7.lchmodSync);
      fs7.stat = statFix(fs7.stat);
      fs7.fstat = statFix(fs7.fstat);
      fs7.lstat = statFix(fs7.lstat);
      fs7.statSync = statFixSync(fs7.statSync);
      fs7.fstatSync = statFixSync(fs7.fstatSync);
      fs7.lstatSync = statFixSync(fs7.lstatSync);
      if (fs7.chmod && !fs7.lchmod) {
        fs7.lchmod = function(path3, mode, cb) {
          if (cb) process.nextTick(cb);
        };
        fs7.lchmodSync = function() {
        };
      }
      if (fs7.chown && !fs7.lchown) {
        fs7.lchown = function(path3, uid, gid, cb) {
          if (cb) process.nextTick(cb);
        };
        fs7.lchownSync = function() {
        };
      }
      if (platform === "win32") {
        fs7.rename = typeof fs7.rename !== "function" ? fs7.rename : (function(fs$rename) {
          function rename(from, to, cb) {
            var start2 = Date.now();
            var backoff = 0;
            fs$rename(from, to, function CB(er) {
              if (er && (er.code === "EACCES" || er.code === "EPERM" || er.code === "EBUSY") && Date.now() - start2 < 6e4) {
                setTimeout(function() {
                  fs7.stat(to, function(stater, st) {
                    if (stater && stater.code === "ENOENT")
                      fs$rename(from, to, CB);
                    else
                      cb(er);
                  });
                }, backoff);
                if (backoff < 100)
                  backoff += 10;
                return;
              }
              if (cb) cb(er);
            });
          }
          if (Object.setPrototypeOf) Object.setPrototypeOf(rename, fs$rename);
          return rename;
        })(fs7.rename);
      }
      fs7.read = typeof fs7.read !== "function" ? fs7.read : (function(fs$read) {
        function read2(fd2, buffer, offset2, length2, position, callback_) {
          var callback;
          if (callback_ && typeof callback_ === "function") {
            var eagCounter = 0;
            callback = function(er, _, __) {
              if (er && er.code === "EAGAIN" && eagCounter < 10) {
                eagCounter++;
                return fs$read.call(fs7, fd2, buffer, offset2, length2, position, callback);
              }
              callback_.apply(this, arguments);
            };
          }
          return fs$read.call(fs7, fd2, buffer, offset2, length2, position, callback);
        }
        if (Object.setPrototypeOf) Object.setPrototypeOf(read2, fs$read);
        return read2;
      })(fs7.read);
      fs7.readSync = typeof fs7.readSync !== "function" ? fs7.readSync : /* @__PURE__ */ (function(fs$readSync) {
        return function(fd2, buffer, offset2, length2, position) {
          var eagCounter = 0;
          while (true) {
            try {
              return fs$readSync.call(fs7, fd2, buffer, offset2, length2, position);
            } catch (er) {
              if (er.code === "EAGAIN" && eagCounter < 10) {
                eagCounter++;
                continue;
              }
              throw er;
            }
          }
        };
      })(fs7.readSync);
      function patchLchmod(fs8) {
        fs8.lchmod = function(path3, mode, callback) {
          fs8.open(
            path3,
            constants2.O_WRONLY | constants2.O_SYMLINK,
            mode,
            function(err2, fd2) {
              if (err2) {
                if (callback) callback(err2);
                return;
              }
              fs8.fchmod(fd2, mode, function(err3) {
                fs8.close(fd2, function(err22) {
                  if (callback) callback(err3 || err22);
                });
              });
            }
          );
        };
        fs8.lchmodSync = function(path3, mode) {
          var fd2 = fs8.openSync(path3, constants2.O_WRONLY | constants2.O_SYMLINK, mode);
          var threw = true;
          var ret;
          try {
            ret = fs8.fchmodSync(fd2, mode);
            threw = false;
          } finally {
            if (threw) {
              try {
                fs8.closeSync(fd2);
              } catch (er) {
              }
            } else {
              fs8.closeSync(fd2);
            }
          }
          return ret;
        };
      }
      function patchLutimes(fs8) {
        if (constants2.hasOwnProperty("O_SYMLINK") && fs8.futimes) {
          fs8.lutimes = function(path3, at, mt, cb) {
            fs8.open(path3, constants2.O_SYMLINK, function(er, fd2) {
              if (er) {
                if (cb) cb(er);
                return;
              }
              fs8.futimes(fd2, at, mt, function(er2) {
                fs8.close(fd2, function(er22) {
                  if (cb) cb(er2 || er22);
                });
              });
            });
          };
          fs8.lutimesSync = function(path3, at, mt) {
            var fd2 = fs8.openSync(path3, constants2.O_SYMLINK);
            var ret;
            var threw = true;
            try {
              ret = fs8.futimesSync(fd2, at, mt);
              threw = false;
            } finally {
              if (threw) {
                try {
                  fs8.closeSync(fd2);
                } catch (er) {
                }
              } else {
                fs8.closeSync(fd2);
              }
            }
            return ret;
          };
        } else if (fs8.futimes) {
          fs8.lutimes = function(_a2, _b2, _c, cb) {
            if (cb) process.nextTick(cb);
          };
          fs8.lutimesSync = function() {
          };
        }
      }
      function chmodFix(orig) {
        if (!orig) return orig;
        return function(target, mode, cb) {
          return orig.call(fs7, target, mode, function(er) {
            if (chownErOk(er)) er = null;
            if (cb) cb.apply(this, arguments);
          });
        };
      }
      function chmodFixSync(orig) {
        if (!orig) return orig;
        return function(target, mode) {
          try {
            return orig.call(fs7, target, mode);
          } catch (er) {
            if (!chownErOk(er)) throw er;
          }
        };
      }
      function chownFix(orig) {
        if (!orig) return orig;
        return function(target, uid, gid, cb) {
          return orig.call(fs7, target, uid, gid, function(er) {
            if (chownErOk(er)) er = null;
            if (cb) cb.apply(this, arguments);
          });
        };
      }
      function chownFixSync(orig) {
        if (!orig) return orig;
        return function(target, uid, gid) {
          try {
            return orig.call(fs7, target, uid, gid);
          } catch (er) {
            if (!chownErOk(er)) throw er;
          }
        };
      }
      function statFix(orig) {
        if (!orig) return orig;
        return function(target, options, cb) {
          if (typeof options === "function") {
            cb = options;
            options = null;
          }
          function callback(er, stats) {
            if (stats) {
              if (stats.uid < 0) stats.uid += 4294967296;
              if (stats.gid < 0) stats.gid += 4294967296;
            }
            if (cb) cb.apply(this, arguments);
          }
          return options ? orig.call(fs7, target, options, callback) : orig.call(fs7, target, callback);
        };
      }
      function statFixSync(orig) {
        if (!orig) return orig;
        return function(target, options) {
          var stats = options ? orig.call(fs7, target, options) : orig.call(fs7, target);
          if (stats) {
            if (stats.uid < 0) stats.uid += 4294967296;
            if (stats.gid < 0) stats.gid += 4294967296;
          }
          return stats;
        };
      }
      function chownErOk(er) {
        if (!er)
          return true;
        if (er.code === "ENOSYS")
          return true;
        var nonroot = !process.getuid || process.getuid() !== 0;
        if (nonroot) {
          if (er.code === "EINVAL" || er.code === "EPERM")
            return true;
        }
        return false;
      }
    }
  }
});

// ../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/legacy-streams.js
var require_legacy_streams = __commonJS({
  "../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/legacy-streams.js"(exports, module) {
    var Stream = __require("stream").Stream;
    module.exports = legacy;
    function legacy(fs7) {
      return {
        ReadStream,
        WriteStream
      };
      function ReadStream(path3, options) {
        if (!(this instanceof ReadStream)) return new ReadStream(path3, options);
        Stream.call(this);
        var self2 = this;
        this.path = path3;
        this.fd = null;
        this.readable = true;
        this.paused = false;
        this.flags = "r";
        this.mode = 438;
        this.bufferSize = 64 * 1024;
        options = options || {};
        var keys2 = Object.keys(options);
        for (var index2 = 0, length2 = keys2.length; index2 < length2; index2++) {
          var key = keys2[index2];
          this[key] = options[key];
        }
        if (this.encoding) this.setEncoding(this.encoding);
        if (this.start !== void 0) {
          if ("number" !== typeof this.start) {
            throw TypeError("start must be a Number");
          }
          if (this.end === void 0) {
            this.end = Infinity;
          } else if ("number" !== typeof this.end) {
            throw TypeError("end must be a Number");
          }
          if (this.start > this.end) {
            throw new Error("start must be <= end");
          }
          this.pos = this.start;
        }
        if (this.fd !== null) {
          process.nextTick(function() {
            self2._read();
          });
          return;
        }
        fs7.open(this.path, this.flags, this.mode, function(err2, fd2) {
          if (err2) {
            self2.emit("error", err2);
            self2.readable = false;
            return;
          }
          self2.fd = fd2;
          self2.emit("open", fd2);
          self2._read();
        });
      }
      function WriteStream(path3, options) {
        if (!(this instanceof WriteStream)) return new WriteStream(path3, options);
        Stream.call(this);
        this.path = path3;
        this.fd = null;
        this.writable = true;
        this.flags = "w";
        this.encoding = "binary";
        this.mode = 438;
        this.bytesWritten = 0;
        options = options || {};
        var keys2 = Object.keys(options);
        for (var index2 = 0, length2 = keys2.length; index2 < length2; index2++) {
          var key = keys2[index2];
          this[key] = options[key];
        }
        if (this.start !== void 0) {
          if ("number" !== typeof this.start) {
            throw TypeError("start must be a Number");
          }
          if (this.start < 0) {
            throw new Error("start must be >= zero");
          }
          this.pos = this.start;
        }
        this.busy = false;
        this._queue = [];
        if (this.fd === null) {
          this._open = fs7.open;
          this._queue.push([this._open, this.path, this.flags, this.mode, void 0]);
          this.flush();
        }
      }
    }
  }
});

// ../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/clone.js
var require_clone = __commonJS({
  "../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/clone.js"(exports, module) {
    "use strict";
    module.exports = clone;
    var getPrototypeOf2 = Object.getPrototypeOf || function(obj) {
      return obj.__proto__;
    };
    function clone(obj) {
      if (obj === null || typeof obj !== "object")
        return obj;
      if (obj instanceof Object)
        var copy2 = { __proto__: getPrototypeOf2(obj) };
      else
        var copy2 = /* @__PURE__ */ Object.create(null);
      Object.getOwnPropertyNames(obj).forEach(function(key) {
        Object.defineProperty(copy2, key, Object.getOwnPropertyDescriptor(obj, key));
      });
      return copy2;
    }
  }
});

// ../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/graceful-fs.js
var require_graceful_fs = __commonJS({
  "../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/graceful-fs.js"(exports, module) {
    var fs7 = __require("fs");
    var polyfills = require_polyfills();
    var legacy = require_legacy_streams();
    var clone = require_clone();
    var util3 = __require("util");
    var gracefulQueue;
    var previousSymbol;
    if (typeof Symbol === "function" && typeof Symbol.for === "function") {
      gracefulQueue = Symbol.for("graceful-fs.queue");
      previousSymbol = Symbol.for("graceful-fs.previous");
    } else {
      gracefulQueue = "___graceful-fs.queue";
      previousSymbol = "___graceful-fs.previous";
    }
    function noop6() {
    }
    function publishQueue(context, queue2) {
      Object.defineProperty(context, gracefulQueue, {
        get: function() {
          return queue2;
        }
      });
    }
    var debug2 = noop6;
    if (util3.debuglog)
      debug2 = util3.debuglog("gfs4");
    else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || ""))
      debug2 = function() {
        var m3 = util3.format.apply(util3, arguments);
        m3 = "GFS4: " + m3.split(/\n/).join("\nGFS4: ");
        console.error(m3);
      };
    if (!fs7[gracefulQueue]) {
      queue = global[gracefulQueue] || [];
      publishQueue(fs7, queue);
      fs7.close = (function(fs$close) {
        function close(fd2, cb) {
          return fs$close.call(fs7, fd2, function(err2) {
            if (!err2) {
              resetQueue();
            }
            if (typeof cb === "function")
              cb.apply(this, arguments);
          });
        }
        Object.defineProperty(close, previousSymbol, {
          value: fs$close
        });
        return close;
      })(fs7.close);
      fs7.closeSync = (function(fs$closeSync) {
        function closeSync(fd2) {
          fs$closeSync.apply(fs7, arguments);
          resetQueue();
        }
        Object.defineProperty(closeSync, previousSymbol, {
          value: fs$closeSync
        });
        return closeSync;
      })(fs7.closeSync);
      if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || "")) {
        process.on("exit", function() {
          debug2(fs7[gracefulQueue]);
          __require("assert").equal(fs7[gracefulQueue].length, 0);
        });
      }
    }
    var queue;
    if (!global[gracefulQueue]) {
      publishQueue(global, fs7[gracefulQueue]);
    }
    module.exports = patch(clone(fs7));
    if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs7.__patched) {
      module.exports = patch(fs7);
      fs7.__patched = true;
    }
    function patch(fs8) {
      polyfills(fs8);
      fs8.gracefulify = patch;
      fs8.createReadStream = createReadStream;
      fs8.createWriteStream = createWriteStream;
      var fs$readFile = fs8.readFile;
      fs8.readFile = readFile2;
      function readFile2(path3, options, cb) {
        if (typeof options === "function")
          cb = options, options = null;
        return go$readFile(path3, options, cb);
        function go$readFile(path4, options2, cb2, startTime) {
          return fs$readFile(path4, options2, function(err2) {
            if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
              enqueue([go$readFile, [path4, options2, cb2], err2, startTime || Date.now(), Date.now()]);
            else {
              if (typeof cb2 === "function")
                cb2.apply(this, arguments);
            }
          });
        }
      }
      var fs$writeFile = fs8.writeFile;
      fs8.writeFile = writeFile2;
      function writeFile2(path3, data2, options, cb) {
        if (typeof options === "function")
          cb = options, options = null;
        return go$writeFile(path3, data2, options, cb);
        function go$writeFile(path4, data3, options2, cb2, startTime) {
          return fs$writeFile(path4, data3, options2, function(err2) {
            if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
              enqueue([go$writeFile, [path4, data3, options2, cb2], err2, startTime || Date.now(), Date.now()]);
            else {
              if (typeof cb2 === "function")
                cb2.apply(this, arguments);
            }
          });
        }
      }
      var fs$appendFile = fs8.appendFile;
      if (fs$appendFile)
        fs8.appendFile = appendFile;
      function appendFile(path3, data2, options, cb) {
        if (typeof options === "function")
          cb = options, options = null;
        return go$appendFile(path3, data2, options, cb);
        function go$appendFile(path4, data3, options2, cb2, startTime) {
          return fs$appendFile(path4, data3, options2, function(err2) {
            if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
              enqueue([go$appendFile, [path4, data3, options2, cb2], err2, startTime || Date.now(), Date.now()]);
            else {
              if (typeof cb2 === "function")
                cb2.apply(this, arguments);
            }
          });
        }
      }
      var fs$copyFile = fs8.copyFile;
      if (fs$copyFile)
        fs8.copyFile = copyFile;
      function copyFile(src, dest, flags, cb) {
        if (typeof flags === "function") {
          cb = flags;
          flags = 0;
        }
        return go$copyFile(src, dest, flags, cb);
        function go$copyFile(src2, dest2, flags2, cb2, startTime) {
          return fs$copyFile(src2, dest2, flags2, function(err2) {
            if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
              enqueue([go$copyFile, [src2, dest2, flags2, cb2], err2, startTime || Date.now(), Date.now()]);
            else {
              if (typeof cb2 === "function")
                cb2.apply(this, arguments);
            }
          });
        }
      }
      var fs$readdir = fs8.readdir;
      fs8.readdir = readdir;
      var noReaddirOptionVersions = /^v[0-5]\./;
      function readdir(path3, options, cb) {
        if (typeof options === "function")
          cb = options, options = null;
        var go$readdir = noReaddirOptionVersions.test(process.version) ? function go$readdir2(path4, options2, cb2, startTime) {
          return fs$readdir(path4, fs$readdirCallback(
            path4,
            options2,
            cb2,
            startTime
          ));
        } : function go$readdir2(path4, options2, cb2, startTime) {
          return fs$readdir(path4, options2, fs$readdirCallback(
            path4,
            options2,
            cb2,
            startTime
          ));
        };
        return go$readdir(path3, options, cb);
        function fs$readdirCallback(path4, options2, cb2, startTime) {
          return function(err2, files) {
            if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
              enqueue([
                go$readdir,
                [path4, options2, cb2],
                err2,
                startTime || Date.now(),
                Date.now()
              ]);
            else {
              if (files && files.sort)
                files.sort();
              if (typeof cb2 === "function")
                cb2.call(this, err2, files);
            }
          };
        }
      }
      if (process.version.substr(0, 4) === "v0.8") {
        var legStreams = legacy(fs8);
        ReadStream = legStreams.ReadStream;
        WriteStream = legStreams.WriteStream;
      }
      var fs$ReadStream = fs8.ReadStream;
      if (fs$ReadStream) {
        ReadStream.prototype = Object.create(fs$ReadStream.prototype);
        ReadStream.prototype.open = ReadStream$open;
      }
      var fs$WriteStream = fs8.WriteStream;
      if (fs$WriteStream) {
        WriteStream.prototype = Object.create(fs$WriteStream.prototype);
        WriteStream.prototype.open = WriteStream$open;
      }
      Object.defineProperty(fs8, "ReadStream", {
        get: function() {
          return ReadStream;
        },
        set: function(val) {
          ReadStream = val;
        },
        enumerable: true,
        configurable: true
      });
      Object.defineProperty(fs8, "WriteStream", {
        get: function() {
          return WriteStream;
        },
        set: function(val) {
          WriteStream = val;
        },
        enumerable: true,
        configurable: true
      });
      var FileReadStream = ReadStream;
      Object.defineProperty(fs8, "FileReadStream", {
        get: function() {
          return FileReadStream;
        },
        set: function(val) {
          FileReadStream = val;
        },
        enumerable: true,
        configurable: true
      });
      var FileWriteStream = WriteStream;
      Object.defineProperty(fs8, "FileWriteStream", {
        get: function() {
          return FileWriteStream;
        },
        set: function(val) {
          FileWriteStream = val;
        },
        enumerable: true,
        configurable: true
      });
      function ReadStream(path3, options) {
        if (this instanceof ReadStream)
          return fs$ReadStream.apply(this, arguments), this;
        else
          return ReadStream.apply(Object.create(ReadStream.prototype), arguments);
      }
      function ReadStream$open() {
        var that = this;
        open(that.path, that.flags, that.mode, function(err2, fd2) {
          if (err2) {
            if (that.autoClose)
              that.destroy();
            that.emit("error", err2);
          } else {
            that.fd = fd2;
            that.emit("open", fd2);
            that.read();
          }
        });
      }
      function WriteStream(path3, options) {
        if (this instanceof WriteStream)
          return fs$WriteStream.apply(this, arguments), this;
        else
          return WriteStream.apply(Object.create(WriteStream.prototype), arguments);
      }
      function WriteStream$open() {
        var that = this;
        open(that.path, that.flags, that.mode, function(err2, fd2) {
          if (err2) {
            that.destroy();
            that.emit("error", err2);
          } else {
            that.fd = fd2;
            that.emit("open", fd2);
          }
        });
      }
      function createReadStream(path3, options) {
        return new fs8.ReadStream(path3, options);
      }
      function createWriteStream(path3, options) {
        return new fs8.WriteStream(path3, options);
      }
      var fs$open = fs8.open;
      fs8.open = open;
      function open(path3, flags, mode, cb) {
        if (typeof mode === "function")
          cb = mode, mode = null;
        return go$open(path3, flags, mode, cb);
        function go$open(path4, flags2, mode2, cb2, startTime) {
          return fs$open(path4, flags2, mode2, function(err2, fd2) {
            if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
              enqueue([go$open, [path4, flags2, mode2, cb2], err2, startTime || Date.now(), Date.now()]);
            else {
              if (typeof cb2 === "function")
                cb2.apply(this, arguments);
            }
          });
        }
      }
      return fs8;
    }
    function enqueue(elem) {
      debug2("ENQUEUE", elem[0].name, elem[1]);
      fs7[gracefulQueue].push(elem);
      retry();
    }
    var retryTimer;
    function resetQueue() {
      var now = Date.now();
      for (var i5 = 0; i5 < fs7[gracefulQueue].length; ++i5) {
        if (fs7[gracefulQueue][i5].length > 2) {
          fs7[gracefulQueue][i5][3] = now;
          fs7[gracefulQueue][i5][4] = now;
        }
      }
      retry();
    }
    function retry() {
      clearTimeout(retryTimer);
      retryTimer = void 0;
      if (fs7[gracefulQueue].length === 0)
        return;
      var elem = fs7[gracefulQueue].shift();
      var fn = elem[0];
      var args = elem[1];
      var err2 = elem[2];
      var startTime = elem[3];
      var lastTime = elem[4];
      if (startTime === void 0) {
        debug2("RETRY", fn.name, args);
        fn.apply(null, args);
      } else if (Date.now() - startTime >= 6e4) {
        debug2("TIMEOUT", fn.name, args);
        var cb = args.pop();
        if (typeof cb === "function")
          cb.call(null, err2);
      } else {
        var sinceAttempt = Date.now() - lastTime;
        var sinceStart = Math.max(lastTime - startTime, 1);
        var desiredDelay = Math.min(sinceStart * 1.2, 100);
        if (sinceAttempt >= desiredDelay) {
          debug2("RETRY", fn.name, args);
          fn.apply(null, args.concat([startTime]));
        } else {
          fs7[gracefulQueue].push(elem);
        }
      }
      if (retryTimer === void 0) {
        retryTimer = setTimeout(retry, 0);
      }
    }
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/fs/index.js
var require_fs = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/fs/index.js"(exports) {
    "use strict";
    var u5 = require_universalify().fromCallback;
    var fs7 = require_graceful_fs();
    var api = [
      "access",
      "appendFile",
      "chmod",
      "chown",
      "close",
      "copyFile",
      "cp",
      "fchmod",
      "fchown",
      "fdatasync",
      "fstat",
      "fsync",
      "ftruncate",
      "futimes",
      "glob",
      "lchmod",
      "lchown",
      "lutimes",
      "link",
      "lstat",
      "mkdir",
      "mkdtemp",
      "open",
      "opendir",
      "readdir",
      "readFile",
      "readlink",
      "realpath",
      "rename",
      "rm",
      "rmdir",
      "stat",
      "statfs",
      "symlink",
      "truncate",
      "unlink",
      "utimes",
      "writeFile"
    ].filter((key) => {
      return typeof fs7[key] === "function";
    });
    Object.assign(exports, fs7);
    api.forEach((method) => {
      exports[method] = u5(fs7[method]);
    });
    exports.exists = function(filename, callback) {
      if (typeof callback === "function") {
        return fs7.exists(filename, callback);
      }
      return new Promise((resolve4) => {
        return fs7.exists(filename, resolve4);
      });
    };
    exports.read = function(fd2, buffer, offset2, length2, position, callback) {
      if (typeof callback === "function") {
        return fs7.read(fd2, buffer, offset2, length2, position, callback);
      }
      return new Promise((resolve4, reject) => {
        fs7.read(fd2, buffer, offset2, length2, position, (err2, bytesRead, buffer2) => {
          if (err2) return reject(err2);
          resolve4({ bytesRead, buffer: buffer2 });
        });
      });
    };
    exports.write = function(fd2, buffer, ...args) {
      if (typeof args[args.length - 1] === "function") {
        return fs7.write(fd2, buffer, ...args);
      }
      return new Promise((resolve4, reject) => {
        fs7.write(fd2, buffer, ...args, (err2, bytesWritten, buffer2) => {
          if (err2) return reject(err2);
          resolve4({ bytesWritten, buffer: buffer2 });
        });
      });
    };
    exports.readv = function(fd2, buffers, ...args) {
      if (typeof args[args.length - 1] === "function") {
        return fs7.readv(fd2, buffers, ...args);
      }
      return new Promise((resolve4, reject) => {
        fs7.readv(fd2, buffers, ...args, (err2, bytesRead, buffers2) => {
          if (err2) return reject(err2);
          resolve4({ bytesRead, buffers: buffers2 });
        });
      });
    };
    exports.writev = function(fd2, buffers, ...args) {
      if (typeof args[args.length - 1] === "function") {
        return fs7.writev(fd2, buffers, ...args);
      }
      return new Promise((resolve4, reject) => {
        fs7.writev(fd2, buffers, ...args, (err2, bytesWritten, buffers2) => {
          if (err2) return reject(err2);
          resolve4({ bytesWritten, buffers: buffers2 });
        });
      });
    };
    if (typeof fs7.realpath.native === "function") {
      exports.realpath.native = u5(fs7.realpath.native);
    } else {
      process.emitWarning(
        "fs.realpath.native is not a function. Is fs being monkey-patched?",
        "Warning",
        "fs-extra-WARN0003"
      );
    }
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/mkdirs/utils.js
var require_utils = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/mkdirs/utils.js"(exports, module) {
    "use strict";
    var path3 = __require("path");
    module.exports.checkPath = function checkPath(pth) {
      if (process.platform === "win32") {
        const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path3.parse(pth).root, ""));
        if (pathHasInvalidWinCharacters) {
          const error = new Error(`Path contains invalid characters: ${pth}`);
          error.code = "EINVAL";
          throw error;
        }
      }
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/mkdirs/make-dir.js
var require_make_dir = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/mkdirs/make-dir.js"(exports, module) {
    "use strict";
    var fs7 = require_fs();
    var { checkPath } = require_utils();
    var getMode = (options) => {
      const defaults4 = { mode: 511 };
      if (typeof options === "number") return options;
      return { ...defaults4, ...options }.mode;
    };
    module.exports.makeDir = async (dir, options) => {
      checkPath(dir);
      return fs7.mkdir(dir, {
        mode: getMode(options),
        recursive: true
      });
    };
    module.exports.makeDirSync = (dir, options) => {
      checkPath(dir);
      return fs7.mkdirSync(dir, {
        mode: getMode(options),
        recursive: true
      });
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/mkdirs/index.js
var require_mkdirs = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/mkdirs/index.js"(exports, module) {
    "use strict";
    var u5 = require_universalify().fromPromise;
    var { makeDir: _makeDir, makeDirSync } = require_make_dir();
    var makeDir = u5(_makeDir);
    module.exports = {
      mkdirs: makeDir,
      mkdirsSync: makeDirSync,
      // alias
      mkdirp: makeDir,
      mkdirpSync: makeDirSync,
      ensureDir: makeDir,
      ensureDirSync: makeDirSync
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/path-exists/index.js
var require_path_exists = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/path-exists/index.js"(exports, module) {
    "use strict";
    var u5 = require_universalify().fromPromise;
    var fs7 = require_fs();
    function pathExists(path3) {
      return fs7.access(path3).then(() => true).catch(() => false);
    }
    module.exports = {
      pathExists: u5(pathExists),
      pathExistsSync: fs7.existsSync
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/util/utimes.js
var require_utimes = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/util/utimes.js"(exports, module) {
    "use strict";
    var fs7 = require_fs();
    var u5 = require_universalify().fromPromise;
    async function utimesMillis(path3, atime, mtime) {
      const fd2 = await fs7.open(path3, "r+");
      let closeErr = null;
      try {
        await fs7.futimes(fd2, atime, mtime);
      } finally {
        try {
          await fs7.close(fd2);
        } catch (e4) {
          closeErr = e4;
        }
      }
      if (closeErr) {
        throw closeErr;
      }
    }
    function utimesMillisSync(path3, atime, mtime) {
      const fd2 = fs7.openSync(path3, "r+");
      fs7.futimesSync(fd2, atime, mtime);
      return fs7.closeSync(fd2);
    }
    module.exports = {
      utimesMillis: u5(utimesMillis),
      utimesMillisSync
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/util/stat.js
var require_stat = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/util/stat.js"(exports, module) {
    "use strict";
    var fs7 = require_fs();
    var path3 = __require("path");
    var u5 = require_universalify().fromPromise;
    function getStats(src, dest, opts2) {
      const statFunc = opts2.dereference ? (file) => fs7.stat(file, { bigint: true }) : (file) => fs7.lstat(file, { bigint: true });
      return Promise.all([
        statFunc(src),
        statFunc(dest).catch((err2) => {
          if (err2.code === "ENOENT") return null;
          throw err2;
        })
      ]).then(([srcStat, destStat]) => ({ srcStat, destStat }));
    }
    function getStatsSync(src, dest, opts2) {
      let destStat;
      const statFunc = opts2.dereference ? (file) => fs7.statSync(file, { bigint: true }) : (file) => fs7.lstatSync(file, { bigint: true });
      const srcStat = statFunc(src);
      try {
        destStat = statFunc(dest);
      } catch (err2) {
        if (err2.code === "ENOENT") return { srcStat, destStat: null };
        throw err2;
      }
      return { srcStat, destStat };
    }
    async function checkPaths(src, dest, funcName, opts2) {
      const { srcStat, destStat } = await getStats(src, dest, opts2);
      if (destStat) {
        if (areIdentical(srcStat, destStat)) {
          const srcBaseName = path3.basename(src);
          const destBaseName = path3.basename(dest);
          if (funcName === "move" && srcBaseName !== destBaseName && srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {
            return { srcStat, destStat, isChangingCase: true };
          }
          throw new Error("Source and destination must not be the same.");
        }
        if (srcStat.isDirectory() && !destStat.isDirectory()) {
          throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`);
        }
        if (!srcStat.isDirectory() && destStat.isDirectory()) {
          throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`);
        }
      }
      if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
        throw new Error(errMsg(src, dest, funcName));
      }
      return { srcStat, destStat };
    }
    function checkPathsSync(src, dest, funcName, opts2) {
      const { srcStat, destStat } = getStatsSync(src, dest, opts2);
      if (destStat) {
        if (areIdentical(srcStat, destStat)) {
          const srcBaseName = path3.basename(src);
          const destBaseName = path3.basename(dest);
          if (funcName === "move" && srcBaseName !== destBaseName && srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {
            return { srcStat, destStat, isChangingCase: true };
          }
          throw new Error("Source and destination must not be the same.");
        }
        if (srcStat.isDirectory() && !destStat.isDirectory()) {
          throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`);
        }
        if (!srcStat.isDirectory() && destStat.isDirectory()) {
          throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`);
        }
      }
      if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
        throw new Error(errMsg(src, dest, funcName));
      }
      return { srcStat, destStat };
    }
    async function checkParentPaths(src, srcStat, dest, funcName) {
      const srcParent = path3.resolve(path3.dirname(src));
      const destParent = path3.resolve(path3.dirname(dest));
      if (destParent === srcParent || destParent === path3.parse(destParent).root) return;
      let destStat;
      try {
        destStat = await fs7.stat(destParent, { bigint: true });
      } catch (err2) {
        if (err2.code === "ENOENT") return;
        throw err2;
      }
      if (areIdentical(srcStat, destStat)) {
        throw new Error(errMsg(src, dest, funcName));
      }
      return checkParentPaths(src, srcStat, destParent, funcName);
    }
    function checkParentPathsSync(src, srcStat, dest, funcName) {
      const srcParent = path3.resolve(path3.dirname(src));
      const destParent = path3.resolve(path3.dirname(dest));
      if (destParent === srcParent || destParent === path3.parse(destParent).root) return;
      let destStat;
      try {
        destStat = fs7.statSync(destParent, { bigint: true });
      } catch (err2) {
        if (err2.code === "ENOENT") return;
        throw err2;
      }
      if (areIdentical(srcStat, destStat)) {
        throw new Error(errMsg(src, dest, funcName));
      }
      return checkParentPathsSync(src, srcStat, destParent, funcName);
    }
    function areIdentical(srcStat, destStat) {
      return destStat.ino !== void 0 && destStat.dev !== void 0 && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev;
    }
    function isSrcSubdir(src, dest) {
      const srcArr = path3.resolve(src).split(path3.sep).filter((i5) => i5);
      const destArr = path3.resolve(dest).split(path3.sep).filter((i5) => i5);
      return srcArr.every((cur, i5) => destArr[i5] === cur);
    }
    function errMsg(src, dest, funcName) {
      return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.`;
    }
    module.exports = {
      // checkPaths
      checkPaths: u5(checkPaths),
      checkPathsSync,
      // checkParent
      checkParentPaths: u5(checkParentPaths),
      checkParentPathsSync,
      // Misc
      isSrcSubdir,
      areIdentical
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/util/async.js
var require_async = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/util/async.js"(exports, module) {
    "use strict";
    async function asyncIteratorConcurrentProcess(iterator2, fn) {
      const promises = [];
      for await (const item of iterator2) {
        promises.push(
          fn(item).then(
            () => null,
            (err2) => err2 ?? new Error("unknown error")
          )
        );
      }
      await Promise.all(
        promises.map(
          (promise) => promise.then((possibleErr) => {
            if (possibleErr !== null) throw possibleErr;
          })
        )
      );
    }
    module.exports = {
      asyncIteratorConcurrentProcess
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/copy/copy.js
var require_copy = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/copy/copy.js"(exports, module) {
    "use strict";
    var fs7 = require_fs();
    var path3 = __require("path");
    var { mkdirs } = require_mkdirs();
    var { pathExists } = require_path_exists();
    var { utimesMillis } = require_utimes();
    var stat = require_stat();
    var { asyncIteratorConcurrentProcess } = require_async();
    async function copy2(src, dest, opts2 = {}) {
      if (typeof opts2 === "function") {
        opts2 = { filter: opts2 };
      }
      opts2.clobber = "clobber" in opts2 ? !!opts2.clobber : true;
      opts2.overwrite = "overwrite" in opts2 ? !!opts2.overwrite : opts2.clobber;
      if (opts2.preserveTimestamps && process.arch === "ia32") {
        process.emitWarning(
          "Using the preserveTimestamps option in 32-bit node is not recommended;\n\n	see https://github.com/jprichardson/node-fs-extra/issues/269",
          "Warning",
          "fs-extra-WARN0001"
        );
      }
      const { srcStat, destStat } = await stat.checkPaths(src, dest, "copy", opts2);
      await stat.checkParentPaths(src, srcStat, dest, "copy");
      const include = await runFilter(src, dest, opts2);
      if (!include) return;
      const destParent = path3.dirname(dest);
      const dirExists = await pathExists(destParent);
      if (!dirExists) {
        await mkdirs(destParent);
      }
      await getStatsAndPerformCopy(destStat, src, dest, opts2);
    }
    async function runFilter(src, dest, opts2) {
      if (!opts2.filter) return true;
      return opts2.filter(src, dest);
    }
    async function getStatsAndPerformCopy(destStat, src, dest, opts2) {
      const statFn = opts2.dereference ? fs7.stat : fs7.lstat;
      const srcStat = await statFn(src);
      if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts2);
      if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts2);
      if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts2);
      if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`);
      if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`);
      throw new Error(`Unknown file: ${src}`);
    }
    async function onFile(srcStat, destStat, src, dest, opts2) {
      if (!destStat) return copyFile(srcStat, src, dest, opts2);
      if (opts2.overwrite) {
        await fs7.unlink(dest);
        return copyFile(srcStat, src, dest, opts2);
      }
      if (opts2.errorOnExist) {
        throw new Error(`'${dest}' already exists`);
      }
    }
    async function copyFile(srcStat, src, dest, opts2) {
      await fs7.copyFile(src, dest);
      if (opts2.preserveTimestamps) {
        if (fileIsNotWritable(srcStat.mode)) {
          await makeFileWritable(dest, srcStat.mode);
        }
        const updatedSrcStat = await fs7.stat(src);
        await utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime);
      }
      return fs7.chmod(dest, srcStat.mode);
    }
    function fileIsNotWritable(srcMode) {
      return (srcMode & 128) === 0;
    }
    function makeFileWritable(dest, srcMode) {
      return fs7.chmod(dest, srcMode | 128);
    }
    async function onDir(srcStat, destStat, src, dest, opts2) {
      if (!destStat) {
        await fs7.mkdir(dest);
      }
      await asyncIteratorConcurrentProcess(await fs7.opendir(src), async (item) => {
        const srcItem = path3.join(src, item.name);
        const destItem = path3.join(dest, item.name);
        const include = await runFilter(srcItem, destItem, opts2);
        if (include) {
          const { destStat: destStat2 } = await stat.checkPaths(srcItem, destItem, "copy", opts2);
          await getStatsAndPerformCopy(destStat2, srcItem, destItem, opts2);
        }
      });
      if (!destStat) {
        await fs7.chmod(dest, srcStat.mode);
      }
    }
    async function onLink(destStat, src, dest, opts2) {
      let resolvedSrc = await fs7.readlink(src);
      if (opts2.dereference) {
        resolvedSrc = path3.resolve(process.cwd(), resolvedSrc);
      }
      if (!destStat) {
        return fs7.symlink(resolvedSrc, dest);
      }
      let resolvedDest = null;
      try {
        resolvedDest = await fs7.readlink(dest);
      } catch (e4) {
        if (e4.code === "EINVAL" || e4.code === "UNKNOWN") return fs7.symlink(resolvedSrc, dest);
        throw e4;
      }
      if (opts2.dereference) {
        resolvedDest = path3.resolve(process.cwd(), resolvedDest);
      }
      if (resolvedSrc !== resolvedDest) {
        if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {
          throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`);
        }
        if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
          throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`);
        }
      }
      await fs7.unlink(dest);
      return fs7.symlink(resolvedSrc, dest);
    }
    module.exports = copy2;
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/copy/copy-sync.js
var require_copy_sync = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/copy/copy-sync.js"(exports, module) {
    "use strict";
    var fs7 = require_graceful_fs();
    var path3 = __require("path");
    var mkdirsSync = require_mkdirs().mkdirsSync;
    var utimesMillisSync = require_utimes().utimesMillisSync;
    var stat = require_stat();
    function copySync(src, dest, opts2) {
      if (typeof opts2 === "function") {
        opts2 = { filter: opts2 };
      }
      opts2 = opts2 || {};
      opts2.clobber = "clobber" in opts2 ? !!opts2.clobber : true;
      opts2.overwrite = "overwrite" in opts2 ? !!opts2.overwrite : opts2.clobber;
      if (opts2.preserveTimestamps && process.arch === "ia32") {
        process.emitWarning(
          "Using the preserveTimestamps option in 32-bit node is not recommended;\n\n	see https://github.com/jprichardson/node-fs-extra/issues/269",
          "Warning",
          "fs-extra-WARN0002"
        );
      }
      const { srcStat, destStat } = stat.checkPathsSync(src, dest, "copy", opts2);
      stat.checkParentPathsSync(src, srcStat, dest, "copy");
      if (opts2.filter && !opts2.filter(src, dest)) return;
      const destParent = path3.dirname(dest);
      if (!fs7.existsSync(destParent)) mkdirsSync(destParent);
      return getStats(destStat, src, dest, opts2);
    }
    function getStats(destStat, src, dest, opts2) {
      const statSync = opts2.dereference ? fs7.statSync : fs7.lstatSync;
      const srcStat = statSync(src);
      if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts2);
      else if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts2);
      else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts2);
      else if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`);
      else if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`);
      throw new Error(`Unknown file: ${src}`);
    }
    function onFile(srcStat, destStat, src, dest, opts2) {
      if (!destStat) return copyFile(srcStat, src, dest, opts2);
      return mayCopyFile(srcStat, src, dest, opts2);
    }
    function mayCopyFile(srcStat, src, dest, opts2) {
      if (opts2.overwrite) {
        fs7.unlinkSync(dest);
        return copyFile(srcStat, src, dest, opts2);
      } else if (opts2.errorOnExist) {
        throw new Error(`'${dest}' already exists`);
      }
    }
    function copyFile(srcStat, src, dest, opts2) {
      fs7.copyFileSync(src, dest);
      if (opts2.preserveTimestamps) handleTimestamps(srcStat.mode, src, dest);
      return setDestMode(dest, srcStat.mode);
    }
    function handleTimestamps(srcMode, src, dest) {
      if (fileIsNotWritable(srcMode)) makeFileWritable(dest, srcMode);
      return setDestTimestamps(src, dest);
    }
    function fileIsNotWritable(srcMode) {
      return (srcMode & 128) === 0;
    }
    function makeFileWritable(dest, srcMode) {
      return setDestMode(dest, srcMode | 128);
    }
    function setDestMode(dest, srcMode) {
      return fs7.chmodSync(dest, srcMode);
    }
    function setDestTimestamps(src, dest) {
      const updatedSrcStat = fs7.statSync(src);
      return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime);
    }
    function onDir(srcStat, destStat, src, dest, opts2) {
      if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts2);
      return copyDir(src, dest, opts2);
    }
    function mkDirAndCopy(srcMode, src, dest, opts2) {
      fs7.mkdirSync(dest);
      copyDir(src, dest, opts2);
      return setDestMode(dest, srcMode);
    }
    function copyDir(src, dest, opts2) {
      const dir = fs7.opendirSync(src);
      try {
        let dirent;
        while ((dirent = dir.readSync()) !== null) {
          copyDirItem(dirent.name, src, dest, opts2);
        }
      } finally {
        dir.closeSync();
      }
    }
    function copyDirItem(item, src, dest, opts2) {
      const srcItem = path3.join(src, item);
      const destItem = path3.join(dest, item);
      if (opts2.filter && !opts2.filter(srcItem, destItem)) return;
      const { destStat } = stat.checkPathsSync(srcItem, destItem, "copy", opts2);
      return getStats(destStat, srcItem, destItem, opts2);
    }
    function onLink(destStat, src, dest, opts2) {
      let resolvedSrc = fs7.readlinkSync(src);
      if (opts2.dereference) {
        resolvedSrc = path3.resolve(process.cwd(), resolvedSrc);
      }
      if (!destStat) {
        return fs7.symlinkSync(resolvedSrc, dest);
      } else {
        let resolvedDest;
        try {
          resolvedDest = fs7.readlinkSync(dest);
        } catch (err2) {
          if (err2.code === "EINVAL" || err2.code === "UNKNOWN") return fs7.symlinkSync(resolvedSrc, dest);
          throw err2;
        }
        if (opts2.dereference) {
          resolvedDest = path3.resolve(process.cwd(), resolvedDest);
        }
        if (resolvedSrc !== resolvedDest) {
          if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {
            throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`);
          }
          if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
            throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`);
          }
        }
        return copyLink(resolvedSrc, dest);
      }
    }
    function copyLink(resolvedSrc, dest) {
      fs7.unlinkSync(dest);
      return fs7.symlinkSync(resolvedSrc, dest);
    }
    module.exports = copySync;
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/copy/index.js
var require_copy2 = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/copy/index.js"(exports, module) {
    "use strict";
    var u5 = require_universalify().fromPromise;
    module.exports = {
      copy: u5(require_copy()),
      copySync: require_copy_sync()
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/remove/index.js
var require_remove = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/remove/index.js"(exports, module) {
    "use strict";
    var fs7 = require_graceful_fs();
    var u5 = require_universalify().fromCallback;
    function remove(path3, callback) {
      fs7.rm(path3, { recursive: true, force: true }, callback);
    }
    function removeSync(path3) {
      fs7.rmSync(path3, { recursive: true, force: true });
    }
    module.exports = {
      remove: u5(remove),
      removeSync
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/empty/index.js
var require_empty = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/empty/index.js"(exports, module) {
    "use strict";
    var u5 = require_universalify().fromPromise;
    var fs7 = require_fs();
    var path3 = __require("path");
    var mkdir2 = require_mkdirs();
    var remove = require_remove();
    var emptyDir = u5(async function emptyDir2(dir) {
      let items;
      try {
        items = await fs7.readdir(dir);
      } catch {
        return mkdir2.mkdirs(dir);
      }
      return Promise.all(items.map((item) => remove.remove(path3.join(dir, item))));
    });
    function emptyDirSync(dir) {
      let items;
      try {
        items = fs7.readdirSync(dir);
      } catch {
        return mkdir2.mkdirsSync(dir);
      }
      items.forEach((item) => {
        item = path3.join(dir, item);
        remove.removeSync(item);
      });
    }
    module.exports = {
      emptyDirSync,
      emptydirSync: emptyDirSync,
      emptyDir,
      emptydir: emptyDir
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/file.js
var require_file = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/file.js"(exports, module) {
    "use strict";
    var u5 = require_universalify().fromPromise;
    var path3 = __require("path");
    var fs7 = require_fs();
    var mkdir2 = require_mkdirs();
    async function createFile(file) {
      let stats;
      try {
        stats = await fs7.stat(file);
      } catch {
      }
      if (stats && stats.isFile()) return;
      const dir = path3.dirname(file);
      let dirStats = null;
      try {
        dirStats = await fs7.stat(dir);
      } catch (err2) {
        if (err2.code === "ENOENT") {
          await mkdir2.mkdirs(dir);
          await fs7.writeFile(file, "");
          return;
        } else {
          throw err2;
        }
      }
      if (dirStats.isDirectory()) {
        await fs7.writeFile(file, "");
      } else {
        await fs7.readdir(dir);
      }
    }
    function createFileSync(file) {
      let stats;
      try {
        stats = fs7.statSync(file);
      } catch {
      }
      if (stats && stats.isFile()) return;
      const dir = path3.dirname(file);
      try {
        if (!fs7.statSync(dir).isDirectory()) {
          fs7.readdirSync(dir);
        }
      } catch (err2) {
        if (err2 && err2.code === "ENOENT") mkdir2.mkdirsSync(dir);
        else throw err2;
      }
      fs7.writeFileSync(file, "");
    }
    module.exports = {
      createFile: u5(createFile),
      createFileSync
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/link.js
var require_link = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/link.js"(exports, module) {
    "use strict";
    var u5 = require_universalify().fromPromise;
    var path3 = __require("path");
    var fs7 = require_fs();
    var mkdir2 = require_mkdirs();
    var { pathExists } = require_path_exists();
    var { areIdentical } = require_stat();
    async function createLink(srcpath, dstpath) {
      let dstStat;
      try {
        dstStat = await fs7.lstat(dstpath);
      } catch {
      }
      let srcStat;
      try {
        srcStat = await fs7.lstat(srcpath);
      } catch (err2) {
        err2.message = err2.message.replace("lstat", "ensureLink");
        throw err2;
      }
      if (dstStat && areIdentical(srcStat, dstStat)) return;
      const dir = path3.dirname(dstpath);
      const dirExists = await pathExists(dir);
      if (!dirExists) {
        await mkdir2.mkdirs(dir);
      }
      await fs7.link(srcpath, dstpath);
    }
    function createLinkSync(srcpath, dstpath) {
      let dstStat;
      try {
        dstStat = fs7.lstatSync(dstpath);
      } catch {
      }
      try {
        const srcStat = fs7.lstatSync(srcpath);
        if (dstStat && areIdentical(srcStat, dstStat)) return;
      } catch (err2) {
        err2.message = err2.message.replace("lstat", "ensureLink");
        throw err2;
      }
      const dir = path3.dirname(dstpath);
      const dirExists = fs7.existsSync(dir);
      if (dirExists) return fs7.linkSync(srcpath, dstpath);
      mkdir2.mkdirsSync(dir);
      return fs7.linkSync(srcpath, dstpath);
    }
    module.exports = {
      createLink: u5(createLink),
      createLinkSync
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/symlink-paths.js
var require_symlink_paths = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/symlink-paths.js"(exports, module) {
    "use strict";
    var path3 = __require("path");
    var fs7 = require_fs();
    var { pathExists } = require_path_exists();
    var u5 = require_universalify().fromPromise;
    async function symlinkPaths(srcpath, dstpath) {
      if (path3.isAbsolute(srcpath)) {
        try {
          await fs7.lstat(srcpath);
        } catch (err2) {
          err2.message = err2.message.replace("lstat", "ensureSymlink");
          throw err2;
        }
        return {
          toCwd: srcpath,
          toDst: srcpath
        };
      }
      const dstdir = path3.dirname(dstpath);
      const relativeToDst = path3.join(dstdir, srcpath);
      const exists = await pathExists(relativeToDst);
      if (exists) {
        return {
          toCwd: relativeToDst,
          toDst: srcpath
        };
      }
      try {
        await fs7.lstat(srcpath);
      } catch (err2) {
        err2.message = err2.message.replace("lstat", "ensureSymlink");
        throw err2;
      }
      return {
        toCwd: srcpath,
        toDst: path3.relative(dstdir, srcpath)
      };
    }
    function symlinkPathsSync(srcpath, dstpath) {
      if (path3.isAbsolute(srcpath)) {
        const exists2 = fs7.existsSync(srcpath);
        if (!exists2) throw new Error("absolute srcpath does not exist");
        return {
          toCwd: srcpath,
          toDst: srcpath
        };
      }
      const dstdir = path3.dirname(dstpath);
      const relativeToDst = path3.join(dstdir, srcpath);
      const exists = fs7.existsSync(relativeToDst);
      if (exists) {
        return {
          toCwd: relativeToDst,
          toDst: srcpath
        };
      }
      const srcExists = fs7.existsSync(srcpath);
      if (!srcExists) throw new Error("relative srcpath does not exist");
      return {
        toCwd: srcpath,
        toDst: path3.relative(dstdir, srcpath)
      };
    }
    module.exports = {
      symlinkPaths: u5(symlinkPaths),
      symlinkPathsSync
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/symlink-type.js
var require_symlink_type = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/symlink-type.js"(exports, module) {
    "use strict";
    var fs7 = require_fs();
    var u5 = require_universalify().fromPromise;
    async function symlinkType(srcpath, type) {
      if (type) return type;
      let stats;
      try {
        stats = await fs7.lstat(srcpath);
      } catch {
        return "file";
      }
      return stats && stats.isDirectory() ? "dir" : "file";
    }
    function symlinkTypeSync(srcpath, type) {
      if (type) return type;
      let stats;
      try {
        stats = fs7.lstatSync(srcpath);
      } catch {
        return "file";
      }
      return stats && stats.isDirectory() ? "dir" : "file";
    }
    module.exports = {
      symlinkType: u5(symlinkType),
      symlinkTypeSync
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/symlink.js
var require_symlink = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/symlink.js"(exports, module) {
    "use strict";
    var u5 = require_universalify().fromPromise;
    var path3 = __require("path");
    var fs7 = require_fs();
    var { mkdirs, mkdirsSync } = require_mkdirs();
    var { symlinkPaths, symlinkPathsSync } = require_symlink_paths();
    var { symlinkType, symlinkTypeSync } = require_symlink_type();
    var { pathExists } = require_path_exists();
    var { areIdentical } = require_stat();
    async function createSymlink(srcpath, dstpath, type) {
      let stats;
      try {
        stats = await fs7.lstat(dstpath);
      } catch {
      }
      if (stats && stats.isSymbolicLink()) {
        const [srcStat, dstStat] = await Promise.all([
          fs7.stat(srcpath),
          fs7.stat(dstpath)
        ]);
        if (areIdentical(srcStat, dstStat)) return;
      }
      const relative = await symlinkPaths(srcpath, dstpath);
      srcpath = relative.toDst;
      const toType = await symlinkType(relative.toCwd, type);
      const dir = path3.dirname(dstpath);
      if (!await pathExists(dir)) {
        await mkdirs(dir);
      }
      return fs7.symlink(srcpath, dstpath, toType);
    }
    function createSymlinkSync(srcpath, dstpath, type) {
      let stats;
      try {
        stats = fs7.lstatSync(dstpath);
      } catch {
      }
      if (stats && stats.isSymbolicLink()) {
        const srcStat = fs7.statSync(srcpath);
        const dstStat = fs7.statSync(dstpath);
        if (areIdentical(srcStat, dstStat)) return;
      }
      const relative = symlinkPathsSync(srcpath, dstpath);
      srcpath = relative.toDst;
      type = symlinkTypeSync(relative.toCwd, type);
      const dir = path3.dirname(dstpath);
      const exists = fs7.existsSync(dir);
      if (exists) return fs7.symlinkSync(srcpath, dstpath, type);
      mkdirsSync(dir);
      return fs7.symlinkSync(srcpath, dstpath, type);
    }
    module.exports = {
      createSymlink: u5(createSymlink),
      createSymlinkSync
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/index.js
var require_ensure = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/index.js"(exports, module) {
    "use strict";
    var { createFile, createFileSync } = require_file();
    var { createLink, createLinkSync } = require_link();
    var { createSymlink, createSymlinkSync } = require_symlink();
    module.exports = {
      // file
      createFile,
      createFileSync,
      ensureFile: createFile,
      ensureFileSync: createFileSync,
      // link
      createLink,
      createLinkSync,
      ensureLink: createLink,
      ensureLinkSync: createLinkSync,
      // symlink
      createSymlink,
      createSymlinkSync,
      ensureSymlink: createSymlink,
      ensureSymlinkSync: createSymlinkSync
    };
  }
});

// ../../node_modules/.pnpm/jsonfile@6.2.0/node_modules/jsonfile/utils.js
var require_utils2 = __commonJS({
  "../../node_modules/.pnpm/jsonfile@6.2.0/node_modules/jsonfile/utils.js"(exports, module) {
    function stringify(obj, { EOL = "\n", finalEOL = true, replacer = null, spaces } = {}) {
      const EOF = finalEOL ? EOL : "";
      const str = JSON.stringify(obj, replacer, spaces);
      return str.replace(/\n/g, EOL) + EOF;
    }
    function stripBom(content) {
      if (Buffer.isBuffer(content)) content = content.toString("utf8");
      return content.replace(/^\uFEFF/, "");
    }
    module.exports = { stringify, stripBom };
  }
});

// ../../node_modules/.pnpm/jsonfile@6.2.0/node_modules/jsonfile/index.js
var require_jsonfile = __commonJS({
  "../../node_modules/.pnpm/jsonfile@6.2.0/node_modules/jsonfile/index.js"(exports, module) {
    var _fs;
    try {
      _fs = require_graceful_fs();
    } catch (_) {
      _fs = __require("fs");
    }
    var universalify = require_universalify();
    var { stringify, stripBom } = require_utils2();
    async function _readFile(file, options = {}) {
      if (typeof options === "string") {
        options = { encoding: options };
      }
      const fs7 = options.fs || _fs;
      const shouldThrow = "throws" in options ? options.throws : true;
      let data2 = await universalify.fromCallback(fs7.readFile)(file, options);
      data2 = stripBom(data2);
      let obj;
      try {
        obj = JSON.parse(data2, options ? options.reviver : null);
      } catch (err2) {
        if (shouldThrow) {
          err2.message = `${file}: ${err2.message}`;
          throw err2;
        } else {
          return null;
        }
      }
      return obj;
    }
    var readFile2 = universalify.fromPromise(_readFile);
    function readFileSync(file, options = {}) {
      if (typeof options === "string") {
        options = { encoding: options };
      }
      const fs7 = options.fs || _fs;
      const shouldThrow = "throws" in options ? options.throws : true;
      try {
        let content = fs7.readFileSync(file, options);
        content = stripBom(content);
        return JSON.parse(content, options.reviver);
      } catch (err2) {
        if (shouldThrow) {
          err2.message = `${file}: ${err2.message}`;
          throw err2;
        } else {
          return null;
        }
      }
    }
    async function _writeFile(file, obj, options = {}) {
      const fs7 = options.fs || _fs;
      const str = stringify(obj, options);
      await universalify.fromCallback(fs7.writeFile)(file, str, options);
    }
    var writeFile2 = universalify.fromPromise(_writeFile);
    function writeFileSync(file, obj, options = {}) {
      const fs7 = options.fs || _fs;
      const str = stringify(obj, options);
      return fs7.writeFileSync(file, str, options);
    }
    module.exports = {
      readFile: readFile2,
      readFileSync,
      writeFile: writeFile2,
      writeFileSync
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/json/jsonfile.js
var require_jsonfile2 = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/json/jsonfile.js"(exports, module) {
    "use strict";
    var jsonFile = require_jsonfile();
    module.exports = {
      // jsonfile exports
      readJson: jsonFile.readFile,
      readJsonSync: jsonFile.readFileSync,
      writeJson: jsonFile.writeFile,
      writeJsonSync: jsonFile.writeFileSync
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/output-file/index.js
var require_output_file = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/output-file/index.js"(exports, module) {
    "use strict";
    var u5 = require_universalify().fromPromise;
    var fs7 = require_fs();
    var path3 = __require("path");
    var mkdir2 = require_mkdirs();
    var pathExists = require_path_exists().pathExists;
    async function outputFile(file, data2, encoding = "utf-8") {
      const dir = path3.dirname(file);
      if (!await pathExists(dir)) {
        await mkdir2.mkdirs(dir);
      }
      return fs7.writeFile(file, data2, encoding);
    }
    function outputFileSync(file, ...args) {
      const dir = path3.dirname(file);
      if (!fs7.existsSync(dir)) {
        mkdir2.mkdirsSync(dir);
      }
      fs7.writeFileSync(file, ...args);
    }
    module.exports = {
      outputFile: u5(outputFile),
      outputFileSync
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/json/output-json.js
var require_output_json = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/json/output-json.js"(exports, module) {
    "use strict";
    var { stringify } = require_utils2();
    var { outputFile } = require_output_file();
    async function outputJson(file, data2, options = {}) {
      const str = stringify(data2, options);
      await outputFile(file, str, options);
    }
    module.exports = outputJson;
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/json/output-json-sync.js
var require_output_json_sync = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/json/output-json-sync.js"(exports, module) {
    "use strict";
    var { stringify } = require_utils2();
    var { outputFileSync } = require_output_file();
    function outputJsonSync(file, data2, options) {
      const str = stringify(data2, options);
      outputFileSync(file, str, options);
    }
    module.exports = outputJsonSync;
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/json/index.js
var require_json = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/json/index.js"(exports, module) {
    "use strict";
    var u5 = require_universalify().fromPromise;
    var jsonFile = require_jsonfile2();
    jsonFile.outputJson = u5(require_output_json());
    jsonFile.outputJsonSync = require_output_json_sync();
    jsonFile.outputJSON = jsonFile.outputJson;
    jsonFile.outputJSONSync = jsonFile.outputJsonSync;
    jsonFile.writeJSON = jsonFile.writeJson;
    jsonFile.writeJSONSync = jsonFile.writeJsonSync;
    jsonFile.readJSON = jsonFile.readJson;
    jsonFile.readJSONSync = jsonFile.readJsonSync;
    module.exports = jsonFile;
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/move/move.js
var require_move = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/move/move.js"(exports, module) {
    "use strict";
    var fs7 = require_fs();
    var path3 = __require("path");
    var { copy: copy2 } = require_copy2();
    var { remove } = require_remove();
    var { mkdirp } = require_mkdirs();
    var { pathExists } = require_path_exists();
    var stat = require_stat();
    async function move(src, dest, opts2 = {}) {
      const overwrite = opts2.overwrite || opts2.clobber || false;
      const { srcStat, isChangingCase = false } = await stat.checkPaths(src, dest, "move", opts2);
      await stat.checkParentPaths(src, srcStat, dest, "move");
      const destParent = path3.dirname(dest);
      const parsedParentPath = path3.parse(destParent);
      if (parsedParentPath.root !== destParent) {
        await mkdirp(destParent);
      }
      return doRename(src, dest, overwrite, isChangingCase);
    }
    async function doRename(src, dest, overwrite, isChangingCase) {
      if (!isChangingCase) {
        if (overwrite) {
          await remove(dest);
        } else if (await pathExists(dest)) {
          throw new Error("dest already exists.");
        }
      }
      try {
        await fs7.rename(src, dest);
      } catch (err2) {
        if (err2.code !== "EXDEV") {
          throw err2;
        }
        await moveAcrossDevice(src, dest, overwrite);
      }
    }
    async function moveAcrossDevice(src, dest, overwrite) {
      const opts2 = {
        overwrite,
        errorOnExist: true,
        preserveTimestamps: true
      };
      await copy2(src, dest, opts2);
      return remove(src);
    }
    module.exports = move;
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/move/move-sync.js
var require_move_sync = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/move/move-sync.js"(exports, module) {
    "use strict";
    var fs7 = require_graceful_fs();
    var path3 = __require("path");
    var copySync = require_copy2().copySync;
    var removeSync = require_remove().removeSync;
    var mkdirpSync = require_mkdirs().mkdirpSync;
    var stat = require_stat();
    function moveSync(src, dest, opts2) {
      opts2 = opts2 || {};
      const overwrite = opts2.overwrite || opts2.clobber || false;
      const { srcStat, isChangingCase = false } = stat.checkPathsSync(src, dest, "move", opts2);
      stat.checkParentPathsSync(src, srcStat, dest, "move");
      if (!isParentRoot(dest)) mkdirpSync(path3.dirname(dest));
      return doRename(src, dest, overwrite, isChangingCase);
    }
    function isParentRoot(dest) {
      const parent = path3.dirname(dest);
      const parsedPath = path3.parse(parent);
      return parsedPath.root === parent;
    }
    function doRename(src, dest, overwrite, isChangingCase) {
      if (isChangingCase) return rename(src, dest, overwrite);
      if (overwrite) {
        removeSync(dest);
        return rename(src, dest, overwrite);
      }
      if (fs7.existsSync(dest)) throw new Error("dest already exists.");
      return rename(src, dest, overwrite);
    }
    function rename(src, dest, overwrite) {
      try {
        fs7.renameSync(src, dest);
      } catch (err2) {
        if (err2.code !== "EXDEV") throw err2;
        return moveAcrossDevice(src, dest, overwrite);
      }
    }
    function moveAcrossDevice(src, dest, overwrite) {
      const opts2 = {
        overwrite,
        errorOnExist: true,
        preserveTimestamps: true
      };
      copySync(src, dest, opts2);
      return removeSync(src);
    }
    module.exports = moveSync;
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/move/index.js
var require_move2 = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/move/index.js"(exports, module) {
    "use strict";
    var u5 = require_universalify().fromPromise;
    module.exports = {
      move: u5(require_move()),
      moveSync: require_move_sync()
    };
  }
});

// ../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/index.js
var require_lib = __commonJS({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/index.js"(exports, module) {
    "use strict";
    module.exports = {
      // Export promiseified graceful-fs:
      ...require_fs(),
      // Export extra methods:
      ...require_copy2(),
      ...require_empty(),
      ...require_ensure(),
      ...require_json(),
      ...require_mkdirs(),
      ...require_move2(),
      ...require_output_file(),
      ...require_path_exists(),
      ...require_remove()
    };
  }
});

// ../../node_modules/.pnpm/retry@0.12.0/node_modules/retry/lib/retry_operation.js
var require_retry_operation = __commonJS({
  "../../node_modules/.pnpm/retry@0.12.0/node_modules/retry/lib/retry_operation.js"(exports, module) {
    function RetryOperation(timeouts, options) {
      if (typeof options === "boolean") {
        options = { forever: options };
      }
      this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));
      this._timeouts = timeouts;
      this._options = options || {};
      this._maxRetryTime = options && options.maxRetryTime || Infinity;
      this._fn = null;
      this._errors = [];
      this._attempts = 1;
      this._operationTimeout = null;
      this._operationTimeoutCb = null;
      this._timeout = null;
      this._operationStart = null;
      if (this._options.forever) {
        this._cachedTimeouts = this._timeouts.slice(0);
      }
    }
    module.exports = RetryOperation;
    RetryOperation.prototype.reset = function() {
      this._attempts = 1;
      this._timeouts = this._originalTimeouts;
    };
    RetryOperation.prototype.stop = function() {
      if (this._timeout) {
        clearTimeout(this._timeout);
      }
      this._timeouts = [];
      this._cachedTimeouts = null;
    };
    RetryOperation.prototype.retry = function(err2) {
      if (this._timeout) {
        clearTimeout(this._timeout);
      }
      if (!err2) {
        return false;
      }
      var currentTime = (/* @__PURE__ */ new Date()).getTime();
      if (err2 && currentTime - this._operationStart >= this._maxRetryTime) {
        this._errors.unshift(new Error("RetryOperation timeout occurred"));
        return false;
      }
      this._errors.push(err2);
      var timeout = this._timeouts.shift();
      if (timeout === void 0) {
        if (this._cachedTimeouts) {
          this._errors.splice(this._errors.length - 1, this._errors.length);
          this._timeouts = this._cachedTimeouts.slice(0);
          timeout = this._timeouts.shift();
        } else {
          return false;
        }
      }
      var self2 = this;
      var timer2 = setTimeout(function() {
        self2._attempts++;
        if (self2._operationTimeoutCb) {
          self2._timeout = setTimeout(function() {
            self2._operationTimeoutCb(self2._attempts);
          }, self2._operationTimeout);
          if (self2._options.unref) {
            self2._timeout.unref();
          }
        }
        self2._fn(self2._attempts);
      }, timeout);
      if (this._options.unref) {
        timer2.unref();
      }
      return true;
    };
    RetryOperation.prototype.attempt = function(fn, timeoutOps) {
      this._fn = fn;
      if (timeoutOps) {
        if (timeoutOps.timeout) {
          this._operationTimeout = timeoutOps.timeout;
        }
        if (timeoutOps.cb) {
          this._operationTimeoutCb = timeoutOps.cb;
        }
      }
      var self2 = this;
      if (this._operationTimeoutCb) {
        this._timeout = setTimeout(function() {
          self2._operationTimeoutCb();
        }, self2._operationTimeout);
      }
      this._operationStart = (/* @__PURE__ */ new Date()).getTime();
      this._fn(this._attempts);
    };
    RetryOperation.prototype.try = function(fn) {
      console.log("Using RetryOperation.try() is deprecated");
      this.attempt(fn);
    };
    RetryOperation.prototype.start = function(fn) {
      console.log("Using RetryOperation.start() is deprecated");
      this.attempt(fn);
    };
    RetryOperation.prototype.start = RetryOperation.prototype.try;
    RetryOperation.prototype.errors = function() {
      return this._errors;
    };
    RetryOperation.prototype.attempts = function() {
      return this._attempts;
    };
    RetryOperation.prototype.mainError = function() {
      if (this._errors.length === 0) {
        return null;
      }
      var counts = {};
      var mainError = null;
      var mainErrorCount = 0;
      for (var i5 = 0; i5 < this._errors.length; i5++) {
        var error = this._errors[i5];
        var message = error.message;
        var count = (counts[message] || 0) + 1;
        counts[message] = count;
        if (count >= mainErrorCount) {
          mainError = error;
          mainErrorCount = count;
        }
      }
      return mainError;
    };
  }
});

// ../../node_modules/.pnpm/retry@0.12.0/node_modules/retry/lib/retry.js
var require_retry = __commonJS({
  "../../node_modules/.pnpm/retry@0.12.0/node_modules/retry/lib/retry.js"(exports) {
    var RetryOperation = require_retry_operation();
    exports.operation = function(options) {
      var timeouts = exports.timeouts(options);
      return new RetryOperation(timeouts, {
        forever: options && options.forever,
        unref: options && options.unref,
        maxRetryTime: options && options.maxRetryTime
      });
    };
    exports.timeouts = function(options) {
      if (options instanceof Array) {
        return [].concat(options);
      }
      var opts2 = {
        retries: 10,
        factor: 2,
        minTimeout: 1 * 1e3,
        maxTimeout: Infinity,
        randomize: false
      };
      for (var key in options) {
        opts2[key] = options[key];
      }
      if (opts2.minTimeout > opts2.maxTimeout) {
        throw new Error("minTimeout is greater than maxTimeout");
      }
      var timeouts = [];
      for (var i5 = 0; i5 < opts2.retries; i5++) {
        timeouts.push(this.createTimeout(i5, opts2));
      }
      if (options && options.forever && !timeouts.length) {
        timeouts.push(this.createTimeout(i5, opts2));
      }
      timeouts.sort(function(a5, b3) {
        return a5 - b3;
      });
      return timeouts;
    };
    exports.createTimeout = function(attempt, opts2) {
      var random = opts2.randomize ? Math.random() + 1 : 1;
      var timeout = Math.round(random * opts2.minTimeout * Math.pow(opts2.factor, attempt));
      timeout = Math.min(timeout, opts2.maxTimeout);
      return timeout;
    };
    exports.wrap = function(obj, options, methods) {
      if (options instanceof Array) {
        methods = options;
        options = null;
      }
      if (!methods) {
        methods = [];
        for (var key in obj) {
          if (typeof obj[key] === "function") {
            methods.push(key);
          }
        }
      }
      for (var i5 = 0; i5 < methods.length; i5++) {
        var method = methods[i5];
        var original = obj[method];
        obj[method] = function retryWrapper(original2) {
          var op = exports.operation(options);
          var args = Array.prototype.slice.call(arguments, 1);
          var callback = args.pop();
          args.push(function(err2) {
            if (op.retry(err2)) {
              return;
            }
            if (err2) {
              arguments[0] = op.mainError();
            }
            callback.apply(this, arguments);
          });
          op.attempt(function() {
            original2.apply(obj, args);
          });
        }.bind(obj, original);
        obj[method].options = options;
      }
    };
  }
});

// ../../node_modules/.pnpm/retry@0.12.0/node_modules/retry/index.js
var require_retry2 = __commonJS({
  "../../node_modules/.pnpm/retry@0.12.0/node_modules/retry/index.js"(exports, module) {
    module.exports = require_retry();
  }
});

// ../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js
var require_signals = __commonJS({
  "../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js"(exports, module) {
    module.exports = [
      "SIGABRT",
      "SIGALRM",
      "SIGHUP",
      "SIGINT",
      "SIGTERM"
    ];
    if (process.platform !== "win32") {
      module.exports.push(
        "SIGVTALRM",
        "SIGXCPU",
        "SIGXFSZ",
        "SIGUSR2",
        "SIGTRAP",
        "SIGSYS",
        "SIGQUIT",
        "SIGIOT"
        // should detect profiler and enable/disable accordingly.
        // see #21
        // 'SIGPROF'
      );
    }
    if (process.platform === "linux") {
      module.exports.push(
        "SIGIO",
        "SIGPOLL",
        "SIGPWR",
        "SIGSTKFLT",
        "SIGUNUSED"
      );
    }
  }
});

// ../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js
var require_signal_exit = __commonJS({
  "../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js"(exports, module) {
    var process4 = global.process;
    var processOk = function(process5) {
      return process5 && typeof process5 === "object" && typeof process5.removeListener === "function" && typeof process5.emit === "function" && typeof process5.reallyExit === "function" && typeof process5.listeners === "function" && typeof process5.kill === "function" && typeof process5.pid === "number" && typeof process5.on === "function";
    };
    if (!processOk(process4)) {
      module.exports = function() {
        return function() {
        };
      };
    } else {
      assert3 = __require("assert");
      signals = require_signals();
      isWin = /^win/i.test(process4.platform);
      EE = __require("events");
      if (typeof EE !== "function") {
        EE = EE.EventEmitter;
      }
      if (process4.__signal_exit_emitter__) {
        emitter = process4.__signal_exit_emitter__;
      } else {
        emitter = process4.__signal_exit_emitter__ = new EE();
        emitter.count = 0;
        emitter.emitted = {};
      }
      if (!emitter.infinite) {
        emitter.setMaxListeners(Infinity);
        emitter.infinite = true;
      }
      module.exports = function(cb, opts2) {
        if (!processOk(global.process)) {
          return function() {
          };
        }
        assert3.equal(typeof cb, "function", "a callback must be provided for exit handler");
        if (loaded === false) {
          load();
        }
        var ev = "exit";
        if (opts2 && opts2.alwaysLast) {
          ev = "afterexit";
        }
        var remove = function() {
          emitter.removeListener(ev, cb);
          if (emitter.listeners("exit").length === 0 && emitter.listeners("afterexit").length === 0) {
            unload();
          }
        };
        emitter.on(ev, cb);
        return remove;
      };
      unload = function unload2() {
        if (!loaded || !processOk(global.process)) {
          return;
        }
        loaded = false;
        signals.forEach(function(sig) {
          try {
            process4.removeListener(sig, sigListeners[sig]);
          } catch (er) {
          }
        });
        process4.emit = originalProcessEmit;
        process4.reallyExit = originalProcessReallyExit;
        emitter.count -= 1;
      };
      module.exports.unload = unload;
      emit = function emit2(event, code, signal) {
        if (emitter.emitted[event]) {
          return;
        }
        emitter.emitted[event] = true;
        emitter.emit(event, code, signal);
      };
      sigListeners = {};
      signals.forEach(function(sig) {
        sigListeners[sig] = function listener() {
          if (!processOk(global.process)) {
            return;
          }
          var listeners = process4.listeners(sig);
          if (listeners.length === emitter.count) {
            unload();
            emit("exit", null, sig);
            emit("afterexit", null, sig);
            if (isWin && sig === "SIGHUP") {
              sig = "SIGINT";
            }
            process4.kill(process4.pid, sig);
          }
        };
      });
      module.exports.signals = function() {
        return signals;
      };
      loaded = false;
      load = function load2() {
        if (loaded || !processOk(global.process)) {
          return;
        }
        loaded = true;
        emitter.count += 1;
        signals = signals.filter(function(sig) {
          try {
            process4.on(sig, sigListeners[sig]);
            return true;
          } catch (er) {
            return false;
          }
        });
        process4.emit = processEmit;
        process4.reallyExit = processReallyExit;
      };
      module.exports.load = load;
      originalProcessReallyExit = process4.reallyExit;
      processReallyExit = function processReallyExit2(code) {
        if (!processOk(global.process)) {
          return;
        }
        process4.exitCode = code || /* istanbul ignore next */
        0;
        emit("exit", process4.exitCode, null);
        emit("afterexit", process4.exitCode, null);
        originalProcessReallyExit.call(process4, process4.exitCode);
      };
      originalProcessEmit = process4.emit;
      processEmit = function processEmit2(ev, arg) {
        if (ev === "exit" && processOk(global.process)) {
          if (arg !== void 0) {
            process4.exitCode = arg;
          }
          var ret = originalProcessEmit.apply(this, arguments);
          emit("exit", process4.exitCode, null);
          emit("afterexit", process4.exitCode, null);
          return ret;
        } else {
          return originalProcessEmit.apply(this, arguments);
        }
      };
    }
    var assert3;
    var signals;
    var isWin;
    var EE;
    var emitter;
    var unload;
    var emit;
    var sigListeners;
    var loaded;
    var load;
    var originalProcessReallyExit;
    var processReallyExit;
    var originalProcessEmit;
    var processEmit;
  }
});

// ../../node_modules/.pnpm/proper-lockfile@4.1.2/node_modules/proper-lockfile/lib/mtime-precision.js
var require_mtime_precision = __commonJS({
  "../../node_modules/.pnpm/proper-lockfile@4.1.2/node_modules/proper-lockfile/lib/mtime-precision.js"(exports, module) {
    "use strict";
    var cacheSymbol = Symbol();
    function probe(file, fs7, callback) {
      const cachedPrecision = fs7[cacheSymbol];
      if (cachedPrecision) {
        return fs7.stat(file, (err2, stat) => {
          if (err2) {
            return callback(err2);
          }
          callback(null, stat.mtime, cachedPrecision);
        });
      }
      const mtime = new Date(Math.ceil(Date.now() / 1e3) * 1e3 + 5);
      fs7.utimes(file, mtime, mtime, (err2) => {
        if (err2) {
          return callback(err2);
        }
        fs7.stat(file, (err3, stat) => {
          if (err3) {
            return callback(err3);
          }
          const precision = stat.mtime.getTime() % 1e3 === 0 ? "s" : "ms";
          Object.defineProperty(fs7, cacheSymbol, { value: precision });
          callback(null, stat.mtime, precision);
        });
      });
    }
    function getMtime(precision) {
      let now = Date.now();
      if (precision === "s") {
        now = Math.ceil(now / 1e3) * 1e3;
      }
      return new Date(now);
    }
    module.exports.probe = probe;
    module.exports.getMtime = getMtime;
  }
});

// ../../node_modules/.pnpm/proper-lockfile@4.1.2/node_modules/proper-lockfile/lib/lockfile.js
var require_lockfile = __commonJS({
  "../../node_modules/.pnpm/proper-lockfile@4.1.2/node_modules/proper-lockfile/lib/lockfile.js"(exports, module) {
    "use strict";
    var path3 = __require("path");
    var fs7 = require_graceful_fs();
    var retry = require_retry2();
    var onExit = require_signal_exit();
    var mtimePrecision = require_mtime_precision();
    var locks = {};
    function getLockFile(file, options) {
      return options.lockfilePath || `${file}.lock`;
    }
    function resolveCanonicalPath(file, options, callback) {
      if (!options.realpath) {
        return callback(null, path3.resolve(file));
      }
      options.fs.realpath(file, callback);
    }
    function acquireLock(file, options, callback) {
      const lockfilePath = getLockFile(file, options);
      options.fs.mkdir(lockfilePath, (err2) => {
        if (!err2) {
          return mtimePrecision.probe(lockfilePath, options.fs, (err3, mtime, mtimePrecision2) => {
            if (err3) {
              options.fs.rmdir(lockfilePath, () => {
              });
              return callback(err3);
            }
            callback(null, mtime, mtimePrecision2);
          });
        }
        if (err2.code !== "EEXIST") {
          return callback(err2);
        }
        if (options.stale <= 0) {
          return callback(Object.assign(new Error("Lock file is already being held"), { code: "ELOCKED", file }));
        }
        options.fs.stat(lockfilePath, (err3, stat) => {
          if (err3) {
            if (err3.code === "ENOENT") {
              return acquireLock(file, { ...options, stale: 0 }, callback);
            }
            return callback(err3);
          }
          if (!isLockStale(stat, options)) {
            return callback(Object.assign(new Error("Lock file is already being held"), { code: "ELOCKED", file }));
          }
          removeLock(file, options, (err4) => {
            if (err4) {
              return callback(err4);
            }
            acquireLock(file, { ...options, stale: 0 }, callback);
          });
        });
      });
    }
    function isLockStale(stat, options) {
      return stat.mtime.getTime() < Date.now() - options.stale;
    }
    function removeLock(file, options, callback) {
      options.fs.rmdir(getLockFile(file, options), (err2) => {
        if (err2 && err2.code !== "ENOENT") {
          return callback(err2);
        }
        callback();
      });
    }
    function updateLock(file, options) {
      const lock2 = locks[file];
      if (lock2.updateTimeout) {
        return;
      }
      lock2.updateDelay = lock2.updateDelay || options.update;
      lock2.updateTimeout = setTimeout(() => {
        lock2.updateTimeout = null;
        options.fs.stat(lock2.lockfilePath, (err2, stat) => {
          const isOverThreshold = lock2.lastUpdate + options.stale < Date.now();
          if (err2) {
            if (err2.code === "ENOENT" || isOverThreshold) {
              return setLockAsCompromised(file, lock2, Object.assign(err2, { code: "ECOMPROMISED" }));
            }
            lock2.updateDelay = 1e3;
            return updateLock(file, options);
          }
          const isMtimeOurs = lock2.mtime.getTime() === stat.mtime.getTime();
          if (!isMtimeOurs) {
            return setLockAsCompromised(
              file,
              lock2,
              Object.assign(
                new Error("Unable to update lock within the stale threshold"),
                { code: "ECOMPROMISED" }
              )
            );
          }
          const mtime = mtimePrecision.getMtime(lock2.mtimePrecision);
          options.fs.utimes(lock2.lockfilePath, mtime, mtime, (err3) => {
            const isOverThreshold2 = lock2.lastUpdate + options.stale < Date.now();
            if (lock2.released) {
              return;
            }
            if (err3) {
              if (err3.code === "ENOENT" || isOverThreshold2) {
                return setLockAsCompromised(file, lock2, Object.assign(err3, { code: "ECOMPROMISED" }));
              }
              lock2.updateDelay = 1e3;
              return updateLock(file, options);
            }
            lock2.mtime = mtime;
            lock2.lastUpdate = Date.now();
            lock2.updateDelay = null;
            updateLock(file, options);
          });
        });
      }, lock2.updateDelay);
      if (lock2.updateTimeout.unref) {
        lock2.updateTimeout.unref();
      }
    }
    function setLockAsCompromised(file, lock2, err2) {
      lock2.released = true;
      if (lock2.updateTimeout) {
        clearTimeout(lock2.updateTimeout);
      }
      if (locks[file] === lock2) {
        delete locks[file];
      }
      lock2.options.onCompromised(err2);
    }
    function lock(file, options, callback) {
      options = {
        stale: 1e4,
        update: null,
        realpath: true,
        retries: 0,
        fs: fs7,
        onCompromised: (err2) => {
          throw err2;
        },
        ...options
      };
      options.retries = options.retries || 0;
      options.retries = typeof options.retries === "number" ? { retries: options.retries } : options.retries;
      options.stale = Math.max(options.stale || 0, 2e3);
      options.update = options.update == null ? options.stale / 2 : options.update || 0;
      options.update = Math.max(Math.min(options.update, options.stale / 2), 1e3);
      resolveCanonicalPath(file, options, (err2, file2) => {
        if (err2) {
          return callback(err2);
        }
        const operation = retry.operation(options.retries);
        operation.attempt(() => {
          acquireLock(file2, options, (err3, mtime, mtimePrecision2) => {
            if (operation.retry(err3)) {
              return;
            }
            if (err3) {
              return callback(operation.mainError());
            }
            const lock2 = locks[file2] = {
              lockfilePath: getLockFile(file2, options),
              mtime,
              mtimePrecision: mtimePrecision2,
              options,
              lastUpdate: Date.now()
            };
            updateLock(file2, options);
            callback(null, (releasedCallback) => {
              if (lock2.released) {
                return releasedCallback && releasedCallback(Object.assign(new Error("Lock is already released"), { code: "ERELEASED" }));
              }
              unlock(file2, { ...options, realpath: false }, releasedCallback);
            });
          });
        });
      });
    }
    function unlock(file, options, callback) {
      options = {
        fs: fs7,
        realpath: true,
        ...options
      };
      resolveCanonicalPath(file, options, (err2, file2) => {
        if (err2) {
          return callback(err2);
        }
        const lock2 = locks[file2];
        if (!lock2) {
          return callback(Object.assign(new Error("Lock is not acquired/owned by you"), { code: "ENOTACQUIRED" }));
        }
        lock2.updateTimeout && clearTimeout(lock2.updateTimeout);
        lock2.released = true;
        delete locks[file2];
        removeLock(file2, options, callback);
      });
    }
    function check(file, options, callback) {
      options = {
        stale: 1e4,
        realpath: true,
        fs: fs7,
        ...options
      };
      options.stale = Math.max(options.stale || 0, 2e3);
      resolveCanonicalPath(file, options, (err2, file2) => {
        if (err2) {
          return callback(err2);
        }
        options.fs.stat(getLockFile(file2, options), (err3, stat) => {
          if (err3) {
            return err3.code === "ENOENT" ? callback(null, false) : callback(err3);
          }
          return callback(null, !isLockStale(stat, options));
        });
      });
    }
    function getLocks() {
      return locks;
    }
    onExit(() => {
      for (const file in locks) {
        const options = locks[file].options;
        try {
          options.fs.rmdirSync(getLockFile(file, options));
        } catch (e4) {
        }
      }
    });
    module.exports.lock = lock;
    module.exports.unlock = unlock;
    module.exports.check = check;
    module.exports.getLocks = getLocks;
  }
});

// ../../node_modules/.pnpm/proper-lockfile@4.1.2/node_modules/proper-lockfile/lib/adapter.js
var require_adapter = __commonJS({
  "../../node_modules/.pnpm/proper-lockfile@4.1.2/node_modules/proper-lockfile/lib/adapter.js"(exports, module) {
    "use strict";
    var fs7 = require_graceful_fs();
    function createSyncFs(fs8) {
      const methods = ["mkdir", "realpath", "stat", "rmdir", "utimes"];
      const newFs = { ...fs8 };
      methods.forEach((method) => {
        newFs[method] = (...args) => {
          const callback = args.pop();
          let ret;
          try {
            ret = fs8[`${method}Sync`](...args);
          } catch (err2) {
            return callback(err2);
          }
          callback(null, ret);
        };
      });
      return newFs;
    }
    function toPromise(method) {
      return (...args) => new Promise((resolve4, reject) => {
        args.push((err2, result) => {
          if (err2) {
            reject(err2);
          } else {
            resolve4(result);
          }
        });
        method(...args);
      });
    }
    function toSync(method) {
      return (...args) => {
        let err2;
        let result;
        args.push((_err, _result) => {
          err2 = _err;
          result = _result;
        });
        method(...args);
        if (err2) {
          throw err2;
        }
        return result;
      };
    }
    function toSyncOptions(options) {
      options = { ...options };
      options.fs = createSyncFs(options.fs || fs7);
      if (typeof options.retries === "number" && options.retries > 0 || options.retries && typeof options.retries.retries === "number" && options.retries.retries > 0) {
        throw Object.assign(new Error("Cannot use retries with the sync api"), { code: "ESYNC" });
      }
      return options;
    }
    module.exports = {
      toPromise,
      toSync,
      toSyncOptions
    };
  }
});

// ../../node_modules/.pnpm/proper-lockfile@4.1.2/node_modules/proper-lockfile/index.js
var require_proper_lockfile = __commonJS({
  "../../node_modules/.pnpm/proper-lockfile@4.1.2/node_modules/proper-lockfile/index.js"(exports, module) {
    "use strict";
    var lockfile = require_lockfile();
    var { toPromise, toSync, toSyncOptions } = require_adapter();
    async function lock(file, options) {
      const release = await toPromise(lockfile.lock)(file, options);
      return toPromise(release);
    }
    function lockSync(file, options) {
      const release = toSync(lockfile.lock)(file, toSyncOptions(options));
      return toSync(release);
    }
    function unlock(file, options) {
      return toPromise(lockfile.unlock)(file, options);
    }
    function unlockSync(file, options) {
      return toSync(lockfile.unlock)(file, toSyncOptions(options));
    }
    function check(file, options) {
      return toPromise(lockfile.check)(file, options);
    }
    function checkSync(file, options) {
      return toSync(lockfile.check)(file, toSyncOptions(options));
    }
    module.exports = lock;
    module.exports.lock = lock;
    module.exports.unlock = unlock;
    module.exports.lockSync = lockSync;
    module.exports.unlockSync = unlockSync;
    module.exports.check = check;
    module.exports.checkSync = checkSync;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/background-handler/fs-utils.js
var require_fs_utils = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/background-handler/fs-utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.handleMessage = handleMessage;
    exports.lockAndWrite = lockAndWrite;
    exports.lockAndCallback = lockAndCallback;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_fs_1 = __require("node:fs");
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var promises_2 = __require("node:timers/promises");
    var fs_extra_1 = require_lib();
    var proper_lockfile_1 = require_proper_lockfile();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var backgroundHandlerLog = log_1.default.child({ prefix: "MemoryStorageBackgroundHandler" });
    async function handleMessage(message) {
      switch (message.action) {
        case "update-metadata":
          await updateMetadata(message);
          break;
        default:
          backgroundHandlerLog.warning(`Unknown background handler message action ${message.action}`);
      }
    }
    async function updateMetadata(message) {
      if (!message.writeMetadata) {
        return;
      }
      const dir = message.entityDirectory;
      await (0, fs_extra_1.ensureDir)(dir);
      const filePath = (0, node_path_1.resolve)(dir, "__metadata__.json");
      await (0, promises_1.writeFile)(filePath, JSON.stringify(message.data, null, "	"));
    }
    async function lockAndWrite(filePath, data2, stringify = true, retry = 10, timeout = 10) {
      await lockAndCallback(filePath, async () => {
        await new Promise((pResolve, reject) => {
          (0, node_fs_1.writeFile)(filePath, stringify ? JSON.stringify(data2, null, "	") : data2, (err2) => {
            if (err2) {
              reject(err2);
            } else {
              pResolve();
            }
          });
        });
      }, retry, timeout);
    }
    async function lockAndCallback(filePath, callback, retry = 10, timeout = 10) {
      let release = null;
      try {
        release = await (0, proper_lockfile_1.lock)(filePath, { realpath: false });
        return await callback();
      } catch (e4) {
        if (e4.code === "ELOCKED" && retry > 0) {
          await (0, promises_2.setTimeout)(timeout);
          return lockAndCallback(filePath, callback, retry - 1, timeout * 2);
        }
        throw e4;
      } finally {
        if (release) {
          await release();
        }
      }
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/background-handler/index.js
var require_background_handler = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/background-handler/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.promiseMap = void 0;
    exports.scheduleBackgroundTask = scheduleBackgroundTask;
    var node_crypto_1 = __require("node:crypto");
    var fs_utils_1 = require_fs_utils();
    exports.promiseMap = /* @__PURE__ */ new Map();
    function scheduleBackgroundTask(message) {
      const id = (0, node_crypto_1.randomUUID)();
      let promiseResolve;
      const promise = new Promise((res) => {
        promiseResolve = res;
      });
      exports.promiseMap.set(id, {
        promise,
        resolve: promiseResolve
      });
      void handleBackgroundMessage({
        ...message,
        messageId: id
      });
    }
    async function handleBackgroundMessage(message) {
      await (0, fs_utils_1.handleMessage)(message);
      exports.promiseMap.get(message.messageId)?.resolve();
      exports.promiseMap.delete(message.messageId);
    }
  }
});

// ../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/unicode.js
var require_unicode = __commonJS({
  "../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/unicode.js"(exports, module) {
    module.exports.Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/;
    module.exports.ID_Start = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;
    module.exports.ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/;
  }
});

// ../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/util.js
var require_util = __commonJS({
  "../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/util.js"(exports, module) {
    var unicode = require_unicode();
    module.exports = {
      isSpaceSeparator(c6) {
        return typeof c6 === "string" && unicode.Space_Separator.test(c6);
      },
      isIdStartChar(c6) {
        return typeof c6 === "string" && (c6 >= "a" && c6 <= "z" || c6 >= "A" && c6 <= "Z" || c6 === "$" || c6 === "_" || unicode.ID_Start.test(c6));
      },
      isIdContinueChar(c6) {
        return typeof c6 === "string" && (c6 >= "a" && c6 <= "z" || c6 >= "A" && c6 <= "Z" || c6 >= "0" && c6 <= "9" || c6 === "$" || c6 === "_" || c6 === "\u200C" || c6 === "\u200D" || unicode.ID_Continue.test(c6));
      },
      isDigit(c6) {
        return typeof c6 === "string" && /[0-9]/.test(c6);
      },
      isHexDigit(c6) {
        return typeof c6 === "string" && /[0-9A-Fa-f]/.test(c6);
      }
    };
  }
});

// ../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/parse.js
var require_parse = __commonJS({
  "../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/parse.js"(exports, module) {
    var util3 = require_util();
    var source;
    var parseState;
    var stack;
    var pos;
    var line2;
    var column;
    var token;
    var key;
    var root;
    module.exports = function parse3(text, reviver) {
      source = String(text);
      parseState = "start";
      stack = [];
      pos = 0;
      line2 = 1;
      column = 0;
      token = void 0;
      key = void 0;
      root = void 0;
      do {
        token = lex();
        parseStates[parseState]();
      } while (token.type !== "eof");
      if (typeof reviver === "function") {
        return internalize({ "": root }, "", reviver);
      }
      return root;
    };
    function internalize(holder, name, reviver) {
      const value2 = holder[name];
      if (value2 != null && typeof value2 === "object") {
        if (Array.isArray(value2)) {
          for (let i5 = 0; i5 < value2.length; i5++) {
            const key2 = String(i5);
            const replacement = internalize(value2, key2, reviver);
            if (replacement === void 0) {
              delete value2[key2];
            } else {
              Object.defineProperty(value2, key2, {
                value: replacement,
                writable: true,
                enumerable: true,
                configurable: true
              });
            }
          }
        } else {
          for (const key2 in value2) {
            const replacement = internalize(value2, key2, reviver);
            if (replacement === void 0) {
              delete value2[key2];
            } else {
              Object.defineProperty(value2, key2, {
                value: replacement,
                writable: true,
                enumerable: true,
                configurable: true
              });
            }
          }
        }
      }
      return reviver.call(holder, name, value2);
    }
    var lexState;
    var buffer;
    var doubleQuote;
    var sign;
    var c6;
    function lex() {
      lexState = "default";
      buffer = "";
      doubleQuote = false;
      sign = 1;
      for (; ; ) {
        c6 = peek();
        const token2 = lexStates[lexState]();
        if (token2) {
          return token2;
        }
      }
    }
    function peek() {
      if (source[pos]) {
        return String.fromCodePoint(source.codePointAt(pos));
      }
    }
    function read2() {
      const c7 = peek();
      if (c7 === "\n") {
        line2++;
        column = 0;
      } else if (c7) {
        column += c7.length;
      } else {
        column++;
      }
      if (c7) {
        pos += c7.length;
      }
      return c7;
    }
    var lexStates = {
      default() {
        switch (c6) {
          case "	":
          case "\v":
          case "\f":
          case " ":
          case "\xA0":
          case "\uFEFF":
          case "\n":
          case "\r":
          case "\u2028":
          case "\u2029":
            read2();
            return;
          case "/":
            read2();
            lexState = "comment";
            return;
          case void 0:
            read2();
            return newToken("eof");
        }
        if (util3.isSpaceSeparator(c6)) {
          read2();
          return;
        }
        return lexStates[parseState]();
      },
      comment() {
        switch (c6) {
          case "*":
            read2();
            lexState = "multiLineComment";
            return;
          case "/":
            read2();
            lexState = "singleLineComment";
            return;
        }
        throw invalidChar(read2());
      },
      multiLineComment() {
        switch (c6) {
          case "*":
            read2();
            lexState = "multiLineCommentAsterisk";
            return;
          case void 0:
            throw invalidChar(read2());
        }
        read2();
      },
      multiLineCommentAsterisk() {
        switch (c6) {
          case "*":
            read2();
            return;
          case "/":
            read2();
            lexState = "default";
            return;
          case void 0:
            throw invalidChar(read2());
        }
        read2();
        lexState = "multiLineComment";
      },
      singleLineComment() {
        switch (c6) {
          case "\n":
          case "\r":
          case "\u2028":
          case "\u2029":
            read2();
            lexState = "default";
            return;
          case void 0:
            read2();
            return newToken("eof");
        }
        read2();
      },
      value() {
        switch (c6) {
          case "{":
          case "[":
            return newToken("punctuator", read2());
          case "n":
            read2();
            literal("ull");
            return newToken("null", null);
          case "t":
            read2();
            literal("rue");
            return newToken("boolean", true);
          case "f":
            read2();
            literal("alse");
            return newToken("boolean", false);
          case "-":
          case "+":
            if (read2() === "-") {
              sign = -1;
            }
            lexState = "sign";
            return;
          case ".":
            buffer = read2();
            lexState = "decimalPointLeading";
            return;
          case "0":
            buffer = read2();
            lexState = "zero";
            return;
          case "1":
          case "2":
          case "3":
          case "4":
          case "5":
          case "6":
          case "7":
          case "8":
          case "9":
            buffer = read2();
            lexState = "decimalInteger";
            return;
          case "I":
            read2();
            literal("nfinity");
            return newToken("numeric", Infinity);
          case "N":
            read2();
            literal("aN");
            return newToken("numeric", NaN);
          case '"':
          case "'":
            doubleQuote = read2() === '"';
            buffer = "";
            lexState = "string";
            return;
        }
        throw invalidChar(read2());
      },
      identifierNameStartEscape() {
        if (c6 !== "u") {
          throw invalidChar(read2());
        }
        read2();
        const u5 = unicodeEscape();
        switch (u5) {
          case "$":
          case "_":
            break;
          default:
            if (!util3.isIdStartChar(u5)) {
              throw invalidIdentifier();
            }
            break;
        }
        buffer += u5;
        lexState = "identifierName";
      },
      identifierName() {
        switch (c6) {
          case "$":
          case "_":
          case "\u200C":
          case "\u200D":
            buffer += read2();
            return;
          case "\\":
            read2();
            lexState = "identifierNameEscape";
            return;
        }
        if (util3.isIdContinueChar(c6)) {
          buffer += read2();
          return;
        }
        return newToken("identifier", buffer);
      },
      identifierNameEscape() {
        if (c6 !== "u") {
          throw invalidChar(read2());
        }
        read2();
        const u5 = unicodeEscape();
        switch (u5) {
          case "$":
          case "_":
          case "\u200C":
          case "\u200D":
            break;
          default:
            if (!util3.isIdContinueChar(u5)) {
              throw invalidIdentifier();
            }
            break;
        }
        buffer += u5;
        lexState = "identifierName";
      },
      sign() {
        switch (c6) {
          case ".":
            buffer = read2();
            lexState = "decimalPointLeading";
            return;
          case "0":
            buffer = read2();
            lexState = "zero";
            return;
          case "1":
          case "2":
          case "3":
          case "4":
          case "5":
          case "6":
          case "7":
          case "8":
          case "9":
            buffer = read2();
            lexState = "decimalInteger";
            return;
          case "I":
            read2();
            literal("nfinity");
            return newToken("numeric", sign * Infinity);
          case "N":
            read2();
            literal("aN");
            return newToken("numeric", NaN);
        }
        throw invalidChar(read2());
      },
      zero() {
        switch (c6) {
          case ".":
            buffer += read2();
            lexState = "decimalPoint";
            return;
          case "e":
          case "E":
            buffer += read2();
            lexState = "decimalExponent";
            return;
          case "x":
          case "X":
            buffer += read2();
            lexState = "hexadecimal";
            return;
        }
        return newToken("numeric", sign * 0);
      },
      decimalInteger() {
        switch (c6) {
          case ".":
            buffer += read2();
            lexState = "decimalPoint";
            return;
          case "e":
          case "E":
            buffer += read2();
            lexState = "decimalExponent";
            return;
        }
        if (util3.isDigit(c6)) {
          buffer += read2();
          return;
        }
        return newToken("numeric", sign * Number(buffer));
      },
      decimalPointLeading() {
        if (util3.isDigit(c6)) {
          buffer += read2();
          lexState = "decimalFraction";
          return;
        }
        throw invalidChar(read2());
      },
      decimalPoint() {
        switch (c6) {
          case "e":
          case "E":
            buffer += read2();
            lexState = "decimalExponent";
            return;
        }
        if (util3.isDigit(c6)) {
          buffer += read2();
          lexState = "decimalFraction";
          return;
        }
        return newToken("numeric", sign * Number(buffer));
      },
      decimalFraction() {
        switch (c6) {
          case "e":
          case "E":
            buffer += read2();
            lexState = "decimalExponent";
            return;
        }
        if (util3.isDigit(c6)) {
          buffer += read2();
          return;
        }
        return newToken("numeric", sign * Number(buffer));
      },
      decimalExponent() {
        switch (c6) {
          case "+":
          case "-":
            buffer += read2();
            lexState = "decimalExponentSign";
            return;
        }
        if (util3.isDigit(c6)) {
          buffer += read2();
          lexState = "decimalExponentInteger";
          return;
        }
        throw invalidChar(read2());
      },
      decimalExponentSign() {
        if (util3.isDigit(c6)) {
          buffer += read2();
          lexState = "decimalExponentInteger";
          return;
        }
        throw invalidChar(read2());
      },
      decimalExponentInteger() {
        if (util3.isDigit(c6)) {
          buffer += read2();
          return;
        }
        return newToken("numeric", sign * Number(buffer));
      },
      hexadecimal() {
        if (util3.isHexDigit(c6)) {
          buffer += read2();
          lexState = "hexadecimalInteger";
          return;
        }
        throw invalidChar(read2());
      },
      hexadecimalInteger() {
        if (util3.isHexDigit(c6)) {
          buffer += read2();
          return;
        }
        return newToken("numeric", sign * Number(buffer));
      },
      string() {
        switch (c6) {
          case "\\":
            read2();
            buffer += escape2();
            return;
          case '"':
            if (doubleQuote) {
              read2();
              return newToken("string", buffer);
            }
            buffer += read2();
            return;
          case "'":
            if (!doubleQuote) {
              read2();
              return newToken("string", buffer);
            }
            buffer += read2();
            return;
          case "\n":
          case "\r":
            throw invalidChar(read2());
          case "\u2028":
          case "\u2029":
            separatorChar(c6);
            break;
          case void 0:
            throw invalidChar(read2());
        }
        buffer += read2();
      },
      start() {
        switch (c6) {
          case "{":
          case "[":
            return newToken("punctuator", read2());
        }
        lexState = "value";
      },
      beforePropertyName() {
        switch (c6) {
          case "$":
          case "_":
            buffer = read2();
            lexState = "identifierName";
            return;
          case "\\":
            read2();
            lexState = "identifierNameStartEscape";
            return;
          case "}":
            return newToken("punctuator", read2());
          case '"':
          case "'":
            doubleQuote = read2() === '"';
            lexState = "string";
            return;
        }
        if (util3.isIdStartChar(c6)) {
          buffer += read2();
          lexState = "identifierName";
          return;
        }
        throw invalidChar(read2());
      },
      afterPropertyName() {
        if (c6 === ":") {
          return newToken("punctuator", read2());
        }
        throw invalidChar(read2());
      },
      beforePropertyValue() {
        lexState = "value";
      },
      afterPropertyValue() {
        switch (c6) {
          case ",":
          case "}":
            return newToken("punctuator", read2());
        }
        throw invalidChar(read2());
      },
      beforeArrayValue() {
        if (c6 === "]") {
          return newToken("punctuator", read2());
        }
        lexState = "value";
      },
      afterArrayValue() {
        switch (c6) {
          case ",":
          case "]":
            return newToken("punctuator", read2());
        }
        throw invalidChar(read2());
      },
      end() {
        throw invalidChar(read2());
      }
    };
    function newToken(type, value2) {
      return {
        type,
        value: value2,
        line: line2,
        column
      };
    }
    function literal(s4) {
      for (const c7 of s4) {
        const p3 = peek();
        if (p3 !== c7) {
          throw invalidChar(read2());
        }
        read2();
      }
    }
    function escape2() {
      const c7 = peek();
      switch (c7) {
        case "b":
          read2();
          return "\b";
        case "f":
          read2();
          return "\f";
        case "n":
          read2();
          return "\n";
        case "r":
          read2();
          return "\r";
        case "t":
          read2();
          return "	";
        case "v":
          read2();
          return "\v";
        case "0":
          read2();
          if (util3.isDigit(peek())) {
            throw invalidChar(read2());
          }
          return "\0";
        case "x":
          read2();
          return hexEscape();
        case "u":
          read2();
          return unicodeEscape();
        case "\n":
        case "\u2028":
        case "\u2029":
          read2();
          return "";
        case "\r":
          read2();
          if (peek() === "\n") {
            read2();
          }
          return "";
        case "1":
        case "2":
        case "3":
        case "4":
        case "5":
        case "6":
        case "7":
        case "8":
        case "9":
          throw invalidChar(read2());
        case void 0:
          throw invalidChar(read2());
      }
      return read2();
    }
    function hexEscape() {
      let buffer2 = "";
      let c7 = peek();
      if (!util3.isHexDigit(c7)) {
        throw invalidChar(read2());
      }
      buffer2 += read2();
      c7 = peek();
      if (!util3.isHexDigit(c7)) {
        throw invalidChar(read2());
      }
      buffer2 += read2();
      return String.fromCodePoint(parseInt(buffer2, 16));
    }
    function unicodeEscape() {
      let buffer2 = "";
      let count = 4;
      while (count-- > 0) {
        const c7 = peek();
        if (!util3.isHexDigit(c7)) {
          throw invalidChar(read2());
        }
        buffer2 += read2();
      }
      return String.fromCodePoint(parseInt(buffer2, 16));
    }
    var parseStates = {
      start() {
        if (token.type === "eof") {
          throw invalidEOF();
        }
        push();
      },
      beforePropertyName() {
        switch (token.type) {
          case "identifier":
          case "string":
            key = token.value;
            parseState = "afterPropertyName";
            return;
          case "punctuator":
            pop();
            return;
          case "eof":
            throw invalidEOF();
        }
      },
      afterPropertyName() {
        if (token.type === "eof") {
          throw invalidEOF();
        }
        parseState = "beforePropertyValue";
      },
      beforePropertyValue() {
        if (token.type === "eof") {
          throw invalidEOF();
        }
        push();
      },
      beforeArrayValue() {
        if (token.type === "eof") {
          throw invalidEOF();
        }
        if (token.type === "punctuator" && token.value === "]") {
          pop();
          return;
        }
        push();
      },
      afterPropertyValue() {
        if (token.type === "eof") {
          throw invalidEOF();
        }
        switch (token.value) {
          case ",":
            parseState = "beforePropertyName";
            return;
          case "}":
            pop();
        }
      },
      afterArrayValue() {
        if (token.type === "eof") {
          throw invalidEOF();
        }
        switch (token.value) {
          case ",":
            parseState = "beforeArrayValue";
            return;
          case "]":
            pop();
        }
      },
      end() {
      }
    };
    function push() {
      let value2;
      switch (token.type) {
        case "punctuator":
          switch (token.value) {
            case "{":
              value2 = {};
              break;
            case "[":
              value2 = [];
              break;
          }
          break;
        case "null":
        case "boolean":
        case "numeric":
        case "string":
          value2 = token.value;
          break;
      }
      if (root === void 0) {
        root = value2;
      } else {
        const parent = stack[stack.length - 1];
        if (Array.isArray(parent)) {
          parent.push(value2);
        } else {
          Object.defineProperty(parent, key, {
            value: value2,
            writable: true,
            enumerable: true,
            configurable: true
          });
        }
      }
      if (value2 !== null && typeof value2 === "object") {
        stack.push(value2);
        if (Array.isArray(value2)) {
          parseState = "beforeArrayValue";
        } else {
          parseState = "beforePropertyName";
        }
      } else {
        const current = stack[stack.length - 1];
        if (current == null) {
          parseState = "end";
        } else if (Array.isArray(current)) {
          parseState = "afterArrayValue";
        } else {
          parseState = "afterPropertyValue";
        }
      }
    }
    function pop() {
      stack.pop();
      const current = stack[stack.length - 1];
      if (current == null) {
        parseState = "end";
      } else if (Array.isArray(current)) {
        parseState = "afterArrayValue";
      } else {
        parseState = "afterPropertyValue";
      }
    }
    function invalidChar(c7) {
      if (c7 === void 0) {
        return syntaxError(`JSON5: invalid end of input at ${line2}:${column}`);
      }
      return syntaxError(`JSON5: invalid character '${formatChar(c7)}' at ${line2}:${column}`);
    }
    function invalidEOF() {
      return syntaxError(`JSON5: invalid end of input at ${line2}:${column}`);
    }
    function invalidIdentifier() {
      column -= 5;
      return syntaxError(`JSON5: invalid identifier character at ${line2}:${column}`);
    }
    function separatorChar(c7) {
      console.warn(`JSON5: '${formatChar(c7)}' in strings is not valid ECMAScript; consider escaping`);
    }
    function formatChar(c7) {
      const replacements = {
        "'": "\\'",
        '"': '\\"',
        "\\": "\\\\",
        "\b": "\\b",
        "\f": "\\f",
        "\n": "\\n",
        "\r": "\\r",
        "	": "\\t",
        "\v": "\\v",
        "\0": "\\0",
        "\u2028": "\\u2028",
        "\u2029": "\\u2029"
      };
      if (replacements[c7]) {
        return replacements[c7];
      }
      if (c7 < " ") {
        const hexString = c7.charCodeAt(0).toString(16);
        return "\\x" + ("00" + hexString).substring(hexString.length);
      }
      return c7;
    }
    function syntaxError(message) {
      const err2 = new SyntaxError(message);
      err2.lineNumber = line2;
      err2.columnNumber = column;
      return err2;
    }
  }
});

// ../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/stringify.js
var require_stringify = __commonJS({
  "../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/stringify.js"(exports, module) {
    var util3 = require_util();
    module.exports = function stringify(value2, replacer, space) {
      const stack = [];
      let indent = "";
      let propertyList;
      let replacerFunc;
      let gap = "";
      let quote;
      if (replacer != null && typeof replacer === "object" && !Array.isArray(replacer)) {
        space = replacer.space;
        quote = replacer.quote;
        replacer = replacer.replacer;
      }
      if (typeof replacer === "function") {
        replacerFunc = replacer;
      } else if (Array.isArray(replacer)) {
        propertyList = [];
        for (const v3 of replacer) {
          let item;
          if (typeof v3 === "string") {
            item = v3;
          } else if (typeof v3 === "number" || v3 instanceof String || v3 instanceof Number) {
            item = String(v3);
          }
          if (item !== void 0 && propertyList.indexOf(item) < 0) {
            propertyList.push(item);
          }
        }
      }
      if (space instanceof Number) {
        space = Number(space);
      } else if (space instanceof String) {
        space = String(space);
      }
      if (typeof space === "number") {
        if (space > 0) {
          space = Math.min(10, Math.floor(space));
          gap = "          ".substr(0, space);
        }
      } else if (typeof space === "string") {
        gap = space.substr(0, 10);
      }
      return serializeProperty("", { "": value2 });
      function serializeProperty(key, holder) {
        let value3 = holder[key];
        if (value3 != null) {
          if (typeof value3.toJSON5 === "function") {
            value3 = value3.toJSON5(key);
          } else if (typeof value3.toJSON === "function") {
            value3 = value3.toJSON(key);
          }
        }
        if (replacerFunc) {
          value3 = replacerFunc.call(holder, key, value3);
        }
        if (value3 instanceof Number) {
          value3 = Number(value3);
        } else if (value3 instanceof String) {
          value3 = String(value3);
        } else if (value3 instanceof Boolean) {
          value3 = value3.valueOf();
        }
        switch (value3) {
          case null:
            return "null";
          case true:
            return "true";
          case false:
            return "false";
        }
        if (typeof value3 === "string") {
          return quoteString(value3, false);
        }
        if (typeof value3 === "number") {
          return String(value3);
        }
        if (typeof value3 === "object") {
          return Array.isArray(value3) ? serializeArray2(value3) : serializeObject(value3);
        }
        return void 0;
      }
      function quoteString(value3) {
        const quotes = {
          "'": 0.1,
          '"': 0.2
        };
        const replacements = {
          "'": "\\'",
          '"': '\\"',
          "\\": "\\\\",
          "\b": "\\b",
          "\f": "\\f",
          "\n": "\\n",
          "\r": "\\r",
          "	": "\\t",
          "\v": "\\v",
          "\0": "\\0",
          "\u2028": "\\u2028",
          "\u2029": "\\u2029"
        };
        let product = "";
        for (let i5 = 0; i5 < value3.length; i5++) {
          const c6 = value3[i5];
          switch (c6) {
            case "'":
            case '"':
              quotes[c6]++;
              product += c6;
              continue;
            case "\0":
              if (util3.isDigit(value3[i5 + 1])) {
                product += "\\x00";
                continue;
              }
          }
          if (replacements[c6]) {
            product += replacements[c6];
            continue;
          }
          if (c6 < " ") {
            let hexString = c6.charCodeAt(0).toString(16);
            product += "\\x" + ("00" + hexString).substring(hexString.length);
            continue;
          }
          product += c6;
        }
        const quoteChar = quote || Object.keys(quotes).reduce((a5, b3) => quotes[a5] < quotes[b3] ? a5 : b3);
        product = product.replace(new RegExp(quoteChar, "g"), replacements[quoteChar]);
        return quoteChar + product + quoteChar;
      }
      function serializeObject(value3) {
        if (stack.indexOf(value3) >= 0) {
          throw TypeError("Converting circular structure to JSON5");
        }
        stack.push(value3);
        let stepback = indent;
        indent = indent + gap;
        let keys2 = propertyList || Object.keys(value3);
        let partial2 = [];
        for (const key of keys2) {
          const propertyString = serializeProperty(key, value3);
          if (propertyString !== void 0) {
            let member = serializeKey(key) + ":";
            if (gap !== "") {
              member += " ";
            }
            member += propertyString;
            partial2.push(member);
          }
        }
        let final;
        if (partial2.length === 0) {
          final = "{}";
        } else {
          let properties;
          if (gap === "") {
            properties = partial2.join(",");
            final = "{" + properties + "}";
          } else {
            let separator = ",\n" + indent;
            properties = partial2.join(separator);
            final = "{\n" + indent + properties + ",\n" + stepback + "}";
          }
        }
        stack.pop();
        indent = stepback;
        return final;
      }
      function serializeKey(key) {
        if (key.length === 0) {
          return quoteString(key, true);
        }
        const firstChar = String.fromCodePoint(key.codePointAt(0));
        if (!util3.isIdStartChar(firstChar)) {
          return quoteString(key, true);
        }
        for (let i5 = firstChar.length; i5 < key.length; i5++) {
          if (!util3.isIdContinueChar(String.fromCodePoint(key.codePointAt(i5)))) {
            return quoteString(key, true);
          }
        }
        return key;
      }
      function serializeArray2(value3) {
        if (stack.indexOf(value3) >= 0) {
          throw TypeError("Converting circular structure to JSON5");
        }
        stack.push(value3);
        let stepback = indent;
        indent = indent + gap;
        let partial2 = [];
        for (let i5 = 0; i5 < value3.length; i5++) {
          const propertyString = serializeProperty(String(i5), value3);
          partial2.push(propertyString !== void 0 ? propertyString : "null");
        }
        let final;
        if (partial2.length === 0) {
          final = "[]";
        } else {
          if (gap === "") {
            let properties = partial2.join(",");
            final = "[" + properties + "]";
          } else {
            let separator = ",\n" + indent;
            let properties = partial2.join(separator);
            final = "[\n" + indent + properties + ",\n" + stepback + "]";
          }
        }
        stack.pop();
        indent = stepback;
        return final;
      }
    };
  }
});

// ../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/index.js
var require_lib2 = __commonJS({
  "../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/index.js"(exports, module) {
    var parse3 = require_parse();
    var stringify = require_stringify();
    var JSON5 = {
      parse: parse3,
      stringify
    };
    module.exports = JSON5;
  }
});

// ../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json
var require_db = __commonJS({
  "../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json"(exports, module) {
    module.exports = {
      "application/1d-interleaved-parityfec": {
        source: "iana"
      },
      "application/3gpdash-qoe-report+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/3gpp-ims+xml": {
        source: "iana",
        compressible: true
      },
      "application/3gpphal+json": {
        source: "iana",
        compressible: true
      },
      "application/3gpphalforms+json": {
        source: "iana",
        compressible: true
      },
      "application/a2l": {
        source: "iana"
      },
      "application/ace+cbor": {
        source: "iana"
      },
      "application/activemessage": {
        source: "iana"
      },
      "application/activity+json": {
        source: "iana",
        compressible: true
      },
      "application/alto-costmap+json": {
        source: "iana",
        compressible: true
      },
      "application/alto-costmapfilter+json": {
        source: "iana",
        compressible: true
      },
      "application/alto-directory+json": {
        source: "iana",
        compressible: true
      },
      "application/alto-endpointcost+json": {
        source: "iana",
        compressible: true
      },
      "application/alto-endpointcostparams+json": {
        source: "iana",
        compressible: true
      },
      "application/alto-endpointprop+json": {
        source: "iana",
        compressible: true
      },
      "application/alto-endpointpropparams+json": {
        source: "iana",
        compressible: true
      },
      "application/alto-error+json": {
        source: "iana",
        compressible: true
      },
      "application/alto-networkmap+json": {
        source: "iana",
        compressible: true
      },
      "application/alto-networkmapfilter+json": {
        source: "iana",
        compressible: true
      },
      "application/alto-updatestreamcontrol+json": {
        source: "iana",
        compressible: true
      },
      "application/alto-updatestreamparams+json": {
        source: "iana",
        compressible: true
      },
      "application/aml": {
        source: "iana"
      },
      "application/andrew-inset": {
        source: "iana",
        extensions: ["ez"]
      },
      "application/applefile": {
        source: "iana"
      },
      "application/applixware": {
        source: "apache",
        extensions: ["aw"]
      },
      "application/at+jwt": {
        source: "iana"
      },
      "application/atf": {
        source: "iana"
      },
      "application/atfx": {
        source: "iana"
      },
      "application/atom+xml": {
        source: "iana",
        compressible: true,
        extensions: ["atom"]
      },
      "application/atomcat+xml": {
        source: "iana",
        compressible: true,
        extensions: ["atomcat"]
      },
      "application/atomdeleted+xml": {
        source: "iana",
        compressible: true,
        extensions: ["atomdeleted"]
      },
      "application/atomicmail": {
        source: "iana"
      },
      "application/atomsvc+xml": {
        source: "iana",
        compressible: true,
        extensions: ["atomsvc"]
      },
      "application/atsc-dwd+xml": {
        source: "iana",
        compressible: true,
        extensions: ["dwd"]
      },
      "application/atsc-dynamic-event-message": {
        source: "iana"
      },
      "application/atsc-held+xml": {
        source: "iana",
        compressible: true,
        extensions: ["held"]
      },
      "application/atsc-rdt+json": {
        source: "iana",
        compressible: true
      },
      "application/atsc-rsat+xml": {
        source: "iana",
        compressible: true,
        extensions: ["rsat"]
      },
      "application/atxml": {
        source: "iana"
      },
      "application/auth-policy+xml": {
        source: "iana",
        compressible: true
      },
      "application/bacnet-xdd+zip": {
        source: "iana",
        compressible: false
      },
      "application/batch-smtp": {
        source: "iana"
      },
      "application/bdoc": {
        compressible: false,
        extensions: ["bdoc"]
      },
      "application/beep+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/calendar+json": {
        source: "iana",
        compressible: true
      },
      "application/calendar+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xcs"]
      },
      "application/call-completion": {
        source: "iana"
      },
      "application/cals-1840": {
        source: "iana"
      },
      "application/captive+json": {
        source: "iana",
        compressible: true
      },
      "application/cbor": {
        source: "iana"
      },
      "application/cbor-seq": {
        source: "iana"
      },
      "application/cccex": {
        source: "iana"
      },
      "application/ccmp+xml": {
        source: "iana",
        compressible: true
      },
      "application/ccxml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["ccxml"]
      },
      "application/cdfx+xml": {
        source: "iana",
        compressible: true,
        extensions: ["cdfx"]
      },
      "application/cdmi-capability": {
        source: "iana",
        extensions: ["cdmia"]
      },
      "application/cdmi-container": {
        source: "iana",
        extensions: ["cdmic"]
      },
      "application/cdmi-domain": {
        source: "iana",
        extensions: ["cdmid"]
      },
      "application/cdmi-object": {
        source: "iana",
        extensions: ["cdmio"]
      },
      "application/cdmi-queue": {
        source: "iana",
        extensions: ["cdmiq"]
      },
      "application/cdni": {
        source: "iana"
      },
      "application/cea": {
        source: "iana"
      },
      "application/cea-2018+xml": {
        source: "iana",
        compressible: true
      },
      "application/cellml+xml": {
        source: "iana",
        compressible: true
      },
      "application/cfw": {
        source: "iana"
      },
      "application/city+json": {
        source: "iana",
        compressible: true
      },
      "application/clr": {
        source: "iana"
      },
      "application/clue+xml": {
        source: "iana",
        compressible: true
      },
      "application/clue_info+xml": {
        source: "iana",
        compressible: true
      },
      "application/cms": {
        source: "iana"
      },
      "application/cnrp+xml": {
        source: "iana",
        compressible: true
      },
      "application/coap-group+json": {
        source: "iana",
        compressible: true
      },
      "application/coap-payload": {
        source: "iana"
      },
      "application/commonground": {
        source: "iana"
      },
      "application/conference-info+xml": {
        source: "iana",
        compressible: true
      },
      "application/cose": {
        source: "iana"
      },
      "application/cose-key": {
        source: "iana"
      },
      "application/cose-key-set": {
        source: "iana"
      },
      "application/cpl+xml": {
        source: "iana",
        compressible: true,
        extensions: ["cpl"]
      },
      "application/csrattrs": {
        source: "iana"
      },
      "application/csta+xml": {
        source: "iana",
        compressible: true
      },
      "application/cstadata+xml": {
        source: "iana",
        compressible: true
      },
      "application/csvm+json": {
        source: "iana",
        compressible: true
      },
      "application/cu-seeme": {
        source: "apache",
        extensions: ["cu"]
      },
      "application/cwt": {
        source: "iana"
      },
      "application/cybercash": {
        source: "iana"
      },
      "application/dart": {
        compressible: true
      },
      "application/dash+xml": {
        source: "iana",
        compressible: true,
        extensions: ["mpd"]
      },
      "application/dash-patch+xml": {
        source: "iana",
        compressible: true,
        extensions: ["mpp"]
      },
      "application/dashdelta": {
        source: "iana"
      },
      "application/davmount+xml": {
        source: "iana",
        compressible: true,
        extensions: ["davmount"]
      },
      "application/dca-rft": {
        source: "iana"
      },
      "application/dcd": {
        source: "iana"
      },
      "application/dec-dx": {
        source: "iana"
      },
      "application/dialog-info+xml": {
        source: "iana",
        compressible: true
      },
      "application/dicom": {
        source: "iana"
      },
      "application/dicom+json": {
        source: "iana",
        compressible: true
      },
      "application/dicom+xml": {
        source: "iana",
        compressible: true
      },
      "application/dii": {
        source: "iana"
      },
      "application/dit": {
        source: "iana"
      },
      "application/dns": {
        source: "iana"
      },
      "application/dns+json": {
        source: "iana",
        compressible: true
      },
      "application/dns-message": {
        source: "iana"
      },
      "application/docbook+xml": {
        source: "apache",
        compressible: true,
        extensions: ["dbk"]
      },
      "application/dots+cbor": {
        source: "iana"
      },
      "application/dskpp+xml": {
        source: "iana",
        compressible: true
      },
      "application/dssc+der": {
        source: "iana",
        extensions: ["dssc"]
      },
      "application/dssc+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xdssc"]
      },
      "application/dvcs": {
        source: "iana"
      },
      "application/ecmascript": {
        source: "iana",
        compressible: true,
        extensions: ["es", "ecma"]
      },
      "application/edi-consent": {
        source: "iana"
      },
      "application/edi-x12": {
        source: "iana",
        compressible: false
      },
      "application/edifact": {
        source: "iana",
        compressible: false
      },
      "application/efi": {
        source: "iana"
      },
      "application/elm+json": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/elm+xml": {
        source: "iana",
        compressible: true
      },
      "application/emergencycalldata.cap+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/emergencycalldata.comment+xml": {
        source: "iana",
        compressible: true
      },
      "application/emergencycalldata.control+xml": {
        source: "iana",
        compressible: true
      },
      "application/emergencycalldata.deviceinfo+xml": {
        source: "iana",
        compressible: true
      },
      "application/emergencycalldata.ecall.msd": {
        source: "iana"
      },
      "application/emergencycalldata.providerinfo+xml": {
        source: "iana",
        compressible: true
      },
      "application/emergencycalldata.serviceinfo+xml": {
        source: "iana",
        compressible: true
      },
      "application/emergencycalldata.subscriberinfo+xml": {
        source: "iana",
        compressible: true
      },
      "application/emergencycalldata.veds+xml": {
        source: "iana",
        compressible: true
      },
      "application/emma+xml": {
        source: "iana",
        compressible: true,
        extensions: ["emma"]
      },
      "application/emotionml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["emotionml"]
      },
      "application/encaprtp": {
        source: "iana"
      },
      "application/epp+xml": {
        source: "iana",
        compressible: true
      },
      "application/epub+zip": {
        source: "iana",
        compressible: false,
        extensions: ["epub"]
      },
      "application/eshop": {
        source: "iana"
      },
      "application/exi": {
        source: "iana",
        extensions: ["exi"]
      },
      "application/expect-ct-report+json": {
        source: "iana",
        compressible: true
      },
      "application/express": {
        source: "iana",
        extensions: ["exp"]
      },
      "application/fastinfoset": {
        source: "iana"
      },
      "application/fastsoap": {
        source: "iana"
      },
      "application/fdt+xml": {
        source: "iana",
        compressible: true,
        extensions: ["fdt"]
      },
      "application/fhir+json": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/fhir+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/fido.trusted-apps+json": {
        compressible: true
      },
      "application/fits": {
        source: "iana"
      },
      "application/flexfec": {
        source: "iana"
      },
      "application/font-sfnt": {
        source: "iana"
      },
      "application/font-tdpfr": {
        source: "iana",
        extensions: ["pfr"]
      },
      "application/font-woff": {
        source: "iana",
        compressible: false
      },
      "application/framework-attributes+xml": {
        source: "iana",
        compressible: true
      },
      "application/geo+json": {
        source: "iana",
        compressible: true,
        extensions: ["geojson"]
      },
      "application/geo+json-seq": {
        source: "iana"
      },
      "application/geopackage+sqlite3": {
        source: "iana"
      },
      "application/geoxacml+xml": {
        source: "iana",
        compressible: true
      },
      "application/gltf-buffer": {
        source: "iana"
      },
      "application/gml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["gml"]
      },
      "application/gpx+xml": {
        source: "apache",
        compressible: true,
        extensions: ["gpx"]
      },
      "application/gxf": {
        source: "apache",
        extensions: ["gxf"]
      },
      "application/gzip": {
        source: "iana",
        compressible: false,
        extensions: ["gz"]
      },
      "application/h224": {
        source: "iana"
      },
      "application/held+xml": {
        source: "iana",
        compressible: true
      },
      "application/hjson": {
        extensions: ["hjson"]
      },
      "application/http": {
        source: "iana"
      },
      "application/hyperstudio": {
        source: "iana",
        extensions: ["stk"]
      },
      "application/ibe-key-request+xml": {
        source: "iana",
        compressible: true
      },
      "application/ibe-pkg-reply+xml": {
        source: "iana",
        compressible: true
      },
      "application/ibe-pp-data": {
        source: "iana"
      },
      "application/iges": {
        source: "iana"
      },
      "application/im-iscomposing+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/index": {
        source: "iana"
      },
      "application/index.cmd": {
        source: "iana"
      },
      "application/index.obj": {
        source: "iana"
      },
      "application/index.response": {
        source: "iana"
      },
      "application/index.vnd": {
        source: "iana"
      },
      "application/inkml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["ink", "inkml"]
      },
      "application/iotp": {
        source: "iana"
      },
      "application/ipfix": {
        source: "iana",
        extensions: ["ipfix"]
      },
      "application/ipp": {
        source: "iana"
      },
      "application/isup": {
        source: "iana"
      },
      "application/its+xml": {
        source: "iana",
        compressible: true,
        extensions: ["its"]
      },
      "application/java-archive": {
        source: "apache",
        compressible: false,
        extensions: ["jar", "war", "ear"]
      },
      "application/java-serialized-object": {
        source: "apache",
        compressible: false,
        extensions: ["ser"]
      },
      "application/java-vm": {
        source: "apache",
        compressible: false,
        extensions: ["class"]
      },
      "application/javascript": {
        source: "iana",
        charset: "UTF-8",
        compressible: true,
        extensions: ["js", "mjs"]
      },
      "application/jf2feed+json": {
        source: "iana",
        compressible: true
      },
      "application/jose": {
        source: "iana"
      },
      "application/jose+json": {
        source: "iana",
        compressible: true
      },
      "application/jrd+json": {
        source: "iana",
        compressible: true
      },
      "application/jscalendar+json": {
        source: "iana",
        compressible: true
      },
      "application/json": {
        source: "iana",
        charset: "UTF-8",
        compressible: true,
        extensions: ["json", "map"]
      },
      "application/json-patch+json": {
        source: "iana",
        compressible: true
      },
      "application/json-seq": {
        source: "iana"
      },
      "application/json5": {
        extensions: ["json5"]
      },
      "application/jsonml+json": {
        source: "apache",
        compressible: true,
        extensions: ["jsonml"]
      },
      "application/jwk+json": {
        source: "iana",
        compressible: true
      },
      "application/jwk-set+json": {
        source: "iana",
        compressible: true
      },
      "application/jwt": {
        source: "iana"
      },
      "application/kpml-request+xml": {
        source: "iana",
        compressible: true
      },
      "application/kpml-response+xml": {
        source: "iana",
        compressible: true
      },
      "application/ld+json": {
        source: "iana",
        compressible: true,
        extensions: ["jsonld"]
      },
      "application/lgr+xml": {
        source: "iana",
        compressible: true,
        extensions: ["lgr"]
      },
      "application/link-format": {
        source: "iana"
      },
      "application/load-control+xml": {
        source: "iana",
        compressible: true
      },
      "application/lost+xml": {
        source: "iana",
        compressible: true,
        extensions: ["lostxml"]
      },
      "application/lostsync+xml": {
        source: "iana",
        compressible: true
      },
      "application/lpf+zip": {
        source: "iana",
        compressible: false
      },
      "application/lxf": {
        source: "iana"
      },
      "application/mac-binhex40": {
        source: "iana",
        extensions: ["hqx"]
      },
      "application/mac-compactpro": {
        source: "apache",
        extensions: ["cpt"]
      },
      "application/macwriteii": {
        source: "iana"
      },
      "application/mads+xml": {
        source: "iana",
        compressible: true,
        extensions: ["mads"]
      },
      "application/manifest+json": {
        source: "iana",
        charset: "UTF-8",
        compressible: true,
        extensions: ["webmanifest"]
      },
      "application/marc": {
        source: "iana",
        extensions: ["mrc"]
      },
      "application/marcxml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["mrcx"]
      },
      "application/mathematica": {
        source: "iana",
        extensions: ["ma", "nb", "mb"]
      },
      "application/mathml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["mathml"]
      },
      "application/mathml-content+xml": {
        source: "iana",
        compressible: true
      },
      "application/mathml-presentation+xml": {
        source: "iana",
        compressible: true
      },
      "application/mbms-associated-procedure-description+xml": {
        source: "iana",
        compressible: true
      },
      "application/mbms-deregister+xml": {
        source: "iana",
        compressible: true
      },
      "application/mbms-envelope+xml": {
        source: "iana",
        compressible: true
      },
      "application/mbms-msk+xml": {
        source: "iana",
        compressible: true
      },
      "application/mbms-msk-response+xml": {
        source: "iana",
        compressible: true
      },
      "application/mbms-protection-description+xml": {
        source: "iana",
        compressible: true
      },
      "application/mbms-reception-report+xml": {
        source: "iana",
        compressible: true
      },
      "application/mbms-register+xml": {
        source: "iana",
        compressible: true
      },
      "application/mbms-register-response+xml": {
        source: "iana",
        compressible: true
      },
      "application/mbms-schedule+xml": {
        source: "iana",
        compressible: true
      },
      "application/mbms-user-service-description+xml": {
        source: "iana",
        compressible: true
      },
      "application/mbox": {
        source: "iana",
        extensions: ["mbox"]
      },
      "application/media-policy-dataset+xml": {
        source: "iana",
        compressible: true,
        extensions: ["mpf"]
      },
      "application/media_control+xml": {
        source: "iana",
        compressible: true
      },
      "application/mediaservercontrol+xml": {
        source: "iana",
        compressible: true,
        extensions: ["mscml"]
      },
      "application/merge-patch+json": {
        source: "iana",
        compressible: true
      },
      "application/metalink+xml": {
        source: "apache",
        compressible: true,
        extensions: ["metalink"]
      },
      "application/metalink4+xml": {
        source: "iana",
        compressible: true,
        extensions: ["meta4"]
      },
      "application/mets+xml": {
        source: "iana",
        compressible: true,
        extensions: ["mets"]
      },
      "application/mf4": {
        source: "iana"
      },
      "application/mikey": {
        source: "iana"
      },
      "application/mipc": {
        source: "iana"
      },
      "application/missing-blocks+cbor-seq": {
        source: "iana"
      },
      "application/mmt-aei+xml": {
        source: "iana",
        compressible: true,
        extensions: ["maei"]
      },
      "application/mmt-usd+xml": {
        source: "iana",
        compressible: true,
        extensions: ["musd"]
      },
      "application/mods+xml": {
        source: "iana",
        compressible: true,
        extensions: ["mods"]
      },
      "application/moss-keys": {
        source: "iana"
      },
      "application/moss-signature": {
        source: "iana"
      },
      "application/mosskey-data": {
        source: "iana"
      },
      "application/mosskey-request": {
        source: "iana"
      },
      "application/mp21": {
        source: "iana",
        extensions: ["m21", "mp21"]
      },
      "application/mp4": {
        source: "iana",
        extensions: ["mp4s", "m4p"]
      },
      "application/mpeg4-generic": {
        source: "iana"
      },
      "application/mpeg4-iod": {
        source: "iana"
      },
      "application/mpeg4-iod-xmt": {
        source: "iana"
      },
      "application/mrb-consumer+xml": {
        source: "iana",
        compressible: true
      },
      "application/mrb-publish+xml": {
        source: "iana",
        compressible: true
      },
      "application/msc-ivr+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/msc-mixer+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/msword": {
        source: "iana",
        compressible: false,
        extensions: ["doc", "dot"]
      },
      "application/mud+json": {
        source: "iana",
        compressible: true
      },
      "application/multipart-core": {
        source: "iana"
      },
      "application/mxf": {
        source: "iana",
        extensions: ["mxf"]
      },
      "application/n-quads": {
        source: "iana",
        extensions: ["nq"]
      },
      "application/n-triples": {
        source: "iana",
        extensions: ["nt"]
      },
      "application/nasdata": {
        source: "iana"
      },
      "application/news-checkgroups": {
        source: "iana",
        charset: "US-ASCII"
      },
      "application/news-groupinfo": {
        source: "iana",
        charset: "US-ASCII"
      },
      "application/news-transmission": {
        source: "iana"
      },
      "application/nlsml+xml": {
        source: "iana",
        compressible: true
      },
      "application/node": {
        source: "iana",
        extensions: ["cjs"]
      },
      "application/nss": {
        source: "iana"
      },
      "application/oauth-authz-req+jwt": {
        source: "iana"
      },
      "application/oblivious-dns-message": {
        source: "iana"
      },
      "application/ocsp-request": {
        source: "iana"
      },
      "application/ocsp-response": {
        source: "iana"
      },
      "application/octet-stream": {
        source: "iana",
        compressible: false,
        extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"]
      },
      "application/oda": {
        source: "iana",
        extensions: ["oda"]
      },
      "application/odm+xml": {
        source: "iana",
        compressible: true
      },
      "application/odx": {
        source: "iana"
      },
      "application/oebps-package+xml": {
        source: "iana",
        compressible: true,
        extensions: ["opf"]
      },
      "application/ogg": {
        source: "iana",
        compressible: false,
        extensions: ["ogx"]
      },
      "application/omdoc+xml": {
        source: "apache",
        compressible: true,
        extensions: ["omdoc"]
      },
      "application/onenote": {
        source: "apache",
        extensions: ["onetoc", "onetoc2", "onetmp", "onepkg"]
      },
      "application/opc-nodeset+xml": {
        source: "iana",
        compressible: true
      },
      "application/oscore": {
        source: "iana"
      },
      "application/oxps": {
        source: "iana",
        extensions: ["oxps"]
      },
      "application/p21": {
        source: "iana"
      },
      "application/p21+zip": {
        source: "iana",
        compressible: false
      },
      "application/p2p-overlay+xml": {
        source: "iana",
        compressible: true,
        extensions: ["relo"]
      },
      "application/parityfec": {
        source: "iana"
      },
      "application/passport": {
        source: "iana"
      },
      "application/patch-ops-error+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xer"]
      },
      "application/pdf": {
        source: "iana",
        compressible: false,
        extensions: ["pdf"]
      },
      "application/pdx": {
        source: "iana"
      },
      "application/pem-certificate-chain": {
        source: "iana"
      },
      "application/pgp-encrypted": {
        source: "iana",
        compressible: false,
        extensions: ["pgp"]
      },
      "application/pgp-keys": {
        source: "iana",
        extensions: ["asc"]
      },
      "application/pgp-signature": {
        source: "iana",
        extensions: ["asc", "sig"]
      },
      "application/pics-rules": {
        source: "apache",
        extensions: ["prf"]
      },
      "application/pidf+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/pidf-diff+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/pkcs10": {
        source: "iana",
        extensions: ["p10"]
      },
      "application/pkcs12": {
        source: "iana"
      },
      "application/pkcs7-mime": {
        source: "iana",
        extensions: ["p7m", "p7c"]
      },
      "application/pkcs7-signature": {
        source: "iana",
        extensions: ["p7s"]
      },
      "application/pkcs8": {
        source: "iana",
        extensions: ["p8"]
      },
      "application/pkcs8-encrypted": {
        source: "iana"
      },
      "application/pkix-attr-cert": {
        source: "iana",
        extensions: ["ac"]
      },
      "application/pkix-cert": {
        source: "iana",
        extensions: ["cer"]
      },
      "application/pkix-crl": {
        source: "iana",
        extensions: ["crl"]
      },
      "application/pkix-pkipath": {
        source: "iana",
        extensions: ["pkipath"]
      },
      "application/pkixcmp": {
        source: "iana",
        extensions: ["pki"]
      },
      "application/pls+xml": {
        source: "iana",
        compressible: true,
        extensions: ["pls"]
      },
      "application/poc-settings+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/postscript": {
        source: "iana",
        compressible: true,
        extensions: ["ai", "eps", "ps"]
      },
      "application/ppsp-tracker+json": {
        source: "iana",
        compressible: true
      },
      "application/problem+json": {
        source: "iana",
        compressible: true
      },
      "application/problem+xml": {
        source: "iana",
        compressible: true
      },
      "application/provenance+xml": {
        source: "iana",
        compressible: true,
        extensions: ["provx"]
      },
      "application/prs.alvestrand.titrax-sheet": {
        source: "iana"
      },
      "application/prs.cww": {
        source: "iana",
        extensions: ["cww"]
      },
      "application/prs.cyn": {
        source: "iana",
        charset: "7-BIT"
      },
      "application/prs.hpub+zip": {
        source: "iana",
        compressible: false
      },
      "application/prs.nprend": {
        source: "iana"
      },
      "application/prs.plucker": {
        source: "iana"
      },
      "application/prs.rdf-xml-crypt": {
        source: "iana"
      },
      "application/prs.xsf+xml": {
        source: "iana",
        compressible: true
      },
      "application/pskc+xml": {
        source: "iana",
        compressible: true,
        extensions: ["pskcxml"]
      },
      "application/pvd+json": {
        source: "iana",
        compressible: true
      },
      "application/qsig": {
        source: "iana"
      },
      "application/raml+yaml": {
        compressible: true,
        extensions: ["raml"]
      },
      "application/raptorfec": {
        source: "iana"
      },
      "application/rdap+json": {
        source: "iana",
        compressible: true
      },
      "application/rdf+xml": {
        source: "iana",
        compressible: true,
        extensions: ["rdf", "owl"]
      },
      "application/reginfo+xml": {
        source: "iana",
        compressible: true,
        extensions: ["rif"]
      },
      "application/relax-ng-compact-syntax": {
        source: "iana",
        extensions: ["rnc"]
      },
      "application/remote-printing": {
        source: "iana"
      },
      "application/reputon+json": {
        source: "iana",
        compressible: true
      },
      "application/resource-lists+xml": {
        source: "iana",
        compressible: true,
        extensions: ["rl"]
      },
      "application/resource-lists-diff+xml": {
        source: "iana",
        compressible: true,
        extensions: ["rld"]
      },
      "application/rfc+xml": {
        source: "iana",
        compressible: true
      },
      "application/riscos": {
        source: "iana"
      },
      "application/rlmi+xml": {
        source: "iana",
        compressible: true
      },
      "application/rls-services+xml": {
        source: "iana",
        compressible: true,
        extensions: ["rs"]
      },
      "application/route-apd+xml": {
        source: "iana",
        compressible: true,
        extensions: ["rapd"]
      },
      "application/route-s-tsid+xml": {
        source: "iana",
        compressible: true,
        extensions: ["sls"]
      },
      "application/route-usd+xml": {
        source: "iana",
        compressible: true,
        extensions: ["rusd"]
      },
      "application/rpki-ghostbusters": {
        source: "iana",
        extensions: ["gbr"]
      },
      "application/rpki-manifest": {
        source: "iana",
        extensions: ["mft"]
      },
      "application/rpki-publication": {
        source: "iana"
      },
      "application/rpki-roa": {
        source: "iana",
        extensions: ["roa"]
      },
      "application/rpki-updown": {
        source: "iana"
      },
      "application/rsd+xml": {
        source: "apache",
        compressible: true,
        extensions: ["rsd"]
      },
      "application/rss+xml": {
        source: "apache",
        compressible: true,
        extensions: ["rss"]
      },
      "application/rtf": {
        source: "iana",
        compressible: true,
        extensions: ["rtf"]
      },
      "application/rtploopback": {
        source: "iana"
      },
      "application/rtx": {
        source: "iana"
      },
      "application/samlassertion+xml": {
        source: "iana",
        compressible: true
      },
      "application/samlmetadata+xml": {
        source: "iana",
        compressible: true
      },
      "application/sarif+json": {
        source: "iana",
        compressible: true
      },
      "application/sarif-external-properties+json": {
        source: "iana",
        compressible: true
      },
      "application/sbe": {
        source: "iana"
      },
      "application/sbml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["sbml"]
      },
      "application/scaip+xml": {
        source: "iana",
        compressible: true
      },
      "application/scim+json": {
        source: "iana",
        compressible: true
      },
      "application/scvp-cv-request": {
        source: "iana",
        extensions: ["scq"]
      },
      "application/scvp-cv-response": {
        source: "iana",
        extensions: ["scs"]
      },
      "application/scvp-vp-request": {
        source: "iana",
        extensions: ["spq"]
      },
      "application/scvp-vp-response": {
        source: "iana",
        extensions: ["spp"]
      },
      "application/sdp": {
        source: "iana",
        extensions: ["sdp"]
      },
      "application/secevent+jwt": {
        source: "iana"
      },
      "application/senml+cbor": {
        source: "iana"
      },
      "application/senml+json": {
        source: "iana",
        compressible: true
      },
      "application/senml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["senmlx"]
      },
      "application/senml-etch+cbor": {
        source: "iana"
      },
      "application/senml-etch+json": {
        source: "iana",
        compressible: true
      },
      "application/senml-exi": {
        source: "iana"
      },
      "application/sensml+cbor": {
        source: "iana"
      },
      "application/sensml+json": {
        source: "iana",
        compressible: true
      },
      "application/sensml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["sensmlx"]
      },
      "application/sensml-exi": {
        source: "iana"
      },
      "application/sep+xml": {
        source: "iana",
        compressible: true
      },
      "application/sep-exi": {
        source: "iana"
      },
      "application/session-info": {
        source: "iana"
      },
      "application/set-payment": {
        source: "iana"
      },
      "application/set-payment-initiation": {
        source: "iana",
        extensions: ["setpay"]
      },
      "application/set-registration": {
        source: "iana"
      },
      "application/set-registration-initiation": {
        source: "iana",
        extensions: ["setreg"]
      },
      "application/sgml": {
        source: "iana"
      },
      "application/sgml-open-catalog": {
        source: "iana"
      },
      "application/shf+xml": {
        source: "iana",
        compressible: true,
        extensions: ["shf"]
      },
      "application/sieve": {
        source: "iana",
        extensions: ["siv", "sieve"]
      },
      "application/simple-filter+xml": {
        source: "iana",
        compressible: true
      },
      "application/simple-message-summary": {
        source: "iana"
      },
      "application/simplesymbolcontainer": {
        source: "iana"
      },
      "application/sipc": {
        source: "iana"
      },
      "application/slate": {
        source: "iana"
      },
      "application/smil": {
        source: "iana"
      },
      "application/smil+xml": {
        source: "iana",
        compressible: true,
        extensions: ["smi", "smil"]
      },
      "application/smpte336m": {
        source: "iana"
      },
      "application/soap+fastinfoset": {
        source: "iana"
      },
      "application/soap+xml": {
        source: "iana",
        compressible: true
      },
      "application/sparql-query": {
        source: "iana",
        extensions: ["rq"]
      },
      "application/sparql-results+xml": {
        source: "iana",
        compressible: true,
        extensions: ["srx"]
      },
      "application/spdx+json": {
        source: "iana",
        compressible: true
      },
      "application/spirits-event+xml": {
        source: "iana",
        compressible: true
      },
      "application/sql": {
        source: "iana"
      },
      "application/srgs": {
        source: "iana",
        extensions: ["gram"]
      },
      "application/srgs+xml": {
        source: "iana",
        compressible: true,
        extensions: ["grxml"]
      },
      "application/sru+xml": {
        source: "iana",
        compressible: true,
        extensions: ["sru"]
      },
      "application/ssdl+xml": {
        source: "apache",
        compressible: true,
        extensions: ["ssdl"]
      },
      "application/ssml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["ssml"]
      },
      "application/stix+json": {
        source: "iana",
        compressible: true
      },
      "application/swid+xml": {
        source: "iana",
        compressible: true,
        extensions: ["swidtag"]
      },
      "application/tamp-apex-update": {
        source: "iana"
      },
      "application/tamp-apex-update-confirm": {
        source: "iana"
      },
      "application/tamp-community-update": {
        source: "iana"
      },
      "application/tamp-community-update-confirm": {
        source: "iana"
      },
      "application/tamp-error": {
        source: "iana"
      },
      "application/tamp-sequence-adjust": {
        source: "iana"
      },
      "application/tamp-sequence-adjust-confirm": {
        source: "iana"
      },
      "application/tamp-status-query": {
        source: "iana"
      },
      "application/tamp-status-response": {
        source: "iana"
      },
      "application/tamp-update": {
        source: "iana"
      },
      "application/tamp-update-confirm": {
        source: "iana"
      },
      "application/tar": {
        compressible: true
      },
      "application/taxii+json": {
        source: "iana",
        compressible: true
      },
      "application/td+json": {
        source: "iana",
        compressible: true
      },
      "application/tei+xml": {
        source: "iana",
        compressible: true,
        extensions: ["tei", "teicorpus"]
      },
      "application/tetra_isi": {
        source: "iana"
      },
      "application/thraud+xml": {
        source: "iana",
        compressible: true,
        extensions: ["tfi"]
      },
      "application/timestamp-query": {
        source: "iana"
      },
      "application/timestamp-reply": {
        source: "iana"
      },
      "application/timestamped-data": {
        source: "iana",
        extensions: ["tsd"]
      },
      "application/tlsrpt+gzip": {
        source: "iana"
      },
      "application/tlsrpt+json": {
        source: "iana",
        compressible: true
      },
      "application/tnauthlist": {
        source: "iana"
      },
      "application/token-introspection+jwt": {
        source: "iana"
      },
      "application/toml": {
        compressible: true,
        extensions: ["toml"]
      },
      "application/trickle-ice-sdpfrag": {
        source: "iana"
      },
      "application/trig": {
        source: "iana",
        extensions: ["trig"]
      },
      "application/ttml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["ttml"]
      },
      "application/tve-trigger": {
        source: "iana"
      },
      "application/tzif": {
        source: "iana"
      },
      "application/tzif-leap": {
        source: "iana"
      },
      "application/ubjson": {
        compressible: false,
        extensions: ["ubj"]
      },
      "application/ulpfec": {
        source: "iana"
      },
      "application/urc-grpsheet+xml": {
        source: "iana",
        compressible: true
      },
      "application/urc-ressheet+xml": {
        source: "iana",
        compressible: true,
        extensions: ["rsheet"]
      },
      "application/urc-targetdesc+xml": {
        source: "iana",
        compressible: true,
        extensions: ["td"]
      },
      "application/urc-uisocketdesc+xml": {
        source: "iana",
        compressible: true
      },
      "application/vcard+json": {
        source: "iana",
        compressible: true
      },
      "application/vcard+xml": {
        source: "iana",
        compressible: true
      },
      "application/vemmi": {
        source: "iana"
      },
      "application/vividence.scriptfile": {
        source: "apache"
      },
      "application/vnd.1000minds.decision-model+xml": {
        source: "iana",
        compressible: true,
        extensions: ["1km"]
      },
      "application/vnd.3gpp-prose+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp-prose-pc3ch+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp-v2x-local-service-information": {
        source: "iana"
      },
      "application/vnd.3gpp.5gnas": {
        source: "iana"
      },
      "application/vnd.3gpp.access-transfer-events+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.bsf+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.gmop+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.gtpc": {
        source: "iana"
      },
      "application/vnd.3gpp.interworking-data": {
        source: "iana"
      },
      "application/vnd.3gpp.lpp": {
        source: "iana"
      },
      "application/vnd.3gpp.mc-signalling-ear": {
        source: "iana"
      },
      "application/vnd.3gpp.mcdata-affiliation-command+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcdata-info+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcdata-payload": {
        source: "iana"
      },
      "application/vnd.3gpp.mcdata-service-config+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcdata-signalling": {
        source: "iana"
      },
      "application/vnd.3gpp.mcdata-ue-config+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcdata-user-profile+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcptt-affiliation-command+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcptt-floor-request+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcptt-info+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcptt-location-info+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcptt-service-config+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcptt-signed+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcptt-ue-config+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcptt-ue-init-config+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcptt-user-profile+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcvideo-affiliation-command+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcvideo-affiliation-info+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcvideo-info+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcvideo-location-info+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcvideo-service-config+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcvideo-transmission-request+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcvideo-ue-config+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mcvideo-user-profile+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.mid-call+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.ngap": {
        source: "iana"
      },
      "application/vnd.3gpp.pfcp": {
        source: "iana"
      },
      "application/vnd.3gpp.pic-bw-large": {
        source: "iana",
        extensions: ["plb"]
      },
      "application/vnd.3gpp.pic-bw-small": {
        source: "iana",
        extensions: ["psb"]
      },
      "application/vnd.3gpp.pic-bw-var": {
        source: "iana",
        extensions: ["pvb"]
      },
      "application/vnd.3gpp.s1ap": {
        source: "iana"
      },
      "application/vnd.3gpp.sms": {
        source: "iana"
      },
      "application/vnd.3gpp.sms+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.srvcc-ext+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.srvcc-info+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.state-and-event-info+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp.ussd+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp2.bcmcsinfo+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.3gpp2.sms": {
        source: "iana"
      },
      "application/vnd.3gpp2.tcap": {
        source: "iana",
        extensions: ["tcap"]
      },
      "application/vnd.3lightssoftware.imagescal": {
        source: "iana"
      },
      "application/vnd.3m.post-it-notes": {
        source: "iana",
        extensions: ["pwn"]
      },
      "application/vnd.accpac.simply.aso": {
        source: "iana",
        extensions: ["aso"]
      },
      "application/vnd.accpac.simply.imp": {
        source: "iana",
        extensions: ["imp"]
      },
      "application/vnd.acucobol": {
        source: "iana",
        extensions: ["acu"]
      },
      "application/vnd.acucorp": {
        source: "iana",
        extensions: ["atc", "acutc"]
      },
      "application/vnd.adobe.air-application-installer-package+zip": {
        source: "apache",
        compressible: false,
        extensions: ["air"]
      },
      "application/vnd.adobe.flash.movie": {
        source: "iana"
      },
      "application/vnd.adobe.formscentral.fcdt": {
        source: "iana",
        extensions: ["fcdt"]
      },
      "application/vnd.adobe.fxp": {
        source: "iana",
        extensions: ["fxp", "fxpl"]
      },
      "application/vnd.adobe.partial-upload": {
        source: "iana"
      },
      "application/vnd.adobe.xdp+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xdp"]
      },
      "application/vnd.adobe.xfdf": {
        source: "iana",
        extensions: ["xfdf"]
      },
      "application/vnd.aether.imp": {
        source: "iana"
      },
      "application/vnd.afpc.afplinedata": {
        source: "iana"
      },
      "application/vnd.afpc.afplinedata-pagedef": {
        source: "iana"
      },
      "application/vnd.afpc.cmoca-cmresource": {
        source: "iana"
      },
      "application/vnd.afpc.foca-charset": {
        source: "iana"
      },
      "application/vnd.afpc.foca-codedfont": {
        source: "iana"
      },
      "application/vnd.afpc.foca-codepage": {
        source: "iana"
      },
      "application/vnd.afpc.modca": {
        source: "iana"
      },
      "application/vnd.afpc.modca-cmtable": {
        source: "iana"
      },
      "application/vnd.afpc.modca-formdef": {
        source: "iana"
      },
      "application/vnd.afpc.modca-mediummap": {
        source: "iana"
      },
      "application/vnd.afpc.modca-objectcontainer": {
        source: "iana"
      },
      "application/vnd.afpc.modca-overlay": {
        source: "iana"
      },
      "application/vnd.afpc.modca-pagesegment": {
        source: "iana"
      },
      "application/vnd.age": {
        source: "iana",
        extensions: ["age"]
      },
      "application/vnd.ah-barcode": {
        source: "iana"
      },
      "application/vnd.ahead.space": {
        source: "iana",
        extensions: ["ahead"]
      },
      "application/vnd.airzip.filesecure.azf": {
        source: "iana",
        extensions: ["azf"]
      },
      "application/vnd.airzip.filesecure.azs": {
        source: "iana",
        extensions: ["azs"]
      },
      "application/vnd.amadeus+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.amazon.ebook": {
        source: "apache",
        extensions: ["azw"]
      },
      "application/vnd.amazon.mobi8-ebook": {
        source: "iana"
      },
      "application/vnd.americandynamics.acc": {
        source: "iana",
        extensions: ["acc"]
      },
      "application/vnd.amiga.ami": {
        source: "iana",
        extensions: ["ami"]
      },
      "application/vnd.amundsen.maze+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.android.ota": {
        source: "iana"
      },
      "application/vnd.android.package-archive": {
        source: "apache",
        compressible: false,
        extensions: ["apk"]
      },
      "application/vnd.anki": {
        source: "iana"
      },
      "application/vnd.anser-web-certificate-issue-initiation": {
        source: "iana",
        extensions: ["cii"]
      },
      "application/vnd.anser-web-funds-transfer-initiation": {
        source: "apache",
        extensions: ["fti"]
      },
      "application/vnd.antix.game-component": {
        source: "iana",
        extensions: ["atx"]
      },
      "application/vnd.apache.arrow.file": {
        source: "iana"
      },
      "application/vnd.apache.arrow.stream": {
        source: "iana"
      },
      "application/vnd.apache.thrift.binary": {
        source: "iana"
      },
      "application/vnd.apache.thrift.compact": {
        source: "iana"
      },
      "application/vnd.apache.thrift.json": {
        source: "iana"
      },
      "application/vnd.api+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.aplextor.warrp+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.apothekende.reservation+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.apple.installer+xml": {
        source: "iana",
        compressible: true,
        extensions: ["mpkg"]
      },
      "application/vnd.apple.keynote": {
        source: "iana",
        extensions: ["key"]
      },
      "application/vnd.apple.mpegurl": {
        source: "iana",
        extensions: ["m3u8"]
      },
      "application/vnd.apple.numbers": {
        source: "iana",
        extensions: ["numbers"]
      },
      "application/vnd.apple.pages": {
        source: "iana",
        extensions: ["pages"]
      },
      "application/vnd.apple.pkpass": {
        compressible: false,
        extensions: ["pkpass"]
      },
      "application/vnd.arastra.swi": {
        source: "iana"
      },
      "application/vnd.aristanetworks.swi": {
        source: "iana",
        extensions: ["swi"]
      },
      "application/vnd.artisan+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.artsquare": {
        source: "iana"
      },
      "application/vnd.astraea-software.iota": {
        source: "iana",
        extensions: ["iota"]
      },
      "application/vnd.audiograph": {
        source: "iana",
        extensions: ["aep"]
      },
      "application/vnd.autopackage": {
        source: "iana"
      },
      "application/vnd.avalon+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.avistar+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.balsamiq.bmml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["bmml"]
      },
      "application/vnd.balsamiq.bmpr": {
        source: "iana"
      },
      "application/vnd.banana-accounting": {
        source: "iana"
      },
      "application/vnd.bbf.usp.error": {
        source: "iana"
      },
      "application/vnd.bbf.usp.msg": {
        source: "iana"
      },
      "application/vnd.bbf.usp.msg+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.bekitzur-stech+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.bint.med-content": {
        source: "iana"
      },
      "application/vnd.biopax.rdf+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.blink-idb-value-wrapper": {
        source: "iana"
      },
      "application/vnd.blueice.multipass": {
        source: "iana",
        extensions: ["mpm"]
      },
      "application/vnd.bluetooth.ep.oob": {
        source: "iana"
      },
      "application/vnd.bluetooth.le.oob": {
        source: "iana"
      },
      "application/vnd.bmi": {
        source: "iana",
        extensions: ["bmi"]
      },
      "application/vnd.bpf": {
        source: "iana"
      },
      "application/vnd.bpf3": {
        source: "iana"
      },
      "application/vnd.businessobjects": {
        source: "iana",
        extensions: ["rep"]
      },
      "application/vnd.byu.uapi+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.cab-jscript": {
        source: "iana"
      },
      "application/vnd.canon-cpdl": {
        source: "iana"
      },
      "application/vnd.canon-lips": {
        source: "iana"
      },
      "application/vnd.capasystems-pg+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.cendio.thinlinc.clientconf": {
        source: "iana"
      },
      "application/vnd.century-systems.tcp_stream": {
        source: "iana"
      },
      "application/vnd.chemdraw+xml": {
        source: "iana",
        compressible: true,
        extensions: ["cdxml"]
      },
      "application/vnd.chess-pgn": {
        source: "iana"
      },
      "application/vnd.chipnuts.karaoke-mmd": {
        source: "iana",
        extensions: ["mmd"]
      },
      "application/vnd.ciedi": {
        source: "iana"
      },
      "application/vnd.cinderella": {
        source: "iana",
        extensions: ["cdy"]
      },
      "application/vnd.cirpack.isdn-ext": {
        source: "iana"
      },
      "application/vnd.citationstyles.style+xml": {
        source: "iana",
        compressible: true,
        extensions: ["csl"]
      },
      "application/vnd.claymore": {
        source: "iana",
        extensions: ["cla"]
      },
      "application/vnd.cloanto.rp9": {
        source: "iana",
        extensions: ["rp9"]
      },
      "application/vnd.clonk.c4group": {
        source: "iana",
        extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"]
      },
      "application/vnd.cluetrust.cartomobile-config": {
        source: "iana",
        extensions: ["c11amc"]
      },
      "application/vnd.cluetrust.cartomobile-config-pkg": {
        source: "iana",
        extensions: ["c11amz"]
      },
      "application/vnd.coffeescript": {
        source: "iana"
      },
      "application/vnd.collabio.xodocuments.document": {
        source: "iana"
      },
      "application/vnd.collabio.xodocuments.document-template": {
        source: "iana"
      },
      "application/vnd.collabio.xodocuments.presentation": {
        source: "iana"
      },
      "application/vnd.collabio.xodocuments.presentation-template": {
        source: "iana"
      },
      "application/vnd.collabio.xodocuments.spreadsheet": {
        source: "iana"
      },
      "application/vnd.collabio.xodocuments.spreadsheet-template": {
        source: "iana"
      },
      "application/vnd.collection+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.collection.doc+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.collection.next+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.comicbook+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.comicbook-rar": {
        source: "iana"
      },
      "application/vnd.commerce-battelle": {
        source: "iana"
      },
      "application/vnd.commonspace": {
        source: "iana",
        extensions: ["csp"]
      },
      "application/vnd.contact.cmsg": {
        source: "iana",
        extensions: ["cdbcmsg"]
      },
      "application/vnd.coreos.ignition+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.cosmocaller": {
        source: "iana",
        extensions: ["cmc"]
      },
      "application/vnd.crick.clicker": {
        source: "iana",
        extensions: ["clkx"]
      },
      "application/vnd.crick.clicker.keyboard": {
        source: "iana",
        extensions: ["clkk"]
      },
      "application/vnd.crick.clicker.palette": {
        source: "iana",
        extensions: ["clkp"]
      },
      "application/vnd.crick.clicker.template": {
        source: "iana",
        extensions: ["clkt"]
      },
      "application/vnd.crick.clicker.wordbank": {
        source: "iana",
        extensions: ["clkw"]
      },
      "application/vnd.criticaltools.wbs+xml": {
        source: "iana",
        compressible: true,
        extensions: ["wbs"]
      },
      "application/vnd.cryptii.pipe+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.crypto-shade-file": {
        source: "iana"
      },
      "application/vnd.cryptomator.encrypted": {
        source: "iana"
      },
      "application/vnd.cryptomator.vault": {
        source: "iana"
      },
      "application/vnd.ctc-posml": {
        source: "iana",
        extensions: ["pml"]
      },
      "application/vnd.ctct.ws+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.cups-pdf": {
        source: "iana"
      },
      "application/vnd.cups-postscript": {
        source: "iana"
      },
      "application/vnd.cups-ppd": {
        source: "iana",
        extensions: ["ppd"]
      },
      "application/vnd.cups-raster": {
        source: "iana"
      },
      "application/vnd.cups-raw": {
        source: "iana"
      },
      "application/vnd.curl": {
        source: "iana"
      },
      "application/vnd.curl.car": {
        source: "apache",
        extensions: ["car"]
      },
      "application/vnd.curl.pcurl": {
        source: "apache",
        extensions: ["pcurl"]
      },
      "application/vnd.cyan.dean.root+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.cybank": {
        source: "iana"
      },
      "application/vnd.cyclonedx+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.cyclonedx+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.d2l.coursepackage1p0+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.d3m-dataset": {
        source: "iana"
      },
      "application/vnd.d3m-problem": {
        source: "iana"
      },
      "application/vnd.dart": {
        source: "iana",
        compressible: true,
        extensions: ["dart"]
      },
      "application/vnd.data-vision.rdz": {
        source: "iana",
        extensions: ["rdz"]
      },
      "application/vnd.datapackage+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.dataresource+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.dbf": {
        source: "iana",
        extensions: ["dbf"]
      },
      "application/vnd.debian.binary-package": {
        source: "iana"
      },
      "application/vnd.dece.data": {
        source: "iana",
        extensions: ["uvf", "uvvf", "uvd", "uvvd"]
      },
      "application/vnd.dece.ttml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["uvt", "uvvt"]
      },
      "application/vnd.dece.unspecified": {
        source: "iana",
        extensions: ["uvx", "uvvx"]
      },
      "application/vnd.dece.zip": {
        source: "iana",
        extensions: ["uvz", "uvvz"]
      },
      "application/vnd.denovo.fcselayout-link": {
        source: "iana",
        extensions: ["fe_launch"]
      },
      "application/vnd.desmume.movie": {
        source: "iana"
      },
      "application/vnd.dir-bi.plate-dl-nosuffix": {
        source: "iana"
      },
      "application/vnd.dm.delegation+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.dna": {
        source: "iana",
        extensions: ["dna"]
      },
      "application/vnd.document+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.dolby.mlp": {
        source: "apache",
        extensions: ["mlp"]
      },
      "application/vnd.dolby.mobile.1": {
        source: "iana"
      },
      "application/vnd.dolby.mobile.2": {
        source: "iana"
      },
      "application/vnd.doremir.scorecloud-binary-document": {
        source: "iana"
      },
      "application/vnd.dpgraph": {
        source: "iana",
        extensions: ["dpg"]
      },
      "application/vnd.dreamfactory": {
        source: "iana",
        extensions: ["dfac"]
      },
      "application/vnd.drive+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.ds-keypoint": {
        source: "apache",
        extensions: ["kpxx"]
      },
      "application/vnd.dtg.local": {
        source: "iana"
      },
      "application/vnd.dtg.local.flash": {
        source: "iana"
      },
      "application/vnd.dtg.local.html": {
        source: "iana"
      },
      "application/vnd.dvb.ait": {
        source: "iana",
        extensions: ["ait"]
      },
      "application/vnd.dvb.dvbisl+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.dvb.dvbj": {
        source: "iana"
      },
      "application/vnd.dvb.esgcontainer": {
        source: "iana"
      },
      "application/vnd.dvb.ipdcdftnotifaccess": {
        source: "iana"
      },
      "application/vnd.dvb.ipdcesgaccess": {
        source: "iana"
      },
      "application/vnd.dvb.ipdcesgaccess2": {
        source: "iana"
      },
      "application/vnd.dvb.ipdcesgpdd": {
        source: "iana"
      },
      "application/vnd.dvb.ipdcroaming": {
        source: "iana"
      },
      "application/vnd.dvb.iptv.alfec-base": {
        source: "iana"
      },
      "application/vnd.dvb.iptv.alfec-enhancement": {
        source: "iana"
      },
      "application/vnd.dvb.notif-aggregate-root+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.dvb.notif-container+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.dvb.notif-generic+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.dvb.notif-ia-msglist+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.dvb.notif-ia-registration-request+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.dvb.notif-ia-registration-response+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.dvb.notif-init+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.dvb.pfr": {
        source: "iana"
      },
      "application/vnd.dvb.service": {
        source: "iana",
        extensions: ["svc"]
      },
      "application/vnd.dxr": {
        source: "iana"
      },
      "application/vnd.dynageo": {
        source: "iana",
        extensions: ["geo"]
      },
      "application/vnd.dzr": {
        source: "iana"
      },
      "application/vnd.easykaraoke.cdgdownload": {
        source: "iana"
      },
      "application/vnd.ecdis-update": {
        source: "iana"
      },
      "application/vnd.ecip.rlp": {
        source: "iana"
      },
      "application/vnd.eclipse.ditto+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.ecowin.chart": {
        source: "iana",
        extensions: ["mag"]
      },
      "application/vnd.ecowin.filerequest": {
        source: "iana"
      },
      "application/vnd.ecowin.fileupdate": {
        source: "iana"
      },
      "application/vnd.ecowin.series": {
        source: "iana"
      },
      "application/vnd.ecowin.seriesrequest": {
        source: "iana"
      },
      "application/vnd.ecowin.seriesupdate": {
        source: "iana"
      },
      "application/vnd.efi.img": {
        source: "iana"
      },
      "application/vnd.efi.iso": {
        source: "iana"
      },
      "application/vnd.emclient.accessrequest+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.enliven": {
        source: "iana",
        extensions: ["nml"]
      },
      "application/vnd.enphase.envoy": {
        source: "iana"
      },
      "application/vnd.eprints.data+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.epson.esf": {
        source: "iana",
        extensions: ["esf"]
      },
      "application/vnd.epson.msf": {
        source: "iana",
        extensions: ["msf"]
      },
      "application/vnd.epson.quickanime": {
        source: "iana",
        extensions: ["qam"]
      },
      "application/vnd.epson.salt": {
        source: "iana",
        extensions: ["slt"]
      },
      "application/vnd.epson.ssf": {
        source: "iana",
        extensions: ["ssf"]
      },
      "application/vnd.ericsson.quickcall": {
        source: "iana"
      },
      "application/vnd.espass-espass+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.eszigno3+xml": {
        source: "iana",
        compressible: true,
        extensions: ["es3", "et3"]
      },
      "application/vnd.etsi.aoc+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.asic-e+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.etsi.asic-s+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.etsi.cug+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.iptvcommand+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.iptvdiscovery+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.iptvprofile+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.iptvsad-bc+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.iptvsad-cod+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.iptvsad-npvr+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.iptvservice+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.iptvsync+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.iptvueprofile+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.mcid+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.mheg5": {
        source: "iana"
      },
      "application/vnd.etsi.overload-control-policy-dataset+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.pstn+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.sci+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.simservs+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.timestamp-token": {
        source: "iana"
      },
      "application/vnd.etsi.tsl+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.etsi.tsl.der": {
        source: "iana"
      },
      "application/vnd.eu.kasparian.car+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.eudora.data": {
        source: "iana"
      },
      "application/vnd.evolv.ecig.profile": {
        source: "iana"
      },
      "application/vnd.evolv.ecig.settings": {
        source: "iana"
      },
      "application/vnd.evolv.ecig.theme": {
        source: "iana"
      },
      "application/vnd.exstream-empower+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.exstream-package": {
        source: "iana"
      },
      "application/vnd.ezpix-album": {
        source: "iana",
        extensions: ["ez2"]
      },
      "application/vnd.ezpix-package": {
        source: "iana",
        extensions: ["ez3"]
      },
      "application/vnd.f-secure.mobile": {
        source: "iana"
      },
      "application/vnd.familysearch.gedcom+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.fastcopy-disk-image": {
        source: "iana"
      },
      "application/vnd.fdf": {
        source: "iana",
        extensions: ["fdf"]
      },
      "application/vnd.fdsn.mseed": {
        source: "iana",
        extensions: ["mseed"]
      },
      "application/vnd.fdsn.seed": {
        source: "iana",
        extensions: ["seed", "dataless"]
      },
      "application/vnd.ffsns": {
        source: "iana"
      },
      "application/vnd.ficlab.flb+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.filmit.zfc": {
        source: "iana"
      },
      "application/vnd.fints": {
        source: "iana"
      },
      "application/vnd.firemonkeys.cloudcell": {
        source: "iana"
      },
      "application/vnd.flographit": {
        source: "iana",
        extensions: ["gph"]
      },
      "application/vnd.fluxtime.clip": {
        source: "iana",
        extensions: ["ftc"]
      },
      "application/vnd.font-fontforge-sfd": {
        source: "iana"
      },
      "application/vnd.framemaker": {
        source: "iana",
        extensions: ["fm", "frame", "maker", "book"]
      },
      "application/vnd.frogans.fnc": {
        source: "iana",
        extensions: ["fnc"]
      },
      "application/vnd.frogans.ltf": {
        source: "iana",
        extensions: ["ltf"]
      },
      "application/vnd.fsc.weblaunch": {
        source: "iana",
        extensions: ["fsc"]
      },
      "application/vnd.fujifilm.fb.docuworks": {
        source: "iana"
      },
      "application/vnd.fujifilm.fb.docuworks.binder": {
        source: "iana"
      },
      "application/vnd.fujifilm.fb.docuworks.container": {
        source: "iana"
      },
      "application/vnd.fujifilm.fb.jfi+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.fujitsu.oasys": {
        source: "iana",
        extensions: ["oas"]
      },
      "application/vnd.fujitsu.oasys2": {
        source: "iana",
        extensions: ["oa2"]
      },
      "application/vnd.fujitsu.oasys3": {
        source: "iana",
        extensions: ["oa3"]
      },
      "application/vnd.fujitsu.oasysgp": {
        source: "iana",
        extensions: ["fg5"]
      },
      "application/vnd.fujitsu.oasysprs": {
        source: "iana",
        extensions: ["bh2"]
      },
      "application/vnd.fujixerox.art-ex": {
        source: "iana"
      },
      "application/vnd.fujixerox.art4": {
        source: "iana"
      },
      "application/vnd.fujixerox.ddd": {
        source: "iana",
        extensions: ["ddd"]
      },
      "application/vnd.fujixerox.docuworks": {
        source: "iana",
        extensions: ["xdw"]
      },
      "application/vnd.fujixerox.docuworks.binder": {
        source: "iana",
        extensions: ["xbd"]
      },
      "application/vnd.fujixerox.docuworks.container": {
        source: "iana"
      },
      "application/vnd.fujixerox.hbpl": {
        source: "iana"
      },
      "application/vnd.fut-misnet": {
        source: "iana"
      },
      "application/vnd.futoin+cbor": {
        source: "iana"
      },
      "application/vnd.futoin+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.fuzzysheet": {
        source: "iana",
        extensions: ["fzs"]
      },
      "application/vnd.genomatix.tuxedo": {
        source: "iana",
        extensions: ["txd"]
      },
      "application/vnd.gentics.grd+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.geo+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.geocube+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.geogebra.file": {
        source: "iana",
        extensions: ["ggb"]
      },
      "application/vnd.geogebra.slides": {
        source: "iana"
      },
      "application/vnd.geogebra.tool": {
        source: "iana",
        extensions: ["ggt"]
      },
      "application/vnd.geometry-explorer": {
        source: "iana",
        extensions: ["gex", "gre"]
      },
      "application/vnd.geonext": {
        source: "iana",
        extensions: ["gxt"]
      },
      "application/vnd.geoplan": {
        source: "iana",
        extensions: ["g2w"]
      },
      "application/vnd.geospace": {
        source: "iana",
        extensions: ["g3w"]
      },
      "application/vnd.gerber": {
        source: "iana"
      },
      "application/vnd.globalplatform.card-content-mgt": {
        source: "iana"
      },
      "application/vnd.globalplatform.card-content-mgt-response": {
        source: "iana"
      },
      "application/vnd.gmx": {
        source: "iana",
        extensions: ["gmx"]
      },
      "application/vnd.google-apps.document": {
        compressible: false,
        extensions: ["gdoc"]
      },
      "application/vnd.google-apps.presentation": {
        compressible: false,
        extensions: ["gslides"]
      },
      "application/vnd.google-apps.spreadsheet": {
        compressible: false,
        extensions: ["gsheet"]
      },
      "application/vnd.google-earth.kml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["kml"]
      },
      "application/vnd.google-earth.kmz": {
        source: "iana",
        compressible: false,
        extensions: ["kmz"]
      },
      "application/vnd.gov.sk.e-form+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.gov.sk.e-form+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.gov.sk.xmldatacontainer+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.grafeq": {
        source: "iana",
        extensions: ["gqf", "gqs"]
      },
      "application/vnd.gridmp": {
        source: "iana"
      },
      "application/vnd.groove-account": {
        source: "iana",
        extensions: ["gac"]
      },
      "application/vnd.groove-help": {
        source: "iana",
        extensions: ["ghf"]
      },
      "application/vnd.groove-identity-message": {
        source: "iana",
        extensions: ["gim"]
      },
      "application/vnd.groove-injector": {
        source: "iana",
        extensions: ["grv"]
      },
      "application/vnd.groove-tool-message": {
        source: "iana",
        extensions: ["gtm"]
      },
      "application/vnd.groove-tool-template": {
        source: "iana",
        extensions: ["tpl"]
      },
      "application/vnd.groove-vcard": {
        source: "iana",
        extensions: ["vcg"]
      },
      "application/vnd.hal+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.hal+xml": {
        source: "iana",
        compressible: true,
        extensions: ["hal"]
      },
      "application/vnd.handheld-entertainment+xml": {
        source: "iana",
        compressible: true,
        extensions: ["zmm"]
      },
      "application/vnd.hbci": {
        source: "iana",
        extensions: ["hbci"]
      },
      "application/vnd.hc+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.hcl-bireports": {
        source: "iana"
      },
      "application/vnd.hdt": {
        source: "iana"
      },
      "application/vnd.heroku+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.hhe.lesson-player": {
        source: "iana",
        extensions: ["les"]
      },
      "application/vnd.hl7cda+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/vnd.hl7v2+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/vnd.hp-hpgl": {
        source: "iana",
        extensions: ["hpgl"]
      },
      "application/vnd.hp-hpid": {
        source: "iana",
        extensions: ["hpid"]
      },
      "application/vnd.hp-hps": {
        source: "iana",
        extensions: ["hps"]
      },
      "application/vnd.hp-jlyt": {
        source: "iana",
        extensions: ["jlt"]
      },
      "application/vnd.hp-pcl": {
        source: "iana",
        extensions: ["pcl"]
      },
      "application/vnd.hp-pclxl": {
        source: "iana",
        extensions: ["pclxl"]
      },
      "application/vnd.httphone": {
        source: "iana"
      },
      "application/vnd.hydrostatix.sof-data": {
        source: "iana",
        extensions: ["sfd-hdstx"]
      },
      "application/vnd.hyper+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.hyper-item+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.hyperdrive+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.hzn-3d-crossword": {
        source: "iana"
      },
      "application/vnd.ibm.afplinedata": {
        source: "iana"
      },
      "application/vnd.ibm.electronic-media": {
        source: "iana"
      },
      "application/vnd.ibm.minipay": {
        source: "iana",
        extensions: ["mpy"]
      },
      "application/vnd.ibm.modcap": {
        source: "iana",
        extensions: ["afp", "listafp", "list3820"]
      },
      "application/vnd.ibm.rights-management": {
        source: "iana",
        extensions: ["irm"]
      },
      "application/vnd.ibm.secure-container": {
        source: "iana",
        extensions: ["sc"]
      },
      "application/vnd.iccprofile": {
        source: "iana",
        extensions: ["icc", "icm"]
      },
      "application/vnd.ieee.1905": {
        source: "iana"
      },
      "application/vnd.igloader": {
        source: "iana",
        extensions: ["igl"]
      },
      "application/vnd.imagemeter.folder+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.imagemeter.image+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.immervision-ivp": {
        source: "iana",
        extensions: ["ivp"]
      },
      "application/vnd.immervision-ivu": {
        source: "iana",
        extensions: ["ivu"]
      },
      "application/vnd.ims.imsccv1p1": {
        source: "iana"
      },
      "application/vnd.ims.imsccv1p2": {
        source: "iana"
      },
      "application/vnd.ims.imsccv1p3": {
        source: "iana"
      },
      "application/vnd.ims.lis.v2.result+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.ims.lti.v2.toolconsumerprofile+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.ims.lti.v2.toolproxy+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.ims.lti.v2.toolproxy.id+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.ims.lti.v2.toolsettings+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.ims.lti.v2.toolsettings.simple+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.informedcontrol.rms+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.informix-visionary": {
        source: "iana"
      },
      "application/vnd.infotech.project": {
        source: "iana"
      },
      "application/vnd.infotech.project+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.innopath.wamp.notification": {
        source: "iana"
      },
      "application/vnd.insors.igm": {
        source: "iana",
        extensions: ["igm"]
      },
      "application/vnd.intercon.formnet": {
        source: "iana",
        extensions: ["xpw", "xpx"]
      },
      "application/vnd.intergeo": {
        source: "iana",
        extensions: ["i2g"]
      },
      "application/vnd.intertrust.digibox": {
        source: "iana"
      },
      "application/vnd.intertrust.nncp": {
        source: "iana"
      },
      "application/vnd.intu.qbo": {
        source: "iana",
        extensions: ["qbo"]
      },
      "application/vnd.intu.qfx": {
        source: "iana",
        extensions: ["qfx"]
      },
      "application/vnd.iptc.g2.catalogitem+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.iptc.g2.conceptitem+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.iptc.g2.knowledgeitem+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.iptc.g2.newsitem+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.iptc.g2.newsmessage+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.iptc.g2.packageitem+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.iptc.g2.planningitem+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.ipunplugged.rcprofile": {
        source: "iana",
        extensions: ["rcprofile"]
      },
      "application/vnd.irepository.package+xml": {
        source: "iana",
        compressible: true,
        extensions: ["irp"]
      },
      "application/vnd.is-xpr": {
        source: "iana",
        extensions: ["xpr"]
      },
      "application/vnd.isac.fcs": {
        source: "iana",
        extensions: ["fcs"]
      },
      "application/vnd.iso11783-10+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.jam": {
        source: "iana",
        extensions: ["jam"]
      },
      "application/vnd.japannet-directory-service": {
        source: "iana"
      },
      "application/vnd.japannet-jpnstore-wakeup": {
        source: "iana"
      },
      "application/vnd.japannet-payment-wakeup": {
        source: "iana"
      },
      "application/vnd.japannet-registration": {
        source: "iana"
      },
      "application/vnd.japannet-registration-wakeup": {
        source: "iana"
      },
      "application/vnd.japannet-setstore-wakeup": {
        source: "iana"
      },
      "application/vnd.japannet-verification": {
        source: "iana"
      },
      "application/vnd.japannet-verification-wakeup": {
        source: "iana"
      },
      "application/vnd.jcp.javame.midlet-rms": {
        source: "iana",
        extensions: ["rms"]
      },
      "application/vnd.jisp": {
        source: "iana",
        extensions: ["jisp"]
      },
      "application/vnd.joost.joda-archive": {
        source: "iana",
        extensions: ["joda"]
      },
      "application/vnd.jsk.isdn-ngn": {
        source: "iana"
      },
      "application/vnd.kahootz": {
        source: "iana",
        extensions: ["ktz", "ktr"]
      },
      "application/vnd.kde.karbon": {
        source: "iana",
        extensions: ["karbon"]
      },
      "application/vnd.kde.kchart": {
        source: "iana",
        extensions: ["chrt"]
      },
      "application/vnd.kde.kformula": {
        source: "iana",
        extensions: ["kfo"]
      },
      "application/vnd.kde.kivio": {
        source: "iana",
        extensions: ["flw"]
      },
      "application/vnd.kde.kontour": {
        source: "iana",
        extensions: ["kon"]
      },
      "application/vnd.kde.kpresenter": {
        source: "iana",
        extensions: ["kpr", "kpt"]
      },
      "application/vnd.kde.kspread": {
        source: "iana",
        extensions: ["ksp"]
      },
      "application/vnd.kde.kword": {
        source: "iana",
        extensions: ["kwd", "kwt"]
      },
      "application/vnd.kenameaapp": {
        source: "iana",
        extensions: ["htke"]
      },
      "application/vnd.kidspiration": {
        source: "iana",
        extensions: ["kia"]
      },
      "application/vnd.kinar": {
        source: "iana",
        extensions: ["kne", "knp"]
      },
      "application/vnd.koan": {
        source: "iana",
        extensions: ["skp", "skd", "skt", "skm"]
      },
      "application/vnd.kodak-descriptor": {
        source: "iana",
        extensions: ["sse"]
      },
      "application/vnd.las": {
        source: "iana"
      },
      "application/vnd.las.las+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.las.las+xml": {
        source: "iana",
        compressible: true,
        extensions: ["lasxml"]
      },
      "application/vnd.laszip": {
        source: "iana"
      },
      "application/vnd.leap+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.liberty-request+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.llamagraphics.life-balance.desktop": {
        source: "iana",
        extensions: ["lbd"]
      },
      "application/vnd.llamagraphics.life-balance.exchange+xml": {
        source: "iana",
        compressible: true,
        extensions: ["lbe"]
      },
      "application/vnd.logipipe.circuit+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.loom": {
        source: "iana"
      },
      "application/vnd.lotus-1-2-3": {
        source: "iana",
        extensions: ["123"]
      },
      "application/vnd.lotus-approach": {
        source: "iana",
        extensions: ["apr"]
      },
      "application/vnd.lotus-freelance": {
        source: "iana",
        extensions: ["pre"]
      },
      "application/vnd.lotus-notes": {
        source: "iana",
        extensions: ["nsf"]
      },
      "application/vnd.lotus-organizer": {
        source: "iana",
        extensions: ["org"]
      },
      "application/vnd.lotus-screencam": {
        source: "iana",
        extensions: ["scm"]
      },
      "application/vnd.lotus-wordpro": {
        source: "iana",
        extensions: ["lwp"]
      },
      "application/vnd.macports.portpkg": {
        source: "iana",
        extensions: ["portpkg"]
      },
      "application/vnd.mapbox-vector-tile": {
        source: "iana",
        extensions: ["mvt"]
      },
      "application/vnd.marlin.drm.actiontoken+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.marlin.drm.conftoken+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.marlin.drm.license+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.marlin.drm.mdcf": {
        source: "iana"
      },
      "application/vnd.mason+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.maxar.archive.3tz+zip": {
        source: "iana",
        compressible: false
      },
      "application/vnd.maxmind.maxmind-db": {
        source: "iana"
      },
      "application/vnd.mcd": {
        source: "iana",
        extensions: ["mcd"]
      },
      "application/vnd.medcalcdata": {
        source: "iana",
        extensions: ["mc1"]
      },
      "application/vnd.mediastation.cdkey": {
        source: "iana",
        extensions: ["cdkey"]
      },
      "application/vnd.meridian-slingshot": {
        source: "iana"
      },
      "application/vnd.mfer": {
        source: "iana",
        extensions: ["mwf"]
      },
      "application/vnd.mfmp": {
        source: "iana",
        extensions: ["mfm"]
      },
      "application/vnd.micro+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.micrografx.flo": {
        source: "iana",
        extensions: ["flo"]
      },
      "application/vnd.micrografx.igx": {
        source: "iana",
        extensions: ["igx"]
      },
      "application/vnd.microsoft.portable-executable": {
        source: "iana"
      },
      "application/vnd.microsoft.windows.thumbnail-cache": {
        source: "iana"
      },
      "application/vnd.miele+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.mif": {
        source: "iana",
        extensions: ["mif"]
      },
      "application/vnd.minisoft-hp3000-save": {
        source: "iana"
      },
      "application/vnd.mitsubishi.misty-guard.trustweb": {
        source: "iana"
      },
      "application/vnd.mobius.daf": {
        source: "iana",
        extensions: ["daf"]
      },
      "application/vnd.mobius.dis": {
        source: "iana",
        extensions: ["dis"]
      },
      "application/vnd.mobius.mbk": {
        source: "iana",
        extensions: ["mbk"]
      },
      "application/vnd.mobius.mqy": {
        source: "iana",
        extensions: ["mqy"]
      },
      "application/vnd.mobius.msl": {
        source: "iana",
        extensions: ["msl"]
      },
      "application/vnd.mobius.plc": {
        source: "iana",
        extensions: ["plc"]
      },
      "application/vnd.mobius.txf": {
        source: "iana",
        extensions: ["txf"]
      },
      "application/vnd.mophun.application": {
        source: "iana",
        extensions: ["mpn"]
      },
      "application/vnd.mophun.certificate": {
        source: "iana",
        extensions: ["mpc"]
      },
      "application/vnd.motorola.flexsuite": {
        source: "iana"
      },
      "application/vnd.motorola.flexsuite.adsi": {
        source: "iana"
      },
      "application/vnd.motorola.flexsuite.fis": {
        source: "iana"
      },
      "application/vnd.motorola.flexsuite.gotap": {
        source: "iana"
      },
      "application/vnd.motorola.flexsuite.kmr": {
        source: "iana"
      },
      "application/vnd.motorola.flexsuite.ttc": {
        source: "iana"
      },
      "application/vnd.motorola.flexsuite.wem": {
        source: "iana"
      },
      "application/vnd.motorola.iprm": {
        source: "iana"
      },
      "application/vnd.mozilla.xul+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xul"]
      },
      "application/vnd.ms-3mfdocument": {
        source: "iana"
      },
      "application/vnd.ms-artgalry": {
        source: "iana",
        extensions: ["cil"]
      },
      "application/vnd.ms-asf": {
        source: "iana"
      },
      "application/vnd.ms-cab-compressed": {
        source: "iana",
        extensions: ["cab"]
      },
      "application/vnd.ms-color.iccprofile": {
        source: "apache"
      },
      "application/vnd.ms-excel": {
        source: "iana",
        compressible: false,
        extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"]
      },
      "application/vnd.ms-excel.addin.macroenabled.12": {
        source: "iana",
        extensions: ["xlam"]
      },
      "application/vnd.ms-excel.sheet.binary.macroenabled.12": {
        source: "iana",
        extensions: ["xlsb"]
      },
      "application/vnd.ms-excel.sheet.macroenabled.12": {
        source: "iana",
        extensions: ["xlsm"]
      },
      "application/vnd.ms-excel.template.macroenabled.12": {
        source: "iana",
        extensions: ["xltm"]
      },
      "application/vnd.ms-fontobject": {
        source: "iana",
        compressible: true,
        extensions: ["eot"]
      },
      "application/vnd.ms-htmlhelp": {
        source: "iana",
        extensions: ["chm"]
      },
      "application/vnd.ms-ims": {
        source: "iana",
        extensions: ["ims"]
      },
      "application/vnd.ms-lrm": {
        source: "iana",
        extensions: ["lrm"]
      },
      "application/vnd.ms-office.activex+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.ms-officetheme": {
        source: "iana",
        extensions: ["thmx"]
      },
      "application/vnd.ms-opentype": {
        source: "apache",
        compressible: true
      },
      "application/vnd.ms-outlook": {
        compressible: false,
        extensions: ["msg"]
      },
      "application/vnd.ms-package.obfuscated-opentype": {
        source: "apache"
      },
      "application/vnd.ms-pki.seccat": {
        source: "apache",
        extensions: ["cat"]
      },
      "application/vnd.ms-pki.stl": {
        source: "apache",
        extensions: ["stl"]
      },
      "application/vnd.ms-playready.initiator+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.ms-powerpoint": {
        source: "iana",
        compressible: false,
        extensions: ["ppt", "pps", "pot"]
      },
      "application/vnd.ms-powerpoint.addin.macroenabled.12": {
        source: "iana",
        extensions: ["ppam"]
      },
      "application/vnd.ms-powerpoint.presentation.macroenabled.12": {
        source: "iana",
        extensions: ["pptm"]
      },
      "application/vnd.ms-powerpoint.slide.macroenabled.12": {
        source: "iana",
        extensions: ["sldm"]
      },
      "application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
        source: "iana",
        extensions: ["ppsm"]
      },
      "application/vnd.ms-powerpoint.template.macroenabled.12": {
        source: "iana",
        extensions: ["potm"]
      },
      "application/vnd.ms-printdevicecapabilities+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.ms-printing.printticket+xml": {
        source: "apache",
        compressible: true
      },
      "application/vnd.ms-printschematicket+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.ms-project": {
        source: "iana",
        extensions: ["mpp", "mpt"]
      },
      "application/vnd.ms-tnef": {
        source: "iana"
      },
      "application/vnd.ms-windows.devicepairing": {
        source: "iana"
      },
      "application/vnd.ms-windows.nwprinting.oob": {
        source: "iana"
      },
      "application/vnd.ms-windows.printerpairing": {
        source: "iana"
      },
      "application/vnd.ms-windows.wsd.oob": {
        source: "iana"
      },
      "application/vnd.ms-wmdrm.lic-chlg-req": {
        source: "iana"
      },
      "application/vnd.ms-wmdrm.lic-resp": {
        source: "iana"
      },
      "application/vnd.ms-wmdrm.meter-chlg-req": {
        source: "iana"
      },
      "application/vnd.ms-wmdrm.meter-resp": {
        source: "iana"
      },
      "application/vnd.ms-word.document.macroenabled.12": {
        source: "iana",
        extensions: ["docm"]
      },
      "application/vnd.ms-word.template.macroenabled.12": {
        source: "iana",
        extensions: ["dotm"]
      },
      "application/vnd.ms-works": {
        source: "iana",
        extensions: ["wps", "wks", "wcm", "wdb"]
      },
      "application/vnd.ms-wpl": {
        source: "iana",
        extensions: ["wpl"]
      },
      "application/vnd.ms-xpsdocument": {
        source: "iana",
        compressible: false,
        extensions: ["xps"]
      },
      "application/vnd.msa-disk-image": {
        source: "iana"
      },
      "application/vnd.mseq": {
        source: "iana",
        extensions: ["mseq"]
      },
      "application/vnd.msign": {
        source: "iana"
      },
      "application/vnd.multiad.creator": {
        source: "iana"
      },
      "application/vnd.multiad.creator.cif": {
        source: "iana"
      },
      "application/vnd.music-niff": {
        source: "iana"
      },
      "application/vnd.musician": {
        source: "iana",
        extensions: ["mus"]
      },
      "application/vnd.muvee.style": {
        source: "iana",
        extensions: ["msty"]
      },
      "application/vnd.mynfc": {
        source: "iana",
        extensions: ["taglet"]
      },
      "application/vnd.nacamar.ybrid+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.ncd.control": {
        source: "iana"
      },
      "application/vnd.ncd.reference": {
        source: "iana"
      },
      "application/vnd.nearst.inv+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.nebumind.line": {
        source: "iana"
      },
      "application/vnd.nervana": {
        source: "iana"
      },
      "application/vnd.netfpx": {
        source: "iana"
      },
      "application/vnd.neurolanguage.nlu": {
        source: "iana",
        extensions: ["nlu"]
      },
      "application/vnd.nimn": {
        source: "iana"
      },
      "application/vnd.nintendo.nitro.rom": {
        source: "iana"
      },
      "application/vnd.nintendo.snes.rom": {
        source: "iana"
      },
      "application/vnd.nitf": {
        source: "iana",
        extensions: ["ntf", "nitf"]
      },
      "application/vnd.noblenet-directory": {
        source: "iana",
        extensions: ["nnd"]
      },
      "application/vnd.noblenet-sealer": {
        source: "iana",
        extensions: ["nns"]
      },
      "application/vnd.noblenet-web": {
        source: "iana",
        extensions: ["nnw"]
      },
      "application/vnd.nokia.catalogs": {
        source: "iana"
      },
      "application/vnd.nokia.conml+wbxml": {
        source: "iana"
      },
      "application/vnd.nokia.conml+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.nokia.iptv.config+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.nokia.isds-radio-presets": {
        source: "iana"
      },
      "application/vnd.nokia.landmark+wbxml": {
        source: "iana"
      },
      "application/vnd.nokia.landmark+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.nokia.landmarkcollection+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.nokia.n-gage.ac+xml": {
        source: "iana",
        compressible: true,
        extensions: ["ac"]
      },
      "application/vnd.nokia.n-gage.data": {
        source: "iana",
        extensions: ["ngdat"]
      },
      "application/vnd.nokia.n-gage.symbian.install": {
        source: "iana",
        extensions: ["n-gage"]
      },
      "application/vnd.nokia.ncd": {
        source: "iana"
      },
      "application/vnd.nokia.pcd+wbxml": {
        source: "iana"
      },
      "application/vnd.nokia.pcd+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.nokia.radio-preset": {
        source: "iana",
        extensions: ["rpst"]
      },
      "application/vnd.nokia.radio-presets": {
        source: "iana",
        extensions: ["rpss"]
      },
      "application/vnd.novadigm.edm": {
        source: "iana",
        extensions: ["edm"]
      },
      "application/vnd.novadigm.edx": {
        source: "iana",
        extensions: ["edx"]
      },
      "application/vnd.novadigm.ext": {
        source: "iana",
        extensions: ["ext"]
      },
      "application/vnd.ntt-local.content-share": {
        source: "iana"
      },
      "application/vnd.ntt-local.file-transfer": {
        source: "iana"
      },
      "application/vnd.ntt-local.ogw_remote-access": {
        source: "iana"
      },
      "application/vnd.ntt-local.sip-ta_remote": {
        source: "iana"
      },
      "application/vnd.ntt-local.sip-ta_tcp_stream": {
        source: "iana"
      },
      "application/vnd.oasis.opendocument.chart": {
        source: "iana",
        extensions: ["odc"]
      },
      "application/vnd.oasis.opendocument.chart-template": {
        source: "iana",
        extensions: ["otc"]
      },
      "application/vnd.oasis.opendocument.database": {
        source: "iana",
        extensions: ["odb"]
      },
      "application/vnd.oasis.opendocument.formula": {
        source: "iana",
        extensions: ["odf"]
      },
      "application/vnd.oasis.opendocument.formula-template": {
        source: "iana",
        extensions: ["odft"]
      },
      "application/vnd.oasis.opendocument.graphics": {
        source: "iana",
        compressible: false,
        extensions: ["odg"]
      },
      "application/vnd.oasis.opendocument.graphics-template": {
        source: "iana",
        extensions: ["otg"]
      },
      "application/vnd.oasis.opendocument.image": {
        source: "iana",
        extensions: ["odi"]
      },
      "application/vnd.oasis.opendocument.image-template": {
        source: "iana",
        extensions: ["oti"]
      },
      "application/vnd.oasis.opendocument.presentation": {
        source: "iana",
        compressible: false,
        extensions: ["odp"]
      },
      "application/vnd.oasis.opendocument.presentation-template": {
        source: "iana",
        extensions: ["otp"]
      },
      "application/vnd.oasis.opendocument.spreadsheet": {
        source: "iana",
        compressible: false,
        extensions: ["ods"]
      },
      "application/vnd.oasis.opendocument.spreadsheet-template": {
        source: "iana",
        extensions: ["ots"]
      },
      "application/vnd.oasis.opendocument.text": {
        source: "iana",
        compressible: false,
        extensions: ["odt"]
      },
      "application/vnd.oasis.opendocument.text-master": {
        source: "iana",
        extensions: ["odm"]
      },
      "application/vnd.oasis.opendocument.text-template": {
        source: "iana",
        extensions: ["ott"]
      },
      "application/vnd.oasis.opendocument.text-web": {
        source: "iana",
        extensions: ["oth"]
      },
      "application/vnd.obn": {
        source: "iana"
      },
      "application/vnd.ocf+cbor": {
        source: "iana"
      },
      "application/vnd.oci.image.manifest.v1+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oftn.l10n+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oipf.contentaccessdownload+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oipf.contentaccessstreaming+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oipf.cspg-hexbinary": {
        source: "iana"
      },
      "application/vnd.oipf.dae.svg+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oipf.dae.xhtml+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oipf.mippvcontrolmessage+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oipf.pae.gem": {
        source: "iana"
      },
      "application/vnd.oipf.spdiscovery+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oipf.spdlist+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oipf.ueprofile+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oipf.userprofile+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.olpc-sugar": {
        source: "iana",
        extensions: ["xo"]
      },
      "application/vnd.oma-scws-config": {
        source: "iana"
      },
      "application/vnd.oma-scws-http-request": {
        source: "iana"
      },
      "application/vnd.oma-scws-http-response": {
        source: "iana"
      },
      "application/vnd.oma.bcast.associated-procedure-parameter+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.bcast.drm-trigger+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.bcast.imd+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.bcast.ltkm": {
        source: "iana"
      },
      "application/vnd.oma.bcast.notification+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.bcast.provisioningtrigger": {
        source: "iana"
      },
      "application/vnd.oma.bcast.sgboot": {
        source: "iana"
      },
      "application/vnd.oma.bcast.sgdd+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.bcast.sgdu": {
        source: "iana"
      },
      "application/vnd.oma.bcast.simple-symbol-container": {
        source: "iana"
      },
      "application/vnd.oma.bcast.smartcard-trigger+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.bcast.sprov+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.bcast.stkm": {
        source: "iana"
      },
      "application/vnd.oma.cab-address-book+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.cab-feature-handler+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.cab-pcc+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.cab-subs-invite+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.cab-user-prefs+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.dcd": {
        source: "iana"
      },
      "application/vnd.oma.dcdc": {
        source: "iana"
      },
      "application/vnd.oma.dd2+xml": {
        source: "iana",
        compressible: true,
        extensions: ["dd2"]
      },
      "application/vnd.oma.drm.risd+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.group-usage-list+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.lwm2m+cbor": {
        source: "iana"
      },
      "application/vnd.oma.lwm2m+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.lwm2m+tlv": {
        source: "iana"
      },
      "application/vnd.oma.pal+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.poc.detailed-progress-report+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.poc.final-report+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.poc.groups+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.poc.invocation-descriptor+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.poc.optimized-progress-report+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.push": {
        source: "iana"
      },
      "application/vnd.oma.scidm.messages+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oma.xcap-directory+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.omads-email+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/vnd.omads-file+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/vnd.omads-folder+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/vnd.omaloc-supl-init": {
        source: "iana"
      },
      "application/vnd.onepager": {
        source: "iana"
      },
      "application/vnd.onepagertamp": {
        source: "iana"
      },
      "application/vnd.onepagertamx": {
        source: "iana"
      },
      "application/vnd.onepagertat": {
        source: "iana"
      },
      "application/vnd.onepagertatp": {
        source: "iana"
      },
      "application/vnd.onepagertatx": {
        source: "iana"
      },
      "application/vnd.openblox.game+xml": {
        source: "iana",
        compressible: true,
        extensions: ["obgx"]
      },
      "application/vnd.openblox.game-binary": {
        source: "iana"
      },
      "application/vnd.openeye.oeb": {
        source: "iana"
      },
      "application/vnd.openofficeorg.extension": {
        source: "apache",
        extensions: ["oxt"]
      },
      "application/vnd.openstreetmap.data+xml": {
        source: "iana",
        compressible: true,
        extensions: ["osm"]
      },
      "application/vnd.opentimestamps.ots": {
        source: "iana"
      },
      "application/vnd.openxmlformats-officedocument.custom-properties+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.drawing+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.extended-properties+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.presentation": {
        source: "iana",
        compressible: false,
        extensions: ["pptx"]
      },
      "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.slide": {
        source: "iana",
        extensions: ["sldx"]
      },
      "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
        source: "iana",
        extensions: ["ppsx"]
      },
      "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.template": {
        source: "iana",
        extensions: ["potx"]
      },
      "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
        source: "iana",
        compressible: false,
        extensions: ["xlsx"]
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
        source: "iana",
        extensions: ["xltx"]
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.theme+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.themeoverride+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.vmldrawing": {
        source: "iana"
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
        source: "iana",
        compressible: false,
        extensions: ["docx"]
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
        source: "iana",
        extensions: ["dotx"]
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-package.core-properties+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.openxmlformats-package.relationships+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oracle.resource+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.orange.indata": {
        source: "iana"
      },
      "application/vnd.osa.netdeploy": {
        source: "iana"
      },
      "application/vnd.osgeo.mapguide.package": {
        source: "iana",
        extensions: ["mgp"]
      },
      "application/vnd.osgi.bundle": {
        source: "iana"
      },
      "application/vnd.osgi.dp": {
        source: "iana",
        extensions: ["dp"]
      },
      "application/vnd.osgi.subsystem": {
        source: "iana",
        extensions: ["esa"]
      },
      "application/vnd.otps.ct-kip+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.oxli.countgraph": {
        source: "iana"
      },
      "application/vnd.pagerduty+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.palm": {
        source: "iana",
        extensions: ["pdb", "pqa", "oprc"]
      },
      "application/vnd.panoply": {
        source: "iana"
      },
      "application/vnd.paos.xml": {
        source: "iana"
      },
      "application/vnd.patentdive": {
        source: "iana"
      },
      "application/vnd.patientecommsdoc": {
        source: "iana"
      },
      "application/vnd.pawaafile": {
        source: "iana",
        extensions: ["paw"]
      },
      "application/vnd.pcos": {
        source: "iana"
      },
      "application/vnd.pg.format": {
        source: "iana",
        extensions: ["str"]
      },
      "application/vnd.pg.osasli": {
        source: "iana",
        extensions: ["ei6"]
      },
      "application/vnd.piaccess.application-licence": {
        source: "iana"
      },
      "application/vnd.picsel": {
        source: "iana",
        extensions: ["efif"]
      },
      "application/vnd.pmi.widget": {
        source: "iana",
        extensions: ["wg"]
      },
      "application/vnd.poc.group-advertisement+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.pocketlearn": {
        source: "iana",
        extensions: ["plf"]
      },
      "application/vnd.powerbuilder6": {
        source: "iana",
        extensions: ["pbd"]
      },
      "application/vnd.powerbuilder6-s": {
        source: "iana"
      },
      "application/vnd.powerbuilder7": {
        source: "iana"
      },
      "application/vnd.powerbuilder7-s": {
        source: "iana"
      },
      "application/vnd.powerbuilder75": {
        source: "iana"
      },
      "application/vnd.powerbuilder75-s": {
        source: "iana"
      },
      "application/vnd.preminet": {
        source: "iana"
      },
      "application/vnd.previewsystems.box": {
        source: "iana",
        extensions: ["box"]
      },
      "application/vnd.proteus.magazine": {
        source: "iana",
        extensions: ["mgz"]
      },
      "application/vnd.psfs": {
        source: "iana"
      },
      "application/vnd.publishare-delta-tree": {
        source: "iana",
        extensions: ["qps"]
      },
      "application/vnd.pvi.ptid1": {
        source: "iana",
        extensions: ["ptid"]
      },
      "application/vnd.pwg-multiplexed": {
        source: "iana"
      },
      "application/vnd.pwg-xhtml-print+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.qualcomm.brew-app-res": {
        source: "iana"
      },
      "application/vnd.quarantainenet": {
        source: "iana"
      },
      "application/vnd.quark.quarkxpress": {
        source: "iana",
        extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"]
      },
      "application/vnd.quobject-quoxdocument": {
        source: "iana"
      },
      "application/vnd.radisys.moml+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml-audit+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml-audit-conf+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml-audit-conn+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml-audit-dialog+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml-audit-stream+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml-conf+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml-dialog+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml-dialog-base+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml-dialog-fax-detect+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml-dialog-group+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml-dialog-speech+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.radisys.msml-dialog-transform+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.rainstor.data": {
        source: "iana"
      },
      "application/vnd.rapid": {
        source: "iana"
      },
      "application/vnd.rar": {
        source: "iana",
        extensions: ["rar"]
      },
      "application/vnd.realvnc.bed": {
        source: "iana",
        extensions: ["bed"]
      },
      "application/vnd.recordare.musicxml": {
        source: "iana",
        extensions: ["mxl"]
      },
      "application/vnd.recordare.musicxml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["musicxml"]
      },
      "application/vnd.renlearn.rlprint": {
        source: "iana"
      },
      "application/vnd.resilient.logic": {
        source: "iana"
      },
      "application/vnd.restful+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.rig.cryptonote": {
        source: "iana",
        extensions: ["cryptonote"]
      },
      "application/vnd.rim.cod": {
        source: "apache",
        extensions: ["cod"]
      },
      "application/vnd.rn-realmedia": {
        source: "apache",
        extensions: ["rm"]
      },
      "application/vnd.rn-realmedia-vbr": {
        source: "apache",
        extensions: ["rmvb"]
      },
      "application/vnd.route66.link66+xml": {
        source: "iana",
        compressible: true,
        extensions: ["link66"]
      },
      "application/vnd.rs-274x": {
        source: "iana"
      },
      "application/vnd.ruckus.download": {
        source: "iana"
      },
      "application/vnd.s3sms": {
        source: "iana"
      },
      "application/vnd.sailingtracker.track": {
        source: "iana",
        extensions: ["st"]
      },
      "application/vnd.sar": {
        source: "iana"
      },
      "application/vnd.sbm.cid": {
        source: "iana"
      },
      "application/vnd.sbm.mid2": {
        source: "iana"
      },
      "application/vnd.scribus": {
        source: "iana"
      },
      "application/vnd.sealed.3df": {
        source: "iana"
      },
      "application/vnd.sealed.csf": {
        source: "iana"
      },
      "application/vnd.sealed.doc": {
        source: "iana"
      },
      "application/vnd.sealed.eml": {
        source: "iana"
      },
      "application/vnd.sealed.mht": {
        source: "iana"
      },
      "application/vnd.sealed.net": {
        source: "iana"
      },
      "application/vnd.sealed.ppt": {
        source: "iana"
      },
      "application/vnd.sealed.tiff": {
        source: "iana"
      },
      "application/vnd.sealed.xls": {
        source: "iana"
      },
      "application/vnd.sealedmedia.softseal.html": {
        source: "iana"
      },
      "application/vnd.sealedmedia.softseal.pdf": {
        source: "iana"
      },
      "application/vnd.seemail": {
        source: "iana",
        extensions: ["see"]
      },
      "application/vnd.seis+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.sema": {
        source: "iana",
        extensions: ["sema"]
      },
      "application/vnd.semd": {
        source: "iana",
        extensions: ["semd"]
      },
      "application/vnd.semf": {
        source: "iana",
        extensions: ["semf"]
      },
      "application/vnd.shade-save-file": {
        source: "iana"
      },
      "application/vnd.shana.informed.formdata": {
        source: "iana",
        extensions: ["ifm"]
      },
      "application/vnd.shana.informed.formtemplate": {
        source: "iana",
        extensions: ["itp"]
      },
      "application/vnd.shana.informed.interchange": {
        source: "iana",
        extensions: ["iif"]
      },
      "application/vnd.shana.informed.package": {
        source: "iana",
        extensions: ["ipk"]
      },
      "application/vnd.shootproof+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.shopkick+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.shp": {
        source: "iana"
      },
      "application/vnd.shx": {
        source: "iana"
      },
      "application/vnd.sigrok.session": {
        source: "iana"
      },
      "application/vnd.simtech-mindmapper": {
        source: "iana",
        extensions: ["twd", "twds"]
      },
      "application/vnd.siren+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.smaf": {
        source: "iana",
        extensions: ["mmf"]
      },
      "application/vnd.smart.notebook": {
        source: "iana"
      },
      "application/vnd.smart.teacher": {
        source: "iana",
        extensions: ["teacher"]
      },
      "application/vnd.snesdev-page-table": {
        source: "iana"
      },
      "application/vnd.software602.filler.form+xml": {
        source: "iana",
        compressible: true,
        extensions: ["fo"]
      },
      "application/vnd.software602.filler.form-xml-zip": {
        source: "iana"
      },
      "application/vnd.solent.sdkm+xml": {
        source: "iana",
        compressible: true,
        extensions: ["sdkm", "sdkd"]
      },
      "application/vnd.spotfire.dxp": {
        source: "iana",
        extensions: ["dxp"]
      },
      "application/vnd.spotfire.sfs": {
        source: "iana",
        extensions: ["sfs"]
      },
      "application/vnd.sqlite3": {
        source: "iana"
      },
      "application/vnd.sss-cod": {
        source: "iana"
      },
      "application/vnd.sss-dtf": {
        source: "iana"
      },
      "application/vnd.sss-ntf": {
        source: "iana"
      },
      "application/vnd.stardivision.calc": {
        source: "apache",
        extensions: ["sdc"]
      },
      "application/vnd.stardivision.draw": {
        source: "apache",
        extensions: ["sda"]
      },
      "application/vnd.stardivision.impress": {
        source: "apache",
        extensions: ["sdd"]
      },
      "application/vnd.stardivision.math": {
        source: "apache",
        extensions: ["smf"]
      },
      "application/vnd.stardivision.writer": {
        source: "apache",
        extensions: ["sdw", "vor"]
      },
      "application/vnd.stardivision.writer-global": {
        source: "apache",
        extensions: ["sgl"]
      },
      "application/vnd.stepmania.package": {
        source: "iana",
        extensions: ["smzip"]
      },
      "application/vnd.stepmania.stepchart": {
        source: "iana",
        extensions: ["sm"]
      },
      "application/vnd.street-stream": {
        source: "iana"
      },
      "application/vnd.sun.wadl+xml": {
        source: "iana",
        compressible: true,
        extensions: ["wadl"]
      },
      "application/vnd.sun.xml.calc": {
        source: "apache",
        extensions: ["sxc"]
      },
      "application/vnd.sun.xml.calc.template": {
        source: "apache",
        extensions: ["stc"]
      },
      "application/vnd.sun.xml.draw": {
        source: "apache",
        extensions: ["sxd"]
      },
      "application/vnd.sun.xml.draw.template": {
        source: "apache",
        extensions: ["std"]
      },
      "application/vnd.sun.xml.impress": {
        source: "apache",
        extensions: ["sxi"]
      },
      "application/vnd.sun.xml.impress.template": {
        source: "apache",
        extensions: ["sti"]
      },
      "application/vnd.sun.xml.math": {
        source: "apache",
        extensions: ["sxm"]
      },
      "application/vnd.sun.xml.writer": {
        source: "apache",
        extensions: ["sxw"]
      },
      "application/vnd.sun.xml.writer.global": {
        source: "apache",
        extensions: ["sxg"]
      },
      "application/vnd.sun.xml.writer.template": {
        source: "apache",
        extensions: ["stw"]
      },
      "application/vnd.sus-calendar": {
        source: "iana",
        extensions: ["sus", "susp"]
      },
      "application/vnd.svd": {
        source: "iana",
        extensions: ["svd"]
      },
      "application/vnd.swiftview-ics": {
        source: "iana"
      },
      "application/vnd.sycle+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.syft+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.symbian.install": {
        source: "apache",
        extensions: ["sis", "sisx"]
      },
      "application/vnd.syncml+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true,
        extensions: ["xsm"]
      },
      "application/vnd.syncml.dm+wbxml": {
        source: "iana",
        charset: "UTF-8",
        extensions: ["bdm"]
      },
      "application/vnd.syncml.dm+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true,
        extensions: ["xdm"]
      },
      "application/vnd.syncml.dm.notification": {
        source: "iana"
      },
      "application/vnd.syncml.dmddf+wbxml": {
        source: "iana"
      },
      "application/vnd.syncml.dmddf+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true,
        extensions: ["ddf"]
      },
      "application/vnd.syncml.dmtnds+wbxml": {
        source: "iana"
      },
      "application/vnd.syncml.dmtnds+xml": {
        source: "iana",
        charset: "UTF-8",
        compressible: true
      },
      "application/vnd.syncml.ds.notification": {
        source: "iana"
      },
      "application/vnd.tableschema+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.tao.intent-module-archive": {
        source: "iana",
        extensions: ["tao"]
      },
      "application/vnd.tcpdump.pcap": {
        source: "iana",
        extensions: ["pcap", "cap", "dmp"]
      },
      "application/vnd.think-cell.ppttc+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.tmd.mediaflex.api+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.tml": {
        source: "iana"
      },
      "application/vnd.tmobile-livetv": {
        source: "iana",
        extensions: ["tmo"]
      },
      "application/vnd.tri.onesource": {
        source: "iana"
      },
      "application/vnd.trid.tpt": {
        source: "iana",
        extensions: ["tpt"]
      },
      "application/vnd.triscape.mxs": {
        source: "iana",
        extensions: ["mxs"]
      },
      "application/vnd.trueapp": {
        source: "iana",
        extensions: ["tra"]
      },
      "application/vnd.truedoc": {
        source: "iana"
      },
      "application/vnd.ubisoft.webplayer": {
        source: "iana"
      },
      "application/vnd.ufdl": {
        source: "iana",
        extensions: ["ufd", "ufdl"]
      },
      "application/vnd.uiq.theme": {
        source: "iana",
        extensions: ["utz"]
      },
      "application/vnd.umajin": {
        source: "iana",
        extensions: ["umj"]
      },
      "application/vnd.unity": {
        source: "iana",
        extensions: ["unityweb"]
      },
      "application/vnd.uoml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["uoml"]
      },
      "application/vnd.uplanet.alert": {
        source: "iana"
      },
      "application/vnd.uplanet.alert-wbxml": {
        source: "iana"
      },
      "application/vnd.uplanet.bearer-choice": {
        source: "iana"
      },
      "application/vnd.uplanet.bearer-choice-wbxml": {
        source: "iana"
      },
      "application/vnd.uplanet.cacheop": {
        source: "iana"
      },
      "application/vnd.uplanet.cacheop-wbxml": {
        source: "iana"
      },
      "application/vnd.uplanet.channel": {
        source: "iana"
      },
      "application/vnd.uplanet.channel-wbxml": {
        source: "iana"
      },
      "application/vnd.uplanet.list": {
        source: "iana"
      },
      "application/vnd.uplanet.list-wbxml": {
        source: "iana"
      },
      "application/vnd.uplanet.listcmd": {
        source: "iana"
      },
      "application/vnd.uplanet.listcmd-wbxml": {
        source: "iana"
      },
      "application/vnd.uplanet.signal": {
        source: "iana"
      },
      "application/vnd.uri-map": {
        source: "iana"
      },
      "application/vnd.valve.source.material": {
        source: "iana"
      },
      "application/vnd.vcx": {
        source: "iana",
        extensions: ["vcx"]
      },
      "application/vnd.vd-study": {
        source: "iana"
      },
      "application/vnd.vectorworks": {
        source: "iana"
      },
      "application/vnd.vel+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.verimatrix.vcas": {
        source: "iana"
      },
      "application/vnd.veritone.aion+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.veryant.thin": {
        source: "iana"
      },
      "application/vnd.ves.encrypted": {
        source: "iana"
      },
      "application/vnd.vidsoft.vidconference": {
        source: "iana"
      },
      "application/vnd.visio": {
        source: "iana",
        extensions: ["vsd", "vst", "vss", "vsw"]
      },
      "application/vnd.visionary": {
        source: "iana",
        extensions: ["vis"]
      },
      "application/vnd.vividence.scriptfile": {
        source: "iana"
      },
      "application/vnd.vsf": {
        source: "iana",
        extensions: ["vsf"]
      },
      "application/vnd.wap.sic": {
        source: "iana"
      },
      "application/vnd.wap.slc": {
        source: "iana"
      },
      "application/vnd.wap.wbxml": {
        source: "iana",
        charset: "UTF-8",
        extensions: ["wbxml"]
      },
      "application/vnd.wap.wmlc": {
        source: "iana",
        extensions: ["wmlc"]
      },
      "application/vnd.wap.wmlscriptc": {
        source: "iana",
        extensions: ["wmlsc"]
      },
      "application/vnd.webturbo": {
        source: "iana",
        extensions: ["wtb"]
      },
      "application/vnd.wfa.dpp": {
        source: "iana"
      },
      "application/vnd.wfa.p2p": {
        source: "iana"
      },
      "application/vnd.wfa.wsc": {
        source: "iana"
      },
      "application/vnd.windows.devicepairing": {
        source: "iana"
      },
      "application/vnd.wmc": {
        source: "iana"
      },
      "application/vnd.wmf.bootstrap": {
        source: "iana"
      },
      "application/vnd.wolfram.mathematica": {
        source: "iana"
      },
      "application/vnd.wolfram.mathematica.package": {
        source: "iana"
      },
      "application/vnd.wolfram.player": {
        source: "iana",
        extensions: ["nbp"]
      },
      "application/vnd.wordperfect": {
        source: "iana",
        extensions: ["wpd"]
      },
      "application/vnd.wqd": {
        source: "iana",
        extensions: ["wqd"]
      },
      "application/vnd.wrq-hp3000-labelled": {
        source: "iana"
      },
      "application/vnd.wt.stf": {
        source: "iana",
        extensions: ["stf"]
      },
      "application/vnd.wv.csp+wbxml": {
        source: "iana"
      },
      "application/vnd.wv.csp+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.wv.ssp+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.xacml+json": {
        source: "iana",
        compressible: true
      },
      "application/vnd.xara": {
        source: "iana",
        extensions: ["xar"]
      },
      "application/vnd.xfdl": {
        source: "iana",
        extensions: ["xfdl"]
      },
      "application/vnd.xfdl.webform": {
        source: "iana"
      },
      "application/vnd.xmi+xml": {
        source: "iana",
        compressible: true
      },
      "application/vnd.xmpie.cpkg": {
        source: "iana"
      },
      "application/vnd.xmpie.dpkg": {
        source: "iana"
      },
      "application/vnd.xmpie.plan": {
        source: "iana"
      },
      "application/vnd.xmpie.ppkg": {
        source: "iana"
      },
      "application/vnd.xmpie.xlim": {
        source: "iana"
      },
      "application/vnd.yamaha.hv-dic": {
        source: "iana",
        extensions: ["hvd"]
      },
      "application/vnd.yamaha.hv-script": {
        source: "iana",
        extensions: ["hvs"]
      },
      "application/vnd.yamaha.hv-voice": {
        source: "iana",
        extensions: ["hvp"]
      },
      "application/vnd.yamaha.openscoreformat": {
        source: "iana",
        extensions: ["osf"]
      },
      "application/vnd.yamaha.openscoreformat.osfpvg+xml": {
        source: "iana",
        compressible: true,
        extensions: ["osfpvg"]
      },
      "application/vnd.yamaha.remote-setup": {
        source: "iana"
      },
      "application/vnd.yamaha.smaf-audio": {
        source: "iana",
        extensions: ["saf"]
      },
      "application/vnd.yamaha.smaf-phrase": {
        source: "iana",
        extensions: ["spf"]
      },
      "application/vnd.yamaha.through-ngn": {
        source: "iana"
      },
      "application/vnd.yamaha.tunnel-udpencap": {
        source: "iana"
      },
      "application/vnd.yaoweme": {
        source: "iana"
      },
      "application/vnd.yellowriver-custom-menu": {
        source: "iana",
        extensions: ["cmp"]
      },
      "application/vnd.youtube.yt": {
        source: "iana"
      },
      "application/vnd.zul": {
        source: "iana",
        extensions: ["zir", "zirz"]
      },
      "application/vnd.zzazz.deck+xml": {
        source: "iana",
        compressible: true,
        extensions: ["zaz"]
      },
      "application/voicexml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["vxml"]
      },
      "application/voucher-cms+json": {
        source: "iana",
        compressible: true
      },
      "application/vq-rtcpxr": {
        source: "iana"
      },
      "application/wasm": {
        source: "iana",
        compressible: true,
        extensions: ["wasm"]
      },
      "application/watcherinfo+xml": {
        source: "iana",
        compressible: true,
        extensions: ["wif"]
      },
      "application/webpush-options+json": {
        source: "iana",
        compressible: true
      },
      "application/whoispp-query": {
        source: "iana"
      },
      "application/whoispp-response": {
        source: "iana"
      },
      "application/widget": {
        source: "iana",
        extensions: ["wgt"]
      },
      "application/winhlp": {
        source: "apache",
        extensions: ["hlp"]
      },
      "application/wita": {
        source: "iana"
      },
      "application/wordperfect5.1": {
        source: "iana"
      },
      "application/wsdl+xml": {
        source: "iana",
        compressible: true,
        extensions: ["wsdl"]
      },
      "application/wspolicy+xml": {
        source: "iana",
        compressible: true,
        extensions: ["wspolicy"]
      },
      "application/x-7z-compressed": {
        source: "apache",
        compressible: false,
        extensions: ["7z"]
      },
      "application/x-abiword": {
        source: "apache",
        extensions: ["abw"]
      },
      "application/x-ace-compressed": {
        source: "apache",
        extensions: ["ace"]
      },
      "application/x-amf": {
        source: "apache"
      },
      "application/x-apple-diskimage": {
        source: "apache",
        extensions: ["dmg"]
      },
      "application/x-arj": {
        compressible: false,
        extensions: ["arj"]
      },
      "application/x-authorware-bin": {
        source: "apache",
        extensions: ["aab", "x32", "u32", "vox"]
      },
      "application/x-authorware-map": {
        source: "apache",
        extensions: ["aam"]
      },
      "application/x-authorware-seg": {
        source: "apache",
        extensions: ["aas"]
      },
      "application/x-bcpio": {
        source: "apache",
        extensions: ["bcpio"]
      },
      "application/x-bdoc": {
        compressible: false,
        extensions: ["bdoc"]
      },
      "application/x-bittorrent": {
        source: "apache",
        extensions: ["torrent"]
      },
      "application/x-blorb": {
        source: "apache",
        extensions: ["blb", "blorb"]
      },
      "application/x-bzip": {
        source: "apache",
        compressible: false,
        extensions: ["bz"]
      },
      "application/x-bzip2": {
        source: "apache",
        compressible: false,
        extensions: ["bz2", "boz"]
      },
      "application/x-cbr": {
        source: "apache",
        extensions: ["cbr", "cba", "cbt", "cbz", "cb7"]
      },
      "application/x-cdlink": {
        source: "apache",
        extensions: ["vcd"]
      },
      "application/x-cfs-compressed": {
        source: "apache",
        extensions: ["cfs"]
      },
      "application/x-chat": {
        source: "apache",
        extensions: ["chat"]
      },
      "application/x-chess-pgn": {
        source: "apache",
        extensions: ["pgn"]
      },
      "application/x-chrome-extension": {
        extensions: ["crx"]
      },
      "application/x-cocoa": {
        source: "nginx",
        extensions: ["cco"]
      },
      "application/x-compress": {
        source: "apache"
      },
      "application/x-conference": {
        source: "apache",
        extensions: ["nsc"]
      },
      "application/x-cpio": {
        source: "apache",
        extensions: ["cpio"]
      },
      "application/x-csh": {
        source: "apache",
        extensions: ["csh"]
      },
      "application/x-deb": {
        compressible: false
      },
      "application/x-debian-package": {
        source: "apache",
        extensions: ["deb", "udeb"]
      },
      "application/x-dgc-compressed": {
        source: "apache",
        extensions: ["dgc"]
      },
      "application/x-director": {
        source: "apache",
        extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"]
      },
      "application/x-doom": {
        source: "apache",
        extensions: ["wad"]
      },
      "application/x-dtbncx+xml": {
        source: "apache",
        compressible: true,
        extensions: ["ncx"]
      },
      "application/x-dtbook+xml": {
        source: "apache",
        compressible: true,
        extensions: ["dtb"]
      },
      "application/x-dtbresource+xml": {
        source: "apache",
        compressible: true,
        extensions: ["res"]
      },
      "application/x-dvi": {
        source: "apache",
        compressible: false,
        extensions: ["dvi"]
      },
      "application/x-envoy": {
        source: "apache",
        extensions: ["evy"]
      },
      "application/x-eva": {
        source: "apache",
        extensions: ["eva"]
      },
      "application/x-font-bdf": {
        source: "apache",
        extensions: ["bdf"]
      },
      "application/x-font-dos": {
        source: "apache"
      },
      "application/x-font-framemaker": {
        source: "apache"
      },
      "application/x-font-ghostscript": {
        source: "apache",
        extensions: ["gsf"]
      },
      "application/x-font-libgrx": {
        source: "apache"
      },
      "application/x-font-linux-psf": {
        source: "apache",
        extensions: ["psf"]
      },
      "application/x-font-pcf": {
        source: "apache",
        extensions: ["pcf"]
      },
      "application/x-font-snf": {
        source: "apache",
        extensions: ["snf"]
      },
      "application/x-font-speedo": {
        source: "apache"
      },
      "application/x-font-sunos-news": {
        source: "apache"
      },
      "application/x-font-type1": {
        source: "apache",
        extensions: ["pfa", "pfb", "pfm", "afm"]
      },
      "application/x-font-vfont": {
        source: "apache"
      },
      "application/x-freearc": {
        source: "apache",
        extensions: ["arc"]
      },
      "application/x-futuresplash": {
        source: "apache",
        extensions: ["spl"]
      },
      "application/x-gca-compressed": {
        source: "apache",
        extensions: ["gca"]
      },
      "application/x-glulx": {
        source: "apache",
        extensions: ["ulx"]
      },
      "application/x-gnumeric": {
        source: "apache",
        extensions: ["gnumeric"]
      },
      "application/x-gramps-xml": {
        source: "apache",
        extensions: ["gramps"]
      },
      "application/x-gtar": {
        source: "apache",
        extensions: ["gtar"]
      },
      "application/x-gzip": {
        source: "apache"
      },
      "application/x-hdf": {
        source: "apache",
        extensions: ["hdf"]
      },
      "application/x-httpd-php": {
        compressible: true,
        extensions: ["php"]
      },
      "application/x-install-instructions": {
        source: "apache",
        extensions: ["install"]
      },
      "application/x-iso9660-image": {
        source: "apache",
        extensions: ["iso"]
      },
      "application/x-iwork-keynote-sffkey": {
        extensions: ["key"]
      },
      "application/x-iwork-numbers-sffnumbers": {
        extensions: ["numbers"]
      },
      "application/x-iwork-pages-sffpages": {
        extensions: ["pages"]
      },
      "application/x-java-archive-diff": {
        source: "nginx",
        extensions: ["jardiff"]
      },
      "application/x-java-jnlp-file": {
        source: "apache",
        compressible: false,
        extensions: ["jnlp"]
      },
      "application/x-javascript": {
        compressible: true
      },
      "application/x-keepass2": {
        extensions: ["kdbx"]
      },
      "application/x-latex": {
        source: "apache",
        compressible: false,
        extensions: ["latex"]
      },
      "application/x-lua-bytecode": {
        extensions: ["luac"]
      },
      "application/x-lzh-compressed": {
        source: "apache",
        extensions: ["lzh", "lha"]
      },
      "application/x-makeself": {
        source: "nginx",
        extensions: ["run"]
      },
      "application/x-mie": {
        source: "apache",
        extensions: ["mie"]
      },
      "application/x-mobipocket-ebook": {
        source: "apache",
        extensions: ["prc", "mobi"]
      },
      "application/x-mpegurl": {
        compressible: false
      },
      "application/x-ms-application": {
        source: "apache",
        extensions: ["application"]
      },
      "application/x-ms-shortcut": {
        source: "apache",
        extensions: ["lnk"]
      },
      "application/x-ms-wmd": {
        source: "apache",
        extensions: ["wmd"]
      },
      "application/x-ms-wmz": {
        source: "apache",
        extensions: ["wmz"]
      },
      "application/x-ms-xbap": {
        source: "apache",
        extensions: ["xbap"]
      },
      "application/x-msaccess": {
        source: "apache",
        extensions: ["mdb"]
      },
      "application/x-msbinder": {
        source: "apache",
        extensions: ["obd"]
      },
      "application/x-mscardfile": {
        source: "apache",
        extensions: ["crd"]
      },
      "application/x-msclip": {
        source: "apache",
        extensions: ["clp"]
      },
      "application/x-msdos-program": {
        extensions: ["exe"]
      },
      "application/x-msdownload": {
        source: "apache",
        extensions: ["exe", "dll", "com", "bat", "msi"]
      },
      "application/x-msmediaview": {
        source: "apache",
        extensions: ["mvb", "m13", "m14"]
      },
      "application/x-msmetafile": {
        source: "apache",
        extensions: ["wmf", "wmz", "emf", "emz"]
      },
      "application/x-msmoney": {
        source: "apache",
        extensions: ["mny"]
      },
      "application/x-mspublisher": {
        source: "apache",
        extensions: ["pub"]
      },
      "application/x-msschedule": {
        source: "apache",
        extensions: ["scd"]
      },
      "application/x-msterminal": {
        source: "apache",
        extensions: ["trm"]
      },
      "application/x-mswrite": {
        source: "apache",
        extensions: ["wri"]
      },
      "application/x-netcdf": {
        source: "apache",
        extensions: ["nc", "cdf"]
      },
      "application/x-ns-proxy-autoconfig": {
        compressible: true,
        extensions: ["pac"]
      },
      "application/x-nzb": {
        source: "apache",
        extensions: ["nzb"]
      },
      "application/x-perl": {
        source: "nginx",
        extensions: ["pl", "pm"]
      },
      "application/x-pilot": {
        source: "nginx",
        extensions: ["prc", "pdb"]
      },
      "application/x-pkcs12": {
        source: "apache",
        compressible: false,
        extensions: ["p12", "pfx"]
      },
      "application/x-pkcs7-certificates": {
        source: "apache",
        extensions: ["p7b", "spc"]
      },
      "application/x-pkcs7-certreqresp": {
        source: "apache",
        extensions: ["p7r"]
      },
      "application/x-pki-message": {
        source: "iana"
      },
      "application/x-rar-compressed": {
        source: "apache",
        compressible: false,
        extensions: ["rar"]
      },
      "application/x-redhat-package-manager": {
        source: "nginx",
        extensions: ["rpm"]
      },
      "application/x-research-info-systems": {
        source: "apache",
        extensions: ["ris"]
      },
      "application/x-sea": {
        source: "nginx",
        extensions: ["sea"]
      },
      "application/x-sh": {
        source: "apache",
        compressible: true,
        extensions: ["sh"]
      },
      "application/x-shar": {
        source: "apache",
        extensions: ["shar"]
      },
      "application/x-shockwave-flash": {
        source: "apache",
        compressible: false,
        extensions: ["swf"]
      },
      "application/x-silverlight-app": {
        source: "apache",
        extensions: ["xap"]
      },
      "application/x-sql": {
        source: "apache",
        extensions: ["sql"]
      },
      "application/x-stuffit": {
        source: "apache",
        compressible: false,
        extensions: ["sit"]
      },
      "application/x-stuffitx": {
        source: "apache",
        extensions: ["sitx"]
      },
      "application/x-subrip": {
        source: "apache",
        extensions: ["srt"]
      },
      "application/x-sv4cpio": {
        source: "apache",
        extensions: ["sv4cpio"]
      },
      "application/x-sv4crc": {
        source: "apache",
        extensions: ["sv4crc"]
      },
      "application/x-t3vm-image": {
        source: "apache",
        extensions: ["t3"]
      },
      "application/x-tads": {
        source: "apache",
        extensions: ["gam"]
      },
      "application/x-tar": {
        source: "apache",
        compressible: true,
        extensions: ["tar"]
      },
      "application/x-tcl": {
        source: "apache",
        extensions: ["tcl", "tk"]
      },
      "application/x-tex": {
        source: "apache",
        extensions: ["tex"]
      },
      "application/x-tex-tfm": {
        source: "apache",
        extensions: ["tfm"]
      },
      "application/x-texinfo": {
        source: "apache",
        extensions: ["texinfo", "texi"]
      },
      "application/x-tgif": {
        source: "apache",
        extensions: ["obj"]
      },
      "application/x-ustar": {
        source: "apache",
        extensions: ["ustar"]
      },
      "application/x-virtualbox-hdd": {
        compressible: true,
        extensions: ["hdd"]
      },
      "application/x-virtualbox-ova": {
        compressible: true,
        extensions: ["ova"]
      },
      "application/x-virtualbox-ovf": {
        compressible: true,
        extensions: ["ovf"]
      },
      "application/x-virtualbox-vbox": {
        compressible: true,
        extensions: ["vbox"]
      },
      "application/x-virtualbox-vbox-extpack": {
        compressible: false,
        extensions: ["vbox-extpack"]
      },
      "application/x-virtualbox-vdi": {
        compressible: true,
        extensions: ["vdi"]
      },
      "application/x-virtualbox-vhd": {
        compressible: true,
        extensions: ["vhd"]
      },
      "application/x-virtualbox-vmdk": {
        compressible: true,
        extensions: ["vmdk"]
      },
      "application/x-wais-source": {
        source: "apache",
        extensions: ["src"]
      },
      "application/x-web-app-manifest+json": {
        compressible: true,
        extensions: ["webapp"]
      },
      "application/x-www-form-urlencoded": {
        source: "iana",
        compressible: true
      },
      "application/x-x509-ca-cert": {
        source: "iana",
        extensions: ["der", "crt", "pem"]
      },
      "application/x-x509-ca-ra-cert": {
        source: "iana"
      },
      "application/x-x509-next-ca-cert": {
        source: "iana"
      },
      "application/x-xfig": {
        source: "apache",
        extensions: ["fig"]
      },
      "application/x-xliff+xml": {
        source: "apache",
        compressible: true,
        extensions: ["xlf"]
      },
      "application/x-xpinstall": {
        source: "apache",
        compressible: false,
        extensions: ["xpi"]
      },
      "application/x-xz": {
        source: "apache",
        extensions: ["xz"]
      },
      "application/x-zmachine": {
        source: "apache",
        extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"]
      },
      "application/x400-bp": {
        source: "iana"
      },
      "application/xacml+xml": {
        source: "iana",
        compressible: true
      },
      "application/xaml+xml": {
        source: "apache",
        compressible: true,
        extensions: ["xaml"]
      },
      "application/xcap-att+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xav"]
      },
      "application/xcap-caps+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xca"]
      },
      "application/xcap-diff+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xdf"]
      },
      "application/xcap-el+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xel"]
      },
      "application/xcap-error+xml": {
        source: "iana",
        compressible: true
      },
      "application/xcap-ns+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xns"]
      },
      "application/xcon-conference-info+xml": {
        source: "iana",
        compressible: true
      },
      "application/xcon-conference-info-diff+xml": {
        source: "iana",
        compressible: true
      },
      "application/xenc+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xenc"]
      },
      "application/xhtml+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xhtml", "xht"]
      },
      "application/xhtml-voice+xml": {
        source: "apache",
        compressible: true
      },
      "application/xliff+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xlf"]
      },
      "application/xml": {
        source: "iana",
        compressible: true,
        extensions: ["xml", "xsl", "xsd", "rng"]
      },
      "application/xml-dtd": {
        source: "iana",
        compressible: true,
        extensions: ["dtd"]
      },
      "application/xml-external-parsed-entity": {
        source: "iana"
      },
      "application/xml-patch+xml": {
        source: "iana",
        compressible: true
      },
      "application/xmpp+xml": {
        source: "iana",
        compressible: true
      },
      "application/xop+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xop"]
      },
      "application/xproc+xml": {
        source: "apache",
        compressible: true,
        extensions: ["xpl"]
      },
      "application/xslt+xml": {
        source: "iana",
        compressible: true,
        extensions: ["xsl", "xslt"]
      },
      "application/xspf+xml": {
        source: "apache",
        compressible: true,
        extensions: ["xspf"]
      },
      "application/xv+xml": {
        source: "iana",
        compressible: true,
        extensions: ["mxml", "xhvml", "xvml", "xvm"]
      },
      "application/yang": {
        source: "iana",
        extensions: ["yang"]
      },
      "application/yang-data+json": {
        source: "iana",
        compressible: true
      },
      "application/yang-data+xml": {
        source: "iana",
        compressible: true
      },
      "application/yang-patch+json": {
        source: "iana",
        compressible: true
      },
      "application/yang-patch+xml": {
        source: "iana",
        compressible: true
      },
      "application/yin+xml": {
        source: "iana",
        compressible: true,
        extensions: ["yin"]
      },
      "application/zip": {
        source: "iana",
        compressible: false,
        extensions: ["zip"]
      },
      "application/zlib": {
        source: "iana"
      },
      "application/zstd": {
        source: "iana"
      },
      "audio/1d-interleaved-parityfec": {
        source: "iana"
      },
      "audio/32kadpcm": {
        source: "iana"
      },
      "audio/3gpp": {
        source: "iana",
        compressible: false,
        extensions: ["3gpp"]
      },
      "audio/3gpp2": {
        source: "iana"
      },
      "audio/aac": {
        source: "iana"
      },
      "audio/ac3": {
        source: "iana"
      },
      "audio/adpcm": {
        source: "apache",
        extensions: ["adp"]
      },
      "audio/amr": {
        source: "iana",
        extensions: ["amr"]
      },
      "audio/amr-wb": {
        source: "iana"
      },
      "audio/amr-wb+": {
        source: "iana"
      },
      "audio/aptx": {
        source: "iana"
      },
      "audio/asc": {
        source: "iana"
      },
      "audio/atrac-advanced-lossless": {
        source: "iana"
      },
      "audio/atrac-x": {
        source: "iana"
      },
      "audio/atrac3": {
        source: "iana"
      },
      "audio/basic": {
        source: "iana",
        compressible: false,
        extensions: ["au", "snd"]
      },
      "audio/bv16": {
        source: "iana"
      },
      "audio/bv32": {
        source: "iana"
      },
      "audio/clearmode": {
        source: "iana"
      },
      "audio/cn": {
        source: "iana"
      },
      "audio/dat12": {
        source: "iana"
      },
      "audio/dls": {
        source: "iana"
      },
      "audio/dsr-es201108": {
        source: "iana"
      },
      "audio/dsr-es202050": {
        source: "iana"
      },
      "audio/dsr-es202211": {
        source: "iana"
      },
      "audio/dsr-es202212": {
        source: "iana"
      },
      "audio/dv": {
        source: "iana"
      },
      "audio/dvi4": {
        source: "iana"
      },
      "audio/eac3": {
        source: "iana"
      },
      "audio/encaprtp": {
        source: "iana"
      },
      "audio/evrc": {
        source: "iana"
      },
      "audio/evrc-qcp": {
        source: "iana"
      },
      "audio/evrc0": {
        source: "iana"
      },
      "audio/evrc1": {
        source: "iana"
      },
      "audio/evrcb": {
        source: "iana"
      },
      "audio/evrcb0": {
        source: "iana"
      },
      "audio/evrcb1": {
        source: "iana"
      },
      "audio/evrcnw": {
        source: "iana"
      },
      "audio/evrcnw0": {
        source: "iana"
      },
      "audio/evrcnw1": {
        source: "iana"
      },
      "audio/evrcwb": {
        source: "iana"
      },
      "audio/evrcwb0": {
        source: "iana"
      },
      "audio/evrcwb1": {
        source: "iana"
      },
      "audio/evs": {
        source: "iana"
      },
      "audio/flexfec": {
        source: "iana"
      },
      "audio/fwdred": {
        source: "iana"
      },
      "audio/g711-0": {
        source: "iana"
      },
      "audio/g719": {
        source: "iana"
      },
      "audio/g722": {
        source: "iana"
      },
      "audio/g7221": {
        source: "iana"
      },
      "audio/g723": {
        source: "iana"
      },
      "audio/g726-16": {
        source: "iana"
      },
      "audio/g726-24": {
        source: "iana"
      },
      "audio/g726-32": {
        source: "iana"
      },
      "audio/g726-40": {
        source: "iana"
      },
      "audio/g728": {
        source: "iana"
      },
      "audio/g729": {
        source: "iana"
      },
      "audio/g7291": {
        source: "iana"
      },
      "audio/g729d": {
        source: "iana"
      },
      "audio/g729e": {
        source: "iana"
      },
      "audio/gsm": {
        source: "iana"
      },
      "audio/gsm-efr": {
        source: "iana"
      },
      "audio/gsm-hr-08": {
        source: "iana"
      },
      "audio/ilbc": {
        source: "iana"
      },
      "audio/ip-mr_v2.5": {
        source: "iana"
      },
      "audio/isac": {
        source: "apache"
      },
      "audio/l16": {
        source: "iana"
      },
      "audio/l20": {
        source: "iana"
      },
      "audio/l24": {
        source: "iana",
        compressible: false
      },
      "audio/l8": {
        source: "iana"
      },
      "audio/lpc": {
        source: "iana"
      },
      "audio/melp": {
        source: "iana"
      },
      "audio/melp1200": {
        source: "iana"
      },
      "audio/melp2400": {
        source: "iana"
      },
      "audio/melp600": {
        source: "iana"
      },
      "audio/mhas": {
        source: "iana"
      },
      "audio/midi": {
        source: "apache",
        extensions: ["mid", "midi", "kar", "rmi"]
      },
      "audio/mobile-xmf": {
        source: "iana",
        extensions: ["mxmf"]
      },
      "audio/mp3": {
        compressible: false,
        extensions: ["mp3"]
      },
      "audio/mp4": {
        source: "iana",
        compressible: false,
        extensions: ["m4a", "mp4a"]
      },
      "audio/mp4a-latm": {
        source: "iana"
      },
      "audio/mpa": {
        source: "iana"
      },
      "audio/mpa-robust": {
        source: "iana"
      },
      "audio/mpeg": {
        source: "iana",
        compressible: false,
        extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"]
      },
      "audio/mpeg4-generic": {
        source: "iana"
      },
      "audio/musepack": {
        source: "apache"
      },
      "audio/ogg": {
        source: "iana",
        compressible: false,
        extensions: ["oga", "ogg", "spx", "opus"]
      },
      "audio/opus": {
        source: "iana"
      },
      "audio/parityfec": {
        source: "iana"
      },
      "audio/pcma": {
        source: "iana"
      },
      "audio/pcma-wb": {
        source: "iana"
      },
      "audio/pcmu": {
        source: "iana"
      },
      "audio/pcmu-wb": {
        source: "iana"
      },
      "audio/prs.sid": {
        source: "iana"
      },
      "audio/qcelp": {
        source: "iana"
      },
      "audio/raptorfec": {
        source: "iana"
      },
      "audio/red": {
        source: "iana"
      },
      "audio/rtp-enc-aescm128": {
        source: "iana"
      },
      "audio/rtp-midi": {
        source: "iana"
      },
      "audio/rtploopback": {
        source: "iana"
      },
      "audio/rtx": {
        source: "iana"
      },
      "audio/s3m": {
        source: "apache",
        extensions: ["s3m"]
      },
      "audio/scip": {
        source: "iana"
      },
      "audio/silk": {
        source: "apache",
        extensions: ["sil"]
      },
      "audio/smv": {
        source: "iana"
      },
      "audio/smv-qcp": {
        source: "iana"
      },
      "audio/smv0": {
        source: "iana"
      },
      "audio/sofa": {
        source: "iana"
      },
      "audio/sp-midi": {
        source: "iana"
      },
      "audio/speex": {
        source: "iana"
      },
      "audio/t140c": {
        source: "iana"
      },
      "audio/t38": {
        source: "iana"
      },
      "audio/telephone-event": {
        source: "iana"
      },
      "audio/tetra_acelp": {
        source: "iana"
      },
      "audio/tetra_acelp_bb": {
        source: "iana"
      },
      "audio/tone": {
        source: "iana"
      },
      "audio/tsvcis": {
        source: "iana"
      },
      "audio/uemclip": {
        source: "iana"
      },
      "audio/ulpfec": {
        source: "iana"
      },
      "audio/usac": {
        source: "iana"
      },
      "audio/vdvi": {
        source: "iana"
      },
      "audio/vmr-wb": {
        source: "iana"
      },
      "audio/vnd.3gpp.iufp": {
        source: "iana"
      },
      "audio/vnd.4sb": {
        source: "iana"
      },
      "audio/vnd.audiokoz": {
        source: "iana"
      },
      "audio/vnd.celp": {
        source: "iana"
      },
      "audio/vnd.cisco.nse": {
        source: "iana"
      },
      "audio/vnd.cmles.radio-events": {
        source: "iana"
      },
      "audio/vnd.cns.anp1": {
        source: "iana"
      },
      "audio/vnd.cns.inf1": {
        source: "iana"
      },
      "audio/vnd.dece.audio": {
        source: "iana",
        extensions: ["uva", "uvva"]
      },
      "audio/vnd.digital-winds": {
        source: "iana",
        extensions: ["eol"]
      },
      "audio/vnd.dlna.adts": {
        source: "iana"
      },
      "audio/vnd.dolby.heaac.1": {
        source: "iana"
      },
      "audio/vnd.dolby.heaac.2": {
        source: "iana"
      },
      "audio/vnd.dolby.mlp": {
        source: "iana"
      },
      "audio/vnd.dolby.mps": {
        source: "iana"
      },
      "audio/vnd.dolby.pl2": {
        source: "iana"
      },
      "audio/vnd.dolby.pl2x": {
        source: "iana"
      },
      "audio/vnd.dolby.pl2z": {
        source: "iana"
      },
      "audio/vnd.dolby.pulse.1": {
        source: "iana"
      },
      "audio/vnd.dra": {
        source: "iana",
        extensions: ["dra"]
      },
      "audio/vnd.dts": {
        source: "iana",
        extensions: ["dts"]
      },
      "audio/vnd.dts.hd": {
        source: "iana",
        extensions: ["dtshd"]
      },
      "audio/vnd.dts.uhd": {
        source: "iana"
      },
      "audio/vnd.dvb.file": {
        source: "iana"
      },
      "audio/vnd.everad.plj": {
        source: "iana"
      },
      "audio/vnd.hns.audio": {
        source: "iana"
      },
      "audio/vnd.lucent.voice": {
        source: "iana",
        extensions: ["lvp"]
      },
      "audio/vnd.ms-playready.media.pya": {
        source: "iana",
        extensions: ["pya"]
      },
      "audio/vnd.nokia.mobile-xmf": {
        source: "iana"
      },
      "audio/vnd.nortel.vbk": {
        source: "iana"
      },
      "audio/vnd.nuera.ecelp4800": {
        source: "iana",
        extensions: ["ecelp4800"]
      },
      "audio/vnd.nuera.ecelp7470": {
        source: "iana",
        extensions: ["ecelp7470"]
      },
      "audio/vnd.nuera.ecelp9600": {
        source: "iana",
        extensions: ["ecelp9600"]
      },
      "audio/vnd.octel.sbc": {
        source: "iana"
      },
      "audio/vnd.presonus.multitrack": {
        source: "iana"
      },
      "audio/vnd.qcelp": {
        source: "iana"
      },
      "audio/vnd.rhetorex.32kadpcm": {
        source: "iana"
      },
      "audio/vnd.rip": {
        source: "iana",
        extensions: ["rip"]
      },
      "audio/vnd.rn-realaudio": {
        compressible: false
      },
      "audio/vnd.sealedmedia.softseal.mpeg": {
        source: "iana"
      },
      "audio/vnd.vmx.cvsd": {
        source: "iana"
      },
      "audio/vnd.wave": {
        compressible: false
      },
      "audio/vorbis": {
        source: "iana",
        compressible: false
      },
      "audio/vorbis-config": {
        source: "iana"
      },
      "audio/wav": {
        compressible: false,
        extensions: ["wav"]
      },
      "audio/wave": {
        compressible: false,
        extensions: ["wav"]
      },
      "audio/webm": {
        source: "apache",
        compressible: false,
        extensions: ["weba"]
      },
      "audio/x-aac": {
        source: "apache",
        compressible: false,
        extensions: ["aac"]
      },
      "audio/x-aiff": {
        source: "apache",
        extensions: ["aif", "aiff", "aifc"]
      },
      "audio/x-caf": {
        source: "apache",
        compressible: false,
        extensions: ["caf"]
      },
      "audio/x-flac": {
        source: "apache",
        extensions: ["flac"]
      },
      "audio/x-m4a": {
        source: "nginx",
        extensions: ["m4a"]
      },
      "audio/x-matroska": {
        source: "apache",
        extensions: ["mka"]
      },
      "audio/x-mpegurl": {
        source: "apache",
        extensions: ["m3u"]
      },
      "audio/x-ms-wax": {
        source: "apache",
        extensions: ["wax"]
      },
      "audio/x-ms-wma": {
        source: "apache",
        extensions: ["wma"]
      },
      "audio/x-pn-realaudio": {
        source: "apache",
        extensions: ["ram", "ra"]
      },
      "audio/x-pn-realaudio-plugin": {
        source: "apache",
        extensions: ["rmp"]
      },
      "audio/x-realaudio": {
        source: "nginx",
        extensions: ["ra"]
      },
      "audio/x-tta": {
        source: "apache"
      },
      "audio/x-wav": {
        source: "apache",
        extensions: ["wav"]
      },
      "audio/xm": {
        source: "apache",
        extensions: ["xm"]
      },
      "chemical/x-cdx": {
        source: "apache",
        extensions: ["cdx"]
      },
      "chemical/x-cif": {
        source: "apache",
        extensions: ["cif"]
      },
      "chemical/x-cmdf": {
        source: "apache",
        extensions: ["cmdf"]
      },
      "chemical/x-cml": {
        source: "apache",
        extensions: ["cml"]
      },
      "chemical/x-csml": {
        source: "apache",
        extensions: ["csml"]
      },
      "chemical/x-pdb": {
        source: "apache"
      },
      "chemical/x-xyz": {
        source: "apache",
        extensions: ["xyz"]
      },
      "font/collection": {
        source: "iana",
        extensions: ["ttc"]
      },
      "font/otf": {
        source: "iana",
        compressible: true,
        extensions: ["otf"]
      },
      "font/sfnt": {
        source: "iana"
      },
      "font/ttf": {
        source: "iana",
        compressible: true,
        extensions: ["ttf"]
      },
      "font/woff": {
        source: "iana",
        extensions: ["woff"]
      },
      "font/woff2": {
        source: "iana",
        extensions: ["woff2"]
      },
      "image/aces": {
        source: "iana",
        extensions: ["exr"]
      },
      "image/apng": {
        compressible: false,
        extensions: ["apng"]
      },
      "image/avci": {
        source: "iana",
        extensions: ["avci"]
      },
      "image/avcs": {
        source: "iana",
        extensions: ["avcs"]
      },
      "image/avif": {
        source: "iana",
        compressible: false,
        extensions: ["avif"]
      },
      "image/bmp": {
        source: "iana",
        compressible: true,
        extensions: ["bmp"]
      },
      "image/cgm": {
        source: "iana",
        extensions: ["cgm"]
      },
      "image/dicom-rle": {
        source: "iana",
        extensions: ["drle"]
      },
      "image/emf": {
        source: "iana",
        extensions: ["emf"]
      },
      "image/fits": {
        source: "iana",
        extensions: ["fits"]
      },
      "image/g3fax": {
        source: "iana",
        extensions: ["g3"]
      },
      "image/gif": {
        source: "iana",
        compressible: false,
        extensions: ["gif"]
      },
      "image/heic": {
        source: "iana",
        extensions: ["heic"]
      },
      "image/heic-sequence": {
        source: "iana",
        extensions: ["heics"]
      },
      "image/heif": {
        source: "iana",
        extensions: ["heif"]
      },
      "image/heif-sequence": {
        source: "iana",
        extensions: ["heifs"]
      },
      "image/hej2k": {
        source: "iana",
        extensions: ["hej2"]
      },
      "image/hsj2": {
        source: "iana",
        extensions: ["hsj2"]
      },
      "image/ief": {
        source: "iana",
        extensions: ["ief"]
      },
      "image/jls": {
        source: "iana",
        extensions: ["jls"]
      },
      "image/jp2": {
        source: "iana",
        compressible: false,
        extensions: ["jp2", "jpg2"]
      },
      "image/jpeg": {
        source: "iana",
        compressible: false,
        extensions: ["jpeg", "jpg", "jpe"]
      },
      "image/jph": {
        source: "iana",
        extensions: ["jph"]
      },
      "image/jphc": {
        source: "iana",
        extensions: ["jhc"]
      },
      "image/jpm": {
        source: "iana",
        compressible: false,
        extensions: ["jpm"]
      },
      "image/jpx": {
        source: "iana",
        compressible: false,
        extensions: ["jpx", "jpf"]
      },
      "image/jxr": {
        source: "iana",
        extensions: ["jxr"]
      },
      "image/jxra": {
        source: "iana",
        extensions: ["jxra"]
      },
      "image/jxrs": {
        source: "iana",
        extensions: ["jxrs"]
      },
      "image/jxs": {
        source: "iana",
        extensions: ["jxs"]
      },
      "image/jxsc": {
        source: "iana",
        extensions: ["jxsc"]
      },
      "image/jxsi": {
        source: "iana",
        extensions: ["jxsi"]
      },
      "image/jxss": {
        source: "iana",
        extensions: ["jxss"]
      },
      "image/ktx": {
        source: "iana",
        extensions: ["ktx"]
      },
      "image/ktx2": {
        source: "iana",
        extensions: ["ktx2"]
      },
      "image/naplps": {
        source: "iana"
      },
      "image/pjpeg": {
        compressible: false
      },
      "image/png": {
        source: "iana",
        compressible: false,
        extensions: ["png"]
      },
      "image/prs.btif": {
        source: "iana",
        extensions: ["btif"]
      },
      "image/prs.pti": {
        source: "iana",
        extensions: ["pti"]
      },
      "image/pwg-raster": {
        source: "iana"
      },
      "image/sgi": {
        source: "apache",
        extensions: ["sgi"]
      },
      "image/svg+xml": {
        source: "iana",
        compressible: true,
        extensions: ["svg", "svgz"]
      },
      "image/t38": {
        source: "iana",
        extensions: ["t38"]
      },
      "image/tiff": {
        source: "iana",
        compressible: false,
        extensions: ["tif", "tiff"]
      },
      "image/tiff-fx": {
        source: "iana",
        extensions: ["tfx"]
      },
      "image/vnd.adobe.photoshop": {
        source: "iana",
        compressible: true,
        extensions: ["psd"]
      },
      "image/vnd.airzip.accelerator.azv": {
        source: "iana",
        extensions: ["azv"]
      },
      "image/vnd.cns.inf2": {
        source: "iana"
      },
      "image/vnd.dece.graphic": {
        source: "iana",
        extensions: ["uvi", "uvvi", "uvg", "uvvg"]
      },
      "image/vnd.djvu": {
        source: "iana",
        extensions: ["djvu", "djv"]
      },
      "image/vnd.dvb.subtitle": {
        source: "iana",
        extensions: ["sub"]
      },
      "image/vnd.dwg": {
        source: "iana",
        extensions: ["dwg"]
      },
      "image/vnd.dxf": {
        source: "iana",
        extensions: ["dxf"]
      },
      "image/vnd.fastbidsheet": {
        source: "iana",
        extensions: ["fbs"]
      },
      "image/vnd.fpx": {
        source: "iana",
        extensions: ["fpx"]
      },
      "image/vnd.fst": {
        source: "iana",
        extensions: ["fst"]
      },
      "image/vnd.fujixerox.edmics-mmr": {
        source: "iana",
        extensions: ["mmr"]
      },
      "image/vnd.fujixerox.edmics-rlc": {
        source: "iana",
        extensions: ["rlc"]
      },
      "image/vnd.globalgraphics.pgb": {
        source: "iana"
      },
      "image/vnd.microsoft.icon": {
        source: "iana",
        compressible: true,
        extensions: ["ico"]
      },
      "image/vnd.mix": {
        source: "iana"
      },
      "image/vnd.mozilla.apng": {
        source: "iana"
      },
      "image/vnd.ms-dds": {
        compressible: true,
        extensions: ["dds"]
      },
      "image/vnd.ms-modi": {
        source: "iana",
        extensions: ["mdi"]
      },
      "image/vnd.ms-photo": {
        source: "apache",
        extensions: ["wdp"]
      },
      "image/vnd.net-fpx": {
        source: "iana",
        extensions: ["npx"]
      },
      "image/vnd.pco.b16": {
        source: "iana",
        extensions: ["b16"]
      },
      "image/vnd.radiance": {
        source: "iana"
      },
      "image/vnd.sealed.png": {
        source: "iana"
      },
      "image/vnd.sealedmedia.softseal.gif": {
        source: "iana"
      },
      "image/vnd.sealedmedia.softseal.jpg": {
        source: "iana"
      },
      "image/vnd.svf": {
        source: "iana"
      },
      "image/vnd.tencent.tap": {
        source: "iana",
        extensions: ["tap"]
      },
      "image/vnd.valve.source.texture": {
        source: "iana",
        extensions: ["vtf"]
      },
      "image/vnd.wap.wbmp": {
        source: "iana",
        extensions: ["wbmp"]
      },
      "image/vnd.xiff": {
        source: "iana",
        extensions: ["xif"]
      },
      "image/vnd.zbrush.pcx": {
        source: "iana",
        extensions: ["pcx"]
      },
      "image/webp": {
        source: "apache",
        extensions: ["webp"]
      },
      "image/wmf": {
        source: "iana",
        extensions: ["wmf"]
      },
      "image/x-3ds": {
        source: "apache",
        extensions: ["3ds"]
      },
      "image/x-cmu-raster": {
        source: "apache",
        extensions: ["ras"]
      },
      "image/x-cmx": {
        source: "apache",
        extensions: ["cmx"]
      },
      "image/x-freehand": {
        source: "apache",
        extensions: ["fh", "fhc", "fh4", "fh5", "fh7"]
      },
      "image/x-icon": {
        source: "apache",
        compressible: true,
        extensions: ["ico"]
      },
      "image/x-jng": {
        source: "nginx",
        extensions: ["jng"]
      },
      "image/x-mrsid-image": {
        source: "apache",
        extensions: ["sid"]
      },
      "image/x-ms-bmp": {
        source: "nginx",
        compressible: true,
        extensions: ["bmp"]
      },
      "image/x-pcx": {
        source: "apache",
        extensions: ["pcx"]
      },
      "image/x-pict": {
        source: "apache",
        extensions: ["pic", "pct"]
      },
      "image/x-portable-anymap": {
        source: "apache",
        extensions: ["pnm"]
      },
      "image/x-portable-bitmap": {
        source: "apache",
        extensions: ["pbm"]
      },
      "image/x-portable-graymap": {
        source: "apache",
        extensions: ["pgm"]
      },
      "image/x-portable-pixmap": {
        source: "apache",
        extensions: ["ppm"]
      },
      "image/x-rgb": {
        source: "apache",
        extensions: ["rgb"]
      },
      "image/x-tga": {
        source: "apache",
        extensions: ["tga"]
      },
      "image/x-xbitmap": {
        source: "apache",
        extensions: ["xbm"]
      },
      "image/x-xcf": {
        compressible: false
      },
      "image/x-xpixmap": {
        source: "apache",
        extensions: ["xpm"]
      },
      "image/x-xwindowdump": {
        source: "apache",
        extensions: ["xwd"]
      },
      "message/cpim": {
        source: "iana"
      },
      "message/delivery-status": {
        source: "iana"
      },
      "message/disposition-notification": {
        source: "iana",
        extensions: [
          "disposition-notification"
        ]
      },
      "message/external-body": {
        source: "iana"
      },
      "message/feedback-report": {
        source: "iana"
      },
      "message/global": {
        source: "iana",
        extensions: ["u8msg"]
      },
      "message/global-delivery-status": {
        source: "iana",
        extensions: ["u8dsn"]
      },
      "message/global-disposition-notification": {
        source: "iana",
        extensions: ["u8mdn"]
      },
      "message/global-headers": {
        source: "iana",
        extensions: ["u8hdr"]
      },
      "message/http": {
        source: "iana",
        compressible: false
      },
      "message/imdn+xml": {
        source: "iana",
        compressible: true
      },
      "message/news": {
        source: "iana"
      },
      "message/partial": {
        source: "iana",
        compressible: false
      },
      "message/rfc822": {
        source: "iana",
        compressible: true,
        extensions: ["eml", "mime"]
      },
      "message/s-http": {
        source: "iana"
      },
      "message/sip": {
        source: "iana"
      },
      "message/sipfrag": {
        source: "iana"
      },
      "message/tracking-status": {
        source: "iana"
      },
      "message/vnd.si.simp": {
        source: "iana"
      },
      "message/vnd.wfa.wsc": {
        source: "iana",
        extensions: ["wsc"]
      },
      "model/3mf": {
        source: "iana",
        extensions: ["3mf"]
      },
      "model/e57": {
        source: "iana"
      },
      "model/gltf+json": {
        source: "iana",
        compressible: true,
        extensions: ["gltf"]
      },
      "model/gltf-binary": {
        source: "iana",
        compressible: true,
        extensions: ["glb"]
      },
      "model/iges": {
        source: "iana",
        compressible: false,
        extensions: ["igs", "iges"]
      },
      "model/mesh": {
        source: "iana",
        compressible: false,
        extensions: ["msh", "mesh", "silo"]
      },
      "model/mtl": {
        source: "iana",
        extensions: ["mtl"]
      },
      "model/obj": {
        source: "iana",
        extensions: ["obj"]
      },
      "model/step": {
        source: "iana"
      },
      "model/step+xml": {
        source: "iana",
        compressible: true,
        extensions: ["stpx"]
      },
      "model/step+zip": {
        source: "iana",
        compressible: false,
        extensions: ["stpz"]
      },
      "model/step-xml+zip": {
        source: "iana",
        compressible: false,
        extensions: ["stpxz"]
      },
      "model/stl": {
        source: "iana",
        extensions: ["stl"]
      },
      "model/vnd.collada+xml": {
        source: "iana",
        compressible: true,
        extensions: ["dae"]
      },
      "model/vnd.dwf": {
        source: "iana",
        extensions: ["dwf"]
      },
      "model/vnd.flatland.3dml": {
        source: "iana"
      },
      "model/vnd.gdl": {
        source: "iana",
        extensions: ["gdl"]
      },
      "model/vnd.gs-gdl": {
        source: "apache"
      },
      "model/vnd.gs.gdl": {
        source: "iana"
      },
      "model/vnd.gtw": {
        source: "iana",
        extensions: ["gtw"]
      },
      "model/vnd.moml+xml": {
        source: "iana",
        compressible: true
      },
      "model/vnd.mts": {
        source: "iana",
        extensions: ["mts"]
      },
      "model/vnd.opengex": {
        source: "iana",
        extensions: ["ogex"]
      },
      "model/vnd.parasolid.transmit.binary": {
        source: "iana",
        extensions: ["x_b"]
      },
      "model/vnd.parasolid.transmit.text": {
        source: "iana",
        extensions: ["x_t"]
      },
      "model/vnd.pytha.pyox": {
        source: "iana"
      },
      "model/vnd.rosette.annotated-data-model": {
        source: "iana"
      },
      "model/vnd.sap.vds": {
        source: "iana",
        extensions: ["vds"]
      },
      "model/vnd.usdz+zip": {
        source: "iana",
        compressible: false,
        extensions: ["usdz"]
      },
      "model/vnd.valve.source.compiled-map": {
        source: "iana",
        extensions: ["bsp"]
      },
      "model/vnd.vtu": {
        source: "iana",
        extensions: ["vtu"]
      },
      "model/vrml": {
        source: "iana",
        compressible: false,
        extensions: ["wrl", "vrml"]
      },
      "model/x3d+binary": {
        source: "apache",
        compressible: false,
        extensions: ["x3db", "x3dbz"]
      },
      "model/x3d+fastinfoset": {
        source: "iana",
        extensions: ["x3db"]
      },
      "model/x3d+vrml": {
        source: "apache",
        compressible: false,
        extensions: ["x3dv", "x3dvz"]
      },
      "model/x3d+xml": {
        source: "iana",
        compressible: true,
        extensions: ["x3d", "x3dz"]
      },
      "model/x3d-vrml": {
        source: "iana",
        extensions: ["x3dv"]
      },
      "multipart/alternative": {
        source: "iana",
        compressible: false
      },
      "multipart/appledouble": {
        source: "iana"
      },
      "multipart/byteranges": {
        source: "iana"
      },
      "multipart/digest": {
        source: "iana"
      },
      "multipart/encrypted": {
        source: "iana",
        compressible: false
      },
      "multipart/form-data": {
        source: "iana",
        compressible: false
      },
      "multipart/header-set": {
        source: "iana"
      },
      "multipart/mixed": {
        source: "iana"
      },
      "multipart/multilingual": {
        source: "iana"
      },
      "multipart/parallel": {
        source: "iana"
      },
      "multipart/related": {
        source: "iana",
        compressible: false
      },
      "multipart/report": {
        source: "iana"
      },
      "multipart/signed": {
        source: "iana",
        compressible: false
      },
      "multipart/vnd.bint.med-plus": {
        source: "iana"
      },
      "multipart/voice-message": {
        source: "iana"
      },
      "multipart/x-mixed-replace": {
        source: "iana"
      },
      "text/1d-interleaved-parityfec": {
        source: "iana"
      },
      "text/cache-manifest": {
        source: "iana",
        compressible: true,
        extensions: ["appcache", "manifest"]
      },
      "text/calendar": {
        source: "iana",
        extensions: ["ics", "ifb"]
      },
      "text/calender": {
        compressible: true
      },
      "text/cmd": {
        compressible: true
      },
      "text/coffeescript": {
        extensions: ["coffee", "litcoffee"]
      },
      "text/cql": {
        source: "iana"
      },
      "text/cql-expression": {
        source: "iana"
      },
      "text/cql-identifier": {
        source: "iana"
      },
      "text/css": {
        source: "iana",
        charset: "UTF-8",
        compressible: true,
        extensions: ["css"]
      },
      "text/csv": {
        source: "iana",
        compressible: true,
        extensions: ["csv"]
      },
      "text/csv-schema": {
        source: "iana"
      },
      "text/directory": {
        source: "iana"
      },
      "text/dns": {
        source: "iana"
      },
      "text/ecmascript": {
        source: "iana"
      },
      "text/encaprtp": {
        source: "iana"
      },
      "text/enriched": {
        source: "iana"
      },
      "text/fhirpath": {
        source: "iana"
      },
      "text/flexfec": {
        source: "iana"
      },
      "text/fwdred": {
        source: "iana"
      },
      "text/gff3": {
        source: "iana"
      },
      "text/grammar-ref-list": {
        source: "iana"
      },
      "text/html": {
        source: "iana",
        compressible: true,
        extensions: ["html", "htm", "shtml"]
      },
      "text/jade": {
        extensions: ["jade"]
      },
      "text/javascript": {
        source: "iana",
        compressible: true
      },
      "text/jcr-cnd": {
        source: "iana"
      },
      "text/jsx": {
        compressible: true,
        extensions: ["jsx"]
      },
      "text/less": {
        compressible: true,
        extensions: ["less"]
      },
      "text/markdown": {
        source: "iana",
        compressible: true,
        extensions: ["markdown", "md"]
      },
      "text/mathml": {
        source: "nginx",
        extensions: ["mml"]
      },
      "text/mdx": {
        compressible: true,
        extensions: ["mdx"]
      },
      "text/mizar": {
        source: "iana"
      },
      "text/n3": {
        source: "iana",
        charset: "UTF-8",
        compressible: true,
        extensions: ["n3"]
      },
      "text/parameters": {
        source: "iana",
        charset: "UTF-8"
      },
      "text/parityfec": {
        source: "iana"
      },
      "text/plain": {
        source: "iana",
        compressible: true,
        extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"]
      },
      "text/provenance-notation": {
        source: "iana",
        charset: "UTF-8"
      },
      "text/prs.fallenstein.rst": {
        source: "iana"
      },
      "text/prs.lines.tag": {
        source: "iana",
        extensions: ["dsc"]
      },
      "text/prs.prop.logic": {
        source: "iana"
      },
      "text/raptorfec": {
        source: "iana"
      },
      "text/red": {
        source: "iana"
      },
      "text/rfc822-headers": {
        source: "iana"
      },
      "text/richtext": {
        source: "iana",
        compressible: true,
        extensions: ["rtx"]
      },
      "text/rtf": {
        source: "iana",
        compressible: true,
        extensions: ["rtf"]
      },
      "text/rtp-enc-aescm128": {
        source: "iana"
      },
      "text/rtploopback": {
        source: "iana"
      },
      "text/rtx": {
        source: "iana"
      },
      "text/sgml": {
        source: "iana",
        extensions: ["sgml", "sgm"]
      },
      "text/shaclc": {
        source: "iana"
      },
      "text/shex": {
        source: "iana",
        extensions: ["shex"]
      },
      "text/slim": {
        extensions: ["slim", "slm"]
      },
      "text/spdx": {
        source: "iana",
        extensions: ["spdx"]
      },
      "text/strings": {
        source: "iana"
      },
      "text/stylus": {
        extensions: ["stylus", "styl"]
      },
      "text/t140": {
        source: "iana"
      },
      "text/tab-separated-values": {
        source: "iana",
        compressible: true,
        extensions: ["tsv"]
      },
      "text/troff": {
        source: "iana",
        extensions: ["t", "tr", "roff", "man", "me", "ms"]
      },
      "text/turtle": {
        source: "iana",
        charset: "UTF-8",
        extensions: ["ttl"]
      },
      "text/ulpfec": {
        source: "iana"
      },
      "text/uri-list": {
        source: "iana",
        compressible: true,
        extensions: ["uri", "uris", "urls"]
      },
      "text/vcard": {
        source: "iana",
        compressible: true,
        extensions: ["vcard"]
      },
      "text/vnd.a": {
        source: "iana"
      },
      "text/vnd.abc": {
        source: "iana"
      },
      "text/vnd.ascii-art": {
        source: "iana"
      },
      "text/vnd.curl": {
        source: "iana",
        extensions: ["curl"]
      },
      "text/vnd.curl.dcurl": {
        source: "apache",
        extensions: ["dcurl"]
      },
      "text/vnd.curl.mcurl": {
        source: "apache",
        extensions: ["mcurl"]
      },
      "text/vnd.curl.scurl": {
        source: "apache",
        extensions: ["scurl"]
      },
      "text/vnd.debian.copyright": {
        source: "iana",
        charset: "UTF-8"
      },
      "text/vnd.dmclientscript": {
        source: "iana"
      },
      "text/vnd.dvb.subtitle": {
        source: "iana",
        extensions: ["sub"]
      },
      "text/vnd.esmertec.theme-descriptor": {
        source: "iana",
        charset: "UTF-8"
      },
      "text/vnd.familysearch.gedcom": {
        source: "iana",
        extensions: ["ged"]
      },
      "text/vnd.ficlab.flt": {
        source: "iana"
      },
      "text/vnd.fly": {
        source: "iana",
        extensions: ["fly"]
      },
      "text/vnd.fmi.flexstor": {
        source: "iana",
        extensions: ["flx"]
      },
      "text/vnd.gml": {
        source: "iana"
      },
      "text/vnd.graphviz": {
        source: "iana",
        extensions: ["gv"]
      },
      "text/vnd.hans": {
        source: "iana"
      },
      "text/vnd.hgl": {
        source: "iana"
      },
      "text/vnd.in3d.3dml": {
        source: "iana",
        extensions: ["3dml"]
      },
      "text/vnd.in3d.spot": {
        source: "iana",
        extensions: ["spot"]
      },
      "text/vnd.iptc.newsml": {
        source: "iana"
      },
      "text/vnd.iptc.nitf": {
        source: "iana"
      },
      "text/vnd.latex-z": {
        source: "iana"
      },
      "text/vnd.motorola.reflex": {
        source: "iana"
      },
      "text/vnd.ms-mediapackage": {
        source: "iana"
      },
      "text/vnd.net2phone.commcenter.command": {
        source: "iana"
      },
      "text/vnd.radisys.msml-basic-layout": {
        source: "iana"
      },
      "text/vnd.senx.warpscript": {
        source: "iana"
      },
      "text/vnd.si.uricatalogue": {
        source: "iana"
      },
      "text/vnd.sosi": {
        source: "iana"
      },
      "text/vnd.sun.j2me.app-descriptor": {
        source: "iana",
        charset: "UTF-8",
        extensions: ["jad"]
      },
      "text/vnd.trolltech.linguist": {
        source: "iana",
        charset: "UTF-8"
      },
      "text/vnd.wap.si": {
        source: "iana"
      },
      "text/vnd.wap.sl": {
        source: "iana"
      },
      "text/vnd.wap.wml": {
        source: "iana",
        extensions: ["wml"]
      },
      "text/vnd.wap.wmlscript": {
        source: "iana",
        extensions: ["wmls"]
      },
      "text/vtt": {
        source: "iana",
        charset: "UTF-8",
        compressible: true,
        extensions: ["vtt"]
      },
      "text/x-asm": {
        source: "apache",
        extensions: ["s", "asm"]
      },
      "text/x-c": {
        source: "apache",
        extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"]
      },
      "text/x-component": {
        source: "nginx",
        extensions: ["htc"]
      },
      "text/x-fortran": {
        source: "apache",
        extensions: ["f", "for", "f77", "f90"]
      },
      "text/x-gwt-rpc": {
        compressible: true
      },
      "text/x-handlebars-template": {
        extensions: ["hbs"]
      },
      "text/x-java-source": {
        source: "apache",
        extensions: ["java"]
      },
      "text/x-jquery-tmpl": {
        compressible: true
      },
      "text/x-lua": {
        extensions: ["lua"]
      },
      "text/x-markdown": {
        compressible: true,
        extensions: ["mkd"]
      },
      "text/x-nfo": {
        source: "apache",
        extensions: ["nfo"]
      },
      "text/x-opml": {
        source: "apache",
        extensions: ["opml"]
      },
      "text/x-org": {
        compressible: true,
        extensions: ["org"]
      },
      "text/x-pascal": {
        source: "apache",
        extensions: ["p", "pas"]
      },
      "text/x-processing": {
        compressible: true,
        extensions: ["pde"]
      },
      "text/x-sass": {
        extensions: ["sass"]
      },
      "text/x-scss": {
        extensions: ["scss"]
      },
      "text/x-setext": {
        source: "apache",
        extensions: ["etx"]
      },
      "text/x-sfv": {
        source: "apache",
        extensions: ["sfv"]
      },
      "text/x-suse-ymp": {
        compressible: true,
        extensions: ["ymp"]
      },
      "text/x-uuencode": {
        source: "apache",
        extensions: ["uu"]
      },
      "text/x-vcalendar": {
        source: "apache",
        extensions: ["vcs"]
      },
      "text/x-vcard": {
        source: "apache",
        extensions: ["vcf"]
      },
      "text/xml": {
        source: "iana",
        compressible: true,
        extensions: ["xml"]
      },
      "text/xml-external-parsed-entity": {
        source: "iana"
      },
      "text/yaml": {
        compressible: true,
        extensions: ["yaml", "yml"]
      },
      "video/1d-interleaved-parityfec": {
        source: "iana"
      },
      "video/3gpp": {
        source: "iana",
        extensions: ["3gp", "3gpp"]
      },
      "video/3gpp-tt": {
        source: "iana"
      },
      "video/3gpp2": {
        source: "iana",
        extensions: ["3g2"]
      },
      "video/av1": {
        source: "iana"
      },
      "video/bmpeg": {
        source: "iana"
      },
      "video/bt656": {
        source: "iana"
      },
      "video/celb": {
        source: "iana"
      },
      "video/dv": {
        source: "iana"
      },
      "video/encaprtp": {
        source: "iana"
      },
      "video/ffv1": {
        source: "iana"
      },
      "video/flexfec": {
        source: "iana"
      },
      "video/h261": {
        source: "iana",
        extensions: ["h261"]
      },
      "video/h263": {
        source: "iana",
        extensions: ["h263"]
      },
      "video/h263-1998": {
        source: "iana"
      },
      "video/h263-2000": {
        source: "iana"
      },
      "video/h264": {
        source: "iana",
        extensions: ["h264"]
      },
      "video/h264-rcdo": {
        source: "iana"
      },
      "video/h264-svc": {
        source: "iana"
      },
      "video/h265": {
        source: "iana"
      },
      "video/iso.segment": {
        source: "iana",
        extensions: ["m4s"]
      },
      "video/jpeg": {
        source: "iana",
        extensions: ["jpgv"]
      },
      "video/jpeg2000": {
        source: "iana"
      },
      "video/jpm": {
        source: "apache",
        extensions: ["jpm", "jpgm"]
      },
      "video/jxsv": {
        source: "iana"
      },
      "video/mj2": {
        source: "iana",
        extensions: ["mj2", "mjp2"]
      },
      "video/mp1s": {
        source: "iana"
      },
      "video/mp2p": {
        source: "iana"
      },
      "video/mp2t": {
        source: "iana",
        extensions: ["ts"]
      },
      "video/mp4": {
        source: "iana",
        compressible: false,
        extensions: ["mp4", "mp4v", "mpg4"]
      },
      "video/mp4v-es": {
        source: "iana"
      },
      "video/mpeg": {
        source: "iana",
        compressible: false,
        extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"]
      },
      "video/mpeg4-generic": {
        source: "iana"
      },
      "video/mpv": {
        source: "iana"
      },
      "video/nv": {
        source: "iana"
      },
      "video/ogg": {
        source: "iana",
        compressible: false,
        extensions: ["ogv"]
      },
      "video/parityfec": {
        source: "iana"
      },
      "video/pointer": {
        source: "iana"
      },
      "video/quicktime": {
        source: "iana",
        compressible: false,
        extensions: ["qt", "mov"]
      },
      "video/raptorfec": {
        source: "iana"
      },
      "video/raw": {
        source: "iana"
      },
      "video/rtp-enc-aescm128": {
        source: "iana"
      },
      "video/rtploopback": {
        source: "iana"
      },
      "video/rtx": {
        source: "iana"
      },
      "video/scip": {
        source: "iana"
      },
      "video/smpte291": {
        source: "iana"
      },
      "video/smpte292m": {
        source: "iana"
      },
      "video/ulpfec": {
        source: "iana"
      },
      "video/vc1": {
        source: "iana"
      },
      "video/vc2": {
        source: "iana"
      },
      "video/vnd.cctv": {
        source: "iana"
      },
      "video/vnd.dece.hd": {
        source: "iana",
        extensions: ["uvh", "uvvh"]
      },
      "video/vnd.dece.mobile": {
        source: "iana",
        extensions: ["uvm", "uvvm"]
      },
      "video/vnd.dece.mp4": {
        source: "iana"
      },
      "video/vnd.dece.pd": {
        source: "iana",
        extensions: ["uvp", "uvvp"]
      },
      "video/vnd.dece.sd": {
        source: "iana",
        extensions: ["uvs", "uvvs"]
      },
      "video/vnd.dece.video": {
        source: "iana",
        extensions: ["uvv", "uvvv"]
      },
      "video/vnd.directv.mpeg": {
        source: "iana"
      },
      "video/vnd.directv.mpeg-tts": {
        source: "iana"
      },
      "video/vnd.dlna.mpeg-tts": {
        source: "iana"
      },
      "video/vnd.dvb.file": {
        source: "iana",
        extensions: ["dvb"]
      },
      "video/vnd.fvt": {
        source: "iana",
        extensions: ["fvt"]
      },
      "video/vnd.hns.video": {
        source: "iana"
      },
      "video/vnd.iptvforum.1dparityfec-1010": {
        source: "iana"
      },
      "video/vnd.iptvforum.1dparityfec-2005": {
        source: "iana"
      },
      "video/vnd.iptvforum.2dparityfec-1010": {
        source: "iana"
      },
      "video/vnd.iptvforum.2dparityfec-2005": {
        source: "iana"
      },
      "video/vnd.iptvforum.ttsavc": {
        source: "iana"
      },
      "video/vnd.iptvforum.ttsmpeg2": {
        source: "iana"
      },
      "video/vnd.motorola.video": {
        source: "iana"
      },
      "video/vnd.motorola.videop": {
        source: "iana"
      },
      "video/vnd.mpegurl": {
        source: "iana",
        extensions: ["mxu", "m4u"]
      },
      "video/vnd.ms-playready.media.pyv": {
        source: "iana",
        extensions: ["pyv"]
      },
      "video/vnd.nokia.interleaved-multimedia": {
        source: "iana"
      },
      "video/vnd.nokia.mp4vr": {
        source: "iana"
      },
      "video/vnd.nokia.videovoip": {
        source: "iana"
      },
      "video/vnd.objectvideo": {
        source: "iana"
      },
      "video/vnd.radgamettools.bink": {
        source: "iana"
      },
      "video/vnd.radgamettools.smacker": {
        source: "iana"
      },
      "video/vnd.sealed.mpeg1": {
        source: "iana"
      },
      "video/vnd.sealed.mpeg4": {
        source: "iana"
      },
      "video/vnd.sealed.swf": {
        source: "iana"
      },
      "video/vnd.sealedmedia.softseal.mov": {
        source: "iana"
      },
      "video/vnd.uvvu.mp4": {
        source: "iana",
        extensions: ["uvu", "uvvu"]
      },
      "video/vnd.vivo": {
        source: "iana",
        extensions: ["viv"]
      },
      "video/vnd.youtube.yt": {
        source: "iana"
      },
      "video/vp8": {
        source: "iana"
      },
      "video/vp9": {
        source: "iana"
      },
      "video/webm": {
        source: "apache",
        compressible: false,
        extensions: ["webm"]
      },
      "video/x-f4v": {
        source: "apache",
        extensions: ["f4v"]
      },
      "video/x-fli": {
        source: "apache",
        extensions: ["fli"]
      },
      "video/x-flv": {
        source: "apache",
        compressible: false,
        extensions: ["flv"]
      },
      "video/x-m4v": {
        source: "apache",
        extensions: ["m4v"]
      },
      "video/x-matroska": {
        source: "apache",
        compressible: false,
        extensions: ["mkv", "mk3d", "mks"]
      },
      "video/x-mng": {
        source: "apache",
        extensions: ["mng"]
      },
      "video/x-ms-asf": {
        source: "apache",
        extensions: ["asf", "asx"]
      },
      "video/x-ms-vob": {
        source: "apache",
        extensions: ["vob"]
      },
      "video/x-ms-wm": {
        source: "apache",
        extensions: ["wm"]
      },
      "video/x-ms-wmv": {
        source: "apache",
        compressible: false,
        extensions: ["wmv"]
      },
      "video/x-ms-wmx": {
        source: "apache",
        extensions: ["wmx"]
      },
      "video/x-ms-wvx": {
        source: "apache",
        extensions: ["wvx"]
      },
      "video/x-msvideo": {
        source: "apache",
        extensions: ["avi"]
      },
      "video/x-sgi-movie": {
        source: "apache",
        extensions: ["movie"]
      },
      "video/x-smv": {
        source: "apache",
        extensions: ["smv"]
      },
      "x-conference/x-cooltalk": {
        source: "apache",
        extensions: ["ice"]
      },
      "x-shader/x-fragment": {
        compressible: true
      },
      "x-shader/x-vertex": {
        compressible: true
      }
    };
  }
});

// ../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js
var require_mime_db = __commonJS({
  "../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js"(exports, module) {
    module.exports = require_db();
  }
});

// ../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js
var require_mime_types = __commonJS({
  "../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js"(exports) {
    "use strict";
    var db = require_mime_db();
    var extname = __require("path").extname;
    var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
    var TEXT_TYPE_REGEXP = /^text\//i;
    exports.charset = charset;
    exports.charsets = { lookup: charset };
    exports.contentType = contentType;
    exports.extension = extension;
    exports.extensions = /* @__PURE__ */ Object.create(null);
    exports.lookup = lookup;
    exports.types = /* @__PURE__ */ Object.create(null);
    populateMaps(exports.extensions, exports.types);
    function charset(type) {
      if (!type || typeof type !== "string") {
        return false;
      }
      var match = EXTRACT_TYPE_REGEXP.exec(type);
      var mime = match && db[match[1].toLowerCase()];
      if (mime && mime.charset) {
        return mime.charset;
      }
      if (match && TEXT_TYPE_REGEXP.test(match[1])) {
        return "UTF-8";
      }
      return false;
    }
    function contentType(str) {
      if (!str || typeof str !== "string") {
        return false;
      }
      var mime = str.indexOf("/") === -1 ? exports.lookup(str) : str;
      if (!mime) {
        return false;
      }
      if (mime.indexOf("charset") === -1) {
        var charset2 = exports.charset(mime);
        if (charset2) mime += "; charset=" + charset2.toLowerCase();
      }
      return mime;
    }
    function extension(type) {
      if (!type || typeof type !== "string") {
        return false;
      }
      var match = EXTRACT_TYPE_REGEXP.exec(type);
      var exts = match && exports.extensions[match[1].toLowerCase()];
      if (!exts || !exts.length) {
        return false;
      }
      return exts[0];
    }
    function lookup(path3) {
      if (!path3 || typeof path3 !== "string") {
        return false;
      }
      var extension2 = extname("x." + path3).toLowerCase().substr(1);
      if (!extension2) {
        return false;
      }
      return exports.types[extension2] || false;
    }
    function populateMaps(extensions2, types2) {
      var preference = ["nginx", "apache", void 0, "iana"];
      Object.keys(db).forEach(function forEachMimeType(type) {
        var mime = db[type];
        var exts = mime.extensions;
        if (!exts || !exts.length) {
          return;
        }
        extensions2[type] = exts;
        for (var i5 = 0; i5 < exts.length; i5++) {
          var extension2 = exts[i5];
          if (types2[extension2]) {
            var from = preference.indexOf(db[types2[extension2]].source);
            var to = preference.indexOf(mime.source);
            if (types2[extension2] !== "application/octet-stream" && (from > to || from === to && types2[extension2].substr(0, 12) === "application/")) {
              continue;
            }
          }
          types2[extension2] = type;
        }
      });
    }
  }
});

// ../../node_modules/.pnpm/@sapphire+async-queue@1.5.5/node_modules/@sapphire/async-queue/dist/cjs/index.cjs
var require_cjs6 = __commonJS({
  "../../node_modules/.pnpm/@sapphire+async-queue@1.5.5/node_modules/@sapphire/async-queue/dist/cjs/index.cjs"(exports) {
    "use strict";
    var __defProp3 = Object.defineProperty;
    var __defNormalProp2 = (obj, key, value2) => key in obj ? __defProp3(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
    var __name2 = (target, value2) => __defProp3(target, "name", { value: value2, configurable: true });
    var __publicField2 = (obj, key, value2) => __defNormalProp2(obj, typeof key !== "symbol" ? key + "" : key, value2);
    var _AsyncQueueEntry = class _AsyncQueueEntry {
      constructor(queue) {
        __publicField2(this, "promise");
        __publicField2(this, "resolve");
        __publicField2(this, "reject");
        __publicField2(this, "queue");
        __publicField2(this, "signal", null);
        __publicField2(this, "signalListener", null);
        this.queue = queue;
        this.promise = new Promise((resolve4, reject) => {
          this.resolve = resolve4;
          this.reject = reject;
        });
      }
      setSignal(signal) {
        if (signal.aborted) return this;
        this.signal = signal;
        this.signalListener = () => {
          const index2 = this.queue["promises"].indexOf(this);
          if (index2 !== -1) this.queue["promises"].splice(index2, 1);
          this.reject(new Error("Request aborted manually"));
        };
        this.signal.addEventListener("abort", this.signalListener);
        return this;
      }
      use() {
        this.dispose();
        this.resolve();
        return this;
      }
      abort() {
        this.dispose();
        this.reject(new Error("Request aborted manually"));
        return this;
      }
      dispose() {
        if (this.signal) {
          this.signal.removeEventListener("abort", this.signalListener);
          this.signal = null;
          this.signalListener = null;
        }
      }
    };
    __name2(_AsyncQueueEntry, "AsyncQueueEntry");
    var AsyncQueueEntry = _AsyncQueueEntry;
    var _AsyncQueue = class _AsyncQueue {
      constructor() {
        __publicField2(this, "promises", []);
      }
      /**
       * The amount of entries in the queue, including the head.
       * @seealso {@link queued} for the queued count.
       */
      get remaining() {
        return this.promises.length;
      }
      /**
       * The amount of queued entries.
       * @seealso {@link remaining} for the count with the head.
       */
      get queued() {
        return this.remaining === 0 ? 0 : this.remaining - 1;
      }
      /**
       * Waits for last promise and queues a new one
       * @example
       * ```typescript
       * const queue = new AsyncQueue();
       * async function request(url, options) {
       *     await queue.wait({ signal: options.signal });
       *     try {
       *         const result = await fetch(url, options);
       *         // Do some operations with 'result'
       *     } finally {
       *         // Remove first entry from the queue and resolve for the next entry
       *         queue.shift();
       *     }
       * }
       *
       * request(someUrl1, someOptions1); // Will call fetch() immediately
       * request(someUrl2, someOptions2); // Will call fetch() after the first finished
       * request(someUrl3, someOptions3); // Will call fetch() after the second finished
       * ```
       */
      wait(options) {
        const entry = new AsyncQueueEntry(this);
        if (this.promises.length === 0) {
          this.promises.push(entry);
          return Promise.resolve();
        }
        this.promises.push(entry);
        if (options?.signal) entry.setSignal(options.signal);
        return entry.promise;
      }
      /**
       * Unlocks the head lock and transfers the next lock (if any) to the head.
       */
      shift() {
        if (this.promises.length === 0) return;
        if (this.promises.length === 1) {
          this.promises.shift();
          return;
        }
        this.promises.shift();
        this.promises[0].use();
      }
      /**
       * Aborts all the pending promises.
       * @note To avoid race conditions, this does **not** unlock the head lock.
       */
      abortAll() {
        if (this.queued === 0) return;
        for (let i5 = 1; i5 < this.promises.length; ++i5) {
          this.promises[i5].abort();
        }
        this.promises.length = 1;
      }
    };
    __name2(_AsyncQueue, "AsyncQueue");
    var AsyncQueue = _AsyncQueue;
    exports.AsyncQueue = AsyncQueue;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/dataset/fs.js
var require_fs2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/dataset/fs.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DatasetFileSystemEntry = void 0;
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var async_queue_1 = require_cjs6();
    var fs_extra_1 = require_lib();
    var fs_utils_1 = require_fs_utils();
    var DatasetFileSystemEntry = class {
      constructor(options) {
        Object.defineProperty(this, "filePath", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "fsQueue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_queue_1.AsyncQueue()
        });
        this.filePath = (0, node_path_1.resolve)(options.storeDirectory, `${options.entityId}.json`);
      }
      async get() {
        await this.fsQueue.wait();
        try {
          return JSON.parse(await (0, promises_1.readFile)(this.filePath, "utf-8"));
        } finally {
          this.fsQueue.shift();
        }
      }
      async update(data2) {
        await this.fsQueue.wait();
        try {
          await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(this.filePath));
          await (0, fs_utils_1.lockAndWrite)(this.filePath, data2);
        } finally {
          this.fsQueue.shift();
        }
      }
      async delete() {
        await this.fsQueue.wait();
        await (0, promises_1.rm)(this.filePath, { force: true });
        this.fsQueue.shift();
      }
    };
    exports.DatasetFileSystemEntry = DatasetFileSystemEntry;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/consts.js
var require_consts = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/consts.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DEFAULT_API_PARAM_LIMIT = exports.StorageTypes = exports.REQUEST_ID_LENGTH = void 0;
    exports.REQUEST_ID_LENGTH = 15;
    var StorageTypes;
    (function(StorageTypes2) {
      StorageTypes2["RequestQueue"] = "Request queue";
      StorageTypes2["KeyValueStore"] = "Key-value store";
      StorageTypes2["Dataset"] = "Dataset";
    })(StorageTypes || (exports.StorageTypes = StorageTypes = {}));
    exports.DEFAULT_API_PARAM_LIMIT = 1e3;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/utils.js
var require_utils3 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.memoryStorageLog = void 0;
    exports.purgeNullsFromObject = purgeNullsFromObject;
    exports.uniqueKeyToRequestId = uniqueKeyToRequestId;
    exports.isBuffer = isBuffer4;
    exports.isStream = isStream3;
    exports.createPaginatedList = createPaginatedList;
    exports.createKeyList = createKeyList;
    exports.createKeyStringList = createKeyStringList;
    exports.createPaginatedEntryList = createPaginatedEntryList;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_crypto_1 = __require("node:crypto");
    var shapeshift_1 = require_cjs5();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var consts_1 = require_consts();
    function purgeNullsFromObject(object) {
      if (object && typeof object === "object" && !Array.isArray(object)) {
        for (const [key, value2] of Object.entries(object)) {
          if (value2 === null)
            Reflect.deleteProperty(object, key);
        }
      }
      return object;
    }
    function uniqueKeyToRequestId(uniqueKey) {
      const str = (0, node_crypto_1.createHash)("sha256").update(uniqueKey).digest("base64").replace(/(\+|\/|=)/g, "");
      return str.length > consts_1.REQUEST_ID_LENGTH ? str.slice(0, consts_1.REQUEST_ID_LENGTH) : str;
    }
    function isBuffer4(value2) {
      try {
        shapeshift_1.s.union(shapeshift_1.s.instance(Buffer), shapeshift_1.s.instance(ArrayBuffer), shapeshift_1.s.typedArray()).parse(value2);
        return true;
      } catch {
        return false;
      }
    }
    function isStream3(value2) {
      return typeof value2 === "object" && value2 && ["on", "pipe"].every((key) => key in value2 && typeof value2[key] === "function");
    }
    exports.memoryStorageLog = log_1.default.child({ prefix: "MemoryStorage" });
    function createPaginatedList(getPage, options = {}) {
      const offset2 = options.offset ?? 0;
      const firstPagePromise = getPage(offset2, options.limit ?? Infinity);
      async function* asyncGenerator() {
        let currentPage = await firstPagePromise;
        yield* currentPage.items;
        const limit = Math.min(options.limit ?? currentPage.total, currentPage.total);
        let currentOffset = offset2 + currentPage.items.length;
        let remainingItems = Math.min(currentPage.total - offset2, limit) - currentPage.items.length;
        while (currentPage.items.length > 0 && // Continue only if at least some items were returned in the last page.
        remainingItems > 0) {
          currentPage = await getPage(currentOffset, remainingItems);
          yield* currentPage.items;
          currentOffset += currentPage.items.length;
          remainingItems -= currentPage.items.length;
        }
      }
      return Object.defineProperty(firstPagePromise, Symbol.asyncIterator, {
        value: asyncGenerator
      });
    }
    function createKeyList(getPage, options = {}) {
      const firstPagePromise = getPage(options.exclusiveStartKey);
      async function* asyncGenerator() {
        let currentPage = await firstPagePromise;
        yield* currentPage.items;
        let remainingItems = options.limit ? options.limit - currentPage.items.length : void 0;
        while (currentPage.items.length > 0 && currentPage.nextExclusiveStartKey !== void 0 && (remainingItems === void 0 || remainingItems > 0)) {
          currentPage = await getPage(currentPage.nextExclusiveStartKey);
          yield* currentPage.items;
          if (remainingItems !== void 0) {
            remainingItems -= currentPage.items.length;
          }
        }
      }
      return Object.defineProperty(firstPagePromise, Symbol.asyncIterator, {
        value: asyncGenerator
      });
    }
    function createKeyStringList(getPage, options = {}) {
      const firstPagePromise = getPage(options.exclusiveStartKey);
      async function* asyncGenerator() {
        let currentPage = await firstPagePromise;
        for (const item of currentPage.items) {
          yield item.key;
        }
        let remainingItems = options.limit ? options.limit - currentPage.items.length : void 0;
        while (currentPage.items.length > 0 && currentPage.nextExclusiveStartKey !== void 0 && (remainingItems === void 0 || remainingItems > 0)) {
          currentPage = await getPage(currentPage.nextExclusiveStartKey);
          for (const item of currentPage.items) {
            yield item.key;
          }
          if (remainingItems !== void 0) {
            remainingItems -= currentPage.items.length;
          }
        }
      }
      return Object.defineProperty(firstPagePromise, Symbol.asyncIterator, {
        value: asyncGenerator
      });
    }
    function createPaginatedEntryList(getPage, options = {}) {
      const offset2 = options.offset ?? 0;
      const firstPagePromise = getPage(offset2, options.limit ?? Infinity).then((result) => ({
        ...result,
        items: result.items.map((item, i5) => [offset2 + i5, item])
      }));
      async function* asyncGenerator() {
        let currentIndex = offset2;
        for await (const item of createPaginatedList(getPage, options)) {
          yield [currentIndex++, item];
        }
      }
      return Object.defineProperty(firstPagePromise, Symbol.asyncIterator, {
        value: asyncGenerator
      });
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/key-value-store/fs.js
var require_fs3 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/key-value-store/fs.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.KeyValueFileSystemEntry = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var win32_1 = __require("node:path/win32");
    var async_queue_1 = require_cjs6();
    var fs_extra_1 = require_lib();
    var mime_types_1 = tslib_1.__importDefault(require_mime_types());
    var fs_utils_1 = require_fs_utils();
    var utils_1 = require_utils3();
    var KeyValueFileSystemEntry = class {
      constructor(options) {
        Object.defineProperty(this, "storeDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "writeMetadata", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "filePath", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "fileMetadataPath", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "rawRecord", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "fsQueue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_queue_1.AsyncQueue()
        });
        this.storeDirectory = options.storeDirectory;
        this.writeMetadata = options.writeMetadata;
      }
      async get() {
        await this.fsQueue.wait();
        let file;
        try {
          file = await (0, promises_1.readFile)(this.filePath);
        } catch {
          try {
            file = await (0, promises_1.readFile)((0, node_path_1.resolve)(this.storeDirectory, this.rawRecord.key));
            utils_1.memoryStorageLog.warning([
              `Key-value entry "${this.rawRecord.key}" for store ${(0, win32_1.basename)(this.storeDirectory)} does not have a file extension, assuming it as text.`,
              "If you want to have correct interpretation of the file, you should add a file extension to the entry."
            ].join("\n"));
            file = file.toString("utf-8");
          } catch {
            throw new Error(`Could not find file at ${this.filePath}`);
          }
        } finally {
          this.fsQueue.shift();
        }
        return {
          ...this.rawRecord,
          value: file
        };
      }
      async update(data2) {
        await this.fsQueue.wait();
        const contentType = mime_types_1.default.contentType(data2.key);
        const fileName = (
          // the content type might include charset, e.g. `text/html; charset=utf-8`, so we check via `startsWith` instead of `===`
          contentType && data2.contentType && contentType.startsWith(data2.contentType) ? data2.key : `${data2.key}.${data2.extension}`
        );
        this.filePath ?? (this.filePath = (0, node_path_1.resolve)(this.storeDirectory, fileName));
        this.fileMetadataPath ?? (this.fileMetadataPath = (0, node_path_1.resolve)(this.storeDirectory, `${data2.key}.__metadata__.json`));
        const { value: value2, ...rest } = data2;
        this.rawRecord = rest;
        try {
          await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(this.filePath));
          await (0, fs_utils_1.lockAndWrite)(this.filePath, value2, false);
          if (this.writeMetadata) {
            await (0, fs_utils_1.lockAndWrite)(this.fileMetadataPath, JSON.stringify(rest), true);
          }
        } finally {
          this.fsQueue.shift();
        }
      }
      async delete() {
        await this.fsQueue.wait();
        await (0, promises_1.rm)(this.filePath, { force: true });
        await (0, promises_1.rm)(this.fileMetadataPath, { force: true });
        this.fsQueue.shift();
      }
    };
    exports.KeyValueFileSystemEntry = KeyValueFileSystemEntry;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/request-queue/fs.js
var require_fs4 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/request-queue/fs.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RequestQueueFileSystemEntry = void 0;
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var async_queue_1 = require_cjs6();
    var fs_extra_1 = require_lib();
    var fs_utils_1 = require_fs_utils();
    var RequestQueueFileSystemEntry = class {
      constructor(options) {
        Object.defineProperty(this, "filePath", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "fsQueue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_queue_1.AsyncQueue()
        });
        Object.defineProperty(this, "data", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "directoryExists", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "sweepTimeout", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "orderNo", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.filePath = (0, node_path_1.resolve)(options.storeDirectory, `${options.requestId}.json`);
      }
      async get(force = false) {
        await this.fsQueue.wait();
        this.setOrRefreshSweepTimeout();
        if (this.data && !force) {
          this.fsQueue.shift();
          return this.data;
        }
        try {
          return await (0, fs_utils_1.lockAndCallback)(this.filePath, async () => {
            const req = JSON.parse(await (0, promises_1.readFile)(this.filePath, "utf-8"));
            this.data = req;
            this.orderNo = req.orderNo;
            return req;
          });
        } finally {
          this.fsQueue.shift();
        }
      }
      async update(data2) {
        await this.fsQueue.wait();
        this.data = data2;
        try {
          if (!this.directoryExists) {
            await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(this.filePath));
            this.directoryExists = true;
          }
          await (0, fs_utils_1.lockAndWrite)(this.filePath, data2);
          this.orderNo = data2.orderNo;
        } finally {
          this.setOrRefreshSweepTimeout();
          this.fsQueue.shift();
        }
      }
      async delete() {
        await this.fsQueue.wait();
        await (0, promises_1.rm)(this.filePath, { force: true });
        this.fsQueue.shift();
      }
      setOrRefreshSweepTimeout() {
        if (this.sweepTimeout) {
          this.sweepTimeout.refresh();
        } else {
          this.sweepTimeout = setTimeout(() => {
            this.sweepTimeout = void 0;
            this.data = void 0;
          }, 6e4).unref();
        }
      }
    };
    exports.RequestQueueFileSystemEntry = RequestQueueFileSystemEntry;
  }
});

// ../../node_modules/.pnpm/content-type@1.0.5/node_modules/content-type/index.js
var require_content_type = __commonJS({
  "../../node_modules/.pnpm/content-type@1.0.5/node_modules/content-type/index.js"(exports) {
    "use strict";
    var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g;
    var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/;
    var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
    var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g;
    var QUOTE_REGEXP = /([\\"])/g;
    var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
    exports.format = format;
    exports.parse = parse3;
    function format(obj) {
      if (!obj || typeof obj !== "object") {
        throw new TypeError("argument obj is required");
      }
      var parameters = obj.parameters;
      var type = obj.type;
      if (!type || !TYPE_REGEXP.test(type)) {
        throw new TypeError("invalid type");
      }
      var string = type;
      if (parameters && typeof parameters === "object") {
        var param;
        var params = Object.keys(parameters).sort();
        for (var i5 = 0; i5 < params.length; i5++) {
          param = params[i5];
          if (!TOKEN_REGEXP.test(param)) {
            throw new TypeError("invalid parameter name");
          }
          string += "; " + param + "=" + qstring(parameters[param]);
        }
      }
      return string;
    }
    function parse3(string) {
      if (!string) {
        throw new TypeError("argument string is required");
      }
      var header = typeof string === "object" ? getcontenttype(string) : string;
      if (typeof header !== "string") {
        throw new TypeError("argument string is required to be a string");
      }
      var index2 = header.indexOf(";");
      var type = index2 !== -1 ? header.slice(0, index2).trim() : header.trim();
      if (!TYPE_REGEXP.test(type)) {
        throw new TypeError("invalid media type");
      }
      var obj = new ContentType(type.toLowerCase());
      if (index2 !== -1) {
        var key;
        var match;
        var value2;
        PARAM_REGEXP.lastIndex = index2;
        while (match = PARAM_REGEXP.exec(header)) {
          if (match.index !== index2) {
            throw new TypeError("invalid parameter format");
          }
          index2 += match[0].length;
          key = match[1].toLowerCase();
          value2 = match[2];
          if (value2.charCodeAt(0) === 34) {
            value2 = value2.slice(1, -1);
            if (value2.indexOf("\\") !== -1) {
              value2 = value2.replace(QESC_REGEXP, "$1");
            }
          }
          obj.parameters[key] = value2;
        }
        if (index2 !== header.length) {
          throw new TypeError("invalid parameter format");
        }
      }
      return obj;
    }
    function getcontenttype(obj) {
      var header;
      if (typeof obj.getHeader === "function") {
        header = obj.getHeader("content-type");
      } else if (typeof obj.headers === "object") {
        header = obj.headers && obj.headers["content-type"];
      }
      if (typeof header !== "string") {
        throw new TypeError("content-type header is missing from object");
      }
      return header;
    }
    function qstring(val) {
      var str = String(val);
      if (TOKEN_REGEXP.test(str)) {
        return str;
      }
      if (str.length > 0 && !TEXT_REGEXP.test(str)) {
        throw new TypeError("invalid parameter value");
      }
      return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"';
    }
    function ContentType(type) {
      this.parameters = /* @__PURE__ */ Object.create(null);
      this.type = type;
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/body-parser.js
var require_body_parser = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/body-parser.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.maybeParseBody = maybeParseBody;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var content_type_1 = tslib_1.__importDefault(require_content_type());
    var json5_1 = tslib_1.__importDefault(require_lib2());
    var CONTENT_TYPE_JSON = "application/json";
    var STRINGIFIABLE_CONTENT_TYPE_RXS = [new RegExp(`^${CONTENT_TYPE_JSON}$`, "i"), /^application\/.*xml$/i, /^text\//i];
    function maybeParseBody(body, contentTypeHeader) {
      let contentType;
      let charset;
      try {
        const result = content_type_1.default.parse(contentTypeHeader);
        contentType = result.type;
        charset = result.parameters.charset;
      } catch {
        return body;
      }
      if (!areDataStringifiable(contentType, charset))
        return body;
      const dataString = isomorphicBufferToString(body, charset);
      return contentType === CONTENT_TYPE_JSON ? json5_1.default.parse(dataString) : dataString;
    }
    function isomorphicBufferToString(buffer, encoding) {
      if (buffer.constructor.name !== ArrayBuffer.name) {
        return buffer.toString(encoding);
      }
      const utf8decoder = new TextDecoder();
      return utf8decoder.decode(new Uint8Array(buffer));
    }
    function isCharsetStringifiable(charset) {
      if (!charset)
        return true;
      return Buffer.isEncoding(charset);
    }
    function isContentTypeStringifiable(contentType) {
      if (!contentType)
        return false;
      return STRINGIFIABLE_CONTENT_TYPE_RXS.some((rx) => rx.test(contentType));
    }
    function areDataStringifiable(contentType, charset) {
      return isContentTypeStringifiable(contentType) && isCharsetStringifiable(charset);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/key-value-store/memory.js
var require_memory = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/key-value-store/memory.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.KeyValueMemoryEntry = void 0;
    var KeyValueMemoryEntry = class {
      constructor() {
        Object.defineProperty(this, "data", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
      }
      async get() {
        return this.data;
      }
      update(data2) {
        this.data = data2;
      }
      delete() {
      }
    };
    exports.KeyValueMemoryEntry = KeyValueMemoryEntry;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/key-value-store/index.js
var require_key_value_store = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/key-value-store/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.createKeyValueStorageImplementation = createKeyValueStorageImplementation;
    var fs_1 = require_fs3();
    var memory_1 = require_memory();
    function createKeyValueStorageImplementation(options) {
      if (options.persistStorage) {
        return new fs_1.KeyValueFileSystemEntry(options);
      }
      return new memory_1.KeyValueMemoryEntry();
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/common/base-client.js
var require_base_client = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/common/base-client.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BaseClient = void 0;
    var BaseClient = class {
      constructor(id) {
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.id = id;
      }
      throwOnNonExisting(clientType) {
        throw new Error(`${clientType} with id: ${this.id} does not exist.`);
      }
      throwOnDuplicateEntry(clientType, keyName, value2) {
        throw new Error(`${clientType} with ${keyName}: ${value2} already exists.`);
      }
    };
    exports.BaseClient = BaseClient;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/key-value-store.js
var require_key_value_store2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/key-value-store.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.KeyValueStoreClient = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_crypto_1 = __require("node:crypto");
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var node_stream_1 = __require("node:stream");
    var shapeshift_1 = require_cjs5();
    var fs_extra_1 = require_lib();
    var mime_types_1 = tslib_1.__importDefault(require_mime_types());
    var background_handler_1 = require_background_handler();
    var body_parser_1 = require_body_parser();
    var cache_helpers_1 = require_cache_helpers();
    var consts_1 = require_consts();
    var key_value_store_1 = require_key_value_store();
    var utils_1 = require_utils3();
    var base_client_1 = require_base_client();
    var DEFAULT_LOCAL_FILE_EXTENSION = "bin";
    var KeyValueStoreClient = class extends base_client_1.BaseClient {
      constructor(options) {
        super(options.id ?? (0, node_crypto_1.randomUUID)());
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "createdAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "accessedAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "modifiedAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "keyValueStoreDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keyValueEntries", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.name = options.name;
        this.keyValueStoreDirectory = (0, node_path_1.resolve)(options.baseStorageDirectory, this.name ?? this.id);
        this.client = options.client;
      }
      async get() {
        const found = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (found) {
          found.updateTimestamps(false);
          return found.toKeyValueStoreInfo();
        }
        return void 0;
      }
      async update(newFields = {}) {
        const parsed = shapeshift_1.s.object({
          name: shapeshift_1.s.string.lengthGreaterThan(0).optional
        }).parse(newFields);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.KeyValueStore);
        }
        if (!parsed.name) {
          return existingStoreById.toKeyValueStoreInfo();
        }
        const existingStoreByName = this.client.keyValueStoresHandled.find((store) => store.name?.toLowerCase() === parsed.name.toLowerCase());
        if (existingStoreByName) {
          this.throwOnDuplicateEntry(consts_1.StorageTypes.KeyValueStore, "name", parsed.name);
        }
        existingStoreById.name = parsed.name;
        const previousDir = existingStoreById.keyValueStoreDirectory;
        existingStoreById.keyValueStoreDirectory = (0, node_path_1.resolve)(this.client.keyValueStoresDirectory, parsed.name ?? existingStoreById.name ?? existingStoreById.id);
        await (0, fs_extra_1.move)(previousDir, existingStoreById.keyValueStoreDirectory, { overwrite: true });
        existingStoreById.updateTimestamps(true);
        return existingStoreById.toKeyValueStoreInfo();
      }
      async delete() {
        const storeIndex = this.client.keyValueStoresHandled.findIndex((store) => store.id === this.id);
        if (storeIndex !== -1) {
          const [oldClient] = this.client.keyValueStoresHandled.splice(storeIndex, 1);
          oldClient.keyValueEntries.clear();
          await (0, promises_1.rm)(oldClient.keyValueStoreDirectory, { recursive: true, force: true });
        }
      }
      listKeys(options = {}) {
        const { limit, exclusiveStartKey, prefix } = shapeshift_1.s.object({
          limit: shapeshift_1.s.number.greaterThan(0).optional,
          exclusiveStartKey: shapeshift_1.s.string.optional,
          collection: shapeshift_1.s.string.optional,
          // This is ignored, but kept for validation consistency with API client.
          prefix: shapeshift_1.s.string.optional
        }).parse(options);
        return (0, utils_1.createKeyList)((pageExclusiveStartKey) => this.listKeysPage({
          limit: limit ?? consts_1.DEFAULT_API_PARAM_LIMIT,
          exclusiveStartKey: pageExclusiveStartKey,
          prefix
        }), { exclusiveStartKey, limit });
      }
      keys(options = {}) {
        const { limit, exclusiveStartKey, prefix } = shapeshift_1.s.object({
          limit: shapeshift_1.s.number.greaterThan(0).optional,
          exclusiveStartKey: shapeshift_1.s.string.optional,
          collection: shapeshift_1.s.string.optional,
          prefix: shapeshift_1.s.string.optional
        }).parse(options);
        return (0, utils_1.createKeyStringList)((pageExclusiveStartKey) => this.listKeysPage({
          limit: limit ?? consts_1.DEFAULT_API_PARAM_LIMIT,
          exclusiveStartKey: pageExclusiveStartKey,
          prefix
        }), { exclusiveStartKey, limit });
      }
      values(options = {}) {
        const keys2 = this.keys.bind(this);
        const getRecord = this.getRecord.bind(this);
        const limit = options.limit;
        const firstPageKeysPromise = keys2(options);
        const firstPageValuesPromise = (async () => {
          const firstPageKeys = await firstPageKeysPromise;
          const values = [];
          for (const item of firstPageKeys.items) {
            if (limit !== void 0 && values.length >= limit)
              break;
            const record = await getRecord(item.key);
            if (record) {
              values.push(record.value);
            }
          }
          return values;
        })();
        async function* asyncGenerator() {
          const firstPageValues = await firstPageValuesPromise;
          let yielded = 0;
          for (const value2 of firstPageValues) {
            if (limit !== void 0 && yielded >= limit)
              return;
            yield value2;
            yielded++;
          }
          const firstPageKeys = await firstPageKeysPromise;
          if (firstPageKeys.nextExclusiveStartKey && (limit === void 0 || yielded < limit)) {
            for await (const key of keys2({ ...options, exclusiveStartKey: firstPageKeys.nextExclusiveStartKey })) {
              if (limit !== void 0 && yielded >= limit)
                return;
              const record = await getRecord(key);
              if (record) {
                yield record.value;
                yielded++;
              }
            }
          }
        }
        return Object.defineProperty(firstPageValuesPromise, Symbol.asyncIterator, {
          value: asyncGenerator
        });
      }
      entries(options = {}) {
        const keys2 = this.keys.bind(this);
        const getRecord = this.getRecord.bind(this);
        const limit = options.limit;
        const firstPageKeysPromise = keys2(options);
        const firstPageEntriesPromise = (async () => {
          const firstPageKeys = await firstPageKeysPromise;
          const entries3 = [];
          for (const item of firstPageKeys.items) {
            if (limit !== void 0 && entries3.length >= limit)
              break;
            const record = await getRecord(item.key);
            if (record) {
              entries3.push([item.key, record.value]);
            }
          }
          return entries3;
        })();
        async function* asyncGenerator() {
          const firstPageEntries = await firstPageEntriesPromise;
          let yielded = 0;
          for (const entry of firstPageEntries) {
            if (limit !== void 0 && yielded >= limit)
              return;
            yield entry;
            yielded++;
          }
          const firstPageKeys = await firstPageKeysPromise;
          if (firstPageKeys.nextExclusiveStartKey && (limit === void 0 || yielded < limit)) {
            for await (const key of keys2({ ...options, exclusiveStartKey: firstPageKeys.nextExclusiveStartKey })) {
              if (limit !== void 0 && yielded >= limit)
                return;
              const record = await getRecord(key);
              if (record) {
                yield [key, record.value];
                yielded++;
              }
            }
          }
        }
        return Object.defineProperty(firstPageEntriesPromise, Symbol.asyncIterator, {
          value: asyncGenerator
        });
      }
      async listKeysPage(options = {}) {
        const { limit = consts_1.DEFAULT_API_PARAM_LIMIT, exclusiveStartKey, prefix } = options;
        const existingStoreById = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.KeyValueStore);
        }
        const items = [];
        for (const storageEntry of existingStoreById.keyValueEntries.values()) {
          const record = await storageEntry.get();
          const size = Buffer.byteLength(record.value);
          items.push({
            key: record.key,
            size
          });
        }
        items.sort((a5, b3) => {
          return a5.key.localeCompare(b3.key);
        });
        const filteredItems = items.filter((item) => !prefix || item.key.startsWith(prefix));
        let truncatedItems = filteredItems;
        if (exclusiveStartKey) {
          const keyPos = filteredItems.findIndex((item) => item.key === exclusiveStartKey);
          if (keyPos !== -1)
            truncatedItems = filteredItems.slice(keyPos + 1);
        }
        const limitedItems = truncatedItems.slice(0, limit);
        const lastItemInStore = filteredItems.at(-1);
        const lastSelectedItem = limitedItems.at(-1);
        const isLastSelectedItemAbsolutelyLast = lastItemInStore === lastSelectedItem;
        const nextExclusiveStartKey = isLastSelectedItemAbsolutelyLast ? void 0 : lastSelectedItem?.key;
        existingStoreById.updateTimestamps(false);
        return {
          count: limitedItems.length,
          limit,
          exclusiveStartKey,
          isTruncated: !isLastSelectedItemAbsolutelyLast,
          nextExclusiveStartKey,
          items: limitedItems
        };
      }
      /**
       * Tests whether a record with the given key exists in the key-value store without retrieving its value.
       *
       * @param key The queried record key.
       * @returns `true` if the record exists, `false` if it does not.
       */
      async recordExists(key) {
        shapeshift_1.s.string.parse(key);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.KeyValueStore);
        }
        return existingStoreById.keyValueEntries.has(key);
      }
      async getRecord(key, options = {}) {
        shapeshift_1.s.string.parse(key);
        shapeshift_1.s.object({
          buffer: shapeshift_1.s.boolean.optional,
          // These options are ignored, but kept here
          // for validation consistency with API client.
          stream: shapeshift_1.s.boolean.optional,
          disableRedirect: shapeshift_1.s.boolean.optional
        }).parse(options);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.KeyValueStore);
        }
        const storageEntry = existingStoreById.keyValueEntries.get(key);
        if (!storageEntry) {
          return void 0;
        }
        const entry = await storageEntry.get();
        const record = {
          key: entry.key,
          value: entry.value,
          contentType: entry.contentType ?? mime_types_1.default.contentType(entry.extension)
        };
        if (options.stream) {
          record.value = node_stream_1.Readable.from(record.value);
        } else if (options.buffer) {
          record.value = Buffer.from(record.value);
        } else {
          record.value = (0, body_parser_1.maybeParseBody)(record.value, record.contentType);
        }
        existingStoreById.updateTimestamps(false);
        return record;
      }
      async setRecord(record) {
        shapeshift_1.s.object({
          key: shapeshift_1.s.string.lengthGreaterThan(0),
          value: shapeshift_1.s.union(
            shapeshift_1.s.null,
            shapeshift_1.s.string,
            shapeshift_1.s.number,
            shapeshift_1.s.instance(Buffer),
            shapeshift_1.s.instance(ArrayBuffer),
            shapeshift_1.s.typedArray(),
            // disabling validation will make shapeshift only check the object given is an actual object, not null, nor array
            shapeshift_1.s.object({}).setValidationEnabled(false)
          ),
          contentType: shapeshift_1.s.string.lengthGreaterThan(0).optional
        }).parse(record);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.KeyValueStore);
        }
        const { key } = record;
        let { value: value2, contentType } = record;
        const valueIsStream = (0, utils_1.isStream)(value2);
        const isValueStreamOrBuffer = valueIsStream || (0, utils_1.isBuffer)(value2);
        if (!contentType) {
          if (isValueStreamOrBuffer)
            contentType = "application/octet-stream";
          else if (typeof value2 === "string")
            contentType = "text/plain; charset=utf-8";
          else
            contentType = "application/json; charset=utf-8";
        }
        const extension = mime_types_1.default.extension(contentType) || DEFAULT_LOCAL_FILE_EXTENSION;
        const isContentTypeJson = extension === "json";
        if (isContentTypeJson && !isValueStreamOrBuffer && typeof value2 !== "string") {
          try {
            value2 = JSON.stringify(value2, null, 2);
          } catch (err2) {
            const msg = `The record value cannot be stringified to JSON. Please provide other content type.
Cause: ${err2.message}`;
            throw new Error(msg);
          }
        }
        if (valueIsStream) {
          const chunks = [];
          for await (const chunk3 of value2) {
            chunks.push(chunk3);
          }
          value2 = Buffer.concat(chunks);
        }
        const _record = {
          extension,
          key,
          value: value2,
          contentType
        };
        const entry = (0, key_value_store_1.createKeyValueStorageImplementation)({
          persistStorage: this.client.persistStorage,
          storeDirectory: existingStoreById.keyValueStoreDirectory,
          writeMetadata: existingStoreById.client.writeMetadata
        });
        await entry.update(_record);
        existingStoreById.keyValueEntries.set(key, entry);
        existingStoreById.updateTimestamps(true);
      }
      async deleteRecord(key) {
        shapeshift_1.s.string.parse(key);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.KeyValueStore);
        }
        const entry = existingStoreById.keyValueEntries.get(key);
        if (entry) {
          existingStoreById.keyValueEntries.delete(key);
          existingStoreById.updateTimestamps(true);
          await entry.delete();
        }
      }
      toKeyValueStoreInfo() {
        return {
          id: this.id,
          name: this.name,
          accessedAt: this.accessedAt,
          createdAt: this.createdAt,
          modifiedAt: this.modifiedAt,
          userId: "1"
        };
      }
      updateTimestamps(hasBeenModified) {
        this.accessedAt = /* @__PURE__ */ new Date();
        if (hasBeenModified) {
          this.modifiedAt = /* @__PURE__ */ new Date();
        }
        const data2 = this.toKeyValueStoreInfo();
        (0, background_handler_1.scheduleBackgroundTask)({
          action: "update-metadata",
          data: data2,
          entityType: "keyValueStores",
          entityDirectory: this.keyValueStoreDirectory,
          id: this.name ?? this.id,
          writeMetadata: this.client.writeMetadata,
          persistStorage: this.client.persistStorage
        });
      }
    };
    exports.KeyValueStoreClient = KeyValueStoreClient;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/request-queue/memory.js
var require_memory2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/request-queue/memory.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RequestQueueMemoryEntry = void 0;
    var RequestQueueMemoryEntry = class {
      constructor() {
        Object.defineProperty(this, "data", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "orderNo", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
      }
      async get() {
        return this.data;
      }
      update(data2) {
        this.data = data2;
        this.orderNo = data2.orderNo;
      }
      delete() {
      }
    };
    exports.RequestQueueMemoryEntry = RequestQueueMemoryEntry;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/request-queue/index.js
var require_request_queue = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/request-queue/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.createRequestQueueStorageImplementation = createRequestQueueStorageImplementation;
    var fs_1 = require_fs4();
    var memory_1 = require_memory2();
    function createRequestQueueStorageImplementation(options) {
      if (options.persistStorage) {
        return new fs_1.RequestQueueFileSystemEntry(options);
      }
      return new memory_1.RequestQueueMemoryEntry();
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/request-queue.js
var require_request_queue2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/request-queue.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RequestQueueClient = void 0;
    var node_crypto_1 = __require("node:crypto");
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var async_queue_1 = require_cjs6();
    var shapeshift_1 = require_cjs5();
    var fs_extra_1 = require_lib();
    var background_handler_1 = require_background_handler();
    var cache_helpers_1 = require_cache_helpers();
    var consts_1 = require_consts();
    var request_queue_1 = require_request_queue();
    var utils_1 = require_utils3();
    var base_client_1 = require_base_client();
    var requestShape = shapeshift_1.s.object({
      id: shapeshift_1.s.string,
      url: shapeshift_1.s.string.url({ allowedProtocols: ["http:", "https:"] }),
      uniqueKey: shapeshift_1.s.string,
      method: shapeshift_1.s.string.optional,
      retryCount: shapeshift_1.s.number.int.optional,
      handledAt: shapeshift_1.s.union(shapeshift_1.s.string, shapeshift_1.s.date.valid).optional
    }).passthrough;
    var requestShapeWithoutId = requestShape.omit(["id"]);
    var batchRequestShapeWithoutId = requestShapeWithoutId.array;
    var requestOptionsShape = shapeshift_1.s.object({
      forefront: shapeshift_1.s.boolean.optional
    });
    var RequestQueueClient = class extends base_client_1.BaseClient {
      constructor(options) {
        super(options.id ?? (0, node_crypto_1.randomUUID)());
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "createdAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "accessedAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "modifiedAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "handledRequestCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "pendingRequestCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "requestQueueDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "mutex", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_queue_1.AsyncQueue()
        });
        Object.defineProperty(this, "forefrontRequestIds", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "requests", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.name = options.name;
        this.requestQueueDirectory = (0, node_path_1.resolve)(options.baseStorageDirectory, this.name ?? this.id);
        this.client = options.client;
      }
      async getQueue() {
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        existingQueueById.updateTimestamps(false);
        return existingQueueById;
      }
      async get() {
        const found = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (found) {
          found.updateTimestamps(false);
          return found.toRequestQueueInfo();
        }
        return void 0;
      }
      async update(newFields) {
        const parsed = shapeshift_1.s.object({
          name: shapeshift_1.s.string.lengthGreaterThan(0).optional
        }).passthrough.parse(newFields);
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        if (!parsed.name) {
          return existingQueueById.toRequestQueueInfo();
        }
        const existingQueueByName = this.client.requestQueuesHandled.find((queue) => queue.name?.toLowerCase() === parsed.name.toLowerCase());
        if (existingQueueByName) {
          this.throwOnDuplicateEntry(consts_1.StorageTypes.RequestQueue, "name", parsed.name);
        }
        existingQueueById.name = parsed.name;
        const previousDir = existingQueueById.requestQueueDirectory;
        existingQueueById.requestQueueDirectory = (0, node_path_1.resolve)(this.client.requestQueuesDirectory, parsed.name ?? existingQueueById.name ?? existingQueueById.id);
        await (0, fs_extra_1.move)(previousDir, existingQueueById.requestQueueDirectory, { overwrite: true });
        existingQueueById.updateTimestamps(true);
        return existingQueueById.toRequestQueueInfo();
      }
      async delete() {
        const storeIndex = this.client.requestQueuesHandled.findIndex((queue) => queue.id === this.id);
        if (storeIndex !== -1) {
          const [oldClient] = this.client.requestQueuesHandled.splice(storeIndex, 1);
          oldClient.pendingRequestCount = 0;
          oldClient.requests.clear();
          await (0, promises_1.rm)(oldClient.requestQueueDirectory, { recursive: true, force: true });
        }
      }
      *requestKeyIterator(rqClient) {
        for (let i5 = this.forefrontRequestIds.length - 1; i5 >= 0; i5--) {
          yield this.forefrontRequestIds[i5];
        }
        for (const key of rqClient.requests.keys()) {
          yield key;
        }
      }
      async listHead(options = {}) {
        const { limit } = shapeshift_1.s.object({
          limit: shapeshift_1.s.number.optional.default(100)
        }).parse(options);
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        existingQueueById.updateTimestamps(false);
        const items = [];
        const seenRequestIds = /* @__PURE__ */ new Set();
        const handledForefrontIds = /* @__PURE__ */ new Set();
        for (const requestId of this.requestKeyIterator(existingQueueById)) {
          if (items.length === limit) {
            break;
          }
          if (seenRequestIds.has(requestId)) {
            continue;
          }
          seenRequestIds.add(requestId);
          const storageEntry = existingQueueById.requests.get(requestId);
          let { orderNo } = storageEntry;
          let loaded;
          if (typeof orderNo === "undefined") {
            loaded = await storageEntry.get();
            orderNo = loaded.orderNo;
          }
          if (orderNo) {
            items.push(await storageEntry.get());
          } else if (this.forefrontRequestIds.includes(requestId)) {
            handledForefrontIds.add(requestId);
          }
        }
        this.forefrontRequestIds = this.forefrontRequestIds.filter((id) => !handledForefrontIds.has(id));
        return {
          limit,
          hadMultipleClients: false,
          queueModifiedAt: existingQueueById.modifiedAt,
          items: items.sort((a5, b3) => a5.orderNo - b3.orderNo).map(({ json }) => this._jsonToRequest(json))
        };
      }
      async listAndLockHead(options) {
        const { limit, lockSecs } = shapeshift_1.s.object({
          limit: shapeshift_1.s.number.lessThanOrEqual(25).optional.default(25),
          lockSecs: shapeshift_1.s.number
        }).parse(options);
        const queue = await this.getQueue();
        const start2 = Date.now();
        const isLocked = (request) => !request.orderNo || request.orderNo > start2 || request.orderNo < -start2;
        const items = [];
        await queue.mutex.wait();
        try {
          const seenRequestIds = /* @__PURE__ */ new Set();
          const handledForefrontIds = /* @__PURE__ */ new Set();
          for (const requestId of this.requestKeyIterator(queue)) {
            if (items.length === limit) {
              break;
            }
            if (seenRequestIds.has(requestId)) {
              continue;
            }
            seenRequestIds.add(requestId);
            const storageEntry = queue.requests.get(requestId);
            if (storageEntry.orderNo === null) {
              if (this.forefrontRequestIds.includes(requestId)) {
                handledForefrontIds.add(requestId);
              }
              continue;
            }
            const request = await storageEntry.get(true);
            if (isLocked(request)) {
              continue;
            }
            request.orderNo = (start2 + lockSecs * 1e3) * (request.orderNo > 0 ? 1 : -1);
            await storageEntry.update(request);
            items.push(request);
          }
          this.forefrontRequestIds = this.forefrontRequestIds.filter((id) => !handledForefrontIds.has(id));
          return {
            limit,
            lockSecs,
            hadMultipleClients: false,
            queueModifiedAt: queue.modifiedAt,
            items: items.map(({ json }) => this._jsonToRequest(json))
          };
        } finally {
          queue.mutex.shift();
        }
      }
      async prolongRequestLock(id, options) {
        shapeshift_1.s.string.parse(id);
        const { lockSecs, forefront } = shapeshift_1.s.object({
          lockSecs: shapeshift_1.s.number,
          forefront: shapeshift_1.s.boolean.optional.default(false)
        }).parse(options);
        const queue = await this.getQueue();
        const request = queue.requests.get(id);
        const internalRequest = await request?.get();
        if (!internalRequest) {
          throw new Error(`Request with ID ${id} not found in queue ${queue.name ?? queue.id}`);
        }
        const canProlong = (r4) => !!r4.orderNo;
        if (!canProlong(internalRequest)) {
          throw new Error(`Request with ID ${id} has already been handled in queue ${queue.name ?? queue.id}`);
        }
        const unlockTimestamp = Math.abs(internalRequest.orderNo) + lockSecs * 1e3;
        internalRequest.orderNo = forefront ? -unlockTimestamp : unlockTimestamp;
        await request?.update(internalRequest);
        if (forefront)
          this.forefrontRequestIds.push(id);
        return {
          lockExpiresAt: new Date(unlockTimestamp)
        };
      }
      async deleteRequestLock(id, options = {}) {
        shapeshift_1.s.string.parse(id);
        const { forefront } = shapeshift_1.s.object({
          forefront: shapeshift_1.s.boolean.optional.default(false)
        }).parse(options);
        const queue = await this.getQueue();
        const request = queue.requests.get(id);
        const internalRequest = await request?.get();
        if (!internalRequest) {
          throw new Error(`Request with ID ${id} not found in queue ${queue.name ?? queue.id}`);
        }
        const start2 = Date.now();
        const isLocked = (r4) => r4.orderNo && (r4.orderNo > start2 || r4.orderNo < -start2);
        if (!isLocked(internalRequest)) {
          throw new Error(`Request with ID ${id} is not locked in queue ${queue.name ?? queue.id}`);
        }
        internalRequest.orderNo = forefront ? -start2 : start2;
        if (forefront)
          this.forefrontRequestIds.push(id);
        await request?.update(internalRequest);
      }
      async addRequest(request, options = {}) {
        requestShapeWithoutId.parse(request);
        requestOptionsShape.parse(options);
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        const requestModel = this._createInternalRequest(request, options.forefront);
        const existingRequestWithIdEntry = existingQueueById.requests.get(requestModel.id);
        if (existingRequestWithIdEntry) {
          const existingRequestWithId = await existingRequestWithIdEntry.get();
          existingQueueById.updateTimestamps(false);
          return {
            requestId: existingRequestWithId.id,
            wasAlreadyHandled: existingRequestWithId.orderNo === null,
            wasAlreadyPresent: true
          };
        }
        const newEntry = (0, request_queue_1.createRequestQueueStorageImplementation)({
          persistStorage: existingQueueById.client.persistStorage,
          requestId: requestModel.id,
          storeDirectory: existingQueueById.requestQueueDirectory
        });
        await newEntry.update(requestModel);
        existingQueueById.requests.set(requestModel.id, newEntry);
        existingQueueById.updateTimestamps(true);
        if (requestModel.orderNo) {
          existingQueueById.pendingRequestCount += 1;
        } else {
          existingQueueById.handledRequestCount += 1;
        }
        if (options.forefront) {
          this.forefrontRequestIds.push(requestModel.id);
        }
        return {
          requestId: requestModel.id,
          // We return wasAlreadyHandled: false even though the request may
          // have been added as handled, because that's how API behaves.
          wasAlreadyHandled: false,
          wasAlreadyPresent: false
        };
      }
      async batchAddRequests(requests, options = {}) {
        batchRequestShapeWithoutId.parse(requests);
        requestOptionsShape.parse(options);
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        const result = {
          processedRequests: [],
          unprocessedRequests: []
        };
        for (const model of requests) {
          const requestModel = this._createInternalRequest(model, options.forefront);
          const existingRequestWithIdEntry = existingQueueById.requests.get(requestModel.id);
          if (existingRequestWithIdEntry) {
            const existingRequestWithId = await existingRequestWithIdEntry.get();
            result.processedRequests.push({
              requestId: existingRequestWithId.id,
              uniqueKey: existingRequestWithId.uniqueKey,
              wasAlreadyHandled: existingRequestWithId.orderNo === null,
              wasAlreadyPresent: true
            });
            continue;
          }
          const newEntry = (0, request_queue_1.createRequestQueueStorageImplementation)({
            persistStorage: existingQueueById.client.persistStorage,
            requestId: requestModel.id,
            storeDirectory: existingQueueById.requestQueueDirectory
          });
          await newEntry.update(requestModel);
          existingQueueById.requests.set(requestModel.id, newEntry);
          if (requestModel.orderNo) {
            existingQueueById.pendingRequestCount += 1;
          } else {
            existingQueueById.handledRequestCount += 1;
          }
          if (options.forefront) {
            this.forefrontRequestIds.push(requestModel.id);
          }
          result.processedRequests.push({
            requestId: requestModel.id,
            uniqueKey: requestModel.uniqueKey,
            // We return wasAlreadyHandled: false even though the request may
            // have been added as handled, because that's how API behaves.
            wasAlreadyHandled: false,
            wasAlreadyPresent: false
          });
        }
        existingQueueById.updateTimestamps(true);
        return result;
      }
      async getRequest(id) {
        shapeshift_1.s.string.parse(id);
        const queue = await this.getQueue();
        const json = (await queue.requests.get(id)?.get())?.json;
        return this._jsonToRequest(json);
      }
      async updateRequest(request, options = {}) {
        requestShape.parse(request);
        requestOptionsShape.parse(options);
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        const requestModel = this._createInternalRequest(request, options.forefront);
        const existingRequestEntry = existingQueueById.requests.get(requestModel.id);
        if (!existingRequestEntry) {
          return this.addRequest(request, options);
        }
        const existingRequest = await existingRequestEntry.get();
        const newEntry = (0, request_queue_1.createRequestQueueStorageImplementation)({
          persistStorage: existingQueueById.client.persistStorage,
          requestId: requestModel.id,
          storeDirectory: existingQueueById.requestQueueDirectory
        });
        await newEntry.update(requestModel);
        existingQueueById.requests.set(requestModel.id, newEntry);
        const isRequestHandledStateChanging = typeof existingRequest.orderNo !== typeof requestModel.orderNo;
        const requestWasHandledBeforeUpdate = existingRequest.orderNo === null;
        const requestIsHandledAfterUpdate = requestModel.orderNo === null;
        if (isRequestHandledStateChanging) {
          existingQueueById.pendingRequestCount += requestWasHandledBeforeUpdate ? 1 : -1;
        }
        if (requestIsHandledAfterUpdate) {
          existingQueueById.handledRequestCount += 1;
        }
        existingQueueById.updateTimestamps(true);
        if (options.forefront && !requestIsHandledAfterUpdate) {
          this.forefrontRequestIds.push(requestModel.id);
        }
        return {
          requestId: requestModel.id,
          wasAlreadyHandled: requestWasHandledBeforeUpdate,
          wasAlreadyPresent: true
        };
      }
      async deleteRequest(id) {
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        const entry = existingQueueById.requests.get(id);
        if (entry) {
          const request = await entry.get();
          existingQueueById.requests.delete(id);
          existingQueueById.updateTimestamps(true);
          if (request.orderNo) {
            existingQueueById.pendingRequestCount -= 1;
          } else {
            existingQueueById.handledRequestCount -= 1;
          }
          await entry.delete();
        }
      }
      toRequestQueueInfo() {
        return {
          accessedAt: this.accessedAt,
          createdAt: this.createdAt,
          hadMultipleClients: false,
          handledRequestCount: this.handledRequestCount,
          id: this.id,
          modifiedAt: this.modifiedAt,
          name: this.name,
          pendingRequestCount: this.pendingRequestCount,
          stats: {},
          totalRequestCount: this.requests.size,
          userId: "1"
        };
      }
      updateTimestamps(hasBeenModified) {
        this.accessedAt = /* @__PURE__ */ new Date();
        if (hasBeenModified) {
          this.modifiedAt = /* @__PURE__ */ new Date();
        }
        const data2 = {
          ...this.toRequestQueueInfo(),
          forefrontRequestIds: this.forefrontRequestIds
        };
        (0, background_handler_1.scheduleBackgroundTask)({
          action: "update-metadata",
          data: data2,
          entityType: "requestQueues",
          entityDirectory: this.requestQueueDirectory,
          id: this.name ?? this.id,
          writeMetadata: this.client.writeMetadata,
          persistStorage: this.client.persistStorage
        });
      }
      _jsonToRequest(requestJson) {
        if (!requestJson)
          return void 0;
        const request = JSON.parse(requestJson);
        return (0, utils_1.purgeNullsFromObject)(request);
      }
      _createInternalRequest(request, forefront) {
        const orderNo = this._calculateOrderNo(request, forefront);
        const id = (0, utils_1.uniqueKeyToRequestId)(request.uniqueKey);
        if (request.id && request.id !== id) {
          throw new Error("Request ID does not match its uniqueKey.");
        }
        const json = JSON.stringify({ ...request, id });
        return {
          id,
          json,
          method: request.method,
          orderNo,
          retryCount: request.retryCount ?? 0,
          uniqueKey: request.uniqueKey,
          url: request.url
        };
      }
      _calculateOrderNo(request, forefront) {
        if (request.handledAt)
          return null;
        const timestamp = Date.now();
        return forefront ? -timestamp : timestamp;
      }
    };
    exports.RequestQueueClient = RequestQueueClient;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/cache-helpers.js
var require_cache_helpers = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/cache-helpers.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.findOrCacheDatasetByPossibleId = findOrCacheDatasetByPossibleId;
    exports.findOrCacheKeyValueStoreByPossibleId = findOrCacheKeyValueStoreByPossibleId;
    exports.findRequestQueueByPossibleId = findRequestQueueByPossibleId;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var json5_1 = tslib_1.__importDefault(require_lib2());
    var mime_types_1 = tslib_1.__importDefault(require_mime_types());
    var fs_1 = require_fs2();
    var fs_2 = require_fs3();
    var fs_3 = require_fs4();
    var uuidRegex = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;
    async function findOrCacheDatasetByPossibleId(client, entryNameOrId) {
      const found = client.datasetClientsHandled.find((store) => store.id === entryNameOrId || store.name?.toLowerCase() === entryNameOrId.toLowerCase());
      if (found) {
        return found;
      }
      const datasetDir = (0, node_path_1.resolve)(client.datasetsDirectory, entryNameOrId);
      try {
        await (0, promises_1.access)(datasetDir);
      } catch {
        return void 0;
      }
      const directoryEntries = await (0, promises_1.opendir)(datasetDir);
      let id;
      let name;
      let itemCount = 0;
      const entries3 = /* @__PURE__ */ new Set();
      let createdAt = /* @__PURE__ */ new Date();
      let accessedAt = /* @__PURE__ */ new Date();
      let modifiedAt = /* @__PURE__ */ new Date();
      let hasSeenMetadataFile = false;
      for await (const entry of directoryEntries) {
        if (entry.isFile()) {
          if (entry.name === "__metadata__.json") {
            hasSeenMetadataFile = true;
            const fileContent = await (0, promises_1.readFile)((0, node_path_1.resolve)(datasetDir, entry.name), "utf8");
            if (!fileContent)
              continue;
            const metadata = JSON.parse(fileContent);
            id = metadata.id;
            name = metadata.name;
            itemCount = metadata.itemCount;
            createdAt = new Date(metadata.createdAt);
            accessedAt = new Date(metadata.accessedAt);
            modifiedAt = new Date(metadata.modifiedAt);
            continue;
          }
          const entryName = entry.name.split(".")[0];
          entries3.add(entryName);
          if (!hasSeenMetadataFile) {
            itemCount++;
          }
        }
      }
      if (id === void 0 && name === void 0) {
        const isUuid = uuidRegex.test(entryNameOrId);
        if (isUuid) {
          id = entryNameOrId;
        } else {
          name = entryNameOrId;
        }
      }
      const newClient = new dataset_1.DatasetClient({
        baseStorageDirectory: client.datasetsDirectory,
        client,
        id,
        name
      });
      newClient.accessedAt = accessedAt;
      newClient.createdAt = createdAt;
      newClient.modifiedAt = modifiedAt;
      newClient.itemCount = itemCount;
      for (const entryId of entries3.values()) {
        const entry = new fs_1.DatasetFileSystemEntry({
          storeDirectory: datasetDir,
          entityId: entryId,
          persistStorage: true
        });
        newClient["datasetEntries"].set(entryId, entry);
      }
      client.datasetClientsHandled.push(newClient);
      return newClient;
    }
    async function findOrCacheKeyValueStoreByPossibleId(client, entryNameOrId) {
      const found = client.keyValueStoresHandled.find((store) => store.id === entryNameOrId || store.name?.toLowerCase() === entryNameOrId.toLowerCase());
      if (found) {
        return found;
      }
      const keyValueStoreDir = (0, node_path_1.resolve)(client.keyValueStoresDirectory, entryNameOrId);
      try {
        await (0, promises_1.access)(keyValueStoreDir);
      } catch {
        return void 0;
      }
      const directoryEntries = await (0, promises_1.opendir)(keyValueStoreDir);
      let id;
      let name;
      let createdAt = /* @__PURE__ */ new Date();
      let accessedAt = /* @__PURE__ */ new Date();
      let modifiedAt = /* @__PURE__ */ new Date();
      const internalRecords = /* @__PURE__ */ new Map();
      let hasSeenMetadataForEntry = false;
      for await (const entry of directoryEntries) {
        if (entry.isFile()) {
          if (entry.name === "__metadata__.json") {
            const fileContent2 = await (0, promises_1.readFile)((0, node_path_1.resolve)(keyValueStoreDir, entry.name), "utf8");
            if (!fileContent2)
              continue;
            const metadata = JSON.parse(fileContent2);
            id = metadata.id;
            name = metadata.name;
            createdAt = new Date(metadata.createdAt);
            accessedAt = new Date(metadata.accessedAt);
            modifiedAt = new Date(metadata.modifiedAt);
            continue;
          }
          if (entry.name.includes(".__metadata__.")) {
            hasSeenMetadataForEntry = true;
            const fileContent2 = await (0, promises_1.readFile)((0, node_path_1.resolve)(keyValueStoreDir, entry.name), "utf8");
            if (!fileContent2)
              continue;
            const metadata = JSON.parse(fileContent2);
            const newRecord2 = {
              ...internalRecords.get(metadata.key),
              ...metadata
            };
            internalRecords.set(metadata.key, newRecord2);
            continue;
          }
          const fileContent = await (0, promises_1.readFile)((0, node_path_1.resolve)(keyValueStoreDir, entry.name));
          const fileExtension = (0, node_path_1.extname)(entry.name);
          const contentType = mime_types_1.default.contentType(entry.name) || "text/plain";
          const extension = mime_types_1.default.extension(contentType);
          if (contentType.includes("application/json")) {
            const stringifiedJson = fileContent.toString("utf8");
            try {
              json5_1.default.parse(stringifiedJson);
            } catch {
              utils_1.memoryStorageLog.warning(`Key-value entry "${entry.name}" for store ${entryNameOrId} has invalid JSON content and will be ignored from the store.`);
              continue;
            }
          }
          const nameSplit = entry.name.split(".");
          if (fileExtension) {
            nameSplit.pop();
          }
          const key = nameSplit.join(".");
          const newRecord = {
            key,
            extension,
            contentType,
            ...internalRecords.get(key)
          };
          internalRecords.set(key, newRecord);
        }
      }
      if (id === void 0 && name === void 0) {
        const isUuid = uuidRegex.test(entryNameOrId);
        if (isUuid) {
          id = entryNameOrId;
        } else {
          name = entryNameOrId;
        }
      }
      const newClient = new key_value_store_1.KeyValueStoreClient({
        baseStorageDirectory: client.keyValueStoresDirectory,
        client,
        id,
        name
      });
      newClient.accessedAt = accessedAt;
      newClient.createdAt = createdAt;
      newClient.modifiedAt = modifiedAt;
      for (const [key, record] of internalRecords) {
        const entry = new fs_2.KeyValueFileSystemEntry({
          persistStorage: true,
          storeDirectory: keyValueStoreDir,
          writeMetadata: hasSeenMetadataForEntry
        });
        entry["rawRecord"] = { ...record };
        entry["filePath"] = (0, node_path_1.resolve)(keyValueStoreDir, `${record.key}.${record.extension}`);
        entry["fileMetadataPath"] = (0, node_path_1.resolve)(keyValueStoreDir, `${record.key}.__metadata__.json`);
        newClient["keyValueEntries"].set(key, entry);
      }
      client.keyValueStoresHandled.push(newClient);
      return newClient;
    }
    async function findRequestQueueByPossibleId(client, entryNameOrId) {
      const found = client.requestQueuesHandled.find((store) => store.id === entryNameOrId || store.name?.toLowerCase() === entryNameOrId.toLowerCase());
      if (found) {
        return found;
      }
      const requestQueueDir = (0, node_path_1.resolve)(client.requestQueuesDirectory, entryNameOrId);
      try {
        await (0, promises_1.access)(requestQueueDir);
      } catch {
        return void 0;
      }
      const directoryEntries = await (0, promises_1.opendir)(requestQueueDir);
      let id;
      let name;
      let createdAt = /* @__PURE__ */ new Date();
      let accessedAt = /* @__PURE__ */ new Date();
      let modifiedAt = /* @__PURE__ */ new Date();
      let pendingRequestCount = 0;
      let handledRequestCount = 0;
      const entries3 = /* @__PURE__ */ new Set();
      let forefrontRequestIds = [];
      for await (const entry of directoryEntries) {
        if (entry.isFile()) {
          switch (entry.name) {
            case "__metadata__.json": {
              const fileContent = await (0, promises_1.readFile)((0, node_path_1.resolve)(requestQueueDir, entry.name), "utf8");
              if (!fileContent)
                continue;
              const metadata = JSON.parse(fileContent);
              id = metadata.id;
              name = metadata.name;
              createdAt = new Date(metadata.createdAt);
              accessedAt = new Date(metadata.accessedAt);
              modifiedAt = new Date(metadata.modifiedAt);
              pendingRequestCount = metadata.pendingRequestCount;
              handledRequestCount = metadata.handledRequestCount;
              forefrontRequestIds = metadata?.forefrontRequestIds ?? [];
              break;
            }
            default: {
              if (entry.name.startsWith(".") || !entry.name.endsWith(".json")) {
                continue;
              }
              const entryName = entry.name.split(".")[0];
              try {
                const fileContent = await (0, promises_1.readFile)((0, node_path_1.resolve)(requestQueueDir, entry.name), "utf8");
                JSON.parse(fileContent);
                entries3.add(entryName);
              } catch {
                utils_1.memoryStorageLog.warning(`Request queue entry "${entry.name}" for store ${entryNameOrId} has invalid JSON content and will be ignored from the store.`);
              }
            }
          }
        }
      }
      if (id === void 0 && name === void 0) {
        const isUuid = uuidRegex.test(entryNameOrId);
        if (isUuid) {
          id = entryNameOrId;
        } else {
          name = entryNameOrId;
        }
      }
      const newClient = new request_queue_1.RequestQueueClient({
        baseStorageDirectory: client.requestQueuesDirectory,
        client,
        id,
        name
      });
      newClient.accessedAt = accessedAt;
      newClient.createdAt = createdAt;
      newClient.modifiedAt = modifiedAt;
      newClient.pendingRequestCount = pendingRequestCount;
      newClient.handledRequestCount = handledRequestCount;
      newClient.forefrontRequestIds = forefrontRequestIds;
      for (const requestId of entries3) {
        const entry = new fs_3.RequestQueueFileSystemEntry({
          persistStorage: true,
          requestId,
          storeDirectory: requestQueueDir
        });
        newClient["requests"].set(requestId, entry);
      }
      client.requestQueuesHandled.push(newClient);
      return newClient;
    }
    var dataset_1 = require_dataset2();
    var key_value_store_1 = require_key_value_store2();
    var request_queue_1 = require_request_queue2();
    var utils_1 = require_utils3();
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/dataset/memory.js
var require_memory3 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/dataset/memory.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DatasetMemoryEntry = void 0;
    var DatasetMemoryEntry = class {
      constructor() {
        Object.defineProperty(this, "data", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
      }
      async get() {
        return this.data;
      }
      update(data2) {
        this.data = data2;
      }
      delete() {
      }
    };
    exports.DatasetMemoryEntry = DatasetMemoryEntry;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/dataset/index.js
var require_dataset = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/dataset/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.createDatasetStorageImplementation = createDatasetStorageImplementation;
    var fs_1 = require_fs2();
    var memory_1 = require_memory3();
    function createDatasetStorageImplementation(options) {
      if (options.persistStorage) {
        return new fs_1.DatasetFileSystemEntry(options);
      }
      return new memory_1.DatasetMemoryEntry();
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/dataset.js
var require_dataset2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/dataset.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DatasetClient = void 0;
    var node_crypto_1 = __require("node:crypto");
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var shapeshift_1 = require_cjs5();
    var fs_extra_1 = require_lib();
    var background_handler_1 = require_background_handler();
    var cache_helpers_1 = require_cache_helpers();
    var consts_1 = require_consts();
    var dataset_1 = require_dataset();
    var utils_1 = require_utils3();
    var base_client_1 = require_base_client();
    var LIST_ITEMS_LIMIT = 999999999999;
    var LOCAL_ENTRY_NAME_DIGITS = 9;
    var DatasetClient = class extends base_client_1.BaseClient {
      constructor(options) {
        super(options.id ?? (0, node_crypto_1.randomUUID)());
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "createdAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "accessedAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "modifiedAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "itemCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "datasetDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "datasetEntries", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.name = options.name;
        this.datasetDirectory = (0, node_path_1.resolve)(options.baseStorageDirectory, this.name ?? this.id);
        this.client = options.client;
      }
      async get() {
        const found = await (0, cache_helpers_1.findOrCacheDatasetByPossibleId)(this.client, this.name ?? this.id);
        if (found) {
          found.updateTimestamps(false);
          return found.toDatasetInfo();
        }
        return void 0;
      }
      async update(newFields = {}) {
        const parsed = shapeshift_1.s.object({
          name: shapeshift_1.s.string.lengthGreaterThan(0).optional
        }).parse(newFields);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheDatasetByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.Dataset);
        }
        if (!parsed.name) {
          return existingStoreById.toDatasetInfo();
        }
        const existingStoreByName = this.client.datasetClientsHandled.find((store) => store.name?.toLowerCase() === parsed.name.toLowerCase());
        if (existingStoreByName) {
          this.throwOnDuplicateEntry(consts_1.StorageTypes.Dataset, "name", parsed.name);
        }
        existingStoreById.name = parsed.name;
        const previousDir = existingStoreById.datasetDirectory;
        existingStoreById.datasetDirectory = (0, node_path_1.resolve)(this.client.datasetsDirectory, parsed.name ?? existingStoreById.name ?? existingStoreById.id);
        await (0, fs_extra_1.move)(previousDir, existingStoreById.datasetDirectory, { overwrite: true });
        existingStoreById.updateTimestamps(true);
        return existingStoreById.toDatasetInfo();
      }
      async delete() {
        const storeIndex = this.client.datasetClientsHandled.findIndex((store) => store.id === this.id);
        if (storeIndex !== -1) {
          const [oldClient] = this.client.datasetClientsHandled.splice(storeIndex, 1);
          oldClient.itemCount = 0;
          oldClient.datasetEntries.clear();
          await (0, promises_1.rm)(oldClient.datasetDirectory, { recursive: true, force: true });
        }
      }
      async downloadItems() {
        throw new Error("This method is not implemented in @crawlee/memory-storage");
      }
      listItems(options = {}) {
        const { desc, limit, offset: offset2 } = shapeshift_1.s.object({
          desc: shapeshift_1.s.boolean.optional,
          limit: shapeshift_1.s.number.int.optional,
          offset: shapeshift_1.s.number.int.optional
        }).parse(options);
        return (0, utils_1.createPaginatedList)((pageOffset, pageLimit) => this.listItemsPage({
          desc,
          offset: pageOffset,
          limit: Math.min(pageLimit, LIST_ITEMS_LIMIT)
        }), { offset: offset2, limit });
      }
      listEntries(options = {}) {
        const { desc, limit, offset: offset2 } = shapeshift_1.s.object({
          desc: shapeshift_1.s.boolean.optional,
          limit: shapeshift_1.s.number.int.optional,
          offset: shapeshift_1.s.number.int.optional
        }).parse(options);
        return (0, utils_1.createPaginatedEntryList)((pageOffset, pageLimit) => this.listItemsPage({
          desc,
          offset: pageOffset,
          limit: Math.min(pageLimit, LIST_ITEMS_LIMIT)
        }), { offset: offset2, limit });
      }
      async listItemsPage(options = {}) {
        const { limit = LIST_ITEMS_LIMIT, offset: offset2 = 0, desc } = options;
        const existingStoreById = await (0, cache_helpers_1.findOrCacheDatasetByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.Dataset);
        }
        const [start2, end2] = existingStoreById.getStartAndEndIndexes(desc ? Math.max(existingStoreById.itemCount - offset2 - limit, 0) : offset2, limit);
        const items = [];
        for (let idx = start2; idx < end2; idx++) {
          const entryNumber = this.generateLocalEntryName(idx);
          items.push(await existingStoreById.datasetEntries.get(entryNumber).get());
        }
        existingStoreById.updateTimestamps(false);
        return {
          count: items.length,
          desc: desc ?? false,
          items: desc ? items.reverse() : items,
          limit,
          offset: offset2,
          total: existingStoreById.itemCount
        };
      }
      async pushItems(items) {
        const rawItems = shapeshift_1.s.union(shapeshift_1.s.string, shapeshift_1.s.object({}).passthrough, shapeshift_1.s.array(shapeshift_1.s.union(shapeshift_1.s.string, shapeshift_1.s.object({}).passthrough))).parse(items);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheDatasetByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.Dataset);
        }
        const normalized = this.normalizeItems(rawItems);
        const addedIds = [];
        for (const entry of normalized) {
          const idx = this.generateLocalEntryName(++existingStoreById.itemCount);
          const storageEntry = (0, dataset_1.createDatasetStorageImplementation)({
            entityId: idx,
            persistStorage: this.client.persistStorage,
            storeDirectory: existingStoreById.datasetDirectory
          });
          await storageEntry.update(entry);
          existingStoreById.datasetEntries.set(idx, storageEntry);
          addedIds.push(idx);
        }
        existingStoreById.updateTimestamps(true);
      }
      toDatasetInfo() {
        return {
          id: this.id,
          accessedAt: this.accessedAt,
          createdAt: this.createdAt,
          itemCount: this.itemCount,
          modifiedAt: this.modifiedAt,
          name: this.name
        };
      }
      generateLocalEntryName(idx) {
        return idx.toString().padStart(LOCAL_ENTRY_NAME_DIGITS, "0");
      }
      getStartAndEndIndexes(offset2, limit = this.itemCount) {
        const start2 = offset2 + 1;
        const end2 = Math.min(offset2 + limit, this.itemCount) + 1;
        return [start2, end2];
      }
      /**
       * To emulate API and split arrays of items into individual dataset items,
       * we need to normalize the input items - which can be strings, objects
       * or arrays of those - into objects, so that we can save them one by one
       * later. We could potentially do this directly with strings, but let's
       * not optimize prematurely.
       */
      normalizeItems(items) {
        if (typeof items === "string") {
          items = JSON.parse(items);
        }
        return Array.isArray(items) ? items.map((item) => this.normalizeItem(item)) : [this.normalizeItem(items)];
      }
      normalizeItem(item) {
        if (typeof item === "string") {
          item = JSON.parse(item);
        }
        if (Array.isArray(item)) {
          throw new Error(`Each dataset item can only be a single JSON object, not an array. Received: [${item.join(",\n")}]`);
        }
        if (typeof item !== "object" || item === null) {
          throw new Error(`Each dataset item must be a JSON object. Received: ${item}`);
        }
        return item;
      }
      updateTimestamps(hasBeenModified) {
        this.accessedAt = /* @__PURE__ */ new Date();
        if (hasBeenModified) {
          this.modifiedAt = /* @__PURE__ */ new Date();
        }
        const data2 = this.toDatasetInfo();
        (0, background_handler_1.scheduleBackgroundTask)({
          action: "update-metadata",
          data: data2,
          entityType: "datasets",
          entityDirectory: this.datasetDirectory,
          id: this.name ?? this.id,
          writeMetadata: this.client.writeMetadata,
          persistStorage: this.client.persistStorage
        });
      }
    };
    exports.DatasetClient = DatasetClient;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/dataset-collection.js
var require_dataset_collection = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/dataset-collection.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DatasetCollectionClient = void 0;
    var node_path_1 = __require("node:path");
    var shapeshift_1 = require_cjs5();
    var background_handler_1 = require_background_handler();
    var cache_helpers_1 = require_cache_helpers();
    var dataset_1 = require_dataset2();
    var DatasetCollectionClient = class {
      constructor({ baseStorageDirectory, client }) {
        Object.defineProperty(this, "datasetsDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.datasetsDirectory = (0, node_path_1.resolve)(baseStorageDirectory);
        this.client = client;
      }
      async list() {
        return {
          total: this.client.datasetClientsHandled.length,
          count: this.client.datasetClientsHandled.length,
          offset: 0,
          limit: this.client.datasetClientsHandled.length,
          desc: false,
          items: this.client.datasetClientsHandled.map((store) => store.toDatasetInfo()).sort((a5, b3) => a5.createdAt.getTime() - b3.createdAt.getTime())
        };
      }
      async getOrCreate(name) {
        shapeshift_1.s.string.optional.parse(name);
        if (name) {
          const found = await (0, cache_helpers_1.findOrCacheDatasetByPossibleId)(this.client, name);
          if (found) {
            return found.toDatasetInfo();
          }
        }
        const newStore = new dataset_1.DatasetClient({ name, baseStorageDirectory: this.datasetsDirectory, client: this.client });
        this.client.datasetClientsHandled.push(newStore);
        const datasetInfo = newStore.toDatasetInfo();
        (0, background_handler_1.scheduleBackgroundTask)({
          action: "update-metadata",
          entityType: "datasets",
          entityDirectory: newStore.datasetDirectory,
          id: datasetInfo.name ?? datasetInfo.id,
          data: datasetInfo,
          writeMetadata: this.client.writeMetadata,
          persistStorage: this.client.persistStorage
        });
        return datasetInfo;
      }
    };
    exports.DatasetCollectionClient = DatasetCollectionClient;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/key-value-store-collection.js
var require_key_value_store_collection = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/key-value-store-collection.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.KeyValueStoreCollectionClient = void 0;
    var node_path_1 = __require("node:path");
    var shapeshift_1 = require_cjs5();
    var background_handler_1 = require_background_handler();
    var cache_helpers_1 = require_cache_helpers();
    var key_value_store_1 = require_key_value_store2();
    var KeyValueStoreCollectionClient = class {
      constructor({ baseStorageDirectory, client }) {
        Object.defineProperty(this, "keyValueStoresDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.keyValueStoresDirectory = (0, node_path_1.resolve)(baseStorageDirectory);
        this.client = client;
      }
      async list() {
        return {
          total: this.client.keyValueStoresHandled.length,
          count: this.client.keyValueStoresHandled.length,
          offset: 0,
          limit: this.client.keyValueStoresHandled.length,
          desc: false,
          items: this.client.keyValueStoresHandled.map((store) => store.toKeyValueStoreInfo()).sort((a5, b3) => a5.createdAt.getTime() - b3.createdAt.getTime())
        };
      }
      async getOrCreate(name) {
        shapeshift_1.s.string.optional.parse(name);
        if (name) {
          const found = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, name);
          if (found) {
            return found.toKeyValueStoreInfo();
          }
        }
        const newStore = new key_value_store_1.KeyValueStoreClient({
          name,
          baseStorageDirectory: this.keyValueStoresDirectory,
          client: this.client
        });
        this.client.keyValueStoresHandled.push(newStore);
        const kvStoreInfo = newStore.toKeyValueStoreInfo();
        (0, background_handler_1.scheduleBackgroundTask)({
          action: "update-metadata",
          entityType: "keyValueStores",
          entityDirectory: newStore.keyValueStoreDirectory,
          id: kvStoreInfo.name ?? kvStoreInfo.id,
          data: kvStoreInfo,
          writeMetadata: this.client.writeMetadata,
          persistStorage: this.client.persistStorage
        });
        return kvStoreInfo;
      }
    };
    exports.KeyValueStoreCollectionClient = KeyValueStoreCollectionClient;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/request-queue-collection.js
var require_request_queue_collection = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/request-queue-collection.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RequestQueueCollectionClient = void 0;
    var node_path_1 = __require("node:path");
    var shapeshift_1 = require_cjs5();
    var background_handler_1 = require_background_handler();
    var cache_helpers_1 = require_cache_helpers();
    var request_queue_1 = require_request_queue2();
    var RequestQueueCollectionClient = class {
      constructor({ baseStorageDirectory, client }) {
        Object.defineProperty(this, "requestQueuesDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.requestQueuesDirectory = (0, node_path_1.resolve)(baseStorageDirectory);
        this.client = client;
      }
      async list() {
        return {
          total: this.client.requestQueuesHandled.length,
          count: this.client.requestQueuesHandled.length,
          offset: 0,
          limit: this.client.requestQueuesHandled.length,
          desc: false,
          items: this.client.requestQueuesHandled.map((store) => store.toRequestQueueInfo()).sort((a5, b3) => a5.createdAt.getTime() - b3.createdAt.getTime())
        };
      }
      async getOrCreate(name) {
        shapeshift_1.s.string.optional.parse(name);
        if (name) {
          const found = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, name);
          if (found) {
            return found.toRequestQueueInfo();
          }
        }
        const newStore = new request_queue_1.RequestQueueClient({
          name,
          baseStorageDirectory: this.requestQueuesDirectory,
          client: this.client
        });
        this.client.requestQueuesHandled.push(newStore);
        const queueInfo = newStore.toRequestQueueInfo();
        (0, background_handler_1.scheduleBackgroundTask)({
          action: "update-metadata",
          entityType: "requestQueues",
          entityDirectory: newStore.requestQueueDirectory,
          id: queueInfo.name ?? queueInfo.id,
          data: queueInfo,
          writeMetadata: this.client.writeMetadata,
          persistStorage: this.client.persistStorage
        });
        return queueInfo;
      }
    };
    exports.RequestQueueCollectionClient = RequestQueueCollectionClient;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/memory-storage.js
var require_memory_storage = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/memory-storage.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.MemoryStorage = void 0;
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var shapeshift_1 = require_cjs5();
    var fs_extra_1 = require_lib();
    var index_1 = require_background_handler();
    var dataset_1 = require_dataset2();
    var dataset_collection_1 = require_dataset_collection();
    var key_value_store_1 = require_key_value_store2();
    var key_value_store_collection_1 = require_key_value_store_collection();
    var request_queue_1 = require_request_queue2();
    var request_queue_collection_1 = require_request_queue_collection();
    var MemoryStorage2 = class {
      constructor(options = {}) {
        Object.defineProperty(this, "localDataDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "datasetsDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keyValueStoresDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestQueuesDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "writeMetadata", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStorage", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keyValueStoresHandled", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "datasetClientsHandled", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "requestQueuesHandled", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        shapeshift_1.s.object({
          localDataDirectory: shapeshift_1.s.string.optional,
          writeMetadata: shapeshift_1.s.boolean.optional,
          persistStorage: shapeshift_1.s.boolean.optional
        }).parse(options);
        const defaultStorageDir = () => {
          if ((0, fs_extra_1.pathExistsSync)((0, node_path_1.resolve)("./crawlee_storage"))) {
            return "./crawlee_storage";
          }
          return "./storage";
        };
        this.localDataDirectory = options.localDataDirectory ?? process.env.CRAWLEE_STORAGE_DIR ?? defaultStorageDir();
        this.datasetsDirectory = (0, node_path_1.resolve)(this.localDataDirectory, "datasets");
        this.keyValueStoresDirectory = (0, node_path_1.resolve)(this.localDataDirectory, "key_value_stores");
        this.requestQueuesDirectory = (0, node_path_1.resolve)(this.localDataDirectory, "request_queues");
        this.writeMetadata = options.writeMetadata ?? process.env.DEBUG?.includes("*") ?? process.env.DEBUG?.includes("crawlee:memory-storage") ?? false;
        this.persistStorage = options.persistStorage ?? (process.env.CRAWLEE_PERSIST_STORAGE ? !["false", "0", ""].includes(process.env.CRAWLEE_PERSIST_STORAGE) : true);
      }
      datasets() {
        return new dataset_collection_1.DatasetCollectionClient({
          baseStorageDirectory: this.datasetsDirectory,
          client: this
        });
      }
      dataset(id) {
        shapeshift_1.s.string.parse(id);
        return new dataset_1.DatasetClient({ id, baseStorageDirectory: this.datasetsDirectory, client: this });
      }
      keyValueStores() {
        return new key_value_store_collection_1.KeyValueStoreCollectionClient({
          baseStorageDirectory: this.keyValueStoresDirectory,
          client: this
        });
      }
      keyValueStore(id) {
        shapeshift_1.s.string.parse(id);
        return new key_value_store_1.KeyValueStoreClient({ id, baseStorageDirectory: this.keyValueStoresDirectory, client: this });
      }
      requestQueues() {
        return new request_queue_collection_1.RequestQueueCollectionClient({
          baseStorageDirectory: this.requestQueuesDirectory,
          client: this
        });
      }
      requestQueue(id, options = {}) {
        shapeshift_1.s.string.parse(id);
        shapeshift_1.s.object({
          clientKey: shapeshift_1.s.string.optional,
          timeoutSecs: shapeshift_1.s.number.optional
        }).parse(options);
        return new request_queue_1.RequestQueueClient({
          id,
          baseStorageDirectory: this.requestQueuesDirectory,
          client: this,
          ...options
        });
      }
      async setStatusMessage(message, options = {}) {
        shapeshift_1.s.string.parse(message);
        shapeshift_1.s.object({
          isStatusMessageTerminal: shapeshift_1.s.boolean.optional
        }).parse(options);
        return Promise.resolve();
      }
      /**
       * Cleans up the default storage directories before the run starts:
       *  - local directory containing the default dataset;
       *  - all records from the default key-value store in the local directory, except for the "INPUT" key;
       *  - local directory containing the default request queue.
       */
      async purge() {
        const keyValueStores = await (0, promises_1.readdir)(this.keyValueStoresDirectory).catch(() => []);
        const keyValueStorePromises = [];
        for (const keyValueStoreFolder of keyValueStores) {
          if (keyValueStoreFolder.startsWith("__CRAWLEE_TEMPORARY") || keyValueStoreFolder.startsWith("__OLD")) {
            keyValueStorePromises.push((await this.batchRemoveFiles((0, node_path_1.resolve)(this.keyValueStoresDirectory, keyValueStoreFolder)))());
          } else if (keyValueStoreFolder === "default") {
            keyValueStorePromises.push(this.handleDefaultKeyValueStore((0, node_path_1.resolve)(this.keyValueStoresDirectory, keyValueStoreFolder))());
          }
        }
        void Promise.allSettled(keyValueStorePromises);
        const datasets = await (0, promises_1.readdir)(this.datasetsDirectory).catch(() => []);
        const datasetPromises = [];
        for (const datasetFolder of datasets) {
          if (datasetFolder === "default" || datasetFolder.startsWith("__CRAWLEE_TEMPORARY")) {
            datasetPromises.push((await this.batchRemoveFiles((0, node_path_1.resolve)(this.datasetsDirectory, datasetFolder)))());
          }
        }
        void Promise.allSettled(datasetPromises);
        const requestQueues = await (0, promises_1.readdir)(this.requestQueuesDirectory).catch(() => []);
        const requestQueuePromises = [];
        for (const requestQueueFolder of requestQueues) {
          if (requestQueueFolder === "default" || requestQueueFolder.startsWith("__CRAWLEE_TEMPORARY")) {
            requestQueuePromises.push((await this.batchRemoveFiles((0, node_path_1.resolve)(this.requestQueuesDirectory, requestQueueFolder)))());
          }
        }
        void Promise.allSettled(requestQueuePromises);
      }
      /**
       * This method should be called at the end of the process, to ensure all data is saved.
       */
      async teardown() {
        const promises = [...index_1.promiseMap.values()].map(async ({ promise }) => promise);
        await Promise.all(promises);
      }
      handleDefaultKeyValueStore(folder) {
        const storagePathExists = (0, fs_extra_1.pathExistsSync)(folder);
        const temporaryPath = (0, node_path_1.resolve)(folder, "../__CRAWLEE_MIGRATING_KEY_VALUE_STORE__");
        const possibleInputKeys = ["INPUT", "INPUT.json", "INPUT.bin", "INPUT.txt"];
        if (storagePathExists) {
          (0, fs_extra_1.ensureDirSync)(temporaryPath);
          for (const entity of possibleInputKeys) {
            const originalFilePath = (0, node_path_1.resolve)(folder, entity);
            const tempFilePath = (0, node_path_1.resolve)(temporaryPath, entity);
            try {
              (0, fs_extra_1.moveSync)(originalFilePath, tempFilePath);
            } catch {
            }
          }
          let counter = 0;
          let tempPathForOldFolder = (0, node_path_1.resolve)(folder, `../__OLD_DEFAULT_${counter}__`);
          let done = false;
          while (!done) {
            try {
              (0, fs_extra_1.moveSync)(folder, tempPathForOldFolder);
              done = true;
            } catch {
              tempPathForOldFolder = (0, node_path_1.resolve)(folder, `../__OLD_DEFAULT_${++counter}__`);
            }
          }
          (0, fs_extra_1.moveSync)(temporaryPath, folder);
          return async () => (await this.batchRemoveFiles(tempPathForOldFolder))();
        }
        return async () => Promise.resolve();
      }
      async batchRemoveFiles(folder, counter = 0) {
        const folderExists = (0, fs_extra_1.pathExistsSync)(folder);
        if (folderExists) {
          const temporaryFolder = (0, node_path_1.resolve)(folder, `../__CRAWLEE_TEMPORARY_${counter}__`);
          try {
            await (0, fs_extra_1.move)(folder, temporaryFolder);
          } catch {
            return this.batchRemoveFiles(folder, ++counter);
          }
          return async () => {
            const entries3 = await (0, promises_1.readdir)(temporaryFolder);
            let processed = 0;
            let promises = [];
            for (const entry of entries3) {
              processed++;
              promises.push((0, promises_1.rm)((0, node_path_1.resolve)(temporaryFolder, entry), { force: true }));
              if (processed % 2e3 === 0) {
                await Promise.allSettled(promises);
                promises = [];
              }
            }
            await Promise.allSettled(promises);
            await (0, promises_1.rm)(temporaryFolder, { force: true, recursive: true });
          };
        }
        return async () => Promise.resolve();
      }
    };
    exports.MemoryStorage = MemoryStorage2;
  }
});

// ../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/index.js
var require_memory_storage2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_memory_storage(), exports);
  }
});

// ../../node_modules/.pnpm/@vladfrangu+async_event_emitter@2.4.7/node_modules/@vladfrangu/async_event_emitter/dist/index.cjs
var require_dist3 = __commonJS({
  "../../node_modules/.pnpm/@vladfrangu+async_event_emitter@2.4.7/node_modules/@vladfrangu/async_event_emitter/dist/index.cjs"(exports, module) {
    "use strict";
    var __create2 = Object.create;
    var __defProp3 = Object.defineProperty;
    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames2 = Object.getOwnPropertyNames;
    var __getProtoOf2 = Object.getPrototypeOf;
    var __hasOwnProp2 = Object.prototype.hasOwnProperty;
    var __name2 = (target, value2) => __defProp3(target, "name", { value: value2, configurable: true });
    var __esm2 = (fn, res) => function __init() {
      return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res;
    };
    var __commonJS2 = (cb, mod3) => function __require2() {
      return mod3 || (0, cb[__getOwnPropNames2(cb)[0]])((mod3 = { exports: {} }).exports, mod3), mod3.exports;
    };
    var __export2 = (target, all5) => {
      for (var name in all5)
        __defProp3(target, name, { get: all5[name], enumerable: true });
    };
    var __copyProps2 = (to, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames2(from))
          if (!__hasOwnProp2.call(to, key) && key !== except)
            __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
      }
      return to;
    };
    var __toESM2 = (mod3, isNodeMode, target) => (target = mod3 != null ? __create2(__getProtoOf2(mod3)) : {}, __copyProps2(
      // If the importer is in node compatibility mode or this is not an ESM
      // file that has been converted to a CommonJS file using a Babel-
      // compatible transform (i.e. "__esModule" has not been set), then set
      // "default" to the CommonJS "module.exports" for node compatibility.
      isNodeMode || !mod3 || !mod3.__esModule ? __defProp3(target, "default", { value: mod3, enumerable: true }) : target,
      mod3
    ));
    var __toCommonJS2 = (mod3) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod3);
    var init_cjs_shims = __esm2({
      "node_modules/tsup/assets/cjs_shims.js"() {
      }
    });
    var require_inspect = __commonJS2({
      "node_modules/node-inspect-extracted/dist/inspect.js"(exports2, module2) {
        init_cjs_shims();
        !(function(t4, e4) {
          "object" == typeof exports2 && "object" == typeof module2 ? module2.exports = e4() : "function" == typeof define && define.amd ? define([], e4) : "object" == typeof exports2 ? exports2.util = e4() : t4.util = e4();
        })(exports2, () => (() => {
          "use strict";
          var t4 = { 22: (t22) => {
            t22.exports = { CHAR_DOT: 46, CHAR_FORWARD_SLASH: 47, CHAR_BACKWARD_SLASH: 92 };
          }, 24: (t22) => {
            t22.exports = URL;
          }, 33: (t22, e22, r4) => {
            function n6(t32) {
              return n6 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, n6(t32);
            }
            __name2(n6, "n");
            function o5(t32, e32) {
              var r22 = "undefined" != typeof Symbol && t32[Symbol.iterator] || t32["@@iterator"];
              if (!r22) {
                if (Array.isArray(t32) || (r22 = (function(t42, e42) {
                  if (t42) {
                    if ("string" == typeof t42) return a5(t42, e42);
                    var r32 = {}.toString.call(t42).slice(8, -1);
                    return "Object" === r32 && t42.constructor && (r32 = t42.constructor.name), "Map" === r32 || "Set" === r32 ? Array.from(t42) : "Arguments" === r32 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r32) ? a5(t42, e42) : void 0;
                  }
                })(t32)) || e32 && t32 && "number" == typeof t32.length) {
                  r22 && (t32 = r22);
                  var n22 = 0, o22 = /* @__PURE__ */ __name2(function() {
                  }, "o");
                  return { s: o22, n: /* @__PURE__ */ __name2(function() {
                    return n22 >= t32.length ? { done: true } : { done: false, value: t32[n22++] };
                  }, "n"), e: /* @__PURE__ */ __name2(function(t42) {
                    throw t42;
                  }, "e"), f: o22 };
                }
                throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
              }
              var i22, c22 = true, u22 = false;
              return { s: /* @__PURE__ */ __name2(function() {
                r22 = r22.call(t32);
              }, "s"), n: /* @__PURE__ */ __name2(function() {
                var t42 = r22.next();
                return c22 = t42.done, t42;
              }, "n"), e: /* @__PURE__ */ __name2(function(t42) {
                u22 = true, i22 = t42;
              }, "e"), f: /* @__PURE__ */ __name2(function() {
                try {
                  c22 || null == r22.return || r22.return();
                } finally {
                  if (u22) throw i22;
                }
              }, "f") };
            }
            __name2(o5, "o");
            function a5(t32, e32) {
              (null == e32 || e32 > t32.length) && (e32 = t32.length);
              for (var r22 = 0, n22 = Array(e32); r22 < e32; r22++) n22[r22] = t32[r22];
              return n22;
            }
            __name2(a5, "a");
            function i5(t32, e32) {
              var r22 = Object.keys(t32);
              if (Object.getOwnPropertySymbols) {
                var n22 = Object.getOwnPropertySymbols(t32);
                e32 && (n22 = n22.filter(function(e42) {
                  return Object.getOwnPropertyDescriptor(t32, e42).enumerable;
                })), r22.push.apply(r22, n22);
              }
              return r22;
            }
            __name2(i5, "i");
            function c6(t32) {
              for (var e32 = 1; e32 < arguments.length; e32++) {
                var r22 = null != arguments[e32] ? arguments[e32] : {};
                e32 % 2 ? i5(Object(r22), true).forEach(function(e42) {
                  u5(t32, e42, r22[e42]);
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t32, Object.getOwnPropertyDescriptors(r22)) : i5(Object(r22)).forEach(function(e42) {
                  Object.defineProperty(t32, e42, Object.getOwnPropertyDescriptor(r22, e42));
                });
              }
              return t32;
            }
            __name2(c6, "c");
            function u5(t32, e32, r22) {
              return (e32 = (function(t42) {
                var e42 = (function(t5) {
                  if ("object" != n6(t5) || !t5) return t5;
                  var e5 = t5[Symbol.toPrimitive];
                  if (void 0 !== e5) {
                    var r32 = e5.call(t5, "string");
                    if ("object" != n6(r32)) return r32;
                    throw new TypeError("@@toPrimitive must return a primitive value.");
                  }
                  return String(t5);
                })(t42);
                return "symbol" == n6(e42) ? e42 : e42 + "";
              })(e32)) in t32 ? Object.defineProperty(t32, e32, { value: r22, enumerable: true, configurable: true, writable: true }) : t32[e32] = r22, t32;
            }
            __name2(u5, "u");
            var l4, f4, s4, y3 = r4(425), p3 = y3.AggregateError, g3 = y3.AggregateErrorPrototype, v3 = y3.Array, h4 = y3.ArrayBuffer, d3 = y3.ArrayBufferPrototype, b3 = y3.ArrayIsArray, m3 = y3.ArrayPrototype, S3 = y3.ArrayPrototypeFilter, P = y3.ArrayPrototypeForEach, x = y3.ArrayPrototypeIncludes, w = y3.ArrayPrototypeIndexOf, A = y3.ArrayPrototypeJoin, O = y3.ArrayPrototypeMap, _ = y3.ArrayPrototypePop, j = y3.ArrayPrototypePush, E = y3.ArrayPrototypePushApply, k3 = y3.ArrayPrototypeSlice, I = y3.ArrayPrototypeSort, R = y3.ArrayPrototypeSplice, L = y3.ArrayPrototypeUnshift, T = y3.BigIntPrototypeValueOf, B = y3.Boolean, z = y3.BooleanPrototype, M = y3.BooleanPrototypeValueOf, C = y3.DataView, D = y3.DataViewPrototype, N = y3.Date, F = y3.DatePrototype, W = y3.DatePrototypeGetTime, H = y3.DatePrototypeToISOString, U = y3.DatePrototypeToString, G2 = y3.Error, V = y3.ErrorPrototype, Z = y3.ErrorPrototypeToString, $ = y3.Function, Y = y3.FunctionPrototype, q = y3.FunctionPrototypeBind, J = y3.FunctionPrototypeCall, K = y3.FunctionPrototypeSymbolHasInstance, Q = y3.FunctionPrototypeToString, X = y3.JSONStringify, tt = y3.Map, et2 = y3.MapPrototype, rt = y3.MapPrototypeEntries, nt = y3.MapPrototypeGetSize, ot = y3.MathFloor, at = y3.MathMax, it = y3.MathMin, ct = y3.MathRound, ut = y3.MathSqrt, lt = y3.MathTrunc, ft = y3.Number, st = y3.NumberIsFinite, yt = y3.NumberIsNaN, pt = y3.NumberParseFloat, gt = y3.NumberParseInt, vt = y3.NumberPrototype, ht = y3.NumberPrototypeToString, dt = y3.NumberPrototypeValueOf, bt = y3.Object, mt = y3.ObjectAssign, St = y3.ObjectDefineProperty, Pt = y3.ObjectGetOwnPropertyDescriptor, xt = y3.ObjectGetOwnPropertyNames, wt = y3.ObjectGetOwnPropertySymbols, At = y3.ObjectGetPrototypeOf, Ot = y3.ObjectIs, _t = y3.ObjectKeys, jt = y3.ObjectPrototype, Et = y3.ObjectPrototypeHasOwnProperty, kt = y3.ObjectPrototypePropertyIsEnumerable, It = y3.ObjectSeal, Rt = y3.ObjectSetPrototypeOf, Lt = y3.Promise, Tt = y3.PromisePrototype, Bt = y3.RangeError, zt = y3.RangeErrorPrototype, Mt = y3.ReflectApply, Ct = y3.ReflectOwnKeys, Dt = y3.RegExp, Nt = y3.RegExpPrototype, Ft = y3.RegExpPrototypeExec, Wt = y3.RegExpPrototypeSymbolReplace, Ht = y3.RegExpPrototypeSymbolSplit, Ut = y3.RegExpPrototypeToString, Gt = y3.SafeMap, Vt = y3.SafeSet, Zt = y3.SafeStringIterator, $t = y3.Set, Yt = y3.SetPrototype, qt = y3.SetPrototypeGetSize, Jt = y3.SetPrototypeValues, Kt = y3.String, Qt = y3.StringPrototype, Xt = y3.StringPrototypeCharCodeAt, te = y3.StringPrototypeCodePointAt, ee = y3.StringPrototypeEndsWith, re = y3.StringPrototypeIncludes, ne = y3.StringPrototypeIndexOf, oe = y3.StringPrototypeLastIndexOf, ae = y3.StringPrototypeNormalize, ie = y3.StringPrototypePadEnd, ce = y3.StringPrototypePadStart, ue = y3.StringPrototypeRepeat, le = y3.StringPrototypeReplace, fe = y3.StringPrototypeReplaceAll, se = y3.StringPrototypeSlice, ye = y3.StringPrototypeSplit, pe = y3.StringPrototypeStartsWith, ge = y3.StringPrototypeToLowerCase, ve = y3.StringPrototypeTrim, he = y3.StringPrototypeValueOf, de = y3.SymbolIterator, be = y3.SymbolPrototypeToString, me = y3.SymbolPrototypeValueOf, Se = y3.SymbolToPrimitive, Pe = y3.SymbolToStringTag, xe = y3.TypeError, we = y3.TypeErrorPrototype, Ae = y3.TypedArray, Oe = y3.TypedArrayPrototype, _e = y3.TypedArrayPrototypeGetLength, je = y3.TypedArrayPrototypeGetSymbolToStringTag, Ee = y3.Uint8Array, ke = y3.WeakMap, Ie = y3.WeakMapPrototype, Re = y3.WeakSet, Le = y3.WeakSetPrototype, Te = y3.globalThis, Be = y3.internalBinding, ze = y3.uncurryThis, Me = r4(153), Ce = Me.constants, De = Ce.ALL_PROPERTIES, Ne = Ce.ONLY_ENUMERABLE, Fe = Ce.kPending, We = Ce.kRejected, He = Me.getOwnNonIndexProperties, Ue = Me.getPromiseDetails, Ge = Me.getProxyDetails, Ve = Me.previewEntries, Ze = Me.getConstructorName, $e = Me.getExternalValue, Ye = Me.Proxy, qe = r4(923), Je = qe.customInspectSymbol, Ke = qe.isError, Qe = qe.join, Xe = qe.removeColors, tr = r4(924).isStackOverflowError, er = r4(617), rr = er.isAsyncFunction, nr = er.isGeneratorFunction, or = er.isAnyArrayBuffer, ar = er.isArrayBuffer, ir = er.isArgumentsObject, cr = er.isBoxedPrimitive, ur = er.isDataView, lr = er.isExternal, fr = er.isMap, sr = er.isMapIterator, yr = er.isModuleNamespaceObject, pr = er.isNativeError, gr = er.isPromise, vr = er.isSet, hr = er.isSetIterator, dr = er.isWeakMap, br = er.isWeakSet, mr = er.isRegExp, Sr = er.isDate, Pr = er.isTypedArray, xr = er.isStringObject, wr = er.isNumberObject, Ar = er.isBooleanObject, Or = er.isBigIntObject, _r = r4(229), jr = r4(705).BuiltinModule, Er = r4(116), kr = Er.validateObject, Ir = Er.validateString, Rr = Er.kValidateObjectAllowArray;
            function Lr(t32) {
              return (f4 = f4 || r4(802)).pathToFileURL(t32).href;
            }
            __name2(Lr, "Lr");
            var Tr, Br, zr, Mr, Cr, Dr = new Vt(S3(xt(Te), function(t32) {
              return null !== Ft(/^[A-Z][a-zA-Z0-9]+$/, t32);
            })), Nr = /* @__PURE__ */ __name2(function(t32) {
              return void 0 === t32 && void 0 !== t32;
            }, "Nr"), Fr = It({ showHidden: false, depth: 2, colors: false, customInspect: true, showProxy: false, maxArrayLength: 100, maxStringLength: 1e4, breakLength: 80, compact: 3, sorted: false, getters: false, numericSeparator: false });
            try {
              Tr = new Dt("[\\x00-\\x1f\\x27\\x5c\\x7f-\\x9f]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?<![\\ud800-\\udbff])[\\udc00-\\udfff]"), Br = new Dt("[\0-\\x1f\\x27\\x5c\\x7f-\\x9f]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?<![\\ud800-\\udbff])[\\udc00-\\udfff]", "g"), zr = new Dt("[\\x00-\\x1f\\x5c\\x7f-\\x9f]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?<![\\ud800-\\udbff])[\\udc00-\\udfff]"), Mr = new Dt("[\\x00-\\x1f\\x5c\\x7f-\\x9f]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?<![\\ud800-\\udbff])[\\udc00-\\udfff]", "g");
              var Wr = new Dt("(?<=\\n)");
              Cr = /* @__PURE__ */ __name2(function(t32) {
                return Ht(Wr, t32);
              }, "Cr");
            } catch (t32) {
              Tr = /[\x00-\x1f\x27\x5c\x7f-\x9f]/, Br = /[\x00-\x1f\x27\x5c\x7f-\x9f]/g, zr = /[\x00-\x1f\x5c\x7f-\x9f]/, Mr = /[\x00-\x1f\x5c\x7f-\x9f]/g, Cr = /* @__PURE__ */ __name2(function(t42) {
                var e32 = Ht(/\n/, t42), r22 = _(e32), n22 = O(e32, function(t5) {
                  return t5 + "\n";
                });
                return "" !== r22 && n22.push(r22), n22;
              }, "Cr");
            }
            var Hr, Ur = /^[a-zA-Z_][a-zA-Z_0-9]*$/, Gr = /^(0|[1-9][0-9]*)$/, Vr = /^ {4}at (?:[^/\\(]+ \(|)node:(.+):\d+:\d+\)?$/, Zr = /^(\s+[^(]*?)\s*{/, $r = /(\/\/.*?\n)|(\/\*(.|\n)*?\*\/)/g, Yr = ["\\x00", "\\x01", "\\x02", "\\x03", "\\x04", "\\x05", "\\x06", "\\x07", "\\b", "\\t", "\\n", "\\x0B", "\\f", "\\r", "\\x0E", "\\x0F", "\\x10", "\\x11", "\\x12", "\\x13", "\\x14", "\\x15", "\\x16", "\\x17", "\\x18", "\\x19", "\\x1A", "\\x1B", "\\x1C", "\\x1D", "\\x1E", "\\x1F", "", "", "", "", "", "", "", "\\'", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "\\\\", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "\\x7F", "\\x80", "\\x81", "\\x82", "\\x83", "\\x84", "\\x85", "\\x86", "\\x87", "\\x88", "\\x89", "\\x8A", "\\x8B", "\\x8C", "\\x8D", "\\x8E", "\\x8F", "\\x90", "\\x91", "\\x92", "\\x93", "\\x94", "\\x95", "\\x96", "\\x97", "\\x98", "\\x99", "\\x9A", "\\x9B", "\\x9C", "\\x9D", "\\x9E", "\\x9F"], qr = new Dt("[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/\\#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/\\#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))", "g");
            function Jr(t32, e32) {
              var r22 = { budget: {}, indentationLvl: 0, seen: [], currentDepth: 0, stylize: on2, showHidden: Fr.showHidden, depth: Fr.depth, colors: Fr.colors, customInspect: Fr.customInspect, showProxy: Fr.showProxy, maxArrayLength: Fr.maxArrayLength, maxStringLength: Fr.maxStringLength, breakLength: Fr.breakLength, compact: Fr.compact, sorted: Fr.sorted, getters: Fr.getters, numericSeparator: Fr.numericSeparator };
              if (arguments.length > 1) {
                if (arguments.length > 2 && (void 0 !== arguments[2] && (r22.depth = arguments[2]), arguments.length > 3 && void 0 !== arguments[3] && (r22.colors = arguments[3])), "boolean" == typeof e32) r22.showHidden = e32;
                else if (e32) for (var n22 = _t(e32), o22 = 0; o22 < n22.length; ++o22) {
                  var a22 = n22[o22];
                  Et(Fr, a22) || "stylize" === a22 ? r22[a22] = e32[a22] : void 0 === r22.userOptions && (r22.userOptions = e32);
                }
              }
              return r22.colors && (r22.stylize = nn), null === r22.maxArrayLength && (r22.maxArrayLength = 1 / 0), null === r22.maxStringLength && (r22.maxStringLength = 1 / 0), gn(r22, t32, 0);
            }
            __name2(Jr, "Jr");
            Jr.custom = Je, St(Jr, "defaultOptions", { __proto__: null, get: /* @__PURE__ */ __name2(function() {
              return Fr;
            }, "get"), set: /* @__PURE__ */ __name2(function(t32) {
              return kr(t32, "options"), mt(Fr, t32);
            }, "set") });
            var Kr = 39, Qr = 49;
            function Xr(t32, e32) {
              St(Jr.colors, e32, { __proto__: null, get: /* @__PURE__ */ __name2(function() {
                return this[t32];
              }, "get"), set: /* @__PURE__ */ __name2(function(e42) {
                this[t32] = e42;
              }, "set"), configurable: true, enumerable: false });
            }
            __name2(Xr, "Xr");
            function tn(t32, e32) {
              return -1 === e32 ? '"'.concat(t32, '"') : -2 === e32 ? "`".concat(t32, "`") : "'".concat(t32, "'");
            }
            __name2(tn, "tn");
            function en(t32) {
              var e32 = Xt(t32);
              return Yr.length > e32 ? Yr[e32] : "\\u".concat(ht(e32, 16));
            }
            __name2(en, "en");
            function rn(t32) {
              var e32 = Tr, r22 = Br, n22 = 39;
              if (re(t32, "'") && (re(t32, '"') ? re(t32, "`") || re(t32, "${") || (n22 = -2) : n22 = -1, 39 !== n22 && (e32 = zr, r22 = Mr)), t32.length < 5e3 && null === Ft(e32, t32)) return tn(t32, n22);
              if (t32.length > 100) return tn(t32 = Wt(r22, t32, en), n22);
              for (var o22 = "", a22 = 0, i22 = 0; i22 < t32.length; i22++) {
                var c22 = Xt(t32, i22);
                if (c22 === n22 || 92 === c22 || c22 < 32 || c22 > 126 && c22 < 160) o22 += a22 === i22 ? Yr[c22] : "".concat(se(t32, a22, i22)).concat(Yr[c22]), a22 = i22 + 1;
                else if (c22 >= 55296 && c22 <= 57343) {
                  if (c22 <= 56319 && i22 + 1 < t32.length) {
                    var u22 = Xt(t32, i22 + 1);
                    if (u22 >= 56320 && u22 <= 57343) {
                      i22++;
                      continue;
                    }
                  }
                  o22 += "".concat(se(t32, a22, i22), "\\u").concat(ht(c22, 16)), a22 = i22 + 1;
                }
              }
              return a22 !== t32.length && (o22 += se(t32, a22)), tn(o22, n22);
            }
            __name2(rn, "rn");
            function nn(t32, e32) {
              var r22 = Jr.styles[e32];
              if (void 0 !== r22) {
                var n22 = Jr.colors[r22];
                if (void 0 !== n22) return "\x1B[".concat(n22[0], "m").concat(t32, "\x1B[").concat(n22[1], "m");
              }
              return t32;
            }
            __name2(nn, "nn");
            function on2(t32) {
              return t32;
            }
            __name2(on2, "on");
            function an() {
              return [];
            }
            __name2(an, "an");
            function cn(t32, e32) {
              try {
                return t32 instanceof e32;
              } catch (t42) {
                return false;
              }
            }
            __name2(cn, "cn");
            Jr.colors = { __proto__: null, reset: [0, 0], bold: [1, 22], dim: [2, 22], italic: [3, 23], underline: [4, 24], blink: [5, 25], inverse: [7, 27], hidden: [8, 28], strikethrough: [9, 29], doubleunderline: [21, 24], black: [30, Kr], red: [31, Kr], green: [32, Kr], yellow: [33, Kr], blue: [34, Kr], magenta: [35, Kr], cyan: [36, Kr], white: [37, Kr], bgBlack: [40, Qr], bgRed: [41, Qr], bgGreen: [42, Qr], bgYellow: [43, Qr], bgBlue: [44, Qr], bgMagenta: [45, Qr], bgCyan: [46, Qr], bgWhite: [47, Qr], framed: [51, 54], overlined: [53, 55], gray: [90, Kr], redBright: [91, Kr], greenBright: [92, Kr], yellowBright: [93, Kr], blueBright: [94, Kr], magentaBright: [95, Kr], cyanBright: [96, Kr], whiteBright: [97, Kr], bgGray: [100, Qr], bgRedBright: [101, Qr], bgGreenBright: [102, Qr], bgYellowBright: [103, Qr], bgBlueBright: [104, Qr], bgMagentaBright: [105, Qr], bgCyanBright: [106, Qr], bgWhiteBright: [107, Qr] }, Xr("gray", "grey"), Xr("gray", "blackBright"), Xr("bgGray", "bgGrey"), Xr("bgGray", "bgBlackBright"), Xr("dim", "faint"), Xr("strikethrough", "crossedout"), Xr("strikethrough", "strikeThrough"), Xr("strikethrough", "crossedOut"), Xr("hidden", "conceal"), Xr("inverse", "swapColors"), Xr("inverse", "swapcolors"), Xr("doubleunderline", "doubleUnderline"), Jr.styles = mt({ __proto__: null }, { special: "cyan", number: "yellow", bigint: "yellow", boolean: "yellow", undefined: "grey", null: "bold", string: "green", symbol: "green", date: "magenta", regexp: "red", module: "underline" });
            var un = new Gt().set(m3, { name: "Array", constructor: v3 }).set(d3, { name: "ArrayBuffer", constructor: h4 }).set(Y, { name: "Function", constructor: $ }).set(et2, { name: "Map", constructor: tt }).set(Yt, { name: "Set", constructor: $t }).set(jt, { name: "Object", constructor: bt }).set(Oe, { name: "TypedArray", constructor: Ae }).set(Nt, { name: "RegExp", constructor: Dt }).set(F, { name: "Date", constructor: N }).set(D, { name: "DataView", constructor: C }).set(V, { name: "Error", constructor: G2 }).set(g3, { name: "AggregateError", constructor: p3 }).set(zt, { name: "RangeError", constructor: Bt }).set(we, { name: "TypeError", constructor: xe }).set(z, { name: "Boolean", constructor: B }).set(vt, { name: "Number", constructor: ft }).set(Qt, { name: "String", constructor: Kt }).set(Tt, { name: "Promise", constructor: Lt }).set(Ie, { name: "WeakMap", constructor: ke }).set(Le, { name: "WeakSet", constructor: Re });
            function ln(t32, e32, r22, n22) {
              for (var o22, a22 = t32; t32 || Nr(t32); ) {
                var i22 = un.get(t32);
                if (void 0 !== i22) {
                  var u22 = i22.name, l22 = i22.constructor;
                  if (K(l22, a22)) return void 0 !== n22 && o22 !== t32 && fn(e32, a22, o22 || a22, r22, n22), u22;
                }
                var f22 = Pt(t32, "constructor");
                if (void 0 !== f22 && "function" == typeof f22.value && "" !== f22.value.name && cn(a22, f22.value)) return void 0 === n22 || o22 === t32 && Dr.has(f22.value.name) || fn(e32, a22, o22 || a22, r22, n22), Kt(f22.value.name);
                t32 = At(t32), void 0 === o22 && (o22 = t32);
              }
              if (null === o22) return null;
              var s22 = Ze(a22);
              if (r22 > e32.depth && null !== e32.depth) return "".concat(s22, " <Complex prototype>");
              var y22 = ln(o22, e32, r22 + 1, n22);
              return null === y22 ? "".concat(s22, " <").concat(Jr(o22, c6(c6({}, e32), {}, { customInspect: false, depth: -1 })), ">") : "".concat(s22, " <").concat(y22, ">");
            }
            __name2(ln, "ln");
            function fn(t32, e32, r22, n22, a22) {
              var i22, c22, u22 = 0;
              do {
                if (0 !== u22 || e32 === r22) {
                  if (null === (r22 = At(r22))) return;
                  var l22 = Pt(r22, "constructor");
                  if (void 0 !== l22 && "function" == typeof l22.value && Dr.has(l22.value.name)) return;
                }
                0 === u22 ? c22 = new Vt() : P(i22, function(t42) {
                  return c22.add(t42);
                }), i22 = Ct(r22), j(t32.seen, e32);
                var f22, s22 = o5(i22);
                try {
                  for (s22.s(); !(f22 = s22.n()).done; ) {
                    var y22 = f22.value;
                    if (!("constructor" === y22 || Et(e32, y22) || 0 !== u22 && c22.has(y22))) {
                      var p22 = Pt(r22, y22);
                      if ("function" != typeof p22.value) {
                        var g22 = Nn(t32, r22, n22, y22, 0, p22, e32);
                        t32.colors ? j(a22, "\x1B[2m".concat(g22, "\x1B[22m")) : j(a22, g22);
                      }
                    }
                  }
                } catch (t42) {
                  s22.e(t42);
                } finally {
                  s22.f();
                }
                _(t32.seen);
              } while (3 !== ++u22);
            }
            __name2(fn, "fn");
            function sn(t32, e32, r22) {
              var n22 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "";
              return null === t32 ? "" !== e32 && r22 !== e32 ? "[".concat(r22).concat(n22, ": null prototype] [").concat(e32, "] ") : "[".concat(r22).concat(n22, ": null prototype] ") : "" !== e32 && t32 !== e32 ? "".concat(t32).concat(n22, " [").concat(e32, "] ") : "".concat(t32).concat(n22, " ");
            }
            __name2(sn, "sn");
            function yn(t32, e32) {
              var r22, n22 = wt(t32);
              if (e32) r22 = xt(t32), 0 !== n22.length && E(r22, n22);
              else {
                try {
                  r22 = _t(t32);
                } catch (e42) {
                  _r(pr(e42) && "ReferenceError" === e42.name && yr(t32)), r22 = xt(t32);
                }
                0 !== n22.length && E(r22, S3(n22, function(e42) {
                  return kt(t32, e42);
                }));
              }
              return r22;
            }
            __name2(yn, "yn");
            function pn(t32, e32, r22) {
              var n22 = "";
              return null === e32 && (n22 = Ze(t32)) === r22 && (n22 = "Object"), sn(e32, r22, n22);
            }
            __name2(pn, "pn");
            function gn(t32, e32, a22, i22) {
              if ("object" !== n6(e32) && "function" != typeof e32 && !Nr(e32)) return An(t32.stylize, e32, t32);
              if (null === e32) return t32.stylize("null", "null");
              var u22 = e32, l22 = Ge(e32, !!t32.showProxy);
              if (void 0 !== l22) {
                if (null === l22 || null === l22[0]) return t32.stylize("<Revoked Proxy>", "special");
                if (t32.showProxy) return (function(t42, e42, r22) {
                  if (r22 > t42.depth && null !== t42.depth) return t42.stylize("Proxy [Array]", "special");
                  r22 += 1, t42.indentationLvl += 2;
                  var n22 = [gn(t42, e42[0], r22), gn(t42, e42[1], r22)];
                  return t42.indentationLvl -= 2, Wn(t42, n22, "", ["Proxy [", "]"], 2, r22);
                })(t32, l22, a22);
                e32 = l22;
              }
              if (t32.customInspect) {
                var p22, g22 = e32[Je];
                if ("function" == typeof g22 && g22 !== Jr && (null === (p22 = Pt(e32, "constructor")) || void 0 === p22 || null === (p22 = p22.value) || void 0 === p22 ? void 0 : p22.prototype) !== e32) {
                  var v22 = null === t32.depth ? null : t32.depth - a22, h22 = void 0 !== l22 || !K(bt, u22), d22 = J(g22, u22, v22, (function(t42, e42) {
                    var r22 = c6({ stylize: t42.stylize, showHidden: t42.showHidden, depth: t42.depth, colors: t42.colors, customInspect: t42.customInspect, showProxy: t42.showProxy, maxArrayLength: t42.maxArrayLength, maxStringLength: t42.maxStringLength, breakLength: t42.breakLength, compact: t42.compact, sorted: t42.sorted, getters: t42.getters, numericSeparator: t42.numericSeparator }, t42.userOptions);
                    if (e42) {
                      Rt(r22, null);
                      var a32, i33 = o5(_t(r22));
                      try {
                        for (i33.s(); !(a32 = i33.n()).done; ) {
                          var u32 = a32.value;
                          "object" !== n6(r22[u32]) && "function" != typeof r22[u32] || null === r22[u32] || delete r22[u32];
                        }
                      } catch (t5) {
                        i33.e(t5);
                      } finally {
                        i33.f();
                      }
                      r22.stylize = Rt(function(e5, r32) {
                        var n22;
                        try {
                          n22 = "".concat(t42.stylize(e5, r32));
                        } catch (t5) {
                        }
                        return "string" != typeof n22 ? e5 : n22;
                      }, null);
                    }
                    return r22;
                  })(t32, h22), Jr);
                  if (d22 !== u22) return "string" != typeof d22 ? gn(t32, d22, a22) : fe(d22, "\n", "\n".concat(ue(" ", t32.indentationLvl)));
                }
              }
              if (t32.seen.includes(e32)) {
                var m22 = 1;
                return void 0 === t32.circular ? (t32.circular = new Gt(), t32.circular.set(e32, m22)) : void 0 === (m22 = t32.circular.get(e32)) && (m22 = t32.circular.size + 1, t32.circular.set(e32, m22)), t32.stylize("[Circular *".concat(m22, "]"), "special");
              }
              return (function(t42, e42, n22, a32) {
                var i33, c22;
                t42.showHidden && (n22 <= t42.depth || null === t42.depth) && (c22 = []);
                var u32 = ln(e42, t42, n22, c22);
                void 0 !== c22 && 0 === c22.length && (c22 = void 0);
                var l32 = e42[Pe];
                ("string" != typeof l32 || "" !== l32 && (t42.showHidden ? Et : kt)(e42, Pe)) && (l32 = "");
                var p32, g32, v32 = "", h32 = an, d32 = true, m32 = 0, S22 = t42.showHidden ? De : Ne, P2 = 0;
                if (de in e42 || null === u32) if (d32 = false, b3(e42)) {
                  var O2 = "Array" !== u32 || "" !== l32 ? sn(u32, l32, "Array", "(".concat(e42.length, ")")) : "";
                  if (i33 = He(e42, S22), p32 = ["".concat(O2, "["), "]"], 0 === e42.length && 0 === i33.length && void 0 === c22) return "".concat(p32[0], "]");
                  P2 = 2, h32 = En;
                } else if (vr(e42)) {
                  var _2 = qt(e42), B2 = sn(u32, l32, "Set", "(".concat(_2, ")"));
                  if (i33 = yn(e42, t42.showHidden), h32 = q(In, null, null !== u32 ? e42 : Jt(e42)), 0 === _2 && 0 === i33.length && void 0 === c22) return "".concat(B2, "{}");
                  p32 = ["".concat(B2, "{"), "}"];
                } else if (fr(e42)) {
                  var z2 = nt(e42), C2 = sn(u32, l32, "Map", "(".concat(z2, ")"));
                  if (i33 = yn(e42, t42.showHidden), h32 = q(Rn, null, null !== u32 ? e42 : rt(e42)), 0 === z2 && 0 === i33.length && void 0 === c22) return "".concat(C2, "{}");
                  p32 = ["".concat(C2, "{"), "}"];
                } else if (Pr(e42)) {
                  i33 = He(e42, S22);
                  var D2 = e42, N2 = "";
                  null === u32 && (N2 = je(e42), D2 = new y3[N2](e42));
                  var F2 = _e(e42), G22 = sn(u32, l32, N2, "(".concat(F2, ")"));
                  if (p32 = ["".concat(G22, "["), "]"], 0 === e42.length && 0 === i33.length && !t42.showHidden) return "".concat(p32[0], "]");
                  h32 = q(kn, null, D2, F2), P2 = 2;
                } else sr(e42) ? (i33 = yn(e42, t42.showHidden), p32 = vn("Map", l32), h32 = q(Cn, null, p32)) : hr(e42) ? (i33 = yn(e42, t42.showHidden), p32 = vn("Set", l32), h32 = q(Cn, null, p32)) : d32 = true;
                if (d32) {
                  if (i33 = yn(e42, t42.showHidden), p32 = ["{", "}"], "function" == typeof e42) {
                    if (v32 = (function(t5, e5, r22, n32) {
                      var o22 = Q(e5);
                      if (pe(o22, "class") && "}" === o22[o22.length - 1]) {
                        var a42 = se(o22, 5, -1), i42 = ne(a42, "{");
                        if (-1 !== i42 && (!re(se(a42, 0, i42), "(") || null !== Ft(Zr, Wt($r, a42)))) return (function(t6, e6, r32) {
                          var n42 = Et(t6, "name") && t6.name || "(anonymous)", o32 = "class ".concat(n42);
                          if ("Function" !== e6 && null !== e6 && (o32 += " [".concat(e6, "]")), "" !== r32 && e6 !== r32 && (o32 += " [".concat(r32, "]")), null !== e6) {
                            var a52 = At(t6).name;
                            a52 && (o32 += " extends ".concat(a52));
                          } else o32 += " extends [null prototype]";
                          return "[".concat(o32, "]");
                        })(e5, r22, n32);
                      }
                      var c32 = "Function";
                      nr(e5) && (c32 = "Generator".concat(c32)), rr(e5) && (c32 = "Async".concat(c32));
                      var u42 = "[".concat(c32);
                      return null === r22 && (u42 += " (null prototype)"), "" === e5.name ? u42 += " (anonymous)" : u42 += ": ".concat("string" == typeof e5.name ? e5.name : gn(t5, e5.name)), u42 += "]", r22 !== c32 && null !== r22 && (u42 += " ".concat(r22)), "" !== n32 && r22 !== n32 && (u42 += " [".concat(n32, "]")), u42;
                    })(t42, e42, u32, l32), 0 === i33.length && void 0 === c22) return t42.stylize(v32, "special");
                  } else if ("Object" === u32) {
                    if (ir(e42) ? p32[0] = "[Arguments] {" : "" !== l32 && (p32[0] = "".concat(sn(u32, l32, "Object"), "{")), 0 === i33.length && void 0 === c22) return "".concat(p32[0], "}");
                  } else if (mr(e42)) {
                    v32 = Ut(null !== u32 ? e42 : new Dt(e42));
                    var V2 = sn(u32, l32, "RegExp");
                    if ("RegExp " !== V2 && (v32 = "".concat(V2).concat(v32)), 0 === i33.length && void 0 === c22 || n22 > t42.depth && null !== t42.depth) return t42.stylize(v32, "regexp");
                  } else if (Sr(e42)) {
                    v32 = yt(W(e42)) ? U(e42) : H(e42);
                    var Z2 = sn(u32, l32, "Date");
                    if ("Date " !== Z2 && (v32 = "".concat(Z2).concat(v32)), 0 === i33.length && void 0 === c22) return t42.stylize(v32, "date");
                  } else if (Ke(e42)) {
                    if (v32 = (function(t5, e5, r22, n32, a42) {
                      var i42 = null != t5.name ? t5.name : "Error", c32 = dn(n32, t5);
                      (function(t6, e6, r32, n42) {
                        if (!t6.showHidden && 0 !== e6.length) for (var o22 = 0, a52 = ["name", "message", "stack"]; o22 < a52.length; o22++) {
                          var i52 = a52[o22], c42 = w(e6, i52);
                          -1 === c42 || "string" == typeof r32[i52] && !re(n42, r32[i52]) || R(e6, c42, 1);
                        }
                      })(n32, a42, t5, c32), !("cause" in t5) || 0 !== a42.length && x(a42, "cause") || j(a42, "cause"), !b3(t5.errors) || 0 !== a42.length && x(a42, "errors") || j(a42, "errors"), c32 = (function(t6, e6, r32, n42) {
                        var o22 = r32.length;
                        if ("string" != typeof r32 && (t6 = le(t6, "".concat(r32), "".concat(r32, " [").concat(se(sn(e6, n42, "Error"), 0, -1), "]"))), null === e6 || ee(r32, "Error") && pe(t6, r32) && (t6.length === o22 || ":" === t6[o22] || "\n" === t6[o22])) {
                          var a52 = "Error";
                          if (null === e6) {
                            var i52 = Ft(/^([A-Z][a-z_ A-Z0-9[\]()-]+)(?::|\n {4}at)/, t6) || Ft(/^([a-z_A-Z0-9-]*Error)$/, t6);
                            o22 = (a52 = (null == i52 ? void 0 : i52[1]) || "").length, a52 = a52 || "Error";
                          }
                          var c42 = se(sn(e6, n42, a52), 0, -1);
                          r32 !== c42 && (t6 = re(c42, r32) ? 0 === o22 ? "".concat(c42, ": ").concat(t6) : "".concat(c42).concat(se(t6, o22)) : "".concat(c42, " [").concat(r32, "]").concat(se(t6, o22)));
                        }
                        return t6;
                      })(c32, e5, i42, r22);
                      var u42 = t5.message && ne(c32, t5.message) || -1;
                      -1 !== u42 && (u42 += t5.message.length);
                      var l42 = ne(c32, "\n    at", u42);
                      if (-1 === l42) c32 = "[".concat(c32, "]");
                      else {
                        var f22 = se(c32, 0, l42), s22 = (function(t6, e6, r32) {
                          var n42, o22 = ye(r32, "\n");
                          try {
                            n42 = e6.cause;
                          } catch (t7) {
                          }
                          if (null != n42 && Ke(n42)) {
                            var a52 = dn(t6, n42), i52 = ne(a52, "\n    at");
                            if (-1 !== i52) {
                              var c42 = hn(o22, ye(se(a52, i52 + 1), "\n")), u52 = c42.len, l5 = c42.offset;
                              if (u52 > 0) {
                                var f32 = u52 - 2, s32 = "    ... ".concat(f32, " lines matching cause stack trace ...");
                                o22.splice(l5 + 1, f32, t6.stylize(s32, "undefined"));
                              }
                            }
                          }
                          return o22;
                        })(n32, t5, se(c32, l42 + 1));
                        if (n32.colors) {
                          var y22, p4, g4 = (function() {
                            var t6;
                            try {
                              t6 = process.cwd();
                            } catch (t7) {
                              return;
                            }
                            return t6;
                          })(), v4 = o5(s22);
                          try {
                            for (v4.s(); !(p4 = v4.n()).done; ) {
                              var h42 = p4.value, d4 = Ft(Vr, h42);
                              if (null !== d4 && jr.exists(d4[1])) f22 += "\n".concat(n32.stylize(h42, "undefined"));
                              else {
                                if (f22 += "\n", h42 = bn(n32, h42), void 0 !== g4) {
                                  var m4 = mn(n32, h42, g4);
                                  m4 === h42 && (m4 = mn(n32, h42, y22 = y22 || Lr(g4))), h42 = m4;
                                }
                                f22 += h42;
                              }
                            }
                          } catch (t6) {
                            v4.e(t6);
                          } finally {
                            v4.f();
                          }
                        } else f22 += "\n".concat(A(s22, "\n"));
                        c32 = f22;
                      }
                      if (0 !== n32.indentationLvl) {
                        var S32 = ue(" ", n32.indentationLvl);
                        c32 = fe(c32, "\n", "\n".concat(S32));
                      }
                      return c32;
                    })(e42, u32, l32, t42, i33), 0 === i33.length && void 0 === c22) return v32;
                  } else if (or(e42)) {
                    var $2 = sn(u32, l32, ar(e42) ? "ArrayBuffer" : "SharedArrayBuffer");
                    if (void 0 === a32) h32 = jn;
                    else if (0 === i33.length && void 0 === c22) return $2 + "{ byteLength: ".concat(xn(t42.stylize, e42.byteLength, false), " }");
                    p32[0] = "".concat($2, "{"), L(i33, "byteLength");
                  } else if (ur(e42)) p32[0] = "".concat(sn(u32, l32, "DataView"), "{"), L(i33, "byteLength", "byteOffset", "buffer");
                  else if (gr(e42)) p32[0] = "".concat(sn(u32, l32, "Promise"), "{"), h32 = Dn;
                  else if (br(e42)) p32[0] = "".concat(sn(u32, l32, "WeakSet"), "{"), h32 = t42.showHidden ? zn : Bn;
                  else if (dr(e42)) p32[0] = "".concat(sn(u32, l32, "WeakMap"), "{"), h32 = t42.showHidden ? Mn : Bn;
                  else if (yr(e42)) p32[0] = "".concat(sn(u32, l32, "Module"), "{"), h32 = On.bind(null, i33);
                  else if (cr(e42)) {
                    if (v32 = (function(t5, e5, r22, n32, o22) {
                      var a42, i42;
                      wr(t5) ? (a42 = dt, i42 = "Number") : xr(t5) ? (a42 = he, i42 = "String", r22.splice(0, t5.length)) : Ar(t5) ? (a42 = M, i42 = "Boolean") : Or(t5) ? (a42 = T, i42 = "BigInt") : (a42 = me, i42 = "Symbol");
                      var c32 = "[".concat(i42);
                      return i42 !== n32 && (c32 += null === n32 ? " (null prototype)" : " (".concat(n32, ")")), c32 += ": ".concat(An(on2, a42(t5), e5), "]"), "" !== o22 && o22 !== n32 && (c32 += " [".concat(o22, "]")), 0 !== r22.length || e5.stylize === on2 ? c32 : e5.stylize(c32, ge(i42));
                    })(e42, t42, i33, u32, l32), 0 === i33.length && void 0 === c22) return v32;
                  } else if (!(function(t5) {
                    return f4 = f4 || r4(802), "string" == typeof t5.href && t5 instanceof f4.URL;
                  })(e42) || n22 > t42.depth && null !== t42.depth) {
                    if (0 === i33.length && void 0 === c22) {
                      if (lr(e42)) {
                        var Y2 = $e(e42).toString(16);
                        return t42.stylize("[External: ".concat(Y2, "]"), "special");
                      }
                      return "".concat(pn(e42, u32, l32), "{}");
                    }
                    p32[0] = "".concat(pn(e42, u32, l32), "{");
                  } else if (i33 = (function(t5) {
                    return s4 = s4 || wt(new f4.URL("http://user:pass@localhost:8080/?foo=bar#baz")), t5.filter(function(t6) {
                      return -1 === s4[t6];
                    });
                  })(i33), v32 = e42.href, 0 === i33.length && void 0 === c22) return v32;
                }
                if (n22 > t42.depth && null !== t42.depth) {
                  var J2 = se(pn(e42, u32, l32), 0, -1);
                  return null !== u32 && (J2 = "[".concat(J2, "]")), t42.stylize(J2, "special");
                }
                n22 += 1, t42.seen.push(e42), t42.currentDepth = n22;
                var K2 = t42.indentationLvl;
                try {
                  for (g32 = h32(t42, e42, n22), m32 = 0; m32 < i33.length; m32++) j(g32, Nn(t42, e42, n22, i33[m32], P2));
                  void 0 !== c22 && E(g32, c22);
                } catch (r22) {
                  if (!tr(r22)) throw r22;
                  return (function(t5, e5, r32, n32) {
                    return t5.seen.pop(), t5.indentationLvl = n32, t5.stylize("[".concat(r32, ": Inspection interrupted ") + "prematurely. Maximum call stack size exceeded.]", "special");
                  })(t42, 0, se(pn(e42, u32, l32), 0, -1), K2);
                }
                if (void 0 !== t42.circular) {
                  var X2 = t42.circular.get(e42);
                  if (void 0 !== X2) {
                    var tt2 = t42.stylize("<ref *".concat(X2, ">"), "special");
                    true !== t42.compact ? v32 = "" === v32 ? tt2 : "".concat(tt2, " ").concat(v32) : p32[0] = "".concat(tt2, " ").concat(p32[0]);
                  }
                }
                if (t42.seen.pop(), t42.sorted) {
                  var et22 = true === t42.sorted ? void 0 : t42.sorted;
                  if (0 === P2) I(g32, et22);
                  else if (i33.length > 1) {
                    var ot2 = I(k3(g32, g32.length - i33.length), et22);
                    L(ot2, g32, g32.length - i33.length, i33.length), Mt(R, null, ot2);
                  }
                }
                var at2 = Wn(t42, g32, v32, p32, P2, n22, e42), it2 = (t42.budget[t42.indentationLvl] || 0) + at2.length;
                return t42.budget[t42.indentationLvl] = it2, it2 > Math.pow(2, 27) && (t42.depth = -1), at2;
              })(t32, e32, a22, i22);
            }
            __name2(gn, "gn");
            function vn(t32, e32) {
              return e32 !== "".concat(t32, " Iterator") && ("" !== e32 && (e32 += "] ["), e32 += "".concat(t32, " Iterator")), ["[".concat(e32, "] {"), "}"];
            }
            __name2(vn, "vn");
            function hn(t32, e32) {
              for (var r22 = 0; r22 < t32.length - 3; r22++) {
                var n22 = w(e32, t32[r22]);
                if (-1 !== n22) {
                  var o22 = e32.length - n22;
                  if (o22 > 3) {
                    for (var a22 = 1, i22 = it(t32.length - r22, o22); i22 > a22 && t32[r22 + a22] === e32[n22 + a22]; ) a22++;
                    if (a22 > 3) return { len: a22, offset: r22 };
                  }
                }
              }
              return { len: 0, offset: 0 };
            }
            __name2(hn, "hn");
            function dn(t32, e32) {
              if (e32.stack) {
                if ("string" == typeof e32.stack) return e32.stack;
                t32.seen.push(e32), t32.indentationLvl += 4;
                var r22 = gn(t32, e32.stack);
                return t32.indentationLvl -= 4, t32.seen.pop(), "".concat(Z(e32), "\n    ").concat(r22);
              }
              return Z(e32);
            }
            __name2(dn, "dn");
            function bn(t32, e32) {
              for (var r22 = "", n22 = 0, o22 = 0; ; ) {
                var a22 = ne(e32, "node_modules", o22);
                if (-1 === a22) break;
                var i22 = e32[a22 - 1], c22 = e32[a22 + 12];
                if ("/" !== c22 && "\\" !== c22 || "/" !== i22 && "\\" !== i22) o22 = a22 + 1;
                else {
                  var u22 = a22 + 13;
                  r22 += se(e32, n22, u22);
                  var l22 = ne(e32, i22, u22);
                  "@" === e32[u22] && (l22 = ne(e32, i22, l22 + 1));
                  var f22 = se(e32, u22, l22);
                  r22 += t32.stylize(f22, "module"), n22 = l22, o22 = l22;
                }
              }
              return 0 !== n22 && (e32 = r22 + se(e32, n22)), e32;
            }
            __name2(bn, "bn");
            function mn(t32, e32, r22) {
              var n22 = ne(e32, r22), o22 = "", a22 = r22.length;
              if (-1 !== n22) {
                "file://" === se(e32, n22 - 7, n22) && (a22 += 7, n22 -= 7);
                var i22 = "(" === e32[n22 - 1] ? n22 - 1 : n22, c22 = i22 !== n22 && ee(e32, ")") ? -1 : e32.length, u22 = n22 + a22 + 1, l22 = se(e32, i22, u22);
                o22 += se(e32, 0, i22), o22 += t32.stylize(l22, "undefined"), o22 += se(e32, u22, c22), -1 === c22 && (o22 += t32.stylize(")", "undefined"));
              } else o22 += e32;
              return o22;
            }
            __name2(mn, "mn");
            function Sn(t32) {
              var e32 = "", r22 = t32.length;
              _r(0 !== r22);
              for (var n22 = "-" === t32[0] ? 1 : 0; r22 >= n22 + 4; r22 -= 3) e32 = "_".concat(se(t32, r22 - 3, r22)).concat(e32);
              return r22 === t32.length ? t32 : "".concat(se(t32, 0, r22)).concat(e32);
            }
            __name2(Sn, "Sn");
            var Pn = /* @__PURE__ */ __name2(function(t32) {
              return "... ".concat(t32, " more item").concat(t32 > 1 ? "s" : "");
            }, "Pn");
            function xn(t32, e32, r22) {
              if (!r22) return Ot(e32, -0) ? t32("-0", "number") : t32("".concat(e32), "number");
              var n22 = lt(e32), o22 = Kt(n22);
              return n22 === e32 ? !st(e32) || re(o22, "e") ? t32(o22, "number") : t32("".concat(Sn(o22)), "number") : yt(e32) ? t32(o22, "number") : t32("".concat(Sn(o22), ".").concat((function(t42) {
                for (var e42 = "", r32 = 0; r32 < t42.length - 3; r32 += 3) e42 += "".concat(se(t42, r32, r32 + 3), "_");
                return 0 === r32 ? t42 : "".concat(e42).concat(se(t42, r32));
              })(se(Kt(e32), o22.length + 1))), "number");
            }
            __name2(xn, "xn");
            function wn(t32, e32, r22) {
              var n22 = Kt(e32);
              return t32("".concat(r22 ? Sn(n22) : n22, "n"), "bigint");
            }
            __name2(wn, "wn");
            function An(t32, e32, r22) {
              if ("string" == typeof e32) {
                var n22 = "";
                if (e32.length > r22.maxStringLength) {
                  var o22 = e32.length - r22.maxStringLength;
                  e32 = se(e32, 0, r22.maxStringLength), n22 = "... ".concat(o22, " more character").concat(o22 > 1 ? "s" : "");
                }
                return true !== r22.compact && e32.length > 16 && e32.length > r22.breakLength - r22.indentationLvl - 4 ? A(O(Cr(e32), function(e42) {
                  return t32(rn(e42), "string");
                }), " +\n".concat(ue(" ", r22.indentationLvl + 2))) + n22 : t32(rn(e32), "string") + n22;
              }
              return "number" == typeof e32 ? xn(t32, e32, r22.numericSeparator) : "bigint" == typeof e32 ? wn(t32, e32, r22.numericSeparator) : "boolean" == typeof e32 ? t32("".concat(e32), "boolean") : void 0 === e32 ? t32("undefined", "undefined") : t32(be(e32), "symbol");
            }
            __name2(An, "An");
            function On(t32, e32, r22, n22) {
              for (var o22 = new v3(t32.length), a22 = 0; a22 < t32.length; a22++) try {
                o22[a22] = Nn(e32, r22, n22, t32[a22], 0);
              } catch (r32) {
                _r(pr(r32) && "ReferenceError" === r32.name);
                var i22 = u5({}, t32[a22], "");
                o22[a22] = Nn(e32, i22, n22, t32[a22], 0);
                var c22 = oe(o22[a22], " ");
                o22[a22] = se(o22[a22], 0, c22 + 1) + e32.stylize("<uninitialized>", "special");
              }
              return t32.length = 0, o22;
            }
            __name2(On, "On");
            function _n(t32, e32, r22, n22, o22, a22) {
              for (var i22 = _t(e32), c22 = a22; a22 < i22.length && o22.length < n22; a22++) {
                var u22 = i22[a22], l22 = +u22;
                if (l22 > Math.pow(2, 32) - 2) break;
                if ("".concat(c22) !== u22) {
                  if (null === Ft(Gr, u22)) break;
                  var f22 = l22 - c22, s22 = f22 > 1 ? "s" : "", y22 = "<".concat(f22, " empty item").concat(s22, ">");
                  if (j(o22, t32.stylize(y22, "undefined")), c22 = l22, o22.length === n22) break;
                }
                j(o22, Nn(t32, e32, r22, u22, 1)), c22++;
              }
              var p22 = e32.length - c22;
              if (o22.length !== n22) {
                if (p22 > 0) {
                  var g22 = p22 > 1 ? "s" : "", v22 = "<".concat(p22, " empty item").concat(g22, ">");
                  j(o22, t32.stylize(v22, "undefined"));
                }
              } else p22 > 0 && j(o22, Pn(p22));
              return o22;
            }
            __name2(_n, "_n");
            function jn(t32, e32) {
              var n22;
              try {
                n22 = new Ee(e32);
              } catch (e42) {
                return [t32.stylize("(detached)", "special")];
              }
              void 0 === l4 && (l4 = ze(r4(883).h.prototype.hexSlice));
              var o22 = ve(Wt(/(.{2})/g, l4(n22, 0, it(t32.maxArrayLength, n22.length)), "$1 ")), a22 = n22.length - t32.maxArrayLength;
              return a22 > 0 && (o22 += " ... ".concat(a22, " more byte").concat(a22 > 1 ? "s" : "")), ["".concat(t32.stylize("[Uint8Contents]", "special"), ": <").concat(o22, ">")];
            }
            __name2(jn, "jn");
            function En(t32, e32, r22) {
              for (var n22 = e32.length, o22 = it(at(0, t32.maxArrayLength), n22), a22 = n22 - o22, i22 = [], c22 = 0; c22 < o22; c22++) {
                if (!Et(e32, c22)) return _n(t32, e32, r22, o22, i22, c22);
                j(i22, Nn(t32, e32, r22, c22, 1));
              }
              return a22 > 0 && j(i22, Pn(a22)), i22;
            }
            __name2(En, "En");
            function kn(t32, e32, r22, n22, o22) {
              for (var a22 = it(at(0, r22.maxArrayLength), e32), i22 = t32.length - a22, c22 = new v3(a22), u22 = t32.length > 0 && "number" == typeof t32[0] ? xn : wn, l22 = 0; l22 < a22; ++l22) c22[l22] = u22(r22.stylize, t32[l22], r22.numericSeparator);
              if (i22 > 0 && (c22[a22] = Pn(i22)), r22.showHidden) {
                r22.indentationLvl += 2;
                for (var f22 = 0, s22 = ["BYTES_PER_ELEMENT", "length", "byteLength", "byteOffset", "buffer"]; f22 < s22.length; f22++) {
                  var y22 = s22[f22], p22 = gn(r22, t32[y22], o22, true);
                  j(c22, "[".concat(y22, "]: ").concat(p22));
                }
                r22.indentationLvl -= 2;
              }
              return c22;
            }
            __name2(kn, "kn");
            function In(t32, e32, r22, n22) {
              var a22 = t32.size, i22 = it(at(0, e32.maxArrayLength), a22), c22 = a22 - i22, u22 = [];
              e32.indentationLvl += 2;
              var l22, f22 = 0, s22 = o5(t32);
              try {
                for (s22.s(); !(l22 = s22.n()).done; ) {
                  var y22 = l22.value;
                  if (f22 >= i22) break;
                  j(u22, gn(e32, y22, n22)), f22++;
                }
              } catch (t42) {
                s22.e(t42);
              } finally {
                s22.f();
              }
              return c22 > 0 && j(u22, Pn(c22)), e32.indentationLvl -= 2, u22;
            }
            __name2(In, "In");
            function Rn(t32, e32, r22, n22) {
              var a22 = t32.size, i22 = it(at(0, e32.maxArrayLength), a22), c22 = a22 - i22, u22 = [];
              e32.indentationLvl += 2;
              var l22, f22 = 0, s22 = o5(t32);
              try {
                for (s22.s(); !(l22 = s22.n()).done; ) {
                  var y22 = l22.value, p22 = y22[0], g22 = y22[1];
                  if (f22 >= i22) break;
                  j(u22, "".concat(gn(e32, p22, n22), " => ").concat(gn(e32, g22, n22))), f22++;
                }
              } catch (t42) {
                s22.e(t42);
              } finally {
                s22.f();
              }
              return c22 > 0 && j(u22, Pn(c22)), e32.indentationLvl -= 2, u22;
            }
            __name2(Rn, "Rn");
            function Ln(t32, e32, r22, n22) {
              var o22 = at(t32.maxArrayLength, 0), a22 = it(o22, r22.length), i22 = new v3(a22);
              t32.indentationLvl += 2;
              for (var c22 = 0; c22 < a22; c22++) i22[c22] = gn(t32, r22[c22], e32);
              t32.indentationLvl -= 2, 0 !== n22 || t32.sorted || I(i22);
              var u22 = r22.length - a22;
              return u22 > 0 && j(i22, Pn(u22)), i22;
            }
            __name2(Ln, "Ln");
            function Tn(t32, e32, r22, n22) {
              var o22 = at(t32.maxArrayLength, 0), a22 = r22.length / 2, i22 = a22 - o22, c22 = it(o22, a22), u22 = new v3(c22), l22 = 0;
              if (t32.indentationLvl += 2, 0 === n22) {
                for (; l22 < c22; l22++) {
                  var f22 = 2 * l22;
                  u22[l22] = "".concat(gn(t32, r22[f22], e32), " => ").concat(gn(t32, r22[f22 + 1], e32));
                }
                t32.sorted || I(u22);
              } else for (; l22 < c22; l22++) {
                var s22 = 2 * l22, y22 = [gn(t32, r22[s22], e32), gn(t32, r22[s22 + 1], e32)];
                u22[l22] = Wn(t32, y22, "", ["[", "]"], 2, e32);
              }
              return t32.indentationLvl -= 2, i22 > 0 && j(u22, Pn(i22)), u22;
            }
            __name2(Tn, "Tn");
            function Bn(t32) {
              return [t32.stylize("<items unknown>", "special")];
            }
            __name2(Bn, "Bn");
            function zn(t32, e32, r22) {
              return Ln(t32, r22, Ve(e32), 0);
            }
            __name2(zn, "zn");
            function Mn(t32, e32, r22) {
              return Tn(t32, r22, Ve(e32), 0);
            }
            __name2(Mn, "Mn");
            function Cn(t32, e32, r22, n22) {
              var o22 = Ve(r22, true), a22 = o22[0];
              return o22[1] ? (t32[0] = Wt(/ Iterator] {$/, t32[0], " Entries] {"), Tn(e32, n22, a22, 2)) : Ln(e32, n22, a22, 1);
            }
            __name2(Cn, "Cn");
            function Dn(t32, e32, r22) {
              var n22, o22 = Ue(e32), a22 = o22[0], i22 = o22[1];
              if (a22 === Fe) n22 = [t32.stylize("<pending>", "special")];
              else {
                t32.indentationLvl += 2;
                var c22 = gn(t32, i22, r22);
                t32.indentationLvl -= 2, n22 = [a22 === We ? "".concat(t32.stylize("<rejected>", "special"), " ").concat(c22) : c22];
              }
              return n22;
            }
            __name2(Dn, "Dn");
            function Nn(t32, e32, r22, o22, a22, i22) {
              var c22, u22, l22 = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : e32, f22 = " ";
              if (void 0 !== (i22 = i22 || Pt(e32, o22) || { value: e32[o22], enumerable: true }).value) {
                var s22 = true !== t32.compact || 0 !== a22 ? 2 : 3;
                t32.indentationLvl += s22, u22 = gn(t32, i22.value, r22), 3 === s22 && t32.breakLength < Hr(u22, t32.colors) && (f22 = "\n".concat(ue(" ", t32.indentationLvl))), t32.indentationLvl -= s22;
              } else if (void 0 !== i22.get) {
                var y22 = void 0 !== i22.set ? "Getter/Setter" : "Getter", p22 = t32.stylize, g22 = "special";
                if (t32.getters && (true === t32.getters || "get" === t32.getters && void 0 === i22.set || "set" === t32.getters && void 0 !== i22.set)) try {
                  var v22 = J(i22.get, l22);
                  if (t32.indentationLvl += 2, null === v22) u22 = "".concat(p22("[".concat(y22, ":"), g22), " ").concat(p22("null", "null")).concat(p22("]", g22));
                  else if ("object" === n6(v22)) u22 = "".concat(p22("[".concat(y22, "]"), g22), " ").concat(gn(t32, v22, r22));
                  else {
                    var h22 = An(p22, v22, t32);
                    u22 = "".concat(p22("[".concat(y22, ":"), g22), " ").concat(h22).concat(p22("]", g22));
                  }
                  t32.indentationLvl -= 2;
                } catch (t42) {
                  var d22 = "<Inspection threw (".concat(t42.message, ")>");
                  u22 = "".concat(p22("[".concat(y22, ":"), g22), " ").concat(d22).concat(p22("]", g22));
                }
                else u22 = t32.stylize("[".concat(y22, "]"), g22);
              } else u22 = void 0 !== i22.set ? t32.stylize("[Setter]", "special") : t32.stylize("undefined", "undefined");
              if (1 === a22) return u22;
              if ("symbol" === n6(o22)) {
                var b22 = Wt(Br, be(o22), en);
                c22 = t32.stylize(b22, "symbol");
              } else c22 = null !== Ft(Ur, o22) ? "__proto__" === o22 ? "['__proto__']" : t32.stylize(o22, "name") : t32.stylize(rn(o22), "string");
              return false === i22.enumerable && (c22 = "[".concat(c22, "]")), "".concat(c22, ":").concat(f22).concat(u22);
            }
            __name2(Nn, "Nn");
            function Fn(t32, e32, r22, n22) {
              var o22 = e32.length + r22;
              if (o22 + e32.length > t32.breakLength) return false;
              for (var a22 = 0; a22 < e32.length; a22++) if (t32.colors ? o22 += Xe(e32[a22]).length : o22 += e32[a22].length, o22 > t32.breakLength) return false;
              return "" === n22 || !re(n22, "\n");
            }
            __name2(Fn, "Fn");
            function Wn(t32, e32, r22, n22, o22, a22, i22) {
              if (true !== t32.compact) {
                if ("number" == typeof t32.compact && t32.compact >= 1) {
                  var c22 = e32.length;
                  if (2 === o22 && c22 > 6 && (e32 = (function(t42, e42, r32) {
                    var n32 = 0, o32 = 0, a32 = 0, i33 = e42.length;
                    t42.maxArrayLength < e42.length && i33--;
                    for (var c32 = new v3(i33); a32 < i33; a32++) {
                      var u32 = Hr(e42[a32], t42.colors);
                      c32[a32] = u32, n32 += u32 + 2, o32 < u32 && (o32 = u32);
                    }
                    var l32 = o32 + 2;
                    if (3 * l32 + t42.indentationLvl < t42.breakLength && (n32 / l32 > 5 || o32 <= 6)) {
                      var f32 = ut(l32 - n32 / e42.length), s32 = at(l32 - 3 - f32, 1), y22 = it(ct(ut(2.5 * s32 * i33) / s32), ot((t42.breakLength - t42.indentationLvl) / l32), 4 * t42.compact, 15);
                      if (y22 <= 1) return e42;
                      for (var p22 = [], g22 = [], h22 = 0; h22 < y22; h22++) {
                        for (var d22 = 0, b22 = h22; b22 < e42.length; b22 += y22) c32[b22] > d22 && (d22 = c32[b22]);
                        d22 += 2, g22[h22] = d22;
                      }
                      var m22 = ce;
                      if (void 0 !== r32) {
                        for (var S22 = 0; S22 < e42.length; S22++) if ("number" != typeof r32[S22] && "bigint" != typeof r32[S22]) {
                          m22 = ie;
                          break;
                        }
                      }
                      for (var P2 = 0; P2 < i33; P2 += y22) {
                        for (var x2 = it(P2 + y22, i33), w2 = "", A2 = P2; A2 < x2 - 1; A2++) {
                          var O2 = g22[A2 - P2] + e42[A2].length - c32[A2];
                          w2 += m22("".concat(e42[A2], ", "), O2, " ");
                        }
                        if (m22 === ce) {
                          var _2 = g22[A2 - P2] + e42[A2].length - c32[A2] - 2;
                          w2 += ce(e42[A2], _2, " ");
                        } else w2 += e42[A2];
                        j(p22, w2);
                      }
                      t42.maxArrayLength < e42.length && j(p22, e42[i33]), e42 = p22;
                    }
                    return e42;
                  })(t32, e32, i22)), t32.currentDepth - a22 < t32.compact && c22 === e32.length && Fn(t32, e32, e32.length + t32.indentationLvl + n22[0].length + r22.length + 10, r22)) {
                    var u22 = Qe(e32, ", ");
                    if (!re(u22, "\n")) return "".concat(r22 ? "".concat(r22, " ") : "").concat(n22[0], " ").concat(u22) + " ".concat(n22[1]);
                  }
                }
                var l22 = "\n".concat(ue(" ", t32.indentationLvl));
                return "".concat(r22 ? "".concat(r22, " ") : "").concat(n22[0]).concat(l22, "  ") + "".concat(Qe(e32, ",".concat(l22, "  "))).concat(l22).concat(n22[1]);
              }
              if (Fn(t32, e32, 0, r22)) return "".concat(n22[0]).concat(r22 ? " ".concat(r22) : "", " ").concat(Qe(e32, ", "), " ") + n22[1];
              var f22 = ue(" ", t32.indentationLvl), s22 = "" === r22 && 1 === n22[0].length ? " " : "".concat(r22 ? " ".concat(r22) : "", "\n").concat(f22, "  ");
              return "".concat(n22[0]).concat(s22).concat(Qe(e32, ",\n".concat(f22, "  ")), " ").concat(n22[1]);
            }
            __name2(Wn, "Wn");
            function Hn(t32) {
              var e32 = Ge(t32, false);
              if (void 0 !== e32) {
                if (null === e32) return true;
                t32 = e32;
              }
              var r22 = Et, n22 = Et;
              if ("function" != typeof t32.toString) {
                if ("function" != typeof t32[Se]) return true;
                if (Et(t32, Se)) return false;
                r22 = Un;
              } else {
                if (Et(t32, "toString")) return false;
                if ("function" != typeof t32[Se]) n22 = Un;
                else if (Et(t32, Se)) return false;
              }
              var o22 = t32;
              do {
                o22 = At(o22);
              } while (!r22(o22, "toString") && !n22(o22, Se));
              var a22 = Pt(o22, "constructor");
              return void 0 !== a22 && "function" == typeof a22.value && Dr.has(a22.value.name);
            }
            __name2(Hn, "Hn");
            function Un() {
              return false;
            }
            __name2(Un, "Un");
            var Gn, Vn = /* @__PURE__ */ __name2(function(t32) {
              return ye(t32.message, "\n", 1)[0];
            }, "Vn");
            function Zn(t32) {
              try {
                return X(t32);
              } catch (t42) {
                if (!Gn) try {
                  var e32 = {};
                  e32.a = e32, X(e32);
                } catch (t5) {
                  Gn = Vn(t5);
                }
                if ("TypeError" === t42.name && Vn(t42) === Gn) return "[Circular]";
                throw t42;
              }
            }
            __name2(Zn, "Zn");
            function $n(t32, e32) {
              var r22;
              return xn(on2, t32, null !== (r22 = null == e32 ? void 0 : e32.numericSeparator) && void 0 !== r22 ? r22 : Fr.numericSeparator);
            }
            __name2($n, "$n");
            function Yn(t32, e32) {
              var r22;
              return wn(on2, t32, null !== (r22 = null == e32 ? void 0 : e32.numericSeparator) && void 0 !== r22 ? r22 : Fr.numericSeparator);
            }
            __name2(Yn, "Yn");
            function qn(t32, e32) {
              var r22 = e32[0], o22 = 0, a22 = "", i22 = "";
              if ("string" == typeof r22) {
                if (1 === e32.length) return r22;
                for (var u22, l22 = 0, f22 = 0; f22 < r22.length - 1; f22++) if (37 === Xt(r22, f22)) {
                  var s22 = Xt(r22, ++f22);
                  if (o22 + 1 !== e32.length) {
                    switch (s22) {
                      case 115:
                        var y22 = e32[++o22];
                        u22 = "number" == typeof y22 ? $n(y22, t32) : "bigint" == typeof y22 ? Yn(y22, t32) : "object" === n6(y22) && null !== y22 && Hn(y22) ? Jr(y22, c6(c6({}, t32), {}, { compact: 3, colors: false, depth: 0 })) : Kt(y22);
                        break;
                      case 106:
                        u22 = Zn(e32[++o22]);
                        break;
                      case 100:
                        var p22 = e32[++o22];
                        u22 = "bigint" == typeof p22 ? Yn(p22, t32) : "symbol" === n6(p22) ? "NaN" : $n(ft(p22), t32);
                        break;
                      case 79:
                        u22 = Jr(e32[++o22], t32);
                        break;
                      case 111:
                        u22 = Jr(e32[++o22], c6(c6({}, t32), {}, { showHidden: true, showProxy: true, depth: 4 }));
                        break;
                      case 105:
                        var g22 = e32[++o22];
                        u22 = "bigint" == typeof g22 ? Yn(g22, t32) : "symbol" === n6(g22) ? "NaN" : $n(gt(g22), t32);
                        break;
                      case 102:
                        var v22 = e32[++o22];
                        u22 = "symbol" === n6(v22) ? "NaN" : $n(pt(v22), t32);
                        break;
                      case 99:
                        o22 += 1, u22 = "";
                        break;
                      case 37:
                        a22 += se(r22, l22, f22), l22 = f22 + 1;
                        continue;
                      default:
                        continue;
                    }
                    l22 !== f22 - 1 && (a22 += se(r22, l22, f22 - 1)), a22 += u22, l22 = f22 + 1;
                  } else 37 === s22 && (a22 += se(r22, l22, f22), l22 = f22 + 1);
                }
                0 !== l22 && (o22++, i22 = " ", l22 < r22.length && (a22 += se(r22, l22)));
              }
              for (; o22 < e32.length; ) {
                var h22 = e32[o22];
                a22 += i22, a22 += "string" != typeof h22 ? Jr(h22, t32) : h22, i22 = " ", o22++;
              }
              return a22;
            }
            __name2(qn, "qn");
            function Jn(t32) {
              return t32 <= 31 || t32 >= 127 && t32 <= 159 || t32 >= 768 && t32 <= 879 || t32 >= 8203 && t32 <= 8207 || t32 >= 8400 && t32 <= 8447 || t32 >= 65024 && t32 <= 65039 || t32 >= 65056 && t32 <= 65071 || t32 >= 917760 && t32 <= 917999;
            }
            __name2(Jn, "Jn");
            if (Be("config").hasIntl) _r(false);
            else {
              Hr = /* @__PURE__ */ __name2(function(t32) {
                var e32 = 0;
                (!(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]) && (t32 = Qn(t32)), t32 = ae(t32, "NFC");
                var r22, n22 = o5(new Zt(t32));
                try {
                  for (n22.s(); !(r22 = n22.n()).done; ) {
                    var a22 = r22.value, i22 = te(a22, 0);
                    Kn(i22) ? e32 += 2 : Jn(i22) || e32++;
                  }
                } catch (t42) {
                  n22.e(t42);
                } finally {
                  n22.f();
                }
                return e32;
              }, "Hr");
              var Kn = /* @__PURE__ */ __name2(function(t32) {
                return t32 >= 4352 && (t32 <= 4447 || 9001 === t32 || 9002 === t32 || t32 >= 11904 && t32 <= 12871 && 12351 !== t32 || t32 >= 12880 && t32 <= 19903 || t32 >= 19968 && t32 <= 42182 || t32 >= 43360 && t32 <= 43388 || t32 >= 44032 && t32 <= 55203 || t32 >= 63744 && t32 <= 64255 || t32 >= 65040 && t32 <= 65049 || t32 >= 65072 && t32 <= 65131 || t32 >= 65281 && t32 <= 65376 || t32 >= 65504 && t32 <= 65510 || t32 >= 110592 && t32 <= 110593 || t32 >= 127488 && t32 <= 127569 || t32 >= 127744 && t32 <= 128591 || t32 >= 131072 && t32 <= 262141);
              }, "Kn");
            }
            function Qn(t32) {
              return Ir(t32, "str"), Wt(qr, t32, "");
            }
            __name2(Qn, "Qn");
            var Xn = { 34: "&quot;", 38: "&amp;", 39: "&apos;", 60: "&lt;", 62: "&gt;", 160: "&nbsp;" };
            function to(t32) {
              return t32.replace(/[\u0000-\u002F\u003A-\u0040\u005B-\u0060\u007B-\u00FF]/g, function(t42) {
                var e32 = Kt(t42.charCodeAt(0));
                return Xn[e32] || "&#" + e32 + ";";
              });
            }
            __name2(to, "to");
            t22.exports = { identicalSequenceRange: hn, inspect: Jr, inspectDefaultOptions: Fr, format: /* @__PURE__ */ __name2(function() {
              for (var t32 = arguments.length, e32 = new Array(t32), r22 = 0; r22 < t32; r22++) e32[r22] = arguments[r22];
              return qn(void 0, e32);
            }, "format"), formatWithOptions: /* @__PURE__ */ __name2(function(t32) {
              kr(t32, "inspectOptions", Rr);
              for (var e32 = arguments.length, r22 = new Array(e32 > 1 ? e32 - 1 : 0), n22 = 1; n22 < e32; n22++) r22[n22 - 1] = arguments[n22];
              return qn(t32, r22);
            }, "formatWithOptions"), getStringWidth: Hr, stripVTControlCharacters: Qn, isZeroWidthCodePoint: Jn, stylizeWithColor: nn, stylizeWithHTML: /* @__PURE__ */ __name2(function(t32, e32) {
              var r22 = Jr.styles[e32];
              return void 0 !== r22 ? '<span style="color:'.concat(r22, ';">').concat(to(t32), "</span>") : to(t32);
            }, "stylizeWithHTML"), Proxy: Ye };
          }, 116: (t22, e22, r4) => {
            function n6(t32) {
              return n6 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, n6(t32);
            }
            __name2(n6, "n");
            var o5 = r4(425).ArrayIsArray, a5 = r4(924), i5 = a5.hideStackFrames, c6 = a5.codes.ERR_INVALID_ARG_TYPE, u5 = i5(function(t32, e32) {
              var r22 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;
              if (0 === r22) {
                if (null === t32 || o5(t32)) throw new c6(e32, "Object", t32);
                if ("object" !== n6(t32)) throw new c6(e32, "Object", t32);
              } else {
                if (!(1 & r22) && null === t32) throw new c6(e32, "Object", t32);
                if (!(2 & r22) && o5(t32)) throw new c6(e32, "Object", t32);
                var a22 = !(4 & r22), i22 = n6(t32);
                if ("object" !== i22 && (a22 || "function" !== i22)) throw new c6(e32, "Object", t32);
              }
            });
            t22.exports = { kValidateObjectNone: 0, kValidateObjectAllowNullable: 1, kValidateObjectAllowArray: 2, kValidateObjectAllowFunction: 4, validateObject: u5, validateString: /* @__PURE__ */ __name2(function(t32, e32) {
              if ("string" != typeof t32) throw new c6(e32, "string", t32);
            }, "validateString") };
          }, 153: (t22, e22, r4) => {
            function n6(t32) {
              return n6 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, n6(t32);
            }
            __name2(n6, "n");
            function o5(t32, e32) {
              return (function(t42) {
                if (Array.isArray(t42)) return t42;
              })(t32) || (function(t42, e42) {
                var r22 = null == t42 ? null : "undefined" != typeof Symbol && t42[Symbol.iterator] || t42["@@iterator"];
                if (null != r22) {
                  var n22, o22, a22, i22, c22 = [], u22 = true, l22 = false;
                  try {
                    if (a22 = (r22 = r22.call(t42)).next, 0 === e42) {
                      if (Object(r22) !== r22) return;
                      u22 = false;
                    } else for (; !(u22 = (n22 = a22.call(r22)).done) && (c22.push(n22.value), c22.length !== e42); u22 = true) ;
                  } catch (t5) {
                    l22 = true, o22 = t5;
                  } finally {
                    try {
                      if (!u22 && null != r22.return && (i22 = r22.return(), Object(i22) !== i22)) return;
                    } finally {
                      if (l22) throw o22;
                    }
                  }
                  return c22;
                }
              })(t32, e32) || i5(t32, e32) || (function() {
                throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
              })();
            }
            __name2(o5, "o");
            function a5(t32, e32) {
              var r22 = "undefined" != typeof Symbol && t32[Symbol.iterator] || t32["@@iterator"];
              if (!r22) {
                if (Array.isArray(t32) || (r22 = i5(t32)) || e32 && t32 && "number" == typeof t32.length) {
                  r22 && (t32 = r22);
                  var n22 = 0, o22 = /* @__PURE__ */ __name2(function() {
                  }, "o");
                  return { s: o22, n: /* @__PURE__ */ __name2(function() {
                    return n22 >= t32.length ? { done: true } : { done: false, value: t32[n22++] };
                  }, "n"), e: /* @__PURE__ */ __name2(function(t42) {
                    throw t42;
                  }, "e"), f: o22 };
                }
                throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
              }
              var a22, c22 = true, u22 = false;
              return { s: /* @__PURE__ */ __name2(function() {
                r22 = r22.call(t32);
              }, "s"), n: /* @__PURE__ */ __name2(function() {
                var t42 = r22.next();
                return c22 = t42.done, t42;
              }, "n"), e: /* @__PURE__ */ __name2(function(t42) {
                u22 = true, a22 = t42;
              }, "e"), f: /* @__PURE__ */ __name2(function() {
                try {
                  c22 || null == r22.return || r22.return();
                } finally {
                  if (u22) throw a22;
                }
              }, "f") };
            }
            __name2(a5, "a");
            function i5(t32, e32) {
              if (t32) {
                if ("string" == typeof t32) return c6(t32, e32);
                var r22 = {}.toString.call(t32).slice(8, -1);
                return "Object" === r22 && t32.constructor && (r22 = t32.constructor.name), "Map" === r22 || "Set" === r22 ? Array.from(t32) : "Arguments" === r22 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r22) ? c6(t32, e32) : void 0;
              }
            }
            __name2(i5, "i");
            function c6(t32, e32) {
              (null == e32 || e32 > t32.length) && (e32 = t32.length);
              for (var r22 = 0, n22 = Array(e32); r22 < e32; r22++) n22[r22] = t32[r22];
              return n22;
            }
            __name2(c6, "c");
            var u5 = r4(425), l4 = u5.BigInt, f4 = u5.Error, s4 = u5.NumberParseInt, y3 = u5.ObjectEntries, p3 = u5.ObjectGetOwnPropertyDescriptor, g3 = u5.ObjectGetOwnPropertyDescriptors, v3 = u5.ObjectGetOwnPropertySymbols, h4 = u5.ObjectPrototypeToString, d3 = u5.Symbol, b3 = r4(569), m3 = d3("kPending"), S3 = d3("kRejected");
            t22.exports = { constants: { kPending: m3, kRejected: S3, ALL_PROPERTIES: 0, ONLY_ENUMERABLE: 2 }, getOwnNonIndexProperties: /* @__PURE__ */ __name2(function(t32) {
              var e32, r22 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 2, n22 = g3(t32), i22 = [], c22 = a5(y3(n22));
              try {
                for (c22.s(); !(e32 = c22.n()).done; ) {
                  var u22 = o5(e32.value, 2), l22 = u22[0], f22 = u22[1];
                  if (!/^(0|[1-9][0-9]*)$/.test(l22) || s4(l22, 10) >= Math.pow(2, 32) - 1) {
                    if (2 === r22 && !f22.enumerable) continue;
                    i22.push(l22);
                  }
                }
              } catch (t42) {
                c22.e(t42);
              } finally {
                c22.f();
              }
              var h22, d22 = a5(v3(t32));
              try {
                for (d22.s(); !(h22 = d22.n()).done; ) {
                  var b22 = h22.value, m22 = p3(t32, b22);
                  (2 !== r22 || m22.enumerable) && i22.push(b22);
                }
              } catch (t42) {
                d22.e(t42);
              } finally {
                d22.f();
              }
              return i22;
            }, "getOwnNonIndexProperties"), getPromiseDetails: /* @__PURE__ */ __name2(function() {
              return [m3, void 0];
            }, "getPromiseDetails"), getProxyDetails: b3.getProxyDetails, Proxy: b3.Proxy, previewEntries: /* @__PURE__ */ __name2(function(t32) {
              return [[], false];
            }, "previewEntries"), getConstructorName: /* @__PURE__ */ __name2(function(t32) {
              var e32;
              if (!t32 || "object" !== n6(t32)) throw new f4("Invalid object");
              if (null !== (e32 = t32.constructor) && void 0 !== e32 && e32.name) return t32.constructor.name;
              var r22 = h4(t32).match(/^\[object ([^\]]+)\]/);
              return r22 ? r22[1] : "Object";
            }, "getConstructorName"), getExternalValue: /* @__PURE__ */ __name2(function() {
              return l4(0);
            }, "getExternalValue") };
          }, 229: (t22, e22, r4) => {
            var n6;
            function o5() {
              return n6 = null != n6 ? n6 : r4(924).codes.ERR_INTERNAL_ASSERTION;
            }
            __name2(o5, "o");
            function a5(t32, e32) {
              if (!t32) throw new (o5())(e32);
            }
            __name2(a5, "a");
            a5.fail = function(t32) {
              throw new (o5())(t32);
            }, t22.exports = a5;
          }, 370: (t22, e22, r4) => {
            var n6 = r4(425), o5 = n6.StringPrototypeCharCodeAt, a5 = n6.StringPrototypeLastIndexOf, i5 = n6.StringPrototypeSlice, c6 = r4(22), u5 = c6.CHAR_DOT, l4 = c6.CHAR_FORWARD_SLASH, f4 = r4(116).validateString;
            function s4(t32) {
              return t32 === l4;
            }
            __name2(s4, "s");
            function y3(t32, e32, r22, n22) {
              for (var c22 = "", f22 = 0, s22 = -1, y22 = 0, p3 = 0, g3 = 0; g3 <= t32.length; ++g3) {
                if (g3 < t32.length) p3 = o5(t32, g3);
                else {
                  if (n22(p3)) break;
                  p3 = l4;
                }
                if (n22(p3)) {
                  if (s22 === g3 - 1 || 1 === y22) ;
                  else if (2 === y22) {
                    if (c22.length < 2 || 2 !== f22 || o5(c22, c22.length - 1) !== u5 || o5(c22, c22.length - 2) !== u5) {
                      if (c22.length > 2) {
                        var v3 = a5(c22, r22);
                        -1 === v3 ? (c22 = "", f22 = 0) : f22 = (c22 = i5(c22, 0, v3)).length - 1 - a5(c22, r22), s22 = g3, y22 = 0;
                        continue;
                      }
                      if (0 !== c22.length) {
                        c22 = "", f22 = 0, s22 = g3, y22 = 0;
                        continue;
                      }
                    }
                    e32 && (c22 += c22.length > 0 ? "".concat(r22, "..") : "..", f22 = 2);
                  } else c22.length > 0 ? c22 += "".concat(r22).concat(i5(t32, s22 + 1, g3)) : c22 = i5(t32, s22 + 1, g3), f22 = g3 - s22 - 1;
                  s22 = g3, y22 = 0;
                } else p3 === u5 && -1 !== y22 ? ++y22 : y22 = -1;
              }
              return c22;
            }
            __name2(y3, "y");
            t22.exports = { isPosixPathSeparator: s4, normalizeString: y3, resolve: /* @__PURE__ */ __name2(function() {
              if ((0 === arguments.length || 1 === arguments.length && ("" === (arguments.length <= 0 ? void 0 : arguments[0]) || "." === (arguments.length <= 0 ? void 0 : arguments[0]))) && o5("/", 0) === l4) return "/";
              for (var t32 = "", e32 = false, r22 = arguments.length - 1; r22 >= 0 && !e32; r22--) {
                var n22 = r22 < 0 || arguments.length <= r22 ? void 0 : arguments[r22];
                f4(n22, "paths[".concat(r22, "]")), 0 !== n22.length && (t32 = "".concat(n22, "/").concat(t32), e32 = o5(n22, 0) === l4);
              }
              return e32 || (t32 = "".concat("/", "/").concat(t32), e32 = o5("/", 0) === l4), t32 = y3(t32, !e32, "/", s4), e32 ? "/".concat(t32) : t32.length > 0 ? t32 : ".";
            }, "resolve") };
          }, 425: (t22) => {
            function e22() {
              var t32, n22, o22 = "function" == typeof Symbol ? Symbol : {}, a22 = o22.iterator || "@@iterator", i22 = o22.toStringTag || "@@toStringTag";
              function c22(e32, o32, a32, i33) {
                var c32 = o32 && o32.prototype instanceof l22 ? o32 : l22, f32 = Object.create(c32.prototype);
                return r4(f32, "_invoke", (function(e42, r22, o42) {
                  var a42, i42, c42, l32 = 0, f42 = o42 || [], s32 = false, y32 = { p: 0, n: 0, v: t32, a: p32, f: p32.bind(t32, 4), d: /* @__PURE__ */ __name2(function(e5, r32) {
                    return a42 = e5, i42 = 0, c42 = t32, y32.n = r32, u22;
                  }, "d") };
                  function p32(e5, r32) {
                    for (i42 = e5, c42 = r32, n22 = 0; !s32 && l32 && !o52 && n22 < f42.length; n22++) {
                      var o52, a52 = f42[n22], p4 = y32.p, g32 = a52[2];
                      e5 > 3 ? (o52 = g32 === r32) && (c42 = a52[(i42 = a52[4]) ? 5 : (i42 = 3, 3)], a52[4] = a52[5] = t32) : a52[0] <= p4 && ((o52 = e5 < 2 && p4 < a52[1]) ? (i42 = 0, y32.v = r32, y32.n = a52[1]) : p4 < g32 && (o52 = e5 < 3 || a52[0] > r32 || r32 > g32) && (a52[4] = e5, a52[5] = r32, y32.n = g32, i42 = 0));
                    }
                    if (o52 || e5 > 1) return u22;
                    throw s32 = true, r32;
                  }
                  __name2(p32, "p");
                  return function(o52, f5, g32) {
                    if (l32 > 1) throw TypeError("Generator is already running");
                    for (s32 && 1 === f5 && p32(f5, g32), i42 = f5, c42 = g32; (n22 = i42 < 2 ? t32 : c42) || !s32; ) {
                      a42 || (i42 ? i42 < 3 ? (i42 > 1 && (y32.n = -1), p32(i42, c42)) : y32.n = c42 : y32.v = c42);
                      try {
                        if (l32 = 2, a42) {
                          if (i42 || (o52 = "next"), n22 = a42[o52]) {
                            if (!(n22 = n22.call(a42, c42))) throw TypeError("iterator result is not an object");
                            if (!n22.done) return n22;
                            c42 = n22.value, i42 < 2 && (i42 = 0);
                          } else 1 === i42 && (n22 = a42.return) && n22.call(a42), i42 < 2 && (c42 = TypeError("The iterator does not provide a '" + o52 + "' method"), i42 = 1);
                          a42 = t32;
                        } else if ((n22 = (s32 = y32.n < 0) ? c42 : e42.call(r22, y32)) !== u22) break;
                      } catch (e5) {
                        a42 = t32, i42 = 1, c42 = e5;
                      } finally {
                        l32 = 1;
                      }
                    }
                    return { value: n22, done: s32 };
                  };
                })(e32, a32, i33), true), f32;
              }
              __name2(c22, "c");
              var u22 = {};
              function l22() {
              }
              __name2(l22, "l");
              function f22() {
              }
              __name2(f22, "f");
              function s22() {
              }
              __name2(s22, "s");
              n22 = Object.getPrototypeOf;
              var y22 = [][a22] ? n22(n22([][a22]())) : (r4(n22 = {}, a22, function() {
                return this;
              }), n22), p22 = s22.prototype = l22.prototype = Object.create(y22);
              function g22(t42) {
                return Object.setPrototypeOf ? Object.setPrototypeOf(t42, s22) : (t42.__proto__ = s22, r4(t42, i22, "GeneratorFunction")), t42.prototype = Object.create(p22), t42;
              }
              __name2(g22, "g");
              return f22.prototype = s22, r4(p22, "constructor", s22), r4(s22, "constructor", f22), f22.displayName = "GeneratorFunction", r4(s22, i22, "GeneratorFunction"), r4(p22), r4(p22, i22, "Generator"), r4(p22, a22, function() {
                return this;
              }), r4(p22, "toString", function() {
                return "[object Generator]";
              }), (e22 = /* @__PURE__ */ __name2(function() {
                return { w: c22, m: g22 };
              }, "e"))();
            }
            __name2(e22, "e");
            function r4(t32, e32, n22, o22) {
              var a22 = Object.defineProperty;
              try {
                a22({}, "", {});
              } catch (t42) {
                a22 = 0;
              }
              r4 = /* @__PURE__ */ __name2(function(t42, e42, n32, o32) {
                function i22(e5, n42) {
                  r4(t42, e5, function(t5) {
                    return this._invoke(e5, n42, t5);
                  });
                }
                __name2(i22, "i");
                e42 ? a22 ? a22(t42, e42, { value: n32, enumerable: !o32, configurable: !o32, writable: !o32 }) : t42[e42] = n32 : (i22("next", 0), i22("throw", 1), i22("return", 2));
              }, "r"), r4(t32, e32, n22, o22);
            }
            __name2(r4, "r");
            function n6(t32, e32, r22) {
              return e32 = a5(e32), (function(t42, e42) {
                if (e42 && ("object" == d3(e42) || "function" == typeof e42)) return e42;
                if (void 0 !== e42) throw new TypeError("Derived constructors may only return object or undefined");
                return (function(t5) {
                  if (void 0 === t5) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                  return t5;
                })(t42);
              })(t32, o5() ? Reflect.construct(e32, r22 || [], a5(t32).constructor) : e32.apply(t32, r22));
            }
            __name2(n6, "n");
            function o5() {
              try {
                var t32 = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
                }));
              } catch (t42) {
              }
              return (o5 = /* @__PURE__ */ __name2(function() {
                return !!t32;
              }, "o"))();
            }
            __name2(o5, "o");
            function a5(t32) {
              return a5 = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t42) {
                return t42.__proto__ || Object.getPrototypeOf(t42);
              }, a5(t32);
            }
            __name2(a5, "a");
            function i5(t32, e32) {
              if ("function" != typeof e32 && null !== e32) throw new TypeError("Super expression must either be null or a function");
              t32.prototype = Object.create(e32 && e32.prototype, { constructor: { value: t32, writable: true, configurable: true } }), Object.defineProperty(t32, "prototype", { writable: false }), e32 && c6(t32, e32);
            }
            __name2(i5, "i");
            function c6(t32, e32) {
              return c6 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t42, e42) {
                return t42.__proto__ = e42, t42;
              }, c6(t32, e32);
            }
            __name2(c6, "c");
            function u5(t32, e32) {
              if (!(t32 instanceof e32)) throw new TypeError("Cannot call a class as a function");
            }
            __name2(u5, "u");
            function l4(t32, e32) {
              for (var r22 = 0; r22 < e32.length; r22++) {
                var n22 = e32[r22];
                n22.enumerable = n22.enumerable || false, n22.configurable = true, "value" in n22 && (n22.writable = true), Object.defineProperty(t32, g3(n22.key), n22);
              }
            }
            __name2(l4, "l");
            function f4(t32, e32, r22) {
              return e32 && l4(t32.prototype, e32), r22 && l4(t32, r22), Object.defineProperty(t32, "prototype", { writable: false }), t32;
            }
            __name2(f4, "f");
            function s4(t32, e32) {
              var r22 = Object.keys(t32);
              if (Object.getOwnPropertySymbols) {
                var n22 = Object.getOwnPropertySymbols(t32);
                e32 && (n22 = n22.filter(function(e42) {
                  return Object.getOwnPropertyDescriptor(t32, e42).enumerable;
                })), r22.push.apply(r22, n22);
              }
              return r22;
            }
            __name2(s4, "s");
            function y3(t32) {
              for (var e32 = 1; e32 < arguments.length; e32++) {
                var r22 = null != arguments[e32] ? arguments[e32] : {};
                e32 % 2 ? s4(Object(r22), true).forEach(function(e42) {
                  p3(t32, e42, r22[e42]);
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t32, Object.getOwnPropertyDescriptors(r22)) : s4(Object(r22)).forEach(function(e42) {
                  Object.defineProperty(t32, e42, Object.getOwnPropertyDescriptor(r22, e42));
                });
              }
              return t32;
            }
            __name2(y3, "y");
            function p3(t32, e32, r22) {
              return (e32 = g3(e32)) in t32 ? Object.defineProperty(t32, e32, { value: r22, enumerable: true, configurable: true, writable: true }) : t32[e32] = r22, t32;
            }
            __name2(p3, "p");
            function g3(t32) {
              var e32 = (function(t42) {
                if ("object" != d3(t42) || !t42) return t42;
                var e42 = t42[Symbol.toPrimitive];
                if (void 0 !== e42) {
                  var r22 = e42.call(t42, "string");
                  if ("object" != d3(r22)) return r22;
                  throw new TypeError("@@toPrimitive must return a primitive value.");
                }
                return String(t42);
              })(t32);
              return "symbol" == d3(e32) ? e32 : e32 + "";
            }
            __name2(g3, "g");
            function v3(t32, e32) {
              var r22 = "undefined" != typeof Symbol && t32[Symbol.iterator] || t32["@@iterator"];
              if (!r22) {
                if (Array.isArray(t32) || (r22 = (function(t42, e42) {
                  if (t42) {
                    if ("string" == typeof t42) return h4(t42, e42);
                    var r32 = {}.toString.call(t42).slice(8, -1);
                    return "Object" === r32 && t42.constructor && (r32 = t42.constructor.name), "Map" === r32 || "Set" === r32 ? Array.from(t42) : "Arguments" === r32 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r32) ? h4(t42, e42) : void 0;
                  }
                })(t32)) || e32 && t32 && "number" == typeof t32.length) {
                  r22 && (t32 = r22);
                  var n22 = 0, o22 = /* @__PURE__ */ __name2(function() {
                  }, "o");
                  return { s: o22, n: /* @__PURE__ */ __name2(function() {
                    return n22 >= t32.length ? { done: true } : { done: false, value: t32[n22++] };
                  }, "n"), e: /* @__PURE__ */ __name2(function(t42) {
                    throw t42;
                  }, "e"), f: o22 };
                }
                throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
              }
              var a22, i22 = true, c22 = false;
              return { s: /* @__PURE__ */ __name2(function() {
                r22 = r22.call(t32);
              }, "s"), n: /* @__PURE__ */ __name2(function() {
                var t42 = r22.next();
                return i22 = t42.done, t42;
              }, "n"), e: /* @__PURE__ */ __name2(function(t42) {
                c22 = true, a22 = t42;
              }, "e"), f: /* @__PURE__ */ __name2(function() {
                try {
                  i22 || null == r22.return || r22.return();
                } finally {
                  if (c22) throw a22;
                }
              }, "f") };
            }
            __name2(v3, "v");
            function h4(t32, e32) {
              (null == e32 || e32 > t32.length) && (e32 = t32.length);
              for (var r22 = 0, n22 = Array(e32); r22 < e32; r22++) n22[r22] = t32[r22];
              return n22;
            }
            __name2(h4, "h");
            function d3(t32) {
              return d3 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, d3(t32);
            }
            __name2(d3, "d");
            function b3(t32) {
              return function() {
                return new m3(t32.apply(this, arguments));
              };
            }
            __name2(b3, "b");
            function m3(t32) {
              var e32, r22;
              function n22(e42, r32) {
                try {
                  var a22 = t32[e42](r32), i22 = a22.value, c22 = i22 instanceof S3;
                  Promise.resolve(c22 ? i22.v : i22).then(function(r42) {
                    if (c22) {
                      var u22 = "return" === e42 ? "return" : "next";
                      if (!i22.k || r42.done) return n22(u22, r42);
                      r42 = t32[u22](r42).value;
                    }
                    o22(a22.done ? "return" : "normal", r42);
                  }, function(t42) {
                    n22("throw", t42);
                  });
                } catch (t42) {
                  o22("throw", t42);
                }
              }
              __name2(n22, "n");
              function o22(t42, o32) {
                switch (t42) {
                  case "return":
                    e32.resolve({ value: o32, done: true });
                    break;
                  case "throw":
                    e32.reject(o32);
                    break;
                  default:
                    e32.resolve({ value: o32, done: false });
                }
                (e32 = e32.next) ? n22(e32.key, e32.arg) : r22 = null;
              }
              __name2(o22, "o");
              this._invoke = function(t42, o32) {
                return new Promise(function(a22, i22) {
                  var c22 = { key: t42, arg: o32, resolve: a22, reject: i22, next: null };
                  r22 ? r22 = r22.next = c22 : (e32 = r22 = c22, n22(t42, o32));
                });
              }, "function" != typeof t32.return && (this.return = void 0);
            }
            __name2(m3, "m");
            function S3(t32, e32) {
              this.v = t32, this.k = e32;
            }
            __name2(S3, "S");
            m3.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function() {
              return this;
            }, m3.prototype.next = function(t32) {
              return this._invoke("next", t32);
            }, m3.prototype.throw = function(t32) {
              return this._invoke("throw", t32);
            }, m3.prototype.return = function(t32) {
              return this._invoke("return", t32);
            };
            var P = { __proto__: null }, x = Reflect.defineProperty, w = Reflect.getOwnPropertyDescriptor, A = Reflect.ownKeys, O = Function.prototype, _ = O.apply, j = O.bind, E = O.call, k3 = j.bind(E);
            P.uncurryThis = k3;
            var I = j.bind(_);
            P.applyBind = I;
            var R = ["ArrayOf", "ArrayPrototypePush", "ArrayPrototypeUnshift", "MathHypot", "MathMax", "MathMin", "StringFromCharCode", "StringFromCodePoint", "StringPrototypeConcat", "TypedArrayOf"];
            function L(t32) {
              return "symbol" === d3(t32) ? "Symbol".concat(t32.description[7].toUpperCase()).concat(t32.description.slice(8)) : "".concat(t32[0].toUpperCase()).concat(t32.slice(1));
            }
            __name2(L, "L");
            function T(t32, e32, r22, n22) {
              var o22 = n22.enumerable, a22 = n22.get, i22 = n22.set;
              x(t32, "".concat(e32, "Get").concat(r22), { __proto__: null, value: k3(a22), enumerable: o22 }), void 0 !== i22 && x(t32, "".concat(e32, "Set").concat(r22), { __proto__: null, value: k3(i22), enumerable: o22 });
            }
            __name2(T, "T");
            function B(t32, e32, r22) {
              var n22, o22 = v3(A(t32));
              try {
                for (o22.s(); !(n22 = o22.n()).done; ) {
                  var a22 = n22.value, i22 = L(a22), c22 = w(t32, a22);
                  if ("get" in c22) T(e32, r22, i22, c22);
                  else {
                    var u22 = "".concat(r22).concat(i22);
                    x(e32, u22, y3({ __proto__: null }, c22)), R.includes(u22) && x(e32, "".concat(u22, "Apply"), { __proto__: null, value: I(c22.value, t32) });
                  }
                }
              } catch (t42) {
                o22.e(t42);
              } finally {
                o22.f();
              }
            }
            __name2(B, "B");
            function z(t32, e32, r22) {
              var n22, o22 = v3(A(t32));
              try {
                for (o22.s(); !(n22 = o22.n()).done; ) {
                  var a22 = n22.value, i22 = L(a22), c22 = w(t32, a22);
                  if ("get" in c22) T(e32, r22, i22, c22);
                  else {
                    var u22 = c22.value;
                    "function" == typeof u22 && (c22.value = k3(u22));
                    var l22 = "".concat(r22).concat(i22);
                    x(e32, l22, y3({ __proto__: null }, c22)), R.includes(l22) && x(e32, "".concat(l22, "Apply"), { __proto__: null, value: I(u22) });
                  }
                }
              } catch (t42) {
                o22.e(t42);
              } finally {
                o22.f();
              }
            }
            __name2(z, "z");
            ["Proxy", "globalThis"].forEach(function(t32) {
              P[t32] = globalThis[t32];
            }), [decodeURI, decodeURIComponent, encodeURI, encodeURIComponent].forEach(function(t32) {
              P[t32.name] = t32;
            }), [escape, eval, unescape].forEach(function(t32) {
              P[t32.name] = t32;
            }), ["Atomics", "JSON", "Math", "Proxy", "Reflect"].forEach(function(t32) {
              B(globalThis[t32], P, t32);
            }), ["AggregateError", "Array", "ArrayBuffer", "BigInt", "BigInt64Array", "BigUint64Array", "Boolean", "DataView", "Date", "Error", "EvalError", "FinalizationRegistry", "Float32Array", "Float64Array", "Function", "Int16Array", "Int32Array", "Int8Array", "Map", "Number", "Object", "RangeError", "ReferenceError", "RegExp", "Set", "String", "Symbol", "SyntaxError", "TypeError", "URIError", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "WeakMap", "WeakRef", "WeakSet"].forEach(function(t32) {
              var e32 = globalThis[t32];
              e32 && (P[t32] = e32, B(e32, P, t32), z(e32.prototype, P, "".concat(t32, "Prototype")));
            }), ["Promise"].forEach(function(t32) {
              var e32 = globalThis[t32];
              P[t32] = e32, (function(t42, e42, r22) {
                var n22, o22 = v3(A(t42));
                try {
                  for (o22.s(); !(n22 = o22.n()).done; ) {
                    var a22 = n22.value, i22 = L(a22), c22 = w(t42, a22);
                    if ("get" in c22) T(e42, r22, i22, c22);
                    else {
                      var u22 = c22.value;
                      "function" == typeof u22 && (c22.value = u22.bind(t42));
                      var l22 = "".concat(r22).concat(i22);
                      x(e42, l22, y3({ __proto__: null }, c22));
                    }
                  }
                } catch (t5) {
                  o22.e(t5);
                } finally {
                  o22.f();
                }
              })(e32, P, t32), z(e32.prototype, P, "".concat(t32, "Prototype"));
            }), [{ name: "TypedArray", original: Reflect.getPrototypeOf(Uint8Array) }, { name: "ArrayIterator", original: { prototype: Reflect.getPrototypeOf(Array.prototype[Symbol.iterator]()) } }, { name: "StringIterator", original: { prototype: Reflect.getPrototypeOf(String.prototype[Symbol.iterator]()) } }].forEach(function(t32) {
              var e32 = t32.name, r22 = t32.original;
              P[e32] = r22, z(r22, P, e32), z(r22.prototype, P, "".concat(e32, "Prototype"));
            }), P.IteratorPrototype = Reflect.getPrototypeOf(P.ArrayIteratorPrototype);
            var M = P.ArrayPrototypeForEach, C = P.FinalizationRegistry, D = P.FunctionPrototypeCall, N = P.Map, F = P.ObjectFreeze, W = P.ObjectSetPrototypeOf, H = P.RegExp, U = P.Set, G2 = P.SymbolIterator, V = P.WeakMap, Z = P.WeakRef, $ = P.WeakSet, Y = /* @__PURE__ */ __name2(function(t32, e32) {
              var r22 = (function() {
                return f4(/* @__PURE__ */ __name2(function e42(r32) {
                  u5(this, e42), this._iterator = t32(r32);
                }, "e"), [{ key: "next", value: /* @__PURE__ */ __name2(function() {
                  return e32(this._iterator);
                }, "value") }, { key: G2, value: /* @__PURE__ */ __name2(function() {
                  return this;
                }, "value") }]);
              })();
              return W(r22.prototype, null), F(r22.prototype), F(r22), r22;
            }, "Y");
            P.SafeArrayIterator = Y(P.ArrayPrototypeSymbolIterator, P.ArrayIteratorPrototypeNext), P.SafeStringIterator = Y(P.StringPrototypeSymbolIterator, P.StringIteratorPrototypeNext);
            var q = /* @__PURE__ */ __name2(function(t32, e32) {
              M(A(t32), function(r22) {
                w(e32, r22) || x(e32, r22, y3({ __proto__: null }, w(t32, r22)));
              });
            }, "q"), J = /* @__PURE__ */ __name2(function(t32, e32) {
              if (G2 in t32.prototype) {
                var r22, n22 = new t32();
                M(A(t32.prototype), function(o22) {
                  if (!w(e32.prototype, o22)) {
                    var a22, i22 = w(t32.prototype, o22);
                    if ("function" == typeof i22.value && 0 === i22.value.length && G2 in (null !== (a22 = D(i22.value, n22)) && void 0 !== a22 ? a22 : {})) {
                      var c22 = k3(i22.value);
                      r22 = r22 || k3(c22(n22).next);
                      var u22 = Y(c22, r22);
                      i22.value = function() {
                        return new u22(this);
                      };
                    }
                    x(e32.prototype, o22, y3({ __proto__: null }, i22));
                  }
                });
              } else q(t32.prototype, e32.prototype);
              return q(t32, e32), W(e32.prototype, null), F(e32.prototype), F(e32), e32;
            }, "J");
            P.makeSafe = J, P.SafeMap = J(N, (function(t32) {
              function e32(t42) {
                return u5(this, e32), n6(this, e32, [t42]);
              }
              __name2(e32, "e");
              return i5(e32, t32), f4(e32);
            })(N)), P.SafeWeakMap = J(V, (function(t32) {
              function e32(t42) {
                return u5(this, e32), n6(this, e32, [t42]);
              }
              __name2(e32, "e");
              return i5(e32, t32), f4(e32);
            })(V)), P.SafeSet = J(U, (function(t32) {
              function e32(t42) {
                return u5(this, e32), n6(this, e32, [t42]);
              }
              __name2(e32, "e");
              return i5(e32, t32), f4(e32);
            })(U)), P.SafeWeakSet = J($, (function(t32) {
              function e32(t42) {
                return u5(this, e32), n6(this, e32, [t42]);
              }
              __name2(e32, "e");
              return i5(e32, t32), f4(e32);
            })($)), P.SafeFinalizationRegistry = J(C, (function(t32) {
              function e32(t42) {
                return u5(this, e32), n6(this, e32, [t42]);
              }
              __name2(e32, "e");
              return i5(e32, t32), f4(e32);
            })(C)), P.SafeWeakRef = J(Z, (function(t32) {
              function e32(t42) {
                return u5(this, e32), n6(this, e32, [t42]);
              }
              __name2(e32, "e");
              return i5(e32, t32), f4(e32);
            })(Z)), P.AsyncIteratorPrototype = P.ReflectGetPrototypeOf(b3(e22().m(/* @__PURE__ */ __name2(function t32() {
              return e22().w(function(t42) {
                for (; ; ) if (0 === t42.n) return t42.a(2);
              }, t32);
            }, "t")))).prototype, P.internalBinding = function(t32) {
              if ("config" === t32) return { hasIntl: false };
              throw new Error('unknown module: "'.concat(t32, '"'));
            }, P._stringPrototypeReplaceAll = function(t32, e32, r22) {
              return "[object regexp]" === Object.prototype.toString.call(e32).toLowerCase() ? t32.replace(e32, r22) : t32.replace(new H(e32, "g"), r22);
            }, P.StringPrototypeReplaceAll = P.StringPrototypeReplaceAll || P._stringPrototypeReplaceAll, W(P, null), F(P), t22.exports = P;
          }, 569: (t22, e22, r4) => {
            function n6(t32) {
              return n6 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, n6(t32);
            }
            __name2(n6, "n");
            function o5(t32, e32) {
              for (var r22 = 0; r22 < e32.length; r22++) {
                var n22 = e32[r22];
                n22.enumerable = n22.enumerable || false, n22.configurable = true, "value" in n22 && (n22.writable = true), Object.defineProperty(t32, a5(n22.key), n22);
              }
            }
            __name2(o5, "o");
            function a5(t32) {
              var e32 = (function(t42) {
                if ("object" != n6(t42) || !t42) return t42;
                var e42 = t42[Symbol.toPrimitive];
                if (void 0 !== e42) {
                  var r22 = e42.call(t42, "string");
                  if ("object" != n6(r22)) return r22;
                  throw new TypeError("@@toPrimitive must return a primitive value.");
                }
                return String(t42);
              })(t32);
              return "symbol" == n6(e32) ? e32 : e32 + "";
            }
            __name2(a5, "a");
            var i5 = r4(425), c6 = i5.Proxy, u5 = i5.ProxyRevocable, l4 = new (0, i5.SafeWeakMap)(), f4 = (function() {
              return t32 = /* @__PURE__ */ __name2(function t42(e42, r22) {
                !(function(t5, e5) {
                  if (!(t5 instanceof e5)) throw new TypeError("Cannot call a class as a function");
                })(this, t42);
                var n22 = new c6(e42, r22);
                return l4.set(n22, [e42, r22]), n22;
              }, "t"), e32 = [{ key: "getProxyDetails", value: /* @__PURE__ */ __name2(function(t42) {
                var e42 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], r22 = l4.get(t42);
                if (r22) return e42 ? r22 : r22[0];
              }, "value") }, { key: "revocable", value: /* @__PURE__ */ __name2(function(t42, e42) {
                var r22 = u5(t42, e42);
                l4.set(r22.proxy, [t42, e42]);
                var n22 = r22.revoke;
                return r22.revoke = function() {
                  l4.set(r22.proxy, [null, null]), n22();
                }, r22;
              }, "value") }], null, e32 && o5(t32, e32), Object.defineProperty(t32, "prototype", { writable: false }), t32;
              var t32, e32;
            })();
            t22.exports = { getProxyDetails: f4.getProxyDetails.bind(f4), Proxy: f4 };
          }, 617: (t22, e22, r4) => {
            function n6(t32) {
              return n6 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, n6(t32);
            }
            __name2(n6, "n");
            var o5 = r4(425), a5 = o5.ArrayIsArray, i5 = o5.BigInt, c6 = o5.Boolean, u5 = o5.DatePrototype, l4 = o5.Error, f4 = o5.FunctionPrototype, s4 = o5.MapPrototypeHas, y3 = o5.Number, p3 = o5.ObjectDefineProperty, g3 = o5.ObjectGetOwnPropertyDescriptor, v3 = o5.ObjectGetPrototypeOf, h4 = o5.ObjectIsFrozen, d3 = o5.ObjectPrototype, b3 = o5.SetPrototypeHas, m3 = o5.String, S3 = o5.Symbol, P = o5.SymbolToStringTag, x = o5.globalThis, w = r4(153).getConstructorName;
            function A(t32) {
              for (var e32 = arguments.length, r22 = new Array(e32 > 1 ? e32 - 1 : 0), o22 = 1; o22 < e32; o22++) r22[o22 - 1] = arguments[o22];
              for (var a22 = 0, i22 = r22; a22 < i22.length; a22++) {
                var c22 = i22[a22], u22 = x[c22];
                if (u22 && t32 instanceof u22) return true;
              }
              for (; t32; ) {
                if ("object" !== n6(t32)) return false;
                if (r22.indexOf(w(t32)) >= 0) return true;
                t32 = v3(t32);
              }
              return false;
            }
            __name2(A, "A");
            function O(t32) {
              return function(e32) {
                if (!A(e32, t32.name)) return false;
                try {
                  t32.prototype.valueOf.call(e32);
                } catch (t42) {
                  return false;
                }
                return true;
              };
            }
            __name2(O, "O");
            "object" !== n6(x) && (p3(d3, "__magic__", { get: /* @__PURE__ */ __name2(function() {
              return this;
            }, "get"), configurable: true }), __magic__.globalThis = __magic__, delete d3.__magic__);
            var _ = O(m3), j = O(y3), E = O(c6), k3 = O(i5), I = O(S3);
            t22.exports = { isAsyncFunction: /* @__PURE__ */ __name2(function(t32) {
              return "function" == typeof t32 && f4.toString.call(t32).startsWith("async");
            }, "isAsyncFunction"), isGeneratorFunction: /* @__PURE__ */ __name2(function(t32) {
              return "function" == typeof t32 && f4.toString.call(t32).match(/^(async\s+)?function *\*/);
            }, "isGeneratorFunction"), isAnyArrayBuffer: /* @__PURE__ */ __name2(function(t32) {
              return A(t32, "ArrayBuffer", "SharedArrayBuffer");
            }, "isAnyArrayBuffer"), isArrayBuffer: /* @__PURE__ */ __name2(function(t32) {
              return A(t32, "ArrayBuffer");
            }, "isArrayBuffer"), isArgumentsObject: /* @__PURE__ */ __name2(function(t32) {
              if (null !== t32 && "object" === n6(t32) && !a5(t32) && "number" == typeof t32.length && t32.length === (0 | t32.length) && t32.length >= 0) {
                var e32 = g3(t32, "callee");
                return e32 && !e32.enumerable;
              }
              return false;
            }, "isArgumentsObject"), isBoxedPrimitive: /* @__PURE__ */ __name2(function(t32) {
              return j(t32) || _(t32) || E(t32) || k3(t32) || I(t32);
            }, "isBoxedPrimitive"), isDataView: /* @__PURE__ */ __name2(function(t32) {
              return A(t32, "DataView");
            }, "isDataView"), isExternal: /* @__PURE__ */ __name2(function(t32) {
              return "object" === n6(t32) && h4(t32) && null == v3(t32);
            }, "isExternal"), isMap: /* @__PURE__ */ __name2(function(t32) {
              if (!A(t32, "Map")) return false;
              try {
                s4(t32);
              } catch (t42) {
                return false;
              }
              return true;
            }, "isMap"), isMapIterator: /* @__PURE__ */ __name2(function(t32) {
              return "[object Map Iterator]" === d3.toString.call(v3(t32));
            }, "isMapIterator"), isModuleNamespaceObject: /* @__PURE__ */ __name2(function(t32) {
              return t32 && "object" === n6(t32) && "Module" === t32[P];
            }, "isModuleNamespaceObject"), isNativeError: /* @__PURE__ */ __name2(function(t32) {
              return t32 instanceof l4 && A(t32, "Error", "EvalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError", "AggregateError");
            }, "isNativeError"), isPromise: /* @__PURE__ */ __name2(function(t32) {
              return A(t32, "Promise");
            }, "isPromise"), isSet: /* @__PURE__ */ __name2(function(t32) {
              if (!A(t32, "Set")) return false;
              try {
                b3(t32);
              } catch (t42) {
                return false;
              }
              return true;
            }, "isSet"), isSetIterator: /* @__PURE__ */ __name2(function(t32) {
              return "[object Set Iterator]" === d3.toString.call(v3(t32));
            }, "isSetIterator"), isWeakMap: /* @__PURE__ */ __name2(function(t32) {
              return A(t32, "WeakMap");
            }, "isWeakMap"), isWeakSet: /* @__PURE__ */ __name2(function(t32) {
              return A(t32, "WeakSet");
            }, "isWeakSet"), isRegExp: /* @__PURE__ */ __name2(function(t32) {
              return A(t32, "RegExp");
            }, "isRegExp"), isDate: /* @__PURE__ */ __name2(function(t32) {
              if (A(t32, "Date")) try {
                return u5.getTime.call(t32), true;
              } catch (t42) {
              }
              return false;
            }, "isDate"), isTypedArray: /* @__PURE__ */ __name2(function(t32) {
              return A(t32, "Int8Array", "Uint8Array", "Uint8ClampedArray", "Int16Array", "Uint16Array", "Int32Array", "Uint32Array", "Float32Array", "Float64Array", "BigInt64Array", "BigUint64Array");
            }, "isTypedArray"), isStringObject: _, isNumberObject: j, isBooleanObject: E, isBigIntObject: k3, isSymbolObject: I };
          }, 705: (t22) => {
            var e22 = ["_http_agent", "_http_client", "_http_common", "_http_incoming", "_http_outgoing", "_http_server", "_stream_duplex", "_stream_passthrough", "_stream_readable", "_stream_transform", "_stream_wrap", "_stream_writable", "_tls_common", "_tls_wrap", "assert", "assert/strict", "async_hooks", "buffer", "child_process", "cluster", "console", "constants", "crypto", "dgram", "diagnostics_channel", "dns", "dns/promises", "domain", "events", "fs", "fs/promises", "http", "http2", "https", "inspector", "module", "Module", "net", "os", "path", "path/posix", "path/win32", "perf_hooks", "process", "punycode", "querystring", "readline", "readline/promises", "repl", "stream", "stream/consumers", "stream/promises", "stream/web", "string_decoder", "sys", "timers", "timers/promises", "tls", "trace_events", "tty", "url", "util", "util/types", "v8", "vm", "wasi", "worker_threads", "zlib"];
            t22.exports.BuiltinModule = { exists: /* @__PURE__ */ __name2(function(t32) {
              return t32.startsWith("internal/") || -1 !== e22.indexOf(t32);
            }, "exists") };
          }, 802: (t22, e22, r4) => {
            var n6 = r4(425), o5 = n6.StringPrototypeCharCodeAt, a5 = n6.StringPrototypeIncludes, i5 = n6.StringPrototypeReplace, c6 = r4(24), u5 = r4(22).CHAR_FORWARD_SLASH, l4 = r4(370), f4 = /%/g, s4 = /\\/g, y3 = /\n/g, p3 = /\r/g, g3 = /\t/g;
            t22.exports = { pathToFileURL: /* @__PURE__ */ __name2(function(t32) {
              var e32 = new c6("file://"), r22 = l4.resolve(t32);
              return o5(t32, t32.length - 1) === u5 && r22[r22.length - 1] !== l4.sep && (r22 += "/"), e32.pathname = (function(t42) {
                return a5(t42, "%") && (t42 = i5(t42, f4, "%25")), a5(t42, "\\") && (t42 = i5(t42, s4, "%5C")), a5(t42, "\n") && (t42 = i5(t42, y3, "%0A")), a5(t42, "\r") && (t42 = i5(t42, p3, "%0D")), a5(t42, "	") && (t42 = i5(t42, g3, "%09")), t42;
              })(r22), e32;
            }, "pathToFileURL"), URL: c6 };
          }, 883: (t22, e22, r4) => {
            function n6(t32) {
              return n6 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, n6(t32);
            }
            __name2(n6, "n");
            function o5(t32, e32) {
              for (var r22 = 0; r22 < e32.length; r22++) {
                var n22 = e32[r22];
                n22.enumerable = n22.enumerable || false, n22.configurable = true, "value" in n22 && (n22.writable = true), Object.defineProperty(t32, a5(n22.key), n22);
              }
            }
            __name2(o5, "o");
            function a5(t32) {
              var e32 = (function(t42) {
                if ("object" != n6(t42) || !t42) return t42;
                var e42 = t42[Symbol.toPrimitive];
                if (void 0 !== e42) {
                  var r22 = e42.call(t42, "string");
                  if ("object" != n6(r22)) return r22;
                  throw new TypeError("@@toPrimitive must return a primitive value.");
                }
                return String(t42);
              })(t32);
              return "symbol" == n6(e32) ? e32 : e32 + "";
            }
            __name2(a5, "a");
            var i5 = r4(425).ArrayPrototypeMap, c6 = (function() {
              return t32 = /* @__PURE__ */ __name2(function t42() {
                !(function(t5, e42) {
                  if (!(t5 instanceof e42)) throw new TypeError("Cannot call a class as a function");
                })(this, t42);
              }, "t"), e32 = [{ key: "hexSlice", value: /* @__PURE__ */ __name2(function() {
                var t42 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, e42 = arguments.length > 1 ? arguments[1] : void 0;
                return i5(this.slice(t42, e42), function(t5) {
                  return ("00" + t5.toString(16)).slice(-2);
                }).join("");
              }, "value") }], e32 && o5(t32.prototype, e32), Object.defineProperty(t32, "prototype", { writable: false }), t32;
              var t32, e32;
            })();
            e22.h = c6;
          }, 923: (t22, e22, r4) => {
            var n6 = r4(425), o5 = n6.ArrayPrototypeJoin, a5 = n6.Error, i5 = n6.StringPrototypeReplace, c6 = n6.SymbolFor, u5 = /\u001b\[\d\d?m/g;
            t22.exports = { customInspectSymbol: c6("nodejs.util.inspect.custom"), isError: /* @__PURE__ */ __name2(function(t32) {
              return t32 instanceof a5;
            }, "isError"), join: o5, removeColors: /* @__PURE__ */ __name2(function(t32) {
              return i5(t32, u5, "");
            }, "removeColors") };
          }, 924: (t22, e22, r4) => {
            function n6(t32, e32) {
              (null == e32 || e32 > t32.length) && (e32 = t32.length);
              for (var r22 = 0, n22 = Array(e32); r22 < e32; r22++) n22[r22] = t32[r22];
              return n22;
            }
            __name2(n6, "n");
            function o5(t32) {
              return o5 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, o5(t32);
            }
            __name2(o5, "o");
            function a5(t32, e32) {
              for (var r22 = 0; r22 < e32.length; r22++) {
                var n22 = e32[r22];
                n22.enumerable = n22.enumerable || false, n22.configurable = true, "value" in n22 && (n22.writable = true), Object.defineProperty(t32, i5(n22.key), n22);
              }
            }
            __name2(a5, "a");
            function i5(t32) {
              var e32 = (function(t42) {
                if ("object" != o5(t42) || !t42) return t42;
                var e42 = t42[Symbol.toPrimitive];
                if (void 0 !== e42) {
                  var r22 = e42.call(t42, "string");
                  if ("object" != o5(r22)) return r22;
                  throw new TypeError("@@toPrimitive must return a primitive value.");
                }
                return String(t42);
              })(t32);
              return "symbol" == o5(e32) ? e32 : e32 + "";
            }
            __name2(i5, "i");
            function c6() {
              try {
                var t32 = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
                }));
              } catch (t42) {
              }
              return (c6 = /* @__PURE__ */ __name2(function() {
                return !!t32;
              }, "c"))();
            }
            __name2(c6, "c");
            function u5(t32) {
              return u5 = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t42) {
                return t42.__proto__ || Object.getPrototypeOf(t42);
              }, u5(t32);
            }
            __name2(u5, "u");
            function l4(t32, e32) {
              return l4 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t42, e42) {
                return t42.__proto__ = e42, t42;
              }, l4(t32, e32);
            }
            __name2(l4, "l");
            var f4, s4, y3 = r4(425), p3 = y3.ArrayIsArray, g3 = y3.ArrayPrototypeIncludes, v3 = y3.ArrayPrototypeIndexOf, h4 = y3.ArrayPrototypeJoin, d3 = y3.ArrayPrototypePush, b3 = y3.ArrayPrototypeSlice, m3 = y3.ArrayPrototypeSplice, S3 = y3.Error, P = y3.ErrorCaptureStackTrace, x = y3.JSONStringify, w = y3.ObjectDefineProperty, A = y3.ReflectApply, O = y3.RegExpPrototypeExec, _ = y3.SafeMap, j = y3.SafeWeakMap, E = y3.String, k3 = y3.StringPrototypeEndsWith, I = y3.StringPrototypeIncludes, R = y3.StringPrototypeIndexOf, L = y3.StringPrototypeSlice, T = y3.StringPrototypeToLowerCase, B = y3.Symbol, z = y3.TypeError, M = B("kIsNodeError"), C = new _(), D = {}, N = /^[A-Z][a-zA-Z0-9]*$/, F = ["string", "function", "number", "object", "Function", "Object", "boolean", "bigint", "symbol"], W = new j(), H = r4(229), U = null;
            function G2(t32, e32) {
              var r22 = (function(t42) {
                function r32() {
                  var t5, n32, a22, l22;
                  (function(t6, e42) {
                    if (!(t6 instanceof e42)) throw new TypeError("Cannot call a class as a function");
                  })(this, r32), t5 = (function(t6, e42, r42) {
                    return e42 = u5(e42), (function(t7, e5) {
                      if (e5 && ("object" == o5(e5) || "function" == typeof e5)) return e5;
                      if (void 0 !== e5) throw new TypeError("Derived constructors may only return object or undefined");
                      return (function(t8) {
                        if (void 0 === t8) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return t8;
                      })(t7);
                    })(t6, c6() ? Reflect.construct(e42, r42 || [], u5(t6).constructor) : e42.apply(t6, r42));
                  })(this, r32), n32 = t5, l22 = e32, (a22 = i5(a22 = "code")) in n32 ? Object.defineProperty(n32, a22, { value: l22, enumerable: true, configurable: true, writable: true }) : n32[a22] = l22;
                  for (var f32 = arguments.length, s32 = new Array(f32), y22 = 0; y22 < f32; y22++) s32[y22] = arguments[y22];
                  return w(t5, "message", { __proto__: null, value: Z(e32, s32, t5), enumerable: false, writable: true, configurable: true }), t5;
                }
                __name2(r32, "r");
                return (function(t5, e42) {
                  if ("function" != typeof e42 && null !== e42) throw new TypeError("Super expression must either be null or a function");
                  t5.prototype = Object.create(e42 && e42.prototype, { constructor: { value: t5, writable: true, configurable: true } }), Object.defineProperty(t5, "prototype", { writable: false }), e42 && l4(t5, e42);
                })(r32, t42), n22 = r32, (f22 = [{ key: "toString", value: /* @__PURE__ */ __name2(function() {
                  return "".concat(this.name, " [").concat(e32, "]: ").concat(this.message);
                }, "value") }]) && a5(n22.prototype, f22), s22 && a5(n22, s22), Object.defineProperty(n22, "prototype", { writable: false }), n22;
                var n22, f22, s22;
              })(t32);
              return r22;
            }
            __name2(G2, "G");
            function V(t32, e32, r22) {
              C.set(t32, e32);
              var n22 = G2(r22, t32);
              D[t32] = n22;
            }
            __name2(V, "V");
            function Z(t32, e32, r22) {
              var n22 = C.get(t32);
              if ("function" == typeof n22) return H(n22.length <= e32.length, "Code: ".concat(t32, "; The provided arguments length (").concat(e32.length, ") does not ") + "match the required ones (".concat(n22.length, ").")), A(n22, r22, e32);
            }
            __name2(Z, "Z");
            var $ = B("kEnhanceStackBeforeInspector");
            function Y(t32) {
              if (null === t32) return "null";
              if (void 0 === t32) return "undefined";
              switch (o5(t32)) {
                case "bigint":
                  return "type bigint (".concat(t32, "n)");
                case "number":
                  return 0 === t32 ? 1 / t32 == -1 / 0 ? "type number (-0)" : "type number (0)" : t32 != t32 ? "type number (NaN)" : t32 === 1 / 0 ? "type number (Infinity)" : t32 === -1 / 0 ? "type number (-Infinity)" : "type number (".concat(t32, ")");
                case "boolean":
                  return t32 ? "type boolean (true)" : "type boolean (false)";
                case "symbol":
                  return "type symbol (".concat(E(t32), ")");
                case "function":
                  return "function ".concat(t32.name);
                case "object":
                  return t32.constructor && "name" in t32.constructor ? "an instance of ".concat(t32.constructor.name) : "".concat((U = U || r4(33)).inspect(t32, { depth: -1 }));
                case "string":
                  return t32.length > 28 && (t32 = "".concat(L(t32, 0, 25), "...")), -1 === R(t32, "'") ? "type string ('".concat(t32, "')") : "type string (".concat(x(t32), ")");
              }
            }
            __name2(Y, "Y");
            function q(t32) {
              var e32 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "and";
              switch (t32.length) {
                case 0:
                  return "";
                case 1:
                  return "".concat(t32[0]);
                case 2:
                  return "".concat(t32[0], " ").concat(e32, " ").concat(t32[1]);
                case 3:
                  return "".concat(t32[0], ", ").concat(t32[1], ", ").concat(e32, " ").concat(t32[2]);
                default:
                  return "".concat(h4(b3(t32, 0, -1), ", "), ", ").concat(e32, " ").concat(t32[t32.length - 1]);
              }
            }
            __name2(q, "q");
            t22.exports = { codes: D, determineSpecificType: Y, E: V, formatList: q, getMessage: Z, hideStackFrames: /* @__PURE__ */ __name2(function(t32) {
              function e32() {
                try {
                  for (var r22 = arguments.length, n22 = new Array(r22), o22 = 0; o22 < r22; o22++) n22[o22] = arguments[o22];
                  return A(t32, this, n22);
                } catch (t42) {
                  throw S3.stackTraceLimit && P(t42, e32), t42;
                }
              }
              __name2(e32, "e");
              return e32.withoutStackTrace = t32, e32;
            }, "hideStackFrames"), isStackOverflowError: /* @__PURE__ */ __name2(function(t32) {
              if (void 0 === s4) try {
                var e32 = /* @__PURE__ */ __name2(function() {
                  e32();
                }, "e");
                e32();
              } catch (t42) {
                s4 = t42.message, f4 = t42.name;
              }
              return t32 && t32.name === f4 && t32.message === s4;
            }, "isStackOverflowError"), kEnhanceStackBeforeInspector: $, kIsNodeError: M, overrideStackTrace: W }, V("ERR_INTERNAL_ASSERTION", function(t32) {
              var e32 = "This is caused by either a bug in Node.js or incorrect usage of Node.js internals.\nPlease open an issue with this stack trace at https://github.com/nodejs/node/issues\n";
              return void 0 === t32 ? e32 : "".concat(t32, "\n").concat(e32);
            }, S3), V("ERR_INVALID_ARG_TYPE", function(t32, e32, r22) {
              H("string" == typeof t32, "'name' must be a string"), p3(e32) || (e32 = [e32]);
              var o22 = "The ";
              if (k3(t32, " argument")) o22 += "".concat(t32, " ");
              else {
                var a22 = I(t32, ".") ? "property" : "argument";
                o22 += '"'.concat(t32, '" ').concat(a22, " ");
              }
              o22 += "must be ";
              var i22, c22 = [], u22 = [], l22 = [], f22 = (function(t42, e42) {
                var r32 = "undefined" != typeof Symbol && t42[Symbol.iterator] || t42["@@iterator"];
                if (!r32) {
                  if (Array.isArray(t42) || (r32 = (function(t5, e5) {
                    if (t5) {
                      if ("string" == typeof t5) return n6(t5, e5);
                      var r42 = {}.toString.call(t5).slice(8, -1);
                      return "Object" === r42 && t5.constructor && (r42 = t5.constructor.name), "Map" === r42 || "Set" === r42 ? Array.from(t5) : "Arguments" === r42 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r42) ? n6(t5, e5) : void 0;
                    }
                  })(t42)) || e42 && t42 && "number" == typeof t42.length) {
                    r32 && (t42 = r32);
                    var o32 = 0, a32 = /* @__PURE__ */ __name2(function() {
                    }, "a");
                    return { s: a32, n: /* @__PURE__ */ __name2(function() {
                      return o32 >= t42.length ? { done: true } : { done: false, value: t42[o32++] };
                    }, "n"), e: /* @__PURE__ */ __name2(function(t5) {
                      throw t5;
                    }, "e"), f: a32 };
                  }
                  throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
                }
                var i33, c32 = true, u32 = false;
                return { s: /* @__PURE__ */ __name2(function() {
                  r32 = r32.call(t42);
                }, "s"), n: /* @__PURE__ */ __name2(function() {
                  var t5 = r32.next();
                  return c32 = t5.done, t5;
                }, "n"), e: /* @__PURE__ */ __name2(function(t5) {
                  u32 = true, i33 = t5;
                }, "e"), f: /* @__PURE__ */ __name2(function() {
                  try {
                    c32 || null == r32.return || r32.return();
                  } finally {
                    if (u32) throw i33;
                  }
                }, "f") };
              })(e32);
              try {
                for (f22.s(); !(i22 = f22.n()).done; ) {
                  var s22 = i22.value;
                  H("string" == typeof s22, "All expected entries have to be of type string"), g3(F, s22) ? d3(c22, T(s22)) : null !== O(N, s22) ? d3(u22, s22) : (H("object" !== s22, 'The value "object" should be written as "Object"'), d3(l22, s22));
                }
              } catch (t42) {
                f22.e(t42);
              } finally {
                f22.f();
              }
              if (u22.length > 0) {
                var y22 = v3(c22, "object");
                -1 !== y22 && (m3(c22, y22, 1), d3(u22, "Object"));
              }
              return c22.length > 0 && (o22 += "".concat(c22.length > 1 ? "one of type" : "of type", " ").concat(q(c22, "or")), (u22.length > 0 || l22.length > 0) && (o22 += " or ")), u22.length > 0 && (o22 += "an instance of ".concat(q(u22, "or")), l22.length > 0 && (o22 += " or ")), l22.length > 0 && (l22.length > 1 ? o22 += "one of ".concat(q(l22, "or")) : (T(l22[0]) !== l22[0] && (o22 += "an "), o22 += "".concat(l22[0]))), o22 + ". Received ".concat(Y(r22));
            }, z);
          } }, e4 = {};
          return (/* @__PURE__ */ __name2(function r4(n6) {
            var o5 = e4[n6];
            if (void 0 !== o5) return o5.exports;
            var a5 = e4[n6] = { exports: {} };
            return t4[n6](a5, a5.exports, r4), a5.exports;
          }, "r"))(33);
        })());
      }
    });
    var src_exports = {};
    __export2(src_exports, {
      AbortError: () => AbortError3,
      AsyncEventEmitter: () => AsyncEventEmitter
    });
    module.exports = __toCommonJS2(src_exports);
    init_cjs_shims();
    init_cjs_shims();
    var import_inspect = __toESM2(require_inspect(), 1);
    var {
      // The commented out things are not visible from normal node's util.
      // identicalSequenceRange,
      inspect: inspect2,
      // inspectDefaultOptions,
      format,
      formatWithOptions,
      // getStringWidth,
      stripVTControlCharacters,
      // isZeroWidthCodePoint,
      stylizeWithColor,
      stylizeWithHTML,
      Proxy: Proxy2
    } = import_inspect.default;
    function validateListener(input) {
      if (typeof input !== "function") {
        throw new TypeError(`The listener argument must be a function. Received ${typeof input}`);
      }
    }
    __name2(validateListener, "validateListener");
    function validateAbortSignal(input) {
      if (input && !(input instanceof AbortSignal)) {
        throw new TypeError(`The signal option must be an AbortSignal. Received ${input}`);
      }
    }
    __name2(validateAbortSignal, "validateAbortSignal");
    function spliceOne(list, index2) {
      for (; index2 + 1 < list.length; index2++) {
        list[index2] = list[index2 + 1];
      }
      list.pop();
    }
    __name2(spliceOne, "spliceOne");
    function arrayClone(arr) {
      switch (arr.length) {
        case 2:
          return [arr[0], arr[1]];
        case 3:
          return [arr[0], arr[1], arr[2]];
        case 4:
          return [arr[0], arr[1], arr[2], arr[3]];
        case 5:
          return [arr[0], arr[1], arr[2], arr[3], arr[4]];
        case 6:
          return [arr[0], arr[1], arr[2], arr[3], arr[4], arr[5]];
      }
      return arr.slice();
    }
    __name2(arrayClone, "arrayClone");
    function identicalSequenceRange(a5, b3) {
      for (let i5 = 0; i5 < a5.length - 3; i5++) {
        const pos = b3.indexOf(a5[i5]);
        if (pos !== -1) {
          const rest = b3.length - pos;
          if (rest > 3) {
            let len = 1;
            const maxLen = Math.min(a5.length - i5, rest);
            while (maxLen > len && a5[i5 + len] === b3[pos + len]) {
              len++;
            }
            if (len > 3) {
              return [len, i5];
            }
          }
        }
      }
      return [0, 0];
    }
    __name2(identicalSequenceRange, "identicalSequenceRange");
    function enhanceStackTrace(err2, own) {
      let ctorInfo = "";
      try {
        const { name } = this.constructor;
        if (name !== "AsyncEventEmitter") ctorInfo = ` on ${name} instance`;
      } catch {
      }
      const sep = `
Emitted 'error' event${ctorInfo} at:
`;
      const errStack = err2.stack.split("\n").slice(1);
      const ownStack = own.stack.split("\n").slice(1);
      const { 0: len, 1: off } = identicalSequenceRange(ownStack, errStack);
      if (len > 0) {
        ownStack.splice(off + 1, len - 2, "    [... lines matching original stack trace ...]");
      }
      return err2.stack + sep + ownStack.join("\n");
    }
    __name2(enhanceStackTrace, "enhanceStackTrace");
    var brandSymbol = Symbol.for("async-event-emitter.ts-brand");
    var kCapturePromiseRejections = Symbol.for("async-event-emitter.ts-capture-promise-rejections");
    var _a2;
    brandSymbol, _a2 = kCapturePromiseRejections;
    var _AsyncEventEmitter = class _AsyncEventEmitter2 {
      constructor() {
        this._events = {
          __proto__: null
        };
        this._eventCount = 0;
        this._maxListeners = 10;
        this._internalPromiseMap = /* @__PURE__ */ new Map();
        this._wrapperId = 0n;
        this[_a2] = true;
      }
      addListener(eventName, listener) {
        validateListener(listener);
        const wrapped = this._wrapListener(eventName, listener, false);
        this._addListener(eventName, wrapped, false);
        return this;
      }
      on(eventName, listener) {
        return this.addListener(eventName, listener);
      }
      once(eventName, listener) {
        validateListener(listener);
        const wrapped = this._wrapListener(eventName, listener, true);
        this._addListener(eventName, wrapped, false);
        return this;
      }
      removeListener(eventName, listener) {
        validateListener(listener);
        const events2 = this._events;
        const eventList = events2[eventName];
        if (eventList === void 0) {
          return this;
        }
        if (eventList === listener || eventList.listener === listener) {
          if (--this._eventCount === 0) {
            this._events = { __proto__: null };
          } else {
            delete events2[eventName];
            if (events2.removeListener) {
              this.emit(
                "removeListener",
                eventName,
                eventList.listener ?? eventList
              );
            }
          }
        } else if (typeof eventList !== "function") {
          let position = -1;
          for (let i5 = eventList.length - 1; i5 >= 0; i5--) {
            if (eventList[i5] === listener || eventList[i5].listener === listener) {
              position = i5;
              break;
            }
          }
          if (position < 0) {
            return this;
          }
          if (position === 0) {
            eventList.shift();
          } else {
            spliceOne(eventList, position);
          }
          if (eventList.length === 0) {
            delete events2[eventName];
            --this._eventCount;
          }
          if (events2.removeListener !== void 0) {
            this.emit("removeListener", eventName, listener);
          }
        }
        return this;
      }
      off(eventName, listener) {
        return this.removeListener(eventName, listener);
      }
      removeAllListeners(event) {
        const events2 = this._events;
        if (events2.removeListener === void 0) {
          if (!event) {
            this._events = { __proto__: null };
            this._eventCount = 0;
          } else if (events2[event] !== void 0) {
            if (--this._eventCount === 0) {
              this._events = { __proto__: null };
            } else {
              delete events2[event];
            }
          }
          return this;
        }
        if (!event) {
          for (const key of Reflect.ownKeys(events2)) {
            if (key === "removeListener") {
              continue;
            }
            this.removeAllListeners(key);
          }
          this.removeAllListeners("removeListener");
          this._events = { __proto__: null };
          this._eventCount = 0;
          return this;
        }
        const listeners = events2[event];
        if (typeof listeners === "function") {
          this.removeListener(event, listeners);
        } else if (listeners !== void 0) {
          for (let i5 = listeners.length - 1; i5 >= 0; i5--) {
            this.removeListener(event, listeners[i5]);
          }
        }
        return this;
      }
      setMaxListeners(n6) {
        if (typeof n6 !== "number" || n6 < 0 || Number.isNaN(n6)) {
          throw new RangeError(`Expected to get a non-negative number for "setMaxListeners", got ${n6} instead`);
        }
        this._maxListeners = n6;
        return this;
      }
      getMaxListeners() {
        return this._maxListeners;
      }
      listeners(eventName) {
        const eventList = this._events[eventName];
        if (eventList === void 0) {
          return [];
        }
        if (typeof eventList === "function") {
          return [eventList.listener ?? eventList];
        }
        const ret = arrayClone(eventList);
        for (let i5 = 0; i5 < ret.length; ++i5) {
          const orig = ret[i5].listener;
          if (typeof orig === "function") {
            ret[i5] = orig;
          }
        }
        return ret;
      }
      rawListeners(eventName) {
        const eventList = this._events[eventName];
        if (eventList === void 0) {
          return [];
        }
        if (typeof eventList === "function") {
          return [eventList];
        }
        return arrayClone(eventList);
      }
      emit(eventName, ...args) {
        let doError = eventName === "error";
        const events2 = this._events;
        if (events2 !== void 0) {
          doError = doError && events2.error === void 0;
        } else if (!doError) {
          return false;
        }
        if (doError) {
          let er;
          if (args.length > 0) {
            er = args[0];
          }
          if (er instanceof Error) {
            try {
              const capture = {};
              Error.captureStackTrace(capture, _AsyncEventEmitter2.prototype.emit);
              Object.defineProperty(er, "stack", {
                value: enhanceStackTrace.call(this, er, capture),
                configurable: true
              });
            } catch {
            }
            throw er;
          }
          let stringifiedError;
          try {
            stringifiedError = inspect2(er);
          } catch {
            stringifiedError = String(er);
          }
          const err2 = new Error(`Unhandled 'error' event emitted, received ${stringifiedError}`);
          err2.context = er;
          throw err2;
        }
        const handlers3 = events2[eventName];
        if (handlers3 === void 0) {
          return false;
        }
        if (typeof handlers3 === "function") {
          const result = handlers3.apply(this, args);
          if (result !== void 0 && result !== null) {
            handleMaybeAsync(this, result);
          }
        } else {
          const len = handlers3.length;
          const listeners = arrayClone(handlers3);
          for (let i5 = 0; i5 < len; ++i5) {
            const result = listeners[i5].apply(this, args);
            if (result !== void 0 && result !== null) {
              handleMaybeAsync(this, result);
            }
          }
        }
        return true;
      }
      listenerCount(eventName) {
        const events2 = this._events;
        if (events2 === void 0) {
          return 0;
        }
        const eventListeners = events2[eventName];
        if (typeof eventListeners === "function") {
          return 1;
        }
        return eventListeners?.length ?? 0;
      }
      prependListener(eventName, listener) {
        validateListener(listener);
        const wrapped = this._wrapListener(eventName, listener, false);
        this._addListener(eventName, wrapped, true);
        return this;
      }
      prependOnceListener(eventName, listener) {
        validateListener(listener);
        const wrapped = this._wrapListener(eventName, listener, true);
        this._addListener(eventName, wrapped, true);
        return this;
      }
      eventNames() {
        return this._eventCount > 0 ? Reflect.ownKeys(this._events) : [];
      }
      async waitForAllListenersToComplete() {
        const promises = [...this._internalPromiseMap.values()];
        if (promises.length === 0) {
          return false;
        }
        await Promise.all(promises);
        return true;
      }
      _addListener(eventName, wrappedListener, prepend) {
        if (this._events.newListener !== void 0) {
          this.emit(
            "newListener",
            eventName,
            wrappedListener.listener ?? wrappedListener
          );
        }
        let existing = this._events[eventName];
        if (existing === void 0) {
          existing = this._events[eventName] = wrappedListener;
          ++this._eventCount;
        } else if (typeof existing === "function") {
          existing = this._events[eventName] = prepend ? [wrappedListener, existing] : [existing, wrappedListener];
        } else if (prepend) {
          existing.unshift(wrappedListener);
        } else {
          existing.push(wrappedListener);
        }
        const existingWarnedAboutMaxListeners = Reflect.get(existing, "_hasWarnedAboutMaxListeners");
        if (this._maxListeners > 0 && existing.length > this._maxListeners && !existingWarnedAboutMaxListeners) {
          Reflect.set(existing, "_hasWarnedAboutMaxListeners", true);
          const warningMessage = [
            `Possible AsyncEventEmitter memory leak detected. ${existing.length} ${String(
              eventName
            )} listeners added to ${this.constructor.name}.`,
            `Use emitter.setMaxListeners() to increase the limit.`
          ].join(" ");
          console.warn(warningMessage);
        }
      }
      _wrapListener(eventName, listener, once) {
        if (!once) {
          return listener;
        }
        const state = {
          fired: false,
          wrapFn: void 0,
          eventEmitter: this,
          eventName,
          listener
        };
        const aliased = onceWrapper;
        const wrapped = aliased.bind(state);
        wrapped.listener = listener;
        state.wrapFn = wrapped;
        return wrapped;
      }
      static listenerCount(emitter, eventName) {
        return emitter.listenerCount(eventName);
      }
      static async once(emitter, eventName, options = {}) {
        const signal = options?.signal;
        validateAbortSignal(signal);
        if (signal?.aborted) {
          throw new AbortError3(void 0, { cause: getReason(signal) });
        }
        return new Promise((resolve4, reject) => {
          const errorListener = /* @__PURE__ */ __name2((err2) => {
            emitter.removeListener(eventName, resolver);
            if (signal) {
              eventTargetAgnosticRemoveListener(emitter, eventName, abortListener);
            }
            reject(err2);
          }, "errorListener");
          const resolver = /* @__PURE__ */ __name2((...args) => {
            emitter.removeListener("error", errorListener);
            if (signal) {
              eventTargetAgnosticRemoveListener(signal, "abort", abortListener);
            }
            resolve4(args);
          }, "resolver");
          emitter.once(eventName, resolver);
          if (eventName !== "error") {
            emitter.once("error", errorListener);
          }
          const abortListener = /* @__PURE__ */ __name2(() => {
            eventTargetAgnosticRemoveListener(emitter, eventName, resolver);
            eventTargetAgnosticRemoveListener(emitter, "error", errorListener);
            reject(new AbortError3(void 0, { cause: getReason(signal) }));
          }, "abortListener");
          if (signal) {
            eventTargetAgnosticAddListener(signal, "abort", abortListener, { once: true });
          }
        });
      }
      static on(emitter, eventName, options = {}) {
        const signal = options?.signal;
        validateAbortSignal(signal);
        if (signal?.aborted) {
          throw new AbortError3(void 0, { cause: getReason(signal) });
        }
        const unconsumedEvents = [];
        const unconsumedPromises = [];
        let error = null;
        let finished2 = false;
        const abortListener = /* @__PURE__ */ __name2(() => {
          errorHandler(new AbortError3(void 0, { cause: getReason(signal) }));
        }, "abortListener");
        const eventHandler = /* @__PURE__ */ __name2((...args) => {
          const promise = unconsumedPromises.shift();
          if (promise) {
            promise.resolve(createIterResult(args, false));
          } else {
            unconsumedEvents.push(args);
          }
        }, "eventHandler");
        const errorHandler = /* @__PURE__ */ __name2((err2) => {
          finished2 = true;
          const toError = unconsumedPromises.shift();
          if (toError) {
            toError.reject(err2);
          } else {
            error = err2;
          }
          void iterator2.return();
        }, "errorHandler");
        const iterator2 = Object.setPrototypeOf(
          {
            next() {
              const value2 = unconsumedEvents.shift();
              if (value2) {
                return Promise.resolve(createIterResult(value2, false));
              }
              if (error) {
                const p3 = Promise.reject(error);
                error = null;
                return p3;
              }
              if (finished2) {
                return Promise.resolve(createIterResult(void 0, true));
              }
              return new Promise((resolve4, reject) => {
                unconsumedPromises.push({ resolve: resolve4, reject });
              });
            },
            return() {
              emitter.off(eventName, eventHandler);
              emitter.off("error", errorHandler);
              if (signal) {
                eventTargetAgnosticRemoveListener(signal, "abort", abortListener);
              }
              finished2 = true;
              const doneResult = createIterResult(void 0, true);
              for (const promise of unconsumedPromises) {
                promise.resolve(doneResult);
              }
              return Promise.resolve(doneResult);
            },
            throw(err2) {
              if (!err2 || !(err2 instanceof Error)) {
                throw new TypeError(
                  `Expected Error instance to be thrown in AsyncEventEmitter.AsyncIterator. Got ${err2}`
                );
              }
              error = err2;
              emitter.off(eventName, eventHandler);
              emitter.off("error", errorHandler);
            },
            [Symbol.asyncIterator]() {
              return this;
            }
          },
          AsyncIteratorPrototype
        );
        emitter.on(eventName, eventHandler);
        if (eventName !== "error") {
          emitter.on("error", errorHandler);
        }
        if (signal) {
          eventTargetAgnosticAddListener(signal, "abort", abortListener);
        }
        return iterator2;
      }
    };
    __name2(_AsyncEventEmitter, "AsyncEventEmitter");
    var AsyncEventEmitter = _AsyncEventEmitter;
    function onceWrapper() {
      if (!this.fired) {
        this.eventEmitter.removeListener(this.eventName, this.wrapFn);
        this.fired = true;
        if (arguments.length === 0) {
          return this.listener.call(this.eventEmitter);
        }
        return this.listener.apply(this.eventEmitter, arguments);
      }
    }
    __name2(onceWrapper, "onceWrapper");
    function getReason(signal) {
      return signal?.reason;
    }
    __name2(getReason, "getReason");
    function eventTargetAgnosticRemoveListener(emitter, name, listener, flags) {
      if (typeof emitter.off === "function") {
        emitter.off(name, listener);
      } else if (typeof emitter.removeEventListener === "function") {
        emitter.removeEventListener(name, listener, flags);
      }
    }
    __name2(eventTargetAgnosticRemoveListener, "eventTargetAgnosticRemoveListener");
    function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
      if (typeof emitter.on === "function") {
        if (flags?.once) {
          emitter.once(name, listener);
        } else {
          emitter.on(name, listener);
        }
      } else if (typeof emitter.addEventListener === "function") {
        emitter.addEventListener(name, listener, flags);
      }
    }
    __name2(eventTargetAgnosticAddListener, "eventTargetAgnosticAddListener");
    var AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () {
    }).prototype);
    function createIterResult(value2, done) {
      return { value: value2, done };
    }
    __name2(createIterResult, "createIterResult");
    var _AbortError = class _AbortError extends Error {
      constructor(message = "The operation was aborted", options = void 0) {
        if (options !== void 0 && typeof options !== "object") {
          throw new TypeError(`Failed to create AbortError: options is not an object or undefined`);
        }
        super(message, options);
        this.code = "ABORT_ERR";
        this.name = "AbortError";
      }
    };
    __name2(_AbortError, "AbortError");
    var AbortError3 = _AbortError;
    function handleMaybeAsync(emitter, result) {
      if (!emitter[kCapturePromiseRejections]) {
        return;
      }
      try {
        const the = result.then;
        const fin = result.finally;
        let handledPromise = result;
        if (typeof the === "function") {
          handledPromise = the.call(result, void 0, (error) => {
            emitErrorFromRejectionHandler(emitter, error);
          });
        }
        if (typeof fin === "function") {
          const promiseId = String(++emitter["_wrapperId"]);
          emitter["_internalPromiseMap"].set(promiseId, result);
          fin.call(handledPromise, /* @__PURE__ */ __name2(function final() {
            emitter["_internalPromiseMap"].delete(promiseId);
          }, "final"));
        }
      } catch (err2) {
        emitter.emit("error", err2);
      }
    }
    __name2(handleMaybeAsync, "handleMaybeAsync");
    function emitErrorFromRejectionHandler(emitter, error) {
      setTimeout(() => {
        try {
          emitter[kCapturePromiseRejections] = false;
          emitter.emit("error", error);
        } finally {
          emitter[kCapturePromiseRejections] = true;
        }
      }, 0);
    }
    __name2(emitErrorFromRejectionHandler, "emitErrorFromRejectionHandler");
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/events/event_manager.js
var require_event_manager = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/events/event_manager.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.EventManager = exports.EventType = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var async_event_emitter_1 = require_dist3();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var utilities_1 = require_cjs4();
    var configuration_1 = require_configuration();
    var EventType2;
    (function(EventType3) {
      EventType3["PERSIST_STATE"] = "persistState";
      EventType3["SYSTEM_INFO"] = "systemInfo";
      EventType3["MIGRATING"] = "migrating";
      EventType3["ABORTING"] = "aborting";
      EventType3["EXIT"] = "exit";
    })(EventType2 || (exports.EventType = EventType2 = {}));
    var EventManager3 = class {
      constructor(config = configuration_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_event_emitter_1.AsyncEventEmitter()
        });
        Object.defineProperty(this, "initialized", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "intervals", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: log_1.default.child({ prefix: "Events" })
        });
        this.events.setMaxListeners(50);
      }
      /**
       * Initializes the event manager by creating the `persistState` event interval.
       * This is automatically called at the beginning of `crawler.run()`.
       */
      async init() {
        if (this.initialized) {
          return;
        }
        const persistStateIntervalMillis = this.config.get("persistStateIntervalMillis");
        this.intervals.persistState = (0, utilities_1.betterSetInterval)((intervalCallback) => {
          this.emit("persistState", { isMigrating: false });
          intervalCallback();
        }, persistStateIntervalMillis);
        this.initialized = true;
      }
      /**
       * Clears the internal `persistState` event interval.
       * This is automatically called at the end of `crawler.run()`.
       */
      async close() {
        if (!this.initialized) {
          return;
        }
        (0, utilities_1.betterClearInterval)(this.intervals.persistState);
        this.initialized = false;
        this.emit("persistState", { isMigrating: false });
        await this.waitForAllListenersToComplete();
      }
      on(event, listener) {
        this.events.on(event, listener);
      }
      off(event, listener) {
        if (listener) {
          this.events.removeListener(event, listener);
        } else {
          this.events.removeAllListeners(event);
        }
      }
      emit(event, ...args) {
        this.events.emit(event, ...args);
      }
      isInitialized() {
        return this.initialized;
      }
      /**
       * @internal
       */
      listenerCount(event) {
        return this.events.listenerCount(event);
      }
      /**
       * @internal
       */
      listeners(event) {
        return this.events.listeners(event);
      }
      /**
       * @internal
       */
      async waitForAllListenersToComplete() {
        return this.events.waitForAllListenersToComplete();
      }
    };
    exports.EventManager = EventManager3;
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/blocked.js
var require_blocked = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/blocked.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ROTATE_PROXY_ERRORS = exports.RETRY_CSS_SELECTORS = exports.CLOUDFLARE_RETRY_CSS_SELECTORS = void 0;
    exports.CLOUDFLARE_RETRY_CSS_SELECTORS = ['#turnstile-wrapper iframe[src^="https://challenges.cloudflare.com"]'];
    exports.RETRY_CSS_SELECTORS = [
      ...exports.CLOUDFLARE_RETRY_CSS_SELECTORS,
      'div#infoDiv0 a[href*="//www.google.com/policies/terms/"]',
      'iframe[src*="_Incapsula_Resource"]'
    ];
    exports.ROTATE_PROXY_ERRORS = [
      "ECONNRESET",
      "ECONNREFUSED",
      "ERR_PROXY_CONNECTION_FAILED",
      "ERR_TUNNEL_CONNECTION_FAILED",
      "Proxy responded with"
    ];
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/types.js
var require_types = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/types.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/options.js
var require_options = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/options.js"(exports) {
    "use strict";
    var __assign2 = exports && exports.__assign || function() {
      __assign2 = Object.assign || function(t4) {
        for (var s4, i5 = 1, n6 = arguments.length; i5 < n6; i5++) {
          s4 = arguments[i5];
          for (var p3 in s4) if (Object.prototype.hasOwnProperty.call(s4, p3))
            t4[p3] = s4[p3];
        }
        return t4;
      };
      return __assign2.apply(this, arguments);
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.flatten = void 0;
    var defaultOpts = {
      xml: false,
      decodeEntities: true
    };
    exports.default = defaultOpts;
    var xmlModeDefault = {
      _useHtmlParser2: true,
      xmlMode: true
    };
    function flatten3(options) {
      return (options === null || options === void 0 ? void 0 : options.xml) ? typeof options.xml === "boolean" ? xmlModeDefault : __assign2(__assign2({}, xmlModeDefault), options.xml) : options !== null && options !== void 0 ? options : void 0;
    }
    exports.flatten = flatten3;
  }
});

// ../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js
var require_lib3 = __commonJS({
  "../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;
    var ElementType;
    (function(ElementType2) {
      ElementType2["Root"] = "root";
      ElementType2["Text"] = "text";
      ElementType2["Directive"] = "directive";
      ElementType2["Comment"] = "comment";
      ElementType2["Script"] = "script";
      ElementType2["Style"] = "style";
      ElementType2["Tag"] = "tag";
      ElementType2["CDATA"] = "cdata";
      ElementType2["Doctype"] = "doctype";
    })(ElementType = exports.ElementType || (exports.ElementType = {}));
    function isTag(elem) {
      return elem.type === ElementType.Tag || elem.type === ElementType.Script || elem.type === ElementType.Style;
    }
    exports.isTag = isTag;
    exports.Root = ElementType.Root;
    exports.Text = ElementType.Text;
    exports.Directive = ElementType.Directive;
    exports.Comment = ElementType.Comment;
    exports.Script = ElementType.Script;
    exports.Style = ElementType.Style;
    exports.Tag = ElementType.Tag;
    exports.CDATA = ElementType.CDATA;
    exports.Doctype = ElementType.Doctype;
  }
});

// ../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js
var require_node = __commonJS({
  "../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js"(exports) {
    "use strict";
    var __extends2 = exports && exports.__extends || /* @__PURE__ */ (function() {
      var extendStatics2 = function(d3, b3) {
        extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d4, b4) {
          d4.__proto__ = b4;
        } || function(d4, b4) {
          for (var p3 in b4) if (Object.prototype.hasOwnProperty.call(b4, p3)) d4[p3] = b4[p3];
        };
        return extendStatics2(d3, b3);
      };
      return function(d3, b3) {
        if (typeof b3 !== "function" && b3 !== null)
          throw new TypeError("Class extends value " + String(b3) + " is not a constructor or null");
        extendStatics2(d3, b3);
        function __() {
          this.constructor = d3;
        }
        d3.prototype = b3 === null ? Object.create(b3) : (__.prototype = b3.prototype, new __());
      };
    })();
    var __assign2 = exports && exports.__assign || function() {
      __assign2 = Object.assign || function(t4) {
        for (var s4, i5 = 1, n6 = arguments.length; i5 < n6; i5++) {
          s4 = arguments[i5];
          for (var p3 in s4) if (Object.prototype.hasOwnProperty.call(s4, p3))
            t4[p3] = s4[p3];
        }
        return t4;
      };
      return __assign2.apply(this, arguments);
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;
    var domelementtype_1 = require_lib3();
    var Node = (
      /** @class */
      (function() {
        function Node2() {
          this.parent = null;
          this.prev = null;
          this.next = null;
          this.startIndex = null;
          this.endIndex = null;
        }
        Object.defineProperty(Node2.prototype, "parentNode", {
          // Read-write aliases for properties
          /**
           * Same as {@link parent}.
           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
           */
          get: function() {
            return this.parent;
          },
          set: function(parent) {
            this.parent = parent;
          },
          enumerable: false,
          configurable: true
        });
        Object.defineProperty(Node2.prototype, "previousSibling", {
          /**
           * Same as {@link prev}.
           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
           */
          get: function() {
            return this.prev;
          },
          set: function(prev) {
            this.prev = prev;
          },
          enumerable: false,
          configurable: true
        });
        Object.defineProperty(Node2.prototype, "nextSibling", {
          /**
           * Same as {@link next}.
           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
           */
          get: function() {
            return this.next;
          },
          set: function(next) {
            this.next = next;
          },
          enumerable: false,
          configurable: true
        });
        Node2.prototype.cloneNode = function(recursive) {
          if (recursive === void 0) {
            recursive = false;
          }
          return cloneNode(this, recursive);
        };
        return Node2;
      })()
    );
    exports.Node = Node;
    var DataNode = (
      /** @class */
      (function(_super) {
        __extends2(DataNode2, _super);
        function DataNode2(data2) {
          var _this = _super.call(this) || this;
          _this.data = data2;
          return _this;
        }
        Object.defineProperty(DataNode2.prototype, "nodeValue", {
          /**
           * Same as {@link data}.
           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
           */
          get: function() {
            return this.data;
          },
          set: function(data2) {
            this.data = data2;
          },
          enumerable: false,
          configurable: true
        });
        return DataNode2;
      })(Node)
    );
    exports.DataNode = DataNode;
    var Text2 = (
      /** @class */
      (function(_super) {
        __extends2(Text3, _super);
        function Text3() {
          var _this = _super !== null && _super.apply(this, arguments) || this;
          _this.type = domelementtype_1.ElementType.Text;
          return _this;
        }
        Object.defineProperty(Text3.prototype, "nodeType", {
          get: function() {
            return 3;
          },
          enumerable: false,
          configurable: true
        });
        return Text3;
      })(DataNode)
    );
    exports.Text = Text2;
    var Comment = (
      /** @class */
      (function(_super) {
        __extends2(Comment2, _super);
        function Comment2() {
          var _this = _super !== null && _super.apply(this, arguments) || this;
          _this.type = domelementtype_1.ElementType.Comment;
          return _this;
        }
        Object.defineProperty(Comment2.prototype, "nodeType", {
          get: function() {
            return 8;
          },
          enumerable: false,
          configurable: true
        });
        return Comment2;
      })(DataNode)
    );
    exports.Comment = Comment;
    var ProcessingInstruction = (
      /** @class */
      (function(_super) {
        __extends2(ProcessingInstruction2, _super);
        function ProcessingInstruction2(name, data2) {
          var _this = _super.call(this, data2) || this;
          _this.name = name;
          _this.type = domelementtype_1.ElementType.Directive;
          return _this;
        }
        Object.defineProperty(ProcessingInstruction2.prototype, "nodeType", {
          get: function() {
            return 1;
          },
          enumerable: false,
          configurable: true
        });
        return ProcessingInstruction2;
      })(DataNode)
    );
    exports.ProcessingInstruction = ProcessingInstruction;
    var NodeWithChildren = (
      /** @class */
      (function(_super) {
        __extends2(NodeWithChildren2, _super);
        function NodeWithChildren2(children) {
          var _this = _super.call(this) || this;
          _this.children = children;
          return _this;
        }
        Object.defineProperty(NodeWithChildren2.prototype, "firstChild", {
          // Aliases
          /** First child of the node. */
          get: function() {
            var _a2;
            return (_a2 = this.children[0]) !== null && _a2 !== void 0 ? _a2 : null;
          },
          enumerable: false,
          configurable: true
        });
        Object.defineProperty(NodeWithChildren2.prototype, "lastChild", {
          /** Last child of the node. */
          get: function() {
            return this.children.length > 0 ? this.children[this.children.length - 1] : null;
          },
          enumerable: false,
          configurable: true
        });
        Object.defineProperty(NodeWithChildren2.prototype, "childNodes", {
          /**
           * Same as {@link children}.
           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
           */
          get: function() {
            return this.children;
          },
          set: function(children) {
            this.children = children;
          },
          enumerable: false,
          configurable: true
        });
        return NodeWithChildren2;
      })(Node)
    );
    exports.NodeWithChildren = NodeWithChildren;
    var CDATA = (
      /** @class */
      (function(_super) {
        __extends2(CDATA2, _super);
        function CDATA2() {
          var _this = _super !== null && _super.apply(this, arguments) || this;
          _this.type = domelementtype_1.ElementType.CDATA;
          return _this;
        }
        Object.defineProperty(CDATA2.prototype, "nodeType", {
          get: function() {
            return 4;
          },
          enumerable: false,
          configurable: true
        });
        return CDATA2;
      })(NodeWithChildren)
    );
    exports.CDATA = CDATA;
    var Document3 = (
      /** @class */
      (function(_super) {
        __extends2(Document4, _super);
        function Document4() {
          var _this = _super !== null && _super.apply(this, arguments) || this;
          _this.type = domelementtype_1.ElementType.Root;
          return _this;
        }
        Object.defineProperty(Document4.prototype, "nodeType", {
          get: function() {
            return 9;
          },
          enumerable: false,
          configurable: true
        });
        return Document4;
      })(NodeWithChildren)
    );
    exports.Document = Document3;
    var Element2 = (
      /** @class */
      (function(_super) {
        __extends2(Element3, _super);
        function Element3(name, attribs, children, type) {
          if (children === void 0) {
            children = [];
          }
          if (type === void 0) {
            type = name === "script" ? domelementtype_1.ElementType.Script : name === "style" ? domelementtype_1.ElementType.Style : domelementtype_1.ElementType.Tag;
          }
          var _this = _super.call(this, children) || this;
          _this.name = name;
          _this.attribs = attribs;
          _this.type = type;
          return _this;
        }
        Object.defineProperty(Element3.prototype, "nodeType", {
          get: function() {
            return 1;
          },
          enumerable: false,
          configurable: true
        });
        Object.defineProperty(Element3.prototype, "tagName", {
          // DOM Level 1 aliases
          /**
           * Same as {@link name}.
           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
           */
          get: function() {
            return this.name;
          },
          set: function(name) {
            this.name = name;
          },
          enumerable: false,
          configurable: true
        });
        Object.defineProperty(Element3.prototype, "attributes", {
          get: function() {
            var _this = this;
            return Object.keys(this.attribs).map(function(name) {
              var _a2, _b2;
              return {
                name,
                value: _this.attribs[name],
                namespace: (_a2 = _this["x-attribsNamespace"]) === null || _a2 === void 0 ? void 0 : _a2[name],
                prefix: (_b2 = _this["x-attribsPrefix"]) === null || _b2 === void 0 ? void 0 : _b2[name]
              };
            });
          },
          enumerable: false,
          configurable: true
        });
        return Element3;
      })(NodeWithChildren)
    );
    exports.Element = Element2;
    function isTag(node) {
      return (0, domelementtype_1.isTag)(node);
    }
    exports.isTag = isTag;
    function isCDATA(node) {
      return node.type === domelementtype_1.ElementType.CDATA;
    }
    exports.isCDATA = isCDATA;
    function isText2(node) {
      return node.type === domelementtype_1.ElementType.Text;
    }
    exports.isText = isText2;
    function isComment(node) {
      return node.type === domelementtype_1.ElementType.Comment;
    }
    exports.isComment = isComment;
    function isDirective(node) {
      return node.type === domelementtype_1.ElementType.Directive;
    }
    exports.isDirective = isDirective;
    function isDocument(node) {
      return node.type === domelementtype_1.ElementType.Root;
    }
    exports.isDocument = isDocument;
    function hasChildren(node) {
      return Object.prototype.hasOwnProperty.call(node, "children");
    }
    exports.hasChildren = hasChildren;
    function cloneNode(node, recursive) {
      if (recursive === void 0) {
        recursive = false;
      }
      var result;
      if (isText2(node)) {
        result = new Text2(node.data);
      } else if (isComment(node)) {
        result = new Comment(node.data);
      } else if (isTag(node)) {
        var children = recursive ? cloneChildren(node.children) : [];
        var clone_1 = new Element2(node.name, __assign2({}, node.attribs), children);
        children.forEach(function(child) {
          return child.parent = clone_1;
        });
        if (node.namespace != null) {
          clone_1.namespace = node.namespace;
        }
        if (node["x-attribsNamespace"]) {
          clone_1["x-attribsNamespace"] = __assign2({}, node["x-attribsNamespace"]);
        }
        if (node["x-attribsPrefix"]) {
          clone_1["x-attribsPrefix"] = __assign2({}, node["x-attribsPrefix"]);
        }
        result = clone_1;
      } else if (isCDATA(node)) {
        var children = recursive ? cloneChildren(node.children) : [];
        var clone_2 = new CDATA(children);
        children.forEach(function(child) {
          return child.parent = clone_2;
        });
        result = clone_2;
      } else if (isDocument(node)) {
        var children = recursive ? cloneChildren(node.children) : [];
        var clone_3 = new Document3(children);
        children.forEach(function(child) {
          return child.parent = clone_3;
        });
        if (node["x-mode"]) {
          clone_3["x-mode"] = node["x-mode"];
        }
        result = clone_3;
      } else if (isDirective(node)) {
        var instruction = new ProcessingInstruction(node.name, node.data);
        if (node["x-name"] != null) {
          instruction["x-name"] = node["x-name"];
          instruction["x-publicId"] = node["x-publicId"];
          instruction["x-systemId"] = node["x-systemId"];
        }
        result = instruction;
      } else {
        throw new Error("Not implemented yet: ".concat(node.type));
      }
      result.startIndex = node.startIndex;
      result.endIndex = node.endIndex;
      if (node.sourceCodeLocation != null) {
        result.sourceCodeLocation = node.sourceCodeLocation;
      }
      return result;
    }
    exports.cloneNode = cloneNode;
    function cloneChildren(childs) {
      var children = childs.map(function(child) {
        return cloneNode(child, true);
      });
      for (var i5 = 1; i5 < children.length; i5++) {
        children[i5].prev = children[i5 - 1];
        children[i5 - 1].next = children[i5];
      }
      return children;
    }
  }
});

// ../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js
var require_lib4 = __commonJS({
  "../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __exportStar2 = exports && exports.__exportStar || function(m3, exports2) {
      for (var p3 in m3) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p3)) __createBinding2(exports2, m3, p3);
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DomHandler = void 0;
    var domelementtype_1 = require_lib3();
    var node_js_1 = require_node();
    __exportStar2(require_node(), exports);
    var defaultOpts = {
      withStartIndices: false,
      withEndIndices: false,
      xmlMode: false
    };
    var DomHandler = (
      /** @class */
      (function() {
        function DomHandler2(callback, options, elementCB) {
          this.dom = [];
          this.root = new node_js_1.Document(this.dom);
          this.done = false;
          this.tagStack = [this.root];
          this.lastNode = null;
          this.parser = null;
          if (typeof options === "function") {
            elementCB = options;
            options = defaultOpts;
          }
          if (typeof callback === "object") {
            options = callback;
            callback = void 0;
          }
          this.callback = callback !== null && callback !== void 0 ? callback : null;
          this.options = options !== null && options !== void 0 ? options : defaultOpts;
          this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;
        }
        DomHandler2.prototype.onparserinit = function(parser) {
          this.parser = parser;
        };
        DomHandler2.prototype.onreset = function() {
          this.dom = [];
          this.root = new node_js_1.Document(this.dom);
          this.done = false;
          this.tagStack = [this.root];
          this.lastNode = null;
          this.parser = null;
        };
        DomHandler2.prototype.onend = function() {
          if (this.done)
            return;
          this.done = true;
          this.parser = null;
          this.handleCallback(null);
        };
        DomHandler2.prototype.onerror = function(error) {
          this.handleCallback(error);
        };
        DomHandler2.prototype.onclosetag = function() {
          this.lastNode = null;
          var elem = this.tagStack.pop();
          if (this.options.withEndIndices) {
            elem.endIndex = this.parser.endIndex;
          }
          if (this.elementCB)
            this.elementCB(elem);
        };
        DomHandler2.prototype.onopentag = function(name, attribs) {
          var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : void 0;
          var element = new node_js_1.Element(name, attribs, void 0, type);
          this.addNode(element);
          this.tagStack.push(element);
        };
        DomHandler2.prototype.ontext = function(data2) {
          var lastNode = this.lastNode;
          if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {
            lastNode.data += data2;
            if (this.options.withEndIndices) {
              lastNode.endIndex = this.parser.endIndex;
            }
          } else {
            var node = new node_js_1.Text(data2);
            this.addNode(node);
            this.lastNode = node;
          }
        };
        DomHandler2.prototype.oncomment = function(data2) {
          if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {
            this.lastNode.data += data2;
            return;
          }
          var node = new node_js_1.Comment(data2);
          this.addNode(node);
          this.lastNode = node;
        };
        DomHandler2.prototype.oncommentend = function() {
          this.lastNode = null;
        };
        DomHandler2.prototype.oncdatastart = function() {
          var text = new node_js_1.Text("");
          var node = new node_js_1.CDATA([text]);
          this.addNode(node);
          text.parent = node;
          this.lastNode = text;
        };
        DomHandler2.prototype.oncdataend = function() {
          this.lastNode = null;
        };
        DomHandler2.prototype.onprocessinginstruction = function(name, data2) {
          var node = new node_js_1.ProcessingInstruction(name, data2);
          this.addNode(node);
        };
        DomHandler2.prototype.handleCallback = function(error) {
          if (typeof this.callback === "function") {
            this.callback(error, this.dom);
          } else if (error) {
            throw error;
          }
        };
        DomHandler2.prototype.addNode = function(node) {
          var parent = this.tagStack[this.tagStack.length - 1];
          var previousSibling = parent.children[parent.children.length - 1];
          if (this.options.withStartIndices) {
            node.startIndex = this.parser.startIndex;
          }
          if (this.options.withEndIndices) {
            node.endIndex = this.parser.endIndex;
          }
          parent.children.push(node);
          if (previousSibling) {
            node.prev = previousSibling;
            previousSibling.next = node;
          }
          node.parent = parent;
          this.lastNode = null;
        };
        return DomHandler2;
      })()
    );
    exports.DomHandler = DomHandler;
    exports.default = DomHandler;
  }
});

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-html.js
var require_decode_data_html = __commonJS({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-html.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.default = new Uint16Array(
      // prettier-ignore
      '\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(function(c6) {
        return c6.charCodeAt(0);
      })
    );
  }
});

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-xml.js
var require_decode_data_xml = __commonJS({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-xml.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.default = new Uint16Array(
      // prettier-ignore
      "\u0200aglq	\x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(function(c6) {
        return c6.charCodeAt(0);
      })
    );
  }
});

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.js
var require_decode_codepoint = __commonJS({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.js"(exports) {
    "use strict";
    var _a2;
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.replaceCodePoint = exports.fromCodePoint = void 0;
    var decodeMap = /* @__PURE__ */ new Map([
      [0, 65533],
      // C1 Unicode control character reference replacements
      [128, 8364],
      [130, 8218],
      [131, 402],
      [132, 8222],
      [133, 8230],
      [134, 8224],
      [135, 8225],
      [136, 710],
      [137, 8240],
      [138, 352],
      [139, 8249],
      [140, 338],
      [142, 381],
      [145, 8216],
      [146, 8217],
      [147, 8220],
      [148, 8221],
      [149, 8226],
      [150, 8211],
      [151, 8212],
      [152, 732],
      [153, 8482],
      [154, 353],
      [155, 8250],
      [156, 339],
      [158, 382],
      [159, 376]
    ]);
    exports.fromCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins
    (_a2 = String.fromCodePoint) !== null && _a2 !== void 0 ? _a2 : function(codePoint) {
      var output = "";
      if (codePoint > 65535) {
        codePoint -= 65536;
        output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296);
        codePoint = 56320 | codePoint & 1023;
      }
      output += String.fromCharCode(codePoint);
      return output;
    };
    function replaceCodePoint(codePoint) {
      var _a3;
      if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
        return 65533;
      }
      return (_a3 = decodeMap.get(codePoint)) !== null && _a3 !== void 0 ? _a3 : codePoint;
    }
    exports.replaceCodePoint = replaceCodePoint;
    function decodeCodePoint(codePoint) {
      return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));
    }
    exports.default = decodeCodePoint;
  }
});

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.js
var require_decode = __commonJS({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;
    var decode_data_html_js_1 = __importDefault2(require_decode_data_html());
    exports.htmlDecodeTree = decode_data_html_js_1.default;
    var decode_data_xml_js_1 = __importDefault2(require_decode_data_xml());
    exports.xmlDecodeTree = decode_data_xml_js_1.default;
    var decode_codepoint_js_1 = __importStar2(require_decode_codepoint());
    exports.decodeCodePoint = decode_codepoint_js_1.default;
    var decode_codepoint_js_2 = require_decode_codepoint();
    Object.defineProperty(exports, "replaceCodePoint", { enumerable: true, get: function() {
      return decode_codepoint_js_2.replaceCodePoint;
    } });
    Object.defineProperty(exports, "fromCodePoint", { enumerable: true, get: function() {
      return decode_codepoint_js_2.fromCodePoint;
    } });
    var CharCodes;
    (function(CharCodes2) {
      CharCodes2[CharCodes2["NUM"] = 35] = "NUM";
      CharCodes2[CharCodes2["SEMI"] = 59] = "SEMI";
      CharCodes2[CharCodes2["EQUALS"] = 61] = "EQUALS";
      CharCodes2[CharCodes2["ZERO"] = 48] = "ZERO";
      CharCodes2[CharCodes2["NINE"] = 57] = "NINE";
      CharCodes2[CharCodes2["LOWER_A"] = 97] = "LOWER_A";
      CharCodes2[CharCodes2["LOWER_F"] = 102] = "LOWER_F";
      CharCodes2[CharCodes2["LOWER_X"] = 120] = "LOWER_X";
      CharCodes2[CharCodes2["LOWER_Z"] = 122] = "LOWER_Z";
      CharCodes2[CharCodes2["UPPER_A"] = 65] = "UPPER_A";
      CharCodes2[CharCodes2["UPPER_F"] = 70] = "UPPER_F";
      CharCodes2[CharCodes2["UPPER_Z"] = 90] = "UPPER_Z";
    })(CharCodes || (CharCodes = {}));
    var TO_LOWER_BIT = 32;
    var BinTrieFlags;
    (function(BinTrieFlags2) {
      BinTrieFlags2[BinTrieFlags2["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
      BinTrieFlags2[BinTrieFlags2["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH";
      BinTrieFlags2[BinTrieFlags2["JUMP_TABLE"] = 127] = "JUMP_TABLE";
    })(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));
    function isNumber5(code) {
      return code >= CharCodes.ZERO && code <= CharCodes.NINE;
    }
    function isHexadecimalCharacter(code) {
      return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F;
    }
    function isAsciiAlphaNumeric(code) {
      return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z || isNumber5(code);
    }
    function isEntityInAttributeInvalidEnd(code) {
      return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);
    }
    var EntityDecoderState;
    (function(EntityDecoderState2) {
      EntityDecoderState2[EntityDecoderState2["EntityStart"] = 0] = "EntityStart";
      EntityDecoderState2[EntityDecoderState2["NumericStart"] = 1] = "NumericStart";
      EntityDecoderState2[EntityDecoderState2["NumericDecimal"] = 2] = "NumericDecimal";
      EntityDecoderState2[EntityDecoderState2["NumericHex"] = 3] = "NumericHex";
      EntityDecoderState2[EntityDecoderState2["NamedEntity"] = 4] = "NamedEntity";
    })(EntityDecoderState || (EntityDecoderState = {}));
    var DecodingMode;
    (function(DecodingMode2) {
      DecodingMode2[DecodingMode2["Legacy"] = 0] = "Legacy";
      DecodingMode2[DecodingMode2["Strict"] = 1] = "Strict";
      DecodingMode2[DecodingMode2["Attribute"] = 2] = "Attribute";
    })(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));
    var EntityDecoder = (
      /** @class */
      (function() {
        function EntityDecoder2(decodeTree, emitCodePoint, errors) {
          this.decodeTree = decodeTree;
          this.emitCodePoint = emitCodePoint;
          this.errors = errors;
          this.state = EntityDecoderState.EntityStart;
          this.consumed = 1;
          this.result = 0;
          this.treeIndex = 0;
          this.excess = 1;
          this.decodeMode = DecodingMode.Strict;
        }
        EntityDecoder2.prototype.startEntity = function(decodeMode) {
          this.decodeMode = decodeMode;
          this.state = EntityDecoderState.EntityStart;
          this.result = 0;
          this.treeIndex = 0;
          this.excess = 1;
          this.consumed = 1;
        };
        EntityDecoder2.prototype.write = function(str, offset2) {
          switch (this.state) {
            case EntityDecoderState.EntityStart: {
              if (str.charCodeAt(offset2) === CharCodes.NUM) {
                this.state = EntityDecoderState.NumericStart;
                this.consumed += 1;
                return this.stateNumericStart(str, offset2 + 1);
              }
              this.state = EntityDecoderState.NamedEntity;
              return this.stateNamedEntity(str, offset2);
            }
            case EntityDecoderState.NumericStart: {
              return this.stateNumericStart(str, offset2);
            }
            case EntityDecoderState.NumericDecimal: {
              return this.stateNumericDecimal(str, offset2);
            }
            case EntityDecoderState.NumericHex: {
              return this.stateNumericHex(str, offset2);
            }
            case EntityDecoderState.NamedEntity: {
              return this.stateNamedEntity(str, offset2);
            }
          }
        };
        EntityDecoder2.prototype.stateNumericStart = function(str, offset2) {
          if (offset2 >= str.length) {
            return -1;
          }
          if ((str.charCodeAt(offset2) | TO_LOWER_BIT) === CharCodes.LOWER_X) {
            this.state = EntityDecoderState.NumericHex;
            this.consumed += 1;
            return this.stateNumericHex(str, offset2 + 1);
          }
          this.state = EntityDecoderState.NumericDecimal;
          return this.stateNumericDecimal(str, offset2);
        };
        EntityDecoder2.prototype.addToNumericResult = function(str, start2, end2, base) {
          if (start2 !== end2) {
            var digitCount = end2 - start2;
            this.result = this.result * Math.pow(base, digitCount) + parseInt(str.substr(start2, digitCount), base);
            this.consumed += digitCount;
          }
        };
        EntityDecoder2.prototype.stateNumericHex = function(str, offset2) {
          var startIdx = offset2;
          while (offset2 < str.length) {
            var char = str.charCodeAt(offset2);
            if (isNumber5(char) || isHexadecimalCharacter(char)) {
              offset2 += 1;
            } else {
              this.addToNumericResult(str, startIdx, offset2, 16);
              return this.emitNumericEntity(char, 3);
            }
          }
          this.addToNumericResult(str, startIdx, offset2, 16);
          return -1;
        };
        EntityDecoder2.prototype.stateNumericDecimal = function(str, offset2) {
          var startIdx = offset2;
          while (offset2 < str.length) {
            var char = str.charCodeAt(offset2);
            if (isNumber5(char)) {
              offset2 += 1;
            } else {
              this.addToNumericResult(str, startIdx, offset2, 10);
              return this.emitNumericEntity(char, 2);
            }
          }
          this.addToNumericResult(str, startIdx, offset2, 10);
          return -1;
        };
        EntityDecoder2.prototype.emitNumericEntity = function(lastCp, expectedLength) {
          var _a2;
          if (this.consumed <= expectedLength) {
            (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
            return 0;
          }
          if (lastCp === CharCodes.SEMI) {
            this.consumed += 1;
          } else if (this.decodeMode === DecodingMode.Strict) {
            return 0;
          }
          this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);
          if (this.errors) {
            if (lastCp !== CharCodes.SEMI) {
              this.errors.missingSemicolonAfterCharacterReference();
            }
            this.errors.validateNumericCharacterReference(this.result);
          }
          return this.consumed;
        };
        EntityDecoder2.prototype.stateNamedEntity = function(str, offset2) {
          var decodeTree = this.decodeTree;
          var current = decodeTree[this.treeIndex];
          var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;
          for (; offset2 < str.length; offset2++, this.excess++) {
            var char = str.charCodeAt(offset2);
            this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);
            if (this.treeIndex < 0) {
              return this.result === 0 || // If we are parsing an attribute
              this.decodeMode === DecodingMode.Attribute && // We shouldn't have consumed any characters after the entity,
              (valueLength === 0 || // And there should be no invalid characters.
              isEntityInAttributeInvalidEnd(char)) ? 0 : this.emitNotTerminatedNamedEntity();
            }
            current = decodeTree[this.treeIndex];
            valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;
            if (valueLength !== 0) {
              if (char === CharCodes.SEMI) {
                return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
              }
              if (this.decodeMode !== DecodingMode.Strict) {
                this.result = this.treeIndex;
                this.consumed += this.excess;
                this.excess = 0;
              }
            }
          }
          return -1;
        };
        EntityDecoder2.prototype.emitNotTerminatedNamedEntity = function() {
          var _a2;
          var _b2 = this, result = _b2.result, decodeTree = _b2.decodeTree;
          var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
          this.emitNamedEntityData(result, valueLength, this.consumed);
          (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.missingSemicolonAfterCharacterReference();
          return this.consumed;
        };
        EntityDecoder2.prototype.emitNamedEntityData = function(result, valueLength, consumed) {
          var decodeTree = this.decodeTree;
          this.emitCodePoint(valueLength === 1 ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH : decodeTree[result + 1], consumed);
          if (valueLength === 3) {
            this.emitCodePoint(decodeTree[result + 2], consumed);
          }
          return consumed;
        };
        EntityDecoder2.prototype.end = function() {
          var _a2;
          switch (this.state) {
            case EntityDecoderState.NamedEntity: {
              return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
            }
            // Otherwise, emit a numeric entity if we have one.
            case EntityDecoderState.NumericDecimal: {
              return this.emitNumericEntity(0, 2);
            }
            case EntityDecoderState.NumericHex: {
              return this.emitNumericEntity(0, 3);
            }
            case EntityDecoderState.NumericStart: {
              (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
              return 0;
            }
            case EntityDecoderState.EntityStart: {
              return 0;
            }
          }
        };
        return EntityDecoder2;
      })()
    );
    exports.EntityDecoder = EntityDecoder;
    function getDecoder(decodeTree) {
      var ret = "";
      var decoder2 = new EntityDecoder(decodeTree, function(str) {
        return ret += (0, decode_codepoint_js_1.fromCodePoint)(str);
      });
      return function decodeWithTrie(str, decodeMode) {
        var lastIndex = 0;
        var offset2 = 0;
        while ((offset2 = str.indexOf("&", offset2)) >= 0) {
          ret += str.slice(lastIndex, offset2);
          decoder2.startEntity(decodeMode);
          var len = decoder2.write(
            str,
            // Skip the "&"
            offset2 + 1
          );
          if (len < 0) {
            lastIndex = offset2 + decoder2.end();
            break;
          }
          lastIndex = offset2 + len;
          offset2 = len === 0 ? lastIndex + 1 : lastIndex;
        }
        var result = ret + str.slice(lastIndex);
        ret = "";
        return result;
      };
    }
    function determineBranch(decodeTree, current, nodeIdx, char) {
      var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;
      var jumpOffset = current & BinTrieFlags.JUMP_TABLE;
      if (branchCount === 0) {
        return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;
      }
      if (jumpOffset) {
        var value2 = char - jumpOffset;
        return value2 < 0 || value2 >= branchCount ? -1 : decodeTree[nodeIdx + value2] - 1;
      }
      var lo = nodeIdx;
      var hi = lo + branchCount - 1;
      while (lo <= hi) {
        var mid = lo + hi >>> 1;
        var midVal = decodeTree[mid];
        if (midVal < char) {
          lo = mid + 1;
        } else if (midVal > char) {
          hi = mid - 1;
        } else {
          return decodeTree[mid + branchCount];
        }
      }
      return -1;
    }
    exports.determineBranch = determineBranch;
    var htmlDecoder = getDecoder(decode_data_html_js_1.default);
    var xmlDecoder = getDecoder(decode_data_xml_js_1.default);
    function decodeHTML(str, mode) {
      if (mode === void 0) {
        mode = DecodingMode.Legacy;
      }
      return htmlDecoder(str, mode);
    }
    exports.decodeHTML = decodeHTML;
    function decodeHTMLAttribute(str) {
      return htmlDecoder(str, DecodingMode.Attribute);
    }
    exports.decodeHTMLAttribute = decodeHTMLAttribute;
    function decodeHTMLStrict(str) {
      return htmlDecoder(str, DecodingMode.Strict);
    }
    exports.decodeHTMLStrict = decodeHTMLStrict;
    function decodeXML(str) {
      return xmlDecoder(str, DecodingMode.Strict);
    }
    exports.decodeXML = decodeXML;
  }
});

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/encode-html.js
var require_encode_html = __commonJS({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/encode-html.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    function restoreDiff(arr) {
      for (var i5 = 1; i5 < arr.length; i5++) {
        arr[i5][0] += arr[i5 - 1][0] + 1;
      }
      return arr;
    }
    exports.default = new Map(/* @__PURE__ */ restoreDiff([[9, "&Tab;"], [0, "&NewLine;"], [22, "&excl;"], [0, "&quot;"], [0, "&num;"], [0, "&dollar;"], [0, "&percnt;"], [0, "&amp;"], [0, "&apos;"], [0, "&lpar;"], [0, "&rpar;"], [0, "&ast;"], [0, "&plus;"], [0, "&comma;"], [1, "&period;"], [0, "&sol;"], [10, "&colon;"], [0, "&semi;"], [0, { v: "&lt;", n: 8402, o: "&nvlt;" }], [0, { v: "&equals;", n: 8421, o: "&bne;" }], [0, { v: "&gt;", n: 8402, o: "&nvgt;" }], [0, "&quest;"], [0, "&commat;"], [26, "&lbrack;"], [0, "&bsol;"], [0, "&rbrack;"], [0, "&Hat;"], [0, "&lowbar;"], [0, "&DiacriticalGrave;"], [5, { n: 106, o: "&fjlig;" }], [20, "&lbrace;"], [0, "&verbar;"], [0, "&rbrace;"], [34, "&nbsp;"], [0, "&iexcl;"], [0, "&cent;"], [0, "&pound;"], [0, "&curren;"], [0, "&yen;"], [0, "&brvbar;"], [0, "&sect;"], [0, "&die;"], [0, "&copy;"], [0, "&ordf;"], [0, "&laquo;"], [0, "&not;"], [0, "&shy;"], [0, "&circledR;"], [0, "&macr;"], [0, "&deg;"], [0, "&PlusMinus;"], [0, "&sup2;"], [0, "&sup3;"], [0, "&acute;"], [0, "&micro;"], [0, "&para;"], [0, "&centerdot;"], [0, "&cedil;"], [0, "&sup1;"], [0, "&ordm;"], [0, "&raquo;"], [0, "&frac14;"], [0, "&frac12;"], [0, "&frac34;"], [0, "&iquest;"], [0, "&Agrave;"], [0, "&Aacute;"], [0, "&Acirc;"], [0, "&Atilde;"], [0, "&Auml;"], [0, "&angst;"], [0, "&AElig;"], [0, "&Ccedil;"], [0, "&Egrave;"], [0, "&Eacute;"], [0, "&Ecirc;"], [0, "&Euml;"], [0, "&Igrave;"], [0, "&Iacute;"], [0, "&Icirc;"], [0, "&Iuml;"], [0, "&ETH;"], [0, "&Ntilde;"], [0, "&Ograve;"], [0, "&Oacute;"], [0, "&Ocirc;"], [0, "&Otilde;"], [0, "&Ouml;"], [0, "&times;"], [0, "&Oslash;"], [0, "&Ugrave;"], [0, "&Uacute;"], [0, "&Ucirc;"], [0, "&Uuml;"], [0, "&Yacute;"], [0, "&THORN;"], [0, "&szlig;"], [0, "&agrave;"], [0, "&aacute;"], [0, "&acirc;"], [0, "&atilde;"], [0, "&auml;"], [0, "&aring;"], [0, "&aelig;"], [0, "&ccedil;"], [0, "&egrave;"], [0, "&eacute;"], [0, "&ecirc;"], [0, "&euml;"], [0, "&igrave;"], [0, "&iacute;"], [0, "&icirc;"], [0, "&iuml;"], [0, "&eth;"], [0, "&ntilde;"], [0, "&ograve;"], [0, "&oacute;"], [0, "&ocirc;"], [0, "&otilde;"], [0, "&ouml;"], [0, "&div;"], [0, "&oslash;"], [0, "&ugrave;"], [0, "&uacute;"], [0, "&ucirc;"], [0, "&uuml;"], [0, "&yacute;"], [0, "&thorn;"], [0, "&yuml;"], [0, "&Amacr;"], [0, "&amacr;"], [0, "&Abreve;"], [0, "&abreve;"], [0, "&Aogon;"], [0, "&aogon;"], [0, "&Cacute;"], [0, "&cacute;"], [0, "&Ccirc;"], [0, "&ccirc;"], [0, "&Cdot;"], [0, "&cdot;"], [0, "&Ccaron;"], [0, "&ccaron;"], [0, "&Dcaron;"], [0, "&dcaron;"], [0, "&Dstrok;"], [0, "&dstrok;"], [0, "&Emacr;"], [0, "&emacr;"], [2, "&Edot;"], [0, "&edot;"], [0, "&Eogon;"], [0, "&eogon;"], [0, "&Ecaron;"], [0, "&ecaron;"], [0, "&Gcirc;"], [0, "&gcirc;"], [0, "&Gbreve;"], [0, "&gbreve;"], [0, "&Gdot;"], [0, "&gdot;"], [0, "&Gcedil;"], [1, "&Hcirc;"], [0, "&hcirc;"], [0, "&Hstrok;"], [0, "&hstrok;"], [0, "&Itilde;"], [0, "&itilde;"], [0, "&Imacr;"], [0, "&imacr;"], [2, "&Iogon;"], [0, "&iogon;"], [0, "&Idot;"], [0, "&imath;"], [0, "&IJlig;"], [0, "&ijlig;"], [0, "&Jcirc;"], [0, "&jcirc;"], [0, "&Kcedil;"], [0, "&kcedil;"], [0, "&kgreen;"], [0, "&Lacute;"], [0, "&lacute;"], [0, "&Lcedil;"], [0, "&lcedil;"], [0, "&Lcaron;"], [0, "&lcaron;"], [0, "&Lmidot;"], [0, "&lmidot;"], [0, "&Lstrok;"], [0, "&lstrok;"], [0, "&Nacute;"], [0, "&nacute;"], [0, "&Ncedil;"], [0, "&ncedil;"], [0, "&Ncaron;"], [0, "&ncaron;"], [0, "&napos;"], [0, "&ENG;"], [0, "&eng;"], [0, "&Omacr;"], [0, "&omacr;"], [2, "&Odblac;"], [0, "&odblac;"], [0, "&OElig;"], [0, "&oelig;"], [0, "&Racute;"], [0, "&racute;"], [0, "&Rcedil;"], [0, "&rcedil;"], [0, "&Rcaron;"], [0, "&rcaron;"], [0, "&Sacute;"], [0, "&sacute;"], [0, "&Scirc;"], [0, "&scirc;"], [0, "&Scedil;"], [0, "&scedil;"], [0, "&Scaron;"], [0, "&scaron;"], [0, "&Tcedil;"], [0, "&tcedil;"], [0, "&Tcaron;"], [0, "&tcaron;"], [0, "&Tstrok;"], [0, "&tstrok;"], [0, "&Utilde;"], [0, "&utilde;"], [0, "&Umacr;"], [0, "&umacr;"], [0, "&Ubreve;"], [0, "&ubreve;"], [0, "&Uring;"], [0, "&uring;"], [0, "&Udblac;"], [0, "&udblac;"], [0, "&Uogon;"], [0, "&uogon;"], [0, "&Wcirc;"], [0, "&wcirc;"], [0, "&Ycirc;"], [0, "&ycirc;"], [0, "&Yuml;"], [0, "&Zacute;"], [0, "&zacute;"], [0, "&Zdot;"], [0, "&zdot;"], [0, "&Zcaron;"], [0, "&zcaron;"], [19, "&fnof;"], [34, "&imped;"], [63, "&gacute;"], [65, "&jmath;"], [142, "&circ;"], [0, "&caron;"], [16, "&breve;"], [0, "&DiacriticalDot;"], [0, "&ring;"], [0, "&ogon;"], [0, "&DiacriticalTilde;"], [0, "&dblac;"], [51, "&DownBreve;"], [127, "&Alpha;"], [0, "&Beta;"], [0, "&Gamma;"], [0, "&Delta;"], [0, "&Epsilon;"], [0, "&Zeta;"], [0, "&Eta;"], [0, "&Theta;"], [0, "&Iota;"], [0, "&Kappa;"], [0, "&Lambda;"], [0, "&Mu;"], [0, "&Nu;"], [0, "&Xi;"], [0, "&Omicron;"], [0, "&Pi;"], [0, "&Rho;"], [1, "&Sigma;"], [0, "&Tau;"], [0, "&Upsilon;"], [0, "&Phi;"], [0, "&Chi;"], [0, "&Psi;"], [0, "&ohm;"], [7, "&alpha;"], [0, "&beta;"], [0, "&gamma;"], [0, "&delta;"], [0, "&epsi;"], [0, "&zeta;"], [0, "&eta;"], [0, "&theta;"], [0, "&iota;"], [0, "&kappa;"], [0, "&lambda;"], [0, "&mu;"], [0, "&nu;"], [0, "&xi;"], [0, "&omicron;"], [0, "&pi;"], [0, "&rho;"], [0, "&sigmaf;"], [0, "&sigma;"], [0, "&tau;"], [0, "&upsi;"], [0, "&phi;"], [0, "&chi;"], [0, "&psi;"], [0, "&omega;"], [7, "&thetasym;"], [0, "&Upsi;"], [2, "&phiv;"], [0, "&piv;"], [5, "&Gammad;"], [0, "&digamma;"], [18, "&kappav;"], [0, "&rhov;"], [3, "&epsiv;"], [0, "&backepsilon;"], [10, "&IOcy;"], [0, "&DJcy;"], [0, "&GJcy;"], [0, "&Jukcy;"], [0, "&DScy;"], [0, "&Iukcy;"], [0, "&YIcy;"], [0, "&Jsercy;"], [0, "&LJcy;"], [0, "&NJcy;"], [0, "&TSHcy;"], [0, "&KJcy;"], [1, "&Ubrcy;"], [0, "&DZcy;"], [0, "&Acy;"], [0, "&Bcy;"], [0, "&Vcy;"], [0, "&Gcy;"], [0, "&Dcy;"], [0, "&IEcy;"], [0, "&ZHcy;"], [0, "&Zcy;"], [0, "&Icy;"], [0, "&Jcy;"], [0, "&Kcy;"], [0, "&Lcy;"], [0, "&Mcy;"], [0, "&Ncy;"], [0, "&Ocy;"], [0, "&Pcy;"], [0, "&Rcy;"], [0, "&Scy;"], [0, "&Tcy;"], [0, "&Ucy;"], [0, "&Fcy;"], [0, "&KHcy;"], [0, "&TScy;"], [0, "&CHcy;"], [0, "&SHcy;"], [0, "&SHCHcy;"], [0, "&HARDcy;"], [0, "&Ycy;"], [0, "&SOFTcy;"], [0, "&Ecy;"], [0, "&YUcy;"], [0, "&YAcy;"], [0, "&acy;"], [0, "&bcy;"], [0, "&vcy;"], [0, "&gcy;"], [0, "&dcy;"], [0, "&iecy;"], [0, "&zhcy;"], [0, "&zcy;"], [0, "&icy;"], [0, "&jcy;"], [0, "&kcy;"], [0, "&lcy;"], [0, "&mcy;"], [0, "&ncy;"], [0, "&ocy;"], [0, "&pcy;"], [0, "&rcy;"], [0, "&scy;"], [0, "&tcy;"], [0, "&ucy;"], [0, "&fcy;"], [0, "&khcy;"], [0, "&tscy;"], [0, "&chcy;"], [0, "&shcy;"], [0, "&shchcy;"], [0, "&hardcy;"], [0, "&ycy;"], [0, "&softcy;"], [0, "&ecy;"], [0, "&yucy;"], [0, "&yacy;"], [1, "&iocy;"], [0, "&djcy;"], [0, "&gjcy;"], [0, "&jukcy;"], [0, "&dscy;"], [0, "&iukcy;"], [0, "&yicy;"], [0, "&jsercy;"], [0, "&ljcy;"], [0, "&njcy;"], [0, "&tshcy;"], [0, "&kjcy;"], [1, "&ubrcy;"], [0, "&dzcy;"], [7074, "&ensp;"], [0, "&emsp;"], [0, "&emsp13;"], [0, "&emsp14;"], [1, "&numsp;"], [0, "&puncsp;"], [0, "&ThinSpace;"], [0, "&hairsp;"], [0, "&NegativeMediumSpace;"], [0, "&zwnj;"], [0, "&zwj;"], [0, "&lrm;"], [0, "&rlm;"], [0, "&dash;"], [2, "&ndash;"], [0, "&mdash;"], [0, "&horbar;"], [0, "&Verbar;"], [1, "&lsquo;"], [0, "&CloseCurlyQuote;"], [0, "&lsquor;"], [1, "&ldquo;"], [0, "&CloseCurlyDoubleQuote;"], [0, "&bdquo;"], [1, "&dagger;"], [0, "&Dagger;"], [0, "&bull;"], [2, "&nldr;"], [0, "&hellip;"], [9, "&permil;"], [0, "&pertenk;"], [0, "&prime;"], [0, "&Prime;"], [0, "&tprime;"], [0, "&backprime;"], [3, "&lsaquo;"], [0, "&rsaquo;"], [3, "&oline;"], [2, "&caret;"], [1, "&hybull;"], [0, "&frasl;"], [10, "&bsemi;"], [7, "&qprime;"], [7, { v: "&MediumSpace;", n: 8202, o: "&ThickSpace;" }], [0, "&NoBreak;"], [0, "&af;"], [0, "&InvisibleTimes;"], [0, "&ic;"], [72, "&euro;"], [46, "&tdot;"], [0, "&DotDot;"], [37, "&complexes;"], [2, "&incare;"], [4, "&gscr;"], [0, "&hamilt;"], [0, "&Hfr;"], [0, "&Hopf;"], [0, "&planckh;"], [0, "&hbar;"], [0, "&imagline;"], [0, "&Ifr;"], [0, "&lagran;"], [0, "&ell;"], [1, "&naturals;"], [0, "&numero;"], [0, "&copysr;"], [0, "&weierp;"], [0, "&Popf;"], [0, "&Qopf;"], [0, "&realine;"], [0, "&real;"], [0, "&reals;"], [0, "&rx;"], [3, "&trade;"], [1, "&integers;"], [2, "&mho;"], [0, "&zeetrf;"], [0, "&iiota;"], [2, "&bernou;"], [0, "&Cayleys;"], [1, "&escr;"], [0, "&Escr;"], [0, "&Fouriertrf;"], [1, "&Mellintrf;"], [0, "&order;"], [0, "&alefsym;"], [0, "&beth;"], [0, "&gimel;"], [0, "&daleth;"], [12, "&CapitalDifferentialD;"], [0, "&dd;"], [0, "&ee;"], [0, "&ii;"], [10, "&frac13;"], [0, "&frac23;"], [0, "&frac15;"], [0, "&frac25;"], [0, "&frac35;"], [0, "&frac45;"], [0, "&frac16;"], [0, "&frac56;"], [0, "&frac18;"], [0, "&frac38;"], [0, "&frac58;"], [0, "&frac78;"], [49, "&larr;"], [0, "&ShortUpArrow;"], [0, "&rarr;"], [0, "&darr;"], [0, "&harr;"], [0, "&updownarrow;"], [0, "&nwarr;"], [0, "&nearr;"], [0, "&LowerRightArrow;"], [0, "&LowerLeftArrow;"], [0, "&nlarr;"], [0, "&nrarr;"], [1, { v: "&rarrw;", n: 824, o: "&nrarrw;" }], [0, "&Larr;"], [0, "&Uarr;"], [0, "&Rarr;"], [0, "&Darr;"], [0, "&larrtl;"], [0, "&rarrtl;"], [0, "&LeftTeeArrow;"], [0, "&mapstoup;"], [0, "&map;"], [0, "&DownTeeArrow;"], [1, "&hookleftarrow;"], [0, "&hookrightarrow;"], [0, "&larrlp;"], [0, "&looparrowright;"], [0, "&harrw;"], [0, "&nharr;"], [1, "&lsh;"], [0, "&rsh;"], [0, "&ldsh;"], [0, "&rdsh;"], [1, "&crarr;"], [0, "&cularr;"], [0, "&curarr;"], [2, "&circlearrowleft;"], [0, "&circlearrowright;"], [0, "&leftharpoonup;"], [0, "&DownLeftVector;"], [0, "&RightUpVector;"], [0, "&LeftUpVector;"], [0, "&rharu;"], [0, "&DownRightVector;"], [0, "&dharr;"], [0, "&dharl;"], [0, "&RightArrowLeftArrow;"], [0, "&udarr;"], [0, "&LeftArrowRightArrow;"], [0, "&leftleftarrows;"], [0, "&upuparrows;"], [0, "&rightrightarrows;"], [0, "&ddarr;"], [0, "&leftrightharpoons;"], [0, "&Equilibrium;"], [0, "&nlArr;"], [0, "&nhArr;"], [0, "&nrArr;"], [0, "&DoubleLeftArrow;"], [0, "&DoubleUpArrow;"], [0, "&DoubleRightArrow;"], [0, "&dArr;"], [0, "&DoubleLeftRightArrow;"], [0, "&DoubleUpDownArrow;"], [0, "&nwArr;"], [0, "&neArr;"], [0, "&seArr;"], [0, "&swArr;"], [0, "&lAarr;"], [0, "&rAarr;"], [1, "&zigrarr;"], [6, "&larrb;"], [0, "&rarrb;"], [15, "&DownArrowUpArrow;"], [7, "&loarr;"], [0, "&roarr;"], [0, "&hoarr;"], [0, "&forall;"], [0, "&comp;"], [0, { v: "&part;", n: 824, o: "&npart;" }], [0, "&exist;"], [0, "&nexist;"], [0, "&empty;"], [1, "&Del;"], [0, "&Element;"], [0, "&NotElement;"], [1, "&ni;"], [0, "&notni;"], [2, "&prod;"], [0, "&coprod;"], [0, "&sum;"], [0, "&minus;"], [0, "&MinusPlus;"], [0, "&dotplus;"], [1, "&Backslash;"], [0, "&lowast;"], [0, "&compfn;"], [1, "&radic;"], [2, "&prop;"], [0, "&infin;"], [0, "&angrt;"], [0, { v: "&ang;", n: 8402, o: "&nang;" }], [0, "&angmsd;"], [0, "&angsph;"], [0, "&mid;"], [0, "&nmid;"], [0, "&DoubleVerticalBar;"], [0, "&NotDoubleVerticalBar;"], [0, "&and;"], [0, "&or;"], [0, { v: "&cap;", n: 65024, o: "&caps;" }], [0, { v: "&cup;", n: 65024, o: "&cups;" }], [0, "&int;"], [0, "&Int;"], [0, "&iiint;"], [0, "&conint;"], [0, "&Conint;"], [0, "&Cconint;"], [0, "&cwint;"], [0, "&ClockwiseContourIntegral;"], [0, "&awconint;"], [0, "&there4;"], [0, "&becaus;"], [0, "&ratio;"], [0, "&Colon;"], [0, "&dotminus;"], [1, "&mDDot;"], [0, "&homtht;"], [0, { v: "&sim;", n: 8402, o: "&nvsim;" }], [0, { v: "&backsim;", n: 817, o: "&race;" }], [0, { v: "&ac;", n: 819, o: "&acE;" }], [0, "&acd;"], [0, "&VerticalTilde;"], [0, "&NotTilde;"], [0, { v: "&eqsim;", n: 824, o: "&nesim;" }], [0, "&sime;"], [0, "&NotTildeEqual;"], [0, "&cong;"], [0, "&simne;"], [0, "&ncong;"], [0, "&ap;"], [0, "&nap;"], [0, "&ape;"], [0, { v: "&apid;", n: 824, o: "&napid;" }], [0, "&backcong;"], [0, { v: "&asympeq;", n: 8402, o: "&nvap;" }], [0, { v: "&bump;", n: 824, o: "&nbump;" }], [0, { v: "&bumpe;", n: 824, o: "&nbumpe;" }], [0, { v: "&doteq;", n: 824, o: "&nedot;" }], [0, "&doteqdot;"], [0, "&efDot;"], [0, "&erDot;"], [0, "&Assign;"], [0, "&ecolon;"], [0, "&ecir;"], [0, "&circeq;"], [1, "&wedgeq;"], [0, "&veeeq;"], [1, "&triangleq;"], [2, "&equest;"], [0, "&ne;"], [0, { v: "&Congruent;", n: 8421, o: "&bnequiv;" }], [0, "&nequiv;"], [1, { v: "&le;", n: 8402, o: "&nvle;" }], [0, { v: "&ge;", n: 8402, o: "&nvge;" }], [0, { v: "&lE;", n: 824, o: "&nlE;" }], [0, { v: "&gE;", n: 824, o: "&ngE;" }], [0, { v: "&lnE;", n: 65024, o: "&lvertneqq;" }], [0, { v: "&gnE;", n: 65024, o: "&gvertneqq;" }], [0, { v: "&ll;", n: new Map(/* @__PURE__ */ restoreDiff([[824, "&nLtv;"], [7577, "&nLt;"]])) }], [0, { v: "&gg;", n: new Map(/* @__PURE__ */ restoreDiff([[824, "&nGtv;"], [7577, "&nGt;"]])) }], [0, "&between;"], [0, "&NotCupCap;"], [0, "&nless;"], [0, "&ngt;"], [0, "&nle;"], [0, "&nge;"], [0, "&lesssim;"], [0, "&GreaterTilde;"], [0, "&nlsim;"], [0, "&ngsim;"], [0, "&LessGreater;"], [0, "&gl;"], [0, "&NotLessGreater;"], [0, "&NotGreaterLess;"], [0, "&pr;"], [0, "&sc;"], [0, "&prcue;"], [0, "&sccue;"], [0, "&PrecedesTilde;"], [0, { v: "&scsim;", n: 824, o: "&NotSucceedsTilde;" }], [0, "&NotPrecedes;"], [0, "&NotSucceeds;"], [0, { v: "&sub;", n: 8402, o: "&NotSubset;" }], [0, { v: "&sup;", n: 8402, o: "&NotSuperset;" }], [0, "&nsub;"], [0, "&nsup;"], [0, "&sube;"], [0, "&supe;"], [0, "&NotSubsetEqual;"], [0, "&NotSupersetEqual;"], [0, { v: "&subne;", n: 65024, o: "&varsubsetneq;" }], [0, { v: "&supne;", n: 65024, o: "&varsupsetneq;" }], [1, "&cupdot;"], [0, "&UnionPlus;"], [0, { v: "&sqsub;", n: 824, o: "&NotSquareSubset;" }], [0, { v: "&sqsup;", n: 824, o: "&NotSquareSuperset;" }], [0, "&sqsube;"], [0, "&sqsupe;"], [0, { v: "&sqcap;", n: 65024, o: "&sqcaps;" }], [0, { v: "&sqcup;", n: 65024, o: "&sqcups;" }], [0, "&CirclePlus;"], [0, "&CircleMinus;"], [0, "&CircleTimes;"], [0, "&osol;"], [0, "&CircleDot;"], [0, "&circledcirc;"], [0, "&circledast;"], [1, "&circleddash;"], [0, "&boxplus;"], [0, "&boxminus;"], [0, "&boxtimes;"], [0, "&dotsquare;"], [0, "&RightTee;"], [0, "&dashv;"], [0, "&DownTee;"], [0, "&bot;"], [1, "&models;"], [0, "&DoubleRightTee;"], [0, "&Vdash;"], [0, "&Vvdash;"], [0, "&VDash;"], [0, "&nvdash;"], [0, "&nvDash;"], [0, "&nVdash;"], [0, "&nVDash;"], [0, "&prurel;"], [1, "&LeftTriangle;"], [0, "&RightTriangle;"], [0, { v: "&LeftTriangleEqual;", n: 8402, o: "&nvltrie;" }], [0, { v: "&RightTriangleEqual;", n: 8402, o: "&nvrtrie;" }], [0, "&origof;"], [0, "&imof;"], [0, "&multimap;"], [0, "&hercon;"], [0, "&intcal;"], [0, "&veebar;"], [1, "&barvee;"], [0, "&angrtvb;"], [0, "&lrtri;"], [0, "&bigwedge;"], [0, "&bigvee;"], [0, "&bigcap;"], [0, "&bigcup;"], [0, "&diam;"], [0, "&sdot;"], [0, "&sstarf;"], [0, "&divideontimes;"], [0, "&bowtie;"], [0, "&ltimes;"], [0, "&rtimes;"], [0, "&leftthreetimes;"], [0, "&rightthreetimes;"], [0, "&backsimeq;"], [0, "&curlyvee;"], [0, "&curlywedge;"], [0, "&Sub;"], [0, "&Sup;"], [0, "&Cap;"], [0, "&Cup;"], [0, "&fork;"], [0, "&epar;"], [0, "&lessdot;"], [0, "&gtdot;"], [0, { v: "&Ll;", n: 824, o: "&nLl;" }], [0, { v: "&Gg;", n: 824, o: "&nGg;" }], [0, { v: "&leg;", n: 65024, o: "&lesg;" }], [0, { v: "&gel;", n: 65024, o: "&gesl;" }], [2, "&cuepr;"], [0, "&cuesc;"], [0, "&NotPrecedesSlantEqual;"], [0, "&NotSucceedsSlantEqual;"], [0, "&NotSquareSubsetEqual;"], [0, "&NotSquareSupersetEqual;"], [2, "&lnsim;"], [0, "&gnsim;"], [0, "&precnsim;"], [0, "&scnsim;"], [0, "&nltri;"], [0, "&NotRightTriangle;"], [0, "&nltrie;"], [0, "&NotRightTriangleEqual;"], [0, "&vellip;"], [0, "&ctdot;"], [0, "&utdot;"], [0, "&dtdot;"], [0, "&disin;"], [0, "&isinsv;"], [0, "&isins;"], [0, { v: "&isindot;", n: 824, o: "&notindot;" }], [0, "&notinvc;"], [0, "&notinvb;"], [1, { v: "&isinE;", n: 824, o: "&notinE;" }], [0, "&nisd;"], [0, "&xnis;"], [0, "&nis;"], [0, "&notnivc;"], [0, "&notnivb;"], [6, "&barwed;"], [0, "&Barwed;"], [1, "&lceil;"], [0, "&rceil;"], [0, "&LeftFloor;"], [0, "&rfloor;"], [0, "&drcrop;"], [0, "&dlcrop;"], [0, "&urcrop;"], [0, "&ulcrop;"], [0, "&bnot;"], [1, "&profline;"], [0, "&profsurf;"], [1, "&telrec;"], [0, "&target;"], [5, "&ulcorn;"], [0, "&urcorn;"], [0, "&dlcorn;"], [0, "&drcorn;"], [2, "&frown;"], [0, "&smile;"], [9, "&cylcty;"], [0, "&profalar;"], [7, "&topbot;"], [6, "&ovbar;"], [1, "&solbar;"], [60, "&angzarr;"], [51, "&lmoustache;"], [0, "&rmoustache;"], [2, "&OverBracket;"], [0, "&bbrk;"], [0, "&bbrktbrk;"], [37, "&OverParenthesis;"], [0, "&UnderParenthesis;"], [0, "&OverBrace;"], [0, "&UnderBrace;"], [2, "&trpezium;"], [4, "&elinters;"], [59, "&blank;"], [164, "&circledS;"], [55, "&boxh;"], [1, "&boxv;"], [9, "&boxdr;"], [3, "&boxdl;"], [3, "&boxur;"], [3, "&boxul;"], [3, "&boxvr;"], [7, "&boxvl;"], [7, "&boxhd;"], [7, "&boxhu;"], [7, "&boxvh;"], [19, "&boxH;"], [0, "&boxV;"], [0, "&boxdR;"], [0, "&boxDr;"], [0, "&boxDR;"], [0, "&boxdL;"], [0, "&boxDl;"], [0, "&boxDL;"], [0, "&boxuR;"], [0, "&boxUr;"], [0, "&boxUR;"], [0, "&boxuL;"], [0, "&boxUl;"], [0, "&boxUL;"], [0, "&boxvR;"], [0, "&boxVr;"], [0, "&boxVR;"], [0, "&boxvL;"], [0, "&boxVl;"], [0, "&boxVL;"], [0, "&boxHd;"], [0, "&boxhD;"], [0, "&boxHD;"], [0, "&boxHu;"], [0, "&boxhU;"], [0, "&boxHU;"], [0, "&boxvH;"], [0, "&boxVh;"], [0, "&boxVH;"], [19, "&uhblk;"], [3, "&lhblk;"], [3, "&block;"], [8, "&blk14;"], [0, "&blk12;"], [0, "&blk34;"], [13, "&square;"], [8, "&blacksquare;"], [0, "&EmptyVerySmallSquare;"], [1, "&rect;"], [0, "&marker;"], [2, "&fltns;"], [1, "&bigtriangleup;"], [0, "&blacktriangle;"], [0, "&triangle;"], [2, "&blacktriangleright;"], [0, "&rtri;"], [3, "&bigtriangledown;"], [0, "&blacktriangledown;"], [0, "&dtri;"], [2, "&blacktriangleleft;"], [0, "&ltri;"], [6, "&loz;"], [0, "&cir;"], [32, "&tridot;"], [2, "&bigcirc;"], [8, "&ultri;"], [0, "&urtri;"], [0, "&lltri;"], [0, "&EmptySmallSquare;"], [0, "&FilledSmallSquare;"], [8, "&bigstar;"], [0, "&star;"], [7, "&phone;"], [49, "&female;"], [1, "&male;"], [29, "&spades;"], [2, "&clubs;"], [1, "&hearts;"], [0, "&diamondsuit;"], [3, "&sung;"], [2, "&flat;"], [0, "&natural;"], [0, "&sharp;"], [163, "&check;"], [3, "&cross;"], [8, "&malt;"], [21, "&sext;"], [33, "&VerticalSeparator;"], [25, "&lbbrk;"], [0, "&rbbrk;"], [84, "&bsolhsub;"], [0, "&suphsol;"], [28, "&LeftDoubleBracket;"], [0, "&RightDoubleBracket;"], [0, "&lang;"], [0, "&rang;"], [0, "&Lang;"], [0, "&Rang;"], [0, "&loang;"], [0, "&roang;"], [7, "&longleftarrow;"], [0, "&longrightarrow;"], [0, "&longleftrightarrow;"], [0, "&DoubleLongLeftArrow;"], [0, "&DoubleLongRightArrow;"], [0, "&DoubleLongLeftRightArrow;"], [1, "&longmapsto;"], [2, "&dzigrarr;"], [258, "&nvlArr;"], [0, "&nvrArr;"], [0, "&nvHarr;"], [0, "&Map;"], [6, "&lbarr;"], [0, "&bkarow;"], [0, "&lBarr;"], [0, "&dbkarow;"], [0, "&drbkarow;"], [0, "&DDotrahd;"], [0, "&UpArrowBar;"], [0, "&DownArrowBar;"], [2, "&Rarrtl;"], [2, "&latail;"], [0, "&ratail;"], [0, "&lAtail;"], [0, "&rAtail;"], [0, "&larrfs;"], [0, "&rarrfs;"], [0, "&larrbfs;"], [0, "&rarrbfs;"], [2, "&nwarhk;"], [0, "&nearhk;"], [0, "&hksearow;"], [0, "&hkswarow;"], [0, "&nwnear;"], [0, "&nesear;"], [0, "&seswar;"], [0, "&swnwar;"], [8, { v: "&rarrc;", n: 824, o: "&nrarrc;" }], [1, "&cudarrr;"], [0, "&ldca;"], [0, "&rdca;"], [0, "&cudarrl;"], [0, "&larrpl;"], [2, "&curarrm;"], [0, "&cularrp;"], [7, "&rarrpl;"], [2, "&harrcir;"], [0, "&Uarrocir;"], [0, "&lurdshar;"], [0, "&ldrushar;"], [2, "&LeftRightVector;"], [0, "&RightUpDownVector;"], [0, "&DownLeftRightVector;"], [0, "&LeftUpDownVector;"], [0, "&LeftVectorBar;"], [0, "&RightVectorBar;"], [0, "&RightUpVectorBar;"], [0, "&RightDownVectorBar;"], [0, "&DownLeftVectorBar;"], [0, "&DownRightVectorBar;"], [0, "&LeftUpVectorBar;"], [0, "&LeftDownVectorBar;"], [0, "&LeftTeeVector;"], [0, "&RightTeeVector;"], [0, "&RightUpTeeVector;"], [0, "&RightDownTeeVector;"], [0, "&DownLeftTeeVector;"], [0, "&DownRightTeeVector;"], [0, "&LeftUpTeeVector;"], [0, "&LeftDownTeeVector;"], [0, "&lHar;"], [0, "&uHar;"], [0, "&rHar;"], [0, "&dHar;"], [0, "&luruhar;"], [0, "&ldrdhar;"], [0, "&ruluhar;"], [0, "&rdldhar;"], [0, "&lharul;"], [0, "&llhard;"], [0, "&rharul;"], [0, "&lrhard;"], [0, "&udhar;"], [0, "&duhar;"], [0, "&RoundImplies;"], [0, "&erarr;"], [0, "&simrarr;"], [0, "&larrsim;"], [0, "&rarrsim;"], [0, "&rarrap;"], [0, "&ltlarr;"], [1, "&gtrarr;"], [0, "&subrarr;"], [1, "&suplarr;"], [0, "&lfisht;"], [0, "&rfisht;"], [0, "&ufisht;"], [0, "&dfisht;"], [5, "&lopar;"], [0, "&ropar;"], [4, "&lbrke;"], [0, "&rbrke;"], [0, "&lbrkslu;"], [0, "&rbrksld;"], [0, "&lbrksld;"], [0, "&rbrkslu;"], [0, "&langd;"], [0, "&rangd;"], [0, "&lparlt;"], [0, "&rpargt;"], [0, "&gtlPar;"], [0, "&ltrPar;"], [3, "&vzigzag;"], [1, "&vangrt;"], [0, "&angrtvbd;"], [6, "&ange;"], [0, "&range;"], [0, "&dwangle;"], [0, "&uwangle;"], [0, "&angmsdaa;"], [0, "&angmsdab;"], [0, "&angmsdac;"], [0, "&angmsdad;"], [0, "&angmsdae;"], [0, "&angmsdaf;"], [0, "&angmsdag;"], [0, "&angmsdah;"], [0, "&bemptyv;"], [0, "&demptyv;"], [0, "&cemptyv;"], [0, "&raemptyv;"], [0, "&laemptyv;"], [0, "&ohbar;"], [0, "&omid;"], [0, "&opar;"], [1, "&operp;"], [1, "&olcross;"], [0, "&odsold;"], [1, "&olcir;"], [0, "&ofcir;"], [0, "&olt;"], [0, "&ogt;"], [0, "&cirscir;"], [0, "&cirE;"], [0, "&solb;"], [0, "&bsolb;"], [3, "&boxbox;"], [3, "&trisb;"], [0, "&rtriltri;"], [0, { v: "&LeftTriangleBar;", n: 824, o: "&NotLeftTriangleBar;" }], [0, { v: "&RightTriangleBar;", n: 824, o: "&NotRightTriangleBar;" }], [11, "&iinfin;"], [0, "&infintie;"], [0, "&nvinfin;"], [4, "&eparsl;"], [0, "&smeparsl;"], [0, "&eqvparsl;"], [5, "&blacklozenge;"], [8, "&RuleDelayed;"], [1, "&dsol;"], [9, "&bigodot;"], [0, "&bigoplus;"], [0, "&bigotimes;"], [1, "&biguplus;"], [1, "&bigsqcup;"], [5, "&iiiint;"], [0, "&fpartint;"], [2, "&cirfnint;"], [0, "&awint;"], [0, "&rppolint;"], [0, "&scpolint;"], [0, "&npolint;"], [0, "&pointint;"], [0, "&quatint;"], [0, "&intlarhk;"], [10, "&pluscir;"], [0, "&plusacir;"], [0, "&simplus;"], [0, "&plusdu;"], [0, "&plussim;"], [0, "&plustwo;"], [1, "&mcomma;"], [0, "&minusdu;"], [2, "&loplus;"], [0, "&roplus;"], [0, "&Cross;"], [0, "&timesd;"], [0, "&timesbar;"], [1, "&smashp;"], [0, "&lotimes;"], [0, "&rotimes;"], [0, "&otimesas;"], [0, "&Otimes;"], [0, "&odiv;"], [0, "&triplus;"], [0, "&triminus;"], [0, "&tritime;"], [0, "&intprod;"], [2, "&amalg;"], [0, "&capdot;"], [1, "&ncup;"], [0, "&ncap;"], [0, "&capand;"], [0, "&cupor;"], [0, "&cupcap;"], [0, "&capcup;"], [0, "&cupbrcap;"], [0, "&capbrcup;"], [0, "&cupcup;"], [0, "&capcap;"], [0, "&ccups;"], [0, "&ccaps;"], [2, "&ccupssm;"], [2, "&And;"], [0, "&Or;"], [0, "&andand;"], [0, "&oror;"], [0, "&orslope;"], [0, "&andslope;"], [1, "&andv;"], [0, "&orv;"], [0, "&andd;"], [0, "&ord;"], [1, "&wedbar;"], [6, "&sdote;"], [3, "&simdot;"], [2, { v: "&congdot;", n: 824, o: "&ncongdot;" }], [0, "&easter;"], [0, "&apacir;"], [0, { v: "&apE;", n: 824, o: "&napE;" }], [0, "&eplus;"], [0, "&pluse;"], [0, "&Esim;"], [0, "&Colone;"], [0, "&Equal;"], [1, "&ddotseq;"], [0, "&equivDD;"], [0, "&ltcir;"], [0, "&gtcir;"], [0, "&ltquest;"], [0, "&gtquest;"], [0, { v: "&leqslant;", n: 824, o: "&nleqslant;" }], [0, { v: "&geqslant;", n: 824, o: "&ngeqslant;" }], [0, "&lesdot;"], [0, "&gesdot;"], [0, "&lesdoto;"], [0, "&gesdoto;"], [0, "&lesdotor;"], [0, "&gesdotol;"], [0, "&lap;"], [0, "&gap;"], [0, "&lne;"], [0, "&gne;"], [0, "&lnap;"], [0, "&gnap;"], [0, "&lEg;"], [0, "&gEl;"], [0, "&lsime;"], [0, "&gsime;"], [0, "&lsimg;"], [0, "&gsiml;"], [0, "&lgE;"], [0, "&glE;"], [0, "&lesges;"], [0, "&gesles;"], [0, "&els;"], [0, "&egs;"], [0, "&elsdot;"], [0, "&egsdot;"], [0, "&el;"], [0, "&eg;"], [2, "&siml;"], [0, "&simg;"], [0, "&simlE;"], [0, "&simgE;"], [0, { v: "&LessLess;", n: 824, o: "&NotNestedLessLess;" }], [0, { v: "&GreaterGreater;", n: 824, o: "&NotNestedGreaterGreater;" }], [1, "&glj;"], [0, "&gla;"], [0, "&ltcc;"], [0, "&gtcc;"], [0, "&lescc;"], [0, "&gescc;"], [0, "&smt;"], [0, "&lat;"], [0, { v: "&smte;", n: 65024, o: "&smtes;" }], [0, { v: "&late;", n: 65024, o: "&lates;" }], [0, "&bumpE;"], [0, { v: "&PrecedesEqual;", n: 824, o: "&NotPrecedesEqual;" }], [0, { v: "&sce;", n: 824, o: "&NotSucceedsEqual;" }], [2, "&prE;"], [0, "&scE;"], [0, "&precneqq;"], [0, "&scnE;"], [0, "&prap;"], [0, "&scap;"], [0, "&precnapprox;"], [0, "&scnap;"], [0, "&Pr;"], [0, "&Sc;"], [0, "&subdot;"], [0, "&supdot;"], [0, "&subplus;"], [0, "&supplus;"], [0, "&submult;"], [0, "&supmult;"], [0, "&subedot;"], [0, "&supedot;"], [0, { v: "&subE;", n: 824, o: "&nsubE;" }], [0, { v: "&supE;", n: 824, o: "&nsupE;" }], [0, "&subsim;"], [0, "&supsim;"], [2, { v: "&subnE;", n: 65024, o: "&varsubsetneqq;" }], [0, { v: "&supnE;", n: 65024, o: "&varsupsetneqq;" }], [2, "&csub;"], [0, "&csup;"], [0, "&csube;"], [0, "&csupe;"], [0, "&subsup;"], [0, "&supsub;"], [0, "&subsub;"], [0, "&supsup;"], [0, "&suphsub;"], [0, "&supdsub;"], [0, "&forkv;"], [0, "&topfork;"], [0, "&mlcp;"], [8, "&Dashv;"], [1, "&Vdashl;"], [0, "&Barv;"], [0, "&vBar;"], [0, "&vBarv;"], [1, "&Vbar;"], [0, "&Not;"], [0, "&bNot;"], [0, "&rnmid;"], [0, "&cirmid;"], [0, "&midcir;"], [0, "&topcir;"], [0, "&nhpar;"], [0, "&parsim;"], [9, { v: "&parsl;", n: 8421, o: "&nparsl;" }], [44343, { n: new Map(/* @__PURE__ */ restoreDiff([[56476, "&Ascr;"], [1, "&Cscr;"], [0, "&Dscr;"], [2, "&Gscr;"], [2, "&Jscr;"], [0, "&Kscr;"], [2, "&Nscr;"], [0, "&Oscr;"], [0, "&Pscr;"], [0, "&Qscr;"], [1, "&Sscr;"], [0, "&Tscr;"], [0, "&Uscr;"], [0, "&Vscr;"], [0, "&Wscr;"], [0, "&Xscr;"], [0, "&Yscr;"], [0, "&Zscr;"], [0, "&ascr;"], [0, "&bscr;"], [0, "&cscr;"], [0, "&dscr;"], [1, "&fscr;"], [1, "&hscr;"], [0, "&iscr;"], [0, "&jscr;"], [0, "&kscr;"], [0, "&lscr;"], [0, "&mscr;"], [0, "&nscr;"], [1, "&pscr;"], [0, "&qscr;"], [0, "&rscr;"], [0, "&sscr;"], [0, "&tscr;"], [0, "&uscr;"], [0, "&vscr;"], [0, "&wscr;"], [0, "&xscr;"], [0, "&yscr;"], [0, "&zscr;"], [52, "&Afr;"], [0, "&Bfr;"], [1, "&Dfr;"], [0, "&Efr;"], [0, "&Ffr;"], [0, "&Gfr;"], [2, "&Jfr;"], [0, "&Kfr;"], [0, "&Lfr;"], [0, "&Mfr;"], [0, "&Nfr;"], [0, "&Ofr;"], [0, "&Pfr;"], [0, "&Qfr;"], [1, "&Sfr;"], [0, "&Tfr;"], [0, "&Ufr;"], [0, "&Vfr;"], [0, "&Wfr;"], [0, "&Xfr;"], [0, "&Yfr;"], [1, "&afr;"], [0, "&bfr;"], [0, "&cfr;"], [0, "&dfr;"], [0, "&efr;"], [0, "&ffr;"], [0, "&gfr;"], [0, "&hfr;"], [0, "&ifr;"], [0, "&jfr;"], [0, "&kfr;"], [0, "&lfr;"], [0, "&mfr;"], [0, "&nfr;"], [0, "&ofr;"], [0, "&pfr;"], [0, "&qfr;"], [0, "&rfr;"], [0, "&sfr;"], [0, "&tfr;"], [0, "&ufr;"], [0, "&vfr;"], [0, "&wfr;"], [0, "&xfr;"], [0, "&yfr;"], [0, "&zfr;"], [0, "&Aopf;"], [0, "&Bopf;"], [1, "&Dopf;"], [0, "&Eopf;"], [0, "&Fopf;"], [0, "&Gopf;"], [1, "&Iopf;"], [0, "&Jopf;"], [0, "&Kopf;"], [0, "&Lopf;"], [0, "&Mopf;"], [1, "&Oopf;"], [3, "&Sopf;"], [0, "&Topf;"], [0, "&Uopf;"], [0, "&Vopf;"], [0, "&Wopf;"], [0, "&Xopf;"], [0, "&Yopf;"], [1, "&aopf;"], [0, "&bopf;"], [0, "&copf;"], [0, "&dopf;"], [0, "&eopf;"], [0, "&fopf;"], [0, "&gopf;"], [0, "&hopf;"], [0, "&iopf;"], [0, "&jopf;"], [0, "&kopf;"], [0, "&lopf;"], [0, "&mopf;"], [0, "&nopf;"], [0, "&oopf;"], [0, "&popf;"], [0, "&qopf;"], [0, "&ropf;"], [0, "&sopf;"], [0, "&topf;"], [0, "&uopf;"], [0, "&vopf;"], [0, "&wopf;"], [0, "&xopf;"], [0, "&yopf;"], [0, "&zopf;"]])) }], [8906, "&fflig;"], [0, "&filig;"], [0, "&fllig;"], [0, "&ffilig;"], [0, "&ffllig;"]]));
  }
});

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.js
var require_escape = __commonJS({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;
    exports.xmlReplacer = /["&'<>$\x80-\uFFFF]/g;
    var xmlCodeMap = /* @__PURE__ */ new Map([
      [34, "&quot;"],
      [38, "&amp;"],
      [39, "&apos;"],
      [60, "&lt;"],
      [62, "&gt;"]
    ]);
    exports.getCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
    String.prototype.codePointAt != null ? function(str, index2) {
      return str.codePointAt(index2);
    } : (
      // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
      function(c6, index2) {
        return (c6.charCodeAt(index2) & 64512) === 55296 ? (c6.charCodeAt(index2) - 55296) * 1024 + c6.charCodeAt(index2 + 1) - 56320 + 65536 : c6.charCodeAt(index2);
      }
    );
    function encodeXML(str) {
      var ret = "";
      var lastIdx = 0;
      var match;
      while ((match = exports.xmlReplacer.exec(str)) !== null) {
        var i5 = match.index;
        var char = str.charCodeAt(i5);
        var next = xmlCodeMap.get(char);
        if (next !== void 0) {
          ret += str.substring(lastIdx, i5) + next;
          lastIdx = i5 + 1;
        } else {
          ret += "".concat(str.substring(lastIdx, i5), "&#x").concat((0, exports.getCodePoint)(str, i5).toString(16), ";");
          lastIdx = exports.xmlReplacer.lastIndex += Number((char & 64512) === 55296);
        }
      }
      return ret + str.substr(lastIdx);
    }
    exports.encodeXML = encodeXML;
    exports.escape = encodeXML;
    function getEscaper(regex2, map) {
      return function escape2(data2) {
        var match;
        var lastIdx = 0;
        var result = "";
        while (match = regex2.exec(data2)) {
          if (lastIdx !== match.index) {
            result += data2.substring(lastIdx, match.index);
          }
          result += map.get(match[0].charCodeAt(0));
          lastIdx = match.index + 1;
        }
        return result + data2.substring(lastIdx);
      };
    }
    exports.escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap);
    exports.escapeAttribute = getEscaper(/["&\u00A0]/g, /* @__PURE__ */ new Map([
      [34, "&quot;"],
      [38, "&amp;"],
      [160, "&nbsp;"]
    ]));
    exports.escapeText = getEscaper(/[&<>\u00A0]/g, /* @__PURE__ */ new Map([
      [38, "&amp;"],
      [60, "&lt;"],
      [62, "&gt;"],
      [160, "&nbsp;"]
    ]));
  }
});

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.js
var require_encode = __commonJS({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.js"(exports) {
    "use strict";
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.encodeNonAsciiHTML = exports.encodeHTML = void 0;
    var encode_html_js_1 = __importDefault2(require_encode_html());
    var escape_js_1 = require_escape();
    var htmlReplacer = /[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;
    function encodeHTML(data2) {
      return encodeHTMLTrieRe(htmlReplacer, data2);
    }
    exports.encodeHTML = encodeHTML;
    function encodeNonAsciiHTML(data2) {
      return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data2);
    }
    exports.encodeNonAsciiHTML = encodeNonAsciiHTML;
    function encodeHTMLTrieRe(regExp, str) {
      var ret = "";
      var lastIdx = 0;
      var match;
      while ((match = regExp.exec(str)) !== null) {
        var i5 = match.index;
        ret += str.substring(lastIdx, i5);
        var char = str.charCodeAt(i5);
        var next = encode_html_js_1.default.get(char);
        if (typeof next === "object") {
          if (i5 + 1 < str.length) {
            var nextChar = str.charCodeAt(i5 + 1);
            var value2 = typeof next.n === "number" ? next.n === nextChar ? next.o : void 0 : next.n.get(nextChar);
            if (value2 !== void 0) {
              ret += value2;
              lastIdx = regExp.lastIndex += 1;
              continue;
            }
          }
          next = next.v;
        }
        if (next !== void 0) {
          ret += next;
          lastIdx = i5 + 1;
        } else {
          var cp = (0, escape_js_1.getCodePoint)(str, i5);
          ret += "&#x".concat(cp.toString(16), ";");
          lastIdx = regExp.lastIndex += Number(cp !== char);
        }
      }
      return ret + str.substr(lastIdx);
    }
  }
});

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.js
var require_lib5 = __commonJS({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;
    var decode_js_1 = require_decode();
    var encode_js_1 = require_encode();
    var escape_js_1 = require_escape();
    var EntityLevel;
    (function(EntityLevel2) {
      EntityLevel2[EntityLevel2["XML"] = 0] = "XML";
      EntityLevel2[EntityLevel2["HTML"] = 1] = "HTML";
    })(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));
    var EncodingMode;
    (function(EncodingMode2) {
      EncodingMode2[EncodingMode2["UTF8"] = 0] = "UTF8";
      EncodingMode2[EncodingMode2["ASCII"] = 1] = "ASCII";
      EncodingMode2[EncodingMode2["Extensive"] = 2] = "Extensive";
      EncodingMode2[EncodingMode2["Attribute"] = 3] = "Attribute";
      EncodingMode2[EncodingMode2["Text"] = 4] = "Text";
    })(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));
    function decode2(data2, options) {
      if (options === void 0) {
        options = EntityLevel.XML;
      }
      var level = typeof options === "number" ? options : options.level;
      if (level === EntityLevel.HTML) {
        var mode = typeof options === "object" ? options.mode : void 0;
        return (0, decode_js_1.decodeHTML)(data2, mode);
      }
      return (0, decode_js_1.decodeXML)(data2);
    }
    exports.decode = decode2;
    function decodeStrict(data2, options) {
      var _a2;
      if (options === void 0) {
        options = EntityLevel.XML;
      }
      var opts2 = typeof options === "number" ? { level: options } : options;
      (_a2 = opts2.mode) !== null && _a2 !== void 0 ? _a2 : opts2.mode = decode_js_1.DecodingMode.Strict;
      return decode2(data2, opts2);
    }
    exports.decodeStrict = decodeStrict;
    function encode3(data2, options) {
      if (options === void 0) {
        options = EntityLevel.XML;
      }
      var opts2 = typeof options === "number" ? { level: options } : options;
      if (opts2.mode === EncodingMode.UTF8)
        return (0, escape_js_1.escapeUTF8)(data2);
      if (opts2.mode === EncodingMode.Attribute)
        return (0, escape_js_1.escapeAttribute)(data2);
      if (opts2.mode === EncodingMode.Text)
        return (0, escape_js_1.escapeText)(data2);
      if (opts2.level === EntityLevel.HTML) {
        if (opts2.mode === EncodingMode.ASCII) {
          return (0, encode_js_1.encodeNonAsciiHTML)(data2);
        }
        return (0, encode_js_1.encodeHTML)(data2);
      }
      return (0, escape_js_1.encodeXML)(data2);
    }
    exports.encode = encode3;
    var escape_js_2 = require_escape();
    Object.defineProperty(exports, "encodeXML", { enumerable: true, get: function() {
      return escape_js_2.encodeXML;
    } });
    Object.defineProperty(exports, "escape", { enumerable: true, get: function() {
      return escape_js_2.escape;
    } });
    Object.defineProperty(exports, "escapeUTF8", { enumerable: true, get: function() {
      return escape_js_2.escapeUTF8;
    } });
    Object.defineProperty(exports, "escapeAttribute", { enumerable: true, get: function() {
      return escape_js_2.escapeAttribute;
    } });
    Object.defineProperty(exports, "escapeText", { enumerable: true, get: function() {
      return escape_js_2.escapeText;
    } });
    var encode_js_2 = require_encode();
    Object.defineProperty(exports, "encodeHTML", { enumerable: true, get: function() {
      return encode_js_2.encodeHTML;
    } });
    Object.defineProperty(exports, "encodeNonAsciiHTML", { enumerable: true, get: function() {
      return encode_js_2.encodeNonAsciiHTML;
    } });
    Object.defineProperty(exports, "encodeHTML4", { enumerable: true, get: function() {
      return encode_js_2.encodeHTML;
    } });
    Object.defineProperty(exports, "encodeHTML5", { enumerable: true, get: function() {
      return encode_js_2.encodeHTML;
    } });
    var decode_js_2 = require_decode();
    Object.defineProperty(exports, "EntityDecoder", { enumerable: true, get: function() {
      return decode_js_2.EntityDecoder;
    } });
    Object.defineProperty(exports, "DecodingMode", { enumerable: true, get: function() {
      return decode_js_2.DecodingMode;
    } });
    Object.defineProperty(exports, "decodeXML", { enumerable: true, get: function() {
      return decode_js_2.decodeXML;
    } });
    Object.defineProperty(exports, "decodeHTML", { enumerable: true, get: function() {
      return decode_js_2.decodeHTML;
    } });
    Object.defineProperty(exports, "decodeHTMLStrict", { enumerable: true, get: function() {
      return decode_js_2.decodeHTMLStrict;
    } });
    Object.defineProperty(exports, "decodeHTMLAttribute", { enumerable: true, get: function() {
      return decode_js_2.decodeHTMLAttribute;
    } });
    Object.defineProperty(exports, "decodeHTML4", { enumerable: true, get: function() {
      return decode_js_2.decodeHTML;
    } });
    Object.defineProperty(exports, "decodeHTML5", { enumerable: true, get: function() {
      return decode_js_2.decodeHTML;
    } });
    Object.defineProperty(exports, "decodeHTML4Strict", { enumerable: true, get: function() {
      return decode_js_2.decodeHTMLStrict;
    } });
    Object.defineProperty(exports, "decodeHTML5Strict", { enumerable: true, get: function() {
      return decode_js_2.decodeHTMLStrict;
    } });
    Object.defineProperty(exports, "decodeXMLStrict", { enumerable: true, get: function() {
      return decode_js_2.decodeXML;
    } });
  }
});

// ../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js
var require_foreignNames = __commonJS({
  "../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.attributeNames = exports.elementNames = void 0;
    exports.elementNames = new Map([
      "altGlyph",
      "altGlyphDef",
      "altGlyphItem",
      "animateColor",
      "animateMotion",
      "animateTransform",
      "clipPath",
      "feBlend",
      "feColorMatrix",
      "feComponentTransfer",
      "feComposite",
      "feConvolveMatrix",
      "feDiffuseLighting",
      "feDisplacementMap",
      "feDistantLight",
      "feDropShadow",
      "feFlood",
      "feFuncA",
      "feFuncB",
      "feFuncG",
      "feFuncR",
      "feGaussianBlur",
      "feImage",
      "feMerge",
      "feMergeNode",
      "feMorphology",
      "feOffset",
      "fePointLight",
      "feSpecularLighting",
      "feSpotLight",
      "feTile",
      "feTurbulence",
      "foreignObject",
      "glyphRef",
      "linearGradient",
      "radialGradient",
      "textPath"
    ].map(function(val) {
      return [val.toLowerCase(), val];
    }));
    exports.attributeNames = new Map([
      "definitionURL",
      "attributeName",
      "attributeType",
      "baseFrequency",
      "baseProfile",
      "calcMode",
      "clipPathUnits",
      "diffuseConstant",
      "edgeMode",
      "filterUnits",
      "glyphRef",
      "gradientTransform",
      "gradientUnits",
      "kernelMatrix",
      "kernelUnitLength",
      "keyPoints",
      "keySplines",
      "keyTimes",
      "lengthAdjust",
      "limitingConeAngle",
      "markerHeight",
      "markerUnits",
      "markerWidth",
      "maskContentUnits",
      "maskUnits",
      "numOctaves",
      "pathLength",
      "patternContentUnits",
      "patternTransform",
      "patternUnits",
      "pointsAtX",
      "pointsAtY",
      "pointsAtZ",
      "preserveAlpha",
      "preserveAspectRatio",
      "primitiveUnits",
      "refX",
      "refY",
      "repeatCount",
      "repeatDur",
      "requiredExtensions",
      "requiredFeatures",
      "specularConstant",
      "specularExponent",
      "spreadMethod",
      "startOffset",
      "stdDeviation",
      "stitchTiles",
      "surfaceScale",
      "systemLanguage",
      "tableValues",
      "targetX",
      "targetY",
      "textLength",
      "viewBox",
      "viewTarget",
      "xChannelSelector",
      "yChannelSelector",
      "zoomAndPan"
    ].map(function(val) {
      return [val.toLowerCase(), val];
    }));
  }
});

// ../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js
var require_lib6 = __commonJS({
  "../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js"(exports) {
    "use strict";
    var __assign2 = exports && exports.__assign || function() {
      __assign2 = Object.assign || function(t4) {
        for (var s4, i5 = 1, n6 = arguments.length; i5 < n6; i5++) {
          s4 = arguments[i5];
          for (var p3 in s4) if (Object.prototype.hasOwnProperty.call(s4, p3))
            t4[p3] = s4[p3];
        }
        return t4;
      };
      return __assign2.apply(this, arguments);
    };
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.render = void 0;
    var ElementType = __importStar2(require_lib3());
    var entities_1 = require_lib5();
    var foreignNames_js_1 = require_foreignNames();
    var unencodedElements = /* @__PURE__ */ new Set([
      "style",
      "script",
      "xmp",
      "iframe",
      "noembed",
      "noframes",
      "plaintext",
      "noscript"
    ]);
    function replaceQuotes(value2) {
      return value2.replace(/"/g, "&quot;");
    }
    function formatAttributes(attributes2, opts2) {
      var _a2;
      if (!attributes2)
        return;
      var encode3 = ((_a2 = opts2.encodeEntities) !== null && _a2 !== void 0 ? _a2 : opts2.decodeEntities) === false ? replaceQuotes : opts2.xmlMode || opts2.encodeEntities !== "utf8" ? entities_1.encodeXML : entities_1.escapeAttribute;
      return Object.keys(attributes2).map(function(key) {
        var _a3, _b2;
        var value2 = (_a3 = attributes2[key]) !== null && _a3 !== void 0 ? _a3 : "";
        if (opts2.xmlMode === "foreign") {
          key = (_b2 = foreignNames_js_1.attributeNames.get(key)) !== null && _b2 !== void 0 ? _b2 : key;
        }
        if (!opts2.emptyAttrs && !opts2.xmlMode && value2 === "") {
          return key;
        }
        return "".concat(key, '="').concat(encode3(value2), '"');
      }).join(" ");
    }
    var singleTag = /* @__PURE__ */ new Set([
      "area",
      "base",
      "basefont",
      "br",
      "col",
      "command",
      "embed",
      "frame",
      "hr",
      "img",
      "input",
      "isindex",
      "keygen",
      "link",
      "meta",
      "param",
      "source",
      "track",
      "wbr"
    ]);
    function render3(node, options) {
      if (options === void 0) {
        options = {};
      }
      var nodes = "length" in node ? node : [node];
      var output = "";
      for (var i5 = 0; i5 < nodes.length; i5++) {
        output += renderNode2(nodes[i5], options);
      }
      return output;
    }
    exports.render = render3;
    exports.default = render3;
    function renderNode2(node, options) {
      switch (node.type) {
        case ElementType.Root:
          return render3(node.children, options);
        // @ts-expect-error We don't use `Doctype` yet
        case ElementType.Doctype:
        case ElementType.Directive:
          return renderDirective(node);
        case ElementType.Comment:
          return renderComment(node);
        case ElementType.CDATA:
          return renderCdata(node);
        case ElementType.Script:
        case ElementType.Style:
        case ElementType.Tag:
          return renderTag(node, options);
        case ElementType.Text:
          return renderText2(node, options);
      }
    }
    var foreignModeIntegrationPoints = /* @__PURE__ */ new Set([
      "mi",
      "mo",
      "mn",
      "ms",
      "mtext",
      "annotation-xml",
      "foreignObject",
      "desc",
      "title"
    ]);
    var foreignElements = /* @__PURE__ */ new Set(["svg", "math"]);
    function renderTag(elem, opts2) {
      var _a2;
      if (opts2.xmlMode === "foreign") {
        elem.name = (_a2 = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a2 !== void 0 ? _a2 : elem.name;
        if (elem.parent && foreignModeIntegrationPoints.has(elem.parent.name)) {
          opts2 = __assign2(__assign2({}, opts2), { xmlMode: false });
        }
      }
      if (!opts2.xmlMode && foreignElements.has(elem.name)) {
        opts2 = __assign2(__assign2({}, opts2), { xmlMode: "foreign" });
      }
      var tag = "<".concat(elem.name);
      var attribs = formatAttributes(elem.attribs, opts2);
      if (attribs) {
        tag += " ".concat(attribs);
      }
      if (elem.children.length === 0 && (opts2.xmlMode ? (
        // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags
        opts2.selfClosingTags !== false
      ) : (
        // User explicitly asked for self-closing tags, even in HTML mode
        opts2.selfClosingTags && singleTag.has(elem.name)
      ))) {
        if (!opts2.xmlMode)
          tag += " ";
        tag += "/>";
      } else {
        tag += ">";
        if (elem.children.length > 0) {
          tag += render3(elem.children, opts2);
        }
        if (opts2.xmlMode || !singleTag.has(elem.name)) {
          tag += "</".concat(elem.name, ">");
        }
      }
      return tag;
    }
    function renderDirective(elem) {
      return "<".concat(elem.data, ">");
    }
    function renderText2(elem, opts2) {
      var _a2;
      var data2 = elem.data || "";
      if (((_a2 = opts2.encodeEntities) !== null && _a2 !== void 0 ? _a2 : opts2.decodeEntities) !== false && !(!opts2.xmlMode && elem.parent && unencodedElements.has(elem.parent.name))) {
        data2 = opts2.xmlMode || opts2.encodeEntities !== "utf8" ? (0, entities_1.encodeXML)(data2) : (0, entities_1.escapeText)(data2);
      }
      return data2;
    }
    function renderCdata(elem) {
      return "<![CDATA[".concat(elem.children[0].data, "]]>");
    }
    function renderComment(elem) {
      return "<!--".concat(elem.data, "-->");
    }
  }
});

// ../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/stringify.js
var require_stringify2 = __commonJS({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/stringify.js"(exports) {
    "use strict";
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getOuterHTML = getOuterHTML;
    exports.getInnerHTML = getInnerHTML;
    exports.getText = getText;
    exports.textContent = textContent;
    exports.innerText = innerText;
    var domhandler_1 = require_lib4();
    var dom_serializer_1 = __importDefault2(require_lib6());
    var domelementtype_1 = require_lib3();
    function getOuterHTML(node, options) {
      return (0, dom_serializer_1.default)(node, options);
    }
    function getInnerHTML(node, options) {
      return (0, domhandler_1.hasChildren)(node) ? node.children.map(function(node2) {
        return getOuterHTML(node2, options);
      }).join("") : "";
    }
    function getText(node) {
      if (Array.isArray(node))
        return node.map(getText).join("");
      if ((0, domhandler_1.isTag)(node))
        return node.name === "br" ? "\n" : getText(node.children);
      if ((0, domhandler_1.isCDATA)(node))
        return getText(node.children);
      if ((0, domhandler_1.isText)(node))
        return node.data;
      return "";
    }
    function textContent(node) {
      if (Array.isArray(node))
        return node.map(textContent).join("");
      if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {
        return textContent(node.children);
      }
      if ((0, domhandler_1.isText)(node))
        return node.data;
      return "";
    }
    function innerText(node) {
      if (Array.isArray(node))
        return node.map(innerText).join("");
      if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {
        return innerText(node.children);
      }
      if ((0, domhandler_1.isText)(node))
        return node.data;
      return "";
    }
  }
});

// ../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/traversal.js
var require_traversal = __commonJS({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/traversal.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getChildren = getChildren;
    exports.getParent = getParent;
    exports.getSiblings = getSiblings;
    exports.getAttributeValue = getAttributeValue;
    exports.hasAttrib = hasAttrib;
    exports.getName = getName;
    exports.nextElementSibling = nextElementSibling;
    exports.prevElementSibling = prevElementSibling;
    var domhandler_1 = require_lib4();
    function getChildren(elem) {
      return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];
    }
    function getParent(elem) {
      return elem.parent || null;
    }
    function getSiblings(elem) {
      var _a2, _b2;
      var parent = getParent(elem);
      if (parent != null)
        return getChildren(parent);
      var siblings = [elem];
      var prev = elem.prev, next = elem.next;
      while (prev != null) {
        siblings.unshift(prev);
        _a2 = prev, prev = _a2.prev;
      }
      while (next != null) {
        siblings.push(next);
        _b2 = next, next = _b2.next;
      }
      return siblings;
    }
    function getAttributeValue(elem, name) {
      var _a2;
      return (_a2 = elem.attribs) === null || _a2 === void 0 ? void 0 : _a2[name];
    }
    function hasAttrib(elem, name) {
      return elem.attribs != null && Object.prototype.hasOwnProperty.call(elem.attribs, name) && elem.attribs[name] != null;
    }
    function getName(elem) {
      return elem.name;
    }
    function nextElementSibling(elem) {
      var _a2;
      var next = elem.next;
      while (next !== null && !(0, domhandler_1.isTag)(next))
        _a2 = next, next = _a2.next;
      return next;
    }
    function prevElementSibling(elem) {
      var _a2;
      var prev = elem.prev;
      while (prev !== null && !(0, domhandler_1.isTag)(prev))
        _a2 = prev, prev = _a2.prev;
      return prev;
    }
  }
});

// ../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/manipulation.js
var require_manipulation = __commonJS({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/manipulation.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.removeElement = removeElement;
    exports.replaceElement = replaceElement;
    exports.appendChild = appendChild2;
    exports.append = append3;
    exports.prependChild = prependChild;
    exports.prepend = prepend;
    function removeElement(elem) {
      if (elem.prev)
        elem.prev.next = elem.next;
      if (elem.next)
        elem.next.prev = elem.prev;
      if (elem.parent) {
        var childs = elem.parent.children;
        var childsIndex = childs.lastIndexOf(elem);
        if (childsIndex >= 0) {
          childs.splice(childsIndex, 1);
        }
      }
      elem.next = null;
      elem.prev = null;
      elem.parent = null;
    }
    function replaceElement(elem, replacement) {
      var prev = replacement.prev = elem.prev;
      if (prev) {
        prev.next = replacement;
      }
      var next = replacement.next = elem.next;
      if (next) {
        next.prev = replacement;
      }
      var parent = replacement.parent = elem.parent;
      if (parent) {
        var childs = parent.children;
        childs[childs.lastIndexOf(elem)] = replacement;
        elem.parent = null;
      }
    }
    function appendChild2(parent, child) {
      removeElement(child);
      child.next = null;
      child.parent = parent;
      if (parent.children.push(child) > 1) {
        var sibling = parent.children[parent.children.length - 2];
        sibling.next = child;
        child.prev = sibling;
      } else {
        child.prev = null;
      }
    }
    function append3(elem, next) {
      removeElement(next);
      var parent = elem.parent;
      var currNext = elem.next;
      next.next = currNext;
      next.prev = elem;
      elem.next = next;
      next.parent = parent;
      if (currNext) {
        currNext.prev = next;
        if (parent) {
          var childs = parent.children;
          childs.splice(childs.lastIndexOf(currNext), 0, next);
        }
      } else if (parent) {
        parent.children.push(next);
      }
    }
    function prependChild(parent, child) {
      removeElement(child);
      child.parent = parent;
      child.prev = null;
      if (parent.children.unshift(child) !== 1) {
        var sibling = parent.children[1];
        sibling.prev = child;
        child.next = sibling;
      } else {
        child.next = null;
      }
    }
    function prepend(elem, prev) {
      removeElement(prev);
      var parent = elem.parent;
      if (parent) {
        var childs = parent.children;
        childs.splice(childs.indexOf(elem), 0, prev);
      }
      if (elem.prev) {
        elem.prev.next = prev;
      }
      prev.parent = parent;
      prev.prev = elem.prev;
      prev.next = elem;
      elem.prev = prev;
    }
  }
});

// ../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/querying.js
var require_querying = __commonJS({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/querying.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.filter = filter3;
    exports.find = find;
    exports.findOneChild = findOneChild;
    exports.findOne = findOne;
    exports.existsOne = existsOne;
    exports.findAll = findAll;
    var domhandler_1 = require_lib4();
    function filter3(test3, node, recurse, limit) {
      if (recurse === void 0) {
        recurse = true;
      }
      if (limit === void 0) {
        limit = Infinity;
      }
      return find(test3, Array.isArray(node) ? node : [node], recurse, limit);
    }
    function find(test3, nodes, recurse, limit) {
      var result = [];
      var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];
      var indexStack = [0];
      for (; ; ) {
        if (indexStack[0] >= nodeStack[0].length) {
          if (indexStack.length === 1) {
            return result;
          }
          nodeStack.shift();
          indexStack.shift();
          continue;
        }
        var elem = nodeStack[0][indexStack[0]++];
        if (test3(elem)) {
          result.push(elem);
          if (--limit <= 0)
            return result;
        }
        if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {
          indexStack.unshift(0);
          nodeStack.unshift(elem.children);
        }
      }
    }
    function findOneChild(test3, nodes) {
      return nodes.find(test3);
    }
    function findOne(test3, nodes, recurse) {
      if (recurse === void 0) {
        recurse = true;
      }
      var searchedNodes = Array.isArray(nodes) ? nodes : [nodes];
      for (var i5 = 0; i5 < searchedNodes.length; i5++) {
        var node = searchedNodes[i5];
        if ((0, domhandler_1.isTag)(node) && test3(node)) {
          return node;
        }
        if (recurse && (0, domhandler_1.hasChildren)(node) && node.children.length > 0) {
          var found = findOne(test3, node.children, true);
          if (found)
            return found;
        }
      }
      return null;
    }
    function existsOne(test3, nodes) {
      return (Array.isArray(nodes) ? nodes : [nodes]).some(function(node) {
        return (0, domhandler_1.isTag)(node) && test3(node) || (0, domhandler_1.hasChildren)(node) && existsOne(test3, node.children);
      });
    }
    function findAll(test3, nodes) {
      var result = [];
      var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];
      var indexStack = [0];
      for (; ; ) {
        if (indexStack[0] >= nodeStack[0].length) {
          if (nodeStack.length === 1) {
            return result;
          }
          nodeStack.shift();
          indexStack.shift();
          continue;
        }
        var elem = nodeStack[0][indexStack[0]++];
        if ((0, domhandler_1.isTag)(elem) && test3(elem))
          result.push(elem);
        if ((0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {
          indexStack.unshift(0);
          nodeStack.unshift(elem.children);
        }
      }
    }
  }
});

// ../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/legacy.js
var require_legacy = __commonJS({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/legacy.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.testElement = testElement;
    exports.getElements = getElements;
    exports.getElementById = getElementById;
    exports.getElementsByTagName = getElementsByTagName;
    exports.getElementsByClassName = getElementsByClassName;
    exports.getElementsByTagType = getElementsByTagType;
    var domhandler_1 = require_lib4();
    var querying_js_1 = require_querying();
    var Checks = {
      tag_name: function(name) {
        if (typeof name === "function") {
          return function(elem) {
            return (0, domhandler_1.isTag)(elem) && name(elem.name);
          };
        } else if (name === "*") {
          return domhandler_1.isTag;
        }
        return function(elem) {
          return (0, domhandler_1.isTag)(elem) && elem.name === name;
        };
      },
      tag_type: function(type) {
        if (typeof type === "function") {
          return function(elem) {
            return type(elem.type);
          };
        }
        return function(elem) {
          return elem.type === type;
        };
      },
      tag_contains: function(data2) {
        if (typeof data2 === "function") {
          return function(elem) {
            return (0, domhandler_1.isText)(elem) && data2(elem.data);
          };
        }
        return function(elem) {
          return (0, domhandler_1.isText)(elem) && elem.data === data2;
        };
      }
    };
    function getAttribCheck(attrib, value2) {
      if (typeof value2 === "function") {
        return function(elem) {
          return (0, domhandler_1.isTag)(elem) && value2(elem.attribs[attrib]);
        };
      }
      return function(elem) {
        return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value2;
      };
    }
    function combineFuncs(a5, b3) {
      return function(elem) {
        return a5(elem) || b3(elem);
      };
    }
    function compileTest(options) {
      var funcs = Object.keys(options).map(function(key) {
        var value2 = options[key];
        return Object.prototype.hasOwnProperty.call(Checks, key) ? Checks[key](value2) : getAttribCheck(key, value2);
      });
      return funcs.length === 0 ? null : funcs.reduce(combineFuncs);
    }
    function testElement(options, node) {
      var test3 = compileTest(options);
      return test3 ? test3(node) : true;
    }
    function getElements(options, nodes, recurse, limit) {
      if (limit === void 0) {
        limit = Infinity;
      }
      var test3 = compileTest(options);
      return test3 ? (0, querying_js_1.filter)(test3, nodes, recurse, limit) : [];
    }
    function getElementById(id, nodes, recurse) {
      if (recurse === void 0) {
        recurse = true;
      }
      if (!Array.isArray(nodes))
        nodes = [nodes];
      return (0, querying_js_1.findOne)(getAttribCheck("id", id), nodes, recurse);
    }
    function getElementsByTagName(tagName, nodes, recurse, limit) {
      if (recurse === void 0) {
        recurse = true;
      }
      if (limit === void 0) {
        limit = Infinity;
      }
      return (0, querying_js_1.filter)(Checks["tag_name"](tagName), nodes, recurse, limit);
    }
    function getElementsByClassName(className, nodes, recurse, limit) {
      if (recurse === void 0) {
        recurse = true;
      }
      if (limit === void 0) {
        limit = Infinity;
      }
      return (0, querying_js_1.filter)(getAttribCheck("class", className), nodes, recurse, limit);
    }
    function getElementsByTagType(type, nodes, recurse, limit) {
      if (recurse === void 0) {
        recurse = true;
      }
      if (limit === void 0) {
        limit = Infinity;
      }
      return (0, querying_js_1.filter)(Checks["tag_type"](type), nodes, recurse, limit);
    }
  }
});

// ../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/helpers.js
var require_helpers = __commonJS({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/helpers.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DocumentPosition = void 0;
    exports.removeSubsets = removeSubsets;
    exports.compareDocumentPosition = compareDocumentPosition;
    exports.uniqueSort = uniqueSort;
    var domhandler_1 = require_lib4();
    function removeSubsets(nodes) {
      var idx = nodes.length;
      while (--idx >= 0) {
        var node = nodes[idx];
        if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {
          nodes.splice(idx, 1);
          continue;
        }
        for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {
          if (nodes.includes(ancestor)) {
            nodes.splice(idx, 1);
            break;
          }
        }
      }
      return nodes;
    }
    var DocumentPosition;
    (function(DocumentPosition2) {
      DocumentPosition2[DocumentPosition2["DISCONNECTED"] = 1] = "DISCONNECTED";
      DocumentPosition2[DocumentPosition2["PRECEDING"] = 2] = "PRECEDING";
      DocumentPosition2[DocumentPosition2["FOLLOWING"] = 4] = "FOLLOWING";
      DocumentPosition2[DocumentPosition2["CONTAINS"] = 8] = "CONTAINS";
      DocumentPosition2[DocumentPosition2["CONTAINED_BY"] = 16] = "CONTAINED_BY";
    })(DocumentPosition || (exports.DocumentPosition = DocumentPosition = {}));
    function compareDocumentPosition(nodeA, nodeB) {
      var aParents = [];
      var bParents = [];
      if (nodeA === nodeB) {
        return 0;
      }
      var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;
      while (current) {
        aParents.unshift(current);
        current = current.parent;
      }
      current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;
      while (current) {
        bParents.unshift(current);
        current = current.parent;
      }
      var maxIdx = Math.min(aParents.length, bParents.length);
      var idx = 0;
      while (idx < maxIdx && aParents[idx] === bParents[idx]) {
        idx++;
      }
      if (idx === 0) {
        return DocumentPosition.DISCONNECTED;
      }
      var sharedParent = aParents[idx - 1];
      var siblings = sharedParent.children;
      var aSibling = aParents[idx];
      var bSibling = bParents[idx];
      if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {
        if (sharedParent === nodeB) {
          return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;
        }
        return DocumentPosition.FOLLOWING;
      }
      if (sharedParent === nodeA) {
        return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;
      }
      return DocumentPosition.PRECEDING;
    }
    function uniqueSort(nodes) {
      nodes = nodes.filter(function(node, i5, arr) {
        return !arr.includes(node, i5 + 1);
      });
      nodes.sort(function(a5, b3) {
        var relative = compareDocumentPosition(a5, b3);
        if (relative & DocumentPosition.PRECEDING) {
          return -1;
        } else if (relative & DocumentPosition.FOLLOWING) {
          return 1;
        }
        return 0;
      });
      return nodes;
    }
  }
});

// ../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/feeds.js
var require_feeds = __commonJS({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/feeds.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getFeed = getFeed;
    var stringify_js_1 = require_stringify2();
    var legacy_js_1 = require_legacy();
    function getFeed(doc) {
      var feedRoot = getOneElement(isValidFeed, doc);
      return !feedRoot ? null : feedRoot.name === "feed" ? getAtomFeed(feedRoot) : getRssFeed(feedRoot);
    }
    function getAtomFeed(feedRoot) {
      var _a2;
      var childs = feedRoot.children;
      var feed = {
        type: "atom",
        items: (0, legacy_js_1.getElementsByTagName)("entry", childs).map(function(item) {
          var _a3;
          var children = item.children;
          var entry = { media: getMediaElements(children) };
          addConditionally(entry, "id", "id", children);
          addConditionally(entry, "title", "title", children);
          var href2 = (_a3 = getOneElement("link", children)) === null || _a3 === void 0 ? void 0 : _a3.attribs["href"];
          if (href2) {
            entry.link = href2;
          }
          var description = fetch2("summary", children) || fetch2("content", children);
          if (description) {
            entry.description = description;
          }
          var pubDate = fetch2("updated", children);
          if (pubDate) {
            entry.pubDate = new Date(pubDate);
          }
          return entry;
        })
      };
      addConditionally(feed, "id", "id", childs);
      addConditionally(feed, "title", "title", childs);
      var href = (_a2 = getOneElement("link", childs)) === null || _a2 === void 0 ? void 0 : _a2.attribs["href"];
      if (href) {
        feed.link = href;
      }
      addConditionally(feed, "description", "subtitle", childs);
      var updated = fetch2("updated", childs);
      if (updated) {
        feed.updated = new Date(updated);
      }
      addConditionally(feed, "author", "email", childs, true);
      return feed;
    }
    function getRssFeed(feedRoot) {
      var _a2, _b2;
      var childs = (_b2 = (_a2 = getOneElement("channel", feedRoot.children)) === null || _a2 === void 0 ? void 0 : _a2.children) !== null && _b2 !== void 0 ? _b2 : [];
      var feed = {
        type: feedRoot.name.substr(0, 3),
        id: "",
        items: (0, legacy_js_1.getElementsByTagName)("item", feedRoot.children).map(function(item) {
          var children = item.children;
          var entry = { media: getMediaElements(children) };
          addConditionally(entry, "id", "guid", children);
          addConditionally(entry, "title", "title", children);
          addConditionally(entry, "link", "link", children);
          addConditionally(entry, "description", "description", children);
          var pubDate = fetch2("pubDate", children) || fetch2("dc:date", children);
          if (pubDate)
            entry.pubDate = new Date(pubDate);
          return entry;
        })
      };
      addConditionally(feed, "title", "title", childs);
      addConditionally(feed, "link", "link", childs);
      addConditionally(feed, "description", "description", childs);
      var updated = fetch2("lastBuildDate", childs);
      if (updated) {
        feed.updated = new Date(updated);
      }
      addConditionally(feed, "author", "managingEditor", childs, true);
      return feed;
    }
    var MEDIA_KEYS_STRING = ["url", "type", "lang"];
    var MEDIA_KEYS_INT = [
      "fileSize",
      "bitrate",
      "framerate",
      "samplingrate",
      "channels",
      "duration",
      "height",
      "width"
    ];
    function getMediaElements(where) {
      return (0, legacy_js_1.getElementsByTagName)("media:content", where).map(function(elem) {
        var attribs = elem.attribs;
        var media = {
          medium: attribs["medium"],
          isDefault: !!attribs["isDefault"]
        };
        for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {
          var attrib = MEDIA_KEYS_STRING_1[_i];
          if (attribs[attrib]) {
            media[attrib] = attribs[attrib];
          }
        }
        for (var _a2 = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a2 < MEDIA_KEYS_INT_1.length; _a2++) {
          var attrib = MEDIA_KEYS_INT_1[_a2];
          if (attribs[attrib]) {
            media[attrib] = parseInt(attribs[attrib], 10);
          }
        }
        if (attribs["expression"]) {
          media.expression = attribs["expression"];
        }
        return media;
      });
    }
    function getOneElement(tagName, node) {
      return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];
    }
    function fetch2(tagName, where, recurse) {
      if (recurse === void 0) {
        recurse = false;
      }
      return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();
    }
    function addConditionally(obj, prop, tagName, where, recurse) {
      if (recurse === void 0) {
        recurse = false;
      }
      var val = fetch2(tagName, where, recurse);
      if (val)
        obj[prop] = val;
    }
    function isValidFeed(value2) {
      return value2 === "rss" || value2 === "feed" || value2 === "rdf:RDF";
    }
  }
});

// ../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/index.js
var require_lib7 = __commonJS({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __exportStar2 = exports && exports.__exportStar || function(m3, exports2) {
      for (var p3 in m3) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p3)) __createBinding2(exports2, m3, p3);
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;
    __exportStar2(require_stringify2(), exports);
    __exportStar2(require_traversal(), exports);
    __exportStar2(require_manipulation(), exports);
    __exportStar2(require_querying(), exports);
    __exportStar2(require_legacy(), exports);
    __exportStar2(require_helpers(), exports);
    __exportStar2(require_feeds(), exports);
    var domhandler_1 = require_lib4();
    Object.defineProperty(exports, "isTag", { enumerable: true, get: function() {
      return domhandler_1.isTag;
    } });
    Object.defineProperty(exports, "isCDATA", { enumerable: true, get: function() {
      return domhandler_1.isCDATA;
    } });
    Object.defineProperty(exports, "isText", { enumerable: true, get: function() {
      return domhandler_1.isText;
    } });
    Object.defineProperty(exports, "isComment", { enumerable: true, get: function() {
      return domhandler_1.isComment;
    } });
    Object.defineProperty(exports, "isDocument", { enumerable: true, get: function() {
      return domhandler_1.isDocument;
    } });
    Object.defineProperty(exports, "hasChildren", { enumerable: true, get: function() {
      return domhandler_1.hasChildren;
    } });
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/static.js
var require_static = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/static.js"(exports) {
    "use strict";
    var __assign2 = exports && exports.__assign || function() {
      __assign2 = Object.assign || function(t4) {
        for (var s4, i5 = 1, n6 = arguments.length; i5 < n6; i5++) {
          s4 = arguments[i5];
          for (var p3 in s4) if (Object.prototype.hasOwnProperty.call(s4, p3))
            t4[p3] = s4[p3];
        }
        return t4;
      };
      return __assign2.apply(this, arguments);
    };
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.merge = exports.contains = exports.root = exports.parseHTML = exports.text = exports.xml = exports.html = void 0;
    var domutils_1 = require_lib7();
    var options_js_1 = __importStar2(require_options());
    function render3(that, dom, options) {
      if (!that)
        return "";
      return that(dom !== null && dom !== void 0 ? dom : that._root.children, null, void 0, options).toString();
    }
    function isOptions(dom, options) {
      return !options && typeof dom === "object" && dom != null && !("length" in dom) && !("type" in dom);
    }
    function html(dom, options) {
      var toRender = isOptions(dom) ? (options = dom, void 0) : dom;
      var opts2 = __assign2(__assign2(__assign2({}, options_js_1.default), this === null || this === void 0 ? void 0 : this._options), (0, options_js_1.flatten)(options !== null && options !== void 0 ? options : {}));
      return render3(this, toRender, opts2);
    }
    exports.html = html;
    function xml(dom) {
      var options = __assign2(__assign2({}, this._options), { xmlMode: true });
      return render3(this, dom, options);
    }
    exports.xml = xml;
    function text(elements) {
      var elems = elements ? elements : this ? this.root() : [];
      var ret = "";
      for (var i5 = 0; i5 < elems.length; i5++) {
        ret += (0, domutils_1.textContent)(elems[i5]);
      }
      return ret;
    }
    exports.text = text;
    function parseHTML(data2, context, keepScripts) {
      if (keepScripts === void 0) {
        keepScripts = typeof context === "boolean" ? context : false;
      }
      if (!data2 || typeof data2 !== "string") {
        return null;
      }
      if (typeof context === "boolean") {
        keepScripts = context;
      }
      var parsed = this.load(data2, options_js_1.default, false);
      if (!keepScripts) {
        parsed("script").remove();
      }
      return parsed.root()[0].children.slice();
    }
    exports.parseHTML = parseHTML;
    function root() {
      return this(this._root);
    }
    exports.root = root;
    function contains(container, contained) {
      if (contained === container) {
        return false;
      }
      var next = contained;
      while (next && next !== next.parent) {
        next = next.parent;
        if (next === container) {
          return true;
        }
      }
      return false;
    }
    exports.contains = contains;
    function merge3(arr1, arr2) {
      if (!isArrayLike2(arr1) || !isArrayLike2(arr2)) {
        return;
      }
      var newLength = arr1.length;
      var len = +arr2.length;
      for (var i5 = 0; i5 < len; i5++) {
        arr1[newLength++] = arr2[i5];
      }
      arr1.length = newLength;
      return arr1;
    }
    exports.merge = merge3;
    function isArrayLike2(item) {
      if (Array.isArray(item)) {
        return true;
      }
      if (typeof item !== "object" || !Object.prototype.hasOwnProperty.call(item, "length") || typeof item.length !== "number" || item.length < 0) {
        return false;
      }
      for (var i5 = 0; i5 < item.length; i5++) {
        if (!(i5 in item)) {
          return false;
        }
      }
      return true;
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/utils.js
var require_utils4 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.isHtml = exports.cloneDom = exports.domEach = exports.cssCase = exports.camelCase = exports.isCheerio = exports.isTag = void 0;
    var domhandler_1 = require_lib4();
    var domhandler_2 = require_lib4();
    Object.defineProperty(exports, "isTag", { enumerable: true, get: function() {
      return domhandler_2.isTag;
    } });
    function isCheerio(maybeCheerio) {
      return maybeCheerio.cheerio != null;
    }
    exports.isCheerio = isCheerio;
    function camelCase(str) {
      return str.replace(/[_.-](\w|$)/g, function(_, x) {
        return x.toUpperCase();
      });
    }
    exports.camelCase = camelCase;
    function cssCase(str) {
      return str.replace(/[A-Z]/g, "-$&").toLowerCase();
    }
    exports.cssCase = cssCase;
    function domEach(array, fn) {
      var len = array.length;
      for (var i5 = 0; i5 < len; i5++)
        fn(array[i5], i5);
      return array;
    }
    exports.domEach = domEach;
    function cloneDom(dom) {
      var clone = "length" in dom ? Array.prototype.map.call(dom, function(el) {
        return (0, domhandler_1.cloneNode)(el, true);
      }) : [(0, domhandler_1.cloneNode)(dom, true)];
      var root = new domhandler_1.Document(clone);
      clone.forEach(function(node) {
        node.parent = root;
      });
      return clone;
    }
    exports.cloneDom = cloneDom;
    var CharacterCodes;
    (function(CharacterCodes2) {
      CharacterCodes2[CharacterCodes2["LowerA"] = 97] = "LowerA";
      CharacterCodes2[CharacterCodes2["LowerZ"] = 122] = "LowerZ";
      CharacterCodes2[CharacterCodes2["UpperA"] = 65] = "UpperA";
      CharacterCodes2[CharacterCodes2["UpperZ"] = 90] = "UpperZ";
      CharacterCodes2[CharacterCodes2["Exclamation"] = 33] = "Exclamation";
    })(CharacterCodes || (CharacterCodes = {}));
    function isHtml(str) {
      var tagStart = str.indexOf("<");
      if (tagStart < 0 || tagStart > str.length - 3)
        return false;
      var tagChar = str.charCodeAt(tagStart + 1);
      return (tagChar >= CharacterCodes.LowerA && tagChar <= CharacterCodes.LowerZ || tagChar >= CharacterCodes.UpperA && tagChar <= CharacterCodes.UpperZ || tagChar === CharacterCodes.Exclamation) && str.includes(">", tagStart + 2);
    }
    exports.isHtml = isHtml;
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/attributes.js
var require_attributes = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/attributes.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.toggleClass = exports.removeClass = exports.addClass = exports.hasClass = exports.removeAttr = exports.val = exports.data = exports.prop = exports.attr = void 0;
    var static_js_1 = require_static();
    var utils_js_1 = require_utils4();
    var domutils_1 = require_lib7();
    var hasOwn = Object.prototype.hasOwnProperty;
    var rspace = /\s+/;
    var dataAttrPrefix = "data-";
    var primitives = {
      null: null,
      true: true,
      false: false
    };
    var rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i;
    var rbrace = /^{[^]*}$|^\[[^]*]$/;
    function getAttr(elem, name, xmlMode) {
      var _a2;
      if (!elem || !(0, utils_js_1.isTag)(elem))
        return void 0;
      (_a2 = elem.attribs) !== null && _a2 !== void 0 ? _a2 : elem.attribs = {};
      if (!name) {
        return elem.attribs;
      }
      if (hasOwn.call(elem.attribs, name)) {
        return !xmlMode && rboolean.test(name) ? name : elem.attribs[name];
      }
      if (elem.name === "option" && name === "value") {
        return (0, static_js_1.text)(elem.children);
      }
      if (elem.name === "input" && (elem.attribs["type"] === "radio" || elem.attribs["type"] === "checkbox") && name === "value") {
        return "on";
      }
      return void 0;
    }
    function setAttr(el, name, value2) {
      if (value2 === null) {
        removeAttribute(el, name);
      } else {
        el.attribs[name] = "".concat(value2);
      }
    }
    function attr(name, value2) {
      if (typeof name === "object" || value2 !== void 0) {
        if (typeof value2 === "function") {
          if (typeof name !== "string") {
            {
              throw new Error("Bad combination of arguments.");
            }
          }
          return (0, utils_js_1.domEach)(this, function(el, i5) {
            if ((0, utils_js_1.isTag)(el))
              setAttr(el, name, value2.call(el, i5, el.attribs[name]));
          });
        }
        return (0, utils_js_1.domEach)(this, function(el) {
          if (!(0, utils_js_1.isTag)(el))
            return;
          if (typeof name === "object") {
            Object.keys(name).forEach(function(objName) {
              var objValue = name[objName];
              setAttr(el, objName, objValue);
            });
          } else {
            setAttr(el, name, value2);
          }
        });
      }
      return arguments.length > 1 ? this : getAttr(this[0], name, this.options.xmlMode);
    }
    exports.attr = attr;
    function getProp(el, name, xmlMode) {
      return name in el ? (
        // @ts-expect-error TS doesn't like us accessing the value directly here.
        el[name]
      ) : !xmlMode && rboolean.test(name) ? getAttr(el, name, false) !== void 0 : getAttr(el, name, xmlMode);
    }
    function setProp(el, name, value2, xmlMode) {
      if (name in el) {
        el[name] = value2;
      } else {
        setAttr(el, name, !xmlMode && rboolean.test(name) ? value2 ? "" : null : "".concat(value2));
      }
    }
    function prop(name, value2) {
      var _this = this;
      var _a2;
      if (typeof name === "string" && value2 === void 0) {
        var el = this[0];
        if (!el || !(0, utils_js_1.isTag)(el))
          return void 0;
        switch (name) {
          case "style": {
            var property_1 = this.css();
            var keys2 = Object.keys(property_1);
            keys2.forEach(function(p3, i5) {
              property_1[i5] = p3;
            });
            property_1.length = keys2.length;
            return property_1;
          }
          case "tagName":
          case "nodeName": {
            return el.name.toUpperCase();
          }
          case "href":
          case "src": {
            var prop_1 = (_a2 = el.attribs) === null || _a2 === void 0 ? void 0 : _a2[name];
            if (typeof URL !== "undefined" && (name === "href" && (el.tagName === "a" || el.name === "link") || name === "src" && (el.tagName === "img" || el.tagName === "iframe" || el.tagName === "audio" || el.tagName === "video" || el.tagName === "source")) && prop_1 !== void 0 && this.options.baseURI) {
              return new URL(prop_1, this.options.baseURI).href;
            }
            return prop_1;
          }
          case "innerText": {
            return (0, domutils_1.innerText)(el);
          }
          case "textContent": {
            return (0, domutils_1.textContent)(el);
          }
          case "outerHTML":
            return this.clone().wrap("<container />").parent().html();
          case "innerHTML":
            return this.html();
          default:
            return getProp(el, name, this.options.xmlMode);
        }
      }
      if (typeof name === "object" || value2 !== void 0) {
        if (typeof value2 === "function") {
          if (typeof name === "object") {
            throw new Error("Bad combination of arguments.");
          }
          return (0, utils_js_1.domEach)(this, function(el2, i5) {
            if ((0, utils_js_1.isTag)(el2)) {
              setProp(el2, name, value2.call(el2, i5, getProp(el2, name, _this.options.xmlMode)), _this.options.xmlMode);
            }
          });
        }
        return (0, utils_js_1.domEach)(this, function(el2) {
          if (!(0, utils_js_1.isTag)(el2))
            return;
          if (typeof name === "object") {
            Object.keys(name).forEach(function(key) {
              var val2 = name[key];
              setProp(el2, key, val2, _this.options.xmlMode);
            });
          } else {
            setProp(el2, name, value2, _this.options.xmlMode);
          }
        });
      }
      return void 0;
    }
    exports.prop = prop;
    function setData(el, name, value2) {
      var _a2;
      var elem = el;
      (_a2 = elem.data) !== null && _a2 !== void 0 ? _a2 : elem.data = {};
      if (typeof name === "object")
        Object.assign(elem.data, name);
      else if (typeof name === "string" && value2 !== void 0) {
        elem.data[name] = value2;
      }
    }
    function readData(el, name) {
      var domNames;
      var jsNames;
      var value2;
      if (name == null) {
        domNames = Object.keys(el.attribs).filter(function(attrName) {
          return attrName.startsWith(dataAttrPrefix);
        });
        jsNames = domNames.map(function(domName2) {
          return (0, utils_js_1.camelCase)(domName2.slice(dataAttrPrefix.length));
        });
      } else {
        domNames = [dataAttrPrefix + (0, utils_js_1.cssCase)(name)];
        jsNames = [name];
      }
      for (var idx = 0; idx < domNames.length; ++idx) {
        var domName = domNames[idx];
        var jsName = jsNames[idx];
        if (hasOwn.call(el.attribs, domName) && !hasOwn.call(el.data, jsName)) {
          value2 = el.attribs[domName];
          if (hasOwn.call(primitives, value2)) {
            value2 = primitives[value2];
          } else if (value2 === String(Number(value2))) {
            value2 = Number(value2);
          } else if (rbrace.test(value2)) {
            try {
              value2 = JSON.parse(value2);
            } catch (e4) {
            }
          }
          el.data[jsName] = value2;
        }
      }
      return name == null ? el.data : value2;
    }
    function data2(name, value2) {
      var _a2;
      var elem = this[0];
      if (!elem || !(0, utils_js_1.isTag)(elem))
        return;
      var dataEl = elem;
      (_a2 = dataEl.data) !== null && _a2 !== void 0 ? _a2 : dataEl.data = {};
      if (!name) {
        return readData(dataEl);
      }
      if (typeof name === "object" || value2 !== void 0) {
        (0, utils_js_1.domEach)(this, function(el) {
          if ((0, utils_js_1.isTag)(el)) {
            if (typeof name === "object")
              setData(el, name);
            else
              setData(el, name, value2);
          }
        });
        return this;
      }
      if (hasOwn.call(dataEl.data, name)) {
        return dataEl.data[name];
      }
      return readData(dataEl, name);
    }
    exports.data = data2;
    function val(value2) {
      var querying = arguments.length === 0;
      var element = this[0];
      if (!element || !(0, utils_js_1.isTag)(element))
        return querying ? void 0 : this;
      switch (element.name) {
        case "textarea":
          return this.text(value2);
        case "select": {
          var option = this.find("option:selected");
          if (!querying) {
            if (this.attr("multiple") == null && typeof value2 === "object") {
              return this;
            }
            this.find("option").removeAttr("selected");
            var values = typeof value2 !== "object" ? [value2] : value2;
            for (var i5 = 0; i5 < values.length; i5++) {
              this.find('option[value="'.concat(values[i5], '"]')).attr("selected", "");
            }
            return this;
          }
          return this.attr("multiple") ? option.toArray().map(function(el) {
            return (0, static_js_1.text)(el.children);
          }) : option.attr("value");
        }
        case "input":
        case "option":
          return querying ? this.attr("value") : this.attr("value", value2);
      }
      return void 0;
    }
    exports.val = val;
    function removeAttribute(elem, name) {
      if (!elem.attribs || !hasOwn.call(elem.attribs, name))
        return;
      delete elem.attribs[name];
    }
    function splitNames(names) {
      return names ? names.trim().split(rspace) : [];
    }
    function removeAttr(name) {
      var attrNames = splitNames(name);
      var _loop_1 = function(i6) {
        (0, utils_js_1.domEach)(this_1, function(elem) {
          if ((0, utils_js_1.isTag)(elem))
            removeAttribute(elem, attrNames[i6]);
        });
      };
      var this_1 = this;
      for (var i5 = 0; i5 < attrNames.length; i5++) {
        _loop_1(i5);
      }
      return this;
    }
    exports.removeAttr = removeAttr;
    function hasClass(className) {
      return this.toArray().some(function(elem) {
        var clazz = (0, utils_js_1.isTag)(elem) && elem.attribs["class"];
        var idx = -1;
        if (clazz && className.length) {
          while ((idx = clazz.indexOf(className, idx + 1)) > -1) {
            var end2 = idx + className.length;
            if ((idx === 0 || rspace.test(clazz[idx - 1])) && (end2 === clazz.length || rspace.test(clazz[end2]))) {
              return true;
            }
          }
        }
        return false;
      });
    }
    exports.hasClass = hasClass;
    function addClass(value2) {
      if (typeof value2 === "function") {
        return (0, utils_js_1.domEach)(this, function(el2, i6) {
          if ((0, utils_js_1.isTag)(el2)) {
            var className2 = el2.attribs["class"] || "";
            addClass.call([el2], value2.call(el2, i6, className2));
          }
        });
      }
      if (!value2 || typeof value2 !== "string")
        return this;
      var classNames = value2.split(rspace);
      var numElements = this.length;
      for (var i5 = 0; i5 < numElements; i5++) {
        var el = this[i5];
        if (!(0, utils_js_1.isTag)(el))
          continue;
        var className = getAttr(el, "class", false);
        if (!className) {
          setAttr(el, "class", classNames.join(" ").trim());
        } else {
          var setClass = " ".concat(className, " ");
          for (var j = 0; j < classNames.length; j++) {
            var appendClass = "".concat(classNames[j], " ");
            if (!setClass.includes(" ".concat(appendClass)))
              setClass += appendClass;
          }
          setAttr(el, "class", setClass.trim());
        }
      }
      return this;
    }
    exports.addClass = addClass;
    function removeClass(name) {
      if (typeof name === "function") {
        return (0, utils_js_1.domEach)(this, function(el, i5) {
          if ((0, utils_js_1.isTag)(el)) {
            removeClass.call([el], name.call(el, i5, el.attribs["class"] || ""));
          }
        });
      }
      var classes = splitNames(name);
      var numClasses = classes.length;
      var removeAll = arguments.length === 0;
      return (0, utils_js_1.domEach)(this, function(el) {
        if (!(0, utils_js_1.isTag)(el))
          return;
        if (removeAll) {
          el.attribs["class"] = "";
        } else {
          var elClasses = splitNames(el.attribs["class"]);
          var changed = false;
          for (var j = 0; j < numClasses; j++) {
            var index2 = elClasses.indexOf(classes[j]);
            if (index2 >= 0) {
              elClasses.splice(index2, 1);
              changed = true;
              j--;
            }
          }
          if (changed) {
            el.attribs["class"] = elClasses.join(" ");
          }
        }
      });
    }
    exports.removeClass = removeClass;
    function toggleClass(value2, stateVal) {
      if (typeof value2 === "function") {
        return (0, utils_js_1.domEach)(this, function(el2, i6) {
          if ((0, utils_js_1.isTag)(el2)) {
            toggleClass.call([el2], value2.call(el2, i6, el2.attribs["class"] || "", stateVal), stateVal);
          }
        });
      }
      if (!value2 || typeof value2 !== "string")
        return this;
      var classNames = value2.split(rspace);
      var numClasses = classNames.length;
      var state = typeof stateVal === "boolean" ? stateVal ? 1 : -1 : 0;
      var numElements = this.length;
      for (var i5 = 0; i5 < numElements; i5++) {
        var el = this[i5];
        if (!(0, utils_js_1.isTag)(el))
          continue;
        var elementClasses = splitNames(el.attribs["class"]);
        for (var j = 0; j < numClasses; j++) {
          var index2 = elementClasses.indexOf(classNames[j]);
          if (state >= 0 && index2 < 0) {
            elementClasses.push(classNames[j]);
          } else if (state <= 0 && index2 >= 0) {
            elementClasses.splice(index2, 1);
          }
        }
        el.attribs["class"] = elementClasses.join(" ");
      }
      return this;
    }
    exports.toggleClass = toggleClass;
  }
});

// ../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/commonjs/types.js
var require_types2 = __commonJS({
  "../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/commonjs/types.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.AttributeAction = exports.IgnoreCaseMode = exports.SelectorType = void 0;
    var SelectorType;
    (function(SelectorType2) {
      SelectorType2["Attribute"] = "attribute";
      SelectorType2["Pseudo"] = "pseudo";
      SelectorType2["PseudoElement"] = "pseudo-element";
      SelectorType2["Tag"] = "tag";
      SelectorType2["Universal"] = "universal";
      SelectorType2["Adjacent"] = "adjacent";
      SelectorType2["Child"] = "child";
      SelectorType2["Descendant"] = "descendant";
      SelectorType2["Parent"] = "parent";
      SelectorType2["Sibling"] = "sibling";
      SelectorType2["ColumnCombinator"] = "column-combinator";
    })(SelectorType = exports.SelectorType || (exports.SelectorType = {}));
    exports.IgnoreCaseMode = {
      Unknown: null,
      QuirksMode: "quirks",
      IgnoreCase: true,
      CaseSensitive: false
    };
    var AttributeAction;
    (function(AttributeAction2) {
      AttributeAction2["Any"] = "any";
      AttributeAction2["Element"] = "element";
      AttributeAction2["End"] = "end";
      AttributeAction2["Equals"] = "equals";
      AttributeAction2["Exists"] = "exists";
      AttributeAction2["Hyphen"] = "hyphen";
      AttributeAction2["Not"] = "not";
      AttributeAction2["Start"] = "start";
    })(AttributeAction = exports.AttributeAction || (exports.AttributeAction = {}));
  }
});

// ../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/commonjs/parse.js
var require_parse2 = __commonJS({
  "../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/commonjs/parse.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.parse = exports.isTraversal = void 0;
    var types_1 = require_types2();
    var reName = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/;
    var reEscape = /\\([\da-f]{1,6}\s?|(\s)|.)/gi;
    var actionTypes = /* @__PURE__ */ new Map([
      [126, types_1.AttributeAction.Element],
      [94, types_1.AttributeAction.Start],
      [36, types_1.AttributeAction.End],
      [42, types_1.AttributeAction.Any],
      [33, types_1.AttributeAction.Not],
      [124, types_1.AttributeAction.Hyphen]
    ]);
    var unpackPseudos = /* @__PURE__ */ new Set([
      "has",
      "not",
      "matches",
      "is",
      "where",
      "host",
      "host-context"
    ]);
    function isTraversal(selector) {
      switch (selector.type) {
        case types_1.SelectorType.Adjacent:
        case types_1.SelectorType.Child:
        case types_1.SelectorType.Descendant:
        case types_1.SelectorType.Parent:
        case types_1.SelectorType.Sibling:
        case types_1.SelectorType.ColumnCombinator:
          return true;
        default:
          return false;
      }
    }
    exports.isTraversal = isTraversal;
    var stripQuotesFromPseudos = /* @__PURE__ */ new Set(["contains", "icontains"]);
    function funescape(_, escaped, escapedWhitespace) {
      var high = parseInt(escaped, 16) - 65536;
      return high !== high || escapedWhitespace ? escaped : high < 0 ? (
        // BMP codepoint
        String.fromCharCode(high + 65536)
      ) : (
        // Supplemental Plane codepoint (surrogate pair)
        String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320)
      );
    }
    function unescapeCSS(str) {
      return str.replace(reEscape, funescape);
    }
    function isQuote(c6) {
      return c6 === 39 || c6 === 34;
    }
    function isWhitespace(c6) {
      return c6 === 32 || c6 === 9 || c6 === 10 || c6 === 12 || c6 === 13;
    }
    function parse3(selector) {
      var subselects = [];
      var endIndex = parseSelector(subselects, "".concat(selector), 0);
      if (endIndex < selector.length) {
        throw new Error("Unmatched selector: ".concat(selector.slice(endIndex)));
      }
      return subselects;
    }
    exports.parse = parse3;
    function parseSelector(subselects, selector, selectorIndex) {
      var tokens = [];
      function getName(offset2) {
        var match = selector.slice(selectorIndex + offset2).match(reName);
        if (!match) {
          throw new Error("Expected name, found ".concat(selector.slice(selectorIndex)));
        }
        var name = match[0];
        selectorIndex += offset2 + name.length;
        return unescapeCSS(name);
      }
      function stripWhitespace(offset2) {
        selectorIndex += offset2;
        while (selectorIndex < selector.length && isWhitespace(selector.charCodeAt(selectorIndex))) {
          selectorIndex++;
        }
      }
      function readValueWithParenthesis() {
        selectorIndex += 1;
        var start2 = selectorIndex;
        var counter = 1;
        for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) {
          if (selector.charCodeAt(selectorIndex) === 40 && !isEscaped(selectorIndex)) {
            counter++;
          } else if (selector.charCodeAt(selectorIndex) === 41 && !isEscaped(selectorIndex)) {
            counter--;
          }
        }
        if (counter) {
          throw new Error("Parenthesis not matched");
        }
        return unescapeCSS(selector.slice(start2, selectorIndex - 1));
      }
      function isEscaped(pos) {
        var slashCount = 0;
        while (selector.charCodeAt(--pos) === 92)
          slashCount++;
        return (slashCount & 1) === 1;
      }
      function ensureNotTraversal() {
        if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) {
          throw new Error("Did not expect successive traversals.");
        }
      }
      function addTraversal(type) {
        if (tokens.length > 0 && tokens[tokens.length - 1].type === types_1.SelectorType.Descendant) {
          tokens[tokens.length - 1].type = type;
          return;
        }
        ensureNotTraversal();
        tokens.push({ type });
      }
      function addSpecialAttribute(name, action2) {
        tokens.push({
          type: types_1.SelectorType.Attribute,
          name,
          action: action2,
          value: getName(1),
          namespace: null,
          ignoreCase: "quirks"
        });
      }
      function finalizeSubselector() {
        if (tokens.length && tokens[tokens.length - 1].type === types_1.SelectorType.Descendant) {
          tokens.pop();
        }
        if (tokens.length === 0) {
          throw new Error("Empty sub-selector");
        }
        subselects.push(tokens);
      }
      stripWhitespace(0);
      if (selector.length === selectorIndex) {
        return selectorIndex;
      }
      loop: while (selectorIndex < selector.length) {
        var firstChar = selector.charCodeAt(selectorIndex);
        switch (firstChar) {
          // Whitespace
          case 32:
          case 9:
          case 10:
          case 12:
          case 13: {
            if (tokens.length === 0 || tokens[0].type !== types_1.SelectorType.Descendant) {
              ensureNotTraversal();
              tokens.push({ type: types_1.SelectorType.Descendant });
            }
            stripWhitespace(1);
            break;
          }
          // Traversals
          case 62: {
            addTraversal(types_1.SelectorType.Child);
            stripWhitespace(1);
            break;
          }
          case 60: {
            addTraversal(types_1.SelectorType.Parent);
            stripWhitespace(1);
            break;
          }
          case 126: {
            addTraversal(types_1.SelectorType.Sibling);
            stripWhitespace(1);
            break;
          }
          case 43: {
            addTraversal(types_1.SelectorType.Adjacent);
            stripWhitespace(1);
            break;
          }
          // Special attribute selectors: .class, #id
          case 46: {
            addSpecialAttribute("class", types_1.AttributeAction.Element);
            break;
          }
          case 35: {
            addSpecialAttribute("id", types_1.AttributeAction.Equals);
            break;
          }
          case 91: {
            stripWhitespace(1);
            var name_1 = void 0;
            var namespace = null;
            if (selector.charCodeAt(selectorIndex) === 124) {
              name_1 = getName(1);
            } else if (selector.startsWith("*|", selectorIndex)) {
              namespace = "*";
              name_1 = getName(2);
            } else {
              name_1 = getName(0);
              if (selector.charCodeAt(selectorIndex) === 124 && selector.charCodeAt(selectorIndex + 1) !== 61) {
                namespace = name_1;
                name_1 = getName(1);
              }
            }
            stripWhitespace(0);
            var action = types_1.AttributeAction.Exists;
            var possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex));
            if (possibleAction) {
              action = possibleAction;
              if (selector.charCodeAt(selectorIndex + 1) !== 61) {
                throw new Error("Expected `=`");
              }
              stripWhitespace(2);
            } else if (selector.charCodeAt(selectorIndex) === 61) {
              action = types_1.AttributeAction.Equals;
              stripWhitespace(1);
            }
            var value2 = "";
            var ignoreCase = null;
            if (action !== "exists") {
              if (isQuote(selector.charCodeAt(selectorIndex))) {
                var quote = selector.charCodeAt(selectorIndex);
                var sectionEnd = selectorIndex + 1;
                while (sectionEnd < selector.length && (selector.charCodeAt(sectionEnd) !== quote || isEscaped(sectionEnd))) {
                  sectionEnd += 1;
                }
                if (selector.charCodeAt(sectionEnd) !== quote) {
                  throw new Error("Attribute value didn't end");
                }
                value2 = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd));
                selectorIndex = sectionEnd + 1;
              } else {
                var valueStart = selectorIndex;
                while (selectorIndex < selector.length && (!isWhitespace(selector.charCodeAt(selectorIndex)) && selector.charCodeAt(selectorIndex) !== 93 || isEscaped(selectorIndex))) {
                  selectorIndex += 1;
                }
                value2 = unescapeCSS(selector.slice(valueStart, selectorIndex));
              }
              stripWhitespace(0);
              var forceIgnore = selector.charCodeAt(selectorIndex) | 32;
              if (forceIgnore === 115) {
                ignoreCase = false;
                stripWhitespace(1);
              } else if (forceIgnore === 105) {
                ignoreCase = true;
                stripWhitespace(1);
              }
            }
            if (selector.charCodeAt(selectorIndex) !== 93) {
              throw new Error("Attribute selector didn't terminate");
            }
            selectorIndex += 1;
            var attributeSelector = {
              type: types_1.SelectorType.Attribute,
              name: name_1,
              action,
              value: value2,
              namespace,
              ignoreCase
            };
            tokens.push(attributeSelector);
            break;
          }
          case 58: {
            if (selector.charCodeAt(selectorIndex + 1) === 58) {
              tokens.push({
                type: types_1.SelectorType.PseudoElement,
                name: getName(2).toLowerCase(),
                data: selector.charCodeAt(selectorIndex) === 40 ? readValueWithParenthesis() : null
              });
              continue;
            }
            var name_2 = getName(1).toLowerCase();
            var data2 = null;
            if (selector.charCodeAt(selectorIndex) === 40) {
              if (unpackPseudos.has(name_2)) {
                if (isQuote(selector.charCodeAt(selectorIndex + 1))) {
                  throw new Error("Pseudo-selector ".concat(name_2, " cannot be quoted"));
                }
                data2 = [];
                selectorIndex = parseSelector(data2, selector, selectorIndex + 1);
                if (selector.charCodeAt(selectorIndex) !== 41) {
                  throw new Error("Missing closing parenthesis in :".concat(name_2, " (").concat(selector, ")"));
                }
                selectorIndex += 1;
              } else {
                data2 = readValueWithParenthesis();
                if (stripQuotesFromPseudos.has(name_2)) {
                  var quot = data2.charCodeAt(0);
                  if (quot === data2.charCodeAt(data2.length - 1) && isQuote(quot)) {
                    data2 = data2.slice(1, -1);
                  }
                }
                data2 = unescapeCSS(data2);
              }
            }
            tokens.push({ type: types_1.SelectorType.Pseudo, name: name_2, data: data2 });
            break;
          }
          case 44: {
            finalizeSubselector();
            tokens = [];
            stripWhitespace(1);
            break;
          }
          default: {
            if (selector.startsWith("/*", selectorIndex)) {
              var endIndex = selector.indexOf("*/", selectorIndex + 2);
              if (endIndex < 0) {
                throw new Error("Comment was not terminated");
              }
              selectorIndex = endIndex + 2;
              if (tokens.length === 0) {
                stripWhitespace(0);
              }
              break;
            }
            var namespace = null;
            var name_3 = void 0;
            if (firstChar === 42) {
              selectorIndex += 1;
              name_3 = "*";
            } else if (firstChar === 124) {
              name_3 = "";
              if (selector.charCodeAt(selectorIndex + 1) === 124) {
                addTraversal(types_1.SelectorType.ColumnCombinator);
                stripWhitespace(2);
                break;
              }
            } else if (reName.test(selector.slice(selectorIndex))) {
              name_3 = getName(0);
            } else {
              break loop;
            }
            if (selector.charCodeAt(selectorIndex) === 124 && selector.charCodeAt(selectorIndex + 1) !== 124) {
              namespace = name_3;
              if (selector.charCodeAt(selectorIndex + 1) === 42) {
                name_3 = "*";
                selectorIndex += 2;
              } else {
                name_3 = getName(1);
              }
            }
            tokens.push(name_3 === "*" ? { type: types_1.SelectorType.Universal, namespace } : { type: types_1.SelectorType.Tag, name: name_3, namespace });
          }
        }
      }
      finalizeSubselector();
      return selectorIndex;
    }
  }
});

// ../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/commonjs/stringify.js
var require_stringify3 = __commonJS({
  "../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/commonjs/stringify.js"(exports) {
    "use strict";
    var __spreadArray2 = exports && exports.__spreadArray || function(to, from, pack) {
      if (pack || arguments.length === 2) for (var i5 = 0, l4 = from.length, ar; i5 < l4; i5++) {
        if (ar || !(i5 in from)) {
          if (!ar) ar = Array.prototype.slice.call(from, 0, i5);
          ar[i5] = from[i5];
        }
      }
      return to.concat(ar || Array.prototype.slice.call(from));
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.stringify = void 0;
    var types_1 = require_types2();
    var attribValChars = ["\\", '"'];
    var pseudoValChars = __spreadArray2(__spreadArray2([], attribValChars, true), ["(", ")"], false);
    var charsToEscapeInAttributeValue = new Set(attribValChars.map(function(c6) {
      return c6.charCodeAt(0);
    }));
    var charsToEscapeInPseudoValue = new Set(pseudoValChars.map(function(c6) {
      return c6.charCodeAt(0);
    }));
    var charsToEscapeInName = new Set(__spreadArray2(__spreadArray2([], pseudoValChars, true), [
      "~",
      "^",
      "$",
      "*",
      "+",
      "!",
      "|",
      ":",
      "[",
      "]",
      " ",
      "."
    ], false).map(function(c6) {
      return c6.charCodeAt(0);
    }));
    function stringify(selector) {
      return selector.map(function(token) {
        return token.map(stringifyToken).join("");
      }).join(", ");
    }
    exports.stringify = stringify;
    function stringifyToken(token, index2, arr) {
      switch (token.type) {
        // Simple types
        case types_1.SelectorType.Child:
          return index2 === 0 ? "> " : " > ";
        case types_1.SelectorType.Parent:
          return index2 === 0 ? "< " : " < ";
        case types_1.SelectorType.Sibling:
          return index2 === 0 ? "~ " : " ~ ";
        case types_1.SelectorType.Adjacent:
          return index2 === 0 ? "+ " : " + ";
        case types_1.SelectorType.Descendant:
          return " ";
        case types_1.SelectorType.ColumnCombinator:
          return index2 === 0 ? "|| " : " || ";
        case types_1.SelectorType.Universal:
          return token.namespace === "*" && index2 + 1 < arr.length && "name" in arr[index2 + 1] ? "" : "".concat(getNamespace(token.namespace), "*");
        case types_1.SelectorType.Tag:
          return getNamespacedName(token);
        case types_1.SelectorType.PseudoElement:
          return "::".concat(escapeName2(token.name, charsToEscapeInName)).concat(token.data === null ? "" : "(".concat(escapeName2(token.data, charsToEscapeInPseudoValue), ")"));
        case types_1.SelectorType.Pseudo:
          return ":".concat(escapeName2(token.name, charsToEscapeInName)).concat(token.data === null ? "" : "(".concat(typeof token.data === "string" ? escapeName2(token.data, charsToEscapeInPseudoValue) : stringify(token.data), ")"));
        case types_1.SelectorType.Attribute: {
          if (token.name === "id" && token.action === types_1.AttributeAction.Equals && token.ignoreCase === "quirks" && !token.namespace) {
            return "#".concat(escapeName2(token.value, charsToEscapeInName));
          }
          if (token.name === "class" && token.action === types_1.AttributeAction.Element && token.ignoreCase === "quirks" && !token.namespace) {
            return ".".concat(escapeName2(token.value, charsToEscapeInName));
          }
          var name_1 = getNamespacedName(token);
          if (token.action === types_1.AttributeAction.Exists) {
            return "[".concat(name_1, "]");
          }
          return "[".concat(name_1).concat(getActionValue(token.action), '="').concat(escapeName2(token.value, charsToEscapeInAttributeValue), '"').concat(token.ignoreCase === null ? "" : token.ignoreCase ? " i" : " s", "]");
        }
      }
    }
    function getActionValue(action) {
      switch (action) {
        case types_1.AttributeAction.Equals:
          return "";
        case types_1.AttributeAction.Element:
          return "~";
        case types_1.AttributeAction.Start:
          return "^";
        case types_1.AttributeAction.End:
          return "$";
        case types_1.AttributeAction.Any:
          return "*";
        case types_1.AttributeAction.Not:
          return "!";
        case types_1.AttributeAction.Hyphen:
          return "|";
        case types_1.AttributeAction.Exists:
          throw new Error("Shouldn't be here");
      }
    }
    function getNamespacedName(token) {
      return "".concat(getNamespace(token.namespace)).concat(escapeName2(token.name, charsToEscapeInName));
    }
    function getNamespace(namespace) {
      return namespace !== null ? "".concat(namespace === "*" ? "*" : escapeName2(namespace, charsToEscapeInName), "|") : "";
    }
    function escapeName2(str, charsToEscape) {
      var lastIdx = 0;
      var ret = "";
      for (var i5 = 0; i5 < str.length; i5++) {
        if (charsToEscape.has(str.charCodeAt(i5))) {
          ret += "".concat(str.slice(lastIdx, i5), "\\").concat(str.charAt(i5));
          lastIdx = i5 + 1;
        }
      }
      return ret.length > 0 ? ret + str.slice(lastIdx) : str;
    }
  }
});

// ../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/commonjs/index.js
var require_commonjs = __commonJS({
  "../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/commonjs/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __exportStar2 = exports && exports.__exportStar || function(m3, exports2) {
      for (var p3 in m3) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p3)) __createBinding2(exports2, m3, p3);
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.stringify = exports.parse = exports.isTraversal = void 0;
    __exportStar2(require_types2(), exports);
    var parse_1 = require_parse2();
    Object.defineProperty(exports, "isTraversal", { enumerable: true, get: function() {
      return parse_1.isTraversal;
    } });
    Object.defineProperty(exports, "parse", { enumerable: true, get: function() {
      return parse_1.parse;
    } });
    var stringify_1 = require_stringify3();
    Object.defineProperty(exports, "stringify", { enumerable: true, get: function() {
      return stringify_1.stringify;
    } });
  }
});

// ../../node_modules/.pnpm/boolbase@1.0.0/node_modules/boolbase/index.js
var require_boolbase = __commonJS({
  "../../node_modules/.pnpm/boolbase@1.0.0/node_modules/boolbase/index.js"(exports, module) {
    module.exports = {
      trueFunc: function trueFunc() {
        return true;
      },
      falseFunc: function falseFunc() {
        return false;
      }
    };
  }
});

// ../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/sort.js
var require_sort = __commonJS({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/sort.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.isTraversal = void 0;
    var css_what_1 = require_commonjs();
    var procedure = /* @__PURE__ */ new Map([
      [css_what_1.SelectorType.Universal, 50],
      [css_what_1.SelectorType.Tag, 30],
      [css_what_1.SelectorType.Attribute, 1],
      [css_what_1.SelectorType.Pseudo, 0]
    ]);
    function isTraversal(token) {
      return !procedure.has(token.type);
    }
    exports.isTraversal = isTraversal;
    var attributes2 = /* @__PURE__ */ new Map([
      [css_what_1.AttributeAction.Exists, 10],
      [css_what_1.AttributeAction.Equals, 8],
      [css_what_1.AttributeAction.Not, 7],
      [css_what_1.AttributeAction.Start, 6],
      [css_what_1.AttributeAction.End, 6],
      [css_what_1.AttributeAction.Any, 5]
    ]);
    function sortByProcedure(arr) {
      var procs = arr.map(getProcedure);
      for (var i5 = 1; i5 < arr.length; i5++) {
        var procNew = procs[i5];
        if (procNew < 0)
          continue;
        for (var j = i5 - 1; j >= 0 && procNew < procs[j]; j--) {
          var token = arr[j + 1];
          arr[j + 1] = arr[j];
          arr[j] = token;
          procs[j + 1] = procs[j];
          procs[j] = procNew;
        }
      }
    }
    exports.default = sortByProcedure;
    function getProcedure(token) {
      var _a2, _b2;
      var proc = (_a2 = procedure.get(token.type)) !== null && _a2 !== void 0 ? _a2 : -1;
      if (token.type === css_what_1.SelectorType.Attribute) {
        proc = (_b2 = attributes2.get(token.action)) !== null && _b2 !== void 0 ? _b2 : 4;
        if (token.action === css_what_1.AttributeAction.Equals && token.name === "id") {
          proc = 9;
        }
        if (token.ignoreCase) {
          proc >>= 1;
        }
      } else if (token.type === css_what_1.SelectorType.Pseudo) {
        if (!token.data) {
          proc = 3;
        } else if (token.name === "has" || token.name === "contains") {
          proc = 0;
        } else if (Array.isArray(token.data)) {
          proc = Math.min.apply(Math, token.data.map(function(d3) {
            return Math.min.apply(Math, d3.map(getProcedure));
          }));
          if (proc < 0) {
            proc = 0;
          }
        } else {
          proc = 2;
        }
      }
      return proc;
    }
  }
});

// ../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/attributes.js
var require_attributes2 = __commonJS({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/attributes.js"(exports) {
    "use strict";
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.attributeRules = void 0;
    var boolbase_1 = __importDefault2(require_boolbase());
    var reChars = /[-[\]{}()*+?.,\\^$|#\s]/g;
    function escapeRegex(value2) {
      return value2.replace(reChars, "\\$&");
    }
    var caseInsensitiveAttributes = /* @__PURE__ */ new Set([
      "accept",
      "accept-charset",
      "align",
      "alink",
      "axis",
      "bgcolor",
      "charset",
      "checked",
      "clear",
      "codetype",
      "color",
      "compact",
      "declare",
      "defer",
      "dir",
      "direction",
      "disabled",
      "enctype",
      "face",
      "frame",
      "hreflang",
      "http-equiv",
      "lang",
      "language",
      "link",
      "media",
      "method",
      "multiple",
      "nohref",
      "noresize",
      "noshade",
      "nowrap",
      "readonly",
      "rel",
      "rev",
      "rules",
      "scope",
      "scrolling",
      "selected",
      "shape",
      "target",
      "text",
      "type",
      "valign",
      "valuetype",
      "vlink"
    ]);
    function shouldIgnoreCase(selector, options) {
      return typeof selector.ignoreCase === "boolean" ? selector.ignoreCase : selector.ignoreCase === "quirks" ? !!options.quirksMode : !options.xmlMode && caseInsensitiveAttributes.has(selector.name);
    }
    exports.attributeRules = {
      equals: function(next, data2, options) {
        var adapter2 = options.adapter;
        var name = data2.name;
        var value2 = data2.value;
        if (shouldIgnoreCase(data2, options)) {
          value2 = value2.toLowerCase();
          return function(elem) {
            var attr = adapter2.getAttributeValue(elem, name);
            return attr != null && attr.length === value2.length && attr.toLowerCase() === value2 && next(elem);
          };
        }
        return function(elem) {
          return adapter2.getAttributeValue(elem, name) === value2 && next(elem);
        };
      },
      hyphen: function(next, data2, options) {
        var adapter2 = options.adapter;
        var name = data2.name;
        var value2 = data2.value;
        var len = value2.length;
        if (shouldIgnoreCase(data2, options)) {
          value2 = value2.toLowerCase();
          return function hyphenIC(elem) {
            var attr = adapter2.getAttributeValue(elem, name);
            return attr != null && (attr.length === len || attr.charAt(len) === "-") && attr.substr(0, len).toLowerCase() === value2 && next(elem);
          };
        }
        return function hyphen2(elem) {
          var attr = adapter2.getAttributeValue(elem, name);
          return attr != null && (attr.length === len || attr.charAt(len) === "-") && attr.substr(0, len) === value2 && next(elem);
        };
      },
      element: function(next, data2, options) {
        var adapter2 = options.adapter;
        var name = data2.name, value2 = data2.value;
        if (/\s/.test(value2)) {
          return boolbase_1.default.falseFunc;
        }
        var regex2 = new RegExp("(?:^|\\s)".concat(escapeRegex(value2), "(?:$|\\s)"), shouldIgnoreCase(data2, options) ? "i" : "");
        return function element(elem) {
          var attr = adapter2.getAttributeValue(elem, name);
          return attr != null && attr.length >= value2.length && regex2.test(attr) && next(elem);
        };
      },
      exists: function(next, _a2, _b2) {
        var name = _a2.name;
        var adapter2 = _b2.adapter;
        return function(elem) {
          return adapter2.hasAttrib(elem, name) && next(elem);
        };
      },
      start: function(next, data2, options) {
        var adapter2 = options.adapter;
        var name = data2.name;
        var value2 = data2.value;
        var len = value2.length;
        if (len === 0) {
          return boolbase_1.default.falseFunc;
        }
        if (shouldIgnoreCase(data2, options)) {
          value2 = value2.toLowerCase();
          return function(elem) {
            var attr = adapter2.getAttributeValue(elem, name);
            return attr != null && attr.length >= len && attr.substr(0, len).toLowerCase() === value2 && next(elem);
          };
        }
        return function(elem) {
          var _a2;
          return !!((_a2 = adapter2.getAttributeValue(elem, name)) === null || _a2 === void 0 ? void 0 : _a2.startsWith(value2)) && next(elem);
        };
      },
      end: function(next, data2, options) {
        var adapter2 = options.adapter;
        var name = data2.name;
        var value2 = data2.value;
        var len = -value2.length;
        if (len === 0) {
          return boolbase_1.default.falseFunc;
        }
        if (shouldIgnoreCase(data2, options)) {
          value2 = value2.toLowerCase();
          return function(elem) {
            var _a2;
            return ((_a2 = adapter2.getAttributeValue(elem, name)) === null || _a2 === void 0 ? void 0 : _a2.substr(len).toLowerCase()) === value2 && next(elem);
          };
        }
        return function(elem) {
          var _a2;
          return !!((_a2 = adapter2.getAttributeValue(elem, name)) === null || _a2 === void 0 ? void 0 : _a2.endsWith(value2)) && next(elem);
        };
      },
      any: function(next, data2, options) {
        var adapter2 = options.adapter;
        var name = data2.name, value2 = data2.value;
        if (value2 === "") {
          return boolbase_1.default.falseFunc;
        }
        if (shouldIgnoreCase(data2, options)) {
          var regex_1 = new RegExp(escapeRegex(value2), "i");
          return function anyIC(elem) {
            var attr = adapter2.getAttributeValue(elem, name);
            return attr != null && attr.length >= value2.length && regex_1.test(attr) && next(elem);
          };
        }
        return function(elem) {
          var _a2;
          return !!((_a2 = adapter2.getAttributeValue(elem, name)) === null || _a2 === void 0 ? void 0 : _a2.includes(value2)) && next(elem);
        };
      },
      not: function(next, data2, options) {
        var adapter2 = options.adapter;
        var name = data2.name;
        var value2 = data2.value;
        if (value2 === "") {
          return function(elem) {
            return !!adapter2.getAttributeValue(elem, name) && next(elem);
          };
        } else if (shouldIgnoreCase(data2, options)) {
          value2 = value2.toLowerCase();
          return function(elem) {
            var attr = adapter2.getAttributeValue(elem, name);
            return (attr == null || attr.length !== value2.length || attr.toLowerCase() !== value2) && next(elem);
          };
        }
        return function(elem) {
          return adapter2.getAttributeValue(elem, name) !== value2 && next(elem);
        };
      }
    };
  }
});

// ../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/parse.js
var require_parse3 = __commonJS({
  "../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/parse.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.parse = void 0;
    var whitespace = /* @__PURE__ */ new Set([9, 10, 12, 13, 32]);
    var ZERO = "0".charCodeAt(0);
    var NINE = "9".charCodeAt(0);
    function parse3(formula) {
      formula = formula.trim().toLowerCase();
      if (formula === "even") {
        return [2, 0];
      } else if (formula === "odd") {
        return [2, 1];
      }
      var idx = 0;
      var a5 = 0;
      var sign = readSign();
      var number3 = readNumber2();
      if (idx < formula.length && formula.charAt(idx) === "n") {
        idx++;
        a5 = sign * (number3 !== null && number3 !== void 0 ? number3 : 1);
        skipWhitespace();
        if (idx < formula.length) {
          sign = readSign();
          skipWhitespace();
          number3 = readNumber2();
        } else {
          sign = number3 = 0;
        }
      }
      if (number3 === null || idx < formula.length) {
        throw new Error("n-th rule couldn't be parsed ('".concat(formula, "')"));
      }
      return [a5, sign * number3];
      function readSign() {
        if (formula.charAt(idx) === "-") {
          idx++;
          return -1;
        }
        if (formula.charAt(idx) === "+") {
          idx++;
        }
        return 1;
      }
      function readNumber2() {
        var start2 = idx;
        var value2 = 0;
        while (idx < formula.length && formula.charCodeAt(idx) >= ZERO && formula.charCodeAt(idx) <= NINE) {
          value2 = value2 * 10 + (formula.charCodeAt(idx) - ZERO);
          idx++;
        }
        return idx === start2 ? null : value2;
      }
      function skipWhitespace() {
        while (idx < formula.length && whitespace.has(formula.charCodeAt(idx))) {
          idx++;
        }
      }
    }
    exports.parse = parse3;
  }
});

// ../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/compile.js
var require_compile = __commonJS({
  "../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/compile.js"(exports) {
    "use strict";
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.generate = exports.compile = void 0;
    var boolbase_1 = __importDefault2(require_boolbase());
    function compile(parsed) {
      var a5 = parsed[0];
      var b3 = parsed[1] - 1;
      if (b3 < 0 && a5 <= 0)
        return boolbase_1.default.falseFunc;
      if (a5 === -1)
        return function(index2) {
          return index2 <= b3;
        };
      if (a5 === 0)
        return function(index2) {
          return index2 === b3;
        };
      if (a5 === 1)
        return b3 < 0 ? boolbase_1.default.trueFunc : function(index2) {
          return index2 >= b3;
        };
      var absA = Math.abs(a5);
      var bMod = (b3 % absA + absA) % absA;
      return a5 > 1 ? function(index2) {
        return index2 >= b3 && index2 % absA === bMod;
      } : function(index2) {
        return index2 <= b3 && index2 % absA === bMod;
      };
    }
    exports.compile = compile;
    function generate(parsed) {
      var a5 = parsed[0];
      var b3 = parsed[1] - 1;
      var n6 = 0;
      if (a5 < 0) {
        var aPos_1 = -a5;
        var minValue_1 = (b3 % aPos_1 + aPos_1) % aPos_1;
        return function() {
          var val = minValue_1 + aPos_1 * n6++;
          return val > b3 ? null : val;
        };
      }
      if (a5 === 0)
        return b3 < 0 ? (
          // There are no result — always return `null`
          function() {
            return null;
          }
        ) : (
          // Return `b` exactly once
          function() {
            return n6++ === 0 ? b3 : null;
          }
        );
      if (b3 < 0) {
        b3 += a5 * Math.ceil(-b3 / a5);
      }
      return function() {
        return a5 * n6++ + b3;
      };
    }
    exports.generate = generate;
  }
});

// ../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/index.js
var require_lib8 = __commonJS({
  "../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.sequence = exports.generate = exports.compile = exports.parse = void 0;
    var parse_js_1 = require_parse3();
    Object.defineProperty(exports, "parse", { enumerable: true, get: function() {
      return parse_js_1.parse;
    } });
    var compile_js_1 = require_compile();
    Object.defineProperty(exports, "compile", { enumerable: true, get: function() {
      return compile_js_1.compile;
    } });
    Object.defineProperty(exports, "generate", { enumerable: true, get: function() {
      return compile_js_1.generate;
    } });
    function nthCheck(formula) {
      return (0, compile_js_1.compile)((0, parse_js_1.parse)(formula));
    }
    exports.default = nthCheck;
    function sequence(formula) {
      return (0, compile_js_1.generate)((0, parse_js_1.parse)(formula));
    }
    exports.sequence = sequence;
  }
});

// ../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/filters.js
var require_filters = __commonJS({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/filters.js"(exports) {
    "use strict";
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.filters = void 0;
    var nth_check_1 = __importDefault2(require_lib8());
    var boolbase_1 = __importDefault2(require_boolbase());
    function getChildFunc(next, adapter2) {
      return function(elem) {
        var parent = adapter2.getParent(elem);
        return parent != null && adapter2.isTag(parent) && next(elem);
      };
    }
    exports.filters = {
      contains: function(next, text, _a2) {
        var adapter2 = _a2.adapter;
        return function contains(elem) {
          return next(elem) && adapter2.getText(elem).includes(text);
        };
      },
      icontains: function(next, text, _a2) {
        var adapter2 = _a2.adapter;
        var itext = text.toLowerCase();
        return function icontains(elem) {
          return next(elem) && adapter2.getText(elem).toLowerCase().includes(itext);
        };
      },
      // Location specific methods
      "nth-child": function(next, rule, _a2) {
        var adapter2 = _a2.adapter, equals = _a2.equals;
        var func = (0, nth_check_1.default)(rule);
        if (func === boolbase_1.default.falseFunc)
          return boolbase_1.default.falseFunc;
        if (func === boolbase_1.default.trueFunc)
          return getChildFunc(next, adapter2);
        return function nthChild(elem) {
          var siblings = adapter2.getSiblings(elem);
          var pos = 0;
          for (var i5 = 0; i5 < siblings.length; i5++) {
            if (equals(elem, siblings[i5]))
              break;
            if (adapter2.isTag(siblings[i5])) {
              pos++;
            }
          }
          return func(pos) && next(elem);
        };
      },
      "nth-last-child": function(next, rule, _a2) {
        var adapter2 = _a2.adapter, equals = _a2.equals;
        var func = (0, nth_check_1.default)(rule);
        if (func === boolbase_1.default.falseFunc)
          return boolbase_1.default.falseFunc;
        if (func === boolbase_1.default.trueFunc)
          return getChildFunc(next, adapter2);
        return function nthLastChild(elem) {
          var siblings = adapter2.getSiblings(elem);
          var pos = 0;
          for (var i5 = siblings.length - 1; i5 >= 0; i5--) {
            if (equals(elem, siblings[i5]))
              break;
            if (adapter2.isTag(siblings[i5])) {
              pos++;
            }
          }
          return func(pos) && next(elem);
        };
      },
      "nth-of-type": function(next, rule, _a2) {
        var adapter2 = _a2.adapter, equals = _a2.equals;
        var func = (0, nth_check_1.default)(rule);
        if (func === boolbase_1.default.falseFunc)
          return boolbase_1.default.falseFunc;
        if (func === boolbase_1.default.trueFunc)
          return getChildFunc(next, adapter2);
        return function nthOfType(elem) {
          var siblings = adapter2.getSiblings(elem);
          var pos = 0;
          for (var i5 = 0; i5 < siblings.length; i5++) {
            var currentSibling = siblings[i5];
            if (equals(elem, currentSibling))
              break;
            if (adapter2.isTag(currentSibling) && adapter2.getName(currentSibling) === adapter2.getName(elem)) {
              pos++;
            }
          }
          return func(pos) && next(elem);
        };
      },
      "nth-last-of-type": function(next, rule, _a2) {
        var adapter2 = _a2.adapter, equals = _a2.equals;
        var func = (0, nth_check_1.default)(rule);
        if (func === boolbase_1.default.falseFunc)
          return boolbase_1.default.falseFunc;
        if (func === boolbase_1.default.trueFunc)
          return getChildFunc(next, adapter2);
        return function nthLastOfType(elem) {
          var siblings = adapter2.getSiblings(elem);
          var pos = 0;
          for (var i5 = siblings.length - 1; i5 >= 0; i5--) {
            var currentSibling = siblings[i5];
            if (equals(elem, currentSibling))
              break;
            if (adapter2.isTag(currentSibling) && adapter2.getName(currentSibling) === adapter2.getName(elem)) {
              pos++;
            }
          }
          return func(pos) && next(elem);
        };
      },
      // TODO determine the actual root element
      root: function(next, _rule, _a2) {
        var adapter2 = _a2.adapter;
        return function(elem) {
          var parent = adapter2.getParent(elem);
          return (parent == null || !adapter2.isTag(parent)) && next(elem);
        };
      },
      scope: function(next, rule, options, context) {
        var equals = options.equals;
        if (!context || context.length === 0) {
          return exports.filters["root"](next, rule, options);
        }
        if (context.length === 1) {
          return function(elem) {
            return equals(context[0], elem) && next(elem);
          };
        }
        return function(elem) {
          return context.includes(elem) && next(elem);
        };
      },
      hover: dynamicStatePseudo("isHovered"),
      visited: dynamicStatePseudo("isVisited"),
      active: dynamicStatePseudo("isActive")
    };
    function dynamicStatePseudo(name) {
      return function dynamicPseudo(next, _rule, _a2) {
        var adapter2 = _a2.adapter;
        var func = adapter2[name];
        if (typeof func !== "function") {
          return boolbase_1.default.falseFunc;
        }
        return function active(elem) {
          return func(elem) && next(elem);
        };
      };
    }
  }
});

// ../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/pseudos.js
var require_pseudos = __commonJS({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/pseudos.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.verifyPseudoArgs = exports.pseudos = void 0;
    exports.pseudos = {
      empty: function(elem, _a2) {
        var adapter2 = _a2.adapter;
        return !adapter2.getChildren(elem).some(function(elem2) {
          return adapter2.isTag(elem2) || adapter2.getText(elem2) !== "";
        });
      },
      "first-child": function(elem, _a2) {
        var adapter2 = _a2.adapter, equals = _a2.equals;
        if (adapter2.prevElementSibling) {
          return adapter2.prevElementSibling(elem) == null;
        }
        var firstChild = adapter2.getSiblings(elem).find(function(elem2) {
          return adapter2.isTag(elem2);
        });
        return firstChild != null && equals(elem, firstChild);
      },
      "last-child": function(elem, _a2) {
        var adapter2 = _a2.adapter, equals = _a2.equals;
        var siblings = adapter2.getSiblings(elem);
        for (var i5 = siblings.length - 1; i5 >= 0; i5--) {
          if (equals(elem, siblings[i5]))
            return true;
          if (adapter2.isTag(siblings[i5]))
            break;
        }
        return false;
      },
      "first-of-type": function(elem, _a2) {
        var adapter2 = _a2.adapter, equals = _a2.equals;
        var siblings = adapter2.getSiblings(elem);
        var elemName = adapter2.getName(elem);
        for (var i5 = 0; i5 < siblings.length; i5++) {
          var currentSibling = siblings[i5];
          if (equals(elem, currentSibling))
            return true;
          if (adapter2.isTag(currentSibling) && adapter2.getName(currentSibling) === elemName) {
            break;
          }
        }
        return false;
      },
      "last-of-type": function(elem, _a2) {
        var adapter2 = _a2.adapter, equals = _a2.equals;
        var siblings = adapter2.getSiblings(elem);
        var elemName = adapter2.getName(elem);
        for (var i5 = siblings.length - 1; i5 >= 0; i5--) {
          var currentSibling = siblings[i5];
          if (equals(elem, currentSibling))
            return true;
          if (adapter2.isTag(currentSibling) && adapter2.getName(currentSibling) === elemName) {
            break;
          }
        }
        return false;
      },
      "only-of-type": function(elem, _a2) {
        var adapter2 = _a2.adapter, equals = _a2.equals;
        var elemName = adapter2.getName(elem);
        return adapter2.getSiblings(elem).every(function(sibling) {
          return equals(elem, sibling) || !adapter2.isTag(sibling) || adapter2.getName(sibling) !== elemName;
        });
      },
      "only-child": function(elem, _a2) {
        var adapter2 = _a2.adapter, equals = _a2.equals;
        return adapter2.getSiblings(elem).every(function(sibling) {
          return equals(elem, sibling) || !adapter2.isTag(sibling);
        });
      }
    };
    function verifyPseudoArgs(func, name, subselect, argIndex) {
      if (subselect === null) {
        if (func.length > argIndex) {
          throw new Error("Pseudo-class :".concat(name, " requires an argument"));
        }
      } else if (func.length === argIndex) {
        throw new Error("Pseudo-class :".concat(name, " doesn't have any arguments"));
      }
    }
    exports.verifyPseudoArgs = verifyPseudoArgs;
  }
});

// ../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/aliases.js
var require_aliases = __commonJS({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/aliases.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.aliases = void 0;
    exports.aliases = {
      // Links
      "any-link": ":is(a, area, link)[href]",
      link: ":any-link:not(:visited)",
      // Forms
      // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements
      disabled: ":is(\n        :is(button, input, select, textarea, optgroup, option)[disabled],\n        optgroup[disabled] > option,\n        fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\n    )",
      enabled: ":not(:disabled)",
      checked: ":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",
      required: ":is(input, select, textarea)[required]",
      optional: ":is(input, select, textarea):not([required])",
      // JQuery extensions
      // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness
      selected: "option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",
      checkbox: "[type=checkbox]",
      file: "[type=file]",
      password: "[type=password]",
      radio: "[type=radio]",
      reset: "[type=reset]",
      image: "[type=image]",
      submit: "[type=submit]",
      parent: ":not(:empty)",
      header: ":is(h1, h2, h3, h4, h5, h6)",
      button: ":is(button, input[type=button])",
      input: ":is(input, textarea, select, button)",
      text: "input:is(:not([type!='']), [type=text])"
    };
  }
});

// ../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/subselects.js
var require_subselects = __commonJS({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/subselects.js"(exports) {
    "use strict";
    var __spreadArray2 = exports && exports.__spreadArray || function(to, from, pack) {
      if (pack || arguments.length === 2) for (var i5 = 0, l4 = from.length, ar; i5 < l4; i5++) {
        if (ar || !(i5 in from)) {
          if (!ar) ar = Array.prototype.slice.call(from, 0, i5);
          ar[i5] = from[i5];
        }
      }
      return to.concat(ar || Array.prototype.slice.call(from));
    };
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.subselects = exports.getNextSiblings = exports.ensureIsTag = exports.PLACEHOLDER_ELEMENT = void 0;
    var boolbase_1 = __importDefault2(require_boolbase());
    var sort_js_1 = require_sort();
    exports.PLACEHOLDER_ELEMENT = {};
    function ensureIsTag(next, adapter2) {
      if (next === boolbase_1.default.falseFunc)
        return boolbase_1.default.falseFunc;
      return function(elem) {
        return adapter2.isTag(elem) && next(elem);
      };
    }
    exports.ensureIsTag = ensureIsTag;
    function getNextSiblings(elem, adapter2) {
      var siblings = adapter2.getSiblings(elem);
      if (siblings.length <= 1)
        return [];
      var elemIndex = siblings.indexOf(elem);
      if (elemIndex < 0 || elemIndex === siblings.length - 1)
        return [];
      return siblings.slice(elemIndex + 1).filter(adapter2.isTag);
    }
    exports.getNextSiblings = getNextSiblings;
    function copyOptions(options) {
      return {
        xmlMode: !!options.xmlMode,
        lowerCaseAttributeNames: !!options.lowerCaseAttributeNames,
        lowerCaseTags: !!options.lowerCaseTags,
        quirksMode: !!options.quirksMode,
        cacheResults: !!options.cacheResults,
        pseudos: options.pseudos,
        adapter: options.adapter,
        equals: options.equals
      };
    }
    var is3 = function(next, token, options, context, compileToken) {
      var func = compileToken(token, copyOptions(options), context);
      return func === boolbase_1.default.trueFunc ? next : func === boolbase_1.default.falseFunc ? boolbase_1.default.falseFunc : function(elem) {
        return func(elem) && next(elem);
      };
    };
    exports.subselects = {
      is: is3,
      /**
       * `:matches` and `:where` are aliases for `:is`.
       */
      matches: is3,
      where: is3,
      not: function(next, token, options, context, compileToken) {
        var func = compileToken(token, copyOptions(options), context);
        return func === boolbase_1.default.falseFunc ? next : func === boolbase_1.default.trueFunc ? boolbase_1.default.falseFunc : function(elem) {
          return !func(elem) && next(elem);
        };
      },
      has: function(next, subselect, options, _context, compileToken) {
        var adapter2 = options.adapter;
        var opts2 = copyOptions(options);
        opts2.relativeSelector = true;
        var context = subselect.some(function(s4) {
          return s4.some(sort_js_1.isTraversal);
        }) ? (
          // Used as a placeholder. Will be replaced with the actual element.
          [exports.PLACEHOLDER_ELEMENT]
        ) : void 0;
        var compiled = compileToken(subselect, opts2, context);
        if (compiled === boolbase_1.default.falseFunc)
          return boolbase_1.default.falseFunc;
        var hasElement = ensureIsTag(compiled, adapter2);
        if (context && compiled !== boolbase_1.default.trueFunc) {
          var _a2 = compiled.shouldTestNextSiblings, shouldTestNextSiblings_1 = _a2 === void 0 ? false : _a2;
          return function(elem) {
            if (!next(elem))
              return false;
            context[0] = elem;
            var childs = adapter2.getChildren(elem);
            var nextElements = shouldTestNextSiblings_1 ? __spreadArray2(__spreadArray2([], childs, true), getNextSiblings(elem, adapter2), true) : childs;
            return adapter2.existsOne(hasElement, nextElements);
          };
        }
        return function(elem) {
          return next(elem) && adapter2.existsOne(hasElement, adapter2.getChildren(elem));
        };
      }
    };
  }
});

// ../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/index.js
var require_pseudo_selectors = __commonJS({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.compilePseudoSelector = exports.aliases = exports.pseudos = exports.filters = void 0;
    var css_what_1 = require_commonjs();
    var filters_js_1 = require_filters();
    Object.defineProperty(exports, "filters", { enumerable: true, get: function() {
      return filters_js_1.filters;
    } });
    var pseudos_js_1 = require_pseudos();
    Object.defineProperty(exports, "pseudos", { enumerable: true, get: function() {
      return pseudos_js_1.pseudos;
    } });
    var aliases_js_1 = require_aliases();
    Object.defineProperty(exports, "aliases", { enumerable: true, get: function() {
      return aliases_js_1.aliases;
    } });
    var subselects_js_1 = require_subselects();
    function compilePseudoSelector(next, selector, options, context, compileToken) {
      var _a2;
      var name = selector.name, data2 = selector.data;
      if (Array.isArray(data2)) {
        if (!(name in subselects_js_1.subselects)) {
          throw new Error("Unknown pseudo-class :".concat(name, "(").concat(data2, ")"));
        }
        return subselects_js_1.subselects[name](next, data2, options, context, compileToken);
      }
      var userPseudo = (_a2 = options.pseudos) === null || _a2 === void 0 ? void 0 : _a2[name];
      var stringPseudo = typeof userPseudo === "string" ? userPseudo : aliases_js_1.aliases[name];
      if (typeof stringPseudo === "string") {
        if (data2 != null) {
          throw new Error("Pseudo ".concat(name, " doesn't have any arguments"));
        }
        var alias = (0, css_what_1.parse)(stringPseudo);
        return subselects_js_1.subselects["is"](next, alias, options, context, compileToken);
      }
      if (typeof userPseudo === "function") {
        (0, pseudos_js_1.verifyPseudoArgs)(userPseudo, name, data2, 1);
        return function(elem) {
          return userPseudo(elem, data2) && next(elem);
        };
      }
      if (name in filters_js_1.filters) {
        return filters_js_1.filters[name](next, data2, options, context);
      }
      if (name in pseudos_js_1.pseudos) {
        var pseudo_1 = pseudos_js_1.pseudos[name];
        (0, pseudos_js_1.verifyPseudoArgs)(pseudo_1, name, data2, 2);
        return function(elem) {
          return pseudo_1(elem, options, data2) && next(elem);
        };
      }
      throw new Error("Unknown pseudo-class :".concat(name));
    }
    exports.compilePseudoSelector = compilePseudoSelector;
  }
});

// ../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/general.js
var require_general = __commonJS({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/general.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.compileGeneralSelector = void 0;
    var attributes_js_1 = require_attributes2();
    var index_js_1 = require_pseudo_selectors();
    var css_what_1 = require_commonjs();
    function getElementParent(node, adapter2) {
      var parent = adapter2.getParent(node);
      if (parent && adapter2.isTag(parent)) {
        return parent;
      }
      return null;
    }
    function compileGeneralSelector(next, selector, options, context, compileToken) {
      var adapter2 = options.adapter, equals = options.equals;
      switch (selector.type) {
        case css_what_1.SelectorType.PseudoElement: {
          throw new Error("Pseudo-elements are not supported by css-select");
        }
        case css_what_1.SelectorType.ColumnCombinator: {
          throw new Error("Column combinators are not yet supported by css-select");
        }
        case css_what_1.SelectorType.Attribute: {
          if (selector.namespace != null) {
            throw new Error("Namespaced attributes are not yet supported by css-select");
          }
          if (!options.xmlMode || options.lowerCaseAttributeNames) {
            selector.name = selector.name.toLowerCase();
          }
          return attributes_js_1.attributeRules[selector.action](next, selector, options);
        }
        case css_what_1.SelectorType.Pseudo: {
          return (0, index_js_1.compilePseudoSelector)(next, selector, options, context, compileToken);
        }
        // Tags
        case css_what_1.SelectorType.Tag: {
          if (selector.namespace != null) {
            throw new Error("Namespaced tag names are not yet supported by css-select");
          }
          var name_1 = selector.name;
          if (!options.xmlMode || options.lowerCaseTags) {
            name_1 = name_1.toLowerCase();
          }
          return function tag(elem) {
            return adapter2.getName(elem) === name_1 && next(elem);
          };
        }
        // Traversal
        case css_what_1.SelectorType.Descendant: {
          if (options.cacheResults === false || typeof WeakSet === "undefined") {
            return function descendant(elem) {
              var current = elem;
              while (current = getElementParent(current, adapter2)) {
                if (next(current)) {
                  return true;
                }
              }
              return false;
            };
          }
          var isFalseCache_1 = /* @__PURE__ */ new WeakSet();
          return function cachedDescendant(elem) {
            var current = elem;
            while (current = getElementParent(current, adapter2)) {
              if (!isFalseCache_1.has(current)) {
                if (adapter2.isTag(current) && next(current)) {
                  return true;
                }
                isFalseCache_1.add(current);
              }
            }
            return false;
          };
        }
        case "_flexibleDescendant": {
          return function flexibleDescendant(elem) {
            var current = elem;
            do {
              if (next(current))
                return true;
            } while (current = getElementParent(current, adapter2));
            return false;
          };
        }
        case css_what_1.SelectorType.Parent: {
          return function parent(elem) {
            return adapter2.getChildren(elem).some(function(elem2) {
              return adapter2.isTag(elem2) && next(elem2);
            });
          };
        }
        case css_what_1.SelectorType.Child: {
          return function child(elem) {
            var parent = adapter2.getParent(elem);
            return parent != null && adapter2.isTag(parent) && next(parent);
          };
        }
        case css_what_1.SelectorType.Sibling: {
          return function sibling(elem) {
            var siblings = adapter2.getSiblings(elem);
            for (var i5 = 0; i5 < siblings.length; i5++) {
              var currentSibling = siblings[i5];
              if (equals(elem, currentSibling))
                break;
              if (adapter2.isTag(currentSibling) && next(currentSibling)) {
                return true;
              }
            }
            return false;
          };
        }
        case css_what_1.SelectorType.Adjacent: {
          if (adapter2.prevElementSibling) {
            return function adjacent(elem) {
              var previous = adapter2.prevElementSibling(elem);
              return previous != null && next(previous);
            };
          }
          return function adjacent(elem) {
            var siblings = adapter2.getSiblings(elem);
            var lastElement;
            for (var i5 = 0; i5 < siblings.length; i5++) {
              var currentSibling = siblings[i5];
              if (equals(elem, currentSibling))
                break;
              if (adapter2.isTag(currentSibling)) {
                lastElement = currentSibling;
              }
            }
            return !!lastElement && next(lastElement);
          };
        }
        case css_what_1.SelectorType.Universal: {
          if (selector.namespace != null && selector.namespace !== "*") {
            throw new Error("Namespaced universal selectors are not yet supported by css-select");
          }
          return next;
        }
      }
    }
    exports.compileGeneralSelector = compileGeneralSelector;
  }
});

// ../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/compile.js
var require_compile2 = __commonJS({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/compile.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.compileToken = exports.compileUnsafe = exports.compile = void 0;
    var css_what_1 = require_commonjs();
    var boolbase_1 = __importDefault2(require_boolbase());
    var sort_js_1 = __importStar2(require_sort());
    var general_js_1 = require_general();
    var subselects_js_1 = require_subselects();
    function compile(selector, options, context) {
      var next = compileUnsafe(selector, options, context);
      return (0, subselects_js_1.ensureIsTag)(next, options.adapter);
    }
    exports.compile = compile;
    function compileUnsafe(selector, options, context) {
      var token = typeof selector === "string" ? (0, css_what_1.parse)(selector) : selector;
      return compileToken(token, options, context);
    }
    exports.compileUnsafe = compileUnsafe;
    function includesScopePseudo(t4) {
      return t4.type === css_what_1.SelectorType.Pseudo && (t4.name === "scope" || Array.isArray(t4.data) && t4.data.some(function(data2) {
        return data2.some(includesScopePseudo);
      }));
    }
    var DESCENDANT_TOKEN = { type: css_what_1.SelectorType.Descendant };
    var FLEXIBLE_DESCENDANT_TOKEN = {
      type: "_flexibleDescendant"
    };
    var SCOPE_TOKEN = {
      type: css_what_1.SelectorType.Pseudo,
      name: "scope",
      data: null
    };
    function absolutize(token, _a2, context) {
      var adapter2 = _a2.adapter;
      var hasContext = !!(context === null || context === void 0 ? void 0 : context.every(function(e4) {
        var parent = adapter2.isTag(e4) && adapter2.getParent(e4);
        return e4 === subselects_js_1.PLACEHOLDER_ELEMENT || parent && adapter2.isTag(parent);
      }));
      for (var _i = 0, token_1 = token; _i < token_1.length; _i++) {
        var t4 = token_1[_i];
        if (t4.length > 0 && (0, sort_js_1.isTraversal)(t4[0]) && t4[0].type !== css_what_1.SelectorType.Descendant) {
        } else if (hasContext && !t4.some(includesScopePseudo)) {
          t4.unshift(DESCENDANT_TOKEN);
        } else {
          continue;
        }
        t4.unshift(SCOPE_TOKEN);
      }
    }
    function compileToken(token, options, context) {
      var _a2;
      token.forEach(sort_js_1.default);
      context = (_a2 = options.context) !== null && _a2 !== void 0 ? _a2 : context;
      var isArrayContext = Array.isArray(context);
      var finalContext = context && (Array.isArray(context) ? context : [context]);
      if (options.relativeSelector !== false) {
        absolutize(token, options, finalContext);
      } else if (token.some(function(t4) {
        return t4.length > 0 && (0, sort_js_1.isTraversal)(t4[0]);
      })) {
        throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled");
      }
      var shouldTestNextSiblings = false;
      var query = token.map(function(rules) {
        if (rules.length >= 2) {
          var first = rules[0], second = rules[1];
          if (first.type !== css_what_1.SelectorType.Pseudo || first.name !== "scope") {
          } else if (isArrayContext && second.type === css_what_1.SelectorType.Descendant) {
            rules[1] = FLEXIBLE_DESCENDANT_TOKEN;
          } else if (second.type === css_what_1.SelectorType.Adjacent || second.type === css_what_1.SelectorType.Sibling) {
            shouldTestNextSiblings = true;
          }
        }
        return compileRules(rules, options, finalContext);
      }).reduce(reduceRules, boolbase_1.default.falseFunc);
      query.shouldTestNextSiblings = shouldTestNextSiblings;
      return query;
    }
    exports.compileToken = compileToken;
    function compileRules(rules, options, context) {
      var _a2;
      return rules.reduce(function(previous, rule) {
        return previous === boolbase_1.default.falseFunc ? boolbase_1.default.falseFunc : (0, general_js_1.compileGeneralSelector)(previous, rule, options, context, compileToken);
      }, (_a2 = options.rootFunc) !== null && _a2 !== void 0 ? _a2 : boolbase_1.default.trueFunc);
    }
    function reduceRules(a5, b3) {
      if (b3 === boolbase_1.default.falseFunc || a5 === boolbase_1.default.trueFunc) {
        return a5;
      }
      if (a5 === boolbase_1.default.falseFunc || b3 === boolbase_1.default.trueFunc) {
        return b3;
      }
      return function combine(elem) {
        return a5(elem) || b3(elem);
      };
    }
  }
});

// ../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/index.js
var require_lib9 = __commonJS({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.aliases = exports.pseudos = exports.filters = exports.is = exports.selectOne = exports.selectAll = exports.prepareContext = exports._compileToken = exports._compileUnsafe = exports.compile = void 0;
    var DomUtils = __importStar2(require_lib7());
    var boolbase_1 = __importDefault2(require_boolbase());
    var compile_js_1 = require_compile2();
    var subselects_js_1 = require_subselects();
    var defaultEquals = function(a5, b3) {
      return a5 === b3;
    };
    var defaultOptions2 = {
      adapter: DomUtils,
      equals: defaultEquals
    };
    function convertOptionFormats(options) {
      var _a2, _b2, _c, _d;
      var opts2 = options !== null && options !== void 0 ? options : defaultOptions2;
      (_a2 = opts2.adapter) !== null && _a2 !== void 0 ? _a2 : opts2.adapter = DomUtils;
      (_b2 = opts2.equals) !== null && _b2 !== void 0 ? _b2 : opts2.equals = (_d = (_c = opts2.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals;
      return opts2;
    }
    function wrapCompile(func) {
      return function addAdapter(selector, options, context) {
        var opts2 = convertOptionFormats(options);
        return func(selector, opts2, context);
      };
    }
    exports.compile = wrapCompile(compile_js_1.compile);
    exports._compileUnsafe = wrapCompile(compile_js_1.compileUnsafe);
    exports._compileToken = wrapCompile(compile_js_1.compileToken);
    function getSelectorFunc(searchFunc) {
      return function select(query, elements, options) {
        var opts2 = convertOptionFormats(options);
        if (typeof query !== "function") {
          query = (0, compile_js_1.compileUnsafe)(query, opts2, elements);
        }
        var filteredElements = prepareContext(elements, opts2.adapter, query.shouldTestNextSiblings);
        return searchFunc(query, filteredElements, opts2);
      };
    }
    function prepareContext(elems, adapter2, shouldTestNextSiblings) {
      if (shouldTestNextSiblings === void 0) {
        shouldTestNextSiblings = false;
      }
      if (shouldTestNextSiblings) {
        elems = appendNextSiblings(elems, adapter2);
      }
      return Array.isArray(elems) ? adapter2.removeSubsets(elems) : adapter2.getChildren(elems);
    }
    exports.prepareContext = prepareContext;
    function appendNextSiblings(elem, adapter2) {
      var elems = Array.isArray(elem) ? elem.slice(0) : [elem];
      var elemsLength = elems.length;
      for (var i5 = 0; i5 < elemsLength; i5++) {
        var nextSiblings = (0, subselects_js_1.getNextSiblings)(elems[i5], adapter2);
        elems.push.apply(elems, nextSiblings);
      }
      return elems;
    }
    exports.selectAll = getSelectorFunc(function(query, elems, options) {
      return query === boolbase_1.default.falseFunc || !elems || elems.length === 0 ? [] : options.adapter.findAll(query, elems);
    });
    exports.selectOne = getSelectorFunc(function(query, elems, options) {
      return query === boolbase_1.default.falseFunc || !elems || elems.length === 0 ? null : options.adapter.findOne(query, elems);
    });
    function is3(elem, query, options) {
      var opts2 = convertOptionFormats(options);
      return (typeof query === "function" ? query : (0, compile_js_1.compile)(query, opts2))(elem);
    }
    exports.is = is3;
    exports.default = exports.selectAll;
    var index_js_1 = require_pseudo_selectors();
    Object.defineProperty(exports, "filters", { enumerable: true, get: function() {
      return index_js_1.filters;
    } });
    Object.defineProperty(exports, "pseudos", { enumerable: true, get: function() {
      return index_js_1.pseudos;
    } });
    Object.defineProperty(exports, "aliases", { enumerable: true, get: function() {
      return index_js_1.aliases;
    } });
  }
});

// ../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/positionals.js
var require_positionals = __commonJS({
  "../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/positionals.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getLimit = exports.isFilter = exports.filterNames = void 0;
    exports.filterNames = /* @__PURE__ */ new Set([
      "first",
      "last",
      "eq",
      "gt",
      "nth",
      "lt",
      "even",
      "odd"
    ]);
    function isFilter(s4) {
      if (s4.type !== "pseudo")
        return false;
      if (exports.filterNames.has(s4.name))
        return true;
      if (s4.name === "not" && Array.isArray(s4.data)) {
        return s4.data.some(function(s5) {
          return s5.some(isFilter);
        });
      }
      return false;
    }
    exports.isFilter = isFilter;
    function getLimit(filter3, data2, partLimit) {
      var num = data2 != null ? parseInt(data2, 10) : NaN;
      switch (filter3) {
        case "first":
          return 1;
        case "nth":
        case "eq":
          return isFinite(num) ? num >= 0 ? num + 1 : Infinity : 0;
        case "lt":
          return isFinite(num) ? num >= 0 ? Math.min(num, partLimit) : Infinity : 0;
        case "gt":
          return isFinite(num) ? Infinity : 0;
        case "odd":
          return 2 * partLimit;
        case "even":
          return 2 * partLimit - 1;
        case "last":
        case "not":
          return Infinity;
      }
    }
    exports.getLimit = getLimit;
  }
});

// ../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/helpers.js
var require_helpers2 = __commonJS({
  "../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/helpers.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.groupSelectors = exports.getDocumentRoot = void 0;
    var positionals_js_1 = require_positionals();
    function getDocumentRoot(node) {
      while (node.parent)
        node = node.parent;
      return node;
    }
    exports.getDocumentRoot = getDocumentRoot;
    function groupSelectors(selectors) {
      var filteredSelectors = [];
      var plainSelectors = [];
      for (var _i = 0, selectors_1 = selectors; _i < selectors_1.length; _i++) {
        var selector = selectors_1[_i];
        if (selector.some(positionals_js_1.isFilter)) {
          filteredSelectors.push(selector);
        } else {
          plainSelectors.push(selector);
        }
      }
      return [plainSelectors, filteredSelectors];
    }
    exports.groupSelectors = groupSelectors;
  }
});

// ../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/index.js
var require_lib10 = __commonJS({
  "../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/index.js"(exports) {
    "use strict";
    var __assign2 = exports && exports.__assign || function() {
      __assign2 = Object.assign || function(t4) {
        for (var s4, i5 = 1, n6 = arguments.length; i5 < n6; i5++) {
          s4 = arguments[i5];
          for (var p3 in s4) if (Object.prototype.hasOwnProperty.call(s4, p3))
            t4[p3] = s4[p3];
        }
        return t4;
      };
      return __assign2.apply(this, arguments);
    };
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __spreadArray2 = exports && exports.__spreadArray || function(to, from, pack) {
      if (pack || arguments.length === 2) for (var i5 = 0, l4 = from.length, ar; i5 < l4; i5++) {
        if (ar || !(i5 in from)) {
          if (!ar) ar = Array.prototype.slice.call(from, 0, i5);
          ar[i5] = from[i5];
        }
      }
      return to.concat(ar || Array.prototype.slice.call(from));
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.select = exports.filter = exports.some = exports.is = exports.aliases = exports.pseudos = exports.filters = void 0;
    var css_what_1 = require_commonjs();
    var css_select_1 = require_lib9();
    var DomUtils = __importStar2(require_lib7());
    var boolbase = __importStar2(require_boolbase());
    var helpers_js_1 = require_helpers2();
    var positionals_js_1 = require_positionals();
    var css_select_2 = require_lib9();
    Object.defineProperty(exports, "filters", { enumerable: true, get: function() {
      return css_select_2.filters;
    } });
    Object.defineProperty(exports, "pseudos", { enumerable: true, get: function() {
      return css_select_2.pseudos;
    } });
    Object.defineProperty(exports, "aliases", { enumerable: true, get: function() {
      return css_select_2.aliases;
    } });
    var UNIVERSAL_SELECTOR = {
      type: css_what_1.SelectorType.Universal,
      namespace: null
    };
    var SCOPE_PSEUDO = {
      type: css_what_1.SelectorType.Pseudo,
      name: "scope",
      data: null
    };
    function is3(element, selector, options) {
      if (options === void 0) {
        options = {};
      }
      return some([element], selector, options);
    }
    exports.is = is3;
    function some(elements, selector, options) {
      if (options === void 0) {
        options = {};
      }
      if (typeof selector === "function")
        return elements.some(selector);
      var _a2 = (0, helpers_js_1.groupSelectors)((0, css_what_1.parse)(selector)), plain = _a2[0], filtered = _a2[1];
      return plain.length > 0 && elements.some((0, css_select_1._compileToken)(plain, options)) || filtered.some(function(sel) {
        return filterBySelector(sel, elements, options).length > 0;
      });
    }
    exports.some = some;
    function filterByPosition(filter4, elems, data2, options) {
      var num = typeof data2 === "string" ? parseInt(data2, 10) : NaN;
      switch (filter4) {
        case "first":
        case "lt":
          return elems;
        case "last":
          return elems.length > 0 ? [elems[elems.length - 1]] : elems;
        case "nth":
        case "eq":
          return isFinite(num) && Math.abs(num) < elems.length ? [num < 0 ? elems[elems.length + num] : elems[num]] : [];
        case "gt":
          return isFinite(num) ? elems.slice(num + 1) : [];
        case "even":
          return elems.filter(function(_, i5) {
            return i5 % 2 === 0;
          });
        case "odd":
          return elems.filter(function(_, i5) {
            return i5 % 2 === 1;
          });
        case "not": {
          var filtered_1 = new Set(filterParsed(data2, elems, options));
          return elems.filter(function(e4) {
            return !filtered_1.has(e4);
          });
        }
      }
    }
    function filter3(selector, elements, options) {
      if (options === void 0) {
        options = {};
      }
      return filterParsed((0, css_what_1.parse)(selector), elements, options);
    }
    exports.filter = filter3;
    function filterParsed(selector, elements, options) {
      if (elements.length === 0)
        return [];
      var _a2 = (0, helpers_js_1.groupSelectors)(selector), plainSelectors = _a2[0], filteredSelectors = _a2[1];
      var found;
      if (plainSelectors.length) {
        var filtered = filterElements(elements, plainSelectors, options);
        if (filteredSelectors.length === 0) {
          return filtered;
        }
        if (filtered.length) {
          found = new Set(filtered);
        }
      }
      for (var i5 = 0; i5 < filteredSelectors.length && (found === null || found === void 0 ? void 0 : found.size) !== elements.length; i5++) {
        var filteredSelector = filteredSelectors[i5];
        var missing = found ? elements.filter(function(e4) {
          return DomUtils.isTag(e4) && !found.has(e4);
        }) : elements;
        if (missing.length === 0)
          break;
        var filtered = filterBySelector(filteredSelector, elements, options);
        if (filtered.length) {
          if (!found) {
            if (i5 === filteredSelectors.length - 1) {
              return filtered;
            }
            found = new Set(filtered);
          } else {
            filtered.forEach(function(el) {
              return found.add(el);
            });
          }
        }
      }
      return typeof found !== "undefined" ? found.size === elements.length ? elements : (
        // Filter elements to preserve order
        elements.filter(function(el) {
          return found.has(el);
        })
      ) : [];
    }
    function filterBySelector(selector, elements, options) {
      var _a2;
      if (selector.some(css_what_1.isTraversal)) {
        var root = (_a2 = options.root) !== null && _a2 !== void 0 ? _a2 : (0, helpers_js_1.getDocumentRoot)(elements[0]);
        var opts2 = __assign2(__assign2({}, options), { context: elements, relativeSelector: false });
        selector.push(SCOPE_PSEUDO);
        return findFilterElements(root, selector, opts2, true, elements.length);
      }
      return findFilterElements(elements, selector, options, false, elements.length);
    }
    function select(selector, root, options, limit) {
      if (options === void 0) {
        options = {};
      }
      if (limit === void 0) {
        limit = Infinity;
      }
      if (typeof selector === "function") {
        return find(root, selector);
      }
      var _a2 = (0, helpers_js_1.groupSelectors)((0, css_what_1.parse)(selector)), plain = _a2[0], filtered = _a2[1];
      var results = filtered.map(function(sel) {
        return findFilterElements(root, sel, options, true, limit);
      });
      if (plain.length) {
        results.push(findElements(root, plain, options, limit));
      }
      if (results.length === 0) {
        return [];
      }
      if (results.length === 1) {
        return results[0];
      }
      return DomUtils.uniqueSort(results.reduce(function(a5, b3) {
        return __spreadArray2(__spreadArray2([], a5, true), b3, true);
      }));
    }
    exports.select = select;
    function findFilterElements(root, selector, options, queryForSelector, totalLimit) {
      var filterIndex = selector.findIndex(positionals_js_1.isFilter);
      var sub = selector.slice(0, filterIndex);
      var filter4 = selector[filterIndex];
      var partLimit = selector.length - 1 === filterIndex ? totalLimit : Infinity;
      var limit = (0, positionals_js_1.getLimit)(filter4.name, filter4.data, partLimit);
      if (limit === 0)
        return [];
      var elemsNoLimit = sub.length === 0 && !Array.isArray(root) ? DomUtils.getChildren(root).filter(DomUtils.isTag) : sub.length === 0 ? (Array.isArray(root) ? root : [root]).filter(DomUtils.isTag) : queryForSelector || sub.some(css_what_1.isTraversal) ? findElements(root, [sub], options, limit) : filterElements(root, [sub], options);
      var elems = elemsNoLimit.slice(0, limit);
      var result = filterByPosition(filter4.name, elems, filter4.data, options);
      if (result.length === 0 || selector.length === filterIndex + 1) {
        return result;
      }
      var remainingSelector = selector.slice(filterIndex + 1);
      var remainingHasTraversal = remainingSelector.some(css_what_1.isTraversal);
      if (remainingHasTraversal) {
        if ((0, css_what_1.isTraversal)(remainingSelector[0])) {
          var type = remainingSelector[0].type;
          if (type === css_what_1.SelectorType.Sibling || type === css_what_1.SelectorType.Adjacent) {
            result = (0, css_select_1.prepareContext)(result, DomUtils, true);
          }
          remainingSelector.unshift(UNIVERSAL_SELECTOR);
        }
        options = __assign2(__assign2({}, options), {
          // Avoid absolutizing the selector
          relativeSelector: false,
          /*
           * Add a custom root func, to make sure traversals don't match elements
           * that aren't a part of the considered tree.
           */
          rootFunc: function(el) {
            return result.includes(el);
          }
        });
      } else if (options.rootFunc && options.rootFunc !== boolbase.trueFunc) {
        options = __assign2(__assign2({}, options), { rootFunc: boolbase.trueFunc });
      }
      return remainingSelector.some(positionals_js_1.isFilter) ? findFilterElements(result, remainingSelector, options, false, totalLimit) : remainingHasTraversal ? (
        // Query existing elements to resolve traversal.
        findElements(result, [remainingSelector], options, totalLimit)
      ) : (
        // If we don't have any more traversals, simply filter elements.
        filterElements(result, [remainingSelector], options)
      );
    }
    function findElements(root, sel, options, limit) {
      var query = (0, css_select_1._compileToken)(sel, options, root);
      return find(root, query, limit);
    }
    function find(root, query, limit) {
      if (limit === void 0) {
        limit = Infinity;
      }
      var elems = (0, css_select_1.prepareContext)(root, DomUtils, query.shouldTestNextSiblings);
      return DomUtils.find(function(node) {
        return DomUtils.isTag(node) && query(node);
      }, elems, true, limit);
    }
    function filterElements(elements, sel, options) {
      var els = (Array.isArray(elements) ? elements : [elements]).filter(DomUtils.isTag);
      if (els.length === 0)
        return els;
      var query = (0, css_select_1._compileToken)(sel, options);
      return query === boolbase.trueFunc ? els : els.filter(query);
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/traversing.js
var require_traversing = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/traversing.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __spreadArray2 = exports && exports.__spreadArray || function(to, from, pack) {
      if (pack || arguments.length === 2) for (var i5 = 0, l4 = from.length, ar; i5 < l4; i5++) {
        if (ar || !(i5 in from)) {
          if (!ar) ar = Array.prototype.slice.call(from, 0, i5);
          ar[i5] = from[i5];
        }
      }
      return to.concat(ar || Array.prototype.slice.call(from));
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.addBack = exports.add = exports.end = exports.slice = exports.index = exports.toArray = exports.get = exports.eq = exports.last = exports.first = exports.has = exports.not = exports.is = exports.filterArray = exports.filter = exports.map = exports.each = exports.contents = exports.children = exports.siblings = exports.prevUntil = exports.prevAll = exports.prev = exports.nextUntil = exports.nextAll = exports.next = exports.closest = exports.parentsUntil = exports.parents = exports.parent = exports.find = void 0;
    var domhandler_1 = require_lib4();
    var select = __importStar2(require_lib10());
    var utils_js_1 = require_utils4();
    var static_js_1 = require_static();
    var domutils_1 = require_lib7();
    var reSiblingSelector = /^\s*[~+]/;
    function find(selectorOrHaystack) {
      var _a2;
      if (!selectorOrHaystack) {
        return this._make([]);
      }
      var context = this.toArray();
      if (typeof selectorOrHaystack !== "string") {
        var haystack = (0, utils_js_1.isCheerio)(selectorOrHaystack) ? selectorOrHaystack.toArray() : [selectorOrHaystack];
        return this._make(haystack.filter(function(elem) {
          return context.some(function(node) {
            return (0, static_js_1.contains)(node, elem);
          });
        }));
      }
      var elems = reSiblingSelector.test(selectorOrHaystack) ? context : this.children().toArray();
      var options = {
        context,
        root: (_a2 = this._root) === null || _a2 === void 0 ? void 0 : _a2[0],
        // Pass options that are recognized by `cheerio-select`
        xmlMode: this.options.xmlMode,
        lowerCaseTags: this.options.lowerCaseTags,
        lowerCaseAttributeNames: this.options.lowerCaseAttributeNames,
        pseudos: this.options.pseudos,
        quirksMode: this.options.quirksMode
      };
      return this._make(select.select(selectorOrHaystack, elems, options));
    }
    exports.find = find;
    function _getMatcher(matchMap) {
      return function(fn) {
        var postFns = [];
        for (var _i = 1; _i < arguments.length; _i++) {
          postFns[_i - 1] = arguments[_i];
        }
        return function(selector) {
          var _a2;
          var matched = matchMap(fn, this);
          if (selector) {
            matched = filterArray(matched, selector, this.options.xmlMode, (_a2 = this._root) === null || _a2 === void 0 ? void 0 : _a2[0]);
          }
          return this._make(
            // Post processing is only necessary if there is more than one element.
            this.length > 1 && matched.length > 1 ? postFns.reduce(function(elems, fn2) {
              return fn2(elems);
            }, matched) : matched
          );
        };
      };
    }
    var _matcher = _getMatcher(function(fn, elems) {
      var _a2;
      var ret = [];
      for (var i5 = 0; i5 < elems.length; i5++) {
        var value2 = fn(elems[i5]);
        ret.push(value2);
      }
      return (_a2 = new Array()).concat.apply(_a2, ret);
    });
    var _singleMatcher = _getMatcher(function(fn, elems) {
      var ret = [];
      for (var i5 = 0; i5 < elems.length; i5++) {
        var value2 = fn(elems[i5]);
        if (value2 !== null) {
          ret.push(value2);
        }
      }
      return ret;
    });
    function _matchUntil(nextElem) {
      var postFns = [];
      for (var _i = 1; _i < arguments.length; _i++) {
        postFns[_i - 1] = arguments[_i];
      }
      var matches = null;
      var innerMatcher = _getMatcher(function(nextElem2, elems) {
        var matched = [];
        (0, utils_js_1.domEach)(elems, function(elem) {
          for (var next_1; next_1 = nextElem2(elem); elem = next_1) {
            if (matches === null || matches === void 0 ? void 0 : matches(next_1, matched.length))
              break;
            matched.push(next_1);
          }
        });
        return matched;
      }).apply(void 0, __spreadArray2([nextElem], postFns, false));
      return function(selector, filterSelector) {
        var _this = this;
        matches = typeof selector === "string" ? function(elem) {
          return select.is(elem, selector, _this.options);
        } : selector ? getFilterFn(selector) : null;
        var ret = innerMatcher.call(this, filterSelector);
        matches = null;
        return ret;
      };
    }
    function _removeDuplicates(elems) {
      return Array.from(new Set(elems));
    }
    exports.parent = _singleMatcher(function(_a2) {
      var parent = _a2.parent;
      return parent && !(0, domhandler_1.isDocument)(parent) ? parent : null;
    }, _removeDuplicates);
    exports.parents = _matcher(function(elem) {
      var matched = [];
      while (elem.parent && !(0, domhandler_1.isDocument)(elem.parent)) {
        matched.push(elem.parent);
        elem = elem.parent;
      }
      return matched;
    }, domutils_1.uniqueSort, function(elems) {
      return elems.reverse();
    });
    exports.parentsUntil = _matchUntil(function(_a2) {
      var parent = _a2.parent;
      return parent && !(0, domhandler_1.isDocument)(parent) ? parent : null;
    }, domutils_1.uniqueSort, function(elems) {
      return elems.reverse();
    });
    function closest(selector) {
      var _a2;
      var set = [];
      if (!selector) {
        return this._make(set);
      }
      var selectOpts = {
        xmlMode: this.options.xmlMode,
        root: (_a2 = this._root) === null || _a2 === void 0 ? void 0 : _a2[0]
      };
      var selectFn = typeof selector === "string" ? function(elem) {
        return select.is(elem, selector, selectOpts);
      } : getFilterFn(selector);
      (0, utils_js_1.domEach)(this, function(elem) {
        while (elem && (0, utils_js_1.isTag)(elem)) {
          if (selectFn(elem, 0)) {
            if (!set.includes(elem)) {
              set.push(elem);
            }
            break;
          }
          elem = elem.parent;
        }
      });
      return this._make(set);
    }
    exports.closest = closest;
    exports.next = _singleMatcher(function(elem) {
      return (0, domutils_1.nextElementSibling)(elem);
    });
    exports.nextAll = _matcher(function(elem) {
      var matched = [];
      while (elem.next) {
        elem = elem.next;
        if ((0, utils_js_1.isTag)(elem))
          matched.push(elem);
      }
      return matched;
    }, _removeDuplicates);
    exports.nextUntil = _matchUntil(function(el) {
      return (0, domutils_1.nextElementSibling)(el);
    }, _removeDuplicates);
    exports.prev = _singleMatcher(function(elem) {
      return (0, domutils_1.prevElementSibling)(elem);
    });
    exports.prevAll = _matcher(function(elem) {
      var matched = [];
      while (elem.prev) {
        elem = elem.prev;
        if ((0, utils_js_1.isTag)(elem))
          matched.push(elem);
      }
      return matched;
    }, _removeDuplicates);
    exports.prevUntil = _matchUntil(function(el) {
      return (0, domutils_1.prevElementSibling)(el);
    }, _removeDuplicates);
    exports.siblings = _matcher(function(elem) {
      return (0, domutils_1.getSiblings)(elem).filter(function(el) {
        return (0, utils_js_1.isTag)(el) && el !== elem;
      });
    }, domutils_1.uniqueSort);
    exports.children = _matcher(function(elem) {
      return (0, domutils_1.getChildren)(elem).filter(utils_js_1.isTag);
    }, _removeDuplicates);
    function contents() {
      var elems = this.toArray().reduce(function(newElems, elem) {
        return (0, domhandler_1.hasChildren)(elem) ? newElems.concat(elem.children) : newElems;
      }, []);
      return this._make(elems);
    }
    exports.contents = contents;
    function each(fn) {
      var i5 = 0;
      var len = this.length;
      while (i5 < len && fn.call(this[i5], i5, this[i5]) !== false)
        ++i5;
      return this;
    }
    exports.each = each;
    function map(fn) {
      var elems = [];
      for (var i5 = 0; i5 < this.length; i5++) {
        var el = this[i5];
        var val = fn.call(el, i5, el);
        if (val != null) {
          elems = elems.concat(val);
        }
      }
      return this._make(elems);
    }
    exports.map = map;
    function getFilterFn(match) {
      if (typeof match === "function") {
        return function(el, i5) {
          return match.call(el, i5, el);
        };
      }
      if ((0, utils_js_1.isCheerio)(match)) {
        return function(el) {
          return Array.prototype.includes.call(match, el);
        };
      }
      return function(el) {
        return match === el;
      };
    }
    function filter3(match) {
      var _a2;
      return this._make(filterArray(this.toArray(), match, this.options.xmlMode, (_a2 = this._root) === null || _a2 === void 0 ? void 0 : _a2[0]));
    }
    exports.filter = filter3;
    function filterArray(nodes, match, xmlMode, root) {
      return typeof match === "string" ? select.filter(match, nodes, { xmlMode, root }) : nodes.filter(getFilterFn(match));
    }
    exports.filterArray = filterArray;
    function is3(selector) {
      var nodes = this.toArray();
      return typeof selector === "string" ? select.some(nodes.filter(utils_js_1.isTag), selector, this.options) : selector ? nodes.some(getFilterFn(selector)) : false;
    }
    exports.is = is3;
    function not2(match) {
      var nodes = this.toArray();
      if (typeof match === "string") {
        var matches_1 = new Set(select.filter(match, nodes, this.options));
        nodes = nodes.filter(function(el) {
          return !matches_1.has(el);
        });
      } else {
        var filterFn_1 = getFilterFn(match);
        nodes = nodes.filter(function(el, i5) {
          return !filterFn_1(el, i5);
        });
      }
      return this._make(nodes);
    }
    exports.not = not2;
    function has(selectorOrHaystack) {
      var _this = this;
      return this.filter(typeof selectorOrHaystack === "string" ? (
        // Using the `:has` selector here short-circuits searches.
        ":has(".concat(selectorOrHaystack, ")")
      ) : function(_, el) {
        return _this._make(el).find(selectorOrHaystack).length > 0;
      });
    }
    exports.has = has;
    function first() {
      return this.length > 1 ? this._make(this[0]) : this;
    }
    exports.first = first;
    function last2() {
      return this.length > 0 ? this._make(this[this.length - 1]) : this;
    }
    exports.last = last2;
    function eq(i5) {
      var _a2;
      i5 = +i5;
      if (i5 === 0 && this.length <= 1)
        return this;
      if (i5 < 0)
        i5 = this.length + i5;
      return this._make((_a2 = this[i5]) !== null && _a2 !== void 0 ? _a2 : []);
    }
    exports.eq = eq;
    function get(i5) {
      if (i5 == null) {
        return this.toArray();
      }
      return this[i5 < 0 ? this.length + i5 : i5];
    }
    exports.get = get;
    function toArray2() {
      return Array.prototype.slice.call(this);
    }
    exports.toArray = toArray2;
    function index2(selectorOrNeedle) {
      var $haystack;
      var needle;
      if (selectorOrNeedle == null) {
        $haystack = this.parent().children();
        needle = this[0];
      } else if (typeof selectorOrNeedle === "string") {
        $haystack = this._make(selectorOrNeedle);
        needle = this[0];
      } else {
        $haystack = this;
        needle = (0, utils_js_1.isCheerio)(selectorOrNeedle) ? selectorOrNeedle[0] : selectorOrNeedle;
      }
      return Array.prototype.indexOf.call($haystack, needle);
    }
    exports.index = index2;
    function slice2(start2, end3) {
      return this._make(Array.prototype.slice.call(this, start2, end3));
    }
    exports.slice = slice2;
    function end2() {
      var _a2;
      return (_a2 = this.prevObject) !== null && _a2 !== void 0 ? _a2 : this._make([]);
    }
    exports.end = end2;
    function add2(other, context) {
      var selection = this._make(other, context);
      var contents2 = (0, domutils_1.uniqueSort)(__spreadArray2(__spreadArray2([], this.get(), true), selection.get(), true));
      return this._make(contents2);
    }
    exports.add = add2;
    function addBack(selector) {
      return this.prevObject ? this.add(selector ? this.prevObject.filter(selector) : this.prevObject) : this;
    }
    exports.addBack = addBack;
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/parse.js
var require_parse4 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/parse.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.update = exports.getParse = void 0;
    var domutils_1 = require_lib7();
    var domhandler_1 = require_lib4();
    function getParse(parser) {
      return function parse3(content, options, isDocument, context) {
        if (typeof Buffer !== "undefined" && Buffer.isBuffer(content)) {
          content = content.toString();
        }
        if (typeof content === "string") {
          return parser(content, options, isDocument, context);
        }
        var doc = content;
        if (!Array.isArray(doc) && (0, domhandler_1.isDocument)(doc)) {
          return doc;
        }
        var root = new domhandler_1.Document([]);
        update(doc, root);
        return root;
      };
    }
    exports.getParse = getParse;
    function update(newChilds, parent) {
      var arr = Array.isArray(newChilds) ? newChilds : [newChilds];
      if (parent) {
        parent.children = arr;
      } else {
        parent = null;
      }
      for (var i5 = 0; i5 < arr.length; i5++) {
        var node = arr[i5];
        if (node.parent && node.parent.children !== arr) {
          (0, domutils_1.removeElement)(node);
        }
        if (parent) {
          node.prev = arr[i5 - 1] || null;
          node.next = arr[i5 + 1] || null;
        } else {
          node.prev = node.next = null;
        }
        node.parent = parent;
      }
      return parent;
    }
    exports.update = update;
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/manipulation.js
var require_manipulation2 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/manipulation.js"(exports) {
    "use strict";
    var __spreadArray2 = exports && exports.__spreadArray || function(to, from, pack) {
      if (pack || arguments.length === 2) for (var i5 = 0, l4 = from.length, ar; i5 < l4; i5++) {
        if (ar || !(i5 in from)) {
          if (!ar) ar = Array.prototype.slice.call(from, 0, i5);
          ar[i5] = from[i5];
        }
      }
      return to.concat(ar || Array.prototype.slice.call(from));
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.clone = exports.text = exports.toString = exports.html = exports.empty = exports.replaceWith = exports.remove = exports.insertBefore = exports.before = exports.insertAfter = exports.after = exports.wrapAll = exports.unwrap = exports.wrapInner = exports.wrap = exports.prepend = exports.append = exports.prependTo = exports.appendTo = exports._makeDomArray = void 0;
    var domhandler_1 = require_lib4();
    var parse_js_1 = require_parse4();
    var static_js_1 = require_static();
    var utils_js_1 = require_utils4();
    var domutils_1 = require_lib7();
    function _makeDomArray(elem, clone2) {
      var _this = this;
      if (elem == null) {
        return [];
      }
      if ((0, utils_js_1.isCheerio)(elem)) {
        return clone2 ? (0, utils_js_1.cloneDom)(elem.get()) : elem.get();
      }
      if (Array.isArray(elem)) {
        return elem.reduce(function(newElems, el) {
          return newElems.concat(_this._makeDomArray(el, clone2));
        }, []);
      }
      if (typeof elem === "string") {
        return this._parse(elem, this.options, false, null).children;
      }
      return clone2 ? (0, utils_js_1.cloneDom)([elem]) : [elem];
    }
    exports._makeDomArray = _makeDomArray;
    function _insert(concatenator) {
      return function() {
        var _this = this;
        var elems = [];
        for (var _i = 0; _i < arguments.length; _i++) {
          elems[_i] = arguments[_i];
        }
        var lastIdx = this.length - 1;
        return (0, utils_js_1.domEach)(this, function(el, i5) {
          if (!(0, domhandler_1.hasChildren)(el))
            return;
          var domSrc = typeof elems[0] === "function" ? elems[0].call(el, i5, _this._render(el.children)) : elems;
          var dom = _this._makeDomArray(domSrc, i5 < lastIdx);
          concatenator(dom, el.children, el);
        });
      };
    }
    function uniqueSplice(array, spliceIdx, spliceCount, newElems, parent) {
      var _a2, _b2;
      var spliceArgs = __spreadArray2([
        spliceIdx,
        spliceCount
      ], newElems, true);
      var prev = spliceIdx === 0 ? null : array[spliceIdx - 1];
      var next = spliceIdx + spliceCount >= array.length ? null : array[spliceIdx + spliceCount];
      for (var idx = 0; idx < newElems.length; ++idx) {
        var node = newElems[idx];
        var oldParent = node.parent;
        if (oldParent) {
          var oldSiblings = oldParent.children;
          var prevIdx = oldSiblings.indexOf(node);
          if (prevIdx > -1) {
            oldParent.children.splice(prevIdx, 1);
            if (parent === oldParent && spliceIdx > prevIdx) {
              spliceArgs[0]--;
            }
          }
        }
        node.parent = parent;
        if (node.prev) {
          node.prev.next = (_a2 = node.next) !== null && _a2 !== void 0 ? _a2 : null;
        }
        if (node.next) {
          node.next.prev = (_b2 = node.prev) !== null && _b2 !== void 0 ? _b2 : null;
        }
        node.prev = idx === 0 ? prev : newElems[idx - 1];
        node.next = idx === newElems.length - 1 ? next : newElems[idx + 1];
      }
      if (prev) {
        prev.next = newElems[0];
      }
      if (next) {
        next.prev = newElems[newElems.length - 1];
      }
      return array.splice.apply(array, spliceArgs);
    }
    function appendTo(target) {
      var appendTarget = (0, utils_js_1.isCheerio)(target) ? target : this._make(target);
      appendTarget.append(this);
      return this;
    }
    exports.appendTo = appendTo;
    function prependTo(target) {
      var prependTarget = (0, utils_js_1.isCheerio)(target) ? target : this._make(target);
      prependTarget.prepend(this);
      return this;
    }
    exports.prependTo = prependTo;
    exports.append = _insert(function(dom, children, parent) {
      uniqueSplice(children, children.length, 0, dom, parent);
    });
    exports.prepend = _insert(function(dom, children, parent) {
      uniqueSplice(children, 0, 0, dom, parent);
    });
    function _wrap(insert2) {
      return function(wrapper) {
        var lastIdx = this.length - 1;
        var lastParent = this.parents().last();
        for (var i5 = 0; i5 < this.length; i5++) {
          var el = this[i5];
          var wrap_1 = typeof wrapper === "function" ? wrapper.call(el, i5, el) : typeof wrapper === "string" && !(0, utils_js_1.isHtml)(wrapper) ? lastParent.find(wrapper).clone() : wrapper;
          var wrapperDom = this._makeDomArray(wrap_1, i5 < lastIdx)[0];
          if (!wrapperDom || !(0, domhandler_1.hasChildren)(wrapperDom))
            continue;
          var elInsertLocation = wrapperDom;
          var j = 0;
          while (j < elInsertLocation.children.length) {
            var child = elInsertLocation.children[j];
            if ((0, utils_js_1.isTag)(child)) {
              elInsertLocation = child;
              j = 0;
            } else {
              j++;
            }
          }
          insert2(el, elInsertLocation, [wrapperDom]);
        }
        return this;
      };
    }
    exports.wrap = _wrap(function(el, elInsertLocation, wrapperDom) {
      var parent = el.parent;
      if (!parent)
        return;
      var siblings = parent.children;
      var index2 = siblings.indexOf(el);
      (0, parse_js_1.update)([el], elInsertLocation);
      uniqueSplice(siblings, index2, 0, wrapperDom, parent);
    });
    exports.wrapInner = _wrap(function(el, elInsertLocation, wrapperDom) {
      if (!(0, domhandler_1.hasChildren)(el))
        return;
      (0, parse_js_1.update)(el.children, elInsertLocation);
      (0, parse_js_1.update)(wrapperDom, el);
    });
    function unwrap(selector) {
      var _this = this;
      this.parent(selector).not("body").each(function(_, el) {
        _this._make(el).replaceWith(el.children);
      });
      return this;
    }
    exports.unwrap = unwrap;
    function wrapAll(wrapper) {
      var el = this[0];
      if (el) {
        var wrap_2 = this._make(typeof wrapper === "function" ? wrapper.call(el, 0, el) : wrapper).insertBefore(el);
        var elInsertLocation = void 0;
        for (var i5 = 0; i5 < wrap_2.length; i5++) {
          if (wrap_2[i5].type === "tag")
            elInsertLocation = wrap_2[i5];
        }
        var j = 0;
        while (elInsertLocation && j < elInsertLocation.children.length) {
          var child = elInsertLocation.children[j];
          if (child.type === "tag") {
            elInsertLocation = child;
            j = 0;
          } else {
            j++;
          }
        }
        if (elInsertLocation)
          this._make(elInsertLocation).append(this);
      }
      return this;
    }
    exports.wrapAll = wrapAll;
    function after() {
      var _this = this;
      var elems = [];
      for (var _i = 0; _i < arguments.length; _i++) {
        elems[_i] = arguments[_i];
      }
      var lastIdx = this.length - 1;
      return (0, utils_js_1.domEach)(this, function(el, i5) {
        var parent = el.parent;
        if (!(0, domhandler_1.hasChildren)(el) || !parent) {
          return;
        }
        var siblings = parent.children;
        var index2 = siblings.indexOf(el);
        if (index2 < 0)
          return;
        var domSrc = typeof elems[0] === "function" ? elems[0].call(el, i5, _this._render(el.children)) : elems;
        var dom = _this._makeDomArray(domSrc, i5 < lastIdx);
        uniqueSplice(siblings, index2 + 1, 0, dom, parent);
      });
    }
    exports.after = after;
    function insertAfter(target) {
      var _this = this;
      if (typeof target === "string") {
        target = this._make(target);
      }
      this.remove();
      var clones = [];
      this._makeDomArray(target).forEach(function(el) {
        var clonedSelf = _this.clone().toArray();
        var parent = el.parent;
        if (!parent) {
          return;
        }
        var siblings = parent.children;
        var index2 = siblings.indexOf(el);
        if (index2 < 0)
          return;
        uniqueSplice(siblings, index2 + 1, 0, clonedSelf, parent);
        clones.push.apply(clones, clonedSelf);
      });
      return this._make(clones);
    }
    exports.insertAfter = insertAfter;
    function before() {
      var _this = this;
      var elems = [];
      for (var _i = 0; _i < arguments.length; _i++) {
        elems[_i] = arguments[_i];
      }
      var lastIdx = this.length - 1;
      return (0, utils_js_1.domEach)(this, function(el, i5) {
        var parent = el.parent;
        if (!(0, domhandler_1.hasChildren)(el) || !parent) {
          return;
        }
        var siblings = parent.children;
        var index2 = siblings.indexOf(el);
        if (index2 < 0)
          return;
        var domSrc = typeof elems[0] === "function" ? elems[0].call(el, i5, _this._render(el.children)) : elems;
        var dom = _this._makeDomArray(domSrc, i5 < lastIdx);
        uniqueSplice(siblings, index2, 0, dom, parent);
      });
    }
    exports.before = before;
    function insertBefore2(target) {
      var _this = this;
      var targetArr = this._make(target);
      this.remove();
      var clones = [];
      (0, utils_js_1.domEach)(targetArr, function(el) {
        var clonedSelf = _this.clone().toArray();
        var parent = el.parent;
        if (!parent) {
          return;
        }
        var siblings = parent.children;
        var index2 = siblings.indexOf(el);
        if (index2 < 0)
          return;
        uniqueSplice(siblings, index2, 0, clonedSelf, parent);
        clones.push.apply(clones, clonedSelf);
      });
      return this._make(clones);
    }
    exports.insertBefore = insertBefore2;
    function remove(selector) {
      var elems = selector ? this.filter(selector) : this;
      (0, utils_js_1.domEach)(elems, function(el) {
        (0, domutils_1.removeElement)(el);
        el.prev = el.next = el.parent = null;
      });
      return this;
    }
    exports.remove = remove;
    function replaceWith(content) {
      var _this = this;
      return (0, utils_js_1.domEach)(this, function(el, i5) {
        var parent = el.parent;
        if (!parent) {
          return;
        }
        var siblings = parent.children;
        var cont = typeof content === "function" ? content.call(el, i5, el) : content;
        var dom = _this._makeDomArray(cont);
        (0, parse_js_1.update)(dom, null);
        var index2 = siblings.indexOf(el);
        uniqueSplice(siblings, index2, 1, dom, parent);
        if (!dom.includes(el)) {
          el.parent = el.prev = el.next = null;
        }
      });
    }
    exports.replaceWith = replaceWith;
    function empty2() {
      return (0, utils_js_1.domEach)(this, function(el) {
        if (!(0, domhandler_1.hasChildren)(el))
          return;
        el.children.forEach(function(child) {
          child.next = child.prev = child.parent = null;
        });
        el.children.length = 0;
      });
    }
    exports.empty = empty2;
    function html(str) {
      var _this = this;
      if (str === void 0) {
        var el = this[0];
        if (!el || !(0, domhandler_1.hasChildren)(el))
          return null;
        return this._render(el.children);
      }
      return (0, utils_js_1.domEach)(this, function(el2) {
        if (!(0, domhandler_1.hasChildren)(el2))
          return;
        el2.children.forEach(function(child) {
          child.next = child.prev = child.parent = null;
        });
        var content = (0, utils_js_1.isCheerio)(str) ? str.toArray() : _this._parse("".concat(str), _this.options, false, el2).children;
        (0, parse_js_1.update)(content, el2);
      });
    }
    exports.html = html;
    function toString5() {
      return this._render(this);
    }
    exports.toString = toString5;
    function text(str) {
      var _this = this;
      if (str === void 0) {
        return (0, static_js_1.text)(this);
      }
      if (typeof str === "function") {
        return (0, utils_js_1.domEach)(this, function(el, i5) {
          return _this._make(el).text(str.call(el, i5, (0, static_js_1.text)([el])));
        });
      }
      return (0, utils_js_1.domEach)(this, function(el) {
        if (!(0, domhandler_1.hasChildren)(el))
          return;
        el.children.forEach(function(child) {
          child.next = child.prev = child.parent = null;
        });
        var textNode = new domhandler_1.Text("".concat(str));
        (0, parse_js_1.update)(textNode, el);
      });
    }
    exports.text = text;
    function clone() {
      return this._make((0, utils_js_1.cloneDom)(this.get()));
    }
    exports.clone = clone;
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/css.js
var require_css = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/css.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.css = void 0;
    var utils_js_1 = require_utils4();
    function css(prop, val) {
      if (prop != null && val != null || // When `prop` is a "plain" object
      typeof prop === "object" && !Array.isArray(prop)) {
        return (0, utils_js_1.domEach)(this, function(el, i5) {
          if ((0, utils_js_1.isTag)(el)) {
            setCss(el, prop, val, i5);
          }
        });
      }
      if (this.length === 0) {
        return void 0;
      }
      return getCss(this[0], prop);
    }
    exports.css = css;
    function setCss(el, prop, value2, idx) {
      if (typeof prop === "string") {
        var styles7 = getCss(el);
        var val = typeof value2 === "function" ? value2.call(el, idx, styles7[prop]) : value2;
        if (val === "") {
          delete styles7[prop];
        } else if (val != null) {
          styles7[prop] = val;
        }
        el.attribs["style"] = stringify(styles7);
      } else if (typeof prop === "object") {
        Object.keys(prop).forEach(function(k3, i5) {
          setCss(el, k3, prop[k3], i5);
        });
      }
    }
    function getCss(el, prop) {
      if (!el || !(0, utils_js_1.isTag)(el))
        return;
      var styles7 = parse3(el.attribs["style"]);
      if (typeof prop === "string") {
        return styles7[prop];
      }
      if (Array.isArray(prop)) {
        var newStyles_1 = {};
        prop.forEach(function(item) {
          if (styles7[item] != null) {
            newStyles_1[item] = styles7[item];
          }
        });
        return newStyles_1;
      }
      return styles7;
    }
    function stringify(obj) {
      return Object.keys(obj).reduce(function(str, prop) {
        return "".concat(str).concat(str ? " " : "").concat(prop, ": ").concat(obj[prop], ";");
      }, "");
    }
    function parse3(styles7) {
      styles7 = (styles7 || "").trim();
      if (!styles7)
        return {};
      var obj = {};
      var key;
      for (var _i = 0, _a2 = styles7.split(";"); _i < _a2.length; _i++) {
        var str = _a2[_i];
        var n6 = str.indexOf(":");
        if (n6 < 1 || n6 === str.length - 1) {
          var trimmed = str.trimEnd();
          if (trimmed.length > 0 && key !== void 0) {
            obj[key] += ";".concat(trimmed);
          }
        } else {
          key = str.slice(0, n6).trim();
          obj[key] = str.slice(n6 + 1).trim();
        }
      }
      return obj;
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/forms.js
var require_forms = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/forms.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.serializeArray = exports.serialize = void 0;
    var utils_js_1 = require_utils4();
    var submittableSelector = "input,select,textarea,keygen";
    var r20 = /%20/g;
    var rCRLF = /\r?\n/g;
    function serialize() {
      var arr = this.serializeArray();
      var retArr = arr.map(function(data2) {
        return "".concat(encodeURIComponent(data2.name), "=").concat(encodeURIComponent(data2.value));
      });
      return retArr.join("&").replace(r20, "+");
    }
    exports.serialize = serialize;
    function serializeArray2() {
      var _this = this;
      return this.map(function(_, elem) {
        var $elem = _this._make(elem);
        if ((0, utils_js_1.isTag)(elem) && elem.name === "form") {
          return $elem.find(submittableSelector).toArray();
        }
        return $elem.filter(submittableSelector).toArray();
      }).filter(
        // Verify elements have a name (`attr.name`) and are not disabled (`:enabled`)
        '[name!=""]:enabled:not(:submit, :button, :image, :reset, :file):matches([checked], :not(:checkbox, :radio))'
        // Convert each of the elements to its value(s)
      ).map(function(_, elem) {
        var _a2;
        var $elem = _this._make(elem);
        var name = $elem.attr("name");
        var value2 = (_a2 = $elem.val()) !== null && _a2 !== void 0 ? _a2 : "";
        if (Array.isArray(value2)) {
          return value2.map(function(val) {
            return { name, value: val.replace(rCRLF, "\r\n") };
          });
        }
        return { name, value: value2.replace(rCRLF, "\r\n") };
      }).toArray();
    }
    exports.serializeArray = serializeArray2;
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/cheerio.js
var require_cheerio = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/cheerio.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Cheerio = void 0;
    var Attributes = __importStar2(require_attributes());
    var Traversing = __importStar2(require_traversing());
    var Manipulation = __importStar2(require_manipulation2());
    var Css = __importStar2(require_css());
    var Forms = __importStar2(require_forms());
    var Cheerio = (
      /** @class */
      /* @__PURE__ */ (function() {
        function Cheerio2(elements, root, options) {
          this.length = 0;
          this.options = options;
          this._root = root;
          if (elements) {
            for (var idx = 0; idx < elements.length; idx++) {
              this[idx] = elements[idx];
            }
            this.length = elements.length;
          }
        }
        return Cheerio2;
      })()
    );
    exports.Cheerio = Cheerio;
    Cheerio.prototype.cheerio = "[cheerio object]";
    Cheerio.prototype.splice = Array.prototype.splice;
    Cheerio.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];
    Object.assign(Cheerio.prototype, Attributes, Traversing, Manipulation, Css, Forms);
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/load.js
var require_load = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/load.js"(exports) {
    "use strict";
    var __extends2 = exports && exports.__extends || /* @__PURE__ */ (function() {
      var extendStatics2 = function(d3, b3) {
        extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d4, b4) {
          d4.__proto__ = b4;
        } || function(d4, b4) {
          for (var p3 in b4) if (Object.prototype.hasOwnProperty.call(b4, p3)) d4[p3] = b4[p3];
        };
        return extendStatics2(d3, b3);
      };
      return function(d3, b3) {
        if (typeof b3 !== "function" && b3 !== null)
          throw new TypeError("Class extends value " + String(b3) + " is not a constructor or null");
        extendStatics2(d3, b3);
        function __() {
          this.constructor = d3;
        }
        d3.prototype = b3 === null ? Object.create(b3) : (__.prototype = b3.prototype, new __());
      };
    })();
    var __assign2 = exports && exports.__assign || function() {
      __assign2 = Object.assign || function(t4) {
        for (var s4, i5 = 1, n6 = arguments.length; i5 < n6; i5++) {
          s4 = arguments[i5];
          for (var p3 in s4) if (Object.prototype.hasOwnProperty.call(s4, p3))
            t4[p3] = s4[p3];
        }
        return t4;
      };
      return __assign2.apply(this, arguments);
    };
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getLoad = void 0;
    var options_js_1 = __importStar2(require_options());
    var staticMethods = __importStar2(require_static());
    var cheerio_js_1 = require_cheerio();
    var utils_js_1 = require_utils4();
    function getLoad(parse3, render3) {
      return function load(content, options, isDocument) {
        if (isDocument === void 0) {
          isDocument = true;
        }
        if (content == null) {
          throw new Error("cheerio.load() expects a string");
        }
        var internalOpts = __assign2(__assign2({}, options_js_1.default), (0, options_js_1.flatten)(options));
        var initialRoot = parse3(content, internalOpts, isDocument, null);
        var LoadedCheerio = (
          /** @class */
          (function(_super) {
            __extends2(LoadedCheerio2, _super);
            function LoadedCheerio2() {
              return _super !== null && _super.apply(this, arguments) || this;
            }
            LoadedCheerio2.prototype._make = function(selector, context) {
              var cheerio = initialize2(selector, context);
              cheerio.prevObject = this;
              return cheerio;
            };
            LoadedCheerio2.prototype._parse = function(content2, options2, isDocument2, context) {
              return parse3(content2, options2, isDocument2, context);
            };
            LoadedCheerio2.prototype._render = function(dom) {
              return render3(dom, this.options);
            };
            return LoadedCheerio2;
          })(cheerio_js_1.Cheerio)
        );
        function initialize2(selector, context, root, opts2) {
          if (root === void 0) {
            root = initialRoot;
          }
          if (selector && (0, utils_js_1.isCheerio)(selector))
            return selector;
          var options2 = __assign2(__assign2({}, internalOpts), (0, options_js_1.flatten)(opts2));
          var r4 = typeof root === "string" ? [parse3(root, options2, false, null)] : "length" in root ? root : [root];
          var rootInstance = (0, utils_js_1.isCheerio)(r4) ? r4 : new LoadedCheerio(r4, null, options2);
          rootInstance._root = rootInstance;
          if (!selector) {
            return new LoadedCheerio(void 0, rootInstance, options2);
          }
          var elements = typeof selector === "string" && (0, utils_js_1.isHtml)(selector) ? (
            // $(<html>)
            parse3(selector, options2, false, null).children
          ) : isNode(selector) ? (
            // $(dom)
            [selector]
          ) : Array.isArray(selector) ? (
            // $([dom])
            selector
          ) : void 0;
          var instance = new LoadedCheerio(elements, rootInstance, options2);
          if (elements) {
            return instance;
          }
          if (typeof selector !== "string") {
            throw new Error("Unexpected type of selector");
          }
          var search = selector;
          var searchContext = !context ? (
            // If we don't have a context, maybe we have a root, from loading
            rootInstance
          ) : typeof context === "string" ? (0, utils_js_1.isHtml)(context) ? (
            // $('li', '<ul>...</ul>')
            new LoadedCheerio([parse3(context, options2, false, null)], rootInstance, options2)
          ) : (
            // $('li', 'ul')
            (search = "".concat(context, " ").concat(search), rootInstance)
          ) : (0, utils_js_1.isCheerio)(context) ? (
            // $('li', $)
            context
          ) : (
            // $('li', node), $('li', [nodes])
            new LoadedCheerio(Array.isArray(context) ? context : [context], rootInstance, options2)
          );
          if (!searchContext)
            return instance;
          return searchContext.find(search);
        }
        Object.assign(initialize2, staticMethods, {
          load,
          // `_root` and `_options` are used in static methods.
          _root: initialRoot,
          _options: internalOpts,
          // Add `fn` for plugins
          fn: LoadedCheerio.prototype,
          // Add the prototype here to maintain `instanceof` behavior.
          prototype: LoadedCheerio.prototype
        });
        return initialize2;
      };
    }
    exports.getLoad = getLoad;
    function isNode(obj) {
      return !!obj.name || obj.type === "root" || obj.type === "text" || obj.type === "comment";
    }
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/unicode.js
var require_unicode2 = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/unicode.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.SEQUENCES = exports.CODE_POINTS = exports.REPLACEMENT_CHARACTER = void 0;
    exports.isSurrogate = isSurrogate;
    exports.isSurrogatePair = isSurrogatePair;
    exports.getSurrogatePairCodePoint = getSurrogatePairCodePoint;
    exports.isControlCodePoint = isControlCodePoint;
    exports.isUndefinedCodePoint = isUndefinedCodePoint;
    var UNDEFINED_CODE_POINTS = /* @__PURE__ */ new Set([
      65534,
      65535,
      131070,
      131071,
      196606,
      196607,
      262142,
      262143,
      327678,
      327679,
      393214,
      393215,
      458750,
      458751,
      524286,
      524287,
      589822,
      589823,
      655358,
      655359,
      720894,
      720895,
      786430,
      786431,
      851966,
      851967,
      917502,
      917503,
      983038,
      983039,
      1048574,
      1048575,
      1114110,
      1114111
    ]);
    exports.REPLACEMENT_CHARACTER = "\uFFFD";
    var CODE_POINTS;
    (function(CODE_POINTS2) {
      CODE_POINTS2[CODE_POINTS2["EOF"] = -1] = "EOF";
      CODE_POINTS2[CODE_POINTS2["NULL"] = 0] = "NULL";
      CODE_POINTS2[CODE_POINTS2["TABULATION"] = 9] = "TABULATION";
      CODE_POINTS2[CODE_POINTS2["CARRIAGE_RETURN"] = 13] = "CARRIAGE_RETURN";
      CODE_POINTS2[CODE_POINTS2["LINE_FEED"] = 10] = "LINE_FEED";
      CODE_POINTS2[CODE_POINTS2["FORM_FEED"] = 12] = "FORM_FEED";
      CODE_POINTS2[CODE_POINTS2["SPACE"] = 32] = "SPACE";
      CODE_POINTS2[CODE_POINTS2["EXCLAMATION_MARK"] = 33] = "EXCLAMATION_MARK";
      CODE_POINTS2[CODE_POINTS2["QUOTATION_MARK"] = 34] = "QUOTATION_MARK";
      CODE_POINTS2[CODE_POINTS2["AMPERSAND"] = 38] = "AMPERSAND";
      CODE_POINTS2[CODE_POINTS2["APOSTROPHE"] = 39] = "APOSTROPHE";
      CODE_POINTS2[CODE_POINTS2["HYPHEN_MINUS"] = 45] = "HYPHEN_MINUS";
      CODE_POINTS2[CODE_POINTS2["SOLIDUS"] = 47] = "SOLIDUS";
      CODE_POINTS2[CODE_POINTS2["DIGIT_0"] = 48] = "DIGIT_0";
      CODE_POINTS2[CODE_POINTS2["DIGIT_9"] = 57] = "DIGIT_9";
      CODE_POINTS2[CODE_POINTS2["SEMICOLON"] = 59] = "SEMICOLON";
      CODE_POINTS2[CODE_POINTS2["LESS_THAN_SIGN"] = 60] = "LESS_THAN_SIGN";
      CODE_POINTS2[CODE_POINTS2["EQUALS_SIGN"] = 61] = "EQUALS_SIGN";
      CODE_POINTS2[CODE_POINTS2["GREATER_THAN_SIGN"] = 62] = "GREATER_THAN_SIGN";
      CODE_POINTS2[CODE_POINTS2["QUESTION_MARK"] = 63] = "QUESTION_MARK";
      CODE_POINTS2[CODE_POINTS2["LATIN_CAPITAL_A"] = 65] = "LATIN_CAPITAL_A";
      CODE_POINTS2[CODE_POINTS2["LATIN_CAPITAL_Z"] = 90] = "LATIN_CAPITAL_Z";
      CODE_POINTS2[CODE_POINTS2["RIGHT_SQUARE_BRACKET"] = 93] = "RIGHT_SQUARE_BRACKET";
      CODE_POINTS2[CODE_POINTS2["GRAVE_ACCENT"] = 96] = "GRAVE_ACCENT";
      CODE_POINTS2[CODE_POINTS2["LATIN_SMALL_A"] = 97] = "LATIN_SMALL_A";
      CODE_POINTS2[CODE_POINTS2["LATIN_SMALL_Z"] = 122] = "LATIN_SMALL_Z";
    })(CODE_POINTS || (exports.CODE_POINTS = CODE_POINTS = {}));
    exports.SEQUENCES = {
      DASH_DASH: "--",
      CDATA_START: "[CDATA[",
      DOCTYPE: "doctype",
      SCRIPT: "script",
      PUBLIC: "public",
      SYSTEM: "system"
    };
    function isSurrogate(cp) {
      return cp >= 55296 && cp <= 57343;
    }
    function isSurrogatePair(cp) {
      return cp >= 56320 && cp <= 57343;
    }
    function getSurrogatePairCodePoint(cp1, cp2) {
      return (cp1 - 55296) * 1024 + 9216 + cp2;
    }
    function isControlCodePoint(cp) {
      return cp !== 32 && cp !== 10 && cp !== 13 && cp !== 9 && cp !== 12 && cp >= 1 && cp <= 31 || cp >= 127 && cp <= 159;
    }
    function isUndefinedCodePoint(cp) {
      return cp >= 64976 && cp <= 65007 || UNDEFINED_CODE_POINTS.has(cp);
    }
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/error-codes.js
var require_error_codes = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/error-codes.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ERR = void 0;
    var ERR;
    (function(ERR2) {
      ERR2["controlCharacterInInputStream"] = "control-character-in-input-stream";
      ERR2["noncharacterInInputStream"] = "noncharacter-in-input-stream";
      ERR2["surrogateInInputStream"] = "surrogate-in-input-stream";
      ERR2["nonVoidHtmlElementStartTagWithTrailingSolidus"] = "non-void-html-element-start-tag-with-trailing-solidus";
      ERR2["endTagWithAttributes"] = "end-tag-with-attributes";
      ERR2["endTagWithTrailingSolidus"] = "end-tag-with-trailing-solidus";
      ERR2["unexpectedSolidusInTag"] = "unexpected-solidus-in-tag";
      ERR2["unexpectedNullCharacter"] = "unexpected-null-character";
      ERR2["unexpectedQuestionMarkInsteadOfTagName"] = "unexpected-question-mark-instead-of-tag-name";
      ERR2["invalidFirstCharacterOfTagName"] = "invalid-first-character-of-tag-name";
      ERR2["unexpectedEqualsSignBeforeAttributeName"] = "unexpected-equals-sign-before-attribute-name";
      ERR2["missingEndTagName"] = "missing-end-tag-name";
      ERR2["unexpectedCharacterInAttributeName"] = "unexpected-character-in-attribute-name";
      ERR2["unknownNamedCharacterReference"] = "unknown-named-character-reference";
      ERR2["missingSemicolonAfterCharacterReference"] = "missing-semicolon-after-character-reference";
      ERR2["unexpectedCharacterAfterDoctypeSystemIdentifier"] = "unexpected-character-after-doctype-system-identifier";
      ERR2["unexpectedCharacterInUnquotedAttributeValue"] = "unexpected-character-in-unquoted-attribute-value";
      ERR2["eofBeforeTagName"] = "eof-before-tag-name";
      ERR2["eofInTag"] = "eof-in-tag";
      ERR2["missingAttributeValue"] = "missing-attribute-value";
      ERR2["missingWhitespaceBetweenAttributes"] = "missing-whitespace-between-attributes";
      ERR2["missingWhitespaceAfterDoctypePublicKeyword"] = "missing-whitespace-after-doctype-public-keyword";
      ERR2["missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers"] = "missing-whitespace-between-doctype-public-and-system-identifiers";
      ERR2["missingWhitespaceAfterDoctypeSystemKeyword"] = "missing-whitespace-after-doctype-system-keyword";
      ERR2["missingQuoteBeforeDoctypePublicIdentifier"] = "missing-quote-before-doctype-public-identifier";
      ERR2["missingQuoteBeforeDoctypeSystemIdentifier"] = "missing-quote-before-doctype-system-identifier";
      ERR2["missingDoctypePublicIdentifier"] = "missing-doctype-public-identifier";
      ERR2["missingDoctypeSystemIdentifier"] = "missing-doctype-system-identifier";
      ERR2["abruptDoctypePublicIdentifier"] = "abrupt-doctype-public-identifier";
      ERR2["abruptDoctypeSystemIdentifier"] = "abrupt-doctype-system-identifier";
      ERR2["cdataInHtmlContent"] = "cdata-in-html-content";
      ERR2["incorrectlyOpenedComment"] = "incorrectly-opened-comment";
      ERR2["eofInScriptHtmlCommentLikeText"] = "eof-in-script-html-comment-like-text";
      ERR2["eofInDoctype"] = "eof-in-doctype";
      ERR2["nestedComment"] = "nested-comment";
      ERR2["abruptClosingOfEmptyComment"] = "abrupt-closing-of-empty-comment";
      ERR2["eofInComment"] = "eof-in-comment";
      ERR2["incorrectlyClosedComment"] = "incorrectly-closed-comment";
      ERR2["eofInCdata"] = "eof-in-cdata";
      ERR2["absenceOfDigitsInNumericCharacterReference"] = "absence-of-digits-in-numeric-character-reference";
      ERR2["nullCharacterReference"] = "null-character-reference";
      ERR2["surrogateCharacterReference"] = "surrogate-character-reference";
      ERR2["characterReferenceOutsideUnicodeRange"] = "character-reference-outside-unicode-range";
      ERR2["controlCharacterReference"] = "control-character-reference";
      ERR2["noncharacterCharacterReference"] = "noncharacter-character-reference";
      ERR2["missingWhitespaceBeforeDoctypeName"] = "missing-whitespace-before-doctype-name";
      ERR2["missingDoctypeName"] = "missing-doctype-name";
      ERR2["invalidCharacterSequenceAfterDoctypeName"] = "invalid-character-sequence-after-doctype-name";
      ERR2["duplicateAttribute"] = "duplicate-attribute";
      ERR2["nonConformingDoctype"] = "non-conforming-doctype";
      ERR2["missingDoctype"] = "missing-doctype";
      ERR2["misplacedDoctype"] = "misplaced-doctype";
      ERR2["endTagWithoutMatchingOpenElement"] = "end-tag-without-matching-open-element";
      ERR2["closingOfElementWithOpenChildElements"] = "closing-of-element-with-open-child-elements";
      ERR2["disallowedContentInNoscriptInHead"] = "disallowed-content-in-noscript-in-head";
      ERR2["openElementsLeftAfterEof"] = "open-elements-left-after-eof";
      ERR2["abandonedHeadElementChild"] = "abandoned-head-element-child";
      ERR2["misplacedStartTagForHeadElement"] = "misplaced-start-tag-for-head-element";
      ERR2["nestedNoscriptInHead"] = "nested-noscript-in-head";
      ERR2["eofInElementThatCanContainOnlyText"] = "eof-in-element-that-can-contain-only-text";
    })(ERR || (exports.ERR = ERR = {}));
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/tokenizer/preprocessor.js
var require_preprocessor = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/tokenizer/preprocessor.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Preprocessor = void 0;
    var unicode_js_1 = require_unicode2();
    var error_codes_js_1 = require_error_codes();
    var DEFAULT_BUFFER_WATERLINE = 1 << 16;
    var Preprocessor = class {
      constructor(handler) {
        this.handler = handler;
        this.html = "";
        this.pos = -1;
        this.lastGapPos = -2;
        this.gapStack = [];
        this.skipNextNewLine = false;
        this.lastChunkWritten = false;
        this.endOfChunkHit = false;
        this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;
        this.isEol = false;
        this.lineStartPos = 0;
        this.droppedBufferSize = 0;
        this.line = 1;
        this.lastErrOffset = -1;
      }
      /** The column on the current line. If we just saw a gap (eg. a surrogate pair), return the index before. */
      get col() {
        return this.pos - this.lineStartPos + Number(this.lastGapPos !== this.pos);
      }
      get offset() {
        return this.droppedBufferSize + this.pos;
      }
      getError(code, cpOffset) {
        const { line: line2, col, offset: offset2 } = this;
        const startCol = col + cpOffset;
        const startOffset = offset2 + cpOffset;
        return {
          code,
          startLine: line2,
          endLine: line2,
          startCol,
          endCol: startCol,
          startOffset,
          endOffset: startOffset
        };
      }
      _err(code) {
        if (this.handler.onParseError && this.lastErrOffset !== this.offset) {
          this.lastErrOffset = this.offset;
          this.handler.onParseError(this.getError(code, 0));
        }
      }
      _addGap() {
        this.gapStack.push(this.lastGapPos);
        this.lastGapPos = this.pos;
      }
      _processSurrogate(cp) {
        if (this.pos !== this.html.length - 1) {
          const nextCp = this.html.charCodeAt(this.pos + 1);
          if ((0, unicode_js_1.isSurrogatePair)(nextCp)) {
            this.pos++;
            this._addGap();
            return (0, unicode_js_1.getSurrogatePairCodePoint)(cp, nextCp);
          }
        } else if (!this.lastChunkWritten) {
          this.endOfChunkHit = true;
          return unicode_js_1.CODE_POINTS.EOF;
        }
        this._err(error_codes_js_1.ERR.surrogateInInputStream);
        return cp;
      }
      willDropParsedChunk() {
        return this.pos > this.bufferWaterline;
      }
      dropParsedChunk() {
        if (this.willDropParsedChunk()) {
          this.html = this.html.substring(this.pos);
          this.lineStartPos -= this.pos;
          this.droppedBufferSize += this.pos;
          this.pos = 0;
          this.lastGapPos = -2;
          this.gapStack.length = 0;
        }
      }
      write(chunk3, isLastChunk) {
        if (this.html.length > 0) {
          this.html += chunk3;
        } else {
          this.html = chunk3;
        }
        this.endOfChunkHit = false;
        this.lastChunkWritten = isLastChunk;
      }
      insertHtmlAtCurrentPos(chunk3) {
        this.html = this.html.substring(0, this.pos + 1) + chunk3 + this.html.substring(this.pos + 1);
        this.endOfChunkHit = false;
      }
      startsWith(pattern3, caseSensitive) {
        if (this.pos + pattern3.length > this.html.length) {
          this.endOfChunkHit = !this.lastChunkWritten;
          return false;
        }
        if (caseSensitive) {
          return this.html.startsWith(pattern3, this.pos);
        }
        for (let i5 = 0; i5 < pattern3.length; i5++) {
          const cp = this.html.charCodeAt(this.pos + i5) | 32;
          if (cp !== pattern3.charCodeAt(i5)) {
            return false;
          }
        }
        return true;
      }
      peek(offset2) {
        const pos = this.pos + offset2;
        if (pos >= this.html.length) {
          this.endOfChunkHit = !this.lastChunkWritten;
          return unicode_js_1.CODE_POINTS.EOF;
        }
        const code = this.html.charCodeAt(pos);
        return code === unicode_js_1.CODE_POINTS.CARRIAGE_RETURN ? unicode_js_1.CODE_POINTS.LINE_FEED : code;
      }
      advance() {
        this.pos++;
        if (this.isEol) {
          this.isEol = false;
          this.line++;
          this.lineStartPos = this.pos;
        }
        if (this.pos >= this.html.length) {
          this.endOfChunkHit = !this.lastChunkWritten;
          return unicode_js_1.CODE_POINTS.EOF;
        }
        let cp = this.html.charCodeAt(this.pos);
        if (cp === unicode_js_1.CODE_POINTS.CARRIAGE_RETURN) {
          this.isEol = true;
          this.skipNextNewLine = true;
          return unicode_js_1.CODE_POINTS.LINE_FEED;
        }
        if (cp === unicode_js_1.CODE_POINTS.LINE_FEED) {
          this.isEol = true;
          if (this.skipNextNewLine) {
            this.line--;
            this.skipNextNewLine = false;
            this._addGap();
            return this.advance();
          }
        }
        this.skipNextNewLine = false;
        if ((0, unicode_js_1.isSurrogate)(cp)) {
          cp = this._processSurrogate(cp);
        }
        const isCommonValidRange = this.handler.onParseError === null || cp > 31 && cp < 127 || cp === unicode_js_1.CODE_POINTS.LINE_FEED || cp === unicode_js_1.CODE_POINTS.CARRIAGE_RETURN || cp > 159 && cp < 64976;
        if (!isCommonValidRange) {
          this._checkForProblematicCharacters(cp);
        }
        return cp;
      }
      _checkForProblematicCharacters(cp) {
        if ((0, unicode_js_1.isControlCodePoint)(cp)) {
          this._err(error_codes_js_1.ERR.controlCharacterInInputStream);
        } else if ((0, unicode_js_1.isUndefinedCodePoint)(cp)) {
          this._err(error_codes_js_1.ERR.noncharacterInInputStream);
        }
      }
      retreat(count) {
        this.pos -= count;
        while (this.pos < this.lastGapPos) {
          this.lastGapPos = this.gapStack.pop();
          this.pos--;
        }
        this.isEol = false;
      }
    };
    exports.Preprocessor = Preprocessor;
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/token.js
var require_token = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/token.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.TokenType = void 0;
    exports.getTokenAttr = getTokenAttr;
    var TokenType;
    (function(TokenType2) {
      TokenType2[TokenType2["CHARACTER"] = 0] = "CHARACTER";
      TokenType2[TokenType2["NULL_CHARACTER"] = 1] = "NULL_CHARACTER";
      TokenType2[TokenType2["WHITESPACE_CHARACTER"] = 2] = "WHITESPACE_CHARACTER";
      TokenType2[TokenType2["START_TAG"] = 3] = "START_TAG";
      TokenType2[TokenType2["END_TAG"] = 4] = "END_TAG";
      TokenType2[TokenType2["COMMENT"] = 5] = "COMMENT";
      TokenType2[TokenType2["DOCTYPE"] = 6] = "DOCTYPE";
      TokenType2[TokenType2["EOF"] = 7] = "EOF";
      TokenType2[TokenType2["HIBERNATION"] = 8] = "HIBERNATION";
    })(TokenType || (exports.TokenType = TokenType = {}));
    function getTokenAttr(token, attrName) {
      for (let i5 = token.attrs.length - 1; i5 >= 0; i5--) {
        if (token.attrs[i5].name === attrName) {
          return token.attrs[i5].value;
        }
      }
      return null;
    }
  }
});

// ../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/generated/decode-data-html.js
var require_decode_data_html2 = __commonJS({
  "../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/generated/decode-data-html.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.htmlDecodeTree = void 0;
    exports.htmlDecodeTree = new Uint16Array(
      // prettier-ignore
      /* @__PURE__ */ '\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map((c6) => c6.charCodeAt(0))
    );
  }
});

// ../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/generated/decode-data-xml.js
var require_decode_data_xml2 = __commonJS({
  "../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/generated/decode-data-xml.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.xmlDecodeTree = void 0;
    exports.xmlDecodeTree = new Uint16Array(
      // prettier-ignore
      /* @__PURE__ */ "\u0200aglq	\x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map((c6) => c6.charCodeAt(0))
    );
  }
});

// ../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/decode-codepoint.js
var require_decode_codepoint2 = __commonJS({
  "../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/decode-codepoint.js"(exports) {
    "use strict";
    var _a2;
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.fromCodePoint = void 0;
    exports.replaceCodePoint = replaceCodePoint;
    exports.decodeCodePoint = decodeCodePoint;
    var decodeMap = /* @__PURE__ */ new Map([
      [0, 65533],
      // C1 Unicode control character reference replacements
      [128, 8364],
      [130, 8218],
      [131, 402],
      [132, 8222],
      [133, 8230],
      [134, 8224],
      [135, 8225],
      [136, 710],
      [137, 8240],
      [138, 352],
      [139, 8249],
      [140, 338],
      [142, 381],
      [145, 8216],
      [146, 8217],
      [147, 8220],
      [148, 8221],
      [149, 8226],
      [150, 8211],
      [151, 8212],
      [152, 732],
      [153, 8482],
      [154, 353],
      [155, 8250],
      [156, 339],
      [158, 382],
      [159, 376]
    ]);
    exports.fromCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins
    (_a2 = String.fromCodePoint) !== null && _a2 !== void 0 ? _a2 : function(codePoint) {
      let output = "";
      if (codePoint > 65535) {
        codePoint -= 65536;
        output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296);
        codePoint = 56320 | codePoint & 1023;
      }
      output += String.fromCharCode(codePoint);
      return output;
    };
    function replaceCodePoint(codePoint) {
      var _a3;
      if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
        return 65533;
      }
      return (_a3 = decodeMap.get(codePoint)) !== null && _a3 !== void 0 ? _a3 : codePoint;
    }
    function decodeCodePoint(codePoint) {
      return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));
    }
  }
});

// ../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/decode.js
var require_decode2 = __commonJS({
  "../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/decode.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = void 0;
    exports.determineBranch = determineBranch;
    exports.decodeHTML = decodeHTML;
    exports.decodeHTMLAttribute = decodeHTMLAttribute;
    exports.decodeHTMLStrict = decodeHTMLStrict;
    exports.decodeXML = decodeXML;
    var decode_data_html_js_1 = require_decode_data_html2();
    var decode_data_xml_js_1 = require_decode_data_xml2();
    var decode_codepoint_js_1 = require_decode_codepoint2();
    var CharCodes;
    (function(CharCodes2) {
      CharCodes2[CharCodes2["NUM"] = 35] = "NUM";
      CharCodes2[CharCodes2["SEMI"] = 59] = "SEMI";
      CharCodes2[CharCodes2["EQUALS"] = 61] = "EQUALS";
      CharCodes2[CharCodes2["ZERO"] = 48] = "ZERO";
      CharCodes2[CharCodes2["NINE"] = 57] = "NINE";
      CharCodes2[CharCodes2["LOWER_A"] = 97] = "LOWER_A";
      CharCodes2[CharCodes2["LOWER_F"] = 102] = "LOWER_F";
      CharCodes2[CharCodes2["LOWER_X"] = 120] = "LOWER_X";
      CharCodes2[CharCodes2["LOWER_Z"] = 122] = "LOWER_Z";
      CharCodes2[CharCodes2["UPPER_A"] = 65] = "UPPER_A";
      CharCodes2[CharCodes2["UPPER_F"] = 70] = "UPPER_F";
      CharCodes2[CharCodes2["UPPER_Z"] = 90] = "UPPER_Z";
    })(CharCodes || (CharCodes = {}));
    var TO_LOWER_BIT = 32;
    var BinTrieFlags;
    (function(BinTrieFlags2) {
      BinTrieFlags2[BinTrieFlags2["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
      BinTrieFlags2[BinTrieFlags2["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH";
      BinTrieFlags2[BinTrieFlags2["JUMP_TABLE"] = 127] = "JUMP_TABLE";
    })(BinTrieFlags || (exports.BinTrieFlags = BinTrieFlags = {}));
    function isNumber5(code) {
      return code >= CharCodes.ZERO && code <= CharCodes.NINE;
    }
    function isHexadecimalCharacter(code) {
      return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F;
    }
    function isAsciiAlphaNumeric(code) {
      return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z || isNumber5(code);
    }
    function isEntityInAttributeInvalidEnd(code) {
      return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);
    }
    var EntityDecoderState;
    (function(EntityDecoderState2) {
      EntityDecoderState2[EntityDecoderState2["EntityStart"] = 0] = "EntityStart";
      EntityDecoderState2[EntityDecoderState2["NumericStart"] = 1] = "NumericStart";
      EntityDecoderState2[EntityDecoderState2["NumericDecimal"] = 2] = "NumericDecimal";
      EntityDecoderState2[EntityDecoderState2["NumericHex"] = 3] = "NumericHex";
      EntityDecoderState2[EntityDecoderState2["NamedEntity"] = 4] = "NamedEntity";
    })(EntityDecoderState || (EntityDecoderState = {}));
    var DecodingMode;
    (function(DecodingMode2) {
      DecodingMode2[DecodingMode2["Legacy"] = 0] = "Legacy";
      DecodingMode2[DecodingMode2["Strict"] = 1] = "Strict";
      DecodingMode2[DecodingMode2["Attribute"] = 2] = "Attribute";
    })(DecodingMode || (exports.DecodingMode = DecodingMode = {}));
    var EntityDecoder = class {
      constructor(decodeTree, emitCodePoint, errors) {
        this.decodeTree = decodeTree;
        this.emitCodePoint = emitCodePoint;
        this.errors = errors;
        this.state = EntityDecoderState.EntityStart;
        this.consumed = 1;
        this.result = 0;
        this.treeIndex = 0;
        this.excess = 1;
        this.decodeMode = DecodingMode.Strict;
      }
      /** Resets the instance to make it reusable. */
      startEntity(decodeMode) {
        this.decodeMode = decodeMode;
        this.state = EntityDecoderState.EntityStart;
        this.result = 0;
        this.treeIndex = 0;
        this.excess = 1;
        this.consumed = 1;
      }
      /**
       * Write an entity to the decoder. This can be called multiple times with partial entities.
       * If the entity is incomplete, the decoder will return -1.
       *
       * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the
       * entity is incomplete, and resume when the next string is written.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      write(input, offset2) {
        switch (this.state) {
          case EntityDecoderState.EntityStart: {
            if (input.charCodeAt(offset2) === CharCodes.NUM) {
              this.state = EntityDecoderState.NumericStart;
              this.consumed += 1;
              return this.stateNumericStart(input, offset2 + 1);
            }
            this.state = EntityDecoderState.NamedEntity;
            return this.stateNamedEntity(input, offset2);
          }
          case EntityDecoderState.NumericStart: {
            return this.stateNumericStart(input, offset2);
          }
          case EntityDecoderState.NumericDecimal: {
            return this.stateNumericDecimal(input, offset2);
          }
          case EntityDecoderState.NumericHex: {
            return this.stateNumericHex(input, offset2);
          }
          case EntityDecoderState.NamedEntity: {
            return this.stateNamedEntity(input, offset2);
          }
        }
      }
      /**
       * Switches between the numeric decimal and hexadecimal states.
       *
       * Equivalent to the `Numeric character reference state` in the HTML spec.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The current offset.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      stateNumericStart(input, offset2) {
        if (offset2 >= input.length) {
          return -1;
        }
        if ((input.charCodeAt(offset2) | TO_LOWER_BIT) === CharCodes.LOWER_X) {
          this.state = EntityDecoderState.NumericHex;
          this.consumed += 1;
          return this.stateNumericHex(input, offset2 + 1);
        }
        this.state = EntityDecoderState.NumericDecimal;
        return this.stateNumericDecimal(input, offset2);
      }
      addToNumericResult(input, start2, end2, base) {
        if (start2 !== end2) {
          const digitCount = end2 - start2;
          this.result = this.result * Math.pow(base, digitCount) + Number.parseInt(input.substr(start2, digitCount), base);
          this.consumed += digitCount;
        }
      }
      /**
       * Parses a hexadecimal numeric entity.
       *
       * Equivalent to the `Hexademical character reference state` in the HTML spec.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The current offset.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      stateNumericHex(input, offset2) {
        const startIndex = offset2;
        while (offset2 < input.length) {
          const char = input.charCodeAt(offset2);
          if (isNumber5(char) || isHexadecimalCharacter(char)) {
            offset2 += 1;
          } else {
            this.addToNumericResult(input, startIndex, offset2, 16);
            return this.emitNumericEntity(char, 3);
          }
        }
        this.addToNumericResult(input, startIndex, offset2, 16);
        return -1;
      }
      /**
       * Parses a decimal numeric entity.
       *
       * Equivalent to the `Decimal character reference state` in the HTML spec.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The current offset.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      stateNumericDecimal(input, offset2) {
        const startIndex = offset2;
        while (offset2 < input.length) {
          const char = input.charCodeAt(offset2);
          if (isNumber5(char)) {
            offset2 += 1;
          } else {
            this.addToNumericResult(input, startIndex, offset2, 10);
            return this.emitNumericEntity(char, 2);
          }
        }
        this.addToNumericResult(input, startIndex, offset2, 10);
        return -1;
      }
      /**
       * Validate and emit a numeric entity.
       *
       * Implements the logic from the `Hexademical character reference start
       * state` and `Numeric character reference end state` in the HTML spec.
       *
       * @param lastCp The last code point of the entity. Used to see if the
       *               entity was terminated with a semicolon.
       * @param expectedLength The minimum number of characters that should be
       *                       consumed. Used to validate that at least one digit
       *                       was consumed.
       * @returns The number of characters that were consumed.
       */
      emitNumericEntity(lastCp, expectedLength) {
        var _a2;
        if (this.consumed <= expectedLength) {
          (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
          return 0;
        }
        if (lastCp === CharCodes.SEMI) {
          this.consumed += 1;
        } else if (this.decodeMode === DecodingMode.Strict) {
          return 0;
        }
        this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);
        if (this.errors) {
          if (lastCp !== CharCodes.SEMI) {
            this.errors.missingSemicolonAfterCharacterReference();
          }
          this.errors.validateNumericCharacterReference(this.result);
        }
        return this.consumed;
      }
      /**
       * Parses a named entity.
       *
       * Equivalent to the `Named character reference state` in the HTML spec.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The current offset.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      stateNamedEntity(input, offset2) {
        const { decodeTree } = this;
        let current = decodeTree[this.treeIndex];
        let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;
        for (; offset2 < input.length; offset2++, this.excess++) {
          const char = input.charCodeAt(offset2);
          this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);
          if (this.treeIndex < 0) {
            return this.result === 0 || // If we are parsing an attribute
            this.decodeMode === DecodingMode.Attribute && // We shouldn't have consumed any characters after the entity,
            (valueLength === 0 || // And there should be no invalid characters.
            isEntityInAttributeInvalidEnd(char)) ? 0 : this.emitNotTerminatedNamedEntity();
          }
          current = decodeTree[this.treeIndex];
          valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;
          if (valueLength !== 0) {
            if (char === CharCodes.SEMI) {
              return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
            }
            if (this.decodeMode !== DecodingMode.Strict) {
              this.result = this.treeIndex;
              this.consumed += this.excess;
              this.excess = 0;
            }
          }
        }
        return -1;
      }
      /**
       * Emit a named entity that was not terminated with a semicolon.
       *
       * @returns The number of characters consumed.
       */
      emitNotTerminatedNamedEntity() {
        var _a2;
        const { result, decodeTree } = this;
        const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
        this.emitNamedEntityData(result, valueLength, this.consumed);
        (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.missingSemicolonAfterCharacterReference();
        return this.consumed;
      }
      /**
       * Emit a named entity.
       *
       * @param result The index of the entity in the decode tree.
       * @param valueLength The number of bytes in the entity.
       * @param consumed The number of characters consumed.
       *
       * @returns The number of characters consumed.
       */
      emitNamedEntityData(result, valueLength, consumed) {
        const { decodeTree } = this;
        this.emitCodePoint(valueLength === 1 ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH : decodeTree[result + 1], consumed);
        if (valueLength === 3) {
          this.emitCodePoint(decodeTree[result + 2], consumed);
        }
        return consumed;
      }
      /**
       * Signal to the parser that the end of the input was reached.
       *
       * Remaining data will be emitted and relevant errors will be produced.
       *
       * @returns The number of characters consumed.
       */
      end() {
        var _a2;
        switch (this.state) {
          case EntityDecoderState.NamedEntity: {
            return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
          }
          // Otherwise, emit a numeric entity if we have one.
          case EntityDecoderState.NumericDecimal: {
            return this.emitNumericEntity(0, 2);
          }
          case EntityDecoderState.NumericHex: {
            return this.emitNumericEntity(0, 3);
          }
          case EntityDecoderState.NumericStart: {
            (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
            return 0;
          }
          case EntityDecoderState.EntityStart: {
            return 0;
          }
        }
      }
    };
    exports.EntityDecoder = EntityDecoder;
    function getDecoder(decodeTree) {
      let returnValue = "";
      const decoder2 = new EntityDecoder(decodeTree, (data2) => returnValue += (0, decode_codepoint_js_1.fromCodePoint)(data2));
      return function decodeWithTrie(input, decodeMode) {
        let lastIndex = 0;
        let offset2 = 0;
        while ((offset2 = input.indexOf("&", offset2)) >= 0) {
          returnValue += input.slice(lastIndex, offset2);
          decoder2.startEntity(decodeMode);
          const length2 = decoder2.write(
            input,
            // Skip the "&"
            offset2 + 1
          );
          if (length2 < 0) {
            lastIndex = offset2 + decoder2.end();
            break;
          }
          lastIndex = offset2 + length2;
          offset2 = length2 === 0 ? lastIndex + 1 : lastIndex;
        }
        const result = returnValue + input.slice(lastIndex);
        returnValue = "";
        return result;
      };
    }
    function determineBranch(decodeTree, current, nodeIndex, char) {
      const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;
      const jumpOffset = current & BinTrieFlags.JUMP_TABLE;
      if (branchCount === 0) {
        return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;
      }
      if (jumpOffset) {
        const value2 = char - jumpOffset;
        return value2 < 0 || value2 >= branchCount ? -1 : decodeTree[nodeIndex + value2] - 1;
      }
      let lo = nodeIndex;
      let hi = lo + branchCount - 1;
      while (lo <= hi) {
        const mid = lo + hi >>> 1;
        const midValue = decodeTree[mid];
        if (midValue < char) {
          lo = mid + 1;
        } else if (midValue > char) {
          hi = mid - 1;
        } else {
          return decodeTree[mid + branchCount];
        }
      }
      return -1;
    }
    var htmlDecoder = /* @__PURE__ */ getDecoder(decode_data_html_js_1.htmlDecodeTree);
    var xmlDecoder = /* @__PURE__ */ getDecoder(decode_data_xml_js_1.xmlDecodeTree);
    function decodeHTML(htmlString, mode = DecodingMode.Legacy) {
      return htmlDecoder(htmlString, mode);
    }
    function decodeHTMLAttribute(htmlAttribute) {
      return htmlDecoder(htmlAttribute, DecodingMode.Attribute);
    }
    function decodeHTMLStrict(htmlString) {
      return htmlDecoder(htmlString, DecodingMode.Strict);
    }
    function decodeXML(xmlString) {
      return xmlDecoder(xmlString, DecodingMode.Strict);
    }
    var decode_data_html_js_2 = require_decode_data_html2();
    Object.defineProperty(exports, "htmlDecodeTree", { enumerable: true, get: function() {
      return decode_data_html_js_2.htmlDecodeTree;
    } });
    var decode_data_xml_js_2 = require_decode_data_xml2();
    Object.defineProperty(exports, "xmlDecodeTree", { enumerable: true, get: function() {
      return decode_data_xml_js_2.xmlDecodeTree;
    } });
    var decode_codepoint_js_2 = require_decode_codepoint2();
    Object.defineProperty(exports, "decodeCodePoint", { enumerable: true, get: function() {
      return decode_codepoint_js_2.decodeCodePoint;
    } });
    Object.defineProperty(exports, "replaceCodePoint", { enumerable: true, get: function() {
      return decode_codepoint_js_2.replaceCodePoint;
    } });
    Object.defineProperty(exports, "fromCodePoint", { enumerable: true, get: function() {
      return decode_codepoint_js_2.fromCodePoint;
    } });
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/html.js
var require_html = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/html.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.NUMBERED_HEADERS = exports.SPECIAL_ELEMENTS = exports.TAG_ID = exports.TAG_NAMES = exports.DOCUMENT_MODE = exports.ATTRS = exports.NS = void 0;
    exports.getTagID = getTagID;
    exports.hasUnescapedText = hasUnescapedText;
    var NS;
    (function(NS2) {
      NS2["HTML"] = "http://www.w3.org/1999/xhtml";
      NS2["MATHML"] = "http://www.w3.org/1998/Math/MathML";
      NS2["SVG"] = "http://www.w3.org/2000/svg";
      NS2["XLINK"] = "http://www.w3.org/1999/xlink";
      NS2["XML"] = "http://www.w3.org/XML/1998/namespace";
      NS2["XMLNS"] = "http://www.w3.org/2000/xmlns/";
    })(NS || (exports.NS = NS = {}));
    var ATTRS;
    (function(ATTRS2) {
      ATTRS2["TYPE"] = "type";
      ATTRS2["ACTION"] = "action";
      ATTRS2["ENCODING"] = "encoding";
      ATTRS2["PROMPT"] = "prompt";
      ATTRS2["NAME"] = "name";
      ATTRS2["COLOR"] = "color";
      ATTRS2["FACE"] = "face";
      ATTRS2["SIZE"] = "size";
    })(ATTRS || (exports.ATTRS = ATTRS = {}));
    var DOCUMENT_MODE;
    (function(DOCUMENT_MODE2) {
      DOCUMENT_MODE2["NO_QUIRKS"] = "no-quirks";
      DOCUMENT_MODE2["QUIRKS"] = "quirks";
      DOCUMENT_MODE2["LIMITED_QUIRKS"] = "limited-quirks";
    })(DOCUMENT_MODE || (exports.DOCUMENT_MODE = DOCUMENT_MODE = {}));
    var TAG_NAMES;
    (function(TAG_NAMES2) {
      TAG_NAMES2["A"] = "a";
      TAG_NAMES2["ADDRESS"] = "address";
      TAG_NAMES2["ANNOTATION_XML"] = "annotation-xml";
      TAG_NAMES2["APPLET"] = "applet";
      TAG_NAMES2["AREA"] = "area";
      TAG_NAMES2["ARTICLE"] = "article";
      TAG_NAMES2["ASIDE"] = "aside";
      TAG_NAMES2["B"] = "b";
      TAG_NAMES2["BASE"] = "base";
      TAG_NAMES2["BASEFONT"] = "basefont";
      TAG_NAMES2["BGSOUND"] = "bgsound";
      TAG_NAMES2["BIG"] = "big";
      TAG_NAMES2["BLOCKQUOTE"] = "blockquote";
      TAG_NAMES2["BODY"] = "body";
      TAG_NAMES2["BR"] = "br";
      TAG_NAMES2["BUTTON"] = "button";
      TAG_NAMES2["CAPTION"] = "caption";
      TAG_NAMES2["CENTER"] = "center";
      TAG_NAMES2["CODE"] = "code";
      TAG_NAMES2["COL"] = "col";
      TAG_NAMES2["COLGROUP"] = "colgroup";
      TAG_NAMES2["DD"] = "dd";
      TAG_NAMES2["DESC"] = "desc";
      TAG_NAMES2["DETAILS"] = "details";
      TAG_NAMES2["DIALOG"] = "dialog";
      TAG_NAMES2["DIR"] = "dir";
      TAG_NAMES2["DIV"] = "div";
      TAG_NAMES2["DL"] = "dl";
      TAG_NAMES2["DT"] = "dt";
      TAG_NAMES2["EM"] = "em";
      TAG_NAMES2["EMBED"] = "embed";
      TAG_NAMES2["FIELDSET"] = "fieldset";
      TAG_NAMES2["FIGCAPTION"] = "figcaption";
      TAG_NAMES2["FIGURE"] = "figure";
      TAG_NAMES2["FONT"] = "font";
      TAG_NAMES2["FOOTER"] = "footer";
      TAG_NAMES2["FOREIGN_OBJECT"] = "foreignObject";
      TAG_NAMES2["FORM"] = "form";
      TAG_NAMES2["FRAME"] = "frame";
      TAG_NAMES2["FRAMESET"] = "frameset";
      TAG_NAMES2["H1"] = "h1";
      TAG_NAMES2["H2"] = "h2";
      TAG_NAMES2["H3"] = "h3";
      TAG_NAMES2["H4"] = "h4";
      TAG_NAMES2["H5"] = "h5";
      TAG_NAMES2["H6"] = "h6";
      TAG_NAMES2["HEAD"] = "head";
      TAG_NAMES2["HEADER"] = "header";
      TAG_NAMES2["HGROUP"] = "hgroup";
      TAG_NAMES2["HR"] = "hr";
      TAG_NAMES2["HTML"] = "html";
      TAG_NAMES2["I"] = "i";
      TAG_NAMES2["IMG"] = "img";
      TAG_NAMES2["IMAGE"] = "image";
      TAG_NAMES2["INPUT"] = "input";
      TAG_NAMES2["IFRAME"] = "iframe";
      TAG_NAMES2["KEYGEN"] = "keygen";
      TAG_NAMES2["LABEL"] = "label";
      TAG_NAMES2["LI"] = "li";
      TAG_NAMES2["LINK"] = "link";
      TAG_NAMES2["LISTING"] = "listing";
      TAG_NAMES2["MAIN"] = "main";
      TAG_NAMES2["MALIGNMARK"] = "malignmark";
      TAG_NAMES2["MARQUEE"] = "marquee";
      TAG_NAMES2["MATH"] = "math";
      TAG_NAMES2["MENU"] = "menu";
      TAG_NAMES2["META"] = "meta";
      TAG_NAMES2["MGLYPH"] = "mglyph";
      TAG_NAMES2["MI"] = "mi";
      TAG_NAMES2["MO"] = "mo";
      TAG_NAMES2["MN"] = "mn";
      TAG_NAMES2["MS"] = "ms";
      TAG_NAMES2["MTEXT"] = "mtext";
      TAG_NAMES2["NAV"] = "nav";
      TAG_NAMES2["NOBR"] = "nobr";
      TAG_NAMES2["NOFRAMES"] = "noframes";
      TAG_NAMES2["NOEMBED"] = "noembed";
      TAG_NAMES2["NOSCRIPT"] = "noscript";
      TAG_NAMES2["OBJECT"] = "object";
      TAG_NAMES2["OL"] = "ol";
      TAG_NAMES2["OPTGROUP"] = "optgroup";
      TAG_NAMES2["OPTION"] = "option";
      TAG_NAMES2["P"] = "p";
      TAG_NAMES2["PARAM"] = "param";
      TAG_NAMES2["PLAINTEXT"] = "plaintext";
      TAG_NAMES2["PRE"] = "pre";
      TAG_NAMES2["RB"] = "rb";
      TAG_NAMES2["RP"] = "rp";
      TAG_NAMES2["RT"] = "rt";
      TAG_NAMES2["RTC"] = "rtc";
      TAG_NAMES2["RUBY"] = "ruby";
      TAG_NAMES2["S"] = "s";
      TAG_NAMES2["SCRIPT"] = "script";
      TAG_NAMES2["SEARCH"] = "search";
      TAG_NAMES2["SECTION"] = "section";
      TAG_NAMES2["SELECT"] = "select";
      TAG_NAMES2["SOURCE"] = "source";
      TAG_NAMES2["SMALL"] = "small";
      TAG_NAMES2["SPAN"] = "span";
      TAG_NAMES2["STRIKE"] = "strike";
      TAG_NAMES2["STRONG"] = "strong";
      TAG_NAMES2["STYLE"] = "style";
      TAG_NAMES2["SUB"] = "sub";
      TAG_NAMES2["SUMMARY"] = "summary";
      TAG_NAMES2["SUP"] = "sup";
      TAG_NAMES2["TABLE"] = "table";
      TAG_NAMES2["TBODY"] = "tbody";
      TAG_NAMES2["TEMPLATE"] = "template";
      TAG_NAMES2["TEXTAREA"] = "textarea";
      TAG_NAMES2["TFOOT"] = "tfoot";
      TAG_NAMES2["TD"] = "td";
      TAG_NAMES2["TH"] = "th";
      TAG_NAMES2["THEAD"] = "thead";
      TAG_NAMES2["TITLE"] = "title";
      TAG_NAMES2["TR"] = "tr";
      TAG_NAMES2["TRACK"] = "track";
      TAG_NAMES2["TT"] = "tt";
      TAG_NAMES2["U"] = "u";
      TAG_NAMES2["UL"] = "ul";
      TAG_NAMES2["SVG"] = "svg";
      TAG_NAMES2["VAR"] = "var";
      TAG_NAMES2["WBR"] = "wbr";
      TAG_NAMES2["XMP"] = "xmp";
    })(TAG_NAMES || (exports.TAG_NAMES = TAG_NAMES = {}));
    var TAG_ID;
    (function(TAG_ID2) {
      TAG_ID2[TAG_ID2["UNKNOWN"] = 0] = "UNKNOWN";
      TAG_ID2[TAG_ID2["A"] = 1] = "A";
      TAG_ID2[TAG_ID2["ADDRESS"] = 2] = "ADDRESS";
      TAG_ID2[TAG_ID2["ANNOTATION_XML"] = 3] = "ANNOTATION_XML";
      TAG_ID2[TAG_ID2["APPLET"] = 4] = "APPLET";
      TAG_ID2[TAG_ID2["AREA"] = 5] = "AREA";
      TAG_ID2[TAG_ID2["ARTICLE"] = 6] = "ARTICLE";
      TAG_ID2[TAG_ID2["ASIDE"] = 7] = "ASIDE";
      TAG_ID2[TAG_ID2["B"] = 8] = "B";
      TAG_ID2[TAG_ID2["BASE"] = 9] = "BASE";
      TAG_ID2[TAG_ID2["BASEFONT"] = 10] = "BASEFONT";
      TAG_ID2[TAG_ID2["BGSOUND"] = 11] = "BGSOUND";
      TAG_ID2[TAG_ID2["BIG"] = 12] = "BIG";
      TAG_ID2[TAG_ID2["BLOCKQUOTE"] = 13] = "BLOCKQUOTE";
      TAG_ID2[TAG_ID2["BODY"] = 14] = "BODY";
      TAG_ID2[TAG_ID2["BR"] = 15] = "BR";
      TAG_ID2[TAG_ID2["BUTTON"] = 16] = "BUTTON";
      TAG_ID2[TAG_ID2["CAPTION"] = 17] = "CAPTION";
      TAG_ID2[TAG_ID2["CENTER"] = 18] = "CENTER";
      TAG_ID2[TAG_ID2["CODE"] = 19] = "CODE";
      TAG_ID2[TAG_ID2["COL"] = 20] = "COL";
      TAG_ID2[TAG_ID2["COLGROUP"] = 21] = "COLGROUP";
      TAG_ID2[TAG_ID2["DD"] = 22] = "DD";
      TAG_ID2[TAG_ID2["DESC"] = 23] = "DESC";
      TAG_ID2[TAG_ID2["DETAILS"] = 24] = "DETAILS";
      TAG_ID2[TAG_ID2["DIALOG"] = 25] = "DIALOG";
      TAG_ID2[TAG_ID2["DIR"] = 26] = "DIR";
      TAG_ID2[TAG_ID2["DIV"] = 27] = "DIV";
      TAG_ID2[TAG_ID2["DL"] = 28] = "DL";
      TAG_ID2[TAG_ID2["DT"] = 29] = "DT";
      TAG_ID2[TAG_ID2["EM"] = 30] = "EM";
      TAG_ID2[TAG_ID2["EMBED"] = 31] = "EMBED";
      TAG_ID2[TAG_ID2["FIELDSET"] = 32] = "FIELDSET";
      TAG_ID2[TAG_ID2["FIGCAPTION"] = 33] = "FIGCAPTION";
      TAG_ID2[TAG_ID2["FIGURE"] = 34] = "FIGURE";
      TAG_ID2[TAG_ID2["FONT"] = 35] = "FONT";
      TAG_ID2[TAG_ID2["FOOTER"] = 36] = "FOOTER";
      TAG_ID2[TAG_ID2["FOREIGN_OBJECT"] = 37] = "FOREIGN_OBJECT";
      TAG_ID2[TAG_ID2["FORM"] = 38] = "FORM";
      TAG_ID2[TAG_ID2["FRAME"] = 39] = "FRAME";
      TAG_ID2[TAG_ID2["FRAMESET"] = 40] = "FRAMESET";
      TAG_ID2[TAG_ID2["H1"] = 41] = "H1";
      TAG_ID2[TAG_ID2["H2"] = 42] = "H2";
      TAG_ID2[TAG_ID2["H3"] = 43] = "H3";
      TAG_ID2[TAG_ID2["H4"] = 44] = "H4";
      TAG_ID2[TAG_ID2["H5"] = 45] = "H5";
      TAG_ID2[TAG_ID2["H6"] = 46] = "H6";
      TAG_ID2[TAG_ID2["HEAD"] = 47] = "HEAD";
      TAG_ID2[TAG_ID2["HEADER"] = 48] = "HEADER";
      TAG_ID2[TAG_ID2["HGROUP"] = 49] = "HGROUP";
      TAG_ID2[TAG_ID2["HR"] = 50] = "HR";
      TAG_ID2[TAG_ID2["HTML"] = 51] = "HTML";
      TAG_ID2[TAG_ID2["I"] = 52] = "I";
      TAG_ID2[TAG_ID2["IMG"] = 53] = "IMG";
      TAG_ID2[TAG_ID2["IMAGE"] = 54] = "IMAGE";
      TAG_ID2[TAG_ID2["INPUT"] = 55] = "INPUT";
      TAG_ID2[TAG_ID2["IFRAME"] = 56] = "IFRAME";
      TAG_ID2[TAG_ID2["KEYGEN"] = 57] = "KEYGEN";
      TAG_ID2[TAG_ID2["LABEL"] = 58] = "LABEL";
      TAG_ID2[TAG_ID2["LI"] = 59] = "LI";
      TAG_ID2[TAG_ID2["LINK"] = 60] = "LINK";
      TAG_ID2[TAG_ID2["LISTING"] = 61] = "LISTING";
      TAG_ID2[TAG_ID2["MAIN"] = 62] = "MAIN";
      TAG_ID2[TAG_ID2["MALIGNMARK"] = 63] = "MALIGNMARK";
      TAG_ID2[TAG_ID2["MARQUEE"] = 64] = "MARQUEE";
      TAG_ID2[TAG_ID2["MATH"] = 65] = "MATH";
      TAG_ID2[TAG_ID2["MENU"] = 66] = "MENU";
      TAG_ID2[TAG_ID2["META"] = 67] = "META";
      TAG_ID2[TAG_ID2["MGLYPH"] = 68] = "MGLYPH";
      TAG_ID2[TAG_ID2["MI"] = 69] = "MI";
      TAG_ID2[TAG_ID2["MO"] = 70] = "MO";
      TAG_ID2[TAG_ID2["MN"] = 71] = "MN";
      TAG_ID2[TAG_ID2["MS"] = 72] = "MS";
      TAG_ID2[TAG_ID2["MTEXT"] = 73] = "MTEXT";
      TAG_ID2[TAG_ID2["NAV"] = 74] = "NAV";
      TAG_ID2[TAG_ID2["NOBR"] = 75] = "NOBR";
      TAG_ID2[TAG_ID2["NOFRAMES"] = 76] = "NOFRAMES";
      TAG_ID2[TAG_ID2["NOEMBED"] = 77] = "NOEMBED";
      TAG_ID2[TAG_ID2["NOSCRIPT"] = 78] = "NOSCRIPT";
      TAG_ID2[TAG_ID2["OBJECT"] = 79] = "OBJECT";
      TAG_ID2[TAG_ID2["OL"] = 80] = "OL";
      TAG_ID2[TAG_ID2["OPTGROUP"] = 81] = "OPTGROUP";
      TAG_ID2[TAG_ID2["OPTION"] = 82] = "OPTION";
      TAG_ID2[TAG_ID2["P"] = 83] = "P";
      TAG_ID2[TAG_ID2["PARAM"] = 84] = "PARAM";
      TAG_ID2[TAG_ID2["PLAINTEXT"] = 85] = "PLAINTEXT";
      TAG_ID2[TAG_ID2["PRE"] = 86] = "PRE";
      TAG_ID2[TAG_ID2["RB"] = 87] = "RB";
      TAG_ID2[TAG_ID2["RP"] = 88] = "RP";
      TAG_ID2[TAG_ID2["RT"] = 89] = "RT";
      TAG_ID2[TAG_ID2["RTC"] = 90] = "RTC";
      TAG_ID2[TAG_ID2["RUBY"] = 91] = "RUBY";
      TAG_ID2[TAG_ID2["S"] = 92] = "S";
      TAG_ID2[TAG_ID2["SCRIPT"] = 93] = "SCRIPT";
      TAG_ID2[TAG_ID2["SEARCH"] = 94] = "SEARCH";
      TAG_ID2[TAG_ID2["SECTION"] = 95] = "SECTION";
      TAG_ID2[TAG_ID2["SELECT"] = 96] = "SELECT";
      TAG_ID2[TAG_ID2["SOURCE"] = 97] = "SOURCE";
      TAG_ID2[TAG_ID2["SMALL"] = 98] = "SMALL";
      TAG_ID2[TAG_ID2["SPAN"] = 99] = "SPAN";
      TAG_ID2[TAG_ID2["STRIKE"] = 100] = "STRIKE";
      TAG_ID2[TAG_ID2["STRONG"] = 101] = "STRONG";
      TAG_ID2[TAG_ID2["STYLE"] = 102] = "STYLE";
      TAG_ID2[TAG_ID2["SUB"] = 103] = "SUB";
      TAG_ID2[TAG_ID2["SUMMARY"] = 104] = "SUMMARY";
      TAG_ID2[TAG_ID2["SUP"] = 105] = "SUP";
      TAG_ID2[TAG_ID2["TABLE"] = 106] = "TABLE";
      TAG_ID2[TAG_ID2["TBODY"] = 107] = "TBODY";
      TAG_ID2[TAG_ID2["TEMPLATE"] = 108] = "TEMPLATE";
      TAG_ID2[TAG_ID2["TEXTAREA"] = 109] = "TEXTAREA";
      TAG_ID2[TAG_ID2["TFOOT"] = 110] = "TFOOT";
      TAG_ID2[TAG_ID2["TD"] = 111] = "TD";
      TAG_ID2[TAG_ID2["TH"] = 112] = "TH";
      TAG_ID2[TAG_ID2["THEAD"] = 113] = "THEAD";
      TAG_ID2[TAG_ID2["TITLE"] = 114] = "TITLE";
      TAG_ID2[TAG_ID2["TR"] = 115] = "TR";
      TAG_ID2[TAG_ID2["TRACK"] = 116] = "TRACK";
      TAG_ID2[TAG_ID2["TT"] = 117] = "TT";
      TAG_ID2[TAG_ID2["U"] = 118] = "U";
      TAG_ID2[TAG_ID2["UL"] = 119] = "UL";
      TAG_ID2[TAG_ID2["SVG"] = 120] = "SVG";
      TAG_ID2[TAG_ID2["VAR"] = 121] = "VAR";
      TAG_ID2[TAG_ID2["WBR"] = 122] = "WBR";
      TAG_ID2[TAG_ID2["XMP"] = 123] = "XMP";
    })(TAG_ID || (exports.TAG_ID = TAG_ID = {}));
    var TAG_NAME_TO_ID = /* @__PURE__ */ new Map([
      [TAG_NAMES.A, TAG_ID.A],
      [TAG_NAMES.ADDRESS, TAG_ID.ADDRESS],
      [TAG_NAMES.ANNOTATION_XML, TAG_ID.ANNOTATION_XML],
      [TAG_NAMES.APPLET, TAG_ID.APPLET],
      [TAG_NAMES.AREA, TAG_ID.AREA],
      [TAG_NAMES.ARTICLE, TAG_ID.ARTICLE],
      [TAG_NAMES.ASIDE, TAG_ID.ASIDE],
      [TAG_NAMES.B, TAG_ID.B],
      [TAG_NAMES.BASE, TAG_ID.BASE],
      [TAG_NAMES.BASEFONT, TAG_ID.BASEFONT],
      [TAG_NAMES.BGSOUND, TAG_ID.BGSOUND],
      [TAG_NAMES.BIG, TAG_ID.BIG],
      [TAG_NAMES.BLOCKQUOTE, TAG_ID.BLOCKQUOTE],
      [TAG_NAMES.BODY, TAG_ID.BODY],
      [TAG_NAMES.BR, TAG_ID.BR],
      [TAG_NAMES.BUTTON, TAG_ID.BUTTON],
      [TAG_NAMES.CAPTION, TAG_ID.CAPTION],
      [TAG_NAMES.CENTER, TAG_ID.CENTER],
      [TAG_NAMES.CODE, TAG_ID.CODE],
      [TAG_NAMES.COL, TAG_ID.COL],
      [TAG_NAMES.COLGROUP, TAG_ID.COLGROUP],
      [TAG_NAMES.DD, TAG_ID.DD],
      [TAG_NAMES.DESC, TAG_ID.DESC],
      [TAG_NAMES.DETAILS, TAG_ID.DETAILS],
      [TAG_NAMES.DIALOG, TAG_ID.DIALOG],
      [TAG_NAMES.DIR, TAG_ID.DIR],
      [TAG_NAMES.DIV, TAG_ID.DIV],
      [TAG_NAMES.DL, TAG_ID.DL],
      [TAG_NAMES.DT, TAG_ID.DT],
      [TAG_NAMES.EM, TAG_ID.EM],
      [TAG_NAMES.EMBED, TAG_ID.EMBED],
      [TAG_NAMES.FIELDSET, TAG_ID.FIELDSET],
      [TAG_NAMES.FIGCAPTION, TAG_ID.FIGCAPTION],
      [TAG_NAMES.FIGURE, TAG_ID.FIGURE],
      [TAG_NAMES.FONT, TAG_ID.FONT],
      [TAG_NAMES.FOOTER, TAG_ID.FOOTER],
      [TAG_NAMES.FOREIGN_OBJECT, TAG_ID.FOREIGN_OBJECT],
      [TAG_NAMES.FORM, TAG_ID.FORM],
      [TAG_NAMES.FRAME, TAG_ID.FRAME],
      [TAG_NAMES.FRAMESET, TAG_ID.FRAMESET],
      [TAG_NAMES.H1, TAG_ID.H1],
      [TAG_NAMES.H2, TAG_ID.H2],
      [TAG_NAMES.H3, TAG_ID.H3],
      [TAG_NAMES.H4, TAG_ID.H4],
      [TAG_NAMES.H5, TAG_ID.H5],
      [TAG_NAMES.H6, TAG_ID.H6],
      [TAG_NAMES.HEAD, TAG_ID.HEAD],
      [TAG_NAMES.HEADER, TAG_ID.HEADER],
      [TAG_NAMES.HGROUP, TAG_ID.HGROUP],
      [TAG_NAMES.HR, TAG_ID.HR],
      [TAG_NAMES.HTML, TAG_ID.HTML],
      [TAG_NAMES.I, TAG_ID.I],
      [TAG_NAMES.IMG, TAG_ID.IMG],
      [TAG_NAMES.IMAGE, TAG_ID.IMAGE],
      [TAG_NAMES.INPUT, TAG_ID.INPUT],
      [TAG_NAMES.IFRAME, TAG_ID.IFRAME],
      [TAG_NAMES.KEYGEN, TAG_ID.KEYGEN],
      [TAG_NAMES.LABEL, TAG_ID.LABEL],
      [TAG_NAMES.LI, TAG_ID.LI],
      [TAG_NAMES.LINK, TAG_ID.LINK],
      [TAG_NAMES.LISTING, TAG_ID.LISTING],
      [TAG_NAMES.MAIN, TAG_ID.MAIN],
      [TAG_NAMES.MALIGNMARK, TAG_ID.MALIGNMARK],
      [TAG_NAMES.MARQUEE, TAG_ID.MARQUEE],
      [TAG_NAMES.MATH, TAG_ID.MATH],
      [TAG_NAMES.MENU, TAG_ID.MENU],
      [TAG_NAMES.META, TAG_ID.META],
      [TAG_NAMES.MGLYPH, TAG_ID.MGLYPH],
      [TAG_NAMES.MI, TAG_ID.MI],
      [TAG_NAMES.MO, TAG_ID.MO],
      [TAG_NAMES.MN, TAG_ID.MN],
      [TAG_NAMES.MS, TAG_ID.MS],
      [TAG_NAMES.MTEXT, TAG_ID.MTEXT],
      [TAG_NAMES.NAV, TAG_ID.NAV],
      [TAG_NAMES.NOBR, TAG_ID.NOBR],
      [TAG_NAMES.NOFRAMES, TAG_ID.NOFRAMES],
      [TAG_NAMES.NOEMBED, TAG_ID.NOEMBED],
      [TAG_NAMES.NOSCRIPT, TAG_ID.NOSCRIPT],
      [TAG_NAMES.OBJECT, TAG_ID.OBJECT],
      [TAG_NAMES.OL, TAG_ID.OL],
      [TAG_NAMES.OPTGROUP, TAG_ID.OPTGROUP],
      [TAG_NAMES.OPTION, TAG_ID.OPTION],
      [TAG_NAMES.P, TAG_ID.P],
      [TAG_NAMES.PARAM, TAG_ID.PARAM],
      [TAG_NAMES.PLAINTEXT, TAG_ID.PLAINTEXT],
      [TAG_NAMES.PRE, TAG_ID.PRE],
      [TAG_NAMES.RB, TAG_ID.RB],
      [TAG_NAMES.RP, TAG_ID.RP],
      [TAG_NAMES.RT, TAG_ID.RT],
      [TAG_NAMES.RTC, TAG_ID.RTC],
      [TAG_NAMES.RUBY, TAG_ID.RUBY],
      [TAG_NAMES.S, TAG_ID.S],
      [TAG_NAMES.SCRIPT, TAG_ID.SCRIPT],
      [TAG_NAMES.SEARCH, TAG_ID.SEARCH],
      [TAG_NAMES.SECTION, TAG_ID.SECTION],
      [TAG_NAMES.SELECT, TAG_ID.SELECT],
      [TAG_NAMES.SOURCE, TAG_ID.SOURCE],
      [TAG_NAMES.SMALL, TAG_ID.SMALL],
      [TAG_NAMES.SPAN, TAG_ID.SPAN],
      [TAG_NAMES.STRIKE, TAG_ID.STRIKE],
      [TAG_NAMES.STRONG, TAG_ID.STRONG],
      [TAG_NAMES.STYLE, TAG_ID.STYLE],
      [TAG_NAMES.SUB, TAG_ID.SUB],
      [TAG_NAMES.SUMMARY, TAG_ID.SUMMARY],
      [TAG_NAMES.SUP, TAG_ID.SUP],
      [TAG_NAMES.TABLE, TAG_ID.TABLE],
      [TAG_NAMES.TBODY, TAG_ID.TBODY],
      [TAG_NAMES.TEMPLATE, TAG_ID.TEMPLATE],
      [TAG_NAMES.TEXTAREA, TAG_ID.TEXTAREA],
      [TAG_NAMES.TFOOT, TAG_ID.TFOOT],
      [TAG_NAMES.TD, TAG_ID.TD],
      [TAG_NAMES.TH, TAG_ID.TH],
      [TAG_NAMES.THEAD, TAG_ID.THEAD],
      [TAG_NAMES.TITLE, TAG_ID.TITLE],
      [TAG_NAMES.TR, TAG_ID.TR],
      [TAG_NAMES.TRACK, TAG_ID.TRACK],
      [TAG_NAMES.TT, TAG_ID.TT],
      [TAG_NAMES.U, TAG_ID.U],
      [TAG_NAMES.UL, TAG_ID.UL],
      [TAG_NAMES.SVG, TAG_ID.SVG],
      [TAG_NAMES.VAR, TAG_ID.VAR],
      [TAG_NAMES.WBR, TAG_ID.WBR],
      [TAG_NAMES.XMP, TAG_ID.XMP]
    ]);
    function getTagID(tagName) {
      var _a2;
      return (_a2 = TAG_NAME_TO_ID.get(tagName)) !== null && _a2 !== void 0 ? _a2 : TAG_ID.UNKNOWN;
    }
    var $ = TAG_ID;
    exports.SPECIAL_ELEMENTS = {
      [NS.HTML]: /* @__PURE__ */ new Set([
        $.ADDRESS,
        $.APPLET,
        $.AREA,
        $.ARTICLE,
        $.ASIDE,
        $.BASE,
        $.BASEFONT,
        $.BGSOUND,
        $.BLOCKQUOTE,
        $.BODY,
        $.BR,
        $.BUTTON,
        $.CAPTION,
        $.CENTER,
        $.COL,
        $.COLGROUP,
        $.DD,
        $.DETAILS,
        $.DIR,
        $.DIV,
        $.DL,
        $.DT,
        $.EMBED,
        $.FIELDSET,
        $.FIGCAPTION,
        $.FIGURE,
        $.FOOTER,
        $.FORM,
        $.FRAME,
        $.FRAMESET,
        $.H1,
        $.H2,
        $.H3,
        $.H4,
        $.H5,
        $.H6,
        $.HEAD,
        $.HEADER,
        $.HGROUP,
        $.HR,
        $.HTML,
        $.IFRAME,
        $.IMG,
        $.INPUT,
        $.LI,
        $.LINK,
        $.LISTING,
        $.MAIN,
        $.MARQUEE,
        $.MENU,
        $.META,
        $.NAV,
        $.NOEMBED,
        $.NOFRAMES,
        $.NOSCRIPT,
        $.OBJECT,
        $.OL,
        $.P,
        $.PARAM,
        $.PLAINTEXT,
        $.PRE,
        $.SCRIPT,
        $.SECTION,
        $.SELECT,
        $.SOURCE,
        $.STYLE,
        $.SUMMARY,
        $.TABLE,
        $.TBODY,
        $.TD,
        $.TEMPLATE,
        $.TEXTAREA,
        $.TFOOT,
        $.TH,
        $.THEAD,
        $.TITLE,
        $.TR,
        $.TRACK,
        $.UL,
        $.WBR,
        $.XMP
      ]),
      [NS.MATHML]: /* @__PURE__ */ new Set([$.MI, $.MO, $.MN, $.MS, $.MTEXT, $.ANNOTATION_XML]),
      [NS.SVG]: /* @__PURE__ */ new Set([$.TITLE, $.FOREIGN_OBJECT, $.DESC]),
      [NS.XLINK]: /* @__PURE__ */ new Set(),
      [NS.XML]: /* @__PURE__ */ new Set(),
      [NS.XMLNS]: /* @__PURE__ */ new Set()
    };
    exports.NUMBERED_HEADERS = /* @__PURE__ */ new Set([$.H1, $.H2, $.H3, $.H4, $.H5, $.H6]);
    var UNESCAPED_TEXT = /* @__PURE__ */ new Set([
      TAG_NAMES.STYLE,
      TAG_NAMES.SCRIPT,
      TAG_NAMES.XMP,
      TAG_NAMES.IFRAME,
      TAG_NAMES.NOEMBED,
      TAG_NAMES.NOFRAMES,
      TAG_NAMES.PLAINTEXT
    ]);
    function hasUnescapedText(tn, scriptingEnabled) {
      return UNESCAPED_TEXT.has(tn) || scriptingEnabled && tn === TAG_NAMES.NOSCRIPT;
    }
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/tokenizer/index.js
var require_tokenizer = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/tokenizer/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Tokenizer = exports.TokenizerMode = void 0;
    var preprocessor_js_1 = require_preprocessor();
    var unicode_js_1 = require_unicode2();
    var token_js_1 = require_token();
    var decode_1 = require_decode2();
    var error_codes_js_1 = require_error_codes();
    var html_js_1 = require_html();
    var State;
    (function(State2) {
      State2[State2["DATA"] = 0] = "DATA";
      State2[State2["RCDATA"] = 1] = "RCDATA";
      State2[State2["RAWTEXT"] = 2] = "RAWTEXT";
      State2[State2["SCRIPT_DATA"] = 3] = "SCRIPT_DATA";
      State2[State2["PLAINTEXT"] = 4] = "PLAINTEXT";
      State2[State2["TAG_OPEN"] = 5] = "TAG_OPEN";
      State2[State2["END_TAG_OPEN"] = 6] = "END_TAG_OPEN";
      State2[State2["TAG_NAME"] = 7] = "TAG_NAME";
      State2[State2["RCDATA_LESS_THAN_SIGN"] = 8] = "RCDATA_LESS_THAN_SIGN";
      State2[State2["RCDATA_END_TAG_OPEN"] = 9] = "RCDATA_END_TAG_OPEN";
      State2[State2["RCDATA_END_TAG_NAME"] = 10] = "RCDATA_END_TAG_NAME";
      State2[State2["RAWTEXT_LESS_THAN_SIGN"] = 11] = "RAWTEXT_LESS_THAN_SIGN";
      State2[State2["RAWTEXT_END_TAG_OPEN"] = 12] = "RAWTEXT_END_TAG_OPEN";
      State2[State2["RAWTEXT_END_TAG_NAME"] = 13] = "RAWTEXT_END_TAG_NAME";
      State2[State2["SCRIPT_DATA_LESS_THAN_SIGN"] = 14] = "SCRIPT_DATA_LESS_THAN_SIGN";
      State2[State2["SCRIPT_DATA_END_TAG_OPEN"] = 15] = "SCRIPT_DATA_END_TAG_OPEN";
      State2[State2["SCRIPT_DATA_END_TAG_NAME"] = 16] = "SCRIPT_DATA_END_TAG_NAME";
      State2[State2["SCRIPT_DATA_ESCAPE_START"] = 17] = "SCRIPT_DATA_ESCAPE_START";
      State2[State2["SCRIPT_DATA_ESCAPE_START_DASH"] = 18] = "SCRIPT_DATA_ESCAPE_START_DASH";
      State2[State2["SCRIPT_DATA_ESCAPED"] = 19] = "SCRIPT_DATA_ESCAPED";
      State2[State2["SCRIPT_DATA_ESCAPED_DASH"] = 20] = "SCRIPT_DATA_ESCAPED_DASH";
      State2[State2["SCRIPT_DATA_ESCAPED_DASH_DASH"] = 21] = "SCRIPT_DATA_ESCAPED_DASH_DASH";
      State2[State2["SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN"] = 22] = "SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN";
      State2[State2["SCRIPT_DATA_ESCAPED_END_TAG_OPEN"] = 23] = "SCRIPT_DATA_ESCAPED_END_TAG_OPEN";
      State2[State2["SCRIPT_DATA_ESCAPED_END_TAG_NAME"] = 24] = "SCRIPT_DATA_ESCAPED_END_TAG_NAME";
      State2[State2["SCRIPT_DATA_DOUBLE_ESCAPE_START"] = 25] = "SCRIPT_DATA_DOUBLE_ESCAPE_START";
      State2[State2["SCRIPT_DATA_DOUBLE_ESCAPED"] = 26] = "SCRIPT_DATA_DOUBLE_ESCAPED";
      State2[State2["SCRIPT_DATA_DOUBLE_ESCAPED_DASH"] = 27] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH";
      State2[State2["SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH"] = 28] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH";
      State2[State2["SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN"] = 29] = "SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN";
      State2[State2["SCRIPT_DATA_DOUBLE_ESCAPE_END"] = 30] = "SCRIPT_DATA_DOUBLE_ESCAPE_END";
      State2[State2["BEFORE_ATTRIBUTE_NAME"] = 31] = "BEFORE_ATTRIBUTE_NAME";
      State2[State2["ATTRIBUTE_NAME"] = 32] = "ATTRIBUTE_NAME";
      State2[State2["AFTER_ATTRIBUTE_NAME"] = 33] = "AFTER_ATTRIBUTE_NAME";
      State2[State2["BEFORE_ATTRIBUTE_VALUE"] = 34] = "BEFORE_ATTRIBUTE_VALUE";
      State2[State2["ATTRIBUTE_VALUE_DOUBLE_QUOTED"] = 35] = "ATTRIBUTE_VALUE_DOUBLE_QUOTED";
      State2[State2["ATTRIBUTE_VALUE_SINGLE_QUOTED"] = 36] = "ATTRIBUTE_VALUE_SINGLE_QUOTED";
      State2[State2["ATTRIBUTE_VALUE_UNQUOTED"] = 37] = "ATTRIBUTE_VALUE_UNQUOTED";
      State2[State2["AFTER_ATTRIBUTE_VALUE_QUOTED"] = 38] = "AFTER_ATTRIBUTE_VALUE_QUOTED";
      State2[State2["SELF_CLOSING_START_TAG"] = 39] = "SELF_CLOSING_START_TAG";
      State2[State2["BOGUS_COMMENT"] = 40] = "BOGUS_COMMENT";
      State2[State2["MARKUP_DECLARATION_OPEN"] = 41] = "MARKUP_DECLARATION_OPEN";
      State2[State2["COMMENT_START"] = 42] = "COMMENT_START";
      State2[State2["COMMENT_START_DASH"] = 43] = "COMMENT_START_DASH";
      State2[State2["COMMENT"] = 44] = "COMMENT";
      State2[State2["COMMENT_LESS_THAN_SIGN"] = 45] = "COMMENT_LESS_THAN_SIGN";
      State2[State2["COMMENT_LESS_THAN_SIGN_BANG"] = 46] = "COMMENT_LESS_THAN_SIGN_BANG";
      State2[State2["COMMENT_LESS_THAN_SIGN_BANG_DASH"] = 47] = "COMMENT_LESS_THAN_SIGN_BANG_DASH";
      State2[State2["COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH"] = 48] = "COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH";
      State2[State2["COMMENT_END_DASH"] = 49] = "COMMENT_END_DASH";
      State2[State2["COMMENT_END"] = 50] = "COMMENT_END";
      State2[State2["COMMENT_END_BANG"] = 51] = "COMMENT_END_BANG";
      State2[State2["DOCTYPE"] = 52] = "DOCTYPE";
      State2[State2["BEFORE_DOCTYPE_NAME"] = 53] = "BEFORE_DOCTYPE_NAME";
      State2[State2["DOCTYPE_NAME"] = 54] = "DOCTYPE_NAME";
      State2[State2["AFTER_DOCTYPE_NAME"] = 55] = "AFTER_DOCTYPE_NAME";
      State2[State2["AFTER_DOCTYPE_PUBLIC_KEYWORD"] = 56] = "AFTER_DOCTYPE_PUBLIC_KEYWORD";
      State2[State2["BEFORE_DOCTYPE_PUBLIC_IDENTIFIER"] = 57] = "BEFORE_DOCTYPE_PUBLIC_IDENTIFIER";
      State2[State2["DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED"] = 58] = "DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED";
      State2[State2["DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED"] = 59] = "DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED";
      State2[State2["AFTER_DOCTYPE_PUBLIC_IDENTIFIER"] = 60] = "AFTER_DOCTYPE_PUBLIC_IDENTIFIER";
      State2[State2["BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS"] = 61] = "BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS";
      State2[State2["AFTER_DOCTYPE_SYSTEM_KEYWORD"] = 62] = "AFTER_DOCTYPE_SYSTEM_KEYWORD";
      State2[State2["BEFORE_DOCTYPE_SYSTEM_IDENTIFIER"] = 63] = "BEFORE_DOCTYPE_SYSTEM_IDENTIFIER";
      State2[State2["DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED"] = 64] = "DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED";
      State2[State2["DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED"] = 65] = "DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED";
      State2[State2["AFTER_DOCTYPE_SYSTEM_IDENTIFIER"] = 66] = "AFTER_DOCTYPE_SYSTEM_IDENTIFIER";
      State2[State2["BOGUS_DOCTYPE"] = 67] = "BOGUS_DOCTYPE";
      State2[State2["CDATA_SECTION"] = 68] = "CDATA_SECTION";
      State2[State2["CDATA_SECTION_BRACKET"] = 69] = "CDATA_SECTION_BRACKET";
      State2[State2["CDATA_SECTION_END"] = 70] = "CDATA_SECTION_END";
      State2[State2["CHARACTER_REFERENCE"] = 71] = "CHARACTER_REFERENCE";
      State2[State2["AMBIGUOUS_AMPERSAND"] = 72] = "AMBIGUOUS_AMPERSAND";
    })(State || (State = {}));
    exports.TokenizerMode = {
      DATA: State.DATA,
      RCDATA: State.RCDATA,
      RAWTEXT: State.RAWTEXT,
      SCRIPT_DATA: State.SCRIPT_DATA,
      PLAINTEXT: State.PLAINTEXT,
      CDATA_SECTION: State.CDATA_SECTION
    };
    function isAsciiDigit(cp) {
      return cp >= unicode_js_1.CODE_POINTS.DIGIT_0 && cp <= unicode_js_1.CODE_POINTS.DIGIT_9;
    }
    function isAsciiUpper(cp) {
      return cp >= unicode_js_1.CODE_POINTS.LATIN_CAPITAL_A && cp <= unicode_js_1.CODE_POINTS.LATIN_CAPITAL_Z;
    }
    function isAsciiLower(cp) {
      return cp >= unicode_js_1.CODE_POINTS.LATIN_SMALL_A && cp <= unicode_js_1.CODE_POINTS.LATIN_SMALL_Z;
    }
    function isAsciiLetter(cp) {
      return isAsciiLower(cp) || isAsciiUpper(cp);
    }
    function isAsciiAlphaNumeric(cp) {
      return isAsciiLetter(cp) || isAsciiDigit(cp);
    }
    function toAsciiLower(cp) {
      return cp + 32;
    }
    function isWhitespace(cp) {
      return cp === unicode_js_1.CODE_POINTS.SPACE || cp === unicode_js_1.CODE_POINTS.LINE_FEED || cp === unicode_js_1.CODE_POINTS.TABULATION || cp === unicode_js_1.CODE_POINTS.FORM_FEED;
    }
    function isScriptDataDoubleEscapeSequenceEnd(cp) {
      return isWhitespace(cp) || cp === unicode_js_1.CODE_POINTS.SOLIDUS || cp === unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN;
    }
    function getErrorForNumericCharacterReference(code) {
      if (code === unicode_js_1.CODE_POINTS.NULL) {
        return error_codes_js_1.ERR.nullCharacterReference;
      } else if (code > 1114111) {
        return error_codes_js_1.ERR.characterReferenceOutsideUnicodeRange;
      } else if ((0, unicode_js_1.isSurrogate)(code)) {
        return error_codes_js_1.ERR.surrogateCharacterReference;
      } else if ((0, unicode_js_1.isUndefinedCodePoint)(code)) {
        return error_codes_js_1.ERR.noncharacterCharacterReference;
      } else if ((0, unicode_js_1.isControlCodePoint)(code) || code === unicode_js_1.CODE_POINTS.CARRIAGE_RETURN) {
        return error_codes_js_1.ERR.controlCharacterReference;
      }
      return null;
    }
    var Tokenizer = class {
      constructor(options, handler) {
        this.options = options;
        this.handler = handler;
        this.paused = false;
        this.inLoop = false;
        this.inForeignNode = false;
        this.lastStartTagName = "";
        this.active = false;
        this.state = State.DATA;
        this.returnState = State.DATA;
        this.entityStartPos = 0;
        this.consumedAfterSnapshot = -1;
        this.currentCharacterToken = null;
        this.currentToken = null;
        this.currentAttr = { name: "", value: "" };
        this.preprocessor = new preprocessor_js_1.Preprocessor(handler);
        this.currentLocation = this.getCurrentLocation(-1);
        this.entityDecoder = new decode_1.EntityDecoder(decode_1.htmlDecodeTree, (cp, consumed) => {
          this.preprocessor.pos = this.entityStartPos + consumed - 1;
          this._flushCodePointConsumedAsCharacterReference(cp);
        }, handler.onParseError ? {
          missingSemicolonAfterCharacterReference: () => {
            this._err(error_codes_js_1.ERR.missingSemicolonAfterCharacterReference, 1);
          },
          absenceOfDigitsInNumericCharacterReference: (consumed) => {
            this._err(error_codes_js_1.ERR.absenceOfDigitsInNumericCharacterReference, this.entityStartPos - this.preprocessor.pos + consumed);
          },
          validateNumericCharacterReference: (code) => {
            const error = getErrorForNumericCharacterReference(code);
            if (error)
              this._err(error, 1);
          }
        } : void 0);
      }
      //Errors
      _err(code, cpOffset = 0) {
        var _a2, _b2;
        (_b2 = (_a2 = this.handler).onParseError) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, this.preprocessor.getError(code, cpOffset));
      }
      // NOTE: `offset` may never run across line boundaries.
      getCurrentLocation(offset2) {
        if (!this.options.sourceCodeLocationInfo) {
          return null;
        }
        return {
          startLine: this.preprocessor.line,
          startCol: this.preprocessor.col - offset2,
          startOffset: this.preprocessor.offset - offset2,
          endLine: -1,
          endCol: -1,
          endOffset: -1
        };
      }
      _runParsingLoop() {
        if (this.inLoop)
          return;
        this.inLoop = true;
        while (this.active && !this.paused) {
          this.consumedAfterSnapshot = 0;
          const cp = this._consume();
          if (!this._ensureHibernation()) {
            this._callState(cp);
          }
        }
        this.inLoop = false;
      }
      //API
      pause() {
        this.paused = true;
      }
      resume(writeCallback) {
        if (!this.paused) {
          throw new Error("Parser was already resumed");
        }
        this.paused = false;
        if (this.inLoop)
          return;
        this._runParsingLoop();
        if (!this.paused) {
          writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();
        }
      }
      write(chunk3, isLastChunk, writeCallback) {
        this.active = true;
        this.preprocessor.write(chunk3, isLastChunk);
        this._runParsingLoop();
        if (!this.paused) {
          writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();
        }
      }
      insertHtmlAtCurrentPos(chunk3) {
        this.active = true;
        this.preprocessor.insertHtmlAtCurrentPos(chunk3);
        this._runParsingLoop();
      }
      //Hibernation
      _ensureHibernation() {
        if (this.preprocessor.endOfChunkHit) {
          this.preprocessor.retreat(this.consumedAfterSnapshot);
          this.consumedAfterSnapshot = 0;
          this.active = false;
          return true;
        }
        return false;
      }
      //Consumption
      _consume() {
        this.consumedAfterSnapshot++;
        return this.preprocessor.advance();
      }
      _advanceBy(count) {
        this.consumedAfterSnapshot += count;
        for (let i5 = 0; i5 < count; i5++) {
          this.preprocessor.advance();
        }
      }
      _consumeSequenceIfMatch(pattern3, caseSensitive) {
        if (this.preprocessor.startsWith(pattern3, caseSensitive)) {
          this._advanceBy(pattern3.length - 1);
          return true;
        }
        return false;
      }
      //Token creation
      _createStartTagToken() {
        this.currentToken = {
          type: token_js_1.TokenType.START_TAG,
          tagName: "",
          tagID: html_js_1.TAG_ID.UNKNOWN,
          selfClosing: false,
          ackSelfClosing: false,
          attrs: [],
          location: this.getCurrentLocation(1)
        };
      }
      _createEndTagToken() {
        this.currentToken = {
          type: token_js_1.TokenType.END_TAG,
          tagName: "",
          tagID: html_js_1.TAG_ID.UNKNOWN,
          selfClosing: false,
          ackSelfClosing: false,
          attrs: [],
          location: this.getCurrentLocation(2)
        };
      }
      _createCommentToken(offset2) {
        this.currentToken = {
          type: token_js_1.TokenType.COMMENT,
          data: "",
          location: this.getCurrentLocation(offset2)
        };
      }
      _createDoctypeToken(initialName) {
        this.currentToken = {
          type: token_js_1.TokenType.DOCTYPE,
          name: initialName,
          forceQuirks: false,
          publicId: null,
          systemId: null,
          location: this.currentLocation
        };
      }
      _createCharacterToken(type, chars) {
        this.currentCharacterToken = {
          type,
          chars,
          location: this.currentLocation
        };
      }
      //Tag attributes
      _createAttr(attrNameFirstCh) {
        this.currentAttr = {
          name: attrNameFirstCh,
          value: ""
        };
        this.currentLocation = this.getCurrentLocation(0);
      }
      _leaveAttrName() {
        var _a2;
        var _b2;
        const token = this.currentToken;
        if ((0, token_js_1.getTokenAttr)(token, this.currentAttr.name) === null) {
          token.attrs.push(this.currentAttr);
          if (token.location && this.currentLocation) {
            const attrLocations = (_a2 = (_b2 = token.location).attrs) !== null && _a2 !== void 0 ? _a2 : _b2.attrs = /* @__PURE__ */ Object.create(null);
            attrLocations[this.currentAttr.name] = this.currentLocation;
            this._leaveAttrValue();
          }
        } else {
          this._err(error_codes_js_1.ERR.duplicateAttribute);
        }
      }
      _leaveAttrValue() {
        if (this.currentLocation) {
          this.currentLocation.endLine = this.preprocessor.line;
          this.currentLocation.endCol = this.preprocessor.col;
          this.currentLocation.endOffset = this.preprocessor.offset;
        }
      }
      //Token emission
      prepareToken(ct) {
        this._emitCurrentCharacterToken(ct.location);
        this.currentToken = null;
        if (ct.location) {
          ct.location.endLine = this.preprocessor.line;
          ct.location.endCol = this.preprocessor.col + 1;
          ct.location.endOffset = this.preprocessor.offset + 1;
        }
        this.currentLocation = this.getCurrentLocation(-1);
      }
      emitCurrentTagToken() {
        const ct = this.currentToken;
        this.prepareToken(ct);
        ct.tagID = (0, html_js_1.getTagID)(ct.tagName);
        if (ct.type === token_js_1.TokenType.START_TAG) {
          this.lastStartTagName = ct.tagName;
          this.handler.onStartTag(ct);
        } else {
          if (ct.attrs.length > 0) {
            this._err(error_codes_js_1.ERR.endTagWithAttributes);
          }
          if (ct.selfClosing) {
            this._err(error_codes_js_1.ERR.endTagWithTrailingSolidus);
          }
          this.handler.onEndTag(ct);
        }
        this.preprocessor.dropParsedChunk();
      }
      emitCurrentComment(ct) {
        this.prepareToken(ct);
        this.handler.onComment(ct);
        this.preprocessor.dropParsedChunk();
      }
      emitCurrentDoctype(ct) {
        this.prepareToken(ct);
        this.handler.onDoctype(ct);
        this.preprocessor.dropParsedChunk();
      }
      _emitCurrentCharacterToken(nextLocation) {
        if (this.currentCharacterToken) {
          if (nextLocation && this.currentCharacterToken.location) {
            this.currentCharacterToken.location.endLine = nextLocation.startLine;
            this.currentCharacterToken.location.endCol = nextLocation.startCol;
            this.currentCharacterToken.location.endOffset = nextLocation.startOffset;
          }
          switch (this.currentCharacterToken.type) {
            case token_js_1.TokenType.CHARACTER: {
              this.handler.onCharacter(this.currentCharacterToken);
              break;
            }
            case token_js_1.TokenType.NULL_CHARACTER: {
              this.handler.onNullCharacter(this.currentCharacterToken);
              break;
            }
            case token_js_1.TokenType.WHITESPACE_CHARACTER: {
              this.handler.onWhitespaceCharacter(this.currentCharacterToken);
              break;
            }
          }
          this.currentCharacterToken = null;
        }
      }
      _emitEOFToken() {
        const location = this.getCurrentLocation(0);
        if (location) {
          location.endLine = location.startLine;
          location.endCol = location.startCol;
          location.endOffset = location.startOffset;
        }
        this._emitCurrentCharacterToken(location);
        this.handler.onEof({ type: token_js_1.TokenType.EOF, location });
        this.active = false;
      }
      //Characters emission
      //OPTIMIZATION: The specification uses only one type of character token (one token per character).
      //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.
      //If we have a sequence of characters that belong to the same group, the parser can process it
      //as a single solid character token.
      //So, there are 3 types of character tokens in parse5:
      //1)TokenType.NULL_CHARACTER - \u0000-character sequences (e.g. '\u0000\u0000\u0000')
      //2)TokenType.WHITESPACE_CHARACTER - any whitespace/new-line character sequences (e.g. '\n  \r\t   \f')
      //3)TokenType.CHARACTER - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')
      _appendCharToCurrentCharacterToken(type, ch) {
        if (this.currentCharacterToken) {
          if (this.currentCharacterToken.type === type) {
            this.currentCharacterToken.chars += ch;
            return;
          } else {
            this.currentLocation = this.getCurrentLocation(0);
            this._emitCurrentCharacterToken(this.currentLocation);
            this.preprocessor.dropParsedChunk();
          }
        }
        this._createCharacterToken(type, ch);
      }
      _emitCodePoint(cp) {
        const type = isWhitespace(cp) ? token_js_1.TokenType.WHITESPACE_CHARACTER : cp === unicode_js_1.CODE_POINTS.NULL ? token_js_1.TokenType.NULL_CHARACTER : token_js_1.TokenType.CHARACTER;
        this._appendCharToCurrentCharacterToken(type, String.fromCodePoint(cp));
      }
      //NOTE: used when we emit characters explicitly.
      //This is always for non-whitespace and non-null characters, which allows us to avoid additional checks.
      _emitChars(ch) {
        this._appendCharToCurrentCharacterToken(token_js_1.TokenType.CHARACTER, ch);
      }
      // Character reference helpers
      _startCharacterReference() {
        this.returnState = this.state;
        this.state = State.CHARACTER_REFERENCE;
        this.entityStartPos = this.preprocessor.pos;
        this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute() ? decode_1.DecodingMode.Attribute : decode_1.DecodingMode.Legacy);
      }
      _isCharacterReferenceInAttribute() {
        return this.returnState === State.ATTRIBUTE_VALUE_DOUBLE_QUOTED || this.returnState === State.ATTRIBUTE_VALUE_SINGLE_QUOTED || this.returnState === State.ATTRIBUTE_VALUE_UNQUOTED;
      }
      _flushCodePointConsumedAsCharacterReference(cp) {
        if (this._isCharacterReferenceInAttribute()) {
          this.currentAttr.value += String.fromCodePoint(cp);
        } else {
          this._emitCodePoint(cp);
        }
      }
      // Calling states this way turns out to be much faster than any other approach.
      _callState(cp) {
        switch (this.state) {
          case State.DATA: {
            this._stateData(cp);
            break;
          }
          case State.RCDATA: {
            this._stateRcdata(cp);
            break;
          }
          case State.RAWTEXT: {
            this._stateRawtext(cp);
            break;
          }
          case State.SCRIPT_DATA: {
            this._stateScriptData(cp);
            break;
          }
          case State.PLAINTEXT: {
            this._statePlaintext(cp);
            break;
          }
          case State.TAG_OPEN: {
            this._stateTagOpen(cp);
            break;
          }
          case State.END_TAG_OPEN: {
            this._stateEndTagOpen(cp);
            break;
          }
          case State.TAG_NAME: {
            this._stateTagName(cp);
            break;
          }
          case State.RCDATA_LESS_THAN_SIGN: {
            this._stateRcdataLessThanSign(cp);
            break;
          }
          case State.RCDATA_END_TAG_OPEN: {
            this._stateRcdataEndTagOpen(cp);
            break;
          }
          case State.RCDATA_END_TAG_NAME: {
            this._stateRcdataEndTagName(cp);
            break;
          }
          case State.RAWTEXT_LESS_THAN_SIGN: {
            this._stateRawtextLessThanSign(cp);
            break;
          }
          case State.RAWTEXT_END_TAG_OPEN: {
            this._stateRawtextEndTagOpen(cp);
            break;
          }
          case State.RAWTEXT_END_TAG_NAME: {
            this._stateRawtextEndTagName(cp);
            break;
          }
          case State.SCRIPT_DATA_LESS_THAN_SIGN: {
            this._stateScriptDataLessThanSign(cp);
            break;
          }
          case State.SCRIPT_DATA_END_TAG_OPEN: {
            this._stateScriptDataEndTagOpen(cp);
            break;
          }
          case State.SCRIPT_DATA_END_TAG_NAME: {
            this._stateScriptDataEndTagName(cp);
            break;
          }
          case State.SCRIPT_DATA_ESCAPE_START: {
            this._stateScriptDataEscapeStart(cp);
            break;
          }
          case State.SCRIPT_DATA_ESCAPE_START_DASH: {
            this._stateScriptDataEscapeStartDash(cp);
            break;
          }
          case State.SCRIPT_DATA_ESCAPED: {
            this._stateScriptDataEscaped(cp);
            break;
          }
          case State.SCRIPT_DATA_ESCAPED_DASH: {
            this._stateScriptDataEscapedDash(cp);
            break;
          }
          case State.SCRIPT_DATA_ESCAPED_DASH_DASH: {
            this._stateScriptDataEscapedDashDash(cp);
            break;
          }
          case State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {
            this._stateScriptDataEscapedLessThanSign(cp);
            break;
          }
          case State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN: {
            this._stateScriptDataEscapedEndTagOpen(cp);
            break;
          }
          case State.SCRIPT_DATA_ESCAPED_END_TAG_NAME: {
            this._stateScriptDataEscapedEndTagName(cp);
            break;
          }
          case State.SCRIPT_DATA_DOUBLE_ESCAPE_START: {
            this._stateScriptDataDoubleEscapeStart(cp);
            break;
          }
          case State.SCRIPT_DATA_DOUBLE_ESCAPED: {
            this._stateScriptDataDoubleEscaped(cp);
            break;
          }
          case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH: {
            this._stateScriptDataDoubleEscapedDash(cp);
            break;
          }
          case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: {
            this._stateScriptDataDoubleEscapedDashDash(cp);
            break;
          }
          case State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: {
            this._stateScriptDataDoubleEscapedLessThanSign(cp);
            break;
          }
          case State.SCRIPT_DATA_DOUBLE_ESCAPE_END: {
            this._stateScriptDataDoubleEscapeEnd(cp);
            break;
          }
          case State.BEFORE_ATTRIBUTE_NAME: {
            this._stateBeforeAttributeName(cp);
            break;
          }
          case State.ATTRIBUTE_NAME: {
            this._stateAttributeName(cp);
            break;
          }
          case State.AFTER_ATTRIBUTE_NAME: {
            this._stateAfterAttributeName(cp);
            break;
          }
          case State.BEFORE_ATTRIBUTE_VALUE: {
            this._stateBeforeAttributeValue(cp);
            break;
          }
          case State.ATTRIBUTE_VALUE_DOUBLE_QUOTED: {
            this._stateAttributeValueDoubleQuoted(cp);
            break;
          }
          case State.ATTRIBUTE_VALUE_SINGLE_QUOTED: {
            this._stateAttributeValueSingleQuoted(cp);
            break;
          }
          case State.ATTRIBUTE_VALUE_UNQUOTED: {
            this._stateAttributeValueUnquoted(cp);
            break;
          }
          case State.AFTER_ATTRIBUTE_VALUE_QUOTED: {
            this._stateAfterAttributeValueQuoted(cp);
            break;
          }
          case State.SELF_CLOSING_START_TAG: {
            this._stateSelfClosingStartTag(cp);
            break;
          }
          case State.BOGUS_COMMENT: {
            this._stateBogusComment(cp);
            break;
          }
          case State.MARKUP_DECLARATION_OPEN: {
            this._stateMarkupDeclarationOpen(cp);
            break;
          }
          case State.COMMENT_START: {
            this._stateCommentStart(cp);
            break;
          }
          case State.COMMENT_START_DASH: {
            this._stateCommentStartDash(cp);
            break;
          }
          case State.COMMENT: {
            this._stateComment(cp);
            break;
          }
          case State.COMMENT_LESS_THAN_SIGN: {
            this._stateCommentLessThanSign(cp);
            break;
          }
          case State.COMMENT_LESS_THAN_SIGN_BANG: {
            this._stateCommentLessThanSignBang(cp);
            break;
          }
          case State.COMMENT_LESS_THAN_SIGN_BANG_DASH: {
            this._stateCommentLessThanSignBangDash(cp);
            break;
          }
          case State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH: {
            this._stateCommentLessThanSignBangDashDash(cp);
            break;
          }
          case State.COMMENT_END_DASH: {
            this._stateCommentEndDash(cp);
            break;
          }
          case State.COMMENT_END: {
            this._stateCommentEnd(cp);
            break;
          }
          case State.COMMENT_END_BANG: {
            this._stateCommentEndBang(cp);
            break;
          }
          case State.DOCTYPE: {
            this._stateDoctype(cp);
            break;
          }
          case State.BEFORE_DOCTYPE_NAME: {
            this._stateBeforeDoctypeName(cp);
            break;
          }
          case State.DOCTYPE_NAME: {
            this._stateDoctypeName(cp);
            break;
          }
          case State.AFTER_DOCTYPE_NAME: {
            this._stateAfterDoctypeName(cp);
            break;
          }
          case State.AFTER_DOCTYPE_PUBLIC_KEYWORD: {
            this._stateAfterDoctypePublicKeyword(cp);
            break;
          }
          case State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {
            this._stateBeforeDoctypePublicIdentifier(cp);
            break;
          }
          case State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: {
            this._stateDoctypePublicIdentifierDoubleQuoted(cp);
            break;
          }
          case State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {
            this._stateDoctypePublicIdentifierSingleQuoted(cp);
            break;
          }
          case State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER: {
            this._stateAfterDoctypePublicIdentifier(cp);
            break;
          }
          case State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {
            this._stateBetweenDoctypePublicAndSystemIdentifiers(cp);
            break;
          }
          case State.AFTER_DOCTYPE_SYSTEM_KEYWORD: {
            this._stateAfterDoctypeSystemKeyword(cp);
            break;
          }
          case State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: {
            this._stateBeforeDoctypeSystemIdentifier(cp);
            break;
          }
          case State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: {
            this._stateDoctypeSystemIdentifierDoubleQuoted(cp);
            break;
          }
          case State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {
            this._stateDoctypeSystemIdentifierSingleQuoted(cp);
            break;
          }
          case State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {
            this._stateAfterDoctypeSystemIdentifier(cp);
            break;
          }
          case State.BOGUS_DOCTYPE: {
            this._stateBogusDoctype(cp);
            break;
          }
          case State.CDATA_SECTION: {
            this._stateCdataSection(cp);
            break;
          }
          case State.CDATA_SECTION_BRACKET: {
            this._stateCdataSectionBracket(cp);
            break;
          }
          case State.CDATA_SECTION_END: {
            this._stateCdataSectionEnd(cp);
            break;
          }
          case State.CHARACTER_REFERENCE: {
            this._stateCharacterReference();
            break;
          }
          case State.AMBIGUOUS_AMPERSAND: {
            this._stateAmbiguousAmpersand(cp);
            break;
          }
          default: {
            throw new Error("Unknown state");
          }
        }
      }
      // State machine
      // Data state
      //------------------------------------------------------------------
      _stateData(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State.TAG_OPEN;
            break;
          }
          case unicode_js_1.CODE_POINTS.AMPERSAND: {
            this._startCharacterReference();
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitCodePoint(cp);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      //  RCDATA state
      //------------------------------------------------------------------
      _stateRcdata(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.AMPERSAND: {
            this._startCharacterReference();
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State.RCDATA_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // RAWTEXT state
      //------------------------------------------------------------------
      _stateRawtext(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State.RAWTEXT_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data state
      //------------------------------------------------------------------
      _stateScriptData(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State.SCRIPT_DATA_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // PLAINTEXT state
      //------------------------------------------------------------------
      _statePlaintext(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // Tag open state
      //------------------------------------------------------------------
      _stateTagOpen(cp) {
        if (isAsciiLetter(cp)) {
          this._createStartTagToken();
          this.state = State.TAG_NAME;
          this._stateTagName(cp);
        } else
          switch (cp) {
            case unicode_js_1.CODE_POINTS.EXCLAMATION_MARK: {
              this.state = State.MARKUP_DECLARATION_OPEN;
              break;
            }
            case unicode_js_1.CODE_POINTS.SOLIDUS: {
              this.state = State.END_TAG_OPEN;
              break;
            }
            case unicode_js_1.CODE_POINTS.QUESTION_MARK: {
              this._err(error_codes_js_1.ERR.unexpectedQuestionMarkInsteadOfTagName);
              this._createCommentToken(1);
              this.state = State.BOGUS_COMMENT;
              this._stateBogusComment(cp);
              break;
            }
            case unicode_js_1.CODE_POINTS.EOF: {
              this._err(error_codes_js_1.ERR.eofBeforeTagName);
              this._emitChars("<");
              this._emitEOFToken();
              break;
            }
            default: {
              this._err(error_codes_js_1.ERR.invalidFirstCharacterOfTagName);
              this._emitChars("<");
              this.state = State.DATA;
              this._stateData(cp);
            }
          }
      }
      // End tag open state
      //------------------------------------------------------------------
      _stateEndTagOpen(cp) {
        if (isAsciiLetter(cp)) {
          this._createEndTagToken();
          this.state = State.TAG_NAME;
          this._stateTagName(cp);
        } else
          switch (cp) {
            case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
              this._err(error_codes_js_1.ERR.missingEndTagName);
              this.state = State.DATA;
              break;
            }
            case unicode_js_1.CODE_POINTS.EOF: {
              this._err(error_codes_js_1.ERR.eofBeforeTagName);
              this._emitChars("</");
              this._emitEOFToken();
              break;
            }
            default: {
              this._err(error_codes_js_1.ERR.invalidFirstCharacterOfTagName);
              this._createCommentToken(2);
              this.state = State.BOGUS_COMMENT;
              this._stateBogusComment(cp);
            }
          }
      }
      // Tag name state
      //------------------------------------------------------------------
      _stateTagName(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this.state = State.BEFORE_ATTRIBUTE_NAME;
            break;
          }
          case unicode_js_1.CODE_POINTS.SOLIDUS: {
            this.state = State.SELF_CLOSING_START_TAG;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State.DATA;
            this.emitCurrentTagToken();
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token.tagName += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            token.tagName += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);
          }
        }
      }
      // RCDATA less-than sign state
      //------------------------------------------------------------------
      _stateRcdataLessThanSign(cp) {
        if (cp === unicode_js_1.CODE_POINTS.SOLIDUS) {
          this.state = State.RCDATA_END_TAG_OPEN;
        } else {
          this._emitChars("<");
          this.state = State.RCDATA;
          this._stateRcdata(cp);
        }
      }
      // RCDATA end tag open state
      //------------------------------------------------------------------
      _stateRcdataEndTagOpen(cp) {
        if (isAsciiLetter(cp)) {
          this.state = State.RCDATA_END_TAG_NAME;
          this._stateRcdataEndTagName(cp);
        } else {
          this._emitChars("</");
          this.state = State.RCDATA;
          this._stateRcdata(cp);
        }
      }
      handleSpecialEndTag(_cp) {
        if (!this.preprocessor.startsWith(this.lastStartTagName, false)) {
          return !this._ensureHibernation();
        }
        this._createEndTagToken();
        const token = this.currentToken;
        token.tagName = this.lastStartTagName;
        const cp = this.preprocessor.peek(this.lastStartTagName.length);
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this._advanceBy(this.lastStartTagName.length);
            this.state = State.BEFORE_ATTRIBUTE_NAME;
            return false;
          }
          case unicode_js_1.CODE_POINTS.SOLIDUS: {
            this._advanceBy(this.lastStartTagName.length);
            this.state = State.SELF_CLOSING_START_TAG;
            return false;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._advanceBy(this.lastStartTagName.length);
            this.emitCurrentTagToken();
            this.state = State.DATA;
            return false;
          }
          default: {
            return !this._ensureHibernation();
          }
        }
      }
      // RCDATA end tag name state
      //------------------------------------------------------------------
      _stateRcdataEndTagName(cp) {
        if (this.handleSpecialEndTag(cp)) {
          this._emitChars("</");
          this.state = State.RCDATA;
          this._stateRcdata(cp);
        }
      }
      // RAWTEXT less-than sign state
      //------------------------------------------------------------------
      _stateRawtextLessThanSign(cp) {
        if (cp === unicode_js_1.CODE_POINTS.SOLIDUS) {
          this.state = State.RAWTEXT_END_TAG_OPEN;
        } else {
          this._emitChars("<");
          this.state = State.RAWTEXT;
          this._stateRawtext(cp);
        }
      }
      // RAWTEXT end tag open state
      //------------------------------------------------------------------
      _stateRawtextEndTagOpen(cp) {
        if (isAsciiLetter(cp)) {
          this.state = State.RAWTEXT_END_TAG_NAME;
          this._stateRawtextEndTagName(cp);
        } else {
          this._emitChars("</");
          this.state = State.RAWTEXT;
          this._stateRawtext(cp);
        }
      }
      // RAWTEXT end tag name state
      //------------------------------------------------------------------
      _stateRawtextEndTagName(cp) {
        if (this.handleSpecialEndTag(cp)) {
          this._emitChars("</");
          this.state = State.RAWTEXT;
          this._stateRawtext(cp);
        }
      }
      // Script data less-than sign state
      //------------------------------------------------------------------
      _stateScriptDataLessThanSign(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SOLIDUS: {
            this.state = State.SCRIPT_DATA_END_TAG_OPEN;
            break;
          }
          case unicode_js_1.CODE_POINTS.EXCLAMATION_MARK: {
            this.state = State.SCRIPT_DATA_ESCAPE_START;
            this._emitChars("<!");
            break;
          }
          default: {
            this._emitChars("<");
            this.state = State.SCRIPT_DATA;
            this._stateScriptData(cp);
          }
        }
      }
      // Script data end tag open state
      //------------------------------------------------------------------
      _stateScriptDataEndTagOpen(cp) {
        if (isAsciiLetter(cp)) {
          this.state = State.SCRIPT_DATA_END_TAG_NAME;
          this._stateScriptDataEndTagName(cp);
        } else {
          this._emitChars("</");
          this.state = State.SCRIPT_DATA;
          this._stateScriptData(cp);
        }
      }
      // Script data end tag name state
      //------------------------------------------------------------------
      _stateScriptDataEndTagName(cp) {
        if (this.handleSpecialEndTag(cp)) {
          this._emitChars("</");
          this.state = State.SCRIPT_DATA;
          this._stateScriptData(cp);
        }
      }
      // Script data escape start state
      //------------------------------------------------------------------
      _stateScriptDataEscapeStart(cp) {
        if (cp === unicode_js_1.CODE_POINTS.HYPHEN_MINUS) {
          this.state = State.SCRIPT_DATA_ESCAPE_START_DASH;
          this._emitChars("-");
        } else {
          this.state = State.SCRIPT_DATA;
          this._stateScriptData(cp);
        }
      }
      // Script data escape start dash state
      //------------------------------------------------------------------
      _stateScriptDataEscapeStartDash(cp) {
        if (cp === unicode_js_1.CODE_POINTS.HYPHEN_MINUS) {
          this.state = State.SCRIPT_DATA_ESCAPED_DASH_DASH;
          this._emitChars("-");
        } else {
          this.state = State.SCRIPT_DATA;
          this._stateScriptData(cp);
        }
      }
      // Script data escaped state
      //------------------------------------------------------------------
      _stateScriptDataEscaped(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State.SCRIPT_DATA_ESCAPED_DASH;
            this._emitChars("-");
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInScriptHtmlCommentLikeText);
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data escaped dash state
      //------------------------------------------------------------------
      _stateScriptDataEscapedDash(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State.SCRIPT_DATA_ESCAPED_DASH_DASH;
            this._emitChars("-");
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.state = State.SCRIPT_DATA_ESCAPED;
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInScriptHtmlCommentLikeText);
            this._emitEOFToken();
            break;
          }
          default: {
            this.state = State.SCRIPT_DATA_ESCAPED;
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data escaped dash dash state
      //------------------------------------------------------------------
      _stateScriptDataEscapedDashDash(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this._emitChars("-");
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State.SCRIPT_DATA;
            this._emitChars(">");
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.state = State.SCRIPT_DATA_ESCAPED;
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInScriptHtmlCommentLikeText);
            this._emitEOFToken();
            break;
          }
          default: {
            this.state = State.SCRIPT_DATA_ESCAPED;
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data escaped less-than sign state
      //------------------------------------------------------------------
      _stateScriptDataEscapedLessThanSign(cp) {
        if (cp === unicode_js_1.CODE_POINTS.SOLIDUS) {
          this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN;
        } else if (isAsciiLetter(cp)) {
          this._emitChars("<");
          this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_START;
          this._stateScriptDataDoubleEscapeStart(cp);
        } else {
          this._emitChars("<");
          this.state = State.SCRIPT_DATA_ESCAPED;
          this._stateScriptDataEscaped(cp);
        }
      }
      // Script data escaped end tag open state
      //------------------------------------------------------------------
      _stateScriptDataEscapedEndTagOpen(cp) {
        if (isAsciiLetter(cp)) {
          this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_NAME;
          this._stateScriptDataEscapedEndTagName(cp);
        } else {
          this._emitChars("</");
          this.state = State.SCRIPT_DATA_ESCAPED;
          this._stateScriptDataEscaped(cp);
        }
      }
      // Script data escaped end tag name state
      //------------------------------------------------------------------
      _stateScriptDataEscapedEndTagName(cp) {
        if (this.handleSpecialEndTag(cp)) {
          this._emitChars("</");
          this.state = State.SCRIPT_DATA_ESCAPED;
          this._stateScriptDataEscaped(cp);
        }
      }
      // Script data double escape start state
      //------------------------------------------------------------------
      _stateScriptDataDoubleEscapeStart(cp) {
        if (this.preprocessor.startsWith(unicode_js_1.SEQUENCES.SCRIPT, false) && isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek(unicode_js_1.SEQUENCES.SCRIPT.length))) {
          this._emitCodePoint(cp);
          for (let i5 = 0; i5 < unicode_js_1.SEQUENCES.SCRIPT.length; i5++) {
            this._emitCodePoint(this._consume());
          }
          this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
        } else if (!this._ensureHibernation()) {
          this.state = State.SCRIPT_DATA_ESCAPED;
          this._stateScriptDataEscaped(cp);
        }
      }
      // Script data double escaped state
      //------------------------------------------------------------------
      _stateScriptDataDoubleEscaped(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH;
            this._emitChars("-");
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;
            this._emitChars("<");
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInScriptHtmlCommentLikeText);
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data double escaped dash state
      //------------------------------------------------------------------
      _stateScriptDataDoubleEscapedDash(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH;
            this._emitChars("-");
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;
            this._emitChars("<");
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInScriptHtmlCommentLikeText);
            this._emitEOFToken();
            break;
          }
          default: {
            this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data double escaped dash dash state
      //------------------------------------------------------------------
      _stateScriptDataDoubleEscapedDashDash(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this._emitChars("-");
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;
            this._emitChars("<");
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State.SCRIPT_DATA;
            this._emitChars(">");
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInScriptHtmlCommentLikeText);
            this._emitEOFToken();
            break;
          }
          default: {
            this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data double escaped less-than sign state
      //------------------------------------------------------------------
      _stateScriptDataDoubleEscapedLessThanSign(cp) {
        if (cp === unicode_js_1.CODE_POINTS.SOLIDUS) {
          this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_END;
          this._emitChars("/");
        } else {
          this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
          this._stateScriptDataDoubleEscaped(cp);
        }
      }
      // Script data double escape end state
      //------------------------------------------------------------------
      _stateScriptDataDoubleEscapeEnd(cp) {
        if (this.preprocessor.startsWith(unicode_js_1.SEQUENCES.SCRIPT, false) && isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek(unicode_js_1.SEQUENCES.SCRIPT.length))) {
          this._emitCodePoint(cp);
          for (let i5 = 0; i5 < unicode_js_1.SEQUENCES.SCRIPT.length; i5++) {
            this._emitCodePoint(this._consume());
          }
          this.state = State.SCRIPT_DATA_ESCAPED;
        } else if (!this._ensureHibernation()) {
          this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
          this._stateScriptDataDoubleEscaped(cp);
        }
      }
      // Before attribute name state
      //------------------------------------------------------------------
      _stateBeforeAttributeName(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.SOLIDUS:
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN:
          case unicode_js_1.CODE_POINTS.EOF: {
            this.state = State.AFTER_ATTRIBUTE_NAME;
            this._stateAfterAttributeName(cp);
            break;
          }
          case unicode_js_1.CODE_POINTS.EQUALS_SIGN: {
            this._err(error_codes_js_1.ERR.unexpectedEqualsSignBeforeAttributeName);
            this._createAttr("=");
            this.state = State.ATTRIBUTE_NAME;
            break;
          }
          default: {
            this._createAttr("");
            this.state = State.ATTRIBUTE_NAME;
            this._stateAttributeName(cp);
          }
        }
      }
      // Attribute name state
      //------------------------------------------------------------------
      _stateAttributeName(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED:
          case unicode_js_1.CODE_POINTS.SOLIDUS:
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN:
          case unicode_js_1.CODE_POINTS.EOF: {
            this._leaveAttrName();
            this.state = State.AFTER_ATTRIBUTE_NAME;
            this._stateAfterAttributeName(cp);
            break;
          }
          case unicode_js_1.CODE_POINTS.EQUALS_SIGN: {
            this._leaveAttrName();
            this.state = State.BEFORE_ATTRIBUTE_VALUE;
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK:
          case unicode_js_1.CODE_POINTS.APOSTROPHE:
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.unexpectedCharacterInAttributeName);
            this.currentAttr.name += String.fromCodePoint(cp);
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.currentAttr.name += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          default: {
            this.currentAttr.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);
          }
        }
      }
      // After attribute name state
      //------------------------------------------------------------------
      _stateAfterAttributeName(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.SOLIDUS: {
            this.state = State.SELF_CLOSING_START_TAG;
            break;
          }
          case unicode_js_1.CODE_POINTS.EQUALS_SIGN: {
            this.state = State.BEFORE_ATTRIBUTE_VALUE;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State.DATA;
            this.emitCurrentTagToken();
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            this._createAttr("");
            this.state = State.ATTRIBUTE_NAME;
            this._stateAttributeName(cp);
          }
        }
      }
      // Before attribute value state
      //------------------------------------------------------------------
      _stateBeforeAttributeValue(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this.state = State.ATTRIBUTE_VALUE_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this.state = State.ATTRIBUTE_VALUE_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.missingAttributeValue);
            this.state = State.DATA;
            this.emitCurrentTagToken();
            break;
          }
          default: {
            this.state = State.ATTRIBUTE_VALUE_UNQUOTED;
            this._stateAttributeValueUnquoted(cp);
          }
        }
      }
      // Attribute value (double-quoted) state
      //------------------------------------------------------------------
      _stateAttributeValueDoubleQuoted(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.AMPERSAND: {
            this._startCharacterReference();
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.currentAttr.value += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            this.currentAttr.value += String.fromCodePoint(cp);
          }
        }
      }
      // Attribute value (single-quoted) state
      //------------------------------------------------------------------
      _stateAttributeValueSingleQuoted(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.AMPERSAND: {
            this._startCharacterReference();
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.currentAttr.value += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            this.currentAttr.value += String.fromCodePoint(cp);
          }
        }
      }
      // Attribute value (unquoted) state
      //------------------------------------------------------------------
      _stateAttributeValueUnquoted(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this._leaveAttrValue();
            this.state = State.BEFORE_ATTRIBUTE_NAME;
            break;
          }
          case unicode_js_1.CODE_POINTS.AMPERSAND: {
            this._startCharacterReference();
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._leaveAttrValue();
            this.state = State.DATA;
            this.emitCurrentTagToken();
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.currentAttr.value += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK:
          case unicode_js_1.CODE_POINTS.APOSTROPHE:
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN:
          case unicode_js_1.CODE_POINTS.EQUALS_SIGN:
          case unicode_js_1.CODE_POINTS.GRAVE_ACCENT: {
            this._err(error_codes_js_1.ERR.unexpectedCharacterInUnquotedAttributeValue);
            this.currentAttr.value += String.fromCodePoint(cp);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            this.currentAttr.value += String.fromCodePoint(cp);
          }
        }
      }
      // After attribute value (quoted) state
      //------------------------------------------------------------------
      _stateAfterAttributeValueQuoted(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this._leaveAttrValue();
            this.state = State.BEFORE_ATTRIBUTE_NAME;
            break;
          }
          case unicode_js_1.CODE_POINTS.SOLIDUS: {
            this._leaveAttrValue();
            this.state = State.SELF_CLOSING_START_TAG;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._leaveAttrValue();
            this.state = State.DATA;
            this.emitCurrentTagToken();
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingWhitespaceBetweenAttributes);
            this.state = State.BEFORE_ATTRIBUTE_NAME;
            this._stateBeforeAttributeName(cp);
          }
        }
      }
      // Self-closing start tag state
      //------------------------------------------------------------------
      _stateSelfClosingStartTag(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            const token = this.currentToken;
            token.selfClosing = true;
            this.state = State.DATA;
            this.emitCurrentTagToken();
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.unexpectedSolidusInTag);
            this.state = State.BEFORE_ATTRIBUTE_NAME;
            this._stateBeforeAttributeName(cp);
          }
        }
      }
      // Bogus comment state
      //------------------------------------------------------------------
      _stateBogusComment(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State.DATA;
            this.emitCurrentComment(token);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this.emitCurrentComment(token);
            this._emitEOFToken();
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token.data += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          default: {
            token.data += String.fromCodePoint(cp);
          }
        }
      }
      // Markup declaration open state
      //------------------------------------------------------------------
      _stateMarkupDeclarationOpen(cp) {
        if (this._consumeSequenceIfMatch(unicode_js_1.SEQUENCES.DASH_DASH, true)) {
          this._createCommentToken(unicode_js_1.SEQUENCES.DASH_DASH.length + 1);
          this.state = State.COMMENT_START;
        } else if (this._consumeSequenceIfMatch(unicode_js_1.SEQUENCES.DOCTYPE, false)) {
          this.currentLocation = this.getCurrentLocation(unicode_js_1.SEQUENCES.DOCTYPE.length + 1);
          this.state = State.DOCTYPE;
        } else if (this._consumeSequenceIfMatch(unicode_js_1.SEQUENCES.CDATA_START, true)) {
          if (this.inForeignNode) {
            this.state = State.CDATA_SECTION;
          } else {
            this._err(error_codes_js_1.ERR.cdataInHtmlContent);
            this._createCommentToken(unicode_js_1.SEQUENCES.CDATA_START.length + 1);
            this.currentToken.data = "[CDATA[";
            this.state = State.BOGUS_COMMENT;
          }
        } else if (!this._ensureHibernation()) {
          this._err(error_codes_js_1.ERR.incorrectlyOpenedComment);
          this._createCommentToken(2);
          this.state = State.BOGUS_COMMENT;
          this._stateBogusComment(cp);
        }
      }
      // Comment start state
      //------------------------------------------------------------------
      _stateCommentStart(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State.COMMENT_START_DASH;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.abruptClosingOfEmptyComment);
            this.state = State.DATA;
            const token = this.currentToken;
            this.emitCurrentComment(token);
            break;
          }
          default: {
            this.state = State.COMMENT;
            this._stateComment(cp);
          }
        }
      }
      // Comment start dash state
      //------------------------------------------------------------------
      _stateCommentStartDash(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State.COMMENT_END;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.abruptClosingOfEmptyComment);
            this.state = State.DATA;
            this.emitCurrentComment(token);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInComment);
            this.emitCurrentComment(token);
            this._emitEOFToken();
            break;
          }
          default: {
            token.data += "-";
            this.state = State.COMMENT;
            this._stateComment(cp);
          }
        }
      }
      // Comment state
      //------------------------------------------------------------------
      _stateComment(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State.COMMENT_END_DASH;
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            token.data += "<";
            this.state = State.COMMENT_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token.data += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInComment);
            this.emitCurrentComment(token);
            this._emitEOFToken();
            break;
          }
          default: {
            token.data += String.fromCodePoint(cp);
          }
        }
      }
      // Comment less-than sign state
      //------------------------------------------------------------------
      _stateCommentLessThanSign(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.EXCLAMATION_MARK: {
            token.data += "!";
            this.state = State.COMMENT_LESS_THAN_SIGN_BANG;
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            token.data += "<";
            break;
          }
          default: {
            this.state = State.COMMENT;
            this._stateComment(cp);
          }
        }
      }
      // Comment less-than sign bang state
      //------------------------------------------------------------------
      _stateCommentLessThanSignBang(cp) {
        if (cp === unicode_js_1.CODE_POINTS.HYPHEN_MINUS) {
          this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH;
        } else {
          this.state = State.COMMENT;
          this._stateComment(cp);
        }
      }
      // Comment less-than sign bang dash state
      //------------------------------------------------------------------
      _stateCommentLessThanSignBangDash(cp) {
        if (cp === unicode_js_1.CODE_POINTS.HYPHEN_MINUS) {
          this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH;
        } else {
          this.state = State.COMMENT_END_DASH;
          this._stateCommentEndDash(cp);
        }
      }
      // Comment less-than sign bang dash dash state
      //------------------------------------------------------------------
      _stateCommentLessThanSignBangDashDash(cp) {
        if (cp !== unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN && cp !== unicode_js_1.CODE_POINTS.EOF) {
          this._err(error_codes_js_1.ERR.nestedComment);
        }
        this.state = State.COMMENT_END;
        this._stateCommentEnd(cp);
      }
      // Comment end dash state
      //------------------------------------------------------------------
      _stateCommentEndDash(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State.COMMENT_END;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInComment);
            this.emitCurrentComment(token);
            this._emitEOFToken();
            break;
          }
          default: {
            token.data += "-";
            this.state = State.COMMENT;
            this._stateComment(cp);
          }
        }
      }
      // Comment end state
      //------------------------------------------------------------------
      _stateCommentEnd(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State.DATA;
            this.emitCurrentComment(token);
            break;
          }
          case unicode_js_1.CODE_POINTS.EXCLAMATION_MARK: {
            this.state = State.COMMENT_END_BANG;
            break;
          }
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            token.data += "-";
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInComment);
            this.emitCurrentComment(token);
            this._emitEOFToken();
            break;
          }
          default: {
            token.data += "--";
            this.state = State.COMMENT;
            this._stateComment(cp);
          }
        }
      }
      // Comment end bang state
      //------------------------------------------------------------------
      _stateCommentEndBang(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            token.data += "--!";
            this.state = State.COMMENT_END_DASH;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.incorrectlyClosedComment);
            this.state = State.DATA;
            this.emitCurrentComment(token);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInComment);
            this.emitCurrentComment(token);
            this._emitEOFToken();
            break;
          }
          default: {
            token.data += "--!";
            this.state = State.COMMENT;
            this._stateComment(cp);
          }
        }
      }
      // DOCTYPE state
      //------------------------------------------------------------------
      _stateDoctype(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this.state = State.BEFORE_DOCTYPE_NAME;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State.BEFORE_DOCTYPE_NAME;
            this._stateBeforeDoctypeName(cp);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            this._createDoctypeToken(null);
            const token = this.currentToken;
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingWhitespaceBeforeDoctypeName);
            this.state = State.BEFORE_DOCTYPE_NAME;
            this._stateBeforeDoctypeName(cp);
          }
        }
      }
      // Before DOCTYPE name state
      //------------------------------------------------------------------
      _stateBeforeDoctypeName(cp) {
        if (isAsciiUpper(cp)) {
          this._createDoctypeToken(String.fromCharCode(toAsciiLower(cp)));
          this.state = State.DOCTYPE_NAME;
        } else
          switch (cp) {
            case unicode_js_1.CODE_POINTS.SPACE:
            case unicode_js_1.CODE_POINTS.LINE_FEED:
            case unicode_js_1.CODE_POINTS.TABULATION:
            case unicode_js_1.CODE_POINTS.FORM_FEED: {
              break;
            }
            case unicode_js_1.CODE_POINTS.NULL: {
              this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
              this._createDoctypeToken(unicode_js_1.REPLACEMENT_CHARACTER);
              this.state = State.DOCTYPE_NAME;
              break;
            }
            case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
              this._err(error_codes_js_1.ERR.missingDoctypeName);
              this._createDoctypeToken(null);
              const token = this.currentToken;
              token.forceQuirks = true;
              this.emitCurrentDoctype(token);
              this.state = State.DATA;
              break;
            }
            case unicode_js_1.CODE_POINTS.EOF: {
              this._err(error_codes_js_1.ERR.eofInDoctype);
              this._createDoctypeToken(null);
              const token = this.currentToken;
              token.forceQuirks = true;
              this.emitCurrentDoctype(token);
              this._emitEOFToken();
              break;
            }
            default: {
              this._createDoctypeToken(String.fromCodePoint(cp));
              this.state = State.DOCTYPE_NAME;
            }
          }
      }
      // DOCTYPE name state
      //------------------------------------------------------------------
      _stateDoctypeName(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this.state = State.AFTER_DOCTYPE_NAME;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State.DATA;
            this.emitCurrentDoctype(token);
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token.name += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            token.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);
          }
        }
      }
      // After DOCTYPE name state
      //------------------------------------------------------------------
      _stateAfterDoctypeName(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State.DATA;
            this.emitCurrentDoctype(token);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            if (this._consumeSequenceIfMatch(unicode_js_1.SEQUENCES.PUBLIC, false)) {
              this.state = State.AFTER_DOCTYPE_PUBLIC_KEYWORD;
            } else if (this._consumeSequenceIfMatch(unicode_js_1.SEQUENCES.SYSTEM, false)) {
              this.state = State.AFTER_DOCTYPE_SYSTEM_KEYWORD;
            } else if (!this._ensureHibernation()) {
              this._err(error_codes_js_1.ERR.invalidCharacterSequenceAfterDoctypeName);
              token.forceQuirks = true;
              this.state = State.BOGUS_DOCTYPE;
              this._stateBogusDoctype(cp);
            }
          }
        }
      }
      // After DOCTYPE public keyword state
      //------------------------------------------------------------------
      _stateAfterDoctypePublicKeyword(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this.state = State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this._err(error_codes_js_1.ERR.missingWhitespaceAfterDoctypePublicKeyword);
            token.publicId = "";
            this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this._err(error_codes_js_1.ERR.missingWhitespaceAfterDoctypePublicKeyword);
            token.publicId = "";
            this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.missingDoctypePublicIdentifier);
            token.forceQuirks = true;
            this.state = State.DATA;
            this.emitCurrentDoctype(token);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingQuoteBeforeDoctypePublicIdentifier);
            token.forceQuirks = true;
            this.state = State.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // Before DOCTYPE public identifier state
      //------------------------------------------------------------------
      _stateBeforeDoctypePublicIdentifier(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            token.publicId = "";
            this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            token.publicId = "";
            this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.missingDoctypePublicIdentifier);
            token.forceQuirks = true;
            this.state = State.DATA;
            this.emitCurrentDoctype(token);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingQuoteBeforeDoctypePublicIdentifier);
            token.forceQuirks = true;
            this.state = State.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // DOCTYPE public identifier (double-quoted) state
      //------------------------------------------------------------------
      _stateDoctypePublicIdentifierDoubleQuoted(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token.publicId += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.abruptDoctypePublicIdentifier);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this.state = State.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            token.publicId += String.fromCodePoint(cp);
          }
        }
      }
      // DOCTYPE public identifier (single-quoted) state
      //------------------------------------------------------------------
      _stateDoctypePublicIdentifierSingleQuoted(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token.publicId += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.abruptDoctypePublicIdentifier);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this.state = State.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            token.publicId += String.fromCodePoint(cp);
          }
        }
      }
      // After DOCTYPE public identifier state
      //------------------------------------------------------------------
      _stateAfterDoctypePublicIdentifier(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this.state = State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State.DATA;
            this.emitCurrentDoctype(token);
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this._err(error_codes_js_1.ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);
            token.systemId = "";
            this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this._err(error_codes_js_1.ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);
            token.systemId = "";
            this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingQuoteBeforeDoctypeSystemIdentifier);
            token.forceQuirks = true;
            this.state = State.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // Between DOCTYPE public and system identifiers state
      //------------------------------------------------------------------
      _stateBetweenDoctypePublicAndSystemIdentifiers(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.emitCurrentDoctype(token);
            this.state = State.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            token.systemId = "";
            this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            token.systemId = "";
            this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingQuoteBeforeDoctypeSystemIdentifier);
            token.forceQuirks = true;
            this.state = State.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // After DOCTYPE system keyword state
      //------------------------------------------------------------------
      _stateAfterDoctypeSystemKeyword(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this.state = State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this._err(error_codes_js_1.ERR.missingWhitespaceAfterDoctypeSystemKeyword);
            token.systemId = "";
            this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this._err(error_codes_js_1.ERR.missingWhitespaceAfterDoctypeSystemKeyword);
            token.systemId = "";
            this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.missingDoctypeSystemIdentifier);
            token.forceQuirks = true;
            this.state = State.DATA;
            this.emitCurrentDoctype(token);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingQuoteBeforeDoctypeSystemIdentifier);
            token.forceQuirks = true;
            this.state = State.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // Before DOCTYPE system identifier state
      //------------------------------------------------------------------
      _stateBeforeDoctypeSystemIdentifier(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            token.systemId = "";
            this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            token.systemId = "";
            this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.missingDoctypeSystemIdentifier);
            token.forceQuirks = true;
            this.state = State.DATA;
            this.emitCurrentDoctype(token);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingQuoteBeforeDoctypeSystemIdentifier);
            token.forceQuirks = true;
            this.state = State.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // DOCTYPE system identifier (double-quoted) state
      //------------------------------------------------------------------
      _stateDoctypeSystemIdentifierDoubleQuoted(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token.systemId += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.abruptDoctypeSystemIdentifier);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this.state = State.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            token.systemId += String.fromCodePoint(cp);
          }
        }
      }
      // DOCTYPE system identifier (single-quoted) state
      //------------------------------------------------------------------
      _stateDoctypeSystemIdentifierSingleQuoted(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token.systemId += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.abruptDoctypeSystemIdentifier);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this.state = State.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            token.systemId += String.fromCodePoint(cp);
          }
        }
      }
      // After DOCTYPE system identifier state
      //------------------------------------------------------------------
      _stateAfterDoctypeSystemIdentifier(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.emitCurrentDoctype(token);
            this.state = State.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token.forceQuirks = true;
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.unexpectedCharacterAfterDoctypeSystemIdentifier);
            this.state = State.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // Bogus DOCTYPE state
      //------------------------------------------------------------------
      _stateBogusDoctype(cp) {
        const token = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.emitCurrentDoctype(token);
            this.state = State.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this.emitCurrentDoctype(token);
            this._emitEOFToken();
            break;
          }
          default:
        }
      }
      // CDATA section state
      //------------------------------------------------------------------
      _stateCdataSection(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.RIGHT_SQUARE_BRACKET: {
            this.state = State.CDATA_SECTION_BRACKET;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInCdata);
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // CDATA section bracket state
      //------------------------------------------------------------------
      _stateCdataSectionBracket(cp) {
        if (cp === unicode_js_1.CODE_POINTS.RIGHT_SQUARE_BRACKET) {
          this.state = State.CDATA_SECTION_END;
        } else {
          this._emitChars("]");
          this.state = State.CDATA_SECTION;
          this._stateCdataSection(cp);
        }
      }
      // CDATA section end state
      //------------------------------------------------------------------
      _stateCdataSectionEnd(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.RIGHT_SQUARE_BRACKET: {
            this._emitChars("]");
            break;
          }
          default: {
            this._emitChars("]]");
            this.state = State.CDATA_SECTION;
            this._stateCdataSection(cp);
          }
        }
      }
      // Character reference state
      //------------------------------------------------------------------
      _stateCharacterReference() {
        let length2 = this.entityDecoder.write(this.preprocessor.html, this.preprocessor.pos);
        if (length2 < 0) {
          if (this.preprocessor.lastChunkWritten) {
            length2 = this.entityDecoder.end();
          } else {
            this.active = false;
            this.preprocessor.pos = this.preprocessor.html.length - 1;
            this.consumedAfterSnapshot = 0;
            this.preprocessor.endOfChunkHit = true;
            return;
          }
        }
        if (length2 === 0) {
          this.preprocessor.pos = this.entityStartPos;
          this._flushCodePointConsumedAsCharacterReference(unicode_js_1.CODE_POINTS.AMPERSAND);
          this.state = !this._isCharacterReferenceInAttribute() && isAsciiAlphaNumeric(this.preprocessor.peek(1)) ? State.AMBIGUOUS_AMPERSAND : this.returnState;
        } else {
          this.state = this.returnState;
        }
      }
      // Ambiguos ampersand state
      //------------------------------------------------------------------
      _stateAmbiguousAmpersand(cp) {
        if (isAsciiAlphaNumeric(cp)) {
          this._flushCodePointConsumedAsCharacterReference(cp);
        } else {
          if (cp === unicode_js_1.CODE_POINTS.SEMICOLON) {
            this._err(error_codes_js_1.ERR.unknownNamedCharacterReference);
          }
          this.state = this.returnState;
          this._callState(cp);
        }
      }
    };
    exports.Tokenizer = Tokenizer;
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/parser/open-element-stack.js
var require_open_element_stack = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/parser/open-element-stack.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.OpenElementStack = void 0;
    var html_js_1 = require_html();
    var IMPLICIT_END_TAG_REQUIRED = /* @__PURE__ */ new Set([html_js_1.TAG_ID.DD, html_js_1.TAG_ID.DT, html_js_1.TAG_ID.LI, html_js_1.TAG_ID.OPTGROUP, html_js_1.TAG_ID.OPTION, html_js_1.TAG_ID.P, html_js_1.TAG_ID.RB, html_js_1.TAG_ID.RP, html_js_1.TAG_ID.RT, html_js_1.TAG_ID.RTC]);
    var IMPLICIT_END_TAG_REQUIRED_THOROUGHLY = /* @__PURE__ */ new Set([
      ...IMPLICIT_END_TAG_REQUIRED,
      html_js_1.TAG_ID.CAPTION,
      html_js_1.TAG_ID.COLGROUP,
      html_js_1.TAG_ID.TBODY,
      html_js_1.TAG_ID.TD,
      html_js_1.TAG_ID.TFOOT,
      html_js_1.TAG_ID.TH,
      html_js_1.TAG_ID.THEAD,
      html_js_1.TAG_ID.TR
    ]);
    var SCOPING_ELEMENTS_HTML = /* @__PURE__ */ new Set([
      html_js_1.TAG_ID.APPLET,
      html_js_1.TAG_ID.CAPTION,
      html_js_1.TAG_ID.HTML,
      html_js_1.TAG_ID.MARQUEE,
      html_js_1.TAG_ID.OBJECT,
      html_js_1.TAG_ID.TABLE,
      html_js_1.TAG_ID.TD,
      html_js_1.TAG_ID.TEMPLATE,
      html_js_1.TAG_ID.TH
    ]);
    var SCOPING_ELEMENTS_HTML_LIST = /* @__PURE__ */ new Set([...SCOPING_ELEMENTS_HTML, html_js_1.TAG_ID.OL, html_js_1.TAG_ID.UL]);
    var SCOPING_ELEMENTS_HTML_BUTTON = /* @__PURE__ */ new Set([...SCOPING_ELEMENTS_HTML, html_js_1.TAG_ID.BUTTON]);
    var SCOPING_ELEMENTS_MATHML = /* @__PURE__ */ new Set([html_js_1.TAG_ID.ANNOTATION_XML, html_js_1.TAG_ID.MI, html_js_1.TAG_ID.MN, html_js_1.TAG_ID.MO, html_js_1.TAG_ID.MS, html_js_1.TAG_ID.MTEXT]);
    var SCOPING_ELEMENTS_SVG = /* @__PURE__ */ new Set([html_js_1.TAG_ID.DESC, html_js_1.TAG_ID.FOREIGN_OBJECT, html_js_1.TAG_ID.TITLE]);
    var TABLE_ROW_CONTEXT = /* @__PURE__ */ new Set([html_js_1.TAG_ID.TR, html_js_1.TAG_ID.TEMPLATE, html_js_1.TAG_ID.HTML]);
    var TABLE_BODY_CONTEXT = /* @__PURE__ */ new Set([html_js_1.TAG_ID.TBODY, html_js_1.TAG_ID.TFOOT, html_js_1.TAG_ID.THEAD, html_js_1.TAG_ID.TEMPLATE, html_js_1.TAG_ID.HTML]);
    var TABLE_CONTEXT = /* @__PURE__ */ new Set([html_js_1.TAG_ID.TABLE, html_js_1.TAG_ID.TEMPLATE, html_js_1.TAG_ID.HTML]);
    var TABLE_CELLS = /* @__PURE__ */ new Set([html_js_1.TAG_ID.TD, html_js_1.TAG_ID.TH]);
    var OpenElementStack = class {
      get currentTmplContentOrNode() {
        return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current;
      }
      constructor(document2, treeAdapter, handler) {
        this.treeAdapter = treeAdapter;
        this.handler = handler;
        this.items = [];
        this.tagIDs = [];
        this.stackTop = -1;
        this.tmplCount = 0;
        this.currentTagId = html_js_1.TAG_ID.UNKNOWN;
        this.current = document2;
      }
      //Index of element
      _indexOf(element) {
        return this.items.lastIndexOf(element, this.stackTop);
      }
      //Update current element
      _isInTemplate() {
        return this.currentTagId === html_js_1.TAG_ID.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === html_js_1.NS.HTML;
      }
      _updateCurrentElement() {
        this.current = this.items[this.stackTop];
        this.currentTagId = this.tagIDs[this.stackTop];
      }
      //Mutations
      push(element, tagID) {
        this.stackTop++;
        this.items[this.stackTop] = element;
        this.current = element;
        this.tagIDs[this.stackTop] = tagID;
        this.currentTagId = tagID;
        if (this._isInTemplate()) {
          this.tmplCount++;
        }
        this.handler.onItemPush(element, tagID, true);
      }
      pop() {
        const popped = this.current;
        if (this.tmplCount > 0 && this._isInTemplate()) {
          this.tmplCount--;
        }
        this.stackTop--;
        this._updateCurrentElement();
        this.handler.onItemPop(popped, true);
      }
      replace(oldElement, newElement) {
        const idx = this._indexOf(oldElement);
        this.items[idx] = newElement;
        if (idx === this.stackTop) {
          this.current = newElement;
        }
      }
      insertAfter(referenceElement, newElement, newElementID) {
        const insertionIdx = this._indexOf(referenceElement) + 1;
        this.items.splice(insertionIdx, 0, newElement);
        this.tagIDs.splice(insertionIdx, 0, newElementID);
        this.stackTop++;
        if (insertionIdx === this.stackTop) {
          this._updateCurrentElement();
        }
        if (this.current && this.currentTagId !== void 0) {
          this.handler.onItemPush(this.current, this.currentTagId, insertionIdx === this.stackTop);
        }
      }
      popUntilTagNamePopped(tagName) {
        let targetIdx = this.stackTop + 1;
        do {
          targetIdx = this.tagIDs.lastIndexOf(tagName, targetIdx - 1);
        } while (targetIdx > 0 && this.treeAdapter.getNamespaceURI(this.items[targetIdx]) !== html_js_1.NS.HTML);
        this.shortenToLength(Math.max(targetIdx, 0));
      }
      shortenToLength(idx) {
        while (this.stackTop >= idx) {
          const popped = this.current;
          if (this.tmplCount > 0 && this._isInTemplate()) {
            this.tmplCount -= 1;
          }
          this.stackTop--;
          this._updateCurrentElement();
          this.handler.onItemPop(popped, this.stackTop < idx);
        }
      }
      popUntilElementPopped(element) {
        const idx = this._indexOf(element);
        this.shortenToLength(Math.max(idx, 0));
      }
      popUntilPopped(tagNames, targetNS) {
        const idx = this._indexOfTagNames(tagNames, targetNS);
        this.shortenToLength(Math.max(idx, 0));
      }
      popUntilNumberedHeaderPopped() {
        this.popUntilPopped(html_js_1.NUMBERED_HEADERS, html_js_1.NS.HTML);
      }
      popUntilTableCellPopped() {
        this.popUntilPopped(TABLE_CELLS, html_js_1.NS.HTML);
      }
      popAllUpToHtmlElement() {
        this.tmplCount = 0;
        this.shortenToLength(1);
      }
      _indexOfTagNames(tagNames, namespace) {
        for (let i5 = this.stackTop; i5 >= 0; i5--) {
          if (tagNames.has(this.tagIDs[i5]) && this.treeAdapter.getNamespaceURI(this.items[i5]) === namespace) {
            return i5;
          }
        }
        return -1;
      }
      clearBackTo(tagNames, targetNS) {
        const idx = this._indexOfTagNames(tagNames, targetNS);
        this.shortenToLength(idx + 1);
      }
      clearBackToTableContext() {
        this.clearBackTo(TABLE_CONTEXT, html_js_1.NS.HTML);
      }
      clearBackToTableBodyContext() {
        this.clearBackTo(TABLE_BODY_CONTEXT, html_js_1.NS.HTML);
      }
      clearBackToTableRowContext() {
        this.clearBackTo(TABLE_ROW_CONTEXT, html_js_1.NS.HTML);
      }
      remove(element) {
        const idx = this._indexOf(element);
        if (idx >= 0) {
          if (idx === this.stackTop) {
            this.pop();
          } else {
            this.items.splice(idx, 1);
            this.tagIDs.splice(idx, 1);
            this.stackTop--;
            this._updateCurrentElement();
            this.handler.onItemPop(element, false);
          }
        }
      }
      //Search
      tryPeekProperlyNestedBodyElement() {
        return this.stackTop >= 1 && this.tagIDs[1] === html_js_1.TAG_ID.BODY ? this.items[1] : null;
      }
      contains(element) {
        return this._indexOf(element) > -1;
      }
      getCommonAncestor(element) {
        const elementIdx = this._indexOf(element) - 1;
        return elementIdx >= 0 ? this.items[elementIdx] : null;
      }
      isRootHtmlElementCurrent() {
        return this.stackTop === 0 && this.tagIDs[0] === html_js_1.TAG_ID.HTML;
      }
      //Element in scope
      hasInDynamicScope(tagName, htmlScope) {
        for (let i5 = this.stackTop; i5 >= 0; i5--) {
          const tn = this.tagIDs[i5];
          switch (this.treeAdapter.getNamespaceURI(this.items[i5])) {
            case html_js_1.NS.HTML: {
              if (tn === tagName)
                return true;
              if (htmlScope.has(tn))
                return false;
              break;
            }
            case html_js_1.NS.SVG: {
              if (SCOPING_ELEMENTS_SVG.has(tn))
                return false;
              break;
            }
            case html_js_1.NS.MATHML: {
              if (SCOPING_ELEMENTS_MATHML.has(tn))
                return false;
              break;
            }
          }
        }
        return true;
      }
      hasInScope(tagName) {
        return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML);
      }
      hasInListItemScope(tagName) {
        return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_LIST);
      }
      hasInButtonScope(tagName) {
        return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_BUTTON);
      }
      hasNumberedHeaderInScope() {
        for (let i5 = this.stackTop; i5 >= 0; i5--) {
          const tn = this.tagIDs[i5];
          switch (this.treeAdapter.getNamespaceURI(this.items[i5])) {
            case html_js_1.NS.HTML: {
              if (html_js_1.NUMBERED_HEADERS.has(tn))
                return true;
              if (SCOPING_ELEMENTS_HTML.has(tn))
                return false;
              break;
            }
            case html_js_1.NS.SVG: {
              if (SCOPING_ELEMENTS_SVG.has(tn))
                return false;
              break;
            }
            case html_js_1.NS.MATHML: {
              if (SCOPING_ELEMENTS_MATHML.has(tn))
                return false;
              break;
            }
          }
        }
        return true;
      }
      hasInTableScope(tagName) {
        for (let i5 = this.stackTop; i5 >= 0; i5--) {
          if (this.treeAdapter.getNamespaceURI(this.items[i5]) !== html_js_1.NS.HTML) {
            continue;
          }
          switch (this.tagIDs[i5]) {
            case tagName: {
              return true;
            }
            case html_js_1.TAG_ID.TABLE:
            case html_js_1.TAG_ID.HTML: {
              return false;
            }
          }
        }
        return true;
      }
      hasTableBodyContextInTableScope() {
        for (let i5 = this.stackTop; i5 >= 0; i5--) {
          if (this.treeAdapter.getNamespaceURI(this.items[i5]) !== html_js_1.NS.HTML) {
            continue;
          }
          switch (this.tagIDs[i5]) {
            case html_js_1.TAG_ID.TBODY:
            case html_js_1.TAG_ID.THEAD:
            case html_js_1.TAG_ID.TFOOT: {
              return true;
            }
            case html_js_1.TAG_ID.TABLE:
            case html_js_1.TAG_ID.HTML: {
              return false;
            }
          }
        }
        return true;
      }
      hasInSelectScope(tagName) {
        for (let i5 = this.stackTop; i5 >= 0; i5--) {
          if (this.treeAdapter.getNamespaceURI(this.items[i5]) !== html_js_1.NS.HTML) {
            continue;
          }
          switch (this.tagIDs[i5]) {
            case tagName: {
              return true;
            }
            case html_js_1.TAG_ID.OPTION:
            case html_js_1.TAG_ID.OPTGROUP: {
              break;
            }
            default: {
              return false;
            }
          }
        }
        return true;
      }
      //Implied end tags
      generateImpliedEndTags() {
        while (this.currentTagId !== void 0 && IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId)) {
          this.pop();
        }
      }
      generateImpliedEndTagsThoroughly() {
        while (this.currentTagId !== void 0 && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {
          this.pop();
        }
      }
      generateImpliedEndTagsWithExclusion(exclusionId) {
        while (this.currentTagId !== void 0 && this.currentTagId !== exclusionId && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {
          this.pop();
        }
      }
    };
    exports.OpenElementStack = OpenElementStack;
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/parser/formatting-element-list.js
var require_formatting_element_list = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/parser/formatting-element-list.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.FormattingElementList = exports.EntryType = void 0;
    var NOAH_ARK_CAPACITY = 3;
    var EntryType;
    (function(EntryType2) {
      EntryType2[EntryType2["Marker"] = 0] = "Marker";
      EntryType2[EntryType2["Element"] = 1] = "Element";
    })(EntryType || (exports.EntryType = EntryType = {}));
    var MARKER = { type: EntryType.Marker };
    var FormattingElementList = class {
      constructor(treeAdapter) {
        this.treeAdapter = treeAdapter;
        this.entries = [];
        this.bookmark = null;
      }
      //Noah Ark's condition
      //OPTIMIZATION: at first we try to find possible candidates for exclusion using
      //lightweight heuristics without thorough attributes check.
      _getNoahArkConditionCandidates(newElement, neAttrs) {
        const candidates = [];
        const neAttrsLength = neAttrs.length;
        const neTagName = this.treeAdapter.getTagName(newElement);
        const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);
        for (let i5 = 0; i5 < this.entries.length; i5++) {
          const entry = this.entries[i5];
          if (entry.type === EntryType.Marker) {
            break;
          }
          const { element } = entry;
          if (this.treeAdapter.getTagName(element) === neTagName && this.treeAdapter.getNamespaceURI(element) === neNamespaceURI) {
            const elementAttrs = this.treeAdapter.getAttrList(element);
            if (elementAttrs.length === neAttrsLength) {
              candidates.push({ idx: i5, attrs: elementAttrs });
            }
          }
        }
        return candidates;
      }
      _ensureNoahArkCondition(newElement) {
        if (this.entries.length < NOAH_ARK_CAPACITY)
          return;
        const neAttrs = this.treeAdapter.getAttrList(newElement);
        const candidates = this._getNoahArkConditionCandidates(newElement, neAttrs);
        if (candidates.length < NOAH_ARK_CAPACITY)
          return;
        const neAttrsMap = new Map(neAttrs.map((neAttr) => [neAttr.name, neAttr.value]));
        let validCandidates = 0;
        for (let i5 = 0; i5 < candidates.length; i5++) {
          const candidate = candidates[i5];
          if (candidate.attrs.every((cAttr) => neAttrsMap.get(cAttr.name) === cAttr.value)) {
            validCandidates += 1;
            if (validCandidates >= NOAH_ARK_CAPACITY) {
              this.entries.splice(candidate.idx, 1);
            }
          }
        }
      }
      //Mutations
      insertMarker() {
        this.entries.unshift(MARKER);
      }
      pushElement(element, token) {
        this._ensureNoahArkCondition(element);
        this.entries.unshift({
          type: EntryType.Element,
          element,
          token
        });
      }
      insertElementAfterBookmark(element, token) {
        const bookmarkIdx = this.entries.indexOf(this.bookmark);
        this.entries.splice(bookmarkIdx, 0, {
          type: EntryType.Element,
          element,
          token
        });
      }
      removeEntry(entry) {
        const entryIndex = this.entries.indexOf(entry);
        if (entryIndex !== -1) {
          this.entries.splice(entryIndex, 1);
        }
      }
      /**
       * Clears the list of formatting elements up to the last marker.
       *
       * @see https://html.spec.whatwg.org/multipage/parsing.html#clear-the-list-of-active-formatting-elements-up-to-the-last-marker
       */
      clearToLastMarker() {
        const markerIdx = this.entries.indexOf(MARKER);
        if (markerIdx === -1) {
          this.entries.length = 0;
        } else {
          this.entries.splice(0, markerIdx + 1);
        }
      }
      //Search
      getElementEntryInScopeWithTagName(tagName) {
        const entry = this.entries.find((entry2) => entry2.type === EntryType.Marker || this.treeAdapter.getTagName(entry2.element) === tagName);
        return entry && entry.type === EntryType.Element ? entry : null;
      }
      getElementEntry(element) {
        return this.entries.find((entry) => entry.type === EntryType.Element && entry.element === element);
      }
    };
    exports.FormattingElementList = FormattingElementList;
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/tree-adapters/default.js
var require_default = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/tree-adapters/default.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.defaultTreeAdapter = void 0;
    var html_js_1 = require_html();
    exports.defaultTreeAdapter = {
      //Node construction
      createDocument() {
        return {
          nodeName: "#document",
          mode: html_js_1.DOCUMENT_MODE.NO_QUIRKS,
          childNodes: []
        };
      },
      createDocumentFragment() {
        return {
          nodeName: "#document-fragment",
          childNodes: []
        };
      },
      createElement(tagName, namespaceURI, attrs) {
        return {
          nodeName: tagName,
          tagName,
          attrs,
          namespaceURI,
          childNodes: [],
          parentNode: null
        };
      },
      createCommentNode(data2) {
        return {
          nodeName: "#comment",
          data: data2,
          parentNode: null
        };
      },
      createTextNode(value2) {
        return {
          nodeName: "#text",
          value: value2,
          parentNode: null
        };
      },
      //Tree mutation
      appendChild(parentNode, newNode) {
        parentNode.childNodes.push(newNode);
        newNode.parentNode = parentNode;
      },
      insertBefore(parentNode, newNode, referenceNode) {
        const insertionIdx = parentNode.childNodes.indexOf(referenceNode);
        parentNode.childNodes.splice(insertionIdx, 0, newNode);
        newNode.parentNode = parentNode;
      },
      setTemplateContent(templateElement, contentElement) {
        templateElement.content = contentElement;
      },
      getTemplateContent(templateElement) {
        return templateElement.content;
      },
      setDocumentType(document2, name, publicId, systemId) {
        const doctypeNode = document2.childNodes.find((node) => node.nodeName === "#documentType");
        if (doctypeNode) {
          doctypeNode.name = name;
          doctypeNode.publicId = publicId;
          doctypeNode.systemId = systemId;
        } else {
          const node = {
            nodeName: "#documentType",
            name,
            publicId,
            systemId,
            parentNode: null
          };
          exports.defaultTreeAdapter.appendChild(document2, node);
        }
      },
      setDocumentMode(document2, mode) {
        document2.mode = mode;
      },
      getDocumentMode(document2) {
        return document2.mode;
      },
      detachNode(node) {
        if (node.parentNode) {
          const idx = node.parentNode.childNodes.indexOf(node);
          node.parentNode.childNodes.splice(idx, 1);
          node.parentNode = null;
        }
      },
      insertText(parentNode, text) {
        if (parentNode.childNodes.length > 0) {
          const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];
          if (exports.defaultTreeAdapter.isTextNode(prevNode)) {
            prevNode.value += text;
            return;
          }
        }
        exports.defaultTreeAdapter.appendChild(parentNode, exports.defaultTreeAdapter.createTextNode(text));
      },
      insertTextBefore(parentNode, text, referenceNode) {
        const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];
        if (prevNode && exports.defaultTreeAdapter.isTextNode(prevNode)) {
          prevNode.value += text;
        } else {
          exports.defaultTreeAdapter.insertBefore(parentNode, exports.defaultTreeAdapter.createTextNode(text), referenceNode);
        }
      },
      adoptAttributes(recipient, attrs) {
        const recipientAttrsMap = new Set(recipient.attrs.map((attr) => attr.name));
        for (let j = 0; j < attrs.length; j++) {
          if (!recipientAttrsMap.has(attrs[j].name)) {
            recipient.attrs.push(attrs[j]);
          }
        }
      },
      //Tree traversing
      getFirstChild(node) {
        return node.childNodes[0];
      },
      getChildNodes(node) {
        return node.childNodes;
      },
      getParentNode(node) {
        return node.parentNode;
      },
      getAttrList(element) {
        return element.attrs;
      },
      //Node data
      getTagName(element) {
        return element.tagName;
      },
      getNamespaceURI(element) {
        return element.namespaceURI;
      },
      getTextNodeContent(textNode) {
        return textNode.value;
      },
      getCommentNodeContent(commentNode) {
        return commentNode.data;
      },
      getDocumentTypeNodeName(doctypeNode) {
        return doctypeNode.name;
      },
      getDocumentTypeNodePublicId(doctypeNode) {
        return doctypeNode.publicId;
      },
      getDocumentTypeNodeSystemId(doctypeNode) {
        return doctypeNode.systemId;
      },
      //Node types
      isTextNode(node) {
        return node.nodeName === "#text";
      },
      isCommentNode(node) {
        return node.nodeName === "#comment";
      },
      isDocumentTypeNode(node) {
        return node.nodeName === "#documentType";
      },
      isElementNode(node) {
        return Object.prototype.hasOwnProperty.call(node, "tagName");
      },
      // Source code location
      setNodeSourceCodeLocation(node, location) {
        node.sourceCodeLocation = location;
      },
      getNodeSourceCodeLocation(node) {
        return node.sourceCodeLocation;
      },
      updateNodeSourceCodeLocation(node, endLocation) {
        node.sourceCodeLocation = Object.assign(Object.assign({}, node.sourceCodeLocation), endLocation);
      }
    };
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/doctype.js
var require_doctype = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/doctype.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.isConforming = isConforming;
    exports.getDocumentMode = getDocumentMode;
    var html_js_1 = require_html();
    var VALID_DOCTYPE_NAME = "html";
    var VALID_SYSTEM_ID = "about:legacy-compat";
    var QUIRKS_MODE_SYSTEM_ID = "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd";
    var QUIRKS_MODE_PUBLIC_ID_PREFIXES = [
      "+//silmaril//dtd html pro v0r11 19970101//",
      "-//as//dtd html 3.0 aswedit + extensions//",
      "-//advasoft ltd//dtd html 3.0 aswedit + extensions//",
      "-//ietf//dtd html 2.0 level 1//",
      "-//ietf//dtd html 2.0 level 2//",
      "-//ietf//dtd html 2.0 strict level 1//",
      "-//ietf//dtd html 2.0 strict level 2//",
      "-//ietf//dtd html 2.0 strict//",
      "-//ietf//dtd html 2.0//",
      "-//ietf//dtd html 2.1e//",
      "-//ietf//dtd html 3.0//",
      "-//ietf//dtd html 3.2 final//",
      "-//ietf//dtd html 3.2//",
      "-//ietf//dtd html 3//",
      "-//ietf//dtd html level 0//",
      "-//ietf//dtd html level 1//",
      "-//ietf//dtd html level 2//",
      "-//ietf//dtd html level 3//",
      "-//ietf//dtd html strict level 0//",
      "-//ietf//dtd html strict level 1//",
      "-//ietf//dtd html strict level 2//",
      "-//ietf//dtd html strict level 3//",
      "-//ietf//dtd html strict//",
      "-//ietf//dtd html//",
      "-//metrius//dtd metrius presentational//",
      "-//microsoft//dtd internet explorer 2.0 html strict//",
      "-//microsoft//dtd internet explorer 2.0 html//",
      "-//microsoft//dtd internet explorer 2.0 tables//",
      "-//microsoft//dtd internet explorer 3.0 html strict//",
      "-//microsoft//dtd internet explorer 3.0 html//",
      "-//microsoft//dtd internet explorer 3.0 tables//",
      "-//netscape comm. corp.//dtd html//",
      "-//netscape comm. corp.//dtd strict html//",
      "-//o'reilly and associates//dtd html 2.0//",
      "-//o'reilly and associates//dtd html extended 1.0//",
      "-//o'reilly and associates//dtd html extended relaxed 1.0//",
      "-//sq//dtd html 2.0 hotmetal + extensions//",
      "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//",
      "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//",
      "-//spyglass//dtd html 2.0 extended//",
      "-//sun microsystems corp.//dtd hotjava html//",
      "-//sun microsystems corp.//dtd hotjava strict html//",
      "-//w3c//dtd html 3 1995-03-24//",
      "-//w3c//dtd html 3.2 draft//",
      "-//w3c//dtd html 3.2 final//",
      "-//w3c//dtd html 3.2//",
      "-//w3c//dtd html 3.2s draft//",
      "-//w3c//dtd html 4.0 frameset//",
      "-//w3c//dtd html 4.0 transitional//",
      "-//w3c//dtd html experimental 19960712//",
      "-//w3c//dtd html experimental 970421//",
      "-//w3c//dtd w3 html//",
      "-//w3o//dtd w3 html 3.0//",
      "-//webtechs//dtd mozilla html 2.0//",
      "-//webtechs//dtd mozilla html//"
    ];
    var QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = [
      ...QUIRKS_MODE_PUBLIC_ID_PREFIXES,
      "-//w3c//dtd html 4.01 frameset//",
      "-//w3c//dtd html 4.01 transitional//"
    ];
    var QUIRKS_MODE_PUBLIC_IDS = /* @__PURE__ */ new Set([
      "-//w3o//dtd w3 html strict 3.0//en//",
      "-/w3c/dtd html 4.0 transitional/en",
      "html"
    ]);
    var LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ["-//w3c//dtd xhtml 1.0 frameset//", "-//w3c//dtd xhtml 1.0 transitional//"];
    var LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = [
      ...LIMITED_QUIRKS_PUBLIC_ID_PREFIXES,
      "-//w3c//dtd html 4.01 frameset//",
      "-//w3c//dtd html 4.01 transitional//"
    ];
    function hasPrefix(publicId, prefixes) {
      return prefixes.some((prefix) => publicId.startsWith(prefix));
    }
    function isConforming(token) {
      return token.name === VALID_DOCTYPE_NAME && token.publicId === null && (token.systemId === null || token.systemId === VALID_SYSTEM_ID);
    }
    function getDocumentMode(token) {
      if (token.name !== VALID_DOCTYPE_NAME) {
        return html_js_1.DOCUMENT_MODE.QUIRKS;
      }
      const { systemId } = token;
      if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {
        return html_js_1.DOCUMENT_MODE.QUIRKS;
      }
      let { publicId } = token;
      if (publicId !== null) {
        publicId = publicId.toLowerCase();
        if (QUIRKS_MODE_PUBLIC_IDS.has(publicId)) {
          return html_js_1.DOCUMENT_MODE.QUIRKS;
        }
        let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;
        if (hasPrefix(publicId, prefixes)) {
          return html_js_1.DOCUMENT_MODE.QUIRKS;
        }
        prefixes = systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;
        if (hasPrefix(publicId, prefixes)) {
          return html_js_1.DOCUMENT_MODE.LIMITED_QUIRKS;
        }
      }
      return html_js_1.DOCUMENT_MODE.NO_QUIRKS;
    }
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/foreign-content.js
var require_foreign_content = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/foreign-content.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.SVG_TAG_NAMES_ADJUSTMENT_MAP = void 0;
    exports.causesExit = causesExit;
    exports.adjustTokenMathMLAttrs = adjustTokenMathMLAttrs;
    exports.adjustTokenSVGAttrs = adjustTokenSVGAttrs;
    exports.adjustTokenXMLAttrs = adjustTokenXMLAttrs;
    exports.adjustTokenSVGTagName = adjustTokenSVGTagName;
    exports.isIntegrationPoint = isIntegrationPoint;
    var html_js_1 = require_html();
    var MIME_TYPES = {
      TEXT_HTML: "text/html",
      APPLICATION_XML: "application/xhtml+xml"
    };
    var DEFINITION_URL_ATTR = "definitionurl";
    var ADJUSTED_DEFINITION_URL_ATTR = "definitionURL";
    var SVG_ATTRS_ADJUSTMENT_MAP = new Map([
      "attributeName",
      "attributeType",
      "baseFrequency",
      "baseProfile",
      "calcMode",
      "clipPathUnits",
      "diffuseConstant",
      "edgeMode",
      "filterUnits",
      "glyphRef",
      "gradientTransform",
      "gradientUnits",
      "kernelMatrix",
      "kernelUnitLength",
      "keyPoints",
      "keySplines",
      "keyTimes",
      "lengthAdjust",
      "limitingConeAngle",
      "markerHeight",
      "markerUnits",
      "markerWidth",
      "maskContentUnits",
      "maskUnits",
      "numOctaves",
      "pathLength",
      "patternContentUnits",
      "patternTransform",
      "patternUnits",
      "pointsAtX",
      "pointsAtY",
      "pointsAtZ",
      "preserveAlpha",
      "preserveAspectRatio",
      "primitiveUnits",
      "refX",
      "refY",
      "repeatCount",
      "repeatDur",
      "requiredExtensions",
      "requiredFeatures",
      "specularConstant",
      "specularExponent",
      "spreadMethod",
      "startOffset",
      "stdDeviation",
      "stitchTiles",
      "surfaceScale",
      "systemLanguage",
      "tableValues",
      "targetX",
      "targetY",
      "textLength",
      "viewBox",
      "viewTarget",
      "xChannelSelector",
      "yChannelSelector",
      "zoomAndPan"
    ].map((attr) => [attr.toLowerCase(), attr]));
    var XML_ATTRS_ADJUSTMENT_MAP = /* @__PURE__ */ new Map([
      ["xlink:actuate", { prefix: "xlink", name: "actuate", namespace: html_js_1.NS.XLINK }],
      ["xlink:arcrole", { prefix: "xlink", name: "arcrole", namespace: html_js_1.NS.XLINK }],
      ["xlink:href", { prefix: "xlink", name: "href", namespace: html_js_1.NS.XLINK }],
      ["xlink:role", { prefix: "xlink", name: "role", namespace: html_js_1.NS.XLINK }],
      ["xlink:show", { prefix: "xlink", name: "show", namespace: html_js_1.NS.XLINK }],
      ["xlink:title", { prefix: "xlink", name: "title", namespace: html_js_1.NS.XLINK }],
      ["xlink:type", { prefix: "xlink", name: "type", namespace: html_js_1.NS.XLINK }],
      ["xml:lang", { prefix: "xml", name: "lang", namespace: html_js_1.NS.XML }],
      ["xml:space", { prefix: "xml", name: "space", namespace: html_js_1.NS.XML }],
      ["xmlns", { prefix: "", name: "xmlns", namespace: html_js_1.NS.XMLNS }],
      ["xmlns:xlink", { prefix: "xmlns", name: "xlink", namespace: html_js_1.NS.XMLNS }]
    ]);
    exports.SVG_TAG_NAMES_ADJUSTMENT_MAP = new Map([
      "altGlyph",
      "altGlyphDef",
      "altGlyphItem",
      "animateColor",
      "animateMotion",
      "animateTransform",
      "clipPath",
      "feBlend",
      "feColorMatrix",
      "feComponentTransfer",
      "feComposite",
      "feConvolveMatrix",
      "feDiffuseLighting",
      "feDisplacementMap",
      "feDistantLight",
      "feFlood",
      "feFuncA",
      "feFuncB",
      "feFuncG",
      "feFuncR",
      "feGaussianBlur",
      "feImage",
      "feMerge",
      "feMergeNode",
      "feMorphology",
      "feOffset",
      "fePointLight",
      "feSpecularLighting",
      "feSpotLight",
      "feTile",
      "feTurbulence",
      "foreignObject",
      "glyphRef",
      "linearGradient",
      "radialGradient",
      "textPath"
    ].map((tn) => [tn.toLowerCase(), tn]));
    var EXITS_FOREIGN_CONTENT = /* @__PURE__ */ new Set([
      html_js_1.TAG_ID.B,
      html_js_1.TAG_ID.BIG,
      html_js_1.TAG_ID.BLOCKQUOTE,
      html_js_1.TAG_ID.BODY,
      html_js_1.TAG_ID.BR,
      html_js_1.TAG_ID.CENTER,
      html_js_1.TAG_ID.CODE,
      html_js_1.TAG_ID.DD,
      html_js_1.TAG_ID.DIV,
      html_js_1.TAG_ID.DL,
      html_js_1.TAG_ID.DT,
      html_js_1.TAG_ID.EM,
      html_js_1.TAG_ID.EMBED,
      html_js_1.TAG_ID.H1,
      html_js_1.TAG_ID.H2,
      html_js_1.TAG_ID.H3,
      html_js_1.TAG_ID.H4,
      html_js_1.TAG_ID.H5,
      html_js_1.TAG_ID.H6,
      html_js_1.TAG_ID.HEAD,
      html_js_1.TAG_ID.HR,
      html_js_1.TAG_ID.I,
      html_js_1.TAG_ID.IMG,
      html_js_1.TAG_ID.LI,
      html_js_1.TAG_ID.LISTING,
      html_js_1.TAG_ID.MENU,
      html_js_1.TAG_ID.META,
      html_js_1.TAG_ID.NOBR,
      html_js_1.TAG_ID.OL,
      html_js_1.TAG_ID.P,
      html_js_1.TAG_ID.PRE,
      html_js_1.TAG_ID.RUBY,
      html_js_1.TAG_ID.S,
      html_js_1.TAG_ID.SMALL,
      html_js_1.TAG_ID.SPAN,
      html_js_1.TAG_ID.STRONG,
      html_js_1.TAG_ID.STRIKE,
      html_js_1.TAG_ID.SUB,
      html_js_1.TAG_ID.SUP,
      html_js_1.TAG_ID.TABLE,
      html_js_1.TAG_ID.TT,
      html_js_1.TAG_ID.U,
      html_js_1.TAG_ID.UL,
      html_js_1.TAG_ID.VAR
    ]);
    function causesExit(startTagToken) {
      const tn = startTagToken.tagID;
      const isFontWithAttrs = tn === html_js_1.TAG_ID.FONT && startTagToken.attrs.some(({ name }) => name === html_js_1.ATTRS.COLOR || name === html_js_1.ATTRS.SIZE || name === html_js_1.ATTRS.FACE);
      return isFontWithAttrs || EXITS_FOREIGN_CONTENT.has(tn);
    }
    function adjustTokenMathMLAttrs(token) {
      for (let i5 = 0; i5 < token.attrs.length; i5++) {
        if (token.attrs[i5].name === DEFINITION_URL_ATTR) {
          token.attrs[i5].name = ADJUSTED_DEFINITION_URL_ATTR;
          break;
        }
      }
    }
    function adjustTokenSVGAttrs(token) {
      for (let i5 = 0; i5 < token.attrs.length; i5++) {
        const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i5].name);
        if (adjustedAttrName != null) {
          token.attrs[i5].name = adjustedAttrName;
        }
      }
    }
    function adjustTokenXMLAttrs(token) {
      for (let i5 = 0; i5 < token.attrs.length; i5++) {
        const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i5].name);
        if (adjustedAttrEntry) {
          token.attrs[i5].prefix = adjustedAttrEntry.prefix;
          token.attrs[i5].name = adjustedAttrEntry.name;
          token.attrs[i5].namespace = adjustedAttrEntry.namespace;
        }
      }
    }
    function adjustTokenSVGTagName(token) {
      const adjustedTagName = exports.SVG_TAG_NAMES_ADJUSTMENT_MAP.get(token.tagName);
      if (adjustedTagName != null) {
        token.tagName = adjustedTagName;
        token.tagID = (0, html_js_1.getTagID)(token.tagName);
      }
    }
    function isMathMLTextIntegrationPoint(tn, ns) {
      return ns === html_js_1.NS.MATHML && (tn === html_js_1.TAG_ID.MI || tn === html_js_1.TAG_ID.MO || tn === html_js_1.TAG_ID.MN || tn === html_js_1.TAG_ID.MS || tn === html_js_1.TAG_ID.MTEXT);
    }
    function isHtmlIntegrationPoint(tn, ns, attrs) {
      if (ns === html_js_1.NS.MATHML && tn === html_js_1.TAG_ID.ANNOTATION_XML) {
        for (let i5 = 0; i5 < attrs.length; i5++) {
          if (attrs[i5].name === html_js_1.ATTRS.ENCODING) {
            const value2 = attrs[i5].value.toLowerCase();
            return value2 === MIME_TYPES.TEXT_HTML || value2 === MIME_TYPES.APPLICATION_XML;
          }
        }
      }
      return ns === html_js_1.NS.SVG && (tn === html_js_1.TAG_ID.FOREIGN_OBJECT || tn === html_js_1.TAG_ID.DESC || tn === html_js_1.TAG_ID.TITLE);
    }
    function isIntegrationPoint(tn, ns, attrs, foreignNS) {
      return (!foreignNS || foreignNS === html_js_1.NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs) || (!foreignNS || foreignNS === html_js_1.NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns);
    }
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/parser/index.js
var require_parser = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/parser/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Parser = void 0;
    var index_js_1 = require_tokenizer();
    var open_element_stack_js_1 = require_open_element_stack();
    var formatting_element_list_js_1 = require_formatting_element_list();
    var default_js_1 = require_default();
    var doctype = require_doctype();
    var foreignContent = require_foreign_content();
    var error_codes_js_1 = require_error_codes();
    var unicode = require_unicode2();
    var html_js_1 = require_html();
    var token_js_1 = require_token();
    var HIDDEN_INPUT_TYPE = "hidden";
    var AA_OUTER_LOOP_ITER = 8;
    var AA_INNER_LOOP_ITER = 3;
    var InsertionMode;
    (function(InsertionMode2) {
      InsertionMode2[InsertionMode2["INITIAL"] = 0] = "INITIAL";
      InsertionMode2[InsertionMode2["BEFORE_HTML"] = 1] = "BEFORE_HTML";
      InsertionMode2[InsertionMode2["BEFORE_HEAD"] = 2] = "BEFORE_HEAD";
      InsertionMode2[InsertionMode2["IN_HEAD"] = 3] = "IN_HEAD";
      InsertionMode2[InsertionMode2["IN_HEAD_NO_SCRIPT"] = 4] = "IN_HEAD_NO_SCRIPT";
      InsertionMode2[InsertionMode2["AFTER_HEAD"] = 5] = "AFTER_HEAD";
      InsertionMode2[InsertionMode2["IN_BODY"] = 6] = "IN_BODY";
      InsertionMode2[InsertionMode2["TEXT"] = 7] = "TEXT";
      InsertionMode2[InsertionMode2["IN_TABLE"] = 8] = "IN_TABLE";
      InsertionMode2[InsertionMode2["IN_TABLE_TEXT"] = 9] = "IN_TABLE_TEXT";
      InsertionMode2[InsertionMode2["IN_CAPTION"] = 10] = "IN_CAPTION";
      InsertionMode2[InsertionMode2["IN_COLUMN_GROUP"] = 11] = "IN_COLUMN_GROUP";
      InsertionMode2[InsertionMode2["IN_TABLE_BODY"] = 12] = "IN_TABLE_BODY";
      InsertionMode2[InsertionMode2["IN_ROW"] = 13] = "IN_ROW";
      InsertionMode2[InsertionMode2["IN_CELL"] = 14] = "IN_CELL";
      InsertionMode2[InsertionMode2["IN_SELECT"] = 15] = "IN_SELECT";
      InsertionMode2[InsertionMode2["IN_SELECT_IN_TABLE"] = 16] = "IN_SELECT_IN_TABLE";
      InsertionMode2[InsertionMode2["IN_TEMPLATE"] = 17] = "IN_TEMPLATE";
      InsertionMode2[InsertionMode2["AFTER_BODY"] = 18] = "AFTER_BODY";
      InsertionMode2[InsertionMode2["IN_FRAMESET"] = 19] = "IN_FRAMESET";
      InsertionMode2[InsertionMode2["AFTER_FRAMESET"] = 20] = "AFTER_FRAMESET";
      InsertionMode2[InsertionMode2["AFTER_AFTER_BODY"] = 21] = "AFTER_AFTER_BODY";
      InsertionMode2[InsertionMode2["AFTER_AFTER_FRAMESET"] = 22] = "AFTER_AFTER_FRAMESET";
    })(InsertionMode || (InsertionMode = {}));
    var BASE_LOC = {
      startLine: -1,
      startCol: -1,
      startOffset: -1,
      endLine: -1,
      endCol: -1,
      endOffset: -1
    };
    var TABLE_STRUCTURE_TAGS = /* @__PURE__ */ new Set([html_js_1.TAG_ID.TABLE, html_js_1.TAG_ID.TBODY, html_js_1.TAG_ID.TFOOT, html_js_1.TAG_ID.THEAD, html_js_1.TAG_ID.TR]);
    var defaultParserOptions = {
      scriptingEnabled: true,
      sourceCodeLocationInfo: false,
      treeAdapter: default_js_1.defaultTreeAdapter,
      onParseError: null
    };
    var Parser = class {
      constructor(options, document2, fragmentContext = null, scriptHandler = null) {
        this.fragmentContext = fragmentContext;
        this.scriptHandler = scriptHandler;
        this.currentToken = null;
        this.stopped = false;
        this.insertionMode = InsertionMode.INITIAL;
        this.originalInsertionMode = InsertionMode.INITIAL;
        this.headElement = null;
        this.formElement = null;
        this.currentNotInHTML = false;
        this.tmplInsertionModeStack = [];
        this.pendingCharacterTokens = [];
        this.hasNonWhitespacePendingCharacterToken = false;
        this.framesetOk = true;
        this.skipNextNewLine = false;
        this.fosterParentingEnabled = false;
        this.options = Object.assign(Object.assign({}, defaultParserOptions), options);
        this.treeAdapter = this.options.treeAdapter;
        this.onParseError = this.options.onParseError;
        if (this.onParseError) {
          this.options.sourceCodeLocationInfo = true;
        }
        this.document = document2 !== null && document2 !== void 0 ? document2 : this.treeAdapter.createDocument();
        this.tokenizer = new index_js_1.Tokenizer(this.options, this);
        this.activeFormattingElements = new formatting_element_list_js_1.FormattingElementList(this.treeAdapter);
        this.fragmentContextID = fragmentContext ? (0, html_js_1.getTagID)(this.treeAdapter.getTagName(fragmentContext)) : html_js_1.TAG_ID.UNKNOWN;
        this._setContextModes(fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : this.document, this.fragmentContextID);
        this.openElements = new open_element_stack_js_1.OpenElementStack(this.document, this.treeAdapter, this);
      }
      // API
      static parse(html, options) {
        const parser = new this(options);
        parser.tokenizer.write(html, true);
        return parser.document;
      }
      static getFragmentParser(fragmentContext, options) {
        const opts2 = Object.assign(Object.assign({}, defaultParserOptions), options);
        fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : fragmentContext = opts2.treeAdapter.createElement(html_js_1.TAG_NAMES.TEMPLATE, html_js_1.NS.HTML, []);
        const documentMock = opts2.treeAdapter.createElement("documentmock", html_js_1.NS.HTML, []);
        const parser = new this(opts2, documentMock, fragmentContext);
        if (parser.fragmentContextID === html_js_1.TAG_ID.TEMPLATE) {
          parser.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);
        }
        parser._initTokenizerForFragmentParsing();
        parser._insertFakeRootElement();
        parser._resetInsertionMode();
        parser._findFormInFragmentContext();
        return parser;
      }
      getFragment() {
        const rootElement = this.treeAdapter.getFirstChild(this.document);
        const fragment = this.treeAdapter.createDocumentFragment();
        this._adoptNodes(rootElement, fragment);
        return fragment;
      }
      //Errors
      /** @internal */
      _err(token, code, beforeToken) {
        var _a2;
        if (!this.onParseError)
          return;
        const loc = (_a2 = token.location) !== null && _a2 !== void 0 ? _a2 : BASE_LOC;
        const err2 = {
          code,
          startLine: loc.startLine,
          startCol: loc.startCol,
          startOffset: loc.startOffset,
          endLine: beforeToken ? loc.startLine : loc.endLine,
          endCol: beforeToken ? loc.startCol : loc.endCol,
          endOffset: beforeToken ? loc.startOffset : loc.endOffset
        };
        this.onParseError(err2);
      }
      //Stack events
      /** @internal */
      onItemPush(node, tid, isTop) {
        var _a2, _b2;
        (_b2 = (_a2 = this.treeAdapter).onItemPush) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, node);
        if (isTop && this.openElements.stackTop > 0)
          this._setContextModes(node, tid);
      }
      /** @internal */
      onItemPop(node, isTop) {
        var _a2, _b2;
        if (this.options.sourceCodeLocationInfo) {
          this._setEndLocation(node, this.currentToken);
        }
        (_b2 = (_a2 = this.treeAdapter).onItemPop) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, node, this.openElements.current);
        if (isTop) {
          let current;
          let currentTagId;
          if (this.openElements.stackTop === 0 && this.fragmentContext) {
            current = this.fragmentContext;
            currentTagId = this.fragmentContextID;
          } else {
            ({ current, currentTagId } = this.openElements);
          }
          this._setContextModes(current, currentTagId);
        }
      }
      _setContextModes(current, tid) {
        const isHTML = current === this.document || current && this.treeAdapter.getNamespaceURI(current) === html_js_1.NS.HTML;
        this.currentNotInHTML = !isHTML;
        this.tokenizer.inForeignNode = !isHTML && current !== void 0 && tid !== void 0 && !this._isIntegrationPoint(tid, current);
      }
      /** @protected */
      _switchToTextParsing(currentToken, nextTokenizerState) {
        this._insertElement(currentToken, html_js_1.NS.HTML);
        this.tokenizer.state = nextTokenizerState;
        this.originalInsertionMode = this.insertionMode;
        this.insertionMode = InsertionMode.TEXT;
      }
      switchToPlaintextParsing() {
        this.insertionMode = InsertionMode.TEXT;
        this.originalInsertionMode = InsertionMode.IN_BODY;
        this.tokenizer.state = index_js_1.TokenizerMode.PLAINTEXT;
      }
      //Fragment parsing
      /** @protected */
      _getAdjustedCurrentElement() {
        return this.openElements.stackTop === 0 && this.fragmentContext ? this.fragmentContext : this.openElements.current;
      }
      /** @protected */
      _findFormInFragmentContext() {
        let node = this.fragmentContext;
        while (node) {
          if (this.treeAdapter.getTagName(node) === html_js_1.TAG_NAMES.FORM) {
            this.formElement = node;
            break;
          }
          node = this.treeAdapter.getParentNode(node);
        }
      }
      _initTokenizerForFragmentParsing() {
        if (!this.fragmentContext || this.treeAdapter.getNamespaceURI(this.fragmentContext) !== html_js_1.NS.HTML) {
          return;
        }
        switch (this.fragmentContextID) {
          case html_js_1.TAG_ID.TITLE:
          case html_js_1.TAG_ID.TEXTAREA: {
            this.tokenizer.state = index_js_1.TokenizerMode.RCDATA;
            break;
          }
          case html_js_1.TAG_ID.STYLE:
          case html_js_1.TAG_ID.XMP:
          case html_js_1.TAG_ID.IFRAME:
          case html_js_1.TAG_ID.NOEMBED:
          case html_js_1.TAG_ID.NOFRAMES:
          case html_js_1.TAG_ID.NOSCRIPT: {
            this.tokenizer.state = index_js_1.TokenizerMode.RAWTEXT;
            break;
          }
          case html_js_1.TAG_ID.SCRIPT: {
            this.tokenizer.state = index_js_1.TokenizerMode.SCRIPT_DATA;
            break;
          }
          case html_js_1.TAG_ID.PLAINTEXT: {
            this.tokenizer.state = index_js_1.TokenizerMode.PLAINTEXT;
            break;
          }
          default:
        }
      }
      //Tree mutation
      /** @protected */
      _setDocumentType(token) {
        const name = token.name || "";
        const publicId = token.publicId || "";
        const systemId = token.systemId || "";
        this.treeAdapter.setDocumentType(this.document, name, publicId, systemId);
        if (token.location) {
          const documentChildren = this.treeAdapter.getChildNodes(this.document);
          const docTypeNode = documentChildren.find((node) => this.treeAdapter.isDocumentTypeNode(node));
          if (docTypeNode) {
            this.treeAdapter.setNodeSourceCodeLocation(docTypeNode, token.location);
          }
        }
      }
      /** @protected */
      _attachElementToTree(element, location) {
        if (this.options.sourceCodeLocationInfo) {
          const loc = location && Object.assign(Object.assign({}, location), { startTag: location });
          this.treeAdapter.setNodeSourceCodeLocation(element, loc);
        }
        if (this._shouldFosterParentOnInsertion()) {
          this._fosterParentElement(element);
        } else {
          const parent = this.openElements.currentTmplContentOrNode;
          this.treeAdapter.appendChild(parent !== null && parent !== void 0 ? parent : this.document, element);
        }
      }
      /**
       * For self-closing tags. Add an element to the tree, but skip adding it
       * to the stack.
       */
      /** @protected */
      _appendElement(token, namespaceURI) {
        const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);
        this._attachElementToTree(element, token.location);
      }
      /** @protected */
      _insertElement(token, namespaceURI) {
        const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);
        this._attachElementToTree(element, token.location);
        this.openElements.push(element, token.tagID);
      }
      /** @protected */
      _insertFakeElement(tagName, tagID) {
        const element = this.treeAdapter.createElement(tagName, html_js_1.NS.HTML, []);
        this._attachElementToTree(element, null);
        this.openElements.push(element, tagID);
      }
      /** @protected */
      _insertTemplate(token) {
        const tmpl = this.treeAdapter.createElement(token.tagName, html_js_1.NS.HTML, token.attrs);
        const content = this.treeAdapter.createDocumentFragment();
        this.treeAdapter.setTemplateContent(tmpl, content);
        this._attachElementToTree(tmpl, token.location);
        this.openElements.push(tmpl, token.tagID);
        if (this.options.sourceCodeLocationInfo)
          this.treeAdapter.setNodeSourceCodeLocation(content, null);
      }
      /** @protected */
      _insertFakeRootElement() {
        const element = this.treeAdapter.createElement(html_js_1.TAG_NAMES.HTML, html_js_1.NS.HTML, []);
        if (this.options.sourceCodeLocationInfo)
          this.treeAdapter.setNodeSourceCodeLocation(element, null);
        this.treeAdapter.appendChild(this.openElements.current, element);
        this.openElements.push(element, html_js_1.TAG_ID.HTML);
      }
      /** @protected */
      _appendCommentNode(token, parent) {
        const commentNode = this.treeAdapter.createCommentNode(token.data);
        this.treeAdapter.appendChild(parent, commentNode);
        if (this.options.sourceCodeLocationInfo) {
          this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);
        }
      }
      /** @protected */
      _insertCharacters(token) {
        let parent;
        let beforeElement;
        if (this._shouldFosterParentOnInsertion()) {
          ({ parent, beforeElement } = this._findFosterParentingLocation());
          if (beforeElement) {
            this.treeAdapter.insertTextBefore(parent, token.chars, beforeElement);
          } else {
            this.treeAdapter.insertText(parent, token.chars);
          }
        } else {
          parent = this.openElements.currentTmplContentOrNode;
          this.treeAdapter.insertText(parent, token.chars);
        }
        if (!token.location)
          return;
        const siblings = this.treeAdapter.getChildNodes(parent);
        const textNodeIdx = beforeElement ? siblings.lastIndexOf(beforeElement) : siblings.length;
        const textNode = siblings[textNodeIdx - 1];
        const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);
        if (tnLoc) {
          const { endLine, endCol, endOffset } = token.location;
          this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });
        } else if (this.options.sourceCodeLocationInfo) {
          this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);
        }
      }
      /** @protected */
      _adoptNodes(donor, recipient) {
        for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {
          this.treeAdapter.detachNode(child);
          this.treeAdapter.appendChild(recipient, child);
        }
      }
      /** @protected */
      _setEndLocation(element, closingToken) {
        if (this.treeAdapter.getNodeSourceCodeLocation(element) && closingToken.location) {
          const ctLoc = closingToken.location;
          const tn = this.treeAdapter.getTagName(element);
          const endLoc = (
            // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing
            // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.
            closingToken.type === token_js_1.TokenType.END_TAG && tn === closingToken.tagName ? {
              endTag: Object.assign({}, ctLoc),
              endLine: ctLoc.endLine,
              endCol: ctLoc.endCol,
              endOffset: ctLoc.endOffset
            } : {
              endLine: ctLoc.startLine,
              endCol: ctLoc.startCol,
              endOffset: ctLoc.startOffset
            }
          );
          this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);
        }
      }
      //Token processing
      shouldProcessStartTagTokenInForeignContent(token) {
        if (!this.currentNotInHTML)
          return false;
        let current;
        let currentTagId;
        if (this.openElements.stackTop === 0 && this.fragmentContext) {
          current = this.fragmentContext;
          currentTagId = this.fragmentContextID;
        } else {
          ({ current, currentTagId } = this.openElements);
        }
        if (token.tagID === html_js_1.TAG_ID.SVG && this.treeAdapter.getTagName(current) === html_js_1.TAG_NAMES.ANNOTATION_XML && this.treeAdapter.getNamespaceURI(current) === html_js_1.NS.MATHML) {
          return false;
        }
        return (
          // Check that `current` is not an integration point for HTML or MathML elements.
          this.tokenizer.inForeignNode || // If it _is_ an integration point, then we might have to check that it is not an HTML
          // integration point.
          (token.tagID === html_js_1.TAG_ID.MGLYPH || token.tagID === html_js_1.TAG_ID.MALIGNMARK) && currentTagId !== void 0 && !this._isIntegrationPoint(currentTagId, current, html_js_1.NS.HTML)
        );
      }
      /** @protected */
      _processToken(token) {
        switch (token.type) {
          case token_js_1.TokenType.CHARACTER: {
            this.onCharacter(token);
            break;
          }
          case token_js_1.TokenType.NULL_CHARACTER: {
            this.onNullCharacter(token);
            break;
          }
          case token_js_1.TokenType.COMMENT: {
            this.onComment(token);
            break;
          }
          case token_js_1.TokenType.DOCTYPE: {
            this.onDoctype(token);
            break;
          }
          case token_js_1.TokenType.START_TAG: {
            this._processStartTag(token);
            break;
          }
          case token_js_1.TokenType.END_TAG: {
            this.onEndTag(token);
            break;
          }
          case token_js_1.TokenType.EOF: {
            this.onEof(token);
            break;
          }
          case token_js_1.TokenType.WHITESPACE_CHARACTER: {
            this.onWhitespaceCharacter(token);
            break;
          }
        }
      }
      //Integration points
      /** @protected */
      _isIntegrationPoint(tid, element, foreignNS) {
        const ns = this.treeAdapter.getNamespaceURI(element);
        const attrs = this.treeAdapter.getAttrList(element);
        return foreignContent.isIntegrationPoint(tid, ns, attrs, foreignNS);
      }
      //Active formatting elements reconstruction
      /** @protected */
      _reconstructActiveFormattingElements() {
        const listLength = this.activeFormattingElements.entries.length;
        if (listLength) {
          const endIndex = this.activeFormattingElements.entries.findIndex((entry) => entry.type === formatting_element_list_js_1.EntryType.Marker || this.openElements.contains(entry.element));
          const unopenIdx = endIndex === -1 ? listLength - 1 : endIndex - 1;
          for (let i5 = unopenIdx; i5 >= 0; i5--) {
            const entry = this.activeFormattingElements.entries[i5];
            this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));
            entry.element = this.openElements.current;
          }
        }
      }
      //Close elements
      /** @protected */
      _closeTableCell() {
        this.openElements.generateImpliedEndTags();
        this.openElements.popUntilTableCellPopped();
        this.activeFormattingElements.clearToLastMarker();
        this.insertionMode = InsertionMode.IN_ROW;
      }
      /** @protected */
      _closePElement() {
        this.openElements.generateImpliedEndTagsWithExclusion(html_js_1.TAG_ID.P);
        this.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.P);
      }
      //Insertion modes
      /** @protected */
      _resetInsertionMode() {
        for (let i5 = this.openElements.stackTop; i5 >= 0; i5--) {
          switch (i5 === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[i5]) {
            case html_js_1.TAG_ID.TR: {
              this.insertionMode = InsertionMode.IN_ROW;
              return;
            }
            case html_js_1.TAG_ID.TBODY:
            case html_js_1.TAG_ID.THEAD:
            case html_js_1.TAG_ID.TFOOT: {
              this.insertionMode = InsertionMode.IN_TABLE_BODY;
              return;
            }
            case html_js_1.TAG_ID.CAPTION: {
              this.insertionMode = InsertionMode.IN_CAPTION;
              return;
            }
            case html_js_1.TAG_ID.COLGROUP: {
              this.insertionMode = InsertionMode.IN_COLUMN_GROUP;
              return;
            }
            case html_js_1.TAG_ID.TABLE: {
              this.insertionMode = InsertionMode.IN_TABLE;
              return;
            }
            case html_js_1.TAG_ID.BODY: {
              this.insertionMode = InsertionMode.IN_BODY;
              return;
            }
            case html_js_1.TAG_ID.FRAMESET: {
              this.insertionMode = InsertionMode.IN_FRAMESET;
              return;
            }
            case html_js_1.TAG_ID.SELECT: {
              this._resetInsertionModeForSelect(i5);
              return;
            }
            case html_js_1.TAG_ID.TEMPLATE: {
              this.insertionMode = this.tmplInsertionModeStack[0];
              return;
            }
            case html_js_1.TAG_ID.HTML: {
              this.insertionMode = this.headElement ? InsertionMode.AFTER_HEAD : InsertionMode.BEFORE_HEAD;
              return;
            }
            case html_js_1.TAG_ID.TD:
            case html_js_1.TAG_ID.TH: {
              if (i5 > 0) {
                this.insertionMode = InsertionMode.IN_CELL;
                return;
              }
              break;
            }
            case html_js_1.TAG_ID.HEAD: {
              if (i5 > 0) {
                this.insertionMode = InsertionMode.IN_HEAD;
                return;
              }
              break;
            }
          }
        }
        this.insertionMode = InsertionMode.IN_BODY;
      }
      /** @protected */
      _resetInsertionModeForSelect(selectIdx) {
        if (selectIdx > 0) {
          for (let i5 = selectIdx - 1; i5 > 0; i5--) {
            const tn = this.openElements.tagIDs[i5];
            if (tn === html_js_1.TAG_ID.TEMPLATE) {
              break;
            } else if (tn === html_js_1.TAG_ID.TABLE) {
              this.insertionMode = InsertionMode.IN_SELECT_IN_TABLE;
              return;
            }
          }
        }
        this.insertionMode = InsertionMode.IN_SELECT;
      }
      //Foster parenting
      /** @protected */
      _isElementCausesFosterParenting(tn) {
        return TABLE_STRUCTURE_TAGS.has(tn);
      }
      /** @protected */
      _shouldFosterParentOnInsertion() {
        return this.fosterParentingEnabled && this.openElements.currentTagId !== void 0 && this._isElementCausesFosterParenting(this.openElements.currentTagId);
      }
      /** @protected */
      _findFosterParentingLocation() {
        for (let i5 = this.openElements.stackTop; i5 >= 0; i5--) {
          const openElement = this.openElements.items[i5];
          switch (this.openElements.tagIDs[i5]) {
            case html_js_1.TAG_ID.TEMPLATE: {
              if (this.treeAdapter.getNamespaceURI(openElement) === html_js_1.NS.HTML) {
                return { parent: this.treeAdapter.getTemplateContent(openElement), beforeElement: null };
              }
              break;
            }
            case html_js_1.TAG_ID.TABLE: {
              const parent = this.treeAdapter.getParentNode(openElement);
              if (parent) {
                return { parent, beforeElement: openElement };
              }
              return { parent: this.openElements.items[i5 - 1], beforeElement: null };
            }
            default:
          }
        }
        return { parent: this.openElements.items[0], beforeElement: null };
      }
      /** @protected */
      _fosterParentElement(element) {
        const location = this._findFosterParentingLocation();
        if (location.beforeElement) {
          this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);
        } else {
          this.treeAdapter.appendChild(location.parent, element);
        }
      }
      //Special elements
      /** @protected */
      _isSpecialElement(element, id) {
        const ns = this.treeAdapter.getNamespaceURI(element);
        return html_js_1.SPECIAL_ELEMENTS[ns].has(id);
      }
      /** @internal */
      onCharacter(token) {
        this.skipNextNewLine = false;
        if (this.tokenizer.inForeignNode) {
          characterInForeignContent(this, token);
          return;
        }
        switch (this.insertionMode) {
          case InsertionMode.INITIAL: {
            tokenInInitialMode(this, token);
            break;
          }
          case InsertionMode.BEFORE_HTML: {
            tokenBeforeHtml(this, token);
            break;
          }
          case InsertionMode.BEFORE_HEAD: {
            tokenBeforeHead(this, token);
            break;
          }
          case InsertionMode.IN_HEAD: {
            tokenInHead(this, token);
            break;
          }
          case InsertionMode.IN_HEAD_NO_SCRIPT: {
            tokenInHeadNoScript(this, token);
            break;
          }
          case InsertionMode.AFTER_HEAD: {
            tokenAfterHead(this, token);
            break;
          }
          case InsertionMode.IN_BODY:
          case InsertionMode.IN_CAPTION:
          case InsertionMode.IN_CELL:
          case InsertionMode.IN_TEMPLATE: {
            characterInBody(this, token);
            break;
          }
          case InsertionMode.TEXT:
          case InsertionMode.IN_SELECT:
          case InsertionMode.IN_SELECT_IN_TABLE: {
            this._insertCharacters(token);
            break;
          }
          case InsertionMode.IN_TABLE:
          case InsertionMode.IN_TABLE_BODY:
          case InsertionMode.IN_ROW: {
            characterInTable(this, token);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            characterInTableText(this, token);
            break;
          }
          case InsertionMode.IN_COLUMN_GROUP: {
            tokenInColumnGroup(this, token);
            break;
          }
          case InsertionMode.AFTER_BODY: {
            tokenAfterBody(this, token);
            break;
          }
          case InsertionMode.AFTER_AFTER_BODY: {
            tokenAfterAfterBody(this, token);
            break;
          }
          default:
        }
      }
      /** @internal */
      onNullCharacter(token) {
        this.skipNextNewLine = false;
        if (this.tokenizer.inForeignNode) {
          nullCharacterInForeignContent(this, token);
          return;
        }
        switch (this.insertionMode) {
          case InsertionMode.INITIAL: {
            tokenInInitialMode(this, token);
            break;
          }
          case InsertionMode.BEFORE_HTML: {
            tokenBeforeHtml(this, token);
            break;
          }
          case InsertionMode.BEFORE_HEAD: {
            tokenBeforeHead(this, token);
            break;
          }
          case InsertionMode.IN_HEAD: {
            tokenInHead(this, token);
            break;
          }
          case InsertionMode.IN_HEAD_NO_SCRIPT: {
            tokenInHeadNoScript(this, token);
            break;
          }
          case InsertionMode.AFTER_HEAD: {
            tokenAfterHead(this, token);
            break;
          }
          case InsertionMode.TEXT: {
            this._insertCharacters(token);
            break;
          }
          case InsertionMode.IN_TABLE:
          case InsertionMode.IN_TABLE_BODY:
          case InsertionMode.IN_ROW: {
            characterInTable(this, token);
            break;
          }
          case InsertionMode.IN_COLUMN_GROUP: {
            tokenInColumnGroup(this, token);
            break;
          }
          case InsertionMode.AFTER_BODY: {
            tokenAfterBody(this, token);
            break;
          }
          case InsertionMode.AFTER_AFTER_BODY: {
            tokenAfterAfterBody(this, token);
            break;
          }
          default:
        }
      }
      /** @internal */
      onComment(token) {
        this.skipNextNewLine = false;
        if (this.currentNotInHTML) {
          appendComment(this, token);
          return;
        }
        switch (this.insertionMode) {
          case InsertionMode.INITIAL:
          case InsertionMode.BEFORE_HTML:
          case InsertionMode.BEFORE_HEAD:
          case InsertionMode.IN_HEAD:
          case InsertionMode.IN_HEAD_NO_SCRIPT:
          case InsertionMode.AFTER_HEAD:
          case InsertionMode.IN_BODY:
          case InsertionMode.IN_TABLE:
          case InsertionMode.IN_CAPTION:
          case InsertionMode.IN_COLUMN_GROUP:
          case InsertionMode.IN_TABLE_BODY:
          case InsertionMode.IN_ROW:
          case InsertionMode.IN_CELL:
          case InsertionMode.IN_SELECT:
          case InsertionMode.IN_SELECT_IN_TABLE:
          case InsertionMode.IN_TEMPLATE:
          case InsertionMode.IN_FRAMESET:
          case InsertionMode.AFTER_FRAMESET: {
            appendComment(this, token);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            tokenInTableText(this, token);
            break;
          }
          case InsertionMode.AFTER_BODY: {
            appendCommentToRootHtmlElement(this, token);
            break;
          }
          case InsertionMode.AFTER_AFTER_BODY:
          case InsertionMode.AFTER_AFTER_FRAMESET: {
            appendCommentToDocument(this, token);
            break;
          }
          default:
        }
      }
      /** @internal */
      onDoctype(token) {
        this.skipNextNewLine = false;
        switch (this.insertionMode) {
          case InsertionMode.INITIAL: {
            doctypeInInitialMode(this, token);
            break;
          }
          case InsertionMode.BEFORE_HEAD:
          case InsertionMode.IN_HEAD:
          case InsertionMode.IN_HEAD_NO_SCRIPT:
          case InsertionMode.AFTER_HEAD: {
            this._err(token, error_codes_js_1.ERR.misplacedDoctype);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            tokenInTableText(this, token);
            break;
          }
          default:
        }
      }
      /** @internal */
      onStartTag(token) {
        this.skipNextNewLine = false;
        this.currentToken = token;
        this._processStartTag(token);
        if (token.selfClosing && !token.ackSelfClosing) {
          this._err(token, error_codes_js_1.ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);
        }
      }
      /**
       * Processes a given start tag.
       *
       * `onStartTag` checks if a self-closing tag was recognized. When a token
       * is moved inbetween multiple insertion modes, this check for self-closing
       * could lead to false positives. To avoid this, `_processStartTag` is used
       * for nested calls.
       *
       * @param token The token to process.
       * @protected
       */
      _processStartTag(token) {
        if (this.shouldProcessStartTagTokenInForeignContent(token)) {
          startTagInForeignContent(this, token);
        } else {
          this._startTagOutsideForeignContent(token);
        }
      }
      /** @protected */
      _startTagOutsideForeignContent(token) {
        switch (this.insertionMode) {
          case InsertionMode.INITIAL: {
            tokenInInitialMode(this, token);
            break;
          }
          case InsertionMode.BEFORE_HTML: {
            startTagBeforeHtml(this, token);
            break;
          }
          case InsertionMode.BEFORE_HEAD: {
            startTagBeforeHead(this, token);
            break;
          }
          case InsertionMode.IN_HEAD: {
            startTagInHead(this, token);
            break;
          }
          case InsertionMode.IN_HEAD_NO_SCRIPT: {
            startTagInHeadNoScript(this, token);
            break;
          }
          case InsertionMode.AFTER_HEAD: {
            startTagAfterHead(this, token);
            break;
          }
          case InsertionMode.IN_BODY: {
            startTagInBody(this, token);
            break;
          }
          case InsertionMode.IN_TABLE: {
            startTagInTable(this, token);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            tokenInTableText(this, token);
            break;
          }
          case InsertionMode.IN_CAPTION: {
            startTagInCaption(this, token);
            break;
          }
          case InsertionMode.IN_COLUMN_GROUP: {
            startTagInColumnGroup(this, token);
            break;
          }
          case InsertionMode.IN_TABLE_BODY: {
            startTagInTableBody(this, token);
            break;
          }
          case InsertionMode.IN_ROW: {
            startTagInRow(this, token);
            break;
          }
          case InsertionMode.IN_CELL: {
            startTagInCell(this, token);
            break;
          }
          case InsertionMode.IN_SELECT: {
            startTagInSelect(this, token);
            break;
          }
          case InsertionMode.IN_SELECT_IN_TABLE: {
            startTagInSelectInTable(this, token);
            break;
          }
          case InsertionMode.IN_TEMPLATE: {
            startTagInTemplate(this, token);
            break;
          }
          case InsertionMode.AFTER_BODY: {
            startTagAfterBody(this, token);
            break;
          }
          case InsertionMode.IN_FRAMESET: {
            startTagInFrameset(this, token);
            break;
          }
          case InsertionMode.AFTER_FRAMESET: {
            startTagAfterFrameset(this, token);
            break;
          }
          case InsertionMode.AFTER_AFTER_BODY: {
            startTagAfterAfterBody(this, token);
            break;
          }
          case InsertionMode.AFTER_AFTER_FRAMESET: {
            startTagAfterAfterFrameset(this, token);
            break;
          }
          default:
        }
      }
      /** @internal */
      onEndTag(token) {
        this.skipNextNewLine = false;
        this.currentToken = token;
        if (this.currentNotInHTML) {
          endTagInForeignContent(this, token);
        } else {
          this._endTagOutsideForeignContent(token);
        }
      }
      /** @protected */
      _endTagOutsideForeignContent(token) {
        switch (this.insertionMode) {
          case InsertionMode.INITIAL: {
            tokenInInitialMode(this, token);
            break;
          }
          case InsertionMode.BEFORE_HTML: {
            endTagBeforeHtml(this, token);
            break;
          }
          case InsertionMode.BEFORE_HEAD: {
            endTagBeforeHead(this, token);
            break;
          }
          case InsertionMode.IN_HEAD: {
            endTagInHead(this, token);
            break;
          }
          case InsertionMode.IN_HEAD_NO_SCRIPT: {
            endTagInHeadNoScript(this, token);
            break;
          }
          case InsertionMode.AFTER_HEAD: {
            endTagAfterHead(this, token);
            break;
          }
          case InsertionMode.IN_BODY: {
            endTagInBody(this, token);
            break;
          }
          case InsertionMode.TEXT: {
            endTagInText(this, token);
            break;
          }
          case InsertionMode.IN_TABLE: {
            endTagInTable(this, token);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            tokenInTableText(this, token);
            break;
          }
          case InsertionMode.IN_CAPTION: {
            endTagInCaption(this, token);
            break;
          }
          case InsertionMode.IN_COLUMN_GROUP: {
            endTagInColumnGroup(this, token);
            break;
          }
          case InsertionMode.IN_TABLE_BODY: {
            endTagInTableBody(this, token);
            break;
          }
          case InsertionMode.IN_ROW: {
            endTagInRow(this, token);
            break;
          }
          case InsertionMode.IN_CELL: {
            endTagInCell(this, token);
            break;
          }
          case InsertionMode.IN_SELECT: {
            endTagInSelect(this, token);
            break;
          }
          case InsertionMode.IN_SELECT_IN_TABLE: {
            endTagInSelectInTable(this, token);
            break;
          }
          case InsertionMode.IN_TEMPLATE: {
            endTagInTemplate(this, token);
            break;
          }
          case InsertionMode.AFTER_BODY: {
            endTagAfterBody(this, token);
            break;
          }
          case InsertionMode.IN_FRAMESET: {
            endTagInFrameset(this, token);
            break;
          }
          case InsertionMode.AFTER_FRAMESET: {
            endTagAfterFrameset(this, token);
            break;
          }
          case InsertionMode.AFTER_AFTER_BODY: {
            tokenAfterAfterBody(this, token);
            break;
          }
          default:
        }
      }
      /** @internal */
      onEof(token) {
        switch (this.insertionMode) {
          case InsertionMode.INITIAL: {
            tokenInInitialMode(this, token);
            break;
          }
          case InsertionMode.BEFORE_HTML: {
            tokenBeforeHtml(this, token);
            break;
          }
          case InsertionMode.BEFORE_HEAD: {
            tokenBeforeHead(this, token);
            break;
          }
          case InsertionMode.IN_HEAD: {
            tokenInHead(this, token);
            break;
          }
          case InsertionMode.IN_HEAD_NO_SCRIPT: {
            tokenInHeadNoScript(this, token);
            break;
          }
          case InsertionMode.AFTER_HEAD: {
            tokenAfterHead(this, token);
            break;
          }
          case InsertionMode.IN_BODY:
          case InsertionMode.IN_TABLE:
          case InsertionMode.IN_CAPTION:
          case InsertionMode.IN_COLUMN_GROUP:
          case InsertionMode.IN_TABLE_BODY:
          case InsertionMode.IN_ROW:
          case InsertionMode.IN_CELL:
          case InsertionMode.IN_SELECT:
          case InsertionMode.IN_SELECT_IN_TABLE: {
            eofInBody(this, token);
            break;
          }
          case InsertionMode.TEXT: {
            eofInText(this, token);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            tokenInTableText(this, token);
            break;
          }
          case InsertionMode.IN_TEMPLATE: {
            eofInTemplate(this, token);
            break;
          }
          case InsertionMode.AFTER_BODY:
          case InsertionMode.IN_FRAMESET:
          case InsertionMode.AFTER_FRAMESET:
          case InsertionMode.AFTER_AFTER_BODY:
          case InsertionMode.AFTER_AFTER_FRAMESET: {
            stopParsing(this, token);
            break;
          }
          default:
        }
      }
      /** @internal */
      onWhitespaceCharacter(token) {
        if (this.skipNextNewLine) {
          this.skipNextNewLine = false;
          if (token.chars.charCodeAt(0) === unicode.CODE_POINTS.LINE_FEED) {
            if (token.chars.length === 1) {
              return;
            }
            token.chars = token.chars.substr(1);
          }
        }
        if (this.tokenizer.inForeignNode) {
          this._insertCharacters(token);
          return;
        }
        switch (this.insertionMode) {
          case InsertionMode.IN_HEAD:
          case InsertionMode.IN_HEAD_NO_SCRIPT:
          case InsertionMode.AFTER_HEAD:
          case InsertionMode.TEXT:
          case InsertionMode.IN_COLUMN_GROUP:
          case InsertionMode.IN_SELECT:
          case InsertionMode.IN_SELECT_IN_TABLE:
          case InsertionMode.IN_FRAMESET:
          case InsertionMode.AFTER_FRAMESET: {
            this._insertCharacters(token);
            break;
          }
          case InsertionMode.IN_BODY:
          case InsertionMode.IN_CAPTION:
          case InsertionMode.IN_CELL:
          case InsertionMode.IN_TEMPLATE:
          case InsertionMode.AFTER_BODY:
          case InsertionMode.AFTER_AFTER_BODY:
          case InsertionMode.AFTER_AFTER_FRAMESET: {
            whitespaceCharacterInBody(this, token);
            break;
          }
          case InsertionMode.IN_TABLE:
          case InsertionMode.IN_TABLE_BODY:
          case InsertionMode.IN_ROW: {
            characterInTable(this, token);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            whitespaceCharacterInTableText(this, token);
            break;
          }
          default:
        }
      }
    };
    exports.Parser = Parser;
    function aaObtainFormattingElementEntry(p3, token) {
      let formattingElementEntry = p3.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);
      if (formattingElementEntry) {
        if (!p3.openElements.contains(formattingElementEntry.element)) {
          p3.activeFormattingElements.removeEntry(formattingElementEntry);
          formattingElementEntry = null;
        } else if (!p3.openElements.hasInScope(token.tagID)) {
          formattingElementEntry = null;
        }
      } else {
        genericEndTagInBody(p3, token);
      }
      return formattingElementEntry;
    }
    function aaObtainFurthestBlock(p3, formattingElementEntry) {
      let furthestBlock = null;
      let idx = p3.openElements.stackTop;
      for (; idx >= 0; idx--) {
        const element = p3.openElements.items[idx];
        if (element === formattingElementEntry.element) {
          break;
        }
        if (p3._isSpecialElement(element, p3.openElements.tagIDs[idx])) {
          furthestBlock = element;
        }
      }
      if (!furthestBlock) {
        p3.openElements.shortenToLength(Math.max(idx, 0));
        p3.activeFormattingElements.removeEntry(formattingElementEntry);
      }
      return furthestBlock;
    }
    function aaInnerLoop(p3, furthestBlock, formattingElement) {
      let lastElement = furthestBlock;
      let nextElement = p3.openElements.getCommonAncestor(furthestBlock);
      for (let i5 = 0, element = nextElement; element !== formattingElement; i5++, element = nextElement) {
        nextElement = p3.openElements.getCommonAncestor(element);
        const elementEntry = p3.activeFormattingElements.getElementEntry(element);
        const counterOverflow = elementEntry && i5 >= AA_INNER_LOOP_ITER;
        const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;
        if (shouldRemoveFromOpenElements) {
          if (counterOverflow) {
            p3.activeFormattingElements.removeEntry(elementEntry);
          }
          p3.openElements.remove(element);
        } else {
          element = aaRecreateElementFromEntry(p3, elementEntry);
          if (lastElement === furthestBlock) {
            p3.activeFormattingElements.bookmark = elementEntry;
          }
          p3.treeAdapter.detachNode(lastElement);
          p3.treeAdapter.appendChild(element, lastElement);
          lastElement = element;
        }
      }
      return lastElement;
    }
    function aaRecreateElementFromEntry(p3, elementEntry) {
      const ns = p3.treeAdapter.getNamespaceURI(elementEntry.element);
      const newElement = p3.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);
      p3.openElements.replace(elementEntry.element, newElement);
      elementEntry.element = newElement;
      return newElement;
    }
    function aaInsertLastNodeInCommonAncestor(p3, commonAncestor, lastElement) {
      const tn = p3.treeAdapter.getTagName(commonAncestor);
      const tid = (0, html_js_1.getTagID)(tn);
      if (p3._isElementCausesFosterParenting(tid)) {
        p3._fosterParentElement(lastElement);
      } else {
        const ns = p3.treeAdapter.getNamespaceURI(commonAncestor);
        if (tid === html_js_1.TAG_ID.TEMPLATE && ns === html_js_1.NS.HTML) {
          commonAncestor = p3.treeAdapter.getTemplateContent(commonAncestor);
        }
        p3.treeAdapter.appendChild(commonAncestor, lastElement);
      }
    }
    function aaReplaceFormattingElement(p3, furthestBlock, formattingElementEntry) {
      const ns = p3.treeAdapter.getNamespaceURI(formattingElementEntry.element);
      const { token } = formattingElementEntry;
      const newElement = p3.treeAdapter.createElement(token.tagName, ns, token.attrs);
      p3._adoptNodes(furthestBlock, newElement);
      p3.treeAdapter.appendChild(furthestBlock, newElement);
      p3.activeFormattingElements.insertElementAfterBookmark(newElement, token);
      p3.activeFormattingElements.removeEntry(formattingElementEntry);
      p3.openElements.remove(formattingElementEntry.element);
      p3.openElements.insertAfter(furthestBlock, newElement, token.tagID);
    }
    function callAdoptionAgency(p3, token) {
      for (let i5 = 0; i5 < AA_OUTER_LOOP_ITER; i5++) {
        const formattingElementEntry = aaObtainFormattingElementEntry(p3, token);
        if (!formattingElementEntry) {
          break;
        }
        const furthestBlock = aaObtainFurthestBlock(p3, formattingElementEntry);
        if (!furthestBlock) {
          break;
        }
        p3.activeFormattingElements.bookmark = formattingElementEntry;
        const lastElement = aaInnerLoop(p3, furthestBlock, formattingElementEntry.element);
        const commonAncestor = p3.openElements.getCommonAncestor(formattingElementEntry.element);
        p3.treeAdapter.detachNode(lastElement);
        if (commonAncestor)
          aaInsertLastNodeInCommonAncestor(p3, commonAncestor, lastElement);
        aaReplaceFormattingElement(p3, furthestBlock, formattingElementEntry);
      }
    }
    function appendComment(p3, token) {
      p3._appendCommentNode(token, p3.openElements.currentTmplContentOrNode);
    }
    function appendCommentToRootHtmlElement(p3, token) {
      p3._appendCommentNode(token, p3.openElements.items[0]);
    }
    function appendCommentToDocument(p3, token) {
      p3._appendCommentNode(token, p3.document);
    }
    function stopParsing(p3, token) {
      p3.stopped = true;
      if (token.location) {
        const target = p3.fragmentContext ? 0 : 2;
        for (let i5 = p3.openElements.stackTop; i5 >= target; i5--) {
          p3._setEndLocation(p3.openElements.items[i5], token);
        }
        if (!p3.fragmentContext && p3.openElements.stackTop >= 0) {
          const htmlElement = p3.openElements.items[0];
          const htmlLocation = p3.treeAdapter.getNodeSourceCodeLocation(htmlElement);
          if (htmlLocation && !htmlLocation.endTag) {
            p3._setEndLocation(htmlElement, token);
            if (p3.openElements.stackTop >= 1) {
              const bodyElement = p3.openElements.items[1];
              const bodyLocation = p3.treeAdapter.getNodeSourceCodeLocation(bodyElement);
              if (bodyLocation && !bodyLocation.endTag) {
                p3._setEndLocation(bodyElement, token);
              }
            }
          }
        }
      }
    }
    function doctypeInInitialMode(p3, token) {
      p3._setDocumentType(token);
      const mode = token.forceQuirks ? html_js_1.DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token);
      if (!doctype.isConforming(token)) {
        p3._err(token, error_codes_js_1.ERR.nonConformingDoctype);
      }
      p3.treeAdapter.setDocumentMode(p3.document, mode);
      p3.insertionMode = InsertionMode.BEFORE_HTML;
    }
    function tokenInInitialMode(p3, token) {
      p3._err(token, error_codes_js_1.ERR.missingDoctype, true);
      p3.treeAdapter.setDocumentMode(p3.document, html_js_1.DOCUMENT_MODE.QUIRKS);
      p3.insertionMode = InsertionMode.BEFORE_HTML;
      p3._processToken(token);
    }
    function startTagBeforeHtml(p3, token) {
      if (token.tagID === html_js_1.TAG_ID.HTML) {
        p3._insertElement(token, html_js_1.NS.HTML);
        p3.insertionMode = InsertionMode.BEFORE_HEAD;
      } else {
        tokenBeforeHtml(p3, token);
      }
    }
    function endTagBeforeHtml(p3, token) {
      const tn = token.tagID;
      if (tn === html_js_1.TAG_ID.HTML || tn === html_js_1.TAG_ID.HEAD || tn === html_js_1.TAG_ID.BODY || tn === html_js_1.TAG_ID.BR) {
        tokenBeforeHtml(p3, token);
      }
    }
    function tokenBeforeHtml(p3, token) {
      p3._insertFakeRootElement();
      p3.insertionMode = InsertionMode.BEFORE_HEAD;
      p3._processToken(token);
    }
    function startTagBeforeHead(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.HEAD: {
          p3._insertElement(token, html_js_1.NS.HTML);
          p3.headElement = p3.openElements.current;
          p3.insertionMode = InsertionMode.IN_HEAD;
          break;
        }
        default: {
          tokenBeforeHead(p3, token);
        }
      }
    }
    function endTagBeforeHead(p3, token) {
      const tn = token.tagID;
      if (tn === html_js_1.TAG_ID.HEAD || tn === html_js_1.TAG_ID.BODY || tn === html_js_1.TAG_ID.HTML || tn === html_js_1.TAG_ID.BR) {
        tokenBeforeHead(p3, token);
      } else {
        p3._err(token, error_codes_js_1.ERR.endTagWithoutMatchingOpenElement);
      }
    }
    function tokenBeforeHead(p3, token) {
      p3._insertFakeElement(html_js_1.TAG_NAMES.HEAD, html_js_1.TAG_ID.HEAD);
      p3.headElement = p3.openElements.current;
      p3.insertionMode = InsertionMode.IN_HEAD;
      p3._processToken(token);
    }
    function startTagInHead(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.BASE:
        case html_js_1.TAG_ID.BASEFONT:
        case html_js_1.TAG_ID.BGSOUND:
        case html_js_1.TAG_ID.LINK:
        case html_js_1.TAG_ID.META: {
          p3._appendElement(token, html_js_1.NS.HTML);
          token.ackSelfClosing = true;
          break;
        }
        case html_js_1.TAG_ID.TITLE: {
          p3._switchToTextParsing(token, index_js_1.TokenizerMode.RCDATA);
          break;
        }
        case html_js_1.TAG_ID.NOSCRIPT: {
          if (p3.options.scriptingEnabled) {
            p3._switchToTextParsing(token, index_js_1.TokenizerMode.RAWTEXT);
          } else {
            p3._insertElement(token, html_js_1.NS.HTML);
            p3.insertionMode = InsertionMode.IN_HEAD_NO_SCRIPT;
          }
          break;
        }
        case html_js_1.TAG_ID.NOFRAMES:
        case html_js_1.TAG_ID.STYLE: {
          p3._switchToTextParsing(token, index_js_1.TokenizerMode.RAWTEXT);
          break;
        }
        case html_js_1.TAG_ID.SCRIPT: {
          p3._switchToTextParsing(token, index_js_1.TokenizerMode.SCRIPT_DATA);
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          p3._insertTemplate(token);
          p3.activeFormattingElements.insertMarker();
          p3.framesetOk = false;
          p3.insertionMode = InsertionMode.IN_TEMPLATE;
          p3.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);
          break;
        }
        case html_js_1.TAG_ID.HEAD: {
          p3._err(token, error_codes_js_1.ERR.misplacedStartTagForHeadElement);
          break;
        }
        default: {
          tokenInHead(p3, token);
        }
      }
    }
    function endTagInHead(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.HEAD: {
          p3.openElements.pop();
          p3.insertionMode = InsertionMode.AFTER_HEAD;
          break;
        }
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.BR:
        case html_js_1.TAG_ID.HTML: {
          tokenInHead(p3, token);
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          templateEndTagInHead(p3, token);
          break;
        }
        default: {
          p3._err(token, error_codes_js_1.ERR.endTagWithoutMatchingOpenElement);
        }
      }
    }
    function templateEndTagInHead(p3, token) {
      if (p3.openElements.tmplCount > 0) {
        p3.openElements.generateImpliedEndTagsThoroughly();
        if (p3.openElements.currentTagId !== html_js_1.TAG_ID.TEMPLATE) {
          p3._err(token, error_codes_js_1.ERR.closingOfElementWithOpenChildElements);
        }
        p3.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.TEMPLATE);
        p3.activeFormattingElements.clearToLastMarker();
        p3.tmplInsertionModeStack.shift();
        p3._resetInsertionMode();
      } else {
        p3._err(token, error_codes_js_1.ERR.endTagWithoutMatchingOpenElement);
      }
    }
    function tokenInHead(p3, token) {
      p3.openElements.pop();
      p3.insertionMode = InsertionMode.AFTER_HEAD;
      p3._processToken(token);
    }
    function startTagInHeadNoScript(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.BASEFONT:
        case html_js_1.TAG_ID.BGSOUND:
        case html_js_1.TAG_ID.HEAD:
        case html_js_1.TAG_ID.LINK:
        case html_js_1.TAG_ID.META:
        case html_js_1.TAG_ID.NOFRAMES:
        case html_js_1.TAG_ID.STYLE: {
          startTagInHead(p3, token);
          break;
        }
        case html_js_1.TAG_ID.NOSCRIPT: {
          p3._err(token, error_codes_js_1.ERR.nestedNoscriptInHead);
          break;
        }
        default: {
          tokenInHeadNoScript(p3, token);
        }
      }
    }
    function endTagInHeadNoScript(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.NOSCRIPT: {
          p3.openElements.pop();
          p3.insertionMode = InsertionMode.IN_HEAD;
          break;
        }
        case html_js_1.TAG_ID.BR: {
          tokenInHeadNoScript(p3, token);
          break;
        }
        default: {
          p3._err(token, error_codes_js_1.ERR.endTagWithoutMatchingOpenElement);
        }
      }
    }
    function tokenInHeadNoScript(p3, token) {
      const errCode = token.type === token_js_1.TokenType.EOF ? error_codes_js_1.ERR.openElementsLeftAfterEof : error_codes_js_1.ERR.disallowedContentInNoscriptInHead;
      p3._err(token, errCode);
      p3.openElements.pop();
      p3.insertionMode = InsertionMode.IN_HEAD;
      p3._processToken(token);
    }
    function startTagAfterHead(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.BODY: {
          p3._insertElement(token, html_js_1.NS.HTML);
          p3.framesetOk = false;
          p3.insertionMode = InsertionMode.IN_BODY;
          break;
        }
        case html_js_1.TAG_ID.FRAMESET: {
          p3._insertElement(token, html_js_1.NS.HTML);
          p3.insertionMode = InsertionMode.IN_FRAMESET;
          break;
        }
        case html_js_1.TAG_ID.BASE:
        case html_js_1.TAG_ID.BASEFONT:
        case html_js_1.TAG_ID.BGSOUND:
        case html_js_1.TAG_ID.LINK:
        case html_js_1.TAG_ID.META:
        case html_js_1.TAG_ID.NOFRAMES:
        case html_js_1.TAG_ID.SCRIPT:
        case html_js_1.TAG_ID.STYLE:
        case html_js_1.TAG_ID.TEMPLATE:
        case html_js_1.TAG_ID.TITLE: {
          p3._err(token, error_codes_js_1.ERR.abandonedHeadElementChild);
          p3.openElements.push(p3.headElement, html_js_1.TAG_ID.HEAD);
          startTagInHead(p3, token);
          p3.openElements.remove(p3.headElement);
          break;
        }
        case html_js_1.TAG_ID.HEAD: {
          p3._err(token, error_codes_js_1.ERR.misplacedStartTagForHeadElement);
          break;
        }
        default: {
          tokenAfterHead(p3, token);
        }
      }
    }
    function endTagAfterHead(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.HTML:
        case html_js_1.TAG_ID.BR: {
          tokenAfterHead(p3, token);
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          templateEndTagInHead(p3, token);
          break;
        }
        default: {
          p3._err(token, error_codes_js_1.ERR.endTagWithoutMatchingOpenElement);
        }
      }
    }
    function tokenAfterHead(p3, token) {
      p3._insertFakeElement(html_js_1.TAG_NAMES.BODY, html_js_1.TAG_ID.BODY);
      p3.insertionMode = InsertionMode.IN_BODY;
      modeInBody(p3, token);
    }
    function modeInBody(p3, token) {
      switch (token.type) {
        case token_js_1.TokenType.CHARACTER: {
          characterInBody(p3, token);
          break;
        }
        case token_js_1.TokenType.WHITESPACE_CHARACTER: {
          whitespaceCharacterInBody(p3, token);
          break;
        }
        case token_js_1.TokenType.COMMENT: {
          appendComment(p3, token);
          break;
        }
        case token_js_1.TokenType.START_TAG: {
          startTagInBody(p3, token);
          break;
        }
        case token_js_1.TokenType.END_TAG: {
          endTagInBody(p3, token);
          break;
        }
        case token_js_1.TokenType.EOF: {
          eofInBody(p3, token);
          break;
        }
        default:
      }
    }
    function whitespaceCharacterInBody(p3, token) {
      p3._reconstructActiveFormattingElements();
      p3._insertCharacters(token);
    }
    function characterInBody(p3, token) {
      p3._reconstructActiveFormattingElements();
      p3._insertCharacters(token);
      p3.framesetOk = false;
    }
    function htmlStartTagInBody(p3, token) {
      if (p3.openElements.tmplCount === 0) {
        p3.treeAdapter.adoptAttributes(p3.openElements.items[0], token.attrs);
      }
    }
    function bodyStartTagInBody(p3, token) {
      const bodyElement = p3.openElements.tryPeekProperlyNestedBodyElement();
      if (bodyElement && p3.openElements.tmplCount === 0) {
        p3.framesetOk = false;
        p3.treeAdapter.adoptAttributes(bodyElement, token.attrs);
      }
    }
    function framesetStartTagInBody(p3, token) {
      const bodyElement = p3.openElements.tryPeekProperlyNestedBodyElement();
      if (p3.framesetOk && bodyElement) {
        p3.treeAdapter.detachNode(bodyElement);
        p3.openElements.popAllUpToHtmlElement();
        p3._insertElement(token, html_js_1.NS.HTML);
        p3.insertionMode = InsertionMode.IN_FRAMESET;
      }
    }
    function addressStartTagInBody(p3, token) {
      if (p3.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p3._closePElement();
      }
      p3._insertElement(token, html_js_1.NS.HTML);
    }
    function numberedHeaderStartTagInBody(p3, token) {
      if (p3.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p3._closePElement();
      }
      if (p3.openElements.currentTagId !== void 0 && html_js_1.NUMBERED_HEADERS.has(p3.openElements.currentTagId)) {
        p3.openElements.pop();
      }
      p3._insertElement(token, html_js_1.NS.HTML);
    }
    function preStartTagInBody(p3, token) {
      if (p3.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p3._closePElement();
      }
      p3._insertElement(token, html_js_1.NS.HTML);
      p3.skipNextNewLine = true;
      p3.framesetOk = false;
    }
    function formStartTagInBody(p3, token) {
      const inTemplate = p3.openElements.tmplCount > 0;
      if (!p3.formElement || inTemplate) {
        if (p3.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
          p3._closePElement();
        }
        p3._insertElement(token, html_js_1.NS.HTML);
        if (!inTemplate) {
          p3.formElement = p3.openElements.current;
        }
      }
    }
    function listItemStartTagInBody(p3, token) {
      p3.framesetOk = false;
      const tn = token.tagID;
      for (let i5 = p3.openElements.stackTop; i5 >= 0; i5--) {
        const elementId = p3.openElements.tagIDs[i5];
        if (tn === html_js_1.TAG_ID.LI && elementId === html_js_1.TAG_ID.LI || (tn === html_js_1.TAG_ID.DD || tn === html_js_1.TAG_ID.DT) && (elementId === html_js_1.TAG_ID.DD || elementId === html_js_1.TAG_ID.DT)) {
          p3.openElements.generateImpliedEndTagsWithExclusion(elementId);
          p3.openElements.popUntilTagNamePopped(elementId);
          break;
        }
        if (elementId !== html_js_1.TAG_ID.ADDRESS && elementId !== html_js_1.TAG_ID.DIV && elementId !== html_js_1.TAG_ID.P && p3._isSpecialElement(p3.openElements.items[i5], elementId)) {
          break;
        }
      }
      if (p3.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p3._closePElement();
      }
      p3._insertElement(token, html_js_1.NS.HTML);
    }
    function plaintextStartTagInBody(p3, token) {
      if (p3.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p3._closePElement();
      }
      p3._insertElement(token, html_js_1.NS.HTML);
      p3.tokenizer.state = index_js_1.TokenizerMode.PLAINTEXT;
    }
    function buttonStartTagInBody(p3, token) {
      if (p3.openElements.hasInScope(html_js_1.TAG_ID.BUTTON)) {
        p3.openElements.generateImpliedEndTags();
        p3.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.BUTTON);
      }
      p3._reconstructActiveFormattingElements();
      p3._insertElement(token, html_js_1.NS.HTML);
      p3.framesetOk = false;
    }
    function aStartTagInBody(p3, token) {
      const activeElementEntry = p3.activeFormattingElements.getElementEntryInScopeWithTagName(html_js_1.TAG_NAMES.A);
      if (activeElementEntry) {
        callAdoptionAgency(p3, token);
        p3.openElements.remove(activeElementEntry.element);
        p3.activeFormattingElements.removeEntry(activeElementEntry);
      }
      p3._reconstructActiveFormattingElements();
      p3._insertElement(token, html_js_1.NS.HTML);
      p3.activeFormattingElements.pushElement(p3.openElements.current, token);
    }
    function bStartTagInBody(p3, token) {
      p3._reconstructActiveFormattingElements();
      p3._insertElement(token, html_js_1.NS.HTML);
      p3.activeFormattingElements.pushElement(p3.openElements.current, token);
    }
    function nobrStartTagInBody(p3, token) {
      p3._reconstructActiveFormattingElements();
      if (p3.openElements.hasInScope(html_js_1.TAG_ID.NOBR)) {
        callAdoptionAgency(p3, token);
        p3._reconstructActiveFormattingElements();
      }
      p3._insertElement(token, html_js_1.NS.HTML);
      p3.activeFormattingElements.pushElement(p3.openElements.current, token);
    }
    function appletStartTagInBody(p3, token) {
      p3._reconstructActiveFormattingElements();
      p3._insertElement(token, html_js_1.NS.HTML);
      p3.activeFormattingElements.insertMarker();
      p3.framesetOk = false;
    }
    function tableStartTagInBody(p3, token) {
      if (p3.treeAdapter.getDocumentMode(p3.document) !== html_js_1.DOCUMENT_MODE.QUIRKS && p3.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p3._closePElement();
      }
      p3._insertElement(token, html_js_1.NS.HTML);
      p3.framesetOk = false;
      p3.insertionMode = InsertionMode.IN_TABLE;
    }
    function areaStartTagInBody(p3, token) {
      p3._reconstructActiveFormattingElements();
      p3._appendElement(token, html_js_1.NS.HTML);
      p3.framesetOk = false;
      token.ackSelfClosing = true;
    }
    function isHiddenInput(token) {
      const inputType = (0, token_js_1.getTokenAttr)(token, html_js_1.ATTRS.TYPE);
      return inputType != null && inputType.toLowerCase() === HIDDEN_INPUT_TYPE;
    }
    function inputStartTagInBody(p3, token) {
      p3._reconstructActiveFormattingElements();
      p3._appendElement(token, html_js_1.NS.HTML);
      if (!isHiddenInput(token)) {
        p3.framesetOk = false;
      }
      token.ackSelfClosing = true;
    }
    function paramStartTagInBody(p3, token) {
      p3._appendElement(token, html_js_1.NS.HTML);
      token.ackSelfClosing = true;
    }
    function hrStartTagInBody(p3, token) {
      if (p3.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p3._closePElement();
      }
      p3._appendElement(token, html_js_1.NS.HTML);
      p3.framesetOk = false;
      token.ackSelfClosing = true;
    }
    function imageStartTagInBody(p3, token) {
      token.tagName = html_js_1.TAG_NAMES.IMG;
      token.tagID = html_js_1.TAG_ID.IMG;
      areaStartTagInBody(p3, token);
    }
    function textareaStartTagInBody(p3, token) {
      p3._insertElement(token, html_js_1.NS.HTML);
      p3.skipNextNewLine = true;
      p3.tokenizer.state = index_js_1.TokenizerMode.RCDATA;
      p3.originalInsertionMode = p3.insertionMode;
      p3.framesetOk = false;
      p3.insertionMode = InsertionMode.TEXT;
    }
    function xmpStartTagInBody(p3, token) {
      if (p3.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p3._closePElement();
      }
      p3._reconstructActiveFormattingElements();
      p3.framesetOk = false;
      p3._switchToTextParsing(token, index_js_1.TokenizerMode.RAWTEXT);
    }
    function iframeStartTagInBody(p3, token) {
      p3.framesetOk = false;
      p3._switchToTextParsing(token, index_js_1.TokenizerMode.RAWTEXT);
    }
    function rawTextStartTagInBody(p3, token) {
      p3._switchToTextParsing(token, index_js_1.TokenizerMode.RAWTEXT);
    }
    function selectStartTagInBody(p3, token) {
      p3._reconstructActiveFormattingElements();
      p3._insertElement(token, html_js_1.NS.HTML);
      p3.framesetOk = false;
      p3.insertionMode = p3.insertionMode === InsertionMode.IN_TABLE || p3.insertionMode === InsertionMode.IN_CAPTION || p3.insertionMode === InsertionMode.IN_TABLE_BODY || p3.insertionMode === InsertionMode.IN_ROW || p3.insertionMode === InsertionMode.IN_CELL ? InsertionMode.IN_SELECT_IN_TABLE : InsertionMode.IN_SELECT;
    }
    function optgroupStartTagInBody(p3, token) {
      if (p3.openElements.currentTagId === html_js_1.TAG_ID.OPTION) {
        p3.openElements.pop();
      }
      p3._reconstructActiveFormattingElements();
      p3._insertElement(token, html_js_1.NS.HTML);
    }
    function rbStartTagInBody(p3, token) {
      if (p3.openElements.hasInScope(html_js_1.TAG_ID.RUBY)) {
        p3.openElements.generateImpliedEndTags();
      }
      p3._insertElement(token, html_js_1.NS.HTML);
    }
    function rtStartTagInBody(p3, token) {
      if (p3.openElements.hasInScope(html_js_1.TAG_ID.RUBY)) {
        p3.openElements.generateImpliedEndTagsWithExclusion(html_js_1.TAG_ID.RTC);
      }
      p3._insertElement(token, html_js_1.NS.HTML);
    }
    function mathStartTagInBody(p3, token) {
      p3._reconstructActiveFormattingElements();
      foreignContent.adjustTokenMathMLAttrs(token);
      foreignContent.adjustTokenXMLAttrs(token);
      if (token.selfClosing) {
        p3._appendElement(token, html_js_1.NS.MATHML);
      } else {
        p3._insertElement(token, html_js_1.NS.MATHML);
      }
      token.ackSelfClosing = true;
    }
    function svgStartTagInBody(p3, token) {
      p3._reconstructActiveFormattingElements();
      foreignContent.adjustTokenSVGAttrs(token);
      foreignContent.adjustTokenXMLAttrs(token);
      if (token.selfClosing) {
        p3._appendElement(token, html_js_1.NS.SVG);
      } else {
        p3._insertElement(token, html_js_1.NS.SVG);
      }
      token.ackSelfClosing = true;
    }
    function genericStartTagInBody(p3, token) {
      p3._reconstructActiveFormattingElements();
      p3._insertElement(token, html_js_1.NS.HTML);
    }
    function startTagInBody(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.I:
        case html_js_1.TAG_ID.S:
        case html_js_1.TAG_ID.B:
        case html_js_1.TAG_ID.U:
        case html_js_1.TAG_ID.EM:
        case html_js_1.TAG_ID.TT:
        case html_js_1.TAG_ID.BIG:
        case html_js_1.TAG_ID.CODE:
        case html_js_1.TAG_ID.FONT:
        case html_js_1.TAG_ID.SMALL:
        case html_js_1.TAG_ID.STRIKE:
        case html_js_1.TAG_ID.STRONG: {
          bStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.A: {
          aStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.H1:
        case html_js_1.TAG_ID.H2:
        case html_js_1.TAG_ID.H3:
        case html_js_1.TAG_ID.H4:
        case html_js_1.TAG_ID.H5:
        case html_js_1.TAG_ID.H6: {
          numberedHeaderStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.P:
        case html_js_1.TAG_ID.DL:
        case html_js_1.TAG_ID.OL:
        case html_js_1.TAG_ID.UL:
        case html_js_1.TAG_ID.DIV:
        case html_js_1.TAG_ID.DIR:
        case html_js_1.TAG_ID.NAV:
        case html_js_1.TAG_ID.MAIN:
        case html_js_1.TAG_ID.MENU:
        case html_js_1.TAG_ID.ASIDE:
        case html_js_1.TAG_ID.CENTER:
        case html_js_1.TAG_ID.FIGURE:
        case html_js_1.TAG_ID.FOOTER:
        case html_js_1.TAG_ID.HEADER:
        case html_js_1.TAG_ID.HGROUP:
        case html_js_1.TAG_ID.DIALOG:
        case html_js_1.TAG_ID.DETAILS:
        case html_js_1.TAG_ID.ADDRESS:
        case html_js_1.TAG_ID.ARTICLE:
        case html_js_1.TAG_ID.SEARCH:
        case html_js_1.TAG_ID.SECTION:
        case html_js_1.TAG_ID.SUMMARY:
        case html_js_1.TAG_ID.FIELDSET:
        case html_js_1.TAG_ID.BLOCKQUOTE:
        case html_js_1.TAG_ID.FIGCAPTION: {
          addressStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.LI:
        case html_js_1.TAG_ID.DD:
        case html_js_1.TAG_ID.DT: {
          listItemStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.BR:
        case html_js_1.TAG_ID.IMG:
        case html_js_1.TAG_ID.WBR:
        case html_js_1.TAG_ID.AREA:
        case html_js_1.TAG_ID.EMBED:
        case html_js_1.TAG_ID.KEYGEN: {
          areaStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.HR: {
          hrStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.RB:
        case html_js_1.TAG_ID.RTC: {
          rbStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.RT:
        case html_js_1.TAG_ID.RP: {
          rtStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.PRE:
        case html_js_1.TAG_ID.LISTING: {
          preStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.XMP: {
          xmpStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.SVG: {
          svgStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.HTML: {
          htmlStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.BASE:
        case html_js_1.TAG_ID.LINK:
        case html_js_1.TAG_ID.META:
        case html_js_1.TAG_ID.STYLE:
        case html_js_1.TAG_ID.TITLE:
        case html_js_1.TAG_ID.SCRIPT:
        case html_js_1.TAG_ID.BGSOUND:
        case html_js_1.TAG_ID.BASEFONT:
        case html_js_1.TAG_ID.TEMPLATE: {
          startTagInHead(p3, token);
          break;
        }
        case html_js_1.TAG_ID.BODY: {
          bodyStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.FORM: {
          formStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.NOBR: {
          nobrStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.MATH: {
          mathStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.TABLE: {
          tableStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.INPUT: {
          inputStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.PARAM:
        case html_js_1.TAG_ID.TRACK:
        case html_js_1.TAG_ID.SOURCE: {
          paramStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.IMAGE: {
          imageStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.BUTTON: {
          buttonStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.APPLET:
        case html_js_1.TAG_ID.OBJECT:
        case html_js_1.TAG_ID.MARQUEE: {
          appletStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.IFRAME: {
          iframeStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.SELECT: {
          selectStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.OPTION:
        case html_js_1.TAG_ID.OPTGROUP: {
          optgroupStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.NOEMBED:
        case html_js_1.TAG_ID.NOFRAMES: {
          rawTextStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.FRAMESET: {
          framesetStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.TEXTAREA: {
          textareaStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.NOSCRIPT: {
          if (p3.options.scriptingEnabled) {
            rawTextStartTagInBody(p3, token);
          } else {
            genericStartTagInBody(p3, token);
          }
          break;
        }
        case html_js_1.TAG_ID.PLAINTEXT: {
          plaintextStartTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TR:
        case html_js_1.TAG_ID.HEAD:
        case html_js_1.TAG_ID.FRAME:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD:
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COLGROUP: {
          break;
        }
        default: {
          genericStartTagInBody(p3, token);
        }
      }
    }
    function bodyEndTagInBody(p3, token) {
      if (p3.openElements.hasInScope(html_js_1.TAG_ID.BODY)) {
        p3.insertionMode = InsertionMode.AFTER_BODY;
        if (p3.options.sourceCodeLocationInfo) {
          const bodyElement = p3.openElements.tryPeekProperlyNestedBodyElement();
          if (bodyElement) {
            p3._setEndLocation(bodyElement, token);
          }
        }
      }
    }
    function htmlEndTagInBody(p3, token) {
      if (p3.openElements.hasInScope(html_js_1.TAG_ID.BODY)) {
        p3.insertionMode = InsertionMode.AFTER_BODY;
        endTagAfterBody(p3, token);
      }
    }
    function addressEndTagInBody(p3, token) {
      const tn = token.tagID;
      if (p3.openElements.hasInScope(tn)) {
        p3.openElements.generateImpliedEndTags();
        p3.openElements.popUntilTagNamePopped(tn);
      }
    }
    function formEndTagInBody(p3) {
      const inTemplate = p3.openElements.tmplCount > 0;
      const { formElement } = p3;
      if (!inTemplate) {
        p3.formElement = null;
      }
      if ((formElement || inTemplate) && p3.openElements.hasInScope(html_js_1.TAG_ID.FORM)) {
        p3.openElements.generateImpliedEndTags();
        if (inTemplate) {
          p3.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.FORM);
        } else if (formElement) {
          p3.openElements.remove(formElement);
        }
      }
    }
    function pEndTagInBody(p3) {
      if (!p3.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p3._insertFakeElement(html_js_1.TAG_NAMES.P, html_js_1.TAG_ID.P);
      }
      p3._closePElement();
    }
    function liEndTagInBody(p3) {
      if (p3.openElements.hasInListItemScope(html_js_1.TAG_ID.LI)) {
        p3.openElements.generateImpliedEndTagsWithExclusion(html_js_1.TAG_ID.LI);
        p3.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.LI);
      }
    }
    function ddEndTagInBody(p3, token) {
      const tn = token.tagID;
      if (p3.openElements.hasInScope(tn)) {
        p3.openElements.generateImpliedEndTagsWithExclusion(tn);
        p3.openElements.popUntilTagNamePopped(tn);
      }
    }
    function numberedHeaderEndTagInBody(p3) {
      if (p3.openElements.hasNumberedHeaderInScope()) {
        p3.openElements.generateImpliedEndTags();
        p3.openElements.popUntilNumberedHeaderPopped();
      }
    }
    function appletEndTagInBody(p3, token) {
      const tn = token.tagID;
      if (p3.openElements.hasInScope(tn)) {
        p3.openElements.generateImpliedEndTags();
        p3.openElements.popUntilTagNamePopped(tn);
        p3.activeFormattingElements.clearToLastMarker();
      }
    }
    function brEndTagInBody(p3) {
      p3._reconstructActiveFormattingElements();
      p3._insertFakeElement(html_js_1.TAG_NAMES.BR, html_js_1.TAG_ID.BR);
      p3.openElements.pop();
      p3.framesetOk = false;
    }
    function genericEndTagInBody(p3, token) {
      const tn = token.tagName;
      const tid = token.tagID;
      for (let i5 = p3.openElements.stackTop; i5 > 0; i5--) {
        const element = p3.openElements.items[i5];
        const elementId = p3.openElements.tagIDs[i5];
        if (tid === elementId && (tid !== html_js_1.TAG_ID.UNKNOWN || p3.treeAdapter.getTagName(element) === tn)) {
          p3.openElements.generateImpliedEndTagsWithExclusion(tid);
          if (p3.openElements.stackTop >= i5)
            p3.openElements.shortenToLength(i5);
          break;
        }
        if (p3._isSpecialElement(element, elementId)) {
          break;
        }
      }
    }
    function endTagInBody(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.A:
        case html_js_1.TAG_ID.B:
        case html_js_1.TAG_ID.I:
        case html_js_1.TAG_ID.S:
        case html_js_1.TAG_ID.U:
        case html_js_1.TAG_ID.EM:
        case html_js_1.TAG_ID.TT:
        case html_js_1.TAG_ID.BIG:
        case html_js_1.TAG_ID.CODE:
        case html_js_1.TAG_ID.FONT:
        case html_js_1.TAG_ID.NOBR:
        case html_js_1.TAG_ID.SMALL:
        case html_js_1.TAG_ID.STRIKE:
        case html_js_1.TAG_ID.STRONG: {
          callAdoptionAgency(p3, token);
          break;
        }
        case html_js_1.TAG_ID.P: {
          pEndTagInBody(p3);
          break;
        }
        case html_js_1.TAG_ID.DL:
        case html_js_1.TAG_ID.UL:
        case html_js_1.TAG_ID.OL:
        case html_js_1.TAG_ID.DIR:
        case html_js_1.TAG_ID.DIV:
        case html_js_1.TAG_ID.NAV:
        case html_js_1.TAG_ID.PRE:
        case html_js_1.TAG_ID.MAIN:
        case html_js_1.TAG_ID.MENU:
        case html_js_1.TAG_ID.ASIDE:
        case html_js_1.TAG_ID.BUTTON:
        case html_js_1.TAG_ID.CENTER:
        case html_js_1.TAG_ID.FIGURE:
        case html_js_1.TAG_ID.FOOTER:
        case html_js_1.TAG_ID.HEADER:
        case html_js_1.TAG_ID.HGROUP:
        case html_js_1.TAG_ID.DIALOG:
        case html_js_1.TAG_ID.ADDRESS:
        case html_js_1.TAG_ID.ARTICLE:
        case html_js_1.TAG_ID.DETAILS:
        case html_js_1.TAG_ID.SEARCH:
        case html_js_1.TAG_ID.SECTION:
        case html_js_1.TAG_ID.SUMMARY:
        case html_js_1.TAG_ID.LISTING:
        case html_js_1.TAG_ID.FIELDSET:
        case html_js_1.TAG_ID.BLOCKQUOTE:
        case html_js_1.TAG_ID.FIGCAPTION: {
          addressEndTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.LI: {
          liEndTagInBody(p3);
          break;
        }
        case html_js_1.TAG_ID.DD:
        case html_js_1.TAG_ID.DT: {
          ddEndTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.H1:
        case html_js_1.TAG_ID.H2:
        case html_js_1.TAG_ID.H3:
        case html_js_1.TAG_ID.H4:
        case html_js_1.TAG_ID.H5:
        case html_js_1.TAG_ID.H6: {
          numberedHeaderEndTagInBody(p3);
          break;
        }
        case html_js_1.TAG_ID.BR: {
          brEndTagInBody(p3);
          break;
        }
        case html_js_1.TAG_ID.BODY: {
          bodyEndTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.HTML: {
          htmlEndTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.FORM: {
          formEndTagInBody(p3);
          break;
        }
        case html_js_1.TAG_ID.APPLET:
        case html_js_1.TAG_ID.OBJECT:
        case html_js_1.TAG_ID.MARQUEE: {
          appletEndTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          templateEndTagInHead(p3, token);
          break;
        }
        default: {
          genericEndTagInBody(p3, token);
        }
      }
    }
    function eofInBody(p3, token) {
      if (p3.tmplInsertionModeStack.length > 0) {
        eofInTemplate(p3, token);
      } else {
        stopParsing(p3, token);
      }
    }
    function endTagInText(p3, token) {
      var _a2;
      if (token.tagID === html_js_1.TAG_ID.SCRIPT) {
        (_a2 = p3.scriptHandler) === null || _a2 === void 0 ? void 0 : _a2.call(p3, p3.openElements.current);
      }
      p3.openElements.pop();
      p3.insertionMode = p3.originalInsertionMode;
    }
    function eofInText(p3, token) {
      p3._err(token, error_codes_js_1.ERR.eofInElementThatCanContainOnlyText);
      p3.openElements.pop();
      p3.insertionMode = p3.originalInsertionMode;
      p3.onEof(token);
    }
    function characterInTable(p3, token) {
      if (p3.openElements.currentTagId !== void 0 && TABLE_STRUCTURE_TAGS.has(p3.openElements.currentTagId)) {
        p3.pendingCharacterTokens.length = 0;
        p3.hasNonWhitespacePendingCharacterToken = false;
        p3.originalInsertionMode = p3.insertionMode;
        p3.insertionMode = InsertionMode.IN_TABLE_TEXT;
        switch (token.type) {
          case token_js_1.TokenType.CHARACTER: {
            characterInTableText(p3, token);
            break;
          }
          case token_js_1.TokenType.WHITESPACE_CHARACTER: {
            whitespaceCharacterInTableText(p3, token);
            break;
          }
        }
      } else {
        tokenInTable(p3, token);
      }
    }
    function captionStartTagInTable(p3, token) {
      p3.openElements.clearBackToTableContext();
      p3.activeFormattingElements.insertMarker();
      p3._insertElement(token, html_js_1.NS.HTML);
      p3.insertionMode = InsertionMode.IN_CAPTION;
    }
    function colgroupStartTagInTable(p3, token) {
      p3.openElements.clearBackToTableContext();
      p3._insertElement(token, html_js_1.NS.HTML);
      p3.insertionMode = InsertionMode.IN_COLUMN_GROUP;
    }
    function colStartTagInTable(p3, token) {
      p3.openElements.clearBackToTableContext();
      p3._insertFakeElement(html_js_1.TAG_NAMES.COLGROUP, html_js_1.TAG_ID.COLGROUP);
      p3.insertionMode = InsertionMode.IN_COLUMN_GROUP;
      startTagInColumnGroup(p3, token);
    }
    function tbodyStartTagInTable(p3, token) {
      p3.openElements.clearBackToTableContext();
      p3._insertElement(token, html_js_1.NS.HTML);
      p3.insertionMode = InsertionMode.IN_TABLE_BODY;
    }
    function tdStartTagInTable(p3, token) {
      p3.openElements.clearBackToTableContext();
      p3._insertFakeElement(html_js_1.TAG_NAMES.TBODY, html_js_1.TAG_ID.TBODY);
      p3.insertionMode = InsertionMode.IN_TABLE_BODY;
      startTagInTableBody(p3, token);
    }
    function tableStartTagInTable(p3, token) {
      if (p3.openElements.hasInTableScope(html_js_1.TAG_ID.TABLE)) {
        p3.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.TABLE);
        p3._resetInsertionMode();
        p3._processStartTag(token);
      }
    }
    function inputStartTagInTable(p3, token) {
      if (isHiddenInput(token)) {
        p3._appendElement(token, html_js_1.NS.HTML);
      } else {
        tokenInTable(p3, token);
      }
      token.ackSelfClosing = true;
    }
    function formStartTagInTable(p3, token) {
      if (!p3.formElement && p3.openElements.tmplCount === 0) {
        p3._insertElement(token, html_js_1.NS.HTML);
        p3.formElement = p3.openElements.current;
        p3.openElements.pop();
      }
    }
    function startTagInTable(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.TR: {
          tdStartTagInTable(p3, token);
          break;
        }
        case html_js_1.TAG_ID.STYLE:
        case html_js_1.TAG_ID.SCRIPT:
        case html_js_1.TAG_ID.TEMPLATE: {
          startTagInHead(p3, token);
          break;
        }
        case html_js_1.TAG_ID.COL: {
          colStartTagInTable(p3, token);
          break;
        }
        case html_js_1.TAG_ID.FORM: {
          formStartTagInTable(p3, token);
          break;
        }
        case html_js_1.TAG_ID.TABLE: {
          tableStartTagInTable(p3, token);
          break;
        }
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD: {
          tbodyStartTagInTable(p3, token);
          break;
        }
        case html_js_1.TAG_ID.INPUT: {
          inputStartTagInTable(p3, token);
          break;
        }
        case html_js_1.TAG_ID.CAPTION: {
          captionStartTagInTable(p3, token);
          break;
        }
        case html_js_1.TAG_ID.COLGROUP: {
          colgroupStartTagInTable(p3, token);
          break;
        }
        default: {
          tokenInTable(p3, token);
        }
      }
    }
    function endTagInTable(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.TABLE: {
          if (p3.openElements.hasInTableScope(html_js_1.TAG_ID.TABLE)) {
            p3.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.TABLE);
            p3._resetInsertionMode();
          }
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          templateEndTagInHead(p3, token);
          break;
        }
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.HTML:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.THEAD:
        case html_js_1.TAG_ID.TR: {
          break;
        }
        default: {
          tokenInTable(p3, token);
        }
      }
    }
    function tokenInTable(p3, token) {
      const savedFosterParentingState = p3.fosterParentingEnabled;
      p3.fosterParentingEnabled = true;
      modeInBody(p3, token);
      p3.fosterParentingEnabled = savedFosterParentingState;
    }
    function whitespaceCharacterInTableText(p3, token) {
      p3.pendingCharacterTokens.push(token);
    }
    function characterInTableText(p3, token) {
      p3.pendingCharacterTokens.push(token);
      p3.hasNonWhitespacePendingCharacterToken = true;
    }
    function tokenInTableText(p3, token) {
      let i5 = 0;
      if (p3.hasNonWhitespacePendingCharacterToken) {
        for (; i5 < p3.pendingCharacterTokens.length; i5++) {
          tokenInTable(p3, p3.pendingCharacterTokens[i5]);
        }
      } else {
        for (; i5 < p3.pendingCharacterTokens.length; i5++) {
          p3._insertCharacters(p3.pendingCharacterTokens[i5]);
        }
      }
      p3.insertionMode = p3.originalInsertionMode;
      p3._processToken(token);
    }
    var TABLE_VOID_ELEMENTS = /* @__PURE__ */ new Set([html_js_1.TAG_ID.CAPTION, html_js_1.TAG_ID.COL, html_js_1.TAG_ID.COLGROUP, html_js_1.TAG_ID.TBODY, html_js_1.TAG_ID.TD, html_js_1.TAG_ID.TFOOT, html_js_1.TAG_ID.TH, html_js_1.TAG_ID.THEAD, html_js_1.TAG_ID.TR]);
    function startTagInCaption(p3, token) {
      const tn = token.tagID;
      if (TABLE_VOID_ELEMENTS.has(tn)) {
        if (p3.openElements.hasInTableScope(html_js_1.TAG_ID.CAPTION)) {
          p3.openElements.generateImpliedEndTags();
          p3.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.CAPTION);
          p3.activeFormattingElements.clearToLastMarker();
          p3.insertionMode = InsertionMode.IN_TABLE;
          startTagInTable(p3, token);
        }
      } else {
        startTagInBody(p3, token);
      }
    }
    function endTagInCaption(p3, token) {
      const tn = token.tagID;
      switch (tn) {
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.TABLE: {
          if (p3.openElements.hasInTableScope(html_js_1.TAG_ID.CAPTION)) {
            p3.openElements.generateImpliedEndTags();
            p3.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.CAPTION);
            p3.activeFormattingElements.clearToLastMarker();
            p3.insertionMode = InsertionMode.IN_TABLE;
            if (tn === html_js_1.TAG_ID.TABLE) {
              endTagInTable(p3, token);
            }
          }
          break;
        }
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.HTML:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.THEAD:
        case html_js_1.TAG_ID.TR: {
          break;
        }
        default: {
          endTagInBody(p3, token);
        }
      }
    }
    function startTagInColumnGroup(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.COL: {
          p3._appendElement(token, html_js_1.NS.HTML);
          token.ackSelfClosing = true;
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          startTagInHead(p3, token);
          break;
        }
        default: {
          tokenInColumnGroup(p3, token);
        }
      }
    }
    function endTagInColumnGroup(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.COLGROUP: {
          if (p3.openElements.currentTagId === html_js_1.TAG_ID.COLGROUP) {
            p3.openElements.pop();
            p3.insertionMode = InsertionMode.IN_TABLE;
          }
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          templateEndTagInHead(p3, token);
          break;
        }
        case html_js_1.TAG_ID.COL: {
          break;
        }
        default: {
          tokenInColumnGroup(p3, token);
        }
      }
    }
    function tokenInColumnGroup(p3, token) {
      if (p3.openElements.currentTagId === html_js_1.TAG_ID.COLGROUP) {
        p3.openElements.pop();
        p3.insertionMode = InsertionMode.IN_TABLE;
        p3._processToken(token);
      }
    }
    function startTagInTableBody(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.TR: {
          p3.openElements.clearBackToTableBodyContext();
          p3._insertElement(token, html_js_1.NS.HTML);
          p3.insertionMode = InsertionMode.IN_ROW;
          break;
        }
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.TD: {
          p3.openElements.clearBackToTableBodyContext();
          p3._insertFakeElement(html_js_1.TAG_NAMES.TR, html_js_1.TAG_ID.TR);
          p3.insertionMode = InsertionMode.IN_ROW;
          startTagInRow(p3, token);
          break;
        }
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD: {
          if (p3.openElements.hasTableBodyContextInTableScope()) {
            p3.openElements.clearBackToTableBodyContext();
            p3.openElements.pop();
            p3.insertionMode = InsertionMode.IN_TABLE;
            startTagInTable(p3, token);
          }
          break;
        }
        default: {
          startTagInTable(p3, token);
        }
      }
    }
    function endTagInTableBody(p3, token) {
      const tn = token.tagID;
      switch (token.tagID) {
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD: {
          if (p3.openElements.hasInTableScope(tn)) {
            p3.openElements.clearBackToTableBodyContext();
            p3.openElements.pop();
            p3.insertionMode = InsertionMode.IN_TABLE;
          }
          break;
        }
        case html_js_1.TAG_ID.TABLE: {
          if (p3.openElements.hasTableBodyContextInTableScope()) {
            p3.openElements.clearBackToTableBodyContext();
            p3.openElements.pop();
            p3.insertionMode = InsertionMode.IN_TABLE;
            endTagInTable(p3, token);
          }
          break;
        }
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.HTML:
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.TR: {
          break;
        }
        default: {
          endTagInTable(p3, token);
        }
      }
    }
    function startTagInRow(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.TD: {
          p3.openElements.clearBackToTableRowContext();
          p3._insertElement(token, html_js_1.NS.HTML);
          p3.insertionMode = InsertionMode.IN_CELL;
          p3.activeFormattingElements.insertMarker();
          break;
        }
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD:
        case html_js_1.TAG_ID.TR: {
          if (p3.openElements.hasInTableScope(html_js_1.TAG_ID.TR)) {
            p3.openElements.clearBackToTableRowContext();
            p3.openElements.pop();
            p3.insertionMode = InsertionMode.IN_TABLE_BODY;
            startTagInTableBody(p3, token);
          }
          break;
        }
        default: {
          startTagInTable(p3, token);
        }
      }
    }
    function endTagInRow(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.TR: {
          if (p3.openElements.hasInTableScope(html_js_1.TAG_ID.TR)) {
            p3.openElements.clearBackToTableRowContext();
            p3.openElements.pop();
            p3.insertionMode = InsertionMode.IN_TABLE_BODY;
          }
          break;
        }
        case html_js_1.TAG_ID.TABLE: {
          if (p3.openElements.hasInTableScope(html_js_1.TAG_ID.TR)) {
            p3.openElements.clearBackToTableRowContext();
            p3.openElements.pop();
            p3.insertionMode = InsertionMode.IN_TABLE_BODY;
            endTagInTableBody(p3, token);
          }
          break;
        }
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD: {
          if (p3.openElements.hasInTableScope(token.tagID) || p3.openElements.hasInTableScope(html_js_1.TAG_ID.TR)) {
            p3.openElements.clearBackToTableRowContext();
            p3.openElements.pop();
            p3.insertionMode = InsertionMode.IN_TABLE_BODY;
            endTagInTableBody(p3, token);
          }
          break;
        }
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.HTML:
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TH: {
          break;
        }
        default: {
          endTagInTable(p3, token);
        }
      }
    }
    function startTagInCell(p3, token) {
      const tn = token.tagID;
      if (TABLE_VOID_ELEMENTS.has(tn)) {
        if (p3.openElements.hasInTableScope(html_js_1.TAG_ID.TD) || p3.openElements.hasInTableScope(html_js_1.TAG_ID.TH)) {
          p3._closeTableCell();
          startTagInRow(p3, token);
        }
      } else {
        startTagInBody(p3, token);
      }
    }
    function endTagInCell(p3, token) {
      const tn = token.tagID;
      switch (tn) {
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TH: {
          if (p3.openElements.hasInTableScope(tn)) {
            p3.openElements.generateImpliedEndTags();
            p3.openElements.popUntilTagNamePopped(tn);
            p3.activeFormattingElements.clearToLastMarker();
            p3.insertionMode = InsertionMode.IN_ROW;
          }
          break;
        }
        case html_js_1.TAG_ID.TABLE:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD:
        case html_js_1.TAG_ID.TR: {
          if (p3.openElements.hasInTableScope(tn)) {
            p3._closeTableCell();
            endTagInRow(p3, token);
          }
          break;
        }
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.HTML: {
          break;
        }
        default: {
          endTagInBody(p3, token);
        }
      }
    }
    function startTagInSelect(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.OPTION: {
          if (p3.openElements.currentTagId === html_js_1.TAG_ID.OPTION) {
            p3.openElements.pop();
          }
          p3._insertElement(token, html_js_1.NS.HTML);
          break;
        }
        case html_js_1.TAG_ID.OPTGROUP: {
          if (p3.openElements.currentTagId === html_js_1.TAG_ID.OPTION) {
            p3.openElements.pop();
          }
          if (p3.openElements.currentTagId === html_js_1.TAG_ID.OPTGROUP) {
            p3.openElements.pop();
          }
          p3._insertElement(token, html_js_1.NS.HTML);
          break;
        }
        case html_js_1.TAG_ID.HR: {
          if (p3.openElements.currentTagId === html_js_1.TAG_ID.OPTION) {
            p3.openElements.pop();
          }
          if (p3.openElements.currentTagId === html_js_1.TAG_ID.OPTGROUP) {
            p3.openElements.pop();
          }
          p3._appendElement(token, html_js_1.NS.HTML);
          token.ackSelfClosing = true;
          break;
        }
        case html_js_1.TAG_ID.INPUT:
        case html_js_1.TAG_ID.KEYGEN:
        case html_js_1.TAG_ID.TEXTAREA:
        case html_js_1.TAG_ID.SELECT: {
          if (p3.openElements.hasInSelectScope(html_js_1.TAG_ID.SELECT)) {
            p3.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.SELECT);
            p3._resetInsertionMode();
            if (token.tagID !== html_js_1.TAG_ID.SELECT) {
              p3._processStartTag(token);
            }
          }
          break;
        }
        case html_js_1.TAG_ID.SCRIPT:
        case html_js_1.TAG_ID.TEMPLATE: {
          startTagInHead(p3, token);
          break;
        }
        default:
      }
    }
    function endTagInSelect(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.OPTGROUP: {
          if (p3.openElements.stackTop > 0 && p3.openElements.currentTagId === html_js_1.TAG_ID.OPTION && p3.openElements.tagIDs[p3.openElements.stackTop - 1] === html_js_1.TAG_ID.OPTGROUP) {
            p3.openElements.pop();
          }
          if (p3.openElements.currentTagId === html_js_1.TAG_ID.OPTGROUP) {
            p3.openElements.pop();
          }
          break;
        }
        case html_js_1.TAG_ID.OPTION: {
          if (p3.openElements.currentTagId === html_js_1.TAG_ID.OPTION) {
            p3.openElements.pop();
          }
          break;
        }
        case html_js_1.TAG_ID.SELECT: {
          if (p3.openElements.hasInSelectScope(html_js_1.TAG_ID.SELECT)) {
            p3.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.SELECT);
            p3._resetInsertionMode();
          }
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          templateEndTagInHead(p3, token);
          break;
        }
        default:
      }
    }
    function startTagInSelectInTable(p3, token) {
      const tn = token.tagID;
      if (tn === html_js_1.TAG_ID.CAPTION || tn === html_js_1.TAG_ID.TABLE || tn === html_js_1.TAG_ID.TBODY || tn === html_js_1.TAG_ID.TFOOT || tn === html_js_1.TAG_ID.THEAD || tn === html_js_1.TAG_ID.TR || tn === html_js_1.TAG_ID.TD || tn === html_js_1.TAG_ID.TH) {
        p3.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.SELECT);
        p3._resetInsertionMode();
        p3._processStartTag(token);
      } else {
        startTagInSelect(p3, token);
      }
    }
    function endTagInSelectInTable(p3, token) {
      const tn = token.tagID;
      if (tn === html_js_1.TAG_ID.CAPTION || tn === html_js_1.TAG_ID.TABLE || tn === html_js_1.TAG_ID.TBODY || tn === html_js_1.TAG_ID.TFOOT || tn === html_js_1.TAG_ID.THEAD || tn === html_js_1.TAG_ID.TR || tn === html_js_1.TAG_ID.TD || tn === html_js_1.TAG_ID.TH) {
        if (p3.openElements.hasInTableScope(tn)) {
          p3.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.SELECT);
          p3._resetInsertionMode();
          p3.onEndTag(token);
        }
      } else {
        endTagInSelect(p3, token);
      }
    }
    function startTagInTemplate(p3, token) {
      switch (token.tagID) {
        // First, handle tags that can start without a mode change
        case html_js_1.TAG_ID.BASE:
        case html_js_1.TAG_ID.BASEFONT:
        case html_js_1.TAG_ID.BGSOUND:
        case html_js_1.TAG_ID.LINK:
        case html_js_1.TAG_ID.META:
        case html_js_1.TAG_ID.NOFRAMES:
        case html_js_1.TAG_ID.SCRIPT:
        case html_js_1.TAG_ID.STYLE:
        case html_js_1.TAG_ID.TEMPLATE:
        case html_js_1.TAG_ID.TITLE: {
          startTagInHead(p3, token);
          break;
        }
        // Re-process the token in the appropriate mode
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD: {
          p3.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE;
          p3.insertionMode = InsertionMode.IN_TABLE;
          startTagInTable(p3, token);
          break;
        }
        case html_js_1.TAG_ID.COL: {
          p3.tmplInsertionModeStack[0] = InsertionMode.IN_COLUMN_GROUP;
          p3.insertionMode = InsertionMode.IN_COLUMN_GROUP;
          startTagInColumnGroup(p3, token);
          break;
        }
        case html_js_1.TAG_ID.TR: {
          p3.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE_BODY;
          p3.insertionMode = InsertionMode.IN_TABLE_BODY;
          startTagInTableBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TH: {
          p3.tmplInsertionModeStack[0] = InsertionMode.IN_ROW;
          p3.insertionMode = InsertionMode.IN_ROW;
          startTagInRow(p3, token);
          break;
        }
        default: {
          p3.tmplInsertionModeStack[0] = InsertionMode.IN_BODY;
          p3.insertionMode = InsertionMode.IN_BODY;
          startTagInBody(p3, token);
        }
      }
    }
    function endTagInTemplate(p3, token) {
      if (token.tagID === html_js_1.TAG_ID.TEMPLATE) {
        templateEndTagInHead(p3, token);
      }
    }
    function eofInTemplate(p3, token) {
      if (p3.openElements.tmplCount > 0) {
        p3.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.TEMPLATE);
        p3.activeFormattingElements.clearToLastMarker();
        p3.tmplInsertionModeStack.shift();
        p3._resetInsertionMode();
        p3.onEof(token);
      } else {
        stopParsing(p3, token);
      }
    }
    function startTagAfterBody(p3, token) {
      if (token.tagID === html_js_1.TAG_ID.HTML) {
        startTagInBody(p3, token);
      } else {
        tokenAfterBody(p3, token);
      }
    }
    function endTagAfterBody(p3, token) {
      var _a2;
      if (token.tagID === html_js_1.TAG_ID.HTML) {
        if (!p3.fragmentContext) {
          p3.insertionMode = InsertionMode.AFTER_AFTER_BODY;
        }
        if (p3.options.sourceCodeLocationInfo && p3.openElements.tagIDs[0] === html_js_1.TAG_ID.HTML) {
          p3._setEndLocation(p3.openElements.items[0], token);
          const bodyElement = p3.openElements.items[1];
          if (bodyElement && !((_a2 = p3.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a2 === void 0 ? void 0 : _a2.endTag)) {
            p3._setEndLocation(bodyElement, token);
          }
        }
      } else {
        tokenAfterBody(p3, token);
      }
    }
    function tokenAfterBody(p3, token) {
      p3.insertionMode = InsertionMode.IN_BODY;
      modeInBody(p3, token);
    }
    function startTagInFrameset(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.FRAMESET: {
          p3._insertElement(token, html_js_1.NS.HTML);
          break;
        }
        case html_js_1.TAG_ID.FRAME: {
          p3._appendElement(token, html_js_1.NS.HTML);
          token.ackSelfClosing = true;
          break;
        }
        case html_js_1.TAG_ID.NOFRAMES: {
          startTagInHead(p3, token);
          break;
        }
        default:
      }
    }
    function endTagInFrameset(p3, token) {
      if (token.tagID === html_js_1.TAG_ID.FRAMESET && !p3.openElements.isRootHtmlElementCurrent()) {
        p3.openElements.pop();
        if (!p3.fragmentContext && p3.openElements.currentTagId !== html_js_1.TAG_ID.FRAMESET) {
          p3.insertionMode = InsertionMode.AFTER_FRAMESET;
        }
      }
    }
    function startTagAfterFrameset(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.NOFRAMES: {
          startTagInHead(p3, token);
          break;
        }
        default:
      }
    }
    function endTagAfterFrameset(p3, token) {
      if (token.tagID === html_js_1.TAG_ID.HTML) {
        p3.insertionMode = InsertionMode.AFTER_AFTER_FRAMESET;
      }
    }
    function startTagAfterAfterBody(p3, token) {
      if (token.tagID === html_js_1.TAG_ID.HTML) {
        startTagInBody(p3, token);
      } else {
        tokenAfterAfterBody(p3, token);
      }
    }
    function tokenAfterAfterBody(p3, token) {
      p3.insertionMode = InsertionMode.IN_BODY;
      modeInBody(p3, token);
    }
    function startTagAfterAfterFrameset(p3, token) {
      switch (token.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p3, token);
          break;
        }
        case html_js_1.TAG_ID.NOFRAMES: {
          startTagInHead(p3, token);
          break;
        }
        default:
      }
    }
    function nullCharacterInForeignContent(p3, token) {
      token.chars = unicode.REPLACEMENT_CHARACTER;
      p3._insertCharacters(token);
    }
    function characterInForeignContent(p3, token) {
      p3._insertCharacters(token);
      p3.framesetOk = false;
    }
    function popUntilHtmlOrIntegrationPoint(p3) {
      while (p3.treeAdapter.getNamespaceURI(p3.openElements.current) !== html_js_1.NS.HTML && p3.openElements.currentTagId !== void 0 && !p3._isIntegrationPoint(p3.openElements.currentTagId, p3.openElements.current)) {
        p3.openElements.pop();
      }
    }
    function startTagInForeignContent(p3, token) {
      if (foreignContent.causesExit(token)) {
        popUntilHtmlOrIntegrationPoint(p3);
        p3._startTagOutsideForeignContent(token);
      } else {
        const current = p3._getAdjustedCurrentElement();
        const currentNs = p3.treeAdapter.getNamespaceURI(current);
        if (currentNs === html_js_1.NS.MATHML) {
          foreignContent.adjustTokenMathMLAttrs(token);
        } else if (currentNs === html_js_1.NS.SVG) {
          foreignContent.adjustTokenSVGTagName(token);
          foreignContent.adjustTokenSVGAttrs(token);
        }
        foreignContent.adjustTokenXMLAttrs(token);
        if (token.selfClosing) {
          p3._appendElement(token, currentNs);
        } else {
          p3._insertElement(token, currentNs);
        }
        token.ackSelfClosing = true;
      }
    }
    function endTagInForeignContent(p3, token) {
      if (token.tagID === html_js_1.TAG_ID.P || token.tagID === html_js_1.TAG_ID.BR) {
        popUntilHtmlOrIntegrationPoint(p3);
        p3._endTagOutsideForeignContent(token);
        return;
      }
      for (let i5 = p3.openElements.stackTop; i5 > 0; i5--) {
        const element = p3.openElements.items[i5];
        if (p3.treeAdapter.getNamespaceURI(element) === html_js_1.NS.HTML) {
          p3._endTagOutsideForeignContent(token);
          break;
        }
        const tagName = p3.treeAdapter.getTagName(element);
        if (tagName.toLowerCase() === token.tagName) {
          token.tagName = tagName;
          p3.openElements.shortenToLength(i5);
          break;
        }
      }
    }
  }
});

// ../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/escape.js
var require_escape2 = __commonJS({
  "../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/escape.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.getCodePoint = exports.xmlReplacer = void 0;
    exports.encodeXML = encodeXML;
    exports.xmlReplacer = /["$&'<>\u0080-\uFFFF]/g;
    var xmlCodeMap = /* @__PURE__ */ new Map([
      [34, "&quot;"],
      [38, "&amp;"],
      [39, "&apos;"],
      [60, "&lt;"],
      [62, "&gt;"]
    ]);
    exports.getCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
    String.prototype.codePointAt == null ? (c6, index2) => (c6.charCodeAt(index2) & 64512) === 55296 ? (c6.charCodeAt(index2) - 55296) * 1024 + c6.charCodeAt(index2 + 1) - 56320 + 65536 : c6.charCodeAt(index2) : (
      // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
      (input, index2) => input.codePointAt(index2)
    );
    function encodeXML(input) {
      let returnValue = "";
      let lastIndex = 0;
      let match;
      while ((match = exports.xmlReplacer.exec(input)) !== null) {
        const { index: index2 } = match;
        const char = input.charCodeAt(index2);
        const next = xmlCodeMap.get(char);
        if (next === void 0) {
          returnValue += `${input.substring(lastIndex, index2)}&#x${(0, exports.getCodePoint)(input, index2).toString(16)};`;
          lastIndex = exports.xmlReplacer.lastIndex += Number((char & 64512) === 55296);
        } else {
          returnValue += input.substring(lastIndex, index2) + next;
          lastIndex = index2 + 1;
        }
      }
      return returnValue + input.substr(lastIndex);
    }
    exports.escape = encodeXML;
    function getEscaper(regex2, map) {
      return function escape2(data2) {
        let match;
        let lastIndex = 0;
        let result = "";
        while (match = regex2.exec(data2)) {
          if (lastIndex !== match.index) {
            result += data2.substring(lastIndex, match.index);
          }
          result += map.get(match[0].charCodeAt(0));
          lastIndex = match.index + 1;
        }
        return result + data2.substring(lastIndex);
      };
    }
    exports.escapeUTF8 = getEscaper(/["&'<>]/g, xmlCodeMap);
    exports.escapeAttribute = /* @__PURE__ */ getEscaper(/["&\u00A0]/g, /* @__PURE__ */ new Map([
      [34, "&quot;"],
      [38, "&amp;"],
      [160, "&nbsp;"]
    ]));
    exports.escapeText = getEscaper(/[&<>\u00A0]/g, /* @__PURE__ */ new Map([
      [38, "&amp;"],
      [60, "&lt;"],
      [62, "&gt;"],
      [160, "&nbsp;"]
    ]));
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/serializer/index.js
var require_serializer = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/serializer/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.serialize = serialize;
    exports.serializeOuter = serializeOuter;
    var html_js_1 = require_html();
    var escape_1 = require_escape2();
    var default_js_1 = require_default();
    var VOID_ELEMENTS = /* @__PURE__ */ new Set([
      html_js_1.TAG_NAMES.AREA,
      html_js_1.TAG_NAMES.BASE,
      html_js_1.TAG_NAMES.BASEFONT,
      html_js_1.TAG_NAMES.BGSOUND,
      html_js_1.TAG_NAMES.BR,
      html_js_1.TAG_NAMES.COL,
      html_js_1.TAG_NAMES.EMBED,
      html_js_1.TAG_NAMES.FRAME,
      html_js_1.TAG_NAMES.HR,
      html_js_1.TAG_NAMES.IMG,
      html_js_1.TAG_NAMES.INPUT,
      html_js_1.TAG_NAMES.KEYGEN,
      html_js_1.TAG_NAMES.LINK,
      html_js_1.TAG_NAMES.META,
      html_js_1.TAG_NAMES.PARAM,
      html_js_1.TAG_NAMES.SOURCE,
      html_js_1.TAG_NAMES.TRACK,
      html_js_1.TAG_NAMES.WBR
    ]);
    function isVoidElement(node, options) {
      return options.treeAdapter.isElementNode(node) && options.treeAdapter.getNamespaceURI(node) === html_js_1.NS.HTML && VOID_ELEMENTS.has(options.treeAdapter.getTagName(node));
    }
    var defaultOpts = { treeAdapter: default_js_1.defaultTreeAdapter, scriptingEnabled: true };
    function serialize(node, options) {
      const opts2 = Object.assign(Object.assign({}, defaultOpts), options);
      if (isVoidElement(node, opts2)) {
        return "";
      }
      return serializeChildNodes(node, opts2);
    }
    function serializeOuter(node, options) {
      const opts2 = Object.assign(Object.assign({}, defaultOpts), options);
      return serializeNode(node, opts2);
    }
    function serializeChildNodes(parentNode, options) {
      let html = "";
      const container = options.treeAdapter.isElementNode(parentNode) && options.treeAdapter.getTagName(parentNode) === html_js_1.TAG_NAMES.TEMPLATE && options.treeAdapter.getNamespaceURI(parentNode) === html_js_1.NS.HTML ? options.treeAdapter.getTemplateContent(parentNode) : parentNode;
      const childNodes = options.treeAdapter.getChildNodes(container);
      if (childNodes) {
        for (const currentNode of childNodes) {
          html += serializeNode(currentNode, options);
        }
      }
      return html;
    }
    function serializeNode(node, options) {
      if (options.treeAdapter.isElementNode(node)) {
        return serializeElement(node, options);
      }
      if (options.treeAdapter.isTextNode(node)) {
        return serializeTextNode(node, options);
      }
      if (options.treeAdapter.isCommentNode(node)) {
        return serializeCommentNode(node, options);
      }
      if (options.treeAdapter.isDocumentTypeNode(node)) {
        return serializeDocumentTypeNode(node, options);
      }
      return "";
    }
    function serializeElement(node, options) {
      const tn = options.treeAdapter.getTagName(node);
      return `<${tn}${serializeAttributes(node, options)}>${isVoidElement(node, options) ? "" : `${serializeChildNodes(node, options)}</${tn}>`}`;
    }
    function serializeAttributes(node, { treeAdapter }) {
      let html = "";
      for (const attr of treeAdapter.getAttrList(node)) {
        html += " ";
        if (attr.namespace) {
          switch (attr.namespace) {
            case html_js_1.NS.XML: {
              html += `xml:${attr.name}`;
              break;
            }
            case html_js_1.NS.XMLNS: {
              if (attr.name !== "xmlns") {
                html += "xmlns:";
              }
              html += attr.name;
              break;
            }
            case html_js_1.NS.XLINK: {
              html += `xlink:${attr.name}`;
              break;
            }
            default: {
              html += `${attr.prefix}:${attr.name}`;
            }
          }
        } else {
          html += attr.name;
        }
        html += `="${(0, escape_1.escapeAttribute)(attr.value)}"`;
      }
      return html;
    }
    function serializeTextNode(node, options) {
      const { treeAdapter } = options;
      const content = treeAdapter.getTextNodeContent(node);
      const parent = treeAdapter.getParentNode(node);
      const parentTn = parent && treeAdapter.isElementNode(parent) && treeAdapter.getTagName(parent);
      return parentTn && treeAdapter.getNamespaceURI(parent) === html_js_1.NS.HTML && (0, html_js_1.hasUnescapedText)(parentTn, options.scriptingEnabled) ? content : (0, escape_1.escapeText)(content);
    }
    function serializeCommentNode(node, { treeAdapter }) {
      return `<!--${treeAdapter.getCommentNodeContent(node)}-->`;
    }
    function serializeDocumentTypeNode(node, { treeAdapter }) {
      return `<!DOCTYPE ${treeAdapter.getDocumentTypeNodeName(node)}>`;
    }
  }
});

// ../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/index.js
var require_cjs7 = __commonJS({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.TokenizerMode = exports.Tokenizer = exports.Token = exports.html = exports.foreignContent = exports.ErrorCodes = exports.serializeOuter = exports.serialize = exports.Parser = exports.defaultTreeAdapter = void 0;
    exports.parse = parse3;
    exports.parseFragment = parseFragment;
    var index_js_1 = require_parser();
    var default_js_1 = require_default();
    Object.defineProperty(exports, "defaultTreeAdapter", { enumerable: true, get: function() {
      return default_js_1.defaultTreeAdapter;
    } });
    var index_js_2 = require_parser();
    Object.defineProperty(exports, "Parser", { enumerable: true, get: function() {
      return index_js_2.Parser;
    } });
    var index_js_3 = require_serializer();
    Object.defineProperty(exports, "serialize", { enumerable: true, get: function() {
      return index_js_3.serialize;
    } });
    Object.defineProperty(exports, "serializeOuter", { enumerable: true, get: function() {
      return index_js_3.serializeOuter;
    } });
    var error_codes_js_1 = require_error_codes();
    Object.defineProperty(exports, "ErrorCodes", { enumerable: true, get: function() {
      return error_codes_js_1.ERR;
    } });
    exports.foreignContent = require_foreign_content();
    exports.html = require_html();
    exports.Token = require_token();
    var index_js_4 = require_tokenizer();
    Object.defineProperty(exports, "Tokenizer", { enumerable: true, get: function() {
      return index_js_4.Tokenizer;
    } });
    Object.defineProperty(exports, "TokenizerMode", { enumerable: true, get: function() {
      return index_js_4.TokenizerMode;
    } });
    function parse3(html, options) {
      return index_js_1.Parser.parse(html, options);
    }
    function parseFragment(fragmentContext, html, options) {
      if (typeof fragmentContext === "string") {
        options = html;
        html = fragmentContext;
        fragmentContext = null;
      }
      const parser = index_js_1.Parser.getFragmentParser(fragmentContext, options);
      parser.tokenizer.write(html, true);
      return parser.getFragment();
    }
  }
});

// ../../node_modules/.pnpm/parse5-htmlparser2-tree-adapter@7.1.0/node_modules/parse5-htmlparser2-tree-adapter/dist/cjs/index.js
var require_cjs8 = __commonJS({
  "../../node_modules/.pnpm/parse5-htmlparser2-tree-adapter@7.1.0/node_modules/parse5-htmlparser2-tree-adapter/dist/cjs/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.adapter = void 0;
    exports.serializeDoctypeContent = serializeDoctypeContent;
    var parse5_1 = require_cjs7();
    var domhandler_1 = require_lib4();
    function enquoteDoctypeId(id) {
      const quote = id.includes('"') ? "'" : '"';
      return quote + id + quote;
    }
    function serializeDoctypeContent(name, publicId, systemId) {
      let str = "!DOCTYPE ";
      if (name) {
        str += name;
      }
      if (publicId) {
        str += ` PUBLIC ${enquoteDoctypeId(publicId)}`;
      } else if (systemId) {
        str += " SYSTEM";
      }
      if (systemId) {
        str += ` ${enquoteDoctypeId(systemId)}`;
      }
      return str;
    }
    exports.adapter = {
      // Re-exports from domhandler
      isCommentNode: domhandler_1.isComment,
      isElementNode: domhandler_1.isTag,
      isTextNode: domhandler_1.isText,
      //Node construction
      createDocument() {
        const node = new domhandler_1.Document([]);
        node["x-mode"] = parse5_1.html.DOCUMENT_MODE.NO_QUIRKS;
        return node;
      },
      createDocumentFragment() {
        return new domhandler_1.Document([]);
      },
      createElement(tagName, namespaceURI, attrs) {
        const attribs = /* @__PURE__ */ Object.create(null);
        const attribsNamespace = /* @__PURE__ */ Object.create(null);
        const attribsPrefix = /* @__PURE__ */ Object.create(null);
        for (let i5 = 0; i5 < attrs.length; i5++) {
          const attrName = attrs[i5].name;
          attribs[attrName] = attrs[i5].value;
          attribsNamespace[attrName] = attrs[i5].namespace;
          attribsPrefix[attrName] = attrs[i5].prefix;
        }
        const node = new domhandler_1.Element(tagName, attribs, []);
        node.namespace = namespaceURI;
        node["x-attribsNamespace"] = attribsNamespace;
        node["x-attribsPrefix"] = attribsPrefix;
        return node;
      },
      createCommentNode(data2) {
        return new domhandler_1.Comment(data2);
      },
      createTextNode(value2) {
        return new domhandler_1.Text(value2);
      },
      //Tree mutation
      appendChild(parentNode, newNode) {
        const prev = parentNode.children[parentNode.children.length - 1];
        if (prev) {
          prev.next = newNode;
          newNode.prev = prev;
        }
        parentNode.children.push(newNode);
        newNode.parent = parentNode;
      },
      insertBefore(parentNode, newNode, referenceNode) {
        const insertionIdx = parentNode.children.indexOf(referenceNode);
        const { prev } = referenceNode;
        if (prev) {
          prev.next = newNode;
          newNode.prev = prev;
        }
        referenceNode.prev = newNode;
        newNode.next = referenceNode;
        parentNode.children.splice(insertionIdx, 0, newNode);
        newNode.parent = parentNode;
      },
      setTemplateContent(templateElement, contentElement) {
        exports.adapter.appendChild(templateElement, contentElement);
      },
      getTemplateContent(templateElement) {
        return templateElement.children[0];
      },
      setDocumentType(document2, name, publicId, systemId) {
        const data2 = serializeDoctypeContent(name, publicId, systemId);
        let doctypeNode = document2.children.find((node) => (0, domhandler_1.isDirective)(node) && node.name === "!doctype");
        if (doctypeNode) {
          doctypeNode.data = data2 !== null && data2 !== void 0 ? data2 : null;
        } else {
          doctypeNode = new domhandler_1.ProcessingInstruction("!doctype", data2);
          exports.adapter.appendChild(document2, doctypeNode);
        }
        doctypeNode["x-name"] = name;
        doctypeNode["x-publicId"] = publicId;
        doctypeNode["x-systemId"] = systemId;
      },
      setDocumentMode(document2, mode) {
        document2["x-mode"] = mode;
      },
      getDocumentMode(document2) {
        return document2["x-mode"];
      },
      detachNode(node) {
        if (node.parent) {
          const idx = node.parent.children.indexOf(node);
          const { prev, next } = node;
          node.prev = null;
          node.next = null;
          if (prev) {
            prev.next = next;
          }
          if (next) {
            next.prev = prev;
          }
          node.parent.children.splice(idx, 1);
          node.parent = null;
        }
      },
      insertText(parentNode, text) {
        const lastChild = parentNode.children[parentNode.children.length - 1];
        if (lastChild && (0, domhandler_1.isText)(lastChild)) {
          lastChild.data += text;
        } else {
          exports.adapter.appendChild(parentNode, exports.adapter.createTextNode(text));
        }
      },
      insertTextBefore(parentNode, text, referenceNode) {
        const prevNode = parentNode.children[parentNode.children.indexOf(referenceNode) - 1];
        if (prevNode && (0, domhandler_1.isText)(prevNode)) {
          prevNode.data += text;
        } else {
          exports.adapter.insertBefore(parentNode, exports.adapter.createTextNode(text), referenceNode);
        }
      },
      adoptAttributes(recipient, attrs) {
        for (let i5 = 0; i5 < attrs.length; i5++) {
          const attrName = attrs[i5].name;
          if (recipient.attribs[attrName] === void 0) {
            recipient.attribs[attrName] = attrs[i5].value;
            recipient["x-attribsNamespace"][attrName] = attrs[i5].namespace;
            recipient["x-attribsPrefix"][attrName] = attrs[i5].prefix;
          }
        }
      },
      //Tree traversing
      getFirstChild(node) {
        return node.children[0];
      },
      getChildNodes(node) {
        return node.children;
      },
      getParentNode(node) {
        return node.parent;
      },
      getAttrList(element) {
        return element.attributes;
      },
      //Node data
      getTagName(element) {
        return element.name;
      },
      getNamespaceURI(element) {
        return element.namespace;
      },
      getTextNodeContent(textNode) {
        return textNode.data;
      },
      getCommentNodeContent(commentNode) {
        return commentNode.data;
      },
      getDocumentTypeNodeName(doctypeNode) {
        var _a2;
        return (_a2 = doctypeNode["x-name"]) !== null && _a2 !== void 0 ? _a2 : "";
      },
      getDocumentTypeNodePublicId(doctypeNode) {
        var _a2;
        return (_a2 = doctypeNode["x-publicId"]) !== null && _a2 !== void 0 ? _a2 : "";
      },
      getDocumentTypeNodeSystemId(doctypeNode) {
        var _a2;
        return (_a2 = doctypeNode["x-systemId"]) !== null && _a2 !== void 0 ? _a2 : "";
      },
      //Node types
      isDocumentTypeNode(node) {
        return (0, domhandler_1.isDirective)(node) && node.name === "!doctype";
      },
      // Source code location
      setNodeSourceCodeLocation(node, location) {
        if (location) {
          node.startIndex = location.startOffset;
          node.endIndex = location.endOffset;
        }
        node.sourceCodeLocation = location;
      },
      getNodeSourceCodeLocation(node) {
        return node.sourceCodeLocation;
      },
      updateNodeSourceCodeLocation(node, endLocation) {
        if (endLocation.endOffset != null)
          node.endIndex = endLocation.endOffset;
        node.sourceCodeLocation = Object.assign(Object.assign({}, node.sourceCodeLocation), endLocation);
      }
    };
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/parsers/parse5-adapter.js
var require_parse5_adapter = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/parsers/parse5-adapter.js"(exports) {
    "use strict";
    var __spreadArray2 = exports && exports.__spreadArray || function(to, from, pack) {
      if (pack || arguments.length === 2) for (var i5 = 0, l4 = from.length, ar; i5 < l4; i5++) {
        if (ar || !(i5 in from)) {
          if (!ar) ar = Array.prototype.slice.call(from, 0, i5);
          ar[i5] = from[i5];
        }
      }
      return to.concat(ar || Array.prototype.slice.call(from));
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.renderWithParse5 = exports.parseWithParse5 = void 0;
    var domhandler_1 = require_lib4();
    var parse5_1 = require_cjs7();
    var parse5_htmlparser2_tree_adapter_1 = require_cjs8();
    function parseWithParse5(content, options, isDocument, context) {
      var opts2 = {
        scriptingEnabled: typeof options.scriptingEnabled === "boolean" ? options.scriptingEnabled : true,
        treeAdapter: parse5_htmlparser2_tree_adapter_1.adapter,
        sourceCodeLocationInfo: options.sourceCodeLocationInfo
      };
      return isDocument ? (0, parse5_1.parse)(content, opts2) : (0, parse5_1.parseFragment)(context, content, opts2);
    }
    exports.parseWithParse5 = parseWithParse5;
    var renderOpts = { treeAdapter: parse5_htmlparser2_tree_adapter_1.adapter };
    function renderWithParse5(dom) {
      var _a2;
      var nodes = "length" in dom ? dom : [dom];
      for (var index2 = 0; index2 < nodes.length; index2 += 1) {
        var node = nodes[index2];
        if ((0, domhandler_1.isDocument)(node)) {
          (_a2 = Array.prototype.splice).call.apply(_a2, __spreadArray2([nodes, index2, 1], node.children, false));
        }
      }
      var result = "";
      for (var index2 = 0; index2 < nodes.length; index2 += 1) {
        var node = nodes[index2];
        result += (0, parse5_1.serializeOuter)(node, renderOpts);
      }
      return result;
    }
    exports.renderWithParse5 = renderWithParse5;
  }
});

// ../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Tokenizer.js
var require_Tokenizer = __commonJS({
  "../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Tokenizer.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.QuoteType = void 0;
    var decode_js_1 = require_decode();
    var CharCodes;
    (function(CharCodes2) {
      CharCodes2[CharCodes2["Tab"] = 9] = "Tab";
      CharCodes2[CharCodes2["NewLine"] = 10] = "NewLine";
      CharCodes2[CharCodes2["FormFeed"] = 12] = "FormFeed";
      CharCodes2[CharCodes2["CarriageReturn"] = 13] = "CarriageReturn";
      CharCodes2[CharCodes2["Space"] = 32] = "Space";
      CharCodes2[CharCodes2["ExclamationMark"] = 33] = "ExclamationMark";
      CharCodes2[CharCodes2["Number"] = 35] = "Number";
      CharCodes2[CharCodes2["Amp"] = 38] = "Amp";
      CharCodes2[CharCodes2["SingleQuote"] = 39] = "SingleQuote";
      CharCodes2[CharCodes2["DoubleQuote"] = 34] = "DoubleQuote";
      CharCodes2[CharCodes2["Dash"] = 45] = "Dash";
      CharCodes2[CharCodes2["Slash"] = 47] = "Slash";
      CharCodes2[CharCodes2["Zero"] = 48] = "Zero";
      CharCodes2[CharCodes2["Nine"] = 57] = "Nine";
      CharCodes2[CharCodes2["Semi"] = 59] = "Semi";
      CharCodes2[CharCodes2["Lt"] = 60] = "Lt";
      CharCodes2[CharCodes2["Eq"] = 61] = "Eq";
      CharCodes2[CharCodes2["Gt"] = 62] = "Gt";
      CharCodes2[CharCodes2["Questionmark"] = 63] = "Questionmark";
      CharCodes2[CharCodes2["UpperA"] = 65] = "UpperA";
      CharCodes2[CharCodes2["LowerA"] = 97] = "LowerA";
      CharCodes2[CharCodes2["UpperF"] = 70] = "UpperF";
      CharCodes2[CharCodes2["LowerF"] = 102] = "LowerF";
      CharCodes2[CharCodes2["UpperZ"] = 90] = "UpperZ";
      CharCodes2[CharCodes2["LowerZ"] = 122] = "LowerZ";
      CharCodes2[CharCodes2["LowerX"] = 120] = "LowerX";
      CharCodes2[CharCodes2["OpeningSquareBracket"] = 91] = "OpeningSquareBracket";
    })(CharCodes || (CharCodes = {}));
    var State;
    (function(State2) {
      State2[State2["Text"] = 1] = "Text";
      State2[State2["BeforeTagName"] = 2] = "BeforeTagName";
      State2[State2["InTagName"] = 3] = "InTagName";
      State2[State2["InSelfClosingTag"] = 4] = "InSelfClosingTag";
      State2[State2["BeforeClosingTagName"] = 5] = "BeforeClosingTagName";
      State2[State2["InClosingTagName"] = 6] = "InClosingTagName";
      State2[State2["AfterClosingTagName"] = 7] = "AfterClosingTagName";
      State2[State2["BeforeAttributeName"] = 8] = "BeforeAttributeName";
      State2[State2["InAttributeName"] = 9] = "InAttributeName";
      State2[State2["AfterAttributeName"] = 10] = "AfterAttributeName";
      State2[State2["BeforeAttributeValue"] = 11] = "BeforeAttributeValue";
      State2[State2["InAttributeValueDq"] = 12] = "InAttributeValueDq";
      State2[State2["InAttributeValueSq"] = 13] = "InAttributeValueSq";
      State2[State2["InAttributeValueNq"] = 14] = "InAttributeValueNq";
      State2[State2["BeforeDeclaration"] = 15] = "BeforeDeclaration";
      State2[State2["InDeclaration"] = 16] = "InDeclaration";
      State2[State2["InProcessingInstruction"] = 17] = "InProcessingInstruction";
      State2[State2["BeforeComment"] = 18] = "BeforeComment";
      State2[State2["CDATASequence"] = 19] = "CDATASequence";
      State2[State2["InSpecialComment"] = 20] = "InSpecialComment";
      State2[State2["InCommentLike"] = 21] = "InCommentLike";
      State2[State2["BeforeSpecialS"] = 22] = "BeforeSpecialS";
      State2[State2["SpecialStartSequence"] = 23] = "SpecialStartSequence";
      State2[State2["InSpecialTag"] = 24] = "InSpecialTag";
      State2[State2["BeforeEntity"] = 25] = "BeforeEntity";
      State2[State2["BeforeNumericEntity"] = 26] = "BeforeNumericEntity";
      State2[State2["InNamedEntity"] = 27] = "InNamedEntity";
      State2[State2["InNumericEntity"] = 28] = "InNumericEntity";
      State2[State2["InHexEntity"] = 29] = "InHexEntity";
    })(State || (State = {}));
    function isWhitespace(c6) {
      return c6 === CharCodes.Space || c6 === CharCodes.NewLine || c6 === CharCodes.Tab || c6 === CharCodes.FormFeed || c6 === CharCodes.CarriageReturn;
    }
    function isEndOfTagSection(c6) {
      return c6 === CharCodes.Slash || c6 === CharCodes.Gt || isWhitespace(c6);
    }
    function isNumber5(c6) {
      return c6 >= CharCodes.Zero && c6 <= CharCodes.Nine;
    }
    function isASCIIAlpha(c6) {
      return c6 >= CharCodes.LowerA && c6 <= CharCodes.LowerZ || c6 >= CharCodes.UpperA && c6 <= CharCodes.UpperZ;
    }
    function isHexDigit(c6) {
      return c6 >= CharCodes.UpperA && c6 <= CharCodes.UpperF || c6 >= CharCodes.LowerA && c6 <= CharCodes.LowerF;
    }
    var QuoteType;
    (function(QuoteType2) {
      QuoteType2[QuoteType2["NoValue"] = 0] = "NoValue";
      QuoteType2[QuoteType2["Unquoted"] = 1] = "Unquoted";
      QuoteType2[QuoteType2["Single"] = 2] = "Single";
      QuoteType2[QuoteType2["Double"] = 3] = "Double";
    })(QuoteType = exports.QuoteType || (exports.QuoteType = {}));
    var Sequences = {
      Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),
      CdataEnd: new Uint8Array([93, 93, 62]),
      CommentEnd: new Uint8Array([45, 45, 62]),
      ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),
      StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),
      TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101])
      // `</title`
    };
    var Tokenizer = (
      /** @class */
      (function() {
        function Tokenizer2(_a2, cbs) {
          var _b2 = _a2.xmlMode, xmlMode = _b2 === void 0 ? false : _b2, _c = _a2.decodeEntities, decodeEntities = _c === void 0 ? true : _c;
          this.cbs = cbs;
          this.state = State.Text;
          this.buffer = "";
          this.sectionStart = 0;
          this.index = 0;
          this.baseState = State.Text;
          this.isSpecial = false;
          this.running = true;
          this.offset = 0;
          this.currentSequence = void 0;
          this.sequenceIndex = 0;
          this.trieIndex = 0;
          this.trieCurrent = 0;
          this.entityResult = 0;
          this.entityExcess = 0;
          this.xmlMode = xmlMode;
          this.decodeEntities = decodeEntities;
          this.entityTrie = xmlMode ? decode_js_1.xmlDecodeTree : decode_js_1.htmlDecodeTree;
        }
        Tokenizer2.prototype.reset = function() {
          this.state = State.Text;
          this.buffer = "";
          this.sectionStart = 0;
          this.index = 0;
          this.baseState = State.Text;
          this.currentSequence = void 0;
          this.running = true;
          this.offset = 0;
        };
        Tokenizer2.prototype.write = function(chunk3) {
          this.offset += this.buffer.length;
          this.buffer = chunk3;
          this.parse();
        };
        Tokenizer2.prototype.end = function() {
          if (this.running)
            this.finish();
        };
        Tokenizer2.prototype.pause = function() {
          this.running = false;
        };
        Tokenizer2.prototype.resume = function() {
          this.running = true;
          if (this.index < this.buffer.length + this.offset) {
            this.parse();
          }
        };
        Tokenizer2.prototype.getIndex = function() {
          return this.index;
        };
        Tokenizer2.prototype.getSectionStart = function() {
          return this.sectionStart;
        };
        Tokenizer2.prototype.stateText = function(c6) {
          if (c6 === CharCodes.Lt || !this.decodeEntities && this.fastForwardTo(CharCodes.Lt)) {
            if (this.index > this.sectionStart) {
              this.cbs.ontext(this.sectionStart, this.index);
            }
            this.state = State.BeforeTagName;
            this.sectionStart = this.index;
          } else if (this.decodeEntities && c6 === CharCodes.Amp) {
            this.state = State.BeforeEntity;
          }
        };
        Tokenizer2.prototype.stateSpecialStartSequence = function(c6) {
          var isEnd = this.sequenceIndex === this.currentSequence.length;
          var isMatch = isEnd ? (
            // If we are at the end of the sequence, make sure the tag name has ended
            isEndOfTagSection(c6)
          ) : (
            // Otherwise, do a case-insensitive comparison
            (c6 | 32) === this.currentSequence[this.sequenceIndex]
          );
          if (!isMatch) {
            this.isSpecial = false;
          } else if (!isEnd) {
            this.sequenceIndex++;
            return;
          }
          this.sequenceIndex = 0;
          this.state = State.InTagName;
          this.stateInTagName(c6);
        };
        Tokenizer2.prototype.stateInSpecialTag = function(c6) {
          if (this.sequenceIndex === this.currentSequence.length) {
            if (c6 === CharCodes.Gt || isWhitespace(c6)) {
              var endOfText = this.index - this.currentSequence.length;
              if (this.sectionStart < endOfText) {
                var actualIndex = this.index;
                this.index = endOfText;
                this.cbs.ontext(this.sectionStart, endOfText);
                this.index = actualIndex;
              }
              this.isSpecial = false;
              this.sectionStart = endOfText + 2;
              this.stateInClosingTagName(c6);
              return;
            }
            this.sequenceIndex = 0;
          }
          if ((c6 | 32) === this.currentSequence[this.sequenceIndex]) {
            this.sequenceIndex += 1;
          } else if (this.sequenceIndex === 0) {
            if (this.currentSequence === Sequences.TitleEnd) {
              if (this.decodeEntities && c6 === CharCodes.Amp) {
                this.state = State.BeforeEntity;
              }
            } else if (this.fastForwardTo(CharCodes.Lt)) {
              this.sequenceIndex = 1;
            }
          } else {
            this.sequenceIndex = Number(c6 === CharCodes.Lt);
          }
        };
        Tokenizer2.prototype.stateCDATASequence = function(c6) {
          if (c6 === Sequences.Cdata[this.sequenceIndex]) {
            if (++this.sequenceIndex === Sequences.Cdata.length) {
              this.state = State.InCommentLike;
              this.currentSequence = Sequences.CdataEnd;
              this.sequenceIndex = 0;
              this.sectionStart = this.index + 1;
            }
          } else {
            this.sequenceIndex = 0;
            this.state = State.InDeclaration;
            this.stateInDeclaration(c6);
          }
        };
        Tokenizer2.prototype.fastForwardTo = function(c6) {
          while (++this.index < this.buffer.length + this.offset) {
            if (this.buffer.charCodeAt(this.index - this.offset) === c6) {
              return true;
            }
          }
          this.index = this.buffer.length + this.offset - 1;
          return false;
        };
        Tokenizer2.prototype.stateInCommentLike = function(c6) {
          if (c6 === this.currentSequence[this.sequenceIndex]) {
            if (++this.sequenceIndex === this.currentSequence.length) {
              if (this.currentSequence === Sequences.CdataEnd) {
                this.cbs.oncdata(this.sectionStart, this.index, 2);
              } else {
                this.cbs.oncomment(this.sectionStart, this.index, 2);
              }
              this.sequenceIndex = 0;
              this.sectionStart = this.index + 1;
              this.state = State.Text;
            }
          } else if (this.sequenceIndex === 0) {
            if (this.fastForwardTo(this.currentSequence[0])) {
              this.sequenceIndex = 1;
            }
          } else if (c6 !== this.currentSequence[this.sequenceIndex - 1]) {
            this.sequenceIndex = 0;
          }
        };
        Tokenizer2.prototype.isTagStartChar = function(c6) {
          return this.xmlMode ? !isEndOfTagSection(c6) : isASCIIAlpha(c6);
        };
        Tokenizer2.prototype.startSpecial = function(sequence, offset2) {
          this.isSpecial = true;
          this.currentSequence = sequence;
          this.sequenceIndex = offset2;
          this.state = State.SpecialStartSequence;
        };
        Tokenizer2.prototype.stateBeforeTagName = function(c6) {
          if (c6 === CharCodes.ExclamationMark) {
            this.state = State.BeforeDeclaration;
            this.sectionStart = this.index + 1;
          } else if (c6 === CharCodes.Questionmark) {
            this.state = State.InProcessingInstruction;
            this.sectionStart = this.index + 1;
          } else if (this.isTagStartChar(c6)) {
            var lower = c6 | 32;
            this.sectionStart = this.index;
            if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {
              this.startSpecial(Sequences.TitleEnd, 3);
            } else {
              this.state = !this.xmlMode && lower === Sequences.ScriptEnd[2] ? State.BeforeSpecialS : State.InTagName;
            }
          } else if (c6 === CharCodes.Slash) {
            this.state = State.BeforeClosingTagName;
          } else {
            this.state = State.Text;
            this.stateText(c6);
          }
        };
        Tokenizer2.prototype.stateInTagName = function(c6) {
          if (isEndOfTagSection(c6)) {
            this.cbs.onopentagname(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.state = State.BeforeAttributeName;
            this.stateBeforeAttributeName(c6);
          }
        };
        Tokenizer2.prototype.stateBeforeClosingTagName = function(c6) {
          if (isWhitespace(c6)) {
          } else if (c6 === CharCodes.Gt) {
            this.state = State.Text;
          } else {
            this.state = this.isTagStartChar(c6) ? State.InClosingTagName : State.InSpecialComment;
            this.sectionStart = this.index;
          }
        };
        Tokenizer2.prototype.stateInClosingTagName = function(c6) {
          if (c6 === CharCodes.Gt || isWhitespace(c6)) {
            this.cbs.onclosetag(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.state = State.AfterClosingTagName;
            this.stateAfterClosingTagName(c6);
          }
        };
        Tokenizer2.prototype.stateAfterClosingTagName = function(c6) {
          if (c6 === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
            this.state = State.Text;
            this.baseState = State.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer2.prototype.stateBeforeAttributeName = function(c6) {
          if (c6 === CharCodes.Gt) {
            this.cbs.onopentagend(this.index);
            if (this.isSpecial) {
              this.state = State.InSpecialTag;
              this.sequenceIndex = 0;
            } else {
              this.state = State.Text;
            }
            this.baseState = this.state;
            this.sectionStart = this.index + 1;
          } else if (c6 === CharCodes.Slash) {
            this.state = State.InSelfClosingTag;
          } else if (!isWhitespace(c6)) {
            this.state = State.InAttributeName;
            this.sectionStart = this.index;
          }
        };
        Tokenizer2.prototype.stateInSelfClosingTag = function(c6) {
          if (c6 === CharCodes.Gt) {
            this.cbs.onselfclosingtag(this.index);
            this.state = State.Text;
            this.baseState = State.Text;
            this.sectionStart = this.index + 1;
            this.isSpecial = false;
          } else if (!isWhitespace(c6)) {
            this.state = State.BeforeAttributeName;
            this.stateBeforeAttributeName(c6);
          }
        };
        Tokenizer2.prototype.stateInAttributeName = function(c6) {
          if (c6 === CharCodes.Eq || isEndOfTagSection(c6)) {
            this.cbs.onattribname(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.state = State.AfterAttributeName;
            this.stateAfterAttributeName(c6);
          }
        };
        Tokenizer2.prototype.stateAfterAttributeName = function(c6) {
          if (c6 === CharCodes.Eq) {
            this.state = State.BeforeAttributeValue;
          } else if (c6 === CharCodes.Slash || c6 === CharCodes.Gt) {
            this.cbs.onattribend(QuoteType.NoValue, this.index);
            this.state = State.BeforeAttributeName;
            this.stateBeforeAttributeName(c6);
          } else if (!isWhitespace(c6)) {
            this.cbs.onattribend(QuoteType.NoValue, this.index);
            this.state = State.InAttributeName;
            this.sectionStart = this.index;
          }
        };
        Tokenizer2.prototype.stateBeforeAttributeValue = function(c6) {
          if (c6 === CharCodes.DoubleQuote) {
            this.state = State.InAttributeValueDq;
            this.sectionStart = this.index + 1;
          } else if (c6 === CharCodes.SingleQuote) {
            this.state = State.InAttributeValueSq;
            this.sectionStart = this.index + 1;
          } else if (!isWhitespace(c6)) {
            this.sectionStart = this.index;
            this.state = State.InAttributeValueNq;
            this.stateInAttributeValueNoQuotes(c6);
          }
        };
        Tokenizer2.prototype.handleInAttributeValue = function(c6, quote) {
          if (c6 === quote || !this.decodeEntities && this.fastForwardTo(quote)) {
            this.cbs.onattribdata(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.cbs.onattribend(quote === CharCodes.DoubleQuote ? QuoteType.Double : QuoteType.Single, this.index);
            this.state = State.BeforeAttributeName;
          } else if (this.decodeEntities && c6 === CharCodes.Amp) {
            this.baseState = this.state;
            this.state = State.BeforeEntity;
          }
        };
        Tokenizer2.prototype.stateInAttributeValueDoubleQuotes = function(c6) {
          this.handleInAttributeValue(c6, CharCodes.DoubleQuote);
        };
        Tokenizer2.prototype.stateInAttributeValueSingleQuotes = function(c6) {
          this.handleInAttributeValue(c6, CharCodes.SingleQuote);
        };
        Tokenizer2.prototype.stateInAttributeValueNoQuotes = function(c6) {
          if (isWhitespace(c6) || c6 === CharCodes.Gt) {
            this.cbs.onattribdata(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.cbs.onattribend(QuoteType.Unquoted, this.index);
            this.state = State.BeforeAttributeName;
            this.stateBeforeAttributeName(c6);
          } else if (this.decodeEntities && c6 === CharCodes.Amp) {
            this.baseState = this.state;
            this.state = State.BeforeEntity;
          }
        };
        Tokenizer2.prototype.stateBeforeDeclaration = function(c6) {
          if (c6 === CharCodes.OpeningSquareBracket) {
            this.state = State.CDATASequence;
            this.sequenceIndex = 0;
          } else {
            this.state = c6 === CharCodes.Dash ? State.BeforeComment : State.InDeclaration;
          }
        };
        Tokenizer2.prototype.stateInDeclaration = function(c6) {
          if (c6 === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
            this.cbs.ondeclaration(this.sectionStart, this.index);
            this.state = State.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer2.prototype.stateInProcessingInstruction = function(c6) {
          if (c6 === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
            this.cbs.onprocessinginstruction(this.sectionStart, this.index);
            this.state = State.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer2.prototype.stateBeforeComment = function(c6) {
          if (c6 === CharCodes.Dash) {
            this.state = State.InCommentLike;
            this.currentSequence = Sequences.CommentEnd;
            this.sequenceIndex = 2;
            this.sectionStart = this.index + 1;
          } else {
            this.state = State.InDeclaration;
          }
        };
        Tokenizer2.prototype.stateInSpecialComment = function(c6) {
          if (c6 === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
            this.cbs.oncomment(this.sectionStart, this.index, 0);
            this.state = State.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer2.prototype.stateBeforeSpecialS = function(c6) {
          var lower = c6 | 32;
          if (lower === Sequences.ScriptEnd[3]) {
            this.startSpecial(Sequences.ScriptEnd, 4);
          } else if (lower === Sequences.StyleEnd[3]) {
            this.startSpecial(Sequences.StyleEnd, 4);
          } else {
            this.state = State.InTagName;
            this.stateInTagName(c6);
          }
        };
        Tokenizer2.prototype.stateBeforeEntity = function(c6) {
          this.entityExcess = 1;
          this.entityResult = 0;
          if (c6 === CharCodes.Number) {
            this.state = State.BeforeNumericEntity;
          } else if (c6 === CharCodes.Amp) {
          } else {
            this.trieIndex = 0;
            this.trieCurrent = this.entityTrie[0];
            this.state = State.InNamedEntity;
            this.stateInNamedEntity(c6);
          }
        };
        Tokenizer2.prototype.stateInNamedEntity = function(c6) {
          this.entityExcess += 1;
          this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c6);
          if (this.trieIndex < 0) {
            this.emitNamedEntity();
            this.index--;
            return;
          }
          this.trieCurrent = this.entityTrie[this.trieIndex];
          var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;
          if (masked) {
            var valueLength = (masked >> 14) - 1;
            if (!this.allowLegacyEntity() && c6 !== CharCodes.Semi) {
              this.trieIndex += valueLength;
            } else {
              var entityStart = this.index - this.entityExcess + 1;
              if (entityStart > this.sectionStart) {
                this.emitPartial(this.sectionStart, entityStart);
              }
              this.entityResult = this.trieIndex;
              this.trieIndex += valueLength;
              this.entityExcess = 0;
              this.sectionStart = this.index + 1;
              if (valueLength === 0) {
                this.emitNamedEntity();
              }
            }
          }
        };
        Tokenizer2.prototype.emitNamedEntity = function() {
          this.state = this.baseState;
          if (this.entityResult === 0) {
            return;
          }
          var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;
          switch (valueLength) {
            case 1: {
              this.emitCodePoint(this.entityTrie[this.entityResult] & ~decode_js_1.BinTrieFlags.VALUE_LENGTH);
              break;
            }
            case 2: {
              this.emitCodePoint(this.entityTrie[this.entityResult + 1]);
              break;
            }
            case 3: {
              this.emitCodePoint(this.entityTrie[this.entityResult + 1]);
              this.emitCodePoint(this.entityTrie[this.entityResult + 2]);
            }
          }
        };
        Tokenizer2.prototype.stateBeforeNumericEntity = function(c6) {
          if ((c6 | 32) === CharCodes.LowerX) {
            this.entityExcess++;
            this.state = State.InHexEntity;
          } else {
            this.state = State.InNumericEntity;
            this.stateInNumericEntity(c6);
          }
        };
        Tokenizer2.prototype.emitNumericEntity = function(strict) {
          var entityStart = this.index - this.entityExcess - 1;
          var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);
          if (numberStart !== this.index) {
            if (entityStart > this.sectionStart) {
              this.emitPartial(this.sectionStart, entityStart);
            }
            this.sectionStart = this.index + Number(strict);
            this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));
          }
          this.state = this.baseState;
        };
        Tokenizer2.prototype.stateInNumericEntity = function(c6) {
          if (c6 === CharCodes.Semi) {
            this.emitNumericEntity(true);
          } else if (isNumber5(c6)) {
            this.entityResult = this.entityResult * 10 + (c6 - CharCodes.Zero);
            this.entityExcess++;
          } else {
            if (this.allowLegacyEntity()) {
              this.emitNumericEntity(false);
            } else {
              this.state = this.baseState;
            }
            this.index--;
          }
        };
        Tokenizer2.prototype.stateInHexEntity = function(c6) {
          if (c6 === CharCodes.Semi) {
            this.emitNumericEntity(true);
          } else if (isNumber5(c6)) {
            this.entityResult = this.entityResult * 16 + (c6 - CharCodes.Zero);
            this.entityExcess++;
          } else if (isHexDigit(c6)) {
            this.entityResult = this.entityResult * 16 + ((c6 | 32) - CharCodes.LowerA + 10);
            this.entityExcess++;
          } else {
            if (this.allowLegacyEntity()) {
              this.emitNumericEntity(false);
            } else {
              this.state = this.baseState;
            }
            this.index--;
          }
        };
        Tokenizer2.prototype.allowLegacyEntity = function() {
          return !this.xmlMode && (this.baseState === State.Text || this.baseState === State.InSpecialTag);
        };
        Tokenizer2.prototype.cleanup = function() {
          if (this.running && this.sectionStart !== this.index) {
            if (this.state === State.Text || this.state === State.InSpecialTag && this.sequenceIndex === 0) {
              this.cbs.ontext(this.sectionStart, this.index);
              this.sectionStart = this.index;
            } else if (this.state === State.InAttributeValueDq || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueNq) {
              this.cbs.onattribdata(this.sectionStart, this.index);
              this.sectionStart = this.index;
            }
          }
        };
        Tokenizer2.prototype.shouldContinue = function() {
          return this.index < this.buffer.length + this.offset && this.running;
        };
        Tokenizer2.prototype.parse = function() {
          while (this.shouldContinue()) {
            var c6 = this.buffer.charCodeAt(this.index - this.offset);
            switch (this.state) {
              case State.Text: {
                this.stateText(c6);
                break;
              }
              case State.SpecialStartSequence: {
                this.stateSpecialStartSequence(c6);
                break;
              }
              case State.InSpecialTag: {
                this.stateInSpecialTag(c6);
                break;
              }
              case State.CDATASequence: {
                this.stateCDATASequence(c6);
                break;
              }
              case State.InAttributeValueDq: {
                this.stateInAttributeValueDoubleQuotes(c6);
                break;
              }
              case State.InAttributeName: {
                this.stateInAttributeName(c6);
                break;
              }
              case State.InCommentLike: {
                this.stateInCommentLike(c6);
                break;
              }
              case State.InSpecialComment: {
                this.stateInSpecialComment(c6);
                break;
              }
              case State.BeforeAttributeName: {
                this.stateBeforeAttributeName(c6);
                break;
              }
              case State.InTagName: {
                this.stateInTagName(c6);
                break;
              }
              case State.InClosingTagName: {
                this.stateInClosingTagName(c6);
                break;
              }
              case State.BeforeTagName: {
                this.stateBeforeTagName(c6);
                break;
              }
              case State.AfterAttributeName: {
                this.stateAfterAttributeName(c6);
                break;
              }
              case State.InAttributeValueSq: {
                this.stateInAttributeValueSingleQuotes(c6);
                break;
              }
              case State.BeforeAttributeValue: {
                this.stateBeforeAttributeValue(c6);
                break;
              }
              case State.BeforeClosingTagName: {
                this.stateBeforeClosingTagName(c6);
                break;
              }
              case State.AfterClosingTagName: {
                this.stateAfterClosingTagName(c6);
                break;
              }
              case State.BeforeSpecialS: {
                this.stateBeforeSpecialS(c6);
                break;
              }
              case State.InAttributeValueNq: {
                this.stateInAttributeValueNoQuotes(c6);
                break;
              }
              case State.InSelfClosingTag: {
                this.stateInSelfClosingTag(c6);
                break;
              }
              case State.InDeclaration: {
                this.stateInDeclaration(c6);
                break;
              }
              case State.BeforeDeclaration: {
                this.stateBeforeDeclaration(c6);
                break;
              }
              case State.BeforeComment: {
                this.stateBeforeComment(c6);
                break;
              }
              case State.InProcessingInstruction: {
                this.stateInProcessingInstruction(c6);
                break;
              }
              case State.InNamedEntity: {
                this.stateInNamedEntity(c6);
                break;
              }
              case State.BeforeEntity: {
                this.stateBeforeEntity(c6);
                break;
              }
              case State.InHexEntity: {
                this.stateInHexEntity(c6);
                break;
              }
              case State.InNumericEntity: {
                this.stateInNumericEntity(c6);
                break;
              }
              default: {
                this.stateBeforeNumericEntity(c6);
              }
            }
            this.index++;
          }
          this.cleanup();
        };
        Tokenizer2.prototype.finish = function() {
          if (this.state === State.InNamedEntity) {
            this.emitNamedEntity();
          }
          if (this.sectionStart < this.index) {
            this.handleTrailingData();
          }
          this.cbs.onend();
        };
        Tokenizer2.prototype.handleTrailingData = function() {
          var endIndex = this.buffer.length + this.offset;
          if (this.state === State.InCommentLike) {
            if (this.currentSequence === Sequences.CdataEnd) {
              this.cbs.oncdata(this.sectionStart, endIndex, 0);
            } else {
              this.cbs.oncomment(this.sectionStart, endIndex, 0);
            }
          } else if (this.state === State.InNumericEntity && this.allowLegacyEntity()) {
            this.emitNumericEntity(false);
          } else if (this.state === State.InHexEntity && this.allowLegacyEntity()) {
            this.emitNumericEntity(false);
          } else if (this.state === State.InTagName || this.state === State.BeforeAttributeName || this.state === State.BeforeAttributeValue || this.state === State.AfterAttributeName || this.state === State.InAttributeName || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueDq || this.state === State.InAttributeValueNq || this.state === State.InClosingTagName) {
          } else {
            this.cbs.ontext(this.sectionStart, endIndex);
          }
        };
        Tokenizer2.prototype.emitPartial = function(start2, endIndex) {
          if (this.baseState !== State.Text && this.baseState !== State.InSpecialTag) {
            this.cbs.onattribdata(start2, endIndex);
          } else {
            this.cbs.ontext(start2, endIndex);
          }
        };
        Tokenizer2.prototype.emitCodePoint = function(cp) {
          if (this.baseState !== State.Text && this.baseState !== State.InSpecialTag) {
            this.cbs.onattribentity(cp);
          } else {
            this.cbs.ontextentity(cp);
          }
        };
        return Tokenizer2;
      })()
    );
    exports.default = Tokenizer;
  }
});

// ../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Parser.js
var require_Parser = __commonJS({
  "../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Parser.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Parser = void 0;
    var Tokenizer_js_1 = __importStar2(require_Tokenizer());
    var decode_js_1 = require_decode();
    var formTags = /* @__PURE__ */ new Set([
      "input",
      "option",
      "optgroup",
      "select",
      "button",
      "datalist",
      "textarea"
    ]);
    var pTag = /* @__PURE__ */ new Set(["p"]);
    var tableSectionTags = /* @__PURE__ */ new Set(["thead", "tbody"]);
    var ddtTags = /* @__PURE__ */ new Set(["dd", "dt"]);
    var rtpTags = /* @__PURE__ */ new Set(["rt", "rp"]);
    var openImpliesClose = /* @__PURE__ */ new Map([
      ["tr", /* @__PURE__ */ new Set(["tr", "th", "td"])],
      ["th", /* @__PURE__ */ new Set(["th"])],
      ["td", /* @__PURE__ */ new Set(["thead", "th", "td"])],
      ["body", /* @__PURE__ */ new Set(["head", "link", "script"])],
      ["li", /* @__PURE__ */ new Set(["li"])],
      ["p", pTag],
      ["h1", pTag],
      ["h2", pTag],
      ["h3", pTag],
      ["h4", pTag],
      ["h5", pTag],
      ["h6", pTag],
      ["select", formTags],
      ["input", formTags],
      ["output", formTags],
      ["button", formTags],
      ["datalist", formTags],
      ["textarea", formTags],
      ["option", /* @__PURE__ */ new Set(["option"])],
      ["optgroup", /* @__PURE__ */ new Set(["optgroup", "option"])],
      ["dd", ddtTags],
      ["dt", ddtTags],
      ["address", pTag],
      ["article", pTag],
      ["aside", pTag],
      ["blockquote", pTag],
      ["details", pTag],
      ["div", pTag],
      ["dl", pTag],
      ["fieldset", pTag],
      ["figcaption", pTag],
      ["figure", pTag],
      ["footer", pTag],
      ["form", pTag],
      ["header", pTag],
      ["hr", pTag],
      ["main", pTag],
      ["nav", pTag],
      ["ol", pTag],
      ["pre", pTag],
      ["section", pTag],
      ["table", pTag],
      ["ul", pTag],
      ["rt", rtpTags],
      ["rp", rtpTags],
      ["tbody", tableSectionTags],
      ["tfoot", tableSectionTags]
    ]);
    var voidElements = /* @__PURE__ */ new Set([
      "area",
      "base",
      "basefont",
      "br",
      "col",
      "command",
      "embed",
      "frame",
      "hr",
      "img",
      "input",
      "isindex",
      "keygen",
      "link",
      "meta",
      "param",
      "source",
      "track",
      "wbr"
    ]);
    var foreignContextElements = /* @__PURE__ */ new Set(["math", "svg"]);
    var htmlIntegrationElements = /* @__PURE__ */ new Set([
      "mi",
      "mo",
      "mn",
      "ms",
      "mtext",
      "annotation-xml",
      "foreignobject",
      "desc",
      "title"
    ]);
    var reNameEnd = /\s|\//;
    var Parser = (
      /** @class */
      (function() {
        function Parser2(cbs, options) {
          if (options === void 0) {
            options = {};
          }
          var _a2, _b2, _c, _d, _e;
          this.options = options;
          this.startIndex = 0;
          this.endIndex = 0;
          this.openTagStart = 0;
          this.tagname = "";
          this.attribname = "";
          this.attribvalue = "";
          this.attribs = null;
          this.stack = [];
          this.foreignContext = [];
          this.buffers = [];
          this.bufferOffset = 0;
          this.writeIndex = 0;
          this.ended = false;
          this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};
          this.lowerCaseTagNames = (_a2 = options.lowerCaseTags) !== null && _a2 !== void 0 ? _a2 : !options.xmlMode;
          this.lowerCaseAttributeNames = (_b2 = options.lowerCaseAttributeNames) !== null && _b2 !== void 0 ? _b2 : !options.xmlMode;
          this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_js_1.default)(this.options, this);
          (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);
        }
        Parser2.prototype.ontext = function(start2, endIndex) {
          var _a2, _b2;
          var data2 = this.getSlice(start2, endIndex);
          this.endIndex = endIndex - 1;
          (_b2 = (_a2 = this.cbs).ontext) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, data2);
          this.startIndex = endIndex;
        };
        Parser2.prototype.ontextentity = function(cp) {
          var _a2, _b2;
          var index2 = this.tokenizer.getSectionStart();
          this.endIndex = index2 - 1;
          (_b2 = (_a2 = this.cbs).ontext) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, (0, decode_js_1.fromCodePoint)(cp));
          this.startIndex = index2;
        };
        Parser2.prototype.isVoidElement = function(name) {
          return !this.options.xmlMode && voidElements.has(name);
        };
        Parser2.prototype.onopentagname = function(start2, endIndex) {
          this.endIndex = endIndex;
          var name = this.getSlice(start2, endIndex);
          if (this.lowerCaseTagNames) {
            name = name.toLowerCase();
          }
          this.emitOpenTag(name);
        };
        Parser2.prototype.emitOpenTag = function(name) {
          var _a2, _b2, _c, _d;
          this.openTagStart = this.startIndex;
          this.tagname = name;
          var impliesClose = !this.options.xmlMode && openImpliesClose.get(name);
          if (impliesClose) {
            while (this.stack.length > 0 && impliesClose.has(this.stack[this.stack.length - 1])) {
              var element = this.stack.pop();
              (_b2 = (_a2 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, element, true);
            }
          }
          if (!this.isVoidElement(name)) {
            this.stack.push(name);
            if (foreignContextElements.has(name)) {
              this.foreignContext.push(true);
            } else if (htmlIntegrationElements.has(name)) {
              this.foreignContext.push(false);
            }
          }
          (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);
          if (this.cbs.onopentag)
            this.attribs = {};
        };
        Parser2.prototype.endOpenTag = function(isImplied) {
          var _a2, _b2;
          this.startIndex = this.openTagStart;
          if (this.attribs) {
            (_b2 = (_a2 = this.cbs).onopentag) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, this.tagname, this.attribs, isImplied);
            this.attribs = null;
          }
          if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {
            this.cbs.onclosetag(this.tagname, true);
          }
          this.tagname = "";
        };
        Parser2.prototype.onopentagend = function(endIndex) {
          this.endIndex = endIndex;
          this.endOpenTag(false);
          this.startIndex = endIndex + 1;
        };
        Parser2.prototype.onclosetag = function(start2, endIndex) {
          var _a2, _b2, _c, _d, _e, _f;
          this.endIndex = endIndex;
          var name = this.getSlice(start2, endIndex);
          if (this.lowerCaseTagNames) {
            name = name.toLowerCase();
          }
          if (foreignContextElements.has(name) || htmlIntegrationElements.has(name)) {
            this.foreignContext.pop();
          }
          if (!this.isVoidElement(name)) {
            var pos = this.stack.lastIndexOf(name);
            if (pos !== -1) {
              if (this.cbs.onclosetag) {
                var count = this.stack.length - pos;
                while (count--) {
                  this.cbs.onclosetag(this.stack.pop(), count !== 0);
                }
              } else
                this.stack.length = pos;
            } else if (!this.options.xmlMode && name === "p") {
              this.emitOpenTag("p");
              this.closeCurrentTag(true);
            }
          } else if (!this.options.xmlMode && name === "br") {
            (_b2 = (_a2 = this.cbs).onopentagname) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, "br");
            (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, "br", {}, true);
            (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, "br", false);
          }
          this.startIndex = endIndex + 1;
        };
        Parser2.prototype.onselfclosingtag = function(endIndex) {
          this.endIndex = endIndex;
          if (this.options.xmlMode || this.options.recognizeSelfClosing || this.foreignContext[this.foreignContext.length - 1]) {
            this.closeCurrentTag(false);
            this.startIndex = endIndex + 1;
          } else {
            this.onopentagend(endIndex);
          }
        };
        Parser2.prototype.closeCurrentTag = function(isOpenImplied) {
          var _a2, _b2;
          var name = this.tagname;
          this.endOpenTag(isOpenImplied);
          if (this.stack[this.stack.length - 1] === name) {
            (_b2 = (_a2 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, name, !isOpenImplied);
            this.stack.pop();
          }
        };
        Parser2.prototype.onattribname = function(start2, endIndex) {
          this.startIndex = start2;
          var name = this.getSlice(start2, endIndex);
          this.attribname = this.lowerCaseAttributeNames ? name.toLowerCase() : name;
        };
        Parser2.prototype.onattribdata = function(start2, endIndex) {
          this.attribvalue += this.getSlice(start2, endIndex);
        };
        Parser2.prototype.onattribentity = function(cp) {
          this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);
        };
        Parser2.prototype.onattribend = function(quote, endIndex) {
          var _a2, _b2;
          this.endIndex = endIndex;
          (_b2 = (_a2 = this.cbs).onattribute) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double ? '"' : quote === Tokenizer_js_1.QuoteType.Single ? "'" : quote === Tokenizer_js_1.QuoteType.NoValue ? void 0 : null);
          if (this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {
            this.attribs[this.attribname] = this.attribvalue;
          }
          this.attribvalue = "";
        };
        Parser2.prototype.getInstructionName = function(value2) {
          var index2 = value2.search(reNameEnd);
          var name = index2 < 0 ? value2 : value2.substr(0, index2);
          if (this.lowerCaseTagNames) {
            name = name.toLowerCase();
          }
          return name;
        };
        Parser2.prototype.ondeclaration = function(start2, endIndex) {
          this.endIndex = endIndex;
          var value2 = this.getSlice(start2, endIndex);
          if (this.cbs.onprocessinginstruction) {
            var name = this.getInstructionName(value2);
            this.cbs.onprocessinginstruction("!".concat(name), "!".concat(value2));
          }
          this.startIndex = endIndex + 1;
        };
        Parser2.prototype.onprocessinginstruction = function(start2, endIndex) {
          this.endIndex = endIndex;
          var value2 = this.getSlice(start2, endIndex);
          if (this.cbs.onprocessinginstruction) {
            var name = this.getInstructionName(value2);
            this.cbs.onprocessinginstruction("?".concat(name), "?".concat(value2));
          }
          this.startIndex = endIndex + 1;
        };
        Parser2.prototype.oncomment = function(start2, endIndex, offset2) {
          var _a2, _b2, _c, _d;
          this.endIndex = endIndex;
          (_b2 = (_a2 = this.cbs).oncomment) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, this.getSlice(start2, endIndex - offset2));
          (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);
          this.startIndex = endIndex + 1;
        };
        Parser2.prototype.oncdata = function(start2, endIndex, offset2) {
          var _a2, _b2, _c, _d, _e, _f, _g, _h, _j, _k;
          this.endIndex = endIndex;
          var value2 = this.getSlice(start2, endIndex - offset2);
          if (this.options.xmlMode || this.options.recognizeCDATA) {
            (_b2 = (_a2 = this.cbs).oncdatastart) === null || _b2 === void 0 ? void 0 : _b2.call(_a2);
            (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value2);
            (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);
          } else {
            (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, "[CDATA[".concat(value2, "]]"));
            (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);
          }
          this.startIndex = endIndex + 1;
        };
        Parser2.prototype.onend = function() {
          var _a2, _b2;
          if (this.cbs.onclosetag) {
            this.endIndex = this.startIndex;
            for (var index2 = this.stack.length; index2 > 0; this.cbs.onclosetag(this.stack[--index2], true))
              ;
          }
          (_b2 = (_a2 = this.cbs).onend) === null || _b2 === void 0 ? void 0 : _b2.call(_a2);
        };
        Parser2.prototype.reset = function() {
          var _a2, _b2, _c, _d;
          (_b2 = (_a2 = this.cbs).onreset) === null || _b2 === void 0 ? void 0 : _b2.call(_a2);
          this.tokenizer.reset();
          this.tagname = "";
          this.attribname = "";
          this.attribs = null;
          this.stack.length = 0;
          this.startIndex = 0;
          this.endIndex = 0;
          (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);
          this.buffers.length = 0;
          this.bufferOffset = 0;
          this.writeIndex = 0;
          this.ended = false;
        };
        Parser2.prototype.parseComplete = function(data2) {
          this.reset();
          this.end(data2);
        };
        Parser2.prototype.getSlice = function(start2, end2) {
          while (start2 - this.bufferOffset >= this.buffers[0].length) {
            this.shiftBuffer();
          }
          var slice2 = this.buffers[0].slice(start2 - this.bufferOffset, end2 - this.bufferOffset);
          while (end2 - this.bufferOffset > this.buffers[0].length) {
            this.shiftBuffer();
            slice2 += this.buffers[0].slice(0, end2 - this.bufferOffset);
          }
          return slice2;
        };
        Parser2.prototype.shiftBuffer = function() {
          this.bufferOffset += this.buffers[0].length;
          this.writeIndex--;
          this.buffers.shift();
        };
        Parser2.prototype.write = function(chunk3) {
          var _a2, _b2;
          if (this.ended) {
            (_b2 = (_a2 = this.cbs).onerror) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, new Error(".write() after done!"));
            return;
          }
          this.buffers.push(chunk3);
          if (this.tokenizer.running) {
            this.tokenizer.write(chunk3);
            this.writeIndex++;
          }
        };
        Parser2.prototype.end = function(chunk3) {
          var _a2, _b2;
          if (this.ended) {
            (_b2 = (_a2 = this.cbs).onerror) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, new Error(".end() after done!"));
            return;
          }
          if (chunk3)
            this.write(chunk3);
          this.ended = true;
          this.tokenizer.end();
        };
        Parser2.prototype.pause = function() {
          this.tokenizer.pause();
        };
        Parser2.prototype.resume = function() {
          this.tokenizer.resume();
          while (this.tokenizer.running && this.writeIndex < this.buffers.length) {
            this.tokenizer.write(this.buffers[this.writeIndex++]);
          }
          if (this.ended)
            this.tokenizer.end();
        };
        Parser2.prototype.parseChunk = function(chunk3) {
          this.write(chunk3);
        };
        Parser2.prototype.done = function(chunk3) {
          this.end(chunk3);
        };
        return Parser2;
      })()
    );
    exports.Parser = Parser;
  }
});

// ../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/index.js
var require_lib11 = __commonJS({
  "../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;
    var Parser_js_1 = require_Parser();
    var Parser_js_2 = require_Parser();
    Object.defineProperty(exports, "Parser", { enumerable: true, get: function() {
      return Parser_js_2.Parser;
    } });
    var domhandler_1 = require_lib4();
    var domhandler_2 = require_lib4();
    Object.defineProperty(exports, "DomHandler", { enumerable: true, get: function() {
      return domhandler_2.DomHandler;
    } });
    Object.defineProperty(exports, "DefaultHandler", { enumerable: true, get: function() {
      return domhandler_2.DomHandler;
    } });
    function parseDocument(data2, options) {
      var handler = new domhandler_1.DomHandler(void 0, options);
      new Parser_js_1.Parser(handler, options).end(data2);
      return handler.root;
    }
    exports.parseDocument = parseDocument;
    function parseDOM(data2, options) {
      return parseDocument(data2, options).children;
    }
    exports.parseDOM = parseDOM;
    function createDomStream(callback, options, elementCallback) {
      var handler = new domhandler_1.DomHandler(callback, options, elementCallback);
      return new Parser_js_1.Parser(handler, options);
    }
    exports.createDomStream = createDomStream;
    var Tokenizer_js_1 = require_Tokenizer();
    Object.defineProperty(exports, "Tokenizer", { enumerable: true, get: function() {
      return __importDefault2(Tokenizer_js_1).default;
    } });
    exports.ElementType = __importStar2(require_lib3());
    var domutils_1 = require_lib7();
    var domutils_2 = require_lib7();
    Object.defineProperty(exports, "getFeed", { enumerable: true, get: function() {
      return domutils_2.getFeed;
    } });
    var parseFeedDefaultOptions = { xmlMode: true };
    function parseFeed(feed, options) {
      if (options === void 0) {
        options = parseFeedDefaultOptions;
      }
      return (0, domutils_1.getFeed)(parseDOM(feed, options));
    }
    exports.parseFeed = parseFeed;
    exports.DomUtils = __importStar2(require_lib7());
  }
});

// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/index.js
var require_lib12 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __exportStar2 = exports && exports.__exportStar || function(m3, exports2) {
      for (var p3 in m3) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p3)) __createBinding2(exports2, m3, p3);
    };
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.root = exports.parseHTML = exports.merge = exports.contains = exports.text = exports.xml = exports.html = exports.load = void 0;
    __exportStar2(require_types(), exports);
    var load_js_1 = require_load();
    var parse_js_1 = require_parse4();
    var parse5_adapter_js_1 = require_parse5_adapter();
    var dom_serializer_1 = __importDefault2(require_lib6());
    var htmlparser2_1 = require_lib11();
    var parse3 = (0, parse_js_1.getParse)(function(content, options, isDocument, context) {
      return options.xmlMode || options._useHtmlParser2 ? (0, htmlparser2_1.parseDocument)(content, options) : (0, parse5_adapter_js_1.parseWithParse5)(content, options, isDocument, context);
    });
    exports.load = (0, load_js_1.getLoad)(parse3, function(dom, options) {
      return options.xmlMode || options._useHtmlParser2 ? (0, dom_serializer_1.default)(dom, options) : (0, parse5_adapter_js_1.renderWithParse5)(dom);
    });
    exports.default = (0, exports.load)([]);
    var static_js_1 = require_static();
    Object.defineProperty(exports, "html", { enumerable: true, get: function() {
      return static_js_1.html;
    } });
    Object.defineProperty(exports, "xml", { enumerable: true, get: function() {
      return static_js_1.xml;
    } });
    Object.defineProperty(exports, "text", { enumerable: true, get: function() {
      return static_js_1.text;
    } });
    var staticMethods = __importStar2(require_static());
    exports.contains = staticMethods.contains;
    exports.merge = staticMethods.merge;
    exports.parseHTML = staticMethods.parseHTML;
    exports.root = staticMethods.root;
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/general.js
var require_general2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/general.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.URL_WITH_COMMAS_REGEX = exports.URL_NO_COMMAS_REGEX = void 0;
    exports.isDocker = isDocker2;
    exports.isContainerized = isContainerized2;
    exports.isLambda = isLambda2;
    exports.getCgroupsVersion = getCgroupsVersion2;
    exports.weightedAvg = weightedAvg2;
    exports.sleep = sleep2;
    exports.snakeCaseToCamelCase = snakeCaseToCamelCase2;
    exports.expandShadowRoots = expandShadowRoots2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var promises_1 = tslib_1.__importDefault(__require("node:fs/promises"));
    var promises_2 = __require("node:timers/promises");
    exports.URL_NO_COMMAS_REGEX = /https?:\/\/(www\.)?([\p{L}0-9]|[\p{L}0-9][-\p{L}0-9@:%._+~#=]{0,254}[\p{L}0-9])\.[a-z]{2,63}(:\d{1,5})?(\/[-\p{L}0-9@:%_+.~#?&/=()]*)?/giu;
    exports.URL_WITH_COMMAS_REGEX = /https?:\/\/(www\.)?([\p{L}0-9]|[\p{L}0-9][-\p{L}0-9@:%._+~#=]{0,254}[\p{L}0-9])\.[a-z]{2,63}(:\d{1,5})?(\/[-\p{L}0-9@:%_+,.~#?&/=()]*)?/giu;
    var isDockerPromiseCache;
    async function createIsDockerPromise() {
      const promise1 = promises_1.default.stat("/.dockerenv").then(() => true).catch(() => false);
      const promise2 = promises_1.default.readFile("/proc/self/cgroup", "utf8").then((content) => content.includes("docker")).catch(() => false);
      const [result1, result2] = await Promise.all([promise1, promise2]);
      return result1 || result2;
    }
    async function isDocker2(forceReset) {
      if (!isDockerPromiseCache || forceReset)
        isDockerPromiseCache = createIsDockerPromise();
      return isDockerPromiseCache;
    }
    var isContainerizedResult;
    async function isContainerized2() {
      if (isContainerizedResult !== void 0) {
        return isContainerizedResult;
      }
      if (isLambda2()) {
        isContainerizedResult = false;
        return isContainerizedResult;
      }
      const dockerenvCheck = promises_1.default.stat("/.dockerenv").then(() => true).catch(() => false);
      const cgroupCheck = promises_1.default.readFile("/proc/self/cgroup", "utf8").then((content) => content.includes("docker")).catch(() => false);
      const [dockerenvResult, cgroupResult] = await Promise.all([dockerenvCheck, cgroupCheck]);
      isContainerizedResult = dockerenvResult || cgroupResult || !!process.env.KUBERNETES_SERVICE_HOST;
      return isContainerizedResult;
    }
    function isLambda2() {
      return !!process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE;
    }
    var _cgroupsVersion;
    async function getCgroupsVersion2(forceReset) {
      if (_cgroupsVersion !== void 0 && !forceReset) {
        return _cgroupsVersion;
      }
      try {
        await promises_1.default.access("/sys/fs/cgroup/");
      } catch (e4) {
        _cgroupsVersion = null;
        return null;
      }
      _cgroupsVersion = "V1";
      try {
        await promises_1.default.access("/sys/fs/cgroup/memory/");
      } catch (e4) {
        _cgroupsVersion = "V2";
      }
      return _cgroupsVersion;
    }
    function weightedAvg2(arrValues, arrWeights) {
      const result = arrValues.map((value2, i5) => {
        const weight = arrWeights[i5];
        const sum = value2 * weight;
        return [sum, weight];
      }).reduce((p3, c6) => [p3[0] + c6[0], p3[1] + c6[1]], [0, 0]);
      return result[0] / result[1];
    }
    async function sleep2(millis) {
      return (0, promises_2.setTimeout)(millis ?? void 0);
    }
    function snakeCaseToCamelCase2(snakeCaseStr) {
      return snakeCaseStr.toLowerCase().split("_").map((part, index2) => {
        return index2 > 0 ? part.charAt(0).toUpperCase() + part.slice(1) : part;
      }).join("");
    }
    function expandShadowRoots2(document2) {
      function getShadowDomHtml(shadowRoot) {
        let shadowHTML = "";
        for (const el of shadowRoot.childNodes) {
          shadowHTML += el.nodeValue ?? el.outerHTML ?? "";
        }
        return shadowHTML;
      }
      function replaceShadowDomsWithHtml(rootElement) {
        for (const el of rootElement.querySelectorAll("*")) {
          if (el.shadowRoot) {
            replaceShadowDomsWithHtml(el.shadowRoot);
            let content = el.getHTML?.({ serializableShadowRoots: true }).trim();
            if (!(content?.length > 0)) {
              content = getShadowDomHtml(el.shadowRoot) ?? "";
            }
            el.innerHTML += content;
          }
        }
      }
      replaceShadowDomsWithHtml(document2.body);
      return document2.documentElement.outerHTML;
    }
  }
});

// ../../node_modules/.pnpm/@sindresorhus+is@7.2.0/node_modules/@sindresorhus/is/distribution/utilities.js
function keysOf(value2) {
  return Object.keys(value2);
}
var init_utilities = __esm({
  "../../node_modules/.pnpm/@sindresorhus+is@7.2.0/node_modules/@sindresorhus/is/distribution/utilities.js"() {
  }
});

// ../../node_modules/.pnpm/@sindresorhus+is@7.2.0/node_modules/@sindresorhus/is/distribution/index.js
function isTypedArrayName(name) {
  return typedArrayTypeNames.includes(name);
}
function isObjectTypeName(name) {
  return objectTypeNames.includes(name);
}
function isPrimitiveTypeName(name) {
  return primitiveTypeNames.includes(name);
}
function detect(value2) {
  if (value2 === null) {
    return "null";
  }
  switch (typeof value2) {
    case "undefined": {
      return "undefined";
    }
    case "string": {
      return "string";
    }
    case "number": {
      return Number.isNaN(value2) ? "NaN" : "number";
    }
    case "boolean": {
      return "boolean";
    }
    case "function": {
      return "Function";
    }
    case "bigint": {
      return "bigint";
    }
    case "symbol": {
      return "symbol";
    }
    default:
  }
  if (isObservable(value2)) {
    return "Observable";
  }
  if (isArray(value2)) {
    return "Array";
  }
  if (isBuffer(value2)) {
    return "Buffer";
  }
  const tagType = getObjectType(value2);
  if (tagType && tagType !== "Object") {
    return tagType;
  }
  if (hasPromiseApi(value2)) {
    return "Promise";
  }
  if (value2 instanceof String || value2 instanceof Boolean || value2 instanceof Number) {
    throw new TypeError("Please don't use object wrappers for primitive types");
  }
  return "Object";
}
function hasPromiseApi(value2) {
  return isFunction(value2?.then) && isFunction(value2?.catch);
}
function isAbsoluteModule2(remainder) {
  return (value2) => isInteger(value2) && Math.abs(value2 % 2) === remainder;
}
function validatePredicateArray(predicateArray, allowEmpty) {
  if (predicateArray.length === 0) {
    if (allowEmpty) {
    } else {
      throw new TypeError("Invalid predicate array");
    }
    return;
  }
  for (const predicate of predicateArray) {
    if (!isFunction(predicate)) {
      throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);
    }
  }
}
function isAll(predicate, ...values) {
  if (Array.isArray(predicate)) {
    const predicateArray = predicate;
    validatePredicateArray(predicateArray, values.length === 0);
    const combinedPredicate = (value2) => predicateArray.every((singlePredicate) => singlePredicate(value2));
    if (values.length === 0) {
      return combinedPredicate;
    }
    return predicateOnArray(Array.prototype.every, combinedPredicate, values);
  }
  return predicateOnArray(Array.prototype.every, predicate, values);
}
function isAny(predicate, ...values) {
  if (Array.isArray(predicate)) {
    const predicateArray = predicate;
    validatePredicateArray(predicateArray, values.length === 0);
    const combinedPredicate = (value2) => predicateArray.some((singlePredicate) => singlePredicate(value2));
    if (values.length === 0) {
      return combinedPredicate;
    }
    return predicateOnArray(Array.prototype.some, combinedPredicate, values);
  }
  return predicateOnArray(Array.prototype.some, predicate, values);
}
function isOptional(value2, predicate) {
  return isUndefined(value2) || predicate(value2);
}
function isArray(value2, assertion) {
  if (!Array.isArray(value2)) {
    return false;
  }
  if (!isFunction(assertion)) {
    return true;
  }
  return value2.every((element) => assertion(element));
}
function isArrayBuffer(value2) {
  return getObjectType(value2) === "ArrayBuffer";
}
function isArrayLike(value2) {
  return !isNullOrUndefined(value2) && !isFunction(value2) && isValidLength(value2.length);
}
function isAsyncFunction(value2) {
  return getObjectType(value2) === "AsyncFunction";
}
function isAsyncGenerator(value2) {
  return isAsyncIterable(value2) && isFunction(value2.next) && isFunction(value2.throw);
}
function isAsyncGeneratorFunction(value2) {
  return getObjectType(value2) === "AsyncGeneratorFunction";
}
function isAsyncIterable(value2) {
  return isFunction(value2?.[Symbol.asyncIterator]);
}
function isBigint(value2) {
  return typeof value2 === "bigint";
}
function isBigInt64Array(value2) {
  return getObjectType(value2) === "BigInt64Array";
}
function isBigUint64Array(value2) {
  return getObjectType(value2) === "BigUint64Array";
}
function isBlob(value2) {
  return getObjectType(value2) === "Blob";
}
function isBoolean(value2) {
  return value2 === true || value2 === false;
}
function isBoundFunction(value2) {
  return isFunction(value2) && !Object.hasOwn(value2, "prototype");
}
function isBuffer(value2) {
  return value2?.constructor?.isBuffer?.(value2) ?? false;
}
function isClass(value2) {
  return isFunction(value2) && /^class(\s+|{)/.test(value2.toString());
}
function isDataView(value2) {
  return getObjectType(value2) === "DataView";
}
function isDate(value2) {
  return getObjectType(value2) === "Date";
}
function isDirectInstanceOf(instance, class_) {
  if (instance === void 0 || instance === null) {
    return false;
  }
  return Object.getPrototypeOf(instance) === class_.prototype;
}
function isEmptyArray(value2) {
  return isArray(value2) && value2.length === 0;
}
function isEmptyMap(value2) {
  return isMap(value2) && value2.size === 0;
}
function isEmptyObject(value2) {
  return isObject(value2) && !isMap(value2) && !isSet(value2) && Object.keys(value2).length === 0;
}
function isEmptySet(value2) {
  return isSet(value2) && value2.size === 0;
}
function isEmptyString(value2) {
  return isString(value2) && value2.length === 0;
}
function isEmptyStringOrWhitespace(value2) {
  return isEmptyString(value2) || isWhitespaceString(value2);
}
function isEnumCase(value2, targetEnum) {
  return Object.values(targetEnum).includes(value2);
}
function isError(value2) {
  return getObjectType(value2) === "Error";
}
function isEvenInteger(value2) {
  return isAbsoluteModule2(0)(value2);
}
function isFalsy(value2) {
  return !value2;
}
function isFloat32Array(value2) {
  return getObjectType(value2) === "Float32Array";
}
function isFloat64Array(value2) {
  return getObjectType(value2) === "Float64Array";
}
function isFormData(value2) {
  return getObjectType(value2) === "FormData";
}
function isFunction(value2) {
  return typeof value2 === "function";
}
function isGenerator(value2) {
  return isIterable(value2) && isFunction(value2?.next) && isFunction(value2?.throw);
}
function isGeneratorFunction(value2) {
  return getObjectType(value2) === "GeneratorFunction";
}
function isHtmlElement(value2) {
  return isObject(value2) && value2.nodeType === NODE_TYPE_ELEMENT && isString(value2.nodeName) && !isPlainObject(value2) && DOM_PROPERTIES_TO_CHECK.every((property) => property in value2);
}
function isInfinite(value2) {
  return value2 === Number.POSITIVE_INFINITY || value2 === Number.NEGATIVE_INFINITY;
}
function isInRange(value2, range2) {
  if (isNumber(range2)) {
    return value2 >= Math.min(0, range2) && value2 <= Math.max(range2, 0);
  }
  if (isArray(range2) && range2.length === 2) {
    return value2 >= Math.min(...range2) && value2 <= Math.max(...range2);
  }
  throw new TypeError(`Invalid range: ${JSON.stringify(range2)}`);
}
function isInt16Array(value2) {
  return getObjectType(value2) === "Int16Array";
}
function isInt32Array(value2) {
  return getObjectType(value2) === "Int32Array";
}
function isInt8Array(value2) {
  return getObjectType(value2) === "Int8Array";
}
function isInteger(value2) {
  return Number.isInteger(value2);
}
function isIterable(value2) {
  return isFunction(value2?.[Symbol.iterator]);
}
function isMap(value2) {
  return getObjectType(value2) === "Map";
}
function isNan(value2) {
  return Number.isNaN(value2);
}
function isNativePromise(value2) {
  return getObjectType(value2) === "Promise";
}
function isNegativeNumber(value2) {
  return isNumber(value2) && value2 < 0;
}
function isNodeStream(value2) {
  return isObject(value2) && isFunction(value2.pipe) && !isObservable(value2);
}
function isNonEmptyArray(value2) {
  return isArray(value2) && value2.length > 0;
}
function isNonEmptyMap(value2) {
  return isMap(value2) && value2.size > 0;
}
function isNonEmptyObject(value2) {
  return isObject(value2) && !isMap(value2) && !isSet(value2) && Object.keys(value2).length > 0;
}
function isNonEmptySet(value2) {
  return isSet(value2) && value2.size > 0;
}
function isNonEmptyString(value2) {
  return isString(value2) && value2.length > 0;
}
function isNonEmptyStringAndNotWhitespace(value2) {
  return isString(value2) && !isEmptyStringOrWhitespace(value2);
}
function isNull(value2) {
  return value2 === null;
}
function isNullOrUndefined(value2) {
  return isNull(value2) || isUndefined(value2);
}
function isNumber(value2) {
  return typeof value2 === "number" && !Number.isNaN(value2);
}
function isNumericString(value2) {
  return isString(value2) && !isEmptyStringOrWhitespace(value2) && !Number.isNaN(Number(value2));
}
function isObject(value2) {
  return !isNull(value2) && (typeof value2 === "object" || isFunction(value2));
}
function isObservable(value2) {
  if (!value2) {
    return false;
  }
  if (Symbol.observable !== void 0 && value2 === value2[Symbol.observable]?.()) {
    return true;
  }
  if (value2 === value2["@@observable"]?.()) {
    return true;
  }
  return false;
}
function isOddInteger(value2) {
  return isAbsoluteModule2(1)(value2);
}
function isPlainObject(value2) {
  if (typeof value2 !== "object" || value2 === null) {
    return false;
  }
  const prototype2 = Object.getPrototypeOf(value2);
  return (prototype2 === null || prototype2 === Object.prototype || Object.getPrototypeOf(prototype2) === null) && !(Symbol.toStringTag in value2) && !(Symbol.iterator in value2);
}
function isPositiveNumber(value2) {
  return isNumber(value2) && value2 > 0;
}
function isPrimitive(value2) {
  return isNull(value2) || isPrimitiveTypeName(typeof value2);
}
function isPromise(value2) {
  return isNativePromise(value2) || hasPromiseApi(value2);
}
function isPropertyKey(value2) {
  return isAny([isString, isNumber, isSymbol], value2);
}
function isRegExp(value2) {
  return getObjectType(value2) === "RegExp";
}
function isSafeInteger(value2) {
  return Number.isSafeInteger(value2);
}
function isSet(value2) {
  return getObjectType(value2) === "Set";
}
function isSharedArrayBuffer(value2) {
  return getObjectType(value2) === "SharedArrayBuffer";
}
function isString(value2) {
  return typeof value2 === "string";
}
function isSymbol(value2) {
  return typeof value2 === "symbol";
}
function isTruthy(value2) {
  return Boolean(value2);
}
function isTupleLike(value2, guards) {
  if (isArray(guards) && isArray(value2) && guards.length === value2.length) {
    return guards.every((guard, index2) => guard(value2[index2]));
  }
  return false;
}
function isTypedArray(value2) {
  return isTypedArrayName(getObjectType(value2));
}
function isUint16Array(value2) {
  return getObjectType(value2) === "Uint16Array";
}
function isUint32Array(value2) {
  return getObjectType(value2) === "Uint32Array";
}
function isUint8Array(value2) {
  return getObjectType(value2) === "Uint8Array";
}
function isUint8ClampedArray(value2) {
  return getObjectType(value2) === "Uint8ClampedArray";
}
function isUndefined(value2) {
  return value2 === void 0;
}
function isUrlInstance(value2) {
  return getObjectType(value2) === "URL";
}
function isUrlSearchParams(value2) {
  return getObjectType(value2) === "URLSearchParams";
}
function isUrlString(value2) {
  if (!isString(value2)) {
    return false;
  }
  try {
    new URL(value2);
    return true;
  } catch {
    return false;
  }
}
function isValidDate(value2) {
  return isDate(value2) && !isNan(Number(value2));
}
function isValidLength(value2) {
  return isSafeInteger(value2) && value2 >= 0;
}
function isWeakMap(value2) {
  return getObjectType(value2) === "WeakMap";
}
function isWeakRef(value2) {
  return getObjectType(value2) === "WeakRef";
}
function isWeakSet(value2) {
  return getObjectType(value2) === "WeakSet";
}
function isWhitespaceString(value2) {
  return isString(value2) && /^\s+$/.test(value2);
}
function predicateOnArray(method, predicate, values) {
  if (!isFunction(predicate)) {
    throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);
  }
  if (values.length === 0) {
    throw new TypeError("Invalid number of values");
  }
  return method.call(values, predicate);
}
function typeErrorMessage(description, value2) {
  return `Expected value which is \`${description}\`, received value of type \`${is(value2)}\`.`;
}
function unique(values) {
  return Array.from(new Set(values));
}
function typeErrorMessageMultipleValues(expectedType, values) {
  const uniqueExpectedTypes = unique((isArray(expectedType) ? expectedType : [expectedType]).map((value2) => `\`${value2}\``));
  const uniqueValueTypes = unique(values.map((value2) => `\`${is(value2)}\``));
  return `Expected values which are ${orFormatter.format(uniqueExpectedTypes)}. Received values of type${uniqueValueTypes.length > 1 ? "s" : ""} ${andFormatter.format(uniqueValueTypes)}.`;
}
function isIsMethodName(value2) {
  return isMethodNames.includes(value2);
}
function assertAll(predicate, ...values) {
  if (values.length === 0) {
    throw new TypeError("Invalid number of values");
  }
  if (!isAll(predicate, ...values)) {
    const predicateFunction = predicate;
    const expectedType = !Array.isArray(predicate) && isIsMethodName(predicateFunction.name) ? methodTypeMap[predicateFunction.name] : "predicate returns truthy for all values";
    throw new TypeError(typeErrorMessageMultipleValues(expectedType, values));
  }
}
function assertAny(predicate, ...values) {
  if (values.length === 0) {
    throw new TypeError("Invalid number of values");
  }
  if (!isAny(predicate, ...values)) {
    const predicates3 = Array.isArray(predicate) ? predicate : [predicate];
    const expectedTypes = predicates3.map((singlePredicate) => isIsMethodName(singlePredicate.name) ? methodTypeMap[singlePredicate.name] : "predicate returns truthy for any value");
    throw new TypeError(typeErrorMessageMultipleValues(expectedTypes, values));
  }
}
function assertOptional(value2, assertion, message) {
  if (!isUndefined(value2)) {
    assertion(value2, message);
  }
}
function assertArray(value2, assertion, message) {
  if (!isArray(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Array", value2));
  }
  if (assertion) {
    for (const element of value2) {
      assertion(element, message);
    }
  }
}
function assertArrayBuffer(value2, message) {
  if (!isArrayBuffer(value2)) {
    throw new TypeError(message ?? typeErrorMessage("ArrayBuffer", value2));
  }
}
function assertArrayLike(value2, message) {
  if (!isArrayLike(value2)) {
    throw new TypeError(message ?? typeErrorMessage("array-like", value2));
  }
}
function assertAsyncFunction(value2, message) {
  if (!isAsyncFunction(value2)) {
    throw new TypeError(message ?? typeErrorMessage("AsyncFunction", value2));
  }
}
function assertAsyncGenerator(value2, message) {
  if (!isAsyncGenerator(value2)) {
    throw new TypeError(message ?? typeErrorMessage("AsyncGenerator", value2));
  }
}
function assertAsyncGeneratorFunction(value2, message) {
  if (!isAsyncGeneratorFunction(value2)) {
    throw new TypeError(message ?? typeErrorMessage("AsyncGeneratorFunction", value2));
  }
}
function assertAsyncIterable(value2, message) {
  if (!isAsyncIterable(value2)) {
    throw new TypeError(message ?? typeErrorMessage("AsyncIterable", value2));
  }
}
function assertBigint(value2, message) {
  if (!isBigint(value2)) {
    throw new TypeError(message ?? typeErrorMessage("bigint", value2));
  }
}
function assertBigInt64Array(value2, message) {
  if (!isBigInt64Array(value2)) {
    throw new TypeError(message ?? typeErrorMessage("BigInt64Array", value2));
  }
}
function assertBigUint64Array(value2, message) {
  if (!isBigUint64Array(value2)) {
    throw new TypeError(message ?? typeErrorMessage("BigUint64Array", value2));
  }
}
function assertBlob(value2, message) {
  if (!isBlob(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Blob", value2));
  }
}
function assertBoolean(value2, message) {
  if (!isBoolean(value2)) {
    throw new TypeError(message ?? typeErrorMessage("boolean", value2));
  }
}
function assertBoundFunction(value2, message) {
  if (!isBoundFunction(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Function", value2));
  }
}
function assertBuffer(value2, message) {
  if (!isBuffer(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Buffer", value2));
  }
}
function assertClass(value2, message) {
  if (!isClass(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Class", value2));
  }
}
function assertDataView(value2, message) {
  if (!isDataView(value2)) {
    throw new TypeError(message ?? typeErrorMessage("DataView", value2));
  }
}
function assertDate(value2, message) {
  if (!isDate(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Date", value2));
  }
}
function assertDirectInstanceOf(instance, class_, message) {
  if (!isDirectInstanceOf(instance, class_)) {
    throw new TypeError(message ?? typeErrorMessage("T", instance));
  }
}
function assertEmptyArray(value2, message) {
  if (!isEmptyArray(value2)) {
    throw new TypeError(message ?? typeErrorMessage("empty array", value2));
  }
}
function assertEmptyMap(value2, message) {
  if (!isEmptyMap(value2)) {
    throw new TypeError(message ?? typeErrorMessage("empty map", value2));
  }
}
function assertEmptyObject(value2, message) {
  if (!isEmptyObject(value2)) {
    throw new TypeError(message ?? typeErrorMessage("empty object", value2));
  }
}
function assertEmptySet(value2, message) {
  if (!isEmptySet(value2)) {
    throw new TypeError(message ?? typeErrorMessage("empty set", value2));
  }
}
function assertEmptyString(value2, message) {
  if (!isEmptyString(value2)) {
    throw new TypeError(message ?? typeErrorMessage("empty string", value2));
  }
}
function assertEmptyStringOrWhitespace(value2, message) {
  if (!isEmptyStringOrWhitespace(value2)) {
    throw new TypeError(message ?? typeErrorMessage("empty string or whitespace", value2));
  }
}
function assertEnumCase(value2, targetEnum, message) {
  if (!isEnumCase(value2, targetEnum)) {
    throw new TypeError(message ?? typeErrorMessage("EnumCase", value2));
  }
}
function assertError(value2, message) {
  if (!isError(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Error", value2));
  }
}
function assertEvenInteger(value2, message) {
  if (!isEvenInteger(value2)) {
    throw new TypeError(message ?? typeErrorMessage("even integer", value2));
  }
}
function assertFalsy(value2, message) {
  if (!isFalsy(value2)) {
    throw new TypeError(message ?? typeErrorMessage("falsy", value2));
  }
}
function assertFloat32Array(value2, message) {
  if (!isFloat32Array(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Float32Array", value2));
  }
}
function assertFloat64Array(value2, message) {
  if (!isFloat64Array(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Float64Array", value2));
  }
}
function assertFormData(value2, message) {
  if (!isFormData(value2)) {
    throw new TypeError(message ?? typeErrorMessage("FormData", value2));
  }
}
function assertFunction(value2, message) {
  if (!isFunction(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Function", value2));
  }
}
function assertGenerator(value2, message) {
  if (!isGenerator(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Generator", value2));
  }
}
function assertGeneratorFunction(value2, message) {
  if (!isGeneratorFunction(value2)) {
    throw new TypeError(message ?? typeErrorMessage("GeneratorFunction", value2));
  }
}
function assertHtmlElement(value2, message) {
  if (!isHtmlElement(value2)) {
    throw new TypeError(message ?? typeErrorMessage("HTMLElement", value2));
  }
}
function assertInfinite(value2, message) {
  if (!isInfinite(value2)) {
    throw new TypeError(message ?? typeErrorMessage("infinite number", value2));
  }
}
function assertInRange(value2, range2, message) {
  if (!isInRange(value2, range2)) {
    throw new TypeError(message ?? typeErrorMessage("in range", value2));
  }
}
function assertInt16Array(value2, message) {
  if (!isInt16Array(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Int16Array", value2));
  }
}
function assertInt32Array(value2, message) {
  if (!isInt32Array(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Int32Array", value2));
  }
}
function assertInt8Array(value2, message) {
  if (!isInt8Array(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Int8Array", value2));
  }
}
function assertInteger(value2, message) {
  if (!isInteger(value2)) {
    throw new TypeError(message ?? typeErrorMessage("integer", value2));
  }
}
function assertIterable(value2, message) {
  if (!isIterable(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Iterable", value2));
  }
}
function assertMap(value2, message) {
  if (!isMap(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Map", value2));
  }
}
function assertNan(value2, message) {
  if (!isNan(value2)) {
    throw new TypeError(message ?? typeErrorMessage("NaN", value2));
  }
}
function assertNativePromise(value2, message) {
  if (!isNativePromise(value2)) {
    throw new TypeError(message ?? typeErrorMessage("native Promise", value2));
  }
}
function assertNegativeNumber(value2, message) {
  if (!isNegativeNumber(value2)) {
    throw new TypeError(message ?? typeErrorMessage("negative number", value2));
  }
}
function assertNodeStream(value2, message) {
  if (!isNodeStream(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Node.js Stream", value2));
  }
}
function assertNonEmptyArray(value2, message) {
  if (!isNonEmptyArray(value2)) {
    throw new TypeError(message ?? typeErrorMessage("non-empty array", value2));
  }
}
function assertNonEmptyMap(value2, message) {
  if (!isNonEmptyMap(value2)) {
    throw new TypeError(message ?? typeErrorMessage("non-empty map", value2));
  }
}
function assertNonEmptyObject(value2, message) {
  if (!isNonEmptyObject(value2)) {
    throw new TypeError(message ?? typeErrorMessage("non-empty object", value2));
  }
}
function assertNonEmptySet(value2, message) {
  if (!isNonEmptySet(value2)) {
    throw new TypeError(message ?? typeErrorMessage("non-empty set", value2));
  }
}
function assertNonEmptyString(value2, message) {
  if (!isNonEmptyString(value2)) {
    throw new TypeError(message ?? typeErrorMessage("non-empty string", value2));
  }
}
function assertNonEmptyStringAndNotWhitespace(value2, message) {
  if (!isNonEmptyStringAndNotWhitespace(value2)) {
    throw new TypeError(message ?? typeErrorMessage("non-empty string and not whitespace", value2));
  }
}
function assertNull(value2, message) {
  if (!isNull(value2)) {
    throw new TypeError(message ?? typeErrorMessage("null", value2));
  }
}
function assertNullOrUndefined(value2, message) {
  if (!isNullOrUndefined(value2)) {
    throw new TypeError(message ?? typeErrorMessage("null or undefined", value2));
  }
}
function assertNumber(value2, message) {
  if (!isNumber(value2)) {
    throw new TypeError(message ?? typeErrorMessage("number", value2));
  }
}
function assertNumericString(value2, message) {
  if (!isNumericString(value2)) {
    throw new TypeError(message ?? typeErrorMessage("string with a number", value2));
  }
}
function assertObject(value2, message) {
  if (!isObject(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Object", value2));
  }
}
function assertObservable(value2, message) {
  if (!isObservable(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Observable", value2));
  }
}
function assertOddInteger(value2, message) {
  if (!isOddInteger(value2)) {
    throw new TypeError(message ?? typeErrorMessage("odd integer", value2));
  }
}
function assertPlainObject(value2, message) {
  if (!isPlainObject(value2)) {
    throw new TypeError(message ?? typeErrorMessage("plain object", value2));
  }
}
function assertPositiveNumber(value2, message) {
  if (!isPositiveNumber(value2)) {
    throw new TypeError(message ?? typeErrorMessage("positive number", value2));
  }
}
function assertPrimitive(value2, message) {
  if (!isPrimitive(value2)) {
    throw new TypeError(message ?? typeErrorMessage("primitive", value2));
  }
}
function assertPromise(value2, message) {
  if (!isPromise(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Promise", value2));
  }
}
function assertPropertyKey(value2, message) {
  if (!isPropertyKey(value2)) {
    throw new TypeError(message ?? typeErrorMessage("PropertyKey", value2));
  }
}
function assertRegExp(value2, message) {
  if (!isRegExp(value2)) {
    throw new TypeError(message ?? typeErrorMessage("RegExp", value2));
  }
}
function assertSafeInteger(value2, message) {
  if (!isSafeInteger(value2)) {
    throw new TypeError(message ?? typeErrorMessage("integer", value2));
  }
}
function assertSet(value2, message) {
  if (!isSet(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Set", value2));
  }
}
function assertSharedArrayBuffer(value2, message) {
  if (!isSharedArrayBuffer(value2)) {
    throw new TypeError(message ?? typeErrorMessage("SharedArrayBuffer", value2));
  }
}
function assertString(value2, message) {
  if (!isString(value2)) {
    throw new TypeError(message ?? typeErrorMessage("string", value2));
  }
}
function assertSymbol(value2, message) {
  if (!isSymbol(value2)) {
    throw new TypeError(message ?? typeErrorMessage("symbol", value2));
  }
}
function assertTruthy(value2, message) {
  if (!isTruthy(value2)) {
    throw new TypeError(message ?? typeErrorMessage("truthy", value2));
  }
}
function assertTupleLike(value2, guards, message) {
  if (!isTupleLike(value2, guards)) {
    throw new TypeError(message ?? typeErrorMessage("tuple-like", value2));
  }
}
function assertTypedArray(value2, message) {
  if (!isTypedArray(value2)) {
    throw new TypeError(message ?? typeErrorMessage("TypedArray", value2));
  }
}
function assertUint16Array(value2, message) {
  if (!isUint16Array(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Uint16Array", value2));
  }
}
function assertUint32Array(value2, message) {
  if (!isUint32Array(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Uint32Array", value2));
  }
}
function assertUint8Array(value2, message) {
  if (!isUint8Array(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Uint8Array", value2));
  }
}
function assertUint8ClampedArray(value2, message) {
  if (!isUint8ClampedArray(value2)) {
    throw new TypeError(message ?? typeErrorMessage("Uint8ClampedArray", value2));
  }
}
function assertUndefined(value2, message) {
  if (!isUndefined(value2)) {
    throw new TypeError(message ?? typeErrorMessage("undefined", value2));
  }
}
function assertUrlInstance(value2, message) {
  if (!isUrlInstance(value2)) {
    throw new TypeError(message ?? typeErrorMessage("URL", value2));
  }
}
function assertUrlSearchParams(value2, message) {
  if (!isUrlSearchParams(value2)) {
    throw new TypeError(message ?? typeErrorMessage("URLSearchParams", value2));
  }
}
function assertUrlString(value2, message) {
  if (!isUrlString(value2)) {
    throw new TypeError(message ?? typeErrorMessage("string with a URL", value2));
  }
}
function assertValidDate(value2, message) {
  if (!isValidDate(value2)) {
    throw new TypeError(message ?? typeErrorMessage("valid Date", value2));
  }
}
function assertValidLength(value2, message) {
  if (!isValidLength(value2)) {
    throw new TypeError(message ?? typeErrorMessage("valid length", value2));
  }
}
function assertWeakMap(value2, message) {
  if (!isWeakMap(value2)) {
    throw new TypeError(message ?? typeErrorMessage("WeakMap", value2));
  }
}
function assertWeakRef(value2, message) {
  if (!isWeakRef(value2)) {
    throw new TypeError(message ?? typeErrorMessage("WeakRef", value2));
  }
}
function assertWeakSet(value2, message) {
  if (!isWeakSet(value2)) {
    throw new TypeError(message ?? typeErrorMessage("WeakSet", value2));
  }
}
function assertWhitespaceString(value2, message) {
  if (!isWhitespaceString(value2)) {
    throw new TypeError(message ?? typeErrorMessage("whitespace string", value2));
  }
}
var typedArrayTypeNames, objectTypeNames, primitiveTypeNames, assertionTypeDescriptions, getObjectType, is, NODE_TYPE_ELEMENT, DOM_PROPERTIES_TO_CHECK, andFormatter, orFormatter, assert, methodTypeMap, isMethodNames, distribution_default;
var init_distribution = __esm({
  "../../node_modules/.pnpm/@sindresorhus+is@7.2.0/node_modules/@sindresorhus/is/distribution/index.js"() {
    init_utilities();
    typedArrayTypeNames = [
      "Int8Array",
      "Uint8Array",
      "Uint8ClampedArray",
      "Int16Array",
      "Uint16Array",
      "Int32Array",
      "Uint32Array",
      "Float32Array",
      "Float64Array",
      "BigInt64Array",
      "BigUint64Array"
    ];
    objectTypeNames = [
      "Function",
      "Generator",
      "AsyncGenerator",
      "GeneratorFunction",
      "AsyncGeneratorFunction",
      "AsyncFunction",
      "Observable",
      "Array",
      "Buffer",
      "Blob",
      "Object",
      "RegExp",
      "Date",
      "Error",
      "Map",
      "Set",
      "WeakMap",
      "WeakSet",
      "WeakRef",
      "ArrayBuffer",
      "SharedArrayBuffer",
      "DataView",
      "Promise",
      "URL",
      "FormData",
      "URLSearchParams",
      "HTMLElement",
      "NaN",
      ...typedArrayTypeNames
    ];
    primitiveTypeNames = [
      "null",
      "undefined",
      "string",
      "number",
      "bigint",
      "boolean",
      "symbol"
    ];
    assertionTypeDescriptions = [
      "positive number",
      "negative number",
      "Class",
      "string with a number",
      "null or undefined",
      "Iterable",
      "AsyncIterable",
      "native Promise",
      "EnumCase",
      "string with a URL",
      "truthy",
      "falsy",
      "primitive",
      "integer",
      "plain object",
      "TypedArray",
      "array-like",
      "tuple-like",
      "Node.js Stream",
      "infinite number",
      "empty array",
      "non-empty array",
      "empty string",
      "empty string or whitespace",
      "non-empty string",
      "non-empty string and not whitespace",
      "empty object",
      "non-empty object",
      "empty set",
      "non-empty set",
      "empty map",
      "non-empty map",
      "PropertyKey",
      "even integer",
      "odd integer",
      "T",
      "in range",
      "predicate returns truthy for any value",
      "predicate returns truthy for all values",
      "valid Date",
      "valid length",
      "whitespace string",
      ...objectTypeNames,
      ...primitiveTypeNames
    ];
    getObjectType = (value2) => {
      const objectTypeName = Object.prototype.toString.call(value2).slice(8, -1);
      if (/HTML\w+Element/.test(objectTypeName) && isHtmlElement(value2)) {
        return "HTMLElement";
      }
      if (isObjectTypeName(objectTypeName)) {
        return objectTypeName;
      }
      return void 0;
    };
    is = Object.assign(detect, {
      all: isAll,
      any: isAny,
      array: isArray,
      arrayBuffer: isArrayBuffer,
      arrayLike: isArrayLike,
      asyncFunction: isAsyncFunction,
      asyncGenerator: isAsyncGenerator,
      asyncGeneratorFunction: isAsyncGeneratorFunction,
      asyncIterable: isAsyncIterable,
      bigint: isBigint,
      bigInt64Array: isBigInt64Array,
      bigUint64Array: isBigUint64Array,
      blob: isBlob,
      boolean: isBoolean,
      boundFunction: isBoundFunction,
      buffer: isBuffer,
      class: isClass,
      dataView: isDataView,
      date: isDate,
      detect,
      directInstanceOf: isDirectInstanceOf,
      emptyArray: isEmptyArray,
      emptyMap: isEmptyMap,
      emptyObject: isEmptyObject,
      emptySet: isEmptySet,
      emptyString: isEmptyString,
      emptyStringOrWhitespace: isEmptyStringOrWhitespace,
      enumCase: isEnumCase,
      error: isError,
      evenInteger: isEvenInteger,
      falsy: isFalsy,
      float32Array: isFloat32Array,
      float64Array: isFloat64Array,
      formData: isFormData,
      function: isFunction,
      generator: isGenerator,
      generatorFunction: isGeneratorFunction,
      htmlElement: isHtmlElement,
      infinite: isInfinite,
      inRange: isInRange,
      int16Array: isInt16Array,
      int32Array: isInt32Array,
      int8Array: isInt8Array,
      integer: isInteger,
      iterable: isIterable,
      map: isMap,
      nan: isNan,
      nativePromise: isNativePromise,
      negativeNumber: isNegativeNumber,
      nodeStream: isNodeStream,
      nonEmptyArray: isNonEmptyArray,
      nonEmptyMap: isNonEmptyMap,
      nonEmptyObject: isNonEmptyObject,
      nonEmptySet: isNonEmptySet,
      nonEmptyString: isNonEmptyString,
      nonEmptyStringAndNotWhitespace: isNonEmptyStringAndNotWhitespace,
      null: isNull,
      nullOrUndefined: isNullOrUndefined,
      number: isNumber,
      numericString: isNumericString,
      object: isObject,
      observable: isObservable,
      oddInteger: isOddInteger,
      plainObject: isPlainObject,
      positiveNumber: isPositiveNumber,
      primitive: isPrimitive,
      promise: isPromise,
      propertyKey: isPropertyKey,
      regExp: isRegExp,
      safeInteger: isSafeInteger,
      set: isSet,
      sharedArrayBuffer: isSharedArrayBuffer,
      string: isString,
      symbol: isSymbol,
      truthy: isTruthy,
      tupleLike: isTupleLike,
      typedArray: isTypedArray,
      uint16Array: isUint16Array,
      uint32Array: isUint32Array,
      uint8Array: isUint8Array,
      uint8ClampedArray: isUint8ClampedArray,
      undefined: isUndefined,
      urlInstance: isUrlInstance,
      urlSearchParams: isUrlSearchParams,
      urlString: isUrlString,
      optional: isOptional,
      validDate: isValidDate,
      validLength: isValidLength,
      weakMap: isWeakMap,
      weakRef: isWeakRef,
      weakSet: isWeakSet,
      whitespaceString: isWhitespaceString
    });
    NODE_TYPE_ELEMENT = 1;
    DOM_PROPERTIES_TO_CHECK = [
      "innerHTML",
      "ownerDocument",
      "style",
      "attributes",
      "nodeValue"
    ];
    andFormatter = new Intl.ListFormat("en", { style: "long", type: "conjunction" });
    orFormatter = new Intl.ListFormat("en", { style: "long", type: "disjunction" });
    assert = {
      all: assertAll,
      any: assertAny,
      optional: assertOptional,
      array: assertArray,
      arrayBuffer: assertArrayBuffer,
      arrayLike: assertArrayLike,
      asyncFunction: assertAsyncFunction,
      asyncGenerator: assertAsyncGenerator,
      asyncGeneratorFunction: assertAsyncGeneratorFunction,
      asyncIterable: assertAsyncIterable,
      bigint: assertBigint,
      bigInt64Array: assertBigInt64Array,
      bigUint64Array: assertBigUint64Array,
      blob: assertBlob,
      boolean: assertBoolean,
      boundFunction: assertBoundFunction,
      buffer: assertBuffer,
      class: assertClass,
      dataView: assertDataView,
      date: assertDate,
      directInstanceOf: assertDirectInstanceOf,
      emptyArray: assertEmptyArray,
      emptyMap: assertEmptyMap,
      emptyObject: assertEmptyObject,
      emptySet: assertEmptySet,
      emptyString: assertEmptyString,
      emptyStringOrWhitespace: assertEmptyStringOrWhitespace,
      enumCase: assertEnumCase,
      error: assertError,
      evenInteger: assertEvenInteger,
      falsy: assertFalsy,
      float32Array: assertFloat32Array,
      float64Array: assertFloat64Array,
      formData: assertFormData,
      function: assertFunction,
      generator: assertGenerator,
      generatorFunction: assertGeneratorFunction,
      htmlElement: assertHtmlElement,
      infinite: assertInfinite,
      inRange: assertInRange,
      int16Array: assertInt16Array,
      int32Array: assertInt32Array,
      int8Array: assertInt8Array,
      integer: assertInteger,
      iterable: assertIterable,
      map: assertMap,
      nan: assertNan,
      nativePromise: assertNativePromise,
      negativeNumber: assertNegativeNumber,
      nodeStream: assertNodeStream,
      nonEmptyArray: assertNonEmptyArray,
      nonEmptyMap: assertNonEmptyMap,
      nonEmptyObject: assertNonEmptyObject,
      nonEmptySet: assertNonEmptySet,
      nonEmptyString: assertNonEmptyString,
      nonEmptyStringAndNotWhitespace: assertNonEmptyStringAndNotWhitespace,
      null: assertNull,
      nullOrUndefined: assertNullOrUndefined,
      number: assertNumber,
      numericString: assertNumericString,
      object: assertObject,
      observable: assertObservable,
      oddInteger: assertOddInteger,
      plainObject: assertPlainObject,
      positiveNumber: assertPositiveNumber,
      primitive: assertPrimitive,
      promise: assertPromise,
      propertyKey: assertPropertyKey,
      regExp: assertRegExp,
      safeInteger: assertSafeInteger,
      set: assertSet,
      sharedArrayBuffer: assertSharedArrayBuffer,
      string: assertString,
      symbol: assertSymbol,
      truthy: assertTruthy,
      tupleLike: assertTupleLike,
      typedArray: assertTypedArray,
      uint16Array: assertUint16Array,
      uint32Array: assertUint32Array,
      uint8Array: assertUint8Array,
      uint8ClampedArray: assertUint8ClampedArray,
      undefined: assertUndefined,
      urlInstance: assertUrlInstance,
      urlSearchParams: assertUrlSearchParams,
      urlString: assertUrlString,
      validDate: assertValidDate,
      validLength: assertValidLength,
      weakMap: assertWeakMap,
      weakRef: assertWeakRef,
      weakSet: assertWeakSet,
      whitespaceString: assertWhitespaceString
    };
    methodTypeMap = {
      isArray: "Array",
      isArrayBuffer: "ArrayBuffer",
      isArrayLike: "array-like",
      isAsyncFunction: "AsyncFunction",
      isAsyncGenerator: "AsyncGenerator",
      isAsyncGeneratorFunction: "AsyncGeneratorFunction",
      isAsyncIterable: "AsyncIterable",
      isBigint: "bigint",
      isBigInt64Array: "BigInt64Array",
      isBigUint64Array: "BigUint64Array",
      isBlob: "Blob",
      isBoolean: "boolean",
      isBoundFunction: "Function",
      isBuffer: "Buffer",
      isClass: "Class",
      isDataView: "DataView",
      isDate: "Date",
      isDirectInstanceOf: "T",
      isEmptyArray: "empty array",
      isEmptyMap: "empty map",
      isEmptyObject: "empty object",
      isEmptySet: "empty set",
      isEmptyString: "empty string",
      isEmptyStringOrWhitespace: "empty string or whitespace",
      isEnumCase: "EnumCase",
      isError: "Error",
      isEvenInteger: "even integer",
      isFalsy: "falsy",
      isFloat32Array: "Float32Array",
      isFloat64Array: "Float64Array",
      isFormData: "FormData",
      isFunction: "Function",
      isGenerator: "Generator",
      isGeneratorFunction: "GeneratorFunction",
      isHtmlElement: "HTMLElement",
      isInfinite: "infinite number",
      isInRange: "in range",
      isInt16Array: "Int16Array",
      isInt32Array: "Int32Array",
      isInt8Array: "Int8Array",
      isInteger: "integer",
      isIterable: "Iterable",
      isMap: "Map",
      isNan: "NaN",
      isNativePromise: "native Promise",
      isNegativeNumber: "negative number",
      isNodeStream: "Node.js Stream",
      isNonEmptyArray: "non-empty array",
      isNonEmptyMap: "non-empty map",
      isNonEmptyObject: "non-empty object",
      isNonEmptySet: "non-empty set",
      isNonEmptyString: "non-empty string",
      isNonEmptyStringAndNotWhitespace: "non-empty string and not whitespace",
      isNull: "null",
      isNullOrUndefined: "null or undefined",
      isNumber: "number",
      isNumericString: "string with a number",
      isObject: "Object",
      isObservable: "Observable",
      isOddInteger: "odd integer",
      isPlainObject: "plain object",
      isPositiveNumber: "positive number",
      isPrimitive: "primitive",
      isPromise: "Promise",
      isPropertyKey: "PropertyKey",
      isRegExp: "RegExp",
      isSafeInteger: "integer",
      isSet: "Set",
      isSharedArrayBuffer: "SharedArrayBuffer",
      isString: "string",
      isSymbol: "symbol",
      isTruthy: "truthy",
      isTupleLike: "tuple-like",
      isTypedArray: "TypedArray",
      isUint16Array: "Uint16Array",
      isUint32Array: "Uint32Array",
      isUint8Array: "Uint8Array",
      isUint8ClampedArray: "Uint8ClampedArray",
      isUndefined: "undefined",
      isUrlInstance: "URL",
      isUrlSearchParams: "URLSearchParams",
      isUrlString: "string with a URL",
      isValidDate: "valid Date",
      isValidLength: "valid length",
      isWeakMap: "WeakMap",
      isWeakRef: "WeakRef",
      isWeakSet: "WeakSet",
      isWhitespaceString: "whitespace string"
    };
    isMethodNames = keysOf(methodTypeMap);
    distribution_default = is;
  }
});

// ../../node_modules/.pnpm/p-cancelable@4.0.1/node_modules/p-cancelable/index.js
var CancelError, promiseState, PCancelable;
var init_p_cancelable = __esm({
  "../../node_modules/.pnpm/p-cancelable@4.0.1/node_modules/p-cancelable/index.js"() {
    CancelError = class extends Error {
      constructor(reason) {
        super(reason || "Promise was canceled");
        this.name = "CancelError";
      }
      get isCanceled() {
        return true;
      }
    };
    promiseState = Object.freeze({
      pending: Symbol("pending"),
      canceled: Symbol("canceled"),
      resolved: Symbol("resolved"),
      rejected: Symbol("rejected")
    });
    PCancelable = class _PCancelable {
      static fn(userFunction) {
        return (...arguments_) => new _PCancelable((resolve4, reject, onCancel) => {
          arguments_.push(onCancel);
          userFunction(...arguments_).then(resolve4, reject);
        });
      }
      #cancelHandlers = [];
      #rejectOnCancel = true;
      #state = promiseState.pending;
      #promise;
      #reject;
      constructor(executor) {
        this.#promise = new Promise((resolve4, reject) => {
          this.#reject = reject;
          const onResolve = (value2) => {
            if (this.#state !== promiseState.canceled || !onCancel.shouldReject) {
              resolve4(value2);
              this.#setState(promiseState.resolved);
            }
          };
          const onReject = (error) => {
            if (this.#state !== promiseState.canceled || !onCancel.shouldReject) {
              reject(error);
              this.#setState(promiseState.rejected);
            }
          };
          const onCancel = (handler) => {
            if (this.#state !== promiseState.pending) {
              throw new Error(`The \`onCancel\` handler was attached after the promise ${this.#state.description}.`);
            }
            this.#cancelHandlers.push(handler);
          };
          Object.defineProperties(onCancel, {
            shouldReject: {
              get: () => this.#rejectOnCancel,
              set: (boolean) => {
                this.#rejectOnCancel = boolean;
              }
            }
          });
          executor(onResolve, onReject, onCancel);
        });
      }
      // eslint-disable-next-line unicorn/no-thenable
      then(onFulfilled, onRejected) {
        return this.#promise.then(onFulfilled, onRejected);
      }
      catch(onRejected) {
        return this.#promise.catch(onRejected);
      }
      finally(onFinally) {
        return this.#promise.finally(onFinally);
      }
      cancel(reason) {
        if (this.#state !== promiseState.pending) {
          return;
        }
        this.#setState(promiseState.canceled);
        if (this.#cancelHandlers.length > 0) {
          try {
            for (const handler of this.#cancelHandlers) {
              handler();
            }
          } catch (error) {
            this.#reject(error);
            return;
          }
        }
        if (this.#rejectOnCancel) {
          this.#reject(new CancelError(reason));
        }
      }
      get isCanceled() {
        return this.#state === promiseState.canceled;
      }
      #setState(state) {
        if (this.#state === promiseState.pending) {
          this.#state = state;
        }
      }
    };
    Object.setPrototypeOf(PCancelable.prototype, Promise.prototype);
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/errors.js
function isRequest(x) {
  return distribution_default.object(x) && "_onResponse" in x;
}
var RequestError, MaxRedirectsError, HTTPError, CacheError, UploadError, TimeoutError, ReadError, RetryError, AbortError;
var init_errors = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/errors.js"() {
    init_distribution();
    RequestError = class extends Error {
      name = "RequestError";
      code = "ERR_GOT_REQUEST_ERROR";
      input;
      stack;
      response;
      request;
      timings;
      constructor(message, error, self2) {
        super(message, { cause: error });
        Error.captureStackTrace(this, this.constructor);
        if (error.code) {
          this.code = error.code;
        }
        this.input = error.input;
        if (isRequest(self2)) {
          Object.defineProperty(this, "request", {
            enumerable: false,
            value: self2
          });
          Object.defineProperty(this, "response", {
            enumerable: false,
            value: self2.response
          });
          this.options = self2.options;
        } else {
          this.options = self2;
        }
        this.timings = this.request?.timings;
        if (distribution_default.string(error.stack) && distribution_default.string(this.stack)) {
          const indexOfMessage = this.stack.indexOf(this.message) + this.message.length;
          const thisStackTrace = this.stack.slice(indexOfMessage).split("\n").reverse();
          const errorStackTrace = error.stack.slice(error.stack.indexOf(error.message) + error.message.length).split("\n").reverse();
          while (errorStackTrace.length > 0 && errorStackTrace[0] === thisStackTrace[0]) {
            thisStackTrace.shift();
          }
          this.stack = `${this.stack.slice(0, indexOfMessage)}${thisStackTrace.reverse().join("\n")}${errorStackTrace.reverse().join("\n")}`;
        }
      }
    };
    MaxRedirectsError = class extends RequestError {
      name = "MaxRedirectsError";
      code = "ERR_TOO_MANY_REDIRECTS";
      constructor(request) {
        super(`Redirected ${request.options.maxRedirects} times. Aborting.`, {}, request);
      }
    };
    HTTPError = class extends RequestError {
      name = "HTTPError";
      code = "ERR_NON_2XX_3XX_RESPONSE";
      constructor(response) {
        super(`Request failed with status code ${response.statusCode} (${response.statusMessage}): ${response.request.options.method} ${response.request.options.url.toString()}`, {}, response.request);
      }
    };
    CacheError = class extends RequestError {
      name = "CacheError";
      constructor(error, request) {
        super(error.message, error, request);
        if (this.code === "ERR_GOT_REQUEST_ERROR") {
          this.code = "ERR_CACHE_ACCESS";
        }
      }
    };
    UploadError = class extends RequestError {
      name = "UploadError";
      constructor(error, request) {
        super(error.message, error, request);
        if (this.code === "ERR_GOT_REQUEST_ERROR") {
          this.code = "ERR_UPLOAD";
        }
      }
    };
    TimeoutError = class extends RequestError {
      name = "TimeoutError";
      timings;
      event;
      constructor(error, timings, request) {
        super(error.message, error, request);
        this.event = error.event;
        this.timings = timings;
      }
    };
    ReadError = class extends RequestError {
      name = "ReadError";
      constructor(error, request) {
        super(error.message, error, request);
        if (this.code === "ERR_GOT_REQUEST_ERROR") {
          this.code = "ERR_READING_RESPONSE_STREAM";
        }
      }
    };
    RetryError = class extends RequestError {
      name = "RetryError";
      code = "ERR_RETRYING";
      constructor(request) {
        super("Retrying", {}, request);
      }
    };
    AbortError = class extends RequestError {
      name = "AbortError";
      code = "ERR_ABORTED";
      constructor(request) {
        super("This operation was aborted.", {}, request);
      }
    };
  }
});

// ../../node_modules/.pnpm/byte-counter@0.1.0/node_modules/byte-counter/utilities.js
function byteLength(data2) {
  if (typeof data2 === "string") {
    return textEncoder.encode(data2).byteLength;
  }
  if (ArrayBuffer.isView(data2) || data2 instanceof ArrayBuffer || data2 instanceof SharedArrayBuffer) {
    return data2.byteLength;
  }
  return 0;
}
var textEncoder;
var init_utilities2 = __esm({
  "../../node_modules/.pnpm/byte-counter@0.1.0/node_modules/byte-counter/utilities.js"() {
    textEncoder = new TextEncoder();
  }
});

// ../../node_modules/.pnpm/byte-counter@0.1.0/node_modules/byte-counter/index.js
var init_byte_counter = __esm({
  "../../node_modules/.pnpm/byte-counter@0.1.0/node_modules/byte-counter/index.js"() {
    init_utilities2();
  }
});

// ../../node_modules/.pnpm/is-stream@4.0.1/node_modules/is-stream/index.js
function isStream(stream7, { checkOpen = true } = {}) {
  return stream7 !== null && typeof stream7 === "object" && (stream7.writable || stream7.readable || !checkOpen || stream7.writable === void 0 && stream7.readable === void 0) && typeof stream7.pipe === "function";
}
function isReadableStream(stream7, { checkOpen = true } = {}) {
  return isStream(stream7, { checkOpen }) && (stream7.readable || !checkOpen) && typeof stream7.read === "function" && typeof stream7.readable === "boolean" && typeof stream7.readableObjectMode === "boolean" && typeof stream7.destroy === "function" && typeof stream7.destroyed === "boolean";
}
var init_is_stream = __esm({
  "../../node_modules/.pnpm/is-stream@4.0.1/node_modules/is-stream/index.js"() {
  }
});

// ../../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.js
function i() {
  return this[n].next();
}
function o(r4) {
  return this[n].return(r4);
}
function h({ preventCancel: r4 = false } = {}) {
  const e4 = this.getReader(), t4 = new c(
    e4,
    r4
  ), s4 = Object.create(u);
  return s4[n] = t4, s4;
}
var a, c, n, u;
var init_asyncIterator = __esm({
  "../../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.js"() {
    a = Object.getPrototypeOf(
      Object.getPrototypeOf(
        /* istanbul ignore next */
        async function* () {
        }
      ).prototype
    );
    c = class {
      #t;
      #n;
      #r = false;
      #e = void 0;
      constructor(e4, t4) {
        this.#t = e4, this.#n = t4;
      }
      next() {
        const e4 = () => this.#s();
        return this.#e = this.#e ? this.#e.then(e4, e4) : e4(), this.#e;
      }
      return(e4) {
        const t4 = () => this.#i(e4);
        return this.#e ? this.#e.then(t4, t4) : t4();
      }
      async #s() {
        if (this.#r)
          return {
            done: true,
            value: void 0
          };
        let e4;
        try {
          e4 = await this.#t.read();
        } catch (t4) {
          throw this.#e = void 0, this.#r = true, this.#t.releaseLock(), t4;
        }
        return e4.done && (this.#e = void 0, this.#r = true, this.#t.releaseLock()), e4;
      }
      async #i(e4) {
        if (this.#r)
          return {
            done: true,
            value: e4
          };
        if (this.#r = true, !this.#n) {
          const t4 = this.#t.cancel(e4);
          return this.#t.releaseLock(), await t4, {
            done: true,
            value: e4
          };
        }
        return this.#t.releaseLock(), {
          done: true,
          value: e4
        };
      }
    };
    n = Symbol();
    Object.defineProperty(i, "name", { value: "next" });
    Object.defineProperty(o, "name", { value: "return" });
    u = Object.create(a, {
      next: {
        enumerable: true,
        configurable: true,
        writable: true,
        value: i
      },
      return: {
        enumerable: true,
        configurable: true,
        writable: true,
        value: o
      }
    });
  }
});

// ../../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/fromAnyIterable.js
var init_fromAnyIterable = __esm({
  "../../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/fromAnyIterable.js"() {
  }
});

// ../../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/index.js
var init_ponyfill = __esm({
  "../../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/index.js"() {
    init_asyncIterator();
    init_fromAnyIterable();
  }
});

// ../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/stream.js
var getAsyncIterable, toString, getStreamIterable, handleStreamEnd, nodeImports;
var init_stream = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/stream.js"() {
    init_is_stream();
    init_ponyfill();
    getAsyncIterable = (stream7) => {
      if (isReadableStream(stream7, { checkOpen: false }) && nodeImports.on !== void 0) {
        return getStreamIterable(stream7);
      }
      if (typeof stream7?.[Symbol.asyncIterator] === "function") {
        return stream7;
      }
      if (toString.call(stream7) === "[object ReadableStream]") {
        return h.call(stream7);
      }
      throw new TypeError("The first argument must be a Readable, a ReadableStream, or an async iterable.");
    };
    ({ toString } = Object.prototype);
    getStreamIterable = async function* (stream7) {
      const controller = new AbortController();
      const state = {};
      handleStreamEnd(stream7, controller, state);
      try {
        for await (const [chunk3] of nodeImports.on(stream7, "data", { signal: controller.signal })) {
          yield chunk3;
        }
      } catch (error) {
        if (state.error !== void 0) {
          throw state.error;
        } else if (!controller.signal.aborted) {
          throw error;
        }
      } finally {
        stream7.destroy();
      }
    };
    handleStreamEnd = async (stream7, controller, state) => {
      try {
        await nodeImports.finished(stream7, {
          cleanup: true,
          readable: true,
          writable: false,
          error: false
        });
      } catch (error) {
        state.error = error;
      } finally {
        controller.abort();
      }
    };
    nodeImports = {};
  }
});

// ../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/contents.js
var getStreamContents, appendFinalChunk, appendChunk, addNewChunk, getChunkType, objectToString, MaxBufferError;
var init_contents = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/contents.js"() {
    init_stream();
    getStreamContents = async (stream7, { init: init3, convertChunk, getSize: getSize2, truncateChunk, addChunk, getFinalChunk, finalize }, { maxBuffer = Number.POSITIVE_INFINITY } = {}) => {
      const asyncIterable = getAsyncIterable(stream7);
      const state = init3();
      state.length = 0;
      try {
        for await (const chunk3 of asyncIterable) {
          const chunkType = getChunkType(chunk3);
          const convertedChunk = convertChunk[chunkType](chunk3, state);
          appendChunk({
            convertedChunk,
            state,
            getSize: getSize2,
            truncateChunk,
            addChunk,
            maxBuffer
          });
        }
        appendFinalChunk({
          state,
          convertChunk,
          getSize: getSize2,
          truncateChunk,
          addChunk,
          getFinalChunk,
          maxBuffer
        });
        return finalize(state);
      } catch (error) {
        const normalizedError = typeof error === "object" && error !== null ? error : new Error(error);
        normalizedError.bufferedData = finalize(state);
        throw normalizedError;
      }
    };
    appendFinalChunk = ({ state, getSize: getSize2, truncateChunk, addChunk, getFinalChunk, maxBuffer }) => {
      const convertedChunk = getFinalChunk(state);
      if (convertedChunk !== void 0) {
        appendChunk({
          convertedChunk,
          state,
          getSize: getSize2,
          truncateChunk,
          addChunk,
          maxBuffer
        });
      }
    };
    appendChunk = ({ convertedChunk, state, getSize: getSize2, truncateChunk, addChunk, maxBuffer }) => {
      const chunkSize = getSize2(convertedChunk);
      const newLength = state.length + chunkSize;
      if (newLength <= maxBuffer) {
        addNewChunk(convertedChunk, state, addChunk, newLength);
        return;
      }
      const truncatedChunk = truncateChunk(convertedChunk, maxBuffer - state.length);
      if (truncatedChunk !== void 0) {
        addNewChunk(truncatedChunk, state, addChunk, maxBuffer);
      }
      throw new MaxBufferError();
    };
    addNewChunk = (convertedChunk, state, addChunk, newLength) => {
      state.contents = addChunk(convertedChunk, state, newLength);
      state.length = newLength;
    };
    getChunkType = (chunk3) => {
      const typeOfChunk = typeof chunk3;
      if (typeOfChunk === "string") {
        return "string";
      }
      if (typeOfChunk !== "object" || chunk3 === null) {
        return "others";
      }
      if (globalThis.Buffer?.isBuffer(chunk3)) {
        return "buffer";
      }
      const prototypeName = objectToString.call(chunk3);
      if (prototypeName === "[object ArrayBuffer]") {
        return "arrayBuffer";
      }
      if (prototypeName === "[object DataView]") {
        return "dataView";
      }
      if (Number.isInteger(chunk3.byteLength) && Number.isInteger(chunk3.byteOffset) && objectToString.call(chunk3.buffer) === "[object ArrayBuffer]") {
        return "typedArray";
      }
      return "others";
    };
    ({ toString: objectToString } = Object.prototype);
    MaxBufferError = class extends Error {
      name = "MaxBufferError";
      constructor() {
        super("maxBuffer exceeded");
      }
    };
  }
});

// ../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/utils.js
var noop, throwObjectStream, getLengthProperty;
var init_utils = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/utils.js"() {
    noop = () => void 0;
    throwObjectStream = (chunk3) => {
      throw new Error(`Streams in object mode are not supported: ${String(chunk3)}`);
    };
    getLengthProperty = (convertedChunk) => convertedChunk.length;
  }
});

// ../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/array-buffer.js
async function getStreamAsArrayBuffer(stream7, options) {
  return getStreamContents(stream7, arrayBufferMethods, options);
}
var initArrayBuffer, useTextEncoder, textEncoder2, useUint8Array, useUint8ArrayWithOffset, truncateArrayBufferChunk, addArrayBufferChunk, resizeArrayBufferSlow, resizeArrayBuffer, getNewContentsLength, SCALE_FACTOR, finalizeArrayBuffer, hasArrayBufferResize, arrayBufferMethods;
var init_array_buffer = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/array-buffer.js"() {
    init_contents();
    init_utils();
    initArrayBuffer = () => ({ contents: new ArrayBuffer(0) });
    useTextEncoder = (chunk3) => textEncoder2.encode(chunk3);
    textEncoder2 = new TextEncoder();
    useUint8Array = (chunk3) => new Uint8Array(chunk3);
    useUint8ArrayWithOffset = (chunk3) => new Uint8Array(chunk3.buffer, chunk3.byteOffset, chunk3.byteLength);
    truncateArrayBufferChunk = (convertedChunk, chunkSize) => convertedChunk.slice(0, chunkSize);
    addArrayBufferChunk = (convertedChunk, { contents, length: previousLength }, length2) => {
      const newContents = hasArrayBufferResize() ? resizeArrayBuffer(contents, length2) : resizeArrayBufferSlow(contents, length2);
      new Uint8Array(newContents).set(convertedChunk, previousLength);
      return newContents;
    };
    resizeArrayBufferSlow = (contents, length2) => {
      if (length2 <= contents.byteLength) {
        return contents;
      }
      const arrayBuffer = new ArrayBuffer(getNewContentsLength(length2));
      new Uint8Array(arrayBuffer).set(new Uint8Array(contents), 0);
      return arrayBuffer;
    };
    resizeArrayBuffer = (contents, length2) => {
      if (length2 <= contents.maxByteLength) {
        contents.resize(length2);
        return contents;
      }
      const arrayBuffer = new ArrayBuffer(length2, { maxByteLength: getNewContentsLength(length2) });
      new Uint8Array(arrayBuffer).set(new Uint8Array(contents), 0);
      return arrayBuffer;
    };
    getNewContentsLength = (length2) => SCALE_FACTOR ** Math.ceil(Math.log(length2) / Math.log(SCALE_FACTOR));
    SCALE_FACTOR = 2;
    finalizeArrayBuffer = ({ contents, length: length2 }) => hasArrayBufferResize() ? contents : contents.slice(0, length2);
    hasArrayBufferResize = () => "resize" in ArrayBuffer.prototype;
    arrayBufferMethods = {
      init: initArrayBuffer,
      convertChunk: {
        string: useTextEncoder,
        buffer: useUint8Array,
        arrayBuffer: useUint8Array,
        dataView: useUint8ArrayWithOffset,
        typedArray: useUint8ArrayWithOffset,
        others: throwObjectStream
      },
      getSize: getLengthProperty,
      truncateChunk: truncateArrayBufferChunk,
      addChunk: addArrayBufferChunk,
      getFinalChunk: noop,
      finalize: finalizeArrayBuffer
    };
  }
});

// ../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/buffer.js
async function getStreamAsBuffer(stream7, options) {
  if (!("Buffer" in globalThis)) {
    throw new Error("getStreamAsBuffer() is only supported in Node.js");
  }
  try {
    return arrayBufferToNodeBuffer(await getStreamAsArrayBuffer(stream7, options));
  } catch (error) {
    if (error.bufferedData !== void 0) {
      error.bufferedData = arrayBufferToNodeBuffer(error.bufferedData);
    }
    throw error;
  }
}
var arrayBufferToNodeBuffer;
var init_buffer = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/buffer.js"() {
    init_array_buffer();
    arrayBufferToNodeBuffer = (arrayBuffer) => globalThis.Buffer.from(arrayBuffer);
  }
});

// ../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/exports.js
var init_exports = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/exports.js"() {
    init_buffer();
  }
});

// ../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/index.js
import { on } from "node:events";
import { finished } from "node:stream/promises";
var init_source = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/index.js"() {
    init_stream();
    init_exports();
    Object.assign(nodeImports, { on, finished });
  }
});

// ../../node_modules/.pnpm/http-cache-semantics@4.2.0/node_modules/http-cache-semantics/index.js
var require_http_cache_semantics = __commonJS({
  "../../node_modules/.pnpm/http-cache-semantics@4.2.0/node_modules/http-cache-semantics/index.js"(exports, module) {
    "use strict";
    var statusCodeCacheableByDefault = /* @__PURE__ */ new Set([
      200,
      203,
      204,
      206,
      300,
      301,
      308,
      404,
      405,
      410,
      414,
      501
    ]);
    var understoodStatuses = /* @__PURE__ */ new Set([
      200,
      203,
      204,
      300,
      301,
      302,
      303,
      307,
      308,
      404,
      405,
      410,
      414,
      501
    ]);
    var errorStatusCodes = /* @__PURE__ */ new Set([
      500,
      502,
      503,
      504
    ]);
    var hopByHopHeaders = {
      date: true,
      // included, because we add Age update Date
      connection: true,
      "keep-alive": true,
      "proxy-authenticate": true,
      "proxy-authorization": true,
      te: true,
      trailer: true,
      "transfer-encoding": true,
      upgrade: true
    };
    var excludedFromRevalidationUpdate = {
      // Since the old body is reused, it doesn't make sense to change properties of the body
      "content-length": true,
      "content-encoding": true,
      "transfer-encoding": true,
      "content-range": true
    };
    function toNumberOrZero(s4) {
      const n6 = parseInt(s4, 10);
      return isFinite(n6) ? n6 : 0;
    }
    function isErrorResponse(response) {
      if (!response) {
        return true;
      }
      return errorStatusCodes.has(response.status);
    }
    function parseCacheControl(header) {
      const cc = {};
      if (!header) return cc;
      const parts = header.trim().split(/,/);
      for (const part of parts) {
        const [k3, v3] = part.split(/=/, 2);
        cc[k3.trim()] = v3 === void 0 ? true : v3.trim().replace(/^"|"$/g, "");
      }
      return cc;
    }
    function formatCacheControl(cc) {
      let parts = [];
      for (const k3 in cc) {
        const v3 = cc[k3];
        parts.push(v3 === true ? k3 : k3 + "=" + v3);
      }
      if (!parts.length) {
        return void 0;
      }
      return parts.join(", ");
    }
    module.exports = class CachePolicy {
      /**
       * Creates a new CachePolicy instance.
       * @param {HttpRequest} req - Incoming client request.
       * @param {HttpResponse} res - Received server response.
       * @param {Object} [options={}] - Configuration options.
       * @param {boolean} [options.shared=true] - Is the cache shared (a public proxy)? `false` for personal browser caches.
       * @param {number} [options.cacheHeuristic=0.1] - Fallback heuristic (age fraction) for cache duration.
       * @param {number} [options.immutableMinTimeToLive=86400000] - Minimum TTL for immutable responses in milliseconds.
       * @param {boolean} [options.ignoreCargoCult=false] - Detect nonsense cache headers, and override them.
       * @param {any} [options._fromObject] - Internal parameter for deserialization. Do not use.
       */
      constructor(req, res, {
        shared,
        cacheHeuristic,
        immutableMinTimeToLive,
        ignoreCargoCult,
        _fromObject
      } = {}) {
        if (_fromObject) {
          this._fromObject(_fromObject);
          return;
        }
        if (!res || !res.headers) {
          throw Error("Response headers missing");
        }
        this._assertRequestHasHeaders(req);
        this._responseTime = this.now();
        this._isShared = shared !== false;
        this._ignoreCargoCult = !!ignoreCargoCult;
        this._cacheHeuristic = void 0 !== cacheHeuristic ? cacheHeuristic : 0.1;
        this._immutableMinTtl = void 0 !== immutableMinTimeToLive ? immutableMinTimeToLive : 24 * 3600 * 1e3;
        this._status = "status" in res ? res.status : 200;
        this._resHeaders = res.headers;
        this._rescc = parseCacheControl(res.headers["cache-control"]);
        this._method = "method" in req ? req.method : "GET";
        this._url = req.url;
        this._host = req.headers.host;
        this._noAuthorization = !req.headers.authorization;
        this._reqHeaders = res.headers.vary ? req.headers : null;
        this._reqcc = parseCacheControl(req.headers["cache-control"]);
        if (this._ignoreCargoCult && "pre-check" in this._rescc && "post-check" in this._rescc) {
          delete this._rescc["pre-check"];
          delete this._rescc["post-check"];
          delete this._rescc["no-cache"];
          delete this._rescc["no-store"];
          delete this._rescc["must-revalidate"];
          this._resHeaders = Object.assign({}, this._resHeaders, {
            "cache-control": formatCacheControl(this._rescc)
          });
          delete this._resHeaders.expires;
          delete this._resHeaders.pragma;
        }
        if (res.headers["cache-control"] == null && /no-cache/.test(res.headers.pragma)) {
          this._rescc["no-cache"] = true;
        }
      }
      /**
       * You can monkey-patch it for testing.
       * @returns {number} Current time in milliseconds.
       */
      now() {
        return Date.now();
      }
      /**
       * Determines if the response is storable in a cache.
       * @returns {boolean} `false` if can never be cached.
       */
      storable() {
        return !!(!this._reqcc["no-store"] && // A cache MUST NOT store a response to any request, unless:
        // The request method is understood by the cache and defined as being cacheable, and
        ("GET" === this._method || "HEAD" === this._method || "POST" === this._method && this._hasExplicitExpiration()) && // the response status code is understood by the cache, and
        understoodStatuses.has(this._status) && // the "no-store" cache directive does not appear in request or response header fields, and
        !this._rescc["no-store"] && // the "private" response directive does not appear in the response, if the cache is shared, and
        (!this._isShared || !this._rescc.private) && // the Authorization header field does not appear in the request, if the cache is shared,
        (!this._isShared || this._noAuthorization || this._allowsStoringAuthenticated()) && // the response either:
        // contains an Expires header field, or
        (this._resHeaders.expires || // contains a max-age response directive, or
        // contains a s-maxage response directive and the cache is shared, or
        // contains a public response directive.
        this._rescc["max-age"] || this._isShared && this._rescc["s-maxage"] || this._rescc.public || // has a status code that is defined as cacheable by default
        statusCodeCacheableByDefault.has(this._status)));
      }
      /**
       * @returns {boolean} true if expiration is explicitly defined.
       */
      _hasExplicitExpiration() {
        return !!(this._isShared && this._rescc["s-maxage"] || this._rescc["max-age"] || this._resHeaders.expires);
      }
      /**
       * @param {HttpRequest} req - a request
       * @throws {Error} if the headers are missing.
       */
      _assertRequestHasHeaders(req) {
        if (!req || !req.headers) {
          throw Error("Request headers missing");
        }
      }
      /**
       * Checks if the request matches the cache and can be satisfied from the cache immediately,
       * without having to make a request to the server.
       *
       * This doesn't support `stale-while-revalidate`. See `evaluateRequest()` for a more complete solution.
       *
       * @param {HttpRequest} req - The new incoming HTTP request.
       * @returns {boolean} `true`` if the cached response used to construct this cache policy satisfies the request without revalidation.
       */
      satisfiesWithoutRevalidation(req) {
        const result = this.evaluateRequest(req);
        return !result.revalidation;
      }
      /**
       * @param {{headers: Record<string, string>, synchronous: boolean}|undefined} revalidation - Revalidation information, if any.
       * @returns {{response: {headers: Record<string, string>}, revalidation: {headers: Record<string, string>, synchronous: boolean}|undefined}} An object with a cached response headers and revalidation info.
       */
      _evaluateRequestHitResult(revalidation) {
        return {
          response: {
            headers: this.responseHeaders()
          },
          revalidation
        };
      }
      /**
       * @param {HttpRequest} request - new incoming
       * @param {boolean} synchronous - whether revalidation must be synchronous (not s-w-r).
       * @returns {{headers: Record<string, string>, synchronous: boolean}} An object with revalidation headers and a synchronous flag.
       */
      _evaluateRequestRevalidation(request, synchronous) {
        return {
          synchronous,
          headers: this.revalidationHeaders(request)
        };
      }
      /**
       * @param {HttpRequest} request - new incoming
       * @returns {{response: undefined, revalidation: {headers: Record<string, string>, synchronous: boolean}}} An object indicating no cached response and revalidation details.
       */
      _evaluateRequestMissResult(request) {
        return {
          response: void 0,
          revalidation: this._evaluateRequestRevalidation(request, true)
        };
      }
      /**
       * Checks if the given request matches this cache entry, and how the cache can be used to satisfy it. Returns an object with:
       *
       * ```
       * {
       *     // If defined, you must send a request to the server.
       *     revalidation: {
       *         headers: {}, // HTTP headers to use when sending the revalidation response
       *         // If true, you MUST wait for a response from the server before using the cache
       *         // If false, this is stale-while-revalidate. The cache is stale, but you can use it while you update it asynchronously.
       *         synchronous: bool,
       *     },
       *     // If defined, you can use this cached response.
       *     response: {
       *         headers: {}, // Updated cached HTTP headers you must use when responding to the client
       *     },
       * }
       * ```
       * @param {HttpRequest} req - new incoming HTTP request
       * @returns {{response: {headers: Record<string, string>}|undefined, revalidation: {headers: Record<string, string>, synchronous: boolean}|undefined}} An object containing keys:
       *   - revalidation: { headers: Record<string, string>, synchronous: boolean } Set if you should send this to the origin server
       *   - response: { headers: Record<string, string> } Set if you can respond to the client with these cached headers
       */
      evaluateRequest(req) {
        this._assertRequestHasHeaders(req);
        if (this._rescc["must-revalidate"]) {
          return this._evaluateRequestMissResult(req);
        }
        if (!this._requestMatches(req, false)) {
          return this._evaluateRequestMissResult(req);
        }
        const requestCC = parseCacheControl(req.headers["cache-control"]);
        if (requestCC["no-cache"] || /no-cache/.test(req.headers.pragma)) {
          return this._evaluateRequestMissResult(req);
        }
        if (requestCC["max-age"] && this.age() > toNumberOrZero(requestCC["max-age"])) {
          return this._evaluateRequestMissResult(req);
        }
        if (requestCC["min-fresh"] && this.maxAge() - this.age() < toNumberOrZero(requestCC["min-fresh"])) {
          return this._evaluateRequestMissResult(req);
        }
        if (this.stale()) {
          const allowsStaleWithoutRevalidation = "max-stale" in requestCC && (true === requestCC["max-stale"] || requestCC["max-stale"] > this.age() - this.maxAge());
          if (allowsStaleWithoutRevalidation) {
            return this._evaluateRequestHitResult(void 0);
          }
          if (this.useStaleWhileRevalidate()) {
            return this._evaluateRequestHitResult(this._evaluateRequestRevalidation(req, false));
          }
          return this._evaluateRequestMissResult(req);
        }
        return this._evaluateRequestHitResult(void 0);
      }
      /**
       * @param {HttpRequest} req - check if this is for the same cache entry
       * @param {boolean} allowHeadMethod - allow a HEAD method to match.
       * @returns {boolean} `true` if the request matches.
       */
      _requestMatches(req, allowHeadMethod) {
        return !!((!this._url || this._url === req.url) && this._host === req.headers.host && // the request method associated with the stored response allows it to be used for the presented request, and
        (!req.method || this._method === req.method || allowHeadMethod && "HEAD" === req.method) && // selecting header fields nominated by the stored response (if any) match those presented, and
        this._varyMatches(req));
      }
      /**
       * Determines whether storing authenticated responses is allowed.
       * @returns {boolean} `true` if allowed.
       */
      _allowsStoringAuthenticated() {
        return !!(this._rescc["must-revalidate"] || this._rescc.public || this._rescc["s-maxage"]);
      }
      /**
       * Checks whether the Vary header in the response matches the new request.
       * @param {HttpRequest} req - incoming HTTP request
       * @returns {boolean} `true` if the vary headers match.
       */
      _varyMatches(req) {
        if (!this._resHeaders.vary) {
          return true;
        }
        if (this._resHeaders.vary === "*") {
          return false;
        }
        const fields = this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);
        for (const name of fields) {
          if (req.headers[name] !== this._reqHeaders[name]) return false;
        }
        return true;
      }
      /**
       * Creates a copy of the given headers without any hop-by-hop headers.
       * @param {Record<string, string>} inHeaders - old headers from the cached response
       * @returns {Record<string, string>} A new headers object without hop-by-hop headers.
       */
      _copyWithoutHopByHopHeaders(inHeaders) {
        const headers = {};
        for (const name in inHeaders) {
          if (hopByHopHeaders[name]) continue;
          headers[name] = inHeaders[name];
        }
        if (inHeaders.connection) {
          const tokens = inHeaders.connection.trim().split(/\s*,\s*/);
          for (const name of tokens) {
            delete headers[name];
          }
        }
        if (headers.warning) {
          const warnings = headers.warning.split(/,/).filter((warning) => {
            return !/^\s*1[0-9][0-9]/.test(warning);
          });
          if (!warnings.length) {
            delete headers.warning;
          } else {
            headers.warning = warnings.join(",").trim();
          }
        }
        return headers;
      }
      /**
       * Returns the response headers adjusted for serving the cached response.
       * Removes hop-by-hop headers and updates the Age and Date headers.
       * @returns {Record<string, string>} The adjusted response headers.
       */
      responseHeaders() {
        const headers = this._copyWithoutHopByHopHeaders(this._resHeaders);
        const age = this.age();
        if (age > 3600 * 24 && !this._hasExplicitExpiration() && this.maxAge() > 3600 * 24) {
          headers.warning = (headers.warning ? `${headers.warning}, ` : "") + '113 - "rfc7234 5.5.4"';
        }
        headers.age = `${Math.round(age)}`;
        headers.date = new Date(this.now()).toUTCString();
        return headers;
      }
      /**
       * Returns the Date header value from the response or the current time if invalid.
       * @returns {number} Timestamp (in milliseconds) representing the Date header or response time.
       */
      date() {
        const serverDate = Date.parse(this._resHeaders.date);
        if (isFinite(serverDate)) {
          return serverDate;
        }
        return this._responseTime;
      }
      /**
       * Value of the Age header, in seconds, updated for the current time.
       * May be fractional.
       * @returns {number} The age in seconds.
       */
      age() {
        let age = this._ageValue();
        const residentTime = (this.now() - this._responseTime) / 1e3;
        return age + residentTime;
      }
      /**
       * @returns {number} The Age header value as a number.
       */
      _ageValue() {
        return toNumberOrZero(this._resHeaders.age);
      }
      /**
       * Possibly outdated value of applicable max-age (or heuristic equivalent) in seconds.
       * This counts since response's `Date`.
       *
       * For an up-to-date value, see `timeToLive()`.
       *
       * Returns the maximum age (freshness lifetime) of the response in seconds.
       * @returns {number} The max-age value in seconds.
       */
      maxAge() {
        if (!this.storable() || this._rescc["no-cache"]) {
          return 0;
        }
        if (this._isShared && (this._resHeaders["set-cookie"] && !this._rescc.public && !this._rescc.immutable)) {
          return 0;
        }
        if (this._resHeaders.vary === "*") {
          return 0;
        }
        if (this._isShared) {
          if (this._rescc["proxy-revalidate"]) {
            return 0;
          }
          if (this._rescc["s-maxage"]) {
            return toNumberOrZero(this._rescc["s-maxage"]);
          }
        }
        if (this._rescc["max-age"]) {
          return toNumberOrZero(this._rescc["max-age"]);
        }
        const defaultMinTtl = this._rescc.immutable ? this._immutableMinTtl : 0;
        const serverDate = this.date();
        if (this._resHeaders.expires) {
          const expires = Date.parse(this._resHeaders.expires);
          if (Number.isNaN(expires) || expires < serverDate) {
            return 0;
          }
          return Math.max(defaultMinTtl, (expires - serverDate) / 1e3);
        }
        if (this._resHeaders["last-modified"]) {
          const lastModified = Date.parse(this._resHeaders["last-modified"]);
          if (isFinite(lastModified) && serverDate > lastModified) {
            return Math.max(
              defaultMinTtl,
              (serverDate - lastModified) / 1e3 * this._cacheHeuristic
            );
          }
        }
        return defaultMinTtl;
      }
      /**
       * Remaining time this cache entry may be useful for, in *milliseconds*.
       * You can use this as an expiration time for your cache storage.
       *
       * Prefer this method over `maxAge()`, because it includes other factors like `age` and `stale-while-revalidate`.
       * @returns {number} Time-to-live in milliseconds.
       */
      timeToLive() {
        const age = this.maxAge() - this.age();
        const staleIfErrorAge = age + toNumberOrZero(this._rescc["stale-if-error"]);
        const staleWhileRevalidateAge = age + toNumberOrZero(this._rescc["stale-while-revalidate"]);
        return Math.round(Math.max(0, age, staleIfErrorAge, staleWhileRevalidateAge) * 1e3);
      }
      /**
       * If true, this cache entry is past its expiration date.
       * Note that stale cache may be useful sometimes, see `evaluateRequest()`.
       * @returns {boolean} `false` doesn't mean it's fresh nor usable
       */
      stale() {
        return this.maxAge() <= this.age();
      }
      /**
       * @returns {boolean} `true` if `stale-if-error` condition allows use of a stale response.
       */
      _useStaleIfError() {
        return this.maxAge() + toNumberOrZero(this._rescc["stale-if-error"]) > this.age();
      }
      /** See `evaluateRequest()` for a more complete solution
       * @returns {boolean} `true` if `stale-while-revalidate` is currently allowed.
       */
      useStaleWhileRevalidate() {
        const swr = toNumberOrZero(this._rescc["stale-while-revalidate"]);
        return swr > 0 && this.maxAge() + swr > this.age();
      }
      /**
       * Creates a `CachePolicy` instance from a serialized object.
       * @param {Object} obj - The serialized object.
       * @returns {CachePolicy} A new CachePolicy instance.
       */
      static fromObject(obj) {
        return new this(void 0, void 0, { _fromObject: obj });
      }
      /**
       * @param {any} obj - The serialized object.
       * @throws {Error} If already initialized or if the object is invalid.
       */
      _fromObject(obj) {
        if (this._responseTime) throw Error("Reinitialized");
        if (!obj || obj.v !== 1) throw Error("Invalid serialization");
        this._responseTime = obj.t;
        this._isShared = obj.sh;
        this._cacheHeuristic = obj.ch;
        this._immutableMinTtl = obj.imm !== void 0 ? obj.imm : 24 * 3600 * 1e3;
        this._ignoreCargoCult = !!obj.icc;
        this._status = obj.st;
        this._resHeaders = obj.resh;
        this._rescc = obj.rescc;
        this._method = obj.m;
        this._url = obj.u;
        this._host = obj.h;
        this._noAuthorization = obj.a;
        this._reqHeaders = obj.reqh;
        this._reqcc = obj.reqcc;
      }
      /**
       * Serializes the `CachePolicy` instance into a JSON-serializable object.
       * @returns {Object} The serialized object.
       */
      toObject() {
        return {
          v: 1,
          t: this._responseTime,
          sh: this._isShared,
          ch: this._cacheHeuristic,
          imm: this._immutableMinTtl,
          icc: this._ignoreCargoCult,
          st: this._status,
          resh: this._resHeaders,
          rescc: this._rescc,
          m: this._method,
          u: this._url,
          h: this._host,
          a: this._noAuthorization,
          reqh: this._reqHeaders,
          reqcc: this._reqcc
        };
      }
      /**
       * Headers for sending to the origin server to revalidate stale response.
       * Allows server to return 304 to allow reuse of the previous response.
       *
       * Hop by hop headers are always stripped.
       * Revalidation headers may be added or removed, depending on request.
       * @param {HttpRequest} incomingReq - The incoming HTTP request.
       * @returns {Record<string, string>} The headers for the revalidation request.
       */
      revalidationHeaders(incomingReq) {
        this._assertRequestHasHeaders(incomingReq);
        const headers = this._copyWithoutHopByHopHeaders(incomingReq.headers);
        delete headers["if-range"];
        if (!this._requestMatches(incomingReq, true) || !this.storable()) {
          delete headers["if-none-match"];
          delete headers["if-modified-since"];
          return headers;
        }
        if (this._resHeaders.etag) {
          headers["if-none-match"] = headers["if-none-match"] ? `${headers["if-none-match"]}, ${this._resHeaders.etag}` : this._resHeaders.etag;
        }
        const forbidsWeakValidators = headers["accept-ranges"] || headers["if-match"] || headers["if-unmodified-since"] || this._method && this._method != "GET";
        if (forbidsWeakValidators) {
          delete headers["if-modified-since"];
          if (headers["if-none-match"]) {
            const etags = headers["if-none-match"].split(/,/).filter((etag) => {
              return !/^\s*W\//.test(etag);
            });
            if (!etags.length) {
              delete headers["if-none-match"];
            } else {
              headers["if-none-match"] = etags.join(",").trim();
            }
          }
        } else if (this._resHeaders["last-modified"] && !headers["if-modified-since"]) {
          headers["if-modified-since"] = this._resHeaders["last-modified"];
        }
        return headers;
      }
      /**
       * Creates new CachePolicy with information combined from the previews response,
       * and the new revalidation response.
       *
       * Returns {policy, modified} where modified is a boolean indicating
       * whether the response body has been modified, and old cached body can't be used.
       *
       * @param {HttpRequest} request - The latest HTTP request asking for the cached entry.
       * @param {HttpResponse} response - The latest revalidation HTTP response from the origin server.
       * @returns {{policy: CachePolicy, modified: boolean, matches: boolean}} The updated policy and modification status.
       * @throws {Error} If the response headers are missing.
       */
      revalidatedPolicy(request, response) {
        this._assertRequestHasHeaders(request);
        if (this._useStaleIfError() && isErrorResponse(response)) {
          return {
            policy: this,
            modified: false,
            matches: true
          };
        }
        if (!response || !response.headers) {
          throw Error("Response headers missing");
        }
        let matches = false;
        if (response.status !== void 0 && response.status != 304) {
          matches = false;
        } else if (response.headers.etag && !/^\s*W\//.test(response.headers.etag)) {
          matches = this._resHeaders.etag && this._resHeaders.etag.replace(/^\s*W\//, "") === response.headers.etag;
        } else if (this._resHeaders.etag && response.headers.etag) {
          matches = this._resHeaders.etag.replace(/^\s*W\//, "") === response.headers.etag.replace(/^\s*W\//, "");
        } else if (this._resHeaders["last-modified"]) {
          matches = this._resHeaders["last-modified"] === response.headers["last-modified"];
        } else {
          if (!this._resHeaders.etag && !this._resHeaders["last-modified"] && !response.headers.etag && !response.headers["last-modified"]) {
            matches = true;
          }
        }
        const optionsCopy = {
          shared: this._isShared,
          cacheHeuristic: this._cacheHeuristic,
          immutableMinTimeToLive: this._immutableMinTtl,
          ignoreCargoCult: this._ignoreCargoCult
        };
        if (!matches) {
          return {
            policy: new this.constructor(request, response, optionsCopy),
            // Client receiving 304 without body, even if it's invalid/mismatched has no option
            // but to reuse a cached body. We don't have a good way to tell clients to do
            // error recovery in such case.
            modified: response.status != 304,
            matches: false
          };
        }
        const headers = {};
        for (const k3 in this._resHeaders) {
          headers[k3] = k3 in response.headers && !excludedFromRevalidationUpdate[k3] ? response.headers[k3] : this._resHeaders[k3];
        }
        const newResponse = Object.assign({}, response, {
          status: this._status,
          method: this._method,
          headers
        });
        return {
          policy: new this.constructor(request, newResponse, optionsCopy),
          modified: false,
          matches: true
        };
      }
    };
  }
});

// ../../node_modules/.pnpm/@keyv+serialize@1.1.1/node_modules/@keyv/serialize/dist/index.js
import { Buffer as Buffer2 } from "buffer";
var _serialize, defaultSerialize, defaultDeserialize;
var init_dist = __esm({
  "../../node_modules/.pnpm/@keyv+serialize@1.1.1/node_modules/@keyv/serialize/dist/index.js"() {
    _serialize = (data2, escapeColonStrings = true) => {
      if (data2 === void 0 || data2 === null) {
        return "null";
      }
      if (typeof data2 === "string") {
        return JSON.stringify(
          escapeColonStrings && data2.startsWith(":") ? `:${data2}` : data2
        );
      }
      if (Buffer2.isBuffer(data2)) {
        return JSON.stringify(`:base64:${data2.toString("base64")}`);
      }
      if (data2?.toJSON) {
        data2 = data2.toJSON();
      }
      if (typeof data2 === "object") {
        let s4 = "";
        const array = Array.isArray(data2);
        s4 = array ? "[" : "{";
        let first = true;
        for (const k3 in data2) {
          const ignore = typeof data2[k3] === "function" || !array && data2[k3] === void 0;
          if (!Object.hasOwn(data2, k3) || ignore) {
            continue;
          }
          if (!first) {
            s4 += ",";
          }
          first = false;
          if (array) {
            s4 += _serialize(data2[k3], escapeColonStrings);
          } else if (data2[k3] !== void 0) {
            s4 += `${_serialize(k3, false)}:${_serialize(data2[k3], escapeColonStrings)}`;
          }
        }
        s4 += array ? "]" : "}";
        return s4;
      }
      return JSON.stringify(data2);
    };
    defaultSerialize = (data2) => {
      return _serialize(data2, true);
    };
    defaultDeserialize = (data2) => JSON.parse(data2, (_, value2) => {
      if (typeof value2 === "string") {
        if (value2.startsWith(":base64:")) {
          return Buffer2.from(value2.slice(8), "base64");
        }
        return value2.startsWith(":") ? value2.slice(1) : value2;
      }
      return value2;
    });
  }
});

// ../../node_modules/.pnpm/keyv@5.6.0/node_modules/keyv/dist/index.js
var EventManager, event_manager_default, HooksManager, hooks_manager_default, StatsManager, stats_manager_default, iterableAdapters, Keyv;
var init_dist2 = __esm({
  "../../node_modules/.pnpm/keyv@5.6.0/node_modules/keyv/dist/index.js"() {
    init_dist();
    EventManager = class {
      _eventListeners;
      _maxListeners;
      constructor() {
        this._eventListeners = /* @__PURE__ */ new Map();
        this._maxListeners = 100;
      }
      maxListeners() {
        return this._maxListeners;
      }
      // Add an event listener
      addListener(event, listener) {
        this.on(event, listener);
      }
      on(event, listener) {
        if (!this._eventListeners.has(event)) {
          this._eventListeners.set(event, []);
        }
        const listeners = this._eventListeners.get(event);
        if (listeners) {
          if (listeners.length >= this._maxListeners) {
            console.warn(
              `MaxListenersExceededWarning: Possible event memory leak detected. ${listeners.length + 1} ${event} listeners added. Use setMaxListeners() to increase limit.`
            );
          }
          listeners.push(listener);
        }
        return this;
      }
      // Remove an event listener
      removeListener(event, listener) {
        this.off(event, listener);
      }
      off(event, listener) {
        const listeners = this._eventListeners.get(event) ?? [];
        const index2 = listeners.indexOf(listener);
        if (index2 !== -1) {
          listeners.splice(index2, 1);
        }
        if (listeners.length === 0) {
          this._eventListeners.delete(event);
        }
      }
      once(event, listener) {
        const onceListener = (...arguments_) => {
          listener(...arguments_);
          this.off(event, onceListener);
        };
        this.on(event, onceListener);
      }
      // Emit an event
      // biome-ignore lint/suspicious/noExplicitAny: type format
      emit(event, ...arguments_) {
        const listeners = this._eventListeners.get(event);
        if (listeners && listeners.length > 0) {
          for (const listener of listeners) {
            listener(...arguments_);
          }
        }
      }
      // Get all listeners for a specific event
      listeners(event) {
        return this._eventListeners.get(event) ?? [];
      }
      // Remove all listeners for a specific event
      removeAllListeners(event) {
        if (event) {
          this._eventListeners.delete(event);
        } else {
          this._eventListeners.clear();
        }
      }
      // Set the maximum number of listeners for a single event
      setMaxListeners(n6) {
        this._maxListeners = n6;
      }
    };
    event_manager_default = EventManager;
    HooksManager = class extends event_manager_default {
      _hookHandlers;
      constructor() {
        super();
        this._hookHandlers = /* @__PURE__ */ new Map();
      }
      // Adds a handler function for a specific event
      addHandler(event, handler) {
        const eventHandlers = this._hookHandlers.get(event);
        if (eventHandlers) {
          eventHandlers.push(handler);
        } else {
          this._hookHandlers.set(event, [handler]);
        }
      }
      // Removes a specific handler function for a specific event
      removeHandler(event, handler) {
        const eventHandlers = this._hookHandlers.get(event);
        if (eventHandlers) {
          const index2 = eventHandlers.indexOf(handler);
          if (index2 !== -1) {
            eventHandlers.splice(index2, 1);
          }
        }
      }
      // Triggers all handlers for a specific event with provided data
      // biome-ignore lint/suspicious/noExplicitAny: type format
      trigger(event, data2) {
        const eventHandlers = this._hookHandlers.get(event);
        if (eventHandlers) {
          for (const handler of eventHandlers) {
            try {
              handler(data2);
            } catch (error) {
              this.emit(
                "error",
                new Error(
                  `Error in hook handler for event "${event}": ${error.message}`
                )
              );
            }
          }
        }
      }
      // Provides read-only access to the current handlers
      get handlers() {
        return new Map(this._hookHandlers);
      }
    };
    hooks_manager_default = HooksManager;
    StatsManager = class extends event_manager_default {
      enabled = true;
      hits = 0;
      misses = 0;
      sets = 0;
      deletes = 0;
      errors = 0;
      constructor(enabled) {
        super();
        if (enabled !== void 0) {
          this.enabled = enabled;
        }
        this.reset();
      }
      hit() {
        if (this.enabled) {
          this.hits++;
        }
      }
      miss() {
        if (this.enabled) {
          this.misses++;
        }
      }
      set() {
        if (this.enabled) {
          this.sets++;
        }
      }
      delete() {
        if (this.enabled) {
          this.deletes++;
        }
      }
      hitsOrMisses(array) {
        for (const item of array) {
          if (item === void 0) {
            this.miss();
          } else {
            this.hit();
          }
        }
      }
      reset() {
        this.hits = 0;
        this.misses = 0;
        this.sets = 0;
        this.deletes = 0;
        this.errors = 0;
      }
    };
    stats_manager_default = StatsManager;
    iterableAdapters = [
      "sqlite",
      "postgres",
      "mysql",
      "mongo",
      "redis",
      "valkey",
      "etcd"
    ];
    Keyv = class extends event_manager_default {
      opts;
      iterator;
      hooks = new hooks_manager_default();
      stats = new stats_manager_default(false);
      /**
       * Time to live in milliseconds
       */
      _ttl;
      /**
       * Namespace
       */
      _namespace;
      /**
       * Store
       */
      // biome-ignore lint/suspicious/noExplicitAny: type format
      _store = /* @__PURE__ */ new Map();
      _serialize = defaultSerialize;
      _deserialize = defaultDeserialize;
      _compression;
      _useKeyPrefix = true;
      _throwOnErrors = false;
      /**
       * Keyv Constructor
       * @param {KeyvStoreAdapter | KeyvOptions} store
       * @param {Omit<KeyvOptions, 'store'>} [options] if you provide the store you can then provide the Keyv Options
       */
      constructor(store, options) {
        super();
        options ??= {};
        store ??= {};
        this.opts = {
          namespace: "keyv",
          serialize: defaultSerialize,
          deserialize: defaultDeserialize,
          emitErrors: true,
          // @ts-expect-error - Map is not a KeyvStoreAdapter
          store: /* @__PURE__ */ new Map(),
          ...options
        };
        if (store && store.get) {
          this.opts.store = store;
        } else {
          this.opts = {
            ...this.opts,
            ...store
          };
        }
        this._store = this.opts.store ?? /* @__PURE__ */ new Map();
        this._compression = this.opts.compression;
        this._serialize = this.opts.serialize;
        this._deserialize = this.opts.deserialize;
        if (this.opts.namespace) {
          this._namespace = this.opts.namespace;
        }
        if (this._store) {
          if (!this._isValidStorageAdapter(this._store)) {
            throw new Error("Invalid storage adapter");
          }
          if (typeof this._store.on === "function") {
            this._store.on("error", (error) => this.emit("error", error));
          }
          this._store.namespace = this._namespace;
          if (typeof this._store[Symbol.iterator] === "function" && this._store instanceof Map) {
            this.iterator = this.generateIterator(
              this._store
            );
          } else if ("iterator" in this._store && this._store.opts && this._checkIterableAdapter()) {
            this.iterator = this.generateIterator(
              // biome-ignore lint/style/noNonNullAssertion: need to fix
              this._store.iterator.bind(this._store)
            );
          }
        }
        if (this.opts.stats) {
          this.stats.enabled = this.opts.stats;
        }
        if (this.opts.ttl) {
          this._ttl = this.opts.ttl;
        }
        if (this.opts.useKeyPrefix !== void 0) {
          this._useKeyPrefix = this.opts.useKeyPrefix;
        }
        if (this.opts.throwOnErrors !== void 0) {
          this._throwOnErrors = this.opts.throwOnErrors;
        }
      }
      /**
       * Get the current store
       */
      // biome-ignore lint/suspicious/noExplicitAny: type format
      get store() {
        return this._store;
      }
      /**
       * Set the current store. This will also set the namespace, event error handler, and generate the iterator. If the store is not valid it will throw an error.
       * @param {KeyvStoreAdapter | Map<any, any> | any} store the store to set
       */
      // biome-ignore lint/suspicious/noExplicitAny: type format
      set store(store) {
        if (this._isValidStorageAdapter(store)) {
          this._store = store;
          this.opts.store = store;
          if (typeof store.on === "function") {
            store.on("error", (error) => this.emit("error", error));
          }
          if (this._namespace) {
            this._store.namespace = this._namespace;
          }
          if (typeof store[Symbol.iterator] === "function" && store instanceof Map) {
            this.iterator = this.generateIterator(
              store
            );
          } else if ("iterator" in store && store.opts && this._checkIterableAdapter()) {
            this.iterator = this.generateIterator(store.iterator?.bind(store));
          }
        } else {
          throw new Error("Invalid storage adapter");
        }
      }
      /**
       * Get the current compression function
       * @returns {CompressionAdapter} The current compression function
       */
      get compression() {
        return this._compression;
      }
      /**
       * Set the current compression function
       * @param {CompressionAdapter} compress The compression function to set
       */
      set compression(compress) {
        this._compression = compress;
      }
      /**
       * Get the current namespace.
       * @returns {string | undefined} The current namespace.
       */
      get namespace() {
        return this._namespace;
      }
      /**
       * Set the current namespace.
       * @param {string | undefined} namespace The namespace to set.
       */
      set namespace(namespace) {
        this._namespace = namespace;
        this.opts.namespace = namespace;
        this._store.namespace = namespace;
        if (this.opts.store) {
          this.opts.store.namespace = namespace;
        }
      }
      /**
       * Get the current TTL.
       * @returns {number} The current TTL in milliseconds.
       */
      get ttl() {
        return this._ttl;
      }
      /**
       * Set the current TTL.
       * @param {number} ttl The TTL to set in milliseconds.
       */
      set ttl(ttl2) {
        this.opts.ttl = ttl2;
        this._ttl = ttl2;
      }
      /**
       * Get the current serialize function.
       * @returns {Serialize} The current serialize function.
       */
      get serialize() {
        return this._serialize;
      }
      /**
       * Set the current serialize function.
       * @param {Serialize} serialize The serialize function to set.
       */
      set serialize(serialize) {
        this.opts.serialize = serialize;
        this._serialize = serialize;
      }
      /**
       * Get the current deserialize function.
       * @returns {Deserialize} The current deserialize function.
       */
      get deserialize() {
        return this._deserialize;
      }
      /**
       * Set the current deserialize function.
       * @param {Deserialize} deserialize The deserialize function to set.
       */
      set deserialize(deserialize) {
        this.opts.deserialize = deserialize;
        this._deserialize = deserialize;
      }
      /**
       * Get the current useKeyPrefix value. This will enable or disable key prefixing.
       * @returns {boolean} The current useKeyPrefix value.
       * @default true
       */
      get useKeyPrefix() {
        return this._useKeyPrefix;
      }
      /**
       * Set the current useKeyPrefix value. This will enable or disable key prefixing.
       * @param {boolean} value The useKeyPrefix value to set.
       */
      set useKeyPrefix(value2) {
        this._useKeyPrefix = value2;
        this.opts.useKeyPrefix = value2;
      }
      /**
       * Get the current throwErrors value. This will enable or disable throwing errors on methods in addition to emitting them.
       * @return {boolean} The current throwOnErrors value.
       */
      get throwOnErrors() {
        return this._throwOnErrors;
      }
      /**
       * Set the current throwOnErrors value. This will enable or disable throwing errors on methods in addition to emitting them.
       * @param {boolean} value The throwOnErrors value to set.
       */
      set throwOnErrors(value2) {
        this._throwOnErrors = value2;
        this.opts.throwOnErrors = value2;
      }
      generateIterator(iterator2) {
        const function_ = async function* () {
          for await (const [key, raw] of typeof iterator2 === "function" ? iterator2(this._store.namespace) : iterator2) {
            const data2 = await this.deserializeData(raw);
            if (this._useKeyPrefix && this._store.namespace && !key.includes(this._store.namespace)) {
              continue;
            }
            if (typeof data2.expires === "number" && Date.now() > data2.expires) {
              await this.delete(key);
              continue;
            }
            yield [this._getKeyUnprefix(key), data2.value];
          }
        };
        return function_.bind(this);
      }
      _checkIterableAdapter() {
        return iterableAdapters.includes(this._store.opts.dialect) || iterableAdapters.some(
          (element) => this._store.opts.url.includes(element)
        );
      }
      _getKeyPrefix(key) {
        if (!this._useKeyPrefix) {
          return key;
        }
        if (!this._namespace) {
          return key;
        }
        if (key.startsWith(`${this._namespace}:`)) {
          return key;
        }
        return `${this._namespace}:${key}`;
      }
      _getKeyPrefixArray(keys2) {
        if (!this._useKeyPrefix) {
          return keys2;
        }
        if (!this._namespace) {
          return keys2;
        }
        return keys2.map((key) => `${this._namespace}:${key}`);
      }
      _getKeyUnprefix(key) {
        if (!this._useKeyPrefix) {
          return key;
        }
        return key.split(":").splice(1).join(":");
      }
      // biome-ignore lint/suspicious/noExplicitAny: type format
      _isValidStorageAdapter(store) {
        return store instanceof Map || typeof store.get === "function" && typeof store.set === "function" && typeof store.delete === "function" && typeof store.clear === "function";
      }
      // eslint-disable-next-line @stylistic/max-len
      async get(key, options) {
        const { store } = this.opts;
        const isArray3 = Array.isArray(key);
        const keyPrefixed = isArray3 ? this._getKeyPrefixArray(key) : this._getKeyPrefix(key);
        const isDataExpired = (data2) => typeof data2.expires === "number" && Date.now() > data2.expires;
        if (isArray3) {
          if (options?.raw === true) {
            return this.getMany(key, { raw: true });
          }
          return this.getMany(key, { raw: false });
        }
        this.hooks.trigger("preGet", { key: keyPrefixed });
        let rawData;
        try {
          rawData = await store.get(keyPrefixed);
        } catch (error) {
          if (this.throwOnErrors) {
            throw error;
          }
        }
        const deserializedData = typeof rawData === "string" || this.opts.compression ? await this.deserializeData(rawData) : rawData;
        if (deserializedData === void 0 || deserializedData === null) {
          this.hooks.trigger("postGet", {
            key: keyPrefixed,
            value: void 0
          });
          this.stats.miss();
          return void 0;
        }
        if (isDataExpired(deserializedData)) {
          await this.delete(key);
          this.hooks.trigger("postGet", {
            key: keyPrefixed,
            value: void 0
          });
          this.stats.miss();
          return void 0;
        }
        this.hooks.trigger("postGet", {
          key: keyPrefixed,
          value: deserializedData
        });
        this.stats.hit();
        return options?.raw ? deserializedData : deserializedData.value;
      }
      async getMany(keys2, options) {
        const { store } = this.opts;
        const keyPrefixed = this._getKeyPrefixArray(keys2);
        const isDataExpired = (data2) => typeof data2.expires === "number" && Date.now() > data2.expires;
        this.hooks.trigger("preGetMany", { keys: keyPrefixed });
        if (store.getMany === void 0) {
          const promises = keyPrefixed.map(async (key) => {
            const rawData2 = await store.get(key);
            const deserializedRow = typeof rawData2 === "string" || this.opts.compression ? await this.deserializeData(rawData2) : rawData2;
            if (deserializedRow === void 0 || deserializedRow === null) {
              return void 0;
            }
            if (isDataExpired(deserializedRow)) {
              await this.delete(key);
              return void 0;
            }
            return options?.raw ? deserializedRow : deserializedRow.value;
          });
          const deserializedRows = await Promise.allSettled(promises);
          const result2 = deserializedRows.map(
            // biome-ignore lint/suspicious/noExplicitAny: type format
            (row) => row.value
          );
          this.hooks.trigger("postGetMany", result2);
          if (result2.length > 0) {
            this.stats.hit();
          }
          return result2;
        }
        const rawData = await store.getMany(keyPrefixed);
        const result = [];
        const expiredKeys = [];
        for (const index2 in rawData) {
          let row = rawData[index2];
          if (typeof row === "string") {
            row = await this.deserializeData(row);
          }
          if (row === void 0 || row === null) {
            result.push(void 0);
            continue;
          }
          if (isDataExpired(row)) {
            expiredKeys.push(keys2[index2]);
            result.push(void 0);
            continue;
          }
          const value2 = options?.raw ? row : row.value;
          result.push(value2);
        }
        if (expiredKeys.length > 0) {
          await this.deleteMany(expiredKeys);
        }
        this.hooks.trigger("postGetMany", result);
        if (result.length > 0) {
          this.stats.hit();
        }
        return result;
      }
      /**
       * Get the raw value of a key. This is the replacement for setting raw to true in the get() method.
       * @param {string} key the key to get
       * @returns {Promise<StoredDataRaw<Value> | undefined>} will return a StoredDataRaw<Value> or undefined if the key does not exist or is expired.
       */
      async getRaw(key) {
        const { store } = this.opts;
        const keyPrefixed = this._getKeyPrefix(key);
        this.hooks.trigger("preGetRaw", { key: keyPrefixed });
        const rawData = await store.get(keyPrefixed);
        if (rawData === void 0 || rawData === null) {
          this.hooks.trigger("postGetRaw", {
            key: keyPrefixed,
            value: void 0
          });
          this.stats.miss();
          return void 0;
        }
        const deserializedData = typeof rawData === "string" || this.opts.compression ? await this.deserializeData(rawData) : rawData;
        if (deserializedData !== void 0 && deserializedData.expires !== void 0 && deserializedData.expires !== null && // biome-ignore lint/style/noNonNullAssertion: need to fix
        deserializedData.expires < Date.now()) {
          this.hooks.trigger("postGetRaw", {
            key: keyPrefixed,
            value: void 0
          });
          this.stats.miss();
          await this.delete(key);
          return void 0;
        }
        this.stats.hit();
        this.hooks.trigger("postGetRaw", {
          key: keyPrefixed,
          value: deserializedData
        });
        return deserializedData;
      }
      /**
       * Get the raw values of many keys. This is the replacement for setting raw to true in the getMany() method.
       * @param {string[]} keys the keys to get
       * @returns {Promise<Array<StoredDataRaw<Value>>>} will return an array of StoredDataRaw<Value> or undefined if the key does not exist or is expired.
       */
      async getManyRaw(keys2) {
        const { store } = this.opts;
        const keyPrefixed = this._getKeyPrefixArray(keys2);
        if (keys2.length === 0) {
          const result2 = Array.from({ length: keys2.length }).fill(
            void 0
          );
          this.stats.misses += keys2.length;
          this.hooks.trigger("postGetManyRaw", {
            keys: keyPrefixed,
            values: result2
          });
          return result2;
        }
        let result = [];
        if (store.getMany === void 0) {
          const promises = keyPrefixed.map(async (key) => {
            const rawData = await store.get(key);
            if (rawData !== void 0 && rawData !== null) {
              return this.deserializeData(rawData);
            }
            return void 0;
          });
          const deserializedRows = await Promise.allSettled(promises);
          result = deserializedRows.map(
            // biome-ignore lint/suspicious/noExplicitAny: type format
            (row) => row.value
          );
        } else {
          const rawData = await store.getMany(keyPrefixed);
          for (const row of rawData) {
            if (row !== void 0 && row !== null) {
              result.push(await this.deserializeData(row));
            } else {
              result.push(void 0);
            }
          }
        }
        const expiredKeys = [];
        const isDataExpired = (data2) => typeof data2.expires === "number" && Date.now() > data2.expires;
        for (const [index2, row] of result.entries()) {
          if (row !== void 0 && isDataExpired(row)) {
            expiredKeys.push(keyPrefixed[index2]);
            result[index2] = void 0;
          }
        }
        if (expiredKeys.length > 0) {
          await this.deleteMany(expiredKeys);
        }
        this.stats.hitsOrMisses(result);
        this.hooks.trigger("postGetManyRaw", {
          keys: keyPrefixed,
          values: result
        });
        return result;
      }
      /**
       * Set an item to the store
       * @param {string | Array<KeyvEntry>} key the key to use. If you pass in an array of KeyvEntry it will set many items
       * @param {Value} value the value of the key
       * @param {number} [ttl] time to live in milliseconds
       * @returns {boolean} if it sets then it will return a true. On failure will return false.
       */
      async set(key, value2, ttl2) {
        const data2 = { key, value: value2, ttl: ttl2 };
        this.hooks.trigger("preSet", data2);
        const keyPrefixed = this._getKeyPrefix(data2.key);
        data2.ttl ??= this._ttl;
        if (data2.ttl === 0) {
          data2.ttl = void 0;
        }
        const { store } = this.opts;
        const expires = typeof data2.ttl === "number" ? Date.now() + data2.ttl : void 0;
        if (typeof data2.value === "symbol") {
          this.emit("error", "symbol cannot be serialized");
          throw new Error("symbol cannot be serialized");
        }
        const formattedValue = { value: data2.value, expires };
        const serializedValue = await this.serializeData(formattedValue);
        let result = true;
        try {
          const value22 = await store.set(keyPrefixed, serializedValue, data2.ttl);
          if (typeof value22 === "boolean") {
            result = value22;
          }
        } catch (error) {
          result = false;
          this.emit("error", error);
          if (this._throwOnErrors) {
            throw error;
          }
        }
        this.hooks.trigger("postSet", {
          key: keyPrefixed,
          value: serializedValue,
          ttl: ttl2
        });
        this.stats.set();
        return result;
      }
      /**
       * Set many items to the store
       * @param {Array<KeyvEntry>} entries the entries to set
       * @returns {boolean[]} will return an array of booleans if it sets then it will return a true. On failure will return false.
       */
      // biome-ignore lint/correctness/noUnusedVariables: type format
      async setMany(entries3) {
        let results = [];
        try {
          if (this._store.setMany === void 0) {
            const promises = [];
            for (const entry of entries3) {
              promises.push(this.set(entry.key, entry.value, entry.ttl));
            }
            const promiseResults = await Promise.all(promises);
            results = promiseResults;
          } else {
            const serializedEntries = await Promise.all(
              entries3.map(async ({ key, value: value2, ttl: ttl2 }) => {
                ttl2 ??= this._ttl;
                if (ttl2 === 0) {
                  ttl2 = void 0;
                }
                const expires = typeof ttl2 === "number" ? Date.now() + ttl2 : void 0;
                if (typeof value2 === "symbol") {
                  this.emit("error", "symbol cannot be serialized");
                  throw new Error("symbol cannot be serialized");
                }
                const formattedValue = { value: value2, expires };
                const serializedValue = await this.serializeData(formattedValue);
                const keyPrefixed = this._getKeyPrefix(key);
                return { key: keyPrefixed, value: serializedValue, ttl: ttl2 };
              })
            );
            results = await this._store.setMany(serializedEntries);
          }
        } catch (error) {
          this.emit("error", error);
          if (this._throwOnErrors) {
            throw error;
          }
          results = entries3.map(() => false);
        }
        return results;
      }
      /**
       * Delete an Entry
       * @param {string | string[]} key the key to be deleted. if an array it will delete many items
       * @returns {boolean} will return true if item or items are deleted. false if there is an error
       */
      async delete(key) {
        const { store } = this.opts;
        if (Array.isArray(key)) {
          return this.deleteMany(key);
        }
        const keyPrefixed = this._getKeyPrefix(key);
        this.hooks.trigger("preDelete", { key: keyPrefixed });
        let result = true;
        try {
          const value2 = await store.delete(keyPrefixed);
          if (typeof value2 === "boolean") {
            result = value2;
          }
        } catch (error) {
          result = false;
          this.emit("error", error);
          if (this._throwOnErrors) {
            throw error;
          }
        }
        this.hooks.trigger("postDelete", {
          key: keyPrefixed,
          value: result
        });
        this.stats.delete();
        return result;
      }
      /**
       * Delete many items from the store
       * @param {string[]} keys the keys to be deleted
       * @returns {boolean} will return true if item or items are deleted. false if there is an error
       */
      async deleteMany(keys2) {
        try {
          const { store } = this.opts;
          const keyPrefixed = this._getKeyPrefixArray(keys2);
          this.hooks.trigger("preDelete", { key: keyPrefixed });
          if (store.deleteMany !== void 0) {
            return await store.deleteMany(keyPrefixed);
          }
          const promises = keyPrefixed.map(async (key) => store.delete(key));
          const results = await Promise.all(promises);
          const returnResult = results.every(Boolean);
          this.hooks.trigger("postDelete", {
            key: keyPrefixed,
            value: returnResult
          });
          return returnResult;
        } catch (error) {
          this.emit("error", error);
          if (this._throwOnErrors) {
            throw error;
          }
          return false;
        }
      }
      /**
       * Clear the store
       * @returns {void}
       */
      async clear() {
        this.emit("clear");
        const { store } = this.opts;
        try {
          await store.clear();
        } catch (error) {
          this.emit("error", error);
          if (this._throwOnErrors) {
            throw error;
          }
        }
      }
      async has(key) {
        if (Array.isArray(key)) {
          return this.hasMany(key);
        }
        const keyPrefixed = this._getKeyPrefix(key);
        const { store } = this.opts;
        if (store.has !== void 0 && !(store instanceof Map)) {
          return store.has(keyPrefixed);
        }
        let rawData;
        try {
          rawData = await store.get(keyPrefixed);
        } catch (error) {
          this.emit("error", error);
          if (this._throwOnErrors) {
            throw error;
          }
          return false;
        }
        if (rawData) {
          const data2 = await this.deserializeData(rawData);
          if (data2) {
            if (data2.expires === void 0 || data2.expires === null) {
              return true;
            }
            return data2.expires > Date.now();
          }
        }
        return false;
      }
      /**
       * Check if many keys exist
       * @param {string[]} keys the keys to check
       * @returns {boolean[]} will return an array of booleans if the keys exist
       */
      async hasMany(keys2) {
        const keyPrefixed = this._getKeyPrefixArray(keys2);
        const { store } = this.opts;
        if (store.hasMany !== void 0) {
          return store.hasMany(keyPrefixed);
        }
        const results = [];
        for (const key of keys2) {
          results.push(await this.has(key));
        }
        return results;
      }
      /**
       * Will disconnect the store. This is only available if the store has a disconnect method
       * @returns {Promise<void>}
       */
      async disconnect() {
        const { store } = this.opts;
        this.emit("disconnect");
        if (typeof store.disconnect === "function") {
          return store.disconnect();
        }
      }
      // biome-ignore lint/suspicious/noExplicitAny: type format
      emit(event, ...arguments_) {
        if (event === "error" && !this.opts.emitErrors) {
          return;
        }
        super.emit(event, ...arguments_);
      }
      async serializeData(data2) {
        if (!this._serialize) {
          return data2;
        }
        if (this._compression?.compress) {
          return this._serialize({
            value: await this._compression.compress(data2.value),
            expires: data2.expires
          });
        }
        return this._serialize(data2);
      }
      async deserializeData(data2) {
        if (!this._deserialize) {
          return data2;
        }
        if (this._compression?.decompress && typeof data2 === "string") {
          const result = await this._deserialize(data2);
          return {
            value: await this._compression.decompress(result?.value),
            expires: result?.expires
          };
        }
        if (typeof data2 === "string") {
          return this._deserialize(data2);
        }
        return void 0;
      }
    };
  }
});

// ../../node_modules/.pnpm/mimic-response@4.0.0/node_modules/mimic-response/index.js
function mimicResponse(fromStream3, toStream) {
  if (toStream._readableState.autoDestroy) {
    throw new Error("The second stream must have the `autoDestroy` option set to `false`");
  }
  const fromProperties = /* @__PURE__ */ new Set([...Object.keys(fromStream3), ...knownProperties]);
  const properties = {};
  for (const property of fromProperties) {
    if (property in toStream) {
      continue;
    }
    properties[property] = {
      get() {
        const value2 = fromStream3[property];
        const isFunction5 = typeof value2 === "function";
        return isFunction5 ? value2.bind(fromStream3) : value2;
      },
      set(value2) {
        fromStream3[property] = value2;
      },
      enumerable: true,
      configurable: false
    };
  }
  Object.defineProperties(toStream, properties);
  fromStream3.once("aborted", () => {
    toStream.destroy();
    toStream.emit("aborted");
  });
  fromStream3.once("close", () => {
    if (fromStream3.complete) {
      if (toStream.readable) {
        toStream.once("end", () => {
          toStream.emit("close");
        });
      } else {
        toStream.emit("close");
      }
    } else {
      toStream.emit("close");
    }
  });
  return toStream;
}
var knownProperties;
var init_mimic_response = __esm({
  "../../node_modules/.pnpm/mimic-response@4.0.0/node_modules/mimic-response/index.js"() {
    knownProperties = [
      "aborted",
      "complete",
      "headers",
      "httpVersion",
      "httpVersionMinor",
      "httpVersionMajor",
      "method",
      "rawHeaders",
      "rawTrailers",
      "setTimeout",
      "socket",
      "statusCode",
      "statusMessage",
      "trailers",
      "url"
    ];
  }
});

// ../../node_modules/.pnpm/normalize-url@8.1.1/node_modules/normalize-url/index.js
function normalizeUrl(urlString, options) {
  options = {
    defaultProtocol: "http",
    normalizeProtocol: true,
    forceHttp: false,
    forceHttps: false,
    stripAuthentication: true,
    stripHash: false,
    stripTextFragment: true,
    stripWWW: true,
    removeQueryParameters: [/^utm_\w+/i],
    removeTrailingSlash: true,
    removeSingleSlash: true,
    removeDirectoryIndex: false,
    removeExplicitPort: false,
    sortQueryParameters: true,
    removePath: false,
    transformPath: false,
    ...options
  };
  if (typeof options.defaultProtocol === "string" && !options.defaultProtocol.endsWith(":")) {
    options.defaultProtocol = `${options.defaultProtocol}:`;
  }
  urlString = urlString.trim();
  if (/^data:/i.test(urlString)) {
    return normalizeDataURL(urlString, options);
  }
  if (hasCustomProtocol(urlString)) {
    return urlString;
  }
  const hasRelativeProtocol = urlString.startsWith("//");
  const isRelativeUrl = !hasRelativeProtocol && /^\.*\//.test(urlString);
  if (!isRelativeUrl) {
    urlString = urlString.replace(/^(?!(?:\w+:)?\/\/)|^\/\//, options.defaultProtocol);
  }
  const urlObject = new URL(urlString);
  if (options.forceHttp && options.forceHttps) {
    throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");
  }
  if (options.forceHttp && urlObject.protocol === "https:") {
    urlObject.protocol = "http:";
  }
  if (options.forceHttps && urlObject.protocol === "http:") {
    urlObject.protocol = "https:";
  }
  if (options.stripAuthentication) {
    urlObject.username = "";
    urlObject.password = "";
  }
  if (options.stripHash) {
    urlObject.hash = "";
  } else if (options.stripTextFragment) {
    urlObject.hash = urlObject.hash.replace(/#?:~:text.*?$/i, "");
  }
  if (urlObject.pathname) {
    const protocolRegex = /\b[a-z][a-z\d+\-.]{1,50}:\/\//g;
    let lastIndex = 0;
    let result = "";
    for (; ; ) {
      const match = protocolRegex.exec(urlObject.pathname);
      if (!match) {
        break;
      }
      const protocol = match[0];
      const protocolAtIndex = match.index;
      const intermediate = urlObject.pathname.slice(lastIndex, protocolAtIndex);
      result += intermediate.replace(/\/{2,}/g, "/");
      result += protocol;
      lastIndex = protocolAtIndex + protocol.length;
    }
    const remnant = urlObject.pathname.slice(lastIndex, urlObject.pathname.length);
    result += remnant.replace(/\/{2,}/g, "/");
    urlObject.pathname = result;
  }
  if (urlObject.pathname) {
    try {
      urlObject.pathname = decodeURI(urlObject.pathname).replace(/\\/g, "%5C");
    } catch {
    }
  }
  if (options.removeDirectoryIndex === true) {
    options.removeDirectoryIndex = [/^index\.[a-z]+$/];
  }
  if (Array.isArray(options.removeDirectoryIndex) && options.removeDirectoryIndex.length > 0) {
    const pathComponents = urlObject.pathname.split("/").filter(Boolean);
    const lastComponent = pathComponents.at(-1);
    if (lastComponent && testParameter(lastComponent, options.removeDirectoryIndex)) {
      pathComponents.pop();
      urlObject.pathname = pathComponents.length > 0 ? `/${pathComponents.join("/")}/` : "/";
    }
  }
  if (options.removePath) {
    urlObject.pathname = "/";
  }
  if (options.transformPath && typeof options.transformPath === "function") {
    const pathComponents = urlObject.pathname.split("/").filter(Boolean);
    const newComponents = options.transformPath(pathComponents);
    urlObject.pathname = newComponents?.length > 0 ? `/${newComponents.join("/")}` : "/";
  }
  if (urlObject.hostname) {
    urlObject.hostname = urlObject.hostname.replace(/\.$/, "");
    if (options.stripWWW && /^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(urlObject.hostname)) {
      urlObject.hostname = urlObject.hostname.replace(/^www\./, "");
    }
  }
  if (Array.isArray(options.removeQueryParameters)) {
    for (const key of [...urlObject.searchParams.keys()]) {
      if (testParameter(key, options.removeQueryParameters)) {
        urlObject.searchParams.delete(key);
      }
    }
  }
  if (!Array.isArray(options.keepQueryParameters) && options.removeQueryParameters === true) {
    urlObject.search = "";
  }
  if (Array.isArray(options.keepQueryParameters) && options.keepQueryParameters.length > 0) {
    for (const key of [...urlObject.searchParams.keys()]) {
      if (!testParameter(key, options.keepQueryParameters)) {
        urlObject.searchParams.delete(key);
      }
    }
  }
  if (options.sortQueryParameters) {
    const originalSearch = urlObject.search;
    urlObject.searchParams.sort();
    try {
      urlObject.search = decodeURIComponent(urlObject.search);
    } catch {
    }
    const partsWithoutEquals = originalSearch.slice(1).split("&").filter((p3) => p3 && !p3.includes("="));
    for (const part of partsWithoutEquals) {
      const decoded = decodeURIComponent(part);
      urlObject.search = urlObject.search.replace(`?${decoded}=`, `?${decoded}`).replace(`&${decoded}=`, `&${decoded}`);
    }
  }
  if (options.removeTrailingSlash) {
    urlObject.pathname = urlObject.pathname.replace(/\/$/, "");
  }
  if (options.removeExplicitPort && urlObject.port) {
    urlObject.port = "";
  }
  const oldUrlString = urlString;
  urlString = urlObject.toString();
  if (!options.removeSingleSlash && urlObject.pathname === "/" && !oldUrlString.endsWith("/") && urlObject.hash === "") {
    urlString = urlString.replace(/\/$/, "");
  }
  if ((options.removeTrailingSlash || urlObject.pathname === "/") && urlObject.hash === "" && options.removeSingleSlash) {
    urlString = urlString.replace(/\/$/, "");
  }
  if (hasRelativeProtocol && !options.normalizeProtocol) {
    urlString = urlString.replace(/^http:\/\//, "//");
  }
  if (options.stripProtocol) {
    urlString = urlString.replace(/^(?:https?:)?\/\//, "");
  }
  return urlString;
}
var DATA_URL_DEFAULT_MIME_TYPE, DATA_URL_DEFAULT_CHARSET, testParameter, supportedProtocols, hasCustomProtocol, normalizeDataURL;
var init_normalize_url = __esm({
  "../../node_modules/.pnpm/normalize-url@8.1.1/node_modules/normalize-url/index.js"() {
    DATA_URL_DEFAULT_MIME_TYPE = "text/plain";
    DATA_URL_DEFAULT_CHARSET = "us-ascii";
    testParameter = (name, filters) => filters.some((filter3) => filter3 instanceof RegExp ? filter3.test(name) : filter3 === name);
    supportedProtocols = /* @__PURE__ */ new Set([
      "https:",
      "http:",
      "file:"
    ]);
    hasCustomProtocol = (urlString) => {
      try {
        const { protocol } = new URL(urlString);
        return protocol.endsWith(":") && !protocol.includes(".") && !supportedProtocols.has(protocol);
      } catch {
        return false;
      }
    };
    normalizeDataURL = (urlString, { stripHash }) => {
      const match = /^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(urlString);
      if (!match) {
        throw new Error(`Invalid URL: ${urlString}`);
      }
      const { type, data: data2, hash } = match.groups;
      const mediaType = type.split(";");
      const isBase64 = mediaType.at(-1) === "base64";
      if (isBase64) {
        mediaType.pop();
      }
      const mimeType = mediaType.shift()?.toLowerCase() ?? "";
      const attributes2 = mediaType.map((attribute) => {
        let [key, value2 = ""] = attribute.split("=").map((string) => string.trim());
        if (key === "charset") {
          value2 = value2.toLowerCase();
          if (value2 === DATA_URL_DEFAULT_CHARSET) {
            return "";
          }
        }
        return `${key}${value2 ? `=${value2}` : ""}`;
      }).filter(Boolean);
      const normalizedMediaType = [...attributes2];
      if (isBase64) {
        normalizedMediaType.push("base64");
      }
      if (normalizedMediaType.length > 0 || mimeType && mimeType !== DATA_URL_DEFAULT_MIME_TYPE) {
        normalizedMediaType.unshift(mimeType);
      }
      const hashPart = stripHash || !hash ? "" : `#${hash}`;
      return `data:${normalizedMediaType.join(";")},${isBase64 ? data2.trim() : data2}${hashPart}`;
    };
  }
});

// ../../node_modules/.pnpm/lowercase-keys@3.0.0/node_modules/lowercase-keys/index.js
function lowercaseKeys(object) {
  return Object.fromEntries(Object.entries(object).map(([key, value2]) => [key.toLowerCase(), value2]));
}
var init_lowercase_keys = __esm({
  "../../node_modules/.pnpm/lowercase-keys@3.0.0/node_modules/lowercase-keys/index.js"() {
  }
});

// ../../node_modules/.pnpm/responselike@4.0.2/node_modules/responselike/index.js
import { Readable as ReadableStream2 } from "node:stream";
var Response;
var init_responselike = __esm({
  "../../node_modules/.pnpm/responselike@4.0.2/node_modules/responselike/index.js"() {
    init_lowercase_keys();
    Response = class extends ReadableStream2 {
      statusCode;
      headers;
      body;
      url;
      complete;
      constructor({ statusCode, headers, body, url: url3 }) {
        if (typeof statusCode !== "number") {
          throw new TypeError("Argument `statusCode` should be a number");
        }
        if (typeof headers !== "object") {
          throw new TypeError("Argument `headers` should be an object");
        }
        if (!(body instanceof Uint8Array)) {
          throw new TypeError("Argument `body` should be a buffer");
        }
        if (typeof url3 !== "string") {
          throw new TypeError("Argument `url` should be a string");
        }
        let bodyPushed = false;
        super({
          read() {
            if (!bodyPushed) {
              bodyPushed = true;
              this.push(body);
              return;
            }
            this.push(null);
          }
        });
        this.statusCode = statusCode;
        this.headers = lowercaseKeys(headers);
        this.body = body;
        this.url = url3;
        this.complete = true;
      }
    };
  }
});

// ../../node_modules/.pnpm/cacheable-request@13.0.18/node_modules/cacheable-request/dist/types.js
var RequestError2, CacheError2;
var init_types = __esm({
  "../../node_modules/.pnpm/cacheable-request@13.0.18/node_modules/cacheable-request/dist/types.js"() {
    RequestError2 = class extends Error {
      constructor(error) {
        super(error.message);
        Object.defineProperties(this, Object.getOwnPropertyDescriptors(error));
      }
    };
    CacheError2 = class extends Error {
      constructor(error) {
        super(error.message);
        Object.defineProperties(this, Object.getOwnPropertyDescriptors(error));
      }
    };
  }
});

// ../../node_modules/.pnpm/cacheable-request@13.0.18/node_modules/cacheable-request/dist/index.js
import crypto2 from "node:crypto";
import EventEmitter from "node:events";
import stream2, { PassThrough as PassThroughStream } from "node:stream";
import urlLib, { URL as URL2 } from "node:url";
var import_http_cache_semantics, CacheableRequest, entries, cloneResponse, urlObjectToRequestOptions, normalizeUrlObject, convertHeaders, parseWithWhatwg, dist_default;
var init_dist3 = __esm({
  "../../node_modules/.pnpm/cacheable-request@13.0.18/node_modules/cacheable-request/dist/index.js"() {
    init_source();
    import_http_cache_semantics = __toESM(require_http_cache_semantics(), 1);
    init_dist2();
    init_mimic_response();
    init_normalize_url();
    init_responselike();
    init_types();
    init_types();
    CacheableRequest = class {
      constructor(cacheRequest, cacheAdapter) {
        this.cache = new Keyv({ namespace: "cacheable-request" });
        this.hooks = /* @__PURE__ */ new Map();
        this.request = () => (options, callback) => {
          let url3;
          if (typeof options === "string") {
            url3 = normalizeUrlObject(parseWithWhatwg(options));
            options = {};
          } else if (options instanceof urlLib.URL) {
            url3 = normalizeUrlObject(parseWithWhatwg(options.toString()));
            options = {};
          } else {
            const [pathname, ...searchParts] = (options.path ?? "").split("?");
            const search = searchParts.length > 0 ? `?${searchParts.join("?")}` : "";
            url3 = normalizeUrlObject({ ...options, pathname, search });
          }
          options = {
            headers: {},
            method: "GET",
            cache: true,
            strictTtl: false,
            automaticFailover: false,
            ...options,
            ...urlObjectToRequestOptions(url3)
          };
          options.headers = Object.fromEntries(entries(options.headers).map(([key2, value2]) => [
            key2.toLowerCase(),
            value2
          ]));
          const ee = new EventEmitter();
          const normalizedUrlString = normalizeUrl(urlLib.format(url3), {
            stripWWW: false,
            removeTrailingSlash: false,
            stripAuthentication: false
          });
          let key = `${options.method}:${normalizedUrlString}`;
          if (options.body && options.method !== void 0 && ["POST", "PATCH", "PUT"].includes(options.method)) {
            if (options.body instanceof stream2.Readable) {
              options.cache = false;
            } else {
              key += `:${crypto2.createHash("md5").update(options.body).digest("hex")}`;
            }
          }
          let revalidate = false;
          let madeRequest = false;
          const makeRequest = (options_) => {
            madeRequest = true;
            let requestErrored = false;
            let requestErrorCallback = () => {
            };
            const requestErrorPromise = new Promise((resolve4) => {
              requestErrorCallback = () => {
                if (!requestErrored) {
                  requestErrored = true;
                  resolve4();
                }
              };
            });
            const handler = async (response) => {
              if (revalidate) {
                response.status = response.statusCode;
                const originalPolicy = import_http_cache_semantics.default.fromObject(revalidate.cachePolicy);
                const revalidatedPolicy = originalPolicy.revalidatedPolicy(options_, response);
                if (!revalidatedPolicy.modified) {
                  response.resume();
                  await new Promise((resolve4) => {
                    response.once("end", resolve4);
                  });
                  const headers = convertHeaders(revalidatedPolicy.policy.responseHeaders());
                  const originalHeaders = convertHeaders(originalPolicy.responseHeaders());
                  const preserveHeaders = [
                    "content-encoding",
                    "content-type",
                    "content-length",
                    "content-language",
                    "content-location",
                    "etag"
                  ];
                  for (const headerName of preserveHeaders) {
                    if (originalHeaders[headerName] !== void 0 && headers[headerName] === void 0) {
                      headers[headerName] = originalHeaders[headerName];
                    }
                  }
                  response = new Response({
                    statusCode: revalidate.statusCode,
                    headers,
                    body: revalidate.body,
                    url: revalidate.url
                  });
                  response.cachePolicy = revalidatedPolicy.policy;
                  response.fromCache = true;
                }
              }
              if (!response.fromCache) {
                response.cachePolicy = new import_http_cache_semantics.default(options_, response, options_);
                response.fromCache = false;
              }
              let clonedResponse;
              if (options_.cache && response.cachePolicy.storable()) {
                clonedResponse = cloneResponse(response);
                (async () => {
                  try {
                    const bodyPromise = getStreamAsBuffer(response);
                    await Promise.race([
                      requestErrorPromise,
                      new Promise((resolve4) => response.once("end", resolve4)),
                      new Promise((resolve4) => response.once("close", resolve4))
                    ]);
                    const body = await bodyPromise;
                    let value2 = {
                      url: response.url,
                      statusCode: response.fromCache ? revalidate.statusCode : response.statusCode,
                      body,
                      cachePolicy: response.cachePolicy.toObject()
                    };
                    let ttl2 = options_.strictTtl ? response.cachePolicy.timeToLive() : void 0;
                    if (options_.maxTtl) {
                      ttl2 = ttl2 ? Math.min(ttl2, options_.maxTtl) : options_.maxTtl;
                    }
                    if (this.hooks.size > 0) {
                      for (const key_ of this.hooks.keys()) {
                        value2 = await this.runHook(key_, value2, response);
                      }
                    }
                    await this.cache.set(key, value2, ttl2);
                  } catch (error) {
                    ee.emit("error", new CacheError2(error));
                  }
                })();
              } else if (options_.cache && revalidate) {
                (async () => {
                  try {
                    await this.cache.delete(key);
                  } catch (error) {
                    ee.emit("error", new CacheError2(error));
                  }
                })();
              }
              ee.emit("response", clonedResponse ?? response);
              if (typeof callback === "function") {
                callback(clonedResponse ?? response);
              }
            };
            try {
              const request_ = this.cacheRequest(options_, handler);
              request_.once("error", requestErrorCallback);
              request_.once("abort", requestErrorCallback);
              request_.once("destroy", requestErrorCallback);
              ee.emit("request", request_);
            } catch (error) {
              ee.emit("error", new RequestError2(error));
            }
          };
          (async () => {
            const get = async (options_) => {
              await Promise.resolve();
              const cacheEntry = options_.cache ? await this.cache.get(key) : void 0;
              if (cacheEntry === void 0 && !options_.forceRefresh) {
                makeRequest(options_);
                return;
              }
              const policy = import_http_cache_semantics.default.fromObject(cacheEntry.cachePolicy);
              if (policy.satisfiesWithoutRevalidation(options_) && !options_.forceRefresh) {
                const headers = convertHeaders(policy.responseHeaders());
                const bodyBuffer = cacheEntry.body;
                const body = Buffer.from(bodyBuffer);
                const response = new Response({
                  statusCode: cacheEntry.statusCode,
                  headers,
                  body,
                  url: cacheEntry.url
                });
                response.cachePolicy = policy;
                response.fromCache = true;
                ee.emit("response", response);
                if (typeof callback === "function") {
                  callback(response);
                }
              } else if (policy.satisfiesWithoutRevalidation(options_) && Date.now() >= policy.timeToLive() && options_.forceRefresh) {
                await this.cache.delete(key);
                options_.headers = policy.revalidationHeaders(options_);
                makeRequest(options_);
              } else {
                revalidate = cacheEntry;
                options_.headers = policy.revalidationHeaders(options_);
                makeRequest(options_);
              }
            };
            const errorHandler = (error) => ee.emit("error", new CacheError2(error));
            if (this.cache instanceof Keyv) {
              const cachek = this.cache;
              cachek.once("error", errorHandler);
              ee.on("error", () => {
                cachek.removeListener("error", errorHandler);
              });
              ee.on("response", () => {
                cachek.removeListener("error", errorHandler);
              });
            }
            try {
              await get(options);
            } catch (error) {
              if (options.automaticFailover && !madeRequest) {
                makeRequest(options);
              }
              ee.emit("error", new CacheError2(error));
            }
          })();
          return ee;
        };
        this.addHook = (name, function_) => {
          if (!this.hooks.has(name)) {
            this.hooks.set(name, function_);
          }
        };
        this.removeHook = (name) => this.hooks.delete(name);
        this.getHook = (name) => this.hooks.get(name);
        this.runHook = async (name, ...arguments_) => this.hooks.get(name)?.(...arguments_);
        if (cacheAdapter) {
          if (cacheAdapter instanceof Keyv) {
            this.cache = cacheAdapter;
          } else {
            this.cache = new Keyv({
              store: cacheAdapter,
              namespace: "cacheable-request"
            });
          }
        }
        this.request = this.request.bind(this);
        this.cacheRequest = cacheRequest;
      }
    };
    entries = Object.entries;
    cloneResponse = (response) => {
      const clone = new PassThroughStream({ autoDestroy: false });
      mimicResponse(response, clone);
      return response.pipe(clone);
    };
    urlObjectToRequestOptions = (url3) => {
      const options = { ...url3 };
      options.path = `${url3.pathname || "/"}${url3.search || ""}`;
      delete options.pathname;
      delete options.search;
      return options;
    };
    normalizeUrlObject = (url3) => (
      // If url was parsed by url.parse or new URL:
      // - hostname will be set
      // - host will be hostname[:port]
      // - port will be set if it was explicit in the parsed string
      // Otherwise, url was from request options:
      // - hostname or host may be set
      // - host shall not have port encoded
      {
        protocol: url3.protocol,
        auth: url3.auth,
        hostname: url3.hostname || url3.host || "localhost",
        port: url3.port,
        pathname: url3.pathname,
        search: url3.search
      }
    );
    convertHeaders = (headers) => {
      const result = [];
      for (const name of Object.keys(headers)) {
        result[name.toLowerCase()] = headers[name];
      }
      return result;
    };
    parseWithWhatwg = (raw) => {
      const u5 = new URL2(raw);
      return {
        protocol: u5.protocol,
        // E.g. 'https:'
        slashes: true,
        // Always true for WHATWG URLs
        /* c8 ignore next 3 */
        auth: u5.username || u5.password ? `${u5.username}:${u5.password}` : void 0,
        host: u5.host,
        // E.g. 'example.com:8080'
        port: u5.port,
        // E.g. '8080'
        hostname: u5.hostname,
        // E.g. 'example.com'
        hash: u5.hash,
        // E.g. '#quux'
        search: u5.search,
        // E.g. '?bar=baz'
        query: Object.fromEntries(u5.searchParams),
        // { bar: 'baz' }
        pathname: u5.pathname,
        // E.g. '/foo'
        path: u5.pathname + u5.search,
        // '/foo?bar=baz'
        href: u5.href
        // Full serialized URL
      };
    };
    dist_default = CacheableRequest;
  }
});

// ../../node_modules/.pnpm/decompress-response@10.0.0/node_modules/decompress-response/index.js
import { Transform as TransformStream2, PassThrough as PassThroughStream2 } from "node:stream";
import zlib from "node:zlib";
function decompressResponse(response) {
  const contentEncoding = (response.headers["content-encoding"] || "").toLowerCase();
  const supportedEncodings = ["gzip", "deflate", "br"];
  if (supportsZstd) {
    supportedEncodings.push("zstd");
  }
  if (!supportedEncodings.includes(contentEncoding)) {
    return response;
  }
  let isEmpty2 = true;
  const headers = { ...response.headers };
  const finalStream = new PassThroughStream2({
    autoDestroy: false
  });
  finalStream.once("error", () => {
    response.destroy();
  });
  function handleContentEncoding(data2) {
    let decompressStream;
    if (contentEncoding === "zstd") {
      decompressStream = zlib.createZstdDecompress();
    } else if (contentEncoding === "br") {
      decompressStream = zlib.createBrotliDecompress();
    } else if (contentEncoding === "deflate" && data2.length > 0 && (data2[0] & 8) === 0) {
      decompressStream = zlib.createInflateRaw();
    } else {
      decompressStream = zlib.createUnzip();
    }
    decompressStream.once("error", (error) => {
      if (isEmpty2 && !response.readable) {
        finalStream.end();
        return;
      }
      finalStream.destroy(error);
    });
    checker.pipe(decompressStream).pipe(finalStream);
  }
  const checker = new TransformStream2({
    transform(data2, _encoding, callback) {
      if (isEmpty2 === false) {
        callback(null, data2);
        return;
      }
      isEmpty2 = false;
      handleContentEncoding(data2);
      callback(null, data2);
    },
    flush(callback) {
      if (isEmpty2) {
        finalStream.end();
      }
      callback();
    }
  });
  delete headers["content-encoding"];
  delete headers["content-length"];
  finalStream.headers = headers;
  mimicResponse(response, finalStream);
  response.pipe(checker);
  return finalStream;
}
var supportsZstd;
var init_decompress_response = __esm({
  "../../node_modules/.pnpm/decompress-response@10.0.0/node_modules/decompress-response/index.js"() {
    init_mimic_response();
    supportsZstd = typeof zlib.createZstdDecompress === "function";
  }
});

// ../../node_modules/.pnpm/form-data-encoder@4.1.0/node_modules/form-data-encoder/lib/index.js
function* chunk(value2) {
  if (value2.byteLength <= MAX_CHUNK_SIZE) {
    yield value2;
    return;
  }
  let offset2 = 0;
  while (offset2 < value2.byteLength) {
    const size = Math.min(value2.byteLength - offset2, MAX_CHUNK_SIZE);
    const buffer = value2.buffer.slice(offset2, offset2 + size);
    offset2 += buffer.byteLength;
    yield new Uint8Array(buffer);
  }
}
function createBoundary() {
  let size = 16;
  let res = "";
  while (size--) {
    res += alphabet[Math.random() * alphabet.length << 0];
  }
  return res;
}
async function* readStream(readable) {
  const reader = readable.getReader();
  while (true) {
    const { done, value: value2 } = await reader.read();
    if (done) {
      break;
    }
    yield value2;
  }
}
async function* chunkStream(stream7) {
  for await (const value2 of stream7) {
    yield* chunk(value2);
  }
}
function isPlainObject2(value2) {
  if (getType(value2) !== "object") {
    return false;
  }
  const pp = Object.getPrototypeOf(value2);
  if (pp === null || pp === void 0) {
    return true;
  }
  return pp.constructor?.toString?.() === Object.toString();
}
function getProperty(target, prop) {
  if (typeof prop === "string") {
    for (const [name, value2] of Object.entries(target)) {
      if (prop.toLowerCase() === name.toLowerCase()) {
        return value2;
      }
    }
  }
  return void 0;
}
var __typeError, __accessCheck, __privateGet, __privateAdd, __privateSet, __privateMethod, MAX_CHUNK_SIZE, alphabet, escapeName, isFunction2, isReadableStreamFallback, isAsyncIterable2, getStreamIterator, isFile, isFormData2, getType, normalizeValue, proxyHeaders, defaultOptions, readonlyProp, _CRLF, _CRLF_BYTES, _CRLF_BYTES_LENGTH, _DASHES, _encoder, _footer, _form, _options, _FormDataEncoder_instances, getFieldHeader_fn, getContentLength_fn, FormDataEncoder;
var init_lib = __esm({
  "../../node_modules/.pnpm/form-data-encoder@4.1.0/node_modules/form-data-encoder/lib/index.js"() {
    __typeError = (msg) => {
      throw TypeError(msg);
    };
    __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
    __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
    __privateAdd = (obj, member, value2) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value2);
    __privateSet = (obj, member, value2, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value2) : member.set(obj, value2), value2);
    __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
    MAX_CHUNK_SIZE = 65536;
    alphabet = "abcdefghijklmnopqrstuvwxyz0123456789";
    escapeName = (name) => String(name).replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/"/g, "%22");
    isFunction2 = (value2) => typeof value2 === "function";
    isReadableStreamFallback = (value2) => !!value2 && typeof value2 === "object" && !Array.isArray(value2) && isFunction2(value2.getReader);
    isAsyncIterable2 = (value2) => isFunction2(value2[Symbol.asyncIterator]);
    getStreamIterator = (source) => {
      if (isAsyncIterable2(source)) {
        return chunkStream(source);
      }
      if (isReadableStreamFallback(source)) {
        return chunkStream(readStream(source));
      }
      throw new TypeError(
        "Unsupported data source: Expected either ReadableStream or async iterable."
      );
    };
    isFile = (value2) => Boolean(
      value2 && typeof value2 === "object" && isFunction2(value2.constructor) && value2[Symbol.toStringTag] === "File" && isFunction2(value2.stream) && value2.name != null
    );
    isFormData2 = (value2) => Boolean(
      value2 && isFunction2(value2.constructor) && value2[Symbol.toStringTag] === "FormData" && isFunction2(value2.append) && isFunction2(value2.getAll) && isFunction2(value2.entries) && isFunction2(value2[Symbol.iterator])
    );
    getType = (value2) => Object.prototype.toString.call(value2).slice(8, -1).toLowerCase();
    normalizeValue = (value2) => String(value2).replace(/\r|\n/g, (match, i5, str) => {
      if (match === "\r" && str[i5 + 1] !== "\n" || match === "\n" && str[i5 - 1] !== "\r") {
        return "\r\n";
      }
      return match;
    });
    proxyHeaders = (object) => new Proxy(
      object,
      {
        get: (target, prop) => getProperty(target, prop),
        has: (target, prop) => getProperty(target, prop) !== void 0
      }
    );
    defaultOptions = {
      enableAdditionalHeaders: false
    };
    readonlyProp = { writable: false, configurable: false };
    FormDataEncoder = class {
      constructor(form, boundaryOrOptions, options) {
        __privateAdd(this, _FormDataEncoder_instances);
        __privateAdd(this, _CRLF, "\r\n");
        __privateAdd(this, _CRLF_BYTES);
        __privateAdd(this, _CRLF_BYTES_LENGTH);
        __privateAdd(this, _DASHES, "-".repeat(2));
        __privateAdd(this, _encoder, new TextEncoder());
        __privateAdd(this, _footer);
        __privateAdd(this, _form);
        __privateAdd(this, _options);
        if (!isFormData2(form)) {
          throw new TypeError("Expected first argument to be a FormData instance.");
        }
        let boundary;
        if (isPlainObject2(boundaryOrOptions)) {
          options = boundaryOrOptions;
        } else {
          boundary = boundaryOrOptions;
        }
        if (!boundary) {
          boundary = `form-data-encoder-${createBoundary()}`;
        }
        if (typeof boundary !== "string") {
          throw new TypeError("Expected boundary argument to be a string.");
        }
        if (options && !isPlainObject2(options)) {
          throw new TypeError("Expected options argument to be an object.");
        }
        __privateSet(this, _form, Array.from(form.entries()));
        __privateSet(this, _options, { ...defaultOptions, ...options });
        __privateSet(this, _CRLF_BYTES, __privateGet(this, _encoder).encode(__privateGet(this, _CRLF)));
        __privateSet(this, _CRLF_BYTES_LENGTH, __privateGet(this, _CRLF_BYTES).byteLength);
        this.boundary = boundary;
        this.contentType = `multipart/form-data; boundary=${this.boundary}`;
        __privateSet(this, _footer, __privateGet(this, _encoder).encode(
          `${__privateGet(this, _DASHES)}${this.boundary}${__privateGet(this, _DASHES)}${__privateGet(this, _CRLF).repeat(2)}`
        ));
        const headers = {
          "Content-Type": this.contentType
        };
        const contentLength = __privateMethod(this, _FormDataEncoder_instances, getContentLength_fn).call(this);
        if (contentLength) {
          this.contentLength = contentLength;
          headers["Content-Length"] = contentLength;
        }
        this.headers = proxyHeaders(Object.freeze(headers));
        Object.defineProperties(this, {
          boundary: readonlyProp,
          contentType: readonlyProp,
          contentLength: readonlyProp,
          headers: readonlyProp
        });
      }
      /**
       * Creates an iterator allowing to go through form-data parts (with metadata).
       * This method **will not** read the files and **will not** split values big into smaller chunks.
       *
       * Using this method, you can convert form-data content into Blob:
       *
       * @example
       *
       * ```ts
       * import {Readable} from "stream"
       *
       * import {FormDataEncoder} from "form-data-encoder"
       *
       * import {FormData} from "formdata-polyfill/esm-min.js"
       * import {fileFrom} from "fetch-blob/form.js"
       * import {File} from "fetch-blob/file.js"
       * import {Blob} from "fetch-blob"
       *
       * import fetch from "node-fetch"
       *
       * const form = new FormData()
       *
       * form.set("field", "Just a random string")
       * form.set("file", new File(["Using files is class amazing"]))
       * form.set("fileFromPath", await fileFrom("path/to/a/file.txt"))
       *
       * const encoder = new FormDataEncoder(form)
       *
       * const options = {
       *   method: "post",
       *   body: new Blob(encoder, {type: encoder.contentType})
       * }
       *
       * const response = await fetch("https://httpbin.org/post", options)
       *
       * console.log(await response.json())
       * ```
       */
      *values() {
        for (const [name, raw] of __privateGet(this, _form)) {
          const value2 = isFile(raw) ? raw : __privateGet(this, _encoder).encode(normalizeValue(raw));
          yield __privateMethod(this, _FormDataEncoder_instances, getFieldHeader_fn).call(this, name, value2);
          yield value2;
          yield __privateGet(this, _CRLF_BYTES);
        }
        yield __privateGet(this, _footer);
      }
      /**
       * Creates an async iterator allowing to perform the encoding by portions.
       * This method reads through files and splits big values into smaller pieces (65536 bytes per each).
       *
       * @example
       *
       * ```ts
       * import {Readable} from "stream"
       *
       * import {FormData, File, fileFromPath} from "formdata-node"
       * import {FormDataEncoder} from "form-data-encoder"
       *
       * import fetch from "node-fetch"
       *
       * const form = new FormData()
       *
       * form.set("field", "Just a random string")
       * form.set("file", new File(["Using files is class amazing"], "file.txt"))
       * form.set("fileFromPath", await fileFromPath("path/to/a/file.txt"))
       *
       * const encoder = new FormDataEncoder(form)
       *
       * const options = {
       *   method: "post",
       *   headers: encoder.headers,
       *   body: Readable.from(encoder.encode()) // or Readable.from(encoder)
       * }
       *
       * const response = await fetch("https://httpbin.org/post", options)
       *
       * console.log(await response.json())
       * ```
       */
      async *encode() {
        for (const part of this.values()) {
          if (isFile(part)) {
            yield* getStreamIterator(part.stream());
          } else {
            yield* chunk(part);
          }
        }
      }
      /**
       * Creates an iterator allowing to read through the encoder data using for...of loops
       */
      [Symbol.iterator]() {
        return this.values();
      }
      /**
       * Creates an **async** iterator allowing to read through the encoder data using for-await...of loops
       */
      [Symbol.asyncIterator]() {
        return this.encode();
      }
    };
    _CRLF = /* @__PURE__ */ new WeakMap();
    _CRLF_BYTES = /* @__PURE__ */ new WeakMap();
    _CRLF_BYTES_LENGTH = /* @__PURE__ */ new WeakMap();
    _DASHES = /* @__PURE__ */ new WeakMap();
    _encoder = /* @__PURE__ */ new WeakMap();
    _footer = /* @__PURE__ */ new WeakMap();
    _form = /* @__PURE__ */ new WeakMap();
    _options = /* @__PURE__ */ new WeakMap();
    _FormDataEncoder_instances = /* @__PURE__ */ new WeakSet();
    getFieldHeader_fn = function(name, value2) {
      let header = "";
      header += `${__privateGet(this, _DASHES)}${this.boundary}${__privateGet(this, _CRLF)}`;
      header += `Content-Disposition: form-data; name="${escapeName(name)}"`;
      if (isFile(value2)) {
        header += `; filename="${escapeName(value2.name)}"${__privateGet(this, _CRLF)}`;
        header += `Content-Type: ${value2.type || "application/octet-stream"}`;
      }
      if (__privateGet(this, _options).enableAdditionalHeaders === true) {
        const size = isFile(value2) ? value2.size : value2.byteLength;
        if (size != null && !isNaN(size)) {
          header += `${__privateGet(this, _CRLF)}Content-Length: ${size}`;
        }
      }
      return __privateGet(this, _encoder).encode(`${header}${__privateGet(this, _CRLF).repeat(2)}`);
    };
    getContentLength_fn = function() {
      let length2 = 0;
      for (const [name, raw] of __privateGet(this, _form)) {
        const value2 = isFile(raw) ? raw : __privateGet(this, _encoder).encode(normalizeValue(raw));
        const size = isFile(value2) ? value2.size : value2.byteLength;
        if (size == null || isNaN(size)) {
          return void 0;
        }
        length2 += __privateMethod(this, _FormDataEncoder_instances, getFieldHeader_fn).call(this, name, value2).byteLength;
        length2 += size;
        length2 += __privateGet(this, _CRLF_BYTES_LENGTH);
      }
      return String(length2 + __privateGet(this, _footer).byteLength);
    };
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/defer-to-connect.js
function isTlsSocket(socket) {
  return "encrypted" in socket;
}
var deferToConnect, defer_to_connect_default;
var init_defer_to_connect = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/defer-to-connect.js"() {
    deferToConnect = (socket, fn) => {
      let listeners;
      if (typeof fn === "function") {
        const connect2 = fn;
        listeners = { connect: connect2 };
      } else {
        listeners = fn;
      }
      const hasConnectListener = typeof listeners.connect === "function";
      const hasSecureConnectListener = typeof listeners.secureConnect === "function";
      const hasCloseListener = typeof listeners.close === "function";
      const onConnect = () => {
        if (hasConnectListener) {
          listeners.connect();
        }
        if (isTlsSocket(socket) && hasSecureConnectListener) {
          if (socket.authorized) {
            listeners.secureConnect();
          } else {
            socket.once("secureConnect", listeners.secureConnect);
          }
        }
        if (hasCloseListener) {
          socket.once("close", listeners.close);
        }
      };
      if (socket.writable && !socket.connecting) {
        onConnect();
      } else if (socket.connecting) {
        socket.once("connect", onConnect);
      } else if (socket.destroyed && hasCloseListener) {
        const hadError = "_hadError" in socket ? Boolean(socket._hadError) : false;
        listeners.close(hadError);
      }
    };
    defer_to_connect_default = deferToConnect;
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/timer.js
import { errorMonitor } from "node:events";
import { types } from "node:util";
var timer, timer_default;
var init_timer = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/timer.js"() {
    init_defer_to_connect();
    timer = (request) => {
      if (request.timings) {
        return request.timings;
      }
      const timings = {
        start: Date.now(),
        socket: void 0,
        lookup: void 0,
        connect: void 0,
        secureConnect: void 0,
        upload: void 0,
        response: void 0,
        end: void 0,
        error: void 0,
        abort: void 0,
        phases: {
          wait: void 0,
          dns: void 0,
          tcp: void 0,
          tls: void 0,
          request: void 0,
          firstByte: void 0,
          download: void 0,
          total: void 0
        }
      };
      request.timings = timings;
      const handleError = (origin2) => {
        origin2.once(errorMonitor, () => {
          timings.error = Date.now();
          timings.phases.total = timings.error - timings.start;
        });
      };
      handleError(request);
      const onAbort = () => {
        timings.abort = Date.now();
        timings.phases.total = timings.abort - timings.start;
      };
      request.prependOnceListener("abort", onAbort);
      const onSocket = (socket) => {
        timings.socket = Date.now();
        timings.phases.wait = timings.socket - timings.start;
        if (types.isProxy(socket)) {
          return;
        }
        const socketAlreadyConnected = socket.writable && !socket.connecting;
        if (socketAlreadyConnected) {
          timings.lookup = timings.socket;
          timings.connect = timings.socket;
          if (socket.__initial_connection_timings__) {
            timings.phases.dns = socket.__initial_connection_timings__.dnsPhase;
            timings.phases.tcp = socket.__initial_connection_timings__.tcpPhase;
            timings.phases.tls = socket.__initial_connection_timings__.tlsPhase;
            if (timings.phases.tls !== void 0) {
              timings.secureConnect = timings.socket;
            }
          } else {
            timings.phases.dns = 0;
            timings.phases.tcp = 0;
          }
          return;
        }
        const lookupListener = () => {
          timings.lookup = Date.now();
          timings.phases.dns = timings.lookup - timings.socket;
        };
        socket.prependOnceListener("lookup", lookupListener);
        defer_to_connect_default(socket, {
          connect() {
            timings.connect = Date.now();
            if (timings.lookup === void 0) {
              socket.removeListener("lookup", lookupListener);
              timings.lookup = timings.socket;
              timings.phases.dns = 0;
            }
            timings.phases.tcp = timings.connect - timings.lookup;
            if (timings.phases.tcp === 0 && timings.phases.dns && timings.phases.dns > 0) {
              timings.phases.dns = 0;
            }
            if (!socket.__initial_connection_timings__) {
              socket.__initial_connection_timings__ = {
                dnsPhase: timings.phases.dns,
                // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion -- TypeScript can't prove this is defined due to callback structure
                tcpPhase: timings.phases.tcp
              };
            }
          },
          secureConnect() {
            timings.secureConnect = Date.now();
            timings.phases.tls = timings.secureConnect - timings.connect;
            if (socket.__initial_connection_timings__) {
              socket.__initial_connection_timings__.tlsPhase = timings.phases.tls;
            }
          }
        });
      };
      if (request.socket) {
        onSocket(request.socket);
      } else {
        request.prependOnceListener("socket", onSocket);
      }
      const onUpload = () => {
        timings.upload = Date.now();
        const secureOrConnect = timings.secureConnect ?? timings.connect;
        if (secureOrConnect !== void 0) {
          timings.phases.request = timings.upload - secureOrConnect;
        }
      };
      if (request.writableFinished) {
        onUpload();
      } else {
        request.prependOnceListener("finish", onUpload);
      }
      request.prependOnceListener("response", (response) => {
        timings.response = Date.now();
        timings.phases.firstByte = timings.response - timings.upload;
        response.timings = timings;
        handleError(response);
        response.prependOnceListener("end", () => {
          request.off("abort", onAbort);
          response.off("aborted", onAbort);
          if (timings.phases.total !== void 0) {
            return;
          }
          timings.end = Date.now();
          timings.phases.download = timings.end - timings.response;
          timings.phases.total = timings.end - timings.start;
        });
        response.prependOnceListener("aborted", onAbort);
      });
      return timings;
    };
    timer_default = timer;
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/is-form-data.js
function isFormData3(body) {
  return distribution_default.nodeStream(body) && distribution_default.function(body.getBoundary);
}
var init_is_form_data = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/is-form-data.js"() {
    init_distribution();
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/get-body-size.js
import { promisify } from "node:util";
async function getBodySize(body, headers) {
  if (headers && "content-length" in headers) {
    return Number(headers["content-length"]);
  }
  if (!body) {
    return 0;
  }
  if (distribution_default.string(body)) {
    return new TextEncoder().encode(body).byteLength;
  }
  if (distribution_default.buffer(body)) {
    return body.length;
  }
  if (distribution_default.typedArray(body)) {
    return body.byteLength;
  }
  if (isFormData3(body)) {
    try {
      return await promisify(body.getLength.bind(body))();
    } catch (error) {
      const typedError = error;
      throw new Error(`Cannot determine content-length for form-data with stream(s) of unknown length. This is a limitation of the \`form-data\` package. To fix this, either:
1. Use the \`knownLength\` option when appending streams:
   form.append('file', stream, {knownLength: 12345});
2. Switch to spec-compliant FormData (formdata-node package)
See: https://github.com/form-data/form-data#alternative-submission-methods
Original error: ${typedError.message}`);
    }
  }
  return void 0;
}
var init_get_body_size = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/get-body-size.js"() {
    init_distribution();
    init_is_form_data();
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/proxy-events.js
function proxyEvents(from, to, events2) {
  const eventFunctions = {};
  for (const event of events2) {
    const eventFunction = (...arguments_) => {
      to.emit(event, ...arguments_);
    };
    eventFunctions[event] = eventFunction;
    from.on(event, eventFunction);
  }
  return () => {
    for (const [event, eventFunction] of Object.entries(eventFunctions)) {
      from.off(event, eventFunction);
    }
  };
}
var init_proxy_events = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/proxy-events.js"() {
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/unhandle.js
function unhandle() {
  const handlers3 = [];
  return {
    once(origin2, event, function_) {
      origin2.once(event, function_);
      handlers3.push({ origin: origin2, event, fn: function_ });
    },
    unhandleAll() {
      for (const handler of handlers3) {
        const { origin: origin2, event, fn } = handler;
        origin2.removeListener(event, fn);
      }
      handlers3.length = 0;
    }
  };
}
var init_unhandle = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/unhandle.js"() {
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/timed-out.js
import net from "node:net";
function timedOut(request, delays, options) {
  if (reentry in request) {
    return noop2;
  }
  request[reentry] = true;
  const cancelers = [];
  const { once, unhandleAll } = unhandle();
  const handled = /* @__PURE__ */ new Map();
  const addTimeout = (delay2, callback, event) => {
    const timeout = setTimeout(callback, delay2, delay2, event);
    timeout.unref?.();
    const cancel = () => {
      handled.set(event, true);
      clearTimeout(timeout);
    };
    cancelers.push(cancel);
    return cancel;
  };
  const { host, hostname } = options;
  const timeoutHandler = (delay2, event) => {
    setTimeout(() => {
      if (!handled.has(event)) {
        request.destroy(new TimeoutError2(delay2, event));
      }
    }, 0);
  };
  const cancelTimeouts = () => {
    for (const cancel of cancelers) {
      cancel();
    }
    unhandleAll();
  };
  request.once("error", (error) => {
    cancelTimeouts();
    if (request.listenerCount("error") === 0) {
      throw error;
    }
  });
  if (delays.request !== void 0) {
    const cancelTimeout = addTimeout(delays.request, timeoutHandler, "request");
    once(request, "response", (response) => {
      once(response, "end", cancelTimeout);
    });
  }
  if (delays.socket !== void 0) {
    const { socket } = delays;
    const socketTimeoutHandler = () => {
      timeoutHandler(socket, "socket");
    };
    request.setTimeout(socket, socketTimeoutHandler);
    cancelers.push(() => {
      request.removeListener("timeout", socketTimeoutHandler);
    });
  }
  const hasLookup = delays.lookup !== void 0;
  const hasConnect = delays.connect !== void 0;
  const hasSecureConnect = delays.secureConnect !== void 0;
  const hasSend = delays.send !== void 0;
  if (hasLookup || hasConnect || hasSecureConnect || hasSend) {
    once(request, "socket", (socket) => {
      const { socketPath } = request;
      if (socket.connecting) {
        const hasPath = Boolean(socketPath ?? net.isIP(hostname ?? host ?? "") !== 0);
        if (hasLookup && !hasPath && socket.address().address === void 0) {
          const cancelTimeout = addTimeout(delays.lookup, timeoutHandler, "lookup");
          once(socket, "lookup", cancelTimeout);
        }
        if (hasConnect) {
          const timeConnect = () => addTimeout(delays.connect, timeoutHandler, "connect");
          if (hasPath) {
            once(socket, "connect", timeConnect());
          } else {
            once(socket, "lookup", (error) => {
              if (error === null) {
                once(socket, "connect", timeConnect());
              }
            });
          }
        }
        if (hasSecureConnect && options.protocol === "https:") {
          once(socket, "connect", () => {
            const cancelTimeout = addTimeout(delays.secureConnect, timeoutHandler, "secureConnect");
            once(socket, "secureConnect", cancelTimeout);
          });
        }
      }
      if (hasSend) {
        const timeRequest = () => addTimeout(delays.send, timeoutHandler, "send");
        if (socket.connecting) {
          once(socket, "connect", () => {
            once(request, "upload-complete", timeRequest());
          });
        } else {
          once(request, "upload-complete", timeRequest());
        }
      }
    });
  }
  if (delays.response !== void 0) {
    once(request, "upload-complete", () => {
      const cancelTimeout = addTimeout(delays.response, timeoutHandler, "response");
      once(request, "response", cancelTimeout);
    });
  }
  if (delays.read !== void 0) {
    once(request, "response", (response) => {
      const cancelTimeout = addTimeout(delays.read, timeoutHandler, "read");
      once(response, "end", cancelTimeout);
    });
  }
  return cancelTimeouts;
}
var reentry, noop2, TimeoutError2;
var init_timed_out = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/timed-out.js"() {
    init_unhandle();
    reentry = Symbol("reentry");
    noop2 = () => {
    };
    TimeoutError2 = class extends Error {
      event;
      name = "TimeoutError";
      code = "ETIMEDOUT";
      constructor(threshold, event) {
        super(`Timeout awaiting '${event}' for ${threshold}ms`);
        this.event = event;
      }
    };
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/url-to-options.js
function urlToOptions(url3) {
  url3 = url3;
  const options = {
    protocol: url3.protocol,
    hostname: distribution_default.string(url3.hostname) && url3.hostname.startsWith("[") ? url3.hostname.slice(1, -1) : url3.hostname,
    host: url3.host,
    hash: url3.hash,
    search: url3.search,
    pathname: url3.pathname,
    href: url3.href,
    path: `${url3.pathname || ""}${url3.search || ""}`
  };
  if (distribution_default.string(url3.port) && url3.port.length > 0) {
    options.port = Number(url3.port);
  }
  if (url3.username || url3.password) {
    options.auth = `${url3.username || ""}:${url3.password || ""}`;
  }
  return options;
}
var init_url_to_options = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/url-to-options.js"() {
    init_distribution();
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/weakable-map.js
var WeakableMap;
var init_weakable_map = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/weakable-map.js"() {
    WeakableMap = class {
      weakMap = /* @__PURE__ */ new WeakMap();
      map = /* @__PURE__ */ new Map();
      set(key, value2) {
        if (typeof key === "object") {
          this.weakMap.set(key, value2);
        } else {
          this.map.set(key, value2);
        }
      }
      get(key) {
        if (typeof key === "object") {
          return this.weakMap.get(key);
        }
        return this.map.get(key);
      }
      has(key) {
        if (typeof key === "object") {
          return this.weakMap.has(key);
        }
        return this.map.has(key);
      }
    };
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/calculate-retry-delay.js
var calculateRetryDelay, calculate_retry_delay_default;
var init_calculate_retry_delay = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/calculate-retry-delay.js"() {
    calculateRetryDelay = ({ attemptCount, retryOptions, error, retryAfter, computedValue }) => {
      if (error.name === "RetryError") {
        return 1;
      }
      if (attemptCount > retryOptions.limit) {
        return 0;
      }
      const hasMethod = retryOptions.methods.includes(error.options.method);
      const hasErrorCode = retryOptions.errorCodes.includes(error.code);
      const hasStatusCode = error.response && retryOptions.statusCodes.includes(error.response.statusCode);
      if (!hasMethod || !hasErrorCode && !hasStatusCode) {
        return 0;
      }
      if (error.response) {
        if (retryAfter) {
          if (retryAfter > computedValue) {
            return 0;
          }
          return retryAfter;
        }
        if (error.response.statusCode === 413) {
          return 0;
        }
      }
      const noise = Math.random() * retryOptions.noise;
      return Math.min(2 ** (attemptCount - 1) * 1e3, retryOptions.backoffLimit) + noise;
    };
    calculate_retry_delay_default = calculateRetryDelay;
  }
});

// ../../node_modules/.pnpm/cacheable-lookup@7.0.0/node_modules/cacheable-lookup/source/index.js
import {
  V4MAPPED,
  ADDRCONFIG,
  ALL,
  promises as dnsPromises,
  lookup as dnsLookup
} from "node:dns";
import { promisify as promisify2 } from "node:util";
import os from "node:os";
var AsyncResolver, kCacheableLookupCreateConnection, kCacheableLookupInstance, kExpires, supportsALL, verifyAgent, map4to6, getIfaceInfo, isIterable2, ignoreNoResultErrors, ttl, all, all4, all6, CacheableLookup;
var init_source2 = __esm({
  "../../node_modules/.pnpm/cacheable-lookup@7.0.0/node_modules/cacheable-lookup/source/index.js"() {
    ({ Resolver: AsyncResolver } = dnsPromises);
    kCacheableLookupCreateConnection = Symbol("cacheableLookupCreateConnection");
    kCacheableLookupInstance = Symbol("cacheableLookupInstance");
    kExpires = Symbol("expires");
    supportsALL = typeof ALL === "number";
    verifyAgent = (agent) => {
      if (!(agent && typeof agent.createConnection === "function")) {
        throw new Error("Expected an Agent instance as the first argument");
      }
    };
    map4to6 = (entries3) => {
      for (const entry of entries3) {
        if (entry.family === 6) {
          continue;
        }
        entry.address = `::ffff:${entry.address}`;
        entry.family = 6;
      }
    };
    getIfaceInfo = () => {
      let has4 = false;
      let has6 = false;
      for (const device of Object.values(os.networkInterfaces())) {
        for (const iface of device) {
          if (iface.internal) {
            continue;
          }
          if (iface.family === "IPv6") {
            has6 = true;
          } else {
            has4 = true;
          }
          if (has4 && has6) {
            return { has4, has6 };
          }
        }
      }
      return { has4, has6 };
    };
    isIterable2 = (map) => {
      return Symbol.iterator in map;
    };
    ignoreNoResultErrors = (dnsPromise) => {
      return dnsPromise.catch((error) => {
        if (error.code === "ENODATA" || error.code === "ENOTFOUND" || error.code === "ENOENT") {
          return [];
        }
        throw error;
      });
    };
    ttl = { ttl: true };
    all = { all: true };
    all4 = { all: true, family: 4 };
    all6 = { all: true, family: 6 };
    CacheableLookup = class {
      constructor({
        cache: cache2 = /* @__PURE__ */ new Map(),
        maxTtl = Infinity,
        fallbackDuration = 3600,
        errorTtl = 0.15,
        resolver = new AsyncResolver(),
        lookup = dnsLookup
      } = {}) {
        this.maxTtl = maxTtl;
        this.errorTtl = errorTtl;
        this._cache = cache2;
        this._resolver = resolver;
        this._dnsLookup = lookup && promisify2(lookup);
        this.stats = {
          cache: 0,
          query: 0
        };
        if (this._resolver instanceof AsyncResolver) {
          this._resolve4 = this._resolver.resolve4.bind(this._resolver);
          this._resolve6 = this._resolver.resolve6.bind(this._resolver);
        } else {
          this._resolve4 = promisify2(this._resolver.resolve4.bind(this._resolver));
          this._resolve6 = promisify2(this._resolver.resolve6.bind(this._resolver));
        }
        this._iface = getIfaceInfo();
        this._pending = {};
        this._nextRemovalTime = false;
        this._hostnamesToFallback = /* @__PURE__ */ new Set();
        this.fallbackDuration = fallbackDuration;
        if (fallbackDuration > 0) {
          const interval = setInterval(() => {
            this._hostnamesToFallback.clear();
          }, fallbackDuration * 1e3);
          if (interval.unref) {
            interval.unref();
          }
          this._fallbackInterval = interval;
        }
        this.lookup = this.lookup.bind(this);
        this.lookupAsync = this.lookupAsync.bind(this);
      }
      set servers(servers) {
        this.clear();
        this._resolver.setServers(servers);
      }
      get servers() {
        return this._resolver.getServers();
      }
      lookup(hostname, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = {};
        } else if (typeof options === "number") {
          options = {
            family: options
          };
        }
        if (!callback) {
          throw new Error("Callback must be a function.");
        }
        this.lookupAsync(hostname, options).then((result) => {
          if (options.all) {
            callback(null, result);
          } else {
            callback(null, result.address, result.family, result.expires, result.ttl, result.source);
          }
        }, callback);
      }
      async lookupAsync(hostname, options = {}) {
        if (typeof options === "number") {
          options = {
            family: options
          };
        }
        let cached = await this.query(hostname);
        if (options.family === 6) {
          const filtered = cached.filter((entry) => entry.family === 6);
          if (options.hints & V4MAPPED) {
            if (supportsALL && options.hints & ALL || filtered.length === 0) {
              map4to6(cached);
            } else {
              cached = filtered;
            }
          } else {
            cached = filtered;
          }
        } else if (options.family === 4) {
          cached = cached.filter((entry) => entry.family === 4);
        }
        if (options.hints & ADDRCONFIG) {
          const { _iface } = this;
          cached = cached.filter((entry) => entry.family === 6 ? _iface.has6 : _iface.has4);
        }
        if (cached.length === 0) {
          const error = new Error(`cacheableLookup ENOTFOUND ${hostname}`);
          error.code = "ENOTFOUND";
          error.hostname = hostname;
          throw error;
        }
        if (options.all) {
          return cached;
        }
        return cached[0];
      }
      async query(hostname) {
        let source = "cache";
        let cached = await this._cache.get(hostname);
        if (cached) {
          this.stats.cache++;
        }
        if (!cached) {
          const pending = this._pending[hostname];
          if (pending) {
            this.stats.cache++;
            cached = await pending;
          } else {
            source = "query";
            const newPromise = this.queryAndCache(hostname);
            this._pending[hostname] = newPromise;
            this.stats.query++;
            try {
              cached = await newPromise;
            } finally {
              delete this._pending[hostname];
            }
          }
        }
        cached = cached.map((entry) => {
          return { ...entry, source };
        });
        return cached;
      }
      async _resolve(hostname) {
        const [A, AAAA] = await Promise.all([
          ignoreNoResultErrors(this._resolve4(hostname, ttl)),
          ignoreNoResultErrors(this._resolve6(hostname, ttl))
        ]);
        let aTtl = 0;
        let aaaaTtl = 0;
        let cacheTtl = 0;
        const now = Date.now();
        for (const entry of A) {
          entry.family = 4;
          entry.expires = now + entry.ttl * 1e3;
          aTtl = Math.max(aTtl, entry.ttl);
        }
        for (const entry of AAAA) {
          entry.family = 6;
          entry.expires = now + entry.ttl * 1e3;
          aaaaTtl = Math.max(aaaaTtl, entry.ttl);
        }
        if (A.length > 0) {
          if (AAAA.length > 0) {
            cacheTtl = Math.min(aTtl, aaaaTtl);
          } else {
            cacheTtl = aTtl;
          }
        } else {
          cacheTtl = aaaaTtl;
        }
        return {
          entries: [
            ...A,
            ...AAAA
          ],
          cacheTtl
        };
      }
      async _lookup(hostname) {
        try {
          const [A, AAAA] = await Promise.all([
            // Passing {all: true} doesn't return all IPv4 and IPv6 entries.
            // See https://github.com/szmarczak/cacheable-lookup/issues/42
            ignoreNoResultErrors(this._dnsLookup(hostname, all4)),
            ignoreNoResultErrors(this._dnsLookup(hostname, all6))
          ]);
          return {
            entries: [
              ...A,
              ...AAAA
            ],
            cacheTtl: 0
          };
        } catch {
          return {
            entries: [],
            cacheTtl: 0
          };
        }
      }
      async _set(hostname, data2, cacheTtl) {
        if (this.maxTtl > 0 && cacheTtl > 0) {
          cacheTtl = Math.min(cacheTtl, this.maxTtl) * 1e3;
          data2[kExpires] = Date.now() + cacheTtl;
          try {
            await this._cache.set(hostname, data2, cacheTtl);
          } catch (error) {
            this.lookupAsync = async () => {
              const cacheError = new Error("Cache Error. Please recreate the CacheableLookup instance.");
              cacheError.cause = error;
              throw cacheError;
            };
          }
          if (isIterable2(this._cache)) {
            this._tick(cacheTtl);
          }
        }
      }
      async queryAndCache(hostname) {
        if (this._hostnamesToFallback.has(hostname)) {
          return this._dnsLookup(hostname, all);
        }
        let query = await this._resolve(hostname);
        if (query.entries.length === 0 && this._dnsLookup) {
          query = await this._lookup(hostname);
          if (query.entries.length !== 0 && this.fallbackDuration > 0) {
            this._hostnamesToFallback.add(hostname);
          }
        }
        const cacheTtl = query.entries.length === 0 ? this.errorTtl : query.cacheTtl;
        await this._set(hostname, query.entries, cacheTtl);
        return query.entries;
      }
      _tick(ms) {
        const nextRemovalTime = this._nextRemovalTime;
        if (!nextRemovalTime || ms < nextRemovalTime) {
          clearTimeout(this._removalTimeout);
          this._nextRemovalTime = ms;
          this._removalTimeout = setTimeout(() => {
            this._nextRemovalTime = false;
            let nextExpiry = Infinity;
            const now = Date.now();
            for (const [hostname, entries3] of this._cache) {
              const expires = entries3[kExpires];
              if (now >= expires) {
                this._cache.delete(hostname);
              } else if (expires < nextExpiry) {
                nextExpiry = expires;
              }
            }
            if (nextExpiry !== Infinity) {
              this._tick(nextExpiry - now);
            }
          }, ms);
          if (this._removalTimeout.unref) {
            this._removalTimeout.unref();
          }
        }
      }
      install(agent) {
        verifyAgent(agent);
        if (kCacheableLookupCreateConnection in agent) {
          throw new Error("CacheableLookup has been already installed");
        }
        agent[kCacheableLookupCreateConnection] = agent.createConnection;
        agent[kCacheableLookupInstance] = this;
        agent.createConnection = (options, callback) => {
          if (!("lookup" in options)) {
            options.lookup = this.lookup;
          }
          return agent[kCacheableLookupCreateConnection](options, callback);
        };
      }
      uninstall(agent) {
        verifyAgent(agent);
        if (agent[kCacheableLookupCreateConnection]) {
          if (agent[kCacheableLookupInstance] !== this) {
            throw new Error("The agent is not owned by this CacheableLookup instance");
          }
          agent.createConnection = agent[kCacheableLookupCreateConnection];
          delete agent[kCacheableLookupCreateConnection];
          delete agent[kCacheableLookupInstance];
        }
      }
      updateInterfaceInfo() {
        const { _iface } = this;
        this._iface = getIfaceInfo();
        if (_iface.has4 && !this._iface.has4 || _iface.has6 && !this._iface.has6) {
          this._cache.clear();
        }
      }
      clear(hostname) {
        if (hostname) {
          this._cache.delete(hostname);
          return;
        }
        this._cache.clear();
      }
    };
  }
});

// ../../node_modules/.pnpm/quick-lru@5.1.1/node_modules/quick-lru/index.js
var require_quick_lru = __commonJS({
  "../../node_modules/.pnpm/quick-lru@5.1.1/node_modules/quick-lru/index.js"(exports, module) {
    "use strict";
    var QuickLRU2 = class {
      constructor(options = {}) {
        if (!(options.maxSize && options.maxSize > 0)) {
          throw new TypeError("`maxSize` must be a number greater than 0");
        }
        this.maxSize = options.maxSize;
        this.onEviction = options.onEviction;
        this.cache = /* @__PURE__ */ new Map();
        this.oldCache = /* @__PURE__ */ new Map();
        this._size = 0;
      }
      _set(key, value2) {
        this.cache.set(key, value2);
        this._size++;
        if (this._size >= this.maxSize) {
          this._size = 0;
          if (typeof this.onEviction === "function") {
            for (const [key2, value3] of this.oldCache.entries()) {
              this.onEviction(key2, value3);
            }
          }
          this.oldCache = this.cache;
          this.cache = /* @__PURE__ */ new Map();
        }
      }
      get(key) {
        if (this.cache.has(key)) {
          return this.cache.get(key);
        }
        if (this.oldCache.has(key)) {
          const value2 = this.oldCache.get(key);
          this.oldCache.delete(key);
          this._set(key, value2);
          return value2;
        }
      }
      set(key, value2) {
        if (this.cache.has(key)) {
          this.cache.set(key, value2);
        } else {
          this._set(key, value2);
        }
        return this;
      }
      has(key) {
        return this.cache.has(key) || this.oldCache.has(key);
      }
      peek(key) {
        if (this.cache.has(key)) {
          return this.cache.get(key);
        }
        if (this.oldCache.has(key)) {
          return this.oldCache.get(key);
        }
      }
      delete(key) {
        const deleted = this.cache.delete(key);
        if (deleted) {
          this._size--;
        }
        return this.oldCache.delete(key) || deleted;
      }
      clear() {
        this.cache.clear();
        this.oldCache.clear();
        this._size = 0;
      }
      *keys() {
        for (const [key] of this) {
          yield key;
        }
      }
      *values() {
        for (const [, value2] of this) {
          yield value2;
        }
      }
      *[Symbol.iterator]() {
        for (const item of this.cache) {
          yield item;
        }
        for (const item of this.oldCache) {
          const [key] = item;
          if (!this.cache.has(key)) {
            yield item;
          }
        }
      }
      get size() {
        let oldCacheSize = 0;
        for (const key of this.oldCache.keys()) {
          if (!this.cache.has(key)) {
            oldCacheSize++;
          }
        }
        return Math.min(this._size + oldCacheSize, this.maxSize);
      }
    };
    module.exports = QuickLRU2;
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/delay-async-destroy.js
var require_delay_async_destroy = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/delay-async-destroy.js"(exports, module) {
    "use strict";
    module.exports = (stream7) => {
      if (stream7.listenerCount("error") !== 0) {
        return stream7;
      }
      stream7.__destroy = stream7._destroy;
      stream7._destroy = (...args) => {
        const callback = args.pop();
        stream7.__destroy(...args, async (error) => {
          await Promise.resolve();
          callback(error);
        });
      };
      const onError = (error) => {
        Promise.resolve().then(() => {
          stream7.emit("error", error);
        });
      };
      stream7.once("error", onError);
      Promise.resolve().then(() => {
        stream7.off("error", onError);
      });
      return stream7;
    };
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/agent.js
var require_agent = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/agent.js"(exports, module) {
    "use strict";
    var { URL: URL5 } = __require("url");
    var EventEmitter5 = __require("events");
    var tls3 = __require("tls");
    var http25 = __require("http2");
    var QuickLRU2 = require_quick_lru();
    var delayAsyncDestroy = require_delay_async_destroy();
    var kCurrentStreamCount = Symbol("currentStreamCount");
    var kRequest = Symbol("request");
    var kOriginSet = Symbol("cachedOriginSet");
    var kGracefullyClosing = Symbol("gracefullyClosing");
    var kLength = Symbol("length");
    var nameKeys = [
      // Not an Agent option actually
      "createConnection",
      // `http2.connect()` options
      "maxDeflateDynamicTableSize",
      "maxSettings",
      "maxSessionMemory",
      "maxHeaderListPairs",
      "maxOutstandingPings",
      "maxReservedRemoteStreams",
      "maxSendHeaderBlockLength",
      "paddingStrategy",
      "peerMaxConcurrentStreams",
      "settings",
      // `tls.connect()` source options
      "family",
      "localAddress",
      "rejectUnauthorized",
      // `tls.connect()` secure context options
      "pskCallback",
      "minDHSize",
      // `tls.connect()` destination options
      // - `servername` is automatically validated, skip it
      // - `host` and `port` just describe the destination server,
      "path",
      "socket",
      // `tls.createSecureContext()` options
      "ca",
      "cert",
      "sigalgs",
      "ciphers",
      "clientCertEngine",
      "crl",
      "dhparam",
      "ecdhCurve",
      "honorCipherOrder",
      "key",
      "privateKeyEngine",
      "privateKeyIdentifier",
      "maxVersion",
      "minVersion",
      "pfx",
      "secureOptions",
      "secureProtocol",
      "sessionIdContext",
      "ticketKeys"
    ];
    var getSortedIndex = (array, value2, compare) => {
      let low = 0;
      let high = array.length;
      while (low < high) {
        const mid = low + high >>> 1;
        if (compare(array[mid], value2)) {
          low = mid + 1;
        } else {
          high = mid;
        }
      }
      return low;
    };
    var compareSessions = (a5, b3) => a5.remoteSettings.maxConcurrentStreams > b3.remoteSettings.maxConcurrentStreams;
    var closeCoveredSessions = (where, session) => {
      for (let index2 = 0; index2 < where.length; index2++) {
        const coveredSession = where[index2];
        if (
          // Unfortunately `.every()` returns true for an empty array
          coveredSession[kOriginSet].length > 0 && coveredSession[kOriginSet].length < session[kOriginSet].length && coveredSession[kOriginSet].every((origin2) => session[kOriginSet].includes(origin2)) && coveredSession[kCurrentStreamCount] + session[kCurrentStreamCount] <= session.remoteSettings.maxConcurrentStreams
        ) {
          gracefullyClose(coveredSession);
        }
      }
    };
    var closeSessionIfCovered = (where, coveredSession) => {
      for (let index2 = 0; index2 < where.length; index2++) {
        const session = where[index2];
        if (coveredSession[kOriginSet].length > 0 && coveredSession[kOriginSet].length < session[kOriginSet].length && coveredSession[kOriginSet].every((origin2) => session[kOriginSet].includes(origin2)) && coveredSession[kCurrentStreamCount] + session[kCurrentStreamCount] <= session.remoteSettings.maxConcurrentStreams) {
          gracefullyClose(coveredSession);
          return true;
        }
      }
      return false;
    };
    var gracefullyClose = (session) => {
      session[kGracefullyClosing] = true;
      if (session[kCurrentStreamCount] === 0) {
        session.close();
      }
    };
    var Agent = class _Agent extends EventEmitter5 {
      constructor({ timeout = 0, maxSessions = Number.POSITIVE_INFINITY, maxEmptySessions = 10, maxCachedTlsSessions = 100 } = {}) {
        super();
        this.sessions = {};
        this.queue = {};
        this.timeout = timeout;
        this.maxSessions = maxSessions;
        this.maxEmptySessions = maxEmptySessions;
        this._emptySessionCount = 0;
        this._sessionCount = 0;
        this.settings = {
          enablePush: false,
          initialWindowSize: 1024 * 1024 * 32
          // 32MB, see https://github.com/nodejs/node/issues/38426
        };
        this.tlsSessionCache = new QuickLRU2({ maxSize: maxCachedTlsSessions });
      }
      get protocol() {
        return "https:";
      }
      normalizeOptions(options) {
        let normalized = "";
        for (let index2 = 0; index2 < nameKeys.length; index2++) {
          const key = nameKeys[index2];
          normalized += ":";
          if (options && options[key] !== void 0) {
            normalized += options[key];
          }
        }
        return normalized;
      }
      _processQueue() {
        if (this._sessionCount >= this.maxSessions) {
          this.closeEmptySessions(this.maxSessions - this._sessionCount + 1);
          return;
        }
        for (const normalizedOptions in this.queue) {
          for (const normalizedOrigin in this.queue[normalizedOptions]) {
            const item = this.queue[normalizedOptions][normalizedOrigin];
            if (!item.completed) {
              item.completed = true;
              item();
            }
          }
        }
      }
      _isBetterSession(thisStreamCount, thatStreamCount) {
        return thisStreamCount > thatStreamCount;
      }
      _accept(session, listeners, normalizedOrigin, options) {
        let index2 = 0;
        while (index2 < listeners.length && session[kCurrentStreamCount] < session.remoteSettings.maxConcurrentStreams) {
          listeners[index2].resolve(session);
          index2++;
        }
        listeners.splice(0, index2);
        if (listeners.length > 0) {
          this.getSession(normalizedOrigin, options, listeners);
          listeners.length = 0;
        }
      }
      getSession(origin2, options, listeners) {
        return new Promise((resolve4, reject) => {
          if (Array.isArray(listeners) && listeners.length > 0) {
            listeners = [...listeners];
            resolve4();
          } else {
            listeners = [{ resolve: resolve4, reject }];
          }
          try {
            if (typeof origin2 === "string") {
              origin2 = new URL5(origin2);
            } else if (!(origin2 instanceof URL5)) {
              throw new TypeError("The `origin` argument needs to be a string or an URL object");
            }
            if (options) {
              const { servername } = options;
              const { hostname } = origin2;
              if (servername && hostname !== servername) {
                throw new Error(`Origin ${hostname} differs from servername ${servername}`);
              }
            }
          } catch (error) {
            for (let index2 = 0; index2 < listeners.length; index2++) {
              listeners[index2].reject(error);
            }
            return;
          }
          const normalizedOptions = this.normalizeOptions(options);
          const normalizedOrigin = origin2.origin;
          if (normalizedOptions in this.sessions) {
            const sessions = this.sessions[normalizedOptions];
            let maxConcurrentStreams = -1;
            let currentStreamsCount = -1;
            let optimalSession;
            for (let index2 = 0; index2 < sessions.length; index2++) {
              const session = sessions[index2];
              const sessionMaxConcurrentStreams = session.remoteSettings.maxConcurrentStreams;
              if (sessionMaxConcurrentStreams < maxConcurrentStreams) {
                break;
              }
              if (!session[kOriginSet].includes(normalizedOrigin)) {
                continue;
              }
              const sessionCurrentStreamsCount = session[kCurrentStreamCount];
              if (sessionCurrentStreamsCount >= sessionMaxConcurrentStreams || session[kGracefullyClosing] || session.destroyed) {
                continue;
              }
              if (!optimalSession) {
                maxConcurrentStreams = sessionMaxConcurrentStreams;
              }
              if (this._isBetterSession(sessionCurrentStreamsCount, currentStreamsCount)) {
                optimalSession = session;
                currentStreamsCount = sessionCurrentStreamsCount;
              }
            }
            if (optimalSession) {
              this._accept(optimalSession, listeners, normalizedOrigin, options);
              return;
            }
          }
          if (normalizedOptions in this.queue) {
            if (normalizedOrigin in this.queue[normalizedOptions]) {
              this.queue[normalizedOptions][normalizedOrigin].listeners.push(...listeners);
              return;
            }
          } else {
            this.queue[normalizedOptions] = {
              [kLength]: 0
            };
          }
          const removeFromQueue = () => {
            if (normalizedOptions in this.queue && this.queue[normalizedOptions][normalizedOrigin] === entry) {
              delete this.queue[normalizedOptions][normalizedOrigin];
              if (--this.queue[normalizedOptions][kLength] === 0) {
                delete this.queue[normalizedOptions];
              }
            }
          };
          const entry = async () => {
            this._sessionCount++;
            const name = `${normalizedOrigin}:${normalizedOptions}`;
            let receivedSettings = false;
            let socket;
            try {
              const computedOptions = { ...options };
              if (computedOptions.settings === void 0) {
                computedOptions.settings = this.settings;
              }
              if (computedOptions.session === void 0) {
                computedOptions.session = this.tlsSessionCache.get(name);
              }
              const createConnection = computedOptions.createConnection || this.createConnection;
              socket = await createConnection.call(this, origin2, computedOptions);
              computedOptions.createConnection = () => socket;
              const session = http25.connect(origin2, computedOptions);
              session[kCurrentStreamCount] = 0;
              session[kGracefullyClosing] = false;
              const getOriginSet = () => {
                const { socket: socket2 } = session;
                let originSet;
                if (socket2.servername === false) {
                  socket2.servername = socket2.remoteAddress;
                  originSet = session.originSet;
                  socket2.servername = false;
                } else {
                  originSet = session.originSet;
                }
                return originSet;
              };
              const isFree = () => session[kCurrentStreamCount] < session.remoteSettings.maxConcurrentStreams;
              session.socket.once("session", (tlsSession) => {
                this.tlsSessionCache.set(name, tlsSession);
              });
              session.once("error", (error) => {
                for (let index2 = 0; index2 < listeners.length; index2++) {
                  listeners[index2].reject(error);
                }
                this.tlsSessionCache.delete(name);
              });
              session.setTimeout(this.timeout, () => {
                session.destroy();
              });
              session.once("close", () => {
                this._sessionCount--;
                if (receivedSettings) {
                  this._emptySessionCount--;
                  const where = this.sessions[normalizedOptions];
                  if (where.length === 1) {
                    delete this.sessions[normalizedOptions];
                  } else {
                    where.splice(where.indexOf(session), 1);
                  }
                } else {
                  removeFromQueue();
                  const error = new Error("Session closed without receiving a SETTINGS frame");
                  error.code = "HTTP2WRAPPER_NOSETTINGS";
                  for (let index2 = 0; index2 < listeners.length; index2++) {
                    listeners[index2].reject(error);
                  }
                }
                this._processQueue();
              });
              const processListeners = () => {
                const queue = this.queue[normalizedOptions];
                if (!queue) {
                  return;
                }
                const originSet = session[kOriginSet];
                for (let index2 = 0; index2 < originSet.length; index2++) {
                  const origin3 = originSet[index2];
                  if (origin3 in queue) {
                    const { listeners: listeners2, completed } = queue[origin3];
                    let index3 = 0;
                    while (index3 < listeners2.length && isFree()) {
                      listeners2[index3].resolve(session);
                      index3++;
                    }
                    queue[origin3].listeners.splice(0, index3);
                    if (queue[origin3].listeners.length === 0 && !completed) {
                      delete queue[origin3];
                      if (--queue[kLength] === 0) {
                        delete this.queue[normalizedOptions];
                        break;
                      }
                    }
                    if (!isFree()) {
                      break;
                    }
                  }
                }
              };
              session.on("origin", () => {
                session[kOriginSet] = getOriginSet() || [];
                session[kGracefullyClosing] = false;
                closeSessionIfCovered(this.sessions[normalizedOptions], session);
                if (session[kGracefullyClosing] || !isFree()) {
                  return;
                }
                processListeners();
                if (!isFree()) {
                  return;
                }
                closeCoveredSessions(this.sessions[normalizedOptions], session);
              });
              session.once("remoteSettings", () => {
                if (entry.destroyed) {
                  const error = new Error("Agent has been destroyed");
                  for (let index2 = 0; index2 < listeners.length; index2++) {
                    listeners[index2].reject(error);
                  }
                  session.destroy();
                  return;
                }
                if (session.setLocalWindowSize) {
                  session.setLocalWindowSize(1024 * 1024 * 4);
                }
                session[kOriginSet] = getOriginSet() || [];
                if (session.socket.encrypted) {
                  const mainOrigin = session[kOriginSet][0];
                  if (mainOrigin !== normalizedOrigin) {
                    const error = new Error(`Requested origin ${normalizedOrigin} does not match server ${mainOrigin}`);
                    for (let index2 = 0; index2 < listeners.length; index2++) {
                      listeners[index2].reject(error);
                    }
                    session.destroy();
                    return;
                  }
                }
                removeFromQueue();
                {
                  const where = this.sessions;
                  if (normalizedOptions in where) {
                    const sessions = where[normalizedOptions];
                    sessions.splice(getSortedIndex(sessions, session, compareSessions), 0, session);
                  } else {
                    where[normalizedOptions] = [session];
                  }
                }
                receivedSettings = true;
                this._emptySessionCount++;
                this.emit("session", session);
                this._accept(session, listeners, normalizedOrigin, options);
                if (session[kCurrentStreamCount] === 0 && this._emptySessionCount > this.maxEmptySessions) {
                  this.closeEmptySessions(this._emptySessionCount - this.maxEmptySessions);
                }
                session.on("remoteSettings", () => {
                  if (!isFree()) {
                    return;
                  }
                  processListeners();
                  if (!isFree()) {
                    return;
                  }
                  closeCoveredSessions(this.sessions[normalizedOptions], session);
                });
              });
              session[kRequest] = session.request;
              session.request = (headers, streamOptions) => {
                if (session[kGracefullyClosing]) {
                  throw new Error("The session is gracefully closing. No new streams are allowed.");
                }
                const stream7 = session[kRequest](headers, streamOptions);
                session.ref();
                if (session[kCurrentStreamCount]++ === 0) {
                  this._emptySessionCount--;
                }
                stream7.once("close", () => {
                  if (--session[kCurrentStreamCount] === 0) {
                    this._emptySessionCount++;
                    session.unref();
                    if (this._emptySessionCount > this.maxEmptySessions || session[kGracefullyClosing]) {
                      session.close();
                      return;
                    }
                  }
                  if (session.destroyed || session.closed) {
                    return;
                  }
                  if (isFree() && !closeSessionIfCovered(this.sessions[normalizedOptions], session)) {
                    closeCoveredSessions(this.sessions[normalizedOptions], session);
                    processListeners();
                    if (session[kCurrentStreamCount] === 0) {
                      this._processQueue();
                    }
                  }
                });
                return stream7;
              };
            } catch (error) {
              removeFromQueue();
              this._sessionCount--;
              for (let index2 = 0; index2 < listeners.length; index2++) {
                listeners[index2].reject(error);
              }
            }
          };
          entry.listeners = listeners;
          entry.completed = false;
          entry.destroyed = false;
          this.queue[normalizedOptions][normalizedOrigin] = entry;
          this.queue[normalizedOptions][kLength]++;
          this._processQueue();
        });
      }
      request(origin2, options, headers, streamOptions) {
        return new Promise((resolve4, reject) => {
          this.getSession(origin2, options, [{
            reject,
            resolve: (session) => {
              try {
                const stream7 = session.request(headers, streamOptions);
                delayAsyncDestroy(stream7);
                resolve4(stream7);
              } catch (error) {
                reject(error);
              }
            }
          }]);
        });
      }
      async createConnection(origin2, options) {
        return _Agent.connect(origin2, options);
      }
      static connect(origin2, options) {
        options.ALPNProtocols = ["h2"];
        const port = origin2.port || 443;
        const host = origin2.hostname;
        if (typeof options.servername === "undefined") {
          options.servername = host;
        }
        const socket = tls3.connect(port, host, options);
        if (options.socket) {
          socket._peername = {
            family: void 0,
            address: void 0,
            port
          };
        }
        return socket;
      }
      closeEmptySessions(maxCount = Number.POSITIVE_INFINITY) {
        let closedCount = 0;
        const { sessions } = this;
        for (const key in sessions) {
          const thisSessions = sessions[key];
          for (let index2 = 0; index2 < thisSessions.length; index2++) {
            const session = thisSessions[index2];
            if (session[kCurrentStreamCount] === 0) {
              closedCount++;
              session.close();
              if (closedCount >= maxCount) {
                return closedCount;
              }
            }
          }
        }
        return closedCount;
      }
      destroy(reason) {
        const { sessions, queue } = this;
        for (const key in sessions) {
          const thisSessions = sessions[key];
          for (let index2 = 0; index2 < thisSessions.length; index2++) {
            thisSessions[index2].destroy(reason);
          }
        }
        for (const normalizedOptions in queue) {
          const entries3 = queue[normalizedOptions];
          for (const normalizedOrigin in entries3) {
            entries3[normalizedOrigin].destroyed = true;
          }
        }
        this.queue = {};
        this.tlsSessionCache.clear();
      }
      get emptySessionCount() {
        return this._emptySessionCount;
      }
      get pendingSessionCount() {
        return this._sessionCount - this._emptySessionCount;
      }
      get sessionCount() {
        return this._sessionCount;
      }
    };
    Agent.kCurrentStreamCount = kCurrentStreamCount;
    Agent.kGracefullyClosing = kGracefullyClosing;
    module.exports = {
      Agent,
      globalAgent: new Agent()
    };
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/incoming-message.js
var require_incoming_message = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/incoming-message.js"(exports, module) {
    "use strict";
    var { Readable: Readable3 } = __require("stream");
    var IncomingMessage = class extends Readable3 {
      constructor(socket, highWaterMark) {
        super({
          emitClose: false,
          autoDestroy: true,
          highWaterMark
        });
        this.statusCode = null;
        this.statusMessage = "";
        this.httpVersion = "2.0";
        this.httpVersionMajor = 2;
        this.httpVersionMinor = 0;
        this.headers = {};
        this.trailers = {};
        this.req = null;
        this.aborted = false;
        this.complete = false;
        this.upgrade = null;
        this.rawHeaders = [];
        this.rawTrailers = [];
        this.socket = socket;
        this._dumped = false;
      }
      get connection() {
        return this.socket;
      }
      set connection(value2) {
        this.socket = value2;
      }
      _destroy(error, callback) {
        if (!this.readableEnded) {
          this.aborted = true;
        }
        callback();
        this.req._request.destroy(error);
      }
      setTimeout(ms, callback) {
        this.req.setTimeout(ms, callback);
        return this;
      }
      _dump() {
        if (!this._dumped) {
          this._dumped = true;
          this.removeAllListeners("data");
          this.resume();
        }
      }
      _read() {
        if (this.req) {
          this.req._request.resume();
        }
      }
    };
    module.exports = IncomingMessage;
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/proxy-events.js
var require_proxy_events = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/proxy-events.js"(exports, module) {
    "use strict";
    module.exports = (from, to, events2) => {
      for (const event of events2) {
        from.on(event, (...args) => to.emit(event, ...args));
      }
    };
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/errors.js
var require_errors2 = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/errors.js"(exports, module) {
    "use strict";
    var makeError = (Base2, key, getMessage) => {
      module.exports[key] = class NodeError extends Base2 {
        constructor(...args) {
          super(typeof getMessage === "string" ? getMessage : getMessage(args));
          this.name = `${super.name} [${key}]`;
          this.code = key;
        }
      };
    };
    makeError(TypeError, "ERR_INVALID_ARG_TYPE", (args) => {
      const type = args[0].includes(".") ? "property" : "argument";
      let valid = args[1];
      const isManyTypes = Array.isArray(valid);
      if (isManyTypes) {
        valid = `${valid.slice(0, -1).join(", ")} or ${valid.slice(-1)}`;
      }
      return `The "${args[0]}" ${type} must be ${isManyTypes ? "one of" : "of"} type ${valid}. Received ${typeof args[2]}`;
    });
    makeError(
      TypeError,
      "ERR_INVALID_PROTOCOL",
      (args) => `Protocol "${args[0]}" not supported. Expected "${args[1]}"`
    );
    makeError(
      Error,
      "ERR_HTTP_HEADERS_SENT",
      (args) => `Cannot ${args[0]} headers after they are sent to the client`
    );
    makeError(
      TypeError,
      "ERR_INVALID_HTTP_TOKEN",
      (args) => `${args[0]} must be a valid HTTP token [${args[1]}]`
    );
    makeError(
      TypeError,
      "ERR_HTTP_INVALID_HEADER_VALUE",
      (args) => `Invalid value "${args[0]} for header "${args[1]}"`
    );
    makeError(
      TypeError,
      "ERR_INVALID_CHAR",
      (args) => `Invalid character in ${args[0]} [${args[1]}]`
    );
    makeError(
      Error,
      "ERR_HTTP2_NO_SOCKET_MANIPULATION",
      "HTTP/2 sockets should not be directly manipulated (e.g. read and written)"
    );
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/is-request-pseudo-header.js
var require_is_request_pseudo_header = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/is-request-pseudo-header.js"(exports, module) {
    "use strict";
    module.exports = (header) => {
      switch (header) {
        case ":method":
        case ":scheme":
        case ":authority":
        case ":path":
          return true;
        default:
          return false;
      }
    };
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/validate-header-name.js
var require_validate_header_name = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/validate-header-name.js"(exports, module) {
    "use strict";
    var { ERR_INVALID_HTTP_TOKEN } = require_errors2();
    var isRequestPseudoHeader = require_is_request_pseudo_header();
    var isValidHttpToken = /^[\^`\-\w!#$%&*+.|~]+$/;
    module.exports = (name) => {
      if (typeof name !== "string" || !isValidHttpToken.test(name) && !isRequestPseudoHeader(name)) {
        throw new ERR_INVALID_HTTP_TOKEN("Header name", name);
      }
    };
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/validate-header-value.js
var require_validate_header_value = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/validate-header-value.js"(exports, module) {
    "use strict";
    var {
      ERR_HTTP_INVALID_HEADER_VALUE,
      ERR_INVALID_CHAR
    } = require_errors2();
    var isInvalidHeaderValue = /[^\t\u0020-\u007E\u0080-\u00FF]/;
    module.exports = (name, value2) => {
      if (typeof value2 === "undefined") {
        throw new ERR_HTTP_INVALID_HEADER_VALUE(value2, name);
      }
      if (isInvalidHeaderValue.test(value2)) {
        throw new ERR_INVALID_CHAR("header content", name);
      }
    };
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/proxy-socket-handler.js
var require_proxy_socket_handler = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/proxy-socket-handler.js"(exports, module) {
    "use strict";
    var { ERR_HTTP2_NO_SOCKET_MANIPULATION } = require_errors2();
    var proxySocketHandler = {
      has(stream7, property) {
        const reference = stream7.session === void 0 ? stream7 : stream7.session.socket;
        return property in stream7 || property in reference;
      },
      get(stream7, property) {
        switch (property) {
          case "on":
          case "once":
          case "end":
          case "emit":
          case "destroy":
            return stream7[property].bind(stream7);
          case "writable":
          case "destroyed":
            return stream7[property];
          case "readable":
            if (stream7.destroyed) {
              return false;
            }
            return stream7.readable;
          case "setTimeout": {
            const { session } = stream7;
            if (session !== void 0) {
              return session.setTimeout.bind(session);
            }
            return stream7.setTimeout.bind(stream7);
          }
          case "write":
          case "read":
          case "pause":
          case "resume":
            throw new ERR_HTTP2_NO_SOCKET_MANIPULATION();
          default: {
            const reference = stream7.session === void 0 ? stream7 : stream7.session.socket;
            const value2 = reference[property];
            return typeof value2 === "function" ? value2.bind(reference) : value2;
          }
        }
      },
      getPrototypeOf(stream7) {
        if (stream7.session !== void 0) {
          return Reflect.getPrototypeOf(stream7.session.socket);
        }
        return Reflect.getPrototypeOf(stream7);
      },
      set(stream7, property, value2) {
        switch (property) {
          case "writable":
          case "readable":
          case "destroyed":
          case "on":
          case "once":
          case "end":
          case "emit":
          case "destroy":
            stream7[property] = value2;
            return true;
          case "setTimeout": {
            const { session } = stream7;
            if (session === void 0) {
              stream7.setTimeout = value2;
            } else {
              session.setTimeout = value2;
            }
            return true;
          }
          case "write":
          case "read":
          case "pause":
          case "resume":
            throw new ERR_HTTP2_NO_SOCKET_MANIPULATION();
          default: {
            const reference = stream7.session === void 0 ? stream7 : stream7.session.socket;
            reference[property] = value2;
            return true;
          }
        }
      }
    };
    module.exports = proxySocketHandler;
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/client-request.js
var require_client_request = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/client-request.js"(exports, module) {
    "use strict";
    var { URL: URL5, urlToHttpOptions } = __require("url");
    var http25 = __require("http2");
    var { Writable } = __require("stream");
    var { Agent, globalAgent } = require_agent();
    var IncomingMessage = require_incoming_message();
    var proxyEvents2 = require_proxy_events();
    var {
      ERR_INVALID_ARG_TYPE,
      ERR_INVALID_PROTOCOL,
      ERR_HTTP_HEADERS_SENT
    } = require_errors2();
    var validateHeaderName = require_validate_header_name();
    var validateHeaderValue = require_validate_header_value();
    var proxySocketHandler = require_proxy_socket_handler();
    var {
      HTTP2_HEADER_STATUS,
      HTTP2_HEADER_METHOD,
      HTTP2_HEADER_PATH,
      HTTP2_HEADER_AUTHORITY,
      HTTP2_METHOD_CONNECT
    } = http25.constants;
    var kHeaders = Symbol("headers");
    var kOrigin = Symbol("origin");
    var kSession = Symbol("session");
    var kOptions = Symbol("options");
    var kFlushedHeaders = Symbol("flushedHeaders");
    var kJobs = Symbol("jobs");
    var kPendingAgentPromise = Symbol("pendingAgentPromise");
    var ClientRequest = class extends Writable {
      constructor(input, options, callback) {
        super({
          autoDestroy: false,
          emitClose: false
        });
        if (typeof input === "string") {
          input = urlToHttpOptions(new URL5(input));
        } else if (input instanceof URL5) {
          input = urlToHttpOptions(input);
        } else {
          input = { ...input };
        }
        if (typeof options === "function" || options === void 0) {
          callback = options;
          options = input;
        } else {
          options = Object.assign(input, options);
        }
        if (options.h2session) {
          this[kSession] = options.h2session;
          if (this[kSession].destroyed) {
            throw new Error("The session has been closed already");
          }
          this.protocol = this[kSession].socket.encrypted ? "https:" : "http:";
        } else if (options.agent === false) {
          this.agent = new Agent({ maxEmptySessions: 0 });
        } else if (typeof options.agent === "undefined" || options.agent === null) {
          this.agent = globalAgent;
        } else if (typeof options.agent.request === "function") {
          this.agent = options.agent;
        } else {
          throw new ERR_INVALID_ARG_TYPE("options.agent", ["http2wrapper.Agent-like Object", "undefined", "false"], options.agent);
        }
        if (this.agent) {
          this.protocol = this.agent.protocol;
        }
        if (options.protocol && options.protocol !== this.protocol) {
          throw new ERR_INVALID_PROTOCOL(options.protocol, this.protocol);
        }
        if (!options.port) {
          options.port = options.defaultPort || this.agent && this.agent.defaultPort || 443;
        }
        options.host = options.hostname || options.host || "localhost";
        delete options.hostname;
        const { timeout } = options;
        options.timeout = void 0;
        this[kHeaders] = /* @__PURE__ */ Object.create(null);
        this[kJobs] = [];
        this[kPendingAgentPromise] = void 0;
        this.socket = null;
        this.connection = null;
        this.method = options.method || "GET";
        if (!(this.method === "CONNECT" && (options.path === "/" || options.path === void 0))) {
          this.path = options.path;
        }
        this.res = null;
        this.aborted = false;
        this.reusedSocket = false;
        const { headers } = options;
        if (headers) {
          for (const header in headers) {
            this.setHeader(header, headers[header]);
          }
        }
        if (options.auth && !("authorization" in this[kHeaders])) {
          this[kHeaders].authorization = "Basic " + Buffer.from(options.auth).toString("base64");
        }
        options.session = options.tlsSession;
        options.path = options.socketPath;
        this[kOptions] = options;
        this[kOrigin] = new URL5(`${this.protocol}//${options.servername || options.host}:${options.port}`);
        const reuseSocket = options._reuseSocket;
        if (reuseSocket) {
          options.createConnection = (...args) => {
            if (reuseSocket.destroyed) {
              return this.agent.createConnection(...args);
            }
            return reuseSocket;
          };
          this.agent.getSession(this[kOrigin], this[kOptions]).catch(() => {
          });
        }
        if (timeout) {
          this.setTimeout(timeout);
        }
        if (callback) {
          this.once("response", callback);
        }
        this[kFlushedHeaders] = false;
      }
      get method() {
        return this[kHeaders][HTTP2_HEADER_METHOD];
      }
      set method(value2) {
        if (value2) {
          this[kHeaders][HTTP2_HEADER_METHOD] = value2.toUpperCase();
        }
      }
      get path() {
        const header = this.method === "CONNECT" ? HTTP2_HEADER_AUTHORITY : HTTP2_HEADER_PATH;
        return this[kHeaders][header];
      }
      set path(value2) {
        if (value2) {
          const header = this.method === "CONNECT" ? HTTP2_HEADER_AUTHORITY : HTTP2_HEADER_PATH;
          this[kHeaders][header] = value2;
        }
      }
      get host() {
        return this[kOrigin].hostname;
      }
      set host(_value) {
      }
      get _mustNotHaveABody() {
        return this.method === "GET" || this.method === "HEAD" || this.method === "DELETE";
      }
      _write(chunk3, encoding, callback) {
        if (this._mustNotHaveABody) {
          callback(new Error("The GET, HEAD and DELETE methods must NOT have a body"));
          return;
        }
        this.flushHeaders();
        const callWrite = () => this._request.write(chunk3, encoding, callback);
        if (this._request) {
          callWrite();
        } else {
          this[kJobs].push(callWrite);
        }
      }
      _final(callback) {
        this.flushHeaders();
        const callEnd = () => {
          if (this._mustNotHaveABody || this.method === "CONNECT") {
            callback();
            return;
          }
          this._request.end(callback);
        };
        if (this._request) {
          callEnd();
        } else {
          this[kJobs].push(callEnd);
        }
      }
      abort() {
        if (this.res && this.res.complete) {
          return;
        }
        if (!this.aborted) {
          process.nextTick(() => this.emit("abort"));
        }
        this.aborted = true;
        this.destroy();
      }
      async _destroy(error, callback) {
        if (this.res) {
          this.res._dump();
        }
        if (this._request) {
          this._request.destroy();
        } else {
          process.nextTick(() => {
            this.emit("close");
          });
        }
        try {
          await this[kPendingAgentPromise];
        } catch (internalError) {
          if (this.aborted) {
            error = internalError;
          }
        }
        callback(error);
      }
      async flushHeaders() {
        if (this[kFlushedHeaders] || this.destroyed) {
          return;
        }
        this[kFlushedHeaders] = true;
        const isConnectMethod = this.method === HTTP2_METHOD_CONNECT;
        const onStream = (stream7) => {
          this._request = stream7;
          if (this.destroyed) {
            stream7.destroy();
            return;
          }
          if (!isConnectMethod) {
            proxyEvents2(stream7, this, ["timeout", "continue"]);
          }
          stream7.once("error", (error) => {
            this.destroy(error);
          });
          stream7.once("aborted", () => {
            const { res } = this;
            if (res) {
              res.aborted = true;
              res.emit("aborted");
              res.destroy();
            } else {
              this.destroy(new Error("The server aborted the HTTP/2 stream"));
            }
          });
          const onResponse2 = (headers, flags, rawHeaders) => {
            const response = new IncomingMessage(this.socket, stream7.readableHighWaterMark);
            this.res = response;
            response.url = `${this[kOrigin].origin}${this.path}`;
            response.req = this;
            response.statusCode = headers[HTTP2_HEADER_STATUS];
            response.headers = headers;
            response.rawHeaders = rawHeaders;
            response.once("end", () => {
              response.complete = true;
              response.socket = null;
              response.connection = null;
            });
            if (isConnectMethod) {
              response.upgrade = true;
              if (this.emit("connect", response, stream7, Buffer.alloc(0))) {
                this.emit("close");
              } else {
                stream7.destroy();
              }
            } else {
              stream7.on("data", (chunk3) => {
                if (!response._dumped && !response.push(chunk3)) {
                  stream7.pause();
                }
              });
              stream7.once("end", () => {
                if (!this.aborted) {
                  response.push(null);
                }
              });
              if (!this.emit("response", response)) {
                response._dump();
              }
            }
          };
          stream7.once("response", onResponse2);
          stream7.once("headers", (headers) => this.emit("information", { statusCode: headers[HTTP2_HEADER_STATUS] }));
          stream7.once("trailers", (trailers, flags, rawTrailers) => {
            const { res } = this;
            if (res === null) {
              onResponse2(trailers, flags, rawTrailers);
              return;
            }
            res.trailers = trailers;
            res.rawTrailers = rawTrailers;
          });
          stream7.once("close", () => {
            const { aborted, res } = this;
            if (res) {
              if (aborted) {
                res.aborted = true;
                res.emit("aborted");
                res.destroy();
              }
              const finish = () => {
                res.emit("close");
                this.destroy();
                this.emit("close");
              };
              if (res.readable) {
                res.once("end", finish);
              } else {
                finish();
              }
              return;
            }
            if (!this.destroyed) {
              this.destroy(new Error("The HTTP/2 stream has been early terminated"));
              this.emit("close");
              return;
            }
            this.destroy();
            this.emit("close");
          });
          this.socket = new Proxy(stream7, proxySocketHandler);
          for (const job of this[kJobs]) {
            job();
          }
          this[kJobs].length = 0;
          this.emit("socket", this.socket);
        };
        if (!(HTTP2_HEADER_AUTHORITY in this[kHeaders]) && !isConnectMethod) {
          this[kHeaders][HTTP2_HEADER_AUTHORITY] = this[kOrigin].host;
        }
        if (this[kSession]) {
          try {
            onStream(this[kSession].request(this[kHeaders]));
          } catch (error) {
            this.destroy(error);
          }
        } else {
          this.reusedSocket = true;
          try {
            const promise = this.agent.request(this[kOrigin], this[kOptions], this[kHeaders]);
            this[kPendingAgentPromise] = promise;
            onStream(await promise);
            this[kPendingAgentPromise] = false;
          } catch (error) {
            this[kPendingAgentPromise] = false;
            this.destroy(error);
          }
        }
      }
      get connection() {
        return this.socket;
      }
      set connection(value2) {
        this.socket = value2;
      }
      getHeaderNames() {
        return Object.keys(this[kHeaders]);
      }
      hasHeader(name) {
        if (typeof name !== "string") {
          throw new ERR_INVALID_ARG_TYPE("name", "string", name);
        }
        return Boolean(this[kHeaders][name.toLowerCase()]);
      }
      getHeader(name) {
        if (typeof name !== "string") {
          throw new ERR_INVALID_ARG_TYPE("name", "string", name);
        }
        return this[kHeaders][name.toLowerCase()];
      }
      get headersSent() {
        return this[kFlushedHeaders];
      }
      removeHeader(name) {
        if (typeof name !== "string") {
          throw new ERR_INVALID_ARG_TYPE("name", "string", name);
        }
        if (this.headersSent) {
          throw new ERR_HTTP_HEADERS_SENT("remove");
        }
        delete this[kHeaders][name.toLowerCase()];
      }
      setHeader(name, value2) {
        if (this.headersSent) {
          throw new ERR_HTTP_HEADERS_SENT("set");
        }
        validateHeaderName(name);
        validateHeaderValue(name, value2);
        const lowercased = name.toLowerCase();
        if (lowercased === "connection") {
          if (value2.toLowerCase() === "keep-alive") {
            return;
          }
          throw new Error(`Invalid 'connection' header: ${value2}`);
        }
        if (lowercased === "host" && this.method === "CONNECT") {
          this[kHeaders][HTTP2_HEADER_AUTHORITY] = value2;
        } else {
          this[kHeaders][lowercased] = value2;
        }
      }
      setNoDelay() {
      }
      setSocketKeepAlive() {
      }
      setTimeout(ms, callback) {
        const applyTimeout = () => this._request.setTimeout(ms, callback);
        if (this._request) {
          applyTimeout();
        } else {
          this[kJobs].push(applyTimeout);
        }
        return this;
      }
      get maxHeadersCount() {
        if (!this.destroyed && this._request) {
          return this._request.session.localSettings.maxHeaderListSize;
        }
        return void 0;
      }
      set maxHeadersCount(_value) {
      }
    };
    module.exports = ClientRequest;
  }
});

// ../../node_modules/.pnpm/resolve-alpn@1.2.1/node_modules/resolve-alpn/index.js
var require_resolve_alpn = __commonJS({
  "../../node_modules/.pnpm/resolve-alpn@1.2.1/node_modules/resolve-alpn/index.js"(exports, module) {
    "use strict";
    var tls3 = __require("tls");
    module.exports = (options = {}, connect2 = tls3.connect) => new Promise((resolve4, reject) => {
      let timeout = false;
      let socket;
      const callback = async () => {
        await socketPromise;
        socket.off("timeout", onTimeout);
        socket.off("error", reject);
        if (options.resolveSocket) {
          resolve4({ alpnProtocol: socket.alpnProtocol, socket, timeout });
          if (timeout) {
            await Promise.resolve();
            socket.emit("timeout");
          }
        } else {
          socket.destroy();
          resolve4({ alpnProtocol: socket.alpnProtocol, timeout });
        }
      };
      const onTimeout = async () => {
        timeout = true;
        callback();
      };
      const socketPromise = (async () => {
        try {
          socket = await connect2(options, callback);
          socket.on("error", reject);
          socket.once("timeout", onTimeout);
        } catch (error) {
          reject(error);
        }
      })();
    });
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/calculate-server-name.js
var require_calculate_server_name = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/calculate-server-name.js"(exports, module) {
    "use strict";
    var { isIP } = __require("net");
    var assert3 = __require("assert");
    var getHost = (host) => {
      if (host[0] === "[") {
        const idx2 = host.indexOf("]");
        assert3(idx2 !== -1);
        return host.slice(1, idx2);
      }
      const idx = host.indexOf(":");
      if (idx === -1) {
        return host;
      }
      return host.slice(0, idx);
    };
    module.exports = (host) => {
      const servername = getHost(host);
      if (isIP(servername)) {
        return "";
      }
      return servername;
    };
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/auto.js
var require_auto = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/auto.js"(exports, module) {
    "use strict";
    var { URL: URL5, urlToHttpOptions } = __require("url");
    var http6 = __require("http");
    var https5 = __require("https");
    var resolveALPN = require_resolve_alpn();
    var QuickLRU2 = require_quick_lru();
    var { Agent, globalAgent } = require_agent();
    var Http2ClientRequest = require_client_request();
    var calculateServerName = require_calculate_server_name();
    var delayAsyncDestroy = require_delay_async_destroy();
    var cache2 = new QuickLRU2({ maxSize: 100 });
    var queue = /* @__PURE__ */ new Map();
    var installSocket = (agent, socket, options) => {
      socket._httpMessage = { shouldKeepAlive: true };
      const onFree = () => {
        agent.emit("free", socket, options);
      };
      socket.on("free", onFree);
      const onClose = () => {
        agent.removeSocket(socket, options);
      };
      socket.on("close", onClose);
      const onTimeout = () => {
        const { freeSockets } = agent;
        for (const sockets of Object.values(freeSockets)) {
          if (sockets.includes(socket)) {
            socket.destroy();
            return;
          }
        }
      };
      socket.on("timeout", onTimeout);
      const onRemove = () => {
        agent.removeSocket(socket, options);
        socket.off("close", onClose);
        socket.off("free", onFree);
        socket.off("timeout", onTimeout);
        socket.off("agentRemove", onRemove);
      };
      socket.on("agentRemove", onRemove);
      agent.emit("free", socket, options);
    };
    var createResolveProtocol2 = (cache3, queue2 = /* @__PURE__ */ new Map(), connect2 = void 0) => {
      return async (options) => {
        const name = `${options.host}:${options.port}:${options.ALPNProtocols.sort()}`;
        if (!cache3.has(name)) {
          if (queue2.has(name)) {
            const result = await queue2.get(name);
            return { alpnProtocol: result.alpnProtocol };
          }
          const { path: path3 } = options;
          options.path = options.socketPath;
          const resultPromise = resolveALPN(options, connect2);
          queue2.set(name, resultPromise);
          try {
            const result = await resultPromise;
            cache3.set(name, result.alpnProtocol);
            queue2.delete(name);
            options.path = path3;
            return result;
          } catch (error) {
            queue2.delete(name);
            options.path = path3;
            throw error;
          }
        }
        return { alpnProtocol: cache3.get(name) };
      };
    };
    var defaultResolveProtocol = createResolveProtocol2(cache2, queue);
    module.exports = async (input, options, callback) => {
      if (typeof input === "string") {
        input = urlToHttpOptions(new URL5(input));
      } else if (input instanceof URL5) {
        input = urlToHttpOptions(input);
      } else {
        input = { ...input };
      }
      if (typeof options === "function" || options === void 0) {
        callback = options;
        options = input;
      } else {
        options = Object.assign(input, options);
      }
      options.ALPNProtocols = options.ALPNProtocols || ["h2", "http/1.1"];
      if (!Array.isArray(options.ALPNProtocols) || options.ALPNProtocols.length === 0) {
        throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");
      }
      options.protocol = options.protocol || "https:";
      const isHttps2 = options.protocol === "https:";
      options.host = options.hostname || options.host || "localhost";
      options.session = options.tlsSession;
      options.servername = options.servername || calculateServerName(options.headers && options.headers.host || options.host);
      options.port = options.port || (isHttps2 ? 443 : 80);
      options._defaultAgent = isHttps2 ? https5.globalAgent : http6.globalAgent;
      const resolveProtocol = options.resolveProtocol || defaultResolveProtocol;
      let { agent } = options;
      if (agent !== void 0 && agent !== false && agent.constructor.name !== "Object") {
        throw new Error("The `options.agent` can be only an object `http`, `https` or `http2` properties");
      }
      if (isHttps2) {
        options.resolveSocket = true;
        let { socket, alpnProtocol, timeout } = await resolveProtocol(options);
        if (timeout) {
          if (socket) {
            socket.destroy();
          }
          const error = new Error(`Timed out resolving ALPN: ${options.timeout} ms`);
          error.code = "ETIMEDOUT";
          error.ms = options.timeout;
          throw error;
        }
        if (socket && options.createConnection) {
          socket.destroy();
          socket = void 0;
        }
        delete options.resolveSocket;
        const isHttp2 = alpnProtocol === "h2";
        if (agent) {
          agent = isHttp2 ? agent.http2 : agent.https;
          options.agent = agent;
        }
        if (agent === void 0) {
          agent = isHttp2 ? globalAgent : https5.globalAgent;
        }
        if (socket) {
          if (agent === false) {
            socket.destroy();
          } else {
            const defaultCreateConnection = (isHttp2 ? Agent : https5.Agent).prototype.createConnection;
            if (agent.createConnection === defaultCreateConnection) {
              if (isHttp2) {
                options._reuseSocket = socket;
              } else {
                installSocket(agent, socket, options);
              }
            } else {
              socket.destroy();
            }
          }
        }
        if (isHttp2) {
          return delayAsyncDestroy(new Http2ClientRequest(options, callback));
        }
      } else if (agent) {
        options.agent = agent.http;
      }
      if (options.headers) {
        options.headers = { ...options.headers };
        if (options.headers[":authority"]) {
          if (!options.headers.host) {
            options.headers.host = options.headers[":authority"];
          }
          delete options.headers[":authority"];
        }
        delete options.headers[":method"];
        delete options.headers[":scheme"];
        delete options.headers[":path"];
      }
      return delayAsyncDestroy(http6.request(options, callback));
    };
    module.exports.protocolCache = cache2;
    module.exports.resolveProtocol = defaultResolveProtocol;
    module.exports.createResolveProtocol = createResolveProtocol2;
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/js-stream-socket.js
var require_js_stream_socket = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/js-stream-socket.js"(exports, module) {
    "use strict";
    var stream7 = __require("stream");
    var tls3 = __require("tls");
    var JSStreamSocket = new tls3.TLSSocket(new stream7.PassThrough())._handle._parentWrap.constructor;
    module.exports = JSStreamSocket;
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/unexpected-status-code-error.js
var require_unexpected_status_code_error = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/unexpected-status-code-error.js"(exports, module) {
    "use strict";
    var UnexpectedStatusCodeError = class extends Error {
      constructor(statusCode, statusMessage = "") {
        super(`The proxy server rejected the request with status code ${statusCode} (${statusMessage || "empty status message"})`);
        this.statusCode = statusCode;
        this.statusMessage = statusMessage;
      }
    };
    module.exports = UnexpectedStatusCodeError;
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/check-type.js
var require_check_type = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/check-type.js"(exports, module) {
    "use strict";
    var checkType = (name, value2, types2) => {
      const valid = types2.some((type) => {
        const typeofType = typeof type;
        if (typeofType === "string") {
          return typeof value2 === type;
        }
        return value2 instanceof type;
      });
      if (!valid) {
        const names = types2.map((type) => typeof type === "string" ? type : type.name);
        throw new TypeError(`Expected '${name}' to be a type of ${names.join(" or ")}, got ${typeof value2}`);
      }
    };
    module.exports = checkType;
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/initialize.js
var require_initialize = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/initialize.js"(exports, module) {
    "use strict";
    var { URL: URL5 } = __require("url");
    var checkType = require_check_type();
    module.exports = (self2, proxyOptions) => {
      checkType("proxyOptions", proxyOptions, ["object"]);
      checkType("proxyOptions.headers", proxyOptions.headers, ["object", "undefined"]);
      checkType("proxyOptions.raw", proxyOptions.raw, ["boolean", "undefined"]);
      checkType("proxyOptions.url", proxyOptions.url, [URL5, "string"]);
      const url3 = new URL5(proxyOptions.url);
      self2.proxyOptions = {
        raw: true,
        ...proxyOptions,
        headers: { ...proxyOptions.headers },
        url: url3
      };
    };
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/get-auth-headers.js
var require_get_auth_headers = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/get-auth-headers.js"(exports, module) {
    "use strict";
    module.exports = (self2) => {
      const { username, password } = self2.proxyOptions.url;
      if (username || password) {
        const data2 = `${username}:${password}`;
        const authorization = `Basic ${Buffer.from(data2).toString("base64")}`;
        return {
          "proxy-authorization": authorization,
          authorization
        };
      }
      return {};
    };
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h1-over-h2.js
var require_h1_over_h2 = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h1-over-h2.js"(exports, module) {
    "use strict";
    var tls3 = __require("tls");
    var http6 = __require("http");
    var https5 = __require("https");
    var JSStreamSocket = require_js_stream_socket();
    var { globalAgent } = require_agent();
    var UnexpectedStatusCodeError = require_unexpected_status_code_error();
    var initialize2 = require_initialize();
    var getAuthorizationHeaders = require_get_auth_headers();
    var createConnection = (self2, options, callback) => {
      (async () => {
        try {
          const { proxyOptions } = self2;
          const { url: url3, headers, raw } = proxyOptions;
          const stream7 = await globalAgent.request(url3, proxyOptions, {
            ...getAuthorizationHeaders(self2),
            ...headers,
            ":method": "CONNECT",
            ":authority": `${options.host}:${options.port}`
          });
          stream7.once("error", callback);
          stream7.once("response", (headers2) => {
            const statusCode = headers2[":status"];
            if (statusCode !== 200) {
              callback(new UnexpectedStatusCodeError(statusCode, ""));
              return;
            }
            const encrypted = self2 instanceof https5.Agent;
            if (raw && encrypted) {
              options.socket = stream7;
              const secureStream = tls3.connect(options);
              secureStream.once("close", () => {
                stream7.destroy();
              });
              callback(null, secureStream);
              return;
            }
            const socket = new JSStreamSocket(stream7);
            socket.encrypted = false;
            socket._handle.getpeername = (out) => {
              out.family = void 0;
              out.address = void 0;
              out.port = void 0;
            };
            callback(null, socket);
          });
        } catch (error) {
          callback(error);
        }
      })();
    };
    var HttpOverHttp22 = class extends http6.Agent {
      constructor(options) {
        super(options);
        initialize2(this, options.proxyOptions);
      }
      createConnection(options, callback) {
        createConnection(this, options, callback);
      }
    };
    var HttpsOverHttp22 = class extends https5.Agent {
      constructor(options) {
        super(options);
        initialize2(this, options.proxyOptions);
      }
      createConnection(options, callback) {
        createConnection(this, options, callback);
      }
    };
    module.exports = {
      HttpOverHttp2: HttpOverHttp22,
      HttpsOverHttp2: HttpsOverHttp22
    };
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-hx.js
var require_h2_over_hx = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-hx.js"(exports, module) {
    "use strict";
    var { Agent } = require_agent();
    var JSStreamSocket = require_js_stream_socket();
    var UnexpectedStatusCodeError = require_unexpected_status_code_error();
    var initialize2 = require_initialize();
    var Http2OverHttpX = class extends Agent {
      constructor(options) {
        super(options);
        initialize2(this, options.proxyOptions);
      }
      async createConnection(origin2, options) {
        const authority = `${origin2.hostname}:${origin2.port || 443}`;
        const [stream7, statusCode, statusMessage] = await this._getProxyStream(authority);
        if (statusCode !== 200) {
          throw new UnexpectedStatusCodeError(statusCode, statusMessage);
        }
        if (this.proxyOptions.raw) {
          options.socket = stream7;
        } else {
          const socket = new JSStreamSocket(stream7);
          socket.encrypted = false;
          socket._handle.getpeername = (out) => {
            out.family = void 0;
            out.address = void 0;
            out.port = void 0;
          };
          return socket;
        }
        return super.createConnection(origin2, options);
      }
    };
    module.exports = Http2OverHttpX;
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-h2.js
var require_h2_over_h2 = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-h2.js"(exports, module) {
    "use strict";
    var { globalAgent } = require_agent();
    var Http2OverHttpX = require_h2_over_hx();
    var getAuthorizationHeaders = require_get_auth_headers();
    var getStatusCode = (stream7) => new Promise((resolve4, reject) => {
      stream7.once("error", reject);
      stream7.once("response", (headers) => {
        stream7.off("error", reject);
        resolve4(headers[":status"]);
      });
    });
    var Http2OverHttp22 = class extends Http2OverHttpX {
      async _getProxyStream(authority) {
        const { proxyOptions } = this;
        const headers = {
          ...getAuthorizationHeaders(this),
          ...proxyOptions.headers,
          ":method": "CONNECT",
          ":authority": authority
        };
        const stream7 = await globalAgent.request(proxyOptions.url, proxyOptions, headers);
        const statusCode = await getStatusCode(stream7);
        return [stream7, statusCode, ""];
      }
    };
    module.exports = Http2OverHttp22;
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-h1.js
var require_h2_over_h1 = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-h1.js"(exports, module) {
    "use strict";
    var http6 = __require("http");
    var https5 = __require("https");
    var Http2OverHttpX = require_h2_over_hx();
    var getAuthorizationHeaders = require_get_auth_headers();
    var getStream = (request) => new Promise((resolve4, reject) => {
      const onConnect = (response, socket, head) => {
        socket.unshift(head);
        request.off("error", reject);
        resolve4([socket, response.statusCode, response.statusMessage]);
      };
      request.once("error", reject);
      request.once("connect", onConnect);
    });
    var Http2OverHttp3 = class extends Http2OverHttpX {
      async _getProxyStream(authority) {
        const { proxyOptions } = this;
        const { url: url3, headers } = this.proxyOptions;
        const network = url3.protocol === "https:" ? https5 : http6;
        const request = network.request({
          ...proxyOptions,
          hostname: url3.hostname,
          port: url3.port,
          path: authority,
          headers: {
            ...getAuthorizationHeaders(this),
            ...headers,
            host: authority
          },
          method: "CONNECT"
        }).end();
        return getStream(request);
      }
    };
    module.exports = {
      Http2OverHttp: Http2OverHttp3,
      Http2OverHttps: Http2OverHttp3
    };
  }
});

// ../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/index.js
var require_source = __commonJS({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/index.js"(exports, module) {
    "use strict";
    var http25 = __require("http2");
    var {
      Agent,
      globalAgent
    } = require_agent();
    var ClientRequest = require_client_request();
    var IncomingMessage = require_incoming_message();
    var auto4 = require_auto();
    var {
      HttpOverHttp2: HttpOverHttp22,
      HttpsOverHttp2: HttpsOverHttp22
    } = require_h1_over_h2();
    var Http2OverHttp22 = require_h2_over_h2();
    var {
      Http2OverHttp: Http2OverHttp3,
      Http2OverHttps: Http2OverHttps2
    } = require_h2_over_h1();
    var validateHeaderName = require_validate_header_name();
    var validateHeaderValue = require_validate_header_value();
    var request = (url3, options, callback) => new ClientRequest(url3, options, callback);
    var get = (url3, options, callback) => {
      const req = new ClientRequest(url3, options, callback);
      req.end();
      return req;
    };
    module.exports = {
      ...http25,
      ClientRequest,
      IncomingMessage,
      Agent,
      globalAgent,
      request,
      get,
      auto: auto4,
      proxies: {
        HttpOverHttp2: HttpOverHttp22,
        HttpsOverHttp2: HttpsOverHttp22,
        Http2OverHttp2: Http2OverHttp22,
        Http2OverHttp: Http2OverHttp3,
        Http2OverHttps: Http2OverHttps2
      },
      validateHeaderName,
      validateHeaderValue
    };
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/parse-link-header.js
function parseLinkHeader(link) {
  const parsed = [];
  const items = link.split(",");
  for (const item of items) {
    const [rawUriReference, ...rawLinkParameters] = item.split(";");
    const trimmedUriReference = rawUriReference.trim();
    if (trimmedUriReference[0] !== "<" || trimmedUriReference.at(-1) !== ">") {
      throw new Error(`Invalid format of the Link header reference: ${trimmedUriReference}`);
    }
    const reference = trimmedUriReference.slice(1, -1);
    const parameters = {};
    if (rawLinkParameters.length === 0) {
      throw new Error(`Unexpected end of Link header parameters: ${rawLinkParameters.join(";")}`);
    }
    for (const rawParameter of rawLinkParameters) {
      const trimmedRawParameter = rawParameter.trim();
      const center = trimmedRawParameter.indexOf("=");
      if (center === -1) {
        throw new Error(`Failed to parse Link header: ${link}`);
      }
      const name = trimmedRawParameter.slice(0, center).trim();
      const value2 = trimmedRawParameter.slice(center + 1).trim();
      parameters[name] = value2;
    }
    parsed.push({
      reference,
      parameters
    });
  }
  return parsed;
}
var init_parse_link_header = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/parse-link-header.js"() {
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/options.js
import process2 from "node:process";
import { promisify as promisify3, inspect } from "node:util";
import { checkServerIdentity } from "node:tls";
import https from "node:https";
import http from "node:http";
function wrapAssertionWithContext(optionName, assertionFn) {
  try {
    assertionFn();
  } catch (error) {
    if (error instanceof Error) {
      error.message = `Option '${optionName}': ${error.message}`;
    }
    throw error;
  }
}
function assertAny2(optionName, validators4, value2) {
  wrapAssertionWithContext(optionName, () => {
    assert.any(validators4, value2);
  });
}
function assertPlainObject2(optionName, value2) {
  wrapAssertionWithContext(optionName, () => {
    assert.plainObject(value2);
  });
}
function validateSearchParameters(searchParameters) {
  for (const key in searchParameters) {
    const value2 = searchParameters[key];
    assertAny2(`searchParams.${key}`, [distribution_default.string, distribution_default.number, distribution_default.boolean, distribution_default.null, distribution_default.undefined], value2);
  }
}
var import_http2_wrapper, major, minor, globalCache, globalDnsCache, getGlobalDnsCache, wrapQuickLruIfNeeded, defaultInternals, cloneInternals, cloneRaw, getHttp2TimeoutOption, init, Options;
var init_options = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/options.js"() {
    init_distribution();
    init_lowercase_keys();
    init_source2();
    import_http2_wrapper = __toESM(require_source(), 1);
    init_lib();
    init_parse_link_header();
    [major, minor] = process2.versions.node.split(".").map(Number);
    globalCache = /* @__PURE__ */ new Map();
    getGlobalDnsCache = () => {
      if (globalDnsCache) {
        return globalDnsCache;
      }
      globalDnsCache = new CacheableLookup();
      return globalDnsCache;
    };
    wrapQuickLruIfNeeded = (value2) => {
      if (value2?.[Symbol.toStringTag] === "QuickLRU" && typeof value2.evict === "function") {
        return {
          get(key) {
            return value2.get(key);
          },
          set(key, cacheValue, ttl2) {
            if (ttl2 === void 0) {
              value2.set(key, cacheValue);
            } else {
              value2.set(key, cacheValue, { maxAge: ttl2 });
            }
            return true;
          },
          delete(key) {
            return value2.delete(key);
          },
          clear() {
            return value2.clear();
          },
          has(key) {
            return value2.has(key);
          }
        };
      }
      return value2;
    };
    defaultInternals = {
      request: void 0,
      agent: {
        http: void 0,
        https: void 0,
        http2: void 0
      },
      h2session: void 0,
      decompress: true,
      timeout: {
        connect: void 0,
        lookup: void 0,
        read: void 0,
        request: void 0,
        response: void 0,
        secureConnect: void 0,
        send: void 0,
        socket: void 0
      },
      prefixUrl: "",
      body: void 0,
      form: void 0,
      json: void 0,
      cookieJar: void 0,
      ignoreInvalidCookies: false,
      searchParams: void 0,
      dnsLookup: void 0,
      dnsCache: void 0,
      context: {},
      hooks: {
        init: [],
        beforeRequest: [],
        beforeError: [],
        beforeRedirect: [],
        beforeRetry: [],
        beforeCache: [],
        afterResponse: []
      },
      followRedirect: true,
      maxRedirects: 10,
      cache: void 0,
      throwHttpErrors: true,
      username: "",
      password: "",
      http2: false,
      allowGetBody: false,
      copyPipedHeaders: true,
      headers: {
        "user-agent": "got (https://github.com/sindresorhus/got)"
      },
      methodRewriting: false,
      dnsLookupIpVersion: void 0,
      parseJson: JSON.parse,
      stringifyJson: JSON.stringify,
      retry: {
        limit: 2,
        methods: [
          "GET",
          "PUT",
          "HEAD",
          "DELETE",
          "OPTIONS",
          "TRACE"
        ],
        statusCodes: [
          408,
          413,
          429,
          500,
          502,
          503,
          504,
          521,
          522,
          524
        ],
        errorCodes: [
          "ETIMEDOUT",
          "ECONNRESET",
          "EADDRINUSE",
          "ECONNREFUSED",
          "EPIPE",
          "ENOTFOUND",
          "ENETUNREACH",
          "EAI_AGAIN"
        ],
        maxRetryAfter: void 0,
        calculateDelay: ({ computedValue }) => computedValue,
        backoffLimit: Number.POSITIVE_INFINITY,
        noise: 100,
        // TODO: Change default to `true` in the next major version to fix https://github.com/sindresorhus/got/issues/2243
        enforceRetryRules: false
      },
      localAddress: void 0,
      method: "GET",
      createConnection: void 0,
      cacheOptions: {
        shared: void 0,
        cacheHeuristic: void 0,
        immutableMinTimeToLive: void 0,
        ignoreCargoCult: void 0
      },
      https: {
        alpnProtocols: void 0,
        rejectUnauthorized: void 0,
        checkServerIdentity: void 0,
        serverName: void 0,
        certificateAuthority: void 0,
        key: void 0,
        certificate: void 0,
        passphrase: void 0,
        pfx: void 0,
        ciphers: void 0,
        honorCipherOrder: void 0,
        minVersion: void 0,
        maxVersion: void 0,
        signatureAlgorithms: void 0,
        tlsSessionLifetime: void 0,
        dhparam: void 0,
        ecdhCurve: void 0,
        certificateRevocationLists: void 0,
        secureOptions: void 0
      },
      encoding: void 0,
      resolveBodyOnly: false,
      isStream: false,
      responseType: "text",
      url: void 0,
      pagination: {
        transform(response) {
          if (response.request.options.responseType === "json") {
            return response.body;
          }
          return JSON.parse(response.body);
        },
        paginate({ response }) {
          const rawLinkHeader = response.headers.link;
          if (typeof rawLinkHeader !== "string" || rawLinkHeader.trim() === "") {
            return false;
          }
          const parsed = parseLinkHeader(rawLinkHeader);
          const next = parsed.find((entry) => entry.parameters.rel === "next" || entry.parameters.rel === '"next"');
          if (next) {
            return {
              url: new URL(next.reference, response.url)
            };
          }
          return false;
        },
        filter: () => true,
        shouldContinue: () => true,
        countLimit: Number.POSITIVE_INFINITY,
        backoff: 0,
        requestLimit: 1e4,
        stackAllItems: false
      },
      setHost: true,
      maxHeaderSize: void 0,
      signal: void 0,
      enableUnixSockets: false,
      strictContentLength: false
    };
    cloneInternals = (internals) => {
      const { hooks: hooks2, retry } = internals;
      const result = {
        ...internals,
        context: { ...internals.context },
        cacheOptions: { ...internals.cacheOptions },
        https: { ...internals.https },
        agent: { ...internals.agent },
        headers: { ...internals.headers },
        retry: {
          ...retry,
          errorCodes: [...retry.errorCodes],
          methods: [...retry.methods],
          statusCodes: [...retry.statusCodes]
        },
        timeout: { ...internals.timeout },
        hooks: {
          init: [...hooks2.init],
          beforeRequest: [...hooks2.beforeRequest],
          beforeError: [...hooks2.beforeError],
          beforeRedirect: [...hooks2.beforeRedirect],
          beforeRetry: [...hooks2.beforeRetry],
          beforeCache: [...hooks2.beforeCache],
          afterResponse: [...hooks2.afterResponse]
        },
        searchParams: internals.searchParams ? new URLSearchParams(internals.searchParams) : void 0,
        pagination: { ...internals.pagination }
      };
      return result;
    };
    cloneRaw = (raw) => {
      const { hooks: hooks2, retry } = raw;
      const result = { ...raw };
      if (distribution_default.object(raw.context)) {
        result.context = { ...raw.context };
      }
      if (distribution_default.object(raw.cacheOptions)) {
        result.cacheOptions = { ...raw.cacheOptions };
      }
      if (distribution_default.object(raw.https)) {
        result.https = { ...raw.https };
      }
      if (distribution_default.object(raw.cacheOptions)) {
        result.cacheOptions = { ...result.cacheOptions };
      }
      if (distribution_default.object(raw.agent)) {
        result.agent = { ...raw.agent };
      }
      if (distribution_default.object(raw.headers)) {
        result.headers = { ...raw.headers };
      }
      if (distribution_default.object(retry)) {
        result.retry = { ...retry };
        if (distribution_default.array(retry.errorCodes)) {
          result.retry.errorCodes = [...retry.errorCodes];
        }
        if (distribution_default.array(retry.methods)) {
          result.retry.methods = [...retry.methods];
        }
        if (distribution_default.array(retry.statusCodes)) {
          result.retry.statusCodes = [...retry.statusCodes];
        }
      }
      if (distribution_default.object(raw.timeout)) {
        result.timeout = { ...raw.timeout };
      }
      if (distribution_default.object(hooks2)) {
        result.hooks = {
          ...hooks2
        };
        if (distribution_default.array(hooks2.init)) {
          result.hooks.init = [...hooks2.init];
        }
        if (distribution_default.array(hooks2.beforeRequest)) {
          result.hooks.beforeRequest = [...hooks2.beforeRequest];
        }
        if (distribution_default.array(hooks2.beforeError)) {
          result.hooks.beforeError = [...hooks2.beforeError];
        }
        if (distribution_default.array(hooks2.beforeRedirect)) {
          result.hooks.beforeRedirect = [...hooks2.beforeRedirect];
        }
        if (distribution_default.array(hooks2.beforeRetry)) {
          result.hooks.beforeRetry = [...hooks2.beforeRetry];
        }
        if (distribution_default.array(hooks2.beforeCache)) {
          result.hooks.beforeCache = [...hooks2.beforeCache];
        }
        if (distribution_default.array(hooks2.afterResponse)) {
          result.hooks.afterResponse = [...hooks2.afterResponse];
        }
      }
      if (raw.searchParams) {
        if (distribution_default.string(raw.searchParams)) {
          result.searchParams = raw.searchParams;
        } else if (raw.searchParams instanceof URLSearchParams) {
          result.searchParams = new URLSearchParams(raw.searchParams);
        } else if (distribution_default.object(raw.searchParams)) {
          result.searchParams = { ...raw.searchParams };
        }
      }
      if (distribution_default.object(raw.pagination)) {
        result.pagination = { ...raw.pagination };
      }
      return result;
    };
    getHttp2TimeoutOption = (internals) => {
      const delays = [internals.timeout.socket, internals.timeout.connect, internals.timeout.lookup, internals.timeout.request, internals.timeout.secureConnect].filter((delay2) => typeof delay2 === "number");
      if (delays.length > 0) {
        return Math.min(...delays);
      }
      return void 0;
    };
    init = (options, withOptions, self2) => {
      const initHooks = options.hooks?.init;
      if (initHooks) {
        for (const hook of initHooks) {
          hook(withOptions, self2);
        }
      }
    };
    Options = class _Options {
      _unixOptions;
      _internals;
      _merging = false;
      _init;
      constructor(input, options, defaults4) {
        assertAny2("input", [distribution_default.string, distribution_default.urlInstance, distribution_default.object, distribution_default.undefined], input);
        assertAny2("options", [distribution_default.object, distribution_default.undefined], options);
        assertAny2("defaults", [distribution_default.object, distribution_default.undefined], defaults4);
        if (input instanceof _Options || options instanceof _Options) {
          throw new TypeError("The defaults must be passed as the third argument");
        }
        this._internals = cloneInternals(defaults4?._internals ?? defaults4 ?? defaultInternals);
        this._init = [...defaults4?._init ?? []];
        try {
          if (distribution_default.plainObject(input)) {
            try {
              this.merge(input);
              this.merge(options);
            } finally {
              this.url = input.url;
            }
          } else {
            try {
              this.merge(options);
            } finally {
              if (options?.url !== void 0) {
                if (input === void 0) {
                  this.url = options.url;
                } else {
                  throw new TypeError("The `url` option is mutually exclusive with the `input` argument");
                }
              } else if (input !== void 0) {
                this.url = input;
              }
            }
          }
        } catch (error) {
          error.options = this;
          throw error;
        }
      }
      merge(options) {
        if (!options) {
          return;
        }
        if (options instanceof _Options) {
          const initArray = [...options._init];
          for (const init3 of initArray) {
            this.merge(init3);
          }
          return;
        }
        options = cloneRaw(options);
        init(this, options, this);
        init(options, options, this);
        this._merging = true;
        if ("isStream" in options) {
          this.isStream = options.isStream;
        }
        try {
          let push = false;
          for (const key in options) {
            if (key === "mutableDefaults" || key === "handlers") {
              continue;
            }
            if (key === "url") {
              continue;
            }
            if (key === "preserveHooks") {
              continue;
            }
            if (!(key in this)) {
              throw new Error(`Unexpected option: ${key}`);
            }
            const value2 = options[key];
            if (value2 === void 0) {
              continue;
            }
            this[key] = value2;
            push = true;
          }
          if (push) {
            this._init.push(options);
          }
        } finally {
          this._merging = false;
        }
      }
      /**
          Custom request function.
          The main purpose of this is to [support HTTP2 using a wrapper](https://github.com/szmarczak/http2-wrapper).
      
          @default http.request | https.request
          */
      get request() {
        return this._internals.request;
      }
      set request(value2) {
        assertAny2("request", [distribution_default.function, distribution_default.undefined], value2);
        this._internals.request = value2;
      }
      /**
          An object representing `http`, `https` and `http2` keys for [`http.Agent`](https://nodejs.org/api/http.html#http_class_http_agent), [`https.Agent`](https://nodejs.org/api/https.html#https_class_https_agent) and [`http2wrapper.Agent`](https://github.com/szmarczak/http2-wrapper#new-http2agentoptions) instance.
          This is necessary because a request to one protocol might redirect to another.
          In such a scenario, Got will switch over to the right protocol agent for you.
      
          If a key is not present, it will default to a global agent.
      
          @example
          ```
          import got from 'got';
          import HttpAgent from 'agentkeepalive';
      
          const {HttpsAgent} = HttpAgent;
      
          await got('https://sindresorhus.com', {
              agent: {
                  http: new HttpAgent(),
                  https: new HttpsAgent()
              }
          });
          ```
          */
      get agent() {
        return this._internals.agent;
      }
      set agent(value2) {
        assertPlainObject2("agent", value2);
        for (const key in value2) {
          if (!(key in this._internals.agent)) {
            throw new TypeError(`Unexpected agent option: ${key}`);
          }
          assertAny2(`agent.${key}`, [distribution_default.object, distribution_default.undefined, (v3) => v3 === false], value2[key]);
        }
        if (this._merging) {
          Object.assign(this._internals.agent, value2);
        } else {
          this._internals.agent = { ...value2 };
        }
      }
      get h2session() {
        return this._internals.h2session;
      }
      set h2session(value2) {
        this._internals.h2session = value2;
      }
      /**
          Decompress the response automatically.
      
          This will set the `accept-encoding` header to `gzip, deflate, br` unless you set it yourself.
      
          If this is disabled, a compressed response is returned as a `Buffer`.
          This may be useful if you want to handle decompression yourself or stream the raw compressed data.
      
          @default true
          */
      get decompress() {
        return this._internals.decompress;
      }
      set decompress(value2) {
        assert.boolean(value2);
        this._internals.decompress = value2;
      }
      /**
          Milliseconds to wait for the server to end the response before aborting the request with `got.TimeoutError` error (a.k.a. `request` property).
          By default, there's no timeout.
      
          This also accepts an `object` with the following fields to constrain the duration of each phase of the request lifecycle:
      
          - `lookup` starts when a socket is assigned and ends when the hostname has been resolved.
              Does not apply when using a Unix domain socket.
          - `connect` starts when `lookup` completes (or when the socket is assigned if lookup does not apply to the request) and ends when the socket is connected.
          - `secureConnect` starts when `connect` completes and ends when the handshaking process completes (HTTPS only).
          - `socket` starts when the socket is connected. See [request.setTimeout](https://nodejs.org/api/http.html#http_request_settimeout_timeout_callback).
          - `response` starts when the request has been written to the socket and ends when the response headers are received.
          - `send` starts when the socket is connected and ends with the request has been written to the socket.
          - `request` starts when the request is initiated and ends when the response's end event fires.
          */
      get timeout() {
        return this._internals.timeout;
      }
      set timeout(value2) {
        assertPlainObject2("timeout", value2);
        for (const key in value2) {
          if (!(key in this._internals.timeout)) {
            throw new Error(`Unexpected timeout option: ${key}`);
          }
          assertAny2(`timeout.${key}`, [distribution_default.number, distribution_default.undefined], value2[key]);
        }
        if (this._merging) {
          Object.assign(this._internals.timeout, value2);
        } else {
          this._internals.timeout = { ...value2 };
        }
      }
      /**
          When specified, `prefixUrl` will be prepended to `url`.
          The prefix can be any valid URL, either relative or absolute.
          A trailing slash `/` is optional - one will be added automatically.
      
          __Note__: `prefixUrl` will be ignored if the `url` argument is a URL instance.
      
          __Note__: Leading slashes in `input` are disallowed when using this option to enforce consistency and avoid confusion.
          For example, when the prefix URL is `https://example.com/foo` and the input is `/bar`, there's ambiguity whether the resulting URL would become `https://example.com/foo/bar` or `https://example.com/bar`.
          The latter is used by browsers.
      
          __Tip__: Useful when used with `got.extend()` to create niche-specific Got instances.
      
          __Tip__: You can change `prefixUrl` using hooks as long as the URL still includes the `prefixUrl`.
          If the URL doesn't include it anymore, it will throw.
      
          @example
          ```
          import got from 'got';
      
          await got('unicorn', {prefixUrl: 'https://cats.com'});
          //=> 'https://cats.com/unicorn'
      
          const instance = got.extend({
              prefixUrl: 'https://google.com'
          });
      
          await instance('unicorn', {
              hooks: {
                  beforeRequest: [
                      options => {
                          options.prefixUrl = 'https://cats.com';
                      }
                  ]
              }
          });
          //=> 'https://cats.com/unicorn'
          ```
          */
      get prefixUrl() {
        return this._internals.prefixUrl;
      }
      set prefixUrl(value2) {
        assertAny2("prefixUrl", [distribution_default.string, distribution_default.urlInstance], value2);
        if (value2 === "") {
          this._internals.prefixUrl = "";
          return;
        }
        value2 = value2.toString();
        if (!value2.endsWith("/")) {
          value2 += "/";
        }
        if (this._internals.prefixUrl && this._internals.url) {
          const { href } = this._internals.url;
          this._internals.url.href = value2 + href.slice(this._internals.prefixUrl.length);
        }
        this._internals.prefixUrl = value2;
      }
      /**
          __Note #1__: The `body` option cannot be used with the `json` or `form` option.
      
          __Note #2__: If you provide this option, `got.stream()` will be read-only.
      
          __Note #3__: If you provide a payload with the `GET` or `HEAD` method, it will throw a `TypeError` unless the method is `GET` and the `allowGetBody` option is set to `true`.
      
          __Note #4__: This option is not enumerable and will not be merged with the instance defaults.
      
          The `content-length` header will be automatically set if `body` is a `string` / `Buffer` / typed array ([`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array), etc.) / [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData) / [`form-data` instance](https://github.com/form-data/form-data), and `content-length` and `transfer-encoding` are not manually set in `options.headers`.
      
          Since Got 12, the `content-length` is not automatically set when `body` is a `fs.createReadStream`.
      
          You can use `Iterable` and `AsyncIterable` objects as request body, including Web [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream):
      
          @example
          ```
          import got from 'got';
      
          // Using an async generator
          async function* generateData() {
              yield 'Hello, ';
              yield 'world!';
          }
      
          await got.post('https://httpbin.org/anything', {
              body: generateData()
          });
          ```
          */
      get body() {
        return this._internals.body;
      }
      set body(value2) {
        assertAny2("body", [distribution_default.string, distribution_default.buffer, distribution_default.nodeStream, distribution_default.generator, distribution_default.asyncGenerator, distribution_default.iterable, distribution_default.asyncIterable, isFormData2, distribution_default.typedArray, distribution_default.undefined], value2);
        if (distribution_default.nodeStream(value2)) {
          assert.truthy(value2.readable);
        }
        if (value2 !== void 0) {
          assert.undefined(this._internals.form);
          assert.undefined(this._internals.json);
        }
        this._internals.body = value2;
      }
      /**
          The form body is converted to a query string using [`(new URLSearchParams(object)).toString()`](https://nodejs.org/api/url.html#url_constructor_new_urlsearchparams_obj).
      
          If the `Content-Type` header is not present, it will be set to `application/x-www-form-urlencoded`.
      
          __Note #1__: If you provide this option, `got.stream()` will be read-only.
      
          __Note #2__: This option is not enumerable and will not be merged with the instance defaults.
          */
      get form() {
        return this._internals.form;
      }
      set form(value2) {
        assertAny2("form", [distribution_default.plainObject, distribution_default.undefined], value2);
        if (value2 !== void 0) {
          assert.undefined(this._internals.body);
          assert.undefined(this._internals.json);
        }
        this._internals.form = value2;
      }
      /**
          JSON request body. If the `content-type` header is not set, it will be set to `application/json`.
      
          __Important__: This option only affects the request body you send to the server. To parse the response as JSON, you must either call `.json()` on the promise or set `responseType: 'json'` in the options.
      
          __Note #1__: If you provide this option, `got.stream()` will be read-only.
      
          __Note #2__: This option is not enumerable and will not be merged with the instance defaults.
          */
      get json() {
        return this._internals.json;
      }
      set json(value2) {
        if (value2 !== void 0) {
          assert.undefined(this._internals.body);
          assert.undefined(this._internals.form);
        }
        this._internals.json = value2;
      }
      /**
          The URL to request, as a string, a [`https.request` options object](https://nodejs.org/api/https.html#https_https_request_options_callback), or a [WHATWG `URL`](https://nodejs.org/api/url.html#url_class_url).
      
          Properties from `options` will override properties in the parsed `url`.
      
          If no protocol is specified, it will throw a `TypeError`.
      
          __Note__: The query string is **not** parsed as search params.
      
          @example
          ```
          await got('https://example.com/?query=a b'); //=> https://example.com/?query=a%20b
          await got('https://example.com/', {searchParams: {query: 'a b'}}); //=> https://example.com/?query=a+b
      
          // The query string is overridden by `searchParams`
          await got('https://example.com/?query=a b', {searchParams: {query: 'a b'}}); //=> https://example.com/?query=a+b
          ```
          */
      get url() {
        return this._internals.url;
      }
      set url(value2) {
        assertAny2("url", [distribution_default.string, distribution_default.urlInstance, distribution_default.undefined], value2);
        if (value2 === void 0) {
          this._internals.url = void 0;
          return;
        }
        if (distribution_default.string(value2) && value2.startsWith("/")) {
          throw new Error("`url` must not start with a slash");
        }
        const valueString = value2.toString();
        const isAbsolute = distribution_default.urlInstance(value2) || /^[a-z][a-z\d+.-]*:\/\//i.test(valueString);
        const urlString = isAbsolute ? valueString : `${this.prefixUrl}${valueString}`;
        const url3 = new URL(urlString);
        this._internals.url = url3;
        if (url3.protocol === "unix:") {
          url3.href = `http://unix${url3.pathname}${url3.search}`;
        }
        if (url3.protocol !== "http:" && url3.protocol !== "https:") {
          const error = new Error(`Unsupported protocol: ${url3.protocol}`);
          error.code = "ERR_UNSUPPORTED_PROTOCOL";
          throw error;
        }
        if (this._internals.username) {
          url3.username = this._internals.username;
          this._internals.username = "";
        }
        if (this._internals.password) {
          url3.password = this._internals.password;
          this._internals.password = "";
        }
        if (this._internals.searchParams) {
          url3.search = this._internals.searchParams.toString();
          this._internals.searchParams = void 0;
        }
        if (url3.hostname === "unix") {
          if (!this._internals.enableUnixSockets) {
            throw new Error("Using UNIX domain sockets but option `enableUnixSockets` is not enabled");
          }
          const matches = /(?<socketPath>.+?):(?<path>.+)/.exec(`${url3.pathname}${url3.search}`);
          if (matches?.groups) {
            const { socketPath, path: path3 } = matches.groups;
            this._unixOptions = {
              socketPath,
              path: path3,
              host: ""
            };
          } else {
            this._unixOptions = void 0;
          }
          return;
        }
        this._unixOptions = void 0;
      }
      /**
          Cookie support. You don't have to care about parsing or how to store them.
      
          __Note__: If you provide this option, `options.headers.cookie` will be overridden.
          */
      get cookieJar() {
        return this._internals.cookieJar;
      }
      set cookieJar(value2) {
        assertAny2("cookieJar", [distribution_default.object, distribution_default.undefined], value2);
        if (value2 === void 0) {
          this._internals.cookieJar = void 0;
          return;
        }
        let { setCookie, getCookieString } = value2;
        assert.function(setCookie);
        assert.function(getCookieString);
        if (setCookie.length === 4 && getCookieString.length === 0) {
          setCookie = promisify3(setCookie.bind(value2));
          getCookieString = promisify3(getCookieString.bind(value2));
          this._internals.cookieJar = {
            setCookie,
            getCookieString
          };
        } else {
          this._internals.cookieJar = value2;
        }
      }
      /**
          You can abort the `request` using [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController).
      
          @example
          ```
          import got from 'got';
      
          const abortController = new AbortController();
      
          const request = got('https://httpbin.org/anything', {
              signal: abortController.signal
          });
      
          setTimeout(() => {
              abortController.abort();
          }, 100);
          ```
          */
      get signal() {
        return this._internals.signal;
      }
      set signal(value2) {
        assert.object(value2);
        this._internals.signal = value2;
      }
      /**
          Ignore invalid cookies instead of throwing an error.
          Only useful when the `cookieJar` option has been set. Not recommended.
      
          @default false
          */
      get ignoreInvalidCookies() {
        return this._internals.ignoreInvalidCookies;
      }
      set ignoreInvalidCookies(value2) {
        assert.boolean(value2);
        this._internals.ignoreInvalidCookies = value2;
      }
      /**
          Query string that will be added to the request URL.
          This will override the query string in `url`.
      
          If you need to pass in an array, you can do it using a `URLSearchParams` instance.
      
          @example
          ```
          import got from 'got';
      
          const searchParams = new URLSearchParams([['key', 'a'], ['key', 'b']]);
      
          await got('https://example.com', {searchParams});
      
          console.log(searchParams.toString());
          //=> 'key=a&key=b'
          ```
          */
      get searchParams() {
        if (this._internals.url) {
          return this._internals.url.searchParams;
        }
        if (this._internals.searchParams === void 0) {
          this._internals.searchParams = new URLSearchParams();
        }
        return this._internals.searchParams;
      }
      set searchParams(value2) {
        assertAny2("searchParams", [distribution_default.string, distribution_default.object, distribution_default.undefined], value2);
        const url3 = this._internals.url;
        if (value2 === void 0) {
          this._internals.searchParams = void 0;
          if (url3) {
            url3.search = "";
          }
          return;
        }
        const searchParameters = this.searchParams;
        let updated;
        if (distribution_default.string(value2)) {
          updated = new URLSearchParams(value2);
        } else if (value2 instanceof URLSearchParams) {
          updated = value2;
        } else {
          validateSearchParameters(value2);
          updated = new URLSearchParams();
          for (const key in value2) {
            const entry = value2[key];
            if (entry === null) {
              updated.append(key, "");
            } else if (entry === void 0) {
              searchParameters.delete(key);
            } else {
              updated.append(key, entry);
            }
          }
        }
        if (this._merging) {
          for (const key of updated.keys()) {
            searchParameters.delete(key);
          }
          for (const [key, value3] of updated) {
            searchParameters.append(key, value3);
          }
        } else if (url3) {
          url3.search = searchParameters.toString();
        } else {
          this._internals.searchParams = searchParameters;
        }
      }
      get searchParameters() {
        throw new Error("The `searchParameters` option does not exist. Use `searchParams` instead.");
      }
      set searchParameters(_value) {
        throw new Error("The `searchParameters` option does not exist. Use `searchParams` instead.");
      }
      get dnsLookup() {
        return this._internals.dnsLookup;
      }
      set dnsLookup(value2) {
        assertAny2("dnsLookup", [distribution_default.function, distribution_default.undefined], value2);
        this._internals.dnsLookup = value2;
      }
      /**
          An instance of [`CacheableLookup`](https://github.com/szmarczak/cacheable-lookup) used for making DNS lookups.
          Useful when making lots of requests to different *public* hostnames.
      
          `CacheableLookup` uses `dns.resolver4(..)` and `dns.resolver6(...)` under the hood and fall backs to `dns.lookup(...)` when the first two fail, which may lead to additional delay.
      
          __Note__: This should stay disabled when making requests to internal hostnames such as `localhost`, `database.local` etc.
      
          @default false
          */
      get dnsCache() {
        return this._internals.dnsCache;
      }
      set dnsCache(value2) {
        assertAny2("dnsCache", [distribution_default.object, distribution_default.boolean, distribution_default.undefined], value2);
        if (value2 === true) {
          this._internals.dnsCache = getGlobalDnsCache();
        } else if (value2 === false) {
          this._internals.dnsCache = void 0;
        } else {
          this._internals.dnsCache = value2;
        }
      }
      /**
          User data. `context` is shallow merged and enumerable. If it contains non-enumerable properties they will NOT be merged.
      
          @example
          ```
          import got from 'got';
      
          const instance = got.extend({
              hooks: {
                  beforeRequest: [
                      options => {
                          if (!options.context || !options.context.token) {
                              throw new Error('Token required');
                          }
      
                          options.headers.token = options.context.token;
                      }
                  ]
              }
          });
      
          const context = {
              token: 'secret'
          };
      
          const response = await instance('https://httpbin.org/headers', {context});
      
          // Let's see the headers
          console.log(response.body);
          ```
          */
      get context() {
        return this._internals.context;
      }
      set context(value2) {
        assert.object(value2);
        if (this._merging) {
          Object.assign(this._internals.context, value2);
        } else {
          this._internals.context = { ...value2 };
        }
      }
      /**
      Hooks allow modifications during the request lifecycle.
      Hook functions may be async and are run serially.
      */
      get hooks() {
        return this._internals.hooks;
      }
      set hooks(value2) {
        assert.object(value2);
        for (const knownHookEvent in value2) {
          if (!(knownHookEvent in this._internals.hooks)) {
            throw new Error(`Unexpected hook event: ${knownHookEvent}`);
          }
          const typedKnownHookEvent = knownHookEvent;
          const hooks2 = value2[typedKnownHookEvent];
          assertAny2(`hooks.${knownHookEvent}`, [distribution_default.array, distribution_default.undefined], hooks2);
          if (hooks2) {
            for (const hook of hooks2) {
              assert.function(hook);
            }
          }
          if (this._merging) {
            if (hooks2) {
              this._internals.hooks[typedKnownHookEvent].push(...hooks2);
            }
          } else {
            if (!hooks2) {
              throw new Error(`Missing hook event: ${knownHookEvent}`);
            }
            this._internals.hooks[knownHookEvent] = [...hooks2];
          }
        }
      }
      /**
          Whether redirect responses should be followed automatically.
      
          Optionally, pass a function to dynamically decide based on the response object.
      
          Note that if a `303` is sent by the server in response to any request type (`POST`, `DELETE`, etc.), Got will automatically request the resource pointed to in the location header via `GET`.
          This is in accordance with [the spec](https://tools.ietf.org/html/rfc7231#section-6.4.4). You can optionally turn on this behavior also for other redirect codes - see `methodRewriting`.
      
          @default true
          */
      get followRedirect() {
        return this._internals.followRedirect;
      }
      set followRedirect(value2) {
        assertAny2("followRedirect", [distribution_default.boolean, distribution_default.function], value2);
        this._internals.followRedirect = value2;
      }
      get followRedirects() {
        throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");
      }
      set followRedirects(_value) {
        throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");
      }
      /**
          If exceeded, the request will be aborted and a `MaxRedirectsError` will be thrown.
      
          @default 10
          */
      get maxRedirects() {
        return this._internals.maxRedirects;
      }
      set maxRedirects(value2) {
        assert.number(value2);
        this._internals.maxRedirects = value2;
      }
      /**
          A cache adapter instance for storing cached response data.
      
          @default false
          */
      get cache() {
        return this._internals.cache;
      }
      set cache(value2) {
        assertAny2("cache", [distribution_default.object, distribution_default.string, distribution_default.boolean, distribution_default.undefined], value2);
        if (value2 === true) {
          this._internals.cache = globalCache;
        } else if (value2 === false) {
          this._internals.cache = void 0;
        } else {
          this._internals.cache = wrapQuickLruIfNeeded(value2);
        }
      }
      /**
          Determines if a `got.HTTPError` is thrown for unsuccessful responses.
      
          If this is disabled, requests that encounter an error status code will be resolved with the `response` instead of throwing.
          This may be useful if you are checking for resource availability and are expecting error responses.
      
          @default true
          */
      get throwHttpErrors() {
        return this._internals.throwHttpErrors;
      }
      set throwHttpErrors(value2) {
        assert.boolean(value2);
        this._internals.throwHttpErrors = value2;
      }
      get username() {
        const url3 = this._internals.url;
        const value2 = url3 ? url3.username : this._internals.username;
        return decodeURIComponent(value2);
      }
      set username(value2) {
        assert.string(value2);
        const url3 = this._internals.url;
        const fixedValue = encodeURIComponent(value2);
        if (url3) {
          url3.username = fixedValue;
        } else {
          this._internals.username = fixedValue;
        }
      }
      get password() {
        const url3 = this._internals.url;
        const value2 = url3 ? url3.password : this._internals.password;
        return decodeURIComponent(value2);
      }
      set password(value2) {
        assert.string(value2);
        const url3 = this._internals.url;
        const fixedValue = encodeURIComponent(value2);
        if (url3) {
          url3.password = fixedValue;
        } else {
          this._internals.password = fixedValue;
        }
      }
      /**
          If set to `true`, Got will additionally accept HTTP2 requests.
      
          It will choose either HTTP/1.1 or HTTP/2 depending on the ALPN protocol.
      
          __Note__: This option requires Node.js 15.10.0 or newer as HTTP/2 support on older Node.js versions is very buggy.
      
          __Note__: Overriding `options.request` will disable HTTP2 support.
      
          @default false
      
          @example
          ```
          import got from 'got';
      
          const {headers} = await got('https://nghttp2.org/httpbin/anything', {http2: true});
      
          console.log(headers.via);
          //=> '2 nghttpx'
          ```
          */
      get http2() {
        return this._internals.http2;
      }
      set http2(value2) {
        assert.boolean(value2);
        this._internals.http2 = value2;
      }
      /**
          Set this to `true` to allow sending body for the `GET` method.
          However, the [HTTP/2 specification](https://tools.ietf.org/html/rfc7540#section-8.1.3) says that `An HTTP GET request includes request header fields and no payload body`, therefore when using the HTTP/2 protocol this option will have no effect.
          This option is only meant to interact with non-compliant servers when you have no other choice.
      
          __Note__: The [RFC 7231](https://tools.ietf.org/html/rfc7231#section-4.3.1) doesn't specify any particular behavior for the GET method having a payload, therefore __it's considered an [anti-pattern](https://en.wikipedia.org/wiki/Anti-pattern)__.
      
          @default false
          */
      get allowGetBody() {
        return this._internals.allowGetBody;
      }
      set allowGetBody(value2) {
        assert.boolean(value2);
        this._internals.allowGetBody = value2;
      }
      /**
          Automatically copy headers from piped streams.
      
          When piping a request into a Got stream (e.g., `request.pipe(got.stream(url))`), this controls whether headers from the source stream are automatically merged into the Got request headers.
      
          Note: Piped headers overwrite any explicitly set headers with the same name. To override this, either set `copyPipedHeaders` to `false` and manually copy safe headers, or use a `beforeRequest` hook to force specific header values after piping.
      
          Useful for proxy scenarios, but you may want to disable this to filter out headers like `Host`, `Connection`, `Authorization`, etc.
      
          @default true
      
          @example
          ```
          import got from 'got';
          import {pipeline} from 'node:stream/promises';
      
          // Disable automatic header copying and manually copy only safe headers
          server.get('/proxy', async (request, response) => {
              const gotStream = got.stream('https://example.com', {
                  copyPipedHeaders: false,
                  headers: {
                      'user-agent': request.headers['user-agent'],
                      'accept': request.headers['accept'],
                      // Explicitly NOT copying host, connection, authorization, etc.
                  }
              });
      
              await pipeline(request, gotStream, response);
          });
          ```
      
          @example
          ```
          import got from 'got';
      
          // Override piped headers using beforeRequest hook
          const gotStream = got.stream('https://example.com', {
              hooks: {
                  beforeRequest: [
                      options => {
                          // Force specific header values after piping
                          options.headers.host = 'example.com';
                          delete options.headers.authorization;
                      }
                  ]
              }
          });
          ```
          */
      get copyPipedHeaders() {
        return this._internals.copyPipedHeaders;
      }
      set copyPipedHeaders(value2) {
        assert.boolean(value2);
        this._internals.copyPipedHeaders = value2;
      }
      /**
          Request headers.
      
          Existing headers will be overwritten. Headers set to `undefined` will be omitted.
      
          @default {}
          */
      get headers() {
        return this._internals.headers;
      }
      set headers(value2) {
        assertPlainObject2("headers", value2);
        if (this._merging) {
          Object.assign(this._internals.headers, lowercaseKeys(value2));
        } else {
          this._internals.headers = lowercaseKeys(value2);
        }
      }
      /**
          Specifies if the HTTP request method should be [rewritten as `GET`](https://tools.ietf.org/html/rfc7231#section-6.4) on redirects.
      
          As the [specification](https://tools.ietf.org/html/rfc7231#section-6.4) prefers to rewrite the HTTP method only on `303` responses, this is Got's default behavior.
          Setting `methodRewriting` to `true` will also rewrite `301` and `302` responses, as allowed by the spec. This is the behavior followed by `curl` and browsers.
      
          __Note__: Got never performs method rewriting on `307` and `308` responses, as this is [explicitly prohibited by the specification](https://www.rfc-editor.org/rfc/rfc7231#section-6.4.7).
      
          @default false
          */
      get methodRewriting() {
        return this._internals.methodRewriting;
      }
      set methodRewriting(value2) {
        assert.boolean(value2);
        this._internals.methodRewriting = value2;
      }
      /**
          Indicates which DNS record family to use.
      
          Values:
          - `undefined`: IPv4 (if present) or IPv6
          - `4`: Only IPv4
          - `6`: Only IPv6
      
          @default undefined
          */
      get dnsLookupIpVersion() {
        return this._internals.dnsLookupIpVersion;
      }
      set dnsLookupIpVersion(value2) {
        if (value2 !== void 0 && value2 !== 4 && value2 !== 6) {
          throw new TypeError(`Invalid DNS lookup IP version: ${value2}`);
        }
        this._internals.dnsLookupIpVersion = value2;
      }
      /**
          A function used to parse JSON responses.
      
          @example
          ```
          import got from 'got';
          import Bourne from '@hapi/bourne';
      
          const parsed = await got('https://example.com', {
              parseJson: text => Bourne.parse(text)
          }).json();
      
          console.log(parsed);
          ```
          */
      get parseJson() {
        return this._internals.parseJson;
      }
      set parseJson(value2) {
        assert.function(value2);
        this._internals.parseJson = value2;
      }
      /**
          A function used to stringify the body of JSON requests.
      
          @example
          ```
          import got from 'got';
      
          await got.post('https://example.com', {
              stringifyJson: object => JSON.stringify(object, (key, value) => {
                  if (key.startsWith('_')) {
                      return;
                  }
      
                  return value;
              }),
              json: {
                  some: 'payload',
                  _ignoreMe: 1234
              }
          });
          ```
      
          @example
          ```
          import got from 'got';
      
          await got.post('https://example.com', {
              stringifyJson: object => JSON.stringify(object, (key, value) => {
                  if (typeof value === 'number') {
                      return value.toString();
                  }
      
                  return value;
              }),
              json: {
                  some: 'payload',
                  number: 1
              }
          });
          ```
          */
      get stringifyJson() {
        return this._internals.stringifyJson;
      }
      set stringifyJson(value2) {
        assert.function(value2);
        this._internals.stringifyJson = value2;
      }
      /**
          An object representing `limit`, `calculateDelay`, `methods`, `statusCodes`, `maxRetryAfter` and `errorCodes` fields for maximum retry count, retry handler, allowed methods, allowed status codes, maximum [`Retry-After`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) time and allowed error codes.
      
          Delays between retries counts with function `1000 * Math.pow(2, retry) + Math.random() * 100`, where `retry` is attempt number (starts from 1).
      
          The `calculateDelay` property is a `function` that receives an object with `attemptCount`, `retryOptions`, `error` and `computedValue` properties for current retry count, the retry options, error and default computed value.
          The function must return a delay in milliseconds (or a Promise resolving with it) (`0` return value cancels retry).
      
          The `enforceRetryRules` property is a `boolean` that, when set to `true`, enforces the `limit`, `methods`, `statusCodes`, and `errorCodes` options before calling `calculateDelay`. Your `calculateDelay` function is only invoked when a retry is allowed based on these criteria. When `false` (default), `calculateDelay` receives the computed value but can override all retry logic.
      
          __Note:__ When `enforceRetryRules` is `false`, you must check `computedValue` in your `calculateDelay` function to respect the default retry logic. When `true`, the retry rules are enforced automatically.
      
          By default, it retries *only* on the specified methods, status codes, and on these network errors:
      
          - `ETIMEDOUT`: One of the [timeout](#timeout) limits were reached.
          - `ECONNRESET`: Connection was forcibly closed by a peer.
          - `EADDRINUSE`: Could not bind to any free port.
          - `ECONNREFUSED`: Connection was refused by the server.
          - `EPIPE`: The remote side of the stream being written has been closed.
          - `ENOTFOUND`: Couldn't resolve the hostname to an IP address.
          - `ENETUNREACH`: No internet connection.
          - `EAI_AGAIN`: DNS lookup timed out.
      
          __Note__: If `maxRetryAfter` is set to `undefined`, it will use `options.timeout`.
          __Note__: If [`Retry-After`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) header is greater than `maxRetryAfter`, it will cancel the request.
          */
      get retry() {
        return this._internals.retry;
      }
      set retry(value2) {
        assertPlainObject2("retry", value2);
        assertAny2("retry.calculateDelay", [distribution_default.function, distribution_default.undefined], value2.calculateDelay);
        assertAny2("retry.maxRetryAfter", [distribution_default.number, distribution_default.undefined], value2.maxRetryAfter);
        assertAny2("retry.limit", [distribution_default.number, distribution_default.undefined], value2.limit);
        assertAny2("retry.methods", [distribution_default.array, distribution_default.undefined], value2.methods);
        assertAny2("retry.statusCodes", [distribution_default.array, distribution_default.undefined], value2.statusCodes);
        assertAny2("retry.errorCodes", [distribution_default.array, distribution_default.undefined], value2.errorCodes);
        assertAny2("retry.noise", [distribution_default.number, distribution_default.undefined], value2.noise);
        assertAny2("retry.enforceRetryRules", [distribution_default.boolean, distribution_default.undefined], value2.enforceRetryRules);
        if (value2.noise && Math.abs(value2.noise) > 100) {
          throw new Error(`The maximum acceptable retry noise is +/- 100ms, got ${value2.noise}`);
        }
        for (const key in value2) {
          if (!(key in this._internals.retry)) {
            throw new Error(`Unexpected retry option: ${key}`);
          }
        }
        if (this._merging) {
          Object.assign(this._internals.retry, value2);
        } else {
          this._internals.retry = { ...value2 };
        }
        const { retry } = this._internals;
        retry.methods = [...new Set(retry.methods.map((method) => method.toUpperCase()))];
        retry.statusCodes = [...new Set(retry.statusCodes)];
        retry.errorCodes = [...new Set(retry.errorCodes)];
      }
      /**
          From `http.RequestOptions`.
      
          The IP address used to send the request from.
          */
      get localAddress() {
        return this._internals.localAddress;
      }
      set localAddress(value2) {
        assertAny2("localAddress", [distribution_default.string, distribution_default.undefined], value2);
        this._internals.localAddress = value2;
      }
      /**
          The HTTP method used to make the request.
      
          @default 'GET'
          */
      get method() {
        return this._internals.method;
      }
      set method(value2) {
        assert.string(value2);
        this._internals.method = value2.toUpperCase();
      }
      get createConnection() {
        return this._internals.createConnection;
      }
      set createConnection(value2) {
        assertAny2("createConnection", [distribution_default.function, distribution_default.undefined], value2);
        this._internals.createConnection = value2;
      }
      /**
          From `http-cache-semantics`
      
          @default {}
          */
      get cacheOptions() {
        return this._internals.cacheOptions;
      }
      set cacheOptions(value2) {
        assertPlainObject2("cacheOptions", value2);
        assertAny2("cacheOptions.shared", [distribution_default.boolean, distribution_default.undefined], value2.shared);
        assertAny2("cacheOptions.cacheHeuristic", [distribution_default.number, distribution_default.undefined], value2.cacheHeuristic);
        assertAny2("cacheOptions.immutableMinTimeToLive", [distribution_default.number, distribution_default.undefined], value2.immutableMinTimeToLive);
        assertAny2("cacheOptions.ignoreCargoCult", [distribution_default.boolean, distribution_default.undefined], value2.ignoreCargoCult);
        for (const key in value2) {
          if (!(key in this._internals.cacheOptions)) {
            throw new Error(`Cache option \`${key}\` does not exist`);
          }
        }
        if (this._merging) {
          Object.assign(this._internals.cacheOptions, value2);
        } else {
          this._internals.cacheOptions = { ...value2 };
        }
      }
      /**
      Options for the advanced HTTPS API.
      */
      get https() {
        return this._internals.https;
      }
      set https(value2) {
        assertPlainObject2("https", value2);
        assertAny2("https.rejectUnauthorized", [distribution_default.boolean, distribution_default.undefined], value2.rejectUnauthorized);
        assertAny2("https.checkServerIdentity", [distribution_default.function, distribution_default.undefined], value2.checkServerIdentity);
        assertAny2("https.serverName", [distribution_default.string, distribution_default.undefined], value2.serverName);
        assertAny2("https.certificateAuthority", [distribution_default.string, distribution_default.object, distribution_default.array, distribution_default.undefined], value2.certificateAuthority);
        assertAny2("https.key", [distribution_default.string, distribution_default.object, distribution_default.array, distribution_default.undefined], value2.key);
        assertAny2("https.certificate", [distribution_default.string, distribution_default.object, distribution_default.array, distribution_default.undefined], value2.certificate);
        assertAny2("https.passphrase", [distribution_default.string, distribution_default.undefined], value2.passphrase);
        assertAny2("https.pfx", [distribution_default.string, distribution_default.buffer, distribution_default.array, distribution_default.undefined], value2.pfx);
        assertAny2("https.alpnProtocols", [distribution_default.array, distribution_default.undefined], value2.alpnProtocols);
        assertAny2("https.ciphers", [distribution_default.string, distribution_default.undefined], value2.ciphers);
        assertAny2("https.dhparam", [distribution_default.string, distribution_default.buffer, distribution_default.undefined], value2.dhparam);
        assertAny2("https.signatureAlgorithms", [distribution_default.string, distribution_default.undefined], value2.signatureAlgorithms);
        assertAny2("https.minVersion", [distribution_default.string, distribution_default.undefined], value2.minVersion);
        assertAny2("https.maxVersion", [distribution_default.string, distribution_default.undefined], value2.maxVersion);
        assertAny2("https.honorCipherOrder", [distribution_default.boolean, distribution_default.undefined], value2.honorCipherOrder);
        assertAny2("https.tlsSessionLifetime", [distribution_default.number, distribution_default.undefined], value2.tlsSessionLifetime);
        assertAny2("https.ecdhCurve", [distribution_default.string, distribution_default.undefined], value2.ecdhCurve);
        assertAny2("https.certificateRevocationLists", [distribution_default.string, distribution_default.buffer, distribution_default.array, distribution_default.undefined], value2.certificateRevocationLists);
        assertAny2("https.secureOptions", [distribution_default.number, distribution_default.undefined], value2.secureOptions);
        for (const key in value2) {
          if (!(key in this._internals.https)) {
            throw new Error(`HTTPS option \`${key}\` does not exist`);
          }
        }
        if (this._merging) {
          Object.assign(this._internals.https, value2);
        } else {
          this._internals.https = { ...value2 };
        }
      }
      /**
          [Encoding](https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings) to be used on `setEncoding` of the response data.
      
          To get a [`Buffer`](https://nodejs.org/api/buffer.html), you need to set `responseType` to `buffer` instead.
          Don't set this option to `null`.
      
          __Note__: This doesn't affect streams! Instead, you need to do `got.stream(...).setEncoding(encoding)`.
      
          @default 'utf-8'
          */
      get encoding() {
        return this._internals.encoding;
      }
      set encoding(value2) {
        if (value2 === null) {
          throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");
        }
        assertAny2("encoding", [distribution_default.string, distribution_default.undefined], value2);
        this._internals.encoding = value2;
      }
      /**
          When set to `true` the promise will return the Response body instead of the Response object.
      
          @default false
          */
      get resolveBodyOnly() {
        return this._internals.resolveBodyOnly;
      }
      set resolveBodyOnly(value2) {
        assert.boolean(value2);
        this._internals.resolveBodyOnly = value2;
      }
      /**
          Returns a `Stream` instead of a `Promise`.
          This is equivalent to calling `got.stream(url, options?)`.
      
          @default false
          */
      get isStream() {
        return this._internals.isStream;
      }
      set isStream(value2) {
        assert.boolean(value2);
        this._internals.isStream = value2;
      }
      /**
          The parsing method.
      
          The promise also has `.text()`, `.json()` and `.buffer()` methods which return another Got promise for the parsed body.
      
          It's like setting the options to `{responseType: 'json', resolveBodyOnly: true}` but without affecting the main Got promise.
      
          __Note__: When using streams, this option is ignored.
      
          @example
          ```
          const responsePromise = got(url);
          const bufferPromise = responsePromise.buffer();
          const jsonPromise = responsePromise.json();
      
          const [response, buffer, json] = Promise.all([responsePromise, bufferPromise, jsonPromise]);
          // `response` is an instance of Got Response
          // `buffer` is an instance of Buffer
          // `json` is an object
          ```
      
          @example
          ```
          // This
          const body = await got(url).json();
      
          // is semantically the same as this
          const body = await got(url, {responseType: 'json', resolveBodyOnly: true});
          ```
          */
      get responseType() {
        return this._internals.responseType;
      }
      set responseType(value2) {
        if (value2 === void 0) {
          this._internals.responseType = "text";
          return;
        }
        if (value2 !== "text" && value2 !== "buffer" && value2 !== "json") {
          throw new Error(`Invalid \`responseType\` option: ${value2}`);
        }
        this._internals.responseType = value2;
      }
      get pagination() {
        return this._internals.pagination;
      }
      set pagination(value2) {
        assert.object(value2);
        if (this._merging) {
          Object.assign(this._internals.pagination, value2);
        } else {
          this._internals.pagination = value2;
        }
      }
      get auth() {
        throw new Error("Parameter `auth` is deprecated. Use `username` / `password` instead.");
      }
      set auth(_value) {
        throw new Error("Parameter `auth` is deprecated. Use `username` / `password` instead.");
      }
      get setHost() {
        return this._internals.setHost;
      }
      set setHost(value2) {
        assert.boolean(value2);
        this._internals.setHost = value2;
      }
      get maxHeaderSize() {
        return this._internals.maxHeaderSize;
      }
      set maxHeaderSize(value2) {
        assertAny2("maxHeaderSize", [distribution_default.number, distribution_default.undefined], value2);
        this._internals.maxHeaderSize = value2;
      }
      get enableUnixSockets() {
        return this._internals.enableUnixSockets;
      }
      set enableUnixSockets(value2) {
        assert.boolean(value2);
        this._internals.enableUnixSockets = value2;
      }
      /**
          Throw an error if the server response's `content-length` header value doesn't match the number of bytes received.
      
          This is useful for detecting truncated responses and follows RFC 9112 requirements for message completeness.
      
          __Note__: Responses without a `content-length` header are not validated.
          __Note__: When enabled and validation fails, a `ReadError` with code `ERR_HTTP_CONTENT_LENGTH_MISMATCH` will be thrown.
      
          @default false
          */
      get strictContentLength() {
        return this._internals.strictContentLength;
      }
      set strictContentLength(value2) {
        assert.boolean(value2);
        this._internals.strictContentLength = value2;
      }
      // eslint-disable-next-line @typescript-eslint/naming-convention
      toJSON() {
        return { ...this._internals };
      }
      [Symbol.for("nodejs.util.inspect.custom")](_depth, options) {
        return inspect(this._internals, options);
      }
      createNativeRequestOptions() {
        const internals = this._internals;
        const url3 = internals.url;
        let agent;
        if (url3.protocol === "https:") {
          if (internals.http2) {
            agent = {
              ...internals.agent,
              http2: internals.agent.http2 ?? import_http2_wrapper.default.globalAgent
            };
          } else {
            agent = internals.agent.https;
          }
        } else {
          agent = internals.agent.http;
        }
        const { https: https5 } = internals;
        let { pfx } = https5;
        if (distribution_default.array(pfx) && distribution_default.plainObject(pfx[0])) {
          pfx = pfx.map((object) => ({
            buf: object.buffer,
            passphrase: object.passphrase
          }));
        }
        return {
          ...internals.cacheOptions,
          ...this._unixOptions,
          // HTTPS options
          // eslint-disable-next-line @typescript-eslint/naming-convention
          ALPNProtocols: https5.alpnProtocols,
          ca: https5.certificateAuthority,
          cert: https5.certificate,
          key: https5.key,
          passphrase: https5.passphrase,
          pfx: https5.pfx,
          rejectUnauthorized: https5.rejectUnauthorized,
          checkServerIdentity: https5.checkServerIdentity ?? checkServerIdentity,
          servername: https5.serverName,
          ciphers: https5.ciphers,
          honorCipherOrder: https5.honorCipherOrder,
          minVersion: https5.minVersion,
          maxVersion: https5.maxVersion,
          sigalgs: https5.signatureAlgorithms,
          sessionTimeout: https5.tlsSessionLifetime,
          dhparam: https5.dhparam,
          ecdhCurve: https5.ecdhCurve,
          crl: https5.certificateRevocationLists,
          secureOptions: https5.secureOptions,
          // HTTP options
          lookup: internals.dnsLookup ?? internals.dnsCache?.lookup,
          family: internals.dnsLookupIpVersion,
          agent,
          setHost: internals.setHost,
          method: internals.method,
          maxHeaderSize: internals.maxHeaderSize,
          localAddress: internals.localAddress,
          headers: internals.headers,
          createConnection: internals.createConnection,
          timeout: internals.http2 ? getHttp2TimeoutOption(internals) : void 0,
          // HTTP/2 options
          h2session: internals.h2session
        };
      }
      getRequestFunction() {
        const url3 = this._internals.url;
        const { request } = this._internals;
        if (!request && url3) {
          return this.getFallbackRequestFunction();
        }
        return request;
      }
      getFallbackRequestFunction() {
        const url3 = this._internals.url;
        if (!url3) {
          return;
        }
        if (url3.protocol === "https:") {
          if (this._internals.http2) {
            if (major < 15 || major === 15 && minor < 10) {
              const error = new Error("To use the `http2` option, install Node.js 15.10.0 or above");
              error.code = "EUNSUPPORTED";
              throw error;
            }
            return import_http2_wrapper.default.auto;
          }
          return https.request;
        }
        return http.request;
      }
      freeze() {
        const options = this._internals;
        Object.freeze(options);
        Object.freeze(options.hooks);
        Object.freeze(options.hooks.afterResponse);
        Object.freeze(options.hooks.beforeError);
        Object.freeze(options.hooks.beforeRedirect);
        Object.freeze(options.hooks.beforeRequest);
        Object.freeze(options.hooks.beforeRetry);
        Object.freeze(options.hooks.init);
        Object.freeze(options.https);
        Object.freeze(options.cacheOptions);
        Object.freeze(options.agent);
        Object.freeze(options.headers);
        Object.freeze(options.timeout);
        Object.freeze(options.retry);
        Object.freeze(options.retry.errorCodes);
        Object.freeze(options.retry.methods);
        Object.freeze(options.retry.statusCodes);
      }
    };
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/response.js
var isResponseOk, ParseError, parseBody;
var init_response = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/response.js"() {
    init_errors();
    isResponseOk = (response) => {
      const { statusCode } = response;
      const { followRedirect } = response.request.options;
      const shouldFollow = typeof followRedirect === "function" ? followRedirect(response) : followRedirect;
      const limitStatusCode = shouldFollow ? 299 : 399;
      return statusCode >= 200 && statusCode <= limitStatusCode || statusCode === 304;
    };
    ParseError = class extends RequestError {
      name = "ParseError";
      code = "ERR_BODY_PARSE_FAILURE";
      constructor(error, response) {
        const { options } = response.request;
        super(`${error.message} in "${options.url.toString()}"`, error, response.request);
      }
    };
    parseBody = (response, responseType, parseJson, encoding) => {
      const { rawBody } = response;
      try {
        if (responseType === "text") {
          return rawBody.toString(encoding);
        }
        if (responseType === "json") {
          return rawBody.length === 0 ? "" : parseJson(rawBody.toString(encoding));
        }
        if (responseType === "buffer") {
          return rawBody;
        }
      } catch (error) {
        throw new ParseError(error, response);
      }
      throw new ParseError({
        message: `Unknown body type '${responseType}'`,
        name: "Error"
      }, response);
    };
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/is-client-request.js
function isClientRequest(clientRequest) {
  return clientRequest.writable && !clientRequest.writableEnded;
}
var is_client_request_default;
var init_is_client_request = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/is-client-request.js"() {
    is_client_request_default = isClientRequest;
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/is-unix-socket-url.js
function isUnixSocketURL(url3) {
  return url3.protocol === "unix:" || url3.hostname === "unix";
}
function getUnixSocketPath(url3) {
  if (!isUnixSocketURL(url3)) {
    return void 0;
  }
  return /(?<socketPath>.+?):(?<path>.+)/.exec(`${url3.pathname}${url3.search}`)?.groups?.socketPath;
}
var init_is_unix_socket_url = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/is-unix-socket-url.js"() {
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/diagnostics-channel.js
import { randomUUID } from "node:crypto";
import diagnosticsChannel from "node:diagnostics_channel";
function generateRequestId() {
  return randomUUID();
}
function publishRequestCreate(message) {
  if (channels.requestCreate.hasSubscribers) {
    channels.requestCreate.publish(message);
  }
}
function publishRequestStart(message) {
  if (channels.requestStart.hasSubscribers) {
    channels.requestStart.publish(message);
  }
}
function publishResponseStart(message) {
  if (channels.responseStart.hasSubscribers) {
    channels.responseStart.publish(message);
  }
}
function publishResponseEnd(message) {
  if (channels.responseEnd.hasSubscribers) {
    channels.responseEnd.publish(message);
  }
}
function publishRetry(message) {
  if (channels.retry.hasSubscribers) {
    channels.retry.publish(message);
  }
}
function publishError(message) {
  if (channels.error.hasSubscribers) {
    channels.error.publish(message);
  }
}
function publishRedirect(message) {
  if (channels.redirect.hasSubscribers) {
    channels.redirect.publish(message);
  }
}
var channels;
var init_diagnostics_channel = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/diagnostics-channel.js"() {
    channels = {
      requestCreate: diagnosticsChannel.channel("got:request:create"),
      requestStart: diagnosticsChannel.channel("got:request:start"),
      responseStart: diagnosticsChannel.channel("got:response:start"),
      responseEnd: diagnosticsChannel.channel("got:response:end"),
      retry: diagnosticsChannel.channel("got:request:retry"),
      error: diagnosticsChannel.channel("got:request:error"),
      redirect: diagnosticsChannel.channel("got:response:redirect")
    };
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/index.js
import process3 from "node:process";
import { Buffer as Buffer3 } from "node:buffer";
import { Duplex } from "node:stream";
import http2, { ServerResponse } from "node:http";
var supportsBrotli, supportsZstd2, methodsWithoutBody, cacheableStore, redirectCodes, errorsProcessedByHooks, proxiedRequestEvents, noop3, Request;
var init_core = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/index.js"() {
    init_byte_counter();
    init_dist3();
    init_decompress_response();
    init_distribution();
    init_lib();
    init_timer();
    init_get_body_size();
    init_is_form_data();
    init_proxy_events();
    init_timed_out();
    init_url_to_options();
    init_weakable_map();
    init_calculate_retry_delay();
    init_options();
    init_response();
    init_is_client_request();
    init_is_unix_socket_url();
    init_errors();
    init_diagnostics_channel();
    supportsBrotli = distribution_default.string(process3.versions.brotli);
    supportsZstd2 = distribution_default.string(process3.versions.zstd);
    methodsWithoutBody = /* @__PURE__ */ new Set(["GET", "HEAD"]);
    cacheableStore = new WeakableMap();
    redirectCodes = /* @__PURE__ */ new Set([300, 301, 302, 303, 304, 307, 308]);
    errorsProcessedByHooks = /* @__PURE__ */ new WeakSet();
    proxiedRequestEvents = [
      "socket",
      "connect",
      "continue",
      "information",
      "upgrade"
    ];
    noop3 = () => {
    };
    Request = class _Request extends Duplex {
      // @ts-expect-error - Ignoring for now.
      ["constructor"];
      _noPipe;
      // @ts-expect-error https://github.com/microsoft/TypeScript/issues/9568
      options;
      response;
      requestUrl;
      redirectUrls = [];
      retryCount = 0;
      _stopReading = false;
      _stopRetry = noop3;
      _downloadedSize = 0;
      _uploadedSize = 0;
      _pipedServerResponses = /* @__PURE__ */ new Set();
      _request;
      _responseSize;
      _bodySize;
      _unproxyEvents = noop3;
      _isFromCache;
      _triggerRead = false;
      _jobs = [];
      _cancelTimeouts = noop3;
      _removeListeners = noop3;
      _nativeResponse;
      _flushed = false;
      _aborted = false;
      _expectedContentLength;
      _compressedBytesCount;
      _requestId = generateRequestId();
      // We need this because `this._request` if `undefined` when using cache
      _requestInitialized = false;
      constructor(url3, options, defaults4) {
        super({
          // Don't destroy immediately, as the error may be emitted on unsuccessful retry
          autoDestroy: false,
          // It needs to be zero because we're just proxying the data to another stream
          highWaterMark: 0
        });
        this.on("pipe", (source) => {
          if (this.options.copyPipedHeaders && source?.headers) {
            Object.assign(this.options.headers, source.headers);
          }
        });
        this.on("newListener", (event) => {
          if (event === "retry" && this.listenerCount("retry") > 0) {
            throw new Error("A retry listener has been attached already.");
          }
        });
        try {
          this.options = new Options(url3, options, defaults4);
          if (!this.options.url) {
            if (this.options.prefixUrl === "") {
              throw new TypeError("Missing `url` property");
            }
            this.options.url = "";
          }
          this.requestUrl = this.options.url;
          publishRequestCreate({
            requestId: this._requestId,
            url: this.options.url?.toString() ?? "",
            method: this.options.method
          });
        } catch (error) {
          const { options: options2 } = error;
          if (options2) {
            this.options = options2;
          }
          this.flush = async () => {
            this.flush = async () => {
            };
            process3.nextTick(() => {
              if (this.options) {
                this._beforeError(error);
              } else {
                const requestError = error instanceof RequestError ? error : new RequestError(error.message, error, this);
                this.destroy(requestError);
              }
            });
          };
          return;
        }
        const { body } = this.options;
        if (distribution_default.nodeStream(body)) {
          body.once("error", (error) => {
            if (this._flushed) {
              this._beforeError(new UploadError(error, this));
            } else {
              this.flush = async () => {
                this.flush = async () => {
                };
                this._beforeError(new UploadError(error, this));
              };
            }
          });
        }
        if (this.options.signal) {
          const abort = () => {
            if (this.options.signal?.reason?.name === "TimeoutError") {
              this.destroy(new TimeoutError(this.options.signal.reason, this.timings, this));
            } else {
              this.destroy(new AbortError(this));
            }
          };
          if (this.options.signal.aborted) {
            abort();
          } else {
            this.options.signal.addEventListener("abort", abort);
            this._removeListeners = () => {
              this.options.signal?.removeEventListener("abort", abort);
            };
          }
        }
      }
      async flush() {
        if (this._flushed) {
          return;
        }
        this._flushed = true;
        try {
          await this._finalizeBody();
          if (this.destroyed) {
            return;
          }
          await this._makeRequest();
          if (this.destroyed) {
            this._request?.destroy();
            return;
          }
          for (const job of this._jobs) {
            job();
          }
          this._jobs.length = 0;
          this._requestInitialized = true;
        } catch (error) {
          this._beforeError(error);
        }
      }
      _beforeError(error) {
        if (this._stopReading) {
          return;
        }
        const { response, options } = this;
        const attemptCount = this.retryCount + (error.name === "RetryError" ? 0 : 1);
        this._stopReading = true;
        if (!(error instanceof RequestError)) {
          error = new RequestError(error.message, error, this);
        }
        const typedError = error;
        void (async () => {
          if (response?.readable && !response.rawBody && !this._request?.socket?.destroyed) {
            response.setEncoding(this.readableEncoding);
            const success = await this._setRawBody(response);
            if (success) {
              response.body = response.rawBody.toString();
            }
          }
          if (this.listenerCount("retry") !== 0) {
            let backoff;
            try {
              let retryAfter;
              if (response && "retry-after" in response.headers) {
                retryAfter = Number(response.headers["retry-after"]);
                if (Number.isNaN(retryAfter)) {
                  retryAfter = Date.parse(response.headers["retry-after"]) - Date.now();
                  if (retryAfter <= 0) {
                    retryAfter = 1;
                  }
                } else {
                  retryAfter *= 1e3;
                }
              }
              const retryOptions = options.retry;
              const computedValue = calculate_retry_delay_default({
                attemptCount,
                retryOptions,
                error: typedError,
                retryAfter,
                computedValue: retryOptions.maxRetryAfter ?? options.timeout.request ?? Number.POSITIVE_INFINITY
              });
              if (retryOptions.enforceRetryRules && computedValue === 0) {
                backoff = 0;
              } else {
                backoff = await retryOptions.calculateDelay({
                  attemptCount,
                  retryOptions,
                  error: typedError,
                  retryAfter,
                  computedValue
                });
              }
            } catch (error_) {
              void this._error(new RequestError(error_.message, error_, this));
              return;
            }
            if (backoff) {
              await new Promise((resolve4) => {
                const timeout = setTimeout(resolve4, backoff);
                this._stopRetry = () => {
                  clearTimeout(timeout);
                  resolve4();
                };
              });
              if (this.destroyed) {
                return;
              }
              const bodyBeforeHooks = this.options.body;
              try {
                for (const hook of this.options.hooks.beforeRetry) {
                  await hook(typedError, this.retryCount + 1);
                }
              } catch (error_) {
                void this._error(new RequestError(error_.message, error_, this));
                return;
              }
              if (this.destroyed) {
                return;
              }
              const bodyAfterHooks = this.options.body;
              const bodyWasReassigned = bodyBeforeHooks !== bodyAfterHooks;
              if (bodyWasReassigned) {
                const oldBody = bodyBeforeHooks;
                this.options.body = void 0;
                this.destroy();
                if (distribution_default.nodeStream(oldBody) && oldBody !== bodyAfterHooks) {
                  oldBody.destroy();
                }
                if (distribution_default.nodeStream(bodyAfterHooks) && (bodyAfterHooks.readableEnded || bodyAfterHooks.destroyed)) {
                  throw new TypeError("The reassigned stream body must be readable. Ensure you provide a fresh, readable stream in the beforeRetry hook.");
                }
                this.options._internals.body = bodyAfterHooks;
              } else {
                this.destroy();
              }
              publishRetry({
                requestId: this._requestId,
                retryCount: this.retryCount + 1,
                error: typedError,
                delay: backoff
              });
              this.emit("retry", this.retryCount + 1, error, (updatedOptions) => {
                const request = new _Request(options.url, updatedOptions, options);
                request.retryCount = this.retryCount + 1;
                process3.nextTick(() => {
                  void request.flush();
                });
                return request;
              });
              return;
            }
          }
          void this._error(typedError);
        })();
      }
      _read() {
        this._triggerRead = true;
        const { response } = this;
        if (response && !this._stopReading) {
          if (response.readableLength) {
            this._triggerRead = false;
          }
          let data2;
          while ((data2 = response.read()) !== null) {
            this._downloadedSize += data2.length;
            const progress = this.downloadProgress;
            if (progress.percent < 1) {
              this.emit("downloadProgress", progress);
            }
            this.push(data2);
          }
        }
      }
      _write(chunk3, encoding, callback) {
        const write2 = () => {
          this._writeRequest(chunk3, encoding, callback);
        };
        if (this._requestInitialized) {
          write2();
        } else {
          this._jobs.push(write2);
        }
      }
      _final(callback) {
        const endRequest = () => {
          if (!this._request || this._request.destroyed) {
            callback();
            return;
          }
          this._request.end((error) => {
            if (this._request?._writableState?.errored) {
              return;
            }
            if (!error) {
              this._bodySize = this._uploadedSize;
              this.emit("uploadProgress", this.uploadProgress);
              this._request?.emit("upload-complete");
            }
            callback(error);
          });
        };
        if (this._requestInitialized) {
          endRequest();
        } else {
          this._jobs.push(endRequest);
        }
      }
      _destroy(error, callback) {
        this._stopReading = true;
        this.flush = async () => {
        };
        this._stopRetry();
        this._cancelTimeouts();
        this._removeListeners();
        if (this.options) {
          const { body } = this.options;
          if (distribution_default.nodeStream(body)) {
            body.destroy();
          }
        }
        if (this._request) {
          this._request.destroy();
        }
        const timings = this._request?.timings;
        if (timings && distribution_default.undefined(timings.end) && !distribution_default.undefined(timings.response) && distribution_default.undefined(timings.error) && distribution_default.undefined(timings.abort)) {
          timings.end = Date.now();
          if (distribution_default.undefined(timings.phases.total)) {
            timings.phases.download = timings.end - timings.response;
            timings.phases.total = timings.end - timings.start;
          }
        }
        if (error !== null && !distribution_default.undefined(error)) {
          const processedByHooks = error instanceof Error && errorsProcessedByHooks.has(error);
          if (!processedByHooks && !(error instanceof RequestError)) {
            error = error instanceof Error ? new RequestError(error.message, error, this) : new RequestError(String(error), {}, this);
          }
        }
        callback(error);
      }
      pipe(destination, options) {
        if (destination instanceof ServerResponse) {
          this._pipedServerResponses.add(destination);
        }
        return super.pipe(destination, options);
      }
      unpipe(destination) {
        if (destination instanceof ServerResponse) {
          this._pipedServerResponses.delete(destination);
        }
        super.unpipe(destination);
        return this;
      }
      _checkContentLengthMismatch() {
        if (this.options.strictContentLength && this._expectedContentLength !== void 0) {
          const actualSize = this._compressedBytesCount ?? this._downloadedSize;
          if (actualSize !== this._expectedContentLength) {
            this._beforeError(new ReadError({
              message: `Content-Length mismatch: expected ${this._expectedContentLength} bytes, received ${actualSize} bytes`,
              name: "Error",
              code: "ERR_HTTP_CONTENT_LENGTH_MISMATCH"
            }, this));
            return true;
          }
        }
        return false;
      }
      async _finalizeBody() {
        const { options } = this;
        const { headers } = options;
        const isForm = !distribution_default.undefined(options.form);
        const isJSON = !distribution_default.undefined(options.json);
        const isBody = !distribution_default.undefined(options.body);
        const cannotHaveBody = methodsWithoutBody.has(options.method) && !(options.method === "GET" && options.allowGetBody);
        if (isForm || isJSON || isBody) {
          if (cannotHaveBody) {
            throw new TypeError(`The \`${options.method}\` method cannot be used with a body`);
          }
          const noContentType = !distribution_default.string(headers["content-type"]);
          if (isBody) {
            if (isFormData2(options.body)) {
              const encoder = new FormDataEncoder(options.body);
              if (noContentType) {
                headers["content-type"] = encoder.headers["Content-Type"];
              }
              if ("Content-Length" in encoder.headers) {
                headers["content-length"] = encoder.headers["Content-Length"];
              }
              options.body = encoder.encode();
            }
            if (isFormData3(options.body) && noContentType) {
              headers["content-type"] = `multipart/form-data; boundary=${options.body.getBoundary()}`;
            }
          } else if (isForm) {
            if (noContentType) {
              headers["content-type"] = "application/x-www-form-urlencoded";
            }
            const { form } = options;
            options.form = void 0;
            options.body = new URLSearchParams(form).toString();
          } else {
            if (noContentType) {
              headers["content-type"] = "application/json";
            }
            const { json } = options;
            options.json = void 0;
            options.body = options.stringifyJson(json);
          }
          const uploadBodySize = await getBodySize(options.body, options.headers);
          if (distribution_default.undefined(headers["content-length"]) && distribution_default.undefined(headers["transfer-encoding"]) && !cannotHaveBody && !distribution_default.undefined(uploadBodySize)) {
            headers["content-length"] = String(uploadBodySize);
          }
        }
        if (options.responseType === "json" && !("accept" in options.headers)) {
          options.headers.accept = "application/json";
        }
        this._bodySize = Number(headers["content-length"]) || void 0;
      }
      async _onResponseBase(response) {
        if (this.isAborted) {
          return;
        }
        const { options } = this;
        const { url: url3 } = options;
        this._nativeResponse = response;
        const statusCode = response.statusCode;
        const { method } = options;
        const hasNoBody = method === "HEAD" || statusCode >= 100 && statusCode < 200 || statusCode === 204 || statusCode === 205 || statusCode === 304;
        if (options.decompress && !hasNoBody) {
          if (options.strictContentLength) {
            this._compressedBytesCount = 0;
            this._nativeResponse.on("data", (chunk3) => {
              this._compressedBytesCount += byteLength(chunk3);
            });
          }
          response = decompressResponse(response);
        }
        const typedResponse = response;
        typedResponse.statusMessage = typedResponse.statusMessage || http2.STATUS_CODES[statusCode];
        typedResponse.url = options.url.toString();
        typedResponse.requestUrl = this.requestUrl;
        typedResponse.redirectUrls = this.redirectUrls;
        typedResponse.request = this;
        typedResponse.isFromCache = this._nativeResponse.fromCache ?? false;
        typedResponse.ip = this.ip;
        typedResponse.retryCount = this.retryCount;
        typedResponse.ok = isResponseOk(typedResponse);
        this._isFromCache = typedResponse.isFromCache;
        this._responseSize = Number(response.headers["content-length"]) || void 0;
        this.response = typedResponse;
        publishResponseStart({
          requestId: this._requestId,
          url: typedResponse.url,
          statusCode,
          headers: response.headers,
          isFromCache: typedResponse.isFromCache
        });
        response.once("error", (error) => {
          this._aborted = true;
          response.destroy();
          this._beforeError(new ReadError(error, this));
        });
        response.once("aborted", () => {
          this._aborted = true;
          if (!this._checkContentLengthMismatch()) {
            this._beforeError(new ReadError({
              name: "Error",
              message: "The server aborted pending request",
              code: "ECONNRESET"
            }, this));
          }
        });
        const rawCookies = response.headers["set-cookie"];
        if (distribution_default.object(options.cookieJar) && rawCookies) {
          let promises = rawCookies.map(async (rawCookie) => options.cookieJar.setCookie(rawCookie, url3.toString()));
          if (options.ignoreInvalidCookies) {
            promises = promises.map(async (promise) => {
              try {
                await promise;
              } catch {
              }
            });
          }
          try {
            await Promise.all(promises);
          } catch (error) {
            this._beforeError(error);
            return;
          }
        }
        if (this.isAborted) {
          return;
        }
        if (response.headers.location && redirectCodes.has(statusCode)) {
          const shouldFollow = typeof options.followRedirect === "function" ? options.followRedirect(typedResponse) : options.followRedirect;
          if (shouldFollow) {
            response.resume();
            this._cancelTimeouts();
            this._unproxyEvents();
            if (this.redirectUrls.length >= options.maxRedirects) {
              this._beforeError(new MaxRedirectsError(this));
              return;
            }
            this._request = void 0;
            this._downloadedSize = 0;
            const updatedOptions = new Options(void 0, void 0, this.options);
            const serverRequestedGet = statusCode === 303 && updatedOptions.method !== "GET" && updatedOptions.method !== "HEAD";
            const canRewrite = statusCode !== 307 && statusCode !== 308;
            const userRequestedGet = updatedOptions.methodRewriting && canRewrite;
            if (serverRequestedGet || userRequestedGet) {
              updatedOptions.method = "GET";
              updatedOptions.body = void 0;
              updatedOptions.json = void 0;
              updatedOptions.form = void 0;
              delete updatedOptions.headers["content-length"];
            }
            try {
              const redirectBuffer = Buffer3.from(response.headers.location, "binary").toString();
              const redirectUrl = new URL(redirectBuffer, url3);
              if (!isUnixSocketURL(url3) && isUnixSocketURL(redirectUrl)) {
                this._beforeError(new RequestError("Cannot redirect to UNIX socket", {}, this));
                return;
              }
              const isDifferentOrigin = redirectUrl.hostname !== url3.hostname || redirectUrl.port !== url3.port || getUnixSocketPath(url3) !== getUnixSocketPath(redirectUrl);
              if (isDifferentOrigin) {
                if ("host" in updatedOptions.headers) {
                  delete updatedOptions.headers.host;
                }
                if ("cookie" in updatedOptions.headers) {
                  delete updatedOptions.headers.cookie;
                }
                if ("authorization" in updatedOptions.headers) {
                  delete updatedOptions.headers.authorization;
                }
                if (updatedOptions.username || updatedOptions.password) {
                  updatedOptions.username = "";
                  updatedOptions.password = "";
                }
              } else {
                redirectUrl.username = updatedOptions.username;
                redirectUrl.password = updatedOptions.password;
              }
              this.redirectUrls.push(redirectUrl);
              updatedOptions.url = redirectUrl;
              for (const hook of updatedOptions.hooks.beforeRedirect) {
                await hook(updatedOptions, typedResponse);
              }
              publishRedirect({
                requestId: this._requestId,
                fromUrl: url3.toString(),
                toUrl: redirectUrl.toString(),
                statusCode
              });
              this.emit("redirect", updatedOptions, typedResponse);
              this.options = updatedOptions;
              await this._makeRequest();
            } catch (error) {
              this._beforeError(error);
              return;
            }
            return;
          }
        }
        if (options.isStream && options.throwHttpErrors && !isResponseOk(typedResponse)) {
          this._beforeError(new HTTPError(typedResponse));
          return;
        }
        const wasDecompressed = response !== this._nativeResponse;
        if (!hasNoBody && (!wasDecompressed || options.strictContentLength)) {
          const contentLengthHeader = this._nativeResponse.headers["content-length"];
          if (contentLengthHeader !== void 0) {
            const expectedLength = Number(contentLengthHeader);
            if (!Number.isNaN(expectedLength) && expectedLength >= 0) {
              this._expectedContentLength = expectedLength;
            }
          }
        }
        response.once("end", () => {
          if (this._checkContentLengthMismatch()) {
            return;
          }
          this._responseSize = this._downloadedSize;
          this.emit("downloadProgress", this.downloadProgress);
          publishResponseEnd({
            requestId: this._requestId,
            url: typedResponse.url,
            statusCode,
            bodySize: this._downloadedSize,
            timings: this.timings
          });
          this.push(null);
        });
        this.emit("downloadProgress", this.downloadProgress);
        response.on("readable", () => {
          if (this._triggerRead) {
            this._read();
          }
        });
        this.on("resume", () => {
          response.resume();
        });
        this.on("pause", () => {
          response.pause();
        });
        if (this._noPipe) {
          const success = await this._setRawBody();
          if (success) {
            this.emit("response", response);
          }
          return;
        }
        this.emit("response", response);
        for (const destination of this._pipedServerResponses) {
          if (destination.headersSent) {
            continue;
          }
          const wasDecompressed2 = response !== this._nativeResponse;
          for (const key in response.headers) {
            if (Object.hasOwn(response.headers, key)) {
              const value2 = response.headers[key];
              if (wasDecompressed2 && (key === "content-encoding" || key === "content-length")) {
                continue;
              }
              if (value2 !== void 0) {
                destination.setHeader(key, value2);
              }
            }
          }
          destination.statusCode = statusCode;
        }
      }
      async _setRawBody(from = this) {
        if (from.readableEnded) {
          return false;
        }
        try {
          const fromArray = await from.toArray();
          const rawBody = isBuffer(fromArray.at(0)) ? Buffer3.concat(fromArray) : Buffer3.from(fromArray.join(""));
          if (!this.isAborted) {
            this.response.rawBody = rawBody;
            return true;
          }
        } catch {
        }
        return false;
      }
      async _onResponse(response) {
        try {
          await this._onResponseBase(response);
        } catch (error) {
          this._beforeError(error);
        }
      }
      _onRequest(request) {
        const { options } = this;
        const { timeout, url: url3 } = options;
        publishRequestStart({
          requestId: this._requestId,
          url: url3?.toString() ?? "",
          method: options.method,
          headers: options.headers
        });
        timer_default(request);
        this._cancelTimeouts = timedOut(request, timeout, url3);
        if (this.options.http2) {
          request.removeAllListeners("timeout");
          request.once("socket", (socket) => {
            socket.removeAllListeners("timeout");
          });
        }
        const responseEventName = options.cache ? "cacheableResponse" : "response";
        request.once(responseEventName, (response) => {
          void this._onResponse(response);
        });
        request.once("error", (error) => {
          this._aborted = true;
          request.destroy();
          error = error instanceof TimeoutError2 ? new TimeoutError(error, this.timings, this) : new RequestError(error.message, error, this);
          this._beforeError(error);
        });
        this._unproxyEvents = proxyEvents(request, this, proxiedRequestEvents);
        this._request = request;
        this.emit("uploadProgress", this.uploadProgress);
        this._sendBody();
        this.emit("request", request);
      }
      async _asyncWrite(chunk3) {
        return new Promise((resolve4, reject) => {
          super.write(chunk3, (error) => {
            if (error) {
              reject(error);
              return;
            }
            resolve4();
          });
        });
      }
      _sendBody() {
        const { body } = this.options;
        const currentRequest = this.redirectUrls.length === 0 ? this : this._request ?? this;
        if (distribution_default.nodeStream(body)) {
          body.pipe(currentRequest);
        } else if (distribution_default.buffer(body)) {
          this._writeRequest(body, void 0, () => {
          });
          currentRequest.end();
        } else if (distribution_default.typedArray(body)) {
          const typedArray = body;
          const uint8View = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);
          this._writeRequest(uint8View, void 0, () => {
          });
          currentRequest.end();
        } else if (distribution_default.asyncIterable(body) || distribution_default.iterable(body) && !distribution_default.string(body) && !isBuffer(body)) {
          (async () => {
            try {
              for await (const chunk3 of body) {
                await this._asyncWrite(chunk3);
              }
              super.end();
            } catch (error) {
              this._beforeError(error);
            }
          })();
        } else if (distribution_default.undefined(body)) {
          const cannotHaveBody = methodsWithoutBody.has(this.options.method) && !(this.options.method === "GET" && this.options.allowGetBody);
          if ((this._noPipe ?? false) || cannotHaveBody || currentRequest !== this) {
            currentRequest.end();
          }
        } else {
          this._writeRequest(body, void 0, () => {
          });
          currentRequest.end();
        }
      }
      _prepareCache(cache2) {
        if (cacheableStore.has(cache2)) {
          return;
        }
        const cacheableRequest = new dist_default(((requestOptions, handler) => {
          const wrappedHandler = handler ? (response) => {
            const { beforeCacheHooks, gotRequest } = requestOptions;
            if (!beforeCacheHooks || beforeCacheHooks.length === 0) {
              handler(response);
              return;
            }
            try {
              for (const hook of beforeCacheHooks) {
                const result2 = hook(response);
                if (result2 === false) {
                  response.headers["cache-control"] = "no-cache, no-store, must-revalidate";
                  response.headers.pragma = "no-cache";
                  response.headers.expires = "0";
                  handler(response);
                  return;
                }
                if (distribution_default.promise(result2)) {
                  throw new TypeError("beforeCache hooks must be synchronous. The hook returned a Promise, but this hook must return synchronously. If you need async logic, use beforeRequest hook instead.");
                }
                if (result2 !== void 0) {
                  throw new TypeError("beforeCache hook must return false or undefined. To modify the response, mutate it directly.");
                }
              }
            } catch (error) {
              if (gotRequest) {
                gotRequest._beforeError(error instanceof RequestError ? error : new RequestError(error.message, error, gotRequest));
                return;
              }
              console.error("Got: beforeCache hook error (request context unavailable):", error);
              handler(response);
              return;
            }
            handler(response);
          } : handler;
          const result = requestOptions._request(requestOptions, wrappedHandler);
          if (distribution_default.promise(result)) {
            result.once = (event, handler2) => {
              if (event === "error") {
                (async () => {
                  try {
                    await result;
                  } catch (error) {
                    handler2(error);
                  }
                })();
              } else if (event === "abort" || event === "destroy") {
                (async () => {
                  try {
                    const request = await result;
                    request.once(event, handler2);
                  } catch {
                  }
                })();
              } else {
                throw new Error(`Unknown HTTP2 promise event: ${event}`);
              }
              return result;
            };
          }
          return result;
        }), cache2);
        cacheableStore.set(cache2, cacheableRequest.request());
      }
      async _createCacheableRequest(url3, options) {
        return new Promise((resolve4, reject) => {
          Object.assign(options, urlToOptions(url3));
          let request;
          const cacheRequest = cacheableStore.get(options.cache)(options, async (response) => {
            response._readableState.autoDestroy = false;
            if (request) {
              const fix = () => {
                if (response.req) {
                  response.complete = response.req.res.complete;
                } else if (response.complete === void 0) {
                  response.complete = true;
                }
              };
              response.prependOnceListener("end", fix);
              fix();
              (await request).emit("cacheableResponse", response);
            }
            resolve4(response);
          });
          cacheRequest.once("error", reject);
          cacheRequest.once("request", async (requestOrPromise) => {
            request = requestOrPromise;
            resolve4(request);
          });
        });
      }
      async _makeRequest() {
        const { options } = this;
        const { headers, username, password } = options;
        const cookieJar = options.cookieJar;
        for (const key in headers) {
          if (distribution_default.undefined(headers[key])) {
            delete headers[key];
          } else if (distribution_default.null(headers[key])) {
            throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${key}\` header`);
          }
        }
        if (options.decompress && distribution_default.undefined(headers["accept-encoding"])) {
          const encodings = ["gzip", "deflate"];
          if (supportsBrotli) {
            encodings.push("br");
          }
          if (supportsZstd2) {
            encodings.push("zstd");
          }
          headers["accept-encoding"] = encodings.join(", ");
        }
        if (username || password) {
          const credentials = Buffer3.from(`${username}:${password}`).toString("base64");
          headers.authorization = `Basic ${credentials}`;
        }
        if (cookieJar) {
          const cookieString = await cookieJar.getCookieString(options.url.toString());
          if (distribution_default.nonEmptyString(cookieString)) {
            headers.cookie = cookieString;
          }
        }
        let request;
        for (const hook of options.hooks.beforeRequest) {
          const result = await hook(options, { retryCount: this.retryCount });
          if (!distribution_default.undefined(result)) {
            request = () => result;
            break;
          }
        }
        request ||= options.getRequestFunction();
        const url3 = options.url;
        this._requestOptions = options.createNativeRequestOptions();
        if (options.cache) {
          this._requestOptions._request = request;
          this._requestOptions.cache = options.cache;
          this._requestOptions.body = options.body;
          this._requestOptions.beforeCacheHooks = options.hooks.beforeCache;
          this._requestOptions.gotRequest = this;
          try {
            this._prepareCache(options.cache);
          } catch (error) {
            throw new CacheError(error, this);
          }
        }
        const function_ = options.cache ? this._createCacheableRequest : request;
        try {
          let requestOrResponse = function_(url3, this._requestOptions);
          if (distribution_default.promise(requestOrResponse)) {
            requestOrResponse = await requestOrResponse;
          }
          if (distribution_default.undefined(requestOrResponse)) {
            requestOrResponse = options.getFallbackRequestFunction()(url3, this._requestOptions);
            if (distribution_default.promise(requestOrResponse)) {
              requestOrResponse = await requestOrResponse;
            }
          }
          if (is_client_request_default(requestOrResponse)) {
            this._onRequest(requestOrResponse);
          } else if (this.writableEnded) {
            void this._onResponse(requestOrResponse);
          } else {
            this.once("finish", () => {
              void this._onResponse(requestOrResponse);
            });
            this._sendBody();
          }
        } catch (error) {
          if (error instanceof CacheError2) {
            throw new CacheError(error, this);
          }
          throw error;
        }
      }
      async _error(error) {
        try {
          if (this.options && error instanceof HTTPError && !this.options.throwHttpErrors) {
          } else if (this.options) {
            const hooks2 = this.options.hooks.beforeError;
            if (hooks2.length > 0) {
              for (const hook of hooks2) {
                error = await hook(error);
                if (!(error instanceof Error)) {
                  throw new TypeError(`The \`beforeError\` hook must return an Error instance. Received ${distribution_default.string(error) ? "string" : String(typeof error)}.`);
                }
              }
              if (!(error instanceof RequestError)) {
                errorsProcessedByHooks.add(error);
              }
            }
          }
        } catch (error_) {
          error = new RequestError(error_.message, error_, this);
        }
        publishError({
          requestId: this._requestId,
          url: this.options?.url?.toString() ?? "",
          error,
          timings: this.timings
        });
        this.destroy(error);
        if (this._noPipe) {
          process3.nextTick(() => {
            this.emit("error", error);
          });
        }
      }
      _writeRequest(chunk3, encoding, callback) {
        if (!this._request || this._request.destroyed) {
          callback();
          return;
        }
        this._request.write(chunk3, encoding, (error) => {
          if (!error && !this._request.destroyed) {
            const bytes = typeof chunk3 === "string" ? Buffer3.from(chunk3, encoding) : chunk3;
            this._uploadedSize += byteLength(bytes);
            const progress = this.uploadProgress;
            if (progress.percent < 1) {
              this.emit("uploadProgress", progress);
            }
          }
          callback(error);
        });
      }
      /**
      The remote IP address.
      */
      get ip() {
        return this.socket?.remoteAddress;
      }
      /**
      Indicates whether the request has been aborted or not.
      */
      get isAborted() {
        return this._aborted;
      }
      get socket() {
        return this._request?.socket ?? void 0;
      }
      /**
      Progress event for downloading (receiving a response).
      */
      get downloadProgress() {
        let percent;
        if (this._responseSize) {
          percent = this._downloadedSize / this._responseSize;
        } else if (this._responseSize === this._downloadedSize) {
          percent = 1;
        } else {
          percent = 0;
        }
        return {
          percent,
          transferred: this._downloadedSize,
          total: this._responseSize
        };
      }
      /**
      Progress event for uploading (sending a request).
      */
      get uploadProgress() {
        let percent;
        if (this._bodySize) {
          percent = this._uploadedSize / this._bodySize;
        } else if (this._bodySize === this._uploadedSize) {
          percent = 1;
        } else {
          percent = 0;
        }
        return {
          percent,
          transferred: this._uploadedSize,
          total: this._bodySize
        };
      }
      /**
          The object contains the following properties:
      
          - `start` - Time when the request started.
          - `socket` - Time when a socket was assigned to the request.
          - `lookup` - Time when the DNS lookup finished.
          - `connect` - Time when the socket successfully connected.
          - `secureConnect` - Time when the socket securely connected.
          - `upload` - Time when the request finished uploading.
          - `response` - Time when the request fired `response` event.
          - `end` - Time when the response fired `end` event.
          - `error` - Time when the request fired `error` event.
          - `abort` - Time when the request fired `abort` event.
          - `phases`
              - `wait` - `timings.socket - timings.start`
              - `dns` - `timings.lookup - timings.socket`
              - `tcp` - `timings.connect - timings.lookup`
              - `tls` - `timings.secureConnect - timings.connect`
              - `request` - `timings.upload - (timings.secureConnect || timings.connect)`
              - `firstByte` - `timings.response - timings.upload`
              - `download` - `timings.end - timings.response`
              - `total` - `(timings.end || timings.error || timings.abort) - timings.start`
      
          If something has not been measured yet, it will be `undefined`.
      
          __Note__: The time is a `number` representing the milliseconds elapsed since the UNIX epoch.
          */
      get timings() {
        return this._request?.timings;
      }
      /**
      Whether the response was retrieved from the cache.
      */
      get isFromCache() {
        return this._isFromCache;
      }
      get reusedSocket() {
        return this._request?.reusedSocket;
      }
      /**
      Whether the stream is read-only. Returns `true` when `body`, `json`, or `form` options are provided.
      */
      get isReadonly() {
        return !distribution_default.undefined(this.options?.body) || !distribution_default.undefined(this.options?.json) || !distribution_default.undefined(this.options?.form);
      }
    };
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/as-promise/types.js
var CancelError2;
var init_types2 = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/as-promise/types.js"() {
    init_errors();
    CancelError2 = class extends RequestError {
      constructor(request) {
        super("Promise was canceled", {}, request);
        this.name = "CancelError";
        this.code = "ERR_CANCELED";
      }
      /**
      Whether the promise is canceled.
      */
      get isCanceled() {
        return true;
      }
    };
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/as-promise/index.js
import { EventEmitter as EventEmitter2 } from "node:events";
function asPromise(firstRequest) {
  let globalRequest;
  let globalResponse;
  let normalizedOptions;
  const emitter = new EventEmitter2();
  let promiseSettled = false;
  const promise = new PCancelable((resolve4, reject, onCancel) => {
    onCancel(() => {
      globalRequest.destroy();
    });
    onCancel.shouldReject = false;
    onCancel(() => {
      promiseSettled = true;
      reject(new CancelError2(globalRequest));
    });
    const makeRequest = (retryCount) => {
      onCancel(() => {
      });
      const request = firstRequest ?? new Request(void 0, void 0, normalizedOptions);
      request.retryCount = retryCount;
      request._noPipe = true;
      globalRequest = request;
      request.once("response", async (response) => {
        const contentEncoding = (response.headers["content-encoding"] ?? "").toLowerCase();
        const isCompressed = contentEncoding === "gzip" || contentEncoding === "deflate" || contentEncoding === "br" || contentEncoding === "zstd";
        const { options } = request;
        if (isCompressed && !options.decompress) {
          response.body = response.rawBody;
        } else {
          try {
            response.body = parseBody(response, options.responseType, options.parseJson, options.encoding);
          } catch (error) {
            try {
              response.body = response.rawBody.toString();
            } catch (error2) {
              request._beforeError(new ParseError(error2, response));
              return;
            }
            if (isResponseOk(response)) {
              request._beforeError(error);
              return;
            }
          }
        }
        try {
          const hooks2 = options.hooks.afterResponse;
          for (const [index2, hook] of hooks2.entries()) {
            response = await hook(response, async (updatedOptions) => {
              const preserveHooks = updatedOptions.preserveHooks ?? false;
              options.merge(updatedOptions);
              options.prefixUrl = "";
              if (updatedOptions.url) {
                options.url = updatedOptions.url;
              }
              if (!preserveHooks) {
                options.hooks.afterResponse = options.hooks.afterResponse.slice(0, index2);
              }
              throw new RetryError(request);
            });
            if (!(distribution_default.object(response) && distribution_default.number(response.statusCode) && "body" in response)) {
              throw new TypeError("The `afterResponse` hook returned an invalid value");
            }
          }
        } catch (error) {
          request._beforeError(error);
          return;
        }
        globalResponse = response;
        if (!isResponseOk(response)) {
          request._beforeError(new HTTPError(response));
          return;
        }
        request.destroy();
        promiseSettled = true;
        resolve4(request.options.resolveBodyOnly ? response.body : response);
      });
      let handledFinalError = false;
      const onError = (error) => {
        if (promise.isCanceled) {
          return;
        }
        if (!request._stopReading) {
          request._beforeError(error);
          return;
        }
        if (handledFinalError) {
          return;
        }
        handledFinalError = true;
        promiseSettled = true;
        const { options } = request;
        if (error instanceof HTTPError && !options.throwHttpErrors) {
          const { response } = error;
          request.destroy();
          resolve4(request.options.resolveBodyOnly ? response.body : response);
          return;
        }
        reject(error);
      };
      request.on("error", onError);
      const previousBody = request.options?.body;
      request.once("retry", (newRetryCount, error) => {
        firstRequest = void 0;
        if (promiseSettled) {
          return;
        }
        const newBody = request.options.body;
        if (previousBody === newBody && distribution_default.nodeStream(newBody)) {
          error.message = "Cannot retry with consumed body stream";
          onError(error);
          return;
        }
        normalizedOptions = request.options;
        makeRequest(newRetryCount);
      });
      proxyEvents(request, emitter, proxiedRequestEvents2);
      if (distribution_default.undefined(firstRequest)) {
        void request.flush();
      }
    };
    makeRequest(0);
  });
  promise.on = (event, function_) => {
    emitter.on(event, function_);
    return promise;
  };
  promise.off = (event, function_) => {
    emitter.off(event, function_);
    return promise;
  };
  const shortcut = (promiseToAwait, responseType) => {
    const newPromise = (async () => {
      await promiseToAwait;
      const { options } = globalResponse.request;
      return parseBody(globalResponse, responseType, options.parseJson, options.encoding);
    })();
    Object.defineProperties(newPromise, Object.getOwnPropertyDescriptors(promiseToAwait));
    return newPromise;
  };
  promise.json = function() {
    if (globalRequest.options) {
      const { headers } = globalRequest.options;
      if (!globalRequest.writableFinished && !("accept" in headers)) {
        headers.accept = "application/json";
      }
    }
    return shortcut(this, "json");
  };
  promise.buffer = function() {
    return shortcut(this, "buffer");
  };
  promise.text = function() {
    return shortcut(this, "text");
  };
  return promise;
}
var proxiedRequestEvents2;
var init_as_promise = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/as-promise/index.js"() {
    init_distribution();
    init_p_cancelable();
    init_errors();
    init_core();
    init_response();
    init_proxy_events();
    init_types2();
    proxiedRequestEvents2 = [
      "request",
      "response",
      "redirect",
      "uploadProgress",
      "downloadProgress"
    ];
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/create.js
import { setTimeout as delay } from "node:timers/promises";
var isGotInstance, aliases, create, create_default;
var init_create = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/create.js"() {
    init_distribution();
    init_as_promise();
    init_core();
    init_options();
    isGotInstance = (value2) => distribution_default.function(value2);
    aliases = [
      "get",
      "post",
      "put",
      "patch",
      "head",
      "delete"
    ];
    create = (defaults4) => {
      defaults4 = {
        options: new Options(void 0, void 0, defaults4.options),
        handlers: [...defaults4.handlers],
        mutableDefaults: defaults4.mutableDefaults
      };
      Object.defineProperty(defaults4, "mutableDefaults", {
        enumerable: true,
        configurable: false,
        writable: false
      });
      const got2 = ((url3, options, defaultOptions2 = defaults4.options) => {
        const request = new Request(url3, options, defaultOptions2);
        let promise;
        const lastHandler = (normalized) => {
          request.options = normalized;
          request._noPipe = !normalized?.isStream;
          void request.flush();
          if (normalized?.isStream) {
            return request;
          }
          promise ||= asPromise(request);
          return promise;
        };
        let iteration = 0;
        const iterateHandlers = (newOptions) => {
          const handler = defaults4.handlers[iteration++] ?? lastHandler;
          const result = handler(newOptions, iterateHandlers);
          if (distribution_default.promise(result) && !request.options?.isStream) {
            promise ||= asPromise(request);
            if (result !== promise) {
              const descriptors = Object.getOwnPropertyDescriptors(promise);
              for (const key in descriptors) {
                if (key in result) {
                  delete descriptors[key];
                }
              }
              Object.defineProperties(result, descriptors);
              result.cancel = promise.cancel;
            }
          }
          return result;
        };
        return iterateHandlers(request.options);
      });
      got2.extend = (...instancesOrOptions) => {
        const options = new Options(void 0, void 0, defaults4.options);
        const handlers3 = [...defaults4.handlers];
        let mutableDefaults;
        for (const value2 of instancesOrOptions) {
          if (isGotInstance(value2)) {
            options.merge(value2.defaults.options);
            handlers3.push(...value2.defaults.handlers);
            mutableDefaults = value2.defaults.mutableDefaults;
          } else {
            options.merge(value2);
            if (value2.handlers) {
              handlers3.push(...value2.handlers);
            }
            mutableDefaults = value2.mutableDefaults;
          }
        }
        return create({
          options,
          handlers: handlers3,
          mutableDefaults: Boolean(mutableDefaults)
        });
      };
      const paginateEach = (async function* (url3, options) {
        let normalizedOptions = new Options(url3, options, defaults4.options);
        normalizedOptions.resolveBodyOnly = false;
        const { pagination } = normalizedOptions;
        assert.function(pagination.transform);
        assert.function(pagination.shouldContinue);
        assert.function(pagination.filter);
        assert.function(pagination.paginate);
        assert.number(pagination.countLimit);
        assert.number(pagination.requestLimit);
        assert.number(pagination.backoff);
        const allItems = [];
        let { countLimit } = pagination;
        let numberOfRequests = 0;
        while (numberOfRequests < pagination.requestLimit) {
          if (numberOfRequests !== 0) {
            await delay(pagination.backoff);
          }
          const response = await got2(void 0, void 0, normalizedOptions);
          const parsed = await pagination.transform(response);
          const currentItems = [];
          assert.array(parsed);
          for (const item of parsed) {
            if (pagination.filter({ item, currentItems, allItems })) {
              if (!pagination.shouldContinue({ item, currentItems, allItems })) {
                return;
              }
              yield item;
              if (pagination.stackAllItems) {
                allItems.push(item);
              }
              currentItems.push(item);
              if (--countLimit <= 0) {
                return;
              }
            }
          }
          const optionsToMerge = pagination.paginate({
            response,
            currentItems,
            allItems
          });
          if (optionsToMerge === false) {
            return;
          }
          if (optionsToMerge === response.request.options) {
            normalizedOptions = response.request.options;
          } else {
            normalizedOptions.merge(optionsToMerge);
            try {
              assert.any([distribution_default.urlInstance, distribution_default.undefined], optionsToMerge.url);
            } catch (error) {
              if (error instanceof Error) {
                error.message = `Option 'pagination.paginate.url': ${error.message}`;
              }
              throw error;
            }
            if (optionsToMerge.url !== void 0) {
              normalizedOptions.prefixUrl = "";
              normalizedOptions.url = optionsToMerge.url;
            }
          }
          numberOfRequests++;
        }
      });
      got2.paginate = paginateEach;
      got2.paginate.all = (async (url3, options) => {
        const results = [];
        for await (const item of paginateEach(url3, options)) {
          results.push(item);
        }
        return results;
      });
      got2.paginate.each = paginateEach;
      got2.stream = ((url3, options) => got2(url3, { ...options, isStream: true }));
      for (const method of aliases) {
        got2[method] = ((url3, options) => got2(url3, { ...options, method }));
        got2.stream[method] = ((url3, options) => got2(url3, { ...options, method, isStream: true }));
      }
      if (!defaults4.mutableDefaults) {
        Object.freeze(defaults4.handlers);
        defaults4.options.freeze();
      }
      Object.defineProperty(got2, "defaults", {
        value: defaults4,
        writable: false,
        configurable: false,
        enumerable: true
      });
      return got2;
    };
    create_default = create;
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/types.js
var init_types3 = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/types.js"() {
  }
});

// ../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/index.js
var defaults, got;
var init_source3 = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/index.js"() {
    init_create();
    init_options();
    init_options();
    init_options();
    init_response();
    init_core();
    init_errors();
    init_diagnostics_channel();
    init_calculate_retry_delay();
    init_types2();
    init_types3();
    init_create();
    init_parse_link_header();
    defaults = {
      options: new Options(),
      handlers: [],
      mutableDefaults: false
    };
    got = create_default(defaults);
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/constants.js
var require_constants = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/constants.js"(exports, module) {
    module.exports = {
      /* The local file header */
      LOCHDR: 30,
      // LOC header size
      LOCSIG: 67324752,
      // "PK\003\004"
      LOCVER: 4,
      // version needed to extract
      LOCFLG: 6,
      // general purpose bit flag
      LOCHOW: 8,
      // compression method
      LOCTIM: 10,
      // modification time (2 bytes time, 2 bytes date)
      LOCCRC: 14,
      // uncompressed file crc-32 value
      LOCSIZ: 18,
      // compressed size
      LOCLEN: 22,
      // uncompressed size
      LOCNAM: 26,
      // filename length
      LOCEXT: 28,
      // extra field length
      /* The Data descriptor */
      EXTSIG: 134695760,
      // "PK\007\008"
      EXTHDR: 16,
      // EXT header size
      EXTCRC: 4,
      // uncompressed file crc-32 value
      EXTSIZ: 8,
      // compressed size
      EXTLEN: 12,
      // uncompressed size
      /* The central directory file header */
      CENHDR: 46,
      // CEN header size
      CENSIG: 33639248,
      // "PK\001\002"
      CENVEM: 4,
      // version made by
      CENVER: 6,
      // version needed to extract
      CENFLG: 8,
      // encrypt, decrypt flags
      CENHOW: 10,
      // compression method
      CENTIM: 12,
      // modification time (2 bytes time, 2 bytes date)
      CENCRC: 16,
      // uncompressed file crc-32 value
      CENSIZ: 20,
      // compressed size
      CENLEN: 24,
      // uncompressed size
      CENNAM: 28,
      // filename length
      CENEXT: 30,
      // extra field length
      CENCOM: 32,
      // file comment length
      CENDSK: 34,
      // volume number start
      CENATT: 36,
      // internal file attributes
      CENATX: 38,
      // external file attributes (host system dependent)
      CENOFF: 42,
      // LOC header offset
      /* The entries in the end of central directory */
      ENDHDR: 22,
      // END header size
      ENDSIG: 101010256,
      // "PK\005\006"
      ENDSUB: 8,
      // number of entries on this disk
      ENDTOT: 10,
      // total number of entries
      ENDSIZ: 12,
      // central directory size in bytes
      ENDOFF: 16,
      // offset of first CEN header
      ENDCOM: 20,
      // zip file comment length
      END64HDR: 20,
      // zip64 END header size
      END64SIG: 117853008,
      // zip64 Locator signature, "PK\006\007"
      END64START: 4,
      // number of the disk with the start of the zip64
      END64OFF: 8,
      // relative offset of the zip64 end of central directory
      END64NUMDISKS: 16,
      // total number of disks
      ZIP64SIG: 101075792,
      // zip64 signature, "PK\006\006"
      ZIP64HDR: 56,
      // zip64 record minimum size
      ZIP64LEAD: 12,
      // leading bytes at the start of the record, not counted by the value stored in ZIP64SIZE
      ZIP64SIZE: 4,
      // zip64 size of the central directory record
      ZIP64VEM: 12,
      // zip64 version made by
      ZIP64VER: 14,
      // zip64 version needed to extract
      ZIP64DSK: 16,
      // zip64 number of this disk
      ZIP64DSKDIR: 20,
      // number of the disk with the start of the record directory
      ZIP64SUB: 24,
      // number of entries on this disk
      ZIP64TOT: 32,
      // total number of entries
      ZIP64SIZB: 40,
      // zip64 central directory size in bytes
      ZIP64OFF: 48,
      // offset of start of central directory with respect to the starting disk number
      ZIP64EXTRA: 56,
      // extensible data sector
      /* Compression methods */
      STORED: 0,
      // no compression
      SHRUNK: 1,
      // shrunk
      REDUCED1: 2,
      // reduced with compression factor 1
      REDUCED2: 3,
      // reduced with compression factor 2
      REDUCED3: 4,
      // reduced with compression factor 3
      REDUCED4: 5,
      // reduced with compression factor 4
      IMPLODED: 6,
      // imploded
      // 7 reserved for Tokenizing compression algorithm
      DEFLATED: 8,
      // deflated
      ENHANCED_DEFLATED: 9,
      // enhanced deflated
      PKWARE: 10,
      // PKWare DCL imploded
      // 11 reserved by PKWARE
      BZIP2: 12,
      //  compressed using BZIP2
      // 13 reserved by PKWARE
      LZMA: 14,
      // LZMA
      // 15-17 reserved by PKWARE
      IBM_TERSE: 18,
      // compressed using IBM TERSE
      IBM_LZ77: 19,
      // IBM LZ77 z
      AES_ENCRYPT: 99,
      // WinZIP AES encryption method
      /* General purpose bit flag */
      // values can obtained with expression 2**bitnr
      FLG_ENC: 1,
      // Bit 0: encrypted file
      FLG_COMP1: 2,
      // Bit 1, compression option
      FLG_COMP2: 4,
      // Bit 2, compression option
      FLG_DESC: 8,
      // Bit 3, data descriptor
      FLG_ENH: 16,
      // Bit 4, enhanced deflating
      FLG_PATCH: 32,
      // Bit 5, indicates that the file is compressed patched data.
      FLG_STR: 64,
      // Bit 6, strong encryption (patented)
      // Bits 7-10: Currently unused.
      FLG_EFS: 2048,
      // Bit 11: Language encoding flag (EFS)
      // Bit 12: Reserved by PKWARE for enhanced compression.
      // Bit 13: encrypted the Central Directory (patented).
      // Bits 14-15: Reserved by PKWARE.
      FLG_MSK: 4096,
      // mask header values
      /* Load type */
      FILE: 2,
      BUFFER: 1,
      NONE: 0,
      /* 4.5 Extensible data fields */
      EF_ID: 0,
      EF_SIZE: 2,
      /* Header IDs */
      ID_ZIP64: 1,
      ID_AVINFO: 7,
      ID_PFS: 8,
      ID_OS2: 9,
      ID_NTFS: 10,
      ID_OPENVMS: 12,
      ID_UNIX: 13,
      ID_FORK: 14,
      ID_PATCH: 15,
      ID_X509_PKCS7: 20,
      ID_X509_CERTID_F: 21,
      ID_X509_CERTID_C: 22,
      ID_STRONGENC: 23,
      ID_RECORD_MGT: 24,
      ID_X509_PKCS7_RL: 25,
      ID_IBM1: 101,
      ID_IBM2: 102,
      ID_POSZIP: 18064,
      EF_ZIP64_OR_32: 4294967295,
      EF_ZIP64_OR_16: 65535,
      EF_ZIP64_SUNCOMP: 0,
      EF_ZIP64_SCOMP: 8,
      EF_ZIP64_RHO: 16,
      EF_ZIP64_DSN: 24
    };
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/errors.js
var require_errors3 = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/errors.js"(exports) {
    var errors = {
      /* Header error messages */
      INVALID_LOC: "Invalid LOC header (bad signature)",
      INVALID_CEN: "Invalid CEN header (bad signature)",
      INVALID_END: "Invalid END header (bad signature)",
      /* Descriptor */
      DESCRIPTOR_NOT_EXIST: "No descriptor present",
      DESCRIPTOR_UNKNOWN: "Unknown descriptor format",
      DESCRIPTOR_FAULTY: "Descriptor data is malformed",
      /* ZipEntry error messages*/
      NO_DATA: "Nothing to decompress",
      BAD_CRC: "CRC32 checksum failed {0}",
      FILE_IN_THE_WAY: "There is a file in the way: {0}",
      UNKNOWN_METHOD: "Invalid/unsupported compression method",
      /* Inflater error messages */
      AVAIL_DATA: "inflate::Available inflate data did not terminate",
      INVALID_DISTANCE: "inflate::Invalid literal/length or distance code in fixed or dynamic block",
      TO_MANY_CODES: "inflate::Dynamic block code description: too many length or distance codes",
      INVALID_REPEAT_LEN: "inflate::Dynamic block code description: repeat more than specified lengths",
      INVALID_REPEAT_FIRST: "inflate::Dynamic block code description: repeat lengths with no first length",
      INCOMPLETE_CODES: "inflate::Dynamic block code description: code lengths codes incomplete",
      INVALID_DYN_DISTANCE: "inflate::Dynamic block code description: invalid distance code lengths",
      INVALID_CODES_LEN: "inflate::Dynamic block code description: invalid literal/length code lengths",
      INVALID_STORE_BLOCK: "inflate::Stored block length did not match one's complement",
      INVALID_BLOCK_TYPE: "inflate::Invalid block type (type == 3)",
      /* ADM-ZIP error messages */
      CANT_EXTRACT_FILE: "Could not extract the file",
      CANT_OVERRIDE: "Target file already exists",
      DISK_ENTRY_TOO_LARGE: "Number of disk entries is too large",
      NO_ZIP: "No zip file was loaded",
      NO_ENTRY: "Entry doesn't exist",
      DIRECTORY_CONTENT_ERROR: "A directory cannot have content",
      FILE_NOT_FOUND: 'File not found: "{0}"',
      NOT_IMPLEMENTED: "Not implemented",
      INVALID_FILENAME: "Invalid filename",
      INVALID_FORMAT: "Invalid or unsupported zip format. No END header found",
      INVALID_PASS_PARAM: "Incompatible password parameter",
      WRONG_PASSWORD: "Wrong Password",
      /* ADM-ZIP */
      COMMENT_TOO_LONG: "Comment is too long",
      // Comment can be max 65535 bytes long (NOTE: some non-US characters may take more space)
      EXTRA_FIELD_PARSE_ERROR: "Extra field parsing error"
    };
    function E(message) {
      return function(...args) {
        if (args.length) {
          message = message.replace(/\{(\d)\}/g, (_, n6) => args[n6] || "");
        }
        return new Error("ADM-ZIP: " + message);
      };
    }
    for (const msg of Object.keys(errors)) {
      exports[msg] = E(errors[msg]);
    }
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/utils.js
var require_utils5 = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/utils.js"(exports, module) {
    var fsystem = __require("fs");
    var pth = __require("path");
    var Constants = require_constants();
    var Errors = require_errors3();
    var isWin = typeof process === "object" && "win32" === process.platform;
    var is_Obj = (obj) => typeof obj === "object" && obj !== null;
    var crcTable = new Uint32Array(256).map((t4, c6) => {
      for (let k3 = 0; k3 < 8; k3++) {
        if ((c6 & 1) !== 0) {
          c6 = 3988292384 ^ c6 >>> 1;
        } else {
          c6 >>>= 1;
        }
      }
      return c6 >>> 0;
    });
    function Utils(opts2) {
      this.sep = pth.sep;
      this.fs = fsystem;
      if (is_Obj(opts2)) {
        if (is_Obj(opts2.fs) && typeof opts2.fs.statSync === "function") {
          this.fs = opts2.fs;
        }
      }
    }
    module.exports = Utils;
    Utils.prototype.makeDir = function(folder) {
      const self2 = this;
      function mkdirSync(fpath) {
        let resolvedPath = fpath.split(self2.sep)[0];
        fpath.split(self2.sep).forEach(function(name) {
          if (!name || name.substr(-1, 1) === ":") return;
          resolvedPath += self2.sep + name;
          var stat;
          try {
            stat = self2.fs.statSync(resolvedPath);
          } catch (e4) {
            self2.fs.mkdirSync(resolvedPath);
          }
          if (stat && stat.isFile()) throw Errors.FILE_IN_THE_WAY(`"${resolvedPath}"`);
        });
      }
      mkdirSync(folder);
    };
    Utils.prototype.writeFileTo = function(path3, content, overwrite, attr) {
      const self2 = this;
      if (self2.fs.existsSync(path3)) {
        if (!overwrite) return false;
        var stat = self2.fs.statSync(path3);
        if (stat.isDirectory()) {
          return false;
        }
      }
      var folder = pth.dirname(path3);
      if (!self2.fs.existsSync(folder)) {
        self2.makeDir(folder);
      }
      var fd2;
      try {
        fd2 = self2.fs.openSync(path3, "w", 438);
      } catch (e4) {
        self2.fs.chmodSync(path3, 438);
        fd2 = self2.fs.openSync(path3, "w", 438);
      }
      if (fd2) {
        try {
          self2.fs.writeSync(fd2, content, 0, content.length, 0);
        } finally {
          self2.fs.closeSync(fd2);
        }
      }
      self2.fs.chmodSync(path3, attr || 438);
      return true;
    };
    Utils.prototype.writeFileToAsync = function(path3, content, overwrite, attr, callback) {
      if (typeof attr === "function") {
        callback = attr;
        attr = void 0;
      }
      const self2 = this;
      self2.fs.exists(path3, function(exist) {
        if (exist && !overwrite) return callback(false);
        self2.fs.stat(path3, function(err2, stat) {
          if (exist && stat.isDirectory()) {
            return callback(false);
          }
          var folder = pth.dirname(path3);
          self2.fs.exists(folder, function(exists) {
            if (!exists) self2.makeDir(folder);
            self2.fs.open(path3, "w", 438, function(err3, fd2) {
              if (err3) {
                self2.fs.chmod(path3, 438, function() {
                  self2.fs.open(path3, "w", 438, function(err4, fd3) {
                    self2.fs.write(fd3, content, 0, content.length, 0, function() {
                      self2.fs.close(fd3, function() {
                        self2.fs.chmod(path3, attr || 438, function() {
                          callback(true);
                        });
                      });
                    });
                  });
                });
              } else if (fd2) {
                self2.fs.write(fd2, content, 0, content.length, 0, function() {
                  self2.fs.close(fd2, function() {
                    self2.fs.chmod(path3, attr || 438, function() {
                      callback(true);
                    });
                  });
                });
              } else {
                self2.fs.chmod(path3, attr || 438, function() {
                  callback(true);
                });
              }
            });
          });
        });
      });
    };
    Utils.prototype.findFiles = function(path3) {
      const self2 = this;
      function findSync(dir, pattern3, recursive) {
        if (typeof pattern3 === "boolean") {
          recursive = pattern3;
          pattern3 = void 0;
        }
        let files = [];
        self2.fs.readdirSync(dir).forEach(function(file) {
          const path4 = pth.join(dir, file);
          const stat = self2.fs.statSync(path4);
          if (!pattern3 || pattern3.test(path4)) {
            files.push(pth.normalize(path4) + (stat.isDirectory() ? self2.sep : ""));
          }
          if (stat.isDirectory() && recursive) files = files.concat(findSync(path4, pattern3, recursive));
        });
        return files;
      }
      return findSync(path3, void 0, true);
    };
    Utils.prototype.findFilesAsync = function(dir, cb) {
      const self2 = this;
      let results = [];
      self2.fs.readdir(dir, function(err2, list) {
        if (err2) return cb(err2);
        let list_length = list.length;
        if (!list_length) return cb(null, results);
        list.forEach(function(file) {
          file = pth.join(dir, file);
          self2.fs.stat(file, function(err3, stat) {
            if (err3) return cb(err3);
            if (stat) {
              results.push(pth.normalize(file) + (stat.isDirectory() ? self2.sep : ""));
              if (stat.isDirectory()) {
                self2.findFilesAsync(file, function(err4, res) {
                  if (err4) return cb(err4);
                  results = results.concat(res);
                  if (!--list_length) cb(null, results);
                });
              } else {
                if (!--list_length) cb(null, results);
              }
            }
          });
        });
      });
    };
    Utils.prototype.getAttributes = function() {
    };
    Utils.prototype.setAttributes = function() {
    };
    Utils.crc32update = function(crc, byte) {
      return crcTable[(crc ^ byte) & 255] ^ crc >>> 8;
    };
    Utils.crc32 = function(buf) {
      if (typeof buf === "string") {
        buf = Buffer.from(buf, "utf8");
      }
      let len = buf.length;
      let crc = ~0;
      for (let off = 0; off < len; ) crc = Utils.crc32update(crc, buf[off++]);
      return ~crc >>> 0;
    };
    Utils.methodToString = function(method) {
      switch (method) {
        case Constants.STORED:
          return "STORED (" + method + ")";
        case Constants.DEFLATED:
          return "DEFLATED (" + method + ")";
        default:
          return "UNSUPPORTED (" + method + ")";
      }
    };
    Utils.canonical = function(path3) {
      if (!path3) return "";
      const safeSuffix = pth.posix.normalize("/" + path3.split("\\").join("/"));
      return pth.join(".", safeSuffix);
    };
    Utils.zipnamefix = function(path3) {
      if (!path3) return "";
      const safeSuffix = pth.posix.normalize("/" + path3.split("\\").join("/"));
      return pth.posix.join(".", safeSuffix);
    };
    Utils.findLast = function(arr, callback) {
      if (!Array.isArray(arr)) throw new TypeError("arr is not array");
      const len = arr.length >>> 0;
      for (let i5 = len - 1; i5 >= 0; i5--) {
        if (callback(arr[i5], i5, arr)) {
          return arr[i5];
        }
      }
      return void 0;
    };
    Utils.sanitize = function(prefix, name) {
      prefix = pth.resolve(pth.normalize(prefix));
      var parts = name.split("/");
      for (var i5 = 0, l4 = parts.length; i5 < l4; i5++) {
        var path3 = pth.normalize(pth.join(prefix, parts.slice(i5, l4).join(pth.sep)));
        if (path3.indexOf(prefix) === 0) {
          return path3;
        }
      }
      return pth.normalize(pth.join(prefix, pth.basename(name)));
    };
    Utils.toBuffer = function toBuffer(input, encoder) {
      if (Buffer.isBuffer(input)) {
        return input;
      } else if (input instanceof Uint8Array) {
        return Buffer.from(input);
      } else {
        return typeof input === "string" ? encoder(input) : Buffer.alloc(0);
      }
    };
    Utils.readBigUInt64LE = function(buffer, index2) {
      var slice2 = Buffer.from(buffer.slice(index2, index2 + 8));
      slice2.swap64();
      return parseInt(`0x${slice2.toString("hex")}`);
    };
    Utils.fromDOS2Date = function(val) {
      return new Date((val >> 25 & 127) + 1980, Math.max((val >> 21 & 15) - 1, 0), Math.max(val >> 16 & 31, 1), val >> 11 & 31, val >> 5 & 63, (val & 31) << 1);
    };
    Utils.fromDate2DOS = function(val) {
      let date = 0;
      let time = 0;
      if (val.getFullYear() > 1979) {
        date = (val.getFullYear() - 1980 & 127) << 9 | val.getMonth() + 1 << 5 | val.getDate();
        time = val.getHours() << 11 | val.getMinutes() << 5 | val.getSeconds() >> 1;
      }
      return date << 16 | time;
    };
    Utils.isWin = isWin;
    Utils.crcTable = crcTable;
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/fattr.js
var require_fattr = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/fattr.js"(exports, module) {
    var pth = __require("path");
    module.exports = function(path3, { fs: fs7 }) {
      var _path = path3 || "", _obj = newAttr(), _stat = null;
      function newAttr() {
        return {
          directory: false,
          readonly: false,
          hidden: false,
          executable: false,
          mtime: 0,
          atime: 0
        };
      }
      if (_path && fs7.existsSync(_path)) {
        _stat = fs7.statSync(_path);
        _obj.directory = _stat.isDirectory();
        _obj.mtime = _stat.mtime;
        _obj.atime = _stat.atime;
        _obj.executable = (73 & _stat.mode) !== 0;
        _obj.readonly = (128 & _stat.mode) === 0;
        _obj.hidden = pth.basename(_path)[0] === ".";
      } else {
        console.warn("Invalid path: " + _path);
      }
      return {
        get directory() {
          return _obj.directory;
        },
        get readOnly() {
          return _obj.readonly;
        },
        get hidden() {
          return _obj.hidden;
        },
        get mtime() {
          return _obj.mtime;
        },
        get atime() {
          return _obj.atime;
        },
        get executable() {
          return _obj.executable;
        },
        decodeAttributes: function() {
        },
        encodeAttributes: function() {
        },
        toJSON: function() {
          return {
            path: _path,
            isDirectory: _obj.directory,
            isReadOnly: _obj.readonly,
            isHidden: _obj.hidden,
            isExecutable: _obj.executable,
            mTime: _obj.mtime,
            aTime: _obj.atime
          };
        },
        toString: function() {
          return JSON.stringify(this.toJSON(), null, "	");
        }
      };
    };
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/decoder.js
var require_decoder = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/decoder.js"(exports, module) {
    module.exports = {
      efs: true,
      encode: (data2) => Buffer.from(data2, "utf8"),
      decode: (data2) => data2.toString("utf8")
    };
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/index.js
var require_util2 = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/index.js"(exports, module) {
    module.exports = require_utils5();
    module.exports.Constants = require_constants();
    module.exports.Errors = require_errors3();
    module.exports.FileAttr = require_fattr();
    module.exports.decoder = require_decoder();
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/headers/entryHeader.js
var require_entryHeader = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/headers/entryHeader.js"(exports, module) {
    var Utils = require_util2();
    var Constants = Utils.Constants;
    module.exports = function() {
      var _verMade = 20, _version = 10, _flags = 0, _method = 0, _time = 0, _crc = 0, _compressedSize = 0, _size = 0, _fnameLen = 0, _extraLen = 0, _comLen = 0, _diskStart = 0, _inattr = 0, _attr = 0, _offset = 0;
      _verMade |= Utils.isWin ? 2560 : 768;
      _flags |= Constants.FLG_EFS;
      const _localHeader = {
        extraLen: 0
      };
      const uint322 = (val) => Math.max(0, val) >>> 0;
      const uint162 = (val) => Math.max(0, val) & 65535;
      const uint82 = (val) => Math.max(0, val) & 255;
      _time = Utils.fromDate2DOS(/* @__PURE__ */ new Date());
      return {
        get made() {
          return _verMade;
        },
        set made(val) {
          _verMade = val;
        },
        get version() {
          return _version;
        },
        set version(val) {
          _version = val;
        },
        get flags() {
          return _flags;
        },
        set flags(val) {
          _flags = val;
        },
        get flags_efs() {
          return (_flags & Constants.FLG_EFS) > 0;
        },
        set flags_efs(val) {
          if (val) {
            _flags |= Constants.FLG_EFS;
          } else {
            _flags &= ~Constants.FLG_EFS;
          }
        },
        get flags_desc() {
          return (_flags & Constants.FLG_DESC) > 0;
        },
        set flags_desc(val) {
          if (val) {
            _flags |= Constants.FLG_DESC;
          } else {
            _flags &= ~Constants.FLG_DESC;
          }
        },
        get method() {
          return _method;
        },
        set method(val) {
          switch (val) {
            case Constants.STORED:
              this.version = 10;
            case Constants.DEFLATED:
            default:
              this.version = 20;
          }
          _method = val;
        },
        get time() {
          return Utils.fromDOS2Date(this.timeval);
        },
        set time(val) {
          this.timeval = Utils.fromDate2DOS(val);
        },
        get timeval() {
          return _time;
        },
        set timeval(val) {
          _time = uint322(val);
        },
        get timeHighByte() {
          return uint82(_time >>> 8);
        },
        get crc() {
          return _crc;
        },
        set crc(val) {
          _crc = uint322(val);
        },
        get compressedSize() {
          return _compressedSize;
        },
        set compressedSize(val) {
          _compressedSize = uint322(val);
        },
        get size() {
          return _size;
        },
        set size(val) {
          _size = uint322(val);
        },
        get fileNameLength() {
          return _fnameLen;
        },
        set fileNameLength(val) {
          _fnameLen = val;
        },
        get extraLength() {
          return _extraLen;
        },
        set extraLength(val) {
          _extraLen = val;
        },
        get extraLocalLength() {
          return _localHeader.extraLen;
        },
        set extraLocalLength(val) {
          _localHeader.extraLen = val;
        },
        get commentLength() {
          return _comLen;
        },
        set commentLength(val) {
          _comLen = val;
        },
        get diskNumStart() {
          return _diskStart;
        },
        set diskNumStart(val) {
          _diskStart = uint322(val);
        },
        get inAttr() {
          return _inattr;
        },
        set inAttr(val) {
          _inattr = uint322(val);
        },
        get attr() {
          return _attr;
        },
        set attr(val) {
          _attr = uint322(val);
        },
        // get Unix file permissions
        get fileAttr() {
          return (_attr || 0) >> 16 & 4095;
        },
        get offset() {
          return _offset;
        },
        set offset(val) {
          _offset = uint322(val);
        },
        get encrypted() {
          return (_flags & Constants.FLG_ENC) === Constants.FLG_ENC;
        },
        get centralHeaderSize() {
          return Constants.CENHDR + _fnameLen + _extraLen + _comLen;
        },
        get realDataOffset() {
          return _offset + Constants.LOCHDR + _localHeader.fnameLen + _localHeader.extraLen;
        },
        get localHeader() {
          return _localHeader;
        },
        loadLocalHeaderFromBinary: function(input) {
          var data2 = input.slice(_offset, _offset + Constants.LOCHDR);
          if (data2.readUInt32LE(0) !== Constants.LOCSIG) {
            throw Utils.Errors.INVALID_LOC();
          }
          _localHeader.version = data2.readUInt16LE(Constants.LOCVER);
          _localHeader.flags = data2.readUInt16LE(Constants.LOCFLG);
          _localHeader.method = data2.readUInt16LE(Constants.LOCHOW);
          _localHeader.time = data2.readUInt32LE(Constants.LOCTIM);
          _localHeader.crc = data2.readUInt32LE(Constants.LOCCRC);
          _localHeader.compressedSize = data2.readUInt32LE(Constants.LOCSIZ);
          _localHeader.size = data2.readUInt32LE(Constants.LOCLEN);
          _localHeader.fnameLen = data2.readUInt16LE(Constants.LOCNAM);
          _localHeader.extraLen = data2.readUInt16LE(Constants.LOCEXT);
          const extraStart = _offset + Constants.LOCHDR + _localHeader.fnameLen;
          const extraEnd = extraStart + _localHeader.extraLen;
          return input.slice(extraStart, extraEnd);
        },
        loadFromBinary: function(data2) {
          if (data2.length !== Constants.CENHDR || data2.readUInt32LE(0) !== Constants.CENSIG) {
            throw Utils.Errors.INVALID_CEN();
          }
          _verMade = data2.readUInt16LE(Constants.CENVEM);
          _version = data2.readUInt16LE(Constants.CENVER);
          _flags = data2.readUInt16LE(Constants.CENFLG);
          _method = data2.readUInt16LE(Constants.CENHOW);
          _time = data2.readUInt32LE(Constants.CENTIM);
          _crc = data2.readUInt32LE(Constants.CENCRC);
          _compressedSize = data2.readUInt32LE(Constants.CENSIZ);
          _size = data2.readUInt32LE(Constants.CENLEN);
          _fnameLen = data2.readUInt16LE(Constants.CENNAM);
          _extraLen = data2.readUInt16LE(Constants.CENEXT);
          _comLen = data2.readUInt16LE(Constants.CENCOM);
          _diskStart = data2.readUInt16LE(Constants.CENDSK);
          _inattr = data2.readUInt16LE(Constants.CENATT);
          _attr = data2.readUInt32LE(Constants.CENATX);
          _offset = data2.readUInt32LE(Constants.CENOFF);
        },
        localHeaderToBinary: function() {
          var data2 = Buffer.alloc(Constants.LOCHDR);
          data2.writeUInt32LE(Constants.LOCSIG, 0);
          data2.writeUInt16LE(_version, Constants.LOCVER);
          data2.writeUInt16LE(_flags, Constants.LOCFLG);
          data2.writeUInt16LE(_method, Constants.LOCHOW);
          data2.writeUInt32LE(_time, Constants.LOCTIM);
          data2.writeUInt32LE(_crc, Constants.LOCCRC);
          data2.writeUInt32LE(_compressedSize, Constants.LOCSIZ);
          data2.writeUInt32LE(_size, Constants.LOCLEN);
          data2.writeUInt16LE(_fnameLen, Constants.LOCNAM);
          data2.writeUInt16LE(_localHeader.extraLen, Constants.LOCEXT);
          return data2;
        },
        centralHeaderToBinary: function() {
          var data2 = Buffer.alloc(Constants.CENHDR + _fnameLen + _extraLen + _comLen);
          data2.writeUInt32LE(Constants.CENSIG, 0);
          data2.writeUInt16LE(_verMade, Constants.CENVEM);
          data2.writeUInt16LE(_version, Constants.CENVER);
          data2.writeUInt16LE(_flags, Constants.CENFLG);
          data2.writeUInt16LE(_method, Constants.CENHOW);
          data2.writeUInt32LE(_time, Constants.CENTIM);
          data2.writeUInt32LE(_crc, Constants.CENCRC);
          data2.writeUInt32LE(_compressedSize, Constants.CENSIZ);
          data2.writeUInt32LE(_size, Constants.CENLEN);
          data2.writeUInt16LE(_fnameLen, Constants.CENNAM);
          data2.writeUInt16LE(_extraLen, Constants.CENEXT);
          data2.writeUInt16LE(_comLen, Constants.CENCOM);
          data2.writeUInt16LE(_diskStart, Constants.CENDSK);
          data2.writeUInt16LE(_inattr, Constants.CENATT);
          data2.writeUInt32LE(_attr, Constants.CENATX);
          data2.writeUInt32LE(_offset, Constants.CENOFF);
          return data2;
        },
        toJSON: function() {
          const bytes = function(nr) {
            return nr + " bytes";
          };
          return {
            made: _verMade,
            version: _version,
            flags: _flags,
            method: Utils.methodToString(_method),
            time: this.time,
            crc: "0x" + _crc.toString(16).toUpperCase(),
            compressedSize: bytes(_compressedSize),
            size: bytes(_size),
            fileNameLength: bytes(_fnameLen),
            extraLength: bytes(_extraLen),
            commentLength: bytes(_comLen),
            diskNumStart: _diskStart,
            inAttr: _inattr,
            attr: _attr,
            offset: _offset,
            centralHeaderSize: bytes(Constants.CENHDR + _fnameLen + _extraLen + _comLen)
          };
        },
        toString: function() {
          return JSON.stringify(this.toJSON(), null, "	");
        }
      };
    };
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/headers/mainHeader.js
var require_mainHeader = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/headers/mainHeader.js"(exports, module) {
    var Utils = require_util2();
    var Constants = Utils.Constants;
    module.exports = function() {
      var _volumeEntries = 0, _totalEntries = 0, _size = 0, _offset = 0, _commentLength = 0;
      return {
        get diskEntries() {
          return _volumeEntries;
        },
        set diskEntries(val) {
          _volumeEntries = _totalEntries = val;
        },
        get totalEntries() {
          return _totalEntries;
        },
        set totalEntries(val) {
          _totalEntries = _volumeEntries = val;
        },
        get size() {
          return _size;
        },
        set size(val) {
          _size = val;
        },
        get offset() {
          return _offset;
        },
        set offset(val) {
          _offset = val;
        },
        get commentLength() {
          return _commentLength;
        },
        set commentLength(val) {
          _commentLength = val;
        },
        get mainHeaderSize() {
          return Constants.ENDHDR + _commentLength;
        },
        loadFromBinary: function(data2) {
          if ((data2.length !== Constants.ENDHDR || data2.readUInt32LE(0) !== Constants.ENDSIG) && (data2.length < Constants.ZIP64HDR || data2.readUInt32LE(0) !== Constants.ZIP64SIG)) {
            throw Utils.Errors.INVALID_END();
          }
          if (data2.readUInt32LE(0) === Constants.ENDSIG) {
            _volumeEntries = data2.readUInt16LE(Constants.ENDSUB);
            _totalEntries = data2.readUInt16LE(Constants.ENDTOT);
            _size = data2.readUInt32LE(Constants.ENDSIZ);
            _offset = data2.readUInt32LE(Constants.ENDOFF);
            _commentLength = data2.readUInt16LE(Constants.ENDCOM);
          } else {
            _volumeEntries = Utils.readBigUInt64LE(data2, Constants.ZIP64SUB);
            _totalEntries = Utils.readBigUInt64LE(data2, Constants.ZIP64TOT);
            _size = Utils.readBigUInt64LE(data2, Constants.ZIP64SIZE);
            _offset = Utils.readBigUInt64LE(data2, Constants.ZIP64OFF);
            _commentLength = 0;
          }
        },
        toBinary: function() {
          var b3 = Buffer.alloc(Constants.ENDHDR + _commentLength);
          b3.writeUInt32LE(Constants.ENDSIG, 0);
          b3.writeUInt32LE(0, 4);
          b3.writeUInt16LE(_volumeEntries, Constants.ENDSUB);
          b3.writeUInt16LE(_totalEntries, Constants.ENDTOT);
          b3.writeUInt32LE(_size, Constants.ENDSIZ);
          b3.writeUInt32LE(_offset, Constants.ENDOFF);
          b3.writeUInt16LE(_commentLength, Constants.ENDCOM);
          b3.fill(" ", Constants.ENDHDR);
          return b3;
        },
        toJSON: function() {
          const offset2 = function(nr, len) {
            let offs = nr.toString(16).toUpperCase();
            while (offs.length < len) offs = "0" + offs;
            return "0x" + offs;
          };
          return {
            diskEntries: _volumeEntries,
            totalEntries: _totalEntries,
            size: _size + " bytes",
            offset: offset2(_offset, 4),
            commentLength: _commentLength
          };
        },
        toString: function() {
          return JSON.stringify(this.toJSON(), null, "	");
        }
      };
    };
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/headers/index.js
var require_headers = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/headers/index.js"(exports) {
    exports.EntryHeader = require_entryHeader();
    exports.MainHeader = require_mainHeader();
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/methods/deflater.js
var require_deflater = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/methods/deflater.js"(exports, module) {
    module.exports = function(inbuf) {
      var zlib6 = __require("zlib");
      var opts2 = { chunkSize: (parseInt(inbuf.length / 1024) + 1) * 1024 };
      return {
        deflate: function() {
          return zlib6.deflateRawSync(inbuf, opts2);
        },
        deflateAsync: function(callback) {
          var tmp = zlib6.createDeflateRaw(opts2), parts = [], total = 0;
          tmp.on("data", function(data2) {
            parts.push(data2);
            total += data2.length;
          });
          tmp.on("end", function() {
            var buf = Buffer.alloc(total), written = 0;
            buf.fill(0);
            for (var i5 = 0; i5 < parts.length; i5++) {
              var part = parts[i5];
              part.copy(buf, written);
              written += part.length;
            }
            callback && callback(buf);
          });
          tmp.end(inbuf);
        }
      };
    };
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/methods/inflater.js
var require_inflater = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/methods/inflater.js"(exports, module) {
    var version2 = +(process.versions ? process.versions.node : "").split(".")[0] || 0;
    module.exports = function(inbuf, expectedLength) {
      var zlib6 = __require("zlib");
      const option = version2 >= 15 && expectedLength > 0 ? { maxOutputLength: expectedLength } : {};
      return {
        inflate: function() {
          return zlib6.inflateRawSync(inbuf, option);
        },
        inflateAsync: function(callback) {
          var tmp = zlib6.createInflateRaw(option), parts = [], total = 0;
          tmp.on("data", function(data2) {
            parts.push(data2);
            total += data2.length;
          });
          tmp.on("end", function() {
            var buf = Buffer.alloc(total), written = 0;
            buf.fill(0);
            for (var i5 = 0; i5 < parts.length; i5++) {
              var part = parts[i5];
              part.copy(buf, written);
              written += part.length;
            }
            callback && callback(buf);
          });
          tmp.end(inbuf);
        }
      };
    };
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/methods/zipcrypto.js
var require_zipcrypto = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/methods/zipcrypto.js"(exports, module) {
    "use strict";
    var { randomFillSync } = __require("crypto");
    var Errors = require_errors3();
    var crctable = new Uint32Array(256).map((t4, crc) => {
      for (let j = 0; j < 8; j++) {
        if (0 !== (crc & 1)) {
          crc = crc >>> 1 ^ 3988292384;
        } else {
          crc >>>= 1;
        }
      }
      return crc >>> 0;
    });
    var uMul = (a5, b3) => Math.imul(a5, b3) >>> 0;
    var crc32update = (pCrc32, bval) => {
      return crctable[(pCrc32 ^ bval) & 255] ^ pCrc32 >>> 8;
    };
    var genSalt = () => {
      if ("function" === typeof randomFillSync) {
        return randomFillSync(Buffer.alloc(12));
      } else {
        return genSalt.node();
      }
    };
    genSalt.node = () => {
      const salt = Buffer.alloc(12);
      const len = salt.length;
      for (let i5 = 0; i5 < len; i5++) salt[i5] = Math.random() * 256 & 255;
      return salt;
    };
    var config = {
      genSalt
    };
    function Initkeys(pw) {
      const pass = Buffer.isBuffer(pw) ? pw : Buffer.from(pw);
      this.keys = new Uint32Array([305419896, 591751049, 878082192]);
      for (let i5 = 0; i5 < pass.length; i5++) {
        this.updateKeys(pass[i5]);
      }
    }
    Initkeys.prototype.updateKeys = function(byteValue) {
      const keys2 = this.keys;
      keys2[0] = crc32update(keys2[0], byteValue);
      keys2[1] += keys2[0] & 255;
      keys2[1] = uMul(keys2[1], 134775813) + 1;
      keys2[2] = crc32update(keys2[2], keys2[1] >>> 24);
      return byteValue;
    };
    Initkeys.prototype.next = function() {
      const k3 = (this.keys[2] | 2) >>> 0;
      return uMul(k3, k3 ^ 1) >> 8 & 255;
    };
    function make_decrypter(pwd) {
      const keys2 = new Initkeys(pwd);
      return function(data2) {
        const result = Buffer.alloc(data2.length);
        let pos = 0;
        for (let c6 of data2) {
          result[pos++] = keys2.updateKeys(c6 ^ keys2.next());
        }
        return result;
      };
    }
    function make_encrypter(pwd) {
      const keys2 = new Initkeys(pwd);
      return function(data2, result, pos = 0) {
        if (!result) result = Buffer.alloc(data2.length);
        for (let c6 of data2) {
          const k3 = keys2.next();
          result[pos++] = c6 ^ k3;
          keys2.updateKeys(c6);
        }
        return result;
      };
    }
    function decrypt(data2, header, pwd) {
      if (!data2 || !Buffer.isBuffer(data2) || data2.length < 12) {
        return Buffer.alloc(0);
      }
      const decrypter = make_decrypter(pwd);
      const salt = decrypter(data2.slice(0, 12));
      const verifyByte = (header.flags & 8) === 8 ? header.timeHighByte : header.crc >>> 24;
      if (salt[11] !== verifyByte) {
        throw Errors.WRONG_PASSWORD();
      }
      return decrypter(data2.slice(12));
    }
    function _salter(data2) {
      if (Buffer.isBuffer(data2) && data2.length >= 12) {
        config.genSalt = function() {
          return data2.slice(0, 12);
        };
      } else if (data2 === "node") {
        config.genSalt = genSalt.node;
      } else {
        config.genSalt = genSalt;
      }
    }
    function encrypt(data2, header, pwd, oldlike = false) {
      if (data2 == null) data2 = Buffer.alloc(0);
      if (!Buffer.isBuffer(data2)) data2 = Buffer.from(data2.toString());
      const encrypter = make_encrypter(pwd);
      const salt = config.genSalt();
      salt[11] = header.crc >>> 24 & 255;
      if (oldlike) salt[10] = header.crc >>> 16 & 255;
      const result = Buffer.alloc(data2.length + 12);
      encrypter(salt, result);
      return encrypter(data2, result, 12);
    }
    module.exports = { decrypt, encrypt, _salter };
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/methods/index.js
var require_methods = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/methods/index.js"(exports) {
    exports.Deflater = require_deflater();
    exports.Inflater = require_inflater();
    exports.ZipCrypto = require_zipcrypto();
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/zipEntry.js
var require_zipEntry = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/zipEntry.js"(exports, module) {
    var Utils = require_util2();
    var Headers = require_headers();
    var Constants = Utils.Constants;
    var Methods = require_methods();
    module.exports = function(options, input) {
      var _centralHeader = new Headers.EntryHeader(), _entryName = Buffer.alloc(0), _comment = Buffer.alloc(0), _isDirectory = false, uncompressedData = null, _extra = Buffer.alloc(0), _extralocal = Buffer.alloc(0), _efs = true;
      const opts2 = options;
      const decoder2 = typeof opts2.decoder === "object" ? opts2.decoder : Utils.decoder;
      _efs = decoder2.hasOwnProperty("efs") ? decoder2.efs : false;
      function getCompressedDataFromZip() {
        if (!input || !(input instanceof Uint8Array)) {
          return Buffer.alloc(0);
        }
        _extralocal = _centralHeader.loadLocalHeaderFromBinary(input);
        return input.slice(_centralHeader.realDataOffset, _centralHeader.realDataOffset + _centralHeader.compressedSize);
      }
      function crc32OK(data2) {
        if (!_centralHeader.flags_desc) {
          if (Utils.crc32(data2) !== _centralHeader.localHeader.crc) {
            return false;
          }
        } else {
          const descriptor = {};
          const dataEndOffset = _centralHeader.realDataOffset + _centralHeader.compressedSize;
          if (input.readUInt32LE(dataEndOffset) == Constants.LOCSIG || input.readUInt32LE(dataEndOffset) == Constants.CENSIG) {
            throw Utils.Errors.DESCRIPTOR_NOT_EXIST();
          }
          if (input.readUInt32LE(dataEndOffset) == Constants.EXTSIG) {
            descriptor.crc = input.readUInt32LE(dataEndOffset + Constants.EXTCRC);
            descriptor.compressedSize = input.readUInt32LE(dataEndOffset + Constants.EXTSIZ);
            descriptor.size = input.readUInt32LE(dataEndOffset + Constants.EXTLEN);
          } else if (input.readUInt16LE(dataEndOffset + 12) === 19280) {
            descriptor.crc = input.readUInt32LE(dataEndOffset + Constants.EXTCRC - 4);
            descriptor.compressedSize = input.readUInt32LE(dataEndOffset + Constants.EXTSIZ - 4);
            descriptor.size = input.readUInt32LE(dataEndOffset + Constants.EXTLEN - 4);
          } else {
            throw Utils.Errors.DESCRIPTOR_UNKNOWN();
          }
          if (descriptor.compressedSize !== _centralHeader.compressedSize || descriptor.size !== _centralHeader.size || descriptor.crc !== _centralHeader.crc) {
            throw Utils.Errors.DESCRIPTOR_FAULTY();
          }
          if (Utils.crc32(data2) !== descriptor.crc) {
            return false;
          }
        }
        return true;
      }
      function decompress(async, callback, pass) {
        if (typeof callback === "undefined" && typeof async === "string") {
          pass = async;
          async = void 0;
        }
        if (_isDirectory) {
          if (async && callback) {
            callback(Buffer.alloc(0), Utils.Errors.DIRECTORY_CONTENT_ERROR());
          }
          return Buffer.alloc(0);
        }
        var compressedData = getCompressedDataFromZip();
        if (compressedData.length === 0) {
          if (async && callback) callback(compressedData);
          return compressedData;
        }
        if (_centralHeader.encrypted) {
          if ("string" !== typeof pass && !Buffer.isBuffer(pass)) {
            throw Utils.Errors.INVALID_PASS_PARAM();
          }
          compressedData = Methods.ZipCrypto.decrypt(compressedData, _centralHeader, pass);
        }
        var data2 = Buffer.alloc(_centralHeader.size);
        switch (_centralHeader.method) {
          case Utils.Constants.STORED:
            compressedData.copy(data2);
            if (!crc32OK(data2)) {
              if (async && callback) callback(data2, Utils.Errors.BAD_CRC());
              throw Utils.Errors.BAD_CRC();
            } else {
              if (async && callback) callback(data2);
              return data2;
            }
          case Utils.Constants.DEFLATED:
            var inflater = new Methods.Inflater(compressedData, _centralHeader.size);
            if (!async) {
              const result = inflater.inflate(data2);
              result.copy(data2, 0);
              if (!crc32OK(data2)) {
                throw Utils.Errors.BAD_CRC(`"${decoder2.decode(_entryName)}"`);
              }
              return data2;
            } else {
              inflater.inflateAsync(function(result) {
                result.copy(result, 0);
                if (callback) {
                  if (!crc32OK(result)) {
                    callback(result, Utils.Errors.BAD_CRC());
                  } else {
                    callback(result);
                  }
                }
              });
            }
            break;
          default:
            if (async && callback) callback(Buffer.alloc(0), Utils.Errors.UNKNOWN_METHOD());
            throw Utils.Errors.UNKNOWN_METHOD();
        }
      }
      function compress(async, callback) {
        if ((!uncompressedData || !uncompressedData.length) && Buffer.isBuffer(input)) {
          if (async && callback) callback(getCompressedDataFromZip());
          return getCompressedDataFromZip();
        }
        if (uncompressedData.length && !_isDirectory) {
          var compressedData;
          switch (_centralHeader.method) {
            case Utils.Constants.STORED:
              _centralHeader.compressedSize = _centralHeader.size;
              compressedData = Buffer.alloc(uncompressedData.length);
              uncompressedData.copy(compressedData);
              if (async && callback) callback(compressedData);
              return compressedData;
            default:
            case Utils.Constants.DEFLATED:
              var deflater = new Methods.Deflater(uncompressedData);
              if (!async) {
                var deflated = deflater.deflate();
                _centralHeader.compressedSize = deflated.length;
                return deflated;
              } else {
                deflater.deflateAsync(function(data2) {
                  compressedData = Buffer.alloc(data2.length);
                  _centralHeader.compressedSize = data2.length;
                  data2.copy(compressedData);
                  callback && callback(compressedData);
                });
              }
              deflater = null;
              break;
          }
        } else if (async && callback) {
          callback(Buffer.alloc(0));
        } else {
          return Buffer.alloc(0);
        }
      }
      function readUInt64LE(buffer, offset2) {
        return (buffer.readUInt32LE(offset2 + 4) << 4) + buffer.readUInt32LE(offset2);
      }
      function parseExtra(data2) {
        try {
          var offset2 = 0;
          var signature, size, part;
          while (offset2 + 4 < data2.length) {
            signature = data2.readUInt16LE(offset2);
            offset2 += 2;
            size = data2.readUInt16LE(offset2);
            offset2 += 2;
            part = data2.slice(offset2, offset2 + size);
            offset2 += size;
            if (Constants.ID_ZIP64 === signature) {
              parseZip64ExtendedInformation(part);
            }
          }
        } catch (error) {
          throw Utils.Errors.EXTRA_FIELD_PARSE_ERROR();
        }
      }
      function parseZip64ExtendedInformation(data2) {
        var size, compressedSize, offset2, diskNumStart;
        if (data2.length >= Constants.EF_ZIP64_SCOMP) {
          size = readUInt64LE(data2, Constants.EF_ZIP64_SUNCOMP);
          if (_centralHeader.size === Constants.EF_ZIP64_OR_32) {
            _centralHeader.size = size;
          }
        }
        if (data2.length >= Constants.EF_ZIP64_RHO) {
          compressedSize = readUInt64LE(data2, Constants.EF_ZIP64_SCOMP);
          if (_centralHeader.compressedSize === Constants.EF_ZIP64_OR_32) {
            _centralHeader.compressedSize = compressedSize;
          }
        }
        if (data2.length >= Constants.EF_ZIP64_DSN) {
          offset2 = readUInt64LE(data2, Constants.EF_ZIP64_RHO);
          if (_centralHeader.offset === Constants.EF_ZIP64_OR_32) {
            _centralHeader.offset = offset2;
          }
        }
        if (data2.length >= Constants.EF_ZIP64_DSN + 4) {
          diskNumStart = data2.readUInt32LE(Constants.EF_ZIP64_DSN);
          if (_centralHeader.diskNumStart === Constants.EF_ZIP64_OR_16) {
            _centralHeader.diskNumStart = diskNumStart;
          }
        }
      }
      return {
        get entryName() {
          return decoder2.decode(_entryName);
        },
        get rawEntryName() {
          return _entryName;
        },
        set entryName(val) {
          _entryName = Utils.toBuffer(val, decoder2.encode);
          var lastChar = _entryName[_entryName.length - 1];
          _isDirectory = lastChar === 47 || lastChar === 92;
          _centralHeader.fileNameLength = _entryName.length;
        },
        get efs() {
          if (typeof _efs === "function") {
            return _efs(this.entryName);
          } else {
            return _efs;
          }
        },
        get extra() {
          return _extra;
        },
        set extra(val) {
          _extra = val;
          _centralHeader.extraLength = val.length;
          parseExtra(val);
        },
        get comment() {
          return decoder2.decode(_comment);
        },
        set comment(val) {
          _comment = Utils.toBuffer(val, decoder2.encode);
          _centralHeader.commentLength = _comment.length;
          if (_comment.length > 65535) throw Utils.Errors.COMMENT_TOO_LONG();
        },
        get name() {
          var n6 = decoder2.decode(_entryName);
          return _isDirectory ? n6.substr(n6.length - 1).split("/").pop() : n6.split("/").pop();
        },
        get isDirectory() {
          return _isDirectory;
        },
        getCompressedData: function() {
          return compress(false, null);
        },
        getCompressedDataAsync: function(callback) {
          compress(true, callback);
        },
        setData: function(value2) {
          uncompressedData = Utils.toBuffer(value2, Utils.decoder.encode);
          if (!_isDirectory && uncompressedData.length) {
            _centralHeader.size = uncompressedData.length;
            _centralHeader.method = Utils.Constants.DEFLATED;
            _centralHeader.crc = Utils.crc32(value2);
            _centralHeader.changed = true;
          } else {
            _centralHeader.method = Utils.Constants.STORED;
          }
        },
        getData: function(pass) {
          if (_centralHeader.changed) {
            return uncompressedData;
          } else {
            return decompress(false, null, pass);
          }
        },
        getDataAsync: function(callback, pass) {
          if (_centralHeader.changed) {
            callback(uncompressedData);
          } else {
            decompress(true, callback, pass);
          }
        },
        set attr(attr) {
          _centralHeader.attr = attr;
        },
        get attr() {
          return _centralHeader.attr;
        },
        set header(data2) {
          _centralHeader.loadFromBinary(data2);
        },
        get header() {
          return _centralHeader;
        },
        packCentralHeader: function() {
          _centralHeader.flags_efs = this.efs;
          _centralHeader.extraLength = _extra.length;
          var header = _centralHeader.centralHeaderToBinary();
          var addpos = Utils.Constants.CENHDR;
          _entryName.copy(header, addpos);
          addpos += _entryName.length;
          _extra.copy(header, addpos);
          addpos += _centralHeader.extraLength;
          _comment.copy(header, addpos);
          return header;
        },
        packLocalHeader: function() {
          let addpos = 0;
          _centralHeader.flags_efs = this.efs;
          _centralHeader.extraLocalLength = _extralocal.length;
          const localHeaderBuf = _centralHeader.localHeaderToBinary();
          const localHeader = Buffer.alloc(localHeaderBuf.length + _entryName.length + _centralHeader.extraLocalLength);
          localHeaderBuf.copy(localHeader, addpos);
          addpos += localHeaderBuf.length;
          _entryName.copy(localHeader, addpos);
          addpos += _entryName.length;
          _extralocal.copy(localHeader, addpos);
          addpos += _extralocal.length;
          return localHeader;
        },
        toJSON: function() {
          const bytes = function(nr) {
            return "<" + (nr && nr.length + " bytes buffer" || "null") + ">";
          };
          return {
            entryName: this.entryName,
            name: this.name,
            comment: this.comment,
            isDirectory: this.isDirectory,
            header: _centralHeader.toJSON(),
            compressedData: bytes(input),
            data: bytes(uncompressedData)
          };
        },
        toString: function() {
          return JSON.stringify(this.toJSON(), null, "	");
        }
      };
    };
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/zipFile.js
var require_zipFile = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/zipFile.js"(exports, module) {
    var ZipEntry = require_zipEntry();
    var Headers = require_headers();
    var Utils = require_util2();
    module.exports = function(inBuffer, options) {
      var entryList = [], entryTable = {}, _comment = Buffer.alloc(0), mainHeader = new Headers.MainHeader(), loadedEntries = false;
      var password = null;
      const temporary = /* @__PURE__ */ new Set();
      const opts2 = options;
      const { noSort, decoder: decoder2 } = opts2;
      if (inBuffer) {
        readMainHeader(opts2.readEntries);
      } else {
        loadedEntries = true;
      }
      function makeTemporaryFolders() {
        const foldersList = /* @__PURE__ */ new Set();
        for (const elem of Object.keys(entryTable)) {
          const elements = elem.split("/");
          elements.pop();
          if (!elements.length) continue;
          for (let i5 = 0; i5 < elements.length; i5++) {
            const sub = elements.slice(0, i5 + 1).join("/") + "/";
            foldersList.add(sub);
          }
        }
        for (const elem of foldersList) {
          if (!(elem in entryTable)) {
            const tempfolder = new ZipEntry(opts2);
            tempfolder.entryName = elem;
            tempfolder.attr = 16;
            tempfolder.temporary = true;
            entryList.push(tempfolder);
            entryTable[tempfolder.entryName] = tempfolder;
            temporary.add(tempfolder);
          }
        }
      }
      function readEntries() {
        loadedEntries = true;
        entryTable = {};
        if (mainHeader.diskEntries > (inBuffer.length - mainHeader.offset) / Utils.Constants.CENHDR) {
          throw Utils.Errors.DISK_ENTRY_TOO_LARGE();
        }
        entryList = new Array(mainHeader.diskEntries);
        var index2 = mainHeader.offset;
        for (var i5 = 0; i5 < entryList.length; i5++) {
          var tmp = index2, entry = new ZipEntry(opts2, inBuffer);
          entry.header = inBuffer.slice(tmp, tmp += Utils.Constants.CENHDR);
          entry.entryName = inBuffer.slice(tmp, tmp += entry.header.fileNameLength);
          if (entry.header.extraLength) {
            entry.extra = inBuffer.slice(tmp, tmp += entry.header.extraLength);
          }
          if (entry.header.commentLength) entry.comment = inBuffer.slice(tmp, tmp + entry.header.commentLength);
          index2 += entry.header.centralHeaderSize;
          entryList[i5] = entry;
          entryTable[entry.entryName] = entry;
        }
        temporary.clear();
        makeTemporaryFolders();
      }
      function readMainHeader(readNow) {
        var i5 = inBuffer.length - Utils.Constants.ENDHDR, max3 = Math.max(0, i5 - 65535), n6 = max3, endStart = inBuffer.length, endOffset = -1, commentEnd = 0;
        const trailingSpace = typeof opts2.trailingSpace === "boolean" ? opts2.trailingSpace : false;
        if (trailingSpace) max3 = 0;
        for (i5; i5 >= n6; i5--) {
          if (inBuffer[i5] !== 80) continue;
          if (inBuffer.readUInt32LE(i5) === Utils.Constants.ENDSIG) {
            endOffset = i5;
            commentEnd = i5;
            endStart = i5 + Utils.Constants.ENDHDR;
            n6 = i5 - Utils.Constants.END64HDR;
            continue;
          }
          if (inBuffer.readUInt32LE(i5) === Utils.Constants.END64SIG) {
            n6 = max3;
            continue;
          }
          if (inBuffer.readUInt32LE(i5) === Utils.Constants.ZIP64SIG) {
            endOffset = i5;
            endStart = i5 + Utils.readBigUInt64LE(inBuffer, i5 + Utils.Constants.ZIP64SIZE) + Utils.Constants.ZIP64LEAD;
            break;
          }
        }
        if (endOffset == -1) throw Utils.Errors.INVALID_FORMAT();
        mainHeader.loadFromBinary(inBuffer.slice(endOffset, endStart));
        if (mainHeader.commentLength) {
          _comment = inBuffer.slice(commentEnd + Utils.Constants.ENDHDR);
        }
        if (readNow) readEntries();
      }
      function sortEntries() {
        if (entryList.length > 1 && !noSort) {
          entryList.sort((a5, b3) => a5.entryName.toLowerCase().localeCompare(b3.entryName.toLowerCase()));
        }
      }
      return {
        /**
         * Returns an array of ZipEntry objects existent in the current opened archive
         * @return Array
         */
        get entries() {
          if (!loadedEntries) {
            readEntries();
          }
          return entryList.filter((e4) => !temporary.has(e4));
        },
        /**
         * Archive comment
         * @return {String}
         */
        get comment() {
          return decoder2.decode(_comment);
        },
        set comment(val) {
          _comment = Utils.toBuffer(val, decoder2.encode);
          mainHeader.commentLength = _comment.length;
        },
        getEntryCount: function() {
          if (!loadedEntries) {
            return mainHeader.diskEntries;
          }
          return entryList.length;
        },
        forEach: function(callback) {
          this.entries.forEach(callback);
        },
        /**
         * Returns a reference to the entry with the given name or null if entry is inexistent
         *
         * @param entryName
         * @return ZipEntry
         */
        getEntry: function(entryName) {
          if (!loadedEntries) {
            readEntries();
          }
          return entryTable[entryName] || null;
        },
        /**
         * Adds the given entry to the entry list
         *
         * @param entry
         */
        setEntry: function(entry) {
          if (!loadedEntries) {
            readEntries();
          }
          entryList.push(entry);
          entryTable[entry.entryName] = entry;
          mainHeader.totalEntries = entryList.length;
        },
        /**
         * Removes the file with the given name from the entry list.
         *
         * If the entry is a directory, then all nested files and directories will be removed
         * @param entryName
         * @returns {void}
         */
        deleteFile: function(entryName, withsubfolders = true) {
          if (!loadedEntries) {
            readEntries();
          }
          const entry = entryTable[entryName];
          const list = this.getEntryChildren(entry, withsubfolders).map((child) => child.entryName);
          list.forEach(this.deleteEntry);
        },
        /**
         * Removes the entry with the given name from the entry list.
         *
         * @param {string} entryName
         * @returns {void}
         */
        deleteEntry: function(entryName) {
          if (!loadedEntries) {
            readEntries();
          }
          const entry = entryTable[entryName];
          const index2 = entryList.indexOf(entry);
          if (index2 >= 0) {
            entryList.splice(index2, 1);
            delete entryTable[entryName];
            mainHeader.totalEntries = entryList.length;
          }
        },
        /**
         *  Iterates and returns all nested files and directories of the given entry
         *
         * @param entry
         * @return Array
         */
        getEntryChildren: function(entry, subfolders = true) {
          if (!loadedEntries) {
            readEntries();
          }
          if (typeof entry === "object") {
            if (entry.isDirectory && subfolders) {
              const list = [];
              const name = entry.entryName;
              for (const zipEntry of entryList) {
                if (zipEntry.entryName.startsWith(name)) {
                  list.push(zipEntry);
                }
              }
              return list;
            } else {
              return [entry];
            }
          }
          return [];
        },
        /**
         *  How many child elements entry has
         *
         * @param {ZipEntry} entry
         * @return {integer}
         */
        getChildCount: function(entry) {
          if (entry && entry.isDirectory) {
            const list = this.getEntryChildren(entry);
            return list.includes(entry) ? list.length - 1 : list.length;
          }
          return 0;
        },
        /**
         * Returns the zip file
         *
         * @return Buffer
         */
        compressToBuffer: function() {
          if (!loadedEntries) {
            readEntries();
          }
          sortEntries();
          const dataBlock = [];
          const headerBlocks = [];
          let totalSize = 0;
          let dindex = 0;
          mainHeader.size = 0;
          mainHeader.offset = 0;
          let totalEntries = 0;
          for (const entry of this.entries) {
            const compressedData = entry.getCompressedData();
            entry.header.offset = dindex;
            const localHeader = entry.packLocalHeader();
            const dataLength = localHeader.length + compressedData.length;
            dindex += dataLength;
            dataBlock.push(localHeader);
            dataBlock.push(compressedData);
            const centralHeader = entry.packCentralHeader();
            headerBlocks.push(centralHeader);
            mainHeader.size += centralHeader.length;
            totalSize += dataLength + centralHeader.length;
            totalEntries++;
          }
          totalSize += mainHeader.mainHeaderSize;
          mainHeader.offset = dindex;
          mainHeader.totalEntries = totalEntries;
          dindex = 0;
          const outBuffer = Buffer.alloc(totalSize);
          for (const content of dataBlock) {
            content.copy(outBuffer, dindex);
            dindex += content.length;
          }
          for (const content of headerBlocks) {
            content.copy(outBuffer, dindex);
            dindex += content.length;
          }
          const mh = mainHeader.toBinary();
          if (_comment) {
            _comment.copy(mh, Utils.Constants.ENDHDR);
          }
          mh.copy(outBuffer, dindex);
          inBuffer = outBuffer;
          loadedEntries = false;
          return outBuffer;
        },
        toAsyncBuffer: function(onSuccess, onFail, onItemStart, onItemEnd) {
          try {
            if (!loadedEntries) {
              readEntries();
            }
            sortEntries();
            const dataBlock = [];
            const centralHeaders = [];
            let totalSize = 0;
            let dindex = 0;
            let totalEntries = 0;
            mainHeader.size = 0;
            mainHeader.offset = 0;
            const compress2Buffer = function(entryLists) {
              if (entryLists.length > 0) {
                const entry = entryLists.shift();
                const name = entry.entryName + entry.extra.toString();
                if (onItemStart) onItemStart(name);
                entry.getCompressedDataAsync(function(compressedData) {
                  if (onItemEnd) onItemEnd(name);
                  entry.header.offset = dindex;
                  const localHeader = entry.packLocalHeader();
                  const dataLength = localHeader.length + compressedData.length;
                  dindex += dataLength;
                  dataBlock.push(localHeader);
                  dataBlock.push(compressedData);
                  const centalHeader = entry.packCentralHeader();
                  centralHeaders.push(centalHeader);
                  mainHeader.size += centalHeader.length;
                  totalSize += dataLength + centalHeader.length;
                  totalEntries++;
                  compress2Buffer(entryLists);
                });
              } else {
                totalSize += mainHeader.mainHeaderSize;
                mainHeader.offset = dindex;
                mainHeader.totalEntries = totalEntries;
                dindex = 0;
                const outBuffer = Buffer.alloc(totalSize);
                dataBlock.forEach(function(content) {
                  content.copy(outBuffer, dindex);
                  dindex += content.length;
                });
                centralHeaders.forEach(function(content) {
                  content.copy(outBuffer, dindex);
                  dindex += content.length;
                });
                const mh = mainHeader.toBinary();
                if (_comment) {
                  _comment.copy(mh, Utils.Constants.ENDHDR);
                }
                mh.copy(outBuffer, dindex);
                inBuffer = outBuffer;
                loadedEntries = false;
                onSuccess(outBuffer);
              }
            };
            compress2Buffer(Array.from(this.entries));
          } catch (e4) {
            onFail(e4);
          }
        }
      };
    };
  }
});

// ../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/adm-zip.js
var require_adm_zip = __commonJS({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/adm-zip.js"(exports, module) {
    var Utils = require_util2();
    var pth = __require("path");
    var ZipEntry = require_zipEntry();
    var ZipFile = require_zipFile();
    var get_Bool = (...val) => Utils.findLast(val, (c6) => typeof c6 === "boolean");
    var get_Str = (...val) => Utils.findLast(val, (c6) => typeof c6 === "string");
    var get_Fun = (...val) => Utils.findLast(val, (c6) => typeof c6 === "function");
    var defaultOptions2 = {
      // option "noSort" : if true it disables files sorting
      noSort: false,
      // read entries during load (initial loading may be slower)
      readEntries: false,
      // default method is none
      method: Utils.Constants.NONE,
      // file system
      fs: null
    };
    module.exports = function(input, options) {
      let inBuffer = null;
      const opts2 = Object.assign(/* @__PURE__ */ Object.create(null), defaultOptions2);
      if (input && "object" === typeof input) {
        if (!(input instanceof Uint8Array)) {
          Object.assign(opts2, input);
          input = opts2.input ? opts2.input : void 0;
          if (opts2.input) delete opts2.input;
        }
        if (Buffer.isBuffer(input)) {
          inBuffer = input;
          opts2.method = Utils.Constants.BUFFER;
          input = void 0;
        }
      }
      Object.assign(opts2, options);
      const filetools = new Utils(opts2);
      if (typeof opts2.decoder !== "object" || typeof opts2.decoder.encode !== "function" || typeof opts2.decoder.decode !== "function") {
        opts2.decoder = Utils.decoder;
      }
      if (input && "string" === typeof input) {
        if (filetools.fs.existsSync(input)) {
          opts2.method = Utils.Constants.FILE;
          opts2.filename = input;
          inBuffer = filetools.fs.readFileSync(input);
        } else {
          throw Utils.Errors.INVALID_FILENAME();
        }
      }
      const _zip = new ZipFile(inBuffer, opts2);
      const { canonical, sanitize, zipnamefix } = Utils;
      function getEntry(entry) {
        if (entry && _zip) {
          var item;
          if (typeof entry === "string") item = _zip.getEntry(pth.posix.normalize(entry));
          if (typeof entry === "object" && typeof entry.entryName !== "undefined" && typeof entry.header !== "undefined") item = _zip.getEntry(entry.entryName);
          if (item) {
            return item;
          }
        }
        return null;
      }
      function fixPath(zipPath) {
        const { join: join2, normalize: normalize4, sep } = pth.posix;
        return join2(".", normalize4(sep + zipPath.split("\\").join(sep) + sep));
      }
      function filenameFilter(filterfn) {
        if (filterfn instanceof RegExp) {
          return /* @__PURE__ */ (function(rx) {
            return function(filename) {
              return rx.test(filename);
            };
          })(filterfn);
        } else if ("function" !== typeof filterfn) {
          return () => true;
        }
        return filterfn;
      }
      const relativePath = (local, entry) => {
        let lastChar = entry.slice(-1);
        lastChar = lastChar === filetools.sep ? filetools.sep : "";
        return pth.relative(local, entry) + lastChar;
      };
      return {
        /**
         * Extracts the given entry from the archive and returns the content as a Buffer object
         * @param {ZipEntry|string} entry ZipEntry object or String with the full path of the entry
         * @param {Buffer|string} [pass] - password
         * @return Buffer or Null in case of error
         */
        readFile: function(entry, pass) {
          var item = getEntry(entry);
          return item && item.getData(pass) || null;
        },
        /**
         * Returns how many child elements has on entry (directories) on files it is always 0
         * @param {ZipEntry|string} entry ZipEntry object or String with the full path of the entry
         * @returns {integer}
         */
        childCount: function(entry) {
          const item = getEntry(entry);
          if (item) {
            return _zip.getChildCount(item);
          }
        },
        /**
         * Asynchronous readFile
         * @param {ZipEntry|string} entry ZipEntry object or String with the full path of the entry
         * @param {callback} callback
         *
         * @return Buffer or Null in case of error
         */
        readFileAsync: function(entry, callback) {
          var item = getEntry(entry);
          if (item) {
            item.getDataAsync(callback);
          } else {
            callback(null, "getEntry failed for:" + entry);
          }
        },
        /**
         * Extracts the given entry from the archive and returns the content as plain text in the given encoding
         * @param {ZipEntry|string} entry - ZipEntry object or String with the full path of the entry
         * @param {string} encoding - Optional. If no encoding is specified utf8 is used
         *
         * @return String
         */
        readAsText: function(entry, encoding) {
          var item = getEntry(entry);
          if (item) {
            var data2 = item.getData();
            if (data2 && data2.length) {
              return data2.toString(encoding || "utf8");
            }
          }
          return "";
        },
        /**
         * Asynchronous readAsText
         * @param {ZipEntry|string} entry ZipEntry object or String with the full path of the entry
         * @param {callback} callback
         * @param {string} [encoding] - Optional. If no encoding is specified utf8 is used
         *
         * @return String
         */
        readAsTextAsync: function(entry, callback, encoding) {
          var item = getEntry(entry);
          if (item) {
            item.getDataAsync(function(data2, err2) {
              if (err2) {
                callback(data2, err2);
                return;
              }
              if (data2 && data2.length) {
                callback(data2.toString(encoding || "utf8"));
              } else {
                callback("");
              }
            });
          } else {
            callback("");
          }
        },
        /**
         * Remove the entry from the file or the entry and all it's nested directories and files if the given entry is a directory
         *
         * @param {ZipEntry|string} entry
         * @returns {void}
         */
        deleteFile: function(entry, withsubfolders = true) {
          var item = getEntry(entry);
          if (item) {
            _zip.deleteFile(item.entryName, withsubfolders);
          }
        },
        /**
         * Remove the entry from the file or directory without affecting any nested entries
         *
         * @param {ZipEntry|string} entry
         * @returns {void}
         */
        deleteEntry: function(entry) {
          var item = getEntry(entry);
          if (item) {
            _zip.deleteEntry(item.entryName);
          }
        },
        /**
         * Adds a comment to the zip. The zip must be rewritten after adding the comment.
         *
         * @param {string} comment
         */
        addZipComment: function(comment) {
          _zip.comment = comment;
        },
        /**
         * Returns the zip comment
         *
         * @return String
         */
        getZipComment: function() {
          return _zip.comment || "";
        },
        /**
         * Adds a comment to a specified zipEntry. The zip must be rewritten after adding the comment
         * The comment cannot exceed 65535 characters in length
         *
         * @param {ZipEntry} entry
         * @param {string} comment
         */
        addZipEntryComment: function(entry, comment) {
          var item = getEntry(entry);
          if (item) {
            item.comment = comment;
          }
        },
        /**
         * Returns the comment of the specified entry
         *
         * @param {ZipEntry} entry
         * @return String
         */
        getZipEntryComment: function(entry) {
          var item = getEntry(entry);
          if (item) {
            return item.comment || "";
          }
          return "";
        },
        /**
         * Updates the content of an existing entry inside the archive. The zip must be rewritten after updating the content
         *
         * @param {ZipEntry} entry
         * @param {Buffer} content
         */
        updateFile: function(entry, content) {
          var item = getEntry(entry);
          if (item) {
            item.setData(content);
          }
        },
        /**
         * Adds a file from the disk to the archive
         *
         * @param {string} localPath File to add to zip
         * @param {string} [zipPath] Optional path inside the zip
         * @param {string} [zipName] Optional name for the file
         * @param {string} [comment] Optional file comment
         */
        addLocalFile: function(localPath2, zipPath, zipName, comment) {
          if (filetools.fs.existsSync(localPath2)) {
            zipPath = zipPath ? fixPath(zipPath) : "";
            const p3 = pth.win32.basename(pth.win32.normalize(localPath2));
            zipPath += zipName ? zipName : p3;
            const _attr = filetools.fs.statSync(localPath2);
            const data2 = _attr.isFile() ? filetools.fs.readFileSync(localPath2) : Buffer.alloc(0);
            if (_attr.isDirectory()) zipPath += filetools.sep;
            this.addFile(zipPath, data2, comment, _attr);
          } else {
            throw Utils.Errors.FILE_NOT_FOUND(localPath2);
          }
        },
        /**
         * Callback for showing if everything was done.
         *
         * @callback doneCallback
         * @param {Error} err - Error object
         * @param {boolean} done - was request fully completed
         */
        /**
         * Adds a file from the disk to the archive
         *
         * @param {(object|string)} options - options object, if it is string it us used as localPath.
         * @param {string} options.localPath - Local path to the file.
         * @param {string} [options.comment] - Optional file comment.
         * @param {string} [options.zipPath] - Optional path inside the zip
         * @param {string} [options.zipName] - Optional name for the file
         * @param {doneCallback} callback - The callback that handles the response.
         */
        addLocalFileAsync: function(options2, callback) {
          options2 = typeof options2 === "object" ? options2 : { localPath: options2 };
          const localPath2 = pth.resolve(options2.localPath);
          const { comment } = options2;
          let { zipPath, zipName } = options2;
          const self2 = this;
          filetools.fs.stat(localPath2, function(err2, stats) {
            if (err2) return callback(err2, false);
            zipPath = zipPath ? fixPath(zipPath) : "";
            const p3 = pth.win32.basename(pth.win32.normalize(localPath2));
            zipPath += zipName ? zipName : p3;
            if (stats.isFile()) {
              filetools.fs.readFile(localPath2, function(err3, data2) {
                if (err3) return callback(err3, false);
                self2.addFile(zipPath, data2, comment, stats);
                return setImmediate(callback, void 0, true);
              });
            } else if (stats.isDirectory()) {
              zipPath += filetools.sep;
              self2.addFile(zipPath, Buffer.alloc(0), comment, stats);
              return setImmediate(callback, void 0, true);
            }
          });
        },
        /**
         * Adds a local directory and all its nested files and directories to the archive
         *
         * @param {string} localPath - local path to the folder
         * @param {string} [zipPath] - optional path inside zip
         * @param {(RegExp|function)} [filter] - optional RegExp or Function if files match will be included.
         */
        addLocalFolder: function(localPath2, zipPath, filter3) {
          filter3 = filenameFilter(filter3);
          zipPath = zipPath ? fixPath(zipPath) : "";
          localPath2 = pth.normalize(localPath2);
          if (filetools.fs.existsSync(localPath2)) {
            const items = filetools.findFiles(localPath2);
            const self2 = this;
            if (items.length) {
              for (const filepath of items) {
                const p3 = pth.join(zipPath, relativePath(localPath2, filepath));
                if (filter3(p3)) {
                  self2.addLocalFile(filepath, pth.dirname(p3));
                }
              }
            }
          } else {
            throw Utils.Errors.FILE_NOT_FOUND(localPath2);
          }
        },
        /**
         * Asynchronous addLocalFolder
         * @param {string} localPath
         * @param {callback} callback
         * @param {string} [zipPath] optional path inside zip
         * @param {RegExp|function} [filter] optional RegExp or Function if files match will
         *               be included.
         */
        addLocalFolderAsync: function(localPath2, callback, zipPath, filter3) {
          filter3 = filenameFilter(filter3);
          zipPath = zipPath ? fixPath(zipPath) : "";
          localPath2 = pth.normalize(localPath2);
          var self2 = this;
          filetools.fs.open(localPath2, "r", function(err2) {
            if (err2 && err2.code === "ENOENT") {
              callback(void 0, Utils.Errors.FILE_NOT_FOUND(localPath2));
            } else if (err2) {
              callback(void 0, err2);
            } else {
              var items = filetools.findFiles(localPath2);
              var i5 = -1;
              var next = function() {
                i5 += 1;
                if (i5 < items.length) {
                  var filepath = items[i5];
                  var p3 = relativePath(localPath2, filepath).split("\\").join("/");
                  p3 = p3.normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^\x20-\x7E]/g, "");
                  if (filter3(p3)) {
                    filetools.fs.stat(filepath, function(er0, stats) {
                      if (er0) callback(void 0, er0);
                      if (stats.isFile()) {
                        filetools.fs.readFile(filepath, function(er1, data2) {
                          if (er1) {
                            callback(void 0, er1);
                          } else {
                            self2.addFile(zipPath + p3, data2, "", stats);
                            next();
                          }
                        });
                      } else {
                        self2.addFile(zipPath + p3 + "/", Buffer.alloc(0), "", stats);
                        next();
                      }
                    });
                  } else {
                    process.nextTick(() => {
                      next();
                    });
                  }
                } else {
                  callback(true, void 0);
                }
              };
              next();
            }
          });
        },
        /**
         * Adds a local directory and all its nested files and directories to the archive
         *
         * @param {object | string} options - options object, if it is string it us used as localPath.
         * @param {string} options.localPath - Local path to the folder.
         * @param {string} [options.zipPath] - optional path inside zip.
         * @param {RegExp|function} [options.filter] - optional RegExp or Function if files match will be included.
         * @param {function|string} [options.namefix] - optional function to help fix filename
         * @param {doneCallback} callback - The callback that handles the response.
         *
         */
        addLocalFolderAsync2: function(options2, callback) {
          const self2 = this;
          options2 = typeof options2 === "object" ? options2 : { localPath: options2 };
          localPath = pth.resolve(fixPath(options2.localPath));
          let { zipPath, filter: filter3, namefix } = options2;
          if (filter3 instanceof RegExp) {
            filter3 = /* @__PURE__ */ (function(rx) {
              return function(filename) {
                return rx.test(filename);
              };
            })(filter3);
          } else if ("function" !== typeof filter3) {
            filter3 = function() {
              return true;
            };
          }
          zipPath = zipPath ? fixPath(zipPath) : "";
          if (namefix == "latin1") {
            namefix = (str) => str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^\x20-\x7E]/g, "");
          }
          if (typeof namefix !== "function") namefix = (str) => str;
          const relPathFix = (entry) => pth.join(zipPath, namefix(relativePath(localPath, entry)));
          const fileNameFix = (entry) => pth.win32.basename(pth.win32.normalize(namefix(entry)));
          filetools.fs.open(localPath, "r", function(err2) {
            if (err2 && err2.code === "ENOENT") {
              callback(void 0, Utils.Errors.FILE_NOT_FOUND(localPath));
            } else if (err2) {
              callback(void 0, err2);
            } else {
              filetools.findFilesAsync(localPath, function(err3, fileEntries) {
                if (err3) return callback(err3);
                fileEntries = fileEntries.filter((dir) => filter3(relPathFix(dir)));
                if (!fileEntries.length) callback(void 0, false);
                setImmediate(
                  fileEntries.reverse().reduce(function(next, entry) {
                    return function(err4, done) {
                      if (err4 || done === false) return setImmediate(next, err4, false);
                      self2.addLocalFileAsync(
                        {
                          localPath: entry,
                          zipPath: pth.dirname(relPathFix(entry)),
                          zipName: fileNameFix(entry)
                        },
                        next
                      );
                    };
                  }, callback)
                );
              });
            }
          });
        },
        /**
         * Adds a local directory and all its nested files and directories to the archive
         *
         * @param {string} localPath - path where files will be extracted
         * @param {object} props - optional properties
         * @param {string} [props.zipPath] - optional path inside zip
         * @param {RegExp|function} [props.filter] - optional RegExp or Function if files match will be included.
         * @param {function|string} [props.namefix] - optional function to help fix filename
         */
        addLocalFolderPromise: function(localPath2, props) {
          return new Promise((resolve4, reject) => {
            this.addLocalFolderAsync2(Object.assign({ localPath: localPath2 }, props), (err2, done) => {
              if (err2) reject(err2);
              if (done) resolve4(this);
            });
          });
        },
        /**
         * Allows you to create a entry (file or directory) in the zip file.
         * If you want to create a directory the entryName must end in / and a null buffer should be provided.
         * Comment and attributes are optional
         *
         * @param {string} entryName
         * @param {Buffer | string} content - file content as buffer or utf8 coded string
         * @param {string} [comment] - file comment
         * @param {number | object} [attr] - number as unix file permissions, object as filesystem Stats object
         */
        addFile: function(entryName, content, comment, attr) {
          entryName = zipnamefix(entryName);
          let entry = getEntry(entryName);
          const update = entry != null;
          if (!update) {
            entry = new ZipEntry(opts2);
            entry.entryName = entryName;
          }
          entry.comment = comment || "";
          const isStat = "object" === typeof attr && attr instanceof filetools.fs.Stats;
          if (isStat) {
            entry.header.time = attr.mtime;
          }
          var fileattr = entry.isDirectory ? 16 : 0;
          let unix = entry.isDirectory ? 16384 : 32768;
          if (isStat) {
            unix |= 4095 & attr.mode;
          } else if ("number" === typeof attr) {
            unix |= 4095 & attr;
          } else {
            unix |= entry.isDirectory ? 493 : 420;
          }
          fileattr = (fileattr | unix << 16) >>> 0;
          entry.attr = fileattr;
          entry.setData(content);
          if (!update) _zip.setEntry(entry);
          return entry;
        },
        /**
         * Returns an array of ZipEntry objects representing the files and folders inside the archive
         *
         * @param {string} [password]
         * @returns Array
         */
        getEntries: function(password) {
          _zip.password = password;
          return _zip ? _zip.entries : [];
        },
        /**
         * Returns a ZipEntry object representing the file or folder specified by ``name``.
         *
         * @param {string} name
         * @return ZipEntry
         */
        getEntry: function(name) {
          return getEntry(name);
        },
        getEntryCount: function() {
          return _zip.getEntryCount();
        },
        forEach: function(callback) {
          return _zip.forEach(callback);
        },
        /**
         * Extracts the given entry to the given targetPath
         * If the entry is a directory inside the archive, the entire directory and it's subdirectories will be extracted
         *
         * @param {string|ZipEntry} entry - ZipEntry object or String with the full path of the entry
         * @param {string} targetPath - Target folder where to write the file
         * @param {boolean} [maintainEntryPath=true] - If maintainEntryPath is true and the entry is inside a folder, the entry folder will be created in targetPath as well. Default is TRUE
         * @param {boolean} [overwrite=false] - If the file already exists at the target path, the file will be overwriten if this is true.
         * @param {boolean} [keepOriginalPermission=false] - The file will be set as the permission from the entry if this is true.
         * @param {string} [outFileName] - String If set will override the filename of the extracted file (Only works if the entry is a file)
         *
         * @return Boolean
         */
        extractEntryTo: function(entry, targetPath, maintainEntryPath, overwrite, keepOriginalPermission, outFileName) {
          overwrite = get_Bool(false, overwrite);
          keepOriginalPermission = get_Bool(false, keepOriginalPermission);
          maintainEntryPath = get_Bool(true, maintainEntryPath);
          outFileName = get_Str(keepOriginalPermission, outFileName);
          var item = getEntry(entry);
          if (!item) {
            throw Utils.Errors.NO_ENTRY();
          }
          var entryName = canonical(item.entryName);
          var target = sanitize(targetPath, outFileName && !item.isDirectory ? outFileName : maintainEntryPath ? entryName : pth.basename(entryName));
          if (item.isDirectory) {
            var children = _zip.getEntryChildren(item);
            children.forEach(function(child) {
              if (child.isDirectory) return;
              var content2 = child.getData();
              if (!content2) {
                throw Utils.Errors.CANT_EXTRACT_FILE();
              }
              var name = canonical(child.entryName);
              var childName = sanitize(targetPath, maintainEntryPath ? name : pth.basename(name));
              const fileAttr2 = keepOriginalPermission ? child.header.fileAttr : void 0;
              filetools.writeFileTo(childName, content2, overwrite, fileAttr2);
            });
            return true;
          }
          var content = item.getData(_zip.password);
          if (!content) throw Utils.Errors.CANT_EXTRACT_FILE();
          if (filetools.fs.existsSync(target) && !overwrite) {
            throw Utils.Errors.CANT_OVERRIDE();
          }
          const fileAttr = keepOriginalPermission ? entry.header.fileAttr : void 0;
          filetools.writeFileTo(target, content, overwrite, fileAttr);
          return true;
        },
        /**
         * Test the archive
         * @param {string} [pass]
         */
        test: function(pass) {
          if (!_zip) {
            return false;
          }
          for (var entry in _zip.entries) {
            try {
              if (entry.isDirectory) {
                continue;
              }
              var content = _zip.entries[entry].getData(pass);
              if (!content) {
                return false;
              }
            } catch (err2) {
              return false;
            }
          }
          return true;
        },
        /**
         * Extracts the entire archive to the given location
         *
         * @param {string} targetPath Target location
         * @param {boolean} [overwrite=false] If the file already exists at the target path, the file will be overwriten if this is true.
         *                  Default is FALSE
         * @param {boolean} [keepOriginalPermission=false] The file will be set as the permission from the entry if this is true.
         *                  Default is FALSE
         * @param {string|Buffer} [pass] password
         */
        extractAllTo: function(targetPath, overwrite, keepOriginalPermission, pass) {
          keepOriginalPermission = get_Bool(false, keepOriginalPermission);
          pass = get_Str(keepOriginalPermission, pass);
          overwrite = get_Bool(false, overwrite);
          if (!_zip) throw Utils.Errors.NO_ZIP();
          _zip.entries.forEach(function(entry) {
            var entryName = sanitize(targetPath, canonical(entry.entryName));
            if (entry.isDirectory) {
              filetools.makeDir(entryName);
              return;
            }
            var content = entry.getData(pass);
            if (!content) {
              throw Utils.Errors.CANT_EXTRACT_FILE();
            }
            const fileAttr = keepOriginalPermission ? entry.header.fileAttr : void 0;
            filetools.writeFileTo(entryName, content, overwrite, fileAttr);
            try {
              filetools.fs.utimesSync(entryName, entry.header.time, entry.header.time);
            } catch (err2) {
              throw Utils.Errors.CANT_EXTRACT_FILE();
            }
          });
        },
        /**
         * Asynchronous extractAllTo
         *
         * @param {string} targetPath Target location
         * @param {boolean} [overwrite=false] If the file already exists at the target path, the file will be overwriten if this is true.
         *                  Default is FALSE
         * @param {boolean} [keepOriginalPermission=false] The file will be set as the permission from the entry if this is true.
         *                  Default is FALSE
         * @param {function} callback The callback will be executed when all entries are extracted successfully or any error is thrown.
         */
        extractAllToAsync: function(targetPath, overwrite, keepOriginalPermission, callback) {
          callback = get_Fun(overwrite, keepOriginalPermission, callback);
          keepOriginalPermission = get_Bool(false, keepOriginalPermission);
          overwrite = get_Bool(false, overwrite);
          if (!callback) {
            return new Promise((resolve4, reject) => {
              this.extractAllToAsync(targetPath, overwrite, keepOriginalPermission, function(err2) {
                if (err2) {
                  reject(err2);
                } else {
                  resolve4(this);
                }
              });
            });
          }
          if (!_zip) {
            callback(Utils.Errors.NO_ZIP());
            return;
          }
          targetPath = pth.resolve(targetPath);
          const getPath2 = (entry) => sanitize(targetPath, pth.normalize(canonical(entry.entryName)));
          const getError = (msg, file) => new Error(msg + ': "' + file + '"');
          const dirEntries = [];
          const fileEntries = [];
          _zip.entries.forEach((e4) => {
            if (e4.isDirectory) {
              dirEntries.push(e4);
            } else {
              fileEntries.push(e4);
            }
          });
          for (const entry of dirEntries) {
            const dirPath = getPath2(entry);
            const dirAttr = keepOriginalPermission ? entry.header.fileAttr : void 0;
            try {
              filetools.makeDir(dirPath);
              if (dirAttr) filetools.fs.chmodSync(dirPath, dirAttr);
              filetools.fs.utimesSync(dirPath, entry.header.time, entry.header.time);
            } catch (er) {
              callback(getError("Unable to create folder", dirPath));
            }
          }
          fileEntries.reverse().reduce(function(next, entry) {
            return function(err2) {
              if (err2) {
                next(err2);
              } else {
                const entryName = pth.normalize(canonical(entry.entryName));
                const filePath = sanitize(targetPath, entryName);
                entry.getDataAsync(function(content, err_1) {
                  if (err_1) {
                    next(err_1);
                  } else if (!content) {
                    next(Utils.Errors.CANT_EXTRACT_FILE());
                  } else {
                    const fileAttr = keepOriginalPermission ? entry.header.fileAttr : void 0;
                    filetools.writeFileToAsync(filePath, content, overwrite, fileAttr, function(succ) {
                      if (!succ) {
                        next(getError("Unable to write file", filePath));
                      }
                      filetools.fs.utimes(filePath, entry.header.time, entry.header.time, function(err_2) {
                        if (err_2) {
                          next(getError("Unable to set times", filePath));
                        } else {
                          next();
                        }
                      });
                    });
                  }
                });
              }
            };
          }, callback)();
        },
        /**
         * Writes the newly created zip file to disk at the specified location or if a zip was opened and no ``targetFileName`` is provided, it will overwrite the opened zip
         *
         * @param {string} targetFileName
         * @param {function} callback
         */
        writeZip: function(targetFileName, callback) {
          if (arguments.length === 1) {
            if (typeof targetFileName === "function") {
              callback = targetFileName;
              targetFileName = "";
            }
          }
          if (!targetFileName && opts2.filename) {
            targetFileName = opts2.filename;
          }
          if (!targetFileName) return;
          var zipData = _zip.compressToBuffer();
          if (zipData) {
            var ok = filetools.writeFileTo(targetFileName, zipData, true);
            if (typeof callback === "function") callback(!ok ? new Error("failed") : null, "");
          }
        },
        /**
                 *
                 * @param {string} targetFileName
                 * @param {object} [props]
                 * @param {boolean} [props.overwrite=true] If the file already exists at the target path, the file will be overwriten if this is true.
                 * @param {boolean} [props.perm] The file will be set as the permission from the entry if this is true.
        
                 * @returns {Promise<void>}
                 */
        writeZipPromise: function(targetFileName, props) {
          const { overwrite, perm } = Object.assign({ overwrite: true }, props);
          return new Promise((resolve4, reject) => {
            if (!targetFileName && opts2.filename) targetFileName = opts2.filename;
            if (!targetFileName) reject("ADM-ZIP: ZIP File Name Missing");
            this.toBufferPromise().then((zipData) => {
              const ret = (done) => done ? resolve4(done) : reject("ADM-ZIP: Wasn't able to write zip file");
              filetools.writeFileToAsync(targetFileName, zipData, overwrite, perm, ret);
            }, reject);
          });
        },
        /**
         * @returns {Promise<Buffer>} A promise to the Buffer.
         */
        toBufferPromise: function() {
          return new Promise((resolve4, reject) => {
            _zip.toAsyncBuffer(resolve4, reject);
          });
        },
        /**
         * Returns the content of the entire zip file as a Buffer object
         *
         * @prop {function} [onSuccess]
         * @prop {function} [onFail]
         * @prop {function} [onItemStart]
         * @prop {function} [onItemEnd]
         * @returns {Buffer}
         */
        toBuffer: function(onSuccess, onFail, onItemStart, onItemEnd) {
          if (typeof onSuccess === "function") {
            _zip.toAsyncBuffer(onSuccess, onFail, onItemStart, onItemEnd);
            return null;
          }
          return _zip.compressToBuffer();
        }
      };
    };
  }
});

// ../../node_modules/.pnpm/generative-bayesian-network@2.1.80/node_modules/generative-bayesian-network/bayesian-node.js
var require_bayesian_node = __commonJS({
  "../../node_modules/.pnpm/generative-bayesian-network@2.1.80/node_modules/generative-bayesian-network/bayesian-node.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BayesianNode = void 0;
    function getRelativeFrequencies(data2, attributeName) {
      const frequencies = {};
      const totalCount = data2.length;
      data2.forEach((record) => {
        const value2 = record[attributeName];
        frequencies[value2] = (frequencies[value2] ?? 0) + 1;
      });
      return Object.fromEntries(Object.entries(frequencies).map(([key, value2]) => [
        key,
        value2 / totalCount
      ]));
    }
    var BayesianNode = class {
      /**
       * @param nodeDefinition Node structure and distributions definition taken from the network definition file.
       */
      constructor(nodeDefinition) {
        Object.defineProperty(this, "nodeDefinition", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.nodeDefinition = nodeDefinition;
      }
      toJSON() {
        return this.nodeDefinition;
      }
      /**
       * Extracts unconditional probabilities of node values given the values of the parent nodes
       * @param parentValues Parent nodes values.
       */
      getProbabilitiesGivenKnownValues(parentValues = {}) {
        let probabilities = this.nodeDefinition.conditionalProbabilities;
        for (const parentName of this.parentNames) {
          const parentValue = parentValues[parentName];
          if (parentValue in probabilities.deeper) {
            probabilities = probabilities.deeper[parentValue];
          } else {
            probabilities = probabilities.skip;
          }
        }
        return probabilities;
      }
      /**
       * Randomly samples from the given values using the given probabilities
       * @param possibleValues A list of values to sample from.
       * @param totalProbabilityOfPossibleValues Sum of probabilities of possibleValues in the conditional distribution.
       * @param probabilities A dictionary of probabilities from the conditional distribution, indexed by the values.
       */
      sampleRandomValueFromPossibilities(possibleValues, totalProbabilityOfPossibleValues, probabilities) {
        let chosenValue = possibleValues[0];
        const anchor = Math.random() * totalProbabilityOfPossibleValues;
        let cumulativeProbability = 0;
        for (const possibleValue of possibleValues) {
          cumulativeProbability += probabilities[possibleValue];
          if (cumulativeProbability > anchor) {
            chosenValue = possibleValue;
            break;
          }
        }
        return chosenValue;
      }
      /**
       * Randomly samples from the conditional distribution of this node given values of parents
       * @param parentValues Values of the parent nodes.
       */
      sample(parentValues = {}) {
        const probabilities = this.getProbabilitiesGivenKnownValues(parentValues);
        const possibleValues = Object.keys(probabilities);
        return this.sampleRandomValueFromPossibilities(possibleValues, 1, probabilities);
      }
      /**
       * Randomly samples from the conditional distribution of this node given restrictions on the possible
       * values and the values of the parents.
       * @param parentValues Values of the parent nodes.
       * @param valuePossibilities List of possible values for this node.
       * @param bannedValues What values of this node are banned.
       */
      sampleAccordingToRestrictions(parentValues, valuePossibilities, bannedValues) {
        const probabilities = this.getProbabilitiesGivenKnownValues(parentValues);
        let totalProbability = 0;
        const validValues = [];
        const valuesInDistribution = Object.keys(probabilities);
        const possibleValues = valuePossibilities || valuesInDistribution;
        for (const value2 of possibleValues) {
          if (!bannedValues.includes(value2) && valuesInDistribution.includes(value2)) {
            validValues.push(value2);
            totalProbability += probabilities[value2];
          }
        }
        if (validValues.length === 0)
          return false;
        return this.sampleRandomValueFromPossibilities(validValues, totalProbability, probabilities);
      }
      /**
       * Sets the conditional probability distribution for this node to match the given data.
       * @param data A RecordList containing the data.
       * @param possibleParentValues A dictionary of lists of possible values for parent nodes.
       */
      setProbabilitiesAccordingToData(data2, possibleParentValues = {}) {
        this.nodeDefinition.possibleValues = Array.from(new Set(data2.map((record) => record[this.name])));
        this.nodeDefinition.conditionalProbabilities = this.recursivelyCalculateConditionalProbabilitiesAccordingToData(data2, possibleParentValues, 0);
      }
      /**
       * Recursively calculates the conditional probability distribution for this node from the data.
       * @param dataframe A Danfo.js dataframe containing the data.
       * @param possibleParentValues A dictionary of lists of possible values for parent nodes.
       * @param depth Depth of the current recursive call.
       */
      recursivelyCalculateConditionalProbabilitiesAccordingToData(data2, possibleParentValues, depth) {
        let probabilities = {
          deeper: {}
        };
        if (depth < this.parentNames.length) {
          const currentParentName = this.parentNames[depth];
          for (const possibleValue of possibleParentValues[currentParentName]) {
            const skip = !data2.map((record) => record[currentParentName]).includes(possibleValue);
            let filteredData = data2;
            if (!skip) {
              filteredData = data2.filter((record) => record[currentParentName] === possibleValue);
            }
            const nextLevel = this.recursivelyCalculateConditionalProbabilitiesAccordingToData(filteredData, possibleParentValues, depth + 1);
            if (!skip) {
              probabilities.deeper[possibleValue] = nextLevel;
            } else {
              probabilities.skip = nextLevel;
            }
          }
        } else {
          probabilities = getRelativeFrequencies(data2, this.name);
        }
        return probabilities;
      }
      get name() {
        return this.nodeDefinition.name;
      }
      get parentNames() {
        return this.nodeDefinition.parentNames;
      }
      get possibleValues() {
        return this.nodeDefinition.possibleValues;
      }
    };
    exports.BayesianNode = BayesianNode;
  }
});

// ../../node_modules/.pnpm/generative-bayesian-network@2.1.80/node_modules/generative-bayesian-network/bayesian-network.js
var require_bayesian_network = __commonJS({
  "../../node_modules/.pnpm/generative-bayesian-network@2.1.80/node_modules/generative-bayesian-network/bayesian-network.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BayesianNetwork = void 0;
    var AdmZip = require_adm_zip();
    var bayesian_node_1 = require_bayesian_node();
    var BayesianNetwork = class {
      constructor({ path: path3 }) {
        Object.defineProperty(this, "nodesInSamplingOrder", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "nodesByName", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        const zip = new AdmZip(path3);
        const zipEntries = zip.getEntries();
        const networkDefinition = JSON.parse(zipEntries[0].getData().toString("utf8"));
        this.nodesInSamplingOrder = networkDefinition.nodes.map((nodeDefinition) => new bayesian_node_1.BayesianNode(nodeDefinition));
        this.nodesByName = this.nodesInSamplingOrder.reduce((p3, node) => ({
          ...p3,
          [node.name]: node
        }), {});
      }
      /**
       * Randomly samples from the distribution represented by the bayesian network.
       * @param inputValues Already known node values.
       */
      generateSample(inputValues = {}) {
        const sample = inputValues;
        for (const node of this.nodesInSamplingOrder) {
          if (!(node.name in sample)) {
            sample[node.name] = node.sample(sample);
          }
        }
        return sample;
      }
      /**
       * Randomly samples values from the distribution represented by the bayesian network,
       * making sure the sample is consistent with the provided restrictions on value possibilities.
       * Returns false if no such sample can be generated.
       * @param valuePossibilities A dictionary of lists of possible values for nodes (if a node isn't present in the dictionary, all values are possible).
       */
      generateConsistentSampleWhenPossible(valuePossibilities) {
        return this.recursivelyGenerateConsistentSampleWhenPossible({}, valuePossibilities, 0);
      }
      /**
       * Recursively generates a random sample consistent with the given restrictions on possible values.
       * @param sampleSoFar Already known node values.
       * @param valuePossibilities A dictionary of lists of possible values for nodes (if a node isn't present in the dictionary, all values are possible).
       * @param depth Current recursion depth.
       */
      recursivelyGenerateConsistentSampleWhenPossible(sampleSoFar, valuePossibilities, depth) {
        const bannedValues = [];
        const node = this.nodesInSamplingOrder[depth];
        let sampleValue;
        do {
          sampleValue = node.sampleAccordingToRestrictions(sampleSoFar, valuePossibilities[node.name], bannedValues);
          if (!sampleValue)
            break;
          sampleSoFar[node.name] = sampleValue;
          if (depth + 1 < this.nodesInSamplingOrder.length) {
            const sample = this.recursivelyGenerateConsistentSampleWhenPossible(sampleSoFar, valuePossibilities, depth + 1);
            if (Object.keys(sample).length !== 0) {
              return sample;
            }
          } else {
            return sampleSoFar;
          }
          bannedValues.push(sampleValue);
        } while (sampleValue);
        return {};
      }
      /**
       * Sets the conditional probability distributions of this network's nodes to match the given data.
       * @param dataframe A Danfo.js dataframe containing the data.
       */
      setProbabilitiesAccordingToData(data2) {
        this.nodesInSamplingOrder.forEach((node, i5) => {
          console.log(`${i5}/${this.nodesInSamplingOrder.length} Setting probabilities for node ${node.name}`);
          const possibleParentValues = {};
          for (const parentName of node.parentNames) {
            possibleParentValues[parentName] = this.nodesByName[parentName].possibleValues;
          }
          node.setProbabilitiesAccordingToData(data2, possibleParentValues);
        });
      }
      /**
       * Saves the network definition to the specified file path to be used later.
       * @param networkDefinitionFilePath File path where the network definition should be saved.
       */
      saveNetworkDefinition({ path: path3 }) {
        const network = {
          nodes: this.nodesInSamplingOrder
        };
        const zip = new AdmZip();
        zip.addFile("network.json", Buffer.from(JSON.stringify(network), "utf8"));
        zip.writeZip(path3);
      }
    };
    exports.BayesianNetwork = BayesianNetwork;
  }
});

// ../../node_modules/.pnpm/generative-bayesian-network@2.1.80/node_modules/generative-bayesian-network/utils.js
var require_utils6 = __commonJS({
  "../../node_modules/.pnpm/generative-bayesian-network@2.1.80/node_modules/generative-bayesian-network/utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.arrayIntersection = arrayIntersection;
    exports.arrayUnion = arrayUnion;
    exports.arrayZip = arrayZip;
    exports.getConstraintClosure = getConstraintClosure;
    function arrayIntersection(a5, b3) {
      return a5.filter((x) => b3.includes(x));
    }
    function arrayUnion(a5, b3) {
      return [...a5, ...b3.filter((x) => !a5.includes(x))];
    }
    function arrayZip(a5, b3, f4) {
      return a5.map((x, i5) => f4(x, b3[i5]));
    }
    function getConstraintClosure(network, possibleValues) {
      function undeeper(obj) {
        if (typeof obj !== "object" || obj === null)
          return obj;
        const result = {};
        for (const key of Object.keys(obj)) {
          if (key === "skip")
            continue;
          if (key === "deeper") {
            Object.assign(result, undeeper(obj[key]));
            continue;
          }
          result[key] = undeeper(obj[key]);
        }
        return result;
      }
      function filterByLastLevelKeys(tree, validKeys) {
        let foundPaths = [];
        const dfs = (t4, acc) => {
          for (const key of Object.keys(t4)) {
            if (typeof t4[key] !== "object" || !t4[key]) {
              if (validKeys.includes(key)) {
                foundPaths = foundPaths.length === 0 ? acc.map((x) => [x]) : arrayZip(foundPaths, acc.map((x) => [x]), (a5, b3) => [.../* @__PURE__ */ new Set([...a5, ...b3])]);
              }
              continue;
            } else {
              dfs(t4[key], [...acc, key]);
            }
          }
        };
        dfs(tree, []);
        return foundPaths;
      }
      const sets = [];
      let foundMatchingValues = false;
      for (const key of Object.keys(possibleValues)) {
        if (!Array.isArray(possibleValues[key]))
          continue;
        if (possibleValues[key].length === 0) {
          throw new Error(`The current constraints are too restrictive. 
No possible values can be found for the given constraints.`);
        }
        const node = network["nodesByName"][key]["nodeDefinition"];
        const tree = undeeper(node.conditionalProbabilities);
        const zippedValues = filterByLastLevelKeys(tree, possibleValues[key]);
        if (zippedValues.length > 0) {
          foundMatchingValues = true;
        }
        sets.push({
          ...Object.fromEntries(zippedValues.map((x, i5) => [node.parentNames[i5], x])),
          [key]: possibleValues[key]
        });
      }
      if (!foundMatchingValues) {
        return {};
      }
      return sets.reduce((acc, x) => {
        for (const key of Object.keys(x)) {
          acc[key] = acc[key] ? arrayIntersection(acc[key], x[key]) : x[key];
          if (acc[key].length === 0) {
            throw new Error(`The current constraints are too restrictive. 
No possible values can be found for the given constraints.`);
          }
        }
        return acc;
      }, {});
    }
  }
});

// ../../node_modules/.pnpm/generative-bayesian-network@2.1.80/node_modules/generative-bayesian-network/index.js
var require_generative_bayesian_network = __commonJS({
  "../../node_modules/.pnpm/generative-bayesian-network@2.1.80/node_modules/generative-bayesian-network/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.utils = exports.BayesianNetwork = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var bayesian_network_1 = require_bayesian_network();
    Object.defineProperty(exports, "BayesianNetwork", { enumerable: true, get: function() {
      return bayesian_network_1.BayesianNetwork;
    } });
    exports.utils = tslib_1.__importStar(require_utils6());
  }
});

// ../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/constants.js
var require_constants2 = __commonJS({
  "../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/constants.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.HTTP2_SEC_FETCH_ATTRIBUTES = exports.HTTP1_SEC_FETCH_ATTRIBUTES = exports.MISSING_VALUE_DATASET_TOKEN = exports.DEVICE_NODE_NAME = exports.OPERATING_SYSTEM_NODE_NAME = exports.BROWSER_HTTP_NODE_NAME = exports.SUPPORTED_HTTP_VERSIONS = exports.SUPPORTED_DEVICES = exports.SUPPORTED_OPERATING_SYSTEMS = exports.SUPPORTED_BROWSERS = void 0;
    exports.SUPPORTED_BROWSERS = [
      "chrome",
      "firefox",
      "safari",
      "edge"
    ];
    exports.SUPPORTED_OPERATING_SYSTEMS = [
      "windows",
      "macos",
      "linux",
      "android",
      "ios"
    ];
    exports.SUPPORTED_DEVICES = ["desktop", "mobile"];
    exports.SUPPORTED_HTTP_VERSIONS = ["1", "2"];
    exports.BROWSER_HTTP_NODE_NAME = "*BROWSER_HTTP";
    exports.OPERATING_SYSTEM_NODE_NAME = "*OPERATING_SYSTEM";
    exports.DEVICE_NODE_NAME = "*DEVICE";
    exports.MISSING_VALUE_DATASET_TOKEN = "*MISSING_VALUE*";
    exports.HTTP1_SEC_FETCH_ATTRIBUTES = {
      mode: "Sec-Fetch-Mode",
      dest: "Sec-Fetch-Dest",
      site: "Sec-Fetch-Site",
      user: "Sec-Fetch-User"
    };
    exports.HTTP2_SEC_FETCH_ATTRIBUTES = {
      mode: "sec-fetch-mode",
      dest: "sec-fetch-dest",
      site: "sec-fetch-site",
      user: "sec-fetch-user"
    };
  }
});

// ../../node_modules/.pnpm/baseline-browser-mapping@2.9.19/node_modules/baseline-browser-mapping/dist/index.cjs
var require_dist4 = __commonJS({
  "../../node_modules/.pnpm/baseline-browser-mapping@2.9.19/node_modules/baseline-browser-mapping/dist/index.cjs"(exports) {
    "use strict";
    var s4 = { chrome: { releases: [["1", "2008-12-11", "r", "w", "528"], ["2", "2009-05-21", "r", "w", "530"], ["3", "2009-09-15", "r", "w", "532"], ["4", "2010-01-25", "r", "w", "532.5"], ["5", "2010-05-25", "r", "w", "533"], ["6", "2010-09-02", "r", "w", "534.3"], ["7", "2010-10-19", "r", "w", "534.7"], ["8", "2010-12-02", "r", "w", "534.10"], ["9", "2011-02-03", "r", "w", "534.13"], ["10", "2011-03-08", "r", "w", "534.16"], ["11", "2011-04-27", "r", "w", "534.24"], ["12", "2011-06-07", "r", "w", "534.30"], ["13", "2011-08-02", "r", "w", "535.1"], ["14", "2011-09-16", "r", "w", "535.1"], ["15", "2011-10-25", "r", "w", "535.2"], ["16", "2011-12-13", "r", "w", "535.7"], ["17", "2012-02-08", "r", "w", "535.11"], ["18", "2012-03-28", "r", "w", "535.19"], ["19", "2012-05-15", "r", "w", "536.5"], ["20", "2012-06-26", "r", "w", "536.10"], ["21", "2012-07-31", "r", "w", "537.1"], ["22", "2012-09-25", "r", "w", "537.4"], ["23", "2012-11-06", "r", "w", "537.11"], ["24", "2013-01-10", "r", "w", "537.17"], ["25", "2013-02-21", "r", "w", "537.22"], ["26", "2013-03-26", "r", "w", "537.31"], ["27", "2013-05-21", "r", "w", "537.36"], ["28", "2013-07-09", "r", "b", "28"], ["29", "2013-08-20", "r", "b", "29"], ["30", "2013-10-01", "r", "b", "30"], ["31", "2013-11-12", "r", "b", "31"], ["32", "2014-01-14", "r", "b", "32"], ["33", "2014-02-20", "r", "b", "33"], ["34", "2014-04-08", "r", "b", "34"], ["35", "2014-05-20", "r", "b", "35"], ["36", "2014-07-16", "r", "b", "36"], ["37", "2014-08-26", "r", "b", "37"], ["38", "2014-10-07", "r", "b", "38"], ["39", "2014-11-18", "r", "b", "39"], ["40", "2015-01-21", "r", "b", "40"], ["41", "2015-03-03", "r", "b", "41"], ["42", "2015-04-14", "r", "b", "42"], ["43", "2015-05-19", "r", "b", "43"], ["44", "2015-07-21", "r", "b", "44"], ["45", "2015-09-01", "r", "b", "45"], ["46", "2015-10-13", "r", "b", "46"], ["47", "2015-12-01", "r", "b", "47"], ["48", "2016-01-20", "r", "b", "48"], ["49", "2016-03-02", "r", "b", "49"], ["50", "2016-04-13", "r", "b", "50"], ["51", "2016-05-25", "r", "b", "51"], ["52", "2016-07-20", "r", "b", "52"], ["53", "2016-08-31", "r", "b", "53"], ["54", "2016-10-12", "r", "b", "54"], ["55", "2016-12-01", "r", "b", "55"], ["56", "2017-01-25", "r", "b", "56"], ["57", "2017-03-09", "r", "b", "57"], ["58", "2017-04-19", "r", "b", "58"], ["59", "2017-06-05", "r", "b", "59"], ["60", "2017-07-25", "r", "b", "60"], ["61", "2017-09-05", "r", "b", "61"], ["62", "2017-10-17", "r", "b", "62"], ["63", "2017-12-06", "r", "b", "63"], ["64", "2018-01-23", "r", "b", "64"], ["65", "2018-03-06", "r", "b", "65"], ["66", "2018-04-17", "r", "b", "66"], ["67", "2018-05-29", "r", "b", "67"], ["68", "2018-07-24", "r", "b", "68"], ["69", "2018-09-04", "r", "b", "69"], ["70", "2018-10-16", "r", "b", "70"], ["71", "2018-12-04", "r", "b", "71"], ["72", "2019-01-29", "r", "b", "72"], ["73", "2019-03-12", "r", "b", "73"], ["74", "2019-04-23", "r", "b", "74"], ["75", "2019-06-04", "r", "b", "75"], ["76", "2019-07-30", "r", "b", "76"], ["77", "2019-09-10", "r", "b", "77"], ["78", "2019-10-22", "r", "b", "78"], ["79", "2019-12-10", "r", "b", "79"], ["80", "2020-02-04", "r", "b", "80"], ["81", "2020-04-07", "r", "b", "81"], ["83", "2020-05-19", "r", "b", "83"], ["84", "2020-07-27", "r", "b", "84"], ["85", "2020-08-25", "r", "b", "85"], ["86", "2020-10-20", "r", "b", "86"], ["87", "2020-11-17", "r", "b", "87"], ["88", "2021-01-19", "r", "b", "88"], ["89", "2021-03-02", "r", "b", "89"], ["90", "2021-04-13", "r", "b", "90"], ["91", "2021-05-25", "r", "b", "91"], ["92", "2021-07-20", "r", "b", "92"], ["93", "2021-08-31", "r", "b", "93"], ["94", "2021-09-21", "r", "b", "94"], ["95", "2021-10-19", "r", "b", "95"], ["96", "2021-11-15", "r", "b", "96"], ["97", "2022-01-04", "r", "b", "97"], ["98", "2022-02-01", "r", "b", "98"], ["99", "2022-03-01", "r", "b", "99"], ["100", "2022-03-29", "r", "b", "100"], ["101", "2022-04-26", "r", "b", "101"], ["102", "2022-05-24", "r", "b", "102"], ["103", "2022-06-21", "r", "b", "103"], ["104", "2022-08-02", "r", "b", "104"], ["105", "2022-09-02", "r", "b", "105"], ["106", "2022-09-27", "r", "b", "106"], ["107", "2022-10-25", "r", "b", "107"], ["108", "2022-11-29", "r", "b", "108"], ["109", "2023-01-10", "r", "b", "109"], ["110", "2023-02-07", "r", "b", "110"], ["111", "2023-03-07", "r", "b", "111"], ["112", "2023-04-04", "r", "b", "112"], ["113", "2023-05-02", "r", "b", "113"], ["114", "2023-05-30", "r", "b", "114"], ["115", "2023-07-18", "r", "b", "115"], ["116", "2023-08-15", "r", "b", "116"], ["117", "2023-09-12", "r", "b", "117"], ["118", "2023-10-10", "r", "b", "118"], ["119", "2023-10-31", "r", "b", "119"], ["120", "2023-12-05", "r", "b", "120"], ["121", "2024-01-23", "r", "b", "121"], ["122", "2024-02-20", "r", "b", "122"], ["123", "2024-03-19", "r", "b", "123"], ["124", "2024-04-16", "r", "b", "124"], ["125", "2024-05-14", "r", "b", "125"], ["126", "2024-06-11", "r", "b", "126"], ["127", "2024-07-23", "r", "b", "127"], ["128", "2024-08-20", "r", "b", "128"], ["129", "2024-09-17", "r", "b", "129"], ["130", "2024-10-15", "r", "b", "130"], ["131", "2024-11-12", "r", "b", "131"], ["132", "2025-01-14", "r", "b", "132"], ["133", "2025-02-04", "r", "b", "133"], ["134", "2025-03-04", "r", "b", "134"], ["135", "2025-04-01", "r", "b", "135"], ["136", "2025-04-29", "r", "b", "136"], ["137", "2025-05-27", "r", "b", "137"], ["138", "2025-06-24", "r", "b", "138"], ["139", "2025-08-05", "r", "b", "139"], ["140", "2025-09-02", "r", "b", "140"], ["141", "2025-09-30", "r", "b", "141"], ["142", "2025-10-28", "r", "b", "142"], ["143", "2025-12-02", "r", "b", "143"], ["144", "2026-01-13", "c", "b", "144"], ["145", "2026-02-10", "b", "b", "145"], ["146", "2026-03-10", "n", "b", "146"], ["147", null, "p", "b", "147"]] }, chrome_android: { releases: [["18", "2012-06-27", "r", "w", "535.19"], ["25", "2013-02-27", "r", "w", "537.22"], ["26", "2013-04-03", "r", "w", "537.31"], ["27", "2013-05-22", "r", "w", "537.36"], ["28", "2013-07-10", "r", "b", "28"], ["29", "2013-08-21", "r", "b", "29"], ["30", "2013-10-02", "r", "b", "30"], ["31", "2013-11-14", "r", "b", "31"], ["32", "2014-01-15", "r", "b", "32"], ["33", "2014-02-26", "r", "b", "33"], ["34", "2014-04-02", "r", "b", "34"], ["35", "2014-05-20", "r", "b", "35"], ["36", "2014-07-16", "r", "b", "36"], ["37", "2014-09-03", "r", "b", "37"], ["38", "2014-10-08", "r", "b", "38"], ["39", "2014-11-12", "r", "b", "39"], ["40", "2015-01-21", "r", "b", "40"], ["41", "2015-03-11", "r", "b", "41"], ["42", "2015-04-15", "r", "b", "42"], ["43", "2015-05-27", "r", "b", "43"], ["44", "2015-07-29", "r", "b", "44"], ["45", "2015-09-01", "r", "b", "45"], ["46", "2015-10-14", "r", "b", "46"], ["47", "2015-12-02", "r", "b", "47"], ["48", "2016-01-26", "r", "b", "48"], ["49", "2016-03-09", "r", "b", "49"], ["50", "2016-04-13", "r", "b", "50"], ["51", "2016-06-08", "r", "b", "51"], ["52", "2016-07-27", "r", "b", "52"], ["53", "2016-09-07", "r", "b", "53"], ["54", "2016-10-19", "r", "b", "54"], ["55", "2016-12-06", "r", "b", "55"], ["56", "2017-02-01", "r", "b", "56"], ["57", "2017-03-16", "r", "b", "57"], ["58", "2017-04-25", "r", "b", "58"], ["59", "2017-06-06", "r", "b", "59"], ["60", "2017-08-01", "r", "b", "60"], ["61", "2017-09-05", "r", "b", "61"], ["62", "2017-10-24", "r", "b", "62"], ["63", "2017-12-05", "r", "b", "63"], ["64", "2018-01-23", "r", "b", "64"], ["65", "2018-03-06", "r", "b", "65"], ["66", "2018-04-17", "r", "b", "66"], ["67", "2018-05-31", "r", "b", "67"], ["68", "2018-07-24", "r", "b", "68"], ["69", "2018-09-04", "r", "b", "69"], ["70", "2018-10-17", "r", "b", "70"], ["71", "2018-12-04", "r", "b", "71"], ["72", "2019-01-29", "r", "b", "72"], ["73", "2019-03-12", "r", "b", "73"], ["74", "2019-04-24", "r", "b", "74"], ["75", "2019-06-04", "r", "b", "75"], ["76", "2019-07-30", "r", "b", "76"], ["77", "2019-09-10", "r", "b", "77"], ["78", "2019-10-22", "r", "b", "78"], ["79", "2019-12-17", "r", "b", "79"], ["80", "2020-02-04", "r", "b", "80"], ["81", "2020-04-07", "r", "b", "81"], ["83", "2020-05-19", "r", "b", "83"], ["84", "2020-07-27", "r", "b", "84"], ["85", "2020-08-25", "r", "b", "85"], ["86", "2020-10-20", "r", "b", "86"], ["87", "2020-11-17", "r", "b", "87"], ["88", "2021-01-19", "r", "b", "88"], ["89", "2021-03-02", "r", "b", "89"], ["90", "2021-04-13", "r", "b", "90"], ["91", "2021-05-25", "r", "b", "91"], ["92", "2021-07-20", "r", "b", "92"], ["93", "2021-08-31", "r", "b", "93"], ["94", "2021-09-21", "r", "b", "94"], ["95", "2021-10-19", "r", "b", "95"], ["96", "2021-11-15", "r", "b", "96"], ["97", "2022-01-04", "r", "b", "97"], ["98", "2022-02-01", "r", "b", "98"], ["99", "2022-03-01", "r", "b", "99"], ["100", "2022-03-29", "r", "b", "100"], ["101", "2022-04-26", "r", "b", "101"], ["102", "2022-05-24", "r", "b", "102"], ["103", "2022-06-21", "r", "b", "103"], ["104", "2022-08-02", "r", "b", "104"], ["105", "2022-09-02", "r", "b", "105"], ["106", "2022-09-27", "r", "b", "106"], ["107", "2022-10-25", "r", "b", "107"], ["108", "2022-11-29", "r", "b", "108"], ["109", "2023-01-10", "r", "b", "109"], ["110", "2023-02-07", "r", "b", "110"], ["111", "2023-03-07", "r", "b", "111"], ["112", "2023-04-04", "r", "b", "112"], ["113", "2023-05-02", "r", "b", "113"], ["114", "2023-05-30", "r", "b", "114"], ["115", "2023-07-21", "r", "b", "115"], ["116", "2023-08-15", "r", "b", "116"], ["117", "2023-09-12", "r", "b", "117"], ["118", "2023-10-10", "r", "b", "118"], ["119", "2023-10-31", "r", "b", "119"], ["120", "2023-12-05", "r", "b", "120"], ["121", "2024-01-23", "r", "b", "121"], ["122", "2024-02-20", "r", "b", "122"], ["123", "2024-03-19", "r", "b", "123"], ["124", "2024-04-16", "r", "b", "124"], ["125", "2024-05-14", "r", "b", "125"], ["126", "2024-06-11", "r", "b", "126"], ["127", "2024-07-23", "r", "b", "127"], ["128", "2024-08-20", "r", "b", "128"], ["129", "2024-09-17", "r", "b", "129"], ["130", "2024-10-15", "r", "b", "130"], ["131", "2024-11-12", "r", "b", "131"], ["132", "2025-01-14", "r", "b", "132"], ["133", "2025-02-04", "r", "b", "133"], ["134", "2025-03-04", "r", "b", "134"], ["135", "2025-04-01", "r", "b", "135"], ["136", "2025-04-29", "r", "b", "136"], ["137", "2025-05-27", "r", "b", "137"], ["138", "2025-06-24", "r", "b", "138"], ["139", "2025-08-05", "r", "b", "139"], ["140", "2025-09-02", "r", "b", "140"], ["141", "2025-09-30", "r", "b", "141"], ["142", "2025-10-28", "r", "b", "142"], ["143", "2025-12-02", "r", "b", "143"], ["144", "2026-01-13", "c", "b", "144"], ["145", "2026-02-10", "b", "b", "145"], ["146", "2026-03-10", "n", "b", "146"], ["147", null, "p", "b", "147"]] }, edge: { releases: [["12", "2015-07-29", "r", null, "12"], ["13", "2015-11-12", "r", null, "13"], ["14", "2016-08-02", "r", null, "14"], ["15", "2017-04-05", "r", null, "15"], ["16", "2017-10-17", "r", null, "16"], ["17", "2018-04-30", "r", null, "17"], ["18", "2018-10-02", "r", null, "18"], ["79", "2020-01-15", "r", "b", "79"], ["80", "2020-02-07", "r", "b", "80"], ["81", "2020-04-13", "r", "b", "81"], ["83", "2020-05-21", "r", "b", "83"], ["84", "2020-07-16", "r", "b", "84"], ["85", "2020-08-27", "r", "b", "85"], ["86", "2020-10-09", "r", "b", "86"], ["87", "2020-11-19", "r", "b", "87"], ["88", "2021-01-21", "r", "b", "88"], ["89", "2021-03-04", "r", "b", "89"], ["90", "2021-04-15", "r", "b", "90"], ["91", "2021-05-27", "r", "b", "91"], ["92", "2021-07-22", "r", "b", "92"], ["93", "2021-09-02", "r", "b", "93"], ["94", "2021-09-24", "r", "b", "94"], ["95", "2021-10-21", "r", "b", "95"], ["96", "2021-11-19", "r", "b", "96"], ["97", "2022-01-06", "r", "b", "97"], ["98", "2022-02-03", "r", "b", "98"], ["99", "2022-03-03", "r", "b", "99"], ["100", "2022-04-01", "r", "b", "100"], ["101", "2022-04-28", "r", "b", "101"], ["102", "2022-05-31", "r", "b", "102"], ["103", "2022-06-23", "r", "b", "103"], ["104", "2022-08-05", "r", "b", "104"], ["105", "2022-09-01", "r", "b", "105"], ["106", "2022-10-03", "r", "b", "106"], ["107", "2022-10-27", "r", "b", "107"], ["108", "2022-12-05", "r", "b", "108"], ["109", "2023-01-12", "r", "b", "109"], ["110", "2023-02-09", "r", "b", "110"], ["111", "2023-03-13", "r", "b", "111"], ["112", "2023-04-06", "r", "b", "112"], ["113", "2023-05-05", "r", "b", "113"], ["114", "2023-06-02", "r", "b", "114"], ["115", "2023-07-21", "r", "b", "115"], ["116", "2023-08-21", "r", "b", "116"], ["117", "2023-09-15", "r", "b", "117"], ["118", "2023-10-13", "r", "b", "118"], ["119", "2023-11-02", "r", "b", "119"], ["120", "2023-12-07", "r", "b", "120"], ["121", "2024-01-25", "r", "b", "121"], ["122", "2024-02-23", "r", "b", "122"], ["123", "2024-03-22", "r", "b", "123"], ["124", "2024-04-18", "r", "b", "124"], ["125", "2024-05-17", "r", "b", "125"], ["126", "2024-06-13", "r", "b", "126"], ["127", "2024-07-25", "r", "b", "127"], ["128", "2024-08-22", "r", "b", "128"], ["129", "2024-09-19", "r", "b", "129"], ["130", "2024-10-17", "r", "b", "130"], ["131", "2024-11-14", "r", "b", "131"], ["132", "2025-01-17", "r", "b", "132"], ["133", "2025-02-06", "r", "b", "133"], ["134", "2025-03-06", "r", "b", "134"], ["135", "2025-04-04", "r", "b", "135"], ["136", "2025-05-01", "r", "b", "136"], ["137", "2025-05-29", "r", "b", "137"], ["138", "2025-06-26", "r", "b", "138"], ["139", "2025-08-07", "r", "b", "139"], ["140", "2025-09-05", "r", "b", "140"], ["141", "2025-10-03", "r", "b", "141"], ["142", "2025-10-31", "r", "b", "142"], ["143", "2025-12-05", "r", "b", "143"], ["144", "2026-01-21", "c", "b", "144"], ["145", "2026-02-12", "b", "b", "145"], ["146", "2026-03-12", "n", "b", "146"], ["147", "2026-04-09", "p", "b", "147"]] }, firefox: { releases: [["1", "2004-11-09", "r", "g", "1.7"], ["2", "2006-10-24", "r", "g", "1.8.1"], ["3", "2008-06-17", "r", "g", "1.9"], ["4", "2011-03-22", "r", "g", "2"], ["5", "2011-06-21", "r", "g", "5"], ["6", "2011-08-16", "r", "g", "6"], ["7", "2011-09-27", "r", "g", "7"], ["8", "2011-11-08", "r", "g", "8"], ["9", "2011-12-20", "r", "g", "9"], ["10", "2012-01-31", "r", "g", "10"], ["11", "2012-03-13", "r", "g", "11"], ["12", "2012-04-24", "r", "g", "12"], ["13", "2012-06-05", "r", "g", "13"], ["14", "2012-07-17", "r", "g", "14"], ["15", "2012-08-28", "r", "g", "15"], ["16", "2012-10-09", "r", "g", "16"], ["17", "2012-11-20", "r", "g", "17"], ["18", "2013-01-08", "r", "g", "18"], ["19", "2013-02-19", "r", "g", "19"], ["20", "2013-04-02", "r", "g", "20"], ["21", "2013-05-14", "r", "g", "21"], ["22", "2013-06-25", "r", "g", "22"], ["23", "2013-08-06", "r", "g", "23"], ["24", "2013-09-17", "r", "g", "24"], ["25", "2013-10-29", "r", "g", "25"], ["26", "2013-12-10", "r", "g", "26"], ["27", "2014-02-04", "r", "g", "27"], ["28", "2014-03-18", "r", "g", "28"], ["29", "2014-04-29", "r", "g", "29"], ["30", "2014-06-10", "r", "g", "30"], ["31", "2014-07-22", "r", "g", "31"], ["32", "2014-09-02", "r", "g", "32"], ["33", "2014-10-14", "r", "g", "33"], ["34", "2014-12-01", "r", "g", "34"], ["35", "2015-01-13", "r", "g", "35"], ["36", "2015-02-24", "r", "g", "36"], ["37", "2015-03-31", "r", "g", "37"], ["38", "2015-05-12", "r", "g", "38"], ["39", "2015-07-02", "r", "g", "39"], ["40", "2015-08-11", "r", "g", "40"], ["41", "2015-09-22", "r", "g", "41"], ["42", "2015-11-03", "r", "g", "42"], ["43", "2015-12-15", "r", "g", "43"], ["44", "2016-01-26", "r", "g", "44"], ["45", "2016-03-08", "r", "g", "45"], ["46", "2016-04-26", "r", "g", "46"], ["47", "2016-06-07", "r", "g", "47"], ["48", "2016-08-02", "r", "g", "48"], ["49", "2016-09-20", "r", "g", "49"], ["50", "2016-11-15", "r", "g", "50"], ["51", "2017-01-24", "r", "g", "51"], ["52", "2017-03-07", "r", "g", "52"], ["53", "2017-04-19", "r", "g", "53"], ["54", "2017-06-13", "r", "g", "54"], ["55", "2017-08-08", "r", "g", "55"], ["56", "2017-09-28", "r", "g", "56"], ["57", "2017-11-14", "r", "g", "57"], ["58", "2018-01-23", "r", "g", "58"], ["59", "2018-03-13", "r", "g", "59"], ["60", "2018-05-09", "r", "g", "60"], ["61", "2018-06-26", "r", "g", "61"], ["62", "2018-09-05", "r", "g", "62"], ["63", "2018-10-23", "r", "g", "63"], ["64", "2018-12-11", "r", "g", "64"], ["65", "2019-01-29", "r", "g", "65"], ["66", "2019-03-19", "r", "g", "66"], ["67", "2019-05-21", "r", "g", "67"], ["68", "2019-07-09", "r", "g", "68"], ["69", "2019-09-03", "r", "g", "69"], ["70", "2019-10-22", "r", "g", "70"], ["71", "2019-12-10", "r", "g", "71"], ["72", "2020-01-07", "r", "g", "72"], ["73", "2020-02-11", "r", "g", "73"], ["74", "2020-03-10", "r", "g", "74"], ["75", "2020-04-07", "r", "g", "75"], ["76", "2020-05-05", "r", "g", "76"], ["77", "2020-06-02", "r", "g", "77"], ["78", "2020-06-30", "r", "g", "78"], ["79", "2020-07-28", "r", "g", "79"], ["80", "2020-08-25", "r", "g", "80"], ["81", "2020-09-22", "r", "g", "81"], ["82", "2020-10-20", "r", "g", "82"], ["83", "2020-11-17", "r", "g", "83"], ["84", "2020-12-15", "r", "g", "84"], ["85", "2021-01-26", "r", "g", "85"], ["86", "2021-02-23", "r", "g", "86"], ["87", "2021-03-23", "r", "g", "87"], ["88", "2021-04-19", "r", "g", "88"], ["89", "2021-06-01", "r", "g", "89"], ["90", "2021-07-13", "r", "g", "90"], ["91", "2021-08-10", "r", "g", "91"], ["92", "2021-09-07", "r", "g", "92"], ["93", "2021-10-05", "r", "g", "93"], ["94", "2021-11-02", "r", "g", "94"], ["95", "2021-12-07", "r", "g", "95"], ["96", "2022-01-11", "r", "g", "96"], ["97", "2022-02-08", "r", "g", "97"], ["98", "2022-03-08", "r", "g", "98"], ["99", "2022-04-05", "r", "g", "99"], ["100", "2022-05-03", "r", "g", "100"], ["101", "2022-05-31", "r", "g", "101"], ["102", "2022-06-28", "r", "g", "102"], ["103", "2022-07-26", "r", "g", "103"], ["104", "2022-08-23", "r", "g", "104"], ["105", "2022-09-20", "r", "g", "105"], ["106", "2022-10-18", "r", "g", "106"], ["107", "2022-11-15", "r", "g", "107"], ["108", "2022-12-13", "r", "g", "108"], ["109", "2023-01-17", "r", "g", "109"], ["110", "2023-02-14", "r", "g", "110"], ["111", "2023-03-14", "r", "g", "111"], ["112", "2023-04-11", "r", "g", "112"], ["113", "2023-05-09", "r", "g", "113"], ["114", "2023-06-06", "r", "g", "114"], ["115", "2023-07-04", "r", "g", "115"], ["116", "2023-08-01", "r", "g", "116"], ["117", "2023-08-29", "r", "g", "117"], ["118", "2023-09-26", "r", "g", "118"], ["119", "2023-10-24", "r", "g", "119"], ["120", "2023-11-21", "r", "g", "120"], ["121", "2023-12-19", "r", "g", "121"], ["122", "2024-01-23", "r", "g", "122"], ["123", "2024-02-20", "r", "g", "123"], ["124", "2024-03-19", "r", "g", "124"], ["125", "2024-04-16", "r", "g", "125"], ["126", "2024-05-14", "r", "g", "126"], ["127", "2024-06-11", "r", "g", "127"], ["128", "2024-07-09", "r", "g", "128"], ["129", "2024-08-06", "r", "g", "129"], ["130", "2024-09-03", "r", "g", "130"], ["131", "2024-10-01", "r", "g", "131"], ["132", "2024-10-29", "r", "g", "132"], ["133", "2024-11-26", "r", "g", "133"], ["134", "2025-01-07", "r", "g", "134"], ["135", "2025-02-04", "r", "g", "135"], ["136", "2025-03-04", "r", "g", "136"], ["137", "2025-04-01", "r", "g", "137"], ["138", "2025-04-29", "r", "g", "138"], ["139", "2025-05-27", "r", "g", "139"], ["140", "2025-06-24", "e", "g", "140"], ["141", "2025-07-22", "r", "g", "141"], ["142", "2025-08-19", "r", "g", "142"], ["143", "2025-09-16", "r", "g", "143"], ["144", "2025-10-14", "r", "g", "144"], ["145", "2025-11-11", "r", "g", "145"], ["146", "2025-12-09", "r", "g", "146"], ["147", "2026-01-13", "c", "g", "147"], ["148", "2026-02-24", "b", "g", "148"], ["149", "2026-03-24", "n", "g", "149"], ["150", "2026-04-21", "p", "g", "150"], ["1.5", "2005-11-29", "r", "g", "1.8"], ["3.5", "2009-06-30", "r", "g", "1.9.1"], ["3.6", "2010-01-21", "r", "g", "1.9.2"]] }, firefox_android: { releases: [["4", "2011-03-29", "r", "g", "2"], ["5", "2011-06-21", "r", "g", "5"], ["6", "2011-08-16", "r", "g", "6"], ["7", "2011-09-27", "r", "g", "7"], ["8", "2011-11-08", "r", "g", "8"], ["9", "2011-12-21", "r", "g", "9"], ["10", "2012-01-31", "r", "g", "10"], ["14", "2012-06-26", "r", "g", "14"], ["15", "2012-08-28", "r", "g", "15"], ["16", "2012-10-09", "r", "g", "16"], ["17", "2012-11-20", "r", "g", "17"], ["18", "2013-01-08", "r", "g", "18"], ["19", "2013-02-19", "r", "g", "19"], ["20", "2013-04-02", "r", "g", "20"], ["21", "2013-05-14", "r", "g", "21"], ["22", "2013-06-25", "r", "g", "22"], ["23", "2013-08-06", "r", "g", "23"], ["24", "2013-09-17", "r", "g", "24"], ["25", "2013-10-29", "r", "g", "25"], ["26", "2013-12-10", "r", "g", "26"], ["27", "2014-02-04", "r", "g", "27"], ["28", "2014-03-18", "r", "g", "28"], ["29", "2014-04-29", "r", "g", "29"], ["30", "2014-06-10", "r", "g", "30"], ["31", "2014-07-22", "r", "g", "31"], ["32", "2014-09-02", "r", "g", "32"], ["33", "2014-10-14", "r", "g", "33"], ["34", "2014-12-01", "r", "g", "34"], ["35", "2015-01-13", "r", "g", "35"], ["36", "2015-02-27", "r", "g", "36"], ["37", "2015-03-31", "r", "g", "37"], ["38", "2015-05-12", "r", "g", "38"], ["39", "2015-07-02", "r", "g", "39"], ["40", "2015-08-11", "r", "g", "40"], ["41", "2015-09-22", "r", "g", "41"], ["42", "2015-11-03", "r", "g", "42"], ["43", "2015-12-15", "r", "g", "43"], ["44", "2016-01-26", "r", "g", "44"], ["45", "2016-03-08", "r", "g", "45"], ["46", "2016-04-26", "r", "g", "46"], ["47", "2016-06-07", "r", "g", "47"], ["48", "2016-08-02", "r", "g", "48"], ["49", "2016-09-20", "r", "g", "49"], ["50", "2016-11-15", "r", "g", "50"], ["51", "2017-01-24", "r", "g", "51"], ["52", "2017-03-07", "r", "g", "52"], ["53", "2017-04-19", "r", "g", "53"], ["54", "2017-06-13", "r", "g", "54"], ["55", "2017-08-08", "r", "g", "55"], ["56", "2017-09-28", "r", "g", "56"], ["57", "2017-11-28", "r", "g", "57"], ["58", "2018-01-22", "r", "g", "58"], ["59", "2018-03-13", "r", "g", "59"], ["60", "2018-05-09", "r", "g", "60"], ["61", "2018-06-26", "r", "g", "61"], ["62", "2018-09-05", "r", "g", "62"], ["63", "2018-10-23", "r", "g", "63"], ["64", "2018-12-11", "r", "g", "64"], ["65", "2019-01-29", "r", "g", "65"], ["66", "2019-03-19", "r", "g", "66"], ["67", "2019-05-21", "r", "g", "67"], ["68", "2019-07-09", "r", "g", "68"], ["79", "2020-07-28", "r", "g", "79"], ["80", "2020-08-31", "r", "g", "80"], ["81", "2020-09-22", "r", "g", "81"], ["82", "2020-10-20", "r", "g", "82"], ["83", "2020-11-17", "r", "g", "83"], ["84", "2020-12-15", "r", "g", "84"], ["85", "2021-01-26", "r", "g", "85"], ["86", "2021-02-23", "r", "g", "86"], ["87", "2021-03-23", "r", "g", "87"], ["88", "2021-04-19", "r", "g", "88"], ["89", "2021-06-01", "r", "g", "89"], ["90", "2021-07-13", "r", "g", "90"], ["91", "2021-08-10", "r", "g", "91"], ["92", "2021-09-07", "r", "g", "92"], ["93", "2021-10-05", "r", "g", "93"], ["94", "2021-11-02", "r", "g", "94"], ["95", "2021-12-07", "r", "g", "95"], ["96", "2022-01-11", "r", "g", "96"], ["97", "2022-02-08", "r", "g", "97"], ["98", "2022-03-08", "r", "g", "98"], ["99", "2022-04-05", "r", "g", "99"], ["100", "2022-05-03", "r", "g", "100"], ["101", "2022-05-31", "r", "g", "101"], ["102", "2022-06-28", "r", "g", "102"], ["103", "2022-07-26", "r", "g", "103"], ["104", "2022-08-23", "r", "g", "104"], ["105", "2022-09-20", "r", "g", "105"], ["106", "2022-10-18", "r", "g", "106"], ["107", "2022-11-15", "r", "g", "107"], ["108", "2022-12-13", "r", "g", "108"], ["109", "2023-01-17", "r", "g", "109"], ["110", "2023-02-14", "r", "g", "110"], ["111", "2023-03-14", "r", "g", "111"], ["112", "2023-04-11", "r", "g", "112"], ["113", "2023-05-09", "r", "g", "113"], ["114", "2023-06-06", "r", "g", "114"], ["115", "2023-07-04", "r", "g", "115"], ["116", "2023-08-01", "r", "g", "116"], ["117", "2023-08-29", "r", "g", "117"], ["118", "2023-09-26", "r", "g", "118"], ["119", "2023-10-24", "r", "g", "119"], ["120", "2023-11-21", "r", "g", "120"], ["121", "2023-12-19", "r", "g", "121"], ["122", "2024-01-23", "r", "g", "122"], ["123", "2024-02-20", "r", "g", "123"], ["124", "2024-03-19", "r", "g", "124"], ["125", "2024-04-16", "r", "g", "125"], ["126", "2024-05-14", "r", "g", "126"], ["127", "2024-06-11", "r", "g", "127"], ["128", "2024-07-09", "r", "g", "128"], ["129", "2024-08-06", "r", "g", "129"], ["130", "2024-09-03", "r", "g", "130"], ["131", "2024-10-01", "r", "g", "131"], ["132", "2024-10-29", "r", "g", "132"], ["133", "2024-11-26", "r", "g", "133"], ["134", "2025-01-07", "r", "g", "134"], ["135", "2025-02-04", "r", "g", "135"], ["136", "2025-03-04", "r", "g", "136"], ["137", "2025-04-01", "r", "g", "137"], ["138", "2025-04-29", "r", "g", "138"], ["139", "2025-05-27", "r", "g", "139"], ["140", "2025-06-24", "e", "g", "140"], ["141", "2025-07-22", "r", "g", "141"], ["142", "2025-08-19", "r", "g", "142"], ["143", "2025-09-16", "r", "g", "143"], ["144", "2025-10-14", "r", "g", "144"], ["145", "2025-11-11", "r", "g", "145"], ["146", "2025-12-09", "r", "g", "146"], ["147", "2026-01-13", "c", "g", "147"], ["148", "2026-02-24", "b", "g", "148"], ["149", "2026-03-24", "n", "g", "149"], ["150", "2026-04-21", "p", "g", "150"]] }, opera: { releases: [["2", "1996-07-14", "r", null, null], ["3", "1997-12-01", "r", null, null], ["4", "2000-06-28", "r", null, null], ["5", "2000-12-06", "r", null, null], ["6", "2001-12-18", "r", null, null], ["7", "2003-01-28", "r", "p", "1"], ["8", "2005-04-19", "r", "p", "1"], ["9", "2006-06-20", "r", "p", "2"], ["10", "2009-09-01", "r", "p", "2.2"], ["11", "2010-12-16", "r", "p", "2.7"], ["12", "2012-06-14", "r", "p", "2.10"], ["15", "2013-07-02", "r", "b", "28"], ["16", "2013-08-27", "r", "b", "29"], ["17", "2013-10-08", "r", "b", "30"], ["18", "2013-11-19", "r", "b", "31"], ["19", "2014-01-28", "r", "b", "32"], ["20", "2014-03-04", "r", "b", "33"], ["21", "2014-05-06", "r", "b", "34"], ["22", "2014-06-03", "r", "b", "35"], ["23", "2014-07-22", "r", "b", "36"], ["24", "2014-09-02", "r", "b", "37"], ["25", "2014-10-15", "r", "b", "38"], ["26", "2014-12-03", "r", "b", "39"], ["27", "2015-01-27", "r", "b", "40"], ["28", "2015-03-10", "r", "b", "41"], ["29", "2015-04-28", "r", "b", "42"], ["30", "2015-06-09", "r", "b", "43"], ["31", "2015-08-04", "r", "b", "44"], ["32", "2015-09-15", "r", "b", "45"], ["33", "2015-10-27", "r", "b", "46"], ["34", "2015-12-08", "r", "b", "47"], ["35", "2016-02-02", "r", "b", "48"], ["36", "2016-03-15", "r", "b", "49"], ["37", "2016-05-04", "r", "b", "50"], ["38", "2016-06-08", "r", "b", "51"], ["39", "2016-08-02", "r", "b", "52"], ["40", "2016-09-20", "r", "b", "53"], ["41", "2016-10-25", "r", "b", "54"], ["42", "2016-12-13", "r", "b", "55"], ["43", "2017-02-07", "r", "b", "56"], ["44", "2017-03-21", "r", "b", "57"], ["45", "2017-05-10", "r", "b", "58"], ["46", "2017-06-22", "r", "b", "59"], ["47", "2017-08-09", "r", "b", "60"], ["48", "2017-09-27", "r", "b", "61"], ["49", "2017-11-08", "r", "b", "62"], ["50", "2018-01-04", "r", "b", "63"], ["51", "2018-02-07", "r", "b", "64"], ["52", "2018-03-22", "r", "b", "65"], ["53", "2018-05-10", "r", "b", "66"], ["54", "2018-06-28", "r", "b", "67"], ["55", "2018-08-16", "r", "b", "68"], ["56", "2018-09-25", "r", "b", "69"], ["57", "2018-11-28", "r", "b", "70"], ["58", "2019-01-23", "r", "b", "71"], ["60", "2019-04-09", "r", "b", "73"], ["62", "2019-06-27", "r", "b", "75"], ["63", "2019-08-20", "r", "b", "76"], ["64", "2019-10-07", "r", "b", "77"], ["65", "2019-11-13", "r", "b", "78"], ["66", "2020-01-07", "r", "b", "79"], ["67", "2020-03-03", "r", "b", "80"], ["68", "2020-04-22", "r", "b", "81"], ["69", "2020-06-24", "r", "b", "83"], ["70", "2020-07-27", "r", "b", "84"], ["71", "2020-09-15", "r", "b", "85"], ["72", "2020-10-21", "r", "b", "86"], ["73", "2020-12-09", "r", "b", "87"], ["74", "2021-02-02", "r", "b", "88"], ["75", "2021-03-24", "r", "b", "89"], ["76", "2021-04-28", "r", "b", "90"], ["77", "2021-06-09", "r", "b", "91"], ["78", "2021-08-03", "r", "b", "92"], ["79", "2021-09-14", "r", "b", "93"], ["80", "2021-10-05", "r", "b", "94"], ["81", "2021-11-04", "r", "b", "95"], ["82", "2021-12-02", "r", "b", "96"], ["83", "2022-01-19", "r", "b", "97"], ["84", "2022-02-16", "r", "b", "98"], ["85", "2022-03-23", "r", "b", "99"], ["86", "2022-04-20", "r", "b", "100"], ["87", "2022-05-17", "r", "b", "101"], ["88", "2022-06-08", "r", "b", "102"], ["89", "2022-07-07", "r", "b", "103"], ["90", "2022-08-18", "r", "b", "104"], ["91", "2022-09-14", "r", "b", "105"], ["92", "2022-10-19", "r", "b", "106"], ["93", "2022-11-17", "r", "b", "107"], ["94", "2022-12-15", "r", "b", "108"], ["95", "2023-02-01", "r", "b", "109"], ["96", "2023-02-22", "r", "b", "110"], ["97", "2023-03-22", "r", "b", "111"], ["98", "2023-04-20", "r", "b", "112"], ["99", "2023-05-16", "r", "b", "113"], ["100", "2023-06-29", "r", "b", "114"], ["101", "2023-07-26", "r", "b", "115"], ["102", "2023-08-23", "r", "b", "116"], ["103", "2023-10-03", "r", "b", "117"], ["104", "2023-10-23", "r", "b", "118"], ["105", "2023-11-14", "r", "b", "119"], ["106", "2023-12-19", "r", "b", "120"], ["107", "2024-02-07", "r", "b", "121"], ["108", "2024-03-05", "r", "b", "122"], ["109", "2024-03-27", "r", "b", "123"], ["110", "2024-05-14", "r", "b", "124"], ["111", "2024-06-12", "r", "b", "125"], ["112", "2024-07-11", "r", "b", "126"], ["113", "2024-08-22", "r", "b", "127"], ["114", "2024-09-25", "r", "b", "128"], ["115", "2024-11-27", "r", "b", "130"], ["116", "2025-01-08", "r", "b", "131"], ["117", "2025-02-13", "r", "b", "132"], ["118", "2025-04-15", "r", "b", "133"], ["119", "2025-05-13", "r", "b", "134"], ["120", "2025-07-02", "r", "b", "135"], ["121", "2025-08-27", "r", "b", "137"], ["122", "2025-09-11", "r", "b", "138"], ["123", "2025-10-28", "c", "b", "139"], ["124", null, "b", "b", "140"], ["125", null, "n", "b", "141"], ["10.1", "2009-11-23", "r", "p", "2.2"], ["10.5", "2010-03-02", "r", "p", "2.5"], ["10.6", "2010-07-01", "r", "p", "2.6"], ["11.1", "2011-04-12", "r", "p", "2.8"], ["11.5", "2011-06-28", "r", "p", "2.9"], ["11.6", "2011-12-06", "r", "p", "2.10"], ["12.1", "2012-11-20", "r", "p", "2.12"], ["3.5", "1998-11-18", "r", null, null], ["3.6", "1999-05-06", "r", null, null], ["5.1", "2001-04-10", "r", null, null], ["7.1", "2003-04-11", "r", "p", "1"], ["7.2", "2003-09-23", "r", "p", "1"], ["7.5", "2004-05-12", "r", "p", "1"], ["8.5", "2005-09-20", "r", "p", "1"], ["9.1", "2006-12-18", "r", "p", "2"], ["9.2", "2007-04-11", "r", "p", "2"], ["9.5", "2008-06-12", "r", "p", "2.1"], ["9.6", "2008-10-08", "r", "p", "2.1"]] }, opera_android: { releases: [["11", "2011-03-22", "r", "p", "2.7"], ["12", "2012-02-25", "r", "p", "2.10"], ["14", "2013-05-21", "r", "w", "537.31"], ["15", "2013-07-08", "r", "b", "28"], ["16", "2013-09-18", "r", "b", "29"], ["18", "2013-11-20", "r", "b", "31"], ["19", "2014-01-28", "r", "b", "32"], ["20", "2014-03-06", "r", "b", "33"], ["21", "2014-04-22", "r", "b", "34"], ["22", "2014-06-17", "r", "b", "35"], ["24", "2014-09-10", "r", "b", "37"], ["25", "2014-10-16", "r", "b", "38"], ["26", "2014-12-02", "r", "b", "39"], ["27", "2015-01-29", "r", "b", "40"], ["28", "2015-03-10", "r", "b", "41"], ["29", "2015-04-28", "r", "b", "42"], ["30", "2015-06-10", "r", "b", "43"], ["32", "2015-09-23", "r", "b", "45"], ["33", "2015-11-03", "r", "b", "46"], ["34", "2015-12-16", "r", "b", "47"], ["35", "2016-02-04", "r", "b", "48"], ["36", "2016-03-31", "r", "b", "49"], ["37", "2016-06-16", "r", "b", "50"], ["41", "2016-10-25", "r", "b", "54"], ["42", "2017-01-21", "r", "b", "55"], ["43", "2017-09-27", "r", "b", "59"], ["44", "2017-12-11", "r", "b", "60"], ["45", "2018-02-15", "r", "b", "61"], ["46", "2018-05-14", "r", "b", "63"], ["47", "2018-07-23", "r", "b", "66"], ["48", "2018-11-08", "r", "b", "69"], ["49", "2018-12-07", "r", "b", "70"], ["50", "2019-02-18", "r", "b", "71"], ["51", "2019-03-21", "r", "b", "72"], ["52", "2019-05-17", "r", "b", "73"], ["53", "2019-07-11", "r", "b", "74"], ["54", "2019-10-18", "r", "b", "76"], ["55", "2019-12-03", "r", "b", "77"], ["56", "2020-02-06", "r", "b", "78"], ["57", "2020-03-30", "r", "b", "80"], ["58", "2020-05-13", "r", "b", "81"], ["59", "2020-06-30", "r", "b", "83"], ["60", "2020-09-23", "r", "b", "85"], ["61", "2020-12-07", "r", "b", "86"], ["62", "2021-02-16", "r", "b", "87"], ["63", "2021-04-16", "r", "b", "89"], ["64", "2021-05-25", "r", "b", "91"], ["65", "2021-10-20", "r", "b", "92"], ["66", "2021-12-15", "r", "b", "94"], ["67", "2022-01-31", "r", "b", "96"], ["68", "2022-03-30", "r", "b", "99"], ["69", "2022-05-09", "r", "b", "100"], ["70", "2022-06-29", "r", "b", "102"], ["71", "2022-09-16", "r", "b", "104"], ["72", "2022-10-21", "r", "b", "106"], ["73", "2023-01-17", "r", "b", "108"], ["74", "2023-03-13", "r", "b", "110"], ["75", "2023-05-17", "r", "b", "112"], ["76", "2023-06-26", "r", "b", "114"], ["77", "2023-08-31", "r", "b", "115"], ["78", "2023-10-23", "r", "b", "117"], ["79", "2023-12-06", "r", "b", "119"], ["80", "2024-01-25", "r", "b", "120"], ["81", "2024-03-14", "r", "b", "122"], ["82", "2024-05-02", "r", "b", "124"], ["83", "2024-06-25", "r", "b", "126"], ["84", "2024-08-26", "r", "b", "127"], ["85", "2024-10-29", "r", "b", "128"], ["86", "2024-12-02", "r", "b", "130"], ["87", "2025-01-22", "r", "b", "132"], ["88", "2025-03-19", "r", "b", "134"], ["89", "2025-04-29", "r", "b", "135"], ["90", "2025-06-18", "r", "b", "137"], ["91", "2025-08-19", "r", "b", "139"], ["92", "2025-10-08", "r", "b", "140"], ["93", "2025-11-25", "r", "b", "142"], ["94", "2026-01-13", "c", "b", "143"], ["10.1", "2010-11-09", "r", "p", "2.5"], ["11.1", "2011-06-30", "r", "p", "2.8"], ["11.5", "2011-10-12", "r", "p", "2.9"], ["12.1", "2012-10-09", "r", "p", "2.11"]] }, safari: { releases: [["1", "2003-06-23", "r", "w", "85"], ["2", "2005-04-29", "r", "w", "412"], ["3", "2007-10-26", "r", "w", "523.10"], ["4", "2009-06-08", "r", "w", "530.17"], ["5", "2010-06-07", "r", "w", "533.16"], ["6", "2012-07-25", "r", "w", "536.25"], ["7", "2013-10-22", "r", "w", "537.71"], ["8", "2014-10-16", "r", "w", "538.35"], ["9", "2015-09-30", "r", "w", "601.1.56"], ["10", "2016-09-20", "r", "w", "602.1.50"], ["11", "2017-09-19", "r", "w", "604.2.4"], ["12", "2018-09-17", "r", "w", "606.1.36"], ["13", "2019-09-19", "r", "w", "608.2.11"], ["14", "2020-09-16", "r", "w", "610.1.28"], ["15", "2021-09-20", "r", "w", "612.1.27"], ["16", "2022-09-12", "r", "w", "614.1.25"], ["17", "2023-09-18", "r", "w", "616.1.27"], ["18", "2024-09-16", "r", "w", "619.1.26"], ["26", "2025-09-15", "r", "w", "622.1.22"], ["1.1", "2003-10-24", "r", "w", "100"], ["1.2", "2004-02-02", "r", "w", "125"], ["1.3", "2005-04-15", "r", "w", "312"], ["10.1", "2017-03-27", "r", "w", "603.2.1"], ["11.1", "2018-04-12", "r", "w", "605.1.33"], ["12.1", "2019-03-25", "r", "w", "607.1.40"], ["13.1", "2020-03-24", "r", "w", "609.1.20"], ["14.1", "2021-04-26", "r", "w", "611.1.21"], ["15.1", "2021-10-25", "r", "w", "612.2.9"], ["15.2", "2021-12-13", "r", "w", "612.3.6"], ["15.3", "2022-01-26", "r", "w", "612.4.9"], ["15.4", "2022-03-14", "r", "w", "613.1.17"], ["15.5", "2022-05-16", "r", "w", "613.2.7"], ["15.6", "2022-07-20", "r", "w", "613.3.9"], ["16.1", "2022-10-24", "r", "w", "614.2.9"], ["16.2", "2022-12-13", "r", "w", "614.3.7"], ["16.3", "2023-01-23", "r", "w", "614.4.6"], ["16.4", "2023-03-27", "r", "w", "615.1.26"], ["16.5", "2023-05-18", "r", "w", "615.2.9"], ["16.6", "2023-07-24", "r", "w", "615.3.12"], ["17.1", "2023-10-25", "r", "w", "616.2.9"], ["17.2", "2023-12-11", "r", "w", "617.1.17"], ["17.3", "2024-01-22", "r", "w", "617.2.4"], ["17.4", "2024-03-05", "r", "w", "618.1.15"], ["17.5", "2024-05-13", "r", "w", "618.2.12"], ["17.6", "2024-07-29", "r", "w", "618.3.11"], ["18.1", "2024-10-28", "r", "w", "619.2.8"], ["18.2", "2024-12-11", "r", "w", "620.1.16"], ["18.3", "2025-01-27", "r", "w", "620.2.4"], ["18.4", "2025-03-31", "r", "w", "621.1.15"], ["18.5", "2025-05-12", "r", "w", "621.2.5"], ["18.6", "2025-07-29", "r", "w", "621.3.11"], ["26.1", "2025-11-03", "r", "w", "622.2.11"], ["26.2", "2025-12-12", "c", "w", "623.1.14"], ["26.3", "2025-12-15", "b", "w", "623.2.2"], ["3.1", "2008-03-18", "r", "w", "525.13"], ["5.1", "2011-07-20", "r", "w", "534.48"], ["9.1", "2016-03-21", "r", "w", "601.5.17"]] }, safari_ios: { releases: [["1", "2007-06-29", "r", "w", "522.11"], ["2", "2008-07-11", "r", "w", "525.18"], ["3", "2009-06-17", "r", "w", "528.18"], ["4", "2010-06-21", "r", "w", "532.9"], ["5", "2011-10-12", "r", "w", "534.46"], ["6", "2012-09-10", "r", "w", "536.26"], ["7", "2013-09-18", "r", "w", "537.51"], ["8", "2014-09-17", "r", "w", "600.1.4"], ["9", "2015-09-16", "r", "w", "601.1.56"], ["10", "2016-09-13", "r", "w", "602.1.50"], ["11", "2017-09-19", "r", "w", "604.2.4"], ["12", "2018-09-17", "r", "w", "606.1.36"], ["13", "2019-09-19", "r", "w", "608.2.11"], ["14", "2020-09-16", "r", "w", "610.1.28"], ["15", "2021-09-20", "r", "w", "612.1.27"], ["16", "2022-09-12", "r", "w", "614.1.25"], ["17", "2023-09-18", "r", "w", "616.1.27"], ["18", "2024-09-16", "r", "w", "619.1.26"], ["26", "2025-09-15", "r", "w", "622.1.22"], ["10.3", "2017-03-27", "r", "w", "603.2.1"], ["11.3", "2018-03-29", "r", "w", "605.1.33"], ["12.2", "2019-03-25", "r", "w", "607.1.40"], ["13.4", "2020-03-24", "r", "w", "609.1.20"], ["14.5", "2021-04-26", "r", "w", "611.1.21"], ["15.1", "2021-10-25", "r", "w", "612.2.9"], ["15.2", "2021-12-13", "r", "w", "612.3.6"], ["15.3", "2022-01-26", "r", "w", "612.4.9"], ["15.4", "2022-03-14", "r", "w", "613.1.17"], ["15.5", "2022-05-16", "r", "w", "613.2.7"], ["15.6", "2022-07-20", "r", "w", "613.3.9"], ["16.1", "2022-10-24", "r", "w", "614.2.9"], ["16.2", "2022-12-13", "r", "w", "614.3.7"], ["16.3", "2023-01-23", "r", "w", "614.4.6"], ["16.4", "2023-03-27", "r", "w", "615.1.26"], ["16.5", "2023-05-18", "r", "w", "615.2.9"], ["16.6", "2023-07-24", "r", "w", "615.3.12"], ["17.1", "2023-10-25", "r", "w", "616.2.9"], ["17.2", "2023-12-11", "r", "w", "617.1.17"], ["17.3", "2024-01-22", "r", "w", "617.2.4"], ["17.4", "2024-03-05", "r", "w", "618.1.15"], ["17.5", "2024-05-13", "r", "w", "618.2.12"], ["17.6", "2024-07-29", "r", "w", "618.3.11"], ["18.1", "2024-10-28", "r", "w", "619.2.8"], ["18.2", "2024-12-11", "r", "w", "620.1.16"], ["18.3", "2025-01-27", "r", "w", "620.2.4"], ["18.4", "2025-03-31", "r", "w", "621.1.15"], ["18.5", "2025-05-12", "r", "w", "621.2.5"], ["18.6", "2025-07-29", "r", "w", "621.3.11"], ["26.1", "2025-11-03", "r", "w", "622.2.11"], ["26.2", "2025-12-12", "c", "w", "623.1.14"], ["26.3", "2025-12-15", "b", "w", "623.2.2"], ["3.2", "2010-04-03", "r", "w", "531.21"], ["4.2", "2010-11-22", "r", "w", "533.17"], ["9.3", "2016-03-21", "r", "w", "601.5.17"]] }, samsunginternet_android: { releases: [["1.0", "2013-04-27", "r", "w", "535.19"], ["1.5", "2013-09-25", "r", "b", "28"], ["1.6", "2014-04-11", "r", "b", "28"], ["10.0", "2019-08-22", "r", "b", "71"], ["10.2", "2019-10-09", "r", "b", "71"], ["11.0", "2019-12-05", "r", "b", "75"], ["11.2", "2020-03-22", "r", "b", "75"], ["12.0", "2020-06-19", "r", "b", "79"], ["12.1", "2020-07-07", "r", "b", "79"], ["13.0", "2020-12-02", "r", "b", "83"], ["13.2", "2021-01-20", "r", "b", "83"], ["14.0", "2021-04-17", "r", "b", "87"], ["14.2", "2021-06-25", "r", "b", "87"], ["15.0", "2021-08-13", "r", "b", "90"], ["16.0", "2021-11-25", "r", "b", "92"], ["16.2", "2022-03-06", "r", "b", "92"], ["17.0", "2022-05-04", "r", "b", "96"], ["18.0", "2022-08-08", "r", "b", "99"], ["18.1", "2022-09-09", "r", "b", "99"], ["19.0", "2022-11-01", "r", "b", "102"], ["19.1", "2022-11-08", "r", "b", "102"], ["2.0", "2014-10-17", "r", "b", "34"], ["2.1", "2015-01-07", "r", "b", "34"], ["20.0", "2023-02-10", "r", "b", "106"], ["21.0", "2023-05-19", "r", "b", "110"], ["22.0", "2023-07-14", "r", "b", "111"], ["23.0", "2023-10-18", "r", "b", "115"], ["24.0", "2024-01-25", "r", "b", "117"], ["25.0", "2024-04-24", "r", "b", "121"], ["26.0", "2024-06-07", "r", "b", "122"], ["27.0", "2024-11-06", "r", "b", "125"], ["28.0", "2025-04-02", "r", "b", "130"], ["29.0", "2025-10-25", "c", "b", "136"], ["3.0", "2015-04-10", "r", "b", "38"], ["3.2", "2015-08-24", "r", "b", "38"], ["4.0", "2016-03-11", "r", "b", "44"], ["4.2", "2016-08-02", "r", "b", "44"], ["5.0", "2016-12-15", "r", "b", "51"], ["5.2", "2017-04-21", "r", "b", "51"], ["5.4", "2017-05-17", "r", "b", "51"], ["6.0", "2017-08-23", "r", "b", "56"], ["6.2", "2017-10-26", "r", "b", "56"], ["6.4", "2018-02-19", "r", "b", "56"], ["7.0", "2018-03-16", "r", "b", "59"], ["7.2", "2018-06-20", "r", "b", "59"], ["7.4", "2018-09-12", "r", "b", "59"], ["8.0", "2018-07-18", "r", "b", "63"], ["8.2", "2018-12-21", "r", "b", "63"], ["9.0", "2018-09-15", "r", "b", "67"], ["9.2", "2019-04-02", "r", "b", "67"], ["9.4", "2019-07-25", "r", "b", "67"]] }, webview_android: { releases: [["1", "2008-09-23", "r", "w", "523.12"], ["2", "2009-10-26", "r", "w", "530.17"], ["3", "2011-02-22", "r", "w", "534.13"], ["4", "2011-10-18", "r", "w", "534.30"], ["37", "2014-09-03", "r", "b", "37"], ["38", "2014-10-08", "r", "b", "38"], ["39", "2014-11-12", "r", "b", "39"], ["40", "2015-01-21", "r", "b", "40"], ["41", "2015-03-11", "r", "b", "41"], ["42", "2015-04-15", "r", "b", "42"], ["43", "2015-05-27", "r", "b", "43"], ["44", "2015-07-29", "r", "b", "44"], ["45", "2015-09-01", "r", "b", "45"], ["46", "2015-10-14", "r", "b", "46"], ["47", "2015-12-02", "r", "b", "47"], ["48", "2016-01-26", "r", "b", "48"], ["49", "2016-03-09", "r", "b", "49"], ["50", "2016-04-13", "r", "b", "50"], ["51", "2016-06-08", "r", "b", "51"], ["52", "2016-07-27", "r", "b", "52"], ["53", "2016-09-07", "r", "b", "53"], ["54", "2016-10-19", "r", "b", "54"], ["55", "2016-12-06", "r", "b", "55"], ["56", "2017-02-01", "r", "b", "56"], ["57", "2017-03-16", "r", "b", "57"], ["58", "2017-04-25", "r", "b", "58"], ["59", "2017-06-06", "r", "b", "59"], ["60", "2017-08-01", "r", "b", "60"], ["61", "2017-09-05", "r", "b", "61"], ["62", "2017-10-24", "r", "b", "62"], ["63", "2017-12-05", "r", "b", "63"], ["64", "2018-01-23", "r", "b", "64"], ["65", "2018-03-06", "r", "b", "65"], ["66", "2018-04-17", "r", "b", "66"], ["67", "2018-05-31", "r", "b", "67"], ["68", "2018-07-24", "r", "b", "68"], ["69", "2018-09-04", "r", "b", "69"], ["70", "2018-10-17", "r", "b", "70"], ["71", "2018-12-04", "r", "b", "71"], ["72", "2019-01-29", "r", "b", "72"], ["73", "2019-03-12", "r", "b", "73"], ["74", "2019-04-24", "r", "b", "74"], ["75", "2019-06-04", "r", "b", "75"], ["76", "2019-07-30", "r", "b", "76"], ["77", "2019-09-10", "r", "b", "77"], ["78", "2019-10-22", "r", "b", "78"], ["79", "2019-12-17", "r", "b", "79"], ["80", "2020-02-04", "r", "b", "80"], ["81", "2020-04-07", "r", "b", "81"], ["83", "2020-05-19", "r", "b", "83"], ["84", "2020-07-27", "r", "b", "84"], ["85", "2020-08-25", "r", "b", "85"], ["86", "2020-10-20", "r", "b", "86"], ["87", "2020-11-17", "r", "b", "87"], ["88", "2021-01-19", "r", "b", "88"], ["89", "2021-03-02", "r", "b", "89"], ["90", "2021-04-13", "r", "b", "90"], ["91", "2021-05-25", "r", "b", "91"], ["92", "2021-07-20", "r", "b", "92"], ["93", "2021-08-31", "r", "b", "93"], ["94", "2021-09-21", "r", "b", "94"], ["95", "2021-10-19", "r", "b", "95"], ["96", "2021-11-15", "r", "b", "96"], ["97", "2022-01-04", "r", "b", "97"], ["98", "2022-02-01", "r", "b", "98"], ["99", "2022-03-01", "r", "b", "99"], ["100", "2022-03-29", "r", "b", "100"], ["101", "2022-04-26", "r", "b", "101"], ["102", "2022-05-24", "r", "b", "102"], ["103", "2022-06-21", "r", "b", "103"], ["104", "2022-08-02", "r", "b", "104"], ["105", "2022-09-02", "r", "b", "105"], ["106", "2022-09-27", "r", "b", "106"], ["107", "2022-10-25", "r", "b", "107"], ["108", "2022-11-29", "r", "b", "108"], ["109", "2023-01-10", "r", "b", "109"], ["110", "2023-02-07", "r", "b", "110"], ["111", "2023-03-01", "r", "b", "111"], ["112", "2023-04-04", "r", "b", "112"], ["113", "2023-05-02", "r", "b", "113"], ["114", "2023-05-30", "r", "b", "114"], ["115", "2023-07-21", "r", "b", "115"], ["116", "2023-08-15", "r", "b", "116"], ["117", "2023-09-12", "r", "b", "117"], ["118", "2023-10-10", "r", "b", "118"], ["119", "2023-10-31", "r", "b", "119"], ["120", "2023-12-05", "r", "b", "120"], ["121", "2024-01-23", "r", "b", "121"], ["122", "2024-02-20", "r", "b", "122"], ["123", "2024-03-19", "r", "b", "123"], ["124", "2024-04-16", "r", "b", "124"], ["125", "2024-05-14", "r", "b", "125"], ["126", "2024-06-11", "r", "b", "126"], ["127", "2024-07-23", "r", "b", "127"], ["128", "2024-08-20", "r", "b", "128"], ["129", "2024-09-17", "r", "b", "129"], ["130", "2024-10-15", "r", "b", "130"], ["131", "2024-11-12", "r", "b", "131"], ["132", "2025-01-14", "r", "b", "132"], ["133", "2025-02-04", "r", "b", "133"], ["134", "2025-03-04", "r", "b", "134"], ["135", "2025-04-01", "r", "b", "135"], ["136", "2025-04-29", "r", "b", "136"], ["137", "2025-05-27", "r", "b", "137"], ["138", "2025-06-24", "r", "b", "138"], ["139", "2025-08-05", "r", "b", "139"], ["140", "2025-09-02", "r", "b", "140"], ["141", "2025-09-30", "r", "b", "141"], ["142", "2025-10-28", "r", "b", "142"], ["143", "2025-12-02", "r", "b", "143"], ["144", "2026-01-13", "c", "b", "144"], ["145", "2026-02-10", "b", "b", "145"], ["146", "2026-03-10", "n", "b", "146"], ["147", null, "p", "b", "147"], ["1.5", "2009-04-27", "r", "w", "525.20"], ["2.2", "2010-05-20", "r", "w", "533.1"], ["4.4", "2013-12-09", "r", "b", "30"], ["4.4.3", "2014-06-02", "r", "b", "33"]] } };
    var a5 = { ya_android: { releases: [["1.0", "u", "u", "b", "25"], ["1.5", "u", "u", "b", "22"], ["1.6", "u", "u", "b", "25"], ["1.7", "u", "u", "b", "25"], ["1.20", "u", "u", "b", "25"], ["2.5", "u", "u", "b", "25"], ["3.2", "u", "u", "b", "25"], ["4.6", "u", "u", "b", "25"], ["5.3", "u", "u", "b", "25"], ["5.4", "u", "u", "b", "25"], ["7.4", "u", "u", "b", "25"], ["9.6", "u", "u", "b", "25"], ["10.5", "u", "u", "b", "25"], ["11.4", "u", "u", "b", "25"], ["11.5", "u", "u", "b", "25"], ["12.7", "u", "u", "b", "25"], ["13.9", "u", "u", "b", "28"], ["13.10", "u", "u", "b", "28"], ["13.11", "u", "u", "b", "28"], ["13.12", "u", "u", "b", "30"], ["14.2", "u", "u", "b", "32"], ["14.4", "u", "u", "b", "33"], ["14.5", "u", "u", "b", "34"], ["14.7", "u", "u", "b", "35"], ["14.8", "u", "u", "b", "36"], ["14.10", "u", "u", "b", "37"], ["14.12", "u", "u", "b", "38"], ["15.2", "u", "u", "b", "40"], ["15.4", "u", "u", "b", "41"], ["15.6", "u", "u", "b", "42"], ["15.7", "u", "u", "b", "43"], ["15.9", "u", "u", "b", "44"], ["15.10", "u", "u", "b", "45"], ["15.12", "u", "u", "b", "46"], ["16.2", "u", "u", "b", "47"], ["16.3", "u", "u", "b", "47"], ["16.4", "u", "u", "b", "49"], ["16.6", "u", "u", "b", "50"], ["16.7", "u", "u", "b", "51"], ["16.9", "u", "u", "b", "52"], ["16.10", "u", "u", "b", "53"], ["16.11", "u", "u", "b", "54"], ["17.1", "u", "u", "b", "55"], ["17.3", "u", "u", "b", "56"], ["17.4", "u", "u", "b", "57"], ["17.6", "u", "u", "b", "58"], ["17.7", "u", "u", "b", "59"], ["17.9", "u", "u", "b", "60"], ["17.10", "u", "u", "b", "61"], ["17.11", "u", "u", "b", "62"], ["18.1", "u", "u", "b", "63"], ["18.2", "u", "u", "b", "63"], ["18.3", "u", "u", "b", "64"], ["18.4", "u", "u", "b", "65"], ["18.6", "u", "u", "b", "66"], ["18.7", "u", "u", "b", "67"], ["18.9", "u", "u", "b", "68"], ["18.10", "u", "u", "b", "69"], ["18.11", "u", "u", "b", "70"], ["19.1", "u", "u", "b", "71"], ["19.3", "u", "u", "b", "72"], ["19.4", "u", "u", "b", "73"], ["19.5", "u", "u", "b", "75"], ["19.6", "u", "u", "b", "75"], ["19.7", "u", "u", "b", "75"], ["19.9", "u", "u", "b", "76"], ["19.10", "u", "u", "b", "77"], ["19.11", "u", "u", "b", "78"], ["19.12", "u", "u", "b", "78"], ["20.2", "u", "u", "b", "79"], ["20.3", "u", "u", "b", "80"], ["20.4", "u", "u", "b", "81"], ["20.6", "u", "u", "b", "81"], ["20.7", "u", "u", "b", "83"], ["20.8", "2020-09-02", "u", "b", "84"], ["20.9", "2020-09-27", "u", "b", "85"], ["20.11", "2020-11-11", "u", "b", "86"], ["20.12", "2020-12-20", "u", "b", "87"], ["21.1", "2021-12-31", "u", "b", "88"], ["21.2", "u", "u", "b", "88"], ["21.3", "2021-04-04", "u", "b", "89"], ["21.5", "u", "u", "b", "90"], ["21.6", "2021-09-28", "u", "b", "91"], ["21.8", "2021-09-28", "u", "b", "92"], ["21.9", "2021-09-29", "u", "b", "93"], ["21.11", "2021-10-29", "u", "b", "94"], ["22.1", "2021-12-31", "u", "b", "96"], ["22.3", "2022-03-25", "u", "b", "98"], ["22.4", "u", "u", "b", "92"], ["22.5", "2022-05-20", "u", "b", "100"], ["22.7", "2022-07-07", "u", "b", "102"], ["22.8", "u", "u", "b", "104"], ["22.9", "2022-08-27", "u", "b", "104"], ["22.11", "2022-11-11", "u", "b", "106"], ["23.1", "2023-01-10", "u", "b", "108"], ["23.3", "2023-03-26", "u", "b", "110"], ["23.5", "2023-05-19", "u", "b", "112"], ["23.7", "2023-07-06", "u", "b", "114"], ["23.9", "2023-09-13", "u", "b", "116"], ["23.11", "2023-11-15", "u", "b", "118"], ["24.1", "2024-01-18", "u", "b", "120"], ["24.2", "2024-03-25", "u", "b", "120"], ["24.4", "2024-03-27", "u", "b", "122"], ["24.6", "2024-06-04", "u", "b", "124"], ["24.7", "2024-07-18", "u", "b", "126"], ["24.9", "2024-10-01", "u", "b", "126"], ["24.10", "2024-10-11", "u", "b", "128"], ["24.12", "2024-11-30", "u", "b", "130"], ["25.2", "2025-04-24", "u", "b", "132"], ["25.3", "2025-04-23", "u", "b", "132"], ["25.4", "2025-04-23", "u", "b", "134"], ["25.6", "2025-09-04", "u", "b", "136"], ["25.8", "2025-08-30", "u", "b", "138"], ["25.10", "2025-10-09", "u", "b", "140"], ["25.12", "2025-12-07", "u", "b", "142"]] }, uc_android: { releases: [["10.5", "u", "u", "b", "31"], ["10.7", "u", "u", "b", "31"], ["10.8", "u", "u", "b", "31"], ["10.10", "u", "u", "b", "31"], ["11.0", "u", "u", "b", "31"], ["11.1", "u", "u", "b", "40"], ["11.2", "u", "u", "b", "40"], ["11.3", "u", "u", "b", "40"], ["11.4", "u", "u", "b", "40"], ["11.5", "u", "u", "b", "40"], ["11.6", "u", "u", "b", "57"], ["11.8", "u", "u", "b", "57"], ["11.9", "u", "u", "b", "57"], ["12.0", "u", "u", "b", "57"], ["12.1", "u", "u", "b", "57"], ["12.2", "u", "u", "b", "57"], ["12.3", "u", "u", "b", "57"], ["12.4", "u", "u", "b", "57"], ["12.5", "u", "u", "b", "57"], ["12.6", "u", "u", "b", "57"], ["12.7", "u", "u", "b", "57"], ["12.8", "u", "u", "b", "57"], ["12.9", "u", "u", "b", "57"], ["12.10", "u", "u", "b", "57"], ["12.11", "u", "u", "b", "57"], ["12.12", "u", "u", "b", "57"], ["12.13", "u", "u", "b", "57"], ["12.14", "u", "u", "b", "57"], ["13.0", "u", "u", "b", "57"], ["13.1", "u", "u", "b", "57"], ["13.2", "u", "u", "b", "57"], ["13.3", "2020-09-09", "u", "b", "78"], ["13.4", "2021-09-28", "u", "b", "78"], ["13.5", "2023-08-25", "u", "b", "78"], ["13.6", "2023-12-17", "u", "b", "78"], ["13.7", "2023-06-24", "u", "b", "78"], ["13.8", "2022-04-30", "u", "b", "78"], ["13.9", "2022-05-18", "u", "b", "78"], ["15.0", "2022-08-24", "u", "b", "78"], ["15.1", "2022-11-11", "u", "b", "78"], ["15.2", "2023-04-23", "u", "b", "78"], ["15.3", "2023-03-17", "u", "b", "100"], ["15.4", "2023-10-25", "u", "b", "100"], ["15.5", "2023-08-22", "u", "b", "100"], ["16.0", "2023-08-24", "u", "b", "100"], ["16.1", "2023-10-15", "u", "b", "100"], ["16.2", "2023-12-09", "u", "b", "100"], ["16.3", "2024-03-08", "u", "b", "100"], ["16.4", "2024-10-03", "u", "b", "100"], ["16.5", "2024-05-30", "u", "b", "100"], ["16.6", "2024-07-23", "u", "b", "100"], ["17.0", "2024-08-24", "u", "b", "100"], ["17.1", "2024-09-26", "u", "b", "100"], ["17.2", "2024-11-29", "u", "b", "100"], ["17.3", "2025-01-07", "u", "b", "100"], ["17.4", "2025-02-26", "u", "b", "100"], ["17.5", "2025-04-08", "u", "b", "100"], ["17.6", "2025-05-15", "u", "b", "123"], ["17.7", "2025-06-11", "u", "b", "123"], ["17.8", "2025-07-30", "u", "b", "123"], ["18.0", "2025-08-17", "u", "b", "123"], ["18.1", "2025-10-04", "u", "b", "123"], ["18.2", "2025-11-04", "u", "b", "123"], ["18.3", "2025-12-12", "u", "b", "123"], ["18.4", "2026-01-09", "u", "b", "123"], ["18.5", "2026-01-28", "u", "b", "123"]] }, qq_android: { releases: [["6.0", "u", "u", "b", "37"], ["6.1", "u", "u", "b", "37"], ["6.2", "u", "u", "b", "37"], ["6.3", "u", "u", "b", "37"], ["6.4", "u", "u", "b", "37"], ["6.6", "u", "u", "b", "37"], ["6.7", "u", "u", "b", "37"], ["6.8", "u", "u", "b", "37"], ["6.9", "u", "u", "b", "37"], ["7.0", "u", "u", "b", "37"], ["7.1", "u", "u", "b", "37"], ["7.2", "u", "u", "b", "37"], ["7.3", "u", "u", "b", "37"], ["7.4", "u", "u", "b", "37"], ["7.5", "u", "u", "b", "37"], ["7.6", "u", "u", "b", "37"], ["7.7", "u", "u", "b", "37"], ["7.8", "u", "u", "b", "37"], ["7.9", "u", "u", "b", "37"], ["8.0", "u", "u", "b", "37"], ["8.1", "u", "u", "b", "57"], ["8.2", "u", "u", "b", "57"], ["8.3", "u", "u", "b", "57"], ["8.4", "u", "u", "b", "57"], ["8.5", "u", "u", "b", "57"], ["8.6", "u", "u", "b", "57"], ["8.7", "u", "u", "b", "57"], ["8.8", "u", "u", "b", "57"], ["8.9", "u", "u", "b", "57"], ["9.1", "u", "u", "b", "57"], ["9.6", "u", "u", "b", "66"], ["9.7", "u", "u", "b", "66"], ["9.8", "u", "u", "b", "66"], ["10.0", "u", "u", "b", "66"], ["10.1", "u", "u", "b", "66"], ["10.2", "u", "u", "b", "66"], ["10.3", "u", "u", "b", "66"], ["10.4", "u", "u", "b", "66"], ["10.5", "u", "u", "b", "66"], ["10.7", "2020-09-09", "u", "b", "66"], ["10.9", "2020-11-22", "u", "b", "77"], ["11.0", "u", "u", "b", "77"], ["11.2", "2021-01-30", "u", "b", "77"], ["11.3", "2021-03-31", "u", "b", "77"], ["11.7", "2021-11-02", "u", "b", "89"], ["11.9", "u", "u", "b", "89"], ["12.0", "2021-11-04", "u", "b", "89"], ["12.1", "2021-11-05", "u", "b", "89"], ["12.2", "2021-12-07", "u", "b", "89"], ["12.5", "2022-04-07", "u", "b", "89"], ["12.7", "2022-05-21", "u", "b", "89"], ["12.8", "2022-06-30", "u", "b", "89"], ["12.9", "2022-07-26", "u", "b", "89"], ["13.0", "2022-08-15", "u", "b", "89"], ["13.1", "2022-09-10", "u", "b", "89"], ["13.2", "2022-10-26", "u", "b", "89"], ["13.3", "2022-11-09", "u", "b", "89"], ["13.4", "2023-04-26", "u", "b", "98"], ["13.5", "2023-02-06", "u", "b", "98"], ["13.6", "2023-02-09", "u", "b", "98"], ["13.7", "2023-04-21", "u", "b", "98"], ["13.8", "2023-04-21", "u", "b", "98"], ["14.0", "2023-12-12", "u", "b", "98"], ["14.1", "2023-07-16", "u", "b", "98"], ["14.2", "2023-10-14", "u", "b", "109"], ["14.3", "2023-09-13", "u", "b", "109"], ["14.4", "2023-10-31", "u", "b", "109"], ["14.5", "2023-11-12", "u", "b", "109"], ["14.6", "2023-12-24", "u", "b", "109"], ["14.7", "2024-01-18", "u", "b", "109"], ["14.8", "2024-03-04", "u", "b", "109"], ["14.9", "2024-04-09", "u", "b", "109"], ["15.0", "2024-04-17", "u", "b", "109"], ["15.1", "2024-05-18", "u", "b", "109"], ["15.2", "2024-10-24", "u", "b", "109"], ["15.3", "2024-07-28", "u", "b", "109"], ["15.4", "2024-09-07", "u", "b", "109"], ["15.5", "2024-09-24", "u", "b", "109"], ["15.6", "2024-10-24", "u", "b", "109"], ["15.7", "2024-12-03", "u", "b", "109"], ["15.8", "2024-12-11", "u", "b", "109"], ["15.9", "2025-02-01", "u", "b", "109"], ["19.1", "2025-07-08", "u", "b", "121"], ["19.2", "2025-07-15", "u", "b", "121"], ["19.3", "2025-08-31", "u", "b", "121"], ["19.4", "2025-09-20", "u", "b", "121"], ["19.5", "2025-10-23", "u", "b", "121"], ["19.6", "2025-11-17", "u", "b", "121"], ["19.7", "2025-12-18", "u", "b", "121"], ["19.8", "2026-01-20", "u", "b", "121"]] }, kai_os: { releases: [["1.0", "2017-03-01", "u", "g", "37"], ["2.0", "2017-07-01", "u", "g", "48"], ["2.5", "2017-07-01", "u", "g", "48"], ["3.0", "2021-09-01", "u", "g", "84"], ["3.1", "2022-03-01", "u", "g", "84"], ["4.0", "2025-05-01", "u", "g", "123"]] }, facebook_android: { releases: [["66", "u", "u", "b", "48"], ["68", "u", "u", "b", "48"], ["74", "u", "u", "b", "50"], ["75", "u", "u", "b", "50"], ["76", "u", "u", "b", "50"], ["77", "u", "u", "b", "50"], ["78", "u", "u", "b", "50"], ["79", "u", "u", "b", "50"], ["80", "u", "u", "b", "51"], ["81", "u", "u", "b", "51"], ["82", "u", "u", "b", "51"], ["83", "u", "u", "b", "51"], ["84", "u", "u", "b", "51"], ["86", "u", "u", "b", "51"], ["87", "u", "u", "b", "52"], ["88", "u", "u", "b", "52"], ["89", "u", "u", "b", "52"], ["90", "u", "u", "b", "52"], ["91", "u", "u", "b", "52"], ["92", "u", "u", "b", "52"], ["93", "u", "u", "b", "52"], ["94", "u", "u", "b", "52"], ["95", "u", "u", "b", "53"], ["96", "u", "u", "b", "53"], ["97", "u", "u", "b", "53"], ["98", "u", "u", "b", "53"], ["99", "u", "u", "b", "53"], ["100", "u", "u", "b", "54"], ["101", "u", "u", "b", "54"], ["103", "u", "u", "b", "54"], ["104", "u", "u", "b", "54"], ["105", "u", "u", "b", "54"], ["106", "u", "u", "b", "55"], ["107", "u", "u", "b", "55"], ["108", "u", "u", "b", "55"], ["109", "u", "u", "b", "55"], ["110", "u", "u", "b", "55"], ["111", "u", "u", "b", "55"], ["112", "u", "u", "b", "56"], ["113", "u", "u", "b", "56"], ["114", "u", "u", "b", "56"], ["115", "u", "u", "b", "56"], ["116", "u", "u", "b", "56"], ["117", "u", "u", "b", "57"], ["118", "u", "u", "b", "57"], ["119", "u", "u", "b", "57"], ["120", "u", "u", "b", "57"], ["121", "u", "u", "b", "57"], ["122", "u", "u", "b", "58"], ["123", "u", "u", "b", "58"], ["124", "u", "u", "b", "58"], ["125", "u", "u", "b", "58"], ["126", "u", "u", "b", "58"], ["127", "u", "u", "b", "58"], ["128", "u", "u", "b", "58"], ["129", "u", "u", "b", "58"], ["130", "u", "u", "b", "59"], ["131", "u", "u", "b", "59"], ["132", "u", "u", "b", "59"], ["133", "u", "u", "b", "59"], ["134", "u", "u", "b", "59"], ["135", "u", "u", "b", "59"], ["136", "u", "u", "b", "59"], ["137", "u", "u", "b", "59"], ["138", "u", "u", "b", "60"], ["140", "u", "u", "b", "60"], ["142", "u", "u", "b", "61"], ["143", "u", "u", "b", "61"], ["144", "u", "u", "b", "61"], ["145", "u", "u", "b", "61"], ["146", "u", "u", "b", "61"], ["147", "u", "u", "b", "61"], ["148", "u", "u", "b", "61"], ["149", "u", "u", "b", "62"], ["150", "u", "u", "b", "62"], ["151", "u", "u", "b", "62"], ["152", "u", "u", "b", "62"], ["153", "u", "u", "b", "63"], ["154", "u", "u", "b", "63"], ["155", "u", "u", "b", "63"], ["156", "u", "u", "b", "63"], ["157", "u", "u", "b", "64"], ["158", "u", "u", "b", "64"], ["159", "u", "u", "b", "64"], ["160", "u", "u", "b", "64"], ["161", "u", "u", "b", "64"], ["162", "u", "u", "b", "64"], ["163", "u", "u", "b", "65"], ["164", "u", "u", "b", "65"], ["165", "u", "u", "b", "65"], ["166", "u", "u", "b", "65"], ["167", "u", "u", "b", "65"], ["168", "u", "u", "b", "65"], ["169", "u", "u", "b", "66"], ["170", "u", "u", "b", "66"], ["171", "u", "u", "b", "66"], ["172", "u", "u", "b", "66"], ["173", "u", "u", "b", "66"], ["174", "u", "u", "b", "66"], ["175", "u", "u", "b", "67"], ["176", "u", "u", "b", "67"], ["177", "u", "u", "b", "67"], ["178", "u", "u", "b", "67"], ["180", "u", "u", "b", "67"], ["181", "u", "u", "b", "67"], ["182", "u", "u", "b", "67"], ["183", "u", "u", "b", "68"], ["184", "u", "u", "b", "68"], ["185", "u", "u", "b", "68"], ["186", "u", "u", "b", "68"], ["187", "u", "u", "b", "68"], ["188", "u", "u", "b", "68"], ["202", "u", "u", "b", "71"], ["227", "u", "u", "b", "75"], ["228", "u", "u", "b", "75"], ["229", "u", "u", "b", "75"], ["230", "u", "u", "b", "75"], ["231", "u", "u", "b", "75"], ["233", "u", "u", "b", "76"], ["235", "u", "u", "b", "76"], ["236", "u", "u", "b", "76"], ["237", "u", "u", "b", "76"], ["238", "u", "u", "b", "76"], ["240", "u", "u", "b", "77"], ["241", "u", "u", "b", "77"], ["242", "u", "u", "b", "77"], ["243", "u", "u", "b", "77"], ["244", "u", "u", "b", "78"], ["245", "u", "u", "b", "78"], ["246", "u", "u", "b", "78"], ["247", "u", "u", "b", "78"], ["248", "u", "u", "b", "78"], ["249", "u", "u", "b", "78"], ["250", "u", "u", "b", "78"], ["251", "u", "u", "b", "79"], ["252", "u", "u", "b", "79"], ["253", "u", "u", "b", "79"], ["254", "u", "u", "b", "79"], ["255", "u", "u", "b", "79"], ["256", "u", "u", "b", "80"], ["257", "u", "u", "b", "80"], ["258", "u", "u", "b", "80"], ["259", "u", "u", "b", "80"], ["260", "u", "u", "b", "80"], ["261", "u", "u", "b", "80"], ["262", "u", "u", "b", "80"], ["263", "u", "u", "b", "80"], ["264", "u", "u", "b", "80"], ["265", "u", "u", "b", "80"], ["266", "u", "u", "b", "81"], ["267", "u", "u", "b", "81"], ["268", "u", "u", "b", "81"], ["269", "u", "u", "b", "81"], ["270", "u", "u", "b", "81"], ["271", "u", "u", "b", "81"], ["272", "u", "u", "b", "83"], ["273", "u", "u", "b", "83"], ["274", "u", "u", "b", "83"], ["275", "u", "u", "b", "83"], ["297", "2020-12-02", "u", "b", "86"], ["348", "2021-12-19", "u", "b", "96"], ["399", "2023-02-04", "u", "b", "109"], ["400", "2023-02-10", "u", "b", "109"], ["420", "2023-06-28", "u", "b", "114"], ["430", "2023-09-03", "u", "b", "116"], ["434", "2023-10-05", "u", "b", "117"], ["436", "2023-10-13", "u", "b", "117"], ["437", "u", "u", "b", "118"], ["438", "2023-10-28", "u", "b", "118"], ["439", "2023-11-11", "u", "b", "119"], ["440", "2023-11-12", "u", "b", "119"], ["441", "2023-11-20", "u", "b", "119"], ["442", "2023-11-29", "u", "b", "119"], ["443", "2023-12-07", "u", "b", "120"], ["444", "2023-12-13", "u", "b", "120"], ["445", "2023-12-21", "u", "b", "120"], ["446", "2024-01-06", "u", "b", "120"], ["447", "2024-01-12", "u", "b", "120"], ["448", "2024-01-29", "u", "b", "121"], ["449", "2024-02-02", "u", "b", "121"], ["450", "2024-02-05", "u", "b", "121"], ["451", "2024-02-17", "u", "b", "121"], ["452", "2024-02-25", "u", "b", "122"], ["453", "2024-02-28", "u", "b", "122"], ["454", "2024-03-04", "u", "b", "122"], ["465", "2024-07-07", "u", "b", "126"], ["466", "u", "u", "b", "126"], ["469", "u", "u", "b", "126"], ["471", "2024-07-10", "u", "b", "126"], ["472", "2024-07-11", "u", "b", "126"], ["474", "2024-07-30", "u", "b", "127"], ["475", "2024-08-01", "u", "b", "127"], ["476", "2024-08-09", "u", "b", "127"], ["477", "2024-08-16", "u", "b", "127"], ["478", "2024-08-21", "u", "b", "128"], ["479", "2024-08-31", "u", "b", "128"], ["480", "2024-09-07", "u", "b", "128"], ["481", "2024-09-14", "u", "b", "128"], ["482", "2024-09-20", "u", "b", "129"], ["483", "2024-09-27", "u", "b", "129"], ["484", "2024-10-04", "u", "b", "129"], ["485", "2024-10-11", "u", "b", "129"], ["486", "2024-10-18", "u", "b", "130"], ["487", "2024-10-26", "u", "b", "130"], ["488", "2024-11-02", "u", "b", "130"], ["489", "2024-11-09", "u", "b", "130"], ["494", "2024-12-26", "u", "b", "131"], ["497", "2025-01-26", "u", "b", "132"], ["503", "2025-03-12", "u", "b", "134"], ["514", "2025-05-28", "u", "b", "136"], ["515", "2025-05-31", "u", "b", "137"]] }, instagram_android: { releases: [["23", "u", "u", "b", "62"], ["24", "u", "u", "b", "62"], ["25", "u", "u", "b", "62"], ["26", "u", "u", "b", "63"], ["27", "u", "u", "b", "63"], ["28", "u", "u", "b", "63"], ["29", "u", "u", "b", "63"], ["30", "u", "u", "b", "63"], ["31", "u", "u", "b", "64"], ["32", "u", "u", "b", "64"], ["33", "u", "u", "b", "64"], ["34", "u", "u", "b", "64"], ["35", "u", "u", "b", "65"], ["36", "u", "u", "b", "65"], ["37", "u", "u", "b", "65"], ["38", "u", "u", "b", "65"], ["39", "u", "u", "b", "65"], ["40", "u", "u", "b", "65"], ["41", "u", "u", "b", "65"], ["42", "u", "u", "b", "66"], ["43", "u", "u", "b", "66"], ["44", "u", "u", "b", "66"], ["45", "u", "u", "b", "66"], ["46", "u", "u", "b", "66"], ["47", "u", "u", "b", "66"], ["48", "u", "u", "b", "67"], ["49", "u", "u", "b", "67"], ["50", "u", "u", "b", "67"], ["51", "u", "u", "b", "67"], ["52", "u", "u", "b", "67"], ["53", "u", "u", "b", "67"], ["54", "u", "u", "b", "67"], ["55", "u", "u", "b", "67"], ["56", "u", "u", "b", "68"], ["57", "u", "u", "b", "68"], ["58", "u", "u", "b", "68"], ["59", "u", "u", "b", "68"], ["60", "u", "u", "b", "68"], ["61", "u", "u", "b", "68"], ["65", "u", "u", "b", "69"], ["66", "u", "u", "b", "69"], ["68", "u", "u", "b", "69"], ["72", "u", "u", "b", "70"], ["74", "u", "u", "b", "71"], ["75", "u", "u", "b", "71"], ["79", "u", "u", "b", "71"], ["81", "u", "u", "b", "72"], ["82", "u", "u", "b", "72"], ["83", "u", "u", "b", "72"], ["84", "u", "u", "b", "73"], ["86", "u", "u", "b", "73"], ["95", "u", "u", "b", "74"], ["96", "u", "u", "b", "80"], ["97", "u", "u", "b", "80"], ["98", "u", "u", "b", "80"], ["103", "u", "u", "b", "80"], ["104", "u", "u", "b", "80"], ["117", "u", "u", "b", "80"], ["118", "u", "u", "b", "80"], ["119", "u", "u", "b", "80"], ["120", "u", "u", "b", "80"], ["121", "u", "u", "b", "80"], ["127", "u", "u", "b", "80"], ["128", "u", "u", "b", "80"], ["129", "u", "u", "b", "80"], ["130", "u", "u", "b", "80"], ["131", "u", "u", "b", "80"], ["132", "u", "u", "b", "80"], ["133", "u", "u", "b", "80"], ["134", "u", "u", "b", "80"], ["135", "u", "u", "b", "80"], ["136", "u", "u", "b", "80"], ["137", "u", "u", "b", "81"], ["138", "u", "u", "b", "81"], ["139", "u", "u", "b", "81"], ["140", "u", "u", "b", "81"], ["141", "u", "u", "b", "81"], ["142", "u", "u", "b", "81"], ["143", "u", "u", "b", "83"], ["144", "u", "u", "b", "83"], ["145", "u", "u", "b", "83"], ["146", "u", "u", "b", "83"], ["153", "u", "u", "b", "84"], ["163", "u", "u", "b", "92"], ["164", "u", "u", "b", "92"], ["230", "u", "u", "b", "92"], ["258", "2022-11-04", "u", "b", "106"], ["259", "2022-11-04", "u", "b", "106"], ["279", "2023-12-31", "u", "b", "109"], ["281", "u", "u", "b", "109"], ["288", "u", "u", "b", "114"], ["289", "2023-12-21", "u", "b", "114"], ["290", "2023-12-30", "u", "b", "114"], ["292", "u", "u", "b", "115"], ["295", "u", "u", "b", "115"], ["296", "u", "u", "b", "115"], ["297", "u", "u", "b", "115"], ["298", "2024-01-11", "u", "b", "115"], ["299", "u", "u", "b", "115"], ["300", "u", "u", "b", "116"], ["301", "2024-01-12", "u", "b", "116"], ["302", "u", "u", "b", "117"], ["303", "u", "u", "b", "117"], ["304", "u", "u", "b", "117"], ["305", "u", "u", "b", "117"], ["306", "2024-01-17", "u", "b", "118"], ["307", "u", "u", "b", "118"], ["308", "2024-01-19", "u", "b", "118"], ["309", "u", "u", "b", "119"], ["310", "u", "u", "b", "119"], ["311", "u", "u", "b", "120"], ["312", "u", "u", "b", "120"], ["313", "u", "u", "b", "120"], ["314", "u", "u", "b", "120"], ["315", "2024-01-19", "u", "b", "120"], ["316", "2024-01-25", "u", "b", "120"], ["317", "2024-02-03", "u", "b", "121"], ["318", "2024-02-16", "u", "b", "121"], ["320", "2024-03-04", "u", "b", "121"], ["321", "2024-03-07", "u", "b", "122"], ["338", "2024-07-06", "u", "b", "126"], ["346", "2024-09-01", "u", "b", "127"], ["347", "2024-09-11", "u", "b", "127"], ["349", "2024-09-20", "u", "b", "128"], ["355", "2024-11-06", "u", "b", "130"], ["366", "u", "u", "b", "132"], ["367", "2025-02-15", "u", "b", "132"], ["378", "2025-05-03", "u", "b", "135"], ["381", "2025-06-19", "u", "b", "137"], ["382", "2025-06-19", "u", "b", "137"], ["383", "2025-06-18", "u", "b", "137"], ["384", "2025-06-16", "u", "b", "137"], ["385", "2025-06-27", "u", "b", "137"], ["387", "2025-07-09", "u", "b", "137"], ["390", "2025-07-26", "u", "b", "138"], ["392", "2025-08-12", "u", "b", "138"], ["394", "2025-08-26", "u", "b", "139"], ["395", "2025-09-13", "u", "b", "139"], ["396", "2025-09-20", "u", "b", "139"], ["397", "2025-09-19", "u", "b", "139"], ["399", "2025-09-28", "u", "b", "140"], ["400", "2025-10-06", "u", "b", "141"], ["401", "2025-10-08", "u", "b", "141"], ["404", "2025-10-31", "u", "b", "141"], ["406", "2025-11-16", "u", "b", "141"], ["407", "2025-11-23", "u", "b", "142"], ["408", "2025-11-28", "u", "b", "142"], ["409", "2025-12-16", "u", "b", "143"], ["410", "2025-12-17", "u", "b", "143"], ["411", "2026-01-07", "u", "b", "143"]] } };
    var r4 = [["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "1", fa: "4", s: "4", si: "3.2" }], ["2019-03-25", { c: "66", ca: "66", e: "16", f: "57", fa: "57", s: "12.1", si: "12.2" }], ["2019-03-25", { c: "66", ca: "66", e: "16", f: "57", fa: "57", s: "12.1", si: "12.2" }], ["2024-03-19", { c: "116", ca: "116", e: "116", f: "124", fa: "124", s: "17.4", si: "17.4" }], ["2025-06-26", { c: "138", ca: "138", e: "138", f: "118", fa: "118", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "17", ca: "18", e: "12", f: "5", fa: "5", s: "6", si: "6" }], ["2026-01-13", { c: "125", ca: "125", e: "125", f: "147", fa: "147", s: "18.2", si: "18.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2024-04-16", { c: "123", ca: "123", e: "123", f: "125", fa: "125", s: "17.4", si: "17.4" }], ["2020-01-15", { c: "37", ca: "37", e: "79", f: "27", fa: "27", s: "9.1", si: "9.3" }], ["2024-07-09", { c: "77", ca: "77", e: "79", f: "128", fa: "128", s: "17.4", si: "17.4" }], ["2016-06-07", { c: "32", ca: "30", e: "12", f: "47", fa: "47", s: "8", si: "8" }], ["2023-07-04", { c: "112", ca: "112", e: "112", f: "115", fa: "115", s: "16", si: "16" }], ["2015-09-30", { c: "43", ca: "43", e: "12", f: "16", fa: "16", s: "9", si: "9" }], ["2022-03-14", { c: "84", ca: "84", e: "84", f: "80", fa: "80", s: "15.4", si: "15.4" }], ["2023-10-24", { c: "103", ca: "103", e: "103", f: "119", fa: "119", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-03-14", { c: "92", ca: "92", e: "92", f: "90", fa: "90", s: "15.4", si: "15.4" }], ["2023-07-04", { c: "110", ca: "110", e: "110", f: "115", fa: "115", s: "16", si: "16" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "34", fa: "34", s: "10", si: "10" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "37", fa: "37", s: "10", si: "10" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "37", fa: "37", s: "10", si: "10" }], ["2022-08-23", { c: "97", ca: "97", e: "97", f: "104", fa: "104", s: "15.4", si: "15.4" }], ["2020-01-15", { c: "69", ca: "69", e: "79", f: "62", fa: "62", s: "12", si: "12" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "38", fa: "38", s: "10", si: "10" }], ["2024-01-25", { c: "121", ca: "121", e: "121", f: "115", fa: "115", s: "16.4", si: "16.4" }], ["2024-03-05", { c: "117", ca: "117", e: "117", f: "119", fa: "119", s: "17.4", si: "17.4" }], ["2016-09-20", { c: "47", ca: "47", e: "14", f: "43", fa: "43", s: "10", si: "10" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "5" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3", fa: "4", s: "4", si: "3.2" }], ["2018-05-09", { c: "66", ca: "66", e: "14", f: "60", fa: "60", s: "10", si: "10" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "38", fa: "38", s: "10", si: "10" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2021-09-20", { c: "88", ca: "88", e: "88", f: "89", fa: "89", s: "15", si: "15" }], ["2017-04-05", { c: "55", ca: "55", e: "15", f: "52", fa: "52", s: "10.1", si: "10.3" }], ["2024-06-11", { c: "76", ca: "76", e: "79", f: "127", fa: "127", s: "13.1", si: "13.4" }], ["2020-01-15", { c: "63", ca: "63", e: "79", f: "57", fa: "57", s: "12", si: "12" }], ["2020-01-15", { c: "63", ca: "63", e: "79", f: "57", fa: "57", s: "12", si: "12" }], ["2025-04-01", { c: "133", ca: "133", e: "133", f: "137", fa: "137", s: "18.4", si: "18.4" }], ["2025-11-11", { c: "90", ca: "90", e: "90", f: "145", fa: "145", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "1", fa: "4", s: "3.1", si: "2" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "3.1", si: "3" }], ["2021-04-26", { c: "66", ca: "66", e: "79", f: "76", fa: "79", s: "14.1", si: "14.5" }], ["2023-02-09", { c: "110", ca: "110", e: "110", f: "86", fa: "86", s: "15", si: "15" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "4", si: "3.2" }], ["2020-01-15", { c: "54", ca: "54", e: "79", f: "63", fa: "63", s: "10.1", si: "10.3" }], ["2024-01-26", { c: "85", ca: "85", e: "121", f: "93", fa: "93", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-03-14", { c: "37", ca: "37", e: "79", f: "47", fa: "47", s: "15.4", si: "15.4" }], ["2024-09-16", { c: "76", ca: "76", e: "79", f: "103", fa: "103", s: "18", si: "18" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "3.6", fa: "4", s: "1.3", si: "1" }], ["2022-03-14", { c: "1", ca: "18", e: "12", f: "25", fa: "25", s: "15.4", si: "15.4" }], ["2020-01-15", { c: "35", ca: "59", e: "79", f: "30", fa: "54", s: "8", si: "8" }], ["2015-07-29", { c: "21", ca: "25", e: "12", f: "22", fa: "22", s: "5.1", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "3.6", fa: "4", s: "1.3", si: "1" }], ["2015-07-29", { c: "21", ca: "25", e: "12", f: "22", fa: "22", s: "5.1", si: "4" }], ["2015-07-29", { c: "25", ca: "25", e: "12", f: "13", fa: "14", s: "7", si: "7" }], ["2016-09-20", { c: "30", ca: "30", e: "12", f: "49", fa: "49", s: "8", si: "8" }], ["2015-07-29", { c: "21", ca: "25", e: "12", f: "9", fa: "18", s: "5.1", si: "4.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "2" }], ["2016-09-20", { c: "30", ca: "30", e: "12", f: "4", fa: "4", s: "10", si: "10" }], ["2020-01-15", { c: "16", ca: "18", e: "79", f: "10", fa: "10", s: "6", si: "6" }], ["2015-07-29", { c: "\u226415", ca: "18", e: "12", f: "10", fa: "10", s: "\u22644", si: "\u22643.2" }], ["2018-04-12", { c: "39", ca: "42", e: "14", f: "31", fa: "31", s: "11.1", si: "11.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1.5", fa: "4", s: "4", si: "3.2" }], ["2020-09-16", { c: "67", ca: "67", e: "79", f: "68", fa: "68", s: "14", si: "14" }], ["2021-09-20", { c: "67", ca: "67", e: "79", f: "68", fa: "68", s: "15", si: "15" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2017-02-01", { c: "56", ca: "56", e: "12", f: "50", fa: "50", s: "9.1", si: "9.3" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "14", s: "1", si: "3" }], ["2015-07-29", { c: "10", ca: "18", e: "12", f: "4", fa: "4", s: "5.1", si: "5" }], ["2015-07-29", { c: "10", ca: "18", e: "12", f: "29", fa: "29", s: "5.1", si: "6" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2022-03-14", { c: "54", ca: "54", e: "79", f: "38", fa: "38", s: "15.4", si: "15.4" }], ["2017-09-19", { c: "50", ca: "51", e: "15", f: "44", fa: "44", s: "11", si: "11" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "26", ca: "28", e: "12", f: "16", fa: "16", s: "7", si: "7" }], ["2023-06-06", { c: "110", ca: "110", e: "110", f: "114", fa: "114", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1.5", fa: "4", s: "2", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1.5", fa: "4", s: "2", si: "1" }], ["2024-09-16", { c: "99", ca: "99", e: "99", f: "28", fa: "28", s: "18", si: "18" }], ["2023-04-11", { c: "99", ca: "99", e: "99", f: "112", fa: "112", s: "16.4", si: "16.4" }], ["2023-12-11", { c: "99", ca: "99", e: "99", f: "113", fa: "113", s: "17.2", si: "17.2" }], ["2023-04-11", { c: "99", ca: "99", e: "99", f: "112", fa: "112", s: "16.4", si: "16.4" }], ["2023-12-11", { c: "118", ca: "118", e: "118", f: "97", fa: "97", s: "17.2", si: "17.2" }], ["2020-01-15", { c: "51", ca: "51", e: "79", f: "43", fa: "43", s: "11", si: "11" }], ["2020-01-15", { c: "57", ca: "57", e: "79", f: "53", fa: "53", s: "11.1", si: "11.3" }], ["2022-03-14", { c: "99", ca: "99", e: "99", f: "97", fa: "97", s: "15.4", si: "15.4" }], ["2020-01-15", { c: "49", ca: "49", e: "79", f: "47", fa: "47", s: "9", si: "9" }], ["2015-07-29", { c: "27", ca: "27", e: "12", f: "1", fa: "4", s: "7", si: "7" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "2" }], ["2015-09-22", { c: "4", ca: "18", e: "12", f: "41", fa: "41", s: "5", si: "4.2" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "1.5", fa: "4", s: "4", si: "4" }], ["2024-03-05", { c: "105", ca: "105", e: "105", f: "106", fa: "106", s: "17.4", si: "17.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2016-03-08", { c: "42", ca: "42", e: "13", f: "45", fa: "45", s: "9", si: "9" }], ["2023-09-18", { c: "117", ca: "117", e: "117", f: "63", fa: "63", s: "17", si: "17" }], ["2021-01-21", { c: "88", ca: "88", e: "88", f: "71", fa: "79", s: "13.1", si: "13" }], ["2020-01-15", { c: "55", ca: "55", e: "79", f: "49", fa: "49", s: "12.1", si: "12.2" }], ["2023-11-02", { c: "119", ca: "119", e: "119", f: "54", fa: "54", s: "13.1", si: "13.4" }], ["2017-03-27", { c: "41", ca: "41", e: "12", f: "22", fa: "22", s: "10.1", si: "10.3" }], ["2025-03-31", { c: "121", ca: "121", e: "121", f: "127", fa: "127", s: "18.4", si: "18.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-05-09", { c: "111", ca: "111", e: "111", f: "113", fa: "113", s: "15", si: "15" }], ["2023-02-14", { c: "58", ca: "58", e: "79", f: "110", fa: "110", s: "10", si: "10" }], ["2023-05-09", { c: "111", ca: "111", e: "111", f: "113", fa: "113", s: "16.2", si: "16.2" }], ["2022-02-03", { c: "98", ca: "98", e: "98", f: "96", fa: "96", s: "13", si: "13" }], ["2020-01-15", { c: "53", ca: "53", e: "79", f: "31", fa: "31", s: "11.1", si: "11.3" }], ["2017-03-07", { c: "50", ca: "50", e: "12", f: "52", fa: "52", s: "9", si: "9" }], ["2020-07-28", { c: "50", ca: "50", e: "12", f: "71", fa: "79", s: "9", si: "9" }], ["2025-08-19", { c: "137", ca: "137", e: "137", f: "142", fa: "142", s: "17", si: "17" }], ["2017-04-19", { c: "26", ca: "26", e: "12", f: "53", fa: "53", s: "7", si: "7" }], ["2023-05-09", { c: "80", ca: "80", e: "80", f: "113", fa: "113", s: "16.4", si: "16.4" }], ["2020-11-17", { c: "69", ca: "69", e: "79", f: "83", fa: "83", s: "12.1", si: "12.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "4", fa: "4", s: "3", si: "1" }], ["2018-12-11", { c: "40", ca: "40", e: "18", f: "51", fa: "64", s: "10.1", si: "10.3" }], ["2023-03-27", { c: "73", ca: "73", e: "79", f: "101", fa: "101", s: "16.4", si: "16.4" }], ["2022-03-14", { c: "52", ca: "52", e: "79", f: "69", fa: "79", s: "15.4", si: "15.4" }], ["2022-09-12", { c: "105", ca: "105", e: "105", f: "101", fa: "101", s: "16", si: "16" }], ["2023-09-18", { c: "83", ca: "83", e: "83", f: "107", fa: "107", s: "17", si: "17" }], ["2022-03-14", { c: "52", ca: "52", e: "79", f: "69", fa: "79", s: "15.4", si: "15.4" }], ["2022-03-14", { c: "52", ca: "52", e: "79", f: "69", fa: "79", s: "15.4", si: "15.4" }], ["2022-03-14", { c: "52", ca: "52", e: "79", f: "69", fa: "79", s: "15.4", si: "15.4" }], ["2022-07-26", { c: "52", ca: "52", e: "79", f: "103", fa: "103", s: "15.4", si: "15.4" }], ["2023-02-14", { c: "105", ca: "105", e: "105", f: "110", fa: "110", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-09-15", { c: "108", ca: "108", e: "108", f: "130", fa: "130", s: "26", si: "26" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "4", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2025-03-04", { c: "51", ca: "51", e: "12", f: "136", fa: "136", s: "5.1", si: "5" }], ["2024-09-16", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "18", si: "18" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "3.5", fa: "4", s: "4", si: "3.2" }], ["2023-12-11", { c: "85", ca: "85", e: "85", f: "68", fa: "68", s: "17.2", si: "17.2" }], ["2023-09-18", { c: "91", ca: "91", e: "91", f: "33", fa: "33", s: "17", si: "17" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "1", fa: "25", s: "3", si: "1" }], ["2023-12-11", { c: "59", ca: "59", e: "79", f: "98", fa: "98", s: "17.2", si: "17.2" }], ["2020-01-15", { c: "60", ca: "60", e: "79", f: "60", fa: "60", s: "13", si: "13" }], ["2016-08-02", { c: "25", ca: "25", e: "14", f: "23", fa: "23", s: "7", si: "7" }], ["2020-01-15", { c: "46", ca: "46", e: "79", f: "31", fa: "31", s: "10.1", si: "10.3" }], ["2015-09-30", { c: "28", ca: "28", e: "12", f: "22", fa: "22", s: "9", si: "9" }], ["2020-01-15", { c: "61", ca: "61", e: "79", f: "55", fa: "55", s: "11", si: "11" }], ["2015-07-29", { c: "16", ca: "18", e: "12", f: "4", fa: "4", s: "6", si: "6" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1.5", fa: "4", s: "4", si: "3.2" }], ["2017-04-05", { c: "49", ca: "49", e: "15", f: "31", fa: "31", s: "9.1", si: "9.3" }], ["2017-10-24", { c: "62", ca: "62", e: "14", f: "22", fa: "22", s: "10", si: "10" }], ["2015-07-29", { c: "\u22644", ca: "18", e: "12", f: "\u22642", fa: "4", s: "\u22643.1", si: "\u22642" }], ["2015-07-29", { c: "7", ca: "18", e: "12", f: "6", fa: "6", s: "5.1", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2024-02-20", { c: "111", ca: "111", e: "111", f: "123", fa: "123", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "4", fa: "4", s: "4", si: "5" }], ["2020-01-15", { c: "10", ca: "18", e: "79", f: "4", fa: "4", s: "5", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2020-01-15", { c: "60", ca: "60", e: "79", f: "55", fa: "55", s: "11.1", si: "11.3" }], ["2020-01-15", { c: "12", ca: "18", e: "79", f: "49", fa: "49", s: "6", si: "6" }], ["2025-09-16", { c: "131", ca: "131", e: "131", f: "143", fa: "143", s: "18.4", si: "18.4" }], ["2024-09-03", { c: "120", ca: "120", e: "120", f: "130", fa: "130", s: "17.2", si: "17.2" }], ["2023-09-18", { c: "31", ca: "31", e: "12", f: "6", fa: "6", s: "17", si: "4.2" }], ["2015-07-29", { c: "15", ca: "18", e: "12", f: "1", fa: "4", s: "6", si: "6" }], ["2022-03-14", { c: "37", ca: "37", e: "79", f: "98", fa: "98", s: "15.4", si: "15.4" }], ["2023-12-07", { c: "120", ca: "120", e: "120", f: "49", fa: "49", s: "16.4", si: "16.4" }], ["2023-08-01", { c: "17", ca: "18", e: "79", f: "116", fa: "116", s: "6", si: "6" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-01-15", { c: "58", ca: "58", e: "79", f: "53", fa: "53", s: "13", si: "13" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-08-01", { c: "42", ca: "42", e: "79", f: "47", fa: "116", s: "13", si: "12.2" }], ["\u22642017-04-05", { c: "1", ca: "18", e: "\u226415", f: "3", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-12-12", { c: "128", ca: "128", e: "128", f: "20", fa: "20", s: "26.2", si: "26.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-01-15", { c: "61", ca: "61", e: "79", f: "33", fa: "33", s: "11", si: "11" }], ["2020-01-15", { c: "1", ca: "18", e: "79", f: "1", fa: "4", s: "4", si: "3.2" }], ["2016-03-21", { c: "31", ca: "31", e: "12", f: "12", fa: "14", s: "9.1", si: "9.3" }], ["2019-09-19", { c: "14", ca: "18", e: "18", f: "20", fa: "20", s: "10.1", si: "13" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "4", si: "3.2" }], ["2022-05-03", { c: "98", ca: "98", e: "98", f: "100", fa: "100", s: "13.1", si: "13.4" }], ["2020-01-15", { c: "43", ca: "43", e: "79", f: "46", fa: "46", s: "11.1", si: "11.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-01-15", { c: "1", ca: "18", e: "79", f: "1.5", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3.1", si: "2" }], ["2019-03-25", { c: "42", ca: "42", e: "13", f: "38", fa: "38", s: "12.1", si: "12.2" }], ["2021-11-02", { c: "77", ca: "77", e: "79", f: "94", fa: "94", s: "13.1", si: "13.4" }], ["2021-09-20", { c: "93", ca: "93", e: "93", f: "91", fa: "91", s: "15", si: "15" }], ["2025-12-12", { c: "76", ca: "76", e: "79", f: "89", fa: "89", s: "26.2", si: "26.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-12-07", { c: "120", ca: "120", e: "120", f: "118", fa: "118", s: "15.4", si: "15.4" }], ["2017-03-27", { c: "52", ca: "52", e: "14", f: "52", fa: "52", s: "10.1", si: "10.3" }], ["2018-04-30", { c: "38", ca: "38", e: "17", f: "47", fa: "35", s: "9", si: "9" }], ["2021-09-20", { c: "56", ca: "56", e: "79", f: "51", fa: "51", s: "15", si: "15" }], ["2020-09-16", { c: "63", ca: "63", e: "17", f: "47", fa: "36", s: "14", si: "14" }], ["2020-02-07", { c: "40", ca: "40", e: "80", f: "58", fa: "28", s: "9", si: "9" }], ["2016-06-07", { c: "34", ca: "34", e: "12", f: "47", fa: "47", s: "9.1", si: "9.3" }], ["2017-03-27", { c: "42", ca: "42", e: "14", f: "39", fa: "39", s: "10.1", si: "10.3" }], ["2024-10-29", { c: "103", ca: "103", e: "103", f: "132", fa: "132", s: "17.2", si: "17.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "8", ca: "18", e: "12", f: "4", fa: "4", s: "5.1", si: "5" }], ["2020-01-15", { c: "38", ca: "38", e: "79", f: "28", fa: "28", s: "10.1", si: "10.3" }], ["2021-04-26", { c: "89", ca: "89", e: "89", f: "82", fa: "82", s: "14.1", si: "14.5" }], ["2016-09-07", { c: "53", ca: "53", e: "12", f: "35", fa: "35", s: "9.1", si: "9.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2021-11-02", { c: "46", ca: "46", e: "79", f: "94", fa: "94", s: "11", si: "11" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-09-30", { c: "29", ca: "29", e: "12", f: "20", fa: "20", s: "9", si: "9" }], ["2021-04-26", { c: "84", ca: "84", e: "84", f: "63", fa: "63", s: "14.1", si: "14.5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-04-04", { c: "135", ca: "135", e: "135", f: "129", fa: "129", s: "18.2", si: "18.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "24", fa: "24", s: "3.1", si: "2" }], ["2022-03-14", { c: "86", ca: "86", e: "86", f: "85", fa: "85", s: "15.4", si: "15.4" }], ["2020-01-15", { c: "60", ca: "60", e: "79", f: "52", fa: "52", s: "10.1", si: "10.3" }], ["2020-01-15", { c: "60", ca: "60", e: "79", f: "58", fa: "58", s: "11.1", si: "11.3" }], ["2016-09-20", { c: "36", ca: "36", e: "14", f: "39", fa: "39", s: "10", si: "10" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-12-12", { c: "109", ca: "109", e: "109", f: "145", fa: "145", s: "26.2", si: "26.2" }], ["2021-09-07", { c: "56", ca: "56", e: "79", f: "92", fa: "92", s: "11", si: "11" }], ["2017-04-05", { c: "48", ca: "48", e: "15", f: "34", fa: "34", s: "9.1", si: "9.3" }], ["2020-01-15", { c: "33", ca: "33", e: "79", f: "32", fa: "32", s: "9", si: "9" }], ["2020-01-15", { c: "35", ca: "35", e: "79", f: "41", fa: "41", s: "10", si: "10" }], ["2020-03-24", { c: "79", ca: "79", e: "17", f: "62", fa: "62", s: "13.1", si: "13.4" }], ["2022-11-15", { c: "101", ca: "101", e: "101", f: "107", fa: "107", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2024-07-25", { c: "127", ca: "127", e: "127", f: "118", fa: "118", s: "17", si: "17" }], ["2020-01-15", { c: "62", ca: "62", e: "79", f: "62", fa: "62", s: "11.1", si: "11.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-01-06", { c: "97", ca: "97", e: "97", f: "34", fa: "34", s: "9", si: "9" }], ["2023-03-27", { c: "97", ca: "97", e: "97", f: "111", fa: "111", s: "16.4", si: "16.4" }], ["2023-03-27", { c: "97", ca: "97", e: "97", f: "111", fa: "111", s: "16.4", si: "16.4" }], ["2023-03-27", { c: "97", ca: "97", e: "97", f: "111", fa: "111", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-03-13", { c: "111", ca: "111", e: "111", f: "34", fa: "34", s: "9.1", si: "9.3" }], ["2020-01-15", { c: "52", ca: "52", e: "79", f: "34", fa: "34", s: "9.1", si: "9.3" }], ["2020-01-15", { c: "63", ca: "63", e: "79", f: "34", fa: "34", s: "9.1", si: "9.3" }], ["2020-01-15", { c: "34", ca: "34", e: "79", f: "34", fa: "34", s: "9.1", si: "9.3" }], ["2020-01-15", { c: "52", ca: "52", e: "79", f: "34", fa: "34", s: "9.1", si: "9.3" }], ["2018-09-05", { c: "62", ca: "62", e: "17", f: "62", fa: "62", s: "11", si: "11" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-09-12", { c: "89", ca: "89", e: "79", f: "89", fa: "89", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "2" }], ["2023-03-27", { c: "77", ca: "77", e: "79", f: "98", fa: "98", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "10", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2017-03-27", { c: "35", ca: "35", e: "12", f: "29", fa: "32", s: "10.1", si: "10.3" }], ["2016-09-20", { c: "39", ca: "39", e: "13", f: "26", fa: "26", s: "10", si: "10" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "3.5", fa: "4", s: "5", si: "\u22643" }], ["2015-07-29", { c: "11", ca: "18", e: "12", f: "3.5", fa: "4", s: "5.1", si: "5" }], ["2024-09-16", { c: "125", ca: "125", e: "125", f: "128", fa: "128", s: "18", si: "18" }], ["2020-01-15", { c: "71", ca: "71", e: "79", f: "65", fa: "65", s: "12.1", si: "12.2" }], ["2024-06-11", { c: "111", ca: "111", e: "111", f: "127", fa: "127", s: "16.2", si: "16.2" }], ["2015-07-29", { c: "26", ca: "26", e: "12", f: "3.6", fa: "4", s: "7", si: "7" }], ["2017-10-17", { c: "57", ca: "57", e: "16", f: "52", fa: "52", s: "10.1", si: "10.3" }], ["2022-10-27", { c: "107", ca: "107", e: "107", f: "66", fa: "66", s: "16", si: "16" }], ["2022-03-14", { c: "37", ca: "37", e: "15", f: "48", fa: "48", s: "15.4", si: "15.4" }], ["2023-12-19", { c: "105", ca: "105", e: "105", f: "121", fa: "121", s: "15.4", si: "15.4" }], ["2020-03-24", { c: "74", ca: "74", e: "79", f: "67", fa: "67", s: "13.1", si: "13.4" }], ["2015-07-29", { c: "16", ca: "18", e: "12", f: "11", fa: "14", s: "6", si: "6" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4" }], ["2020-01-15", { c: "54", ca: "54", e: "79", f: "63", fa: "63", s: "10", si: "10" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2020-01-15", { c: "65", ca: "65", e: "79", f: "52", fa: "52", s: "12.1", si: "12.2" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "4", fa: "4", s: "7", si: "7" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-09-30", { c: "41", ca: "41", e: "12", f: "36", fa: "36", s: "9", si: "9" }], ["2024-09-16", { c: "87", ca: "87", e: "87", f: "88", fa: "88", s: "18", si: "18" }], ["2022-04-28", { c: "101", ca: "101", e: "101", f: "96", fa: "96", s: "15", si: "15" }], ["2023-09-18", { c: "106", ca: "106", e: "106", f: "98", fa: "98", s: "17", si: "17" }], ["2023-09-18", { c: "88", ca: "55", e: "88", f: "43", fa: "43", s: "17", si: "17" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-10-03", { c: "106", ca: "106", e: "106", f: "97", fa: "97", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "17", fa: "17", s: "5", si: "4" }], ["2020-01-15", { c: "20", ca: "25", e: "79", f: "25", fa: "25", s: "6", si: "6" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-04-13", { c: "81", ca: "81", e: "81", f: "26", fa: "26", s: "13.1", si: "13.4" }], ["2021-10-05", { c: "41", ca: "41", e: "79", f: "93", fa: "93", s: "10", si: "10" }], ["2023-09-18", { c: "113", ca: "113", e: "113", f: "89", fa: "89", s: "17", si: "17" }], ["2020-01-15", { c: "66", ca: "66", e: "79", f: "50", fa: "50", s: "11.1", si: "11.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-03-27", { c: "89", ca: "89", e: "89", f: "108", fa: "108", s: "16.4", si: "16.4" }], ["2020-01-15", { c: "39", ca: "39", e: "79", f: "51", fa: "51", s: "10", si: "10" }], ["2021-09-20", { c: "58", ca: "58", e: "79", f: "51", fa: "51", s: "15", si: "15" }], ["2022-08-05", { c: "104", ca: "104", e: "104", f: "72", fa: "79", s: "14.1", si: "14.5" }], ["2023-04-11", { c: "102", ca: "102", e: "102", f: "112", fa: "112", s: "15.5", si: "15.5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-11-12", { c: "1", ca: "18", e: "13", f: "19", fa: "19", s: "1.2", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "3.6", fa: "4", s: "3", si: "1" }], ["2021-04-26", { c: "20", ca: "25", e: "12", f: "57", fa: "57", s: "14.1", si: "5" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "3" }], ["2020-01-15", { c: "1", ca: "18", e: "79", f: "6", fa: "6", s: "3.1", si: "2" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "3", fa: "4", s: "4", si: "3" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "3.6", fa: "4", s: "4", si: "3.2" }], ["2025-08-19", { c: "13", ca: "132", e: "13", f: "50", fa: "142", s: "11.1", si: "18.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "7", ca: "18", e: "12", f: "29", fa: "29", s: "5.1", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2017-03-16", { c: "4", ca: "57", e: "12", f: "23", fa: "52", s: "3.1", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3.1", si: "2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2021-12-07", { c: "66", ca: "66", e: "79", f: "95", fa: "79", s: "12.1", si: "12.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2018-12-11", { c: "41", ca: "41", e: "12", f: "64", fa: "64", s: "9", si: "9" }], ["2019-03-25", { c: "58", ca: "58", e: "16", f: "55", fa: "55", s: "12.1", si: "12.2" }], ["2017-09-28", { c: "24", ca: "25", e: "12", f: "29", fa: "56", s: "10", si: "10" }], ["2021-04-26", { c: "81", ca: "81", e: "81", f: "86", fa: "86", s: "14.1", si: "14.5" }], ["2025-03-04", { c: "129", ca: "129", e: "129", f: "136", fa: "136", s: "16.4", si: "16.4" }], ["2021-04-26", { c: "72", ca: "72", e: "79", f: "78", fa: "79", s: "14.1", si: "14.5" }], ["2020-09-16", { c: "74", ca: "74", e: "79", f: "75", fa: "79", s: "14", si: "14" }], ["2019-09-19", { c: "63", ca: "63", e: "18", f: "58", fa: "58", s: "13", si: "13" }], ["2020-09-16", { c: "71", ca: "71", e: "79", f: "76", fa: "79", s: "14", si: "14" }], ["2024-04-16", { c: "87", ca: "87", e: "87", f: "125", fa: "125", s: "14.1", si: "14.5" }], ["2025-12-12", { c: "135", ca: "135", e: "135", f: "144", fa: "144", s: "26.2", si: "26.2" }], ["2021-01-21", { c: "88", ca: "88", e: "88", f: "82", fa: "82", s: "14", si: "14" }], ["2018-04-12", { c: "55", ca: "55", e: "15", f: "52", fa: "52", s: "11.1", si: "11.3" }], ["2020-01-15", { c: "41", ca: "41", e: "79", f: "36", fa: "36", s: "8", si: "8" }], ["2025-03-31", { c: "122", ca: "122", e: "122", f: "131", fa: "131", s: "18.4", si: "18.4" }], ["2015-07-29", { c: "38", ca: "38", e: "12", f: "13", fa: "14", s: "7", si: "7" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "1", fa: "4", s: "5", si: "4.2" }], ["2018-05-09", { c: "61", ca: "61", e: "16", f: "60", fa: "60", s: "11", si: "11" }], ["2026-01-13", { c: "91", ca: "91", e: "91", f: "147", fa: "147", s: "15", si: "15" }], ["2023-06-06", { c: "80", ca: "80", e: "80", f: "114", fa: "114", s: "15", si: "15" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "4", si: "4" }], ["2025-04-29", { c: "123", ca: "123", e: "123", f: "138", fa: "138", s: "17.2", si: "17.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "6", fa: "6", s: "1.2", si: "1" }], ["2023-05-09", { c: "111", ca: "111", e: "111", f: "113", fa: "113", s: "15", si: "15" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3.1", si: "2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-12-12", { c: "77", ca: "77", e: "79", f: "122", fa: "122", s: "26.2", si: "26.2" }], ["2020-01-15", { c: "48", ca: "48", e: "79", f: "50", fa: "50", s: "11", si: "11" }], ["2016-09-20", { c: "49", ca: "49", e: "14", f: "44", fa: "44", s: "10", si: "10" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-11-21", { c: "109", ca: "109", e: "109", f: "120", fa: "120", s: "16.4", si: "16.4" }], ["2024-05-13", { c: "123", ca: "123", e: "123", f: "120", fa: "120", s: "17.5", si: "17.5" }], ["2020-07-28", { c: "83", ca: "83", e: "83", f: "69", fa: "79", s: "13", si: "13" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-12-11", { c: "113", ca: "113", e: "113", f: "112", fa: "112", s: "17.2", si: "17.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2025-09-15", { c: "46", ca: "46", e: "79", f: "127", fa: "127", s: "5", si: "26" }], ["2020-01-15", { c: "46", ca: "46", e: "79", f: "39", fa: "39", s: "11.1", si: "11.3" }], ["2021-01-26", { c: "50", ca: "50", e: "79", f: "85", fa: "85", s: "11.1", si: "11.3" }], ["2020-01-15", { c: "65", ca: "65", e: "79", f: "50", fa: "50", s: "9", si: "9" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-12-19", { c: "77", ca: "77", e: "79", f: "121", fa: "121", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "3.5", fa: "6", s: "4", si: "3.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-09-16", { c: "85", ca: "85", e: "85", f: "79", fa: "79", s: "14", si: "14" }], ["2021-09-20", { c: "89", ca: "89", e: "89", f: "66", fa: "66", s: "15", si: "15" }], ["2015-07-29", { c: "26", ca: "26", e: "12", f: "21", fa: "21", s: "7", si: "7" }], ["2015-07-29", { c: "38", ca: "38", e: "12", f: "13", fa: "14", s: "8", si: "8" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "7", ca: "18", e: "12", f: "4", fa: "4", s: "5.1", si: "5" }], ["2020-01-15", { c: "24", ca: "25", e: "79", f: "35", fa: "35", s: "7", si: "7" }], ["2023-12-07", { c: "120", ca: "120", e: "120", f: "53", fa: "53", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "9", ca: "18", e: "12", f: "6", fa: "6", s: "5.1", si: "5" }], ["2023-01-12", { c: "109", ca: "109", e: "109", f: "4", fa: "4", s: "5.1", si: "5" }], ["2022-04-28", { c: "101", ca: "101", e: "101", f: "63", fa: "63", s: "15.4", si: "15.4" }], ["2017-09-19", { c: "53", ca: "53", e: "12", f: "36", fa: "36", s: "11", si: "11" }], ["2020-02-04", { c: "80", ca: "80", e: "12", f: "42", fa: "42", s: "8", si: "12.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2023-03-27", { c: "104", ca: "104", e: "104", f: "102", fa: "102", s: "16.4", si: "16.4" }], ["2021-04-26", { c: "49", ca: "49", e: "79", f: "25", fa: "25", s: "14.1", si: "14" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2023-03-27", { c: "60", ca: "60", e: "18", f: "57", fa: "57", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2018-10-02", { c: "6", ca: "18", e: "18", f: "56", fa: "56", s: "6", si: "10.3" }], ["2020-07-28", { c: "79", ca: "79", e: "79", f: "75", fa: "79", s: "13.1", si: "13.4" }], ["2020-01-15", { c: "46", ca: "46", e: "79", f: "66", fa: "66", s: "11", si: "11" }], ["2015-07-29", { c: "18", ca: "18", e: "12", f: "1", fa: "4", s: "1.3", si: "1" }], ["2020-01-15", { c: "41", ca: "41", e: "79", f: "32", fa: "32", s: "8", si: "8" }], ["2020-01-15", { c: "\u226479", ca: "\u226479", e: "79", f: "\u226423", fa: "\u226423", s: "\u22649.1", si: "\u22649.3" }], ["2022-09-02", { c: "105", ca: "105", e: "105", f: "103", fa: "103", s: "15.6", si: "15.6" }], ["2023-09-18", { c: "66", ca: "66", e: "79", f: "115", fa: "115", s: "17", si: "17" }], ["2022-09-12", { c: "55", ca: "55", e: "79", f: "72", fa: "79", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2017-03-07", { c: "50", ca: "50", e: "12", f: "52", fa: "52", s: "9", si: "9" }], ["2015-07-29", { c: "26", ca: "26", e: "12", f: "14", fa: "14", s: "7", si: "7" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2026-01-13", { c: "102", ca: "102", e: "102", f: "147", fa: "147", s: "26.2", si: "26.2" }], ["2021-10-25", { c: "57", ca: "57", e: "12", f: "58", fa: "58", s: "15", si: "15.1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-12-11", { c: "120", ca: "120", e: "120", f: "117", fa: "117", s: "17.2", si: "17.2" }], ["2021-01-21", { c: "88", ca: "88", e: "88", f: "84", fa: "84", s: "9", si: "9" }], ["2023-03-27", { c: "20", ca: "42", e: "14", f: "22", fa: "22", s: "7", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "3.5", fa: "4", s: "3.1", si: "2" }], ["2023-05-09", { c: "111", ca: "111", e: "111", f: "113", fa: "113", s: "9", si: "9" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "3.5", fa: "4", s: "3.1", si: "2" }], ["2020-09-16", { c: "85", ca: "85", e: "85", f: "79", fa: "79", s: "14", si: "14" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-07-28", { c: "75", ca: "75", e: "79", f: "70", fa: "79", s: "13", si: "13" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "2" }], ["2020-01-15", { c: "32", ca: "32", e: "79", f: "36", fa: "36", s: "10", si: "10" }], ["2022-03-14", { c: "93", ca: "93", e: "93", f: "92", fa: "92", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-01-15", { c: "32", ca: "32", e: "79", f: "36", fa: "36", s: "10", si: "10" }], ["2015-07-29", { c: "24", ca: "25", e: "12", f: "24", fa: "24", s: "8", si: "8" }], ["2021-04-26", { c: "80", ca: "80", e: "80", f: "71", fa: "79", s: "14.1", si: "14.5" }], ["2015-07-29", { c: "10", ca: "18", e: "12", f: "10", fa: "10", s: "8", si: "8" }], ["2015-07-29", { c: "10", ca: "18", e: "12", f: "6", fa: "6", s: "8", si: "8" }], ["2015-07-29", { c: "29", ca: "29", e: "12", f: "24", fa: "24", s: "8", si: "8" }], ["2016-08-02", { c: "27", ca: "27", e: "14", f: "29", fa: "29", s: "8", si: "8" }], ["2018-04-30", { c: "24", ca: "25", e: "17", f: "25", fa: "25", s: "8", si: "9" }], ["2021-04-26", { c: "35", ca: "35", e: "12", f: "25", fa: "25", s: "14.1", si: "14.5" }], ["2023-03-27", { c: "69", ca: "69", e: "79", f: "105", fa: "105", s: "16.4", si: "16.4" }], ["2023-05-09", { c: "111", ca: "111", e: "111", f: "113", fa: "113", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "1.5", fa: "4", s: "4", si: "3.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "2", si: "1" }], ["\u22642020-03-24", { c: "\u226480", ca: "\u226480", e: "\u226480", f: "1.5", fa: "4", s: "\u226413.1", si: "\u226413.4" }], ["2020-01-15", { c: "66", ca: "66", e: "79", f: "58", fa: "58", s: "11.1", si: "11.3" }], ["2023-03-27", { c: "108", ca: "109", e: "108", f: "111", fa: "111", s: "16.4", si: "16.4" }], ["2023-03-27", { c: "94", ca: "94", e: "94", f: "88", fa: "88", s: "16.4", si: "16.4" }], ["2017-04-05", { c: "1", ca: "18", e: "15", f: "1.5", fa: "4", s: "1.2", si: "1" }], ["\u22642018-10-02", { c: "10", ca: "18", e: "\u226418", f: "4", fa: "4", s: "7", si: "7" }], ["2023-09-18", { c: "113", ca: "113", e: "113", f: "66", fa: "66", s: "17", si: "17" }], ["2022-09-12", { c: "90", ca: "90", e: "90", f: "81", fa: "81", s: "16", si: "16" }], ["2020-03-24", { c: "68", ca: "68", e: "79", f: "61", fa: "61", s: "13.1", si: "13.4" }], ["2018-10-02", { c: "23", ca: "25", e: "18", f: "49", fa: "49", s: "7", si: "7" }], ["2022-09-12", { c: "63", ca: "63", e: "18", f: "59", fa: "59", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2019-01-29", { c: "50", ca: "50", e: "12", f: "65", fa: "65", s: "10", si: "10" }], ["2024-12-11", { c: "15", ca: "18", e: "79", f: "95", fa: "95", s: "18.2", si: "18.2" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "1.5", fa: "4", s: "5", si: "4" }], ["2015-07-29", { c: "33", ca: "33", e: "12", f: "18", fa: "18", s: "7", si: "7" }], ["2024-03-22", { c: "123", ca: "123", e: "123", f: "\u226466", fa: "\u226466", s: "\u226412", si: "\u226412" }], ["2021-04-26", { c: "60", ca: "60", e: "79", f: "84", fa: "84", s: "14.1", si: "14.5" }], ["2025-09-15", { c: "124", ca: "124", e: "124", f: "128", fa: "128", s: "26", si: "26" }], ["2023-03-27", { c: "94", ca: "94", e: "94", f: "99", fa: "99", s: "16.4", si: "16.4" }], ["2015-09-16", { c: "6", ca: "18", e: "12", f: "7", fa: "7", s: "8", si: "9" }], ["2022-09-12", { c: "44", ca: "44", e: "79", f: "46", fa: "46", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2016-03-21", { c: "38", ca: "38", e: "13", f: "38", fa: "38", s: "9.1", si: "9.3" }], ["2020-01-15", { c: "57", ca: "57", e: "79", f: "51", fa: "51", s: "10.1", si: "10.3" }], ["2020-01-15", { c: "47", ca: "47", e: "79", f: "51", fa: "51", s: "9", si: "9" }], ["2020-01-15", { c: "59", ca: "59", e: "79", f: "3", fa: "4", s: "8", si: "8" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "3.6", fa: "4", s: "4", si: "3.2" }], ["2020-07-28", { c: "55", ca: "55", e: "12", f: "59", fa: "79", s: "13", si: "13" }], ["2025-01-27", { c: "116", ca: "116", e: "116", f: "125", fa: "125", s: "17", si: "18.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "3", fa: "4", s: "4", si: "3.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2020-01-15", { c: "76", ca: "76", e: "79", f: "67", fa: "67", s: "12.1", si: "13" }], ["2022-05-31", { c: "96", ca: "96", e: "96", f: "101", fa: "101", s: "14.1", si: "14.5" }], ["2020-01-15", { c: "74", ca: "74", e: "79", f: "63", fa: "64", s: "10.1", si: "10.3" }], ["2023-12-11", { c: "73", ca: "73", e: "79", f: "78", fa: "79", s: "17.2", si: "17.2" }], ["2023-12-11", { c: "86", ca: "86", e: "86", f: "101", fa: "101", s: "17.2", si: "17.2" }], ["2023-06-06", { c: "1", ca: "18", e: "12", f: "1", fa: "114", s: "1.1", si: "1" }], ["2025-05-01", { c: "136", ca: "136", e: "136", f: "97", fa: "97", s: "15.4", si: "15.4" }], ["2019-09-19", { c: "63", ca: "63", e: "12", f: "6", fa: "6", s: "13", si: "13" }], ["2015-07-29", { c: "6", ca: "18", e: "12", f: "6", fa: "6", s: "6", si: "7" }], ["2015-07-29", { c: "32", ca: "32", e: "12", f: "29", fa: "29", s: "8", si: "8" }], ["2020-07-28", { c: "76", ca: "76", e: "79", f: "71", fa: "79", s: "13", si: "13" }], ["2020-09-16", { c: "85", ca: "85", e: "85", f: "79", fa: "79", s: "14", si: "14" }], ["2018-10-02", { c: "63", ca: "63", e: "18", f: "58", fa: "58", s: "11.1", si: "11.3" }], ["2025-01-07", { c: "128", ca: "128", e: "128", f: "134", fa: "134", s: "18.2", si: "18.2" }], ["2024-03-05", { c: "119", ca: "119", e: "119", f: "121", fa: "121", s: "17.4", si: "17.4" }], ["2016-09-20", { c: "49", ca: "49", e: "12", f: "18", fa: "18", s: "10", si: "10" }], ["2023-03-27", { c: "50", ca: "50", e: "17", f: "44", fa: "48", s: "16", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "2" }], ["2020-03-24", { c: "63", ca: "63", e: "79", f: "49", fa: "49", s: "13.1", si: "13.4" }], ["2020-07-28", { c: "71", ca: "71", e: "79", f: "69", fa: "79", s: "12.1", si: "12.2" }], ["2021-04-26", { c: "87", ca: "87", e: "87", f: "70", fa: "79", s: "14.1", si: "14.5" }], ["2026-01-13", { c: "118", ca: "118", e: "118", f: "147", fa: "147", s: "17.2", si: "17.2" }], ["2026-01-13", { c: "111", ca: "111", e: "111", f: "147", fa: "147", s: "17.2", si: "17.2" }], ["2020-07-28", { c: "1", ca: "18", e: "13", f: "78", fa: "79", s: "4", si: "3.2" }], ["2024-01-23", { c: "119", ca: "119", e: "119", f: "122", fa: "122", s: "17.2", si: "17.2" }], ["2021-09-20", { c: "85", ca: "85", e: "85", f: "87", fa: "87", s: "15", si: "15" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-05-01", { c: "136", ca: "136", e: "136", f: "134", fa: "134", s: "18.2", si: "18.2" }], ["2024-07-09", { c: "85", ca: "85", e: "85", f: "128", fa: "128", s: "16.4", si: "16.4" }], ["2024-09-16", { c: "125", ca: "125", e: "125", f: "128", fa: "128", s: "18", si: "18" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "3.6", fa: "4", s: "5", si: "4" }], ["2015-07-29", { c: "24", ca: "25", e: "12", f: "23", fa: "23", s: "7", si: "7" }], ["2023-03-27", { c: "69", ca: "69", e: "79", f: "99", fa: "99", s: "16.4", si: "16.4" }], ["2024-10-29", { c: "83", ca: "83", e: "83", f: "132", fa: "132", s: "15.4", si: "15.4" }], ["2025-05-27", { c: "134", ca: "134", e: "134", f: "139", fa: "139", s: "18.4", si: "18.4" }], ["2024-07-09", { c: "111", ca: "111", e: "111", f: "128", fa: "128", s: "16.4", si: "16.4" }], ["2020-07-28", { c: "64", ca: "64", e: "79", f: "69", fa: "79", s: "13.1", si: "13.4" }], ["2022-09-12", { c: "68", ca: "68", e: "79", f: "62", fa: "62", s: "16", si: "16" }], ["2018-10-23", { c: "1", ca: "18", e: "12", f: "63", fa: "63", s: "3", si: "1" }], ["2023-03-27", { c: "54", ca: "54", e: "17", f: "45", fa: "45", s: "16.4", si: "16.4" }], ["2017-09-19", { c: "29", ca: "29", e: "12", f: "35", fa: "35", s: "11", si: "11" }], ["2020-07-27", { c: "84", ca: "84", e: "84", f: "67", fa: "67", s: "9.1", si: "9.3" }], ["2026-01-13", { c: "111", ca: "111", e: "111", f: "147", fa: "147", s: "17.2", si: "17.2" }], ["2020-01-15", { c: "65", ca: "65", e: "79", f: "52", fa: "52", s: "12.1", si: "12.2" }], ["2026-01-13", { c: "111", ca: "111", e: "111", f: "147", fa: "147", s: "17.2", si: "17.2" }], ["2023-11-21", { c: "111", ca: "111", e: "111", f: "120", fa: "120", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2024-05-17", { c: "125", ca: "125", e: "125", f: "118", fa: "118", s: "17.2", si: "17.2" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "38", fa: "38", s: "5", si: "4.2" }], ["2024-12-11", { c: "128", ca: "128", e: "128", f: "38", fa: "38", s: "18.2", si: "18.2" }], ["2024-12-11", { c: "84", ca: "84", e: "84", f: "38", fa: "38", s: "18.2", si: "18.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2020-01-15", { c: "69", ca: "69", e: "79", f: "65", fa: "65", s: "11.1", si: "11.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2025-12-09", { c: "118", ca: "118", e: "118", f: "146", fa: "146", s: "17.4", si: "17.4" }], ["2020-01-15", { c: "27", ca: "27", e: "79", f: "32", fa: "32", s: "7", si: "7" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-03-27", { c: "38", ca: "39", e: "79", f: "43", fa: "43", s: "16.4", si: "16.4" }], ["2025-03-31", { c: "84", ca: "84", e: "84", f: "126", fa: "126", s: "16.4", si: "18.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "2" }], ["2023-12-07", { c: "120", ca: "120", e: "120", f: "113", fa: "113", s: "17", si: "17" }], ["2022-03-14", { c: "61", ca: "61", e: "79", f: "36", fa: "36", s: "15.4", si: "15.4" }], ["2020-09-16", { c: "61", ca: "61", e: "79", f: "36", fa: "36", s: "14", si: "14" }], ["2020-01-15", { c: "1", ca: "18", e: "79", f: "1", fa: "4", s: "3", si: "1" }], ["2020-01-15", { c: "69", ca: "69", e: "79", f: "68", fa: "68", s: "11", si: "11" }], ["2024-10-01", { c: "80", ca: "80", e: "80", f: "131", fa: "131", s: "16.1", si: "16.1" }], ["2025-12-12", { c: "121", ca: "121", e: "121", f: "64", fa: "64", s: "26.2", si: "26.2" }], ["2024-12-11", { c: "94", ca: "94", e: "94", f: "97", fa: "97", s: "18.2", si: "18.2" }], ["2024-12-11", { c: "121", ca: "121", e: "121", f: "64", fa: "64", s: "18.2", si: "18.2" }], ["2025-12-12", { c: "114", ca: "114", e: "114", f: "109", fa: "109", s: "26.2", si: "26.2" }], ["2023-10-13", { c: "118", ca: "118", e: "118", f: "118", fa: "118", s: "17", si: "17" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2017-03-07", { c: "11", ca: "18", e: "12", f: "52", fa: "52", s: "5.1", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2020-01-15", { c: "6", ca: "18", e: "79", f: "6", fa: "45", s: "5", si: "5" }], ["2023-03-27", { c: "65", ca: "65", e: "79", f: "61", fa: "61", s: "16.4", si: "16.4" }], ["2018-04-30", { c: "45", ca: "45", e: "17", f: "44", fa: "44", s: "11.1", si: "11.3" }], ["2015-07-29", { c: "38", ca: "38", e: "12", f: "13", fa: "14", s: "8", si: "8" }], ["2024-06-11", { c: "122", ca: "122", e: "122", f: "127", fa: "127", s: "17", si: "17" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "4", si: "5" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "4", si: "5" }], ["2020-01-15", { c: "53", ca: "53", e: "79", f: "63", fa: "63", s: "10", si: "10" }], ["2020-07-28", { c: "73", ca: "73", e: "79", f: "72", fa: "79", s: "13.1", si: "13.4" }], ["2020-01-15", { c: "37", ca: "37", e: "79", f: "62", fa: "62", s: "10.1", si: "10.3" }], ["2020-01-15", { c: "37", ca: "37", e: "79", f: "54", fa: "54", s: "10.1", si: "10.3" }], ["2021-12-13", { c: "68", ca: "89", e: "79", f: "79", fa: "79", s: "15.2", si: "15.2" }], ["2020-01-15", { c: "53", ca: "53", e: "79", f: "63", fa: "63", s: "10", si: "10" }], ["2023-03-27", { c: "92", ca: "92", e: "92", f: "92", fa: "92", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2020-01-15", { c: "19", ca: "25", e: "79", f: "4", fa: "4", s: "6", si: "6" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "3.1", si: "2" }], ["2020-01-15", { c: "18", ca: "18", e: "79", f: "55", fa: "55", s: "7", si: "7" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2018-09-05", { c: "33", ca: "33", e: "14", f: "49", fa: "62", s: "7", si: "7" }], ["2017-11-28", { c: "9", ca: "47", e: "12", f: "2", fa: "57", s: "5.1", si: "5" }], ["2020-01-15", { c: "60", ca: "60", e: "79", f: "55", fa: "55", s: "11.1", si: "11.3" }], ["2017-03-27", { c: "38", ca: "38", e: "13", f: "38", fa: "38", s: "10.1", si: "10.3" }], ["2020-01-15", { c: "70", ca: "70", e: "79", f: "3", fa: "4", s: "10.1", si: "10.3" }], ["2024-08-06", { c: "117", ca: "117", e: "117", f: "129", fa: "129", s: "17.5", si: "17.5" }], ["2024-05-17", { c: "125", ca: "125", e: "125", f: "126", fa: "126", s: "17.4", si: "17.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-09-16", { c: "77", ca: "77", e: "79", f: "65", fa: "65", s: "14", si: "14" }], ["2019-09-19", { c: "56", ca: "56", e: "16", f: "59", fa: "59", s: "13", si: "13" }], ["2023-12-05", { c: "119", ca: "120", e: "85", f: "65", fa: "65", s: "11.1", si: "11.3" }], ["2023-09-18", { c: "61", ca: "61", e: "79", f: "57", fa: "57", s: "17", si: "17" }], ["2022-06-28", { c: "67", ca: "67", e: "79", f: "102", fa: "102", s: "14.1", si: "14.5" }], ["2022-03-14", { c: "92", ca: "92", e: "92", f: "90", fa: "90", s: "15.4", si: "15.4" }], ["2015-09-30", { c: "41", ca: "41", e: "12", f: "29", fa: "29", s: "9", si: "9" }], ["2015-09-30", { c: "41", ca: "41", e: "12", f: "40", fa: "40", s: "9", si: "9" }], ["2020-01-15", { c: "73", ca: "73", e: "79", f: "67", fa: "67", s: "13", si: "13" }], ["2016-09-20", { c: "34", ca: "34", e: "12", f: "31", fa: "31", s: "10", si: "10" }], ["2017-04-05", { c: "57", ca: "57", e: "15", f: "48", fa: "48", s: "10", si: "10" }], ["2015-09-30", { c: "41", ca: "41", e: "12", f: "34", fa: "34", s: "9", si: "9" }], ["2015-09-30", { c: "41", ca: "36", e: "12", f: "24", fa: "24", s: "9", si: "9" }], ["2020-08-27", { c: "85", ca: "85", e: "85", f: "77", fa: "79", s: "13.1", si: "13.4" }], ["2015-09-30", { c: "41", ca: "36", e: "12", f: "17", fa: "17", s: "9", si: "9" }], ["2020-01-15", { c: "66", ca: "66", e: "79", f: "61", fa: "61", s: "12", si: "12" }], ["2023-10-24", { c: "111", ca: "111", e: "111", f: "119", fa: "119", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2022-03-14", { c: "98", ca: "98", e: "98", f: "94", fa: "94", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2023-09-15", { c: "117", ca: "117", e: "117", f: "71", fa: "79", s: "16", si: "16" }], ["2015-09-30", { c: "28", ca: "28", e: "12", f: "22", fa: "22", s: "9", si: "9" }], ["2016-09-20", { c: "2", ca: "18", e: "12", f: "49", fa: "49", s: "4", si: "3.2" }], ["2020-01-15", { c: "1", ca: "18", e: "79", f: "3", fa: "4", s: "3", si: "2" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "3", fa: "4", s: "6", si: "6" }], ["2015-09-30", { c: "38", ca: "38", e: "12", f: "36", fa: "36", s: "9", si: "9" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2021-08-10", { c: "42", ca: "42", e: "79", f: "91", fa: "91", s: "13.1", si: "13.4" }], ["2018-10-02", { c: "1", ca: "18", e: "18", f: "1.5", fa: "4", s: "3.1", si: "2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1.3", si: "2" }], ["2024-12-11", { c: "89", ca: "89", e: "89", f: "131", fa: "131", s: "18.2", si: "18.2" }], ["2015-11-12", { c: "26", ca: "26", e: "13", f: "22", fa: "22", s: "8", si: "8" }], ["2020-01-15", { c: "62", ca: "62", e: "79", f: "53", fa: "53", s: "11", si: "11" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-09-12", { c: "47", ca: "47", e: "12", f: "49", fa: "49", s: "16", si: "16" }], ["2022-03-14", { c: "48", ca: "48", e: "79", f: "48", fa: "48", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-03-03", { c: "99", ca: "99", e: "99", f: "46", fa: "46", s: "7", si: "7" }], ["2020-01-15", { c: "38", ca: "38", e: "79", f: "19", fa: "19", s: "10.1", si: "10.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-09-16", { c: "48", ca: "48", e: "79", f: "41", fa: "41", s: "14", si: "14" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "7", fa: "7", s: "1.3", si: "1" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "3.5", fa: "4", s: "1.1", si: "1" }], ["2017-04-05", { c: "4", ca: "18", e: "15", f: "49", fa: "49", s: "3", si: "2" }], ["2015-07-29", { c: "23", ca: "25", e: "12", f: "31", fa: "31", s: "6", si: "6" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-11-19", { c: "87", ca: "87", e: "87", f: "70", fa: "79", s: "12.1", si: "12.2" }], ["2020-07-28", { c: "33", ca: "33", e: "12", f: "74", fa: "79", s: "12.1", si: "12.2" }], ["2024-03-19", { c: "114", ca: "114", e: "114", f: "124", fa: "124", s: "17.4", si: "17.4" }], ["2024-05-13", { c: "114", ca: "114", e: "114", f: "121", fa: "121", s: "17.5", si: "17.5" }], ["2024-10-17", { c: "130", ca: "130", e: "130", f: "124", fa: "124", s: "17.4", si: "17.4" }], ["2024-03-19", { c: "114", ca: "114", e: "114", f: "124", fa: "124", s: "17.4", si: "17.4" }], ["2024-10-17", { c: "130", ca: "130", e: "130", f: "121", fa: "121", s: "17.5", si: "17.5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643" }], ["2017-10-24", { c: "62", ca: "62", e: "14", f: "22", fa: "22", s: "10", si: "10" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2019-09-19", { c: "36", ca: "36", e: "12", f: "52", fa: "52", s: "13", si: "9.3" }], ["2024-03-05", { c: "114", ca: "114", e: "114", f: "122", fa: "122", s: "17.4", si: "17.4" }], ["2024-04-16", { c: "118", ca: "118", e: "118", f: "125", fa: "125", s: "13.1", si: "13.4" }], ["2015-09-30", { c: "36", ca: "36", e: "12", f: "16", fa: "16", s: "9", si: "9" }], ["2022-03-14", { c: "36", ca: "36", e: "12", f: "16", fa: "16", s: "15.4", si: "15.4" }], ["2024-08-06", { c: "117", ca: "117", e: "117", f: "129", fa: "129", s: "17.4", si: "17.4" }], ["2015-09-30", { c: "26", ca: "26", e: "12", f: "16", fa: "16", s: "9", si: "9" }], ["2023-03-14", { c: "19", ca: "25", e: "79", f: "111", fa: "111", s: "6", si: "6" }], ["2023-03-13", { c: "111", ca: "111", e: "111", f: "108", fa: "108", s: "15.4", si: "15.4" }], ["2023-07-21", { c: "115", ca: "115", e: "115", f: "70", fa: "79", s: "15", si: "15" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "38", fa: "38", s: "10", si: "10" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "37", fa: "37", s: "10", si: "10" }], ["2015-07-29", { c: "7", ca: "18", e: "12", f: "4", fa: "4", s: "5.1", si: "4.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-09-05", { c: "140", ca: "140", e: "140", f: "133", fa: "133", s: "18.2", si: "18.2" }], ["2015-09-30", { c: "44", ca: "44", e: "12", f: "40", fa: "40", s: "9", si: "9" }], ["2016-03-21", { c: "41", ca: "41", e: "13", f: "27", fa: "27", s: "9.1", si: "9.3" }], ["2023-09-18", { c: "113", ca: "113", e: "113", f: "102", fa: "102", s: "17", si: "17" }], ["2018-04-30", { c: "44", ca: "44", e: "17", f: "48", fa: "48", s: "10.1", si: "10.3" }], ["2015-07-29", { c: "32", ca: "32", e: "12", f: "19", fa: "19", s: "7", si: "7" }], ["2023-12-07", { c: "120", ca: "120", e: "120", f: "115", fa: "115", s: "17", si: "17" }], ["2025-09-15", { c: "95", ca: "95", e: "95", f: "142", fa: "142", s: "26", si: "26" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "2", si: "1" }], ["2023-11-21", { c: "72", ca: "72", e: "79", f: "120", fa: "120", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "3.5", fa: "4", s: "4", si: "5" }], ["2023-11-02", { c: "119", ca: "119", e: "119", f: "88", fa: "88", s: "16.5", si: "16.5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2024-04-18", { c: "124", ca: "124", e: "124", f: "120", fa: "120", s: "17.4", si: "17.4" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "3.1", si: "3" }], ["2025-10-14", { c: "125", ca: "125", e: "125", f: "144", fa: "144", s: "18.2", si: "18.2" }], ["2025-10-14", { c: "111", ca: "111", e: "111", f: "144", fa: "144", s: "18", si: "18" }], ["2022-12-05", { c: "108", ca: "108", e: "108", f: "101", fa: "101", s: "15.4", si: "15.4" }], ["2017-10-17", { c: "26", ca: "26", e: "16", f: "19", fa: "19", s: "7", si: "7" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1.3", si: "1" }], ["2021-08-10", { c: "61", ca: "61", e: "79", f: "91", fa: "68", s: "13", si: "13" }], ["2017-10-17", { c: "57", ca: "57", e: "16", f: "52", fa: "52", s: "11", si: "11" }], ["2021-04-26", { c: "85", ca: "85", e: "85", f: "78", fa: "79", s: "14.1", si: "14.5" }], ["2021-10-25", { c: "75", ca: "75", e: "79", f: "78", fa: "79", s: "15.1", si: "15.1" }], ["2022-05-03", { c: "95", ca: "95", e: "95", f: "100", fa: "100", s: "15.2", si: "15.2" }], ["2024-03-05", { c: "114", ca: "114", e: "114", f: "112", fa: "112", s: "17.4", si: "17.4" }], ["2024-12-11", { c: "119", ca: "119", e: "119", f: "120", fa: "120", s: "18.2", si: "18.2" }], ["2020-10-20", { c: "86", ca: "86", e: "86", f: "78", fa: "79", s: "13.1", si: "13.4" }], ["2020-03-24", { c: "69", ca: "69", e: "79", f: "62", fa: "62", s: "13.1", si: "13.4" }], ["2021-10-25", { c: "75", ca: "75", e: "18", f: "64", fa: "64", s: "15.1", si: "15.1" }], ["2021-11-19", { c: "96", ca: "96", e: "96", f: "79", fa: "79", s: "15.1", si: "15.1" }], ["2021-04-26", { c: "69", ca: "69", e: "18", f: "62", fa: "62", s: "14.1", si: "14.5" }], ["2023-03-27", { c: "91", ca: "91", e: "91", f: "89", fa: "89", s: "16.4", si: "16.4" }], ["2024-12-11", { c: "112", ca: "112", e: "112", f: "121", fa: "121", s: "18.2", si: "18.2" }], ["2021-12-13", { c: "74", ca: "88", e: "79", f: "79", fa: "79", s: "15.2", si: "15.2" }], ["2024-09-16", { c: "119", ca: "119", e: "119", f: "120", fa: "120", s: "18", si: "18" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "4", si: "3.2" }], ["2021-04-26", { c: "84", ca: "84", e: "84", f: "79", fa: "79", s: "14.1", si: "14.5" }], ["2015-07-29", { c: "36", ca: "36", e: "12", f: "6", fa: "6", s: "8", si: "8" }], ["2015-09-30", { c: "36", ca: "36", e: "12", f: "34", fa: "34", s: "9", si: "9" }], ["2020-09-16", { c: "84", ca: "84", e: "84", f: "75", fa: "79", s: "14", si: "14" }], ["2021-04-26", { c: "35", ca: "35", e: "12", f: "25", fa: "25", s: "14.1", si: "14.5" }], ["2015-07-29", { c: "37", ca: "37", e: "12", f: "34", fa: "34", s: "11", si: "11" }], ["2022-03-14", { c: "69", ca: "69", e: "79", f: "96", fa: "96", s: "15.4", si: "15.4" }], ["2021-09-07", { c: "67", ca: "70", e: "18", f: "60", fa: "92", s: "13", si: "13" }], ["2023-10-24", { c: "85", ca: "85", e: "85", f: "119", fa: "119", s: "16", si: "16" }], ["2015-07-29", { c: "9", ca: "25", e: "12", f: "4", fa: "4", s: "5.1", si: "8" }], ["2021-09-20", { c: "63", ca: "63", e: "17", f: "30", fa: "30", s: "14", si: "15" }], ["2024-10-29", { c: "104", ca: "104", e: "104", f: "132", fa: "132", s: "16.4", si: "16.4" }], ["2020-01-15", { c: "47", ca: "47", e: "79", f: "53", fa: "53", s: "12", si: "12" }], ["2017-04-19", { c: "33", ca: "33", e: "12", f: "53", fa: "53", s: "9.1", si: "9.3" }], ["2020-09-16", { c: "47", ca: "47", e: "79", f: "56", fa: "56", s: "14", si: "14" }], ["2015-07-29", { c: "26", ca: "26", e: "12", f: "22", fa: "22", s: "8", si: "8" }], ["2018-04-30", { c: "26", ca: "26", e: "17", f: "22", fa: "22", s: "8", si: "8" }], ["2022-12-13", { c: "100", ca: "100", e: "100", f: "108", fa: "108", s: "16", si: "16" }], ["2021-09-20", { c: "56", ca: "58", e: "79", f: "51", fa: "51", s: "15", si: "15" }], ["2024-10-29", { c: "104", ca: "104", e: "104", f: "132", fa: "132", s: "16.4", si: "16.4" }], ["2020-09-16", { c: "9", ca: "18", e: "18", f: "65", fa: "65", s: "14", si: "14" }], ["2020-01-15", { c: "56", ca: "56", e: "79", f: "22", fa: "24", s: "11", si: "11" }], ["2025-10-03", { c: "141", ca: "141", e: "141", f: "117", fa: "117", s: "15.4", si: "15.4" }], ["2023-05-09", { c: "76", ca: "76", e: "79", f: "113", fa: "113", s: "15.4", si: "15.4" }], ["2020-01-15", { c: "58", ca: "58", e: "79", f: "44", fa: "44", s: "11", si: "11" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "11", fa: "14", s: "5", si: "4.2" }], ["2015-07-29", { c: "23", ca: "25", e: "12", f: "31", fa: "31", s: "6", si: "8" }], ["2020-01-15", { c: "23", ca: "25", e: "79", f: "31", fa: "31", s: "6", si: "8" }], ["2021-01-21", { c: "88", ca: "88", e: "88", f: "82", fa: "82", s: "14", si: "14" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2024-03-19", { c: "114", ca: "114", e: "114", f: "124", fa: "124", s: "17.4", si: "17.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-01-15", { c: "36", ca: "36", e: "79", f: "36", fa: "36", s: "9.1", si: "9.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-09-30", { c: "44", ca: "44", e: "12", f: "15", fa: "15", s: "9", si: "9" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2017-03-27", { c: "48", ca: "48", e: "12", f: "41", fa: "41", s: "10.1", si: "10.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3.1", si: "2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "3", fa: "4", s: "1", si: "1" }], ["2024-05-14", { c: "1", ca: "18", e: "12", f: "126", fa: "126", s: "3.1", si: "3" }]];
    var c6 = { w: "WebKit", g: "Gecko", p: "Presto", b: "Blink" };
    var e4 = { r: "retired", c: "current", b: "beta", n: "nightly", p: "planned", u: "unknown", e: "esr" };
    var f4 = (s5) => {
      const a6 = {};
      return Object.entries(s5).forEach(([s6, r5]) => {
        if (r5.releases) {
          a6[s6] || (a6[s6] = { releases: {} });
          const f5 = a6[s6].releases;
          r5.releases.forEach((s7) => {
            f5[s7[0]] = { version: s7[0], release_date: "u" == s7[1] ? "unknown" : s7[1], status: e4[s7[2]], engine: s7[3] ? c6[s7[3]] : void 0, engine_version: s7[4] };
          });
        }
      }), a6;
    };
    var b3 = (() => {
      const s5 = [];
      return r4.forEach((a6) => {
        var r5;
        s5.push({ status: { baseline_low_date: a6[0], support: (r5 = a6[1], { chrome: r5.c, chrome_android: r5.ca, edge: r5.e, firefox: r5.f, firefox_android: r5.fa, safari: r5.s, safari_ios: r5.si }) } });
      }), s5;
    })();
    var u5 = f4(s4);
    var i5 = f4(a5);
    var n6 = false;
    var o5 = ["chrome", "chrome_android", "edge", "firefox", "firefox_android", "safari", "safari_ios"];
    var g3 = Object.entries(u5).filter(([s5]) => o5.includes(s5));
    var t4 = ["webview_android", "samsunginternet_android", "opera_android", "opera"];
    var l4 = [...Object.entries(u5).filter(([s5]) => t4.includes(s5)), ...Object.entries(i5)];
    var w = ["current", "esr", "retired", "unknown", "beta", "nightly"];
    var p3 = false;
    var d3 = (s5) => {
      if (false === s5.includeDownstreamBrowsers && true === s5.includeKaiOS) {
        if (console.log(new Error("KaiOS is a downstream browser and can only be included if you include other downstream browsers. Please ensure you use `includeDownstreamBrowsers: true`.")), "undefined" == typeof process || !process.exit) throw new Error("KaiOS configuration error: process.exit is not available");
        process.exit(1);
      }
    };
    var v3 = (s5) => s5 && s5.startsWith("\u2264") ? s5.slice(1) : s5;
    var _ = (s5, a6) => {
      if (s5 === a6) return 0;
      const [r5 = 0, c7 = 0] = s5.split(".", 2).map(Number), [e5 = 0, f5 = 0] = a6.split(".", 2).map(Number);
      if (isNaN(r5) || isNaN(c7)) throw new Error(`Invalid version: ${s5}`);
      if (isNaN(e5) || isNaN(f5)) throw new Error(`Invalid version: ${a6}`);
      return r5 !== e5 ? r5 > e5 ? 1 : -1 : c7 !== f5 ? c7 > f5 ? 1 : -1 : 0;
    };
    var h4 = (s5) => {
      let a6 = [];
      return s5.forEach((s6) => {
        let r5 = g3.find((a7) => a7[0] === s6.browser);
        if (r5) {
          Object.entries(r5[1].releases).filter(([, s7]) => w.includes(s7.status)).sort((s7, a7) => _(s7[0], a7[0])).forEach(([r6, c7]) => !!w.includes(c7.status) && (1 === _(r6, s6.version) && (a6.push({ browser: s6.browser, version: r6, release_date: c7.release_date ? c7.release_date : "unknown" }), true)));
        }
      }), a6;
    };
    var m3 = (s5, a6 = false) => {
      if (s5.getFullYear() < 2015 && !p3 && console.warn(new Error("There are no browser versions compatible with Baseline before 2015.  You may receive unexpected results.")), s5.getFullYear() < 2002) throw new Error("None of the browsers in the core set were released before 2002.  Please use a date after 2002.");
      if (s5.getFullYear() > (/* @__PURE__ */ new Date()).getFullYear()) throw new Error("There are no browser versions compatible with Baseline in the future");
      const r5 = ((s6) => b3.filter((a7) => a7.status.baseline_low_date && new Date(a7.status.baseline_low_date) <= s6).map((s7) => ({ baseline_low_date: s7.status.baseline_low_date, support: s7.status.support })))(s5), c7 = ((s6) => {
        let a7 = {};
        return Object.entries(g3).forEach(([, s7]) => {
          a7[s7[0]] = { browser: s7[0], version: "0", release_date: "" };
        }), s6.forEach((s7) => {
          Object.entries(s7.support).forEach((r6) => {
            const c8 = r6[0], e5 = v3(r6[1]);
            a7[c8] && 1 === _(e5, v3(a7[c8].version)) && (a7[c8] = { browser: c8, version: e5, release_date: s7.baseline_low_date });
          });
        }), Object.values(a7);
      })(r5);
      return a6 ? [...c7, ...h4(c7)].sort((s6, a7) => s6.browser < a7.browser ? -1 : s6.browser > a7.browser ? 1 : _(s6.version, a7.version)) : c7;
    };
    var O = (s5 = [], a6 = true, r5 = false) => {
      const c7 = (a7) => {
        var r6;
        return s5 && s5.length > 0 ? null === (r6 = s5.filter((s6) => s6.browser === a7).sort((s6, a8) => _(s6.version, a8.version))[0]) || void 0 === r6 ? void 0 : r6.version : void 0;
      }, e5 = c7("chrome"), f5 = c7("firefox");
      if (!e5 && !f5) throw new Error("There are no browser versions compatible with Baseline before Chrome and Firefox");
      let b4 = [];
      return l4.filter(([s6]) => !("kai_os" === s6 && !r5)).forEach(([s6, r6]) => {
        var c8;
        if (!r6.releases) return;
        let u6 = Object.entries(r6.releases).filter(([, s7]) => {
          const { engine: a7, engine_version: r7 } = s7;
          return !(!a7 || !r7) && ("Blink" === a7 && e5 ? _(r7, e5) >= 0 : !("Gecko" !== a7 || !f5) && _(r7, f5) >= 0);
        }).sort((s7, a7) => _(s7[0], a7[0]));
        for (let r7 = 0; r7 < u6.length; r7++) {
          const e6 = u6[r7];
          if (e6) {
            const [r8, f6] = e6;
            let u7 = { browser: s6, version: r8, release_date: null !== (c8 = f6.release_date) && void 0 !== c8 ? c8 : "unknown" };
            if (f6.engine && f6.engine_version && (u7.engine = f6.engine, u7.engine_version = f6.engine_version), b4.push(u7), !a6) break;
          }
        }
      }), b4;
    };
    function y3(s5) {
      var a6, r5, c7, e5, f5, b4, u6;
      let i6 = null != s5 ? s5 : {}, o6 = { listAllCompatibleVersions: null !== (a6 = i6.listAllCompatibleVersions) && void 0 !== a6 && a6, includeDownstreamBrowsers: null !== (r5 = i6.includeDownstreamBrowsers) && void 0 !== r5 && r5, widelyAvailableOnDate: null !== (c7 = i6.widelyAvailableOnDate) && void 0 !== c7 ? c7 : void 0, targetYear: null !== (e5 = i6.targetYear) && void 0 !== e5 ? e5 : void 0, includeKaiOS: null !== (f5 = i6.includeKaiOS) && void 0 !== f5 && f5, overrideLastUpdated: null !== (b4 = i6.overrideLastUpdated) && void 0 !== b4 ? b4 : void 0, suppressWarnings: null !== (u6 = i6.suppressWarnings) && void 0 !== u6 && u6 }, g4 = /* @__PURE__ */ new Date();
      if (d3(o6), o6.widelyAvailableOnDate || o6.targetYear) if (o6.targetYear && o6.widelyAvailableOnDate) {
        if (console.log(new Error("You cannot use targetYear and widelyAvailableOnDate at the same time.  Please remove one of these options and try again.")), "undefined" == typeof process || !process.exit) throw new Error("Configuration error: targetYear and widelyAvailableOnDate cannot be used together");
        process.exit(1);
      } else o6.widelyAvailableOnDate ? g4 = new Date(o6.widelyAvailableOnDate) : o6.targetYear && (g4 = /* @__PURE__ */ new Date(`${o6.targetYear}-12-31`));
      else g4 = /* @__PURE__ */ new Date();
      (o6.widelyAvailableOnDate || void 0 === o6.targetYear) && g4.setMonth(g4.getMonth() - 30);
      let t5 = m3(g4, o6.listAllCompatibleVersions);
      return o6.suppressWarnings || ((s6, a7) => {
        if (n6 || "undefined" != typeof process && process.env && (process.env.BROWSERSLIST_IGNORE_OLD_DATA || process.env.BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA)) return;
        const r6 = /* @__PURE__ */ new Date();
        r6.setMonth(r6.getMonth() - 2), s6 > r6 && (null != a7 ? a7 : 1769610017707) < r6.getTime() && (console.warn("[baseline-browser-mapping] The data in this module is over two months old and you are targetting a recent feature cut off date of " + s6.toISOString().slice(0, 10) + ". To ensure accurate Baseline data, please update to the latest version of this module using your package manager of choice.\nYou can suppress these warnings using the environment variables `BROWSERSLIST_IGNORE_OLD_DATA=true` or `BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA=true`.\nSome modules including `next.js` pre-compile data from this module via `browserslist` or other packages.\nPlease contact the maintainers of those modules if you are receiving these warnings and can't suppress them.\n"), n6 = true);
      })(g4, o6.overrideLastUpdated), false === o6.includeDownstreamBrowsers ? t5 : [...t5, ...O(t5, o6.listAllCompatibleVersions, o6.includeKaiOS)];
    }
    exports._resetHasWarned = function() {
      n6 = false;
    }, exports.getAllVersions = function(s5) {
      var a6, r5, c7, e5, f5;
      p3 = true;
      let b4 = null != s5 ? s5 : {}, u6 = { outputFormat: null !== (a6 = b4.outputFormat) && void 0 !== a6 ? a6 : "array", includeDownstreamBrowsers: null !== (r5 = b4.includeDownstreamBrowsers) && void 0 !== r5 && r5, useSupports: null !== (c7 = b4.useSupports) && void 0 !== c7 && c7, includeKaiOS: null !== (e5 = b4.includeKaiOS) && void 0 !== e5 && e5, suppressWarnings: null !== (f5 = b4.suppressWarnings) && void 0 !== f5 && f5 };
      d3(u6);
      let i6 = (/* @__PURE__ */ new Date()).getFullYear() + 1;
      const n7 = [...Array(i6).keys()].slice(2002), g4 = {};
      n7.forEach((s6) => {
        g4[s6] = {}, y3({ targetYear: s6, suppressWarnings: u6.suppressWarnings }).forEach((a7) => {
          g4[s6] && (g4[s6][a7.browser] = a7);
        });
      });
      const t5 = y3({ suppressWarnings: u6.suppressWarnings }), l5 = {};
      t5.forEach((s6) => {
        l5[s6.browser] = s6;
      });
      const w2 = /* @__PURE__ */ new Date();
      w2.setMonth(w2.getMonth() + 30);
      const v4 = y3({ widelyAvailableOnDate: w2.toISOString().slice(0, 10), suppressWarnings: u6.suppressWarnings }), h5 = {};
      v4.forEach((s6) => {
        h5[s6.browser] = s6;
      });
      const m4 = y3({ targetYear: 2002, listAllCompatibleVersions: true, suppressWarnings: u6.suppressWarnings }), E = [];
      if (o5.forEach((s6) => {
        var a7, r6, c8, e6;
        let f6 = m4.filter((a8) => a8.browser == s6).sort((s7, a8) => _(s7.version, a8.version)), b5 = null !== (r6 = null === (a7 = l5[s6]) || void 0 === a7 ? void 0 : a7.version) && void 0 !== r6 ? r6 : "0", o6 = null !== (e6 = null === (c8 = h5[s6]) || void 0 === c8 ? void 0 : c8.version) && void 0 !== e6 ? e6 : "0";
        n7.forEach((a8) => {
          var r7;
          if (g4[a8]) {
            let c9 = (null !== (r7 = g4[a8][s6]) && void 0 !== r7 ? r7 : { version: "0" }).version, e7 = f6.findIndex((s7) => 0 === _(s7.version, c9));
            (a8 === i6 - 1 ? f6 : f6.slice(0, e7)).forEach((s7) => {
              let r8 = _(s7.version, b5) >= 0, c10 = _(s7.version, o6) >= 0, e8 = Object.assign(Object.assign({}, s7), { year: a8 <= 2015 ? "pre_baseline" : a8 - 1 });
              u6.useSupports ? (r8 && (e8.supports = "widely"), c10 && (e8.supports = "newly")) : e8 = Object.assign(Object.assign({}, e8), { wa_compatible: r8 }), E.push(e8);
            }), f6 = f6.slice(e7, f6.length);
          }
        });
      }), u6.includeDownstreamBrowsers) {
        O(E, true, u6.includeKaiOS).forEach((s6) => {
          let a7 = E.find((a8) => "chrome" === a8.browser && a8.version === s6.engine_version);
          a7 && (u6.useSupports ? E.push(Object.assign(Object.assign({}, s6), { year: a7.year, supports: a7.supports })) : E.push(Object.assign(Object.assign({}, s6), { year: a7.year, wa_compatible: a7.wa_compatible })));
        });
      }
      if (E.sort((s6, a7) => {
        if ("pre_baseline" === s6.year && "pre_baseline" !== a7.year) return -1;
        if ("pre_baseline" === a7.year && "pre_baseline" !== s6.year) return 1;
        if ("pre_baseline" !== s6.year && "pre_baseline" !== a7.year) {
          if (s6.year < a7.year) return -1;
          if (s6.year > a7.year) return 1;
        }
        return s6.browser < a7.browser ? -1 : s6.browser > a7.browser ? 1 : _(s6.version, a7.version);
      }), "object" === u6.outputFormat) {
        const s6 = {};
        return E.forEach((a7) => {
          s6[a7.browser] || (s6[a7.browser] = {});
          let r6 = { year: a7.year, release_date: a7.release_date, engine: a7.engine, engine_version: a7.engine_version };
          s6[a7.browser][a7.version] = u6.useSupports ? a7.supports ? Object.assign(Object.assign({}, r6), { supports: a7.supports }) : r6 : Object.assign(Object.assign({}, r6), { wa_compatible: a7.wa_compatible });
        }), null != s6 ? s6 : {};
      }
      if ("csv" === u6.outputFormat) {
        let s6 = `"browser","version","year","${u6.useSupports ? "supports" : "wa_compatible"}","release_date","engine","engine_version"`;
        return E.forEach((a7) => {
          var r6, c8, e6, f6;
          let b5 = { browser: a7.browser, version: a7.version, year: a7.year, release_date: null !== (r6 = a7.release_date) && void 0 !== r6 ? r6 : "NULL", engine: null !== (c8 = a7.engine) && void 0 !== c8 ? c8 : "NULL", engine_version: null !== (e6 = a7.engine_version) && void 0 !== e6 ? e6 : "NULL" };
          b5 = u6.useSupports ? Object.assign(Object.assign({}, b5), { supports: null !== (f6 = a7.supports) && void 0 !== f6 ? f6 : "" }) : Object.assign(Object.assign({}, b5), { wa_compatible: a7.wa_compatible }), s6 += `
"${b5.browser}","${b5.version}","${b5.year}","${u6.useSupports ? b5.supports : b5.wa_compatible}","${b5.release_date}","${b5.engine}","${b5.engine_version}"`;
        }), s6;
      }
      return E;
    }, exports.getCompatibleVersions = y3;
  }
});

// ../../node_modules/.pnpm/node-releases@2.0.27/node_modules/node-releases/data/processed/envs.json
var require_envs = __commonJS({
  "../../node_modules/.pnpm/node-releases@2.0.27/node_modules/node-releases/data/processed/envs.json"(exports, module) {
    module.exports = [{ name: "nodejs", version: "0.2.0", date: "2011-08-26", lts: false, security: false, v8: "2.3.8.0" }, { name: "nodejs", version: "0.3.0", date: "2011-08-26", lts: false, security: false, v8: "2.5.1.0" }, { name: "nodejs", version: "0.4.0", date: "2011-08-26", lts: false, security: false, v8: "3.1.2.0" }, { name: "nodejs", version: "0.5.0", date: "2011-08-26", lts: false, security: false, v8: "3.1.8.25" }, { name: "nodejs", version: "0.6.0", date: "2011-11-04", lts: false, security: false, v8: "3.6.6.6" }, { name: "nodejs", version: "0.7.0", date: "2012-01-17", lts: false, security: false, v8: "3.8.6.0" }, { name: "nodejs", version: "0.8.0", date: "2012-06-22", lts: false, security: false, v8: "3.11.10.10" }, { name: "nodejs", version: "0.9.0", date: "2012-07-20", lts: false, security: false, v8: "3.11.10.15" }, { name: "nodejs", version: "0.10.0", date: "2013-03-11", lts: false, security: false, v8: "3.14.5.8" }, { name: "nodejs", version: "0.11.0", date: "2013-03-28", lts: false, security: false, v8: "3.17.13.0" }, { name: "nodejs", version: "0.12.0", date: "2015-02-06", lts: false, security: false, v8: "3.28.73.0" }, { name: "nodejs", version: "4.0.0", date: "2015-09-08", lts: false, security: false, v8: "4.5.103.30" }, { name: "nodejs", version: "4.1.0", date: "2015-09-17", lts: false, security: false, v8: "4.5.103.33" }, { name: "nodejs", version: "4.2.0", date: "2015-10-12", lts: "Argon", security: false, v8: "4.5.103.35" }, { name: "nodejs", version: "4.3.0", date: "2016-02-09", lts: "Argon", security: false, v8: "4.5.103.35" }, { name: "nodejs", version: "4.4.0", date: "2016-03-08", lts: "Argon", security: false, v8: "4.5.103.35" }, { name: "nodejs", version: "4.5.0", date: "2016-08-16", lts: "Argon", security: false, v8: "4.5.103.37" }, { name: "nodejs", version: "4.6.0", date: "2016-09-27", lts: "Argon", security: true, v8: "4.5.103.37" }, { name: "nodejs", version: "4.7.0", date: "2016-12-06", lts: "Argon", security: false, v8: "4.5.103.43" }, { name: "nodejs", version: "4.8.0", date: "2017-02-21", lts: "Argon", security: false, v8: "4.5.103.45" }, { name: "nodejs", version: "4.9.0", date: "2018-03-28", lts: "Argon", security: true, v8: "4.5.103.53" }, { name: "nodejs", version: "5.0.0", date: "2015-10-29", lts: false, security: false, v8: "4.6.85.28" }, { name: "nodejs", version: "5.1.0", date: "2015-11-17", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.2.0", date: "2015-12-09", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.3.0", date: "2015-12-15", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.4.0", date: "2016-01-06", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.5.0", date: "2016-01-21", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.6.0", date: "2016-02-09", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.7.0", date: "2016-02-23", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.8.0", date: "2016-03-09", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.9.0", date: "2016-03-16", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.10.0", date: "2016-04-01", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.11.0", date: "2016-04-21", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.12.0", date: "2016-06-23", lts: false, security: false, v8: "4.6.85.32" }, { name: "nodejs", version: "6.0.0", date: "2016-04-26", lts: false, security: false, v8: "5.0.71.35" }, { name: "nodejs", version: "6.1.0", date: "2016-05-05", lts: false, security: false, v8: "5.0.71.35" }, { name: "nodejs", version: "6.2.0", date: "2016-05-17", lts: false, security: false, v8: "5.0.71.47" }, { name: "nodejs", version: "6.3.0", date: "2016-07-06", lts: false, security: false, v8: "5.0.71.52" }, { name: "nodejs", version: "6.4.0", date: "2016-08-12", lts: false, security: false, v8: "5.0.71.60" }, { name: "nodejs", version: "6.5.0", date: "2016-08-26", lts: false, security: false, v8: "5.1.281.81" }, { name: "nodejs", version: "6.6.0", date: "2016-09-14", lts: false, security: false, v8: "5.1.281.83" }, { name: "nodejs", version: "6.7.0", date: "2016-09-27", lts: false, security: true, v8: "5.1.281.83" }, { name: "nodejs", version: "6.8.0", date: "2016-10-12", lts: false, security: false, v8: "5.1.281.84" }, { name: "nodejs", version: "6.9.0", date: "2016-10-18", lts: "Boron", security: false, v8: "5.1.281.84" }, { name: "nodejs", version: "6.10.0", date: "2017-02-21", lts: "Boron", security: false, v8: "5.1.281.93" }, { name: "nodejs", version: "6.11.0", date: "2017-06-06", lts: "Boron", security: false, v8: "5.1.281.102" }, { name: "nodejs", version: "6.12.0", date: "2017-11-06", lts: "Boron", security: false, v8: "5.1.281.108" }, { name: "nodejs", version: "6.13.0", date: "2018-02-10", lts: "Boron", security: false, v8: "5.1.281.111" }, { name: "nodejs", version: "6.14.0", date: "2018-03-28", lts: "Boron", security: true, v8: "5.1.281.111" }, { name: "nodejs", version: "6.15.0", date: "2018-11-27", lts: "Boron", security: true, v8: "5.1.281.111" }, { name: "nodejs", version: "6.16.0", date: "2018-12-26", lts: "Boron", security: false, v8: "5.1.281.111" }, { name: "nodejs", version: "6.17.0", date: "2019-02-28", lts: "Boron", security: true, v8: "5.1.281.111" }, { name: "nodejs", version: "7.0.0", date: "2016-10-25", lts: false, security: false, v8: "5.4.500.36" }, { name: "nodejs", version: "7.1.0", date: "2016-11-08", lts: false, security: false, v8: "5.4.500.36" }, { name: "nodejs", version: "7.2.0", date: "2016-11-22", lts: false, security: false, v8: "5.4.500.43" }, { name: "nodejs", version: "7.3.0", date: "2016-12-20", lts: false, security: false, v8: "5.4.500.45" }, { name: "nodejs", version: "7.4.0", date: "2017-01-04", lts: false, security: false, v8: "5.4.500.45" }, { name: "nodejs", version: "7.5.0", date: "2017-01-31", lts: false, security: false, v8: "5.4.500.48" }, { name: "nodejs", version: "7.6.0", date: "2017-02-21", lts: false, security: false, v8: "5.5.372.40" }, { name: "nodejs", version: "7.7.0", date: "2017-02-28", lts: false, security: false, v8: "5.5.372.41" }, { name: "nodejs", version: "7.8.0", date: "2017-03-29", lts: false, security: false, v8: "5.5.372.43" }, { name: "nodejs", version: "7.9.0", date: "2017-04-11", lts: false, security: false, v8: "5.5.372.43" }, { name: "nodejs", version: "7.10.0", date: "2017-05-02", lts: false, security: false, v8: "5.5.372.43" }, { name: "nodejs", version: "8.0.0", date: "2017-05-30", lts: false, security: false, v8: "5.8.283.41" }, { name: "nodejs", version: "8.1.0", date: "2017-06-08", lts: false, security: false, v8: "5.8.283.41" }, { name: "nodejs", version: "8.2.0", date: "2017-07-19", lts: false, security: false, v8: "5.8.283.41" }, { name: "nodejs", version: "8.3.0", date: "2017-08-08", lts: false, security: false, v8: "6.0.286.52" }, { name: "nodejs", version: "8.4.0", date: "2017-08-15", lts: false, security: false, v8: "6.0.286.52" }, { name: "nodejs", version: "8.5.0", date: "2017-09-12", lts: false, security: false, v8: "6.0.287.53" }, { name: "nodejs", version: "8.6.0", date: "2017-09-26", lts: false, security: false, v8: "6.0.287.53" }, { name: "nodejs", version: "8.7.0", date: "2017-10-11", lts: false, security: false, v8: "6.1.534.42" }, { name: "nodejs", version: "8.8.0", date: "2017-10-24", lts: false, security: false, v8: "6.1.534.42" }, { name: "nodejs", version: "8.9.0", date: "2017-10-31", lts: "Carbon", security: false, v8: "6.1.534.46" }, { name: "nodejs", version: "8.10.0", date: "2018-03-06", lts: "Carbon", security: false, v8: "6.2.414.50" }, { name: "nodejs", version: "8.11.0", date: "2018-03-28", lts: "Carbon", security: true, v8: "6.2.414.50" }, { name: "nodejs", version: "8.12.0", date: "2018-09-10", lts: "Carbon", security: false, v8: "6.2.414.66" }, { name: "nodejs", version: "8.13.0", date: "2018-11-20", lts: "Carbon", security: false, v8: "6.2.414.72" }, { name: "nodejs", version: "8.14.0", date: "2018-11-27", lts: "Carbon", security: true, v8: "6.2.414.72" }, { name: "nodejs", version: "8.15.0", date: "2018-12-26", lts: "Carbon", security: false, v8: "6.2.414.75" }, { name: "nodejs", version: "8.16.0", date: "2019-04-16", lts: "Carbon", security: false, v8: "6.2.414.77" }, { name: "nodejs", version: "8.17.0", date: "2019-12-17", lts: "Carbon", security: true, v8: "6.2.414.78" }, { name: "nodejs", version: "9.0.0", date: "2017-10-31", lts: false, security: false, v8: "6.2.414.32" }, { name: "nodejs", version: "9.1.0", date: "2017-11-07", lts: false, security: false, v8: "6.2.414.32" }, { name: "nodejs", version: "9.2.0", date: "2017-11-14", lts: false, security: false, v8: "6.2.414.44" }, { name: "nodejs", version: "9.3.0", date: "2017-12-12", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.4.0", date: "2018-01-10", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.5.0", date: "2018-01-31", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.6.0", date: "2018-02-21", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.7.0", date: "2018-03-01", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.8.0", date: "2018-03-07", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.9.0", date: "2018-03-21", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.10.0", date: "2018-03-28", lts: false, security: true, v8: "6.2.414.46" }, { name: "nodejs", version: "9.11.0", date: "2018-04-04", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "10.0.0", date: "2018-04-24", lts: false, security: false, v8: "6.6.346.24" }, { name: "nodejs", version: "10.1.0", date: "2018-05-08", lts: false, security: false, v8: "6.6.346.27" }, { name: "nodejs", version: "10.2.0", date: "2018-05-23", lts: false, security: false, v8: "6.6.346.32" }, { name: "nodejs", version: "10.3.0", date: "2018-05-29", lts: false, security: false, v8: "6.6.346.32" }, { name: "nodejs", version: "10.4.0", date: "2018-06-06", lts: false, security: false, v8: "6.7.288.43" }, { name: "nodejs", version: "10.5.0", date: "2018-06-20", lts: false, security: false, v8: "6.7.288.46" }, { name: "nodejs", version: "10.6.0", date: "2018-07-04", lts: false, security: false, v8: "6.7.288.46" }, { name: "nodejs", version: "10.7.0", date: "2018-07-18", lts: false, security: false, v8: "6.7.288.49" }, { name: "nodejs", version: "10.8.0", date: "2018-08-01", lts: false, security: false, v8: "6.7.288.49" }, { name: "nodejs", version: "10.9.0", date: "2018-08-15", lts: false, security: false, v8: "6.8.275.24" }, { name: "nodejs", version: "10.10.0", date: "2018-09-06", lts: false, security: false, v8: "6.8.275.30" }, { name: "nodejs", version: "10.11.0", date: "2018-09-19", lts: false, security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.12.0", date: "2018-10-10", lts: false, security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.13.0", date: "2018-10-30", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.14.0", date: "2018-11-27", lts: "Dubnium", security: true, v8: "6.8.275.32" }, { name: "nodejs", version: "10.15.0", date: "2018-12-26", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.16.0", date: "2019-05-28", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.17.0", date: "2019-10-22", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.18.0", date: "2019-12-17", lts: "Dubnium", security: true, v8: "6.8.275.32" }, { name: "nodejs", version: "10.19.0", date: "2020-02-05", lts: "Dubnium", security: true, v8: "6.8.275.32" }, { name: "nodejs", version: "10.20.0", date: "2020-03-26", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.21.0", date: "2020-06-02", lts: "Dubnium", security: true, v8: "6.8.275.32" }, { name: "nodejs", version: "10.22.0", date: "2020-07-21", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.23.0", date: "2020-10-27", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.24.0", date: "2021-02-23", lts: "Dubnium", security: true, v8: "6.8.275.32" }, { name: "nodejs", version: "11.0.0", date: "2018-10-23", lts: false, security: false, v8: "7.0.276.28" }, { name: "nodejs", version: "11.1.0", date: "2018-10-30", lts: false, security: false, v8: "7.0.276.32" }, { name: "nodejs", version: "11.2.0", date: "2018-11-15", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.3.0", date: "2018-11-27", lts: false, security: true, v8: "7.0.276.38" }, { name: "nodejs", version: "11.4.0", date: "2018-12-07", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.5.0", date: "2018-12-18", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.6.0", date: "2018-12-26", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.7.0", date: "2019-01-17", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.8.0", date: "2019-01-24", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.9.0", date: "2019-01-30", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.10.0", date: "2019-02-14", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.11.0", date: "2019-03-05", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.12.0", date: "2019-03-14", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.13.0", date: "2019-03-28", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.14.0", date: "2019-04-10", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.15.0", date: "2019-04-30", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "12.0.0", date: "2019-04-23", lts: false, security: false, v8: "7.4.288.21" }, { name: "nodejs", version: "12.1.0", date: "2019-04-29", lts: false, security: false, v8: "7.4.288.21" }, { name: "nodejs", version: "12.2.0", date: "2019-05-07", lts: false, security: false, v8: "7.4.288.21" }, { name: "nodejs", version: "12.3.0", date: "2019-05-21", lts: false, security: false, v8: "7.4.288.27" }, { name: "nodejs", version: "12.4.0", date: "2019-06-04", lts: false, security: false, v8: "7.4.288.27" }, { name: "nodejs", version: "12.5.0", date: "2019-06-26", lts: false, security: false, v8: "7.5.288.22" }, { name: "nodejs", version: "12.6.0", date: "2019-07-03", lts: false, security: false, v8: "7.5.288.22" }, { name: "nodejs", version: "12.7.0", date: "2019-07-23", lts: false, security: false, v8: "7.5.288.22" }, { name: "nodejs", version: "12.8.0", date: "2019-08-06", lts: false, security: false, v8: "7.5.288.22" }, { name: "nodejs", version: "12.9.0", date: "2019-08-20", lts: false, security: false, v8: "7.6.303.29" }, { name: "nodejs", version: "12.10.0", date: "2019-09-04", lts: false, security: false, v8: "7.6.303.29" }, { name: "nodejs", version: "12.11.0", date: "2019-09-25", lts: false, security: false, v8: "7.7.299.11" }, { name: "nodejs", version: "12.12.0", date: "2019-10-11", lts: false, security: false, v8: "7.7.299.13" }, { name: "nodejs", version: "12.13.0", date: "2019-10-21", lts: "Erbium", security: false, v8: "7.7.299.13" }, { name: "nodejs", version: "12.14.0", date: "2019-12-17", lts: "Erbium", security: true, v8: "7.7.299.13" }, { name: "nodejs", version: "12.15.0", date: "2020-02-05", lts: "Erbium", security: true, v8: "7.7.299.13" }, { name: "nodejs", version: "12.16.0", date: "2020-02-11", lts: "Erbium", security: false, v8: "7.8.279.23" }, { name: "nodejs", version: "12.17.0", date: "2020-05-26", lts: "Erbium", security: false, v8: "7.8.279.23" }, { name: "nodejs", version: "12.18.0", date: "2020-06-02", lts: "Erbium", security: true, v8: "7.8.279.23" }, { name: "nodejs", version: "12.19.0", date: "2020-10-06", lts: "Erbium", security: false, v8: "7.8.279.23" }, { name: "nodejs", version: "12.20.0", date: "2020-11-24", lts: "Erbium", security: false, v8: "7.8.279.23" }, { name: "nodejs", version: "12.21.0", date: "2021-02-23", lts: "Erbium", security: true, v8: "7.8.279.23" }, { name: "nodejs", version: "12.22.0", date: "2021-03-30", lts: "Erbium", security: false, v8: "7.8.279.23" }, { name: "nodejs", version: "13.0.0", date: "2019-10-22", lts: false, security: false, v8: "7.8.279.17" }, { name: "nodejs", version: "13.1.0", date: "2019-11-05", lts: false, security: false, v8: "7.8.279.17" }, { name: "nodejs", version: "13.2.0", date: "2019-11-21", lts: false, security: false, v8: "7.9.317.23" }, { name: "nodejs", version: "13.3.0", date: "2019-12-03", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.4.0", date: "2019-12-17", lts: false, security: true, v8: "7.9.317.25" }, { name: "nodejs", version: "13.5.0", date: "2019-12-18", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.6.0", date: "2020-01-07", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.7.0", date: "2020-01-21", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.8.0", date: "2020-02-05", lts: false, security: true, v8: "7.9.317.25" }, { name: "nodejs", version: "13.9.0", date: "2020-02-18", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.10.0", date: "2020-03-04", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.11.0", date: "2020-03-12", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.12.0", date: "2020-03-26", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.13.0", date: "2020-04-14", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.14.0", date: "2020-04-29", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "14.0.0", date: "2020-04-21", lts: false, security: false, v8: "8.1.307.30" }, { name: "nodejs", version: "14.1.0", date: "2020-04-29", lts: false, security: false, v8: "8.1.307.31" }, { name: "nodejs", version: "14.2.0", date: "2020-05-05", lts: false, security: false, v8: "8.1.307.31" }, { name: "nodejs", version: "14.3.0", date: "2020-05-19", lts: false, security: false, v8: "8.1.307.31" }, { name: "nodejs", version: "14.4.0", date: "2020-06-02", lts: false, security: true, v8: "8.1.307.31" }, { name: "nodejs", version: "14.5.0", date: "2020-06-30", lts: false, security: false, v8: "8.3.110.9" }, { name: "nodejs", version: "14.6.0", date: "2020-07-20", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.7.0", date: "2020-07-29", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.8.0", date: "2020-08-11", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.9.0", date: "2020-08-27", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.10.0", date: "2020-09-08", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.11.0", date: "2020-09-15", lts: false, security: true, v8: "8.4.371.19" }, { name: "nodejs", version: "14.12.0", date: "2020-09-22", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.13.0", date: "2020-09-29", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.14.0", date: "2020-10-15", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.15.0", date: "2020-10-27", lts: "Fermium", security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.16.0", date: "2021-02-23", lts: "Fermium", security: true, v8: "8.4.371.19" }, { name: "nodejs", version: "14.17.0", date: "2021-05-11", lts: "Fermium", security: false, v8: "8.4.371.23" }, { name: "nodejs", version: "14.18.0", date: "2021-09-28", lts: "Fermium", security: false, v8: "8.4.371.23" }, { name: "nodejs", version: "14.19.0", date: "2022-02-01", lts: "Fermium", security: false, v8: "8.4.371.23" }, { name: "nodejs", version: "14.20.0", date: "2022-07-07", lts: "Fermium", security: true, v8: "8.4.371.23" }, { name: "nodejs", version: "14.21.0", date: "2022-11-01", lts: "Fermium", security: false, v8: "8.4.371.23" }, { name: "nodejs", version: "15.0.0", date: "2020-10-20", lts: false, security: false, v8: "8.6.395.16" }, { name: "nodejs", version: "15.1.0", date: "2020-11-04", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.2.0", date: "2020-11-10", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.3.0", date: "2020-11-24", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.4.0", date: "2020-12-09", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.5.0", date: "2020-12-22", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.6.0", date: "2021-01-14", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.7.0", date: "2021-01-25", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.8.0", date: "2021-02-02", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.9.0", date: "2021-02-18", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.10.0", date: "2021-02-23", lts: false, security: true, v8: "8.6.395.17" }, { name: "nodejs", version: "15.11.0", date: "2021-03-03", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.12.0", date: "2021-03-17", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.13.0", date: "2021-03-31", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.14.0", date: "2021-04-06", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "16.0.0", date: "2021-04-20", lts: false, security: false, v8: "9.0.257.17" }, { name: "nodejs", version: "16.1.0", date: "2021-05-04", lts: false, security: false, v8: "9.0.257.24" }, { name: "nodejs", version: "16.2.0", date: "2021-05-19", lts: false, security: false, v8: "9.0.257.25" }, { name: "nodejs", version: "16.3.0", date: "2021-06-03", lts: false, security: false, v8: "9.0.257.25" }, { name: "nodejs", version: "16.4.0", date: "2021-06-23", lts: false, security: false, v8: "9.1.269.36" }, { name: "nodejs", version: "16.5.0", date: "2021-07-14", lts: false, security: false, v8: "9.1.269.38" }, { name: "nodejs", version: "16.6.0", date: "2021-07-29", lts: false, security: true, v8: "9.2.230.21" }, { name: "nodejs", version: "16.7.0", date: "2021-08-18", lts: false, security: false, v8: "9.2.230.21" }, { name: "nodejs", version: "16.8.0", date: "2021-08-25", lts: false, security: false, v8: "9.2.230.21" }, { name: "nodejs", version: "16.9.0", date: "2021-09-07", lts: false, security: false, v8: "9.3.345.16" }, { name: "nodejs", version: "16.10.0", date: "2021-09-22", lts: false, security: false, v8: "9.3.345.19" }, { name: "nodejs", version: "16.11.0", date: "2021-10-08", lts: false, security: false, v8: "9.4.146.19" }, { name: "nodejs", version: "16.12.0", date: "2021-10-20", lts: false, security: false, v8: "9.4.146.19" }, { name: "nodejs", version: "16.13.0", date: "2021-10-26", lts: "Gallium", security: false, v8: "9.4.146.19" }, { name: "nodejs", version: "16.14.0", date: "2022-02-08", lts: "Gallium", security: false, v8: "9.4.146.24" }, { name: "nodejs", version: "16.15.0", date: "2022-04-26", lts: "Gallium", security: false, v8: "9.4.146.24" }, { name: "nodejs", version: "16.16.0", date: "2022-07-07", lts: "Gallium", security: true, v8: "9.4.146.24" }, { name: "nodejs", version: "16.17.0", date: "2022-08-16", lts: "Gallium", security: false, v8: "9.4.146.26" }, { name: "nodejs", version: "16.18.0", date: "2022-10-12", lts: "Gallium", security: false, v8: "9.4.146.26" }, { name: "nodejs", version: "16.19.0", date: "2022-12-13", lts: "Gallium", security: false, v8: "9.4.146.26" }, { name: "nodejs", version: "16.20.0", date: "2023-03-28", lts: "Gallium", security: false, v8: "9.4.146.26" }, { name: "nodejs", version: "17.0.0", date: "2021-10-19", lts: false, security: false, v8: "9.5.172.21" }, { name: "nodejs", version: "17.1.0", date: "2021-11-09", lts: false, security: false, v8: "9.5.172.25" }, { name: "nodejs", version: "17.2.0", date: "2021-11-30", lts: false, security: false, v8: "9.6.180.14" }, { name: "nodejs", version: "17.3.0", date: "2021-12-17", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "17.4.0", date: "2022-01-18", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "17.5.0", date: "2022-02-10", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "17.6.0", date: "2022-02-22", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "17.7.0", date: "2022-03-09", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "17.8.0", date: "2022-03-22", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "17.9.0", date: "2022-04-07", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "18.0.0", date: "2022-04-18", lts: false, security: false, v8: "10.1.124.8" }, { name: "nodejs", version: "18.1.0", date: "2022-05-03", lts: false, security: false, v8: "10.1.124.8" }, { name: "nodejs", version: "18.2.0", date: "2022-05-17", lts: false, security: false, v8: "10.1.124.8" }, { name: "nodejs", version: "18.3.0", date: "2022-06-02", lts: false, security: false, v8: "10.2.154.4" }, { name: "nodejs", version: "18.4.0", date: "2022-06-16", lts: false, security: false, v8: "10.2.154.4" }, { name: "nodejs", version: "18.5.0", date: "2022-07-06", lts: false, security: true, v8: "10.2.154.4" }, { name: "nodejs", version: "18.6.0", date: "2022-07-13", lts: false, security: false, v8: "10.2.154.13" }, { name: "nodejs", version: "18.7.0", date: "2022-07-26", lts: false, security: false, v8: "10.2.154.13" }, { name: "nodejs", version: "18.8.0", date: "2022-08-24", lts: false, security: false, v8: "10.2.154.13" }, { name: "nodejs", version: "18.9.0", date: "2022-09-07", lts: false, security: false, v8: "10.2.154.15" }, { name: "nodejs", version: "18.10.0", date: "2022-09-28", lts: false, security: false, v8: "10.2.154.15" }, { name: "nodejs", version: "18.11.0", date: "2022-10-13", lts: false, security: false, v8: "10.2.154.15" }, { name: "nodejs", version: "18.12.0", date: "2022-10-25", lts: "Hydrogen", security: false, v8: "10.2.154.15" }, { name: "nodejs", version: "18.13.0", date: "2023-01-05", lts: "Hydrogen", security: false, v8: "10.2.154.23" }, { name: "nodejs", version: "18.14.0", date: "2023-02-01", lts: "Hydrogen", security: false, v8: "10.2.154.23" }, { name: "nodejs", version: "18.15.0", date: "2023-03-05", lts: "Hydrogen", security: false, v8: "10.2.154.26" }, { name: "nodejs", version: "18.16.0", date: "2023-04-12", lts: "Hydrogen", security: false, v8: "10.2.154.26" }, { name: "nodejs", version: "18.17.0", date: "2023-07-18", lts: "Hydrogen", security: false, v8: "10.2.154.26" }, { name: "nodejs", version: "18.18.0", date: "2023-09-18", lts: "Hydrogen", security: false, v8: "10.2.154.26" }, { name: "nodejs", version: "18.19.0", date: "2023-11-29", lts: "Hydrogen", security: false, v8: "10.2.154.26" }, { name: "nodejs", version: "18.20.0", date: "2024-03-26", lts: "Hydrogen", security: false, v8: "10.2.154.26" }, { name: "nodejs", version: "19.0.0", date: "2022-10-17", lts: false, security: false, v8: "10.7.193.13" }, { name: "nodejs", version: "19.1.0", date: "2022-11-14", lts: false, security: false, v8: "10.7.193.20" }, { name: "nodejs", version: "19.2.0", date: "2022-11-29", lts: false, security: false, v8: "10.8.168.20" }, { name: "nodejs", version: "19.3.0", date: "2022-12-14", lts: false, security: false, v8: "10.8.168.21" }, { name: "nodejs", version: "19.4.0", date: "2023-01-05", lts: false, security: false, v8: "10.8.168.25" }, { name: "nodejs", version: "19.5.0", date: "2023-01-24", lts: false, security: false, v8: "10.8.168.25" }, { name: "nodejs", version: "19.6.0", date: "2023-02-01", lts: false, security: false, v8: "10.8.168.25" }, { name: "nodejs", version: "19.7.0", date: "2023-02-21", lts: false, security: false, v8: "10.8.168.25" }, { name: "nodejs", version: "19.8.0", date: "2023-03-14", lts: false, security: false, v8: "10.8.168.25" }, { name: "nodejs", version: "19.9.0", date: "2023-04-10", lts: false, security: false, v8: "10.8.168.25" }, { name: "nodejs", version: "20.0.0", date: "2023-04-17", lts: false, security: false, v8: "11.3.244.4" }, { name: "nodejs", version: "20.1.0", date: "2023-05-03", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.2.0", date: "2023-05-16", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.3.0", date: "2023-06-08", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.4.0", date: "2023-07-04", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.5.0", date: "2023-07-19", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.6.0", date: "2023-08-23", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.7.0", date: "2023-09-18", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.8.0", date: "2023-09-28", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.9.0", date: "2023-10-24", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.10.0", date: "2023-11-22", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.11.0", date: "2024-01-09", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.12.0", date: "2024-03-26", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.13.0", date: "2024-05-07", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.14.0", date: "2024-05-28", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.15.0", date: "2024-06-20", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.16.0", date: "2024-07-24", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.17.0", date: "2024-08-21", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.18.0", date: "2024-10-03", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.19.0", date: "2025-03-13", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "21.0.0", date: "2023-10-17", lts: false, security: false, v8: "11.8.172.13" }, { name: "nodejs", version: "21.1.0", date: "2023-10-24", lts: false, security: false, v8: "11.8.172.15" }, { name: "nodejs", version: "21.2.0", date: "2023-11-14", lts: false, security: false, v8: "11.8.172.17" }, { name: "nodejs", version: "21.3.0", date: "2023-11-30", lts: false, security: false, v8: "11.8.172.17" }, { name: "nodejs", version: "21.4.0", date: "2023-12-05", lts: false, security: false, v8: "11.8.172.17" }, { name: "nodejs", version: "21.5.0", date: "2023-12-19", lts: false, security: false, v8: "11.8.172.17" }, { name: "nodejs", version: "21.6.0", date: "2024-01-14", lts: false, security: false, v8: "11.8.172.17" }, { name: "nodejs", version: "21.7.0", date: "2024-03-06", lts: false, security: false, v8: "11.8.172.17" }, { name: "nodejs", version: "22.0.0", date: "2024-04-24", lts: false, security: false, v8: "12.4.254.14" }, { name: "nodejs", version: "22.1.0", date: "2024-05-02", lts: false, security: false, v8: "12.4.254.14" }, { name: "nodejs", version: "22.2.0", date: "2024-05-15", lts: false, security: false, v8: "12.4.254.14" }, { name: "nodejs", version: "22.3.0", date: "2024-06-11", lts: false, security: false, v8: "12.4.254.20" }, { name: "nodejs", version: "22.4.0", date: "2024-07-02", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.5.0", date: "2024-07-17", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.6.0", date: "2024-08-06", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.7.0", date: "2024-08-21", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.8.0", date: "2024-09-03", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.9.0", date: "2024-09-17", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.10.0", date: "2024-10-16", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.11.0", date: "2024-10-29", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.12.0", date: "2024-12-02", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.13.0", date: "2025-01-06", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.14.0", date: "2025-02-11", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.15.0", date: "2025-04-22", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.16.0", date: "2025-05-20", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.17.0", date: "2025-06-24", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.18.0", date: "2025-07-31", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.19.0", date: "2025-08-28", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.20.0", date: "2025-09-24", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.21.0", date: "2025-10-20", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "23.0.0", date: "2024-10-16", lts: false, security: false, v8: "12.9.202.26" }, { name: "nodejs", version: "23.1.0", date: "2024-10-24", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.2.0", date: "2024-11-11", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.3.0", date: "2024-11-20", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.4.0", date: "2024-12-10", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.5.0", date: "2024-12-19", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.6.0", date: "2025-01-07", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.7.0", date: "2025-01-30", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.8.0", date: "2025-02-13", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.9.0", date: "2025-02-26", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.10.0", date: "2025-03-13", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.11.0", date: "2025-04-01", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "24.0.0", date: "2025-05-06", lts: false, security: false, v8: "13.6.233.8" }, { name: "nodejs", version: "24.1.0", date: "2025-05-20", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.2.0", date: "2025-06-09", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.3.0", date: "2025-06-24", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.4.0", date: "2025-07-09", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.5.0", date: "2025-07-31", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.6.0", date: "2025-08-14", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.7.0", date: "2025-08-27", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.8.0", date: "2025-09-10", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.9.0", date: "2025-09-25", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.10.0", date: "2025-10-08", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.11.0", date: "2025-10-28", lts: "Krypton", security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "25.0.0", date: "2025-10-15", lts: false, security: false, v8: "14.1.146.11" }, { name: "nodejs", version: "25.1.0", date: "2025-10-28", lts: false, security: false, v8: "14.1.146.11" }];
  }
});

// ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/browsers.js
var require_browsers = __commonJS({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/browsers.js"(exports, module) {
    module.exports = { A: "ie", B: "edge", C: "firefox", D: "chrome", E: "safari", F: "opera", G: "ios_saf", H: "op_mini", I: "android", J: "bb", K: "op_mob", L: "and_chr", M: "and_ff", N: "ie_mob", O: "and_uc", P: "samsung", Q: "and_qq", R: "baidu", S: "kaios" };
  }
});

// ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/browsers.js
var require_browsers2 = __commonJS({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/browsers.js"(exports, module) {
    module.exports.browsers = require_browsers();
  }
});

// ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/browserVersions.js
var require_browserVersions = __commonJS({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/browserVersions.js"(exports, module) {
    module.exports = { "0": "117", "1": "118", "2": "119", "3": "120", "4": "121", "5": "122", "6": "123", "7": "124", "8": "125", "9": "20", A: "10", B: "11", C: "12", D: "7", E: "8", F: "9", G: "15", H: "80", I: "144", J: "4", K: "6", L: "13", M: "14", N: "16", O: "17", P: "18", Q: "79", R: "81", S: "83", T: "84", U: "85", V: "86", W: "87", X: "88", Y: "89", Z: "90", a: "91", b: "92", c: "93", d: "94", e: "95", f: "96", g: "97", h: "98", i: "99", j: "100", k: "101", l: "102", m: "103", n: "104", o: "105", p: "106", q: "107", r: "108", s: "109", t: "110", u: "111", v: "112", w: "113", x: "114", y: "115", z: "116", AB: "21", BB: "22", CB: "23", DB: "24", EB: "25", FB: "26", GB: "27", HB: "28", IB: "29", JB: "126", KB: "127", LB: "128", MB: "129", NB: "130", OB: "131", PB: "132", QB: "133", RB: "134", SB: "135", TB: "136", UB: "137", VB: "138", WB: "139", XB: "140", YB: "141", ZB: "142", aB: "143", bB: "5", cB: "19", dB: "30", eB: "31", fB: "32", gB: "33", hB: "34", iB: "35", jB: "36", kB: "37", lB: "38", mB: "39", nB: "40", oB: "41", pB: "42", qB: "43", rB: "44", sB: "45", tB: "46", uB: "47", vB: "48", wB: "49", xB: "50", yB: "51", zB: "52", "0B": "53", "1B": "54", "2B": "55", "3B": "56", "4B": "57", "5B": "58", "6B": "60", "7B": "62", "8B": "63", "9B": "64", AC: "65", BC: "66", CC: "67", DC: "68", EC: "69", FC: "70", GC: "71", HC: "72", IC: "73", JC: "74", KC: "75", LC: "76", MC: "77", NC: "78", OC: "147", PC: "11.1", QC: "12.1", RC: "15.5", SC: "16.0", TC: "17.0", UC: "18.0", VC: "3", WC: "59", XC: "61", YC: "82", ZC: "145", aC: "146", bC: "3.2", cC: "10.1", dC: "15.2-15.3", eC: "15.4", fC: "16.1", gC: "16.2", hC: "16.3", iC: "16.4", jC: "16.5", kC: "17.1", lC: "17.2", mC: "17.3", nC: "17.4", oC: "17.5", pC: "18.1", qC: "18.2", rC: "18.3", sC: "18.4", tC: "26.0", uC: "26.1", vC: "26.2", wC: "26.3", xC: "11.5", yC: "4.2-4.3", zC: "5.5", "0C": "2", "1C": "148", "2C": "149", "3C": "150", "4C": "3.5", "5C": "3.6", "6C": "3.1", "7C": "5.1", "8C": "6.1", "9C": "7.1", AD: "9.1", BD: "13.1", CD: "14.1", DD: "15.1", ED: "15.6", FD: "16.6", GD: "17.6", HD: "18.5-18.6", ID: "TP", JD: "9.5-9.6", KD: "10.0-10.1", LD: "10.5", MD: "10.6", ND: "11.6", OD: "4.0-4.1", PD: "5.0-5.1", QD: "6.0-6.1", RD: "7.0-7.1", SD: "8.1-8.4", TD: "9.0-9.2", UD: "9.3", VD: "10.0-10.2", WD: "10.3", XD: "11.0-11.2", YD: "11.3-11.4", ZD: "12.0-12.1", aD: "12.2-12.5", bD: "13.0-13.1", cD: "13.2", dD: "13.3", eD: "13.4-13.7", fD: "14.0-14.4", gD: "14.5-14.8", hD: "15.0-15.1", iD: "15.6-15.8", jD: "16.6-16.7", kD: "17.6-17.7", lD: "18.5-18.7", mD: "all", nD: "2.1", oD: "2.2", pD: "2.3", qD: "4.1", rD: "4.4", sD: "4.4.3-4.4.4", tD: "5.0-5.4", uD: "6.2-6.4", vD: "7.2-7.4", wD: "8.2", xD: "9.2", yD: "11.1-11.2", zD: "12.0", "0D": "13.0", "1D": "14.0", "2D": "15.0", "3D": "19.0", "4D": "14.9", "5D": "13.52", "6D": "2.5", "7D": "3.0-3.1" };
  }
});

// ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/browserVersions.js
var require_browserVersions2 = __commonJS({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/browserVersions.js"(exports, module) {
    module.exports.browserVersions = require_browserVersions();
  }
});

// ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/agents.js
var require_agents = __commonJS({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/agents.js"(exports, module) {
    module.exports = { A: { A: { K: 0, D: 0, E: 0.0248793, F: 0.0746377, A: 0, B: 0.298551, zC: 0 }, B: "ms", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "zC", "K", "D", "E", "F", "A", "B", "", "", ""], E: "IE", F: { zC: 962323200, K: 998870400, D: 1161129600, E: 1237420800, F: 1300060800, A: 1346716800, B: 1381968e3 } }, B: { A: { "0": 0, "1": 0, "2": 0, "3": 0.014388, "4": 0, "5": 4796e-6, "6": 0, "7": 0, "8": 0, C: 0, L: 0, M: 0, G: 0, N: 0, O: 0, P: 0, Q: 0, H: 0, R: 0, S: 0, T: 0, U: 0, V: 0, W: 0, X: 0, Y: 0, Z: 0, a: 0, b: 9592e-6, c: 0, d: 0, e: 0, f: 0, g: 0, h: 0, i: 0, j: 0, k: 0, l: 0, m: 0, n: 0, o: 0, p: 0, q: 0, r: 0, s: 0.028776, t: 0, u: 0, v: 0, w: 0, x: 4796e-6, y: 0, z: 0, JB: 4796e-6, KB: 4796e-6, LB: 0, MB: 0, NB: 0, OB: 0.014388, PB: 4796e-6, QB: 9592e-6, RB: 9592e-6, SB: 9592e-6, TB: 9592e-6, UB: 9592e-6, VB: 0.019184, WB: 0.014388, XB: 0.028776, YB: 0.04796, ZB: 0.076736, aB: 2.42198, I: 1.58268 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "C", "L", "M", "G", "N", "O", "P", "Q", "H", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "JB", "KB", "LB", "MB", "NB", "OB", "PB", "QB", "RB", "SB", "TB", "UB", "VB", "WB", "XB", "YB", "ZB", "aB", "I", "", "", ""], E: "Edge", F: { "0": 1694649600, "1": 1697155200, "2": 1698969600, "3": 1701993600, "4": 1706227200, "5": 1708732800, "6": 1711152e3, "7": 1713398400, "8": 1715990400, C: 1438128e3, L: 1447286400, M: 1470096e3, G: 1491868800, N: 1508198400, O: 1525046400, P: 1542067200, Q: 1579046400, H: 1581033600, R: 1586736e3, S: 1590019200, T: 1594857600, U: 1598486400, V: 1602201600, W: 1605830400, X: 161136e4, Y: 1614816e3, Z: 1618358400, a: 1622073600, b: 1626912e3, c: 1630627200, d: 1632441600, e: 1634774400, f: 1637539200, g: 1641427200, h: 1643932800, i: 1646265600, j: 1649635200, k: 1651190400, l: 1653955200, m: 1655942400, n: 1659657600, o: 1661990400, p: 1664755200, q: 1666915200, r: 1670198400, s: 1673481600, t: 1675900800, u: 1678665600, v: 1680825600, w: 1683158400, x: 1685664e3, y: 1689897600, z: 1692576e3, JB: 1718841600, KB: 1721865600, LB: 1724371200, MB: 1726704e3, NB: 1729123200, OB: 1731542400, PB: 1737417600, QB: 1740614400, RB: 1741219200, SB: 1743984e3, TB: 1746316800, UB: 1748476800, VB: 1750896e3, WB: 1754611200, XB: 1756944e3, YB: 1759363200, ZB: 1761868800, aB: 1764806400, I: 1768780800 }, D: { C: "ms", L: "ms", M: "ms", G: "ms", N: "ms", O: "ms", P: "ms" } }, C: { A: { "0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "0C": 0, VC: 0, J: 0, bB: 0.02398, K: 0, D: 0, E: 0, F: 0, A: 0, B: 0.07194, C: 0, L: 0, M: 0, G: 0, N: 0, O: 0, P: 0, cB: 0, AB: 0, BB: 0, CB: 0, DB: 0, EB: 0, FB: 0, GB: 0, HB: 0, IB: 0, dB: 0, eB: 0, fB: 0, gB: 0, hB: 0, iB: 0, jB: 0, kB: 0, lB: 0, mB: 0, nB: 0, oB: 0, pB: 0, qB: 0.014388, rB: 0, sB: 0, tB: 0, uB: 0, vB: 0, wB: 0, xB: 0, yB: 0, zB: 0.014388, "0B": 0, "1B": 0, "2B": 0, "3B": 0, "4B": 4796e-6, "5B": 0, WC: 9592e-6, "6B": 0, XC: 0, "7B": 0, "8B": 0, "9B": 0, AC: 0, BC: 4796e-6, CC: 0, DC: 0, EC: 0, FC: 0, GC: 0, HC: 0, IC: 0, JC: 0, KC: 0, LC: 0, MC: 0, NC: 4796e-6, Q: 0, H: 0, R: 0, YC: 0, S: 0, T: 0, U: 0, V: 0, W: 0, X: 0, Y: 0, Z: 0, a: 0, b: 0, c: 0, d: 0, e: 0, f: 0, g: 0, h: 0, i: 0, j: 0, k: 0, l: 0, m: 9592e-6, n: 0, o: 0, p: 0, q: 0, r: 0, s: 0, t: 0, u: 0, v: 0, w: 0, x: 0, y: 0.129492, z: 0, JB: 0, KB: 0, LB: 9592e-6, MB: 0, NB: 0, OB: 0, PB: 0, QB: 0, RB: 0, SB: 9592e-6, TB: 9592e-6, UB: 0, VB: 0, WB: 0, XB: 0.110308, YB: 4796e-6, ZB: 4796e-6, aB: 9592e-6, I: 9592e-6, ZC: 0.028776, aC: 0.652256, OC: 0.652256, "1C": 0, "2C": 0, "3C": 0, "4C": 0, "5C": 0 }, B: "moz", C: ["0C", "VC", "4C", "5C", "J", "bB", "K", "D", "E", "F", "A", "B", "C", "L", "M", "G", "N", "O", "P", "cB", "9", "AB", "BB", "CB", "DB", "EB", "FB", "GB", "HB", "IB", "dB", "eB", "fB", "gB", "hB", "iB", "jB", "kB", "lB", "mB", "nB", "oB", "pB", "qB", "rB", "sB", "tB", "uB", "vB", "wB", "xB", "yB", "zB", "0B", "1B", "2B", "3B", "4B", "5B", "WC", "6B", "XC", "7B", "8B", "9B", "AC", "BC", "CC", "DC", "EC", "FC", "GC", "HC", "IC", "JC", "KC", "LC", "MC", "NC", "Q", "H", "R", "YC", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "JB", "KB", "LB", "MB", "NB", "OB", "PB", "QB", "RB", "SB", "TB", "UB", "VB", "WB", "XB", "YB", "ZB", "aB", "I", "ZC", "aC", "OC", "1C", "2C", "3C"], E: "Firefox", F: { "0": 1693267200, "1": 1695686400, "2": 1698105600, "3": 1700524800, "4": 1702944e3, "5": 1705968e3, "6": 1708387200, "7": 1710806400, "8": 1713225600, "9": 1361232e3, "0C": 1161648e3, VC: 1213660800, "4C": 124632e4, "5C": 1264032e3, J: 1300752e3, bB: 1308614400, K: 1313452800, D: 1317081600, E: 1317081600, F: 1320710400, A: 1324339200, B: 1327968e3, C: 1331596800, L: 1335225600, M: 1338854400, G: 1342483200, N: 1346112e3, O: 1349740800, P: 1353628800, cB: 1357603200, AB: 1364860800, BB: 1368489600, CB: 1372118400, DB: 1375747200, EB: 1379376e3, FB: 1386633600, GB: 1391472e3, HB: 1395100800, IB: 1398729600, dB: 1402358400, eB: 1405987200, fB: 1409616e3, gB: 1413244800, hB: 1417392e3, iB: 1421107200, jB: 1424736e3, kB: 1428278400, lB: 1431475200, mB: 1435881600, nB: 1439251200, oB: 144288e4, pB: 1446508800, qB: 1450137600, rB: 1453852800, sB: 1457395200, tB: 1461628800, uB: 1465257600, vB: 1470096e3, wB: 1474329600, xB: 1479168e3, yB: 1485216e3, zB: 1488844800, "0B": 149256e4, "1B": 1497312e3, "2B": 1502150400, "3B": 1506556800, "4B": 1510617600, "5B": 1516665600, WC: 1520985600, "6B": 1525824e3, XC: 1529971200, "7B": 1536105600, "8B": 1540252800, "9B": 1544486400, AC: 154872e4, BC: 1552953600, CC: 1558396800, DC: 1562630400, EC: 1567468800, FC: 1571788800, GC: 1575331200, HC: 1578355200, IC: 1581379200, JC: 1583798400, KC: 1586304e3, LC: 1588636800, MC: 1591056e3, NC: 1593475200, Q: 1595894400, H: 1598313600, R: 1600732800, YC: 1603152e3, S: 1605571200, T: 1607990400, U: 1611619200, V: 1614038400, W: 1616457600, X: 1618790400, Y: 1622505600, Z: 1626134400, a: 1628553600, b: 1630972800, c: 1633392e3, d: 1635811200, e: 1638835200, f: 1641859200, g: 1644364800, h: 1646697600, i: 1649116800, j: 1651536e3, k: 1653955200, l: 1656374400, m: 1658793600, n: 1661212800, o: 1663632e3, p: 1666051200, q: 1668470400, r: 1670889600, s: 1673913600, t: 1676332800, u: 1678752e3, v: 1681171200, w: 1683590400, x: 1686009600, y: 1688428800, z: 1690848e3, JB: 1715644800, KB: 1718064e3, LB: 1720483200, MB: 1722902400, NB: 1725321600, OB: 1727740800, PB: 173016e4, QB: 1732579200, RB: 1736208e3, SB: 1738627200, TB: 1741046400, UB: 1743465600, VB: 1745884800, WB: 1748304e3, XB: 1750723200, YB: 1753142400, ZB: 1755561600, aB: 1757980800, I: 17604e5, ZC: 1762819200, aC: 1765238400, OC: 1768262400, "1C": null, "2C": null, "3C": null } }, D: { A: { "0": 0.282964, "1": 0.052756, "2": 0.038368, "3": 0.31174, "4": 0.04796, "5": 0.091124, "6": 0.062348, "7": 0.230208, "8": 0.244596, "9": 0, J: 0, bB: 0, K: 0, D: 0, E: 0, F: 0, A: 0, B: 0, C: 0, L: 0, M: 0, G: 0, N: 0, O: 0, P: 0, cB: 0, AB: 0, BB: 0, CB: 0, DB: 0, EB: 0, FB: 0, GB: 0, HB: 0, IB: 0, dB: 0, eB: 0, fB: 0, gB: 0, hB: 0, iB: 0, jB: 0, kB: 0, lB: 0, mB: 4796e-6, nB: 4796e-6, oB: 9592e-6, pB: 4796e-6, qB: 4796e-6, rB: 4796e-6, sB: 9592e-6, tB: 4796e-6, uB: 9592e-6, vB: 0.014388, wB: 0.014388, xB: 9592e-6, yB: 9592e-6, zB: 0.014388, "0B": 9592e-6, "1B": 4796e-6, "2B": 9592e-6, "3B": 9592e-6, "4B": 9592e-6, "5B": 9592e-6, WC: 9592e-6, "6B": 0.014388, XC: 4796e-6, "7B": 9592e-6, "8B": 9592e-6, "9B": 9592e-6, AC: 4796e-6, BC: 0.02398, CC: 9592e-6, DC: 9592e-6, EC: 0.033572, FC: 9592e-6, GC: 0, HC: 0, IC: 0, JC: 0, KC: 4796e-6, LC: 0, MC: 4796e-6, NC: 0, Q: 0.067144, H: 9592e-6, R: 9592e-6, S: 0.043164, T: 0, U: 4796e-6, V: 9592e-6, W: 0.028776, X: 4796e-6, Y: 0, Z: 0, a: 0.019184, b: 0.014388, c: 9592e-6, d: 0, e: 0, f: 0, g: 9592e-6, h: 0.04796, i: 0.043164, j: 0, k: 0.014388, l: 9592e-6, m: 0.26378, n: 0.230208, o: 0.273372, p: 0.206228, q: 0.230208, r: 0.230208, s: 0.786544, t: 0.235004, u: 0.292556, v: 2.71454, w: 4796e-6, x: 0.062348, y: 0.02398, z: 0.446028, JB: 0.052756, KB: 0.052756, LB: 0.076736, MB: 0.067144, NB: 0.09592, OB: 0.709808, PB: 0.139084, QB: 0.52756, RB: 0.067144, SB: 0.067144, TB: 0.09592, UB: 0.062348, VB: 0.235004, WB: 3.34761, XB: 0.177452, YB: 0.398068, ZB: 1.29972, aB: 10.4121, I: 3.76486, ZC: 0.019184, aC: 0, OC: 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "J", "bB", "K", "D", "E", "F", "A", "B", "C", "L", "M", "G", "N", "O", "P", "cB", "9", "AB", "BB", "CB", "DB", "EB", "FB", "GB", "HB", "IB", "dB", "eB", "fB", "gB", "hB", "iB", "jB", "kB", "lB", "mB", "nB", "oB", "pB", "qB", "rB", "sB", "tB", "uB", "vB", "wB", "xB", "yB", "zB", "0B", "1B", "2B", "3B", "4B", "5B", "WC", "6B", "XC", "7B", "8B", "9B", "AC", "BC", "CC", "DC", "EC", "FC", "GC", "HC", "IC", "JC", "KC", "LC", "MC", "NC", "Q", "H", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "JB", "KB", "LB", "MB", "NB", "OB", "PB", "QB", "RB", "SB", "TB", "UB", "VB", "WB", "XB", "YB", "ZB", "aB", "I", "ZC", "aC", "OC"], E: "Chrome", F: { "0": 1694476800, "1": 1696896e3, "2": 1698710400, "3": 1701993600, "4": 1705968e3, "5": 1708387200, "6": 1710806400, "7": 1713225600, "8": 1715644800, "9": 133704e4, J: 1264377600, bB: 1274745600, K: 1283385600, D: 1287619200, E: 1291248e3, F: 1296777600, A: 1299542400, B: 1303862400, C: 1307404800, L: 1312243200, M: 1316131200, G: 1316131200, N: 1319500800, O: 1323734400, P: 1328659200, cB: 1332892800, AB: 1340668800, BB: 1343692800, CB: 1348531200, DB: 1352246400, EB: 1357862400, FB: 1361404800, GB: 1364428800, HB: 1369094400, IB: 1374105600, dB: 1376956800, eB: 1384214400, fB: 1389657600, gB: 1392940800, hB: 1397001600, iB: 1400544e3, jB: 1405468800, kB: 1409011200, lB: 141264e4, mB: 1416268800, nB: 1421798400, oB: 1425513600, pB: 1429401600, qB: 143208e4, rB: 1437523200, sB: 1441152e3, tB: 1444780800, uB: 1449014400, vB: 1453248e3, wB: 1456963200, xB: 1460592e3, yB: 1464134400, zB: 1469059200, "0B": 1472601600, "1B": 1476230400, "2B": 1480550400, "3B": 1485302400, "4B": 1489017600, "5B": 149256e4, WC: 1496707200, "6B": 1500940800, XC: 1504569600, "7B": 1508198400, "8B": 1512518400, "9B": 1516752e3, AC: 1520294400, BC: 1523923200, CC: 1527552e3, DC: 1532390400, EC: 1536019200, FC: 1539648e3, GC: 1543968e3, HC: 154872e4, IC: 1552348800, JC: 1555977600, KC: 1559606400, LC: 1564444800, MC: 1568073600, NC: 1571702400, Q: 1575936e3, H: 1580860800, R: 1586304e3, S: 1589846400, T: 1594684800, U: 1598313600, V: 1601942400, W: 1605571200, X: 1611014400, Y: 1614556800, Z: 1618272e3, a: 1621987200, b: 1626739200, c: 1630368e3, d: 1632268800, e: 1634601600, f: 1637020800, g: 1641340800, h: 1643673600, i: 1646092800, j: 1648512e3, k: 1650931200, l: 1653350400, m: 1655769600, n: 1659398400, o: 1661817600, p: 1664236800, q: 1666656e3, r: 166968e4, s: 1673308800, t: 1675728e3, u: 1678147200, v: 1680566400, w: 1682985600, x: 1685404800, y: 1689724800, z: 1692057600, JB: 1718064e3, KB: 1721174400, LB: 1724112e3, MB: 1726531200, NB: 1728950400, OB: 1731369600, PB: 1736812800, QB: 1738627200, RB: 1741046400, SB: 1743465600, TB: 1745884800, UB: 1748304e3, VB: 1750723200, WB: 1754352e3, XB: 1756771200, YB: 1759190400, ZB: 1761609600, aB: 1764633600, I: 1768262400, ZC: null, aC: null, OC: null } }, E: { A: { J: 0, bB: 0, K: 0, D: 0, E: 0, F: 0, A: 0, B: 0, C: 0, L: 0, M: 9592e-6, G: 0, "6C": 0, bC: 0, "7C": 0, "8C": 0, "9C": 0, AD: 0, cC: 0, PC: 4796e-6, QC: 0, BD: 0.019184, CD: 0.019184, DD: 0, dC: 0, eC: 4796e-6, RC: 4796e-6, ED: 0.081532, SC: 0, fC: 9592e-6, gC: 9592e-6, hC: 0.019184, iC: 9592e-6, jC: 0.014388, FD: 0.139084, TC: 9592e-6, kC: 0.09592, lC: 9592e-6, mC: 0.014388, nC: 0.028776, oC: 0.043164, GD: 0.153472, UC: 9592e-6, pC: 0.02398, qC: 9592e-6, rC: 0.043164, sC: 0.02398, HD: 0.086328, tC: 0.043164, uC: 0.172656, vC: 0.628276, wC: 0.014388, ID: 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "6C", "bC", "J", "bB", "7C", "K", "8C", "D", "9C", "E", "F", "AD", "A", "cC", "B", "PC", "C", "QC", "L", "BD", "M", "CD", "G", "DD", "dC", "eC", "RC", "ED", "SC", "fC", "gC", "hC", "iC", "jC", "FD", "TC", "kC", "lC", "mC", "nC", "oC", "GD", "UC", "pC", "qC", "rC", "sC", "HD", "tC", "uC", "vC", "wC", "ID", ""], E: "Safari", F: { "6C": 1205798400, bC: 1226534400, J: 1244419200, bB: 1275868800, "7C": 131112e4, K: 1343174400, "8C": 13824e5, D: 13824e5, "9C": 1410998400, E: 1413417600, F: 1443657600, AD: 1458518400, A: 1474329600, cC: 1490572800, B: 1505779200, PC: 1522281600, C: 1537142400, QC: 1553472e3, L: 1568851200, BD: 1585008e3, M: 1600214400, CD: 1619395200, G: 1632096e3, DD: 1635292800, dC: 1639353600, eC: 1647216e3, RC: 1652745600, ED: 1658275200, SC: 1662940800, fC: 1666569600, gC: 1670889600, hC: 1674432e3, iC: 1679875200, jC: 1684368e3, FD: 1690156800, TC: 1695686400, kC: 1698192e3, lC: 1702252800, mC: 1705881600, nC: 1709596800, oC: 1715558400, GD: 1722211200, UC: 1726444800, pC: 1730073600, qC: 1733875200, rC: 1737936e3, sC: 1743379200, HD: 1747008e3, tC: 1757894400, uC: 1762128e3, vC: 1762041600, wC: null, ID: null } }, F: { A: { "0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 9592e-6, "8": 0.594704, "9": 0, F: 0, B: 0, C: 0, G: 0, N: 0, O: 0, P: 0, cB: 0, AB: 0, BB: 0, CB: 0, DB: 0, EB: 0, FB: 0, GB: 0, HB: 0, IB: 0, dB: 0, eB: 0, fB: 0, gB: 0, hB: 0, iB: 0, jB: 0, kB: 0, lB: 0, mB: 0, nB: 0, oB: 0, pB: 0, qB: 0, rB: 0, sB: 0, tB: 0, uB: 0, vB: 0, wB: 0, xB: 0, yB: 4796e-6, zB: 4796e-6, "0B": 9592e-6, "1B": 0.014388, "2B": 9592e-6, "3B": 0.019184, "4B": 4796e-6, "5B": 0, "6B": 0, "7B": 0, "8B": 0, "9B": 0, AC: 0, BC: 0, CC: 0, DC: 0, EC: 0, FC: 0, GC: 0, HC: 0, IC: 0, JC: 0, KC: 0, LC: 0, MC: 0, NC: 0, Q: 0, H: 0, R: 0, YC: 0, S: 0, T: 0, U: 0, V: 0, W: 0, X: 0, Y: 0, Z: 0, a: 0, b: 0, c: 0.052756, d: 0.043164, e: 0.02398, f: 0, g: 0, h: 0, i: 0, j: 0, k: 0, l: 0, m: 0, n: 0, o: 0, p: 0, q: 0, r: 0, s: 0, t: 0, u: 0, v: 0, w: 0, x: 0, y: 0, z: 0, JD: 0, KD: 0, LD: 0, MD: 0, PC: 0, xC: 0, ND: 0, QC: 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "F", "JD", "KD", "LD", "MD", "B", "PC", "xC", "ND", "C", "QC", "G", "N", "O", "P", "cB", "9", "AB", "BB", "CB", "DB", "EB", "FB", "GB", "HB", "IB", "dB", "eB", "fB", "gB", "hB", "iB", "jB", "kB", "lB", "mB", "nB", "oB", "pB", "qB", "rB", "sB", "tB", "uB", "vB", "wB", "xB", "yB", "zB", "0B", "1B", "2B", "3B", "4B", "5B", "6B", "7B", "8B", "9B", "AC", "BC", "CC", "DC", "EC", "FC", "GC", "HC", "IC", "JC", "KC", "LC", "MC", "NC", "Q", "H", "R", "YC", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "", "", ""], E: "Opera", F: { "0": 1739404800, "1": 1744675200, "2": 1747094400, "3": 1751414400, "4": 1756339200, "5": 1757548800, "6": 1761609600, "7": 1762992e3, "8": 1764806400, "9": 1393891200, F: 1150761600, JD: 1223424e3, KD: 1251763200, LD: 1267488e3, MD: 1277942400, B: 1292457600, PC: 1302566400, xC: 1309219200, ND: 1323129600, C: 1323129600, QC: 1352073600, G: 1372723200, N: 1377561600, O: 1381104e3, P: 1386288e3, cB: 1390867200, AB: 1399334400, BB: 1401753600, CB: 1405987200, DB: 1409616e3, EB: 1413331200, FB: 1417132800, GB: 1422316800, HB: 1425945600, IB: 1430179200, dB: 1433808e3, eB: 1438646400, fB: 1442448e3, gB: 1445904e3, hB: 1449100800, iB: 1454371200, jB: 1457308800, kB: 146232e4, lB: 1465344e3, mB: 1470096e3, nB: 1474329600, oB: 1477267200, pB: 1481587200, qB: 1486425600, rB: 1490054400, sB: 1494374400, tB: 1498003200, uB: 1502236800, vB: 1506470400, wB: 1510099200, xB: 1515024e3, yB: 1517961600, zB: 1521676800, "0B": 1525910400, "1B": 1530144e3, "2B": 1534982400, "3B": 1537833600, "4B": 1543363200, "5B": 1548201600, "6B": 1554768e3, "7B": 1561593600, "8B": 1566259200, "9B": 1570406400, AC: 1573689600, BC: 1578441600, CC: 1583971200, DC: 1587513600, EC: 1592956800, FC: 1595894400, GC: 1600128e3, HC: 1603238400, IC: 161352e4, JC: 1612224e3, KC: 1616544e3, LC: 1619568e3, MC: 1623715200, NC: 1627948800, Q: 1631577600, H: 1633392e3, R: 1635984e3, YC: 1638403200, S: 1642550400, T: 1644969600, U: 1647993600, V: 1650412800, W: 1652745600, X: 1654646400, Y: 1657152e3, Z: 1660780800, a: 1663113600, b: 1668816e3, c: 1668643200, d: 1671062400, e: 1675209600, f: 1677024e3, g: 1679529600, h: 1681948800, i: 1684195200, j: 1687219200, k: 1690329600, l: 1692748800, m: 1696204800, n: 169992e4, o: 169992e4, p: 1702944e3, q: 1707264e3, r: 1710115200, s: 1711497600, t: 1716336e3, u: 1719273600, v: 1721088e3, w: 1724284800, x: 1727222400, y: 1732665600, z: 1736294400 }, D: { F: "o", B: "o", C: "o", JD: "o", KD: "o", LD: "o", MD: "o", PC: "o", xC: "o", ND: "o", QC: "o" } }, G: { A: { E: 0, bC: 0, OD: 0, yC: 120756e-8, PD: 0, QD: 483024e-8, RD: 362268e-8, SD: 0, TD: 0, UD: 0.010868, VD: 0, WD: 0.0205285, XD: 0.254795, YD: 845292e-8, ZD: 120756e-8, aD: 0.0543402, bD: 0, cD: 0.0144907, dD: 120756e-8, eD: 60378e-7, fD: 0.0120756, gD: 0.0181134, hD: 0.0156983, dC: 0.010868, eC: 0.0144907, RC: 0.0169058, iD: 0.25238, SC: 0.0265663, fC: 0.0519251, gC: 0.0265663, hC: 0.04951, iC: 0.010868, jC: 0.0205285, jD: 0.323626, TC: 0.0205285, kC: 0.0289814, lC: 0.0205285, mC: 0.030189, nC: 0.0519251, oC: 0.0978124, kD: 0.245135, UC: 0.0531326, pC: 0.112303, qC: 0.0591704, rC: 0.194417, sC: 0.0953972, lD: 5.89169, tC: 0.166643, uC: 0.924991, vC: 2.76531, wC: 0.0640007 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "bC", "OD", "yC", "PD", "QD", "RD", "E", "SD", "TD", "UD", "VD", "WD", "XD", "YD", "ZD", "aD", "bD", "cD", "dD", "eD", "fD", "gD", "hD", "dC", "eC", "RC", "iD", "SC", "fC", "gC", "hC", "iC", "jC", "jD", "TC", "kC", "lC", "mC", "nC", "oC", "kD", "UC", "pC", "qC", "rC", "sC", "lD", "tC", "uC", "vC", "wC", "", ""], E: "Safari on iOS", F: { bC: 1270252800, OD: 1283904e3, yC: 1299628800, PD: 1331078400, QD: 1359331200, RD: 1394409600, E: 1410912e3, SD: 1413763200, TD: 1442361600, UD: 1458518400, VD: 1473724800, WD: 1490572800, XD: 1505779200, YD: 1522281600, ZD: 1537142400, aD: 1553472e3, bD: 1568851200, cD: 1572220800, dD: 1580169600, eD: 1585008e3, fD: 1600214400, gD: 1619395200, hD: 1632096e3, dC: 1639353600, eC: 1647216e3, RC: 1652659200, iD: 1658275200, SC: 1662940800, fC: 1666569600, gC: 1670889600, hC: 1674432e3, iC: 1679875200, jC: 1684368e3, jD: 1690156800, TC: 1694995200, kC: 1698192e3, lC: 1702252800, mC: 1705881600, nC: 1709596800, oC: 1715558400, kD: 1722211200, UC: 1726444800, pC: 1730073600, qC: 1733875200, rC: 1737936e3, sC: 1743379200, lD: 1747008e3, tC: 1757894400, uC: 1762128e3, vC: 1765497600, wC: null } }, H: { A: { mD: 0.03 }, B: "o", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "mD", "", "", ""], E: "Opera Mini", F: { mD: 1426464e3 } }, I: { A: { VC: 0, J: 0, I: 0.457307, nD: 0, oD: 0, pD: 0, qD: 0, yC: 91608e-9, rD: 0, sD: 412236e-9 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "nD", "oD", "pD", "VC", "J", "qD", "yC", "rD", "sD", "I", "", "", ""], E: "Android Browser", F: { nD: 1256515200, oD: 1274313600, pD: 1291593600, VC: 1298332800, J: 1318896e3, qD: 1341792e3, yC: 1374624e3, rD: 1386547200, sD: 1401667200, I: 1768348800 } }, J: { A: { D: 0, A: 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "D", "A", "", "", ""], E: "Blackberry Browser", F: { D: 1325376e3, A: 1359504e3 } }, K: { A: { A: 0, B: 0, C: 0, H: 0.79239, PC: 0, xC: 0, QC: 0 }, B: "o", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "A", "B", "PC", "xC", "C", "QC", "H", "", "", ""], E: "Opera Mobile", F: { A: 1287100800, B: 1300752e3, PC: 1314835200, xC: 1318291200, C: 1330300800, QC: 1349740800, H: 1709769600 }, D: { H: "webkit" } }, L: { A: { I: 41.8835 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "I", "", "", ""], E: "Chrome for Android", F: { I: 1768348800 } }, M: { A: { OC: 0.29148 }, B: "moz", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "OC", "", "", ""], E: "Firefox for Android", F: { OC: 1768262400 } }, N: { A: { A: 0, B: 0 }, B: "ms", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "A", "B", "", "", ""], E: "IE Mobile", F: { A: 1340150400, B: 1353456e3 } }, O: { A: { RC: 0.57255 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "RC", "", "", ""], E: "UC Browser for Android", F: { RC: 1710115200 }, D: { RC: "webkit" } }, P: { A: { "9": 0, J: 0, AB: 0.0109547, BB: 0, CB: 0.0109547, DB: 0.0109547, EB: 0.0219094, FB: 0.0328641, GB: 0.0438188, HB: 0.0985924, IB: 1.65416, tD: 0, uD: 0, vD: 0, wD: 0, xD: 0, cC: 0, yD: 0, zD: 0, "0D": 0, "1D": 0, "2D": 0, SC: 0, TC: 0, UC: 0, "3D": 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "J", "tD", "uD", "vD", "wD", "xD", "cC", "yD", "zD", "0D", "1D", "2D", "SC", "TC", "UC", "3D", "9", "AB", "BB", "CB", "DB", "EB", "FB", "GB", "HB", "IB", "", "", ""], E: "Samsung Internet", F: { "9": 1677369600, J: 1461024e3, tD: 1481846400, uD: 1509408e3, vD: 1528329600, wD: 1546128e3, xD: 1554163200, cC: 1567900800, yD: 1582588800, zD: 1593475200, "0D": 1605657600, "1D": 1618531200, "2D": 1629072e3, SC: 1640736e3, TC: 1651708800, UC: 1659657600, "3D": 1667260800, AB: 1684454400, BB: 1689292800, CB: 1697587200, DB: 1711497600, EB: 1715126400, FB: 1717718400, GB: 1725667200, HB: 1746057600, IB: 1761264e3 } }, Q: { A: { "4D": 0.140535 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "4D", "", "", ""], E: "QQ Browser", F: { "4D": 1710288e3 } }, R: { A: { "5D": 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "5D", "", "", ""], E: "Baidu Browser", F: { "5D": 1710201600 } }, S: { A: { "6D": 0.01041, "7D": 0 }, B: "moz", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "6D", "7D", "", "", ""], E: "KaiOS Browser", F: { "6D": 1527811200, "7D": 1631664e3 } } };
  }
});

// ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/agents.js
var require_agents2 = __commonJS({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/agents.js"(exports, module) {
    "use strict";
    var browsers = require_browsers2().browsers;
    var versions = require_browserVersions2().browserVersions;
    var agentsData = require_agents();
    function unpackBrowserVersions(versionsData) {
      return Object.keys(versionsData).reduce((usage, version2) => {
        usage[versions[version2]] = versionsData[version2];
        return usage;
      }, {});
    }
    module.exports.agents = Object.keys(agentsData).reduce((map, key) => {
      let versionsData = agentsData[key];
      map[browsers[key]] = Object.keys(versionsData).reduce((data2, entry) => {
        if (entry === "A") {
          data2.usage_global = unpackBrowserVersions(versionsData[entry]);
        } else if (entry === "C") {
          data2.versions = versionsData[entry].reduce((list, version2) => {
            if (version2 === "") {
              list.push(null);
            } else {
              list.push(versions[version2]);
            }
            return list;
          }, []);
        } else if (entry === "D") {
          data2.prefix_exceptions = unpackBrowserVersions(versionsData[entry]);
        } else if (entry === "E") {
          data2.browser = versionsData[entry];
        } else if (entry === "F") {
          data2.release_date = Object.keys(versionsData[entry]).reduce(
            (map2, key2) => {
              map2[versions[key2]] = versionsData[entry][key2];
              return map2;
            },
            {}
          );
        } else {
          data2.prefix = versionsData[entry];
        }
        return data2;
      }, {});
      return map;
    }, {});
  }
});

// ../../node_modules/.pnpm/electron-to-chromium@1.5.286/node_modules/electron-to-chromium/versions.js
var require_versions = __commonJS({
  "../../node_modules/.pnpm/electron-to-chromium@1.5.286/node_modules/electron-to-chromium/versions.js"(exports, module) {
    module.exports = {
      "0.20": "39",
      "0.21": "41",
      "0.22": "41",
      "0.23": "41",
      "0.24": "41",
      "0.25": "42",
      "0.26": "42",
      "0.27": "43",
      "0.28": "43",
      "0.29": "43",
      "0.30": "44",
      "0.31": "45",
      "0.32": "45",
      "0.33": "45",
      "0.34": "45",
      "0.35": "45",
      "0.36": "47",
      "0.37": "49",
      "1.0": "49",
      "1.1": "50",
      "1.2": "51",
      "1.3": "52",
      "1.4": "53",
      "1.5": "54",
      "1.6": "56",
      "1.7": "58",
      "1.8": "59",
      "2.0": "61",
      "2.1": "61",
      "3.0": "66",
      "3.1": "66",
      "4.0": "69",
      "4.1": "69",
      "4.2": "69",
      "5.0": "73",
      "6.0": "76",
      "6.1": "76",
      "7.0": "78",
      "7.1": "78",
      "7.2": "78",
      "7.3": "78",
      "8.0": "80",
      "8.1": "80",
      "8.2": "80",
      "8.3": "80",
      "8.4": "80",
      "8.5": "80",
      "9.0": "83",
      "9.1": "83",
      "9.2": "83",
      "9.3": "83",
      "9.4": "83",
      "10.0": "85",
      "10.1": "85",
      "10.2": "85",
      "10.3": "85",
      "10.4": "85",
      "11.0": "87",
      "11.1": "87",
      "11.2": "87",
      "11.3": "87",
      "11.4": "87",
      "11.5": "87",
      "12.0": "89",
      "12.1": "89",
      "12.2": "89",
      "13.0": "91",
      "13.1": "91",
      "13.2": "91",
      "13.3": "91",
      "13.4": "91",
      "13.5": "91",
      "13.6": "91",
      "14.0": "93",
      "14.1": "93",
      "14.2": "93",
      "15.0": "94",
      "15.1": "94",
      "15.2": "94",
      "15.3": "94",
      "15.4": "94",
      "15.5": "94",
      "16.0": "96",
      "16.1": "96",
      "16.2": "96",
      "17.0": "98",
      "17.1": "98",
      "17.2": "98",
      "17.3": "98",
      "17.4": "98",
      "18.0": "100",
      "18.1": "100",
      "18.2": "100",
      "18.3": "100",
      "19.0": "102",
      "19.1": "102",
      "20.0": "104",
      "20.1": "104",
      "20.2": "104",
      "20.3": "104",
      "21.0": "106",
      "21.1": "106",
      "21.2": "106",
      "21.3": "106",
      "21.4": "106",
      "22.0": "108",
      "22.1": "108",
      "22.2": "108",
      "22.3": "108",
      "23.0": "110",
      "23.1": "110",
      "23.2": "110",
      "23.3": "110",
      "24.0": "112",
      "24.1": "112",
      "24.2": "112",
      "24.3": "112",
      "24.4": "112",
      "24.5": "112",
      "24.6": "112",
      "24.7": "112",
      "24.8": "112",
      "25.0": "114",
      "25.1": "114",
      "25.2": "114",
      "25.3": "114",
      "25.4": "114",
      "25.5": "114",
      "25.6": "114",
      "25.7": "114",
      "25.8": "114",
      "25.9": "114",
      "26.0": "116",
      "26.1": "116",
      "26.2": "116",
      "26.3": "116",
      "26.4": "116",
      "26.5": "116",
      "26.6": "116",
      "27.0": "118",
      "27.1": "118",
      "27.2": "118",
      "27.3": "118",
      "28.0": "120",
      "28.1": "120",
      "28.2": "120",
      "28.3": "120",
      "29.0": "122",
      "29.1": "122",
      "29.2": "122",
      "29.3": "122",
      "29.4": "122",
      "30.0": "124",
      "30.1": "124",
      "30.2": "124",
      "30.3": "124",
      "30.4": "124",
      "30.5": "124",
      "31.0": "126",
      "31.1": "126",
      "31.2": "126",
      "31.3": "126",
      "31.4": "126",
      "31.5": "126",
      "31.6": "126",
      "31.7": "126",
      "32.0": "128",
      "32.1": "128",
      "32.2": "128",
      "32.3": "128",
      "33.0": "130",
      "33.1": "130",
      "33.2": "130",
      "33.3": "130",
      "33.4": "130",
      "34.0": "132",
      "34.1": "132",
      "34.2": "132",
      "34.3": "132",
      "34.4": "132",
      "34.5": "132",
      "35.0": "134",
      "35.1": "134",
      "35.2": "134",
      "35.3": "134",
      "35.4": "134",
      "35.5": "134",
      "35.6": "134",
      "35.7": "134",
      "36.0": "136",
      "36.1": "136",
      "36.2": "136",
      "36.3": "136",
      "36.4": "136",
      "36.5": "136",
      "36.6": "136",
      "36.7": "136",
      "36.8": "136",
      "36.9": "136",
      "37.0": "138",
      "37.1": "138",
      "37.2": "138",
      "37.3": "138",
      "37.4": "138",
      "37.5": "138",
      "37.6": "138",
      "37.7": "138",
      "37.8": "138",
      "37.9": "138",
      "37.10": "138",
      "38.0": "140",
      "38.1": "140",
      "38.2": "140",
      "38.3": "140",
      "38.4": "140",
      "38.5": "140",
      "38.6": "140",
      "38.7": "140",
      "38.8": "140",
      "39.0": "142",
      "39.1": "142",
      "39.2": "142",
      "39.3": "142",
      "39.4": "142",
      "39.5": "142",
      "40.0": "144",
      "40.1": "144",
      "41.0": "146"
    };
  }
});

// ../../node_modules/.pnpm/node-releases@2.0.27/node_modules/node-releases/data/release-schedule/release-schedule.json
var require_release_schedule = __commonJS({
  "../../node_modules/.pnpm/node-releases@2.0.27/node_modules/node-releases/data/release-schedule/release-schedule.json"(exports, module) {
    module.exports = { "v0.8": { start: "2012-06-25", end: "2014-07-31" }, "v0.10": { start: "2013-03-11", end: "2016-10-31" }, "v0.12": { start: "2015-02-06", end: "2016-12-31" }, v4: { start: "2015-09-08", lts: "2015-10-12", maintenance: "2017-04-01", end: "2018-04-30", codename: "Argon" }, v5: { start: "2015-10-29", maintenance: "2016-04-30", end: "2016-06-30" }, v6: { start: "2016-04-26", lts: "2016-10-18", maintenance: "2018-04-30", end: "2019-04-30", codename: "Boron" }, v7: { start: "2016-10-25", maintenance: "2017-04-30", end: "2017-06-30" }, v8: { start: "2017-05-30", lts: "2017-10-31", maintenance: "2019-01-01", end: "2019-12-31", codename: "Carbon" }, v9: { start: "2017-10-01", maintenance: "2018-04-01", end: "2018-06-30" }, v10: { start: "2018-04-24", lts: "2018-10-30", maintenance: "2020-05-19", end: "2021-04-30", codename: "Dubnium" }, v11: { start: "2018-10-23", maintenance: "2019-04-22", end: "2019-06-01" }, v12: { start: "2019-04-23", lts: "2019-10-21", maintenance: "2020-11-30", end: "2022-04-30", codename: "Erbium" }, v13: { start: "2019-10-22", maintenance: "2020-04-01", end: "2020-06-01" }, v14: { start: "2020-04-21", lts: "2020-10-27", maintenance: "2021-10-19", end: "2023-04-30", codename: "Fermium" }, v15: { start: "2020-10-20", maintenance: "2021-04-01", end: "2021-06-01" }, v16: { start: "2021-04-20", lts: "2021-10-26", maintenance: "2022-10-18", end: "2023-09-11", codename: "Gallium" }, v17: { start: "2021-10-19", maintenance: "2022-04-01", end: "2022-06-01" }, v18: { start: "2022-04-19", lts: "2022-10-25", maintenance: "2023-10-18", end: "2025-04-30", codename: "Hydrogen" }, v19: { start: "2022-10-18", maintenance: "2023-04-01", end: "2023-06-01" }, v20: { start: "2023-04-18", lts: "2023-10-24", maintenance: "2024-10-22", end: "2026-04-30", codename: "Iron" }, v21: { start: "2023-10-17", maintenance: "2024-04-01", end: "2024-06-01" }, v22: { start: "2024-04-24", lts: "2024-10-29", maintenance: "2025-10-21", end: "2027-04-30", codename: "Jod" }, v23: { start: "2024-10-16", maintenance: "2025-04-01", end: "2025-06-01" }, v24: { start: "2025-05-06", lts: "2025-10-28", maintenance: "2026-10-20", end: "2028-04-30", codename: "Krypton" }, v25: { start: "2025-10-15", maintenance: "2026-04-01", end: "2026-06-01" }, v26: { start: "2026-04-22", lts: "2026-10-28", maintenance: "2027-10-20", end: "2029-04-30", codename: "" } };
  }
});

// ../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/error.js
var require_error2 = __commonJS({
  "../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/error.js"(exports, module) {
    function BrowserslistError(message) {
      this.name = "BrowserslistError";
      this.message = message;
      this.browserslist = true;
      if (Error.captureStackTrace) {
        Error.captureStackTrace(this, BrowserslistError);
      }
    }
    BrowserslistError.prototype = Error.prototype;
    module.exports = BrowserslistError;
  }
});

// ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/lib/statuses.js
var require_statuses = __commonJS({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/lib/statuses.js"(exports, module) {
    module.exports = {
      1: "ls",
      // WHATWG Living Standard
      2: "rec",
      // W3C Recommendation
      3: "pr",
      // W3C Proposed Recommendation
      4: "cr",
      // W3C Candidate Recommendation
      5: "wd",
      // W3C Working Draft
      6: "other",
      // Non-W3C, but reputable
      7: "unoff"
      // Unofficial, Editor's Draft or W3C "Note"
    };
  }
});

// ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/lib/supported.js
var require_supported = __commonJS({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/lib/supported.js"(exports, module) {
    module.exports = {
      y: 1 << 0,
      n: 1 << 1,
      a: 1 << 2,
      p: 1 << 3,
      u: 1 << 4,
      x: 1 << 5,
      d: 1 << 6
    };
  }
});

// ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/feature.js
var require_feature = __commonJS({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/feature.js"(exports, module) {
    "use strict";
    var statuses = require_statuses();
    var supported = require_supported();
    var browsers = require_browsers2().browsers;
    var versions = require_browserVersions2().browserVersions;
    var MATH2LOG = Math.log(2);
    function unpackSupport(cipher) {
      let stats = Object.keys(supported).reduce((list, support) => {
        if (cipher & supported[support]) list.push(support);
        return list;
      }, []);
      let notes = cipher >> 7;
      let notesArray = [];
      while (notes) {
        let note = Math.floor(Math.log(notes) / MATH2LOG) + 1;
        notesArray.unshift(`#${note}`);
        notes -= Math.pow(2, note - 1);
      }
      return stats.concat(notesArray).join(" ");
    }
    function unpackFeature(packed) {
      let unpacked = {
        status: statuses[packed.B],
        title: packed.C,
        shown: packed.D
      };
      unpacked.stats = Object.keys(packed.A).reduce((browserStats, key) => {
        let browser = packed.A[key];
        browserStats[browsers[key]] = Object.keys(browser).reduce(
          (stats, support) => {
            let packedVersions = browser[support].split(" ");
            let unpacked2 = unpackSupport(support);
            packedVersions.forEach((v3) => stats[versions[v3]] = unpacked2);
            return stats;
          },
          {}
        );
        return browserStats;
      }, {});
      return unpacked;
    }
    module.exports = unpackFeature;
    module.exports.default = unpackFeature;
  }
});

// ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/region.js
var require_region = __commonJS({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/region.js"(exports, module) {
    "use strict";
    var browsers = require_browsers2().browsers;
    function unpackRegion(packed) {
      return Object.keys(packed).reduce((list, browser) => {
        let data2 = packed[browser];
        list[browsers[browser]] = Object.keys(data2).reduce((memo, key) => {
          let stats = data2[key];
          if (key === "_") {
            stats.split(" ").forEach((version2) => memo[version2] = null);
          } else {
            memo[key] = stats;
          }
          return memo;
        }, {});
        return list;
      }, {});
    }
    module.exports = unpackRegion;
    module.exports.default = unpackRegion;
  }
});

// ../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/node.js
var require_node2 = __commonJS({
  "../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/node.js"(exports, module) {
    var feature = require_feature().default;
    var region = require_region().default;
    var fs7 = __require("fs");
    var path3 = __require("path");
    var BrowserslistError = require_error2();
    var IS_SECTION = /^\s*\[(.+)]\s*$/;
    var CONFIG_PATTERN = /^browserslist-config-/;
    var SCOPED_CONFIG__PATTERN = /@[^/]+(?:\/[^/]+)?\/browserslist-config(?:-|$|\/)/;
    var FORMAT = "Browserslist config should be a string or an array of strings with browser queries";
    var PATHTYPE_UNKNOWN = "unknown";
    var PATHTYPE_DIR = "directory";
    var PATHTYPE_FILE = "file";
    var dataTimeChecked = false;
    var statCache = {};
    var configPathCache = {};
    var parseConfigCache = {};
    function checkExtend(name) {
      var use = " Use `dangerousExtend` option to disable.";
      if (!CONFIG_PATTERN.test(name) && !SCOPED_CONFIG__PATTERN.test(name)) {
        throw new BrowserslistError(
          "Browserslist config needs `browserslist-config-` prefix. " + use
        );
      }
      if (name.replace(/^@[^/]+\//, "").indexOf(".") !== -1) {
        throw new BrowserslistError(
          "`.` not allowed in Browserslist config name. " + use
        );
      }
      if (name.indexOf("node_modules") !== -1) {
        throw new BrowserslistError(
          "`node_modules` not allowed in Browserslist config." + use
        );
      }
    }
    function getPathType(filepath) {
      var stats;
      try {
        stats = fs7.existsSync(filepath) && fs7.statSync(filepath);
      } catch (err2) {
        if (err2.code !== "ENOENT" && err2.code !== "EACCES" && err2.code !== "ERR_ACCESS_DENIED") {
          throw err2;
        }
      }
      if (stats && stats.isDirectory()) return PATHTYPE_DIR;
      if (stats && stats.isFile()) return PATHTYPE_FILE;
      return PATHTYPE_UNKNOWN;
    }
    function isFile3(file) {
      return getPathType(file) === PATHTYPE_FILE;
    }
    function isDirectory(dir) {
      return getPathType(dir) === PATHTYPE_DIR;
    }
    function eachParent(file, callback, cache2) {
      var loc = path3.resolve(file);
      var pathsForCacheResult = [];
      var result;
      do {
        if (!pathInRoot(loc)) {
          break;
        }
        if (cache2 && loc in cache2) {
          result = cache2[loc];
          break;
        }
        pathsForCacheResult.push(loc);
        if (!isDirectory(loc)) {
          continue;
        }
        var locResult = callback(loc);
        if (typeof locResult !== "undefined") {
          result = locResult;
          break;
        }
      } while (loc !== (loc = path3.dirname(loc)));
      if (cache2 && !process.env.BROWSERSLIST_DISABLE_CACHE) {
        pathsForCacheResult.forEach(function(cachePath) {
          cache2[cachePath] = result;
        });
      }
      return result;
    }
    function pathInRoot(p3) {
      if (!process.env.BROWSERSLIST_ROOT_PATH) return true;
      var rootPath = path3.resolve(process.env.BROWSERSLIST_ROOT_PATH);
      if (path3.relative(rootPath, p3).substring(0, 2) === "..") {
        return false;
      }
      return true;
    }
    function check(section) {
      if (Array.isArray(section)) {
        for (var i5 = 0; i5 < section.length; i5++) {
          if (typeof section[i5] !== "string") {
            throw new BrowserslistError(FORMAT);
          }
        }
      } else if (typeof section !== "string") {
        throw new BrowserslistError(FORMAT);
      }
    }
    function pickEnv(config, opts2) {
      if (typeof config !== "object") return config;
      var name;
      if (typeof opts2.env === "string") {
        name = opts2.env;
      } else if (process.env.BROWSERSLIST_ENV) {
        name = process.env.BROWSERSLIST_ENV;
      } else if (process.env.NODE_ENV) {
        name = process.env.NODE_ENV;
      } else {
        name = "production";
      }
      if (opts2.throwOnMissing) {
        if (name && name !== "defaults" && !config[name]) {
          throw new BrowserslistError(
            "Missing config for Browserslist environment `" + name + "`"
          );
        }
      }
      return config[name] || config.defaults;
    }
    function parsePackage(file) {
      var text = fs7.readFileSync(file).toString().replace(/^\uFEFF/m, "");
      var list;
      if (text.indexOf('"browserslist"') >= 0) {
        list = JSON.parse(text).browserslist;
      } else if (text.indexOf('"browserlist"') >= 0) {
        var config = JSON.parse(text);
        if (config.browserlist && !config.browserslist) {
          throw new BrowserslistError(
            "`browserlist` key instead of `browserslist` in " + file
          );
        }
      }
      if (Array.isArray(list) || typeof list === "string") {
        list = { defaults: list };
      }
      for (var i5 in list) {
        check(list[i5]);
      }
      return list;
    }
    function parsePackageOrReadConfig(file) {
      if (file in parseConfigCache) {
        return parseConfigCache[file];
      }
      var isPackage = path3.basename(file) === "package.json";
      var result = isPackage ? parsePackage(file) : module.exports.readConfig(file);
      if (!process.env.BROWSERSLIST_DISABLE_CACHE) {
        parseConfigCache[file] = result;
      }
      return result;
    }
    function latestReleaseTime(agents) {
      var latest = 0;
      for (var name in agents) {
        var dates = agents[name].releaseDate || {};
        for (var key in dates) {
          if (latest < dates[key]) {
            latest = dates[key];
          }
        }
      }
      return latest * 1e3;
    }
    function getMonthsPassed(date) {
      var now = /* @__PURE__ */ new Date();
      var past = new Date(date);
      var years = now.getFullYear() - past.getFullYear();
      var months = now.getMonth() - past.getMonth();
      return years * 12 + months;
    }
    function normalizeStats(data2, stats) {
      if (!data2) {
        data2 = {};
      }
      if (stats && "dataByBrowser" in stats) {
        stats = stats.dataByBrowser;
      }
      if (typeof stats !== "object") return void 0;
      var normalized = {};
      for (var i5 in stats) {
        var versions = Object.keys(stats[i5]);
        if (versions.length === 1 && data2[i5] && data2[i5].versions.length === 1) {
          var normal = data2[i5].versions[0];
          normalized[i5] = {};
          normalized[i5][normal] = stats[i5][versions[0]];
        } else {
          normalized[i5] = stats[i5];
        }
      }
      return normalized;
    }
    function normalizeUsageData(usageData, data2) {
      for (var browser in usageData) {
        var browserUsage = usageData[browser];
        if ("0" in browserUsage) {
          var versions = data2[browser].versions;
          browserUsage[versions[versions.length - 1]] = browserUsage[0];
          delete browserUsage[0];
        }
      }
    }
    module.exports = {
      loadQueries: function loadQueries(ctx, name) {
        if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) {
          checkExtend(name);
        }
        var queries = __require(__require.resolve(name, { paths: [".", ctx.path] }));
        if (typeof queries === "object" && queries !== null && queries.__esModule) {
          queries = queries.default;
        }
        if (queries) {
          if (Array.isArray(queries)) {
            return queries;
          } else if (typeof queries === "object") {
            if (!queries.defaults) queries.defaults = [];
            return pickEnv(queries, ctx, name);
          }
        }
        throw new BrowserslistError(
          "`" + name + "` config exports not an array of queries or an object of envs"
        );
      },
      loadStat: function loadStat(ctx, name, data2) {
        if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) {
          checkExtend(name);
        }
        var stats = __require(
          // Use forward slashes for module paths, also on Windows.
          __require.resolve(path3.posix.join(name, "browserslist-stats.json"), {
            paths: ["."]
          })
        );
        return normalizeStats(data2, stats);
      },
      getStat: function getStat(opts2, data2) {
        var stats;
        if (opts2.stats) {
          stats = opts2.stats;
        } else if (process.env.BROWSERSLIST_STATS) {
          stats = process.env.BROWSERSLIST_STATS;
        } else if (opts2.path && path3.resolve && fs7.existsSync) {
          stats = eachParent(
            opts2.path,
            function(dir) {
              var file = path3.join(dir, "browserslist-stats.json");
              return isFile3(file) ? file : void 0;
            },
            statCache
          );
        }
        if (typeof stats === "string") {
          try {
            stats = JSON.parse(fs7.readFileSync(stats));
          } catch (e4) {
            throw new BrowserslistError("Can't read " + stats);
          }
        }
        return normalizeStats(data2, stats);
      },
      loadConfig: function loadConfig(opts2) {
        if (process.env.BROWSERSLIST) {
          return process.env.BROWSERSLIST;
        } else if (opts2.config || process.env.BROWSERSLIST_CONFIG) {
          var file = opts2.config || process.env.BROWSERSLIST_CONFIG;
          return pickEnv(parsePackageOrReadConfig(file), opts2);
        } else if (opts2.path) {
          return pickEnv(module.exports.findConfig(opts2.path), opts2);
        } else {
          return void 0;
        }
      },
      loadCountry: function loadCountry(usage, country, data2) {
        var code = country.replace(/[^\w-]/g, "");
        if (!usage[code]) {
          var compressed;
          try {
            compressed = __require("caniuse-lite/data/regions/" + code + ".js");
          } catch (e4) {
            throw new BrowserslistError("Unknown region name `" + code + "`.");
          }
          var usageData = region(compressed);
          normalizeUsageData(usageData, data2);
          usage[country] = {};
          for (var i5 in usageData) {
            for (var j in usageData[i5]) {
              usage[country][i5 + " " + j] = usageData[i5][j];
            }
          }
        }
      },
      loadFeature: function loadFeature(features, name) {
        name = name.replace(/[^\w-]/g, "");
        if (features[name]) return;
        var compressed;
        try {
          compressed = __require("caniuse-lite/data/features/" + name + ".js");
        } catch (e4) {
          throw new BrowserslistError("Unknown feature name `" + name + "`.");
        }
        var stats = feature(compressed).stats;
        features[name] = {};
        for (var i5 in stats) {
          features[name][i5] = {};
          for (var j in stats[i5]) {
            features[name][i5][j] = stats[i5][j];
          }
        }
      },
      parseConfig: function parseConfig(string) {
        var result = { defaults: [] };
        var sections = ["defaults"];
        string.toString().replace(/#[^\n]*/g, "").split(/\n|,/).map(function(line2) {
          return line2.trim();
        }).filter(function(line2) {
          return line2 !== "";
        }).forEach(function(line2) {
          if (IS_SECTION.test(line2)) {
            sections = line2.match(IS_SECTION)[1].trim().split(" ");
            sections.forEach(function(section) {
              if (result[section]) {
                throw new BrowserslistError(
                  "Duplicate section " + section + " in Browserslist config"
                );
              }
              result[section] = [];
            });
          } else {
            sections.forEach(function(section) {
              result[section].push(line2);
            });
          }
        });
        return result;
      },
      readConfig: function readConfig(file) {
        if (!isFile3(file)) {
          throw new BrowserslistError("Can't read " + file + " config");
        }
        return module.exports.parseConfig(fs7.readFileSync(file));
      },
      findConfigFile: function findConfigFile(from) {
        return eachParent(
          from,
          function(dir) {
            var config = path3.join(dir, "browserslist");
            var pkg = path3.join(dir, "package.json");
            var rc = path3.join(dir, ".browserslistrc");
            var pkgBrowserslist;
            if (isFile3(pkg)) {
              try {
                pkgBrowserslist = parsePackage(pkg);
              } catch (e4) {
                if (e4.name === "BrowserslistError") throw e4;
                console.warn(
                  "[Browserslist] Could not parse " + pkg + ". Ignoring it."
                );
              }
            }
            if (isFile3(config) && pkgBrowserslist) {
              throw new BrowserslistError(
                dir + " contains both browserslist and package.json with browsers"
              );
            } else if (isFile3(rc) && pkgBrowserslist) {
              throw new BrowserslistError(
                dir + " contains both .browserslistrc and package.json with browsers"
              );
            } else if (isFile3(config) && isFile3(rc)) {
              throw new BrowserslistError(
                dir + " contains both .browserslistrc and browserslist"
              );
            } else if (isFile3(config)) {
              return config;
            } else if (isFile3(rc)) {
              return rc;
            } else if (pkgBrowserslist) {
              return pkg;
            }
          },
          configPathCache
        );
      },
      findConfig: function findConfig(from) {
        var configFile = this.findConfigFile(from);
        return configFile ? parsePackageOrReadConfig(configFile) : void 0;
      },
      clearCaches: function clearCaches() {
        dataTimeChecked = false;
        statCache = {};
        configPathCache = {};
        parseConfigCache = {};
        this.cache = {};
      },
      oldDataWarning: function oldDataWarning(agentsObj) {
        if (dataTimeChecked) return;
        dataTimeChecked = true;
        if (process.env.BROWSERSLIST_IGNORE_OLD_DATA) return;
        var latest = latestReleaseTime(agentsObj);
        var monthsPassed = getMonthsPassed(latest);
        if (latest !== 0 && monthsPassed >= 6) {
          if (process.env.BROWSERSLIST_TRACE_WARNING) {
            console.info("Last browser release in DB: " + String(new Date(latest)));
            console.trace();
          }
          var months = monthsPassed + " " + (monthsPassed > 1 ? "months" : "month");
          console.warn(
            "Browserslist: browsers data (caniuse-lite) is " + months + " old. Please run:\n  npx update-browserslist-db@latest\n  Why you should do it regularly: https://github.com/browserslist/update-db#readme"
          );
        }
      },
      currentNode: function currentNode() {
        return "node " + process.versions.node;
      },
      env: process.env
    };
  }
});

// ../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/parse.js
var require_parse5 = __commonJS({
  "../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/parse.js"(exports, module) {
    var AND_REGEXP = /^\s+and\s+(.*)/i;
    var OR_REGEXP = /^(?:,\s*|\s+or\s+)(.*)/i;
    function flatten3(array) {
      if (!Array.isArray(array)) return [array];
      return array.reduce(function(a5, b3) {
        return a5.concat(flatten3(b3));
      }, []);
    }
    function find(string, predicate) {
      for (var max3 = string.length, n6 = 1; n6 <= max3; n6++) {
        var parsed = string.substr(-n6, n6);
        if (predicate(parsed, n6, max3)) {
          return string.slice(0, -n6);
        }
      }
      return "";
    }
    function matchQuery(all5, query) {
      var node = { query };
      if (query.indexOf("not ") === 0) {
        node.not = true;
        query = query.slice(4);
      }
      for (var name in all5) {
        var type = all5[name];
        var match = query.match(type.regexp);
        if (match) {
          node.type = name;
          for (var i5 = 0; i5 < type.matches.length; i5++) {
            node[type.matches[i5]] = match[i5 + 1];
          }
          return node;
        }
      }
      node.type = "unknown";
      return node;
    }
    function matchBlock(all5, string, qs) {
      var node;
      return find(string, function(parsed, n6, max3) {
        if (AND_REGEXP.test(parsed)) {
          node = matchQuery(all5, parsed.match(AND_REGEXP)[1]);
          node.compose = "and";
          qs.unshift(node);
          return true;
        } else if (OR_REGEXP.test(parsed)) {
          node = matchQuery(all5, parsed.match(OR_REGEXP)[1]);
          node.compose = "or";
          qs.unshift(node);
          return true;
        } else if (n6 === max3) {
          node = matchQuery(all5, parsed.trim());
          node.compose = "or";
          qs.unshift(node);
          return true;
        }
        return false;
      });
    }
    module.exports = function parse3(all5, queries) {
      if (!Array.isArray(queries)) queries = [queries];
      return flatten3(
        queries.map(function(block) {
          var qs = [];
          do {
            block = matchBlock(all5, block, qs);
          } while (block);
          return qs;
        })
      );
    };
  }
});

// ../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/index.js
var require_browserslist = __commonJS({
  "../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/index.js"(exports, module) {
    var bbm = require_dist4();
    var jsReleases = require_envs();
    var agents = require_agents2().agents;
    var e2c = require_versions();
    var jsEOL = require_release_schedule();
    var path3 = __require("path");
    var BrowserslistError = require_error2();
    var env = require_node2();
    var parseWithoutCache = require_parse5();
    var YEAR = 365.259641 * 24 * 60 * 60 * 1e3;
    var ANDROID_EVERGREEN_FIRST = "37";
    var OP_MOB_BLINK_FIRST = 14;
    var FIREFOX_ESR_VERSION = "140";
    function isVersionsMatch(versionA, versionB) {
      return (versionA + ".").indexOf(versionB + ".") === 0;
    }
    function isEolReleased(name) {
      var version2 = name.slice(1);
      return browserslist.nodeVersions.some(function(i5) {
        return isVersionsMatch(i5, version2);
      });
    }
    function normalize4(versions) {
      return versions.filter(function(version2) {
        return typeof version2 === "string";
      });
    }
    function normalizeElectron(version2) {
      var versionToUse = version2;
      if (version2.split(".").length === 3) {
        versionToUse = version2.split(".").slice(0, -1).join(".");
      }
      return versionToUse;
    }
    function nameMapper(name) {
      return function mapName(version2) {
        return name + " " + version2;
      };
    }
    function getMajor(version2) {
      return parseInt(version2.split(".")[0]);
    }
    function getMajorVersions(released, number3) {
      if (released.length === 0) return [];
      var majorVersions = uniq(released.map(getMajor));
      var minimum = majorVersions[majorVersions.length - number3];
      if (!minimum) {
        return released;
      }
      var selected = [];
      for (var i5 = released.length - 1; i5 >= 0; i5--) {
        if (minimum > getMajor(released[i5])) break;
        selected.unshift(released[i5]);
      }
      return selected;
    }
    function uniq(array) {
      var filtered = [];
      for (var i5 = 0; i5 < array.length; i5++) {
        if (filtered.indexOf(array[i5]) === -1) filtered.push(array[i5]);
      }
      return filtered;
    }
    function fillUsage(result, name, data2) {
      for (var i5 in data2) {
        result[name + " " + i5] = data2[i5];
      }
    }
    function generateFilter(sign, version2) {
      version2 = parseFloat(version2);
      if (sign === ">") {
        return function(v3) {
          return parseLatestFloat(v3) > version2;
        };
      } else if (sign === ">=") {
        return function(v3) {
          return parseLatestFloat(v3) >= version2;
        };
      } else if (sign === "<") {
        return function(v3) {
          return parseFloat(v3) < version2;
        };
      } else {
        return function(v3) {
          return parseFloat(v3) <= version2;
        };
      }
      function parseLatestFloat(v3) {
        return parseFloat(v3.split("-")[1] || v3);
      }
    }
    function generateSemverFilter(sign, version2) {
      version2 = version2.split(".").map(parseSimpleInt);
      version2[1] = version2[1] || 0;
      version2[2] = version2[2] || 0;
      if (sign === ">") {
        return function(v3) {
          v3 = v3.split(".").map(parseSimpleInt);
          return compareSemver(v3, version2) > 0;
        };
      } else if (sign === ">=") {
        return function(v3) {
          v3 = v3.split(".").map(parseSimpleInt);
          return compareSemver(v3, version2) >= 0;
        };
      } else if (sign === "<") {
        return function(v3) {
          v3 = v3.split(".").map(parseSimpleInt);
          return compareSemver(version2, v3) > 0;
        };
      } else {
        return function(v3) {
          v3 = v3.split(".").map(parseSimpleInt);
          return compareSemver(version2, v3) >= 0;
        };
      }
    }
    function parseSimpleInt(x) {
      return parseInt(x);
    }
    function compare(a5, b3) {
      if (a5 < b3) return -1;
      if (a5 > b3) return 1;
      return 0;
    }
    function compareSemver(a5, b3) {
      return compare(parseInt(a5[0]), parseInt(b3[0])) || compare(parseInt(a5[1] || "0"), parseInt(b3[1] || "0")) || compare(parseInt(a5[2] || "0"), parseInt(b3[2] || "0"));
    }
    function semverFilterLoose(operator, range2) {
      range2 = range2.split(".").map(parseSimpleInt);
      if (typeof range2[1] === "undefined") {
        range2[1] = "x";
      }
      switch (operator) {
        case "<=":
          return function(version2) {
            version2 = version2.split(".").map(parseSimpleInt);
            return compareSemverLoose(version2, range2) <= 0;
          };
        case ">=":
        default:
          return function(version2) {
            version2 = version2.split(".").map(parseSimpleInt);
            return compareSemverLoose(version2, range2) >= 0;
          };
      }
    }
    function compareSemverLoose(version2, range2) {
      if (version2[0] !== range2[0]) {
        return version2[0] < range2[0] ? -1 : 1;
      }
      if (range2[1] === "x") {
        return 0;
      }
      if (version2[1] !== range2[1]) {
        return version2[1] < range2[1] ? -1 : 1;
      }
      return 0;
    }
    function resolveVersion(data2, version2) {
      if (data2.versions.indexOf(version2) !== -1) {
        return version2;
      } else if (browserslist.versionAliases[data2.name][version2]) {
        return browserslist.versionAliases[data2.name][version2];
      } else {
        return false;
      }
    }
    function normalizeVersion(data2, version2) {
      var resolved = resolveVersion(data2, version2);
      if (resolved) {
        return resolved;
      } else if (data2.versions.length === 1) {
        return data2.versions[0];
      } else {
        return false;
      }
    }
    function filterByYear(since, context) {
      since = since / 1e3;
      return Object.keys(agents).reduce(function(selected, name) {
        var data2 = byName(name, context);
        if (!data2) return selected;
        var versions = Object.keys(data2.releaseDate).filter(function(v3) {
          var date = data2.releaseDate[v3];
          return date !== null && date >= since;
        });
        return selected.concat(versions.map(nameMapper(data2.name)));
      }, []);
    }
    function cloneData(data2) {
      return {
        name: data2.name,
        versions: data2.versions,
        released: data2.released,
        releaseDate: data2.releaseDate
      };
    }
    function byName(name, context) {
      name = name.toLowerCase();
      name = browserslist.aliases[name] || name;
      if (context.mobileToDesktop && browserslist.desktopNames[name]) {
        var desktop = browserslist.data[browserslist.desktopNames[name]];
        if (name === "android") {
          return normalizeAndroidData(cloneData(browserslist.data[name]), desktop);
        } else {
          var cloned = cloneData(desktop);
          cloned.name = name;
          return cloned;
        }
      }
      return browserslist.data[name];
    }
    function normalizeAndroidVersions(androidVersions, chromeVersions) {
      var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST);
      return androidVersions.filter(function(version2) {
        return /^(?:[2-4]\.|[34]$)/.test(version2);
      }).concat(chromeVersions.slice(iFirstEvergreen));
    }
    function copyObject(obj) {
      var copy2 = {};
      for (var key in obj) {
        copy2[key] = obj[key];
      }
      return copy2;
    }
    function normalizeAndroidData(android, chrome) {
      android.released = normalizeAndroidVersions(android.released, chrome.released);
      android.versions = normalizeAndroidVersions(android.versions, chrome.versions);
      android.releaseDate = copyObject(android.releaseDate);
      android.released.forEach(function(v3) {
        if (android.releaseDate[v3] === void 0) {
          android.releaseDate[v3] = chrome.releaseDate[v3];
        }
      });
      return android;
    }
    function checkName(name, context) {
      var data2 = byName(name, context);
      if (!data2) throw new BrowserslistError("Unknown browser " + name);
      return data2;
    }
    function unknownQuery(query) {
      return new BrowserslistError(
        "Unknown browser query `" + query + "`. Maybe you are using old Browserslist or made typo in query."
      );
    }
    function filterJumps(list, name, nVersions, context) {
      var jump = 1;
      switch (name) {
        case "android":
          if (context.mobileToDesktop) return list;
          var released = browserslist.data.chrome.released;
          jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST);
          break;
        case "op_mob":
          var latest = browserslist.data.op_mob.released.slice(-1)[0];
          jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1;
          break;
        default:
          return list;
      }
      if (nVersions <= jump) {
        return list.slice(-1);
      }
      return list.slice(jump - 1 - nVersions);
    }
    function isSupported(flags, withPartial) {
      return typeof flags === "string" && (flags.indexOf("y") >= 0 || withPartial && flags.indexOf("a") >= 0);
    }
    function resolve4(queries, context) {
      return parseQueries(queries).reduce(function(result, node, index2) {
        if (node.not && index2 === 0) {
          throw new BrowserslistError(
            "Write any browsers query (for instance, `defaults`) before `" + node.query + "`"
          );
        }
        var type = QUERIES[node.type];
        var array = type.select.call(browserslist, context, node).map(function(j) {
          var parts = j.split(" ");
          if (parts[1] === "0") {
            return parts[0] + " " + byName(parts[0], context).versions[0];
          } else {
            return j;
          }
        });
        if (node.compose === "and") {
          if (node.not) {
            return result.filter(function(j) {
              return array.indexOf(j) === -1;
            });
          } else {
            return result.filter(function(j) {
              return array.indexOf(j) !== -1;
            });
          }
        } else {
          if (node.not) {
            var filter3 = {};
            array.forEach(function(j) {
              filter3[j] = true;
            });
            return result.filter(function(j) {
              return !filter3[j];
            });
          }
          return result.concat(array);
        }
      }, []);
    }
    function prepareOpts(opts2) {
      if (typeof opts2 === "undefined") opts2 = {};
      if (typeof opts2.path === "undefined") {
        opts2.path = path3.resolve ? path3.resolve(".") : ".";
      }
      return opts2;
    }
    function prepareQueries(queries, opts2) {
      if (typeof queries === "undefined" || queries === null) {
        var config = browserslist.loadConfig(opts2);
        if (config) {
          queries = config;
        } else {
          queries = browserslist.defaults;
        }
      }
      return queries;
    }
    function checkQueries(queries) {
      if (!(typeof queries === "string" || Array.isArray(queries))) {
        throw new BrowserslistError(
          "Browser queries must be an array or string. Got " + typeof queries + "."
        );
      }
    }
    var cache2 = {};
    var parseCache = {};
    function browserslist(queries, opts2) {
      opts2 = prepareOpts(opts2);
      queries = prepareQueries(queries, opts2);
      checkQueries(queries);
      var needsPath = parseQueries(queries).some(function(node) {
        return QUERIES[node.type].needsPath;
      });
      var context = {
        ignoreUnknownVersions: opts2.ignoreUnknownVersions,
        dangerousExtend: opts2.dangerousExtend,
        throwOnMissing: opts2.throwOnMissing,
        mobileToDesktop: opts2.mobileToDesktop,
        env: opts2.env
      };
      if (needsPath) {
        context.path = opts2.path;
      }
      env.oldDataWarning(browserslist.data);
      var stats = env.getStat(opts2, browserslist.data);
      if (stats) {
        context.customUsage = {};
        for (var browser in stats) {
          fillUsage(context.customUsage, browser, stats[browser]);
        }
      }
      var cacheKey = JSON.stringify([queries, context]);
      if (cache2[cacheKey]) return cache2[cacheKey];
      var result = uniq(resolve4(queries, context)).sort(function(name1, name2) {
        name1 = name1.split(" ");
        name2 = name2.split(" ");
        if (name1[0] === name2[0]) {
          var version1 = name1[1].split("-")[0];
          var version2 = name2[1].split("-")[0];
          return compareSemver(version2.split("."), version1.split("."));
        } else {
          return compare(name1[0], name2[0]);
        }
      });
      if (!env.env.BROWSERSLIST_DISABLE_CACHE) {
        cache2[cacheKey] = result;
      }
      return result;
    }
    function parseQueries(queries) {
      var cacheKey = JSON.stringify(queries);
      if (cacheKey in parseCache) return parseCache[cacheKey];
      var result = parseWithoutCache(QUERIES, queries);
      if (!env.env.BROWSERSLIST_DISABLE_CACHE) {
        parseCache[cacheKey] = result;
      }
      return result;
    }
    function loadCustomUsage(context, config) {
      var stats = env.loadStat(context, config, browserslist.data);
      if (stats) {
        context.customUsage = {};
        for (var browser in stats) {
          fillUsage(context.customUsage, browser, stats[browser]);
        }
      }
      if (!context.customUsage) {
        throw new BrowserslistError("Custom usage statistics was not provided");
      }
      return context.customUsage;
    }
    browserslist.parse = function(queries, opts2) {
      opts2 = prepareOpts(opts2);
      queries = prepareQueries(queries, opts2);
      checkQueries(queries);
      return parseQueries(queries);
    };
    browserslist.cache = {};
    browserslist.data = {};
    browserslist.usage = {
      global: {},
      custom: null
    };
    browserslist.defaults = ["> 0.5%", "last 2 versions", "Firefox ESR", "not dead"];
    browserslist.aliases = {
      fx: "firefox",
      ff: "firefox",
      ios: "ios_saf",
      explorer: "ie",
      blackberry: "bb",
      explorermobile: "ie_mob",
      operamini: "op_mini",
      operamobile: "op_mob",
      chromeandroid: "and_chr",
      firefoxandroid: "and_ff",
      ucandroid: "and_uc",
      qqandroid: "and_qq"
    };
    browserslist.desktopNames = {
      and_chr: "chrome",
      and_ff: "firefox",
      ie_mob: "ie",
      android: "chrome"
      // has extra processing logic
    };
    browserslist.versionAliases = {};
    browserslist.clearCaches = env.clearCaches;
    browserslist.parseConfig = env.parseConfig;
    browserslist.readConfig = env.readConfig;
    browserslist.findConfigFile = env.findConfigFile;
    browserslist.findConfig = env.findConfig;
    browserslist.loadConfig = env.loadConfig;
    browserslist.coverage = function(browsers, stats) {
      var data2;
      if (typeof stats === "undefined") {
        data2 = browserslist.usage.global;
      } else if (stats === "my stats") {
        var opts2 = {};
        opts2.path = path3.resolve ? path3.resolve(".") : ".";
        var customStats = env.getStat(opts2);
        if (!customStats) {
          throw new BrowserslistError("Custom usage statistics was not provided");
        }
        data2 = {};
        for (var browser in customStats) {
          fillUsage(data2, browser, customStats[browser]);
        }
      } else if (typeof stats === "string") {
        if (stats.length > 2) {
          stats = stats.toLowerCase();
        } else {
          stats = stats.toUpperCase();
        }
        env.loadCountry(browserslist.usage, stats, browserslist.data);
        data2 = browserslist.usage[stats];
      } else {
        if ("dataByBrowser" in stats) {
          stats = stats.dataByBrowser;
        }
        data2 = {};
        for (var name in stats) {
          for (var version2 in stats[name]) {
            data2[name + " " + version2] = stats[name][version2];
          }
        }
      }
      return browsers.reduce(function(all5, i5) {
        var usage = data2[i5];
        if (usage === void 0) {
          usage = data2[i5.replace(/ \S+$/, " 0")];
        }
        return all5 + (usage || 0);
      }, 0);
    };
    function nodeQuery(context, node) {
      var matched = browserslist.nodeVersions.filter(function(i5) {
        return isVersionsMatch(i5, node.version);
      });
      if (matched.length === 0) {
        if (context.ignoreUnknownVersions) {
          return [];
        } else {
          throw new BrowserslistError(
            "Unknown version " + node.version + " of Node.js"
          );
        }
      }
      return ["node " + matched[matched.length - 1]];
    }
    function sinceQuery(context, node) {
      var year = parseInt(node.year);
      var month = parseInt(node.month || "01") - 1;
      var day = parseInt(node.day || "01");
      return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context);
    }
    function bbmTransform(bbmVersions) {
      var browsers = {
        chrome: "chrome",
        chrome_android: "and_chr",
        edge: "edge",
        firefox: "firefox",
        firefox_android: "and_ff",
        safari: "safari",
        safari_ios: "ios_saf",
        webview_android: "android",
        samsunginternet_android: "samsung",
        opera_android: "op_mob",
        opera: "opera",
        qq_android: "and_qq",
        uc_android: "and_uc",
        kai_os: "kaios"
      };
      return bbmVersions.filter(function(version2) {
        return Object.keys(browsers).indexOf(version2.browser) !== -1;
      }).map(function(version2) {
        return browsers[version2.browser] + " >= " + version2.version;
      });
    }
    function coverQuery(context, node) {
      var coverage = parseFloat(node.coverage);
      var usage = browserslist.usage.global;
      if (node.place) {
        if (node.place.match(/^my\s+stats$/i)) {
          if (!context.customUsage) {
            throw new BrowserslistError("Custom usage statistics was not provided");
          }
          usage = context.customUsage;
        } else {
          var place;
          if (node.place.length === 2) {
            place = node.place.toUpperCase();
          } else {
            place = node.place.toLowerCase();
          }
          env.loadCountry(browserslist.usage, place, browserslist.data);
          usage = browserslist.usage[place];
        }
      } else if (node.config) {
        usage = loadCustomUsage(context, node.config);
      }
      var versions = Object.keys(usage).sort(function(a5, b3) {
        return usage[b3] - usage[a5];
      });
      var covered = 0;
      var result = [];
      var version2;
      for (var i5 = 0; i5 < versions.length; i5++) {
        version2 = versions[i5];
        if (usage[version2] === 0) break;
        covered += usage[version2];
        result.push(version2);
        if (covered >= coverage) break;
      }
      return result;
    }
    var QUERIES = {
      last_major_versions: {
        matches: ["versions"],
        regexp: /^last\s+(\d+)\s+major\s+versions?$/i,
        select: function(context, node) {
          return Object.keys(agents).reduce(function(selected, name) {
            var data2 = byName(name, context);
            if (!data2) return selected;
            var list = getMajorVersions(data2.released, node.versions);
            list = list.map(nameMapper(data2.name));
            list = filterJumps(list, data2.name, node.versions, context);
            return selected.concat(list);
          }, []);
        }
      },
      last_versions: {
        matches: ["versions"],
        regexp: /^last\s+(\d+)\s+versions?$/i,
        select: function(context, node) {
          return Object.keys(agents).reduce(function(selected, name) {
            var data2 = byName(name, context);
            if (!data2) return selected;
            var list = data2.released.slice(-node.versions);
            list = list.map(nameMapper(data2.name));
            list = filterJumps(list, data2.name, node.versions, context);
            return selected.concat(list);
          }, []);
        }
      },
      last_electron_major_versions: {
        matches: ["versions"],
        regexp: /^last\s+(\d+)\s+electron\s+major\s+versions?$/i,
        select: function(context, node) {
          var validVersions = getMajorVersions(Object.keys(e2c), node.versions);
          return validVersions.map(function(i5) {
            return "chrome " + e2c[i5];
          });
        }
      },
      last_node_major_versions: {
        matches: ["versions"],
        regexp: /^last\s+(\d+)\s+node\s+major\s+versions?$/i,
        select: function(context, node) {
          return getMajorVersions(browserslist.nodeVersions, node.versions).map(
            function(version2) {
              return "node " + version2;
            }
          );
        }
      },
      last_browser_major_versions: {
        matches: ["versions", "browser"],
        regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,
        select: function(context, node) {
          var data2 = checkName(node.browser, context);
          var validVersions = getMajorVersions(data2.released, node.versions);
          var list = validVersions.map(nameMapper(data2.name));
          list = filterJumps(list, data2.name, node.versions, context);
          return list;
        }
      },
      last_electron_versions: {
        matches: ["versions"],
        regexp: /^last\s+(\d+)\s+electron\s+versions?$/i,
        select: function(context, node) {
          return Object.keys(e2c).slice(-node.versions).map(function(i5) {
            return "chrome " + e2c[i5];
          });
        }
      },
      last_node_versions: {
        matches: ["versions"],
        regexp: /^last\s+(\d+)\s+node\s+versions?$/i,
        select: function(context, node) {
          return browserslist.nodeVersions.slice(-node.versions).map(function(version2) {
            return "node " + version2;
          });
        }
      },
      last_browser_versions: {
        matches: ["versions", "browser"],
        regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i,
        select: function(context, node) {
          var data2 = checkName(node.browser, context);
          var list = data2.released.slice(-node.versions).map(nameMapper(data2.name));
          list = filterJumps(list, data2.name, node.versions, context);
          return list;
        }
      },
      unreleased_versions: {
        matches: [],
        regexp: /^unreleased\s+versions$/i,
        select: function(context) {
          return Object.keys(agents).reduce(function(selected, name) {
            var data2 = byName(name, context);
            if (!data2) return selected;
            var list = data2.versions.filter(function(v3) {
              return data2.released.indexOf(v3) === -1;
            });
            list = list.map(nameMapper(data2.name));
            return selected.concat(list);
          }, []);
        }
      },
      unreleased_electron_versions: {
        matches: [],
        regexp: /^unreleased\s+electron\s+versions?$/i,
        select: function() {
          return [];
        }
      },
      unreleased_browser_versions: {
        matches: ["browser"],
        regexp: /^unreleased\s+(\w+)\s+versions?$/i,
        select: function(context, node) {
          var data2 = checkName(node.browser, context);
          return data2.versions.filter(function(v3) {
            return data2.released.indexOf(v3) === -1;
          }).map(nameMapper(data2.name));
        }
      },
      last_years: {
        matches: ["years"],
        regexp: /^last\s+((\d+\.)?\d+)\s+years?$/i,
        select: function(context, node) {
          return filterByYear(Date.now() - YEAR * node.years, context);
        }
      },
      since_y: {
        matches: ["year"],
        regexp: /^since (\d+)$/i,
        select: sinceQuery
      },
      since_y_m: {
        matches: ["year", "month"],
        regexp: /^since (\d+)-(\d+)$/i,
        select: sinceQuery
      },
      since_y_m_d: {
        matches: ["year", "month", "day"],
        regexp: /^since (\d+)-(\d+)-(\d+)$/i,
        select: sinceQuery
      },
      baseline: {
        matches: ["year", "availability", "date", "downstream", "kaios"],
        // Matches:
        //   baseline 2024
        //   baseline newly available
        //   baseline widely available
        //   baseline widely available on 2024-06-01
        //   ...with downstream
        //   ...including kaios
        regexp: /^baseline\s+(?:(\d+)|(newly|widely)\s+available(?:\s+on\s+(\d{4}-\d{2}-\d{2}))?)?(\s+with\s+downstream)?(\s+including\s+kaios)?$/i,
        select: function(context, node) {
          var baselineVersions;
          var includeDownstream = !!node.downstream;
          var includeKaiOS = !!node.kaios;
          if (node.availability === "newly" && node.date) {
            throw new BrowserslistError(
              'Using newly available with a date is not supported, please use "widely available on YYYY-MM-DD" and add 30 months to the date you specified.'
            );
          }
          if (node.year) {
            baselineVersions = bbm.getCompatibleVersions({
              targetYear: node.year,
              includeDownstreamBrowsers: includeDownstream,
              includeKaiOS,
              suppressWarnings: true
            });
          } else if (node.date) {
            baselineVersions = bbm.getCompatibleVersions({
              widelyAvailableOnDate: node.date,
              includeDownstreamBrowsers: includeDownstream,
              includeKaiOS,
              suppressWarnings: true
            });
          } else if (node.availability === "newly") {
            var future30months = (/* @__PURE__ */ new Date()).setMonth((/* @__PURE__ */ new Date()).getMonth() + 30);
            baselineVersions = bbm.getCompatibleVersions({
              widelyAvailableOnDate: future30months,
              includeDownstreamBrowsers: includeDownstream,
              includeKaiOS,
              suppressWarnings: true
            });
          } else {
            baselineVersions = bbm.getCompatibleVersions({
              includeDownstreamBrowsers: includeDownstream,
              includeKaiOS,
              suppressWarnings: true
            });
          }
          return resolve4(bbmTransform(baselineVersions), context);
        }
      },
      popularity: {
        matches: ["sign", "popularity"],
        regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,
        select: function(context, node) {
          var popularity = parseFloat(node.popularity);
          var usage = browserslist.usage.global;
          return Object.keys(usage).reduce(function(result, version2) {
            if (node.sign === ">") {
              if (usage[version2] > popularity) {
                result.push(version2);
              }
            } else if (node.sign === "<") {
              if (usage[version2] < popularity) {
                result.push(version2);
              }
            } else if (node.sign === "<=") {
              if (usage[version2] <= popularity) {
                result.push(version2);
              }
            } else if (usage[version2] >= popularity) {
              result.push(version2);
            }
            return result;
          }, []);
        }
      },
      popularity_in_my_stats: {
        matches: ["sign", "popularity"],
        regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,
        select: function(context, node) {
          var popularity = parseFloat(node.popularity);
          if (!context.customUsage) {
            throw new BrowserslistError("Custom usage statistics was not provided");
          }
          var usage = context.customUsage;
          return Object.keys(usage).reduce(function(result, version2) {
            var percentage = usage[version2];
            if (percentage == null) {
              return result;
            }
            if (node.sign === ">") {
              if (percentage > popularity) {
                result.push(version2);
              }
            } else if (node.sign === "<") {
              if (percentage < popularity) {
                result.push(version2);
              }
            } else if (node.sign === "<=") {
              if (percentage <= popularity) {
                result.push(version2);
              }
            } else if (percentage >= popularity) {
              result.push(version2);
            }
            return result;
          }, []);
        }
      },
      popularity_in_config_stats: {
        matches: ["sign", "popularity", "config"],
        regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,
        select: function(context, node) {
          var popularity = parseFloat(node.popularity);
          var usage = loadCustomUsage(context, node.config);
          return Object.keys(usage).reduce(function(result, version2) {
            var percentage = usage[version2];
            if (percentage == null) {
              return result;
            }
            if (node.sign === ">") {
              if (percentage > popularity) {
                result.push(version2);
              }
            } else if (node.sign === "<") {
              if (percentage < popularity) {
                result.push(version2);
              }
            } else if (node.sign === "<=") {
              if (percentage <= popularity) {
                result.push(version2);
              }
            } else if (percentage >= popularity) {
              result.push(version2);
            }
            return result;
          }, []);
        }
      },
      popularity_in_place: {
        matches: ["sign", "popularity", "place"],
        regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,
        select: function(context, node) {
          var popularity = parseFloat(node.popularity);
          var place = node.place;
          if (place.length === 2) {
            place = place.toUpperCase();
          } else {
            place = place.toLowerCase();
          }
          env.loadCountry(browserslist.usage, place, browserslist.data);
          var usage = browserslist.usage[place];
          return Object.keys(usage).reduce(function(result, version2) {
            var percentage = usage[version2];
            if (percentage == null) {
              return result;
            }
            if (node.sign === ">") {
              if (percentage > popularity) {
                result.push(version2);
              }
            } else if (node.sign === "<") {
              if (percentage < popularity) {
                result.push(version2);
              }
            } else if (node.sign === "<=") {
              if (percentage <= popularity) {
                result.push(version2);
              }
            } else if (percentage >= popularity) {
              result.push(version2);
            }
            return result;
          }, []);
        }
      },
      cover: {
        matches: ["coverage"],
        regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,
        select: coverQuery
      },
      cover_in: {
        matches: ["coverage", "place"],
        regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,
        select: coverQuery
      },
      cover_config: {
        matches: ["coverage", "config"],
        regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/i,
        select: coverQuery
      },
      supports: {
        matches: ["supportType", "feature"],
        regexp: /^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/,
        select: function(context, node) {
          env.loadFeature(browserslist.cache, node.feature);
          var withPartial = node.supportType !== "fully";
          var features = browserslist.cache[node.feature];
          var result = [];
          for (var name in features) {
            var data2 = byName(name, context);
            var iMax = data2.released.length - 1;
            while (iMax >= 0) {
              if (data2.released[iMax] in features[name]) break;
              iMax--;
            }
            var checkDesktop = context.mobileToDesktop && name in browserslist.desktopNames && isSupported(features[name][data2.released[iMax]], withPartial);
            data2.versions.forEach(function(version2) {
              var flags = features[name][version2];
              if (flags === void 0 && checkDesktop) {
                flags = features[browserslist.desktopNames[name]][version2];
              }
              if (isSupported(flags, withPartial)) {
                result.push(name + " " + version2);
              }
            });
          }
          return result;
        }
      },
      electron_range: {
        matches: ["from", "to"],
        regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,
        select: function(context, node) {
          var fromToUse = normalizeElectron(node.from);
          var toToUse = normalizeElectron(node.to);
          var from = parseFloat(node.from);
          var to = parseFloat(node.to);
          if (!e2c[fromToUse]) {
            throw new BrowserslistError("Unknown version " + from + " of electron");
          }
          if (!e2c[toToUse]) {
            throw new BrowserslistError("Unknown version " + to + " of electron");
          }
          return Object.keys(e2c).filter(function(i5) {
            var parsed = parseFloat(i5);
            return parsed >= from && parsed <= to;
          }).map(function(i5) {
            return "chrome " + e2c[i5];
          });
        }
      },
      node_range: {
        matches: ["from", "to"],
        regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,
        select: function(context, node) {
          return browserslist.nodeVersions.filter(semverFilterLoose(">=", node.from)).filter(semverFilterLoose("<=", node.to)).map(function(v3) {
            return "node " + v3;
          });
        }
      },
      browser_range: {
        matches: ["browser", "from", "to"],
        regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,
        select: function(context, node) {
          var data2 = checkName(node.browser, context);
          var from = parseFloat(normalizeVersion(data2, node.from) || node.from);
          var to = parseFloat(normalizeVersion(data2, node.to) || node.to);
          function filter3(v3) {
            var parsed = parseFloat(v3);
            return parsed >= from && parsed <= to;
          }
          return data2.released.filter(filter3).map(nameMapper(data2.name));
        }
      },
      electron_ray: {
        matches: ["sign", "version"],
        regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i,
        select: function(context, node) {
          var versionToUse = normalizeElectron(node.version);
          return Object.keys(e2c).filter(generateFilter(node.sign, versionToUse)).map(function(i5) {
            return "chrome " + e2c[i5];
          });
        }
      },
      node_ray: {
        matches: ["sign", "version"],
        regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i,
        select: function(context, node) {
          return browserslist.nodeVersions.filter(generateSemverFilter(node.sign, node.version)).map(function(v3) {
            return "node " + v3;
          });
        }
      },
      browser_ray: {
        matches: ["browser", "sign", "version"],
        regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+|esr)$/i,
        select: function(context, node) {
          var version2 = node.version;
          var data2 = checkName(node.browser, context);
          var alias = browserslist.versionAliases[data2.name][version2.toLowerCase()];
          if (alias) version2 = alias;
          if (!/[\d.]+/.test(version2)) {
            throw new BrowserslistError(
              "Unknown version " + version2 + " of " + node.browser
            );
          }
          return data2.released.filter(generateFilter(node.sign, version2)).map(function(v3) {
            return data2.name + " " + v3;
          });
        }
      },
      firefox_esr: {
        matches: [],
        regexp: /^(firefox|ff|fx)\s+esr$/i,
        select: function() {
          return ["firefox " + FIREFOX_ESR_VERSION];
        }
      },
      opera_mini_all: {
        matches: [],
        regexp: /(operamini|op_mini)\s+all/i,
        select: function() {
          return ["op_mini all"];
        }
      },
      electron_version: {
        matches: ["version"],
        regexp: /^electron\s+([\d.]+)$/i,
        select: function(context, node) {
          var versionToUse = normalizeElectron(node.version);
          var chrome = e2c[versionToUse];
          if (!chrome) {
            throw new BrowserslistError(
              "Unknown version " + node.version + " of electron"
            );
          }
          return ["chrome " + chrome];
        }
      },
      node_major_version: {
        matches: ["version"],
        regexp: /^node\s+(\d+)$/i,
        select: nodeQuery
      },
      node_minor_version: {
        matches: ["version"],
        regexp: /^node\s+(\d+\.\d+)$/i,
        select: nodeQuery
      },
      node_patch_version: {
        matches: ["version"],
        regexp: /^node\s+(\d+\.\d+\.\d+)$/i,
        select: nodeQuery
      },
      current_node: {
        matches: [],
        regexp: /^current\s+node$/i,
        select: function(context) {
          return [env.currentNode(resolve4, context)];
        }
      },
      maintained_node: {
        matches: [],
        regexp: /^maintained\s+node\s+versions$/i,
        select: function(context) {
          var now = Date.now();
          var queries = Object.keys(jsEOL).filter(function(key) {
            return now < Date.parse(jsEOL[key].end) && now > Date.parse(jsEOL[key].start) && isEolReleased(key);
          }).map(function(key) {
            return "node " + key.slice(1);
          });
          return resolve4(queries, context);
        }
      },
      phantomjs_1_9: {
        matches: [],
        regexp: /^phantomjs\s+1.9$/i,
        select: function() {
          return ["safari 5"];
        }
      },
      phantomjs_2_1: {
        matches: [],
        regexp: /^phantomjs\s+2.1$/i,
        select: function() {
          return ["safari 6"];
        }
      },
      browser_version: {
        matches: ["browser", "version"],
        regexp: /^(\w+)\s+(tp|[\d.]+)$/i,
        select: function(context, node) {
          var version2 = node.version;
          if (/^tp$/i.test(version2)) version2 = "TP";
          var data2 = checkName(node.browser, context);
          var alias = normalizeVersion(data2, version2);
          if (alias) {
            version2 = alias;
          } else {
            if (version2.indexOf(".") === -1) {
              alias = version2 + ".0";
            } else {
              alias = version2.replace(/\.0$/, "");
            }
            alias = normalizeVersion(data2, alias);
            if (alias) {
              version2 = alias;
            } else if (context.ignoreUnknownVersions) {
              return [];
            } else {
              throw new BrowserslistError(
                "Unknown version " + version2 + " of " + node.browser
              );
            }
          }
          return [data2.name + " " + version2];
        }
      },
      browserslist_config: {
        matches: [],
        regexp: /^browserslist config$/i,
        needsPath: true,
        select: function(context) {
          return browserslist(void 0, context);
        }
      },
      extends: {
        matches: ["config"],
        regexp: /^extends (.+)$/i,
        needsPath: true,
        select: function(context, node) {
          return resolve4(env.loadQueries(context, node.config), context);
        }
      },
      defaults: {
        matches: [],
        regexp: /^defaults$/i,
        select: function(context) {
          return resolve4(browserslist.defaults, context);
        }
      },
      dead: {
        matches: [],
        regexp: /^dead$/i,
        select: function(context) {
          var dead = [
            "Baidu >= 0",
            "ie <= 11",
            "ie_mob <= 11",
            "bb <= 10",
            "op_mob <= 12.1",
            "samsung 4"
          ];
          return resolve4(dead, context);
        }
      },
      unknown: {
        matches: [],
        regexp: /^(\w+)$/i,
        select: function(context, node) {
          if (byName(node.query, context)) {
            throw new BrowserslistError(
              "Specify versions in Browserslist query for browser " + node.query
            );
          } else {
            throw unknownQuery(node.query);
          }
        }
      }
    };
    (function() {
      for (var name in agents) {
        var browser = agents[name];
        browserslist.data[name] = {
          name,
          versions: normalize4(agents[name].versions),
          released: normalize4(agents[name].versions.slice(0, -3)),
          releaseDate: agents[name].release_date
        };
        fillUsage(browserslist.usage.global, name, browser.usage_global);
        browserslist.versionAliases[name] = {};
        for (var i5 = 0; i5 < browser.versions.length; i5++) {
          var full = browser.versions[i5];
          if (!full) continue;
          if (full.indexOf("-") !== -1) {
            var interval = full.split("-");
            for (var j = 0; j < interval.length; j++) {
              browserslist.versionAliases[name][interval[j]] = full;
            }
          }
        }
      }
      browserslist.nodeVersions = jsReleases.map(function(release) {
        return release.version;
      });
    })();
    browserslist.versionAliases.firefox.esr = FIREFOX_ESR_VERSION;
    module.exports = browserslist;
  }
});

// ../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/utils.js
var require_utils7 = __commonJS({
  "../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.shuffleArray = exports.getBrowsersFromQuery = exports.getBrowser = exports.getUserAgent = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var browserslist_1 = tslib_1.__importDefault(require_browserslist());
    var constants_1 = require_constants2();
    var getUserAgent2 = (headers) => {
      for (const [header, value2] of Object.entries(headers)) {
        if (header.toLowerCase() === "user-agent") {
          return value2;
        }
      }
      return void 0;
    };
    exports.getUserAgent = getUserAgent2;
    var getBrowser2 = (userAgent) => {
      if (!userAgent) {
        return void 0;
      }
      let browser;
      if (userAgent.includes("Firefox")) {
        browser = "firefox";
      } else if (userAgent.includes("Chrome")) {
        browser = "chrome";
      } else {
        browser = "safari";
      }
      return browser;
    };
    exports.getBrowser = getBrowser2;
    var getBrowsersWithVersions = (browserList) => {
      const browsersWithVersions = {};
      for (const browserDefinition of browserList) {
        const [browserSplit, versionString] = browserDefinition.split(" ");
        const browser = browserSplit;
        const version2 = parseInt(versionString, 10);
        if (!constants_1.SUPPORTED_BROWSERS.includes(browser)) {
          continue;
        }
        if (browsersWithVersions[browser]) {
          browsersWithVersions[browser].push(version2);
        } else {
          browsersWithVersions[browser] = [version2];
        }
      }
      return browsersWithVersions;
    };
    var getOptimizedVersionDistribution = (browsersWithVersions) => {
      const finalOptimizedBrowsers = [];
      Object.entries(browsersWithVersions).forEach(([browser, versions]) => {
        const sortedVersions = versions.sort((a5, b3) => a5 - b3);
        let lowestVersionSoFar = sortedVersions[0];
        sortedVersions.forEach((version2, index2) => {
          const nextVersion = sortedVersions[index2 + 1];
          const isLast = index2 === sortedVersions.length - 1;
          const isNextVersionGap = nextVersion - version2 > 1;
          if (isNextVersionGap || isLast) {
            finalOptimizedBrowsers.push({
              name: browser,
              minVersion: lowestVersionSoFar,
              maxVersion: version2
            });
            lowestVersionSoFar = nextVersion;
          }
        });
      });
      return finalOptimizedBrowsers;
    };
    var getBrowsersFromQuery = (browserListQuery) => {
      const browserList = (0, browserslist_1.default)(browserListQuery);
      const browsersWithVersions = getBrowsersWithVersions(browserList);
      return getOptimizedVersionDistribution(browsersWithVersions);
    };
    exports.getBrowsersFromQuery = getBrowsersFromQuery;
    var shuffleArray = (array) => {
      for (let i5 = array.length - 1; i5 > 0; i5--) {
        const j = Math.floor(Math.random() * (i5 + 1));
        [array[i5], array[j]] = [array[j], array[i5]];
      }
      return array;
    };
    exports.shuffleArray = shuffleArray;
  }
});

// ../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/header-generator.js
var require_header_generator = __commonJS({
  "../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/header-generator.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.HeaderGenerator = exports.headerGeneratorOptionsShape = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var fs_1 = __require("fs");
    var generative_bayesian_network_1 = require_generative_bayesian_network();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var constants_1 = require_constants2();
    var utils_1 = require_utils7();
    var browserSpecificationShape = {
      name: ow_1.default.string,
      minVersion: ow_1.default.optional.number,
      maxVersion: ow_1.default.optional.number,
      httpVersion: ow_1.default.optional.string
    };
    exports.headerGeneratorOptionsShape = {
      browsers: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.object.exactShape(browserSpecificationShape), ow_1.default.string.oneOf(constants_1.SUPPORTED_BROWSERS))),
      operatingSystems: ow_1.default.optional.array.ofType(ow_1.default.string.oneOf(constants_1.SUPPORTED_OPERATING_SYSTEMS)),
      devices: ow_1.default.optional.array.ofType(ow_1.default.string.oneOf(constants_1.SUPPORTED_DEVICES)),
      locales: ow_1.default.optional.array.ofType(ow_1.default.string),
      httpVersion: ow_1.default.optional.string.oneOf(constants_1.SUPPORTED_HTTP_VERSIONS),
      browserListQuery: ow_1.default.optional.string,
      strict: ow_1.default.optional.boolean
    };
    var HeaderGenerator2 = class {
      /**
       * @param options Default header generation options used - unless overridden.
       */
      constructor(options = {}) {
        Object.defineProperty(this, "globalOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "browserListQuery", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "inputGeneratorNetwork", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "headerGeneratorNetwork", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "uniqueBrowsers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "headersOrder", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "relaxationOrder", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: [
            "locales",
            "devices",
            "operatingSystems",
            "browsers",
            "browserListQuery"
          ]
        });
        (0, ow_1.default)(options, "HeaderGeneratorOptions", ow_1.default.object.partialShape(exports.headerGeneratorOptionsShape));
        const { browsers = constants_1.SUPPORTED_BROWSERS, operatingSystems = constants_1.SUPPORTED_OPERATING_SYSTEMS, devices = ["desktop"], locales = ["en-US"], httpVersion = "2", browserListQuery = "", strict = false } = options;
        this.globalOptions = {
          browsers: this._prepareBrowsersConfig(browsers, browserListQuery, httpVersion),
          operatingSystems,
          devices,
          locales,
          httpVersion,
          browserListQuery,
          strict
        };
        this.uniqueBrowsers = [];
        this.headersOrder = JSON.parse((0, fs_1.readFileSync)(`${__dirname}/data_files/headers-order.json`).toString());
        const uniqueBrowserStrings = JSON.parse((0, fs_1.readFileSync)(`${__dirname}/data_files/browser-helper-file.json`, "utf8").toString());
        for (const browserString of uniqueBrowserStrings) {
          if (browserString !== constants_1.MISSING_VALUE_DATASET_TOKEN) {
            this.uniqueBrowsers.push(this.prepareHttpBrowserObject(browserString));
          }
        }
        this.inputGeneratorNetwork = new generative_bayesian_network_1.BayesianNetwork({
          path: `${__dirname}/data_files/input-network-definition.zip`
        });
        this.headerGeneratorNetwork = new generative_bayesian_network_1.BayesianNetwork({
          path: `${__dirname}/data_files/header-network-definition.zip`
        });
      }
      /**
       * Generates a single set of ordered headers using a combination of the default options specified in the constructor
       * and their possible overrides provided here.
       * @param options Specifies options that should be overridden for this one call.
       * @param requestDependentHeaders Specifies known values of headers dependent on the particular request.
       */
      getHeaders(options = {}, requestDependentHeaders = {}, userAgentValues) {
        (0, ow_1.default)(options, "HeaderGeneratorOptions", ow_1.default.object.partialShape(exports.headerGeneratorOptionsShape));
        for (const [key, value2] of Object.entries(options)) {
          if (!value2) {
            delete options[key];
          }
        }
        const headerOptions = { ...this.globalOptions, ...options };
        const possibleAttributeValues = this._getPossibleAttributeValues(headerOptions);
        const [http1Constraints, http2Constraints] = userAgentValues ? [
          generative_bayesian_network_1.utils.getConstraintClosure(this.headerGeneratorNetwork, {
            "User-Agent": userAgentValues
          }),
          generative_bayesian_network_1.utils.getConstraintClosure(this.headerGeneratorNetwork, {
            "user-agent": userAgentValues
          })
        ] : [null, null];
        const inputConstraints = Object.entries(possibleAttributeValues).reduce((acc, [key, value2]) => {
          if (key === "*BROWSER_HTTP") {
            acc[key] = value2.filter((x) => {
              const [browserName, httpVersion] = x.split("|");
              let httpValues = http2Constraints;
              if (httpVersion === "1" || !http2Constraints || Object.keys(http2Constraints).length === 0) {
                httpValues = http1Constraints;
              }
              return httpValues?.["*BROWSER"].includes(browserName) ?? true;
            });
            return acc;
          }
          acc[key] = value2.filter((x) => (http1Constraints?.[key]?.includes(x) || http2Constraints?.[key]?.includes(x)) ?? true);
          return acc;
        }, {});
        const inputSample = this.inputGeneratorNetwork.generateConsistentSampleWhenPossible(inputConstraints);
        if (Object.keys(inputSample).length === 0) {
          if (headerOptions.httpVersion === "1") {
            const headers2 = this.getHeaders({
              ...options,
              httpVersion: "2"
            }, requestDependentHeaders, userAgentValues);
            const pascalize = (name) => {
              return name.split("-").map((part) => {
                return part[0].toUpperCase() + part.slice(1).toLowerCase();
              }).join("-");
            };
            const converted2to1 = Object.fromEntries(Object.entries(headers2).map(([name, value2]) => {
              if (name.startsWith("sec-ch-ua")) {
                return [name, value2];
              }
              if (["dnt", "rtt", "ect"].includes(name)) {
                return [name.toUpperCase(), value2];
              }
              return [pascalize(name), value2];
            }));
            return this.orderHeaders(converted2to1);
          }
          const relaxationIndex = this.relaxationOrder.findIndex((key) => options[key] !== void 0);
          if (options.strict || relaxationIndex === -1) {
            throw new Error("No headers based on this input can be generated. Please relax or change some of the requirements you specified.");
          }
          const relaxedOptions = { ...options };
          const relaxationKey = this.relaxationOrder[relaxationIndex];
          delete relaxedOptions[relaxationKey];
          return this.getHeaders(relaxedOptions, requestDependentHeaders, userAgentValues);
        }
        const generatedSample = this.headerGeneratorNetwork.generateSample(inputSample);
        const generatedHttpAndBrowser = this.prepareHttpBrowserObject(generatedSample[constants_1.BROWSER_HTTP_NODE_NAME]);
        let secFetchAttributeNames = constants_1.HTTP2_SEC_FETCH_ATTRIBUTES;
        let acceptLanguageFieldName = "accept-language";
        if (generatedHttpAndBrowser.httpVersion !== "2") {
          acceptLanguageFieldName = "Accept-Language";
          secFetchAttributeNames = constants_1.HTTP1_SEC_FETCH_ATTRIBUTES;
        }
        generatedSample[acceptLanguageFieldName] = this._getAcceptLanguageField(headerOptions.locales);
        const isChrome = generatedHttpAndBrowser.name === "chrome";
        const isFirefox = generatedHttpAndBrowser.name === "firefox";
        const isEdge = generatedHttpAndBrowser.name === "edge";
        const hasSecFetch = isChrome && generatedHttpAndBrowser.version[0] >= 76 || isFirefox && generatedHttpAndBrowser.version[0] >= 90 || isEdge && generatedHttpAndBrowser.version[0] >= 79;
        if (hasSecFetch) {
          generatedSample[secFetchAttributeNames.site] = "same-site";
          generatedSample[secFetchAttributeNames.mode] = "navigate";
          generatedSample[secFetchAttributeNames.user] = "?1";
          generatedSample[secFetchAttributeNames.dest] = "document";
        }
        for (const attribute of Object.keys(generatedSample)) {
          if (attribute.toLowerCase() === "connection" && generatedSample[attribute] === "close")
            delete generatedSample[attribute];
          if (attribute.startsWith("*") || generatedSample[attribute] === constants_1.MISSING_VALUE_DATASET_TOKEN)
            delete generatedSample[attribute];
        }
        return this.orderHeaders({
          ...generatedSample,
          ...requestDependentHeaders
        }, this.headersOrder[generatedHttpAndBrowser.name]);
      }
      /**
       * Returns a new object that contains ordered headers.
       * @param headers Specifies known values of headers dependent on the particular request.
       * @param order An array of ordered header names, optional (will be deducted from `user-agent`).
       */
      orderHeaders(headers, order = this.getOrderFromUserAgent(headers)) {
        const orderedSample = {};
        for (const attribute of order) {
          if (attribute in headers) {
            orderedSample[attribute] = headers[attribute];
          }
        }
        for (const attribute of Object.keys(headers)) {
          if (!order.includes(attribute)) {
            orderedSample[attribute] = headers[attribute];
          }
        }
        return orderedSample;
      }
      _prepareBrowsersConfig(browsers, browserListQuery, httpVersion) {
        let finalBrowsers = browsers;
        if (browserListQuery) {
          finalBrowsers = (0, utils_1.getBrowsersFromQuery)(browserListQuery);
        }
        return finalBrowsers.map((browser) => {
          if (typeof browser === "string") {
            return { name: browser, httpVersion };
          }
          browser.httpVersion = httpVersion;
          return browser;
        });
      }
      _getBrowserHttpOptions(browsers) {
        const browserHttpOptions = [];
        for (const browser of browsers) {
          for (const browserOption of this.uniqueBrowsers) {
            if (browser.name === browserOption.name) {
              const browserMajorVersion = browserOption.version[0];
              if ((!browser.minVersion || browser.minVersion <= browserMajorVersion) && (!browser.maxVersion || browser.maxVersion >= browserMajorVersion) && browser.httpVersion === browserOption.httpVersion) {
                browserHttpOptions.push(browserOption.completeString);
              }
            }
          }
        }
        return browserHttpOptions;
      }
      _getPossibleAttributeValues(headerOptions) {
        const { browsers: optionsBrowser, browserListQuery, httpVersion, operatingSystems } = headerOptions;
        const browsers = this._prepareBrowsersConfig(optionsBrowser, browserListQuery, httpVersion);
        const browserHttpOptions = this._getBrowserHttpOptions(browsers);
        const possibleAttributeValues = {};
        possibleAttributeValues[constants_1.BROWSER_HTTP_NODE_NAME] = browserHttpOptions;
        possibleAttributeValues[constants_1.OPERATING_SYSTEM_NODE_NAME] = operatingSystems;
        if (headerOptions.devices) {
          possibleAttributeValues[constants_1.DEVICE_NODE_NAME] = headerOptions.devices;
        }
        return possibleAttributeValues;
      }
      _getAcceptLanguageField(localesFromOptions) {
        let locales = localesFromOptions;
        let highLevelLocales = [];
        for (const locale of locales) {
          if (!locale.includes("-")) {
            highLevelLocales.push(locale);
          }
        }
        for (const locale of locales) {
          if (!highLevelLocales.includes(locale)) {
            let highLevelEquivalentPresent = false;
            for (const highLevelLocale of highLevelLocales) {
              if (locale.includes(highLevelLocale)) {
                highLevelEquivalentPresent = true;
                break;
              }
            }
            if (!highLevelEquivalentPresent)
              highLevelLocales.push(locale);
          }
        }
        highLevelLocales = (0, utils_1.shuffleArray)(highLevelLocales);
        locales = (0, utils_1.shuffleArray)(locales);
        const localesInAddingOrder = [];
        for (const highLevelLocale of highLevelLocales) {
          for (const locale of locales) {
            if (locale.includes(highLevelLocale) && !highLevelLocales.includes(locale)) {
              localesInAddingOrder.push(locale);
            }
          }
          localesInAddingOrder.push(highLevelLocale);
        }
        let acceptLanguageFieldValue = localesInAddingOrder[0];
        for (let x = 1; x < localesInAddingOrder.length; x++) {
          acceptLanguageFieldValue += `,${localesInAddingOrder[x]};q=${1 - x * 0.1}`;
        }
        return acceptLanguageFieldValue;
      }
      /**
       * Extract structured information about a browser and http version in the form of an object from httpBrowserString.
       * @param httpBrowserString A string containing the browser name, version and http version, such as `chrome/88.0.4324.182|2`.
       */
      prepareHttpBrowserObject(httpBrowserString) {
        const [browserString, httpVersion] = httpBrowserString.split("|");
        let browserObject;
        if (browserString === constants_1.MISSING_VALUE_DATASET_TOKEN) {
          browserObject = { name: constants_1.MISSING_VALUE_DATASET_TOKEN };
        } else {
          browserObject = this.prepareBrowserObject(browserString);
        }
        return {
          ...browserObject,
          httpVersion,
          completeString: httpBrowserString
        };
      }
      /**
       * Extract structured information about a browser in the form of an object from browserString.
       * @param browserString A string containing the browser name and version, e.g. `chrome/88.0.4324.182`.
       */
      prepareBrowserObject(browserString) {
        const nameVersionSplit = browserString.split("/");
        const versionSplit = nameVersionSplit[1].split(".");
        const preparedVersion = [];
        for (const versionPart of versionSplit) {
          preparedVersion.push(parseInt(versionPart, 10));
        }
        return {
          name: nameVersionSplit[0],
          version: preparedVersion,
          completeString: browserString
        };
      }
      /**
       * Returns a new object containing header names ordered by their appearance in the given browser.
       * @param headers Non-normalized request headers
       * @returns Correct header order for the given browser.
       */
      getOrderFromUserAgent(headers) {
        const userAgent = (0, utils_1.getUserAgent)(headers);
        const browser = (0, utils_1.getBrowser)(userAgent);
        if (!browser) {
          return [];
        }
        return this.headersOrder[browser] ?? [];
      }
    };
    exports.HeaderGenerator = HeaderGenerator2;
  }
});

// ../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/presets.js
var require_presets = __commonJS({
  "../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/presets.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.MODERN_IOS = exports.MODERN_ANDROID = exports.MODERN_MACOS_CHROME = exports.MODERN_MACOS_FIREFOX = exports.MODERN_MACOS = exports.MODERN_WINDOWS_CHROME = exports.MODERN_WINDOWS_FIREFOX = exports.MODERN_WINDOWS = exports.MODERN_LINUX_CHROME = exports.MODERN_LINUX_FIREFOX = exports.MODERN_LINUX = exports.MODERN_MOBILE = exports.MODERN_DESKTOP = void 0;
    exports.MODERN_DESKTOP = {
      browserListQuery: "last 5 versions"
    };
    exports.MODERN_MOBILE = {
      ...exports.MODERN_DESKTOP,
      devices: ["mobile"]
    };
    exports.MODERN_LINUX = {
      ...exports.MODERN_DESKTOP,
      operatingSystems: ["linux"]
    };
    exports.MODERN_LINUX_FIREFOX = {
      browserListQuery: "last 5 firefox versions",
      operatingSystems: ["linux"]
    };
    exports.MODERN_LINUX_CHROME = {
      browserListQuery: "last 5 chrome versions",
      operatingSystems: ["linux"]
    };
    exports.MODERN_WINDOWS = {
      ...exports.MODERN_DESKTOP,
      operatingSystems: ["windows"]
    };
    exports.MODERN_WINDOWS_FIREFOX = {
      browserListQuery: "last 5 firefox versions",
      operatingSystems: ["windows"]
    };
    exports.MODERN_WINDOWS_CHROME = {
      browserListQuery: "last 5 chrome versions",
      operatingSystems: ["windows"]
    };
    exports.MODERN_MACOS = {
      ...exports.MODERN_DESKTOP,
      operatingSystems: ["macos"]
    };
    exports.MODERN_MACOS_FIREFOX = {
      browserListQuery: "last 5 firefox versions",
      operatingSystems: ["macos"]
    };
    exports.MODERN_MACOS_CHROME = {
      browserListQuery: "last 5 chrome versions",
      operatingSystems: ["macos"]
    };
    exports.MODERN_ANDROID = {
      ...exports.MODERN_MOBILE,
      operatingSystems: ["android"]
    };
    exports.MODERN_IOS = {
      ...exports.MODERN_MOBILE,
      operatingSystems: ["ios"]
    };
  }
});

// ../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/index.js
var require_header_generator2 = __commonJS({
  "../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.PRESETS = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_header_generator(), exports);
    exports.PRESETS = tslib_1.__importStar(require_presets());
  }
});

// ../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/index.mjs
var import_index, HeaderGenerator, PRESETS, headerGeneratorOptionsShape;
var init_header_generator = __esm({
  "../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/index.mjs"() {
    import_index = __toESM(require_header_generator2(), 1);
    HeaderGenerator = import_index.default.HeaderGenerator;
    PRESETS = import_index.default.PRESETS;
    headerGeneratorOptionsShape = import_index.default.headerGeneratorOptionsShape;
  }
});

// ../../node_modules/.pnpm/quick-lru@7.3.0/node_modules/quick-lru/index.js
var QuickLRU;
var init_quick_lru = __esm({
  "../../node_modules/.pnpm/quick-lru@7.3.0/node_modules/quick-lru/index.js"() {
    QuickLRU = class extends Map {
      #size = 0;
      #cache = /* @__PURE__ */ new Map();
      #oldCache = /* @__PURE__ */ new Map();
      #maxSize;
      #maxAge;
      #onEviction;
      constructor(options = {}) {
        super();
        if (!(options.maxSize && options.maxSize > 0)) {
          throw new TypeError("`maxSize` must be a number greater than 0");
        }
        if (typeof options.maxAge === "number" && options.maxAge === 0) {
          throw new TypeError("`maxAge` must be a number greater than 0");
        }
        this.#maxSize = options.maxSize;
        this.#maxAge = options.maxAge || Number.POSITIVE_INFINITY;
        this.#onEviction = options.onEviction;
      }
      // For tests.
      get __oldCache() {
        return this.#oldCache;
      }
      #emitEvictions(cache2) {
        if (typeof this.#onEviction !== "function") {
          return;
        }
        for (const [key, item] of cache2) {
          this.#onEviction(key, item.value);
        }
      }
      #deleteIfExpired(key, item) {
        if (typeof item.expiry === "number" && item.expiry <= Date.now()) {
          if (typeof this.#onEviction === "function") {
            this.#onEviction(key, item.value);
          }
          return this.delete(key);
        }
        return false;
      }
      #getOrDeleteIfExpired(key, item) {
        const deleted = this.#deleteIfExpired(key, item);
        if (deleted === false) {
          return item.value;
        }
      }
      #getItemValue(key, item) {
        return item.expiry ? this.#getOrDeleteIfExpired(key, item) : item.value;
      }
      #peek(key, cache2) {
        const item = cache2.get(key);
        return this.#getItemValue(key, item);
      }
      #set(key, value2) {
        this.#cache.set(key, value2);
        this.#size++;
        if (this.#size >= this.#maxSize) {
          this.#size = 0;
          this.#emitEvictions(this.#oldCache);
          this.#oldCache = this.#cache;
          this.#cache = /* @__PURE__ */ new Map();
        }
      }
      #moveToRecent(key, item) {
        this.#oldCache.delete(key);
        this.#set(key, item);
      }
      *#entriesAscending() {
        for (const item of this.#oldCache) {
          const [key, value2] = item;
          if (!this.#cache.has(key)) {
            const deleted = this.#deleteIfExpired(key, value2);
            if (deleted === false) {
              yield item;
            }
          }
        }
        for (const item of this.#cache) {
          const [key, value2] = item;
          const deleted = this.#deleteIfExpired(key, value2);
          if (deleted === false) {
            yield item;
          }
        }
      }
      get(key) {
        if (this.#cache.has(key)) {
          const item = this.#cache.get(key);
          return this.#getItemValue(key, item);
        }
        if (this.#oldCache.has(key)) {
          const item = this.#oldCache.get(key);
          if (this.#deleteIfExpired(key, item) === false) {
            this.#moveToRecent(key, item);
            return item.value;
          }
        }
      }
      set(key, value2, { maxAge = this.#maxAge } = {}) {
        const expiry = typeof maxAge === "number" && maxAge !== Number.POSITIVE_INFINITY ? Date.now() + maxAge : void 0;
        if (this.#cache.has(key)) {
          this.#cache.set(key, {
            value: value2,
            expiry
          });
        } else {
          this.#set(key, { value: value2, expiry });
        }
        return this;
      }
      has(key) {
        if (this.#cache.has(key)) {
          return !this.#deleteIfExpired(key, this.#cache.get(key));
        }
        if (this.#oldCache.has(key)) {
          return !this.#deleteIfExpired(key, this.#oldCache.get(key));
        }
        return false;
      }
      peek(key) {
        if (this.#cache.has(key)) {
          return this.#peek(key, this.#cache);
        }
        if (this.#oldCache.has(key)) {
          return this.#peek(key, this.#oldCache);
        }
      }
      expiresIn(key) {
        const item = this.#cache.get(key) ?? this.#oldCache.get(key);
        if (item) {
          return item.expiry ? item.expiry - Date.now() : Number.POSITIVE_INFINITY;
        }
      }
      delete(key) {
        const deleted = this.#cache.delete(key);
        if (deleted) {
          this.#size--;
        }
        return this.#oldCache.delete(key) || deleted;
      }
      clear() {
        this.#cache.clear();
        this.#oldCache.clear();
        this.#size = 0;
      }
      resize(newSize) {
        if (!(newSize && newSize > 0)) {
          throw new TypeError("`maxSize` must be a number greater than 0");
        }
        const items = [...this.#entriesAscending()];
        const removeCount = items.length - newSize;
        if (removeCount < 0) {
          this.#cache = new Map(items);
          this.#oldCache = /* @__PURE__ */ new Map();
          this.#size = items.length;
        } else {
          if (removeCount > 0) {
            this.#emitEvictions(items.slice(0, removeCount));
          }
          this.#oldCache = new Map(items.slice(removeCount));
          this.#cache = /* @__PURE__ */ new Map();
          this.#size = 0;
        }
        this.#maxSize = newSize;
      }
      evict(count = 1) {
        const requested = Number(count);
        if (!requested || requested <= 0) {
          return;
        }
        const items = [...this.#entriesAscending()];
        const evictCount = Math.trunc(Math.min(requested, Math.max(items.length - 1, 0)));
        if (evictCount <= 0) {
          return;
        }
        this.#emitEvictions(items.slice(0, evictCount));
        this.#oldCache = new Map(items.slice(evictCount));
        this.#cache = /* @__PURE__ */ new Map();
        this.#size = 0;
      }
      *keys() {
        for (const [key] of this) {
          yield key;
        }
      }
      *values() {
        for (const [, value2] of this) {
          yield value2;
        }
      }
      *[Symbol.iterator]() {
        for (const item of this.#cache) {
          const [key, value2] = item;
          const deleted = this.#deleteIfExpired(key, value2);
          if (deleted === false) {
            yield [key, value2.value];
          }
        }
        for (const item of this.#oldCache) {
          const [key, value2] = item;
          if (!this.#cache.has(key)) {
            const deleted = this.#deleteIfExpired(key, value2);
            if (deleted === false) {
              yield [key, value2.value];
            }
          }
        }
      }
      *entriesDescending() {
        let items = [...this.#cache];
        for (let i5 = items.length - 1; i5 >= 0; --i5) {
          const item = items[i5];
          const [key, value2] = item;
          const deleted = this.#deleteIfExpired(key, value2);
          if (deleted === false) {
            yield [key, value2.value];
          }
        }
        items = [...this.#oldCache];
        for (let i5 = items.length - 1; i5 >= 0; --i5) {
          const item = items[i5];
          const [key, value2] = item;
          if (!this.#cache.has(key)) {
            const deleted = this.#deleteIfExpired(key, value2);
            if (deleted === false) {
              yield [key, value2.value];
            }
          }
        }
      }
      *entriesAscending() {
        for (const [key, value2] of this.#entriesAscending()) {
          yield [key, value2.value];
        }
      }
      get size() {
        if (!this.#size) {
          return this.#oldCache.size;
        }
        let oldCacheSize = 0;
        for (const key of this.#oldCache.keys()) {
          if (!this.#cache.has(key)) {
            oldCacheSize++;
          }
        }
        return Math.min(this.#size + oldCacheSize, this.#maxSize);
      }
      get maxSize() {
        return this.#maxSize;
      }
      get maxAge() {
        return this.#maxAge;
      }
      entries() {
        return this.entriesAscending();
      }
      forEach(callbackFunction, thisArgument = this) {
        for (const [key, value2] of this.entriesAscending()) {
          callbackFunction.call(thisArgument, value2, key, this);
        }
      }
      get [Symbol.toStringTag]() {
        return "QuickLRU";
      }
      toString() {
        return `QuickLRU(${this.size}/${this.maxSize})`;
      }
      [Symbol.for("nodejs.util.inspect.custom")]() {
        return this.toString();
      }
    };
  }
});

// ../../node_modules/.pnpm/callsites@4.2.0/node_modules/callsites/index.js
function callsites() {
  const _prepareStackTrace = Error.prepareStackTrace;
  try {
    let result = [];
    Error.prepareStackTrace = (_, callSites) => {
      const callSitesWithoutCurrent = callSites.slice(1);
      result = callSitesWithoutCurrent;
      return callSitesWithoutCurrent;
    };
    new Error().stack;
    return result;
  } finally {
    Error.prepareStackTrace = _prepareStackTrace;
  }
}
var init_callsites = __esm({
  "../../node_modules/.pnpm/callsites@4.2.0/node_modules/callsites/index.js"() {
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/is-valid-identifier.js
var identifierRegex, reservedSet, isValidIdentifier, is_valid_identifier_default;
var init_is_valid_identifier = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/is-valid-identifier.js"() {
    identifierRegex = /^[a-z$_][$\w]*$/i;
    reservedSet = /* @__PURE__ */ new Set([
      "undefined",
      "null",
      "true",
      "false",
      "super",
      "this",
      "Infinity",
      "NaN"
    ]);
    isValidIdentifier = (string) => Boolean(string?.length > 0 && !reservedSet.has(string) && identifierRegex.test(string));
    is_valid_identifier_default = isValidIdentifier;
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/node/is-node.js
var is_node_default;
var init_is_node = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/node/is-node.js"() {
    is_node_default = Boolean(process?.versions?.node);
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/infer-label.js
import fs from "node:fs";
var labelRegex, inferLabel;
var init_infer_label = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/infer-label.js"() {
    init_is_valid_identifier();
    init_is_node();
    labelRegex = /^.*?\((?<label>.*?)[,)]/;
    inferLabel = (callsites2) => {
      if (!is_node_default) {
        return;
      }
      const functionCallStackFrame = callsites2[1];
      if (!functionCallStackFrame) {
        return;
      }
      const fileName = functionCallStackFrame.getFileName();
      const lineNumber = functionCallStackFrame.getLineNumber();
      const columnNumber = functionCallStackFrame.getColumnNumber();
      if (fileName === null || lineNumber === null || columnNumber === null) {
        return;
      }
      let content = [];
      try {
        content = fs.readFileSync(fileName, "utf8").split("\n");
      } catch {
        return;
      }
      let line2 = content[lineNumber - 1];
      if (!line2) {
        return;
      }
      line2 = line2.slice(columnNumber - 1);
      const match = labelRegex.exec(line2);
      const token = match?.groups?.["label"];
      if (!token) {
        return;
      }
      if (is_valid_identifier_default(token) || is_valid_identifier_default(token.split(".").pop() ?? "")) {
        return token;
      }
      return;
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/base-predicate.js
var testSymbol, isPredicate;
var init_base_predicate = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/base-predicate.js"() {
    testSymbol = Symbol("test");
    isPredicate = (value2) => Boolean(value2?.[testSymbol]);
  }
});

// ../../node_modules/.pnpm/@sindresorhus+is@5.6.0/node_modules/@sindresorhus/is/dist/index.js
function isTypedArrayName2(name) {
  return typedArrayTypeNames2.includes(name);
}
function isObjectTypeName2(name) {
  return objectTypeNames2.includes(name);
}
function isPrimitiveTypeName2(name) {
  return primitiveTypeNames2.includes(name);
}
function isOfType(type) {
  return (value2) => typeof value2 === type;
}
function is2(value2) {
  if (value2 === null) {
    return "null";
  }
  switch (typeof value2) {
    case "undefined": {
      return "undefined";
    }
    case "string": {
      return "string";
    }
    case "number": {
      return Number.isNaN(value2) ? "NaN" : "number";
    }
    case "boolean": {
      return "boolean";
    }
    case "function": {
      return "Function";
    }
    case "bigint": {
      return "bigint";
    }
    case "symbol": {
      return "symbol";
    }
    default:
  }
  if (is2.observable(value2)) {
    return "Observable";
  }
  if (is2.array(value2)) {
    return "Array";
  }
  if (is2.buffer(value2)) {
    return "Buffer";
  }
  const tagType = getObjectType2(value2);
  if (tagType) {
    return tagType;
  }
  if (value2 instanceof String || value2 instanceof Boolean || value2 instanceof Number) {
    throw new TypeError("Please don't use object wrappers for primitive types");
  }
  return "Object";
}
var typedArrayTypeNames2, objectTypeNames2, primitiveTypeNames2, toString2, getObjectType2, isObjectOfType, isNumberType, hasPromiseApi2, isValidLength2, NODE_TYPE_ELEMENT2, DOM_PROPERTIES_TO_CHECK2, isAbsoluteMod2, isWhiteSpaceString, predicateOnArray2, assertType, assert2, dist_default2;
var init_dist4 = __esm({
  "../../node_modules/.pnpm/@sindresorhus+is@5.6.0/node_modules/@sindresorhus/is/dist/index.js"() {
    typedArrayTypeNames2 = [
      "Int8Array",
      "Uint8Array",
      "Uint8ClampedArray",
      "Int16Array",
      "Uint16Array",
      "Int32Array",
      "Uint32Array",
      "Float32Array",
      "Float64Array",
      "BigInt64Array",
      "BigUint64Array"
    ];
    objectTypeNames2 = [
      "Function",
      "Generator",
      "AsyncGenerator",
      "GeneratorFunction",
      "AsyncGeneratorFunction",
      "AsyncFunction",
      "Observable",
      "Array",
      "Buffer",
      "Blob",
      "Object",
      "RegExp",
      "Date",
      "Error",
      "Map",
      "Set",
      "WeakMap",
      "WeakSet",
      "WeakRef",
      "ArrayBuffer",
      "SharedArrayBuffer",
      "DataView",
      "Promise",
      "URL",
      "FormData",
      "URLSearchParams",
      "HTMLElement",
      "NaN",
      ...typedArrayTypeNames2
    ];
    primitiveTypeNames2 = [
      "null",
      "undefined",
      "string",
      "number",
      "bigint",
      "boolean",
      "symbol"
    ];
    ({ toString: toString2 } = Object.prototype);
    getObjectType2 = (value2) => {
      const objectTypeName = toString2.call(value2).slice(8, -1);
      if (/HTML\w+Element/.test(objectTypeName) && is2.domElement(value2)) {
        return "HTMLElement";
      }
      if (isObjectTypeName2(objectTypeName)) {
        return objectTypeName;
      }
      return void 0;
    };
    isObjectOfType = (type) => (value2) => getObjectType2(value2) === type;
    is2.undefined = isOfType("undefined");
    is2.string = isOfType("string");
    isNumberType = isOfType("number");
    is2.number = (value2) => isNumberType(value2) && !is2.nan(value2);
    is2.positiveNumber = (value2) => is2.number(value2) && value2 > 0;
    is2.negativeNumber = (value2) => is2.number(value2) && value2 < 0;
    is2.bigint = isOfType("bigint");
    is2.function_ = isOfType("function");
    is2.null_ = (value2) => value2 === null;
    is2.class_ = (value2) => is2.function_(value2) && value2.toString().startsWith("class ");
    is2.boolean = (value2) => value2 === true || value2 === false;
    is2.symbol = isOfType("symbol");
    is2.numericString = (value2) => is2.string(value2) && !is2.emptyStringOrWhitespace(value2) && !Number.isNaN(Number(value2));
    is2.array = (value2, assertion) => {
      if (!Array.isArray(value2)) {
        return false;
      }
      if (!is2.function_(assertion)) {
        return true;
      }
      return value2.every((element) => assertion(element));
    };
    is2.buffer = (value2) => value2?.constructor?.isBuffer?.(value2) ?? false;
    is2.blob = (value2) => isObjectOfType("Blob")(value2);
    is2.nullOrUndefined = (value2) => is2.null_(value2) || is2.undefined(value2);
    is2.object = (value2) => !is2.null_(value2) && (typeof value2 === "object" || is2.function_(value2));
    is2.iterable = (value2) => is2.function_(value2?.[Symbol.iterator]);
    is2.asyncIterable = (value2) => is2.function_(value2?.[Symbol.asyncIterator]);
    is2.generator = (value2) => is2.iterable(value2) && is2.function_(value2?.next) && is2.function_(value2?.throw);
    is2.asyncGenerator = (value2) => is2.asyncIterable(value2) && is2.function_(value2.next) && is2.function_(value2.throw);
    is2.nativePromise = (value2) => isObjectOfType("Promise")(value2);
    hasPromiseApi2 = (value2) => is2.function_(value2?.then) && is2.function_(value2?.catch);
    is2.promise = (value2) => is2.nativePromise(value2) || hasPromiseApi2(value2);
    is2.generatorFunction = isObjectOfType("GeneratorFunction");
    is2.asyncGeneratorFunction = (value2) => getObjectType2(value2) === "AsyncGeneratorFunction";
    is2.asyncFunction = (value2) => getObjectType2(value2) === "AsyncFunction";
    is2.boundFunction = (value2) => is2.function_(value2) && !value2.hasOwnProperty("prototype");
    is2.regExp = isObjectOfType("RegExp");
    is2.date = isObjectOfType("Date");
    is2.error = isObjectOfType("Error");
    is2.map = (value2) => isObjectOfType("Map")(value2);
    is2.set = (value2) => isObjectOfType("Set")(value2);
    is2.weakMap = (value2) => isObjectOfType("WeakMap")(value2);
    is2.weakSet = (value2) => isObjectOfType("WeakSet")(value2);
    is2.weakRef = (value2) => isObjectOfType("WeakRef")(value2);
    is2.int8Array = isObjectOfType("Int8Array");
    is2.uint8Array = isObjectOfType("Uint8Array");
    is2.uint8ClampedArray = isObjectOfType("Uint8ClampedArray");
    is2.int16Array = isObjectOfType("Int16Array");
    is2.uint16Array = isObjectOfType("Uint16Array");
    is2.int32Array = isObjectOfType("Int32Array");
    is2.uint32Array = isObjectOfType("Uint32Array");
    is2.float32Array = isObjectOfType("Float32Array");
    is2.float64Array = isObjectOfType("Float64Array");
    is2.bigInt64Array = isObjectOfType("BigInt64Array");
    is2.bigUint64Array = isObjectOfType("BigUint64Array");
    is2.arrayBuffer = isObjectOfType("ArrayBuffer");
    is2.sharedArrayBuffer = isObjectOfType("SharedArrayBuffer");
    is2.dataView = isObjectOfType("DataView");
    is2.enumCase = (value2, targetEnum) => Object.values(targetEnum).includes(value2);
    is2.directInstanceOf = (instance, class_) => Object.getPrototypeOf(instance) === class_.prototype;
    is2.urlInstance = (value2) => isObjectOfType("URL")(value2);
    is2.urlString = (value2) => {
      if (!is2.string(value2)) {
        return false;
      }
      try {
        new URL(value2);
        return true;
      } catch {
        return false;
      }
    };
    is2.truthy = (value2) => Boolean(value2);
    is2.falsy = (value2) => !value2;
    is2.nan = (value2) => Number.isNaN(value2);
    is2.primitive = (value2) => is2.null_(value2) || isPrimitiveTypeName2(typeof value2);
    is2.integer = (value2) => Number.isInteger(value2);
    is2.safeInteger = (value2) => Number.isSafeInteger(value2);
    is2.plainObject = (value2) => {
      if (typeof value2 !== "object" || value2 === null) {
        return false;
      }
      const prototype2 = Object.getPrototypeOf(value2);
      return (prototype2 === null || prototype2 === Object.prototype || Object.getPrototypeOf(prototype2) === null) && !(Symbol.toStringTag in value2) && !(Symbol.iterator in value2);
    };
    is2.typedArray = (value2) => isTypedArrayName2(getObjectType2(value2));
    isValidLength2 = (value2) => is2.safeInteger(value2) && value2 >= 0;
    is2.arrayLike = (value2) => !is2.nullOrUndefined(value2) && !is2.function_(value2) && isValidLength2(value2.length);
    is2.tupleLike = (value2, guards) => {
      if (is2.array(guards) && is2.array(value2) && guards.length === value2.length) {
        return guards.every((guard, index2) => guard(value2[index2]));
      }
      return false;
    };
    is2.inRange = (value2, range2) => {
      if (is2.number(range2)) {
        return value2 >= Math.min(0, range2) && value2 <= Math.max(range2, 0);
      }
      if (is2.array(range2) && range2.length === 2) {
        return value2 >= Math.min(...range2) && value2 <= Math.max(...range2);
      }
      throw new TypeError(`Invalid range: ${JSON.stringify(range2)}`);
    };
    NODE_TYPE_ELEMENT2 = 1;
    DOM_PROPERTIES_TO_CHECK2 = [
      "innerHTML",
      "ownerDocument",
      "style",
      "attributes",
      "nodeValue"
    ];
    is2.domElement = (value2) => is2.object(value2) && value2.nodeType === NODE_TYPE_ELEMENT2 && is2.string(value2.nodeName) && !is2.plainObject(value2) && DOM_PROPERTIES_TO_CHECK2.every((property) => property in value2);
    is2.observable = (value2) => {
      if (!value2) {
        return false;
      }
      if (value2 === value2[Symbol.observable]?.()) {
        return true;
      }
      if (value2 === value2["@@observable"]?.()) {
        return true;
      }
      return false;
    };
    is2.nodeStream = (value2) => is2.object(value2) && is2.function_(value2.pipe) && !is2.observable(value2);
    is2.infinite = (value2) => value2 === Number.POSITIVE_INFINITY || value2 === Number.NEGATIVE_INFINITY;
    isAbsoluteMod2 = (remainder) => (value2) => is2.integer(value2) && Math.abs(value2 % 2) === remainder;
    is2.evenInteger = isAbsoluteMod2(0);
    is2.oddInteger = isAbsoluteMod2(1);
    is2.emptyArray = (value2) => is2.array(value2) && value2.length === 0;
    is2.nonEmptyArray = (value2) => is2.array(value2) && value2.length > 0;
    is2.emptyString = (value2) => is2.string(value2) && value2.length === 0;
    isWhiteSpaceString = (value2) => is2.string(value2) && !/\S/.test(value2);
    is2.emptyStringOrWhitespace = (value2) => is2.emptyString(value2) || isWhiteSpaceString(value2);
    is2.nonEmptyString = (value2) => is2.string(value2) && value2.length > 0;
    is2.nonEmptyStringAndNotWhitespace = (value2) => is2.string(value2) && !is2.emptyStringOrWhitespace(value2);
    is2.emptyObject = (value2) => is2.object(value2) && !is2.map(value2) && !is2.set(value2) && Object.keys(value2).length === 0;
    is2.nonEmptyObject = (value2) => is2.object(value2) && !is2.map(value2) && !is2.set(value2) && Object.keys(value2).length > 0;
    is2.emptySet = (value2) => is2.set(value2) && value2.size === 0;
    is2.nonEmptySet = (value2) => is2.set(value2) && value2.size > 0;
    is2.emptyMap = (value2) => is2.map(value2) && value2.size === 0;
    is2.nonEmptyMap = (value2) => is2.map(value2) && value2.size > 0;
    is2.propertyKey = (value2) => is2.any([is2.string, is2.number, is2.symbol], value2);
    is2.formData = (value2) => isObjectOfType("FormData")(value2);
    is2.urlSearchParams = (value2) => isObjectOfType("URLSearchParams")(value2);
    predicateOnArray2 = (method, predicate, values) => {
      if (!is2.function_(predicate)) {
        throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);
      }
      if (values.length === 0) {
        throw new TypeError("Invalid number of values");
      }
      return method.call(values, predicate);
    };
    is2.any = (predicate, ...values) => {
      const predicates3 = is2.array(predicate) ? predicate : [predicate];
      return predicates3.some((singlePredicate) => predicateOnArray2(Array.prototype.some, singlePredicate, values));
    };
    is2.all = (predicate, ...values) => predicateOnArray2(Array.prototype.every, predicate, values);
    assertType = (condition, description, value2, options = {}) => {
      if (!condition) {
        const { multipleValues } = options;
        const valuesMessage = multipleValues ? `received values of types ${[
          ...new Set(value2.map((singleValue) => `\`${is2(singleValue)}\``))
        ].join(", ")}` : `received value of type \`${is2(value2)}\``;
        throw new TypeError(`Expected value which is \`${description}\`, ${valuesMessage}.`);
      }
    };
    assert2 = {
      // Unknowns.
      undefined: (value2) => assertType(is2.undefined(value2), "undefined", value2),
      string: (value2) => assertType(is2.string(value2), "string", value2),
      number: (value2) => assertType(is2.number(value2), "number", value2),
      positiveNumber: (value2) => assertType(is2.positiveNumber(value2), "positive number", value2),
      negativeNumber: (value2) => assertType(is2.negativeNumber(value2), "negative number", value2),
      bigint: (value2) => assertType(is2.bigint(value2), "bigint", value2),
      // eslint-disable-next-line @typescript-eslint/ban-types
      function_: (value2) => assertType(is2.function_(value2), "Function", value2),
      null_: (value2) => assertType(is2.null_(value2), "null", value2),
      class_: (value2) => assertType(is2.class_(value2), "Class", value2),
      boolean: (value2) => assertType(is2.boolean(value2), "boolean", value2),
      symbol: (value2) => assertType(is2.symbol(value2), "symbol", value2),
      numericString: (value2) => assertType(is2.numericString(value2), "string with a number", value2),
      array: (value2, assertion) => {
        const assert3 = assertType;
        assert3(is2.array(value2), "Array", value2);
        if (assertion) {
          value2.forEach(assertion);
        }
      },
      buffer: (value2) => assertType(is2.buffer(value2), "Buffer", value2),
      blob: (value2) => assertType(is2.blob(value2), "Blob", value2),
      nullOrUndefined: (value2) => assertType(is2.nullOrUndefined(value2), "null or undefined", value2),
      object: (value2) => assertType(is2.object(value2), "Object", value2),
      iterable: (value2) => assertType(is2.iterable(value2), "Iterable", value2),
      asyncIterable: (value2) => assertType(is2.asyncIterable(value2), "AsyncIterable", value2),
      generator: (value2) => assertType(is2.generator(value2), "Generator", value2),
      asyncGenerator: (value2) => assertType(is2.asyncGenerator(value2), "AsyncGenerator", value2),
      nativePromise: (value2) => assertType(is2.nativePromise(value2), "native Promise", value2),
      promise: (value2) => assertType(is2.promise(value2), "Promise", value2),
      generatorFunction: (value2) => assertType(is2.generatorFunction(value2), "GeneratorFunction", value2),
      asyncGeneratorFunction: (value2) => assertType(is2.asyncGeneratorFunction(value2), "AsyncGeneratorFunction", value2),
      // eslint-disable-next-line @typescript-eslint/ban-types
      asyncFunction: (value2) => assertType(is2.asyncFunction(value2), "AsyncFunction", value2),
      // eslint-disable-next-line @typescript-eslint/ban-types
      boundFunction: (value2) => assertType(is2.boundFunction(value2), "Function", value2),
      regExp: (value2) => assertType(is2.regExp(value2), "RegExp", value2),
      date: (value2) => assertType(is2.date(value2), "Date", value2),
      error: (value2) => assertType(is2.error(value2), "Error", value2),
      map: (value2) => assertType(is2.map(value2), "Map", value2),
      set: (value2) => assertType(is2.set(value2), "Set", value2),
      weakMap: (value2) => assertType(is2.weakMap(value2), "WeakMap", value2),
      weakSet: (value2) => assertType(is2.weakSet(value2), "WeakSet", value2),
      weakRef: (value2) => assertType(is2.weakRef(value2), "WeakRef", value2),
      int8Array: (value2) => assertType(is2.int8Array(value2), "Int8Array", value2),
      uint8Array: (value2) => assertType(is2.uint8Array(value2), "Uint8Array", value2),
      uint8ClampedArray: (value2) => assertType(is2.uint8ClampedArray(value2), "Uint8ClampedArray", value2),
      int16Array: (value2) => assertType(is2.int16Array(value2), "Int16Array", value2),
      uint16Array: (value2) => assertType(is2.uint16Array(value2), "Uint16Array", value2),
      int32Array: (value2) => assertType(is2.int32Array(value2), "Int32Array", value2),
      uint32Array: (value2) => assertType(is2.uint32Array(value2), "Uint32Array", value2),
      float32Array: (value2) => assertType(is2.float32Array(value2), "Float32Array", value2),
      float64Array: (value2) => assertType(is2.float64Array(value2), "Float64Array", value2),
      bigInt64Array: (value2) => assertType(is2.bigInt64Array(value2), "BigInt64Array", value2),
      bigUint64Array: (value2) => assertType(is2.bigUint64Array(value2), "BigUint64Array", value2),
      arrayBuffer: (value2) => assertType(is2.arrayBuffer(value2), "ArrayBuffer", value2),
      sharedArrayBuffer: (value2) => assertType(is2.sharedArrayBuffer(value2), "SharedArrayBuffer", value2),
      dataView: (value2) => assertType(is2.dataView(value2), "DataView", value2),
      enumCase: (value2, targetEnum) => assertType(is2.enumCase(value2, targetEnum), "EnumCase", value2),
      urlInstance: (value2) => assertType(is2.urlInstance(value2), "URL", value2),
      urlString: (value2) => assertType(is2.urlString(value2), "string with a URL", value2),
      truthy: (value2) => assertType(is2.truthy(value2), "truthy", value2),
      falsy: (value2) => assertType(is2.falsy(value2), "falsy", value2),
      nan: (value2) => assertType(is2.nan(value2), "NaN", value2),
      primitive: (value2) => assertType(is2.primitive(value2), "primitive", value2),
      integer: (value2) => assertType(is2.integer(value2), "integer", value2),
      safeInteger: (value2) => assertType(is2.safeInteger(value2), "integer", value2),
      plainObject: (value2) => assertType(is2.plainObject(value2), "plain object", value2),
      typedArray: (value2) => assertType(is2.typedArray(value2), "TypedArray", value2),
      arrayLike: (value2) => assertType(is2.arrayLike(value2), "array-like", value2),
      tupleLike: (value2, guards) => assertType(is2.tupleLike(value2, guards), "tuple-like", value2),
      domElement: (value2) => assertType(is2.domElement(value2), "HTMLElement", value2),
      observable: (value2) => assertType(is2.observable(value2), "Observable", value2),
      nodeStream: (value2) => assertType(is2.nodeStream(value2), "Node.js Stream", value2),
      infinite: (value2) => assertType(is2.infinite(value2), "infinite number", value2),
      emptyArray: (value2) => assertType(is2.emptyArray(value2), "empty array", value2),
      nonEmptyArray: (value2) => assertType(is2.nonEmptyArray(value2), "non-empty array", value2),
      emptyString: (value2) => assertType(is2.emptyString(value2), "empty string", value2),
      emptyStringOrWhitespace: (value2) => assertType(is2.emptyStringOrWhitespace(value2), "empty string or whitespace", value2),
      nonEmptyString: (value2) => assertType(is2.nonEmptyString(value2), "non-empty string", value2),
      nonEmptyStringAndNotWhitespace: (value2) => assertType(is2.nonEmptyStringAndNotWhitespace(value2), "non-empty string and not whitespace", value2),
      emptyObject: (value2) => assertType(is2.emptyObject(value2), "empty object", value2),
      nonEmptyObject: (value2) => assertType(is2.nonEmptyObject(value2), "non-empty object", value2),
      emptySet: (value2) => assertType(is2.emptySet(value2), "empty set", value2),
      nonEmptySet: (value2) => assertType(is2.nonEmptySet(value2), "non-empty set", value2),
      emptyMap: (value2) => assertType(is2.emptyMap(value2), "empty map", value2),
      nonEmptyMap: (value2) => assertType(is2.nonEmptyMap(value2), "non-empty map", value2),
      propertyKey: (value2) => assertType(is2.propertyKey(value2), "PropertyKey", value2),
      formData: (value2) => assertType(is2.formData(value2), "FormData", value2),
      urlSearchParams: (value2) => assertType(is2.urlSearchParams(value2), "URLSearchParams", value2),
      // Numbers.
      evenInteger: (value2) => assertType(is2.evenInteger(value2), "even integer", value2),
      oddInteger: (value2) => assertType(is2.oddInteger(value2), "odd integer", value2),
      // Two arguments.
      directInstanceOf: (instance, class_) => assertType(is2.directInstanceOf(instance, class_), "T", instance),
      inRange: (value2, range2) => assertType(is2.inRange(value2, range2), "in range", value2),
      // Variadic functions.
      any: (predicate, ...values) => assertType(is2.any(predicate, ...values), "predicate returns truthy for any value", values, { multipleValues: true }),
      all: (predicate, ...values) => assertType(is2.all(predicate, ...values), "predicate returns truthy for all values", values, { multipleValues: true })
    };
    Object.defineProperties(is2, {
      class: {
        value: is2.class_
      },
      function: {
        value: is2.function_
      },
      null: {
        value: is2.null_
      }
    });
    Object.defineProperties(assert2, {
      class: {
        value: assert2.class_
      },
      function: {
        value: assert2.function_
      },
      null: {
        value: assert2.null_
      }
    });
    dist_default2 = is2;
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/generate-stack.js
var generateStackTrace;
var init_generate_stack = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/generate-stack.js"() {
    generateStackTrace = () => {
      const stack = new RangeError("INTERNAL_OW_ERROR").stack;
      return stack;
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/argument-error.js
var wrapStackTrace, ArgumentError;
var init_argument_error = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/argument-error.js"() {
    init_generate_stack();
    wrapStackTrace = (error, stack) => `${error.name}: ${error.message}
${stack}`;
    ArgumentError = class extends Error {
      constructor(message, context, errors = /* @__PURE__ */ new Map()) {
        super(message);
        Object.defineProperty(this, "validationErrors", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.name = "ArgumentError";
        if (Error.captureStackTrace) {
          Error.captureStackTrace(this, context);
        } else {
          this.stack = wrapStackTrace(this, generateStackTrace());
        }
        this.validationErrors = errors;
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/random-id.js
var randomId, random_id_default;
var init_random_id = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/random-id.js"() {
    randomId = () => Math.random().toString(16).slice(2);
    random_id_default = randomId;
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/operators/not.js
var not;
var init_not = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/operators/not.js"() {
    init_random_id();
    init_predicate();
    not = (predicate) => {
      const originalAddValidator = predicate.addValidator;
      predicate.addValidator = (validator) => {
        const { validator: fn, message, negatedMessage } = validator;
        const placeholder = random_id_default();
        validator.message = (value2, label) => negatedMessage ? negatedMessage(value2, label) : message(value2, placeholder).replace(/ to /, "$&not ").replace(placeholder, label);
        validator.validator = (value2) => !fn(value2);
        predicate[validatorSymbol].push(validator);
        predicate.addValidator = originalAddValidator;
        return predicate;
      };
      return predicate;
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/generate-argument-error-message.js
var generateArgumentErrorMessage;
var init_generate_argument_error_message = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/generate-argument-error-message.js"() {
    generateArgumentErrorMessage = (errors, isAny2 = false) => {
      const message = [];
      const errorArray = [...errors.entries()];
      const anyErrorWithoutOneItemOnly = errorArray.some(([, array]) => array.size !== 1);
      if (errorArray.length === 1) {
        const [, returnedErrors] = errorArray[0];
        if (!isAny2 && returnedErrors.size === 1) {
          const [errorMessage] = returnedErrors;
          return errorMessage;
        }
        for (const entry of returnedErrors) {
          message.push(`${isAny2 ? "  - " : ""}${entry}`);
        }
        return message.join("\n");
      }
      if (!anyErrorWithoutOneItemOnly) {
        return errorArray.map(([, [item]]) => `  - ${item}`).join("\n");
      }
      for (const [key, value2] of errorArray) {
        message.push(`Errors from the "${key}" predicate:`);
        for (const entry of value2) {
          message.push(`  - ${entry}`);
        }
      }
      return message.join("\n");
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/predicate.js
var validatorSymbol, Predicate;
var init_predicate = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/predicate.js"() {
    init_dist4();
    init_argument_error();
    init_not();
    init_generate_argument_error_message();
    init_base_predicate();
    validatorSymbol = Symbol("validators");
    Predicate = class {
      constructor(type, options = {}) {
        Object.defineProperty(this, "type", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: type
        });
        Object.defineProperty(this, "options", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: options
        });
        Object.defineProperty(this, "context", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {
            validators: []
          }
        });
        this.context = {
          ...this.context,
          ...this.options
        };
        const typeString = this.type.charAt(0).toLowerCase() + this.type.slice(1);
        this.addValidator({
          message: (value2, label) => {
            const label_ = label?.slice(this.type.length + 1);
            return `Expected ${label_ || "argument"} to be of type \`${this.type}\` but received type \`${Number.isNaN(value2) ? "NaN" : dist_default2(value2)}\``;
          },
          // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call
          validator: (value2) => dist_default2[typeString](value2)
        });
      }
      /**
      @hidden
      */
      [testSymbol](value2, main, label, idLabel) {
        const errors = /* @__PURE__ */ new Map();
        for (const { validator, message } of this.context.validators) {
          if (this.options.optional === true && value2 === void 0) {
            continue;
          }
          let result;
          try {
            result = validator(value2);
          } catch (error) {
            result = error;
          }
          if (result === true) {
            continue;
          }
          const label2 = dist_default2.function_(label) ? label() : label;
          const labelWithTick = label2 && idLabel ? `\`${label2}\`` : label2;
          const label_ = labelWithTick ? `${this.type} ${labelWithTick}` : this.type;
          const mapKey = label2 || this.type;
          const currentErrors = errors.get(mapKey);
          const errorMessage = message(value2, label_, result);
          if (currentErrors) {
            currentErrors.add(errorMessage);
          } else {
            errors.set(mapKey, /* @__PURE__ */ new Set([errorMessage]));
          }
        }
        if (errors.size > 0) {
          const message = generateArgumentErrorMessage(errors);
          throw new ArgumentError(message, main, errors);
        }
      }
      /**
      @hidden
      */
      get [validatorSymbol]() {
        return this.context.validators;
      }
      /**
      Invert the following validators.
      */
      get not() {
        return not(this);
      }
      /**
          Test if the value matches a custom validation function. The validation function should return an object containing a `validator` and `message`. If the `validator` is `false`, the validation fails and the `message` will be used as error message. If the `message` is a function, the function is invoked with the `label` as argument to let you further customize the error message.
      
          @param customValidator - Custom validation function.
          */
      validate(customValidator) {
        return this.addValidator({
          // eslint-disable-next-line @typescript-eslint/no-unsafe-return
          message: (_, label, error) => typeof error === "string" ? `(${label}) ${error}` : error(label),
          validator(value2) {
            const { message, validator } = customValidator(value2);
            if (validator) {
              return true;
            }
            return message;
          }
        });
      }
      /**
          Test if the value matches a custom validation function. The validation function should return `true` if the value passes the function. If the function either returns `false` or a string, the function fails and the string will be used as error message.
      
          @param validator - Validation function.
          */
      is(validator) {
        return this.addValidator({
          message: (value2, label, error) => error ? `(${label}) ${error}` : `Expected ${label} \`${value2}\` to pass custom validation function`,
          validator
        });
      }
      /**
          Provide a new error message to be thrown when the validation fails.
      
          @param newMessage - Either a string containing the new message or a function returning the new message.
      
          @example
          ```
          ow('🌈', 'unicorn', ow.string.equals('🦄').message('Expected unicorn, got rainbow'));
          //=> ArgumentError: Expected unicorn, got rainbow
          ```
      
          @example
          ```
          ow('🌈', ow.string.minLength(5).message((value, label) => `Expected ${label}, to have a minimum length of 5, got \`${value}\``));
          //=> ArgumentError: Expected string, to be have a minimum length of 5, got `🌈`
          ```
          */
      message(newMessage) {
        const { validators: validators4 } = this.context;
        validators4[validators4.length - 1].message = (value2, label) => {
          if (typeof newMessage === "function") {
            return newMessage(value2, label);
          }
          return newMessage;
        };
        return this;
      }
      /**
          Register a new validator.
      
          @param validator - Validator to register.
          */
      addValidator(validator) {
        this.context.validators.push(validator);
        return this;
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/string.js
var import_vali_date, StringPredicate;
var init_string = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/string.js"() {
    init_dist4();
    import_vali_date = __toESM(require_vali_date(), 1);
    init_predicate();
    StringPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("string", options);
      }
      /**
          Test a string to have a specific length.
      
          @param length - The length of the string.
          */
      length(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have length \`${length2}\`, got \`${value2}\``,
          validator: (value2) => value2.length === length2
        });
      }
      /**
          Test a string to have a minimum length.
      
          @param length - The minimum length of the string.
          */
      minLength(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a minimum length of \`${length2}\`, got \`${value2}\``,
          validator: (value2) => value2.length >= length2,
          negatedMessage: (value2, label) => `Expected ${label} to have a maximum length of \`${length2 - 1}\`, got \`${value2}\``
        });
      }
      /**
          Test a string to have a maximum length.
      
          @param length - The maximum length of the string.
          */
      maxLength(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a maximum length of \`${length2}\`, got \`${value2}\``,
          validator: (value2) => value2.length <= length2,
          negatedMessage: (value2, label) => `Expected ${label} to have a minimum length of \`${length2 + 1}\`, got \`${value2}\``
        });
      }
      /**
          Test a string against a regular expression.
      
          @param regex - The regular expression to match the value with.
          */
      matches(regex2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to match \`${regex2}\`, got \`${value2}\``,
          validator: (value2) => regex2.test(value2)
        });
      }
      /**
          Test a string to start with a specific value.
      
          @param searchString - The value that should be the start of the string.
          */
      startsWith(searchString) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to start with \`${searchString}\`, got \`${value2}\``,
          validator: (value2) => value2.startsWith(searchString)
        });
      }
      /**
          Test a string to end with a specific value.
      
          @param searchString - The value that should be the end of the string.
          */
      endsWith(searchString) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to end with \`${searchString}\`, got \`${value2}\``,
          validator: (value2) => value2.endsWith(searchString)
        });
      }
      /**
          Test a string to include a specific value.
      
          @param searchString - The value that should be included in the string.
          */
      includes(searchString) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to include \`${searchString}\`, got \`${value2}\``,
          validator: (value2) => value2.includes(searchString)
        });
      }
      /**
          Test if the string is an element of the provided list.
      
          @param list - List of possible values.
          */
      oneOf(list) {
        return this.addValidator({
          message(value2, label) {
            let printedList = JSON.stringify(list);
            if (list.length > 10) {
              const overflow = list.length - 10;
              printedList = JSON.stringify(list.slice(0, 10)).replace(/]$/, `,\u2026+${overflow} more]`);
            }
            return `Expected ${label} to be one of \`${printedList}\`, got \`${value2}\``;
          },
          validator: (value2) => list.includes(value2)
        });
      }
      /**
      Test a string to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be empty, got \`${value2}\``,
          validator: (value2) => value2 === ""
        });
      }
      /**
      Test a string to contain at least 1 non-whitespace character.
      */
      get nonBlank() {
        return this.addValidator({
          message(value2, label) {
            const madeVisible = value2.replace(/ /g, "\xB7").replace(/\f/g, "\\f").replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t").replace(/\v/g, "\\v");
            return `Expected ${label} to not be only whitespace, got \`${madeVisible}\``;
          },
          validator: (value2) => value2.trim() !== ""
        });
      }
      /**
      Test a string to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to not be empty`,
          validator: (value2) => value2 !== ""
        });
      }
      /**
          Test a string to be equal to a specified string.
      
          @param expected - Expected value to match.
          */
      equals(expected) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be equal to \`${expected}\`, got \`${value2}\``,
          validator: (value2) => value2 === expected
        });
      }
      /**
      Test a string to be alphanumeric.
      */
      get alphanumeric() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be alphanumeric, got \`${value2}\``,
          validator: (value2) => /^[a-z\d]+$/i.test(value2)
        });
      }
      /**
      Test a string to be alphabetical.
      */
      get alphabetical() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be alphabetical, got \`${value2}\``,
          validator: (value2) => /^[a-z]+$/gi.test(value2)
        });
      }
      /**
      Test a string to be numeric.
      */
      get numeric() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be numeric, got \`${value2}\``,
          validator: (value2) => /^[+-]?\d+$/i.test(value2)
        });
      }
      /**
      Test a string to be a valid date.
      */
      get date() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be a date, got \`${value2}\``,
          validator: import_vali_date.default
        });
      }
      /**
      Test a non-empty string to be lowercase. Matching both alphabetical & numbers.
      */
      get lowercase() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be lowercase, got \`${value2}\``,
          validator: (value2) => value2.trim() !== "" && value2 === value2.toLowerCase()
        });
      }
      /**
      Test a non-empty string to be uppercase. Matching both alphabetical & numbers.
      */
      get uppercase() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be uppercase, got \`${value2}\``,
          validator: (value2) => value2.trim() !== "" && value2 === value2.toUpperCase()
        });
      }
      /**
      Test a string to be a valid URL.
      */
      get url() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be a URL, got \`${value2}\``,
          validator: dist_default2.urlString
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/number.js
var NumberPredicate;
var init_number = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/number.js"() {
    init_dist4();
    init_predicate();
    NumberPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("number", options);
      }
      /**
          Test a number to be in a specified range.
      
          @param start - Start of the range.
          @param end - End of the range.
          */
      inRange(start2, end2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be in range [${start2}..${end2}], got ${value2}`,
          validator: (value2) => dist_default2.inRange(value2, [start2, end2])
        });
      }
      /**
          Test a number to be greater than the provided value.
      
          @param number - Minimum value.
          */
      greaterThan(number3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be greater than ${number3}, got ${value2}`,
          validator: (value2) => value2 > number3
        });
      }
      /**
          Test a number to be greater than or equal to the provided value.
      
          @param number - Minimum value.
          */
      greaterThanOrEqual(number3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be greater than or equal to ${number3}, got ${value2}`,
          validator: (value2) => value2 >= number3
        });
      }
      /**
          Test a number to be less than the provided value.
      
          @param number - Maximum value.
          */
      lessThan(number3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be less than ${number3}, got ${value2}`,
          validator: (value2) => value2 < number3
        });
      }
      /**
          Test a number to be less than or equal to the provided value.
      
          @param number - Minimum value.
          */
      lessThanOrEqual(number3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be less than or equal to ${number3}, got ${value2}`,
          validator: (value2) => value2 <= number3
        });
      }
      /**
          Test a number to be equal to a specified number.
      
          @param expected - Expected value to match.
          */
      equal(expected) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be equal to ${expected}, got ${value2}`,
          validator: (value2) => value2 === expected
        });
      }
      /**
          Test if a number is an element of the provided list.
      
          @param list - List of possible values.
          */
      oneOf(list) {
        return this.addValidator({
          message(value2, label) {
            let printedList = JSON.stringify(list);
            if (list.length > 10) {
              const overflow = list.length - 10;
              printedList = JSON.stringify(list.slice(0, 10)).replace(/]$/, `,\u2026+${overflow} more]`);
            }
            return `Expected ${label} to be one of \`${printedList}\`, got ${value2}`;
          },
          validator: (value2) => list.includes(value2)
        });
      }
      /**
      Test a number to be an integer.
      */
      get integer() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be an integer, got ${value2}`,
          validator: (value2) => dist_default2.integer(value2)
        });
      }
      /**
      Test a number to be finite.
      */
      get finite() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be finite, got ${value2}`,
          validator: (value2) => !dist_default2.infinite(value2)
        });
      }
      /**
      Test a number to be infinite.
      */
      get infinite() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be infinite, got ${value2}`,
          validator: (value2) => dist_default2.infinite(value2)
        });
      }
      /**
      Test a number to be positive.
      */
      get positive() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be positive, got ${value2}`,
          validator: (value2) => value2 > 0
        });
      }
      /**
      Test a number to be negative.
      */
      get negative() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be negative, got ${value2}`,
          validator: (value2) => value2 < 0
        });
      }
      /**
      Test a number to be an integer or infinite.
      */
      get integerOrInfinite() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be an integer or infinite, got ${value2}`,
          validator: (value2) => dist_default2.integer(value2) || dist_default2.infinite(value2)
        });
      }
      /**
      Test a number to be in a valid range for a 8-bit unsigned integer.
      */
      get uint8() {
        return this.integer.inRange(0, 255);
      }
      /**
      Test a number to be in a valid range for a 16-bit unsigned integer.
      */
      get uint16() {
        return this.integer.inRange(0, 65535);
      }
      /**
      Test a number to be in a valid range for a 32-bit unsigned integer.
      */
      get uint32() {
        return this.integer.inRange(0, 4294967295);
      }
      /**
      Test a number to be in a valid range for a 8-bit signed integer.
      */
      get int8() {
        return this.integer.inRange(-128, 127);
      }
      /**
      Test a number to be in a valid range for a 16-bit signed integer.
      */
      get int16() {
        return this.integer.inRange(-32768, 32767);
      }
      /**
      Test a number to be in a valid range for a 32-bit signed integer.
      */
      get int32() {
        return this.integer.inRange(-2147483648, 2147483647);
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/bigint.js
var BigIntPredicate;
var init_bigint = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/bigint.js"() {
    init_predicate();
    BigIntPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("bigint", options);
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/boolean.js
var BooleanPredicate;
var init_boolean = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/boolean.js"() {
    init_predicate();
    BooleanPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("boolean", options);
      }
      /**
      Test a boolean to be true.
      */
      get true() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be true, got ${value2}`,
          validator: (value2) => value2
        });
      }
      /**
      Test a boolean to be false.
      */
      get false() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be false, got ${value2}`,
          validator: (value2) => !value2
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/test.js
function test(value2, label, predicate, idLabel = true) {
  predicate[testSymbol](value2, test, label, idLabel);
}
var init_test = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/test.js"() {
    init_base_predicate();
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/match-shape.js
function partial(object, shape, parent) {
  try {
    for (const key of Object.keys(shape)) {
      const label = parent ? `${parent}.${key}` : key;
      if (isPredicate(shape[key])) {
        test(object[key], label, shape[key]);
      } else if (dist_default2.plainObject(shape[key])) {
        const result = partial(object[key], shape[key], label);
        if (result !== true) {
          return result;
        }
      }
    }
    return true;
  } catch (error) {
    return error.message;
  }
}
function exact(object, shape, parent, isArray3) {
  try {
    const objectKeys = new Set(Object.keys(object));
    for (const key of Object.keys(shape)) {
      objectKeys.delete(key);
      const label = parent ? `${parent}.${key}` : key;
      if (isPredicate(shape[key])) {
        test(object[key], label, shape[key]);
      } else if (dist_default2.plainObject(shape[key])) {
        if (!Object.prototype.hasOwnProperty.call(object, key)) {
          return `Expected \`${label}\` to exist`;
        }
        const result = exact(object[key], shape[key], label);
        if (result !== true) {
          return result;
        }
      }
    }
    if (objectKeys.size > 0) {
      const firstKey = [...objectKeys.keys()][0];
      const label = parent ? `${parent}.${firstKey}` : firstKey;
      return `Did not expect ${isArray3 ? "element" : "property"} \`${label}\` to exist, got \`${object[firstKey]}\``;
    }
    return true;
  } catch (error) {
    return error.message;
  }
}
var init_match_shape = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/match-shape.js"() {
    init_dist4();
    init_test();
    init_base_predicate();
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/of-type.js
var ofType, of_type_default;
var init_of_type = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/of-type.js"() {
    init_test();
    ofType = (source, name, predicate) => {
      try {
        for (const item of source) {
          test(item, name, predicate, false);
        }
        return true;
      } catch (error) {
        return error.message;
      }
    };
    of_type_default = ofType;
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/array.js
var import_lodash, ArrayPredicate;
var init_array = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/array.js"() {
    import_lodash = __toESM(require_lodash(), 1);
    init_match_shape();
    init_of_type();
    init_predicate();
    ArrayPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("array", options);
      }
      /**
          Test an array to have a specific length.
      
          @param length - The length of the array.
          */
      length(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have length \`${length2}\`, got \`${value2.length}\``,
          validator: (value2) => value2.length === length2
        });
      }
      /**
          Test an array to have a minimum length.
      
          @param length - The minimum length of the array.
          */
      minLength(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a minimum length of \`${length2}\`, got \`${value2.length}\``,
          validator: (value2) => value2.length >= length2,
          negatedMessage: (value2, label) => `Expected ${label} to have a maximum length of \`${length2 - 1}\`, got \`${value2.length}\``
        });
      }
      /**
          Test an array to have a maximum length.
      
          @param length - The maximum length of the array.
          */
      maxLength(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a maximum length of \`${length2}\`, got \`${value2.length}\``,
          validator: (value2) => value2.length <= length2,
          negatedMessage: (value2, label) => `Expected ${label} to have a minimum length of \`${length2 + 1}\`, got \`${value2.length}\``
        });
      }
      /**
          Test an array to start with a specific value. The value is tested by identity, not structure.
      
          @param searchElement - The value that should be the start of the array.
          */
      startsWith(searchElement) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to start with \`${searchElement}\`, got \`${value2[0]}\``,
          validator: (value2) => value2[0] === searchElement
        });
      }
      /**
          Test an array to end with a specific value. The value is tested by identity, not structure.
      
          @param searchElement - The value that should be the end of the array.
          */
      endsWith(searchElement) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to end with \`${searchElement}\`, got \`${value2[value2.length - 1]}\``,
          validator: (value2) => value2[value2.length - 1] === searchElement
        });
      }
      /**
          Test an array to include all the provided elements. The values are tested by identity, not structure.
      
          @param searchElements - The values that should be included in the array.
          */
      includes(...searchElements) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to include all elements of \`${JSON.stringify(searchElements)}\`, got \`${JSON.stringify(value2)}\``,
          validator: (value2) => searchElements.every((element) => value2.includes(element))
        });
      }
      /**
          Test an array to include any of the provided elements. The values are tested by identity, not structure.
      
          @param searchElements - The values that should be included in the array.
          */
      includesAny(...searchElements) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to include any element of \`${JSON.stringify(searchElements)}\`, got \`${JSON.stringify(value2)}\``,
          validator: (value2) => searchElements.some((element) => value2.includes(element))
        });
      }
      /**
      Test an array to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be empty, got \`${JSON.stringify(value2)}\``,
          validator: (value2) => value2.length === 0
        });
      }
      /**
      Test an array to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to not be empty`,
          validator: (value2) => value2.length > 0
        });
      }
      /**
          Test an array to be deeply equal to the provided array.
      
          @param expected - Expected value to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify(expected)}\`, got \`${JSON.stringify(value2)}\``,
          validator: (value2) => (0, import_lodash.default)(value2, expected)
        });
      }
      /**
          Test all elements in the array to match to provided predicate.
      
          @param predicate - The predicate that should be applied against every individual item.
      
          @example
          ```
          ow(['a', 1], ow.array.ofType(ow.any(ow.string, ow.number)));
          ```
          */
      ofType(predicate) {
        return this.addValidator({
          message: (_, label, error) => `(${label}) ${error}`,
          validator: (value2) => of_type_default(value2, "values", predicate)
        });
      }
      /**
          Test if the elements in the array exactly matches the elements placed at the same indices in the predicates array.
      
          @param predicates - Predicates to test the array against. Describes what the tested array should look like.
      
          @example
          ```
          ow(['1', 2], ow.array.exactShape([ow.string, ow.number]));
          ```
          */
      exactShape(predicates3) {
        const shape = predicates3;
        return this.addValidator({
          // eslint-disable-next-line @typescript-eslint/no-unsafe-call
          message: (_, label, message) => `${message.replace("Expected", "Expected element")} in ${label}`,
          validator: (object) => exact(object, shape, void 0, true)
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/dot-prop@7.2.0/node_modules/dot-prop/index.js
function getPathSegments(path3) {
  const parts = [];
  let currentSegment = "";
  let currentPart = "start";
  let isIgnoring = false;
  for (const character of path3) {
    switch (character) {
      case "\\":
        if (currentPart === "index") {
          throw new Error("Invalid character in an index");
        }
        if (currentPart === "indexEnd") {
          throw new Error("Invalid character after an index");
        }
        if (isIgnoring) {
          currentSegment += character;
        }
        currentPart = "property";
        isIgnoring = !isIgnoring;
        break;
      case ".":
        if (currentPart === "index") {
          throw new Error("Invalid character in an index");
        }
        if (currentPart === "indexEnd") {
          currentPart = "property";
          break;
        }
        if (isIgnoring) {
          isIgnoring = false;
          currentSegment += character;
          break;
        }
        if (disallowedKeys.has(currentSegment)) {
          return [];
        }
        parts.push(currentSegment);
        currentSegment = "";
        currentPart = "property";
        break;
      case "[":
        if (currentPart === "index") {
          throw new Error("Invalid character in an index");
        }
        if (currentPart === "indexEnd") {
          currentPart = "index";
          break;
        }
        if (isIgnoring) {
          isIgnoring = false;
          currentSegment += character;
          break;
        }
        if (currentPart === "property") {
          if (disallowedKeys.has(currentSegment)) {
            return [];
          }
          parts.push(currentSegment);
          currentSegment = "";
        }
        currentPart = "index";
        break;
      case "]":
        if (currentPart === "index") {
          parts.push(Number.parseInt(currentSegment, 10));
          currentSegment = "";
          currentPart = "indexEnd";
          break;
        }
        if (currentPart === "indexEnd") {
          throw new Error("Invalid character after an index");
        }
      // Falls through
      default:
        if (currentPart === "index" && !digits.has(character)) {
          throw new Error("Invalid character in an index");
        }
        if (currentPart === "indexEnd") {
          throw new Error("Invalid character after an index");
        }
        if (currentPart === "start") {
          currentPart = "property";
        }
        if (isIgnoring) {
          isIgnoring = false;
          currentSegment += "\\";
        }
        currentSegment += character;
    }
  }
  if (isIgnoring) {
    currentSegment += "\\";
  }
  switch (currentPart) {
    case "property": {
      if (disallowedKeys.has(currentSegment)) {
        return [];
      }
      parts.push(currentSegment);
      break;
    }
    case "index": {
      throw new Error("Index was not closed");
    }
    case "start": {
      parts.push("");
      break;
    }
  }
  return parts;
}
function isStringIndex(object, key) {
  if (typeof key !== "number" && Array.isArray(object)) {
    const index2 = Number.parseInt(key, 10);
    return Number.isInteger(index2) && object[index2] === object[key];
  }
  return false;
}
function hasProperty(object, path3) {
  if (!isObject2(object) || typeof path3 !== "string") {
    return false;
  }
  const pathArray = getPathSegments(path3);
  if (pathArray.length === 0) {
    return false;
  }
  for (const key of pathArray) {
    if (!isObject2(object) || !(key in object) || isStringIndex(object, key)) {
      return false;
    }
    object = object[key];
  }
  return true;
}
var isObject2, disallowedKeys, digits;
var init_dot_prop = __esm({
  "../../node_modules/.pnpm/dot-prop@7.2.0/node_modules/dot-prop/index.js"() {
    isObject2 = (value2) => {
      const type = typeof value2;
      return value2 !== null && (type === "object" || type === "function");
    };
    disallowedKeys = /* @__PURE__ */ new Set([
      "__proto__",
      "prototype",
      "constructor"
    ]);
    digits = new Set("0123456789");
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/has-items.js
var hasItems, has_items_default;
var init_has_items = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/has-items.js"() {
    hasItems = (source, items, maxValues = 5) => {
      const missingValues = [];
      for (const value2 of items) {
        if (source.has(value2)) {
          continue;
        }
        missingValues.push(value2);
        if (missingValues.length === maxValues) {
          return missingValues;
        }
      }
      return missingValues.length === 0 ? true : missingValues;
    };
    has_items_default = hasItems;
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/of-type-deep.js
var ofTypeDeep, ofTypeDeepSafe, of_type_deep_default;
var init_of_type_deep = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/of-type-deep.js"() {
    init_dist4();
    init_test();
    ofTypeDeep = (object, predicate) => {
      if (!dist_default2.plainObject(object)) {
        test(object, "deep values", predicate, false);
        return true;
      }
      return Object.values(object).every((value2) => ofTypeDeep(value2, predicate));
    };
    ofTypeDeepSafe = (object, predicate) => {
      try {
        return ofTypeDeep(object, predicate);
      } catch (error) {
        return error.message;
      }
    };
    of_type_deep_default = ofTypeDeepSafe;
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/object.js
var import_lodash2, ObjectPredicate;
var init_object = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/object.js"() {
    init_dist4();
    init_dot_prop();
    import_lodash2 = __toESM(require_lodash(), 1);
    init_has_items();
    init_of_type();
    init_of_type_deep();
    init_match_shape();
    init_predicate();
    ObjectPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("object", options);
      }
      /**
      Test if an Object is a plain object.
      */
      get plain() {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to be a plain object`,
          validator: (object) => dist_default2.plainObject(object)
        });
      }
      /**
      Test an object to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (object, label) => `Expected ${label} to be empty, got \`${JSON.stringify(object)}\``,
          validator: (object) => Object.keys(object).length === 0
        });
      }
      /**
      Test an object to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to not be empty`,
          validator: (object) => Object.keys(object).length > 0
        });
      }
      /**
          Test all the values in the object to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every value in the object.
          */
      valuesOfType(predicate) {
        return this.addValidator({
          message: (_, label, error) => `(${label}) ${error}`,
          validator: (object) => of_type_default(Object.values(object), "values", predicate)
        });
      }
      /**
          Test all the values in the object deeply to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every value in the object.
          */
      deepValuesOfType(predicate) {
        return this.addValidator({
          message: (_, label, error) => `(${label}) ${error}`,
          validator: (object) => of_type_deep_default(object, predicate)
        });
      }
      /**
          Test an object to be deeply equal to the provided object.
      
          @param expected - Expected object to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (object, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify(expected)}\`, got \`${JSON.stringify(object)}\``,
          validator: (object) => (0, import_lodash2.default)(object, expected)
        });
      }
      /**
          Test an object to be of a specific instance type.
      
          @param instance - The expected instance type of the object.
          */
      instanceOf(instance) {
        return this.addValidator({
          message(object, label) {
            let { name } = object?.constructor ?? {};
            if (!name || name === "Object") {
              name = JSON.stringify(object);
            }
            return `Expected ${label} \`${name}\` to be of type \`${instance.name}\``;
          },
          validator: (object) => object instanceof instance
        });
      }
      /**
          Test an object to include all the provided keys. You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties.
      
          @param keys - The keys that should be present in the object.
          */
      hasKeys(...keys2) {
        return this.addValidator({
          message: (_, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``,
          validator: (object) => has_items_default({
            has: (item) => hasProperty(object, item)
          }, keys2)
        });
      }
      /**
          Test an object to include any of the provided keys. You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties.
      
          @param keys - The keys that could be a key in the object.
          */
      hasAnyKeys(...keys2) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys2)}\``,
          validator: (object) => keys2.some((key) => hasProperty(object, key))
        });
      }
      /**
          Test an object to match the `shape` partially. This means that it ignores unexpected properties. The shape comparison is deep.
      
          The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.
      
          @param shape - Shape to test the object against.
      
          @example
          ```
          import ow from 'ow';
      
          const object = {
              unicorn: '🦄',
              rainbow: '🌈'
          };
      
          ow(object, ow.object.partialShape({
              unicorn: ow.string
          }));
          ```
          */
      partialShape(shape) {
        return this.addValidator({
          // TODO: Improve this when message handling becomes smarter
          // eslint-disable-next-line @typescript-eslint/no-unsafe-call
          message: (_, label, message) => `${message.replace("Expected", "Expected property")} in ${label}`,
          validator: (object) => partial(object, shape)
        });
      }
      /**
          Test an object to match the `shape` exactly. This means that will fail if it comes across unexpected properties. The shape comparison is deep.
      
          The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.
      
          @param shape - Shape to test the object against.
      
          @example
          ```
          import ow from 'ow';
      
          ow({unicorn: '🦄'}, ow.object.exactShape({
              unicorn: ow.string
          }));
          ```
          */
      exactShape(shape) {
        return this.addValidator({
          // TODO: Improve this when message handling becomes smarter
          // eslint-disable-next-line @typescript-eslint/no-unsafe-call
          message: (_, label, message) => `${message.replace("Expected", "Expected property")} in ${label}`,
          validator: (object) => exact(object, shape)
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/date.js
var DatePredicate;
var init_date = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/date.js"() {
    init_predicate();
    DatePredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("date", options);
      }
      /**
          Test a date to be before another date.
      
          @param date - Maximum value.
          */
      before(date) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} ${value2.toISOString()} to be before ${date.toISOString()}`,
          validator: (value2) => value2.getTime() < date.getTime()
        });
      }
      /**
          Test a date to be before another date.
      
          @param date - Minimum value.
          */
      after(date) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} ${value2.toISOString()} to be after ${date.toISOString()}`,
          validator: (value2) => value2.getTime() > date.getTime()
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/error.js
var ErrorPredicate;
var init_error = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/error.js"() {
    init_predicate();
    ErrorPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("error", options);
      }
      /**
          Test an error to have a specific name.
      
          @param expected - Expected name of the Error.
          */
      name(expected) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} to have name \`${expected}\`, got \`${error.name}\``,
          validator: (error) => error.name === expected
        });
      }
      /**
          Test an error to have a specific message.
      
          @param expected - Expected message of the Error.
          */
      message(expected) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} message to be \`${expected}\`, got \`${error.message}\``,
          validator: (error) => error.message === expected
        });
      }
      /**
          Test the error message to include a specific message.
      
          @param message - Message that should be included in the error.
          */
      messageIncludes(message) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} message to include \`${message}\`, got \`${error.message}\``,
          validator: (error) => error.message.includes(message)
        });
      }
      /**
          Test the error object to have specific keys.
      
          @param keys - One or more keys which should be part of the error object.
          */
      hasKeys(...keys2) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} message to have keys \`${keys2.join("`, `")}\``,
          validator: (error) => keys2.every((key) => Object.prototype.hasOwnProperty.call(error, key))
        });
      }
      /**
          Test an error to be of a specific instance type.
      
          @param instance - The expected instance type of the error.
          */
      instanceOf(instance) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} \`${error.name}\` to be of type \`${instance.name}\``,
          validator: (error) => error instanceof instance
        });
      }
      /**
      Test an Error to be a TypeError.
      */
      get typeError() {
        return this.instanceOf(TypeError);
      }
      /**
      Test an Error to be an EvalError.
      */
      get evalError() {
        return this.instanceOf(EvalError);
      }
      /**
      Test an Error to be a RangeError.
      */
      get rangeError() {
        return this.instanceOf(RangeError);
      }
      /**
      Test an Error to be a ReferenceError.
      */
      get referenceError() {
        return this.instanceOf(ReferenceError);
      }
      /**
      Test an Error to be a SyntaxError.
      */
      get syntaxError() {
        return this.instanceOf(SyntaxError);
      }
      /**
      Test an Error to be a URIError.
      */
      get uriError() {
        return this.instanceOf(URIError);
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/map.js
var import_lodash3, MapPredicate;
var init_map = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/map.js"() {
    import_lodash3 = __toESM(require_lodash(), 1);
    init_has_items();
    init_of_type();
    init_predicate();
    MapPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("Map", options);
      }
      /**
          Test a Map to have a specific size.
      
          @param size - The size of the Map.
          */
      size(size) {
        return this.addValidator({
          message: (map, label) => `Expected ${label} to have size \`${size}\`, got \`${map.size}\``,
          validator: (map) => map.size === size
        });
      }
      /**
          Test an Map to have a minimum size.
      
          @param size - The minimum size of the Map.
          */
      minSize(size) {
        return this.addValidator({
          message: (map, label) => `Expected ${label} to have a minimum size of \`${size}\`, got \`${map.size}\``,
          validator: (map) => map.size >= size,
          negatedMessage: (map, label) => `Expected ${label} to have a maximum size of \`${size - 1}\`, got \`${map.size}\``
        });
      }
      /**
          Test an Map to have a maximum size.
      
          @param size - The maximum size of the Map.
          */
      maxSize(size) {
        return this.addValidator({
          message: (map, label) => `Expected ${label} to have a maximum size of \`${size}\`, got \`${map.size}\``,
          validator: (map) => map.size <= size,
          negatedMessage: (map, label) => `Expected ${label} to have a minimum size of \`${size + 1}\`, got \`${map.size}\``
        });
      }
      /**
          Test a Map to include all the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that should be a key in the Map.
          */
      hasKeys(...keys2) {
        return this.addValidator({
          message: (_, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``,
          validator: (map) => has_items_default(map, keys2)
        });
      }
      /**
          Test a Map to include any of the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that could be a key in the Map.
          */
      hasAnyKeys(...keys2) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys2)}\``,
          validator: (map) => keys2.some((key) => map.has(key))
        });
      }
      /**
          Test a Map to include all the provided values. The values are tested by identity, not structure.
      
          @param values - The values that should be a value in the Map.
          */
      hasValues(...values) {
        return this.addValidator({
          message: (_, label, missingValues) => `Expected ${label} to have values \`${JSON.stringify(missingValues)}\``,
          validator: (map) => has_items_default(new Set(map.values()), values)
        });
      }
      /**
          Test a Map to include any of the provided values. The values are tested by identity, not structure.
      
          @param values - The values that could be a value in the Map.
          */
      hasAnyValues(...values) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to have any value of \`${JSON.stringify(values)}\``,
          validator(map) {
            const valueSet = new Set(map.values());
            return values.some((key) => valueSet.has(key));
          }
        });
      }
      /**
          Test all the keys in the Map to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every key in the Map.
          */
      keysOfType(predicate) {
        return this.addValidator({
          message: (_, label, error) => `(${label}) ${error}`,
          validator: (map) => of_type_default(map.keys(), "keys", predicate)
        });
      }
      /**
          Test all the values in the Map to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every value in the Map.
          */
      valuesOfType(predicate) {
        return this.addValidator({
          message: (_, label, error) => `(${label}) ${error}`,
          validator: (map) => of_type_default(map.values(), "values", predicate)
        });
      }
      /**
      Test a Map to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (map, label) => `Expected ${label} to be empty, got \`${JSON.stringify([...map])}\``,
          validator: (map) => map.size === 0
        });
      }
      /**
      Test a Map to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to not be empty`,
          validator: (map) => map.size > 0
        });
      }
      /**
          Test a Map to be deeply equal to the provided Map.
      
          @param expected - Expected Map to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (map, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify([...expected])}\`, got \`${JSON.stringify([...map])}\``,
          validator: (map) => (0, import_lodash3.default)(map, expected)
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/weak-map.js
var WeakMapPredicate;
var init_weak_map = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/weak-map.js"() {
    init_has_items();
    init_predicate();
    WeakMapPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("WeakMap", options);
      }
      /**
          Test a WeakMap to include all the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that should be a key in the WeakMap.
          */
      hasKeys(...keys2) {
        return this.addValidator({
          message: (_, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``,
          validator: (map) => has_items_default(map, keys2)
        });
      }
      /**
          Test a WeakMap to include any of the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that could be a key in the WeakMap.
          */
      hasAnyKeys(...keys2) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys2)}\``,
          validator: (map) => keys2.some((key) => map.has(key))
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/set.js
var import_lodash4, SetPredicate;
var init_set = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/set.js"() {
    import_lodash4 = __toESM(require_lodash(), 1);
    init_has_items();
    init_of_type();
    init_predicate();
    SetPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("Set", options);
      }
      /**
          Test a Set to have a specific size.
      
          @param size - The size of the Set.
          */
      size(size) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to have size \`${size}\`, got \`${set.size}\``,
          validator: (set) => set.size === size
        });
      }
      /**
          Test a Set to have a minimum size.
      
          @param size - The minimum size of the Set.
          */
      minSize(size) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to have a minimum size of \`${size}\`, got \`${set.size}\``,
          validator: (set) => set.size >= size,
          negatedMessage: (set, label) => `Expected ${label} to have a maximum size of \`${size - 1}\`, got \`${set.size}\``
        });
      }
      /**
          Test a Set to have a maximum size.
      
          @param size - The maximum size of the Set.
          */
      maxSize(size) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to have a maximum size of \`${size}\`, got \`${set.size}\``,
          validator: (set) => set.size <= size,
          negatedMessage: (set, label) => `Expected ${label} to have a minimum size of \`${size + 1}\`, got \`${set.size}\``
        });
      }
      /**
          Test a Set to include all the provided items. The items are tested by identity, not structure.
      
          @param items - The items that should be a item in the Set.
          */
      has(...items) {
        return this.addValidator({
          message: (_, label, missingItems) => `Expected ${label} to have items \`${JSON.stringify(missingItems)}\``,
          validator: (set) => has_items_default(set, items)
        });
      }
      /**
          Test a Set to include any of the provided items. The items are tested by identity, not structure.
      
          @param items - The items that could be a item in the Set.
          */
      hasAny(...items) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to have any item of \`${JSON.stringify(items)}\``,
          validator: (set) => items.some((item) => set.has(item))
        });
      }
      /**
          Test all the items in the Set to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every item in the Set.
          */
      ofType(predicate) {
        return this.addValidator({
          message: (_, label, error) => `(${label}) ${error}`,
          validator: (set) => of_type_default(set, "values", predicate)
        });
      }
      /**
      Test a Set to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to be empty, got \`${JSON.stringify([...set])}\``,
          validator: (set) => set.size === 0
        });
      }
      /**
      Test a Set to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to not be empty`,
          validator: (set) => set.size > 0
        });
      }
      /**
          Test a Set to be deeply equal to the provided Set.
      
          @param expected - Expected Set to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify([...expected])}\`, got \`${JSON.stringify([...set])}\``,
          validator: (set) => (0, import_lodash4.default)(set, expected)
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/weak-set.js
var WeakSetPredicate;
var init_weak_set = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/weak-set.js"() {
    init_has_items();
    init_predicate();
    WeakSetPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("WeakSet", options);
      }
      /**
          Test a WeakSet to include all the provided items. The items are tested by identity, not structure.
      
          @param items - The items that should be a item in the WeakSet.
          */
      has(...items) {
        return this.addValidator({
          message: (_, label, missingItems) => `Expected ${label} to have items \`${JSON.stringify(missingItems)}\``,
          validator: (set) => has_items_default(set, items)
        });
      }
      /**
          Test a WeakSet to include any of the provided items. The items are tested by identity, not structure.
      
          @param items - The items that could be a item in the WeakSet.
          */
      hasAny(...items) {
        return this.addValidator({
          message: (_, label) => `Expected ${label} to have any item of \`${JSON.stringify(items)}\``,
          validator: (set) => items.some((item) => set.has(item))
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/typed-array.js
var TypedArrayPredicate;
var init_typed_array = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/typed-array.js"() {
    init_predicate();
    TypedArrayPredicate = class extends Predicate {
      /**
          Test a typed array to have a specific byte length.
      
          @param byteLength - The byte length of the typed array.
          */
      byteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength === byteLength3
        });
      }
      /**
          Test a typed array to have a minimum byte length.
      
          @param byteLength - The minimum byte length of the typed array.
          */
      minByteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a minimum byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength >= byteLength3,
          negatedMessage: (value2, label) => `Expected ${label} to have a maximum byte length of \`${byteLength3 - 1}\`, got \`${value2.byteLength}\``
        });
      }
      /**
          Test a typed array to have a minimum byte length.
      
          @param length - The minimum byte length of the typed array.
          */
      maxByteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a maximum byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength <= byteLength3,
          negatedMessage: (value2, label) => `Expected ${label} to have a minimum byte length of \`${byteLength3 + 1}\`, got \`${value2.byteLength}\``
        });
      }
      /**
          Test a typed array to have a specific length.
      
          @param length - The length of the typed array.
          */
      length(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have length \`${length2}\`, got \`${value2.length}\``,
          validator: (value2) => value2.length === length2
        });
      }
      /**
          Test a typed array to have a minimum length.
      
          @param length - The minimum length of the typed array.
          */
      minLength(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a minimum length of \`${length2}\`, got \`${value2.length}\``,
          validator: (value2) => value2.length >= length2,
          negatedMessage: (value2, label) => `Expected ${label} to have a maximum length of \`${length2 - 1}\`, got \`${value2.length}\``
        });
      }
      /**
          Test a typed array to have a maximum length.
      
          @param length - The maximum length of the typed array.
          */
      maxLength(length2) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a maximum length of \`${length2}\`, got \`${value2.length}\``,
          validator: (value2) => value2.length <= length2,
          negatedMessage: (value2, label) => `Expected ${label} to have a minimum length of \`${length2 + 1}\`, got \`${value2.length}\``
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/array-buffer.js
var ArrayBufferPredicate;
var init_array_buffer2 = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/array-buffer.js"() {
    init_predicate();
    ArrayBufferPredicate = class extends Predicate {
      /**
          Test an array buffer to have a specific byte length.
      
          @param byteLength - The byte length of the array buffer.
          */
      byteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength === byteLength3
        });
      }
      /**
          Test an array buffer to have a minimum byte length.
      
          @param byteLength - The minimum byte length of the array buffer.
          */
      minByteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a minimum byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength >= byteLength3,
          negatedMessage: (value2, label) => `Expected ${label} to have a maximum byte length of \`${byteLength3 - 1}\`, got \`${value2.byteLength}\``
        });
      }
      /**
          Test an array buffer to have a minimum byte length.
      
          @param length - The minimum byte length of the array buffer.
          */
      maxByteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a maximum byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength <= byteLength3,
          negatedMessage: (value2, label) => `Expected ${label} to have a minimum byte length of \`${byteLength3 + 1}\`, got \`${value2.byteLength}\``
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/data-view.js
var DataViewPredicate;
var init_data_view = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/data-view.js"() {
    init_predicate();
    DataViewPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("DataView", options);
      }
      /**
          Test a DataView to have a specific byte length.
      
          @param byteLength - The byte length of the DataView.
          */
      byteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength === byteLength3
        });
      }
      /**
          Test a DataView to have a minimum byte length.
      
          @param byteLength - The minimum byte length of the DataView.
          */
      minByteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a minimum byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength >= byteLength3,
          negatedMessage: (value2, label) => `Expected ${label} to have a maximum byte length of \`${byteLength3 - 1}\`, got \`${value2.byteLength}\``
        });
      }
      /**
          Test a DataView to have a minimum byte length.
      
          @param length - The minimum byte length of the DataView.
          */
      maxByteLength(byteLength3) {
        return this.addValidator({
          message: (value2, label) => `Expected ${label} to have a maximum byte length of \`${byteLength3}\`, got \`${value2.byteLength}\``,
          validator: (value2) => value2.byteLength <= byteLength3,
          negatedMessage: (value2, label) => `Expected ${label} to have a minimum byte length of \`${byteLength3 + 1}\`, got \`${value2.byteLength}\``
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/any.js
var AnyPredicate;
var init_any = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/any.js"() {
    init_argument_error();
    init_generate_argument_error_message();
    init_base_predicate();
    AnyPredicate = class {
      constructor(predicates3, options = {}) {
        Object.defineProperty(this, "predicates", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: predicates3
        });
        Object.defineProperty(this, "options", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: options
        });
      }
      [testSymbol](value2, main, label, idLabel) {
        const errors = /* @__PURE__ */ new Map();
        for (const predicate of this.predicates) {
          try {
            main(value2, label, predicate, idLabel);
            return;
          } catch (error) {
            if (value2 === void 0 && this.options.optional === true) {
              return;
            }
            if (error instanceof ArgumentError) {
              for (const [key, value3] of error.validationErrors.entries()) {
                const alreadyPresent = errors.get(key);
                errors.set(key, /* @__PURE__ */ new Set([...alreadyPresent ?? [], ...value3]));
              }
            }
          }
        }
        if (errors.size > 0) {
          const message = generateArgumentErrorMessage(errors, true);
          throw new ArgumentError(`Any predicate failed with the following errors:
${message}`, main, errors);
        }
      }
    };
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates.js
var predicates, predicates_default;
var init_predicates = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates.js"() {
    init_string();
    init_number();
    init_bigint();
    init_boolean();
    init_predicate();
    init_array();
    init_object();
    init_date();
    init_error();
    init_map();
    init_weak_map();
    init_set();
    init_weak_set();
    init_typed_array();
    init_array_buffer2();
    init_data_view();
    init_any();
    predicates = (object, options) => {
      Object.defineProperties(object, {
        string: {
          get: () => new StringPredicate(options)
        },
        number: {
          get: () => new NumberPredicate(options)
        },
        bigint: {
          get: () => new BigIntPredicate(options)
        },
        boolean: {
          get: () => new BooleanPredicate(options)
        },
        undefined: {
          get: () => new Predicate("undefined", options)
        },
        null: {
          get: () => new Predicate("null", options)
        },
        nullOrUndefined: {
          get: () => new Predicate("nullOrUndefined", options)
        },
        nan: {
          get: () => new Predicate("nan", options)
        },
        symbol: {
          get: () => new Predicate("symbol", options)
        },
        array: {
          get: () => new ArrayPredicate(options)
        },
        object: {
          get: () => new ObjectPredicate(options)
        },
        date: {
          get: () => new DatePredicate(options)
        },
        error: {
          get: () => new ErrorPredicate(options)
        },
        map: {
          get: () => new MapPredicate(options)
        },
        weakMap: {
          get: () => new WeakMapPredicate(options)
        },
        set: {
          get: () => new SetPredicate(options)
        },
        weakSet: {
          get: () => new WeakSetPredicate(options)
        },
        function: {
          get: () => new Predicate("Function", options)
        },
        buffer: {
          get: () => new Predicate("Buffer", options)
        },
        regExp: {
          get: () => new Predicate("RegExp", options)
        },
        promise: {
          get: () => new Predicate("Promise", options)
        },
        typedArray: {
          get: () => new TypedArrayPredicate("TypedArray", options)
        },
        int8Array: {
          get: () => new TypedArrayPredicate("Int8Array", options)
        },
        uint8Array: {
          get: () => new TypedArrayPredicate("Uint8Array", options)
        },
        uint8ClampedArray: {
          get: () => new TypedArrayPredicate("Uint8ClampedArray", options)
        },
        int16Array: {
          get: () => new TypedArrayPredicate("Int16Array", options)
        },
        uint16Array: {
          get: () => new TypedArrayPredicate("Uint16Array", options)
        },
        int32Array: {
          get: () => new TypedArrayPredicate("Int32Array", options)
        },
        uint32Array: {
          get: () => new TypedArrayPredicate("Uint32Array", options)
        },
        float32Array: {
          get: () => new TypedArrayPredicate("Float32Array", options)
        },
        float64Array: {
          get: () => new TypedArrayPredicate("Float64Array", options)
        },
        arrayBuffer: {
          get: () => new ArrayBufferPredicate("ArrayBuffer", options)
        },
        sharedArrayBuffer: {
          get: () => new ArrayBufferPredicate("SharedArrayBuffer", options)
        },
        dataView: {
          get: () => new DataViewPredicate(options)
        },
        iterable: {
          get: () => new Predicate("Iterable", options)
        },
        any: {
          value: (...predicates3) => new AnyPredicate(predicates3, options)
        }
      });
      return object;
    };
    predicates_default = predicates;
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/modifiers.js
var modifiers, modifiers_default;
var init_modifiers = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/modifiers.js"() {
    init_predicates();
    modifiers = (object) => {
      Object.defineProperties(object, {
        optional: {
          get: () => predicates_default({}, { optional: true })
        }
      });
      return object;
    };
    modifiers_default = modifiers;
  }
});

// ../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/index.js
var ow, _ow, dist_default3;
var init_dist5 = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/index.js"() {
    init_callsites();
    init_infer_label();
    init_base_predicate();
    init_modifiers();
    init_predicates();
    init_test();
    init_predicates();
    ow = (value2, labelOrPredicate, predicate) => {
      if (!isPredicate(labelOrPredicate) && typeof labelOrPredicate !== "string") {
        throw new TypeError(`Expected second argument to be a predicate or a string, got \`${typeof labelOrPredicate}\``);
      }
      if (isPredicate(labelOrPredicate)) {
        const stackFrames = callsites();
        test(value2, () => inferLabel(stackFrames), labelOrPredicate);
        return;
      }
      test(value2, labelOrPredicate, predicate);
    };
    Object.defineProperties(ow, {
      isValid: {
        value(value2, predicate) {
          try {
            test(value2, "", predicate);
            return true;
          } catch {
            return false;
          }
        }
      },
      create: {
        value: (labelOrPredicate, predicate) => (value2, label) => {
          if (isPredicate(labelOrPredicate)) {
            const stackFrames = callsites();
            test(value2, label ?? (() => inferLabel(stackFrames)), labelOrPredicate);
            return;
          }
          test(value2, label ?? labelOrPredicate, predicate);
        }
      }
    });
    _ow = predicates_default(modifiers_default(ow));
    dist_default3 = _ow;
  }
});

// ../../node_modules/.pnpm/got-scraping@4.1.3/node_modules/got-scraping/dist/index.js
var dist_exports = {};
__export(dist_exports, {
  AbortError: () => AbortError,
  CacheError: () => CacheError,
  CancelError: () => CancelError2,
  HTTPError: () => HTTPError,
  MaxRedirectsError: () => MaxRedirectsError,
  Options: () => Options,
  ParseError: () => ParseError,
  ReadError: () => ReadError,
  RequestError: () => RequestError,
  RetryError: () => RetryError,
  TimeoutError: () => TimeoutError,
  TransformHeadersAgent: () => TransformHeadersAgent,
  UploadError: () => UploadError,
  calculateRetryDelay: () => calculate_retry_delay_default,
  create: () => create_default,
  generateRequestId: () => generateRequestId,
  getAgents: () => getAgents,
  got: () => got,
  gotScraping: () => gotScraping,
  hooks: () => hooks,
  isResponseOk: () => isResponseOk,
  parseBody: () => parseBody,
  parseLinkHeader: () => parseLinkHeader,
  publishError: () => publishError,
  publishRedirect: () => publishRedirect,
  publishRequestCreate: () => publishRequestCreate,
  publishRequestStart: () => publishRequestStart,
  publishResponseEnd: () => publishResponseEnd,
  publishResponseStart: () => publishResponseStart,
  publishRetry: () => publishRetry
});
import http3 from "node:http";
import https2 from "node:https";
import { OutgoingMessage } from "node:http";
import { isIPv6 as isIPv62 } from "node:net";
import tls2 from "node:tls";
import { URL as URL3 } from "node:url";
import { URL as URL22 } from "node:url";
import http4 from "node:http";
import https3 from "node:https";
import { isIPv6 } from "node:net";
import tls from "node:tls";
import { URL as URL4 } from "node:url";
import zlib2 from "node:zlib";
import { PassThrough } from "node:stream";
import { URL as URL6 } from "node:url";
function buildBasicAuthHeader(url3) {
  if (!url3.username && !url3.password) {
    return null;
  }
  const username = decodeURIComponent(url3.username ?? "");
  const password = decodeURIComponent(url3.password ?? "");
  const basic = Buffer.from(`${username}:${password}`).toString("base64");
  return `Basic ${basic}`;
}
async function proxyHook(options) {
  const { context: { proxyUrl } } = options;
  if (proxyUrl) {
    const parsedProxy = new URL22(proxyUrl);
    validateProxyProtocol(parsedProxy.protocol);
    options.agent = await getAgents(parsedProxy, options.https.rejectUnauthorized);
  }
}
function validateProxyProtocol(protocol) {
  const isSupported = protocol === "http:" || protocol === "https:";
  if (!isSupported) {
    throw new ProxyError(`Proxy URL protocol "${protocol}" is not supported. Please use HTTP or HTTPS.`);
  }
}
async function getAgents(parsedProxyUrl, rejectUnauthorized) {
  const headers = {};
  const basic = buildBasicAuthHeader(parsedProxyUrl);
  if (basic) {
    headers.authorization = basic;
    headers["proxy-authorization"] = basic;
  }
  const wrapperOptions = {
    proxyOptions: {
      url: parsedProxyUrl,
      headers,
      // Based on the got https.rejectUnauthorized option
      rejectUnauthorized
    },
    // The sockets won't be reused, no need to keep them
    maxFreeSockets: 0,
    maxEmptySessions: 0
  };
  const nativeOptions = {
    proxy: parsedProxyUrl,
    // The sockets won't be reused, no need to keep them
    maxFreeSockets: 0
  };
  let agent;
  if (parsedProxyUrl.protocol === "https:") {
    let alpnProtocol = "http/1.1";
    try {
      const result = await import_http2_wrapper4.auto.resolveProtocol({
        host: parsedProxyUrl.hostname,
        port: parsedProxyUrl.port,
        rejectUnauthorized,
        ALPNProtocols: ["h2", "http/1.1"],
        servername: parsedProxyUrl.hostname
      });
      alpnProtocol = result.alpnProtocol;
    } catch {
    }
    const proxyIsHttp2 = alpnProtocol === "h2";
    if (proxyIsHttp2) {
      agent = {
        http: new TransformHeadersAgent(new HttpOverHttp2(wrapperOptions)),
        https: new TransformHeadersAgent(new HttpsOverHttp2(wrapperOptions)),
        http2: new Http2OverHttp2(wrapperOptions)
      };
    } else {
      agent = {
        // @ts-expect-error New @types/node patch has narrower types than the originally exported got-scraping interface
        http: new TransformHeadersAgent(new HttpProxyAgent(nativeOptions)),
        // @ts-expect-error New @types/node patch has narrower types than the originally exported got-scraping interface
        https: new TransformHeadersAgent(new HttpsProxyAgent(nativeOptions)),
        http2: new Http2OverHttps(wrapperOptions)
      };
    }
  } else {
    agent = {
      http: new TransformHeadersAgent(new HttpRegularProxyAgent(nativeOptions)),
      // @ts-expect-error New @types/node patch has narrower types than the originally exported got-scraping interface
      https: new TransformHeadersAgent(new HttpsProxyAgent(nativeOptions)),
      http2: new Http2OverHttp(wrapperOptions)
    };
  }
  return agent;
}
function mergeHeaders(original, overrides) {
  const fixedHeaders = /* @__PURE__ */ new Map();
  for (const entry of Object.entries(original)) {
    fixedHeaders.set(entry[0].toLowerCase(), entry);
  }
  for (const entry of Object.entries(overrides)) {
    fixedHeaders.set(entry[0].toLowerCase(), entry);
  }
  return Object.fromEntries(fixedHeaders.values());
}
async function browserHeadersHook(options) {
  const { context } = options;
  const {
    headerGeneratorOptions,
    useHeaderGenerator,
    headerGenerator,
    proxyUrl
  } = context;
  const sessionData = context.sessionData;
  if (!useHeaderGenerator || !headerGenerator)
    return;
  const createHeadersPair = /* @__PURE__ */ __name(() => ({
    1: headerGenerator.getHeaders({
      httpVersion: "1",
      ...headerGeneratorOptions
    }),
    2: headerGenerator.getHeaders({
      httpVersion: "2",
      ...headerGeneratorOptions
    })
  }), "createHeadersPair");
  const url3 = options.url;
  const resolveProtocol = getResolveProtocolFunction(options, proxyUrl, sessionData);
  let alpnProtocol;
  if (url3.protocol === "https:") {
    alpnProtocol = (await resolveProtocol({
      host: url3.hostname,
      port: url3.port || 443,
      rejectUnauthorized: false,
      ALPNProtocols: ["h2", "http/1.1"],
      servername: url3.hostname
    })).alpnProtocol;
  }
  const httpVersion = alpnProtocol === "h2" ? "2" : "1";
  let generatedHeaders;
  if (sessionData) {
    if (!sessionData.headers) {
      sessionData.headers = createHeadersPair();
    }
    generatedHeaders = sessionData.headers[httpVersion];
  } else {
    generatedHeaders = headerGenerator.getHeaders({
      httpVersion,
      ...headerGeneratorOptions
    });
  }
  if (!options.decompress) {
    for (const key of Object.keys(generatedHeaders)) {
      if (key.toLowerCase() === "accept-encoding") {
        delete generatedHeaders[key];
      }
    }
  }
  options.headers = mergeHeaders(generatedHeaders, options.headers);
}
function customOptionsHook(raw, options) {
  const typedRaw = raw;
  const names = [
    "proxyUrl",
    "headerGeneratorOptions",
    "useHeaderGenerator",
    "insecureHTTPParser",
    "sessionToken"
  ];
  for (const name of names) {
    if (name in raw) {
      options.context[name] = typedRaw[name];
      delete typedRaw[name];
    }
  }
}
function http2Hook(options) {
  const { proxyUrl, sessionData } = options.context;
  if (options.http2 && options.url.protocol !== "http:") {
    options.request = (url3, requestOptions, callback) => {
      const typedRequestOptions = requestOptions;
      if (proxyUrl) {
        typedRequestOptions.resolveProtocol = createResolveProtocol(
          proxyUrl,
          sessionData,
          Math.min(options?.timeout?.connect ?? 6e4, options?.timeout?.request ?? 6e4)
        );
      }
      return (0, import_http2_wrapper5.auto)(url3, typedRequestOptions, callback);
    };
  } else {
    options.request = void 0;
  }
}
function insecureParserHook(options) {
  if (options.context.insecureHTTPParser !== void 0) {
    options._unixOptions = {
      // @ts-expect-error Private use
      ...options._unixOptions,
      insecureHTTPParser: options.context.insecureHTTPParser
    };
  }
}
function optionsValidationHandler(options) {
  dist_default3(options, dist_default3.object.partialShape(validationSchema));
}
function tlsHook(options) {
  const { https: https32 } = options;
  if (https32.ciphers || https32.signatureAlgorithms || https32.minVersion || https32.maxVersion) {
    return;
  }
  const browser = getBrowser(getUserAgent(options.headers)) ?? "firefox";
  https32.ciphers = knownCiphers[browser];
  https32.signatureAlgorithms = sigalgs[browser];
  https32.ecdhCurve = ecdhCurve[browser];
  https32.minVersion = minVersion[browser];
  https32.maxVersion = maxVersion[browser];
  options._unixOptions = {
    // @ts-expect-error Private use
    ...options._unixOptions,
    secureOptions: secureOptions[browser],
    requestOCSP: requestOCSP[browser]
  };
}
var import_http2_wrapper2, import_http2_wrapper3, import_http2_wrapper4, import_http2_wrapper5, __defProp2, __defNormalProp, __name, __publicField, _WrappedAgent, WrappedAgent, _storeHeader, generator, _TransformHeadersAgent, TransformHeadersAgent, initialize, getPort, _HttpRegularProxyAgent, HttpRegularProxyAgent, _HttpProxyAgent, HttpProxyAgent, _HttpsProxyAgent, HttpsProxyAgent, HttpOverHttp2, HttpsOverHttp2, Http2OverHttp2, Http2OverHttps, Http2OverHttp, _ProxyError, ProxyError, connect, createCaches, defaults2, createResolveProtocol, getResolveProtocolFunction, onResponse, fixDecompress, validationSchema, refererHook, _Storage, Storage, storage, sessionDataHook, supportsFirefoxFully, SSL_OP_TLSEXT_PADDING, SSL_OP_NO_ENCRYPT_THEN_MAC, ecdhCurve, sigalgs, knownCiphers, minVersion, maxVersion, secureOptions, requestOCSP, getUserAgent, getBrowser, handlers, beforeRequest, init2, beforeRedirect, gotScraping, setupDecodeURI, hooks;
var init_dist6 = __esm({
  "../../node_modules/.pnpm/got-scraping@4.1.3/node_modules/got-scraping/dist/index.js"() {
    init_source3();
    init_header_generator();
    init_header_generator();
    import_http2_wrapper2 = __toESM(require_source(), 1);
    import_http2_wrapper3 = __toESM(require_source(), 1);
    init_quick_lru();
    import_http2_wrapper4 = __toESM(require_source(), 1);
    init_mimic_response();
    import_http2_wrapper5 = __toESM(require_source(), 1);
    init_dist5();
    init_source3();
    __defProp2 = Object.defineProperty;
    __defNormalProp = (obj, key, value2) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
    __name = (target, value2) => __defProp2(target, "name", { value: value2, configurable: true });
    __publicField = (obj, key, value2) => {
      __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value2);
      return value2;
    };
    _WrappedAgent = class _WrappedAgent2 {
      constructor(agent) {
        __publicField(this, "agent");
        this.agent = agent;
      }
      addRequest(request, options) {
        this.agent.addRequest(request, options);
      }
      get keepAlive() {
        return this.agent.keepAlive;
      }
      get maxSockets() {
        return this.agent.maxSockets;
      }
      get options() {
        return this.agent.options;
      }
      get defaultPort() {
        return this.agent.defaultPort;
      }
      get protocol() {
        return this.agent.protocol;
      }
      destroy() {
        this.agent.destroy();
      }
      // Let's implement `HttpAgent` so we don't have to
      // type `WrappedAgent as unknown as HttpAgent`
      get maxFreeSockets() {
        return this.agent.maxFreeSockets;
      }
      get maxTotalSockets() {
        return this.agent.maxTotalSockets;
      }
      get freeSockets() {
        return this.agent.freeSockets;
      }
      get sockets() {
        return this.agent.sockets;
      }
      get requests() {
        return this.agent.requests;
      }
      on(eventName, listener) {
        this.agent.on(eventName, listener);
        return this;
      }
      once(eventName, listener) {
        this.agent.once(eventName, listener);
        return this;
      }
      off(eventName, listener) {
        this.agent.off(eventName, listener);
        return this;
      }
      addListener(eventName, listener) {
        this.agent.addListener(eventName, listener);
        return this;
      }
      removeListener(eventName, listener) {
        this.agent.removeListener(eventName, listener);
        return this;
      }
      removeAllListeners(eventName) {
        this.agent.removeAllListeners(eventName);
        return this;
      }
      setMaxListeners(n6) {
        this.agent.setMaxListeners(n6);
        return this;
      }
      getMaxListeners() {
        return this.agent.getMaxListeners();
      }
      listeners(eventName) {
        return this.agent.listeners(eventName);
      }
      rawListeners(eventName) {
        return this.agent.rawListeners(eventName);
      }
      emit(eventName, ...args) {
        return this.agent.emit(eventName, ...args);
      }
      eventNames() {
        return this.agent.eventNames();
      }
      listenerCount(eventName) {
        return this.agent.listenerCount(eventName);
      }
      prependListener(eventName, listener) {
        this.agent.prependListener(eventName, listener);
        return this;
      }
      prependOnceListener(eventName, listener) {
        this.agent.prependOnceListener(eventName, listener);
        return this;
      }
      createConnection(options, callback) {
        return this.agent.createConnection(options, callback);
      }
      keepSocketAlive(socket) {
        this.agent.keepSocketAlive(socket);
      }
      reuseSocket(socket, request) {
        this.agent.reuseSocket(socket, request);
      }
      getName(options) {
        return this.agent.getName(options);
      }
    };
    __name(_WrappedAgent, "WrappedAgent");
    WrappedAgent = _WrappedAgent;
    ({ _storeHeader } = OutgoingMessage.prototype);
    generator = new HeaderGenerator();
    _TransformHeadersAgent = class _TransformHeadersAgent2 extends WrappedAgent {
      // Rewritten from https://github.com/nodejs/node/blob/533cafcf7e3ab72e98a2478bc69aedfdf06d3a5e/lib/_http_outgoing.js#L442-L479
      /**
       * Transforms the request via header normalization.
       */
      transformRequest(request, { sortHeaders }) {
        const headers = {};
        const hasConnection = request.hasHeader("connection");
        const hasContentLength = request.hasHeader("content-length");
        const hasTransferEncoding = request.hasHeader("transfer-encoding");
        const hasTrailer = request.hasHeader("trailer");
        const keys2 = request.getHeaderNames();
        for (const key of keys2) {
          if (key.toLowerCase().startsWith("x-")) {
            headers[key] = request.getHeader(key);
          } else {
            headers[this.toPascalCase(key)] = request.getHeader(key);
          }
          if (sortHeaders) {
            request.removeHeader(key);
          }
        }
        const typedRequest = request;
        if (!hasConnection) {
          const shouldSendKeepAlive = request.shouldKeepAlive && (hasContentLength || request.useChunkedEncodingByDefault || typedRequest.agent);
          if (shouldSendKeepAlive) {
            headers.Connection = "keep-alive";
          } else {
            headers.Connection = "close";
          }
        }
        if (!hasContentLength && !hasTransferEncoding) {
          if (!hasTrailer && !typedRequest._removedContLen && typeof typedRequest._contentLength === "number") {
            headers["Content-Length"] = typedRequest._contentLength;
          } else if (!typedRequest._removedTE) {
            headers["Transfer-Encoding"] = "chunked";
          }
        }
        const transformedHeaders = sortHeaders ? generator.orderHeaders(headers) : headers;
        for (const [key, value2] of Object.entries(transformedHeaders)) {
          request.setHeader(key, value2);
        }
      }
      addRequest(request, options) {
        const typedRequest = request;
        typedRequest._storeHeader = (...args) => {
          this.transformRequest(request, { sortHeaders: true });
          return _storeHeader.call(request, ...args);
        };
        options.secureEndpoint = options.protocol === "https:";
        return super.addRequest(request, options);
      }
      toPascalCase(header) {
        return header.split("-").map((part) => {
          return part[0].toUpperCase() + part.slice(1).toLowerCase();
        }).join("-");
      }
    };
    __name(_TransformHeadersAgent, "TransformHeadersAgent");
    TransformHeadersAgent = _TransformHeadersAgent;
    __name(buildBasicAuthHeader, "buildBasicAuthHeader");
    initialize = /* @__PURE__ */ __name((self2, options) => {
      self2.proxy = typeof options.proxy === "string" ? new URL4(options.proxy) : options.proxy;
    }, "initialize");
    getPort = /* @__PURE__ */ __name((url3) => {
      if (url3.port !== "") {
        return Number(url3.port);
      }
      if (url3.protocol === "http:") {
        return 80;
      }
      if (url3.protocol === "https:") {
        return 443;
      }
      throw new Error(`Unexpected protocol: ${url3.protocol}`);
    }, "getPort");
    _HttpRegularProxyAgent = class _HttpRegularProxyAgent2 extends http4.Agent {
      constructor(options) {
        super(options);
        __publicField(this, "proxy");
        initialize(this, options);
      }
      addRequest(request, options) {
        if (options.socketPath) {
          super.addRequest(request, options);
          return;
        }
        let hostport = `${options.host}:${options.port}`;
        if (isIPv6(options.host)) {
          hostport = `[${options.host}]:${options.port}`;
        }
        const url3 = new URL4(`${request.protocol}//${hostport}${request.path}`);
        options = {
          ...options,
          host: this.proxy.hostname,
          port: getPort(this.proxy)
        };
        request.path = url3.href;
        const basic = buildBasicAuthHeader(this.proxy);
        if (basic) {
          request.setHeader("proxy-authorization", basic);
        }
        super.addRequest(request, options);
      }
    };
    __name(_HttpRegularProxyAgent, "HttpRegularProxyAgent");
    HttpRegularProxyAgent = _HttpRegularProxyAgent;
    _HttpProxyAgent = class _HttpProxyAgent2 extends http4.Agent {
      constructor(options) {
        super(options);
        __publicField(this, "proxy");
        initialize(this, options);
      }
      // @ts-expect-error New @types/node patch has narrower types than the originally exported got-scraping interface
      createConnection(options, callback) {
        if (options.path) {
          super.createConnection(options, callback);
          return;
        }
        const fn = this.proxy.protocol === "https:" ? https3.request : http4.request;
        let hostport = `${options.host}:${options.port}`;
        if (isIPv6(options.host)) {
          hostport = `[${options.host}]:${options.port}`;
        }
        const headers = {
          host: hostport
        };
        const basic = buildBasicAuthHeader(this.proxy);
        if (basic) {
          headers["proxy-authorization"] = basic;
          headers.authorization = basic;
        }
        const connectRequest = fn(this.proxy, {
          method: "CONNECT",
          headers,
          path: hostport,
          agent: false,
          rejectUnauthorized: false
        });
        connectRequest.once("connect", (response, socket, head) => {
          if (head.length > 0 || response.statusCode !== 200) {
            socket.destroy();
            const error = new Error(`The proxy responded with ${response.statusCode} ${response.statusMessage}: ${head.toString()}`);
            callback(error);
            return;
          }
          if (options.protocol === "https:") {
            callback(void 0, tls.connect({
              ...options,
              socket
            }));
            return;
          }
          callback(void 0, socket);
        });
        connectRequest.once("error", (error) => {
          callback(error);
        });
        connectRequest.end();
      }
    };
    __name(_HttpProxyAgent, "HttpProxyAgent");
    HttpProxyAgent = _HttpProxyAgent;
    _HttpsProxyAgent = class _HttpsProxyAgent2 extends https3.Agent {
      constructor(options) {
        super(options);
        __publicField(this, "proxy");
        initialize(this, options);
      }
      // @ts-expect-error New @types/node patch has narrower types than the originally exported got-scraping interface
      createConnection(options, callback) {
        HttpProxyAgent.prototype.createConnection.call(this, options, callback);
      }
    };
    __name(_HttpsProxyAgent, "HttpsProxyAgent");
    HttpsProxyAgent = _HttpsProxyAgent;
    ({
      HttpOverHttp2,
      HttpsOverHttp2,
      Http2OverHttp2,
      Http2OverHttps,
      Http2OverHttp
    } = import_http2_wrapper4.default.proxies);
    __name(proxyHook, "proxyHook");
    _ProxyError = class _ProxyError2 extends Error {
    };
    __name(_ProxyError, "ProxyError");
    ProxyError = _ProxyError;
    __name(validateProxyProtocol, "validateProxyProtocol");
    __name(getAgents, "getAgents");
    connect = /* @__PURE__ */ __name(async (proxyUrl, options, callback) => new Promise((resolve4, reject) => {
      let host = `${options.host}:${options.port}`;
      if (isIPv62(options.host)) {
        host = `[${options.host}]:${options.port}`;
      }
      void (async () => {
        try {
          const headers = {
            host
          };
          const url3 = new URL3(proxyUrl);
          const basic = buildBasicAuthHeader(url3);
          if (basic) {
            headers.authorization = basic;
            headers["proxy-authorization"] = basic;
          }
          const request = await (0, import_http2_wrapper3.auto)(url3, {
            method: "CONNECT",
            headers,
            path: host,
            // TODO: this property doesn't exist according to the types
            pathname: host,
            rejectUnauthorized: false
          });
          request.end();
          request.once("error", reject);
          request.once("connect", (response, socket, head) => {
            if (response.statusCode !== 200 || head.length > 0) {
              reject(new ProxyError(`Proxy responded with ${response.statusCode} ${response.statusMessage}: ${head.length} bytes.

Below is the first 100 bytes of the proxy response body:
${head.toString("utf8", 0, 100)}`, { cause: head.toString("utf8") }));
              socket.destroy();
              return;
            }
            const tlsSocket = tls2.connect({
              ...options,
              socket
            }, callback);
            resolve4(tlsSocket);
          });
        } catch (error) {
          reject(error);
        }
      })();
    }), "connect");
    createCaches = /* @__PURE__ */ __name(() => ({
      protocolCache: new QuickLRU({ maxSize: 1e3 }),
      resolveAlpnQueue: /* @__PURE__ */ new Map()
    }), "createCaches");
    defaults2 = createCaches();
    createResolveProtocol = /* @__PURE__ */ __name((proxyUrl, sessionData, timeout) => {
      let { protocolCache, resolveAlpnQueue } = defaults2;
      if (sessionData) {
        if (!sessionData.protocolCache || !sessionData.resolveAlpnQueue) {
          Object.assign(sessionData, createCaches());
        }
        protocolCache = sessionData.protocolCache;
        resolveAlpnQueue = sessionData.resolveAlpnQueue;
      }
      const connectWithProxy = /* @__PURE__ */ __name(async (pOptions, pCallback) => {
        return connect(proxyUrl, pOptions, pCallback);
      }, "connectWithProxy");
      const resolveProtocol = import_http2_wrapper3.auto.createResolveProtocol(
        protocolCache,
        resolveAlpnQueue,
        connectWithProxy
      );
      return async (...args) => resolveProtocol({
        ...args[0],
        timeout
      });
    }, "createResolveProtocol");
    __name(mergeHeaders, "mergeHeaders");
    getResolveProtocolFunction = /* @__PURE__ */ __name((options, proxyUrl, sessionData) => {
      const { resolveProtocol } = options;
      if (resolveProtocol) {
        return resolveProtocol;
      }
      if (proxyUrl) {
        return createResolveProtocol(proxyUrl, sessionData, Math.min(options?.timeout?.connect ?? 6e4, options?.timeout?.request ?? 6e4));
      }
      return (...args) => import_http2_wrapper2.default.auto.resolveProtocol({
        ...args[0],
        timeout: Math.min(options?.timeout?.connect ?? 6e4, options?.timeout?.request ?? 6e4)
      });
    }, "getResolveProtocolFunction");
    __name(browserHeadersHook, "browserHeadersHook");
    __name(customOptionsHook, "customOptionsHook");
    onResponse = /* @__PURE__ */ __name((response, propagate) => {
      const encoding = response.headers["content-encoding"]?.toLowerCase();
      const zlibOptions2 = {
        flush: zlib2.constants.Z_SYNC_FLUSH,
        finishFlush: zlib2.constants.Z_SYNC_FLUSH
      };
      const useDecompressor = /* @__PURE__ */ __name((decompressor) => {
        delete response.headers["content-encoding"];
        const result = new PassThrough({
          autoDestroy: false,
          destroy(error, callback) {
            response.destroy();
            callback(error);
          }
        });
        decompressor.once("error", (error) => {
          result.destroy(error);
        });
        response.pipe(decompressor).pipe(result);
        propagate(mimicResponse(response, result));
      }, "useDecompressor");
      if (encoding === "gzip" || encoding === "x-gzip") {
        useDecompressor(zlib2.createGunzip(zlibOptions2));
      } else if (encoding === "deflate" || encoding === "x-deflate") {
        let read2 = false;
        response.once("data", (chunk3) => {
          read2 = true;
          response.unshift(chunk3);
          const decompressor = (chunk3[0] & 15) === 8 ? zlib2.createInflate() : zlib2.createInflateRaw();
          useDecompressor(decompressor);
        });
        response.once("end", () => {
          if (!read2) {
            propagate(response);
          }
        });
      } else if (encoding === "br") {
        let read2 = false;
        response.once("data", (chunk3) => {
          read2 = true;
          response.unshift(chunk3);
          const decompressor = zlib2.createBrotliDecompress();
          useDecompressor(decompressor);
        });
        response.once("end", () => {
          if (!read2) {
            propagate(response);
          }
        });
      } else {
        propagate(response);
      }
    }, "onResponse");
    fixDecompress = /* @__PURE__ */ __name((options, next) => {
      const result = next(options);
      result.on("request", (request) => {
        const emit = request.emit.bind(request);
        request.emit = (event, ...args) => {
          if (event === "response" && options.decompress) {
            const response = args[0];
            const emitted = request.listenerCount("response") !== 0;
            onResponse(response, (fixedResponse) => {
              emit("response", fixedResponse);
            });
            return emitted;
          }
          return emit(event, ...args);
        };
      });
      return result;
    }, "fixDecompress");
    __name(http2Hook, "http2Hook");
    __name(insecureParserHook, "insecureParserHook");
    validationSchema = {
      proxyUrl: dist_default3.optional.string.url,
      useHeaderGenerator: dist_default3.optional.boolean,
      headerGeneratorOptions: dist_default3.optional.object,
      insecureHTTPParser: dist_default3.optional.boolean,
      sessionToken: dist_default3.optional.object
    };
    __name(optionsValidationHandler, "optionsValidationHandler");
    refererHook = /* @__PURE__ */ __name((options, response) => {
      const url3 = options.url;
      const resUrl = new URL6(response.url);
      const policy = response.headers["referer-policy"] || "strict-origin-when-cross-origin";
      if (policy === "no-referrer") {
        delete options.headers.referer;
      } else if (policy === "no-referrer-when-downgrade") {
        if (resUrl.protocol === "https:" && url3.protocol === "http:") {
          delete options.headers.referer;
        } else {
          options.headers.referer = `${resUrl.origin}${resUrl.pathname}${resUrl.search}`;
        }
      } else if (policy === "origin") {
        options.headers.referer = resUrl.origin;
      } else if (policy === "origin-when-cross-origin") {
        if (url3.origin === resUrl.origin) {
          options.headers.referer = `${resUrl.origin}${resUrl.pathname}${resUrl.search}`;
        } else {
          options.headers.referer = resUrl.origin;
        }
      } else if (policy === "same-origin") {
        if (url3.origin === resUrl.origin) {
          options.headers.referer = `${resUrl.origin}${resUrl.pathname}${resUrl.search}`;
        } else {
          delete options.headers.referer;
        }
      } else if (policy === "strict-origin") {
        if (resUrl.protocol === "https:" && url3.protocol === "http:") {
          delete options.headers.referer;
        } else {
          options.headers.referer = resUrl.origin;
        }
      } else if (policy === "strict-origin-when-cross-origin") {
        if (url3.origin === resUrl.origin) {
          options.headers.referer = `${resUrl.origin}${resUrl.pathname}${resUrl.search}`;
        } else if (resUrl.protocol === "https:" && url3.protocol === "http:") {
          delete options.headers.referer;
        } else {
          options.headers.referer = resUrl.origin;
        }
      } else if (policy === "unsafe-url") {
        options.headers.referer = `${resUrl.origin}${resUrl.pathname}${resUrl.search}`;
      }
    }, "refererHook");
    _Storage = class _Storage2 {
      constructor() {
        __publicField(this, "storage");
        this.storage = /* @__PURE__ */ new WeakMap();
      }
      get(token) {
        if (!token) {
          return;
        }
        if (!this.storage.has(token)) {
          this.storage.set(token, {});
        }
        return this.storage.get(token);
      }
    };
    __name(_Storage, "Storage");
    Storage = _Storage;
    storage = new Storage();
    sessionDataHook = /* @__PURE__ */ __name((options) => {
      options.context.sessionData = storage.get(options.context.sessionToken);
    }, "sessionDataHook");
    supportsFirefoxFully = Number(process.versions.node.split(".")[0]) >= 17;
    SSL_OP_TLSEXT_PADDING = 1 << 4;
    SSL_OP_NO_ENCRYPT_THEN_MAC = 1 << 19;
    ecdhCurve = {
      firefox: (supportsFirefoxFully ? [
        "X25519",
        "prime256v1",
        "secp384r1",
        "secp521r1",
        "ffdhe2048",
        "ffdhe3072"
      ] : [
        "X25519",
        "prime256v1",
        "secp384r1",
        "secp521r1"
      ]).join(":"),
      chrome: [
        "X25519",
        "prime256v1",
        "secp384r1"
      ].join(":"),
      safari: [
        "X25519",
        "prime256v1",
        "secp384r1",
        "secp521r1"
      ].join(":")
    };
    sigalgs = {
      firefox: [
        "ecdsa_secp256r1_sha256",
        "ecdsa_secp384r1_sha384",
        "ecdsa_secp521r1_sha512",
        "rsa_pss_rsae_sha256",
        "rsa_pss_rsae_sha384",
        "rsa_pss_rsae_sha512",
        "rsa_pkcs1_sha256",
        "rsa_pkcs1_sha384",
        "rsa_pkcs1_sha512",
        "ECDSA+SHA1",
        "rsa_pkcs1_sha1"
      ].join(":"),
      chrome: [
        "ecdsa_secp256r1_sha256",
        "rsa_pss_rsae_sha256",
        "rsa_pkcs1_sha256",
        "ecdsa_secp384r1_sha384",
        "rsa_pss_rsae_sha384",
        "rsa_pkcs1_sha384",
        "rsa_pss_rsae_sha512",
        "rsa_pkcs1_sha512"
      ].join(":"),
      safari: [
        "ecdsa_secp256r1_sha256",
        "rsa_pss_rsae_sha256",
        "rsa_pkcs1_sha256",
        "ecdsa_secp384r1_sha384",
        "ECDSA+SHA1",
        "rsa_pss_rsae_sha384",
        "rsa_pkcs1_sha384",
        "rsa_pss_rsae_sha512",
        "rsa_pkcs1_sha512",
        "RSA+SHA1"
      ].join(":")
    };
    knownCiphers = {
      chrome: [
        // Chrome v92
        "TLS_AES_128_GCM_SHA256",
        "TLS_AES_256_GCM_SHA384",
        "TLS_CHACHA20_POLY1305_SHA256",
        "ECDHE-ECDSA-AES128-GCM-SHA256",
        "ECDHE-RSA-AES128-GCM-SHA256",
        "ECDHE-ECDSA-AES256-GCM-SHA384",
        "ECDHE-RSA-AES256-GCM-SHA384",
        "ECDHE-ECDSA-CHACHA20-POLY1305",
        "ECDHE-RSA-CHACHA20-POLY1305",
        // Legacy:
        "ECDHE-RSA-AES128-SHA",
        "ECDHE-RSA-AES256-SHA",
        "AES128-GCM-SHA256",
        "AES256-GCM-SHA384",
        "AES128-SHA",
        "AES256-SHA"
      ].join(":"),
      firefox: [
        // Firefox v91
        "TLS_AES_128_GCM_SHA256",
        "TLS_CHACHA20_POLY1305_SHA256",
        "TLS_AES_256_GCM_SHA384",
        "ECDHE-ECDSA-AES128-GCM-SHA256",
        "ECDHE-RSA-AES128-GCM-SHA256",
        "ECDHE-ECDSA-CHACHA20-POLY1305",
        "ECDHE-RSA-CHACHA20-POLY1305",
        "ECDHE-ECDSA-AES256-GCM-SHA384",
        "ECDHE-RSA-AES256-GCM-SHA384",
        // Legacy:
        "ECDHE-ECDSA-AES256-SHA",
        "ECDHE-ECDSA-AES128-SHA",
        "ECDHE-RSA-AES128-SHA",
        "ECDHE-RSA-AES256-SHA",
        "AES128-GCM-SHA256",
        "AES256-GCM-SHA384",
        "AES128-SHA",
        "AES256-SHA",
        "DES-CBC3-SHA"
      ].join(":"),
      safari: [
        // Safari v14
        "TLS_AES_128_GCM_SHA256",
        "TLS_AES_256_GCM_SHA384",
        "TLS_CHACHA20_POLY1305_SHA256",
        "ECDHE-ECDSA-AES256-GCM-SHA384",
        "ECDHE-ECDSA-AES128-GCM-SHA256",
        "ECDHE-ECDSA-CHACHA20-POLY1305",
        "ECDHE-RSA-AES256-GCM-SHA384",
        "ECDHE-RSA-AES128-GCM-SHA256",
        "ECDHE-RSA-CHACHA20-POLY1305",
        // Legacy:
        "ECDHE-ECDSA-AES256-SHA384",
        "ECDHE-ECDSA-AES128-SHA256",
        "ECDHE-ECDSA-AES256-SHA",
        "ECDHE-ECDSA-AES128-SHA",
        "ECDHE-RSA-AES256-SHA384",
        "ECDHE-RSA-AES128-SHA256",
        "ECDHE-RSA-AES256-SHA",
        "ECDHE-RSA-AES128-SHA",
        "AES256-GCM-SHA384",
        "AES128-GCM-SHA256",
        "AES256-SHA256",
        "AES128-SHA256",
        "AES256-SHA",
        "AES128-SHA",
        "ECDHE-ECDSA-DES-CBC3-SHA",
        "ECDHE-RSA-DES-CBC3-SHA",
        "DES-CBC3-SHA"
      ].join(":")
    };
    minVersion = {
      firefox: "TLSv1.2",
      chrome: "TLSv1",
      safari: "TLSv1.2"
    };
    maxVersion = {
      firefox: "TLSv1.3",
      chrome: "TLSv1.3",
      safari: "TLSv1.3"
    };
    secureOptions = {
      firefox: SSL_OP_TLSEXT_PADDING | SSL_OP_NO_ENCRYPT_THEN_MAC,
      chrome: SSL_OP_TLSEXT_PADDING | SSL_OP_NO_ENCRYPT_THEN_MAC,
      safari: SSL_OP_TLSEXT_PADDING | SSL_OP_NO_ENCRYPT_THEN_MAC
    };
    requestOCSP = {
      firefox: true,
      chrome: true,
      safari: true
    };
    getUserAgent = /* @__PURE__ */ __name((headers) => {
      for (const [header, value2] of Object.entries(headers)) {
        if (header.toLowerCase() === "user-agent") {
          return value2;
        }
      }
      return void 0;
    }, "getUserAgent");
    getBrowser = /* @__PURE__ */ __name((userAgent) => {
      if (!userAgent) {
        return;
      }
      let browser;
      if (userAgent.includes("Firefox")) {
        browser = "firefox";
      } else if (userAgent.includes("Chrome")) {
        browser = "chrome";
      } else {
        browser = "safari";
      }
      return browser;
    }, "getBrowser");
    __name(tlsHook, "tlsHook");
    handlers = [
      fixDecompress
    ];
    beforeRequest = [
      insecureParserHook,
      sessionDataHook,
      http2Hook,
      proxyHook,
      browserHeadersHook,
      tlsHook
    ];
    init2 = [
      optionsValidationHandler,
      customOptionsHook
    ];
    beforeRedirect = [
      refererHook
    ];
    gotScraping = got.extend({
      handlers,
      mutableDefaults: true,
      // Most of the new browsers use HTTP/2
      http2: true,
      https: {
        // In contrast to browsers, we don't usually do login operations.
        // We want the content.
        rejectUnauthorized: false
      },
      // Don't fail on 404
      throwHttpErrors: false,
      timeout: { request: 6e4 },
      retry: { limit: 0 },
      headers: {
        "user-agent": void 0
      },
      context: {
        headerGenerator: new HeaderGenerator(),
        useHeaderGenerator: true,
        insecureHTTPParser: true
      },
      agent: {
        http: new TransformHeadersAgent(http3.globalAgent),
        https: new TransformHeadersAgent(https2.globalAgent)
      },
      hooks: {
        init: init2,
        beforeRequest,
        beforeRedirect
      }
    });
    setupDecodeURI = /* @__PURE__ */ __name(() => {
      const { set } = Object.getOwnPropertyDescriptor(Options.prototype, "url");
      Object.defineProperty(Options.prototype, "url", {
        set(value2) {
          const originalDecodeURI = global.decodeURI;
          global.decodeURI = (str) => str;
          try {
            return set.call(this, value2);
          } finally {
            global.decodeURI = originalDecodeURI;
          }
        }
      });
    }, "setupDecodeURI");
    setupDecodeURI();
    hooks = {
      init: init2,
      beforeRequest,
      beforeRedirect,
      fixDecompress,
      insecureParserHook,
      sessionDataHook,
      http2Hook,
      proxyHook,
      browserHeadersHook,
      tlsHook,
      optionsValidationHandler,
      customOptionsHook,
      refererHook
    };
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/gotScraping.js
var require_gotScraping = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/gotScraping.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.gotScraping = void 0;
    var gotScraping3 = (async (...args) => {
      exports.gotScraping = gotScraping3 = (await Promise.resolve().then(() => (init_dist6(), dist_exports))).gotScraping;
      return gotScraping3(...args);
    });
    exports.gotScraping = gotScraping3;
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/extract-urls.js
var require_extract_urls = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/extract-urls.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.downloadListOfUrls = downloadListOfUrls2;
    exports.extractUrls = extractUrls2;
    exports.tryAbsoluteURL = tryAbsoluteURL2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var general_1 = require_general2();
    var gotScraping_1 = require_gotScraping();
    async function downloadListOfUrls2(options) {
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        url: ow_1.default.string.url,
        encoding: ow_1.default.optional.string,
        urlRegExp: ow_1.default.optional.regExp,
        proxyUrl: ow_1.default.optional.string
      }));
      const { url: url3, encoding = "utf8", urlRegExp = general_1.URL_NO_COMMAS_REGEX, proxyUrl } = options;
      const match = url3.match(/^(https:\/\/docs\.google\.com\/spreadsheets\/d\/(?:\w|-)+)\/?/);
      let fixedUrl = url3;
      if (match) {
        fixedUrl = `${match[1]}/gviz/tq?tqx=out:csv`;
      }
      const { body: string } = await (0, gotScraping_1.gotScraping)({ url: fixedUrl, encoding, proxyUrl });
      return extractUrls2({ string, urlRegExp });
    }
    function extractUrls2(options) {
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        string: ow_1.default.string,
        urlRegExp: ow_1.default.optional.regExp
      }));
      const lines = options.string.split("\n");
      const result = [];
      const urlRegExp = options.urlRegExp ?? general_1.URL_NO_COMMAS_REGEX;
      for (const line2 of lines) {
        result.push(...line2.match(urlRegExp) ?? []);
      }
      return result;
    }
    function tryAbsoluteURL2(href, baseUrl) {
      try {
        return new URL(href, baseUrl).href;
      } catch {
        return void 0;
      }
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/cheerio.js
var require_cheerio2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/cheerio.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.htmlToText = htmlToText2;
    exports.extractUrlsFromCheerio = extractUrlsFromCheerio2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var cheerio = tslib_1.__importStar(require_lib12());
    var extract_urls_1 = require_extract_urls();
    var SKIP_TAGS_REGEX = /^(script|style|canvas|svg|noscript)$/i;
    var BLOCK_TAGS_REGEX = /^(p|h1|h2|h3|h4|h5|h6|ol|ul|li|pre|address|blockquote|dl|div|fieldset|form|table|tr|select|option)$/i;
    function htmlToText2(htmlOrCheerioElement) {
      if (!htmlOrCheerioElement)
        return "";
      const $ = typeof htmlOrCheerioElement === "function" ? htmlOrCheerioElement : cheerio.load(htmlOrCheerioElement, { decodeEntities: true });
      let text = "";
      const process4 = (elems) => {
        const len = elems ? elems.length : 0;
        for (let i5 = 0; i5 < len; i5++) {
          const elem = elems[i5];
          if (elem.type === "text") {
            let compr;
            if (elem.parent && elem.parent.tagName === "pre")
              compr = elem.data;
            else
              compr = elem.data.replace(/\s+/g, " ");
            if (compr.startsWith(" ") && /(^|\s)$/.test(text))
              compr = compr.substring(1);
            text += compr;
          } else if (elem.type === "comment" || SKIP_TAGS_REGEX.test(elem.tagName)) {
          } else if (elem.tagName === "br") {
            text += "\n";
          } else if (elem.tagName === "td") {
            process4(elem.children);
            text += "	";
          } else {
            const isBlockTag = BLOCK_TAGS_REGEX.test(elem.tagName);
            if (isBlockTag && !/(^|\n)$/.test(text))
              text += "\n";
            process4(elem.children);
            if (isBlockTag && !text.endsWith("\n"))
              text += "\n";
          }
        }
      };
      const $body = $("body");
      process4($body.length > 0 ? $body : $.root());
      return text.trim();
    }
    function extractUrlsFromCheerio2($, selector = "a", baseUrl = "") {
      const base = $("base").attr("href");
      const absoluteBaseUrl = base && (0, extract_urls_1.tryAbsoluteURL)(base, baseUrl);
      if (absoluteBaseUrl) {
        baseUrl = absoluteBaseUrl;
      }
      return $(selector).map((_i, el) => $(el).attr("href")).get().filter(Boolean).map((href) => {
        const isHrefAbsolute = /^[a-z][a-z0-9+.-]*:/.test(href);
        if (!isHrefAbsolute && !baseUrl) {
          throw new Error(`An extracted URL: ${href} is relative and baseUrl is not set. Provide a baseUrl to automatically resolve relative URLs.`);
        }
        return baseUrl ? (0, extract_urls_1.tryAbsoluteURL)(href, baseUrl) : href;
      }).filter(Boolean);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/chunk.js
var require_chunk = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/chunk.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.chunk = chunk3;
    function chunk3(array, chunkSize) {
      if (!Array.isArray(array))
        throw new TypeError("entries must be an array.");
      if (!Number.isInteger(chunkSize))
        throw new TypeError("chunkSize must be an integer.");
      if (chunkSize < 1)
        throw new RangeError("chunkSize must be 1 or greater.");
      const clone = array.slice();
      const chunks = [];
      while (clone.length)
        chunks.push(clone.splice(0, chunkSize));
      return chunks;
    }
  }
});

// ../../node_modules/.pnpm/through@2.3.8/node_modules/through/index.js
var require_through = __commonJS({
  "../../node_modules/.pnpm/through@2.3.8/node_modules/through/index.js"(exports, module) {
    var Stream = __require("stream");
    exports = module.exports = through;
    through.through = through;
    function through(write2, end2, opts2) {
      write2 = write2 || function(data2) {
        this.queue(data2);
      };
      end2 = end2 || function() {
        this.queue(null);
      };
      var ended = false, destroyed = false, buffer = [], _ended = false;
      var stream7 = new Stream();
      stream7.readable = stream7.writable = true;
      stream7.paused = false;
      stream7.autoDestroy = !(opts2 && opts2.autoDestroy === false);
      stream7.write = function(data2) {
        write2.call(this, data2);
        return !stream7.paused;
      };
      function drain() {
        while (buffer.length && !stream7.paused) {
          var data2 = buffer.shift();
          if (null === data2)
            return stream7.emit("end");
          else
            stream7.emit("data", data2);
        }
      }
      stream7.queue = stream7.push = function(data2) {
        if (_ended) return stream7;
        if (data2 === null) _ended = true;
        buffer.push(data2);
        drain();
        return stream7;
      };
      stream7.on("end", function() {
        stream7.readable = false;
        if (!stream7.writable && stream7.autoDestroy)
          process.nextTick(function() {
            stream7.destroy();
          });
      });
      function _end() {
        stream7.writable = false;
        end2.call(stream7);
        if (!stream7.readable && stream7.autoDestroy)
          stream7.destroy();
      }
      stream7.end = function(data2) {
        if (ended) return;
        ended = true;
        if (arguments.length) stream7.write(data2);
        _end();
        return stream7;
      };
      stream7.destroy = function() {
        if (destroyed) return;
        destroyed = true;
        ended = true;
        buffer.length = 0;
        stream7.writable = stream7.readable = false;
        stream7.emit("close");
        return stream7;
      };
      stream7.pause = function() {
        if (stream7.paused) return;
        stream7.paused = true;
        return stream7;
      };
      stream7.resume = function() {
        if (stream7.paused) {
          stream7.paused = false;
          stream7.emit("resume");
        }
        drain();
        if (!stream7.paused)
          stream7.emit("drain");
        return stream7;
      };
      return stream7;
    }
  }
});

// ../../node_modules/.pnpm/from@0.1.7/node_modules/from/index.js
var require_from = __commonJS({
  "../../node_modules/.pnpm/from@0.1.7/node_modules/from/index.js"(exports, module) {
    "use strict";
    var Stream = __require("stream");
    module.exports = function from(source) {
      if (Array.isArray(source)) {
        var source_index = 0, source_len = source.length;
        return from(function(i6) {
          if (source_index < source_len)
            this.emit("data", source[source_index++]);
          else
            this.emit("end");
          return true;
        });
      }
      var s4 = new Stream(), i5 = 0;
      s4.ended = false;
      s4.started = false;
      s4.readable = true;
      s4.writable = false;
      s4.paused = false;
      s4.ended = false;
      s4.pause = function() {
        s4.started = true;
        s4.paused = true;
      };
      function next() {
        s4.started = true;
        if (s4.ended) return;
        while (!s4.ended && !s4.paused && source.call(s4, i5++, function() {
          if (!s4.ended && !s4.paused)
            process.nextTick(next);
        }))
          ;
      }
      s4.resume = function() {
        s4.started = true;
        s4.paused = false;
        next();
      };
      s4.on("end", function() {
        s4.ended = true;
        s4.readable = false;
        process.nextTick(s4.destroy);
      });
      s4.destroy = function() {
        s4.ended = true;
        s4.emit("close");
      };
      process.nextTick(function() {
        if (!s4.started) s4.resume();
      });
      return s4;
    };
  }
});

// ../../node_modules/.pnpm/duplexer@0.1.2/node_modules/duplexer/index.js
var require_duplexer = __commonJS({
  "../../node_modules/.pnpm/duplexer@0.1.2/node_modules/duplexer/index.js"(exports, module) {
    var Stream = __require("stream");
    var writeMethods = ["write", "end", "destroy"];
    var readMethods = ["resume", "pause"];
    var readEvents = ["data", "close"];
    var slice2 = Array.prototype.slice;
    module.exports = duplex;
    function forEach2(arr, fn) {
      if (arr.forEach) {
        return arr.forEach(fn);
      }
      for (var i5 = 0; i5 < arr.length; i5++) {
        fn(arr[i5], i5);
      }
    }
    function duplex(writer, reader) {
      var stream7 = new Stream();
      var ended = false;
      forEach2(writeMethods, proxyWriter);
      forEach2(readMethods, proxyReader);
      forEach2(readEvents, proxyStream);
      reader.on("end", handleEnd);
      writer.on("drain", function() {
        stream7.emit("drain");
      });
      writer.on("error", reemit);
      reader.on("error", reemit);
      stream7.writable = writer.writable;
      stream7.readable = reader.readable;
      return stream7;
      function proxyWriter(methodName) {
        stream7[methodName] = method;
        function method() {
          return writer[methodName].apply(writer, arguments);
        }
      }
      function proxyReader(methodName) {
        stream7[methodName] = method;
        function method() {
          stream7.emit(methodName);
          var func = reader[methodName];
          if (func) {
            return func.apply(reader, arguments);
          }
          reader.emit(methodName);
        }
      }
      function proxyStream(methodName) {
        reader.on(methodName, reemit2);
        function reemit2() {
          var args = slice2.call(arguments);
          args.unshift(methodName);
          stream7.emit.apply(stream7, args);
        }
      }
      function handleEnd() {
        if (ended) {
          return;
        }
        ended = true;
        var args = slice2.call(arguments);
        args.unshift("end");
        stream7.emit.apply(stream7, args);
      }
      function reemit(err2) {
        stream7.emit("error", err2);
      }
    }
  }
});

// ../../node_modules/.pnpm/map-stream@0.1.0/node_modules/map-stream/index.js
var require_map_stream = __commonJS({
  "../../node_modules/.pnpm/map-stream@0.1.0/node_modules/map-stream/index.js"(exports, module) {
    var Stream = __require("stream").Stream;
    module.exports = function(mapper, opts2) {
      var stream7 = new Stream(), self2 = this, inputs = 0, outputs = 0, ended = false, paused = false, destroyed = false, lastWritten = 0, inNext = false;
      this.opts = opts2 || {};
      var errorEventName = this.opts.failures ? "failure" : "error";
      var writeQueue = {};
      stream7.writable = true;
      stream7.readable = true;
      function queueData(data2, number3) {
        var nextToWrite = lastWritten + 1;
        if (number3 === nextToWrite) {
          if (data2 !== void 0) {
            stream7.emit.apply(stream7, ["data", data2]);
          }
          lastWritten++;
          nextToWrite++;
        } else {
          writeQueue[number3] = data2;
        }
        if (writeQueue.hasOwnProperty(nextToWrite)) {
          var dataToWrite = writeQueue[nextToWrite];
          delete writeQueue[nextToWrite];
          return queueData(dataToWrite, nextToWrite);
        }
        outputs++;
        if (inputs === outputs) {
          if (paused) paused = false, stream7.emit("drain");
          if (ended) end2();
        }
      }
      function next(err2, data2, number3) {
        if (destroyed) return;
        inNext = true;
        if (!err2 || self2.opts.failures) {
          queueData(data2, number3);
        }
        if (err2) {
          stream7.emit.apply(stream7, [errorEventName, err2]);
        }
        inNext = false;
      }
      function wrappedMapper(input, number3, callback) {
        return mapper.call(null, input, function(err2, data2) {
          callback(err2, data2, number3);
        });
      }
      stream7.write = function(data2) {
        if (ended) throw new Error("map stream is not writable");
        inNext = false;
        inputs++;
        try {
          var written = wrappedMapper(data2, inputs, next);
          paused = written === false;
          return !paused;
        } catch (err2) {
          if (inNext)
            throw err2;
          next(err2);
          return !paused;
        }
      };
      function end2(data2) {
        ended = true;
        stream7.writable = false;
        if (data2 !== void 0) {
          return queueData(data2, inputs);
        } else if (inputs == outputs) {
          stream7.readable = false, stream7.emit("end"), stream7.destroy();
        }
      }
      stream7.end = function(data2) {
        if (ended) return;
        end2();
      };
      stream7.destroy = function() {
        ended = destroyed = true;
        stream7.writable = stream7.readable = paused = false;
        process.nextTick(function() {
          stream7.emit("close");
        });
      };
      stream7.pause = function() {
        paused = true;
      };
      stream7.resume = function() {
        paused = false;
      };
      return stream7;
    };
  }
});

// ../../node_modules/.pnpm/pause-stream@0.0.11/node_modules/pause-stream/index.js
var require_pause_stream = __commonJS({
  "../../node_modules/.pnpm/pause-stream@0.0.11/node_modules/pause-stream/index.js"(exports, module) {
    module.exports = require_through();
  }
});

// ../../node_modules/.pnpm/split@0.3.3/node_modules/split/index.js
var require_split = __commonJS({
  "../../node_modules/.pnpm/split@0.3.3/node_modules/split/index.js"(exports, module) {
    var through = require_through();
    var Decoder = __require("string_decoder").StringDecoder;
    module.exports = split2;
    function split2(matcher, mapper, options) {
      var decoder2 = new Decoder();
      var soFar = "";
      var maxLength = options && options.maxLength;
      if ("function" === typeof matcher)
        mapper = matcher, matcher = null;
      if (!matcher)
        matcher = /\r?\n/;
      function emit(stream7, piece) {
        if (mapper) {
          try {
            piece = mapper(piece);
          } catch (err2) {
            return stream7.emit("error", err2);
          }
          if ("undefined" !== typeof piece)
            stream7.queue(piece);
        } else
          stream7.queue(piece);
      }
      function next(stream7, buffer) {
        var pieces = ((soFar != null ? soFar : "") + buffer).split(matcher);
        soFar = pieces.pop();
        if (maxLength && soFar.length > maxLength)
          stream7.emit("error", new Error("maximum buffer reached"));
        for (var i5 = 0; i5 < pieces.length; i5++) {
          var piece = pieces[i5];
          emit(stream7, piece);
        }
      }
      return through(
        function(b3) {
          next(this, decoder2.write(b3));
        },
        function() {
          if (decoder2.end)
            next(this, decoder2.end());
          if (soFar != null)
            emit(this, soFar);
          this.queue(null);
        }
      );
    }
  }
});

// ../../node_modules/.pnpm/stream-combiner@0.0.4/node_modules/stream-combiner/index.js
var require_stream_combiner = __commonJS({
  "../../node_modules/.pnpm/stream-combiner@0.0.4/node_modules/stream-combiner/index.js"(exports, module) {
    var duplexer = require_duplexer();
    module.exports = function() {
      var streams = [].slice.call(arguments), first = streams[0], last2 = streams[streams.length - 1], thepipe = duplexer(first, last2);
      if (streams.length == 1)
        return streams[0];
      else if (!streams.length)
        throw new Error("connect called with empty args");
      function recurse(streams2) {
        if (streams2.length < 2)
          return;
        streams2[0].pipe(streams2[1]);
        recurse(streams2.slice(1));
      }
      recurse(streams);
      function onerror() {
        var args = [].slice.call(arguments);
        args.unshift("error");
        thepipe.emit.apply(thepipe, args);
      }
      for (var i5 = 1; i5 < streams.length - 1; i5++)
        streams[i5].on("error", onerror);
      return thepipe;
    };
  }
});

// ../../node_modules/.pnpm/event-stream@3.3.4/node_modules/event-stream/index.js
var require_event_stream = __commonJS({
  "../../node_modules/.pnpm/event-stream@3.3.4/node_modules/event-stream/index.js"(exports) {
    var Stream = __require("stream").Stream;
    var es = exports;
    var through = require_through();
    var from = require_from();
    var duplex = require_duplexer();
    var map = require_map_stream();
    var pause = require_pause_stream();
    var split2 = require_split();
    var pipeline2 = require_stream_combiner();
    var immediately = global.setImmediate || process.nextTick;
    es.Stream = Stream;
    es.through = through;
    es.from = from;
    es.duplex = duplex;
    es.map = map;
    es.pause = pause;
    es.split = split2;
    es.pipeline = es.connect = es.pipe = pipeline2;
    es.concat = //actually this should be called concat
    es.merge = function() {
      var toMerge = [].slice.call(arguments);
      if (toMerge.length === 1 && toMerge[0] instanceof Array) {
        toMerge = toMerge[0];
      }
      var stream7 = new Stream();
      stream7.setMaxListeners(0);
      var endCount = 0;
      stream7.writable = stream7.readable = true;
      if (toMerge.length) {
        toMerge.forEach(function(e4) {
          e4.pipe(stream7, { end: false });
          var ended = false;
          e4.on("end", function() {
            if (ended) return;
            ended = true;
            endCount++;
            if (endCount == toMerge.length)
              stream7.emit("end");
          });
        });
      } else {
        process.nextTick(function() {
          stream7.emit("end");
        });
      }
      stream7.write = function(data2) {
        this.emit("data", data2);
      };
      stream7.destroy = function() {
        toMerge.forEach(function(e4) {
          if (e4.destroy) e4.destroy();
        });
      };
      return stream7;
    };
    es.writeArray = function(done) {
      if ("function" !== typeof done)
        throw new Error("function writeArray (done): done must be function");
      var a5 = new Stream(), array = [], isDone = false;
      a5.write = function(l4) {
        array.push(l4);
      };
      a5.end = function() {
        isDone = true;
        done(null, array);
      };
      a5.writable = true;
      a5.readable = false;
      a5.destroy = function() {
        a5.writable = a5.readable = false;
        if (isDone) return;
        done(new Error("destroyed before end"), array);
      };
      return a5;
    };
    es.readArray = function(array) {
      var stream7 = new Stream(), i5 = 0, paused = false, ended = false;
      stream7.readable = true;
      stream7.writable = false;
      if (!Array.isArray(array))
        throw new Error("event-stream.read expects an array");
      stream7.resume = function() {
        if (ended) return;
        paused = false;
        var l4 = array.length;
        while (i5 < l4 && !paused && !ended) {
          stream7.emit("data", array[i5++]);
        }
        if (i5 == l4 && !ended)
          ended = true, stream7.readable = false, stream7.emit("end");
      };
      process.nextTick(stream7.resume);
      stream7.pause = function() {
        paused = true;
      };
      stream7.destroy = function() {
        ended = true;
        stream7.emit("close");
      };
      return stream7;
    };
    es.readable = function(func, continueOnError) {
      var stream7 = new Stream(), i5 = 0, paused = false, ended = false, reading = false;
      stream7.readable = true;
      stream7.writable = false;
      if ("function" !== typeof func)
        throw new Error("event-stream.readable expects async function");
      stream7.on("end", function() {
        ended = true;
      });
      function get(err2, data2) {
        if (err2) {
          stream7.emit("error", err2);
          if (!continueOnError) stream7.emit("end");
        } else if (arguments.length > 1)
          stream7.emit("data", data2);
        immediately(function() {
          if (ended || paused || reading) return;
          try {
            reading = true;
            func.call(stream7, i5++, function() {
              reading = false;
              get.apply(null, arguments);
            });
          } catch (err3) {
            stream7.emit("error", err3);
          }
        });
      }
      stream7.resume = function() {
        paused = false;
        get();
      };
      process.nextTick(get);
      stream7.pause = function() {
        paused = true;
      };
      stream7.destroy = function() {
        stream7.emit("end");
        stream7.emit("close");
        ended = true;
      };
      return stream7;
    };
    es.mapSync = function(sync) {
      return es.through(function write2(data2) {
        var mappedData;
        try {
          mappedData = sync(data2);
        } catch (err2) {
          return this.emit("error", err2);
        }
        if (mappedData !== void 0)
          this.emit("data", mappedData);
      });
    };
    es.log = function(name) {
      return es.through(function(data2) {
        var args = [].slice.call(arguments);
        if (name) console.error(name, data2);
        else console.error(data2);
        this.emit("data", data2);
      });
    };
    es.child = function(child) {
      return es.duplex(child.stdin, child.stdout);
    };
    es.parse = function(options) {
      var emitError = !!(options ? options.error : false);
      return es.through(function(data2) {
        var obj;
        try {
          if (data2)
            obj = JSON.parse(data2.toString());
        } catch (err2) {
          if (emitError)
            return this.emit("error", err2);
          return console.error(err2, "attempting to parse:", data2);
        }
        if (obj !== void 0)
          this.emit("data", obj);
      });
    };
    es.stringify = function() {
      var Buffer5 = __require("buffer").Buffer;
      return es.mapSync(function(e4) {
        return JSON.stringify(Buffer5.isBuffer(e4) ? e4.toString() : e4) + "\n";
      });
    };
    es.replace = function(from2, to) {
      return es.pipeline(es.split(from2), es.join(to));
    };
    es.join = function(str) {
      if ("function" === typeof str)
        return es.wait(str);
      var first = true;
      return es.through(function(data2) {
        if (!first)
          this.emit("data", str);
        first = false;
        this.emit("data", data2);
        return true;
      });
    };
    es.wait = function(callback) {
      var arr = [];
      return es.through(
        function(data2) {
          arr.push(data2);
        },
        function() {
          var body = Buffer.isBuffer(arr[0]) ? Buffer.concat(arr) : arr.join("");
          this.emit("data", body);
          this.emit("end");
          if (callback) callback(null, body);
        }
      );
    };
    es.pipeable = function() {
      throw new Error("[EVENT-STREAM] es.pipeable is deprecated");
    };
  }
});

// ../../node_modules/.pnpm/@apify+ps-tree@1.2.0/node_modules/@apify/ps-tree/index.js
var require_ps_tree = __commonJS({
  "../../node_modules/.pnpm/@apify+ps-tree@1.2.0/node_modules/@apify/ps-tree/index.js"(exports, module) {
    "use strict";
    var spawn = __require("child_process").spawn;
    var es = require_event_stream();
    module.exports = function childrenOfPid(pid, includeRoot, callback) {
      var headers = null;
      if (typeof includeRoot === "function") {
        callback = includeRoot;
        includeRoot = false;
      }
      if (typeof callback !== "function") {
        throw new Error("childrenOfPid(pid, callback) expects callback");
      }
      if (typeof pid === "number") {
        pid = pid.toString();
      }
      var processLister;
      if (process.platform === "win32") {
        processLister = spawn("wmic.exe", ["PROCESS", "GET", "ProcessId,ParentProcessId,WorkingSetSize,Name"]);
      } else {
        processLister = spawn("ps", ["-A", "-o", "ppid,pid,stat,rss,comm"]);
      }
      processLister.on("error", callback);
      es.connect(
        // spawn('ps', ['-A', '-o', 'ppid,pid,stat,comm']).stdout,
        processLister.stdout,
        es.split(),
        es.map(function(line2, cb) {
          var columns = line2.trim().split(/\s+/);
          if (!headers) {
            headers = columns;
            headers = headers.map(normalizeHeader2);
            return cb();
          }
          if (process.platform == "win32") {
            columns[2] = parseInt(columns[2], 10);
          } else {
            columns[3] = parseInt(columns[3], 10);
            columns[3] *= 1024;
          }
          var row = {};
          var h4 = headers.slice();
          while (h4.length) {
            row[h4.shift()] = h4.length ? columns.shift() : columns.join(" ");
          }
          if (process.platform == "win32") {
            row["STAT"] = null;
          }
          return cb(null, row);
        }),
        es.writeArray(function(err2, ps) {
          var parents = {};
          var children = [];
          parents[pid] = true;
          ps.forEach(function(proc) {
            if (parents[proc.PPID]) {
              parents[proc.PID] = true;
              children.push(proc);
            } else if (includeRoot && pid === proc.PID) {
              children.push(proc);
            }
          });
          callback(null, children);
        })
      ).on("error", callback);
    };
    function normalizeHeader2(str) {
      if (process.platform !== "win32") {
        if (str === "COMM") return "COMMAND";
        return str;
      }
      switch (str) {
        case "Name":
          return "COMMAND";
        case "ParentProcessId":
          return "PPID";
        case "ProcessId":
          return "PID";
        case "Status":
          return "STAT";
        case "WorkingSetSize":
          return "RSS";
        default:
          throw new Error("Unknown process listing header: " + str);
      }
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/memory-info.js
var require_memory_info = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/memory-info.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getMemoryInfo = getMemoryInfo2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_child_process_1 = __require("node:child_process");
    var promises_1 = __require("node:fs/promises");
    var node_os_1 = __require("node:os");
    var node_util_1 = tslib_1.__importDefault(__require("node:util"));
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var ps_tree_1 = tslib_1.__importDefault(require_ps_tree());
    var general_1 = require_general2();
    var MEMORY_FILE_PATHS = {
      TOTAL: {
        V1: "/sys/fs/cgroup/memory/memory.limit_in_bytes",
        V2: "/sys/fs/cgroup/memory.max"
      },
      USED: {
        V1: "/sys/fs/cgroup/memory/memory.usage_in_bytes",
        V2: "/sys/fs/cgroup/memory.current"
      }
    };
    async function getMemoryInfo2() {
      const psTreePromised = node_util_1.default.promisify(ps_tree_1.default);
      const isLambdaEnvironment = process.platform === "linux" && !!process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE;
      const isDockerVar = !isLambdaEnvironment && await (0, general_1.isDocker)();
      let mainProcessBytes = -1;
      let childProcessesBytes = 0;
      if (isLambdaEnvironment) {
        mainProcessBytes = process.memoryUsage().rss;
        const memInfo = (0, node_child_process_1.execSync)("cat /proc/meminfo").toString();
        const values = memInfo.split(/[\n: ]/).filter((val) => val.trim());
        childProcessesBytes = +values[19] * 1e3 - mainProcessBytes;
      } else {
        const processes = await psTreePromised(process.pid, true);
        processes.forEach((rec) => {
          if (rec.COMMAND === "ps" || rec.COMMAND === "WMIC.exe") {
            return;
          }
          const bytes = parseInt(rec.RSS, 10);
          if (rec.PID === `${process.pid}`) {
            mainProcessBytes = bytes;
            return;
          }
          childProcessesBytes += bytes;
        });
      }
      let totalBytes;
      let usedBytes;
      let freeBytes;
      if (isLambdaEnvironment) {
        totalBytes = parseInt(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE, 10) * 1e6;
        usedBytes = mainProcessBytes + childProcessesBytes;
        freeBytes = totalBytes - usedBytes;
        log_1.default.debug(`lambda size of ${totalBytes} with ${freeBytes} free bytes`);
      } else if (isDockerVar) {
        let cgroupsVersion = "V1";
        try {
          await (0, promises_1.access)("/sys/fs/cgroup/memory/");
        } catch {
          cgroupsVersion = "V2";
        }
        try {
          let [totalBytesStr, usedBytesStr] = await Promise.all([
            (0, promises_1.readFile)(MEMORY_FILE_PATHS.TOTAL[cgroupsVersion], "utf8"),
            (0, promises_1.readFile)(MEMORY_FILE_PATHS.USED[cgroupsVersion], "utf8")
          ]);
          totalBytesStr = totalBytesStr.replace(/[^a-zA-Z0-9 ]/g, "");
          usedBytesStr = usedBytesStr.replace(/[^a-zA-Z0-9 ]/g, "");
          if (totalBytesStr === "max") {
            totalBytes = (0, node_os_1.totalmem)();
          } else {
            totalBytes = parseInt(totalBytesStr, 10);
            const containerRunsWithUnlimitedMemory = totalBytes > Number.MAX_SAFE_INTEGER;
            if (containerRunsWithUnlimitedMemory)
              totalBytes = (0, node_os_1.totalmem)();
          }
          usedBytes = parseInt(usedBytesStr, 10);
          freeBytes = totalBytes - usedBytes;
        } catch (err2) {
          log_1.default.deprecated(`Your environment is Docker, but your system does not support memory cgroups. If you're running containers with limited memory, memory auto-scaling will not work properly.

Cause: ${err2.message}`);
          totalBytes = (0, node_os_1.totalmem)();
          freeBytes = (0, node_os_1.freemem)();
          usedBytes = totalBytes - freeBytes;
        }
      } else {
        totalBytes = (0, node_os_1.totalmem)();
        freeBytes = (0, node_os_1.freemem)();
        usedBytes = totalBytes - freeBytes;
      }
      return {
        totalBytes,
        freeBytes,
        usedBytes,
        mainProcessBytes,
        childProcessesBytes
      };
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/debug.js
var require_debug = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/debug.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.createRequestDebugInfo = createRequestDebugInfo2;
    exports.getObjectType = getObjectType4;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    function createRequestDebugInfo2(request, response = {}, additionalFields = {}) {
      (0, ow_1.default)(request, ow_1.default.object);
      (0, ow_1.default)(response, ow_1.default.object);
      (0, ow_1.default)(additionalFields, ow_1.default.object);
      return {
        requestId: request.id,
        url: request.url,
        loadedUrl: request.loadedUrl,
        method: request.method,
        retryCount: request.retryCount,
        errorMessages: request.errorMessages,
        // Puppeteer response has .status() function and NodeJS response, statusCode property.
        statusCode: "status" in response && response.status instanceof Function ? response.status() : response.statusCode,
        ...additionalFields
      };
    }
    function getObjectType4(value2) {
      const simple = typeof value2;
      if (["string", "number", "boolean", "bigint"].includes(simple)) {
        return simple;
      }
      const objectType = Object.prototype.toString.call(value2);
      const type = objectType.match(/\[object (\w+)]/)[1];
      if (type === "Uint8Array") {
        return "Buffer";
      }
      return ["Date", "Buffer", "RegExp"].includes(type) ? type : type.toLowerCase();
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/social.js
var require_social = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/social.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DISCORD_REGEX_GLOBAL = exports.DISCORD_REGEX = exports.PINTEREST_REGEX_GLOBAL = exports.PINTEREST_REGEX = exports.TIKTOK_REGEX_GLOBAL = exports.TIKTOK_REGEX = exports.YOUTUBE_REGEX_GLOBAL = exports.YOUTUBE_REGEX = exports.FACEBOOK_REGEX_GLOBAL = exports.FACEBOOK_REGEX = exports.TWITTER_REGEX_GLOBAL = exports.TWITTER_REGEX = exports.INSTAGRAM_REGEX_GLOBAL = exports.INSTAGRAM_REGEX = exports.LINKEDIN_REGEX_GLOBAL = exports.LINKEDIN_REGEX = exports.EMAIL_REGEX_GLOBAL = exports.EMAIL_REGEX = void 0;
    exports.emailsFromText = emailsFromText;
    exports.emailsFromUrls = emailsFromUrls;
    exports.phonesFromText = phonesFromText;
    exports.phonesFromUrls = phonesFromUrls;
    exports.parseHandlesFromHtml = parseHandlesFromHtml;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var cheerio = tslib_1.__importStar(require_lib12());
    var cheerio_1 = require_cheerio2();
    var EMAIL_REGEX_STRING = "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[-\b\v\f-!#-[]-\x7F]|\\\\[-	\v\f-\x7F])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[-\b\v\f-!-ZS-\x7F]|\\\\[-	\v\f-\x7F])+)\\])";
    exports.EMAIL_REGEX = new RegExp(`^${EMAIL_REGEX_STRING}$`, "i");
    exports.EMAIL_REGEX_GLOBAL = new RegExp(EMAIL_REGEX_STRING, "ig");
    var EMAIL_URL_PREFIX_REGEX = /^mailto:/i;
    function emailsFromText(text) {
      if (typeof text !== "string")
        return [];
      return text.match(exports.EMAIL_REGEX_GLOBAL) || [];
    }
    function emailsFromUrls(urls) {
      if (!Array.isArray(urls))
        throw new Error('The "urls" parameter must be an array');
      const emails = [];
      for (const url3 of urls) {
        if (!url3)
          continue;
        if (!EMAIL_URL_PREFIX_REGEX.test(url3))
          continue;
        const email = url3.replace(EMAIL_URL_PREFIX_REGEX, "").trim();
        if (exports.EMAIL_REGEX.test(email))
          emails.push(email);
      }
      return emails;
    }
    var PHONE_URL_PREFIX_REGEX = /^(tel|phone|telephone|callto):(\/)?(\/)?/i;
    var PHONE_REGEXS_STRINGS = [
      // 775123456
      "[0-9]{6,15}",
      // 1(413)555-2378 or 1(413)555.2378 or 1 (413) 555-2378 or 1 (413) 555 2378 or (303) 494-2320
      "([0-9]{1,4}( )?)?\\([0-9]{2,4}\\)( )?[0-9]{2,4}(( )?(-|.))?( )?[0-9]{2,6}",
      // (51) 5667-9987 or (19)94138-9398
      "\\([0-9]{2}\\)( )?[0-9]{4,5}-[0-9]{4}",
      // 1(262) 955-95-79 or 1(262)955.95.79
      "([0-9]{1,4}( )?)?\\([0-9]{2,4}\\)( )?[0-9]{2,4}(( )?(-|.))?( )?[0-9]{2,6}",
      // 413-577-1234-564
      "[0-9]{2,4}-[0-9]{2,4}-[0-9]{2,4}-[0-9]{2,6}",
      // 413-577-1234
      "[0-9]{2,4}-[0-9]{2,4}-[0-9]{2,6}",
      // 413-577
      "[0-9]{2,4}-[0-9]{2,6}",
      // 413.577.1234.564
      "[0-9]{2,4}\\.[0-9]{2,4}\\.[0-9]{2,4}\\.[0-9]{2,6}",
      // 413.577.1234
      "[0-9]{2,4}\\.[0-9]{2,4}\\.[0-9]{2,6}",
      // 413.577
      "[0-9]{2,4}\\.[0-9]{2,6}",
      // 413 577 1234 564
      "[0-9]{2,4} [0-9]{2,4} [0-9]{2,4} [0-9]{2,6}",
      // 413 577 1234
      "[0-9]{2,4} [0-9]{2,4} [0-9]{2,6}",
      // 123 4567
      "[0-9]{2,4} [0-9]{3,8}"
      // All phones might be prefixed with '+' or '00'
    ].map((regex2) => `(00|\\+)?${regex2}`);
    var PHONE_MIN_DIGITS = 7;
    var SKIP_PHONE_REGEXS = [
      // 2018-11-10
      "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
    ];
    var PHONE_REGEX_GLOBAL = new RegExp(`(${PHONE_REGEXS_STRINGS.join("|")})`, "ig");
    var PHONE_REGEX = new RegExp(`^(${PHONE_REGEXS_STRINGS.join("|")})$`, "i");
    var SKIP_PHONE_REGEX = new RegExp(`^(${SKIP_PHONE_REGEXS.join("|")})$`, "i");
    function phonesFromText(text) {
      if (typeof text !== "string")
        return [];
      let phones = text.match(PHONE_REGEX_GLOBAL) || [];
      phones = phones.filter((phone) => {
        if (!phone)
          return false;
        if (phone.match(/[0-9]/g).length < PHONE_MIN_DIGITS)
          return false;
        if (SKIP_PHONE_REGEX.test(phone))
          return false;
        return true;
      });
      return phones;
    }
    function phonesFromUrls(urls) {
      if (!Array.isArray(urls))
        throw new Error('The "urls" parameter must be an array');
      const phones = [];
      for (const url3 of urls) {
        if (!url3)
          continue;
        if (!PHONE_URL_PREFIX_REGEX.test(url3))
          continue;
        const phone = url3.replace(PHONE_URL_PREFIX_REGEX, "").trim();
        if (PHONE_REGEX.test(phone))
          phones.push(phone);
      }
      return phones;
    }
    var LINKEDIN_REGEX_STRING = "(?<!\\w)(?:(?:http(?:s)?:\\/\\/)?(?:(?:(?:[a-z]+\\.)?linkedin\\.com\\/(?:in|company)\\/)([a-z0-9\\-_%=]{2,60})(?![a-z0-9\\-_%=])))(?:\\/)?";
    var INSTAGRAM_REGEX_STRING = "(?<!\\w)(?:http(?:s)?:\\/\\/)?(?:(?:www\\.)?(?:instagram\\.com|instagr\\.am)\\/)(?!explore|_n|_u)([a-z0-9_.]{2,30})(?![a-z0-9_.])(?:/)?";
    var TWITTER_RESERVED_PATHS = "oauth|account|tos|privacy|signup|home|hashtag|search|login|widgets|i|settings|start|share|intent|oct|messages|explore|notifications|jobs|compose\\/post";
    var X_SUBDOMAINS = "business|help|about|blog|careers|developer|ads";
    var TWITTER_REGEX_STRING = `(?<!\\w)(?:http(?:s)?:\\/\\/)?(?:www.)?(?<!(?:${X_SUBDOMAINS})\\.)(?:x|twitter)(?:.com)\\/(?!(?:${TWITTER_RESERVED_PATHS})(?:[\\'\\"\\?\\.\\/]|$))(?:@)?([a-z0-9_]{1,15})(?![a-z0-9_])(?:/)?`;
    var FACEBOOK_RESERVED_PATHS = "rsrc\\.php|apps|groups|events|l\\.php|friends|images|photo.php|chat|ajax|dyi|common|policies|login|recover|reg|help|security|messages|marketplace|pages\\/(?:create|merge|search)|live|bookmarks|games|fundraisers|saved|gaming|salesgroups|jobs|people|ads|ad_campaign|weather|offers|recommendations|crisisresponse|onthisday|developers|settings|connect|business|plugins|intern|sharer";
    var FACEBOOK_REGEX_STRING = `(?<!\\w)(?:http(?:s)?:\\/\\/)?(?:www.)?(?:facebook.com|fb.com)\\/(?!(?:${FACEBOOK_RESERVED_PATHS})(?:[\\'\\"\\?\\.\\/]|$))(profile\\.php\\?id\\=[0-9]{3,20}|pages\\/[a-z0-9-_][a-z0-9-_\\.\\/]{0,150}|(?!pages|profile\\.php)[a-z0-9-\\.]{5,51}(?![a-z0-9\\.]))(?:\\/)?`;
    var YOUTUBE_REGEX_STRING = "(?<!\\w)(?:https?:\\/\\/)?(?:youtu\\.be\\/|(?:www\\.|m\\.)?youtube\\.com(?:(?:(?:\\/(?:watch|v|embed|user|c(?:hannel)?)(?:\\.php)?)?(?:\\?[^ ]*v=|\\/))|(?:(?:\\/c)?\\/@)))([a-zA-Z0-9\\-_]{2,100})";
    var TIKTOK_REGEX_STRING = "(?<!\\w)(?:http(?:s)?:\\/\\/)?(?:(?:www|m)\\.)?(?:tiktok\\.com)\\/(((?:(?:v|embed|trending)(?:\\?shareId=|\\/))[0-9]{2,50}(?![0-9]))|(?:@)[a-z0-9\\-_\\.]+((?:\\/video\\/)[0-9]{2,50}(?![0-9]))?)(?:\\/)?";
    var PINTEREST_REGEX_STRING = "(?<!\\w)(?:http(?:s)?:\\/\\/)?(?:(?:(?:(?:www\\.)?pinterest(?:\\.com|(?:\\.[a-z]{2}){1,2}))|(?:[a-z]{2})\\.pinterest\\.com)(?:\\/))((pin\\/[0-9]{2,50})|((?!pin)[a-z0-9\\-_\\.]+(\\/[a-z0-9\\-_\\.]+)?))(?:\\/)?";
    var DISCORD_REGEX_STRING = "(?<!\\w)(?:https?:\\/\\/)?(?:www\\.)?((?:(?:(?:canary|ptb).)?(?:discord|discordapp)\\.com\\/channels(?:\\/)[0-9]{2,50}(\\/[0-9]{2,50})*)|(?:(?:(?:canary|ptb).)?(?:discord\\.(?:com|me|li|gg|io)|discordapp\\.com)(?:\\/invite)?)\\/(?!channels)[a-z0-9\\-_]{2,50})(?:\\/)?";
    exports.LINKEDIN_REGEX = new RegExp(`^${LINKEDIN_REGEX_STRING}$`, "i");
    exports.LINKEDIN_REGEX_GLOBAL = new RegExp(LINKEDIN_REGEX_STRING, "ig");
    exports.INSTAGRAM_REGEX = new RegExp(`^${INSTAGRAM_REGEX_STRING}$`, "i");
    exports.INSTAGRAM_REGEX_GLOBAL = new RegExp(INSTAGRAM_REGEX_STRING, "ig");
    exports.TWITTER_REGEX = new RegExp(`^${TWITTER_REGEX_STRING}$`, "i");
    exports.TWITTER_REGEX_GLOBAL = new RegExp(TWITTER_REGEX_STRING, "ig");
    exports.FACEBOOK_REGEX = new RegExp(`^${FACEBOOK_REGEX_STRING}$`, "i");
    exports.FACEBOOK_REGEX_GLOBAL = new RegExp(FACEBOOK_REGEX_STRING, "ig");
    exports.YOUTUBE_REGEX = new RegExp(`^${YOUTUBE_REGEX_STRING}$`, "i");
    exports.YOUTUBE_REGEX_GLOBAL = new RegExp(YOUTUBE_REGEX_STRING, "ig");
    exports.TIKTOK_REGEX = new RegExp(`^${TIKTOK_REGEX_STRING}$`, "i");
    exports.TIKTOK_REGEX_GLOBAL = new RegExp(TIKTOK_REGEX_STRING, "ig");
    exports.PINTEREST_REGEX = new RegExp(`^${PINTEREST_REGEX_STRING}$`, "i");
    exports.PINTEREST_REGEX_GLOBAL = new RegExp(PINTEREST_REGEX_STRING, "ig");
    exports.DISCORD_REGEX = new RegExp(`^${DISCORD_REGEX_STRING}$`, "i");
    exports.DISCORD_REGEX_GLOBAL = new RegExp(DISCORD_REGEX_STRING, "ig");
    function parseHandlesFromHtml(html, data2 = null) {
      const result = {
        emails: [],
        phones: [],
        phonesUncertain: [],
        linkedIns: [],
        twitters: [],
        instagrams: [],
        facebooks: [],
        youtubes: [],
        tiktoks: [],
        pinterests: [],
        discords: []
      };
      if (typeof html !== "string")
        return result;
      const $ = cheerio.load(html, { decodeEntities: true });
      if (data2)
        data2.$ = $;
      const text = (0, cheerio_1.htmlToText)($);
      if (data2)
        data2.text = text;
      const texts = $("*").contents().toArray().filter((node) => node.type === "text").map((node) => $(node).text().trim());
      const linkUrls = [];
      $("a[href]").each((_index, elem) => {
        if (elem)
          linkUrls.push($(elem).attr("href"));
      });
      result.emails = emailsFromUrls(linkUrls).concat(texts.flatMap(emailsFromText));
      result.phones = phonesFromUrls(linkUrls);
      result.phonesUncertain = phonesFromText(text);
      result.linkedIns = html.match(exports.LINKEDIN_REGEX_GLOBAL) || [];
      result.twitters = html.match(exports.TWITTER_REGEX_GLOBAL) || [];
      result.instagrams = html.match(exports.INSTAGRAM_REGEX_GLOBAL) || [];
      result.facebooks = html.match(exports.FACEBOOK_REGEX_GLOBAL) || [];
      result.youtubes = html.match(exports.YOUTUBE_REGEX_GLOBAL) || [];
      result.tiktoks = html.match(exports.TIKTOK_REGEX_GLOBAL) || [];
      result.pinterests = html.match(exports.PINTEREST_REGEX_GLOBAL) || [];
      result.discords = html.match(exports.DISCORD_REGEX_GLOBAL) || [];
      for (const key of Object.keys(result)) {
        result[key].sort();
        result[key] = [...new Set(result[key])].sort();
      }
      return result;
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/typedefs.js
var require_typedefs = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/typedefs.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.entries = entries3;
    exports.keys = keys2;
    function entries3(obj) {
      return Object.entries(obj);
    }
    function keys2(obj) {
      return Object.keys(obj);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/open_graph_parser.js
var require_open_graph_parser = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/open_graph_parser.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.parseOpenGraph = parseOpenGraph2;
    var cheerio_1 = require_lib12();
    var optionalSpread = (key, item) => item !== void 0 && !!Object.values(item)?.length ? { [key]: item } : {};
    var OPEN_GRAPH_PROPERTIES = [
      {
        name: "og:title",
        outputName: "title",
        children: []
      },
      {
        name: "og:type",
        outputName: "type",
        children: []
      },
      {
        name: "og:image",
        outputName: "image",
        children: [
          {
            name: "og:image:url",
            outputName: "url",
            children: []
          },
          {
            name: "og:image:secure_url",
            outputName: "secureUrl",
            children: []
          },
          {
            name: "og:image:type",
            outputName: "type",
            children: []
          },
          {
            name: "og:image:width",
            outputName: "width",
            children: []
          },
          {
            name: "og:image:height",
            outputName: "height",
            children: []
          },
          {
            name: "og:image:alt",
            outputName: "alt",
            children: []
          }
        ]
      },
      {
        name: "og:url",
        outputName: "url",
        children: []
      },
      {
        name: "og:audio",
        outputName: "audio",
        children: [
          {
            name: "og:audio:url",
            outputName: "url",
            children: []
          },
          {
            name: "og:audio:secure_url",
            outputName: "secureUrl",
            children: []
          },
          {
            name: "og:audio:type",
            outputName: "type",
            children: []
          }
        ]
      },
      {
        name: "og:description",
        outputName: "description",
        children: []
      },
      {
        name: "og:determiner",
        outputName: "determiner",
        children: []
      },
      {
        name: "og:locale",
        outputName: "locale",
        children: [
          {
            name: "og:locale:alternate",
            outputName: "alternate",
            children: []
          }
        ]
      },
      {
        name: "og:site_name",
        outputName: "siteName",
        children: []
      },
      {
        name: "og:video",
        outputName: "video",
        children: [
          {
            name: "og:video:url",
            outputName: "url",
            children: []
          },
          {
            name: "og:video:secure_url",
            outputName: "secureUrl",
            children: []
          },
          {
            name: "og:video:type",
            outputName: "type",
            children: []
          },
          {
            name: "og:video:width",
            outputName: "width",
            children: []
          },
          {
            name: "og:video:height",
            outputName: "height",
            children: []
          },
          {
            name: "og:video:alt",
            outputName: "alt",
            children: []
          }
        ]
      },
      // The properties below aren't prefixed with "og".
      // Part of the reason the properties have been hardcoded is because not all OpenGraph properties start with "og".
      // Especially the newer ones that extend "og:type".
      {
        name: "video",
        outputName: "videoInfo",
        children: [
          {
            name: "video:actor",
            outputName: "actor",
            children: [
              {
                name: "video:actor:role",
                outputName: "role",
                children: []
              }
            ]
          },
          {
            name: "video:director",
            outputName: "director",
            children: []
          },
          {
            name: "video:writer",
            outputName: "writer",
            children: []
          },
          {
            name: "video:duration",
            outputName: "duration",
            children: []
          },
          {
            name: "video:release_date",
            outputName: "releaseDate",
            children: []
          },
          {
            name: "video:tag",
            outputName: "tag",
            children: []
          },
          {
            name: "video:series",
            outputName: "series",
            children: []
          }
        ]
      },
      {
        name: "music",
        outputName: "musicInfo",
        children: [
          {
            name: "music:duration",
            outputName: "duration",
            children: []
          },
          {
            name: "music:album",
            outputName: "album",
            children: [
              {
                name: "music:album:disc",
                outputName: "disc",
                children: []
              },
              {
                name: "music:album:track",
                outputName: "track",
                children: []
              }
            ]
          },
          {
            name: "music:musician",
            outputName: "musician",
            children: []
          },
          {
            name: "music:song",
            outputName: "song",
            children: [
              {
                name: "music:song:disc",
                outputName: "disc",
                children: []
              },
              {
                name: "music:song:track",
                outputName: "track",
                children: []
              }
            ]
          },
          {
            name: "music:release_date",
            outputName: "releaseDate",
            children: []
          },
          {
            name: "music:creator",
            outputName: "creator",
            children: []
          }
        ]
      },
      {
        name: "article",
        outputName: "articleInfo",
        children: [
          {
            name: "music:published_time",
            outputName: "publishedTime",
            children: []
          },
          {
            name: "music:modified_time",
            outputName: "modifiedTime",
            children: []
          },
          {
            name: "music:expiration_time",
            outputName: "expirationTime",
            children: []
          },
          {
            name: "music:author",
            outputName: "author",
            children: []
          },
          {
            name: "music:section",
            outputName: "section",
            children: []
          },
          {
            name: "music:tag",
            outputName: "tag",
            children: []
          }
        ]
      },
      {
        name: "book",
        outputName: "bookInfo",
        children: [
          {
            name: "book:author",
            outputName: "author",
            children: []
          },
          {
            name: "book:isbn",
            outputName: "isbn",
            children: []
          },
          {
            name: "book:release_date",
            outputName: "releaseDate",
            children: []
          },
          {
            name: "book:tag",
            outputName: "tag",
            children: []
          }
        ]
      },
      {
        name: "profile",
        outputName: "profileInfo",
        children: [
          {
            name: "profile:first_name",
            outputName: "firstName",
            children: []
          },
          {
            name: "profile:last_name",
            outputName: "lastName",
            children: []
          },
          {
            name: "profile:username",
            outputName: "username",
            children: []
          },
          {
            name: "profile:gender",
            outputName: "gender",
            children: []
          }
        ]
      }
    ];
    var makeOpenGraphSelector = (name) => `meta[property="${name}"]`;
    var parseOpenGraphProperty = (property, $) => {
      const values = [...$(makeOpenGraphSelector(property.name))].map((elem) => $(elem).attr("content"));
      const content = values.length <= 1 ? values[0] : values;
      if (!property.children.length)
        return content;
      return {
        // We do this, because for example, there can be a value under og:image which should still be parsed,
        // but there can also be child properties such as og:image:url or og:image:size
        // "Value" is appended to the end of the property name to make it more clear, and to prevent things such
        // as `videoInfo.actor.actor` to grab the actor's name.
        ...optionalSpread(`${property.outputName}Value`, content),
        ...property.children.reduce((acc, curr) => {
          const parsed = parseOpenGraphProperty(curr, $);
          if (parsed === void 0)
            return acc;
          return {
            ...acc,
            ...optionalSpread(curr.outputName, parseOpenGraphProperty(curr, $))
          };
        }, {})
      };
    };
    function parseOpenGraph2(item, additionalProperties) {
      const $ = typeof item === "string" ? (0, cheerio_1.load)(item) : item;
      return [...additionalProperties || [], ...OPEN_GRAPH_PROPERTIES].reduce((acc, curr) => {
        return {
          ...acc,
          ...optionalSpread(curr.outputName, parseOpenGraphProperty(curr, $))
        };
      }, {});
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/iterables.js
var require_iterables = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/iterables.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.isIterable = isIterable5;
    exports.isAsyncIterable = isAsyncIterable4;
    exports.asyncifyIterable = asyncifyIterable2;
    exports.chunkedAsyncIterable = chunkedAsyncIterable2;
    exports.peekableAsyncIterable = peekableAsyncIterable2;
    exports.mergeAsyncIterables = mergeAsyncIterables2;
    var node_util_1 = __require("node:util");
    function isIterable5(value2) {
      if (value2 == null || typeof value2 === "string" || ArrayBuffer.isView(value2)) {
        return false;
      }
      if (Array.isArray(value2)) {
        return true;
      }
      return typeof Object(value2)[Symbol.iterator] === "function";
    }
    function isAsyncIterable4(value2) {
      if (value2 == null || typeof value2 === "string" || ArrayBuffer.isView(value2)) {
        return false;
      }
      return typeof Object(value2)[Symbol.asyncIterator] === "function";
    }
    async function* asyncifyIterable2(iterable) {
      yield* iterable;
    }
    async function* chunkedAsyncIterable2(iterable, chunkSize) {
      if (typeof chunkSize !== "number" || chunkSize < 1) {
        throw new Error(`Chunk size must be a positive number (${(0, node_util_1.inspect)(chunkSize)}) received`);
      }
      let chunk3 = [];
      for await (const item of iterable) {
        chunk3.push(item);
        if (chunk3.length >= chunkSize) {
          yield chunk3;
          chunk3 = [];
        }
      }
      if (chunk3.length) {
        yield chunk3;
      }
    }
    function peekableAsyncIterable2(iterable) {
      const iterator2 = asyncifyIterable2(iterable)[Symbol.asyncIterator]();
      let peekedValue;
      let isExhausted = false;
      const peekableIterator = {
        async next() {
          if (peekedValue !== void 0) {
            const result2 = peekedValue;
            peekedValue = void 0;
            if (result2.done) {
              isExhausted = true;
              return { done: true, value: void 0 };
            }
            return { done: false, value: result2.value };
          }
          if (isExhausted) {
            return { done: true, value: void 0 };
          }
          const result = await iterator2.next();
          if (result.done) {
            isExhausted = true;
          }
          return result;
        },
        async peek() {
          if (peekedValue !== void 0) {
            return peekedValue.done ? void 0 : peekedValue.value;
          }
          if (isExhausted) {
            return void 0;
          }
          const result = await iterator2.next();
          peekedValue = { done: result.done ?? false, value: result.value };
          if (result.done) {
            isExhausted = true;
            return void 0;
          }
          return result.value;
        },
        [Symbol.asyncIterator]() {
          return this;
        }
      };
      return {
        [Symbol.asyncIterator]() {
          return peekableIterator;
        }
      };
    }
    async function* mergeAsyncIterables2(...iterables) {
      const asyncIterators = iterables.map((iterable) => iterable[Symbol.asyncIterator]());
      const results = [];
      let count = asyncIterators.length;
      const never = new Promise(() => {
      });
      async function getNext(asyncIterator2, index2) {
        const result = await asyncIterator2.next();
        return {
          index: index2,
          result
        };
      }
      const nextPromises = asyncIterators.map(getNext);
      try {
        while (count) {
          const { index: index2, result } = await Promise.race(nextPromises);
          if (result.done) {
            nextPromises[index2] = never;
            results[index2] = result.value;
            count--;
          } else {
            nextPromises[index2] = getNext(asyncIterators[index2], index2);
            yield result.value;
          }
        }
      } finally {
        for (const [index2, iterator2] of asyncIterators.entries()) {
          if (nextPromises[index2] !== never && iterator2.return != null)
            void iterator2.return();
        }
      }
      return results;
    }
  }
});

// ../../node_modules/.pnpm/robots-parser@3.0.1/node_modules/robots-parser/Robots.js
var require_Robots = __commonJS({
  "../../node_modules/.pnpm/robots-parser@3.0.1/node_modules/robots-parser/Robots.js"(exports, module) {
    function trimLine(line2) {
      if (!line2) {
        return null;
      }
      if (Array.isArray(line2)) {
        return line2.map(trimLine);
      }
      return String(line2).trim();
    }
    function removeComments(line2) {
      var commentStartIndex = line2.indexOf("#");
      if (commentStartIndex > -1) {
        return line2.substr(0, commentStartIndex);
      }
      return line2;
    }
    function splitLine(line2) {
      var idx = String(line2).indexOf(":");
      if (!line2 || idx < 0) {
        return null;
      }
      return [line2.slice(0, idx), line2.slice(idx + 1)];
    }
    function formatUserAgent(userAgent) {
      var formattedUserAgent = userAgent.toLowerCase();
      var idx = formattedUserAgent.indexOf("/");
      if (idx > -1) {
        formattedUserAgent = formattedUserAgent.substr(0, idx);
      }
      return formattedUserAgent.trim();
    }
    function normaliseEncoding(path3) {
      try {
        return urlEncodeToUpper(encodeURI(path3).replace(/%25/g, "%"));
      } catch (e4) {
        return path3;
      }
    }
    function urlEncodeToUpper(path3) {
      return path3.replace(/%[0-9a-fA-F]{2}/g, function(match) {
        return match.toUpperCase();
      });
    }
    function matches(pattern3, path3) {
      var matchingLengths = new Array(path3.length + 1);
      var numMatchingLengths = 1;
      matchingLengths[0] = 0;
      for (var p3 = 0; p3 < pattern3.length; p3++) {
        if (pattern3[p3] === "$" && p3 + 1 === pattern3.length) {
          return matchingLengths[numMatchingLengths - 1] === path3.length;
        }
        if (pattern3[p3] == "*") {
          numMatchingLengths = path3.length - matchingLengths[0] + 1;
          for (var i5 = 1; i5 < numMatchingLengths; i5++) {
            matchingLengths[i5] = matchingLengths[i5 - 1] + 1;
          }
        } else {
          var numMatches = 0;
          for (var i5 = 0; i5 < numMatchingLengths; i5++) {
            if (matchingLengths[i5] < path3.length && path3[matchingLengths[i5]] === pattern3[p3]) {
              matchingLengths[numMatches++] = matchingLengths[i5] + 1;
            }
          }
          if (numMatches == 0) {
            return false;
          }
          numMatchingLengths = numMatches;
        }
      }
      return true;
    }
    function parseRobots(contents, robots) {
      var newlineRegex = /\r\n|\r|\n/;
      var lines = contents.split(newlineRegex).map(removeComments).map(splitLine).map(trimLine);
      var currentUserAgents = [];
      var isNoneUserAgentState = true;
      for (var i5 = 0; i5 < lines.length; i5++) {
        var line2 = lines[i5];
        if (!line2 || !line2[0]) {
          continue;
        }
        switch (line2[0].toLowerCase()) {
          case "user-agent":
            if (isNoneUserAgentState) {
              currentUserAgents.length = 0;
            }
            if (line2[1]) {
              currentUserAgents.push(formatUserAgent(line2[1]));
            }
            break;
          case "disallow":
            robots.addRule(currentUserAgents, line2[1], false, i5 + 1);
            break;
          case "allow":
            robots.addRule(currentUserAgents, line2[1], true, i5 + 1);
            break;
          case "crawl-delay":
            robots.setCrawlDelay(currentUserAgents, line2[1]);
            break;
          case "sitemap":
            if (line2[1]) {
              robots.addSitemap(line2[1]);
            }
            break;
          case "host":
            if (line2[1]) {
              robots.setPreferredHost(line2[1].toLowerCase());
            }
            break;
        }
        isNoneUserAgentState = line2[0].toLowerCase() !== "user-agent";
      }
    }
    function findRule(path3, rules) {
      var matchedRule = null;
      for (var i5 = 0; i5 < rules.length; i5++) {
        var rule = rules[i5];
        if (!matches(rule.pattern, path3)) {
          continue;
        }
        if (!matchedRule || rule.pattern.length > matchedRule.pattern.length) {
          matchedRule = rule;
        } else if (rule.pattern.length == matchedRule.pattern.length && rule.allow && !matchedRule.allow) {
          matchedRule = rule;
        }
      }
      return matchedRule;
    }
    function parseUrl(url3) {
      try {
        var url3 = new URL(url3, "http://robots-relative.samclarke.com/");
        if (!url3.port) {
          url3.port = url3.protocol === "https:" ? 443 : 80;
        }
        return url3;
      } catch (e4) {
        return null;
      }
    }
    function Robots(url3, contents) {
      this._url = parseUrl(url3) || {};
      this._rules = /* @__PURE__ */ Object.create(null);
      this._sitemaps = [];
      this._preferredHost = null;
      parseRobots(contents || "", this);
    }
    Robots.prototype.addRule = function(userAgents, pattern3, allow, lineNumber) {
      var rules = this._rules;
      userAgents.forEach(function(userAgent) {
        rules[userAgent] = rules[userAgent] || [];
        if (!pattern3) {
          return;
        }
        rules[userAgent].push({
          pattern: normaliseEncoding(pattern3),
          allow,
          lineNumber
        });
      });
    };
    Robots.prototype.setCrawlDelay = function(userAgents, delayStr) {
      var rules = this._rules;
      var delay2 = Number(delayStr);
      userAgents.forEach(function(userAgent) {
        rules[userAgent] = rules[userAgent] || [];
        if (isNaN(delay2)) {
          return;
        }
        rules[userAgent].crawlDelay = delay2;
      });
    };
    Robots.prototype.addSitemap = function(url3) {
      this._sitemaps.push(url3);
    };
    Robots.prototype.setPreferredHost = function(url3) {
      this._preferredHost = url3;
    };
    Robots.prototype._getRule = function(url3, ua) {
      var parsedUrl = parseUrl(url3) || {};
      var userAgent = formatUserAgent(ua || "*");
      if (parsedUrl.protocol !== this._url.protocol || parsedUrl.hostname !== this._url.hostname || parsedUrl.port !== this._url.port) {
        return;
      }
      var rules = this._rules[userAgent] || this._rules["*"] || [];
      var path3 = urlEncodeToUpper(parsedUrl.pathname + parsedUrl.search);
      var rule = findRule(path3, rules);
      return rule;
    };
    Robots.prototype.isAllowed = function(url3, ua) {
      var rule = this._getRule(url3, ua);
      if (typeof rule === "undefined") {
        return;
      }
      return !rule || rule.allow;
    };
    Robots.prototype.getMatchingLineNumber = function(url3, ua) {
      var rule = this._getRule(url3, ua);
      return rule ? rule.lineNumber : -1;
    };
    Robots.prototype.isDisallowed = function(url3, ua) {
      return !this.isAllowed(url3, ua);
    };
    Robots.prototype.getCrawlDelay = function(ua) {
      var userAgent = formatUserAgent(ua || "*");
      return (this._rules[userAgent] || this._rules["*"] || {}).crawlDelay;
    };
    Robots.prototype.getPreferredHost = function() {
      return this._preferredHost;
    };
    Robots.prototype.getSitemaps = function() {
      return this._sitemaps.slice(0);
    };
    module.exports = Robots;
  }
});

// ../../node_modules/.pnpm/robots-parser@3.0.1/node_modules/robots-parser/index.js
var require_robots_parser = __commonJS({
  "../../node_modules/.pnpm/robots-parser@3.0.1/node_modules/robots-parser/index.js"(exports, module) {
    var Robots = require_Robots();
    module.exports = function(url3, contents) {
      return new Robots(url3, contents);
    };
  }
});

// ../../node_modules/.pnpm/sax@1.4.4/node_modules/sax/lib/sax.js
var require_sax = __commonJS({
  "../../node_modules/.pnpm/sax@1.4.4/node_modules/sax/lib/sax.js"(exports) {
    (function(sax) {
      sax.parser = function(strict, opt) {
        return new SAXParser(strict, opt);
      };
      sax.SAXParser = SAXParser;
      sax.SAXStream = SAXStream;
      sax.createStream = createStream;
      sax.MAX_BUFFER_LENGTH = 64 * 1024;
      var buffers = [
        "comment",
        "sgmlDecl",
        "textNode",
        "tagName",
        "doctype",
        "procInstName",
        "procInstBody",
        "entity",
        "attribName",
        "attribValue",
        "cdata",
        "script"
      ];
      sax.EVENTS = [
        "text",
        "processinginstruction",
        "sgmldeclaration",
        "doctype",
        "comment",
        "opentagstart",
        "attribute",
        "opentag",
        "closetag",
        "opencdata",
        "cdata",
        "closecdata",
        "error",
        "end",
        "ready",
        "script",
        "opennamespace",
        "closenamespace"
      ];
      function SAXParser(strict, opt) {
        if (!(this instanceof SAXParser)) {
          return new SAXParser(strict, opt);
        }
        var parser = this;
        clearBuffers(parser);
        parser.q = parser.c = "";
        parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH;
        parser.opt = opt || {};
        parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags;
        parser.looseCase = parser.opt.lowercase ? "toLowerCase" : "toUpperCase";
        parser.tags = [];
        parser.closed = parser.closedRoot = parser.sawRoot = false;
        parser.tag = parser.error = null;
        parser.strict = !!strict;
        parser.noscript = !!(strict || parser.opt.noscript);
        parser.state = S3.BEGIN;
        parser.strictEntities = parser.opt.strictEntities;
        parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES);
        parser.attribList = [];
        if (parser.opt.xmlns) {
          parser.ns = Object.create(rootNS);
        }
        if (parser.opt.unquotedAttributeValues === void 0) {
          parser.opt.unquotedAttributeValues = !strict;
        }
        parser.trackPosition = parser.opt.position !== false;
        if (parser.trackPosition) {
          parser.position = parser.line = parser.column = 0;
        }
        emit(parser, "onready");
      }
      if (!Object.create) {
        Object.create = function(o5) {
          function F() {
          }
          F.prototype = o5;
          var newf = new F();
          return newf;
        };
      }
      if (!Object.keys) {
        Object.keys = function(o5) {
          var a5 = [];
          for (var i5 in o5) if (o5.hasOwnProperty(i5)) a5.push(i5);
          return a5;
        };
      }
      function checkBufferLength(parser) {
        var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10);
        var maxActual = 0;
        for (var i5 = 0, l4 = buffers.length; i5 < l4; i5++) {
          var len = parser[buffers[i5]].length;
          if (len > maxAllowed) {
            switch (buffers[i5]) {
              case "textNode":
                closeText(parser);
                break;
              case "cdata":
                emitNode(parser, "oncdata", parser.cdata);
                parser.cdata = "";
                break;
              case "script":
                emitNode(parser, "onscript", parser.script);
                parser.script = "";
                break;
              default:
                error(parser, "Max buffer length exceeded: " + buffers[i5]);
            }
          }
          maxActual = Math.max(maxActual, len);
        }
        var m3 = sax.MAX_BUFFER_LENGTH - maxActual;
        parser.bufferCheckPosition = m3 + parser.position;
      }
      function clearBuffers(parser) {
        for (var i5 = 0, l4 = buffers.length; i5 < l4; i5++) {
          parser[buffers[i5]] = "";
        }
      }
      function flushBuffers(parser) {
        closeText(parser);
        if (parser.cdata !== "") {
          emitNode(parser, "oncdata", parser.cdata);
          parser.cdata = "";
        }
        if (parser.script !== "") {
          emitNode(parser, "onscript", parser.script);
          parser.script = "";
        }
      }
      SAXParser.prototype = {
        end: function() {
          end2(this);
        },
        write: write2,
        resume: function() {
          this.error = null;
          return this;
        },
        close: function() {
          return this.write(null);
        },
        flush: function() {
          flushBuffers(this);
        }
      };
      var Stream;
      try {
        Stream = __require("stream").Stream;
      } catch (ex) {
        Stream = function() {
        };
      }
      if (!Stream) Stream = function() {
      };
      var streamWraps = sax.EVENTS.filter(function(ev) {
        return ev !== "error" && ev !== "end";
      });
      function createStream(strict, opt) {
        return new SAXStream(strict, opt);
      }
      function SAXStream(strict, opt) {
        if (!(this instanceof SAXStream)) {
          return new SAXStream(strict, opt);
        }
        Stream.apply(this);
        this._parser = new SAXParser(strict, opt);
        this.writable = true;
        this.readable = true;
        var me = this;
        this._parser.onend = function() {
          me.emit("end");
        };
        this._parser.onerror = function(er) {
          me.emit("error", er);
          me._parser.error = null;
        };
        this._decoder = null;
        streamWraps.forEach(function(ev) {
          Object.defineProperty(me, "on" + ev, {
            get: function() {
              return me._parser["on" + ev];
            },
            set: function(h4) {
              if (!h4) {
                me.removeAllListeners(ev);
                me._parser["on" + ev] = h4;
                return h4;
              }
              me.on(ev, h4);
            },
            enumerable: true,
            configurable: false
          });
        });
      }
      SAXStream.prototype = Object.create(Stream.prototype, {
        constructor: {
          value: SAXStream
        }
      });
      SAXStream.prototype.write = function(data2) {
        if (typeof Buffer === "function" && typeof Buffer.isBuffer === "function" && Buffer.isBuffer(data2)) {
          if (!this._decoder) {
            this._decoder = new TextDecoder("utf8");
          }
          data2 = this._decoder.decode(data2, { stream: true });
        }
        this._parser.write(data2.toString());
        this.emit("data", data2);
        return true;
      };
      SAXStream.prototype.end = function(chunk3) {
        if (chunk3 && chunk3.length) {
          this.write(chunk3);
        }
        if (this._decoder) {
          var remaining = this._decoder.decode();
          if (remaining) {
            this._parser.write(remaining);
            this.emit("data", remaining);
          }
        }
        this._parser.end();
        return true;
      };
      SAXStream.prototype.on = function(ev, handler) {
        var me = this;
        if (!me._parser["on" + ev] && streamWraps.indexOf(ev) !== -1) {
          me._parser["on" + ev] = function() {
            var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments);
            args.splice(0, 0, ev);
            me.emit.apply(me, args);
          };
        }
        return Stream.prototype.on.call(me, ev, handler);
      };
      var CDATA = "[CDATA[";
      var DOCTYPE = "DOCTYPE";
      var XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace";
      var XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/";
      var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE };
      var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;
      var nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;
      var entityStart = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;
      var entityBody = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;
      function isWhitespace(c6) {
        return c6 === " " || c6 === "\n" || c6 === "\r" || c6 === "	";
      }
      function isQuote(c6) {
        return c6 === '"' || c6 === "'";
      }
      function isAttribEnd(c6) {
        return c6 === ">" || isWhitespace(c6);
      }
      function isMatch(regex2, c6) {
        return regex2.test(c6);
      }
      function notMatch(regex2, c6) {
        return !isMatch(regex2, c6);
      }
      var S3 = 0;
      sax.STATE = {
        BEGIN: S3++,
        // leading byte order mark or whitespace
        BEGIN_WHITESPACE: S3++,
        // leading whitespace
        TEXT: S3++,
        // general stuff
        TEXT_ENTITY: S3++,
        // &amp and such.
        OPEN_WAKA: S3++,
        // <
        SGML_DECL: S3++,
        // <!BLARG
        SGML_DECL_QUOTED: S3++,
        // <!BLARG foo "bar
        DOCTYPE: S3++,
        // <!DOCTYPE
        DOCTYPE_QUOTED: S3++,
        // <!DOCTYPE "//blah
        DOCTYPE_DTD: S3++,
        // <!DOCTYPE "//blah" [ ...
        DOCTYPE_DTD_QUOTED: S3++,
        // <!DOCTYPE "//blah" [ "foo
        COMMENT_STARTING: S3++,
        // <!-
        COMMENT: S3++,
        // <!--
        COMMENT_ENDING: S3++,
        // <!-- blah -
        COMMENT_ENDED: S3++,
        // <!-- blah --
        CDATA: S3++,
        // <![CDATA[ something
        CDATA_ENDING: S3++,
        // ]
        CDATA_ENDING_2: S3++,
        // ]]
        PROC_INST: S3++,
        // <?hi
        PROC_INST_BODY: S3++,
        // <?hi there
        PROC_INST_ENDING: S3++,
        // <?hi "there" ?
        OPEN_TAG: S3++,
        // <strong
        OPEN_TAG_SLASH: S3++,
        // <strong /
        ATTRIB: S3++,
        // <a
        ATTRIB_NAME: S3++,
        // <a foo
        ATTRIB_NAME_SAW_WHITE: S3++,
        // <a foo _
        ATTRIB_VALUE: S3++,
        // <a foo=
        ATTRIB_VALUE_QUOTED: S3++,
        // <a foo="bar
        ATTRIB_VALUE_CLOSED: S3++,
        // <a foo="bar"
        ATTRIB_VALUE_UNQUOTED: S3++,
        // <a foo=bar
        ATTRIB_VALUE_ENTITY_Q: S3++,
        // <foo bar="&quot;"
        ATTRIB_VALUE_ENTITY_U: S3++,
        // <foo bar=&quot
        CLOSE_TAG: S3++,
        // </a
        CLOSE_TAG_SAW_WHITE: S3++,
        // </a   >
        SCRIPT: S3++,
        // <script> ...
        SCRIPT_ENDING: S3++
        // <script> ... <
      };
      sax.XML_ENTITIES = {
        amp: "&",
        gt: ">",
        lt: "<",
        quot: '"',
        apos: "'"
      };
      sax.ENTITIES = {
        amp: "&",
        gt: ">",
        lt: "<",
        quot: '"',
        apos: "'",
        AElig: 198,
        Aacute: 193,
        Acirc: 194,
        Agrave: 192,
        Aring: 197,
        Atilde: 195,
        Auml: 196,
        Ccedil: 199,
        ETH: 208,
        Eacute: 201,
        Ecirc: 202,
        Egrave: 200,
        Euml: 203,
        Iacute: 205,
        Icirc: 206,
        Igrave: 204,
        Iuml: 207,
        Ntilde: 209,
        Oacute: 211,
        Ocirc: 212,
        Ograve: 210,
        Oslash: 216,
        Otilde: 213,
        Ouml: 214,
        THORN: 222,
        Uacute: 218,
        Ucirc: 219,
        Ugrave: 217,
        Uuml: 220,
        Yacute: 221,
        aacute: 225,
        acirc: 226,
        aelig: 230,
        agrave: 224,
        aring: 229,
        atilde: 227,
        auml: 228,
        ccedil: 231,
        eacute: 233,
        ecirc: 234,
        egrave: 232,
        eth: 240,
        euml: 235,
        iacute: 237,
        icirc: 238,
        igrave: 236,
        iuml: 239,
        ntilde: 241,
        oacute: 243,
        ocirc: 244,
        ograve: 242,
        oslash: 248,
        otilde: 245,
        ouml: 246,
        szlig: 223,
        thorn: 254,
        uacute: 250,
        ucirc: 251,
        ugrave: 249,
        uuml: 252,
        yacute: 253,
        yuml: 255,
        copy: 169,
        reg: 174,
        nbsp: 160,
        iexcl: 161,
        cent: 162,
        pound: 163,
        curren: 164,
        yen: 165,
        brvbar: 166,
        sect: 167,
        uml: 168,
        ordf: 170,
        laquo: 171,
        not: 172,
        shy: 173,
        macr: 175,
        deg: 176,
        plusmn: 177,
        sup1: 185,
        sup2: 178,
        sup3: 179,
        acute: 180,
        micro: 181,
        para: 182,
        middot: 183,
        cedil: 184,
        ordm: 186,
        raquo: 187,
        frac14: 188,
        frac12: 189,
        frac34: 190,
        iquest: 191,
        times: 215,
        divide: 247,
        OElig: 338,
        oelig: 339,
        Scaron: 352,
        scaron: 353,
        Yuml: 376,
        fnof: 402,
        circ: 710,
        tilde: 732,
        Alpha: 913,
        Beta: 914,
        Gamma: 915,
        Delta: 916,
        Epsilon: 917,
        Zeta: 918,
        Eta: 919,
        Theta: 920,
        Iota: 921,
        Kappa: 922,
        Lambda: 923,
        Mu: 924,
        Nu: 925,
        Xi: 926,
        Omicron: 927,
        Pi: 928,
        Rho: 929,
        Sigma: 931,
        Tau: 932,
        Upsilon: 933,
        Phi: 934,
        Chi: 935,
        Psi: 936,
        Omega: 937,
        alpha: 945,
        beta: 946,
        gamma: 947,
        delta: 948,
        epsilon: 949,
        zeta: 950,
        eta: 951,
        theta: 952,
        iota: 953,
        kappa: 954,
        lambda: 955,
        mu: 956,
        nu: 957,
        xi: 958,
        omicron: 959,
        pi: 960,
        rho: 961,
        sigmaf: 962,
        sigma: 963,
        tau: 964,
        upsilon: 965,
        phi: 966,
        chi: 967,
        psi: 968,
        omega: 969,
        thetasym: 977,
        upsih: 978,
        piv: 982,
        ensp: 8194,
        emsp: 8195,
        thinsp: 8201,
        zwnj: 8204,
        zwj: 8205,
        lrm: 8206,
        rlm: 8207,
        ndash: 8211,
        mdash: 8212,
        lsquo: 8216,
        rsquo: 8217,
        sbquo: 8218,
        ldquo: 8220,
        rdquo: 8221,
        bdquo: 8222,
        dagger: 8224,
        Dagger: 8225,
        bull: 8226,
        hellip: 8230,
        permil: 8240,
        prime: 8242,
        Prime: 8243,
        lsaquo: 8249,
        rsaquo: 8250,
        oline: 8254,
        frasl: 8260,
        euro: 8364,
        image: 8465,
        weierp: 8472,
        real: 8476,
        trade: 8482,
        alefsym: 8501,
        larr: 8592,
        uarr: 8593,
        rarr: 8594,
        darr: 8595,
        harr: 8596,
        crarr: 8629,
        lArr: 8656,
        uArr: 8657,
        rArr: 8658,
        dArr: 8659,
        hArr: 8660,
        forall: 8704,
        part: 8706,
        exist: 8707,
        empty: 8709,
        nabla: 8711,
        isin: 8712,
        notin: 8713,
        ni: 8715,
        prod: 8719,
        sum: 8721,
        minus: 8722,
        lowast: 8727,
        radic: 8730,
        prop: 8733,
        infin: 8734,
        ang: 8736,
        and: 8743,
        or: 8744,
        cap: 8745,
        cup: 8746,
        int: 8747,
        there4: 8756,
        sim: 8764,
        cong: 8773,
        asymp: 8776,
        ne: 8800,
        equiv: 8801,
        le: 8804,
        ge: 8805,
        sub: 8834,
        sup: 8835,
        nsub: 8836,
        sube: 8838,
        supe: 8839,
        oplus: 8853,
        otimes: 8855,
        perp: 8869,
        sdot: 8901,
        lceil: 8968,
        rceil: 8969,
        lfloor: 8970,
        rfloor: 8971,
        lang: 9001,
        rang: 9002,
        loz: 9674,
        spades: 9824,
        clubs: 9827,
        hearts: 9829,
        diams: 9830
      };
      Object.keys(sax.ENTITIES).forEach(function(key) {
        var e4 = sax.ENTITIES[key];
        var s5 = typeof e4 === "number" ? String.fromCharCode(e4) : e4;
        sax.ENTITIES[key] = s5;
      });
      for (var s4 in sax.STATE) {
        sax.STATE[sax.STATE[s4]] = s4;
      }
      S3 = sax.STATE;
      function emit(parser, event, data2) {
        parser[event] && parser[event](data2);
      }
      function emitNode(parser, nodeType, data2) {
        if (parser.textNode) closeText(parser);
        emit(parser, nodeType, data2);
      }
      function closeText(parser) {
        parser.textNode = textopts(parser.opt, parser.textNode);
        if (parser.textNode) emit(parser, "ontext", parser.textNode);
        parser.textNode = "";
      }
      function textopts(opt, text) {
        if (opt.trim) text = text.trim();
        if (opt.normalize) text = text.replace(/\s+/g, " ");
        return text;
      }
      function error(parser, er) {
        closeText(parser);
        if (parser.trackPosition) {
          er += "\nLine: " + parser.line + "\nColumn: " + parser.column + "\nChar: " + parser.c;
        }
        er = new Error(er);
        parser.error = er;
        emit(parser, "onerror", er);
        return parser;
      }
      function end2(parser) {
        if (parser.sawRoot && !parser.closedRoot)
          strictFail(parser, "Unclosed root tag");
        if (parser.state !== S3.BEGIN && parser.state !== S3.BEGIN_WHITESPACE && parser.state !== S3.TEXT) {
          error(parser, "Unexpected end");
        }
        closeText(parser);
        parser.c = "";
        parser.closed = true;
        emit(parser, "onend");
        SAXParser.call(parser, parser.strict, parser.opt);
        return parser;
      }
      function strictFail(parser, message) {
        if (typeof parser !== "object" || !(parser instanceof SAXParser)) {
          throw new Error("bad call to strictFail");
        }
        if (parser.strict) {
          error(parser, message);
        }
      }
      function newTag(parser) {
        if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]();
        var parent = parser.tags[parser.tags.length - 1] || parser;
        var tag = parser.tag = { name: parser.tagName, attributes: {} };
        if (parser.opt.xmlns) {
          tag.ns = parent.ns;
        }
        parser.attribList.length = 0;
        emitNode(parser, "onopentagstart", tag);
      }
      function qname(name, attribute) {
        var i5 = name.indexOf(":");
        var qualName = i5 < 0 ? ["", name] : name.split(":");
        var prefix = qualName[0];
        var local = qualName[1];
        if (attribute && name === "xmlns") {
          prefix = "xmlns";
          local = "";
        }
        return { prefix, local };
      }
      function attrib(parser) {
        if (!parser.strict) {
          parser.attribName = parser.attribName[parser.looseCase]();
        }
        if (parser.attribList.indexOf(parser.attribName) !== -1 || parser.tag.attributes.hasOwnProperty(parser.attribName)) {
          parser.attribName = parser.attribValue = "";
          return;
        }
        if (parser.opt.xmlns) {
          var qn = qname(parser.attribName, true);
          var prefix = qn.prefix;
          var local = qn.local;
          if (prefix === "xmlns") {
            if (local === "xml" && parser.attribValue !== XML_NAMESPACE) {
              strictFail(
                parser,
                "xml: prefix must be bound to " + XML_NAMESPACE + "\nActual: " + parser.attribValue
              );
            } else if (local === "xmlns" && parser.attribValue !== XMLNS_NAMESPACE) {
              strictFail(
                parser,
                "xmlns: prefix must be bound to " + XMLNS_NAMESPACE + "\nActual: " + parser.attribValue
              );
            } else {
              var tag = parser.tag;
              var parent = parser.tags[parser.tags.length - 1] || parser;
              if (tag.ns === parent.ns) {
                tag.ns = Object.create(parent.ns);
              }
              tag.ns[local] = parser.attribValue;
            }
          }
          parser.attribList.push([parser.attribName, parser.attribValue]);
        } else {
          parser.tag.attributes[parser.attribName] = parser.attribValue;
          emitNode(parser, "onattribute", {
            name: parser.attribName,
            value: parser.attribValue
          });
        }
        parser.attribName = parser.attribValue = "";
      }
      function openTag(parser, selfClosing) {
        if (parser.opt.xmlns) {
          var tag = parser.tag;
          var qn = qname(parser.tagName);
          tag.prefix = qn.prefix;
          tag.local = qn.local;
          tag.uri = tag.ns[qn.prefix] || "";
          if (tag.prefix && !tag.uri) {
            strictFail(
              parser,
              "Unbound namespace prefix: " + JSON.stringify(parser.tagName)
            );
            tag.uri = qn.prefix;
          }
          var parent = parser.tags[parser.tags.length - 1] || parser;
          if (tag.ns && parent.ns !== tag.ns) {
            Object.keys(tag.ns).forEach(function(p3) {
              emitNode(parser, "onopennamespace", {
                prefix: p3,
                uri: tag.ns[p3]
              });
            });
          }
          for (var i5 = 0, l4 = parser.attribList.length; i5 < l4; i5++) {
            var nv = parser.attribList[i5];
            var name = nv[0];
            var value2 = nv[1];
            var qualName = qname(name, true);
            var prefix = qualName.prefix;
            var local = qualName.local;
            var uri = prefix === "" ? "" : tag.ns[prefix] || "";
            var a5 = {
              name,
              value: value2,
              prefix,
              local,
              uri
            };
            if (prefix && prefix !== "xmlns" && !uri) {
              strictFail(
                parser,
                "Unbound namespace prefix: " + JSON.stringify(prefix)
              );
              a5.uri = prefix;
            }
            parser.tag.attributes[name] = a5;
            emitNode(parser, "onattribute", a5);
          }
          parser.attribList.length = 0;
        }
        parser.tag.isSelfClosing = !!selfClosing;
        parser.sawRoot = true;
        parser.tags.push(parser.tag);
        emitNode(parser, "onopentag", parser.tag);
        if (!selfClosing) {
          if (!parser.noscript && parser.tagName.toLowerCase() === "script") {
            parser.state = S3.SCRIPT;
          } else {
            parser.state = S3.TEXT;
          }
          parser.tag = null;
          parser.tagName = "";
        }
        parser.attribName = parser.attribValue = "";
        parser.attribList.length = 0;
      }
      function closeTag(parser) {
        if (!parser.tagName) {
          strictFail(parser, "Weird empty close tag.");
          parser.textNode += "</>";
          parser.state = S3.TEXT;
          return;
        }
        if (parser.script) {
          if (parser.tagName !== "script") {
            parser.script += "</" + parser.tagName + ">";
            parser.tagName = "";
            parser.state = S3.SCRIPT;
            return;
          }
          emitNode(parser, "onscript", parser.script);
          parser.script = "";
        }
        var t4 = parser.tags.length;
        var tagName = parser.tagName;
        if (!parser.strict) {
          tagName = tagName[parser.looseCase]();
        }
        var closeTo = tagName;
        while (t4--) {
          var close = parser.tags[t4];
          if (close.name !== closeTo) {
            strictFail(parser, "Unexpected close tag");
          } else {
            break;
          }
        }
        if (t4 < 0) {
          strictFail(parser, "Unmatched closing tag: " + parser.tagName);
          parser.textNode += "</" + parser.tagName + ">";
          parser.state = S3.TEXT;
          return;
        }
        parser.tagName = tagName;
        var s5 = parser.tags.length;
        while (s5-- > t4) {
          var tag = parser.tag = parser.tags.pop();
          parser.tagName = parser.tag.name;
          emitNode(parser, "onclosetag", parser.tagName);
          var x = {};
          for (var i5 in tag.ns) {
            x[i5] = tag.ns[i5];
          }
          var parent = parser.tags[parser.tags.length - 1] || parser;
          if (parser.opt.xmlns && tag.ns !== parent.ns) {
            Object.keys(tag.ns).forEach(function(p3) {
              var n6 = tag.ns[p3];
              emitNode(parser, "onclosenamespace", { prefix: p3, uri: n6 });
            });
          }
        }
        if (t4 === 0) parser.closedRoot = true;
        parser.tagName = parser.attribValue = parser.attribName = "";
        parser.attribList.length = 0;
        parser.state = S3.TEXT;
      }
      function parseEntity(parser) {
        var entity = parser.entity;
        var entityLC = entity.toLowerCase();
        var num;
        var numStr = "";
        if (parser.ENTITIES[entity]) {
          return parser.ENTITIES[entity];
        }
        if (parser.ENTITIES[entityLC]) {
          return parser.ENTITIES[entityLC];
        }
        entity = entityLC;
        if (entity.charAt(0) === "#") {
          if (entity.charAt(1) === "x") {
            entity = entity.slice(2);
            num = parseInt(entity, 16);
            numStr = num.toString(16);
          } else {
            entity = entity.slice(1);
            num = parseInt(entity, 10);
            numStr = num.toString(10);
          }
        }
        entity = entity.replace(/^0+/, "");
        if (isNaN(num) || numStr.toLowerCase() !== entity || num < 0 || num > 1114111) {
          strictFail(parser, "Invalid character entity");
          return "&" + parser.entity + ";";
        }
        return String.fromCodePoint(num);
      }
      function beginWhiteSpace(parser, c6) {
        if (c6 === "<") {
          parser.state = S3.OPEN_WAKA;
          parser.startTagPosition = parser.position;
        } else if (!isWhitespace(c6)) {
          strictFail(parser, "Non-whitespace before first tag.");
          parser.textNode = c6;
          parser.state = S3.TEXT;
        }
      }
      function charAt(chunk3, i5) {
        var result = "";
        if (i5 < chunk3.length) {
          result = chunk3.charAt(i5);
        }
        return result;
      }
      function write2(chunk3) {
        var parser = this;
        if (this.error) {
          throw this.error;
        }
        if (parser.closed) {
          return error(
            parser,
            "Cannot write after close. Assign an onready handler."
          );
        }
        if (chunk3 === null) {
          return end2(parser);
        }
        if (typeof chunk3 === "object") {
          chunk3 = chunk3.toString();
        }
        var i5 = 0;
        var c6 = "";
        while (true) {
          c6 = charAt(chunk3, i5++);
          parser.c = c6;
          if (!c6) {
            break;
          }
          if (parser.trackPosition) {
            parser.position++;
            if (c6 === "\n") {
              parser.line++;
              parser.column = 0;
            } else {
              parser.column++;
            }
          }
          switch (parser.state) {
            case S3.BEGIN:
              parser.state = S3.BEGIN_WHITESPACE;
              if (c6 === "\uFEFF") {
                continue;
              }
              beginWhiteSpace(parser, c6);
              continue;
            case S3.BEGIN_WHITESPACE:
              beginWhiteSpace(parser, c6);
              continue;
            case S3.TEXT:
              if (parser.sawRoot && !parser.closedRoot) {
                var starti = i5 - 1;
                while (c6 && c6 !== "<" && c6 !== "&") {
                  c6 = charAt(chunk3, i5++);
                  if (c6 && parser.trackPosition) {
                    parser.position++;
                    if (c6 === "\n") {
                      parser.line++;
                      parser.column = 0;
                    } else {
                      parser.column++;
                    }
                  }
                }
                parser.textNode += chunk3.substring(starti, i5 - 1);
              }
              if (c6 === "<" && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {
                parser.state = S3.OPEN_WAKA;
                parser.startTagPosition = parser.position;
              } else {
                if (!isWhitespace(c6) && (!parser.sawRoot || parser.closedRoot)) {
                  strictFail(parser, "Text data outside of root node.");
                }
                if (c6 === "&") {
                  parser.state = S3.TEXT_ENTITY;
                } else {
                  parser.textNode += c6;
                }
              }
              continue;
            case S3.SCRIPT:
              if (c6 === "<") {
                parser.state = S3.SCRIPT_ENDING;
              } else {
                parser.script += c6;
              }
              continue;
            case S3.SCRIPT_ENDING:
              if (c6 === "/") {
                parser.state = S3.CLOSE_TAG;
              } else {
                parser.script += "<" + c6;
                parser.state = S3.SCRIPT;
              }
              continue;
            case S3.OPEN_WAKA:
              if (c6 === "!") {
                parser.state = S3.SGML_DECL;
                parser.sgmlDecl = "";
              } else if (isWhitespace(c6)) {
              } else if (isMatch(nameStart, c6)) {
                parser.state = S3.OPEN_TAG;
                parser.tagName = c6;
              } else if (c6 === "/") {
                parser.state = S3.CLOSE_TAG;
                parser.tagName = "";
              } else if (c6 === "?") {
                parser.state = S3.PROC_INST;
                parser.procInstName = parser.procInstBody = "";
              } else {
                strictFail(parser, "Unencoded <");
                if (parser.startTagPosition + 1 < parser.position) {
                  var pad2 = parser.position - parser.startTagPosition;
                  c6 = new Array(pad2).join(" ") + c6;
                }
                parser.textNode += "<" + c6;
                parser.state = S3.TEXT;
              }
              continue;
            case S3.SGML_DECL:
              if (parser.sgmlDecl + c6 === "--") {
                parser.state = S3.COMMENT;
                parser.comment = "";
                parser.sgmlDecl = "";
                continue;
              }
              if (parser.doctype && parser.doctype !== true && parser.sgmlDecl) {
                parser.state = S3.DOCTYPE_DTD;
                parser.doctype += "<!" + parser.sgmlDecl + c6;
                parser.sgmlDecl = "";
              } else if ((parser.sgmlDecl + c6).toUpperCase() === CDATA) {
                emitNode(parser, "onopencdata");
                parser.state = S3.CDATA;
                parser.sgmlDecl = "";
                parser.cdata = "";
              } else if ((parser.sgmlDecl + c6).toUpperCase() === DOCTYPE) {
                parser.state = S3.DOCTYPE;
                if (parser.doctype || parser.sawRoot) {
                  strictFail(
                    parser,
                    "Inappropriately located doctype declaration"
                  );
                }
                parser.doctype = "";
                parser.sgmlDecl = "";
              } else if (c6 === ">") {
                emitNode(parser, "onsgmldeclaration", parser.sgmlDecl);
                parser.sgmlDecl = "";
                parser.state = S3.TEXT;
              } else if (isQuote(c6)) {
                parser.state = S3.SGML_DECL_QUOTED;
                parser.sgmlDecl += c6;
              } else {
                parser.sgmlDecl += c6;
              }
              continue;
            case S3.SGML_DECL_QUOTED:
              if (c6 === parser.q) {
                parser.state = S3.SGML_DECL;
                parser.q = "";
              }
              parser.sgmlDecl += c6;
              continue;
            case S3.DOCTYPE:
              if (c6 === ">") {
                parser.state = S3.TEXT;
                emitNode(parser, "ondoctype", parser.doctype);
                parser.doctype = true;
              } else {
                parser.doctype += c6;
                if (c6 === "[") {
                  parser.state = S3.DOCTYPE_DTD;
                } else if (isQuote(c6)) {
                  parser.state = S3.DOCTYPE_QUOTED;
                  parser.q = c6;
                }
              }
              continue;
            case S3.DOCTYPE_QUOTED:
              parser.doctype += c6;
              if (c6 === parser.q) {
                parser.q = "";
                parser.state = S3.DOCTYPE;
              }
              continue;
            case S3.DOCTYPE_DTD:
              if (c6 === "]") {
                parser.doctype += c6;
                parser.state = S3.DOCTYPE;
              } else if (c6 === "<") {
                parser.state = S3.OPEN_WAKA;
                parser.startTagPosition = parser.position;
              } else if (isQuote(c6)) {
                parser.doctype += c6;
                parser.state = S3.DOCTYPE_DTD_QUOTED;
                parser.q = c6;
              } else {
                parser.doctype += c6;
              }
              continue;
            case S3.DOCTYPE_DTD_QUOTED:
              parser.doctype += c6;
              if (c6 === parser.q) {
                parser.state = S3.DOCTYPE_DTD;
                parser.q = "";
              }
              continue;
            case S3.COMMENT:
              if (c6 === "-") {
                parser.state = S3.COMMENT_ENDING;
              } else {
                parser.comment += c6;
              }
              continue;
            case S3.COMMENT_ENDING:
              if (c6 === "-") {
                parser.state = S3.COMMENT_ENDED;
                parser.comment = textopts(parser.opt, parser.comment);
                if (parser.comment) {
                  emitNode(parser, "oncomment", parser.comment);
                }
                parser.comment = "";
              } else {
                parser.comment += "-" + c6;
                parser.state = S3.COMMENT;
              }
              continue;
            case S3.COMMENT_ENDED:
              if (c6 !== ">") {
                strictFail(parser, "Malformed comment");
                parser.comment += "--" + c6;
                parser.state = S3.COMMENT;
              } else if (parser.doctype && parser.doctype !== true) {
                parser.state = S3.DOCTYPE_DTD;
              } else {
                parser.state = S3.TEXT;
              }
              continue;
            case S3.CDATA:
              var starti = i5 - 1;
              while (c6 && c6 !== "]") {
                c6 = charAt(chunk3, i5++);
                if (c6 && parser.trackPosition) {
                  parser.position++;
                  if (c6 === "\n") {
                    parser.line++;
                    parser.column = 0;
                  } else {
                    parser.column++;
                  }
                }
              }
              parser.cdata += chunk3.substring(starti, i5 - 1);
              if (c6 === "]") {
                parser.state = S3.CDATA_ENDING;
              }
              continue;
            case S3.CDATA_ENDING:
              if (c6 === "]") {
                parser.state = S3.CDATA_ENDING_2;
              } else {
                parser.cdata += "]" + c6;
                parser.state = S3.CDATA;
              }
              continue;
            case S3.CDATA_ENDING_2:
              if (c6 === ">") {
                if (parser.cdata) {
                  emitNode(parser, "oncdata", parser.cdata);
                }
                emitNode(parser, "onclosecdata");
                parser.cdata = "";
                parser.state = S3.TEXT;
              } else if (c6 === "]") {
                parser.cdata += "]";
              } else {
                parser.cdata += "]]" + c6;
                parser.state = S3.CDATA;
              }
              continue;
            case S3.PROC_INST:
              if (c6 === "?") {
                parser.state = S3.PROC_INST_ENDING;
              } else if (isWhitespace(c6)) {
                parser.state = S3.PROC_INST_BODY;
              } else {
                parser.procInstName += c6;
              }
              continue;
            case S3.PROC_INST_BODY:
              if (!parser.procInstBody && isWhitespace(c6)) {
                continue;
              } else if (c6 === "?") {
                parser.state = S3.PROC_INST_ENDING;
              } else {
                parser.procInstBody += c6;
              }
              continue;
            case S3.PROC_INST_ENDING:
              if (c6 === ">") {
                emitNode(parser, "onprocessinginstruction", {
                  name: parser.procInstName,
                  body: parser.procInstBody
                });
                parser.procInstName = parser.procInstBody = "";
                parser.state = S3.TEXT;
              } else {
                parser.procInstBody += "?" + c6;
                parser.state = S3.PROC_INST_BODY;
              }
              continue;
            case S3.OPEN_TAG:
              if (isMatch(nameBody, c6)) {
                parser.tagName += c6;
              } else {
                newTag(parser);
                if (c6 === ">") {
                  openTag(parser);
                } else if (c6 === "/") {
                  parser.state = S3.OPEN_TAG_SLASH;
                } else {
                  if (!isWhitespace(c6)) {
                    strictFail(parser, "Invalid character in tag name");
                  }
                  parser.state = S3.ATTRIB;
                }
              }
              continue;
            case S3.OPEN_TAG_SLASH:
              if (c6 === ">") {
                openTag(parser, true);
                closeTag(parser);
              } else {
                strictFail(
                  parser,
                  "Forward-slash in opening tag not followed by >"
                );
                parser.state = S3.ATTRIB;
              }
              continue;
            case S3.ATTRIB:
              if (isWhitespace(c6)) {
                continue;
              } else if (c6 === ">") {
                openTag(parser);
              } else if (c6 === "/") {
                parser.state = S3.OPEN_TAG_SLASH;
              } else if (isMatch(nameStart, c6)) {
                parser.attribName = c6;
                parser.attribValue = "";
                parser.state = S3.ATTRIB_NAME;
              } else {
                strictFail(parser, "Invalid attribute name");
              }
              continue;
            case S3.ATTRIB_NAME:
              if (c6 === "=") {
                parser.state = S3.ATTRIB_VALUE;
              } else if (c6 === ">") {
                strictFail(parser, "Attribute without value");
                parser.attribValue = parser.attribName;
                attrib(parser);
                openTag(parser);
              } else if (isWhitespace(c6)) {
                parser.state = S3.ATTRIB_NAME_SAW_WHITE;
              } else if (isMatch(nameBody, c6)) {
                parser.attribName += c6;
              } else {
                strictFail(parser, "Invalid attribute name");
              }
              continue;
            case S3.ATTRIB_NAME_SAW_WHITE:
              if (c6 === "=") {
                parser.state = S3.ATTRIB_VALUE;
              } else if (isWhitespace(c6)) {
                continue;
              } else {
                strictFail(parser, "Attribute without value");
                parser.tag.attributes[parser.attribName] = "";
                parser.attribValue = "";
                emitNode(parser, "onattribute", {
                  name: parser.attribName,
                  value: ""
                });
                parser.attribName = "";
                if (c6 === ">") {
                  openTag(parser);
                } else if (isMatch(nameStart, c6)) {
                  parser.attribName = c6;
                  parser.state = S3.ATTRIB_NAME;
                } else {
                  strictFail(parser, "Invalid attribute name");
                  parser.state = S3.ATTRIB;
                }
              }
              continue;
            case S3.ATTRIB_VALUE:
              if (isWhitespace(c6)) {
                continue;
              } else if (isQuote(c6)) {
                parser.q = c6;
                parser.state = S3.ATTRIB_VALUE_QUOTED;
              } else {
                if (!parser.opt.unquotedAttributeValues) {
                  error(parser, "Unquoted attribute value");
                }
                parser.state = S3.ATTRIB_VALUE_UNQUOTED;
                parser.attribValue = c6;
              }
              continue;
            case S3.ATTRIB_VALUE_QUOTED:
              if (c6 !== parser.q) {
                if (c6 === "&") {
                  parser.state = S3.ATTRIB_VALUE_ENTITY_Q;
                } else {
                  parser.attribValue += c6;
                }
                continue;
              }
              attrib(parser);
              parser.q = "";
              parser.state = S3.ATTRIB_VALUE_CLOSED;
              continue;
            case S3.ATTRIB_VALUE_CLOSED:
              if (isWhitespace(c6)) {
                parser.state = S3.ATTRIB;
              } else if (c6 === ">") {
                openTag(parser);
              } else if (c6 === "/") {
                parser.state = S3.OPEN_TAG_SLASH;
              } else if (isMatch(nameStart, c6)) {
                strictFail(parser, "No whitespace between attributes");
                parser.attribName = c6;
                parser.attribValue = "";
                parser.state = S3.ATTRIB_NAME;
              } else {
                strictFail(parser, "Invalid attribute name");
              }
              continue;
            case S3.ATTRIB_VALUE_UNQUOTED:
              if (!isAttribEnd(c6)) {
                if (c6 === "&") {
                  parser.state = S3.ATTRIB_VALUE_ENTITY_U;
                } else {
                  parser.attribValue += c6;
                }
                continue;
              }
              attrib(parser);
              if (c6 === ">") {
                openTag(parser);
              } else {
                parser.state = S3.ATTRIB;
              }
              continue;
            case S3.CLOSE_TAG:
              if (!parser.tagName) {
                if (isWhitespace(c6)) {
                  continue;
                } else if (notMatch(nameStart, c6)) {
                  if (parser.script) {
                    parser.script += "</" + c6;
                    parser.state = S3.SCRIPT;
                  } else {
                    strictFail(parser, "Invalid tagname in closing tag.");
                  }
                } else {
                  parser.tagName = c6;
                }
              } else if (c6 === ">") {
                closeTag(parser);
              } else if (isMatch(nameBody, c6)) {
                parser.tagName += c6;
              } else if (parser.script) {
                parser.script += "</" + parser.tagName + c6;
                parser.tagName = "";
                parser.state = S3.SCRIPT;
              } else {
                if (!isWhitespace(c6)) {
                  strictFail(parser, "Invalid tagname in closing tag");
                }
                parser.state = S3.CLOSE_TAG_SAW_WHITE;
              }
              continue;
            case S3.CLOSE_TAG_SAW_WHITE:
              if (isWhitespace(c6)) {
                continue;
              }
              if (c6 === ">") {
                closeTag(parser);
              } else {
                strictFail(parser, "Invalid characters in closing tag");
              }
              continue;
            case S3.TEXT_ENTITY:
            case S3.ATTRIB_VALUE_ENTITY_Q:
            case S3.ATTRIB_VALUE_ENTITY_U:
              var returnState;
              var buffer;
              switch (parser.state) {
                case S3.TEXT_ENTITY:
                  returnState = S3.TEXT;
                  buffer = "textNode";
                  break;
                case S3.ATTRIB_VALUE_ENTITY_Q:
                  returnState = S3.ATTRIB_VALUE_QUOTED;
                  buffer = "attribValue";
                  break;
                case S3.ATTRIB_VALUE_ENTITY_U:
                  returnState = S3.ATTRIB_VALUE_UNQUOTED;
                  buffer = "attribValue";
                  break;
              }
              if (c6 === ";") {
                var parsedEntity = parseEntity(parser);
                if (parser.opt.unparsedEntities && !Object.values(sax.XML_ENTITIES).includes(parsedEntity)) {
                  parser.entity = "";
                  parser.state = returnState;
                  parser.write(parsedEntity);
                } else {
                  parser[buffer] += parsedEntity;
                  parser.entity = "";
                  parser.state = returnState;
                }
              } else if (isMatch(parser.entity.length ? entityBody : entityStart, c6)) {
                parser.entity += c6;
              } else {
                strictFail(parser, "Invalid character in entity name");
                parser[buffer] += "&" + parser.entity + c6;
                parser.entity = "";
                parser.state = returnState;
              }
              continue;
            default: {
              throw new Error(parser, "Unknown state: " + parser.state);
            }
          }
        }
        if (parser.position >= parser.bufferCheckPosition) {
          checkBufferLength(parser);
        }
        return parser;
      }
      if (!String.fromCodePoint) {
        ;
        (function() {
          var stringFromCharCode = String.fromCharCode;
          var floor = Math.floor;
          var fromCodePoint2 = function() {
            var MAX_SIZE = 16384;
            var codeUnits = [];
            var highSurrogate;
            var lowSurrogate;
            var index2 = -1;
            var length2 = arguments.length;
            if (!length2) {
              return "";
            }
            var result = "";
            while (++index2 < length2) {
              var codePoint = Number(arguments[index2]);
              if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`
              codePoint < 0 || // not a valid Unicode code point
              codePoint > 1114111 || // not a valid Unicode code point
              floor(codePoint) !== codePoint) {
                throw RangeError("Invalid code point: " + codePoint);
              }
              if (codePoint <= 65535) {
                codeUnits.push(codePoint);
              } else {
                codePoint -= 65536;
                highSurrogate = (codePoint >> 10) + 55296;
                lowSurrogate = codePoint % 1024 + 56320;
                codeUnits.push(highSurrogate, lowSurrogate);
              }
              if (index2 + 1 === length2 || codeUnits.length > MAX_SIZE) {
                result += stringFromCharCode.apply(null, codeUnits);
                codeUnits.length = 0;
              }
            }
            return result;
          };
          if (Object.defineProperty) {
            Object.defineProperty(String, "fromCodePoint", {
              value: fromCodePoint2,
              configurable: true,
              writable: true
            });
          } else {
            String.fromCodePoint = fromCodePoint2;
          }
        })();
      }
    })(typeof exports === "undefined" ? exports.sax = {} : exports);
  }
});

// ../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/utils.js
var require_utils8 = __commonJS({
  "../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/utils.js"(exports) {
    "use strict";
    exports.removeLeadingAndTrailingHTTPWhitespace = (string) => {
      return string.replace(/^[ \t\n\r]+/u, "").replace(/[ \t\n\r]+$/u, "");
    };
    exports.removeTrailingHTTPWhitespace = (string) => {
      return string.replace(/[ \t\n\r]+$/u, "");
    };
    exports.isHTTPWhitespaceChar = (char) => {
      return char === " " || char === "	" || char === "\n" || char === "\r";
    };
    exports.solelyContainsHTTPTokenCodePoints = (string) => {
      return /^[-!#$%&'*+.^_`|~A-Za-z0-9]*$/u.test(string);
    };
    exports.soleyContainsHTTPQuotedStringTokenCodePoints = (string) => {
      return /^[\t\u0020-\u007E\u0080-\u00FF]*$/u.test(string);
    };
    exports.asciiLowercase = (string) => {
      return string.replace(/[A-Z]/ug, (l4) => l4.toLowerCase());
    };
    exports.collectAnHTTPQuotedString = (input, position) => {
      let value2 = "";
      position++;
      while (true) {
        while (position < input.length && input[position] !== '"' && input[position] !== "\\") {
          value2 += input[position];
          ++position;
        }
        if (position >= input.length) {
          break;
        }
        const quoteOrBackslash = input[position];
        ++position;
        if (quoteOrBackslash === "\\") {
          if (position >= input.length) {
            value2 += "\\";
            break;
          }
          value2 += input[position];
          ++position;
        } else {
          break;
        }
      }
      return [value2, position];
    };
  }
});

// ../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/mime-type-parameters.js
var require_mime_type_parameters = __commonJS({
  "../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/mime-type-parameters.js"(exports, module) {
    "use strict";
    var {
      asciiLowercase,
      solelyContainsHTTPTokenCodePoints,
      soleyContainsHTTPQuotedStringTokenCodePoints
    } = require_utils8();
    module.exports = class MIMETypeParameters {
      constructor(map) {
        this._map = map;
      }
      get size() {
        return this._map.size;
      }
      get(name) {
        name = asciiLowercase(String(name));
        return this._map.get(name);
      }
      has(name) {
        name = asciiLowercase(String(name));
        return this._map.has(name);
      }
      set(name, value2) {
        name = asciiLowercase(String(name));
        value2 = String(value2);
        if (!solelyContainsHTTPTokenCodePoints(name)) {
          throw new Error(`Invalid MIME type parameter name "${name}": only HTTP token code points are valid.`);
        }
        if (!soleyContainsHTTPQuotedStringTokenCodePoints(value2)) {
          throw new Error(`Invalid MIME type parameter value "${value2}": only HTTP quoted-string token code points are valid.`);
        }
        return this._map.set(name, value2);
      }
      clear() {
        this._map.clear();
      }
      delete(name) {
        name = asciiLowercase(String(name));
        return this._map.delete(name);
      }
      forEach(callbackFn, thisArg) {
        this._map.forEach(callbackFn, thisArg);
      }
      keys() {
        return this._map.keys();
      }
      values() {
        return this._map.values();
      }
      entries() {
        return this._map.entries();
      }
      [Symbol.iterator]() {
        return this._map[Symbol.iterator]();
      }
    };
  }
});

// ../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/parser.js
var require_parser2 = __commonJS({
  "../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/parser.js"(exports, module) {
    "use strict";
    var {
      removeLeadingAndTrailingHTTPWhitespace,
      removeTrailingHTTPWhitespace,
      isHTTPWhitespaceChar,
      solelyContainsHTTPTokenCodePoints,
      soleyContainsHTTPQuotedStringTokenCodePoints,
      asciiLowercase,
      collectAnHTTPQuotedString
    } = require_utils8();
    module.exports = (input) => {
      input = removeLeadingAndTrailingHTTPWhitespace(input);
      let position = 0;
      let type = "";
      while (position < input.length && input[position] !== "/") {
        type += input[position];
        ++position;
      }
      if (type.length === 0 || !solelyContainsHTTPTokenCodePoints(type)) {
        return null;
      }
      if (position >= input.length) {
        return null;
      }
      ++position;
      let subtype = "";
      while (position < input.length && input[position] !== ";") {
        subtype += input[position];
        ++position;
      }
      subtype = removeTrailingHTTPWhitespace(subtype);
      if (subtype.length === 0 || !solelyContainsHTTPTokenCodePoints(subtype)) {
        return null;
      }
      const mimeType = {
        type: asciiLowercase(type),
        subtype: asciiLowercase(subtype),
        parameters: /* @__PURE__ */ new Map()
      };
      while (position < input.length) {
        ++position;
        while (isHTTPWhitespaceChar(input[position])) {
          ++position;
        }
        let parameterName = "";
        while (position < input.length && input[position] !== ";" && input[position] !== "=") {
          parameterName += input[position];
          ++position;
        }
        parameterName = asciiLowercase(parameterName);
        if (position < input.length) {
          if (input[position] === ";") {
            continue;
          }
          ++position;
        }
        let parameterValue = null;
        if (input[position] === '"') {
          [parameterValue, position] = collectAnHTTPQuotedString(input, position);
          while (position < input.length && input[position] !== ";") {
            ++position;
          }
        } else {
          parameterValue = "";
          while (position < input.length && input[position] !== ";") {
            parameterValue += input[position];
            ++position;
          }
          parameterValue = removeTrailingHTTPWhitespace(parameterValue);
          if (parameterValue === "") {
            continue;
          }
        }
        if (parameterName.length > 0 && solelyContainsHTTPTokenCodePoints(parameterName) && soleyContainsHTTPQuotedStringTokenCodePoints(parameterValue) && !mimeType.parameters.has(parameterName)) {
          mimeType.parameters.set(parameterName, parameterValue);
        }
      }
      return mimeType;
    };
  }
});

// ../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/serializer.js
var require_serializer2 = __commonJS({
  "../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/serializer.js"(exports, module) {
    "use strict";
    var { solelyContainsHTTPTokenCodePoints } = require_utils8();
    module.exports = (mimeType) => {
      let serialization = `${mimeType.type}/${mimeType.subtype}`;
      if (mimeType.parameters.size === 0) {
        return serialization;
      }
      for (let [name, value2] of mimeType.parameters) {
        serialization += ";";
        serialization += name;
        serialization += "=";
        if (!solelyContainsHTTPTokenCodePoints(value2) || value2.length === 0) {
          value2 = value2.replace(/(["\\])/ug, "\\$1");
          value2 = `"${value2}"`;
        }
        serialization += value2;
      }
      return serialization;
    };
  }
});

// ../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/mime-type.js
var require_mime_type = __commonJS({
  "../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/mime-type.js"(exports, module) {
    "use strict";
    var MIMETypeParameters = require_mime_type_parameters();
    var parse3 = require_parser2();
    var serialize = require_serializer2();
    var {
      asciiLowercase,
      solelyContainsHTTPTokenCodePoints
    } = require_utils8();
    module.exports = class MIMEType {
      constructor(string) {
        string = String(string);
        const result = parse3(string);
        if (result === null) {
          throw new Error(`Could not parse MIME type string "${string}"`);
        }
        this._type = result.type;
        this._subtype = result.subtype;
        this._parameters = new MIMETypeParameters(result.parameters);
      }
      static parse(string) {
        try {
          return new this(string);
        } catch (e4) {
          return null;
        }
      }
      get essence() {
        return `${this.type}/${this.subtype}`;
      }
      get type() {
        return this._type;
      }
      set type(value2) {
        value2 = asciiLowercase(String(value2));
        if (value2.length === 0) {
          throw new Error("Invalid type: must be a non-empty string");
        }
        if (!solelyContainsHTTPTokenCodePoints(value2)) {
          throw new Error(`Invalid type ${value2}: must contain only HTTP token code points`);
        }
        this._type = value2;
      }
      get subtype() {
        return this._subtype;
      }
      set subtype(value2) {
        value2 = asciiLowercase(String(value2));
        if (value2.length === 0) {
          throw new Error("Invalid subtype: must be a non-empty string");
        }
        if (!solelyContainsHTTPTokenCodePoints(value2)) {
          throw new Error(`Invalid subtype ${value2}: must contain only HTTP token code points`);
        }
        this._subtype = value2;
      }
      get parameters() {
        return this._parameters;
      }
      toString() {
        return serialize(this);
      }
      isJavaScript({ prohibitParameters = false } = {}) {
        switch (this._type) {
          case "text": {
            switch (this._subtype) {
              case "ecmascript":
              case "javascript":
              case "javascript1.0":
              case "javascript1.1":
              case "javascript1.2":
              case "javascript1.3":
              case "javascript1.4":
              case "javascript1.5":
              case "jscript":
              case "livescript":
              case "x-ecmascript":
              case "x-javascript": {
                return !prohibitParameters || this._parameters.size === 0;
              }
              default: {
                return false;
              }
            }
          }
          case "application": {
            switch (this._subtype) {
              case "ecmascript":
              case "javascript":
              case "x-ecmascript":
              case "x-javascript": {
                return !prohibitParameters || this._parameters.size === 0;
              }
              default: {
                return false;
              }
            }
          }
          default: {
            return false;
          }
        }
      }
      isXML() {
        return this._subtype === "xml" && (this._type === "text" || this._type === "application") || this._subtype.endsWith("+xml");
      }
      isHTML() {
        return this._subtype === "html" && this._type === "text";
      }
    };
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/Errors.js
var defaultMessages, EndOfStreamError, AbortError2;
var init_Errors = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/Errors.js"() {
    defaultMessages = "End-Of-Stream";
    EndOfStreamError = class extends Error {
      constructor() {
        super(defaultMessages);
        this.name = "EndOfStreamError";
      }
    };
    AbortError2 = class extends Error {
      constructor(message = "The operation was aborted") {
        super(message);
        this.name = "AbortError";
      }
    };
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/Deferred.js
var Deferred;
var init_Deferred = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/Deferred.js"() {
    Deferred = class {
      constructor() {
        this.resolve = () => null;
        this.reject = () => null;
        this.promise = new Promise((resolve4, reject) => {
          this.reject = reject;
          this.resolve = resolve4;
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/AbstractStreamReader.js
var AbstractStreamReader;
var init_AbstractStreamReader = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/AbstractStreamReader.js"() {
    init_Errors();
    AbstractStreamReader = class {
      constructor() {
        this.endOfStream = false;
        this.interrupted = false;
        this.peekQueue = [];
      }
      async peek(uint8Array, mayBeLess = false) {
        const bytesRead = await this.read(uint8Array, mayBeLess);
        this.peekQueue.push(uint8Array.subarray(0, bytesRead));
        return bytesRead;
      }
      async read(buffer, mayBeLess = false) {
        if (buffer.length === 0) {
          return 0;
        }
        let bytesRead = this.readFromPeekBuffer(buffer);
        if (!this.endOfStream) {
          bytesRead += await this.readRemainderFromStream(buffer.subarray(bytesRead), mayBeLess);
        }
        if (bytesRead === 0 && !mayBeLess) {
          throw new EndOfStreamError();
        }
        return bytesRead;
      }
      /**
       * Read chunk from stream
       * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in
       * @returns Number of bytes read
       */
      readFromPeekBuffer(buffer) {
        let remaining = buffer.length;
        let bytesRead = 0;
        while (this.peekQueue.length > 0 && remaining > 0) {
          const peekData = this.peekQueue.pop();
          if (!peekData)
            throw new Error("peekData should be defined");
          const lenCopy = Math.min(peekData.length, remaining);
          buffer.set(peekData.subarray(0, lenCopy), bytesRead);
          bytesRead += lenCopy;
          remaining -= lenCopy;
          if (lenCopy < peekData.length) {
            this.peekQueue.push(peekData.subarray(lenCopy));
          }
        }
        return bytesRead;
      }
      async readRemainderFromStream(buffer, mayBeLess) {
        let bytesRead = 0;
        while (bytesRead < buffer.length && !this.endOfStream) {
          if (this.interrupted) {
            throw new AbortError2();
          }
          const chunkLen = await this.readFromStream(buffer.subarray(bytesRead), mayBeLess);
          if (chunkLen === 0)
            break;
          bytesRead += chunkLen;
        }
        if (!mayBeLess && bytesRead < buffer.length) {
          throw new EndOfStreamError();
        }
        return bytesRead;
      }
    };
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/StreamReader.js
var StreamReader;
var init_StreamReader = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/StreamReader.js"() {
    init_Errors();
    init_Deferred();
    init_AbstractStreamReader();
    StreamReader = class extends AbstractStreamReader {
      constructor(s4) {
        super();
        this.s = s4;
        this.deferred = null;
        if (!s4.read || !s4.once) {
          throw new Error("Expected an instance of stream.Readable");
        }
        this.s.once("end", () => {
          this.endOfStream = true;
          if (this.deferred) {
            this.deferred.resolve(0);
          }
        });
        this.s.once("error", (err2) => this.reject(err2));
        this.s.once("close", () => this.abort());
      }
      /**
       * Read chunk from stream
       * @param buffer Target Uint8Array (or Buffer) to store data read from stream in
       * @param mayBeLess - If true, may fill the buffer partially
       * @returns Number of bytes read
       */
      async readFromStream(buffer, mayBeLess) {
        if (buffer.length === 0)
          return 0;
        const readBuffer = this.s.read(buffer.length);
        if (readBuffer) {
          buffer.set(readBuffer);
          return readBuffer.length;
        }
        const request = {
          buffer,
          mayBeLess,
          deferred: new Deferred()
        };
        this.deferred = request.deferred;
        this.s.once("readable", () => {
          this.readDeferred(request);
        });
        return request.deferred.promise;
      }
      /**
       * Process deferred read request
       * @param request Deferred read request
       */
      readDeferred(request) {
        const readBuffer = this.s.read(request.buffer.length);
        if (readBuffer) {
          request.buffer.set(readBuffer);
          request.deferred.resolve(readBuffer.length);
          this.deferred = null;
        } else {
          this.s.once("readable", () => {
            this.readDeferred(request);
          });
        }
      }
      reject(err2) {
        this.interrupted = true;
        if (this.deferred) {
          this.deferred.reject(err2);
          this.deferred = null;
        }
      }
      async abort() {
        this.reject(new AbortError2());
      }
      async close() {
        return this.abort();
      }
    };
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamReader.js
var WebStreamReader;
var init_WebStreamReader = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamReader.js"() {
    init_AbstractStreamReader();
    WebStreamReader = class extends AbstractStreamReader {
      constructor(reader) {
        super();
        this.reader = reader;
      }
      async abort() {
        return this.close();
      }
      async close() {
        this.reader.releaseLock();
      }
    };
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamByobReader.js
var WebStreamByobReader;
var init_WebStreamByobReader = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamByobReader.js"() {
    init_WebStreamReader();
    WebStreamByobReader = class extends WebStreamReader {
      /**
       * Read from stream
       * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in
       * @param mayBeLess - If true, may fill the buffer partially
       * @protected Bytes read
       */
      async readFromStream(buffer, mayBeLess) {
        if (buffer.length === 0)
          return 0;
        const result = await this.reader.read(new Uint8Array(buffer.length), { min: mayBeLess ? void 0 : buffer.length });
        if (result.done) {
          this.endOfStream = result.done;
        }
        if (result.value) {
          buffer.set(result.value);
          return result.value.length;
        }
        return 0;
      }
    };
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamDefaultReader.js
var WebStreamDefaultReader;
var init_WebStreamDefaultReader = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamDefaultReader.js"() {
    init_Errors();
    init_AbstractStreamReader();
    WebStreamDefaultReader = class extends AbstractStreamReader {
      constructor(reader) {
        super();
        this.reader = reader;
        this.buffer = null;
      }
      /**
       * Copy chunk to target, and store the remainder in this.buffer
       */
      writeChunk(target, chunk3) {
        const written = Math.min(chunk3.length, target.length);
        target.set(chunk3.subarray(0, written));
        if (written < chunk3.length) {
          this.buffer = chunk3.subarray(written);
        } else {
          this.buffer = null;
        }
        return written;
      }
      /**
       * Read from stream
       * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in
       * @param mayBeLess - If true, may fill the buffer partially
       * @protected Bytes read
       */
      async readFromStream(buffer, mayBeLess) {
        if (buffer.length === 0)
          return 0;
        let totalBytesRead = 0;
        if (this.buffer) {
          totalBytesRead += this.writeChunk(buffer, this.buffer);
        }
        while (totalBytesRead < buffer.length && !this.endOfStream) {
          const result = await this.reader.read();
          if (result.done) {
            this.endOfStream = true;
            break;
          }
          if (result.value) {
            totalBytesRead += this.writeChunk(buffer.subarray(totalBytesRead), result.value);
          }
        }
        if (!mayBeLess && totalBytesRead === 0 && this.endOfStream) {
          throw new EndOfStreamError();
        }
        return totalBytesRead;
      }
      abort() {
        this.interrupted = true;
        return this.reader.cancel();
      }
      async close() {
        await this.abort();
        this.reader.releaseLock();
      }
    };
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js
function makeWebStreamReader(stream7) {
  try {
    const reader = stream7.getReader({ mode: "byob" });
    if (reader instanceof ReadableStreamDefaultReader) {
      return new WebStreamDefaultReader(reader);
    }
    return new WebStreamByobReader(reader);
  } catch (error) {
    if (error instanceof TypeError) {
      return new WebStreamDefaultReader(stream7.getReader());
    }
    throw error;
  }
}
var init_WebStreamReaderFactory = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js"() {
    init_WebStreamByobReader();
    init_WebStreamDefaultReader();
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/index.js
var init_stream2 = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/index.js"() {
    init_Errors();
    init_StreamReader();
    init_WebStreamByobReader();
    init_WebStreamDefaultReader();
    init_WebStreamReaderFactory();
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/AbstractTokenizer.js
var AbstractTokenizer;
var init_AbstractTokenizer = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/AbstractTokenizer.js"() {
    init_stream2();
    AbstractTokenizer = class {
      /**
       * Constructor
       * @param options Tokenizer options
       * @protected
       */
      constructor(options) {
        this.numBuffer = new Uint8Array(8);
        this.position = 0;
        this.onClose = options?.onClose;
        if (options?.abortSignal) {
          options.abortSignal.addEventListener("abort", () => {
            this.abort();
          });
        }
      }
      /**
       * Read a token from the tokenizer-stream
       * @param token - The token to read
       * @param position - If provided, the desired position in the tokenizer-stream
       * @returns Promise with token data
       */
      async readToken(token, position = this.position) {
        const uint8Array = new Uint8Array(token.len);
        const len = await this.readBuffer(uint8Array, { position });
        if (len < token.len)
          throw new EndOfStreamError();
        return token.get(uint8Array, 0);
      }
      /**
       * Peek a token from the tokenizer-stream.
       * @param token - Token to peek from the tokenizer-stream.
       * @param position - Offset where to begin reading within the file. If position is null, data will be read from the current file position.
       * @returns Promise with token data
       */
      async peekToken(token, position = this.position) {
        const uint8Array = new Uint8Array(token.len);
        const len = await this.peekBuffer(uint8Array, { position });
        if (len < token.len)
          throw new EndOfStreamError();
        return token.get(uint8Array, 0);
      }
      /**
       * Read a numeric token from the stream
       * @param token - Numeric token
       * @returns Promise with number
       */
      async readNumber(token) {
        const len = await this.readBuffer(this.numBuffer, { length: token.len });
        if (len < token.len)
          throw new EndOfStreamError();
        return token.get(this.numBuffer, 0);
      }
      /**
       * Read a numeric token from the stream
       * @param token - Numeric token
       * @returns Promise with number
       */
      async peekNumber(token) {
        const len = await this.peekBuffer(this.numBuffer, { length: token.len });
        if (len < token.len)
          throw new EndOfStreamError();
        return token.get(this.numBuffer, 0);
      }
      /**
       * Ignore number of bytes, advances the pointer in under tokenizer-stream.
       * @param length - Number of bytes to ignore
       * @return resolves the number of bytes ignored, equals length if this available, otherwise the number of bytes available
       */
      async ignore(length2) {
        if (this.fileInfo.size !== void 0) {
          const bytesLeft = this.fileInfo.size - this.position;
          if (length2 > bytesLeft) {
            this.position += bytesLeft;
            return bytesLeft;
          }
        }
        this.position += length2;
        return length2;
      }
      async close() {
        await this.abort();
        await this.onClose?.();
      }
      normalizeOptions(uint8Array, options) {
        if (!this.supportsRandomAccess() && options && options.position !== void 0 && options.position < this.position) {
          throw new Error("`options.position` must be equal or greater than `tokenizer.position`");
        }
        return {
          ...{
            mayBeLess: false,
            offset: 0,
            length: uint8Array.length,
            position: this.position
          },
          ...options
        };
      }
      abort() {
        return Promise.resolve();
      }
    };
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/ReadStreamTokenizer.js
var maxBufferSize, ReadStreamTokenizer;
var init_ReadStreamTokenizer = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/ReadStreamTokenizer.js"() {
    init_AbstractTokenizer();
    init_stream2();
    maxBufferSize = 256e3;
    ReadStreamTokenizer = class extends AbstractTokenizer {
      /**
       * Constructor
       * @param streamReader stream-reader to read from
       * @param options Tokenizer options
       */
      constructor(streamReader, options) {
        super(options);
        this.streamReader = streamReader;
        this.fileInfo = options?.fileInfo ?? {};
      }
      /**
       * Read buffer from tokenizer
       * @param uint8Array - Target Uint8Array to fill with data read from the tokenizer-stream
       * @param options - Read behaviour options
       * @returns Promise with number of bytes read
       */
      async readBuffer(uint8Array, options) {
        const normOptions = this.normalizeOptions(uint8Array, options);
        const skipBytes = normOptions.position - this.position;
        if (skipBytes > 0) {
          await this.ignore(skipBytes);
          return this.readBuffer(uint8Array, options);
        }
        if (skipBytes < 0) {
          throw new Error("`options.position` must be equal or greater than `tokenizer.position`");
        }
        if (normOptions.length === 0) {
          return 0;
        }
        const bytesRead = await this.streamReader.read(uint8Array.subarray(0, normOptions.length), normOptions.mayBeLess);
        this.position += bytesRead;
        if ((!options || !options.mayBeLess) && bytesRead < normOptions.length) {
          throw new EndOfStreamError();
        }
        return bytesRead;
      }
      /**
       * Peek (read ahead) buffer from tokenizer
       * @param uint8Array - Uint8Array (or Buffer) to write data to
       * @param options - Read behaviour options
       * @returns Promise with number of bytes peeked
       */
      async peekBuffer(uint8Array, options) {
        const normOptions = this.normalizeOptions(uint8Array, options);
        let bytesRead = 0;
        if (normOptions.position) {
          const skipBytes = normOptions.position - this.position;
          if (skipBytes > 0) {
            const skipBuffer = new Uint8Array(normOptions.length + skipBytes);
            bytesRead = await this.peekBuffer(skipBuffer, { mayBeLess: normOptions.mayBeLess });
            uint8Array.set(skipBuffer.subarray(skipBytes));
            return bytesRead - skipBytes;
          }
          if (skipBytes < 0) {
            throw new Error("Cannot peek from a negative offset in a stream");
          }
        }
        if (normOptions.length > 0) {
          try {
            bytesRead = await this.streamReader.peek(uint8Array.subarray(0, normOptions.length), normOptions.mayBeLess);
          } catch (err2) {
            if (options?.mayBeLess && err2 instanceof EndOfStreamError) {
              return 0;
            }
            throw err2;
          }
          if (!normOptions.mayBeLess && bytesRead < normOptions.length) {
            throw new EndOfStreamError();
          }
        }
        return bytesRead;
      }
      async ignore(length2) {
        const bufSize = Math.min(maxBufferSize, length2);
        const buf = new Uint8Array(bufSize);
        let totBytesRead = 0;
        while (totBytesRead < length2) {
          const remaining = length2 - totBytesRead;
          const bytesRead = await this.readBuffer(buf, { length: Math.min(bufSize, remaining) });
          if (bytesRead < 0) {
            return bytesRead;
          }
          totBytesRead += bytesRead;
        }
        return totBytesRead;
      }
      abort() {
        return this.streamReader.abort();
      }
      async close() {
        return this.streamReader.close();
      }
      supportsRandomAccess() {
        return false;
      }
    };
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/BufferTokenizer.js
var BufferTokenizer;
var init_BufferTokenizer = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/BufferTokenizer.js"() {
    init_stream2();
    init_AbstractTokenizer();
    BufferTokenizer = class extends AbstractTokenizer {
      /**
       * Construct BufferTokenizer
       * @param uint8Array - Uint8Array to tokenize
       * @param options Tokenizer options
       */
      constructor(uint8Array, options) {
        super(options);
        this.uint8Array = uint8Array;
        this.fileInfo = { ...options?.fileInfo ?? {}, ...{ size: uint8Array.length } };
      }
      /**
       * Read buffer from tokenizer
       * @param uint8Array - Uint8Array to tokenize
       * @param options - Read behaviour options
       * @returns {Promise<number>}
       */
      async readBuffer(uint8Array, options) {
        if (options?.position) {
          this.position = options.position;
        }
        const bytesRead = await this.peekBuffer(uint8Array, options);
        this.position += bytesRead;
        return bytesRead;
      }
      /**
       * Peek (read ahead) buffer from tokenizer
       * @param uint8Array
       * @param options - Read behaviour options
       * @returns {Promise<number>}
       */
      async peekBuffer(uint8Array, options) {
        const normOptions = this.normalizeOptions(uint8Array, options);
        const bytes2read = Math.min(this.uint8Array.length - normOptions.position, normOptions.length);
        if (!normOptions.mayBeLess && bytes2read < normOptions.length) {
          throw new EndOfStreamError();
        }
        uint8Array.set(this.uint8Array.subarray(normOptions.position, normOptions.position + bytes2read));
        return bytes2read;
      }
      close() {
        return super.close();
      }
      supportsRandomAccess() {
        return true;
      }
      setPosition(position) {
        this.position = position;
      }
    };
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/BlobTokenizer.js
var init_BlobTokenizer = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/BlobTokenizer.js"() {
    init_stream2();
    init_AbstractTokenizer();
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/core.js
function fromStream(stream7, options) {
  const streamReader = new StreamReader(stream7);
  const _options2 = options ?? {};
  const chainedClose = _options2.onClose;
  _options2.onClose = async () => {
    await streamReader.close();
    if (chainedClose) {
      return chainedClose();
    }
  };
  return new ReadStreamTokenizer(streamReader, _options2);
}
function fromWebStream(webStream, options) {
  const webStreamReader = makeWebStreamReader(webStream);
  const _options2 = options ?? {};
  const chainedClose = _options2.onClose;
  _options2.onClose = async () => {
    await webStreamReader.close();
    if (chainedClose) {
      return chainedClose();
    }
  };
  return new ReadStreamTokenizer(webStreamReader, _options2);
}
function fromBuffer(uint8Array, options) {
  return new BufferTokenizer(uint8Array, options);
}
var init_core2 = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/core.js"() {
    init_stream2();
    init_ReadStreamTokenizer();
    init_BufferTokenizer();
    init_BlobTokenizer();
    init_stream2();
    init_AbstractTokenizer();
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/FileTokenizer.js
import { open as fsOpen } from "node:fs/promises";
var FileTokenizer;
var init_FileTokenizer = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/FileTokenizer.js"() {
    init_AbstractTokenizer();
    init_stream2();
    FileTokenizer = class _FileTokenizer extends AbstractTokenizer {
      /**
       * Create tokenizer from provided file path
       * @param sourceFilePath File path
       */
      static async fromFile(sourceFilePath) {
        const fileHandle = await fsOpen(sourceFilePath, "r");
        const stat = await fileHandle.stat();
        return new _FileTokenizer(fileHandle, { fileInfo: { path: sourceFilePath, size: stat.size } });
      }
      constructor(fileHandle, options) {
        super(options);
        this.fileHandle = fileHandle;
        this.fileInfo = options.fileInfo;
      }
      /**
       * Read buffer from file
       * @param uint8Array - Uint8Array to write result to
       * @param options - Read behaviour options
       * @returns Promise number of bytes read
       */
      async readBuffer(uint8Array, options) {
        const normOptions = this.normalizeOptions(uint8Array, options);
        this.position = normOptions.position;
        if (normOptions.length === 0)
          return 0;
        const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);
        this.position += res.bytesRead;
        if (res.bytesRead < normOptions.length && (!options || !options.mayBeLess)) {
          throw new EndOfStreamError();
        }
        return res.bytesRead;
      }
      /**
       * Peek buffer from file
       * @param uint8Array - Uint8Array (or Buffer) to write data to
       * @param options - Read behaviour options
       * @returns Promise number of bytes read
       */
      async peekBuffer(uint8Array, options) {
        const normOptions = this.normalizeOptions(uint8Array, options);
        const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);
        if (!normOptions.mayBeLess && res.bytesRead < normOptions.length) {
          throw new EndOfStreamError();
        }
        return res.bytesRead;
      }
      async close() {
        await this.fileHandle.close();
        return super.close();
      }
      setPosition(position) {
        this.position = position;
      }
      supportsRandomAccess() {
        return true;
      }
    };
  }
});

// ../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/index.js
import { stat as fsStat } from "node:fs/promises";
async function fromStream2(stream7, options) {
  const rst = fromStream(stream7, options);
  if (stream7.path) {
    const stat = await fsStat(stream7.path);
    rst.fileInfo.path = stream7.path;
    rst.fileInfo.size = stat.size;
  }
  return rst;
}
var fromFile;
var init_lib2 = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/index.js"() {
    init_core2();
    init_FileTokenizer();
    init_FileTokenizer();
    init_core2();
    fromFile = FileTokenizer.fromFile;
  }
});

// ../../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js
var require_ieee754 = __commonJS({
  "../../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js"(exports) {
    exports.read = function(buffer, offset2, isLE, mLen, nBytes) {
      var e4, m3;
      var eLen = nBytes * 8 - mLen - 1;
      var eMax = (1 << eLen) - 1;
      var eBias = eMax >> 1;
      var nBits = -7;
      var i5 = isLE ? nBytes - 1 : 0;
      var d3 = isLE ? -1 : 1;
      var s4 = buffer[offset2 + i5];
      i5 += d3;
      e4 = s4 & (1 << -nBits) - 1;
      s4 >>= -nBits;
      nBits += eLen;
      for (; nBits > 0; e4 = e4 * 256 + buffer[offset2 + i5], i5 += d3, nBits -= 8) {
      }
      m3 = e4 & (1 << -nBits) - 1;
      e4 >>= -nBits;
      nBits += mLen;
      for (; nBits > 0; m3 = m3 * 256 + buffer[offset2 + i5], i5 += d3, nBits -= 8) {
      }
      if (e4 === 0) {
        e4 = 1 - eBias;
      } else if (e4 === eMax) {
        return m3 ? NaN : (s4 ? -1 : 1) * Infinity;
      } else {
        m3 = m3 + Math.pow(2, mLen);
        e4 = e4 - eBias;
      }
      return (s4 ? -1 : 1) * m3 * Math.pow(2, e4 - mLen);
    };
    exports.write = function(buffer, value2, offset2, isLE, mLen, nBytes) {
      var e4, m3, c6;
      var eLen = nBytes * 8 - mLen - 1;
      var eMax = (1 << eLen) - 1;
      var eBias = eMax >> 1;
      var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;
      var i5 = isLE ? 0 : nBytes - 1;
      var d3 = isLE ? 1 : -1;
      var s4 = value2 < 0 || value2 === 0 && 1 / value2 < 0 ? 1 : 0;
      value2 = Math.abs(value2);
      if (isNaN(value2) || value2 === Infinity) {
        m3 = isNaN(value2) ? 1 : 0;
        e4 = eMax;
      } else {
        e4 = Math.floor(Math.log(value2) / Math.LN2);
        if (value2 * (c6 = Math.pow(2, -e4)) < 1) {
          e4--;
          c6 *= 2;
        }
        if (e4 + eBias >= 1) {
          value2 += rt / c6;
        } else {
          value2 += rt * Math.pow(2, 1 - eBias);
        }
        if (value2 * c6 >= 2) {
          e4++;
          c6 /= 2;
        }
        if (e4 + eBias >= eMax) {
          m3 = 0;
          e4 = eMax;
        } else if (e4 + eBias >= 1) {
          m3 = (value2 * c6 - 1) * Math.pow(2, mLen);
          e4 = e4 + eBias;
        } else {
          m3 = value2 * Math.pow(2, eBias - 1) * Math.pow(2, mLen);
          e4 = 0;
        }
      }
      for (; mLen >= 8; buffer[offset2 + i5] = m3 & 255, i5 += d3, m3 /= 256, mLen -= 8) {
      }
      e4 = e4 << mLen | m3;
      eLen += mLen;
      for (; eLen > 0; buffer[offset2 + i5] = e4 & 255, i5 += d3, e4 /= 256, eLen -= 8) {
      }
      buffer[offset2 + i5 - d3] |= s4 * 128;
    };
  }
});

// ../../node_modules/.pnpm/@borewit+text-codec@0.2.1/node_modules/@borewit/text-codec/lib/index.js
function utf8Decoder() {
  if (typeof globalThis.TextDecoder === "undefined")
    return void 0;
  return _utf8Decoder !== null && _utf8Decoder !== void 0 ? _utf8Decoder : _utf8Decoder = new globalThis.TextDecoder("utf-8");
}
function textDecode(bytes, encoding = "utf-8") {
  switch (encoding.toLowerCase()) {
    case "utf-8":
    case "utf8": {
      const dec = utf8Decoder();
      return dec ? dec.decode(bytes) : decodeUTF8(bytes);
    }
    case "utf-16le":
      return decodeUTF16LE(bytes);
    case "us-ascii":
    case "ascii":
      return decodeASCII(bytes);
    case "latin1":
    case "iso-8859-1":
      return decodeLatin1(bytes);
    case "windows-1252":
      return decodeWindows1252(bytes);
    default:
      throw new RangeError(`Encoding '${encoding}' not supported`);
  }
}
function decodeUTF8(bytes) {
  const parts = [];
  let out = "";
  let i5 = 0;
  while (i5 < bytes.length) {
    const b1 = bytes[i5++];
    if (b1 < 128) {
      out += String.fromCharCode(b1);
    } else if (b1 < 224) {
      const b22 = bytes[i5++] & 63;
      out += String.fromCharCode((b1 & 31) << 6 | b22);
    } else if (b1 < 240) {
      const b22 = bytes[i5++] & 63;
      const b3 = bytes[i5++] & 63;
      out += String.fromCharCode((b1 & 15) << 12 | b22 << 6 | b3);
    } else {
      const b22 = bytes[i5++] & 63;
      const b3 = bytes[i5++] & 63;
      const b4 = bytes[i5++] & 63;
      let cp = (b1 & 7) << 18 | b22 << 12 | b3 << 6 | b4;
      cp -= 65536;
      out += String.fromCharCode(55296 + (cp >> 10 & 1023), 56320 + (cp & 1023));
    }
    if (out.length >= CHUNK) {
      parts.push(out);
      out = "";
    }
  }
  if (out)
    parts.push(out);
  return parts.join("");
}
function decodeUTF16LE(bytes) {
  const len = bytes.length & ~1;
  if (len === 0)
    return "";
  const parts = [];
  const maxUnits = CHUNK;
  for (let i5 = 0; i5 < len; ) {
    const unitsThis = Math.min(maxUnits, len - i5 >> 1);
    const units = new Array(unitsThis);
    for (let j = 0; j < unitsThis; j++, i5 += 2) {
      units[j] = bytes[i5] | bytes[i5 + 1] << 8;
    }
    parts.push(String.fromCharCode.apply(null, units));
  }
  return parts.join("");
}
function decodeASCII(bytes) {
  const parts = [];
  for (let i5 = 0; i5 < bytes.length; i5 += CHUNK) {
    const end2 = Math.min(bytes.length, i5 + CHUNK);
    const codes = new Array(end2 - i5);
    for (let j = i5, k3 = 0; j < end2; j++, k3++) {
      codes[k3] = bytes[j] & 127;
    }
    parts.push(String.fromCharCode.apply(null, codes));
  }
  return parts.join("");
}
function decodeLatin1(bytes) {
  const parts = [];
  for (let i5 = 0; i5 < bytes.length; i5 += CHUNK) {
    const end2 = Math.min(bytes.length, i5 + CHUNK);
    const codes = new Array(end2 - i5);
    for (let j = i5, k3 = 0; j < end2; j++, k3++) {
      codes[k3] = bytes[j];
    }
    parts.push(String.fromCharCode.apply(null, codes));
  }
  return parts.join("");
}
function decodeWindows1252(bytes) {
  const parts = [];
  let out = "";
  for (let i5 = 0; i5 < bytes.length; i5++) {
    const b3 = bytes[i5];
    const extra = b3 >= 128 && b3 <= 159 ? WINDOWS_1252_EXTRA[b3] : void 0;
    out += extra !== null && extra !== void 0 ? extra : String.fromCharCode(b3);
    if (out.length >= CHUNK) {
      parts.push(out);
      out = "";
    }
  }
  if (out)
    parts.push(out);
  return parts.join("");
}
var WINDOWS_1252_EXTRA, WINDOWS_1252_REVERSE, _utf8Decoder, CHUNK;
var init_lib3 = __esm({
  "../../node_modules/.pnpm/@borewit+text-codec@0.2.1/node_modules/@borewit/text-codec/lib/index.js"() {
    WINDOWS_1252_EXTRA = {
      128: "\u20AC",
      130: "\u201A",
      131: "\u0192",
      132: "\u201E",
      133: "\u2026",
      134: "\u2020",
      135: "\u2021",
      136: "\u02C6",
      137: "\u2030",
      138: "\u0160",
      139: "\u2039",
      140: "\u0152",
      142: "\u017D",
      145: "\u2018",
      146: "\u2019",
      147: "\u201C",
      148: "\u201D",
      149: "\u2022",
      150: "\u2013",
      151: "\u2014",
      152: "\u02DC",
      153: "\u2122",
      154: "\u0161",
      155: "\u203A",
      156: "\u0153",
      158: "\u017E",
      159: "\u0178"
    };
    WINDOWS_1252_REVERSE = {};
    for (const [code, char] of Object.entries(WINDOWS_1252_EXTRA)) {
      WINDOWS_1252_REVERSE[char] = Number.parseInt(code, 10);
    }
    CHUNK = 32 * 1024;
  }
});

// ../../node_modules/.pnpm/token-types@6.1.2/node_modules/token-types/lib/index.js
function dv(array) {
  return new DataView(array.buffer, array.byteOffset);
}
var ieee754, UINT8, UINT16_LE, UINT16_BE, UINT32_LE, UINT32_BE, INT32_BE, UINT64_LE, StringType;
var init_lib4 = __esm({
  "../../node_modules/.pnpm/token-types@6.1.2/node_modules/token-types/lib/index.js"() {
    ieee754 = __toESM(require_ieee754(), 1);
    init_lib3();
    UINT8 = {
      len: 1,
      get(array, offset2) {
        return dv(array).getUint8(offset2);
      },
      put(array, offset2, value2) {
        dv(array).setUint8(offset2, value2);
        return offset2 + 1;
      }
    };
    UINT16_LE = {
      len: 2,
      get(array, offset2) {
        return dv(array).getUint16(offset2, true);
      },
      put(array, offset2, value2) {
        dv(array).setUint16(offset2, value2, true);
        return offset2 + 2;
      }
    };
    UINT16_BE = {
      len: 2,
      get(array, offset2) {
        return dv(array).getUint16(offset2);
      },
      put(array, offset2, value2) {
        dv(array).setUint16(offset2, value2);
        return offset2 + 2;
      }
    };
    UINT32_LE = {
      len: 4,
      get(array, offset2) {
        return dv(array).getUint32(offset2, true);
      },
      put(array, offset2, value2) {
        dv(array).setUint32(offset2, value2, true);
        return offset2 + 4;
      }
    };
    UINT32_BE = {
      len: 4,
      get(array, offset2) {
        return dv(array).getUint32(offset2);
      },
      put(array, offset2, value2) {
        dv(array).setUint32(offset2, value2);
        return offset2 + 4;
      }
    };
    INT32_BE = {
      len: 4,
      get(array, offset2) {
        return dv(array).getInt32(offset2);
      },
      put(array, offset2, value2) {
        dv(array).setInt32(offset2, value2);
        return offset2 + 4;
      }
    };
    UINT64_LE = {
      len: 8,
      get(array, offset2) {
        return dv(array).getBigUint64(offset2, true);
      },
      put(array, offset2, value2) {
        dv(array).setBigUint64(offset2, value2, true);
        return offset2 + 8;
      }
    };
    StringType = class {
      constructor(len, encoding) {
        this.len = len;
        this.encoding = encoding;
      }
      get(data2, offset2 = 0) {
        const bytes = data2.subarray(offset2, offset2 + this.len);
        return textDecode(bytes, this.encoding);
      }
    };
  }
});

// ../../node_modules/.pnpm/fflate@0.8.2/node_modules/fflate/esm/index.mjs
import { createRequire } from "module";
function inflateSync(data2, opts2) {
  return inflt(data2, { i: 2 }, opts2 && opts2.out, opts2 && opts2.dictionary);
}
function gunzipSync(data2, opts2) {
  var st = gzs(data2);
  if (st + 8 > data2.length)
    err(6, "invalid gzip data");
  return inflt(data2.subarray(st, -8), { i: 2 }, opts2 && opts2.out || new u8(gzl(data2)), opts2 && opts2.dictionary);
}
function unzlibSync(data2, opts2) {
  return inflt(data2.subarray(zls(data2, opts2 && opts2.dictionary), -4), { i: 2 }, opts2 && opts2.out, opts2 && opts2.dictionary);
}
function decompressSync(data2, opts2) {
  return data2[0] == 31 && data2[1] == 139 && data2[2] == 8 ? gunzipSync(data2, opts2) : (data2[0] & 15) != 8 || data2[0] >> 4 > 7 || (data2[0] << 8 | data2[1]) % 31 ? inflateSync(data2, opts2) : unzlibSync(data2, opts2);
}
var require2, Worker, u8, u16, i32, fleb, fdeb, clim, freb, _a, fl, revfl, _b, fd, revfd, rev, x, i5, hMap, flt, i5, i5, i5, i5, fdt, i5, flrm, fdrm, max, bits, bits16, shft, slc, ec, err, inflt, et, gzs, gzl, zls, td, tds;
var init_esm = __esm({
  "../../node_modules/.pnpm/fflate@0.8.2/node_modules/fflate/esm/index.mjs"() {
    require2 = createRequire("/");
    try {
      Worker = require2("worker_threads").Worker;
    } catch (e4) {
    }
    u8 = Uint8Array;
    u16 = Uint16Array;
    i32 = Int32Array;
    fleb = new u8([
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      1,
      1,
      1,
      1,
      2,
      2,
      2,
      2,
      3,
      3,
      3,
      3,
      4,
      4,
      4,
      4,
      5,
      5,
      5,
      5,
      0,
      /* unused */
      0,
      0,
      /* impossible */
      0
    ]);
    fdeb = new u8([
      0,
      0,
      0,
      0,
      1,
      1,
      2,
      2,
      3,
      3,
      4,
      4,
      5,
      5,
      6,
      6,
      7,
      7,
      8,
      8,
      9,
      9,
      10,
      10,
      11,
      11,
      12,
      12,
      13,
      13,
      /* unused */
      0,
      0
    ]);
    clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
    freb = function(eb, start2) {
      var b3 = new u16(31);
      for (var i5 = 0; i5 < 31; ++i5) {
        b3[i5] = start2 += 1 << eb[i5 - 1];
      }
      var r4 = new i32(b3[30]);
      for (var i5 = 1; i5 < 30; ++i5) {
        for (var j = b3[i5]; j < b3[i5 + 1]; ++j) {
          r4[j] = j - b3[i5] << 5 | i5;
        }
      }
      return { b: b3, r: r4 };
    };
    _a = freb(fleb, 2);
    fl = _a.b;
    revfl = _a.r;
    fl[28] = 258, revfl[258] = 28;
    _b = freb(fdeb, 0);
    fd = _b.b;
    revfd = _b.r;
    rev = new u16(32768);
    for (i5 = 0; i5 < 32768; ++i5) {
      x = (i5 & 43690) >> 1 | (i5 & 21845) << 1;
      x = (x & 52428) >> 2 | (x & 13107) << 2;
      x = (x & 61680) >> 4 | (x & 3855) << 4;
      rev[i5] = ((x & 65280) >> 8 | (x & 255) << 8) >> 1;
    }
    hMap = (function(cd, mb, r4) {
      var s4 = cd.length;
      var i5 = 0;
      var l4 = new u16(mb);
      for (; i5 < s4; ++i5) {
        if (cd[i5])
          ++l4[cd[i5] - 1];
      }
      var le = new u16(mb);
      for (i5 = 1; i5 < mb; ++i5) {
        le[i5] = le[i5 - 1] + l4[i5 - 1] << 1;
      }
      var co;
      if (r4) {
        co = new u16(1 << mb);
        var rvb = 15 - mb;
        for (i5 = 0; i5 < s4; ++i5) {
          if (cd[i5]) {
            var sv = i5 << 4 | cd[i5];
            var r_1 = mb - cd[i5];
            var v3 = le[cd[i5] - 1]++ << r_1;
            for (var m3 = v3 | (1 << r_1) - 1; v3 <= m3; ++v3) {
              co[rev[v3] >> rvb] = sv;
            }
          }
        }
      } else {
        co = new u16(s4);
        for (i5 = 0; i5 < s4; ++i5) {
          if (cd[i5]) {
            co[i5] = rev[le[cd[i5] - 1]++] >> 15 - cd[i5];
          }
        }
      }
      return co;
    });
    flt = new u8(288);
    for (i5 = 0; i5 < 144; ++i5)
      flt[i5] = 8;
    for (i5 = 144; i5 < 256; ++i5)
      flt[i5] = 9;
    for (i5 = 256; i5 < 280; ++i5)
      flt[i5] = 7;
    for (i5 = 280; i5 < 288; ++i5)
      flt[i5] = 8;
    fdt = new u8(32);
    for (i5 = 0; i5 < 32; ++i5)
      fdt[i5] = 5;
    flrm = /* @__PURE__ */ hMap(flt, 9, 1);
    fdrm = /* @__PURE__ */ hMap(fdt, 5, 1);
    max = function(a5) {
      var m3 = a5[0];
      for (var i5 = 1; i5 < a5.length; ++i5) {
        if (a5[i5] > m3)
          m3 = a5[i5];
      }
      return m3;
    };
    bits = function(d3, p3, m3) {
      var o5 = p3 / 8 | 0;
      return (d3[o5] | d3[o5 + 1] << 8) >> (p3 & 7) & m3;
    };
    bits16 = function(d3, p3) {
      var o5 = p3 / 8 | 0;
      return (d3[o5] | d3[o5 + 1] << 8 | d3[o5 + 2] << 16) >> (p3 & 7);
    };
    shft = function(p3) {
      return (p3 + 7) / 8 | 0;
    };
    slc = function(v3, s4, e4) {
      if (s4 == null || s4 < 0)
        s4 = 0;
      if (e4 == null || e4 > v3.length)
        e4 = v3.length;
      return new u8(v3.subarray(s4, e4));
    };
    ec = [
      "unexpected EOF",
      "invalid block type",
      "invalid length/literal",
      "invalid distance",
      "stream finished",
      "no stream handler",
      ,
      "no callback",
      "invalid UTF-8 data",
      "extra field too long",
      "date not in range 1980-2099",
      "filename too long",
      "stream finishing",
      "invalid zip data"
      // determined by unknown compression method
    ];
    err = function(ind, msg, nt) {
      var e4 = new Error(msg || ec[ind]);
      e4.code = ind;
      if (Error.captureStackTrace)
        Error.captureStackTrace(e4, err);
      if (!nt)
        throw e4;
      return e4;
    };
    inflt = function(dat, st, buf, dict) {
      var sl = dat.length, dl = dict ? dict.length : 0;
      if (!sl || st.f && !st.l)
        return buf || new u8(0);
      var noBuf = !buf;
      var resize = noBuf || st.i != 2;
      var noSt = st.i;
      if (noBuf)
        buf = new u8(sl * 3);
      var cbuf = function(l5) {
        var bl = buf.length;
        if (l5 > bl) {
          var nbuf = new u8(Math.max(bl * 2, l5));
          nbuf.set(buf);
          buf = nbuf;
        }
      };
      var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;
      var tbts = sl * 8;
      do {
        if (!lm) {
          final = bits(dat, pos, 1);
          var type = bits(dat, pos + 1, 3);
          pos += 3;
          if (!type) {
            var s4 = shft(pos) + 4, l4 = dat[s4 - 4] | dat[s4 - 3] << 8, t4 = s4 + l4;
            if (t4 > sl) {
              if (noSt)
                err(0);
              break;
            }
            if (resize)
              cbuf(bt + l4);
            buf.set(dat.subarray(s4, t4), bt);
            st.b = bt += l4, st.p = pos = t4 * 8, st.f = final;
            continue;
          } else if (type == 1)
            lm = flrm, dm = fdrm, lbt = 9, dbt = 5;
          else if (type == 2) {
            var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;
            var tl = hLit + bits(dat, pos + 5, 31) + 1;
            pos += 14;
            var ldt = new u8(tl);
            var clt = new u8(19);
            for (var i5 = 0; i5 < hcLen; ++i5) {
              clt[clim[i5]] = bits(dat, pos + i5 * 3, 7);
            }
            pos += hcLen * 3;
            var clb = max(clt), clbmsk = (1 << clb) - 1;
            var clm = hMap(clt, clb, 1);
            for (var i5 = 0; i5 < tl; ) {
              var r4 = clm[bits(dat, pos, clbmsk)];
              pos += r4 & 15;
              var s4 = r4 >> 4;
              if (s4 < 16) {
                ldt[i5++] = s4;
              } else {
                var c6 = 0, n6 = 0;
                if (s4 == 16)
                  n6 = 3 + bits(dat, pos, 3), pos += 2, c6 = ldt[i5 - 1];
                else if (s4 == 17)
                  n6 = 3 + bits(dat, pos, 7), pos += 3;
                else if (s4 == 18)
                  n6 = 11 + bits(dat, pos, 127), pos += 7;
                while (n6--)
                  ldt[i5++] = c6;
              }
            }
            var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);
            lbt = max(lt);
            dbt = max(dt);
            lm = hMap(lt, lbt, 1);
            dm = hMap(dt, dbt, 1);
          } else
            err(1);
          if (pos > tbts) {
            if (noSt)
              err(0);
            break;
          }
        }
        if (resize)
          cbuf(bt + 131072);
        var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;
        var lpos = pos;
        for (; ; lpos = pos) {
          var c6 = lm[bits16(dat, pos) & lms], sym = c6 >> 4;
          pos += c6 & 15;
          if (pos > tbts) {
            if (noSt)
              err(0);
            break;
          }
          if (!c6)
            err(2);
          if (sym < 256)
            buf[bt++] = sym;
          else if (sym == 256) {
            lpos = pos, lm = null;
            break;
          } else {
            var add2 = sym - 254;
            if (sym > 264) {
              var i5 = sym - 257, b3 = fleb[i5];
              add2 = bits(dat, pos, (1 << b3) - 1) + fl[i5];
              pos += b3;
            }
            var d3 = dm[bits16(dat, pos) & dms], dsym = d3 >> 4;
            if (!d3)
              err(3);
            pos += d3 & 15;
            var dt = fd[dsym];
            if (dsym > 3) {
              var b3 = fdeb[dsym];
              dt += bits16(dat, pos) & (1 << b3) - 1, pos += b3;
            }
            if (pos > tbts) {
              if (noSt)
                err(0);
              break;
            }
            if (resize)
              cbuf(bt + 131072);
            var end2 = bt + add2;
            if (bt < dt) {
              var shift = dl - dt, dend = Math.min(dt, end2);
              if (shift + bt < 0)
                err(3);
              for (; bt < dend; ++bt)
                buf[bt] = dict[shift + bt];
            }
            for (; bt < end2; ++bt)
              buf[bt] = buf[bt - dt];
          }
        }
        st.l = lm, st.p = lpos, st.b = bt, st.f = final;
        if (lm)
          final = 1, st.m = lbt, st.d = dm, st.n = dbt;
      } while (!final);
      return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);
    };
    et = /* @__PURE__ */ new u8(0);
    gzs = function(d3) {
      if (d3[0] != 31 || d3[1] != 139 || d3[2] != 8)
        err(6, "invalid gzip data");
      var flg = d3[3];
      var st = 10;
      if (flg & 4)
        st += (d3[10] | d3[11] << 8) + 2;
      for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d3[st++])
        ;
      return st + (flg & 2);
    };
    gzl = function(d3) {
      var l4 = d3.length;
      return (d3[l4 - 4] | d3[l4 - 3] << 8 | d3[l4 - 2] << 16 | d3[l4 - 1] << 24) >>> 0;
    };
    zls = function(d3, dict) {
      if ((d3[0] & 15) != 8 || d3[0] >> 4 > 7 || (d3[0] << 8 | d3[1]) % 31)
        err(6, "invalid zlib data");
      if ((d3[1] >> 5 & 1) == +!dict)
        err(6, "invalid zlib data: " + (d3[1] & 32 ? "need" : "unexpected") + " dictionary");
      return (d3[1] >> 3 & 4) + 2;
    };
    td = typeof TextDecoder != "undefined" && /* @__PURE__ */ new TextDecoder();
    tds = 0;
    try {
      td.decode(et, { stream: true });
      tds = 1;
    } catch (e4) {
    }
  }
});

// ../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js
var require_ms = __commonJS({
  "../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js"(exports, module) {
    var s4 = 1e3;
    var m3 = s4 * 60;
    var h4 = m3 * 60;
    var d3 = h4 * 24;
    var w = d3 * 7;
    var y3 = d3 * 365.25;
    module.exports = function(val, options) {
      options = options || {};
      var type = typeof val;
      if (type === "string" && val.length > 0) {
        return parse3(val);
      } else if (type === "number" && isFinite(val)) {
        return options.long ? fmtLong(val) : fmtShort(val);
      }
      throw new Error(
        "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
      );
    };
    function parse3(str) {
      str = String(str);
      if (str.length > 100) {
        return;
      }
      var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
        str
      );
      if (!match) {
        return;
      }
      var n6 = parseFloat(match[1]);
      var type = (match[2] || "ms").toLowerCase();
      switch (type) {
        case "years":
        case "year":
        case "yrs":
        case "yr":
        case "y":
          return n6 * y3;
        case "weeks":
        case "week":
        case "w":
          return n6 * w;
        case "days":
        case "day":
        case "d":
          return n6 * d3;
        case "hours":
        case "hour":
        case "hrs":
        case "hr":
        case "h":
          return n6 * h4;
        case "minutes":
        case "minute":
        case "mins":
        case "min":
        case "m":
          return n6 * m3;
        case "seconds":
        case "second":
        case "secs":
        case "sec":
        case "s":
          return n6 * s4;
        case "milliseconds":
        case "millisecond":
        case "msecs":
        case "msec":
        case "ms":
          return n6;
        default:
          return void 0;
      }
    }
    function fmtShort(ms) {
      var msAbs = Math.abs(ms);
      if (msAbs >= d3) {
        return Math.round(ms / d3) + "d";
      }
      if (msAbs >= h4) {
        return Math.round(ms / h4) + "h";
      }
      if (msAbs >= m3) {
        return Math.round(ms / m3) + "m";
      }
      if (msAbs >= s4) {
        return Math.round(ms / s4) + "s";
      }
      return ms + "ms";
    }
    function fmtLong(ms) {
      var msAbs = Math.abs(ms);
      if (msAbs >= d3) {
        return plural(ms, msAbs, d3, "day");
      }
      if (msAbs >= h4) {
        return plural(ms, msAbs, h4, "hour");
      }
      if (msAbs >= m3) {
        return plural(ms, msAbs, m3, "minute");
      }
      if (msAbs >= s4) {
        return plural(ms, msAbs, s4, "second");
      }
      return ms + " ms";
    }
    function plural(ms, msAbs, n6, name) {
      var isPlural = msAbs >= n6 * 1.5;
      return Math.round(ms / n6) + " " + name + (isPlural ? "s" : "");
    }
  }
});

// ../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js
var require_common = __commonJS({
  "../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js"(exports, module) {
    function setup(env) {
      createDebug.debug = createDebug;
      createDebug.default = createDebug;
      createDebug.coerce = coerce;
      createDebug.disable = disable;
      createDebug.enable = enable;
      createDebug.enabled = enabled;
      createDebug.humanize = require_ms();
      createDebug.destroy = destroy;
      Object.keys(env).forEach((key) => {
        createDebug[key] = env[key];
      });
      createDebug.names = [];
      createDebug.skips = [];
      createDebug.formatters = {};
      function selectColor(namespace) {
        let hash = 0;
        for (let i5 = 0; i5 < namespace.length; i5++) {
          hash = (hash << 5) - hash + namespace.charCodeAt(i5);
          hash |= 0;
        }
        return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
      }
      createDebug.selectColor = selectColor;
      function createDebug(namespace) {
        let prevTime;
        let enableOverride = null;
        let namespacesCache;
        let enabledCache;
        function debug2(...args) {
          if (!debug2.enabled) {
            return;
          }
          const self2 = debug2;
          const curr = Number(/* @__PURE__ */ new Date());
          const ms = curr - (prevTime || curr);
          self2.diff = ms;
          self2.prev = prevTime;
          self2.curr = curr;
          prevTime = curr;
          args[0] = createDebug.coerce(args[0]);
          if (typeof args[0] !== "string") {
            args.unshift("%O");
          }
          let index2 = 0;
          args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
            if (match === "%%") {
              return "%";
            }
            index2++;
            const formatter = createDebug.formatters[format];
            if (typeof formatter === "function") {
              const val = args[index2];
              match = formatter.call(self2, val);
              args.splice(index2, 1);
              index2--;
            }
            return match;
          });
          createDebug.formatArgs.call(self2, args);
          const logFn = self2.log || createDebug.log;
          logFn.apply(self2, args);
        }
        debug2.namespace = namespace;
        debug2.useColors = createDebug.useColors();
        debug2.color = createDebug.selectColor(namespace);
        debug2.extend = extend2;
        debug2.destroy = createDebug.destroy;
        Object.defineProperty(debug2, "enabled", {
          enumerable: true,
          configurable: false,
          get: () => {
            if (enableOverride !== null) {
              return enableOverride;
            }
            if (namespacesCache !== createDebug.namespaces) {
              namespacesCache = createDebug.namespaces;
              enabledCache = createDebug.enabled(namespace);
            }
            return enabledCache;
          },
          set: (v3) => {
            enableOverride = v3;
          }
        });
        if (typeof createDebug.init === "function") {
          createDebug.init(debug2);
        }
        return debug2;
      }
      function extend2(namespace, delimiter) {
        const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
        newDebug.log = this.log;
        return newDebug;
      }
      function enable(namespaces) {
        createDebug.save(namespaces);
        createDebug.namespaces = namespaces;
        createDebug.names = [];
        createDebug.skips = [];
        const split2 = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
        for (const ns of split2) {
          if (ns[0] === "-") {
            createDebug.skips.push(ns.slice(1));
          } else {
            createDebug.names.push(ns);
          }
        }
      }
      function matchesTemplate(search, template) {
        let searchIndex = 0;
        let templateIndex = 0;
        let starIndex = -1;
        let matchIndex = 0;
        while (searchIndex < search.length) {
          if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) {
            if (template[templateIndex] === "*") {
              starIndex = templateIndex;
              matchIndex = searchIndex;
              templateIndex++;
            } else {
              searchIndex++;
              templateIndex++;
            }
          } else if (starIndex !== -1) {
            templateIndex = starIndex + 1;
            matchIndex++;
            searchIndex = matchIndex;
          } else {
            return false;
          }
        }
        while (templateIndex < template.length && template[templateIndex] === "*") {
          templateIndex++;
        }
        return templateIndex === template.length;
      }
      function disable() {
        const namespaces = [
          ...createDebug.names,
          ...createDebug.skips.map((namespace) => "-" + namespace)
        ].join(",");
        createDebug.enable("");
        return namespaces;
      }
      function enabled(name) {
        for (const skip of createDebug.skips) {
          if (matchesTemplate(name, skip)) {
            return false;
          }
        }
        for (const ns of createDebug.names) {
          if (matchesTemplate(name, ns)) {
            return true;
          }
        }
        return false;
      }
      function coerce(val) {
        if (val instanceof Error) {
          return val.stack || val.message;
        }
        return val;
      }
      function destroy() {
        console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
      }
      createDebug.enable(createDebug.load());
      return createDebug;
    }
    module.exports = setup;
  }
});

// ../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js
var require_browser = __commonJS({
  "../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js"(exports, module) {
    exports.formatArgs = formatArgs;
    exports.save = save;
    exports.load = load;
    exports.useColors = useColors;
    exports.storage = localstorage();
    exports.destroy = /* @__PURE__ */ (() => {
      let warned = false;
      return () => {
        if (!warned) {
          warned = true;
          console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
        }
      };
    })();
    exports.colors = [
      "#0000CC",
      "#0000FF",
      "#0033CC",
      "#0033FF",
      "#0066CC",
      "#0066FF",
      "#0099CC",
      "#0099FF",
      "#00CC00",
      "#00CC33",
      "#00CC66",
      "#00CC99",
      "#00CCCC",
      "#00CCFF",
      "#3300CC",
      "#3300FF",
      "#3333CC",
      "#3333FF",
      "#3366CC",
      "#3366FF",
      "#3399CC",
      "#3399FF",
      "#33CC00",
      "#33CC33",
      "#33CC66",
      "#33CC99",
      "#33CCCC",
      "#33CCFF",
      "#6600CC",
      "#6600FF",
      "#6633CC",
      "#6633FF",
      "#66CC00",
      "#66CC33",
      "#9900CC",
      "#9900FF",
      "#9933CC",
      "#9933FF",
      "#99CC00",
      "#99CC33",
      "#CC0000",
      "#CC0033",
      "#CC0066",
      "#CC0099",
      "#CC00CC",
      "#CC00FF",
      "#CC3300",
      "#CC3333",
      "#CC3366",
      "#CC3399",
      "#CC33CC",
      "#CC33FF",
      "#CC6600",
      "#CC6633",
      "#CC9900",
      "#CC9933",
      "#CCCC00",
      "#CCCC33",
      "#FF0000",
      "#FF0033",
      "#FF0066",
      "#FF0099",
      "#FF00CC",
      "#FF00FF",
      "#FF3300",
      "#FF3333",
      "#FF3366",
      "#FF3399",
      "#FF33CC",
      "#FF33FF",
      "#FF6600",
      "#FF6633",
      "#FF9900",
      "#FF9933",
      "#FFCC00",
      "#FFCC33"
    ];
    function useColors() {
      if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
        return true;
      }
      if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
        return false;
      }
      let m3;
      return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
      typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
      // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
      typeof navigator !== "undefined" && navigator.userAgent && (m3 = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m3[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
      typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
    }
    function formatArgs(args) {
      args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff);
      if (!this.useColors) {
        return;
      }
      const c6 = "color: " + this.color;
      args.splice(1, 0, c6, "color: inherit");
      let index2 = 0;
      let lastC = 0;
      args[0].replace(/%[a-zA-Z%]/g, (match) => {
        if (match === "%%") {
          return;
        }
        index2++;
        if (match === "%c") {
          lastC = index2;
        }
      });
      args.splice(lastC, 0, c6);
    }
    exports.log = console.debug || console.log || (() => {
    });
    function save(namespaces) {
      try {
        if (namespaces) {
          exports.storage.setItem("debug", namespaces);
        } else {
          exports.storage.removeItem("debug");
        }
      } catch (error) {
      }
    }
    function load() {
      let r4;
      try {
        r4 = exports.storage.getItem("debug") || exports.storage.getItem("DEBUG");
      } catch (error) {
      }
      if (!r4 && typeof process !== "undefined" && "env" in process) {
        r4 = process.env.DEBUG;
      }
      return r4;
    }
    function localstorage() {
      try {
        return localStorage;
      } catch (error) {
      }
    }
    module.exports = require_common()(exports);
    var { formatters } = module.exports;
    formatters.j = function(v3) {
      try {
        return JSON.stringify(v3);
      } catch (error) {
        return "[UnexpectedJSONParseError]: " + error.message;
      }
    };
  }
});

// ../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js
var require_has_flag = __commonJS({
  "../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js"(exports, module) {
    "use strict";
    module.exports = (flag, argv = process.argv) => {
      const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
      const position = argv.indexOf(prefix + flag);
      const terminatorPosition = argv.indexOf("--");
      return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
    };
  }
});

// ../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js
var require_supports_color = __commonJS({
  "../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js"(exports, module) {
    "use strict";
    var os2 = __require("os");
    var tty = __require("tty");
    var hasFlag = require_has_flag();
    var { env } = process;
    var forceColor;
    if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
      forceColor = 0;
    } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
      forceColor = 1;
    }
    if ("FORCE_COLOR" in env) {
      if (env.FORCE_COLOR === "true") {
        forceColor = 1;
      } else if (env.FORCE_COLOR === "false") {
        forceColor = 0;
      } else {
        forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);
      }
    }
    function translateLevel(level) {
      if (level === 0) {
        return false;
      }
      return {
        level,
        hasBasic: true,
        has256: level >= 2,
        has16m: level >= 3
      };
    }
    function supportsColor(haveStream, streamIsTTY) {
      if (forceColor === 0) {
        return 0;
      }
      if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
        return 3;
      }
      if (hasFlag("color=256")) {
        return 2;
      }
      if (haveStream && !streamIsTTY && forceColor === void 0) {
        return 0;
      }
      const min2 = forceColor || 0;
      if (env.TERM === "dumb") {
        return min2;
      }
      if (process.platform === "win32") {
        const osRelease = os2.release().split(".");
        if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
          return Number(osRelease[2]) >= 14931 ? 3 : 2;
        }
        return 1;
      }
      if ("CI" in env) {
        if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
          return 1;
        }
        return min2;
      }
      if ("TEAMCITY_VERSION" in env) {
        return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
      }
      if (env.COLORTERM === "truecolor") {
        return 3;
      }
      if ("TERM_PROGRAM" in env) {
        const version2 = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
        switch (env.TERM_PROGRAM) {
          case "iTerm.app":
            return version2 >= 3 ? 3 : 2;
          case "Apple_Terminal":
            return 2;
        }
      }
      if (/-256(color)?$/i.test(env.TERM)) {
        return 2;
      }
      if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
        return 1;
      }
      if ("COLORTERM" in env) {
        return 1;
      }
      return min2;
    }
    function getSupportLevel(stream7) {
      const level = supportsColor(stream7, stream7 && stream7.isTTY);
      return translateLevel(level);
    }
    module.exports = {
      supportsColor: getSupportLevel,
      stdout: translateLevel(supportsColor(true, tty.isatty(1))),
      stderr: translateLevel(supportsColor(true, tty.isatty(2)))
    };
  }
});

// ../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js
var require_node3 = __commonJS({
  "../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js"(exports, module) {
    var tty = __require("tty");
    var util3 = __require("util");
    exports.init = init3;
    exports.log = log2;
    exports.formatArgs = formatArgs;
    exports.save = save;
    exports.load = load;
    exports.useColors = useColors;
    exports.destroy = util3.deprecate(
      () => {
      },
      "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."
    );
    exports.colors = [6, 2, 3, 4, 5, 1];
    try {
      const supportsColor = require_supports_color();
      if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
        exports.colors = [
          20,
          21,
          26,
          27,
          32,
          33,
          38,
          39,
          40,
          41,
          42,
          43,
          44,
          45,
          56,
          57,
          62,
          63,
          68,
          69,
          74,
          75,
          76,
          77,
          78,
          79,
          80,
          81,
          92,
          93,
          98,
          99,
          112,
          113,
          128,
          129,
          134,
          135,
          148,
          149,
          160,
          161,
          162,
          163,
          164,
          165,
          166,
          167,
          168,
          169,
          170,
          171,
          172,
          173,
          178,
          179,
          184,
          185,
          196,
          197,
          198,
          199,
          200,
          201,
          202,
          203,
          204,
          205,
          206,
          207,
          208,
          209,
          214,
          215,
          220,
          221
        ];
      }
    } catch (error) {
    }
    exports.inspectOpts = Object.keys(process.env).filter((key) => {
      return /^debug_/i.test(key);
    }).reduce((obj, key) => {
      const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k3) => {
        return k3.toUpperCase();
      });
      let val = process.env[key];
      if (/^(yes|on|true|enabled)$/i.test(val)) {
        val = true;
      } else if (/^(no|off|false|disabled)$/i.test(val)) {
        val = false;
      } else if (val === "null") {
        val = null;
      } else {
        val = Number(val);
      }
      obj[prop] = val;
      return obj;
    }, {});
    function useColors() {
      return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd);
    }
    function formatArgs(args) {
      const { namespace: name, useColors: useColors2 } = this;
      if (useColors2) {
        const c6 = this.color;
        const colorCode = "\x1B[3" + (c6 < 8 ? c6 : "8;5;" + c6);
        const prefix = `  ${colorCode};1m${name} \x1B[0m`;
        args[0] = prefix + args[0].split("\n").join("\n" + prefix);
        args.push(colorCode + "m+" + module.exports.humanize(this.diff) + "\x1B[0m");
      } else {
        args[0] = getDate() + name + " " + args[0];
      }
    }
    function getDate() {
      if (exports.inspectOpts.hideDate) {
        return "";
      }
      return (/* @__PURE__ */ new Date()).toISOString() + " ";
    }
    function log2(...args) {
      return process.stderr.write(util3.formatWithOptions(exports.inspectOpts, ...args) + "\n");
    }
    function save(namespaces) {
      if (namespaces) {
        process.env.DEBUG = namespaces;
      } else {
        delete process.env.DEBUG;
      }
    }
    function load() {
      return process.env.DEBUG;
    }
    function init3(debug2) {
      debug2.inspectOpts = {};
      const keys2 = Object.keys(exports.inspectOpts);
      for (let i5 = 0; i5 < keys2.length; i5++) {
        debug2.inspectOpts[keys2[i5]] = exports.inspectOpts[keys2[i5]];
      }
    }
    module.exports = require_common()(exports);
    var { formatters } = module.exports;
    formatters.o = function(v3) {
      this.inspectOpts.colors = this.useColors;
      return util3.inspect(v3, this.inspectOpts).split("\n").map((str) => str.trim()).join(" ");
    };
    formatters.O = function(v3) {
      this.inspectOpts.colors = this.useColors;
      return util3.inspect(v3, this.inspectOpts);
    };
  }
});

// ../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js
var require_src = __commonJS({
  "../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js"(exports, module) {
    if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) {
      module.exports = require_browser();
    } else {
      module.exports = require_node3();
    }
  }
});

// ../../node_modules/.pnpm/@tokenizer+inflate@0.2.7/node_modules/@tokenizer/inflate/lib/ZipToken.js
var Signature, DataDescriptor, LocalFileHeaderToken, EndOfCentralDirectoryRecordToken, FileHeader;
var init_ZipToken = __esm({
  "../../node_modules/.pnpm/@tokenizer+inflate@0.2.7/node_modules/@tokenizer/inflate/lib/ZipToken.js"() {
    init_lib4();
    Signature = {
      LocalFileHeader: 67324752,
      DataDescriptor: 134695760,
      CentralFileHeader: 33639248,
      EndOfCentralDirectory: 101010256
    };
    DataDescriptor = {
      get(array) {
        const flags = UINT16_LE.get(array, 6);
        return {
          signature: UINT32_LE.get(array, 0),
          compressedSize: UINT32_LE.get(array, 8),
          uncompressedSize: UINT32_LE.get(array, 12)
        };
      },
      len: 16
    };
    LocalFileHeaderToken = {
      get(array) {
        const flags = UINT16_LE.get(array, 6);
        return {
          signature: UINT32_LE.get(array, 0),
          minVersion: UINT16_LE.get(array, 4),
          dataDescriptor: !!(flags & 8),
          compressedMethod: UINT16_LE.get(array, 8),
          compressedSize: UINT32_LE.get(array, 18),
          uncompressedSize: UINT32_LE.get(array, 22),
          filenameLength: UINT16_LE.get(array, 26),
          extraFieldLength: UINT16_LE.get(array, 28),
          filename: null
        };
      },
      len: 30
    };
    EndOfCentralDirectoryRecordToken = {
      get(array) {
        return {
          signature: UINT32_LE.get(array, 0),
          nrOfThisDisk: UINT16_LE.get(array, 4),
          nrOfThisDiskWithTheStart: UINT16_LE.get(array, 6),
          nrOfEntriesOnThisDisk: UINT16_LE.get(array, 8),
          nrOfEntriesOfSize: UINT16_LE.get(array, 10),
          sizeOfCd: UINT32_LE.get(array, 12),
          offsetOfStartOfCd: UINT32_LE.get(array, 16),
          zipFileCommentLength: UINT16_LE.get(array, 20)
        };
      },
      len: 22
    };
    FileHeader = {
      get(array) {
        const flags = UINT16_LE.get(array, 8);
        return {
          signature: UINT32_LE.get(array, 0),
          minVersion: UINT16_LE.get(array, 6),
          dataDescriptor: !!(flags & 8),
          compressedMethod: UINT16_LE.get(array, 10),
          compressedSize: UINT32_LE.get(array, 20),
          uncompressedSize: UINT32_LE.get(array, 24),
          filenameLength: UINT16_LE.get(array, 28),
          extraFieldLength: UINT16_LE.get(array, 30),
          fileCommentLength: UINT16_LE.get(array, 32),
          relativeOffsetOfLocalHeader: UINT32_LE.get(array, 42),
          filename: null
        };
      },
      len: 46
    };
  }
});

// ../../node_modules/.pnpm/@tokenizer+inflate@0.2.7/node_modules/@tokenizer/inflate/lib/index.js
function signatureToArray(signature) {
  const signatureBytes = new Uint8Array(UINT32_LE.len);
  UINT32_LE.put(signatureBytes, 0, signature);
  return signatureBytes;
}
function indexOf(buffer, portion) {
  const bufferLength = buffer.length;
  const portionLength = portion.length;
  if (portionLength > bufferLength)
    return -1;
  for (let i5 = 0; i5 <= bufferLength - portionLength; i5++) {
    let found = true;
    for (let j = 0; j < portionLength; j++) {
      if (buffer[i5 + j] !== portion[j]) {
        found = false;
        break;
      }
    }
    if (found) {
      return i5;
    }
  }
  return -1;
}
function mergeArrays(chunks) {
  const totalLength = chunks.reduce((acc, curr) => acc + curr.length, 0);
  const mergedArray = new Uint8Array(totalLength);
  let offset2 = 0;
  for (const chunk3 of chunks) {
    mergedArray.set(chunk3, offset2);
    offset2 += chunk3.length;
  }
  return mergedArray;
}
var import_debug, debug, syncBufferSize, ddSignatureArray, eocdSignatureBytes, ZipHandler;
var init_lib5 = __esm({
  "../../node_modules/.pnpm/@tokenizer+inflate@0.2.7/node_modules/@tokenizer/inflate/lib/index.js"() {
    init_lib4();
    init_esm();
    import_debug = __toESM(require_src(), 1);
    init_ZipToken();
    debug = (0, import_debug.default)("tokenizer:inflate");
    syncBufferSize = 256 * 1024;
    ddSignatureArray = signatureToArray(Signature.DataDescriptor);
    eocdSignatureBytes = signatureToArray(Signature.EndOfCentralDirectory);
    ZipHandler = class {
      constructor(tokenizer) {
        this.tokenizer = tokenizer;
        this.syncBuffer = new Uint8Array(syncBufferSize);
      }
      async isZip() {
        return await this.peekSignature() === Signature.LocalFileHeader;
      }
      peekSignature() {
        return this.tokenizer.peekToken(UINT32_LE);
      }
      async findEndOfCentralDirectoryLocator() {
        const randomReadTokenizer = this.tokenizer;
        const chunkLength = Math.min(16 * 1024, randomReadTokenizer.fileInfo.size);
        const buffer = this.syncBuffer.subarray(0, chunkLength);
        await this.tokenizer.readBuffer(buffer, { position: randomReadTokenizer.fileInfo.size - chunkLength });
        for (let i5 = buffer.length - 4; i5 >= 0; i5--) {
          if (buffer[i5] === eocdSignatureBytes[0] && buffer[i5 + 1] === eocdSignatureBytes[1] && buffer[i5 + 2] === eocdSignatureBytes[2] && buffer[i5 + 3] === eocdSignatureBytes[3]) {
            return randomReadTokenizer.fileInfo.size - chunkLength + i5;
          }
        }
        return -1;
      }
      async readCentralDirectory() {
        if (!this.tokenizer.supportsRandomAccess()) {
          debug("Cannot reading central-directory without random-read support");
          return;
        }
        debug("Reading central-directory...");
        const pos = this.tokenizer.position;
        const offset2 = await this.findEndOfCentralDirectoryLocator();
        if (offset2 > 0) {
          debug("Central-directory 32-bit signature found");
          const eocdHeader = await this.tokenizer.readToken(EndOfCentralDirectoryRecordToken, offset2);
          const files = [];
          this.tokenizer.setPosition(eocdHeader.offsetOfStartOfCd);
          for (let n6 = 0; n6 < eocdHeader.nrOfEntriesOfSize; ++n6) {
            const entry = await this.tokenizer.readToken(FileHeader);
            if (entry.signature !== Signature.CentralFileHeader) {
              throw new Error("Expected Central-File-Header signature");
            }
            entry.filename = await this.tokenizer.readToken(new StringType(entry.filenameLength, "utf-8"));
            await this.tokenizer.ignore(entry.extraFieldLength);
            await this.tokenizer.ignore(entry.fileCommentLength);
            files.push(entry);
            debug(`Add central-directory file-entry: n=${n6 + 1}/${files.length}: filename=${files[n6].filename}`);
          }
          this.tokenizer.setPosition(pos);
          return files;
        }
        this.tokenizer.setPosition(pos);
      }
      async unzip(fileCb) {
        const entries3 = await this.readCentralDirectory();
        if (entries3) {
          return this.iterateOverCentralDirectory(entries3, fileCb);
        }
        let stop = false;
        do {
          const zipHeader = await this.readLocalFileHeader();
          if (!zipHeader)
            break;
          const next = fileCb(zipHeader);
          stop = !!next.stop;
          let fileData = void 0;
          await this.tokenizer.ignore(zipHeader.extraFieldLength);
          if (zipHeader.dataDescriptor && zipHeader.compressedSize === 0) {
            const chunks = [];
            let len = syncBufferSize;
            debug("Compressed-file-size unknown, scanning for next data-descriptor-signature....");
            let nextHeaderIndex = -1;
            while (nextHeaderIndex < 0 && len === syncBufferSize) {
              len = await this.tokenizer.peekBuffer(this.syncBuffer, { mayBeLess: true });
              nextHeaderIndex = indexOf(this.syncBuffer.subarray(0, len), ddSignatureArray);
              const size = nextHeaderIndex >= 0 ? nextHeaderIndex : len;
              if (next.handler) {
                const data2 = new Uint8Array(size);
                await this.tokenizer.readBuffer(data2);
                chunks.push(data2);
              } else {
                await this.tokenizer.ignore(size);
              }
            }
            debug(`Found data-descriptor-signature at pos=${this.tokenizer.position}`);
            if (next.handler) {
              await this.inflate(zipHeader, mergeArrays(chunks), next.handler);
            }
          } else {
            if (next.handler) {
              debug(`Reading compressed-file-data: ${zipHeader.compressedSize} bytes`);
              fileData = new Uint8Array(zipHeader.compressedSize);
              await this.tokenizer.readBuffer(fileData);
              await this.inflate(zipHeader, fileData, next.handler);
            } else {
              debug(`Ignoring compressed-file-data: ${zipHeader.compressedSize} bytes`);
              await this.tokenizer.ignore(zipHeader.compressedSize);
            }
          }
          debug(`Reading data-descriptor at pos=${this.tokenizer.position}`);
          if (zipHeader.dataDescriptor) {
            const dataDescriptor = await this.tokenizer.readToken(DataDescriptor);
            if (dataDescriptor.signature !== 134695760) {
              throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position - DataDescriptor.len}`);
            }
          }
        } while (!stop);
      }
      async iterateOverCentralDirectory(entries3, fileCb) {
        for (const fileHeader of entries3) {
          const next = fileCb(fileHeader);
          if (next.handler) {
            this.tokenizer.setPosition(fileHeader.relativeOffsetOfLocalHeader);
            const zipHeader = await this.readLocalFileHeader();
            if (zipHeader) {
              await this.tokenizer.ignore(zipHeader.extraFieldLength);
              const fileData = new Uint8Array(fileHeader.compressedSize);
              await this.tokenizer.readBuffer(fileData);
              await this.inflate(zipHeader, fileData, next.handler);
            }
          }
          if (next.stop)
            break;
        }
      }
      inflate(zipHeader, fileData, cb) {
        if (zipHeader.compressedMethod === 0) {
          return cb(fileData);
        }
        debug(`Decompress filename=${zipHeader.filename}, compressed-size=${fileData.length}`);
        const uncompressedData = decompressSync(fileData);
        return cb(uncompressedData);
      }
      async readLocalFileHeader() {
        const signature = await this.tokenizer.peekToken(UINT32_LE);
        if (signature === Signature.LocalFileHeader) {
          const header = await this.tokenizer.readToken(LocalFileHeaderToken);
          header.filename = await this.tokenizer.readToken(new StringType(header.filenameLength, "utf-8"));
          return header;
        }
        if (signature === Signature.CentralFileHeader) {
          return false;
        }
        if (signature === 3759263696) {
          throw new Error("Encrypted ZIP");
        }
        throw new Error("Unexpected signature");
      }
    };
  }
});

// ../../node_modules/.pnpm/uint8array-extras@1.5.0/node_modules/uint8array-extras/index.js
function getUintBE(view) {
  const { byteLength: byteLength3 } = view;
  if (byteLength3 === 6) {
    return view.getUint16(0) * 2 ** 32 + view.getUint32(2);
  }
  if (byteLength3 === 5) {
    return view.getUint8(0) * 2 ** 32 + view.getUint32(1);
  }
  if (byteLength3 === 4) {
    return view.getUint32(0);
  }
  if (byteLength3 === 3) {
    return view.getUint8(0) * 2 ** 16 + view.getUint16(1);
  }
  if (byteLength3 === 2) {
    return view.getUint16(0);
  }
  if (byteLength3 === 1) {
    return view.getUint8(0);
  }
}
function indexOf2(array, value2) {
  const arrayLength = array.length;
  const valueLength = value2.length;
  if (valueLength === 0) {
    return -1;
  }
  if (valueLength > arrayLength) {
    return -1;
  }
  const validOffsetLength = arrayLength - valueLength;
  for (let index2 = 0; index2 <= validOffsetLength; index2++) {
    let isMatch = true;
    for (let index22 = 0; index22 < valueLength; index22++) {
      if (array[index2 + index22] !== value2[index22]) {
        isMatch = false;
        break;
      }
    }
    if (isMatch) {
      return index2;
    }
  }
  return -1;
}
function includes(array, value2) {
  return indexOf2(array, value2) !== -1;
}
var cachedDecoders, cachedEncoder, byteToHexLookupTable;
var init_uint8array_extras = __esm({
  "../../node_modules/.pnpm/uint8array-extras@1.5.0/node_modules/uint8array-extras/index.js"() {
    cachedDecoders = {
      utf8: new globalThis.TextDecoder("utf8")
    };
    cachedEncoder = new globalThis.TextEncoder();
    byteToHexLookupTable = Array.from({ length: 256 }, (_, index2) => index2.toString(16).padStart(2, "0"));
  }
});

// ../../node_modules/.pnpm/file-type@20.5.0/node_modules/file-type/util.js
function stringToBytes(string) {
  return [...string].map((character) => character.charCodeAt(0));
}
function tarHeaderChecksumMatches(arrayBuffer, offset2 = 0) {
  const readSum = Number.parseInt(new StringType(6).get(arrayBuffer, 148).replace(/\0.*$/, "").trim(), 8);
  if (Number.isNaN(readSum)) {
    return false;
  }
  let sum = 8 * 32;
  for (let index2 = offset2; index2 < offset2 + 148; index2++) {
    sum += arrayBuffer[index2];
  }
  for (let index2 = offset2 + 156; index2 < offset2 + 512; index2++) {
    sum += arrayBuffer[index2];
  }
  return readSum === sum;
}
var uint32SyncSafeToken;
var init_util = __esm({
  "../../node_modules/.pnpm/file-type@20.5.0/node_modules/file-type/util.js"() {
    init_lib4();
    uint32SyncSafeToken = {
      get: (buffer, offset2) => buffer[offset2 + 3] & 127 | buffer[offset2 + 2] << 7 | buffer[offset2 + 1] << 14 | buffer[offset2] << 21,
      len: 4
    };
  }
});

// ../../node_modules/.pnpm/file-type@20.5.0/node_modules/file-type/supported.js
var extensions, mimeTypes;
var init_supported = __esm({
  "../../node_modules/.pnpm/file-type@20.5.0/node_modules/file-type/supported.js"() {
    extensions = [
      "jpg",
      "png",
      "apng",
      "gif",
      "webp",
      "flif",
      "xcf",
      "cr2",
      "cr3",
      "orf",
      "arw",
      "dng",
      "nef",
      "rw2",
      "raf",
      "tif",
      "bmp",
      "icns",
      "jxr",
      "psd",
      "indd",
      "zip",
      "tar",
      "rar",
      "gz",
      "bz2",
      "7z",
      "dmg",
      "mp4",
      "mid",
      "mkv",
      "webm",
      "mov",
      "avi",
      "mpg",
      "mp2",
      "mp3",
      "m4a",
      "oga",
      "ogg",
      "ogv",
      "opus",
      "flac",
      "wav",
      "spx",
      "amr",
      "pdf",
      "epub",
      "elf",
      "macho",
      "exe",
      "swf",
      "rtf",
      "wasm",
      "woff",
      "woff2",
      "eot",
      "ttf",
      "otf",
      "ttc",
      "ico",
      "flv",
      "ps",
      "xz",
      "sqlite",
      "nes",
      "crx",
      "xpi",
      "cab",
      "deb",
      "ar",
      "rpm",
      "Z",
      "lz",
      "cfb",
      "mxf",
      "mts",
      "blend",
      "bpg",
      "docx",
      "pptx",
      "xlsx",
      "3gp",
      "3g2",
      "j2c",
      "jp2",
      "jpm",
      "jpx",
      "mj2",
      "aif",
      "qcp",
      "odt",
      "ods",
      "odp",
      "xml",
      "mobi",
      "heic",
      "cur",
      "ktx",
      "ape",
      "wv",
      "dcm",
      "ics",
      "glb",
      "pcap",
      "dsf",
      "lnk",
      "alias",
      "voc",
      "ac3",
      "m4v",
      "m4p",
      "m4b",
      "f4v",
      "f4p",
      "f4b",
      "f4a",
      "mie",
      "asf",
      "ogm",
      "ogx",
      "mpc",
      "arrow",
      "shp",
      "aac",
      "mp1",
      "it",
      "s3m",
      "xm",
      "ai",
      "skp",
      "avif",
      "eps",
      "lzh",
      "pgp",
      "asar",
      "stl",
      "chm",
      "3mf",
      "zst",
      "jxl",
      "vcf",
      "jls",
      "pst",
      "dwg",
      "parquet",
      "class",
      "arj",
      "cpio",
      "ace",
      "avro",
      "icc",
      "fbx",
      "vsdx",
      "vtt",
      "apk",
      "drc",
      "lz4",
      "potx",
      "xltx",
      "dotx",
      "xltm",
      "ott",
      "ots",
      "otp",
      "odg",
      "otg",
      "xlsm",
      "docm",
      "dotm",
      "potm",
      "pptm",
      "jar",
      "rm",
      "ppsm",
      "ppsx"
    ];
    mimeTypes = [
      "image/jpeg",
      "image/png",
      "image/gif",
      "image/webp",
      "image/flif",
      "image/x-xcf",
      "image/x-canon-cr2",
      "image/x-canon-cr3",
      "image/tiff",
      "image/bmp",
      "image/vnd.ms-photo",
      "image/vnd.adobe.photoshop",
      "application/x-indesign",
      "application/epub+zip",
      "application/x-xpinstall",
      "application/vnd.ms-powerpoint.slideshow.macroenabled.12",
      "application/vnd.oasis.opendocument.text",
      "application/vnd.oasis.opendocument.spreadsheet",
      "application/vnd.oasis.opendocument.presentation",
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
      "application/vnd.openxmlformats-officedocument.presentationml.presentation",
      "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
      "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
      "application/zip",
      "application/x-tar",
      "application/x-rar-compressed",
      "application/gzip",
      "application/x-bzip2",
      "application/x-7z-compressed",
      "application/x-apple-diskimage",
      "application/x-apache-arrow",
      "video/mp4",
      "audio/midi",
      "video/x-matroska",
      "video/webm",
      "video/quicktime",
      "video/vnd.avi",
      "audio/wav",
      "audio/qcelp",
      "audio/x-ms-asf",
      "video/x-ms-asf",
      "application/vnd.ms-asf",
      "video/mpeg",
      "video/3gpp",
      "audio/mpeg",
      "audio/mp4",
      // RFC 4337
      "video/ogg",
      "audio/ogg",
      "audio/ogg; codecs=opus",
      "application/ogg",
      "audio/x-flac",
      "audio/ape",
      "audio/wavpack",
      "audio/amr",
      "application/pdf",
      "application/x-elf",
      "application/x-mach-binary",
      "application/x-msdownload",
      "application/x-shockwave-flash",
      "application/rtf",
      "application/wasm",
      "font/woff",
      "font/woff2",
      "application/vnd.ms-fontobject",
      "font/ttf",
      "font/otf",
      "font/collection",
      "image/x-icon",
      "video/x-flv",
      "application/postscript",
      "application/eps",
      "application/x-xz",
      "application/x-sqlite3",
      "application/x-nintendo-nes-rom",
      "application/x-google-chrome-extension",
      "application/vnd.ms-cab-compressed",
      "application/x-deb",
      "application/x-unix-archive",
      "application/x-rpm",
      "application/x-compress",
      "application/x-lzip",
      "application/x-cfb",
      "application/x-mie",
      "application/mxf",
      "video/mp2t",
      "application/x-blender",
      "image/bpg",
      "image/j2c",
      "image/jp2",
      "image/jpx",
      "image/jpm",
      "image/mj2",
      "audio/aiff",
      "application/xml",
      "application/x-mobipocket-ebook",
      "image/heif",
      "image/heif-sequence",
      "image/heic",
      "image/heic-sequence",
      "image/icns",
      "image/ktx",
      "application/dicom",
      "audio/x-musepack",
      "text/calendar",
      "text/vcard",
      "text/vtt",
      "model/gltf-binary",
      "application/vnd.tcpdump.pcap",
      "audio/x-dsf",
      // Non-standard
      "application/x.ms.shortcut",
      // Invented by us
      "application/x.apple.alias",
      // Invented by us
      "audio/x-voc",
      "audio/vnd.dolby.dd-raw",
      "audio/x-m4a",
      "image/apng",
      "image/x-olympus-orf",
      "image/x-sony-arw",
      "image/x-adobe-dng",
      "image/x-nikon-nef",
      "image/x-panasonic-rw2",
      "image/x-fujifilm-raf",
      "video/x-m4v",
      "video/3gpp2",
      "application/x-esri-shape",
      "audio/aac",
      "audio/x-it",
      "audio/x-s3m",
      "audio/x-xm",
      "video/MP1S",
      "video/MP2P",
      "application/vnd.sketchup.skp",
      "image/avif",
      "application/x-lzh-compressed",
      "application/pgp-encrypted",
      "application/x-asar",
      "model/stl",
      "application/vnd.ms-htmlhelp",
      "model/3mf",
      "image/jxl",
      "application/zstd",
      "image/jls",
      "application/vnd.ms-outlook",
      "image/vnd.dwg",
      "application/x-parquet",
      "application/java-vm",
      "application/x-arj",
      "application/x-cpio",
      "application/x-ace-compressed",
      "application/avro",
      "application/vnd.iccprofile",
      "application/x.autodesk.fbx",
      // Invented by us
      "application/vnd.visio",
      "application/vnd.android.package-archive",
      "application/vnd.google.draco",
      // Invented by us
      "application/x-lz4",
      // Invented by us
      "application/vnd.openxmlformats-officedocument.presentationml.template",
      "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
      "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
      "application/vnd.ms-excel.template.macroenabled.12",
      "application/vnd.oasis.opendocument.text-template",
      "application/vnd.oasis.opendocument.spreadsheet-template",
      "application/vnd.oasis.opendocument.presentation-template",
      "application/vnd.oasis.opendocument.graphics",
      "application/vnd.oasis.opendocument.graphics-template",
      "application/vnd.ms-excel.sheet.macroenabled.12",
      "application/vnd.ms-word.document.macroenabled.12",
      "application/vnd.ms-word.template.macroenabled.12",
      "application/vnd.ms-powerpoint.template.macroenabled.12",
      "application/vnd.ms-powerpoint.presentation.macroenabled.12",
      "application/java-archive",
      "application/vnd.rn-realmedia"
    ];
  }
});

// ../../node_modules/.pnpm/file-type@20.5.0/node_modules/file-type/core.js
async function fileTypeFromBuffer(input) {
  return new FileTypeParser().fromBuffer(input);
}
async function fileTypeFromBlob(blob) {
  return new FileTypeParser().fromBlob(blob);
}
function getFileTypeFromMimeType(mimeType) {
  switch (mimeType.toLowerCase()) {
    case "application/epub+zip":
      return {
        ext: "epub",
        mime: "application/epub+zip"
      };
    case "application/vnd.oasis.opendocument.text":
      return {
        ext: "odt",
        mime: "application/vnd.oasis.opendocument.text"
      };
    case "application/vnd.oasis.opendocument.text-template":
      return {
        ext: "ott",
        mime: "application/vnd.oasis.opendocument.text-template"
      };
    case "application/vnd.oasis.opendocument.spreadsheet":
      return {
        ext: "ods",
        mime: "application/vnd.oasis.opendocument.spreadsheet"
      };
    case "application/vnd.oasis.opendocument.spreadsheet-template":
      return {
        ext: "ots",
        mime: "application/vnd.oasis.opendocument.spreadsheet-template"
      };
    case "application/vnd.oasis.opendocument.presentation":
      return {
        ext: "odp",
        mime: "application/vnd.oasis.opendocument.presentation"
      };
    case "application/vnd.oasis.opendocument.presentation-template":
      return {
        ext: "otp",
        mime: "application/vnd.oasis.opendocument.presentation-template"
      };
    case "application/vnd.oasis.opendocument.graphics":
      return {
        ext: "odg",
        mime: "application/vnd.oasis.opendocument.graphics"
      };
    case "application/vnd.oasis.opendocument.graphics-template":
      return {
        ext: "otg",
        mime: "application/vnd.oasis.opendocument.graphics-template"
      };
    case "application/vnd.openxmlformats-officedocument.presentationml.slideshow":
      return {
        ext: "ppsx",
        mime: "application/vnd.openxmlformats-officedocument.presentationml.slideshow"
      };
    case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":
      return {
        ext: "xlsx",
        mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
      };
    case "application/vnd.ms-excel.sheet.macroenabled":
      return {
        ext: "xlsm",
        mime: "application/vnd.ms-excel.sheet.macroenabled.12"
      };
    case "application/vnd.openxmlformats-officedocument.spreadsheetml.template":
      return {
        ext: "xltx",
        mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.template"
      };
    case "application/vnd.ms-excel.template.macroenabled":
      return {
        ext: "xltm",
        mime: "application/vnd.ms-excel.template.macroenabled.12"
      };
    case "application/vnd.ms-powerpoint.slideshow.macroenabled":
      return {
        ext: "ppsm",
        mime: "application/vnd.ms-powerpoint.slideshow.macroenabled.12"
      };
    case "application/vnd.openxmlformats-officedocument.wordprocessingml.document":
      return {
        ext: "docx",
        mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
      };
    case "application/vnd.ms-word.document.macroenabled":
      return {
        ext: "docm",
        mime: "application/vnd.ms-word.document.macroenabled.12"
      };
    case "application/vnd.openxmlformats-officedocument.wordprocessingml.template":
      return {
        ext: "dotx",
        mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.template"
      };
    case "application/vnd.ms-word.template.macroenabledtemplate":
      return {
        ext: "dotm",
        mime: "application/vnd.ms-word.template.macroenabled.12"
      };
    case "application/vnd.openxmlformats-officedocument.presentationml.template":
      return {
        ext: "potx",
        mime: "application/vnd.openxmlformats-officedocument.presentationml.template"
      };
    case "application/vnd.ms-powerpoint.template.macroenabled":
      return {
        ext: "potm",
        mime: "application/vnd.ms-powerpoint.template.macroenabled.12"
      };
    case "application/vnd.openxmlformats-officedocument.presentationml.presentation":
      return {
        ext: "pptx",
        mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation"
      };
    case "application/vnd.ms-powerpoint.presentation.macroenabled":
      return {
        ext: "pptm",
        mime: "application/vnd.ms-powerpoint.presentation.macroenabled.12"
      };
    case "application/vnd.ms-visio.drawing":
      return {
        ext: "vsdx",
        mime: "application/vnd.visio"
      };
    case "application/vnd.ms-package.3dmanufacturing-3dmodel+xml":
      return {
        ext: "3mf",
        mime: "model/3mf"
      };
    default:
  }
}
function _check(buffer, headers, options) {
  options = {
    offset: 0,
    ...options
  };
  for (const [index2, header] of headers.entries()) {
    if (options.mask) {
      if (header !== (options.mask[index2] & buffer[index2 + options.offset])) {
        return false;
      }
    } else if (header !== buffer[index2 + options.offset]) {
      return false;
    }
  }
  return true;
}
async function fileTypeFromTokenizer(tokenizer) {
  return new FileTypeParser().fromTokenizer(tokenizer);
}
var reasonableDetectionSizeInBytes, FileTypeParser, supportedExtensions, supportedMimeTypes;
var init_core3 = __esm({
  "../../node_modules/.pnpm/file-type@20.5.0/node_modules/file-type/core.js"() {
    init_lib4();
    init_core2();
    init_lib5();
    init_uint8array_extras();
    init_util();
    init_supported();
    reasonableDetectionSizeInBytes = 4100;
    FileTypeParser = class {
      constructor(options) {
        this.detectors = [
          ...options?.customDetectors ?? [],
          { id: "core", detect: this.detectConfident },
          { id: "core.imprecise", detect: this.detectImprecise }
        ];
        this.tokenizerOptions = {
          abortSignal: options?.signal
        };
      }
      async fromTokenizer(tokenizer) {
        const initialPosition = tokenizer.position;
        for (const detector of this.detectors) {
          const fileType = await detector.detect(tokenizer);
          if (fileType) {
            return fileType;
          }
          if (initialPosition !== tokenizer.position) {
            return void 0;
          }
        }
      }
      async fromBuffer(input) {
        if (!(input instanceof Uint8Array || input instanceof ArrayBuffer)) {
          throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`ArrayBuffer\`, got \`${typeof input}\``);
        }
        const buffer = input instanceof Uint8Array ? input : new Uint8Array(input);
        if (!(buffer?.length > 1)) {
          return;
        }
        return this.fromTokenizer(fromBuffer(buffer, this.tokenizerOptions));
      }
      async fromBlob(blob) {
        return this.fromStream(blob.stream());
      }
      async fromStream(stream7) {
        const tokenizer = await fromWebStream(stream7, this.tokenizerOptions);
        try {
          return await this.fromTokenizer(tokenizer);
        } finally {
          await tokenizer.close();
        }
      }
      async toDetectionStream(stream7, options) {
        const { sampleSize = reasonableDetectionSizeInBytes } = options;
        let detectedFileType;
        let firstChunk;
        const reader = stream7.getReader({ mode: "byob" });
        try {
          const { value: chunk3, done } = await reader.read(new Uint8Array(sampleSize));
          firstChunk = chunk3;
          if (!done && chunk3) {
            try {
              detectedFileType = await this.fromBuffer(chunk3.slice(0, sampleSize));
            } catch (error) {
              if (!(error instanceof EndOfStreamError)) {
                throw error;
              }
              detectedFileType = void 0;
            }
          }
          firstChunk = chunk3;
        } finally {
          reader.releaseLock();
        }
        const transformStream = new TransformStream({
          async start(controller) {
            controller.enqueue(firstChunk);
          },
          transform(chunk3, controller) {
            controller.enqueue(chunk3);
          }
        });
        const newStream = stream7.pipeThrough(transformStream);
        newStream.fileType = detectedFileType;
        return newStream;
      }
      check(header, options) {
        return _check(this.buffer, header, options);
      }
      checkString(header, options) {
        return this.check(stringToBytes(header), options);
      }
      // Detections with a high degree of certainty in identifying the correct file type
      detectConfident = async (tokenizer) => {
        this.buffer = new Uint8Array(reasonableDetectionSizeInBytes);
        if (tokenizer.fileInfo.size === void 0) {
          tokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER;
        }
        this.tokenizer = tokenizer;
        await tokenizer.peekBuffer(this.buffer, { length: 12, mayBeLess: true });
        if (this.check([66, 77])) {
          return {
            ext: "bmp",
            mime: "image/bmp"
          };
        }
        if (this.check([11, 119])) {
          return {
            ext: "ac3",
            mime: "audio/vnd.dolby.dd-raw"
          };
        }
        if (this.check([120, 1])) {
          return {
            ext: "dmg",
            mime: "application/x-apple-diskimage"
          };
        }
        if (this.check([77, 90])) {
          return {
            ext: "exe",
            mime: "application/x-msdownload"
          };
        }
        if (this.check([37, 33])) {
          await tokenizer.peekBuffer(this.buffer, { length: 24, mayBeLess: true });
          if (this.checkString("PS-Adobe-", { offset: 2 }) && this.checkString(" EPSF-", { offset: 14 })) {
            return {
              ext: "eps",
              mime: "application/eps"
            };
          }
          return {
            ext: "ps",
            mime: "application/postscript"
          };
        }
        if (this.check([31, 160]) || this.check([31, 157])) {
          return {
            ext: "Z",
            mime: "application/x-compress"
          };
        }
        if (this.check([199, 113])) {
          return {
            ext: "cpio",
            mime: "application/x-cpio"
          };
        }
        if (this.check([96, 234])) {
          return {
            ext: "arj",
            mime: "application/x-arj"
          };
        }
        if (this.check([239, 187, 191])) {
          this.tokenizer.ignore(3);
          return this.detectConfident(tokenizer);
        }
        if (this.check([71, 73, 70])) {
          return {
            ext: "gif",
            mime: "image/gif"
          };
        }
        if (this.check([73, 73, 188])) {
          return {
            ext: "jxr",
            mime: "image/vnd.ms-photo"
          };
        }
        if (this.check([31, 139, 8])) {
          return {
            ext: "gz",
            mime: "application/gzip"
          };
        }
        if (this.check([66, 90, 104])) {
          return {
            ext: "bz2",
            mime: "application/x-bzip2"
          };
        }
        if (this.checkString("ID3")) {
          await tokenizer.ignore(6);
          const id3HeaderLength = await tokenizer.readToken(uint32SyncSafeToken);
          if (tokenizer.position + id3HeaderLength > tokenizer.fileInfo.size) {
            return {
              ext: "mp3",
              mime: "audio/mpeg"
            };
          }
          await tokenizer.ignore(id3HeaderLength);
          return this.fromTokenizer(tokenizer);
        }
        if (this.checkString("MP+")) {
          return {
            ext: "mpc",
            mime: "audio/x-musepack"
          };
        }
        if ((this.buffer[0] === 67 || this.buffer[0] === 70) && this.check([87, 83], { offset: 1 })) {
          return {
            ext: "swf",
            mime: "application/x-shockwave-flash"
          };
        }
        if (this.check([255, 216, 255])) {
          if (this.check([247], { offset: 3 })) {
            return {
              ext: "jls",
              mime: "image/jls"
            };
          }
          return {
            ext: "jpg",
            mime: "image/jpeg"
          };
        }
        if (this.check([79, 98, 106, 1])) {
          return {
            ext: "avro",
            mime: "application/avro"
          };
        }
        if (this.checkString("FLIF")) {
          return {
            ext: "flif",
            mime: "image/flif"
          };
        }
        if (this.checkString("8BPS")) {
          return {
            ext: "psd",
            mime: "image/vnd.adobe.photoshop"
          };
        }
        if (this.checkString("MPCK")) {
          return {
            ext: "mpc",
            mime: "audio/x-musepack"
          };
        }
        if (this.checkString("FORM")) {
          return {
            ext: "aif",
            mime: "audio/aiff"
          };
        }
        if (this.checkString("icns", { offset: 0 })) {
          return {
            ext: "icns",
            mime: "image/icns"
          };
        }
        if (this.check([80, 75, 3, 4])) {
          let fileType;
          await new ZipHandler(tokenizer).unzip((zipHeader) => {
            switch (zipHeader.filename) {
              case "META-INF/mozilla.rsa":
                fileType = {
                  ext: "xpi",
                  mime: "application/x-xpinstall"
                };
                return {
                  stop: true
                };
              case "META-INF/MANIFEST.MF":
                fileType = {
                  ext: "jar",
                  mime: "application/java-archive"
                };
                return {
                  stop: true
                };
              case "mimetype":
                return {
                  async handler(fileData) {
                    const mimeType = new TextDecoder("utf-8").decode(fileData).trim();
                    fileType = getFileTypeFromMimeType(mimeType);
                  },
                  stop: true
                };
              case "[Content_Types].xml":
                return {
                  async handler(fileData) {
                    let xmlContent = new TextDecoder("utf-8").decode(fileData);
                    const endPos = xmlContent.indexOf('.main+xml"');
                    if (endPos === -1) {
                      const mimeType = "application/vnd.ms-package.3dmanufacturing-3dmodel+xml";
                      if (xmlContent.includes(`ContentType="${mimeType}"`)) {
                        fileType = getFileTypeFromMimeType(mimeType);
                      }
                    } else {
                      xmlContent = xmlContent.slice(0, Math.max(0, endPos));
                      const firstPos = xmlContent.lastIndexOf('"');
                      const mimeType = xmlContent.slice(Math.max(0, firstPos + 1));
                      fileType = getFileTypeFromMimeType(mimeType);
                    }
                  },
                  stop: true
                };
              default:
                if (/classes\d*\.dex/.test(zipHeader.filename)) {
                  fileType = {
                    ext: "apk",
                    mime: "application/vnd.android.package-archive"
                  };
                  return { stop: true };
                }
                return {};
            }
          });
          return fileType ?? {
            ext: "zip",
            mime: "application/zip"
          };
        }
        if (this.checkString("OggS")) {
          await tokenizer.ignore(28);
          const type = new Uint8Array(8);
          await tokenizer.readBuffer(type);
          if (_check(type, [79, 112, 117, 115, 72, 101, 97, 100])) {
            return {
              ext: "opus",
              mime: "audio/ogg; codecs=opus"
            };
          }
          if (_check(type, [128, 116, 104, 101, 111, 114, 97])) {
            return {
              ext: "ogv",
              mime: "video/ogg"
            };
          }
          if (_check(type, [1, 118, 105, 100, 101, 111, 0])) {
            return {
              ext: "ogm",
              mime: "video/ogg"
            };
          }
          if (_check(type, [127, 70, 76, 65, 67])) {
            return {
              ext: "oga",
              mime: "audio/ogg"
            };
          }
          if (_check(type, [83, 112, 101, 101, 120, 32, 32])) {
            return {
              ext: "spx",
              mime: "audio/ogg"
            };
          }
          if (_check(type, [1, 118, 111, 114, 98, 105, 115])) {
            return {
              ext: "ogg",
              mime: "audio/ogg"
            };
          }
          return {
            ext: "ogx",
            mime: "application/ogg"
          };
        }
        if (this.check([80, 75]) && (this.buffer[2] === 3 || this.buffer[2] === 5 || this.buffer[2] === 7) && (this.buffer[3] === 4 || this.buffer[3] === 6 || this.buffer[3] === 8)) {
          return {
            ext: "zip",
            mime: "application/zip"
          };
        }
        if (this.checkString("MThd")) {
          return {
            ext: "mid",
            mime: "audio/midi"
          };
        }
        if (this.checkString("wOFF") && (this.check([0, 1, 0, 0], { offset: 4 }) || this.checkString("OTTO", { offset: 4 }))) {
          return {
            ext: "woff",
            mime: "font/woff"
          };
        }
        if (this.checkString("wOF2") && (this.check([0, 1, 0, 0], { offset: 4 }) || this.checkString("OTTO", { offset: 4 }))) {
          return {
            ext: "woff2",
            mime: "font/woff2"
          };
        }
        if (this.check([212, 195, 178, 161]) || this.check([161, 178, 195, 212])) {
          return {
            ext: "pcap",
            mime: "application/vnd.tcpdump.pcap"
          };
        }
        if (this.checkString("DSD ")) {
          return {
            ext: "dsf",
            mime: "audio/x-dsf"
            // Non-standard
          };
        }
        if (this.checkString("LZIP")) {
          return {
            ext: "lz",
            mime: "application/x-lzip"
          };
        }
        if (this.checkString("fLaC")) {
          return {
            ext: "flac",
            mime: "audio/x-flac"
          };
        }
        if (this.check([66, 80, 71, 251])) {
          return {
            ext: "bpg",
            mime: "image/bpg"
          };
        }
        if (this.checkString("wvpk")) {
          return {
            ext: "wv",
            mime: "audio/wavpack"
          };
        }
        if (this.checkString("%PDF")) {
          try {
            const skipBytes = 1350;
            if (skipBytes === await tokenizer.ignore(skipBytes)) {
              const maxBufferSize2 = 10 * 1024 * 1024;
              const buffer = new Uint8Array(Math.min(maxBufferSize2, tokenizer.fileInfo.size - skipBytes));
              await tokenizer.readBuffer(buffer, { mayBeLess: true });
              if (includes(buffer, new TextEncoder().encode("AIPrivateData"))) {
                return {
                  ext: "ai",
                  mime: "application/postscript"
                };
              }
            }
          } catch (error) {
            if (!(error instanceof EndOfStreamError)) {
              throw error;
            }
          }
          return {
            ext: "pdf",
            mime: "application/pdf"
          };
        }
        if (this.check([0, 97, 115, 109])) {
          return {
            ext: "wasm",
            mime: "application/wasm"
          };
        }
        if (this.check([73, 73])) {
          const fileType = await this.readTiffHeader(false);
          if (fileType) {
            return fileType;
          }
        }
        if (this.check([77, 77])) {
          const fileType = await this.readTiffHeader(true);
          if (fileType) {
            return fileType;
          }
        }
        if (this.checkString("MAC ")) {
          return {
            ext: "ape",
            mime: "audio/ape"
          };
        }
        if (this.check([26, 69, 223, 163])) {
          async function readField() {
            const msb = await tokenizer.peekNumber(UINT8);
            let mask = 128;
            let ic = 0;
            while ((msb & mask) === 0 && mask !== 0) {
              ++ic;
              mask >>= 1;
            }
            const id = new Uint8Array(ic + 1);
            await tokenizer.readBuffer(id);
            return id;
          }
          async function readElement() {
            const idField = await readField();
            const lengthField = await readField();
            lengthField[0] ^= 128 >> lengthField.length - 1;
            const nrLength = Math.min(6, lengthField.length);
            const idView = new DataView(idField.buffer);
            const lengthView = new DataView(lengthField.buffer, lengthField.length - nrLength, nrLength);
            return {
              id: getUintBE(idView),
              len: getUintBE(lengthView)
            };
          }
          async function readChildren(children) {
            while (children > 0) {
              const element = await readElement();
              if (element.id === 17026) {
                const rawValue = await tokenizer.readToken(new StringType(element.len));
                return rawValue.replaceAll(/\00.*$/g, "");
              }
              await tokenizer.ignore(element.len);
              --children;
            }
          }
          const re = await readElement();
          const documentType = await readChildren(re.len);
          switch (documentType) {
            case "webm":
              return {
                ext: "webm",
                mime: "video/webm"
              };
            case "matroska":
              return {
                ext: "mkv",
                mime: "video/x-matroska"
              };
            default:
              return;
          }
        }
        if (this.checkString("SQLi")) {
          return {
            ext: "sqlite",
            mime: "application/x-sqlite3"
          };
        }
        if (this.check([78, 69, 83, 26])) {
          return {
            ext: "nes",
            mime: "application/x-nintendo-nes-rom"
          };
        }
        if (this.checkString("Cr24")) {
          return {
            ext: "crx",
            mime: "application/x-google-chrome-extension"
          };
        }
        if (this.checkString("MSCF") || this.checkString("ISc(")) {
          return {
            ext: "cab",
            mime: "application/vnd.ms-cab-compressed"
          };
        }
        if (this.check([237, 171, 238, 219])) {
          return {
            ext: "rpm",
            mime: "application/x-rpm"
          };
        }
        if (this.check([197, 208, 211, 198])) {
          return {
            ext: "eps",
            mime: "application/eps"
          };
        }
        if (this.check([40, 181, 47, 253])) {
          return {
            ext: "zst",
            mime: "application/zstd"
          };
        }
        if (this.check([127, 69, 76, 70])) {
          return {
            ext: "elf",
            mime: "application/x-elf"
          };
        }
        if (this.check([33, 66, 68, 78])) {
          return {
            ext: "pst",
            mime: "application/vnd.ms-outlook"
          };
        }
        if (this.checkString("PAR1")) {
          return {
            ext: "parquet",
            mime: "application/x-parquet"
          };
        }
        if (this.checkString("ttcf")) {
          return {
            ext: "ttc",
            mime: "font/collection"
          };
        }
        if (this.check([207, 250, 237, 254])) {
          return {
            ext: "macho",
            mime: "application/x-mach-binary"
          };
        }
        if (this.check([4, 34, 77, 24])) {
          return {
            ext: "lz4",
            mime: "application/x-lz4"
            // Invented by us
          };
        }
        if (this.check([79, 84, 84, 79, 0])) {
          return {
            ext: "otf",
            mime: "font/otf"
          };
        }
        if (this.checkString("#!AMR")) {
          return {
            ext: "amr",
            mime: "audio/amr"
          };
        }
        if (this.checkString("{\\rtf")) {
          return {
            ext: "rtf",
            mime: "application/rtf"
          };
        }
        if (this.check([70, 76, 86, 1])) {
          return {
            ext: "flv",
            mime: "video/x-flv"
          };
        }
        if (this.checkString("IMPM")) {
          return {
            ext: "it",
            mime: "audio/x-it"
          };
        }
        if (this.checkString("-lh0-", { offset: 2 }) || this.checkString("-lh1-", { offset: 2 }) || this.checkString("-lh2-", { offset: 2 }) || this.checkString("-lh3-", { offset: 2 }) || this.checkString("-lh4-", { offset: 2 }) || this.checkString("-lh5-", { offset: 2 }) || this.checkString("-lh6-", { offset: 2 }) || this.checkString("-lh7-", { offset: 2 }) || this.checkString("-lzs-", { offset: 2 }) || this.checkString("-lz4-", { offset: 2 }) || this.checkString("-lz5-", { offset: 2 }) || this.checkString("-lhd-", { offset: 2 })) {
          return {
            ext: "lzh",
            mime: "application/x-lzh-compressed"
          };
        }
        if (this.check([0, 0, 1, 186])) {
          if (this.check([33], { offset: 4, mask: [241] })) {
            return {
              ext: "mpg",
              // May also be .ps, .mpeg
              mime: "video/MP1S"
            };
          }
          if (this.check([68], { offset: 4, mask: [196] })) {
            return {
              ext: "mpg",
              // May also be .mpg, .m2p, .vob or .sub
              mime: "video/MP2P"
            };
          }
        }
        if (this.checkString("ITSF")) {
          return {
            ext: "chm",
            mime: "application/vnd.ms-htmlhelp"
          };
        }
        if (this.check([202, 254, 186, 190])) {
          return {
            ext: "class",
            mime: "application/java-vm"
          };
        }
        if (this.checkString(".RMF")) {
          return {
            ext: "rm",
            mime: "application/vnd.rn-realmedia"
          };
        }
        if (this.checkString("DRACO")) {
          return {
            ext: "drc",
            mime: "application/vnd.google.draco"
            // Invented by us
          };
        }
        if (this.check([253, 55, 122, 88, 90, 0])) {
          return {
            ext: "xz",
            mime: "application/x-xz"
          };
        }
        if (this.checkString("<?xml ")) {
          return {
            ext: "xml",
            mime: "application/xml"
          };
        }
        if (this.check([55, 122, 188, 175, 39, 28])) {
          return {
            ext: "7z",
            mime: "application/x-7z-compressed"
          };
        }
        if (this.check([82, 97, 114, 33, 26, 7]) && (this.buffer[6] === 0 || this.buffer[6] === 1)) {
          return {
            ext: "rar",
            mime: "application/x-rar-compressed"
          };
        }
        if (this.checkString("solid ")) {
          return {
            ext: "stl",
            mime: "model/stl"
          };
        }
        if (this.checkString("AC")) {
          const version2 = new StringType(4, "latin1").get(this.buffer, 2);
          if (version2.match("^d*") && version2 >= 1e3 && version2 <= 1050) {
            return {
              ext: "dwg",
              mime: "image/vnd.dwg"
            };
          }
        }
        if (this.checkString("070707")) {
          return {
            ext: "cpio",
            mime: "application/x-cpio"
          };
        }
        if (this.checkString("BLENDER")) {
          return {
            ext: "blend",
            mime: "application/x-blender"
          };
        }
        if (this.checkString("!<arch>")) {
          await tokenizer.ignore(8);
          const string = await tokenizer.readToken(new StringType(13, "ascii"));
          if (string === "debian-binary") {
            return {
              ext: "deb",
              mime: "application/x-deb"
            };
          }
          return {
            ext: "ar",
            mime: "application/x-unix-archive"
          };
        }
        if (this.checkString("WEBVTT") && // One of LF, CR, tab, space, or end of file must follow "WEBVTT" per the spec (see `fixture/fixture-vtt-*.vtt` for examples). Note that `\0` is technically the null character (there is no such thing as an EOF character). However, checking for `\0` gives us the same result as checking for the end of the stream.
        ["\n", "\r", "	", " ", "\0"].some((char7) => this.checkString(char7, { offset: 6 }))) {
          return {
            ext: "vtt",
            mime: "text/vtt"
          };
        }
        if (this.check([137, 80, 78, 71, 13, 10, 26, 10])) {
          await tokenizer.ignore(8);
          async function readChunkHeader() {
            return {
              length: await tokenizer.readToken(INT32_BE),
              type: await tokenizer.readToken(new StringType(4, "latin1"))
            };
          }
          do {
            const chunk3 = await readChunkHeader();
            if (chunk3.length < 0) {
              return;
            }
            switch (chunk3.type) {
              case "IDAT":
                return {
                  ext: "png",
                  mime: "image/png"
                };
              case "acTL":
                return {
                  ext: "apng",
                  mime: "image/apng"
                };
              default:
                await tokenizer.ignore(chunk3.length + 4);
            }
          } while (tokenizer.position + 8 < tokenizer.fileInfo.size);
          return {
            ext: "png",
            mime: "image/png"
          };
        }
        if (this.check([65, 82, 82, 79, 87, 49, 0, 0])) {
          return {
            ext: "arrow",
            mime: "application/x-apache-arrow"
          };
        }
        if (this.check([103, 108, 84, 70, 2, 0, 0, 0])) {
          return {
            ext: "glb",
            mime: "model/gltf-binary"
          };
        }
        if (this.check([102, 114, 101, 101], { offset: 4 }) || this.check([109, 100, 97, 116], { offset: 4 }) || this.check([109, 111, 111, 118], { offset: 4 }) || this.check([119, 105, 100, 101], { offset: 4 })) {
          return {
            ext: "mov",
            mime: "video/quicktime"
          };
        }
        if (this.check([73, 73, 82, 79, 8, 0, 0, 0, 24])) {
          return {
            ext: "orf",
            mime: "image/x-olympus-orf"
          };
        }
        if (this.checkString("gimp xcf ")) {
          return {
            ext: "xcf",
            mime: "image/x-xcf"
          };
        }
        if (this.checkString("ftyp", { offset: 4 }) && (this.buffer[8] & 96) !== 0) {
          const brandMajor = new StringType(4, "latin1").get(this.buffer, 8).replace("\0", " ").trim();
          switch (brandMajor) {
            case "avif":
            case "avis":
              return { ext: "avif", mime: "image/avif" };
            case "mif1":
              return { ext: "heic", mime: "image/heif" };
            case "msf1":
              return { ext: "heic", mime: "image/heif-sequence" };
            case "heic":
            case "heix":
              return { ext: "heic", mime: "image/heic" };
            case "hevc":
            case "hevx":
              return { ext: "heic", mime: "image/heic-sequence" };
            case "qt":
              return { ext: "mov", mime: "video/quicktime" };
            case "M4V":
            case "M4VH":
            case "M4VP":
              return { ext: "m4v", mime: "video/x-m4v" };
            case "M4P":
              return { ext: "m4p", mime: "video/mp4" };
            case "M4B":
              return { ext: "m4b", mime: "audio/mp4" };
            case "M4A":
              return { ext: "m4a", mime: "audio/x-m4a" };
            case "F4V":
              return { ext: "f4v", mime: "video/mp4" };
            case "F4P":
              return { ext: "f4p", mime: "video/mp4" };
            case "F4A":
              return { ext: "f4a", mime: "audio/mp4" };
            case "F4B":
              return { ext: "f4b", mime: "audio/mp4" };
            case "crx":
              return { ext: "cr3", mime: "image/x-canon-cr3" };
            default:
              if (brandMajor.startsWith("3g")) {
                if (brandMajor.startsWith("3g2")) {
                  return { ext: "3g2", mime: "video/3gpp2" };
                }
                return { ext: "3gp", mime: "video/3gpp" };
              }
              return { ext: "mp4", mime: "video/mp4" };
          }
        }
        if (this.check([82, 73, 70, 70])) {
          if (this.checkString("WEBP", { offset: 8 })) {
            return {
              ext: "webp",
              mime: "image/webp"
            };
          }
          if (this.check([65, 86, 73], { offset: 8 })) {
            return {
              ext: "avi",
              mime: "video/vnd.avi"
            };
          }
          if (this.check([87, 65, 86, 69], { offset: 8 })) {
            return {
              ext: "wav",
              mime: "audio/wav"
            };
          }
          if (this.check([81, 76, 67, 77], { offset: 8 })) {
            return {
              ext: "qcp",
              mime: "audio/qcelp"
            };
          }
        }
        if (this.check([73, 73, 85, 0, 24, 0, 0, 0, 136, 231, 116, 216])) {
          return {
            ext: "rw2",
            mime: "image/x-panasonic-rw2"
          };
        }
        if (this.check([48, 38, 178, 117, 142, 102, 207, 17, 166, 217])) {
          async function readHeader() {
            const guid = new Uint8Array(16);
            await tokenizer.readBuffer(guid);
            return {
              id: guid,
              size: Number(await tokenizer.readToken(UINT64_LE))
            };
          }
          await tokenizer.ignore(30);
          while (tokenizer.position + 24 < tokenizer.fileInfo.size) {
            const header = await readHeader();
            let payload = header.size - 24;
            if (_check(header.id, [145, 7, 220, 183, 183, 169, 207, 17, 142, 230, 0, 192, 12, 32, 83, 101])) {
              const typeId = new Uint8Array(16);
              payload -= await tokenizer.readBuffer(typeId);
              if (_check(typeId, [64, 158, 105, 248, 77, 91, 207, 17, 168, 253, 0, 128, 95, 92, 68, 43])) {
                return {
                  ext: "asf",
                  mime: "audio/x-ms-asf"
                };
              }
              if (_check(typeId, [192, 239, 25, 188, 77, 91, 207, 17, 168, 253, 0, 128, 95, 92, 68, 43])) {
                return {
                  ext: "asf",
                  mime: "video/x-ms-asf"
                };
              }
              break;
            }
            await tokenizer.ignore(payload);
          }
          return {
            ext: "asf",
            mime: "application/vnd.ms-asf"
          };
        }
        if (this.check([171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10])) {
          return {
            ext: "ktx",
            mime: "image/ktx"
          };
        }
        if ((this.check([126, 16, 4]) || this.check([126, 24, 4])) && this.check([48, 77, 73, 69], { offset: 4 })) {
          return {
            ext: "mie",
            mime: "application/x-mie"
          };
        }
        if (this.check([39, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], { offset: 2 })) {
          return {
            ext: "shp",
            mime: "application/x-esri-shape"
          };
        }
        if (this.check([255, 79, 255, 81])) {
          return {
            ext: "j2c",
            mime: "image/j2c"
          };
        }
        if (this.check([0, 0, 0, 12, 106, 80, 32, 32, 13, 10, 135, 10])) {
          await tokenizer.ignore(20);
          const type = await tokenizer.readToken(new StringType(4, "ascii"));
          switch (type) {
            case "jp2 ":
              return {
                ext: "jp2",
                mime: "image/jp2"
              };
            case "jpx ":
              return {
                ext: "jpx",
                mime: "image/jpx"
              };
            case "jpm ":
              return {
                ext: "jpm",
                mime: "image/jpm"
              };
            case "mjp2":
              return {
                ext: "mj2",
                mime: "image/mj2"
              };
            default:
              return;
          }
        }
        if (this.check([255, 10]) || this.check([0, 0, 0, 12, 74, 88, 76, 32, 13, 10, 135, 10])) {
          return {
            ext: "jxl",
            mime: "image/jxl"
          };
        }
        if (this.check([254, 255])) {
          if (this.check([0, 60, 0, 63, 0, 120, 0, 109, 0, 108], { offset: 2 })) {
            return {
              ext: "xml",
              mime: "application/xml"
            };
          }
          return void 0;
        }
        if (this.check([208, 207, 17, 224, 161, 177, 26, 225])) {
          return {
            ext: "cfb",
            mime: "application/x-cfb"
          };
        }
        await tokenizer.peekBuffer(this.buffer, { length: Math.min(256, tokenizer.fileInfo.size), mayBeLess: true });
        if (this.check([97, 99, 115, 112], { offset: 36 })) {
          return {
            ext: "icc",
            mime: "application/vnd.iccprofile"
          };
        }
        if (this.checkString("**ACE", { offset: 7 }) && this.checkString("**", { offset: 12 })) {
          return {
            ext: "ace",
            mime: "application/x-ace-compressed"
          };
        }
        if (this.checkString("BEGIN:")) {
          if (this.checkString("VCARD", { offset: 6 })) {
            return {
              ext: "vcf",
              mime: "text/vcard"
            };
          }
          if (this.checkString("VCALENDAR", { offset: 6 })) {
            return {
              ext: "ics",
              mime: "text/calendar"
            };
          }
        }
        if (this.checkString("FUJIFILMCCD-RAW")) {
          return {
            ext: "raf",
            mime: "image/x-fujifilm-raf"
          };
        }
        if (this.checkString("Extended Module:")) {
          return {
            ext: "xm",
            mime: "audio/x-xm"
          };
        }
        if (this.checkString("Creative Voice File")) {
          return {
            ext: "voc",
            mime: "audio/x-voc"
          };
        }
        if (this.check([4, 0, 0, 0]) && this.buffer.length >= 16) {
          const jsonSize = new DataView(this.buffer.buffer).getUint32(12, true);
          if (jsonSize > 12 && this.buffer.length >= jsonSize + 16) {
            try {
              const header = new TextDecoder().decode(this.buffer.slice(16, jsonSize + 16));
              const json = JSON.parse(header);
              if (json.files) {
                return {
                  ext: "asar",
                  mime: "application/x-asar"
                };
              }
            } catch {
            }
          }
        }
        if (this.check([6, 14, 43, 52, 2, 5, 1, 1, 13, 1, 2, 1, 1, 2])) {
          return {
            ext: "mxf",
            mime: "application/mxf"
          };
        }
        if (this.checkString("SCRM", { offset: 44 })) {
          return {
            ext: "s3m",
            mime: "audio/x-s3m"
          };
        }
        if (this.check([71]) && this.check([71], { offset: 188 })) {
          return {
            ext: "mts",
            mime: "video/mp2t"
          };
        }
        if (this.check([71], { offset: 4 }) && this.check([71], { offset: 196 })) {
          return {
            ext: "mts",
            mime: "video/mp2t"
          };
        }
        if (this.check([66, 79, 79, 75, 77, 79, 66, 73], { offset: 60 })) {
          return {
            ext: "mobi",
            mime: "application/x-mobipocket-ebook"
          };
        }
        if (this.check([68, 73, 67, 77], { offset: 128 })) {
          return {
            ext: "dcm",
            mime: "application/dicom"
          };
        }
        if (this.check([76, 0, 0, 0, 1, 20, 2, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 70])) {
          return {
            ext: "lnk",
            mime: "application/x.ms.shortcut"
            // Invented by us
          };
        }
        if (this.check([98, 111, 111, 107, 0, 0, 0, 0, 109, 97, 114, 107, 0, 0, 0, 0])) {
          return {
            ext: "alias",
            mime: "application/x.apple.alias"
            // Invented by us
          };
        }
        if (this.checkString("Kaydara FBX Binary  \0")) {
          return {
            ext: "fbx",
            mime: "application/x.autodesk.fbx"
            // Invented by us
          };
        }
        if (this.check([76, 80], { offset: 34 }) && (this.check([0, 0, 1], { offset: 8 }) || this.check([1, 0, 2], { offset: 8 }) || this.check([2, 0, 2], { offset: 8 }))) {
          return {
            ext: "eot",
            mime: "application/vnd.ms-fontobject"
          };
        }
        if (this.check([6, 6, 237, 245, 216, 29, 70, 229, 189, 49, 239, 231, 254, 116, 183, 29])) {
          return {
            ext: "indd",
            mime: "application/x-indesign"
          };
        }
        await tokenizer.peekBuffer(this.buffer, { length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true });
        if (tarHeaderChecksumMatches(this.buffer)) {
          return {
            ext: "tar",
            mime: "application/x-tar"
          };
        }
        if (this.check([255, 254])) {
          if (this.check([60, 0, 63, 0, 120, 0, 109, 0, 108, 0], { offset: 2 })) {
            return {
              ext: "xml",
              mime: "application/xml"
            };
          }
          if (this.check([255, 14, 83, 0, 107, 0, 101, 0, 116, 0, 99, 0, 104, 0, 85, 0, 112, 0, 32, 0, 77, 0, 111, 0, 100, 0, 101, 0, 108, 0], { offset: 2 })) {
            return {
              ext: "skp",
              mime: "application/vnd.sketchup.skp"
            };
          }
          return void 0;
        }
        if (this.checkString("-----BEGIN PGP MESSAGE-----")) {
          return {
            ext: "pgp",
            mime: "application/pgp-encrypted"
          };
        }
      };
      // Detections with limited supporting data, resulting in a higher likelihood of false positives
      detectImprecise = async (tokenizer) => {
        this.buffer = new Uint8Array(reasonableDetectionSizeInBytes);
        await tokenizer.peekBuffer(this.buffer, { length: Math.min(8, tokenizer.fileInfo.size), mayBeLess: true });
        if (this.check([0, 0, 1, 186]) || this.check([0, 0, 1, 179])) {
          return {
            ext: "mpg",
            mime: "video/mpeg"
          };
        }
        if (this.check([0, 1, 0, 0, 0])) {
          return {
            ext: "ttf",
            mime: "font/ttf"
          };
        }
        if (this.check([0, 0, 1, 0])) {
          return {
            ext: "ico",
            mime: "image/x-icon"
          };
        }
        if (this.check([0, 0, 2, 0])) {
          return {
            ext: "cur",
            mime: "image/x-icon"
          };
        }
        if (this.buffer.length >= 2 && this.check([255, 224], { offset: 0, mask: [255, 224] })) {
          if (this.check([16], { offset: 1, mask: [22] })) {
            if (this.check([8], { offset: 1, mask: [8] })) {
              return {
                ext: "aac",
                mime: "audio/aac"
              };
            }
            return {
              ext: "aac",
              mime: "audio/aac"
            };
          }
          if (this.check([2], { offset: 1, mask: [6] })) {
            return {
              ext: "mp3",
              mime: "audio/mpeg"
            };
          }
          if (this.check([4], { offset: 1, mask: [6] })) {
            return {
              ext: "mp2",
              mime: "audio/mpeg"
            };
          }
          if (this.check([6], { offset: 1, mask: [6] })) {
            return {
              ext: "mp1",
              mime: "audio/mpeg"
            };
          }
        }
      };
      async readTiffTag(bigEndian) {
        const tagId = await this.tokenizer.readToken(bigEndian ? UINT16_BE : UINT16_LE);
        this.tokenizer.ignore(10);
        switch (tagId) {
          case 50341:
            return {
              ext: "arw",
              mime: "image/x-sony-arw"
            };
          case 50706:
            return {
              ext: "dng",
              mime: "image/x-adobe-dng"
            };
          default:
        }
      }
      async readTiffIFD(bigEndian) {
        const numberOfTags = await this.tokenizer.readToken(bigEndian ? UINT16_BE : UINT16_LE);
        for (let n6 = 0; n6 < numberOfTags; ++n6) {
          const fileType = await this.readTiffTag(bigEndian);
          if (fileType) {
            return fileType;
          }
        }
      }
      async readTiffHeader(bigEndian) {
        const version2 = (bigEndian ? UINT16_BE : UINT16_LE).get(this.buffer, 2);
        const ifdOffset = (bigEndian ? UINT32_BE : UINT32_LE).get(this.buffer, 4);
        if (version2 === 42) {
          if (ifdOffset >= 6) {
            if (this.checkString("CR", { offset: 8 })) {
              return {
                ext: "cr2",
                mime: "image/x-canon-cr2"
              };
            }
            if (ifdOffset >= 8) {
              const someId1 = (bigEndian ? UINT16_BE : UINT16_LE).get(this.buffer, 8);
              const someId2 = (bigEndian ? UINT16_BE : UINT16_LE).get(this.buffer, 10);
              if (someId1 === 28 && someId2 === 254 || someId1 === 31 && someId2 === 11) {
                return {
                  ext: "nef",
                  mime: "image/x-nikon-nef"
                };
              }
            }
          }
          await this.tokenizer.ignore(ifdOffset);
          const fileType = await this.readTiffIFD(bigEndian);
          return fileType ?? {
            ext: "tif",
            mime: "image/tiff"
          };
        }
        if (version2 === 43) {
          return {
            ext: "tif",
            mime: "image/tiff"
          };
        }
      }
    };
    supportedExtensions = new Set(extensions);
    supportedMimeTypes = new Set(mimeTypes);
  }
});

// ../../node_modules/.pnpm/file-type@20.5.0/node_modules/file-type/index.js
var file_type_exports = {};
__export(file_type_exports, {
  FileTypeParser: () => FileTypeParser2,
  fileTypeFromBlob: () => fileTypeFromBlob,
  fileTypeFromBuffer: () => fileTypeFromBuffer,
  fileTypeFromFile: () => fileTypeFromFile,
  fileTypeFromStream: () => fileTypeFromStream,
  fileTypeFromTokenizer: () => fileTypeFromTokenizer,
  fileTypeStream: () => fileTypeStream,
  supportedExtensions: () => supportedExtensions,
  supportedMimeTypes: () => supportedMimeTypes
});
import { ReadableStream as WebReadableStream } from "node:stream/web";
import { pipeline, PassThrough as PassThrough2, Readable } from "node:stream";
async function fileTypeFromFile(path3, fileTypeOptions) {
  return new FileTypeParser2(fileTypeOptions).fromFile(path3, fileTypeOptions);
}
async function fileTypeFromStream(stream7, fileTypeOptions) {
  return new FileTypeParser2(fileTypeOptions).fromStream(stream7);
}
async function fileTypeStream(readableStream, options = {}) {
  return new FileTypeParser2(options).toDetectionStream(readableStream, options);
}
var FileTypeParser2;
var init_file_type = __esm({
  "../../node_modules/.pnpm/file-type@20.5.0/node_modules/file-type/index.js"() {
    init_lib2();
    init_core3();
    init_core3();
    FileTypeParser2 = class extends FileTypeParser {
      async fromStream(stream7) {
        const tokenizer = await (stream7 instanceof WebReadableStream ? fromWebStream(stream7, this.tokenizerOptions) : fromStream2(stream7, this.tokenizerOptions));
        try {
          return await super.fromTokenizer(tokenizer);
        } finally {
          await tokenizer.close();
        }
      }
      async fromFile(path3) {
        const tokenizer = await fromFile(path3);
        try {
          return await super.fromTokenizer(tokenizer);
        } finally {
          await tokenizer.close();
        }
      }
      async toDetectionStream(readableStream, options = {}) {
        if (!(readableStream instanceof Readable)) {
          return super.toDetectionStream(readableStream, options);
        }
        const { sampleSize = reasonableDetectionSizeInBytes } = options;
        return new Promise((resolve4, reject) => {
          readableStream.on("error", reject);
          readableStream.once("readable", () => {
            (async () => {
              try {
                const pass = new PassThrough2();
                const outputStream = pipeline ? pipeline(readableStream, pass, () => {
                }) : readableStream.pipe(pass);
                const chunk3 = readableStream.read(sampleSize) ?? readableStream.read() ?? new Uint8Array(0);
                try {
                  pass.fileType = await this.fromBuffer(chunk3);
                } catch (error) {
                  if (error instanceof EndOfStreamError) {
                    pass.fileType = void 0;
                  } else {
                    reject(error);
                  }
                }
                resolve4(outputStream);
              } catch (error) {
                reject(error);
              }
            })();
          });
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/sitemap.js
var require_sitemap = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/sitemap.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Sitemap = void 0;
    exports.parseSitemap = parseSitemap2;
    exports.discoverValidSitemaps = discoverValidSitemaps2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_crypto_1 = __require("node:crypto");
    var node_stream_1 = __require("node:stream");
    var node_string_decoder_1 = __require("node:string_decoder");
    var node_zlib_1 = __require("node:zlib");
    var sax_1 = tslib_1.__importDefault(require_sax());
    var whatwg_mimetype_1 = tslib_1.__importDefault(require_mime_type());
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var iterables_1 = require_iterables();
    var robots_1 = require_robots();
    var SitemapTxtParser = class extends node_stream_1.Transform {
      constructor() {
        super({
          readableObjectMode: true,
          transform: (chunk3, _encoding, callback) => {
            this.processBuffer(this.decoder.write(chunk3), false);
            callback();
          },
          flush: (callback) => {
            this.processBuffer(this.decoder.end(), true);
            callback();
          }
        });
        Object.defineProperty(this, "decoder", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new node_string_decoder_1.StringDecoder("utf8")
        });
        Object.defineProperty(this, "buffer", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: ""
        });
      }
      processBuffer(input, finalize) {
        this.buffer += input;
        if (finalize || this.buffer.includes("\n")) {
          const parts = this.buffer.split("\n").map((part) => part.trim()).filter((part) => part.length > 0);
          if (finalize) {
            for (const url3 of parts) {
              this.push({ type: "url", loc: url3 });
            }
            this.buffer = "";
          } else if (parts.length > 0) {
            for (const url3 of parts.slice(0, -1)) {
              this.push({ type: "url", loc: url3 });
            }
            this.buffer = parts.at(-1);
          }
        }
      }
    };
    var SitemapXmlParser = class extends node_stream_1.Transform {
      constructor() {
        super({
          readableObjectMode: true,
          transform: (chunk3, _encoding, callback) => {
            this.parser.write(this.decoder.write(chunk3));
            callback();
          },
          flush: (callback) => {
            const rest = this.decoder.end();
            if (rest.length > 0) {
              this.parser.write(rest);
            }
            this.parser.end();
            callback();
          }
        });
        Object.defineProperty(this, "decoder", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new node_string_decoder_1.StringDecoder("utf8")
        });
        Object.defineProperty(this, "parser", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new sax_1.default.SAXParser(true)
        });
        Object.defineProperty(this, "rootTagName", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "currentTag", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "url", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        this.parser.onopentag = this.onOpenTag.bind(this);
        this.parser.onclosetag = this.onCloseTag.bind(this);
        this.parser.ontext = this.onText.bind(this);
        this.parser.oncdata = this.onText.bind(this);
        this.parser.onerror = this.destroy.bind(this);
      }
      onOpenTag(node) {
        if (this.rootTagName !== void 0) {
          if (node.name === "loc" || node.name === "lastmod" || node.name === "priority" || node.name === "changefreq") {
            this.currentTag = node.name;
          }
        }
        if (node.name === "urlset") {
          this.rootTagName = "urlset";
        }
        if (node.name === "sitemapindex") {
          this.rootTagName = "sitemapindex";
        }
      }
      onCloseTag(name) {
        if (name === "loc" || name === "lastmod" || name === "priority" || name === "changefreq") {
          this.currentTag = void 0;
        }
        if (name === "url" && this.url.loc !== void 0) {
          this.push({ type: "url", ...this.url, loc: this.url.loc });
          this.url = {};
        }
      }
      onText(text) {
        if (this.currentTag === "loc") {
          if (this.rootTagName === "sitemapindex") {
            this.push({ type: "sitemapUrl", url: text.trim() });
          }
          if (this.rootTagName === "urlset") {
            this.url ?? (this.url = {});
            this.url.loc = text.trim();
          }
        }
        text = text.trim();
        if (this.currentTag === "lastmod") {
          this.url.lastmod = new Date(text);
        }
        if (this.currentTag === "priority") {
          this.url.priority = Number(text);
        }
        if (this.currentTag === "changefreq") {
          if (["always", "hourly", "daily", "weekly", "monthly", "yearly", "never"].includes(text)) {
            this.url.changefreq = text;
          }
        }
      }
    };
    async function* parseSitemap2(initialSources, proxyUrl, options) {
      const { gotScraping: gotScraping3 } = await Promise.resolve().then(() => (init_dist6(), dist_exports));
      const { fileTypeStream: fileTypeStream2 } = await Promise.resolve().then(() => (init_file_type(), file_type_exports));
      const { emitNestedSitemaps = false, maxDepth = Infinity, sitemapRetries = 3, networkTimeouts, reportNetworkErrors = true } = options ?? {};
      const sources = [...initialSources];
      const visitedSitemapUrls = /* @__PURE__ */ new Set();
      const createParser = (contentType = "", url3) => {
        let mimeType;
        try {
          mimeType = new whatwg_mimetype_1.default(contentType);
        } catch {
          mimeType = null;
        }
        if (mimeType?.isXML() || url3?.pathname.endsWith(".xml")) {
          return new SitemapXmlParser();
        }
        if (mimeType?.essence === "text/plain" || url3?.pathname.endsWith(".txt")) {
          return new SitemapTxtParser();
        }
        throw new Error(`Unsupported sitemap content type (contentType = ${contentType}, url = ${url3?.toString()})`);
      };
      while (sources.length > 0) {
        const source = sources.shift();
        if ((source?.depth ?? 0) > maxDepth) {
          log_1.default.debug(`Skipping sitemap ${source.type === "url" ? source.url : ""} because it reached max depth ${maxDepth}.`);
          continue;
        }
        let items = null;
        if (source.type === "url") {
          const sitemapUrl = new URL(source.url);
          visitedSitemapUrls.add(sitemapUrl.toString());
          let retriesLeft = sitemapRetries + 1;
          while (retriesLeft-- > 0) {
            try {
              const sitemapStream = await new Promise((resolve4, reject) => {
                const request = gotScraping3.stream({
                  url: sitemapUrl,
                  proxyUrl,
                  method: "GET",
                  timeout: networkTimeouts,
                  headers: {
                    accept: "*/*"
                  }
                });
                request.on("response", () => resolve4(request));
                request.on("error", reject);
              });
              let error = null;
              if (sitemapStream.response.statusCode >= 200 && sitemapStream.response.statusCode < 300) {
                let contentType = sitemapStream.response.headers["content-type"];
                const streamWithType = await fileTypeStream2(sitemapStream);
                if (streamWithType.fileType !== void 0) {
                  contentType = streamWithType.fileType.mime;
                }
                let isGzipped = false;
                if (contentType !== void 0 ? contentType === "application/gzip" : sitemapUrl.pathname.endsWith(".gz")) {
                  isGzipped = true;
                  if (sitemapUrl.pathname.endsWith(".gz")) {
                    sitemapUrl.pathname = sitemapUrl.pathname.substring(0, sitemapUrl.pathname.length - 3);
                  }
                }
                items = (0, node_stream_1.pipeline)(streamWithType, isGzipped ? (0, node_zlib_1.createGunzip)() : new node_stream_1.PassThrough(), createParser(contentType, sitemapUrl), (e4) => {
                  if (e4 !== void 0 && e4 !== null) {
                    error = { type: "parser", error: e4 };
                  }
                });
              } else {
                error = {
                  type: "fetch",
                  error: new Error(`Failed to fetch sitemap: ${sitemapUrl}, status code: ${sitemapStream.response.statusCode}`)
                };
              }
              if (error !== null) {
                const shouldIgnoreError = error.type === "fetch" && !reportNetworkErrors;
                if (!shouldIgnoreError) {
                  throw error.error;
                }
              } else {
                break;
              }
            } catch (e4) {
              log_1.default.warning(`Malformed sitemap content: ${sitemapUrl}, ${retriesLeft === 0 ? "no retries left." : "retrying..."} (${e4})`);
            }
          }
        } else if (source.type === "raw") {
          items = (0, node_stream_1.pipeline)(node_stream_1.Readable.from([source.content]), createParser("text/xml"), (error) => {
            if (error !== void 0) {
              log_1.default.warning(`Malformed sitemap content: ${error}`);
            }
          });
        }
        if (items === null) {
          continue;
        }
        for await (const item of items) {
          if (item.type === "sitemapUrl" && !visitedSitemapUrls.has(item.url)) {
            sources.push({ type: "url", url: item.url, depth: (source.depth ?? 0) + 1 });
            if (emitNestedSitemaps) {
              yield { loc: item.url, originSitemapUrl: null };
            }
          }
          if (item.type === "url") {
            yield {
              ...item,
              originSitemapUrl: source.type === "url" ? source.url : `raw://${(0, node_crypto_1.createHash)("sha256").update(source.content).digest("base64")}`
            };
          }
        }
      }
    }
    var Sitemap2 = class _Sitemap {
      constructor(urls) {
        Object.defineProperty(this, "urls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: urls
        });
      }
      /**
       * Try to load sitemap from the most common locations - `/sitemap.xml` and `/sitemap.txt`.
       * For loading based on `Sitemap` entries in `robots.txt`, the {@link RobotsTxtFile} class should be used.
       * @param url The domain URL to fetch the sitemap for.
       * @param proxyUrl A proxy to be used for fetching the sitemap file.
       */
      static async tryCommonNames(url3, proxyUrl) {
        const sitemapUrls = [];
        const sitemapUrl = new URL(url3);
        sitemapUrl.search = "";
        sitemapUrl.pathname = "/sitemap.xml";
        sitemapUrls.push(sitemapUrl.toString());
        sitemapUrl.pathname = "/sitemap.txt";
        sitemapUrls.push(sitemapUrl.toString());
        return _Sitemap.load(sitemapUrls, proxyUrl, { reportNetworkErrors: false });
      }
      /**
       * Fetch sitemap content from given URL or URLs and return URLs of referenced pages.
       * @param urls sitemap URL(s)
       * @param proxyUrl URL of a proxy to be used for fetching sitemap contents
       */
      static async load(urls, proxyUrl, parseSitemapOptions) {
        return await this.parse((Array.isArray(urls) ? urls : [urls]).map((url3) => ({ type: "url", url: url3 })), proxyUrl, parseSitemapOptions);
      }
      /**
       * Parse XML sitemap content from a string and return URLs of referenced pages. If the sitemap references other sitemaps, they will be loaded via HTTP.
       * @param content XML sitemap content
       * @param proxyUrl URL of a proxy to be used for fetching sitemap contents
       */
      static async fromXmlString(content, proxyUrl) {
        return await this.parse([{ type: "raw", content }], proxyUrl);
      }
      static async parse(sources, proxyUrl, parseSitemapOptions) {
        const urls = [];
        try {
          for await (const item of parseSitemap2(sources, proxyUrl, parseSitemapOptions)) {
            urls.push(item.loc);
          }
        } catch {
          return new _Sitemap([]);
        }
        return new _Sitemap(urls);
      }
    };
    exports.Sitemap = Sitemap2;
    async function* discoverValidSitemaps2(urls, options = {}) {
      const { proxyUrl } = options;
      const { gotScraping: gotScraping3 } = await Promise.resolve().then(() => (init_dist6(), dist_exports));
      const sitemapUrls = /* @__PURE__ */ new Set();
      const addSitemapUrl = (url3) => {
        const sizeBefore = sitemapUrls.size;
        sitemapUrls.add(url3);
        if (sitemapUrls.size > sizeBefore) {
          return url3;
        }
        return void 0;
      };
      const urlExists = (url3) => gotScraping3({
        proxyUrl,
        url: url3,
        method: "HEAD"
      }).then((response) => response.statusCode >= 200 && response.statusCode < 400);
      const discoverSitemapsForDomainUrls = async function* (hostname, domainUrls) {
        if (!hostname) {
          return;
        }
        try {
          const robotsFile = await robots_1.RobotsFile.find(domainUrls[0], proxyUrl);
          for (const sitemapUrl2 of robotsFile.getSitemaps()) {
            if (addSitemapUrl(sitemapUrl2)) {
              yield sitemapUrl2;
            }
          }
        } catch (err2) {
          log_1.default.warning(`Failed to fetch robots.txt file for ${hostname}`, { error: err2 });
        }
        const sitemapUrl = domainUrls.find((url3) => /sitemap\.(?:xml|txt)(?:\.gz)?$/i.test(url3));
        if (sitemapUrl !== void 0) {
          if (addSitemapUrl(sitemapUrl)) {
            yield sitemapUrl;
          }
        } else {
          const firstUrl = new URL(domainUrls[0]);
          const possibleSitemapPathnames = ["/sitemap.xml", "/sitemap.txt", "/sitemap_index.xml"];
          for (const pathname of possibleSitemapPathnames) {
            firstUrl.pathname = pathname;
            if (await urlExists(firstUrl.toString())) {
              if (addSitemapUrl(firstUrl.toString())) {
                yield firstUrl.toString();
              }
            }
          }
        }
      };
      const groupedUrls = urls.reduce((acc, url3) => {
        const hostname = new URL(url3)?.hostname ?? "";
        acc[hostname] ?? (acc[hostname] = []);
        acc[hostname].push(url3);
        return acc;
      }, {});
      const iterables = Object.entries(groupedUrls).map(([hostname, domainUrls]) => discoverSitemapsForDomainUrls(hostname, domainUrls));
      for await (const url3 of (0, iterables_1.mergeAsyncIterables)(...iterables)) {
        yield url3;
      }
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/robots.js
var require_robots = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/robots.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RobotsFile = exports.RobotsTxtFile = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var robots_parser_1 = tslib_1.__importDefault(require_robots_parser());
    var gotScraping_1 = require_gotScraping();
    var sitemap_1 = require_sitemap();
    var HTTPError2;
    var RobotsTxtFile2 = class _RobotsTxtFile {
      constructor(robots, proxyUrl) {
        Object.defineProperty(this, "robots", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: robots
        });
        Object.defineProperty(this, "proxyUrl", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: proxyUrl
        });
      }
      /**
       * Determine the location of a robots.txt file for a URL and fetch it.
       * @param url the URL to fetch robots.txt for
       * @param [proxyUrl] a proxy to be used for fetching the robots.txt file
       */
      static async find(url3, proxyUrl) {
        const robotsTxtFileUrl = new URL(url3);
        robotsTxtFileUrl.pathname = "/robots.txt";
        robotsTxtFileUrl.search = "";
        return _RobotsTxtFile.load(robotsTxtFileUrl.toString(), proxyUrl);
      }
      /**
       * Allows providing the URL and robots.txt content explicitly instead of loading it from the target site.
       * @param url the URL for robots.txt file
       * @param content contents of robots.txt
       * @param [proxyUrl] a proxy to be used for fetching the robots.txt file
       */
      static from(url3, content, proxyUrl) {
        return new _RobotsTxtFile((0, robots_parser_1.default)(url3, content), proxyUrl);
      }
      static async load(url3, proxyUrl) {
        if (!HTTPError2) {
          HTTPError2 = (await Promise.resolve().then(() => (init_dist6(), dist_exports))).HTTPError;
        }
        try {
          const response = await (0, gotScraping_1.gotScraping)({
            url: url3,
            proxyUrl,
            method: "GET",
            responseType: "text"
          });
          return new _RobotsTxtFile((0, robots_parser_1.default)(url3.toString(), response.body), proxyUrl);
        } catch (e4) {
          if (e4 instanceof HTTPError2 && e4.response.statusCode === 404) {
            return new _RobotsTxtFile({
              isAllowed() {
                return true;
              },
              getSitemaps() {
                return [];
              }
            }, proxyUrl);
          }
          throw e4;
        }
      }
      /**
       * Check if a URL should be crawled by robots.
       * @param url the URL to check against the rules in robots.txt
       * @param [userAgent] relevant user agent, default to `*`
       */
      isAllowed(url3, userAgent = "*") {
        return this.robots.isAllowed(url3, userAgent) ?? true;
      }
      /**
       * Get URLs of sitemaps referenced in the robots file.
       */
      getSitemaps() {
        return this.robots.getSitemaps();
      }
      /**
       * Parse all the sitemaps referenced in the robots file.
       */
      async parseSitemaps() {
        return sitemap_1.Sitemap.load(this.robots.getSitemaps(), this.proxyUrl);
      }
      /**
       * Get all URLs from all the sitemaps referenced in the robots file. A shorthand for `(await robots.parseSitemaps()).urls`.
       */
      async parseUrlsFromSitemaps() {
        return (await this.parseSitemaps()).urls;
      }
    };
    exports.RobotsTxtFile = RobotsTxtFile2;
    exports.RobotsFile = RobotsTxtFile2;
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/url.js
var require_url = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/url.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.applySearchParams = applySearchParams2;
    function applySearchParams2(url3, searchParams) {
      if (searchParams === void 0) {
        return;
      }
      if (typeof searchParams === "string") {
        url3.search = searchParams;
        return;
      }
      let newSearchParams;
      if (searchParams instanceof URLSearchParams) {
        newSearchParams = searchParams;
      } else {
        newSearchParams = new URLSearchParams();
        for (const [key, value2] of Object.entries(newSearchParams)) {
          if (value2 === void 0) {
            newSearchParams.delete(key);
          } else if (value2 === null) {
            newSearchParams.append(key, "");
          } else {
            newSearchParams.append(key, value2);
          }
        }
      }
      url3.search = newSearchParams.toString();
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/systemInfoV2/cpu-info.js
var require_cpu_info = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/systemInfoV2/cpu-info.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getCurrentCpuTicks = getCurrentCpuTicks;
    exports.getCpuQuota = getCpuQuota;
    exports.getCpuPeriod = getCpuPeriod;
    exports.getContainerCpuUsage = getContainerCpuUsage;
    exports.getSystemCpuUsage = getSystemCpuUsage;
    exports.sampleCpuUsage = sampleCpuUsage;
    exports.getCurrentCpuTicksV2 = getCurrentCpuTicksV22;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_child_process_1 = __require("node:child_process");
    var promises_1 = __require("node:fs/promises");
    var node_os_1 = tslib_1.__importDefault(__require("node:os"));
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var general_1 = require_general2();
    var CPU_FILE_PATHS = {
      STAT: {
        V1: "/sys/fs/cgroup/cpuacct/cpuacct.usage",
        V2: "/sys/fs/cgroup/cpu.stat"
      },
      QUOTA: {
        V1: "/sys/fs/cgroup/cpu/cpu.cfs_quota_us",
        V2: "/sys/fs/cgroup/cpu.max"
      },
      PERIOD: {
        V1: "/sys/fs/cgroup/cpu/cpu.cfs_period_us",
        V2: "/sys/fs/cgroup/cpu.max"
      }
    };
    var CLOCK_TICKS_PER_SECOND = 100;
    var CLOCK_TICKS_CHECKED = false;
    var NANOSECONDS_PER_SECOND = 1e9;
    var previousTicks = { idle: 0, total: 0 };
    function getCurrentCpuTicks() {
      const cpusCores = node_os_1.default.cpus();
      const ticks = cpusCores.reduce((acc, cpu) => {
        const cpuTimes = Object.values(cpu.times);
        return {
          idle: acc.idle + cpu.times.idle,
          total: acc.total + cpuTimes.reduce((sum, num) => sum + num)
        };
      }, { idle: 0, total: 0 });
      const idleTicksDelta = ticks.idle - previousTicks.idle;
      const totalTicksDelta = ticks.total - previousTicks.total;
      return totalTicksDelta ? 1 - idleTicksDelta / totalTicksDelta : 0;
    }
    function getClockTicks() {
      try {
        const result = (0, node_child_process_1.execSync)("getconf CLK_TCK").toString().trim();
        return parseInt(result, 10);
      } catch (err2) {
        log_1.default.warningOnce("Failed to get clock ticks; defaulting to 100");
        return 100;
      }
    }
    async function getCpuQuota(cgroupsVersion) {
      if (cgroupsVersion === "V1") {
        const quotaStr = await (0, promises_1.readFile)(CPU_FILE_PATHS.QUOTA.V1, "utf8");
        const quota = parseInt(quotaStr.trim(), 10);
        return quota === -1 ? null : quota;
      }
      const maxStr = await (0, promises_1.readFile)(CPU_FILE_PATHS.QUOTA.V2, "utf8");
      const parts = maxStr.trim().split(/\s+/);
      if (parts[0] === "max") {
        return null;
      }
      return parseInt(parts[0], 10);
    }
    async function getCpuPeriod(cgroupsVersion) {
      if (cgroupsVersion === "V1") {
        const quotaStr = await (0, promises_1.readFile)(CPU_FILE_PATHS.PERIOD.V1, "utf8");
        const quota = parseInt(quotaStr.trim(), 10);
        return quota;
      }
      const maxStr = await (0, promises_1.readFile)(CPU_FILE_PATHS.PERIOD.V2, "utf8");
      const parts = maxStr.trim().split(/\s+/);
      return parseInt(parts[1], 10);
    }
    async function getContainerCpuUsage(cgroupsVersion) {
      if (cgroupsVersion === "V1") {
        const data3 = await (0, promises_1.readFile)(CPU_FILE_PATHS.STAT.V1, "utf8");
        return Number(data3.trim());
      }
      const data2 = await (0, promises_1.readFile)(CPU_FILE_PATHS.STAT.V2, "utf8");
      const lines = data2.split("\n");
      let usageUsec = 0;
      for (const line2 of lines) {
        const parts = line2.trim().split(/\s+/);
        if (parts[0] === "usage_usec") {
          usageUsec = Number(parts[1]);
          break;
        }
      }
      return usageUsec * 1e3;
    }
    async function getSystemCpuUsage() {
      const statData = await (0, promises_1.readFile)("/proc/stat", "utf8");
      const lines = statData.split("\n");
      for (const line2 of lines) {
        if (line2.startsWith("cpu ")) {
          const parts = line2.split(/\s+/).slice(1, 8);
          let totalTicks = 0;
          for (const part of parts) {
            totalTicks += Number(part);
          }
          return totalTicks * NANOSECONDS_PER_SECOND / CLOCK_TICKS_PER_SECOND;
        }
      }
      throw new Error("no cpu line");
    }
    async function sampleCpuUsage(cGroupsVersion) {
      const [containerUsage, systemUsage] = await Promise.all([
        getContainerCpuUsage(cGroupsVersion),
        getSystemCpuUsage()
      ]);
      return { containerUsage, systemUsage };
    }
    var previousSample = { containerUsage: 0, systemUsage: 0 };
    async function getCurrentCpuTicksV22(containerized = false) {
      try {
        if (!containerized) {
          return getCurrentCpuTicks();
        }
        if (!CLOCK_TICKS_CHECKED) {
          CLOCK_TICKS_PER_SECOND = getClockTicks();
          CLOCK_TICKS_CHECKED = true;
        }
        const cgroupsVersion = await (0, general_1.getCgroupsVersion)();
        if (cgroupsVersion === null) {
          log_1.default.deprecated("Your environment is containerized, but your system does not support cgroups.\nIf you're running containers with limited cpu, cpu auto-scaling will not work properly.");
          return getCurrentCpuTicks();
        }
        const quota = await getCpuQuota(cgroupsVersion);
        if (quota === null) {
          return getCurrentCpuTicks();
        }
        const period = await getCpuPeriod(cgroupsVersion);
        const cpuAllowance = quota / period;
        const sample = await sampleCpuUsage(cgroupsVersion);
        const containerDelta = sample.containerUsage - previousSample.containerUsage;
        const systemDelta = sample.systemUsage - previousSample.systemUsage;
        previousSample = sample;
        const numCpus = node_os_1.default.cpus().length;
        return containerDelta / systemDelta * numCpus / cpuAllowance;
      } catch (err2) {
        log_1.default.exception(err2, "Cpu snapshot failed.");
        return getCurrentCpuTicks();
      }
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/systemInfoV2/ps-tree.js
var require_ps_tree2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/systemInfoV2/ps-tree.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.psTree = psTree;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_child_process_1 = __require("node:child_process");
    var readline = tslib_1.__importStar(__require("node:readline"));
    async function psTree(pid, includeRoot = false) {
      return new Promise((resolve4, reject) => {
        if (typeof pid === "number") {
          pid = pid.toString();
        }
        let processLister;
        if (process.platform === "win32") {
          processLister = (0, node_child_process_1.spawn)("powershell", [
            "-NoProfile",
            "-Command",
            "Get-CimInstance Win32_Process | Format-Table ProcessId,ParentProcessId,WorkingSetSize,Name"
          ]);
        } else {
          processLister = (0, node_child_process_1.spawn)("ps", ["-A", "-o", "ppid,pid,stat,rss,comm"]);
        }
        processLister.on("error", reject);
        if (!processLister.stdout) {
          reject(new Error("Child process stdout is null"));
          return;
        }
        const rl = readline.createInterface({
          input: processLister.stdout
        });
        const rows = [];
        let headers = null;
        rl.on("line", (line2) => {
          const trimmed = line2.trim();
          if (trimmed === "") {
            return;
          }
          const fields = trimmed.split(/\s+/);
          if (headers !== null && fields.every((field) => /^-+$/.test(field))) {
            return;
          }
          if (!headers) {
            headers = fields.map(normalizeHeader2);
            return;
          }
          const columns = fields.slice();
          const row = {};
          const hdrs = headers.slice();
          for (const [index2, header] of hdrs.entries()) {
            let value2;
            if (index2 === hdrs.length - 1) {
              value2 = columns.join(" ");
            } else {
              value2 = columns.shift();
            }
            if (header === "RSS") {
              row[header] = Number.parseInt(value2, 10);
              if (process.platform !== "win32") {
                row[header] *= 1024;
              }
            } else {
              row[header] = value2;
            }
          }
          if (process.platform === "win32") {
            row.STAT = null;
          }
          rows.push(row);
        });
        rl.on("close", () => {
          const parents = {};
          const children = [];
          parents[pid] = true;
          rows.forEach((proc) => {
            if (proc.COMMAND === "ps" || proc.COMMAND === "powershell.exe") {
              return;
            }
            if (parents[proc.PPID]) {
              parents[proc.PID] = true;
              children.push(proc);
            } else if (includeRoot && pid === proc.PID) {
              children.push(proc);
            }
          });
          resolve4(children);
        });
        processLister.stdout.on("error", reject);
      });
    }
    function normalizeHeader2(str) {
      if (process.platform !== "win32") {
        if (str === "COMM")
          return "COMMAND";
        return str;
      }
      switch (str) {
        case "Name":
          return "COMMAND";
        case "ParentProcessId":
          return "PPID";
        case "ProcessId":
          return "PID";
        case "Status":
          return "STAT";
        case "WorkingSetSize":
          return "RSS";
        default:
          throw new Error(`Unknown process listing header: ${str}`);
      }
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/systemInfoV2/memory-info.js
var require_memory_info2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/systemInfoV2/memory-info.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getMemoryInfoV2 = getMemoryInfoV22;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_child_process_1 = __require("node:child_process");
    var promises_1 = __require("node:fs/promises");
    var node_os_1 = __require("node:os");
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var general_1 = require_general2();
    var ps_tree_1 = require_ps_tree2();
    var MEMORY_FILE_PATHS = {
      TOTAL: {
        V1: "/sys/fs/cgroup/memory/memory.limit_in_bytes",
        V2: "/sys/fs/cgroup/memory.max"
      },
      USED: {
        V1: "/sys/fs/cgroup/memory/memory.usage_in_bytes",
        V2: "/sys/fs/cgroup/memory.current"
      }
    };
    async function getMemoryInfoV22(containerized = false) {
      let mainProcessBytes = -1;
      let childProcessesBytes = 0;
      if ((0, general_1.isLambda)()) {
        mainProcessBytes = process.memoryUsage().rss;
        const memInfo = (0, node_child_process_1.execSync)("cat /proc/meminfo").toString();
        const values = memInfo.split(/[\n: ]/).filter((val) => val.trim());
        childProcessesBytes = +values[19] * 1e3 - mainProcessBytes;
      } else {
        const processes = await (0, ps_tree_1.psTree)(process.pid, true);
        processes.forEach((rec) => {
          if (rec.PID === `${process.pid}`) {
            mainProcessBytes = rec.RSS;
            return;
          }
          childProcessesBytes += rec.RSS;
        });
      }
      let totalBytes;
      let usedBytes;
      let freeBytes;
      if ((0, general_1.isLambda)()) {
        totalBytes = parseInt(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE, 10) * 1e6;
        usedBytes = mainProcessBytes + childProcessesBytes;
        freeBytes = totalBytes - usedBytes;
        log_1.default.debug(`lambda size of ${totalBytes} with ${freeBytes} free bytes`);
      } else if (containerized) {
        const cgroupsVersion = await (0, general_1.getCgroupsVersion)();
        try {
          if (cgroupsVersion === null) {
            throw new Error("cgroup not available");
          }
          let [totalBytesStr, usedBytesStr] = await Promise.all([
            (0, promises_1.readFile)(MEMORY_FILE_PATHS.TOTAL[cgroupsVersion], "utf8"),
            (0, promises_1.readFile)(MEMORY_FILE_PATHS.USED[cgroupsVersion], "utf8")
          ]);
          totalBytesStr = totalBytesStr.replace(/[^a-zA-Z0-9 ]/g, "");
          usedBytesStr = usedBytesStr.replace(/[^a-zA-Z0-9 ]/g, "");
          if (totalBytesStr === "max") {
            totalBytes = (0, node_os_1.totalmem)();
          } else {
            totalBytes = parseInt(totalBytesStr, 10);
            const containerRunsWithUnlimitedMemory = totalBytes > Number.MAX_SAFE_INTEGER;
            if (containerRunsWithUnlimitedMemory)
              totalBytes = (0, node_os_1.totalmem)();
          }
          usedBytes = parseInt(usedBytesStr, 10);
          freeBytes = totalBytes - usedBytes;
        } catch (err2) {
          log_1.default.deprecated(`Your environment is containerized, but your system does not support memory cgroups. If you're running containers with limited memory, memory auto-scaling will not work properly.

Cause: ${err2.message}`);
          totalBytes = (0, node_os_1.totalmem)();
          freeBytes = (0, node_os_1.freemem)();
          usedBytes = totalBytes - freeBytes;
        }
      } else {
        totalBytes = (0, node_os_1.totalmem)();
        freeBytes = (0, node_os_1.freemem)();
        usedBytes = totalBytes - freeBytes;
      }
      return {
        totalBytes,
        freeBytes,
        usedBytes,
        mainProcessBytes,
        childProcessesBytes
      };
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/index.js
var require_utils9 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getMemoryInfoV2 = exports.getCurrentCpuTicksV2 = exports.social = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_blocked(), exports);
    tslib_1.__exportStar(require_cheerio2(), exports);
    tslib_1.__exportStar(require_chunk(), exports);
    tslib_1.__exportStar(require_extract_urls(), exports);
    tslib_1.__exportStar(require_general2(), exports);
    tslib_1.__exportStar(require_memory_info(), exports);
    tslib_1.__exportStar(require_debug(), exports);
    exports.social = tslib_1.__importStar(require_social());
    tslib_1.__exportStar(require_typedefs(), exports);
    tslib_1.__exportStar(require_open_graph_parser(), exports);
    tslib_1.__exportStar(require_gotScraping(), exports);
    tslib_1.__exportStar(require_iterables(), exports);
    tslib_1.__exportStar(require_robots(), exports);
    tslib_1.__exportStar(require_sitemap(), exports);
    tslib_1.__exportStar(require_url(), exports);
    var cpu_info_1 = require_cpu_info();
    Object.defineProperty(exports, "getCurrentCpuTicksV2", { enumerable: true, get: function() {
      return cpu_info_1.getCurrentCpuTicksV2;
    } });
    var memory_info_1 = require_memory_info2();
    Object.defineProperty(exports, "getMemoryInfoV2", { enumerable: true, get: function() {
      return memory_info_1.getMemoryInfoV2;
    } });
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/events/local_event_manager.js
var require_local_event_manager = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/events/local_event_manager.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.LocalEventManager = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_os_1 = tslib_1.__importDefault(__require("node:os"));
    var utils_1 = require_utils9();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var utilities_1 = require_cjs4();
    var event_manager_1 = require_event_manager();
    var LocalEventManager2 = class extends event_manager_1.EventManager {
      constructor() {
        super(...arguments);
        Object.defineProperty(this, "previousTicks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: { idle: 0, total: 0 }
        });
      }
      /**
       * Initializes the EventManager and sets up periodic `systemInfo` and `persistState` events.
       * This is automatically called at the beginning of `crawler.run()`.
       */
      async init() {
        if (this.initialized) {
          return;
        }
        await super.init();
        const systemInfoIntervalMillis = this.config.get("systemInfoIntervalMillis");
        this.emitSystemInfoEvent = this.emitSystemInfoEvent.bind(this);
        this.intervals.systemInfo = (0, utilities_1.betterSetInterval)(this.emitSystemInfoEvent.bind(this), systemInfoIntervalMillis);
      }
      /**
       * @inheritDoc
       */
      async close() {
        if (!this.initialized) {
          return;
        }
        await super.close();
        (0, utilities_1.betterClearInterval)(this.intervals.systemInfo);
      }
      /**
       * @internal
       */
      async emitSystemInfoEvent(intervalCallback) {
        const info = await this.createSystemInfo({
          maxUsedCpuRatio: this.config.get("maxUsedCpuRatio")
        });
        this.events.emit("systemInfo", info);
        intervalCallback();
      }
      /**
       * @internal
       */
      async isContainerizedWrapper() {
        return this.config.get("containerized", await (0, utils_1.isContainerized)());
      }
      getCurrentCpuTicks() {
        const cpus = node_os_1.default.cpus();
        return cpus.reduce((acc, cpu) => {
          const cpuTimes = Object.values(cpu.times);
          return {
            idle: acc.idle + cpu.times.idle,
            total: acc.total + cpuTimes.reduce((sum, num) => sum + num)
          };
        }, { idle: 0, total: 0 });
      }
      /**
       * Creates a SystemInfo object based on local metrics.
       */
      async createSystemInfo(options) {
        return {
          createdAt: /* @__PURE__ */ new Date(),
          ...await this.createCpuInfo(options),
          ...await this.createMemoryInfo()
        };
      }
      async createCpuInfo(options) {
        if (this.config.get("systemInfoV2")) {
          const usedCpuRatio2 = await (0, utils_1.getCurrentCpuTicksV2)(await this.isContainerizedWrapper());
          return {
            cpuCurrentUsage: usedCpuRatio2 * 100,
            isCpuOverloaded: usedCpuRatio2 > options.maxUsedCpuRatio
          };
        }
        const ticks = this.getCurrentCpuTicks();
        const idleTicksDelta = ticks.idle - this.previousTicks.idle;
        const totalTicksDelta = ticks.total - this.previousTicks.total;
        const usedCpuRatio = totalTicksDelta ? 1 - idleTicksDelta / totalTicksDelta : 0;
        Object.assign(this.previousTicks, ticks);
        return {
          cpuCurrentUsage: usedCpuRatio * 100,
          isCpuOverloaded: usedCpuRatio > options.maxUsedCpuRatio
        };
      }
      async createMemoryInfo() {
        try {
          if (this.config.get("systemInfoV2")) {
            const memInfo2 = await (0, utils_1.getMemoryInfoV2)(await this.isContainerizedWrapper());
            return {
              memCurrentBytes: memInfo2.mainProcessBytes + memInfo2.childProcessesBytes
            };
          }
          const memInfo = await (0, utils_1.getMemoryInfo)();
          return {
            memCurrentBytes: memInfo.mainProcessBytes + memInfo.childProcessesBytes
          };
        } catch (err2) {
          log_1.default.exception(err2, "Memory snapshot failed.");
          return {};
        }
      }
    };
    exports.LocalEventManager = LocalEventManager2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/events/index.js
var require_events = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/events/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_event_manager(), exports);
    tslib_1.__exportStar(require_local_event_manager(), exports);
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/typedefs.js
var require_typedefs2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/typedefs.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.entries = entries3;
    exports.keys = keys2;
    function entries3(obj) {
      return Object.entries(obj);
    }
    function keys2(obj) {
      return Object.keys(obj);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/configuration.js
var require_configuration = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/configuration.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Configuration = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_async_hooks_1 = __require("node:async_hooks");
    var node_events_1 = __require("node:events");
    var node_path_1 = __require("node:path");
    var memory_storage_1 = require_memory_storage2();
    var fs_extra_1 = require_lib();
    var log_1 = tslib_1.__importStar(require_cjs3());
    var events_1 = require_events();
    var typedefs_1 = require_typedefs2();
    var Configuration2 = class _Configuration {
      /**
       * Creates new `Configuration` instance with provided options. Env vars will have precedence over those.
       */
      constructor(options = {}) {
        Object.defineProperty(this, "options", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "services", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "storageManagers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        this.buildOptions(options);
        node_events_1.EventEmitter.defaultMaxListeners = 50;
        const logLevel = this.get("logLevel");
        if (logLevel) {
          const level = Number.isFinite(+logLevel) ? +logLevel : log_1.LogLevel[String(logLevel).toUpperCase()];
          log_1.default.setLevel(level);
        }
      }
      /**
       * Returns configured value. First checks the environment variables, then provided configuration,
       * fallbacks to the `defaultValue` argument if provided, otherwise uses the default value as described
       * in the above section.
       */
      get(key, defaultValue) {
        let envValue;
        for (const [k3, v3] of (0, typedefs_1.entries)(_Configuration.ENV_MAP)) {
          if (key === v3) {
            envValue = process.env[k3];
            if (envValue) {
              break;
            }
          }
        }
        if (envValue != null) {
          return this._castEnvValue(key, envValue);
        }
        if (this.options.has(key)) {
          return this.options.get(key);
        }
        return defaultValue ?? _Configuration.DEFAULTS[key] ?? envValue;
      }
      _castEnvValue(key, value2) {
        if (_Configuration.INTEGER_VARS.includes(key)) {
          return +value2;
        }
        if (_Configuration.BOOLEAN_VARS.includes(key)) {
          return !["0", "false", ""].includes(String(value2).toLowerCase());
        }
        if (_Configuration.COMMA_SEPARATED_LIST_VARS.includes(key)) {
          if (!value2)
            return [];
          return String(value2).split(",").map((v3) => v3.trim());
        }
        return value2;
      }
      /**
       * Sets value for given option. Only affects this `Configuration` instance, the value will not be propagated down to the env var.
       * To reset a value, we can omit the `value` argument or pass `undefined` there.
       */
      set(key, value2) {
        this.options.set(key, value2);
      }
      /**
       * Sets value for given option. Only affects the global `Configuration` instance, the value will not be propagated down to the env var.
       * To reset a value, we can omit the `value` argument or pass `undefined` there.
       */
      static set(key, value2) {
        this.getGlobalConfig().set(key, value2);
      }
      /**
       * Returns cached instance of {@link StorageClient} using options as defined in the environment variables or in
       * this {@link Configuration} instance. Only first call of this method will create the client, following calls will
       * return the same client instance.
       *
       * Caching works based on the `storageClientOptions`, so calling this method with different options will return
       * multiple instances, one for each variant of the options.
       * @internal
       */
      getStorageClient() {
        if (this.options.has("storageClient")) {
          return this.options.get("storageClient");
        }
        const options = this.options.get("storageClientOptions");
        return this.createMemoryStorage(options);
      }
      getEventManager() {
        if (this.options.has("eventManager")) {
          return this.options.get("eventManager");
        }
        if (this.services.has("eventManager")) {
          return this.services.get("eventManager");
        }
        const eventManager = new events_1.LocalEventManager(this);
        this.services.set("eventManager", eventManager);
        return eventManager;
      }
      /**
       * Creates an instance of MemoryStorage using options as defined in the environment variables or in this `Configuration` instance.
       * @internal
       */
      createMemoryStorage(options = {}) {
        const cacheKey = `MemoryStorage-${JSON.stringify(options)}`;
        if (this.services.has(cacheKey)) {
          return this.services.get(cacheKey);
        }
        const storage2 = new memory_storage_1.MemoryStorage({
          persistStorage: this.get("persistStorage"),
          // Override persistStorage if user provides it via storageClientOptions
          ...options
        });
        this.services.set(cacheKey, storage2);
        return storage2;
      }
      useStorageClient(client) {
        this.options.set("storageClient", client);
      }
      static useStorageClient(client) {
        this.getGlobalConfig().useStorageClient(client);
      }
      useEventManager(events2) {
        this.options.set("eventManager", events2);
      }
      /**
       * Returns the global configuration instance. It will respect the environment variables.
       */
      static getGlobalConfig() {
        if (_Configuration.storage.getStore()) {
          return _Configuration.storage.getStore();
        }
        _Configuration.globalConfig ?? (_Configuration.globalConfig = new _Configuration());
        return _Configuration.globalConfig;
      }
      /**
       * Gets default {@link StorageClient} instance.
       */
      static getStorageClient() {
        return this.getGlobalConfig().getStorageClient();
      }
      /**
       * Gets default {@link EventManager} instance.
       */
      static getEventManager() {
        return this.getGlobalConfig().getEventManager();
      }
      /**
       * Resets global configuration instance. The default instance holds configuration based on env vars,
       * if we want to change them, we need to first reset the global state. Used mainly for testing purposes.
       */
      static resetGlobalState() {
        delete this.globalConfig;
      }
      buildOptions(options) {
        const path3 = (0, node_path_1.join)(process.cwd(), "crawlee.json");
        if ((0, fs_extra_1.pathExistsSync)(path3)) {
          try {
            const file = (0, fs_extra_1.readFileSync)(path3);
            const optionsFromFileConfig = JSON.parse(file.toString());
            Object.assign(options, optionsFromFileConfig);
          } catch {
          }
        }
        this.options = new Map((0, typedefs_1.entries)(options));
      }
    };
    exports.Configuration = Configuration2;
    Object.defineProperty(Configuration2, "ENV_MAP", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        CRAWLEE_AVAILABLE_MEMORY_RATIO: "availableMemoryRatio",
        CRAWLEE_PURGE_ON_START: "purgeOnStart",
        CRAWLEE_MEMORY_MBYTES: "memoryMbytes",
        CRAWLEE_DEFAULT_DATASET_ID: "defaultDatasetId",
        CRAWLEE_DEFAULT_KEY_VALUE_STORE_ID: "defaultKeyValueStoreId",
        CRAWLEE_DEFAULT_REQUEST_QUEUE_ID: "defaultRequestQueueId",
        CRAWLEE_INPUT_KEY: "inputKey",
        CRAWLEE_PERSIST_STATE_INTERVAL_MILLIS: "persistStateIntervalMillis",
        CRAWLEE_HEADLESS: "headless",
        CRAWLEE_XVFB: "xvfb",
        CRAWLEE_CHROME_EXECUTABLE_PATH: "chromeExecutablePath",
        CRAWLEE_DEFAULT_BROWSER_PATH: "defaultBrowserPath",
        CRAWLEE_DISABLE_BROWSER_SANDBOX: "disableBrowserSandbox",
        CRAWLEE_LOG_LEVEL: "logLevel",
        CRAWLEE_PERSIST_STORAGE: "persistStorage",
        CRAWLEE_SYSTEM_INFO_V2: "systemInfoV2",
        CRAWLEE_CONTAINERIZED: "containerized"
      }
    });
    Object.defineProperty(Configuration2, "BOOLEAN_VARS", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: [
        "purgeOnStart",
        "headless",
        "xvfb",
        "disableBrowserSandbox",
        "persistStorage",
        "systemInfoV2",
        "containerized"
      ]
    });
    Object.defineProperty(Configuration2, "INTEGER_VARS", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: ["memoryMbytes", "persistStateIntervalMillis", "systemInfoIntervalMillis"]
    });
    Object.defineProperty(Configuration2, "COMMA_SEPARATED_LIST_VARS", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: []
    });
    Object.defineProperty(Configuration2, "DEFAULTS", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        defaultKeyValueStoreId: "default",
        defaultDatasetId: "default",
        defaultRequestQueueId: "default",
        inputKey: "INPUT",
        maxUsedCpuRatio: 0.95,
        availableMemoryRatio: 0.25,
        storageClientOptions: {},
        purgeOnStart: true,
        headless: true,
        persistStateIntervalMillis: 6e4,
        systemInfoIntervalMillis: 1e3,
        persistStorage: true,
        systemInfoV2: true
      }
    });
    Object.defineProperty(Configuration2, "storage", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: new node_async_hooks_1.AsyncLocalStorage()
    });
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/log.js
var require_log = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/log.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.LoggerText = exports.LoggerJson = exports.Logger = exports.LogLevel = exports.Log = exports.log = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var log_1 = tslib_1.__importStar(require_cjs3());
    exports.log = log_1.default;
    Object.defineProperty(exports, "Log", { enumerable: true, get: function() {
      return log_1.Log;
    } });
    Object.defineProperty(exports, "Logger", { enumerable: true, get: function() {
      return log_1.Logger;
    } });
    Object.defineProperty(exports, "LoggerJson", { enumerable: true, get: function() {
      return log_1.LoggerJson;
    } });
    Object.defineProperty(exports, "LoggerText", { enumerable: true, get: function() {
      return log_1.LoggerText;
    } });
    Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function() {
      return log_1.LogLevel;
    } });
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/autoscaling/snapshotter.js
var require_snapshotter = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/autoscaling/snapshotter.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Snapshotter = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var utils_1 = require_utils9();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var utilities_1 = require_cjs4();
    var configuration_1 = require_configuration();
    var log_1 = require_log();
    var RESERVE_MEMORY_RATIO = 0.5;
    var CLIENT_RATE_LIMIT_ERROR_RETRY_COUNT = 2;
    var CRITICAL_OVERLOAD_RATE_LIMIT_MILLIS = 1e4;
    var Snapshotter2 = class {
      /**
       * @param [options] All `Snapshotter` configuration options.
       */
      constructor(options = {}) {
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "eventLoopSnapshotIntervalMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "clientSnapshotIntervalMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "snapshotHistoryMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxBlockedMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxUsedMemoryRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxClientErrors", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxMemoryBytes", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "cpuSnapshots", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "eventLoopSnapshots", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "memorySnapshots", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "clientSnapshots", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "eventLoopInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "clientInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "lastLoggedCriticalMemoryOverloadAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          eventLoopSnapshotIntervalSecs: ow_1.default.optional.number,
          clientSnapshotIntervalSecs: ow_1.default.optional.number,
          snapshotHistorySecs: ow_1.default.optional.number,
          maxBlockedMillis: ow_1.default.optional.number,
          maxUsedMemoryRatio: ow_1.default.optional.number,
          maxClientErrors: ow_1.default.optional.number,
          log: ow_1.default.optional.object,
          client: ow_1.default.optional.object,
          config: ow_1.default.optional.object
        }));
        const { eventLoopSnapshotIntervalSecs = 0.5, clientSnapshotIntervalSecs = 1, snapshotHistorySecs = 30, maxBlockedMillis = 50, maxUsedMemoryRatio = 0.9, maxClientErrors = 3, log: log2 = log_1.log, config = configuration_1.Configuration.getGlobalConfig(), client = config.getStorageClient() } = options;
        this.log = log2.child({ prefix: "Snapshotter" });
        this.client = client;
        this.config = config;
        this.events = this.config.getEventManager();
        this.eventLoopSnapshotIntervalMillis = eventLoopSnapshotIntervalSecs * 1e3;
        this.clientSnapshotIntervalMillis = clientSnapshotIntervalSecs * 1e3;
        this.snapshotHistoryMillis = snapshotHistorySecs * 1e3;
        this.maxBlockedMillis = maxBlockedMillis;
        this.maxUsedMemoryRatio = maxUsedMemoryRatio;
        this.maxClientErrors = maxClientErrors;
        this._snapshotCpu = this._snapshotCpu.bind(this);
        this._snapshotMemory = this._snapshotMemory.bind(this);
      }
      /**
       * Starts capturing snapshots at configured intervals.
       */
      async start() {
        const memoryMbytes = this.config.get("memoryMbytes", 0);
        if (memoryMbytes > 0) {
          this.maxMemoryBytes = memoryMbytes * 1024 * 1024;
        } else {
          let totalBytes;
          if (this.config.get("systemInfoV2")) {
            const containerized = this.config.get("containerized", await (0, utils_1.isContainerized)());
            const memInfo = await (0, utils_1.getMemoryInfoV2)(containerized);
            totalBytes = memInfo.totalBytes;
          } else {
            const memInfo = await (0, utils_1.getMemoryInfo)();
            totalBytes = memInfo.totalBytes;
          }
          this.maxMemoryBytes = Math.ceil(totalBytes * this.config.get("availableMemoryRatio"));
          this.log.debug(`Setting max memory of this run to ${Math.round(this.maxMemoryBytes / 1024 / 1024)} MB. Use the CRAWLEE_MEMORY_MBYTES or CRAWLEE_AVAILABLE_MEMORY_RATIO environment variable to override it.`);
        }
        this.eventLoopInterval = (0, utilities_1.betterSetInterval)(this._snapshotEventLoop.bind(this), this.eventLoopSnapshotIntervalMillis);
        this.clientInterval = (0, utilities_1.betterSetInterval)(this._snapshotClient.bind(this), this.clientSnapshotIntervalMillis);
        this.events.on("systemInfo", this._snapshotCpu);
        this.events.on("systemInfo", this._snapshotMemory);
      }
      /**
       * Stops all resource capturing.
       */
      async stop() {
        (0, utilities_1.betterClearInterval)(this.eventLoopInterval);
        (0, utilities_1.betterClearInterval)(this.clientInterval);
        this.events.off("systemInfo", this._snapshotCpu);
        this.events.off("systemInfo", this._snapshotMemory);
        await new Promise((resolve4) => {
          setImmediate(resolve4);
        });
      }
      /**
       * Returns a sample of latest memory snapshots, with the size of the sample defined
       * by the sampleDurationMillis parameter. If omitted, it returns a full snapshot history.
       */
      getMemorySample(sampleDurationMillis) {
        return this._getSample(this.memorySnapshots, sampleDurationMillis);
      }
      /**
       * Returns a sample of latest event loop snapshots, with the size of the sample defined
       * by the sampleDurationMillis parameter. If omitted, it returns a full snapshot history.
       */
      getEventLoopSample(sampleDurationMillis) {
        return this._getSample(this.eventLoopSnapshots, sampleDurationMillis);
      }
      /**
       * Returns a sample of latest CPU snapshots, with the size of the sample defined
       * by the sampleDurationMillis parameter. If omitted, it returns a full snapshot history.
       */
      getCpuSample(sampleDurationMillis) {
        return this._getSample(this.cpuSnapshots, sampleDurationMillis);
      }
      /**
       * Returns a sample of latest Client snapshots, with the size of the sample defined
       * by the sampleDurationMillis parameter. If omitted, it returns a full snapshot history.
       */
      getClientSample(sampleDurationMillis) {
        return this._getSample(this.clientSnapshots, sampleDurationMillis);
      }
      /**
       * Finds the latest snapshots by sampleDurationMillis in the provided array.
       */
      _getSample(snapshots, sampleDurationMillis) {
        if (!sampleDurationMillis)
          return snapshots;
        const sample = [];
        let idx = snapshots.length;
        if (!idx)
          return sample;
        const latestTime = snapshots[idx - 1].createdAt;
        while (idx--) {
          const snapshot = snapshots[idx];
          if (+latestTime - +snapshot.createdAt <= sampleDurationMillis) {
            sample.unshift(snapshot);
          } else {
            break;
          }
        }
        return sample;
      }
      /**
       * Creates a snapshot of current memory usage
       * using the Apify platform `systemInfo` event.
       */
      _snapshotMemory(systemInfo) {
        const createdAt = systemInfo.createdAt ? new Date(systemInfo.createdAt) : /* @__PURE__ */ new Date();
        this._pruneSnapshots(this.memorySnapshots, createdAt);
        const { memCurrentBytes } = systemInfo;
        const snapshot = {
          createdAt,
          isOverloaded: memCurrentBytes / this.maxMemoryBytes > this.maxUsedMemoryRatio,
          usedBytes: memCurrentBytes
        };
        this.memorySnapshots.push(snapshot);
        this._memoryOverloadWarning(systemInfo);
      }
      /**
       * Checks for critical memory overload and logs it to the console.
       */
      _memoryOverloadWarning(systemInfo) {
        const { memCurrentBytes } = systemInfo;
        const createdAt = systemInfo.createdAt ? new Date(systemInfo.createdAt) : /* @__PURE__ */ new Date();
        if (this.lastLoggedCriticalMemoryOverloadAt && +createdAt < +this.lastLoggedCriticalMemoryOverloadAt + CRITICAL_OVERLOAD_RATE_LIMIT_MILLIS)
          return;
        const maxDesiredMemoryBytes = this.maxUsedMemoryRatio * this.maxMemoryBytes;
        const reserveMemory = this.maxMemoryBytes * (1 - this.maxUsedMemoryRatio) * RESERVE_MEMORY_RATIO;
        const criticalOverloadBytes = maxDesiredMemoryBytes + reserveMemory;
        const isCriticalOverload = memCurrentBytes > criticalOverloadBytes;
        if (isCriticalOverload) {
          const usedPercentage = Math.round(memCurrentBytes / this.maxMemoryBytes * 100);
          const toMb = (bytes) => Math.round(bytes / 1024 ** 2);
          this.log.warning(`Memory is critically overloaded. Using ${toMb(memCurrentBytes)} MB of ${toMb(this.maxMemoryBytes)} MB (${usedPercentage}%). Consider increasing available memory.`);
          this.lastLoggedCriticalMemoryOverloadAt = createdAt;
        }
      }
      /**
       * Creates a snapshot of current event loop delay.
       */
      _snapshotEventLoop(intervalCallback) {
        const now = /* @__PURE__ */ new Date();
        this._pruneSnapshots(this.eventLoopSnapshots, now);
        const snapshot = {
          createdAt: now,
          isOverloaded: false,
          exceededMillis: 0
        };
        const previousSnapshot = this.eventLoopSnapshots[this.eventLoopSnapshots.length - 1];
        if (previousSnapshot) {
          const { createdAt } = previousSnapshot;
          const delta = now.getTime() - +createdAt - this.eventLoopSnapshotIntervalMillis;
          if (delta > this.maxBlockedMillis)
            snapshot.isOverloaded = true;
          snapshot.exceededMillis = Math.max(delta - this.maxBlockedMillis, 0);
        }
        this.eventLoopSnapshots.push(snapshot);
        intervalCallback();
      }
      /**
       * Creates a snapshot of current CPU usage using the Apify platform `systemInfo` event.
       */
      _snapshotCpu(systemInfo) {
        const { cpuCurrentUsage, isCpuOverloaded } = systemInfo;
        const createdAt = systemInfo.createdAt ? new Date(systemInfo.createdAt) : /* @__PURE__ */ new Date();
        this._pruneSnapshots(this.cpuSnapshots, createdAt);
        this.cpuSnapshots.push({
          createdAt,
          isOverloaded: isCpuOverloaded,
          usedRatio: Math.ceil(cpuCurrentUsage / 100)
        });
      }
      /**
       * Creates a snapshot of current API state by checking for
       * rate limit errors. Only errors produced by a 2nd retry
       * of the API call are considered for snapshotting since
       * earlier errors may just be caused by a random spike in
       * number of requests and do not necessarily signify API
       * overloading.
       */
      _snapshotClient(intervalCallback) {
        const now = /* @__PURE__ */ new Date();
        this._pruneSnapshots(this.clientSnapshots, now);
        const allErrorCounts = this.client.stats?.rateLimitErrors ?? [];
        const currentErrCount = allErrorCounts[CLIENT_RATE_LIMIT_ERROR_RETRY_COUNT] || 0;
        const snapshot = {
          createdAt: now,
          isOverloaded: false,
          rateLimitErrorCount: currentErrCount
        };
        const previousSnapshot = this.clientSnapshots[this.clientSnapshots.length - 1];
        if (previousSnapshot) {
          const { rateLimitErrorCount } = previousSnapshot;
          const delta = currentErrCount - rateLimitErrorCount;
          if (delta > this.maxClientErrors)
            snapshot.isOverloaded = true;
        }
        this.clientSnapshots.push(snapshot);
        intervalCallback();
      }
      /**
       * Removes snapshots that are older than the snapshotHistorySecs option
       * from the array (destructively - in place).
       */
      _pruneSnapshots(snapshots, now) {
        let oldCount = 0;
        for (let i5 = 0; i5 < snapshots.length; i5++) {
          const { createdAt } = snapshots[i5];
          if (now.getTime() - new Date(createdAt).getTime() > this.snapshotHistoryMillis)
            oldCount++;
          else
            break;
        }
        snapshots.splice(0, oldCount);
      }
    };
    exports.Snapshotter = Snapshotter2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/autoscaling/system_status.js
var require_system_status = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/autoscaling/system_status.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.SystemStatus = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var utils_1 = require_utils9();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var snapshotter_1 = require_snapshotter();
    var SystemStatus2 = class {
      constructor(options = {}) {
        Object.defineProperty(this, "currentHistoryMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxMemoryOverloadedRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxEventLoopOverloadedRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxCpuOverloadedRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxClientOverloadedRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "snapshotter", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          currentHistorySecs: ow_1.default.optional.number,
          maxMemoryOverloadedRatio: ow_1.default.optional.number,
          maxEventLoopOverloadedRatio: ow_1.default.optional.number,
          maxCpuOverloadedRatio: ow_1.default.optional.number,
          maxClientOverloadedRatio: ow_1.default.optional.number,
          snapshotter: ow_1.default.optional.object,
          config: ow_1.default.optional.object
        }));
        const { currentHistorySecs = 5, maxMemoryOverloadedRatio = 0.2, maxEventLoopOverloadedRatio = 0.6, maxCpuOverloadedRatio = 0.4, maxClientOverloadedRatio = 0.3, snapshotter, config } = options;
        this.currentHistoryMillis = currentHistorySecs * 1e3;
        this.maxMemoryOverloadedRatio = maxMemoryOverloadedRatio;
        this.maxEventLoopOverloadedRatio = maxEventLoopOverloadedRatio;
        this.maxCpuOverloadedRatio = maxCpuOverloadedRatio;
        this.maxClientOverloadedRatio = maxClientOverloadedRatio;
        this.snapshotter = snapshotter || new snapshotter_1.Snapshotter({ config });
      }
      /**
       * Returns an {@link SystemInfo} object with the following structure:
       *
       * ```javascript
       * {
       *     isSystemIdle: Boolean,
       *     memInfo: Object,
       *     eventLoopInfo: Object,
       *     cpuInfo: Object
       * }
       * ```
       *
       * Where the `isSystemIdle` property is set to `false` if the system
       * has been overloaded in the last `options.currentHistorySecs` seconds,
       * and `true` otherwise.
       */
      getCurrentStatus() {
        return this._isSystemIdle(this.currentHistoryMillis);
      }
      /**
       * Returns an {@link SystemInfo} object with the following structure:
       *
       * ```javascript
       * {
       *     isSystemIdle: Boolean,
       *     memInfo: Object,
       *     eventLoopInfo: Object,
       *     cpuInfo: Object
       * }
       * ```
       *
       * Where the `isSystemIdle` property is set to `false` if the system
       * has been overloaded in the full history of the {@link Snapshotter}
       * (which is configurable in the {@link Snapshotter}) and `true` otherwise.
       */
      getHistoricalStatus() {
        return this._isSystemIdle();
      }
      /**
       * Returns a system status object.
       */
      _isSystemIdle(sampleDurationMillis) {
        const memInfo = this._isMemoryOverloaded(sampleDurationMillis);
        const eventLoopInfo = this._isEventLoopOverloaded(sampleDurationMillis);
        const cpuInfo = this._isCpuOverloaded(sampleDurationMillis);
        const clientInfo = this._isClientOverloaded(sampleDurationMillis);
        return {
          isSystemIdle: !memInfo.isOverloaded && !eventLoopInfo.isOverloaded && !cpuInfo.isOverloaded && !clientInfo.isOverloaded,
          memInfo,
          eventLoopInfo,
          cpuInfo,
          clientInfo
        };
      }
      /**
       * Returns an object with an isOverloaded property set to true
       * if the memory has been overloaded in the last sampleDurationMillis.
       */
      _isMemoryOverloaded(sampleDurationMillis) {
        const sample = this.snapshotter.getMemorySample(sampleDurationMillis);
        return this._isSampleOverloaded(sample, this.maxMemoryOverloadedRatio);
      }
      /**
       * Returns an object with an isOverloaded property set to true
       * if the event loop has been overloaded in the last sampleDurationMillis.
       */
      _isEventLoopOverloaded(sampleDurationMillis) {
        const sample = this.snapshotter.getEventLoopSample(sampleDurationMillis);
        return this._isSampleOverloaded(sample, this.maxEventLoopOverloadedRatio);
      }
      /**
       * Returns an object with an isOverloaded property set to true
       * if the CPU has been overloaded in the last sampleDurationMillis.
       */
      _isCpuOverloaded(sampleDurationMillis) {
        const sample = this.snapshotter.getCpuSample(sampleDurationMillis);
        return this._isSampleOverloaded(sample, this.maxCpuOverloadedRatio);
      }
      /**
       * Returns an object with an isOverloaded property set to true
       * if the client has been overloaded in the last sampleDurationMillis.
       */
      _isClientOverloaded(sampleDurationMillis) {
        const sample = this.snapshotter.getClientSample(sampleDurationMillis);
        return this._isSampleOverloaded(sample, this.maxClientOverloadedRatio);
      }
      /**
       * Returns an object with sample information and an isOverloaded property
       * set to true if at least the ratio of snapshots in the sample are overloaded.
       */
      _isSampleOverloaded(sample, ratio) {
        if (sample.length === 0) {
          return {
            isOverloaded: false,
            limitRatio: ratio,
            actualRatio: 0
          };
        }
        const weights = [];
        const values = [];
        for (let i5 = 1; i5 < sample.length; i5++) {
          const previous = sample[i5 - 1];
          const current = sample[i5];
          const weight = +current.createdAt - +previous.createdAt;
          weights.push(weight || 1);
          values.push(+current.isOverloaded);
        }
        const wAvg = sample.length === 1 ? +sample[0].isOverloaded : (0, utils_1.weightedAvg)(values, weights);
        return {
          isOverloaded: wAvg > ratio,
          limitRatio: ratio,
          actualRatio: Math.round(wAvg * 1e3) / 1e3
        };
      }
    };
    exports.SystemStatus = SystemStatus2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/autoscaling/autoscaled_pool.js
var require_autoscaled_pool = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/autoscaling/autoscaled_pool.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.AutoscaledPool = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var timeout_1 = require_cjs();
    var utilities_1 = require_cjs4();
    var configuration_1 = require_configuration();
    var errors_1 = require_errors();
    var log_1 = require_log();
    var snapshotter_1 = require_snapshotter();
    var system_status_1 = require_system_status();
    var AutoscaledPool2 = class {
      constructor(options, config = configuration_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "desiredConcurrencyRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "scaleUpStepRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "scaleDownStepRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maybeRunIntervalMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "loggingIntervalMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "autoscaleIntervalMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "taskTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "runTaskFunction", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "isFinishedFunction", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "isTaskReadyFunction", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxTasksPerMinute", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_minConcurrency", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_maxConcurrency", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_desiredConcurrency", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_currentConcurrency", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "isStopped", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "lastLoggingTime", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "resolve", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "reject", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "snapshotter", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "systemStatus", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "autoscaleInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maybeRunInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "queryingIsTaskReady", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "queryingIsFinished", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "tasksDonePerSecondInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_tasksPerMinute", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: Array.from({ length: 60 }, () => 0)
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          runTaskFunction: ow_1.default.function,
          isFinishedFunction: ow_1.default.function,
          isTaskReadyFunction: ow_1.default.function,
          maxConcurrency: ow_1.default.optional.number.integer.greaterThanOrEqual(1),
          minConcurrency: ow_1.default.optional.number.integer.greaterThanOrEqual(1),
          desiredConcurrency: ow_1.default.optional.number.integer.greaterThanOrEqual(1),
          desiredConcurrencyRatio: ow_1.default.optional.number.greaterThan(0).lessThan(1),
          scaleUpStepRatio: ow_1.default.optional.number.greaterThan(0).lessThan(1),
          scaleDownStepRatio: ow_1.default.optional.number.greaterThan(0).lessThan(1),
          maybeRunIntervalSecs: ow_1.default.optional.number.greaterThan(0),
          loggingIntervalSecs: ow_1.default.any(ow_1.default.number.greaterThan(0), ow_1.default.nullOrUndefined),
          autoscaleIntervalSecs: ow_1.default.optional.number.greaterThan(0),
          taskTimeoutSecs: ow_1.default.optional.number.greaterThanOrEqual(0),
          systemStatusOptions: ow_1.default.optional.object,
          snapshotterOptions: ow_1.default.optional.object,
          log: ow_1.default.optional.object,
          maxTasksPerMinute: ow_1.default.optional.number.integerOrInfinite.greaterThanOrEqual(1)
        }));
        const { runTaskFunction, isFinishedFunction, isTaskReadyFunction, maxConcurrency = 200, minConcurrency = 1, desiredConcurrency, desiredConcurrencyRatio = 0.9, scaleUpStepRatio = 0.05, scaleDownStepRatio = 0.05, maybeRunIntervalSecs = 0.5, loggingIntervalSecs = 60, taskTimeoutSecs = 0, autoscaleIntervalSecs = 10, systemStatusOptions, snapshotterOptions, log: log2 = log_1.log, maxTasksPerMinute = Infinity } = options;
        this.log = log2.child({ prefix: "AutoscaledPool" });
        this.desiredConcurrencyRatio = desiredConcurrencyRatio;
        this.scaleUpStepRatio = scaleUpStepRatio;
        this.scaleDownStepRatio = scaleDownStepRatio;
        this.maybeRunIntervalMillis = maybeRunIntervalSecs * 1e3;
        this.loggingIntervalMillis = loggingIntervalSecs * 1e3;
        this.autoscaleIntervalMillis = autoscaleIntervalSecs * 1e3;
        this.taskTimeoutMillis = taskTimeoutSecs * 1e3;
        this.runTaskFunction = runTaskFunction;
        this.isFinishedFunction = isFinishedFunction;
        this.isTaskReadyFunction = isTaskReadyFunction;
        this.maxTasksPerMinute = maxTasksPerMinute;
        this._minConcurrency = minConcurrency;
        this._maxConcurrency = maxConcurrency;
        this._desiredConcurrency = Math.min(desiredConcurrency ?? minConcurrency, maxConcurrency);
        this._currentConcurrency = 0;
        this.isStopped = false;
        this.resolve = null;
        this.reject = null;
        this._autoscale = this._autoscale.bind(this);
        this._maybeRunTask = this._maybeRunTask.bind(this);
        this._incrementTasksDonePerSecond = this._incrementTasksDonePerSecond.bind(this);
        const ssoCopy = { ...systemStatusOptions };
        ssoCopy.snapshotter ?? (ssoCopy.snapshotter = new snapshotter_1.Snapshotter({
          ...snapshotterOptions,
          log: this.log,
          config: this.config,
          client: this.config.getStorageClient()
        }));
        ssoCopy.config ?? (ssoCopy.config = this.config);
        this.snapshotter = ssoCopy.snapshotter;
        this.systemStatus = new system_status_1.SystemStatus(ssoCopy);
      }
      /**
       * Gets the minimum number of tasks running in parallel.
       */
      get minConcurrency() {
        return this._minConcurrency;
      }
      /**
       * Sets the minimum number of tasks running in parallel.
       *
       * *WARNING:* If you set this value too high with respect to the available system memory and CPU, your code might run extremely slow or crash.
       * If you're not sure, just keep the default value and the concurrency will scale up automatically.
       */
      set minConcurrency(value2) {
        (0, ow_1.default)(value2, ow_1.default.optional.number.integer.greaterThanOrEqual(1));
        this._minConcurrency = value2;
      }
      /**
       * Gets the maximum number of tasks running in parallel.
       */
      get maxConcurrency() {
        return this._maxConcurrency;
      }
      /**
       * Sets the maximum number of tasks running in parallel.
       */
      set maxConcurrency(value2) {
        (0, ow_1.default)(value2, ow_1.default.optional.number.integer.greaterThanOrEqual(1));
        this._maxConcurrency = value2;
      }
      /**
       * Gets the desired concurrency for the pool,
       * which is an estimated number of parallel tasks that the system can currently support.
       */
      get desiredConcurrency() {
        return this._desiredConcurrency;
      }
      /**
       * Sets the desired concurrency for the pool, i.e. the number of tasks that should be running
       * in parallel if there's large enough supply of tasks.
       */
      set desiredConcurrency(value2) {
        (0, ow_1.default)(value2, ow_1.default.optional.number.integer.greaterThanOrEqual(1));
        this._desiredConcurrency = value2;
      }
      /**
       * Gets the number of parallel tasks currently running in the pool.
       */
      get currentConcurrency() {
        return this._currentConcurrency;
      }
      /**
       * Runs the auto-scaled pool. Returns a promise that gets resolved or rejected once
       * all the tasks are finished or one of them fails.
       */
      async run() {
        const poolPromise = new Promise((resolve4, reject) => {
          this.resolve = resolve4;
          this.reject = reject;
        });
        await this.snapshotter.start();
        this.autoscaleInterval = (0, utilities_1.betterSetInterval)(this._autoscale, this.autoscaleIntervalMillis);
        this.maybeRunInterval = (0, utilities_1.betterSetInterval)(this._maybeRunTask, this.maybeRunIntervalMillis);
        if (this.maxTasksPerMinute !== Infinity) {
          this.tasksDonePerSecondInterval = (0, utilities_1.betterSetInterval)(this._incrementTasksDonePerSecond, 1e3);
        }
        try {
          await poolPromise;
        } finally {
          if (this.resolve)
            await this._destroy();
        }
      }
      /**
       * Aborts the run of the auto-scaled pool and destroys it. The promise returned from
       * the {@link AutoscaledPool.run} function will immediately resolve, no more new tasks
       * will be spawned and all running tasks will be left in their current state.
       *
       * Due to the nature of the tasks, auto-scaled pool cannot reliably guarantee abortion
       * of all the running tasks, therefore, no abortion is attempted and some of the tasks
       * may finish, while others may not. Essentially, auto-scaled pool doesn't care about
       * their state after the invocation of `.abort()`, but that does not mean that some
       * parts of their asynchronous chains of commands will not execute.
       */
      async abort() {
        this.isStopped = true;
        if (this.resolve) {
          this.resolve();
          await this._destroy();
        }
      }
      /**
       * Prevents the auto-scaled pool from starting new tasks, but allows the running ones to finish
       * (unlike abort, which terminates them). Used together with {@link AutoscaledPool.resume}
       *
       * The function's promise will resolve once all running tasks have completed and the pool
       * is effectively idle. If the `timeoutSecs` argument is provided, the promise will reject
       * with a timeout error after the `timeoutSecs` seconds.
       *
       * The promise returned from the {@link AutoscaledPool.run} function will not resolve
       * when `.pause()` is invoked (unlike abort, which resolves it).
       */
      async pause(timeoutSecs) {
        if (this.isStopped)
          return;
        this.isStopped = true;
        await new Promise((resolve4, reject) => {
          let timeout;
          if (timeoutSecs) {
            timeout = setTimeout(() => {
              const err2 = new Error(`The pool's running tasks did not finishin ${timeoutSecs} secs after pool.pause() invocation.`);
              reject(err2);
            }, timeoutSecs);
          }
          const interval = setInterval(() => {
            if (this._currentConcurrency <= 0) {
              if (timeout)
                clearTimeout(timeout);
              clearInterval(interval);
              resolve4();
            }
          }, this.maybeRunIntervalMillis);
        });
      }
      /**
       * Resumes the operation of the autoscaled-pool by allowing more tasks to be run.
       * Used together with {@link AutoscaledPool.pause}
       *
       * Tasks will automatically start running again in `options.maybeRunIntervalSecs`.
       */
      resume() {
        this.isStopped = false;
      }
      /**
       * Explicitly check the queue for new tasks. The AutoscaledPool checks the queue for new tasks periodically,
       * every `maybeRunIntervalSecs` seconds. If you want to trigger the processing immediately, use this method.
       */
      async notify() {
        setImmediate(this._maybeRunTask);
      }
      /**
       * Starts a new task
       * if the number of running tasks (current concurrency) is lower than desired concurrency
       * and the system is not currently overloaded
       * and this.isTaskReadyFunction() returns true.
       *
       * It doesn't allow multiple concurrent runs of this method.
       */
      async _maybeRunTask(intervalCallback) {
        this.log.perf("Attempting to run a task.");
        const done = intervalCallback || (() => {
        });
        if (this.isStopped) {
          this.log.perf("Task will not run. AutoscaledPool is stopped.");
          return done();
        }
        if (this.queryingIsTaskReady) {
          this.log.perf("Task will not run. Waiting for a ready task.");
          return done();
        }
        if (this._currentConcurrency >= this._desiredConcurrency) {
          this.log.perf("Task will not run. Desired concurrency achieved.");
          return done();
        }
        const currentStatus = this.systemStatus.getCurrentStatus();
        const { isSystemIdle } = currentStatus;
        if (!isSystemIdle && this._currentConcurrency >= this._minConcurrency) {
          this.log.perf("Task will not be run. System is overloaded.", currentStatus);
          return done();
        }
        this.queryingIsTaskReady = true;
        let isTaskReady;
        try {
          this.log.perf("Checking for ready tasks.");
          isTaskReady = await this.isTaskReadyFunction();
        } catch (e4) {
          const err2 = e4;
          this.log.perf("Checking for ready tasks failed.");
          if (this.reject) {
            this.log.exception(err2, "isTaskReadyFunction failed");
            this.reject(err2);
          }
        } finally {
          this.queryingIsTaskReady = false;
        }
        if (!isTaskReady) {
          this.log.perf("Task will not run. No tasks are ready.");
          done();
          return this._maybeFinish();
        }
        if (this._isOverMaxRequestLimit) {
          this.log.perf("Task will not run. Maximum tasks per minute reached.");
          return done();
        }
        try {
          this._currentConcurrency++;
          this._tasksPerMinute[0]++;
          setImmediate(this._maybeRunTask);
          done();
          this.log.perf("Running a task.");
          if (this.taskTimeoutMillis > 0) {
            await (0, timeout_1.addTimeoutToPromise)(async () => this.runTaskFunction(), this.taskTimeoutMillis, `runTaskFunction timed out after ${this.taskTimeoutMillis / 1e3} seconds.`);
          } else {
            await this.runTaskFunction();
          }
          this.log.perf("Task finished.");
          this._currentConcurrency--;
          setImmediate(this._maybeRunTask);
        } catch (e4) {
          const err2 = e4;
          this.log.perf("Running a task failed.");
          if (this.reject) {
            if (
              // avoid reprinting the same critical error multiple times, as it will be printed by Nodejs at the end anyway
              !(e4 instanceof errors_1.CriticalError)
            ) {
              this.log.exception(err2, "runTaskFunction failed.");
            }
            this.reject(err2);
          }
        }
        return void 0;
      }
      /**
       * Gets called every autoScaleIntervalSecs and evaluates the current system status.
       * If the system IS NOT overloaded and the settings allow it, it scales up.
       * If the system IS overloaded and the settings allow it, it scales down.
       */
      _autoscale(intervalCallback) {
        if (this.isStopped)
          return intervalCallback();
        if (this._isOverMaxRequestLimit)
          return intervalCallback();
        const systemStatus = this.systemStatus.getHistoricalStatus();
        const { isSystemIdle } = systemStatus;
        const weAreNotAtMax = this._desiredConcurrency < this._maxConcurrency;
        const minCurrentConcurrency = Math.floor(this._desiredConcurrency * this.desiredConcurrencyRatio);
        const weAreReachingDesiredConcurrency = this._currentConcurrency >= minCurrentConcurrency;
        if (isSystemIdle && weAreNotAtMax && weAreReachingDesiredConcurrency)
          this._scaleUp(systemStatus);
        const isSystemOverloaded = !isSystemIdle;
        const weAreNotAtMin = this._desiredConcurrency > this._minConcurrency;
        if (isSystemOverloaded && weAreNotAtMin)
          this._scaleDown(systemStatus);
        if (this.loggingIntervalMillis > 0) {
          const now = Date.now();
          if (this.lastLoggingTime == null) {
            this.lastLoggingTime = now;
          } else if (now > this.lastLoggingTime + this.loggingIntervalMillis) {
            this.lastLoggingTime = now;
            this.log.info("state", {
              currentConcurrency: this._currentConcurrency,
              desiredConcurrency: this._desiredConcurrency,
              systemStatus
            });
          }
        }
        return intervalCallback();
      }
      /**
       * Scales the pool up by increasing
       * the desired concurrency by the scaleUpStepRatio.
       *
       * @param systemStatus for logging
       */
      _scaleUp(systemStatus) {
        const step = Math.ceil(this._desiredConcurrency * this.scaleUpStepRatio);
        this._desiredConcurrency = Math.min(this._maxConcurrency, this._desiredConcurrency + step);
        this.log.debug("scaling up", {
          oldConcurrency: this._desiredConcurrency - step,
          newConcurrency: this._desiredConcurrency,
          systemStatus
        });
      }
      /**
       * Scales the pool down by decreasing
       * the desired concurrency by the scaleDownStepRatio.
       *
       * @param systemStatus for logging
       */
      _scaleDown(systemStatus) {
        const step = Math.ceil(this._desiredConcurrency * this.scaleDownStepRatio);
        this._desiredConcurrency = Math.max(this._minConcurrency, this._desiredConcurrency - step);
        this.log.debug("scaling down", {
          oldConcurrency: this._desiredConcurrency + step,
          newConcurrency: this._desiredConcurrency,
          systemStatus
        });
      }
      /**
       * If there are no running tasks and this.isFinishedFunction() returns true then closes
       * the pool and resolves the pool's promise returned by the run() method.
       *
       * It doesn't allow multiple concurrent runs of this method.
       */
      async _maybeFinish() {
        if (this.queryingIsFinished)
          return;
        if (this._currentConcurrency > 0)
          return;
        this.queryingIsFinished = true;
        try {
          const isFinished = await this.isFinishedFunction();
          if (isFinished && this.resolve)
            this.resolve();
        } catch (e4) {
          const err2 = e4;
          if (this.reject) {
            this.log.exception(err2, "isFinishedFunction failed.");
            this.reject(err2);
          }
        } finally {
          this.queryingIsFinished = false;
        }
      }
      /**
       * Cleans up resources.
       */
      async _destroy() {
        this.resolve = null;
        this.reject = null;
        (0, utilities_1.betterClearInterval)(this.autoscaleInterval);
        (0, utilities_1.betterClearInterval)(this.maybeRunInterval);
        if (this.tasksDonePerSecondInterval)
          (0, utilities_1.betterClearInterval)(this.tasksDonePerSecondInterval);
        if (this.snapshotter)
          await this.snapshotter.stop();
      }
      _incrementTasksDonePerSecond(intervalCallback) {
        this._tasksPerMinute.unshift(0);
        this._tasksPerMinute.pop();
        return intervalCallback();
      }
      get _isOverMaxRequestLimit() {
        if (this.maxTasksPerMinute === Infinity) {
          return false;
        }
        return this._tasksPerMinute.reduce((acc, curr) => acc + curr, 0) >= this.maxTasksPerMinute;
      }
    };
    exports.AutoscaledPool = AutoscaledPool2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/autoscaling/index.js
var require_autoscaling = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/autoscaling/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_autoscaled_pool(), exports);
    tslib_1.__exportStar(require_snapshotter(), exports);
    tslib_1.__exportStar(require_system_status(), exports);
  }
});

// ../../node_modules/.pnpm/csv-stringify@6.6.0/node_modules/csv-stringify/dist/cjs/sync.cjs
var require_sync = __commonJS({
  "../../node_modules/.pnpm/csv-stringify@6.6.0/node_modules/csv-stringify/dist/cjs/sync.cjs"(exports) {
    "use strict";
    var charCodeOfDot = ".".charCodeAt(0);
    var reEscapeChar = /\\(\\)?/g;
    var rePropName = RegExp(
      // Match anything that isn't a dot or bracket.
      `[^.[\\]]+|\\[(?:([^"'][^[]*)|(["'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))`,
      "g"
    );
    var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
    var reIsPlainProp = /^\w*$/;
    var getTag = function(value2) {
      return Object.prototype.toString.call(value2);
    };
    var isSymbol2 = function(value2) {
      const type = typeof value2;
      return type === "symbol" || type === "object" && value2 && getTag(value2) === "[object Symbol]";
    };
    var isKey = function(value2, object) {
      if (Array.isArray(value2)) {
        return false;
      }
      const type = typeof value2;
      if (type === "number" || type === "symbol" || type === "boolean" || !value2 || isSymbol2(value2)) {
        return true;
      }
      return reIsPlainProp.test(value2) || !reIsDeepProp.test(value2) || object != null && value2 in Object(object);
    };
    var stringToPath = function(string) {
      const result = [];
      if (string.charCodeAt(0) === charCodeOfDot) {
        result.push("");
      }
      string.replace(rePropName, function(match, expression, quote, subString) {
        let key = match;
        if (quote) {
          key = subString.replace(reEscapeChar, "$1");
        } else if (expression) {
          key = expression.trim();
        }
        result.push(key);
      });
      return result;
    };
    var castPath = function(value2, object) {
      if (Array.isArray(value2)) {
        return value2;
      } else {
        return isKey(value2, object) ? [value2] : stringToPath(value2);
      }
    };
    var toKey = function(value2) {
      if (typeof value2 === "string" || isSymbol2(value2)) return value2;
      const result = `${value2}`;
      return result == "0" && 1 / value2 == -INFINITY ? "-0" : result;
    };
    var get = function(object, path3) {
      path3 = castPath(path3, object);
      let index2 = 0;
      const length2 = path3.length;
      while (object != null && index2 < length2) {
        object = object[toKey(path3[index2++])];
      }
      return index2 && index2 === length2 ? object : void 0;
    };
    var is_object = function(obj) {
      return typeof obj === "object" && obj !== null && !Array.isArray(obj);
    };
    var normalize_columns = function(columns) {
      if (columns === void 0 || columns === null) {
        return [void 0, void 0];
      }
      if (typeof columns !== "object") {
        return [Error('Invalid option "columns": expect an array or an object')];
      }
      if (!Array.isArray(columns)) {
        const newcolumns = [];
        for (const k3 in columns) {
          newcolumns.push({
            key: k3,
            header: columns[k3]
          });
        }
        columns = newcolumns;
      } else {
        const newcolumns = [];
        for (const column of columns) {
          if (typeof column === "string") {
            newcolumns.push({
              key: column,
              header: column
            });
          } else if (typeof column === "object" && column !== null && !Array.isArray(column)) {
            if (!column.key) {
              return [
                Error('Invalid column definition: property "key" is required')
              ];
            }
            if (column.header === void 0) {
              column.header = column.key;
            }
            newcolumns.push(column);
          } else {
            return [
              Error("Invalid column definition: expect a string or an object")
            ];
          }
        }
        columns = newcolumns;
      }
      return [void 0, columns];
    };
    var CsvError = class _CsvError extends Error {
      constructor(code, message, ...contexts) {
        if (Array.isArray(message)) message = message.join(" ");
        super(message);
        if (Error.captureStackTrace !== void 0) {
          Error.captureStackTrace(this, _CsvError);
        }
        this.code = code;
        for (const context of contexts) {
          for (const key in context) {
            const value2 = context[key];
            this[key] = Buffer.isBuffer(value2) ? value2.toString() : value2 == null ? value2 : JSON.parse(JSON.stringify(value2));
          }
        }
      }
    };
    var underscore = function(str) {
      return str.replace(/([A-Z])/g, function(_, match) {
        return "_" + match.toLowerCase();
      });
    };
    var normalize_options = function(opts2) {
      const options = {};
      for (const opt in opts2) {
        options[underscore(opt)] = opts2[opt];
      }
      if (options.bom === void 0 || options.bom === null || options.bom === false) {
        options.bom = false;
      } else if (options.bom !== true) {
        return [
          new CsvError("CSV_OPTION_BOOLEAN_INVALID_TYPE", [
            "option `bom` is optional and must be a boolean value,",
            `got ${JSON.stringify(options.bom)}`
          ])
        ];
      }
      if (options.delimiter === void 0 || options.delimiter === null) {
        options.delimiter = ",";
      } else if (Buffer.isBuffer(options.delimiter)) {
        options.delimiter = options.delimiter.toString();
      } else if (typeof options.delimiter !== "string") {
        return [
          new CsvError("CSV_OPTION_DELIMITER_INVALID_TYPE", [
            "option `delimiter` must be a buffer or a string,",
            `got ${JSON.stringify(options.delimiter)}`
          ])
        ];
      }
      if (options.quote === void 0 || options.quote === null) {
        options.quote = '"';
      } else if (options.quote === true) {
        options.quote = '"';
      } else if (options.quote === false) {
        options.quote = "";
      } else if (Buffer.isBuffer(options.quote)) {
        options.quote = options.quote.toString();
      } else if (typeof options.quote !== "string") {
        return [
          new CsvError("CSV_OPTION_QUOTE_INVALID_TYPE", [
            "option `quote` must be a boolean, a buffer or a string,",
            `got ${JSON.stringify(options.quote)}`
          ])
        ];
      }
      if (options.quoted === void 0 || options.quoted === null) {
        options.quoted = false;
      }
      if (options.escape_formulas === void 0 || options.escape_formulas === null) {
        options.escape_formulas = false;
      } else if (typeof options.escape_formulas !== "boolean") {
        return [
          new CsvError("CSV_OPTION_ESCAPE_FORMULAS_INVALID_TYPE", [
            "option `escape_formulas` must be a boolean,",
            `got ${JSON.stringify(options.escape_formulas)}`
          ])
        ];
      }
      if (options.quoted_empty === void 0 || options.quoted_empty === null) {
        options.quoted_empty = void 0;
      }
      if (options.quoted_match === void 0 || options.quoted_match === null || options.quoted_match === false) {
        options.quoted_match = null;
      } else if (!Array.isArray(options.quoted_match)) {
        options.quoted_match = [options.quoted_match];
      }
      if (options.quoted_match) {
        for (const quoted_match of options.quoted_match) {
          const isString5 = typeof quoted_match === "string";
          const isRegExp3 = quoted_match instanceof RegExp;
          if (!isString5 && !isRegExp3) {
            return [
              Error(
                `Invalid Option: quoted_match must be a string or a regex, got ${JSON.stringify(quoted_match)}`
              )
            ];
          }
        }
      }
      if (options.quoted_string === void 0 || options.quoted_string === null) {
        options.quoted_string = false;
      }
      if (options.eof === void 0 || options.eof === null) {
        options.eof = true;
      }
      if (options.escape === void 0 || options.escape === null) {
        options.escape = '"';
      } else if (Buffer.isBuffer(options.escape)) {
        options.escape = options.escape.toString();
      } else if (typeof options.escape !== "string") {
        return [
          Error(
            `Invalid Option: escape must be a buffer or a string, got ${JSON.stringify(options.escape)}`
          )
        ];
      }
      if (options.escape.length > 1) {
        return [
          Error(
            `Invalid Option: escape must be one character, got ${options.escape.length} characters`
          )
        ];
      }
      if (options.header === void 0 || options.header === null) {
        options.header = false;
      }
      const [errColumns, columns] = normalize_columns(options.columns);
      if (errColumns !== void 0) return [errColumns];
      options.columns = columns;
      if (options.quoted === void 0 || options.quoted === null) {
        options.quoted = false;
      }
      if (options.cast === void 0 || options.cast === null) {
        options.cast = {};
      }
      if (options.cast.bigint === void 0 || options.cast.bigint === null) {
        options.cast.bigint = (value2) => "" + value2;
      }
      if (options.cast.boolean === void 0 || options.cast.boolean === null) {
        options.cast.boolean = (value2) => value2 ? "1" : "";
      }
      if (options.cast.date === void 0 || options.cast.date === null) {
        options.cast.date = (value2) => "" + value2.getTime();
      }
      if (options.cast.number === void 0 || options.cast.number === null) {
        options.cast.number = (value2) => "" + value2;
      }
      if (options.cast.object === void 0 || options.cast.object === null) {
        options.cast.object = (value2) => JSON.stringify(value2);
      }
      if (options.cast.string === void 0 || options.cast.string === null) {
        options.cast.string = function(value2) {
          return value2;
        };
      }
      if (options.on_record !== void 0 && typeof options.on_record !== "function") {
        return [Error(`Invalid Option: "on_record" must be a function.`)];
      }
      if (options.record_delimiter === void 0 || options.record_delimiter === null) {
        options.record_delimiter = "\n";
      } else if (Buffer.isBuffer(options.record_delimiter)) {
        options.record_delimiter = options.record_delimiter.toString();
      } else if (typeof options.record_delimiter !== "string") {
        return [
          Error(
            `Invalid Option: record_delimiter must be a buffer or a string, got ${JSON.stringify(options.record_delimiter)}`
          )
        ];
      }
      switch (options.record_delimiter) {
        case "unix":
          options.record_delimiter = "\n";
          break;
        case "mac":
          options.record_delimiter = "\r";
          break;
        case "windows":
          options.record_delimiter = "\r\n";
          break;
        case "ascii":
          options.record_delimiter = "";
          break;
        case "unicode":
          options.record_delimiter = "\u2028";
          break;
      }
      return [void 0, options];
    };
    var bom_utf8 = Buffer.from([239, 187, 191]);
    var stringifier = function(options, state, info) {
      return {
        options,
        state,
        info,
        __transform: function(chunk3, push) {
          if (!Array.isArray(chunk3) && typeof chunk3 !== "object") {
            return Error(
              `Invalid Record: expect an array or an object, got ${JSON.stringify(chunk3)}`
            );
          }
          if (this.info.records === 0) {
            if (Array.isArray(chunk3)) {
              if (this.options.header === true && this.options.columns === void 0) {
                return Error(
                  "Undiscoverable Columns: header option requires column option or object records"
                );
              }
            } else if (this.options.columns === void 0) {
              const [err3, columns] = normalize_columns(Object.keys(chunk3));
              if (err3) return;
              this.options.columns = columns;
            }
          }
          if (this.info.records === 0) {
            this.bom(push);
            const err3 = this.headers(push);
            if (err3) return err3;
          }
          try {
            if (this.options.on_record) {
              this.options.on_record(chunk3, this.info.records);
            }
          } catch (err3) {
            return err3;
          }
          let err2, chunk_string;
          if (this.options.eof) {
            [err2, chunk_string] = this.stringify(chunk3);
            if (err2) return err2;
            if (chunk_string === void 0) {
              return;
            } else {
              chunk_string = chunk_string + this.options.record_delimiter;
            }
          } else {
            [err2, chunk_string] = this.stringify(chunk3);
            if (err2) return err2;
            if (chunk_string === void 0) {
              return;
            } else {
              if (this.options.header || this.info.records) {
                chunk_string = this.options.record_delimiter + chunk_string;
              }
            }
          }
          this.info.records++;
          push(chunk_string);
        },
        stringify: function(chunk3, chunkIsHeader = false) {
          if (typeof chunk3 !== "object") {
            return [void 0, chunk3];
          }
          const { columns } = this.options;
          const record = [];
          if (Array.isArray(chunk3)) {
            if (columns) {
              chunk3.splice(columns.length);
            }
            for (let i5 = 0; i5 < chunk3.length; i5++) {
              const field = chunk3[i5];
              const [err2, value2] = this.__cast(field, {
                index: i5,
                column: i5,
                records: this.info.records,
                header: chunkIsHeader
              });
              if (err2) return [err2];
              record[i5] = [value2, field];
            }
          } else {
            for (let i5 = 0; i5 < columns.length; i5++) {
              const field = get(chunk3, columns[i5].key);
              const [err2, value2] = this.__cast(field, {
                index: i5,
                column: columns[i5].key,
                records: this.info.records,
                header: chunkIsHeader
              });
              if (err2) return [err2];
              record[i5] = [value2, field];
            }
          }
          let csvrecord = "";
          for (let i5 = 0; i5 < record.length; i5++) {
            let options2, err2;
            let [value2, field] = record[i5];
            if (typeof value2 === "string") {
              options2 = this.options;
            } else if (is_object(value2)) {
              options2 = value2;
              value2 = options2.value;
              delete options2.value;
              if (typeof value2 !== "string" && value2 !== void 0 && value2 !== null) {
                if (err2)
                  return [
                    Error(
                      `Invalid Casting Value: returned value must return a string, null or undefined, got ${JSON.stringify(value2)}`
                    )
                  ];
              }
              options2 = { ...this.options, ...options2 };
              [err2, options2] = normalize_options(options2);
              if (err2 !== void 0) {
                return [err2];
              }
            } else if (value2 === void 0 || value2 === null) {
              options2 = this.options;
            } else {
              return [
                Error(
                  `Invalid Casting Value: returned value must return a string, an object, null or undefined, got ${JSON.stringify(value2)}`
                )
              ];
            }
            const {
              delimiter,
              escape: escape2,
              quote,
              quoted,
              quoted_empty,
              quoted_string,
              quoted_match,
              record_delimiter,
              escape_formulas
            } = options2;
            if ("" === value2 && "" === field) {
              let quotedMatch = quoted_match && quoted_match.filter((quoted_match2) => {
                if (typeof quoted_match2 === "string") {
                  return value2.indexOf(quoted_match2) !== -1;
                } else {
                  return quoted_match2.test(value2);
                }
              });
              quotedMatch = quotedMatch && quotedMatch.length > 0;
              const shouldQuote = quotedMatch || true === quoted_empty || true === quoted_string && false !== quoted_empty;
              if (shouldQuote === true) {
                value2 = quote + value2 + quote;
              }
              csvrecord += value2;
            } else if (value2) {
              if (typeof value2 !== "string") {
                return [
                  Error(
                    `Formatter must return a string, null or undefined, got ${JSON.stringify(value2)}`
                  )
                ];
              }
              const containsdelimiter = delimiter.length && value2.indexOf(delimiter) >= 0;
              const containsQuote = quote !== "" && value2.indexOf(quote) >= 0;
              const containsEscape = value2.indexOf(escape2) >= 0 && escape2 !== quote;
              const containsRecordDelimiter = value2.indexOf(record_delimiter) >= 0;
              const quotedString = quoted_string && typeof field === "string";
              let quotedMatch = quoted_match && quoted_match.filter((quoted_match2) => {
                if (typeof quoted_match2 === "string") {
                  return value2.indexOf(quoted_match2) !== -1;
                } else {
                  return quoted_match2.test(value2);
                }
              });
              quotedMatch = quotedMatch && quotedMatch.length > 0;
              if (escape_formulas) {
                switch (value2[0]) {
                  case "=":
                  case "+":
                  case "-":
                  case "@":
                  case "	":
                  case "\r":
                  case "\uFF1D":
                  // Unicode '='
                  case "\uFF0B":
                  // Unicode '+'
                  case "\uFF0D":
                  // Unicode '-'
                  case "\uFF20":
                    value2 = `'${value2}`;
                    break;
                }
              }
              const shouldQuote = containsQuote === true || containsdelimiter || containsRecordDelimiter || quoted || quotedString || quotedMatch;
              if (shouldQuote === true && containsEscape === true) {
                const regexp = escape2 === "\\" ? new RegExp(escape2 + escape2, "g") : new RegExp(escape2, "g");
                value2 = value2.replace(regexp, escape2 + escape2);
              }
              if (containsQuote === true) {
                const regexp = new RegExp(quote, "g");
                value2 = value2.replace(regexp, escape2 + quote);
              }
              if (shouldQuote === true) {
                value2 = quote + value2 + quote;
              }
              csvrecord += value2;
            } else if (quoted_empty === true || field === "" && quoted_string === true && quoted_empty !== false) {
              csvrecord += quote + quote;
            }
            if (i5 !== record.length - 1) {
              csvrecord += delimiter;
            }
          }
          return [void 0, csvrecord];
        },
        bom: function(push) {
          if (this.options.bom !== true) {
            return;
          }
          push(bom_utf8);
        },
        headers: function(push) {
          if (this.options.header === false) {
            return;
          }
          if (this.options.columns === void 0) {
            return;
          }
          let err2;
          let headers = this.options.columns.map((column) => column.header);
          if (this.options.eof) {
            [err2, headers] = this.stringify(headers, true);
            headers += this.options.record_delimiter;
          } else {
            [err2, headers] = this.stringify(headers);
          }
          if (err2) return err2;
          push(headers);
        },
        __cast: function(value2, context) {
          const type = typeof value2;
          try {
            if (type === "string") {
              return [void 0, this.options.cast.string(value2, context)];
            } else if (type === "bigint") {
              return [void 0, this.options.cast.bigint(value2, context)];
            } else if (type === "number") {
              return [void 0, this.options.cast.number(value2, context)];
            } else if (type === "boolean") {
              return [void 0, this.options.cast.boolean(value2, context)];
            } else if (value2 instanceof Date) {
              return [void 0, this.options.cast.date(value2, context)];
            } else if (type === "object" && value2 !== null) {
              return [void 0, this.options.cast.object(value2, context)];
            } else {
              return [void 0, value2, value2];
            }
          } catch (err2) {
            return [err2];
          }
        }
      };
    };
    var stringify = function(records, opts2 = {}) {
      const data2 = [];
      const [err2, options] = normalize_options(opts2);
      if (err2 !== void 0) throw err2;
      const state = {
        stop: false
      };
      const info = {
        records: 0
      };
      const api = stringifier(options, state, info);
      for (const record of records) {
        const err3 = api.__transform(record, function(record2) {
          data2.push(record2);
        });
        if (err3 !== void 0) throw err3;
      }
      if (data2.length === 0) {
        api.bom((d3) => {
          data2.push(d3);
        });
        const err3 = api.headers((headers) => {
          data2.push(headers);
        });
        if (err3 !== void 0) throw err3;
      }
      return data2.join("");
    };
    exports.stringify = stringify;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/access_checking.js
var require_access_checking = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/access_checking.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.withCheckedStorageAccess = exports.checkStorageAccess = void 0;
    var node_async_hooks_1 = __require("node:async_hooks");
    var storage2 = new node_async_hooks_1.AsyncLocalStorage();
    var checkStorageAccess2 = () => storage2.getStore()?.checkFunction();
    exports.checkStorageAccess = checkStorageAccess2;
    var withCheckedStorageAccess2 = async (checkFunction, callback) => storage2.run({ checkFunction }, callback);
    exports.withCheckedStorageAccess = withCheckedStorageAccess2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/storage_manager.js
var require_storage_manager = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/storage_manager.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.StorageManager = void 0;
    var async_queue_1 = require_cjs6();
    var configuration_1 = require_configuration();
    var DEFAULT_ID_CONFIG_KEYS = {
      Dataset: "defaultDatasetId",
      KeyValueStore: "defaultKeyValueStoreId",
      RequestQueue: "defaultRequestQueueId"
    };
    var StorageManager2 = class _StorageManager {
      constructor(StorageConstructor, config = configuration_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "StorageConstructor", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "cache", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "storageOpenQueue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_queue_1.AsyncQueue()
        });
        this.StorageConstructor = StorageConstructor;
        this.name = this.StorageConstructor.name;
      }
      static async openStorage(storageClass, idOrName, client, config = configuration_1.Configuration.getGlobalConfig()) {
        return this.getManager(storageClass, config).openStorage(idOrName, client);
      }
      static getManager(storageClass, config = configuration_1.Configuration.getGlobalConfig()) {
        if (!config.storageManagers.has(storageClass)) {
          const manager = new _StorageManager(storageClass, config);
          config.storageManagers.set(storageClass, manager);
        }
        return config.storageManagers.get(storageClass);
      }
      /** @internal */
      static clearCache(config = configuration_1.Configuration.getGlobalConfig()) {
        config.storageManagers.forEach((manager) => {
          if (manager.name === "KeyValueStore") {
            manager.cache.forEach((item) => {
              item.clearCache?.();
            });
          }
        });
        config.storageManagers.clear();
      }
      async openStorage(idOrName, client) {
        await this.storageOpenQueue.wait();
        if (!idOrName) {
          const defaultIdConfigKey = DEFAULT_ID_CONFIG_KEYS[this.name];
          idOrName = this.config.get(defaultIdConfigKey);
        }
        const cacheKey = idOrName;
        let storage2 = this.cache.get(cacheKey);
        if (!storage2) {
          client ?? (client = this.config.getStorageClient());
          const storageObject = await this._getOrCreateStorage(idOrName, this.name, client);
          storage2 = new this.StorageConstructor({
            id: storageObject.id,
            name: storageObject.name,
            storageObject,
            client
          }, this.config);
          this._addStorageToCache(storage2);
        }
        this.storageOpenQueue.shift();
        return storage2;
      }
      closeStorage(storage2) {
        const idKey = storage2.id;
        this.cache.delete(idKey);
        if (storage2.name) {
          const nameKey = storage2.name;
          this.cache.delete(nameKey);
        }
      }
      /**
       * Helper function that first requests storage by ID and if storage doesn't exist then gets it by name.
       */
      async _getOrCreateStorage(storageIdOrName, storageConstructorName, apiClient) {
        const { createStorageClient, createStorageCollectionClient } = this._getStorageClientFactories(apiClient, storageConstructorName);
        const storageClient = createStorageClient(storageIdOrName);
        const existingStorage = await storageClient.get();
        if (existingStorage)
          return existingStorage;
        const storageCollectionClient = createStorageCollectionClient();
        return storageCollectionClient.getOrCreate(storageIdOrName);
      }
      _getStorageClientFactories(client, storageConstructorName) {
        const clientName = storageConstructorName[0].toLowerCase() + storageConstructorName.slice(1);
        const collectionClientName = `${clientName}s`;
        return {
          createStorageClient: client[clientName].bind(client),
          createStorageCollectionClient: client[collectionClientName].bind(client)
        };
      }
      _addStorageToCache(storage2) {
        const idKey = storage2.id;
        this.cache.set(idKey, storage2);
        if (storage2.name) {
          const nameKey = storage2.name;
          this.cache.set(nameKey, storage2);
        }
      }
    };
    exports.StorageManager = StorageManager2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/utils.js
var require_utils10 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.MAX_QUERIES_FOR_CONSISTENCY = exports.API_PROCESSED_REQUESTS_DELAY_MILLIS = exports.QUERY_HEAD_BUFFER = exports.STORAGE_CONSISTENCY_DELAY_MILLIS = exports.QUERY_HEAD_MIN_LENGTH = void 0;
    exports.purgeDefaultStorages = purgeDefaultStorages2;
    exports.useState = useState2;
    exports.getRequestId = getRequestId2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_crypto_1 = tslib_1.__importDefault(__require("node:crypto"));
    var configuration_1 = require_configuration();
    var key_value_store_1 = require_key_value_store3();
    async function purgeDefaultStorages2(configOrOptions, client) {
      const options = configOrOptions instanceof configuration_1.Configuration ? {
        client,
        config: configOrOptions
      } : configOrOptions ?? {};
      const { config = configuration_1.Configuration.getGlobalConfig(), onlyPurgeOnce = false } = options;
      ({ client = config.getStorageClient() } = options);
      const casted = client;
      if (!onlyPurgeOnce || config.get("purgeOnStart") && !casted.__purged) {
        casted.__purged = true;
        await casted.purge?.();
      }
    }
    async function useState2(name, defaultValue = {}, options) {
      const kvStore = await key_value_store_1.KeyValueStore.open(options?.keyValueStoreName, {
        config: options?.config || configuration_1.Configuration.getGlobalConfig()
      });
      return kvStore.getAutoSavedValue(name || "CRAWLEE_GLOBAL_STATE", defaultValue);
    }
    function getRequestId2(uniqueKey) {
      const str = node_crypto_1.default.createHash("sha256").update(uniqueKey).digest("base64").replace(/[+/=]/g, "");
      return str.slice(0, 15);
    }
    exports.QUERY_HEAD_MIN_LENGTH = 100;
    exports.STORAGE_CONSISTENCY_DELAY_MILLIS = 3e3;
    exports.QUERY_HEAD_BUFFER = 3;
    exports.API_PROCESSED_REQUESTS_DELAY_MILLIS = 1e4;
    exports.MAX_QUERIES_FOR_CONSISTENCY = 6;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/key_value_store.js
var require_key_value_store3 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/key_value_store.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.KeyValueStore = exports.maybeStringify = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var json5_1 = tslib_1.__importDefault(require_lib2());
    var ow_1 = tslib_1.__importStar(require_dist2());
    var consts_1 = require_cjs2();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var utilities_1 = require_cjs4();
    var configuration_1 = require_configuration();
    var access_checking_1 = require_access_checking();
    var storage_manager_1 = require_storage_manager();
    var utils_1 = require_utils10();
    var maybeStringify2 = (value2, options) => {
      if (options.contentType === null || options.contentType === void 0) {
        options.contentType = "application/json; charset=utf-8";
        try {
          value2 = (0, utilities_1.jsonStringifyExtended)(value2, null, 2);
        } catch (e4) {
          const error = e4;
          if (error.message?.includes("Invalid string length")) {
            error.message = "Object is too large";
          }
          throw new Error(`The "value" parameter cannot be stringified to JSON: ${error.message}`);
        }
        if (value2 === void 0) {
          throw new Error(`The "value" parameter was stringified to JSON and returned undefined. Make sure you're not trying to stringify an undefined value.`);
        }
      }
      return value2;
    };
    exports.maybeStringify = maybeStringify2;
    var KeyValueStore2 = class _KeyValueStore {
      /**
       * @internal
       */
      constructor(options, config = configuration_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "storageObject", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateEventStarted", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "cache", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        this.id = options.id;
        this.name = options.name;
        this.storageObject = options.storageObject;
        this.client = options.client.keyValueStore(this.id);
      }
      /**
       * Gets a value from the key-value store.
       *
       * The function returns a `Promise` that resolves to the record value,
       * whose JavaScript type depends on the MIME content type of the record.
       * Records with the `application/json`
       * content type are automatically parsed and returned as a JavaScript object.
       * Similarly, records with `text/plain` content types are returned as a string.
       * For all other content types, the value is returned as a raw
       * [`Buffer`](https://nodejs.org/api/buffer.html) instance.
       *
       * If the record does not exist, the function resolves to `null`.
       *
       * To save or delete a value in the key-value store, use the
       * {@link KeyValueStore.setValue} function.
       *
       * **Example usage:**
       *
       * ```javascript
       * const store = await KeyValueStore.open();
       * const buffer = await store.getValue('screenshot1.png');
       * ```
       * @param key
       *   Unique key of the record. It can be at most 256 characters long and only consist
       *   of the following characters: `a`-`z`, `A`-`Z`, `0`-`9` and `!-_.'()`
       * @param defaultValue
       *   Fallback that will be returned if no value if present in the storage.
       * @returns
       *   Returns a promise that resolves to an object, string
       *   or [`Buffer`](https://nodejs.org/api/buffer.html), depending
       *   on the MIME content type of the record, or `null` if the key is missing from the store.
       */
      async getValue(key, defaultValue) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(key, ow_1.default.string.nonEmpty);
        const record = await this.client.getRecord(key);
        return record?.value ?? defaultValue ?? null;
      }
      /**
       * Tests whether a record with the given key exists in the key-value store without retrieving its value.
       *
       * @param key The queried record key.
       * @returns `true` if the record exists, `false` if it does not.
       */
      async recordExists(key) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(key, ow_1.default.string.nonEmpty);
        return this.client.recordExists(key);
      }
      async getAutoSavedValue(key, defaultValue = {}) {
        (0, access_checking_1.checkStorageAccess)();
        if (this.cache.has(key)) {
          return this.cache.get(key);
        }
        const value2 = await this.getValue(key, defaultValue);
        if (this.cache.has(key)) {
          return this.cache.get(key);
        }
        this.cache.set(key, value2);
        this.ensurePersistStateEvent();
        return value2;
      }
      ensurePersistStateEvent() {
        if (this.persistStateEventStarted) {
          return;
        }
        const persistStateIntervalMillis = this.config.get("persistStateIntervalMillis");
        const timeoutSecs = persistStateIntervalMillis / 2e3;
        this.config.getEventManager().on("persistState", async () => {
          const promises = [];
          for (const [key, value2] of this.cache) {
            promises.push(this.setValue(key, value2, {
              timeoutSecs,
              doNotRetryTimeouts: true
            }).catch((error) => log_1.default.warning(`Failed to persist the state value to ${key}`, { error })));
          }
          await Promise.all(promises);
        });
        this.persistStateEventStarted = true;
      }
      /**
       * Saves or deletes a record in the key-value store.
       * The function returns a promise that resolves once the record has been saved or deleted.
       *
       * **Example usage:**
       *
       * ```javascript
       * const store = await KeyValueStore.open();
       * await store.setValue('OUTPUT', { foo: 'bar' });
       * ```
       *
       * Beware that the key can be at most 256 characters long and only contain the following characters: `a-zA-Z0-9!-_.'()`
       *
       * By default, `value` is converted to JSON and stored with the
       * `application/json; charset=utf-8` MIME content type.
       * To store the value with another content type, pass it in the options as follows:
       * ```javascript
       * const store = await KeyValueStore.open('my-text-store');
       * await store.setValue('RESULTS', 'my text data', { contentType: 'text/plain' });
       * ```
       * If you set custom content type, `value` must be either a string or
       * [`Buffer`](https://nodejs.org/api/buffer.html), otherwise an error will be thrown.
       *
       * If `value` is `null`, the record is deleted instead. Note that the `setValue()` function succeeds
       * regardless whether the record existed or not.
       *
       * To retrieve a value from the key-value store, use the
       * {@link KeyValueStore.getValue} function.
       *
       * **IMPORTANT:** Always make sure to use the `await` keyword when calling `setValue()`,
       * otherwise the crawler process might finish before the value is stored!
       *
       * @param key
       *   Unique key of the record. It can be at most 256 characters long and only consist
       *   of the following characters: `a`-`z`, `A`-`Z`, `0`-`9` and `!-_.'()`
       * @param value
       *   Record data, which can be one of the following values:
       *    - If `null`, the record in the key-value store is deleted.
       *    - If no `options.contentType` is specified, `value` can be any JavaScript object and it will be stringified to JSON.
       *    - If `options.contentType` is set, `value` is taken as is and it must be a `String` or [`Buffer`](https://nodejs.org/api/buffer.html).
       *   For any other value an error will be thrown.
       * @param [options] Record options.
       */
      async setValue(key, value2, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(key, "key", ow_1.default.string.nonEmpty);
        (0, ow_1.default)(key, ow_1.default.string.validate((k3) => ({
          validator: ow_1.default.isValid(k3, ow_1.default.string.matches(consts_1.KEY_VALUE_STORE_KEY_REGEX)),
          message: `The "key" argument "${key}" must be at most 256 characters long and only contain the following characters: a-zA-Z0-9!-_.'()`
        })));
        if (options.contentType && !(ow_1.default.isValid(value2, ow_1.default.any(ow_1.default.string, ow_1.default.uint8Array)) || ow_1.default.isValid(value2, ow_1.default.object) && typeof value2.pipe === "function")) {
          throw new ow_1.ArgumentError('The "value" parameter must be a String, Buffer or Stream when "options.contentType" is specified.', this.setValue);
        }
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          contentType: ow_1.default.optional.string.nonEmpty,
          timeoutSecs: ow_1.default.optional.number,
          doNotRetryTimeouts: ow_1.default.optional.boolean
        }));
        const optionsCopy = { ...options };
        const cachedValue = this.cache.get(key);
        if (cachedValue && cachedValue !== value2) {
          if (value2 === null) {
            Object.keys(cachedValue).forEach((k3) => this.cache.delete(k3));
          } else if (typeof value2 === "object") {
            Object.keys(cachedValue).filter((k3) => !(k3 in value2)).forEach((k3) => this.cache.delete(k3));
            Object.assign(cachedValue, value2);
          }
        }
        if (value2 === null)
          return this.client.deleteRecord(key);
        value2 = (0, exports.maybeStringify)(value2, optionsCopy);
        return this.client.setRecord({
          key,
          value: value2,
          contentType: optionsCopy.contentType
        }, {
          timeoutSecs: optionsCopy.timeoutSecs,
          doNotRetryTimeouts: optionsCopy.doNotRetryTimeouts
        });
      }
      /**
       * Removes the key-value store either from the Apify cloud storage or from the local directory,
       * depending on the mode of operation.
       */
      async drop() {
        (0, access_checking_1.checkStorageAccess)();
        await this.client.delete();
        const manager = storage_manager_1.StorageManager.getManager(_KeyValueStore, this.config);
        manager.closeStorage(this);
      }
      /** @internal */
      clearCache() {
        (0, access_checking_1.checkStorageAccess)();
        this.cache.clear();
      }
      /**
       * Iterates over key-value store keys, yielding each in turn to an `iteratee` function.
       * Each invocation of `iteratee` is called with three arguments: `(key, index, info)`, where `key`
       * is the record key, `index` is a zero-based index of the key in the current iteration
       * (regardless of `options.exclusiveStartKey`) and `info` is an object that contains a single property `size`
       * indicating size of the record in bytes.
       *
       * If the `iteratee` function returns a Promise then it is awaited before the next call.
       * If it throws an error, the iteration is aborted and the `forEachKey` function throws the error.
       *
       * **Example usage**
       * ```javascript
       * const keyValueStore = await KeyValueStore.open();
       * await keyValueStore.forEachKey(async (key, index, info) => {
       *   console.log(`Key at ${index}: ${key} has size ${info.size}`);
       * });
       * ```
       *
       * @param iteratee A function that is called for every key in the key-value store.
       * @param [options] All `forEachKey()` parameters.
       */
      async forEachKey(iteratee, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        return this._forEachKey(iteratee, options);
      }
      async _forEachKey(iteratee, options = {}, index2 = 0) {
        const { exclusiveStartKey, prefix, collection } = options;
        (0, ow_1.default)(iteratee, ow_1.default.function);
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          exclusiveStartKey: ow_1.default.optional.string,
          prefix: ow_1.default.optional.string,
          collection: ow_1.default.optional.string
        }));
        const response = await this.client.listKeys({ exclusiveStartKey, prefix, collection });
        const { nextExclusiveStartKey, isTruncated, items } = response;
        for (const item of items) {
          await iteratee(item.key, index2++, { size: item.size });
        }
        return isTruncated ? this._forEachKey(iteratee, { exclusiveStartKey: nextExclusiveStartKey, prefix, collection }, index2) : void 0;
      }
      /**
       * Iterates over key-value store keys using an async generator,
       * allowing the use of `for await...of` syntax.
       *
       * **Example usage:**
       * ```javascript
       * const keyValueStore = await KeyValueStore.open();
       * for await (const key of keyValueStore.keys()) {
       *   console.log(key);
       * }
       * ```
       *
       * @param options Options for the iteration.
       */
      async *keys(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        if (!this.client.keys) {
          throw new Error('Resource client is missing the "keys" method.');
        }
        yield* this.client.keys(options);
      }
      /**
       * Iterates over key-value store values using an async generator,
       * allowing the use of `for await...of` syntax.
       *
       * **Example usage:**
       * ```javascript
       * const keyValueStore = await KeyValueStore.open();
       * for await (const value of keyValueStore.values()) {
       *   console.log(value);
       * }
       * ```
       *
       * @param options Options for the iteration.
       */
      values(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        if (!this.client.values) {
          throw new Error('Resource client is missing the "values" method.');
        }
        return this.client.values(options);
      }
      /**
       * Iterates over key-value store entries (key-value pairs) using an async generator,
       * allowing the use of `for await...of` syntax.
       *
       * **Example usage:**
       * ```javascript
       * const keyValueStore = await KeyValueStore.open();
       * for await (const [key, value] of keyValueStore.entries()) {
       *   console.log(`${key}: ${value}`);
       * }
       * ```
       *
       * @param options Options for the iteration.
       */
      entries(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        if (!this.client.entries) {
          throw new Error('Resource client is missing the "entries" method.');
        }
        return this.client.entries(options);
      }
      /**
       * Default async iterator for the key-value store, iterating over entries (key-value pairs).
       * Allows using the store directly in a `for await...of` loop.
       *
       * **Example usage:**
       * ```javascript
       * const keyValueStore = await KeyValueStore.open();
       * for await (const [key, value] of keyValueStore) {
       *   console.log(`${key}: ${value}`);
       * }
       * ```
       */
      async *[Symbol.asyncIterator]() {
        yield* this.entries();
      }
      /**
       * Returns a file URL for the given key.
       */
      getPublicUrl(key) {
        const name = this.name ?? this.config.get("defaultKeyValueStoreId");
        return `file://${process.cwd()}/storage/key_value_stores/${name}/${key}`;
      }
      /**
       * Opens a key-value store and returns a promise resolving to an instance of the {@link KeyValueStore} class.
       *
       * Key-value stores are used to store records or files, along with their MIME content type.
       * The records are stored and retrieved using a unique key.
       * The actual data is stored either on a local filesystem or in the Apify cloud.
       *
       * For more details and code examples, see the {@link KeyValueStore} class.
       *
       * @param [storeIdOrName]
       *   ID or name of the key-value store to be opened. If `null` or `undefined`,
       *   the function returns the default key-value store associated with the crawler run.
       * @param [options] Storage manager options.
       */
      static async open(storeIdOrName, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(storeIdOrName, ow_1.default.optional.any(ow_1.default.string, ow_1.default.null));
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          config: ow_1.default.optional.object.instanceOf(configuration_1.Configuration),
          storageClient: ow_1.default.optional.object
        }));
        options.config ?? (options.config = configuration_1.Configuration.getGlobalConfig());
        options.storageClient ?? (options.storageClient = options.config.getStorageClient());
        await (0, utils_1.purgeDefaultStorages)({ onlyPurgeOnce: true, client: options.storageClient, config: options.config });
        const manager = storage_manager_1.StorageManager.getManager(this, options.config);
        return manager.openStorage(storeIdOrName, options.storageClient);
      }
      /**
       * Gets a value from the default {@link KeyValueStore} associated with the current crawler run.
       *
       * This is just a convenient shortcut for {@link KeyValueStore.getValue}.
       * For example, calling the following code:
       * ```javascript
       * const value = await KeyValueStore.getValue('my-key');
       * ```
       *
       * is equivalent to:
       * ```javascript
       * const store = await KeyValueStore.open();
       * const value = await store.getValue('my-key');
       * ```
       *
       * To store the value to the default key-value store, you can use the {@link KeyValueStore.setValue} function.
       *
       * For more information, see  {@link KeyValueStore.open}
       * and  {@link KeyValueStore.getValue}.
       *
       * @param key Unique record key.
       * @param defaultValue Fallback that will be returned if no value if present in the storage.
       * @returns
       *   Returns a promise that resolves to an object, string
       *   or [`Buffer`](https://nodejs.org/api/buffer.html), depending
       *   on the MIME content type of the record, or `null`
       *   if the record is missing.
       * @ignore
       */
      static async getValue(key, defaultValue) {
        const store = await this.open();
        return store.getValue(key, defaultValue);
      }
      /**
       * Tests whether a record with the given key exists in the default {@link KeyValueStore} associated with the current crawler run.
       * @param key The queried record key.
       * @returns `true` if the record exists, `false` if it does not.
       */
      static async recordExists(key) {
        const store = await this.open();
        return store.recordExists(key);
      }
      static async getAutoSavedValue(key, defaultValue = {}) {
        const store = await this.open();
        return store.getAutoSavedValue(key, defaultValue);
      }
      /**
       * Stores or deletes a value in the default {@link KeyValueStore} associated with the current crawler run.
       *
       * This is just a convenient shortcut for  {@link KeyValueStore.setValue}.
       * For example, calling the following code:
       * ```javascript
       * await KeyValueStore.setValue('OUTPUT', { foo: "bar" });
       * ```
       *
       * is equivalent to:
       * ```javascript
       * const store = await KeyValueStore.open();
       * await store.setValue('OUTPUT', { foo: "bar" });
       * ```
       *
       * To get a value from the default key-value store, you can use the  {@link KeyValueStore.getValue} function.
       *
       * For more information, see  {@link KeyValueStore.open}
       * and  {@link KeyValueStore.getValue}.
       *
       * @param key
       *   Unique record key.
       * @param value
       *   Record data, which can be one of the following values:
       *    - If `null`, the record in the key-value store is deleted.
       *    - If no `options.contentType` is specified, `value` can be any JavaScript object, and it will be stringified to JSON.
       *    - If `options.contentType` is set, `value` is taken as is, and it must be a `String` or [`Buffer`](https://nodejs.org/api/buffer.html).
       *   For any other value an error will be thrown.
       * @param [options]
       * @ignore
       */
      static async setValue(key, value2, options = {}) {
        const store = await this.open();
        return store.setValue(key, value2, options);
      }
      /**
       * Gets the crawler input value from the default {@link KeyValueStore} associated with the current crawler run.
       * By default, it will try to find root input files (either extension-less, `.json` or `.txt`),
       * or alternatively read the input from the default {@link KeyValueStore}.
       *
       * Note that the `getInput()` function does not cache the value read from the key-value store.
       * If you need to use the input multiple times in your crawler,
       * it is far more efficient to read it once and store it locally.
       *
       * For more information, see {@link KeyValueStore.open}
       * and {@link KeyValueStore.getValue}.
       *
       * @returns
       *   Returns a promise that resolves to an object, string
       *   or [`Buffer`](https://nodejs.org/api/buffer.html), depending
       *   on the MIME content type of the record, or `null`
       *   if the record is missing.
       * @ignore
       */
      static async getInput() {
        const store = await this.open();
        const inputKey = store.config.get("inputKey");
        const cwd = process.cwd();
        const possibleExtensions = ["", ".json", ".txt"];
        for (const extension of possibleExtensions) {
          const inputFile = (0, node_path_1.join)(cwd, `${inputKey}${extension}`);
          let input;
          try {
            input = await (0, promises_1.readFile)(inputFile);
          } catch {
            continue;
          }
          try {
            return json5_1.default.parse(input.toString());
          } catch {
            return input;
          }
        }
        return store.getValue(inputKey);
      }
    };
    exports.KeyValueStore = KeyValueStore2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/dataset.js
var require_dataset3 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/dataset.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Dataset = exports.DATASET_ITERATORS_DEFAULT_LIMIT = void 0;
    exports.checkAndSerialize = checkAndSerialize2;
    exports.chunkBySize = chunkBySize2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var sync_1 = require_sync();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var consts_1 = require_cjs2();
    var configuration_1 = require_configuration();
    var log_1 = require_log();
    var access_checking_1 = require_access_checking();
    var key_value_store_1 = require_key_value_store3();
    var storage_manager_1 = require_storage_manager();
    var utils_1 = require_utils10();
    exports.DATASET_ITERATORS_DEFAULT_LIMIT = 1e4;
    var SAFETY_BUFFER_PERCENT = 0.01 / 100;
    function checkAndSerialize2(item, limitBytes, index2) {
      const s4 = typeof index2 === "number" ? ` at index ${index2} ` : " ";
      const isItemObject = item && typeof item === "object" && !Array.isArray(item);
      if (!isItemObject) {
        throw new Error(`Data item${s4}is not an object. You can push only objects into a dataset.`);
      }
      let payload;
      try {
        payload = JSON.stringify(item);
      } catch (e4) {
        const err2 = e4;
        throw new Error(`Data item${s4}is not serializable to JSON.
Cause: ${err2.message}`);
      }
      const bytes = Buffer.byteLength(payload);
      if (bytes > limitBytes) {
        throw new Error(`Data item${s4}is too large (size: ${bytes} bytes, limit: ${limitBytes} bytes)`);
      }
      return payload;
    }
    function chunkBySize2(items, limitBytes) {
      if (!items.length)
        return [];
      if (items.length === 1)
        return items;
      let lastChunkBytes = 2;
      const chunks = [];
      for (const payload of items) {
        const bytes = Buffer.byteLength(payload);
        if (bytes <= limitBytes && bytes + 2 > limitBytes) {
          chunks.push(payload);
          lastChunkBytes = bytes;
        } else if (lastChunkBytes + bytes <= limitBytes) {
          if (!Array.isArray(chunks[chunks.length - 1])) {
            chunks.push([]);
          }
          chunks[chunks.length - 1].push(payload);
          lastChunkBytes += bytes + 1;
        } else {
          chunks.push([payload]);
          lastChunkBytes = bytes + 2;
        }
      }
      return chunks.map((chunk3) => typeof chunk3 === "string" ? chunk3 : `[${chunk3.join(",")}]`);
    }
    var Dataset2 = class _Dataset {
      /**
       * @internal
       */
      constructor(options, config = configuration_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "storageObject", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: log_1.log.child({ prefix: "Dataset" })
        });
        this.id = options.id;
        this.name = options.name;
        this.client = options.client.dataset(this.id);
        this.storageObject = options.storageObject;
      }
      /**
       * Stores an object or an array of objects to the dataset.
       * The function returns a promise that resolves when the operation finishes.
       * It has no result, but throws on invalid args or other errors.
       *
       * **IMPORTANT**: Make sure to use the `await` keyword when calling `pushData()`,
       * otherwise the crawler process might finish before the data is stored!
       *
       * The size of the data is limited by the receiving API and therefore `pushData()` will only
       * allow objects whose JSON representation is smaller than 9MB. When an array is passed,
       * none of the included objects
       * may be larger than 9MB, but the array itself may be of any size.
       *
       * The function internally
       * chunks the array into separate items and pushes them sequentially.
       * The chunking process is stable (keeps order of data), but it does not provide a transaction
       * safety mechanism. Therefore, in the event of an uploading error (after several automatic retries),
       * the function's Promise will reject and the dataset will be left in a state where some of
       * the items have already been saved to the dataset while other items from the source array were not.
       * To overcome this limitation, the developer may, for example, read the last item saved in the dataset
       * and re-attempt the save of the data from this item onwards to prevent duplicates.
       * @param data Object or array of objects containing data to be stored in the default dataset.
       *   The objects must be serializable to JSON and the JSON representation of each object must be smaller than 9MB.
       */
      async pushData(data2) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(data2, "data", ow_1.default.object);
        const dispatch = async (payload) => this.client.pushItems(payload);
        const limit = consts_1.MAX_PAYLOAD_SIZE_BYTES - Math.ceil(consts_1.MAX_PAYLOAD_SIZE_BYTES * SAFETY_BUFFER_PERCENT);
        if (!Array.isArray(data2)) {
          const payload = checkAndSerialize2(data2, limit);
          await dispatch(payload);
          return;
        }
        const payloads = data2.map((item, index2) => checkAndSerialize2(item, limit, index2));
        const chunks = chunkBySize2(payloads, limit);
        for (const chunk3 of chunks) {
          await dispatch(chunk3);
        }
      }
      /**
       * Returns {@link DatasetContent} object holding the items in the dataset based on the provided parameters.
       */
      async getData(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        try {
          return await this.client.listItems(options);
        } catch (e4) {
          const error = e4;
          if (error.message.includes("Cannot create a string longer than")) {
            throw new Error('dataset.getData(): The response is too large for parsing. You can fix this by lowering the "limit" option.');
          }
          throw e4;
        }
      }
      /**
       * Returns all the data from the dataset. This will iterate through the whole dataset
       * via the `listItems()` client method, which gives you only paginated results.
       */
      async export(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        const items = [];
        const fetchNextChunk = async (offset2 = 0) => {
          const limit = 1e3;
          const value2 = await this.client.listItems({ offset: offset2, limit, ...options });
          if (value2.count === 0) {
            return;
          }
          items.push(...value2.items);
          if (value2.total > offset2 + value2.count) {
            await fetchNextChunk(offset2 + value2.count);
          }
        };
        await fetchNextChunk();
        return items;
      }
      /**
       * Save the entirety of the dataset's contents into one file within a key-value store.
       *
       * @param key The name of the value to save the data in.
       * @param [options] An optional options object where you can provide the dataset and target KVS name.
       * @param [contentType] Only JSON and CSV are supported currently, defaults to JSON.
       */
      async exportTo(key, options, contentType) {
        const kvStore = await key_value_store_1.KeyValueStore.open(options?.toKVS ?? null, { config: this.config });
        const items = await this.export(options);
        if (contentType === "text/csv") {
          if (items.length === 0) {
            await kvStore.setValue(key, "", { contentType });
            return items;
          }
          const keys2 = options?.collectAllKeys ? Array.from(new Set(items.flatMap(Object.keys))) : Object.keys(items[0]);
          const value2 = (0, sync_1.stringify)([
            keys2,
            ...items.map((item) => {
              return keys2.map((k3) => item[k3]);
            })
          ]);
          await kvStore.setValue(key, value2, { contentType });
          return items;
        }
        if (contentType === "application/json") {
          await kvStore.setValue(key, items);
          return items;
        }
        throw new Error(`Unsupported content type: ${contentType}`);
        return items;
      }
      /**
       * Save entire default dataset's contents into one JSON file within a key-value store.
       *
       * @param key The name of the value to save the data in.
       * @param [options] An optional options object where you can provide the target KVS name.
       */
      async exportToJSON(key, options) {
        await this.exportTo(key, options, "application/json");
      }
      /**
       * Save entire default dataset's contents into one CSV file within a key-value store.
       *
       * @param key The name of the value to save the data in.
       * @param [options] An optional options object where you can provide the target KVS name.
       */
      async exportToCSV(key, options) {
        await this.exportTo(key, options, "text/csv");
      }
      /**
       * Save entire default dataset's contents into one JSON file within a key-value store.
       *
       * @param key The name of the value to save the data in.
       * @param [options] An optional options object where you can provide the dataset and target KVS name.
       */
      static async exportToJSON(key, options) {
        (0, access_checking_1.checkStorageAccess)();
        const dataset = await this.open(options?.fromDataset);
        await dataset.exportToJSON(key, options);
      }
      /**
       * Save entire default dataset's contents into one CSV file within a key-value store.
       *
       * @param key The name of the value to save the data in.
       * @param [options] An optional options object where you can provide the dataset and target KVS name.
       */
      static async exportToCSV(key, options) {
        (0, access_checking_1.checkStorageAccess)();
        const dataset = await this.open(options?.fromDataset);
        await dataset.exportToCSV(key, options);
      }
      /**
       * Returns an object containing general information about the dataset.
       *
       * The function returns the same object as the Apify API Client's
       * [getDataset](https://docs.apify.com/api/apify-client-js/latest#ApifyClient-datasets-getDataset)
       * function, which in turn calls the
       * [Get dataset](https://apify.com/docs/api/v2#/reference/datasets/dataset/get-dataset)
       * API endpoint.
       *
       * **Example:**
       * ```
       * {
       *   id: "WkzbQMuFYuamGv3YF",
       *   name: "my-dataset",
       *   userId: "wRsJZtadYvn4mBZmm",
       *   createdAt: new Date("2015-12-12T07:34:14.202Z"),
       *   modifiedAt: new Date("2015-12-13T08:36:13.202Z"),
       *   accessedAt: new Date("2015-12-14T08:36:13.202Z"),
       *   itemCount: 14,
       * }
       * ```
       */
      async getInfo() {
        (0, access_checking_1.checkStorageAccess)();
        return this.client.get();
      }
      /**
       * Iterates over dataset items, yielding each in turn to an `iteratee` function.
       * Each invocation of `iteratee` is called with two arguments: `(item, index)`.
       *
       * If the `iteratee` function returns a Promise then it is awaited before the next call.
       * If it throws an error, the iteration is aborted and the `forEach` function throws the error.
       *
       * **Example usage**
       * ```javascript
       * const dataset = await Dataset.open('my-results');
       * await dataset.forEach(async (item, index) => {
       *   console.log(`Item at ${index}: ${JSON.stringify(item)}`);
       * });
       * ```
       *
       * @param iteratee A function that is called for every item in the dataset.
       * @param [options] All `forEach()` parameters.
       * @param [index] Specifies the initial index number passed to the `iteratee` function.
       * @default 0
       */
      async forEach(iteratee, options = {}, index2 = 0) {
        (0, access_checking_1.checkStorageAccess)();
        if (!options.offset)
          options.offset = 0;
        if (options.format && options.format !== "json")
          throw new Error('Dataset.forEach/map/reduce() support only a "json" format.');
        if (!options.limit)
          options.limit = exports.DATASET_ITERATORS_DEFAULT_LIMIT;
        const { items, total, limit, offset: offset2 } = await this.getData(options);
        for (const item of items) {
          await iteratee(item, index2++);
        }
        const newOffset = offset2 + limit;
        if (newOffset >= total)
          return;
        const newOpts = { ...options, offset: newOffset };
        await this.forEach(iteratee, newOpts, index2);
      }
      /**
       * Produces a new array of values by mapping each value in list through a transformation function `iteratee()`.
       * Each invocation of `iteratee()` is called with two arguments: `(element, index)`.
       *
       * If `iteratee` returns a `Promise` then it's awaited before a next call.
       *
       * @param iteratee
       * @param [options] All `map()` parameters.
       */
      async map(iteratee, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        const result = [];
        await this.forEach(async (item, index2) => {
          const res = await iteratee(item, index2);
          result.push(res);
        }, options);
        return result;
      }
      async reduce(iteratee, memo, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        let currentMemo = memo;
        const wrappedFunc = async (item, index2) => {
          if (index2 === 0 && currentMemo === void 0) {
            currentMemo = item;
          } else {
            currentMemo = await iteratee(currentMemo, item, index2);
          }
        };
        await this.forEach(wrappedFunc, options);
        return currentMemo;
      }
      /**
       * Iterates over dataset items using an async generator,
       * allowing the use of `for await...of` syntax.
       *
       * **Example usage:**
       * ```javascript
       * const dataset = await Dataset.open('my-results');
       * for await (const item of dataset.values()) {
       *   console.log(item);
       * }
       * ```
       *
       * @param options Options for the iteration.
       */
      values(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        const result = this.client.listItems(options);
        if (!(Symbol.asyncIterator in result)) {
          Object.defineProperty(result, Symbol.asyncIterator, {
            get() {
              throw new Error('Resource client "listItems" method does not return an async iterable.');
            }
          });
        }
        return result;
      }
      /**
       * Iterates over dataset entries (index-value pairs) using an async generator,
       * allowing the use of `for await...of` syntax.
       *
       * **Example usage:**
       * ```javascript
       * const dataset = await Dataset.open('my-results');
       * for await (const [index, item] of dataset.entries()) {
       *   console.log(`Item at ${index}: ${JSON.stringify(item)}`);
       * }
       * ```
       *
       * @param options Options for the iteration.
       */
      entries(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        if (!this.client.listEntries) {
          throw new Error('Resource client is missing the "listEntries" method.');
        }
        return this.client.listEntries(options);
      }
      /**
       * Default async iterator for the dataset, iterating over items.
       * Allows using the dataset directly in a `for await...of` loop.
       *
       * **Example usage:**
       * ```javascript
       * const dataset = await Dataset.open('my-results');
       * for await (const item of dataset) {
       *   console.log(item);
       * }
       * ```
       */
      async *[Symbol.asyncIterator]() {
        yield* this.values();
      }
      /**
       * Removes the dataset either from the Apify cloud storage or from the local directory,
       * depending on the mode of operation.
       */
      async drop() {
        (0, access_checking_1.checkStorageAccess)();
        await this.client.delete();
        const manager = storage_manager_1.StorageManager.getManager(_Dataset, this.config);
        manager.closeStorage(this);
      }
      /**
       * Opens a dataset and returns a promise resolving to an instance of the {@link Dataset} class.
       *
       * Datasets are used to store structured data where each object stored has the same attributes,
       * such as online store products or real estate offers.
       * The actual data is stored either on the local filesystem or in the cloud.
       *
       * For more details and code examples, see the {@link Dataset} class.
       *
       * @param [datasetIdOrName]
       *   ID or name of the dataset to be opened. If `null` or `undefined`,
       *   the function returns the default dataset associated with the crawler run.
       * @param [options] Storage manager options.
       */
      static async open(datasetIdOrName, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(datasetIdOrName, ow_1.default.optional.string);
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          config: ow_1.default.optional.object.instanceOf(configuration_1.Configuration),
          storageClient: ow_1.default.optional.object
        }));
        options.config ?? (options.config = configuration_1.Configuration.getGlobalConfig());
        options.storageClient ?? (options.storageClient = options.config.getStorageClient());
        await (0, utils_1.purgeDefaultStorages)({ onlyPurgeOnce: true, client: options.storageClient, config: options.config });
        const manager = storage_manager_1.StorageManager.getManager(this, options.config);
        return manager.openStorage(datasetIdOrName, options.storageClient);
      }
      /**
       * Stores an object or an array of objects to the default {@link Dataset} of the current crawler run.
       *
       * This is just a convenient shortcut for {@link Dataset.pushData}.
       * For example, calling the following code:
       * ```javascript
       * await Dataset.pushData({ myValue: 123 });
       * ```
       *
       * is equivalent to:
       * ```javascript
       * const dataset = await Dataset.open();
       * await dataset.pushData({ myValue: 123 });
       * ```
       *
       * For more information, see {@link Dataset.open} and {@link Dataset.pushData}
       *
       * **IMPORTANT**: Make sure to use the `await` keyword when calling `pushData()`,
       * otherwise the crawler process might finish before the data are stored!
       *
       * @param item Object or array of objects containing data to be stored in the default dataset.
       * The objects must be serializable to JSON and the JSON representation of each object must be smaller than 9MB.
       * @ignore
       */
      static async pushData(item) {
        const dataset = await this.open();
        return dataset.pushData(item);
      }
      /**
       * Returns {@link DatasetContent} object holding the items in the dataset based on the provided parameters.
       */
      static async getData(options = {}) {
        const dataset = await this.open();
        return dataset.getData(options);
      }
    };
    exports.Dataset = Dataset2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/request.js
var require_request = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/request.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Request = exports.RequestState = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_crypto_1 = tslib_1.__importDefault(__require("node:crypto"));
    var node_util_1 = tslib_1.__importDefault(__require("node:util"));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var utilities_1 = require_cjs4();
    var log_1 = require_log();
    var typedefs_1 = require_typedefs2();
    var log2 = log_1.log.child({ prefix: "Request" });
    var requestOptionalPredicates = {
      id: ow_1.default.optional.string,
      loadedUrl: ow_1.default.optional.string.url,
      uniqueKey: ow_1.default.optional.string,
      method: ow_1.default.optional.string,
      payload: ow_1.default.optional.any(ow_1.default.string, ow_1.default.uint8Array),
      noRetry: ow_1.default.optional.boolean,
      retryCount: ow_1.default.optional.number,
      sessionRotationCount: ow_1.default.optional.number,
      maxRetries: ow_1.default.optional.number,
      errorMessages: ow_1.default.optional.array.ofType(ow_1.default.string),
      headers: ow_1.default.optional.object,
      userData: ow_1.default.optional.object,
      label: ow_1.default.optional.string,
      handledAt: ow_1.default.optional.any(ow_1.default.string.date, ow_1.default.date),
      keepUrlFragment: ow_1.default.optional.boolean,
      useExtendedUniqueKey: ow_1.default.optional.boolean,
      skipNavigation: ow_1.default.optional.boolean,
      crawlDepth: ow_1.default.optional.number.greaterThanOrEqual(0),
      state: ow_1.default.optional.number.greaterThanOrEqual(0).lessThanOrEqual(6)
    };
    var RequestState2;
    (function(RequestState3) {
      RequestState3[RequestState3["UNPROCESSED"] = 0] = "UNPROCESSED";
      RequestState3[RequestState3["BEFORE_NAV"] = 1] = "BEFORE_NAV";
      RequestState3[RequestState3["AFTER_NAV"] = 2] = "AFTER_NAV";
      RequestState3[RequestState3["REQUEST_HANDLER"] = 3] = "REQUEST_HANDLER";
      RequestState3[RequestState3["DONE"] = 4] = "DONE";
      RequestState3[RequestState3["ERROR_HANDLER"] = 5] = "ERROR_HANDLER";
      RequestState3[RequestState3["ERROR"] = 6] = "ERROR";
      RequestState3[RequestState3["SKIPPED"] = 7] = "SKIPPED";
    })(RequestState2 || (exports.RequestState = RequestState2 = {}));
    var Request3 = class _Request {
      /**
       * `Request` parameters including the URL, HTTP method and headers, and others.
       */
      constructor(options) {
        var _a2;
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "url", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "loadedUrl", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "uniqueKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "method", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "payload", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "noRetry", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "retryCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "errorMessages", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "headers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_userData", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        Object.defineProperty(this, "userData", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        Object.defineProperty(this, "handledAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        (0, ow_1.default)(options, "RequestOptions", ow_1.default.object);
        (0, ow_1.default)(options.url, "RequestOptions.url", ow_1.default.string);
        (0, typedefs_1.keys)(options).forEach((prop) => {
          if (prop === "url") {
            return;
          }
          const predicate = requestOptionalPredicates[prop];
          const value2 = options[prop];
          if (predicate) {
            (0, ow_1.default)(value2, `RequestOptions.${prop}`, predicate);
          }
        });
        const { id, url: url3, loadedUrl, uniqueKey, payload, noRetry = false, retryCount = 0, sessionRotationCount = 0, maxRetries, errorMessages = [], headers = {}, userData = {}, label, handledAt, keepUrlFragment = false, useExtendedUniqueKey = false, skipNavigation, enqueueStrategy, crawlDepth } = options;
        let { method = "GET" } = options;
        method = method.toUpperCase();
        if (method === "GET" && payload)
          throw new Error("Request with GET method cannot have a payload.");
        this.id = id;
        this.url = url3;
        this.loadedUrl = loadedUrl;
        this.uniqueKey = uniqueKey || _Request.computeUniqueKey({ url: url3, method, payload, keepUrlFragment, useExtendedUniqueKey });
        this.method = method;
        this.payload = payload;
        this.noRetry = noRetry;
        this.retryCount = retryCount;
        this.sessionRotationCount = sessionRotationCount;
        this.errorMessages = [...errorMessages];
        this.headers = { ...headers };
        this.handledAt = handledAt instanceof Date ? handledAt.toISOString() : handledAt;
        if (label) {
          userData.label = label;
        }
        Object.defineProperties(this, {
          _userData: {
            value: { __crawlee: {}, ...userData },
            enumerable: false,
            writable: true
          },
          userData: {
            get: () => this._userData,
            set: (value2) => {
              Object.defineProperties(value2, {
                __crawlee: {
                  value: this._userData.__crawlee,
                  enumerable: false,
                  writable: true
                },
                toJSON: {
                  value: () => {
                    if (Object.keys(this._userData.__crawlee).length > 0) {
                      return {
                        ...this._userData,
                        __crawlee: this._userData.__crawlee
                      };
                    }
                    return this._userData;
                  },
                  enumerable: false,
                  writable: true
                }
              });
              this._userData = value2;
            },
            enumerable: true
          }
        });
        this.userData = userData;
        if (skipNavigation != null)
          this.skipNavigation = skipNavigation;
        if (maxRetries != null)
          this.maxRetries = maxRetries;
        if (crawlDepth != null)
          (_a2 = this.userData.__crawlee).crawlDepth ?? (_a2.crawlDepth = crawlDepth);
        if (enqueueStrategy) {
          this.enqueueStrategy ?? (this.enqueueStrategy = enqueueStrategy);
        }
      }
      /** Tells the crawler processing this request to skip the navigation and process the request directly. */
      get skipNavigation() {
        return this.userData.__crawlee?.skipNavigation ?? false;
      }
      /** Tells the crawler processing this request to skip the navigation and process the request directly. */
      set skipNavigation(value2) {
        if (!this.userData.__crawlee) {
          this.userData.__crawlee = { skipNavigation: value2 };
        } else {
          this.userData.__crawlee.skipNavigation = value2;
        }
      }
      /**
       * Depth of the request in the current crawl tree.
       * Note that this is dependent on the crawler setup and might produce unexpected results when used with multiple crawlers.
       */
      get crawlDepth() {
        return this.userData.__crawlee?.crawlDepth ?? 0;
      }
      /**
       * Depth of the request in the current crawl tree.
       * Note that this is dependent on the crawler setup and might produce unexpected results when used with multiple crawlers.
       */
      set crawlDepth(value2) {
        var _a2;
        (_a2 = this.userData).__crawlee ?? (_a2.__crawlee = {});
        this.userData.__crawlee.crawlDepth = value2;
      }
      /** Indicates the number of times the crawling of the request has rotated the session due to a session or a proxy error. */
      get sessionRotationCount() {
        return this.userData.__crawlee?.sessionRotationCount ?? 0;
      }
      /** Indicates the number of times the crawling of the request has rotated the session due to a session or a proxy error. */
      set sessionRotationCount(value2) {
        if (!this.userData.__crawlee) {
          this.userData.__crawlee = { sessionRotationCount: value2 };
        } else {
          this.userData.__crawlee.sessionRotationCount = value2;
        }
      }
      /** shortcut for getting `request.userData.label` */
      get label() {
        return this.userData.label;
      }
      /** shortcut for setting `request.userData.label` */
      set label(value2) {
        this.userData.label = value2;
      }
      /** Maximum number of retries for this request. Allows to override the global `maxRequestRetries` option of `BasicCrawler`. */
      get maxRetries() {
        return this.userData.__crawlee?.maxRetries;
      }
      /** Maximum number of retries for this request. Allows to override the global `maxRequestRetries` option of `BasicCrawler`. */
      set maxRetries(value2) {
        if (!this.userData.__crawlee) {
          this.userData.__crawlee = { maxRetries: value2 };
        } else {
          this.userData.__crawlee.maxRetries = value2;
        }
      }
      /** Describes the request's current lifecycle state. */
      get state() {
        return this.userData.__crawlee?.state ?? RequestState2.UNPROCESSED;
      }
      /** Describes the request's current lifecycle state. */
      set state(value2) {
        if (!this.userData.__crawlee) {
          this.userData.__crawlee = { state: value2 };
        } else {
          this.userData.__crawlee.state = value2;
        }
      }
      get enqueueStrategy() {
        return this.userData.__crawlee?.enqueueStrategy;
      }
      set enqueueStrategy(value2) {
        if (!this.userData.__crawlee) {
          this.userData.__crawlee = { enqueueStrategy: value2 };
        } else {
          this.userData.__crawlee.enqueueStrategy = value2;
        }
      }
      /**
       * Stores information about an error that occurred during processing of this request.
       *
       * You should always use Error instances when throwing errors in JavaScript.
       *
       * Nevertheless, to improve the debugging experience when using third party libraries
       * that may not always throw an Error instance, the function performs a type
       * inspection of the passed argument and attempts to extract as much information
       * as possible, since just throwing a bad type error makes any debugging rather difficult.
       *
       * @param errorOrMessage Error object or error message to be stored in the request.
       * @param [options]
       */
      pushErrorMessage(errorOrMessage, options = {}) {
        const { omitStack } = options;
        let message;
        const type = typeof errorOrMessage;
        if (type === "object") {
          if (!errorOrMessage) {
            message = "null";
          } else if (errorOrMessage instanceof Error) {
            message = omitStack ? errorOrMessage.message : (
              // .stack includes the message
              errorOrMessage.stack
            );
          } else if (Reflect.has(Object(errorOrMessage), "message")) {
            message = Reflect.get(Object(errorOrMessage), "message");
          } else if (errorOrMessage.toString() !== "[object Object]") {
            message = errorOrMessage.toString();
          } else {
            try {
              message = node_util_1.default.inspect(errorOrMessage);
            } catch (err2) {
              message = "Unable to extract any message from the received object.";
            }
          }
        } else if (type === "undefined") {
          message = "undefined";
        } else {
          message = errorOrMessage.toString();
        }
        this.errorMessages.push(message);
      }
      // TODO: only for better BC, remove in v4
      _computeUniqueKey(options) {
        return _Request.computeUniqueKey(options);
      }
      // TODO: only for better BC, remove in v4
      _hashPayload(payload) {
        return _Request.hashPayload(payload);
      }
      /** @internal */
      static computeUniqueKey({ url: url3, method = "GET", payload, keepUrlFragment = false, useExtendedUniqueKey = false }) {
        const normalizedMethod = method.toUpperCase();
        const normalizedUrl = (0, utilities_1.normalizeUrl)(url3, keepUrlFragment) || url3;
        if (!useExtendedUniqueKey) {
          if (normalizedMethod !== "GET" && payload) {
            log2.deprecated(`We've encountered a ${normalizedMethod} Request with a payload. This is fine. Just letting you know that if your requests point to the same URL and differ only in method and payload, you should see the "useExtendedUniqueKey" option of Request constructor.`);
          }
          return normalizedUrl;
        }
        const payloadHash = payload ? _Request.hashPayload(payload) : "";
        return `${normalizedMethod}(${payloadHash}):${normalizedUrl}`;
      }
      /** @internal */
      static hashPayload(payload) {
        return node_crypto_1.default.createHash("sha256").update(payload).digest("base64").replace(/[+/=]/g, "").substring(0, 8);
      }
    };
    exports.Request = Request3;
  }
});

// ../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/Assembler.js
var require_Assembler = __commonJS({
  "../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/Assembler.js"(exports, module) {
    "use strict";
    var EventEmitter5 = __require("events");
    var startObject = (Ctr) => function() {
      if (this.done) {
        this.done = false;
      } else {
        this.stack.push(this.current, this.key);
      }
      this.current = new Ctr();
      this.key = null;
    };
    var Assembler = class _Assembler extends EventEmitter5 {
      static connectTo(stream7, options) {
        return new _Assembler(options).connectTo(stream7);
      }
      constructor(options) {
        super();
        this.stack = [];
        this.current = this.key = null;
        this.done = true;
        if (options) {
          this.reviver = typeof options.reviver == "function" && options.reviver;
          if (this.reviver) {
            this.stringValue = this._saveValue = this._saveValueWithReviver;
          }
          if (options.numberAsString) {
            this.numberValue = this.stringValue;
          }
        }
      }
      connectTo(stream7) {
        stream7.on("data", (chunk3) => {
          if (this[chunk3.name]) {
            this[chunk3.name](chunk3.value);
            if (this.done) this.emit("done", this);
          }
        });
        return this;
      }
      get depth() {
        return (this.stack.length >> 1) + (this.done ? 0 : 1);
      }
      get path() {
        const path3 = [];
        for (let i5 = 0; i5 < this.stack.length; i5 += 2) {
          const key = this.stack[i5 + 1];
          path3.push(key === null ? this.stack[i5].length : key);
        }
        return path3;
      }
      dropToLevel(level) {
        if (level < this.depth) {
          if (level) {
            const index2 = level - 1 << 1;
            this.current = this.stack[index2];
            this.key = this.stack[index2 + 1];
            this.stack.splice(index2);
          } else {
            this.stack = [];
            this.current = this.key = null;
            this.done = true;
          }
        }
        return this;
      }
      consume(chunk3) {
        this[chunk3.name] && this[chunk3.name](chunk3.value);
        return this;
      }
      keyValue(value2) {
        this.key = value2;
      }
      //stringValue() - aliased below to _saveValue()
      numberValue(value2) {
        this._saveValue(parseFloat(value2));
      }
      nullValue() {
        this._saveValue(null);
      }
      trueValue() {
        this._saveValue(true);
      }
      falseValue() {
        this._saveValue(false);
      }
      //startObject() - assigned below
      endObject() {
        if (this.stack.length) {
          const value2 = this.current;
          this.key = this.stack.pop();
          this.current = this.stack.pop();
          this._saveValue(value2);
        } else {
          this.done = true;
        }
      }
      //startArray() - assigned below
      //endArray() - aliased below to endObject()
      _saveValue(value2) {
        if (this.done) {
          this.current = value2;
        } else {
          if (this.current instanceof Array) {
            this.current.push(value2);
          } else {
            this.current[this.key] = value2;
            this.key = null;
          }
        }
      }
      _saveValueWithReviver(value2) {
        if (this.done) {
          this.current = this.reviver("", value2);
        } else {
          if (this.current instanceof Array) {
            value2 = this.reviver("" + this.current.length, value2);
            this.current.push(value2);
            if (value2 === void 0) {
              delete this.current[this.current.length - 1];
            }
          } else {
            value2 = this.reviver(this.key, value2);
            if (value2 !== void 0) {
              this.current[this.key] = value2;
            }
            this.key = null;
          }
        }
      }
    };
    Assembler.prototype.stringValue = Assembler.prototype._saveValue;
    Assembler.prototype.startObject = startObject(Object);
    Assembler.prototype.startArray = startObject(Array);
    Assembler.prototype.endArray = Assembler.prototype.endObject;
    module.exports = Assembler;
  }
});

// ../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/streamers/StreamBase.js
var require_StreamBase = __commonJS({
  "../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/streamers/StreamBase.js"(exports, module) {
    "use strict";
    var { Transform } = __require("stream");
    var Assembler = require_Assembler();
    var Counter = class {
      constructor(initialDepth) {
        this.depth = initialDepth;
      }
      startObject() {
        ++this.depth;
      }
      endObject() {
        --this.depth;
      }
      startArray() {
        ++this.depth;
      }
      endArray() {
        --this.depth;
      }
    };
    var StreamBase = class extends Transform {
      constructor(options) {
        super(Object.assign({}, options, { writableObjectMode: true, readableObjectMode: true }));
        if (options) {
          this.objectFilter = options.objectFilter;
          this.includeUndecided = options.includeUndecided;
        }
        if (typeof this.objectFilter != "function") {
          this._filter = this._transform;
        }
        this._transform = this._wait || this._filter;
        this._assembler = new Assembler(options);
      }
      _transform(chunk3, encoding, callback) {
        if (this._assembler[chunk3.name]) {
          this._assembler[chunk3.name](chunk3.value);
          if (this._assembler.depth === this._level) {
            this._push();
          }
        }
        callback(null);
      }
      _filter(chunk3, encoding, callback) {
        if (this._assembler[chunk3.name]) {
          this._assembler[chunk3.name](chunk3.value);
          const result = this.objectFilter(this._assembler);
          if (result) {
            if (this._assembler.depth === this._level) {
              this._push();
              this._transform = this._filter;
            }
            this._transform = this._accept;
            return callback(null);
          }
          if (result === false) {
            this._saved_assembler = this._assembler;
            this._assembler = new Counter(this._saved_assembler.depth);
            this._saved_assembler.dropToLevel(this._level);
            if (this._assembler.depth === this._level) {
              this._assembler = this._saved_assembler;
              this._transform = this._filter;
            }
            this._transform = this._reject;
            return callback(null);
          }
          if (this._assembler.depth === this._level) {
            this._push(!this.includeUndecided);
          }
        }
        callback(null);
      }
      _accept(chunk3, encoding, callback) {
        if (this._assembler[chunk3.name]) {
          this._assembler[chunk3.name](chunk3.value);
          if (this._assembler.depth === this._level) {
            this._push();
            this._transform = this._filter;
          }
        }
        callback(null);
      }
      _reject(chunk3, encoding, callback) {
        if (this._assembler[chunk3.name]) {
          this._assembler[chunk3.name](chunk3.value);
          if (this._assembler.depth === this._level) {
            this._assembler = this._saved_assembler;
            this._transform = this._filter;
          }
        }
        callback(null);
      }
    };
    module.exports = StreamBase;
  }
});

// ../../node_modules/.pnpm/stream-chain@2.2.5/node_modules/stream-chain/index.js
var require_stream_chain = __commonJS({
  "../../node_modules/.pnpm/stream-chain@2.2.5/node_modules/stream-chain/index.js"(exports, module) {
    "use strict";
    var { Readable: Readable3, Writable, Duplex: Duplex2, Transform } = __require("stream");
    var none = Symbol.for("object-stream.none");
    var finalSymbol = Symbol.for("object-stream.final");
    var manySymbol = Symbol.for("object-stream.many");
    var final = (value2) => ({ [finalSymbol]: value2 });
    var many = (values) => ({ [manySymbol]: values });
    var isFinal = (o5) => o5 && typeof o5 == "object" && finalSymbol in o5;
    var isMany = (o5) => o5 && typeof o5 == "object" && manySymbol in o5;
    var getFinalValue = (o5) => o5[finalSymbol];
    var getManyValues = (o5) => o5[manySymbol];
    var runAsyncGenerator = async (gen, stream7) => {
      for (; ; ) {
        let data2 = gen.next();
        if (data2 && typeof data2.then == "function") {
          data2 = await data2;
        }
        if (data2.done) break;
        let value2 = data2.value;
        if (value2 && typeof value2.then == "function") {
          value2 = await value2;
        }
        Chain.sanitize(value2, stream7);
      }
    };
    var wrapFunction = (fn) => new Transform({
      writableObjectMode: true,
      readableObjectMode: true,
      transform(chunk3, encoding, callback) {
        try {
          const result = fn.call(this, chunk3, encoding);
          if (result && typeof result.then == "function") {
            result.then(
              (result2) => (Chain.sanitize(result2, this), callback(null)),
              (error) => callback(error)
            );
            return;
          }
          if (result && typeof result.next == "function") {
            runAsyncGenerator(result, this).then(
              () => callback(null),
              (error) => callback(error)
            );
            return;
          }
          Chain.sanitize(result, this);
          callback(null);
        } catch (error) {
          callback(error);
        }
      }
    });
    var wrapArray = (fns) => new Transform({
      writableObjectMode: true,
      readableObjectMode: true,
      transform(chunk3, encoding, callback) {
        try {
          let value2 = chunk3;
          for (let i5 = 0; i5 < fns.length; ++i5) {
            const result = fns[i5].call(this, value2, encoding);
            if (result === Chain.none) {
              callback(null);
              return;
            }
            if (Chain.isFinal(result)) {
              value2 = Chain.getFinalValue(result);
              break;
            }
            value2 = result;
          }
          Chain.sanitize(value2, this);
          callback(null);
        } catch (error) {
          callback(error);
        }
      }
    });
    var isReadableNodeStream = (obj) => obj && typeof obj.pipe === "function" && typeof obj.on === "function" && (!obj._writableState || (typeof obj._readableState === "object" ? obj._readableState.readable : null) !== false) && // Duplex
    (!obj._writableState || obj._readableState);
    var isWritableNodeStream = (obj) => obj && typeof obj.write === "function" && typeof obj.on === "function" && (!obj._readableState || (typeof obj._writableState === "object" ? obj._writableState.writable : null) !== false);
    var isDuplexNodeStream = (obj) => obj && typeof obj.pipe === "function" && obj._readableState && typeof obj.on === "function" && typeof obj.write === "function";
    var Chain = class _Chain extends Duplex2 {
      constructor(fns, options) {
        super(options || { writableObjectMode: true, readableObjectMode: true });
        if (!(fns instanceof Array) || !fns.length) {
          throw Error("Chain's argument should be a non-empty array.");
        }
        this.streams = fns.filter((fn) => fn).map((fn, index2, fns2) => {
          if (typeof fn === "function" || fn instanceof Array) return _Chain.convertToTransform(fn);
          if (isDuplexNodeStream(fn) || !index2 && isReadableNodeStream(fn) || index2 === fns2.length - 1 && isWritableNodeStream(fn)) {
            return fn;
          }
          throw Error("Arguments should be functions, arrays or streams.");
        }).filter((s4) => s4);
        this.input = this.streams[0];
        this.output = this.streams.reduce((output, stream7) => output && output.pipe(stream7) || stream7);
        if (!isWritableNodeStream(this.input)) {
          this._write = (_1, _2, callback) => callback(null);
          this._final = (callback) => callback(null);
          this.input.on("end", () => this.end());
        }
        if (isReadableNodeStream(this.output)) {
          this.output.on("data", (chunk3) => !this.push(chunk3) && this.output.pause());
          this.output.on("end", () => this.push(null));
        } else {
          this._read = () => {
          };
          this.resume();
          this.output.on("finish", () => this.push(null));
        }
        if (!options || !options.skipEvents) {
          this.streams.forEach((stream7) => stream7.on("error", (error) => this.emit("error", error)));
        }
      }
      _write(chunk3, encoding, callback) {
        let error = null;
        try {
          this.input.write(chunk3, encoding, (e4) => callback(e4 || error));
        } catch (e4) {
          error = e4;
        }
      }
      _final(callback) {
        let error = null;
        try {
          this.input.end(null, null, (e4) => callback(e4 || error));
        } catch (e4) {
          error = e4;
        }
      }
      _read() {
        this.output.resume();
      }
      static make(fns, options) {
        return new _Chain(fns, options);
      }
      static sanitize(result, stream7) {
        if (_Chain.isFinal(result)) {
          result = _Chain.getFinalValue(result);
        } else if (_Chain.isMany(result)) {
          result = _Chain.getManyValues(result);
        }
        if (result !== void 0 && result !== null && result !== _Chain.none) {
          if (result instanceof Array) {
            result.forEach((value2) => value2 !== void 0 && value2 !== null && stream7.push(value2));
          } else {
            stream7.push(result);
          }
        }
      }
      static convertToTransform(fn) {
        if (typeof fn === "function") return wrapFunction(fn);
        if (fn instanceof Array) return fn.length ? wrapArray(fn) : null;
        return null;
      }
    };
    Chain.none = none;
    Chain.final = final;
    Chain.isFinal = isFinal;
    Chain.getFinalValue = getFinalValue;
    Chain.many = many;
    Chain.isMany = isMany;
    Chain.getManyValues = getManyValues;
    Chain.chain = Chain.make;
    Chain.make.Constructor = Chain;
    module.exports = Chain;
  }
});

// ../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/utils/Utf8Stream.js
var require_Utf8Stream = __commonJS({
  "../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/utils/Utf8Stream.js"(exports, module) {
    "use strict";
    var { Transform } = __require("stream");
    var { StringDecoder } = __require("string_decoder");
    var Utf8Stream = class extends Transform {
      constructor(options) {
        super(Object.assign({}, options, { writableObjectMode: false }));
        this._buffer = "";
      }
      _transform(chunk3, encoding, callback) {
        if (typeof chunk3 == "string") {
          this._transform = this._transformString;
        } else {
          this._stringDecoder = new StringDecoder();
          this._transform = this._transformBuffer;
        }
        this._transform(chunk3, encoding, callback);
      }
      _transformBuffer(chunk3, _, callback) {
        this._buffer += this._stringDecoder.write(chunk3);
        this._processBuffer(callback);
      }
      _transformString(chunk3, _, callback) {
        this._buffer += chunk3.toString();
        this._processBuffer(callback);
      }
      _processBuffer(callback) {
        if (this._buffer) {
          this.push(this._buffer, "utf8");
          this._buffer = "";
        }
        callback(null);
      }
      _flushInput() {
        if (this._stringDecoder) {
          this._buffer += this._stringDecoder.end();
        }
      }
      _flush(callback) {
        this._flushInput();
        this._processBuffer(callback);
      }
    };
    module.exports = Utf8Stream;
  }
});

// ../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/Parser.js
var require_Parser2 = __commonJS({
  "../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/Parser.js"(exports, module) {
    "use strict";
    var Utf8Stream = require_Utf8Stream();
    var patterns = {
      value1: /^(?:[\"\{\[\]\-\d]|true\b|false\b|null\b|\s{1,256})/,
      string: /^(?:[^\x00-\x1f\"\\]{1,256}|\\[bfnrt\"\\\/]|\\u[\da-fA-F]{4}|\")/,
      key1: /^(?:[\"\}]|\s{1,256})/,
      colon: /^(?:\:|\s{1,256})/,
      comma: /^(?:[\,\]\}]|\s{1,256})/,
      ws: /^\s{1,256}/,
      numberStart: /^\d/,
      numberDigit: /^\d{0,256}/,
      numberFraction: /^[\.eE]/,
      numberExponent: /^[eE]/,
      numberExpSign: /^[-+]/
    };
    var MAX_PATTERN_SIZE = 16;
    var noSticky = true;
    try {
      new RegExp(".", "y");
      noSticky = false;
    } catch (e4) {
    }
    !noSticky && Object.keys(patterns).forEach((key) => {
      let src = patterns[key].source.slice(1);
      if (src.slice(0, 3) === "(?:" && src.slice(-1) === ")") {
        src = src.slice(3, -1);
      }
      patterns[key] = new RegExp(src, "y");
    });
    patterns.numberFracStart = patterns.numberExpStart = patterns.numberStart;
    patterns.numberFracDigit = patterns.numberExpDigit = patterns.numberDigit;
    var values = { true: true, false: false, null: null };
    var expected = { object: "objectStop", array: "arrayStop", "": "done" };
    var fromHex = (s4) => String.fromCharCode(parseInt(s4.slice(2), 16));
    var codes = { b: "\b", f: "\f", n: "\n", r: "\r", t: "	", '"': '"', "\\": "\\", "/": "/" };
    var Parser = class _Parser extends Utf8Stream {
      static make(options) {
        return new _Parser(options);
      }
      constructor(options) {
        super(Object.assign({}, options, { readableObjectMode: true }));
        this._packKeys = this._packStrings = this._packNumbers = this._streamKeys = this._streamStrings = this._streamNumbers = true;
        if (options) {
          "packValues" in options && (this._packKeys = this._packStrings = this._packNumbers = options.packValues);
          "packKeys" in options && (this._packKeys = options.packKeys);
          "packStrings" in options && (this._packStrings = options.packStrings);
          "packNumbers" in options && (this._packNumbers = options.packNumbers);
          "streamValues" in options && (this._streamKeys = this._streamStrings = this._streamNumbers = options.streamValues);
          "streamKeys" in options && (this._streamKeys = options.streamKeys);
          "streamStrings" in options && (this._streamStrings = options.streamStrings);
          "streamNumbers" in options && (this._streamNumbers = options.streamNumbers);
          this._jsonStreaming = options.jsonStreaming;
        }
        !this._packKeys && (this._streamKeys = true);
        !this._packStrings && (this._streamStrings = true);
        !this._packNumbers && (this._streamNumbers = true);
        this._done = false;
        this._expect = this._jsonStreaming ? "done" : "value";
        this._stack = [];
        this._parent = "";
        this._open_number = false;
        this._accumulator = "";
      }
      _flush(callback) {
        this._done = true;
        super._flush((error) => {
          if (error) return callback(error);
          if (this._open_number) {
            if (this._streamNumbers) {
              this.push({ name: "endNumber" });
            }
            this._open_number = false;
            if (this._packNumbers) {
              this.push({ name: "numberValue", value: this._accumulator });
              this._accumulator = "";
            }
          }
          callback(null);
        });
      }
      _processBuffer(callback) {
        let match, value2, index2 = 0;
        main: for (; ; ) {
          switch (this._expect) {
            case "value1":
            case "value":
              patterns.value1.lastIndex = index2;
              match = patterns.value1.exec(this._buffer);
              if (!match) {
                if (this._done || index2 + MAX_PATTERN_SIZE < this._buffer.length) {
                  if (index2 < this._buffer.length) return callback(new Error("Parser cannot parse input: expected a value"));
                  return callback(new Error("Parser has expected a value"));
                }
                break main;
              }
              value2 = match[0];
              switch (value2) {
                case '"':
                  this._streamStrings && this.push({ name: "startString" });
                  this._expect = "string";
                  break;
                case "{":
                  this.push({ name: "startObject" });
                  this._stack.push(this._parent);
                  this._parent = "object";
                  this._expect = "key1";
                  break;
                case "[":
                  this.push({ name: "startArray" });
                  this._stack.push(this._parent);
                  this._parent = "array";
                  this._expect = "value1";
                  break;
                case "]":
                  if (this._expect !== "value1") return callback(new Error("Parser cannot parse input: unexpected token ']'"));
                  if (this._open_number) {
                    this._streamNumbers && this.push({ name: "endNumber" });
                    this._open_number = false;
                    if (this._packNumbers) {
                      this.push({ name: "numberValue", value: this._accumulator });
                      this._accumulator = "";
                    }
                  }
                  this.push({ name: "endArray" });
                  this._parent = this._stack.pop();
                  this._expect = expected[this._parent];
                  break;
                case "-":
                  this._open_number = true;
                  if (this._streamNumbers) {
                    this.push({ name: "startNumber" });
                    this.push({ name: "numberChunk", value: "-" });
                  }
                  this._packNumbers && (this._accumulator = "-");
                  this._expect = "numberStart";
                  break;
                case "0":
                  this._open_number = true;
                  if (this._streamNumbers) {
                    this.push({ name: "startNumber" });
                    this.push({ name: "numberChunk", value: "0" });
                  }
                  this._packNumbers && (this._accumulator = "0");
                  this._expect = "numberFraction";
                  break;
                case "1":
                case "2":
                case "3":
                case "4":
                case "5":
                case "6":
                case "7":
                case "8":
                case "9":
                  this._open_number = true;
                  if (this._streamNumbers) {
                    this.push({ name: "startNumber" });
                    this.push({ name: "numberChunk", value: value2 });
                  }
                  this._packNumbers && (this._accumulator = value2);
                  this._expect = "numberDigit";
                  break;
                case "true":
                case "false":
                case "null":
                  if (this._buffer.length - index2 === value2.length && !this._done) break main;
                  this.push({ name: value2 + "Value", value: values[value2] });
                  this._expect = expected[this._parent];
                  break;
              }
              if (noSticky) {
                this._buffer = this._buffer.slice(value2.length);
              } else {
                index2 += value2.length;
              }
              break;
            case "keyVal":
            case "string":
              patterns.string.lastIndex = index2;
              match = patterns.string.exec(this._buffer);
              if (!match) {
                if (index2 < this._buffer.length && (this._done || this._buffer.length - index2 >= 6))
                  return callback(new Error("Parser cannot parse input: escaped characters"));
                if (this._done) return callback(new Error("Parser has expected a string value"));
                break main;
              }
              value2 = match[0];
              if (value2 === '"') {
                if (this._expect === "keyVal") {
                  this._streamKeys && this.push({ name: "endKey" });
                  if (this._packKeys) {
                    this.push({ name: "keyValue", value: this._accumulator });
                    this._accumulator = "";
                  }
                  this._expect = "colon";
                } else {
                  this._streamStrings && this.push({ name: "endString" });
                  if (this._packStrings) {
                    this.push({ name: "stringValue", value: this._accumulator });
                    this._accumulator = "";
                  }
                  this._expect = expected[this._parent];
                }
              } else if (value2.length > 1 && value2.charAt(0) === "\\") {
                const t4 = value2.length == 2 ? codes[value2.charAt(1)] : fromHex(value2);
                if (this._expect === "keyVal" ? this._streamKeys : this._streamStrings) {
                  this.push({ name: "stringChunk", value: t4 });
                }
                if (this._expect === "keyVal" ? this._packKeys : this._packStrings) {
                  this._accumulator += t4;
                }
              } else {
                if (this._expect === "keyVal" ? this._streamKeys : this._streamStrings) {
                  this.push({ name: "stringChunk", value: value2 });
                }
                if (this._expect === "keyVal" ? this._packKeys : this._packStrings) {
                  this._accumulator += value2;
                }
              }
              if (noSticky) {
                this._buffer = this._buffer.slice(value2.length);
              } else {
                index2 += value2.length;
              }
              break;
            case "key1":
            case "key":
              patterns.key1.lastIndex = index2;
              match = patterns.key1.exec(this._buffer);
              if (!match) {
                if (index2 < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected an object key"));
                break main;
              }
              value2 = match[0];
              if (value2 === '"') {
                this._streamKeys && this.push({ name: "startKey" });
                this._expect = "keyVal";
              } else if (value2 === "}") {
                if (this._expect !== "key1") return callback(new Error("Parser cannot parse input: unexpected token '}'"));
                this.push({ name: "endObject" });
                this._parent = this._stack.pop();
                this._expect = expected[this._parent];
              }
              if (noSticky) {
                this._buffer = this._buffer.slice(value2.length);
              } else {
                index2 += value2.length;
              }
              break;
            case "colon":
              patterns.colon.lastIndex = index2;
              match = patterns.colon.exec(this._buffer);
              if (!match) {
                if (index2 < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected ':'"));
                break main;
              }
              value2 = match[0];
              value2 === ":" && (this._expect = "value");
              if (noSticky) {
                this._buffer = this._buffer.slice(value2.length);
              } else {
                index2 += value2.length;
              }
              break;
            case "arrayStop":
            case "objectStop":
              patterns.comma.lastIndex = index2;
              match = patterns.comma.exec(this._buffer);
              if (!match) {
                if (index2 < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected ','"));
                break main;
              }
              if (this._open_number) {
                this._streamNumbers && this.push({ name: "endNumber" });
                this._open_number = false;
                if (this._packNumbers) {
                  this.push({ name: "numberValue", value: this._accumulator });
                  this._accumulator = "";
                }
              }
              value2 = match[0];
              if (value2 === ",") {
                this._expect = this._expect === "arrayStop" ? "value" : "key";
              } else if (value2 === "}" || value2 === "]") {
                if (value2 === "}" ? this._expect === "arrayStop" : this._expect !== "arrayStop") {
                  return callback(new Error("Parser cannot parse input: expected '" + (this._expect === "arrayStop" ? "]" : "}") + "'"));
                }
                this.push({ name: value2 === "}" ? "endObject" : "endArray" });
                this._parent = this._stack.pop();
                this._expect = expected[this._parent];
              }
              if (noSticky) {
                this._buffer = this._buffer.slice(value2.length);
              } else {
                index2 += value2.length;
              }
              break;
            // number chunks
            case "numberStart":
              patterns.numberStart.lastIndex = index2;
              match = patterns.numberStart.exec(this._buffer);
              if (!match) {
                if (index2 < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected a starting digit"));
                break main;
              }
              value2 = match[0];
              this._streamNumbers && this.push({ name: "numberChunk", value: value2 });
              this._packNumbers && (this._accumulator += value2);
              this._expect = value2 === "0" ? "numberFraction" : "numberDigit";
              if (noSticky) {
                this._buffer = this._buffer.slice(value2.length);
              } else {
                index2 += value2.length;
              }
              break;
            case "numberDigit":
              patterns.numberDigit.lastIndex = index2;
              match = patterns.numberDigit.exec(this._buffer);
              if (!match) {
                if (index2 < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected a digit"));
                break main;
              }
              value2 = match[0];
              if (value2) {
                this._streamNumbers && this.push({ name: "numberChunk", value: value2 });
                this._packNumbers && (this._accumulator += value2);
                if (noSticky) {
                  this._buffer = this._buffer.slice(value2.length);
                } else {
                  index2 += value2.length;
                }
              } else {
                if (index2 < this._buffer.length) {
                  this._expect = "numberFraction";
                  break;
                }
                if (this._done) {
                  this._expect = expected[this._parent];
                  break;
                }
                break main;
              }
              break;
            case "numberFraction":
              patterns.numberFraction.lastIndex = index2;
              match = patterns.numberFraction.exec(this._buffer);
              if (!match) {
                if (index2 < this._buffer.length || this._done) {
                  this._expect = expected[this._parent];
                  break;
                }
                break main;
              }
              value2 = match[0];
              this._streamNumbers && this.push({ name: "numberChunk", value: value2 });
              this._packNumbers && (this._accumulator += value2);
              this._expect = value2 === "." ? "numberFracStart" : "numberExpSign";
              if (noSticky) {
                this._buffer = this._buffer.slice(value2.length);
              } else {
                index2 += value2.length;
              }
              break;
            case "numberFracStart":
              patterns.numberFracStart.lastIndex = index2;
              match = patterns.numberFracStart.exec(this._buffer);
              if (!match) {
                if (index2 < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected a fractional part of a number"));
                break main;
              }
              value2 = match[0];
              this._streamNumbers && this.push({ name: "numberChunk", value: value2 });
              this._packNumbers && (this._accumulator += value2);
              this._expect = "numberFracDigit";
              if (noSticky) {
                this._buffer = this._buffer.slice(value2.length);
              } else {
                index2 += value2.length;
              }
              break;
            case "numberFracDigit":
              patterns.numberFracDigit.lastIndex = index2;
              match = patterns.numberFracDigit.exec(this._buffer);
              value2 = match[0];
              if (value2) {
                this._streamNumbers && this.push({ name: "numberChunk", value: value2 });
                this._packNumbers && (this._accumulator += value2);
                if (noSticky) {
                  this._buffer = this._buffer.slice(value2.length);
                } else {
                  index2 += value2.length;
                }
              } else {
                if (index2 < this._buffer.length) {
                  this._expect = "numberExponent";
                  break;
                }
                if (this._done) {
                  this._expect = expected[this._parent];
                  break;
                }
                break main;
              }
              break;
            case "numberExponent":
              patterns.numberExponent.lastIndex = index2;
              match = patterns.numberExponent.exec(this._buffer);
              if (!match) {
                if (index2 < this._buffer.length) {
                  this._expect = expected[this._parent];
                  break;
                }
                if (this._done) {
                  this._expect = "done";
                  break;
                }
                break main;
              }
              value2 = match[0];
              this._streamNumbers && this.push({ name: "numberChunk", value: value2 });
              this._packNumbers && (this._accumulator += value2);
              this._expect = "numberExpSign";
              if (noSticky) {
                this._buffer = this._buffer.slice(value2.length);
              } else {
                index2 += value2.length;
              }
              break;
            case "numberExpSign":
              patterns.numberExpSign.lastIndex = index2;
              match = patterns.numberExpSign.exec(this._buffer);
              if (!match) {
                if (index2 < this._buffer.length) {
                  this._expect = "numberExpStart";
                  break;
                }
                if (this._done) return callback(new Error("Parser has expected an exponent value of a number"));
                break main;
              }
              value2 = match[0];
              this._streamNumbers && this.push({ name: "numberChunk", value: value2 });
              this._packNumbers && (this._accumulator += value2);
              this._expect = "numberExpStart";
              if (noSticky) {
                this._buffer = this._buffer.slice(value2.length);
              } else {
                index2 += value2.length;
              }
              break;
            case "numberExpStart":
              patterns.numberExpStart.lastIndex = index2;
              match = patterns.numberExpStart.exec(this._buffer);
              if (!match) {
                if (index2 < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected an exponent part of a number"));
                break main;
              }
              value2 = match[0];
              this._streamNumbers && this.push({ name: "numberChunk", value: value2 });
              this._packNumbers && (this._accumulator += value2);
              this._expect = "numberExpDigit";
              if (noSticky) {
                this._buffer = this._buffer.slice(value2.length);
              } else {
                index2 += value2.length;
              }
              break;
            case "numberExpDigit":
              patterns.numberExpDigit.lastIndex = index2;
              match = patterns.numberExpDigit.exec(this._buffer);
              value2 = match[0];
              if (value2) {
                this._streamNumbers && this.push({ name: "numberChunk", value: value2 });
                this._packNumbers && (this._accumulator += value2);
                if (noSticky) {
                  this._buffer = this._buffer.slice(value2.length);
                } else {
                  index2 += value2.length;
                }
              } else {
                if (index2 < this._buffer.length || this._done) {
                  this._expect = expected[this._parent];
                  break;
                }
                break main;
              }
              break;
            case "done":
              patterns.ws.lastIndex = index2;
              match = patterns.ws.exec(this._buffer);
              if (!match) {
                if (index2 < this._buffer.length) {
                  if (this._jsonStreaming) {
                    this._expect = "value";
                    break;
                  }
                  return callback(new Error("Parser cannot parse input: unexpected characters"));
                }
                break main;
              }
              value2 = match[0];
              if (this._open_number) {
                this._streamNumbers && this.push({ name: "endNumber" });
                this._open_number = false;
                if (this._packNumbers) {
                  this.push({ name: "numberValue", value: this._accumulator });
                  this._accumulator = "";
                }
              }
              if (noSticky) {
                this._buffer = this._buffer.slice(value2.length);
              } else {
                index2 += value2.length;
              }
              break;
          }
        }
        !noSticky && (this._buffer = this._buffer.slice(index2));
        callback(null);
      }
    };
    Parser.parser = Parser.make;
    Parser.make.Constructor = Parser;
    module.exports = Parser;
  }
});

// ../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/utils/withParser.js
var require_withParser = __commonJS({
  "../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/utils/withParser.js"(exports, module) {
    "use strict";
    var { chain } = require_stream_chain();
    var Parser = require_Parser2();
    var withParser = (fn, options) => chain([new Parser(options), fn(options)], Object.assign({}, options, { writableObjectMode: false, readableObjectMode: true }));
    module.exports = withParser;
  }
});

// ../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/streamers/StreamArray.js
var require_StreamArray = __commonJS({
  "../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/streamers/StreamArray.js"(exports, module) {
    "use strict";
    var StreamBase = require_StreamBase();
    var withParser = require_withParser();
    var StreamArray = class _StreamArray extends StreamBase {
      static make(options) {
        return new _StreamArray(options);
      }
      static withParser(options) {
        return withParser(_StreamArray.make, options);
      }
      constructor(options) {
        super(options);
        this._level = 1;
        this._counter = 0;
      }
      _wait(chunk3, _, callback) {
        if (chunk3.name !== "startArray") {
          return callback(new Error("Top-level object should be an array."));
        }
        this._transform = this._filter;
        return this._transform(chunk3, _, callback);
      }
      _push(discard) {
        if (this._assembler.current.length) {
          if (discard) {
            ++this._counter;
            this._assembler.current.pop();
          } else {
            this.push({ key: this._counter++, value: this._assembler.current.pop() });
          }
        }
      }
    };
    StreamArray.streamArray = StreamArray.make;
    StreamArray.make.Constructor = StreamArray;
    module.exports = StreamArray;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/serialization.js
var require_serialization = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/serialization.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.serializeArray = serializeArray2;
    exports.deserializeArray = deserializeArray2;
    exports.createDeserialize = createDeserialize2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_stream_1 = __require("node:stream");
    var node_util_1 = tslib_1.__importDefault(__require("node:util"));
    var node_zlib_1 = tslib_1.__importDefault(__require("node:zlib"));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var StreamArray_1 = tslib_1.__importDefault(require_StreamArray());
    var pipeline2 = node_util_1.default.promisify(node_stream_1.pipeline);
    var ArrayToJson = class extends node_stream_1.Readable {
      constructor(data2, options = {}) {
        super({
          ...options,
          autoDestroy: true,
          emitClose: true
        });
        Object.defineProperty(this, "data", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: data2
        });
        Object.defineProperty(this, "offset", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "batchSize", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        const { batchSize = 1e4 } = options;
        this.batchSize = batchSize;
        this.data = data2;
        this.push("[");
      }
      _read() {
        try {
          const items = this.data.slice(this.offset, this.offset + this.batchSize);
          if (items.length) {
            const json = JSON.stringify(items);
            const itemString = json.substring(1, json.length - 1);
            if (this.offset > 0)
              this.push(",", "utf8");
            this.push(itemString, "utf8");
            this.offset += this.batchSize;
          } else {
            this.push("]");
            this.push(null);
          }
        } catch (err2) {
          this.emit("error", err2);
        }
      }
    };
    async function serializeArray2(data2) {
      (0, ow_1.default)(data2, ow_1.default.array);
      const { chunks, collector } = createChunkCollector();
      await pipeline2(new ArrayToJson(data2), node_zlib_1.default.createGzip(), collector);
      return Buffer.concat(chunks);
    }
    async function deserializeArray2(compressedData) {
      (0, ow_1.default)(compressedData, ow_1.default.uint8Array);
      const { chunks, collector } = createChunkCollector({ fromValuesStream: true });
      await pipeline2(node_stream_1.Readable.from([compressedData]), node_zlib_1.default.createGunzip(), StreamArray_1.default.withParser(), collector);
      return chunks;
    }
    function createDeserialize2(compressedData) {
      (0, ow_1.default)(compressedData, ow_1.default.uint8Array);
      const streamArray = StreamArray_1.default.withParser();
      const destination = pluckValue(streamArray);
      (0, node_stream_1.pipeline)(
        node_stream_1.Readable.from([compressedData]),
        node_zlib_1.default.createGunzip(),
        destination,
        // @ts-expect-error Something's wrong here, the types are wrong but tests fail if we correct the code to make them right
        (err2) => destination.emit(err2)
      );
      return destination;
    }
    function createChunkCollector(options = {}) {
      const { fromValuesStream = false } = options;
      const chunks = [];
      const collector = new node_stream_1.Writable({
        decodeStrings: false,
        objectMode: fromValuesStream,
        write(chunk3, _nil, callback) {
          chunks.push(fromValuesStream ? chunk3.value : chunk3);
          callback();
        },
        writev(chunkObjects, callback) {
          const buffers = chunkObjects.map(({ chunk: chunk3 }) => {
            return fromValuesStream ? chunk3.value : chunk3;
          });
          chunkObjects.push(...buffers);
          callback();
        }
      });
      return { collector, chunks };
    }
    function pluckValue(streamArray) {
      const realPush = streamArray.push.bind(streamArray);
      streamArray.push = (obj) => realPush(obj && obj.value);
      return streamArray;
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_list.js
var require_request_list = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_list.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RequestList = exports.REQUESTS_PERSISTENCE_KEY = exports.STATE_PERSISTENCE_KEY = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var utils_1 = require_utils9();
    var ow_1 = tslib_1.__importStar(require_dist2());
    var configuration_1 = require_configuration();
    var log_1 = require_log();
    var request_1 = require_request();
    var serialization_1 = require_serialization();
    var key_value_store_1 = require_key_value_store3();
    var utils_2 = require_utils10();
    exports.STATE_PERSISTENCE_KEY = "REQUEST_LIST_STATE";
    exports.REQUESTS_PERSISTENCE_KEY = "REQUEST_LIST_REQUESTS";
    var CONTENT_TYPE_BINARY = "application/octet-stream";
    var RequestList2 = class _RequestList {
      /**
       * To create new instance of `RequestList` we need to use `RequestList.open()` factory method.
       * @param options All `RequestList` configuration options
       * @internal
       */
      constructor(options = {}) {
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: log_1.log.child({ prefix: "RequestList" })
        });
        Object.defineProperty(this, "requests", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "nextIndex", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "uniqueKeyToIndex", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        Object.defineProperty(this, "inProgress", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
        Object.defineProperty(this, "reclaimed", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
        Object.defineProperty(this, "isStatePersisted", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: true
        });
        Object.defineProperty(this, "areRequestsPersisted", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "isLoading", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "isInitialized", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "persistStateKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistRequestsKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "initialState", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "store", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keepDuplicateUrls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sources", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sourcesFunction", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "proxyConfiguration", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        const { sources, sourcesFunction, persistStateKey, persistRequestsKey, state, proxyConfiguration, keepDuplicateUrls = false, config = configuration_1.Configuration.getGlobalConfig() } = options;
        if (!(sources || sourcesFunction)) {
          throw new ow_1.ArgumentError('At least one of "sources" or "sourcesFunction" must be provided.', this.constructor);
        }
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          sources: ow_1.default.optional.array,
          // check only for array and not subtypes to avoid iteration over the whole thing
          sourcesFunction: ow_1.default.optional.function,
          persistStateKey: ow_1.default.optional.string,
          persistRequestsKey: ow_1.default.optional.string,
          state: ow_1.default.optional.object.exactShape({
            nextIndex: ow_1.default.number,
            nextUniqueKey: ow_1.default.string,
            inProgress: ow_1.default.object
          }),
          keepDuplicateUrls: ow_1.default.optional.boolean,
          proxyConfiguration: ow_1.default.optional.object
        }));
        this.persistStateKey = persistStateKey ? `SDK_${persistStateKey}` : persistStateKey;
        this.persistRequestsKey = persistRequestsKey ? `SDK_${persistRequestsKey}` : persistRequestsKey;
        this.initialState = state;
        this.events = config.getEventManager();
        this.keepDuplicateUrls = keepDuplicateUrls;
        this.sources = sources ? [...sources] : [];
        this.sourcesFunction = sourcesFunction;
        this.proxyConfiguration = proxyConfiguration;
      }
      /**
       * Loads all remote sources of URLs and potentially starts periodic state persistence.
       * This function must be called before you can start using the instance in a meaningful way.
       */
      async initialize() {
        if (this.isLoading) {
          throw new Error("RequestList sources are already loading or were loaded.");
        }
        this.isLoading = true;
        await (0, utils_2.purgeDefaultStorages)({ onlyPurgeOnce: true });
        const [state, persistedRequests] = await this._loadStateAndPersistedRequests();
        if (persistedRequests) {
          await this._addPersistedRequests(persistedRequests);
        } else {
          await this._addRequestsFromSources();
        }
        this._restoreState(state);
        this.isInitialized = true;
        if (this.persistRequestsKey && !this.areRequestsPersisted)
          await this._persistRequests();
        if (this.persistStateKey) {
          this.events.on("persistState", this.persistState.bind(this));
        }
        return this;
      }
      /**
       * Adds previously persisted Requests, as retrieved from the key-value store.
       * This needs to be done in a memory efficient way. We should update the input
       * to a Stream once apify-client supports streams.
       */
      async _addPersistedRequests(persistedRequests) {
        for (let i5 = 0; i5 < this.sources.length; i5++) {
          delete this.sources[i5];
        }
        this.sources = [];
        this.areRequestsPersisted = true;
        const requestStream = (0, serialization_1.createDeserialize)(persistedRequests);
        for await (const request of requestStream) {
          this._addRequest(request);
        }
      }
      /**
       * Add Requests from both options.sources and options.sourcesFunction.
       * This function is called only when persisted sources were not loaded.
       * We need to avoid keeping both sources and requests in memory
       * to reduce memory footprint with very large sources.
       */
      async _addRequestsFromSources() {
        const sourcesCount = this.sources.length;
        for (let i5 = 0; i5 < sourcesCount; i5++) {
          const source = this.sources[i5];
          delete this.sources[i5];
          if (typeof source === "object" && source.requestsFromUrl) {
            const fetchedRequests = await this._fetchRequestsFromUrl(source);
            await this._addFetchedRequests(source, fetchedRequests);
          } else {
            this._addRequest(source);
          }
        }
        this.sources = [];
        if (this.sourcesFunction) {
          try {
            const sourcesFromFunction = await this.sourcesFunction();
            const sourcesFromFunctionCount = sourcesFromFunction.length;
            for (let i5 = 0; i5 < sourcesFromFunctionCount; i5++) {
              const source = sourcesFromFunction.shift();
              this._addRequest(source);
            }
          } catch (e4) {
            const err2 = e4;
            throw new Error(`Loading requests with sourcesFunction failed.
Cause: ${err2.message}`);
          }
        }
      }
      /**
       * @inheritDoc
       */
      async persistState() {
        if (!this.persistStateKey) {
          throw new Error("Cannot persist state. options.persistStateKey is not set.");
        }
        if (this.isStatePersisted)
          return;
        try {
          this.store ?? (this.store = await key_value_store_1.KeyValueStore.open());
          await this.store.setValue(this.persistStateKey, this.getState());
          this.isStatePersisted = true;
        } catch (e4) {
          const err2 = e4;
          this.log.exception(err2, "Attempted to persist state, but failed.");
        }
      }
      /**
       * Unlike persistState(), this is used only internally, since the sources
       * are automatically persisted at RequestList initialization (if the persistRequestsKey is set),
       * but there's no reason to persist it again afterwards, because RequestList is immutable.
       */
      async _persistRequests() {
        const serializedRequests = await (0, serialization_1.serializeArray)(this.requests);
        this.store ?? (this.store = await key_value_store_1.KeyValueStore.open());
        await this.store.setValue(this.persistRequestsKey, serializedRequests, { contentType: CONTENT_TYPE_BINARY });
        this.areRequestsPersisted = true;
      }
      /**
       * Restores RequestList state from a state object.
       */
      _restoreState(state) {
        if (!state)
          return;
        if (typeof state.nextIndex !== "number" || state.nextIndex < 0) {
          throw new Error("The state object is invalid: nextIndex must be a non-negative number.");
        }
        if (state.nextIndex > this.requests.length) {
          throw new Error("The state object is not consistent with RequestList, too few requests loaded.");
        }
        if (state.nextIndex < this.requests.length && this.requests[state.nextIndex].uniqueKey !== state.nextUniqueKey) {
          throw new Error("The state object is not consistent with RequestList the order of URLs seems to have changed.");
        }
        const deleteFromInProgress = [];
        state.inProgress.forEach((uniqueKey) => {
          const index2 = this.uniqueKeyToIndex[uniqueKey];
          if (typeof index2 !== "number") {
            throw new Error("The state object is not consistent with RequestList. Unknown uniqueKey is present in the state.");
          }
          if (index2 >= state.nextIndex) {
            deleteFromInProgress.push(uniqueKey);
          }
        });
        this.nextIndex = state.nextIndex;
        this.inProgress = new Set(state.inProgress);
        if (deleteFromInProgress.length) {
          this.log.warning("RequestList's in-progress field is not consistent, skipping invalid in-progress entries", {
            deleteFromInProgress
          });
          for (const uniqueKey of deleteFromInProgress) {
            this.inProgress.delete(uniqueKey);
          }
        }
        this.reclaimed = new Set(this.inProgress);
      }
      /**
       * Attempts to load state and requests using the `RequestList` configuration
       * and returns a tuple of [state, requests] where each may be null if not loaded.
       */
      async _loadStateAndPersistedRequests() {
        let state;
        let persistedRequests;
        if (this.initialState) {
          state = this.initialState;
          this.log.debug("Loaded state from options.state argument.");
        } else if (this.persistStateKey) {
          state = await this._getPersistedState(this.persistStateKey);
          if (state)
            this.log.debug("Loaded state from key value store using the persistStateKey.");
        }
        if (this.persistRequestsKey) {
          persistedRequests = await this._getPersistedState(this.persistRequestsKey);
          if (persistedRequests)
            this.log.debug("Loaded requests from key value store using the persistRequestsKey.");
        }
        return [state, persistedRequests];
      }
      /**
       * Returns an object representing the internal state of the `RequestList` instance.
       * Note that the object's fields can change in future releases.
       */
      getState() {
        this._ensureIsInitialized();
        return {
          nextIndex: this.nextIndex,
          nextUniqueKey: this.nextIndex < this.requests.length ? this.requests[this.nextIndex].uniqueKey : null,
          inProgress: [...this.inProgress]
        };
      }
      /**
       * @inheritDoc
       */
      async isEmpty() {
        this._ensureIsInitialized();
        return this.reclaimed.size === 0 && this.nextIndex >= this.requests.length;
      }
      /**
       * @inheritDoc
       */
      async isFinished() {
        this._ensureIsInitialized();
        return this.inProgress.size === 0 && this.nextIndex >= this.requests.length;
      }
      /**
       * @inheritDoc
       */
      async fetchNextRequest() {
        this._ensureIsInitialized();
        const uniqueKey = this.reclaimed.values().next().value;
        if (uniqueKey) {
          this.reclaimed.delete(uniqueKey);
          const index2 = this.uniqueKeyToIndex[uniqueKey];
          return this.ensureRequest(this.requests[index2], index2);
        }
        if (this.nextIndex < this.requests.length) {
          const index2 = this.nextIndex;
          const request = this.requests[index2];
          this.inProgress.add(request.uniqueKey);
          this.nextIndex++;
          this.isStatePersisted = false;
          return this.ensureRequest(request, index2);
        }
        return null;
      }
      /**
       * @inheritDoc
       */
      async *[Symbol.asyncIterator]() {
        while (true) {
          const req = await this.fetchNextRequest();
          if (!req)
            break;
          yield req;
        }
      }
      ensureRequest(requestLike, index2) {
        if (requestLike instanceof request_1.Request) {
          return requestLike;
        }
        this.requests[index2] = new request_1.Request(requestLike);
        return this.requests[index2];
      }
      /**
       * @inheritDoc
       */
      async markRequestHandled(request) {
        const { uniqueKey } = request;
        this._ensureUniqueKeyValid(uniqueKey);
        this._ensureInProgressAndNotReclaimed(uniqueKey);
        this._ensureIsInitialized();
        this.inProgress.delete(uniqueKey);
        this.isStatePersisted = false;
      }
      /**
       * @inheritDoc
       */
      async reclaimRequest(request) {
        const { uniqueKey } = request;
        this._ensureUniqueKeyValid(uniqueKey);
        this._ensureInProgressAndNotReclaimed(uniqueKey);
        this._ensureIsInitialized();
        this.reclaimed.add(uniqueKey);
      }
      /**
       * Adds all fetched requests from a URL from a remote resource.
       */
      async _addFetchedRequests(source, fetchedRequests) {
        const { requestsFromUrl, regex: regex2 } = source;
        const originalLength = this.requests.length;
        fetchedRequests.forEach((request) => this._addRequest(request));
        const fetchedCount = fetchedRequests.length;
        const importedCount = this.requests.length - originalLength;
        this.log.info("Fetched and loaded Requests from a remote resource.", {
          requestsFromUrl,
          regex: regex2,
          fetchedCount,
          importedCount,
          duplicateCount: fetchedCount - importedCount,
          sample: JSON.stringify(fetchedRequests.slice(0, 5))
        });
      }
      async _getPersistedState(key) {
        this.store ?? (this.store = await key_value_store_1.KeyValueStore.open());
        const state = await this.store.getValue(key);
        return state;
      }
      /**
       * Fetches URLs from requestsFromUrl and returns them in format of list of requests
       */
      async _fetchRequestsFromUrl(source) {
        const { requestsFromUrl, regex: regex2, ...sharedOpts } = source;
        let urlsArr;
        try {
          urlsArr = await this._downloadListOfUrls({
            url: requestsFromUrl,
            urlRegExp: regex2,
            proxyUrl: await this.proxyConfiguration?.newUrl()
          });
        } catch (err2) {
          throw new Error(`Cannot fetch a request list from ${requestsFromUrl}: ${err2}`);
        }
        if (!urlsArr.length) {
          this.log.warning("The fetched list contains no valid URLs.", { requestsFromUrl, regex: regex2 });
          return [];
        }
        return urlsArr.map((url3) => ({ url: url3, ...sharedOpts }));
      }
      /**
       * Adds given request.
       * If the `source` parameter is a string or plain object and not an instance
       * of a `Request`, then the function creates a `Request` instance.
       */
      _addRequest(source) {
        let request;
        const type = typeof source;
        if (type === "string") {
          request = { url: source };
        } else if (source instanceof request_1.Request) {
          request = source;
        } else if (source && type === "object") {
          request = source;
        } else {
          throw new Error(`Cannot create Request from type: ${type}`);
        }
        const hasUniqueKey = Reflect.has(Object(source), "uniqueKey");
        request.uniqueKey ?? (request.uniqueKey = request_1.Request.computeUniqueKey(request));
        if (this.keepDuplicateUrls && !hasUniqueKey) {
          request.uniqueKey += `-${this.requests.length}`;
        }
        const { uniqueKey } = request;
        this._ensureUniqueKeyValid(uniqueKey);
        if (!Object.hasOwn(this.uniqueKeyToIndex, uniqueKey)) {
          this.uniqueKeyToIndex[uniqueKey] = this.requests.length;
          this.requests.push(request);
        } else if (this.keepDuplicateUrls) {
          this.log.warning(`Duplicate uniqueKey: ${uniqueKey} found while the keepDuplicateUrls option was set. Check your sources' unique keys.`);
        }
      }
      /**
       * Helper function that validates unique key.
       * Throws an error if uniqueKey is not a non-empty string.
       */
      _ensureUniqueKeyValid(uniqueKey) {
        if (typeof uniqueKey !== "string" || !uniqueKey) {
          throw new Error("Request object's uniqueKey must be a non-empty string");
        }
      }
      /**
       * Checks that request is not reclaimed and throws an error if so.
       */
      _ensureInProgressAndNotReclaimed(uniqueKey) {
        if (!this.inProgress.has(uniqueKey)) {
          throw new Error(`The request is not being processed (uniqueKey: ${uniqueKey})`);
        }
        if (this.reclaimed.has(uniqueKey)) {
          throw new Error(`The request was already reclaimed (uniqueKey: ${uniqueKey})`);
        }
      }
      /**
       * Throws an error if request list wasn't initialized.
       */
      _ensureIsInitialized() {
        if (!this.isInitialized) {
          throw new Error('RequestList is not initialized; you must call "await requestList.initialize()" before using it!');
        }
      }
      /**
       * Returns the total number of unique requests present in the `RequestList`.
       */
      length() {
        this._ensureIsInitialized();
        return this.requests.length;
      }
      /**
       * @inheritDoc
       */
      handledCount() {
        this._ensureIsInitialized();
        return this.nextIndex - this.inProgress.size;
      }
      /**
       * Opens a request list and returns a promise resolving to an instance
       * of the {@link RequestList} class that is already initialized.
       *
       * {@link RequestList} represents a list of URLs to crawl, which is always stored in memory.
       * To enable picking up where left off after a process restart, the request list sources
       * are persisted to the key-value store at initialization of the list. Then, while crawling,
       * a small state object is regularly persisted to keep track of the crawling status.
       *
       * For more details and code examples, see the {@link RequestList} class.
       *
       * **Example usage:**
       *
       * ```javascript
       * const sources = [
       *     'https://www.example.com',
       *     'https://www.google.com',
       *     'https://www.bing.com'
       * ];
       *
       * const requestList = await RequestList.open('my-name', sources);
       * ```
       *
       * @param listNameOrOptions
       *   Name of the request list to be opened, or the options object. Setting a name enables the `RequestList`'s
       *   state to be persisted in the key-value store. This is useful in case of a restart or migration. Since `RequestList`
       *   is only stored in memory, a restart or migration wipes it clean. Setting a name will enable the `RequestList`'s
       *   state to survive those situations and continue where it left off.
       *
       *   The name will be used as a prefix in key-value store, producing keys such as `NAME-REQUEST_LIST_STATE`
       *   and `NAME-REQUEST_LIST_SOURCES`.
       *
       *   If `null`, the list will not be persisted and will only be stored in memory. Process restart
       *   will then cause the list to be crawled again from the beginning. We suggest always using a name.
       * @param [sources]
       *  An array of sources of URLs for the {@link RequestList}. It can be either an array of strings,
       *  plain objects that define at least the `url` property, or an array of {@link Request} instances.
       *
       *  **IMPORTANT:** The `sources` array will be consumed (left empty) after {@link RequestList} initializes.
       *  This is a measure to prevent memory leaks in situations when millions of sources are
       *  added.
       *
       *  Additionally, the `requestsFromUrl` property may be used instead of `url`,
       *  which will instruct {@link RequestList} to download the source URLs from a given remote location.
       *  The URLs will be parsed from the received response. In this case you can limit the URLs
       *  using `regex` parameter containing regular expression pattern for URLs to be included.
       *
       *  For details, see the {@link RequestListOptions.sources}
       * @param [options]
       *   The {@link RequestList} options. Note that the `listName` parameter supersedes
       *   the {@link RequestListOptions.persistStateKey} and {@link RequestListOptions.persistRequestsKey}
       *   options and the `sources` parameter supersedes the {@link RequestListOptions.sources} option.
       */
      static async open(listNameOrOptions, sources, options = {}) {
        if (listNameOrOptions != null && typeof listNameOrOptions === "object") {
          options = { ...listNameOrOptions, ...options };
          const rl2 = new _RequestList(options);
          await rl2.initialize();
          return rl2;
        }
        const listName = listNameOrOptions;
        (0, ow_1.default)(listName, ow_1.default.optional.any(ow_1.default.string, ow_1.default.null));
        (0, ow_1.default)(sources, ow_1.default.array);
        (0, ow_1.default)(options, ow_1.default.object.is((v3) => !Array.isArray(v3)));
        const rl = new _RequestList({
          ...options,
          persistStateKey: listName ? `${listName}-${exports.STATE_PERSISTENCE_KEY}` : options.persistStateKey,
          persistRequestsKey: listName ? `${listName}-${exports.REQUESTS_PERSISTENCE_KEY}` : options.persistRequestsKey,
          sources: sources ?? options.sources
        });
        await rl.initialize();
        return rl;
      }
      /**
       * @internal wraps public utility for mocking purposes
       */
      async _downloadListOfUrls(options) {
        return (0, utils_1.downloadListOfUrls)(options);
      }
    };
    exports.RequestList = RequestList2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_list_adapter.js
var require_request_list_adapter = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_list_adapter.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RequestListAdapter = void 0;
    var RequestListAdapter2 = class {
      constructor(requestList) {
        Object.defineProperty(this, "requestList", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: requestList
        });
      }
      /**
       * @inheritdoc
       */
      async isFinished() {
        return this.requestList.isFinished();
      }
      /**
       * @inheritdoc
       */
      async isEmpty() {
        return this.requestList.isEmpty();
      }
      /**
       * @inheritdoc
       */
      async handledCount() {
        return Promise.resolve(this.requestList.handledCount());
      }
      /**
       * @inheritdoc
       */
      getTotalCount() {
        return this.requestList.length();
      }
      /**
       * @inheritdoc
       */
      getPendingCount() {
        return this.requestList.length() - this.requestList.handledCount();
      }
      /**
       * @inheritdoc
       */
      async fetchNextRequest() {
        return await this.requestList.fetchNextRequest();
      }
      /**
       * @inheritdoc
       */
      async markRequestHandled(request) {
        return this.requestList.markRequestHandled(request);
      }
      /**
       * @inheritdoc
       */
      async reclaimRequest(request, _options2) {
        await this.requestList.reclaimRequest(request);
        return null;
      }
      /**
       * @inheritdoc
       */
      async *[Symbol.asyncIterator]() {
        for await (const request of this.requestList) {
          yield request;
        }
      }
      /**
       * @inheritdoc
       */
      addRequestsBatched() {
        throw new Error("Cannot add requests to a read-only request list");
      }
      /**
       * @inheritdoc
       */
      addRequest() {
        throw new Error("Cannot add requests to a read-only request list");
      }
    };
    exports.RequestListAdapter = RequestListAdapter2;
  }
});

// ../../node_modules/.pnpm/@apify+datastructures@2.0.3/node_modules/@apify/datastructures/cjs/index.cjs
var require_cjs9 = __commonJS({
  "../../node_modules/.pnpm/@apify+datastructures@2.0.3/node_modules/@apify/datastructures/cjs/index.cjs"(exports, module) {
    "use strict";
    var __defProp3 = Object.defineProperty;
    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames2 = Object.getOwnPropertyNames;
    var __hasOwnProp2 = Object.prototype.hasOwnProperty;
    var __defNormalProp2 = (obj, key, value2) => key in obj ? __defProp3(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
    var __name2 = (target, value2) => __defProp3(target, "name", { value: value2, configurable: true });
    var __export2 = (target, all5) => {
      for (var name in all5)
        __defProp3(target, name, { get: all5[name], enumerable: true });
    };
    var __copyProps2 = (to, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames2(from))
          if (!__hasOwnProp2.call(to, key) && key !== except)
            __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
      }
      return to;
    };
    var __toCommonJS2 = (mod3) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod3);
    var __publicField2 = (obj, key, value2) => __defNormalProp2(obj, typeof key !== "symbol" ? key + "" : key, value2);
    var index_exports = {};
    __export2(index_exports, {
      LinkedList: () => LinkedList2,
      LinkedListNode: () => LinkedListNode2,
      ListDictionary: () => ListDictionary,
      LruCache: () => LruCache
    });
    module.exports = __toCommonJS2(index_exports);
    var dataEqual = /* @__PURE__ */ __name2((data1, data2) => {
      if (data1 === null) return data2 === null;
      if (data1.equals) return data1.equals(data2);
      return data1 === data2;
    }, "dataEqual");
    var _LinkedListNode = class _LinkedListNode {
      constructor(data2) {
        this.data = data2;
        __publicField2(this, "prev", null);
        __publicField2(this, "next", null);
        __publicField2(this, "dictKey");
      }
    };
    __name2(_LinkedListNode, "LinkedListNode");
    var LinkedListNode2 = _LinkedListNode;
    var _LinkedList = class _LinkedList {
      constructor() {
        __publicField2(this, "head", null);
        __publicField2(this, "tail", null);
        __publicField2(this, "length", 0);
      }
      /**
        * Appends a new node with specific data to the end of the linked list.
        */
      add(data2, toFirstPosition) {
        const node = new LinkedListNode2(data2);
        this.addNode(node, toFirstPosition);
        return node;
      }
      /**
       * Appends a new node to the end of the linked list or the beginning if firstPosition is true-ish.
       */
      addNode(node, toFirstPosition) {
        if (typeof node !== "object" || node === null) throw new Error('Parameter "node" must be an object');
        if (node.prev || node.next) throw new Error("New node is still included in some linked list");
        node.prev = null;
        node.next = null;
        if (this.length === 0) {
          this.tail = node;
          this.head = node;
        } else if (toFirstPosition) {
          node.next = this.head;
          this.head.prev = node;
          this.head = node;
        } else {
          node.prev = this.tail;
          this.tail.next = node;
          this.tail = node;
        }
        this.length++;
      }
      /**
       * Finds a first node that holds a specific data object. See 'dataEqual' function for a description
       * how the object equality is tested. Function returns null if the data cannot be found.
       */
      find(data2) {
        for (let node = this.head; node != null; node = node.next) {
          if (dataEqual(node.data, data2)) {
            return node;
          }
        }
        return null;
      }
      removeNode(node) {
        if (typeof node !== "object" || node == null) throw new Error('Parameter "node" must be an object');
        if (node.prev != null) {
          if (node.next != null) {
            node.prev.next = node.next;
            node.next.prev = node.prev;
            node.prev = null;
            node.next = null;
          } else {
            this.tail = node.prev;
            node.prev.next = null;
            node.prev = null;
          }
        } else if (node.next != null) {
          this.head = node.next;
          node.next.prev = null;
          node.next = null;
        } else {
          this.head = null;
          this.tail = null;
          node.next = null;
          node.prev = null;
        }
        this.length--;
      }
      /**
       * Removes the first item from the list. The function
       * returns the item object or null if the list is empty.
       */
      removeFirst() {
        const { head } = this;
        if (!head) return null;
        this.removeNode(head);
        return head.data;
      }
    };
    __name2(_LinkedList, "LinkedList");
    var LinkedList2 = _LinkedList;
    var _ListDictionary = class _ListDictionary {
      constructor() {
        __publicField2(this, "linkedList", new LinkedList2());
        __publicField2(this, "dictionary", {});
      }
      /**
       * Gets the number of item in the list.
       */
      length() {
        return this.linkedList.length;
      }
      /**
       * Adds an item to the list. If there is already an item with same key, the function
       * returns false and doesn't make any changes. Otherwise, it returns true.
       */
      add(key, item, toFirstPosition) {
        if (typeof key !== "string") throw new Error('Parameter "key" must be a string.');
        if (key in this.dictionary) return false;
        const linkedListNode = this.linkedList.add(item, toFirstPosition);
        linkedListNode.dictKey = key;
        this.dictionary[key] = linkedListNode;
        return true;
      }
      /**
       * Gets the first item in the list. The function returns null if the list is empty.
       */
      getFirst() {
        const { head } = this.linkedList;
        if (head) return head.data;
        return null;
      }
      /**
       * Gets the last item in the list. The function returns null if the list is empty.
       */
      getLast() {
        const { tail } = this.linkedList;
        if (tail) return tail.data;
        return null;
      }
      /**
       * Gets the first item from the list and moves it to the end of the list.
       * The function returns null if the queue is empty.
       */
      moveFirstToEnd() {
        const node = this.linkedList.head;
        if (!node) return null;
        this.linkedList.removeNode(node);
        this.linkedList.addNode(node);
        return node.data;
      }
      /**
       * Removes the first item from the list.
       * The function returns the item or null if the list is empty.
       */
      removeFirst() {
        const { head } = this.linkedList;
        if (!head) return null;
        this.linkedList.removeNode(head);
        delete this.dictionary[head.dictKey];
        return head.data;
      }
      /**
       * Removes the last item from the list.
       * The function returns the item or null if the list is empty.
       */
      removeLast() {
        const { tail } = this.linkedList;
        if (!tail) return null;
        this.linkedList.removeNode(tail);
        delete this.dictionary[tail.dictKey];
        return tail.data;
      }
      /**
       * Removes an item identified by a key. The function returns the
       * object if it was found or null if it wasn't.
       */
      remove(key) {
        if (typeof key !== "string") throw new Error('Parameter "key" must be a string.');
        const node = this.dictionary[key];
        if (!node) return null;
        delete this.dictionary[key];
        this.linkedList.removeNode(node);
        return node.data;
      }
      /**
       * Finds a request based on the URL.
       */
      get(key) {
        if (typeof key !== "string") throw new Error('Parameter "key" must be a string.');
        const node = this.dictionary[key];
        if (!node) return null;
        return node.data;
      }
      /**
       * Removes all items from the list.
       */
      clear() {
        if (this.linkedList.length > 0) {
          this.linkedList = new LinkedList2();
          this.dictionary = {};
        }
      }
    };
    __name2(_ListDictionary, "ListDictionary");
    var ListDictionary = _ListDictionary;
    var _LruCache = class _LruCache {
      constructor(options) {
        this.options = options;
        __publicField2(this, "listDictionary", new ListDictionary());
        __publicField2(this, "maxLength");
        if (typeof options.maxLength !== "number") {
          throw new Error('Parameter "maxLength" must be a number.');
        }
        this.maxLength = options.maxLength;
      }
      /**
       * Gets the number of item in the list.
       */
      length() {
        return this.listDictionary.length();
      }
      /**
       * Get item from Cache and move to last position
       */
      get(key) {
        if (typeof key !== "string") throw new Error('Parameter "key" must be a string.');
        const node = this.listDictionary.dictionary[key];
        if (!node) return null;
        this.listDictionary.remove(key);
        this.listDictionary.add(key, node.data);
        return node.data;
      }
      /**
       * Add new item to cache, remove least used item if length exceeds maxLength
       */
      add(key, value2) {
        const added = this.listDictionary.add(key, value2);
        if (!added) return false;
        if (this.length() > this.maxLength) {
          this.listDictionary.removeFirst();
        }
        return true;
      }
      /**
       * Remove item with key
       */
      remove(key) {
        return this.listDictionary.remove(key);
      }
      /**
       * Clear cache
       */
      clear() {
        return this.listDictionary.clear();
      }
    };
    __name2(_LruCache, "LruCache");
    var LruCache = _LruCache;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_provider.js
var require_request_provider = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_provider.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RequestProvider = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_util_1 = __require("node:util");
    var utils_1 = require_utils9();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var datastructures_1 = require_cjs9();
    var utilities_1 = require_cjs4();
    var configuration_1 = require_configuration();
    var log_1 = require_log();
    var request_1 = require_request();
    var access_checking_1 = require_access_checking();
    var storage_manager_1 = require_storage_manager();
    var utils_2 = require_utils10();
    var RequestProvider2 = class {
      constructor(options, config = configuration_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "timeoutSecs", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 30
        });
        Object.defineProperty(this, "clientKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: (0, utilities_1.cryptoRandomObjectId)()
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "proxyConfiguration", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "internalTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 5 * 6e4
        });
        Object.defineProperty(this, "requestLockSecs", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 3 * 60
        });
        Object.defineProperty(this, "assumedTotalCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "assumedHandledCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "initialCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "initialHandledCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "queueHeadIds", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new datastructures_1.ListDictionary()
        });
        Object.defineProperty(this, "requestCache", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "recentlyHandledRequestsCache", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "queuePausedForMigration", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "lastActivity", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "isFinishedCalledWhileHeadWasNotEmpty", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "inProgressRequestBatchCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        this.id = options.id;
        this.name = options.name;
        this.client = options.client.requestQueue(this.id, {
          clientKey: this.clientKey,
          timeoutSecs: this.timeoutSecs
        });
        this.proxyConfiguration = options.proxyConfiguration;
        this.requestCache = new datastructures_1.LruCache({ maxLength: options.requestCacheMaxSize });
        this.recentlyHandledRequestsCache = new datastructures_1.LruCache({ maxLength: options.recentlyHandledRequestsMaxSize });
        this.log = log_1.log.child({ prefix: `${options.logPrefix}(${this.id}, ${this.name ?? "no-name"})` });
        const eventManager = config.getEventManager();
        eventManager.on("migrating", async () => {
          this.queuePausedForMigration = true;
        });
      }
      /**
       * Returns an offline approximation of the total number of requests in the queue (i.e. pending + handled).
       *
       * Survives restarts and actor migrations.
       */
      getTotalCount() {
        return this.assumedTotalCount + this.initialCount;
      }
      /**
       * Returns an offline approximation of the total number of pending requests in the queue.
       *
       * Survives restarts and Actor migrations.
       */
      getPendingCount() {
        return this.getTotalCount() - this.initialHandledCount - this.assumedHandledCount;
      }
      /**
       * Adds a request to the queue.
       *
       * If a request with the same `uniqueKey` property is already present in the queue,
       * it will not be updated. You can find out whether this happened from the resulting
       * {@link QueueOperationInfo} object.
       *
       * To add multiple requests to the queue by extracting links from a webpage,
       * see the {@link enqueueLinks} helper function.
       *
       * @param requestLike {@link Request} object or vanilla object with request data.
       * Note that the function sets the `uniqueKey` and `id` fields to the passed Request.
       * @param [options] Request queue operation options.
       */
      async addRequest(requestLike, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        this.lastActivity = /* @__PURE__ */ new Date();
        (0, ow_1.default)(requestLike, ow_1.default.object);
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          forefront: ow_1.default.optional.boolean
        }));
        const { forefront = false } = options;
        if ("requestsFromUrl" in requestLike) {
          const requests = await this._fetchRequestsFromUrl(requestLike);
          const processedRequests = await this._addFetchedRequests(requestLike, requests, options);
          return { ...processedRequests[0], forefront };
        }
        (0, ow_1.default)(requestLike, ow_1.default.object.partialShape({
          url: ow_1.default.string,
          id: ow_1.default.undefined
        }));
        const request = requestLike instanceof request_1.Request ? requestLike : new request_1.Request(requestLike);
        const cacheKey = (0, utils_2.getRequestId)(request.uniqueKey);
        const cachedInfo = this.requestCache.get(cacheKey);
        if (cachedInfo) {
          request.id = cachedInfo.id;
          return {
            wasAlreadyPresent: true,
            // We may assume that if request is in local cache then also the information if the
            // request was already handled is there because just one client should be using one queue.
            wasAlreadyHandled: cachedInfo.isHandled,
            requestId: cachedInfo.id,
            uniqueKey: cachedInfo.uniqueKey,
            forefront
          };
        }
        const queueOperationInfo = {
          ...await this.client.addRequest(request, { forefront }),
          uniqueKey: request.uniqueKey,
          forefront
        };
        const { requestId, wasAlreadyPresent } = queueOperationInfo;
        this._cacheRequest(cacheKey, queueOperationInfo);
        if (!wasAlreadyPresent && !this.recentlyHandledRequestsCache.get(requestId)) {
          this.assumedTotalCount++;
          this._maybeAddRequestToQueueHead(requestId, forefront);
        }
        return queueOperationInfo;
      }
      /**
       * Adds requests to the queue in batches of 25. This method will wait till all the requests are added
       * to the queue before resolving. You should prefer using `queue.addRequestsBatched()` or `crawler.addRequests()`
       * if you don't want to block the processing, as those methods will only wait for the initial 1000 requests,
       * start processing right after that happens, and continue adding more in the background.
       *
       * If a request passed in is already present due to its `uniqueKey` property being the same,
       * it will not be updated. You can find out whether this happened by finding the request in the resulting
       * {@link BatchAddRequestsResult} object.
       *
       * @param requestsLike {@link Request} objects or vanilla objects with request data.
       * Note that the function sets the `uniqueKey` and `id` fields to the passed requests if missing.
       * @param [options] Request queue operation options.
       */
      async addRequests(requestsLike, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        this.lastActivity = /* @__PURE__ */ new Date();
        (0, ow_1.default)(requestsLike, ow_1.default.object.is((value2) => (0, utils_1.isIterable)(value2) || (0, utils_1.isAsyncIterable)(value2)).message((value2) => `Expected an iterable or async iterable, got ${(0, utils_1.getObjectType)(value2)}`));
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          forefront: ow_1.default.optional.boolean,
          cache: ow_1.default.optional.boolean
        }));
        const { forefront = false, cache: cache2 = true } = options;
        const uniqueKeyToCacheKey = /* @__PURE__ */ new Map();
        const getCachedRequestId = (uniqueKey) => {
          const cached = uniqueKeyToCacheKey.get(uniqueKey);
          if (cached)
            return cached;
          const newCacheKey = (0, utils_2.getRequestId)(uniqueKey);
          uniqueKeyToCacheKey.set(uniqueKey, newCacheKey);
          return newCacheKey;
        };
        const results = {
          processedRequests: [],
          unprocessedRequests: []
        };
        const requests = [];
        for await (const requestLike of requestsLike) {
          if (typeof requestLike === "string") {
            requests.push(new request_1.Request({ url: requestLike }));
          } else if ("requestsFromUrl" in requestLike) {
            const fetchedRequests = await this._fetchRequestsFromUrl(requestLike);
            await this._addFetchedRequests(requestLike, fetchedRequests, options);
          } else {
            requests.push(requestLike instanceof request_1.Request ? requestLike : new request_1.Request(requestLike));
          }
        }
        const requestsToAdd = /* @__PURE__ */ new Map();
        for (const request of requests) {
          const cacheKey = getCachedRequestId(request.uniqueKey);
          const cachedInfo = this.requestCache.get(cacheKey);
          if (cachedInfo) {
            request.id = cachedInfo.id;
            results.processedRequests.push({
              wasAlreadyPresent: true,
              // We may assume that if request is in local cache then also the information if the
              // request was already handled is there because just one client should be using one queue.
              wasAlreadyHandled: cachedInfo.isHandled,
              requestId: cachedInfo.id,
              uniqueKey: cachedInfo.uniqueKey
            });
          } else if (!requestsToAdd.has(request.uniqueKey)) {
            requestsToAdd.set(request.uniqueKey, request);
          }
        }
        if (!requestsToAdd.size) {
          return results;
        }
        const apiResults = await this.client.batchAddRequests([...requestsToAdd.values()], { forefront });
        results.unprocessedRequests = apiResults.unprocessedRequests;
        for (const newRequest of apiResults.processedRequests) {
          results.processedRequests.push(newRequest);
          const cacheKey = getCachedRequestId(newRequest.uniqueKey);
          const { requestId, wasAlreadyPresent } = newRequest;
          if (cache2) {
            this._cacheRequest(cacheKey, { ...newRequest, forefront });
          }
          if (!wasAlreadyPresent && !this.recentlyHandledRequestsCache.get(requestId)) {
            this.assumedTotalCount++;
            this._maybeAddRequestToQueueHead(requestId, forefront);
          }
        }
        return results;
      }
      /**
       * Adds requests to the queue in batches. By default, it will resolve after the initial batch is added, and continue
       * adding the rest in the background. You can configure the batch size via `batchSize` option and the sleep time in between
       * the batches via `waitBetweenBatchesMillis`. If you want to wait for all batches to be added to the queue, you can use
       * the `waitForAllRequestsToBeAdded` promise you get in the response object.
       *
       * @param requests The requests to add
       * @param options Options for the request queue
       */
      async addRequestsBatched(requests, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        this.lastActivity = /* @__PURE__ */ new Date();
        (0, ow_1.default)(requests, ow_1.default.object.is((value2) => (0, utils_1.isIterable)(value2) || (0, utils_1.isAsyncIterable)(value2)).message((value2) => `Expected an iterable or async iterable, got ${(0, utils_1.getObjectType)(value2)}`));
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          forefront: ow_1.default.optional.boolean,
          waitForAllRequestsToBeAdded: ow_1.default.optional.boolean,
          batchSize: ow_1.default.optional.number,
          waitBetweenBatchesMillis: ow_1.default.optional.number
        }));
        const addRequest = this.addRequest.bind(this);
        async function* generateRequests() {
          for await (const opts2 of requests) {
            if (typeof opts2 === "object" && opts2 !== null) {
              if (opts2.url !== void 0 && typeof opts2.url !== "string") {
                throw new Error(`Request options are not valid, the 'url' property is not a string. Input: ${(0, node_util_1.inspect)(opts2)}`);
              }
              if (opts2.id !== void 0) {
                throw new Error(`Request options are not valid, the 'id' property must not be present. Input: ${(0, node_util_1.inspect)(opts2)}`);
              }
              if (opts2.requestsFromUrl !== void 0 && typeof opts2.requestsFromUrl !== "string") {
                throw new Error(`Request options are not valid, the 'requestsFromUrl' property is not a string. Input: ${(0, node_util_1.inspect)(opts2)}`);
              }
            }
            if (opts2 && typeof opts2 === "object" && "requestsFromUrl" in opts2) {
              await addRequest(opts2, { forefront: options.forefront });
            } else {
              yield typeof opts2 === "string" ? { url: opts2 } : opts2;
            }
          }
        }
        const { batchSize = 1e3, waitBetweenBatchesMillis = 1e3 } = options;
        const chunks = (0, utils_1.peekableAsyncIterable)((0, utils_1.chunkedAsyncIterable)(generateRequests(), batchSize));
        const chunksIterator = chunks[Symbol.asyncIterator]();
        const attemptToAddToQueueAndAddAnyUnprocessed = async (providedRequests, cache2 = true) => {
          const resultsToReturn = [];
          const apiResult = await this.addRequests(providedRequests, { forefront: options.forefront, cache: cache2 });
          resultsToReturn.push(...apiResult.processedRequests);
          if (apiResult.unprocessedRequests.length) {
            await (0, utils_1.sleep)(waitBetweenBatchesMillis);
            resultsToReturn.push(...await attemptToAddToQueueAndAddAnyUnprocessed(providedRequests.filter((r4) => !apiResult.processedRequests.some((pr) => pr.uniqueKey === r4.uniqueKey)), false));
          }
          return resultsToReturn;
        };
        const initialChunk = await chunksIterator.peek();
        if (initialChunk === void 0) {
          return { addedRequests: [], waitForAllRequestsToBeAdded: Promise.resolve([]) };
        }
        const addedRequests = await attemptToAddToQueueAndAddAnyUnprocessed(initialChunk);
        await chunksIterator.next();
        if (await chunksIterator.peek() === void 0) {
          return {
            addedRequests,
            waitForAllRequestsToBeAdded: Promise.resolve([])
          };
        }
        const promise = new Promise(async (resolve4) => {
          const finalAddedRequests = [];
          for await (const requestChunk of chunks) {
            finalAddedRequests.push(...await attemptToAddToQueueAndAddAnyUnprocessed(requestChunk, false));
            await (0, utils_1.sleep)(waitBetweenBatchesMillis);
          }
          resolve4(finalAddedRequests);
        });
        this.inProgressRequestBatchCount += 1;
        void promise.finally(() => {
          this.inProgressRequestBatchCount -= 1;
        });
        if (options.waitForAllRequestsToBeAdded) {
          addedRequests.push(...await promise);
        }
        return {
          addedRequests,
          waitForAllRequestsToBeAdded: promise
        };
      }
      /**
       * Gets the request from the queue specified by ID.
       *
       * @param id ID of the request.
       * @returns Returns the request object, or `null` if it was not found.
       */
      async getRequest(id) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(id, ow_1.default.string);
        const requestOptions = await this.client.getRequest(id);
        if (!requestOptions)
          return null;
        return new request_1.Request(requestOptions);
      }
      /**
       * Marks a request that was previously returned by the
       * {@link RequestQueue.fetchNextRequest}
       * function as handled after successful processing.
       * Handled requests will never again be returned by the `fetchNextRequest` function.
       */
      async markRequestHandled(request) {
        (0, access_checking_1.checkStorageAccess)();
        this.lastActivity = /* @__PURE__ */ new Date();
        (0, ow_1.default)(request, ow_1.default.object.partialShape({
          id: ow_1.default.string,
          uniqueKey: ow_1.default.string,
          handledAt: ow_1.default.optional.string
        }));
        const forefront = this.requestCache.get((0, utils_2.getRequestId)(request.uniqueKey))?.forefront ?? false;
        const handledAt = request.handledAt ?? (/* @__PURE__ */ new Date()).toISOString();
        const queueOperationInfo = {
          ...await this.client.updateRequest({
            ...request,
            handledAt
          }),
          uniqueKey: request.uniqueKey,
          forefront
        };
        request.handledAt = handledAt;
        this.recentlyHandledRequestsCache.add(request.id, true);
        if (!queueOperationInfo.wasAlreadyHandled) {
          this.assumedHandledCount++;
        }
        this.queueHeadIds.remove(request.id);
        this._cacheRequest((0, utils_2.getRequestId)(request.uniqueKey), queueOperationInfo);
        return queueOperationInfo;
      }
      /**
       * Reclaims a failed request back to the queue, so that it can be returned for processing later again
       * by another call to {@link RequestQueue.fetchNextRequest}.
       * The request record in the queue is updated using the provided `request` parameter.
       * For example, this lets you store the number of retries or error messages for the request.
       */
      async reclaimRequest(request, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        this.lastActivity = /* @__PURE__ */ new Date();
        (0, ow_1.default)(request, ow_1.default.object.partialShape({
          id: ow_1.default.string,
          uniqueKey: ow_1.default.string
        }));
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          forefront: ow_1.default.optional.boolean
        }));
        const { forefront = false } = options;
        const queueOperationInfo = {
          ...await this.client.updateRequest(request, {
            forefront
          }),
          uniqueKey: request.uniqueKey,
          forefront
        };
        this._cacheRequest((0, utils_2.getRequestId)(request.uniqueKey), queueOperationInfo);
        return queueOperationInfo;
      }
      /**
       * Resolves to `true` if the next call to {@link RequestQueue.fetchNextRequest}
       * would return `null`, otherwise it resolves to `false`.
       * Note that even if the queue is empty, there might be some pending requests currently being processed.
       * If you need to ensure that there is no activity in the queue, use {@link RequestQueue.isFinished}.
       */
      async isEmpty() {
        await this.ensureHeadIsNonEmpty();
        return this.queueHeadIds.length() === 0;
      }
      _reset() {
        this.lastActivity = /* @__PURE__ */ new Date();
        this.queueHeadIds.clear();
        this.recentlyHandledRequestsCache.clear();
        this.assumedTotalCount = 0;
        this.assumedHandledCount = 0;
        this.requestCache.clear();
      }
      /**
       * Caches information about request to beware of unneeded addRequest() calls.
       */
      _cacheRequest(cacheKey, queueOperationInfo) {
        this.requestCache.remove(cacheKey);
        this.requestCache.add(cacheKey, {
          id: queueOperationInfo.requestId,
          isHandled: queueOperationInfo.wasAlreadyHandled,
          uniqueKey: queueOperationInfo.uniqueKey,
          hydrated: null,
          lockExpiresAt: null,
          forefront: queueOperationInfo.forefront
        });
      }
      /**
       * Adds a request straight to the queueHeadDict, to improve performance.
       */
      _maybeAddRequestToQueueHead(requestId, forefront) {
        if (forefront) {
          this.queueHeadIds.add(requestId, requestId, true);
        } else if (this.assumedTotalCount < utils_2.QUERY_HEAD_MIN_LENGTH) {
          this.queueHeadIds.add(requestId, requestId, false);
        }
      }
      /**
       * Removes the queue either from the Apify Cloud storage or from the local database,
       * depending on the mode of operation.
       */
      async drop() {
        (0, access_checking_1.checkStorageAccess)();
        await this.client.delete();
        const manager = storage_manager_1.StorageManager.getManager(this.constructor, this.config);
        manager.closeStorage(this);
      }
      /**
       * @inheritdoc
       */
      async *[Symbol.asyncIterator]() {
        while (true) {
          const req = await this.fetchNextRequest();
          if (!req)
            break;
          yield req;
        }
      }
      /**
       * Returns the number of handled requests.
       *
       * This function is just a convenient shortcut for:
       *
       * ```javascript
       * const { handledRequestCount } = await queue.getInfo();
       * ```
       * @inheritdoc
       */
      async handledCount() {
        const { handledRequestCount } = await this.getInfo() ?? {};
        return handledRequestCount ?? 0;
      }
      /**
       * Returns an object containing general information about the request queue.
       *
       * The function returns the same object as the Apify API Client's
       * [getQueue](https://docs.apify.com/api/apify-client-js/latest#ApifyClient-requestQueues)
       * function, which in turn calls the
       * [Get request queue](https://apify.com/docs/api/v2#/reference/request-queues/queue/get-request-queue)
       * API endpoint.
       *
       * **Example:**
       * ```
       * {
       *   id: "WkzbQMuFYuamGv3YF",
       *   name: "my-queue",
       *   userId: "wRsJZtadYvn4mBZmm",
       *   createdAt: new Date("2015-12-12T07:34:14.202Z"),
       *   modifiedAt: new Date("2015-12-13T08:36:13.202Z"),
       *   accessedAt: new Date("2015-12-14T08:36:13.202Z"),
       *   totalRequestCount: 25,
       *   handledRequestCount: 5,
       *   pendingRequestCount: 20,
       * }
       * ```
       */
      async getInfo() {
        (0, access_checking_1.checkStorageAccess)();
        return this.client.get();
      }
      /**
       * Fetches URLs from requestsFromUrl and returns them in format of list of requests
       */
      async _fetchRequestsFromUrl(source) {
        const { requestsFromUrl, regex: regex2, ...sharedOpts } = source;
        let urlsArr;
        try {
          urlsArr = await this._downloadListOfUrls({
            url: requestsFromUrl,
            urlRegExp: regex2,
            proxyUrl: await this.proxyConfiguration?.newUrl()
          });
        } catch (err2) {
          throw new Error(`Cannot fetch a request list from ${requestsFromUrl}: ${err2}`);
        }
        if (!urlsArr.length) {
          this.log.warning("The fetched list contains no valid URLs.", { requestsFromUrl, regex: regex2 });
          return [];
        }
        return urlsArr.map((url3) => ({ url: url3, ...sharedOpts }));
      }
      /**
       * Adds all fetched requests from a URL from a remote resource.
       */
      async _addFetchedRequests(source, fetchedRequests, options) {
        const { requestsFromUrl, regex: regex2 } = source;
        const { addedRequests } = await this.addRequestsBatched(fetchedRequests, options);
        this.log.info("Fetched and loaded Requests from a remote resource.", {
          requestsFromUrl,
          regex: regex2,
          fetchedCount: fetchedRequests.length,
          importedCount: addedRequests.length,
          duplicateCount: fetchedRequests.length - addedRequests.length,
          sample: JSON.stringify(fetchedRequests.slice(0, 5))
        });
        return addedRequests;
      }
      /**
       * @internal wraps public utility for mocking purposes
       */
      async _downloadListOfUrls(options) {
        return (0, utils_1.downloadListOfUrls)(options);
      }
      /**
       * Opens a request queue and returns a promise resolving to an instance
       * of the {@link RequestQueue} class.
       *
       * {@link RequestQueue} represents a queue of URLs to crawl, which is stored either on local filesystem or in the cloud.
       * The queue is used for deep crawling of websites, where you start with several URLs and then
       * recursively follow links to other pages. The data structure supports both breadth-first
       * and depth-first crawling orders.
       *
       * For more details and code examples, see the {@link RequestQueue} class.
       *
       * @param [queueIdOrName]
       *   ID or name of the request queue to be opened. If `null` or `undefined`,
       *   the function returns the default request queue associated with the crawler run.
       * @param [options] Open Request Queue options.
       */
      static async open(queueIdOrName, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(queueIdOrName, ow_1.default.optional.any(ow_1.default.string, ow_1.default.null));
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          config: ow_1.default.optional.object.instanceOf(configuration_1.Configuration),
          storageClient: ow_1.default.optional.object,
          proxyConfiguration: ow_1.default.optional.object
        }));
        options.config ?? (options.config = configuration_1.Configuration.getGlobalConfig());
        options.storageClient ?? (options.storageClient = options.config.getStorageClient());
        await (0, utils_2.purgeDefaultStorages)({ onlyPurgeOnce: true, client: options.storageClient, config: options.config });
        const manager = storage_manager_1.StorageManager.getManager(this, options.config);
        const queue = await manager.openStorage(queueIdOrName, options.storageClient);
        queue.proxyConfiguration = options.proxyConfiguration;
        const queueInfo = await queue.client.get();
        queue.initialCount = queueInfo?.totalRequestCount ?? 0;
        queue.initialHandledCount = queueInfo?.handledRequestCount ?? 0;
        return queue;
      }
    };
    exports.RequestProvider = RequestProvider2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_queue.js
var require_request_queue3 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_queue.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RequestQueueV1 = void 0;
    var promises_1 = __require("node:timers/promises");
    var consts_1 = require_cjs2();
    var configuration_1 = require_configuration();
    var access_checking_1 = require_access_checking();
    var request_provider_1 = require_request_provider();
    var utils_1 = require_utils10();
    var MAX_CACHED_REQUESTS = 1e6;
    var RECENTLY_HANDLED_CACHE_SIZE = 1e3;
    var RequestQueue2 = class extends request_provider_1.RequestProvider {
      /**
       * @internal
       */
      constructor(options, config = configuration_1.Configuration.getGlobalConfig()) {
        super({
          ...options,
          logPrefix: "RequestQueue",
          recentlyHandledRequestsMaxSize: RECENTLY_HANDLED_CACHE_SIZE,
          requestCacheMaxSize: MAX_CACHED_REQUESTS
        }, config);
        Object.defineProperty(this, "queryQueueHeadPromise", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "inProgress", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
      }
      /**
       * @internal
       */
      inProgressCount() {
        return this.inProgress.size;
      }
      /**
       * Returns a next request in the queue to be processed, or `null` if there are no more pending requests.
       *
       * Once you successfully finish processing of the request, you need to call
       * {@link RequestQueue.markRequestHandled}
       * to mark the request as handled in the queue. If there was some error in processing the request,
       * call {@link RequestQueue.reclaimRequest} instead,
       * so that the queue will give the request to some other consumer in another call to the `fetchNextRequest` function.
       *
       * Note that the `null` return value doesn't mean the queue processing finished,
       * it means there are currently no pending requests.
       * To check whether all requests in queue were finished,
       * use {@link RequestQueue.isFinished} instead.
       *
       * @returns
       *   Returns the request object or `null` if there are no more pending requests.
       */
      async fetchNextRequest() {
        (0, access_checking_1.checkStorageAccess)();
        this.lastActivity = /* @__PURE__ */ new Date();
        await this.ensureHeadIsNonEmpty();
        const nextRequestId = this.queueHeadIds.removeFirst();
        if (!nextRequestId)
          return null;
        if (this.inProgress.has(nextRequestId) || this.recentlyHandledRequestsCache.get(nextRequestId)) {
          this.log.warning("Queue head returned a request that is already in progress?!", {
            nextRequestId,
            inProgress: this.inProgress.has(nextRequestId),
            recentlyHandled: !!this.recentlyHandledRequestsCache.get(nextRequestId)
          });
          return null;
        }
        this.inProgress.add(nextRequestId);
        this.lastActivity = /* @__PURE__ */ new Date();
        let request;
        try {
          request = await this.getRequest(nextRequestId);
        } catch (e4) {
          this.inProgress.delete(nextRequestId);
          throw e4;
        }
        if (!request) {
          this.log.debug("Cannot find a request from the beginning of queue, will be retried later", {
            nextRequestId
          });
          setTimeout(() => {
            this.inProgress.delete(nextRequestId);
          }, utils_1.STORAGE_CONSISTENCY_DELAY_MILLIS);
          return null;
        }
        if (request.handledAt) {
          this.log.debug("Request fetched from the beginning of queue was already handled", { nextRequestId });
          this.recentlyHandledRequestsCache.add(nextRequestId, true);
          return null;
        }
        return request;
      }
      async ensureHeadIsNonEmpty() {
        await this._ensureHeadIsNonEmpty();
      }
      /**
       * We always request more items than is in progress to ensure that something falls into head.
       *
       * @param [ensureConsistency] If true then query for queue head is retried until queueModifiedAt
       *   is older than queryStartedAt by at least API_PROCESSED_REQUESTS_DELAY_MILLIS to ensure that queue
       *   head is consistent.
       * @default false
       * @param [limit] How many queue head items will be fetched.
       * @param [iteration] Used when this function is called recursively to limit the recursion.
       * @returns Indicates if queue head is consistent (true) or inconsistent (false).
       */
      async _ensureHeadIsNonEmpty(ensureConsistency = false, limit = Math.max(this.inProgressCount() * utils_1.QUERY_HEAD_BUFFER, utils_1.QUERY_HEAD_MIN_LENGTH), iteration = 0) {
        if (this.queuePausedForMigration) {
          return true;
        }
        if (this.queueHeadIds.length() > 0) {
          return true;
        }
        if (!this.queryQueueHeadPromise) {
          const queryStartedAt2 = /* @__PURE__ */ new Date();
          this.queryQueueHeadPromise = this.client.listHead({ limit }).then(({ items, queueModifiedAt: queueModifiedAt2, hadMultipleClients: hadMultipleClients2 }) => {
            items.forEach(({ id: requestId, uniqueKey }) => {
              if (!requestId || !uniqueKey || this.inProgress.has(requestId) || this.recentlyHandledRequestsCache.get(requestId))
                return;
              this.queueHeadIds.add(requestId, requestId, false);
              const forefront = this.requestCache.get((0, utils_1.getRequestId)(uniqueKey))?.forefront ?? false;
              this._cacheRequest((0, utils_1.getRequestId)(uniqueKey), {
                requestId,
                wasAlreadyHandled: false,
                wasAlreadyPresent: true,
                uniqueKey,
                forefront
              });
            });
            this.queryQueueHeadPromise = null;
            return {
              wasLimitReached: items.length >= limit,
              prevLimit: limit,
              queueModifiedAt: new Date(queueModifiedAt2),
              queryStartedAt: queryStartedAt2,
              hadMultipleClients: hadMultipleClients2
            };
          });
        }
        const { queueModifiedAt, wasLimitReached, prevLimit, queryStartedAt, hadMultipleClients } = await this.queryQueueHeadPromise;
        if (prevLimit >= consts_1.REQUEST_QUEUE_HEAD_MAX_LIMIT) {
          this.log.warning(`Reached the maximum number of requests in progress: ${consts_1.REQUEST_QUEUE_HEAD_MAX_LIMIT}.`);
        }
        const shouldRepeatWithHigherLimit = this.queueHeadIds.length() === 0 && wasLimitReached && prevLimit < consts_1.REQUEST_QUEUE_HEAD_MAX_LIMIT;
        const isDatabaseConsistent = +queryStartedAt - +queueModifiedAt >= utils_1.API_PROCESSED_REQUESTS_DELAY_MILLIS;
        const isLocallyConsistent = !hadMultipleClients && this.assumedTotalCount <= this.assumedHandledCount;
        const shouldRepeatForConsistency = ensureConsistency && !isDatabaseConsistent && !isLocallyConsistent;
        if (!shouldRepeatWithHigherLimit && !shouldRepeatForConsistency)
          return true;
        if (!shouldRepeatWithHigherLimit && iteration > utils_1.MAX_QUERIES_FOR_CONSISTENCY)
          return false;
        const nextLimit = shouldRepeatWithHigherLimit ? Math.round(prevLimit * 1.5) : prevLimit;
        if (shouldRepeatForConsistency) {
          const delayMillis = utils_1.API_PROCESSED_REQUESTS_DELAY_MILLIS - (Date.now() - +queueModifiedAt);
          this.log.info(`Waiting for ${delayMillis}ms before considering the queue as finished to ensure that the data is consistent.`);
          await (0, promises_1.setTimeout)(delayMillis);
        }
        return this._ensureHeadIsNonEmpty(ensureConsistency, nextLimit, iteration + 1);
      }
      // RequestQueue v1 behavior overrides below
      async isFinished() {
        (0, access_checking_1.checkStorageAccess)();
        if (Date.now() - +this.lastActivity > this.internalTimeoutMillis) {
          const message = `The request queue seems to be stuck for ${this.internalTimeoutMillis / 1e3}s, resetting internal state.`;
          this.log.warning(message, { inProgress: [...this.inProgress] });
          this._reset();
        }
        if (this.inProgressRequestBatchCount > 0) {
          return false;
        }
        if (this.queueHeadIds.length() > 0 || this.inProgressCount() > 0)
          return false;
        const isHeadConsistent = await this._ensureHeadIsNonEmpty(true);
        return isHeadConsistent && this.queueHeadIds.length() === 0 && this.inProgressCount() === 0;
      }
      /**
       * Reclaims a failed request back to the queue, so that it can be returned for processing later again
       * by another call to {@link RequestQueue.fetchNextRequest}.
       * The request record in the queue is updated using the provided `request` parameter.
       * For example, this lets you store the number of retries or error messages for the request.
       */
      async reclaimRequest(...args) {
        (0, access_checking_1.checkStorageAccess)();
        const [request, options] = args;
        const forefront = options?.forefront ?? false;
        const result = await super.reclaimRequest(...args);
        setTimeout(() => {
          if (!this.inProgress.has(request.id)) {
            this.log.debug("The request is no longer marked as in progress in the queue?!", {
              requestId: request.id
            });
            return;
          }
          this.inProgress.delete(request.id);
          this._maybeAddRequestToQueueHead(request.id, forefront);
        }, utils_1.STORAGE_CONSISTENCY_DELAY_MILLIS);
        return result;
      }
      /**
       * @inheritdoc
       */
      async markRequestHandled(request) {
        const res = await super.markRequestHandled(request);
        this.inProgress.delete(request.id);
        return res;
      }
      _reset() {
        super._reset();
        this.inProgress.clear();
      }
      /**
       * Opens a request queue and returns a promise resolving to an instance
       * of the {@link RequestQueue} class.
       *
       * {@link RequestQueue} represents a queue of URLs to crawl, which is stored either on local filesystem or in the cloud.
       * The queue is used for deep crawling of websites, where you start with several URLs and then
       * recursively follow links to other pages. The data structure supports both breadth-first
       * and depth-first crawling orders.
       *
       * For more details and code examples, see the {@link RequestQueue} class.
       *
       * @param [queueIdOrName]
       *   ID or name of the request queue to be opened. If `null` or `undefined`,
       *   the function returns the default request queue associated with the crawler run.
       * @param [options] Open Request Queue options.
       */
      static async open(...args) {
        return super.open(...args);
      }
    };
    exports.RequestQueueV1 = RequestQueue2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_queue_v2.js
var require_request_queue_v2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_queue_v2.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RequestQueue = void 0;
    var configuration_1 = require_configuration();
    var access_checking_1 = require_access_checking();
    var request_provider_1 = require_request_provider();
    var utils_1 = require_utils10();
    var MAX_CACHED_REQUESTS = 2e6;
    var RECENTLY_HANDLED_CACHE_SIZE = 1e3;
    var LIST_AND_LOCK_HEAD_LIMIT = 25;
    var QUEUE_HEAD_REFILL_THRESHOLD = 1;
    var RequestQueue2 = class extends request_provider_1.RequestProvider {
      constructor(options, config = configuration_1.Configuration.getGlobalConfig()) {
        super({
          ...options,
          logPrefix: "RequestQueue2",
          recentlyHandledRequestsMaxSize: RECENTLY_HANDLED_CACHE_SIZE,
          requestCacheMaxSize: MAX_CACHED_REQUESTS
        }, config);
        Object.defineProperty(this, "listHeadAndLockPromise", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "queueHasLockedRequests", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "shouldCheckForForefrontRequests", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "dequeuedRequestCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        const eventManager = config.getEventManager();
        eventManager.on("migrating", async () => {
          await this._clearPossibleLocks();
        });
        eventManager.on("aborting", async () => {
          await this._clearPossibleLocks();
        });
      }
      /**
       * Caches information about request to beware of unneeded addRequest() calls.
       */
      _cacheRequest(cacheKey, queueOperationInfo) {
        super._cacheRequest(cacheKey, queueOperationInfo);
        this.requestCache.remove(queueOperationInfo.requestId);
        this.requestCache.add(queueOperationInfo.requestId, {
          id: queueOperationInfo.requestId,
          isHandled: queueOperationInfo.wasAlreadyHandled,
          uniqueKey: queueOperationInfo.uniqueKey,
          forefront: queueOperationInfo.forefront,
          hydrated: null,
          lockExpiresAt: null
        });
      }
      /**
       * @inheritDoc
       */
      async addRequest(requestLike, options = {}) {
        const result = await super.addRequest(requestLike, options);
        if (!result.wasAlreadyPresent && options.forefront) {
          this.shouldCheckForForefrontRequests = true;
        }
        return result;
      }
      /**
       * @inheritDoc
       */
      async addRequests(requestsLike, options = {}) {
        const result = await super.addRequests(requestsLike, options);
        for (const request of result.processedRequests) {
          if (!request.wasAlreadyPresent && options.forefront) {
            this.shouldCheckForForefrontRequests = true;
            break;
          }
        }
        return result;
      }
      /**
       * @inheritDoc
       */
      async fetchNextRequest() {
        (0, access_checking_1.checkStorageAccess)();
        if (this.queuePausedForMigration) {
          return null;
        }
        this.lastActivity = /* @__PURE__ */ new Date();
        await this.ensureHeadIsNonEmpty();
        const nextRequestId = this.queueHeadIds.removeFirst();
        if (!nextRequestId) {
          return null;
        }
        const request = await this.getOrHydrateRequest(nextRequestId);
        if (!request) {
          this.log.debug("Cannot find a request from the beginning of queue or lost lock, will be retried later", {
            nextRequestId
          });
          return null;
        }
        if (request.handledAt) {
          this.log.debug("Request fetched from the beginning of queue was already handled", { nextRequestId });
          return null;
        }
        this.dequeuedRequestCount += 1;
        return request;
      }
      /**
       * @inheritDoc
       */
      async markRequestHandled(request) {
        this.dequeuedRequestCount -= 1;
        return await super.markRequestHandled(request);
      }
      /**
       * @inheritDoc
       */
      async isFinished() {
        if (this.inProgressRequestBatchCount > 0) {
          return false;
        }
        if (this.queueHeadIds.length() > 0) {
          return false;
        }
        await this.ensureHeadIsNonEmpty();
        if (this.queueHeadIds.length() > 0) {
          return false;
        }
        if (this.queueHasLockedRequests !== void 0) {
          if (this.queueHasLockedRequests && this.dequeuedRequestCount === 0 && ++this.isFinishedCalledWhileHeadWasNotEmpty % 25 === 0) {
            this.log.info("The queue still contains requests locked by another client");
          }
          return !this.queueHasLockedRequests;
        }
        const currentHead = await this.client.listHead({ limit: 2 });
        if (currentHead.items.length === 0) {
          return true;
        }
        if (++this.isFinishedCalledWhileHeadWasNotEmpty % 25 === 0) {
          const requests = await Promise.all(currentHead.items.map(async (item) => this.client.getRequest(item.id)));
          this.log.info(`Queue head still returned requests that need to be processed (or that are locked by other clients)`, {
            requests: requests.map((r4) => {
              if (!r4) {
                return null;
              }
              return {
                id: r4.id,
                lockExpiresAt: r4.lockExpiresAt,
                lockedBy: r4.lockByClient
              };
            }).filter(Boolean),
            clientKey: this.clientKey
          });
        } else {
          this.log.debug("Queue head still returned requests that need to be processed (or that are locked by other clients)", {
            requestIds: currentHead.items.map((item) => item.id)
          });
        }
        return false;
      }
      /**
       * @inheritDoc
       */
      async reclaimRequest(...args) {
        const res = await super.reclaimRequest(...args);
        if (res) {
          const [request, options] = args;
          if (options?.forefront) {
            this.shouldCheckForForefrontRequests = true;
          }
          try {
            await this.client.deleteRequestLock(request.id, { forefront: options?.forefront ?? false });
          } catch (err2) {
            this.log.debug(`Failed to delete request lock for request ${request.id}`, { err: err2 });
          }
        }
        return res;
      }
      async ensureHeadIsNonEmpty() {
        (0, access_checking_1.checkStorageAccess)();
        if (this.queuePausedForMigration) {
          return;
        }
        if (this.queueHeadIds.length() > QUEUE_HEAD_REFILL_THRESHOLD && !this.shouldCheckForForefrontRequests) {
          return;
        }
        this.listHeadAndLockPromise ?? (this.listHeadAndLockPromise = this._listHeadAndLock().finally(() => {
          this.listHeadAndLockPromise = null;
        }));
        await this.listHeadAndLockPromise;
      }
      async giveUpLock(id, uniqueKey) {
        if (id === void 0) {
          return;
        }
        try {
          await this.client.deleteRequestLock(id);
        } catch {
          this.log.debug("Failed to delete request lock", { id, uniqueKey });
        }
      }
      async _listHeadAndLock() {
        const shouldCheckForForefrontRequests = this.shouldCheckForForefrontRequests;
        const headData = await this.client.listAndLockHead({
          limit: LIST_AND_LOCK_HEAD_LIMIT,
          lockSecs: this.requestLockSecs
        });
        this.queueHasLockedRequests = headData.queueHasLockedRequests;
        const headIdBuffer = [];
        const forefrontHeadIdBuffer = [];
        for (const { id, uniqueKey } of headData.items) {
          if (!id || !uniqueKey) {
            this.log.warning(`Skipping request from queue head as it's invalid. Please report this with the provided metadata!`, {
              id,
              uniqueKey
            });
            await this.giveUpLock(id, uniqueKey);
            continue;
          }
          const forefront = this.requestCache.get((0, utils_1.getRequestId)(uniqueKey))?.forefront ?? false;
          if (forefront) {
            forefrontHeadIdBuffer.unshift(id);
          } else {
            headIdBuffer.push(id);
          }
          this._cacheRequest((0, utils_1.getRequestId)(uniqueKey), {
            requestId: id,
            uniqueKey,
            wasAlreadyPresent: true,
            wasAlreadyHandled: false,
            forefront
          });
        }
        for (const id of headIdBuffer) {
          this.queueHeadIds.add(id, id, false);
        }
        for (const id of forefrontHeadIdBuffer) {
          this.queueHeadIds.add(id, id, true);
        }
        const toUnlock = [];
        const limit = shouldCheckForForefrontRequests ? LIST_AND_LOCK_HEAD_LIMIT : LIST_AND_LOCK_HEAD_LIMIT + QUEUE_HEAD_REFILL_THRESHOLD;
        while (this.queueHeadIds.length() > limit) {
          toUnlock.push(this.queueHeadIds.removeLast());
        }
        if (toUnlock.length > 0) {
          await Promise.all(toUnlock.map(async (id) => await this.giveUpLock(id)));
        }
        if (shouldCheckForForefrontRequests) {
          this.shouldCheckForForefrontRequests = false;
        }
      }
      async getOrHydrateRequest(requestId) {
        (0, access_checking_1.checkStorageAccess)();
        const cachedEntry = this.requestCache.get(requestId);
        if (!cachedEntry) {
          const prolongResult = await this._prolongRequestLock(requestId);
          if (!prolongResult) {
            return null;
          }
          const hydratedRequest2 = await this.getRequest(requestId);
          if (!hydratedRequest2) {
            try {
              await this.client.deleteRequestLock(requestId);
            } catch {
            }
            return null;
          }
          this.requestCache.add(requestId, {
            id: requestId,
            uniqueKey: hydratedRequest2.uniqueKey,
            hydrated: hydratedRequest2,
            isHandled: hydratedRequest2.handledAt !== null,
            lockExpiresAt: prolongResult.getTime(),
            forefront: false
          });
          return hydratedRequest2;
        }
        if (cachedEntry.hydrated) {
          if (cachedEntry.lockExpiresAt && cachedEntry.lockExpiresAt < Date.now()) {
            const prolonged2 = await this._prolongRequestLock(cachedEntry.id);
            if (!prolonged2) {
              return null;
            }
            cachedEntry.lockExpiresAt = prolonged2.getTime();
          }
          return cachedEntry.hydrated;
        }
        const prolonged = await this._prolongRequestLock(cachedEntry.id);
        if (!prolonged) {
          return null;
        }
        const hydratedRequest = await this.getRequest(cachedEntry.id);
        cachedEntry.hydrated = hydratedRequest;
        if (!hydratedRequest) {
          try {
            await this.client.deleteRequestLock(cachedEntry.id);
          } catch {
          }
          return null;
        }
        return hydratedRequest;
      }
      async _prolongRequestLock(requestId) {
        try {
          const res = await this.client.prolongRequestLock(requestId, { lockSecs: this.requestLockSecs });
          return res.lockExpiresAt;
        } catch (err2) {
          this.log.warning(`Failed to prolong lock for cached request ${requestId}, either lost the lock or the request was already handled
`, {
            err: err2
          });
          return null;
        }
      }
      _reset() {
        super._reset();
        this.listHeadAndLockPromise = null;
        this.queueHasLockedRequests = void 0;
      }
      _maybeAddRequestToQueueHead() {
      }
      async _clearPossibleLocks() {
        this.queuePausedForMigration = true;
        let requestId;
        while ((requestId = this.queueHeadIds.removeFirst()) !== null) {
          try {
            await this.client.deleteRequestLock(requestId);
          } catch {
          }
        }
      }
      /**
       * @inheritDoc
       */
      static async open(...args) {
        return super.open(...args);
      }
    };
    exports.RequestQueue = RequestQueue2;
  }
});

// ../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js
var require_balanced_match = __commonJS({
  "../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js"(exports, module) {
    "use strict";
    module.exports = balanced;
    function balanced(a5, b3, str) {
      if (a5 instanceof RegExp) a5 = maybeMatch(a5, str);
      if (b3 instanceof RegExp) b3 = maybeMatch(b3, str);
      var r4 = range2(a5, b3, str);
      return r4 && {
        start: r4[0],
        end: r4[1],
        pre: str.slice(0, r4[0]),
        body: str.slice(r4[0] + a5.length, r4[1]),
        post: str.slice(r4[1] + b3.length)
      };
    }
    function maybeMatch(reg, str) {
      var m3 = str.match(reg);
      return m3 ? m3[0] : null;
    }
    balanced.range = range2;
    function range2(a5, b3, str) {
      var begs, beg, left, right, result;
      var ai = str.indexOf(a5);
      var bi = str.indexOf(b3, ai + 1);
      var i5 = ai;
      if (ai >= 0 && bi > 0) {
        if (a5 === b3) {
          return [ai, bi];
        }
        begs = [];
        left = str.length;
        while (i5 >= 0 && !result) {
          if (i5 == ai) {
            begs.push(i5);
            ai = str.indexOf(a5, i5 + 1);
          } else if (begs.length == 1) {
            result = [begs.pop(), bi];
          } else {
            beg = begs.pop();
            if (beg < left) {
              left = beg;
              right = bi;
            }
            bi = str.indexOf(b3, i5 + 1);
          }
          i5 = ai < bi && ai >= 0 ? ai : bi;
        }
        if (begs.length) {
          result = [left, right];
        }
      }
      return result;
    }
  }
});

// ../../node_modules/.pnpm/brace-expansion@2.0.2/node_modules/brace-expansion/index.js
var require_brace_expansion = __commonJS({
  "../../node_modules/.pnpm/brace-expansion@2.0.2/node_modules/brace-expansion/index.js"(exports, module) {
    var balanced = require_balanced_match();
    module.exports = expandTop;
    var escSlash = "\0SLASH" + Math.random() + "\0";
    var escOpen = "\0OPEN" + Math.random() + "\0";
    var escClose = "\0CLOSE" + Math.random() + "\0";
    var escComma = "\0COMMA" + Math.random() + "\0";
    var escPeriod = "\0PERIOD" + Math.random() + "\0";
    function numeric(str) {
      return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
    }
    function escapeBraces(str) {
      return str.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod);
    }
    function unescapeBraces(str) {
      return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
    }
    function parseCommaParts(str) {
      if (!str)
        return [""];
      var parts = [];
      var m3 = balanced("{", "}", str);
      if (!m3)
        return str.split(",");
      var pre = m3.pre;
      var body = m3.body;
      var post = m3.post;
      var p3 = pre.split(",");
      p3[p3.length - 1] += "{" + body + "}";
      var postParts = parseCommaParts(post);
      if (post.length) {
        p3[p3.length - 1] += postParts.shift();
        p3.push.apply(p3, postParts);
      }
      parts.push.apply(parts, p3);
      return parts;
    }
    function expandTop(str) {
      if (!str)
        return [];
      if (str.substr(0, 2) === "{}") {
        str = "\\{\\}" + str.substr(2);
      }
      return expand(escapeBraces(str), true).map(unescapeBraces);
    }
    function embrace(str) {
      return "{" + str + "}";
    }
    function isPadded(el) {
      return /^-?0\d/.test(el);
    }
    function lte(i5, y3) {
      return i5 <= y3;
    }
    function gte(i5, y3) {
      return i5 >= y3;
    }
    function expand(str, isTop) {
      var expansions = [];
      var m3 = balanced("{", "}", str);
      if (!m3) return [str];
      var pre = m3.pre;
      var post = m3.post.length ? expand(m3.post, false) : [""];
      if (/\$$/.test(m3.pre)) {
        for (var k3 = 0; k3 < post.length; k3++) {
          var expansion = pre + "{" + m3.body + "}" + post[k3];
          expansions.push(expansion);
        }
      } else {
        var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m3.body);
        var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m3.body);
        var isSequence = isNumericSequence || isAlphaSequence;
        var isOptions = m3.body.indexOf(",") >= 0;
        if (!isSequence && !isOptions) {
          if (m3.post.match(/,(?!,).*\}/)) {
            str = m3.pre + "{" + m3.body + escClose + m3.post;
            return expand(str);
          }
          return [str];
        }
        var n6;
        if (isSequence) {
          n6 = m3.body.split(/\.\./);
        } else {
          n6 = parseCommaParts(m3.body);
          if (n6.length === 1) {
            n6 = expand(n6[0], false).map(embrace);
            if (n6.length === 1) {
              return post.map(function(p3) {
                return m3.pre + n6[0] + p3;
              });
            }
          }
        }
        var N;
        if (isSequence) {
          var x = numeric(n6[0]);
          var y3 = numeric(n6[1]);
          var width = Math.max(n6[0].length, n6[1].length);
          var incr = n6.length == 3 ? Math.abs(numeric(n6[2])) : 1;
          var test3 = lte;
          var reverse2 = y3 < x;
          if (reverse2) {
            incr *= -1;
            test3 = gte;
          }
          var pad2 = n6.some(isPadded);
          N = [];
          for (var i5 = x; test3(i5, y3); i5 += incr) {
            var c6;
            if (isAlphaSequence) {
              c6 = String.fromCharCode(i5);
              if (c6 === "\\")
                c6 = "";
            } else {
              c6 = String(i5);
              if (pad2) {
                var need = width - c6.length;
                if (need > 0) {
                  var z = new Array(need + 1).join("0");
                  if (i5 < 0)
                    c6 = "-" + z + c6.slice(1);
                  else
                    c6 = z + c6;
                }
              }
            }
            N.push(c6);
          }
        } else {
          N = [];
          for (var j = 0; j < n6.length; j++) {
            N.push.apply(N, expand(n6[j], false));
          }
        }
        for (var j = 0; j < N.length; j++) {
          for (var k3 = 0; k3 < post.length; k3++) {
            var expansion = pre + N[j] + post[k3];
            if (!isTop || isSequence || expansion)
              expansions.push(expansion);
          }
        }
      }
      return expansions;
    }
  }
});

// ../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js
var require_assert_valid_pattern = __commonJS({
  "../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.assertValidPattern = void 0;
    var MAX_PATTERN_LENGTH = 1024 * 64;
    var assertValidPattern = (pattern3) => {
      if (typeof pattern3 !== "string") {
        throw new TypeError("invalid pattern");
      }
      if (pattern3.length > MAX_PATTERN_LENGTH) {
        throw new TypeError("pattern is too long");
      }
    };
    exports.assertValidPattern = assertValidPattern;
  }
});

// ../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/brace-expressions.js
var require_brace_expressions = __commonJS({
  "../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/brace-expressions.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.parseClass = void 0;
    var posixClasses = {
      "[:alnum:]": ["\\p{L}\\p{Nl}\\p{Nd}", true],
      "[:alpha:]": ["\\p{L}\\p{Nl}", true],
      "[:ascii:]": ["\\x00-\\x7f", false],
      "[:blank:]": ["\\p{Zs}\\t", true],
      "[:cntrl:]": ["\\p{Cc}", true],
      "[:digit:]": ["\\p{Nd}", true],
      "[:graph:]": ["\\p{Z}\\p{C}", true, true],
      "[:lower:]": ["\\p{Ll}", true],
      "[:print:]": ["\\p{C}", true],
      "[:punct:]": ["\\p{P}", true],
      "[:space:]": ["\\p{Z}\\t\\r\\n\\v\\f", true],
      "[:upper:]": ["\\p{Lu}", true],
      "[:word:]": ["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}", true],
      "[:xdigit:]": ["A-Fa-f0-9", false]
    };
    var braceEscape = (s4) => s4.replace(/[[\]\\-]/g, "\\$&");
    var regexpEscape = (s4) => s4.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
    var rangesToString = (ranges) => ranges.join("");
    var parseClass = (glob, position) => {
      const pos = position;
      if (glob.charAt(pos) !== "[") {
        throw new Error("not in a brace expression");
      }
      const ranges = [];
      const negs = [];
      let i5 = pos + 1;
      let sawStart = false;
      let uflag = false;
      let escaping = false;
      let negate = false;
      let endPos = pos;
      let rangeStart = "";
      WHILE: while (i5 < glob.length) {
        const c6 = glob.charAt(i5);
        if ((c6 === "!" || c6 === "^") && i5 === pos + 1) {
          negate = true;
          i5++;
          continue;
        }
        if (c6 === "]" && sawStart && !escaping) {
          endPos = i5 + 1;
          break;
        }
        sawStart = true;
        if (c6 === "\\") {
          if (!escaping) {
            escaping = true;
            i5++;
            continue;
          }
        }
        if (c6 === "[" && !escaping) {
          for (const [cls, [unip, u5, neg]] of Object.entries(posixClasses)) {
            if (glob.startsWith(cls, i5)) {
              if (rangeStart) {
                return ["$.", false, glob.length - pos, true];
              }
              i5 += cls.length;
              if (neg)
                negs.push(unip);
              else
                ranges.push(unip);
              uflag = uflag || u5;
              continue WHILE;
            }
          }
        }
        escaping = false;
        if (rangeStart) {
          if (c6 > rangeStart) {
            ranges.push(braceEscape(rangeStart) + "-" + braceEscape(c6));
          } else if (c6 === rangeStart) {
            ranges.push(braceEscape(c6));
          }
          rangeStart = "";
          i5++;
          continue;
        }
        if (glob.startsWith("-]", i5 + 1)) {
          ranges.push(braceEscape(c6 + "-"));
          i5 += 2;
          continue;
        }
        if (glob.startsWith("-", i5 + 1)) {
          rangeStart = c6;
          i5 += 2;
          continue;
        }
        ranges.push(braceEscape(c6));
        i5++;
      }
      if (endPos < i5) {
        return ["", false, 0, false];
      }
      if (!ranges.length && !negs.length) {
        return ["$.", false, glob.length - pos, true];
      }
      if (negs.length === 0 && ranges.length === 1 && /^\\?.$/.test(ranges[0]) && !negate) {
        const r4 = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];
        return [regexpEscape(r4), false, endPos - pos, false];
      }
      const sranges = "[" + (negate ? "^" : "") + rangesToString(ranges) + "]";
      const snegs = "[" + (negate ? "" : "^") + rangesToString(negs) + "]";
      const comb = ranges.length && negs.length ? "(" + sranges + "|" + snegs + ")" : ranges.length ? sranges : snegs;
      return [comb, uflag, endPos - pos, true];
    };
    exports.parseClass = parseClass;
  }
});

// ../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/unescape.js
var require_unescape = __commonJS({
  "../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/unescape.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.unescape = void 0;
    var unescape2 = (s4, { windowsPathsNoEscape = false } = {}) => {
      return windowsPathsNoEscape ? s4.replace(/\[([^\/\\])\]/g, "$1") : s4.replace(/((?!\\).|^)\[([^\/\\])\]/g, "$1$2").replace(/\\([^\/])/g, "$1");
    };
    exports.unescape = unescape2;
  }
});

// ../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/ast.js
var require_ast = __commonJS({
  "../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/ast.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.AST = void 0;
    var brace_expressions_js_1 = require_brace_expressions();
    var unescape_js_1 = require_unescape();
    var types2 = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
    var isExtglobType = (c6) => types2.has(c6);
    var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
    var startNoDot = "(?!\\.)";
    var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
    var justDots = /* @__PURE__ */ new Set(["..", "."]);
    var reSpecials = new Set("().*{}+?[]^$\\!");
    var regExpEscape = (s4) => s4.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
    var qmark = "[^/]";
    var star = qmark + "*?";
    var starNoEmpty = qmark + "+?";
    var AST = class _AST {
      type;
      #root;
      #hasMagic;
      #uflag = false;
      #parts = [];
      #parent;
      #parentIndex;
      #negs;
      #filledNegs = false;
      #options;
      #toString;
      // set to true if it's an extglob with no children
      // (which really means one child of '')
      #emptyExt = false;
      constructor(type, parent, options = {}) {
        this.type = type;
        if (type)
          this.#hasMagic = true;
        this.#parent = parent;
        this.#root = this.#parent ? this.#parent.#root : this;
        this.#options = this.#root === this ? options : this.#root.#options;
        this.#negs = this.#root === this ? [] : this.#root.#negs;
        if (type === "!" && !this.#root.#filledNegs)
          this.#negs.push(this);
        this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;
      }
      get hasMagic() {
        if (this.#hasMagic !== void 0)
          return this.#hasMagic;
        for (const p3 of this.#parts) {
          if (typeof p3 === "string")
            continue;
          if (p3.type || p3.hasMagic)
            return this.#hasMagic = true;
        }
        return this.#hasMagic;
      }
      // reconstructs the pattern
      toString() {
        if (this.#toString !== void 0)
          return this.#toString;
        if (!this.type) {
          return this.#toString = this.#parts.map((p3) => String(p3)).join("");
        } else {
          return this.#toString = this.type + "(" + this.#parts.map((p3) => String(p3)).join("|") + ")";
        }
      }
      #fillNegs() {
        if (this !== this.#root)
          throw new Error("should only call on root");
        if (this.#filledNegs)
          return this;
        this.toString();
        this.#filledNegs = true;
        let n6;
        while (n6 = this.#negs.pop()) {
          if (n6.type !== "!")
            continue;
          let p3 = n6;
          let pp = p3.#parent;
          while (pp) {
            for (let i5 = p3.#parentIndex + 1; !pp.type && i5 < pp.#parts.length; i5++) {
              for (const part of n6.#parts) {
                if (typeof part === "string") {
                  throw new Error("string part in extglob AST??");
                }
                part.copyIn(pp.#parts[i5]);
              }
            }
            p3 = pp;
            pp = p3.#parent;
          }
        }
        return this;
      }
      push(...parts) {
        for (const p3 of parts) {
          if (p3 === "")
            continue;
          if (typeof p3 !== "string" && !(p3 instanceof _AST && p3.#parent === this)) {
            throw new Error("invalid part: " + p3);
          }
          this.#parts.push(p3);
        }
      }
      toJSON() {
        const ret = this.type === null ? this.#parts.slice().map((p3) => typeof p3 === "string" ? p3 : p3.toJSON()) : [this.type, ...this.#parts.map((p3) => p3.toJSON())];
        if (this.isStart() && !this.type)
          ret.unshift([]);
        if (this.isEnd() && (this === this.#root || this.#root.#filledNegs && this.#parent?.type === "!")) {
          ret.push({});
        }
        return ret;
      }
      isStart() {
        if (this.#root === this)
          return true;
        if (!this.#parent?.isStart())
          return false;
        if (this.#parentIndex === 0)
          return true;
        const p3 = this.#parent;
        for (let i5 = 0; i5 < this.#parentIndex; i5++) {
          const pp = p3.#parts[i5];
          if (!(pp instanceof _AST && pp.type === "!")) {
            return false;
          }
        }
        return true;
      }
      isEnd() {
        if (this.#root === this)
          return true;
        if (this.#parent?.type === "!")
          return true;
        if (!this.#parent?.isEnd())
          return false;
        if (!this.type)
          return this.#parent?.isEnd();
        const pl = this.#parent ? this.#parent.#parts.length : 0;
        return this.#parentIndex === pl - 1;
      }
      copyIn(part) {
        if (typeof part === "string")
          this.push(part);
        else
          this.push(part.clone(this));
      }
      clone(parent) {
        const c6 = new _AST(this.type, parent);
        for (const p3 of this.#parts) {
          c6.copyIn(p3);
        }
        return c6;
      }
      static #parseAST(str, ast, pos, opt) {
        let escaping = false;
        let inBrace = false;
        let braceStart = -1;
        let braceNeg = false;
        if (ast.type === null) {
          let i6 = pos;
          let acc2 = "";
          while (i6 < str.length) {
            const c6 = str.charAt(i6++);
            if (escaping || c6 === "\\") {
              escaping = !escaping;
              acc2 += c6;
              continue;
            }
            if (inBrace) {
              if (i6 === braceStart + 1) {
                if (c6 === "^" || c6 === "!") {
                  braceNeg = true;
                }
              } else if (c6 === "]" && !(i6 === braceStart + 2 && braceNeg)) {
                inBrace = false;
              }
              acc2 += c6;
              continue;
            } else if (c6 === "[") {
              inBrace = true;
              braceStart = i6;
              braceNeg = false;
              acc2 += c6;
              continue;
            }
            if (!opt.noext && isExtglobType(c6) && str.charAt(i6) === "(") {
              ast.push(acc2);
              acc2 = "";
              const ext = new _AST(c6, ast);
              i6 = _AST.#parseAST(str, ext, i6, opt);
              ast.push(ext);
              continue;
            }
            acc2 += c6;
          }
          ast.push(acc2);
          return i6;
        }
        let i5 = pos + 1;
        let part = new _AST(null, ast);
        const parts = [];
        let acc = "";
        while (i5 < str.length) {
          const c6 = str.charAt(i5++);
          if (escaping || c6 === "\\") {
            escaping = !escaping;
            acc += c6;
            continue;
          }
          if (inBrace) {
            if (i5 === braceStart + 1) {
              if (c6 === "^" || c6 === "!") {
                braceNeg = true;
              }
            } else if (c6 === "]" && !(i5 === braceStart + 2 && braceNeg)) {
              inBrace = false;
            }
            acc += c6;
            continue;
          } else if (c6 === "[") {
            inBrace = true;
            braceStart = i5;
            braceNeg = false;
            acc += c6;
            continue;
          }
          if (isExtglobType(c6) && str.charAt(i5) === "(") {
            part.push(acc);
            acc = "";
            const ext = new _AST(c6, part);
            part.push(ext);
            i5 = _AST.#parseAST(str, ext, i5, opt);
            continue;
          }
          if (c6 === "|") {
            part.push(acc);
            acc = "";
            parts.push(part);
            part = new _AST(null, ast);
            continue;
          }
          if (c6 === ")") {
            if (acc === "" && ast.#parts.length === 0) {
              ast.#emptyExt = true;
            }
            part.push(acc);
            acc = "";
            ast.push(...parts, part);
            return i5;
          }
          acc += c6;
        }
        ast.type = null;
        ast.#hasMagic = void 0;
        ast.#parts = [str.substring(pos - 1)];
        return i5;
      }
      static fromGlob(pattern3, options = {}) {
        const ast = new _AST(null, void 0, options);
        _AST.#parseAST(pattern3, ast, 0, options);
        return ast;
      }
      // returns the regular expression if there's magic, or the unescaped
      // string if not.
      toMMPattern() {
        if (this !== this.#root)
          return this.#root.toMMPattern();
        const glob = this.toString();
        const [re, body, hasMagic, uflag] = this.toRegExpSource();
        const anyMagic = hasMagic || this.#hasMagic || this.#options.nocase && !this.#options.nocaseMagicOnly && glob.toUpperCase() !== glob.toLowerCase();
        if (!anyMagic) {
          return body;
        }
        const flags = (this.#options.nocase ? "i" : "") + (uflag ? "u" : "");
        return Object.assign(new RegExp(`^${re}$`, flags), {
          _src: re,
          _glob: glob
        });
      }
      get options() {
        return this.#options;
      }
      // returns the string match, the regexp source, whether there's magic
      // in the regexp (so a regular expression is required) and whether or
      // not the uflag is needed for the regular expression (for posix classes)
      // TODO: instead of injecting the start/end at this point, just return
      // the BODY of the regexp, along with the start/end portions suitable
      // for binding the start/end in either a joined full-path makeRe context
      // (where we bind to (^|/), or a standalone matchPart context (where
      // we bind to ^, and not /).  Otherwise slashes get duped!
      //
      // In part-matching mode, the start is:
      // - if not isStart: nothing
      // - if traversal possible, but not allowed: ^(?!\.\.?$)
      // - if dots allowed or not possible: ^
      // - if dots possible and not allowed: ^(?!\.)
      // end is:
      // - if not isEnd(): nothing
      // - else: $
      //
      // In full-path matching mode, we put the slash at the START of the
      // pattern, so start is:
      // - if first pattern: same as part-matching mode
      // - if not isStart(): nothing
      // - if traversal possible, but not allowed: /(?!\.\.?(?:$|/))
      // - if dots allowed or not possible: /
      // - if dots possible and not allowed: /(?!\.)
      // end is:
      // - if last pattern, same as part-matching mode
      // - else nothing
      //
      // Always put the (?:$|/) on negated tails, though, because that has to be
      // there to bind the end of the negated pattern portion, and it's easier to
      // just stick it in now rather than try to inject it later in the middle of
      // the pattern.
      //
      // We can just always return the same end, and leave it up to the caller
      // to know whether it's going to be used joined or in parts.
      // And, if the start is adjusted slightly, can do the same there:
      // - if not isStart: nothing
      // - if traversal possible, but not allowed: (?:/|^)(?!\.\.?$)
      // - if dots allowed or not possible: (?:/|^)
      // - if dots possible and not allowed: (?:/|^)(?!\.)
      //
      // But it's better to have a simpler binding without a conditional, for
      // performance, so probably better to return both start options.
      //
      // Then the caller just ignores the end if it's not the first pattern,
      // and the start always gets applied.
      //
      // But that's always going to be $ if it's the ending pattern, or nothing,
      // so the caller can just attach $ at the end of the pattern when building.
      //
      // So the todo is:
      // - better detect what kind of start is needed
      // - return both flavors of starting pattern
      // - attach $ at the end of the pattern when creating the actual RegExp
      //
      // Ah, but wait, no, that all only applies to the root when the first pattern
      // is not an extglob. If the first pattern IS an extglob, then we need all
      // that dot prevention biz to live in the extglob portions, because eg
      // +(*|.x*) can match .xy but not .yx.
      //
      // So, return the two flavors if it's #root and the first child is not an
      // AST, otherwise leave it to the child AST to handle it, and there,
      // use the (?:^|/) style of start binding.
      //
      // Even simplified further:
      // - Since the start for a join is eg /(?!\.) and the start for a part
      // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
      // or start or whatever) and prepend ^ or / at the Regexp construction.
      toRegExpSource(allowDot) {
        const dot = allowDot ?? !!this.#options.dot;
        if (this.#root === this)
          this.#fillNegs();
        if (!this.type) {
          const noEmpty = this.isStart() && this.isEnd();
          const src = this.#parts.map((p3) => {
            const [re, _, hasMagic, uflag] = typeof p3 === "string" ? _AST.#parseGlob(p3, this.#hasMagic, noEmpty) : p3.toRegExpSource(allowDot);
            this.#hasMagic = this.#hasMagic || hasMagic;
            this.#uflag = this.#uflag || uflag;
            return re;
          }).join("");
          let start3 = "";
          if (this.isStart()) {
            if (typeof this.#parts[0] === "string") {
              const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);
              if (!dotTravAllowed) {
                const aps = addPatternStart;
                const needNoTrav = (
                  // dots are allowed, and the pattern starts with [ or .
                  dot && aps.has(src.charAt(0)) || // the pattern starts with \., and then [ or .
                  src.startsWith("\\.") && aps.has(src.charAt(2)) || // the pattern starts with \.\., and then [ or .
                  src.startsWith("\\.\\.") && aps.has(src.charAt(4))
                );
                const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));
                start3 = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : "";
              }
            }
          }
          let end2 = "";
          if (this.isEnd() && this.#root.#filledNegs && this.#parent?.type === "!") {
            end2 = "(?:$|\\/)";
          }
          const final2 = start3 + src + end2;
          return [
            final2,
            (0, unescape_js_1.unescape)(src),
            this.#hasMagic = !!this.#hasMagic,
            this.#uflag
          ];
        }
        const repeated = this.type === "*" || this.type === "+";
        const start2 = this.type === "!" ? "(?:(?!(?:" : "(?:";
        let body = this.#partsToRegExp(dot);
        if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
          const s4 = this.toString();
          this.#parts = [s4];
          this.type = null;
          this.#hasMagic = void 0;
          return [s4, (0, unescape_js_1.unescape)(this.toString()), false, false];
        }
        let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : this.#partsToRegExp(true);
        if (bodyDotAllowed === body) {
          bodyDotAllowed = "";
        }
        if (bodyDotAllowed) {
          body = `(?:${body})(?:${bodyDotAllowed})*?`;
        }
        let final = "";
        if (this.type === "!" && this.#emptyExt) {
          final = (this.isStart() && !dot ? startNoDot : "") + starNoEmpty;
        } else {
          const close = this.type === "!" ? (
            // !() must match something,but !(x) can match ''
            "))" + (this.isStart() && !dot && !allowDot ? startNoDot : "") + star + ")"
          ) : this.type === "@" ? ")" : this.type === "?" ? ")?" : this.type === "+" && bodyDotAllowed ? ")" : this.type === "*" && bodyDotAllowed ? `)?` : `)${this.type}`;
          final = start2 + body + close;
        }
        return [
          final,
          (0, unescape_js_1.unescape)(body),
          this.#hasMagic = !!this.#hasMagic,
          this.#uflag
        ];
      }
      #partsToRegExp(dot) {
        return this.#parts.map((p3) => {
          if (typeof p3 === "string") {
            throw new Error("string type in extglob ast??");
          }
          const [re, _, _hasMagic, uflag] = p3.toRegExpSource(dot);
          this.#uflag = this.#uflag || uflag;
          return re;
        }).filter((p3) => !(this.isStart() && this.isEnd()) || !!p3).join("|");
      }
      static #parseGlob(glob, hasMagic, noEmpty = false) {
        let escaping = false;
        let re = "";
        let uflag = false;
        for (let i5 = 0; i5 < glob.length; i5++) {
          const c6 = glob.charAt(i5);
          if (escaping) {
            escaping = false;
            re += (reSpecials.has(c6) ? "\\" : "") + c6;
            continue;
          }
          if (c6 === "\\") {
            if (i5 === glob.length - 1) {
              re += "\\\\";
            } else {
              escaping = true;
            }
            continue;
          }
          if (c6 === "[") {
            const [src, needUflag, consumed, magic] = (0, brace_expressions_js_1.parseClass)(glob, i5);
            if (consumed) {
              re += src;
              uflag = uflag || needUflag;
              i5 += consumed - 1;
              hasMagic = hasMagic || magic;
              continue;
            }
          }
          if (c6 === "*") {
            if (noEmpty && glob === "*")
              re += starNoEmpty;
            else
              re += star;
            hasMagic = true;
            continue;
          }
          if (c6 === "?") {
            re += qmark;
            hasMagic = true;
            continue;
          }
          re += regExpEscape(c6);
        }
        return [re, (0, unescape_js_1.unescape)(glob), !!hasMagic, uflag];
      }
    };
    exports.AST = AST;
  }
});

// ../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/escape.js
var require_escape3 = __commonJS({
  "../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/escape.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.escape = void 0;
    var escape2 = (s4, { windowsPathsNoEscape = false } = {}) => {
      return windowsPathsNoEscape ? s4.replace(/[?*()[\]]/g, "[$&]") : s4.replace(/[?*()[\]\\]/g, "\\$&");
    };
    exports.escape = escape2;
  }
});

// ../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/index.js
var require_commonjs2 = __commonJS({
  "../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/index.js"(exports) {
    "use strict";
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.unescape = exports.escape = exports.AST = exports.Minimatch = exports.match = exports.makeRe = exports.braceExpand = exports.defaults = exports.filter = exports.GLOBSTAR = exports.sep = exports.minimatch = void 0;
    var brace_expansion_1 = __importDefault2(require_brace_expansion());
    var assert_valid_pattern_js_1 = require_assert_valid_pattern();
    var ast_js_1 = require_ast();
    var escape_js_1 = require_escape3();
    var unescape_js_1 = require_unescape();
    var minimatch = (p3, pattern3, options = {}) => {
      (0, assert_valid_pattern_js_1.assertValidPattern)(pattern3);
      if (!options.nocomment && pattern3.charAt(0) === "#") {
        return false;
      }
      return new Minimatch(pattern3, options).match(p3);
    };
    exports.minimatch = minimatch;
    var starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/;
    var starDotExtTest = (ext2) => (f4) => !f4.startsWith(".") && f4.endsWith(ext2);
    var starDotExtTestDot = (ext2) => (f4) => f4.endsWith(ext2);
    var starDotExtTestNocase = (ext2) => {
      ext2 = ext2.toLowerCase();
      return (f4) => !f4.startsWith(".") && f4.toLowerCase().endsWith(ext2);
    };
    var starDotExtTestNocaseDot = (ext2) => {
      ext2 = ext2.toLowerCase();
      return (f4) => f4.toLowerCase().endsWith(ext2);
    };
    var starDotStarRE = /^\*+\.\*+$/;
    var starDotStarTest = (f4) => !f4.startsWith(".") && f4.includes(".");
    var starDotStarTestDot = (f4) => f4 !== "." && f4 !== ".." && f4.includes(".");
    var dotStarRE = /^\.\*+$/;
    var dotStarTest = (f4) => f4 !== "." && f4 !== ".." && f4.startsWith(".");
    var starRE = /^\*+$/;
    var starTest = (f4) => f4.length !== 0 && !f4.startsWith(".");
    var starTestDot = (f4) => f4.length !== 0 && f4 !== "." && f4 !== "..";
    var qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/;
    var qmarksTestNocase = ([$0, ext2 = ""]) => {
      const noext = qmarksTestNoExt([$0]);
      if (!ext2)
        return noext;
      ext2 = ext2.toLowerCase();
      return (f4) => noext(f4) && f4.toLowerCase().endsWith(ext2);
    };
    var qmarksTestNocaseDot = ([$0, ext2 = ""]) => {
      const noext = qmarksTestNoExtDot([$0]);
      if (!ext2)
        return noext;
      ext2 = ext2.toLowerCase();
      return (f4) => noext(f4) && f4.toLowerCase().endsWith(ext2);
    };
    var qmarksTestDot = ([$0, ext2 = ""]) => {
      const noext = qmarksTestNoExtDot([$0]);
      return !ext2 ? noext : (f4) => noext(f4) && f4.endsWith(ext2);
    };
    var qmarksTest = ([$0, ext2 = ""]) => {
      const noext = qmarksTestNoExt([$0]);
      return !ext2 ? noext : (f4) => noext(f4) && f4.endsWith(ext2);
    };
    var qmarksTestNoExt = ([$0]) => {
      const len = $0.length;
      return (f4) => f4.length === len && !f4.startsWith(".");
    };
    var qmarksTestNoExtDot = ([$0]) => {
      const len = $0.length;
      return (f4) => f4.length === len && f4 !== "." && f4 !== "..";
    };
    var defaultPlatform = typeof process === "object" && process ? typeof process.env === "object" && process.env && process.env.__MINIMATCH_TESTING_PLATFORM__ || process.platform : "posix";
    var path3 = {
      win32: { sep: "\\" },
      posix: { sep: "/" }
    };
    exports.sep = defaultPlatform === "win32" ? path3.win32.sep : path3.posix.sep;
    exports.minimatch.sep = exports.sep;
    exports.GLOBSTAR = Symbol("globstar **");
    exports.minimatch.GLOBSTAR = exports.GLOBSTAR;
    var qmark = "[^/]";
    var star = qmark + "*?";
    var twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";
    var twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?";
    var filter3 = (pattern3, options = {}) => (p3) => (0, exports.minimatch)(p3, pattern3, options);
    exports.filter = filter3;
    exports.minimatch.filter = exports.filter;
    var ext = (a5, b3 = {}) => Object.assign({}, a5, b3);
    var defaults4 = (def) => {
      if (!def || typeof def !== "object" || !Object.keys(def).length) {
        return exports.minimatch;
      }
      const orig = exports.minimatch;
      const m3 = (p3, pattern3, options = {}) => orig(p3, pattern3, ext(def, options));
      return Object.assign(m3, {
        Minimatch: class Minimatch extends orig.Minimatch {
          constructor(pattern3, options = {}) {
            super(pattern3, ext(def, options));
          }
          static defaults(options) {
            return orig.defaults(ext(def, options)).Minimatch;
          }
        },
        AST: class AST extends orig.AST {
          /* c8 ignore start */
          constructor(type, parent, options = {}) {
            super(type, parent, ext(def, options));
          }
          /* c8 ignore stop */
          static fromGlob(pattern3, options = {}) {
            return orig.AST.fromGlob(pattern3, ext(def, options));
          }
        },
        unescape: (s4, options = {}) => orig.unescape(s4, ext(def, options)),
        escape: (s4, options = {}) => orig.escape(s4, ext(def, options)),
        filter: (pattern3, options = {}) => orig.filter(pattern3, ext(def, options)),
        defaults: (options) => orig.defaults(ext(def, options)),
        makeRe: (pattern3, options = {}) => orig.makeRe(pattern3, ext(def, options)),
        braceExpand: (pattern3, options = {}) => orig.braceExpand(pattern3, ext(def, options)),
        match: (list, pattern3, options = {}) => orig.match(list, pattern3, ext(def, options)),
        sep: orig.sep,
        GLOBSTAR: exports.GLOBSTAR
      });
    };
    exports.defaults = defaults4;
    exports.minimatch.defaults = exports.defaults;
    var braceExpand = (pattern3, options = {}) => {
      (0, assert_valid_pattern_js_1.assertValidPattern)(pattern3);
      if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern3)) {
        return [pattern3];
      }
      return (0, brace_expansion_1.default)(pattern3);
    };
    exports.braceExpand = braceExpand;
    exports.minimatch.braceExpand = exports.braceExpand;
    var makeRe = (pattern3, options = {}) => new Minimatch(pattern3, options).makeRe();
    exports.makeRe = makeRe;
    exports.minimatch.makeRe = exports.makeRe;
    var match = (list, pattern3, options = {}) => {
      const mm = new Minimatch(pattern3, options);
      list = list.filter((f4) => mm.match(f4));
      if (mm.options.nonull && !list.length) {
        list.push(pattern3);
      }
      return list;
    };
    exports.match = match;
    exports.minimatch.match = exports.match;
    var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
    var regExpEscape = (s4) => s4.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
    var Minimatch = class {
      options;
      set;
      pattern;
      windowsPathsNoEscape;
      nonegate;
      negate;
      comment;
      empty;
      preserveMultipleSlashes;
      partial;
      globSet;
      globParts;
      nocase;
      isWindows;
      platform;
      windowsNoMagicRoot;
      regexp;
      constructor(pattern3, options = {}) {
        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern3);
        options = options || {};
        this.options = options;
        this.pattern = pattern3;
        this.platform = options.platform || defaultPlatform;
        this.isWindows = this.platform === "win32";
        this.windowsPathsNoEscape = !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;
        if (this.windowsPathsNoEscape) {
          this.pattern = this.pattern.replace(/\\/g, "/");
        }
        this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;
        this.regexp = null;
        this.negate = false;
        this.nonegate = !!options.nonegate;
        this.comment = false;
        this.empty = false;
        this.partial = !!options.partial;
        this.nocase = !!this.options.nocase;
        this.windowsNoMagicRoot = options.windowsNoMagicRoot !== void 0 ? options.windowsNoMagicRoot : !!(this.isWindows && this.nocase);
        this.globSet = [];
        this.globParts = [];
        this.set = [];
        this.make();
      }
      hasMagic() {
        if (this.options.magicalBraces && this.set.length > 1) {
          return true;
        }
        for (const pattern3 of this.set) {
          for (const part of pattern3) {
            if (typeof part !== "string")
              return true;
          }
        }
        return false;
      }
      debug(..._) {
      }
      make() {
        const pattern3 = this.pattern;
        const options = this.options;
        if (!options.nocomment && pattern3.charAt(0) === "#") {
          this.comment = true;
          return;
        }
        if (!pattern3) {
          this.empty = true;
          return;
        }
        this.parseNegate();
        this.globSet = [...new Set(this.braceExpand())];
        if (options.debug) {
          this.debug = (...args) => console.error(...args);
        }
        this.debug(this.pattern, this.globSet);
        const rawGlobParts = this.globSet.map((s4) => this.slashSplit(s4));
        this.globParts = this.preprocess(rawGlobParts);
        this.debug(this.pattern, this.globParts);
        let set = this.globParts.map((s4, _, __) => {
          if (this.isWindows && this.windowsNoMagicRoot) {
            const isUNC = s4[0] === "" && s4[1] === "" && (s4[2] === "?" || !globMagic.test(s4[2])) && !globMagic.test(s4[3]);
            const isDrive = /^[a-z]:/i.test(s4[0]);
            if (isUNC) {
              return [...s4.slice(0, 4), ...s4.slice(4).map((ss) => this.parse(ss))];
            } else if (isDrive) {
              return [s4[0], ...s4.slice(1).map((ss) => this.parse(ss))];
            }
          }
          return s4.map((ss) => this.parse(ss));
        });
        this.debug(this.pattern, set);
        this.set = set.filter((s4) => s4.indexOf(false) === -1);
        if (this.isWindows) {
          for (let i5 = 0; i5 < this.set.length; i5++) {
            const p3 = this.set[i5];
            if (p3[0] === "" && p3[1] === "" && this.globParts[i5][2] === "?" && typeof p3[3] === "string" && /^[a-z]:$/i.test(p3[3])) {
              p3[2] = "?";
            }
          }
        }
        this.debug(this.pattern, this.set);
      }
      // various transforms to equivalent pattern sets that are
      // faster to process in a filesystem walk.  The goal is to
      // eliminate what we can, and push all ** patterns as far
      // to the right as possible, even if it increases the number
      // of patterns that we have to process.
      preprocess(globParts) {
        if (this.options.noglobstar) {
          for (let i5 = 0; i5 < globParts.length; i5++) {
            for (let j = 0; j < globParts[i5].length; j++) {
              if (globParts[i5][j] === "**") {
                globParts[i5][j] = "*";
              }
            }
          }
        }
        const { optimizationLevel = 1 } = this.options;
        if (optimizationLevel >= 2) {
          globParts = this.firstPhasePreProcess(globParts);
          globParts = this.secondPhasePreProcess(globParts);
        } else if (optimizationLevel >= 1) {
          globParts = this.levelOneOptimize(globParts);
        } else {
          globParts = this.adjascentGlobstarOptimize(globParts);
        }
        return globParts;
      }
      // just get rid of adjascent ** portions
      adjascentGlobstarOptimize(globParts) {
        return globParts.map((parts) => {
          let gs = -1;
          while (-1 !== (gs = parts.indexOf("**", gs + 1))) {
            let i5 = gs;
            while (parts[i5 + 1] === "**") {
              i5++;
            }
            if (i5 !== gs) {
              parts.splice(gs, i5 - gs);
            }
          }
          return parts;
        });
      }
      // get rid of adjascent ** and resolve .. portions
      levelOneOptimize(globParts) {
        return globParts.map((parts) => {
          parts = parts.reduce((set, part) => {
            const prev = set[set.length - 1];
            if (part === "**" && prev === "**") {
              return set;
            }
            if (part === "..") {
              if (prev && prev !== ".." && prev !== "." && prev !== "**") {
                set.pop();
                return set;
              }
            }
            set.push(part);
            return set;
          }, []);
          return parts.length === 0 ? [""] : parts;
        });
      }
      levelTwoFileOptimize(parts) {
        if (!Array.isArray(parts)) {
          parts = this.slashSplit(parts);
        }
        let didSomething = false;
        do {
          didSomething = false;
          if (!this.preserveMultipleSlashes) {
            for (let i5 = 1; i5 < parts.length - 1; i5++) {
              const p3 = parts[i5];
              if (i5 === 1 && p3 === "" && parts[0] === "")
                continue;
              if (p3 === "." || p3 === "") {
                didSomething = true;
                parts.splice(i5, 1);
                i5--;
              }
            }
            if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) {
              didSomething = true;
              parts.pop();
            }
          }
          let dd = 0;
          while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
            const p3 = parts[dd - 1];
            if (p3 && p3 !== "." && p3 !== ".." && p3 !== "**") {
              didSomething = true;
              parts.splice(dd - 1, 2);
              dd -= 2;
            }
          }
        } while (didSomething);
        return parts.length === 0 ? [""] : parts;
      }
      // First phase: single-pattern processing
      // <pre> is 1 or more portions
      // <rest> is 1 or more portions
      // <p> is any portion other than ., .., '', or **
      // <e> is . or ''
      //
      // **/.. is *brutal* for filesystem walking performance, because
      // it effectively resets the recursive walk each time it occurs,
      // and ** cannot be reduced out by a .. pattern part like a regexp
      // or most strings (other than .., ., and '') can be.
      //
      // <pre>/**/../<p>/<p>/<rest> -> {<pre>/../<p>/<p>/<rest>,<pre>/**/<p>/<p>/<rest>}
      // <pre>/<e>/<rest> -> <pre>/<rest>
      // <pre>/<p>/../<rest> -> <pre>/<rest>
      // **/**/<rest> -> **/<rest>
      //
      // **/*/<rest> -> */**/<rest> <== not valid because ** doesn't follow
      // this WOULD be allowed if ** did follow symlinks, or * didn't
      firstPhasePreProcess(globParts) {
        let didSomething = false;
        do {
          didSomething = false;
          for (let parts of globParts) {
            let gs = -1;
            while (-1 !== (gs = parts.indexOf("**", gs + 1))) {
              let gss = gs;
              while (parts[gss + 1] === "**") {
                gss++;
              }
              if (gss > gs) {
                parts.splice(gs + 1, gss - gs);
              }
              let next = parts[gs + 1];
              const p3 = parts[gs + 2];
              const p22 = parts[gs + 3];
              if (next !== "..")
                continue;
              if (!p3 || p3 === "." || p3 === ".." || !p22 || p22 === "." || p22 === "..") {
                continue;
              }
              didSomething = true;
              parts.splice(gs, 1);
              const other = parts.slice(0);
              other[gs] = "**";
              globParts.push(other);
              gs--;
            }
            if (!this.preserveMultipleSlashes) {
              for (let i5 = 1; i5 < parts.length - 1; i5++) {
                const p3 = parts[i5];
                if (i5 === 1 && p3 === "" && parts[0] === "")
                  continue;
                if (p3 === "." || p3 === "") {
                  didSomething = true;
                  parts.splice(i5, 1);
                  i5--;
                }
              }
              if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) {
                didSomething = true;
                parts.pop();
              }
            }
            let dd = 0;
            while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
              const p3 = parts[dd - 1];
              if (p3 && p3 !== "." && p3 !== ".." && p3 !== "**") {
                didSomething = true;
                const needDot = dd === 1 && parts[dd + 1] === "**";
                const splin = needDot ? ["."] : [];
                parts.splice(dd - 1, 2, ...splin);
                if (parts.length === 0)
                  parts.push("");
                dd -= 2;
              }
            }
          }
        } while (didSomething);
        return globParts;
      }
      // second phase: multi-pattern dedupes
      // {<pre>/*/<rest>,<pre>/<p>/<rest>} -> <pre>/*/<rest>
      // {<pre>/<rest>,<pre>/<rest>} -> <pre>/<rest>
      // {<pre>/**/<rest>,<pre>/<rest>} -> <pre>/**/<rest>
      //
      // {<pre>/**/<rest>,<pre>/**/<p>/<rest>} -> <pre>/**/<rest>
      // ^-- not valid because ** doens't follow symlinks
      secondPhasePreProcess(globParts) {
        for (let i5 = 0; i5 < globParts.length - 1; i5++) {
          for (let j = i5 + 1; j < globParts.length; j++) {
            const matched = this.partsMatch(globParts[i5], globParts[j], !this.preserveMultipleSlashes);
            if (matched) {
              globParts[i5] = [];
              globParts[j] = matched;
              break;
            }
          }
        }
        return globParts.filter((gs) => gs.length);
      }
      partsMatch(a5, b3, emptyGSMatch = false) {
        let ai = 0;
        let bi = 0;
        let result = [];
        let which = "";
        while (ai < a5.length && bi < b3.length) {
          if (a5[ai] === b3[bi]) {
            result.push(which === "b" ? b3[bi] : a5[ai]);
            ai++;
            bi++;
          } else if (emptyGSMatch && a5[ai] === "**" && b3[bi] === a5[ai + 1]) {
            result.push(a5[ai]);
            ai++;
          } else if (emptyGSMatch && b3[bi] === "**" && a5[ai] === b3[bi + 1]) {
            result.push(b3[bi]);
            bi++;
          } else if (a5[ai] === "*" && b3[bi] && (this.options.dot || !b3[bi].startsWith(".")) && b3[bi] !== "**") {
            if (which === "b")
              return false;
            which = "a";
            result.push(a5[ai]);
            ai++;
            bi++;
          } else if (b3[bi] === "*" && a5[ai] && (this.options.dot || !a5[ai].startsWith(".")) && a5[ai] !== "**") {
            if (which === "a")
              return false;
            which = "b";
            result.push(b3[bi]);
            ai++;
            bi++;
          } else {
            return false;
          }
        }
        return a5.length === b3.length && result;
      }
      parseNegate() {
        if (this.nonegate)
          return;
        const pattern3 = this.pattern;
        let negate = false;
        let negateOffset = 0;
        for (let i5 = 0; i5 < pattern3.length && pattern3.charAt(i5) === "!"; i5++) {
          negate = !negate;
          negateOffset++;
        }
        if (negateOffset)
          this.pattern = pattern3.slice(negateOffset);
        this.negate = negate;
      }
      // set partial to true to test if, for example,
      // "/a/b" matches the start of "/*/b/*/d"
      // Partial means, if you run out of file before you run
      // out of pattern, then that's fine, as long as all
      // the parts match.
      matchOne(file, pattern3, partial2 = false) {
        const options = this.options;
        if (this.isWindows) {
          const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
          const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
          const patternDrive = typeof pattern3[0] === "string" && /^[a-z]:$/i.test(pattern3[0]);
          const patternUNC = !patternDrive && pattern3[0] === "" && pattern3[1] === "" && pattern3[2] === "?" && typeof pattern3[3] === "string" && /^[a-z]:$/i.test(pattern3[3]);
          const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
          const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
          if (typeof fdi === "number" && typeof pdi === "number") {
            const [fd2, pd] = [file[fdi], pattern3[pdi]];
            if (fd2.toLowerCase() === pd.toLowerCase()) {
              pattern3[pdi] = fd2;
              if (pdi > fdi) {
                pattern3 = pattern3.slice(pdi);
              } else if (fdi > pdi) {
                file = file.slice(fdi);
              }
            }
          }
        }
        const { optimizationLevel = 1 } = this.options;
        if (optimizationLevel >= 2) {
          file = this.levelTwoFileOptimize(file);
        }
        this.debug("matchOne", this, { file, pattern: pattern3 });
        this.debug("matchOne", file.length, pattern3.length);
        for (var fi = 0, pi = 0, fl2 = file.length, pl = pattern3.length; fi < fl2 && pi < pl; fi++, pi++) {
          this.debug("matchOne loop");
          var p3 = pattern3[pi];
          var f4 = file[fi];
          this.debug(pattern3, p3, f4);
          if (p3 === false) {
            return false;
          }
          if (p3 === exports.GLOBSTAR) {
            this.debug("GLOBSTAR", [pattern3, p3, f4]);
            var fr = fi;
            var pr = pi + 1;
            if (pr === pl) {
              this.debug("** at the end");
              for (; fi < fl2; fi++) {
                if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
                  return false;
              }
              return true;
            }
            while (fr < fl2) {
              var swallowee = file[fr];
              this.debug("\nglobstar while", file, fr, pattern3, pr, swallowee);
              if (this.matchOne(file.slice(fr), pattern3.slice(pr), partial2)) {
                this.debug("globstar found match!", fr, fl2, swallowee);
                return true;
              } else {
                if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
                  this.debug("dot detected!", file, fr, pattern3, pr);
                  break;
                }
                this.debug("globstar swallow a segment, and continue");
                fr++;
              }
            }
            if (partial2) {
              this.debug("\n>>> no match, partial?", file, fr, pattern3, pr);
              if (fr === fl2) {
                return true;
              }
            }
            return false;
          }
          let hit;
          if (typeof p3 === "string") {
            hit = f4 === p3;
            this.debug("string match", p3, f4, hit);
          } else {
            hit = p3.test(f4);
            this.debug("pattern match", p3, f4, hit);
          }
          if (!hit)
            return false;
        }
        if (fi === fl2 && pi === pl) {
          return true;
        } else if (fi === fl2) {
          return partial2;
        } else if (pi === pl) {
          return fi === fl2 - 1 && file[fi] === "";
        } else {
          throw new Error("wtf?");
        }
      }
      braceExpand() {
        return (0, exports.braceExpand)(this.pattern, this.options);
      }
      parse(pattern3) {
        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern3);
        const options = this.options;
        if (pattern3 === "**")
          return exports.GLOBSTAR;
        if (pattern3 === "")
          return "";
        let m3;
        let fastTest = null;
        if (m3 = pattern3.match(starRE)) {
          fastTest = options.dot ? starTestDot : starTest;
        } else if (m3 = pattern3.match(starDotExtRE)) {
          fastTest = (options.nocase ? options.dot ? starDotExtTestNocaseDot : starDotExtTestNocase : options.dot ? starDotExtTestDot : starDotExtTest)(m3[1]);
        } else if (m3 = pattern3.match(qmarksRE)) {
          fastTest = (options.nocase ? options.dot ? qmarksTestNocaseDot : qmarksTestNocase : options.dot ? qmarksTestDot : qmarksTest)(m3);
        } else if (m3 = pattern3.match(starDotStarRE)) {
          fastTest = options.dot ? starDotStarTestDot : starDotStarTest;
        } else if (m3 = pattern3.match(dotStarRE)) {
          fastTest = dotStarTest;
        }
        const re = ast_js_1.AST.fromGlob(pattern3, this.options).toMMPattern();
        if (fastTest && typeof re === "object") {
          Reflect.defineProperty(re, "test", { value: fastTest });
        }
        return re;
      }
      makeRe() {
        if (this.regexp || this.regexp === false)
          return this.regexp;
        const set = this.set;
        if (!set.length) {
          this.regexp = false;
          return this.regexp;
        }
        const options = this.options;
        const twoStar = options.noglobstar ? star : options.dot ? twoStarDot : twoStarNoDot;
        const flags = new Set(options.nocase ? ["i"] : []);
        let re = set.map((pattern3) => {
          const pp = pattern3.map((p3) => {
            if (p3 instanceof RegExp) {
              for (const f4 of p3.flags.split(""))
                flags.add(f4);
            }
            return typeof p3 === "string" ? regExpEscape(p3) : p3 === exports.GLOBSTAR ? exports.GLOBSTAR : p3._src;
          });
          pp.forEach((p3, i5) => {
            const next = pp[i5 + 1];
            const prev = pp[i5 - 1];
            if (p3 !== exports.GLOBSTAR || prev === exports.GLOBSTAR) {
              return;
            }
            if (prev === void 0) {
              if (next !== void 0 && next !== exports.GLOBSTAR) {
                pp[i5 + 1] = "(?:\\/|" + twoStar + "\\/)?" + next;
              } else {
                pp[i5] = twoStar;
              }
            } else if (next === void 0) {
              pp[i5 - 1] = prev + "(?:\\/|" + twoStar + ")?";
            } else if (next !== exports.GLOBSTAR) {
              pp[i5 - 1] = prev + "(?:\\/|\\/" + twoStar + "\\/)" + next;
              pp[i5 + 1] = exports.GLOBSTAR;
            }
          });
          return pp.filter((p3) => p3 !== exports.GLOBSTAR).join("/");
        }).join("|");
        const [open, close] = set.length > 1 ? ["(?:", ")"] : ["", ""];
        re = "^" + open + re + close + "$";
        if (this.negate)
          re = "^(?!" + re + ").+$";
        try {
          this.regexp = new RegExp(re, [...flags].join(""));
        } catch (ex) {
          this.regexp = false;
        }
        return this.regexp;
      }
      slashSplit(p3) {
        if (this.preserveMultipleSlashes) {
          return p3.split("/");
        } else if (this.isWindows && /^\/\/[^\/]+/.test(p3)) {
          return ["", ...p3.split(/\/+/)];
        } else {
          return p3.split(/\/+/);
        }
      }
      match(f4, partial2 = this.partial) {
        this.debug("match", f4, this.pattern);
        if (this.comment) {
          return false;
        }
        if (this.empty) {
          return f4 === "";
        }
        if (f4 === "/" && partial2) {
          return true;
        }
        const options = this.options;
        if (this.isWindows) {
          f4 = f4.split("\\").join("/");
        }
        const ff = this.slashSplit(f4);
        this.debug(this.pattern, "split", ff);
        const set = this.set;
        this.debug(this.pattern, "set", set);
        let filename = ff[ff.length - 1];
        if (!filename) {
          for (let i5 = ff.length - 2; !filename && i5 >= 0; i5--) {
            filename = ff[i5];
          }
        }
        for (let i5 = 0; i5 < set.length; i5++) {
          const pattern3 = set[i5];
          let file = ff;
          if (options.matchBase && pattern3.length === 1) {
            file = [filename];
          }
          const hit = this.matchOne(file, pattern3, partial2);
          if (hit) {
            if (options.flipNegate) {
              return true;
            }
            return !this.negate;
          }
        }
        if (options.flipNegate) {
          return false;
        }
        return this.negate;
      }
      static defaults(def) {
        return exports.minimatch.defaults(def).Minimatch;
      }
    };
    exports.Minimatch = Minimatch;
    var ast_js_2 = require_ast();
    Object.defineProperty(exports, "AST", { enumerable: true, get: function() {
      return ast_js_2.AST;
    } });
    var escape_js_2 = require_escape3();
    Object.defineProperty(exports, "escape", { enumerable: true, get: function() {
      return escape_js_2.escape;
    } });
    var unescape_js_2 = require_unescape();
    Object.defineProperty(exports, "unescape", { enumerable: true, get: function() {
      return unescape_js_2.unescape;
    } });
    exports.minimatch.AST = ast_js_1.AST;
    exports.minimatch.Minimatch = Minimatch;
    exports.minimatch.escape = escape_js_1.escape;
    exports.minimatch.unescape = unescape_js_1.unescape;
  }
});

// ../../node_modules/.pnpm/tldts@7.0.23/node_modules/tldts/dist/cjs/index.js
var require_cjs10 = __commonJS({
  "../../node_modules/.pnpm/tldts@7.0.23/node_modules/tldts/dist/cjs/index.js"(exports) {
    "use strict";
    function shareSameDomainSuffix(hostname, vhost) {
      if (hostname.endsWith(vhost)) {
        return hostname.length === vhost.length || hostname[hostname.length - vhost.length - 1] === ".";
      }
      return false;
    }
    function extractDomainWithSuffix(hostname, publicSuffix) {
      const publicSuffixIndex = hostname.length - publicSuffix.length - 2;
      const lastDotBeforeSuffixIndex = hostname.lastIndexOf(".", publicSuffixIndex);
      if (lastDotBeforeSuffixIndex === -1) {
        return hostname;
      }
      return hostname.slice(lastDotBeforeSuffixIndex + 1);
    }
    function getDomain$1(suffix, hostname, options) {
      if (options.validHosts !== null) {
        const validHosts = options.validHosts;
        for (const vhost of validHosts) {
          if (
            /*@__INLINE__*/
            shareSameDomainSuffix(hostname, vhost)
          ) {
            return vhost;
          }
        }
      }
      let numberOfLeadingDots = 0;
      if (hostname.startsWith(".")) {
        while (numberOfLeadingDots < hostname.length && hostname[numberOfLeadingDots] === ".") {
          numberOfLeadingDots += 1;
        }
      }
      if (suffix.length === hostname.length - numberOfLeadingDots) {
        return null;
      }
      return (
        /*@__INLINE__*/
        extractDomainWithSuffix(hostname, suffix)
      );
    }
    function getDomainWithoutSuffix$1(domain, suffix) {
      return domain.slice(0, -suffix.length - 1);
    }
    function extractHostname(url3, urlIsValidHostname) {
      let start2 = 0;
      let end2 = url3.length;
      let hasUpper = false;
      if (!urlIsValidHostname) {
        if (url3.startsWith("data:")) {
          return null;
        }
        while (start2 < url3.length && url3.charCodeAt(start2) <= 32) {
          start2 += 1;
        }
        while (end2 > start2 + 1 && url3.charCodeAt(end2 - 1) <= 32) {
          end2 -= 1;
        }
        if (url3.charCodeAt(start2) === 47 && url3.charCodeAt(start2 + 1) === 47) {
          start2 += 2;
        } else {
          const indexOfProtocol = url3.indexOf(":/", start2);
          if (indexOfProtocol !== -1) {
            const protocolSize = indexOfProtocol - start2;
            const c0 = url3.charCodeAt(start2);
            const c1 = url3.charCodeAt(start2 + 1);
            const c22 = url3.charCodeAt(start2 + 2);
            const c32 = url3.charCodeAt(start2 + 3);
            const c42 = url3.charCodeAt(start2 + 4);
            if (protocolSize === 5 && c0 === 104 && c1 === 116 && c22 === 116 && c32 === 112 && c42 === 115) ;
            else if (protocolSize === 4 && c0 === 104 && c1 === 116 && c22 === 116 && c32 === 112) ;
            else if (protocolSize === 3 && c0 === 119 && c1 === 115 && c22 === 115) ;
            else if (protocolSize === 2 && c0 === 119 && c1 === 115) ;
            else {
              for (let i5 = start2; i5 < indexOfProtocol; i5 += 1) {
                const lowerCaseCode = url3.charCodeAt(i5) | 32;
                if (!(lowerCaseCode >= 97 && lowerCaseCode <= 122 || // [a, z]
                lowerCaseCode >= 48 && lowerCaseCode <= 57 || // [0, 9]
                lowerCaseCode === 46 || // '.'
                lowerCaseCode === 45 || // '-'
                lowerCaseCode === 43)) {
                  return null;
                }
              }
            }
            start2 = indexOfProtocol + 2;
            while (url3.charCodeAt(start2) === 47) {
              start2 += 1;
            }
          }
        }
        let indexOfIdentifier = -1;
        let indexOfClosingBracket = -1;
        let indexOfPort = -1;
        for (let i5 = start2; i5 < end2; i5 += 1) {
          const code = url3.charCodeAt(i5);
          if (code === 35 || // '#'
          code === 47 || // '/'
          code === 63) {
            end2 = i5;
            break;
          } else if (code === 64) {
            indexOfIdentifier = i5;
          } else if (code === 93) {
            indexOfClosingBracket = i5;
          } else if (code === 58) {
            indexOfPort = i5;
          } else if (code >= 65 && code <= 90) {
            hasUpper = true;
          }
        }
        if (indexOfIdentifier !== -1 && indexOfIdentifier > start2 && indexOfIdentifier < end2) {
          start2 = indexOfIdentifier + 1;
        }
        if (url3.charCodeAt(start2) === 91) {
          if (indexOfClosingBracket !== -1) {
            return url3.slice(start2 + 1, indexOfClosingBracket).toLowerCase();
          }
          return null;
        } else if (indexOfPort !== -1 && indexOfPort > start2 && indexOfPort < end2) {
          end2 = indexOfPort;
        }
      }
      while (end2 > start2 + 1 && url3.charCodeAt(end2 - 1) === 46) {
        end2 -= 1;
      }
      const hostname = start2 !== 0 || end2 !== url3.length ? url3.slice(start2, end2) : url3;
      if (hasUpper) {
        return hostname.toLowerCase();
      }
      return hostname;
    }
    function isProbablyIpv4(hostname) {
      if (hostname.length < 7) {
        return false;
      }
      if (hostname.length > 15) {
        return false;
      }
      let numberOfDots = 0;
      for (let i5 = 0; i5 < hostname.length; i5 += 1) {
        const code = hostname.charCodeAt(i5);
        if (code === 46) {
          numberOfDots += 1;
        } else if (code < 48 || code > 57) {
          return false;
        }
      }
      return numberOfDots === 3 && hostname.charCodeAt(0) !== 46 && hostname.charCodeAt(hostname.length - 1) !== 46;
    }
    function isProbablyIpv6(hostname) {
      if (hostname.length < 3) {
        return false;
      }
      let start2 = hostname.startsWith("[") ? 1 : 0;
      let end2 = hostname.length;
      if (hostname[end2 - 1] === "]") {
        end2 -= 1;
      }
      if (end2 - start2 > 39) {
        return false;
      }
      let hasColon = false;
      for (; start2 < end2; start2 += 1) {
        const code = hostname.charCodeAt(start2);
        if (code === 58) {
          hasColon = true;
        } else if (!(code >= 48 && code <= 57 || // 0-9
        code >= 97 && code <= 102 || // a-f
        code >= 65 && code <= 90)) {
          return false;
        }
      }
      return hasColon;
    }
    function isIp(hostname) {
      return isProbablyIpv6(hostname) || isProbablyIpv4(hostname);
    }
    function isValidAscii(code) {
      return code >= 97 && code <= 122 || code >= 48 && code <= 57 || code > 127;
    }
    function isValidHostname(hostname) {
      if (hostname.length > 255) {
        return false;
      }
      if (hostname.length === 0) {
        return false;
      }
      if (
        /*@__INLINE__*/
        !isValidAscii(hostname.charCodeAt(0)) && hostname.charCodeAt(0) !== 46 && // '.' (dot)
        hostname.charCodeAt(0) !== 95
      ) {
        return false;
      }
      let lastDotIndex = -1;
      let lastCharCode = -1;
      const len = hostname.length;
      for (let i5 = 0; i5 < len; i5 += 1) {
        const code = hostname.charCodeAt(i5);
        if (code === 46) {
          if (
            // Check that previous label is < 63 bytes long (64 = 63 + '.')
            i5 - lastDotIndex > 64 || // Check that previous character was not already a '.'
            lastCharCode === 46 || // Check that the previous label does not end with a '-' (dash)
            lastCharCode === 45 || // Check that the previous label does not end with a '_' (underscore)
            lastCharCode === 95
          ) {
            return false;
          }
          lastDotIndex = i5;
        } else if (!/*@__INLINE__*/
        (isValidAscii(code) || code === 45 || code === 95)) {
          return false;
        }
        lastCharCode = code;
      }
      return (
        // Check that last label is shorter than 63 chars
        len - lastDotIndex - 1 <= 63 && // Check that the last character is an allowed trailing label character.
        // Since we already checked that the char is a valid hostname character,
        // we only need to check that it's different from '-'.
        lastCharCode !== 45
      );
    }
    function setDefaultsImpl({ allowIcannDomains = true, allowPrivateDomains = false, detectIp = true, extractHostname: extractHostname2 = true, mixedInputs = true, validHosts = null, validateHostname = true }) {
      return {
        allowIcannDomains,
        allowPrivateDomains,
        detectIp,
        extractHostname: extractHostname2,
        mixedInputs,
        validHosts,
        validateHostname
      };
    }
    var DEFAULT_OPTIONS2 = (
      /*@__INLINE__*/
      setDefaultsImpl({})
    );
    function setDefaults(options) {
      if (options === void 0) {
        return DEFAULT_OPTIONS2;
      }
      return (
        /*@__INLINE__*/
        setDefaultsImpl(options)
      );
    }
    function getSubdomain$1(hostname, domain) {
      if (domain.length === hostname.length) {
        return "";
      }
      return hostname.slice(0, -domain.length - 1);
    }
    function getEmptyResult() {
      return {
        domain: null,
        domainWithoutSuffix: null,
        hostname: null,
        isIcann: null,
        isIp: null,
        isPrivate: null,
        publicSuffix: null,
        subdomain: null
      };
    }
    function resetResult(result) {
      result.domain = null;
      result.domainWithoutSuffix = null;
      result.hostname = null;
      result.isIcann = null;
      result.isIp = null;
      result.isPrivate = null;
      result.publicSuffix = null;
      result.subdomain = null;
    }
    function parseImpl(url3, step, suffixLookup2, partialOptions, result) {
      const options = (
        /*@__INLINE__*/
        setDefaults(partialOptions)
      );
      if (typeof url3 !== "string") {
        return result;
      }
      if (!options.extractHostname) {
        result.hostname = url3;
      } else if (options.mixedInputs) {
        result.hostname = extractHostname(url3, isValidHostname(url3));
      } else {
        result.hostname = extractHostname(url3, false);
      }
      if (options.detectIp && result.hostname !== null) {
        result.isIp = isIp(result.hostname);
        if (result.isIp) {
          return result;
        }
      }
      if (options.validateHostname && options.extractHostname && result.hostname !== null && !isValidHostname(result.hostname)) {
        result.hostname = null;
        return result;
      }
      if (step === 0 || result.hostname === null) {
        return result;
      }
      suffixLookup2(result.hostname, options, result);
      if (step === 2 || result.publicSuffix === null) {
        return result;
      }
      result.domain = getDomain$1(result.publicSuffix, result.hostname, options);
      if (step === 3 || result.domain === null) {
        return result;
      }
      result.subdomain = getSubdomain$1(result.hostname, result.domain);
      if (step === 4) {
        return result;
      }
      result.domainWithoutSuffix = getDomainWithoutSuffix$1(result.domain, result.publicSuffix);
      return result;
    }
    function fastPathLookup(hostname, options, out) {
      if (!options.allowPrivateDomains && hostname.length > 3) {
        const last2 = hostname.length - 1;
        const c32 = hostname.charCodeAt(last2);
        const c22 = hostname.charCodeAt(last2 - 1);
        const c1 = hostname.charCodeAt(last2 - 2);
        const c0 = hostname.charCodeAt(last2 - 3);
        if (c32 === 109 && c22 === 111 && c1 === 99 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "com";
          return true;
        } else if (c32 === 103 && c22 === 114 && c1 === 111 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "org";
          return true;
        } else if (c32 === 117 && c22 === 100 && c1 === 101 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "edu";
          return true;
        } else if (c32 === 118 && c22 === 111 && c1 === 103 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "gov";
          return true;
        } else if (c32 === 116 && c22 === 101 && c1 === 110 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "net";
          return true;
        } else if (c32 === 101 && c22 === 100 && c1 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "de";
          return true;
        }
      }
      return false;
    }
    var exceptions = /* @__PURE__ */ (function() {
      const _0 = [1, {}], _1 = [0, { "city": _0 }];
      const exceptions2 = [0, { "ck": [0, { "www": _0 }], "jp": [0, { "kawasaki": _1, "kitakyushu": _1, "kobe": _1, "nagoya": _1, "sapporo": _1, "sendai": _1, "yokohama": _1 }] }];
      return exceptions2;
    })();
    var rules = /* @__PURE__ */ (function() {
      const _2 = [1, {}], _3 = [2, {}], _4 = [1, { "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2 }], _5 = [1, { "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2 }], _6 = [0, { "*": _3 }], _7 = [2, { "s": _6 }], _8 = [0, { "relay": _3 }], _9 = [2, { "id": _3 }], _10 = [1, { "gov": _2 }], _11 = [0, { "airflow": _6, "lambda-url": _3, "transfer-webapp": _3 }], _12 = [0, { "airflow": _6, "transfer-webapp": _3 }], _13 = [0, { "transfer-webapp": _3 }], _14 = [0, { "transfer-webapp": _3, "transfer-webapp-fips": _3 }], _15 = [0, { "notebook": _3, "studio": _3 }], _16 = [0, { "labeling": _3, "notebook": _3, "studio": _3 }], _17 = [0, { "notebook": _3 }], _18 = [0, { "labeling": _3, "notebook": _3, "notebook-fips": _3, "studio": _3 }], _19 = [0, { "notebook": _3, "notebook-fips": _3, "studio": _3, "studio-fips": _3 }], _20 = [0, { "shop": _3 }], _21 = [0, { "*": _2 }], _22 = [1, { "co": _3 }], _23 = [0, { "objects": _3 }], _24 = [2, { "nodes": _3 }], _25 = [0, { "my": _3 }], _26 = [0, { "s3": _3, "s3-accesspoint": _3, "s3-website": _3 }], _27 = [0, { "s3": _3, "s3-accesspoint": _3 }], _28 = [0, { "direct": _3 }], _29 = [0, { "webview-assets": _3 }], _30 = [0, { "vfs": _3, "webview-assets": _3 }], _31 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3, "aws-cloud9": _29, "cloud9": _30 }], _32 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _27, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3, "aws-cloud9": _29, "cloud9": _30 }], _33 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3, "analytics-gateway": _3, "aws-cloud9": _29, "cloud9": _30 }], _34 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3 }], _35 = [0, { "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-fips": _3, "s3-website": _3 }], _36 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _35, "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-fips": _3, "s3-object-lambda": _3, "s3-website": _3, "aws-cloud9": _29, "cloud9": _30 }], _37 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _35, "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-fips": _3, "s3-object-lambda": _3, "s3-website": _3 }], _38 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _35, "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-deprecated": _3, "s3-fips": _3, "s3-object-lambda": _3, "s3-website": _3, "analytics-gateway": _3, "aws-cloud9": _29, "cloud9": _30 }], _39 = [0, { "auth": _3 }], _40 = [0, { "auth": _3, "auth-fips": _3 }], _41 = [0, { "auth-fips": _3 }], _42 = [0, { "apps": _3 }], _43 = [0, { "paas": _3 }], _44 = [2, { "eu": _3 }], _45 = [0, { "app": _3 }], _46 = [0, { "site": _3 }], _47 = [1, { "com": _2, "edu": _2, "net": _2, "org": _2 }], _48 = [0, { "j": _3 }], _49 = [0, { "dyn": _3 }], _50 = [2, { "web": _3 }], _51 = [1, { "discourse": _3 }], _52 = [1, { "co": _2, "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2 }], _53 = [0, { "p": _3 }], _54 = [0, { "user": _3 }], _55 = [0, { "cdn": _3 }], _56 = [2, { "raw": _6 }], _57 = [0, { "cust": _3, "reservd": _3 }], _58 = [0, { "cust": _3 }], _59 = [0, { "s3": _3 }], _60 = [1, { "biz": _2, "com": _2, "edu": _2, "gov": _2, "info": _2, "net": _2, "org": _2 }], _61 = [0, { "ipfs": _3 }], _62 = [1, { "framer": _3 }], _63 = [0, { "forgot": _3 }], _64 = [0, { "blob": _3, "file": _3, "web": _3 }], _65 = [0, { "core": _64, "servicebus": _3 }], _66 = [1, { "gs": _2 }], _67 = [0, { "nes": _2 }], _68 = [1, { "k12": _2, "cc": _2, "lib": _2 }], _69 = [1, { "cc": _2 }], _70 = [1, { "cc": _2, "lib": _2 }];
      const rules2 = [0, { "ac": [1, { "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "drr": _3, "feedback": _3, "forms": _3 }], "ad": _2, "ae": [1, { "ac": _2, "co": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "sch": _2 }], "aero": [1, { "airline": _2, "airport": _2, "accident-investigation": _2, "accident-prevention": _2, "aerobatic": _2, "aeroclub": _2, "aerodrome": _2, "agents": _2, "air-surveillance": _2, "air-traffic-control": _2, "aircraft": _2, "airtraffic": _2, "ambulance": _2, "association": _2, "author": _2, "ballooning": _2, "broker": _2, "caa": _2, "cargo": _2, "catering": _2, "certification": _2, "championship": _2, "charter": _2, "civilaviation": _2, "club": _2, "conference": _2, "consultant": _2, "consulting": _2, "control": _2, "council": _2, "crew": _2, "design": _2, "dgca": _2, "educator": _2, "emergency": _2, "engine": _2, "engineer": _2, "entertainment": _2, "equipment": _2, "exchange": _2, "express": _2, "federation": _2, "flight": _2, "freight": _2, "fuel": _2, "gliding": _2, "government": _2, "groundhandling": _2, "group": _2, "hanggliding": _2, "homebuilt": _2, "insurance": _2, "journal": _2, "journalist": _2, "leasing": _2, "logistics": _2, "magazine": _2, "maintenance": _2, "marketplace": _2, "media": _2, "microlight": _2, "modelling": _2, "navigation": _2, "parachuting": _2, "paragliding": _2, "passenger-association": _2, "pilot": _2, "press": _2, "production": _2, "recreation": _2, "repbody": _2, "res": _2, "research": _2, "rotorcraft": _2, "safety": _2, "scientist": _2, "services": _2, "show": _2, "skydiving": _2, "software": _2, "student": _2, "taxi": _2, "trader": _2, "trading": _2, "trainer": _2, "union": _2, "workinggroup": _2, "works": _2 }], "af": _4, "ag": [1, { "co": _2, "com": _2, "net": _2, "nom": _2, "org": _2, "obj": _3 }], "ai": [1, { "com": _2, "net": _2, "off": _2, "org": _2, "uwu": _3, "framer": _3, "kiloapps": _3 }], "al": _5, "am": [1, { "co": _2, "com": _2, "commune": _2, "net": _2, "org": _2, "radio": _3 }], "ao": [1, { "co": _2, "ed": _2, "edu": _2, "gov": _2, "gv": _2, "it": _2, "og": _2, "org": _2, "pb": _2 }], "aq": _2, "ar": [1, { "bet": _2, "com": _2, "coop": _2, "edu": _2, "gob": _2, "gov": _2, "int": _2, "mil": _2, "musica": _2, "mutual": _2, "net": _2, "org": _2, "seg": _2, "senasa": _2, "tur": _2 }], "arpa": [1, { "e164": _2, "home": _2, "in-addr": _2, "ip6": _2, "iris": _2, "uri": _2, "urn": _2 }], "as": _10, "asia": [1, { "cloudns": _3, "daemon": _3, "dix": _3 }], "at": [1, { "4": _3, "ac": [1, { "sth": _2 }], "co": _2, "gv": _2, "or": _2, "funkfeuer": [0, { "wien": _3 }], "futurecms": [0, { "*": _3, "ex": _6, "in": _6 }], "futurehosting": _3, "futuremailing": _3, "ortsinfo": [0, { "ex": _6, "kunden": _6 }], "biz": _3, "info": _3, "123webseite": _3, "priv": _3, "my": _3, "myspreadshop": _3, "12hp": _3, "2ix": _3, "4lima": _3, "lima-city": _3 }], "au": [1, { "asn": _2, "com": [1, { "cloudlets": [0, { "mel": _3 }], "myspreadshop": _3 }], "edu": [1, { "act": _2, "catholic": _2, "nsw": _2, "nt": _2, "qld": _2, "sa": _2, "tas": _2, "vic": _2, "wa": _2 }], "gov": [1, { "qld": _2, "sa": _2, "tas": _2, "vic": _2, "wa": _2 }], "id": _2, "net": _2, "org": _2, "conf": _2, "oz": _2, "act": _2, "nsw": _2, "nt": _2, "qld": _2, "sa": _2, "tas": _2, "vic": _2, "wa": _2, "hrsn": [0, { "vps": _3 }] }], "aw": [1, { "com": _2 }], "ax": _2, "az": [1, { "biz": _2, "co": _2, "com": _2, "edu": _2, "gov": _2, "info": _2, "int": _2, "mil": _2, "name": _2, "net": _2, "org": _2, "pp": _2, "pro": _2 }], "ba": [1, { "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "brendly": _20, "rs": _3 }], "bb": [1, { "biz": _2, "co": _2, "com": _2, "edu": _2, "gov": _2, "info": _2, "net": _2, "org": _2, "store": _2, "tv": _2 }], "bd": [1, { "ac": _2, "ai": _2, "co": _2, "com": _2, "edu": _2, "gov": _2, "id": _2, "info": _2, "it": _2, "mil": _2, "net": _2, "org": _2, "sch": _2, "tv": _2 }], "be": [1, { "ac": _2, "cloudns": _3, "webhosting": _3, "interhostsolutions": [0, { "cloud": _3 }], "kuleuven": [0, { "ezproxy": _3 }], "123website": _3, "myspreadshop": _3, "transurl": _6 }], "bf": _10, "bg": [1, { "0": _2, "1": _2, "2": _2, "3": _2, "4": _2, "5": _2, "6": _2, "7": _2, "8": _2, "9": _2, "a": _2, "b": _2, "c": _2, "d": _2, "e": _2, "f": _2, "g": _2, "h": _2, "i": _2, "j": _2, "k": _2, "l": _2, "m": _2, "n": _2, "o": _2, "p": _2, "q": _2, "r": _2, "s": _2, "t": _2, "u": _2, "v": _2, "w": _2, "x": _2, "y": _2, "z": _2, "barsy": _3 }], "bh": _4, "bi": [1, { "co": _2, "com": _2, "edu": _2, "or": _2, "org": _2 }], "biz": [1, { "activetrail": _3, "cloud-ip": _3, "cloudns": _3, "jozi": _3, "dyndns": _3, "for-better": _3, "for-more": _3, "for-some": _3, "for-the": _3, "selfip": _3, "webhop": _3, "orx": _3, "mmafan": _3, "myftp": _3, "no-ip": _3, "dscloud": _3 }], "bj": [1, { "africa": _2, "agro": _2, "architectes": _2, "assur": _2, "avocats": _2, "co": _2, "com": _2, "eco": _2, "econo": _2, "edu": _2, "info": _2, "loisirs": _2, "money": _2, "net": _2, "org": _2, "ote": _2, "restaurant": _2, "resto": _2, "tourism": _2, "univ": _2 }], "bm": _4, "bn": [1, { "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2, "co": _3 }], "bo": [1, { "com": _2, "edu": _2, "gob": _2, "int": _2, "mil": _2, "net": _2, "org": _2, "tv": _2, "web": _2, "academia": _2, "agro": _2, "arte": _2, "blog": _2, "bolivia": _2, "ciencia": _2, "cooperativa": _2, "democracia": _2, "deporte": _2, "ecologia": _2, "economia": _2, "empresa": _2, "indigena": _2, "industria": _2, "info": _2, "medicina": _2, "movimiento": _2, "musica": _2, "natural": _2, "nombre": _2, "noticias": _2, "patria": _2, "plurinacional": _2, "politica": _2, "profesional": _2, "pueblo": _2, "revista": _2, "salud": _2, "tecnologia": _2, "tksat": _2, "transporte": _2, "wiki": _2 }], "br": [1, { "9guacu": _2, "abc": _2, "adm": _2, "adv": _2, "agr": _2, "aju": _2, "am": _2, "anani": _2, "aparecida": _2, "api": _2, "app": _2, "arq": _2, "art": _2, "ato": _2, "b": _2, "barueri": _2, "belem": _2, "bet": _2, "bhz": _2, "bib": _2, "bio": _2, "blog": _2, "bmd": _2, "boavista": _2, "bsb": _2, "campinagrande": _2, "campinas": _2, "caxias": _2, "cim": _2, "cng": _2, "cnt": _2, "com": [1, { "simplesite": _3 }], "contagem": _2, "coop": _2, "coz": _2, "cri": _2, "cuiaba": _2, "curitiba": _2, "def": _2, "des": _2, "det": _2, "dev": _2, "ecn": _2, "eco": _2, "edu": _2, "emp": _2, "enf": _2, "eng": _2, "esp": _2, "etc": _2, "eti": _2, "far": _2, "feira": _2, "flog": _2, "floripa": _2, "fm": _2, "fnd": _2, "fortal": _2, "fot": _2, "foz": _2, "fst": _2, "g12": _2, "geo": _2, "ggf": _2, "goiania": _2, "gov": [1, { "ac": _2, "al": _2, "am": _2, "ap": _2, "ba": _2, "ce": _2, "df": _2, "es": _2, "go": _2, "ma": _2, "mg": _2, "ms": _2, "mt": _2, "pa": _2, "pb": _2, "pe": _2, "pi": _2, "pr": _2, "rj": _2, "rn": _2, "ro": _2, "rr": _2, "rs": _2, "sc": _2, "se": _2, "sp": _2, "to": _2 }], "gru": _2, "ia": _2, "imb": _2, "ind": _2, "inf": _2, "jab": _2, "jampa": _2, "jdf": _2, "joinville": _2, "jor": _2, "jus": _2, "leg": [1, { "ac": _3, "al": _3, "am": _3, "ap": _3, "ba": _3, "ce": _3, "df": _3, "es": _3, "go": _3, "ma": _3, "mg": _3, "ms": _3, "mt": _3, "pa": _3, "pb": _3, "pe": _3, "pi": _3, "pr": _3, "rj": _3, "rn": _3, "ro": _3, "rr": _3, "rs": _3, "sc": _3, "se": _3, "sp": _3, "to": _3 }], "leilao": _2, "lel": _2, "log": _2, "londrina": _2, "macapa": _2, "maceio": _2, "manaus": _2, "maringa": _2, "mat": _2, "med": _2, "mil": _2, "morena": _2, "mp": _2, "mus": _2, "natal": _2, "net": _2, "niteroi": _2, "nom": _21, "not": _2, "ntr": _2, "odo": _2, "ong": _2, "org": _2, "osasco": _2, "palmas": _2, "poa": _2, "ppg": _2, "pro": _2, "psc": _2, "psi": _2, "pvh": _2, "qsl": _2, "radio": _2, "rec": _2, "recife": _2, "rep": _2, "ribeirao": _2, "rio": _2, "riobranco": _2, "riopreto": _2, "salvador": _2, "sampa": _2, "santamaria": _2, "santoandre": _2, "saobernardo": _2, "saogonca": _2, "seg": _2, "sjc": _2, "slg": _2, "slz": _2, "social": _2, "sorocaba": _2, "srv": _2, "taxi": _2, "tc": _2, "tec": _2, "teo": _2, "the": _2, "tmp": _2, "trd": _2, "tur": _2, "tv": _2, "udi": _2, "vet": _2, "vix": _2, "vlog": _2, "wiki": _2, "xyz": _2, "zlg": _2, "tche": _3 }], "bs": [1, { "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2, "we": _3 }], "bt": _4, "bv": _2, "bw": [1, { "ac": _2, "co": _2, "gov": _2, "net": _2, "org": _2 }], "by": [1, { "gov": _2, "mil": _2, "com": _2, "of": _2, "mediatech": _3 }], "bz": [1, { "co": _2, "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2, "za": _3, "mydns": _3, "gsj": _3 }], "ca": [1, { "ab": _2, "bc": _2, "mb": _2, "nb": _2, "nf": _2, "nl": _2, "ns": _2, "nt": _2, "nu": _2, "on": _2, "pe": _2, "qc": _2, "sk": _2, "yk": _2, "gc": _2, "barsy": _3, "awdev": _6, "co": _3, "no-ip": _3, "onid": _3, "myspreadshop": _3, "box": _3 }], "cat": _2, "cc": [1, { "cleverapps": _3, "cloud-ip": _3, "cloudns": _3, "ccwu": _3, "ftpaccess": _3, "game-server": _3, "myphotos": _3, "scrapping": _3, "twmail": _3, "csx": _3, "fantasyleague": _3, "spawn": [0, { "instances": _3 }], "ec": _3, "eu": _3, "gu": _3, "uk": _3, "us": _3 }], "cd": [1, { "gov": _2, "cc": _3 }], "cf": _2, "cg": _2, "ch": [1, { "square7": _3, "cloudns": _3, "cloudscale": [0, { "cust": _3, "lpg": _23, "rma": _23 }], "objectstorage": [0, { "lpg": _3, "rma": _3 }], "flow": [0, { "ae": [0, { "alp1": _3 }], "appengine": _3 }], "linkyard-cloud": _3, "gotdns": _3, "dnsking": _3, "123website": _3, "myspreadshop": _3, "firenet": [0, { "*": _3, "svc": _6 }], "12hp": _3, "2ix": _3, "4lima": _3, "lima-city": _3 }], "ci": [1, { "ac": _2, "xn--aroport-bya": _2, "a\xE9roport": _2, "asso": _2, "co": _2, "com": _2, "ed": _2, "edu": _2, "go": _2, "gouv": _2, "int": _2, "net": _2, "or": _2, "org": _2, "us": _3 }], "ck": _21, "cl": [1, { "co": _2, "gob": _2, "gov": _2, "mil": _2, "cloudns": _3 }], "cm": [1, { "co": _2, "com": _2, "gov": _2, "net": _2 }], "cn": [1, { "ac": _2, "com": [1, { "amazonaws": [0, { "cn-north-1": [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "rds": _6, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-deprecated": _3, "s3-object-lambda": _3, "s3-website": _3 }], "cn-northwest-1": [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "rds": _6, "dualstack": _27, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3 }], "compute": _6, "airflow": [0, { "cn-north-1": _6, "cn-northwest-1": _6 }], "eb": [0, { "cn-north-1": _3, "cn-northwest-1": _3 }], "elb": _6 }], "amazonwebservices": [0, { "on": [0, { "cn-north-1": _12, "cn-northwest-1": _12 }] }], "sagemaker": [0, { "cn-north-1": _15, "cn-northwest-1": _15 }] }], "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "xn--55qx5d": _2, "\u516C\u53F8": _2, "xn--od0alg": _2, "\u7DB2\u7D61": _2, "xn--io0a7i": _2, "\u7F51\u7EDC": _2, "ah": _2, "bj": _2, "cq": _2, "fj": _2, "gd": _2, "gs": _2, "gx": _2, "gz": _2, "ha": _2, "hb": _2, "he": _2, "hi": _2, "hk": _2, "hl": _2, "hn": _2, "jl": _2, "js": _2, "jx": _2, "ln": _2, "mo": _2, "nm": _2, "nx": _2, "qh": _2, "sc": _2, "sd": _2, "sh": [1, { "as": _3 }], "sn": _2, "sx": _2, "tj": _2, "tw": _2, "xj": _2, "xz": _2, "yn": _2, "zj": _2, "canva-apps": _3, "canvasite": _25, "myqnapcloud": _3, "quickconnect": _28 }], "co": [1, { "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "nom": _2, "org": _2, "carrd": _3, "crd": _3, "otap": _6, "hidns": _3, "leadpages": _3, "lpages": _3, "mypi": _3, "xmit": _6, "rdpa": [0, { "clusters": _6, "srvrless": _6 }], "firewalledreplit": _9, "repl": _9, "supabase": [2, { "realtime": _3, "storage": _3 }], "umso": _3 }], "com": [1, { "a2hosted": _3, "cpserver": _3, "adobeaemcloud": [2, { "dev": _6 }], "africa": _3, "auiusercontent": _6, "aivencloud": _3, "alibabacloudcs": _3, "kasserver": _3, "amazonaws": [0, { "af-south-1": _31, "ap-east-1": _32, "ap-northeast-1": _33, "ap-northeast-2": _33, "ap-northeast-3": _31, "ap-south-1": _33, "ap-south-2": _34, "ap-southeast-1": _33, "ap-southeast-2": _33, "ap-southeast-3": _34, "ap-southeast-4": _34, "ap-southeast-5": [0, { "execute-api": _3, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-deprecated": _3, "s3-object-lambda": _3, "s3-website": _3 }], "ca-central-1": _36, "ca-west-1": _37, "eu-central-1": _33, "eu-central-2": _34, "eu-north-1": _32, "eu-south-1": _31, "eu-south-2": _34, "eu-west-1": [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-deprecated": _3, "s3-object-lambda": _3, "s3-website": _3, "analytics-gateway": _3, "aws-cloud9": _29, "cloud9": _30 }], "eu-west-2": _32, "eu-west-3": _31, "il-central-1": [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3, "aws-cloud9": _29, "cloud9": [0, { "vfs": _3 }] }], "me-central-1": _34, "me-south-1": _32, "sa-east-1": _31, "us-east-1": [2, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _35, "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-deprecated": _3, "s3-fips": _3, "s3-object-lambda": _3, "s3-website": _3, "analytics-gateway": _3, "aws-cloud9": _29, "cloud9": _30 }], "us-east-2": _38, "us-gov-east-1": _37, "us-gov-west-1": _37, "us-west-1": _36, "us-west-2": _38, "compute": _6, "compute-1": _6, "airflow": [0, { "af-south-1": _6, "ap-east-1": _6, "ap-northeast-1": _6, "ap-northeast-2": _6, "ap-northeast-3": _6, "ap-south-1": _6, "ap-south-2": _6, "ap-southeast-1": _6, "ap-southeast-2": _6, "ap-southeast-3": _6, "ap-southeast-4": _6, "ap-southeast-5": _6, "ap-southeast-7": _6, "ca-central-1": _6, "ca-west-1": _6, "eu-central-1": _6, "eu-central-2": _6, "eu-north-1": _6, "eu-south-1": _6, "eu-south-2": _6, "eu-west-1": _6, "eu-west-2": _6, "eu-west-3": _6, "il-central-1": _6, "me-central-1": _6, "me-south-1": _6, "sa-east-1": _6, "us-east-1": _6, "us-east-2": _6, "us-west-1": _6, "us-west-2": _6 }], "rds": [0, { "af-south-1": _6, "ap-east-1": _6, "ap-east-2": _6, "ap-northeast-1": _6, "ap-northeast-2": _6, "ap-northeast-3": _6, "ap-south-1": _6, "ap-south-2": _6, "ap-southeast-1": _6, "ap-southeast-2": _6, "ap-southeast-3": _6, "ap-southeast-4": _6, "ap-southeast-5": _6, "ap-southeast-6": _6, "ap-southeast-7": _6, "ca-central-1": _6, "ca-west-1": _6, "eu-central-1": _6, "eu-central-2": _6, "eu-west-1": _6, "eu-west-2": _6, "eu-west-3": _6, "il-central-1": _6, "me-central-1": _6, "me-south-1": _6, "mx-central-1": _6, "sa-east-1": _6, "us-east-1": _6, "us-east-2": _6, "us-gov-east-1": _6, "us-gov-west-1": _6, "us-northeast-1": _6, "us-west-1": _6, "us-west-2": _6 }], "s3": _3, "s3-1": _3, "s3-ap-east-1": _3, "s3-ap-northeast-1": _3, "s3-ap-northeast-2": _3, "s3-ap-northeast-3": _3, "s3-ap-south-1": _3, "s3-ap-southeast-1": _3, "s3-ap-southeast-2": _3, "s3-ca-central-1": _3, "s3-eu-central-1": _3, "s3-eu-north-1": _3, "s3-eu-west-1": _3, "s3-eu-west-2": _3, "s3-eu-west-3": _3, "s3-external-1": _3, "s3-fips-us-gov-east-1": _3, "s3-fips-us-gov-west-1": _3, "s3-global": [0, { "accesspoint": [0, { "mrap": _3 }] }], "s3-me-south-1": _3, "s3-sa-east-1": _3, "s3-us-east-2": _3, "s3-us-gov-east-1": _3, "s3-us-gov-west-1": _3, "s3-us-west-1": _3, "s3-us-west-2": _3, "s3-website-ap-northeast-1": _3, "s3-website-ap-southeast-1": _3, "s3-website-ap-southeast-2": _3, "s3-website-eu-west-1": _3, "s3-website-sa-east-1": _3, "s3-website-us-east-1": _3, "s3-website-us-gov-west-1": _3, "s3-website-us-west-1": _3, "s3-website-us-west-2": _3, "elb": _6 }], "amazoncognito": [0, { "af-south-1": _39, "ap-east-1": _39, "ap-northeast-1": _39, "ap-northeast-2": _39, "ap-northeast-3": _39, "ap-south-1": _39, "ap-south-2": _39, "ap-southeast-1": _39, "ap-southeast-2": _39, "ap-southeast-3": _39, "ap-southeast-4": _39, "ap-southeast-5": _39, "ap-southeast-7": _39, "ca-central-1": _39, "ca-west-1": _39, "eu-central-1": _39, "eu-central-2": _39, "eu-north-1": _39, "eu-south-1": _39, "eu-south-2": _39, "eu-west-1": _39, "eu-west-2": _39, "eu-west-3": _39, "il-central-1": _39, "me-central-1": _39, "me-south-1": _39, "mx-central-1": _39, "sa-east-1": _39, "us-east-1": _40, "us-east-2": _40, "us-gov-east-1": _41, "us-gov-west-1": _41, "us-west-1": _40, "us-west-2": _40 }], "amplifyapp": _3, "awsapprunner": _6, "awsapps": _3, "elasticbeanstalk": [2, { "af-south-1": _3, "ap-east-1": _3, "ap-northeast-1": _3, "ap-northeast-2": _3, "ap-northeast-3": _3, "ap-south-1": _3, "ap-southeast-1": _3, "ap-southeast-2": _3, "ap-southeast-3": _3, "ap-southeast-5": _3, "ap-southeast-7": _3, "ca-central-1": _3, "eu-central-1": _3, "eu-north-1": _3, "eu-south-1": _3, "eu-south-2": _3, "eu-west-1": _3, "eu-west-2": _3, "eu-west-3": _3, "il-central-1": _3, "me-central-1": _3, "me-south-1": _3, "sa-east-1": _3, "us-east-1": _3, "us-east-2": _3, "us-gov-east-1": _3, "us-gov-west-1": _3, "us-west-1": _3, "us-west-2": _3 }], "awsglobalaccelerator": _3, "siiites": _3, "appspacehosted": _3, "appspaceusercontent": _3, "on-aptible": _3, "myasustor": _3, "balena-devices": _3, "boutir": _3, "bplaced": _3, "cafjs": _3, "canva-apps": _3, "canva-hosted-embed": _3, "canvacode": _3, "rice-labs": _3, "cdn77-storage": _3, "br": _3, "cn": _3, "de": _3, "eu": _3, "jpn": _3, "mex": _3, "ru": _3, "sa": _3, "uk": _3, "us": _3, "za": _3, "clever-cloud": [0, { "services": _6 }], "abrdns": _3, "dnsabr": _3, "ip-ddns": _3, "jdevcloud": _3, "wpdevcloud": _3, "cf-ipfs": _3, "cloudflare-ipfs": _3, "trycloudflare": _3, "co": _3, "devinapps": _6, "builtwithdark": _3, "datadetect": [0, { "demo": _3, "instance": _3 }], "dattolocal": _3, "dattorelay": _3, "dattoweb": _3, "mydatto": _3, "digitaloceanspaces": _6, "discordsays": _3, "discordsez": _3, "drayddns": _3, "dreamhosters": _3, "durumis": _3, "blogdns": _3, "cechire": _3, "dnsalias": _3, "dnsdojo": _3, "doesntexist": _3, "dontexist": _3, "doomdns": _3, "dyn-o-saur": _3, "dynalias": _3, "dyndns-at-home": _3, "dyndns-at-work": _3, "dyndns-blog": _3, "dyndns-free": _3, "dyndns-home": _3, "dyndns-ip": _3, "dyndns-mail": _3, "dyndns-office": _3, "dyndns-pics": _3, "dyndns-remote": _3, "dyndns-server": _3, "dyndns-web": _3, "dyndns-wiki": _3, "dyndns-work": _3, "est-a-la-maison": _3, "est-a-la-masion": _3, "est-le-patron": _3, "est-mon-blogueur": _3, "from-ak": _3, "from-al": _3, "from-ar": _3, "from-ca": _3, "from-ct": _3, "from-dc": _3, "from-de": _3, "from-fl": _3, "from-ga": _3, "from-hi": _3, "from-ia": _3, "from-id": _3, "from-il": _3, "from-in": _3, "from-ks": _3, "from-ky": _3, "from-ma": _3, "from-md": _3, "from-mi": _3, "from-mn": _3, "from-mo": _3, "from-ms": _3, "from-mt": _3, "from-nc": _3, "from-nd": _3, "from-ne": _3, "from-nh": _3, "from-nj": _3, "from-nm": _3, "from-nv": _3, "from-oh": _3, "from-ok": _3, "from-or": _3, "from-pa": _3, "from-pr": _3, "from-ri": _3, "from-sc": _3, "from-sd": _3, "from-tn": _3, "from-tx": _3, "from-ut": _3, "from-va": _3, "from-vt": _3, "from-wa": _3, "from-wi": _3, "from-wv": _3, "from-wy": _3, "getmyip": _3, "gotdns": _3, "hobby-site": _3, "homelinux": _3, "homeunix": _3, "iamallama": _3, "is-a-anarchist": _3, "is-a-blogger": _3, "is-a-bookkeeper": _3, "is-a-bulls-fan": _3, "is-a-caterer": _3, "is-a-chef": _3, "is-a-conservative": _3, "is-a-cpa": _3, "is-a-cubicle-slave": _3, "is-a-democrat": _3, "is-a-designer": _3, "is-a-doctor": _3, "is-a-financialadvisor": _3, "is-a-geek": _3, "is-a-green": _3, "is-a-guru": _3, "is-a-hard-worker": _3, "is-a-hunter": _3, "is-a-landscaper": _3, "is-a-lawyer": _3, "is-a-liberal": _3, "is-a-libertarian": _3, "is-a-llama": _3, "is-a-musician": _3, "is-a-nascarfan": _3, "is-a-nurse": _3, "is-a-painter": _3, "is-a-personaltrainer": _3, "is-a-photographer": _3, "is-a-player": _3, "is-a-republican": _3, "is-a-rockstar": _3, "is-a-socialist": _3, "is-a-student": _3, "is-a-teacher": _3, "is-a-techie": _3, "is-a-therapist": _3, "is-an-accountant": _3, "is-an-actor": _3, "is-an-actress": _3, "is-an-anarchist": _3, "is-an-artist": _3, "is-an-engineer": _3, "is-an-entertainer": _3, "is-certified": _3, "is-gone": _3, "is-into-anime": _3, "is-into-cars": _3, "is-into-cartoons": _3, "is-into-games": _3, "is-leet": _3, "is-not-certified": _3, "is-slick": _3, "is-uberleet": _3, "is-with-theband": _3, "isa-geek": _3, "isa-hockeynut": _3, "issmarterthanyou": _3, "likes-pie": _3, "likescandy": _3, "neat-url": _3, "saves-the-whales": _3, "selfip": _3, "sells-for-less": _3, "sells-for-u": _3, "servebbs": _3, "simple-url": _3, "space-to-rent": _3, "teaches-yoga": _3, "writesthisblog": _3, "1cooldns": _3, "bumbleshrimp": _3, "ddnsfree": _3, "ddnsgeek": _3, "ddnsguru": _3, "dynuddns": _3, "dynuhosting": _3, "giize": _3, "gleeze": _3, "kozow": _3, "loseyourip": _3, "ooguy": _3, "pivohosting": _3, "theworkpc": _3, "wiredbladehosting": _3, "emergentagent": [0, { "preview": _3 }], "mytuleap": _3, "tuleap-partners": _3, "encoreapi": _3, "evennode": [0, { "eu-1": _3, "eu-2": _3, "eu-3": _3, "eu-4": _3, "us-1": _3, "us-2": _3, "us-3": _3, "us-4": _3 }], "onfabrica": _3, "fastly-edge": _3, "fastly-terrarium": _3, "fastvps-server": _3, "mydobiss": _3, "firebaseapp": _3, "fldrv": _3, "framercanvas": _3, "freebox-os": _3, "freeboxos": _3, "freemyip": _3, "aliases121": _3, "gentapps": _3, "gentlentapis": _3, "githubusercontent": _3, "0emm": _6, "appspot": [2, { "r": _6 }], "blogspot": _3, "codespot": _3, "googleapis": _3, "googlecode": _3, "pagespeedmobilizer": _3, "withgoogle": _3, "withyoutube": _3, "grayjayleagues": _3, "hatenablog": _3, "hatenadiary": _3, "hercules-app": _3, "hercules-dev": _3, "herokuapp": _3, "gr": _3, "smushcdn": _3, "wphostedmail": _3, "wpmucdn": _3, "pixolino": _3, "apps-1and1": _3, "live-website": _3, "webspace-host": _3, "dopaas": _3, "hosted-by-previder": _43, "hosteur": [0, { "rag-cloud": _3, "rag-cloud-ch": _3 }], "ik-server": [0, { "jcloud": _3, "jcloud-ver-jpc": _3 }], "jelastic": [0, { "demo": _3 }], "massivegrid": _43, "wafaicloud": [0, { "jed": _3, "ryd": _3 }], "eu1-plenit": _3, "la1-plenit": _3, "us1-plenit": _3, "webadorsite": _3, "on-forge": _3, "on-vapor": _3, "lpusercontent": _3, "linode": [0, { "members": _3, "nodebalancer": _6 }], "linodeobjects": _6, "linodeusercontent": [0, { "ip": _3 }], "localtonet": _3, "lovableproject": _3, "barsycenter": _3, "barsyonline": _3, "lutrausercontent": _6, "magicpatternsapp": _3, "modelscape": _3, "mwcloudnonprod": _3, "polyspace": _3, "mazeplay": _3, "miniserver": _3, "atmeta": _3, "fbsbx": _42, "meteorapp": _44, "routingthecloud": _3, "same-app": _3, "same-preview": _3, "mydbserver": _3, "mochausercontent": _3, "hostedpi": _3, "mythic-beasts": [0, { "caracal": _3, "customer": _3, "fentiger": _3, "lynx": _3, "ocelot": _3, "oncilla": _3, "onza": _3, "sphinx": _3, "vs": _3, "x": _3, "yali": _3 }], "nospamproxy": [0, { "cloud": [2, { "o365": _3 }] }], "4u": _3, "nfshost": _3, "3utilities": _3, "blogsyte": _3, "ciscofreak": _3, "damnserver": _3, "ddnsking": _3, "ditchyourip": _3, "dnsiskinky": _3, "dynns": _3, "geekgalaxy": _3, "health-carereform": _3, "homesecuritymac": _3, "homesecuritypc": _3, "myactivedirectory": _3, "mysecuritycamera": _3, "myvnc": _3, "net-freaks": _3, "onthewifi": _3, "point2this": _3, "quicksytes": _3, "securitytactics": _3, "servebeer": _3, "servecounterstrike": _3, "serveexchange": _3, "serveftp": _3, "servegame": _3, "servehalflife": _3, "servehttp": _3, "servehumour": _3, "serveirc": _3, "servemp3": _3, "servep2p": _3, "servepics": _3, "servequake": _3, "servesarcasm": _3, "stufftoread": _3, "unusualperson": _3, "workisboring": _3, "myiphost": _3, "observableusercontent": [0, { "static": _3 }], "simplesite": _3, "oaiusercontent": _6, "orsites": _3, "operaunite": _3, "customer-oci": [0, { "*": _3, "oci": _6, "ocp": _6, "ocs": _6 }], "oraclecloudapps": _6, "oraclegovcloudapps": _6, "authgear-staging": _3, "authgearapps": _3, "outsystemscloud": _3, "ownprovider": _3, "pgfog": _3, "pagexl": _3, "gotpantheon": _3, "paywhirl": _6, "forgeblocks": _3, "upsunapp": _3, "postman-echo": _3, "prgmr": [0, { "xen": _3 }], "project-study": [0, { "dev": _3 }], "pythonanywhere": _44, "qa2": _3, "alpha-myqnapcloud": _3, "dev-myqnapcloud": _3, "mycloudnas": _3, "mynascloud": _3, "myqnapcloud": _3, "qualifioapp": _3, "ladesk": _3, "qualyhqpartner": _6, "qualyhqportal": _6, "qbuser": _3, "quipelements": _6, "rackmaze": _3, "readthedocs-hosted": _3, "rhcloud": _3, "onrender": _3, "render": _45, "subsc-pay": _3, "180r": _3, "dojin": _3, "sakuratan": _3, "sakuraweb": _3, "x0": _3, "code": [0, { "builder": _6, "dev-builder": _6, "stg-builder": _6 }], "salesforce": [0, { "platform": [0, { "code-builder-stg": [0, { "test": [0, { "001": _6 }] }] }] }], "logoip": _3, "scrysec": _3, "firewall-gateway": _3, "myshopblocks": _3, "myshopify": _3, "shopitsite": _3, "1kapp": _3, "appchizi": _3, "applinzi": _3, "sinaapp": _3, "vipsinaapp": _3, "streamlitapp": _3, "try-snowplow": _3, "playstation-cloud": _3, "myspreadshop": _3, "w-corp-staticblitz": _3, "w-credentialless-staticblitz": _3, "w-staticblitz": _3, "stackhero-network": _3, "stdlib": [0, { "api": _3 }], "strapiapp": [2, { "media": _3 }], "streak-link": _3, "streaklinks": _3, "streakusercontent": _3, "temp-dns": _3, "dsmynas": _3, "familyds": _3, "mytabit": _3, "taveusercontent": _3, "tb-hosting": _46, "reservd": _3, "thingdustdata": _3, "townnews-staging": _3, "typeform": [0, { "pro": _3 }], "hk": _3, "it": _3, "deus-canvas": _3, "vultrobjects": _6, "wafflecell": _3, "hotelwithflight": _3, "reserve-online": _3, "cprapid": _3, "pleskns": _3, "remotewd": _3, "wiardweb": [0, { "pages": _3 }], "base44-sandbox": _3, "wixsite": _3, "wixstudio": _3, "messwithdns": _3, "woltlab-demo": _3, "wpenginepowered": [2, { "js": _3 }], "xnbay": [2, { "u2": _3, "u2-local": _3 }], "xtooldevice": _3, "yolasite": _3 }], "coop": _2, "cr": [1, { "ac": _2, "co": _2, "ed": _2, "fi": _2, "go": _2, "or": _2, "sa": _2 }], "cu": [1, { "com": _2, "edu": _2, "gob": _2, "inf": _2, "nat": _2, "net": _2, "org": _2 }], "cv": [1, { "com": _2, "edu": _2, "id": _2, "int": _2, "net": _2, "nome": _2, "org": _2, "publ": _2 }], "cw": _47, "cx": [1, { "gov": _2, "cloudns": _3, "ath": _3, "info": _3, "assessments": _3, "calculators": _3, "funnels": _3, "paynow": _3, "quizzes": _3, "researched": _3, "tests": _3 }], "cy": [1, { "ac": _2, "biz": _2, "com": [1, { "scaleforce": _48 }], "ekloges": _2, "gov": _2, "ltd": _2, "mil": _2, "net": _2, "org": _2, "press": _2, "pro": _2, "tm": _2 }], "cz": [1, { "gov": _2, "contentproxy9": [0, { "rsc": _3 }], "realm": _3, "e4": _3, "co": _3, "metacentrum": [0, { "cloud": _6, "custom": _3 }], "muni": [0, { "cloud": [0, { "flt": _3, "usr": _3 }] }] }], "de": [1, { "bplaced": _3, "square7": _3, "bwcloud-os-instance": _6, "com": _3, "cosidns": _49, "dnsupdater": _3, "dynamisches-dns": _3, "internet-dns": _3, "l-o-g-i-n": _3, "ddnss": [2, { "dyn": _3, "dyndns": _3 }], "dyn-ip24": _3, "dyndns1": _3, "home-webserver": [2, { "dyn": _3 }], "myhome-server": _3, "dnshome": _3, "fuettertdasnetz": _3, "isteingeek": _3, "istmein": _3, "lebtimnetz": _3, "leitungsen": _3, "traeumtgerade": _3, "frusky": _6, "goip": _3, "xn--gnstigbestellen-zvb": _3, "g\xFCnstigbestellen": _3, "xn--gnstigliefern-wob": _3, "g\xFCnstigliefern": _3, "hs-heilbronn": [0, { "it": [0, { "pages": _3, "pages-research": _3 }] }], "dyn-berlin": _3, "in-berlin": _3, "in-brb": _3, "in-butter": _3, "in-dsl": _3, "in-vpn": _3, "iservschule": _3, "mein-iserv": _3, "schuldock": _3, "schulplattform": _3, "schulserver": _3, "test-iserv": _3, "keymachine": _3, "co": _3, "git-repos": _3, "lcube-server": _3, "svn-repos": _3, "barsy": _3, "webspaceconfig": _3, "123webseite": _3, "rub": _3, "ruhr-uni-bochum": [2, { "noc": [0, { "io": _3 }] }], "logoip": _3, "firewall-gateway": _3, "my-gateway": _3, "my-router": _3, "spdns": _3, "my": _3, "speedpartner": [0, { "customer": _3 }], "myspreadshop": _3, "taifun-dns": _3, "12hp": _3, "2ix": _3, "4lima": _3, "lima-city": _3, "virtual-user": _3, "virtualuser": _3, "community-pro": _3, "diskussionsbereich": _3, "xenonconnect": _6 }], "dj": _2, "dk": [1, { "biz": _3, "co": _3, "firm": _3, "reg": _3, "store": _3, "123hjemmeside": _3, "myspreadshop": _3 }], "dm": _52, "do": [1, { "art": _2, "com": _2, "edu": _2, "gob": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "sld": _2, "web": _2 }], "dz": [1, { "art": _2, "asso": _2, "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2, "pol": _2, "soc": _2, "tm": _2 }], "ec": [1, { "abg": _2, "adm": _2, "agron": _2, "arqt": _2, "art": _2, "bar": _2, "chef": _2, "com": _2, "cont": _2, "cpa": _2, "cue": _2, "dent": _2, "dgn": _2, "disco": _2, "doc": _2, "edu": _2, "eng": _2, "esm": _2, "fin": _2, "fot": _2, "gal": _2, "gob": _2, "gov": _2, "gye": _2, "ibr": _2, "info": _2, "k12": _2, "lat": _2, "loj": _2, "med": _2, "mil": _2, "mktg": _2, "mon": _2, "net": _2, "ntr": _2, "odont": _2, "org": _2, "pro": _2, "prof": _2, "psic": _2, "psiq": _2, "pub": _2, "rio": _2, "rrpp": _2, "sal": _2, "tech": _2, "tul": _2, "tur": _2, "uio": _2, "vet": _2, "xxx": _2, "base": _3, "official": _3 }], "edu": [1, { "rit": [0, { "git-pages": _3 }] }], "ee": [1, { "aip": _2, "com": _2, "edu": _2, "fie": _2, "gov": _2, "lib": _2, "med": _2, "org": _2, "pri": _2, "riik": _2 }], "eg": [1, { "ac": _2, "com": _2, "edu": _2, "eun": _2, "gov": _2, "info": _2, "me": _2, "mil": _2, "name": _2, "net": _2, "org": _2, "sci": _2, "sport": _2, "tv": _2 }], "er": _21, "es": [1, { "com": _2, "edu": _2, "gob": _2, "nom": _2, "org": _2, "123miweb": _3, "myspreadshop": _3 }], "et": [1, { "biz": _2, "com": _2, "edu": _2, "gov": _2, "info": _2, "name": _2, "net": _2, "org": _2 }], "eu": [1, { "amazonwebservices": [0, { "on": [0, { "eusc-de-east-1": [0, { "cognito-idp": _39 }] }] }], "cloudns": _3, "prvw": _3, "deuxfleurs": _3, "dogado": [0, { "jelastic": _3 }], "barsy": _3, "spdns": _3, "nxa": _6, "directwp": _3, "transurl": _6 }], "fi": [1, { "aland": _2, "dy": _3, "xn--hkkinen-5wa": _3, "h\xE4kkinen": _3, "iki": _3, "cloudplatform": [0, { "fi": _3 }], "datacenter": [0, { "demo": _3, "paas": _3 }], "kapsi": _3, "123kotisivu": _3, "myspreadshop": _3 }], "fj": [1, { "ac": _2, "biz": _2, "com": _2, "edu": _2, "gov": _2, "id": _2, "info": _2, "mil": _2, "name": _2, "net": _2, "org": _2, "pro": _2 }], "fk": _21, "fm": [1, { "com": _2, "edu": _2, "net": _2, "org": _2, "radio": _3, "user": _6 }], "fo": _2, "fr": [1, { "asso": _2, "com": _2, "gouv": _2, "nom": _2, "prd": _2, "tm": _2, "avoues": _2, "cci": _2, "greta": _2, "huissier-justice": _2, "fbx-os": _3, "fbxos": _3, "freebox-os": _3, "freeboxos": _3, "goupile": _3, "123siteweb": _3, "on-web": _3, "chirurgiens-dentistes-en-france": _3, "dedibox": _3, "aeroport": _3, "avocat": _3, "chambagri": _3, "chirurgiens-dentistes": _3, "experts-comptables": _3, "medecin": _3, "notaires": _3, "pharmacien": _3, "port": _3, "veterinaire": _3, "myspreadshop": _3, "ynh": _3 }], "ga": _2, "gb": _2, "gd": [1, { "edu": _2, "gov": _2 }], "ge": [1, { "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2, "pvt": _2, "school": _2 }], "gf": _2, "gg": [1, { "co": _2, "net": _2, "org": _2, "ply": [0, { "at": _6, "d6": _3 }], "botdash": _3, "kaas": _3, "stackit": _3, "panel": [2, { "daemon": _3 }] }], "gh": [1, { "biz": _2, "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2 }], "gi": [1, { "com": _2, "edu": _2, "gov": _2, "ltd": _2, "mod": _2, "org": _2 }], "gl": [1, { "co": _2, "com": _2, "edu": _2, "net": _2, "org": _2 }], "gm": _2, "gn": [1, { "ac": _2, "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2 }], "gov": _2, "gp": [1, { "asso": _2, "com": _2, "edu": _2, "mobi": _2, "net": _2, "org": _2 }], "gq": _2, "gr": [1, { "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2, "barsy": _3, "simplesite": _3 }], "gs": _2, "gt": [1, { "com": _2, "edu": _2, "gob": _2, "ind": _2, "mil": _2, "net": _2, "org": _2 }], "gu": [1, { "com": _2, "edu": _2, "gov": _2, "guam": _2, "info": _2, "net": _2, "org": _2, "web": _2 }], "gw": [1, { "nx": _3 }], "gy": _52, "hk": [1, { "com": _2, "edu": _2, "gov": _2, "idv": _2, "net": _2, "org": _2, "xn--ciqpn": _2, "\u4E2A\u4EBA": _2, "xn--gmqw5a": _2, "\u500B\u4EBA": _2, "xn--55qx5d": _2, "\u516C\u53F8": _2, "xn--mxtq1m": _2, "\u653F\u5E9C": _2, "xn--lcvr32d": _2, "\u654E\u80B2": _2, "xn--wcvs22d": _2, "\u6559\u80B2": _2, "xn--gmq050i": _2, "\u7B87\u4EBA": _2, "xn--uc0atv": _2, "\u7D44\u7E54": _2, "xn--uc0ay4a": _2, "\u7D44\u7EC7": _2, "xn--od0alg": _2, "\u7DB2\u7D61": _2, "xn--zf0avx": _2, "\u7DB2\u7EDC": _2, "xn--mk0axi": _2, "\u7EC4\u7E54": _2, "xn--tn0ag": _2, "\u7EC4\u7EC7": _2, "xn--od0aq3b": _2, "\u7F51\u7D61": _2, "xn--io0a7i": _2, "\u7F51\u7EDC": _2, "inc": _3, "ltd": _3 }], "hm": _2, "hn": [1, { "com": _2, "edu": _2, "gob": _2, "mil": _2, "net": _2, "org": _2 }], "hr": [1, { "com": _2, "from": _2, "iz": _2, "name": _2, "brendly": _20 }], "ht": [1, { "adult": _2, "art": _2, "asso": _2, "com": _2, "coop": _2, "edu": _2, "firm": _2, "gouv": _2, "info": _2, "med": _2, "net": _2, "org": _2, "perso": _2, "pol": _2, "pro": _2, "rel": _2, "shop": _2, "rt": _3 }], "hu": [1, { "2000": _2, "agrar": _2, "bolt": _2, "casino": _2, "city": _2, "co": _2, "erotica": _2, "erotika": _2, "film": _2, "forum": _2, "games": _2, "hotel": _2, "info": _2, "ingatlan": _2, "jogasz": _2, "konyvelo": _2, "lakas": _2, "media": _2, "news": _2, "org": _2, "priv": _2, "reklam": _2, "sex": _2, "shop": _2, "sport": _2, "suli": _2, "szex": _2, "tm": _2, "tozsde": _2, "utazas": _2, "video": _2 }], "id": [1, { "ac": _2, "biz": _2, "co": _2, "desa": _2, "go": _2, "kop": _2, "mil": _2, "my": _2, "net": _2, "or": _2, "ponpes": _2, "sch": _2, "web": _2, "xn--9tfky": _2, "\u1B29\u1B2E\u1B36": _2, "e": _3, "zone": _3 }], "ie": [1, { "gov": _2, "myspreadshop": _3 }], "il": [1, { "ac": _2, "co": [1, { "ravpage": _3, "mytabit": _3, "tabitorder": _3 }], "gov": _2, "idf": _2, "k12": _2, "muni": _2, "net": _2, "org": _2 }], "xn--4dbrk0ce": [1, { "xn--4dbgdty6c": _2, "xn--5dbhl8d": _2, "xn--8dbq2a": _2, "xn--hebda8b": _2 }], "\u05D9\u05E9\u05E8\u05D0\u05DC": [1, { "\u05D0\u05E7\u05D3\u05DE\u05D9\u05D4": _2, "\u05D9\u05E9\u05D5\u05D1": _2, "\u05E6\u05D4\u05DC": _2, "\u05DE\u05DE\u05E9\u05DC": _2 }], "im": [1, { "ac": _2, "co": [1, { "ltd": _2, "plc": _2 }], "com": _2, "net": _2, "org": _2, "tt": _2, "tv": _2 }], "in": [1, { "5g": _2, "6g": _2, "ac": _2, "ai": _2, "am": _2, "bank": _2, "bihar": _2, "biz": _2, "business": _2, "ca": _2, "cn": _2, "co": _2, "com": _2, "coop": _2, "cs": _2, "delhi": _2, "dr": _2, "edu": _2, "er": _2, "fin": _2, "firm": _2, "gen": _2, "gov": _2, "gujarat": _2, "ind": _2, "info": _2, "int": _2, "internet": _2, "io": _2, "me": _2, "mil": _2, "net": _2, "nic": _2, "org": _2, "pg": _2, "post": _2, "pro": _2, "res": _2, "travel": _2, "tv": _2, "uk": _2, "up": _2, "us": _2, "cloudns": _3, "barsy": _3, "web": _3, "indevs": _3, "supabase": _3 }], "info": [1, { "cloudns": _3, "dynamic-dns": _3, "barrel-of-knowledge": _3, "barrell-of-knowledge": _3, "dyndns": _3, "for-our": _3, "groks-the": _3, "groks-this": _3, "here-for-more": _3, "knowsitall": _3, "selfip": _3, "webhop": _3, "barsy": _3, "mayfirst": _3, "mittwald": _3, "mittwaldserver": _3, "typo3server": _3, "dvrcam": _3, "ilovecollege": _3, "no-ip": _3, "forumz": _3, "nsupdate": _3, "dnsupdate": _3, "v-info": _3 }], "int": [1, { "eu": _2 }], "io": [1, { "2038": _3, "co": _2, "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "nom": _2, "org": _2, "on-acorn": _6, "myaddr": _3, "apigee": _3, "b-data": _3, "beagleboard": _3, "bitbucket": _3, "bluebite": _3, "boxfuse": _3, "brave": _7, "browsersafetymark": _3, "bubble": _55, "bubbleapps": _3, "bigv": [0, { "uk0": _3 }], "cleverapps": _3, "cloudbeesusercontent": _3, "dappnode": [0, { "dyndns": _3 }], "darklang": _3, "definima": _3, "dedyn": _3, "icp0": _56, "icp1": _56, "qzz": _3, "fh-muenster": _3, "gitbook": _3, "github": _3, "gitlab": _3, "lolipop": _3, "hasura-app": _3, "hostyhosting": _3, "hypernode": _3, "moonscale": _6, "beebyte": _43, "beebyteapp": [0, { "sekd1": _3 }], "jele": _3, "keenetic": _3, "kiloapps": _3, "webthings": _3, "loginline": _3, "barsy": _3, "azurecontainer": _6, "ngrok": [2, { "ap": _3, "au": _3, "eu": _3, "in": _3, "jp": _3, "sa": _3, "us": _3 }], "nodeart": [0, { "stage": _3 }], "pantheonsite": _3, "forgerock": [0, { "id": _3 }], "pstmn": [2, { "mock": _3 }], "protonet": _3, "qcx": [2, { "sys": _6 }], "qoto": _3, "vaporcloud": _3, "myrdbx": _3, "rb-hosting": _46, "on-k3s": _6, "on-rio": _6, "readthedocs": _3, "resindevice": _3, "resinstaging": [0, { "devices": _3 }], "hzc": _3, "sandcats": _3, "scrypted": [0, { "client": _3 }], "mo-siemens": _3, "lair": _42, "stolos": _6, "musician": _3, "utwente": _3, "edugit": _3, "telebit": _3, "thingdust": [0, { "dev": _57, "disrec": _57, "prod": _58, "testing": _57 }], "tickets": _3, "webflow": _3, "webflowtest": _3, "editorx": _3, "wixstudio": _3, "basicserver": _3, "virtualserver": _3 }], "iq": _5, "ir": [1, { "ac": _2, "co": _2, "gov": _2, "id": _2, "net": _2, "org": _2, "sch": _2, "xn--mgba3a4f16a": _2, "\u0627\u06CC\u0631\u0627\u0646": _2, "xn--mgba3a4fra": _2, "\u0627\u064A\u0631\u0627\u0646": _2, "arvanedge": _3, "vistablog": _3 }], "is": _2, "it": [1, { "edu": _2, "gov": _2, "abr": _2, "abruzzo": _2, "aosta-valley": _2, "aostavalley": _2, "bas": _2, "basilicata": _2, "cal": _2, "calabria": _2, "cam": _2, "campania": _2, "emilia-romagna": _2, "emiliaromagna": _2, "emr": _2, "friuli-v-giulia": _2, "friuli-ve-giulia": _2, "friuli-vegiulia": _2, "friuli-venezia-giulia": _2, "friuli-veneziagiulia": _2, "friuli-vgiulia": _2, "friuliv-giulia": _2, "friulive-giulia": _2, "friulivegiulia": _2, "friulivenezia-giulia": _2, "friuliveneziagiulia": _2, "friulivgiulia": _2, "fvg": _2, "laz": _2, "lazio": _2, "lig": _2, "liguria": _2, "lom": _2, "lombardia": _2, "lombardy": _2, "lucania": _2, "mar": _2, "marche": _2, "mol": _2, "molise": _2, "piedmont": _2, "piemonte": _2, "pmn": _2, "pug": _2, "puglia": _2, "sar": _2, "sardegna": _2, "sardinia": _2, "sic": _2, "sicilia": _2, "sicily": _2, "taa": _2, "tos": _2, "toscana": _2, "trentin-sud-tirol": _2, "xn--trentin-sd-tirol-rzb": _2, "trentin-s\xFCd-tirol": _2, "trentin-sudtirol": _2, "xn--trentin-sdtirol-7vb": _2, "trentin-s\xFCdtirol": _2, "trentin-sued-tirol": _2, "trentin-suedtirol": _2, "trentino": _2, "trentino-a-adige": _2, "trentino-aadige": _2, "trentino-alto-adige": _2, "trentino-altoadige": _2, "trentino-s-tirol": _2, "trentino-stirol": _2, "trentino-sud-tirol": _2, "xn--trentino-sd-tirol-c3b": _2, "trentino-s\xFCd-tirol": _2, "trentino-sudtirol": _2, "xn--trentino-sdtirol-szb": _2, "trentino-s\xFCdtirol": _2, "trentino-sued-tirol": _2, "trentino-suedtirol": _2, "trentinoa-adige": _2, "trentinoaadige": _2, "trentinoalto-adige": _2, "trentinoaltoadige": _2, "trentinos-tirol": _2, "trentinostirol": _2, "trentinosud-tirol": _2, "xn--trentinosd-tirol-rzb": _2, "trentinos\xFCd-tirol": _2, "trentinosudtirol": _2, "xn--trentinosdtirol-7vb": _2, "trentinos\xFCdtirol": _2, "trentinosued-tirol": _2, "trentinosuedtirol": _2, "trentinsud-tirol": _2, "xn--trentinsd-tirol-6vb": _2, "trentins\xFCd-tirol": _2, "trentinsudtirol": _2, "xn--trentinsdtirol-nsb": _2, "trentins\xFCdtirol": _2, "trentinsued-tirol": _2, "trentinsuedtirol": _2, "tuscany": _2, "umb": _2, "umbria": _2, "val-d-aosta": _2, "val-daosta": _2, "vald-aosta": _2, "valdaosta": _2, "valle-aosta": _2, "valle-d-aosta": _2, "valle-daosta": _2, "valleaosta": _2, "valled-aosta": _2, "valledaosta": _2, "vallee-aoste": _2, "xn--valle-aoste-ebb": _2, "vall\xE9e-aoste": _2, "vallee-d-aoste": _2, "xn--valle-d-aoste-ehb": _2, "vall\xE9e-d-aoste": _2, "valleeaoste": _2, "xn--valleaoste-e7a": _2, "vall\xE9eaoste": _2, "valleedaoste": _2, "xn--valledaoste-ebb": _2, "vall\xE9edaoste": _2, "vao": _2, "vda": _2, "ven": _2, "veneto": _2, "ag": _2, "agrigento": _2, "al": _2, "alessandria": _2, "alto-adige": _2, "altoadige": _2, "an": _2, "ancona": _2, "andria-barletta-trani": _2, "andria-trani-barletta": _2, "andriabarlettatrani": _2, "andriatranibarletta": _2, "ao": _2, "aosta": _2, "aoste": _2, "ap": _2, "aq": _2, "aquila": _2, "ar": _2, "arezzo": _2, "ascoli-piceno": _2, "ascolipiceno": _2, "asti": _2, "at": _2, "av": _2, "avellino": _2, "ba": _2, "balsan": _2, "balsan-sudtirol": _2, "xn--balsan-sdtirol-nsb": _2, "balsan-s\xFCdtirol": _2, "balsan-suedtirol": _2, "bari": _2, "barletta-trani-andria": _2, "barlettatraniandria": _2, "belluno": _2, "benevento": _2, "bergamo": _2, "bg": _2, "bi": _2, "biella": _2, "bl": _2, "bn": _2, "bo": _2, "bologna": _2, "bolzano": _2, "bolzano-altoadige": _2, "bozen": _2, "bozen-sudtirol": _2, "xn--bozen-sdtirol-2ob": _2, "bozen-s\xFCdtirol": _2, "bozen-suedtirol": _2, "br": _2, "brescia": _2, "brindisi": _2, "bs": _2, "bt": _2, "bulsan": _2, "bulsan-sudtirol": _2, "xn--bulsan-sdtirol-nsb": _2, "bulsan-s\xFCdtirol": _2, "bulsan-suedtirol": _2, "bz": _2, "ca": _2, "cagliari": _2, "caltanissetta": _2, "campidano-medio": _2, "campidanomedio": _2, "campobasso": _2, "carbonia-iglesias": _2, "carboniaiglesias": _2, "carrara-massa": _2, "carraramassa": _2, "caserta": _2, "catania": _2, "catanzaro": _2, "cb": _2, "ce": _2, "cesena-forli": _2, "xn--cesena-forl-mcb": _2, "cesena-forl\xEC": _2, "cesenaforli": _2, "xn--cesenaforl-i8a": _2, "cesenaforl\xEC": _2, "ch": _2, "chieti": _2, "ci": _2, "cl": _2, "cn": _2, "co": _2, "como": _2, "cosenza": _2, "cr": _2, "cremona": _2, "crotone": _2, "cs": _2, "ct": _2, "cuneo": _2, "cz": _2, "dell-ogliastra": _2, "dellogliastra": _2, "en": _2, "enna": _2, "fc": _2, "fe": _2, "fermo": _2, "ferrara": _2, "fg": _2, "fi": _2, "firenze": _2, "florence": _2, "fm": _2, "foggia": _2, "forli-cesena": _2, "xn--forl-cesena-fcb": _2, "forl\xEC-cesena": _2, "forlicesena": _2, "xn--forlcesena-c8a": _2, "forl\xECcesena": _2, "fr": _2, "frosinone": _2, "ge": _2, "genoa": _2, "genova": _2, "go": _2, "gorizia": _2, "gr": _2, "grosseto": _2, "iglesias-carbonia": _2, "iglesiascarbonia": _2, "im": _2, "imperia": _2, "is": _2, "isernia": _2, "kr": _2, "la-spezia": _2, "laquila": _2, "laspezia": _2, "latina": _2, "lc": _2, "le": _2, "lecce": _2, "lecco": _2, "li": _2, "livorno": _2, "lo": _2, "lodi": _2, "lt": _2, "lu": _2, "lucca": _2, "macerata": _2, "mantova": _2, "massa-carrara": _2, "massacarrara": _2, "matera": _2, "mb": _2, "mc": _2, "me": _2, "medio-campidano": _2, "mediocampidano": _2, "messina": _2, "mi": _2, "milan": _2, "milano": _2, "mn": _2, "mo": _2, "modena": _2, "monza": _2, "monza-brianza": _2, "monza-e-della-brianza": _2, "monzabrianza": _2, "monzaebrianza": _2, "monzaedellabrianza": _2, "ms": _2, "mt": _2, "na": _2, "naples": _2, "napoli": _2, "no": _2, "novara": _2, "nu": _2, "nuoro": _2, "og": _2, "ogliastra": _2, "olbia-tempio": _2, "olbiatempio": _2, "or": _2, "oristano": _2, "ot": _2, "pa": _2, "padova": _2, "padua": _2, "palermo": _2, "parma": _2, "pavia": _2, "pc": _2, "pd": _2, "pe": _2, "perugia": _2, "pesaro-urbino": _2, "pesarourbino": _2, "pescara": _2, "pg": _2, "pi": _2, "piacenza": _2, "pisa": _2, "pistoia": _2, "pn": _2, "po": _2, "pordenone": _2, "potenza": _2, "pr": _2, "prato": _2, "pt": _2, "pu": _2, "pv": _2, "pz": _2, "ra": _2, "ragusa": _2, "ravenna": _2, "rc": _2, "re": _2, "reggio-calabria": _2, "reggio-emilia": _2, "reggiocalabria": _2, "reggioemilia": _2, "rg": _2, "ri": _2, "rieti": _2, "rimini": _2, "rm": _2, "rn": _2, "ro": _2, "roma": _2, "rome": _2, "rovigo": _2, "sa": _2, "salerno": _2, "sassari": _2, "savona": _2, "si": _2, "siena": _2, "siracusa": _2, "so": _2, "sondrio": _2, "sp": _2, "sr": _2, "ss": _2, "xn--sdtirol-n2a": _2, "s\xFCdtirol": _2, "suedtirol": _2, "sv": _2, "ta": _2, "taranto": _2, "te": _2, "tempio-olbia": _2, "tempioolbia": _2, "teramo": _2, "terni": _2, "tn": _2, "to": _2, "torino": _2, "tp": _2, "tr": _2, "trani-andria-barletta": _2, "trani-barletta-andria": _2, "traniandriabarletta": _2, "tranibarlettaandria": _2, "trapani": _2, "trento": _2, "treviso": _2, "trieste": _2, "ts": _2, "turin": _2, "tv": _2, "ud": _2, "udine": _2, "urbino-pesaro": _2, "urbinopesaro": _2, "va": _2, "varese": _2, "vb": _2, "vc": _2, "ve": _2, "venezia": _2, "venice": _2, "verbania": _2, "vercelli": _2, "verona": _2, "vi": _2, "vibo-valentia": _2, "vibovalentia": _2, "vicenza": _2, "viterbo": _2, "vr": _2, "vs": _2, "vt": _2, "vv": _2, "ibxos": _3, "iliadboxos": _3, "neen": [0, { "jc": _3 }], "123homepage": _3, "16-b": _3, "32-b": _3, "64-b": _3, "myspreadshop": _3, "syncloud": _3 }], "je": [1, { "co": _2, "net": _2, "org": _2, "of": _3 }], "jm": _21, "jo": [1, { "agri": _2, "ai": _2, "com": _2, "edu": _2, "eng": _2, "fm": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "per": _2, "phd": _2, "sch": _2, "tv": _2 }], "jobs": _2, "jp": [1, { "ac": _2, "ad": _2, "co": _2, "ed": _2, "go": _2, "gr": _2, "lg": _2, "ne": [1, { "aseinet": _54, "gehirn": _3, "ivory": _3, "mail-box": _3, "mints": _3, "mokuren": _3, "opal": _3, "sakura": _3, "sumomo": _3, "topaz": _3 }], "or": _2, "aichi": [1, { "aisai": _2, "ama": _2, "anjo": _2, "asuke": _2, "chiryu": _2, "chita": _2, "fuso": _2, "gamagori": _2, "handa": _2, "hazu": _2, "hekinan": _2, "higashiura": _2, "ichinomiya": _2, "inazawa": _2, "inuyama": _2, "isshiki": _2, "iwakura": _2, "kanie": _2, "kariya": _2, "kasugai": _2, "kira": _2, "kiyosu": _2, "komaki": _2, "konan": _2, "kota": _2, "mihama": _2, "miyoshi": _2, "nishio": _2, "nisshin": _2, "obu": _2, "oguchi": _2, "oharu": _2, "okazaki": _2, "owariasahi": _2, "seto": _2, "shikatsu": _2, "shinshiro": _2, "shitara": _2, "tahara": _2, "takahama": _2, "tobishima": _2, "toei": _2, "togo": _2, "tokai": _2, "tokoname": _2, "toyoake": _2, "toyohashi": _2, "toyokawa": _2, "toyone": _2, "toyota": _2, "tsushima": _2, "yatomi": _2 }], "akita": [1, { "akita": _2, "daisen": _2, "fujisato": _2, "gojome": _2, "hachirogata": _2, "happou": _2, "higashinaruse": _2, "honjo": _2, "honjyo": _2, "ikawa": _2, "kamikoani": _2, "kamioka": _2, "katagami": _2, "kazuno": _2, "kitaakita": _2, "kosaka": _2, "kyowa": _2, "misato": _2, "mitane": _2, "moriyoshi": _2, "nikaho": _2, "noshiro": _2, "odate": _2, "oga": _2, "ogata": _2, "semboku": _2, "yokote": _2, "yurihonjo": _2 }], "aomori": [1, { "aomori": _2, "gonohe": _2, "hachinohe": _2, "hashikami": _2, "hiranai": _2, "hirosaki": _2, "itayanagi": _2, "kuroishi": _2, "misawa": _2, "mutsu": _2, "nakadomari": _2, "noheji": _2, "oirase": _2, "owani": _2, "rokunohe": _2, "sannohe": _2, "shichinohe": _2, "shingo": _2, "takko": _2, "towada": _2, "tsugaru": _2, "tsuruta": _2 }], "chiba": [1, { "abiko": _2, "asahi": _2, "chonan": _2, "chosei": _2, "choshi": _2, "chuo": _2, "funabashi": _2, "futtsu": _2, "hanamigawa": _2, "ichihara": _2, "ichikawa": _2, "ichinomiya": _2, "inzai": _2, "isumi": _2, "kamagaya": _2, "kamogawa": _2, "kashiwa": _2, "katori": _2, "katsuura": _2, "kimitsu": _2, "kisarazu": _2, "kozaki": _2, "kujukuri": _2, "kyonan": _2, "matsudo": _2, "midori": _2, "mihama": _2, "minamiboso": _2, "mobara": _2, "mutsuzawa": _2, "nagara": _2, "nagareyama": _2, "narashino": _2, "narita": _2, "noda": _2, "oamishirasato": _2, "omigawa": _2, "onjuku": _2, "otaki": _2, "sakae": _2, "sakura": _2, "shimofusa": _2, "shirako": _2, "shiroi": _2, "shisui": _2, "sodegaura": _2, "sosa": _2, "tako": _2, "tateyama": _2, "togane": _2, "tohnosho": _2, "tomisato": _2, "urayasu": _2, "yachimata": _2, "yachiyo": _2, "yokaichiba": _2, "yokoshibahikari": _2, "yotsukaido": _2 }], "ehime": [1, { "ainan": _2, "honai": _2, "ikata": _2, "imabari": _2, "iyo": _2, "kamijima": _2, "kihoku": _2, "kumakogen": _2, "masaki": _2, "matsuno": _2, "matsuyama": _2, "namikata": _2, "niihama": _2, "ozu": _2, "saijo": _2, "seiyo": _2, "shikokuchuo": _2, "tobe": _2, "toon": _2, "uchiko": _2, "uwajima": _2, "yawatahama": _2 }], "fukui": [1, { "echizen": _2, "eiheiji": _2, "fukui": _2, "ikeda": _2, "katsuyama": _2, "mihama": _2, "minamiechizen": _2, "obama": _2, "ohi": _2, "ono": _2, "sabae": _2, "sakai": _2, "takahama": _2, "tsuruga": _2, "wakasa": _2 }], "fukuoka": [1, { "ashiya": _2, "buzen": _2, "chikugo": _2, "chikuho": _2, "chikujo": _2, "chikushino": _2, "chikuzen": _2, "chuo": _2, "dazaifu": _2, "fukuchi": _2, "hakata": _2, "higashi": _2, "hirokawa": _2, "hisayama": _2, "iizuka": _2, "inatsuki": _2, "kaho": _2, "kasuga": _2, "kasuya": _2, "kawara": _2, "keisen": _2, "koga": _2, "kurate": _2, "kurogi": _2, "kurume": _2, "minami": _2, "miyako": _2, "miyama": _2, "miyawaka": _2, "mizumaki": _2, "munakata": _2, "nakagawa": _2, "nakama": _2, "nishi": _2, "nogata": _2, "ogori": _2, "okagaki": _2, "okawa": _2, "oki": _2, "omuta": _2, "onga": _2, "onojo": _2, "oto": _2, "saigawa": _2, "sasaguri": _2, "shingu": _2, "shinyoshitomi": _2, "shonai": _2, "soeda": _2, "sue": _2, "tachiarai": _2, "tagawa": _2, "takata": _2, "toho": _2, "toyotsu": _2, "tsuiki": _2, "ukiha": _2, "umi": _2, "usui": _2, "yamada": _2, "yame": _2, "yanagawa": _2, "yukuhashi": _2 }], "fukushima": [1, { "aizubange": _2, "aizumisato": _2, "aizuwakamatsu": _2, "asakawa": _2, "bandai": _2, "date": _2, "fukushima": _2, "furudono": _2, "futaba": _2, "hanawa": _2, "higashi": _2, "hirata": _2, "hirono": _2, "iitate": _2, "inawashiro": _2, "ishikawa": _2, "iwaki": _2, "izumizaki": _2, "kagamiishi": _2, "kaneyama": _2, "kawamata": _2, "kitakata": _2, "kitashiobara": _2, "koori": _2, "koriyama": _2, "kunimi": _2, "miharu": _2, "mishima": _2, "namie": _2, "nango": _2, "nishiaizu": _2, "nishigo": _2, "okuma": _2, "omotego": _2, "ono": _2, "otama": _2, "samegawa": _2, "shimogo": _2, "shirakawa": _2, "showa": _2, "soma": _2, "sukagawa": _2, "taishin": _2, "tamakawa": _2, "tanagura": _2, "tenei": _2, "yabuki": _2, "yamato": _2, "yamatsuri": _2, "yanaizu": _2, "yugawa": _2 }], "gifu": [1, { "anpachi": _2, "ena": _2, "gifu": _2, "ginan": _2, "godo": _2, "gujo": _2, "hashima": _2, "hichiso": _2, "hida": _2, "higashishirakawa": _2, "ibigawa": _2, "ikeda": _2, "kakamigahara": _2, "kani": _2, "kasahara": _2, "kasamatsu": _2, "kawaue": _2, "kitagata": _2, "mino": _2, "minokamo": _2, "mitake": _2, "mizunami": _2, "motosu": _2, "nakatsugawa": _2, "ogaki": _2, "sakahogi": _2, "seki": _2, "sekigahara": _2, "shirakawa": _2, "tajimi": _2, "takayama": _2, "tarui": _2, "toki": _2, "tomika": _2, "wanouchi": _2, "yamagata": _2, "yaotsu": _2, "yoro": _2 }], "gunma": [1, { "annaka": _2, "chiyoda": _2, "fujioka": _2, "higashiagatsuma": _2, "isesaki": _2, "itakura": _2, "kanna": _2, "kanra": _2, "katashina": _2, "kawaba": _2, "kiryu": _2, "kusatsu": _2, "maebashi": _2, "meiwa": _2, "midori": _2, "minakami": _2, "naganohara": _2, "nakanojo": _2, "nanmoku": _2, "numata": _2, "oizumi": _2, "ora": _2, "ota": _2, "shibukawa": _2, "shimonita": _2, "shinto": _2, "showa": _2, "takasaki": _2, "takayama": _2, "tamamura": _2, "tatebayashi": _2, "tomioka": _2, "tsukiyono": _2, "tsumagoi": _2, "ueno": _2, "yoshioka": _2 }], "hiroshima": [1, { "asaminami": _2, "daiwa": _2, "etajima": _2, "fuchu": _2, "fukuyama": _2, "hatsukaichi": _2, "higashihiroshima": _2, "hongo": _2, "jinsekikogen": _2, "kaita": _2, "kui": _2, "kumano": _2, "kure": _2, "mihara": _2, "miyoshi": _2, "naka": _2, "onomichi": _2, "osakikamijima": _2, "otake": _2, "saka": _2, "sera": _2, "seranishi": _2, "shinichi": _2, "shobara": _2, "takehara": _2 }], "hokkaido": [1, { "abashiri": _2, "abira": _2, "aibetsu": _2, "akabira": _2, "akkeshi": _2, "asahikawa": _2, "ashibetsu": _2, "ashoro": _2, "assabu": _2, "atsuma": _2, "bibai": _2, "biei": _2, "bifuka": _2, "bihoro": _2, "biratori": _2, "chippubetsu": _2, "chitose": _2, "date": _2, "ebetsu": _2, "embetsu": _2, "eniwa": _2, "erimo": _2, "esan": _2, "esashi": _2, "fukagawa": _2, "fukushima": _2, "furano": _2, "furubira": _2, "haboro": _2, "hakodate": _2, "hamatonbetsu": _2, "hidaka": _2, "higashikagura": _2, "higashikawa": _2, "hiroo": _2, "hokuryu": _2, "hokuto": _2, "honbetsu": _2, "horokanai": _2, "horonobe": _2, "ikeda": _2, "imakane": _2, "ishikari": _2, "iwamizawa": _2, "iwanai": _2, "kamifurano": _2, "kamikawa": _2, "kamishihoro": _2, "kamisunagawa": _2, "kamoenai": _2, "kayabe": _2, "kembuchi": _2, "kikonai": _2, "kimobetsu": _2, "kitahiroshima": _2, "kitami": _2, "kiyosato": _2, "koshimizu": _2, "kunneppu": _2, "kuriyama": _2, "kuromatsunai": _2, "kushiro": _2, "kutchan": _2, "kyowa": _2, "mashike": _2, "matsumae": _2, "mikasa": _2, "minamifurano": _2, "mombetsu": _2, "moseushi": _2, "mukawa": _2, "muroran": _2, "naie": _2, "nakagawa": _2, "nakasatsunai": _2, "nakatombetsu": _2, "nanae": _2, "nanporo": _2, "nayoro": _2, "nemuro": _2, "niikappu": _2, "niki": _2, "nishiokoppe": _2, "noboribetsu": _2, "numata": _2, "obihiro": _2, "obira": _2, "oketo": _2, "okoppe": _2, "otaru": _2, "otobe": _2, "otofuke": _2, "otoineppu": _2, "oumu": _2, "ozora": _2, "pippu": _2, "rankoshi": _2, "rebun": _2, "rikubetsu": _2, "rishiri": _2, "rishirifuji": _2, "saroma": _2, "sarufutsu": _2, "shakotan": _2, "shari": _2, "shibecha": _2, "shibetsu": _2, "shikabe": _2, "shikaoi": _2, "shimamaki": _2, "shimizu": _2, "shimokawa": _2, "shinshinotsu": _2, "shintoku": _2, "shiranuka": _2, "shiraoi": _2, "shiriuchi": _2, "sobetsu": _2, "sunagawa": _2, "taiki": _2, "takasu": _2, "takikawa": _2, "takinoue": _2, "teshikaga": _2, "tobetsu": _2, "tohma": _2, "tomakomai": _2, "tomari": _2, "toya": _2, "toyako": _2, "toyotomi": _2, "toyoura": _2, "tsubetsu": _2, "tsukigata": _2, "urakawa": _2, "urausu": _2, "uryu": _2, "utashinai": _2, "wakkanai": _2, "wassamu": _2, "yakumo": _2, "yoichi": _2 }], "hyogo": [1, { "aioi": _2, "akashi": _2, "ako": _2, "amagasaki": _2, "aogaki": _2, "asago": _2, "ashiya": _2, "awaji": _2, "fukusaki": _2, "goshiki": _2, "harima": _2, "himeji": _2, "ichikawa": _2, "inagawa": _2, "itami": _2, "kakogawa": _2, "kamigori": _2, "kamikawa": _2, "kasai": _2, "kasuga": _2, "kawanishi": _2, "miki": _2, "minamiawaji": _2, "nishinomiya": _2, "nishiwaki": _2, "ono": _2, "sanda": _2, "sannan": _2, "sasayama": _2, "sayo": _2, "shingu": _2, "shinonsen": _2, "shiso": _2, "sumoto": _2, "taishi": _2, "taka": _2, "takarazuka": _2, "takasago": _2, "takino": _2, "tamba": _2, "tatsuno": _2, "toyooka": _2, "yabu": _2, "yashiro": _2, "yoka": _2, "yokawa": _2 }], "ibaraki": [1, { "ami": _2, "asahi": _2, "bando": _2, "chikusei": _2, "daigo": _2, "fujishiro": _2, "hitachi": _2, "hitachinaka": _2, "hitachiomiya": _2, "hitachiota": _2, "ibaraki": _2, "ina": _2, "inashiki": _2, "itako": _2, "iwama": _2, "joso": _2, "kamisu": _2, "kasama": _2, "kashima": _2, "kasumigaura": _2, "koga": _2, "miho": _2, "mito": _2, "moriya": _2, "naka": _2, "namegata": _2, "oarai": _2, "ogawa": _2, "omitama": _2, "ryugasaki": _2, "sakai": _2, "sakuragawa": _2, "shimodate": _2, "shimotsuma": _2, "shirosato": _2, "sowa": _2, "suifu": _2, "takahagi": _2, "tamatsukuri": _2, "tokai": _2, "tomobe": _2, "tone": _2, "toride": _2, "tsuchiura": _2, "tsukuba": _2, "uchihara": _2, "ushiku": _2, "yachiyo": _2, "yamagata": _2, "yawara": _2, "yuki": _2 }], "ishikawa": [1, { "anamizu": _2, "hakui": _2, "hakusan": _2, "kaga": _2, "kahoku": _2, "kanazawa": _2, "kawakita": _2, "komatsu": _2, "nakanoto": _2, "nanao": _2, "nomi": _2, "nonoichi": _2, "noto": _2, "shika": _2, "suzu": _2, "tsubata": _2, "tsurugi": _2, "uchinada": _2, "wajima": _2 }], "iwate": [1, { "fudai": _2, "fujisawa": _2, "hanamaki": _2, "hiraizumi": _2, "hirono": _2, "ichinohe": _2, "ichinoseki": _2, "iwaizumi": _2, "iwate": _2, "joboji": _2, "kamaishi": _2, "kanegasaki": _2, "karumai": _2, "kawai": _2, "kitakami": _2, "kuji": _2, "kunohe": _2, "kuzumaki": _2, "miyako": _2, "mizusawa": _2, "morioka": _2, "ninohe": _2, "noda": _2, "ofunato": _2, "oshu": _2, "otsuchi": _2, "rikuzentakata": _2, "shiwa": _2, "shizukuishi": _2, "sumita": _2, "tanohata": _2, "tono": _2, "yahaba": _2, "yamada": _2 }], "kagawa": [1, { "ayagawa": _2, "higashikagawa": _2, "kanonji": _2, "kotohira": _2, "manno": _2, "marugame": _2, "mitoyo": _2, "naoshima": _2, "sanuki": _2, "tadotsu": _2, "takamatsu": _2, "tonosho": _2, "uchinomi": _2, "utazu": _2, "zentsuji": _2 }], "kagoshima": [1, { "akune": _2, "amami": _2, "hioki": _2, "isa": _2, "isen": _2, "izumi": _2, "kagoshima": _2, "kanoya": _2, "kawanabe": _2, "kinko": _2, "kouyama": _2, "makurazaki": _2, "matsumoto": _2, "minamitane": _2, "nakatane": _2, "nishinoomote": _2, "satsumasendai": _2, "soo": _2, "tarumizu": _2, "yusui": _2 }], "kanagawa": [1, { "aikawa": _2, "atsugi": _2, "ayase": _2, "chigasaki": _2, "ebina": _2, "fujisawa": _2, "hadano": _2, "hakone": _2, "hiratsuka": _2, "isehara": _2, "kaisei": _2, "kamakura": _2, "kiyokawa": _2, "matsuda": _2, "minamiashigara": _2, "miura": _2, "nakai": _2, "ninomiya": _2, "odawara": _2, "oi": _2, "oiso": _2, "sagamihara": _2, "samukawa": _2, "tsukui": _2, "yamakita": _2, "yamato": _2, "yokosuka": _2, "yugawara": _2, "zama": _2, "zushi": _2 }], "kochi": [1, { "aki": _2, "geisei": _2, "hidaka": _2, "higashitsuno": _2, "ino": _2, "kagami": _2, "kami": _2, "kitagawa": _2, "kochi": _2, "mihara": _2, "motoyama": _2, "muroto": _2, "nahari": _2, "nakamura": _2, "nankoku": _2, "nishitosa": _2, "niyodogawa": _2, "ochi": _2, "okawa": _2, "otoyo": _2, "otsuki": _2, "sakawa": _2, "sukumo": _2, "susaki": _2, "tosa": _2, "tosashimizu": _2, "toyo": _2, "tsuno": _2, "umaji": _2, "yasuda": _2, "yusuhara": _2 }], "kumamoto": [1, { "amakusa": _2, "arao": _2, "aso": _2, "choyo": _2, "gyokuto": _2, "kamiamakusa": _2, "kikuchi": _2, "kumamoto": _2, "mashiki": _2, "mifune": _2, "minamata": _2, "minamioguni": _2, "nagasu": _2, "nishihara": _2, "oguni": _2, "ozu": _2, "sumoto": _2, "takamori": _2, "uki": _2, "uto": _2, "yamaga": _2, "yamato": _2, "yatsushiro": _2 }], "kyoto": [1, { "ayabe": _2, "fukuchiyama": _2, "higashiyama": _2, "ide": _2, "ine": _2, "joyo": _2, "kameoka": _2, "kamo": _2, "kita": _2, "kizu": _2, "kumiyama": _2, "kyotamba": _2, "kyotanabe": _2, "kyotango": _2, "maizuru": _2, "minami": _2, "minamiyamashiro": _2, "miyazu": _2, "muko": _2, "nagaokakyo": _2, "nakagyo": _2, "nantan": _2, "oyamazaki": _2, "sakyo": _2, "seika": _2, "tanabe": _2, "uji": _2, "ujitawara": _2, "wazuka": _2, "yamashina": _2, "yawata": _2 }], "mie": [1, { "asahi": _2, "inabe": _2, "ise": _2, "kameyama": _2, "kawagoe": _2, "kiho": _2, "kisosaki": _2, "kiwa": _2, "komono": _2, "kumano": _2, "kuwana": _2, "matsusaka": _2, "meiwa": _2, "mihama": _2, "minamiise": _2, "misugi": _2, "miyama": _2, "nabari": _2, "shima": _2, "suzuka": _2, "tado": _2, "taiki": _2, "taki": _2, "tamaki": _2, "toba": _2, "tsu": _2, "udono": _2, "ureshino": _2, "watarai": _2, "yokkaichi": _2 }], "miyagi": [1, { "furukawa": _2, "higashimatsushima": _2, "ishinomaki": _2, "iwanuma": _2, "kakuda": _2, "kami": _2, "kawasaki": _2, "marumori": _2, "matsushima": _2, "minamisanriku": _2, "misato": _2, "murata": _2, "natori": _2, "ogawara": _2, "ohira": _2, "onagawa": _2, "osaki": _2, "rifu": _2, "semine": _2, "shibata": _2, "shichikashuku": _2, "shikama": _2, "shiogama": _2, "shiroishi": _2, "tagajo": _2, "taiwa": _2, "tome": _2, "tomiya": _2, "wakuya": _2, "watari": _2, "yamamoto": _2, "zao": _2 }], "miyazaki": [1, { "aya": _2, "ebino": _2, "gokase": _2, "hyuga": _2, "kadogawa": _2, "kawaminami": _2, "kijo": _2, "kitagawa": _2, "kitakata": _2, "kitaura": _2, "kobayashi": _2, "kunitomi": _2, "kushima": _2, "mimata": _2, "miyakonojo": _2, "miyazaki": _2, "morotsuka": _2, "nichinan": _2, "nishimera": _2, "nobeoka": _2, "saito": _2, "shiiba": _2, "shintomi": _2, "takaharu": _2, "takanabe": _2, "takazaki": _2, "tsuno": _2 }], "nagano": [1, { "achi": _2, "agematsu": _2, "anan": _2, "aoki": _2, "asahi": _2, "azumino": _2, "chikuhoku": _2, "chikuma": _2, "chino": _2, "fujimi": _2, "hakuba": _2, "hara": _2, "hiraya": _2, "iida": _2, "iijima": _2, "iiyama": _2, "iizuna": _2, "ikeda": _2, "ikusaka": _2, "ina": _2, "karuizawa": _2, "kawakami": _2, "kiso": _2, "kisofukushima": _2, "kitaaiki": _2, "komagane": _2, "komoro": _2, "matsukawa": _2, "matsumoto": _2, "miasa": _2, "minamiaiki": _2, "minamimaki": _2, "minamiminowa": _2, "minowa": _2, "miyada": _2, "miyota": _2, "mochizuki": _2, "nagano": _2, "nagawa": _2, "nagiso": _2, "nakagawa": _2, "nakano": _2, "nozawaonsen": _2, "obuse": _2, "ogawa": _2, "okaya": _2, "omachi": _2, "omi": _2, "ookuwa": _2, "ooshika": _2, "otaki": _2, "otari": _2, "sakae": _2, "sakaki": _2, "saku": _2, "sakuho": _2, "shimosuwa": _2, "shinanomachi": _2, "shiojiri": _2, "suwa": _2, "suzaka": _2, "takagi": _2, "takamori": _2, "takayama": _2, "tateshina": _2, "tatsuno": _2, "togakushi": _2, "togura": _2, "tomi": _2, "ueda": _2, "wada": _2, "yamagata": _2, "yamanouchi": _2, "yasaka": _2, "yasuoka": _2 }], "nagasaki": [1, { "chijiwa": _2, "futsu": _2, "goto": _2, "hasami": _2, "hirado": _2, "iki": _2, "isahaya": _2, "kawatana": _2, "kuchinotsu": _2, "matsuura": _2, "nagasaki": _2, "obama": _2, "omura": _2, "oseto": _2, "saikai": _2, "sasebo": _2, "seihi": _2, "shimabara": _2, "shinkamigoto": _2, "togitsu": _2, "tsushima": _2, "unzen": _2 }], "nara": [1, { "ando": _2, "gose": _2, "heguri": _2, "higashiyoshino": _2, "ikaruga": _2, "ikoma": _2, "kamikitayama": _2, "kanmaki": _2, "kashiba": _2, "kashihara": _2, "katsuragi": _2, "kawai": _2, "kawakami": _2, "kawanishi": _2, "koryo": _2, "kurotaki": _2, "mitsue": _2, "miyake": _2, "nara": _2, "nosegawa": _2, "oji": _2, "ouda": _2, "oyodo": _2, "sakurai": _2, "sango": _2, "shimoichi": _2, "shimokitayama": _2, "shinjo": _2, "soni": _2, "takatori": _2, "tawaramoto": _2, "tenkawa": _2, "tenri": _2, "uda": _2, "yamatokoriyama": _2, "yamatotakada": _2, "yamazoe": _2, "yoshino": _2 }], "niigata": [1, { "aga": _2, "agano": _2, "gosen": _2, "itoigawa": _2, "izumozaki": _2, "joetsu": _2, "kamo": _2, "kariwa": _2, "kashiwazaki": _2, "minamiuonuma": _2, "mitsuke": _2, "muika": _2, "murakami": _2, "myoko": _2, "nagaoka": _2, "niigata": _2, "ojiya": _2, "omi": _2, "sado": _2, "sanjo": _2, "seiro": _2, "seirou": _2, "sekikawa": _2, "shibata": _2, "tagami": _2, "tainai": _2, "tochio": _2, "tokamachi": _2, "tsubame": _2, "tsunan": _2, "uonuma": _2, "yahiko": _2, "yoita": _2, "yuzawa": _2 }], "oita": [1, { "beppu": _2, "bungoono": _2, "bungotakada": _2, "hasama": _2, "hiji": _2, "himeshima": _2, "hita": _2, "kamitsue": _2, "kokonoe": _2, "kuju": _2, "kunisaki": _2, "kusu": _2, "oita": _2, "saiki": _2, "taketa": _2, "tsukumi": _2, "usa": _2, "usuki": _2, "yufu": _2 }], "okayama": [1, { "akaiwa": _2, "asakuchi": _2, "bizen": _2, "hayashima": _2, "ibara": _2, "kagamino": _2, "kasaoka": _2, "kibichuo": _2, "kumenan": _2, "kurashiki": _2, "maniwa": _2, "misaki": _2, "nagi": _2, "niimi": _2, "nishiawakura": _2, "okayama": _2, "satosho": _2, "setouchi": _2, "shinjo": _2, "shoo": _2, "soja": _2, "takahashi": _2, "tamano": _2, "tsuyama": _2, "wake": _2, "yakage": _2 }], "okinawa": [1, { "aguni": _2, "ginowan": _2, "ginoza": _2, "gushikami": _2, "haebaru": _2, "higashi": _2, "hirara": _2, "iheya": _2, "ishigaki": _2, "ishikawa": _2, "itoman": _2, "izena": _2, "kadena": _2, "kin": _2, "kitadaito": _2, "kitanakagusuku": _2, "kumejima": _2, "kunigami": _2, "minamidaito": _2, "motobu": _2, "nago": _2, "naha": _2, "nakagusuku": _2, "nakijin": _2, "nanjo": _2, "nishihara": _2, "ogimi": _2, "okinawa": _2, "onna": _2, "shimoji": _2, "taketomi": _2, "tarama": _2, "tokashiki": _2, "tomigusuku": _2, "tonaki": _2, "urasoe": _2, "uruma": _2, "yaese": _2, "yomitan": _2, "yonabaru": _2, "yonaguni": _2, "zamami": _2 }], "osaka": [1, { "abeno": _2, "chihayaakasaka": _2, "chuo": _2, "daito": _2, "fujiidera": _2, "habikino": _2, "hannan": _2, "higashiosaka": _2, "higashisumiyoshi": _2, "higashiyodogawa": _2, "hirakata": _2, "ibaraki": _2, "ikeda": _2, "izumi": _2, "izumiotsu": _2, "izumisano": _2, "kadoma": _2, "kaizuka": _2, "kanan": _2, "kashiwara": _2, "katano": _2, "kawachinagano": _2, "kishiwada": _2, "kita": _2, "kumatori": _2, "matsubara": _2, "minato": _2, "minoh": _2, "misaki": _2, "moriguchi": _2, "neyagawa": _2, "nishi": _2, "nose": _2, "osakasayama": _2, "sakai": _2, "sayama": _2, "sennan": _2, "settsu": _2, "shijonawate": _2, "shimamoto": _2, "suita": _2, "tadaoka": _2, "taishi": _2, "tajiri": _2, "takaishi": _2, "takatsuki": _2, "tondabayashi": _2, "toyonaka": _2, "toyono": _2, "yao": _2 }], "saga": [1, { "ariake": _2, "arita": _2, "fukudomi": _2, "genkai": _2, "hamatama": _2, "hizen": _2, "imari": _2, "kamimine": _2, "kanzaki": _2, "karatsu": _2, "kashima": _2, "kitagata": _2, "kitahata": _2, "kiyama": _2, "kouhoku": _2, "kyuragi": _2, "nishiarita": _2, "ogi": _2, "omachi": _2, "ouchi": _2, "saga": _2, "shiroishi": _2, "taku": _2, "tara": _2, "tosu": _2, "yoshinogari": _2 }], "saitama": [1, { "arakawa": _2, "asaka": _2, "chichibu": _2, "fujimi": _2, "fujimino": _2, "fukaya": _2, "hanno": _2, "hanyu": _2, "hasuda": _2, "hatogaya": _2, "hatoyama": _2, "hidaka": _2, "higashichichibu": _2, "higashimatsuyama": _2, "honjo": _2, "ina": _2, "iruma": _2, "iwatsuki": _2, "kamiizumi": _2, "kamikawa": _2, "kamisato": _2, "kasukabe": _2, "kawagoe": _2, "kawaguchi": _2, "kawajima": _2, "kazo": _2, "kitamoto": _2, "koshigaya": _2, "kounosu": _2, "kuki": _2, "kumagaya": _2, "matsubushi": _2, "minano": _2, "misato": _2, "miyashiro": _2, "miyoshi": _2, "moroyama": _2, "nagatoro": _2, "namegawa": _2, "niiza": _2, "ogano": _2, "ogawa": _2, "ogose": _2, "okegawa": _2, "omiya": _2, "otaki": _2, "ranzan": _2, "ryokami": _2, "saitama": _2, "sakado": _2, "satte": _2, "sayama": _2, "shiki": _2, "shiraoka": _2, "soka": _2, "sugito": _2, "toda": _2, "tokigawa": _2, "tokorozawa": _2, "tsurugashima": _2, "urawa": _2, "warabi": _2, "yashio": _2, "yokoze": _2, "yono": _2, "yorii": _2, "yoshida": _2, "yoshikawa": _2, "yoshimi": _2 }], "shiga": [1, { "aisho": _2, "gamo": _2, "higashiomi": _2, "hikone": _2, "koka": _2, "konan": _2, "kosei": _2, "koto": _2, "kusatsu": _2, "maibara": _2, "moriyama": _2, "nagahama": _2, "nishiazai": _2, "notogawa": _2, "omihachiman": _2, "otsu": _2, "ritto": _2, "ryuoh": _2, "takashima": _2, "takatsuki": _2, "torahime": _2, "toyosato": _2, "yasu": _2 }], "shimane": [1, { "akagi": _2, "ama": _2, "gotsu": _2, "hamada": _2, "higashiizumo": _2, "hikawa": _2, "hikimi": _2, "izumo": _2, "kakinoki": _2, "masuda": _2, "matsue": _2, "misato": _2, "nishinoshima": _2, "ohda": _2, "okinoshima": _2, "okuizumo": _2, "shimane": _2, "tamayu": _2, "tsuwano": _2, "unnan": _2, "yakumo": _2, "yasugi": _2, "yatsuka": _2 }], "shizuoka": [1, { "arai": _2, "atami": _2, "fuji": _2, "fujieda": _2, "fujikawa": _2, "fujinomiya": _2, "fukuroi": _2, "gotemba": _2, "haibara": _2, "hamamatsu": _2, "higashiizu": _2, "ito": _2, "iwata": _2, "izu": _2, "izunokuni": _2, "kakegawa": _2, "kannami": _2, "kawanehon": _2, "kawazu": _2, "kikugawa": _2, "kosai": _2, "makinohara": _2, "matsuzaki": _2, "minamiizu": _2, "mishima": _2, "morimachi": _2, "nishiizu": _2, "numazu": _2, "omaezaki": _2, "shimada": _2, "shimizu": _2, "shimoda": _2, "shizuoka": _2, "susono": _2, "yaizu": _2, "yoshida": _2 }], "tochigi": [1, { "ashikaga": _2, "bato": _2, "haga": _2, "ichikai": _2, "iwafune": _2, "kaminokawa": _2, "kanuma": _2, "karasuyama": _2, "kuroiso": _2, "mashiko": _2, "mibu": _2, "moka": _2, "motegi": _2, "nasu": _2, "nasushiobara": _2, "nikko": _2, "nishikata": _2, "nogi": _2, "ohira": _2, "ohtawara": _2, "oyama": _2, "sakura": _2, "sano": _2, "shimotsuke": _2, "shioya": _2, "takanezawa": _2, "tochigi": _2, "tsuga": _2, "ujiie": _2, "utsunomiya": _2, "yaita": _2 }], "tokushima": [1, { "aizumi": _2, "anan": _2, "ichiba": _2, "itano": _2, "kainan": _2, "komatsushima": _2, "matsushige": _2, "mima": _2, "minami": _2, "miyoshi": _2, "mugi": _2, "nakagawa": _2, "naruto": _2, "sanagochi": _2, "shishikui": _2, "tokushima": _2, "wajiki": _2 }], "tokyo": [1, { "adachi": _2, "akiruno": _2, "akishima": _2, "aogashima": _2, "arakawa": _2, "bunkyo": _2, "chiyoda": _2, "chofu": _2, "chuo": _2, "edogawa": _2, "fuchu": _2, "fussa": _2, "hachijo": _2, "hachioji": _2, "hamura": _2, "higashikurume": _2, "higashimurayama": _2, "higashiyamato": _2, "hino": _2, "hinode": _2, "hinohara": _2, "inagi": _2, "itabashi": _2, "katsushika": _2, "kita": _2, "kiyose": _2, "kodaira": _2, "koganei": _2, "kokubunji": _2, "komae": _2, "koto": _2, "kouzushima": _2, "kunitachi": _2, "machida": _2, "meguro": _2, "minato": _2, "mitaka": _2, "mizuho": _2, "musashimurayama": _2, "musashino": _2, "nakano": _2, "nerima": _2, "ogasawara": _2, "okutama": _2, "ome": _2, "oshima": _2, "ota": _2, "setagaya": _2, "shibuya": _2, "shinagawa": _2, "shinjuku": _2, "suginami": _2, "sumida": _2, "tachikawa": _2, "taito": _2, "tama": _2, "toshima": _2 }], "tottori": [1, { "chizu": _2, "hino": _2, "kawahara": _2, "koge": _2, "kotoura": _2, "misasa": _2, "nanbu": _2, "nichinan": _2, "sakaiminato": _2, "tottori": _2, "wakasa": _2, "yazu": _2, "yonago": _2 }], "toyama": [1, { "asahi": _2, "fuchu": _2, "fukumitsu": _2, "funahashi": _2, "himi": _2, "imizu": _2, "inami": _2, "johana": _2, "kamiichi": _2, "kurobe": _2, "nakaniikawa": _2, "namerikawa": _2, "nanto": _2, "nyuzen": _2, "oyabe": _2, "taira": _2, "takaoka": _2, "tateyama": _2, "toga": _2, "tonami": _2, "toyama": _2, "unazuki": _2, "uozu": _2, "yamada": _2 }], "wakayama": [1, { "arida": _2, "aridagawa": _2, "gobo": _2, "hashimoto": _2, "hidaka": _2, "hirogawa": _2, "inami": _2, "iwade": _2, "kainan": _2, "kamitonda": _2, "katsuragi": _2, "kimino": _2, "kinokawa": _2, "kitayama": _2, "koya": _2, "koza": _2, "kozagawa": _2, "kudoyama": _2, "kushimoto": _2, "mihama": _2, "misato": _2, "nachikatsuura": _2, "shingu": _2, "shirahama": _2, "taiji": _2, "tanabe": _2, "wakayama": _2, "yuasa": _2, "yura": _2 }], "yamagata": [1, { "asahi": _2, "funagata": _2, "higashine": _2, "iide": _2, "kahoku": _2, "kaminoyama": _2, "kaneyama": _2, "kawanishi": _2, "mamurogawa": _2, "mikawa": _2, "murayama": _2, "nagai": _2, "nakayama": _2, "nanyo": _2, "nishikawa": _2, "obanazawa": _2, "oe": _2, "oguni": _2, "ohkura": _2, "oishida": _2, "sagae": _2, "sakata": _2, "sakegawa": _2, "shinjo": _2, "shirataka": _2, "shonai": _2, "takahata": _2, "tendo": _2, "tozawa": _2, "tsuruoka": _2, "yamagata": _2, "yamanobe": _2, "yonezawa": _2, "yuza": _2 }], "yamaguchi": [1, { "abu": _2, "hagi": _2, "hikari": _2, "hofu": _2, "iwakuni": _2, "kudamatsu": _2, "mitou": _2, "nagato": _2, "oshima": _2, "shimonoseki": _2, "shunan": _2, "tabuse": _2, "tokuyama": _2, "toyota": _2, "ube": _2, "yuu": _2 }], "yamanashi": [1, { "chuo": _2, "doshi": _2, "fuefuki": _2, "fujikawa": _2, "fujikawaguchiko": _2, "fujiyoshida": _2, "hayakawa": _2, "hokuto": _2, "ichikawamisato": _2, "kai": _2, "kofu": _2, "koshu": _2, "kosuge": _2, "minami-alps": _2, "minobu": _2, "nakamichi": _2, "nanbu": _2, "narusawa": _2, "nirasaki": _2, "nishikatsura": _2, "oshino": _2, "otsuki": _2, "showa": _2, "tabayama": _2, "tsuru": _2, "uenohara": _2, "yamanakako": _2, "yamanashi": _2 }], "xn--ehqz56n": _2, "\u4E09\u91CD": _2, "xn--1lqs03n": _2, "\u4EAC\u90FD": _2, "xn--qqqt11m": _2, "\u4F50\u8CC0": _2, "xn--f6qx53a": _2, "\u5175\u5EAB": _2, "xn--djrs72d6uy": _2, "\u5317\u6D77\u9053": _2, "xn--mkru45i": _2, "\u5343\u8449": _2, "xn--0trq7p7nn": _2, "\u548C\u6B4C\u5C71": _2, "xn--5js045d": _2, "\u57FC\u7389": _2, "xn--kbrq7o": _2, "\u5927\u5206": _2, "xn--pssu33l": _2, "\u5927\u962A": _2, "xn--ntsq17g": _2, "\u5948\u826F": _2, "xn--uisz3g": _2, "\u5BAE\u57CE": _2, "xn--6btw5a": _2, "\u5BAE\u5D0E": _2, "xn--1ctwo": _2, "\u5BCC\u5C71": _2, "xn--6orx2r": _2, "\u5C71\u53E3": _2, "xn--rht61e": _2, "\u5C71\u5F62": _2, "xn--rht27z": _2, "\u5C71\u68A8": _2, "xn--nit225k": _2, "\u5C90\u961C": _2, "xn--rht3d": _2, "\u5CA1\u5C71": _2, "xn--djty4k": _2, "\u5CA9\u624B": _2, "xn--klty5x": _2, "\u5CF6\u6839": _2, "xn--kltx9a": _2, "\u5E83\u5CF6": _2, "xn--kltp7d": _2, "\u5FB3\u5CF6": _2, "xn--c3s14m": _2, "\u611B\u5A9B": _2, "xn--vgu402c": _2, "\u611B\u77E5": _2, "xn--efvn9s": _2, "\u65B0\u6F5F": _2, "xn--1lqs71d": _2, "\u6771\u4EAC": _2, "xn--4pvxs": _2, "\u6803\u6728": _2, "xn--uuwu58a": _2, "\u6C96\u7E04": _2, "xn--zbx025d": _2, "\u6ECB\u8CC0": _2, "xn--8pvr4u": _2, "\u718A\u672C": _2, "xn--5rtp49c": _2, "\u77F3\u5DDD": _2, "xn--ntso0iqx3a": _2, "\u795E\u5948\u5DDD": _2, "xn--elqq16h": _2, "\u798F\u4E95": _2, "xn--4it168d": _2, "\u798F\u5CA1": _2, "xn--klt787d": _2, "\u798F\u5CF6": _2, "xn--rny31h": _2, "\u79CB\u7530": _2, "xn--7t0a264c": _2, "\u7FA4\u99AC": _2, "xn--uist22h": _2, "\u8328\u57CE": _2, "xn--8ltr62k": _2, "\u9577\u5D0E": _2, "xn--2m4a15e": _2, "\u9577\u91CE": _2, "xn--32vp30h": _2, "\u9752\u68EE": _2, "xn--4it797k": _2, "\u9759\u5CA1": _2, "xn--5rtq34k": _2, "\u9999\u5DDD": _2, "xn--k7yn95e": _2, "\u9AD8\u77E5": _2, "xn--tor131o": _2, "\u9CE5\u53D6": _2, "xn--d5qv7z876c": _2, "\u9E7F\u5150\u5CF6": _2, "kawasaki": _21, "kitakyushu": _21, "kobe": _21, "nagoya": _21, "sapporo": _21, "sendai": _21, "yokohama": _21, "buyshop": _3, "fashionstore": _3, "handcrafted": _3, "kawaiishop": _3, "supersale": _3, "theshop": _3, "0am": _3, "0g0": _3, "0j0": _3, "0t0": _3, "mydns": _3, "pgw": _3, "wjg": _3, "usercontent": _3, "angry": _3, "babyblue": _3, "babymilk": _3, "backdrop": _3, "bambina": _3, "bitter": _3, "blush": _3, "boo": _3, "boy": _3, "boyfriend": _3, "but": _3, "candypop": _3, "capoo": _3, "catfood": _3, "cheap": _3, "chicappa": _3, "chillout": _3, "chips": _3, "chowder": _3, "chu": _3, "ciao": _3, "cocotte": _3, "coolblog": _3, "cranky": _3, "cutegirl": _3, "daa": _3, "deca": _3, "deci": _3, "digick": _3, "egoism": _3, "fakefur": _3, "fem": _3, "flier": _3, "floppy": _3, "fool": _3, "frenchkiss": _3, "girlfriend": _3, "girly": _3, "gloomy": _3, "gonna": _3, "greater": _3, "hacca": _3, "heavy": _3, "her": _3, "hiho": _3, "hippy": _3, "holy": _3, "hungry": _3, "icurus": _3, "itigo": _3, "jellybean": _3, "kikirara": _3, "kill": _3, "kilo": _3, "kuron": _3, "littlestar": _3, "lolipopmc": _3, "lolitapunk": _3, "lomo": _3, "lovepop": _3, "lovesick": _3, "main": _3, "mods": _3, "mond": _3, "mongolian": _3, "moo": _3, "namaste": _3, "nikita": _3, "nobushi": _3, "noor": _3, "oops": _3, "parallel": _3, "parasite": _3, "pecori": _3, "peewee": _3, "penne": _3, "pepper": _3, "perma": _3, "pigboat": _3, "pinoko": _3, "punyu": _3, "pupu": _3, "pussycat": _3, "pya": _3, "raindrop": _3, "readymade": _3, "sadist": _3, "schoolbus": _3, "secret": _3, "staba": _3, "stripper": _3, "sub": _3, "sunnyday": _3, "thick": _3, "tonkotsu": _3, "under": _3, "upper": _3, "velvet": _3, "verse": _3, "versus": _3, "vivian": _3, "watson": _3, "weblike": _3, "whitesnow": _3, "zombie": _3, "hateblo": _3, "hatenablog": _3, "hatenadiary": _3, "2-d": _3, "bona": _3, "crap": _3, "daynight": _3, "eek": _3, "flop": _3, "halfmoon": _3, "jeez": _3, "matrix": _3, "mimoza": _3, "netgamers": _3, "nyanta": _3, "o0o0": _3, "rdy": _3, "rgr": _3, "rulez": _3, "sakurastorage": [0, { "isk01": _59, "isk02": _59 }], "saloon": _3, "sblo": _3, "skr": _3, "tank": _3, "uh-oh": _3, "undo": _3, "webaccel": [0, { "rs": _3, "user": _3 }], "websozai": _3, "xii": _3 }], "ke": [1, { "ac": _2, "co": _2, "go": _2, "info": _2, "me": _2, "mobi": _2, "ne": _2, "or": _2, "sc": _2 }], "kg": [1, { "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "us": _3, "xx": _3, "ae": _3 }], "kh": _21, "ki": _60, "km": [1, { "ass": _2, "com": _2, "edu": _2, "gov": _2, "mil": _2, "nom": _2, "org": _2, "prd": _2, "tm": _2, "asso": _2, "coop": _2, "gouv": _2, "medecin": _2, "notaires": _2, "pharmaciens": _2, "presse": _2, "veterinaire": _2 }], "kn": [1, { "edu": _2, "gov": _2, "net": _2, "org": _2 }], "kp": [1, { "com": _2, "edu": _2, "gov": _2, "org": _2, "rep": _2, "tra": _2 }], "kr": [1, { "ac": _2, "ai": _2, "co": _2, "es": _2, "go": _2, "hs": _2, "io": _2, "it": _2, "kg": _2, "me": _2, "mil": _2, "ms": _2, "ne": _2, "or": _2, "pe": _2, "re": _2, "sc": _2, "busan": _2, "chungbuk": _2, "chungnam": _2, "daegu": _2, "daejeon": _2, "gangwon": _2, "gwangju": _2, "gyeongbuk": _2, "gyeonggi": _2, "gyeongnam": _2, "incheon": _2, "jeju": _2, "jeonbuk": _2, "jeonnam": _2, "seoul": _2, "ulsan": _2, "c01": _3, "eliv-api": _3, "eliv-cdn": _3, "eliv-dns": _3, "mmv": _3, "vki": _3 }], "kw": [1, { "com": _2, "edu": _2, "emb": _2, "gov": _2, "ind": _2, "net": _2, "org": _2 }], "ky": _47, "kz": [1, { "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "jcloud": _3 }], "la": [1, { "com": _2, "edu": _2, "gov": _2, "info": _2, "int": _2, "net": _2, "org": _2, "per": _2, "bnr": _3 }], "lb": _4, "lc": [1, { "co": _2, "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2, "oy": _3 }], "li": _2, "lk": [1, { "ac": _2, "assn": _2, "com": _2, "edu": _2, "gov": _2, "grp": _2, "hotel": _2, "int": _2, "ltd": _2, "net": _2, "ngo": _2, "org": _2, "sch": _2, "soc": _2, "web": _2 }], "lr": _4, "ls": [1, { "ac": _2, "biz": _2, "co": _2, "edu": _2, "gov": _2, "info": _2, "net": _2, "org": _2, "sc": _2 }], "lt": _10, "lu": [1, { "123website": _3 }], "lv": [1, { "asn": _2, "com": _2, "conf": _2, "edu": _2, "gov": _2, "id": _2, "mil": _2, "net": _2, "org": _2 }], "ly": [1, { "com": _2, "edu": _2, "gov": _2, "id": _2, "med": _2, "net": _2, "org": _2, "plc": _2, "sch": _2 }], "ma": [1, { "ac": _2, "co": _2, "gov": _2, "net": _2, "org": _2, "press": _2 }], "mc": [1, { "asso": _2, "tm": _2 }], "md": [1, { "ir": _3 }], "me": [1, { "ac": _2, "co": _2, "edu": _2, "gov": _2, "its": _2, "net": _2, "org": _2, "priv": _2, "c66": _3, "craft": _3, "edgestack": _3, "filegear": _3, "filegear-sg": _3, "lohmus": _3, "barsy": _3, "mcdir": _3, "brasilia": _3, "ddns": _3, "dnsfor": _3, "hopto": _3, "loginto": _3, "noip": _3, "webhop": _3, "soundcast": _3, "tcp4": _3, "vp4": _3, "diskstation": _3, "dscloud": _3, "i234": _3, "myds": _3, "synology": _3, "transip": _46, "nohost": _3 }], "mg": [1, { "co": _2, "com": _2, "edu": _2, "gov": _2, "mil": _2, "nom": _2, "org": _2, "prd": _2 }], "mh": _2, "mil": _2, "mk": [1, { "com": _2, "edu": _2, "gov": _2, "inf": _2, "name": _2, "net": _2, "org": _2 }], "ml": [1, { "ac": _2, "art": _2, "asso": _2, "com": _2, "edu": _2, "gouv": _2, "gov": _2, "info": _2, "inst": _2, "net": _2, "org": _2, "pr": _2, "presse": _2 }], "mm": _21, "mn": [1, { "edu": _2, "gov": _2, "org": _2, "nyc": _3 }], "mo": _4, "mobi": [1, { "barsy": _3, "dscloud": _3 }], "mp": [1, { "ju": _3 }], "mq": _2, "mr": _10, "ms": [1, { "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2, "minisite": _3 }], "mt": _47, "mu": [1, { "ac": _2, "co": _2, "com": _2, "gov": _2, "net": _2, "or": _2, "org": _2 }], "museum": _2, "mv": [1, { "aero": _2, "biz": _2, "com": _2, "coop": _2, "edu": _2, "gov": _2, "info": _2, "int": _2, "mil": _2, "museum": _2, "name": _2, "net": _2, "org": _2, "pro": _2 }], "mw": [1, { "ac": _2, "biz": _2, "co": _2, "com": _2, "coop": _2, "edu": _2, "gov": _2, "int": _2, "net": _2, "org": _2 }], "mx": [1, { "com": _2, "edu": _2, "gob": _2, "net": _2, "org": _2 }], "my": [1, { "biz": _2, "com": _2, "edu": _2, "gov": _2, "mil": _2, "name": _2, "net": _2, "org": _2 }], "mz": [1, { "ac": _2, "adv": _2, "co": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2 }], "na": [1, { "alt": _2, "co": _2, "com": _2, "gov": _2, "net": _2, "org": _2 }], "name": [1, { "her": _63, "his": _63, "ispmanager": _3, "keenetic": _3 }], "nc": [1, { "asso": _2, "nom": _2 }], "ne": _2, "net": [1, { "adobeaemcloud": _3, "adobeio-static": _3, "adobeioruntime": _3, "akadns": _3, "akamai": _3, "akamai-staging": _3, "akamaiedge": _3, "akamaiedge-staging": _3, "akamaihd": _3, "akamaihd-staging": _3, "akamaiorigin": _3, "akamaiorigin-staging": _3, "akamaized": _3, "akamaized-staging": _3, "edgekey": _3, "edgekey-staging": _3, "edgesuite": _3, "edgesuite-staging": _3, "alwaysdata": _3, "myamaze": _3, "cloudfront": _3, "appudo": _3, "atlassian-dev": [0, { "prod": _55 }], "myfritz": _3, "shopselect": _3, "blackbaudcdn": _3, "boomla": _3, "bplaced": _3, "square7": _3, "cdn77": [0, { "r": _3 }], "cdn77-ssl": _3, "gb": _3, "hu": _3, "jp": _3, "se": _3, "uk": _3, "clickrising": _3, "ddns-ip": _3, "dns-cloud": _3, "dns-dynamic": _3, "cloudaccess": _3, "cloudflare": [2, { "cdn": _3 }], "cloudflareanycast": _55, "cloudflarecn": _55, "cloudflareglobal": _55, "ctfcloud": _3, "feste-ip": _3, "knx-server": _3, "static-access": _3, "cryptonomic": _6, "dattolocal": _3, "mydatto": _3, "debian": _3, "definima": _3, "deno": _3, "icp": _6, "de5": _3, "at-band-camp": _3, "blogdns": _3, "broke-it": _3, "buyshouses": _3, "dnsalias": _3, "dnsdojo": _3, "does-it": _3, "dontexist": _3, "dynalias": _3, "dynathome": _3, "endofinternet": _3, "from-az": _3, "from-co": _3, "from-la": _3, "from-ny": _3, "gets-it": _3, "ham-radio-op": _3, "homeftp": _3, "homeip": _3, "homelinux": _3, "homeunix": _3, "in-the-band": _3, "is-a-chef": _3, "is-a-geek": _3, "isa-geek": _3, "kicks-ass": _3, "office-on-the": _3, "podzone": _3, "scrapper-site": _3, "selfip": _3, "sells-it": _3, "servebbs": _3, "serveftp": _3, "thruhere": _3, "webhop": _3, "casacam": _3, "dynu": _3, "dynuddns": _3, "mysynology": _3, "opik": _3, "spryt": _3, "dynv6": _3, "twmail": _3, "ru": _3, "channelsdvr": [2, { "u": _3 }], "fastly": [0, { "freetls": _3, "map": _3, "prod": [0, { "a": _3, "global": _3 }], "ssl": [0, { "a": _3, "b": _3, "global": _3 }] }], "fastlylb": [2, { "map": _3 }], "keyword-on": _3, "live-on": _3, "server-on": _3, "cdn-edges": _3, "heteml": _3, "cloudfunctions": _3, "grafana-dev": _3, "iobb": _3, "moonscale": _3, "in-dsl": _3, "in-vpn": _3, "oninferno": _3, "botdash": _3, "apps-1and1": _3, "ipifony": _3, "cloudjiffy": [2, { "fra1-de": _3, "west1-us": _3 }], "elastx": [0, { "jls-sto1": _3, "jls-sto2": _3, "jls-sto3": _3 }], "massivegrid": [0, { "paas": [0, { "fr-1": _3, "lon-1": _3, "lon-2": _3, "ny-1": _3, "ny-2": _3, "sg-1": _3 }] }], "saveincloud": [0, { "jelastic": _3, "nordeste-idc": _3 }], "scaleforce": _48, "kinghost": _3, "uni5": _3, "krellian": _3, "ggff": _3, "localto": _6, "barsy": _3, "luyani": _3, "memset": _3, "azure-api": _3, "azure-mobile": _3, "azureedge": _3, "azurefd": _3, "azurestaticapps": [2, { "1": _3, "2": _3, "3": _3, "4": _3, "5": _3, "6": _3, "7": _3, "centralus": _3, "eastasia": _3, "eastus2": _3, "westeurope": _3, "westus2": _3 }], "azurewebsites": _3, "cloudapp": _3, "trafficmanager": _3, "usgovcloudapi": _65, "usgovcloudapp": _3, "usgovtrafficmanager": _3, "windows": _65, "mynetname": [0, { "sn": _3 }], "routingthecloud": _3, "bounceme": _3, "ddns": _3, "eating-organic": _3, "mydissent": _3, "myeffect": _3, "mymediapc": _3, "mypsx": _3, "mysecuritycamera": _3, "nhlfan": _3, "no-ip": _3, "pgafan": _3, "privatizehealthinsurance": _3, "redirectme": _3, "serveblog": _3, "serveminecraft": _3, "sytes": _3, "dnsup": _3, "hicam": _3, "now-dns": _3, "ownip": _3, "vpndns": _3, "cloudycluster": _3, "ovh": [0, { "hosting": _6, "webpaas": _6 }], "rackmaze": _3, "myradweb": _3, "in": _3, "subsc-pay": _3, "squares": _3, "schokokeks": _3, "firewall-gateway": _3, "seidat": _3, "senseering": _3, "siteleaf": _3, "mafelo": _3, "myspreadshop": _3, "vps-host": [2, { "jelastic": [0, { "atl": _3, "njs": _3, "ric": _3 }] }], "srcf": [0, { "soc": _3, "user": _3 }], "supabase": _3, "dsmynas": _3, "familyds": _3, "ts": [2, { "c": _6 }], "torproject": [2, { "pages": _3 }], "tunnelmole": _3, "vusercontent": _3, "reserve-online": _3, "localcert": _3, "community-pro": _3, "meinforum": _3, "yandexcloud": [2, { "storage": _3, "website": _3 }], "za": _3, "zabc": _3 }], "nf": [1, { "arts": _2, "com": _2, "firm": _2, "info": _2, "net": _2, "other": _2, "per": _2, "rec": _2, "store": _2, "web": _2 }], "ng": [1, { "com": _2, "edu": _2, "gov": _2, "i": _2, "mil": _2, "mobi": _2, "name": _2, "net": _2, "org": _2, "sch": _2, "biz": [2, { "co": _3, "dl": _3, "go": _3, "lg": _3, "on": _3 }], "col": _3, "firm": _3, "gen": _3, "ltd": _3, "ngo": _3, "plc": _3 }], "ni": [1, { "ac": _2, "biz": _2, "co": _2, "com": _2, "edu": _2, "gob": _2, "in": _2, "info": _2, "int": _2, "mil": _2, "net": _2, "nom": _2, "org": _2, "web": _2 }], "nl": [1, { "co": _3, "hosting-cluster": _3, "gov": _3, "khplay": _3, "123website": _3, "myspreadshop": _3, "transurl": _6, "cistron": _3, "demon": _3 }], "no": [1, { "fhs": _2, "folkebibl": _2, "fylkesbibl": _2, "idrett": _2, "museum": _2, "priv": _2, "vgs": _2, "dep": _2, "herad": _2, "kommune": _2, "mil": _2, "stat": _2, "aa": _66, "ah": _66, "bu": _66, "fm": _66, "hl": _66, "hm": _66, "jan-mayen": _66, "mr": _66, "nl": _66, "nt": _66, "of": _66, "ol": _66, "oslo": _66, "rl": _66, "sf": _66, "st": _66, "svalbard": _66, "tm": _66, "tr": _66, "va": _66, "vf": _66, "akrehamn": _2, "xn--krehamn-dxa": _2, "\xE5krehamn": _2, "algard": _2, "xn--lgrd-poac": _2, "\xE5lg\xE5rd": _2, "arna": _2, "bronnoysund": _2, "xn--brnnysund-m8ac": _2, "br\xF8nn\xF8ysund": _2, "brumunddal": _2, "bryne": _2, "drobak": _2, "xn--drbak-wua": _2, "dr\xF8bak": _2, "egersund": _2, "fetsund": _2, "floro": _2, "xn--flor-jra": _2, "flor\xF8": _2, "fredrikstad": _2, "hokksund": _2, "honefoss": _2, "xn--hnefoss-q1a": _2, "h\xF8nefoss": _2, "jessheim": _2, "jorpeland": _2, "xn--jrpeland-54a": _2, "j\xF8rpeland": _2, "kirkenes": _2, "kopervik": _2, "krokstadelva": _2, "langevag": _2, "xn--langevg-jxa": _2, "langev\xE5g": _2, "leirvik": _2, "mjondalen": _2, "xn--mjndalen-64a": _2, "mj\xF8ndalen": _2, "mo-i-rana": _2, "mosjoen": _2, "xn--mosjen-eya": _2, "mosj\xF8en": _2, "nesoddtangen": _2, "orkanger": _2, "osoyro": _2, "xn--osyro-wua": _2, "os\xF8yro": _2, "raholt": _2, "xn--rholt-mra": _2, "r\xE5holt": _2, "sandnessjoen": _2, "xn--sandnessjen-ogb": _2, "sandnessj\xF8en": _2, "skedsmokorset": _2, "slattum": _2, "spjelkavik": _2, "stathelle": _2, "stavern": _2, "stjordalshalsen": _2, "xn--stjrdalshalsen-sqb": _2, "stj\xF8rdalshalsen": _2, "tananger": _2, "tranby": _2, "vossevangen": _2, "aarborte": _2, "aejrie": _2, "afjord": _2, "xn--fjord-lra": _2, "\xE5fjord": _2, "agdenes": _2, "akershus": _67, "aknoluokta": _2, "xn--koluokta-7ya57h": _2, "\xE1k\u014Boluokta": _2, "al": _2, "xn--l-1fa": _2, "\xE5l": _2, "alaheadju": _2, "xn--laheadju-7ya": _2, "\xE1laheadju": _2, "alesund": _2, "xn--lesund-hua": _2, "\xE5lesund": _2, "alstahaug": _2, "alta": _2, "xn--lt-liac": _2, "\xE1lt\xE1": _2, "alvdal": _2, "amli": _2, "xn--mli-tla": _2, "\xE5mli": _2, "amot": _2, "xn--mot-tla": _2, "\xE5mot": _2, "andasuolo": _2, "andebu": _2, "andoy": _2, "xn--andy-ira": _2, "and\xF8y": _2, "ardal": _2, "xn--rdal-poa": _2, "\xE5rdal": _2, "aremark": _2, "arendal": _2, "xn--s-1fa": _2, "\xE5s": _2, "aseral": _2, "xn--seral-lra": _2, "\xE5seral": _2, "asker": _2, "askim": _2, "askoy": _2, "xn--asky-ira": _2, "ask\xF8y": _2, "askvoll": _2, "asnes": _2, "xn--snes-poa": _2, "\xE5snes": _2, "audnedaln": _2, "aukra": _2, "aure": _2, "aurland": _2, "aurskog-holand": _2, "xn--aurskog-hland-jnb": _2, "aurskog-h\xF8land": _2, "austevoll": _2, "austrheim": _2, "averoy": _2, "xn--avery-yua": _2, "aver\xF8y": _2, "badaddja": _2, "xn--bdddj-mrabd": _2, "b\xE5d\xE5ddj\xE5": _2, "xn--brum-voa": _2, "b\xE6rum": _2, "bahcavuotna": _2, "xn--bhcavuotna-s4a": _2, "b\xE1hcavuotna": _2, "bahccavuotna": _2, "xn--bhccavuotna-k7a": _2, "b\xE1hccavuotna": _2, "baidar": _2, "xn--bidr-5nac": _2, "b\xE1id\xE1r": _2, "bajddar": _2, "xn--bjddar-pta": _2, "b\xE1jddar": _2, "balat": _2, "xn--blt-elab": _2, "b\xE1l\xE1t": _2, "balestrand": _2, "ballangen": _2, "balsfjord": _2, "bamble": _2, "bardu": _2, "barum": _2, "batsfjord": _2, "xn--btsfjord-9za": _2, "b\xE5tsfjord": _2, "bearalvahki": _2, "xn--bearalvhki-y4a": _2, "bearalv\xE1hki": _2, "beardu": _2, "beiarn": _2, "berg": _2, "bergen": _2, "berlevag": _2, "xn--berlevg-jxa": _2, "berlev\xE5g": _2, "bievat": _2, "xn--bievt-0qa": _2, "biev\xE1t": _2, "bindal": _2, "birkenes": _2, "bjerkreim": _2, "bjugn": _2, "bodo": _2, "xn--bod-2na": _2, "bod\xF8": _2, "bokn": _2, "bomlo": _2, "xn--bmlo-gra": _2, "b\xF8mlo": _2, "bremanger": _2, "bronnoy": _2, "xn--brnny-wuac": _2, "br\xF8nn\xF8y": _2, "budejju": _2, "buskerud": _67, "bygland": _2, "bykle": _2, "cahcesuolo": _2, "xn--hcesuolo-7ya35b": _2, "\u010D\xE1hcesuolo": _2, "davvenjarga": _2, "xn--davvenjrga-y4a": _2, "davvenj\xE1rga": _2, "davvesiida": _2, "deatnu": _2, "dielddanuorri": _2, "divtasvuodna": _2, "divttasvuotna": _2, "donna": _2, "xn--dnna-gra": _2, "d\xF8nna": _2, "dovre": _2, "drammen": _2, "drangedal": _2, "dyroy": _2, "xn--dyry-ira": _2, "dyr\xF8y": _2, "eid": _2, "eidfjord": _2, "eidsberg": _2, "eidskog": _2, "eidsvoll": _2, "eigersund": _2, "elverum": _2, "enebakk": _2, "engerdal": _2, "etne": _2, "etnedal": _2, "evenassi": _2, "xn--eveni-0qa01ga": _2, "even\xE1\u0161\u0161i": _2, "evenes": _2, "evje-og-hornnes": _2, "farsund": _2, "fauske": _2, "fedje": _2, "fet": _2, "finnoy": _2, "xn--finny-yua": _2, "finn\xF8y": _2, "fitjar": _2, "fjaler": _2, "fjell": _2, "fla": _2, "xn--fl-zia": _2, "fl\xE5": _2, "flakstad": _2, "flatanger": _2, "flekkefjord": _2, "flesberg": _2, "flora": _2, "folldal": _2, "forde": _2, "xn--frde-gra": _2, "f\xF8rde": _2, "forsand": _2, "fosnes": _2, "xn--frna-woa": _2, "fr\xE6na": _2, "frana": _2, "frei": _2, "frogn": _2, "froland": _2, "frosta": _2, "froya": _2, "xn--frya-hra": _2, "fr\xF8ya": _2, "fuoisku": _2, "fuossko": _2, "fusa": _2, "fyresdal": _2, "gaivuotna": _2, "xn--givuotna-8ya": _2, "g\xE1ivuotna": _2, "galsa": _2, "xn--gls-elac": _2, "g\xE1ls\xE1": _2, "gamvik": _2, "gangaviika": _2, "xn--ggaviika-8ya47h": _2, "g\xE1\u014Bgaviika": _2, "gaular": _2, "gausdal": _2, "giehtavuoatna": _2, "gildeskal": _2, "xn--gildeskl-g0a": _2, "gildesk\xE5l": _2, "giske": _2, "gjemnes": _2, "gjerdrum": _2, "gjerstad": _2, "gjesdal": _2, "gjovik": _2, "xn--gjvik-wua": _2, "gj\xF8vik": _2, "gloppen": _2, "gol": _2, "gran": _2, "grane": _2, "granvin": _2, "gratangen": _2, "grimstad": _2, "grong": _2, "grue": _2, "gulen": _2, "guovdageaidnu": _2, "ha": _2, "xn--h-2fa": _2, "h\xE5": _2, "habmer": _2, "xn--hbmer-xqa": _2, "h\xE1bmer": _2, "hadsel": _2, "xn--hgebostad-g3a": _2, "h\xE6gebostad": _2, "hagebostad": _2, "halden": _2, "halsa": _2, "hamar": _2, "hamaroy": _2, "hammarfeasta": _2, "xn--hmmrfeasta-s4ac": _2, "h\xE1mm\xE1rfeasta": _2, "hammerfest": _2, "hapmir": _2, "xn--hpmir-xqa": _2, "h\xE1pmir": _2, "haram": _2, "hareid": _2, "harstad": _2, "hasvik": _2, "hattfjelldal": _2, "haugesund": _2, "hedmark": [0, { "os": _2, "valer": _2, "xn--vler-qoa": _2, "v\xE5ler": _2 }], "hemne": _2, "hemnes": _2, "hemsedal": _2, "hitra": _2, "hjartdal": _2, "hjelmeland": _2, "hobol": _2, "xn--hobl-ira": _2, "hob\xF8l": _2, "hof": _2, "hol": _2, "hole": _2, "holmestrand": _2, "holtalen": _2, "xn--holtlen-hxa": _2, "holt\xE5len": _2, "hordaland": [0, { "os": _2 }], "hornindal": _2, "horten": _2, "hoyanger": _2, "xn--hyanger-q1a": _2, "h\xF8yanger": _2, "hoylandet": _2, "xn--hylandet-54a": _2, "h\xF8ylandet": _2, "hurdal": _2, "hurum": _2, "hvaler": _2, "hyllestad": _2, "ibestad": _2, "inderoy": _2, "xn--indery-fya": _2, "inder\xF8y": _2, "iveland": _2, "ivgu": _2, "jevnaker": _2, "jolster": _2, "xn--jlster-bya": _2, "j\xF8lster": _2, "jondal": _2, "kafjord": _2, "xn--kfjord-iua": _2, "k\xE5fjord": _2, "karasjohka": _2, "xn--krjohka-hwab49j": _2, "k\xE1r\xE1\u0161johka": _2, "karasjok": _2, "karlsoy": _2, "karmoy": _2, "xn--karmy-yua": _2, "karm\xF8y": _2, "kautokeino": _2, "klabu": _2, "xn--klbu-woa": _2, "kl\xE6bu": _2, "klepp": _2, "kongsberg": _2, "kongsvinger": _2, "kraanghke": _2, "xn--kranghke-b0a": _2, "kr\xE5anghke": _2, "kragero": _2, "xn--krager-gya": _2, "krager\xF8": _2, "kristiansand": _2, "kristiansund": _2, "krodsherad": _2, "xn--krdsherad-m8a": _2, "kr\xF8dsherad": _2, "xn--kvfjord-nxa": _2, "kv\xE6fjord": _2, "xn--kvnangen-k0a": _2, "kv\xE6nangen": _2, "kvafjord": _2, "kvalsund": _2, "kvam": _2, "kvanangen": _2, "kvinesdal": _2, "kvinnherad": _2, "kviteseid": _2, "kvitsoy": _2, "xn--kvitsy-fya": _2, "kvits\xF8y": _2, "laakesvuemie": _2, "xn--lrdal-sra": _2, "l\xE6rdal": _2, "lahppi": _2, "xn--lhppi-xqa": _2, "l\xE1hppi": _2, "lardal": _2, "larvik": _2, "lavagis": _2, "lavangen": _2, "leangaviika": _2, "xn--leagaviika-52b": _2, "lea\u014Bgaviika": _2, "lebesby": _2, "leikanger": _2, "leirfjord": _2, "leka": _2, "leksvik": _2, "lenvik": _2, "lerdal": _2, "lesja": _2, "levanger": _2, "lier": _2, "lierne": _2, "lillehammer": _2, "lillesand": _2, "lindas": _2, "xn--linds-pra": _2, "lind\xE5s": _2, "lindesnes": _2, "loabat": _2, "xn--loabt-0qa": _2, "loab\xE1t": _2, "lodingen": _2, "xn--ldingen-q1a": _2, "l\xF8dingen": _2, "lom": _2, "loppa": _2, "lorenskog": _2, "xn--lrenskog-54a": _2, "l\xF8renskog": _2, "loten": _2, "xn--lten-gra": _2, "l\xF8ten": _2, "lund": _2, "lunner": _2, "luroy": _2, "xn--lury-ira": _2, "lur\xF8y": _2, "luster": _2, "lyngdal": _2, "lyngen": _2, "malatvuopmi": _2, "xn--mlatvuopmi-s4a": _2, "m\xE1latvuopmi": _2, "malselv": _2, "xn--mlselv-iua": _2, "m\xE5lselv": _2, "malvik": _2, "mandal": _2, "marker": _2, "marnardal": _2, "masfjorden": _2, "masoy": _2, "xn--msy-ula0h": _2, "m\xE5s\xF8y": _2, "matta-varjjat": _2, "xn--mtta-vrjjat-k7af": _2, "m\xE1tta-v\xE1rjjat": _2, "meland": _2, "meldal": _2, "melhus": _2, "meloy": _2, "xn--mely-ira": _2, "mel\xF8y": _2, "meraker": _2, "xn--merker-kua": _2, "mer\xE5ker": _2, "midsund": _2, "midtre-gauldal": _2, "moareke": _2, "xn--moreke-jua": _2, "mo\xE5reke": _2, "modalen": _2, "modum": _2, "molde": _2, "more-og-romsdal": [0, { "heroy": _2, "sande": _2 }], "xn--mre-og-romsdal-qqb": [0, { "xn--hery-ira": _2, "sande": _2 }], "m\xF8re-og-romsdal": [0, { "her\xF8y": _2, "sande": _2 }], "moskenes": _2, "moss": _2, "muosat": _2, "xn--muost-0qa": _2, "muos\xE1t": _2, "naamesjevuemie": _2, "xn--nmesjevuemie-tcba": _2, "n\xE5\xE5mesjevuemie": _2, "xn--nry-yla5g": _2, "n\xE6r\xF8y": _2, "namdalseid": _2, "namsos": _2, "namsskogan": _2, "nannestad": _2, "naroy": _2, "narviika": _2, "narvik": _2, "naustdal": _2, "navuotna": _2, "xn--nvuotna-hwa": _2, "n\xE1vuotna": _2, "nedre-eiker": _2, "nesna": _2, "nesodden": _2, "nesseby": _2, "nesset": _2, "nissedal": _2, "nittedal": _2, "nord-aurdal": _2, "nord-fron": _2, "nord-odal": _2, "norddal": _2, "nordkapp": _2, "nordland": [0, { "bo": _2, "xn--b-5ga": _2, "b\xF8": _2, "heroy": _2, "xn--hery-ira": _2, "her\xF8y": _2 }], "nordre-land": _2, "nordreisa": _2, "nore-og-uvdal": _2, "notodden": _2, "notteroy": _2, "xn--nttery-byae": _2, "n\xF8tter\xF8y": _2, "odda": _2, "oksnes": _2, "xn--ksnes-uua": _2, "\xF8ksnes": _2, "omasvuotna": _2, "oppdal": _2, "oppegard": _2, "xn--oppegrd-ixa": _2, "oppeg\xE5rd": _2, "orkdal": _2, "orland": _2, "xn--rland-uua": _2, "\xF8rland": _2, "orskog": _2, "xn--rskog-uua": _2, "\xF8rskog": _2, "orsta": _2, "xn--rsta-fra": _2, "\xF8rsta": _2, "osen": _2, "osteroy": _2, "xn--ostery-fya": _2, "oster\xF8y": _2, "ostfold": [0, { "valer": _2 }], "xn--stfold-9xa": [0, { "xn--vler-qoa": _2 }], "\xF8stfold": [0, { "v\xE5ler": _2 }], "ostre-toten": _2, "xn--stre-toten-zcb": _2, "\xF8stre-toten": _2, "overhalla": _2, "ovre-eiker": _2, "xn--vre-eiker-k8a": _2, "\xF8vre-eiker": _2, "oyer": _2, "xn--yer-zna": _2, "\xF8yer": _2, "oygarden": _2, "xn--ygarden-p1a": _2, "\xF8ygarden": _2, "oystre-slidre": _2, "xn--ystre-slidre-ujb": _2, "\xF8ystre-slidre": _2, "porsanger": _2, "porsangu": _2, "xn--porsgu-sta26f": _2, "pors\xE1\u014Bgu": _2, "porsgrunn": _2, "rade": _2, "xn--rde-ula": _2, "r\xE5de": _2, "radoy": _2, "xn--rady-ira": _2, "rad\xF8y": _2, "xn--rlingen-mxa": _2, "r\xE6lingen": _2, "rahkkeravju": _2, "xn--rhkkervju-01af": _2, "r\xE1hkker\xE1vju": _2, "raisa": _2, "xn--risa-5na": _2, "r\xE1isa": _2, "rakkestad": _2, "ralingen": _2, "rana": _2, "randaberg": _2, "rauma": _2, "rendalen": _2, "rennebu": _2, "rennesoy": _2, "xn--rennesy-v1a": _2, "rennes\xF8y": _2, "rindal": _2, "ringebu": _2, "ringerike": _2, "ringsaker": _2, "risor": _2, "xn--risr-ira": _2, "ris\xF8r": _2, "rissa": _2, "roan": _2, "rodoy": _2, "xn--rdy-0nab": _2, "r\xF8d\xF8y": _2, "rollag": _2, "romsa": _2, "romskog": _2, "xn--rmskog-bya": _2, "r\xF8mskog": _2, "roros": _2, "xn--rros-gra": _2, "r\xF8ros": _2, "rost": _2, "xn--rst-0na": _2, "r\xF8st": _2, "royken": _2, "xn--ryken-vua": _2, "r\xF8yken": _2, "royrvik": _2, "xn--ryrvik-bya": _2, "r\xF8yrvik": _2, "ruovat": _2, "rygge": _2, "salangen": _2, "salat": _2, "xn--slat-5na": _2, "s\xE1lat": _2, "xn--slt-elab": _2, "s\xE1l\xE1t": _2, "saltdal": _2, "samnanger": _2, "sandefjord": _2, "sandnes": _2, "sandoy": _2, "xn--sandy-yua": _2, "sand\xF8y": _2, "sarpsborg": _2, "sauda": _2, "sauherad": _2, "sel": _2, "selbu": _2, "selje": _2, "seljord": _2, "siellak": _2, "sigdal": _2, "siljan": _2, "sirdal": _2, "skanit": _2, "xn--sknit-yqa": _2, "sk\xE1nit": _2, "skanland": _2, "xn--sknland-fxa": _2, "sk\xE5nland": _2, "skaun": _2, "skedsmo": _2, "ski": _2, "skien": _2, "skierva": _2, "xn--skierv-uta": _2, "skierv\xE1": _2, "skiptvet": _2, "skjak": _2, "xn--skjk-soa": _2, "skj\xE5k": _2, "skjervoy": _2, "xn--skjervy-v1a": _2, "skjerv\xF8y": _2, "skodje": _2, "smola": _2, "xn--smla-hra": _2, "sm\xF8la": _2, "snaase": _2, "xn--snase-nra": _2, "sn\xE5ase": _2, "snasa": _2, "xn--snsa-roa": _2, "sn\xE5sa": _2, "snillfjord": _2, "snoasa": _2, "sogndal": _2, "sogne": _2, "xn--sgne-gra": _2, "s\xF8gne": _2, "sokndal": _2, "sola": _2, "solund": _2, "somna": _2, "xn--smna-gra": _2, "s\xF8mna": _2, "sondre-land": _2, "xn--sndre-land-0cb": _2, "s\xF8ndre-land": _2, "songdalen": _2, "sor-aurdal": _2, "xn--sr-aurdal-l8a": _2, "s\xF8r-aurdal": _2, "sor-fron": _2, "xn--sr-fron-q1a": _2, "s\xF8r-fron": _2, "sor-odal": _2, "xn--sr-odal-q1a": _2, "s\xF8r-odal": _2, "sor-varanger": _2, "xn--sr-varanger-ggb": _2, "s\xF8r-varanger": _2, "sorfold": _2, "xn--srfold-bya": _2, "s\xF8rfold": _2, "sorreisa": _2, "xn--srreisa-q1a": _2, "s\xF8rreisa": _2, "sortland": _2, "sorum": _2, "xn--srum-gra": _2, "s\xF8rum": _2, "spydeberg": _2, "stange": _2, "stavanger": _2, "steigen": _2, "steinkjer": _2, "stjordal": _2, "xn--stjrdal-s1a": _2, "stj\xF8rdal": _2, "stokke": _2, "stor-elvdal": _2, "stord": _2, "stordal": _2, "storfjord": _2, "strand": _2, "stranda": _2, "stryn": _2, "sula": _2, "suldal": _2, "sund": _2, "sunndal": _2, "surnadal": _2, "sveio": _2, "svelvik": _2, "sykkylven": _2, "tana": _2, "telemark": [0, { "bo": _2, "xn--b-5ga": _2, "b\xF8": _2 }], "time": _2, "tingvoll": _2, "tinn": _2, "tjeldsund": _2, "tjome": _2, "xn--tjme-hra": _2, "tj\xF8me": _2, "tokke": _2, "tolga": _2, "tonsberg": _2, "xn--tnsberg-q1a": _2, "t\xF8nsberg": _2, "torsken": _2, "xn--trna-woa": _2, "tr\xE6na": _2, "trana": _2, "tranoy": _2, "xn--trany-yua": _2, "tran\xF8y": _2, "troandin": _2, "trogstad": _2, "xn--trgstad-r1a": _2, "tr\xF8gstad": _2, "tromsa": _2, "tromso": _2, "xn--troms-zua": _2, "troms\xF8": _2, "trondheim": _2, "trysil": _2, "tvedestrand": _2, "tydal": _2, "tynset": _2, "tysfjord": _2, "tysnes": _2, "xn--tysvr-vra": _2, "tysv\xE6r": _2, "tysvar": _2, "ullensaker": _2, "ullensvang": _2, "ulvik": _2, "unjarga": _2, "xn--unjrga-rta": _2, "unj\xE1rga": _2, "utsira": _2, "vaapste": _2, "vadso": _2, "xn--vads-jra": _2, "vads\xF8": _2, "xn--vry-yla5g": _2, "v\xE6r\xF8y": _2, "vaga": _2, "xn--vg-yiab": _2, "v\xE5g\xE5": _2, "vagan": _2, "xn--vgan-qoa": _2, "v\xE5gan": _2, "vagsoy": _2, "xn--vgsy-qoa0j": _2, "v\xE5gs\xF8y": _2, "vaksdal": _2, "valle": _2, "vang": _2, "vanylven": _2, "vardo": _2, "xn--vard-jra": _2, "vard\xF8": _2, "varggat": _2, "xn--vrggt-xqad": _2, "v\xE1rgg\xE1t": _2, "varoy": _2, "vefsn": _2, "vega": _2, "vegarshei": _2, "xn--vegrshei-c0a": _2, "veg\xE5rshei": _2, "vennesla": _2, "verdal": _2, "verran": _2, "vestby": _2, "vestfold": [0, { "sande": _2 }], "vestnes": _2, "vestre-slidre": _2, "vestre-toten": _2, "vestvagoy": _2, "xn--vestvgy-ixa6o": _2, "vestv\xE5g\xF8y": _2, "vevelstad": _2, "vik": _2, "vikna": _2, "vindafjord": _2, "voagat": _2, "volda": _2, "voss": _2, "co": _3, "123hjemmeside": _3, "myspreadshop": _3 }], "np": _21, "nr": _60, "nu": [1, { "merseine": _3, "mine": _3, "shacknet": _3, "enterprisecloud": _3 }], "nz": [1, { "ac": _2, "co": _2, "cri": _2, "geek": _2, "gen": _2, "govt": _2, "health": _2, "iwi": _2, "kiwi": _2, "maori": _2, "xn--mori-qsa": _2, "m\u0101ori": _2, "mil": _2, "net": _2, "org": _2, "parliament": _2, "school": _2, "cloudns": _3 }], "om": [1, { "co": _2, "com": _2, "edu": _2, "gov": _2, "med": _2, "museum": _2, "net": _2, "org": _2, "pro": _2 }], "onion": _2, "org": [1, { "altervista": _3, "pimienta": _3, "poivron": _3, "potager": _3, "sweetpepper": _3, "cdn77": [0, { "c": _3, "rsc": _3 }], "cdn77-secure": [0, { "origin": [0, { "ssl": _3 }] }], "ae": _3, "cloudns": _3, "ip-dynamic": _3, "ddnss": _3, "dpdns": _3, "duckdns": _3, "tunk": _3, "blogdns": _3, "blogsite": _3, "boldlygoingnowhere": _3, "dnsalias": _3, "dnsdojo": _3, "doesntexist": _3, "dontexist": _3, "doomdns": _3, "dvrdns": _3, "dynalias": _3, "dyndns": [2, { "go": _3, "home": _3 }], "endofinternet": _3, "endoftheinternet": _3, "from-me": _3, "game-host": _3, "gotdns": _3, "hobby-site": _3, "homedns": _3, "homeftp": _3, "homelinux": _3, "homeunix": _3, "is-a-bruinsfan": _3, "is-a-candidate": _3, "is-a-celticsfan": _3, "is-a-chef": _3, "is-a-geek": _3, "is-a-knight": _3, "is-a-linux-user": _3, "is-a-patsfan": _3, "is-a-soxfan": _3, "is-found": _3, "is-lost": _3, "is-saved": _3, "is-very-bad": _3, "is-very-evil": _3, "is-very-good": _3, "is-very-nice": _3, "is-very-sweet": _3, "isa-geek": _3, "kicks-ass": _3, "misconfused": _3, "podzone": _3, "readmyblog": _3, "selfip": _3, "sellsyourhome": _3, "servebbs": _3, "serveftp": _3, "servegame": _3, "stuff-4-sale": _3, "webhop": _3, "accesscam": _3, "camdvr": _3, "freeddns": _3, "mywire": _3, "roxa": _3, "webredirect": _3, "twmail": _3, "eu": [2, { "al": _3, "asso": _3, "at": _3, "au": _3, "be": _3, "bg": _3, "ca": _3, "cd": _3, "ch": _3, "cn": _3, "cy": _3, "cz": _3, "de": _3, "dk": _3, "edu": _3, "ee": _3, "es": _3, "fi": _3, "fr": _3, "gr": _3, "hr": _3, "hu": _3, "ie": _3, "il": _3, "in": _3, "int": _3, "is": _3, "it": _3, "jp": _3, "kr": _3, "lt": _3, "lu": _3, "lv": _3, "me": _3, "mk": _3, "mt": _3, "my": _3, "net": _3, "ng": _3, "nl": _3, "no": _3, "nz": _3, "pl": _3, "pt": _3, "ro": _3, "ru": _3, "se": _3, "si": _3, "sk": _3, "tr": _3, "uk": _3, "us": _3 }], "fedorainfracloud": _3, "fedorapeople": _3, "fedoraproject": [0, { "cloud": _3, "os": _45, "stg": [0, { "os": _45 }] }], "freedesktop": _3, "hatenadiary": _3, "hepforge": _3, "in-dsl": _3, "in-vpn": _3, "js": _3, "barsy": _3, "mayfirst": _3, "routingthecloud": _3, "bmoattachments": _3, "cable-modem": _3, "collegefan": _3, "couchpotatofries": _3, "hopto": _3, "mlbfan": _3, "myftp": _3, "mysecuritycamera": _3, "nflfan": _3, "no-ip": _3, "read-books": _3, "ufcfan": _3, "zapto": _3, "dynserv": _3, "now-dns": _3, "is-local": _3, "httpbin": _3, "pubtls": _3, "jpn": _3, "my-firewall": _3, "myfirewall": _3, "spdns": _3, "small-web": _3, "dsmynas": _3, "familyds": _3, "teckids": _59, "tuxfamily": _3, "hk": _3, "us": _3, "toolforge": _3, "wmcloud": [2, { "beta": _3 }], "wmflabs": _3, "za": _3 }], "pa": [1, { "abo": _2, "ac": _2, "com": _2, "edu": _2, "gob": _2, "ing": _2, "med": _2, "net": _2, "nom": _2, "org": _2, "sld": _2 }], "pe": [1, { "com": _2, "edu": _2, "gob": _2, "mil": _2, "net": _2, "nom": _2, "org": _2 }], "pf": [1, { "com": _2, "edu": _2, "org": _2 }], "pg": _21, "ph": [1, { "com": _2, "edu": _2, "gov": _2, "i": _2, "mil": _2, "net": _2, "ngo": _2, "org": _2, "cloudns": _3 }], "pk": [1, { "ac": _2, "biz": _2, "com": _2, "edu": _2, "fam": _2, "gkp": _2, "gob": _2, "gog": _2, "gok": _2, "gop": _2, "gos": _2, "gov": _2, "net": _2, "org": _2, "web": _2 }], "pl": [1, { "com": _2, "net": _2, "org": _2, "agro": _2, "aid": _2, "atm": _2, "auto": _2, "biz": _2, "edu": _2, "gmina": _2, "gsm": _2, "info": _2, "mail": _2, "media": _2, "miasta": _2, "mil": _2, "nieruchomosci": _2, "nom": _2, "pc": _2, "powiat": _2, "priv": _2, "realestate": _2, "rel": _2, "sex": _2, "shop": _2, "sklep": _2, "sos": _2, "szkola": _2, "targi": _2, "tm": _2, "tourism": _2, "travel": _2, "turystyka": _2, "gov": [1, { "ap": _2, "griw": _2, "ic": _2, "is": _2, "kmpsp": _2, "konsulat": _2, "kppsp": _2, "kwp": _2, "kwpsp": _2, "mup": _2, "mw": _2, "oia": _2, "oirm": _2, "oke": _2, "oow": _2, "oschr": _2, "oum": _2, "pa": _2, "pinb": _2, "piw": _2, "po": _2, "pr": _2, "psp": _2, "psse": _2, "pup": _2, "rzgw": _2, "sa": _2, "sdn": _2, "sko": _2, "so": _2, "sr": _2, "starostwo": _2, "ug": _2, "ugim": _2, "um": _2, "umig": _2, "upow": _2, "uppo": _2, "us": _2, "uw": _2, "uzs": _2, "wif": _2, "wiih": _2, "winb": _2, "wios": _2, "witd": _2, "wiw": _2, "wkz": _2, "wsa": _2, "wskr": _2, "wsse": _2, "wuoz": _2, "wzmiuw": _2, "zp": _2, "zpisdn": _2 }], "augustow": _2, "babia-gora": _2, "bedzin": _2, "beskidy": _2, "bialowieza": _2, "bialystok": _2, "bielawa": _2, "bieszczady": _2, "boleslawiec": _2, "bydgoszcz": _2, "bytom": _2, "cieszyn": _2, "czeladz": _2, "czest": _2, "dlugoleka": _2, "elblag": _2, "elk": _2, "glogow": _2, "gniezno": _2, "gorlice": _2, "grajewo": _2, "ilawa": _2, "jaworzno": _2, "jelenia-gora": _2, "jgora": _2, "kalisz": _2, "karpacz": _2, "kartuzy": _2, "kaszuby": _2, "katowice": _2, "kazimierz-dolny": _2, "kepno": _2, "ketrzyn": _2, "klodzko": _2, "kobierzyce": _2, "kolobrzeg": _2, "konin": _2, "konskowola": _2, "kutno": _2, "lapy": _2, "lebork": _2, "legnica": _2, "lezajsk": _2, "limanowa": _2, "lomza": _2, "lowicz": _2, "lubin": _2, "lukow": _2, "malbork": _2, "malopolska": _2, "mazowsze": _2, "mazury": _2, "mielec": _2, "mielno": _2, "mragowo": _2, "naklo": _2, "nowaruda": _2, "nysa": _2, "olawa": _2, "olecko": _2, "olkusz": _2, "olsztyn": _2, "opoczno": _2, "opole": _2, "ostroda": _2, "ostroleka": _2, "ostrowiec": _2, "ostrowwlkp": _2, "pila": _2, "pisz": _2, "podhale": _2, "podlasie": _2, "polkowice": _2, "pomorskie": _2, "pomorze": _2, "prochowice": _2, "pruszkow": _2, "przeworsk": _2, "pulawy": _2, "radom": _2, "rawa-maz": _2, "rybnik": _2, "rzeszow": _2, "sanok": _2, "sejny": _2, "skoczow": _2, "slask": _2, "slupsk": _2, "sosnowiec": _2, "stalowa-wola": _2, "starachowice": _2, "stargard": _2, "suwalki": _2, "swidnica": _2, "swiebodzin": _2, "swinoujscie": _2, "szczecin": _2, "szczytno": _2, "tarnobrzeg": _2, "tgory": _2, "turek": _2, "tychy": _2, "ustka": _2, "walbrzych": _2, "warmia": _2, "warszawa": _2, "waw": _2, "wegrow": _2, "wielun": _2, "wlocl": _2, "wloclawek": _2, "wodzislaw": _2, "wolomin": _2, "wroclaw": _2, "zachpomor": _2, "zagan": _2, "zarow": _2, "zgora": _2, "zgorzelec": _2, "art": _3, "gliwice": _3, "krakow": _3, "poznan": _3, "wroc": _3, "zakopane": _3, "beep": _3, "ecommerce-shop": _3, "cfolks": _3, "dfirma": _3, "dkonto": _3, "you2": _3, "shoparena": _3, "homesklep": _3, "sdscloud": _3, "unicloud": _3, "lodz": _3, "pabianice": _3, "plock": _3, "sieradz": _3, "skierniewice": _3, "zgierz": _3, "krasnik": _3, "leczna": _3, "lubartow": _3, "lublin": _3, "poniatowa": _3, "swidnik": _3, "co": _3, "torun": _3, "simplesite": _3, "myspreadshop": _3, "gda": _3, "gdansk": _3, "gdynia": _3, "med": _3, "sopot": _3, "bielsko": _3 }], "pm": [1, { "own": _3, "name": _3 }], "pn": [1, { "co": _2, "edu": _2, "gov": _2, "net": _2, "org": _2 }], "post": _2, "pr": [1, { "biz": _2, "com": _2, "edu": _2, "gov": _2, "info": _2, "isla": _2, "name": _2, "net": _2, "org": _2, "pro": _2, "ac": _2, "est": _2, "prof": _2 }], "pro": [1, { "aaa": _2, "aca": _2, "acct": _2, "avocat": _2, "bar": _2, "cpa": _2, "eng": _2, "jur": _2, "law": _2, "med": _2, "recht": _2, "cloudns": _3, "keenetic": _3, "barsy": _3, "ngrok": _3 }], "ps": [1, { "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2, "plo": _2, "sec": _2 }], "pt": [1, { "com": _2, "edu": _2, "gov": _2, "int": _2, "net": _2, "nome": _2, "org": _2, "publ": _2, "123paginaweb": _3 }], "pw": [1, { "gov": _2, "cloudns": _3, "x443": _3 }], "py": [1, { "com": _2, "coop": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2 }], "qa": [1, { "com": _2, "edu": _2, "gov": _2, "mil": _2, "name": _2, "net": _2, "org": _2, "sch": _2 }], "re": [1, { "asso": _2, "com": _2, "netlib": _3, "can": _3 }], "ro": [1, { "arts": _2, "com": _2, "firm": _2, "info": _2, "nom": _2, "nt": _2, "org": _2, "rec": _2, "store": _2, "tm": _2, "www": _2, "co": _3, "shop": _3, "barsy": _3 }], "rs": [1, { "ac": _2, "co": _2, "edu": _2, "gov": _2, "in": _2, "org": _2, "brendly": _20, "barsy": _3, "ox": _3 }], "ru": [1, { "ac": _3, "edu": _3, "gov": _3, "int": _3, "mil": _3, "eurodir": _3, "adygeya": _3, "bashkiria": _3, "bir": _3, "cbg": _3, "com": _3, "dagestan": _3, "grozny": _3, "kalmykia": _3, "kustanai": _3, "marine": _3, "mordovia": _3, "msk": _3, "mytis": _3, "nalchik": _3, "nov": _3, "pyatigorsk": _3, "spb": _3, "vladikavkaz": _3, "vladimir": _3, "na4u": _3, "mircloud": _3, "myjino": [2, { "hosting": _6, "landing": _6, "spectrum": _6, "vps": _6 }], "cldmail": [0, { "hb": _3 }], "mcdir": [2, { "vps": _3 }], "mcpre": _3, "net": _3, "org": _3, "pp": _3, "ras": _3 }], "rw": [1, { "ac": _2, "co": _2, "coop": _2, "gov": _2, "mil": _2, "net": _2, "org": _2 }], "sa": [1, { "com": _2, "edu": _2, "gov": _2, "med": _2, "net": _2, "org": _2, "pub": _2, "sch": _2 }], "sb": _4, "sc": _4, "sd": [1, { "com": _2, "edu": _2, "gov": _2, "info": _2, "med": _2, "net": _2, "org": _2, "tv": _2 }], "se": [1, { "a": _2, "ac": _2, "b": _2, "bd": _2, "brand": _2, "c": _2, "d": _2, "e": _2, "f": _2, "fh": _2, "fhsk": _2, "fhv": _2, "g": _2, "h": _2, "i": _2, "k": _2, "komforb": _2, "kommunalforbund": _2, "komvux": _2, "l": _2, "lanbib": _2, "m": _2, "n": _2, "naturbruksgymn": _2, "o": _2, "org": _2, "p": _2, "parti": _2, "pp": _2, "press": _2, "r": _2, "s": _2, "t": _2, "tm": _2, "u": _2, "w": _2, "x": _2, "y": _2, "z": _2, "com": _3, "iopsys": _3, "123minsida": _3, "itcouldbewor": _3, "myspreadshop": _3 }], "sg": [1, { "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2, "enscaled": _3 }], "sh": [1, { "com": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "hashbang": _3, "botda": _3, "lovable": _3, "platform": [0, { "ent": _3, "eu": _3, "us": _3 }], "teleport": _3, "now": _3 }], "si": [1, { "f5": _3, "gitapp": _3, "gitpage": _3 }], "sj": _2, "sk": [1, { "org": _2 }], "sl": _4, "sm": _2, "sn": [1, { "art": _2, "com": _2, "edu": _2, "gouv": _2, "org": _2, "univ": _2 }], "so": [1, { "com": _2, "edu": _2, "gov": _2, "me": _2, "net": _2, "org": _2, "surveys": _3 }], "sr": _2, "ss": [1, { "biz": _2, "co": _2, "com": _2, "edu": _2, "gov": _2, "me": _2, "net": _2, "org": _2, "sch": _2 }], "st": [1, { "co": _2, "com": _2, "consulado": _2, "edu": _2, "embaixada": _2, "mil": _2, "net": _2, "org": _2, "principe": _2, "saotome": _2, "store": _2, "helioho": _3, "cn": _6, "kirara": _3, "noho": _3 }], "su": [1, { "abkhazia": _3, "adygeya": _3, "aktyubinsk": _3, "arkhangelsk": _3, "armenia": _3, "ashgabad": _3, "azerbaijan": _3, "balashov": _3, "bashkiria": _3, "bryansk": _3, "bukhara": _3, "chimkent": _3, "dagestan": _3, "east-kazakhstan": _3, "exnet": _3, "georgia": _3, "grozny": _3, "ivanovo": _3, "jambyl": _3, "kalmykia": _3, "kaluga": _3, "karacol": _3, "karaganda": _3, "karelia": _3, "khakassia": _3, "krasnodar": _3, "kurgan": _3, "kustanai": _3, "lenug": _3, "mangyshlak": _3, "mordovia": _3, "msk": _3, "murmansk": _3, "nalchik": _3, "navoi": _3, "north-kazakhstan": _3, "nov": _3, "obninsk": _3, "penza": _3, "pokrovsk": _3, "sochi": _3, "spb": _3, "tashkent": _3, "termez": _3, "togliatti": _3, "troitsk": _3, "tselinograd": _3, "tula": _3, "tuva": _3, "vladikavkaz": _3, "vladimir": _3, "vologda": _3 }], "sv": [1, { "com": _2, "edu": _2, "gob": _2, "org": _2, "red": _2 }], "sx": _10, "sy": _5, "sz": [1, { "ac": _2, "co": _2, "org": _2 }], "tc": _2, "td": _2, "tel": _2, "tf": [1, { "sch": _3 }], "tg": _2, "th": [1, { "ac": _2, "co": _2, "go": _2, "in": _2, "mi": _2, "net": _2, "or": _2, "online": _3, "shop": _3 }], "tj": [1, { "ac": _2, "biz": _2, "co": _2, "com": _2, "edu": _2, "go": _2, "gov": _2, "int": _2, "mil": _2, "name": _2, "net": _2, "nic": _2, "org": _2, "test": _2, "web": _2 }], "tk": _2, "tl": _10, "tm": [1, { "co": _2, "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "nom": _2, "org": _2 }], "tn": [1, { "com": _2, "ens": _2, "fin": _2, "gov": _2, "ind": _2, "info": _2, "intl": _2, "mincom": _2, "nat": _2, "net": _2, "org": _2, "perso": _2, "tourism": _2, "orangecloud": _3 }], "to": [1, { "611": _3, "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "oya": _3, "x0": _3, "quickconnect": _28, "vpnplus": _3, "nett": _3 }], "tr": [1, { "av": _2, "bbs": _2, "bel": _2, "biz": _2, "com": _2, "dr": _2, "edu": _2, "gen": _2, "gov": _2, "info": _2, "k12": _2, "kep": _2, "mil": _2, "name": _2, "net": _2, "org": _2, "pol": _2, "tel": _2, "tsk": _2, "tv": _2, "web": _2, "nc": _10 }], "tt": [1, { "biz": _2, "co": _2, "com": _2, "edu": _2, "gov": _2, "info": _2, "mil": _2, "name": _2, "net": _2, "org": _2, "pro": _2 }], "tv": [1, { "better-than": _3, "dyndns": _3, "on-the-web": _3, "worse-than": _3, "from": _3, "sakura": _3 }], "tw": [1, { "club": _2, "com": [1, { "mymailer": _3 }], "ebiz": _2, "edu": _2, "game": _2, "gov": _2, "idv": _2, "mil": _2, "net": _2, "org": _2, "url": _3, "mydns": _3 }], "tz": [1, { "ac": _2, "co": _2, "go": _2, "hotel": _2, "info": _2, "me": _2, "mil": _2, "mobi": _2, "ne": _2, "or": _2, "sc": _2, "tv": _2 }], "ua": [1, { "com": _2, "edu": _2, "gov": _2, "in": _2, "net": _2, "org": _2, "cherkassy": _2, "cherkasy": _2, "chernigov": _2, "chernihiv": _2, "chernivtsi": _2, "chernovtsy": _2, "ck": _2, "cn": _2, "cr": _2, "crimea": _2, "cv": _2, "dn": _2, "dnepropetrovsk": _2, "dnipropetrovsk": _2, "donetsk": _2, "dp": _2, "if": _2, "ivano-frankivsk": _2, "kh": _2, "kharkiv": _2, "kharkov": _2, "kherson": _2, "khmelnitskiy": _2, "khmelnytskyi": _2, "kiev": _2, "kirovograd": _2, "km": _2, "kr": _2, "kropyvnytskyi": _2, "krym": _2, "ks": _2, "kv": _2, "kyiv": _2, "lg": _2, "lt": _2, "lugansk": _2, "luhansk": _2, "lutsk": _2, "lv": _2, "lviv": _2, "mk": _2, "mykolaiv": _2, "nikolaev": _2, "od": _2, "odesa": _2, "odessa": _2, "pl": _2, "poltava": _2, "rivne": _2, "rovno": _2, "rv": _2, "sb": _2, "sebastopol": _2, "sevastopol": _2, "sm": _2, "sumy": _2, "te": _2, "ternopil": _2, "uz": _2, "uzhgorod": _2, "uzhhorod": _2, "vinnica": _2, "vinnytsia": _2, "vn": _2, "volyn": _2, "yalta": _2, "zakarpattia": _2, "zaporizhzhe": _2, "zaporizhzhia": _2, "zhitomir": _2, "zhytomyr": _2, "zp": _2, "zt": _2, "cc": _3, "inf": _3, "ltd": _3, "cx": _3, "biz": _3, "co": _3, "pp": _3, "v": _3 }], "ug": [1, { "ac": _2, "co": _2, "com": _2, "edu": _2, "go": _2, "gov": _2, "mil": _2, "ne": _2, "or": _2, "org": _2, "sc": _2, "us": _2 }], "uk": [1, { "ac": _2, "co": [1, { "bytemark": [0, { "dh": _3, "vm": _3 }], "layershift": _48, "barsy": _3, "barsyonline": _3, "retrosnub": _58, "nh-serv": _3, "no-ip": _3, "adimo": _3, "myspreadshop": _3 }], "gov": [1, { "api": _3, "campaign": _3, "service": _3 }], "ltd": _2, "me": _2, "net": _2, "nhs": _2, "org": [1, { "glug": _3, "lug": _3, "lugs": _3, "affinitylottery": _3, "raffleentry": _3, "weeklylottery": _3 }], "plc": _2, "police": _2, "sch": _21, "conn": _3, "copro": _3, "hosp": _3, "independent-commission": _3, "independent-inquest": _3, "independent-inquiry": _3, "independent-panel": _3, "independent-review": _3, "public-inquiry": _3, "royal-commission": _3, "pymnt": _3, "barsy": _3, "nimsite": _3, "oraclegovcloudapps": _6 }], "us": [1, { "dni": _2, "isa": _2, "nsn": _2, "ak": _68, "al": _68, "ar": _68, "as": _68, "az": _68, "ca": _68, "co": _68, "ct": _68, "dc": _68, "de": _69, "fl": _68, "ga": _68, "gu": _68, "hi": _70, "ia": _68, "id": _68, "il": _68, "in": _68, "ks": _68, "ky": _68, "la": _68, "ma": [1, { "k12": [1, { "chtr": _2, "paroch": _2, "pvt": _2 }], "cc": _2, "lib": _2 }], "md": _68, "me": _68, "mi": [1, { "k12": _2, "cc": _2, "lib": _2, "ann-arbor": _2, "cog": _2, "dst": _2, "eaton": _2, "gen": _2, "mus": _2, "tec": _2, "washtenaw": _2 }], "mn": _68, "mo": _68, "ms": [1, { "k12": _2, "cc": _2 }], "mt": _68, "nc": _68, "nd": _70, "ne": _68, "nh": _68, "nj": _68, "nm": _68, "nv": _68, "ny": _68, "oh": _68, "ok": _68, "or": _68, "pa": _68, "pr": _68, "ri": _70, "sc": _68, "sd": _70, "tn": _68, "tx": _68, "ut": _68, "va": _68, "vi": _68, "vt": _68, "wa": _68, "wi": _68, "wv": _69, "wy": _68, "cloudns": _3, "is-by": _3, "land-4-sale": _3, "stuff-4-sale": _3, "heliohost": _3, "enscaled": [0, { "phx": _3 }], "mircloud": _3, "azure-api": _3, "azurewebsites": _3, "ngo": _3, "golffan": _3, "noip": _3, "pointto": _3, "freeddns": _3, "srv": [2, { "gh": _3, "gl": _3 }], "servername": _3 }], "uy": [1, { "com": _2, "edu": _2, "gub": _2, "mil": _2, "net": _2, "org": _2, "gv": _3 }], "uz": [1, { "co": _2, "com": _2, "net": _2, "org": _2 }], "va": _2, "vc": [1, { "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "gv": [2, { "d": _3 }], "0e": _6, "mydns": _3 }], "ve": [1, { "arts": _2, "bib": _2, "co": _2, "com": _2, "e12": _2, "edu": _2, "emprende": _2, "firm": _2, "gob": _2, "gov": _2, "ia": _2, "info": _2, "int": _2, "mil": _2, "net": _2, "nom": _2, "org": _2, "rar": _2, "rec": _2, "store": _2, "tec": _2, "web": _2 }], "vg": [1, { "edu": _2 }], "vi": [1, { "co": _2, "com": _2, "k12": _2, "net": _2, "org": _2 }], "vn": [1, { "ac": _2, "ai": _2, "biz": _2, "com": _2, "edu": _2, "gov": _2, "health": _2, "id": _2, "info": _2, "int": _2, "io": _2, "name": _2, "net": _2, "org": _2, "pro": _2, "angiang": _2, "bacgiang": _2, "backan": _2, "baclieu": _2, "bacninh": _2, "baria-vungtau": _2, "bentre": _2, "binhdinh": _2, "binhduong": _2, "binhphuoc": _2, "binhthuan": _2, "camau": _2, "cantho": _2, "caobang": _2, "daklak": _2, "daknong": _2, "danang": _2, "dienbien": _2, "dongnai": _2, "dongthap": _2, "gialai": _2, "hagiang": _2, "haiduong": _2, "haiphong": _2, "hanam": _2, "hanoi": _2, "hatinh": _2, "haugiang": _2, "hoabinh": _2, "hungyen": _2, "khanhhoa": _2, "kiengiang": _2, "kontum": _2, "laichau": _2, "lamdong": _2, "langson": _2, "laocai": _2, "longan": _2, "namdinh": _2, "nghean": _2, "ninhbinh": _2, "ninhthuan": _2, "phutho": _2, "phuyen": _2, "quangbinh": _2, "quangnam": _2, "quangngai": _2, "quangninh": _2, "quangtri": _2, "soctrang": _2, "sonla": _2, "tayninh": _2, "thaibinh": _2, "thainguyen": _2, "thanhhoa": _2, "thanhphohochiminh": _2, "thuathienhue": _2, "tiengiang": _2, "travinh": _2, "tuyenquang": _2, "vinhlong": _2, "vinhphuc": _2, "yenbai": _2 }], "vu": _47, "wf": [1, { "biz": _3, "sch": _3 }], "ws": [1, { "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2, "advisor": _6, "cloud66": _3, "dyndns": _3, "mypets": _3 }], "yt": [1, { "org": _3 }], "xn--mgbaam7a8h": _2, "\u0627\u0645\u0627\u0631\u0627\u062A": _2, "xn--y9a3aq": _2, "\u0570\u0561\u0575": _2, "xn--54b7fta0cc": _2, "\u09AC\u09BE\u0982\u09B2\u09BE": _2, "xn--90ae": _2, "\u0431\u0433": _2, "xn--mgbcpq6gpa1a": _2, "\u0627\u0644\u0628\u062D\u0631\u064A\u0646": _2, "xn--90ais": _2, "\u0431\u0435\u043B": _2, "xn--fiqs8s": _2, "\u4E2D\u56FD": _2, "xn--fiqz9s": _2, "\u4E2D\u570B": _2, "xn--lgbbat1ad8j": _2, "\u0627\u0644\u062C\u0632\u0627\u0626\u0631": _2, "xn--wgbh1c": _2, "\u0645\u0635\u0631": _2, "xn--e1a4c": _2, "\u0435\u044E": _2, "xn--qxa6a": _2, "\u03B5\u03C5": _2, "xn--mgbah1a3hjkrd": _2, "\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627": _2, "xn--node": _2, "\u10D2\u10D4": _2, "xn--qxam": _2, "\u03B5\u03BB": _2, "xn--j6w193g": [1, { "xn--gmqw5a": _2, "xn--55qx5d": _2, "xn--mxtq1m": _2, "xn--wcvs22d": _2, "xn--uc0atv": _2, "xn--od0alg": _2 }], "\u9999\u6E2F": [1, { "\u500B\u4EBA": _2, "\u516C\u53F8": _2, "\u653F\u5E9C": _2, "\u6559\u80B2": _2, "\u7D44\u7E54": _2, "\u7DB2\u7D61": _2 }], "xn--2scrj9c": _2, "\u0CAD\u0CBE\u0CB0\u0CA4": _2, "xn--3hcrj9c": _2, "\u0B2D\u0B3E\u0B30\u0B24": _2, "xn--45br5cyl": _2, "\u09AD\u09BE\u09F0\u09A4": _2, "xn--h2breg3eve": _2, "\u092D\u093E\u0930\u0924\u092E\u094D": _2, "xn--h2brj9c8c": _2, "\u092D\u093E\u0930\u094B\u0924": _2, "xn--mgbgu82a": _2, "\u0680\u0627\u0631\u062A": _2, "xn--rvc1e0am3e": _2, "\u0D2D\u0D3E\u0D30\u0D24\u0D02": _2, "xn--h2brj9c": _2, "\u092D\u093E\u0930\u0924": _2, "xn--mgbbh1a": _2, "\u0628\u0627\u0631\u062A": _2, "xn--mgbbh1a71e": _2, "\u0628\u06BE\u0627\u0631\u062A": _2, "xn--fpcrj9c3d": _2, "\u0C2D\u0C3E\u0C30\u0C24\u0C4D": _2, "xn--gecrj9c": _2, "\u0AAD\u0ABE\u0AB0\u0AA4": _2, "xn--s9brj9c": _2, "\u0A2D\u0A3E\u0A30\u0A24": _2, "xn--45brj9c": _2, "\u09AD\u09BE\u09B0\u09A4": _2, "xn--xkc2dl3a5ee0h": _2, "\u0B87\u0BA8\u0BCD\u0BA4\u0BBF\u0BAF\u0BBE": _2, "xn--mgba3a4f16a": _2, "\u0627\u06CC\u0631\u0627\u0646": _2, "xn--mgba3a4fra": _2, "\u0627\u064A\u0631\u0627\u0646": _2, "xn--mgbtx2b": _2, "\u0639\u0631\u0627\u0642": _2, "xn--mgbayh7gpa": _2, "\u0627\u0644\u0627\u0631\u062F\u0646": _2, "xn--3e0b707e": _2, "\uD55C\uAD6D": _2, "xn--80ao21a": _2, "\u049B\u0430\u0437": _2, "xn--q7ce6a": _2, "\u0EA5\u0EB2\u0EA7": _2, "xn--fzc2c9e2c": _2, "\u0DBD\u0D82\u0D9A\u0DCF": _2, "xn--xkc2al3hye2a": _2, "\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8": _2, "xn--mgbc0a9azcg": _2, "\u0627\u0644\u0645\u063A\u0631\u0628": _2, "xn--d1alf": _2, "\u043C\u043A\u0434": _2, "xn--l1acc": _2, "\u043C\u043E\u043D": _2, "xn--mix891f": _2, "\u6FB3\u9580": _2, "xn--mix082f": _2, "\u6FB3\u95E8": _2, "xn--mgbx4cd0ab": _2, "\u0645\u0644\u064A\u0633\u064A\u0627": _2, "xn--mgb9awbf": _2, "\u0639\u0645\u0627\u0646": _2, "xn--mgbai9azgqp6j": _2, "\u067E\u0627\u06A9\u0633\u062A\u0627\u0646": _2, "xn--mgbai9a5eva00b": _2, "\u067E\u0627\u0643\u0633\u062A\u0627\u0646": _2, "xn--ygbi2ammx": _2, "\u0641\u0644\u0633\u0637\u064A\u0646": _2, "xn--90a3ac": [1, { "xn--80au": _2, "xn--90azh": _2, "xn--d1at": _2, "xn--c1avg": _2, "xn--o1ac": _2, "xn--o1ach": _2 }], "\u0441\u0440\u0431": [1, { "\u0430\u043A": _2, "\u043E\u0431\u0440": _2, "\u043E\u0434": _2, "\u043E\u0440\u0433": _2, "\u043F\u0440": _2, "\u0443\u043F\u0440": _2 }], "xn--p1ai": _2, "\u0440\u0444": _2, "xn--wgbl6a": _2, "\u0642\u0637\u0631": _2, "xn--mgberp4a5d4ar": _2, "\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629": _2, "xn--mgberp4a5d4a87g": _2, "\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u0629": _2, "xn--mgbqly7c0a67fbc": _2, "\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u06C3": _2, "xn--mgbqly7cvafr": _2, "\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0647": _2, "xn--mgbpl2fh": _2, "\u0633\u0648\u062F\u0627\u0646": _2, "xn--yfro4i67o": _2, "\u65B0\u52A0\u5761": _2, "xn--clchc0ea0b2g2a9gcd": _2, "\u0B9A\u0BBF\u0B99\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BC2\u0BB0\u0BCD": _2, "xn--ogbpf8fl": _2, "\u0633\u0648\u0631\u064A\u0629": _2, "xn--mgbtf8fl": _2, "\u0633\u0648\u0631\u064A\u0627": _2, "xn--o3cw4h": [1, { "xn--o3cyx2a": _2, "xn--12co0c3b4eva": _2, "xn--m3ch0j3a": _2, "xn--h3cuzk1di": _2, "xn--12c1fe0br": _2, "xn--12cfi8ixb8l": _2 }], "\u0E44\u0E17\u0E22": [1, { "\u0E17\u0E2B\u0E32\u0E23": _2, "\u0E18\u0E38\u0E23\u0E01\u0E34\u0E08": _2, "\u0E40\u0E19\u0E47\u0E15": _2, "\u0E23\u0E31\u0E10\u0E1A\u0E32\u0E25": _2, "\u0E28\u0E36\u0E01\u0E29\u0E32": _2, "\u0E2D\u0E07\u0E04\u0E4C\u0E01\u0E23": _2 }], "xn--pgbs0dh": _2, "\u062A\u0648\u0646\u0633": _2, "xn--kpry57d": _2, "\u53F0\u7063": _2, "xn--kprw13d": _2, "\u53F0\u6E7E": _2, "xn--nnx388a": _2, "\u81FA\u7063": _2, "xn--j1amh": _2, "\u0443\u043A\u0440": _2, "xn--mgb2ddes": _2, "\u0627\u0644\u064A\u0645\u0646": _2, "xxx": _2, "ye": _5, "za": [0, { "ac": _2, "agric": _2, "alt": _2, "co": _2, "edu": _2, "gov": _2, "grondar": _2, "law": _2, "mil": _2, "net": _2, "ngo": _2, "nic": _2, "nis": _2, "nom": _2, "org": _2, "school": _2, "tm": _2, "web": _2 }], "zm": [1, { "ac": _2, "biz": _2, "co": _2, "com": _2, "edu": _2, "gov": _2, "info": _2, "mil": _2, "net": _2, "org": _2, "sch": _2 }], "zw": [1, { "ac": _2, "co": _2, "gov": _2, "mil": _2, "org": _2 }], "aaa": _2, "aarp": _2, "abb": _2, "abbott": _2, "abbvie": _2, "abc": _2, "able": _2, "abogado": _2, "abudhabi": _2, "academy": [1, { "official": _3 }], "accenture": _2, "accountant": _2, "accountants": _2, "aco": _2, "actor": _2, "ads": _2, "adult": _2, "aeg": _2, "aetna": _2, "afl": _2, "africa": _2, "agakhan": _2, "agency": _2, "aig": _2, "airbus": _2, "airforce": _2, "airtel": _2, "akdn": _2, "alibaba": _2, "alipay": _2, "allfinanz": _2, "allstate": _2, "ally": _2, "alsace": _2, "alstom": _2, "amazon": _2, "americanexpress": _2, "americanfamily": _2, "amex": _2, "amfam": _2, "amica": _2, "amsterdam": _2, "analytics": _2, "android": _2, "anquan": _2, "anz": _2, "aol": _2, "apartments": _2, "app": [1, { "adaptable": _3, "aiven": _3, "beget": _6, "brave": _7, "clerk": _3, "clerkstage": _3, "cloudflare": _3, "wnext": _3, "csb": [2, { "preview": _3 }], "convex": _3, "corespeed": _3, "deta": _3, "ondigitalocean": _3, "easypanel": _3, "encr": [2, { "frontend": _3 }], "evervault": _8, "expo": [2, { "staging": _3 }], "edgecompute": _3, "on-fleek": _3, "flutterflow": _3, "sprites": _3, "e2b": _3, "framer": _3, "gadget": _3, "github": _3, "hosted": _6, "run": [0, { "*": _3, "mtls": _6 }], "web": _3, "hackclub": _3, "hasura": _3, "onhercules": _3, "botdash": _3, "shiptoday": _3, "leapcell": _3, "loginline": _3, "lovable": _3, "luyani": _3, "magicpatterns": _3, "medusajs": _3, "messerli": _3, "miren": _3, "mocha": _3, "netlify": _3, "ngrok": _3, "ngrok-free": _3, "developer": _6, "noop": _3, "northflank": _6, "upsun": _6, "railway": [0, { "up": _3 }], "replit": _9, "nyat": _3, "snowflake": [0, { "*": _3, "privatelink": _6 }], "streamlit": _3, "spawnbase": _3, "telebit": _3, "typedream": _3, "vercel": _3, "wal": _3, "wasmer": _3, "bookonline": _3, "windsurf": _3, "base44": _3, "zeabur": _3, "zerops": _6 }], "apple": [1, { "int": [2, { "cloud": [0, { "*": _3, "r": [0, { "*": _3, "ap-north-1": _6, "ap-south-1": _6, "ap-south-2": _6, "eu-central-1": _6, "eu-north-1": _6, "us-central-1": _6, "us-central-2": _6, "us-east-1": _6, "us-east-2": _6, "us-west-1": _6, "us-west-2": _6, "us-west-3": _6 }] }] }] }], "aquarelle": _2, "arab": _2, "aramco": _2, "archi": _2, "army": _2, "art": _2, "arte": _2, "asda": _2, "associates": _2, "athleta": _2, "attorney": _2, "auction": _2, "audi": _2, "audible": _2, "audio": _2, "auspost": _2, "author": _2, "auto": _2, "autos": _2, "aws": [1, { "on": [0, { "af-south-1": _11, "ap-east-1": _11, "ap-northeast-1": _11, "ap-northeast-2": _11, "ap-northeast-3": _11, "ap-south-1": _11, "ap-south-2": _12, "ap-southeast-1": _11, "ap-southeast-2": _11, "ap-southeast-3": _11, "ap-southeast-4": _12, "ap-southeast-5": _12, "ca-central-1": _11, "ca-west-1": _12, "eu-central-1": _11, "eu-central-2": _12, "eu-north-1": _11, "eu-south-1": _11, "eu-south-2": _12, "eu-west-1": _11, "eu-west-2": _11, "eu-west-3": _11, "il-central-1": _12, "me-central-1": _12, "me-south-1": _11, "sa-east-1": _11, "us-east-1": _11, "us-east-2": _11, "us-west-1": _11, "us-west-2": _11, "ap-southeast-7": _13, "mx-central-1": _13, "us-gov-east-1": _14, "us-gov-west-1": _14 }], "sagemaker": [0, { "ap-northeast-1": _16, "ap-northeast-2": _16, "ap-south-1": _16, "ap-southeast-1": _16, "ap-southeast-2": _16, "ca-central-1": _18, "eu-central-1": _16, "eu-west-1": _16, "eu-west-2": _16, "us-east-1": _18, "us-east-2": _18, "us-west-2": _18, "af-south-1": _15, "ap-east-1": _15, "ap-northeast-3": _15, "ap-south-2": _17, "ap-southeast-3": _15, "ap-southeast-4": _17, "ca-west-1": [0, { "notebook": _3, "notebook-fips": _3 }], "eu-central-2": _15, "eu-north-1": _15, "eu-south-1": _15, "eu-south-2": _15, "eu-west-3": _15, "il-central-1": _15, "me-central-1": _15, "me-south-1": _15, "sa-east-1": _15, "us-gov-east-1": _19, "us-gov-west-1": _19, "us-west-1": [0, { "notebook": _3, "notebook-fips": _3, "studio": _3 }], "experiments": _6 }], "repost": [0, { "private": _6 }] }], "axa": _2, "azure": _2, "baby": _2, "baidu": _2, "banamex": _2, "band": _2, "bank": _2, "bar": _2, "barcelona": _2, "barclaycard": _2, "barclays": _2, "barefoot": _2, "bargains": _2, "baseball": _2, "basketball": [1, { "aus": _3, "nz": _3 }], "bauhaus": _2, "bayern": _2, "bbc": _2, "bbt": _2, "bbva": _2, "bcg": _2, "bcn": _2, "beats": _2, "beauty": _2, "beer": _2, "berlin": _2, "best": _2, "bestbuy": _2, "bet": _2, "bharti": _2, "bible": _2, "bid": _2, "bike": _2, "bing": _2, "bingo": _2, "bio": _2, "black": _2, "blackfriday": _2, "blockbuster": _2, "blog": _2, "bloomberg": _2, "blue": _2, "bms": _2, "bmw": _2, "bnpparibas": _2, "boats": _2, "boehringer": _2, "bofa": _2, "bom": _2, "bond": _2, "boo": _2, "book": _2, "booking": _2, "bosch": _2, "bostik": _2, "boston": _2, "bot": _2, "boutique": _2, "box": _2, "bradesco": _2, "bridgestone": _2, "broadway": _2, "broker": _2, "brother": _2, "brussels": _2, "build": [1, { "shiptoday": _3, "v0": _3, "windsurf": _3 }], "builders": [1, { "cloudsite": _3 }], "business": _22, "buy": _2, "buzz": _2, "bzh": _2, "cab": _2, "cafe": _2, "cal": _2, "call": _2, "calvinklein": _2, "cam": _2, "camera": _2, "camp": [1, { "emf": [0, { "at": _3 }] }], "canon": _2, "capetown": _2, "capital": _2, "capitalone": _2, "car": _2, "caravan": _2, "cards": _2, "care": _2, "career": _2, "careers": _2, "cars": _2, "casa": [1, { "nabu": [0, { "ui": _3 }] }], "case": [1, { "sav": _3 }], "cash": _2, "casino": _2, "catering": _2, "catholic": _2, "cba": _2, "cbn": _2, "cbre": _2, "center": _2, "ceo": _2, "cern": _2, "cfa": _2, "cfd": _2, "chanel": _2, "channel": _2, "charity": _2, "chase": _2, "chat": _2, "cheap": _2, "chintai": _2, "christmas": _2, "chrome": _2, "church": _2, "cipriani": _2, "circle": _2, "cisco": _2, "citadel": _2, "citi": _2, "citic": _2, "city": _2, "claims": _2, "cleaning": _2, "click": _2, "clinic": _2, "clinique": _2, "clothing": _2, "cloud": [1, { "antagonist": _3, "convex": _3, "elementor": _3, "emergent": _3, "encoway": [0, { "eu": _3 }], "statics": _6, "ravendb": _3, "axarnet": [0, { "es-1": _3 }], "diadem": _3, "jelastic": [0, { "vip": _3 }], "jele": _3, "jenv-aruba": [0, { "aruba": [0, { "eur": [0, { "it1": _3 }] }], "it1": _3 }], "keliweb": [2, { "cs": _3 }], "oxa": [2, { "tn": _3, "uk": _3 }], "primetel": [2, { "uk": _3 }], "reclaim": [0, { "ca": _3, "uk": _3, "us": _3 }], "trendhosting": [0, { "ch": _3, "de": _3 }], "jote": _3, "jotelulu": _3, "kuleuven": _3, "laravel": _3, "linkyard": _3, "magentosite": _6, "matlab": _3, "observablehq": _3, "perspecta": _3, "vapor": _3, "on-rancher": _6, "scw": [0, { "baremetal": [0, { "fr-par-1": _3, "fr-par-2": _3, "nl-ams-1": _3 }], "fr-par": [0, { "cockpit": _3, "ddl": _3, "dtwh": _3, "fnc": [2, { "functions": _3 }], "ifr": _3, "k8s": _24, "kafk": _3, "mgdb": _3, "rdb": _3, "s3": _3, "s3-website": _3, "scbl": _3, "whm": _3 }], "instances": [0, { "priv": _3, "pub": _3 }], "k8s": _3, "nl-ams": [0, { "cockpit": _3, "ddl": _3, "dtwh": _3, "ifr": _3, "k8s": _24, "kafk": _3, "mgdb": _3, "rdb": _3, "s3": _3, "s3-website": _3, "scbl": _3, "whm": _3 }], "pl-waw": [0, { "cockpit": _3, "ddl": _3, "dtwh": _3, "ifr": _3, "k8s": _24, "kafk": _3, "mgdb": _3, "rdb": _3, "s3": _3, "s3-website": _3, "scbl": _3 }], "scalebook": _3, "smartlabeling": _3 }], "servebolt": _3, "onstackit": [0, { "runs": _3 }], "trafficplex": _3, "unison-services": _3, "urown": _3, "voorloper": _3, "zap": _3 }], "club": [1, { "cloudns": _3, "jele": _3, "barsy": _3 }], "clubmed": _2, "coach": _2, "codes": [1, { "owo": _6 }], "coffee": _2, "college": _2, "cologne": _2, "commbank": _2, "community": [1, { "nog": _3, "ravendb": _3, "myforum": _3 }], "company": _2, "compare": _2, "computer": _2, "comsec": _2, "condos": _2, "construction": _2, "consulting": _2, "contact": _2, "contractors": _2, "cooking": _2, "cool": [1, { "elementor": _3, "de": _3 }], "corsica": _2, "country": _2, "coupon": _2, "coupons": _2, "courses": _2, "cpa": _2, "credit": _2, "creditcard": _2, "creditunion": _2, "cricket": _2, "crown": _2, "crs": _2, "cruise": _2, "cruises": _2, "cuisinella": _2, "cymru": _2, "cyou": _2, "dad": _2, "dance": _2, "data": _2, "date": _2, "dating": _2, "datsun": _2, "day": _2, "dclk": _2, "dds": _2, "deal": _2, "dealer": _2, "deals": _2, "degree": _2, "delivery": _2, "dell": _2, "deloitte": _2, "delta": _2, "democrat": _2, "dental": _2, "dentist": _2, "desi": _2, "design": [1, { "graphic": _3, "bss": _3 }], "dev": [1, { "myaddr": _3, "panel": _3, "bearblog": _3, "brave": _7, "lcl": _6, "lclstage": _6, "stg": _6, "stgstage": _6, "pages": _3, "r2": _3, "workers": _3, "deno": _3, "deno-staging": _3, "deta": _3, "lp": [2, { "api": _3, "objects": _3 }], "evervault": _8, "fly": _3, "githubpreview": _3, "gateway": _6, "grebedoc": _3, "botdash": _3, "inbrowser": _6, "is-a-good": _3, "iserv": _3, "leapcell": _3, "runcontainers": _3, "localcert": [0, { "user": _6 }], "loginline": _3, "barsy": _3, "mediatech": _3, "mocha-sandbox": _3, "modx": _3, "ngrok": _3, "ngrok-free": _3, "is-a-fullstack": _3, "is-cool": _3, "is-not-a": _3, "localplayer": _3, "xmit": _3, "platter-app": _3, "replit": [2, { "archer": _3, "bones": _3, "canary": _3, "global": _3, "hacker": _3, "id": _3, "janeway": _3, "kim": _3, "kira": _3, "kirk": _3, "odo": _3, "paris": _3, "picard": _3, "pike": _3, "prerelease": _3, "reed": _3, "riker": _3, "sisko": _3, "spock": _3, "staging": _3, "sulu": _3, "tarpit": _3, "teams": _3, "tucker": _3, "wesley": _3, "worf": _3 }], "crm": [0, { "aa": _6, "ab": _6, "ac": _6, "ad": _6, "ae": _6, "af": _6, "ci": _6, "d": _6, "pa": _6, "pb": _6, "pc": _6, "pd": _6, "pe": _6, "pf": _6, "w": _6, "wa": _6, "wb": _6, "wc": _6, "wd": _6, "we": _6, "wf": _6 }], "erp": _50, "vercel": _3, "webhare": _6, "hrsn": _3, "is-a": _3 }], "dhl": _2, "diamonds": _2, "diet": _2, "digital": [1, { "cloudapps": [2, { "london": _3 }] }], "direct": [1, { "libp2p": _3 }], "directory": _2, "discount": _2, "discover": _2, "dish": _2, "diy": _51, "dnp": _2, "docs": _2, "doctor": _2, "dog": _2, "domains": _2, "dot": _2, "download": _2, "drive": _2, "dtv": _2, "dubai": _2, "dupont": _2, "durban": _2, "dvag": _2, "dvr": _2, "earth": _2, "eat": _2, "eco": _2, "edeka": _2, "education": _22, "email": [1, { "crisp": [0, { "on": _3 }], "tawk": _53, "tawkto": _53 }], "emerck": _2, "energy": _2, "engineer": _2, "engineering": _2, "enterprises": _2, "epson": _2, "equipment": _2, "ericsson": _2, "erni": _2, "esq": _2, "estate": [1, { "compute": _6 }], "eurovision": _2, "eus": [1, { "party": _54 }], "events": [1, { "koobin": _3, "co": _3 }], "exchange": _2, "expert": _2, "exposed": _2, "express": _2, "extraspace": _2, "fage": _2, "fail": _2, "fairwinds": _2, "faith": _2, "family": _2, "fan": _2, "fans": _2, "farm": [1, { "storj": _3 }], "farmers": _2, "fashion": _2, "fast": _2, "fedex": _2, "feedback": _2, "ferrari": _2, "ferrero": _2, "fidelity": _2, "fido": _2, "film": _2, "final": _2, "finance": _2, "financial": _22, "fire": _2, "firestone": _2, "firmdale": _2, "fish": _2, "fishing": _2, "fit": _2, "fitness": _2, "flickr": _2, "flights": _2, "flir": _2, "florist": _2, "flowers": _2, "fly": _2, "foo": _2, "food": _2, "football": _2, "ford": _2, "forex": _2, "forsale": _2, "forum": _2, "foundation": _2, "fox": _2, "free": _2, "fresenius": _2, "frl": _2, "frogans": _2, "frontier": _2, "ftr": _2, "fujitsu": _2, "fun": _2, "fund": _2, "furniture": _2, "futbol": _2, "fyi": _2, "gal": _2, "gallery": _2, "gallo": _2, "gallup": _2, "game": _2, "games": [1, { "pley": _3, "sheezy": _3 }], "gap": _2, "garden": _2, "gay": [1, { "pages": _3 }], "gbiz": _2, "gdn": [1, { "cnpy": _3 }], "gea": _2, "gent": _2, "genting": _2, "george": _2, "ggee": _2, "gift": _2, "gifts": _2, "gives": _2, "giving": _2, "glass": _2, "gle": _2, "global": [1, { "appwrite": _3 }], "globo": _2, "gmail": _2, "gmbh": _2, "gmo": _2, "gmx": _2, "godaddy": _2, "gold": _2, "goldpoint": _2, "golf": _2, "goodyear": _2, "goog": [1, { "cloud": _3, "translate": _3, "usercontent": _6 }], "google": _2, "gop": _2, "got": _2, "grainger": _2, "graphics": _2, "gratis": _2, "green": _2, "gripe": _2, "grocery": _2, "group": _51, "gucci": _2, "guge": _2, "guide": _2, "guitars": _2, "guru": _2, "hair": _2, "hamburg": _2, "hangout": _2, "haus": _2, "hbo": _2, "hdfc": _2, "hdfcbank": _2, "health": [1, { "hra": _3 }], "healthcare": _2, "help": _2, "helsinki": _2, "here": _2, "hermes": _2, "hiphop": _2, "hisamitsu": _2, "hitachi": _2, "hiv": _2, "hkt": _2, "hockey": _2, "holdings": _2, "holiday": _2, "homedepot": _2, "homegoods": _2, "homes": _2, "homesense": _2, "honda": _2, "horse": _2, "hospital": _2, "host": [1, { "cloudaccess": _3, "freesite": _3, "easypanel": _3, "emergent": _3, "fastvps": _3, "myfast": _3, "gadget": _3, "tempurl": _3, "wpmudev": _3, "iserv": _3, "jele": _3, "mircloud": _3, "bolt": _3, "wp2": _3, "half": _3 }], "hosting": [1, { "opencraft": _3 }], "hot": _2, "hotel": _2, "hotels": _2, "hotmail": _2, "house": _2, "how": _2, "hsbc": _2, "hughes": _2, "hyatt": _2, "hyundai": _2, "ibm": _2, "icbc": _2, "ice": _2, "icu": _2, "ieee": _2, "ifm": _2, "ikano": _2, "imamat": _2, "imdb": _2, "immo": _2, "immobilien": _2, "inc": _2, "industries": _2, "infiniti": _2, "ing": _2, "ink": _2, "institute": _2, "insurance": _2, "insure": _2, "international": _2, "intuit": _2, "investments": _2, "ipiranga": _2, "irish": _2, "ismaili": _2, "ist": _2, "istanbul": _2, "itau": _2, "itv": _2, "jaguar": _2, "java": _2, "jcb": _2, "jeep": _2, "jetzt": _2, "jewelry": _2, "jio": _2, "jll": _2, "jmp": _2, "jnj": _2, "joburg": _2, "jot": _2, "joy": _2, "jpmorgan": _2, "jprs": _2, "juegos": _2, "juniper": _2, "kaufen": _2, "kddi": _2, "kerryhotels": _2, "kerryproperties": _2, "kfh": _2, "kia": _2, "kids": _2, "kim": _2, "kindle": _2, "kitchen": _2, "kiwi": _2, "koeln": _2, "komatsu": _2, "kosher": _2, "kpmg": _2, "kpn": _2, "krd": [1, { "co": _3, "edu": _3 }], "kred": _2, "kuokgroup": _2, "kyoto": _2, "lacaixa": _2, "lamborghini": _2, "lamer": _2, "land": _2, "landrover": _2, "lanxess": _2, "lasalle": _2, "lat": _2, "latino": _2, "latrobe": _2, "law": _2, "lawyer": _2, "lds": _2, "lease": _2, "leclerc": _2, "lefrak": _2, "legal": _2, "lego": _2, "lexus": _2, "lgbt": _2, "lidl": _2, "life": _2, "lifeinsurance": _2, "lifestyle": _2, "lighting": _2, "like": _2, "lilly": _2, "limited": _2, "limo": _2, "lincoln": _2, "link": [1, { "myfritz": _3, "cyon": _3, "joinmc": _3, "dweb": _6, "inbrowser": _6, "keenetic": _3, "nftstorage": _61, "mypep": _3, "storacha": _61, "w3s": _61 }], "live": [1, { "aem": _3, "hlx": _3, "ewp": _6 }], "living": _2, "llc": _2, "llp": _2, "loan": _2, "loans": _2, "locker": _2, "locus": _2, "lol": [1, { "omg": _3 }], "london": _2, "lotte": _2, "lotto": _2, "love": _2, "lpl": _2, "lplfinancial": _2, "ltd": _2, "ltda": _2, "lundbeck": _2, "luxe": _2, "luxury": _2, "madrid": _2, "maif": _2, "maison": _2, "makeup": _2, "man": _2, "management": _2, "mango": _2, "map": _2, "market": _2, "marketing": _2, "markets": _2, "marriott": _2, "marshalls": _2, "mattel": _2, "mba": _2, "mckinsey": _2, "med": _2, "media": _62, "meet": _2, "melbourne": _2, "meme": _2, "memorial": _2, "men": _2, "menu": [1, { "barsy": _3, "barsyonline": _3 }], "merck": _2, "merckmsd": _2, "miami": _2, "microsoft": _2, "mini": _2, "mint": _2, "mit": _2, "mitsubishi": _2, "mlb": _2, "mls": _2, "mma": _2, "mobile": _2, "moda": _2, "moe": _2, "moi": _2, "mom": _2, "monash": _2, "money": _2, "monster": _2, "mormon": _2, "mortgage": _2, "moscow": _2, "moto": _2, "motorcycles": _2, "mov": _2, "movie": _2, "msd": _2, "mtn": _2, "mtr": _2, "music": _2, "nab": _2, "nagoya": _2, "navy": _2, "nba": _2, "nec": _2, "netbank": _2, "netflix": _2, "network": [1, { "aem": _3, "alces": _6, "appwrite": _3, "co": _3, "arvo": _3, "azimuth": _3, "tlon": _3 }], "neustar": _2, "new": _2, "news": [1, { "noticeable": _3 }], "next": _2, "nextdirect": _2, "nexus": _2, "nfl": _2, "ngo": _2, "nhk": _2, "nico": _2, "nike": _2, "nikon": _2, "ninja": _2, "nissan": _2, "nissay": _2, "nokia": _2, "norton": _2, "now": _2, "nowruz": _2, "nowtv": _2, "nra": _2, "nrw": _2, "ntt": _2, "nyc": _2, "obi": _2, "observer": _2, "office": _2, "okinawa": _2, "olayan": _2, "olayangroup": _2, "ollo": _2, "omega": _2, "one": [1, { "kin": _6, "service": _3, "website": _3 }], "ong": _2, "onl": _2, "online": [1, { "eero": _3, "eero-stage": _3, "websitebuilder": _3, "leapcell": _3, "barsy": _3 }], "ooo": _2, "open": _2, "oracle": _2, "orange": [1, { "tech": _3 }], "organic": _2, "origins": _2, "osaka": _2, "otsuka": _2, "ott": _2, "ovh": [1, { "nerdpol": _3 }], "page": [1, { "aem": _3, "hlx": _3, "codeberg": _3, "deuxfleurs": _3, "heyflow": _3, "prvcy": _3, "rocky": _3, "statichost": _3, "pdns": _3, "plesk": _3 }], "panasonic": _2, "paris": _2, "pars": _2, "partners": _2, "parts": _2, "party": _2, "pay": _2, "pccw": _2, "pet": _2, "pfizer": _2, "pharmacy": _2, "phd": _2, "philips": _2, "phone": _2, "photo": _2, "photography": _2, "photos": _62, "physio": _2, "pics": _2, "pictet": _2, "pictures": [1, { "1337": _3 }], "pid": _2, "pin": _2, "ping": _2, "pink": _2, "pioneer": _2, "pizza": [1, { "ngrok": _3 }], "place": _22, "play": _2, "playstation": _2, "plumbing": _2, "plus": [1, { "playit": [2, { "at": _6, "with": _3 }] }], "pnc": _2, "pohl": _2, "poker": _2, "politie": _2, "porn": _2, "praxi": _2, "press": _2, "prime": _2, "prod": _2, "productions": _2, "prof": _2, "progressive": _2, "promo": _2, "properties": _2, "property": _2, "protection": _2, "pru": _2, "prudential": _2, "pub": [1, { "id": _6, "kin": _6, "barsy": _3 }], "pwc": _2, "qpon": _2, "quebec": _2, "quest": _2, "racing": _2, "radio": _2, "read": _2, "realestate": _2, "realtor": _2, "realty": _2, "recipes": _2, "red": _2, "redumbrella": _2, "rehab": _2, "reise": _2, "reisen": _2, "reit": _2, "reliance": _2, "ren": _2, "rent": _2, "rentals": _2, "repair": _2, "report": _2, "republican": _2, "rest": _2, "restaurant": _2, "review": _2, "reviews": [1, { "aem": _3 }], "rexroth": _2, "rich": _2, "richardli": _2, "ricoh": _2, "ril": _2, "rio": _2, "rip": [1, { "clan": _3 }], "rocks": [1, { "myddns": _3, "stackit": _3, "lima-city": _3, "webspace": _3 }], "rodeo": _2, "rogers": _2, "room": _2, "rsvp": _2, "rugby": _2, "ruhr": _2, "run": [1, { "appwrite": _6, "canva": _3, "development": _3, "ravendb": _3, "liara": [2, { "iran": _3 }], "lovable": _3, "needle": _3, "build": _6, "code": _6, "database": _6, "migration": _6, "onporter": _3, "repl": _3, "stackit": _3, "val": _50, "vercel": _3, "wix": _3 }], "rwe": _2, "ryukyu": _2, "saarland": _2, "safe": _2, "safety": _2, "sakura": _2, "sale": _2, "salon": _2, "samsclub": _2, "samsung": _2, "sandvik": _2, "sandvikcoromant": _2, "sanofi": _2, "sap": _2, "sarl": _2, "sas": _2, "save": _2, "saxo": _2, "sbi": _2, "sbs": _2, "scb": _2, "schaeffler": _2, "schmidt": _2, "scholarships": _2, "school": _2, "schule": _2, "schwarz": _2, "science": _2, "scot": [1, { "co": _3, "me": _3, "org": _3, "gov": [2, { "service": _3 }] }], "search": _2, "seat": _2, "secure": _2, "security": _2, "seek": _2, "select": _2, "sener": _2, "services": [1, { "loginline": _3 }], "seven": _2, "sew": _2, "sex": _2, "sexy": _2, "sfr": _2, "shangrila": _2, "sharp": _2, "shell": _2, "shia": _2, "shiksha": _2, "shoes": _2, "shop": [1, { "base": _3, "hoplix": _3, "barsy": _3, "barsyonline": _3, "shopware": _3 }], "shopping": _2, "shouji": _2, "show": _2, "silk": _2, "sina": _2, "singles": _2, "site": [1, { "square": _3, "canva": _25, "cloudera": _6, "convex": _3, "cyon": _3, "caffeine": _3, "fastvps": _3, "figma": _3, "figma-gov": _3, "preview": _3, "heyflow": _3, "jele": _3, "jouwweb": _3, "loginline": _3, "barsy": _3, "co": _3, "notion": _3, "omniwe": _3, "opensocial": _3, "madethis": _3, "support": _3, "platformsh": _6, "tst": _6, "byen": _3, "sol": _3, "srht": _3, "novecore": _3, "cpanel": _3, "wpsquared": _3, "sourcecraft": _3 }], "ski": _2, "skin": _2, "sky": _2, "skype": _2, "sling": _2, "smart": _2, "smile": _2, "sncf": _2, "soccer": _2, "social": _2, "softbank": _2, "software": _2, "sohu": _2, "solar": _2, "solutions": _2, "song": _2, "sony": _2, "soy": _2, "spa": _2, "space": [1, { "myfast": _3, "heiyu": _3, "hf": [2, { "static": _3 }], "app-ionos": _3, "project": _3, "uber": _3, "xs4all": _3 }], "sport": _2, "spot": _2, "srl": _2, "stada": _2, "staples": _2, "star": _2, "statebank": _2, "statefarm": _2, "stc": _2, "stcgroup": _2, "stockholm": _2, "storage": _2, "store": [1, { "barsy": _3, "sellfy": _3, "shopware": _3, "storebase": _3 }], "stream": _2, "studio": _2, "study": _2, "style": _2, "sucks": _2, "supplies": _2, "supply": _2, "support": [1, { "barsy": _3 }], "surf": _2, "surgery": _2, "suzuki": _2, "swatch": _2, "swiss": _2, "sydney": _2, "systems": [1, { "knightpoint": _3, "miren": _3 }], "tab": _2, "taipei": _2, "talk": _2, "taobao": _2, "target": _2, "tatamotors": _2, "tatar": _2, "tattoo": _2, "tax": _2, "taxi": _2, "tci": _2, "tdk": _2, "team": [1, { "discourse": _3, "jelastic": _3 }], "tech": [1, { "cleverapps": _3 }], "technology": _22, "temasek": _2, "tennis": _2, "teva": _2, "thd": _2, "theater": _2, "theatre": _2, "tiaa": _2, "tickets": _2, "tienda": _2, "tips": _2, "tires": _2, "tirol": _2, "tjmaxx": _2, "tjx": _2, "tkmaxx": _2, "tmall": _2, "today": [1, { "prequalifyme": _3 }], "tokyo": _2, "tools": [1, { "addr": _49, "myaddr": _3 }], "top": [1, { "ntdll": _3, "wadl": _6 }], "toray": _2, "toshiba": _2, "total": _2, "tours": _2, "town": _2, "toyota": _2, "toys": _2, "trade": _2, "trading": _2, "training": _2, "travel": _2, "travelers": _2, "travelersinsurance": _2, "trust": _2, "trv": _2, "tube": _2, "tui": _2, "tunes": _2, "tushu": _2, "tvs": _2, "ubank": _2, "ubs": _2, "unicom": _2, "university": _2, "uno": _2, "uol": _2, "ups": _2, "vacations": _2, "vana": _2, "vanguard": _2, "vegas": _2, "ventures": _2, "verisign": _2, "versicherung": _2, "vet": _2, "viajes": _2, "video": _2, "vig": _2, "viking": _2, "villas": _2, "vin": _2, "vip": [1, { "hidns": _3 }], "virgin": _2, "visa": _2, "vision": _2, "viva": _2, "vivo": _2, "vlaanderen": _2, "vodka": _2, "volvo": _2, "vote": _2, "voting": _2, "voto": _2, "voyage": _2, "wales": _2, "walmart": _2, "walter": _2, "wang": _2, "wanggou": _2, "watch": _2, "watches": _2, "weather": _2, "weatherchannel": _2, "webcam": _2, "weber": _2, "website": _62, "wed": _2, "wedding": _2, "weibo": _2, "weir": _2, "whoswho": _2, "wien": _2, "wiki": _62, "williamhill": _2, "win": _2, "windows": _2, "wine": _2, "winners": _2, "wme": _2, "wolterskluwer": _2, "woodside": _2, "work": [1, { "imagine-proxy": _3 }], "works": _2, "world": _2, "wow": _2, "wtc": _2, "wtf": _2, "xbox": _2, "xerox": _2, "xihuan": _2, "xin": _2, "xn--11b4c3d": _2, "\u0915\u0949\u092E": _2, "xn--1ck2e1b": _2, "\u30BB\u30FC\u30EB": _2, "xn--1qqw23a": _2, "\u4F5B\u5C71": _2, "xn--30rr7y": _2, "\u6148\u5584": _2, "xn--3bst00m": _2, "\u96C6\u56E2": _2, "xn--3ds443g": _2, "\u5728\u7EBF": _2, "xn--3pxu8k": _2, "\u70B9\u770B": _2, "xn--42c2d9a": _2, "\u0E04\u0E2D\u0E21": _2, "xn--45q11c": _2, "\u516B\u5366": _2, "xn--4gbrim": _2, "\u0645\u0648\u0642\u0639": _2, "xn--55qw42g": _2, "\u516C\u76CA": _2, "xn--55qx5d": _2, "\u516C\u53F8": _2, "xn--5su34j936bgsg": _2, "\u9999\u683C\u91CC\u62C9": _2, "xn--5tzm5g": _2, "\u7F51\u7AD9": _2, "xn--6frz82g": _2, "\u79FB\u52A8": _2, "xn--6qq986b3xl": _2, "\u6211\u7231\u4F60": _2, "xn--80adxhks": _2, "\u043C\u043E\u0441\u043A\u0432\u0430": _2, "xn--80aqecdr1a": _2, "\u043A\u0430\u0442\u043E\u043B\u0438\u043A": _2, "xn--80asehdb": _2, "\u043E\u043D\u043B\u0430\u0439\u043D": _2, "xn--80aswg": _2, "\u0441\u0430\u0439\u0442": _2, "xn--8y0a063a": _2, "\u8054\u901A": _2, "xn--9dbq2a": _2, "\u05E7\u05D5\u05DD": _2, "xn--9et52u": _2, "\u65F6\u5C1A": _2, "xn--9krt00a": _2, "\u5FAE\u535A": _2, "xn--b4w605ferd": _2, "\u6DE1\u9A6C\u9521": _2, "xn--bck1b9a5dre4c": _2, "\u30D5\u30A1\u30C3\u30B7\u30E7\u30F3": _2, "xn--c1avg": _2, "\u043E\u0440\u0433": _2, "xn--c2br7g": _2, "\u0928\u0947\u091F": _2, "xn--cck2b3b": _2, "\u30B9\u30C8\u30A2": _2, "xn--cckwcxetd": _2, "\u30A2\u30DE\u30BE\u30F3": _2, "xn--cg4bki": _2, "\uC0BC\uC131": _2, "xn--czr694b": _2, "\u5546\u6807": _2, "xn--czrs0t": _2, "\u5546\u5E97": _2, "xn--czru2d": _2, "\u5546\u57CE": _2, "xn--d1acj3b": _2, "\u0434\u0435\u0442\u0438": _2, "xn--eckvdtc9d": _2, "\u30DD\u30A4\u30F3\u30C8": _2, "xn--efvy88h": _2, "\u65B0\u95FB": _2, "xn--fct429k": _2, "\u5BB6\u96FB": _2, "xn--fhbei": _2, "\u0643\u0648\u0645": _2, "xn--fiq228c5hs": _2, "\u4E2D\u6587\u7F51": _2, "xn--fiq64b": _2, "\u4E2D\u4FE1": _2, "xn--fjq720a": _2, "\u5A31\u4E50": _2, "xn--flw351e": _2, "\u8C37\u6B4C": _2, "xn--fzys8d69uvgm": _2, "\u96FB\u8A0A\u76C8\u79D1": _2, "xn--g2xx48c": _2, "\u8D2D\u7269": _2, "xn--gckr3f0f": _2, "\u30AF\u30E9\u30A6\u30C9": _2, "xn--gk3at1e": _2, "\u901A\u8CA9": _2, "xn--hxt814e": _2, "\u7F51\u5E97": _2, "xn--i1b6b1a6a2e": _2, "\u0938\u0902\u0917\u0920\u0928": _2, "xn--imr513n": _2, "\u9910\u5385": _2, "xn--io0a7i": _2, "\u7F51\u7EDC": _2, "xn--j1aef": _2, "\u043A\u043E\u043C": _2, "xn--jlq480n2rg": _2, "\u4E9A\u9A6C\u900A": _2, "xn--jvr189m": _2, "\u98DF\u54C1": _2, "xn--kcrx77d1x4a": _2, "\u98DE\u5229\u6D66": _2, "xn--kput3i": _2, "\u624B\u673A": _2, "xn--mgba3a3ejt": _2, "\u0627\u0631\u0627\u0645\u0643\u0648": _2, "xn--mgba7c0bbn0a": _2, "\u0627\u0644\u0639\u0644\u064A\u0627\u0646": _2, "xn--mgbab2bd": _2, "\u0628\u0627\u0632\u0627\u0631": _2, "xn--mgbca7dzdo": _2, "\u0627\u0628\u0648\u0638\u0628\u064A": _2, "xn--mgbi4ecexp": _2, "\u0643\u0627\u062B\u0648\u0644\u064A\u0643": _2, "xn--mgbt3dhd": _2, "\u0647\u0645\u0631\u0627\u0647": _2, "xn--mk1bu44c": _2, "\uB2F7\uCEF4": _2, "xn--mxtq1m": _2, "\u653F\u5E9C": _2, "xn--ngbc5azd": _2, "\u0634\u0628\u0643\u0629": _2, "xn--ngbe9e0a": _2, "\u0628\u064A\u062A\u0643": _2, "xn--ngbrx": _2, "\u0639\u0631\u0628": _2, "xn--nqv7f": _2, "\u673A\u6784": _2, "xn--nqv7fs00ema": _2, "\u7EC4\u7EC7\u673A\u6784": _2, "xn--nyqy26a": _2, "\u5065\u5EB7": _2, "xn--otu796d": _2, "\u62DB\u8058": _2, "xn--p1acf": [1, { "xn--90amc": _3, "xn--j1aef": _3, "xn--j1ael8b": _3, "xn--h1ahn": _3, "xn--j1adp": _3, "xn--c1avg": _3, "xn--80aaa0cvac": _3, "xn--h1aliz": _3, "xn--90a1af": _3, "xn--41a": _3 }], "\u0440\u0443\u0441": [1, { "\u0431\u0438\u0437": _3, "\u043A\u043E\u043C": _3, "\u043A\u0440\u044B\u043C": _3, "\u043C\u0438\u0440": _3, "\u043C\u0441\u043A": _3, "\u043E\u0440\u0433": _3, "\u0441\u0430\u043C\u0430\u0440\u0430": _3, "\u0441\u043E\u0447\u0438": _3, "\u0441\u043F\u0431": _3, "\u044F": _3 }], "xn--pssy2u": _2, "\u5927\u62FF": _2, "xn--q9jyb4c": _2, "\u307F\u3093\u306A": _2, "xn--qcka1pmc": _2, "\u30B0\u30FC\u30B0\u30EB": _2, "xn--rhqv96g": _2, "\u4E16\u754C": _2, "xn--rovu88b": _2, "\u66F8\u7C4D": _2, "xn--ses554g": _2, "\u7F51\u5740": _2, "xn--t60b56a": _2, "\uB2F7\uB137": _2, "xn--tckwe": _2, "\u30B3\u30E0": _2, "xn--tiq49xqyj": _2, "\u5929\u4E3B\u6559": _2, "xn--unup4y": _2, "\u6E38\u620F": _2, "xn--vermgensberater-ctb": _2, "verm\xF6gensberater": _2, "xn--vermgensberatung-pwb": _2, "verm\xF6gensberatung": _2, "xn--vhquv": _2, "\u4F01\u4E1A": _2, "xn--vuq861b": _2, "\u4FE1\u606F": _2, "xn--w4r85el8fhu5dnra": _2, "\u5609\u91CC\u5927\u9152\u5E97": _2, "xn--w4rs40l": _2, "\u5609\u91CC": _2, "xn--xhq521b": _2, "\u5E7F\u4E1C": _2, "xn--zfr164b": _2, "\u653F\u52A1": _2, "xyz": [1, { "caffeine": _3, "botdash": _3, "telebit": _6 }], "yachts": _2, "yahoo": _2, "yamaxun": _2, "yandex": _2, "yodobashi": _2, "yoga": _2, "yokohama": _2, "you": _2, "youtube": _2, "yun": _2, "zappos": _2, "zara": _2, "zero": _2, "zip": _2, "zone": [1, { "triton": _6, "stackit": _3, "lima": _3 }], "zuerich": _2 }];
      return rules2;
    })();
    function lookupInTrie(parts, trie, index2, allowedMask) {
      let result = null;
      let node = trie;
      while (node !== void 0) {
        if ((node[0] & allowedMask) !== 0) {
          result = {
            index: index2 + 1,
            isIcann: (node[0] & 1) !== 0,
            isPrivate: (node[0] & 2) !== 0
          };
        }
        if (index2 === -1) {
          break;
        }
        const succ = node[1];
        node = Object.prototype.hasOwnProperty.call(succ, parts[index2]) ? succ[parts[index2]] : succ["*"];
        index2 -= 1;
      }
      return result;
    }
    function suffixLookup(hostname, options, out) {
      var _a2;
      if (fastPathLookup(hostname, options, out)) {
        return;
      }
      const hostnameParts = hostname.split(".");
      const allowedMask = (options.allowPrivateDomains ? 2 : 0) | (options.allowIcannDomains ? 1 : 0);
      const exceptionMatch = lookupInTrie(hostnameParts, exceptions, hostnameParts.length - 1, allowedMask);
      if (exceptionMatch !== null) {
        out.isIcann = exceptionMatch.isIcann;
        out.isPrivate = exceptionMatch.isPrivate;
        out.publicSuffix = hostnameParts.slice(exceptionMatch.index + 1).join(".");
        return;
      }
      const rulesMatch = lookupInTrie(hostnameParts, rules, hostnameParts.length - 1, allowedMask);
      if (rulesMatch !== null) {
        out.isIcann = rulesMatch.isIcann;
        out.isPrivate = rulesMatch.isPrivate;
        out.publicSuffix = hostnameParts.slice(rulesMatch.index).join(".");
        return;
      }
      out.isIcann = false;
      out.isPrivate = false;
      out.publicSuffix = (_a2 = hostnameParts[hostnameParts.length - 1]) !== null && _a2 !== void 0 ? _a2 : null;
    }
    var RESULT = getEmptyResult();
    function parse3(url3, options = {}) {
      return parseImpl(url3, 5, suffixLookup, options, getEmptyResult());
    }
    function getHostname(url3, options = {}) {
      resetResult(RESULT);
      return parseImpl(url3, 0, suffixLookup, options, RESULT).hostname;
    }
    function getPublicSuffix(url3, options = {}) {
      resetResult(RESULT);
      return parseImpl(url3, 2, suffixLookup, options, RESULT).publicSuffix;
    }
    function getDomain(url3, options = {}) {
      resetResult(RESULT);
      return parseImpl(url3, 3, suffixLookup, options, RESULT).domain;
    }
    function getSubdomain(url3, options = {}) {
      resetResult(RESULT);
      return parseImpl(url3, 4, suffixLookup, options, RESULT).subdomain;
    }
    function getDomainWithoutSuffix(url3, options = {}) {
      resetResult(RESULT);
      return parseImpl(url3, 5, suffixLookup, options, RESULT).domainWithoutSuffix;
    }
    exports.getDomain = getDomain;
    exports.getDomainWithoutSuffix = getDomainWithoutSuffix;
    exports.getHostname = getHostname;
    exports.getPublicSuffix = getPublicSuffix;
    exports.getSubdomain = getSubdomain;
    exports.parse = parse3;
  }
});

// ../../node_modules/.pnpm/@apify+pseudo_url@2.0.73/node_modules/@apify/pseudo_url/cjs/index.cjs
var require_cjs11 = __commonJS({
  "../../node_modules/.pnpm/@apify+pseudo_url@2.0.73/node_modules/@apify/pseudo_url/cjs/index.cjs"(exports, module) {
    "use strict";
    var __create2 = Object.create;
    var __defProp3 = Object.defineProperty;
    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames2 = Object.getOwnPropertyNames;
    var __getProtoOf2 = Object.getPrototypeOf;
    var __hasOwnProp2 = Object.prototype.hasOwnProperty;
    var __defNormalProp2 = (obj, key, value2) => key in obj ? __defProp3(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
    var __name2 = (target, value2) => __defProp3(target, "name", { value: value2, configurable: true });
    var __export2 = (target, all5) => {
      for (var name in all5)
        __defProp3(target, name, { get: all5[name], enumerable: true });
    };
    var __copyProps2 = (to, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames2(from))
          if (!__hasOwnProp2.call(to, key) && key !== except)
            __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
      }
      return to;
    };
    var __toESM2 = (mod3, isNodeMode, target) => (target = mod3 != null ? __create2(__getProtoOf2(mod3)) : {}, __copyProps2(
      // If the importer is in node compatibility mode or this is not an ESM
      // file that has been converted to a CommonJS file using a Babel-
      // compatible transform (i.e. "__esModule" has not been set), then set
      // "default" to the CommonJS "module.exports" for node compatibility.
      isNodeMode || !mod3 || !mod3.__esModule ? __defProp3(target, "default", { value: mod3, enumerable: true }) : target,
      mod3
    ));
    var __toCommonJS2 = (mod3) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod3);
    var __publicField2 = (obj, key, value2) => __defNormalProp2(obj, typeof key !== "symbol" ? key + "" : key, value2);
    var index_exports = {};
    __export2(index_exports, {
      PseudoUrl: () => PseudoUrl2,
      purlToRegExp: () => purlToRegExp
    });
    module.exports = __toCommonJS2(index_exports);
    var import_node_util5 = __require("util");
    var import_log = __toESM2(require_cjs3());
    var _PseudoUrl = class _PseudoUrl {
      /**
       * @param purl
       *   A pseudo-URL string or a regular expression object.
       *   Using a `RegExp` instance enables more granular control,
       *   such as making the matching case-sensitive.
       */
      constructor(purl) {
        __publicField2(this, "regex");
        if (purl instanceof RegExp) {
          this.regex = purl;
        } else if (typeof purl === "string") {
          this.regex = purlToRegExp(purl);
          import_log.default.debug("PURL parsed", { purl, regex: this.regex });
        } else {
          const type = Array.isArray(purl) ? "array" : typeof purl;
          throw new Error(`Invalid PseudoUrl format, 'string' or 'RegExp' required, got \`${(0, import_node_util5.inspect)(purl)}\` of type '${type}' instead`);
        }
      }
      /**
       * Determines whether a URL matches this pseudo-URL pattern.
       */
      matches(url3) {
        return typeof url3 === "string" && url3.match(this.regex) !== null;
      }
    };
    __name2(_PseudoUrl, "PseudoUrl");
    var PseudoUrl2 = _PseudoUrl;
    function purlToRegExp(purl) {
      const trimmedPurl = purl.trim();
      if (trimmedPurl.length === 0) throw new Error(`Cannot parse PURL '${trimmedPurl}': it must be an non-empty string`);
      let regex2 = "^";
      try {
        let openBrackets = 0;
        for (let i5 = 0; i5 < trimmedPurl.length; i5++) {
          const ch = trimmedPurl.charAt(i5);
          if (ch === "[" && ++openBrackets === 1) {
            regex2 += "(";
          } else if (ch === "]" && openBrackets > 0 && --openBrackets === 0) {
            regex2 += ")";
          } else if (openBrackets > 0) {
            regex2 += ch;
          } else {
            const code = ch.charCodeAt(0);
            if (code >= 48 && code <= 57 || code >= 65 && code <= 90 || code >= 97 && code <= 122) {
              regex2 += ch;
            } else {
              const hex = code < 16 ? `0${code.toString(16)}` : code.toString(16);
              regex2 += `\\x${hex}`;
            }
          }
        }
        regex2 += "$";
      } catch (err2) {
        throw new Error(`Cannot parse PURL '${purl}': ${err2}`);
      }
      return new RegExp(regex2, "i");
    }
    __name2(purlToRegExp, "purlToRegExp");
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/enqueue_links/shared.js
var require_shared = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/enqueue_links/shared.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.tryAbsoluteURL = void 0;
    exports.updateEnqueueLinksPatternCache = updateEnqueueLinksPatternCache2;
    exports.constructRegExpObjectsFromPseudoUrls = constructRegExpObjectsFromPseudoUrls2;
    exports.constructGlobObjectsFromGlobs = constructGlobObjectsFromGlobs2;
    exports.validateGlobPattern = validateGlobPattern2;
    exports.constructRegExpObjectsFromRegExps = constructRegExpObjectsFromRegExps2;
    exports.createRequests = createRequests2;
    exports.filterRequestsByPatterns = filterRequestsByPatterns2;
    exports.createRequestOptions = createRequestOptions2;
    var node_url_1 = __require("node:url");
    var minimatch_1 = require_commonjs2();
    var pseudo_url_1 = require_cjs11();
    var request_1 = require_request();
    var utils_1 = require_utils9();
    Object.defineProperty(exports, "tryAbsoluteURL", { enumerable: true, get: function() {
      return utils_1.tryAbsoluteURL;
    } });
    var MAX_ENQUEUE_LINKS_CACHE_SIZE = 1e3;
    var enqueueLinksPatternCache = /* @__PURE__ */ new Map();
    function updateEnqueueLinksPatternCache2(item, pattern3) {
      enqueueLinksPatternCache.set(item, pattern3);
      if (enqueueLinksPatternCache.size > MAX_ENQUEUE_LINKS_CACHE_SIZE) {
        const key = enqueueLinksPatternCache.keys().next().value;
        enqueueLinksPatternCache.delete(key);
      }
    }
    function constructRegExpObjectsFromPseudoUrls2(pseudoUrls) {
      return pseudoUrls.map((item) => {
        let regexpObject = enqueueLinksPatternCache.get(item);
        if (regexpObject)
          return regexpObject;
        if (typeof item === "string") {
          regexpObject = { regexp: (0, pseudo_url_1.purlToRegExp)(item) };
        } else {
          const { purl, ...requestOptions } = item;
          regexpObject = { regexp: (0, pseudo_url_1.purlToRegExp)(purl), ...requestOptions };
        }
        updateEnqueueLinksPatternCache2(item, regexpObject);
        return regexpObject;
      });
    }
    function constructGlobObjectsFromGlobs2(globs) {
      return globs.filter((glob) => {
        if (!glob) {
          return false;
        }
        if (typeof glob === "string") {
          return glob.trim().length > 0;
        }
        if (glob.glob) {
          return glob.glob.trim().length > 0;
        }
        return false;
      }).map((item) => {
        let globObject = enqueueLinksPatternCache.get(item);
        if (globObject)
          return globObject;
        if (typeof item === "string") {
          globObject = { glob: validateGlobPattern2(item) };
        } else {
          const { glob, ...requestOptions } = item;
          globObject = { glob: validateGlobPattern2(glob), ...requestOptions };
        }
        updateEnqueueLinksPatternCache2(item, globObject);
        return globObject;
      });
    }
    function validateGlobPattern2(glob) {
      const globTrimmed = glob.trim();
      if (globTrimmed.length === 0)
        throw new Error(`Cannot parse Glob pattern '${globTrimmed}': it must be an non-empty string`);
      return globTrimmed;
    }
    function constructRegExpObjectsFromRegExps2(regexps) {
      return regexps.map((item) => {
        let regexpObject = enqueueLinksPatternCache.get(item);
        if (regexpObject)
          return regexpObject;
        if (item instanceof RegExp) {
          regexpObject = { regexp: item };
        } else {
          regexpObject = item;
        }
        updateEnqueueLinksPatternCache2(item, regexpObject);
        return regexpObject;
      });
    }
    function createRequests2(requestOptions, urlPatternObjects, excludePatternObjects = [], strategy, onSkippedUrl) {
      const excludePatternObjectMatchers = excludePatternObjects.map(createPatternObjectMatcher);
      const urlPatternObjectMatchers = urlPatternObjects?.map(createPatternObjectMatcher);
      return requestOptions.map((opts2) => ({ url: typeof opts2 === "string" ? opts2 : opts2.url, opts: opts2 })).filter(({ url: url3 }) => {
        const matchesExcludePatterns = excludePatternObjectMatchers.some(({ match }) => match(url3));
        if (matchesExcludePatterns) {
          onSkippedUrl?.(url3);
        }
        return !matchesExcludePatterns;
      }).map(({ url: url3, opts: opts2 }) => {
        if (!urlPatternObjectMatchers || !urlPatternObjectMatchers.length) {
          return new request_1.Request(typeof opts2 === "string" ? { url: opts2, enqueueStrategy: strategy } : { ...opts2 });
        }
        for (const urlPatternObject of urlPatternObjectMatchers) {
          const { match, glob, regexp, ...requestRegExpOptions } = urlPatternObject;
          if (match(url3)) {
            const request = typeof opts2 === "string" ? { url: opts2, ...requestRegExpOptions, enqueueStrategy: strategy } : { ...opts2, ...requestRegExpOptions, enqueueStrategy: strategy };
            return new request_1.Request(request);
          }
        }
        onSkippedUrl?.(url3);
        return null;
      }).filter((request) => request);
    }
    function filterRequestsByPatterns2(requests, patterns, onSkippedUrl) {
      if (!patterns?.length) {
        return requests;
      }
      const filtered = [];
      const patternMatchers = patterns?.map(createPatternObjectMatcher);
      for (const request of requests) {
        const matchingPattern = patternMatchers.find(({ match }) => match(request.url));
        if (matchingPattern !== void 0) {
          filtered.push(request);
        } else {
          onSkippedUrl?.(request.url);
        }
      }
      return filtered;
    }
    function createRequestOptions2(sources, options = {}) {
      return sources.map((src) => typeof src === "string" ? { url: src, enqueueStrategy: options.strategy } : { ...src, enqueueStrategy: options.strategy }).filter(({ url: url3 }) => {
        try {
          return new node_url_1.URL(url3, options.baseUrl).href;
        } catch (err2) {
          return false;
        }
      }).map((requestOptions) => {
        requestOptions.url = new node_url_1.URL(requestOptions.url, options.baseUrl).href;
        requestOptions.userData ?? (requestOptions.userData = options.userData ?? {});
        if (typeof options.label === "string") {
          requestOptions.userData = {
            ...requestOptions.userData,
            label: options.label
          };
        }
        if (options.skipNavigation) {
          requestOptions.skipNavigation = true;
        }
        return requestOptions;
      });
    }
    function createPatternObjectMatcher(urlPatternObject) {
      const { regexp, glob } = urlPatternObject;
      let match;
      if (regexp) {
        match = (url3) => regexp.test(url3);
      } else if (glob) {
        const m3 = new minimatch_1.Minimatch(glob, { nocase: true });
        match = (url3) => m3.match(url3);
      } else {
        match = () => false;
      }
      return { ...urlPatternObject, match };
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/enqueue_links/enqueue_links.js
var require_enqueue_links = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/enqueue_links/enqueue_links.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.EnqueueStrategy = void 0;
    exports.enqueueLinks = enqueueLinks2;
    exports.resolveBaseUrlForEnqueueLinksFiltering = resolveBaseUrlForEnqueueLinksFiltering2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var tldts_1 = require_cjs10();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var shared_1 = require_shared();
    var EnqueueStrategy2;
    (function(EnqueueStrategy3) {
      EnqueueStrategy3["All"] = "all";
      EnqueueStrategy3["SameHostname"] = "same-hostname";
      EnqueueStrategy3["SameDomain"] = "same-domain";
      EnqueueStrategy3["SameOrigin"] = "same-origin";
    })(EnqueueStrategy2 || (exports.EnqueueStrategy = EnqueueStrategy2 = {}));
    async function enqueueLinks2(options) {
      if (!options || Object.keys(options).length === 0) {
        throw new RangeError([
          "enqueueLinks() was called without the required options. You can only do that when you use the `crawlingContext.enqueueLinks()` method in request handlers.",
          "Check out our guide on how to use enqueueLinks() here: https://crawlee.dev/js/docs/examples/crawl-relative-links"
        ].join("\n"));
      }
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        urls: ow_1.default.array.ofType(ow_1.default.string),
        requestQueue: ow_1.default.object.hasKeys("addRequestsBatched"),
        robotsTxtFile: ow_1.default.optional.object.hasKeys("isAllowed"),
        onSkippedRequest: ow_1.default.optional.function,
        forefront: ow_1.default.optional.boolean,
        skipNavigation: ow_1.default.optional.boolean,
        limit: ow_1.default.optional.number,
        selector: ow_1.default.optional.string,
        baseUrl: ow_1.default.optional.string,
        userData: ow_1.default.optional.object,
        label: ow_1.default.optional.string,
        pseudoUrls: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys("purl"))),
        globs: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys("glob"))),
        exclude: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.regExp, ow_1.default.object.hasKeys("glob"), ow_1.default.object.hasKeys("regexp"))),
        regexps: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.regExp, ow_1.default.object.hasKeys("regexp"))),
        transformRequestFunction: ow_1.default.optional.function,
        strategy: ow_1.default.optional.string.oneOf(Object.values(EnqueueStrategy2)),
        waitForAllRequestsToBeAdded: ow_1.default.optional.boolean
      }));
      const { requestQueue, limit, urls, pseudoUrls, exclude, globs, regexps, transformRequestFunction, forefront, waitForAllRequestsToBeAdded, robotsTxtFile, onSkippedRequest } = options;
      const urlExcludePatternObjects = [];
      const urlPatternObjects = [];
      if (exclude?.length) {
        for (const excl of exclude) {
          if (typeof excl === "string" || "glob" in excl) {
            urlExcludePatternObjects.push(...(0, shared_1.constructGlobObjectsFromGlobs)([excl]));
          } else if (excl instanceof RegExp || "regexp" in excl) {
            urlExcludePatternObjects.push(...(0, shared_1.constructRegExpObjectsFromRegExps)([excl]));
          }
        }
      }
      if (pseudoUrls?.length) {
        log_1.default.deprecated("`pseudoUrls` option is deprecated, use `globs` or `regexps` instead");
        urlPatternObjects.push(...(0, shared_1.constructRegExpObjectsFromPseudoUrls)(pseudoUrls));
      }
      if (globs?.length) {
        urlPatternObjects.push(...(0, shared_1.constructGlobObjectsFromGlobs)(globs));
      }
      if (regexps?.length) {
        urlPatternObjects.push(...(0, shared_1.constructRegExpObjectsFromRegExps)(regexps));
      }
      if (!urlPatternObjects.length) {
        options.strategy ?? (options.strategy = EnqueueStrategy2.SameHostname);
      }
      const enqueueStrategyPatterns = [];
      if (options.baseUrl) {
        const url3 = new URL(options.baseUrl);
        switch (options.strategy) {
          case EnqueueStrategy2.SameHostname:
            enqueueStrategyPatterns.push({ glob: ignoreHttpSchema(`${url3.origin}/**`) });
            break;
          case EnqueueStrategy2.SameDomain: {
            const baseUrlHostname = (0, tldts_1.getDomain)(url3.hostname, { mixedInputs: false });
            if (baseUrlHostname) {
              url3.hostname = baseUrlHostname;
              enqueueStrategyPatterns.push({ glob: ignoreHttpSchema(`${url3.origin.replace(baseUrlHostname, `*.${baseUrlHostname}`)}/**`) }, { glob: ignoreHttpSchema(`${url3.origin}/**`) });
            } else {
              enqueueStrategyPatterns.push({ glob: ignoreHttpSchema(`${url3.origin}/**`) });
            }
            break;
          }
          case EnqueueStrategy2.SameOrigin: {
            enqueueStrategyPatterns.push({ glob: `${url3.origin}/**` });
            break;
          }
          case EnqueueStrategy2.All:
          default:
            enqueueStrategyPatterns.push({ glob: `http{s,}://**` });
            break;
        }
      }
      async function reportSkippedRequests(skippedRequests, reason) {
        if (onSkippedRequest && skippedRequests.length > 0) {
          await Promise.all(skippedRequests.map((request) => {
            return onSkippedRequest({
              url: request.url,
              reason: request.skippedReason ?? reason
            });
          }));
        }
      }
      let requestOptions = (0, shared_1.createRequestOptions)(urls, options);
      if (robotsTxtFile) {
        const skippedRequests = [];
        requestOptions = requestOptions.filter((request) => {
          if (robotsTxtFile.isAllowed(request.url)) {
            return true;
          }
          skippedRequests.push(request);
          return false;
        });
        await reportSkippedRequests(skippedRequests, "robotsTxt");
      }
      if (transformRequestFunction) {
        const skippedRequests = [];
        requestOptions = requestOptions.map((request) => {
          const transformedRequest = transformRequestFunction(request);
          if (!transformedRequest) {
            skippedRequests.push(request);
          }
          return transformedRequest;
        }).filter((r4) => Boolean(r4));
        await reportSkippedRequests(skippedRequests, "filters");
      }
      async function createFilteredRequests() {
        const skippedRequests = [];
        if (urlPatternObjects.length === 0) {
          return (0, shared_1.createRequests)(requestOptions, enqueueStrategyPatterns, urlExcludePatternObjects, options.strategy, (url3) => skippedRequests.push(url3));
        }
        const generatedRequestsFromUserFilters = (0, shared_1.createRequests)(requestOptions, urlPatternObjects, urlExcludePatternObjects, options.strategy, (url3) => skippedRequests.push(url3));
        const filtered = (0, shared_1.filterRequestsByPatterns)(generatedRequestsFromUserFilters, enqueueStrategyPatterns, (url3) => skippedRequests.push(url3));
        await reportSkippedRequests(skippedRequests.map((url3) => ({ url: url3 })), "filters");
        return filtered;
      }
      let requests = await createFilteredRequests();
      if (typeof limit === "number" && limit < requests.length) {
        await reportSkippedRequests(requests.slice(limit), "enqueueLimit");
        requests = requests.slice(0, limit);
      }
      const { addedRequests } = await requestQueue.addRequestsBatched(requests, {
        forefront,
        waitForAllRequestsToBeAdded
      });
      return { processedRequests: addedRequests, unprocessedRequests: [] };
    }
    function resolveBaseUrlForEnqueueLinksFiltering2({ enqueueStrategy, finalRequestUrl, originalRequestUrl, userProvidedBaseUrl }) {
      if (userProvidedBaseUrl) {
        return userProvidedBaseUrl;
      }
      const originalUrlOrigin = new URL(originalRequestUrl).origin;
      const finalUrlOrigin = new URL(finalRequestUrl ?? originalRequestUrl).origin;
      if (enqueueStrategy === EnqueueStrategy2.All) {
        return finalUrlOrigin;
      }
      if (enqueueStrategy === EnqueueStrategy2.SameDomain) {
        const originalHostname = (0, tldts_1.getDomain)(originalUrlOrigin, { mixedInputs: false });
        const finalHostname = (0, tldts_1.getDomain)(finalUrlOrigin, { mixedInputs: false });
        if (originalHostname === finalHostname) {
          return finalUrlOrigin;
        }
        return void 0;
      }
      return originalUrlOrigin;
    }
    function ignoreHttpSchema(pattern3) {
      return pattern3.replace(/^(https?):\/\//, "http{s,}://");
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/enqueue_links/index.js
var require_enqueue_links2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/enqueue_links/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_enqueue_links(), exports);
    tslib_1.__exportStar(require_shared(), exports);
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/sitemap_request_list.js
var require_sitemap_request_list = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/sitemap_request_list.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.SitemapRequestList = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_stream_1 = __require("node:stream");
    var utils_1 = require_utils9();
    var minimatch_1 = require_commonjs2();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var configuration_1 = require_configuration();
    var enqueue_links_1 = require_enqueue_links2();
    var request_1 = require_request();
    var key_value_store_1 = require_key_value_store3();
    var utils_2 = require_utils10();
    var STATE_PERSISTENCE_KEY2 = "SITEMAP_REQUEST_LIST_STATE";
    var SitemapRequestList2 = class _SitemapRequestList {
      /** @internal */
      constructor(options) {
        Object.defineProperty(this, "inProgress", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
        Object.defineProperty(this, "reclaimed", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
        Object.defineProperty(this, "requestData", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "sitemapParsingProgress", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {
            /**
             * URL of the sitemap that is currently being parsed. `null` if no sitemap is being parsed.
             */
            inProgressSitemapUrl: null,
            /**
             * Buffer for URLs from the currently parsed sitemap. Used for tracking partially loaded sitemaps across migrations.
             */
            inProgressEntries: /* @__PURE__ */ new Set(),
            /**
             * Set of sitemap URLs that have not been parsed yet. If the set is empty and `inProgressSitemapUrl` is `null`, the sitemap loading is finished.
             */
            pendingSitemapUrls: /* @__PURE__ */ new Set()
          }
        });
        Object.defineProperty(this, "urlQueueStream", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "abortLoading", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "handledUrlCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "persistStateKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "store", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "closed", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "proxyUrl", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: log_1.default.child({ prefix: "SitemapRequestList" })
        });
        Object.defineProperty(this, "urlExcludePatternObjects", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "urlPatternObjects", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistenceOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          sitemapUrls: ow_1.default.array.ofType(ow_1.default.string),
          proxyUrl: ow_1.default.optional.string,
          persistStateKey: ow_1.default.optional.string,
          signal: ow_1.default.optional.any(),
          timeoutMillis: ow_1.default.optional.number,
          maxBufferSize: ow_1.default.optional.number,
          parseSitemapOptions: ow_1.default.optional.object,
          globs: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys("glob"))),
          exclude: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.regExp, ow_1.default.object.hasKeys("glob"), ow_1.default.object.hasKeys("regexp"))),
          regexps: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.regExp, ow_1.default.object.hasKeys("regexp"))),
          config: ow_1.default.optional.object,
          persistenceOptions: ow_1.default.optional.object
        }));
        const { globs, exclude, regexps, config = configuration_1.Configuration.getGlobalConfig() } = options;
        if (exclude?.length) {
          for (const excl of exclude) {
            if (typeof excl === "string" || "glob" in excl) {
              this.urlExcludePatternObjects.push(...(0, enqueue_links_1.constructGlobObjectsFromGlobs)([excl]));
            } else if (excl instanceof RegExp || "regexp" in excl) {
              this.urlExcludePatternObjects.push(...(0, enqueue_links_1.constructRegExpObjectsFromRegExps)([excl]));
            }
          }
        }
        if (globs?.length) {
          this.urlPatternObjects.push(...(0, enqueue_links_1.constructGlobObjectsFromGlobs)(globs));
        }
        if (regexps?.length) {
          this.urlPatternObjects.push(...(0, enqueue_links_1.constructRegExpObjectsFromRegExps)(regexps));
        }
        this.persistStateKey = options.persistStateKey;
        this.persistenceOptions = { enable: true, ...options.persistenceOptions };
        this.proxyUrl = options.proxyUrl;
        this.urlQueueStream = this.createNewStream(options.maxBufferSize ?? 200);
        this.sitemapParsingProgress.pendingSitemapUrls = new Set(options.sitemapUrls);
        this.events = config.getEventManager();
        this.persistState = this.persistState.bind(this);
      }
      /**
       * Creates a new object stream with the specified highWaterMark.
       * @param highWaterMark High water mark for the stream (the maximum number of objects the stream will buffer).
       * @returns A new object stream.
       */
      createNewStream(highWaterMark) {
        return new node_stream_1.Transform({
          objectMode: true,
          highWaterMark
        }).pause();
      }
      /**
       * Returns a function that checks whether the provided pattern matches the closure URL.
       * @param url URL to be checked.
       * @returns A matcher function that checks whether the pattern matches the closure URL.
       */
      matchesUrl(url3) {
        return (patternObject) => {
          const { regexp, glob } = patternObject;
          const matchesRegex = regexp && url3.match(regexp) || false;
          const matchesGlob = glob && (0, minimatch_1.minimatch)(url3, glob, { nocase: true }) || false;
          return Boolean(matchesRegex || matchesGlob);
        };
      }
      /**
       * Checks whether the URL matches the `globs` / `regexps` / `exclude` provided in the `options`.
       * @param url URL to be checked.
       * @returns `true` if the URL matches the patterns, `false` otherwise.
       */
      isUrlMatchingPatterns(url3) {
        return !this.urlExcludePatternObjects.some(this.matchesUrl(url3)) && (this.urlPatternObjects.length === 0 || this.urlPatternObjects.some(this.matchesUrl(url3)));
      }
      /**
       * Adds a URL to the queue of parsed URLs.
       *
       * Blocks if the stream is full until it is drained.
       */
      async pushNextUrl(url3) {
        return new Promise((resolve4) => {
          if (this.closed || url3 && !this.isUrlMatchingPatterns(url3)) {
            resolve4();
            return;
          }
          if (!this.urlQueueStream.push(url3)) {
            this.urlQueueStream.once("readdata", () => {
              resolve4();
            });
          } else {
            resolve4();
          }
        });
      }
      /**
       * Reads the next URL from the queue of parsed URLs.
       *
       * If the stream is empty, blocks until a new URL is pushed.
       * @returns The next URL from the queue or `null` if we have read all URLs.
       */
      async readNextUrl() {
        return new Promise((resolve4) => {
          if (this.closed) {
            resolve4(null);
            return;
          }
          const result = this.urlQueueStream.read();
          if (!result && !this.isSitemapFullyLoaded()) {
            this.urlQueueStream.once("readable", () => {
              const nextUrl = this.urlQueueStream.read();
              resolve4(nextUrl);
            });
          } else {
            resolve4(result);
          }
          this.urlQueueStream.emit("readdata");
        });
      }
      /**
       * Indicates whether the background processing of sitemap contents has successfully finished.
       *
       * If this is `false`, the background processing is either still in progress or was aborted.
       */
      isSitemapFullyLoaded() {
        return this.sitemapParsingProgress.inProgressSitemapUrl === null && this.sitemapParsingProgress.pendingSitemapUrls.size === 0;
      }
      /**
       * Start processing the sitemaps and loading the URLs.
       *
       * Resolves once all the sitemaps URLs have been fully loaded (sets `isSitemapFullyLoaded` to `true`).
       */
      async load({ parseSitemapOptions }) {
        while (!this.isSitemapFullyLoaded() && !this.abortLoading) {
          const sitemapUrl = this.sitemapParsingProgress.inProgressSitemapUrl ?? this.sitemapParsingProgress.pendingSitemapUrls.values().next().value;
          try {
            for await (const item of (0, utils_1.parseSitemap)([{ type: "url", url: sitemapUrl }], this.proxyUrl, {
              ...parseSitemapOptions,
              maxDepth: 0,
              emitNestedSitemaps: true
            })) {
              if (!item.originSitemapUrl) {
                this.sitemapParsingProgress.pendingSitemapUrls.add(item.loc);
                continue;
              }
              if (!this.sitemapParsingProgress.inProgressEntries.has(item.loc)) {
                await this.pushNextUrl(item.loc);
                this.sitemapParsingProgress.inProgressEntries.add(item.loc);
              }
            }
          } catch (e4) {
            this.log.error("Error loading sitemap contents:", e4);
          }
          this.sitemapParsingProgress.pendingSitemapUrls.delete(sitemapUrl);
          this.sitemapParsingProgress.inProgressEntries.clear();
          this.sitemapParsingProgress.inProgressSitemapUrl = null;
        }
        this.urlQueueStream.end();
      }
      /**
       * Open a sitemap and start processing it.
       *
       * Resolves to a new instance of `SitemapRequestList`, which **might not be fully loaded yet** - i.e. the sitemap might still be loading in the background.
       *
       * Track the loading progress using the `isSitemapFullyLoaded` property.
       */
      static async open(options) {
        const requestList = new _SitemapRequestList({
          ...options,
          persistStateKey: options.persistStateKey ?? STATE_PERSISTENCE_KEY2
        });
        await requestList.restoreState();
        void requestList.load({ parseSitemapOptions: options.parseSitemapOptions });
        if (requestList.persistenceOptions.enable) {
          requestList.events.on("persistState", requestList.persistState);
        }
        options?.signal?.addEventListener("abort", () => {
          requestList.abortLoading = true;
        });
        if (options.timeoutMillis) {
          setTimeout(() => {
            requestList.abortLoading = true;
          }, options.timeoutMillis);
        }
        return requestList;
      }
      /**
       * @inheritDoc
       */
      length() {
        return this.urlQueueStream.readableLength + this.handledUrlCount - this.inProgress.size - this.reclaimed.size;
      }
      /**
       * @inheritDoc
       */
      async isFinished() {
        return await this.isEmpty() && this.inProgress.size === 0 && (this.isSitemapFullyLoaded() || this.abortLoading);
      }
      /**
       * @inheritDoc
       */
      async isEmpty() {
        return this.reclaimed.size === 0 && this.urlQueueStream.readableLength === 0;
      }
      /**
       * @inheritDoc
       */
      handledCount() {
        return this.handledUrlCount;
      }
      /**
       * @inheritDoc
       */
      async persistState() {
        if (this.persistStateKey === void 0) {
          return;
        }
        this.store ?? (this.store = await key_value_store_1.KeyValueStore.open());
        const urlQueue = [];
        while (this.urlQueueStream.readableLength > 0) {
          const url3 = this.urlQueueStream.read();
          if (url3 === null) {
            break;
          }
          urlQueue.push(url3);
        }
        const newStream = this.createNewStream(this.urlQueueStream.readableHighWaterMark);
        for (const url3 of urlQueue) {
          newStream.push(url3);
        }
        if (this.urlQueueStream.writableEnded) {
          newStream.end();
        }
        this.urlQueueStream = newStream;
        await this.store.setValue(this.persistStateKey, {
          sitemapParsingProgress: {
            pendingSitemapUrls: Array.from(this.sitemapParsingProgress.pendingSitemapUrls),
            inProgressSitemapUrl: this.sitemapParsingProgress.inProgressSitemapUrl,
            inProgressEntries: Array.from(this.sitemapParsingProgress.inProgressEntries)
          },
          urlQueue,
          reclaimed: [...this.inProgress, ...this.reclaimed],
          // In-progress and reclaimed requests will be both retried if state is restored
          requestData: Array.from(this.requestData.entries()),
          abortLoading: this.abortLoading,
          closed: this.closed
        });
      }
      async restoreState() {
        await (0, utils_2.purgeDefaultStorages)({ onlyPurgeOnce: true });
        if (this.persistStateKey === void 0) {
          return;
        }
        this.store ?? (this.store = await key_value_store_1.KeyValueStore.open());
        const state = await this.store.getValue(this.persistStateKey);
        if (state === null) {
          return;
        }
        this.reclaimed = new Set(state.reclaimed);
        this.sitemapParsingProgress = {
          pendingSitemapUrls: new Set(state.sitemapParsingProgress.pendingSitemapUrls),
          inProgressSitemapUrl: state.sitemapParsingProgress.inProgressSitemapUrl,
          inProgressEntries: new Set(state.sitemapParsingProgress.inProgressEntries)
        };
        this.requestData = new Map(state.requestData ?? []);
        for (const url3 of state.urlQueue) {
          this.urlQueueStream.push(url3);
        }
        this.abortLoading = state.abortLoading;
        this.closed = state.closed;
      }
      /**
       * @inheritDoc
       */
      async fetchNextRequest() {
        let nextUrl = this.reclaimed.values().next().value;
        if (nextUrl) {
          this.reclaimed.delete(nextUrl);
        } else {
          nextUrl = await this.readNextUrl();
          if (!nextUrl) {
            return null;
          }
          this.requestData.set(nextUrl, new request_1.Request({ url: nextUrl }));
        }
        this.inProgress.add(nextUrl);
        return this.requestData.get(nextUrl);
      }
      /**
       * @inheritDoc
       */
      async *[Symbol.asyncIterator]() {
        while (!await this.isFinished()) {
          const request = await this.fetchNextRequest();
          if (!request)
            break;
          yield request;
        }
      }
      /**
       * @inheritDoc
       */
      async reclaimRequest(request) {
        this.ensureInProgressAndNotReclaimed(request.url);
        this.reclaimed.add(request.url);
        this.inProgress.delete(request.url);
      }
      /**
       * Aborts the internal sitemap loading, stops the processing of the sitemap contents and drops all the pending URLs.
       *
       * Calling `fetchNextRequest()` after this method will always return `null`.
       */
      async teardown() {
        this.closed = true;
        this.abortLoading = true;
        this.events.off("persistState", this.persistState);
        await this.persistState();
        this.urlQueueStream.emit("readdata");
      }
      /**
       * @inheritDoc
       */
      async markRequestHandled(request) {
        this.handledUrlCount += 1;
        this.ensureInProgressAndNotReclaimed(request.url);
        this.inProgress.delete(request.url);
        this.requestData.delete(request.url);
      }
      ensureInProgressAndNotReclaimed(url3) {
        if (!this.inProgress.has(url3)) {
          throw new Error(`The request is not being processed (url: ${url3})`);
        }
        if (this.reclaimed.has(url3)) {
          throw new Error(`The request was already reclaimed (url: ${url3})`);
        }
      }
    };
    exports.SitemapRequestList = SitemapRequestList2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_manager_tandem.js
var require_request_manager_tandem = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_manager_tandem.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RequestManagerTandem = void 0;
    var log_1 = require_log();
    var RequestManagerTandem2 = class {
      constructor(requestList, requestQueue) {
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestList", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestQueue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.log = log_1.log.child({ prefix: "RequestManagerTandem" });
        this.requestList = requestList;
        this.requestQueue = requestQueue;
      }
      /**
       * Transfers a batch of requests from the RequestList to the RequestQueue.
       * Handles both successful transfers and failures appropriately.
       * @private
       */
      async transferNextBatchToQueue() {
        const request = await this.requestList.fetchNextRequest();
        if (request === null) {
          return;
        }
        try {
          await this.requestQueue.addRequest(request, { forefront: true });
        } catch (error) {
          this.log.error("Adding of request from the RequestList to the RequestQueue failed, reclaiming request back to the list.", { request });
          await this.requestList.reclaimRequest(request);
          return;
        }
        await this.requestList.markRequestHandled(request);
      }
      /**
       * Fetches the next request from the RequestQueue. If the queue is empty and the RequestList
       * is not finished, it will transfer a batch of requests from the list to the queue first.
       * @inheritdoc
       */
      async fetchNextRequest() {
        const [listEmpty, listFinished] = await Promise.all([
          this.requestList.isEmpty(),
          this.requestList.isFinished()
        ]);
        if (!listEmpty && !listFinished) {
          await this.transferNextBatchToQueue();
        }
        return this.requestQueue.fetchNextRequest();
      }
      /**
       * @inheritdoc
       */
      async isFinished() {
        const storagesFinished = await Promise.all([this.requestList.isFinished(), this.requestQueue.isFinished()]);
        return storagesFinished.every(Boolean);
      }
      /**
       * @inheritdoc
       */
      async isEmpty() {
        const storagesEmpty = await Promise.all([this.requestList.isEmpty(), this.requestQueue.isEmpty()]);
        return storagesEmpty.every(Boolean);
      }
      /**
       * @inheritdoc
       */
      async handledCount() {
        return await this.requestQueue.handledCount();
      }
      /**
       * @inheritdoc
       */
      getTotalCount() {
        return this.requestQueue.getTotalCount();
      }
      /**
       * @inheritdoc
       */
      getPendingCount() {
        return this.requestQueue.getPendingCount() + this.requestList.length() - this.requestList.handledCount();
      }
      /**
       * @inheritdoc
       */
      async *[Symbol.asyncIterator]() {
        while (true) {
          const req = await this.fetchNextRequest();
          if (!req)
            break;
          yield req;
        }
      }
      /**
       * @inheritdoc
       */
      async markRequestHandled(request) {
        return this.requestQueue.markRequestHandled(request);
      }
      /**
       * @inheritdoc
       */
      async reclaimRequest(request, options) {
        return await this.requestQueue.reclaimRequest(request, options);
      }
      /**
       * @inheritdoc
       */
      async addRequest(requestLike, options) {
        return await this.requestQueue.addRequest(requestLike, options);
      }
      /**
       * @inheritdoc
       */
      async addRequestsBatched(requests, options) {
        return await this.requestQueue.addRequestsBatched(requests, options);
      }
    };
    exports.RequestManagerTandem = RequestManagerTandem2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/index.js
var require_storages = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RequestQueueV2 = exports.RequestQueue = exports.RequestQueueV1 = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_dataset3(), exports);
    tslib_1.__exportStar(require_key_value_store3(), exports);
    tslib_1.__exportStar(require_request_list(), exports);
    tslib_1.__exportStar(require_request_list_adapter(), exports);
    tslib_1.__exportStar(require_request_provider(), exports);
    var request_queue_1 = require_request_queue3();
    Object.defineProperty(exports, "RequestQueueV1", { enumerable: true, get: function() {
      return request_queue_1.RequestQueueV1;
    } });
    var request_queue_v2_1 = require_request_queue_v2();
    Object.defineProperty(exports, "RequestQueue", { enumerable: true, get: function() {
      return request_queue_v2_1.RequestQueue;
    } });
    var request_queue_v2_2 = require_request_queue_v2();
    Object.defineProperty(exports, "RequestQueueV2", { enumerable: true, get: function() {
      return request_queue_v2_2.RequestQueue;
    } });
    tslib_1.__exportStar(require_storage_manager(), exports);
    tslib_1.__exportStar(require_utils10(), exports);
    tslib_1.__exportStar(require_access_checking(), exports);
    tslib_1.__exportStar(require_sitemap_request_list(), exports);
    tslib_1.__exportStar(require_request_manager_tandem(), exports);
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/crawler_commons.js
var require_crawler_commons = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/crawler_commons.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RequestHandlerResult = void 0;
    var storages_1 = require_storages();
    var RequestHandlerResult2 = class {
      constructor(config, crawleeStateKey) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "crawleeStateKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: crawleeStateKey
        });
        Object.defineProperty(this, "_keyValueStoreChanges", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        Object.defineProperty(this, "pushDataCalls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "addRequestsCalls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "pushData", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: async (data2, datasetIdOrName) => {
            this.pushDataCalls.push([data2, datasetIdOrName]);
          }
        });
        Object.defineProperty(this, "addRequests", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: async (requests, options = {}) => {
            this.addRequestsCalls.push([requests, options]);
          }
        });
        Object.defineProperty(this, "useState", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: async (defaultValue) => {
            const store = await this.getKeyValueStore(void 0);
            return await store.getAutoSavedValue(this.crawleeStateKey, defaultValue);
          }
        });
        Object.defineProperty(this, "getKeyValueStore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: async (idOrName) => {
            const store = await storages_1.KeyValueStore.open(idOrName, { config: this.config });
            return {
              id: this.idOrDefault(idOrName),
              name: idOrName,
              getValue: async (key) => this.getKeyValueStoreChangedValue(idOrName, key) ?? await store.getValue(key),
              setValue: async (key, value2, options) => {
                this.setKeyValueStoreChangedValue(idOrName, key, value2, options);
              },
              getAutoSavedValue: store.getAutoSavedValue.bind(store),
              getPublicUrl: store.getPublicUrl.bind(store)
            };
          }
        });
        Object.defineProperty(this, "idOrDefault", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: (idOrName) => idOrName ?? this.config.get("defaultKeyValueStoreId")
        });
        Object.defineProperty(this, "getKeyValueStoreChangedValue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: (idOrName, key) => {
            var _a2;
            const id = this.idOrDefault(idOrName);
            (_a2 = this._keyValueStoreChanges)[id] ?? (_a2[id] = {});
            return this.keyValueStoreChanges[id][key]?.changedValue ?? null;
          }
        });
        Object.defineProperty(this, "setKeyValueStoreChangedValue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: (idOrName, key, changedValue, options) => {
            var _a2;
            const id = this.idOrDefault(idOrName);
            (_a2 = this._keyValueStoreChanges)[id] ?? (_a2[id] = {});
            this._keyValueStoreChanges[id][key] = { changedValue, options };
          }
        });
      }
      /**
       * A record of calls to {@link RestrictedCrawlingContext.pushData}, {@link RestrictedCrawlingContext.addRequests}, {@link RestrictedCrawlingContext.enqueueLinks} made by a request handler.
       */
      get calls() {
        return {
          pushData: this.pushDataCalls,
          addRequests: this.addRequestsCalls
        };
      }
      /**
       * A record of changes made to key-value stores by a request handler.
       */
      get keyValueStoreChanges() {
        return this._keyValueStoreChanges;
      }
      /**
       * Items added to datasets by a request handler.
       */
      get datasetItems() {
        return this.pushDataCalls.flatMap(([data2, datasetIdOrName]) => (Array.isArray(data2) ? data2 : [data2]).map((item) => ({ item, datasetIdOrName })));
      }
      /**
       * URLs enqueued to the request queue by a request handler, either via {@link RestrictedCrawlingContext.addRequests} or {@link RestrictedCrawlingContext.enqueueLinks}
       */
      get enqueuedUrls() {
        const result = [];
        for (const [requests] of this.addRequestsCalls) {
          for (const request of requests) {
            if (typeof request === "object" && (!("requestsFromUrl" in request) || request.requestsFromUrl !== void 0) && request.url !== void 0) {
              result.push({ url: request.url, label: request.label });
            } else if (typeof request === "string") {
              result.push({ url: request });
            }
          }
        }
        return result;
      }
      /**
       * URL lists enqueued to the request queue by a request handler via {@link RestrictedCrawlingContext.addRequests} using the `requestsFromUrl` option.
       */
      get enqueuedUrlLists() {
        const result = [];
        for (const [requests] of this.addRequestsCalls) {
          for (const request of requests) {
            if (typeof request === "object" && "requestsFromUrl" in request && request.requestsFromUrl !== void 0) {
              result.push({ listUrl: request.requestsFromUrl, label: request.label });
            }
          }
        }
        return result;
      }
    };
    exports.RequestHandlerResult = RequestHandlerResult2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/crawler_extension.js
var require_crawler_extension = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/crawler_extension.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.CrawlerExtension = void 0;
    var log_1 = require_log();
    var CrawlerExtension2 = class {
      constructor() {
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: this.constructor.name
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: log_1.log.child({ prefix: this.name })
        });
      }
      getCrawlerOptions() {
        throw new Error(`${this.name} has not implemented "getCrawlerOptions" method.`);
      }
    };
    exports.CrawlerExtension = CrawlerExtension2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/crawler_utils.js
var require_crawler_utils = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/crawler_utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.handleRequestTimeout = handleRequestTimeout2;
    var timeout_1 = require_cjs();
    function handleRequestTimeout2({ session, errorMessage }) {
      session?.markBad();
      const timeoutMillis = errorMessage.match(/(\d+)\s?ms/)?.[1];
      const timeoutSecs = Number(timeoutMillis) / 1e3;
      throw new timeout_1.TimeoutError(`Navigation timed out after ${timeoutSecs} seconds.`);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/error_snapshotter.js
var require_error_snapshotter = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/error_snapshotter.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ErrorSnapshotter = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_crypto_1 = tslib_1.__importDefault(__require("node:crypto"));
    var ErrorSnapshotter2 = class _ErrorSnapshotter {
      /**
       * Capture a snapshot of the error context.
       */
      async captureSnapshot(error, context) {
        try {
          const page = context?.page;
          const body = context?.body;
          const keyValueStore = await context?.getKeyValueStore();
          if (!keyValueStore || !body && !page) {
            return {};
          }
          const fileName = this.generateFilename(error);
          let screenshotFileName;
          let htmlFileName;
          if (page) {
            const capturedFiles = await this.contextCaptureSnapshot(context, fileName);
            if (capturedFiles) {
              screenshotFileName = capturedFiles.screenshotFileName;
              htmlFileName = capturedFiles.htmlFileName;
            }
            if (!htmlFileName) {
              const html = await page.content();
              htmlFileName = html ? await this.saveHTMLSnapshot(html, keyValueStore, fileName) : void 0;
            }
          } else if (typeof body === "string") {
            htmlFileName = await this.saveHTMLSnapshot(body, keyValueStore, fileName);
          }
          return {
            screenshotFileName,
            screenshotFileUrl: screenshotFileName && keyValueStore.getPublicUrl(screenshotFileName),
            htmlFileName,
            htmlFileUrl: htmlFileName && keyValueStore.getPublicUrl(htmlFileName)
          };
        } catch {
          return {};
        }
      }
      /**
       * Captures a snapshot of the current page using the context.saveSnapshot function.
       * This function is applicable for browser contexts only.
       * Returns an object containing the filenames of the screenshot and HTML file.
       */
      async contextCaptureSnapshot(context, fileName) {
        try {
          await context.saveSnapshot({ key: fileName });
          return {
            screenshotFileName: `${fileName}.jpg`,
            htmlFileName: `${fileName}.html`
          };
        } catch {
          return void 0;
        }
      }
      /**
       * Save the HTML snapshot of the page, and return the fileName with the extension.
       */
      async saveHTMLSnapshot(html, keyValueStore, fileName) {
        try {
          await keyValueStore.setValue(fileName, html, { contentType: "text/html" });
          return `${fileName}.html`;
        } catch {
          return void 0;
        }
      }
      /**
       * Generate a unique fileName for each error snapshot.
       */
      generateFilename(error) {
        const { SNAPSHOT_PREFIX, BASE_MESSAGE, MAX_HASH_LENGTH, MAX_ERROR_CHARACTERS, MAX_FILENAME_LENGTH } = _ErrorSnapshotter;
        const errorStackHash = node_crypto_1.default.createHash("sha1").update(error.stack || error.message || "").digest("hex").slice(0, MAX_HASH_LENGTH);
        const errorMessagePrefix = (error.message || BASE_MESSAGE).slice(0, MAX_ERROR_CHARACTERS).trim();
        const sanitizeString = (str) => {
          return str.replace(/^\W+|\W+$/g, "");
        };
        const fileName = `${SNAPSHOT_PREFIX}_${sanitizeString(errorStackHash)}_${sanitizeString(errorMessagePrefix)}`.replace(/\W+/g, "-").slice(0, MAX_FILENAME_LENGTH);
        return fileName;
      }
    };
    exports.ErrorSnapshotter = ErrorSnapshotter2;
    Object.defineProperty(ErrorSnapshotter2, "MAX_ERROR_CHARACTERS", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: 30
    });
    Object.defineProperty(ErrorSnapshotter2, "MAX_HASH_LENGTH", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: 30
    });
    Object.defineProperty(ErrorSnapshotter2, "MAX_FILENAME_LENGTH", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: 250
    });
    Object.defineProperty(ErrorSnapshotter2, "BASE_MESSAGE", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: "An error occurred"
    });
    Object.defineProperty(ErrorSnapshotter2, "SNAPSHOT_PREFIX", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: "ERROR_SNAPSHOT"
    });
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/error_tracker.js
var require_error_tracker = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/error_tracker.js"(exports) {
    "use strict";
    var _ErrorTracker_options;
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ErrorTracker = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_util_1 = __require("node:util");
    var error_snapshotter_1 = require_error_snapshotter();
    var extractPathFromStackTraceLine = (line2) => {
      const lastStartingRoundBracketIndex = line2.lastIndexOf("(");
      if (lastStartingRoundBracketIndex !== -1) {
        const closingRoundBracketIndex = line2.indexOf(")", lastStartingRoundBracketIndex);
        if (closingRoundBracketIndex !== -1) {
          return line2.slice(lastStartingRoundBracketIndex + 1, closingRoundBracketIndex);
        }
      }
      return line2;
    };
    var getPathFromStackTrace = (stack) => {
      for (const line2 of stack) {
        const path3 = extractPathFromStackTraceLine(line2);
        if (path3.startsWith("node:") || path3.includes("/node_modules/") || path3.includes("\\node_modules\\")) {
          continue;
        }
        return path3;
      }
      return extractPathFromStackTraceLine(stack[0]);
    };
    var getStackTraceGroup = (error, storage2, showFullStack) => {
      const stack = error.stack?.split("\n").map((line2) => line2.trim());
      let sliceAt = -1;
      if (stack) {
        for (let i5 = 0; i5 < stack.length; i5++) {
          if (stack[i5].startsWith("at ") || stack[i5].startsWith("eval at ")) {
            sliceAt = i5;
            break;
          }
        }
      }
      let normalizedStackTrace = null;
      if (sliceAt !== -1) {
        normalizedStackTrace = showFullStack ? stack.slice(sliceAt).map((x) => x.trim()).join("\n") : getPathFromStackTrace(stack.slice(sliceAt));
      }
      if (!normalizedStackTrace) {
        normalizedStackTrace = "missing stack trace";
      }
      if (!(normalizedStackTrace in storage2)) {
        storage2[normalizedStackTrace] = /* @__PURE__ */ Object.create(null);
      }
      return storage2[normalizedStackTrace];
    };
    var getErrorCodeGroup = (error, storage2) => {
      let { code } = error;
      if (code === void 0) {
        code = "missing error code";
      }
      if (!(code in storage2)) {
        storage2[code] = /* @__PURE__ */ Object.create(null);
      }
      return storage2[String(code)];
    };
    var getErrorNameGroup = (error, storage2) => {
      const { name } = error;
      if (!(name in storage2)) {
        storage2[name] = /* @__PURE__ */ Object.create(null);
      }
      return storage2[name];
    };
    var findBiggestWordIntersection = (a5, b3) => {
      let maxStreak = 0;
      let bStreakIndex = -1;
      let aStreakIndex = -1;
      for (let aIndex = 0; aIndex < a5.length; aIndex++) {
        let bIndex = -1;
        do {
          let aWalkIndex = aIndex;
          bIndex = b3.indexOf(a5[aIndex], bIndex + 1);
          let bWalkIndex = bIndex;
          let streak = 0;
          while (aWalkIndex < a5.length && bWalkIndex < b3.length && b3[bWalkIndex++] === a5[aWalkIndex++]) {
            streak++;
          }
          if (streak > maxStreak) {
            maxStreak = streak;
            aStreakIndex = aIndex;
            bStreakIndex = bIndex;
          }
        } while (bIndex !== -1);
      }
      return {
        maxStreak,
        aStreakIndex,
        bStreakIndex
      };
    };
    var arrayCount = (array, target) => {
      let result = 0;
      for (const item of array) {
        if (item === target) {
          result++;
        }
      }
      return result;
    };
    var calculatePlaceholder = (a5, b3) => {
      const { maxStreak, aStreakIndex, bStreakIndex } = findBiggestWordIntersection(a5, b3);
      if (maxStreak === 0) {
        return ["_"];
      }
      const leftA = a5.slice(0, aStreakIndex);
      const leftB = b3.slice(0, bStreakIndex);
      const rightA = a5.slice(aStreakIndex + maxStreak);
      const rightB = b3.slice(bStreakIndex + maxStreak);
      const output = [];
      if (leftA.length !== 0 || leftB.length !== 0) {
        output.push(...calculatePlaceholder(leftA, leftB));
      }
      output.push(...a5.slice(aStreakIndex, aStreakIndex + maxStreak));
      if (rightA.length !== 0 || rightB.length !== 0) {
        output.push(...calculatePlaceholder(rightA, rightB));
      }
      return output;
    };
    var normalizedCalculatePlaceholder = (a5, b3) => {
      const output = calculatePlaceholder(a5, b3);
      if (arrayCount(output, "_") / output.length >= 0.5) {
        return ["_"];
      }
      return output;
    };
    var mergeMessages = (a5, b3, storage2) => {
      const placeholder = normalizedCalculatePlaceholder(a5.split(" "), b3.split(" ")).join(" ");
      if (placeholder === "_") {
        return void 0;
      }
      const count = storage2[a5].count + storage2[b3].count;
      delete storage2[a5];
      delete storage2[b3];
      storage2[placeholder] = Object.assign(/* @__PURE__ */ Object.create(null), {
        count
      });
      return placeholder;
    };
    var getErrorMessageGroup = (error, storage2, showFullMessage) => {
      let { message } = error;
      if (!message) {
        try {
          message = typeof error === "string" ? error : `Unknown error message. Received non-error object: ${JSON.stringify(error)}`;
        } catch {
          message = `Unknown error message. Received non-error object, and could not stringify it: ${(0, node_util_1.inspect)(error, {
            depth: 0
          })}`;
        }
      }
      if (!showFullMessage) {
        const newLineIndex = message.indexOf("\n");
        message = message.slice(0, newLineIndex === -1 ? void 0 : newLineIndex);
      }
      if (!(message in storage2)) {
        storage2[message] = Object.assign(/* @__PURE__ */ Object.create(null), {
          count: 0
        });
        for (const existingMessage in storage2) {
          const newMessage = mergeMessages(message, existingMessage, storage2);
          if (newMessage) {
            message = newMessage;
            break;
          }
        }
      }
      return storage2[message];
    };
    var increaseCount = (group) => {
      if (!("count" in group)) {
        group.count = 0;
      }
      group.count++;
    };
    var ErrorTracker2 = class {
      constructor(options = {}) {
        _ErrorTracker_options.set(this, void 0);
        Object.defineProperty(this, "result", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "total", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "errorSnapshotter", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        tslib_1.__classPrivateFieldSet(this, _ErrorTracker_options, {
          showErrorCode: true,
          showErrorName: true,
          showStackTrace: true,
          showFullStack: false,
          showErrorMessage: true,
          showFullMessage: false,
          saveErrorSnapshots: false,
          ...options
        }, "f");
        if (tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").saveErrorSnapshots) {
          this.errorSnapshotter = new error_snapshotter_1.ErrorSnapshotter();
        }
        this.result = /* @__PURE__ */ Object.create(null);
        this.total = 0;
      }
      updateGroup(error) {
        let group = this.result;
        if (tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").showStackTrace) {
          group = getStackTraceGroup(error, group, tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").showFullStack);
        }
        if (tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").showErrorCode) {
          group = getErrorCodeGroup(error, group);
        }
        if (tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").showErrorName) {
          group = getErrorNameGroup(error, group);
        }
        if (tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").showErrorMessage) {
          group = getErrorMessageGroup(error, group, tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").showFullMessage);
        }
        increaseCount(group);
        return group;
      }
      add(error) {
        this.total++;
        this.updateGroup(error);
        if (typeof error.cause === "object" && error.cause !== null) {
          this.add(error.cause);
        }
      }
      /**
       * This method is async, because it captures a snapshot of the error context.
       * We added this new method to avoid breaking changes.
       */
      async addAsync(error, context) {
        this.total++;
        const group = this.updateGroup(error);
        if (group.count === 1 && context) {
          await this.captureSnapshot(group, error, context).catch(() => {
          });
        }
        if (typeof error.cause === "object" && error.cause !== null) {
          await this.addAsync(error.cause);
        }
      }
      getUniqueErrorCount() {
        let count = 0;
        const goDeeper = (group) => {
          if ("count" in group) {
            count++;
            return;
          }
          for (const key in group) {
            goDeeper(group[key]);
          }
        };
        goDeeper(this.result);
        return count;
      }
      getMostPopularErrors(count) {
        const result = [];
        const goDeeper = (group, path3) => {
          if ("count" in group) {
            result.push([group.count, path3]);
            return;
          }
          for (const key in group) {
            goDeeper(group[key], [...path3, key]);
          }
        };
        goDeeper(this.result, []);
        return result.sort((a5, b3) => b3[0] - a5[0]).slice(0, count);
      }
      async captureSnapshot(storage2, error, context) {
        if (!this.errorSnapshotter) {
          return;
        }
        const { screenshotFileUrl, htmlFileUrl } = await this.errorSnapshotter.captureSnapshot(error, context);
        storage2.firstErrorScreenshotUrl = screenshotFileUrl;
        storage2.firstErrorHtmlUrl = htmlFileUrl;
      }
      reset() {
        for (const key in this.result) {
          delete this.result[key];
        }
      }
    };
    exports.ErrorTracker = ErrorTracker2;
    _ErrorTracker_options = /* @__PURE__ */ new WeakMap();
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/statistics.js
var require_statistics = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/statistics.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Statistics = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var configuration_1 = require_configuration();
    var log_1 = require_log();
    var key_value_store_1 = require_key_value_store3();
    var error_tracker_1 = require_error_tracker();
    var Job = class {
      constructor() {
        Object.defineProperty(this, "lastRunAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "durationMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
      }
      run() {
        this.lastRunAt = Date.now();
      }
      finish() {
        this.durationMillis = Date.now() - this.lastRunAt;
        return this.durationMillis;
      }
    };
    var errorTrackerConfig = {
      showErrorCode: true,
      showErrorName: true,
      showStackTrace: true,
      showFullStack: false,
      showErrorMessage: true,
      showFullMessage: false
    };
    var Statistics2 = class _Statistics {
      /**
       * @internal
       */
      constructor(options = {}) {
        Object.defineProperty(this, "errorTracker", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "errorTrackerRetry", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: _Statistics.id++
        });
        Object.defineProperty(this, "state", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestRetryHistogram", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keyValueStore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: `SDK_CRAWLER_STATISTICS_${this.id}`
        });
        Object.defineProperty(this, "logIntervalMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "logMessage", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "listener", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestsInProgress", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "instanceStart", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "logInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistenceOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          logIntervalSecs: ow_1.default.optional.number,
          logMessage: ow_1.default.optional.string,
          log: ow_1.default.optional.object,
          keyValueStore: ow_1.default.optional.object,
          config: ow_1.default.optional.object,
          persistenceOptions: ow_1.default.optional.object,
          saveErrorSnapshots: ow_1.default.optional.boolean
        }));
        const { logIntervalSecs = 60, logMessage = "Statistics", keyValueStore, config = configuration_1.Configuration.getGlobalConfig(), persistenceOptions = {
          enable: true
        }, saveErrorSnapshots = false } = options;
        this.log = (options.log ?? log_1.log).child({ prefix: "Statistics" });
        this.errorTracker = new error_tracker_1.ErrorTracker({ ...errorTrackerConfig, saveErrorSnapshots });
        this.errorTrackerRetry = new error_tracker_1.ErrorTracker({ ...errorTrackerConfig, saveErrorSnapshots });
        this.logIntervalMillis = logIntervalSecs * 1e3;
        this.logMessage = logMessage;
        this.keyValueStore = keyValueStore;
        this.listener = this.persistState.bind(this);
        this.events = config.getEventManager();
        this.config = config;
        this.persistenceOptions = persistenceOptions;
        this.reset();
      }
      /**
       * Set the current statistic instance to pristine values
       */
      reset() {
        this.errorTracker.reset();
        this.errorTrackerRetry.reset();
        this.state = {
          requestsFinished: 0,
          requestsFailed: 0,
          requestsRetries: 0,
          requestsFailedPerMinute: 0,
          requestsFinishedPerMinute: 0,
          requestMinDurationMillis: Infinity,
          requestMaxDurationMillis: 0,
          requestTotalFailedDurationMillis: 0,
          requestTotalFinishedDurationMillis: 0,
          crawlerStartedAt: null,
          crawlerFinishedAt: null,
          statsPersistedAt: null,
          crawlerRuntimeMillis: 0,
          requestsWithStatusCode: {},
          errors: this.errorTracker.result,
          retryErrors: this.errorTrackerRetry.result
        };
        this.requestRetryHistogram.length = 0;
        this.requestsInProgress.clear();
        this.instanceStart = Date.now();
        this._teardown();
      }
      /**
       * @param options - Override the persistence options provided in the constructor
       */
      async resetStore(options) {
        if (!this.persistenceOptions.enable && !options?.enable) {
          return;
        }
        if (!this.keyValueStore) {
          return;
        }
        await this.keyValueStore.setValue(this.persistStateKey, null);
      }
      /**
       * Increments the status code counter.
       */
      registerStatusCode(code) {
        const s4 = String(code);
        if (this.state.requestsWithStatusCode[s4] === void 0) {
          this.state.requestsWithStatusCode[s4] = 0;
        }
        this.state.requestsWithStatusCode[s4]++;
      }
      /**
       * Starts a job
       * @ignore
       */
      startJob(id) {
        let job = this.requestsInProgress.get(id);
        if (!job)
          job = new Job();
        job.run();
        this.requestsInProgress.set(id, job);
      }
      /**
       * Mark job as finished and sets the state
       * @ignore
       */
      finishJob(id, retryCount) {
        const job = this.requestsInProgress.get(id);
        if (!job)
          return;
        const jobDurationMillis = job.finish();
        this.state.requestsFinished++;
        this.state.requestTotalFinishedDurationMillis += jobDurationMillis;
        this._saveRetryCountForJob(retryCount);
        if (jobDurationMillis < this.state.requestMinDurationMillis)
          this.state.requestMinDurationMillis = jobDurationMillis;
        if (jobDurationMillis > this.state.requestMaxDurationMillis)
          this.state.requestMaxDurationMillis = jobDurationMillis;
        this.requestsInProgress.delete(id);
      }
      /**
       * Mark job as failed and sets the state
       * @ignore
       */
      failJob(id, retryCount) {
        const job = this.requestsInProgress.get(id);
        if (!job)
          return;
        this.state.requestTotalFailedDurationMillis += job.finish();
        this.state.requestsFailed++;
        this._saveRetryCountForJob(retryCount);
        this.requestsInProgress.delete(id);
      }
      /**
       * Calculate the current statistics
       */
      calculate() {
        const { requestsFailed, requestsFinished, requestTotalFailedDurationMillis, requestTotalFinishedDurationMillis } = this.state;
        const totalMillis = Date.now() - this.instanceStart;
        const totalMinutes = totalMillis / 1e3 / 60;
        return {
          requestAvgFailedDurationMillis: Math.round(requestTotalFailedDurationMillis / requestsFailed) || Infinity,
          requestAvgFinishedDurationMillis: Math.round(requestTotalFinishedDurationMillis / requestsFinished) || Infinity,
          requestsFinishedPerMinute: Math.round(requestsFinished / totalMinutes) || 0,
          requestsFailedPerMinute: Math.floor(requestsFailed / totalMinutes) || 0,
          requestTotalDurationMillis: requestTotalFinishedDurationMillis + requestTotalFailedDurationMillis,
          requestsTotal: requestsFailed + requestsFinished,
          crawlerRuntimeMillis: totalMillis
        };
      }
      /**
       * Initializes the key value store for persisting the statistics,
       * displaying the current state in predefined intervals
       */
      async startCapturing() {
        this.keyValueStore ?? (this.keyValueStore = await key_value_store_1.KeyValueStore.open(null, { config: this.config }));
        if (this.state.crawlerStartedAt === null) {
          this.state.crawlerStartedAt = /* @__PURE__ */ new Date();
        }
        if (this.persistenceOptions.enable) {
          await this._maybeLoadStatistics();
          this.events.on("persistState", this.listener);
        }
        this.logInterval = setInterval(() => {
          this.log.info(this.logMessage, {
            ...this.calculate(),
            retryHistogram: this.requestRetryHistogram
          });
        }, this.logIntervalMillis);
      }
      /**
       * Stops logging and remove event listeners, then persist
       */
      async stopCapturing() {
        this._teardown();
        this.state.crawlerFinishedAt = /* @__PURE__ */ new Date();
        await this.persistState();
      }
      _saveRetryCountForJob(retryCount) {
        var _a2;
        if (retryCount > 0)
          this.state.requestsRetries++;
        (_a2 = this.requestRetryHistogram)[retryCount] ?? (_a2[retryCount] = 0);
        this.requestRetryHistogram[retryCount]++;
      }
      /**
       * Persist internal state to the key value store
       * @param options - Override the persistence options provided in the constructor
       */
      async persistState(options) {
        if (!this.persistenceOptions.enable && !options?.enable) {
          return;
        }
        if (!this.keyValueStore) {
          return;
        }
        this.log.debug("Persisting state", { persistStateKey: this.persistStateKey });
        const persistStateIntervalMillis = this.config.get("persistStateIntervalMillis");
        const timeoutSecs = persistStateIntervalMillis / 2e3;
        await this.keyValueStore.setValue(this.persistStateKey, this.toJSON(), {
          timeoutSecs,
          doNotRetryTimeouts: true
        }).catch((error) => this.log.warning(`Failed to persist the statistics to ${this.persistStateKey}`, { error }));
      }
      /**
       * Loads the current statistic from the key value store if any
       */
      async _maybeLoadStatistics() {
        if (!this.keyValueStore) {
          return;
        }
        const savedState = await this.keyValueStore.getValue(this.persistStateKey);
        if (!savedState)
          return;
        if (!Array.isArray(savedState.requestRetryHistogram)) {
          this.log.warning("Received invalid state from Key-value store.", {
            persistStateKey: this.persistStateKey,
            state: savedState
          });
        }
        this.log.debug("Recreating state from KeyValueStore", { persistStateKey: this.persistStateKey });
        savedState.requestRetryHistogram.forEach((idx) => this.requestRetryHistogram.push(idx));
        this.state.requestsFinished = savedState.requestsFinished;
        this.state.requestsFailed = savedState.requestsFailed;
        this.state.requestsRetries = savedState.requestsRetries;
        this.state.requestTotalFailedDurationMillis = savedState.requestTotalFailedDurationMillis;
        this.state.requestTotalFinishedDurationMillis = savedState.requestTotalFinishedDurationMillis;
        this.state.requestMinDurationMillis = savedState.requestMinDurationMillis;
        this.state.requestMaxDurationMillis = savedState.requestMaxDurationMillis;
        this.state.crawlerFinishedAt = savedState.crawlerFinishedAt ? new Date(savedState.crawlerFinishedAt) : null;
        this.state.crawlerStartedAt = savedState.crawlerStartedAt ? new Date(savedState.crawlerStartedAt) : null;
        this.state.statsPersistedAt = savedState.statsPersistedAt ? new Date(savedState.statsPersistedAt) : null;
        this.state.crawlerRuntimeMillis = savedState.crawlerRuntimeMillis;
        this.instanceStart = Date.now() - (+this.state.statsPersistedAt - savedState.crawlerLastStartTimestamp);
        this.log.debug("Loaded from KeyValueStore");
      }
      _teardown() {
        this.events.off("persistState", this.listener);
        if (this.logInterval) {
          clearInterval(this.logInterval);
          this.logInterval = null;
        }
      }
      /**
       * Make this class serializable when called with `JSON.stringify(statsInstance)` directly
       * or through `keyValueStore.setValue('KEY', statsInstance)`
       */
      toJSON() {
        const result = {
          ...this.state,
          crawlerLastStartTimestamp: this.instanceStart,
          crawlerFinishedAt: this.state.crawlerFinishedAt ? new Date(this.state.crawlerFinishedAt).toISOString() : null,
          crawlerStartedAt: this.state.crawlerStartedAt ? new Date(this.state.crawlerStartedAt).toISOString() : null,
          requestRetryHistogram: this.requestRetryHistogram,
          statsId: this.id,
          statsPersistedAt: (/* @__PURE__ */ new Date()).toISOString(),
          ...this.calculate()
        };
        Reflect.deleteProperty(result, "requestsWithStatusCode");
        Reflect.deleteProperty(result, "errors");
        Reflect.deleteProperty(result, "retryErrors");
        result.requestsWithStatusCode = this.state.requestsWithStatusCode;
        result.errors = this.state.errors;
        result.retryErrors = this.state.retryErrors;
        return result;
      }
    };
    exports.Statistics = Statistics2;
    Object.defineProperty(Statistics2, "id", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: 0
    });
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/index.js
var require_crawlers = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_crawler_commons(), exports);
    tslib_1.__exportStar(require_crawler_extension(), exports);
    tslib_1.__exportStar(require_crawler_utils(), exports);
    tslib_1.__exportStar(require_statistics(), exports);
    tslib_1.__exportStar(require_error_tracker(), exports);
    tslib_1.__exportStar(require_error_snapshotter(), exports);
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/http_clients/base-http-client.js
var require_base_http_client = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/http_clients/base-http-client.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.processHttpRequestOptions = processHttpRequestOptions2;
    var utils_1 = require_utils9();
    function processHttpRequestOptions2({ searchParams, form, json, username, password, ...request }) {
      const url3 = new URL(request.url);
      const headers = { ...request.headers };
      (0, utils_1.applySearchParams)(url3, searchParams);
      if ([request.body, form, json].filter((value2) => value2 !== void 0).length > 1) {
        throw new Error("At most one of `body`, `form` and `json` may be specified in sendRequest arguments");
      }
      const body = (() => {
        if (form !== void 0) {
          return new URLSearchParams(form).toString();
        }
        if (json !== void 0) {
          return JSON.stringify(json);
        }
        return request.body;
      })();
      if (form !== void 0) {
        headers["content-type"] ?? (headers["content-type"] = "application/x-www-form-urlencoded");
      }
      if (json !== void 0) {
        headers["content-type"] ?? (headers["content-type"] = "application/json");
      }
      if (username !== void 0 || password !== void 0) {
        const encodedAuth = Buffer.from(`${username ?? ""}:${password ?? ""}`).toString("base64");
        headers.authorization = `Basic ${encodedAuth}`;
      }
      return { ...request, body, url: url3, headers };
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/http_clients/got-scraping-http-client.js
var require_got_scraping_http_client = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/http_clients/got-scraping-http-client.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.GotScrapingHttpClient = void 0;
    var utils_1 = require_utils9();
    var GotScrapingHttpClient2 = class {
      /**
       * @inheritDoc
       */
      async sendRequest(request) {
        const gotResult = await (0, utils_1.gotScraping)({
          ...request,
          // `HttpCrawler` reads the cookies beforehand and sets them in `request.gotOptions`.
          // Using the `cookieJar` option directly would override that.
          cookieJar: void 0,
          retry: {
            limit: 0,
            ...request.retry
          }
        });
        return {
          ...gotResult,
          body: gotResult.body,
          request: { url: request.url, ...gotResult.request }
        };
      }
      /**
       * @inheritDoc
       */
      async stream(request, handleRedirect) {
        return new Promise(async (resolve4, reject) => {
          const stream7 = await Promise.resolve((0, utils_1.gotScraping)({ ...request, isStream: true, cookieJar: void 0 }));
          stream7.on("redirect", (updatedOptions, redirectResponse) => {
            handleRedirect?.(redirectResponse, updatedOptions);
          });
          if (request.method && ["DELETE", "delete"].includes(request.method)) {
            stream7.end();
          }
          stream7.on("error", reject);
          stream7.on("response", (response) => {
            const result = {
              stream: stream7,
              request,
              redirectUrls: response.redirectUrls,
              url: response.url,
              ip: response.ip,
              statusCode: response.statusCode,
              headers: response.headers,
              trailers: response.trailers,
              complete: response.complete,
              get downloadProgress() {
                return stream7.downloadProgress;
              },
              get uploadProgress() {
                return stream7.uploadProgress;
              }
            };
            Object.assign(result, response);
            resolve4(result);
            stream7.on("end", () => {
              var _a2;
              result.complete = response.complete;
              result.trailers ?? (result.trailers = {});
              Object.assign(result.trailers, response.trailers);
              (_a2 = result).rawTrailers ?? (_a2.rawTrailers = []);
              Object.assign(result.rawTrailers, response.rawTrailers);
            });
          });
        });
      }
    };
    exports.GotScrapingHttpClient = GotScrapingHttpClient2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/http_clients/index.js
var require_http_clients = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/http_clients/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_base_http_client(), exports);
    tslib_1.__exportStar(require_got_scraping_http_client(), exports);
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/proxy_configuration.js
var require_proxy_configuration = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/proxy_configuration.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ProxyConfiguration = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var utilities_1 = require_cjs4();
    var ProxyTierTracker = class {
      constructor(tieredProxyUrls) {
        Object.defineProperty(this, "histogram", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "currentTier", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.histogram = tieredProxyUrls.map(() => 0);
        this.currentTier = 0;
      }
      /**
       * Processes a single step of the algorithm and updates the current tier prediction based on the error history.
       */
      processStep() {
        this.histogram.forEach((x, i5) => {
          if (this.currentTier === i5)
            return;
          if (x > 0)
            this.histogram[i5]--;
        });
        const left = this.currentTier > 0 ? this.histogram[this.currentTier - 1] : Infinity;
        const right = this.currentTier < this.histogram.length - 1 ? this.histogram[this.currentTier + 1] : Infinity;
        if (this.histogram[this.currentTier] > Math.min(left, right)) {
          this.currentTier = left <= right ? this.currentTier - 1 : this.currentTier + 1;
        } else if (this.histogram[this.currentTier] === left) {
          this.currentTier--;
        }
      }
      /**
       * Increases the error score for the given proxy tier. This raises the chance of picking a different proxy tier for the subsequent requests.
       *
       * The error score is increased by 10 for the given tier. This means that this tier will be disadvantaged for the next 10 requests (every new request prediction decreases the error score by 1).
       * @param tier The proxy tier to mark as problematic.
       */
      addError(tier) {
        this.histogram[tier] += 10;
      }
      /**
       * Returns the best proxy tier for the next request based on the error history for different proxy tiers.
       * @returns The proxy tier prediction
       */
      predictTier() {
        this.processStep();
        return this.currentTier;
      }
    };
    var ProxyConfiguration2 = class {
      /**
       * Creates a {@link ProxyConfiguration} instance based on the provided options. Proxy servers are used to prevent target websites from
       * blocking your crawlers based on IP address rate limits or blacklists. Setting proxy configuration in your crawlers automatically configures
       * them to use the selected proxies for all connections.
       *
       * ```javascript
       * const proxyConfiguration = new ProxyConfiguration({
       *     proxyUrls: ['http://user:pass@proxy-1.com', 'http://user:pass@proxy-2.com'],
       * });
       *
       * const crawler = new CheerioCrawler({
       *   // ...
       *   proxyConfiguration,
       *   requestHandler({ proxyInfo }) {
       *       const usedProxyUrl = proxyInfo.url; // Getting the proxy URL
       *   }
       * })
       *
       * ```
       */
      constructor(options = {}) {
        Object.defineProperty(this, "isManInTheMiddle", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "nextCustomUrlIndex", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "proxyUrls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "tieredProxyUrls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "usedProxyUrls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "newUrlFunction", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: log_1.default.child({ prefix: "ProxyConfiguration" })
        });
        Object.defineProperty(this, "domainTiers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        const { validateRequired, ...rest } = options;
        (0, ow_1.default)(rest, ow_1.default.object.exactShape({
          proxyUrls: ow_1.default.optional.array.nonEmpty.ofType(ow_1.default.any(ow_1.default.string.url, ow_1.default.null)),
          newUrlFunction: ow_1.default.optional.function,
          tieredProxyUrls: ow_1.default.optional.array.nonEmpty.ofType(ow_1.default.array.nonEmpty.ofType(ow_1.default.any(ow_1.default.string.url, ow_1.default.null)))
        }));
        const { proxyUrls, newUrlFunction, tieredProxyUrls } = options;
        if ([proxyUrls, newUrlFunction, tieredProxyUrls].filter((x) => x).length > 1)
          this._throwCannotCombineCustomMethods();
        if (!proxyUrls && !newUrlFunction && validateRequired)
          this._throwNoOptionsProvided();
        this.proxyUrls = proxyUrls;
        this.newUrlFunction = newUrlFunction;
        this.tieredProxyUrls = tieredProxyUrls;
      }
      /**
       * This function creates a new {@link ProxyInfo} info object.
       * It is used by CheerioCrawler and PuppeteerCrawler to generate proxy URLs and also to allow the user to inspect
       * the currently used proxy via the requestHandler parameter `proxyInfo`.
       * Use it if you want to work with a rich representation of a proxy URL.
       * If you need the URL string only, use {@link ProxyConfiguration.newUrl}.
       * @param [sessionId]
       *  Represents the identifier of user {@link Session} that can be managed by the {@link SessionPool} or
       *  you can use the Apify Proxy [Session](https://docs.apify.com/proxy#sessions) identifier.
       *  When the provided sessionId is a number, it's converted to a string. Property sessionId of
       *  {@link ProxyInfo} is always returned as a type string.
       *
       *  All the HTTP requests going through the proxy with the same session identifier
       *  will use the same target proxy server (i.e. the same IP address).
       *  The identifier must not be longer than 50 characters and include only the following: `0-9`, `a-z`, `A-Z`, `"."`, `"_"` and `"~"`.
       * @return Represents information about used proxy and its configuration.
       */
      async newProxyInfo(sessionId, options) {
        if (typeof sessionId === "number")
          sessionId = `${sessionId}`;
        let url3;
        let tier;
        if (this.tieredProxyUrls) {
          const { proxyUrl, proxyTier } = this._handleTieredUrl(sessionId ?? (0, utilities_1.cryptoRandomObjectId)(6), options);
          url3 = proxyUrl ?? void 0;
          tier = proxyTier;
        } else {
          url3 = await this.newUrl(sessionId, options);
        }
        if (!url3)
          return void 0;
        const { username, password, port, hostname } = new URL(url3);
        return {
          sessionId,
          url: url3,
          username: decodeURIComponent(username),
          password: decodeURIComponent(password),
          hostname,
          port,
          proxyTier: tier
        };
      }
      /**
       * Given a session identifier and a request / proxy tier, this function returns a new proxy URL based on the provided configuration options.
       * @param _sessionId Session identifier
       * @param options Options for the tiered proxy rotation
       * @returns An object with the proxy URL and the proxy tier used.
       */
      _handleTieredUrl(_sessionId, options) {
        if (!this.tieredProxyUrls)
          throw new Error("Tiered proxy URLs are not set");
        if (!options || !options?.request && options?.proxyTier === void 0) {
          const allProxyUrls = this.tieredProxyUrls.flat();
          return {
            proxyUrl: allProxyUrls[this.nextCustomUrlIndex++ % allProxyUrls.length]
          };
        }
        let tierPrediction = options.proxyTier;
        if (typeof tierPrediction !== "number") {
          tierPrediction = this.predictProxyTier(options.request);
        }
        const proxyTier = this.tieredProxyUrls[tierPrediction];
        return {
          proxyUrl: proxyTier[this.nextCustomUrlIndex++ % proxyTier.length],
          proxyTier: tierPrediction
        };
      }
      /**
       * Given a `Request` object, this function returns the tier of the proxy that should be used for the request.
       *
       * This returns `null` if `tieredProxyUrls` option is not set.
       */
      predictProxyTier(request) {
        var _a2;
        if (!this.tieredProxyUrls)
          return null;
        const domain = new URL(request.url).hostname;
        if (!this.domainTiers.has(domain)) {
          this.domainTiers.set(domain, new ProxyTierTracker(this.tieredProxyUrls));
        }
        (_a2 = request.userData).__crawlee ?? (_a2.__crawlee = {});
        const tracker = this.domainTiers.get(domain);
        if (typeof request.userData.__crawlee.lastProxyTier === "number") {
          tracker.addError(request.userData.__crawlee.lastProxyTier);
        }
        const tierPrediction = tracker.predictTier();
        if (typeof request.userData.__crawlee.lastProxyTier === "number" && request.userData.__crawlee.lastProxyTier !== tierPrediction) {
          log_1.default.debug(`Changing proxy tier for domain "${domain}" from ${request.userData.__crawlee.lastProxyTier} to ${tierPrediction}.`);
        }
        request.userData.__crawlee.lastProxyTier = tierPrediction;
        request.userData.__crawlee.forefront = true;
        return tierPrediction;
      }
      /**
       * Returns a new proxy URL based on provided configuration options and the `sessionId` parameter.
       * @param [sessionId]
       *  Represents the identifier of user {@link Session} that can be managed by the {@link SessionPool} or
       *  you can use the Apify Proxy [Session](https://docs.apify.com/proxy#sessions) identifier.
       *  When the provided sessionId is a number, it's converted to a string.
       *
       *  All the HTTP requests going through the proxy with the same session identifier
       *  will use the same target proxy server (i.e. the same IP address).
       *  The identifier must not be longer than 50 characters and include only the following: `0-9`, `a-z`, `A-Z`, `"."`, `"_"` and `"~"`.
       * @return A string with a proxy URL, including authentication credentials and port number.
       *  For example, `http://bob:password123@proxy.example.com:8000`
       */
      async newUrl(sessionId, options) {
        if (typeof sessionId === "number")
          sessionId = `${sessionId}`;
        if (this.newUrlFunction) {
          return await this._callNewUrlFunction(sessionId, { request: options?.request }) ?? void 0;
        }
        if (this.tieredProxyUrls) {
          return this._handleTieredUrl(sessionId ?? (0, utilities_1.cryptoRandomObjectId)(6), options).proxyUrl ?? void 0;
        }
        return this._handleCustomUrl(sessionId) ?? void 0;
      }
      /**
       * Handles custom url rotation with session
       */
      _handleCustomUrl(sessionId) {
        let customUrlToUse;
        if (!sessionId) {
          return this.proxyUrls[this.nextCustomUrlIndex++ % this.proxyUrls.length];
        }
        if (this.usedProxyUrls.has(sessionId)) {
          customUrlToUse = this.usedProxyUrls.get(sessionId);
        } else {
          customUrlToUse = this.proxyUrls[this.nextCustomUrlIndex++ % this.proxyUrls.length];
          this.usedProxyUrls.set(sessionId, customUrlToUse);
        }
        return customUrlToUse;
      }
      /**
       * Calls the custom newUrlFunction and checks format of its return value
       */
      async _callNewUrlFunction(sessionId, options) {
        const proxyUrl = await this.newUrlFunction(sessionId, options);
        try {
          if (proxyUrl) {
            new URL(proxyUrl);
          }
          return proxyUrl;
        } catch (err2) {
          throw new Error(`The provided newUrlFunction did not return a valid URL.
Cause: ${err2.message}`);
        }
      }
      _throwCannotCombineCustomMethods() {
        throw new Error('Cannot combine custom proxies "options.proxyUrls" with custom generating function "options.newUrlFunction".');
      }
      _throwNoOptionsProvided() {
        throw new Error('One of "options.proxyUrls" or "options.newUrlFunction" needs to be provided.');
      }
    };
    exports.ProxyConfiguration = ProxyConfiguration2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/router.js
var require_router = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/router.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Router = void 0;
    var errors_1 = require_errors();
    var defaultRoute = Symbol("default-route");
    var Router2 = class _Router {
      /**
       * use Router.create() instead!
       * @ignore
       */
      constructor() {
        Object.defineProperty(this, "routes", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "middlewares", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
      }
      /**
       * Registers new route handler for given label.
       */
      addHandler(label, handler) {
        this.validate(label);
        this.routes.set(label, handler);
      }
      /**
       * Registers default route handler.
       */
      addDefaultHandler(handler) {
        this.validate(defaultRoute);
        this.routes.set(defaultRoute, handler);
      }
      /**
       * Registers a middleware that will be fired before the matching route handler.
       * Multiple middlewares can be registered, they will be fired in the same order.
       */
      use(middleware) {
        this.middlewares.push(middleware);
      }
      /**
       * Returns route handler for given label. If no label is provided, the default request handler will be returned.
       */
      getHandler(label) {
        if (label && this.routes.has(label)) {
          return this.routes.get(label);
        }
        if (this.routes.has(defaultRoute)) {
          return this.routes.get(defaultRoute);
        }
        throw new errors_1.MissingRouteError(`Route not found for label '${String(label)}'. You must set up a route for this label or a default route. Use \`requestHandler\`, \`router.addHandler\` or \`router.addDefaultHandler\`.`);
      }
      /**
       * Throws when the label already exists in our registry.
       */
      validate(label) {
        if (this.routes.has(label)) {
          const message = label === defaultRoute ? `Default route is already defined!` : `Route for label '${String(label)}' is already defined!`;
          throw new Error(message);
        }
      }
      /**
       * Creates new router instance. This instance can then serve as a `requestHandler` of your crawler.
       *
       * ```ts
       * import { Router, CheerioCrawler, CheerioCrawlingContext } from 'crawlee';
       *
       * const router = Router.create<CheerioCrawlingContext>();
       * router.addHandler('label-a', async (ctx) => {
       *    ctx.log.info('...');
       * });
       * router.addDefaultHandler(async (ctx) => {
       *    ctx.log.info('...');
       * });
       *
       * const crawler = new CheerioCrawler({
       *     requestHandler: router,
       * });
       * await crawler.run();
       * ```
       */
      static create(routes) {
        const router = new _Router();
        const obj = Object.create(Function.prototype);
        obj.addHandler = router.addHandler.bind(router);
        obj.addDefaultHandler = router.addDefaultHandler.bind(router);
        obj.getHandler = router.getHandler.bind(router);
        obj.use = router.use.bind(router);
        for (const [label, handler] of Object.entries(routes ?? {})) {
          router.addHandler(label, handler);
        }
        const func = async function(context) {
          const { url: url3, loadedUrl, label } = context.request;
          context.log.debug("Page opened.", { label, url: loadedUrl ?? url3 });
          for (const middleware of router.middlewares) {
            await middleware(context);
          }
          return router.getHandler(label)(context);
        };
        Object.setPrototypeOf(func, obj);
        return func;
      }
    };
    exports.Router = Router2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/errors.js
var require_errors4 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/errors.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.CookieParseError = void 0;
    var CookieParseError2 = class _CookieParseError extends Error {
      constructor(cookieHeaderString) {
        super(`Could not parse cookie header string: ${cookieHeaderString}`);
        Object.defineProperty(this, "cookieHeaderString", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: cookieHeaderString
        });
        Error.captureStackTrace(this, _CookieParseError);
      }
    };
    exports.CookieParseError = CookieParseError2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/events.js
var require_events2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/events.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.EVENT_SESSION_RETIRED = void 0;
    exports.EVENT_SESSION_RETIRED = "sessionRetired";
  }
});

// ../../node_modules/.pnpm/tough-cookie@6.0.0/node_modules/tough-cookie/dist/index.cjs
var require_dist5 = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@6.0.0/node_modules/tough-cookie/dist/index.cjs"(exports, module) {
    "use strict";
    var __defProp3 = Object.defineProperty;
    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames2 = Object.getOwnPropertyNames;
    var __hasOwnProp2 = Object.prototype.hasOwnProperty;
    var __export2 = (target, all5) => {
      for (var name in all5)
        __defProp3(target, name, { get: all5[name], enumerable: true });
    };
    var __copyProps2 = (to, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames2(from))
          if (!__hasOwnProp2.call(to, key) && key !== except)
            __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
      }
      return to;
    };
    var __toCommonJS2 = (mod3) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod3);
    var index_exports = {};
    __export2(index_exports, {
      Cookie: () => Cookie,
      CookieJar: () => CookieJar,
      MemoryCookieStore: () => MemoryCookieStore,
      ParameterError: () => ParameterError,
      PrefixSecurityEnum: () => PrefixSecurityEnum,
      Store: () => Store,
      canonicalDomain: () => canonicalDomain,
      cookieCompare: () => cookieCompare,
      defaultPath: () => defaultPath,
      domainMatch: () => domainMatch,
      formatDate: () => formatDate,
      fromJSON: () => fromJSON2,
      getPublicSuffix: () => getPublicSuffix,
      parse: () => parse22,
      parseDate: () => parseDate,
      pathMatch: () => pathMatch,
      permuteDomain: () => permuteDomain,
      permutePath: () => permutePath,
      version: () => version2
    });
    module.exports = __toCommonJS2(index_exports);
    function pathMatch(reqPath, cookiePath) {
      if (cookiePath === reqPath) {
        return true;
      }
      const idx = reqPath.indexOf(cookiePath);
      if (idx === 0) {
        if (cookiePath[cookiePath.length - 1] === "/") {
          return true;
        }
        if (reqPath.startsWith(cookiePath) && reqPath[cookiePath.length] === "/") {
          return true;
        }
      }
      return false;
    }
    var import_tldts = require_cjs10();
    var SPECIAL_USE_DOMAINS = ["local", "example", "invalid", "localhost", "test"];
    var SPECIAL_TREATMENT_DOMAINS = ["localhost", "invalid"];
    var defaultGetPublicSuffixOptions = {
      allowSpecialUseDomain: false,
      ignoreError: false
    };
    function getPublicSuffix(domain, options = {}) {
      options = { ...defaultGetPublicSuffixOptions, ...options };
      const domainParts = domain.split(".");
      const topLevelDomain = domainParts[domainParts.length - 1];
      const allowSpecialUseDomain = !!options.allowSpecialUseDomain;
      const ignoreError = !!options.ignoreError;
      if (allowSpecialUseDomain && topLevelDomain !== void 0 && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {
        if (domainParts.length > 1) {
          const secondLevelDomain = domainParts[domainParts.length - 2];
          return `${secondLevelDomain}.${topLevelDomain}`;
        } else if (SPECIAL_TREATMENT_DOMAINS.includes(topLevelDomain)) {
          return topLevelDomain;
        }
      }
      if (!ignoreError && topLevelDomain !== void 0 && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {
        throw new Error(
          `Cookie has domain set to the public suffix "${topLevelDomain}" which is a special use domain. To allow this, configure your CookieJar with {allowSpecialUseDomain: true, rejectPublicSuffixes: false}.`
        );
      }
      const publicSuffix = (0, import_tldts.getDomain)(domain, {
        allowIcannDomains: true,
        allowPrivateDomains: true
      });
      if (publicSuffix) return publicSuffix;
    }
    function permuteDomain(domain, allowSpecialUseDomain) {
      const pubSuf = getPublicSuffix(domain, {
        allowSpecialUseDomain
      });
      if (!pubSuf) {
        return void 0;
      }
      if (pubSuf == domain) {
        return [domain];
      }
      if (domain.slice(-1) == ".") {
        domain = domain.slice(0, -1);
      }
      const prefix = domain.slice(0, -(pubSuf.length + 1));
      const parts = prefix.split(".").reverse();
      let cur = pubSuf;
      const permutations = [cur];
      while (parts.length) {
        const part = parts.shift();
        cur = `${part}.${cur}`;
        permutations.push(cur);
      }
      return permutations;
    }
    var Store = class {
      constructor() {
        this.synchronous = false;
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      findCookie(_domain, _path, _key, _callback) {
        throw new Error("findCookie is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      findCookies(_domain, _path, _allowSpecialUseDomain = false, _callback) {
        throw new Error("findCookies is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      putCookie(_cookie, _callback) {
        throw new Error("putCookie is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      updateCookie(_oldCookie, _newCookie, _callback) {
        throw new Error("updateCookie is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeCookie(_domain, _path, _key, _callback) {
        throw new Error("removeCookie is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeCookies(_domain, _path, _callback) {
        throw new Error("removeCookies is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeAllCookies(_callback) {
        throw new Error("removeAllCookies is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      getAllCookies(_callback) {
        throw new Error(
          "getAllCookies is not implemented (therefore jar cannot be serialized)"
        );
      }
    };
    var objectToString2 = (obj) => Object.prototype.toString.call(obj);
    var safeArrayToString = (arr, seenArrays) => {
      if (typeof arr.join !== "function") return objectToString2(arr);
      seenArrays.add(arr);
      const mapped = arr.map(
        (val) => val === null || val === void 0 || seenArrays.has(val) ? "" : safeToStringImpl(val, seenArrays)
      );
      return mapped.join();
    };
    var safeToStringImpl = (val, seenArrays = /* @__PURE__ */ new WeakSet()) => {
      if (typeof val !== "object" || val === null) {
        return String(val);
      } else if (typeof val.toString === "function") {
        return Array.isArray(val) ? (
          // Arrays have a weird custom toString that we need to replicate
          safeArrayToString(val, seenArrays)
        ) : (
          // eslint-disable-next-line @typescript-eslint/no-base-to-string
          String(val)
        );
      } else {
        return objectToString2(val);
      }
    };
    var safeToString = (val) => safeToStringImpl(val);
    function createPromiseCallback(cb) {
      let callback;
      let resolve4;
      let reject;
      const promise = new Promise((_resolve, _reject) => {
        resolve4 = _resolve;
        reject = _reject;
      });
      if (typeof cb === "function") {
        callback = (err2, result) => {
          try {
            if (err2) cb(err2);
            else cb(null, result);
          } catch (e4) {
            reject(e4 instanceof Error ? e4 : new Error());
          }
        };
      } else {
        callback = (err2, result) => {
          try {
            if (err2) reject(err2);
            else resolve4(result);
          } catch (e4) {
            reject(e4 instanceof Error ? e4 : new Error());
          }
        };
      }
      return {
        promise,
        callback,
        resolve: (value2) => {
          callback(null, value2);
          return promise;
        },
        reject: (error) => {
          callback(error);
          return promise;
        }
      };
    }
    function inOperator(k3, o5) {
      return k3 in o5;
    }
    var MemoryCookieStore = class extends Store {
      /**
       * Create a new {@link MemoryCookieStore}.
       */
      constructor() {
        super();
        this.synchronous = true;
        this.idx = /* @__PURE__ */ Object.create(null);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      findCookie(domain, path3, key, callback) {
        const promiseCallback = createPromiseCallback(callback);
        if (domain == null || path3 == null || key == null) {
          return promiseCallback.resolve(void 0);
        }
        const result = this.idx[domain]?.[path3]?.[key];
        return promiseCallback.resolve(result);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      findCookies(domain, path3, allowSpecialUseDomain = false, callback) {
        if (typeof allowSpecialUseDomain === "function") {
          callback = allowSpecialUseDomain;
          allowSpecialUseDomain = true;
        }
        const results = [];
        const promiseCallback = createPromiseCallback(callback);
        if (!domain) {
          return promiseCallback.resolve([]);
        }
        let pathMatcher;
        if (!path3) {
          pathMatcher = function matchAll2(domainIndex) {
            for (const curPath in domainIndex) {
              const pathIndex = domainIndex[curPath];
              for (const key in pathIndex) {
                const value2 = pathIndex[key];
                if (value2) {
                  results.push(value2);
                }
              }
            }
          };
        } else {
          pathMatcher = function matchRFC(domainIndex) {
            for (const cookiePath in domainIndex) {
              if (pathMatch(path3, cookiePath)) {
                const pathIndex = domainIndex[cookiePath];
                for (const key in pathIndex) {
                  const value2 = pathIndex[key];
                  if (value2) {
                    results.push(value2);
                  }
                }
              }
            }
          };
        }
        const domains = permuteDomain(domain, allowSpecialUseDomain) || [domain];
        const idx = this.idx;
        domains.forEach((curDomain) => {
          const domainIndex = idx[curDomain];
          if (!domainIndex) {
            return;
          }
          pathMatcher(domainIndex);
        });
        return promiseCallback.resolve(results);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      putCookie(cookie, callback) {
        const promiseCallback = createPromiseCallback(callback);
        const { domain, path: path3, key } = cookie;
        if (domain == null || path3 == null || key == null) {
          return promiseCallback.resolve(void 0);
        }
        const domainEntry = this.idx[domain] ?? /* @__PURE__ */ Object.create(null);
        this.idx[domain] = domainEntry;
        const pathEntry = domainEntry[path3] ?? /* @__PURE__ */ Object.create(null);
        domainEntry[path3] = pathEntry;
        pathEntry[key] = cookie;
        return promiseCallback.resolve(void 0);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      updateCookie(_oldCookie, newCookie, callback) {
        if (callback) this.putCookie(newCookie, callback);
        else return this.putCookie(newCookie);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeCookie(domain, path3, key, callback) {
        const promiseCallback = createPromiseCallback(callback);
        delete this.idx[domain]?.[path3]?.[key];
        return promiseCallback.resolve(void 0);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeCookies(domain, path3, callback) {
        const promiseCallback = createPromiseCallback(callback);
        const domainEntry = this.idx[domain];
        if (domainEntry) {
          if (path3) {
            delete domainEntry[path3];
          } else {
            delete this.idx[domain];
          }
        }
        return promiseCallback.resolve(void 0);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeAllCookies(callback) {
        const promiseCallback = createPromiseCallback(callback);
        this.idx = /* @__PURE__ */ Object.create(null);
        return promiseCallback.resolve(void 0);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      getAllCookies(callback) {
        const promiseCallback = createPromiseCallback(callback);
        const cookies = [];
        const idx = this.idx;
        const domains = Object.keys(idx);
        domains.forEach((domain) => {
          const domainEntry = idx[domain] ?? {};
          const paths = Object.keys(domainEntry);
          paths.forEach((path3) => {
            const pathEntry = domainEntry[path3] ?? {};
            const keys2 = Object.keys(pathEntry);
            keys2.forEach((key) => {
              const keyEntry = pathEntry[key];
              if (keyEntry != null) {
                cookies.push(keyEntry);
              }
            });
          });
        });
        cookies.sort((a5, b3) => {
          return (a5.creationIndex || 0) - (b3.creationIndex || 0);
        });
        return promiseCallback.resolve(cookies);
      }
    };
    function isNonEmptyString2(data2) {
      return isString5(data2) && data2 !== "";
    }
    function isEmptyString2(data2) {
      return data2 === "" || data2 instanceof String && data2.toString() === "";
    }
    function isString5(data2) {
      return typeof data2 === "string" || data2 instanceof String;
    }
    function isObject4(data2) {
      return objectToString2(data2) === "[object Object]";
    }
    function validate(bool, cbOrMessage, message) {
      if (bool) return;
      const cb = typeof cbOrMessage === "function" ? cbOrMessage : void 0;
      let options = typeof cbOrMessage === "function" ? message : cbOrMessage;
      if (!isObject4(options)) options = "[object Object]";
      const err2 = new ParameterError(safeToString(options));
      if (cb) cb(err2);
      else throw err2;
    }
    var ParameterError = class extends Error {
    };
    var version2 = "6.0.0";
    var PrefixSecurityEnum = {
      SILENT: "silent",
      STRICT: "strict",
      DISABLED: "unsafe-disabled"
    };
    Object.freeze(PrefixSecurityEnum);
    var IP_V6_REGEX = `
\\[?(?:
(?:[a-fA-F\\d]{1,4}:){7}(?:[a-fA-F\\d]{1,4}|:)|
(?:[a-fA-F\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-fA-F\\d]{1,4}|:)|
(?:[a-fA-F\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,2}|:)|
(?:[a-fA-F\\d]{1,4}:){4}(?:(?::[a-fA-F\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,3}|:)|
(?:[a-fA-F\\d]{1,4}:){3}(?:(?::[a-fA-F\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,4}|:)|
(?:[a-fA-F\\d]{1,4}:){2}(?:(?::[a-fA-F\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,5}|:)|
(?:[a-fA-F\\d]{1,4}:){1}(?:(?::[a-fA-F\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,6}|:)|
(?::(?:(?::[a-fA-F\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,7}|:))
)(?:%[0-9a-zA-Z]{1,})?\\]?
`.replace(/\s*\/\/.*$/gm, "").replace(/\n/g, "").trim();
    var IP_V6_REGEX_OBJECT = new RegExp(`^${IP_V6_REGEX}$`);
    var IP_V4_REGEX = `(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])`;
    var IP_V4_REGEX_OBJECT = new RegExp(`^${IP_V4_REGEX}$`);
    function domainToASCII(domain) {
      return new URL(`http://${domain}`).hostname;
    }
    function canonicalDomain(domainName) {
      if (domainName == null) {
        return void 0;
      }
      let str = domainName.trim().replace(/^\./, "");
      if (IP_V6_REGEX_OBJECT.test(str)) {
        if (!str.startsWith("[")) {
          str = "[" + str;
        }
        if (!str.endsWith("]")) {
          str = str + "]";
        }
        return domainToASCII(str).slice(1, -1);
      }
      if (/[^\u0001-\u007f]/.test(str)) {
        return domainToASCII(str);
      }
      return str.toLowerCase();
    }
    function formatDate(date) {
      return date.toUTCString();
    }
    var DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/;
    var MONTH_TO_NUM = {
      jan: 0,
      feb: 1,
      mar: 2,
      apr: 3,
      may: 4,
      jun: 5,
      jul: 6,
      aug: 7,
      sep: 8,
      oct: 9,
      nov: 10,
      dec: 11
    };
    function parseDigits(token, minDigits, maxDigits, trailingOK) {
      let count = 0;
      while (count < token.length) {
        const c6 = token.charCodeAt(count);
        if (c6 <= 47 || c6 >= 58) {
          break;
        }
        count++;
      }
      if (count < minDigits || count > maxDigits) {
        return;
      }
      if (!trailingOK && count != token.length) {
        return;
      }
      return parseInt(token.slice(0, count), 10);
    }
    function parseTime(token) {
      const parts = token.split(":");
      const result = [0, 0, 0];
      if (parts.length !== 3) {
        return;
      }
      for (let i5 = 0; i5 < 3; i5++) {
        const trailingOK = i5 == 2;
        const numPart = parts[i5];
        if (numPart === void 0) {
          return;
        }
        const num = parseDigits(numPart, 1, 2, trailingOK);
        if (num === void 0) {
          return;
        }
        result[i5] = num;
      }
      return result;
    }
    function parseMonth(token) {
      token = String(token).slice(0, 3).toLowerCase();
      switch (token) {
        case "jan":
          return MONTH_TO_NUM.jan;
        case "feb":
          return MONTH_TO_NUM.feb;
        case "mar":
          return MONTH_TO_NUM.mar;
        case "apr":
          return MONTH_TO_NUM.apr;
        case "may":
          return MONTH_TO_NUM.may;
        case "jun":
          return MONTH_TO_NUM.jun;
        case "jul":
          return MONTH_TO_NUM.jul;
        case "aug":
          return MONTH_TO_NUM.aug;
        case "sep":
          return MONTH_TO_NUM.sep;
        case "oct":
          return MONTH_TO_NUM.oct;
        case "nov":
          return MONTH_TO_NUM.nov;
        case "dec":
          return MONTH_TO_NUM.dec;
        default:
          return;
      }
    }
    function parseDate(cookieDate) {
      if (!cookieDate) {
        return;
      }
      const tokens = cookieDate.split(DATE_DELIM);
      let hour;
      let minute;
      let second;
      let dayOfMonth;
      let month;
      let year;
      for (let i5 = 0; i5 < tokens.length; i5++) {
        const token = (tokens[i5] ?? "").trim();
        if (!token.length) {
          continue;
        }
        if (second === void 0) {
          const result = parseTime(token);
          if (result) {
            hour = result[0];
            minute = result[1];
            second = result[2];
            continue;
          }
        }
        if (dayOfMonth === void 0) {
          const result = parseDigits(token, 1, 2, true);
          if (result !== void 0) {
            dayOfMonth = result;
            continue;
          }
        }
        if (month === void 0) {
          const result = parseMonth(token);
          if (result !== void 0) {
            month = result;
            continue;
          }
        }
        if (year === void 0) {
          const result = parseDigits(token, 2, 4, true);
          if (result !== void 0) {
            year = result;
            if (year >= 70 && year <= 99) {
              year += 1900;
            } else if (year >= 0 && year <= 69) {
              year += 2e3;
            }
          }
        }
      }
      if (dayOfMonth === void 0 || month === void 0 || year === void 0 || hour === void 0 || minute === void 0 || second === void 0 || dayOfMonth < 1 || dayOfMonth > 31 || year < 1601 || hour > 23 || minute > 59 || second > 59) {
        return;
      }
      return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second));
    }
    var COOKIE_OCTETS = /^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;
    var PATH_VALUE = /[\x20-\x3A\x3C-\x7E]+/;
    var CONTROL_CHARS = /[\x00-\x1F]/;
    var TERMINATORS = ["\n", "\r", "\0"];
    function trimTerminator(str) {
      if (isEmptyString2(str)) return str;
      for (let t4 = 0; t4 < TERMINATORS.length; t4++) {
        const terminator = TERMINATORS[t4];
        const terminatorIdx = terminator ? str.indexOf(terminator) : -1;
        if (terminatorIdx !== -1) {
          str = str.slice(0, terminatorIdx);
        }
      }
      return str;
    }
    function parseCookiePair(cookiePair, looseMode) {
      cookiePair = trimTerminator(cookiePair);
      let firstEq = cookiePair.indexOf("=");
      if (looseMode) {
        if (firstEq === 0) {
          cookiePair = cookiePair.substring(1);
          firstEq = cookiePair.indexOf("=");
        }
      } else {
        if (firstEq <= 0) {
          return void 0;
        }
      }
      let cookieName, cookieValue;
      if (firstEq <= 0) {
        cookieName = "";
        cookieValue = cookiePair.trim();
      } else {
        cookieName = cookiePair.slice(0, firstEq).trim();
        cookieValue = cookiePair.slice(firstEq + 1).trim();
      }
      if (CONTROL_CHARS.test(cookieName) || CONTROL_CHARS.test(cookieValue)) {
        return void 0;
      }
      const c6 = new Cookie();
      c6.key = cookieName;
      c6.value = cookieValue;
      return c6;
    }
    function parse3(str, options) {
      if (isEmptyString2(str) || !isString5(str)) {
        return void 0;
      }
      str = str.trim();
      const firstSemi = str.indexOf(";");
      const cookiePair = firstSemi === -1 ? str : str.slice(0, firstSemi);
      const c6 = parseCookiePair(cookiePair, options?.loose ?? false);
      if (!c6) {
        return void 0;
      }
      if (firstSemi === -1) {
        return c6;
      }
      const unparsed = str.slice(firstSemi + 1).trim();
      if (unparsed.length === 0) {
        return c6;
      }
      const cookie_avs = unparsed.split(";");
      while (cookie_avs.length) {
        const av = (cookie_avs.shift() ?? "").trim();
        if (av.length === 0) {
          continue;
        }
        const av_sep = av.indexOf("=");
        let av_key, av_value;
        if (av_sep === -1) {
          av_key = av;
          av_value = null;
        } else {
          av_key = av.slice(0, av_sep);
          av_value = av.slice(av_sep + 1);
        }
        av_key = av_key.trim().toLowerCase();
        if (av_value) {
          av_value = av_value.trim();
        }
        switch (av_key) {
          case "expires":
            if (av_value) {
              const exp = parseDate(av_value);
              if (exp) {
                c6.expires = exp;
              }
            }
            break;
          case "max-age":
            if (av_value) {
              if (/^-?[0-9]+$/.test(av_value)) {
                const delta = parseInt(av_value, 10);
                c6.setMaxAge(delta);
              }
            }
            break;
          case "domain":
            if (av_value) {
              const domain = av_value.trim().replace(/^\./, "");
              if (domain) {
                c6.domain = domain.toLowerCase();
              }
            }
            break;
          case "path":
            c6.path = av_value && av_value[0] === "/" ? av_value : null;
            break;
          case "secure":
            c6.secure = true;
            break;
          case "httponly":
            c6.httpOnly = true;
            break;
          case "samesite":
            switch (av_value ? av_value.toLowerCase() : "") {
              case "strict":
                c6.sameSite = "strict";
                break;
              case "lax":
                c6.sameSite = "lax";
                break;
              case "none":
                c6.sameSite = "none";
                break;
              default:
                c6.sameSite = void 0;
                break;
            }
            break;
          default:
            c6.extensions = c6.extensions || [];
            c6.extensions.push(av);
            break;
        }
      }
      return c6;
    }
    function fromJSON(str) {
      if (!str || isEmptyString2(str)) {
        return void 0;
      }
      let obj;
      if (typeof str === "string") {
        try {
          obj = JSON.parse(str);
        } catch {
          return void 0;
        }
      } else {
        obj = str;
      }
      const c6 = new Cookie();
      Cookie.serializableProperties.forEach((prop) => {
        if (obj && typeof obj === "object" && inOperator(prop, obj)) {
          const val = obj[prop];
          if (val === void 0) {
            return;
          }
          if (inOperator(prop, cookieDefaults) && val === cookieDefaults[prop]) {
            return;
          }
          switch (prop) {
            case "key":
            case "value":
            case "sameSite":
              if (typeof val === "string") {
                c6[prop] = val;
              }
              break;
            case "expires":
            case "creation":
            case "lastAccessed":
              if (typeof val === "number" || typeof val === "string" || val instanceof Date) {
                c6[prop] = obj[prop] == "Infinity" ? "Infinity" : new Date(val);
              } else if (val === null) {
                c6[prop] = null;
              }
              break;
            case "maxAge":
              if (typeof val === "number" || val === "Infinity" || val === "-Infinity") {
                c6[prop] = val;
              }
              break;
            case "domain":
            case "path":
              if (typeof val === "string" || val === null) {
                c6[prop] = val;
              }
              break;
            case "secure":
            case "httpOnly":
              if (typeof val === "boolean") {
                c6[prop] = val;
              }
              break;
            case "extensions":
              if (Array.isArray(val) && val.every((item) => typeof item === "string")) {
                c6[prop] = val;
              }
              break;
            case "hostOnly":
            case "pathIsDefault":
              if (typeof val === "boolean" || val === null) {
                c6[prop] = val;
              }
              break;
          }
        }
      });
      return c6;
    }
    var cookieDefaults = {
      // the order in which the RFC has them:
      key: "",
      value: "",
      expires: "Infinity",
      maxAge: null,
      domain: null,
      path: null,
      secure: false,
      httpOnly: false,
      extensions: null,
      // set by the CookieJar:
      hostOnly: null,
      pathIsDefault: null,
      creation: null,
      lastAccessed: null,
      sameSite: void 0
    };
    var _Cookie = class _Cookie2 {
      /**
       * Create a new Cookie instance.
       * @public
       * @param options - The attributes to set on the cookie
       */
      constructor(options = {}) {
        this.key = options.key ?? cookieDefaults.key;
        this.value = options.value ?? cookieDefaults.value;
        this.expires = options.expires ?? cookieDefaults.expires;
        this.maxAge = options.maxAge ?? cookieDefaults.maxAge;
        this.domain = options.domain ?? cookieDefaults.domain;
        this.path = options.path ?? cookieDefaults.path;
        this.secure = options.secure ?? cookieDefaults.secure;
        this.httpOnly = options.httpOnly ?? cookieDefaults.httpOnly;
        this.extensions = options.extensions ?? cookieDefaults.extensions;
        this.creation = options.creation ?? cookieDefaults.creation;
        this.hostOnly = options.hostOnly ?? cookieDefaults.hostOnly;
        this.pathIsDefault = options.pathIsDefault ?? cookieDefaults.pathIsDefault;
        this.lastAccessed = options.lastAccessed ?? cookieDefaults.lastAccessed;
        this.sameSite = options.sameSite ?? cookieDefaults.sameSite;
        this.creation = options.creation ?? /* @__PURE__ */ new Date();
        Object.defineProperty(this, "creationIndex", {
          configurable: false,
          enumerable: false,
          // important for assert.deepEqual checks
          writable: true,
          value: ++_Cookie2.cookiesCreated
        });
        this.creationIndex = _Cookie2.cookiesCreated;
      }
      [Symbol.for("nodejs.util.inspect.custom")]() {
        const now = Date.now();
        const hostOnly = this.hostOnly != null ? this.hostOnly.toString() : "?";
        const createAge = this.creation && this.creation !== "Infinity" ? `${String(now - this.creation.getTime())}ms` : "?";
        const accessAge = this.lastAccessed && this.lastAccessed !== "Infinity" ? `${String(now - this.lastAccessed.getTime())}ms` : "?";
        return `Cookie="${this.toString()}; hostOnly=${hostOnly}; aAge=${accessAge}; cAge=${createAge}"`;
      }
      /**
       * For convenience in using `JSON.stringify(cookie)`. Returns a plain-old Object that can be JSON-serialized.
       *
       * @remarks
       * - Any `Date` properties (such as {@link Cookie.expires}, {@link Cookie.creation}, and {@link Cookie.lastAccessed}) are exported in ISO format (`Date.toISOString()`).
       *
       *  - Custom Cookie properties are discarded. In tough-cookie 1.x, since there was no {@link Cookie.toJSON} method explicitly defined, all enumerable properties were captured.
       *      If you want a property to be serialized, add the property name to {@link Cookie.serializableProperties}.
       */
      toJSON() {
        const obj = {};
        for (const prop of _Cookie2.serializableProperties) {
          const val = this[prop];
          if (val === cookieDefaults[prop]) {
            continue;
          }
          switch (prop) {
            case "key":
            case "value":
            case "sameSite":
              if (typeof val === "string") {
                obj[prop] = val;
              }
              break;
            case "expires":
            case "creation":
            case "lastAccessed":
              if (typeof val === "number" || typeof val === "string" || val instanceof Date) {
                obj[prop] = val == "Infinity" ? "Infinity" : new Date(val).toISOString();
              } else if (val === null) {
                obj[prop] = null;
              }
              break;
            case "maxAge":
              if (typeof val === "number" || val === "Infinity" || val === "-Infinity") {
                obj[prop] = val;
              }
              break;
            case "domain":
            case "path":
              if (typeof val === "string" || val === null) {
                obj[prop] = val;
              }
              break;
            case "secure":
            case "httpOnly":
              if (typeof val === "boolean") {
                obj[prop] = val;
              }
              break;
            case "extensions":
              if (Array.isArray(val)) {
                obj[prop] = val;
              }
              break;
            case "hostOnly":
            case "pathIsDefault":
              if (typeof val === "boolean" || val === null) {
                obj[prop] = val;
              }
              break;
          }
        }
        return obj;
      }
      /**
       * Does a deep clone of this cookie, implemented exactly as `Cookie.fromJSON(cookie.toJSON())`.
       * @public
       */
      clone() {
        return fromJSON(this.toJSON());
      }
      /**
       * Validates cookie attributes for semantic correctness. Useful for "lint" checking any `Set-Cookie` headers you generate.
       * For now, it returns a boolean, but eventually could return a reason string.
       *
       * @remarks
       * Works for a few things, but is by no means comprehensive.
       *
       * @beta
       */
      validate() {
        if (!this.value || !COOKIE_OCTETS.test(this.value)) {
          return false;
        }
        if (this.expires != "Infinity" && !(this.expires instanceof Date) && !parseDate(this.expires)) {
          return false;
        }
        if (this.maxAge != null && this.maxAge !== "Infinity" && (this.maxAge === "-Infinity" || this.maxAge <= 0)) {
          return false;
        }
        if (this.path != null && !PATH_VALUE.test(this.path)) {
          return false;
        }
        const cdomain = this.cdomain();
        if (cdomain) {
          if (cdomain.match(/\.$/)) {
            return false;
          }
          const suffix = getPublicSuffix(cdomain);
          if (suffix == null) {
            return false;
          }
        }
        return true;
      }
      /**
       * Sets the 'Expires' attribute on a cookie.
       *
       * @remarks
       * When given a `string` value it will be parsed with {@link parseDate}. If the value can't be parsed as a cookie date
       * then the 'Expires' attribute will be set to `"Infinity"`.
       *
       * @param exp - the new value for the 'Expires' attribute of the cookie.
       */
      setExpires(exp) {
        if (exp instanceof Date) {
          this.expires = exp;
        } else {
          this.expires = parseDate(exp) || "Infinity";
        }
      }
      /**
       * Sets the 'Max-Age' attribute (in seconds) on a cookie.
       *
       * @remarks
       * Coerces `-Infinity` to `"-Infinity"` and `Infinity` to `"Infinity"` so it can be serialized to JSON.
       *
       * @param age - the new value for the 'Max-Age' attribute (in seconds).
       */
      setMaxAge(age) {
        if (age === Infinity) {
          this.maxAge = "Infinity";
        } else if (age === -Infinity) {
          this.maxAge = "-Infinity";
        } else {
          this.maxAge = age;
        }
      }
      /**
       * Encodes to a `Cookie` header value (specifically, the {@link Cookie.key} and {@link Cookie.value} properties joined with "=").
       * @public
       */
      cookieString() {
        const val = this.value || "";
        if (this.key) {
          return `${this.key}=${val}`;
        }
        return val;
      }
      /**
       * Encodes to a `Set-Cookie header` value.
       * @public
       */
      toString() {
        let str = this.cookieString();
        if (this.expires != "Infinity") {
          if (this.expires instanceof Date) {
            str += `; Expires=${formatDate(this.expires)}`;
          }
        }
        if (this.maxAge != null && this.maxAge != Infinity) {
          str += `; Max-Age=${String(this.maxAge)}`;
        }
        if (this.domain && !this.hostOnly) {
          str += `; Domain=${this.domain}`;
        }
        if (this.path) {
          str += `; Path=${this.path}`;
        }
        if (this.secure) {
          str += "; Secure";
        }
        if (this.httpOnly) {
          str += "; HttpOnly";
        }
        if (this.sameSite && this.sameSite !== "none") {
          if (this.sameSite.toLowerCase() === _Cookie2.sameSiteCanonical.lax.toLowerCase()) {
            str += `; SameSite=${_Cookie2.sameSiteCanonical.lax}`;
          } else if (this.sameSite.toLowerCase() === _Cookie2.sameSiteCanonical.strict.toLowerCase()) {
            str += `; SameSite=${_Cookie2.sameSiteCanonical.strict}`;
          } else {
            str += `; SameSite=${this.sameSite}`;
          }
        }
        if (this.extensions) {
          this.extensions.forEach((ext) => {
            str += `; ${ext}`;
          });
        }
        return str;
      }
      /**
       * Computes the TTL relative to now (milliseconds).
       *
       * @remarks
       * - `Infinity` is returned for cookies without an explicit expiry
       *
       * - `0` is returned if the cookie is expired.
       *
       * - Otherwise a time-to-live in milliseconds is returned.
       *
       * @param now - passing an explicit value is mostly used for testing purposes since this defaults to the `Date.now()`
       * @public
       */
      TTL(now = Date.now()) {
        if (this.maxAge != null && typeof this.maxAge === "number") {
          return this.maxAge <= 0 ? 0 : this.maxAge * 1e3;
        }
        const expires = this.expires;
        if (expires === "Infinity") {
          return Infinity;
        }
        return (expires?.getTime() ?? now) - (now || Date.now());
      }
      /**
       * Computes the absolute unix-epoch milliseconds that this cookie expires.
       *
       * The "Max-Age" attribute takes precedence over "Expires" (as per the RFC). The {@link Cookie.lastAccessed} attribute
       * (or the `now` parameter if given) is used to offset the {@link Cookie.maxAge} attribute.
       *
       * If Expires ({@link Cookie.expires}) is set, that's returned.
       *
       * @param now - can be used to provide a time offset (instead of {@link Cookie.lastAccessed}) to use when calculating the "Max-Age" value
       */
      expiryTime(now) {
        if (this.maxAge != null) {
          const relativeTo = now || this.lastAccessed || /* @__PURE__ */ new Date();
          const maxAge = typeof this.maxAge === "number" ? this.maxAge : -Infinity;
          const age = maxAge <= 0 ? -Infinity : maxAge * 1e3;
          if (relativeTo === "Infinity") {
            return Infinity;
          }
          return relativeTo.getTime() + age;
        }
        if (this.expires == "Infinity") {
          return Infinity;
        }
        return this.expires ? this.expires.getTime() : void 0;
      }
      /**
       * Similar to {@link Cookie.expiryTime}, computes the absolute unix-epoch milliseconds that this cookie expires and returns it as a Date.
       *
       * The "Max-Age" attribute takes precedence over "Expires" (as per the RFC). The {@link Cookie.lastAccessed} attribute
       * (or the `now` parameter if given) is used to offset the {@link Cookie.maxAge} attribute.
       *
       * If Expires ({@link Cookie.expires}) is set, that's returned.
       *
       * @param now - can be used to provide a time offset (instead of {@link Cookie.lastAccessed}) to use when calculating the "Max-Age" value
       */
      expiryDate(now) {
        const millisec = this.expiryTime(now);
        if (millisec == Infinity) {
          return /* @__PURE__ */ new Date(2147483647e3);
        } else if (millisec == -Infinity) {
          return /* @__PURE__ */ new Date(0);
        } else {
          return millisec == void 0 ? void 0 : new Date(millisec);
        }
      }
      /**
       * Indicates if the cookie has been persisted to a store or not.
       * @public
       */
      isPersistent() {
        return this.maxAge != null || this.expires != "Infinity";
      }
      /**
       * Calls {@link canonicalDomain} with the {@link Cookie.domain} property.
       * @public
       */
      canonicalizedDomain() {
        return canonicalDomain(this.domain);
      }
      /**
       * Alias for {@link Cookie.canonicalizedDomain}
       * @public
       */
      cdomain() {
        return canonicalDomain(this.domain);
      }
      /**
       * Parses a string into a Cookie object.
       *
       * @remarks
       * Note: when parsing a `Cookie` header it must be split by ';' before each Cookie string can be parsed.
       *
       * @example
       * ```
       * // parse a `Set-Cookie` header
       * const setCookieHeader = 'a=bcd; Expires=Tue, 18 Oct 2011 07:05:03 GMT'
       * const cookie = Cookie.parse(setCookieHeader)
       * cookie.key === 'a'
       * cookie.value === 'bcd'
       * cookie.expires === new Date(Date.parse('Tue, 18 Oct 2011 07:05:03 GMT'))
       * ```
       *
       * @example
       * ```
       * // parse a `Cookie` header
       * const cookieHeader = 'name=value; name2=value2; name3=value3'
       * const cookies = cookieHeader.split(';').map(Cookie.parse)
       * cookies[0].name === 'name'
       * cookies[0].value === 'value'
       * cookies[1].name === 'name2'
       * cookies[1].value === 'value2'
       * cookies[2].name === 'name3'
       * cookies[2].value === 'value3'
       * ```
       *
       * @param str - The `Set-Cookie` header or a Cookie string to parse.
       * @param options - Configures `strict` or `loose` mode for cookie parsing
       */
      static parse(str, options) {
        return parse3(str, options);
      }
      /**
       * Does the reverse of {@link Cookie.toJSON}.
       *
       * @remarks
       * Any Date properties (such as .expires, .creation, and .lastAccessed) are parsed via Date.parse, not tough-cookie's parseDate, since ISO timestamps are being handled at this layer.
       *
       * @example
       * ```
       * const json = JSON.stringify({
       *   key: 'alpha',
       *   value: 'beta',
       *   domain: 'example.com',
       *   path: '/foo',
       *   expires: '2038-01-19T03:14:07.000Z',
       * })
       * const cookie = Cookie.fromJSON(json)
       * cookie.key === 'alpha'
       * cookie.value === 'beta'
       * cookie.domain === 'example.com'
       * cookie.path === '/foo'
       * cookie.expires === new Date(Date.parse('2038-01-19T03:14:07.000Z'))
       * ```
       *
       * @param str - An unparsed JSON string or a value that has already been parsed as JSON
       */
      static fromJSON(str) {
        return fromJSON(str);
      }
    };
    _Cookie.cookiesCreated = 0;
    _Cookie.sameSiteLevel = {
      strict: 3,
      lax: 2,
      none: 1
    };
    _Cookie.sameSiteCanonical = {
      strict: "Strict",
      lax: "Lax"
    };
    _Cookie.serializableProperties = [
      "key",
      "value",
      "expires",
      "maxAge",
      "domain",
      "path",
      "secure",
      "httpOnly",
      "extensions",
      "hostOnly",
      "pathIsDefault",
      "creation",
      "lastAccessed",
      "sameSite"
    ];
    var Cookie = _Cookie;
    var MAX_TIME = 2147483647e3;
    function cookieCompare(a5, b3) {
      let cmp;
      const aPathLen = a5.path ? a5.path.length : 0;
      const bPathLen = b3.path ? b3.path.length : 0;
      cmp = bPathLen - aPathLen;
      if (cmp !== 0) {
        return cmp;
      }
      const aTime = a5.creation && a5.creation instanceof Date ? a5.creation.getTime() : MAX_TIME;
      const bTime = b3.creation && b3.creation instanceof Date ? b3.creation.getTime() : MAX_TIME;
      cmp = aTime - bTime;
      if (cmp !== 0) {
        return cmp;
      }
      cmp = (a5.creationIndex || 0) - (b3.creationIndex || 0);
      return cmp;
    }
    function defaultPath(path3) {
      if (!path3 || path3.slice(0, 1) !== "/") {
        return "/";
      }
      if (path3 === "/") {
        return path3;
      }
      const rightSlash = path3.lastIndexOf("/");
      if (rightSlash === 0) {
        return "/";
      }
      return path3.slice(0, rightSlash);
    }
    var IP_REGEX_LOWERCASE = /(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-f\d]{1,4}:){7}(?:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,2}|:)|(?:[a-f\d]{1,4}:){4}(?:(?::[a-f\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,3}|:)|(?:[a-f\d]{1,4}:){3}(?:(?::[a-f\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,4}|:)|(?:[a-f\d]{1,4}:){2}(?:(?::[a-f\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,5}|:)|(?:[a-f\d]{1,4}:){1}(?:(?::[a-f\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,7}|:)))$)/;
    function domainMatch(domain, cookieDomain, canonicalize) {
      if (domain == null || cookieDomain == null) {
        return void 0;
      }
      let _str;
      let _domStr;
      if (canonicalize !== false) {
        _str = canonicalDomain(domain);
        _domStr = canonicalDomain(cookieDomain);
      } else {
        _str = domain;
        _domStr = cookieDomain;
      }
      if (_str == null || _domStr == null) {
        return void 0;
      }
      if (_str == _domStr) {
        return true;
      }
      const idx = _str.lastIndexOf(_domStr);
      if (idx <= 0) {
        return false;
      }
      if (_str.length !== _domStr.length + idx) {
        return false;
      }
      if (_str.substring(idx - 1, idx) !== ".") {
        return false;
      }
      return !IP_REGEX_LOWERCASE.test(_str);
    }
    function isLoopbackV4(address) {
      const octets = address.split(".");
      return octets.length === 4 && octets[0] !== void 0 && parseInt(octets[0], 10) === 127;
    }
    function isLoopbackV6(address) {
      return address === "::1";
    }
    function isNormalizedLocalhostTLD(lowerHost) {
      return lowerHost.endsWith(".localhost");
    }
    function isLocalHostname(host) {
      const lowerHost = host.toLowerCase();
      return lowerHost === "localhost" || isNormalizedLocalhostTLD(lowerHost);
    }
    function hostNoBrackets(host) {
      if (host.length >= 2 && host.startsWith("[") && host.endsWith("]")) {
        return host.substring(1, host.length - 1);
      }
      return host;
    }
    function isPotentiallyTrustworthy(inputUrl, allowSecureOnLocal = true) {
      let url3;
      if (typeof inputUrl === "string") {
        try {
          url3 = new URL(inputUrl);
        } catch {
          return false;
        }
      } else {
        url3 = inputUrl;
      }
      const scheme = url3.protocol.replace(":", "").toLowerCase();
      const hostname = hostNoBrackets(url3.hostname).replace(/\.+$/, "");
      if (scheme === "https" || scheme === "wss") {
        return true;
      }
      if (!allowSecureOnLocal) {
        return false;
      }
      if (IP_V4_REGEX_OBJECT.test(hostname)) {
        return isLoopbackV4(hostname);
      }
      if (IP_V6_REGEX_OBJECT.test(hostname)) {
        return isLoopbackV6(hostname);
      }
      return isLocalHostname(hostname);
    }
    var defaultSetCookieOptions = {
      loose: false,
      sameSiteContext: void 0,
      ignoreError: false,
      http: true
    };
    var defaultGetCookieOptions = {
      http: true,
      expire: true,
      allPaths: false,
      sameSiteContext: void 0,
      sort: void 0
    };
    var SAME_SITE_CONTEXT_VAL_ERR = 'Invalid sameSiteContext option for getCookies(); expected one of "strict", "lax", or "none"';
    function getCookieContext(url3) {
      if (url3 && typeof url3 === "object" && "hostname" in url3 && typeof url3.hostname === "string" && "pathname" in url3 && typeof url3.pathname === "string" && "protocol" in url3 && typeof url3.protocol === "string") {
        return {
          hostname: url3.hostname,
          pathname: url3.pathname,
          protocol: url3.protocol
        };
      } else if (typeof url3 === "string") {
        try {
          return new URL(decodeURI(url3));
        } catch {
          return new URL(url3);
        }
      } else {
        throw new ParameterError("`url` argument is not a string or URL.");
      }
    }
    function checkSameSiteContext(value2) {
      const context = String(value2).toLowerCase();
      if (context === "none" || context === "lax" || context === "strict") {
        return context;
      } else {
        return void 0;
      }
    }
    function isSecurePrefixConditionMet(cookie) {
      const startsWithSecurePrefix = typeof cookie.key === "string" && cookie.key.startsWith("__Secure-");
      return !startsWithSecurePrefix || cookie.secure;
    }
    function isHostPrefixConditionMet(cookie) {
      const startsWithHostPrefix = typeof cookie.key === "string" && cookie.key.startsWith("__Host-");
      return !startsWithHostPrefix || Boolean(
        cookie.secure && cookie.hostOnly && cookie.path != null && cookie.path === "/"
      );
    }
    function getNormalizedPrefixSecurity(prefixSecurity) {
      const normalizedPrefixSecurity = prefixSecurity.toLowerCase();
      switch (normalizedPrefixSecurity) {
        case PrefixSecurityEnum.STRICT:
        case PrefixSecurityEnum.SILENT:
        case PrefixSecurityEnum.DISABLED:
          return normalizedPrefixSecurity;
        default:
          return PrefixSecurityEnum.SILENT;
      }
    }
    var CookieJar = class _CookieJar {
      /**
       * Creates a new `CookieJar` instance.
       *
       * @remarks
       * - If a custom store is not passed to the constructor, an in-memory store ({@link MemoryCookieStore} will be created and used.
       * - If a boolean value is passed as the `options` parameter, this is equivalent to passing `{ rejectPublicSuffixes: <value> }`
       *
       * @param store - a custom {@link Store} implementation (defaults to {@link MemoryCookieStore})
       * @param options - configures how cookies are processed by the cookie jar
       */
      constructor(store, options) {
        if (typeof options === "boolean") {
          options = { rejectPublicSuffixes: options };
        }
        this.rejectPublicSuffixes = options?.rejectPublicSuffixes ?? true;
        this.enableLooseMode = options?.looseMode ?? false;
        this.allowSpecialUseDomain = options?.allowSpecialUseDomain ?? true;
        this.allowSecureOnLocal = options?.allowSecureOnLocal ?? true;
        this.prefixSecurity = getNormalizedPrefixSecurity(
          options?.prefixSecurity ?? "silent"
        );
        this.store = store ?? new MemoryCookieStore();
      }
      callSync(fn) {
        if (!this.store.synchronous) {
          throw new Error(
            "CookieJar store is not synchronous; use async API instead."
          );
        }
        let syncErr = null;
        let syncResult = void 0;
        try {
          fn.call(this, (error, result) => {
            syncErr = error;
            syncResult = result;
          });
        } catch (err2) {
          syncErr = err2;
        }
        if (syncErr) throw syncErr;
        return syncResult;
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      setCookie(cookie, url3, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = void 0;
        }
        const promiseCallback = createPromiseCallback(callback);
        const cb = promiseCallback.callback;
        let context;
        try {
          if (typeof url3 === "string") {
            validate(
              isNonEmptyString2(url3),
              callback,
              safeToString(options)
            );
          }
          context = getCookieContext(url3);
          if (typeof url3 === "function") {
            return promiseCallback.reject(new Error("No URL was specified"));
          }
          if (typeof options === "function") {
            options = defaultSetCookieOptions;
          }
          validate(typeof cb === "function", cb);
          if (!isNonEmptyString2(cookie) && !isObject4(cookie) && cookie instanceof String && cookie.length == 0) {
            return promiseCallback.resolve(void 0);
          }
        } catch (err2) {
          return promiseCallback.reject(err2);
        }
        const host = canonicalDomain(context.hostname) ?? null;
        const loose = options?.loose || this.enableLooseMode;
        let sameSiteContext = null;
        if (options?.sameSiteContext) {
          sameSiteContext = checkSameSiteContext(options.sameSiteContext);
          if (!sameSiteContext) {
            return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR));
          }
        }
        if (typeof cookie === "string" || cookie instanceof String) {
          const parsedCookie = Cookie.parse(cookie.toString(), { loose });
          if (!parsedCookie) {
            const err2 = new Error("Cookie failed to parse");
            return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
          }
          cookie = parsedCookie;
        } else if (!(cookie instanceof Cookie)) {
          const err2 = new Error(
            "First argument to setCookie must be a Cookie object or string"
          );
          return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
        }
        const now = options?.now || /* @__PURE__ */ new Date();
        if (this.rejectPublicSuffixes && cookie.domain) {
          try {
            const cdomain = cookie.cdomain();
            const suffix = typeof cdomain === "string" ? getPublicSuffix(cdomain, {
              allowSpecialUseDomain: this.allowSpecialUseDomain,
              ignoreError: options?.ignoreError
            }) : null;
            if (suffix == null && !IP_V6_REGEX_OBJECT.test(cookie.domain)) {
              const err2 = new Error("Cookie has domain set to a public suffix");
              return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
            }
          } catch (err2) {
            return options?.ignoreError ? promiseCallback.resolve(void 0) : (
              // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
              promiseCallback.reject(err2)
            );
          }
        }
        if (cookie.domain) {
          if (!domainMatch(host ?? void 0, cookie.cdomain() ?? void 0, false)) {
            const err2 = new Error(
              `Cookie not in this host's domain. Cookie:${cookie.cdomain() ?? "null"} Request:${host ?? "null"}`
            );
            return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
          }
          if (cookie.hostOnly == null) {
            cookie.hostOnly = false;
          }
        } else {
          cookie.hostOnly = true;
          cookie.domain = host;
        }
        if (!cookie.path || cookie.path[0] !== "/") {
          cookie.path = defaultPath(context.pathname);
          cookie.pathIsDefault = true;
        }
        if (options?.http === false && cookie.httpOnly) {
          const err2 = new Error("Cookie is HttpOnly and this isn't an HTTP API");
          return options.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
        }
        if (cookie.sameSite !== "none" && cookie.sameSite !== void 0 && sameSiteContext) {
          if (sameSiteContext === "none") {
            const err2 = new Error(
              "Cookie is SameSite but this is a cross-origin request"
            );
            return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
          }
        }
        const ignoreErrorForPrefixSecurity = this.prefixSecurity === PrefixSecurityEnum.SILENT;
        const prefixSecurityDisabled = this.prefixSecurity === PrefixSecurityEnum.DISABLED;
        if (!prefixSecurityDisabled) {
          let errorFound = false;
          let errorMsg;
          if (!isSecurePrefixConditionMet(cookie)) {
            errorFound = true;
            errorMsg = "Cookie has __Secure prefix but Secure attribute is not set";
          } else if (!isHostPrefixConditionMet(cookie)) {
            errorFound = true;
            errorMsg = "Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'";
          }
          if (errorFound) {
            return options?.ignoreError || ignoreErrorForPrefixSecurity ? promiseCallback.resolve(void 0) : promiseCallback.reject(new Error(errorMsg));
          }
        }
        const store = this.store;
        if (!store.updateCookie) {
          store.updateCookie = async function(_oldCookie, newCookie, cb2) {
            return this.putCookie(newCookie).then(
              () => cb2?.(null),
              (error) => cb2?.(error)
            );
          };
        }
        const withCookie = function withCookie2(err2, oldCookie) {
          if (err2) {
            cb(err2);
            return;
          }
          const next = function(err22) {
            if (err22) {
              cb(err22);
            } else if (typeof cookie === "string") {
              cb(null, void 0);
            } else {
              cb(null, cookie);
            }
          };
          if (oldCookie) {
            if (options && "http" in options && options.http === false && oldCookie.httpOnly) {
              err2 = new Error("old Cookie is HttpOnly and this isn't an HTTP API");
              if (options.ignoreError) cb(null, void 0);
              else cb(err2);
              return;
            }
            if (cookie instanceof Cookie) {
              cookie.creation = oldCookie.creation;
              cookie.creationIndex = oldCookie.creationIndex;
              cookie.lastAccessed = now;
              store.updateCookie(oldCookie, cookie, next);
            }
          } else {
            if (cookie instanceof Cookie) {
              cookie.creation = cookie.lastAccessed = now;
              store.putCookie(cookie, next);
            }
          }
        };
        store.findCookie(cookie.domain, cookie.path, cookie.key, withCookie);
        return promiseCallback.promise;
      }
      /**
       * Synchronously attempt to set the {@link Cookie} in the {@link CookieJar}.
       *
       * <strong>Note:</strong> Only works if the configured {@link Store} is also synchronous.
       *
       * @remarks
       * - If successfully persisted, the {@link Cookie} will have updated
       *     {@link Cookie.creation}, {@link Cookie.lastAccessed} and {@link Cookie.hostOnly}
       *     properties.
       *
       * - As per the RFC, the {@link Cookie.hostOnly} flag is set if there was no `Domain={value}`
       *     attribute on the cookie string. The {@link Cookie.domain} property is set to the
       *     fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an
       *     exact hostname match (not a {@link domainMatch} as per usual)
       *
       * @param cookie - The cookie object or cookie string to store. A string value will be parsed into a cookie using {@link Cookie.parse}.
       * @param url - The domain to store the cookie with.
       * @param options - Configuration settings to use when storing the cookie.
       * @public
       */
      setCookieSync(cookie, url3, options) {
        const setCookieFn = options ? this.setCookie.bind(this, cookie, url3, options) : this.setCookie.bind(this, cookie, url3);
        return this.callSync(setCookieFn);
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      getCookies(url3, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = defaultGetCookieOptions;
        } else if (options === void 0) {
          options = defaultGetCookieOptions;
        }
        const promiseCallback = createPromiseCallback(callback);
        const cb = promiseCallback.callback;
        let context;
        try {
          if (typeof url3 === "string") {
            validate(isNonEmptyString2(url3), cb, url3);
          }
          context = getCookieContext(url3);
          validate(
            isObject4(options),
            cb,
            safeToString(options)
          );
          validate(typeof cb === "function", cb);
        } catch (parameterError) {
          return promiseCallback.reject(parameterError);
        }
        const host = canonicalDomain(context.hostname);
        const path3 = context.pathname || "/";
        const potentiallyTrustworthy = isPotentiallyTrustworthy(
          url3,
          this.allowSecureOnLocal
        );
        let sameSiteLevel = 0;
        if (options.sameSiteContext) {
          const sameSiteContext = checkSameSiteContext(options.sameSiteContext);
          if (sameSiteContext == null) {
            return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR));
          }
          sameSiteLevel = Cookie.sameSiteLevel[sameSiteContext];
          if (!sameSiteLevel) {
            return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR));
          }
        }
        const http6 = options.http ?? true;
        const now = Date.now();
        const expireCheck = options.expire ?? true;
        const allPaths = options.allPaths ?? false;
        const store = this.store;
        function matchingCookie(c6) {
          if (c6.hostOnly) {
            if (c6.domain != host) {
              return false;
            }
          } else {
            if (!domainMatch(host ?? void 0, c6.domain ?? void 0, false)) {
              return false;
            }
          }
          if (!allPaths && typeof c6.path === "string" && !pathMatch(path3, c6.path)) {
            return false;
          }
          if (c6.secure && !potentiallyTrustworthy) {
            return false;
          }
          if (c6.httpOnly && !http6) {
            return false;
          }
          if (sameSiteLevel) {
            let cookieLevel;
            if (c6.sameSite === "lax") {
              cookieLevel = Cookie.sameSiteLevel.lax;
            } else if (c6.sameSite === "strict") {
              cookieLevel = Cookie.sameSiteLevel.strict;
            } else {
              cookieLevel = Cookie.sameSiteLevel.none;
            }
            if (cookieLevel > sameSiteLevel) {
              return false;
            }
          }
          const expiryTime = c6.expiryTime();
          if (expireCheck && expiryTime != void 0 && expiryTime <= now) {
            store.removeCookie(c6.domain, c6.path, c6.key, () => {
            });
            return false;
          }
          return true;
        }
        store.findCookies(
          host,
          allPaths ? null : path3,
          this.allowSpecialUseDomain,
          (err2, cookies) => {
            if (err2) {
              cb(err2);
              return;
            }
            if (cookies == null) {
              cb(null, []);
              return;
            }
            cookies = cookies.filter(matchingCookie);
            if ("sort" in options && options.sort !== false) {
              cookies = cookies.sort(cookieCompare);
            }
            const now2 = /* @__PURE__ */ new Date();
            for (const cookie of cookies) {
              cookie.lastAccessed = now2;
            }
            cb(null, cookies);
          }
        );
        return promiseCallback.promise;
      }
      /**
       * Synchronously retrieve the list of cookies that can be sent in a Cookie header for the
       * current URL.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @remarks
       * - The array of cookies returned will be sorted according to {@link cookieCompare}.
       *
       * - The {@link Cookie.lastAccessed} property will be updated on all returned cookies.
       *
       * @param url - The domain to store the cookie with.
       * @param options - Configuration settings to use when retrieving the cookies.
       */
      getCookiesSync(url3, options) {
        return this.callSync(this.getCookies.bind(this, url3, options)) ?? [];
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      getCookieString(url3, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = void 0;
        }
        const promiseCallback = createPromiseCallback(callback);
        const next = function(err2, cookies) {
          if (err2) {
            promiseCallback.callback(err2);
          } else {
            promiseCallback.callback(
              null,
              cookies?.sort(cookieCompare).map((c6) => c6.cookieString()).join("; ")
            );
          }
        };
        this.getCookies(url3, options, next);
        return promiseCallback.promise;
      }
      /**
       * Synchronous version of `.getCookieString()`. Accepts the same options as `.getCookies()` but returns a string suitable for a
       * `Cookie` header rather than an Array.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @param url - The domain to store the cookie with.
       * @param options - Configuration settings to use when retrieving the cookies.
       */
      getCookieStringSync(url3, options) {
        return this.callSync(
          options ? this.getCookieString.bind(this, url3, options) : this.getCookieString.bind(this, url3)
        ) ?? "";
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      getSetCookieStrings(url3, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = void 0;
        }
        const promiseCallback = createPromiseCallback(
          callback
        );
        const next = function(err2, cookies) {
          if (err2) {
            promiseCallback.callback(err2);
          } else {
            promiseCallback.callback(
              null,
              cookies?.map((c6) => {
                return c6.toString();
              })
            );
          }
        };
        this.getCookies(url3, options, next);
        return promiseCallback.promise;
      }
      /**
       * Synchronous version of `.getSetCookieStrings()`. Returns an array of strings suitable for `Set-Cookie` headers.
       * Accepts the same options as `.getCookies()`.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @param url - The domain to store the cookie with.
       * @param options - Configuration settings to use when retrieving the cookies.
       */
      getSetCookieStringsSync(url3, options = {}) {
        return this.callSync(this.getSetCookieStrings.bind(this, url3, options)) ?? [];
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      serialize(callback) {
        const promiseCallback = createPromiseCallback(callback);
        let type = this.store.constructor.name;
        if (isObject4(type)) {
          type = null;
        }
        const serialized = {
          // The version of tough-cookie that serialized this jar. Generally a good
          // practice since future versions can make data import decisions based on
          // known past behavior. When/if this matters, use `semver`.
          version: `tough-cookie@${version2}`,
          // add the store type, to make humans happy:
          storeType: type,
          // CookieJar configuration:
          rejectPublicSuffixes: this.rejectPublicSuffixes,
          enableLooseMode: this.enableLooseMode,
          allowSpecialUseDomain: this.allowSpecialUseDomain,
          prefixSecurity: getNormalizedPrefixSecurity(this.prefixSecurity),
          // this gets filled from getAllCookies:
          cookies: []
        };
        if (typeof this.store.getAllCookies !== "function") {
          return promiseCallback.reject(
            new Error(
              "store does not support getAllCookies and cannot be serialized"
            )
          );
        }
        this.store.getAllCookies((err2, cookies) => {
          if (err2) {
            promiseCallback.callback(err2);
            return;
          }
          if (cookies == null) {
            promiseCallback.callback(null, serialized);
            return;
          }
          serialized.cookies = cookies.map((cookie) => {
            const serializedCookie = cookie.toJSON();
            delete serializedCookie.creationIndex;
            return serializedCookie;
          });
          promiseCallback.callback(null, serialized);
        });
        return promiseCallback.promise;
      }
      /**
       * Serialize the CookieJar if the underlying store supports `.getAllCookies`.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       */
      serializeSync() {
        return this.callSync((callback) => {
          this.serialize(callback);
        });
      }
      /**
       * Alias of {@link CookieJar.serializeSync}. Allows the cookie to be serialized
       * with `JSON.stringify(cookieJar)`.
       */
      toJSON() {
        return this.serializeSync();
      }
      /**
       * Use the class method CookieJar.deserialize instead of calling this directly
       * @internal
       */
      _importCookies(serialized, callback) {
        let cookies = void 0;
        if (serialized && typeof serialized === "object" && inOperator("cookies", serialized) && Array.isArray(serialized.cookies)) {
          cookies = serialized.cookies;
        }
        if (!cookies) {
          callback(new Error("serialized jar has no cookies array"), void 0);
          return;
        }
        cookies = cookies.slice();
        const putNext = (err2) => {
          if (err2) {
            callback(err2, void 0);
            return;
          }
          if (Array.isArray(cookies)) {
            if (!cookies.length) {
              callback(err2, this);
              return;
            }
            let cookie;
            try {
              cookie = Cookie.fromJSON(cookies.shift());
            } catch (e4) {
              callback(e4 instanceof Error ? e4 : new Error(), void 0);
              return;
            }
            if (cookie === void 0) {
              putNext(null);
              return;
            }
            this.store.putCookie(cookie, putNext);
          }
        };
        putNext(null);
      }
      /**
       * @internal
       */
      _importCookiesSync(serialized) {
        this.callSync(this._importCookies.bind(this, serialized));
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      clone(newStore, callback) {
        if (typeof newStore === "function") {
          callback = newStore;
          newStore = void 0;
        }
        const promiseCallback = createPromiseCallback(callback);
        const cb = promiseCallback.callback;
        this.serialize((err2, serialized) => {
          if (err2) {
            return promiseCallback.reject(err2);
          }
          return _CookieJar.deserialize(serialized ?? "", newStore, cb);
        });
        return promiseCallback.promise;
      }
      /**
       * @internal
       */
      _cloneSync(newStore) {
        const cloneFn = newStore && typeof newStore !== "function" ? this.clone.bind(this, newStore) : this.clone.bind(this);
        return this.callSync((callback) => {
          cloneFn(callback);
        });
      }
      /**
       * Produces a deep clone of this CookieJar. Modifications to the original do
       * not affect the clone, and vice versa.
       *
       * <strong>Note</strong>: Only works if both the configured Store and destination
       * Store are synchronous.
       *
       * @remarks
       * - When no {@link Store} is provided, a new {@link MemoryCookieStore} will be used.
       *
       * - Transferring between store types is supported so long as the source
       *     implements `.getAllCookies()` and the destination implements `.putCookie()`.
       *
       * @param newStore - The target {@link Store} to clone cookies into.
       */
      cloneSync(newStore) {
        if (!newStore) {
          return this._cloneSync();
        }
        if (!newStore.synchronous) {
          throw new Error(
            "CookieJar clone destination store is not synchronous; use async API instead."
          );
        }
        return this._cloneSync(newStore);
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      removeAllCookies(callback) {
        const promiseCallback = createPromiseCallback(callback);
        const cb = promiseCallback.callback;
        const store = this.store;
        if (typeof store.removeAllCookies === "function" && store.removeAllCookies !== Store.prototype.removeAllCookies) {
          store.removeAllCookies(cb);
          return promiseCallback.promise;
        }
        store.getAllCookies((err2, cookies) => {
          if (err2) {
            cb(err2);
            return;
          }
          if (!cookies) {
            cookies = [];
          }
          if (cookies.length === 0) {
            cb(null, void 0);
            return;
          }
          let completedCount = 0;
          const removeErrors = [];
          const removeCookieCb = function removeCookieCb2(removeErr) {
            if (removeErr) {
              removeErrors.push(removeErr);
            }
            completedCount++;
            if (completedCount === cookies.length) {
              if (removeErrors[0]) cb(removeErrors[0]);
              else cb(null, void 0);
              return;
            }
          };
          cookies.forEach((cookie) => {
            store.removeCookie(
              cookie.domain,
              cookie.path,
              cookie.key,
              removeCookieCb
            );
          });
        });
        return promiseCallback.promise;
      }
      /**
       * Removes all cookies from the CookieJar.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @remarks
       * - This is a new backwards-compatible feature of tough-cookie version 2.5,
       *     so not all Stores will implement it efficiently. For Stores that do not
       *     implement `removeAllCookies`, the fallback is to call `removeCookie` after
       *     `getAllCookies`.
       *
       * - If `getAllCookies` fails or isn't implemented in the Store, an error is returned.
       *
       * - If one or more of the `removeCookie` calls fail, only the first error is returned.
       */
      removeAllCookiesSync() {
        this.callSync((callback) => {
          this.removeAllCookies(callback);
        });
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      static deserialize(strOrObj, store, callback) {
        if (typeof store === "function") {
          callback = store;
          store = void 0;
        }
        const promiseCallback = createPromiseCallback(callback);
        let serialized;
        if (typeof strOrObj === "string") {
          try {
            serialized = JSON.parse(strOrObj);
          } catch (e4) {
            return promiseCallback.reject(e4 instanceof Error ? e4 : new Error());
          }
        } else {
          serialized = strOrObj;
        }
        const readSerializedProperty = (property) => {
          return serialized && typeof serialized === "object" && inOperator(property, serialized) ? serialized[property] : void 0;
        };
        const readSerializedBoolean = (property) => {
          const value2 = readSerializedProperty(property);
          return typeof value2 === "boolean" ? value2 : void 0;
        };
        const readSerializedString = (property) => {
          const value2 = readSerializedProperty(property);
          return typeof value2 === "string" ? value2 : void 0;
        };
        const jar = new _CookieJar(store, {
          rejectPublicSuffixes: readSerializedBoolean("rejectPublicSuffixes"),
          looseMode: readSerializedBoolean("enableLooseMode"),
          allowSpecialUseDomain: readSerializedBoolean("allowSpecialUseDomain"),
          prefixSecurity: getNormalizedPrefixSecurity(
            readSerializedString("prefixSecurity") ?? "silent"
          )
        });
        jar._importCookies(serialized, (err2) => {
          if (err2) {
            promiseCallback.callback(err2);
            return;
          }
          promiseCallback.callback(null, jar);
        });
        return promiseCallback.promise;
      }
      /**
       * A new CookieJar is created and the serialized {@link Cookie} values are added to
       * the underlying store. Each {@link Cookie} is added via `store.putCookie(...)` in
       * the order in which they appear in the serialization.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @remarks
       * - When no {@link Store} is provided, a new {@link MemoryCookieStore} will be used.
       *
       * - As a convenience, if `strOrObj` is a string, it is passed through `JSON.parse` first.
       *
       * @param strOrObj - A JSON string or object representing the deserialized cookies.
       * @param store - The underlying store to persist the deserialized cookies into.
       */
      static deserializeSync(strOrObj, store) {
        const serialized = typeof strOrObj === "string" ? JSON.parse(strOrObj) : strOrObj;
        const readSerializedProperty = (property) => {
          return serialized && typeof serialized === "object" && inOperator(property, serialized) ? serialized[property] : void 0;
        };
        const readSerializedBoolean = (property) => {
          const value2 = readSerializedProperty(property);
          return typeof value2 === "boolean" ? value2 : void 0;
        };
        const readSerializedString = (property) => {
          const value2 = readSerializedProperty(property);
          return typeof value2 === "string" ? value2 : void 0;
        };
        const jar = new _CookieJar(store, {
          rejectPublicSuffixes: readSerializedBoolean("rejectPublicSuffixes"),
          looseMode: readSerializedBoolean("enableLooseMode"),
          allowSpecialUseDomain: readSerializedBoolean("allowSpecialUseDomain"),
          prefixSecurity: getNormalizedPrefixSecurity(
            readSerializedString("prefixSecurity") ?? "silent"
          )
        });
        if (!jar.store.synchronous) {
          throw new Error(
            "CookieJar store is not synchronous; use async API instead."
          );
        }
        jar._importCookiesSync(serialized);
        return jar;
      }
      /**
       * Alias of {@link CookieJar.deserializeSync}.
       *
       * @remarks
       * - When no {@link Store} is provided, a new {@link MemoryCookieStore} will be used.
       *
       * - As a convenience, if `strOrObj` is a string, it is passed through `JSON.parse` first.
       *
       * @param jsonString - A JSON string or object representing the deserialized cookies.
       * @param store - The underlying store to persist the deserialized cookies into.
       */
      static fromJSON(jsonString, store) {
        return _CookieJar.deserializeSync(jsonString, store);
      }
    };
    function permutePath(path3) {
      if (path3 === "/") {
        return ["/"];
      }
      const permutations = [path3];
      while (path3.length > 1) {
        const lindex = path3.lastIndexOf("/");
        if (lindex === 0) {
          break;
        }
        path3 = path3.slice(0, lindex);
        permutations.push(path3);
      }
      permutations.push("/");
      return permutations;
    }
    function parse22(str, options) {
      return Cookie.parse(str, options);
    }
    function fromJSON2(str) {
      return Cookie.fromJSON(str);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/cookie_utils.js
var require_cookie_utils = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/cookie_utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getCookiesFromResponse = getCookiesFromResponse2;
    exports.getDefaultCookieExpirationDate = getDefaultCookieExpirationDate2;
    exports.toughCookieToBrowserPoolCookie = toughCookieToBrowserPoolCookie2;
    exports.browserPoolCookieToToughCookie = browserPoolCookieToToughCookie2;
    exports.cookieStringToToughCookie = cookieStringToToughCookie2;
    exports.mergeCookies = mergeCookies2;
    var tough_cookie_1 = require_dist5();
    var log_1 = require_log();
    var errors_1 = require_errors4();
    function getCookiesFromResponse2(response) {
      const headers = typeof response.headers === "function" ? response.headers() : response.headers;
      const cookieHeader = headers?.["set-cookie"] || "";
      try {
        return Array.isArray(cookieHeader) ? cookieHeader.map((cookie) => tough_cookie_1.Cookie.parse(cookie)) : [tough_cookie_1.Cookie.parse(cookieHeader)];
      } catch (e4) {
        throw new errors_1.CookieParseError(cookieHeader);
      }
    }
    function getDefaultCookieExpirationDate2(maxAgeSecs) {
      return new Date(Date.now() + maxAgeSecs * 1e3);
    }
    function toughCookieToBrowserPoolCookie2(toughCookie) {
      return {
        name: toughCookie.key,
        value: toughCookie.value,
        // Puppeteer and Playwright expect 'expires' to be 'Unix time in seconds', not ms
        // If there is no expires date (so defaults to Infinity), we don't provide it to the browsers
        expires: toughCookie.expires == null || toughCookie.expires === "Infinity" ? void 0 : toughCookie.expires.getTime() / 1e3,
        domain: toughCookie.domain ? `${toughCookie.hostOnly ? "" : "."}${toughCookie.domain}` : void 0,
        path: toughCookie.path ?? void 0,
        secure: toughCookie.secure,
        httpOnly: toughCookie.httpOnly
      };
    }
    function browserPoolCookieToToughCookie2(cookieObject, maxAgeSecs) {
      const isExpiresValid = cookieObject.expires && typeof cookieObject.expires === "number" && cookieObject.expires > 0;
      const expires = isExpiresValid ? new Date(cookieObject.expires * 1e3) : getDefaultCookieExpirationDate2(maxAgeSecs);
      const domainHasLeadingDot = cookieObject.domain?.startsWith?.(".");
      const domain = domainHasLeadingDot ? cookieObject.domain?.slice?.(1) : cookieObject.domain;
      return new tough_cookie_1.Cookie({
        key: cookieObject.name,
        value: cookieObject.value,
        expires,
        domain,
        path: cookieObject.path,
        secure: cookieObject.secure,
        httpOnly: cookieObject.httpOnly,
        hostOnly: !domainHasLeadingDot
      });
    }
    function cookieStringToToughCookie2(cookieString) {
      const parsed = tough_cookie_1.Cookie.parse(cookieString);
      if (parsed) {
        return toughCookieToBrowserPoolCookie2(parsed);
      }
      return null;
    }
    function mergeCookies2(url3, sourceCookies) {
      const jar = new tough_cookie_1.CookieJar();
      for (const sourceCookieString of sourceCookies) {
        if (!sourceCookieString)
          continue;
        const cookies = sourceCookieString.split(/ *; */);
        for (const cookieString of cookies) {
          if (!cookieString)
            continue;
          const cookie = tough_cookie_1.Cookie.parse(cookieString);
          const similarKeyCookie = jar.getCookiesSync(url3).find((c6) => {
            return cookie.key !== c6.key && cookie.key.toLowerCase() === c6.key.toLowerCase();
          });
          if (similarKeyCookie) {
            log_1.log.deprecated(`Found cookies with similar name during cookie merging: '${cookie.key}' and '${similarKeyCookie.key}'`);
          }
          jar.setCookieSync(cookie, url3);
        }
      }
      return jar.getCookieStringSync(url3);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/session.js
var require_session = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/session.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Session = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_events_1 = __require("node:events");
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var tough_cookie_1 = require_dist5();
    var utilities_1 = require_cjs4();
    var cookie_utils_1 = require_cookie_utils();
    var log_1 = require_log();
    var events_1 = require_events2();
    var Session2 = class {
      get errorScore() {
        return this._errorScore;
      }
      get usageCount() {
        return this._usageCount;
      }
      get maxErrorScore() {
        return this._maxErrorScore;
      }
      get errorScoreDecrement() {
        return this._errorScoreDecrement;
      }
      get expiresAt() {
        return this._expiresAt;
      }
      get createdAt() {
        return this._createdAt;
      }
      get maxUsageCount() {
        return this._maxUsageCount;
      }
      get cookieJar() {
        return this._cookieJar;
      }
      /**
       * Session configuration.
       */
      constructor(options) {
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxAgeSecs", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "userData", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_maxErrorScore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_errorScoreDecrement", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_createdAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_expiresAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_usageCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_maxUsageCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sessionPool", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_errorScore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_cookieJar", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          sessionPool: ow_1.default.object.instanceOf(node_events_1.EventEmitter),
          id: ow_1.default.optional.string,
          cookieJar: ow_1.default.optional.object,
          maxAgeSecs: ow_1.default.optional.number,
          userData: ow_1.default.optional.object,
          maxErrorScore: ow_1.default.optional.number,
          errorScoreDecrement: ow_1.default.optional.number,
          createdAt: ow_1.default.optional.date,
          expiresAt: ow_1.default.optional.date,
          usageCount: ow_1.default.optional.number,
          errorScore: ow_1.default.optional.number,
          maxUsageCount: ow_1.default.optional.number,
          log: ow_1.default.optional.object
        }));
        const { sessionPool, id = `session_${(0, utilities_1.cryptoRandomObjectId)(10)}`, cookieJar = new tough_cookie_1.CookieJar(), maxAgeSecs = 3e3, userData = {}, maxErrorScore = 3, errorScoreDecrement = 0.5, createdAt = /* @__PURE__ */ new Date(), usageCount = 0, errorScore = 0, maxUsageCount = 50, log: log2 = log_1.log } = options;
        const { expiresAt = (0, cookie_utils_1.getDefaultCookieExpirationDate)(maxAgeSecs) } = options;
        this.log = log2.child({ prefix: "Session" });
        this._cookieJar = cookieJar.setCookie ? cookieJar : tough_cookie_1.CookieJar.fromJSON(JSON.stringify(cookieJar));
        this.id = id;
        this.maxAgeSecs = maxAgeSecs;
        this.userData = userData;
        this._maxErrorScore = maxErrorScore;
        this._errorScoreDecrement = errorScoreDecrement;
        this._expiresAt = expiresAt;
        this._createdAt = createdAt;
        this._usageCount = usageCount;
        this._errorScore = errorScore;
        this._maxUsageCount = maxUsageCount;
        this.sessionPool = sessionPool;
      }
      /**
       * Indicates whether the session is blocked.
       * Session is blocked once it reaches the `maxErrorScore`.
       */
      isBlocked() {
        return this.errorScore >= this.maxErrorScore;
      }
      /**
       * Indicates whether the session is expired.
       * Session expiration is determined by the `maxAgeSecs`.
       * Once the session is older than `createdAt + maxAgeSecs` the session is considered expired.
       */
      isExpired() {
        return this.expiresAt <= /* @__PURE__ */ new Date();
      }
      /**
       * Indicates whether the session is used maximum number of times.
       * Session maximum usage count can be changed by `maxUsageCount` parameter.
       */
      isMaxUsageCountReached() {
        return this.usageCount >= this.maxUsageCount;
      }
      /**
       * Indicates whether the session can be used for next requests.
       * Session is usable when it is not expired, not blocked and the maximum usage count has not be reached.
       */
      isUsable() {
        return !this.isBlocked() && !this.isExpired() && !this.isMaxUsageCountReached();
      }
      /**
       * This method should be called after a successful session usage.
       * It increases `usageCount` and potentially lowers the `errorScore` by the `errorScoreDecrement`.
       */
      markGood() {
        this._usageCount += 1;
        if (this._errorScore > 0) {
          this._errorScore -= this._errorScoreDecrement;
        }
        this._maybeSelfRetire();
      }
      /**
       * Gets session state for persistence in KeyValueStore.
       * @returns Represents session internal state.
       */
      getState() {
        return {
          id: this.id,
          cookieJar: this.cookieJar.toJSON(),
          userData: this.userData,
          maxErrorScore: this.maxErrorScore,
          errorScoreDecrement: this.errorScoreDecrement,
          expiresAt: this.expiresAt.toISOString(),
          createdAt: this.createdAt.toISOString(),
          usageCount: this.usageCount,
          maxUsageCount: this.maxUsageCount,
          errorScore: this.errorScore
        };
      }
      /**
       * Marks session as blocked and emits event on the `SessionPool`
       * This method should be used if the session usage was unsuccessful
       * and you are sure that it is because of the session configuration and not any external matters.
       * For example when server returns 403 status code.
       * If the session does not work due to some external factors as server error such as 5XX you probably want to use `markBad` method.
       */
      retire() {
        this._errorScore += this._maxErrorScore;
        this._usageCount += 1;
        this.sessionPool.emit(events_1.EVENT_SESSION_RETIRED, this);
      }
      /**
       * Increases usage and error count.
       * Should be used when the session has been used unsuccessfully. For example because of timeouts.
       */
      markBad() {
        this._errorScore += 1;
        this._usageCount += 1;
        this._maybeSelfRetire();
      }
      retireOnBlockedStatusCodes(statusCode, additionalBlockedStatusCodes = []) {
        const isBlocked = this.sessionPool["blockedStatusCodes"].concat(additionalBlockedStatusCodes).includes(statusCode);
        if (isBlocked) {
          this.retire();
        }
        return isBlocked;
      }
      /**
       * Saves cookies from an HTTP response to be used with the session.
       * It expects an object with a `headers` property that's either an `Object`
       * (typical Node.js responses) or a `Function` (Puppeteer Response).
       *
       * It then parses and saves the cookies from the `set-cookie` header, if available.
       */
      setCookiesFromResponse(response) {
        try {
          const cookies = (0, cookie_utils_1.getCookiesFromResponse)(response).filter((c6) => c6);
          this._setCookies(cookies, typeof response.url === "function" ? response.url() : response.url);
        } catch (e4) {
          const err2 = e4;
          this.log.exception(err2, "Could not get cookies from response");
        }
      }
      /**
       * Saves an array with cookie objects to be used with the session.
       * The objects should be in the format that
       * [Puppeteer uses](https://pptr.dev/#?product=Puppeteer&version=v2.0.0&show=api-pagecookiesurls),
       * but you can also use this function to set cookies manually:
       *
       * ```
       * [
       *   { name: 'cookie1', value: 'my-cookie' },
       *   { name: 'cookie2', value: 'your-cookie' }
       * ]
       * ```
       */
      setCookies(cookies, url3) {
        const normalizedCookies = cookies.map((c6) => (0, cookie_utils_1.browserPoolCookieToToughCookie)(c6, this.maxAgeSecs));
        this._setCookies(normalizedCookies, url3);
      }
      /**
       * Returns cookies in a format compatible with puppeteer/playwright and ready to be used with `page.setCookie`.
       * @param url website url. Only cookies stored for this url will be returned
       */
      getCookies(url3) {
        const cookies = this.cookieJar.getCookiesSync(url3);
        return cookies.map((c6) => (0, cookie_utils_1.toughCookieToBrowserPoolCookie)(c6));
      }
      /**
       * Returns cookies saved with the session in the typical
       * key1=value1; key2=value2 format, ready to be used in
       * a cookie header or elsewhere.
       * @returns Represents `Cookie` header.
       */
      getCookieString(url3) {
        return this.cookieJar.getCookieStringSync(url3, {});
      }
      /**
       * Sets a cookie within this session for the specific URL.
       */
      setCookie(rawCookie, url3) {
        this.cookieJar.setCookieSync(rawCookie, url3);
      }
      /**
       * Sets cookies.
       */
      _setCookies(cookies, url3) {
        const errorMessages = [];
        for (const cookie of cookies) {
          try {
            this.cookieJar.setCookieSync(cookie, url3, { ignoreError: false });
          } catch (e4) {
            const err2 = e4;
            errorMessages.push(err2.message);
          }
        }
        if (errorMessages.length) {
          this.log.debug("Could not set cookies.", { errorMessages });
        }
      }
      /**
       * Checks if session is not usable. if it is not retires the session.
       */
      _maybeSelfRetire() {
        if (!this.isUsable()) {
          this.retire();
        }
      }
    };
    exports.Session = Session2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/consts.js
var require_consts2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/consts.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.MAX_POOL_SIZE = exports.PERSIST_STATE_KEY = exports.BLOCKED_STATUS_CODES = void 0;
    exports.BLOCKED_STATUS_CODES = [401, 403, 429];
    exports.PERSIST_STATE_KEY = "SDK_SESSION_POOL_STATE";
    exports.MAX_POOL_SIZE = 1e3;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/session_pool.js
var require_session_pool = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/session_pool.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.SessionPool = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_events_1 = __require("node:events");
    var async_queue_1 = require_cjs6();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var configuration_1 = require_configuration();
    var log_1 = require_log();
    var key_value_store_1 = require_key_value_store3();
    var consts_1 = require_consts2();
    var session_1 = require_session();
    var SessionPool2 = class _SessionPool extends node_events_1.EventEmitter {
      /**
       * @internal
       */
      constructor(options = {}, config = configuration_1.Configuration.getGlobalConfig()) {
        super();
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxPoolSize", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "createSessionFunction", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keyValueStore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sessions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "sessionMap", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "sessionOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateKeyValueStoreId", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_listener", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "blockedStatusCodes", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistenceOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "isInitialized", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "queue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_queue_1.AsyncQueue()
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          maxPoolSize: ow_1.default.optional.number,
          persistStateKeyValueStoreId: ow_1.default.optional.string,
          persistStateKey: ow_1.default.optional.string,
          createSessionFunction: ow_1.default.optional.function,
          sessionOptions: ow_1.default.optional.object,
          blockedStatusCodes: ow_1.default.optional.array.ofType(ow_1.default.number),
          log: ow_1.default.optional.object,
          persistenceOptions: ow_1.default.optional.object
        }));
        const { maxPoolSize = consts_1.MAX_POOL_SIZE, persistStateKeyValueStoreId, persistStateKey = consts_1.PERSIST_STATE_KEY, createSessionFunction, sessionOptions = {}, blockedStatusCodes = consts_1.BLOCKED_STATUS_CODES, log: log2 = log_1.log, persistenceOptions = {
          enable: true
        } } = options;
        this.config = config;
        this.blockedStatusCodes = blockedStatusCodes;
        this.events = config.getEventManager();
        this.log = log2.child({ prefix: "SessionPool" });
        this.persistenceOptions = persistenceOptions;
        this.maxPoolSize = maxPoolSize;
        this.createSessionFunction = createSessionFunction || this._defaultCreateSessionFunction;
        this.sessionOptions = {
          ...sessionOptions,
          // the log needs to propagate to createSessionFunction as in "new Session({ ...sessionPool.sessionOptions })"
          // and can't go inside _defaultCreateSessionFunction
          log: this.log
        };
        this.persistStateKeyValueStoreId = persistStateKeyValueStoreId;
        this.persistStateKey = persistStateKey;
      }
      /**
       * Gets count of usable sessions in the pool.
       */
      get usableSessionsCount() {
        return this.sessions.filter((session) => session.isUsable()).length;
      }
      /**
       * Gets count of retired sessions in the pool.
       */
      get retiredSessionsCount() {
        return this.sessions.filter((session) => !session.isUsable()).length;
      }
      /**
       * Starts periodic state persistence and potentially loads SessionPool state from {@link KeyValueStore}.
       * It is called automatically by the {@link SessionPool.open} function.
       */
      async initialize() {
        if (this.isInitialized) {
          return;
        }
        this.keyValueStore = await key_value_store_1.KeyValueStore.open(this.persistStateKeyValueStoreId, { config: this.config });
        if (!this.persistenceOptions.enable) {
          this.isInitialized = true;
          return;
        }
        if (!this.persistStateKeyValueStoreId) {
          this.log.debug(`No 'persistStateKeyValueStoreId' options specified, this session pool's data has been saved in the KeyValueStore with the id: ${this.keyValueStore.id}`);
        }
        await this._maybeLoadSessionPool();
        this._listener = this.persistState.bind(this);
        this.events.on("persistState", this._listener);
        this.isInitialized = true;
      }
      /**
       * Adds a new session to the session pool. The pool automatically creates sessions up to the maximum size of the pool,
       * but this allows you to add more sessions once the max pool size is reached.
       * This also allows you to add session with overridden session options (e.g. with specific session id).
       * @param [options] The configuration options for the session being added to the session pool.
       */
      async addSession(options = {}) {
        this._throwIfNotInitialized();
        const { id } = options;
        if (id) {
          const sessionExists = this.sessionMap.has(id);
          if (sessionExists) {
            throw new Error(`Cannot add session with id '${id}' as it already exists in the pool`);
          }
        }
        if (!this._hasSpaceForSession()) {
          this._removeRetiredSessions();
        }
        const newSession = options instanceof session_1.Session ? options : await this.createSessionFunction(this, { sessionOptions: options });
        this.log.debug(`Adding new Session - ${newSession.id}`);
        this._addSession(newSession);
      }
      /**
       * Gets session.
       * If there is space for new session, it creates and returns new session.
       * If the session pool is full, it picks a session from the pool,
       * If the picked session is usable it is returned, otherwise it creates and returns a new one.
       * @param [sessionId] If provided, it returns the usable session with this id, `undefined` otherwise.
       */
      async getSession(sessionId) {
        await this.queue.wait();
        try {
          this._throwIfNotInitialized();
          if (sessionId) {
            const session = this.sessionMap.get(sessionId);
            if (session && session.isUsable())
              return session;
            return void 0;
          }
          if (this._hasSpaceForSession()) {
            return await this._createSession();
          }
          const pickedSession = this._pickSession();
          if (pickedSession.isUsable()) {
            return pickedSession;
          }
          this._removeRetiredSessions();
          return await this._createSession();
        } finally {
          this.queue.shift();
        }
      }
      /**
       * @param options - Override the persistence options provided in the constructor
       */
      async resetStore(options) {
        if (!this.persistenceOptions.enable && !options?.enable) {
          return;
        }
        await this.keyValueStore?.setValue(this.persistStateKey, null);
      }
      /**
       * Returns an object representing the internal state of the `SessionPool` instance.
       * Note that the object's fields can change in future releases.
       */
      getState() {
        return {
          usableSessionsCount: this.usableSessionsCount,
          retiredSessionsCount: this.retiredSessionsCount,
          sessions: this.sessions.map((session) => session.getState())
        };
      }
      /**
       * Persists the current state of the `SessionPool` into the default {@link KeyValueStore}.
       * The state is persisted automatically in regular intervals.
       * @param options - Override the persistence options provided in the constructor
       */
      async persistState(options) {
        if (!this.persistenceOptions.enable && !options?.enable) {
          return;
        }
        this.log.debug("Persisting state", {
          persistStateKeyValueStoreId: this.persistStateKeyValueStoreId,
          persistStateKey: this.persistStateKey
        });
        const persistStateIntervalMillis = this.config.get("persistStateIntervalMillis");
        const timeoutSecs = persistStateIntervalMillis / 2e3;
        await this.keyValueStore.setValue(this.persistStateKey, this.getState(), {
          timeoutSecs,
          doNotRetryTimeouts: true
        }).catch((error) => this.log.warning(`Failed to persist the session pool stats to ${this.persistStateKey}`, { error }));
      }
      /**
       * Removes listener from `persistState` event.
       * This function should be called after you are done with using the `SessionPool` instance.
       */
      async teardown() {
        this.events.off("persistState", this._listener);
        await this.persistState();
      }
      /**
       * SessionPool should not work before initialization.
       */
      _throwIfNotInitialized() {
        if (!this.isInitialized)
          throw new Error("SessionPool is not initialized.");
      }
      /**
       * Removes retired `Session` instances from `SessionPool`.
       */
      _removeRetiredSessions() {
        this.sessions = this.sessions.filter((storedSession) => {
          if (storedSession.isUsable())
            return true;
          this.sessionMap.delete(storedSession.id);
          this.log.debug(`Removed Session - ${storedSession.id}`);
          return false;
        });
      }
      /**
       * Adds `Session` instance to `SessionPool`.
       * @param newSession `Session` instance to be added.
       */
      _addSession(newSession) {
        this.sessions.push(newSession);
        this.sessionMap.set(newSession.id, newSession);
      }
      /**
       * Gets random index.
       */
      _getRandomIndex() {
        return Math.floor(Math.random() * this.sessions.length);
      }
      /**
       * Creates new session without any extra behavior.
       * @param sessionPool
       * @param [options]
       * @param [options.sessionOptions] The configuration options for the session being created.
       * @returns New session.
       */
      _defaultCreateSessionFunction(sessionPool, options = {}) {
        (0, ow_1.default)(options, ow_1.default.object.exactShape({ sessionOptions: ow_1.default.optional.object }));
        const { sessionOptions = {} } = options;
        return new session_1.Session({
          ...this.sessionOptions,
          ...sessionOptions,
          sessionPool
        });
      }
      /**
       * Creates new session and adds it to the pool.
       * @returns Newly created `Session` instance.
       */
      async _createSession() {
        const newSession = await this.createSessionFunction(this);
        this._addSession(newSession);
        this.log.debug(`Created new Session - ${newSession.id}`);
        return newSession;
      }
      /**
       * Decides whether there is enough space for creating new session.
       */
      _hasSpaceForSession() {
        return this.sessions.length < this.maxPoolSize;
      }
      /**
       * Picks random session from the `SessionPool`.
       * @returns Picked `Session`.
       */
      _pickSession() {
        return this.sessions[this._getRandomIndex()];
      }
      /**
       * Potentially loads `SessionPool`.
       * If the state was persisted it loads the `SessionPool` from the persisted state.
       */
      async _maybeLoadSessionPool() {
        const loadedSessionPool = await this.keyValueStore.getValue(this.persistStateKey);
        if (!loadedSessionPool)
          return;
        this.log.debug("Recreating state from KeyValueStore", {
          persistStateKeyValueStoreId: this.persistStateKeyValueStoreId,
          persistStateKey: this.persistStateKey
        });
        for (const sessionObject of loadedSessionPool.sessions) {
          sessionObject.sessionPool = this;
          sessionObject.createdAt = new Date(sessionObject.createdAt);
          sessionObject.expiresAt = new Date(sessionObject.expiresAt);
          const recreatedSession = await this.createSessionFunction(this, { sessionOptions: sessionObject });
          if (recreatedSession.isUsable()) {
            this._addSession(recreatedSession);
          }
        }
        this.log.debug(`${this.usableSessionsCount} active sessions loaded from KeyValueStore`);
      }
      /**
       * Opens a SessionPool and returns a promise resolving to an instance
       * of the {@link SessionPool} class that is already initialized.
       *
       * For more details and code examples, see the {@link SessionPool} class.
       */
      static async open(options, config) {
        const sessionPool = new _SessionPool(options, config);
        await sessionPool.initialize();
        return sessionPool;
      }
    };
    exports.SessionPool = SessionPool2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/index.js
var require_session_pool2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_errors4(), exports);
    tslib_1.__exportStar(require_events2(), exports);
    tslib_1.__exportStar(require_session(), exports);
    tslib_1.__exportStar(require_session_pool(), exports);
    tslib_1.__exportStar(require_consts2(), exports);
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/validators.js
var require_validators = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/validators.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.validators = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    exports.validators = {
      // Naming it browser page for future proofing with Playwright
      browserPage: (value2) => ({
        validator: ow_1.default.isValid(value2, ow_1.default.object.hasKeys("goto", "evaluate", "$", "on")),
        message: (label) => `Expected argument '${label}' to be a Puppeteer Page, got something else.`
      }),
      proxyConfiguration: (value2) => ({
        validator: ow_1.default.isValid(value2, ow_1.default.object.hasKeys("newUrl", "newProxyInfo")),
        message: (label) => `Expected argument '${label}' to be a ProxyConfiguration, got something else.`
      }),
      requestList: (value2) => ({
        validator: ow_1.default.isValid(value2, ow_1.default.object.hasKeys("fetchNextRequest", "persistState")),
        message: (label) => `Expected argument '${label}' to be a RequestList, got something else.`
      }),
      requestQueue: (value2) => ({
        validator: ow_1.default.isValid(value2, ow_1.default.object.hasKeys("fetchNextRequest", "addRequest")),
        message: (label) => `Expected argument '${label}' to be a RequestQueue, got something else.`
      })
    };
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/recoverable_state.js
var require_recoverable_state = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/recoverable_state.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RecoverableState = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var core_1 = require_core();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var RecoverableState2 = class {
      /**
       * Initialize a new recoverable state object.
       *
       * @param options Configuration options for the recoverable state
       */
      constructor(options) {
        Object.defineProperty(this, "defaultState", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "state", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "persistenceEnabled", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateKvsName", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateKvsId", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keyValueStore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "serialize", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "deserialize", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.defaultState = options.defaultState;
        this.persistStateKey = options.persistStateKey;
        this.persistenceEnabled = options.persistenceEnabled ?? false;
        this.persistStateKvsName = options.persistStateKvsName;
        this.persistStateKvsId = options.persistStateKvsId;
        this.log = options.logger ?? log_1.default.child({ prefix: "RecoverableState" });
        this.config = options.config ?? core_1.Configuration.getGlobalConfig();
        this.serialize = options.serialize ?? JSON.stringify;
        this.deserialize = options.deserialize ?? JSON.parse;
        this.persistState = this.persistState.bind(this);
      }
      /**
       * Initialize the recoverable state.
       *
       * This method must be called before using the recoverable state. It loads the saved state
       * if persistence is enabled and registers the object to listen for PERSIST_STATE events.
       *
       * @returns The loaded state object
       */
      async initialize() {
        if (this.state !== null && this.state !== void 0) {
          return this.currentValue;
        }
        if (!this.persistenceEnabled) {
          this.state = this.deserialize(this.serialize(this.defaultState));
          return this.currentValue;
        }
        this.keyValueStore = await core_1.KeyValueStore.open(this.persistStateKvsName ?? this.persistStateKvsId, {
          config: this.config
        });
        await this.loadSavedState();
        const eventManager = this.config.getEventManager();
        eventManager.on("persistState", this.persistState);
        return this.currentValue;
      }
      /**
       * Clean up resources used by the recoverable state.
       *
       * If persistence is enabled, this method deregisters the object from PERSIST_STATE events
       * and persists the current state one last time.
       */
      async teardown() {
        if (!this.persistenceEnabled || !this.persistState) {
          return;
        }
        const eventManager = this.config.getEventManager();
        eventManager.off("persistState", this.persistState);
        await this.persistState();
      }
      /**
       * Get the current state.
       */
      get currentValue() {
        if (this.state === null) {
          throw new Error("Recoverable state has not yet been loaded");
        }
        return this.state;
      }
      /**
       * Reset the state to the default values and clear any persisted state.
       *
       * Resets the current state to the default state and, if persistence is enabled,
       * clears the persisted state from the KeyValueStore.
       */
      async reset() {
        this.state = this.deserialize(this.serialize(this.defaultState));
        if (this.persistenceEnabled) {
          if (this.keyValueStore === null) {
            throw new Error("Recoverable state has not yet been initialized");
          }
          await this.keyValueStore.setValue(this.persistStateKey, null);
        }
      }
      /**
       * Persist the current state to the KeyValueStore.
       *
       * This method is typically called in response to a PERSIST_STATE event, but can also be called
       * directly when needed.
       *
       * @param eventData Optional data associated with a PERSIST_STATE event
       */
      async persistState(eventData) {
        this.log.debug(`Persisting state of the RecoverableState (eventData=${JSON.stringify(eventData)}).`);
        if (this.keyValueStore === null || this.state === null) {
          throw new Error("Recoverable state has not yet been initialized");
        }
        if (this.persistenceEnabled) {
          await this.keyValueStore.setValue(this.persistStateKey, this.serialize(this.state), {
            contentType: "text/plain"
            // HACK - the result is expected to be JSON, but we do this to avoid the implicit JSON.parse in `KeyValueStore.getValue`
          });
        }
      }
      /**
       * Load the saved state from the KeyValueStore
       */
      async loadSavedState() {
        if (this.keyValueStore === null) {
          throw new Error("Recoverable state has not yet been initialized");
        }
        const storedState = await this.keyValueStore.getValue(this.persistStateKey);
        if (storedState === null || storedState === void 0) {
          this.state = this.deserialize(this.serialize(this.defaultState));
        } else {
          this.state = this.deserialize(storedState);
        }
      }
    };
    exports.RecoverableState = RecoverableState2;
  }
});

// ../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/index.js
var require_core = __commonJS({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.PseudoUrl = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_errors(), exports);
    tslib_1.__exportStar(require_autoscaling(), exports);
    tslib_1.__exportStar(require_configuration(), exports);
    tslib_1.__exportStar(require_crawlers(), exports);
    tslib_1.__exportStar(require_enqueue_links2(), exports);
    tslib_1.__exportStar(require_events(), exports);
    tslib_1.__exportStar(require_http_clients(), exports);
    tslib_1.__exportStar(require_log(), exports);
    tslib_1.__exportStar(require_proxy_configuration(), exports);
    tslib_1.__exportStar(require_request(), exports);
    tslib_1.__exportStar(require_router(), exports);
    tslib_1.__exportStar(require_serialization(), exports);
    tslib_1.__exportStar(require_session_pool2(), exports);
    tslib_1.__exportStar(require_storages(), exports);
    tslib_1.__exportStar(require_validators(), exports);
    tslib_1.__exportStar(require_cookie_utils(), exports);
    tslib_1.__exportStar(require_recoverable_state(), exports);
    var pseudo_url_1 = require_cjs11();
    Object.defineProperty(exports, "PseudoUrl", { enumerable: true, get: function() {
      return pseudo_url_1.PseudoUrl;
    } });
  }
});

// ../../node_modules/.pnpm/@crawlee+basic@3.16.0/node_modules/@crawlee/basic/internals/send-request.js
var require_send_request = __commonJS({
  "../../node_modules/.pnpm/@crawlee+basic@3.16.0/node_modules/@crawlee/basic/internals/send-request.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.createSendRequest = createSendRequest;
    var core_1 = require_core();
    function createSendRequest(httpClient, originRequest, session, getProxyUrl) {
      return async (overrideOptions = {}) => {
        const cookieJar = session ? {
          getCookieString: async (url3) => session.getCookieString(url3),
          setCookie: async (rawCookie, url3) => session.setCookie(rawCookie, url3),
          ...overrideOptions?.cookieJar
        } : overrideOptions?.cookieJar;
        const requestOptions = (0, core_1.processHttpRequestOptions)({
          url: originRequest.url,
          method: originRequest.method,
          // Narrow type to omit CONNECT
          headers: originRequest.headers,
          proxyUrl: getProxyUrl(),
          sessionToken: session,
          responseType: "text",
          ...overrideOptions,
          cookieJar
        });
        requestOptions.body ?? (requestOptions.body = originRequest.payload);
        return httpClient.sendRequest(requestOptions);
      };
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+basic@3.16.0/node_modules/@crawlee/basic/internals/basic-crawler.js
var require_basic_crawler = __commonJS({
  "../../node_modules/.pnpm/@crawlee+basic@3.16.0/node_modules/@crawlee/basic/internals/basic-crawler.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BasicCrawler = void 0;
    exports.createBasicRouter = createBasicRouter2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_path_1 = __require("node:path");
    var core_1 = require_core();
    var utils_1 = require_utils9();
    var sync_1 = require_sync();
    var fs_extra_1 = require_lib();
    var ow_1 = tslib_1.__importStar(require_dist2());
    var tldts_1 = require_cjs10();
    var datastructures_1 = require_cjs9();
    var log_1 = tslib_1.__importStar(require_cjs3());
    var timeout_1 = require_cjs();
    var utilities_1 = require_cjs4();
    var send_request_1 = require_send_request();
    var SAFE_MIGRATION_WAIT_MILLIS = 2e4;
    var BasicCrawler2 = class _BasicCrawler {
      /**
       * All `BasicCrawler` parameters are passed via an options object.
       */
      constructor(options = {}, config = core_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "stats", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestList", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestQueue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestManager", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sessionPool", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "autoscaledPool", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "router", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: core_1.Router.create()
        });
        Object.defineProperty(this, "running", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "hasFinishedBefore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "unexpectedStop", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestHandler", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "errorHandler", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "failedRequestHandler", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestHandlerTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "internalTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxRequestRetries", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxCrawlDepth", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sameDomainDelayMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "domainAccessedTime", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxSessionRotations", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxRequestsPerCrawl", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "handledRequestsCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "statusMessageLoggingInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "statusMessageCallback", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sessionPoolOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "useSessionPool", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "crawlingContexts", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "autoscaledPoolOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "httpClient", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "retryOnBlocked", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "respectRobotsTxtFile", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "onSkippedRequest", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_closeEvents", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "loggedPerRun", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
        Object.defineProperty(this, "experiments", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "robotsTxtFileCache", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_experimentWarnings", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        (0, ow_1.default)(options, "BasicCrawlerOptions", ow_1.default.object.exactShape(_BasicCrawler.optionsShape));
        const {
          requestList,
          requestQueue,
          requestManager,
          maxRequestRetries = 3,
          sameDomainDelaySecs = 0,
          maxSessionRotations = 10,
          maxRequestsPerCrawl,
          maxCrawlDepth,
          autoscaledPoolOptions = {},
          keepAlive,
          sessionPoolOptions = {},
          useSessionPool = true,
          // AutoscaledPool shorthands
          minConcurrency,
          maxConcurrency,
          maxRequestsPerMinute,
          retryOnBlocked = false,
          respectRobotsTxtFile = false,
          onSkippedRequest,
          // internal
          log: log2 = log_1.default.child({ prefix: this.constructor.name }),
          experiments = {},
          // Old and new request handler methods
          handleRequestFunction,
          requestHandler,
          handleRequestTimeoutSecs,
          requestHandlerTimeoutSecs,
          errorHandler,
          handleFailedRequestFunction,
          failedRequestHandler,
          statusMessageLoggingInterval = 10,
          statusMessageCallback,
          statisticsOptions,
          httpClient
        } = options;
        if (requestManager !== void 0) {
          if (requestList !== void 0 || requestQueue !== void 0) {
            throw new Error("The `requestManager` option cannot be used in conjunction with `requestList` and/or `requestQueue`");
          }
          this.requestManager = requestManager;
          this.requestQueue = requestManager;
        } else {
          this.requestList = requestList;
          this.requestQueue = requestQueue;
        }
        this.httpClient = httpClient ?? new core_1.GotScrapingHttpClient();
        this.log = log2;
        this.statusMessageLoggingInterval = statusMessageLoggingInterval;
        this.statusMessageCallback = statusMessageCallback;
        this.events = config.getEventManager();
        this.domainAccessedTime = /* @__PURE__ */ new Map();
        this.experiments = experiments;
        this.robotsTxtFileCache = new datastructures_1.LruCache({ maxLength: 1e3 });
        this.handleSkippedRequest = this.handleSkippedRequest.bind(this);
        this._handlePropertyNameChange({
          newName: "requestHandler",
          oldName: "handleRequestFunction",
          propertyKey: "requestHandler",
          newProperty: requestHandler,
          oldProperty: handleRequestFunction,
          allowUndefined: true
          // fallback to the default router
        });
        if (!this.requestHandler) {
          this.requestHandler = this.router;
        }
        this.errorHandler = errorHandler;
        this._handlePropertyNameChange({
          newName: "failedRequestHandler",
          oldName: "handleFailedRequestFunction",
          propertyKey: "failedRequestHandler",
          newProperty: failedRequestHandler,
          oldProperty: handleFailedRequestFunction,
          allowUndefined: true
        });
        let newRequestHandlerTimeout;
        if (!handleRequestTimeoutSecs) {
          if (!requestHandlerTimeoutSecs) {
            newRequestHandlerTimeout = 6e4;
          } else {
            newRequestHandlerTimeout = requestHandlerTimeoutSecs * 1e3;
          }
        } else if (requestHandlerTimeoutSecs) {
          newRequestHandlerTimeout = requestHandlerTimeoutSecs * 1e3;
        }
        this.retryOnBlocked = retryOnBlocked;
        this.respectRobotsTxtFile = respectRobotsTxtFile;
        this.onSkippedRequest = onSkippedRequest;
        this._handlePropertyNameChange({
          newName: "requestHandlerTimeoutSecs",
          oldName: "handleRequestTimeoutSecs",
          propertyKey: "requestHandlerTimeoutMillis",
          newProperty: newRequestHandlerTimeout,
          oldProperty: handleRequestTimeoutSecs ? handleRequestTimeoutSecs * 1e3 : void 0
        });
        const tryEnv = (val) => val == null ? null : +val;
        this.internalTimeoutMillis = tryEnv(process.env.CRAWLEE_INTERNAL_TIMEOUT) ?? Math.max(this.requestHandlerTimeoutMillis * 2, 3e5);
        if (this.requestQueue) {
          this.requestQueue.internalTimeoutMillis = this.internalTimeoutMillis;
          this.requestQueue.requestLockSecs = Math.max(this.requestHandlerTimeoutMillis / 1e3 + 5, 60);
        }
        this.maxRequestRetries = maxRequestRetries;
        this.maxCrawlDepth = maxCrawlDepth;
        this.sameDomainDelayMillis = sameDomainDelaySecs * 1e3;
        this.maxSessionRotations = maxSessionRotations;
        this.stats = new core_1.Statistics({
          logMessage: `${log2.getOptions().prefix} request statistics:`,
          log: log2,
          config,
          ...statisticsOptions
        });
        this.sessionPoolOptions = {
          ...sessionPoolOptions,
          log: log2
        };
        if (this.retryOnBlocked) {
          this.sessionPoolOptions.blockedStatusCodes = sessionPoolOptions.blockedStatusCodes ?? [];
          if (this.sessionPoolOptions.blockedStatusCodes.length !== 0) {
            log2.warning(`Both 'blockedStatusCodes' and 'retryOnBlocked' are set. Please note that the 'retryOnBlocked' feature might not work as expected.`);
          }
        }
        this.useSessionPool = useSessionPool;
        this.crawlingContexts = /* @__PURE__ */ new Map();
        const maxSignedInteger = 2 ** 31 - 1;
        if (this.requestHandlerTimeoutMillis > maxSignedInteger) {
          log2.warning(`requestHandlerTimeoutMillis ${this.requestHandlerTimeoutMillis} does not fit a signed 32-bit integer. Limiting the value to ${maxSignedInteger}`);
          this.requestHandlerTimeoutMillis = maxSignedInteger;
        }
        this.internalTimeoutMillis = Math.min(this.internalTimeoutMillis, maxSignedInteger);
        this.maxRequestsPerCrawl = maxRequestsPerCrawl;
        const isMaxPagesExceeded = () => this.maxRequestsPerCrawl && this.maxRequestsPerCrawl <= this.handledRequestsCount;
        let { isFinishedFunction, isTaskReadyFunction } = autoscaledPoolOptions;
        if (keepAlive) {
          isFinishedFunction = async () => false;
        }
        const basicCrawlerAutoscaledPoolConfiguration = {
          minConcurrency: minConcurrency ?? autoscaledPoolOptions?.minConcurrency,
          maxConcurrency: maxConcurrency ?? autoscaledPoolOptions?.maxConcurrency,
          maxTasksPerMinute: maxRequestsPerMinute ?? autoscaledPoolOptions?.maxTasksPerMinute,
          runTaskFunction: this._runTaskFunction.bind(this),
          isTaskReadyFunction: async () => {
            if (isMaxPagesExceeded()) {
              this.logOncePerRun("shuttingDown", `Crawler reached the maxRequestsPerCrawl limit of ${this.maxRequestsPerCrawl} requests and will shut down soon. Requests that are in progress will be allowed to finish.`);
              return false;
            }
            if (this.unexpectedStop) {
              this.logOncePerRun("shuttingDown", "No new requests are allowed because the `stop()` method has been called. Ongoing requests will be allowed to complete.");
              return false;
            }
            return isTaskReadyFunction ? await isTaskReadyFunction() : await this._isTaskReadyFunction();
          },
          isFinishedFunction: async () => {
            if (isMaxPagesExceeded()) {
              log2.info(`Earlier, the crawler reached the maxRequestsPerCrawl limit of ${this.maxRequestsPerCrawl} requests and all requests that were in progress at that time have now finished. In total, the crawler processed ${this.handledRequestsCount} requests and will shut down.`);
              return true;
            }
            if (this.unexpectedStop) {
              this.log.info("The crawler has finished all the remaining ongoing requests and will shut down now.");
              return true;
            }
            const isFinished = isFinishedFunction ? await isFinishedFunction() : await this._defaultIsFinishedFunction();
            if (isFinished) {
              const reason = isFinishedFunction ? "Crawler's custom isFinishedFunction() returned true, the crawler will shut down." : "All requests from the queue have been processed, the crawler will shut down.";
              log2.info(reason);
            }
            return isFinished;
          },
          log: log2
        };
        this.autoscaledPoolOptions = { ...autoscaledPoolOptions, ...basicCrawlerAutoscaledPoolConfiguration };
      }
      /**
       * Checks if the given error is a proxy error by comparing its message to a list of known proxy error messages.
       * Used for retrying requests that failed due to proxy errors.
       *
       * @param error The error to check.
       */
      isProxyError(error) {
        return utils_1.ROTATE_PROXY_ERRORS.some((x) => this._getMessageFromError(error)?.includes(x));
      }
      /**
       * Checks whether the given crawling context is getting blocked by anti-bot protection using several heuristics.
       * Returns `false` if the request is not blocked, otherwise returns a string with a description of the block reason.
       * @param _crawlingContext The crawling context to check.
       */
      async isRequestBlocked(_crawlingContext) {
        throw new Error('the "isRequestBlocked" method is not implemented in this crawler.');
      }
      /**
       * This method is periodically called by the crawler, every `statusMessageLoggingInterval` seconds.
       */
      async setStatusMessage(message, options = {}) {
        const data2 = options.isStatusMessageTerminal != null ? { terminal: options.isStatusMessageTerminal } : void 0;
        this.log.internal(log_1.LogLevel[options.level ?? "DEBUG"], message, data2);
        const client = this.config.getStorageClient();
        if (!client.setStatusMessage) {
          return;
        }
        await (0, timeout_1.addTimeoutToPromise)(async () => client.setStatusMessage(message, options), 1e3, "Setting status message timed out after 1s").catch((e4) => this.log.debug(e4.message));
      }
      getPeriodicLogger() {
        let previousState = { ...this.stats.state };
        const getOperationMode = () => {
          const { requestsFailed } = this.stats.state;
          const { requestsFailed: previousRequestsFailed } = previousState;
          previousState = { ...this.stats.state };
          if (requestsFailed - previousRequestsFailed > 0) {
            return "ERROR";
          }
          return "REGULAR";
        };
        const log2 = async () => {
          const operationMode = getOperationMode();
          let message;
          if (operationMode === "ERROR") {
            message = `Experiencing problems, ${this.stats.state.requestsFailed - previousState.requestsFailed || this.stats.state.requestsFailed} failed requests in the past ${this.statusMessageLoggingInterval} seconds.`;
          } else {
            const total = this.requestManager?.getTotalCount();
            message = `Crawled ${this.stats.state.requestsFinished}${total ? `/${total}` : ""} pages, ${this.stats.state.requestsFailed} failed requests, desired concurrency ${this.autoscaledPool?.desiredConcurrency ?? 0}.`;
          }
          if (this.statusMessageCallback) {
            await this.statusMessageCallback({
              crawler: this,
              state: this.stats.state,
              previousState,
              message
            });
            return;
          }
          await this.setStatusMessage(message);
        };
        const interval = setInterval(log2, this.statusMessageLoggingInterval * 1e3);
        return { log: log2, stop: () => clearInterval(interval) };
      }
      /**
       * Runs the crawler. Returns a promise that resolves once all the requests are processed
       * and `autoscaledPool.isFinished` returns `true`.
       *
       * We can use the `requests` parameter to enqueue the initial requests — it is a shortcut for
       * running {@link BasicCrawler.addRequests|`crawler.addRequests()`} before {@link BasicCrawler.run|`crawler.run()`}.
       *
       * @param [requests] The requests to add.
       * @param [options] Options for the request queue.
       */
      async run(requests, options) {
        if (this.running) {
          throw new Error("This crawler instance is already running, you can add more requests to it via `crawler.addRequests()`.");
        }
        const { purgeRequestQueue = true, ...addRequestsOptions } = options ?? {};
        if (this.hasFinishedBefore) {
          if (this.requestQueue?.name === "default" && purgeRequestQueue) {
            await this.requestQueue.drop();
            this.requestQueue = await this._getRequestQueue();
            this.requestManager = void 0;
            await this.initializeRequestManager();
            this.handledRequestsCount = 0;
          }
          this.stats.reset();
          await this.stats.resetStore();
          await this.sessionPool?.resetStore();
        }
        this.unexpectedStop = false;
        this.running = true;
        this.loggedPerRun.clear();
        await (0, core_1.purgeDefaultStorages)({
          onlyPurgeOnce: true,
          client: this.config.getStorageClient(),
          config: this.config
        });
        if (requests) {
          await this.addRequests(requests, addRequestsOptions);
        }
        await this._init();
        await this.stats.startCapturing();
        const periodicLogger = this.getPeriodicLogger();
        void this.setStatusMessage("Starting the crawler.", { level: "INFO" });
        const sigintHandler = async () => {
          this.log.warning("Pausing... Press CTRL+C again to force exit. To resume, do: CRAWLEE_PURGE_ON_START=0 npm start");
          await this._pauseOnMigration();
          await this.autoscaledPool.abort();
        };
        const boundPauseOnMigration = this._pauseOnMigration.bind(this);
        process.once("SIGINT", sigintHandler);
        this.events.on("migrating", boundPauseOnMigration);
        this.events.on("aborting", boundPauseOnMigration);
        let stats = {};
        try {
          await this.autoscaledPool.run();
        } finally {
          await this.teardown();
          await this.stats.stopCapturing();
          process.off("SIGINT", sigintHandler);
          this.events.off("migrating", boundPauseOnMigration);
          this.events.off("aborting", boundPauseOnMigration);
          const finalStats = this.stats.calculate();
          stats = {
            requestsFinished: this.stats.state.requestsFinished,
            requestsFailed: this.stats.state.requestsFailed,
            retryHistogram: this.stats.requestRetryHistogram,
            ...finalStats
          };
          this.log.info("Final request statistics:", stats);
          if (this.stats.errorTracker.total !== 0) {
            const prettify = ([count, info]) => `${count}x: ${info.at(-1).trim()} (${info[0]})`;
            this.log.info(`Error analysis:`, {
              totalErrors: this.stats.errorTracker.total,
              uniqueErrors: this.stats.errorTracker.getUniqueErrorCount(),
              mostCommonErrors: this.stats.errorTracker.getMostPopularErrors(3).map(prettify)
            });
          }
          const client = this.config.getStorageClient();
          if (client.teardown) {
            let finished2 = false;
            setTimeout(() => {
              if (!finished2) {
                this.log.info("Waiting for the storage to write its state to file system.");
              }
            }, 1e3);
            await client.teardown();
            finished2 = true;
          }
          periodicLogger.stop();
          void this.setStatusMessage(`Finished! Total ${this.stats.state.requestsFinished + this.stats.state.requestsFailed} requests: ${this.stats.state.requestsFinished} succeeded, ${this.stats.state.requestsFailed} failed.`, { isStatusMessageTerminal: true, level: "INFO" });
          this.running = false;
          this.hasFinishedBefore = true;
        }
        return stats;
      }
      /**
       * Gracefully stops the current run of the crawler.
       *
       * All the tasks active at the time of calling this method will be allowed to finish.
       *
       * To stop the crawler immediately, use {@link BasicCrawler.teardown|`crawler.teardown()`} instead.
       */
      stop(reason = "The crawler has been gracefully stopped.") {
        if (this.unexpectedStop) {
          return;
        }
        this.log.info(reason);
        this.unexpectedStop = true;
      }
      async getRequestQueue() {
        if (!this.requestQueue && this.requestList) {
          this.log.warningOnce("When using RequestList and RequestQueue at the same time, you should instantiate both explicitly and provide them in the crawler options, to ensure correctly handled restarts of the crawler.");
        }
        if (!this.requestQueue) {
          this.requestQueue = await this._getRequestQueue();
          this.requestManager = void 0;
        }
        if (!this.requestManager) {
          this.requestManager = this.requestList === void 0 ? this.requestQueue : new core_1.RequestManagerTandem(this.requestList, this.requestQueue);
        }
        return this.requestQueue;
      }
      async useState(defaultValue = {}) {
        const kvs = await core_1.KeyValueStore.open(null, { config: this.config });
        return kvs.getAutoSavedValue(_BasicCrawler.CRAWLEE_STATE_KEY, defaultValue);
      }
      get pendingRequestCountApproximation() {
        return this.requestManager?.getPendingCount() ?? 0;
      }
      calculateEnqueuedRequestLimit(explicitLimit) {
        if (this.maxRequestsPerCrawl === void 0) {
          return explicitLimit;
        }
        const limit = Math.max(0, this.maxRequestsPerCrawl - this.handledRequestsCount - this.pendingRequestCountApproximation);
        return Math.min(limit, explicitLimit ?? Infinity);
      }
      async handleSkippedRequest(options) {
        if (options.reason === "limit") {
          this.logOncePerRun("maxRequestsPerCrawl", `The number of requests enqueued by the crawler reached the maxRequestsPerCrawl limit of ${this.maxRequestsPerCrawl} requests and no further requests will be added.`);
        }
        if (options.reason === "depth") {
          this.logOncePerRun("maxCrawlDepth", `The crawler reached the maxCrawlDepth limit of ${this.maxCrawlDepth} and no further requests will be enqueued.`);
        }
        await this.onSkippedRequest?.(options);
      }
      logOncePerRun(key, message) {
        if (!this.loggedPerRun.has(key)) {
          this.log.info(message);
          this.loggedPerRun.add(key);
        }
      }
      /**
       * Adds requests to the queue in batches. By default, it will resolve after the initial batch is added, and continue
       * adding the rest in background. You can configure the batch size via `batchSize` option and the sleep time in between
       * the batches via `waitBetweenBatchesMillis`. If you want to wait for all batches to be added to the queue, you can use
       * the `waitForAllRequestsToBeAdded` promise you get in the response object.
       *
       * This is an alias for calling `addRequestsBatched()` on the implicit `RequestQueue` for this crawler instance.
       *
       * @param requests The requests to add
       * @param options Options for the request queue
       */
      async addRequests(requests, options = {}) {
        await this.getRequestQueue();
        const requestLimit = this.calculateEnqueuedRequestLimit();
        const skippedBecauseOfRobots = /* @__PURE__ */ new Set();
        const skippedBecauseOfLimit = /* @__PURE__ */ new Set();
        const skippedBecauseOfMaxCrawlDepth = /* @__PURE__ */ new Set();
        const isAllowedBasedOnRobotsTxtFile = this.isAllowedBasedOnRobotsTxtFile.bind(this);
        const maxCrawlDepth = this.maxCrawlDepth;
        (0, ow_1.default)(requests, ow_1.default.object.is((value2) => (0, utils_1.isIterable)(value2) || (0, utils_1.isAsyncIterable)(value2)).message((value2) => `Expected an iterable or async iterable, got ${(0, utils_1.getObjectType)(value2)}`));
        async function* filteredRequests() {
          let yieldedRequestCount = 0;
          for await (const request of requests) {
            const url3 = typeof request === "string" ? request : request.url;
            if (requestLimit !== void 0 && yieldedRequestCount >= requestLimit) {
              skippedBecauseOfLimit.add(url3);
              continue;
            }
            if (maxCrawlDepth !== void 0 && request.crawlDepth > maxCrawlDepth) {
              skippedBecauseOfMaxCrawlDepth.add(url3);
              continue;
            }
            if (await isAllowedBasedOnRobotsTxtFile(url3)) {
              yield request;
              yieldedRequestCount += 1;
            } else {
              skippedBecauseOfRobots.add(url3);
            }
          }
        }
        const result = await this.requestManager.addRequestsBatched(filteredRequests(), options);
        if (skippedBecauseOfRobots.size > 0) {
          this.log.warning(`Some requests were skipped because they were disallowed based on the robots.txt file`, {
            skipped: [...skippedBecauseOfRobots]
          });
        }
        if (skippedBecauseOfRobots.size > 0 || skippedBecauseOfLimit.size > 0 || skippedBecauseOfMaxCrawlDepth.size > 0) {
          await Promise.all([...skippedBecauseOfRobots].map((url3) => {
            return this.handleSkippedRequest({ url: url3, reason: "robotsTxt" });
          }).concat([...skippedBecauseOfLimit].map((url3) => {
            return this.handleSkippedRequest({ url: url3, reason: "limit" });
          }), [...skippedBecauseOfMaxCrawlDepth].map((url3) => {
            return this.handleSkippedRequest({ url: url3, reason: "depth" });
          })));
        }
        return result;
      }
      /**
       * Pushes data to the specified {@link Dataset}, or the default crawler {@link Dataset} by calling {@link Dataset.pushData}.
       */
      async pushData(data2, datasetIdOrName) {
        const dataset = await this.getDataset(datasetIdOrName);
        return dataset.pushData(data2);
      }
      /**
       * Retrieves the specified {@link Dataset}, or the default crawler {@link Dataset}.
       */
      async getDataset(idOrName) {
        return core_1.Dataset.open(idOrName, { config: this.config });
      }
      /**
       * Retrieves data from the default crawler {@link Dataset} by calling {@link Dataset.getData}.
       */
      async getData(...args) {
        const dataset = await this.getDataset();
        return dataset.getData(...args);
      }
      /**
       * Retrieves all the data from the default crawler {@link Dataset} and exports them to the specified format.
       * Supported formats are currently 'json' and 'csv', and will be inferred from the `path` automatically.
       */
      async exportData(path3, format, options) {
        const supportedFormats = ["json", "csv"];
        if (!format && path3.match(/\.(json|csv)$/i)) {
          format = path3.toLowerCase().match(/\.(json|csv)$/)[1];
        }
        if (!format) {
          throw new Error(`Failed to infer format from the path: '${path3}'. Supported formats: ${supportedFormats.join(", ")}`);
        }
        if (!supportedFormats.includes(format)) {
          throw new Error(`Unsupported format: '${format}'. Use one of ${supportedFormats.join(", ")}`);
        }
        const dataset = await this.getDataset();
        const items = await dataset.export(options);
        if (format === "csv") {
          let value2;
          if (items.length === 0) {
            value2 = "";
          } else {
            const keys2 = options?.collectAllKeys ? Array.from(new Set(items.flatMap(Object.keys))) : Object.keys(items[0]);
            value2 = (0, sync_1.stringify)([
              keys2,
              ...items.map((item) => {
                return keys2.map((k3) => item[k3]);
              })
            ]);
          }
          await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(path3));
          await (0, fs_extra_1.writeFile)(path3, value2);
          this.log.info(`Export to ${path3} finished!`);
        }
        if (format === "json") {
          await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(path3));
          await (0, fs_extra_1.writeJSON)(path3, items, { spaces: 4 });
          this.log.info(`Export to ${path3} finished!`);
        }
        return items;
      }
      /**
       * Initializes the crawler.
       */
      async _init() {
        if (!this.events.isInitialized()) {
          await this.events.init();
          this._closeEvents = true;
        }
        this.autoscaledPool = new core_1.AutoscaledPool(this.autoscaledPoolOptions, this.config);
        if (this.useSessionPool) {
          this.sessionPool = await core_1.SessionPool.open(this.sessionPoolOptions, this.config);
          this.sessionPool.setMaxListeners(20);
        }
        await this.initializeRequestManager();
        await this._loadHandledRequestCount();
      }
      async _runRequestHandler(crawlingContext) {
        await this.requestHandler(crawlingContext);
      }
      /**
       * Handles blocked request
       */
      _throwOnBlockedRequest(session, statusCode) {
        const isBlocked = session.retireOnBlockedStatusCodes(statusCode);
        if (isBlocked) {
          throw new Error(`Request blocked - received ${statusCode} status code.`);
        }
      }
      async isAllowedBasedOnRobotsTxtFile(url3) {
        if (!this.respectRobotsTxtFile) {
          return true;
        }
        const robotsTxtFile = await this.getRobotsTxtFileForUrl(url3);
        const userAgent = typeof this.respectRobotsTxtFile === "object" ? this.respectRobotsTxtFile?.userAgent : "*";
        return !robotsTxtFile || robotsTxtFile.isAllowed(url3, userAgent);
      }
      async getRobotsTxtFileForUrl(url3) {
        if (!this.respectRobotsTxtFile) {
          return void 0;
        }
        try {
          const origin2 = new URL(url3).origin;
          const cachedRobotsTxtFile = this.robotsTxtFileCache.get(origin2);
          if (cachedRobotsTxtFile) {
            return cachedRobotsTxtFile;
          }
          const robotsTxtFile = await utils_1.RobotsTxtFile.find(url3);
          this.robotsTxtFileCache.add(origin2, robotsTxtFile);
          return robotsTxtFile;
        } catch (e4) {
          this.log.warning(`Failed to fetch robots.txt for request ${url3}`);
          return void 0;
        }
      }
      async _pauseOnMigration() {
        if (this.autoscaledPool) {
          await this.autoscaledPool.pause(SAFE_MIGRATION_WAIT_MILLIS).catch((err2) => {
            if (err2.message.includes("running tasks did not finish")) {
              this.log.error("The crawler was paused due to migration to another host, but some requests did not finish in time. Those requests' results may be duplicated.");
            } else {
              throw err2;
            }
          });
        }
        const requestListPersistPromise = (async () => {
          if (this.requestList) {
            if (await this.requestList.isFinished())
              return;
            await this.requestList.persistState().catch((err2) => {
              if (err2.message.includes("Cannot persist state.")) {
                this.log.error(`The crawler attempted to persist its request list's state and failed due to missing or invalid config. Make sure to use either RequestList.open() or the "stateKeyPrefix" option of RequestList constructor to ensure your crawling state is persisted through host migrations and restarts.`);
              } else {
                this.log.exception(err2, "An unexpected error occurred when the crawler attempted to persist its request list's state.");
              }
            });
          }
        })();
        await Promise.all([requestListPersistPromise, this.stats.persistState()]);
      }
      /**
       * Initializes the RequestManager based on the configured requestList and requestQueue.
       */
      async initializeRequestManager() {
        if (this.requestManager !== void 0) {
          return;
        }
        if (this.requestList && this.requestQueue) {
          this.requestManager = new core_1.RequestManagerTandem(this.requestList, this.requestQueue);
        } else if (this.requestQueue) {
          this.requestManager = this.requestQueue;
        } else if (this.requestList) {
          this.requestManager = new core_1.RequestListAdapter(this.requestList);
        }
      }
      /**
       * Fetches the next request to process from the underlying request provider.
       */
      async _fetchNextRequest() {
        if (this.requestManager === void 0) {
          throw new Error(`_fetchNextRequest called on an uninitialized crawler`);
        }
        return this.requestManager.fetchNextRequest();
      }
      /**
       * Executed when `errorHandler` finishes or the request is successful.
       * Can be used to clean up orphaned browser pages.
       */
      async _cleanupContext(_crawlingContext) {
      }
      /**
       * Delays processing of the request based on the `sameDomainDelaySecs` option,
       * adding it back to the queue after the timeout passes. Returns `true` if the request
       * should be ignored and will be reclaimed to the queue once ready.
       */
      delayRequest(request, source) {
        const domain = (0, tldts_1.getDomain)(request.url);
        if (!domain || !request) {
          return false;
        }
        const now = Date.now();
        const lastAccessTime = this.domainAccessedTime.get(domain);
        if (!lastAccessTime || now - lastAccessTime >= this.sameDomainDelayMillis) {
          this.domainAccessedTime.set(domain, now);
          return false;
        }
        if (source instanceof core_1.RequestQueueV1) {
          source["inProgress"]?.delete(request.id);
        }
        const delay2 = lastAccessTime + this.sameDomainDelayMillis - now;
        this.log.debug(`Request ${request.url} (${request.id}) will be reclaimed after ${delay2} milliseconds due to same domain delay`);
        setTimeout(async () => {
          this.log.debug(`Adding request ${request.url} (${request.id}) back to the queue`);
          if (source instanceof core_1.RequestQueueV1) {
            source["inProgress"].add(request.id);
          }
          await source.reclaimRequest(request, { forefront: request.userData?.__crawlee?.forefront });
        }, delay2);
        return true;
      }
      /**
       * Wrapper around requestHandler that fetches requests from RequestList/RequestQueue
       * then retries them in a case of an error, etc.
       */
      async _runTaskFunction() {
        const source = this.requestManager;
        if (!source)
          throw new Error("Request provider is not initialized!");
        const request = await this._timeoutAndRetry(this._fetchNextRequest.bind(this), this.internalTimeoutMillis, `Fetching next request timed out after ${this.internalTimeoutMillis / 1e3} seconds.`);
        (0, timeout_1.tryCancel)();
        const session = this.useSessionPool ? await this._timeoutAndRetry(this.sessionPool.getSession.bind(this.sessionPool), this.internalTimeoutMillis, `Fetching session timed out after ${this.internalTimeoutMillis / 1e3} seconds.`) : void 0;
        (0, timeout_1.tryCancel)();
        if (!request || this.delayRequest(request, source)) {
          return;
        }
        if (!await this.isAllowedBasedOnRobotsTxtFile(request.url)) {
          this.log.warning(`Skipping request ${request.url} (${request.id}) because it is disallowed based on robots.txt`);
          request.state = core_1.RequestState.SKIPPED;
          request.noRetry = true;
          await source.markRequestHandled(request);
          await this.handleSkippedRequest({
            url: request.url,
            reason: "robotsTxt"
          });
          return;
        }
        request.loadedUrl = void 0;
        const statisticsId = request.id || request.uniqueKey;
        this.stats.startJob(statisticsId);
        const crawlingContext = {
          id: (0, utilities_1.cryptoRandomObjectId)(10),
          crawler: this,
          log: this.log,
          request,
          session,
          enqueueLinks: async (options) => {
            const requestQueue = await this.getRequestQueue();
            return this.enqueueLinksWithCrawlDepth(options, request, requestQueue);
          },
          addRequests: async (requests, options = {}) => {
            const newCrawlDepth = request.crawlDepth + 1;
            const requestsGenerator = this.addCrawlDepthRequestGenerator(requests, newCrawlDepth);
            return this.addRequests(requestsGenerator, options);
          },
          pushData: this.pushData.bind(this),
          useState: this.useState.bind(this),
          sendRequest: (0, send_request_1.createSendRequest)(this.httpClient, request, session, () => crawlingContext.proxyInfo?.url),
          getKeyValueStore: async (idOrName) => core_1.KeyValueStore.open(idOrName, { config: this.config })
        };
        this.crawlingContexts.set(crawlingContext.id, crawlingContext);
        let isRequestLocked = true;
        try {
          request.state = core_1.RequestState.REQUEST_HANDLER;
          await (0, timeout_1.addTimeoutToPromise)(async () => this._runRequestHandler(crawlingContext), this.requestHandlerTimeoutMillis, `requestHandler timed out after ${this.requestHandlerTimeoutMillis / 1e3} seconds (${request.id}).`);
          await this._timeoutAndRetry(async () => source.markRequestHandled(request), this.internalTimeoutMillis, `Marking request ${request.url} (${request.id}) as handled timed out after ${this.internalTimeoutMillis / 1e3} seconds.`);
          isRequestLocked = false;
          this.stats.finishJob(statisticsId, request.retryCount);
          this.handledRequestsCount++;
          request.state = core_1.RequestState.DONE;
          crawlingContext.session?.markGood();
        } catch (err2) {
          try {
            request.state = core_1.RequestState.ERROR_HANDLER;
            await (0, timeout_1.addTimeoutToPromise)(async () => this._requestFunctionErrorHandler(err2, crawlingContext, source), this.internalTimeoutMillis, `Handling request failure of ${request.url} (${request.id}) timed out after ${this.internalTimeoutMillis / 1e3} seconds.`);
            if (!(err2 instanceof core_1.CriticalError)) {
              isRequestLocked = false;
            }
            request.state = core_1.RequestState.DONE;
          } catch (secondaryError) {
            if (!secondaryError.triggeredFromUserHandler && // avoid reprinting the same critical error multiple times, as it will be printed by Nodejs at the end anyway
            !(secondaryError instanceof core_1.CriticalError)) {
              const apifySpecific = process.env.APIFY_IS_AT_HOME ? `This may have happened due to an internal error of Apify's API or due to a misconfigured crawler.` : "";
              this.log.exception(secondaryError, `An exception occurred during handling of failed request. This places the crawler and its underlying storages into an unknown state and crawling will be terminated. ${apifySpecific}`);
            }
            request.state = core_1.RequestState.ERROR;
            throw secondaryError;
          }
          crawlingContext.session?.markBad();
        } finally {
          await this._cleanupContext(crawlingContext);
          this.crawlingContexts.delete(crawlingContext.id);
          if (isRequestLocked && source instanceof core_1.RequestProvider) {
            try {
              await source.client.deleteRequestLock(request.id);
            } catch {
            }
          }
        }
      }
      /**
       * Wrapper around the crawling context's `enqueueLinks` method:
       * - Injects `crawlDepth` to each request being added based on the crawling context request.
       * - Provides defaults for the `enqueueLinks` options based on the crawler configuration.
       *      - These options can be overridden by the user.
       * @internal
       */
      async enqueueLinksWithCrawlDepth(options, request, requestQueue) {
        const transformRequestFunctionWrapper = (newRequest) => {
          newRequest.crawlDepth = request.crawlDepth + 1;
          if (this.maxCrawlDepth !== void 0 && newRequest.crawlDepth > this.maxCrawlDepth) {
            newRequest.skippedReason = "depth";
            return false;
          }
          return options.transformRequestFunction?.(newRequest) ?? newRequest;
        };
        let loggedEnqueueLimitForThisRequest = false;
        const onSkippedRequest = async (skippedOptions) => {
          if (skippedOptions.reason === "enqueueLimit") {
            if (!loggedEnqueueLimitForThisRequest && options.limit !== void 0) {
              this.log.info(`Skipping URLs in the handler for ${request.url} due to the enqueueLinks limit of ${options.limit}.`);
              loggedEnqueueLimitForThisRequest = true;
            }
          }
          await this.handleSkippedRequest(skippedOptions);
        };
        return (0, core_1.enqueueLinks)({
          requestQueue,
          robotsTxtFile: await this.getRobotsTxtFileForUrl(request.url),
          onSkippedRequest,
          limit: this.calculateEnqueuedRequestLimit(options.limit),
          // Allow user options to override defaults set above ⤴
          ...options,
          transformRequestFunction: transformRequestFunctionWrapper
        });
      }
      /**
       * Generator function that yields requests injected with the given crawl depth.
       * @internal
       */
      async *addCrawlDepthRequestGenerator(requests, newRequestDepth) {
        for await (const request of requests) {
          if (typeof request === "string") {
            yield { url: request, crawlDepth: newRequestDepth };
          } else {
            request.crawlDepth ?? (request.crawlDepth = newRequestDepth);
            yield request;
          }
        }
      }
      /**
       * Run async callback with given timeout and retry. Returns the result of the callback.
       * @ignore
       */
      async _timeoutAndRetry(handler, timeout, error, maxRetries = 3, retried = 1) {
        try {
          return await (0, timeout_1.addTimeoutToPromise)(handler, timeout, error);
        } catch (e4) {
          if (retried <= maxRetries) {
            this.log.warning(`${e4.message} (retrying ${retried}/${maxRetries})`);
            return this._timeoutAndRetry(handler, timeout, error, maxRetries, retried + 1);
          }
          throw e4;
        }
      }
      /**
       * Returns true if either RequestList or RequestQueue have a request ready for processing.
       */
      async _isTaskReadyFunction() {
        return this.requestManager !== void 0 && !await this.requestManager.isEmpty();
      }
      /**
       * Returns true if both RequestList and RequestQueue have all requests finished.
       */
      async _defaultIsFinishedFunction() {
        return !this.requestManager || await this.requestManager.isFinished();
      }
      async _rotateSession(crawlingContext) {
        const { request } = crawlingContext;
        request.sessionRotationCount ?? (request.sessionRotationCount = 0);
        request.sessionRotationCount++;
        crawlingContext.session?.retire();
      }
      /**
       * Handles errors thrown by user provided requestHandler()
       */
      async _requestFunctionErrorHandler(error, crawlingContext, source) {
        const { request } = crawlingContext;
        request.pushErrorMessage(error);
        if (error instanceof core_1.CriticalError) {
          throw error;
        }
        const shouldRetryRequest = this._canRequestBeRetried(request, error);
        if (shouldRetryRequest) {
          await this.stats.errorTrackerRetry.addAsync(error, crawlingContext);
          await this._tagUserHandlerError(() => this.errorHandler?.(this._augmentContextWithDeprecatedError(crawlingContext, error), error));
          if (error instanceof core_1.SessionError) {
            await this._rotateSession(crawlingContext);
          }
          if (!request.noRetry) {
            request.retryCount++;
            const { url: url3, retryCount, id } = request;
            const message = this._getMessageFromError(error);
            this.log.warning(`Reclaiming failed request back to the list or queue. ${message}`, {
              id,
              url: url3,
              retryCount
            });
            await source.reclaimRequest(request, { forefront: request.userData?.__crawlee?.forefront });
            return;
          }
        }
        const { noRetry, maxRetries } = request;
        if (noRetry || !maxRetries) {
          await this.stats.errorTracker.addAsync(error, crawlingContext);
        } else {
          this.stats.errorTracker.add(error);
        }
        this.handledRequestsCount++;
        await source.markRequestHandled(request);
        this.stats.failJob(request.id || request.uniqueKey, request.retryCount);
        await this._handleFailedRequestHandler(crawlingContext, error);
      }
      async _tagUserHandlerError(cb) {
        try {
          return await cb();
        } catch (e4) {
          Object.defineProperty(e4, "triggeredFromUserHandler", { value: true });
          throw e4;
        }
      }
      async _handleFailedRequestHandler(crawlingContext, error) {
        const { id, url: url3, method, uniqueKey } = crawlingContext.request;
        const message = this._getMessageFromError(error, true);
        this.log.error(`Request failed and reached maximum retries. ${message}`, { id, url: url3, method, uniqueKey });
        if (this.failedRequestHandler) {
          await this._tagUserHandlerError(() => this.failedRequestHandler?.(this._augmentContextWithDeprecatedError(crawlingContext, error), error));
        }
      }
      /**
       * Resolves the most verbose error message from a thrown error
       * @param error The error received
       * @returns The message to be logged
       */
      _getMessageFromError(error, forceStack = false) {
        if ([TypeError, SyntaxError, ReferenceError].some((type) => error instanceof type)) {
          forceStack = true;
        }
        const stackLines = error?.stack ? error.stack.split("\n") : new Error().stack.split("\n").slice(2);
        const baseDir = process.cwd();
        const userLine = stackLines.find((line2) => line2.includes(baseDir) && !line2.includes("node_modules"));
        if (error instanceof timeout_1.TimeoutError) {
          return process.env.CRAWLEE_VERBOSE_LOG ? error.stack : error.message || error;
        }
        return process.env.CRAWLEE_VERBOSE_LOG || forceStack ? error.stack ?? [error.message || error, ...stackLines].join("\n") : [error.message || error, userLine].join("\n");
      }
      _canRequestBeRetried(request, error) {
        if (request.noRetry || error instanceof core_1.NonRetryableError || error instanceof core_1.SessionError && this.maxSessionRotations <= (request.sessionRotationCount ?? 0)) {
          return false;
        }
        if (error instanceof core_1.RetryRequestError) {
          return true;
        }
        const maxRequestRetries = request.maxRetries ?? this.maxRequestRetries;
        return request.retryCount < maxRequestRetries;
      }
      _augmentContextWithDeprecatedError(context, error) {
        Object.defineProperty(context, "error", {
          get: () => {
            this.log.deprecated("The 'error' property of the crawling context is deprecated, and it is now passed as the second parameter in 'errorHandler' and 'failedRequestHandler'. Please update your code, as this property will be removed in a future version.");
            return error;
          },
          configurable: true
        });
        return context;
      }
      /**
       * Updates handledRequestsCount from possibly stored counts, usually after worker migration.
       */
      async _loadHandledRequestCount() {
        if (this.requestManager) {
          this.handledRequestsCount = await this.requestManager.handledCount();
        }
      }
      async _executeHooks(hooks2, ...args) {
        if (Array.isArray(hooks2) && hooks2.length) {
          for (const hook of hooks2) {
            await hook(...args);
          }
        }
      }
      /**
       * Stops the crawler immediately.
       *
       * This method doesn't wait for currently active requests to finish.
       *
       * To stop the crawler gracefully (waiting for all running requests to finish), use {@link BasicCrawler.stop|`crawler.stop()`} instead.
       */
      async teardown() {
        this.events.emit("persistState", { isMigrating: false });
        if (this.useSessionPool) {
          await this.sessionPool.teardown();
        }
        if (this._closeEvents) {
          await this.events.close();
        }
        await this.autoscaledPool?.abort();
      }
      _handlePropertyNameChange({ newProperty, newName, oldProperty, oldName, propertyKey, allowUndefined = false }) {
        if (newProperty && oldProperty) {
          this.log.warning([
            `Both "${newName}" and "${oldName}" were provided in the crawler options.`,
            `"${oldName}" has been renamed to "${newName}", and will be removed in a future version.`,
            `As such, "${newName}" will be used instead.`
          ].join("\n"));
          this[propertyKey] = newProperty;
        } else if (oldProperty) {
          this.log.warning([
            `"${oldName}" has been renamed to "${newName}", and will be removed in a future version.`,
            `The provided value will be used, but you should rename "${oldName}" to "${newName}" in your crawler options.`
          ].join("\n"));
          this[propertyKey] = oldProperty;
        } else if (newProperty) {
          this[propertyKey] = newProperty;
        } else if (!allowUndefined) {
          throw new ow_1.ArgumentError(`"${newName}" must be provided in the crawler options`, this.constructor);
        }
      }
      _getCookieHeaderFromRequest(request) {
        if (request.headers?.Cookie && request.headers?.cookie) {
          this.log.warning(`Encountered mixed casing for the cookie headers for request ${request.url} (${request.id}). Their values will be merged.`);
          return (0, core_1.mergeCookies)(request.url, [request.headers.cookie, request.headers.Cookie]);
        }
        return request.headers?.Cookie || request.headers?.cookie || "";
      }
      async _getRequestQueue() {
        if (this.experiments.requestLocking === false) {
          if (!this._experimentWarnings.requestLocking) {
            this.log.info("Using the old RequestQueue implementation without request locking.");
            this._experimentWarnings.requestLocking = true;
          }
          return core_1.RequestQueueV1.open(null, { config: this.config });
        }
        return core_1.RequestQueue.open(null, { config: this.config });
      }
      requestMatchesEnqueueStrategy(request) {
        const { url: url3, loadedUrl } = request;
        const strategy = request["enqueueStrategy"];
        if (!strategy) {
          return true;
        }
        if (!loadedUrl) {
          return true;
        }
        const baseUrl = new URL(url3);
        const loadedBaseUrl = new URL(loadedUrl);
        switch (strategy) {
          case core_1.EnqueueStrategy.SameHostname: {
            return baseUrl.hostname === loadedBaseUrl.hostname;
          }
          case core_1.EnqueueStrategy.SameDomain: {
            const baseUrlHostname = (0, tldts_1.getDomain)(baseUrl.hostname, { mixedInputs: false });
            if (baseUrlHostname) {
              const loadedBaseUrlHostname = (0, tldts_1.getDomain)(loadedBaseUrl.hostname, { mixedInputs: false });
              return baseUrlHostname === loadedBaseUrlHostname;
            }
            return baseUrl.origin === loadedBaseUrl.origin;
          }
          case core_1.EnqueueStrategy.SameOrigin: {
            return baseUrl.origin === loadedBaseUrl.origin;
          }
          case core_1.EnqueueStrategy.All:
          default: {
            return baseUrl.protocol === "http:" || baseUrl.protocol === "https:";
          }
        }
      }
    };
    exports.BasicCrawler = BasicCrawler2;
    Object.defineProperty(BasicCrawler2, "CRAWLEE_STATE_KEY", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: "CRAWLEE_STATE"
    });
    Object.defineProperty(BasicCrawler2, "optionsShape", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        requestList: ow_1.default.optional.object.validate(core_1.validators.requestList),
        requestQueue: ow_1.default.optional.object.validate(core_1.validators.requestQueue),
        // Subclasses override this function instead of passing it
        // in constructor, so this validation needs to apply only
        // if the user creates an instance of BasicCrawler directly.
        requestHandler: ow_1.default.optional.function,
        // TODO: remove in a future release
        handleRequestFunction: ow_1.default.optional.function,
        requestHandlerTimeoutSecs: ow_1.default.optional.number,
        // TODO: remove in a future release
        handleRequestTimeoutSecs: ow_1.default.optional.number,
        errorHandler: ow_1.default.optional.function,
        failedRequestHandler: ow_1.default.optional.function,
        // TODO: remove in a future release
        handleFailedRequestFunction: ow_1.default.optional.function,
        maxRequestRetries: ow_1.default.optional.number,
        sameDomainDelaySecs: ow_1.default.optional.number,
        maxSessionRotations: ow_1.default.optional.number,
        maxRequestsPerCrawl: ow_1.default.optional.number,
        maxCrawlDepth: ow_1.default.optional.number,
        autoscaledPoolOptions: ow_1.default.optional.object,
        sessionPoolOptions: ow_1.default.optional.object,
        useSessionPool: ow_1.default.optional.boolean,
        statusMessageLoggingInterval: ow_1.default.optional.number,
        statusMessageCallback: ow_1.default.optional.function,
        retryOnBlocked: ow_1.default.optional.boolean,
        respectRobotsTxtFile: ow_1.default.optional.any(ow_1.default.boolean, ow_1.default.object),
        onSkippedRequest: ow_1.default.optional.function,
        httpClient: ow_1.default.optional.object,
        // AutoscaledPool shorthands
        minConcurrency: ow_1.default.optional.number,
        maxConcurrency: ow_1.default.optional.number,
        maxRequestsPerMinute: ow_1.default.optional.number.integerOrInfinite.positive.greaterThanOrEqual(1),
        keepAlive: ow_1.default.optional.boolean,
        // internal
        log: ow_1.default.optional.object,
        experiments: ow_1.default.optional.object,
        statisticsOptions: ow_1.default.optional.object
      }
    });
    function createBasicRouter2(routes) {
      return core_1.Router.create(routes);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+basic@3.16.0/node_modules/@crawlee/basic/internals/constants.js
var require_constants3 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+basic@3.16.0/node_modules/@crawlee/basic/internals/constants.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BASIC_CRAWLER_TIMEOUT_BUFFER_SECS = void 0;
    exports.BASIC_CRAWLER_TIMEOUT_BUFFER_SECS = 10;
  }
});

// ../../node_modules/.pnpm/@crawlee+basic@3.16.0/node_modules/@crawlee/basic/index.js
var require_basic = __commonJS({
  "../../node_modules/.pnpm/@crawlee+basic@3.16.0/node_modules/@crawlee/basic/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_core(), exports);
    tslib_1.__exportStar(require_basic_crawler(), exports);
    tslib_1.__exportStar(require_constants3(), exports);
  }
});

// ../../node_modules/.pnpm/fingerprint-generator@2.1.80/node_modules/fingerprint-generator/constants.js
var require_constants4 = __commonJS({
  "../../node_modules/.pnpm/fingerprint-generator@2.1.80/node_modules/fingerprint-generator/constants.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.MISSING_VALUE_DATASET_TOKEN = exports.STRINGIFIED_PREFIX = void 0;
    exports.STRINGIFIED_PREFIX = "*STRINGIFIED*";
    exports.MISSING_VALUE_DATASET_TOKEN = "*MISSING_VALUE*";
  }
});

// ../../node_modules/.pnpm/fingerprint-generator@2.1.80/node_modules/fingerprint-generator/fingerprint-generator.js
var require_fingerprint_generator = __commonJS({
  "../../node_modules/.pnpm/fingerprint-generator@2.1.80/node_modules/fingerprint-generator/fingerprint-generator.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.FingerprintGenerator = void 0;
    var generative_bayesian_network_1 = require_generative_bayesian_network();
    var header_generator_1 = require_header_generator2();
    var constants_1 = require_constants4();
    var FingerprintGenerator = class extends header_generator_1.HeaderGenerator {
      /**
       * @param options Default header generation options used - unless overridden.
       */
      constructor(options = {}) {
        super(options);
        Object.defineProperty(this, "fingerprintGeneratorNetwork", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "fingerprintGlobalOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.fingerprintGlobalOptions = {
          screen: options.screen,
          mockWebRTC: options.mockWebRTC,
          slim: options.slim
        };
        this.fingerprintGeneratorNetwork = new generative_bayesian_network_1.BayesianNetwork({
          path: `${__dirname}/data_files/fingerprint-network-definition.zip`
        });
      }
      /**
       * Generates a fingerprint and a matching set of ordered headers using a combination of the default options specified in the constructor
       * and their possible overrides provided here.
       * @param options Overrides default `FingerprintGenerator` options.
       * @param requestDependentHeaders Specifies known values of headers dependent on the particular request.
       */
      getFingerprint(options = {}, requestDependentHeaders = {}) {
        const filteredValues = {};
        for (const [key, value2] of Object.entries(options)) {
          if (!value2) {
            delete options[key];
          }
        }
        options = {
          ...this.fingerprintGlobalOptions,
          ...options
        };
        const partialCSP = (() => {
          const extensiveScreen = options.screen && Object.keys(options.screen).length !== 0;
          const shouldUseExtensiveConstraints = extensiveScreen;
          if (!shouldUseExtensiveConstraints)
            return void 0;
          filteredValues.screen = extensiveScreen ? this.fingerprintGeneratorNetwork.nodesByName.screen.possibleValues.filter((screenString) => {
            const screen = JSON.parse(screenString.split(constants_1.STRINGIFIED_PREFIX)[1]);
            return screen.width >= (options.screen?.minWidth ?? 0) && screen.width <= (options.screen?.maxWidth ?? 1e5) && screen.height >= (options.screen?.minHeight ?? 0) && screen.height <= (options.screen?.maxHeight ?? 1e5);
          }) : void 0;
          try {
            return generative_bayesian_network_1.utils.getConstraintClosure(this.fingerprintGeneratorNetwork, filteredValues);
          } catch (e4) {
            if (options?.strict)
              throw e4;
            delete filteredValues.screen;
            return void 0;
          }
        })();
        for (let generateRetries = 0; generateRetries < 10; generateRetries++) {
          const headers = super.getHeaders(options, requestDependentHeaders, partialCSP?.userAgent);
          const userAgent = "User-Agent" in headers ? headers["User-Agent"] : headers["user-agent"];
          const fingerprint = this.fingerprintGeneratorNetwork.generateConsistentSampleWhenPossible({
            ...filteredValues,
            userAgent: [userAgent]
          });
          for (const attribute of Object.keys(fingerprint)) {
            if (fingerprint[attribute] === constants_1.MISSING_VALUE_DATASET_TOKEN) {
              fingerprint[attribute] = null;
            } else if (fingerprint[attribute].startsWith(constants_1.STRINGIFIED_PREFIX)) {
              fingerprint[attribute] = JSON.parse(fingerprint[attribute].slice(constants_1.STRINGIFIED_PREFIX.length));
            }
          }
          if (!fingerprint.screen)
            continue;
          const acceptLanguageHeaderValue = "Accept-Language" in headers ? headers["Accept-Language"] : headers["accept-language"];
          const acceptedLanguages = [];
          for (const locale of acceptLanguageHeaderValue.split(",")) {
            acceptedLanguages.push(locale.split(";")[0]);
          }
          fingerprint.languages = acceptedLanguages;
          return {
            fingerprint: {
              ...this.transformFingerprint(fingerprint),
              mockWebRTC: options.mockWebRTC ?? this.fingerprintGlobalOptions.mockWebRTC ?? false,
              slim: options.slim ?? this.fingerprintGlobalOptions.slim ?? false
            },
            headers
          };
        }
        throw new Error("Failed to generate a consistent fingerprint after 10 attempts");
      }
      /**
       * Transforms fingerprint to the final scheme, more suitable for fingerprint manipulation and injection.
       * This schema is used in the `fingerprint-injector`.
       * @param fingerprint Fingerprint to be transformed.
       * @returns Transformed fingerprint.
       */
      transformFingerprint(fingerprint) {
        const { userAgent, userAgentData, doNotTrack, appCodeName, appName, appVersion, oscpu, webdriver, languages, platform, deviceMemory, hardwareConcurrency, product, productSub, vendor, vendorSub, maxTouchPoints, extraProperties, screen, pluginsData, audioCodecs, videoCodecs, battery, videoCard, multimediaDevices, fonts } = fingerprint;
        const parsedMemory = parseInt(deviceMemory, 10);
        const parsedTouchPoints = parseInt(maxTouchPoints, 10);
        const navigator2 = {
          userAgent,
          userAgentData,
          language: languages[0],
          languages,
          platform,
          deviceMemory: Number.isNaN(parsedMemory) ? null : parsedMemory,
          // Firefox does not have deviceMemory available
          hardwareConcurrency: parseInt(hardwareConcurrency, 10),
          maxTouchPoints: Number.isNaN(parsedTouchPoints) ? 0 : parsedTouchPoints,
          product,
          productSub,
          vendor,
          vendorSub,
          doNotTrack,
          appCodeName,
          appName,
          appVersion,
          oscpu,
          extraProperties,
          webdriver
        };
        return {
          screen,
          navigator: navigator2,
          audioCodecs,
          videoCodecs,
          pluginsData,
          battery,
          videoCard,
          multimediaDevices,
          fonts
        };
      }
    };
    exports.FingerprintGenerator = FingerprintGenerator;
  }
});

// ../../node_modules/.pnpm/fingerprint-generator@2.1.80/node_modules/fingerprint-generator/index.js
var require_fingerprint_generator2 = __commonJS({
  "../../node_modules/.pnpm/fingerprint-generator@2.1.80/node_modules/fingerprint-generator/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.PRESETS = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_fingerprint_generator(), exports);
    var header_generator_1 = require_header_generator2();
    Object.defineProperty(exports, "PRESETS", { enumerable: true, get: function() {
      return header_generator_1.PRESETS;
    } });
  }
});

// ../../node_modules/.pnpm/fingerprint-injector@2.1.80/node_modules/fingerprint-injector/fingerprint-injector.js
var require_fingerprint_injector = __commonJS({
  "../../node_modules/.pnpm/fingerprint-injector@2.1.80/node_modules/fingerprint-injector/fingerprint-injector.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.FingerprintInjector = void 0;
    exports.newInjectedContext = newInjectedContext;
    exports.newInjectedPage = newInjectedPage;
    var fs_1 = __require("fs");
    var fingerprint_generator_1 = require_fingerprint_generator2();
    var FingerprintInjector = class {
      constructor() {
        Object.defineProperty(this, "utilsJs", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: this._loadUtils()
        });
      }
      /**
       * Some HTTP headers depend on the request (for example Accept (with values application/json, image/png) etc.).
       *  This function filters out those headers and leaves only the browser-wide ones.
       * @param headers Headers to be filtered.
       * @returns Filtered headers.
       */
      onlyInjectableHeaders(headers, browserName) {
        const requestHeaders = [
          "accept-encoding",
          "accept",
          "cache-control",
          "pragma",
          "sec-fetch-dest",
          "sec-fetch-mode",
          "sec-fetch-site",
          "sec-fetch-user",
          "upgrade-insecure-requests"
        ];
        const filteredHeaders = { ...headers };
        requestHeaders.forEach((header) => {
          delete filteredHeaders[header];
        });
        if (!(browserName?.toLowerCase().includes("firefox") ?? false)) {
          delete filteredHeaders.te;
        }
        return filteredHeaders;
      }
      /**
       * Adds init script to the browser context, so the fingerprint is changed before every document creation.
       * DISCLAIMER: Since Playwright does not support changing viewport and `user-agent` after the context is created,
       * you have to set it manually when the context is created. Check the Playwright usage example for more details.
       * @param browserContext Playwright browser context to be injected with the fingerprint.
       * @param fingerprint Browser fingerprint from [`fingerprint-generator`](https://github.com/apify/fingerprint-generator).
       */
      async attachFingerprintToPlaywright(browserContext, browserFingerprintWithHeaders) {
        const { fingerprint, headers } = browserFingerprintWithHeaders;
        const enhancedFingerprint = this._enhanceFingerprint(fingerprint);
        const content = this.getInjectableFingerprintFunction(enhancedFingerprint);
        const browserName = browserContext.browser()?.browserType().name();
        await browserContext.setExtraHTTPHeaders({
          ...this.onlyInjectableHeaders(headers, browserName),
          ...Object.fromEntries(
            // @ts-expect-error Accessing private property
            (browserContext._options?.extraHTTPHeaders ?? []).map(({ name, value: value2 }) => [
              name,
              value2
            ])
          )
        });
        browserContext.on("page", (page) => {
          page.emulateMedia({ colorScheme: "dark" }).catch(() => {
          });
        });
        await browserContext.addInitScript({
          content
        });
      }
      /**
       * Adds script that is evaluated before every document creation.
       * Sets User-Agent and viewport using native puppeteer interface
       * @param page Puppeteer `Page` object to be injected with the fingerprint.
       * @param fingerprint Fingerprint from [`fingerprint-generator`](https://github.com/apify/fingerprint-generator).
       */
      async attachFingerprintToPuppeteer(page, browserFingerprintWithHeaders) {
        const { fingerprint, headers } = browserFingerprintWithHeaders;
        const enhancedFingerprint = this._enhanceFingerprint(fingerprint);
        const { screen, userAgent } = enhancedFingerprint;
        await page.setUserAgent(userAgent);
        const browserVersion = await page.browser().version();
        if (!browserVersion.toLowerCase().includes("firefox")) {
          await (await page.target().createCDPSession()).send("Page.setDeviceMetricsOverride", {
            screenHeight: screen.height,
            screenWidth: screen.width,
            width: screen.width,
            height: screen.height,
            mobile: /phone|android|mobile/i.test(userAgent),
            screenOrientation: screen.height > screen.width ? { angle: 0, type: "portraitPrimary" } : { angle: 90, type: "landscapePrimary" },
            deviceScaleFactor: screen.devicePixelRatio
          });
          await page.setExtraHTTPHeaders(this.onlyInjectableHeaders(headers, browserVersion));
          await page.emulateMediaFeatures([
            { name: "prefers-color-scheme", value: "dark" }
          ]);
        }
        await page.evaluateOnNewDocument(this.getInjectableFingerprintFunction(enhancedFingerprint));
      }
      /**
       * Gets the override script that should be evaluated in the browser.
       */
      getInjectableScript(browserFingerprintWithHeaders) {
        const { fingerprint } = browserFingerprintWithHeaders;
        const enhancedFingerprint = this._enhanceFingerprint(fingerprint);
        return this.getInjectableFingerprintFunction(enhancedFingerprint);
      }
      /**
       * Create injection function string.
       * @param fingerprint Enhanced fingerprint.
       * @returns Script overriding browser fingerprint.
       */
      getInjectableFingerprintFunction(fingerprint) {
        function inject() {
          const {
            battery,
            navigator: { extraProperties, userAgentData, webdriver, ...navigatorProps },
            screen: allScreenProps,
            videoCard,
            historyLength,
            audioCodecs,
            videoCodecs,
            mockWebRTC,
            slim
            // @ts-expect-error internal browser code
          } = fp;
          const {
            // window screen props
            outerHeight,
            outerWidth,
            devicePixelRatio,
            innerWidth,
            innerHeight,
            screenX,
            pageXOffset,
            pageYOffset,
            // Document screen props
            clientWidth,
            clientHeight,
            // Ignore hdr for now.
            hasHDR,
            // window.screen props
            ...newScreen
          } = allScreenProps;
          const windowScreenProps = {
            innerHeight,
            outerHeight,
            outerWidth,
            innerWidth,
            screenX,
            pageXOffset,
            pageYOffset,
            devicePixelRatio
          };
          const documentScreenProps = {
            clientHeight,
            clientWidth
          };
          runHeadlessFixes();
          if (mockWebRTC)
            blockWebRTC();
          if (slim) {
            window["slim"] = true;
          }
          overrideIntlAPI(navigatorProps.language);
          overrideStatic();
          if (userAgentData) {
            overrideUserAgentData(userAgentData);
          }
          if (window.navigator.webdriver) {
            navigatorProps.webdriver = false;
          }
          overrideInstancePrototype(window.navigator, navigatorProps);
          overrideInstancePrototype(window.screen, newScreen);
          overrideWindowDimensionsProps(windowScreenProps);
          overrideDocumentDimensionsProps(documentScreenProps);
          overrideInstancePrototype(window.history, {
            length: historyLength
          });
          overrideWebGl(videoCard);
          overrideCodecs(audioCodecs, videoCodecs);
          overrideBattery(battery);
        }
        const mainFunctionString = inject.toString();
        return `(()=>{${this.utilsJs}; const fp=${JSON.stringify(fingerprint)}; (${mainFunctionString})()})()`;
      }
      _enhanceFingerprint(fingerprint) {
        const { navigator: navigator2, ...rest } = fingerprint;
        return {
          ...rest,
          navigator: navigator2,
          userAgent: navigator2.userAgent,
          historyLength: this._randomInRange(2, 6)
        };
      }
      /**
       * Loads the contents of the `utils.js` file, which contains the helper functions for the fingerprinting script.
       *
       * Loading this file dynamically bypasses the TypeScript compiler, which would otherwise mangle the code,
       * causing errors when executing it in the browser.
       */
      _loadUtils() {
        const utilsJs = (0, fs_1.readFileSync)(`${__dirname}/utils.js`);
        return `
${utilsJs}
`;
      }
      _randomInRange(min2, max3) {
        return Math.floor(Math.random() * (max3 - min2) + min2);
      }
    };
    exports.FingerprintInjector = FingerprintInjector;
    async function newInjectedContext(browser, options) {
      const generator2 = new fingerprint_generator_1.FingerprintGenerator();
      const fingerprintWithHeaders = options?.fingerprint ?? generator2.getFingerprint(options?.fingerprintOptions);
      const { fingerprint, headers } = fingerprintWithHeaders;
      const context = await browser.newContext({
        userAgent: fingerprint.navigator.userAgent,
        colorScheme: "dark",
        ...options?.newContextOptions,
        viewport: {
          width: fingerprint.screen.width,
          height: fingerprint.screen.height,
          ...options?.newContextOptions?.viewport
        },
        extraHTTPHeaders: {
          "accept-language": headers["accept-language"],
          ...options?.newContextOptions?.extraHTTPHeaders
        }
      });
      const injector = new FingerprintInjector();
      await injector.attachFingerprintToPlaywright(context, fingerprintWithHeaders);
      return context;
    }
    async function newInjectedPage(browser, options) {
      const generator2 = new fingerprint_generator_1.FingerprintGenerator();
      const fingerprintWithHeaders = options?.fingerprint ?? generator2.getFingerprint(options?.fingerprintOptions);
      const page = await browser.newPage();
      const injector = new FingerprintInjector();
      await injector.attachFingerprintToPuppeteer(page, fingerprintWithHeaders);
      return page;
    }
  }
});

// ../../node_modules/.pnpm/fingerprint-injector@2.1.80/node_modules/fingerprint-injector/index.js
var require_fingerprint_injector2 = __commonJS({
  "../../node_modules/.pnpm/fingerprint-injector@2.1.80/node_modules/fingerprint-injector/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_fingerprint_injector(), exports);
  }
});

// ../../node_modules/.pnpm/nanoid@3.3.11/node_modules/nanoid/url-alphabet/index.cjs
var require_url_alphabet = __commonJS({
  "../../node_modules/.pnpm/nanoid@3.3.11/node_modules/nanoid/url-alphabet/index.cjs"(exports, module) {
    var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
    module.exports = { urlAlphabet };
  }
});

// ../../node_modules/.pnpm/nanoid@3.3.11/node_modules/nanoid/index.cjs
var require_nanoid = __commonJS({
  "../../node_modules/.pnpm/nanoid@3.3.11/node_modules/nanoid/index.cjs"(exports, module) {
    var crypto5 = __require("crypto");
    var { urlAlphabet } = require_url_alphabet();
    var POOL_SIZE_MULTIPLIER = 128;
    var pool;
    var poolOffset;
    var fillPool = (bytes) => {
      if (!pool || pool.length < bytes) {
        pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);
        crypto5.randomFillSync(pool);
        poolOffset = 0;
      } else if (poolOffset + bytes > pool.length) {
        crypto5.randomFillSync(pool);
        poolOffset = 0;
      }
      poolOffset += bytes;
    };
    var random = (bytes) => {
      fillPool(bytes |= 0);
      return pool.subarray(poolOffset - bytes, poolOffset);
    };
    var customRandom = (alphabet2, defaultSize, getRandom) => {
      let mask = (2 << 31 - Math.clz32(alphabet2.length - 1 | 1)) - 1;
      let step = Math.ceil(1.6 * mask * defaultSize / alphabet2.length);
      return (size = defaultSize) => {
        let id = "";
        while (true) {
          let bytes = getRandom(step);
          let i5 = step;
          while (i5--) {
            id += alphabet2[bytes[i5] & mask] || "";
            if (id.length === size) return id;
          }
        }
      };
    };
    var customAlphabet = (alphabet2, size = 21) => customRandom(alphabet2, size, random);
    var nanoid = (size = 21) => {
      fillPool(size |= 0);
      let id = "";
      for (let i5 = poolOffset - size; i5 < poolOffset; i5++) {
        id += urlAlphabet[pool[i5] & 63];
      }
      return id;
    };
    module.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random };
  }
});

// ../../node_modules/.pnpm/yocto-queue@0.1.0/node_modules/yocto-queue/index.js
var require_yocto_queue = __commonJS({
  "../../node_modules/.pnpm/yocto-queue@0.1.0/node_modules/yocto-queue/index.js"(exports, module) {
    var Node = class {
      /// value;
      /// next;
      constructor(value2) {
        this.value = value2;
        this.next = void 0;
      }
    };
    var Queue = class {
      // TODO: Use private class fields when targeting Node.js 12.
      // #_head;
      // #_tail;
      // #_size;
      constructor() {
        this.clear();
      }
      enqueue(value2) {
        const node = new Node(value2);
        if (this._head) {
          this._tail.next = node;
          this._tail = node;
        } else {
          this._head = node;
          this._tail = node;
        }
        this._size++;
      }
      dequeue() {
        const current = this._head;
        if (!current) {
          return;
        }
        this._head = this._head.next;
        this._size--;
        return current.value;
      }
      clear() {
        this._head = void 0;
        this._tail = void 0;
        this._size = 0;
      }
      get size() {
        return this._size;
      }
      *[Symbol.iterator]() {
        let current = this._head;
        while (current) {
          yield current.value;
          current = current.next;
        }
      }
    };
    module.exports = Queue;
  }
});

// ../../node_modules/.pnpm/p-limit@3.1.0/node_modules/p-limit/index.js
var require_p_limit = __commonJS({
  "../../node_modules/.pnpm/p-limit@3.1.0/node_modules/p-limit/index.js"(exports, module) {
    "use strict";
    var Queue = require_yocto_queue();
    var pLimit = (concurrency) => {
      if (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) {
        throw new TypeError("Expected `concurrency` to be a number from 1 and up");
      }
      const queue = new Queue();
      let activeCount = 0;
      const next = () => {
        activeCount--;
        if (queue.size > 0) {
          queue.dequeue()();
        }
      };
      const run = async (fn, resolve4, ...args) => {
        activeCount++;
        const result = (async () => fn(...args))();
        resolve4(result);
        try {
          await result;
        } catch {
        }
        next();
      };
      const enqueue = (fn, resolve4, ...args) => {
        queue.enqueue(run.bind(null, fn, resolve4, ...args));
        (async () => {
          await Promise.resolve();
          if (activeCount < concurrency && queue.size > 0) {
            queue.dequeue()();
          }
        })();
      };
      const generator2 = (fn, ...args) => new Promise((resolve4) => {
        enqueue(fn, resolve4, ...args);
      });
      Object.defineProperties(generator2, {
        activeCount: {
          get: () => activeCount
        },
        pendingCount: {
          get: () => queue.size
        },
        clearQueue: {
          value: () => {
            queue.clear();
          }
        }
      });
      return generator2;
    };
    module.exports = pLimit;
  }
});

// ../../node_modules/.pnpm/tiny-typed-emitter@2.1.0/node_modules/tiny-typed-emitter/lib/index.js
var require_lib13 = __commonJS({
  "../../node_modules/.pnpm/tiny-typed-emitter@2.1.0/node_modules/tiny-typed-emitter/lib/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.TypedEmitter = __require("events").EventEmitter;
  }
});

// ../../node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.js
var require_lodash2 = __commonJS({
  "../../node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.js"(exports, module) {
    var LARGE_ARRAY_SIZE = 200;
    var HASH_UNDEFINED = "__lodash_hash_undefined__";
    var HOT_COUNT = 800;
    var HOT_SPAN = 16;
    var MAX_SAFE_INTEGER = 9007199254740991;
    var argsTag = "[object Arguments]";
    var arrayTag = "[object Array]";
    var asyncTag = "[object AsyncFunction]";
    var boolTag = "[object Boolean]";
    var dateTag = "[object Date]";
    var errorTag = "[object Error]";
    var funcTag = "[object Function]";
    var genTag = "[object GeneratorFunction]";
    var mapTag = "[object Map]";
    var numberTag = "[object Number]";
    var nullTag = "[object Null]";
    var objectTag = "[object Object]";
    var proxyTag = "[object Proxy]";
    var regexpTag = "[object RegExp]";
    var setTag = "[object Set]";
    var stringTag = "[object String]";
    var undefinedTag = "[object Undefined]";
    var weakMapTag = "[object WeakMap]";
    var arrayBufferTag = "[object ArrayBuffer]";
    var dataViewTag = "[object DataView]";
    var float32Tag = "[object Float32Array]";
    var float64Tag = "[object Float64Array]";
    var int8Tag = "[object Int8Array]";
    var int16Tag = "[object Int16Array]";
    var int32Tag = "[object Int32Array]";
    var uint8Tag = "[object Uint8Array]";
    var uint8ClampedTag = "[object Uint8ClampedArray]";
    var uint16Tag = "[object Uint16Array]";
    var uint32Tag = "[object Uint32Array]";
    var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
    var reIsHostCtor = /^\[object .+?Constructor\]$/;
    var reIsUint = /^(?:0|[1-9]\d*)$/;
    var typedArrayTags = {};
    typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
    typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
    var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
    var freeSelf = typeof self == "object" && self && self.Object === Object && self;
    var root = freeGlobal || freeSelf || Function("return this")();
    var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
    var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
    var moduleExports = freeModule && freeModule.exports === freeExports;
    var freeProcess = moduleExports && freeGlobal.process;
    var nodeUtil = (function() {
      try {
        var types2 = freeModule && freeModule.require && freeModule.require("util").types;
        if (types2) {
          return types2;
        }
        return freeProcess && freeProcess.binding && freeProcess.binding("util");
      } catch (e4) {
      }
    })();
    var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
    function apply2(func, thisArg, args) {
      switch (args.length) {
        case 0:
          return func.call(thisArg);
        case 1:
          return func.call(thisArg, args[0]);
        case 2:
          return func.call(thisArg, args[0], args[1]);
        case 3:
          return func.call(thisArg, args[0], args[1], args[2]);
      }
      return func.apply(thisArg, args);
    }
    function baseTimes(n6, iteratee) {
      var index2 = -1, result = Array(n6);
      while (++index2 < n6) {
        result[index2] = iteratee(index2);
      }
      return result;
    }
    function baseUnary(func) {
      return function(value2) {
        return func(value2);
      };
    }
    function getValue(object, key) {
      return object == null ? void 0 : object[key];
    }
    function overArg(func, transform) {
      return function(arg) {
        return func(transform(arg));
      };
    }
    var arrayProto = Array.prototype;
    var funcProto = Function.prototype;
    var objectProto = Object.prototype;
    var coreJsData = root["__core-js_shared__"];
    var funcToString = funcProto.toString;
    var hasOwnProperty2 = objectProto.hasOwnProperty;
    var maskSrcKey = (function() {
      var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
      return uid ? "Symbol(src)_1." + uid : "";
    })();
    var nativeObjectToString = objectProto.toString;
    var objectCtorString = funcToString.call(Object);
    var reIsNative = RegExp(
      "^" + funcToString.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
    );
    var Buffer5 = moduleExports ? root.Buffer : void 0;
    var Symbol2 = root.Symbol;
    var Uint8Array2 = root.Uint8Array;
    var allocUnsafe = Buffer5 ? Buffer5.allocUnsafe : void 0;
    var getPrototype = overArg(Object.getPrototypeOf, Object);
    var objectCreate = Object.create;
    var propertyIsEnumerable = objectProto.propertyIsEnumerable;
    var splice = arrayProto.splice;
    var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
    var defineProperty = (function() {
      try {
        var func = getNative(Object, "defineProperty");
        func({}, "", {});
        return func;
      } catch (e4) {
      }
    })();
    var nativeIsBuffer = Buffer5 ? Buffer5.isBuffer : void 0;
    var nativeMax = Math.max;
    var nativeNow = Date.now;
    var Map2 = getNative(root, "Map");
    var nativeCreate = getNative(Object, "create");
    var baseCreate = /* @__PURE__ */ (function() {
      function object() {
      }
      return function(proto) {
        if (!isObject4(proto)) {
          return {};
        }
        if (objectCreate) {
          return objectCreate(proto);
        }
        object.prototype = proto;
        var result = new object();
        object.prototype = void 0;
        return result;
      };
    })();
    function Hash(entries3) {
      var index2 = -1, length2 = entries3 == null ? 0 : entries3.length;
      this.clear();
      while (++index2 < length2) {
        var entry = entries3[index2];
        this.set(entry[0], entry[1]);
      }
    }
    function hashClear() {
      this.__data__ = nativeCreate ? nativeCreate(null) : {};
      this.size = 0;
    }
    function hashDelete(key) {
      var result = this.has(key) && delete this.__data__[key];
      this.size -= result ? 1 : 0;
      return result;
    }
    function hashGet(key) {
      var data2 = this.__data__;
      if (nativeCreate) {
        var result = data2[key];
        return result === HASH_UNDEFINED ? void 0 : result;
      }
      return hasOwnProperty2.call(data2, key) ? data2[key] : void 0;
    }
    function hashHas(key) {
      var data2 = this.__data__;
      return nativeCreate ? data2[key] !== void 0 : hasOwnProperty2.call(data2, key);
    }
    function hashSet(key, value2) {
      var data2 = this.__data__;
      this.size += this.has(key) ? 0 : 1;
      data2[key] = nativeCreate && value2 === void 0 ? HASH_UNDEFINED : value2;
      return this;
    }
    Hash.prototype.clear = hashClear;
    Hash.prototype["delete"] = hashDelete;
    Hash.prototype.get = hashGet;
    Hash.prototype.has = hashHas;
    Hash.prototype.set = hashSet;
    function ListCache(entries3) {
      var index2 = -1, length2 = entries3 == null ? 0 : entries3.length;
      this.clear();
      while (++index2 < length2) {
        var entry = entries3[index2];
        this.set(entry[0], entry[1]);
      }
    }
    function listCacheClear() {
      this.__data__ = [];
      this.size = 0;
    }
    function listCacheDelete(key) {
      var data2 = this.__data__, index2 = assocIndexOf(data2, key);
      if (index2 < 0) {
        return false;
      }
      var lastIndex = data2.length - 1;
      if (index2 == lastIndex) {
        data2.pop();
      } else {
        splice.call(data2, index2, 1);
      }
      --this.size;
      return true;
    }
    function listCacheGet(key) {
      var data2 = this.__data__, index2 = assocIndexOf(data2, key);
      return index2 < 0 ? void 0 : data2[index2][1];
    }
    function listCacheHas(key) {
      return assocIndexOf(this.__data__, key) > -1;
    }
    function listCacheSet(key, value2) {
      var data2 = this.__data__, index2 = assocIndexOf(data2, key);
      if (index2 < 0) {
        ++this.size;
        data2.push([key, value2]);
      } else {
        data2[index2][1] = value2;
      }
      return this;
    }
    ListCache.prototype.clear = listCacheClear;
    ListCache.prototype["delete"] = listCacheDelete;
    ListCache.prototype.get = listCacheGet;
    ListCache.prototype.has = listCacheHas;
    ListCache.prototype.set = listCacheSet;
    function MapCache(entries3) {
      var index2 = -1, length2 = entries3 == null ? 0 : entries3.length;
      this.clear();
      while (++index2 < length2) {
        var entry = entries3[index2];
        this.set(entry[0], entry[1]);
      }
    }
    function mapCacheClear() {
      this.size = 0;
      this.__data__ = {
        "hash": new Hash(),
        "map": new (Map2 || ListCache)(),
        "string": new Hash()
      };
    }
    function mapCacheDelete(key) {
      var result = getMapData(this, key)["delete"](key);
      this.size -= result ? 1 : 0;
      return result;
    }
    function mapCacheGet(key) {
      return getMapData(this, key).get(key);
    }
    function mapCacheHas(key) {
      return getMapData(this, key).has(key);
    }
    function mapCacheSet(key, value2) {
      var data2 = getMapData(this, key), size = data2.size;
      data2.set(key, value2);
      this.size += data2.size == size ? 0 : 1;
      return this;
    }
    MapCache.prototype.clear = mapCacheClear;
    MapCache.prototype["delete"] = mapCacheDelete;
    MapCache.prototype.get = mapCacheGet;
    MapCache.prototype.has = mapCacheHas;
    MapCache.prototype.set = mapCacheSet;
    function Stack(entries3) {
      var data2 = this.__data__ = new ListCache(entries3);
      this.size = data2.size;
    }
    function stackClear() {
      this.__data__ = new ListCache();
      this.size = 0;
    }
    function stackDelete(key) {
      var data2 = this.__data__, result = data2["delete"](key);
      this.size = data2.size;
      return result;
    }
    function stackGet(key) {
      return this.__data__.get(key);
    }
    function stackHas(key) {
      return this.__data__.has(key);
    }
    function stackSet(key, value2) {
      var data2 = this.__data__;
      if (data2 instanceof ListCache) {
        var pairs2 = data2.__data__;
        if (!Map2 || pairs2.length < LARGE_ARRAY_SIZE - 1) {
          pairs2.push([key, value2]);
          this.size = ++data2.size;
          return this;
        }
        data2 = this.__data__ = new MapCache(pairs2);
      }
      data2.set(key, value2);
      this.size = data2.size;
      return this;
    }
    Stack.prototype.clear = stackClear;
    Stack.prototype["delete"] = stackDelete;
    Stack.prototype.get = stackGet;
    Stack.prototype.has = stackHas;
    Stack.prototype.set = stackSet;
    function arrayLikeKeys(value2, inherited) {
      var isArr = isArray3(value2), isArg = !isArr && isArguments(value2), isBuff = !isArr && !isArg && isBuffer4(value2), isType2 = !isArr && !isArg && !isBuff && isTypedArray3(value2), skipIndexes = isArr || isArg || isBuff || isType2, result = skipIndexes ? baseTimes(value2.length, String) : [], length2 = result.length;
      for (var key in value2) {
        if ((inherited || hasOwnProperty2.call(value2, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
        (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
        isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
        isType2 && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
        isIndex(key, length2)))) {
          result.push(key);
        }
      }
      return result;
    }
    function assignMergeValue(object, key, value2) {
      if (value2 !== void 0 && !eq(object[key], value2) || value2 === void 0 && !(key in object)) {
        baseAssignValue(object, key, value2);
      }
    }
    function assignValue(object, key, value2) {
      var objValue = object[key];
      if (!(hasOwnProperty2.call(object, key) && eq(objValue, value2)) || value2 === void 0 && !(key in object)) {
        baseAssignValue(object, key, value2);
      }
    }
    function assocIndexOf(array, key) {
      var length2 = array.length;
      while (length2--) {
        if (eq(array[length2][0], key)) {
          return length2;
        }
      }
      return -1;
    }
    function baseAssignValue(object, key, value2) {
      if (key == "__proto__" && defineProperty) {
        defineProperty(object, key, {
          "configurable": true,
          "enumerable": true,
          "value": value2,
          "writable": true
        });
      } else {
        object[key] = value2;
      }
    }
    var baseFor = createBaseFor();
    function baseGetTag(value2) {
      if (value2 == null) {
        return value2 === void 0 ? undefinedTag : nullTag;
      }
      return symToStringTag && symToStringTag in Object(value2) ? getRawTag(value2) : objectToString2(value2);
    }
    function baseIsArguments(value2) {
      return isObjectLike(value2) && baseGetTag(value2) == argsTag;
    }
    function baseIsNative(value2) {
      if (!isObject4(value2) || isMasked(value2)) {
        return false;
      }
      var pattern3 = isFunction5(value2) ? reIsNative : reIsHostCtor;
      return pattern3.test(toSource(value2));
    }
    function baseIsTypedArray(value2) {
      return isObjectLike(value2) && isLength(value2.length) && !!typedArrayTags[baseGetTag(value2)];
    }
    function baseKeysIn(object) {
      if (!isObject4(object)) {
        return nativeKeysIn(object);
      }
      var isProto = isPrototype(object), result = [];
      for (var key in object) {
        if (!(key == "constructor" && (isProto || !hasOwnProperty2.call(object, key)))) {
          result.push(key);
        }
      }
      return result;
    }
    function baseMerge(object, source, srcIndex, customizer, stack) {
      if (object === source) {
        return;
      }
      baseFor(source, function(srcValue, key) {
        stack || (stack = new Stack());
        if (isObject4(srcValue)) {
          baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
        } else {
          var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : void 0;
          if (newValue === void 0) {
            newValue = srcValue;
          }
          assignMergeValue(object, key, newValue);
        }
      }, keysIn);
    }
    function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
      var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);
      if (stacked) {
        assignMergeValue(object, key, stacked);
        return;
      }
      var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : void 0;
      var isCommon = newValue === void 0;
      if (isCommon) {
        var isArr = isArray3(srcValue), isBuff = !isArr && isBuffer4(srcValue), isTyped = !isArr && !isBuff && isTypedArray3(srcValue);
        newValue = srcValue;
        if (isArr || isBuff || isTyped) {
          if (isArray3(objValue)) {
            newValue = objValue;
          } else if (isArrayLikeObject(objValue)) {
            newValue = copyArray(objValue);
          } else if (isBuff) {
            isCommon = false;
            newValue = cloneBuffer(srcValue, true);
          } else if (isTyped) {
            isCommon = false;
            newValue = cloneTypedArray(srcValue, true);
          } else {
            newValue = [];
          }
        } else if (isPlainObject4(srcValue) || isArguments(srcValue)) {
          newValue = objValue;
          if (isArguments(objValue)) {
            newValue = toPlainObject(objValue);
          } else if (!isObject4(objValue) || isFunction5(objValue)) {
            newValue = initCloneObject(srcValue);
          }
        } else {
          isCommon = false;
        }
      }
      if (isCommon) {
        stack.set(srcValue, newValue);
        mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
        stack["delete"](srcValue);
      }
      assignMergeValue(object, key, newValue);
    }
    function baseRest(func, start2) {
      return setToString(overRest(func, start2, identity), func + "");
    }
    var baseSetToString = !defineProperty ? identity : function(func, string) {
      return defineProperty(func, "toString", {
        "configurable": true,
        "enumerable": false,
        "value": constant(string),
        "writable": true
      });
    };
    function cloneBuffer(buffer, isDeep) {
      if (isDeep) {
        return buffer.slice();
      }
      var length2 = buffer.length, result = allocUnsafe ? allocUnsafe(length2) : new buffer.constructor(length2);
      buffer.copy(result);
      return result;
    }
    function cloneArrayBuffer(arrayBuffer) {
      var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
      new Uint8Array2(result).set(new Uint8Array2(arrayBuffer));
      return result;
    }
    function cloneTypedArray(typedArray, isDeep) {
      var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
      return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
    }
    function copyArray(source, array) {
      var index2 = -1, length2 = source.length;
      array || (array = Array(length2));
      while (++index2 < length2) {
        array[index2] = source[index2];
      }
      return array;
    }
    function copyObject(source, props, object, customizer) {
      var isNew = !object;
      object || (object = {});
      var index2 = -1, length2 = props.length;
      while (++index2 < length2) {
        var key = props[index2];
        var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;
        if (newValue === void 0) {
          newValue = source[key];
        }
        if (isNew) {
          baseAssignValue(object, key, newValue);
        } else {
          assignValue(object, key, newValue);
        }
      }
      return object;
    }
    function createAssigner(assigner) {
      return baseRest(function(object, sources) {
        var index2 = -1, length2 = sources.length, customizer = length2 > 1 ? sources[length2 - 1] : void 0, guard = length2 > 2 ? sources[2] : void 0;
        customizer = assigner.length > 3 && typeof customizer == "function" ? (length2--, customizer) : void 0;
        if (guard && isIterateeCall(sources[0], sources[1], guard)) {
          customizer = length2 < 3 ? void 0 : customizer;
          length2 = 1;
        }
        object = Object(object);
        while (++index2 < length2) {
          var source = sources[index2];
          if (source) {
            assigner(object, source, index2, customizer);
          }
        }
        return object;
      });
    }
    function createBaseFor(fromRight) {
      return function(object, iteratee, keysFunc) {
        var index2 = -1, iterable = Object(object), props = keysFunc(object), length2 = props.length;
        while (length2--) {
          var key = props[fromRight ? length2 : ++index2];
          if (iteratee(iterable[key], key, iterable) === false) {
            break;
          }
        }
        return object;
      };
    }
    function getMapData(map, key) {
      var data2 = map.__data__;
      return isKeyable(key) ? data2[typeof key == "string" ? "string" : "hash"] : data2.map;
    }
    function getNative(object, key) {
      var value2 = getValue(object, key);
      return baseIsNative(value2) ? value2 : void 0;
    }
    function getRawTag(value2) {
      var isOwn = hasOwnProperty2.call(value2, symToStringTag), tag = value2[symToStringTag];
      try {
        value2[symToStringTag] = void 0;
        var unmasked = true;
      } catch (e4) {
      }
      var result = nativeObjectToString.call(value2);
      if (unmasked) {
        if (isOwn) {
          value2[symToStringTag] = tag;
        } else {
          delete value2[symToStringTag];
        }
      }
      return result;
    }
    function initCloneObject(object) {
      return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
    }
    function isIndex(value2, length2) {
      var type = typeof value2;
      length2 = length2 == null ? MAX_SAFE_INTEGER : length2;
      return !!length2 && (type == "number" || type != "symbol" && reIsUint.test(value2)) && (value2 > -1 && value2 % 1 == 0 && value2 < length2);
    }
    function isIterateeCall(value2, index2, object) {
      if (!isObject4(object)) {
        return false;
      }
      var type = typeof index2;
      if (type == "number" ? isArrayLike2(object) && isIndex(index2, object.length) : type == "string" && index2 in object) {
        return eq(object[index2], value2);
      }
      return false;
    }
    function isKeyable(value2) {
      var type = typeof value2;
      return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value2 !== "__proto__" : value2 === null;
    }
    function isMasked(func) {
      return !!maskSrcKey && maskSrcKey in func;
    }
    function isPrototype(value2) {
      var Ctor = value2 && value2.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto;
      return value2 === proto;
    }
    function nativeKeysIn(object) {
      var result = [];
      if (object != null) {
        for (var key in Object(object)) {
          result.push(key);
        }
      }
      return result;
    }
    function objectToString2(value2) {
      return nativeObjectToString.call(value2);
    }
    function overRest(func, start2, transform) {
      start2 = nativeMax(start2 === void 0 ? func.length - 1 : start2, 0);
      return function() {
        var args = arguments, index2 = -1, length2 = nativeMax(args.length - start2, 0), array = Array(length2);
        while (++index2 < length2) {
          array[index2] = args[start2 + index2];
        }
        index2 = -1;
        var otherArgs = Array(start2 + 1);
        while (++index2 < start2) {
          otherArgs[index2] = args[index2];
        }
        otherArgs[start2] = transform(array);
        return apply2(func, this, otherArgs);
      };
    }
    function safeGet(object, key) {
      if (key === "constructor" && typeof object[key] === "function") {
        return;
      }
      if (key == "__proto__") {
        return;
      }
      return object[key];
    }
    var setToString = shortOut(baseSetToString);
    function shortOut(func) {
      var count = 0, lastCalled = 0;
      return function() {
        var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
        lastCalled = stamp;
        if (remaining > 0) {
          if (++count >= HOT_COUNT) {
            return arguments[0];
          }
        } else {
          count = 0;
        }
        return func.apply(void 0, arguments);
      };
    }
    function toSource(func) {
      if (func != null) {
        try {
          return funcToString.call(func);
        } catch (e4) {
        }
        try {
          return func + "";
        } catch (e4) {
        }
      }
      return "";
    }
    function eq(value2, other) {
      return value2 === other || value2 !== value2 && other !== other;
    }
    var isArguments = baseIsArguments(/* @__PURE__ */ (function() {
      return arguments;
    })()) ? baseIsArguments : function(value2) {
      return isObjectLike(value2) && hasOwnProperty2.call(value2, "callee") && !propertyIsEnumerable.call(value2, "callee");
    };
    var isArray3 = Array.isArray;
    function isArrayLike2(value2) {
      return value2 != null && isLength(value2.length) && !isFunction5(value2);
    }
    function isArrayLikeObject(value2) {
      return isObjectLike(value2) && isArrayLike2(value2);
    }
    var isBuffer4 = nativeIsBuffer || stubFalse;
    function isFunction5(value2) {
      if (!isObject4(value2)) {
        return false;
      }
      var tag = baseGetTag(value2);
      return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
    }
    function isLength(value2) {
      return typeof value2 == "number" && value2 > -1 && value2 % 1 == 0 && value2 <= MAX_SAFE_INTEGER;
    }
    function isObject4(value2) {
      var type = typeof value2;
      return value2 != null && (type == "object" || type == "function");
    }
    function isObjectLike(value2) {
      return value2 != null && typeof value2 == "object";
    }
    function isPlainObject4(value2) {
      if (!isObjectLike(value2) || baseGetTag(value2) != objectTag) {
        return false;
      }
      var proto = getPrototype(value2);
      if (proto === null) {
        return true;
      }
      var Ctor = hasOwnProperty2.call(proto, "constructor") && proto.constructor;
      return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
    }
    var isTypedArray3 = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
    function toPlainObject(value2) {
      return copyObject(value2, keysIn(value2));
    }
    function keysIn(object) {
      return isArrayLike2(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
    }
    var merge3 = createAssigner(function(object, source, srcIndex) {
      baseMerge(object, source, srcIndex);
    });
    function constant(value2) {
      return function() {
        return value2;
      };
    }
    function identity(value2) {
      return value2;
    }
    function stubFalse() {
      return false;
    }
    module.exports = merge3;
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/launch-context.js
var require_launch_context = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/launch-context.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.LaunchContext = void 0;
    var LaunchContext2 = class {
      constructor(options) {
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "browserPlugin", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "launchOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "useIncognitoPages", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "browserPerProxy", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "experimentalContainers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "userDataDir", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "proxyTier", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_proxyUrl", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_reservedFieldNames", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: [...Reflect.ownKeys(this), "extend"]
        });
        Object.defineProperty(this, "fingerprint", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        const { id, browserPlugin, launchOptions, proxyUrl, useIncognitoPages, browserPerProxy, experimentalContainers, userDataDir = "", proxyTier } = options;
        this.id = id;
        this.browserPlugin = browserPlugin;
        this.launchOptions = launchOptions;
        this.browserPerProxy = browserPerProxy ?? false;
        this.useIncognitoPages = useIncognitoPages ?? false;
        this.experimentalContainers = experimentalContainers ?? false;
        this.userDataDir = userDataDir;
        this.proxyTier = proxyTier;
        this._proxyUrl = proxyUrl;
      }
      /**
       * Extend the launch context with any extra fields.
       * This is useful to keep state information relevant
       * to the browser being launched. It ensures that
       * no internal fields are overridden and should be
       * used instead of property assignment.
       */
      extend(fields) {
        Object.entries(fields).forEach(([key, value2]) => {
          if (this._reservedFieldNames.includes(key)) {
            throw new Error(`Cannot extend LaunchContext with key: ${key}, because it's reserved.`);
          } else {
            Reflect.set(this, key, value2);
          }
        });
      }
      /**
       * Sets a proxy URL for the browser.
       * Use `undefined` to unset existing proxy URL.
       */
      set proxyUrl(url3) {
        if (!url3) {
          return;
        }
        const urlInstance = new URL(url3);
        urlInstance.pathname = "/";
        urlInstance.search = "";
        urlInstance.hash = "";
        this._proxyUrl = urlInstance.href.slice(0, -1);
      }
      /**
       * Returns the proxy URL of the browser.
       */
      get proxyUrl() {
        return this._proxyUrl;
      }
    };
    exports.LaunchContext = LaunchContext2;
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/abstract-classes/browser-plugin.js
var require_browser_plugin = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/abstract-classes/browser-plugin.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BrowserLaunchError = exports.BrowserPlugin = exports.DEFAULT_USER_AGENT = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var core_1 = require_core();
    var lodash_merge_1 = tslib_1.__importDefault(require_lodash2());
    var launch_context_1 = require_launch_context();
    exports.DEFAULT_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36";
    var BrowserPlugin2 = class {
      constructor(library, options = {}) {
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: this.constructor.name
        });
        Object.defineProperty(this, "library", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "launchOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "proxyUrl", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "userDataDir", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "useIncognitoPages", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "experimentalContainers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "browserPerProxy", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        const { launchOptions = {}, proxyUrl, userDataDir, useIncognitoPages = false, experimentalContainers = false, browserPerProxy = false } = options;
        this.library = library;
        this.launchOptions = launchOptions;
        this.proxyUrl = proxyUrl && new URL(proxyUrl).href.slice(0, -1);
        this.userDataDir = userDataDir;
        this.useIncognitoPages = useIncognitoPages;
        this.experimentalContainers = experimentalContainers;
        this.browserPerProxy = browserPerProxy;
      }
      /**
       * Creates a `LaunchContext` with all the information needed
       * to launch a browser. Aside from library specific launch options,
       * it also includes internal properties used by `BrowserPool` for
       * management of the pool and extra features.
       */
      createLaunchContext(options = {}) {
        const { id, launchOptions = {}, proxyUrl = this.proxyUrl, useIncognitoPages = this.useIncognitoPages, userDataDir = this.userDataDir, experimentalContainers = this.experimentalContainers, browserPerProxy = this.browserPerProxy, proxyTier } = options;
        return new launch_context_1.LaunchContext({
          id,
          launchOptions: (0, lodash_merge_1.default)({}, this.launchOptions, launchOptions),
          browserPlugin: this,
          proxyUrl,
          useIncognitoPages,
          experimentalContainers,
          userDataDir,
          browserPerProxy,
          proxyTier
        });
      }
      createController() {
        return this._createController();
      }
      /**
       * Launches the browser using provided launch context.
       */
      async launch(launchContext = this.createLaunchContext()) {
        launchContext.launchOptions ?? (launchContext.launchOptions = {});
        const { proxyUrl, launchOptions } = launchContext;
        if (proxyUrl) {
          await this._addProxyToLaunchOptions(launchContext);
        }
        if (this._isChromiumBasedBrowser(launchContext)) {
          launchOptions.args = this._mergeArgsToHideWebdriver(launchOptions.args);
          const userAgent = launchOptions.args.find((arg) => arg.startsWith("--user-agent"));
          if (launchOptions.headless && !launchContext.fingerprint && !userAgent) {
            launchOptions.args.push(`--user-agent=${exports.DEFAULT_USER_AGENT}`);
          }
        }
        return this._launch(launchContext);
      }
      _mergeArgsToHideWebdriver(originalArgs) {
        if (!originalArgs?.length) {
          return ["--disable-blink-features=AutomationControlled"];
        }
        const argumentIndex = originalArgs.findIndex((arg) => arg.startsWith("--disable-blink-features="));
        if (argumentIndex !== -1) {
          originalArgs[argumentIndex] += ",AutomationControlled";
        } else {
          originalArgs.push("--disable-blink-features=AutomationControlled");
        }
        return originalArgs;
      }
      _throwAugmentedLaunchError(cause, executablePath, dockerImage, moduleInstallCommand) {
        const errorMessage = ["Failed to launch browser. Please check the following:"];
        if (executablePath) {
          errorMessage.push(`- Check whether the provided executable path "${executablePath}" is correct.`);
        }
        if (process.env.APIFY_IS_AT_HOME) {
          errorMessage.push(`- Make sure your Dockerfile extends ${dockerImage}.`);
        }
        errorMessage.push(`- ${moduleInstallCommand}`);
        errorMessage.push("", "The original error is available in the `cause` property. Below is the error received when trying to launch a browser:", "");
        throw new BrowserLaunchError2(`${errorMessage.join("\n")}\u200B`, { cause });
      }
    };
    exports.BrowserPlugin = BrowserPlugin2;
    var BrowserLaunchError2 = class extends core_1.CriticalError {
      constructor(...args) {
        super(...args);
        this.name = "BrowserLaunchError";
        const [, oldStack] = this.stack?.split("\u200B") ?? [null, ""];
        Object.defineProperty(this, "stack", {
          get: () => {
            if (this.cause instanceof Error) {
              return `${this.message}
${this.cause.stack}
Error thrown at:
${oldStack}`;
            }
            return `${this.message}
${oldStack}`;
          }
        });
      }
    };
    exports.BrowserLaunchError = BrowserLaunchError2;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/request_error.js
var require_request_error = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/request_error.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RequestError = void 0;
    var RequestError3 = class _RequestError extends Error {
      constructor(message, statusCode, headers) {
        super(message);
        Object.defineProperty(this, "statusCode", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: statusCode
        });
        Object.defineProperty(this, "headers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: headers
        });
        this.name = _RequestError.name;
        Error.captureStackTrace(this, _RequestError);
      }
    };
    exports.RequestError = RequestError3;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/statuses.js
var require_statuses2 = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/statuses.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.socksErrorMessageToStatusCode = exports.errorCodeToStatusCode = exports.createCustomStatusHttpResponse = exports.badGatewayStatusCodes = void 0;
    var node_http_1 = __require("node:http");
    exports.badGatewayStatusCodes = {
      /**
       * Upstream has timed out.
       */
      TIMEOUT: 504,
      /**
       * Upstream responded with non-200 status code.
       */
      NON_200: 590,
      /**
       * Upstream respondend with status code different than 100-999.
       */
      STATUS_CODE_OUT_OF_RANGE: 592,
      /**
       * DNS lookup failed - EAI_NODATA or EAI_NONAME.
       */
      NOT_FOUND: 593,
      /**
       * Upstream refused connection.
       */
      CONNECTION_REFUSED: 594,
      /**
       * Connection reset due to loss of connection or timeout.
       */
      CONNECTION_RESET: 595,
      /**
       * Trying to write on a closed socket.
       */
      BROKEN_PIPE: 596,
      /**
       * Incorrect upstream credentials.
       */
      AUTH_FAILED: 597,
      /**
       * Generic upstream error.
       */
      GENERIC_ERROR: 599
    };
    node_http_1.STATUS_CODES["590"] = "Non Successful";
    node_http_1.STATUS_CODES["592"] = "Status Code Out Of Range";
    node_http_1.STATUS_CODES["593"] = "Not Found";
    node_http_1.STATUS_CODES["594"] = "Connection Refused";
    node_http_1.STATUS_CODES["595"] = "Connection Reset";
    node_http_1.STATUS_CODES["596"] = "Broken Pipe";
    node_http_1.STATUS_CODES["597"] = "Auth Failed";
    node_http_1.STATUS_CODES["599"] = "Upstream Error";
    var createCustomStatusHttpResponse = (statusCode, statusMessage, message = "") => {
      return [
        `HTTP/1.1 ${statusCode} ${statusMessage || node_http_1.STATUS_CODES[statusCode] || "Unknown Status Code"}`,
        "Connection: close",
        `Date: ${(/* @__PURE__ */ new Date()).toUTCString()}`,
        `Content-Length: ${Buffer.byteLength(message)}`,
        ``,
        message
      ].join("\r\n");
    };
    exports.createCustomStatusHttpResponse = createCustomStatusHttpResponse;
    exports.errorCodeToStatusCode = {
      ENOTFOUND: exports.badGatewayStatusCodes.NOT_FOUND,
      ECONNREFUSED: exports.badGatewayStatusCodes.CONNECTION_REFUSED,
      ECONNRESET: exports.badGatewayStatusCodes.CONNECTION_RESET,
      EPIPE: exports.badGatewayStatusCodes.BROKEN_PIPE,
      ETIMEDOUT: exports.badGatewayStatusCodes.TIMEOUT
    };
    var socksErrorMessageToStatusCode = (socksErrorMessage) => {
      switch (socksErrorMessage) {
        case "Proxy connection timed out":
          return exports.badGatewayStatusCodes.TIMEOUT;
        case "Socks5 Authentication failed":
          return exports.badGatewayStatusCodes.AUTH_FAILED;
        default:
          return exports.badGatewayStatusCodes.GENERIC_ERROR;
      }
    };
    exports.socksErrorMessageToStatusCode = socksErrorMessageToStatusCode;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/count_target_bytes.js
var require_count_target_bytes = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/count_target_bytes.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getTargetStats = exports.countTargetBytes = void 0;
    var targetBytesWritten = Symbol("targetBytesWritten");
    var targetBytesRead = Symbol("targetBytesRead");
    var targets = Symbol("targets");
    var calculateTargetStats = Symbol("calculateTargetStats");
    function typeSocket(source) {
    }
    var countTargetBytes = (source, target, registerCloseHandler) => {
      typeSocket(source);
      source[targetBytesWritten] = source[targetBytesWritten] || 0;
      source[targetBytesRead] = source[targetBytesRead] || 0;
      source[targets] = source[targets] || /* @__PURE__ */ new Set();
      source[targets].add(target);
      const closeHandler = () => {
        source[targetBytesWritten] += target.bytesWritten - (target.previousBytesWritten || 0);
        source[targetBytesRead] += target.bytesRead - (target.previousBytesRead || 0);
        source[targets].delete(target);
      };
      if (!registerCloseHandler) {
        registerCloseHandler = (handler) => target.once("close", handler);
      }
      registerCloseHandler(closeHandler);
      if (!source[calculateTargetStats]) {
        source[calculateTargetStats] = () => {
          let bytesWritten = source[targetBytesWritten];
          let bytesRead = source[targetBytesRead];
          for (const socket of source[targets]) {
            bytesWritten += socket.bytesWritten - (socket.previousBytesWritten || 0);
            bytesRead += socket.bytesRead - (socket.previousBytesRead || 0);
          }
          return {
            bytesWritten,
            bytesRead
          };
        };
      }
    };
    exports.countTargetBytes = countTargetBytes;
    var getTargetStats = (socket) => {
      typeSocket(socket);
      if (socket[calculateTargetStats]) {
        return socket[calculateTargetStats]();
      }
      return {
        bytesWritten: null,
        bytesRead: null
      };
    };
    exports.getTargetStats = getTargetStats;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/decode_uri_component_safe.js
var require_decode_uri_component_safe = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/decode_uri_component_safe.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.decodeURIComponentSafe = void 0;
    var decodeURIComponentSafe = (encodedURIComponent) => {
      try {
        return decodeURIComponent(encodedURIComponent);
      } catch {
        return encodedURIComponent;
      }
    };
    exports.decodeURIComponentSafe = decodeURIComponentSafe;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/get_basic.js
var require_get_basic = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/get_basic.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getBasicAuthorizationHeader = void 0;
    var decode_uri_component_safe_1 = require_decode_uri_component_safe();
    var getBasicAuthorizationHeader = (url3) => {
      const username = (0, decode_uri_component_safe_1.decodeURIComponentSafe)(url3.username);
      const password = (0, decode_uri_component_safe_1.decodeURIComponentSafe)(url3.password);
      const auth = `${username}:${password}`;
      if (username.includes(":")) {
        throw new Error("Username contains an invalid colon");
      }
      return `Basic ${Buffer.from(auth).toString("base64")}`;
    };
    exports.getBasicAuthorizationHeader = getBasicAuthorizationHeader;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/chain.js
var require_chain = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/chain.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.chain = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_http_1 = tslib_1.__importDefault(__require("node:http"));
    var node_https_1 = tslib_1.__importDefault(__require("node:https"));
    var statuses_1 = require_statuses2();
    var count_target_bytes_1 = require_count_target_bytes();
    var get_basic_1 = require_get_basic();
    var chain = ({ request, sourceSocket, head, handlerOpts, server, isPlain }) => {
      if (head && head.length > 0) {
        sourceSocket.unshift(head);
      }
      const { proxyChainId } = sourceSocket;
      const { upstreamProxyUrlParsed: proxy, customTag } = handlerOpts;
      const options = {
        method: "CONNECT",
        path: request.url,
        headers: {
          host: request.url
        },
        localAddress: handlerOpts.localAddress,
        family: handlerOpts.ipFamily,
        lookup: handlerOpts.dnsLookup
      };
      if (proxy.username || proxy.password) {
        options.headers["proxy-authorization"] = (0, get_basic_1.getBasicAuthorizationHeader)(proxy);
      }
      const client = proxy.protocol === "https:" ? node_https_1.default.request(proxy.origin, {
        ...options,
        rejectUnauthorized: !handlerOpts.ignoreUpstreamProxyCertificate,
        agent: handlerOpts.httpsAgent
      }) : node_http_1.default.request(proxy.origin, {
        ...options,
        agent: handlerOpts.httpAgent
      });
      client.once("socket", (targetSocket) => {
        targetSocket.previousBytesRead = targetSocket.bytesRead;
        targetSocket.previousBytesWritten = targetSocket.bytesWritten;
        (0, count_target_bytes_1.countTargetBytes)(sourceSocket, targetSocket);
      });
      client.on("connect", (response, targetSocket, clientHead) => {
        if (sourceSocket.readyState !== "open") {
          targetSocket.destroy();
          return;
        }
        targetSocket.on("error", (error) => {
          server.log(proxyChainId, `Chain Destination Socket Error: ${error.stack}`);
          sourceSocket.destroy();
        });
        sourceSocket.on("error", (error) => {
          server.log(proxyChainId, `Chain Source Socket Error: ${error.stack}`);
          targetSocket.destroy();
        });
        if (response.statusCode !== 200) {
          server.log(proxyChainId, `Failed to authenticate upstream proxy: ${response.statusCode}`);
          if (isPlain) {
            sourceSocket.end();
          } else {
            const { statusCode } = response;
            const status = statusCode === 401 || statusCode === 407 ? statuses_1.badGatewayStatusCodes.AUTH_FAILED : statuses_1.badGatewayStatusCodes.NON_200;
            sourceSocket.end((0, statuses_1.createCustomStatusHttpResponse)(status, `UPSTREAM${statusCode}`));
          }
          targetSocket.end();
          server.emit("tunnelConnectFailed", {
            proxyChainId,
            response,
            customTag,
            socket: targetSocket,
            head: clientHead
          });
          return;
        }
        if (clientHead.length > 0) {
          targetSocket.unshift(clientHead);
        }
        server.emit("tunnelConnectResponded", {
          proxyChainId,
          response,
          customTag,
          socket: targetSocket,
          head: clientHead
        });
        sourceSocket.write(isPlain ? "" : `HTTP/1.1 200 Connection Established\r
\r
`);
        sourceSocket.pipe(targetSocket);
        targetSocket.pipe(sourceSocket);
        targetSocket.on("close", () => {
          sourceSocket.resume();
          if (sourceSocket.writable) {
            sourceSocket.end();
          }
        });
        sourceSocket.on("close", () => {
          targetSocket.resume();
          if (targetSocket.writable) {
            targetSocket.end();
          }
        });
      });
      client.on("error", (error) => {
        var _a2, _b2;
        server.log(proxyChainId, `Failed to connect to upstream proxy: ${error.stack}`);
        if (sourceSocket.readyState === "open") {
          if (isPlain) {
            sourceSocket.end();
          } else {
            const statusCode = (_a2 = statuses_1.errorCodeToStatusCode[error.code]) !== null && _a2 !== void 0 ? _a2 : statuses_1.badGatewayStatusCodes.GENERIC_ERROR;
            const response = (0, statuses_1.createCustomStatusHttpResponse)(statusCode, (_b2 = error.code) !== null && _b2 !== void 0 ? _b2 : "Upstream Closed Early");
            sourceSocket.end(response);
          }
        }
      });
      sourceSocket.on("error", () => {
        client.destroy();
      });
      sourceSocket.on("close", () => {
        client.destroy();
      });
      client.end();
    };
    exports.chain = chain;
  }
});

// ../../node_modules/.pnpm/smart-buffer@4.2.0/node_modules/smart-buffer/build/utils.js
var require_utils11 = __commonJS({
  "../../node_modules/.pnpm/smart-buffer@4.2.0/node_modules/smart-buffer/build/utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var buffer_1 = __require("buffer");
    var ERRORS = {
      INVALID_ENCODING: "Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.",
      INVALID_SMARTBUFFER_SIZE: "Invalid size provided. Size must be a valid integer greater than zero.",
      INVALID_SMARTBUFFER_BUFFER: "Invalid Buffer provided in SmartBufferOptions.",
      INVALID_SMARTBUFFER_OBJECT: "Invalid SmartBufferOptions object supplied to SmartBuffer constructor or factory methods.",
      INVALID_OFFSET: "An invalid offset value was provided.",
      INVALID_OFFSET_NON_NUMBER: "An invalid offset value was provided. A numeric value is required.",
      INVALID_LENGTH: "An invalid length value was provided.",
      INVALID_LENGTH_NON_NUMBER: "An invalid length value was provived. A numeric value is required.",
      INVALID_TARGET_OFFSET: "Target offset is beyond the bounds of the internal SmartBuffer data.",
      INVALID_TARGET_LENGTH: "Specified length value moves cursor beyong the bounds of the internal SmartBuffer data.",
      INVALID_READ_BEYOND_BOUNDS: "Attempted to read beyond the bounds of the managed data.",
      INVALID_WRITE_BEYOND_BOUNDS: "Attempted to write beyond the bounds of the managed data."
    };
    exports.ERRORS = ERRORS;
    function checkEncoding(encoding) {
      if (!buffer_1.Buffer.isEncoding(encoding)) {
        throw new Error(ERRORS.INVALID_ENCODING);
      }
    }
    exports.checkEncoding = checkEncoding;
    function isFiniteInteger(value2) {
      return typeof value2 === "number" && isFinite(value2) && isInteger2(value2);
    }
    exports.isFiniteInteger = isFiniteInteger;
    function checkOffsetOrLengthValue(value2, offset2) {
      if (typeof value2 === "number") {
        if (!isFiniteInteger(value2) || value2 < 0) {
          throw new Error(offset2 ? ERRORS.INVALID_OFFSET : ERRORS.INVALID_LENGTH);
        }
      } else {
        throw new Error(offset2 ? ERRORS.INVALID_OFFSET_NON_NUMBER : ERRORS.INVALID_LENGTH_NON_NUMBER);
      }
    }
    function checkLengthValue(length2) {
      checkOffsetOrLengthValue(length2, false);
    }
    exports.checkLengthValue = checkLengthValue;
    function checkOffsetValue(offset2) {
      checkOffsetOrLengthValue(offset2, true);
    }
    exports.checkOffsetValue = checkOffsetValue;
    function checkTargetOffset(offset2, buff) {
      if (offset2 < 0 || offset2 > buff.length) {
        throw new Error(ERRORS.INVALID_TARGET_OFFSET);
      }
    }
    exports.checkTargetOffset = checkTargetOffset;
    function isInteger2(value2) {
      return typeof value2 === "number" && isFinite(value2) && Math.floor(value2) === value2;
    }
    function bigIntAndBufferInt64Check(bufferMethod) {
      if (typeof BigInt === "undefined") {
        throw new Error("Platform does not support JS BigInt type.");
      }
      if (typeof buffer_1.Buffer.prototype[bufferMethod] === "undefined") {
        throw new Error(`Platform does not support Buffer.prototype.${bufferMethod}.`);
      }
    }
    exports.bigIntAndBufferInt64Check = bigIntAndBufferInt64Check;
  }
});

// ../../node_modules/.pnpm/smart-buffer@4.2.0/node_modules/smart-buffer/build/smartbuffer.js
var require_smartbuffer = __commonJS({
  "../../node_modules/.pnpm/smart-buffer@4.2.0/node_modules/smart-buffer/build/smartbuffer.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var utils_1 = require_utils11();
    var DEFAULT_SMARTBUFFER_SIZE = 4096;
    var DEFAULT_SMARTBUFFER_ENCODING = "utf8";
    var SmartBuffer = class _SmartBuffer {
      /**
       * Creates a new SmartBuffer instance.
       *
       * @param options { SmartBufferOptions } The SmartBufferOptions to apply to this instance.
       */
      constructor(options) {
        this.length = 0;
        this._encoding = DEFAULT_SMARTBUFFER_ENCODING;
        this._writeOffset = 0;
        this._readOffset = 0;
        if (_SmartBuffer.isSmartBufferOptions(options)) {
          if (options.encoding) {
            utils_1.checkEncoding(options.encoding);
            this._encoding = options.encoding;
          }
          if (options.size) {
            if (utils_1.isFiniteInteger(options.size) && options.size > 0) {
              this._buff = Buffer.allocUnsafe(options.size);
            } else {
              throw new Error(utils_1.ERRORS.INVALID_SMARTBUFFER_SIZE);
            }
          } else if (options.buff) {
            if (Buffer.isBuffer(options.buff)) {
              this._buff = options.buff;
              this.length = options.buff.length;
            } else {
              throw new Error(utils_1.ERRORS.INVALID_SMARTBUFFER_BUFFER);
            }
          } else {
            this._buff = Buffer.allocUnsafe(DEFAULT_SMARTBUFFER_SIZE);
          }
        } else {
          if (typeof options !== "undefined") {
            throw new Error(utils_1.ERRORS.INVALID_SMARTBUFFER_OBJECT);
          }
          this._buff = Buffer.allocUnsafe(DEFAULT_SMARTBUFFER_SIZE);
        }
      }
      /**
       * Creates a new SmartBuffer instance with the provided internal Buffer size and optional encoding.
       *
       * @param size { Number } The size of the internal Buffer.
       * @param encoding { String } The BufferEncoding to use for strings.
       *
       * @return { SmartBuffer }
       */
      static fromSize(size, encoding) {
        return new this({
          size,
          encoding
        });
      }
      /**
       * Creates a new SmartBuffer instance with the provided Buffer and optional encoding.
       *
       * @param buffer { Buffer } The Buffer to use as the internal Buffer value.
       * @param encoding { String } The BufferEncoding to use for strings.
       *
       * @return { SmartBuffer }
       */
      static fromBuffer(buff, encoding) {
        return new this({
          buff,
          encoding
        });
      }
      /**
       * Creates a new SmartBuffer instance with the provided SmartBufferOptions options.
       *
       * @param options { SmartBufferOptions } The options to use when creating the SmartBuffer instance.
       */
      static fromOptions(options) {
        return new this(options);
      }
      /**
       * Type checking function that determines if an object is a SmartBufferOptions object.
       */
      static isSmartBufferOptions(options) {
        const castOptions = options;
        return castOptions && (castOptions.encoding !== void 0 || castOptions.size !== void 0 || castOptions.buff !== void 0);
      }
      // Signed integers
      /**
       * Reads an Int8 value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readInt8(offset2) {
        return this._readNumberValue(Buffer.prototype.readInt8, 1, offset2);
      }
      /**
       * Reads an Int16BE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readInt16BE(offset2) {
        return this._readNumberValue(Buffer.prototype.readInt16BE, 2, offset2);
      }
      /**
       * Reads an Int16LE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readInt16LE(offset2) {
        return this._readNumberValue(Buffer.prototype.readInt16LE, 2, offset2);
      }
      /**
       * Reads an Int32BE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readInt32BE(offset2) {
        return this._readNumberValue(Buffer.prototype.readInt32BE, 4, offset2);
      }
      /**
       * Reads an Int32LE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readInt32LE(offset2) {
        return this._readNumberValue(Buffer.prototype.readInt32LE, 4, offset2);
      }
      /**
       * Reads a BigInt64BE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { BigInt }
       */
      readBigInt64BE(offset2) {
        utils_1.bigIntAndBufferInt64Check("readBigInt64BE");
        return this._readNumberValue(Buffer.prototype.readBigInt64BE, 8, offset2);
      }
      /**
       * Reads a BigInt64LE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { BigInt }
       */
      readBigInt64LE(offset2) {
        utils_1.bigIntAndBufferInt64Check("readBigInt64LE");
        return this._readNumberValue(Buffer.prototype.readBigInt64LE, 8, offset2);
      }
      /**
       * Writes an Int8 value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeInt8(value2, offset2) {
        this._writeNumberValue(Buffer.prototype.writeInt8, 1, value2, offset2);
        return this;
      }
      /**
       * Inserts an Int8 value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertInt8(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeInt8, 1, value2, offset2);
      }
      /**
       * Writes an Int16BE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeInt16BE(value2, offset2) {
        return this._writeNumberValue(Buffer.prototype.writeInt16BE, 2, value2, offset2);
      }
      /**
       * Inserts an Int16BE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertInt16BE(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeInt16BE, 2, value2, offset2);
      }
      /**
       * Writes an Int16LE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeInt16LE(value2, offset2) {
        return this._writeNumberValue(Buffer.prototype.writeInt16LE, 2, value2, offset2);
      }
      /**
       * Inserts an Int16LE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertInt16LE(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeInt16LE, 2, value2, offset2);
      }
      /**
       * Writes an Int32BE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeInt32BE(value2, offset2) {
        return this._writeNumberValue(Buffer.prototype.writeInt32BE, 4, value2, offset2);
      }
      /**
       * Inserts an Int32BE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertInt32BE(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeInt32BE, 4, value2, offset2);
      }
      /**
       * Writes an Int32LE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeInt32LE(value2, offset2) {
        return this._writeNumberValue(Buffer.prototype.writeInt32LE, 4, value2, offset2);
      }
      /**
       * Inserts an Int32LE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertInt32LE(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeInt32LE, 4, value2, offset2);
      }
      /**
       * Writes a BigInt64BE value to the current write position (or at optional offset).
       *
       * @param value { BigInt } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeBigInt64BE(value2, offset2) {
        utils_1.bigIntAndBufferInt64Check("writeBigInt64BE");
        return this._writeNumberValue(Buffer.prototype.writeBigInt64BE, 8, value2, offset2);
      }
      /**
       * Inserts a BigInt64BE value at the given offset value.
       *
       * @param value { BigInt } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertBigInt64BE(value2, offset2) {
        utils_1.bigIntAndBufferInt64Check("writeBigInt64BE");
        return this._insertNumberValue(Buffer.prototype.writeBigInt64BE, 8, value2, offset2);
      }
      /**
       * Writes a BigInt64LE value to the current write position (or at optional offset).
       *
       * @param value { BigInt } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeBigInt64LE(value2, offset2) {
        utils_1.bigIntAndBufferInt64Check("writeBigInt64LE");
        return this._writeNumberValue(Buffer.prototype.writeBigInt64LE, 8, value2, offset2);
      }
      /**
       * Inserts a Int64LE value at the given offset value.
       *
       * @param value { BigInt } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertBigInt64LE(value2, offset2) {
        utils_1.bigIntAndBufferInt64Check("writeBigInt64LE");
        return this._insertNumberValue(Buffer.prototype.writeBigInt64LE, 8, value2, offset2);
      }
      // Unsigned Integers
      /**
       * Reads an UInt8 value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readUInt8(offset2) {
        return this._readNumberValue(Buffer.prototype.readUInt8, 1, offset2);
      }
      /**
       * Reads an UInt16BE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readUInt16BE(offset2) {
        return this._readNumberValue(Buffer.prototype.readUInt16BE, 2, offset2);
      }
      /**
       * Reads an UInt16LE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readUInt16LE(offset2) {
        return this._readNumberValue(Buffer.prototype.readUInt16LE, 2, offset2);
      }
      /**
       * Reads an UInt32BE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readUInt32BE(offset2) {
        return this._readNumberValue(Buffer.prototype.readUInt32BE, 4, offset2);
      }
      /**
       * Reads an UInt32LE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readUInt32LE(offset2) {
        return this._readNumberValue(Buffer.prototype.readUInt32LE, 4, offset2);
      }
      /**
       * Reads a BigUInt64BE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { BigInt }
       */
      readBigUInt64BE(offset2) {
        utils_1.bigIntAndBufferInt64Check("readBigUInt64BE");
        return this._readNumberValue(Buffer.prototype.readBigUInt64BE, 8, offset2);
      }
      /**
       * Reads a BigUInt64LE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { BigInt }
       */
      readBigUInt64LE(offset2) {
        utils_1.bigIntAndBufferInt64Check("readBigUInt64LE");
        return this._readNumberValue(Buffer.prototype.readBigUInt64LE, 8, offset2);
      }
      /**
       * Writes an UInt8 value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeUInt8(value2, offset2) {
        return this._writeNumberValue(Buffer.prototype.writeUInt8, 1, value2, offset2);
      }
      /**
       * Inserts an UInt8 value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertUInt8(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeUInt8, 1, value2, offset2);
      }
      /**
       * Writes an UInt16BE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeUInt16BE(value2, offset2) {
        return this._writeNumberValue(Buffer.prototype.writeUInt16BE, 2, value2, offset2);
      }
      /**
       * Inserts an UInt16BE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertUInt16BE(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeUInt16BE, 2, value2, offset2);
      }
      /**
       * Writes an UInt16LE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeUInt16LE(value2, offset2) {
        return this._writeNumberValue(Buffer.prototype.writeUInt16LE, 2, value2, offset2);
      }
      /**
       * Inserts an UInt16LE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertUInt16LE(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeUInt16LE, 2, value2, offset2);
      }
      /**
       * Writes an UInt32BE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeUInt32BE(value2, offset2) {
        return this._writeNumberValue(Buffer.prototype.writeUInt32BE, 4, value2, offset2);
      }
      /**
       * Inserts an UInt32BE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertUInt32BE(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeUInt32BE, 4, value2, offset2);
      }
      /**
       * Writes an UInt32LE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeUInt32LE(value2, offset2) {
        return this._writeNumberValue(Buffer.prototype.writeUInt32LE, 4, value2, offset2);
      }
      /**
       * Inserts an UInt32LE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertUInt32LE(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeUInt32LE, 4, value2, offset2);
      }
      /**
       * Writes a BigUInt64BE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeBigUInt64BE(value2, offset2) {
        utils_1.bigIntAndBufferInt64Check("writeBigUInt64BE");
        return this._writeNumberValue(Buffer.prototype.writeBigUInt64BE, 8, value2, offset2);
      }
      /**
       * Inserts a BigUInt64BE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertBigUInt64BE(value2, offset2) {
        utils_1.bigIntAndBufferInt64Check("writeBigUInt64BE");
        return this._insertNumberValue(Buffer.prototype.writeBigUInt64BE, 8, value2, offset2);
      }
      /**
       * Writes a BigUInt64LE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeBigUInt64LE(value2, offset2) {
        utils_1.bigIntAndBufferInt64Check("writeBigUInt64LE");
        return this._writeNumberValue(Buffer.prototype.writeBigUInt64LE, 8, value2, offset2);
      }
      /**
       * Inserts a BigUInt64LE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertBigUInt64LE(value2, offset2) {
        utils_1.bigIntAndBufferInt64Check("writeBigUInt64LE");
        return this._insertNumberValue(Buffer.prototype.writeBigUInt64LE, 8, value2, offset2);
      }
      // Floating Point
      /**
       * Reads an FloatBE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readFloatBE(offset2) {
        return this._readNumberValue(Buffer.prototype.readFloatBE, 4, offset2);
      }
      /**
       * Reads an FloatLE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readFloatLE(offset2) {
        return this._readNumberValue(Buffer.prototype.readFloatLE, 4, offset2);
      }
      /**
       * Writes a FloatBE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeFloatBE(value2, offset2) {
        return this._writeNumberValue(Buffer.prototype.writeFloatBE, 4, value2, offset2);
      }
      /**
       * Inserts a FloatBE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertFloatBE(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeFloatBE, 4, value2, offset2);
      }
      /**
       * Writes a FloatLE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeFloatLE(value2, offset2) {
        return this._writeNumberValue(Buffer.prototype.writeFloatLE, 4, value2, offset2);
      }
      /**
       * Inserts a FloatLE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertFloatLE(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeFloatLE, 4, value2, offset2);
      }
      // Double Floating Point
      /**
       * Reads an DoublEBE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readDoubleBE(offset2) {
        return this._readNumberValue(Buffer.prototype.readDoubleBE, 8, offset2);
      }
      /**
       * Reads an DoubleLE value from the current read position or an optionally provided offset.
       *
       * @param offset { Number } The offset to read data from (optional)
       * @return { Number }
       */
      readDoubleLE(offset2) {
        return this._readNumberValue(Buffer.prototype.readDoubleLE, 8, offset2);
      }
      /**
       * Writes a DoubleBE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeDoubleBE(value2, offset2) {
        return this._writeNumberValue(Buffer.prototype.writeDoubleBE, 8, value2, offset2);
      }
      /**
       * Inserts a DoubleBE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertDoubleBE(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeDoubleBE, 8, value2, offset2);
      }
      /**
       * Writes a DoubleLE value to the current write position (or at optional offset).
       *
       * @param value { Number } The value to write.
       * @param offset { Number } The offset to write the value at.
       *
       * @return this
       */
      writeDoubleLE(value2, offset2) {
        return this._writeNumberValue(Buffer.prototype.writeDoubleLE, 8, value2, offset2);
      }
      /**
       * Inserts a DoubleLE value at the given offset value.
       *
       * @param value { Number } The value to insert.
       * @param offset { Number } The offset to insert the value at.
       *
       * @return this
       */
      insertDoubleLE(value2, offset2) {
        return this._insertNumberValue(Buffer.prototype.writeDoubleLE, 8, value2, offset2);
      }
      // Strings
      /**
       * Reads a String from the current read position.
       *
       * @param arg1 { Number | String } The number of bytes to read as a String, or the BufferEncoding to use for
       *             the string (Defaults to instance level encoding).
       * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding).
       *
       * @return { String }
       */
      readString(arg1, encoding) {
        let lengthVal;
        if (typeof arg1 === "number") {
          utils_1.checkLengthValue(arg1);
          lengthVal = Math.min(arg1, this.length - this._readOffset);
        } else {
          encoding = arg1;
          lengthVal = this.length - this._readOffset;
        }
        if (typeof encoding !== "undefined") {
          utils_1.checkEncoding(encoding);
        }
        const value2 = this._buff.slice(this._readOffset, this._readOffset + lengthVal).toString(encoding || this._encoding);
        this._readOffset += lengthVal;
        return value2;
      }
      /**
       * Inserts a String
       *
       * @param value { String } The String value to insert.
       * @param offset { Number } The offset to insert the string at.
       * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
       *
       * @return this
       */
      insertString(value2, offset2, encoding) {
        utils_1.checkOffsetValue(offset2);
        return this._handleString(value2, true, offset2, encoding);
      }
      /**
       * Writes a String
       *
       * @param value { String } The String value to write.
       * @param arg2 { Number | String } The offset to write the string at, or the BufferEncoding to use.
       * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
       *
       * @return this
       */
      writeString(value2, arg2, encoding) {
        return this._handleString(value2, false, arg2, encoding);
      }
      /**
       * Reads a null-terminated String from the current read position.
       *
       * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding).
       *
       * @return { String }
       */
      readStringNT(encoding) {
        if (typeof encoding !== "undefined") {
          utils_1.checkEncoding(encoding);
        }
        let nullPos = this.length;
        for (let i5 = this._readOffset; i5 < this.length; i5++) {
          if (this._buff[i5] === 0) {
            nullPos = i5;
            break;
          }
        }
        const value2 = this._buff.slice(this._readOffset, nullPos);
        this._readOffset = nullPos + 1;
        return value2.toString(encoding || this._encoding);
      }
      /**
       * Inserts a null-terminated String.
       *
       * @param value { String } The String value to write.
       * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use.
       * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
       *
       * @return this
       */
      insertStringNT(value2, offset2, encoding) {
        utils_1.checkOffsetValue(offset2);
        this.insertString(value2, offset2, encoding);
        this.insertUInt8(0, offset2 + value2.length);
        return this;
      }
      /**
       * Writes a null-terminated String.
       *
       * @param value { String } The String value to write.
       * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use.
       * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
       *
       * @return this
       */
      writeStringNT(value2, arg2, encoding) {
        this.writeString(value2, arg2, encoding);
        this.writeUInt8(0, typeof arg2 === "number" ? arg2 + value2.length : this.writeOffset);
        return this;
      }
      // Buffers
      /**
       * Reads a Buffer from the internal read position.
       *
       * @param length { Number } The length of data to read as a Buffer.
       *
       * @return { Buffer }
       */
      readBuffer(length2) {
        if (typeof length2 !== "undefined") {
          utils_1.checkLengthValue(length2);
        }
        const lengthVal = typeof length2 === "number" ? length2 : this.length;
        const endPoint = Math.min(this.length, this._readOffset + lengthVal);
        const value2 = this._buff.slice(this._readOffset, endPoint);
        this._readOffset = endPoint;
        return value2;
      }
      /**
       * Writes a Buffer to the current write position.
       *
       * @param value { Buffer } The Buffer to write.
       * @param offset { Number } The offset to write the Buffer to.
       *
       * @return this
       */
      insertBuffer(value2, offset2) {
        utils_1.checkOffsetValue(offset2);
        return this._handleBuffer(value2, true, offset2);
      }
      /**
       * Writes a Buffer to the current write position.
       *
       * @param value { Buffer } The Buffer to write.
       * @param offset { Number } The offset to write the Buffer to.
       *
       * @return this
       */
      writeBuffer(value2, offset2) {
        return this._handleBuffer(value2, false, offset2);
      }
      /**
       * Reads a null-terminated Buffer from the current read poisiton.
       *
       * @return { Buffer }
       */
      readBufferNT() {
        let nullPos = this.length;
        for (let i5 = this._readOffset; i5 < this.length; i5++) {
          if (this._buff[i5] === 0) {
            nullPos = i5;
            break;
          }
        }
        const value2 = this._buff.slice(this._readOffset, nullPos);
        this._readOffset = nullPos + 1;
        return value2;
      }
      /**
       * Inserts a null-terminated Buffer.
       *
       * @param value { Buffer } The Buffer to write.
       * @param offset { Number } The offset to write the Buffer to.
       *
       * @return this
       */
      insertBufferNT(value2, offset2) {
        utils_1.checkOffsetValue(offset2);
        this.insertBuffer(value2, offset2);
        this.insertUInt8(0, offset2 + value2.length);
        return this;
      }
      /**
       * Writes a null-terminated Buffer.
       *
       * @param value { Buffer } The Buffer to write.
       * @param offset { Number } The offset to write the Buffer to.
       *
       * @return this
       */
      writeBufferNT(value2, offset2) {
        if (typeof offset2 !== "undefined") {
          utils_1.checkOffsetValue(offset2);
        }
        this.writeBuffer(value2, offset2);
        this.writeUInt8(0, typeof offset2 === "number" ? offset2 + value2.length : this._writeOffset);
        return this;
      }
      /**
       * Clears the SmartBuffer instance to its original empty state.
       */
      clear() {
        this._writeOffset = 0;
        this._readOffset = 0;
        this.length = 0;
        return this;
      }
      /**
       * Gets the remaining data left to be read from the SmartBuffer instance.
       *
       * @return { Number }
       */
      remaining() {
        return this.length - this._readOffset;
      }
      /**
       * Gets the current read offset value of the SmartBuffer instance.
       *
       * @return { Number }
       */
      get readOffset() {
        return this._readOffset;
      }
      /**
       * Sets the read offset value of the SmartBuffer instance.
       *
       * @param offset { Number } - The offset value to set.
       */
      set readOffset(offset2) {
        utils_1.checkOffsetValue(offset2);
        utils_1.checkTargetOffset(offset2, this);
        this._readOffset = offset2;
      }
      /**
       * Gets the current write offset value of the SmartBuffer instance.
       *
       * @return { Number }
       */
      get writeOffset() {
        return this._writeOffset;
      }
      /**
       * Sets the write offset value of the SmartBuffer instance.
       *
       * @param offset { Number } - The offset value to set.
       */
      set writeOffset(offset2) {
        utils_1.checkOffsetValue(offset2);
        utils_1.checkTargetOffset(offset2, this);
        this._writeOffset = offset2;
      }
      /**
       * Gets the currently set string encoding of the SmartBuffer instance.
       *
       * @return { BufferEncoding } The string Buffer encoding currently set.
       */
      get encoding() {
        return this._encoding;
      }
      /**
       * Sets the string encoding of the SmartBuffer instance.
       *
       * @param encoding { BufferEncoding } The string Buffer encoding to set.
       */
      set encoding(encoding) {
        utils_1.checkEncoding(encoding);
        this._encoding = encoding;
      }
      /**
       * Gets the underlying internal Buffer. (This includes unmanaged data in the Buffer)
       *
       * @return { Buffer } The Buffer value.
       */
      get internalBuffer() {
        return this._buff;
      }
      /**
       * Gets the value of the internal managed Buffer (Includes managed data only)
       *
       * @param { Buffer }
       */
      toBuffer() {
        return this._buff.slice(0, this.length);
      }
      /**
       * Gets the String value of the internal managed Buffer
       *
       * @param encoding { String } The BufferEncoding to display the Buffer as (defaults to instance level encoding).
       */
      toString(encoding) {
        const encodingVal = typeof encoding === "string" ? encoding : this._encoding;
        utils_1.checkEncoding(encodingVal);
        return this._buff.toString(encodingVal, 0, this.length);
      }
      /**
       * Destroys the SmartBuffer instance.
       */
      destroy() {
        this.clear();
        return this;
      }
      /**
       * Handles inserting and writing strings.
       *
       * @param value { String } The String value to insert.
       * @param isInsert { Boolean } True if inserting a string, false if writing.
       * @param arg2 { Number | String } The offset to insert the string at, or the BufferEncoding to use.
       * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
       */
      _handleString(value2, isInsert, arg3, encoding) {
        let offsetVal = this._writeOffset;
        let encodingVal = this._encoding;
        if (typeof arg3 === "number") {
          offsetVal = arg3;
        } else if (typeof arg3 === "string") {
          utils_1.checkEncoding(arg3);
          encodingVal = arg3;
        }
        if (typeof encoding === "string") {
          utils_1.checkEncoding(encoding);
          encodingVal = encoding;
        }
        const byteLength3 = Buffer.byteLength(value2, encodingVal);
        if (isInsert) {
          this.ensureInsertable(byteLength3, offsetVal);
        } else {
          this._ensureWriteable(byteLength3, offsetVal);
        }
        this._buff.write(value2, offsetVal, byteLength3, encodingVal);
        if (isInsert) {
          this._writeOffset += byteLength3;
        } else {
          if (typeof arg3 === "number") {
            this._writeOffset = Math.max(this._writeOffset, offsetVal + byteLength3);
          } else {
            this._writeOffset += byteLength3;
          }
        }
        return this;
      }
      /**
       * Handles writing or insert of a Buffer.
       *
       * @param value { Buffer } The Buffer to write.
       * @param offset { Number } The offset to write the Buffer to.
       */
      _handleBuffer(value2, isInsert, offset2) {
        const offsetVal = typeof offset2 === "number" ? offset2 : this._writeOffset;
        if (isInsert) {
          this.ensureInsertable(value2.length, offsetVal);
        } else {
          this._ensureWriteable(value2.length, offsetVal);
        }
        value2.copy(this._buff, offsetVal);
        if (isInsert) {
          this._writeOffset += value2.length;
        } else {
          if (typeof offset2 === "number") {
            this._writeOffset = Math.max(this._writeOffset, offsetVal + value2.length);
          } else {
            this._writeOffset += value2.length;
          }
        }
        return this;
      }
      /**
       * Ensures that the internal Buffer is large enough to read data.
       *
       * @param length { Number } The length of the data that needs to be read.
       * @param offset { Number } The offset of the data that needs to be read.
       */
      ensureReadable(length2, offset2) {
        let offsetVal = this._readOffset;
        if (typeof offset2 !== "undefined") {
          utils_1.checkOffsetValue(offset2);
          offsetVal = offset2;
        }
        if (offsetVal < 0 || offsetVal + length2 > this.length) {
          throw new Error(utils_1.ERRORS.INVALID_READ_BEYOND_BOUNDS);
        }
      }
      /**
       * Ensures that the internal Buffer is large enough to insert data.
       *
       * @param dataLength { Number } The length of the data that needs to be written.
       * @param offset { Number } The offset of the data to be written.
       */
      ensureInsertable(dataLength, offset2) {
        utils_1.checkOffsetValue(offset2);
        this._ensureCapacity(this.length + dataLength);
        if (offset2 < this.length) {
          this._buff.copy(this._buff, offset2 + dataLength, offset2, this._buff.length);
        }
        if (offset2 + dataLength > this.length) {
          this.length = offset2 + dataLength;
        } else {
          this.length += dataLength;
        }
      }
      /**
       * Ensures that the internal Buffer is large enough to write data.
       *
       * @param dataLength { Number } The length of the data that needs to be written.
       * @param offset { Number } The offset of the data to be written (defaults to writeOffset).
       */
      _ensureWriteable(dataLength, offset2) {
        const offsetVal = typeof offset2 === "number" ? offset2 : this._writeOffset;
        this._ensureCapacity(offsetVal + dataLength);
        if (offsetVal + dataLength > this.length) {
          this.length = offsetVal + dataLength;
        }
      }
      /**
       * Ensures that the internal Buffer is large enough to write at least the given amount of data.
       *
       * @param minLength { Number } The minimum length of the data needs to be written.
       */
      _ensureCapacity(minLength) {
        const oldLength = this._buff.length;
        if (minLength > oldLength) {
          let data2 = this._buff;
          let newLength = oldLength * 3 / 2 + 1;
          if (newLength < minLength) {
            newLength = minLength;
          }
          this._buff = Buffer.allocUnsafe(newLength);
          data2.copy(this._buff, 0, 0, oldLength);
        }
      }
      /**
       * Reads a numeric number value using the provided function.
       *
       * @typeparam T { number | bigint } The type of the value to be read
       *
       * @param func { Function(offset: number) => number } The function to read data on the internal Buffer with.
       * @param byteSize { Number } The number of bytes read.
       * @param offset { Number } The offset to read from (optional). When this is not provided, the managed readOffset is used instead.
       *
       * @returns { T } the number value
       */
      _readNumberValue(func, byteSize, offset2) {
        this.ensureReadable(byteSize, offset2);
        const value2 = func.call(this._buff, typeof offset2 === "number" ? offset2 : this._readOffset);
        if (typeof offset2 === "undefined") {
          this._readOffset += byteSize;
        }
        return value2;
      }
      /**
       * Inserts a numeric number value based on the given offset and value.
       *
       * @typeparam T { number | bigint } The type of the value to be written
       *
       * @param func { Function(offset: T, offset?) => number} The function to write data on the internal Buffer with.
       * @param byteSize { Number } The number of bytes written.
       * @param value { T } The number value to write.
       * @param offset { Number } the offset to write the number at (REQUIRED).
       *
       * @returns SmartBuffer this buffer
       */
      _insertNumberValue(func, byteSize, value2, offset2) {
        utils_1.checkOffsetValue(offset2);
        this.ensureInsertable(byteSize, offset2);
        func.call(this._buff, value2, offset2);
        this._writeOffset += byteSize;
        return this;
      }
      /**
       * Writes a numeric number value based on the given offset and value.
       *
       * @typeparam T { number | bigint } The type of the value to be written
       *
       * @param func { Function(offset: T, offset?) => number} The function to write data on the internal Buffer with.
       * @param byteSize { Number } The number of bytes written.
       * @param value { T } The number value to write.
       * @param offset { Number } the offset to write the number at (REQUIRED).
       *
       * @returns SmartBuffer this buffer
       */
      _writeNumberValue(func, byteSize, value2, offset2) {
        if (typeof offset2 === "number") {
          if (offset2 < 0) {
            throw new Error(utils_1.ERRORS.INVALID_WRITE_BEYOND_BOUNDS);
          }
          utils_1.checkOffsetValue(offset2);
        }
        const offsetVal = typeof offset2 === "number" ? offset2 : this._writeOffset;
        this._ensureWriteable(byteSize, offsetVal);
        func.call(this._buff, value2, offsetVal);
        if (typeof offset2 === "number") {
          this._writeOffset = Math.max(this._writeOffset, offsetVal + byteSize);
        } else {
          this._writeOffset += byteSize;
        }
        return this;
      }
    };
    exports.SmartBuffer = SmartBuffer;
  }
});

// ../../node_modules/.pnpm/socks@2.8.7/node_modules/socks/build/common/constants.js
var require_constants5 = __commonJS({
  "../../node_modules/.pnpm/socks@2.8.7/node_modules/socks/build/common/constants.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.SOCKS5_NO_ACCEPTABLE_AUTH = exports.SOCKS5_CUSTOM_AUTH_END = exports.SOCKS5_CUSTOM_AUTH_START = exports.SOCKS_INCOMING_PACKET_SIZES = exports.SocksClientState = exports.Socks5Response = exports.Socks5HostType = exports.Socks5Auth = exports.Socks4Response = exports.SocksCommand = exports.ERRORS = exports.DEFAULT_TIMEOUT = void 0;
    var DEFAULT_TIMEOUT = 3e4;
    exports.DEFAULT_TIMEOUT = DEFAULT_TIMEOUT;
    var ERRORS = {
      InvalidSocksCommand: "An invalid SOCKS command was provided. Valid options are connect, bind, and associate.",
      InvalidSocksCommandForOperation: "An invalid SOCKS command was provided. Only a subset of commands are supported for this operation.",
      InvalidSocksCommandChain: "An invalid SOCKS command was provided. Chaining currently only supports the connect command.",
      InvalidSocksClientOptionsDestination: "An invalid destination host was provided.",
      InvalidSocksClientOptionsExistingSocket: "An invalid existing socket was provided. This should be an instance of stream.Duplex.",
      InvalidSocksClientOptionsProxy: "Invalid SOCKS proxy details were provided.",
      InvalidSocksClientOptionsTimeout: "An invalid timeout value was provided. Please enter a value above 0 (in ms).",
      InvalidSocksClientOptionsProxiesLength: "At least two socks proxies must be provided for chaining.",
      InvalidSocksClientOptionsCustomAuthRange: "Custom auth must be a value between 0x80 and 0xFE.",
      InvalidSocksClientOptionsCustomAuthOptions: "When a custom_auth_method is provided, custom_auth_request_handler, custom_auth_response_size, and custom_auth_response_handler must also be provided and valid.",
      NegotiationError: "Negotiation error",
      SocketClosed: "Socket closed",
      ProxyConnectionTimedOut: "Proxy connection timed out",
      InternalError: "SocksClient internal error (this should not happen)",
      InvalidSocks4HandshakeResponse: "Received invalid Socks4 handshake response",
      Socks4ProxyRejectedConnection: "Socks4 Proxy rejected connection",
      InvalidSocks4IncomingConnectionResponse: "Socks4 invalid incoming connection response",
      Socks4ProxyRejectedIncomingBoundConnection: "Socks4 Proxy rejected incoming bound connection",
      InvalidSocks5InitialHandshakeResponse: "Received invalid Socks5 initial handshake response",
      InvalidSocks5IntiailHandshakeSocksVersion: "Received invalid Socks5 initial handshake (invalid socks version)",
      InvalidSocks5InitialHandshakeNoAcceptedAuthType: "Received invalid Socks5 initial handshake (no accepted authentication type)",
      InvalidSocks5InitialHandshakeUnknownAuthType: "Received invalid Socks5 initial handshake (unknown authentication type)",
      Socks5AuthenticationFailed: "Socks5 Authentication failed",
      InvalidSocks5FinalHandshake: "Received invalid Socks5 final handshake response",
      InvalidSocks5FinalHandshakeRejected: "Socks5 proxy rejected connection",
      InvalidSocks5IncomingConnectionResponse: "Received invalid Socks5 incoming connection response",
      Socks5ProxyRejectedIncomingBoundConnection: "Socks5 Proxy rejected incoming bound connection"
    };
    exports.ERRORS = ERRORS;
    var SOCKS_INCOMING_PACKET_SIZES = {
      Socks5InitialHandshakeResponse: 2,
      Socks5UserPassAuthenticationResponse: 2,
      // Command response + incoming connection (bind)
      Socks5ResponseHeader: 5,
      // We need at least 5 to read the hostname length, then we wait for the address+port information.
      Socks5ResponseIPv4: 10,
      // 4 header + 4 ip + 2 port
      Socks5ResponseIPv6: 22,
      // 4 header + 16 ip + 2 port
      Socks5ResponseHostname: (hostNameLength) => hostNameLength + 7,
      // 4 header + 1 host length + host + 2 port
      // Command response + incoming connection (bind)
      Socks4Response: 8
      // 2 header + 2 port + 4 ip
    };
    exports.SOCKS_INCOMING_PACKET_SIZES = SOCKS_INCOMING_PACKET_SIZES;
    var SocksCommand;
    (function(SocksCommand2) {
      SocksCommand2[SocksCommand2["connect"] = 1] = "connect";
      SocksCommand2[SocksCommand2["bind"] = 2] = "bind";
      SocksCommand2[SocksCommand2["associate"] = 3] = "associate";
    })(SocksCommand || (exports.SocksCommand = SocksCommand = {}));
    var Socks4Response;
    (function(Socks4Response2) {
      Socks4Response2[Socks4Response2["Granted"] = 90] = "Granted";
      Socks4Response2[Socks4Response2["Failed"] = 91] = "Failed";
      Socks4Response2[Socks4Response2["Rejected"] = 92] = "Rejected";
      Socks4Response2[Socks4Response2["RejectedIdent"] = 93] = "RejectedIdent";
    })(Socks4Response || (exports.Socks4Response = Socks4Response = {}));
    var Socks5Auth;
    (function(Socks5Auth2) {
      Socks5Auth2[Socks5Auth2["NoAuth"] = 0] = "NoAuth";
      Socks5Auth2[Socks5Auth2["GSSApi"] = 1] = "GSSApi";
      Socks5Auth2[Socks5Auth2["UserPass"] = 2] = "UserPass";
    })(Socks5Auth || (exports.Socks5Auth = Socks5Auth = {}));
    var SOCKS5_CUSTOM_AUTH_START = 128;
    exports.SOCKS5_CUSTOM_AUTH_START = SOCKS5_CUSTOM_AUTH_START;
    var SOCKS5_CUSTOM_AUTH_END = 254;
    exports.SOCKS5_CUSTOM_AUTH_END = SOCKS5_CUSTOM_AUTH_END;
    var SOCKS5_NO_ACCEPTABLE_AUTH = 255;
    exports.SOCKS5_NO_ACCEPTABLE_AUTH = SOCKS5_NO_ACCEPTABLE_AUTH;
    var Socks5Response;
    (function(Socks5Response2) {
      Socks5Response2[Socks5Response2["Granted"] = 0] = "Granted";
      Socks5Response2[Socks5Response2["Failure"] = 1] = "Failure";
      Socks5Response2[Socks5Response2["NotAllowed"] = 2] = "NotAllowed";
      Socks5Response2[Socks5Response2["NetworkUnreachable"] = 3] = "NetworkUnreachable";
      Socks5Response2[Socks5Response2["HostUnreachable"] = 4] = "HostUnreachable";
      Socks5Response2[Socks5Response2["ConnectionRefused"] = 5] = "ConnectionRefused";
      Socks5Response2[Socks5Response2["TTLExpired"] = 6] = "TTLExpired";
      Socks5Response2[Socks5Response2["CommandNotSupported"] = 7] = "CommandNotSupported";
      Socks5Response2[Socks5Response2["AddressNotSupported"] = 8] = "AddressNotSupported";
    })(Socks5Response || (exports.Socks5Response = Socks5Response = {}));
    var Socks5HostType;
    (function(Socks5HostType2) {
      Socks5HostType2[Socks5HostType2["IPv4"] = 1] = "IPv4";
      Socks5HostType2[Socks5HostType2["Hostname"] = 3] = "Hostname";
      Socks5HostType2[Socks5HostType2["IPv6"] = 4] = "IPv6";
    })(Socks5HostType || (exports.Socks5HostType = Socks5HostType = {}));
    var SocksClientState;
    (function(SocksClientState2) {
      SocksClientState2[SocksClientState2["Created"] = 0] = "Created";
      SocksClientState2[SocksClientState2["Connecting"] = 1] = "Connecting";
      SocksClientState2[SocksClientState2["Connected"] = 2] = "Connected";
      SocksClientState2[SocksClientState2["SentInitialHandshake"] = 3] = "SentInitialHandshake";
      SocksClientState2[SocksClientState2["ReceivedInitialHandshakeResponse"] = 4] = "ReceivedInitialHandshakeResponse";
      SocksClientState2[SocksClientState2["SentAuthentication"] = 5] = "SentAuthentication";
      SocksClientState2[SocksClientState2["ReceivedAuthenticationResponse"] = 6] = "ReceivedAuthenticationResponse";
      SocksClientState2[SocksClientState2["SentFinalHandshake"] = 7] = "SentFinalHandshake";
      SocksClientState2[SocksClientState2["ReceivedFinalResponse"] = 8] = "ReceivedFinalResponse";
      SocksClientState2[SocksClientState2["BoundWaitingForConnection"] = 9] = "BoundWaitingForConnection";
      SocksClientState2[SocksClientState2["Established"] = 10] = "Established";
      SocksClientState2[SocksClientState2["Disconnected"] = 11] = "Disconnected";
      SocksClientState2[SocksClientState2["Error"] = 99] = "Error";
    })(SocksClientState || (exports.SocksClientState = SocksClientState = {}));
  }
});

// ../../node_modules/.pnpm/socks@2.8.7/node_modules/socks/build/common/util.js
var require_util3 = __commonJS({
  "../../node_modules/.pnpm/socks@2.8.7/node_modules/socks/build/common/util.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.shuffleArray = exports.SocksClientError = void 0;
    var SocksClientError = class extends Error {
      constructor(message, options) {
        super(message);
        this.options = options;
      }
    };
    exports.SocksClientError = SocksClientError;
    function shuffleArray(array) {
      for (let i5 = array.length - 1; i5 > 0; i5--) {
        const j = Math.floor(Math.random() * (i5 + 1));
        [array[i5], array[j]] = [array[j], array[i5]];
      }
    }
    exports.shuffleArray = shuffleArray;
  }
});

// ../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/common.js
var require_common2 = __commonJS({
  "../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/common.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.isInSubnet = isInSubnet;
    exports.isCorrect = isCorrect;
    exports.numberToPaddedHex = numberToPaddedHex;
    exports.stringToPaddedHex = stringToPaddedHex;
    exports.testBit = testBit;
    function isInSubnet(address) {
      if (this.subnetMask < address.subnetMask) {
        return false;
      }
      if (this.mask(address.subnetMask) === address.mask()) {
        return true;
      }
      return false;
    }
    function isCorrect(defaultBits) {
      return function() {
        if (this.addressMinusSuffix !== this.correctForm()) {
          return false;
        }
        if (this.subnetMask === defaultBits && !this.parsedSubnet) {
          return true;
        }
        return this.parsedSubnet === String(this.subnetMask);
      };
    }
    function numberToPaddedHex(number3) {
      return number3.toString(16).padStart(2, "0");
    }
    function stringToPaddedHex(numberString) {
      return numberToPaddedHex(parseInt(numberString, 10));
    }
    function testBit(binaryValue, position) {
      const { length: length2 } = binaryValue;
      if (position > length2) {
        return false;
      }
      const positionInString = length2 - position;
      return binaryValue.substring(positionInString, positionInString + 1) === "1";
    }
  }
});

// ../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/v4/constants.js
var require_constants6 = __commonJS({
  "../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/v4/constants.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RE_SUBNET_STRING = exports.RE_ADDRESS = exports.GROUPS = exports.BITS = void 0;
    exports.BITS = 32;
    exports.GROUPS = 4;
    exports.RE_ADDRESS = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/g;
    exports.RE_SUBNET_STRING = /\/\d{1,2}$/;
  }
});

// ../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/address-error.js
var require_address_error = __commonJS({
  "../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/address-error.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.AddressError = void 0;
    var AddressError = class extends Error {
      constructor(message, parseMessage) {
        super(message);
        this.name = "AddressError";
        this.parseMessage = parseMessage;
      }
    };
    exports.AddressError = AddressError;
  }
});

// ../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/ipv4.js
var require_ipv4 = __commonJS({
  "../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/ipv4.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Address4 = void 0;
    var common = __importStar2(require_common2());
    var constants2 = __importStar2(require_constants6());
    var address_error_1 = require_address_error();
    var Address4 = class _Address4 {
      constructor(address) {
        this.groups = constants2.GROUPS;
        this.parsedAddress = [];
        this.parsedSubnet = "";
        this.subnet = "/32";
        this.subnetMask = 32;
        this.v4 = true;
        this.isCorrect = common.isCorrect(constants2.BITS);
        this.isInSubnet = common.isInSubnet;
        this.address = address;
        const subnet = constants2.RE_SUBNET_STRING.exec(address);
        if (subnet) {
          this.parsedSubnet = subnet[0].replace("/", "");
          this.subnetMask = parseInt(this.parsedSubnet, 10);
          this.subnet = `/${this.subnetMask}`;
          if (this.subnetMask < 0 || this.subnetMask > constants2.BITS) {
            throw new address_error_1.AddressError("Invalid subnet mask.");
          }
          address = address.replace(constants2.RE_SUBNET_STRING, "");
        }
        this.addressMinusSuffix = address;
        this.parsedAddress = this.parse(address);
      }
      static isValid(address) {
        try {
          new _Address4(address);
          return true;
        } catch (e4) {
          return false;
        }
      }
      /*
       * Parses a v4 address
       */
      parse(address) {
        const groups = address.split(".");
        if (!address.match(constants2.RE_ADDRESS)) {
          throw new address_error_1.AddressError("Invalid IPv4 address.");
        }
        return groups;
      }
      /**
       * Returns the correct form of an address
       * @memberof Address4
       * @instance
       * @returns {String}
       */
      correctForm() {
        return this.parsedAddress.map((part) => parseInt(part, 10)).join(".");
      }
      /**
       * Converts a hex string to an IPv4 address object
       * @memberof Address4
       * @static
       * @param {string} hex - a hex string to convert
       * @returns {Address4}
       */
      static fromHex(hex) {
        const padded = hex.replace(/:/g, "").padStart(8, "0");
        const groups = [];
        let i5;
        for (i5 = 0; i5 < 8; i5 += 2) {
          const h4 = padded.slice(i5, i5 + 2);
          groups.push(parseInt(h4, 16));
        }
        return new _Address4(groups.join("."));
      }
      /**
       * Converts an integer into a IPv4 address object
       * @memberof Address4
       * @static
       * @param {integer} integer - a number to convert
       * @returns {Address4}
       */
      static fromInteger(integer) {
        return _Address4.fromHex(integer.toString(16));
      }
      /**
       * Return an address from in-addr.arpa form
       * @memberof Address4
       * @static
       * @param {string} arpaFormAddress - an 'in-addr.arpa' form ipv4 address
       * @returns {Adress4}
       * @example
       * var address = Address4.fromArpa(42.2.0.192.in-addr.arpa.)
       * address.correctForm(); // '192.0.2.42'
       */
      static fromArpa(arpaFormAddress) {
        const leader = arpaFormAddress.replace(/(\.in-addr\.arpa)?\.$/, "");
        const address = leader.split(".").reverse().join(".");
        return new _Address4(address);
      }
      /**
       * Converts an IPv4 address object to a hex string
       * @memberof Address4
       * @instance
       * @returns {String}
       */
      toHex() {
        return this.parsedAddress.map((part) => common.stringToPaddedHex(part)).join(":");
      }
      /**
       * Converts an IPv4 address object to an array of bytes
       * @memberof Address4
       * @instance
       * @returns {Array}
       */
      toArray() {
        return this.parsedAddress.map((part) => parseInt(part, 10));
      }
      /**
       * Converts an IPv4 address object to an IPv6 address group
       * @memberof Address4
       * @instance
       * @returns {String}
       */
      toGroup6() {
        const output = [];
        let i5;
        for (i5 = 0; i5 < constants2.GROUPS; i5 += 2) {
          output.push(`${common.stringToPaddedHex(this.parsedAddress[i5])}${common.stringToPaddedHex(this.parsedAddress[i5 + 1])}`);
        }
        return output.join(":");
      }
      /**
       * Returns the address as a `bigint`
       * @memberof Address4
       * @instance
       * @returns {bigint}
       */
      bigInt() {
        return BigInt(`0x${this.parsedAddress.map((n6) => common.stringToPaddedHex(n6)).join("")}`);
      }
      /**
       * Helper function getting start address.
       * @memberof Address4
       * @instance
       * @returns {bigint}
       */
      _startAddress() {
        return BigInt(`0b${this.mask() + "0".repeat(constants2.BITS - this.subnetMask)}`);
      }
      /**
       * The first address in the range given by this address' subnet.
       * Often referred to as the Network Address.
       * @memberof Address4
       * @instance
       * @returns {Address4}
       */
      startAddress() {
        return _Address4.fromBigInt(this._startAddress());
      }
      /**
       * The first host address in the range given by this address's subnet ie
       * the first address after the Network Address
       * @memberof Address4
       * @instance
       * @returns {Address4}
       */
      startAddressExclusive() {
        const adjust2 = BigInt("1");
        return _Address4.fromBigInt(this._startAddress() + adjust2);
      }
      /**
       * Helper function getting end address.
       * @memberof Address4
       * @instance
       * @returns {bigint}
       */
      _endAddress() {
        return BigInt(`0b${this.mask() + "1".repeat(constants2.BITS - this.subnetMask)}`);
      }
      /**
       * The last address in the range given by this address' subnet
       * Often referred to as the Broadcast
       * @memberof Address4
       * @instance
       * @returns {Address4}
       */
      endAddress() {
        return _Address4.fromBigInt(this._endAddress());
      }
      /**
       * The last host address in the range given by this address's subnet ie
       * the last address prior to the Broadcast Address
       * @memberof Address4
       * @instance
       * @returns {Address4}
       */
      endAddressExclusive() {
        const adjust2 = BigInt("1");
        return _Address4.fromBigInt(this._endAddress() - adjust2);
      }
      /**
       * Converts a BigInt to a v4 address object
       * @memberof Address4
       * @static
       * @param {bigint} bigInt - a BigInt to convert
       * @returns {Address4}
       */
      static fromBigInt(bigInt) {
        return _Address4.fromHex(bigInt.toString(16));
      }
      /**
       * Convert a byte array to an Address4 object
       * @memberof Address4
       * @static
       * @param {Array<number>} bytes - an array of 4 bytes (0-255)
       * @returns {Address4}
       */
      static fromByteArray(bytes) {
        if (bytes.length !== 4) {
          throw new address_error_1.AddressError("IPv4 addresses require exactly 4 bytes");
        }
        for (let i5 = 0; i5 < bytes.length; i5++) {
          if (!Number.isInteger(bytes[i5]) || bytes[i5] < 0 || bytes[i5] > 255) {
            throw new address_error_1.AddressError("All bytes must be integers between 0 and 255");
          }
        }
        return this.fromUnsignedByteArray(bytes);
      }
      /**
       * Convert an unsigned byte array to an Address4 object
       * @memberof Address4
       * @static
       * @param {Array<number>} bytes - an array of 4 unsigned bytes (0-255)
       * @returns {Address4}
       */
      static fromUnsignedByteArray(bytes) {
        if (bytes.length !== 4) {
          throw new address_error_1.AddressError("IPv4 addresses require exactly 4 bytes");
        }
        const address = bytes.join(".");
        return new _Address4(address);
      }
      /**
       * Returns the first n bits of the address, defaulting to the
       * subnet mask
       * @memberof Address4
       * @instance
       * @returns {String}
       */
      mask(mask) {
        if (mask === void 0) {
          mask = this.subnetMask;
        }
        return this.getBitsBase2(0, mask);
      }
      /**
       * Returns the bits in the given range as a base-2 string
       * @memberof Address4
       * @instance
       * @returns {string}
       */
      getBitsBase2(start2, end2) {
        return this.binaryZeroPad().slice(start2, end2);
      }
      /**
       * Return the reversed ip6.arpa form of the address
       * @memberof Address4
       * @param {Object} options
       * @param {boolean} options.omitSuffix - omit the "in-addr.arpa" suffix
       * @instance
       * @returns {String}
       */
      reverseForm(options) {
        if (!options) {
          options = {};
        }
        const reversed = this.correctForm().split(".").reverse().join(".");
        if (options.omitSuffix) {
          return reversed;
        }
        return `${reversed}.in-addr.arpa.`;
      }
      /**
       * Returns true if the given address is a multicast address
       * @memberof Address4
       * @instance
       * @returns {boolean}
       */
      isMulticast() {
        return this.isInSubnet(new _Address4("224.0.0.0/4"));
      }
      /**
       * Returns a zero-padded base-2 string representation of the address
       * @memberof Address4
       * @instance
       * @returns {string}
       */
      binaryZeroPad() {
        return this.bigInt().toString(2).padStart(constants2.BITS, "0");
      }
      /**
       * Groups an IPv4 address for inclusion at the end of an IPv6 address
       * @returns {String}
       */
      groupForV6() {
        const segments = this.parsedAddress;
        return this.address.replace(constants2.RE_ADDRESS, `<span class="hover-group group-v4 group-6">${segments.slice(0, 2).join(".")}</span>.<span class="hover-group group-v4 group-7">${segments.slice(2, 4).join(".")}</span>`);
      }
    };
    exports.Address4 = Address4;
  }
});

// ../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/v6/constants.js
var require_constants7 = __commonJS({
  "../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/v6/constants.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RE_URL_WITH_PORT = exports.RE_URL = exports.RE_ZONE_STRING = exports.RE_SUBNET_STRING = exports.RE_BAD_ADDRESS = exports.RE_BAD_CHARACTERS = exports.TYPES = exports.SCOPES = exports.GROUPS = exports.BITS = void 0;
    exports.BITS = 128;
    exports.GROUPS = 8;
    exports.SCOPES = {
      0: "Reserved",
      1: "Interface local",
      2: "Link local",
      4: "Admin local",
      5: "Site local",
      8: "Organization local",
      14: "Global",
      15: "Reserved"
    };
    exports.TYPES = {
      "ff01::1/128": "Multicast (All nodes on this interface)",
      "ff01::2/128": "Multicast (All routers on this interface)",
      "ff02::1/128": "Multicast (All nodes on this link)",
      "ff02::2/128": "Multicast (All routers on this link)",
      "ff05::2/128": "Multicast (All routers in this site)",
      "ff02::5/128": "Multicast (OSPFv3 AllSPF routers)",
      "ff02::6/128": "Multicast (OSPFv3 AllDR routers)",
      "ff02::9/128": "Multicast (RIP routers)",
      "ff02::a/128": "Multicast (EIGRP routers)",
      "ff02::d/128": "Multicast (PIM routers)",
      "ff02::16/128": "Multicast (MLDv2 reports)",
      "ff01::fb/128": "Multicast (mDNSv6)",
      "ff02::fb/128": "Multicast (mDNSv6)",
      "ff05::fb/128": "Multicast (mDNSv6)",
      "ff02::1:2/128": "Multicast (All DHCP servers and relay agents on this link)",
      "ff05::1:2/128": "Multicast (All DHCP servers and relay agents in this site)",
      "ff02::1:3/128": "Multicast (All DHCP servers on this link)",
      "ff05::1:3/128": "Multicast (All DHCP servers in this site)",
      "::/128": "Unspecified",
      "::1/128": "Loopback",
      "ff00::/8": "Multicast",
      "fe80::/10": "Link-local unicast"
    };
    exports.RE_BAD_CHARACTERS = /([^0-9a-f:/%])/gi;
    exports.RE_BAD_ADDRESS = /([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\/$)/gi;
    exports.RE_SUBNET_STRING = /\/\d{1,3}(?=%|$)/;
    exports.RE_ZONE_STRING = /%.*$/;
    exports.RE_URL = /^\[{0,1}([0-9a-f:]+)\]{0,1}/;
    exports.RE_URL_WITH_PORT = /\[([0-9a-f:]+)\]:([0-9]{1,5})/;
  }
});

// ../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/v6/helpers.js
var require_helpers3 = __commonJS({
  "../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/v6/helpers.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.spanAllZeroes = spanAllZeroes;
    exports.spanAll = spanAll;
    exports.spanLeadingZeroes = spanLeadingZeroes;
    exports.simpleGroup = simpleGroup;
    function spanAllZeroes(s4) {
      return s4.replace(/(0+)/g, '<span class="zero">$1</span>');
    }
    function spanAll(s4, offset2 = 0) {
      const letters = s4.split("");
      return letters.map((n6, i5) => `<span class="digit value-${n6} position-${i5 + offset2}">${spanAllZeroes(n6)}</span>`).join("");
    }
    function spanLeadingZeroesSimple(group) {
      return group.replace(/^(0+)/, '<span class="zero">$1</span>');
    }
    function spanLeadingZeroes(address) {
      const groups = address.split(":");
      return groups.map((g3) => spanLeadingZeroesSimple(g3)).join(":");
    }
    function simpleGroup(addressString, offset2 = 0) {
      const groups = addressString.split(":");
      return groups.map((g3, i5) => {
        if (/group-v4/.test(g3)) {
          return g3;
        }
        return `<span class="hover-group group-${i5 + offset2}">${spanLeadingZeroesSimple(g3)}</span>`;
      });
    }
  }
});

// ../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/v6/regular-expressions.js
var require_regular_expressions = __commonJS({
  "../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/v6/regular-expressions.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ADDRESS_BOUNDARY = void 0;
    exports.groupPossibilities = groupPossibilities;
    exports.padGroup = padGroup;
    exports.simpleRegularExpression = simpleRegularExpression;
    exports.possibleElisions = possibleElisions;
    var v6 = __importStar2(require_constants7());
    function groupPossibilities(possibilities) {
      return `(${possibilities.join("|")})`;
    }
    function padGroup(group) {
      if (group.length < 4) {
        return `0{0,${4 - group.length}}${group}`;
      }
      return group;
    }
    exports.ADDRESS_BOUNDARY = "[^A-Fa-f0-9:]";
    function simpleRegularExpression(groups) {
      const zeroIndexes = [];
      groups.forEach((group, i5) => {
        const groupInteger = parseInt(group, 16);
        if (groupInteger === 0) {
          zeroIndexes.push(i5);
        }
      });
      const possibilities = zeroIndexes.map((zeroIndex) => groups.map((group, i5) => {
        if (i5 === zeroIndex) {
          const elision = i5 === 0 || i5 === v6.GROUPS - 1 ? ":" : "";
          return groupPossibilities([padGroup(group), elision]);
        }
        return padGroup(group);
      }).join(":"));
      possibilities.push(groups.map(padGroup).join(":"));
      return groupPossibilities(possibilities);
    }
    function possibleElisions(elidedGroups, moreLeft, moreRight) {
      const left = moreLeft ? "" : ":";
      const right = moreRight ? "" : ":";
      const possibilities = [];
      if (!moreLeft && !moreRight) {
        possibilities.push("::");
      }
      if (moreLeft && moreRight) {
        possibilities.push("");
      }
      if (moreRight && !moreLeft || !moreRight && moreLeft) {
        possibilities.push(":");
      }
      possibilities.push(`${left}(:0{1,4}){1,${elidedGroups - 1}}`);
      possibilities.push(`(0{1,4}:){1,${elidedGroups - 1}}${right}`);
      possibilities.push(`(0{1,4}:){${elidedGroups - 1}}0{1,4}`);
      for (let groups = 1; groups < elidedGroups - 1; groups++) {
        for (let position = 1; position < elidedGroups - groups; position++) {
          possibilities.push(`(0{1,4}:){${position}}:(0{1,4}:){${elidedGroups - position - groups - 1}}0{1,4}`);
        }
      }
      return groupPossibilities(possibilities);
    }
  }
});

// ../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/ipv6.js
var require_ipv6 = __commonJS({
  "../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/ipv6.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Address6 = void 0;
    var common = __importStar2(require_common2());
    var constants4 = __importStar2(require_constants6());
    var constants6 = __importStar2(require_constants7());
    var helpers = __importStar2(require_helpers3());
    var ipv4_1 = require_ipv4();
    var regular_expressions_1 = require_regular_expressions();
    var address_error_1 = require_address_error();
    var common_1 = require_common2();
    function assert3(condition) {
      if (!condition) {
        throw new Error("Assertion failed.");
      }
    }
    function addCommas(number3) {
      const r4 = /(\d+)(\d{3})/;
      while (r4.test(number3)) {
        number3 = number3.replace(r4, "$1,$2");
      }
      return number3;
    }
    function spanLeadingZeroes4(n6) {
      n6 = n6.replace(/^(0{1,})([1-9]+)$/, '<span class="parse-error">$1</span>$2');
      n6 = n6.replace(/^(0{1,})(0)$/, '<span class="parse-error">$1</span>$2');
      return n6;
    }
    function compact2(address, slice2) {
      const s1 = [];
      const s22 = [];
      let i5;
      for (i5 = 0; i5 < address.length; i5++) {
        if (i5 < slice2[0]) {
          s1.push(address[i5]);
        } else if (i5 > slice2[1]) {
          s22.push(address[i5]);
        }
      }
      return s1.concat(["compact"]).concat(s22);
    }
    function paddedHex(octet) {
      return parseInt(octet, 16).toString(16).padStart(4, "0");
    }
    function unsignByte(b3) {
      return b3 & 255;
    }
    var Address6 = class _Address6 {
      constructor(address, optionalGroups) {
        this.addressMinusSuffix = "";
        this.parsedSubnet = "";
        this.subnet = "/128";
        this.subnetMask = 128;
        this.v4 = false;
        this.zone = "";
        this.isInSubnet = common.isInSubnet;
        this.isCorrect = common.isCorrect(constants6.BITS);
        if (optionalGroups === void 0) {
          this.groups = constants6.GROUPS;
        } else {
          this.groups = optionalGroups;
        }
        this.address = address;
        const subnet = constants6.RE_SUBNET_STRING.exec(address);
        if (subnet) {
          this.parsedSubnet = subnet[0].replace("/", "");
          this.subnetMask = parseInt(this.parsedSubnet, 10);
          this.subnet = `/${this.subnetMask}`;
          if (Number.isNaN(this.subnetMask) || this.subnetMask < 0 || this.subnetMask > constants6.BITS) {
            throw new address_error_1.AddressError("Invalid subnet mask.");
          }
          address = address.replace(constants6.RE_SUBNET_STRING, "");
        } else if (/\//.test(address)) {
          throw new address_error_1.AddressError("Invalid subnet mask.");
        }
        const zone = constants6.RE_ZONE_STRING.exec(address);
        if (zone) {
          this.zone = zone[0];
          address = address.replace(constants6.RE_ZONE_STRING, "");
        }
        this.addressMinusSuffix = address;
        this.parsedAddress = this.parse(this.addressMinusSuffix);
      }
      static isValid(address) {
        try {
          new _Address6(address);
          return true;
        } catch (e4) {
          return false;
        }
      }
      /**
       * Convert a BigInt to a v6 address object
       * @memberof Address6
       * @static
       * @param {bigint} bigInt - a BigInt to convert
       * @returns {Address6}
       * @example
       * var bigInt = BigInt('1000000000000');
       * var address = Address6.fromBigInt(bigInt);
       * address.correctForm(); // '::e8:d4a5:1000'
       */
      static fromBigInt(bigInt) {
        const hex = bigInt.toString(16).padStart(32, "0");
        const groups = [];
        let i5;
        for (i5 = 0; i5 < constants6.GROUPS; i5++) {
          groups.push(hex.slice(i5 * 4, (i5 + 1) * 4));
        }
        return new _Address6(groups.join(":"));
      }
      /**
       * Convert a URL (with optional port number) to an address object
       * @memberof Address6
       * @static
       * @param {string} url - a URL with optional port number
       * @example
       * var addressAndPort = Address6.fromURL('http://[ffff::]:8080/foo/');
       * addressAndPort.address.correctForm(); // 'ffff::'
       * addressAndPort.port; // 8080
       */
      static fromURL(url3) {
        let host;
        let port = null;
        let result;
        if (url3.indexOf("[") !== -1 && url3.indexOf("]:") !== -1) {
          result = constants6.RE_URL_WITH_PORT.exec(url3);
          if (result === null) {
            return {
              error: "failed to parse address with port",
              address: null,
              port: null
            };
          }
          host = result[1];
          port = result[2];
        } else if (url3.indexOf("/") !== -1) {
          url3 = url3.replace(/^[a-z0-9]+:\/\//, "");
          result = constants6.RE_URL.exec(url3);
          if (result === null) {
            return {
              error: "failed to parse address from URL",
              address: null,
              port: null
            };
          }
          host = result[1];
        } else {
          host = url3;
        }
        if (port) {
          port = parseInt(port, 10);
          if (port < 0 || port > 65536) {
            port = null;
          }
        } else {
          port = null;
        }
        return {
          address: new _Address6(host),
          port
        };
      }
      /**
       * Create an IPv6-mapped address given an IPv4 address
       * @memberof Address6
       * @static
       * @param {string} address - An IPv4 address string
       * @returns {Address6}
       * @example
       * var address = Address6.fromAddress4('192.168.0.1');
       * address.correctForm(); // '::ffff:c0a8:1'
       * address.to4in6(); // '::ffff:192.168.0.1'
       */
      static fromAddress4(address) {
        const address4 = new ipv4_1.Address4(address);
        const mask6 = constants6.BITS - (constants4.BITS - address4.subnetMask);
        return new _Address6(`::ffff:${address4.correctForm()}/${mask6}`);
      }
      /**
       * Return an address from ip6.arpa form
       * @memberof Address6
       * @static
       * @param {string} arpaFormAddress - an 'ip6.arpa' form address
       * @returns {Adress6}
       * @example
       * var address = Address6.fromArpa(e.f.f.f.3.c.2.6.f.f.f.e.6.6.8.e.1.0.6.7.9.4.e.c.0.0.0.0.1.0.0.2.ip6.arpa.)
       * address.correctForm(); // '2001:0:ce49:7601:e866:efff:62c3:fffe'
       */
      static fromArpa(arpaFormAddress) {
        let address = arpaFormAddress.replace(/(\.ip6\.arpa)?\.$/, "");
        const semicolonAmount = 7;
        if (address.length !== 63) {
          throw new address_error_1.AddressError("Invalid 'ip6.arpa' form.");
        }
        const parts = address.split(".").reverse();
        for (let i5 = semicolonAmount; i5 > 0; i5--) {
          const insertIndex = i5 * 4;
          parts.splice(insertIndex, 0, ":");
        }
        address = parts.join("");
        return new _Address6(address);
      }
      /**
       * Return the Microsoft UNC transcription of the address
       * @memberof Address6
       * @instance
       * @returns {String} the Microsoft UNC transcription of the address
       */
      microsoftTranscription() {
        return `${this.correctForm().replace(/:/g, "-")}.ipv6-literal.net`;
      }
      /**
       * Return the first n bits of the address, defaulting to the subnet mask
       * @memberof Address6
       * @instance
       * @param {number} [mask=subnet] - the number of bits to mask
       * @returns {String} the first n bits of the address as a string
       */
      mask(mask = this.subnetMask) {
        return this.getBitsBase2(0, mask);
      }
      /**
       * Return the number of possible subnets of a given size in the address
       * @memberof Address6
       * @instance
       * @param {number} [subnetSize=128] - the subnet size
       * @returns {String}
       */
      // TODO: probably useful to have a numeric version of this too
      possibleSubnets(subnetSize = 128) {
        const availableBits = constants6.BITS - this.subnetMask;
        const subnetBits = Math.abs(subnetSize - constants6.BITS);
        const subnetPowers = availableBits - subnetBits;
        if (subnetPowers < 0) {
          return "0";
        }
        return addCommas((BigInt("2") ** BigInt(subnetPowers)).toString(10));
      }
      /**
       * Helper function getting start address.
       * @memberof Address6
       * @instance
       * @returns {bigint}
       */
      _startAddress() {
        return BigInt(`0b${this.mask() + "0".repeat(constants6.BITS - this.subnetMask)}`);
      }
      /**
       * The first address in the range given by this address' subnet
       * Often referred to as the Network Address.
       * @memberof Address6
       * @instance
       * @returns {Address6}
       */
      startAddress() {
        return _Address6.fromBigInt(this._startAddress());
      }
      /**
       * The first host address in the range given by this address's subnet ie
       * the first address after the Network Address
       * @memberof Address6
       * @instance
       * @returns {Address6}
       */
      startAddressExclusive() {
        const adjust2 = BigInt("1");
        return _Address6.fromBigInt(this._startAddress() + adjust2);
      }
      /**
       * Helper function getting end address.
       * @memberof Address6
       * @instance
       * @returns {bigint}
       */
      _endAddress() {
        return BigInt(`0b${this.mask() + "1".repeat(constants6.BITS - this.subnetMask)}`);
      }
      /**
       * The last address in the range given by this address' subnet
       * Often referred to as the Broadcast
       * @memberof Address6
       * @instance
       * @returns {Address6}
       */
      endAddress() {
        return _Address6.fromBigInt(this._endAddress());
      }
      /**
       * The last host address in the range given by this address's subnet ie
       * the last address prior to the Broadcast Address
       * @memberof Address6
       * @instance
       * @returns {Address6}
       */
      endAddressExclusive() {
        const adjust2 = BigInt("1");
        return _Address6.fromBigInt(this._endAddress() - adjust2);
      }
      /**
       * Return the scope of the address
       * @memberof Address6
       * @instance
       * @returns {String}
       */
      getScope() {
        let scope = constants6.SCOPES[parseInt(this.getBits(12, 16).toString(10), 10)];
        if (this.getType() === "Global unicast" && scope !== "Link local") {
          scope = "Global";
        }
        return scope || "Unknown";
      }
      /**
       * Return the type of the address
       * @memberof Address6
       * @instance
       * @returns {String}
       */
      getType() {
        for (const subnet of Object.keys(constants6.TYPES)) {
          if (this.isInSubnet(new _Address6(subnet))) {
            return constants6.TYPES[subnet];
          }
        }
        return "Global unicast";
      }
      /**
       * Return the bits in the given range as a BigInt
       * @memberof Address6
       * @instance
       * @returns {bigint}
       */
      getBits(start2, end2) {
        return BigInt(`0b${this.getBitsBase2(start2, end2)}`);
      }
      /**
       * Return the bits in the given range as a base-2 string
       * @memberof Address6
       * @instance
       * @returns {String}
       */
      getBitsBase2(start2, end2) {
        return this.binaryZeroPad().slice(start2, end2);
      }
      /**
       * Return the bits in the given range as a base-16 string
       * @memberof Address6
       * @instance
       * @returns {String}
       */
      getBitsBase16(start2, end2) {
        const length2 = end2 - start2;
        if (length2 % 4 !== 0) {
          throw new Error("Length of bits to retrieve must be divisible by four");
        }
        return this.getBits(start2, end2).toString(16).padStart(length2 / 4, "0");
      }
      /**
       * Return the bits that are set past the subnet mask length
       * @memberof Address6
       * @instance
       * @returns {String}
       */
      getBitsPastSubnet() {
        return this.getBitsBase2(this.subnetMask, constants6.BITS);
      }
      /**
       * Return the reversed ip6.arpa form of the address
       * @memberof Address6
       * @param {Object} options
       * @param {boolean} options.omitSuffix - omit the "ip6.arpa" suffix
       * @instance
       * @returns {String}
       */
      reverseForm(options) {
        if (!options) {
          options = {};
        }
        const characters2 = Math.floor(this.subnetMask / 4);
        const reversed = this.canonicalForm().replace(/:/g, "").split("").slice(0, characters2).reverse().join(".");
        if (characters2 > 0) {
          if (options.omitSuffix) {
            return reversed;
          }
          return `${reversed}.ip6.arpa.`;
        }
        if (options.omitSuffix) {
          return "";
        }
        return "ip6.arpa.";
      }
      /**
       * Return the correct form of the address
       * @memberof Address6
       * @instance
       * @returns {String}
       */
      correctForm() {
        let i5;
        let groups = [];
        let zeroCounter = 0;
        const zeroes = [];
        for (i5 = 0; i5 < this.parsedAddress.length; i5++) {
          const value2 = parseInt(this.parsedAddress[i5], 16);
          if (value2 === 0) {
            zeroCounter++;
          }
          if (value2 !== 0 && zeroCounter > 0) {
            if (zeroCounter > 1) {
              zeroes.push([i5 - zeroCounter, i5 - 1]);
            }
            zeroCounter = 0;
          }
        }
        if (zeroCounter > 1) {
          zeroes.push([this.parsedAddress.length - zeroCounter, this.parsedAddress.length - 1]);
        }
        const zeroLengths = zeroes.map((n6) => n6[1] - n6[0] + 1);
        if (zeroes.length > 0) {
          const index2 = zeroLengths.indexOf(Math.max(...zeroLengths));
          groups = compact2(this.parsedAddress, zeroes[index2]);
        } else {
          groups = this.parsedAddress;
        }
        for (i5 = 0; i5 < groups.length; i5++) {
          if (groups[i5] !== "compact") {
            groups[i5] = parseInt(groups[i5], 16).toString(16);
          }
        }
        let correct = groups.join(":");
        correct = correct.replace(/^compact$/, "::");
        correct = correct.replace(/(^compact)|(compact$)/, ":");
        correct = correct.replace(/compact/, "");
        return correct;
      }
      /**
       * Return a zero-padded base-2 string representation of the address
       * @memberof Address6
       * @instance
       * @returns {String}
       * @example
       * var address = new Address6('2001:4860:4001:803::1011');
       * address.binaryZeroPad();
       * // '0010000000000001010010000110000001000000000000010000100000000011
       * //  0000000000000000000000000000000000000000000000000001000000010001'
       */
      binaryZeroPad() {
        return this.bigInt().toString(2).padStart(constants6.BITS, "0");
      }
      // TODO: Improve the semantics of this helper function
      parse4in6(address) {
        const groups = address.split(":");
        const lastGroup = groups.slice(-1)[0];
        const address4 = lastGroup.match(constants4.RE_ADDRESS);
        if (address4) {
          this.parsedAddress4 = address4[0];
          this.address4 = new ipv4_1.Address4(this.parsedAddress4);
          for (let i5 = 0; i5 < this.address4.groups; i5++) {
            if (/^0[0-9]+/.test(this.address4.parsedAddress[i5])) {
              throw new address_error_1.AddressError("IPv4 addresses can't have leading zeroes.", address.replace(constants4.RE_ADDRESS, this.address4.parsedAddress.map(spanLeadingZeroes4).join(".")));
            }
          }
          this.v4 = true;
          groups[groups.length - 1] = this.address4.toGroup6();
          address = groups.join(":");
        }
        return address;
      }
      // TODO: Make private?
      parse(address) {
        address = this.parse4in6(address);
        const badCharacters = address.match(constants6.RE_BAD_CHARACTERS);
        if (badCharacters) {
          throw new address_error_1.AddressError(`Bad character${badCharacters.length > 1 ? "s" : ""} detected in address: ${badCharacters.join("")}`, address.replace(constants6.RE_BAD_CHARACTERS, '<span class="parse-error">$1</span>'));
        }
        const badAddress = address.match(constants6.RE_BAD_ADDRESS);
        if (badAddress) {
          throw new address_error_1.AddressError(`Address failed regex: ${badAddress.join("")}`, address.replace(constants6.RE_BAD_ADDRESS, '<span class="parse-error">$1</span>'));
        }
        let groups = [];
        const halves = address.split("::");
        if (halves.length === 2) {
          let first = halves[0].split(":");
          let last2 = halves[1].split(":");
          if (first.length === 1 && first[0] === "") {
            first = [];
          }
          if (last2.length === 1 && last2[0] === "") {
            last2 = [];
          }
          const remaining = this.groups - (first.length + last2.length);
          if (!remaining) {
            throw new address_error_1.AddressError("Error parsing groups");
          }
          this.elidedGroups = remaining;
          this.elisionBegin = first.length;
          this.elisionEnd = first.length + this.elidedGroups;
          groups = groups.concat(first);
          for (let i5 = 0; i5 < remaining; i5++) {
            groups.push("0");
          }
          groups = groups.concat(last2);
        } else if (halves.length === 1) {
          groups = address.split(":");
          this.elidedGroups = 0;
        } else {
          throw new address_error_1.AddressError("Too many :: groups found");
        }
        groups = groups.map((group) => parseInt(group, 16).toString(16));
        if (groups.length !== this.groups) {
          throw new address_error_1.AddressError("Incorrect number of groups found");
        }
        return groups;
      }
      /**
       * Return the canonical form of the address
       * @memberof Address6
       * @instance
       * @returns {String}
       */
      canonicalForm() {
        return this.parsedAddress.map(paddedHex).join(":");
      }
      /**
       * Return the decimal form of the address
       * @memberof Address6
       * @instance
       * @returns {String}
       */
      decimal() {
        return this.parsedAddress.map((n6) => parseInt(n6, 16).toString(10).padStart(5, "0")).join(":");
      }
      /**
       * Return the address as a BigInt
       * @memberof Address6
       * @instance
       * @returns {bigint}
       */
      bigInt() {
        return BigInt(`0x${this.parsedAddress.map(paddedHex).join("")}`);
      }
      /**
       * Return the last two groups of this address as an IPv4 address string
       * @memberof Address6
       * @instance
       * @returns {Address4}
       * @example
       * var address = new Address6('2001:4860:4001::1825:bf11');
       * address.to4().correctForm(); // '24.37.191.17'
       */
      to4() {
        const binary = this.binaryZeroPad().split("");
        return ipv4_1.Address4.fromHex(BigInt(`0b${binary.slice(96, 128).join("")}`).toString(16));
      }
      /**
       * Return the v4-in-v6 form of the address
       * @memberof Address6
       * @instance
       * @returns {String}
       */
      to4in6() {
        const address4 = this.to4();
        const address6 = new _Address6(this.parsedAddress.slice(0, 6).join(":"), 6);
        const correct = address6.correctForm();
        let infix = "";
        if (!/:$/.test(correct)) {
          infix = ":";
        }
        return correct + infix + address4.address;
      }
      /**
       * Return an object containing the Teredo properties of the address
       * @memberof Address6
       * @instance
       * @returns {Object}
       */
      inspectTeredo() {
        const prefix = this.getBitsBase16(0, 32);
        const bitsForUdpPort = this.getBits(80, 96);
        const udpPort = (bitsForUdpPort ^ BigInt("0xffff")).toString();
        const server4 = ipv4_1.Address4.fromHex(this.getBitsBase16(32, 64));
        const bitsForClient4 = this.getBits(96, 128);
        const client4 = ipv4_1.Address4.fromHex((bitsForClient4 ^ BigInt("0xffffffff")).toString(16));
        const flagsBase2 = this.getBitsBase2(64, 80);
        const coneNat = (0, common_1.testBit)(flagsBase2, 15);
        const reserved = (0, common_1.testBit)(flagsBase2, 14);
        const groupIndividual = (0, common_1.testBit)(flagsBase2, 8);
        const universalLocal = (0, common_1.testBit)(flagsBase2, 9);
        const nonce = BigInt(`0b${flagsBase2.slice(2, 6) + flagsBase2.slice(8, 16)}`).toString(10);
        return {
          prefix: `${prefix.slice(0, 4)}:${prefix.slice(4, 8)}`,
          server4: server4.address,
          client4: client4.address,
          flags: flagsBase2,
          coneNat,
          microsoft: {
            reserved,
            universalLocal,
            groupIndividual,
            nonce
          },
          udpPort
        };
      }
      /**
       * Return an object containing the 6to4 properties of the address
       * @memberof Address6
       * @instance
       * @returns {Object}
       */
      inspect6to4() {
        const prefix = this.getBitsBase16(0, 16);
        const gateway = ipv4_1.Address4.fromHex(this.getBitsBase16(16, 48));
        return {
          prefix: prefix.slice(0, 4),
          gateway: gateway.address
        };
      }
      /**
       * Return a v6 6to4 address from a v6 v4inv6 address
       * @memberof Address6
       * @instance
       * @returns {Address6}
       */
      to6to4() {
        if (!this.is4()) {
          return null;
        }
        const addr6to4 = [
          "2002",
          this.getBitsBase16(96, 112),
          this.getBitsBase16(112, 128),
          "",
          "/16"
        ].join(":");
        return new _Address6(addr6to4);
      }
      /**
       * Return a byte array
       * @memberof Address6
       * @instance
       * @returns {Array}
       */
      toByteArray() {
        const valueWithoutPadding = this.bigInt().toString(16);
        const leadingPad = "0".repeat(valueWithoutPadding.length % 2);
        const value2 = `${leadingPad}${valueWithoutPadding}`;
        const bytes = [];
        for (let i5 = 0, length2 = value2.length; i5 < length2; i5 += 2) {
          bytes.push(parseInt(value2.substring(i5, i5 + 2), 16));
        }
        return bytes;
      }
      /**
       * Return an unsigned byte array
       * @memberof Address6
       * @instance
       * @returns {Array}
       */
      toUnsignedByteArray() {
        return this.toByteArray().map(unsignByte);
      }
      /**
       * Convert a byte array to an Address6 object
       * @memberof Address6
       * @static
       * @returns {Address6}
       */
      static fromByteArray(bytes) {
        return this.fromUnsignedByteArray(bytes.map(unsignByte));
      }
      /**
       * Convert an unsigned byte array to an Address6 object
       * @memberof Address6
       * @static
       * @returns {Address6}
       */
      static fromUnsignedByteArray(bytes) {
        const BYTE_MAX = BigInt("256");
        let result = BigInt("0");
        let multiplier = BigInt("1");
        for (let i5 = bytes.length - 1; i5 >= 0; i5--) {
          result += multiplier * BigInt(bytes[i5].toString(10));
          multiplier *= BYTE_MAX;
        }
        return _Address6.fromBigInt(result);
      }
      /**
       * Returns true if the address is in the canonical form, false otherwise
       * @memberof Address6
       * @instance
       * @returns {boolean}
       */
      isCanonical() {
        return this.addressMinusSuffix === this.canonicalForm();
      }
      /**
       * Returns true if the address is a link local address, false otherwise
       * @memberof Address6
       * @instance
       * @returns {boolean}
       */
      isLinkLocal() {
        if (this.getBitsBase2(0, 64) === "1111111010000000000000000000000000000000000000000000000000000000") {
          return true;
        }
        return false;
      }
      /**
       * Returns true if the address is a multicast address, false otherwise
       * @memberof Address6
       * @instance
       * @returns {boolean}
       */
      isMulticast() {
        return this.getType() === "Multicast";
      }
      /**
       * Returns true if the address is a v4-in-v6 address, false otherwise
       * @memberof Address6
       * @instance
       * @returns {boolean}
       */
      is4() {
        return this.v4;
      }
      /**
       * Returns true if the address is a Teredo address, false otherwise
       * @memberof Address6
       * @instance
       * @returns {boolean}
       */
      isTeredo() {
        return this.isInSubnet(new _Address6("2001::/32"));
      }
      /**
       * Returns true if the address is a 6to4 address, false otherwise
       * @memberof Address6
       * @instance
       * @returns {boolean}
       */
      is6to4() {
        return this.isInSubnet(new _Address6("2002::/16"));
      }
      /**
       * Returns true if the address is a loopback address, false otherwise
       * @memberof Address6
       * @instance
       * @returns {boolean}
       */
      isLoopback() {
        return this.getType() === "Loopback";
      }
      // #endregion
      // #region HTML
      /**
       * @returns {String} the address in link form with a default port of 80
       */
      href(optionalPort) {
        if (optionalPort === void 0) {
          optionalPort = "";
        } else {
          optionalPort = `:${optionalPort}`;
        }
        return `http://[${this.correctForm()}]${optionalPort}/`;
      }
      /**
       * @returns {String} a link suitable for conveying the address via a URL hash
       */
      link(options) {
        if (!options) {
          options = {};
        }
        if (options.className === void 0) {
          options.className = "";
        }
        if (options.prefix === void 0) {
          options.prefix = "/#address=";
        }
        if (options.v4 === void 0) {
          options.v4 = false;
        }
        let formFunction = this.correctForm;
        if (options.v4) {
          formFunction = this.to4in6;
        }
        const form = formFunction.call(this);
        if (options.className) {
          return `<a href="${options.prefix}${form}" class="${options.className}">${form}</a>`;
        }
        return `<a href="${options.prefix}${form}">${form}</a>`;
      }
      /**
       * Groups an address
       * @returns {String}
       */
      group() {
        if (this.elidedGroups === 0) {
          return helpers.simpleGroup(this.address).join(":");
        }
        assert3(typeof this.elidedGroups === "number");
        assert3(typeof this.elisionBegin === "number");
        const output = [];
        const [left, right] = this.address.split("::");
        if (left.length) {
          output.push(...helpers.simpleGroup(left));
        } else {
          output.push("");
        }
        const classes = ["hover-group"];
        for (let i5 = this.elisionBegin; i5 < this.elisionBegin + this.elidedGroups; i5++) {
          classes.push(`group-${i5}`);
        }
        output.push(`<span class="${classes.join(" ")}"></span>`);
        if (right.length) {
          output.push(...helpers.simpleGroup(right, this.elisionEnd));
        } else {
          output.push("");
        }
        if (this.is4()) {
          assert3(this.address4 instanceof ipv4_1.Address4);
          output.pop();
          output.push(this.address4.groupForV6());
        }
        return output.join(":");
      }
      // #endregion
      // #region Regular expressions
      /**
       * Generate a regular expression string that can be used to find or validate
       * all variations of this address
       * @memberof Address6
       * @instance
       * @param {boolean} substringSearch
       * @returns {string}
       */
      regularExpressionString(substringSearch = false) {
        let output = [];
        const address6 = new _Address6(this.correctForm());
        if (address6.elidedGroups === 0) {
          output.push((0, regular_expressions_1.simpleRegularExpression)(address6.parsedAddress));
        } else if (address6.elidedGroups === constants6.GROUPS) {
          output.push((0, regular_expressions_1.possibleElisions)(constants6.GROUPS));
        } else {
          const halves = address6.address.split("::");
          if (halves[0].length) {
            output.push((0, regular_expressions_1.simpleRegularExpression)(halves[0].split(":")));
          }
          assert3(typeof address6.elidedGroups === "number");
          output.push((0, regular_expressions_1.possibleElisions)(address6.elidedGroups, halves[0].length !== 0, halves[1].length !== 0));
          if (halves[1].length) {
            output.push((0, regular_expressions_1.simpleRegularExpression)(halves[1].split(":")));
          }
          output = [output.join(":")];
        }
        if (!substringSearch) {
          output = [
            "(?=^|",
            regular_expressions_1.ADDRESS_BOUNDARY,
            "|[^\\w\\:])(",
            ...output,
            ")(?=[^\\w\\:]|",
            regular_expressions_1.ADDRESS_BOUNDARY,
            "|$)"
          ];
        }
        return output.join("");
      }
      /**
       * Generate a regular expression that can be used to find or validate all
       * variations of this address.
       * @memberof Address6
       * @instance
       * @param {boolean} substringSearch
       * @returns {RegExp}
       */
      regularExpression(substringSearch = false) {
        return new RegExp(this.regularExpressionString(substringSearch), "i");
      }
    };
    exports.Address6 = Address6;
  }
});

// ../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/ip-address.js
var require_ip_address = __commonJS({
  "../../node_modules/.pnpm/ip-address@10.1.0/node_modules/ip-address/dist/ip-address.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.v6 = exports.AddressError = exports.Address6 = exports.Address4 = void 0;
    var ipv4_1 = require_ipv4();
    Object.defineProperty(exports, "Address4", { enumerable: true, get: function() {
      return ipv4_1.Address4;
    } });
    var ipv6_1 = require_ipv6();
    Object.defineProperty(exports, "Address6", { enumerable: true, get: function() {
      return ipv6_1.Address6;
    } });
    var address_error_1 = require_address_error();
    Object.defineProperty(exports, "AddressError", { enumerable: true, get: function() {
      return address_error_1.AddressError;
    } });
    var helpers = __importStar2(require_helpers3());
    exports.v6 = { helpers };
  }
});

// ../../node_modules/.pnpm/socks@2.8.7/node_modules/socks/build/common/helpers.js
var require_helpers4 = __commonJS({
  "../../node_modules/.pnpm/socks@2.8.7/node_modules/socks/build/common/helpers.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ipToBuffer = exports.int32ToIpv4 = exports.ipv4ToInt32 = exports.validateSocksClientChainOptions = exports.validateSocksClientOptions = void 0;
    var util_1 = require_util3();
    var constants_1 = require_constants5();
    var stream7 = __require("stream");
    var ip_address_1 = require_ip_address();
    var net2 = __require("net");
    function validateSocksClientOptions(options, acceptedCommands = ["connect", "bind", "associate"]) {
      if (!constants_1.SocksCommand[options.command]) {
        throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksCommand, options);
      }
      if (acceptedCommands.indexOf(options.command) === -1) {
        throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksCommandForOperation, options);
      }
      if (!isValidSocksRemoteHost(options.destination)) {
        throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsDestination, options);
      }
      if (!isValidSocksProxy(options.proxy)) {
        throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsProxy, options);
      }
      validateCustomProxyAuth(options.proxy, options);
      if (options.timeout && !isValidTimeoutValue(options.timeout)) {
        throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsTimeout, options);
      }
      if (options.existing_socket && !(options.existing_socket instanceof stream7.Duplex)) {
        throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsExistingSocket, options);
      }
    }
    exports.validateSocksClientOptions = validateSocksClientOptions;
    function validateSocksClientChainOptions(options) {
      if (options.command !== "connect") {
        throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksCommandChain, options);
      }
      if (!isValidSocksRemoteHost(options.destination)) {
        throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsDestination, options);
      }
      if (!(options.proxies && Array.isArray(options.proxies) && options.proxies.length >= 2)) {
        throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsProxiesLength, options);
      }
      options.proxies.forEach((proxy) => {
        if (!isValidSocksProxy(proxy)) {
          throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsProxy, options);
        }
        validateCustomProxyAuth(proxy, options);
      });
      if (options.timeout && !isValidTimeoutValue(options.timeout)) {
        throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsTimeout, options);
      }
    }
    exports.validateSocksClientChainOptions = validateSocksClientChainOptions;
    function validateCustomProxyAuth(proxy, options) {
      if (proxy.custom_auth_method !== void 0) {
        if (proxy.custom_auth_method < constants_1.SOCKS5_CUSTOM_AUTH_START || proxy.custom_auth_method > constants_1.SOCKS5_CUSTOM_AUTH_END) {
          throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsCustomAuthRange, options);
        }
        if (proxy.custom_auth_request_handler === void 0 || typeof proxy.custom_auth_request_handler !== "function") {
          throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsCustomAuthOptions, options);
        }
        if (proxy.custom_auth_response_size === void 0) {
          throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsCustomAuthOptions, options);
        }
        if (proxy.custom_auth_response_handler === void 0 || typeof proxy.custom_auth_response_handler !== "function") {
          throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsCustomAuthOptions, options);
        }
      }
    }
    function isValidSocksRemoteHost(remoteHost) {
      return remoteHost && typeof remoteHost.host === "string" && Buffer.byteLength(remoteHost.host) < 256 && typeof remoteHost.port === "number" && remoteHost.port >= 0 && remoteHost.port <= 65535;
    }
    function isValidSocksProxy(proxy) {
      return proxy && (typeof proxy.host === "string" || typeof proxy.ipaddress === "string") && typeof proxy.port === "number" && proxy.port >= 0 && proxy.port <= 65535 && (proxy.type === 4 || proxy.type === 5);
    }
    function isValidTimeoutValue(value2) {
      return typeof value2 === "number" && value2 > 0;
    }
    function ipv4ToInt32(ip) {
      const address = new ip_address_1.Address4(ip);
      return address.toArray().reduce((acc, part) => (acc << 8) + part, 0) >>> 0;
    }
    exports.ipv4ToInt32 = ipv4ToInt32;
    function int32ToIpv4(int322) {
      const octet1 = int322 >>> 24 & 255;
      const octet2 = int322 >>> 16 & 255;
      const octet3 = int322 >>> 8 & 255;
      const octet4 = int322 & 255;
      return [octet1, octet2, octet3, octet4].join(".");
    }
    exports.int32ToIpv4 = int32ToIpv4;
    function ipToBuffer(ip) {
      if (net2.isIPv4(ip)) {
        const address = new ip_address_1.Address4(ip);
        return Buffer.from(address.toArray());
      } else if (net2.isIPv6(ip)) {
        const address = new ip_address_1.Address6(ip);
        return Buffer.from(address.canonicalForm().split(":").map((segment) => segment.padStart(4, "0")).join(""), "hex");
      } else {
        throw new Error("Invalid IP address format");
      }
    }
    exports.ipToBuffer = ipToBuffer;
  }
});

// ../../node_modules/.pnpm/socks@2.8.7/node_modules/socks/build/common/receivebuffer.js
var require_receivebuffer = __commonJS({
  "../../node_modules/.pnpm/socks@2.8.7/node_modules/socks/build/common/receivebuffer.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ReceiveBuffer = void 0;
    var ReceiveBuffer = class {
      constructor(size = 4096) {
        this.buffer = Buffer.allocUnsafe(size);
        this.offset = 0;
        this.originalSize = size;
      }
      get length() {
        return this.offset;
      }
      append(data2) {
        if (!Buffer.isBuffer(data2)) {
          throw new Error("Attempted to append a non-buffer instance to ReceiveBuffer.");
        }
        if (this.offset + data2.length >= this.buffer.length) {
          const tmp = this.buffer;
          this.buffer = Buffer.allocUnsafe(Math.max(this.buffer.length + this.originalSize, this.buffer.length + data2.length));
          tmp.copy(this.buffer);
        }
        data2.copy(this.buffer, this.offset);
        return this.offset += data2.length;
      }
      peek(length2) {
        if (length2 > this.offset) {
          throw new Error("Attempted to read beyond the bounds of the managed internal data.");
        }
        return this.buffer.slice(0, length2);
      }
      get(length2) {
        if (length2 > this.offset) {
          throw new Error("Attempted to read beyond the bounds of the managed internal data.");
        }
        const value2 = Buffer.allocUnsafe(length2);
        this.buffer.slice(0, length2).copy(value2);
        this.buffer.copyWithin(0, length2, length2 + this.offset - length2);
        this.offset -= length2;
        return value2;
      }
    };
    exports.ReceiveBuffer = ReceiveBuffer;
  }
});

// ../../node_modules/.pnpm/socks@2.8.7/node_modules/socks/build/client/socksclient.js
var require_socksclient = __commonJS({
  "../../node_modules/.pnpm/socks@2.8.7/node_modules/socks/build/client/socksclient.js"(exports) {
    "use strict";
    var __awaiter2 = exports && exports.__awaiter || function(thisArg, _arguments, P, generator2) {
      function adopt(value2) {
        return value2 instanceof P ? value2 : new P(function(resolve4) {
          resolve4(value2);
        });
      }
      return new (P || (P = Promise))(function(resolve4, reject) {
        function fulfilled(value2) {
          try {
            step(generator2.next(value2));
          } catch (e4) {
            reject(e4);
          }
        }
        function rejected(value2) {
          try {
            step(generator2["throw"](value2));
          } catch (e4) {
            reject(e4);
          }
        }
        function step(result) {
          result.done ? resolve4(result.value) : adopt(result.value).then(fulfilled, rejected);
        }
        step((generator2 = generator2.apply(thisArg, _arguments || [])).next());
      });
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.SocksClientError = exports.SocksClient = void 0;
    var events_1 = __require("events");
    var net2 = __require("net");
    var smart_buffer_1 = require_smartbuffer();
    var constants_1 = require_constants5();
    var helpers_1 = require_helpers4();
    var receivebuffer_1 = require_receivebuffer();
    var util_1 = require_util3();
    Object.defineProperty(exports, "SocksClientError", { enumerable: true, get: function() {
      return util_1.SocksClientError;
    } });
    var ip_address_1 = require_ip_address();
    var SocksClient = class _SocksClient extends events_1.EventEmitter {
      constructor(options) {
        super();
        this.options = Object.assign({}, options);
        (0, helpers_1.validateSocksClientOptions)(options);
        this.setState(constants_1.SocksClientState.Created);
      }
      /**
       * Creates a new SOCKS connection.
       *
       * Note: Supports callbacks and promises. Only supports the connect command.
       * @param options { SocksClientOptions } Options.
       * @param callback { Function } An optional callback function.
       * @returns { Promise }
       */
      static createConnection(options, callback) {
        return new Promise((resolve4, reject) => {
          try {
            (0, helpers_1.validateSocksClientOptions)(options, ["connect"]);
          } catch (err2) {
            if (typeof callback === "function") {
              callback(err2);
              return resolve4(err2);
            } else {
              return reject(err2);
            }
          }
          const client = new _SocksClient(options);
          client.connect(options.existing_socket);
          client.once("established", (info) => {
            client.removeAllListeners();
            if (typeof callback === "function") {
              callback(null, info);
              resolve4(info);
            } else {
              resolve4(info);
            }
          });
          client.once("error", (err2) => {
            client.removeAllListeners();
            if (typeof callback === "function") {
              callback(err2);
              resolve4(err2);
            } else {
              reject(err2);
            }
          });
        });
      }
      /**
       * Creates a new SOCKS connection chain to a destination host through 2 or more SOCKS proxies.
       *
       * Note: Supports callbacks and promises. Only supports the connect method.
       * Note: Implemented via createConnection() factory function.
       * @param options { SocksClientChainOptions } Options
       * @param callback { Function } An optional callback function.
       * @returns { Promise }
       */
      static createConnectionChain(options, callback) {
        return new Promise((resolve4, reject) => __awaiter2(this, void 0, void 0, function* () {
          try {
            (0, helpers_1.validateSocksClientChainOptions)(options);
          } catch (err2) {
            if (typeof callback === "function") {
              callback(err2);
              return resolve4(err2);
            } else {
              return reject(err2);
            }
          }
          if (options.randomizeChain) {
            (0, util_1.shuffleArray)(options.proxies);
          }
          try {
            let sock;
            for (let i5 = 0; i5 < options.proxies.length; i5++) {
              const nextProxy = options.proxies[i5];
              const nextDestination = i5 === options.proxies.length - 1 ? options.destination : {
                host: options.proxies[i5 + 1].host || options.proxies[i5 + 1].ipaddress,
                port: options.proxies[i5 + 1].port
              };
              const result = yield _SocksClient.createConnection({
                command: "connect",
                proxy: nextProxy,
                destination: nextDestination,
                existing_socket: sock
              });
              sock = sock || result.socket;
            }
            if (typeof callback === "function") {
              callback(null, { socket: sock });
              resolve4({ socket: sock });
            } else {
              resolve4({ socket: sock });
            }
          } catch (err2) {
            if (typeof callback === "function") {
              callback(err2);
              resolve4(err2);
            } else {
              reject(err2);
            }
          }
        }));
      }
      /**
       * Creates a SOCKS UDP Frame.
       * @param options
       */
      static createUDPFrame(options) {
        const buff = new smart_buffer_1.SmartBuffer();
        buff.writeUInt16BE(0);
        buff.writeUInt8(options.frameNumber || 0);
        if (net2.isIPv4(options.remoteHost.host)) {
          buff.writeUInt8(constants_1.Socks5HostType.IPv4);
          buff.writeUInt32BE((0, helpers_1.ipv4ToInt32)(options.remoteHost.host));
        } else if (net2.isIPv6(options.remoteHost.host)) {
          buff.writeUInt8(constants_1.Socks5HostType.IPv6);
          buff.writeBuffer((0, helpers_1.ipToBuffer)(options.remoteHost.host));
        } else {
          buff.writeUInt8(constants_1.Socks5HostType.Hostname);
          buff.writeUInt8(Buffer.byteLength(options.remoteHost.host));
          buff.writeString(options.remoteHost.host);
        }
        buff.writeUInt16BE(options.remoteHost.port);
        buff.writeBuffer(options.data);
        return buff.toBuffer();
      }
      /**
       * Parses a SOCKS UDP frame.
       * @param data
       */
      static parseUDPFrame(data2) {
        const buff = smart_buffer_1.SmartBuffer.fromBuffer(data2);
        buff.readOffset = 2;
        const frameNumber = buff.readUInt8();
        const hostType = buff.readUInt8();
        let remoteHost;
        if (hostType === constants_1.Socks5HostType.IPv4) {
          remoteHost = (0, helpers_1.int32ToIpv4)(buff.readUInt32BE());
        } else if (hostType === constants_1.Socks5HostType.IPv6) {
          remoteHost = ip_address_1.Address6.fromByteArray(Array.from(buff.readBuffer(16))).canonicalForm();
        } else {
          remoteHost = buff.readString(buff.readUInt8());
        }
        const remotePort = buff.readUInt16BE();
        return {
          frameNumber,
          remoteHost: {
            host: remoteHost,
            port: remotePort
          },
          data: buff.readBuffer()
        };
      }
      /**
       * Internal state setter. If the SocksClient is in an error state, it cannot be changed to a non error state.
       */
      setState(newState) {
        if (this.state !== constants_1.SocksClientState.Error) {
          this.state = newState;
        }
      }
      /**
       * Starts the connection establishment to the proxy and destination.
       * @param existingSocket Connected socket to use instead of creating a new one (internal use).
       */
      connect(existingSocket) {
        this.onDataReceived = (data2) => this.onDataReceivedHandler(data2);
        this.onClose = () => this.onCloseHandler();
        this.onError = (err2) => this.onErrorHandler(err2);
        this.onConnect = () => this.onConnectHandler();
        const timer2 = setTimeout(() => this.onEstablishedTimeout(), this.options.timeout || constants_1.DEFAULT_TIMEOUT);
        if (timer2.unref && typeof timer2.unref === "function") {
          timer2.unref();
        }
        if (existingSocket) {
          this.socket = existingSocket;
        } else {
          this.socket = new net2.Socket();
        }
        this.socket.once("close", this.onClose);
        this.socket.once("error", this.onError);
        this.socket.once("connect", this.onConnect);
        this.socket.on("data", this.onDataReceived);
        this.setState(constants_1.SocksClientState.Connecting);
        this.receiveBuffer = new receivebuffer_1.ReceiveBuffer();
        if (existingSocket) {
          this.socket.emit("connect");
        } else {
          this.socket.connect(this.getSocketOptions());
          if (this.options.set_tcp_nodelay !== void 0 && this.options.set_tcp_nodelay !== null) {
            this.socket.setNoDelay(!!this.options.set_tcp_nodelay);
          }
        }
        this.prependOnceListener("established", (info) => {
          setImmediate(() => {
            if (this.receiveBuffer.length > 0) {
              const excessData = this.receiveBuffer.get(this.receiveBuffer.length);
              info.socket.emit("data", excessData);
            }
            info.socket.resume();
          });
        });
      }
      // Socket options (defaults host/port to options.proxy.host/options.proxy.port)
      getSocketOptions() {
        return Object.assign(Object.assign({}, this.options.socket_options), { host: this.options.proxy.host || this.options.proxy.ipaddress, port: this.options.proxy.port });
      }
      /**
       * Handles internal Socks timeout callback.
       * Note: If the Socks client is not BoundWaitingForConnection or Established, the connection will be closed.
       */
      onEstablishedTimeout() {
        if (this.state !== constants_1.SocksClientState.Established && this.state !== constants_1.SocksClientState.BoundWaitingForConnection) {
          this.closeSocket(constants_1.ERRORS.ProxyConnectionTimedOut);
        }
      }
      /**
       * Handles Socket connect event.
       */
      onConnectHandler() {
        this.setState(constants_1.SocksClientState.Connected);
        if (this.options.proxy.type === 4) {
          this.sendSocks4InitialHandshake();
        } else {
          this.sendSocks5InitialHandshake();
        }
        this.setState(constants_1.SocksClientState.SentInitialHandshake);
      }
      /**
       * Handles Socket data event.
       * @param data
       */
      onDataReceivedHandler(data2) {
        this.receiveBuffer.append(data2);
        this.processData();
      }
      /**
       * Handles processing of the data we have received.
       */
      processData() {
        while (this.state !== constants_1.SocksClientState.Established && this.state !== constants_1.SocksClientState.Error && this.receiveBuffer.length >= this.nextRequiredPacketBufferSize) {
          if (this.state === constants_1.SocksClientState.SentInitialHandshake) {
            if (this.options.proxy.type === 4) {
              this.handleSocks4FinalHandshakeResponse();
            } else {
              this.handleInitialSocks5HandshakeResponse();
            }
          } else if (this.state === constants_1.SocksClientState.SentAuthentication) {
            this.handleInitialSocks5AuthenticationHandshakeResponse();
          } else if (this.state === constants_1.SocksClientState.SentFinalHandshake) {
            this.handleSocks5FinalHandshakeResponse();
          } else if (this.state === constants_1.SocksClientState.BoundWaitingForConnection) {
            if (this.options.proxy.type === 4) {
              this.handleSocks4IncomingConnectionResponse();
            } else {
              this.handleSocks5IncomingConnectionResponse();
            }
          } else {
            this.closeSocket(constants_1.ERRORS.InternalError);
            break;
          }
        }
      }
      /**
       * Handles Socket close event.
       * @param had_error
       */
      onCloseHandler() {
        this.closeSocket(constants_1.ERRORS.SocketClosed);
      }
      /**
       * Handles Socket error event.
       * @param err
       */
      onErrorHandler(err2) {
        this.closeSocket(err2.message);
      }
      /**
       * Removes internal event listeners on the underlying Socket.
       */
      removeInternalSocketHandlers() {
        this.socket.pause();
        this.socket.removeListener("data", this.onDataReceived);
        this.socket.removeListener("close", this.onClose);
        this.socket.removeListener("error", this.onError);
        this.socket.removeListener("connect", this.onConnect);
      }
      /**
       * Closes and destroys the underlying Socket. Emits an error event.
       * @param err { String } An error string to include in error event.
       */
      closeSocket(err2) {
        if (this.state !== constants_1.SocksClientState.Error) {
          this.setState(constants_1.SocksClientState.Error);
          this.socket.destroy();
          this.removeInternalSocketHandlers();
          this.emit("error", new util_1.SocksClientError(err2, this.options));
        }
      }
      /**
       * Sends initial Socks v4 handshake request.
       */
      sendSocks4InitialHandshake() {
        const userId = this.options.proxy.userId || "";
        const buff = new smart_buffer_1.SmartBuffer();
        buff.writeUInt8(4);
        buff.writeUInt8(constants_1.SocksCommand[this.options.command]);
        buff.writeUInt16BE(this.options.destination.port);
        if (net2.isIPv4(this.options.destination.host)) {
          buff.writeBuffer((0, helpers_1.ipToBuffer)(this.options.destination.host));
          buff.writeStringNT(userId);
        } else {
          buff.writeUInt8(0);
          buff.writeUInt8(0);
          buff.writeUInt8(0);
          buff.writeUInt8(1);
          buff.writeStringNT(userId);
          buff.writeStringNT(this.options.destination.host);
        }
        this.nextRequiredPacketBufferSize = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks4Response;
        this.socket.write(buff.toBuffer());
      }
      /**
       * Handles Socks v4 handshake response.
       * @param data
       */
      handleSocks4FinalHandshakeResponse() {
        const data2 = this.receiveBuffer.get(8);
        if (data2[1] !== constants_1.Socks4Response.Granted) {
          this.closeSocket(`${constants_1.ERRORS.Socks4ProxyRejectedConnection} - (${constants_1.Socks4Response[data2[1]]})`);
        } else {
          if (constants_1.SocksCommand[this.options.command] === constants_1.SocksCommand.bind) {
            const buff = smart_buffer_1.SmartBuffer.fromBuffer(data2);
            buff.readOffset = 2;
            const remoteHost = {
              port: buff.readUInt16BE(),
              host: (0, helpers_1.int32ToIpv4)(buff.readUInt32BE())
            };
            if (remoteHost.host === "0.0.0.0") {
              remoteHost.host = this.options.proxy.ipaddress;
            }
            this.setState(constants_1.SocksClientState.BoundWaitingForConnection);
            this.emit("bound", { remoteHost, socket: this.socket });
          } else {
            this.setState(constants_1.SocksClientState.Established);
            this.removeInternalSocketHandlers();
            this.emit("established", { socket: this.socket });
          }
        }
      }
      /**
       * Handles Socks v4 incoming connection request (BIND)
       * @param data
       */
      handleSocks4IncomingConnectionResponse() {
        const data2 = this.receiveBuffer.get(8);
        if (data2[1] !== constants_1.Socks4Response.Granted) {
          this.closeSocket(`${constants_1.ERRORS.Socks4ProxyRejectedIncomingBoundConnection} - (${constants_1.Socks4Response[data2[1]]})`);
        } else {
          const buff = smart_buffer_1.SmartBuffer.fromBuffer(data2);
          buff.readOffset = 2;
          const remoteHost = {
            port: buff.readUInt16BE(),
            host: (0, helpers_1.int32ToIpv4)(buff.readUInt32BE())
          };
          this.setState(constants_1.SocksClientState.Established);
          this.removeInternalSocketHandlers();
          this.emit("established", { remoteHost, socket: this.socket });
        }
      }
      /**
       * Sends initial Socks v5 handshake request.
       */
      sendSocks5InitialHandshake() {
        const buff = new smart_buffer_1.SmartBuffer();
        const supportedAuthMethods = [constants_1.Socks5Auth.NoAuth];
        if (this.options.proxy.userId || this.options.proxy.password) {
          supportedAuthMethods.push(constants_1.Socks5Auth.UserPass);
        }
        if (this.options.proxy.custom_auth_method !== void 0) {
          supportedAuthMethods.push(this.options.proxy.custom_auth_method);
        }
        buff.writeUInt8(5);
        buff.writeUInt8(supportedAuthMethods.length);
        for (const authMethod of supportedAuthMethods) {
          buff.writeUInt8(authMethod);
        }
        this.nextRequiredPacketBufferSize = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5InitialHandshakeResponse;
        this.socket.write(buff.toBuffer());
        this.setState(constants_1.SocksClientState.SentInitialHandshake);
      }
      /**
       * Handles initial Socks v5 handshake response.
       * @param data
       */
      handleInitialSocks5HandshakeResponse() {
        const data2 = this.receiveBuffer.get(2);
        if (data2[0] !== 5) {
          this.closeSocket(constants_1.ERRORS.InvalidSocks5IntiailHandshakeSocksVersion);
        } else if (data2[1] === constants_1.SOCKS5_NO_ACCEPTABLE_AUTH) {
          this.closeSocket(constants_1.ERRORS.InvalidSocks5InitialHandshakeNoAcceptedAuthType);
        } else {
          if (data2[1] === constants_1.Socks5Auth.NoAuth) {
            this.socks5ChosenAuthType = constants_1.Socks5Auth.NoAuth;
            this.sendSocks5CommandRequest();
          } else if (data2[1] === constants_1.Socks5Auth.UserPass) {
            this.socks5ChosenAuthType = constants_1.Socks5Auth.UserPass;
            this.sendSocks5UserPassAuthentication();
          } else if (data2[1] === this.options.proxy.custom_auth_method) {
            this.socks5ChosenAuthType = this.options.proxy.custom_auth_method;
            this.sendSocks5CustomAuthentication();
          } else {
            this.closeSocket(constants_1.ERRORS.InvalidSocks5InitialHandshakeUnknownAuthType);
          }
        }
      }
      /**
       * Sends Socks v5 user & password auth handshake.
       *
       * Note: No auth and user/pass are currently supported.
       */
      sendSocks5UserPassAuthentication() {
        const userId = this.options.proxy.userId || "";
        const password = this.options.proxy.password || "";
        const buff = new smart_buffer_1.SmartBuffer();
        buff.writeUInt8(1);
        buff.writeUInt8(Buffer.byteLength(userId));
        buff.writeString(userId);
        buff.writeUInt8(Buffer.byteLength(password));
        buff.writeString(password);
        this.nextRequiredPacketBufferSize = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5UserPassAuthenticationResponse;
        this.socket.write(buff.toBuffer());
        this.setState(constants_1.SocksClientState.SentAuthentication);
      }
      sendSocks5CustomAuthentication() {
        return __awaiter2(this, void 0, void 0, function* () {
          this.nextRequiredPacketBufferSize = this.options.proxy.custom_auth_response_size;
          this.socket.write(yield this.options.proxy.custom_auth_request_handler());
          this.setState(constants_1.SocksClientState.SentAuthentication);
        });
      }
      handleSocks5CustomAuthHandshakeResponse(data2) {
        return __awaiter2(this, void 0, void 0, function* () {
          return yield this.options.proxy.custom_auth_response_handler(data2);
        });
      }
      handleSocks5AuthenticationNoAuthHandshakeResponse(data2) {
        return __awaiter2(this, void 0, void 0, function* () {
          return data2[1] === 0;
        });
      }
      handleSocks5AuthenticationUserPassHandshakeResponse(data2) {
        return __awaiter2(this, void 0, void 0, function* () {
          return data2[1] === 0;
        });
      }
      /**
       * Handles Socks v5 auth handshake response.
       * @param data
       */
      handleInitialSocks5AuthenticationHandshakeResponse() {
        return __awaiter2(this, void 0, void 0, function* () {
          this.setState(constants_1.SocksClientState.ReceivedAuthenticationResponse);
          let authResult = false;
          if (this.socks5ChosenAuthType === constants_1.Socks5Auth.NoAuth) {
            authResult = yield this.handleSocks5AuthenticationNoAuthHandshakeResponse(this.receiveBuffer.get(2));
          } else if (this.socks5ChosenAuthType === constants_1.Socks5Auth.UserPass) {
            authResult = yield this.handleSocks5AuthenticationUserPassHandshakeResponse(this.receiveBuffer.get(2));
          } else if (this.socks5ChosenAuthType === this.options.proxy.custom_auth_method) {
            authResult = yield this.handleSocks5CustomAuthHandshakeResponse(this.receiveBuffer.get(this.options.proxy.custom_auth_response_size));
          }
          if (!authResult) {
            this.closeSocket(constants_1.ERRORS.Socks5AuthenticationFailed);
          } else {
            this.sendSocks5CommandRequest();
          }
        });
      }
      /**
       * Sends Socks v5 final handshake request.
       */
      sendSocks5CommandRequest() {
        const buff = new smart_buffer_1.SmartBuffer();
        buff.writeUInt8(5);
        buff.writeUInt8(constants_1.SocksCommand[this.options.command]);
        buff.writeUInt8(0);
        if (net2.isIPv4(this.options.destination.host)) {
          buff.writeUInt8(constants_1.Socks5HostType.IPv4);
          buff.writeBuffer((0, helpers_1.ipToBuffer)(this.options.destination.host));
        } else if (net2.isIPv6(this.options.destination.host)) {
          buff.writeUInt8(constants_1.Socks5HostType.IPv6);
          buff.writeBuffer((0, helpers_1.ipToBuffer)(this.options.destination.host));
        } else {
          buff.writeUInt8(constants_1.Socks5HostType.Hostname);
          buff.writeUInt8(this.options.destination.host.length);
          buff.writeString(this.options.destination.host);
        }
        buff.writeUInt16BE(this.options.destination.port);
        this.nextRequiredPacketBufferSize = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHeader;
        this.socket.write(buff.toBuffer());
        this.setState(constants_1.SocksClientState.SentFinalHandshake);
      }
      /**
       * Handles Socks v5 final handshake response.
       * @param data
       */
      handleSocks5FinalHandshakeResponse() {
        const header = this.receiveBuffer.peek(5);
        if (header[0] !== 5 || header[1] !== constants_1.Socks5Response.Granted) {
          this.closeSocket(`${constants_1.ERRORS.InvalidSocks5FinalHandshakeRejected} - ${constants_1.Socks5Response[header[1]]}`);
        } else {
          const addressType = header[3];
          let remoteHost;
          let buff;
          if (addressType === constants_1.Socks5HostType.IPv4) {
            const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv4;
            if (this.receiveBuffer.length < dataNeeded) {
              this.nextRequiredPacketBufferSize = dataNeeded;
              return;
            }
            buff = smart_buffer_1.SmartBuffer.fromBuffer(this.receiveBuffer.get(dataNeeded).slice(4));
            remoteHost = {
              host: (0, helpers_1.int32ToIpv4)(buff.readUInt32BE()),
              port: buff.readUInt16BE()
            };
            if (remoteHost.host === "0.0.0.0") {
              remoteHost.host = this.options.proxy.ipaddress;
            }
          } else if (addressType === constants_1.Socks5HostType.Hostname) {
            const hostLength = header[4];
            const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHostname(hostLength);
            if (this.receiveBuffer.length < dataNeeded) {
              this.nextRequiredPacketBufferSize = dataNeeded;
              return;
            }
            buff = smart_buffer_1.SmartBuffer.fromBuffer(this.receiveBuffer.get(dataNeeded).slice(5));
            remoteHost = {
              host: buff.readString(hostLength),
              port: buff.readUInt16BE()
            };
          } else if (addressType === constants_1.Socks5HostType.IPv6) {
            const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv6;
            if (this.receiveBuffer.length < dataNeeded) {
              this.nextRequiredPacketBufferSize = dataNeeded;
              return;
            }
            buff = smart_buffer_1.SmartBuffer.fromBuffer(this.receiveBuffer.get(dataNeeded).slice(4));
            remoteHost = {
              host: ip_address_1.Address6.fromByteArray(Array.from(buff.readBuffer(16))).canonicalForm(),
              port: buff.readUInt16BE()
            };
          }
          this.setState(constants_1.SocksClientState.ReceivedFinalResponse);
          if (constants_1.SocksCommand[this.options.command] === constants_1.SocksCommand.connect) {
            this.setState(constants_1.SocksClientState.Established);
            this.removeInternalSocketHandlers();
            this.emit("established", { remoteHost, socket: this.socket });
          } else if (constants_1.SocksCommand[this.options.command] === constants_1.SocksCommand.bind) {
            this.setState(constants_1.SocksClientState.BoundWaitingForConnection);
            this.nextRequiredPacketBufferSize = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHeader;
            this.emit("bound", { remoteHost, socket: this.socket });
          } else if (constants_1.SocksCommand[this.options.command] === constants_1.SocksCommand.associate) {
            this.setState(constants_1.SocksClientState.Established);
            this.removeInternalSocketHandlers();
            this.emit("established", {
              remoteHost,
              socket: this.socket
            });
          }
        }
      }
      /**
       * Handles Socks v5 incoming connection request (BIND).
       */
      handleSocks5IncomingConnectionResponse() {
        const header = this.receiveBuffer.peek(5);
        if (header[0] !== 5 || header[1] !== constants_1.Socks5Response.Granted) {
          this.closeSocket(`${constants_1.ERRORS.Socks5ProxyRejectedIncomingBoundConnection} - ${constants_1.Socks5Response[header[1]]}`);
        } else {
          const addressType = header[3];
          let remoteHost;
          let buff;
          if (addressType === constants_1.Socks5HostType.IPv4) {
            const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv4;
            if (this.receiveBuffer.length < dataNeeded) {
              this.nextRequiredPacketBufferSize = dataNeeded;
              return;
            }
            buff = smart_buffer_1.SmartBuffer.fromBuffer(this.receiveBuffer.get(dataNeeded).slice(4));
            remoteHost = {
              host: (0, helpers_1.int32ToIpv4)(buff.readUInt32BE()),
              port: buff.readUInt16BE()
            };
            if (remoteHost.host === "0.0.0.0") {
              remoteHost.host = this.options.proxy.ipaddress;
            }
          } else if (addressType === constants_1.Socks5HostType.Hostname) {
            const hostLength = header[4];
            const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHostname(hostLength);
            if (this.receiveBuffer.length < dataNeeded) {
              this.nextRequiredPacketBufferSize = dataNeeded;
              return;
            }
            buff = smart_buffer_1.SmartBuffer.fromBuffer(this.receiveBuffer.get(dataNeeded).slice(5));
            remoteHost = {
              host: buff.readString(hostLength),
              port: buff.readUInt16BE()
            };
          } else if (addressType === constants_1.Socks5HostType.IPv6) {
            const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv6;
            if (this.receiveBuffer.length < dataNeeded) {
              this.nextRequiredPacketBufferSize = dataNeeded;
              return;
            }
            buff = smart_buffer_1.SmartBuffer.fromBuffer(this.receiveBuffer.get(dataNeeded).slice(4));
            remoteHost = {
              host: ip_address_1.Address6.fromByteArray(Array.from(buff.readBuffer(16))).canonicalForm(),
              port: buff.readUInt16BE()
            };
          }
          this.setState(constants_1.SocksClientState.Established);
          this.removeInternalSocketHandlers();
          this.emit("established", { remoteHost, socket: this.socket });
        }
      }
      get socksClientOptions() {
        return Object.assign({}, this.options);
      }
    };
    exports.SocksClient = SocksClient;
  }
});

// ../../node_modules/.pnpm/socks@2.8.7/node_modules/socks/build/index.js
var require_build = __commonJS({
  "../../node_modules/.pnpm/socks@2.8.7/node_modules/socks/build/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __exportStar2 = exports && exports.__exportStar || function(m3, exports2) {
      for (var p3 in m3) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p3)) __createBinding2(exports2, m3, p3);
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    __exportStar2(require_socksclient(), exports);
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/chain_socks.js
var require_chain_socks = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/chain_socks.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.chainSocks = void 0;
    var node_url_1 = __require("node:url");
    var socks_1 = require_build();
    var statuses_1 = require_statuses2();
    var count_target_bytes_1 = require_count_target_bytes();
    var socksProtocolToVersionNumber = (protocol) => {
      switch (protocol) {
        case "socks4:":
        case "socks4a:":
          return 4;
        default:
          return 5;
      }
    };
    var chainSocks = async ({ request, sourceSocket, head, server, handlerOpts }) => {
      const { proxyChainId } = sourceSocket;
      const { hostname, port, username, password } = handlerOpts.upstreamProxyUrlParsed;
      const proxy = {
        host: hostname,
        port: Number(port),
        type: socksProtocolToVersionNumber(handlerOpts.upstreamProxyUrlParsed.protocol),
        userId: decodeURIComponent(username),
        password: decodeURIComponent(password)
      };
      if (head && head.length > 0) {
        sourceSocket.unshift(head);
      }
      const url3 = new node_url_1.URL(`connect://${request.url}`);
      const destination = {
        port: Number(url3.port),
        host: url3.hostname
      };
      let targetSocket;
      try {
        const client = await socks_1.SocksClient.createConnection({
          proxy,
          command: "connect",
          destination
        });
        targetSocket = client.socket;
        sourceSocket.write(`HTTP/1.1 200 Connection Established\r
\r
`);
      } catch (error) {
        const socksError = error;
        server.log(proxyChainId, `Failed to connect to upstream SOCKS proxy ${socksError.stack}`);
        sourceSocket.end((0, statuses_1.createCustomStatusHttpResponse)((0, statuses_1.socksErrorMessageToStatusCode)(socksError.message), socksError.message));
        return;
      }
      (0, count_target_bytes_1.countTargetBytes)(sourceSocket, targetSocket);
      sourceSocket.pipe(targetSocket);
      targetSocket.pipe(sourceSocket);
      targetSocket.on("close", () => {
        sourceSocket.resume();
        if (sourceSocket.writable) {
          sourceSocket.end();
        }
      });
      sourceSocket.on("close", () => {
        targetSocket.resume();
        if (targetSocket.writable) {
          targetSocket.end();
        }
      });
      targetSocket.on("error", (error) => {
        server.log(proxyChainId, `Chain SOCKS Destination Socket Error: ${error.stack}`);
        sourceSocket.destroy();
      });
      sourceSocket.on("error", (error) => {
        server.log(proxyChainId, `Chain SOCKS Source Socket Error: ${error.stack}`);
        targetSocket.destroy();
      });
    };
    exports.chainSocks = chainSocks;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/custom_connect.js
var require_custom_connect = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/custom_connect.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.customConnect = void 0;
    var node_util_1 = __require("node:util");
    var customConnect = async (socket, server) => {
      const asyncWrite = (0, node_util_1.promisify)(socket.write).bind(socket);
      await asyncWrite("HTTP/1.1 200 Connection Established\r\n\r\n");
      server.emit("connection", socket);
      return new Promise((resolve4) => {
        if (socket.destroyed) {
          resolve4();
          return;
        }
        socket.once("close", () => {
          resolve4();
        });
      });
    };
    exports.customConnect = customConnect;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/custom_response.js
var require_custom_response = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/custom_response.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.handleCustomResponse = void 0;
    var handleCustomResponse = async (_request, response, handlerOpts) => {
      const { customResponseFunction } = handlerOpts;
      if (!customResponseFunction) {
        throw new Error('The "customResponseFunction" option is required');
      }
      const customResponse = await customResponseFunction();
      if (typeof customResponse !== "object" || customResponse === null) {
        throw new Error('The user-provided "customResponseFunction" must return an object.');
      }
      response.statusCode = customResponse.statusCode || 200;
      if (customResponse.headers) {
        for (const [key, value2] of Object.entries(customResponse.headers)) {
          response.setHeader(key, value2);
        }
      }
      response.end(customResponse.body, customResponse.encoding);
    };
    exports.handleCustomResponse = handleCustomResponse;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/direct.js
var require_direct = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/direct.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.direct = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_net_1 = tslib_1.__importDefault(__require("node:net"));
    var node_url_1 = __require("node:url");
    var count_target_bytes_1 = require_count_target_bytes();
    var direct = ({ request, sourceSocket, head, server, handlerOpts }) => {
      const url3 = new node_url_1.URL(`connect://${request.url}`);
      if (!url3.hostname) {
        throw new Error("Missing CONNECT hostname");
      }
      if (!url3.port) {
        throw new Error("Missing CONNECT port");
      }
      if (head.length > 0) {
        sourceSocket.unshift(head);
      }
      const options = {
        port: Number(url3.port),
        host: url3.hostname,
        localAddress: handlerOpts.localAddress,
        family: handlerOpts.ipFamily,
        lookup: handlerOpts.dnsLookup
      };
      if (options.host[0] === "[") {
        options.host = options.host.slice(1, -1);
      }
      const targetSocket = node_net_1.default.createConnection(options, () => {
        try {
          sourceSocket.write(`HTTP/1.1 200 Connection Established\r
\r
`);
        } catch (error) {
          sourceSocket.destroy(error);
        }
      });
      (0, count_target_bytes_1.countTargetBytes)(sourceSocket, targetSocket);
      sourceSocket.pipe(targetSocket);
      targetSocket.pipe(sourceSocket);
      targetSocket.on("close", () => {
        sourceSocket.resume();
        if (sourceSocket.writable) {
          sourceSocket.end();
        }
      });
      sourceSocket.on("close", () => {
        targetSocket.resume();
        if (targetSocket.writable) {
          targetSocket.end();
        }
      });
      const { proxyChainId } = sourceSocket;
      targetSocket.on("error", (error) => {
        server.log(proxyChainId, `Direct Destination Socket Error: ${error.stack}`);
        sourceSocket.destroy();
      });
      sourceSocket.on("error", (error) => {
        server.log(proxyChainId, `Direct Source Socket Error: ${error.stack}`);
        targetSocket.destroy();
      });
    };
    exports.direct = direct;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/is_hop_by_hop_header.js
var require_is_hop_by_hop_header = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/is_hop_by_hop_header.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.isHopByHopHeader = void 0;
    var hopByHopHeaders = [
      "connection",
      "keep-alive",
      "proxy-authenticate",
      "proxy-authorization",
      "te",
      "trailer",
      "transfer-encoding",
      "upgrade"
    ];
    var isHopByHopHeader = (header) => hopByHopHeaders.includes(header.toLowerCase());
    exports.isHopByHopHeader = isHopByHopHeader;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/valid_headers_only.js
var require_valid_headers_only = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/valid_headers_only.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.validHeadersOnly = void 0;
    var node_http_1 = __require("node:http");
    var is_hop_by_hop_header_1 = require_is_hop_by_hop_header();
    var validHeadersOnly = (rawHeaders) => {
      const result = [];
      let containsHost = false;
      for (let i5 = 0; i5 < rawHeaders.length; i5 += 2) {
        const name = rawHeaders[i5];
        const value2 = rawHeaders[i5 + 1];
        try {
          (0, node_http_1.validateHeaderName)(name);
          (0, node_http_1.validateHeaderValue)(name, value2);
        } catch {
          continue;
        }
        if ((0, is_hop_by_hop_header_1.isHopByHopHeader)(name)) {
          continue;
        }
        if (name.toLowerCase() === "host") {
          if (containsHost) {
            continue;
          }
          containsHost = true;
        }
        result.push(name, value2);
      }
      return result;
    };
    exports.validHeadersOnly = validHeadersOnly;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/forward.js
var require_forward = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/forward.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.forward = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_http_1 = tslib_1.__importDefault(__require("node:http"));
    var node_https_1 = tslib_1.__importDefault(__require("node:https"));
    var node_stream_1 = tslib_1.__importDefault(__require("node:stream"));
    var node_util_1 = tslib_1.__importDefault(__require("node:util"));
    var statuses_1 = require_statuses2();
    var count_target_bytes_1 = require_count_target_bytes();
    var get_basic_1 = require_get_basic();
    var valid_headers_only_1 = require_valid_headers_only();
    var pipeline2 = node_util_1.default.promisify(node_stream_1.default.pipeline);
    var forward = async (request, response, handlerOpts) => new Promise(async (resolve4, reject) => {
      const proxy = handlerOpts.upstreamProxyUrlParsed;
      const origin2 = proxy ? proxy.origin : request.url;
      const options = {
        method: request.method,
        headers: (0, valid_headers_only_1.validHeadersOnly)(request.rawHeaders),
        insecureHTTPParser: true,
        localAddress: handlerOpts.localAddress,
        family: handlerOpts.ipFamily,
        lookup: handlerOpts.dnsLookup
      };
      if (proxy) {
        options.path = request.url;
        try {
          if (proxy.username || proxy.password) {
            options.headers.push("proxy-authorization", (0, get_basic_1.getBasicAuthorizationHeader)(proxy));
          }
        } catch (error) {
          reject(error);
          return;
        }
      }
      const requestCallback = async (clientResponse) => {
        try {
          let statusCode = clientResponse.statusCode;
          if (statusCode < 100 || statusCode > 999) {
            statusCode = statuses_1.badGatewayStatusCodes.STATUS_CODE_OUT_OF_RANGE;
          }
          if (clientResponse.statusCode === 407) {
            reject(new Error("407 Proxy Authentication Required"));
            return;
          }
          response.writeHead(statusCode, clientResponse.statusMessage, (0, valid_headers_only_1.validHeadersOnly)(clientResponse.rawHeaders));
          await pipeline2(clientResponse, response);
          resolve4();
        } catch {
          resolve4();
        }
      };
      const client = origin2.startsWith("https:") ? node_https_1.default.request(origin2, {
        ...options,
        rejectUnauthorized: handlerOpts.upstreamProxyUrlParsed ? !handlerOpts.ignoreUpstreamProxyCertificate : void 0,
        agent: handlerOpts.httpsAgent
      }, requestCallback) : node_http_1.default.request(origin2, {
        ...options,
        agent: handlerOpts.httpAgent
      }, requestCallback);
      client.once("socket", (socket) => {
        socket.previousBytesRead = socket.bytesRead;
        socket.previousBytesWritten = socket.bytesWritten;
        (0, count_target_bytes_1.countTargetBytes)(request.socket, socket, (handler) => response.once("close", handler));
      });
      request.pipe(client);
      client.on("error", (error) => {
        var _a2;
        if (response.headersSent) {
          resolve4();
          return;
        }
        const statusCode = (_a2 = statuses_1.errorCodeToStatusCode[error.code]) !== null && _a2 !== void 0 ? _a2 : statuses_1.badGatewayStatusCodes.GENERIC_ERROR;
        response.statusCode = !proxy && error.code === "ENOTFOUND" ? 404 : statusCode;
        response.setHeader("content-type", "text/plain; charset=utf-8");
        response.end(node_http_1.default.STATUS_CODES[response.statusCode]);
        resolve4();
      });
    });
    exports.forward = forward;
  }
});

// ../../node_modules/.pnpm/agent-base@7.1.4/node_modules/agent-base/dist/helpers.js
var require_helpers5 = __commonJS({
  "../../node_modules/.pnpm/agent-base@7.1.4/node_modules/agent-base/dist/helpers.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.req = exports.json = exports.toBuffer = void 0;
    var http6 = __importStar2(__require("http"));
    var https5 = __importStar2(__require("https"));
    async function toBuffer(stream7) {
      let length2 = 0;
      const chunks = [];
      for await (const chunk3 of stream7) {
        length2 += chunk3.length;
        chunks.push(chunk3);
      }
      return Buffer.concat(chunks, length2);
    }
    exports.toBuffer = toBuffer;
    async function json(stream7) {
      const buf = await toBuffer(stream7);
      const str = buf.toString("utf8");
      try {
        return JSON.parse(str);
      } catch (_err) {
        const err2 = _err;
        err2.message += ` (input: ${str})`;
        throw err2;
      }
    }
    exports.json = json;
    function req(url3, opts2 = {}) {
      const href = typeof url3 === "string" ? url3 : url3.href;
      const req2 = (href.startsWith("https:") ? https5 : http6).request(url3, opts2);
      const promise = new Promise((resolve4, reject) => {
        req2.once("response", resolve4).once("error", reject).end();
      });
      req2.then = promise.then.bind(promise);
      return req2;
    }
    exports.req = req;
  }
});

// ../../node_modules/.pnpm/agent-base@7.1.4/node_modules/agent-base/dist/index.js
var require_dist6 = __commonJS({
  "../../node_modules/.pnpm/agent-base@7.1.4/node_modules/agent-base/dist/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __exportStar2 = exports && exports.__exportStar || function(m3, exports2) {
      for (var p3 in m3) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p3)) __createBinding2(exports2, m3, p3);
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Agent = void 0;
    var net2 = __importStar2(__require("net"));
    var http6 = __importStar2(__require("http"));
    var https_1 = __require("https");
    __exportStar2(require_helpers5(), exports);
    var INTERNAL = Symbol("AgentBaseInternalState");
    var Agent = class extends http6.Agent {
      constructor(opts2) {
        super(opts2);
        this[INTERNAL] = {};
      }
      /**
       * Determine whether this is an `http` or `https` request.
       */
      isSecureEndpoint(options) {
        if (options) {
          if (typeof options.secureEndpoint === "boolean") {
            return options.secureEndpoint;
          }
          if (typeof options.protocol === "string") {
            return options.protocol === "https:";
          }
        }
        const { stack } = new Error();
        if (typeof stack !== "string")
          return false;
        return stack.split("\n").some((l4) => l4.indexOf("(https.js:") !== -1 || l4.indexOf("node:https:") !== -1);
      }
      // In order to support async signatures in `connect()` and Node's native
      // connection pooling in `http.Agent`, the array of sockets for each origin
      // has to be updated synchronously. This is so the length of the array is
      // accurate when `addRequest()` is next called. We achieve this by creating a
      // fake socket and adding it to `sockets[origin]` and incrementing
      // `totalSocketCount`.
      incrementSockets(name) {
        if (this.maxSockets === Infinity && this.maxTotalSockets === Infinity) {
          return null;
        }
        if (!this.sockets[name]) {
          this.sockets[name] = [];
        }
        const fakeSocket = new net2.Socket({ writable: false });
        this.sockets[name].push(fakeSocket);
        this.totalSocketCount++;
        return fakeSocket;
      }
      decrementSockets(name, socket) {
        if (!this.sockets[name] || socket === null) {
          return;
        }
        const sockets = this.sockets[name];
        const index2 = sockets.indexOf(socket);
        if (index2 !== -1) {
          sockets.splice(index2, 1);
          this.totalSocketCount--;
          if (sockets.length === 0) {
            delete this.sockets[name];
          }
        }
      }
      // In order to properly update the socket pool, we need to call `getName()` on
      // the core `https.Agent` if it is a secureEndpoint.
      getName(options) {
        const secureEndpoint = this.isSecureEndpoint(options);
        if (secureEndpoint) {
          return https_1.Agent.prototype.getName.call(this, options);
        }
        return super.getName(options);
      }
      createSocket(req, options, cb) {
        const connectOpts = {
          ...options,
          secureEndpoint: this.isSecureEndpoint(options)
        };
        const name = this.getName(connectOpts);
        const fakeSocket = this.incrementSockets(name);
        Promise.resolve().then(() => this.connect(req, connectOpts)).then((socket) => {
          this.decrementSockets(name, fakeSocket);
          if (socket instanceof http6.Agent) {
            try {
              return socket.addRequest(req, connectOpts);
            } catch (err2) {
              return cb(err2);
            }
          }
          this[INTERNAL].currentSocket = socket;
          super.createSocket(req, options, cb);
        }, (err2) => {
          this.decrementSockets(name, fakeSocket);
          cb(err2);
        });
      }
      createConnection() {
        const socket = this[INTERNAL].currentSocket;
        this[INTERNAL].currentSocket = void 0;
        if (!socket) {
          throw new Error("No socket was returned in the `connect()` function");
        }
        return socket;
      }
      get defaultPort() {
        return this[INTERNAL].defaultPort ?? (this.protocol === "https:" ? 443 : 80);
      }
      set defaultPort(v3) {
        if (this[INTERNAL]) {
          this[INTERNAL].defaultPort = v3;
        }
      }
      get protocol() {
        return this[INTERNAL].protocol ?? (this.isSecureEndpoint() ? "https:" : "http:");
      }
      set protocol(v3) {
        if (this[INTERNAL]) {
          this[INTERNAL].protocol = v3;
        }
      }
    };
    exports.Agent = Agent;
  }
});

// ../../node_modules/.pnpm/socks-proxy-agent@8.0.5/node_modules/socks-proxy-agent/dist/index.js
var require_dist7 = __commonJS({
  "../../node_modules/.pnpm/socks-proxy-agent@8.0.5/node_modules/socks-proxy-agent/dist/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.SocksProxyAgent = void 0;
    var socks_1 = require_build();
    var agent_base_1 = require_dist6();
    var debug_1 = __importDefault2(require_src());
    var dns = __importStar2(__require("dns"));
    var net2 = __importStar2(__require("net"));
    var tls3 = __importStar2(__require("tls"));
    var url_1 = __require("url");
    var debug2 = (0, debug_1.default)("socks-proxy-agent");
    var setServernameFromNonIpHost = (options) => {
      if (options.servername === void 0 && options.host && !net2.isIP(options.host)) {
        return {
          ...options,
          servername: options.host
        };
      }
      return options;
    };
    function parseSocksURL(url3) {
      let lookup = false;
      let type = 5;
      const host = url3.hostname;
      const port = parseInt(url3.port, 10) || 1080;
      switch (url3.protocol.replace(":", "")) {
        case "socks4":
          lookup = true;
          type = 4;
          break;
        // pass through
        case "socks4a":
          type = 4;
          break;
        case "socks5":
          lookup = true;
          type = 5;
          break;
        // pass through
        case "socks":
          type = 5;
          break;
        case "socks5h":
          type = 5;
          break;
        default:
          throw new TypeError(`A "socks" protocol must be specified! Got: ${String(url3.protocol)}`);
      }
      const proxy = {
        host,
        port,
        type
      };
      if (url3.username) {
        Object.defineProperty(proxy, "userId", {
          value: decodeURIComponent(url3.username),
          enumerable: false
        });
      }
      if (url3.password != null) {
        Object.defineProperty(proxy, "password", {
          value: decodeURIComponent(url3.password),
          enumerable: false
        });
      }
      return { lookup, proxy };
    }
    var SocksProxyAgent = class extends agent_base_1.Agent {
      constructor(uri, opts2) {
        super(opts2);
        const url3 = typeof uri === "string" ? new url_1.URL(uri) : uri;
        const { proxy, lookup } = parseSocksURL(url3);
        this.shouldLookup = lookup;
        this.proxy = proxy;
        this.timeout = opts2?.timeout ?? null;
        this.socketOptions = opts2?.socketOptions ?? null;
      }
      /**
       * Initiates a SOCKS connection to the specified SOCKS proxy server,
       * which in turn connects to the specified remote host and port.
       */
      async connect(req, opts2) {
        const { shouldLookup, proxy, timeout } = this;
        if (!opts2.host) {
          throw new Error("No `host` defined!");
        }
        let { host } = opts2;
        const { port, lookup: lookupFn = dns.lookup } = opts2;
        if (shouldLookup) {
          host = await new Promise((resolve4, reject) => {
            lookupFn(host, {}, (err2, res) => {
              if (err2) {
                reject(err2);
              } else {
                resolve4(res);
              }
            });
          });
        }
        const socksOpts = {
          proxy,
          destination: {
            host,
            port: typeof port === "number" ? port : parseInt(port, 10)
          },
          command: "connect",
          timeout: timeout ?? void 0,
          // @ts-expect-error the type supplied by socks for socket_options is wider
          // than necessary since socks will always override the host and port
          socket_options: this.socketOptions ?? void 0
        };
        const cleanup = (tlsSocket) => {
          req.destroy();
          socket.destroy();
          if (tlsSocket)
            tlsSocket.destroy();
        };
        debug2("Creating socks proxy connection: %o", socksOpts);
        const { socket } = await socks_1.SocksClient.createConnection(socksOpts);
        debug2("Successfully created socks proxy connection");
        if (timeout !== null) {
          socket.setTimeout(timeout);
          socket.on("timeout", () => cleanup());
        }
        if (opts2.secureEndpoint) {
          debug2("Upgrading socket connection to TLS");
          const tlsSocket = tls3.connect({
            ...omit3(setServernameFromNonIpHost(opts2), "host", "path", "port"),
            socket
          });
          tlsSocket.once("error", (error) => {
            debug2("Socket TLS error", error.message);
            cleanup(tlsSocket);
          });
          return tlsSocket;
        }
        return socket;
      }
    };
    SocksProxyAgent.protocols = [
      "socks",
      "socks4",
      "socks4a",
      "socks5",
      "socks5h"
    ];
    exports.SocksProxyAgent = SocksProxyAgent;
    function omit3(obj, ...keys2) {
      const ret = {};
      let key;
      for (key in obj) {
        if (!keys2.includes(key)) {
          ret[key] = obj[key];
        }
      }
      return ret;
    }
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/forward_socks.js
var require_forward_socks = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/forward_socks.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.forwardSocks = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_http_1 = tslib_1.__importDefault(__require("node:http"));
    var node_stream_1 = tslib_1.__importDefault(__require("node:stream"));
    var node_util_1 = tslib_1.__importDefault(__require("node:util"));
    var socks_proxy_agent_1 = require_dist7();
    var statuses_1 = require_statuses2();
    var count_target_bytes_1 = require_count_target_bytes();
    var valid_headers_only_1 = require_valid_headers_only();
    var pipeline2 = node_util_1.default.promisify(node_stream_1.default.pipeline);
    var forwardSocks = async (request, response, handlerOpts) => new Promise(async (resolve4, reject) => {
      const agent = new socks_proxy_agent_1.SocksProxyAgent(handlerOpts.upstreamProxyUrlParsed);
      const options = {
        method: request.method,
        headers: (0, valid_headers_only_1.validHeadersOnly)(request.rawHeaders),
        insecureHTTPParser: true,
        localAddress: handlerOpts.localAddress,
        agent
      };
      const client = node_http_1.default.request(request.url, options, async (clientResponse) => {
        try {
          let statusCode = clientResponse.statusCode;
          if (statusCode < 100 || statusCode > 999) {
            statusCode = statuses_1.badGatewayStatusCodes.STATUS_CODE_OUT_OF_RANGE;
          }
          if (clientResponse.statusCode === 407) {
            reject(new Error("407 Proxy Authentication Required"));
            return;
          }
          response.writeHead(statusCode, clientResponse.statusMessage, (0, valid_headers_only_1.validHeadersOnly)(clientResponse.rawHeaders));
          await pipeline2(clientResponse, response);
          resolve4();
        } catch {
          resolve4();
        }
      });
      client.once("socket", (socket) => {
        (0, count_target_bytes_1.countTargetBytes)(request.socket, socket);
      });
      request.pipe(client);
      client.on("error", (error) => {
        var _a2;
        if (response.headersSent) {
          resolve4();
          return;
        }
        const statusCode = (_a2 = statuses_1.errorCodeToStatusCode[error.code]) !== null && _a2 !== void 0 ? _a2 : statuses_1.badGatewayStatusCodes.GENERIC_ERROR;
        response.statusCode = statusCode;
        response.setHeader("content-type", "text/plain; charset=utf-8");
        response.end(node_http_1.default.STATUS_CODES[response.statusCode]);
        resolve4();
      });
    });
    exports.forwardSocks = forwardSocks;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/nodeify.js
var require_nodeify = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/nodeify.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.nodeify = void 0;
    var nodeify = async (promise, callback) => {
      if (typeof callback !== "function")
        return promise;
      promise.then((result) => callback(null, result), callback).catch((error) => {
        process.nextTick(() => {
          throw error;
        });
      });
      return promise;
    };
    exports.nodeify = nodeify;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/normalize_url_port.js
var require_normalize_url_port = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/normalize_url_port.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.normalizeUrlPort = void 0;
    var mapping = {
      "ftp:": 21,
      "http:": 80,
      "https:": 443,
      "ws:": 80,
      "wss:": 443
    };
    var normalizeUrlPort = (url3) => {
      if (url3.port) {
        return Number(url3.port);
      }
      if (url3.protocol in mapping) {
        return mapping[url3.protocol];
      }
      throw new Error(`Unexpected protocol: ${url3.protocol}`);
    };
    exports.normalizeUrlPort = normalizeUrlPort;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/parse_authorization_header.js
var require_parse_authorization_header = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/parse_authorization_header.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.parseAuthorizationHeader = void 0;
    var node_buffer_1 = __require("node:buffer");
    var splitAt = (string, index2) => {
      return [
        index2 === -1 ? "" : string.substring(0, index2),
        index2 === -1 ? "" : string.substring(index2 + 1)
      ];
    };
    var parseAuthorizationHeader = (header) => {
      if (header) {
        header = header.trim();
      }
      if (!header) {
        return null;
      }
      const [type, data2] = splitAt(header, header.indexOf(" "));
      if (type.toLowerCase() !== "basic") {
        return { type, data: data2 };
      }
      const auth = node_buffer_1.Buffer.from(data2, "base64").toString();
      const [username, password] = auth.includes(":") ? splitAt(auth, auth.indexOf(":")) : [auth, ""];
      return {
        type,
        data: data2,
        username,
        password
      };
    };
    exports.parseAuthorizationHeader = parseAuthorizationHeader;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/redact_url.js
var require_redact_url = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/utils/redact_url.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.redactUrl = void 0;
    var node_url_1 = __require("node:url");
    var redactUrl = (url3, passwordReplacement = "<redacted>") => {
      if (typeof url3 !== "object") {
        url3 = new node_url_1.URL(url3);
      }
      if (url3.password) {
        return url3.href.replace(`:${url3.password}`, `:${passwordReplacement}`);
      }
      return url3.href;
    };
    exports.redactUrl = redactUrl;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/server.js
var require_server = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/server.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Server = exports.SOCKS_PROTOCOLS = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_buffer_1 = __require("node:buffer");
    var node_events_1 = __require("node:events");
    var node_http_1 = tslib_1.__importDefault(__require("node:http"));
    var node_https_1 = tslib_1.__importDefault(__require("node:https"));
    var node_url_1 = __require("node:url");
    var node_util_1 = tslib_1.__importDefault(__require("node:util"));
    var chain_1 = require_chain();
    var chain_socks_1 = require_chain_socks();
    var custom_connect_1 = require_custom_connect();
    var custom_response_1 = require_custom_response();
    var direct_1 = require_direct();
    var forward_1 = require_forward();
    var forward_socks_1 = require_forward_socks();
    var request_error_1 = require_request_error();
    var statuses_1 = require_statuses2();
    var count_target_bytes_1 = require_count_target_bytes();
    var nodeify_1 = require_nodeify();
    var normalize_url_port_1 = require_normalize_url_port();
    var parse_authorization_header_1 = require_parse_authorization_header();
    var redact_url_1 = require_redact_url();
    exports.SOCKS_PROTOCOLS = ["socks:", "socks4:", "socks4a:", "socks5:", "socks5h:"];
    var DEFAULT_AUTH_REALM = "ProxyChain";
    var DEFAULT_PROXY_SERVER_PORT = 8e3;
    var HTTPS_DEFAULT_OPTIONS = {
      // Disable TLS 1.0 and 1.1 (deprecated, insecure).
      // All other TLS settings use Node.js defaults for cipher selection (automatically updated).
      minVersion: "TLSv1.2"
    };
    var Server = class extends node_events_1.EventEmitter {
      /**
       * Initializes a new instance of Server class.
       * @param options
       * @param [options.port] Port where the server will listen. By default 8000.
       * @param [options.serverType] Type of server to create: 'http' or 'https'. By default 'http'.
       * @param [options.httpsOptions] HTTPS server options (required when serverType is 'https').
       * Accepts standard Node.js https.ServerOptions including key, cert, ca, passphrase, etc.
       * @param [options.prepareRequestFunction] Custom function to authenticate proxy requests,
       * provide URL to upstream proxy or potentially provide a function that generates a custom response to HTTP requests.
       * It accepts a single parameter which is an object:
       * ```
       * {
       *   connectionId: symbol,
       *   request: http.IncomingMessage,
       *   username: string,
       *   password: string,
       *   hostname: string,
       *   port: number,
       *   isHttp: boolean,
       * }
       * ```
       * and returns an object (or promise resolving to the object) with following form:
       * ```
       * {
       *   requestAuthentication: boolean,
       *   upstreamProxyUrl: string,
       *   customResponseFunction: Function,
       * }
       * ```
       * If `upstreamProxyUrl` is a falsy value, no upstream proxy is used.
       * If `prepareRequestFunction` is not set, the proxy server will not require any authentication
       * and will not use any upstream proxy.
       * If `customResponseFunction` is set, it will be called to generate a custom response to the HTTP request.
       * It should not be used together with `upstreamProxyUrl`.
       * @param [options.authRealm] Realm used in the Proxy-Authenticate header and also in the 'Server' HTTP header. By default it's `ProxyChain`.
       * @param [options.verbose] If true, the server will output logs
       */
      constructor(options = {}) {
        super();
        Object.defineProperty(this, "port", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "host", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "prepareRequestFunction", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "authRealm", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "verbose", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "server", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "serverType", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "lastHandlerId", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "stats", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "connections", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        if (options.port === void 0 || options.port === null) {
          this.port = DEFAULT_PROXY_SERVER_PORT;
        } else {
          this.port = options.port;
        }
        this.host = options.host;
        this.prepareRequestFunction = options.prepareRequestFunction;
        this.authRealm = options.authRealm || DEFAULT_AUTH_REALM;
        this.verbose = !!options.verbose;
        this.serverType = options.serverType === "https" ? "https" : "http";
        if (options.serverType === "https") {
          if (!options.httpsOptions) {
            throw new Error('httpsOptions is required when serverType is "https"');
          }
          const effectiveOptions = {
            ...HTTPS_DEFAULT_OPTIONS,
            honorCipherOrder: true,
            ...options.httpsOptions
          };
          this.server = node_https_1.default.createServer(effectiveOptions);
        } else {
          this.server = node_http_1.default.createServer();
        }
        this.server.on("clientError", this.onClientError.bind(this));
        this.server.on("request", this.onRequest.bind(this));
        this.server.on("connect", this.onConnect.bind(this));
        if (this.serverType === "https") {
          this.server.on("secureConnection", this.onConnection.bind(this));
          this.server.on("tlsClientError", this.onTLSClientError.bind(this));
        } else {
          this.server.on("connection", this.onConnection.bind(this));
        }
        this.lastHandlerId = 0;
        this.stats = {
          httpRequestCount: 0,
          connectRequestCount: 0
        };
        this.connections = /* @__PURE__ */ new Map();
      }
      /**
       * Handles TLS handshake errors for HTTPS servers.
       * Without this handler, unhandled TLS errors can crash the server.
       * Common errors: ECONNRESET, ERR_SSL_SSLV3_ALERT_CERTIFICATE_UNKNOWN,
       * ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION, ERR_SSL_SSLV3_ALERT_HANDSHAKE_FAILURE
       */
      onTLSClientError(err2, tlsSocket) {
        const connectionId = tlsSocket.proxyChainId;
        this.log(connectionId, `TLS handshake failed: ${err2.message}`);
        this.emit("tlsError", { error: err2, socket: tlsSocket });
        if (err2.code === "ECONNRESET" || !tlsSocket.writable) {
          return;
        }
        tlsSocket.destroy(err2);
      }
      log(connectionId, str) {
        if (this.verbose) {
          const logPrefix = connectionId != null ? `${String(connectionId)} | ` : "";
          console.log(`ProxyServer[${this.port}]: ${logPrefix}${str}`);
        }
      }
      onClientError(err2, socket) {
        this.log(socket.proxyChainId, `onClientError: ${err2}`);
        if (err2.code === "ECONNRESET" || !socket.writable) {
          return;
        }
        this.sendSocketResponse(socket, 400, {}, "Invalid request");
      }
      /**
       * Assigns a unique ID to the socket and keeps the register up to date.
       * Needed for abrupt close of the server.
       */
      registerConnection(socket) {
        const unique2 = this.lastHandlerId++;
        socket.proxyChainId = unique2;
        this.connections.set(unique2, socket);
        socket.on("close", () => {
          this.emit("connectionClosed", {
            connectionId: unique2,
            stats: this.getConnectionStats(unique2)
          });
          this.connections.delete(unique2);
        });
        socket.on("timeout", () => {
          socket.destroy();
        });
      }
      /**
       * Handles incoming sockets, useful for error handling
       */
      onConnection(socket) {
        if (!socket.remoteAddress) {
          socket.destroy();
          return;
        }
        this.registerConnection(socket);
        socket.on("error", (err2) => {
          if (socket.listenerCount("error") === 1) {
            this.log(socket.proxyChainId, `Source socket emitted error: ${err2.stack || err2}`);
          }
        });
      }
      /**
       * Converts known errors to be instance of RequestError.
       */
      normalizeHandlerError(error) {
        if (error.message === "Username contains an invalid colon") {
          return new request_error_1.RequestError("Invalid colon in username in upstream proxy credentials", statuses_1.badGatewayStatusCodes.AUTH_FAILED);
        }
        if (error.message === "407 Proxy Authentication Required") {
          return new request_error_1.RequestError("Invalid upstream proxy credentials", statuses_1.badGatewayStatusCodes.AUTH_FAILED);
        }
        return error;
      }
      /**
       * Handles normal HTTP request by forwarding it to target host or the upstream proxy.
       */
      async onRequest(request, response) {
        try {
          const handlerOpts = await this.prepareRequestHandling(request);
          handlerOpts.srcResponse = response;
          const { proxyChainId } = request.socket;
          if (handlerOpts.customResponseFunction) {
            this.log(proxyChainId, "Using handleCustomResponse()");
            await (0, custom_response_1.handleCustomResponse)(request, response, handlerOpts);
            return;
          }
          if (handlerOpts.upstreamProxyUrlParsed && exports.SOCKS_PROTOCOLS.includes(handlerOpts.upstreamProxyUrlParsed.protocol)) {
            this.log(proxyChainId, "Using forwardSocks()");
            await (0, forward_socks_1.forwardSocks)(request, response, handlerOpts);
            return;
          }
          this.log(proxyChainId, "Using forward()");
          await (0, forward_1.forward)(request, response, handlerOpts);
        } catch (error) {
          this.failRequest(request, this.normalizeHandlerError(error));
        }
      }
      /**
       * Handles HTTP CONNECT request by setting up a tunnel either to target host or to the upstream proxy.
       * @param request
       * @param socket
       * @param head The first packet of the tunneling stream (may be empty)
       */
      async onConnect(request, socket, head) {
        try {
          const handlerOpts = await this.prepareRequestHandling(request);
          handlerOpts.srcHead = head;
          const data2 = { request, sourceSocket: socket, head, handlerOpts, server: this, isPlain: false };
          if (handlerOpts.customConnectServer) {
            socket.unshift(head);
            await (0, custom_connect_1.customConnect)(socket, handlerOpts.customConnectServer);
            return;
          }
          if (handlerOpts.upstreamProxyUrlParsed) {
            if (exports.SOCKS_PROTOCOLS.includes(handlerOpts.upstreamProxyUrlParsed.protocol)) {
              this.log(socket.proxyChainId, `Using chainSocks() => ${request.url}`);
              await (0, chain_socks_1.chainSocks)(data2);
              return;
            }
            this.log(socket.proxyChainId, `Using chain() => ${request.url}`);
            (0, chain_1.chain)(data2);
            return;
          }
          this.log(socket.proxyChainId, `Using direct() => ${request.url}`);
          (0, direct_1.direct)(data2);
        } catch (error) {
          this.failRequest(request, this.normalizeHandlerError(error));
        }
      }
      /**
       * Prepares handler options from a request.
       * @see {prepareRequestHandling}
       */
      getHandlerOpts(request) {
        const handlerOpts = {
          server: this,
          id: request.socket.proxyChainId,
          srcRequest: request,
          srcHead: null,
          trgParsed: null,
          upstreamProxyUrlParsed: null,
          ignoreUpstreamProxyCertificate: false,
          isHttp: false,
          srcResponse: null,
          customResponseFunction: null,
          customConnectServer: null
        };
        this.log(request.socket.proxyChainId, `!!! Handling ${request.method} ${request.url} HTTP/${request.httpVersion}`);
        if (request.method === "CONNECT") {
          try {
            handlerOpts.trgParsed = new node_url_1.URL(`connect://${request.url}`);
          } catch {
            throw new request_error_1.RequestError(`Target "${request.url}" could not be parsed`, 400);
          }
          if (!handlerOpts.trgParsed.hostname || !handlerOpts.trgParsed.port) {
            throw new request_error_1.RequestError(`Target "${request.url}" could not be parsed`, 400);
          }
          this.stats.connectRequestCount++;
        } else {
          let parsed;
          try {
            parsed = new node_url_1.URL(request.url);
          } catch {
            throw new request_error_1.RequestError(`Target "${request.url}" could not be parsed`, 400);
          }
          if (parsed.protocol !== "http:") {
            throw new request_error_1.RequestError(`Only HTTP protocol is supported (was ${parsed.protocol})`, 400);
          }
          handlerOpts.trgParsed = parsed;
          handlerOpts.isHttp = true;
          this.stats.httpRequestCount++;
        }
        return handlerOpts;
      }
      /**
       * Calls `this.prepareRequestFunction` with normalized options.
       * @param request
       * @param handlerOpts
       */
      async callPrepareRequestFunction(request, handlerOpts) {
        if (this.prepareRequestFunction) {
          const funcOpts = {
            connectionId: request.socket.proxyChainId,
            request,
            username: "",
            password: "",
            hostname: handlerOpts.trgParsed.hostname,
            port: (0, normalize_url_port_1.normalizeUrlPort)(handlerOpts.trgParsed),
            isHttp: handlerOpts.isHttp
          };
          const proxyAuth = request.headers["proxy-authorization"];
          if (proxyAuth) {
            const auth = (0, parse_authorization_header_1.parseAuthorizationHeader)(proxyAuth);
            if (!auth) {
              throw new request_error_1.RequestError('Invalid "Proxy-Authorization" header', 400);
            }
            if (auth.type.toLowerCase() !== "basic") {
              throw new request_error_1.RequestError('The "Proxy-Authorization" header must have the "Basic" type.', 400);
            }
            funcOpts.username = auth.username;
            funcOpts.password = auth.password;
          }
          const result = await this.prepareRequestFunction(funcOpts);
          return result !== null && result !== void 0 ? result : {};
        }
        return {};
      }
      /**
       * Authenticates a new request and determines upstream proxy URL using the user function.
       * Returns a promise resolving to an object that can be used to run a handler.
       * @param request
       */
      async prepareRequestHandling(request) {
        const handlerOpts = this.getHandlerOpts(request);
        const funcResult = await this.callPrepareRequestFunction(request, handlerOpts);
        handlerOpts.localAddress = funcResult.localAddress;
        handlerOpts.ipFamily = funcResult.ipFamily;
        handlerOpts.dnsLookup = funcResult.dnsLookup;
        handlerOpts.customConnectServer = funcResult.customConnectServer;
        handlerOpts.customTag = funcResult.customTag;
        handlerOpts.httpAgent = funcResult.httpAgent;
        handlerOpts.httpsAgent = funcResult.httpsAgent;
        if (funcResult.requestAuthentication) {
          throw new request_error_1.RequestError(funcResult.failMsg || "Proxy credentials required.", 407);
        }
        if (funcResult.upstreamProxyUrl) {
          try {
            handlerOpts.upstreamProxyUrlParsed = new node_url_1.URL(funcResult.upstreamProxyUrl);
          } catch (error) {
            throw new Error(`Invalid "upstreamProxyUrl" provided: ${error} (was "${funcResult.upstreamProxyUrl}"`);
          }
          if (!["http:", "https:", ...exports.SOCKS_PROTOCOLS].includes(handlerOpts.upstreamProxyUrlParsed.protocol)) {
            throw new Error(`Invalid "upstreamProxyUrl" provided: URL must have one of the following protocols: "http", "https", ${exports.SOCKS_PROTOCOLS.map((p3) => `"${p3.replace(":", "")}"`).join(", ")} (was "${funcResult.upstreamProxyUrl}")`);
          }
        }
        if (funcResult.ignoreUpstreamProxyCertificate !== void 0) {
          handlerOpts.ignoreUpstreamProxyCertificate = funcResult.ignoreUpstreamProxyCertificate;
        }
        const { proxyChainId } = request.socket;
        if (funcResult.customResponseFunction) {
          this.log(proxyChainId, "Using custom response function");
          handlerOpts.customResponseFunction = funcResult.customResponseFunction;
          if (!handlerOpts.isHttp) {
            throw new Error('The "customResponseFunction" option can only be used for HTTP requests.');
          }
          if (typeof handlerOpts.customResponseFunction !== "function") {
            throw new Error('The "customResponseFunction" option must be a function.');
          }
        }
        if (handlerOpts.upstreamProxyUrlParsed) {
          this.log(proxyChainId, `Using upstream proxy ${(0, redact_url_1.redactUrl)(handlerOpts.upstreamProxyUrlParsed)}`);
        }
        return handlerOpts;
      }
      /**
       * Sends a HTTP error response to the client.
       * @param request
       * @param error
       */
      failRequest(request, error) {
        const { proxyChainId } = request.socket;
        if (error.name === "RequestError") {
          const typedError = error;
          this.log(proxyChainId, `Request failed (status ${typedError.statusCode}): ${error.message}`);
          this.sendSocketResponse(request.socket, typedError.statusCode, typedError.headers, error.message);
        } else {
          this.log(proxyChainId, `Request failed with error: ${error.stack || error}`);
          this.sendSocketResponse(request.socket, 500, {}, "Internal error in proxy server");
          this.emit("requestFailed", { error, request });
        }
        this.log(proxyChainId, "Closing because request failed with error");
      }
      /**
       * Sends a simple HTTP response to the client and forcibly closes the connection.
       * This invalidates the ServerResponse instance (if present).
       * We don't know the state of the response anyway.
       * Writing directly to the socket seems to be the easiest solution.
       * @param socket
       * @param statusCode
       * @param headers
       * @param message
       */
      sendSocketResponse(socket, statusCode = 500, caseSensitiveHeaders = {}, message = "") {
        try {
          const headers = Object.fromEntries(Object.entries(caseSensitiveHeaders).map(([name, value2]) => [name.toLowerCase(), value2]));
          headers.connection = "close";
          headers.date = (/* @__PURE__ */ new Date()).toUTCString();
          headers["content-length"] = String(node_buffer_1.Buffer.byteLength(message));
          headers.server = headers.server || this.authRealm;
          headers["content-type"] = headers["content-type"] || "text/plain; charset=utf-8";
          if (statusCode === 407 && !headers["proxy-authenticate"]) {
            headers["proxy-authenticate"] = `Basic realm="${this.authRealm}"`;
          }
          let msg = `HTTP/1.1 ${statusCode} ${node_http_1.default.STATUS_CODES[statusCode] || "Unknown Status Code"}\r
`;
          for (const [key, value2] of Object.entries(headers)) {
            msg += `${key}: ${value2}\r
`;
          }
          msg += `\r
${message}`;
          socket.setTimeout(1e3, () => {
            socket.destroy();
          });
          socket.end(msg);
        } catch (err2) {
          this.log(socket.proxyChainId, `Unhandled error in sendResponse(), will be ignored: ${err2.stack || err2}`);
        }
      }
      /**
       * Starts listening at a port specified in the constructor.
       */
      async listen(callback) {
        const promise = new Promise((resolve4, reject) => {
          const onError = (error) => {
            this.log(null, `Listen failed: ${error}`);
            removeListeners();
            reject(error);
          };
          const onListening = () => {
            this.port = this.server.address().port;
            this.log(null, "Listening...");
            removeListeners();
            resolve4();
          };
          const removeListeners = () => {
            this.server.removeListener("error", onError);
            this.server.removeListener("listening", onListening);
          };
          this.server.on("error", onError);
          this.server.on("listening", onListening);
          this.server.listen(this.port, this.host);
        });
        return (0, nodeify_1.nodeify)(promise, callback);
      }
      /**
       * Gets array of IDs of all active connections.
       */
      getConnectionIds() {
        return [...this.connections.keys()];
      }
      /**
       * Gets data transfer statistics of a specific proxy connection.
       */
      getConnectionStats(connectionId) {
        const socket = this.connections.get(connectionId);
        if (!socket)
          return void 0;
        const targetStats = (0, count_target_bytes_1.getTargetStats)(socket);
        const result = {
          srcTxBytes: socket.bytesWritten,
          srcRxBytes: socket.bytesRead,
          trgTxBytes: targetStats.bytesWritten,
          trgRxBytes: targetStats.bytesRead
        };
        return result;
      }
      /**
       * Forcibly close a specific pending proxy connection.
       */
      closeConnection(connectionId) {
        this.log(null, "Closing pending socket");
        const socket = this.connections.get(connectionId);
        if (!socket)
          return;
        socket.destroy();
        this.log(null, `Destroyed pending socket`);
      }
      /**
       * Forcibly closes pending proxy connections.
       */
      closeConnections() {
        this.log(null, "Closing pending sockets");
        for (const socket of this.connections.values()) {
          socket.destroy();
        }
        this.log(null, `Destroyed ${this.connections.size} pending sockets`);
      }
      /**
       * Closes the proxy server.
       * @param closeConnections If true, pending proxy connections are forcibly closed.
       */
      async close(closeConnections, callback) {
        if (typeof closeConnections === "function") {
          callback = closeConnections;
          closeConnections = false;
        }
        if (closeConnections) {
          this.closeConnections();
        }
        if (this.server) {
          const { server } = this;
          this.server = null;
          const promise = node_util_1.default.promisify(server.close).bind(server)();
          return (0, nodeify_1.nodeify)(promise, callback);
        }
        return (0, nodeify_1.nodeify)(Promise.resolve(), callback);
      }
    };
    exports.Server = Server;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/anonymize_proxy.js
var require_anonymize_proxy = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/anonymize_proxy.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.listenConnectAnonymizedProxy = exports.closeAnonymizedProxy = exports.anonymizeProxy = void 0;
    var node_url_1 = __require("node:url");
    var server_1 = require_server();
    var nodeify_1 = require_nodeify();
    var anonymizedProxyUrlToServer = {};
    var anonymizeProxy = async (options, callback) => {
      let proxyUrl;
      let port = 0;
      let ignoreProxyCertificate = false;
      if (typeof options === "string") {
        proxyUrl = options;
      } else {
        proxyUrl = options.url;
        port = options.port;
        if (port < 0 || port > 65535) {
          throw new Error('Invalid "port" option: only values equals or between 0-65535 are valid');
        }
        if (options.ignoreProxyCertificate !== void 0) {
          ignoreProxyCertificate = options.ignoreProxyCertificate;
        }
      }
      const parsedProxyUrl = new node_url_1.URL(proxyUrl);
      if (!["http:", "https:", ...server_1.SOCKS_PROTOCOLS].includes(parsedProxyUrl.protocol)) {
        throw new Error(`Invalid "proxyUrl" provided: URL must have one of the following protocols: "http", "https", ${server_1.SOCKS_PROTOCOLS.map((p3) => `"${p3.replace(":", "")}"`).join(", ")} (was "${parsedProxyUrl}")`);
      }
      if (!parsedProxyUrl.username && !parsedProxyUrl.password && (!ignoreProxyCertificate || parsedProxyUrl.protocol !== "https:")) {
        return (0, nodeify_1.nodeify)(Promise.resolve(proxyUrl), callback);
      }
      let server;
      const startServer = async () => {
        return Promise.resolve().then(async () => {
          server = new server_1.Server({
            // verbose: true,
            port,
            host: "127.0.0.1",
            prepareRequestFunction: () => {
              return {
                requestAuthentication: false,
                upstreamProxyUrl: proxyUrl,
                ignoreUpstreamProxyCertificate: ignoreProxyCertificate
              };
            }
          });
          return server.listen();
        });
      };
      const promise = startServer().then(() => {
        const url3 = `http://127.0.0.1:${server.port}`;
        anonymizedProxyUrlToServer[url3] = server;
        return url3;
      });
      return (0, nodeify_1.nodeify)(promise, callback);
    };
    exports.anonymizeProxy = anonymizeProxy;
    var closeAnonymizedProxy = async (anonymizedProxyUrl, closeConnections, callback) => {
      if (typeof anonymizedProxyUrl !== "string") {
        throw new Error('The "anonymizedProxyUrl" parameter must be a string');
      }
      const server = anonymizedProxyUrlToServer[anonymizedProxyUrl];
      if (!server) {
        return (0, nodeify_1.nodeify)(Promise.resolve(false), callback);
      }
      delete anonymizedProxyUrlToServer[anonymizedProxyUrl];
      const promise = server.close(closeConnections).then(() => {
        return true;
      });
      return (0, nodeify_1.nodeify)(promise, callback);
    };
    exports.closeAnonymizedProxy = closeAnonymizedProxy;
    var listenConnectAnonymizedProxy = (anonymizedProxyUrl, tunnelConnectRespondedCallback) => {
      const server = anonymizedProxyUrlToServer[anonymizedProxyUrl];
      if (!server) {
        return false;
      }
      server.on("tunnelConnectResponded", ({ response, socket, head }) => {
        tunnelConnectRespondedCallback({ response, socket, head });
      });
      return true;
    };
    exports.listenConnectAnonymizedProxy = listenConnectAnonymizedProxy;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/tcp_tunnel_tools.js
var require_tcp_tunnel_tools = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/tcp_tunnel_tools.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.closeTunnel = exports.createTunnel = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_net_1 = tslib_1.__importDefault(__require("node:net"));
    var node_url_1 = __require("node:url");
    var chain_1 = require_chain();
    var nodeify_1 = require_nodeify();
    var runningServers = {};
    var getAddress = (server) => {
      const { address: host, port, family } = server.address();
      if (family === "IPv6") {
        return `[${host}]:${port}`;
      }
      return `${host}:${port}`;
    };
    async function createTunnel(proxyUrl, targetHost, options, callback) {
      const parsedProxyUrl = new node_url_1.URL(proxyUrl);
      if (!["http:", "https:"].includes(parsedProxyUrl.protocol)) {
        throw new Error(`The proxy URL must have the "http" or "https" protocol (was "${proxyUrl}")`);
      }
      const url3 = new node_url_1.URL(`connect://${targetHost || ""}`);
      if (!url3.hostname) {
        throw new Error("Missing target hostname");
      }
      if (!url3.port) {
        throw new Error("Missing target port");
      }
      const verbose = options && options.verbose;
      const server = node_net_1.default.createServer();
      const log2 = (...args) => {
        if (verbose)
          console.log(...args);
      };
      server.log = log2;
      server.on("connection", (sourceSocket) => {
        var _a2;
        const remoteAddress = `${sourceSocket.remoteAddress}:${sourceSocket.remotePort}`;
        const { connections } = runningServers[getAddress(server)];
        log2(`new client connection from ${remoteAddress}`);
        sourceSocket.on("close", (hadError) => {
          connections.delete(sourceSocket);
          log2(`connection from ${remoteAddress} closed, hadError=${hadError}`);
        });
        connections.add(sourceSocket);
        (0, chain_1.chain)({
          request: { url: targetHost },
          sourceSocket,
          handlerOpts: {
            upstreamProxyUrlParsed: parsedProxyUrl,
            ignoreUpstreamProxyCertificate: (_a2 = options === null || options === void 0 ? void 0 : options.ignoreProxyCertificate) !== null && _a2 !== void 0 ? _a2 : false
          },
          server,
          isPlain: true
        });
      });
      const promise = new Promise((resolve4, reject) => {
        server.once("error", reject);
        server.listen(0, () => {
          const address = getAddress(server);
          server.off("error", reject);
          runningServers[address] = { server, connections: /* @__PURE__ */ new Set() };
          log2("server listening to ", address);
          resolve4(address);
        });
      });
      return (0, nodeify_1.nodeify)(promise, callback);
    }
    exports.createTunnel = createTunnel;
    async function closeTunnel(serverPath, closeConnections, callback) {
      const { hostname, port } = new node_url_1.URL(`tcp://${serverPath}`);
      if (!hostname)
        throw new Error("serverPath must contain hostname");
      if (!port)
        throw new Error("serverPath must contain port");
      const promise = new Promise((resolve4) => {
        if (!runningServers[serverPath]) {
          resolve4(false);
          return;
        }
        if (!closeConnections) {
          resolve4(true);
          return;
        }
        for (const connection of runningServers[serverPath].connections) {
          connection.destroy();
        }
        resolve4(true);
      }).then(async (serverExists) => new Promise((resolve4) => {
        if (!serverExists) {
          resolve4(false);
          return;
        }
        runningServers[serverPath].server.close(() => {
          delete runningServers[serverPath];
          resolve4(true);
        });
      }));
      return (0, nodeify_1.nodeify)(promise, callback);
    }
    exports.closeTunnel = closeTunnel;
  }
});

// ../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/index.js
var require_dist8 = __commonJS({
  "../../node_modules/.pnpm/proxy-chain@2.7.1/node_modules/proxy-chain/dist/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_request_error(), exports);
    tslib_1.__exportStar(require_server(), exports);
    tslib_1.__exportStar(require_redact_url(), exports);
    tslib_1.__exportStar(require_anonymize_proxy(), exports);
    tslib_1.__exportStar(require_tcp_tunnel_tools(), exports);
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/anonymize-proxy.js
var require_anonymize_proxy2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/anonymize-proxy.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.anonymizeProxySugar = void 0;
    var proxy_chain_1 = require_dist8();
    var anonymizeProxySugar2 = async (proxyUrl, username, password) => {
      if (proxyUrl) {
        const url3 = new URL(proxyUrl);
        if (username || password) {
          url3.username = username ?? "";
          url3.password = password ?? "";
        }
        if (url3.username || url3.password) {
          const proxyUrlString = url3.href.endsWith("/") ? url3.href.slice(0, -1) : url3.href;
          const anonymized = await (0, proxy_chain_1.anonymizeProxy)(proxyUrlString);
          return [
            anonymized,
            async () => {
              await (0, proxy_chain_1.closeAnonymizedProxy)(anonymized, true);
            }
          ];
        }
        return [void 0, async () => {
        }];
      }
      return [void 0, async () => {
      }];
    };
    exports.anonymizeProxySugar = anonymizeProxySugar2;
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/container-proxy-server.js
var require_container_proxy_server = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/container-proxy-server.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.createProxyServerForContainers = createProxyServerForContainers;
    var proxy_chain_1 = require_dist8();
    async function createProxyServerForContainers(fallbackProxyUrl) {
      const ipToProxy = /* @__PURE__ */ new Map();
      const proxyServer = new proxy_chain_1.Server({
        prepareRequestFunction({ request }) {
          const prefix4to6 = "::ffff:";
          const localAddress = request.socket.localAddress.startsWith(prefix4to6) ? request.socket.localAddress.slice(prefix4to6.length) : request.socket.localAddress;
          const upstreamProxyUrl = ipToProxy.get(localAddress);
          if (upstreamProxyUrl === void 0) {
            if (fallbackProxyUrl) {
              return {
                upstreamProxyUrl: fallbackProxyUrl,
                requestAuthentication: false
              };
            }
            console.warn(`Request without proxy ${localAddress} ${request.headers.host}`);
          }
          return {
            upstreamProxyUrl,
            requestAuthentication: false
          };
        },
        port: 0
      });
      await proxyServer.listen();
      proxyServer.server.unref();
      return {
        port: proxyServer.port,
        ipToProxy,
        async close(closeConnections) {
          return proxyServer.close(closeConnections);
        }
      };
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/logger.js
var require_logger = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/logger.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.log = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var log_1 = tslib_1.__importDefault(require_cjs3());
    exports.log = log_1.default.child({
      prefix: "BrowserPool"
    });
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/proxy-server.js
var require_proxy_server = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/proxy-server.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getLocalProxyAddress = getLocalProxyAddress;
    var proxy_chain_1 = require_dist8();
    var server = new proxy_chain_1.Server({
      port: 0
    });
    server.server.unref();
    var listenPromise = server.listen();
    listenPromise.catch(() => {
    });
    async function getLocalProxyAddress() {
      await listenPromise;
      return `http://127.0.0.1:${server.port}`;
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/playwright/load-firefox-addon.js
var require_load_firefox_addon = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/playwright/load-firefox-addon.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.loadFirefoxAddon = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_buffer_1 = __require("node:buffer");
    var node_net_1 = tslib_1.__importDefault(__require("node:net"));
    var loadFirefoxAddon = async (port, host, addonPath) => {
      return new Promise((resolve4) => {
        const socket = node_net_1.default.connect({
          port,
          host
        });
        let success = false;
        socket.once("error", () => {
        });
        socket.once("close", () => {
          resolve4(success);
        });
        const send = (data2) => {
          const raw = node_buffer_1.Buffer.from(JSON.stringify(data2));
          socket.write(`${raw.length}`);
          socket.write(":");
          socket.write(raw);
        };
        send({
          to: "root",
          type: "getRoot"
        });
        const onMessage = (message) => {
          if (message.addonsActor) {
            send({
              to: message.addonsActor,
              type: "installTemporaryAddon",
              addonPath
            });
          }
          if (message.addon) {
            success = true;
            socket.end();
          }
          if (message.error) {
            socket.end();
          }
        };
        const buffers = [];
        let remainingBytes = 0;
        socket.on("data", (data2) => {
          while (true) {
            if (remainingBytes === 0) {
              const index2 = data2.indexOf(":");
              buffers.push(data2);
              if (index2 === -1) {
                return;
              }
              const buffer2 = node_buffer_1.Buffer.concat(buffers);
              const bufferIndex = buffer2.indexOf(":");
              buffers.length = 0;
              remainingBytes = Number(buffer2.subarray(0, bufferIndex).toString());
              if (!Number.isFinite(remainingBytes)) {
                throw new Error("Invalid state");
              }
              data2 = buffer2.subarray(bufferIndex + 1);
            }
            if (data2.length < remainingBytes) {
              remainingBytes -= data2.length;
              buffers.push(data2);
              break;
            }
            buffers.push(data2.subarray(0, remainingBytes));
            const buffer = node_buffer_1.Buffer.concat(buffers);
            buffers.length = 0;
            const json = JSON.parse(buffer.toString());
            queueMicrotask(() => {
              onMessage(json);
            });
            const remainder = data2.subarray(remainingBytes);
            remainingBytes = 0;
            if (remainder.length === 0) {
              break;
            }
            data2 = remainder;
          }
        });
      });
    };
    exports.loadFirefoxAddon = loadFirefoxAddon;
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/playwright/playwright-browser.js
var require_playwright_browser = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/playwright/playwright-browser.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.PlaywrightBrowser = void 0;
    var node_events_1 = __require("node:events");
    var PlaywrightBrowser2 = class extends node_events_1.EventEmitter {
      constructor(options) {
        super();
        Object.defineProperty(this, "_browserContext", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_version", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_isConnected", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: true
        });
        Object.defineProperty(this, "_browserType", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        const { browserContext, version: version2 } = options;
        this._browserContext = browserContext;
        this._version = version2;
        this._browserContext.once("close", () => {
          this._isConnected = false;
          this.emit("disconnected");
        });
      }
      async [Symbol.asyncDispose]() {
        await this.close();
      }
      async close() {
        await this._browserContext.close();
      }
      contexts() {
        return [this._browserContext];
      }
      isConnected() {
        return this._isConnected;
      }
      version() {
        return this._version;
      }
      /** @internal */
      _setBrowserType(browserType) {
        this._browserType = browserType;
      }
      browserType() {
        return this._browserType;
      }
      async newPage(...args) {
        return this._browserContext.newPage(...args);
      }
      async newContext() {
        throw new Error("Function `newContext()` is not available in incognito mode");
      }
      async newBrowserCDPSession() {
        throw new Error("Function `newBrowserCDPSession()` is not available in incognito mode");
      }
      async startTracing() {
        throw new Error("Function `startTracing()` is not available in incognito mode");
      }
      async stopTracing() {
        throw new Error("Function `stopTracing()` is not available in incognito mode");
      }
    };
    exports.PlaywrightBrowser = PlaywrightBrowser2;
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/abstract-classes/browser-controller.js
var require_browser_controller = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/abstract-classes/browser-controller.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BrowserController = void 0;
    var nanoid_1 = require_nanoid();
    var tiny_typed_emitter_1 = require_lib13();
    var timeout_1 = require_cjs();
    var logger_1 = require_logger();
    var PROCESS_KILL_TIMEOUT_MILLIS = 5e3;
    var BrowserController2 = class extends tiny_typed_emitter_1.TypedEmitter {
      constructor(browserPlugin) {
        super();
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: (0, nanoid_1.nanoid)()
        });
        Object.defineProperty(this, "browserPlugin", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "browser", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "launchContext", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "proxyTier", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "proxyUrl", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "isActive", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "activePages", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "totalPages", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "lastPageOpenedAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: Date.now()
        });
        Object.defineProperty(this, "_activate", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "isActivePromise", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new Promise((resolve4) => {
            this._activate = resolve4;
          })
        });
        Object.defineProperty(this, "commitBrowser", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "hasBrowserPromise", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new Promise((resolve4) => {
            this.commitBrowser = resolve4;
          })
        });
        this.browserPlugin = browserPlugin;
      }
      /**
       * Activates the BrowserController. If you try to open new pages before
       * activation, the pages will get queued and will only be opened after
       * activate is called.
       * @ignore
       */
      activate() {
        if (!this.browser) {
          throw new Error("Cannot activate BrowserController without an assigned browser.");
        }
        this._activate();
        this.isActive = true;
      }
      /**
       * @ignore
       */
      assignBrowser(browser, launchContext) {
        if (this.browser) {
          throw new Error("BrowserController already has a browser instance assigned.");
        }
        this.browser = browser;
        this.launchContext = launchContext;
        this.commitBrowser();
      }
      /**
       * Gracefully closes the browser and makes sure
       * there will be no lingering browser processes.
       *
       * Emits 'browserClosed' event.
       */
      async close() {
        await this.hasBrowserPromise;
        try {
          await this._close();
          this.isActive = false;
        } catch (error) {
          logger_1.log.debug(`Could not close browser.
Cause: ${error.message}`, { id: this.id });
        }
        this.emit("browserClosed", this);
        setTimeout(() => {
          this._kill().catch((err2) => {
            logger_1.log.debug(`Could not kill browser.
Cause: ${err2.message}`, { id: this.id });
          });
        }, PROCESS_KILL_TIMEOUT_MILLIS);
      }
      /**
       * Immediately kills the browser process.
       *
       * Emits 'browserClosed' event.
       */
      async kill() {
        await this.hasBrowserPromise;
        await this._kill();
        this.emit("browserClosed", this);
      }
      /**
       * Opens new browser page.
       * @ignore
       */
      async newPage(pageOptions) {
        this.activePages++;
        this.totalPages++;
        await this.isActivePromise;
        const page = await this._newPage(pageOptions);
        (0, timeout_1.tryCancel)();
        this.lastPageOpenedAt = Date.now();
        return page;
      }
      async setCookies(page, cookies) {
        return this._setCookies(page, cookies);
      }
      async getCookies(page) {
        return this._getCookies(page);
      }
    };
    exports.BrowserController = BrowserController2;
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/playwright/playwright-controller.js
var require_playwright_controller = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/playwright/playwright-controller.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.PlaywrightController = void 0;
    var timeout_1 = require_cjs();
    var browser_controller_1 = require_browser_controller();
    var anonymize_proxy_1 = require_anonymize_proxy2();
    var tabIds = /* @__PURE__ */ new WeakMap();
    var keyFromTabId = (tabId) => `.${tabId}.`;
    var PlaywrightController2 = class extends browser_controller_1.BrowserController {
      normalizeProxyOptions(proxyUrl, pageOptions) {
        if (!proxyUrl) {
          return {};
        }
        const url3 = new URL(proxyUrl);
        const username = decodeURIComponent(url3.username);
        const password = decodeURIComponent(url3.password);
        return {
          proxy: {
            server: url3.origin,
            username,
            password,
            bypass: pageOptions?.proxy?.bypass
          }
        };
      }
      async _newPage(contextOptions) {
        if (contextOptions !== void 0 && !this.launchContext.useIncognitoPages && !this.launchContext.experimentalContainers) {
          throw new Error("A new page can be created with provided context only when using incognito pages or experimental containers.");
        }
        let close = async () => {
        };
        if (this.launchContext.useIncognitoPages) {
          contextOptions = {
            ...this.launchContext.launchOptions,
            ...contextOptions
          };
          if (contextOptions?.proxy) {
            const [anonymizedProxyUrl, closeProxy] = await (0, anonymize_proxy_1.anonymizeProxySugar)(contextOptions.proxy.server, contextOptions.proxy.username, contextOptions.proxy.password);
            if (anonymizedProxyUrl) {
              contextOptions.proxy = {
                server: anonymizedProxyUrl,
                bypass: contextOptions.proxy.bypass
              };
            }
            close = closeProxy;
          }
        }
        try {
          const page = await this.browser.newPage(contextOptions);
          page.once("close", async () => {
            this.activePages--;
            await close();
          });
          if (this.launchContext.experimentalContainers) {
            await page.goto("data:text/plain,tabid");
            await page.waitForNavigation();
            const { tabid, proxyip } = JSON.parse(decodeURIComponent(page.url().slice("about:blank#".length)));
            if (contextOptions?.proxy) {
              const url3 = new URL(contextOptions.proxy.server);
              url3.username = contextOptions.proxy.username ?? "";
              url3.password = contextOptions.proxy.password ?? "";
              this.browserPlugin._containerProxyServer.ipToProxy.set(proxyip, url3.href);
            }
            if (this.browserPlugin.library.name() === "firefox") {
            } else {
              const session = await page.context().newCDPSession(page);
              await session.send("Network.enable");
              session.on("Network.responseReceived", (responseReceived) => {
                const logOnly = ["Document", "XHR", "Fetch", "EventSource", "WebSocket", "Other"];
                if (!logOnly.includes(responseReceived.type)) {
                  return;
                }
                const { response } = responseReceived;
                if (response.fromDiskCache || response.fromPrefetchCache || response.fromServiceWorker) {
                  return;
                }
                const { remoteIPAddress } = response;
                if (remoteIPAddress && remoteIPAddress !== proxyip) {
                  console.warn(`Request to ${response.url} was through ${remoteIPAddress} instead of ${proxyip}`);
                }
              });
            }
            tabIds.set(page, tabid);
          }
          (0, timeout_1.tryCancel)();
          return page;
        } catch (error) {
          await close();
          throw error;
        }
      }
      async _close() {
        await this.browser.close();
      }
      async _kill() {
        await this.browser.close();
      }
      async _getCookies(page) {
        const context = page.context();
        const cookies = await context.cookies();
        if (this.launchContext.experimentalContainers) {
          const tabId = tabIds.get(page);
          if (tabId === void 0) {
            throw new Error("Failed to find tabId for page");
          }
          const key = keyFromTabId(tabId);
          return cookies.filter((cookie) => cookie.name.startsWith(key)).map((cookie) => ({
            ...cookie,
            name: cookie.name.slice(key.length)
          }));
        }
        return cookies;
      }
      async _setCookies(page, cookies) {
        const context = page.context();
        if (this.launchContext.experimentalContainers) {
          const tabId = tabIds.get(page);
          if (tabId === void 0) {
            throw new Error("Failed to find tabId for page");
          }
          const key = keyFromTabId(tabId);
          cookies = cookies.map((cookie) => ({
            ...cookie,
            name: `${key}${cookie.name}`
          }));
        }
        return context.addCookies(cookies);
      }
    };
    exports.PlaywrightController = PlaywrightController2;
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/playwright/playwright-plugin.js
var require_playwright_plugin = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/playwright/playwright-plugin.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.PlaywrightPlugin = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_fs_1 = tslib_1.__importDefault(__require("node:fs"));
    var node_net_1 = tslib_1.__importDefault(__require("node:net"));
    var node_os_1 = tslib_1.__importDefault(__require("node:os"));
    var node_path_1 = tslib_1.__importDefault(__require("node:path"));
    var browser_plugin_1 = require_browser_plugin();
    var anonymize_proxy_1 = require_anonymize_proxy2();
    var container_proxy_server_1 = require_container_proxy_server();
    var logger_1 = require_logger();
    var proxy_server_1 = require_proxy_server();
    var load_firefox_addon_1 = require_load_firefox_addon();
    var playwright_browser_1 = require_playwright_browser();
    var playwright_controller_1 = require_playwright_controller();
    var getFreePort = async () => {
      return new Promise((resolve4, reject) => {
        const server = node_net_1.default.createServer().once("error", reject).listen(() => {
          resolve4(server.address().port);
          server.close();
        });
      });
    };
    var taacPath = node_path_1.default.join(__dirname, "..", "tab-as-a-container");
    var PlaywrightPlugin2 = class extends browser_plugin_1.BrowserPlugin {
      constructor() {
        super(...arguments);
        Object.defineProperty(this, "_browserVersion", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_containerProxyServer", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
      }
      async _launch(launchContext) {
        const { launchOptions, useIncognitoPages, proxyUrl } = launchContext;
        let { userDataDir } = launchContext;
        let browser;
        launchOptions.proxy = {
          server: await (0, proxy_server_1.getLocalProxyAddress)(),
          ...launchOptions.proxy
        };
        if (this.library.name() === "webkit") {
          launchOptions.args = launchOptions.args?.filter((arg) => arg !== "--no-sandbox");
        }
        const [anonymizedProxyUrl, close] = await (0, anonymize_proxy_1.anonymizeProxySugar)(proxyUrl);
        if (anonymizedProxyUrl) {
          launchOptions.proxy = {
            server: anonymizedProxyUrl,
            bypass: launchOptions.proxy.bypass
          };
        }
        try {
          if (useIncognitoPages) {
            browser = await this.library.launch(launchOptions).catch((error) => {
              return this._throwOnFailedLaunch(launchContext, error);
            });
            if (anonymizedProxyUrl) {
              browser.on("disconnected", async () => {
                await close();
              });
            }
          } else {
            const experimentalContainers = launchContext.experimentalContainers && this.library.name() !== "webkit";
            let firefoxPort;
            if (experimentalContainers) {
              launchOptions.args = [...launchOptions.args ?? []];
              if (launchOptions.headless && this.library.name() === "chromium") {
                launchOptions.args.push("--headless=chrome");
              }
              if (this.library.name() === "chromium") {
                launchOptions.args.push(`--disable-extensions-except=${taacPath}`, `--load-extension=${taacPath}`);
              } else if (this.library.name() === "firefox") {
                firefoxPort = await getFreePort();
                launchOptions.args.push(`--start-debugger-server=${firefoxPort}`);
                const prefs = {
                  "devtools.debugger.remote-enabled": true,
                  "devtools.debugger.prompt-connection": false
                };
                const prefsRaw = Object.entries(prefs).map(([name, value2]) => `user_pref(${JSON.stringify(name)}, ${JSON.stringify(value2)});`).join("\n");
                if (userDataDir === "") {
                  userDataDir = node_fs_1.default.mkdtempSync(node_path_1.default.join(node_os_1.default.tmpdir(), "apify-playwright-firefox-taac-"));
                }
                node_fs_1.default.writeFileSync(node_path_1.default.join(userDataDir, "user.js"), prefsRaw);
              }
            }
            const browserContext = await this.library.launchPersistentContext(userDataDir, launchOptions).catch((error) => {
              return this._throwOnFailedLaunch(launchContext, error);
            });
            browserContext.once("close", () => {
              if (userDataDir.includes("apify-playwright-firefox-taac-")) {
                node_fs_1.default.rmSync(userDataDir, {
                  recursive: true,
                  force: true
                });
              }
            });
            if (experimentalContainers) {
              if (this.library.name() === "firefox") {
                const loaded = await (0, load_firefox_addon_1.loadFirefoxAddon)(firefoxPort, "127.0.0.1", taacPath);
                if (!loaded) {
                  await browserContext.close();
                  throw new Error("Failed to load Firefox experimental containers addon");
                }
              }
              const checker = await browserContext.newPage();
              await checker.goto("data:text/plain,tabid");
              await checker.waitForNavigation();
              await checker.close();
              this._containerProxyServer = await (0, container_proxy_server_1.createProxyServerForContainers)();
              const page = await browserContext.newPage();
              await page.goto(`data:text/plain,proxy#{"port":${this._containerProxyServer.port}}`);
              await page.waitForNavigation();
              await page.close();
              browserContext.on("close", async () => {
                await this._containerProxyServer.close(true);
              });
            }
            if (anonymizedProxyUrl) {
              browserContext.on("close", async () => {
                await close();
              });
            }
            if (!this._browserVersion) {
              const inactiveBrowser = await this.library.launch(launchOptions);
              this._browserVersion = inactiveBrowser.version();
              inactiveBrowser.close().catch((error) => {
                logger_1.log.exception(error, "Failed to close browser.");
              });
            }
            browser = new playwright_browser_1.PlaywrightBrowser({
              browserContext,
              version: this._browserVersion
            });
          }
        } catch (error) {
          await close();
          throw error;
        }
        return browser;
      }
      _throwOnFailedLaunch(launchContext, cause) {
        this._throwAugmentedLaunchError(cause, launchContext.launchOptions?.executablePath, "`apify/actor-node-playwright-*` (with a correct browser name)", "Try installing the required dependencies by running `npx playwright install --with-deps` (https://playwright.dev/docs/browsers).");
      }
      _createController() {
        return new playwright_controller_1.PlaywrightController(this);
      }
      async _addProxyToLaunchOptions(launchContext) {
        launchContext.launchOptions ?? (launchContext.launchOptions = {});
        const { launchOptions, proxyUrl } = launchContext;
        if (proxyUrl) {
          const url3 = new URL(proxyUrl);
          launchOptions.proxy = {
            server: url3.origin,
            username: decodeURIComponent(url3.username),
            password: decodeURIComponent(url3.password)
          };
        }
      }
      _isChromiumBasedBrowser() {
        const name = this.library.name();
        return name === "chromium";
      }
    };
    exports.PlaywrightPlugin = PlaywrightPlugin2;
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/utils.js
var require_utils12 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.noop = noop6;
    function noop6(..._args) {
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/puppeteer/puppeteer-controller.js
var require_puppeteer_controller = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/puppeteer/puppeteer-controller.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.PuppeteerController = void 0;
    var timeout_1 = require_cjs();
    var browser_controller_1 = require_browser_controller();
    var anonymize_proxy_1 = require_anonymize_proxy2();
    var logger_1 = require_logger();
    var PROCESS_KILL_TIMEOUT_MILLIS = 5e3;
    var PuppeteerController2 = class extends browser_controller_1.BrowserController {
      normalizeProxyOptions(proxyUrl, pageOptions) {
        if (!proxyUrl) {
          return {};
        }
        const url3 = new URL(proxyUrl);
        const username = decodeURIComponent(url3.username);
        const password = decodeURIComponent(url3.password);
        return {
          proxyServer: url3.origin,
          proxyUsername: username,
          proxyPassword: password,
          proxyBypassList: pageOptions?.proxyBypassList
        };
      }
      async _newPage(contextOptions) {
        if (contextOptions !== void 0) {
          if (!this.launchContext.useIncognitoPages) {
            throw new Error("A new page can be created with provided context only when using incognito pages or experimental containers.");
          }
          let close = async () => {
          };
          if (contextOptions.proxyServer) {
            const [anonymizedProxyUrl, closeProxy] = await (0, anonymize_proxy_1.anonymizeProxySugar)(contextOptions.proxyServer, contextOptions.proxyUsername, contextOptions.proxyPassword);
            if (anonymizedProxyUrl) {
              contextOptions.proxyServer = anonymizedProxyUrl;
              delete contextOptions.proxyUsername;
              delete contextOptions.proxyPassword;
            }
            close = closeProxy;
          }
          try {
            const { CdpBrowser } = await import("puppeteer");
            const oldPuppeteerVersion = !CdpBrowser || "createIncognitoBrowserContext" in CdpBrowser.prototype;
            const method = oldPuppeteerVersion ? "createIncognitoBrowserContext" : "createBrowserContext";
            const context = await this.browser[method](contextOptions);
            (0, timeout_1.tryCancel)();
            const page2 = await context.newPage();
            (0, timeout_1.tryCancel)();
            page2.once("close", async () => {
              this.activePages--;
              try {
                await context.close();
              } catch (error) {
                logger_1.log.exception(error, "Failed to close context.");
              } finally {
                await close();
              }
            });
            return page2;
          } catch (error) {
            await close();
            throw error;
          }
        }
        const page = await this.browser.newPage();
        (0, timeout_1.tryCancel)();
        page.once("close", () => {
          this.activePages--;
        });
        return page;
      }
      async _close() {
        await this.browser.close();
      }
      async _kill() {
        const browserProcess = this.browser.process();
        if (!browserProcess) {
          logger_1.log.debug("Browser was connected using the `puppeteer.connect` method no browser to kill.");
          return;
        }
        const timeout = setTimeout(() => {
          browserProcess?.kill("SIGKILL");
        }, PROCESS_KILL_TIMEOUT_MILLIS);
        try {
          await this.browser.close();
          clearTimeout(timeout);
        } catch (error) {
          logger_1.log.debug("Browser was already killed.", { error });
        }
      }
      async _getCookies(page) {
        return page.cookies();
      }
      async _setCookies(page, cookies) {
        return page.setCookie(...cookies);
      }
    };
    exports.PuppeteerController = PuppeteerController2;
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/puppeteer/puppeteer-plugin.js
var require_puppeteer_plugin = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/puppeteer/puppeteer-plugin.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.PuppeteerPlugin = void 0;
    var promises_1 = __require("node:fs/promises");
    var browser_plugin_1 = require_browser_plugin();
    var anonymize_proxy_1 = require_anonymize_proxy2();
    var logger_1 = require_logger();
    var utils_1 = require_utils12();
    var puppeteer_controller_1 = require_puppeteer_controller();
    var PROXY_SERVER_ARG = "--proxy-server=";
    var PuppeteerPlugin2 = class extends browser_plugin_1.BrowserPlugin {
      async _launch(launchContext) {
        let oldPuppeteerVersion = false;
        try {
          const jsonPath = __require.resolve("puppeteer/package.json");
          const parsed = JSON.parse(await (0, promises_1.readFile)(jsonPath, "utf-8"));
          const version2 = +parsed.version.split(".")[0];
          oldPuppeteerVersion = version2 < 22;
        } catch {
        }
        const { launchOptions, userDataDir, useIncognitoPages, experimentalContainers, proxyUrl } = launchContext;
        if (experimentalContainers) {
          throw new Error("Experimental containers are only available with Playwright");
        }
        launchOptions.userDataDir = launchOptions.userDataDir ?? userDataDir;
        if (launchOptions.headless === false) {
          if (Array.isArray(launchOptions.args)) {
            launchOptions.args.push("--disable-site-isolation-trials");
          } else {
            launchOptions.args = ["--disable-site-isolation-trials"];
          }
        }
        if (launchOptions.headless === true && oldPuppeteerVersion) {
          launchOptions.headless = "new";
        }
        let browser;
        {
          const [anonymizedProxyUrl, close] = await (0, anonymize_proxy_1.anonymizeProxySugar)(proxyUrl);
          if (proxyUrl) {
            const proxyArg = `${PROXY_SERVER_ARG}${anonymizedProxyUrl ?? proxyUrl}`;
            if (Array.isArray(launchOptions.args)) {
              launchOptions.args.push(proxyArg);
            } else {
              launchOptions.args = [proxyArg];
            }
          }
          try {
            browser = await this.library.launch(launchOptions);
            if (anonymizedProxyUrl) {
              browser.on("disconnected", async () => {
                await close();
              });
            }
          } catch (error) {
            await close();
            this._throwAugmentedLaunchError(error, launchContext.launchOptions?.executablePath, "`apify/actor-node-puppeteer-chrome`", "Try installing a browser, if it's missing, by running `npx @puppeteer/browsers install chromium --path [path]` and pointing `executablePath` to the downloaded executable (https://pptr.dev/browsers-api)");
          }
        }
        browser.on("targetcreated", async (target) => {
          try {
            const page = await target.page();
            if (page) {
              page.on("error", (error) => {
                logger_1.log.exception(error, "Page crashed.");
                page.close().catch(utils_1.noop);
              });
            }
          } catch (error) {
            logger_1.log.exception(error, "Failed to retrieve page from target.");
          }
        });
        const boundMethods = [
          "newPage",
          "close",
          "userAgent",
          "createIncognitoBrowserContext",
          "createBrowserContext",
          "version",
          "on",
          "process"
        ].reduce((map, method2) => {
          map[method2] = browser[method2]?.bind(browser);
          return map;
        }, {});
        const method = oldPuppeteerVersion ? "createIncognitoBrowserContext" : "createBrowserContext";
        browser = new Proxy(browser, {
          get: (target, property, receiver) => {
            if (property === "newPage") {
              return async (...args) => {
                let page;
                if (useIncognitoPages) {
                  const [anonymizedProxyUrl, close] = await (0, anonymize_proxy_1.anonymizeProxySugar)(proxyUrl);
                  try {
                    const context = await browser[method]({
                      proxyServer: anonymizedProxyUrl ?? proxyUrl
                    });
                    page = await context.newPage(...args);
                    if (anonymizedProxyUrl) {
                      page.on("close", async () => {
                        await close();
                      });
                    }
                  } catch (error) {
                    await close();
                    throw error;
                  }
                } else {
                  page = await boundMethods.newPage(...args);
                }
                return page;
              };
            }
            if (property in boundMethods) {
              return boundMethods[property];
            }
            return Reflect.get(target, property, receiver);
          }
        });
        return browser;
      }
      _createController() {
        return new puppeteer_controller_1.PuppeteerController(this);
      }
      async _addProxyToLaunchOptions(_launchContext) {
      }
      _isChromiumBasedBrowser(_launchContext) {
        return true;
      }
    };
    exports.PuppeteerPlugin = PuppeteerPlugin2;
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/fingerprinting/types.js
var require_types3 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/fingerprinting/types.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DeviceCategory = exports.OperatingSystemsName = exports.BrowserName = void 0;
    var BrowserName2;
    (function(BrowserName3) {
      BrowserName3["chrome"] = "chrome";
      BrowserName3["firefox"] = "firefox";
      BrowserName3["safari"] = "safari";
      BrowserName3["edge"] = "edge";
    })(BrowserName2 || (exports.BrowserName = BrowserName2 = {}));
    var OperatingSystemsName2;
    (function(OperatingSystemsName3) {
      OperatingSystemsName3["linux"] = "linux";
      OperatingSystemsName3["macos"] = "macos";
      OperatingSystemsName3["windows"] = "windows";
      OperatingSystemsName3["android"] = "android";
      OperatingSystemsName3["ios"] = "ios";
    })(OperatingSystemsName2 || (exports.OperatingSystemsName = OperatingSystemsName2 = {}));
    var DeviceCategory2;
    (function(DeviceCategory3) {
      DeviceCategory3["mobile"] = "mobile";
      DeviceCategory3["desktop"] = "desktop";
    })(DeviceCategory2 || (exports.DeviceCategory = DeviceCategory2 = {}));
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/fingerprinting/utils.js
var require_utils13 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/fingerprinting/utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getGeneratorDefaultOptions = void 0;
    var playwright_plugin_1 = require_playwright_plugin();
    var puppeteer_plugin_1 = require_puppeteer_plugin();
    var types_1 = require_types3();
    var getGeneratorDefaultOptions = (launchContext) => {
      const { browserPlugin, launchOptions } = launchContext;
      const options = {
        devices: [
          "desktop"
          /* DeviceCategory.desktop */
        ],
        locales: ["en-US"],
        browsers: [getBrowserName(browserPlugin, launchOptions)],
        operatingSystems: [getOperatingSystem()]
      };
      return options;
    };
    exports.getGeneratorDefaultOptions = getGeneratorDefaultOptions;
    var getBrowserName = (browserPlugin, launchOptions) => {
      const { library } = browserPlugin;
      let browserName;
      if (browserPlugin instanceof playwright_plugin_1.PlaywrightPlugin) {
        browserName = library.name();
      }
      if (browserPlugin instanceof puppeteer_plugin_1.PuppeteerPlugin) {
        browserName = launchOptions.product || library.product;
      }
      switch (browserName) {
        case "webkit":
          return types_1.BrowserName.safari;
        case "firefox":
          return types_1.BrowserName.firefox;
        default:
          return types_1.BrowserName.chrome;
      }
    };
    var getOperatingSystem = () => {
      const { platform } = process;
      switch (platform) {
        case "win32":
          return "windows";
        case "darwin":
          return "macos";
        default:
          return "linux";
      }
    };
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/fingerprinting/hooks.js
var require_hooks = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/fingerprinting/hooks.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.createFingerprintPreLaunchHook = createFingerprintPreLaunchHook;
    exports.createPrePageCreateHook = createPrePageCreateHook;
    exports.createPostPageCreateHook = createPostPageCreateHook;
    var playwright_plugin_1 = require_playwright_plugin();
    var puppeteer_plugin_1 = require_puppeteer_plugin();
    var utils_1 = require_utils13();
    function createFingerprintPreLaunchHook(browserPool) {
      const { fingerprintGenerator, fingerprintCache, fingerprintOptions: { fingerprintGeneratorOptions } } = browserPool;
      return (_pageId, launchContext) => {
        const { useIncognitoPages } = launchContext;
        const cacheKey = launchContext.session?.id ?? launchContext.proxyUrl;
        const { launchOptions } = launchContext;
        const fingerprintGeneratorFinalOptions = fingerprintGeneratorOptions || (0, utils_1.getGeneratorDefaultOptions)(launchContext);
        let fingerprint;
        if (cacheKey && fingerprintCache?.has(cacheKey)) {
          fingerprint = fingerprintCache.get(cacheKey);
        } else if (cacheKey) {
          fingerprint = fingerprintGenerator.getFingerprint(fingerprintGeneratorFinalOptions);
          fingerprintCache?.set(cacheKey, fingerprint);
        } else {
          fingerprint = fingerprintGenerator.getFingerprint(fingerprintGeneratorFinalOptions);
        }
        launchContext.extend({ fingerprint });
        if (useIncognitoPages) {
          return;
        }
        const { navigator: { userAgent }, screen } = fingerprint.fingerprint;
        launchOptions.userAgent = userAgent;
        launchOptions.viewport = {
          width: screen.width,
          height: screen.height
        };
      };
    }
    function createPrePageCreateHook() {
      return (_pageId, browserController, pageOptions) => {
        const { launchContext, browserPlugin } = browserController;
        const { fingerprint } = launchContext.fingerprint;
        if (launchContext.useIncognitoPages && browserPlugin instanceof playwright_plugin_1.PlaywrightPlugin && pageOptions) {
          pageOptions.userAgent ?? (pageOptions.userAgent = fingerprint.navigator.userAgent);
          pageOptions.viewport ?? (pageOptions.viewport = {
            width: fingerprint.screen.width,
            height: fingerprint.screen.height
          });
        }
      };
    }
    function createPostPageCreateHook(fingerprintInjector) {
      return async (page, browserController) => {
        const { browserPlugin, launchContext } = browserController;
        const fingerprint = launchContext.fingerprint;
        if (browserPlugin instanceof playwright_plugin_1.PlaywrightPlugin) {
          const { useIncognitoPages, isFingerprintInjected } = launchContext;
          if (isFingerprintInjected) {
            return;
          }
          const context = page.context();
          await fingerprintInjector.attachFingerprintToPlaywright(context, fingerprint);
          if (!useIncognitoPages) {
            launchContext.extend({ isFingerprintInjected: true });
          }
        } else if (browserPlugin instanceof puppeteer_plugin_1.PuppeteerPlugin) {
          await fingerprintInjector.attachFingerprintToPuppeteer(page, fingerprint);
        }
      };
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/browser-pool.js
var require_browser_pool = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/browser-pool.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BrowserPool = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var fingerprint_generator_1 = require_fingerprint_generator2();
    var fingerprint_injector_1 = require_fingerprint_injector2();
    var nanoid_1 = require_nanoid();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var p_limit_1 = tslib_1.__importDefault(require_p_limit());
    var quick_lru_1 = tslib_1.__importDefault(require_quick_lru());
    var tiny_typed_emitter_1 = require_lib13();
    var timeout_1 = require_cjs();
    var hooks_1 = require_hooks();
    var logger_1 = require_logger();
    var PAGE_CLOSE_KILL_TIMEOUT_MILLIS = 1e3;
    var BROWSER_KILLER_INTERVAL_MILLIS = 10 * 1e3;
    var BrowserPool2 = class extends tiny_typed_emitter_1.TypedEmitter {
      constructor(options) {
        super();
        Object.defineProperty(this, "browserPlugins", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxOpenPagesPerBrowser", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "retireBrowserAfterPageCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "operationTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "closeInactiveBrowserAfterMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "useFingerprints", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "fingerprintOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "preLaunchHooks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "postLaunchHooks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "prePageCreateHooks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "postPageCreateHooks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "prePageCloseHooks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "postPageCloseHooks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "pageCounter", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "pages", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "pageIds", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new WeakMap()
        });
        Object.defineProperty(this, "startingBrowserControllers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
        Object.defineProperty(this, "activeBrowserControllers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
        Object.defineProperty(this, "retiredBrowserControllers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
        Object.defineProperty(this, "pageToBrowserController", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new WeakMap()
        });
        Object.defineProperty(this, "fingerprintInjector", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "fingerprintGenerator", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "fingerprintCache", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "browserKillerInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: setInterval(async () => this._closeInactiveRetiredBrowsers(), BROWSER_KILLER_INTERVAL_MILLIS)
        });
        Object.defineProperty(this, "browserRetireInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "limiter", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: (0, p_limit_1.default)(1)
        });
        this.browserKillerInterval.unref();
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          browserPlugins: ow_1.default.array.minLength(1),
          maxOpenPagesPerBrowser: ow_1.default.optional.number,
          retireBrowserAfterPageCount: ow_1.default.optional.number,
          operationTimeoutSecs: ow_1.default.optional.number,
          closeInactiveBrowserAfterSecs: ow_1.default.optional.number,
          retireInactiveBrowserAfterSecs: ow_1.default.optional.number,
          preLaunchHooks: ow_1.default.optional.array,
          postLaunchHooks: ow_1.default.optional.array,
          prePageCreateHooks: ow_1.default.optional.array,
          postPageCreateHooks: ow_1.default.optional.array,
          prePageCloseHooks: ow_1.default.optional.array,
          postPageCloseHooks: ow_1.default.optional.array,
          useFingerprints: ow_1.default.optional.boolean,
          fingerprintOptions: ow_1.default.optional.object
        }));
        const { browserPlugins, maxOpenPagesPerBrowser = 20, retireBrowserAfterPageCount = 100, operationTimeoutSecs = 15, closeInactiveBrowserAfterSecs = 300, retireInactiveBrowserAfterSecs = 10, preLaunchHooks = [], postLaunchHooks = [], prePageCreateHooks = [], postPageCreateHooks = [], prePageCloseHooks = [], postPageCloseHooks = [], useFingerprints = true, fingerprintOptions = {} } = options;
        const firstPluginConstructor = browserPlugins[0].constructor;
        for (let i5 = 1; i5 < browserPlugins.length; i5++) {
          const providedPlugin = browserPlugins[i5];
          if (!(providedPlugin instanceof firstPluginConstructor)) {
            const firstPluginName = firstPluginConstructor.name;
            const providedPluginName = providedPlugin.constructor.name;
            throw new Error(`Browser plugin at index ${i5} (${providedPluginName}) is not an instance of the same plugin as the first plugin provided (${firstPluginName}).`);
          }
        }
        this.browserPlugins = browserPlugins;
        this.maxOpenPagesPerBrowser = maxOpenPagesPerBrowser;
        this.retireBrowserAfterPageCount = retireBrowserAfterPageCount;
        this.operationTimeoutMillis = operationTimeoutSecs * 1e3;
        this.closeInactiveBrowserAfterMillis = closeInactiveBrowserAfterSecs * 1e3;
        this.useFingerprints = useFingerprints;
        this.fingerprintOptions = fingerprintOptions;
        this.browserRetireInterval = setInterval(async () => this.activeBrowserControllers.forEach((controller) => {
          if (controller.activePages === 0 && controller.lastPageOpenedAt < Date.now() - retireInactiveBrowserAfterSecs * 1e3) {
            this.retireBrowserController(controller);
          }
        }), retireInactiveBrowserAfterSecs * 1e3);
        this.browserRetireInterval.unref();
        this.preLaunchHooks = preLaunchHooks;
        this.postLaunchHooks = postLaunchHooks;
        this.prePageCreateHooks = prePageCreateHooks;
        this.postPageCreateHooks = postPageCreateHooks;
        this.prePageCloseHooks = prePageCloseHooks;
        this.postPageCloseHooks = postPageCloseHooks;
        if (this.useFingerprints) {
          this._initializeFingerprinting();
        }
      }
      /**
       * Opens a new page in one of the running browsers or launches
       * a new browser and opens a page there, if no browsers are active,
       * or their page limits have been exceeded.
       */
      async newPage(options = {}) {
        const { id = (0, nanoid_1.nanoid)(), pageOptions, browserPlugin = this._pickBrowserPlugin(), proxyUrl, proxyTier } = options;
        if (this.pages.has(id)) {
          throw new Error(`Page with ID: ${id} already exists.`);
        }
        if (browserPlugin && !this.browserPlugins.includes(browserPlugin)) {
          throw new Error("Provided browserPlugin is not one of the plugins used by BrowserPool.");
        }
        return this.limiter(async () => {
          let browserController = this._pickBrowserWithFreeCapacity(browserPlugin, { proxyTier, proxyUrl });
          if (!browserController)
            browserController = await this._launchBrowser(id, { browserPlugin, proxyTier, proxyUrl });
          (0, timeout_1.tryCancel)();
          return await this._createPageForBrowser(id, browserController, pageOptions, proxyUrl);
        });
      }
      /**
       * Unlike {@link newPage}, `newPageInNewBrowser` always launches a new
       * browser to open the page in. Use the `launchOptions` option to
       * configure the new browser.
       */
      async newPageInNewBrowser(options = {}) {
        const { id = (0, nanoid_1.nanoid)(), pageOptions, launchOptions, browserPlugin = this._pickBrowserPlugin() } = options;
        if (this.pages.has(id)) {
          throw new Error(`Page with ID: ${id} already exists.`);
        }
        const browserController = await this._launchBrowser(id, { launchOptions, browserPlugin });
        (0, timeout_1.tryCancel)();
        return await this._createPageForBrowser(id, browserController, pageOptions);
      }
      /**
       * Opens new pages with all available plugins and returns an array
       * of pages in the same order as the plugins were provided to `BrowserPool`.
       * This is useful when you want to run a script in multiple environments
       * at the same time, typically in testing or website analysis.
       *
       * **Example:**
       * ```js
       * const browserPool = new BrowserPool({
       *     browserPlugins: [
       *         new PlaywrightPlugin(playwright.chromium),
       *         new PlaywrightPlugin(playwright.firefox),
       *         new PlaywrightPlugin(playwright.webkit),
       *     ]
       * });
       *
       * const pages = await browserPool.newPageWithEachPlugin();
       * const [chromiumPage, firefoxPage, webkitPage] = pages;
       * ```
       */
      async newPageWithEachPlugin(optionsList = []) {
        const pagePromises = this.browserPlugins.map(async (browserPlugin, idx) => {
          const userOptions = optionsList[idx] || {};
          return this.newPage({
            ...userOptions,
            browserPlugin
          });
        });
        return Promise.all(pagePromises);
      }
      /**
       * Retrieves a {@link BrowserController} for a given page. This is useful
       * when you're working only with pages and need to access the browser
       * manipulation functionality.
       *
       * You could access the browser directly from the page,
       * but that would circumvent `BrowserPool` and most likely
       * cause weird things to happen, so please always use `BrowserController`
       * to control your browsers. The function returns `undefined` if the
       * browser is closed.
       *
       * @param page - Browser plugin page
       */
      getBrowserControllerByPage(page) {
        return this.pageToBrowserController.get(page);
      }
      /**
       * If you provided a custom ID to one of your pages or saved the
       * randomly generated one, you can use this function to retrieve
       * the page. If the page is no longer open, the function will
       * return `undefined`.
       */
      getPage(id) {
        return this.pages.get(id);
      }
      /**
       * Page IDs are used throughout `BrowserPool` as a method of linking
       * events. You can use a page ID to track the full lifecycle of the page.
       * It is created even before a browser is launched and stays with the page
       * until it's closed.
       */
      getPageId(page) {
        return this.pageIds.get(page);
      }
      async _createPageForBrowser(pageId, browserController, pageOptions = {}, proxyUrl) {
        await browserController["isActivePromise"];
        (0, timeout_1.tryCancel)();
        const finalPageOptions = browserController.launchContext.useIncognitoPages || browserController.launchContext.experimentalContainers ? pageOptions : void 0;
        if (finalPageOptions) {
          Object.assign(finalPageOptions, browserController.normalizeProxyOptions(proxyUrl, pageOptions));
        }
        await this._executeHooks(this.prePageCreateHooks, pageId, browserController, finalPageOptions);
        (0, timeout_1.tryCancel)();
        let page;
        try {
          page = await (0, timeout_1.addTimeoutToPromise)(async () => browserController.newPage(finalPageOptions), this.operationTimeoutMillis, "browserController.newPage() timed out.");
          (0, timeout_1.tryCancel)();
          this.pages.set(pageId, page);
          this.pageIds.set(page, pageId);
          this.pageToBrowserController.set(page, browserController);
          if (browserController.totalPages >= this.retireBrowserAfterPageCount) {
            this.retireBrowserController(browserController);
          }
          this._overridePageClose(page);
        } catch (err2) {
          this.retireBrowserController(browserController);
          throw new Error(`browserController.newPage() failed: ${browserController.id}
Cause:${err2.message}.`);
        }
        await this._executeHooks(this.postPageCreateHooks, page, browserController);
        (0, timeout_1.tryCancel)();
        this.emit("pageCreated", page);
        return page;
      }
      /**
       * Removes a browser controller from the pool. The underlying
       * browser will be closed after all its pages are closed.
       *
       */
      retireBrowserController(browserController) {
        const isStarting = this.startingBrowserControllers.has(browserController);
        const isActive = this.activeBrowserControllers.has(browserController);
        const hasBeenRetiredOrKilled = !isStarting && !isActive;
        if (hasBeenRetiredOrKilled)
          return;
        this.retiredBrowserControllers.add(browserController);
        this.emit("browserRetired", browserController);
        this.startingBrowserControllers.delete(browserController);
        this.activeBrowserControllers.delete(browserController);
      }
      /**
       * Removes a browser from the pool. It will be
       * closed after all its pages are closed.
       */
      retireBrowserByPage(page) {
        const browserController = this.getBrowserControllerByPage(page);
        if (browserController)
          this.retireBrowserController(browserController);
      }
      /**
       * Removes all active browsers from the pool. The browsers will be
       * closed after all their pages are closed.
       */
      retireAllBrowsers() {
        [...this.startingBrowserControllers, ...this.activeBrowserControllers].forEach((controller) => {
          this.retireBrowserController(controller);
        });
      }
      /**
       * Closes all managed browsers without waiting for pages to close.
       * @return {Promise<void>}
       */
      async closeAllBrowsers() {
        const controllers = this._getAllBrowserControllers();
        const promises = [...controllers].filter((controller) => controller.isActive).map(async (controller) => controller.close());
        await Promise.all(promises);
      }
      /**
       * Closes all managed browsers and tears down the pool.
       */
      async destroy() {
        clearInterval(this.browserKillerInterval);
        clearInterval(this.browserRetireInterval);
        this.browserKillerInterval = void 0;
        this.browserRetireInterval = void 0;
        await this.closeAllBrowsers();
        this._teardown();
      }
      _teardown() {
        this.startingBrowserControllers.clear();
        this.activeBrowserControllers.clear();
        this.retiredBrowserControllers.clear();
        this.removeAllListeners();
      }
      _getAllBrowserControllers() {
        return /* @__PURE__ */ new Set([
          ...this.startingBrowserControllers,
          ...this.activeBrowserControllers,
          ...this.retiredBrowserControllers
        ]);
      }
      async _launchBrowser(pageId, options) {
        const { browserPlugin, launchOptions, proxyTier, proxyUrl } = options;
        const browserController = browserPlugin.createController();
        this.startingBrowserControllers.add(browserController);
        const launchContext = browserPlugin.createLaunchContext({
          id: pageId,
          launchOptions,
          proxyTier,
          proxyUrl
        });
        try {
          await this._executeHooks(this.preLaunchHooks, pageId, launchContext);
          (0, timeout_1.tryCancel)();
          const browser = await browserPlugin.launch(launchContext);
          (0, timeout_1.tryCancel)();
          browserController.assignBrowser(browser, launchContext);
        } catch (err2) {
          this.startingBrowserControllers.delete(browserController);
          throw err2;
        }
        logger_1.log.debug("Launched new browser.", { id: browserController.id });
        browserController.proxyTier = proxyTier;
        browserController.proxyUrl = proxyUrl;
        try {
          await this._executeHooks(this.postLaunchHooks, pageId, browserController);
        } catch (err2) {
          this.startingBrowserControllers.delete(browserController);
          browserController.close().catch((closeErr) => {
            logger_1.log.error(`Could not close browser whose post-launch hooks failed.
Cause:${closeErr.message}`, {
              id: browserController.id
            });
          });
          throw err2;
        }
        (0, timeout_1.tryCancel)();
        browserController.activate();
        this.startingBrowserControllers.delete(browserController);
        this.activeBrowserControllers.add(browserController);
        this.emit("browserLaunched", browserController);
        return browserController;
      }
      /**
       * Picks plugins round robin.
       * @private
       */
      _pickBrowserPlugin() {
        const pluginIndex = this.pageCounter % this.browserPlugins.length;
        this.pageCounter++;
        return this.browserPlugins[pluginIndex];
      }
      _pickBrowserWithFreeCapacity(browserPlugin, options) {
        return [...this.activeBrowserControllers].find((controller) => {
          const hasCapacity = controller.activePages < this.maxOpenPagesPerBrowser;
          const isCorrectPlugin = controller.browserPlugin === browserPlugin;
          const isSameProxyUrl = controller.proxyUrl === options?.proxyUrl;
          const isCorrectProxyTier = controller.proxyTier === options?.proxyTier;
          return isCorrectPlugin && hasCapacity && (!controller.launchContext.browserPerProxy && !options?.proxyTier || options?.proxyTier && isCorrectProxyTier || options?.proxyUrl && isSameProxyUrl || !options?.proxyUrl && !options?.proxyTier && !controller.proxyUrl && !controller.proxyTier);
        });
      }
      async _closeInactiveRetiredBrowsers() {
        const closedBrowserIds = [];
        for (const controller of this.retiredBrowserControllers) {
          const millisSinceLastPageOpened = Date.now() - controller.lastPageOpenedAt;
          const isBrowserIdle = millisSinceLastPageOpened >= this.closeInactiveBrowserAfterMillis;
          const isBrowserEmpty = controller.activePages === 0;
          if (isBrowserIdle || isBrowserEmpty) {
            const { id } = controller;
            logger_1.log.debug("Closing retired browser.", { id });
            await controller.close();
            this.retiredBrowserControllers.delete(controller);
            closedBrowserIds.push(id);
          }
        }
        if (closedBrowserIds.length) {
          logger_1.log.debug("Closed retired browsers.", {
            count: closedBrowserIds.length,
            closedBrowserIds
          });
        }
      }
      _overridePageClose(page) {
        const originalPageClose = page.close;
        const browserController = this.pageToBrowserController.get(page);
        const pageId = this.getPageId(page);
        page.close = async (...args) => {
          await this._executeHooks(this.prePageCloseHooks, page, browserController);
          await originalPageClose.apply(page, args).catch((err2) => {
            logger_1.log.debug(`Could not close page.
Cause:${err2.message}`, { id: browserController.id });
          });
          await this._executeHooks(this.postPageCloseHooks, pageId, browserController);
          this.pages.delete(pageId);
          this._closeRetiredBrowserWithNoPages(browserController);
          this.emit("pageClosed", page);
        };
      }
      async _executeHooks(hooks2, ...args) {
        for (const hook of hooks2) {
          await hook(...args);
        }
      }
      _closeRetiredBrowserWithNoPages(browserController) {
        if (browserController.activePages === 0 && this.retiredBrowserControllers.has(browserController)) {
          setTimeout(() => {
            logger_1.log.debug("Closing retired browser because it has no active pages", { id: browserController.id });
            void browserController.close().finally(() => {
              this.retiredBrowserControllers.delete(browserController);
            });
          }, PAGE_CLOSE_KILL_TIMEOUT_MILLIS);
        }
      }
      _initializeFingerprinting() {
        const { useFingerprintCache = true, fingerprintCacheSize = 1e4 } = this.fingerprintOptions;
        this.fingerprintGenerator = new fingerprint_generator_1.FingerprintGenerator(this.fingerprintOptions.fingerprintGeneratorOptions);
        this.fingerprintInjector = new fingerprint_injector_1.FingerprintInjector();
        if (useFingerprintCache) {
          this.fingerprintCache = new quick_lru_1.default({ maxSize: fingerprintCacheSize });
        }
        this._addFingerprintHooks();
      }
      _addFingerprintHooks() {
        this.preLaunchHooks = [
          ...this.preLaunchHooks,
          // This is flipped because of the fingerprint cache.
          // It is usual to generate proxy per browser and we want to know the proxyUrl for the caching.
          (0, hooks_1.createFingerprintPreLaunchHook)(this)
        ];
        this.prePageCreateHooks = [(0, hooks_1.createPrePageCreateHook)(), ...this.prePageCreateHooks];
        this.postPageCreateHooks = [(0, hooks_1.createPostPageCreateHook)(this.fingerprintInjector), ...this.postPageCreateHooks];
      }
    };
    exports.BrowserPool = BrowserPool2;
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/events.js
var require_events3 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/events.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BROWSER_CONTROLLER_EVENTS = exports.BROWSER_POOL_EVENTS = void 0;
    var BROWSER_POOL_EVENTS2;
    (function(BROWSER_POOL_EVENTS3) {
      BROWSER_POOL_EVENTS3["BROWSER_LAUNCHED"] = "browserLaunched";
      BROWSER_POOL_EVENTS3["BROWSER_RETIRED"] = "browserRetired";
      BROWSER_POOL_EVENTS3["BROWSER_CLOSED"] = "browserClosed";
      BROWSER_POOL_EVENTS3["PAGE_CREATED"] = "pageCreated";
      BROWSER_POOL_EVENTS3["PAGE_CLOSED"] = "pageClosed";
    })(BROWSER_POOL_EVENTS2 || (exports.BROWSER_POOL_EVENTS = BROWSER_POOL_EVENTS2 = {}));
    var BROWSER_CONTROLLER_EVENTS2;
    (function(BROWSER_CONTROLLER_EVENTS3) {
      BROWSER_CONTROLLER_EVENTS3["BROWSER_CLOSED"] = "browserClosed";
    })(BROWSER_CONTROLLER_EVENTS2 || (exports.BROWSER_CONTROLLER_EVENTS = BROWSER_CONTROLLER_EVENTS2 = {}));
  }
});

// ../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/index.js
var require_browser_pool2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser-pool@3.16.0/node_modules/@crawlee/browser-pool/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.anonymizeProxySugar = exports.LaunchContext = exports.DEFAULT_USER_AGENT = exports.BrowserLaunchError = exports.BrowserPlugin = exports.PlaywrightBrowser = exports.PlaywrightController = exports.PuppeteerController = exports.BrowserController = exports.OperatingSystemsName = exports.DeviceCategory = exports.BrowserName = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_browser_pool(), exports);
    tslib_1.__exportStar(require_playwright_plugin(), exports);
    tslib_1.__exportStar(require_puppeteer_plugin(), exports);
    tslib_1.__exportStar(require_events3(), exports);
    var types_1 = require_types3();
    Object.defineProperty(exports, "BrowserName", { enumerable: true, get: function() {
      return types_1.BrowserName;
    } });
    Object.defineProperty(exports, "DeviceCategory", { enumerable: true, get: function() {
      return types_1.DeviceCategory;
    } });
    Object.defineProperty(exports, "OperatingSystemsName", { enumerable: true, get: function() {
      return types_1.OperatingSystemsName;
    } });
    var browser_controller_1 = require_browser_controller();
    Object.defineProperty(exports, "BrowserController", { enumerable: true, get: function() {
      return browser_controller_1.BrowserController;
    } });
    var puppeteer_controller_1 = require_puppeteer_controller();
    Object.defineProperty(exports, "PuppeteerController", { enumerable: true, get: function() {
      return puppeteer_controller_1.PuppeteerController;
    } });
    var playwright_controller_1 = require_playwright_controller();
    Object.defineProperty(exports, "PlaywrightController", { enumerable: true, get: function() {
      return playwright_controller_1.PlaywrightController;
    } });
    var playwright_browser_1 = require_playwright_browser();
    Object.defineProperty(exports, "PlaywrightBrowser", { enumerable: true, get: function() {
      return playwright_browser_1.PlaywrightBrowser;
    } });
    var browser_plugin_1 = require_browser_plugin();
    Object.defineProperty(exports, "BrowserPlugin", { enumerable: true, get: function() {
      return browser_plugin_1.BrowserPlugin;
    } });
    Object.defineProperty(exports, "BrowserLaunchError", { enumerable: true, get: function() {
      return browser_plugin_1.BrowserLaunchError;
    } });
    Object.defineProperty(exports, "DEFAULT_USER_AGENT", { enumerable: true, get: function() {
      return browser_plugin_1.DEFAULT_USER_AGENT;
    } });
    var launch_context_1 = require_launch_context();
    Object.defineProperty(exports, "LaunchContext", { enumerable: true, get: function() {
      return launch_context_1.LaunchContext;
    } });
    var anonymize_proxy_1 = require_anonymize_proxy2();
    Object.defineProperty(exports, "anonymizeProxySugar", { enumerable: true, get: function() {
      return anonymize_proxy_1.anonymizeProxySugar;
    } });
  }
});

// ../../node_modules/.pnpm/@crawlee+browser@3.16.0/node_modules/@crawlee/browser/internals/browser-crawler.js
var require_browser_crawler = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser@3.16.0/node_modules/@crawlee/browser/internals/browser-crawler.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BrowserCrawler = void 0;
    exports.browserCrawlerEnqueueLinks = browserCrawlerEnqueueLinks2;
    exports.extractUrlsFromPage = extractUrlsFromPage2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var basic_1 = require_basic();
    var browser_pool_1 = require_browser_pool2();
    var utils_1 = require_utils9();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var timeout_1 = require_cjs();
    var BrowserCrawler2 = class _BrowserCrawler extends basic_1.BasicCrawler {
      /**
       * All `BrowserCrawler` parameters are passed via an options object.
       */
      constructor(options = {}, config = basic_1.Configuration.getGlobalConfig()) {
        var _a2;
        (0, ow_1.default)(options, "BrowserCrawlerOptions", ow_1.default.object.exactShape(_BrowserCrawler.optionsShape));
        const {
          navigationTimeoutSecs = 60,
          requestHandlerTimeoutSecs = 60,
          persistCookiesPerSession,
          proxyConfiguration,
          launchContext = {},
          browserPoolOptions,
          preNavigationHooks = [],
          postNavigationHooks = [],
          // Ignored
          handleRequestFunction,
          requestHandler: userProvidedRequestHandler,
          handlePageFunction,
          failedRequestHandler,
          handleFailedRequestFunction,
          headless,
          ignoreShadowRoots,
          ignoreIframes,
          ...basicCrawlerOptions
        } = options;
        super({
          ...basicCrawlerOptions,
          requestHandler: async (...args) => this._runRequestHandler(...args),
          requestHandlerTimeoutSecs: navigationTimeoutSecs + requestHandlerTimeoutSecs + basic_1.BASIC_CRAWLER_TIMEOUT_BUFFER_SECS
        }, config);
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "proxyConfiguration", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "browserPool", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "launchContext", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "userProvidedRequestHandler", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "navigationTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestHandlerTimeoutInnerMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "preNavigationHooks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "postNavigationHooks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistCookiesPerSession", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this._handlePropertyNameChange({
          newName: "requestHandler",
          oldName: "handlePageFunction",
          propertyKey: "userProvidedRequestHandler",
          newProperty: userProvidedRequestHandler,
          oldProperty: handlePageFunction,
          allowUndefined: true
          // fallback to the default router
        });
        if (!this.userProvidedRequestHandler) {
          this.userProvidedRequestHandler = this.router;
        }
        this._handlePropertyNameChange({
          newName: "failedRequestHandler",
          oldName: "handleFailedRequestFunction",
          propertyKey: "failedRequestHandler",
          newProperty: failedRequestHandler,
          oldProperty: handleFailedRequestFunction,
          allowUndefined: true
        });
        if (!this.useSessionPool && persistCookiesPerSession) {
          throw new Error('You cannot use "persistCookiesPerSession" without "useSessionPool" set to true.');
        }
        this.launchContext = launchContext;
        this.navigationTimeoutMillis = navigationTimeoutSecs * 1e3;
        this.requestHandlerTimeoutInnerMillis = requestHandlerTimeoutSecs * 1e3;
        this.proxyConfiguration = proxyConfiguration;
        this.preNavigationHooks = preNavigationHooks;
        this.postNavigationHooks = postNavigationHooks;
        if (headless != null) {
          (_a2 = this.launchContext).launchOptions ?? (_a2.launchOptions = {});
          this.launchContext.launchOptions.headless = headless;
        }
        if (this.useSessionPool) {
          this.persistCookiesPerSession = persistCookiesPerSession !== void 0 ? persistCookiesPerSession : true;
        } else {
          this.persistCookiesPerSession = false;
        }
        if (launchContext?.userAgent) {
          if (browserPoolOptions.useFingerprints)
            this.log.info("Custom user agent provided, disabling automatic browser fingerprint injection!");
          browserPoolOptions.useFingerprints = false;
        }
        const { preLaunchHooks = [], postLaunchHooks = [], ...rest } = browserPoolOptions;
        this.browserPool = new browser_pool_1.BrowserPool({
          ...rest,
          preLaunchHooks: [this._extendLaunchContext.bind(this), ...preLaunchHooks],
          postLaunchHooks: [this._maybeAddSessionRetiredListener.bind(this), ...postLaunchHooks]
        });
      }
      async _cleanupContext(crawlingContext) {
        const { page } = crawlingContext;
        if (page) {
          await page.close().catch((error) => this.log.debug("Error while closing page", { error }));
        }
      }
      async containsSelectors(page, selectors) {
        const foundSelectors = (await Promise.all(selectors.map((selector) => page.$(selector)))).map((x, i5) => [x, selectors[i5]]).filter(([x]) => x !== null).map(([, selector]) => selector);
        return foundSelectors.length > 0 ? foundSelectors : null;
      }
      async isRequestBlocked(crawlingContext) {
        const { page, response } = crawlingContext;
        const blockedStatusCodes = (
          // eslint-disable-next-line dot-notation
          (this.sessionPool?.["blockedStatusCodes"].length ?? 0) > 0 ? (
            // eslint-disable-next-line dot-notation
            this.sessionPool["blockedStatusCodes"]
          ) : basic_1.BLOCKED_STATUS_CODES
        );
        if (await this.containsSelectors(page, utils_1.CLOUDFLARE_RETRY_CSS_SELECTORS) && response?.status() === 403) {
          await (0, utils_1.sleep)(5e3);
          const foundSelectors2 = await this.containsSelectors(page, utils_1.RETRY_CSS_SELECTORS);
          if (!foundSelectors2)
            return false;
          return `Cloudflare challenge failed, found selectors: ${foundSelectors2.join(", ")}`;
        }
        const foundSelectors = await this.containsSelectors(page, utils_1.RETRY_CSS_SELECTORS);
        const blockedStatusCode = blockedStatusCodes.find((x) => x === (response?.status() ?? 0));
        if (foundSelectors)
          return `Found selectors: ${foundSelectors.join(", ")}`;
        if (blockedStatusCode)
          return `Received blocked status code: ${blockedStatusCode}`;
        return false;
      }
      /**
       * Wrapper around requestHandler that opens and closes pages etc.
       */
      async _runRequestHandler(crawlingContext) {
        const newPageOptions = {
          id: crawlingContext.id
        };
        const useIncognitoPages = this.launchContext?.useIncognitoPages;
        const experimentalContainers = this.launchContext?.experimentalContainers;
        if (this.proxyConfiguration) {
          const { session: session2 } = crawlingContext;
          const proxyInfo = await this.proxyConfiguration.newProxyInfo(session2?.id, {
            request: crawlingContext.request
          });
          crawlingContext.proxyInfo = proxyInfo;
          newPageOptions.proxyUrl = proxyInfo?.url;
          newPageOptions.proxyTier = proxyInfo?.proxyTier;
          if (this.proxyConfiguration.isManInTheMiddle) {
            newPageOptions.pageOptions = {
              ignoreHTTPSErrors: true,
              acceptInsecureCerts: true
            };
          }
        }
        const page = await this.browserPool.newPage(newPageOptions);
        (0, timeout_1.tryCancel)();
        this._enhanceCrawlingContextWithPageInfo(crawlingContext, page, useIncognitoPages || experimentalContainers);
        const { request, session } = crawlingContext;
        if (!request.skipNavigation) {
          await this._handleNavigation(crawlingContext);
          (0, timeout_1.tryCancel)();
          await this._responseHandler(crawlingContext);
          (0, timeout_1.tryCancel)();
          if (this.persistCookiesPerSession) {
            const cookies = await crawlingContext.browserController.getCookies(page);
            (0, timeout_1.tryCancel)();
            session?.setCookies(cookies, request.loadedUrl);
          }
        }
        if (!this.requestMatchesEnqueueStrategy(request)) {
          this.log.debug(
            // eslint-disable-next-line dot-notation
            `Skipping request ${request.id} (starting url: ${request.url} -> loaded url: ${request.loadedUrl}) because it does not match the enqueue strategy (${request["enqueueStrategy"]}).`
          );
          request.noRetry = true;
          request.state = basic_1.RequestState.SKIPPED;
          await this.handleSkippedRequest({ url: request.url, reason: "redirect" });
          return;
        }
        if (this.retryOnBlocked) {
          const error = await this.isRequestBlocked(crawlingContext);
          if (error)
            throw new basic_1.SessionError(error);
        }
        request.state = basic_1.RequestState.REQUEST_HANDLER;
        try {
          await (0, timeout_1.addTimeoutToPromise)(async () => Promise.resolve(this.userProvidedRequestHandler(crawlingContext)), this.requestHandlerTimeoutInnerMillis, `requestHandler timed out after ${this.requestHandlerTimeoutInnerMillis / 1e3} seconds.`);
          request.state = basic_1.RequestState.DONE;
        } catch (e4) {
          request.state = basic_1.RequestState.ERROR;
          throw e4;
        }
        (0, timeout_1.tryCancel)();
      }
      _enhanceCrawlingContextWithPageInfo(crawlingContext, page, createNewSession) {
        crawlingContext.page = page;
        const browserControllerInstance = this.browserPool.getBrowserControllerByPage(page);
        crawlingContext.browserController = browserControllerInstance;
        if (!createNewSession) {
          crawlingContext.session = browserControllerInstance.launchContext.session;
        }
        if (!crawlingContext.proxyInfo) {
          crawlingContext.proxyInfo = browserControllerInstance.launchContext.proxyInfo;
        }
        const contextEnqueueLinks = crawlingContext.enqueueLinks;
        crawlingContext.enqueueLinks = async (enqueueOptions) => {
          return browserCrawlerEnqueueLinks2({
            options: { ...enqueueOptions, limit: this.calculateEnqueuedRequestLimit(enqueueOptions?.limit) },
            page,
            requestQueue: await this.getRequestQueue(),
            robotsTxtFile: await this.getRobotsTxtFileForUrl(crawlingContext.request.url),
            onSkippedRequest: this.handleSkippedRequest,
            originalRequestUrl: crawlingContext.request.url,
            finalRequestUrl: crawlingContext.request.loadedUrl,
            enqueueLinks: contextEnqueueLinks
          });
        };
      }
      async _handleNavigation(crawlingContext) {
        const gotoOptions = { timeout: this.navigationTimeoutMillis };
        const preNavigationHooksCookies = this._getCookieHeaderFromRequest(crawlingContext.request);
        crawlingContext.request.state = basic_1.RequestState.BEFORE_NAV;
        await this._executeHooks(this.preNavigationHooks, crawlingContext, gotoOptions);
        (0, timeout_1.tryCancel)();
        const postNavigationHooksCookies = this._getCookieHeaderFromRequest(crawlingContext.request);
        await this._applyCookies(crawlingContext, preNavigationHooksCookies, postNavigationHooksCookies);
        try {
          crawlingContext.response = await this._navigationHandler(crawlingContext, gotoOptions) ?? void 0;
        } catch (error) {
          await this._handleNavigationTimeout(crawlingContext, error);
          crawlingContext.request.state = basic_1.RequestState.ERROR;
          this._throwIfProxyError(error);
          throw error;
        }
        (0, timeout_1.tryCancel)();
        crawlingContext.request.state = basic_1.RequestState.AFTER_NAV;
        await this._executeHooks(this.postNavigationHooks, crawlingContext, gotoOptions);
      }
      async _applyCookies({ session, request, page, browserController }, preHooksCookies, postHooksCookies) {
        const sessionCookie = session?.getCookies(request.url) ?? [];
        const parsedPreHooksCookies = preHooksCookies.split(/ *; */).map((c6) => (0, basic_1.cookieStringToToughCookie)(c6));
        const parsedPostHooksCookies = postHooksCookies.split(/ *; */).map((c6) => (0, basic_1.cookieStringToToughCookie)(c6));
        await browserController.setCookies(page, [...sessionCookie, ...parsedPreHooksCookies, ...parsedPostHooksCookies].filter((c6) => typeof c6 !== "undefined" && c6 !== null).map((c6) => ({ ...c6, url: c6.domain ? void 0 : request.url })));
      }
      /**
       * Marks session bad in case of navigation timeout.
       */
      async _handleNavigationTimeout(crawlingContext, error) {
        const { session } = crawlingContext;
        if (error && error.constructor.name === "TimeoutError") {
          (0, basic_1.handleRequestTimeout)({ session, errorMessage: error.message });
        }
        await crawlingContext.page.close();
      }
      /**
       * Transforms proxy-related errors to `SessionError`.
       */
      _throwIfProxyError(error) {
        if (this.isProxyError(error)) {
          throw new basic_1.SessionError(this._getMessageFromError(error));
        }
      }
      /**
       * Should be overridden in case of different automation library that does not support this response API.
       */
      async _responseHandler(crawlingContext) {
        const { response, session, request, page } = crawlingContext;
        if (typeof response === "object" && typeof response.status === "function") {
          const status = response.status();
          this.stats.registerStatusCode(status);
        }
        if (this.sessionPool && response && session) {
          if (typeof response === "object" && typeof response.status === "function") {
            this._throwOnBlockedRequest(session, response.status());
          } else {
            this.log.debug("Got a malformed Browser response.", { request, response });
          }
        }
        request.loadedUrl = await page.url();
      }
      async _extendLaunchContext(_pageId, launchContext) {
        const launchContextExtends = {};
        if (this.sessionPool) {
          launchContextExtends.session = await this.sessionPool.getSession();
        }
        if (this.proxyConfiguration && !launchContext.proxyUrl) {
          const proxyInfo = await this.proxyConfiguration.newProxyInfo(launchContextExtends.session?.id, {
            proxyTier: launchContext.proxyTier ?? void 0
          });
          launchContext.proxyUrl = proxyInfo?.url;
          launchContextExtends.proxyInfo = proxyInfo;
          if (this.proxyConfiguration.isManInTheMiddle) {
            launchContext.launchOptions.ignoreHTTPSErrors = true;
            launchContext.launchOptions.acceptInsecureCerts = true;
          }
        }
        launchContext.extend(launchContextExtends);
      }
      _maybeAddSessionRetiredListener(_pageId, browserController) {
        if (this.sessionPool) {
          const listener = (session) => {
            const { launchContext } = browserController;
            if (session.id === launchContext.session.id) {
              this.browserPool.retireBrowserController(browserController);
            }
          };
          this.sessionPool.on(basic_1.EVENT_SESSION_RETIRED, listener);
          browserController.on("browserClosed", () => {
            return this.sessionPool.removeListener(basic_1.EVENT_SESSION_RETIRED, listener);
          });
        }
      }
      /**
       * Function for cleaning up after all requests are processed.
       * @ignore
       */
      async teardown() {
        await this.browserPool.destroy();
        await super.teardown();
      }
    };
    exports.BrowserCrawler = BrowserCrawler2;
    Object.defineProperty(BrowserCrawler2, "optionsShape", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        ...basic_1.BasicCrawler.optionsShape,
        handlePageFunction: ow_1.default.optional.function,
        navigationTimeoutSecs: ow_1.default.optional.number.greaterThan(0),
        preNavigationHooks: ow_1.default.optional.array,
        postNavigationHooks: ow_1.default.optional.array,
        launchContext: ow_1.default.optional.object,
        headless: ow_1.default.optional.any(ow_1.default.boolean, ow_1.default.string),
        browserPoolOptions: ow_1.default.object,
        sessionPoolOptions: ow_1.default.optional.object,
        persistCookiesPerSession: ow_1.default.optional.boolean,
        useSessionPool: ow_1.default.optional.boolean,
        proxyConfiguration: ow_1.default.optional.object.validate(basic_1.validators.proxyConfiguration),
        ignoreShadowRoots: ow_1.default.optional.boolean,
        ignoreIframes: ow_1.default.optional.boolean
      }
    });
    function containsEnqueueLinks(options) {
      return !!options.enqueueLinks;
    }
    async function browserCrawlerEnqueueLinks2(options) {
      const { options: enqueueLinksOptions, finalRequestUrl, originalRequestUrl, page } = options;
      const baseUrl = (0, basic_1.resolveBaseUrlForEnqueueLinksFiltering)({
        enqueueStrategy: enqueueLinksOptions?.strategy,
        finalRequestUrl,
        originalRequestUrl,
        userProvidedBaseUrl: enqueueLinksOptions?.baseUrl
      });
      const urls = await extractUrlsFromPage2(page, enqueueLinksOptions?.selector ?? "a", enqueueLinksOptions?.baseUrl ?? finalRequestUrl ?? originalRequestUrl);
      if (containsEnqueueLinks(options)) {
        return options.enqueueLinks({
          urls,
          baseUrl,
          ...enqueueLinksOptions
        });
      }
      return (0, basic_1.enqueueLinks)({
        requestQueue: options.requestQueue,
        robotsTxtFile: options.robotsTxtFile,
        onSkippedRequest: options.onSkippedRequest,
        urls,
        baseUrl,
        ...enqueueLinksOptions
      });
    }
    async function extractUrlsFromPage2(page, selector, baseUrl) {
      const urls = await page.$$eval(selector, (linkEls) => linkEls.map((link) => link.getAttribute("href")).filter((href) => !!href)) ?? [];
      const [base] = await page.$$eval("base", (els) => els.map((el) => el.getAttribute("href")));
      const absoluteBaseUrl = base && (0, basic_1.tryAbsoluteURL)(base, baseUrl);
      if (absoluteBaseUrl) {
        baseUrl = absoluteBaseUrl;
      }
      return urls.map((href) => {
        const isHrefAbsolute = /^[a-z][a-z0-9+.-]*:/.test(href);
        if (!isHrefAbsolute && !baseUrl) {
          throw new Error(`An extracted URL: ${href} is relative and options.baseUrl is not set. Use options.baseUrl in enqueueLinks() to automatically resolve relative URLs.`);
        }
        return baseUrl ? (0, basic_1.tryAbsoluteURL)(href, baseUrl) : href;
      }).filter((href) => !!href);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+browser@3.16.0/node_modules/@crawlee/browser/internals/browser-launcher.js
var require_browser_launcher = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser@3.16.0/node_modules/@crawlee/browser/internals/browser-launcher.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BrowserLauncher = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_fs_1 = tslib_1.__importDefault(__require("node:fs"));
    var node_os_1 = tslib_1.__importDefault(__require("node:os"));
    var basic_1 = require_basic();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var DEFAULT_VIEWPORT = {
      width: 1366,
      height: 768
    };
    var BrowserLauncher2 = class {
      static requireLauncherOrThrow(launcher, apifyImageName) {
        try {
          return __require(launcher);
        } catch (err2) {
          const e4 = err2;
          if (e4.code === "MODULE_NOT_FOUND") {
            const msg = `Cannot find module '${launcher}'. Did you you install the '${launcher}' package?
Make sure you have '${launcher}' in your package.json dependencies and in your package-lock.json, if you use it.`;
            if (process.env.APIFY_IS_AT_HOME) {
              e4.message = `${msg}
On the Apify platform, '${launcher}' can only be used with the ${apifyImageName} Docker image.`;
            }
          }
          throw err2;
        }
      }
      /**
       * All `BrowserLauncher` parameters are passed via an launchContext object.
       */
      constructor(launchContext, config = basic_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "launcher", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "proxyUrl", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "useChrome", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "launchOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "otherLaunchContextProps", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "Plugin", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "userAgent", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        const { launcher, proxyUrl, useChrome, userAgent, launchOptions = {}, ...otherLaunchContextProps } = launchContext;
        this._validateProxyUrlProtocol(proxyUrl);
        this.launcher = launcher;
        this.proxyUrl = proxyUrl;
        this.useChrome = useChrome;
        this.userAgent = userAgent;
        this.launchOptions = launchOptions;
        this.otherLaunchContextProps = otherLaunchContextProps;
      }
      /**
       * @ignore
       */
      createBrowserPlugin() {
        return new this.Plugin(this.launcher, {
          proxyUrl: this.proxyUrl,
          launchOptions: this.createLaunchOptions(),
          ...this.otherLaunchContextProps
        });
      }
      /**
       * Launches a browser instance based on the plugin.
       * @returns Browser instance.
       */
      launch() {
        const plugin = this.createBrowserPlugin();
        const context = plugin.createLaunchContext();
        return plugin.launch(context);
      }
      createLaunchOptions() {
        const launchOptions = {
          args: [],
          defaultViewport: DEFAULT_VIEWPORT,
          ...this.launchOptions
        };
        if (this.config.get("disableBrowserSandbox")) {
          launchOptions.args.push("--no-sandbox");
        }
        if (this.userAgent) {
          launchOptions.args.push(`--user-agent=${this.userAgent}`);
        }
        if (launchOptions.headless == null) {
          launchOptions.headless = this._getDefaultHeadlessOption();
        }
        if (this.useChrome && !launchOptions.executablePath) {
          launchOptions.executablePath = this._getChromeExecutablePath();
        }
        return launchOptions;
      }
      _getDefaultHeadlessOption() {
        return this.config.get("headless") && !this.config.get("xvfb", false);
      }
      _getChromeExecutablePath() {
        return this.config.get("chromeExecutablePath", this._getTypicalChromeExecutablePath());
      }
      /**
       * Gets a typical path to Chrome executable, depending on the current operating system.
       */
      _getTypicalChromeExecutablePath() {
        const getWin32Path = () => {
          let chromeExecutablePath = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe";
          const path00 = `${process.env.ProgramFiles}\\Google\\Chrome\\Application\\chrome.exe`;
          const path86 = `${process.env["ProgramFiles(x86)"]}\\Google\\Chrome\\Application\\chrome.exe`;
          if (node_fs_1.default.existsSync(path00)) {
            chromeExecutablePath = path00;
          } else if (node_fs_1.default.existsSync(path86)) {
            chromeExecutablePath = path86;
          }
          return chromeExecutablePath;
        };
        switch (node_os_1.default.platform()) {
          case "darwin":
            return "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome";
          case "win32":
            return getWin32Path();
          default:
            return "/usr/bin/google-chrome";
        }
      }
      _validateProxyUrlProtocol(proxyUrl) {
        if (!proxyUrl)
          return;
        if (!/^(http|https|socks4|socks5)/i.test(proxyUrl)) {
          throw new Error(`Invalid "proxyUrl". Unsupported protocol: ${proxyUrl}.`);
        }
        const url3 = new URL(proxyUrl);
        if (url3.username || url3.password) {
          if (url3.protocol !== "http:" && url3.protocol !== "https:") {
            throw new Error('Invalid "proxyUrl" option: authentication is only supported for HTTP proxy type.');
          }
        }
      }
    };
    exports.BrowserLauncher = BrowserLauncher2;
    Object.defineProperty(BrowserLauncher2, "optionsShape", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        proxyUrl: ow_1.default.optional.string.url,
        useChrome: ow_1.default.optional.boolean,
        useIncognitoPages: ow_1.default.optional.boolean,
        browserPerProxy: ow_1.default.optional.boolean,
        experimentalContainers: ow_1.default.optional.boolean,
        userDataDir: ow_1.default.optional.string,
        launchOptions: ow_1.default.optional.object,
        userAgent: ow_1.default.optional.string
      }
    });
  }
});

// ../../node_modules/.pnpm/@crawlee+browser@3.16.0/node_modules/@crawlee/browser/index.js
var require_browser2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+browser@3.16.0/node_modules/@crawlee/browser/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_basic(), exports);
    tslib_1.__exportStar(require_browser_crawler(), exports);
    tslib_1.__exportStar(require_browser_launcher(), exports);
  }
});

// ../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/internals/playwright-launcher.js
var require_playwright_launcher = __commonJS({
  "../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/internals/playwright-launcher.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.PlaywrightLauncher = void 0;
    exports.launchPlaywright = launchPlaywright2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var browser_1 = require_browser2();
    var browser_pool_1 = require_browser_pool2();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var PlaywrightLauncher2 = class _PlaywrightLauncher extends browser_1.BrowserLauncher {
      /**
       * All `PlaywrightLauncher` parameters are passed via this launchContext object.
       */
      constructor(launchContext = {}, config = browser_1.Configuration.getGlobalConfig()) {
        (0, ow_1.default)(launchContext, "PlaywrightLauncherOptions", ow_1.default.object.exactShape(_PlaywrightLauncher.optionsShape));
        const { launcher = browser_1.BrowserLauncher.requireLauncherOrThrow("playwright", "apify/actor-node-playwright-*").chromium } = launchContext;
        const { launchOptions = {}, ...rest } = launchContext;
        super({
          ...rest,
          launchOptions: {
            ...launchOptions,
            executablePath: getDefaultExecutablePath(launchContext, config)
          },
          launcher
        }, config);
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        this.Plugin = browser_pool_1.PlaywrightPlugin;
      }
    };
    exports.PlaywrightLauncher = PlaywrightLauncher2;
    Object.defineProperty(PlaywrightLauncher2, "optionsShape", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        ...browser_1.BrowserLauncher.optionsShape,
        launcher: ow_1.default.optional.object,
        launchContextOptions: ow_1.default.optional.object
      }
    });
    function getDefaultExecutablePath(launchContext, config) {
      const pathFromPlaywrightImage = config.get("defaultBrowserPath");
      const { launchOptions = {} } = launchContext;
      if (launchOptions.executablePath) {
        return launchOptions.executablePath;
      }
      if (launchContext.useChrome) {
        return void 0;
      }
      if (pathFromPlaywrightImage) {
        return pathFromPlaywrightImage;
      }
      return void 0;
    }
    async function launchPlaywright2(launchContext, config = browser_1.Configuration.getGlobalConfig()) {
      const playwrightLauncher = new PlaywrightLauncher2(launchContext, config);
      return playwrightLauncher.launch();
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/internals/enqueue-links/click-elements.js
var require_click_elements = __commonJS({
  "../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/internals/enqueue-links/click-elements.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.enqueueLinksByClickingElements = enqueueLinksByClickingElements;
    exports.clickElementsAndInterceptNavigationRequests = clickElementsAndInterceptNavigationRequests;
    exports.clickElements = clickElements;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_url_1 = __require("node:url");
    var browser_1 = require_browser2();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var STARTING_Z_INDEX = 21474e5;
    var log2 = log_1.default.child({ prefix: "Playwright Click Elements" });
    async function enqueueLinksByClickingElements(options) {
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        page: ow_1.default.object.hasKeys("goto", "evaluate"),
        requestQueue: ow_1.default.object.hasKeys("fetchNextRequest", "addRequest"),
        selector: ow_1.default.string,
        userData: ow_1.default.optional.object,
        clickOptions: ow_1.default.optional.object.hasKeys("clickCount", "delay"),
        pseudoUrls: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys("purl"))),
        globs: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys("glob"))),
        regexps: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.regExp, ow_1.default.object.hasKeys("regexp"))),
        exclude: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.regExp, ow_1.default.object.hasKeys("glob"), ow_1.default.object.hasKeys("regexp"))),
        transformRequestFunction: ow_1.default.optional.function,
        waitForPageIdleSecs: ow_1.default.optional.number,
        maxWaitForPageIdleSecs: ow_1.default.optional.number,
        label: ow_1.default.optional.string,
        forefront: ow_1.default.optional.boolean,
        skipNavigation: ow_1.default.optional.boolean
      }));
      const { page, requestQueue, selector, clickOptions, pseudoUrls, globs, regexps, transformRequestFunction, waitForPageIdleSecs = 1, maxWaitForPageIdleSecs = 5, forefront, exclude } = options;
      const waitForPageIdleMillis = waitForPageIdleSecs * 1e3;
      const maxWaitForPageIdleMillis = maxWaitForPageIdleSecs * 1e3;
      const urlExcludePatternObjects = [];
      const urlPatternObjects = [];
      if (exclude?.length) {
        for (const excl of exclude) {
          if (typeof excl === "string" || "glob" in excl) {
            urlExcludePatternObjects.push(...(0, browser_1.constructGlobObjectsFromGlobs)([excl]));
          } else if (excl instanceof RegExp || "regexp" in excl) {
            urlExcludePatternObjects.push(...(0, browser_1.constructRegExpObjectsFromRegExps)([excl]));
          }
        }
      }
      if (pseudoUrls?.length) {
        log2.deprecated("`pseudoUrls` option is deprecated, use `globs` or `regexps` instead");
        urlPatternObjects.push(...(0, browser_1.constructRegExpObjectsFromPseudoUrls)(pseudoUrls));
      }
      if (globs?.length) {
        urlPatternObjects.push(...(0, browser_1.constructGlobObjectsFromGlobs)(globs));
      }
      if (regexps?.length) {
        urlPatternObjects.push(...(0, browser_1.constructRegExpObjectsFromRegExps)(regexps));
      }
      const interceptedRequests = await clickElementsAndInterceptNavigationRequests({
        page,
        selector,
        waitForPageIdleMillis,
        maxWaitForPageIdleMillis,
        clickOptions
      });
      let requestOptions = (0, browser_1.createRequestOptions)(interceptedRequests, options);
      if (transformRequestFunction) {
        requestOptions = requestOptions.map(transformRequestFunction).filter((r4) => !!r4);
      }
      const requests = (0, browser_1.createRequests)(requestOptions, urlPatternObjects, urlExcludePatternObjects);
      const { addedRequests } = await requestQueue.addRequestsBatched(requests, { forefront });
      return { processedRequests: addedRequests, unprocessedRequests: [] };
    }
    async function clickElementsAndInterceptNavigationRequests(options) {
      const { page, selector, waitForPageIdleMillis, maxWaitForPageIdleMillis, clickOptions } = options;
      const uniqueRequests = /* @__PURE__ */ new Set();
      const context = page.context();
      const onInterceptedRequest = createInterceptRequestHandler(page, uniqueRequests);
      const onPopup = createTargetCreatedHandler(uniqueRequests);
      const onFrameNavigated = createFrameNavigatedHandler(page, uniqueRequests);
      await context.route("**", onInterceptedRequest);
      page.on("framenavigated", onFrameNavigated);
      page.on("popup", onPopup);
      await preventHistoryNavigation(page);
      await clickElements(page, selector, clickOptions);
      await waitForPageIdle({ page, waitForPageIdleMillis, maxWaitForPageIdleMillis });
      await restoreHistoryNavigationAndSaveCapturedUrls(page, uniqueRequests);
      page.off("framenavigated", onFrameNavigated);
      await context.unroute("*", onInterceptedRequest);
      const serializedRequests = Array.from(uniqueRequests);
      return serializedRequests.map((r4) => JSON.parse(r4));
    }
    function createInterceptRequestHandler(page, requests) {
      return async function onInterceptedRequest(route, request) {
        if (!isTopFrameNavigationRequest(page, request))
          return route.continue();
        requests.add(JSON.stringify({
          url: request.url(),
          headers: request.headers(),
          method: request.method(),
          payload: request.postData() ?? void 0
        }));
        if (request.redirectedFrom()) {
          return route.fulfill({ body: "" });
        }
        return route.abort("aborted");
      };
    }
    function createTargetCreatedHandler(requests) {
      return async function onTargetCreated(popup) {
        const url3 = popup.url();
        requests.add(JSON.stringify({ url: url3 }));
        try {
          await popup.close();
        } catch (err2) {
          log2.debug("enqueueLinksByClickingElements: Could not close spawned page.", { error: err2.stack });
        }
      };
    }
    function isTopFrameNavigationRequest(page, req) {
      return req.isNavigationRequest() && req.frame() === page.mainFrame();
    }
    function createFrameNavigatedHandler(page, requests) {
      return function onFrameNavigated(frame) {
        if (frame !== page.mainFrame())
          return;
        const url3 = frame.url();
        requests.add(JSON.stringify({ url: url3 }));
      };
    }
    async function preventHistoryNavigation(page) {
      return page.evaluate(() => {
        window.__originalHistory__ = window.history;
        delete window.history;
        window.history = {
          stateHistory: [],
          length: 0,
          state: {},
          go() {
          },
          back() {
          },
          forward() {
          },
          pushState(...args) {
            this.stateHistory.push(args);
          },
          replaceState(...args) {
            this.stateHistory.push(args);
          }
        };
      });
    }
    function updateElementCssToEnableMouseClick(el, zIndex) {
      const casted = el;
      casted.style.visibility = "visible";
      casted.style.display = "block";
      casted.style.position = "fixed";
      casted.style.zIndex = String(zIndex);
      casted.style.left = "0";
      casted.style.top = "0";
      const boundingRect = casted.getBoundingClientRect();
      if (!boundingRect.height)
        casted.style.height = "10px";
      if (!boundingRect.width)
        casted.style.width = "10px";
    }
    async function clickElements(page, selector, clickOptions) {
      const elementHandles = await page.$$(selector);
      log2.debug(`enqueueLinksByClickingElements: There are ${elementHandles.length} elements to click.`);
      let clickedElementsCount = 0;
      let zIndex = STARTING_Z_INDEX;
      let shouldLogWarning = true;
      for (const handle of elementHandles) {
        try {
          await handle.evaluate(updateElementCssToEnableMouseClick, zIndex++);
          await handle.click(clickOptions);
          clickedElementsCount++;
        } catch (err2) {
          const e4 = err2;
          if (shouldLogWarning && e4.stack.includes("is detached from document")) {
            log2.warning(`An element with selector ${selector} that you're trying to click has been removed from the page. This was probably caused by an earlier click which triggered some JavaScript on the page that caused it to change. If you're trying to enqueue pagination links, we suggest using the "next" button, if available and going one by one.`);
            shouldLogWarning = false;
          }
          log2.debug("enqueueLinksByClickingElements: Click failed.", { stack: e4.stack });
        }
      }
      log2.debug(`enqueueLinksByClickingElements: Successfully clicked ${clickedElementsCount} elements out of ${elementHandles.length}`);
    }
    async function waitForPageIdle({ page, waitForPageIdleMillis, maxWaitForPageIdleMillis }) {
      return new Promise((resolve4) => {
        let timeout;
        let maxTimeout;
        page.on("popup", activityHandler);
        function activityHandler() {
          clearTimeout(timeout);
          timeout = setTimeout(() => {
            clearTimeout(maxTimeout);
            finish();
          }, waitForPageIdleMillis);
        }
        function maxTimeoutHandler() {
          log2.debug(`enqueueLinksByClickingElements: Page still showed activity after ${maxWaitForPageIdleMillis}ms. This is probably due to the website itself dispatching requests, but some links may also have been missed.`);
          finish();
        }
        function finish() {
          page.off("request", activityHandler).off("framenavigated", activityHandler).off("popup", activityHandler);
          resolve4();
        }
        maxTimeout = setTimeout(maxTimeoutHandler, maxWaitForPageIdleMillis);
        activityHandler();
        page.on("request", activityHandler);
        page.on("framenavigated", activityHandler);
      });
    }
    async function restoreHistoryNavigationAndSaveCapturedUrls(page, requests) {
      const state = await page.evaluate(() => {
        const { stateHistory } = window.history;
        window.history = window.__originalHistory__;
        return stateHistory;
      });
      state.forEach((args) => {
        try {
          const stateUrl = args[args.length - 1];
          const url3 = new node_url_1.URL(stateUrl, page.url()).href;
          requests.add(JSON.stringify({ url: url3 }));
        } catch (err2) {
          log2.debug("enqueueLinksByClickingElements: Failed to ", { error: err2.stack });
        }
      });
    }
  }
});

// ../../node_modules/.pnpm/is-any-array@2.0.1/node_modules/is-any-array/lib/index.js
var require_lib14 = __commonJS({
  "../../node_modules/.pnpm/is-any-array@2.0.1/node_modules/is-any-array/lib/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.isAnyArray = void 0;
    var toString5 = Object.prototype.toString;
    function isAnyArray(value2) {
      const tag = toString5.call(value2);
      return tag.endsWith("Array]") && !tag.includes("Big");
    }
    exports.isAnyArray = isAnyArray;
  }
});

// ../../node_modules/.pnpm/ml-array-max@1.2.4/node_modules/ml-array-max/lib/index.js
var require_lib15 = __commonJS({
  "../../node_modules/.pnpm/ml-array-max@1.2.4/node_modules/ml-array-max/lib/index.js"(exports, module) {
    "use strict";
    var isAnyArray = require_lib14();
    function max3(input, options = {}) {
      if (!isAnyArray.isAnyArray(input)) {
        throw new TypeError("input must be an array");
      }
      if (input.length === 0) {
        throw new TypeError("input must not be empty");
      }
      const { fromIndex = 0, toIndex = input.length } = options;
      if (fromIndex < 0 || fromIndex >= input.length || !Number.isInteger(fromIndex)) {
        throw new Error("fromIndex must be a positive integer smaller than length");
      }
      if (toIndex <= fromIndex || toIndex > input.length || !Number.isInteger(toIndex)) {
        throw new Error(
          "toIndex must be an integer greater than fromIndex and at most equal to length"
        );
      }
      let maxValue = input[fromIndex];
      for (let i5 = fromIndex + 1; i5 < toIndex; i5++) {
        if (input[i5] > maxValue) maxValue = input[i5];
      }
      return maxValue;
    }
    module.exports = max3;
  }
});

// ../../node_modules/.pnpm/ml-array-min@1.2.3/node_modules/ml-array-min/lib/index.js
var require_lib16 = __commonJS({
  "../../node_modules/.pnpm/ml-array-min@1.2.3/node_modules/ml-array-min/lib/index.js"(exports, module) {
    "use strict";
    var isAnyArray = require_lib14();
    function min2(input, options = {}) {
      if (!isAnyArray.isAnyArray(input)) {
        throw new TypeError("input must be an array");
      }
      if (input.length === 0) {
        throw new TypeError("input must not be empty");
      }
      const { fromIndex = 0, toIndex = input.length } = options;
      if (fromIndex < 0 || fromIndex >= input.length || !Number.isInteger(fromIndex)) {
        throw new Error("fromIndex must be a positive integer smaller than length");
      }
      if (toIndex <= fromIndex || toIndex > input.length || !Number.isInteger(toIndex)) {
        throw new Error(
          "toIndex must be an integer greater than fromIndex and at most equal to length"
        );
      }
      let minValue = input[fromIndex];
      for (let i5 = fromIndex + 1; i5 < toIndex; i5++) {
        if (input[i5] < minValue) minValue = input[i5];
      }
      return minValue;
    }
    module.exports = min2;
  }
});

// ../../node_modules/.pnpm/ml-array-rescale@1.3.7/node_modules/ml-array-rescale/lib/index.js
var require_lib17 = __commonJS({
  "../../node_modules/.pnpm/ml-array-rescale@1.3.7/node_modules/ml-array-rescale/lib/index.js"(exports, module) {
    "use strict";
    var isAnyArray = require_lib14();
    var max3 = require_lib15();
    var min2 = require_lib16();
    function _interopDefaultLegacy(e4) {
      return e4 && typeof e4 === "object" && "default" in e4 ? e4 : { "default": e4 };
    }
    var max__default = /* @__PURE__ */ _interopDefaultLegacy(max3);
    var min__default = /* @__PURE__ */ _interopDefaultLegacy(min2);
    function rescale(input, options = {}) {
      if (!isAnyArray.isAnyArray(input)) {
        throw new TypeError("input must be an array");
      } else if (input.length === 0) {
        throw new TypeError("input must not be empty");
      }
      let output;
      if (options.output !== void 0) {
        if (!isAnyArray.isAnyArray(options.output)) {
          throw new TypeError("output option must be an array if specified");
        }
        output = options.output;
      } else {
        output = new Array(input.length);
      }
      const currentMin = min__default["default"](input);
      const currentMax = max__default["default"](input);
      if (currentMin === currentMax) {
        throw new RangeError(
          "minimum and maximum input values are equal. Cannot rescale a constant array"
        );
      }
      const {
        min: minValue = options.autoMinMax ? currentMin : 0,
        max: maxValue = options.autoMinMax ? currentMax : 1
      } = options;
      if (minValue >= maxValue) {
        throw new RangeError("min option must be smaller than max option");
      }
      const factor2 = (maxValue - minValue) / (currentMax - currentMin);
      for (let i5 = 0; i5 < input.length; i5++) {
        output[i5] = (input[i5] - currentMin) * factor2 + minValue;
      }
      return output;
    }
    module.exports = rescale;
  }
});

// ../../node_modules/.pnpm/ml-matrix@6.12.1/node_modules/ml-matrix/matrix.js
var require_matrix = __commonJS({
  "../../node_modules/.pnpm/ml-matrix@6.12.1/node_modules/ml-matrix/matrix.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var isAnyArray = require_lib14();
    var rescale = require_lib17();
    var indent = " ".repeat(2);
    var indentData = " ".repeat(4);
    function inspectMatrix() {
      return inspectMatrixWithOptions(this);
    }
    function inspectMatrixWithOptions(matrix, options = {}) {
      const {
        maxRows = 15,
        maxColumns = 10,
        maxNumSize = 8,
        padMinus = "auto"
      } = options;
      return `${matrix.constructor.name} {
${indent}[
${indentData}${inspectData(matrix, maxRows, maxColumns, maxNumSize, padMinus)}
${indent}]
${indent}rows: ${matrix.rows}
${indent}columns: ${matrix.columns}
}`;
    }
    function inspectData(matrix, maxRows, maxColumns, maxNumSize, padMinus) {
      const { rows, columns } = matrix;
      const maxI = Math.min(rows, maxRows);
      const maxJ = Math.min(columns, maxColumns);
      const result = [];
      if (padMinus === "auto") {
        padMinus = false;
        loop: for (let i5 = 0; i5 < maxI; i5++) {
          for (let j = 0; j < maxJ; j++) {
            if (matrix.get(i5, j) < 0) {
              padMinus = true;
              break loop;
            }
          }
        }
      }
      for (let i5 = 0; i5 < maxI; i5++) {
        let line2 = [];
        for (let j = 0; j < maxJ; j++) {
          line2.push(formatNumber(matrix.get(i5, j), maxNumSize, padMinus));
        }
        result.push(`${line2.join(" ")}`);
      }
      if (maxJ !== columns) {
        result[result.length - 1] += ` ... ${columns - maxColumns} more columns`;
      }
      if (maxI !== rows) {
        result.push(`... ${rows - maxRows} more rows`);
      }
      return result.join(`
${indentData}`);
    }
    function formatNumber(num, maxNumSize, padMinus) {
      return (num >= 0 && padMinus ? ` ${formatNumber2(num, maxNumSize - 1)}` : formatNumber2(num, maxNumSize)).padEnd(maxNumSize);
    }
    function formatNumber2(num, len) {
      let str = num.toString();
      if (str.length <= len) return str;
      let fix = num.toFixed(len);
      if (fix.length > len) {
        fix = num.toFixed(Math.max(0, len - (fix.length - len)));
      }
      if (fix.length <= len && !fix.startsWith("0.000") && !fix.startsWith("-0.000")) {
        return fix;
      }
      let exp = num.toExponential(len);
      if (exp.length > len) {
        exp = num.toExponential(Math.max(0, len - (exp.length - len)));
      }
      return exp.slice(0);
    }
    function installMathOperations(AbstractMatrix2, Matrix2) {
      AbstractMatrix2.prototype.add = function add2(value2) {
        if (typeof value2 === "number") return this.addS(value2);
        return this.addM(value2);
      };
      AbstractMatrix2.prototype.addS = function addS(value2) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) + value2);
          }
        }
        return this;
      };
      AbstractMatrix2.prototype.addM = function addM(matrix) {
        matrix = Matrix2.checkMatrix(matrix);
        if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
          throw new RangeError("Matrices dimensions must be equal");
        }
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) + matrix.get(i5, j));
          }
        }
        return this;
      };
      AbstractMatrix2.add = function add2(matrix, value2) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.add(value2);
      };
      AbstractMatrix2.prototype.sub = function sub(value2) {
        if (typeof value2 === "number") return this.subS(value2);
        return this.subM(value2);
      };
      AbstractMatrix2.prototype.subS = function subS(value2) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) - value2);
          }
        }
        return this;
      };
      AbstractMatrix2.prototype.subM = function subM(matrix) {
        matrix = Matrix2.checkMatrix(matrix);
        if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
          throw new RangeError("Matrices dimensions must be equal");
        }
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) - matrix.get(i5, j));
          }
        }
        return this;
      };
      AbstractMatrix2.sub = function sub(matrix, value2) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.sub(value2);
      };
      AbstractMatrix2.prototype.subtract = AbstractMatrix2.prototype.sub;
      AbstractMatrix2.prototype.subtractS = AbstractMatrix2.prototype.subS;
      AbstractMatrix2.prototype.subtractM = AbstractMatrix2.prototype.subM;
      AbstractMatrix2.subtract = AbstractMatrix2.sub;
      AbstractMatrix2.prototype.mul = function mul(value2) {
        if (typeof value2 === "number") return this.mulS(value2);
        return this.mulM(value2);
      };
      AbstractMatrix2.prototype.mulS = function mulS(value2) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) * value2);
          }
        }
        return this;
      };
      AbstractMatrix2.prototype.mulM = function mulM(matrix) {
        matrix = Matrix2.checkMatrix(matrix);
        if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
          throw new RangeError("Matrices dimensions must be equal");
        }
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) * matrix.get(i5, j));
          }
        }
        return this;
      };
      AbstractMatrix2.mul = function mul(matrix, value2) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.mul(value2);
      };
      AbstractMatrix2.prototype.multiply = AbstractMatrix2.prototype.mul;
      AbstractMatrix2.prototype.multiplyS = AbstractMatrix2.prototype.mulS;
      AbstractMatrix2.prototype.multiplyM = AbstractMatrix2.prototype.mulM;
      AbstractMatrix2.multiply = AbstractMatrix2.mul;
      AbstractMatrix2.prototype.div = function div(value2) {
        if (typeof value2 === "number") return this.divS(value2);
        return this.divM(value2);
      };
      AbstractMatrix2.prototype.divS = function divS(value2) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) / value2);
          }
        }
        return this;
      };
      AbstractMatrix2.prototype.divM = function divM(matrix) {
        matrix = Matrix2.checkMatrix(matrix);
        if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
          throw new RangeError("Matrices dimensions must be equal");
        }
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) / matrix.get(i5, j));
          }
        }
        return this;
      };
      AbstractMatrix2.div = function div(matrix, value2) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.div(value2);
      };
      AbstractMatrix2.prototype.divide = AbstractMatrix2.prototype.div;
      AbstractMatrix2.prototype.divideS = AbstractMatrix2.prototype.divS;
      AbstractMatrix2.prototype.divideM = AbstractMatrix2.prototype.divM;
      AbstractMatrix2.divide = AbstractMatrix2.div;
      AbstractMatrix2.prototype.mod = function mod3(value2) {
        if (typeof value2 === "number") return this.modS(value2);
        return this.modM(value2);
      };
      AbstractMatrix2.prototype.modS = function modS(value2) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) % value2);
          }
        }
        return this;
      };
      AbstractMatrix2.prototype.modM = function modM(matrix) {
        matrix = Matrix2.checkMatrix(matrix);
        if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
          throw new RangeError("Matrices dimensions must be equal");
        }
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) % matrix.get(i5, j));
          }
        }
        return this;
      };
      AbstractMatrix2.mod = function mod3(matrix, value2) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.mod(value2);
      };
      AbstractMatrix2.prototype.modulus = AbstractMatrix2.prototype.mod;
      AbstractMatrix2.prototype.modulusS = AbstractMatrix2.prototype.modS;
      AbstractMatrix2.prototype.modulusM = AbstractMatrix2.prototype.modM;
      AbstractMatrix2.modulus = AbstractMatrix2.mod;
      AbstractMatrix2.prototype.and = function and(value2) {
        if (typeof value2 === "number") return this.andS(value2);
        return this.andM(value2);
      };
      AbstractMatrix2.prototype.andS = function andS(value2) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) & value2);
          }
        }
        return this;
      };
      AbstractMatrix2.prototype.andM = function andM(matrix) {
        matrix = Matrix2.checkMatrix(matrix);
        if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
          throw new RangeError("Matrices dimensions must be equal");
        }
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) & matrix.get(i5, j));
          }
        }
        return this;
      };
      AbstractMatrix2.and = function and(matrix, value2) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.and(value2);
      };
      AbstractMatrix2.prototype.or = function or(value2) {
        if (typeof value2 === "number") return this.orS(value2);
        return this.orM(value2);
      };
      AbstractMatrix2.prototype.orS = function orS(value2) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) | value2);
          }
        }
        return this;
      };
      AbstractMatrix2.prototype.orM = function orM(matrix) {
        matrix = Matrix2.checkMatrix(matrix);
        if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
          throw new RangeError("Matrices dimensions must be equal");
        }
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) | matrix.get(i5, j));
          }
        }
        return this;
      };
      AbstractMatrix2.or = function or(matrix, value2) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.or(value2);
      };
      AbstractMatrix2.prototype.xor = function xor(value2) {
        if (typeof value2 === "number") return this.xorS(value2);
        return this.xorM(value2);
      };
      AbstractMatrix2.prototype.xorS = function xorS(value2) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) ^ value2);
          }
        }
        return this;
      };
      AbstractMatrix2.prototype.xorM = function xorM(matrix) {
        matrix = Matrix2.checkMatrix(matrix);
        if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
          throw new RangeError("Matrices dimensions must be equal");
        }
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) ^ matrix.get(i5, j));
          }
        }
        return this;
      };
      AbstractMatrix2.xor = function xor(matrix, value2) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.xor(value2);
      };
      AbstractMatrix2.prototype.leftShift = function leftShift(value2) {
        if (typeof value2 === "number") return this.leftShiftS(value2);
        return this.leftShiftM(value2);
      };
      AbstractMatrix2.prototype.leftShiftS = function leftShiftS(value2) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) << value2);
          }
        }
        return this;
      };
      AbstractMatrix2.prototype.leftShiftM = function leftShiftM(matrix) {
        matrix = Matrix2.checkMatrix(matrix);
        if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
          throw new RangeError("Matrices dimensions must be equal");
        }
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) << matrix.get(i5, j));
          }
        }
        return this;
      };
      AbstractMatrix2.leftShift = function leftShift(matrix, value2) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.leftShift(value2);
      };
      AbstractMatrix2.prototype.signPropagatingRightShift = function signPropagatingRightShift(value2) {
        if (typeof value2 === "number") return this.signPropagatingRightShiftS(value2);
        return this.signPropagatingRightShiftM(value2);
      };
      AbstractMatrix2.prototype.signPropagatingRightShiftS = function signPropagatingRightShiftS(value2) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) >> value2);
          }
        }
        return this;
      };
      AbstractMatrix2.prototype.signPropagatingRightShiftM = function signPropagatingRightShiftM(matrix) {
        matrix = Matrix2.checkMatrix(matrix);
        if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
          throw new RangeError("Matrices dimensions must be equal");
        }
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) >> matrix.get(i5, j));
          }
        }
        return this;
      };
      AbstractMatrix2.signPropagatingRightShift = function signPropagatingRightShift(matrix, value2) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.signPropagatingRightShift(value2);
      };
      AbstractMatrix2.prototype.rightShift = function rightShift(value2) {
        if (typeof value2 === "number") return this.rightShiftS(value2);
        return this.rightShiftM(value2);
      };
      AbstractMatrix2.prototype.rightShiftS = function rightShiftS(value2) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) >>> value2);
          }
        }
        return this;
      };
      AbstractMatrix2.prototype.rightShiftM = function rightShiftM(matrix) {
        matrix = Matrix2.checkMatrix(matrix);
        if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
          throw new RangeError("Matrices dimensions must be equal");
        }
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) >>> matrix.get(i5, j));
          }
        }
        return this;
      };
      AbstractMatrix2.rightShift = function rightShift(matrix, value2) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.rightShift(value2);
      };
      AbstractMatrix2.prototype.zeroFillRightShift = AbstractMatrix2.prototype.rightShift;
      AbstractMatrix2.prototype.zeroFillRightShiftS = AbstractMatrix2.prototype.rightShiftS;
      AbstractMatrix2.prototype.zeroFillRightShiftM = AbstractMatrix2.prototype.rightShiftM;
      AbstractMatrix2.zeroFillRightShift = AbstractMatrix2.rightShift;
      AbstractMatrix2.prototype.not = function not2() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, ~this.get(i5, j));
          }
        }
        return this;
      };
      AbstractMatrix2.not = function not2(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.not();
      };
      AbstractMatrix2.prototype.abs = function abs() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.abs(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.abs = function abs(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.abs();
      };
      AbstractMatrix2.prototype.acos = function acos() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.acos(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.acos = function acos(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.acos();
      };
      AbstractMatrix2.prototype.acosh = function acosh() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.acosh(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.acosh = function acosh(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.acosh();
      };
      AbstractMatrix2.prototype.asin = function asin() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.asin(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.asin = function asin(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.asin();
      };
      AbstractMatrix2.prototype.asinh = function asinh() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.asinh(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.asinh = function asinh(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.asinh();
      };
      AbstractMatrix2.prototype.atan = function atan() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.atan(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.atan = function atan(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.atan();
      };
      AbstractMatrix2.prototype.atanh = function atanh() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.atanh(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.atanh = function atanh(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.atanh();
      };
      AbstractMatrix2.prototype.cbrt = function cbrt() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.cbrt(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.cbrt = function cbrt(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.cbrt();
      };
      AbstractMatrix2.prototype.ceil = function ceil() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.ceil(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.ceil = function ceil(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.ceil();
      };
      AbstractMatrix2.prototype.clz32 = function clz32() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.clz32(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.clz32 = function clz32(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.clz32();
      };
      AbstractMatrix2.prototype.cos = function cos() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.cos(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.cos = function cos(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.cos();
      };
      AbstractMatrix2.prototype.cosh = function cosh() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.cosh(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.cosh = function cosh(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.cosh();
      };
      AbstractMatrix2.prototype.exp = function exp() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.exp(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.exp = function exp(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.exp();
      };
      AbstractMatrix2.prototype.expm1 = function expm1() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.expm1(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.expm1 = function expm1(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.expm1();
      };
      AbstractMatrix2.prototype.floor = function floor() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.floor(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.floor = function floor(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.floor();
      };
      AbstractMatrix2.prototype.fround = function fround() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.fround(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.fround = function fround(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.fround();
      };
      AbstractMatrix2.prototype.log = function log2() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.log(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.log = function log2(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.log();
      };
      AbstractMatrix2.prototype.log1p = function log1p() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.log1p(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.log1p = function log1p(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.log1p();
      };
      AbstractMatrix2.prototype.log10 = function log10() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.log10(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.log10 = function log10(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.log10();
      };
      AbstractMatrix2.prototype.log2 = function log2() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.log2(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.log2 = function log2(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.log2();
      };
      AbstractMatrix2.prototype.round = function round() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.round(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.round = function round(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.round();
      };
      AbstractMatrix2.prototype.sign = function sign() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.sign(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.sign = function sign(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.sign();
      };
      AbstractMatrix2.prototype.sin = function sin() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.sin(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.sin = function sin(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.sin();
      };
      AbstractMatrix2.prototype.sinh = function sinh() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.sinh(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.sinh = function sinh(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.sinh();
      };
      AbstractMatrix2.prototype.sqrt = function sqrt() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.sqrt(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.sqrt = function sqrt(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.sqrt();
      };
      AbstractMatrix2.prototype.tan = function tan() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.tan(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.tan = function tan(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.tan();
      };
      AbstractMatrix2.prototype.tanh = function tanh() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.tanh(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.tanh = function tanh(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.tanh();
      };
      AbstractMatrix2.prototype.trunc = function trunc() {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, Math.trunc(this.get(i5, j)));
          }
        }
        return this;
      };
      AbstractMatrix2.trunc = function trunc(matrix) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.trunc();
      };
      AbstractMatrix2.pow = function pow(matrix, arg0) {
        const newMatrix = new Matrix2(matrix);
        return newMatrix.pow(arg0);
      };
      AbstractMatrix2.prototype.pow = function pow(value2) {
        if (typeof value2 === "number") return this.powS(value2);
        return this.powM(value2);
      };
      AbstractMatrix2.prototype.powS = function powS(value2) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) ** value2);
          }
        }
        return this;
      };
      AbstractMatrix2.prototype.powM = function powM(matrix) {
        matrix = Matrix2.checkMatrix(matrix);
        if (this.rows !== matrix.rows || this.columns !== matrix.columns) {
          throw new RangeError("Matrices dimensions must be equal");
        }
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) ** matrix.get(i5, j));
          }
        }
        return this;
      };
    }
    function checkRowIndex(matrix, index2, outer) {
      let max3 = outer ? matrix.rows : matrix.rows - 1;
      if (index2 < 0 || index2 > max3) {
        throw new RangeError("Row index out of range");
      }
    }
    function checkColumnIndex(matrix, index2, outer) {
      let max3 = outer ? matrix.columns : matrix.columns - 1;
      if (index2 < 0 || index2 > max3) {
        throw new RangeError("Column index out of range");
      }
    }
    function checkRowVector(matrix, vector) {
      if (vector.to1DArray) {
        vector = vector.to1DArray();
      }
      if (vector.length !== matrix.columns) {
        throw new RangeError(
          "vector size must be the same as the number of columns"
        );
      }
      return vector;
    }
    function checkColumnVector(matrix, vector) {
      if (vector.to1DArray) {
        vector = vector.to1DArray();
      }
      if (vector.length !== matrix.rows) {
        throw new RangeError("vector size must be the same as the number of rows");
      }
      return vector;
    }
    function checkRowIndices(matrix, rowIndices) {
      if (!isAnyArray.isAnyArray(rowIndices)) {
        throw new TypeError("row indices must be an array");
      }
      for (let i5 = 0; i5 < rowIndices.length; i5++) {
        if (rowIndices[i5] < 0 || rowIndices[i5] >= matrix.rows) {
          throw new RangeError("row indices are out of range");
        }
      }
    }
    function checkColumnIndices(matrix, columnIndices) {
      if (!isAnyArray.isAnyArray(columnIndices)) {
        throw new TypeError("column indices must be an array");
      }
      for (let i5 = 0; i5 < columnIndices.length; i5++) {
        if (columnIndices[i5] < 0 || columnIndices[i5] >= matrix.columns) {
          throw new RangeError("column indices are out of range");
        }
      }
    }
    function checkRange(matrix, startRow, endRow, startColumn, endColumn) {
      if (arguments.length !== 5) {
        throw new RangeError("expected 4 arguments");
      }
      checkNumber("startRow", startRow);
      checkNumber("endRow", endRow);
      checkNumber("startColumn", startColumn);
      checkNumber("endColumn", endColumn);
      if (startRow > endRow || startColumn > endColumn || startRow < 0 || startRow >= matrix.rows || endRow < 0 || endRow >= matrix.rows || startColumn < 0 || startColumn >= matrix.columns || endColumn < 0 || endColumn >= matrix.columns) {
        throw new RangeError("Submatrix indices are out of range");
      }
    }
    function newArray(length2, value2 = 0) {
      let array = [];
      for (let i5 = 0; i5 < length2; i5++) {
        array.push(value2);
      }
      return array;
    }
    function checkNumber(name, value2) {
      if (typeof value2 !== "number") {
        throw new TypeError(`${name} must be a number`);
      }
    }
    function checkNonEmpty(matrix) {
      if (matrix.isEmpty()) {
        throw new Error("Empty matrix has no elements to index");
      }
    }
    function sumByRow(matrix) {
      let sum = newArray(matrix.rows);
      for (let i5 = 0; i5 < matrix.rows; ++i5) {
        for (let j = 0; j < matrix.columns; ++j) {
          sum[i5] += matrix.get(i5, j);
        }
      }
      return sum;
    }
    function sumByColumn(matrix) {
      let sum = newArray(matrix.columns);
      for (let i5 = 0; i5 < matrix.rows; ++i5) {
        for (let j = 0; j < matrix.columns; ++j) {
          sum[j] += matrix.get(i5, j);
        }
      }
      return sum;
    }
    function sumAll(matrix) {
      let v3 = 0;
      for (let i5 = 0; i5 < matrix.rows; i5++) {
        for (let j = 0; j < matrix.columns; j++) {
          v3 += matrix.get(i5, j);
        }
      }
      return v3;
    }
    function productByRow(matrix) {
      let sum = newArray(matrix.rows, 1);
      for (let i5 = 0; i5 < matrix.rows; ++i5) {
        for (let j = 0; j < matrix.columns; ++j) {
          sum[i5] *= matrix.get(i5, j);
        }
      }
      return sum;
    }
    function productByColumn(matrix) {
      let sum = newArray(matrix.columns, 1);
      for (let i5 = 0; i5 < matrix.rows; ++i5) {
        for (let j = 0; j < matrix.columns; ++j) {
          sum[j] *= matrix.get(i5, j);
        }
      }
      return sum;
    }
    function productAll(matrix) {
      let v3 = 1;
      for (let i5 = 0; i5 < matrix.rows; i5++) {
        for (let j = 0; j < matrix.columns; j++) {
          v3 *= matrix.get(i5, j);
        }
      }
      return v3;
    }
    function varianceByRow(matrix, unbiased, mean) {
      const rows = matrix.rows;
      const cols = matrix.columns;
      const variance = [];
      for (let i5 = 0; i5 < rows; i5++) {
        let sum1 = 0;
        let sum2 = 0;
        let x = 0;
        for (let j = 0; j < cols; j++) {
          x = matrix.get(i5, j) - mean[i5];
          sum1 += x;
          sum2 += x * x;
        }
        if (unbiased) {
          variance.push((sum2 - sum1 * sum1 / cols) / (cols - 1));
        } else {
          variance.push((sum2 - sum1 * sum1 / cols) / cols);
        }
      }
      return variance;
    }
    function varianceByColumn(matrix, unbiased, mean) {
      const rows = matrix.rows;
      const cols = matrix.columns;
      const variance = [];
      for (let j = 0; j < cols; j++) {
        let sum1 = 0;
        let sum2 = 0;
        let x = 0;
        for (let i5 = 0; i5 < rows; i5++) {
          x = matrix.get(i5, j) - mean[j];
          sum1 += x;
          sum2 += x * x;
        }
        if (unbiased) {
          variance.push((sum2 - sum1 * sum1 / rows) / (rows - 1));
        } else {
          variance.push((sum2 - sum1 * sum1 / rows) / rows);
        }
      }
      return variance;
    }
    function varianceAll(matrix, unbiased, mean) {
      const rows = matrix.rows;
      const cols = matrix.columns;
      const size = rows * cols;
      let sum1 = 0;
      let sum2 = 0;
      let x = 0;
      for (let i5 = 0; i5 < rows; i5++) {
        for (let j = 0; j < cols; j++) {
          x = matrix.get(i5, j) - mean;
          sum1 += x;
          sum2 += x * x;
        }
      }
      if (unbiased) {
        return (sum2 - sum1 * sum1 / size) / (size - 1);
      } else {
        return (sum2 - sum1 * sum1 / size) / size;
      }
    }
    function centerByRow(matrix, mean) {
      for (let i5 = 0; i5 < matrix.rows; i5++) {
        for (let j = 0; j < matrix.columns; j++) {
          matrix.set(i5, j, matrix.get(i5, j) - mean[i5]);
        }
      }
    }
    function centerByColumn(matrix, mean) {
      for (let i5 = 0; i5 < matrix.rows; i5++) {
        for (let j = 0; j < matrix.columns; j++) {
          matrix.set(i5, j, matrix.get(i5, j) - mean[j]);
        }
      }
    }
    function centerAll(matrix, mean) {
      for (let i5 = 0; i5 < matrix.rows; i5++) {
        for (let j = 0; j < matrix.columns; j++) {
          matrix.set(i5, j, matrix.get(i5, j) - mean);
        }
      }
    }
    function getScaleByRow(matrix) {
      const scale2 = [];
      for (let i5 = 0; i5 < matrix.rows; i5++) {
        let sum = 0;
        for (let j = 0; j < matrix.columns; j++) {
          sum += matrix.get(i5, j) ** 2 / (matrix.columns - 1);
        }
        scale2.push(Math.sqrt(sum));
      }
      return scale2;
    }
    function scaleByRow(matrix, scale2) {
      for (let i5 = 0; i5 < matrix.rows; i5++) {
        for (let j = 0; j < matrix.columns; j++) {
          matrix.set(i5, j, matrix.get(i5, j) / scale2[i5]);
        }
      }
    }
    function getScaleByColumn(matrix) {
      const scale2 = [];
      for (let j = 0; j < matrix.columns; j++) {
        let sum = 0;
        for (let i5 = 0; i5 < matrix.rows; i5++) {
          sum += matrix.get(i5, j) ** 2 / (matrix.rows - 1);
        }
        scale2.push(Math.sqrt(sum));
      }
      return scale2;
    }
    function scaleByColumn(matrix, scale2) {
      for (let i5 = 0; i5 < matrix.rows; i5++) {
        for (let j = 0; j < matrix.columns; j++) {
          matrix.set(i5, j, matrix.get(i5, j) / scale2[j]);
        }
      }
    }
    function getScaleAll(matrix) {
      const divider = matrix.size - 1;
      let sum = 0;
      for (let j = 0; j < matrix.columns; j++) {
        for (let i5 = 0; i5 < matrix.rows; i5++) {
          sum += matrix.get(i5, j) ** 2 / divider;
        }
      }
      return Math.sqrt(sum);
    }
    function scaleAll(matrix, scale2) {
      for (let i5 = 0; i5 < matrix.rows; i5++) {
        for (let j = 0; j < matrix.columns; j++) {
          matrix.set(i5, j, matrix.get(i5, j) / scale2);
        }
      }
    }
    var AbstractMatrix = class _AbstractMatrix {
      static from1DArray(newRows, newColumns, newData) {
        let length2 = newRows * newColumns;
        if (length2 !== newData.length) {
          throw new RangeError("data length does not match given dimensions");
        }
        let newMatrix = new Matrix(newRows, newColumns);
        for (let row = 0; row < newRows; row++) {
          for (let column = 0; column < newColumns; column++) {
            newMatrix.set(row, column, newData[row * newColumns + column]);
          }
        }
        return newMatrix;
      }
      static rowVector(newData) {
        let vector = new Matrix(1, newData.length);
        for (let i5 = 0; i5 < newData.length; i5++) {
          vector.set(0, i5, newData[i5]);
        }
        return vector;
      }
      static columnVector(newData) {
        let vector = new Matrix(newData.length, 1);
        for (let i5 = 0; i5 < newData.length; i5++) {
          vector.set(i5, 0, newData[i5]);
        }
        return vector;
      }
      static zeros(rows, columns) {
        return new Matrix(rows, columns);
      }
      static ones(rows, columns) {
        return new Matrix(rows, columns).fill(1);
      }
      static rand(rows, columns, options = {}) {
        if (typeof options !== "object") {
          throw new TypeError("options must be an object");
        }
        const { random = Math.random } = options;
        let matrix = new Matrix(rows, columns);
        for (let i5 = 0; i5 < rows; i5++) {
          for (let j = 0; j < columns; j++) {
            matrix.set(i5, j, random());
          }
        }
        return matrix;
      }
      static randInt(rows, columns, options = {}) {
        if (typeof options !== "object") {
          throw new TypeError("options must be an object");
        }
        const { min: min2 = 0, max: max3 = 1e3, random = Math.random } = options;
        if (!Number.isInteger(min2)) throw new TypeError("min must be an integer");
        if (!Number.isInteger(max3)) throw new TypeError("max must be an integer");
        if (min2 >= max3) throw new RangeError("min must be smaller than max");
        let interval = max3 - min2;
        let matrix = new Matrix(rows, columns);
        for (let i5 = 0; i5 < rows; i5++) {
          for (let j = 0; j < columns; j++) {
            let value2 = min2 + Math.round(random() * interval);
            matrix.set(i5, j, value2);
          }
        }
        return matrix;
      }
      static eye(rows, columns, value2) {
        if (columns === void 0) columns = rows;
        if (value2 === void 0) value2 = 1;
        let min2 = Math.min(rows, columns);
        let matrix = this.zeros(rows, columns);
        for (let i5 = 0; i5 < min2; i5++) {
          matrix.set(i5, i5, value2);
        }
        return matrix;
      }
      static diag(data2, rows, columns) {
        let l4 = data2.length;
        if (rows === void 0) rows = l4;
        if (columns === void 0) columns = rows;
        let min2 = Math.min(l4, rows, columns);
        let matrix = this.zeros(rows, columns);
        for (let i5 = 0; i5 < min2; i5++) {
          matrix.set(i5, i5, data2[i5]);
        }
        return matrix;
      }
      static min(matrix1, matrix2) {
        matrix1 = this.checkMatrix(matrix1);
        matrix2 = this.checkMatrix(matrix2);
        let rows = matrix1.rows;
        let columns = matrix1.columns;
        let result = new Matrix(rows, columns);
        for (let i5 = 0; i5 < rows; i5++) {
          for (let j = 0; j < columns; j++) {
            result.set(i5, j, Math.min(matrix1.get(i5, j), matrix2.get(i5, j)));
          }
        }
        return result;
      }
      static max(matrix1, matrix2) {
        matrix1 = this.checkMatrix(matrix1);
        matrix2 = this.checkMatrix(matrix2);
        let rows = matrix1.rows;
        let columns = matrix1.columns;
        let result = new this(rows, columns);
        for (let i5 = 0; i5 < rows; i5++) {
          for (let j = 0; j < columns; j++) {
            result.set(i5, j, Math.max(matrix1.get(i5, j), matrix2.get(i5, j)));
          }
        }
        return result;
      }
      static checkMatrix(value2) {
        return _AbstractMatrix.isMatrix(value2) ? value2 : new Matrix(value2);
      }
      static isMatrix(value2) {
        return value2 != null && value2.klass === "Matrix";
      }
      get size() {
        return this.rows * this.columns;
      }
      apply(callback) {
        if (typeof callback !== "function") {
          throw new TypeError("callback must be a function");
        }
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            callback.call(this, i5, j);
          }
        }
        return this;
      }
      to1DArray() {
        let array = [];
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            array.push(this.get(i5, j));
          }
        }
        return array;
      }
      to2DArray() {
        let copy2 = [];
        for (let i5 = 0; i5 < this.rows; i5++) {
          copy2.push([]);
          for (let j = 0; j < this.columns; j++) {
            copy2[i5].push(this.get(i5, j));
          }
        }
        return copy2;
      }
      toJSON() {
        return this.to2DArray();
      }
      isRowVector() {
        return this.rows === 1;
      }
      isColumnVector() {
        return this.columns === 1;
      }
      isVector() {
        return this.rows === 1 || this.columns === 1;
      }
      isSquare() {
        return this.rows === this.columns;
      }
      isEmpty() {
        return this.rows === 0 || this.columns === 0;
      }
      isSymmetric() {
        if (this.isSquare()) {
          for (let i5 = 0; i5 < this.rows; i5++) {
            for (let j = 0; j <= i5; j++) {
              if (this.get(i5, j) !== this.get(j, i5)) {
                return false;
              }
            }
          }
          return true;
        }
        return false;
      }
      isDistance() {
        if (!this.isSymmetric()) return false;
        for (let i5 = 0; i5 < this.rows; i5++) {
          if (this.get(i5, i5) !== 0) return false;
        }
        return true;
      }
      isEchelonForm() {
        let i5 = 0;
        let j = 0;
        let previousColumn = -1;
        let isEchelonForm = true;
        let checked = false;
        while (i5 < this.rows && isEchelonForm) {
          j = 0;
          checked = false;
          while (j < this.columns && checked === false) {
            if (this.get(i5, j) === 0) {
              j++;
            } else if (this.get(i5, j) === 1 && j > previousColumn) {
              checked = true;
              previousColumn = j;
            } else {
              isEchelonForm = false;
              checked = true;
            }
          }
          i5++;
        }
        return isEchelonForm;
      }
      isReducedEchelonForm() {
        let i5 = 0;
        let j = 0;
        let previousColumn = -1;
        let isReducedEchelonForm = true;
        let checked = false;
        while (i5 < this.rows && isReducedEchelonForm) {
          j = 0;
          checked = false;
          while (j < this.columns && checked === false) {
            if (this.get(i5, j) === 0) {
              j++;
            } else if (this.get(i5, j) === 1 && j > previousColumn) {
              checked = true;
              previousColumn = j;
            } else {
              isReducedEchelonForm = false;
              checked = true;
            }
          }
          for (let k3 = j + 1; k3 < this.rows; k3++) {
            if (this.get(i5, k3) !== 0) {
              isReducedEchelonForm = false;
            }
          }
          i5++;
        }
        return isReducedEchelonForm;
      }
      echelonForm() {
        let result = this.clone();
        let h4 = 0;
        let k3 = 0;
        while (h4 < result.rows && k3 < result.columns) {
          let iMax = h4;
          for (let i5 = h4; i5 < result.rows; i5++) {
            if (result.get(i5, k3) > result.get(iMax, k3)) {
              iMax = i5;
            }
          }
          if (result.get(iMax, k3) === 0) {
            k3++;
          } else {
            result.swapRows(h4, iMax);
            let tmp = result.get(h4, k3);
            for (let j = k3; j < result.columns; j++) {
              result.set(h4, j, result.get(h4, j) / tmp);
            }
            for (let i5 = h4 + 1; i5 < result.rows; i5++) {
              let factor2 = result.get(i5, k3) / result.get(h4, k3);
              result.set(i5, k3, 0);
              for (let j = k3 + 1; j < result.columns; j++) {
                result.set(i5, j, result.get(i5, j) - result.get(h4, j) * factor2);
              }
            }
            h4++;
            k3++;
          }
        }
        return result;
      }
      reducedEchelonForm() {
        let result = this.echelonForm();
        let m3 = result.columns;
        let n6 = result.rows;
        let h4 = n6 - 1;
        while (h4 >= 0) {
          if (result.maxRow(h4) === 0) {
            h4--;
          } else {
            let p3 = 0;
            let pivot = false;
            while (p3 < n6 && pivot === false) {
              if (result.get(h4, p3) === 1) {
                pivot = true;
              } else {
                p3++;
              }
            }
            for (let i5 = 0; i5 < h4; i5++) {
              let factor2 = result.get(i5, p3);
              for (let j = p3; j < m3; j++) {
                let tmp = result.get(i5, j) - factor2 * result.get(h4, j);
                result.set(i5, j, tmp);
              }
            }
            h4--;
          }
        }
        return result;
      }
      set() {
        throw new Error("set method is unimplemented");
      }
      get() {
        throw new Error("get method is unimplemented");
      }
      repeat(options = {}) {
        if (typeof options !== "object") {
          throw new TypeError("options must be an object");
        }
        const { rows = 1, columns = 1 } = options;
        if (!Number.isInteger(rows) || rows <= 0) {
          throw new TypeError("rows must be a positive integer");
        }
        if (!Number.isInteger(columns) || columns <= 0) {
          throw new TypeError("columns must be a positive integer");
        }
        let matrix = new Matrix(this.rows * rows, this.columns * columns);
        for (let i5 = 0; i5 < rows; i5++) {
          for (let j = 0; j < columns; j++) {
            matrix.setSubMatrix(this, this.rows * i5, this.columns * j);
          }
        }
        return matrix;
      }
      fill(value2) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, value2);
          }
        }
        return this;
      }
      neg() {
        return this.mulS(-1);
      }
      getRow(index2) {
        checkRowIndex(this, index2);
        let row = [];
        for (let i5 = 0; i5 < this.columns; i5++) {
          row.push(this.get(index2, i5));
        }
        return row;
      }
      getRowVector(index2) {
        return Matrix.rowVector(this.getRow(index2));
      }
      setRow(index2, array) {
        checkRowIndex(this, index2);
        array = checkRowVector(this, array);
        for (let i5 = 0; i5 < this.columns; i5++) {
          this.set(index2, i5, array[i5]);
        }
        return this;
      }
      swapRows(row1, row2) {
        checkRowIndex(this, row1);
        checkRowIndex(this, row2);
        for (let i5 = 0; i5 < this.columns; i5++) {
          let temp = this.get(row1, i5);
          this.set(row1, i5, this.get(row2, i5));
          this.set(row2, i5, temp);
        }
        return this;
      }
      getColumn(index2) {
        checkColumnIndex(this, index2);
        let column = [];
        for (let i5 = 0; i5 < this.rows; i5++) {
          column.push(this.get(i5, index2));
        }
        return column;
      }
      getColumnVector(index2) {
        return Matrix.columnVector(this.getColumn(index2));
      }
      setColumn(index2, array) {
        checkColumnIndex(this, index2);
        array = checkColumnVector(this, array);
        for (let i5 = 0; i5 < this.rows; i5++) {
          this.set(i5, index2, array[i5]);
        }
        return this;
      }
      swapColumns(column1, column2) {
        checkColumnIndex(this, column1);
        checkColumnIndex(this, column2);
        for (let i5 = 0; i5 < this.rows; i5++) {
          let temp = this.get(i5, column1);
          this.set(i5, column1, this.get(i5, column2));
          this.set(i5, column2, temp);
        }
        return this;
      }
      addRowVector(vector) {
        vector = checkRowVector(this, vector);
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) + vector[j]);
          }
        }
        return this;
      }
      subRowVector(vector) {
        vector = checkRowVector(this, vector);
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) - vector[j]);
          }
        }
        return this;
      }
      mulRowVector(vector) {
        vector = checkRowVector(this, vector);
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) * vector[j]);
          }
        }
        return this;
      }
      divRowVector(vector) {
        vector = checkRowVector(this, vector);
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) / vector[j]);
          }
        }
        return this;
      }
      addColumnVector(vector) {
        vector = checkColumnVector(this, vector);
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) + vector[i5]);
          }
        }
        return this;
      }
      subColumnVector(vector) {
        vector = checkColumnVector(this, vector);
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) - vector[i5]);
          }
        }
        return this;
      }
      mulColumnVector(vector) {
        vector = checkColumnVector(this, vector);
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) * vector[i5]);
          }
        }
        return this;
      }
      divColumnVector(vector) {
        vector = checkColumnVector(this, vector);
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            this.set(i5, j, this.get(i5, j) / vector[i5]);
          }
        }
        return this;
      }
      mulRow(index2, value2) {
        checkRowIndex(this, index2);
        for (let i5 = 0; i5 < this.columns; i5++) {
          this.set(index2, i5, this.get(index2, i5) * value2);
        }
        return this;
      }
      mulColumn(index2, value2) {
        checkColumnIndex(this, index2);
        for (let i5 = 0; i5 < this.rows; i5++) {
          this.set(i5, index2, this.get(i5, index2) * value2);
        }
        return this;
      }
      max(by) {
        if (this.isEmpty()) {
          return NaN;
        }
        switch (by) {
          case "row": {
            const max3 = new Array(this.rows).fill(Number.NEGATIVE_INFINITY);
            for (let row = 0; row < this.rows; row++) {
              for (let column = 0; column < this.columns; column++) {
                if (this.get(row, column) > max3[row]) {
                  max3[row] = this.get(row, column);
                }
              }
            }
            return max3;
          }
          case "column": {
            const max3 = new Array(this.columns).fill(Number.NEGATIVE_INFINITY);
            for (let row = 0; row < this.rows; row++) {
              for (let column = 0; column < this.columns; column++) {
                if (this.get(row, column) > max3[column]) {
                  max3[column] = this.get(row, column);
                }
              }
            }
            return max3;
          }
          case void 0: {
            let max3 = this.get(0, 0);
            for (let row = 0; row < this.rows; row++) {
              for (let column = 0; column < this.columns; column++) {
                if (this.get(row, column) > max3) {
                  max3 = this.get(row, column);
                }
              }
            }
            return max3;
          }
          default:
            throw new Error(`invalid option: ${by}`);
        }
      }
      maxIndex() {
        checkNonEmpty(this);
        let v3 = this.get(0, 0);
        let idx = [0, 0];
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            if (this.get(i5, j) > v3) {
              v3 = this.get(i5, j);
              idx[0] = i5;
              idx[1] = j;
            }
          }
        }
        return idx;
      }
      min(by) {
        if (this.isEmpty()) {
          return NaN;
        }
        switch (by) {
          case "row": {
            const min2 = new Array(this.rows).fill(Number.POSITIVE_INFINITY);
            for (let row = 0; row < this.rows; row++) {
              for (let column = 0; column < this.columns; column++) {
                if (this.get(row, column) < min2[row]) {
                  min2[row] = this.get(row, column);
                }
              }
            }
            return min2;
          }
          case "column": {
            const min2 = new Array(this.columns).fill(Number.POSITIVE_INFINITY);
            for (let row = 0; row < this.rows; row++) {
              for (let column = 0; column < this.columns; column++) {
                if (this.get(row, column) < min2[column]) {
                  min2[column] = this.get(row, column);
                }
              }
            }
            return min2;
          }
          case void 0: {
            let min2 = this.get(0, 0);
            for (let row = 0; row < this.rows; row++) {
              for (let column = 0; column < this.columns; column++) {
                if (this.get(row, column) < min2) {
                  min2 = this.get(row, column);
                }
              }
            }
            return min2;
          }
          default:
            throw new Error(`invalid option: ${by}`);
        }
      }
      minIndex() {
        checkNonEmpty(this);
        let v3 = this.get(0, 0);
        let idx = [0, 0];
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            if (this.get(i5, j) < v3) {
              v3 = this.get(i5, j);
              idx[0] = i5;
              idx[1] = j;
            }
          }
        }
        return idx;
      }
      maxRow(row) {
        checkRowIndex(this, row);
        if (this.isEmpty()) {
          return NaN;
        }
        let v3 = this.get(row, 0);
        for (let i5 = 1; i5 < this.columns; i5++) {
          if (this.get(row, i5) > v3) {
            v3 = this.get(row, i5);
          }
        }
        return v3;
      }
      maxRowIndex(row) {
        checkRowIndex(this, row);
        checkNonEmpty(this);
        let v3 = this.get(row, 0);
        let idx = [row, 0];
        for (let i5 = 1; i5 < this.columns; i5++) {
          if (this.get(row, i5) > v3) {
            v3 = this.get(row, i5);
            idx[1] = i5;
          }
        }
        return idx;
      }
      minRow(row) {
        checkRowIndex(this, row);
        if (this.isEmpty()) {
          return NaN;
        }
        let v3 = this.get(row, 0);
        for (let i5 = 1; i5 < this.columns; i5++) {
          if (this.get(row, i5) < v3) {
            v3 = this.get(row, i5);
          }
        }
        return v3;
      }
      minRowIndex(row) {
        checkRowIndex(this, row);
        checkNonEmpty(this);
        let v3 = this.get(row, 0);
        let idx = [row, 0];
        for (let i5 = 1; i5 < this.columns; i5++) {
          if (this.get(row, i5) < v3) {
            v3 = this.get(row, i5);
            idx[1] = i5;
          }
        }
        return idx;
      }
      maxColumn(column) {
        checkColumnIndex(this, column);
        if (this.isEmpty()) {
          return NaN;
        }
        let v3 = this.get(0, column);
        for (let i5 = 1; i5 < this.rows; i5++) {
          if (this.get(i5, column) > v3) {
            v3 = this.get(i5, column);
          }
        }
        return v3;
      }
      maxColumnIndex(column) {
        checkColumnIndex(this, column);
        checkNonEmpty(this);
        let v3 = this.get(0, column);
        let idx = [0, column];
        for (let i5 = 1; i5 < this.rows; i5++) {
          if (this.get(i5, column) > v3) {
            v3 = this.get(i5, column);
            idx[0] = i5;
          }
        }
        return idx;
      }
      minColumn(column) {
        checkColumnIndex(this, column);
        if (this.isEmpty()) {
          return NaN;
        }
        let v3 = this.get(0, column);
        for (let i5 = 1; i5 < this.rows; i5++) {
          if (this.get(i5, column) < v3) {
            v3 = this.get(i5, column);
          }
        }
        return v3;
      }
      minColumnIndex(column) {
        checkColumnIndex(this, column);
        checkNonEmpty(this);
        let v3 = this.get(0, column);
        let idx = [0, column];
        for (let i5 = 1; i5 < this.rows; i5++) {
          if (this.get(i5, column) < v3) {
            v3 = this.get(i5, column);
            idx[0] = i5;
          }
        }
        return idx;
      }
      diag() {
        let min2 = Math.min(this.rows, this.columns);
        let diag = [];
        for (let i5 = 0; i5 < min2; i5++) {
          diag.push(this.get(i5, i5));
        }
        return diag;
      }
      norm(type = "frobenius") {
        switch (type) {
          case "max":
            return this.max();
          case "frobenius":
            return Math.sqrt(this.dot(this));
          default:
            throw new RangeError(`unknown norm type: ${type}`);
        }
      }
      cumulativeSum() {
        let sum = 0;
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            sum += this.get(i5, j);
            this.set(i5, j, sum);
          }
        }
        return this;
      }
      dot(vector2) {
        if (_AbstractMatrix.isMatrix(vector2)) vector2 = vector2.to1DArray();
        let vector1 = this.to1DArray();
        if (vector1.length !== vector2.length) {
          throw new RangeError("vectors do not have the same size");
        }
        let dot = 0;
        for (let i5 = 0; i5 < vector1.length; i5++) {
          dot += vector1[i5] * vector2[i5];
        }
        return dot;
      }
      mmul(other) {
        other = Matrix.checkMatrix(other);
        let m3 = this.rows;
        let n6 = this.columns;
        let p3 = other.columns;
        let result = new Matrix(m3, p3);
        let Bcolj = new Float64Array(n6);
        for (let j = 0; j < p3; j++) {
          for (let k3 = 0; k3 < n6; k3++) {
            Bcolj[k3] = other.get(k3, j);
          }
          for (let i5 = 0; i5 < m3; i5++) {
            let s4 = 0;
            for (let k3 = 0; k3 < n6; k3++) {
              s4 += this.get(i5, k3) * Bcolj[k3];
            }
            result.set(i5, j, s4);
          }
        }
        return result;
      }
      mpow(scalar) {
        if (!this.isSquare()) {
          throw new RangeError("Matrix must be square");
        }
        if (!Number.isInteger(scalar) || scalar < 0) {
          throw new RangeError("Exponent must be a non-negative integer");
        }
        let result = Matrix.eye(this.rows);
        let bb = this;
        for (let e4 = scalar; e4 >= 1; e4 /= 2) {
          if ((e4 & 1) !== 0) {
            result = result.mmul(bb);
          }
          bb = bb.mmul(bb);
        }
        return result;
      }
      strassen2x2(other) {
        other = Matrix.checkMatrix(other);
        let result = new Matrix(2, 2);
        const a11 = this.get(0, 0);
        const b11 = other.get(0, 0);
        const a12 = this.get(0, 1);
        const b12 = other.get(0, 1);
        const a21 = this.get(1, 0);
        const b21 = other.get(1, 0);
        const a22 = this.get(1, 1);
        const b22 = other.get(1, 1);
        const m1 = (a11 + a22) * (b11 + b22);
        const m22 = (a21 + a22) * b11;
        const m3 = a11 * (b12 - b22);
        const m4 = a22 * (b21 - b11);
        const m5 = (a11 + a12) * b22;
        const m6 = (a21 - a11) * (b11 + b12);
        const m7 = (a12 - a22) * (b21 + b22);
        const c00 = m1 + m4 - m5 + m7;
        const c01 = m3 + m5;
        const c10 = m22 + m4;
        const c11 = m1 - m22 + m3 + m6;
        result.set(0, 0, c00);
        result.set(0, 1, c01);
        result.set(1, 0, c10);
        result.set(1, 1, c11);
        return result;
      }
      strassen3x3(other) {
        other = Matrix.checkMatrix(other);
        let result = new Matrix(3, 3);
        const a00 = this.get(0, 0);
        const a01 = this.get(0, 1);
        const a02 = this.get(0, 2);
        const a10 = this.get(1, 0);
        const a11 = this.get(1, 1);
        const a12 = this.get(1, 2);
        const a20 = this.get(2, 0);
        const a21 = this.get(2, 1);
        const a22 = this.get(2, 2);
        const b00 = other.get(0, 0);
        const b01 = other.get(0, 1);
        const b02 = other.get(0, 2);
        const b10 = other.get(1, 0);
        const b11 = other.get(1, 1);
        const b12 = other.get(1, 2);
        const b20 = other.get(2, 0);
        const b21 = other.get(2, 1);
        const b22 = other.get(2, 2);
        const m1 = (a00 + a01 + a02 - a10 - a11 - a21 - a22) * b11;
        const m22 = (a00 - a10) * (-b01 + b11);
        const m3 = a11 * (-b00 + b01 + b10 - b11 - b12 - b20 + b22);
        const m4 = (-a00 + a10 + a11) * (b00 - b01 + b11);
        const m5 = (a10 + a11) * (-b00 + b01);
        const m6 = a00 * b00;
        const m7 = (-a00 + a20 + a21) * (b00 - b02 + b12);
        const m8 = (-a00 + a20) * (b02 - b12);
        const m9 = (a20 + a21) * (-b00 + b02);
        const m10 = (a00 + a01 + a02 - a11 - a12 - a20 - a21) * b12;
        const m11 = a21 * (-b00 + b02 + b10 - b11 - b12 - b20 + b21);
        const m12 = (-a02 + a21 + a22) * (b11 + b20 - b21);
        const m13 = (a02 - a22) * (b11 - b21);
        const m14 = a02 * b20;
        const m15 = (a21 + a22) * (-b20 + b21);
        const m16 = (-a02 + a11 + a12) * (b12 + b20 - b22);
        const m17 = (a02 - a12) * (b12 - b22);
        const m18 = (a11 + a12) * (-b20 + b22);
        const m19 = a01 * b10;
        const m20 = a12 * b21;
        const m21 = a10 * b02;
        const m222 = a20 * b01;
        const m23 = a22 * b22;
        const c00 = m6 + m14 + m19;
        const c01 = m1 + m4 + m5 + m6 + m12 + m14 + m15;
        const c02 = m6 + m7 + m9 + m10 + m14 + m16 + m18;
        const c10 = m22 + m3 + m4 + m6 + m14 + m16 + m17;
        const c11 = m22 + m4 + m5 + m6 + m20;
        const c12 = m14 + m16 + m17 + m18 + m21;
        const c20 = m6 + m7 + m8 + m11 + m12 + m13 + m14;
        const c21 = m12 + m13 + m14 + m15 + m222;
        const c22 = m6 + m7 + m8 + m9 + m23;
        result.set(0, 0, c00);
        result.set(0, 1, c01);
        result.set(0, 2, c02);
        result.set(1, 0, c10);
        result.set(1, 1, c11);
        result.set(1, 2, c12);
        result.set(2, 0, c20);
        result.set(2, 1, c21);
        result.set(2, 2, c22);
        return result;
      }
      mmulStrassen(y3) {
        y3 = Matrix.checkMatrix(y3);
        let x = this.clone();
        let r1 = x.rows;
        let c1 = x.columns;
        let r22 = y3.rows;
        let c22 = y3.columns;
        if (c1 !== r22) {
          console.warn(
            `Multiplying ${r1} x ${c1} and ${r22} x ${c22} matrix: dimensions do not match.`
          );
        }
        function embed(mat, rows, cols) {
          let r5 = mat.rows;
          let c7 = mat.columns;
          if (r5 === rows && c7 === cols) {
            return mat;
          } else {
            let resultat = _AbstractMatrix.zeros(rows, cols);
            resultat = resultat.setSubMatrix(mat, 0, 0);
            return resultat;
          }
        }
        let r4 = Math.max(r1, r22);
        let c6 = Math.max(c1, c22);
        x = embed(x, r4, c6);
        y3 = embed(y3, r4, c6);
        function blockMult(a5, b3, rows, cols) {
          if (rows <= 512 || cols <= 512) {
            return a5.mmul(b3);
          }
          if (rows % 2 === 1 && cols % 2 === 1) {
            a5 = embed(a5, rows + 1, cols + 1);
            b3 = embed(b3, rows + 1, cols + 1);
          } else if (rows % 2 === 1) {
            a5 = embed(a5, rows + 1, cols);
            b3 = embed(b3, rows + 1, cols);
          } else if (cols % 2 === 1) {
            a5 = embed(a5, rows, cols + 1);
            b3 = embed(b3, rows, cols + 1);
          }
          let halfRows = parseInt(a5.rows / 2, 10);
          let halfCols = parseInt(a5.columns / 2, 10);
          let a11 = a5.subMatrix(0, halfRows - 1, 0, halfCols - 1);
          let b11 = b3.subMatrix(0, halfRows - 1, 0, halfCols - 1);
          let a12 = a5.subMatrix(0, halfRows - 1, halfCols, a5.columns - 1);
          let b12 = b3.subMatrix(0, halfRows - 1, halfCols, b3.columns - 1);
          let a21 = a5.subMatrix(halfRows, a5.rows - 1, 0, halfCols - 1);
          let b21 = b3.subMatrix(halfRows, b3.rows - 1, 0, halfCols - 1);
          let a22 = a5.subMatrix(halfRows, a5.rows - 1, halfCols, a5.columns - 1);
          let b22 = b3.subMatrix(halfRows, b3.rows - 1, halfCols, b3.columns - 1);
          let m1 = blockMult(
            _AbstractMatrix.add(a11, a22),
            _AbstractMatrix.add(b11, b22),
            halfRows,
            halfCols
          );
          let m22 = blockMult(_AbstractMatrix.add(a21, a22), b11, halfRows, halfCols);
          let m3 = blockMult(a11, _AbstractMatrix.sub(b12, b22), halfRows, halfCols);
          let m4 = blockMult(a22, _AbstractMatrix.sub(b21, b11), halfRows, halfCols);
          let m5 = blockMult(_AbstractMatrix.add(a11, a12), b22, halfRows, halfCols);
          let m6 = blockMult(
            _AbstractMatrix.sub(a21, a11),
            _AbstractMatrix.add(b11, b12),
            halfRows,
            halfCols
          );
          let m7 = blockMult(
            _AbstractMatrix.sub(a12, a22),
            _AbstractMatrix.add(b21, b22),
            halfRows,
            halfCols
          );
          let c11 = _AbstractMatrix.add(m1, m4);
          c11.sub(m5);
          c11.add(m7);
          let c12 = _AbstractMatrix.add(m3, m5);
          let c21 = _AbstractMatrix.add(m22, m4);
          let c222 = _AbstractMatrix.sub(m1, m22);
          c222.add(m3);
          c222.add(m6);
          let result = _AbstractMatrix.zeros(2 * c11.rows, 2 * c11.columns);
          result = result.setSubMatrix(c11, 0, 0);
          result = result.setSubMatrix(c12, c11.rows, 0);
          result = result.setSubMatrix(c21, 0, c11.columns);
          result = result.setSubMatrix(c222, c11.rows, c11.columns);
          return result.subMatrix(0, rows - 1, 0, cols - 1);
        }
        return blockMult(x, y3, r4, c6);
      }
      scaleRows(options = {}) {
        if (typeof options !== "object") {
          throw new TypeError("options must be an object");
        }
        const { min: min2 = 0, max: max3 = 1 } = options;
        if (!Number.isFinite(min2)) throw new TypeError("min must be a number");
        if (!Number.isFinite(max3)) throw new TypeError("max must be a number");
        if (min2 >= max3) throw new RangeError("min must be smaller than max");
        let newMatrix = new Matrix(this.rows, this.columns);
        for (let i5 = 0; i5 < this.rows; i5++) {
          const row = this.getRow(i5);
          if (row.length > 0) {
            rescale(row, { min: min2, max: max3, output: row });
          }
          newMatrix.setRow(i5, row);
        }
        return newMatrix;
      }
      scaleColumns(options = {}) {
        if (typeof options !== "object") {
          throw new TypeError("options must be an object");
        }
        const { min: min2 = 0, max: max3 = 1 } = options;
        if (!Number.isFinite(min2)) throw new TypeError("min must be a number");
        if (!Number.isFinite(max3)) throw new TypeError("max must be a number");
        if (min2 >= max3) throw new RangeError("min must be smaller than max");
        let newMatrix = new Matrix(this.rows, this.columns);
        for (let i5 = 0; i5 < this.columns; i5++) {
          const column = this.getColumn(i5);
          if (column.length) {
            rescale(column, {
              min: min2,
              max: max3,
              output: column
            });
          }
          newMatrix.setColumn(i5, column);
        }
        return newMatrix;
      }
      flipRows() {
        const middle = Math.ceil(this.columns / 2);
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < middle; j++) {
            let first = this.get(i5, j);
            let last2 = this.get(i5, this.columns - 1 - j);
            this.set(i5, j, last2);
            this.set(i5, this.columns - 1 - j, first);
          }
        }
        return this;
      }
      flipColumns() {
        const middle = Math.ceil(this.rows / 2);
        for (let j = 0; j < this.columns; j++) {
          for (let i5 = 0; i5 < middle; i5++) {
            let first = this.get(i5, j);
            let last2 = this.get(this.rows - 1 - i5, j);
            this.set(i5, j, last2);
            this.set(this.rows - 1 - i5, j, first);
          }
        }
        return this;
      }
      kroneckerProduct(other) {
        other = Matrix.checkMatrix(other);
        let m3 = this.rows;
        let n6 = this.columns;
        let p3 = other.rows;
        let q = other.columns;
        let result = new Matrix(m3 * p3, n6 * q);
        for (let i5 = 0; i5 < m3; i5++) {
          for (let j = 0; j < n6; j++) {
            for (let k3 = 0; k3 < p3; k3++) {
              for (let l4 = 0; l4 < q; l4++) {
                result.set(p3 * i5 + k3, q * j + l4, this.get(i5, j) * other.get(k3, l4));
              }
            }
          }
        }
        return result;
      }
      kroneckerSum(other) {
        other = Matrix.checkMatrix(other);
        if (!this.isSquare() || !other.isSquare()) {
          throw new Error("Kronecker Sum needs two Square Matrices");
        }
        let m3 = this.rows;
        let n6 = other.rows;
        let AxI = this.kroneckerProduct(Matrix.eye(n6, n6));
        let IxB = Matrix.eye(m3, m3).kroneckerProduct(other);
        return AxI.add(IxB);
      }
      transpose() {
        let result = new Matrix(this.columns, this.rows);
        for (let i5 = 0; i5 < this.rows; i5++) {
          for (let j = 0; j < this.columns; j++) {
            result.set(j, i5, this.get(i5, j));
          }
        }
        return result;
      }
      sortRows(compareFunction = compareNumbers) {
        for (let i5 = 0; i5 < this.rows; i5++) {
          this.setRow(i5, this.getRow(i5).sort(compareFunction));
        }
        return this;
      }
      sortColumns(compareFunction = compareNumbers) {
        for (let i5 = 0; i5 < this.columns; i5++) {
          this.setColumn(i5, this.getColumn(i5).sort(compareFunction));
        }
        return this;
      }
      subMatrix(startRow, endRow, startColumn, endColumn) {
        checkRange(this, startRow, endRow, startColumn, endColumn);
        let newMatrix = new Matrix(
          endRow - startRow + 1,
          endColumn - startColumn + 1
        );
        for (let i5 = startRow; i5 <= endRow; i5++) {
          for (let j = startColumn; j <= endColumn; j++) {
            newMatrix.set(i5 - startRow, j - startColumn, this.get(i5, j));
          }
        }
        return newMatrix;
      }
      subMatrixRow(indices, startColumn, endColumn) {
        if (startColumn === void 0) startColumn = 0;
        if (endColumn === void 0) endColumn = this.columns - 1;
        if (startColumn > endColumn || startColumn < 0 || startColumn >= this.columns || endColumn < 0 || endColumn >= this.columns) {
          throw new RangeError("Argument out of range");
        }
        let newMatrix = new Matrix(indices.length, endColumn - startColumn + 1);
        for (let i5 = 0; i5 < indices.length; i5++) {
          for (let j = startColumn; j <= endColumn; j++) {
            if (indices[i5] < 0 || indices[i5] >= this.rows) {
              throw new RangeError(`Row index out of range: ${indices[i5]}`);
            }
            newMatrix.set(i5, j - startColumn, this.get(indices[i5], j));
          }
        }
        return newMatrix;
      }
      subMatrixColumn(indices, startRow, endRow) {
        if (startRow === void 0) startRow = 0;
        if (endRow === void 0) endRow = this.rows - 1;
        if (startRow > endRow || startRow < 0 || startRow >= this.rows || endRow < 0 || endRow >= this.rows) {
          throw new RangeError("Argument out of range");
        }
        let newMatrix = new Matrix(endRow - startRow + 1, indices.length);
        for (let i5 = 0; i5 < indices.length; i5++) {
          for (let j = startRow; j <= endRow; j++) {
            if (indices[i5] < 0 || indices[i5] >= this.columns) {
              throw new RangeError(`Column index out of range: ${indices[i5]}`);
            }
            newMatrix.set(j - startRow, i5, this.get(j, indices[i5]));
          }
        }
        return newMatrix;
      }
      setSubMatrix(matrix, startRow, startColumn) {
        matrix = Matrix.checkMatrix(matrix);
        if (matrix.isEmpty()) {
          return this;
        }
        let endRow = startRow + matrix.rows - 1;
        let endColumn = startColumn + matrix.columns - 1;
        checkRange(this, startRow, endRow, startColumn, endColumn);
        for (let i5 = 0; i5 < matrix.rows; i5++) {
          for (let j = 0; j < matrix.columns; j++) {
            this.set(startRow + i5, startColumn + j, matrix.get(i5, j));
          }
        }
        return this;
      }
      selection(rowIndices, columnIndices) {
        checkRowIndices(this, rowIndices);
        checkColumnIndices(this, columnIndices);
        let newMatrix = new Matrix(rowIndices.length, columnIndices.length);
        for (let i5 = 0; i5 < rowIndices.length; i5++) {
          let rowIndex = rowIndices[i5];
          for (let j = 0; j < columnIndices.length; j++) {
            let columnIndex = columnIndices[j];
            newMatrix.set(i5, j, this.get(rowIndex, columnIndex));
          }
        }
        return newMatrix;
      }
      trace() {
        let min2 = Math.min(this.rows, this.columns);
        let trace = 0;
        for (let i5 = 0; i5 < min2; i5++) {
          trace += this.get(i5, i5);
        }
        return trace;
      }
      clone() {
        return this.constructor.copy(this, new Matrix(this.rows, this.columns));
      }
      /**
       * @template {AbstractMatrix} M
       * @param {AbstractMatrix} from
       * @param {M} to
       * @return {M}
       */
      static copy(from, to) {
        for (const [row, column, value2] of from.entries()) {
          to.set(row, column, value2);
        }
        return to;
      }
      sum(by) {
        switch (by) {
          case "row":
            return sumByRow(this);
          case "column":
            return sumByColumn(this);
          case void 0:
            return sumAll(this);
          default:
            throw new Error(`invalid option: ${by}`);
        }
      }
      product(by) {
        switch (by) {
          case "row":
            return productByRow(this);
          case "column":
            return productByColumn(this);
          case void 0:
            return productAll(this);
          default:
            throw new Error(`invalid option: ${by}`);
        }
      }
      mean(by) {
        const sum = this.sum(by);
        switch (by) {
          case "row": {
            for (let i5 = 0; i5 < this.rows; i5++) {
              sum[i5] /= this.columns;
            }
            return sum;
          }
          case "column": {
            for (let i5 = 0; i5 < this.columns; i5++) {
              sum[i5] /= this.rows;
            }
            return sum;
          }
          case void 0:
            return sum / this.size;
          default:
            throw new Error(`invalid option: ${by}`);
        }
      }
      variance(by, options = {}) {
        if (typeof by === "object") {
          options = by;
          by = void 0;
        }
        if (typeof options !== "object") {
          throw new TypeError("options must be an object");
        }
        const { unbiased = true, mean = this.mean(by) } = options;
        if (typeof unbiased !== "boolean") {
          throw new TypeError("unbiased must be a boolean");
        }
        switch (by) {
          case "row": {
            if (!isAnyArray.isAnyArray(mean)) {
              throw new TypeError("mean must be an array");
            }
            return varianceByRow(this, unbiased, mean);
          }
          case "column": {
            if (!isAnyArray.isAnyArray(mean)) {
              throw new TypeError("mean must be an array");
            }
            return varianceByColumn(this, unbiased, mean);
          }
          case void 0: {
            if (typeof mean !== "number") {
              throw new TypeError("mean must be a number");
            }
            return varianceAll(this, unbiased, mean);
          }
          default:
            throw new Error(`invalid option: ${by}`);
        }
      }
      standardDeviation(by, options) {
        if (typeof by === "object") {
          options = by;
          by = void 0;
        }
        const variance = this.variance(by, options);
        if (by === void 0) {
          return Math.sqrt(variance);
        } else {
          for (let i5 = 0; i5 < variance.length; i5++) {
            variance[i5] = Math.sqrt(variance[i5]);
          }
          return variance;
        }
      }
      center(by, options = {}) {
        if (typeof by === "object") {
          options = by;
          by = void 0;
        }
        if (typeof options !== "object") {
          throw new TypeError("options must be an object");
        }
        const { center = this.mean(by) } = options;
        switch (by) {
          case "row": {
            if (!isAnyArray.isAnyArray(center)) {
              throw new TypeError("center must be an array");
            }
            centerByRow(this, center);
            return this;
          }
          case "column": {
            if (!isAnyArray.isAnyArray(center)) {
              throw new TypeError("center must be an array");
            }
            centerByColumn(this, center);
            return this;
          }
          case void 0: {
            if (typeof center !== "number") {
              throw new TypeError("center must be a number");
            }
            centerAll(this, center);
            return this;
          }
          default:
            throw new Error(`invalid option: ${by}`);
        }
      }
      scale(by, options = {}) {
        if (typeof by === "object") {
          options = by;
          by = void 0;
        }
        if (typeof options !== "object") {
          throw new TypeError("options must be an object");
        }
        let scale2 = options.scale;
        switch (by) {
          case "row": {
            if (scale2 === void 0) {
              scale2 = getScaleByRow(this);
            } else if (!isAnyArray.isAnyArray(scale2)) {
              throw new TypeError("scale must be an array");
            }
            scaleByRow(this, scale2);
            return this;
          }
          case "column": {
            if (scale2 === void 0) {
              scale2 = getScaleByColumn(this);
            } else if (!isAnyArray.isAnyArray(scale2)) {
              throw new TypeError("scale must be an array");
            }
            scaleByColumn(this, scale2);
            return this;
          }
          case void 0: {
            if (scale2 === void 0) {
              scale2 = getScaleAll(this);
            } else if (typeof scale2 !== "number") {
              throw new TypeError("scale must be a number");
            }
            scaleAll(this, scale2);
            return this;
          }
          default:
            throw new Error(`invalid option: ${by}`);
        }
      }
      toString(options) {
        return inspectMatrixWithOptions(this, options);
      }
      [Symbol.iterator]() {
        return this.entries();
      }
      /**
       * iterator from left to right, from top to bottom
       * yield [row, column, value]
       * @returns {Generator<[number, number, number], void, void>}
       */
      *entries() {
        for (let row = 0; row < this.rows; row++) {
          for (let col = 0; col < this.columns; col++) {
            yield [row, col, this.get(row, col)];
          }
        }
      }
      /**
       * iterator from left to right, from top to bottom
       * yield value
       * @returns {Generator<number, void, void>}
       */
      *values() {
        for (let row = 0; row < this.rows; row++) {
          for (let col = 0; col < this.columns; col++) {
            yield this.get(row, col);
          }
        }
      }
    };
    AbstractMatrix.prototype.klass = "Matrix";
    if (typeof Symbol !== "undefined") {
      AbstractMatrix.prototype[Symbol.for("nodejs.util.inspect.custom")] = inspectMatrix;
    }
    function compareNumbers(a5, b3) {
      return a5 - b3;
    }
    function isArrayOfNumbers(array) {
      return array.every((element) => {
        return typeof element === "number";
      });
    }
    AbstractMatrix.random = AbstractMatrix.rand;
    AbstractMatrix.randomInt = AbstractMatrix.randInt;
    AbstractMatrix.diagonal = AbstractMatrix.diag;
    AbstractMatrix.prototype.diagonal = AbstractMatrix.prototype.diag;
    AbstractMatrix.identity = AbstractMatrix.eye;
    AbstractMatrix.prototype.negate = AbstractMatrix.prototype.neg;
    AbstractMatrix.prototype.tensorProduct = AbstractMatrix.prototype.kroneckerProduct;
    var Matrix = class _Matrix extends AbstractMatrix {
      /**
       * @type {Float64Array[]}
       */
      data;
      /**
       * Init an empty matrix
       * @param {number} nRows
       * @param {number} nColumns
       */
      #initData(nRows, nColumns) {
        this.data = [];
        if (Number.isInteger(nColumns) && nColumns >= 0) {
          for (let i5 = 0; i5 < nRows; i5++) {
            this.data.push(new Float64Array(nColumns));
          }
        } else {
          throw new TypeError("nColumns must be a positive integer");
        }
        this.rows = nRows;
        this.columns = nColumns;
      }
      constructor(nRows, nColumns) {
        super();
        if (_Matrix.isMatrix(nRows)) {
          this.#initData(nRows.rows, nRows.columns);
          _Matrix.copy(nRows, this);
        } else if (Number.isInteger(nRows) && nRows >= 0) {
          this.#initData(nRows, nColumns);
        } else if (isAnyArray.isAnyArray(nRows)) {
          const arrayData = nRows;
          nRows = arrayData.length;
          nColumns = nRows ? arrayData[0].length : 0;
          if (typeof nColumns !== "number") {
            throw new TypeError(
              "Data must be a 2D array with at least one element"
            );
          }
          this.data = [];
          for (let i5 = 0; i5 < nRows; i5++) {
            if (arrayData[i5].length !== nColumns) {
              throw new RangeError("Inconsistent array dimensions");
            }
            if (!isArrayOfNumbers(arrayData[i5])) {
              throw new TypeError("Input data contains non-numeric values");
            }
            this.data.push(Float64Array.from(arrayData[i5]));
          }
          this.rows = nRows;
          this.columns = nColumns;
        } else {
          throw new TypeError(
            "First argument must be a positive number or an array"
          );
        }
      }
      set(rowIndex, columnIndex, value2) {
        this.data[rowIndex][columnIndex] = value2;
        return this;
      }
      get(rowIndex, columnIndex) {
        return this.data[rowIndex][columnIndex];
      }
      removeRow(index2) {
        checkRowIndex(this, index2);
        this.data.splice(index2, 1);
        this.rows -= 1;
        return this;
      }
      addRow(index2, array) {
        if (array === void 0) {
          array = index2;
          index2 = this.rows;
        }
        checkRowIndex(this, index2, true);
        array = Float64Array.from(checkRowVector(this, array));
        this.data.splice(index2, 0, array);
        this.rows += 1;
        return this;
      }
      removeColumn(index2) {
        checkColumnIndex(this, index2);
        for (let i5 = 0; i5 < this.rows; i5++) {
          const newRow = new Float64Array(this.columns - 1);
          for (let j = 0; j < index2; j++) {
            newRow[j] = this.data[i5][j];
          }
          for (let j = index2 + 1; j < this.columns; j++) {
            newRow[j - 1] = this.data[i5][j];
          }
          this.data[i5] = newRow;
        }
        this.columns -= 1;
        return this;
      }
      addColumn(index2, array) {
        if (typeof array === "undefined") {
          array = index2;
          index2 = this.columns;
        }
        checkColumnIndex(this, index2, true);
        array = checkColumnVector(this, array);
        for (let i5 = 0; i5 < this.rows; i5++) {
          const newRow = new Float64Array(this.columns + 1);
          let j = 0;
          for (; j < index2; j++) {
            newRow[j] = this.data[i5][j];
          }
          newRow[j++] = array[i5];
          for (; j < this.columns + 1; j++) {
            newRow[j] = this.data[i5][j - 1];
          }
          this.data[i5] = newRow;
        }
        this.columns += 1;
        return this;
      }
    };
    installMathOperations(AbstractMatrix, Matrix);
    var SymmetricMatrix = class _SymmetricMatrix extends AbstractMatrix {
      /** @type {Matrix} */
      #matrix;
      get size() {
        return this.#matrix.size;
      }
      get rows() {
        return this.#matrix.rows;
      }
      get columns() {
        return this.#matrix.columns;
      }
      get diagonalSize() {
        return this.rows;
      }
      /**
       * not the same as matrix.isSymmetric()
       * Here is to check if it's instanceof SymmetricMatrix without bundling issues
       *
       * @param value
       * @returns {boolean}
       */
      static isSymmetricMatrix(value2) {
        return Matrix.isMatrix(value2) && value2.klassType === "SymmetricMatrix";
      }
      /**
       * @param diagonalSize
       * @return {SymmetricMatrix}
       */
      static zeros(diagonalSize) {
        return new this(diagonalSize);
      }
      /**
       * @param diagonalSize
       * @return {SymmetricMatrix}
       */
      static ones(diagonalSize) {
        return new this(diagonalSize).fill(1);
      }
      /**
       * @param {number | AbstractMatrix | ArrayLike<ArrayLike<number>>} diagonalSize
       * @return {this}
       */
      constructor(diagonalSize) {
        super();
        if (Matrix.isMatrix(diagonalSize)) {
          if (!diagonalSize.isSymmetric()) {
            throw new TypeError("not symmetric data");
          }
          this.#matrix = Matrix.copy(
            diagonalSize,
            new Matrix(diagonalSize.rows, diagonalSize.rows)
          );
        } else if (Number.isInteger(diagonalSize) && diagonalSize >= 0) {
          this.#matrix = new Matrix(diagonalSize, diagonalSize);
        } else {
          this.#matrix = new Matrix(diagonalSize);
          if (!this.isSymmetric()) {
            throw new TypeError("not symmetric data");
          }
        }
      }
      clone() {
        const matrix = new _SymmetricMatrix(this.diagonalSize);
        for (const [row, col, value2] of this.upperRightEntries()) {
          matrix.set(row, col, value2);
        }
        return matrix;
      }
      toMatrix() {
        return new Matrix(this);
      }
      get(rowIndex, columnIndex) {
        return this.#matrix.get(rowIndex, columnIndex);
      }
      set(rowIndex, columnIndex, value2) {
        this.#matrix.set(rowIndex, columnIndex, value2);
        this.#matrix.set(columnIndex, rowIndex, value2);
        return this;
      }
      removeCross(index2) {
        this.#matrix.removeRow(index2);
        this.#matrix.removeColumn(index2);
        return this;
      }
      addCross(index2, array) {
        if (array === void 0) {
          array = index2;
          index2 = this.diagonalSize;
        }
        const row = array.slice();
        row.splice(index2, 1);
        this.#matrix.addRow(index2, row);
        this.#matrix.addColumn(index2, array);
        return this;
      }
      /**
       * @param {Mask[]} mask
       */
      applyMask(mask) {
        if (mask.length !== this.diagonalSize) {
          throw new RangeError("Mask size do not match with matrix size");
        }
        const sidesToRemove = [];
        for (const [index2, passthroughs] of mask.entries()) {
          if (passthroughs) continue;
          sidesToRemove.push(index2);
        }
        sidesToRemove.reverse();
        for (const sideIndex of sidesToRemove) {
          this.removeCross(sideIndex);
        }
        return this;
      }
      /**
       * Compact format upper-right corner of matrix
       * iterate from left to right, from top to bottom.
       *
       * ```
       *   A B C D
       * A 1 2 3 4
       * B 2 5 6 7
       * C 3 6 8 9
       * D 4 7 9 10
       * ```
       *
       * will return compact 1D array `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`
       *
       * length is S(i=0, n=sideSize) => 10 for a 4 sideSized matrix
       *
       * @returns {number[]}
       */
      toCompact() {
        const { diagonalSize } = this;
        const compact2 = new Array(diagonalSize * (diagonalSize + 1) / 2);
        for (let col = 0, row = 0, index2 = 0; index2 < compact2.length; index2++) {
          compact2[index2] = this.get(row, col);
          if (++col >= diagonalSize) col = ++row;
        }
        return compact2;
      }
      /**
       * @param {number[]} compact
       * @return {SymmetricMatrix}
       */
      static fromCompact(compact2) {
        const compactSize = compact2.length;
        const diagonalSize = (Math.sqrt(8 * compactSize + 1) - 1) / 2;
        if (!Number.isInteger(diagonalSize)) {
          throw new TypeError(
            `This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(
              compact2
            )}`
          );
        }
        const matrix = new _SymmetricMatrix(diagonalSize);
        for (let col = 0, row = 0, index2 = 0; index2 < compactSize; index2++) {
          matrix.set(col, row, compact2[index2]);
          if (++col >= diagonalSize) col = ++row;
        }
        return matrix;
      }
      /**
       * half iterator upper-right-corner from left to right, from top to bottom
       * yield [row, column, value]
       *
       * @returns {Generator<[number, number, number], void, void>}
       */
      *upperRightEntries() {
        for (let row = 0, col = 0; row < this.diagonalSize; void 0) {
          const value2 = this.get(row, col);
          yield [row, col, value2];
          if (++col >= this.diagonalSize) col = ++row;
        }
      }
      /**
       * half iterator upper-right-corner from left to right, from top to bottom
       * yield value
       *
       * @returns {Generator<[number, number, number], void, void>}
       */
      *upperRightValues() {
        for (let row = 0, col = 0; row < this.diagonalSize; void 0) {
          const value2 = this.get(row, col);
          yield value2;
          if (++col >= this.diagonalSize) col = ++row;
        }
      }
    };
    SymmetricMatrix.prototype.klassType = "SymmetricMatrix";
    var DistanceMatrix = class _DistanceMatrix extends SymmetricMatrix {
      /**
       * not the same as matrix.isSymmetric()
       * Here is to check if it's instanceof SymmetricMatrix without bundling issues
       *
       * @param value
       * @returns {boolean}
       */
      static isDistanceMatrix(value2) {
        return SymmetricMatrix.isSymmetricMatrix(value2) && value2.klassSubType === "DistanceMatrix";
      }
      constructor(sideSize) {
        super(sideSize);
        if (!this.isDistance()) {
          throw new TypeError("Provided arguments do no produce a distance matrix");
        }
      }
      set(rowIndex, columnIndex, value2) {
        if (rowIndex === columnIndex) value2 = 0;
        return super.set(rowIndex, columnIndex, value2);
      }
      addCross(index2, array) {
        if (array === void 0) {
          array = index2;
          index2 = this.diagonalSize;
        }
        array = array.slice();
        array[index2] = 0;
        return super.addCross(index2, array);
      }
      toSymmetricMatrix() {
        return new SymmetricMatrix(this);
      }
      clone() {
        const matrix = new _DistanceMatrix(this.diagonalSize);
        for (const [row, col, value2] of this.upperRightEntries()) {
          if (row === col) continue;
          matrix.set(row, col, value2);
        }
        return matrix;
      }
      /**
       * Compact format upper-right corner of matrix
       * no diagonal (only zeros)
       * iterable from left to right, from top to bottom.
       *
       * ```
       *   A B C D
       * A 0 1 2 3
       * B 1 0 4 5
       * C 2 4 0 6
       * D 3 5 6 0
       * ```
       *
       * will return compact 1D array `[1, 2, 3, 4, 5, 6]`
       *
       * length is S(i=0, n=sideSize-1) => 6 for a 4 side sized matrix
       *
       * @returns {number[]}
       */
      toCompact() {
        const { diagonalSize } = this;
        const compactLength = (diagonalSize - 1) * diagonalSize / 2;
        const compact2 = new Array(compactLength);
        for (let col = 1, row = 0, index2 = 0; index2 < compact2.length; index2++) {
          compact2[index2] = this.get(row, col);
          if (++col >= diagonalSize) col = ++row + 1;
        }
        return compact2;
      }
      /**
       * @param {number[]} compact
       */
      static fromCompact(compact2) {
        const compactSize = compact2.length;
        if (compactSize === 0) {
          return new this(0);
        }
        const diagonalSize = (Math.sqrt(8 * compactSize + 1) + 1) / 2;
        if (!Number.isInteger(diagonalSize)) {
          throw new TypeError(
            `This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(
              compact2
            )}`
          );
        }
        const matrix = new this(diagonalSize);
        for (let col = 1, row = 0, index2 = 0; index2 < compactSize; index2++) {
          matrix.set(col, row, compact2[index2]);
          if (++col >= diagonalSize) col = ++row + 1;
        }
        return matrix;
      }
    };
    DistanceMatrix.prototype.klassSubType = "DistanceMatrix";
    var BaseView = class extends AbstractMatrix {
      constructor(matrix, rows, columns) {
        super();
        this.matrix = matrix;
        this.rows = rows;
        this.columns = columns;
      }
    };
    var MatrixColumnView = class extends BaseView {
      constructor(matrix, column) {
        checkColumnIndex(matrix, column);
        super(matrix, matrix.rows, 1);
        this.column = column;
      }
      set(rowIndex, columnIndex, value2) {
        this.matrix.set(rowIndex, this.column, value2);
        return this;
      }
      get(rowIndex) {
        return this.matrix.get(rowIndex, this.column);
      }
    };
    var MatrixColumnSelectionView = class extends BaseView {
      constructor(matrix, columnIndices) {
        checkColumnIndices(matrix, columnIndices);
        super(matrix, matrix.rows, columnIndices.length);
        this.columnIndices = columnIndices;
      }
      set(rowIndex, columnIndex, value2) {
        this.matrix.set(rowIndex, this.columnIndices[columnIndex], value2);
        return this;
      }
      get(rowIndex, columnIndex) {
        return this.matrix.get(rowIndex, this.columnIndices[columnIndex]);
      }
    };
    var MatrixFlipColumnView = class extends BaseView {
      constructor(matrix) {
        super(matrix, matrix.rows, matrix.columns);
      }
      set(rowIndex, columnIndex, value2) {
        this.matrix.set(rowIndex, this.columns - columnIndex - 1, value2);
        return this;
      }
      get(rowIndex, columnIndex) {
        return this.matrix.get(rowIndex, this.columns - columnIndex - 1);
      }
    };
    var MatrixFlipRowView = class extends BaseView {
      constructor(matrix) {
        super(matrix, matrix.rows, matrix.columns);
      }
      set(rowIndex, columnIndex, value2) {
        this.matrix.set(this.rows - rowIndex - 1, columnIndex, value2);
        return this;
      }
      get(rowIndex, columnIndex) {
        return this.matrix.get(this.rows - rowIndex - 1, columnIndex);
      }
    };
    var MatrixRowView = class extends BaseView {
      constructor(matrix, row) {
        checkRowIndex(matrix, row);
        super(matrix, 1, matrix.columns);
        this.row = row;
      }
      set(rowIndex, columnIndex, value2) {
        this.matrix.set(this.row, columnIndex, value2);
        return this;
      }
      get(rowIndex, columnIndex) {
        return this.matrix.get(this.row, columnIndex);
      }
    };
    var MatrixRowSelectionView = class extends BaseView {
      constructor(matrix, rowIndices) {
        checkRowIndices(matrix, rowIndices);
        super(matrix, rowIndices.length, matrix.columns);
        this.rowIndices = rowIndices;
      }
      set(rowIndex, columnIndex, value2) {
        this.matrix.set(this.rowIndices[rowIndex], columnIndex, value2);
        return this;
      }
      get(rowIndex, columnIndex) {
        return this.matrix.get(this.rowIndices[rowIndex], columnIndex);
      }
    };
    var MatrixSelectionView = class extends BaseView {
      constructor(matrix, rowIndices, columnIndices) {
        checkRowIndices(matrix, rowIndices);
        checkColumnIndices(matrix, columnIndices);
        super(matrix, rowIndices.length, columnIndices.length);
        this.rowIndices = rowIndices;
        this.columnIndices = columnIndices;
      }
      set(rowIndex, columnIndex, value2) {
        this.matrix.set(
          this.rowIndices[rowIndex],
          this.columnIndices[columnIndex],
          value2
        );
        return this;
      }
      get(rowIndex, columnIndex) {
        return this.matrix.get(
          this.rowIndices[rowIndex],
          this.columnIndices[columnIndex]
        );
      }
    };
    var MatrixSubView = class extends BaseView {
      constructor(matrix, startRow, endRow, startColumn, endColumn) {
        checkRange(matrix, startRow, endRow, startColumn, endColumn);
        super(matrix, endRow - startRow + 1, endColumn - startColumn + 1);
        this.startRow = startRow;
        this.startColumn = startColumn;
      }
      set(rowIndex, columnIndex, value2) {
        this.matrix.set(
          this.startRow + rowIndex,
          this.startColumn + columnIndex,
          value2
        );
        return this;
      }
      get(rowIndex, columnIndex) {
        return this.matrix.get(
          this.startRow + rowIndex,
          this.startColumn + columnIndex
        );
      }
    };
    var MatrixTransposeView = class extends BaseView {
      constructor(matrix) {
        super(matrix, matrix.columns, matrix.rows);
      }
      set(rowIndex, columnIndex, value2) {
        this.matrix.set(columnIndex, rowIndex, value2);
        return this;
      }
      get(rowIndex, columnIndex) {
        return this.matrix.get(columnIndex, rowIndex);
      }
    };
    var WrapperMatrix1D = class extends AbstractMatrix {
      constructor(data2, options = {}) {
        const { rows = 1 } = options;
        if (data2.length % rows !== 0) {
          throw new Error("the data length is not divisible by the number of rows");
        }
        super();
        this.rows = rows;
        this.columns = data2.length / rows;
        this.data = data2;
      }
      set(rowIndex, columnIndex, value2) {
        let index2 = this._calculateIndex(rowIndex, columnIndex);
        this.data[index2] = value2;
        return this;
      }
      get(rowIndex, columnIndex) {
        let index2 = this._calculateIndex(rowIndex, columnIndex);
        return this.data[index2];
      }
      _calculateIndex(row, column) {
        return row * this.columns + column;
      }
    };
    var WrapperMatrix2D = class extends AbstractMatrix {
      constructor(data2) {
        super();
        this.data = data2;
        this.rows = data2.length;
        this.columns = data2[0].length;
      }
      set(rowIndex, columnIndex, value2) {
        this.data[rowIndex][columnIndex] = value2;
        return this;
      }
      get(rowIndex, columnIndex) {
        return this.data[rowIndex][columnIndex];
      }
    };
    function wrap(array, options) {
      if (isAnyArray.isAnyArray(array)) {
        if (array[0] && isAnyArray.isAnyArray(array[0])) {
          return new WrapperMatrix2D(array);
        } else {
          return new WrapperMatrix1D(array, options);
        }
      } else {
        throw new Error("the argument is not an array");
      }
    }
    var LuDecomposition = class {
      constructor(matrix) {
        matrix = WrapperMatrix2D.checkMatrix(matrix);
        let lu = matrix.clone();
        let rows = lu.rows;
        let columns = lu.columns;
        let pivotVector = new Float64Array(rows);
        let pivotSign = 1;
        let i5, j, k3, p3, s4, t4, v3;
        let LUcolj, kmax;
        for (i5 = 0; i5 < rows; i5++) {
          pivotVector[i5] = i5;
        }
        LUcolj = new Float64Array(rows);
        for (j = 0; j < columns; j++) {
          for (i5 = 0; i5 < rows; i5++) {
            LUcolj[i5] = lu.get(i5, j);
          }
          for (i5 = 0; i5 < rows; i5++) {
            kmax = Math.min(i5, j);
            s4 = 0;
            for (k3 = 0; k3 < kmax; k3++) {
              s4 += lu.get(i5, k3) * LUcolj[k3];
            }
            LUcolj[i5] -= s4;
            lu.set(i5, j, LUcolj[i5]);
          }
          p3 = j;
          for (i5 = j + 1; i5 < rows; i5++) {
            if (Math.abs(LUcolj[i5]) > Math.abs(LUcolj[p3])) {
              p3 = i5;
            }
          }
          if (p3 !== j) {
            for (k3 = 0; k3 < columns; k3++) {
              t4 = lu.get(p3, k3);
              lu.set(p3, k3, lu.get(j, k3));
              lu.set(j, k3, t4);
            }
            v3 = pivotVector[p3];
            pivotVector[p3] = pivotVector[j];
            pivotVector[j] = v3;
            pivotSign = -pivotSign;
          }
          if (j < rows && lu.get(j, j) !== 0) {
            for (i5 = j + 1; i5 < rows; i5++) {
              lu.set(i5, j, lu.get(i5, j) / lu.get(j, j));
            }
          }
        }
        this.LU = lu;
        this.pivotVector = pivotVector;
        this.pivotSign = pivotSign;
      }
      isSingular() {
        let data2 = this.LU;
        let col = data2.columns;
        for (let j = 0; j < col; j++) {
          if (data2.get(j, j) === 0) {
            return true;
          }
        }
        return false;
      }
      solve(value2) {
        value2 = Matrix.checkMatrix(value2);
        let lu = this.LU;
        let rows = lu.rows;
        if (rows !== value2.rows) {
          throw new Error("Invalid matrix dimensions");
        }
        if (this.isSingular()) {
          throw new Error("LU matrix is singular");
        }
        let count = value2.columns;
        let X = value2.subMatrixRow(this.pivotVector, 0, count - 1);
        let columns = lu.columns;
        let i5, j, k3;
        for (k3 = 0; k3 < columns; k3++) {
          for (i5 = k3 + 1; i5 < columns; i5++) {
            for (j = 0; j < count; j++) {
              X.set(i5, j, X.get(i5, j) - X.get(k3, j) * lu.get(i5, k3));
            }
          }
        }
        for (k3 = columns - 1; k3 >= 0; k3--) {
          for (j = 0; j < count; j++) {
            X.set(k3, j, X.get(k3, j) / lu.get(k3, k3));
          }
          for (i5 = 0; i5 < k3; i5++) {
            for (j = 0; j < count; j++) {
              X.set(i5, j, X.get(i5, j) - X.get(k3, j) * lu.get(i5, k3));
            }
          }
        }
        return X;
      }
      get determinant() {
        let data2 = this.LU;
        if (!data2.isSquare()) {
          throw new Error("Matrix must be square");
        }
        let determinant2 = this.pivotSign;
        let col = data2.columns;
        for (let j = 0; j < col; j++) {
          determinant2 *= data2.get(j, j);
        }
        return determinant2;
      }
      get lowerTriangularMatrix() {
        let data2 = this.LU;
        let rows = data2.rows;
        let columns = data2.columns;
        let X = new Matrix(rows, columns);
        for (let i5 = 0; i5 < rows; i5++) {
          for (let j = 0; j < columns; j++) {
            if (i5 > j) {
              X.set(i5, j, data2.get(i5, j));
            } else if (i5 === j) {
              X.set(i5, j, 1);
            } else {
              X.set(i5, j, 0);
            }
          }
        }
        return X;
      }
      get upperTriangularMatrix() {
        let data2 = this.LU;
        let rows = data2.rows;
        let columns = data2.columns;
        let X = new Matrix(rows, columns);
        for (let i5 = 0; i5 < rows; i5++) {
          for (let j = 0; j < columns; j++) {
            if (i5 <= j) {
              X.set(i5, j, data2.get(i5, j));
            } else {
              X.set(i5, j, 0);
            }
          }
        }
        return X;
      }
      get pivotPermutationVector() {
        return Array.from(this.pivotVector);
      }
    };
    function hypotenuse(a5, b3) {
      let r4 = 0;
      if (Math.abs(a5) > Math.abs(b3)) {
        r4 = b3 / a5;
        return Math.abs(a5) * Math.sqrt(1 + r4 * r4);
      }
      if (b3 !== 0) {
        r4 = a5 / b3;
        return Math.abs(b3) * Math.sqrt(1 + r4 * r4);
      }
      return 0;
    }
    var QrDecomposition = class {
      constructor(value2) {
        value2 = WrapperMatrix2D.checkMatrix(value2);
        let qr = value2.clone();
        let m3 = value2.rows;
        let n6 = value2.columns;
        let rdiag = new Float64Array(n6);
        let i5, j, k3, s4;
        for (k3 = 0; k3 < n6; k3++) {
          let nrm = 0;
          for (i5 = k3; i5 < m3; i5++) {
            nrm = hypotenuse(nrm, qr.get(i5, k3));
          }
          if (nrm !== 0) {
            if (qr.get(k3, k3) < 0) {
              nrm = -nrm;
            }
            for (i5 = k3; i5 < m3; i5++) {
              qr.set(i5, k3, qr.get(i5, k3) / nrm);
            }
            qr.set(k3, k3, qr.get(k3, k3) + 1);
            for (j = k3 + 1; j < n6; j++) {
              s4 = 0;
              for (i5 = k3; i5 < m3; i5++) {
                s4 += qr.get(i5, k3) * qr.get(i5, j);
              }
              s4 = -s4 / qr.get(k3, k3);
              for (i5 = k3; i5 < m3; i5++) {
                qr.set(i5, j, qr.get(i5, j) + s4 * qr.get(i5, k3));
              }
            }
          }
          rdiag[k3] = -nrm;
        }
        this.QR = qr;
        this.Rdiag = rdiag;
      }
      solve(value2) {
        value2 = Matrix.checkMatrix(value2);
        let qr = this.QR;
        let m3 = qr.rows;
        if (value2.rows !== m3) {
          throw new Error("Matrix row dimensions must agree");
        }
        if (!this.isFullRank()) {
          throw new Error("Matrix is rank deficient");
        }
        let count = value2.columns;
        let X = value2.clone();
        let n6 = qr.columns;
        let i5, j, k3, s4;
        for (k3 = 0; k3 < n6; k3++) {
          for (j = 0; j < count; j++) {
            s4 = 0;
            for (i5 = k3; i5 < m3; i5++) {
              s4 += qr.get(i5, k3) * X.get(i5, j);
            }
            s4 = -s4 / qr.get(k3, k3);
            for (i5 = k3; i5 < m3; i5++) {
              X.set(i5, j, X.get(i5, j) + s4 * qr.get(i5, k3));
            }
          }
        }
        for (k3 = n6 - 1; k3 >= 0; k3--) {
          for (j = 0; j < count; j++) {
            X.set(k3, j, X.get(k3, j) / this.Rdiag[k3]);
          }
          for (i5 = 0; i5 < k3; i5++) {
            for (j = 0; j < count; j++) {
              X.set(i5, j, X.get(i5, j) - X.get(k3, j) * qr.get(i5, k3));
            }
          }
        }
        return X.subMatrix(0, n6 - 1, 0, count - 1);
      }
      isFullRank() {
        let columns = this.QR.columns;
        for (let i5 = 0; i5 < columns; i5++) {
          if (this.Rdiag[i5] === 0) {
            return false;
          }
        }
        return true;
      }
      get upperTriangularMatrix() {
        let qr = this.QR;
        let n6 = qr.columns;
        let X = new Matrix(n6, n6);
        let i5, j;
        for (i5 = 0; i5 < n6; i5++) {
          for (j = 0; j < n6; j++) {
            if (i5 < j) {
              X.set(i5, j, qr.get(i5, j));
            } else if (i5 === j) {
              X.set(i5, j, this.Rdiag[i5]);
            } else {
              X.set(i5, j, 0);
            }
          }
        }
        return X;
      }
      get orthogonalMatrix() {
        let qr = this.QR;
        let rows = qr.rows;
        let columns = qr.columns;
        let X = new Matrix(rows, columns);
        let i5, j, k3, s4;
        for (k3 = columns - 1; k3 >= 0; k3--) {
          for (i5 = 0; i5 < rows; i5++) {
            X.set(i5, k3, 0);
          }
          X.set(k3, k3, 1);
          for (j = k3; j < columns; j++) {
            if (qr.get(k3, k3) !== 0) {
              s4 = 0;
              for (i5 = k3; i5 < rows; i5++) {
                s4 += qr.get(i5, k3) * X.get(i5, j);
              }
              s4 = -s4 / qr.get(k3, k3);
              for (i5 = k3; i5 < rows; i5++) {
                X.set(i5, j, X.get(i5, j) + s4 * qr.get(i5, k3));
              }
            }
          }
        }
        return X;
      }
    };
    var SingularValueDecomposition = class {
      constructor(value2, options = {}) {
        value2 = WrapperMatrix2D.checkMatrix(value2);
        if (value2.isEmpty()) {
          throw new Error("Matrix must be non-empty");
        }
        let m3 = value2.rows;
        let n6 = value2.columns;
        const {
          computeLeftSingularVectors = true,
          computeRightSingularVectors = true,
          autoTranspose = false
        } = options;
        let wantu = Boolean(computeLeftSingularVectors);
        let wantv = Boolean(computeRightSingularVectors);
        let swapped = false;
        let a5;
        if (m3 < n6) {
          if (!autoTranspose) {
            a5 = value2.clone();
            console.warn(
              "Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose"
            );
          } else {
            a5 = value2.transpose();
            m3 = a5.rows;
            n6 = a5.columns;
            swapped = true;
            let aux = wantu;
            wantu = wantv;
            wantv = aux;
          }
        } else {
          a5 = value2.clone();
        }
        let nu = Math.min(m3, n6);
        let ni = Math.min(m3 + 1, n6);
        let s4 = new Float64Array(ni);
        let U = new Matrix(m3, nu);
        let V = new Matrix(n6, n6);
        let e4 = new Float64Array(n6);
        let work = new Float64Array(m3);
        let si = new Float64Array(ni);
        for (let i5 = 0; i5 < ni; i5++) si[i5] = i5;
        let nct = Math.min(m3 - 1, n6);
        let nrt = Math.max(0, Math.min(n6 - 2, m3));
        let mrc = Math.max(nct, nrt);
        for (let k3 = 0; k3 < mrc; k3++) {
          if (k3 < nct) {
            s4[k3] = 0;
            for (let i5 = k3; i5 < m3; i5++) {
              s4[k3] = hypotenuse(s4[k3], a5.get(i5, k3));
            }
            if (s4[k3] !== 0) {
              if (a5.get(k3, k3) < 0) {
                s4[k3] = -s4[k3];
              }
              for (let i5 = k3; i5 < m3; i5++) {
                a5.set(i5, k3, a5.get(i5, k3) / s4[k3]);
              }
              a5.set(k3, k3, a5.get(k3, k3) + 1);
            }
            s4[k3] = -s4[k3];
          }
          for (let j = k3 + 1; j < n6; j++) {
            if (k3 < nct && s4[k3] !== 0) {
              let t4 = 0;
              for (let i5 = k3; i5 < m3; i5++) {
                t4 += a5.get(i5, k3) * a5.get(i5, j);
              }
              t4 = -t4 / a5.get(k3, k3);
              for (let i5 = k3; i5 < m3; i5++) {
                a5.set(i5, j, a5.get(i5, j) + t4 * a5.get(i5, k3));
              }
            }
            e4[j] = a5.get(k3, j);
          }
          if (wantu && k3 < nct) {
            for (let i5 = k3; i5 < m3; i5++) {
              U.set(i5, k3, a5.get(i5, k3));
            }
          }
          if (k3 < nrt) {
            e4[k3] = 0;
            for (let i5 = k3 + 1; i5 < n6; i5++) {
              e4[k3] = hypotenuse(e4[k3], e4[i5]);
            }
            if (e4[k3] !== 0) {
              if (e4[k3 + 1] < 0) {
                e4[k3] = 0 - e4[k3];
              }
              for (let i5 = k3 + 1; i5 < n6; i5++) {
                e4[i5] /= e4[k3];
              }
              e4[k3 + 1] += 1;
            }
            e4[k3] = -e4[k3];
            if (k3 + 1 < m3 && e4[k3] !== 0) {
              for (let i5 = k3 + 1; i5 < m3; i5++) {
                work[i5] = 0;
              }
              for (let i5 = k3 + 1; i5 < m3; i5++) {
                for (let j = k3 + 1; j < n6; j++) {
                  work[i5] += e4[j] * a5.get(i5, j);
                }
              }
              for (let j = k3 + 1; j < n6; j++) {
                let t4 = -e4[j] / e4[k3 + 1];
                for (let i5 = k3 + 1; i5 < m3; i5++) {
                  a5.set(i5, j, a5.get(i5, j) + t4 * work[i5]);
                }
              }
            }
            if (wantv) {
              for (let i5 = k3 + 1; i5 < n6; i5++) {
                V.set(i5, k3, e4[i5]);
              }
            }
          }
        }
        let p3 = Math.min(n6, m3 + 1);
        if (nct < n6) {
          s4[nct] = a5.get(nct, nct);
        }
        if (m3 < p3) {
          s4[p3 - 1] = 0;
        }
        if (nrt + 1 < p3) {
          e4[nrt] = a5.get(nrt, p3 - 1);
        }
        e4[p3 - 1] = 0;
        if (wantu) {
          for (let j = nct; j < nu; j++) {
            for (let i5 = 0; i5 < m3; i5++) {
              U.set(i5, j, 0);
            }
            U.set(j, j, 1);
          }
          for (let k3 = nct - 1; k3 >= 0; k3--) {
            if (s4[k3] !== 0) {
              for (let j = k3 + 1; j < nu; j++) {
                let t4 = 0;
                for (let i5 = k3; i5 < m3; i5++) {
                  t4 += U.get(i5, k3) * U.get(i5, j);
                }
                t4 = -t4 / U.get(k3, k3);
                for (let i5 = k3; i5 < m3; i5++) {
                  U.set(i5, j, U.get(i5, j) + t4 * U.get(i5, k3));
                }
              }
              for (let i5 = k3; i5 < m3; i5++) {
                U.set(i5, k3, -U.get(i5, k3));
              }
              U.set(k3, k3, 1 + U.get(k3, k3));
              for (let i5 = 0; i5 < k3 - 1; i5++) {
                U.set(i5, k3, 0);
              }
            } else {
              for (let i5 = 0; i5 < m3; i5++) {
                U.set(i5, k3, 0);
              }
              U.set(k3, k3, 1);
            }
          }
        }
        if (wantv) {
          for (let k3 = n6 - 1; k3 >= 0; k3--) {
            if (k3 < nrt && e4[k3] !== 0) {
              for (let j = k3 + 1; j < n6; j++) {
                let t4 = 0;
                for (let i5 = k3 + 1; i5 < n6; i5++) {
                  t4 += V.get(i5, k3) * V.get(i5, j);
                }
                t4 = -t4 / V.get(k3 + 1, k3);
                for (let i5 = k3 + 1; i5 < n6; i5++) {
                  V.set(i5, j, V.get(i5, j) + t4 * V.get(i5, k3));
                }
              }
            }
            for (let i5 = 0; i5 < n6; i5++) {
              V.set(i5, k3, 0);
            }
            V.set(k3, k3, 1);
          }
        }
        let pp = p3 - 1;
        let eps = Number.EPSILON;
        while (p3 > 0) {
          let k3, kase;
          for (k3 = p3 - 2; k3 >= -1; k3--) {
            if (k3 === -1) {
              break;
            }
            const alpha = Number.MIN_VALUE + eps * Math.abs(s4[k3] + Math.abs(s4[k3 + 1]));
            if (Math.abs(e4[k3]) <= alpha || Number.isNaN(e4[k3])) {
              e4[k3] = 0;
              break;
            }
          }
          if (k3 === p3 - 2) {
            kase = 4;
          } else {
            let ks;
            for (ks = p3 - 1; ks >= k3; ks--) {
              if (ks === k3) {
                break;
              }
              let t4 = (ks !== p3 ? Math.abs(e4[ks]) : 0) + (ks !== k3 + 1 ? Math.abs(e4[ks - 1]) : 0);
              if (Math.abs(s4[ks]) <= eps * t4) {
                s4[ks] = 0;
                break;
              }
            }
            if (ks === k3) {
              kase = 3;
            } else if (ks === p3 - 1) {
              kase = 1;
            } else {
              kase = 2;
              k3 = ks;
            }
          }
          k3++;
          switch (kase) {
            case 1: {
              let f4 = e4[p3 - 2];
              e4[p3 - 2] = 0;
              for (let j = p3 - 2; j >= k3; j--) {
                let t4 = hypotenuse(s4[j], f4);
                let cs = s4[j] / t4;
                let sn = f4 / t4;
                s4[j] = t4;
                if (j !== k3) {
                  f4 = -sn * e4[j - 1];
                  e4[j - 1] = cs * e4[j - 1];
                }
                if (wantv) {
                  for (let i5 = 0; i5 < n6; i5++) {
                    t4 = cs * V.get(i5, j) + sn * V.get(i5, p3 - 1);
                    V.set(i5, p3 - 1, -sn * V.get(i5, j) + cs * V.get(i5, p3 - 1));
                    V.set(i5, j, t4);
                  }
                }
              }
              break;
            }
            case 2: {
              let f4 = e4[k3 - 1];
              e4[k3 - 1] = 0;
              for (let j = k3; j < p3; j++) {
                let t4 = hypotenuse(s4[j], f4);
                let cs = s4[j] / t4;
                let sn = f4 / t4;
                s4[j] = t4;
                f4 = -sn * e4[j];
                e4[j] = cs * e4[j];
                if (wantu) {
                  for (let i5 = 0; i5 < m3; i5++) {
                    t4 = cs * U.get(i5, j) + sn * U.get(i5, k3 - 1);
                    U.set(i5, k3 - 1, -sn * U.get(i5, j) + cs * U.get(i5, k3 - 1));
                    U.set(i5, j, t4);
                  }
                }
              }
              break;
            }
            case 3: {
              const scale2 = Math.max(
                Math.abs(s4[p3 - 1]),
                Math.abs(s4[p3 - 2]),
                Math.abs(e4[p3 - 2]),
                Math.abs(s4[k3]),
                Math.abs(e4[k3])
              );
              const sp = s4[p3 - 1] / scale2;
              const spm1 = s4[p3 - 2] / scale2;
              const epm1 = e4[p3 - 2] / scale2;
              const sk = s4[k3] / scale2;
              const ek = e4[k3] / scale2;
              const b3 = ((spm1 + sp) * (spm1 - sp) + epm1 * epm1) / 2;
              const c6 = sp * epm1 * (sp * epm1);
              let shift = 0;
              if (b3 !== 0 || c6 !== 0) {
                if (b3 < 0) {
                  shift = 0 - Math.sqrt(b3 * b3 + c6);
                } else {
                  shift = Math.sqrt(b3 * b3 + c6);
                }
                shift = c6 / (b3 + shift);
              }
              let f4 = (sk + sp) * (sk - sp) + shift;
              let g3 = sk * ek;
              for (let j = k3; j < p3 - 1; j++) {
                let t4 = hypotenuse(f4, g3);
                if (t4 === 0) t4 = Number.MIN_VALUE;
                let cs = f4 / t4;
                let sn = g3 / t4;
                if (j !== k3) {
                  e4[j - 1] = t4;
                }
                f4 = cs * s4[j] + sn * e4[j];
                e4[j] = cs * e4[j] - sn * s4[j];
                g3 = sn * s4[j + 1];
                s4[j + 1] = cs * s4[j + 1];
                if (wantv) {
                  for (let i5 = 0; i5 < n6; i5++) {
                    t4 = cs * V.get(i5, j) + sn * V.get(i5, j + 1);
                    V.set(i5, j + 1, -sn * V.get(i5, j) + cs * V.get(i5, j + 1));
                    V.set(i5, j, t4);
                  }
                }
                t4 = hypotenuse(f4, g3);
                if (t4 === 0) t4 = Number.MIN_VALUE;
                cs = f4 / t4;
                sn = g3 / t4;
                s4[j] = t4;
                f4 = cs * e4[j] + sn * s4[j + 1];
                s4[j + 1] = -sn * e4[j] + cs * s4[j + 1];
                g3 = sn * e4[j + 1];
                e4[j + 1] = cs * e4[j + 1];
                if (wantu && j < m3 - 1) {
                  for (let i5 = 0; i5 < m3; i5++) {
                    t4 = cs * U.get(i5, j) + sn * U.get(i5, j + 1);
                    U.set(i5, j + 1, -sn * U.get(i5, j) + cs * U.get(i5, j + 1));
                    U.set(i5, j, t4);
                  }
                }
              }
              e4[p3 - 2] = f4;
              break;
            }
            case 4: {
              if (s4[k3] <= 0) {
                s4[k3] = s4[k3] < 0 ? -s4[k3] : 0;
                if (wantv) {
                  for (let i5 = 0; i5 <= pp; i5++) {
                    V.set(i5, k3, -V.get(i5, k3));
                  }
                }
              }
              while (k3 < pp) {
                if (s4[k3] >= s4[k3 + 1]) {
                  break;
                }
                let t4 = s4[k3];
                s4[k3] = s4[k3 + 1];
                s4[k3 + 1] = t4;
                if (wantv && k3 < n6 - 1) {
                  for (let i5 = 0; i5 < n6; i5++) {
                    t4 = V.get(i5, k3 + 1);
                    V.set(i5, k3 + 1, V.get(i5, k3));
                    V.set(i5, k3, t4);
                  }
                }
                if (wantu && k3 < m3 - 1) {
                  for (let i5 = 0; i5 < m3; i5++) {
                    t4 = U.get(i5, k3 + 1);
                    U.set(i5, k3 + 1, U.get(i5, k3));
                    U.set(i5, k3, t4);
                  }
                }
                k3++;
              }
              p3--;
              break;
            }
          }
        }
        if (swapped) {
          let tmp = V;
          V = U;
          U = tmp;
        }
        this.m = m3;
        this.n = n6;
        this.s = s4;
        this.U = U;
        this.V = V;
      }
      solve(value2) {
        let Y = value2;
        let e4 = this.threshold;
        let scols = this.s.length;
        let Ls = Matrix.zeros(scols, scols);
        for (let i5 = 0; i5 < scols; i5++) {
          if (Math.abs(this.s[i5]) <= e4) {
            Ls.set(i5, i5, 0);
          } else {
            Ls.set(i5, i5, 1 / this.s[i5]);
          }
        }
        let U = this.U;
        let V = this.rightSingularVectors;
        let VL = V.mmul(Ls);
        let vrows = V.rows;
        let urows = U.rows;
        let VLU = Matrix.zeros(vrows, urows);
        for (let i5 = 0; i5 < vrows; i5++) {
          for (let j = 0; j < urows; j++) {
            let sum = 0;
            for (let k3 = 0; k3 < scols; k3++) {
              sum += VL.get(i5, k3) * U.get(j, k3);
            }
            VLU.set(i5, j, sum);
          }
        }
        return VLU.mmul(Y);
      }
      solveForDiagonal(value2) {
        return this.solve(Matrix.diag(value2));
      }
      inverse() {
        let V = this.V;
        let e4 = this.threshold;
        let vrows = V.rows;
        let vcols = V.columns;
        let X = new Matrix(vrows, this.s.length);
        for (let i5 = 0; i5 < vrows; i5++) {
          for (let j = 0; j < vcols; j++) {
            if (Math.abs(this.s[j]) > e4) {
              X.set(i5, j, V.get(i5, j) / this.s[j]);
            }
          }
        }
        let U = this.U;
        let urows = U.rows;
        let ucols = U.columns;
        let Y = new Matrix(vrows, urows);
        for (let i5 = 0; i5 < vrows; i5++) {
          for (let j = 0; j < urows; j++) {
            let sum = 0;
            for (let k3 = 0; k3 < ucols; k3++) {
              sum += X.get(i5, k3) * U.get(j, k3);
            }
            Y.set(i5, j, sum);
          }
        }
        return Y;
      }
      get condition() {
        return this.s[0] / this.s[Math.min(this.m, this.n) - 1];
      }
      get norm2() {
        return this.s[0];
      }
      get rank() {
        let tol = Math.max(this.m, this.n) * this.s[0] * Number.EPSILON;
        let r4 = 0;
        let s4 = this.s;
        for (let i5 = 0, ii = s4.length; i5 < ii; i5++) {
          if (s4[i5] > tol) {
            r4++;
          }
        }
        return r4;
      }
      get diagonal() {
        return Array.from(this.s);
      }
      get threshold() {
        return Number.EPSILON / 2 * Math.max(this.m, this.n) * this.s[0];
      }
      get leftSingularVectors() {
        return this.U;
      }
      get rightSingularVectors() {
        return this.V;
      }
      get diagonalMatrix() {
        return Matrix.diag(this.s);
      }
    };
    function inverse(matrix, useSVD = false) {
      matrix = WrapperMatrix2D.checkMatrix(matrix);
      if (useSVD) {
        return new SingularValueDecomposition(matrix).inverse();
      } else {
        return solve(matrix, Matrix.eye(matrix.rows));
      }
    }
    function solve(leftHandSide, rightHandSide, useSVD = false) {
      leftHandSide = WrapperMatrix2D.checkMatrix(leftHandSide);
      rightHandSide = WrapperMatrix2D.checkMatrix(rightHandSide);
      if (useSVD) {
        return new SingularValueDecomposition(leftHandSide).solve(rightHandSide);
      } else {
        return leftHandSide.isSquare() ? new LuDecomposition(leftHandSide).solve(rightHandSide) : new QrDecomposition(leftHandSide).solve(rightHandSide);
      }
    }
    function determinant(matrix) {
      matrix = Matrix.checkMatrix(matrix);
      if (matrix.isSquare()) {
        if (matrix.columns === 0) {
          return 1;
        }
        let a5, b3, c6, d3;
        if (matrix.columns === 2) {
          a5 = matrix.get(0, 0);
          b3 = matrix.get(0, 1);
          c6 = matrix.get(1, 0);
          d3 = matrix.get(1, 1);
          return a5 * d3 - b3 * c6;
        } else if (matrix.columns === 3) {
          let subMatrix0, subMatrix1, subMatrix2;
          subMatrix0 = new MatrixSelectionView(matrix, [1, 2], [1, 2]);
          subMatrix1 = new MatrixSelectionView(matrix, [1, 2], [0, 2]);
          subMatrix2 = new MatrixSelectionView(matrix, [1, 2], [0, 1]);
          a5 = matrix.get(0, 0);
          b3 = matrix.get(0, 1);
          c6 = matrix.get(0, 2);
          return a5 * determinant(subMatrix0) - b3 * determinant(subMatrix1) + c6 * determinant(subMatrix2);
        } else {
          return new LuDecomposition(matrix).determinant;
        }
      } else {
        throw Error("determinant can only be calculated for a square matrix");
      }
    }
    function xrange(n6, exception) {
      let range2 = [];
      for (let i5 = 0; i5 < n6; i5++) {
        if (i5 !== exception) {
          range2.push(i5);
        }
      }
      return range2;
    }
    function dependenciesOneRow(error, matrix, index2, thresholdValue = 1e-9, thresholdError = 1e-9) {
      if (error > thresholdError) {
        return new Array(matrix.rows + 1).fill(0);
      } else {
        let returnArray = matrix.addRow(index2, [0]);
        for (let i5 = 0; i5 < returnArray.rows; i5++) {
          if (Math.abs(returnArray.get(i5, 0)) < thresholdValue) {
            returnArray.set(i5, 0, 0);
          }
        }
        return returnArray.to1DArray();
      }
    }
    function linearDependencies(matrix, options = {}) {
      const { thresholdValue = 1e-9, thresholdError = 1e-9 } = options;
      matrix = Matrix.checkMatrix(matrix);
      let n6 = matrix.rows;
      let results = new Matrix(n6, n6);
      for (let i5 = 0; i5 < n6; i5++) {
        let b3 = Matrix.columnVector(matrix.getRow(i5));
        let Abis = matrix.subMatrixRow(xrange(n6, i5)).transpose();
        let svd = new SingularValueDecomposition(Abis);
        let x = svd.solve(b3);
        let error = Matrix.sub(b3, Abis.mmul(x)).abs().max();
        results.setRow(
          i5,
          dependenciesOneRow(error, x, i5, thresholdValue, thresholdError)
        );
      }
      return results;
    }
    function pseudoInverse(matrix, threshold = Number.EPSILON) {
      matrix = Matrix.checkMatrix(matrix);
      if (matrix.isEmpty()) {
        return matrix.transpose();
      }
      let svdSolution = new SingularValueDecomposition(matrix, { autoTranspose: true });
      let U = svdSolution.leftSingularVectors;
      let V = svdSolution.rightSingularVectors;
      let s4 = svdSolution.diagonal;
      for (let i5 = 0; i5 < s4.length; i5++) {
        if (Math.abs(s4[i5]) > threshold) {
          s4[i5] = 1 / s4[i5];
        } else {
          s4[i5] = 0;
        }
      }
      return V.mmul(Matrix.diag(s4).mmul(U.transpose()));
    }
    function covariance(xMatrix, yMatrix = xMatrix, options = {}) {
      xMatrix = new Matrix(xMatrix);
      let yIsSame = false;
      if (typeof yMatrix === "object" && !Matrix.isMatrix(yMatrix) && !isAnyArray.isAnyArray(yMatrix)) {
        options = yMatrix;
        yMatrix = xMatrix;
        yIsSame = true;
      } else {
        yMatrix = new Matrix(yMatrix);
      }
      if (xMatrix.rows !== yMatrix.rows) {
        throw new TypeError("Both matrices must have the same number of rows");
      }
      const { center = true } = options;
      if (center) {
        xMatrix = xMatrix.center("column");
        if (!yIsSame) {
          yMatrix = yMatrix.center("column");
        }
      }
      const cov = xMatrix.transpose().mmul(yMatrix);
      for (let i5 = 0; i5 < cov.rows; i5++) {
        for (let j = 0; j < cov.columns; j++) {
          cov.set(i5, j, cov.get(i5, j) * (1 / (xMatrix.rows - 1)));
        }
      }
      return cov;
    }
    function correlation(xMatrix, yMatrix = xMatrix, options = {}) {
      xMatrix = new Matrix(xMatrix);
      let yIsSame = false;
      if (typeof yMatrix === "object" && !Matrix.isMatrix(yMatrix) && !isAnyArray.isAnyArray(yMatrix)) {
        options = yMatrix;
        yMatrix = xMatrix;
        yIsSame = true;
      } else {
        yMatrix = new Matrix(yMatrix);
      }
      if (xMatrix.rows !== yMatrix.rows) {
        throw new TypeError("Both matrices must have the same number of rows");
      }
      const { center = true, scale: scale2 = true } = options;
      if (center) {
        xMatrix.center("column");
        if (!yIsSame) {
          yMatrix.center("column");
        }
      }
      if (scale2) {
        xMatrix.scale("column");
        if (!yIsSame) {
          yMatrix.scale("column");
        }
      }
      const sdx = xMatrix.standardDeviation("column", { unbiased: true });
      const sdy = yIsSame ? sdx : yMatrix.standardDeviation("column", { unbiased: true });
      const corr = xMatrix.transpose().mmul(yMatrix);
      for (let i5 = 0; i5 < corr.rows; i5++) {
        for (let j = 0; j < corr.columns; j++) {
          corr.set(
            i5,
            j,
            corr.get(i5, j) * (1 / (sdx[i5] * sdy[j])) * (1 / (xMatrix.rows - 1))
          );
        }
      }
      return corr;
    }
    var EigenvalueDecomposition = class {
      constructor(matrix, options = {}) {
        const { assumeSymmetric = false } = options;
        matrix = WrapperMatrix2D.checkMatrix(matrix);
        if (!matrix.isSquare()) {
          throw new Error("Matrix is not a square matrix");
        }
        if (matrix.isEmpty()) {
          throw new Error("Matrix must be non-empty");
        }
        let n6 = matrix.columns;
        let V = new Matrix(n6, n6);
        let d3 = new Float64Array(n6);
        let e4 = new Float64Array(n6);
        let value2 = matrix;
        let i5, j;
        let isSymmetric = false;
        if (assumeSymmetric) {
          isSymmetric = true;
        } else {
          isSymmetric = matrix.isSymmetric();
        }
        if (isSymmetric) {
          for (i5 = 0; i5 < n6; i5++) {
            for (j = 0; j < n6; j++) {
              V.set(i5, j, value2.get(i5, j));
            }
          }
          tred2(n6, e4, d3, V);
          tql2(n6, e4, d3, V);
        } else {
          let H = new Matrix(n6, n6);
          let ort = new Float64Array(n6);
          for (j = 0; j < n6; j++) {
            for (i5 = 0; i5 < n6; i5++) {
              H.set(i5, j, value2.get(i5, j));
            }
          }
          orthes(n6, H, ort, V);
          hqr2(n6, e4, d3, V, H);
        }
        this.n = n6;
        this.e = e4;
        this.d = d3;
        this.V = V;
      }
      get realEigenvalues() {
        return Array.from(this.d);
      }
      get imaginaryEigenvalues() {
        return Array.from(this.e);
      }
      get eigenvectorMatrix() {
        return this.V;
      }
      get diagonalMatrix() {
        let n6 = this.n;
        let e4 = this.e;
        let d3 = this.d;
        let X = new Matrix(n6, n6);
        let i5, j;
        for (i5 = 0; i5 < n6; i5++) {
          for (j = 0; j < n6; j++) {
            X.set(i5, j, 0);
          }
          X.set(i5, i5, d3[i5]);
          if (e4[i5] > 0) {
            X.set(i5, i5 + 1, e4[i5]);
          } else if (e4[i5] < 0) {
            X.set(i5, i5 - 1, e4[i5]);
          }
        }
        return X;
      }
    };
    function tred2(n6, e4, d3, V) {
      let f4, g3, h4, i5, j, k3, hh, scale2;
      for (j = 0; j < n6; j++) {
        d3[j] = V.get(n6 - 1, j);
      }
      for (i5 = n6 - 1; i5 > 0; i5--) {
        scale2 = 0;
        h4 = 0;
        for (k3 = 0; k3 < i5; k3++) {
          scale2 = scale2 + Math.abs(d3[k3]);
        }
        if (scale2 === 0) {
          e4[i5] = d3[i5 - 1];
          for (j = 0; j < i5; j++) {
            d3[j] = V.get(i5 - 1, j);
            V.set(i5, j, 0);
            V.set(j, i5, 0);
          }
        } else {
          for (k3 = 0; k3 < i5; k3++) {
            d3[k3] /= scale2;
            h4 += d3[k3] * d3[k3];
          }
          f4 = d3[i5 - 1];
          g3 = Math.sqrt(h4);
          if (f4 > 0) {
            g3 = -g3;
          }
          e4[i5] = scale2 * g3;
          h4 = h4 - f4 * g3;
          d3[i5 - 1] = f4 - g3;
          for (j = 0; j < i5; j++) {
            e4[j] = 0;
          }
          for (j = 0; j < i5; j++) {
            f4 = d3[j];
            V.set(j, i5, f4);
            g3 = e4[j] + V.get(j, j) * f4;
            for (k3 = j + 1; k3 <= i5 - 1; k3++) {
              g3 += V.get(k3, j) * d3[k3];
              e4[k3] += V.get(k3, j) * f4;
            }
            e4[j] = g3;
          }
          f4 = 0;
          for (j = 0; j < i5; j++) {
            e4[j] /= h4;
            f4 += e4[j] * d3[j];
          }
          hh = f4 / (h4 + h4);
          for (j = 0; j < i5; j++) {
            e4[j] -= hh * d3[j];
          }
          for (j = 0; j < i5; j++) {
            f4 = d3[j];
            g3 = e4[j];
            for (k3 = j; k3 <= i5 - 1; k3++) {
              V.set(k3, j, V.get(k3, j) - (f4 * e4[k3] + g3 * d3[k3]));
            }
            d3[j] = V.get(i5 - 1, j);
            V.set(i5, j, 0);
          }
        }
        d3[i5] = h4;
      }
      for (i5 = 0; i5 < n6 - 1; i5++) {
        V.set(n6 - 1, i5, V.get(i5, i5));
        V.set(i5, i5, 1);
        h4 = d3[i5 + 1];
        if (h4 !== 0) {
          for (k3 = 0; k3 <= i5; k3++) {
            d3[k3] = V.get(k3, i5 + 1) / h4;
          }
          for (j = 0; j <= i5; j++) {
            g3 = 0;
            for (k3 = 0; k3 <= i5; k3++) {
              g3 += V.get(k3, i5 + 1) * V.get(k3, j);
            }
            for (k3 = 0; k3 <= i5; k3++) {
              V.set(k3, j, V.get(k3, j) - g3 * d3[k3]);
            }
          }
        }
        for (k3 = 0; k3 <= i5; k3++) {
          V.set(k3, i5 + 1, 0);
        }
      }
      for (j = 0; j < n6; j++) {
        d3[j] = V.get(n6 - 1, j);
        V.set(n6 - 1, j, 0);
      }
      V.set(n6 - 1, n6 - 1, 1);
      e4[0] = 0;
    }
    function tql2(n6, e4, d3, V) {
      let g3, h4, i5, j, k3, l4, m3, p3, r4, dl1, c6, c22, c32, el1, s4, s22;
      for (i5 = 1; i5 < n6; i5++) {
        e4[i5 - 1] = e4[i5];
      }
      e4[n6 - 1] = 0;
      let f4 = 0;
      let tst1 = 0;
      let eps = Number.EPSILON;
      for (l4 = 0; l4 < n6; l4++) {
        tst1 = Math.max(tst1, Math.abs(d3[l4]) + Math.abs(e4[l4]));
        m3 = l4;
        while (m3 < n6) {
          if (Math.abs(e4[m3]) <= eps * tst1) {
            break;
          }
          m3++;
        }
        if (m3 > l4) {
          do {
            g3 = d3[l4];
            p3 = (d3[l4 + 1] - g3) / (2 * e4[l4]);
            r4 = hypotenuse(p3, 1);
            if (p3 < 0) {
              r4 = -r4;
            }
            d3[l4] = e4[l4] / (p3 + r4);
            d3[l4 + 1] = e4[l4] * (p3 + r4);
            dl1 = d3[l4 + 1];
            h4 = g3 - d3[l4];
            for (i5 = l4 + 2; i5 < n6; i5++) {
              d3[i5] -= h4;
            }
            f4 = f4 + h4;
            p3 = d3[m3];
            c6 = 1;
            c22 = c6;
            c32 = c6;
            el1 = e4[l4 + 1];
            s4 = 0;
            s22 = 0;
            for (i5 = m3 - 1; i5 >= l4; i5--) {
              c32 = c22;
              c22 = c6;
              s22 = s4;
              g3 = c6 * e4[i5];
              h4 = c6 * p3;
              r4 = hypotenuse(p3, e4[i5]);
              e4[i5 + 1] = s4 * r4;
              s4 = e4[i5] / r4;
              c6 = p3 / r4;
              p3 = c6 * d3[i5] - s4 * g3;
              d3[i5 + 1] = h4 + s4 * (c6 * g3 + s4 * d3[i5]);
              for (k3 = 0; k3 < n6; k3++) {
                h4 = V.get(k3, i5 + 1);
                V.set(k3, i5 + 1, s4 * V.get(k3, i5) + c6 * h4);
                V.set(k3, i5, c6 * V.get(k3, i5) - s4 * h4);
              }
            }
            p3 = -s4 * s22 * c32 * el1 * e4[l4] / dl1;
            e4[l4] = s4 * p3;
            d3[l4] = c6 * p3;
          } while (Math.abs(e4[l4]) > eps * tst1);
        }
        d3[l4] = d3[l4] + f4;
        e4[l4] = 0;
      }
      for (i5 = 0; i5 < n6 - 1; i5++) {
        k3 = i5;
        p3 = d3[i5];
        for (j = i5 + 1; j < n6; j++) {
          if (d3[j] < p3) {
            k3 = j;
            p3 = d3[j];
          }
        }
        if (k3 !== i5) {
          d3[k3] = d3[i5];
          d3[i5] = p3;
          for (j = 0; j < n6; j++) {
            p3 = V.get(j, i5);
            V.set(j, i5, V.get(j, k3));
            V.set(j, k3, p3);
          }
        }
      }
    }
    function orthes(n6, H, ort, V) {
      let low = 0;
      let high = n6 - 1;
      let f4, g3, h4, i5, j, m3;
      let scale2;
      for (m3 = low + 1; m3 <= high - 1; m3++) {
        scale2 = 0;
        for (i5 = m3; i5 <= high; i5++) {
          scale2 = scale2 + Math.abs(H.get(i5, m3 - 1));
        }
        if (scale2 !== 0) {
          h4 = 0;
          for (i5 = high; i5 >= m3; i5--) {
            ort[i5] = H.get(i5, m3 - 1) / scale2;
            h4 += ort[i5] * ort[i5];
          }
          g3 = Math.sqrt(h4);
          if (ort[m3] > 0) {
            g3 = -g3;
          }
          h4 = h4 - ort[m3] * g3;
          ort[m3] = ort[m3] - g3;
          for (j = m3; j < n6; j++) {
            f4 = 0;
            for (i5 = high; i5 >= m3; i5--) {
              f4 += ort[i5] * H.get(i5, j);
            }
            f4 = f4 / h4;
            for (i5 = m3; i5 <= high; i5++) {
              H.set(i5, j, H.get(i5, j) - f4 * ort[i5]);
            }
          }
          for (i5 = 0; i5 <= high; i5++) {
            f4 = 0;
            for (j = high; j >= m3; j--) {
              f4 += ort[j] * H.get(i5, j);
            }
            f4 = f4 / h4;
            for (j = m3; j <= high; j++) {
              H.set(i5, j, H.get(i5, j) - f4 * ort[j]);
            }
          }
          ort[m3] = scale2 * ort[m3];
          H.set(m3, m3 - 1, scale2 * g3);
        }
      }
      for (i5 = 0; i5 < n6; i5++) {
        for (j = 0; j < n6; j++) {
          V.set(i5, j, i5 === j ? 1 : 0);
        }
      }
      for (m3 = high - 1; m3 >= low + 1; m3--) {
        if (H.get(m3, m3 - 1) !== 0) {
          for (i5 = m3 + 1; i5 <= high; i5++) {
            ort[i5] = H.get(i5, m3 - 1);
          }
          for (j = m3; j <= high; j++) {
            g3 = 0;
            for (i5 = m3; i5 <= high; i5++) {
              g3 += ort[i5] * V.get(i5, j);
            }
            g3 = g3 / ort[m3] / H.get(m3, m3 - 1);
            for (i5 = m3; i5 <= high; i5++) {
              V.set(i5, j, V.get(i5, j) + g3 * ort[i5]);
            }
          }
        }
      }
    }
    function hqr2(nn, e4, d3, V, H) {
      let n6 = nn - 1;
      let low = 0;
      let high = nn - 1;
      let eps = Number.EPSILON;
      let exshift = 0;
      let norm = 0;
      let p3 = 0;
      let q = 0;
      let r4 = 0;
      let s4 = 0;
      let z = 0;
      let iter = 0;
      let i5, j, k3, l4, m3, t4, w, x, y3;
      let ra, sa, vr, vi;
      let notlast, cdivres;
      for (i5 = 0; i5 < nn; i5++) {
        if (i5 < low || i5 > high) {
          d3[i5] = H.get(i5, i5);
          e4[i5] = 0;
        }
        for (j = Math.max(i5 - 1, 0); j < nn; j++) {
          norm = norm + Math.abs(H.get(i5, j));
        }
      }
      while (n6 >= low) {
        l4 = n6;
        while (l4 > low) {
          s4 = Math.abs(H.get(l4 - 1, l4 - 1)) + Math.abs(H.get(l4, l4));
          if (s4 === 0) {
            s4 = norm;
          }
          if (Math.abs(H.get(l4, l4 - 1)) < eps * s4) {
            break;
          }
          l4--;
        }
        if (l4 === n6) {
          H.set(n6, n6, H.get(n6, n6) + exshift);
          d3[n6] = H.get(n6, n6);
          e4[n6] = 0;
          n6--;
          iter = 0;
        } else if (l4 === n6 - 1) {
          w = H.get(n6, n6 - 1) * H.get(n6 - 1, n6);
          p3 = (H.get(n6 - 1, n6 - 1) - H.get(n6, n6)) / 2;
          q = p3 * p3 + w;
          z = Math.sqrt(Math.abs(q));
          H.set(n6, n6, H.get(n6, n6) + exshift);
          H.set(n6 - 1, n6 - 1, H.get(n6 - 1, n6 - 1) + exshift);
          x = H.get(n6, n6);
          if (q >= 0) {
            z = p3 >= 0 ? p3 + z : p3 - z;
            d3[n6 - 1] = x + z;
            d3[n6] = d3[n6 - 1];
            if (z !== 0) {
              d3[n6] = x - w / z;
            }
            e4[n6 - 1] = 0;
            e4[n6] = 0;
            x = H.get(n6, n6 - 1);
            s4 = Math.abs(x) + Math.abs(z);
            p3 = x / s4;
            q = z / s4;
            r4 = Math.sqrt(p3 * p3 + q * q);
            p3 = p3 / r4;
            q = q / r4;
            for (j = n6 - 1; j < nn; j++) {
              z = H.get(n6 - 1, j);
              H.set(n6 - 1, j, q * z + p3 * H.get(n6, j));
              H.set(n6, j, q * H.get(n6, j) - p3 * z);
            }
            for (i5 = 0; i5 <= n6; i5++) {
              z = H.get(i5, n6 - 1);
              H.set(i5, n6 - 1, q * z + p3 * H.get(i5, n6));
              H.set(i5, n6, q * H.get(i5, n6) - p3 * z);
            }
            for (i5 = low; i5 <= high; i5++) {
              z = V.get(i5, n6 - 1);
              V.set(i5, n6 - 1, q * z + p3 * V.get(i5, n6));
              V.set(i5, n6, q * V.get(i5, n6) - p3 * z);
            }
          } else {
            d3[n6 - 1] = x + p3;
            d3[n6] = x + p3;
            e4[n6 - 1] = z;
            e4[n6] = -z;
          }
          n6 = n6 - 2;
          iter = 0;
        } else {
          x = H.get(n6, n6);
          y3 = 0;
          w = 0;
          if (l4 < n6) {
            y3 = H.get(n6 - 1, n6 - 1);
            w = H.get(n6, n6 - 1) * H.get(n6 - 1, n6);
          }
          if (iter === 10) {
            exshift += x;
            for (i5 = low; i5 <= n6; i5++) {
              H.set(i5, i5, H.get(i5, i5) - x);
            }
            s4 = Math.abs(H.get(n6, n6 - 1)) + Math.abs(H.get(n6 - 1, n6 - 2));
            x = y3 = 0.75 * s4;
            w = -0.4375 * s4 * s4;
          }
          if (iter === 30) {
            s4 = (y3 - x) / 2;
            s4 = s4 * s4 + w;
            if (s4 > 0) {
              s4 = Math.sqrt(s4);
              if (y3 < x) {
                s4 = -s4;
              }
              s4 = x - w / ((y3 - x) / 2 + s4);
              for (i5 = low; i5 <= n6; i5++) {
                H.set(i5, i5, H.get(i5, i5) - s4);
              }
              exshift += s4;
              x = y3 = w = 0.964;
            }
          }
          iter = iter + 1;
          m3 = n6 - 2;
          while (m3 >= l4) {
            z = H.get(m3, m3);
            r4 = x - z;
            s4 = y3 - z;
            p3 = (r4 * s4 - w) / H.get(m3 + 1, m3) + H.get(m3, m3 + 1);
            q = H.get(m3 + 1, m3 + 1) - z - r4 - s4;
            r4 = H.get(m3 + 2, m3 + 1);
            s4 = Math.abs(p3) + Math.abs(q) + Math.abs(r4);
            p3 = p3 / s4;
            q = q / s4;
            r4 = r4 / s4;
            if (m3 === l4) {
              break;
            }
            if (Math.abs(H.get(m3, m3 - 1)) * (Math.abs(q) + Math.abs(r4)) < eps * (Math.abs(p3) * (Math.abs(H.get(m3 - 1, m3 - 1)) + Math.abs(z) + Math.abs(H.get(m3 + 1, m3 + 1))))) {
              break;
            }
            m3--;
          }
          for (i5 = m3 + 2; i5 <= n6; i5++) {
            H.set(i5, i5 - 2, 0);
            if (i5 > m3 + 2) {
              H.set(i5, i5 - 3, 0);
            }
          }
          for (k3 = m3; k3 <= n6 - 1; k3++) {
            notlast = k3 !== n6 - 1;
            if (k3 !== m3) {
              p3 = H.get(k3, k3 - 1);
              q = H.get(k3 + 1, k3 - 1);
              r4 = notlast ? H.get(k3 + 2, k3 - 1) : 0;
              x = Math.abs(p3) + Math.abs(q) + Math.abs(r4);
              if (x !== 0) {
                p3 = p3 / x;
                q = q / x;
                r4 = r4 / x;
              }
            }
            if (x === 0) {
              break;
            }
            s4 = Math.sqrt(p3 * p3 + q * q + r4 * r4);
            if (p3 < 0) {
              s4 = -s4;
            }
            if (s4 !== 0) {
              if (k3 !== m3) {
                H.set(k3, k3 - 1, -s4 * x);
              } else if (l4 !== m3) {
                H.set(k3, k3 - 1, -H.get(k3, k3 - 1));
              }
              p3 = p3 + s4;
              x = p3 / s4;
              y3 = q / s4;
              z = r4 / s4;
              q = q / p3;
              r4 = r4 / p3;
              for (j = k3; j < nn; j++) {
                p3 = H.get(k3, j) + q * H.get(k3 + 1, j);
                if (notlast) {
                  p3 = p3 + r4 * H.get(k3 + 2, j);
                  H.set(k3 + 2, j, H.get(k3 + 2, j) - p3 * z);
                }
                H.set(k3, j, H.get(k3, j) - p3 * x);
                H.set(k3 + 1, j, H.get(k3 + 1, j) - p3 * y3);
              }
              for (i5 = 0; i5 <= Math.min(n6, k3 + 3); i5++) {
                p3 = x * H.get(i5, k3) + y3 * H.get(i5, k3 + 1);
                if (notlast) {
                  p3 = p3 + z * H.get(i5, k3 + 2);
                  H.set(i5, k3 + 2, H.get(i5, k3 + 2) - p3 * r4);
                }
                H.set(i5, k3, H.get(i5, k3) - p3);
                H.set(i5, k3 + 1, H.get(i5, k3 + 1) - p3 * q);
              }
              for (i5 = low; i5 <= high; i5++) {
                p3 = x * V.get(i5, k3) + y3 * V.get(i5, k3 + 1);
                if (notlast) {
                  p3 = p3 + z * V.get(i5, k3 + 2);
                  V.set(i5, k3 + 2, V.get(i5, k3 + 2) - p3 * r4);
                }
                V.set(i5, k3, V.get(i5, k3) - p3);
                V.set(i5, k3 + 1, V.get(i5, k3 + 1) - p3 * q);
              }
            }
          }
        }
      }
      if (norm === 0) {
        return;
      }
      for (n6 = nn - 1; n6 >= 0; n6--) {
        p3 = d3[n6];
        q = e4[n6];
        if (q === 0) {
          l4 = n6;
          H.set(n6, n6, 1);
          for (i5 = n6 - 1; i5 >= 0; i5--) {
            w = H.get(i5, i5) - p3;
            r4 = 0;
            for (j = l4; j <= n6; j++) {
              r4 = r4 + H.get(i5, j) * H.get(j, n6);
            }
            if (e4[i5] < 0) {
              z = w;
              s4 = r4;
            } else {
              l4 = i5;
              if (e4[i5] === 0) {
                H.set(i5, n6, w !== 0 ? -r4 / w : -r4 / (eps * norm));
              } else {
                x = H.get(i5, i5 + 1);
                y3 = H.get(i5 + 1, i5);
                q = (d3[i5] - p3) * (d3[i5] - p3) + e4[i5] * e4[i5];
                t4 = (x * s4 - z * r4) / q;
                H.set(i5, n6, t4);
                H.set(
                  i5 + 1,
                  n6,
                  Math.abs(x) > Math.abs(z) ? (-r4 - w * t4) / x : (-s4 - y3 * t4) / z
                );
              }
              t4 = Math.abs(H.get(i5, n6));
              if (eps * t4 * t4 > 1) {
                for (j = i5; j <= n6; j++) {
                  H.set(j, n6, H.get(j, n6) / t4);
                }
              }
            }
          }
        } else if (q < 0) {
          l4 = n6 - 1;
          if (Math.abs(H.get(n6, n6 - 1)) > Math.abs(H.get(n6 - 1, n6))) {
            H.set(n6 - 1, n6 - 1, q / H.get(n6, n6 - 1));
            H.set(n6 - 1, n6, -(H.get(n6, n6) - p3) / H.get(n6, n6 - 1));
          } else {
            cdivres = cdiv(0, -H.get(n6 - 1, n6), H.get(n6 - 1, n6 - 1) - p3, q);
            H.set(n6 - 1, n6 - 1, cdivres[0]);
            H.set(n6 - 1, n6, cdivres[1]);
          }
          H.set(n6, n6 - 1, 0);
          H.set(n6, n6, 1);
          for (i5 = n6 - 2; i5 >= 0; i5--) {
            ra = 0;
            sa = 0;
            for (j = l4; j <= n6; j++) {
              ra = ra + H.get(i5, j) * H.get(j, n6 - 1);
              sa = sa + H.get(i5, j) * H.get(j, n6);
            }
            w = H.get(i5, i5) - p3;
            if (e4[i5] < 0) {
              z = w;
              r4 = ra;
              s4 = sa;
            } else {
              l4 = i5;
              if (e4[i5] === 0) {
                cdivres = cdiv(-ra, -sa, w, q);
                H.set(i5, n6 - 1, cdivres[0]);
                H.set(i5, n6, cdivres[1]);
              } else {
                x = H.get(i5, i5 + 1);
                y3 = H.get(i5 + 1, i5);
                vr = (d3[i5] - p3) * (d3[i5] - p3) + e4[i5] * e4[i5] - q * q;
                vi = (d3[i5] - p3) * 2 * q;
                if (vr === 0 && vi === 0) {
                  vr = eps * norm * (Math.abs(w) + Math.abs(q) + Math.abs(x) + Math.abs(y3) + Math.abs(z));
                }
                cdivres = cdiv(
                  x * r4 - z * ra + q * sa,
                  x * s4 - z * sa - q * ra,
                  vr,
                  vi
                );
                H.set(i5, n6 - 1, cdivres[0]);
                H.set(i5, n6, cdivres[1]);
                if (Math.abs(x) > Math.abs(z) + Math.abs(q)) {
                  H.set(
                    i5 + 1,
                    n6 - 1,
                    (-ra - w * H.get(i5, n6 - 1) + q * H.get(i5, n6)) / x
                  );
                  H.set(
                    i5 + 1,
                    n6,
                    (-sa - w * H.get(i5, n6) - q * H.get(i5, n6 - 1)) / x
                  );
                } else {
                  cdivres = cdiv(
                    -r4 - y3 * H.get(i5, n6 - 1),
                    -s4 - y3 * H.get(i5, n6),
                    z,
                    q
                  );
                  H.set(i5 + 1, n6 - 1, cdivres[0]);
                  H.set(i5 + 1, n6, cdivres[1]);
                }
              }
              t4 = Math.max(Math.abs(H.get(i5, n6 - 1)), Math.abs(H.get(i5, n6)));
              if (eps * t4 * t4 > 1) {
                for (j = i5; j <= n6; j++) {
                  H.set(j, n6 - 1, H.get(j, n6 - 1) / t4);
                  H.set(j, n6, H.get(j, n6) / t4);
                }
              }
            }
          }
        }
      }
      for (i5 = 0; i5 < nn; i5++) {
        if (i5 < low || i5 > high) {
          for (j = i5; j < nn; j++) {
            V.set(i5, j, H.get(i5, j));
          }
        }
      }
      for (j = nn - 1; j >= low; j--) {
        for (i5 = low; i5 <= high; i5++) {
          z = 0;
          for (k3 = low; k3 <= Math.min(j, high); k3++) {
            z = z + V.get(i5, k3) * H.get(k3, j);
          }
          V.set(i5, j, z);
        }
      }
    }
    function cdiv(xr, xi, yr, yi) {
      let r4, d3;
      if (Math.abs(yr) > Math.abs(yi)) {
        r4 = yi / yr;
        d3 = yr + r4 * yi;
        return [(xr + r4 * xi) / d3, (xi - r4 * xr) / d3];
      } else {
        r4 = yr / yi;
        d3 = yi + r4 * yr;
        return [(r4 * xr + xi) / d3, (r4 * xi - xr) / d3];
      }
    }
    var CholeskyDecomposition = class {
      constructor(value2) {
        value2 = WrapperMatrix2D.checkMatrix(value2);
        if (!value2.isSymmetric()) {
          throw new Error("Matrix is not symmetric");
        }
        let a5 = value2;
        let dimension = a5.rows;
        let l4 = new Matrix(dimension, dimension);
        let positiveDefinite = true;
        let i5, j, k3;
        for (j = 0; j < dimension; j++) {
          let d3 = 0;
          for (k3 = 0; k3 < j; k3++) {
            let s4 = 0;
            for (i5 = 0; i5 < k3; i5++) {
              s4 += l4.get(k3, i5) * l4.get(j, i5);
            }
            s4 = (a5.get(j, k3) - s4) / l4.get(k3, k3);
            l4.set(j, k3, s4);
            d3 = d3 + s4 * s4;
          }
          d3 = a5.get(j, j) - d3;
          positiveDefinite &&= d3 > 0;
          l4.set(j, j, Math.sqrt(Math.max(d3, 0)));
          for (k3 = j + 1; k3 < dimension; k3++) {
            l4.set(j, k3, 0);
          }
        }
        this.L = l4;
        this.positiveDefinite = positiveDefinite;
      }
      isPositiveDefinite() {
        return this.positiveDefinite;
      }
      solve(value2) {
        value2 = WrapperMatrix2D.checkMatrix(value2);
        let l4 = this.L;
        let dimension = l4.rows;
        if (value2.rows !== dimension) {
          throw new Error("Matrix dimensions do not match");
        }
        if (this.isPositiveDefinite() === false) {
          throw new Error("Matrix is not positive definite");
        }
        let count = value2.columns;
        let B = value2.clone();
        let i5, j, k3;
        for (k3 = 0; k3 < dimension; k3++) {
          for (j = 0; j < count; j++) {
            for (i5 = 0; i5 < k3; i5++) {
              B.set(k3, j, B.get(k3, j) - B.get(i5, j) * l4.get(k3, i5));
            }
            B.set(k3, j, B.get(k3, j) / l4.get(k3, k3));
          }
        }
        for (k3 = dimension - 1; k3 >= 0; k3--) {
          for (j = 0; j < count; j++) {
            for (i5 = k3 + 1; i5 < dimension; i5++) {
              B.set(k3, j, B.get(k3, j) - B.get(i5, j) * l4.get(i5, k3));
            }
            B.set(k3, j, B.get(k3, j) / l4.get(k3, k3));
          }
        }
        return B;
      }
      get lowerTriangularMatrix() {
        return this.L;
      }
    };
    var nipals = class {
      constructor(X, options = {}) {
        X = WrapperMatrix2D.checkMatrix(X);
        let { Y } = options;
        const {
          scaleScores = false,
          maxIterations = 1e3,
          terminationCriteria = 1e-10
        } = options;
        let u5;
        if (Y) {
          if (isAnyArray.isAnyArray(Y) && typeof Y[0] === "number") {
            Y = Matrix.columnVector(Y);
          } else {
            Y = WrapperMatrix2D.checkMatrix(Y);
          }
          if (Y.rows !== X.rows) {
            throw new Error("Y should have the same number of rows as X");
          }
          u5 = Y.getColumnVector(0);
        } else {
          u5 = X.getColumnVector(0);
        }
        let diff = 1;
        let t4, q, w, tOld;
        for (let counter = 0; counter < maxIterations && diff > terminationCriteria; counter++) {
          w = X.transpose().mmul(u5).div(u5.transpose().mmul(u5).get(0, 0));
          w = w.div(w.norm());
          t4 = X.mmul(w).div(w.transpose().mmul(w).get(0, 0));
          if (counter > 0) {
            diff = t4.clone().sub(tOld).pow(2).sum();
          }
          tOld = t4.clone();
          if (Y) {
            q = Y.transpose().mmul(t4).div(t4.transpose().mmul(t4).get(0, 0));
            q = q.div(q.norm());
            u5 = Y.mmul(q).div(q.transpose().mmul(q).get(0, 0));
          } else {
            u5 = t4;
          }
        }
        if (Y) {
          let p3 = X.transpose().mmul(t4).div(t4.transpose().mmul(t4).get(0, 0));
          p3 = p3.div(p3.norm());
          let xResidual = X.clone().sub(t4.clone().mmul(p3.transpose()));
          let residual = u5.transpose().mmul(t4).div(t4.transpose().mmul(t4).get(0, 0));
          let yResidual = Y.clone().sub(
            t4.clone().mulS(residual.get(0, 0)).mmul(q.transpose())
          );
          this.t = t4;
          this.p = p3.transpose();
          this.w = w.transpose();
          this.q = q;
          this.u = u5;
          this.s = t4.transpose().mmul(t4);
          this.xResidual = xResidual;
          this.yResidual = yResidual;
          this.betas = residual;
        } else {
          this.w = w.transpose();
          this.s = t4.transpose().mmul(t4).sqrt();
          if (scaleScores) {
            this.t = t4.clone().div(this.s.get(0, 0));
          } else {
            this.t = t4;
          }
          this.xResidual = X.sub(t4.mmul(w.transpose()));
        }
      }
    };
    exports.AbstractMatrix = AbstractMatrix;
    exports.CHO = CholeskyDecomposition;
    exports.CholeskyDecomposition = CholeskyDecomposition;
    exports.DistanceMatrix = DistanceMatrix;
    exports.EVD = EigenvalueDecomposition;
    exports.EigenvalueDecomposition = EigenvalueDecomposition;
    exports.LU = LuDecomposition;
    exports.LuDecomposition = LuDecomposition;
    exports.Matrix = Matrix;
    exports.MatrixColumnSelectionView = MatrixColumnSelectionView;
    exports.MatrixColumnView = MatrixColumnView;
    exports.MatrixFlipColumnView = MatrixFlipColumnView;
    exports.MatrixFlipRowView = MatrixFlipRowView;
    exports.MatrixRowSelectionView = MatrixRowSelectionView;
    exports.MatrixRowView = MatrixRowView;
    exports.MatrixSelectionView = MatrixSelectionView;
    exports.MatrixSubView = MatrixSubView;
    exports.MatrixTransposeView = MatrixTransposeView;
    exports.NIPALS = nipals;
    exports.Nipals = nipals;
    exports.QR = QrDecomposition;
    exports.QrDecomposition = QrDecomposition;
    exports.SVD = SingularValueDecomposition;
    exports.SingularValueDecomposition = SingularValueDecomposition;
    exports.SymmetricMatrix = SymmetricMatrix;
    exports.WrapperMatrix1D = WrapperMatrix1D;
    exports.WrapperMatrix2D = WrapperMatrix2D;
    exports.correlation = correlation;
    exports.covariance = covariance;
    exports.default = Matrix;
    exports.determinant = determinant;
    exports.inverse = inverse;
    exports.linearDependencies = linearDependencies;
    exports.pseudoInverse = pseudoInverse;
    exports.solve = solve;
    exports.wrap = wrap;
  }
});

// ../../node_modules/.pnpm/ml-logistic-regression@2.0.0/node_modules/ml-logistic-regression/lib/logreg.js
var require_logreg = __commonJS({
  "../../node_modules/.pnpm/ml-logistic-regression@2.0.0/node_modules/ml-logistic-regression/lib/logreg.js"(exports, module) {
    "use strict";
    function _interopDefault(ex) {
      return ex && typeof ex === "object" && "default" in ex ? ex["default"] : ex;
    }
    var Matrix = _interopDefault(require_matrix());
    var LogisticRegressionTwoClasses = class _LogisticRegressionTwoClasses {
      constructor(options = {}) {
        const { numSteps = 5e4, learningRate = 5e-4, weights = null } = options;
        this.numSteps = numSteps;
        this.learningRate = learningRate;
        this.weights = weights ? Matrix.checkMatrix(weights) : null;
      }
      train(features, target) {
        let weights = Matrix.zeros(1, features.columns);
        for (let step = 0; step < this.numSteps; step++) {
          const scores = features.mmul(weights.transpose());
          const predictions = sigmoid(scores);
          const outputErrorSignal = Matrix.columnVector(predictions).neg().add(target);
          const gradient = features.transpose().mmul(outputErrorSignal);
          weights = weights.add(gradient.mul(this.learningRate).transpose());
        }
        this.weights = weights;
      }
      testScores(features) {
        const finalData = features.mmul(this.weights.transpose());
        return sigmoid(finalData);
      }
      predict(features) {
        const finalData = features.mmul(this.weights.transpose());
        return sigmoid(finalData).map(Math.round);
      }
      static load(model) {
        return new _LogisticRegressionTwoClasses(model);
      }
      toJSON() {
        return {
          numSteps: this.numSteps,
          learningRate: this.learningRate,
          weights: this.weights
        };
      }
    };
    function sigmoid(scores) {
      scores = scores.to1DArray();
      let result = [];
      for (let i5 = 0; i5 < scores.length; i5++) {
        result.push(1 / (1 + Math.exp(-scores[i5])));
      }
      return result;
    }
    function transformClassesForOneVsAll(Y, oneClass) {
      let y3 = Y.to1DArray();
      for (let i5 = 0; i5 < y3.length; i5++) {
        if (y3[i5] === oneClass) {
          y3[i5] = 0;
        } else {
          y3[i5] = 1;
        }
      }
      return Matrix.columnVector(y3);
    }
    var LogisticRegression = class _LogisticRegression {
      constructor(options = {}) {
        const {
          numSteps = 5e4,
          learningRate = 5e-4,
          classifiers = [],
          numberClasses = 0
        } = options;
        this.numSteps = numSteps;
        this.learningRate = learningRate;
        this.classifiers = classifiers;
        this.numberClasses = numberClasses;
      }
      train(X, Y) {
        this.numberClasses = new Set(Y.to1DArray()).size;
        this.classifiers = new Array(this.numberClasses);
        for (let i5 = 0; i5 < this.numberClasses; i5++) {
          this.classifiers[i5] = new LogisticRegressionTwoClasses({
            numSteps: this.numSteps,
            learningRate: this.learningRate
          });
          let y3 = Y.clone();
          y3 = transformClassesForOneVsAll(y3, i5);
          this.classifiers[i5].train(X, y3);
        }
      }
      predict(Xtest) {
        let resultsOneClass = new Array(this.numberClasses).fill(0);
        let i5;
        for (i5 = 0; i5 < this.numberClasses; i5++) {
          resultsOneClass[i5] = this.classifiers[i5].testScores(Xtest);
        }
        let finalResults = new Array(Xtest.rows).fill(0);
        for (i5 = 0; i5 < Xtest.rows; i5++) {
          let minimum = 1e5;
          for (let j = 0; j < this.numberClasses; j++) {
            if (resultsOneClass[j][i5] < minimum) {
              minimum = resultsOneClass[j][i5];
              finalResults[i5] = j;
            }
          }
        }
        return finalResults;
      }
      static load(model) {
        if (model.name !== "LogisticRegression") {
          throw new Error(`invalid model: ${model.name}`);
        }
        const newClassifier = new _LogisticRegression(model);
        for (let i5 = 0; i5 < newClassifier.numberClasses; i5++) {
          newClassifier.classifiers[i5] = LogisticRegressionTwoClasses.load(
            model.classifiers[i5]
          );
        }
        return newClassifier;
      }
      toJSON() {
        return {
          name: "LogisticRegression",
          numSteps: this.numSteps,
          learningRate: this.learningRate,
          numberClasses: this.numberClasses,
          classifiers: this.classifiers
        };
      }
    };
    module.exports = LogisticRegression;
  }
});

// ../../node_modules/.pnpm/string-comparison@1.3.0/node_modules/string-comparison/dist/index.js
var require_dist9 = __commonJS({
  "../../node_modules/.pnpm/string-comparison@1.3.0/node_modules/string-comparison/dist/index.js"(exports, module) {
    function r4(r5, t5) {
      if (t5 == null || t5 > r5.length) t5 = r5.length;
      for (var e5 = 0, n7 = new Array(t5); e5 < t5; e5++) n7[e5] = r5[e5];
      return n7;
    }
    function t4(r5) {
      if (Array.isArray(r5)) return r5;
    }
    function e4(t5) {
      if (Array.isArray(t5)) return r4(t5);
    }
    function n6(r5) {
      if (r5 === void 0) {
        throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
      }
      return r5;
    }
    function i5(r5, t5) {
      if (!(r5 instanceof t5)) {
        throw new TypeError("Cannot call a class as a function");
      }
    }
    function a5(r5, t5) {
      for (var e5 = 0; e5 < t5.length; e5++) {
        var n7 = t5[e5];
        n7.enumerable = n7.enumerable || false;
        n7.configurable = true;
        if ("value" in n7) n7.writable = true;
        Object.defineProperty(r5, n7.key, n7);
      }
    }
    function o5(r5, t5, e5) {
      if (t5) a5(r5.prototype, t5);
      if (e5) a5(r5, e5);
      return r5;
    }
    function u5(r5) {
      u5 = Object.setPrototypeOf ? Object.getPrototypeOf : function r6(r6) {
        return r6.__proto__ || Object.getPrototypeOf(r6);
      };
      return u5(r5);
    }
    function c6(r5, t5) {
      if (typeof t5 !== "function" && t5 !== null) {
        throw new TypeError("Super expression must either be null or a function");
      }
      r5.prototype = Object.create(t5 && t5.prototype, { constructor: { value: r5, writable: true, configurable: true } });
      if (t5) v3(r5, t5);
    }
    function l4(r5) {
      if (typeof Symbol !== "undefined" && r5[Symbol.iterator] != null || r5["@@iterator"] != null) return Array.from(r5);
    }
    function f4(r5, t5) {
      var e5 = r5 == null ? null : typeof Symbol !== "undefined" && r5[Symbol.iterator] || r5["@@iterator"];
      if (e5 == null) return;
      var n7 = [];
      var i6 = true;
      var a6 = false;
      var o6, u6;
      try {
        for (e5 = e5.call(r5); !(i6 = (o6 = e5.next()).done); i6 = true) {
          n7.push(o6.value);
          if (t5 && n7.length === t5) break;
        }
      } catch (r6) {
        a6 = true;
        u6 = r6;
      } finally {
        try {
          if (!i6 && e5["return"] != null) e5["return"]();
        } finally {
          if (a6) throw u6;
        }
      }
      return n7;
    }
    function s4() {
      throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }
    function h4() {
      throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }
    function y3(r5, t5) {
      if (t5 && (m3(t5) === "object" || typeof t5 === "function")) {
        return t5;
      }
      return n6(r5);
    }
    function v3(r5, t5) {
      v3 = Object.setPrototypeOf || function r6(r6, t6) {
        r6.__proto__ = t6;
        return r6;
      };
      return v3(r5, t5);
    }
    function p3(r5, e5) {
      return t4(r5) || f4(r5, e5) || b3(r5, e5) || s4();
    }
    function g3(r5) {
      return e4(r5) || l4(r5) || b3(r5) || h4();
    }
    function m3(r5) {
      "@swc/helpers - typeof";
      return r5 && typeof Symbol !== "undefined" && r5.constructor === Symbol ? "symbol" : typeof r5;
    }
    function b3(t5, e5) {
      if (!t5) return;
      if (typeof t5 === "string") return r4(t5, e5);
      var n7 = Object.prototype.toString.call(t5).slice(8, -1);
      if (n7 === "Object" && t5.constructor) n7 = t5.constructor.name;
      if (n7 === "Map" || n7 === "Set") return Array.from(n7);
      if (n7 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n7)) return r4(t5, e5);
    }
    function k3() {
      if (typeof Reflect === "undefined" || !Reflect.construct) return false;
      if (Reflect.construct.sham) return false;
      if (typeof Proxy === "function") return true;
      try {
        Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
        }));
        return true;
      } catch (r5) {
        return false;
      }
    }
    function d3(r5) {
      var t5 = k3();
      return function e5() {
        var e6 = u5(r5), n7;
        if (t5) {
          var i6 = u5(this).constructor;
          n7 = Reflect.construct(e6, arguments, i6);
        } else {
          n7 = e6.apply(this, arguments);
        }
        return y3(this, n7);
      };
    }
    var T = Object.defineProperty;
    var w = Object.getOwnPropertyDescriptor;
    var A = Object.getOwnPropertyNames;
    var P = Object.prototype.hasOwnProperty;
    var O = function(r5, t5) {
      for (var e5 in t5) T(r5, e5, { get: t5[e5], enumerable: true });
    };
    var j = function(r5, t5, e5, n7) {
      var i6 = true, a6 = false, o6 = void 0;
      if (t5 && typeof t5 == "object" || typeof t5 == "function") try {
        var u6 = function() {
          var i7 = l5.value;
          !P.call(r5, i7) && i7 !== e5 && T(r5, i7, { get: function() {
            return t5[i7];
          }, enumerable: !(n7 = w(t5, i7)) || n7.enumerable });
        };
        for (var c7 = A(t5)[Symbol.iterator](), l5; !(i6 = (l5 = c7.next()).done); i6 = true) u6();
      } catch (r6) {
        a6 = true;
        o6 = r6;
      } finally {
        try {
          if (!i6 && c7.return != null) {
            c7.return();
          }
        } finally {
          if (a6) {
            throw o6;
          }
        }
      }
      return r5;
    };
    var R = function(r5) {
      return j(T({}, "__esModule", { value: true }), r5);
    };
    var M = {};
    O(M, { default: function() {
      return H;
    } });
    module.exports = R(M);
    var S3 = /* @__PURE__ */ (function() {
      "use strict";
      function r5() {
        i5(this, r5);
      }
      o5(r5, [{ key: "sortMatch", value: function t5(t5, e5) {
        var n7 = this;
        return r5.checkThanosType(t5), r5.checkAvengersType(e5), e5.map(function(r6, e6) {
          return { member: r6, index: e6, rating: n7.similarity(t5, r6) };
        }).sort(function(r6, t6) {
          return r6.rating - t6.rating;
        });
      } }], [{ key: "initParams", value: function r6(r6, t5) {
        return [r6.replace(/\s+/g, "").toLowerCase(), t5.replace(/\s+/g, "").toLowerCase()];
      } }, { key: "checkThanosType", value: function r6(r6) {
        if (typeof r6 != "string") throw new Error("first argument should be a string");
      } }, { key: "checkRivalType", value: function r6(r6) {
        if (typeof r6 != "string") throw new Error("second argument should be a string");
      } }, { key: "checkAvengersType", value: function r6(r6) {
        if (!Array.isArray(r6)) throw new Error("second argument should be an array of strings");
        if (r6.find(function(r7) {
          return typeof r7 != "string";
        })) throw new Error("second argument should be an array of strings");
      } }]);
      return r5;
    })();
    var x = /* @__PURE__ */ (function(r5) {
      "use strict";
      c6(e5, r5);
      var t5 = d3(e5);
      function e5() {
        i5(this, e5);
        return t5.apply(this, arguments);
      }
      o5(e5, [{ key: "similarity", value: function r6(r6, t6) {
        S3.checkThanosType(r6), S3.checkRivalType(t6);
        var e6 = p3(S3.initParams(r6, t6), 2), n7 = e6[0], i6 = e6[1];
        if (!n7.length && !i6.length) return 1;
        if (!n7.length || !i6.length) return 0;
        if (n7 === i6) return 1;
        var a6 = Array.from(new Set(n7.split("").concat(i6.split("")))), o6 = this.stringVectorization(n7.split(""), a6), u6 = this.stringVectorization(i6.split(""), a6), c7 = 0, l5 = 0, f5 = 0;
        for (var s5 = 0; s5 < o6.length; ++s5) c7 += o6[s5] * u6[s5], l5 += o6[s5] * o6[s5], f5 += u6[s5] * u6[s5];
        return l5 = Math.sqrt(l5), f5 = Math.sqrt(f5), Number(c7) / (l5 * f5);
      } }, { key: "distance", value: function r6(r6, t6) {
        return 1 - this.similarity(r6, t6);
      } }, { key: "stringVectorization", value: function r6(r6, t6) {
        return t6.map(function(t7) {
          return r6.includes(t7) ? 1 : 0;
        });
      } }]);
      return e5;
    })(S3);
    var _ = /* @__PURE__ */ (function(r5) {
      "use strict";
      c6(e5, r5);
      var t5 = d3(e5);
      function e5() {
        i5(this, e5);
        return t5.apply(this, arguments);
      }
      o5(e5, [{ key: "similarity", value: function r6(r6, t6) {
        S3.checkThanosType(r6), S3.checkRivalType(t6);
        var e6 = p3(S3.initParams(r6, t6), 2), n7 = e6[0], i6 = e6[1], a6 = [n7.length, i6.length], o6 = a6[0], u6 = a6[1];
        if (!n7.length && !i6.length || n7 === i6) return 1;
        if (o6 < 2 || u6 < 2) return 0;
        var c7 = /* @__PURE__ */ new Map();
        for (var l5 = 0; l5 < o6 - 1; l5++) {
          var f5 = n7.slice(l5, l5 + 2), s5 = c7.has(f5) ? c7.get(f5) + 1 : 1;
          c7.set(f5, s5);
        }
        var h5 = 0;
        for (var y4 = 0; y4 < u6 - 1; y4++) {
          var v4 = i6.slice(y4, y4 + 2), g4 = c7.has(v4) ? c7.get(v4) : 0;
          g4 > 0 && (c7.set(v4, g4 - 1), ++h5);
        }
        return 2 * h5 / (o6 + u6 - 2);
      } }, { key: "distance", value: function r6(r6, t6) {
        return 1 - this.similarity(r6, t6);
      } }]);
      return e5;
    })(S3);
    var E = /* @__PURE__ */ (function(r5) {
      "use strict";
      c6(e5, r5);
      var t5 = d3(e5);
      function e5() {
        i5(this, e5);
        return t5.apply(this, arguments);
      }
      o5(e5, [{ key: "similarity", value: function r6(r6, t6) {
        S3.checkThanosType(r6), S3.checkRivalType(t6);
        var e6 = p3(S3.initParams(r6, t6), 2), n7 = e6[0], i6 = e6[1];
        if (!n7.length && !i6.length || n7 === i6) return 1;
        var a6 = new Set(n7.split("").concat(i6.split(""))), o6 = new Set(n7.split("").filter(function(r7) {
          return new Set(i6).has(r7);
        }));
        return Number(o6.size) / a6.size;
      } }, { key: "distance", value: function r6(r6, t6) {
        return 1 - this.similarity(r6, t6);
      } }]);
      return e5;
    })(S3);
    var L = /* @__PURE__ */ (function(r5) {
      "use strict";
      c6(e5, r5);
      var t5 = d3(e5);
      function e5() {
        i5(this, e5);
        return t5.apply(this, arguments);
      }
      o5(e5, [{ key: "similarity", value: function r6(r6, t6) {
        S3.checkThanosType(r6), S3.checkRivalType(t6);
        var e6 = p3(S3.initParams(r6, t6), 2), n7 = e6[0], i6 = e6[1];
        return !n7.length && !i6.length ? 1 : 1 - Number(this.distance(n7, i6)) / Math.max(n7.length, i6.length);
      } }, { key: "distance", value: function r6(r6, t6) {
        S3.checkThanosType(r6), S3.checkRivalType(t6);
        var e6 = p3(S3.initParams(r6, t6), 2), n7 = e6[0], i6 = e6[1];
        if (n7 === i6) return 0;
        var a6 = [n7.length, i6.length], o6 = a6[0], u6 = a6[1];
        if (!o6) return u6;
        if (!u6) return o6;
        var c7 = g3(Array(o6 + 1)).map(function() {
          return Array(u6 + 1).fill(0);
        });
        for (var l5 = 0; l5 <= o6; ++l5) c7[l5][0] = l5;
        for (var f5 = 0; f5 <= u6; ++f5) c7[0][f5] = f5;
        var s5;
        for (var h5 = 1; h5 <= o6; ++h5) for (var y4 = 1; y4 <= u6; ++y4) s5 = n7[h5 - 1] === i6[y4 - 1] ? 0 : 1, c7[h5][y4] = Math.min(c7[h5 - 1][y4] + 1, c7[h5][y4 - 1] + 1, c7[h5 - 1][y4 - 1] + s5);
        return c7[o6][u6];
      } }]);
      return e5;
    })(S3);
    var C = /* @__PURE__ */ (function(r5) {
      "use strict";
      c6(e5, r5);
      var t5 = d3(e5);
      function e5() {
        i5(this, e5);
        return t5.apply(this, arguments);
      }
      o5(e5, [{ key: "similarity", value: function r6(r6, t6) {
        S3.checkThanosType(r6), S3.checkRivalType(t6);
        var n7 = p3(S3.initParams(r6, t6), 2), i6 = n7[0], a6 = n7[1];
        return !i6.length && !a6.length || i6 === a6 ? 1 : 2 * e5.lcsLength(i6, a6) / (i6.length + a6.length);
      } }, { key: "distance", value: function r6(r6, t6) {
        var n7 = p3(S3.initParams(r6, t6), 2), i6 = n7[0], a6 = n7[1];
        return i6.length + a6.length - 2 * e5.lcsLength(i6, a6);
      } }], [{ key: "lcsLength", value: function r6(r6, t6) {
        S3.checkThanosType(r6), S3.checkRivalType(t6);
        var e6 = p3(S3.initParams(r6, t6), 2), n7 = e6[0], i6 = e6[1], a6 = [n7.length, i6.length], o6 = a6[0], u6 = a6[1], c7 = g3(Array(o6 + 1)).map(function() {
          return Array(u6 + 1).fill(0);
        });
        for (var l5 = 1; l5 <= o6; ++l5) for (var f5 = 1; f5 <= u6; ++f5) c7[l5][f5] = n7[l5 - 1] === i6[f5 - 1] ? c7[l5 - 1][f5 - 1] + 1 : Math.max(c7[l5][f5 - 1], c7[l5 - 1][f5]);
        return c7[o6][u6];
      } }]);
      return e5;
    })(S3);
    var I = /* @__PURE__ */ (function(r5) {
      "use strict";
      c6(e5, r5);
      var t5 = d3(e5);
      function e5() {
        i5(this, e5);
        return t5.apply(this, arguments);
      }
      o5(e5, [{ key: "similarity", value: function r6(r6, t6) {
        S3.checkThanosType(r6), S3.checkRivalType(t6);
        var n7 = p3(S3.initParams(r6, t6), 2), i6 = n7[0], a6 = n7[1];
        return !i6.length && !a6.length || i6 === a6 ? 1 : Number(e5.lcsLength(i6, a6)) / Math.max(i6.length, a6.length);
      } }, { key: "distance", value: function r6(r6, t6) {
        S3.checkThanosType(r6), S3.checkRivalType(t6);
        var e6 = p3(S3.initParams(r6, t6), 2), n7 = e6[0], i6 = e6[1];
        return n7 === i6 ? 0 : 1 - this.similarity(n7, i6);
      } }], [{ key: "lcsLength", value: function r6(r6, t6) {
        S3.checkThanosType(r6), S3.checkRivalType(t6);
        var e6 = [r6.length, t6.length], n7 = e6[0], i6 = e6[1], a6 = g3(Array(n7 + 1)).map(function() {
          return Array(i6 + 1).fill(0);
        });
        for (var o6 = 1; o6 <= n7; ++o6) for (var u6 = 1; u6 <= i6; ++u6) a6[o6][u6] = r6[o6 - 1] === t6[u6 - 1] ? a6[o6 - 1][u6 - 1] + 1 : Math.max(a6[o6][u6 - 1], a6[o6 - 1][u6]);
        return a6[n7][i6];
      } }]);
      return e5;
    })(S3);
    var z = /* @__PURE__ */ (function(r5) {
      "use strict";
      c6(e5, r5);
      var t5 = d3(e5);
      function e5() {
        i5(this, e5);
        return t5.apply(this, arguments);
      }
      o5(e5, [{ key: "distance", value: function r6(r6, t6) {
        S3.checkThanosType(r6), S3.checkRivalType(t6);
        var e6 = p3(S3.initParams(r6, t6), 2), n7 = e6[0], i6 = e6[1];
        if (!n7.length && !i6.length) return 1;
        if (!n7.length || !i6.length) return 0;
        if (n7 === i6 || n7 === i6) return 1;
        var a6 = n7.length, o6 = i6.length;
        if (a6 === 0 || o6 === 0) return 0;
        var u6 = Math.floor(Math.max(a6, o6) / 2) - 1, c7 = 0, l5 = new Array(n7.length).fill(0), f5 = new Array(i6.length).fill(0);
        for (var s5 = 0; s5 < a6; s5++) for (var h5 = Math.max(0, s5 - u6); h5 < Math.min(o6, s5 + u6 + 1); h5++) if (n7[s5] === i6[h5] && f5[h5] === 0) {
          l5[s5] = 1, f5[h5] = 1, c7++;
          break;
        }
        if (c7 === 0) return 0;
        var y4 = 0, v4 = 0;
        for (var g4 = 0; g4 < a6; g4++) if (l5[g4] === 1) {
          for (; f5[v4] === 0; ) v4++;
          n7[g4] !== i6[v4++] && y4++;
        }
        return y4 /= 2, (c7 / a6 + c7 / o6 + (c7 - y4) / c7) / 3;
      } }, { key: "similarity", value: function r6(r6, t6) {
        var e6 = this.distance(r6, t6);
        if (e6 > 0.7) {
          var n7 = 0;
          for (var i6 = 0; i6 < Math.min(r6.length, t6.length) && r6[i6] === t6[i6]; i6++) n7++;
          n7 = Math.min(4, n7), e6 += 0.1 * n7 * (1 - e6);
        }
        return e6;
      } }]);
      return e5;
    })(S3);
    var N = new x();
    var q = new _();
    var V = new E();
    var B = new L();
    var D = new C();
    var U = D;
    var W = new I();
    var $ = W;
    var F = new z();
    var G2 = { cosine: N, diceCoefficient: q, jaccardIndex: V, levenshtein: B, lcs: D, longestCommonSubsequence: U, mlcs: W, metricLcs: $, jaroWinkler: F };
    var H = G2;
  }
});

// ../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/internals/utils/rendering-type-prediction.js
var require_rendering_type_prediction = __commonJS({
  "../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/internals/utils/rendering-type-prediction.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.RenderingTypePredictor = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var core_1 = require_core();
    var ml_logistic_regression_1 = tslib_1.__importDefault(require_logreg());
    var ml_matrix_1 = require_matrix();
    var string_comparison_1 = tslib_1.__importDefault(require_dist9());
    var urlComponents = (url3) => {
      return [url3.hostname, ...url3.pathname.split("/")];
    };
    var calculateUrlSimilarity = (a5, b3) => {
      const values = [];
      if (a5[0] !== b3[0]) {
        return 0;
      }
      for (let i5 = 1; i5 < Math.max(a5.length, b3.length); i5++) {
        values.push(string_comparison_1.default.jaroWinkler.similarity(a5[i5] ?? "", b3[i5] ?? "") > 0.8 ? 1 : 0);
      }
      return sum(values) / Math.max(a5.length, b3.length);
    };
    var sum = (values) => values.reduce((acc, value2) => acc + value2);
    var mean = (values) => values.length > 0 ? sum(values) / values.length : void 0;
    var RenderingTypePredictor2 = class {
      constructor({ detectionRatio, persistenceOptions }) {
        Object.defineProperty(this, "detectionRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "state", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.detectionRatio = detectionRatio;
        this.state = new core_1.RecoverableState({
          defaultState: {
            logreg: new ml_logistic_regression_1.default({ numSteps: 1e3, learningRate: 0.05 }),
            detectionResults: /* @__PURE__ */ new Map()
          },
          serialize: (state) => JSON.stringify({
            logreg: state.logreg.toJSON(),
            detectionResults: Array.from(state.detectionResults.entries()).map(([renderingType, urlPartsByLabel]) => ({
              renderingType,
              urlPartsByLabel: Array.from(urlPartsByLabel.entries()).map(([label, urlParts]) => ({
                label,
                urlParts
              }))
            }))
          }),
          deserialize: (serializedState) => {
            const { logreg, detectionResults = [] } = JSON.parse(serializedState);
            return {
              logreg: ml_logistic_regression_1.default.load(logreg),
              detectionResults: new Map(detectionResults.map((serializedItem) => [
                serializedItem.renderingType,
                new Map(serializedItem.urlPartsByLabel.map((item) => [item.label, item.urlParts]))
              ]))
            };
          },
          persistStateKey: "rendering-type-predictor-state",
          persistenceEnabled: true,
          ...persistenceOptions
        });
      }
      /**
       * Initialize the predictor by restoring persisted state.
       */
      async initialize() {
        await this.state.initialize();
      }
      /**
       * Predict the rendering type for a given URL and request label.
       */
      predict({ url: url3, loadedUrl, label }) {
        const { logreg } = this.state.currentValue;
        if (logreg.classifiers.length === 0) {
          return { renderingType: "clientOnly", detectionProbabilityRecommendation: 1 };
        }
        const predictionUrl = new URL(loadedUrl ?? url3);
        const urlFeature = new ml_matrix_1.Matrix([this.calculateFeatureVector(urlComponents(predictionUrl), label)]);
        const [prediction] = logreg.predict(urlFeature);
        const scores = [logreg.classifiers[0].testScores(urlFeature), logreg.classifiers[1].testScores(urlFeature)];
        return {
          renderingType: prediction === 1 ? "static" : "clientOnly",
          detectionProbabilityRecommendation: Math.abs(scores[0] - scores[1]) < 0.1 ? 1 : this.detectionRatio * Math.max(1, 5 - this.resultCount(label))
        };
      }
      /**
       * Store the rendering type for a given URL and request label. This updates the underlying prediction model, which may be costly.
       */
      storeResult(requests, renderingType) {
        const state = this.state.currentValue;
        for (const { url: url3, loadedUrl, label } of Array.isArray(requests) ? requests : [requests]) {
          const resultUrl = new URL(loadedUrl ?? url3);
          if (!state.detectionResults.has(renderingType)) {
            state.detectionResults.set(renderingType, /* @__PURE__ */ new Map());
          }
          if (!state.detectionResults.get(renderingType).has(label)) {
            state.detectionResults.get(renderingType).set(label, []);
          }
          state.detectionResults.get(renderingType).get(label).push(urlComponents(resultUrl));
        }
        this.retrain();
      }
      resultCount(label) {
        return Array.from(this.state.currentValue.detectionResults.values()).map((results) => results.get(label)?.length ?? 0).reduce((acc, value2) => acc + value2, 0);
      }
      calculateFeatureVector(url3, label) {
        return [
          mean((this.state.currentValue.detectionResults.get("static")?.get(label) ?? []).map((otherUrl) => calculateUrlSimilarity(url3, otherUrl) ?? 0)) ?? 0,
          mean((this.state.currentValue.detectionResults.get("clientOnly")?.get(label) ?? []).map((otherUrl) => calculateUrlSimilarity(url3, otherUrl) ?? 0)) ?? 0
        ];
      }
      retrain() {
        const X = [
          [0, 1],
          [1, 0]
        ];
        const Y = [0, 1];
        for (const [renderingType, urlsByLabel] of this.state.currentValue.detectionResults.entries()) {
          for (const [label, urls] of urlsByLabel) {
            for (const url3 of urls) {
              X.push(this.calculateFeatureVector(url3, label));
              Y.push(renderingType === "static" ? 1 : 0);
            }
          }
        }
        this.state.currentValue.logreg.train(new ml_matrix_1.Matrix(X), ml_matrix_1.Matrix.columnVector(Y));
      }
    };
    exports.RenderingTypePredictor = RenderingTypePredictor2;
  }
});

// ../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/internals/utils/playwright-utils.js
var require_playwright_utils = __commonJS({
  "../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/internals/utils/playwright-utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.playwrightUtils = exports.enqueueLinksByClickingElements = void 0;
    exports.injectFile = injectFile;
    exports.injectJQuery = injectJQuery;
    exports.gotoExtended = gotoExtended;
    exports.blockRequests = blockRequests;
    exports.compileScript = compileScript;
    exports.infiniteScroll = infiniteScroll;
    exports.saveSnapshot = saveSnapshot;
    exports.parseWithCheerio = parseWithCheerio;
    exports.closeCookieModals = closeCookieModals;
    exports.registerUtilsToContext = registerUtilsToContext;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var promises_1 = __require("node:fs/promises");
    var node_vm_1 = tslib_1.__importDefault(__require("node:vm"));
    var browser_1 = require_browser2();
    var utils_1 = require_utils9();
    var cheerio = tslib_1.__importStar(require_lib12());
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var datastructures_1 = require_cjs9();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var click_elements_1 = require_click_elements();
    Object.defineProperty(exports, "enqueueLinksByClickingElements", { enumerable: true, get: function() {
      return click_elements_1.enqueueLinksByClickingElements;
    } });
    var rendering_type_prediction_1 = require_rendering_type_prediction();
    var log2 = log_1.default.child({ prefix: "Playwright Utils" });
    var jqueryPath = __require.resolve("jquery");
    var MAX_INJECT_FILE_CACHE_SIZE = 10;
    var DEFAULT_BLOCK_REQUEST_URL_PATTERNS = [".css", ".jpg", ".jpeg", ".png", ".svg", ".gif", ".woff", ".pdf", ".zip"];
    var injectedFilesCache = new datastructures_1.LruCache({ maxLength: MAX_INJECT_FILE_CACHE_SIZE });
    async function injectFile(page, filePath, options = {}) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      (0, ow_1.default)(filePath, ow_1.default.string);
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        surviveNavigations: ow_1.default.optional.boolean
      }));
      let contents = injectedFilesCache.get(filePath);
      if (!contents) {
        contents = await (0, promises_1.readFile)(filePath, "utf8");
        injectedFilesCache.add(filePath, contents);
      }
      const evalP = page.evaluate(contents);
      if (options.surviveNavigations) {
        page.on("framenavigated", async () => page.evaluate(contents).catch((error) => log2.warning("An error occurred during the script injection!", { error })));
      }
      return evalP;
    }
    async function injectJQuery(page, options) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      return injectFile(page, jqueryPath, { surviveNavigations: options?.surviveNavigations ?? true });
    }
    async function gotoExtended(page, request, gotoOptions = {}) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      (0, ow_1.default)(request, ow_1.default.object.partialShape({
        url: ow_1.default.string.url,
        method: ow_1.default.optional.string,
        headers: ow_1.default.optional.object,
        payload: ow_1.default.optional.any(ow_1.default.string, ow_1.default.uint8Array)
      }));
      (0, ow_1.default)(gotoOptions, ow_1.default.object);
      const { url: url3, method, headers, payload } = request;
      const isEmpty2 = (o5) => !o5 || Object.keys(o5).length === 0;
      if (method !== "GET" || payload || !isEmpty2(headers)) {
        log2.deprecated("Using other request methods than GET, rewriting headers and adding payloads has a high impact on performance in recent versions of Playwright. Use only when necessary.");
        let wasCalled = false;
        const interceptRequestHandler = async (route) => {
          try {
            if (wasCalled) {
              return await route.continue();
            }
            wasCalled = true;
            const overrides = {};
            if (method !== "GET")
              overrides.method = method;
            if (payload)
              overrides.postData = payload;
            if (!isEmpty2(headers))
              overrides.headers = headers;
            await route.continue(overrides);
          } catch (error) {
            log2.debug("Error inside request interceptor", { error });
          }
          return void 0;
        };
        await page.route("**/*", interceptRequestHandler);
      }
      return page.goto(url3, gotoOptions);
    }
    async function blockRequests(page, options = {}) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        urlPatterns: ow_1.default.optional.array.ofType(ow_1.default.string),
        extraUrlPatterns: ow_1.default.optional.array.ofType(ow_1.default.string)
      }));
      const { urlPatterns = DEFAULT_BLOCK_REQUEST_URL_PATTERNS, extraUrlPatterns = [] } = options;
      const patternsToBlock = [...urlPatterns, ...extraUrlPatterns];
      try {
        const client = await page.context().newCDPSession(page);
        await client.send("Network.enable");
        await client.send("Network.setBlockedURLs", { urls: patternsToBlock });
      } catch {
        log2.warning("blockRequests() helper is incompatible with non-Chromium browsers.");
      }
    }
    function compileScript(scriptString, context = /* @__PURE__ */ Object.create(null)) {
      const funcString = `async ({ page, request }) => {${scriptString}}`;
      let func;
      try {
        func = node_vm_1.default.runInNewContext(funcString, context);
      } catch (err2) {
        log2.exception(err2, "Cannot compile script!");
        throw err2;
      }
      if (typeof func !== "function")
        throw new Error("Compilation result is not a function!");
      return func;
    }
    async function infiniteScroll(page, options = {}) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        timeoutSecs: ow_1.default.optional.number,
        maxScrollHeight: ow_1.default.optional.number,
        waitForSecs: ow_1.default.optional.number,
        scrollDownAndUp: ow_1.default.optional.boolean,
        buttonSelector: ow_1.default.optional.string,
        stopScrollCallback: ow_1.default.optional.function
      }));
      const { timeoutSecs = 0, maxScrollHeight = 0, waitForSecs = 4, scrollDownAndUp = false, buttonSelector, stopScrollCallback } = options;
      let finished2;
      const startTime = Date.now();
      const CHECK_INTERVAL_MILLIS = 1e3;
      const SCROLL_HEIGHT_IF_ZERO = 1e4;
      let scrolledDistance = 0;
      const maybeResourceTypesInfiniteScroll = ["xhr", "fetch", "websocket", "other"];
      const resourcesStats = {
        newRequested: 0,
        oldRequested: 0,
        matchNumber: 0
      };
      page.on("request", (msg) => {
        if (maybeResourceTypesInfiniteScroll.includes(msg.resourceType())) {
          resourcesStats.newRequested++;
        }
      });
      const checkFinished = setInterval(() => {
        if (resourcesStats.oldRequested === resourcesStats.newRequested) {
          resourcesStats.matchNumber++;
          if (resourcesStats.matchNumber >= waitForSecs) {
            clearInterval(checkFinished);
            finished2 = true;
            return;
          }
        } else {
          resourcesStats.matchNumber = 0;
          resourcesStats.oldRequested = resourcesStats.newRequested;
        }
        if (timeoutSecs !== 0 && (Date.now() - startTime) / 1e3 > timeoutSecs) {
          clearInterval(checkFinished);
          finished2 = true;
        }
        if (maxScrollHeight > 0 && scrolledDistance >= maxScrollHeight) {
          clearInterval(checkFinished);
          finished2 = true;
        }
      }, CHECK_INTERVAL_MILLIS);
      const doScroll = async () => {
        const bodyScrollHeight = await page.evaluate(() => document.body.scrollHeight);
        const delta = bodyScrollHeight === 0 ? SCROLL_HEIGHT_IF_ZERO : bodyScrollHeight;
        await page.mouse.wheel(0, delta);
        scrolledDistance += delta;
      };
      const maybeClickButton = async () => {
        const button = await page.$(buttonSelector);
        if (button && await button.boundingBox()) {
          await button.click({ delay: 10 });
        }
      };
      while (!finished2) {
        await doScroll();
        await page.waitForTimeout(250);
        if (scrollDownAndUp) {
          await page.mouse.wheel(0, -100);
        }
        if (buttonSelector) {
          await maybeClickButton();
        }
        if (stopScrollCallback) {
          if (await stopScrollCallback()) {
            clearInterval(checkFinished);
            break;
          }
        }
      }
    }
    async function saveSnapshot(page, options = {}) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        key: ow_1.default.optional.string.nonEmpty,
        screenshotQuality: ow_1.default.optional.number,
        saveScreenshot: ow_1.default.optional.boolean,
        saveHtml: ow_1.default.optional.boolean,
        keyValueStoreName: ow_1.default.optional.string,
        config: ow_1.default.optional.object
      }));
      const { key = "SNAPSHOT", screenshotQuality = 50, saveScreenshot = true, saveHtml = true, keyValueStoreName, config } = options;
      try {
        const store = await browser_1.KeyValueStore.open(keyValueStoreName, {
          config: config ?? browser_1.Configuration.getGlobalConfig()
        });
        if (saveScreenshot) {
          const screenshotName = `${key}.jpg`;
          const screenshotBuffer = await page.screenshot({
            fullPage: true,
            quality: screenshotQuality,
            type: "jpeg",
            animations: "disabled"
          });
          await store.setValue(screenshotName, screenshotBuffer, { contentType: "image/jpeg" });
        }
        if (saveHtml) {
          const htmlName = `${key}.html`;
          const html = await page.content();
          await store.setValue(htmlName, html, { contentType: "text/html" });
        }
      } catch (err2) {
        throw new Error(`saveSnapshot with key ${key} failed.
Cause:${err2.message}`);
      }
    }
    async function parseWithCheerio(page, ignoreShadowRoots = false, ignoreIframes = false) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      if (page.frames().length > 1 && !ignoreIframes) {
        const frames = await page.$$("iframe");
        await Promise.all(frames.map(async (frame) => {
          try {
            const iframe = await frame.contentFrame();
            if (iframe) {
              const getIframeHTML = async () => {
                try {
                  return iframe.locator("body").first().innerHTML();
                } catch {
                  return iframe.content();
                }
              };
              const contents = await getIframeHTML();
              await frame.evaluate((f4, c6) => {
                const replacementNode = document.createElement("div");
                replacementNode.innerHTML = c6;
                replacementNode.className = "crawlee-iframe-replacement";
                f4.replaceWith(replacementNode);
              }, contents);
            }
          } catch (error) {
            log2.warning(`Failed to extract iframe content: ${error}`);
          }
        }));
      }
      const html = ignoreShadowRoots ? null : await page.evaluate(`(${utils_1.expandShadowRoots.toString()})(document)`);
      const pageContent = html || await page.content();
      return cheerio.load(pageContent);
    }
    var idcacPlaywright = null;
    async function getIdcacPlaywright() {
      if (idcacPlaywright)
        return idcacPlaywright;
      try {
        idcacPlaywright = await import("idcac-playwright");
      } catch (error) {
        log2.warning(`Failed to import 'idcac-playwright'.

We recently made idcac-playwright an optional dependency due to licensing issues.
To use this feature, please install it manually by running

npm install idcac-playwright

Original error message follows:

${error.message}
`);
      }
      return idcacPlaywright;
    }
    async function closeCookieModals(page) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      const idcac = await getIdcacPlaywright();
      if (idcac?.getInjectableScript()) {
        await page.evaluate(idcac.getInjectableScript());
      }
    }
    async function handleCloudflareChallenge(page, url3, session, options = {}) {
      const blockedStatusCodes = session?.["sessionPool"]["blockedStatusCodes"];
      if (blockedStatusCodes?.includes(403)) {
        const idx = blockedStatusCodes.indexOf(403);
        blockedStatusCodes.splice(idx, 1);
      }
      options.isBlockedCallback ?? (options.isBlockedCallback = async () => {
        const isBlocked = await page.evaluate(() => {
          return document.querySelector("h1")?.textContent?.trim().includes("Sorry, you have been blocked");
        });
        return !!isBlocked;
      });
      options.isChallengeCallback ?? (options.isChallengeCallback = async () => {
        return await page.evaluate(async () => {
          return !!document.querySelector(".footer > .footer-inner > .diagnostic-wrapper > .ray-id");
        });
      });
      const retryBlocked = async () => {
        const isBlocked = await options.isBlockedCallback(page).catch(() => false);
        if (isBlocked) {
          throw new browser_1.SessionError(`Blocked by Cloudflare when processing ${url3}`);
        }
      };
      const isChallenge = async () => {
        return options.isChallengeCallback(page).catch(() => false);
      };
      if (!await isChallenge()) {
        await retryBlocked();
        return;
      }
      const logLevel = options.verbose ? "info" : "debug";
      log2[logLevel](`Detected Cloudflare challenge at ${url3}, trying to solve it. This can take up to ${10 + (options.sleepSecs ?? 10)} seconds.`);
      const bb = await page.evaluate(() => {
        const div = document.querySelector(".main-content div");
        return div?.getBoundingClientRect();
      }).catch(() => void 0);
      if (!bb) {
        return;
      }
      const randomOffset = (range2) => {
        return Math.round(100 * range2 * Math.random()) / 100;
      };
      let x = bb.x + 30;
      let y3 = bb.y + 25;
      for (let i5 = 0; i5 < 10; i5++) {
        await (0, utils_1.sleep)((options.preChallengeSleepSecs ?? 1) * 1e3);
        if (!await isChallenge()) {
          break;
        }
        if (options.clickPositionCallback) {
          const pos = await options.clickPositionCallback(page);
          if (pos) {
            x = pos.x;
            y3 = pos.y;
          }
        }
        if (options.clickCallback) {
          await options.clickCallback(page, { x, y: y3 });
          continue;
        }
        const xRandomized = x + randomOffset(10);
        const yRandomized = y3 + randomOffset(10);
        log2[logLevel](`Trying to click on the Cloudflare checkbox at ${url3}`, { x: xRandomized, y: yRandomized });
        await page.mouse.click(xRandomized, yRandomized);
        await page.mouse.click(xRandomized, yRandomized + 35);
      }
      await (0, utils_1.sleep)((options.sleepSecs ?? 10) * 1e3);
      if (await isChallenge()) {
        throw new browser_1.SessionError(`Blocked by Cloudflare when processing ${url3}`);
      }
      await retryBlocked();
    }
    function registerUtilsToContext(context, crawlerOptions) {
      context.injectFile = async (filePath, options) => injectFile(context.page, filePath, options);
      context.injectJQuery = async () => {
        if (context.request.state === browser_1.RequestState.BEFORE_NAV) {
          log2.warning("Using injectJQuery() in preNavigationHooks leads to unstable results. Use it in a postNavigationHook or a requestHandler instead.");
          await injectJQuery(context.page);
          return;
        }
        await injectJQuery(context.page, { surviveNavigations: false });
      };
      context.blockRequests = async (options) => blockRequests(context.page, options);
      context.waitForSelector = async (selector, timeoutMs = 5e3) => {
        const locator = context.page.locator(selector).first();
        await locator.waitFor({ timeout: timeoutMs, state: "attached" });
      };
      context.parseWithCheerio = async (selector, timeoutMs = 5e3) => {
        if (selector) {
          await context.waitForSelector(selector, timeoutMs);
        }
        return parseWithCheerio(context.page, crawlerOptions.ignoreShadowRoots, crawlerOptions.ignoreIframes);
      };
      context.infiniteScroll = async (options) => infiniteScroll(context.page, options);
      context.saveSnapshot = async (options) => saveSnapshot(context.page, { ...options, config: context.crawler.config });
      context.enqueueLinksByClickingElements = async (options) => (0, click_elements_1.enqueueLinksByClickingElements)({
        ...options,
        page: context.page,
        requestQueue: context.crawler.requestQueue
      });
      context.compileScript = (scriptString, ctx) => compileScript(scriptString, ctx);
      context.closeCookieModals = async () => closeCookieModals(context.page);
      context.handleCloudflareChallenge = async (options) => {
        return handleCloudflareChallenge(context.page, context.request.url, context.session, options);
      };
    }
    exports.playwrightUtils = {
      injectFile,
      injectJQuery,
      gotoExtended,
      blockRequests,
      enqueueLinksByClickingElements: click_elements_1.enqueueLinksByClickingElements,
      parseWithCheerio,
      infiniteScroll,
      saveSnapshot,
      compileScript,
      closeCookieModals,
      RenderingTypePredictor: rendering_type_prediction_1.RenderingTypePredictor,
      handleCloudflareChallenge
    };
  }
});

// ../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/internals/playwright-crawler.js
var require_playwright_crawler = __commonJS({
  "../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/internals/playwright-crawler.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.PlaywrightCrawler = void 0;
    exports.createPlaywrightRouter = createPlaywrightRouter2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var browser_1 = require_browser2();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var playwright_launcher_1 = require_playwright_launcher();
    var playwright_utils_1 = require_playwright_utils();
    var PlaywrightCrawler2 = class _PlaywrightCrawler extends browser_1.BrowserCrawler {
      /**
       * All `PlaywrightCrawler` parameters are passed via an options object.
       */
      constructor(options = {}, config = browser_1.Configuration.getGlobalConfig()) {
        (0, ow_1.default)(options, "PlaywrightCrawlerOptions", ow_1.default.object.exactShape(_PlaywrightCrawler.optionsShape));
        const { launchContext = {}, headless, ...browserCrawlerOptions } = options;
        const browserPoolOptions = {
          ...options.browserPoolOptions
        };
        if (launchContext.proxyUrl) {
          throw new Error("PlaywrightCrawlerOptions.launchContext.proxyUrl is not allowed in PlaywrightCrawler.Use PlaywrightCrawlerOptions.proxyConfiguration");
        }
        if (browserPoolOptions.browserPlugins) {
          throw new Error("browserPoolOptions.browserPlugins is disallowed. Use launchContext.launcher instead.");
        }
        if (headless != null) {
          launchContext.launchOptions ?? (launchContext.launchOptions = {});
          launchContext.launchOptions.headless = headless;
        }
        const playwrightLauncher = new playwright_launcher_1.PlaywrightLauncher(launchContext, config);
        browserPoolOptions.browserPlugins = [playwrightLauncher.createBrowserPlugin()];
        super({ ...browserCrawlerOptions, launchContext, browserPoolOptions }, config);
        Object.defineProperty(this, "options", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: options
        });
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
      }
      async _runRequestHandler(context) {
        (0, playwright_utils_1.registerUtilsToContext)(context, this.options);
        await super._runRequestHandler(context);
      }
      async _navigationHandler(crawlingContext, gotoOptions) {
        return (0, playwright_utils_1.gotoExtended)(crawlingContext.page, crawlingContext.request, gotoOptions);
      }
    };
    exports.PlaywrightCrawler = PlaywrightCrawler2;
    Object.defineProperty(PlaywrightCrawler2, "optionsShape", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        ...browser_1.BrowserCrawler.optionsShape,
        browserPoolOptions: ow_1.default.optional.object,
        launcher: ow_1.default.optional.object
      }
    });
    function createPlaywrightRouter2(routes) {
      return browser_1.Router.create(routes);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/internals/adaptive-playwright-crawler.js
var require_adaptive_playwright_crawler = __commonJS({
  "../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/internals/adaptive-playwright-crawler.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.AdaptivePlaywrightCrawler = void 0;
    exports.createAdaptivePlaywrightRouter = createAdaptivePlaywrightRouter2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var browser_1 = require_browser2();
    var core_1 = require_core();
    var utils_1 = require_utils9();
    var cheerio_1 = require_lib12();
    var lodash_isequal_1 = tslib_1.__importDefault(require_lodash());
    var timeout_1 = require_cjs();
    var playwright_crawler_1 = require_playwright_crawler();
    var rendering_type_prediction_1 = require_rendering_type_prediction();
    var AdaptivePlaywrightCrawlerStatistics = class extends core_1.Statistics {
      constructor(options = {}) {
        super(options);
        Object.defineProperty(this, "state", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        this.reset();
      }
      reset() {
        super.reset();
        this.state.httpOnlyRequestHandlerRuns = 0;
        this.state.browserRequestHandlerRuns = 0;
        this.state.renderingTypeMispredictions = 0;
      }
      async _maybeLoadStatistics() {
        await super._maybeLoadStatistics();
        const savedState = await this.keyValueStore?.getValue(this.persistStateKey);
        if (!savedState) {
          return;
        }
        this.state.httpOnlyRequestHandlerRuns = savedState.httpOnlyRequestHandlerRuns;
        this.state.browserRequestHandlerRuns = savedState.browserRequestHandlerRuns;
        this.state.renderingTypeMispredictions = savedState.renderingTypeMispredictions;
      }
      trackHttpOnlyRequestHandlerRun() {
        var _a2;
        (_a2 = this.state).httpOnlyRequestHandlerRuns ?? (_a2.httpOnlyRequestHandlerRuns = 0);
        this.state.httpOnlyRequestHandlerRuns += 1;
      }
      trackBrowserRequestHandlerRun() {
        var _a2;
        (_a2 = this.state).browserRequestHandlerRuns ?? (_a2.browserRequestHandlerRuns = 0);
        this.state.browserRequestHandlerRuns += 1;
      }
      trackRenderingTypeMisprediction() {
        var _a2;
        (_a2 = this.state).renderingTypeMispredictions ?? (_a2.renderingTypeMispredictions = 0);
        this.state.renderingTypeMispredictions += 1;
      }
    };
    var proxyLogMethods = [
      "error",
      "exception",
      "softFail",
      "info",
      "debug",
      "perf",
      "warningOnce",
      "deprecated"
    ];
    var AdaptivePlaywrightCrawler2 = class _AdaptivePlaywrightCrawler extends playwright_crawler_1.PlaywrightCrawler {
      constructor(options = {}, config = core_1.Configuration.getGlobalConfig()) {
        const { requestHandler, renderingTypeDetectionRatio = 0.1, renderingTypePredictor, resultChecker, resultComparator, statisticsOptions, preventDirectStorageAccess = true, ...rest } = options;
        super(rest, config);
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "adaptiveRequestHandler", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "renderingTypePredictor", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "resultChecker", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "resultComparator", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "preventDirectStorageAccess", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "inFlightRenderingTypeDetections", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "router", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: core_1.Router.create()
        });
        this.adaptiveRequestHandler = requestHandler ?? this.router;
        this.renderingTypePredictor = renderingTypePredictor ?? new rendering_type_prediction_1.RenderingTypePredictor({ detectionRatio: renderingTypeDetectionRatio });
        this.resultChecker = resultChecker ?? (() => true);
        if (resultComparator !== void 0) {
          this.resultComparator = resultComparator;
        } else if (resultChecker !== void 0) {
          this.resultComparator = (resultA, resultB) => this.resultChecker(resultA) && this.resultChecker(resultB);
        } else {
          this.resultComparator = (resultA, resultB) => {
            return resultA.datasetItems.length === resultB.datasetItems.length && resultA.datasetItems.every((itemA, i5) => {
              const itemB = resultB.datasetItems[i5];
              return (0, lodash_isequal_1.default)(itemA, itemB);
            });
          };
        }
        this.stats = new AdaptivePlaywrightCrawlerStatistics({
          logMessage: `${this.log.getOptions().prefix} request statistics:`,
          config,
          ...statisticsOptions
        });
        this.preventDirectStorageAccess = preventDirectStorageAccess;
      }
      /**
       * Returns the number of rendering type detections currently in progress.
       */
      get inFlightRenderingTypeDetectionCount() {
        return this.inFlightRenderingTypeDetections;
      }
      async _init() {
        await this.renderingTypePredictor.initialize();
        return await super._init();
      }
      async _runRequestHandler(crawlingContext) {
        const renderingTypePrediction = this.renderingTypePredictor.predict(crawlingContext.request);
        const shouldDetectRenderingType = Math.random() < renderingTypePrediction.detectionProbabilityRecommendation;
        if (shouldDetectRenderingType) {
          this.inFlightRenderingTypeDetections++;
        }
        try {
          if (!shouldDetectRenderingType) {
            crawlingContext.log.debug(`Predicted rendering type ${renderingTypePrediction.renderingType} for ${crawlingContext.request.url}`);
          }
          if (renderingTypePrediction.renderingType === "static" && !shouldDetectRenderingType) {
            crawlingContext.log.debug(`Running HTTP-only request handler for ${crawlingContext.request.url}`);
            this.stats.trackHttpOnlyRequestHandlerRun();
            const plainHTTPRun = await this.runRequestHandlerWithPlainHTTP(crawlingContext);
            if (plainHTTPRun.ok && this.resultChecker(plainHTTPRun.result)) {
              crawlingContext.log.debug(`HTTP-only request handler succeeded for ${crawlingContext.request.url}`);
              plainHTTPRun.logs?.forEach(([log2, method, ...args]) => log2[method](...args));
              await this.commitResult(crawlingContext, plainHTTPRun.result);
              return;
            }
            if (!plainHTTPRun.ok) {
              crawlingContext.log.exception(plainHTTPRun.error, `HTTP-only request handler failed for ${crawlingContext.request.url}`);
            } else {
              crawlingContext.log.warning(`HTTP-only request handler returned a suspicious result for ${crawlingContext.request.url}`);
              this.stats.trackRenderingTypeMisprediction();
            }
          }
          crawlingContext.log.debug(`Running browser request handler for ${crawlingContext.request.url}`);
          this.stats.trackBrowserRequestHandlerRun();
          const { result: browserRun, initialStateCopy } = await this.runRequestHandlerInBrowser(crawlingContext);
          if (!browserRun.ok) {
            throw browserRun.error;
          }
          await this.commitResult(crawlingContext, browserRun.result);
          if (shouldDetectRenderingType) {
            crawlingContext.log.debug(`Detecting rendering type for ${crawlingContext.request.url}`);
            const plainHTTPRun = await this.runRequestHandlerWithPlainHTTP(crawlingContext, initialStateCopy);
            const detectionResult = (() => {
              if (!plainHTTPRun.ok) {
                return "clientOnly";
              }
              const comparisonResult = this.resultComparator(plainHTTPRun.result, browserRun.result);
              if (comparisonResult === true || comparisonResult === "equal") {
                return "static";
              }
              if (comparisonResult === false || comparisonResult === "different") {
                return "clientOnly";
              }
              return void 0;
            })();
            crawlingContext.log.debug(`Detected rendering type ${detectionResult} for ${crawlingContext.request.url}`);
            if (detectionResult !== void 0) {
              this.renderingTypePredictor.storeResult(crawlingContext.request, detectionResult);
            }
          }
        } finally {
          if (shouldDetectRenderingType) {
            this.inFlightRenderingTypeDetections--;
          }
        }
      }
      async commitResult(crawlingContext, { calls, keyValueStoreChanges }) {
        await Promise.all([
          ...calls.pushData.map(async (params) => crawlingContext.pushData(...params)),
          ...calls.addRequests.map(async (params) => crawlingContext.addRequests(...params)),
          ...Object.entries(keyValueStoreChanges).map(async ([storeIdOrName, changes]) => {
            const store = await crawlingContext.getKeyValueStore(storeIdOrName);
            await Promise.all(Object.entries(changes).map(async ([key, { changedValue, options }]) => store.setValue(key, changedValue, options)));
          })
        ]);
      }
      allowStorageAccess(func) {
        return async (...args) => (0, core_1.withCheckedStorageAccess)(() => {
        }, async () => func(...args));
      }
      async runRequestHandlerInBrowser(crawlingContext) {
        const result = new core_1.RequestHandlerResult(this.config, _AdaptivePlaywrightCrawler.CRAWLEE_STATE_KEY);
        let initialStateCopy;
        try {
          await super._runRequestHandler.call(new Proxy(this, {
            get: (target, propertyName, receiver) => {
              if (propertyName === "userProvidedRequestHandler") {
                return async (playwrightContext) => (0, core_1.withCheckedStorageAccess)(() => {
                  if (this.preventDirectStorageAccess) {
                    throw new Error("Directly accessing storage in a request handler is not allowed in AdaptivePlaywrightCrawler");
                  }
                }, () => this.adaptiveRequestHandler({
                  id: crawlingContext.id,
                  session: crawlingContext.session,
                  proxyInfo: crawlingContext.proxyInfo,
                  request: crawlingContext.request,
                  response: {
                    url: crawlingContext.response.url(),
                    statusCode: crawlingContext.response.status(),
                    headers: crawlingContext.response.headers(),
                    trailers: {},
                    complete: true,
                    redirectUrls: []
                  },
                  log: crawlingContext.log,
                  page: crawlingContext.page,
                  querySelector: async (selector, timeoutMs = 5e3) => {
                    const locator = playwrightContext.page.locator(selector).first();
                    await locator.waitFor({ timeout: timeoutMs, state: "attached" });
                    const $ = await playwrightContext.parseWithCheerio();
                    return $(selector);
                  },
                  async waitForSelector(selector, timeoutMs = 5e3) {
                    const locator = playwrightContext.page.locator(selector).first();
                    await locator.waitFor({ timeout: timeoutMs, state: "attached" });
                  },
                  async parseWithCheerio(selector, timeoutMs = 5e3) {
                    if (selector) {
                      const locator = playwrightContext.page.locator(selector).first();
                      await locator.waitFor({ timeout: timeoutMs, state: "attached" });
                    }
                    return playwrightContext.parseWithCheerio();
                  },
                  enqueueLinks: async (options = {}, timeoutMs = 5e3) => {
                    let urls;
                    if (options.urls === void 0) {
                      const selector = options.selector ?? "a";
                      const locator = playwrightContext.page.locator(selector).first();
                      await locator.waitFor({ timeout: timeoutMs, state: "attached" });
                      urls = await (0, browser_1.extractUrlsFromPage)(playwrightContext.page, selector, options.baseUrl ?? playwrightContext.request.loadedUrl ?? playwrightContext.request.url);
                    } else {
                      urls = options.urls;
                    }
                    return await this.enqueueLinks({ ...options, urls }, crawlingContext.request, result);
                  },
                  addRequests: result.addRequests,
                  pushData: result.pushData,
                  useState: this.allowStorageAccess(async (defaultValue) => {
                    const state = await result.useState(defaultValue);
                    if (initialStateCopy === void 0) {
                      initialStateCopy = JSON.parse(JSON.stringify(state));
                    }
                    return state;
                  }),
                  getKeyValueStore: this.allowStorageAccess(result.getKeyValueStore)
                }));
              }
              return Reflect.get(target, propertyName, receiver);
            }
          }), crawlingContext);
          return { result: { result, ok: true }, initialStateCopy };
        } catch (error) {
          return { result: { error, ok: false }, initialStateCopy };
        }
      }
      async runRequestHandlerWithPlainHTTP(crawlingContext, oldStateCopy) {
        const result = new core_1.RequestHandlerResult(this.config, _AdaptivePlaywrightCrawler.CRAWLEE_STATE_KEY);
        const logs = [];
        const pageGotoOptions = { timeout: this.navigationTimeoutMillis };
        try {
          await (0, core_1.withCheckedStorageAccess)(() => {
            if (this.preventDirectStorageAccess) {
              throw new Error("Directly accessing storage in a request handler is not allowed in AdaptivePlaywrightCrawler");
            }
          }, async () => (0, timeout_1.addTimeoutToPromise)(async () => {
            const hookContext = {
              id: crawlingContext.id,
              session: crawlingContext.session,
              proxyInfo: crawlingContext.proxyInfo,
              request: crawlingContext.request,
              log: this.createLogProxy(crawlingContext.log, logs)
            };
            await this._executeHooks(
              this.preNavigationHooks,
              {
                ...hookContext,
                get page() {
                  throw new Error("Page object was used in HTTP-only pre-navigation hook");
                }
              },
              // This is safe because `executeHooks` just passes the context to the hooks which accept the partial context
              pageGotoOptions
            );
            const response = await crawlingContext.sendRequest({});
            const loadedUrl = response.url;
            crawlingContext.request.loadedUrl = loadedUrl;
            if (!this.requestMatchesEnqueueStrategy(crawlingContext.request)) {
              const request = crawlingContext.request;
              this.log.debug(
                // eslint-disable-next-line dot-notation
                `Skipping request ${request.id} (starting url: ${request.url} -> loaded url: ${request.loadedUrl}) because it does not match the enqueue strategy (${request["enqueueStrategy"]}).`
              );
              request.noRetry = true;
              request.state = core_1.RequestState.SKIPPED;
              await this.handleSkippedRequest({ url: request.url, reason: "redirect" });
              return;
            }
            const $ = (0, cheerio_1.load)(response.body);
            await this.adaptiveRequestHandler({
              ...hookContext,
              request: crawlingContext.request,
              response,
              get page() {
                throw new Error("Page object was used in HTTP-only request handler");
              },
              async querySelector(selector, _timeoutMs) {
                return $(selector);
              },
              async waitForSelector(selector, _timeoutMs) {
                if ($(selector).get().length === 0) {
                  throw new Error(`Selector '${selector}' not found.`);
                }
              },
              async parseWithCheerio(selector, _timeoutMs) {
                if (selector && $(selector).get().length === 0) {
                  throw new Error(`Selector '${selector}' not found.`);
                }
                return $;
              },
              enqueueLinks: async (options = {}) => {
                const urls = options.urls ?? (0, utils_1.extractUrlsFromCheerio)($, options.selector, options.baseUrl ?? loadedUrl);
                return this.enqueueLinks({ ...options, urls }, crawlingContext.request, result);
              },
              addRequests: result.addRequests,
              pushData: result.pushData,
              useState: async (defaultValue) => {
                if (oldStateCopy !== void 0) {
                  return oldStateCopy ?? defaultValue;
                }
                return this.allowStorageAccess(result.useState)(defaultValue);
              },
              getKeyValueStore: this.allowStorageAccess(result.getKeyValueStore)
            });
            await this._executeHooks(this.postNavigationHooks, crawlingContext, pageGotoOptions);
          }, this.requestHandlerTimeoutInnerMillis, "Request handler timed out"));
          return { result, logs, ok: true };
        } catch (error) {
          return { error, logs, ok: false };
        }
      }
      async enqueueLinks(options, request, result) {
        const baseUrl = (0, core_1.resolveBaseUrlForEnqueueLinksFiltering)({
          enqueueStrategy: options?.strategy,
          finalRequestUrl: request.loadedUrl,
          originalRequestUrl: request.url,
          userProvidedBaseUrl: options?.baseUrl
        });
        const addRequestsBatched = async (requests) => {
          await result.addRequests(requests);
          return {
            addedRequests: requests.map(({ uniqueKey, id }) => ({
              uniqueKey,
              requestId: id ?? "",
              wasAlreadyPresent: false,
              wasAlreadyHandled: false
            })),
            waitForAllRequestsToBeAdded: Promise.resolve([])
          };
        };
        const mockRequestQueue = { addRequestsBatched };
        return await this.enqueueLinksWithCrawlDepth({ ...options, baseUrl }, request, mockRequestQueue);
      }
      createLogProxy(log2, logs) {
        return new Proxy(log2, {
          get(target, propertyName, receiver) {
            if (proxyLogMethods.includes(propertyName)) {
              return (...args) => {
                logs.push([target, propertyName, ...args]);
              };
            }
            return Reflect.get(target, propertyName, receiver);
          }
        });
      }
    };
    exports.AdaptivePlaywrightCrawler = AdaptivePlaywrightCrawler2;
    function createAdaptivePlaywrightRouter2(routes) {
      return core_1.Router.create(routes);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/index.js
var require_playwright = __commonJS({
  "../../node_modules/.pnpm/@crawlee+playwright@3.16.0/node_modules/@crawlee/playwright/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.playwrightClickElements = exports.playwrightUtils = exports.RenderingTypePredictor = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_browser2(), exports);
    tslib_1.__exportStar(require_playwright_crawler(), exports);
    tslib_1.__exportStar(require_playwright_launcher(), exports);
    tslib_1.__exportStar(require_adaptive_playwright_crawler(), exports);
    var rendering_type_prediction_1 = require_rendering_type_prediction();
    Object.defineProperty(exports, "RenderingTypePredictor", { enumerable: true, get: function() {
      return rendering_type_prediction_1.RenderingTypePredictor;
    } });
    exports.playwrightUtils = tslib_1.__importStar(require_playwright_utils());
    exports.playwrightClickElements = tslib_1.__importStar(require_click_elements());
  }
});

// ../../node_modules/.pnpm/@crawlee+puppeteer@3.16.0/node_modules/@crawlee/puppeteer/internals/puppeteer-launcher.js
var require_puppeteer_launcher = __commonJS({
  "../../node_modules/.pnpm/@crawlee+puppeteer@3.16.0/node_modules/@crawlee/puppeteer/internals/puppeteer-launcher.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.PuppeteerLauncher = void 0;
    exports.launchPuppeteer = launchPuppeteer2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var browser_1 = require_browser2();
    var browser_pool_1 = require_browser_pool2();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var PuppeteerLauncher2 = class _PuppeteerLauncher extends browser_1.BrowserLauncher {
      /**
       * All `PuppeteerLauncher` parameters are passed via an launchContext object.
       */
      constructor(launchContext = {}, config = browser_1.Configuration.getGlobalConfig()) {
        (0, ow_1.default)(launchContext, "PuppeteerLauncher", ow_1.default.object.exactShape(_PuppeteerLauncher.optionsShape));
        const { launcher = browser_1.BrowserLauncher.requireLauncherOrThrow("puppeteer", "apify/actor-node-puppeteer-chrome"), ...browserLauncherOptions } = launchContext;
        super({
          ...browserLauncherOptions,
          launcher
        }, config);
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        this.Plugin = browser_pool_1.PuppeteerPlugin;
      }
      _getDefaultHeadlessOption() {
        const headless = super._getDefaultHeadlessOption();
        return headless ? "new" : headless;
      }
    };
    exports.PuppeteerLauncher = PuppeteerLauncher2;
    Object.defineProperty(PuppeteerLauncher2, "optionsShape", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        ...browser_1.BrowserLauncher.optionsShape,
        launcher: ow_1.default.optional.object
      }
    });
    async function launchPuppeteer2(launchContext, config = browser_1.Configuration.getGlobalConfig()) {
      const puppeteerLauncher = new PuppeteerLauncher2(launchContext, config);
      return puppeteerLauncher.launch();
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+puppeteer@3.16.0/node_modules/@crawlee/puppeteer/internals/utils/puppeteer_request_interception.js
var require_puppeteer_request_interception = __commonJS({
  "../../node_modules/.pnpm/@crawlee+puppeteer@3.16.0/node_modules/@crawlee/puppeteer/internals/utils/puppeteer_request_interception.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.addInterceptRequestHandler = addInterceptRequestHandler;
    exports.removeInterceptRequestHandler = removeInterceptRequestHandler;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_events_1 = __require("node:events");
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var pageInterceptRequestHandlersMap = /* @__PURE__ */ new WeakMap();
    var pageInterceptRequestMasterHandlerMap = /* @__PURE__ */ new WeakMap();
    var pageInterceptedRequestsMap = /* @__PURE__ */ new WeakMap();
    var ObservableSet = class extends node_events_1.EventEmitter {
      constructor() {
        super(...arguments);
        Object.defineProperty(this, "set", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
      }
      add(value2) {
        this.set.add(value2);
        this.emit("add", value2);
        return this.set;
      }
      delete(value2) {
        const success = this.set.delete(value2);
        this.emit("delete", value2);
        return success;
      }
      get size() {
        return this.set.size;
      }
    };
    function browserifyHeaders(headers) {
      const finalHeaders = {};
      for (let [key, value2] of Object.entries(headers)) {
        key = key.toLowerCase().split("-").map((str) => str.charAt(0).toUpperCase() + str.slice(1)).join("-");
        finalHeaders[key] = value2;
      }
      return finalHeaders;
    }
    async function handleRequest(request, interceptRequestHandlers) {
      if (!interceptRequestHandlers?.length)
        return void 0;
      let wasAborted = false;
      let wasResponded = false;
      let wasContinued = false;
      const accumulatedOverrides = {
        headers: browserifyHeaders(request.headers())
      };
      const originalContinue = request.continue.bind(request);
      request.continue = async (overrides = {}) => {
        wasContinued = true;
        const headers = browserifyHeaders({ ...accumulatedOverrides.headers, ...overrides.headers });
        Object.assign(accumulatedOverrides, overrides, { headers });
      };
      const { abort, respond } = request;
      request.abort = async (...args) => {
        wasAborted = true;
        return abort.call(request, ...args);
      };
      request.respond = async (...args) => {
        wasResponded = true;
        return respond.call(request, ...args);
      };
      for (const handler of interceptRequestHandlers) {
        wasContinued = false;
        await handler(request);
        if (!wasAborted && !wasResponded && !wasContinued) {
          throw new Error("Intercept request handler must call one of request.continue|respond|abort() methods!");
        }
        if (wasAborted || wasResponded)
          return void 0;
      }
      return originalContinue(accumulatedOverrides);
    }
    async function addInterceptRequestHandler(page, handler) {
      (0, ow_1.default)(page, ow_1.default.object.hasKeys("goto", "evaluate"));
      (0, ow_1.default)(handler, ow_1.default.function);
      if (!pageInterceptRequestHandlersMap.has(page)) {
        pageInterceptRequestHandlersMap.set(page, []);
      }
      if (!pageInterceptedRequestsMap.has(page)) {
        pageInterceptedRequestsMap.set(page, new ObservableSet());
      }
      const handlersArray = pageInterceptRequestHandlersMap.get(page);
      handlersArray.push(handler);
      if (handlersArray.length === 1) {
        await page.setRequestInterception(true);
        const masterHandler = async (request) => {
          const interceptedRequests = pageInterceptedRequestsMap.get(page);
          interceptedRequests.add(request);
          const interceptHandlers = pageInterceptRequestHandlersMap.get(page);
          try {
            await handleRequest(request, interceptHandlers);
          } finally {
            interceptedRequests.delete(request);
          }
        };
        pageInterceptRequestMasterHandlerMap.set(page, masterHandler);
        page.on("request", masterHandler);
      }
    }
    async function removeInterceptRequestHandler(page, handler) {
      (0, ow_1.default)(page, ow_1.default.object.hasKeys("goto", "evaluate"));
      (0, ow_1.default)(handler, ow_1.default.function);
      const handlersArray = pageInterceptRequestHandlersMap.get(page).filter((item) => item !== handler);
      pageInterceptRequestHandlersMap.set(page, handlersArray);
      if (handlersArray.length === 0) {
        const interceptedRequestsInProgress = pageInterceptedRequestsMap.get(page);
        if (interceptedRequestsInProgress.size === 0) {
          await disableRequestInterception(page);
        } else {
          const onDelete = async () => {
            if (interceptedRequestsInProgress.size === 0) {
              try {
                await disableRequestInterception(page);
                interceptedRequestsInProgress.removeListener("delete", onDelete);
              } catch (error) {
                log_1.default.debug("Error while disabling request interception", { error });
              }
            }
          };
          interceptedRequestsInProgress.on("delete", onDelete);
        }
      }
    }
    async function disableRequestInterception(page) {
      await page.setRequestInterception(false);
      const requestHandler = pageInterceptRequestMasterHandlerMap.get(page);
      page.off("request", requestHandler);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+puppeteer@3.16.0/node_modules/@crawlee/puppeteer/internals/enqueue-links/click-elements.js
var require_click_elements2 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+puppeteer@3.16.0/node_modules/@crawlee/puppeteer/internals/enqueue-links/click-elements.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.enqueueLinksByClickingElements = enqueueLinksByClickingElements;
    exports.clickElementsAndInterceptNavigationRequests = clickElementsAndInterceptNavigationRequests;
    exports.isTargetRelevant = isTargetRelevant;
    exports.clickElements = clickElements;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_url_1 = __require("node:url");
    var browser_1 = require_browser2();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var puppeteer_request_interception_1 = require_puppeteer_request_interception();
    var STARTING_Z_INDEX = 21474e5;
    var log2 = log_1.default.child({ prefix: "Puppeteer Click Elements" });
    async function enqueueLinksByClickingElements(options) {
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        page: ow_1.default.object.hasKeys("goto", "evaluate"),
        requestQueue: ow_1.default.object.hasKeys("fetchNextRequest", "addRequest"),
        selector: ow_1.default.string,
        userData: ow_1.default.optional.object,
        clickOptions: ow_1.default.optional.object.hasKeys("clickCount", "delay"),
        pseudoUrls: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys("purl"))),
        globs: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys("glob"))),
        regexps: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.regExp, ow_1.default.object.hasKeys("regexp"))),
        exclude: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.regExp, ow_1.default.object.hasKeys("glob"), ow_1.default.object.hasKeys("regexp"))),
        transformRequestFunction: ow_1.default.optional.function,
        waitForPageIdleSecs: ow_1.default.optional.number,
        maxWaitForPageIdleSecs: ow_1.default.optional.number,
        label: ow_1.default.optional.string,
        forefront: ow_1.default.optional.boolean,
        skipNavigation: ow_1.default.optional.boolean
      }));
      const { page, requestQueue, selector, clickOptions, pseudoUrls, globs, regexps, transformRequestFunction, waitForPageIdleSecs = 1, maxWaitForPageIdleSecs = 5, forefront, exclude } = options;
      const waitForPageIdleMillis = waitForPageIdleSecs * 1e3;
      const maxWaitForPageIdleMillis = maxWaitForPageIdleSecs * 1e3;
      const urlExcludePatternObjects = [];
      const urlPatternObjects = [];
      if (exclude?.length) {
        for (const excl of exclude) {
          if (typeof excl === "string" || "glob" in excl) {
            urlExcludePatternObjects.push(...(0, browser_1.constructGlobObjectsFromGlobs)([excl]));
          } else if (excl instanceof RegExp || "regexp" in excl) {
            urlExcludePatternObjects.push(...(0, browser_1.constructRegExpObjectsFromRegExps)([excl]));
          }
        }
      }
      if (pseudoUrls?.length) {
        log2.deprecated("`pseudoUrls` option is deprecated, use `globs` or `regexps` instead");
        urlPatternObjects.push(...(0, browser_1.constructRegExpObjectsFromPseudoUrls)(pseudoUrls));
      }
      if (globs?.length) {
        urlPatternObjects.push(...(0, browser_1.constructGlobObjectsFromGlobs)(globs));
      }
      if (regexps?.length) {
        urlPatternObjects.push(...(0, browser_1.constructRegExpObjectsFromRegExps)(regexps));
      }
      const interceptedRequests = await clickElementsAndInterceptNavigationRequests({
        page,
        selector,
        waitForPageIdleMillis,
        maxWaitForPageIdleMillis,
        clickOptions
      });
      let requestOptions = (0, browser_1.createRequestOptions)(interceptedRequests, options);
      if (transformRequestFunction) {
        requestOptions = requestOptions.map(transformRequestFunction).filter((r4) => !!r4);
      }
      const requests = (0, browser_1.createRequests)(requestOptions, urlPatternObjects, urlExcludePatternObjects);
      const { addedRequests } = await requestQueue.addRequestsBatched(requests, { forefront });
      return { processedRequests: addedRequests, unprocessedRequests: [] };
    }
    async function clickElementsAndInterceptNavigationRequests(options) {
      const { page, selector, waitForPageIdleMillis, maxWaitForPageIdleMillis, clickOptions } = options;
      const uniqueRequests = /* @__PURE__ */ new Set();
      const browser = page.browser();
      const onInterceptedRequest = createInterceptRequestHandler(page, uniqueRequests);
      const onTargetCreated = createTargetCreatedHandler(page, uniqueRequests);
      const onFrameNavigated = createFrameNavigatedHandler(page, uniqueRequests);
      await (0, puppeteer_request_interception_1.addInterceptRequestHandler)(page, onInterceptedRequest);
      browser.on("targetcreated", onTargetCreated);
      page.on("framenavigated", onFrameNavigated);
      await preventHistoryNavigation(page);
      await clickElements(page, selector, clickOptions);
      await waitForPageIdle({ page, waitForPageIdleMillis, maxWaitForPageIdleMillis });
      await restoreHistoryNavigationAndSaveCapturedUrls(page, uniqueRequests);
      browser.off("targetcreated", onTargetCreated);
      page.off("framenavigated", onFrameNavigated);
      await (0, puppeteer_request_interception_1.removeInterceptRequestHandler)(page, onInterceptedRequest);
      const serializedRequests = Array.from(uniqueRequests);
      return serializedRequests.map((r4) => JSON.parse(r4));
    }
    function createInterceptRequestHandler(page, requests) {
      return async function onInterceptedRequest(req) {
        if (!isTopFrameNavigationRequest(page, req))
          return req.continue();
        const url3 = req.url();
        requests.add(JSON.stringify({
          url: url3,
          headers: req.headers(),
          method: req.method(),
          payload: req.postData()
        }));
        if (req.redirectChain().length) {
          await req.respond({ body: "" });
        } else {
          await req.abort("aborted");
        }
        return void 0;
      };
    }
    function isTopFrameNavigationRequest(page, req) {
      return req.isNavigationRequest() && req.frame() === page.mainFrame();
    }
    function createTargetCreatedHandler(page, requests) {
      return async function onTargetCreated(target) {
        if (!isTargetRelevant(page, target))
          return;
        const url3 = target.url();
        requests.add(JSON.stringify({ url: url3 }));
        try {
          const createdPage = await target.page();
          await createdPage.close();
        } catch (err2) {
          log2.debug("enqueueLinksByClickingElements: Could not close spawned page.", { error: err2.stack });
        }
      };
    }
    function isTargetRelevant(page, target) {
      return target.type() === "page" && page.target() === target.opener();
    }
    function createFrameNavigatedHandler(page, requests) {
      return function onFrameNavigated(frame) {
        if (frame !== page.mainFrame())
          return;
        const url3 = frame.url();
        requests.add(JSON.stringify({ url: url3 }));
      };
    }
    async function preventHistoryNavigation(page) {
      return page.evaluate(() => {
        window.__originalHistory__ = window.history;
        delete window.history;
        window.history = {
          stateHistory: [],
          length: 0,
          state: {},
          go() {
          },
          back() {
          },
          forward() {
          },
          pushState(...args) {
            this.stateHistory.push(args);
          },
          replaceState(...args) {
            this.stateHistory.push(args);
          }
        };
      });
    }
    async function clickElements(page, selector, clickOptions) {
      const elementHandles = await page.$$(selector);
      log2.debug(`enqueueLinksByClickingElements: There are ${elementHandles.length} elements to click.`);
      let clickedElementsCount = 0;
      let zIndex = STARTING_Z_INDEX;
      let shouldLogWarning = true;
      for (const handle of elementHandles) {
        try {
          await page.evaluate(updateElementCssToEnableMouseClick, handle, zIndex++);
          await handle.click(clickOptions);
          clickedElementsCount++;
        } catch (err2) {
          const e4 = err2;
          if (shouldLogWarning && e4.stack.includes("is detached from document")) {
            log2.warning(`An element with selector ${selector} that you're trying to click has been removed from the page. This was probably caused by an earlier click which triggered some JavaScript on the page that caused it to change. If you're trying to enqueue pagination links, we suggest using the "next" button, if available and going one by one.`);
            shouldLogWarning = false;
          }
          log2.debug("enqueueLinksByClickingElements: Click failed.", { stack: e4.stack });
        }
      }
      log2.debug(`enqueueLinksByClickingElements: Successfully clicked ${clickedElementsCount} elements out of ${elementHandles.length}`);
    }
    function updateElementCssToEnableMouseClick(el, zIndex) {
      const casted = el;
      casted.style.visibility = "visible";
      casted.style.display = "block";
      casted.style.position = "fixed";
      casted.style.zIndex = String(zIndex);
      casted.style.left = "0";
      casted.style.top = "0";
      const boundingRect = casted.getBoundingClientRect();
      if (!boundingRect.height)
        casted.style.height = "10px";
      if (!boundingRect.width)
        casted.style.width = "10px";
    }
    async function waitForPageIdle({ page, waitForPageIdleMillis, maxWaitForPageIdleMillis }) {
      return new Promise((resolve4) => {
        let timeout;
        let maxTimeout;
        const context = page.browserContext();
        function newTabTracker(target) {
          if (isTargetRelevant(page, target))
            activityHandler();
        }
        function activityHandler() {
          clearTimeout(timeout);
          timeout = setTimeout(() => {
            clearTimeout(maxTimeout);
            finish();
          }, waitForPageIdleMillis);
        }
        function maxTimeoutHandler() {
          log2.debug(`enqueueLinksByClickingElements: Page still showed activity after ${maxWaitForPageIdleMillis}ms. This is probably due to the website itself dispatching requests, but some links may also have been missed.`);
          finish();
        }
        function finish() {
          page.off("request", activityHandler);
          page.off("framenavigated", activityHandler);
          context.off("targetcreated", newTabTracker);
          resolve4();
        }
        maxTimeout = setTimeout(maxTimeoutHandler, maxWaitForPageIdleMillis);
        activityHandler();
        page.on("request", activityHandler);
        page.on("framenavigated", activityHandler);
        context.on("targetcreated", newTabTracker);
      });
    }
    async function restoreHistoryNavigationAndSaveCapturedUrls(page, requests) {
      const state = await page.evaluate(() => {
        const { stateHistory } = window.history;
        window.history = window.__originalHistory__;
        return stateHistory;
      });
      state.forEach((args) => {
        try {
          const stateUrl = args[args.length - 1];
          const url3 = new node_url_1.URL(stateUrl, page.url()).href;
          requests.add(JSON.stringify({ url: url3 }));
        } catch (err2) {
          log2.debug("enqueueLinksByClickingElements: Failed to ", { error: err2.stack });
        }
      });
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+puppeteer@3.16.0/node_modules/@crawlee/puppeteer/internals/utils/puppeteer_utils.js
var require_puppeteer_utils = __commonJS({
  "../../node_modules/.pnpm/@crawlee+puppeteer@3.16.0/node_modules/@crawlee/puppeteer/internals/utils/puppeteer_utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.puppeteerUtils = exports.removeInterceptRequestHandler = exports.addInterceptRequestHandler = exports.enqueueLinksByClickingElements = exports.blockResources = void 0;
    exports.injectFile = injectFile;
    exports.injectJQuery = injectJQuery;
    exports.parseWithCheerio = parseWithCheerio;
    exports.blockRequests = blockRequests;
    exports.sendCDPCommand = sendCDPCommand;
    exports.cacheResponses = cacheResponses;
    exports.compileScript = compileScript;
    exports.gotoExtended = gotoExtended;
    exports.infiniteScroll = infiniteScroll;
    exports.saveSnapshot = saveSnapshot;
    exports.closeCookieModals = closeCookieModals;
    exports.registerUtilsToContext = registerUtilsToContext;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var promises_1 = __require("node:fs/promises");
    var node_vm_1 = tslib_1.__importDefault(__require("node:vm"));
    var browser_1 = require_browser2();
    var utils_1 = require_utils9();
    var cheerio = tslib_1.__importStar(require_lib12());
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var datastructures_1 = require_cjs9();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var click_elements_1 = require_click_elements2();
    Object.defineProperty(exports, "enqueueLinksByClickingElements", { enumerable: true, get: function() {
      return click_elements_1.enqueueLinksByClickingElements;
    } });
    var puppeteer_request_interception_1 = require_puppeteer_request_interception();
    Object.defineProperty(exports, "addInterceptRequestHandler", { enumerable: true, get: function() {
      return puppeteer_request_interception_1.addInterceptRequestHandler;
    } });
    Object.defineProperty(exports, "removeInterceptRequestHandler", { enumerable: true, get: function() {
      return puppeteer_request_interception_1.removeInterceptRequestHandler;
    } });
    var jqueryPath = __require.resolve("jquery");
    var MAX_INJECT_FILE_CACHE_SIZE = 10;
    var DEFAULT_BLOCK_REQUEST_URL_PATTERNS = [".css", ".jpg", ".jpeg", ".png", ".svg", ".gif", ".woff", ".pdf", ".zip"];
    var log2 = log_1.default.child({ prefix: "Puppeteer Utils" });
    var injectedFilesCache = new datastructures_1.LruCache({ maxLength: MAX_INJECT_FILE_CACHE_SIZE });
    async function injectFile(page, filePath, options = {}) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      (0, ow_1.default)(filePath, ow_1.default.string);
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        surviveNavigations: ow_1.default.optional.boolean
      }));
      let contents = injectedFilesCache.get(filePath);
      if (!contents) {
        contents = await (0, promises_1.readFile)(filePath, "utf8");
        injectedFilesCache.add(filePath, contents);
      }
      const evalP = page.evaluate(contents);
      if (options.surviveNavigations) {
        page.on("framenavigated", async () => page.evaluate(contents).catch((error) => log2.warning("An error occurred during the script injection!", { error })));
      }
      return evalP;
    }
    async function injectJQuery(page, options) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      return injectFile(page, jqueryPath, { surviveNavigations: options?.surviveNavigations ?? true });
    }
    async function parseWithCheerio(page, ignoreShadowRoots = false, ignoreIframes = false) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      if (page.frames().length > 1 && !ignoreIframes) {
        const frames = await page.$$("iframe");
        await Promise.all(frames.map(async (frame) => {
          try {
            const iframe = await frame.contentFrame();
            if (iframe) {
              const getIframeHTML = async () => {
                try {
                  return iframe.$eval("body", (el) => el.innerHTML);
                } catch {
                  return iframe.content();
                }
              };
              const contents = await getIframeHTML();
              await frame.evaluate((f4, c6) => {
                const replacementNode = document.createElement("div");
                replacementNode.innerHTML = c6;
                replacementNode.className = "crawlee-iframe-replacement";
                f4.replaceWith(replacementNode);
              }, contents);
            }
          } catch (error) {
            log2.warning(`Failed to extract iframe content: ${error}`);
          }
        }));
      }
      const html = ignoreShadowRoots ? null : await page.evaluate(`(${utils_1.expandShadowRoots.toString()})(document)`);
      const pageContent = html || await page.content();
      return cheerio.load(pageContent);
    }
    async function blockRequests(page, options = {}) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        urlPatterns: ow_1.default.optional.array.ofType(ow_1.default.string),
        extraUrlPatterns: ow_1.default.optional.array.ofType(ow_1.default.string)
      }));
      const { urlPatterns = DEFAULT_BLOCK_REQUEST_URL_PATTERNS, extraUrlPatterns = [] } = options;
      const patternsToBlock = [...urlPatterns, ...extraUrlPatterns];
      await sendCDPCommand(page, "Network.setBlockedURLs", { urls: patternsToBlock });
    }
    async function sendCDPCommand(page, command, ...args) {
      if (Reflect.has(page, "_client")) {
        const client = Reflect.get(page, "_client");
        if (typeof client === "function") {
          return client.call(page).send(command, ...args);
        }
        return client.send(command, ...args);
      }
      const jsonPath = __require.resolve("puppeteer/package.json");
      const parsed = JSON.parse(await (0, promises_1.readFile)(jsonPath, "utf-8"));
      throw new Error(`Cannot detect CDP client for Puppeteer ${parsed.version}. You should report this to Crawlee, mentioning the puppeteer version you are using.`);
    }
    var blockResources = async (page, resourceTypes = ["stylesheet", "font", "image", "media"]) => {
      log2.deprecated("utils.puppeteer.blockResources() has a high impact on performance in recent versions of Puppeteer. Until this resolves, please use utils.puppeteer.blockRequests()");
      await (0, puppeteer_request_interception_1.addInterceptRequestHandler)(page, async (request) => {
        const type = request.resourceType();
        if (resourceTypes.includes(type))
          await request.abort();
        else
          await request.continue();
      });
    };
    exports.blockResources = blockResources;
    async function cacheResponses(page, cache2, responseUrlRules) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      (0, ow_1.default)(cache2, ow_1.default.object);
      (0, ow_1.default)(responseUrlRules, ow_1.default.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.regExp)));
      log2.deprecated("utils.puppeteer.cacheResponses() has a high impact on performance in recent versions of Puppeteer so it's use is discouraged until this issue resolves.");
      await (0, puppeteer_request_interception_1.addInterceptRequestHandler)(page, async (request) => {
        const url3 = request.url();
        if (cache2[url3]) {
          await request.respond(cache2[url3]);
          return;
        }
        await request.continue();
      });
      page.on("response", async (response) => {
        const url3 = response.url();
        if (cache2[url3])
          return;
        const shouldCache = responseUrlRules.some((rule) => {
          if (typeof rule === "string")
            return url3.includes(rule);
          if (rule instanceof RegExp)
            return rule.test(url3);
          return false;
        });
        try {
          if (shouldCache) {
            const buffer = await response.buffer();
            cache2[url3] = {
              status: response.status(),
              headers: response.headers(),
              body: buffer
            };
          }
        } catch {
        }
      });
    }
    function compileScript(scriptString, context = /* @__PURE__ */ Object.create(null)) {
      const funcString = `async ({ page, request }) => {${scriptString}}`;
      let func;
      try {
        func = node_vm_1.default.runInNewContext(funcString, context);
      } catch (err2) {
        log2.exception(err2, "Cannot compile script!");
        throw err2;
      }
      if (typeof func !== "function")
        throw new Error("Compilation result is not a function!");
      return func;
    }
    async function gotoExtended(page, request, gotoOptions = {}) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      (0, ow_1.default)(request, ow_1.default.object.partialShape({
        url: ow_1.default.string.url,
        method: ow_1.default.optional.string,
        headers: ow_1.default.optional.object,
        payload: ow_1.default.optional.any(ow_1.default.string, ow_1.default.uint8Array)
      }));
      (0, ow_1.default)(gotoOptions, ow_1.default.object);
      gotoOptions = { ...gotoOptions };
      if (gotoOptions.waitUntil === "networkidle") {
        gotoOptions.waitUntil = "networkidle0";
      }
      const { url: url3, method, headers, payload } = request;
      const isEmpty2 = (o5) => !o5 || Object.keys(o5).length === 0;
      if (method !== "GET" || payload || !isEmpty2(headers)) {
        log2.deprecated("Using other request methods than GET, rewriting headers and adding payloads has a high impact on performance in recent versions of Puppeteer. Use only when necessary.");
        let wasCalled = false;
        const interceptRequestHandler = async (interceptedRequest) => {
          if (wasCalled) {
            return interceptedRequest.continue();
          }
          wasCalled = true;
          const overrides = {};
          if (method !== "GET")
            overrides.method = method;
          if (payload)
            overrides.postData = payload;
          if (!isEmpty2(headers))
            overrides.headers = headers;
          await (0, puppeteer_request_interception_1.removeInterceptRequestHandler)(page, interceptRequestHandler);
          await interceptedRequest.continue(overrides);
          return void 0;
        };
        await (0, puppeteer_request_interception_1.addInterceptRequestHandler)(page, interceptRequestHandler);
      }
      return page.goto(url3, gotoOptions);
    }
    async function infiniteScroll(page, options = {}) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        timeoutSecs: ow_1.default.optional.number,
        maxScrollHeight: ow_1.default.optional.number,
        waitForSecs: ow_1.default.optional.number,
        scrollDownAndUp: ow_1.default.optional.boolean,
        buttonSelector: ow_1.default.optional.string,
        stopScrollCallback: ow_1.default.optional.function
      }));
      const { timeoutSecs = 0, maxScrollHeight = 0, waitForSecs = 4, scrollDownAndUp = false, buttonSelector, stopScrollCallback } = options;
      let finished2;
      const startTime = Date.now();
      const CHECK_INTERVAL_MILLIS = 1e3;
      const SCROLL_HEIGHT_IF_ZERO = 1e4;
      let scrolledDistance = 0;
      const maybeResourceTypesInfiniteScroll = ["xhr", "fetch", "websocket", "other"];
      const resourcesStats = {
        newRequested: 0,
        oldRequested: 0,
        matchNumber: 0
      };
      page.on("request", (msg) => {
        if (maybeResourceTypesInfiniteScroll.includes(msg.resourceType())) {
          resourcesStats.newRequested++;
        }
      });
      let body = await page.$("body");
      let retry = 0;
      while (!body && retry < 10) {
        await (0, utils_1.sleep)(100);
        body = await page.$("body");
        retry++;
      }
      if (!body) {
        return;
      }
      const boundingBox = await body.boundingBox();
      await page.mouse.move(
        boundingBox.x + boundingBox.width / 2,
        // x
        boundingBox.y + boundingBox.height / 2
      );
      const checkFinished = setInterval(() => {
        if (resourcesStats.oldRequested === resourcesStats.newRequested) {
          resourcesStats.matchNumber++;
          if (resourcesStats.matchNumber >= waitForSecs) {
            clearInterval(checkFinished);
            finished2 = true;
            return;
          }
        } else {
          resourcesStats.matchNumber = 0;
          resourcesStats.oldRequested = resourcesStats.newRequested;
        }
        if (timeoutSecs !== 0 && (Date.now() - startTime) / 1e3 > timeoutSecs) {
          clearInterval(checkFinished);
          finished2 = true;
        }
        if (maxScrollHeight > 0 && scrolledDistance > maxScrollHeight) {
          clearInterval(checkFinished);
          finished2 = true;
        }
      }, CHECK_INTERVAL_MILLIS);
      const doScroll = async () => {
        const bodyScrollHeight = await page.evaluate(() => document.body.scrollHeight);
        const delta = bodyScrollHeight === 0 ? SCROLL_HEIGHT_IF_ZERO : bodyScrollHeight;
        await page.mouse.wheel({ deltaY: delta });
        scrolledDistance += delta;
      };
      const maybeClickButton = async () => {
        const button = await page.$(buttonSelector);
        if (button && await button.boxModel()) {
          await button.click({ delay: 10 });
        }
      };
      while (!finished2) {
        await doScroll();
        await (0, utils_1.sleep)(250);
        if (scrollDownAndUp) {
          await page.mouse.wheel({ deltaY: -1e3 });
        }
        if (buttonSelector) {
          await maybeClickButton();
        }
        if (stopScrollCallback) {
          if (await stopScrollCallback()) {
            clearInterval(checkFinished);
            break;
          }
        }
      }
    }
    async function saveSnapshot(page, options = {}) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        key: ow_1.default.optional.string.nonEmpty,
        screenshotQuality: ow_1.default.optional.number,
        saveScreenshot: ow_1.default.optional.boolean,
        saveHtml: ow_1.default.optional.boolean,
        keyValueStoreName: ow_1.default.optional.string,
        config: ow_1.default.optional.object
      }));
      const { key = "SNAPSHOT", screenshotQuality = 50, saveScreenshot = true, saveHtml = true, keyValueStoreName, config } = options;
      try {
        const store = await browser_1.KeyValueStore.open(keyValueStoreName, {
          config: config ?? browser_1.Configuration.getGlobalConfig()
        });
        if (saveScreenshot) {
          const screenshotName = `${key}.jpg`;
          const screenshotBuffer = await page.screenshot({
            fullPage: true,
            quality: screenshotQuality,
            type: "jpeg"
          });
          await store.setValue(screenshotName, screenshotBuffer, { contentType: "image/jpeg" });
        }
        if (saveHtml) {
          const htmlName = `${key}.html`;
          const html = await page.content();
          await store.setValue(htmlName, html, { contentType: "text/html" });
        }
      } catch (err2) {
        throw new Error(`saveSnapshot with key ${key} failed.
Cause:${err2.message}`);
      }
    }
    var idcacPlaywright = null;
    async function getIdcacPlaywright() {
      if (idcacPlaywright)
        return idcacPlaywright;
      try {
        idcacPlaywright = await import("idcac-playwright");
      } catch (error) {
        log2.warning(`Failed to import 'idcac-playwright'.

We recently made idcac-playwright an optional dependency due to licensing issues.
To use this feature, please install it manually by running

npm install idcac-playwright

Original error message follows:

${error.message}
`);
      }
      return idcacPlaywright;
    }
    async function closeCookieModals(page) {
      (0, ow_1.default)(page, ow_1.default.object.validate(browser_1.validators.browserPage));
      const idcac = await getIdcacPlaywright();
      if (idcac?.getInjectableScript()) {
        await page.evaluate(idcac.getInjectableScript());
      }
    }
    function registerUtilsToContext(context, crawlerOptions) {
      context.injectFile = async (filePath, options) => injectFile(context.page, filePath, options);
      context.injectJQuery = async () => {
        if (context.request.state === browser_1.RequestState.BEFORE_NAV) {
          log2.warning("Using injectJQuery() in preNavigationHooks leads to unstable results. Use it in a postNavigationHook or a requestHandler instead.");
          await injectJQuery(context.page);
          return;
        }
        await injectJQuery(context.page, { surviveNavigations: false });
      };
      context.waitForSelector = async (selector, timeoutMs = 5e3) => {
        await context.page.waitForSelector(selector, { timeout: timeoutMs });
      };
      context.parseWithCheerio = async (selector, timeoutMs = 5e3) => {
        if (selector) {
          await context.waitForSelector(selector, timeoutMs);
        }
        return parseWithCheerio(context.page, crawlerOptions.ignoreShadowRoots, crawlerOptions.ignoreIframes);
      };
      context.enqueueLinksByClickingElements = async (options) => (0, click_elements_1.enqueueLinksByClickingElements)({
        page: context.page,
        requestQueue: context.crawler.requestQueue,
        ...options
      });
      context.blockRequests = async (options) => blockRequests(context.page, options);
      context.blockResources = async (resourceTypes) => (0, exports.blockResources)(context.page, resourceTypes);
      context.cacheResponses = async (cache2, responseUrlRules) => {
        return cacheResponses(context.page, cache2, responseUrlRules);
      };
      context.compileScript = (scriptString, ctx) => compileScript(scriptString, ctx);
      context.addInterceptRequestHandler = async (handler) => (0, puppeteer_request_interception_1.addInterceptRequestHandler)(context.page, handler);
      context.removeInterceptRequestHandler = async (handler) => (0, puppeteer_request_interception_1.removeInterceptRequestHandler)(context.page, handler);
      context.infiniteScroll = async (options) => infiniteScroll(context.page, options);
      context.saveSnapshot = async (options) => saveSnapshot(context.page, { ...options, config: context.crawler.config });
      context.closeCookieModals = async () => closeCookieModals(context.page);
    }
    exports.puppeteerUtils = {
      injectFile,
      injectJQuery,
      enqueueLinksByClickingElements: click_elements_1.enqueueLinksByClickingElements,
      blockRequests,
      blockResources: exports.blockResources,
      cacheResponses,
      compileScript,
      gotoExtended,
      addInterceptRequestHandler: puppeteer_request_interception_1.addInterceptRequestHandler,
      removeInterceptRequestHandler: puppeteer_request_interception_1.removeInterceptRequestHandler,
      infiniteScroll,
      saveSnapshot,
      parseWithCheerio,
      closeCookieModals
    };
  }
});

// ../../node_modules/.pnpm/@crawlee+puppeteer@3.16.0/node_modules/@crawlee/puppeteer/internals/puppeteer-crawler.js
var require_puppeteer_crawler = __commonJS({
  "../../node_modules/.pnpm/@crawlee+puppeteer@3.16.0/node_modules/@crawlee/puppeteer/internals/puppeteer-crawler.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.PuppeteerCrawler = void 0;
    exports.createPuppeteerRouter = createPuppeteerRouter2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var browser_1 = require_browser2();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var puppeteer_launcher_1 = require_puppeteer_launcher();
    var puppeteer_utils_1 = require_puppeteer_utils();
    var PuppeteerCrawler2 = class _PuppeteerCrawler extends browser_1.BrowserCrawler {
      /**
       * All `PuppeteerCrawler` parameters are passed via an options object.
       */
      constructor(options = {}, config = browser_1.Configuration.getGlobalConfig()) {
        (0, ow_1.default)(options, "PuppeteerCrawlerOptions", ow_1.default.object.exactShape(_PuppeteerCrawler.optionsShape));
        const { launchContext = {}, headless, proxyConfiguration, ...browserCrawlerOptions } = options;
        const browserPoolOptions = {
          ...options.browserPoolOptions
        };
        if (launchContext.proxyUrl) {
          throw new Error("PuppeteerCrawlerOptions.launchContext.proxyUrl is not allowed in PuppeteerCrawler.Use PuppeteerCrawlerOptions.proxyConfiguration");
        }
        if (browserPoolOptions.browserPlugins) {
          throw new Error("browserPoolOptions.browserPlugins is disallowed. Use launchContext.launcher instead.");
        }
        if (headless != null) {
          launchContext.launchOptions ?? (launchContext.launchOptions = {});
          launchContext.launchOptions.headless = headless;
        }
        const puppeteerLauncher = new puppeteer_launcher_1.PuppeteerLauncher(launchContext, config);
        browserPoolOptions.browserPlugins = [puppeteerLauncher.createBrowserPlugin()];
        super({ ...browserCrawlerOptions, launchContext, proxyConfiguration, browserPoolOptions }, config);
        Object.defineProperty(this, "options", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: options
        });
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
      }
      async _runRequestHandler(context) {
        (0, puppeteer_utils_1.registerUtilsToContext)(context, this.options);
        await super._runRequestHandler(context);
      }
      async _navigationHandler(crawlingContext, gotoOptions) {
        return (0, puppeteer_utils_1.gotoExtended)(crawlingContext.page, crawlingContext.request, gotoOptions);
      }
    };
    exports.PuppeteerCrawler = PuppeteerCrawler2;
    Object.defineProperty(PuppeteerCrawler2, "optionsShape", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        ...browser_1.BrowserCrawler.optionsShape,
        browserPoolOptions: ow_1.default.optional.object
      }
    });
    function createPuppeteerRouter2(routes) {
      return browser_1.Router.create(routes);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+puppeteer@3.16.0/node_modules/@crawlee/puppeteer/index.js
var require_puppeteer = __commonJS({
  "../../node_modules/.pnpm/@crawlee+puppeteer@3.16.0/node_modules/@crawlee/puppeteer/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.puppeteerClickElements = exports.puppeteerUtils = exports.puppeteerRequestInterception = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_browser2(), exports);
    tslib_1.__exportStar(require_puppeteer_crawler(), exports);
    tslib_1.__exportStar(require_puppeteer_launcher(), exports);
    exports.puppeteerRequestInterception = tslib_1.__importStar(require_puppeteer_request_interception());
    exports.puppeteerUtils = tslib_1.__importStar(require_puppeteer_utils());
    exports.puppeteerClickElements = tslib_1.__importStar(require_click_elements2());
  }
});

// ../../node_modules/.pnpm/safer-buffer@2.1.2/node_modules/safer-buffer/safer.js
var require_safer = __commonJS({
  "../../node_modules/.pnpm/safer-buffer@2.1.2/node_modules/safer-buffer/safer.js"(exports, module) {
    "use strict";
    var buffer = __require("buffer");
    var Buffer5 = buffer.Buffer;
    var safer = {};
    var key;
    for (key in buffer) {
      if (!buffer.hasOwnProperty(key)) continue;
      if (key === "SlowBuffer" || key === "Buffer") continue;
      safer[key] = buffer[key];
    }
    var Safer = safer.Buffer = {};
    for (key in Buffer5) {
      if (!Buffer5.hasOwnProperty(key)) continue;
      if (key === "allocUnsafe" || key === "allocUnsafeSlow") continue;
      Safer[key] = Buffer5[key];
    }
    safer.Buffer.prototype = Buffer5.prototype;
    if (!Safer.from || Safer.from === Uint8Array.from) {
      Safer.from = function(value2, encodingOrOffset, length2) {
        if (typeof value2 === "number") {
          throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value2);
        }
        if (value2 && typeof value2.length === "undefined") {
          throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value2);
        }
        return Buffer5(value2, encodingOrOffset, length2);
      };
    }
    if (!Safer.alloc) {
      Safer.alloc = function(size, fill, encoding) {
        if (typeof size !== "number") {
          throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size);
        }
        if (size < 0 || size >= 2 * (1 << 30)) {
          throw new RangeError('The value "' + size + '" is invalid for option "size"');
        }
        var buf = Buffer5(size);
        if (!fill || fill.length === 0) {
          buf.fill(0);
        } else if (typeof encoding === "string") {
          buf.fill(fill, encoding);
        } else {
          buf.fill(fill);
        }
        return buf;
      };
    }
    if (!safer.kStringMaxLength) {
      try {
        safer.kStringMaxLength = process.binding("buffer").kStringMaxLength;
      } catch (e4) {
      }
    }
    if (!safer.constants) {
      safer.constants = {
        MAX_LENGTH: safer.kMaxLength
      };
      if (safer.kStringMaxLength) {
        safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;
      }
    }
    module.exports = safer;
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/lib/bom-handling.js
var require_bom_handling = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/lib/bom-handling.js"(exports) {
    "use strict";
    var BOMChar = "\uFEFF";
    exports.PrependBOM = PrependBOMWrapper;
    function PrependBOMWrapper(encoder, options) {
      this.encoder = encoder;
      this.addBOM = true;
    }
    PrependBOMWrapper.prototype.write = function(str) {
      if (this.addBOM) {
        str = BOMChar + str;
        this.addBOM = false;
      }
      return this.encoder.write(str);
    };
    PrependBOMWrapper.prototype.end = function() {
      return this.encoder.end();
    };
    exports.StripBOM = StripBOMWrapper;
    function StripBOMWrapper(decoder2, options) {
      this.decoder = decoder2;
      this.pass = false;
      this.options = options || {};
    }
    StripBOMWrapper.prototype.write = function(buf) {
      var res = this.decoder.write(buf);
      if (this.pass || !res) {
        return res;
      }
      if (res[0] === BOMChar) {
        res = res.slice(1);
        if (typeof this.options.stripBOM === "function") {
          this.options.stripBOM();
        }
      }
      this.pass = true;
      return res;
    };
    StripBOMWrapper.prototype.end = function() {
      return this.decoder.end();
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/lib/helpers/merge-exports.js
var require_merge_exports = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/lib/helpers/merge-exports.js"(exports, module) {
    "use strict";
    var hasOwn = typeof Object.hasOwn === "undefined" ? Function.call.bind(Object.prototype.hasOwnProperty) : Object.hasOwn;
    function mergeModules(target, module2) {
      for (var key in module2) {
        if (hasOwn(module2, key)) {
          target[key] = module2[key];
        }
      }
    }
    module.exports = mergeModules;
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/internal.js
var require_internal = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/internal.js"(exports, module) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    module.exports = {
      // Encodings
      utf8: { type: "_internal", bomAware: true },
      cesu8: { type: "_internal", bomAware: true },
      unicode11utf8: "utf8",
      ucs2: { type: "_internal", bomAware: true },
      utf16le: "ucs2",
      binary: { type: "_internal" },
      base64: { type: "_internal" },
      hex: { type: "_internal" },
      // Codec.
      _internal: InternalCodec
    };
    function InternalCodec(codecOptions, iconv) {
      this.enc = codecOptions.encodingName;
      this.bomAware = codecOptions.bomAware;
      if (this.enc === "base64") {
        this.encoder = InternalEncoderBase64;
      } else if (this.enc === "utf8") {
        this.encoder = InternalEncoderUtf8;
      } else if (this.enc === "cesu8") {
        this.enc = "utf8";
        this.encoder = InternalEncoderCesu8;
        if (Buffer5.from("eda0bdedb2a9", "hex").toString() !== "\u{1F4A9}") {
          this.decoder = InternalDecoderCesu8;
          this.defaultCharUnicode = iconv.defaultCharUnicode;
        }
      }
    }
    InternalCodec.prototype.encoder = InternalEncoder;
    InternalCodec.prototype.decoder = InternalDecoder;
    var StringDecoder = __require("string_decoder").StringDecoder;
    function InternalDecoder(options, codec) {
      this.decoder = new StringDecoder(codec.enc);
    }
    InternalDecoder.prototype.write = function(buf) {
      if (!Buffer5.isBuffer(buf)) {
        buf = Buffer5.from(buf);
      }
      return this.decoder.write(buf);
    };
    InternalDecoder.prototype.end = function() {
      return this.decoder.end();
    };
    function InternalEncoder(options, codec) {
      this.enc = codec.enc;
    }
    InternalEncoder.prototype.write = function(str) {
      return Buffer5.from(str, this.enc);
    };
    InternalEncoder.prototype.end = function() {
    };
    function InternalEncoderBase64(options, codec) {
      this.prevStr = "";
    }
    InternalEncoderBase64.prototype.write = function(str) {
      str = this.prevStr + str;
      var completeQuads = str.length - str.length % 4;
      this.prevStr = str.slice(completeQuads);
      str = str.slice(0, completeQuads);
      return Buffer5.from(str, "base64");
    };
    InternalEncoderBase64.prototype.end = function() {
      return Buffer5.from(this.prevStr, "base64");
    };
    function InternalEncoderCesu8(options, codec) {
    }
    InternalEncoderCesu8.prototype.write = function(str) {
      var buf = Buffer5.alloc(str.length * 3);
      var bufIdx = 0;
      for (var i5 = 0; i5 < str.length; i5++) {
        var charCode = str.charCodeAt(i5);
        if (charCode < 128) {
          buf[bufIdx++] = charCode;
        } else if (charCode < 2048) {
          buf[bufIdx++] = 192 + (charCode >>> 6);
          buf[bufIdx++] = 128 + (charCode & 63);
        } else {
          buf[bufIdx++] = 224 + (charCode >>> 12);
          buf[bufIdx++] = 128 + (charCode >>> 6 & 63);
          buf[bufIdx++] = 128 + (charCode & 63);
        }
      }
      return buf.slice(0, bufIdx);
    };
    InternalEncoderCesu8.prototype.end = function() {
    };
    function InternalDecoderCesu8(options, codec) {
      this.acc = 0;
      this.contBytes = 0;
      this.accBytes = 0;
      this.defaultCharUnicode = codec.defaultCharUnicode;
    }
    InternalDecoderCesu8.prototype.write = function(buf) {
      var acc = this.acc;
      var contBytes = this.contBytes;
      var accBytes = this.accBytes;
      var res = "";
      for (var i5 = 0; i5 < buf.length; i5++) {
        var curByte = buf[i5];
        if ((curByte & 192) !== 128) {
          if (contBytes > 0) {
            res += this.defaultCharUnicode;
            contBytes = 0;
          }
          if (curByte < 128) {
            res += String.fromCharCode(curByte);
          } else if (curByte < 224) {
            acc = curByte & 31;
            contBytes = 1;
            accBytes = 1;
          } else if (curByte < 240) {
            acc = curByte & 15;
            contBytes = 2;
            accBytes = 1;
          } else {
            res += this.defaultCharUnicode;
          }
        } else {
          if (contBytes > 0) {
            acc = acc << 6 | curByte & 63;
            contBytes--;
            accBytes++;
            if (contBytes === 0) {
              if (accBytes === 2 && acc < 128 && acc > 0) {
                res += this.defaultCharUnicode;
              } else if (accBytes === 3 && acc < 2048) {
                res += this.defaultCharUnicode;
              } else {
                res += String.fromCharCode(acc);
              }
            }
          } else {
            res += this.defaultCharUnicode;
          }
        }
      }
      this.acc = acc;
      this.contBytes = contBytes;
      this.accBytes = accBytes;
      return res;
    };
    InternalDecoderCesu8.prototype.end = function() {
      var res = 0;
      if (this.contBytes > 0) {
        res += this.defaultCharUnicode;
      }
      return res;
    };
    function InternalEncoderUtf8(options, codec) {
      this.highSurrogate = "";
    }
    InternalEncoderUtf8.prototype.write = function(str) {
      if (this.highSurrogate) {
        str = this.highSurrogate + str;
        this.highSurrogate = "";
      }
      if (str.length > 0) {
        var charCode = str.charCodeAt(str.length - 1);
        if (charCode >= 55296 && charCode < 56320) {
          this.highSurrogate = str[str.length - 1];
          str = str.slice(0, str.length - 1);
        }
      }
      return Buffer5.from(str, this.enc);
    };
    InternalEncoderUtf8.prototype.end = function() {
      if (this.highSurrogate) {
        var str = this.highSurrogate;
        this.highSurrogate = "";
        return Buffer5.from(str, this.enc);
      }
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/utf32.js
var require_utf32 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/utf32.js"(exports) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    exports._utf32 = Utf32Codec;
    function Utf32Codec(codecOptions, iconv) {
      this.iconv = iconv;
      this.bomAware = true;
      this.isLE = codecOptions.isLE;
    }
    exports.utf32le = { type: "_utf32", isLE: true };
    exports.utf32be = { type: "_utf32", isLE: false };
    exports.ucs4le = "utf32le";
    exports.ucs4be = "utf32be";
    Utf32Codec.prototype.encoder = Utf32Encoder;
    Utf32Codec.prototype.decoder = Utf32Decoder;
    function Utf32Encoder(options, codec) {
      this.isLE = codec.isLE;
      this.highSurrogate = 0;
    }
    Utf32Encoder.prototype.write = function(str) {
      var src = Buffer5.from(str, "ucs2");
      var dst = Buffer5.alloc(src.length * 2);
      var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE;
      var offset2 = 0;
      for (var i5 = 0; i5 < src.length; i5 += 2) {
        var code = src.readUInt16LE(i5);
        var isHighSurrogate = code >= 55296 && code < 56320;
        var isLowSurrogate = code >= 56320 && code < 57344;
        if (this.highSurrogate) {
          if (isHighSurrogate || !isLowSurrogate) {
            write32.call(dst, this.highSurrogate, offset2);
            offset2 += 4;
          } else {
            var codepoint = (this.highSurrogate - 55296 << 10 | code - 56320) + 65536;
            write32.call(dst, codepoint, offset2);
            offset2 += 4;
            this.highSurrogate = 0;
            continue;
          }
        }
        if (isHighSurrogate) {
          this.highSurrogate = code;
        } else {
          write32.call(dst, code, offset2);
          offset2 += 4;
          this.highSurrogate = 0;
        }
      }
      if (offset2 < dst.length) {
        dst = dst.slice(0, offset2);
      }
      return dst;
    };
    Utf32Encoder.prototype.end = function() {
      if (!this.highSurrogate) {
        return;
      }
      var buf = Buffer5.alloc(4);
      if (this.isLE) {
        buf.writeUInt32LE(this.highSurrogate, 0);
      } else {
        buf.writeUInt32BE(this.highSurrogate, 0);
      }
      this.highSurrogate = 0;
      return buf;
    };
    function Utf32Decoder(options, codec) {
      this.isLE = codec.isLE;
      this.badChar = codec.iconv.defaultCharUnicode.charCodeAt(0);
      this.overflow = [];
    }
    Utf32Decoder.prototype.write = function(src) {
      if (src.length === 0) {
        return "";
      }
      var i5 = 0;
      var codepoint = 0;
      var dst = Buffer5.alloc(src.length + 4);
      var offset2 = 0;
      var isLE = this.isLE;
      var overflow = this.overflow;
      var badChar = this.badChar;
      if (overflow.length > 0) {
        for (; i5 < src.length && overflow.length < 4; i5++) {
          overflow.push(src[i5]);
        }
        if (overflow.length === 4) {
          if (isLE) {
            codepoint = overflow[i5] | overflow[i5 + 1] << 8 | overflow[i5 + 2] << 16 | overflow[i5 + 3] << 24;
          } else {
            codepoint = overflow[i5 + 3] | overflow[i5 + 2] << 8 | overflow[i5 + 1] << 16 | overflow[i5] << 24;
          }
          overflow.length = 0;
          offset2 = _writeCodepoint(dst, offset2, codepoint, badChar);
        }
      }
      for (; i5 < src.length - 3; i5 += 4) {
        if (isLE) {
          codepoint = src[i5] | src[i5 + 1] << 8 | src[i5 + 2] << 16 | src[i5 + 3] << 24;
        } else {
          codepoint = src[i5 + 3] | src[i5 + 2] << 8 | src[i5 + 1] << 16 | src[i5] << 24;
        }
        offset2 = _writeCodepoint(dst, offset2, codepoint, badChar);
      }
      for (; i5 < src.length; i5++) {
        overflow.push(src[i5]);
      }
      return dst.slice(0, offset2).toString("ucs2");
    };
    function _writeCodepoint(dst, offset2, codepoint, badChar) {
      if (codepoint < 0 || codepoint > 1114111) {
        codepoint = badChar;
      }
      if (codepoint >= 65536) {
        codepoint -= 65536;
        var high = 55296 | codepoint >> 10;
        dst[offset2++] = high & 255;
        dst[offset2++] = high >> 8;
        var codepoint = 56320 | codepoint & 1023;
      }
      dst[offset2++] = codepoint & 255;
      dst[offset2++] = codepoint >> 8;
      return offset2;
    }
    Utf32Decoder.prototype.end = function() {
      this.overflow.length = 0;
    };
    exports.utf32 = Utf32AutoCodec;
    exports.ucs4 = "utf32";
    function Utf32AutoCodec(options, iconv) {
      this.iconv = iconv;
    }
    Utf32AutoCodec.prototype.encoder = Utf32AutoEncoder;
    Utf32AutoCodec.prototype.decoder = Utf32AutoDecoder;
    function Utf32AutoEncoder(options, codec) {
      options = options || {};
      if (options.addBOM === void 0) {
        options.addBOM = true;
      }
      this.encoder = codec.iconv.getEncoder(options.defaultEncoding || "utf-32le", options);
    }
    Utf32AutoEncoder.prototype.write = function(str) {
      return this.encoder.write(str);
    };
    Utf32AutoEncoder.prototype.end = function() {
      return this.encoder.end();
    };
    function Utf32AutoDecoder(options, codec) {
      this.decoder = null;
      this.initialBufs = [];
      this.initialBufsLen = 0;
      this.options = options || {};
      this.iconv = codec.iconv;
    }
    Utf32AutoDecoder.prototype.write = function(buf) {
      if (!this.decoder) {
        this.initialBufs.push(buf);
        this.initialBufsLen += buf.length;
        if (this.initialBufsLen < 32) {
          return "";
        }
        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
        this.decoder = this.iconv.getDecoder(encoding, this.options);
        var resStr = "";
        for (var i5 = 0; i5 < this.initialBufs.length; i5++) {
          resStr += this.decoder.write(this.initialBufs[i5]);
        }
        this.initialBufs.length = this.initialBufsLen = 0;
        return resStr;
      }
      return this.decoder.write(buf);
    };
    Utf32AutoDecoder.prototype.end = function() {
      if (!this.decoder) {
        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
        this.decoder = this.iconv.getDecoder(encoding, this.options);
        var resStr = "";
        for (var i5 = 0; i5 < this.initialBufs.length; i5++) {
          resStr += this.decoder.write(this.initialBufs[i5]);
        }
        var trail = this.decoder.end();
        if (trail) {
          resStr += trail;
        }
        this.initialBufs.length = this.initialBufsLen = 0;
        return resStr;
      }
      return this.decoder.end();
    };
    function detectEncoding(bufs, defaultEncoding) {
      var b3 = [];
      var charsProcessed = 0;
      var invalidLE = 0;
      var invalidBE = 0;
      var bmpCharsLE = 0;
      var bmpCharsBE = 0;
      outerLoop:
        for (var i5 = 0; i5 < bufs.length; i5++) {
          var buf = bufs[i5];
          for (var j = 0; j < buf.length; j++) {
            b3.push(buf[j]);
            if (b3.length === 4) {
              if (charsProcessed === 0) {
                if (b3[0] === 255 && b3[1] === 254 && b3[2] === 0 && b3[3] === 0) {
                  return "utf-32le";
                }
                if (b3[0] === 0 && b3[1] === 0 && b3[2] === 254 && b3[3] === 255) {
                  return "utf-32be";
                }
              }
              if (b3[0] !== 0 || b3[1] > 16) invalidBE++;
              if (b3[3] !== 0 || b3[2] > 16) invalidLE++;
              if (b3[0] === 0 && b3[1] === 0 && (b3[2] !== 0 || b3[3] !== 0)) bmpCharsBE++;
              if ((b3[0] !== 0 || b3[1] !== 0) && b3[2] === 0 && b3[3] === 0) bmpCharsLE++;
              b3.length = 0;
              charsProcessed++;
              if (charsProcessed >= 100) {
                break outerLoop;
              }
            }
          }
        }
      if (bmpCharsBE - invalidBE > bmpCharsLE - invalidLE) return "utf-32be";
      if (bmpCharsBE - invalidBE < bmpCharsLE - invalidLE) return "utf-32le";
      return defaultEncoding || "utf-32le";
    }
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/utf16.js
var require_utf16 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/utf16.js"(exports) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    exports.utf16be = Utf16BECodec;
    function Utf16BECodec() {
    }
    Utf16BECodec.prototype.encoder = Utf16BEEncoder;
    Utf16BECodec.prototype.decoder = Utf16BEDecoder;
    Utf16BECodec.prototype.bomAware = true;
    function Utf16BEEncoder() {
    }
    Utf16BEEncoder.prototype.write = function(str) {
      var buf = Buffer5.from(str, "ucs2");
      for (var i5 = 0; i5 < buf.length; i5 += 2) {
        var tmp = buf[i5];
        buf[i5] = buf[i5 + 1];
        buf[i5 + 1] = tmp;
      }
      return buf;
    };
    Utf16BEEncoder.prototype.end = function() {
    };
    function Utf16BEDecoder() {
      this.overflowByte = -1;
    }
    Utf16BEDecoder.prototype.write = function(buf) {
      if (buf.length == 0) {
        return "";
      }
      var buf2 = Buffer5.alloc(buf.length + 1);
      var i5 = 0;
      var j = 0;
      if (this.overflowByte !== -1) {
        buf2[0] = buf[0];
        buf2[1] = this.overflowByte;
        i5 = 1;
        j = 2;
      }
      for (; i5 < buf.length - 1; i5 += 2, j += 2) {
        buf2[j] = buf[i5 + 1];
        buf2[j + 1] = buf[i5];
      }
      this.overflowByte = i5 == buf.length - 1 ? buf[buf.length - 1] : -1;
      return buf2.slice(0, j).toString("ucs2");
    };
    Utf16BEDecoder.prototype.end = function() {
      this.overflowByte = -1;
    };
    exports.utf16 = Utf16Codec;
    function Utf16Codec(codecOptions, iconv) {
      this.iconv = iconv;
    }
    Utf16Codec.prototype.encoder = Utf16Encoder;
    Utf16Codec.prototype.decoder = Utf16Decoder;
    function Utf16Encoder(options, codec) {
      options = options || {};
      if (options.addBOM === void 0) {
        options.addBOM = true;
      }
      this.encoder = codec.iconv.getEncoder("utf-16le", options);
    }
    Utf16Encoder.prototype.write = function(str) {
      return this.encoder.write(str);
    };
    Utf16Encoder.prototype.end = function() {
      return this.encoder.end();
    };
    function Utf16Decoder(options, codec) {
      this.decoder = null;
      this.initialBufs = [];
      this.initialBufsLen = 0;
      this.options = options || {};
      this.iconv = codec.iconv;
    }
    Utf16Decoder.prototype.write = function(buf) {
      if (!this.decoder) {
        this.initialBufs.push(buf);
        this.initialBufsLen += buf.length;
        if (this.initialBufsLen < 16) {
          return "";
        }
        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
        this.decoder = this.iconv.getDecoder(encoding, this.options);
        var resStr = "";
        for (var i5 = 0; i5 < this.initialBufs.length; i5++) {
          resStr += this.decoder.write(this.initialBufs[i5]);
        }
        this.initialBufs.length = this.initialBufsLen = 0;
        return resStr;
      }
      return this.decoder.write(buf);
    };
    Utf16Decoder.prototype.end = function() {
      if (!this.decoder) {
        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
        this.decoder = this.iconv.getDecoder(encoding, this.options);
        var resStr = "";
        for (var i5 = 0; i5 < this.initialBufs.length; i5++) {
          resStr += this.decoder.write(this.initialBufs[i5]);
        }
        var trail = this.decoder.end();
        if (trail) {
          resStr += trail;
        }
        this.initialBufs.length = this.initialBufsLen = 0;
        return resStr;
      }
      return this.decoder.end();
    };
    function detectEncoding(bufs, defaultEncoding) {
      var b3 = [];
      var charsProcessed = 0;
      var asciiCharsLE = 0;
      var asciiCharsBE = 0;
      outerLoop:
        for (var i5 = 0; i5 < bufs.length; i5++) {
          var buf = bufs[i5];
          for (var j = 0; j < buf.length; j++) {
            b3.push(buf[j]);
            if (b3.length === 2) {
              if (charsProcessed === 0) {
                if (b3[0] === 255 && b3[1] === 254) return "utf-16le";
                if (b3[0] === 254 && b3[1] === 255) return "utf-16be";
              }
              if (b3[0] === 0 && b3[1] !== 0) asciiCharsBE++;
              if (b3[0] !== 0 && b3[1] === 0) asciiCharsLE++;
              b3.length = 0;
              charsProcessed++;
              if (charsProcessed >= 100) {
                break outerLoop;
              }
            }
          }
        }
      if (asciiCharsBE > asciiCharsLE) return "utf-16be";
      if (asciiCharsBE < asciiCharsLE) return "utf-16le";
      return defaultEncoding || "utf-16le";
    }
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/utf7.js
var require_utf7 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/utf7.js"(exports) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    exports.utf7 = Utf7Codec;
    exports.unicode11utf7 = "utf7";
    function Utf7Codec(codecOptions, iconv) {
      this.iconv = iconv;
    }
    Utf7Codec.prototype.encoder = Utf7Encoder;
    Utf7Codec.prototype.decoder = Utf7Decoder;
    Utf7Codec.prototype.bomAware = true;
    var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
    function Utf7Encoder(options, codec) {
      this.iconv = codec.iconv;
    }
    Utf7Encoder.prototype.write = function(str) {
      return Buffer5.from(str.replace(nonDirectChars, function(chunk3) {
        return "+" + (chunk3 === "+" ? "" : this.iconv.encode(chunk3, "utf16-be").toString("base64").replace(/=+$/, "")) + "-";
      }.bind(this)));
    };
    Utf7Encoder.prototype.end = function() {
    };
    function Utf7Decoder(options, codec) {
      this.iconv = codec.iconv;
      this.inBase64 = false;
      this.base64Accum = "";
    }
    var base64Regex = /[A-Za-z0-9\/+]/;
    var base64Chars = [];
    for (i5 = 0; i5 < 256; i5++) {
      base64Chars[i5] = base64Regex.test(String.fromCharCode(i5));
    }
    var i5;
    var plusChar = "+".charCodeAt(0);
    var minusChar = "-".charCodeAt(0);
    var andChar = "&".charCodeAt(0);
    Utf7Decoder.prototype.write = function(buf) {
      var res = "";
      var lastI = 0;
      var inBase64 = this.inBase64;
      var base64Accum = this.base64Accum;
      for (var i6 = 0; i6 < buf.length; i6++) {
        if (!inBase64) {
          if (buf[i6] == plusChar) {
            res += this.iconv.decode(buf.slice(lastI, i6), "ascii");
            lastI = i6 + 1;
            inBase64 = true;
          }
        } else {
          if (!base64Chars[buf[i6]]) {
            if (i6 == lastI && buf[i6] == minusChar) {
              res += "+";
            } else {
              var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i6), "ascii");
              res += this.iconv.decode(Buffer5.from(b64str, "base64"), "utf16-be");
            }
            if (buf[i6] != minusChar) {
              i6--;
            }
            lastI = i6 + 1;
            inBase64 = false;
            base64Accum = "";
          }
        }
      }
      if (!inBase64) {
        res += this.iconv.decode(buf.slice(lastI), "ascii");
      } else {
        var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii");
        var canBeDecoded = b64str.length - b64str.length % 8;
        base64Accum = b64str.slice(canBeDecoded);
        b64str = b64str.slice(0, canBeDecoded);
        res += this.iconv.decode(Buffer5.from(b64str, "base64"), "utf16-be");
      }
      this.inBase64 = inBase64;
      this.base64Accum = base64Accum;
      return res;
    };
    Utf7Decoder.prototype.end = function() {
      var res = "";
      if (this.inBase64 && this.base64Accum.length > 0) {
        res = this.iconv.decode(Buffer5.from(this.base64Accum, "base64"), "utf16-be");
      }
      this.inBase64 = false;
      this.base64Accum = "";
      return res;
    };
    exports.utf7imap = Utf7IMAPCodec;
    function Utf7IMAPCodec(codecOptions, iconv) {
      this.iconv = iconv;
    }
    Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
    Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
    Utf7IMAPCodec.prototype.bomAware = true;
    function Utf7IMAPEncoder(options, codec) {
      this.iconv = codec.iconv;
      this.inBase64 = false;
      this.base64Accum = Buffer5.alloc(6);
      this.base64AccumIdx = 0;
    }
    Utf7IMAPEncoder.prototype.write = function(str) {
      var inBase64 = this.inBase64;
      var base64Accum = this.base64Accum;
      var base64AccumIdx = this.base64AccumIdx;
      var buf = Buffer5.alloc(str.length * 5 + 10);
      var bufIdx = 0;
      for (var i6 = 0; i6 < str.length; i6++) {
        var uChar = str.charCodeAt(i6);
        if (uChar >= 32 && uChar <= 126) {
          if (inBase64) {
            if (base64AccumIdx > 0) {
              bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
              base64AccumIdx = 0;
            }
            buf[bufIdx++] = minusChar;
            inBase64 = false;
          }
          if (!inBase64) {
            buf[bufIdx++] = uChar;
            if (uChar === andChar) {
              buf[bufIdx++] = minusChar;
            }
          }
        } else {
          if (!inBase64) {
            buf[bufIdx++] = andChar;
            inBase64 = true;
          }
          if (inBase64) {
            base64Accum[base64AccumIdx++] = uChar >> 8;
            base64Accum[base64AccumIdx++] = uChar & 255;
            if (base64AccumIdx == base64Accum.length) {
              bufIdx += buf.write(base64Accum.toString("base64").replace(/\//g, ","), bufIdx);
              base64AccumIdx = 0;
            }
          }
        }
      }
      this.inBase64 = inBase64;
      this.base64AccumIdx = base64AccumIdx;
      return buf.slice(0, bufIdx);
    };
    Utf7IMAPEncoder.prototype.end = function() {
      var buf = Buffer5.alloc(10);
      var bufIdx = 0;
      if (this.inBase64) {
        if (this.base64AccumIdx > 0) {
          bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
          this.base64AccumIdx = 0;
        }
        buf[bufIdx++] = minusChar;
        this.inBase64 = false;
      }
      return buf.slice(0, bufIdx);
    };
    function Utf7IMAPDecoder(options, codec) {
      this.iconv = codec.iconv;
      this.inBase64 = false;
      this.base64Accum = "";
    }
    var base64IMAPChars = base64Chars.slice();
    base64IMAPChars[",".charCodeAt(0)] = true;
    Utf7IMAPDecoder.prototype.write = function(buf) {
      var res = "";
      var lastI = 0;
      var inBase64 = this.inBase64;
      var base64Accum = this.base64Accum;
      for (var i6 = 0; i6 < buf.length; i6++) {
        if (!inBase64) {
          if (buf[i6] == andChar) {
            res += this.iconv.decode(buf.slice(lastI, i6), "ascii");
            lastI = i6 + 1;
            inBase64 = true;
          }
        } else {
          if (!base64IMAPChars[buf[i6]]) {
            if (i6 == lastI && buf[i6] == minusChar) {
              res += "&";
            } else {
              var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i6), "ascii").replace(/,/g, "/");
              res += this.iconv.decode(Buffer5.from(b64str, "base64"), "utf16-be");
            }
            if (buf[i6] != minusChar) {
              i6--;
            }
            lastI = i6 + 1;
            inBase64 = false;
            base64Accum = "";
          }
        }
      }
      if (!inBase64) {
        res += this.iconv.decode(buf.slice(lastI), "ascii");
      } else {
        var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii").replace(/,/g, "/");
        var canBeDecoded = b64str.length - b64str.length % 8;
        base64Accum = b64str.slice(canBeDecoded);
        b64str = b64str.slice(0, canBeDecoded);
        res += this.iconv.decode(Buffer5.from(b64str, "base64"), "utf16-be");
      }
      this.inBase64 = inBase64;
      this.base64Accum = base64Accum;
      return res;
    };
    Utf7IMAPDecoder.prototype.end = function() {
      var res = "";
      if (this.inBase64 && this.base64Accum.length > 0) {
        res = this.iconv.decode(Buffer5.from(this.base64Accum, "base64"), "utf16-be");
      }
      this.inBase64 = false;
      this.base64Accum = "";
      return res;
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/sbcs-codec.js
var require_sbcs_codec = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/sbcs-codec.js"(exports) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    exports._sbcs = SBCSCodec;
    function SBCSCodec(codecOptions, iconv) {
      if (!codecOptions) {
        throw new Error("SBCS codec is called without the data.");
      }
      if (!codecOptions.chars || codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256) {
        throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)");
      }
      if (codecOptions.chars.length === 128) {
        var asciiString = "";
        for (var i5 = 0; i5 < 128; i5++) {
          asciiString += String.fromCharCode(i5);
        }
        codecOptions.chars = asciiString + codecOptions.chars;
      }
      this.decodeBuf = Buffer5.from(codecOptions.chars, "ucs2");
      var encodeBuf = Buffer5.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));
      for (var i5 = 0; i5 < codecOptions.chars.length; i5++) {
        encodeBuf[codecOptions.chars.charCodeAt(i5)] = i5;
      }
      this.encodeBuf = encodeBuf;
    }
    SBCSCodec.prototype.encoder = SBCSEncoder;
    SBCSCodec.prototype.decoder = SBCSDecoder;
    function SBCSEncoder(options, codec) {
      this.encodeBuf = codec.encodeBuf;
    }
    SBCSEncoder.prototype.write = function(str) {
      var buf = Buffer5.alloc(str.length);
      for (var i5 = 0; i5 < str.length; i5++) {
        buf[i5] = this.encodeBuf[str.charCodeAt(i5)];
      }
      return buf;
    };
    SBCSEncoder.prototype.end = function() {
    };
    function SBCSDecoder(options, codec) {
      this.decodeBuf = codec.decodeBuf;
    }
    SBCSDecoder.prototype.write = function(buf) {
      var decodeBuf = this.decodeBuf;
      var newBuf = Buffer5.alloc(buf.length * 2);
      var idx1 = 0;
      var idx2 = 0;
      for (var i5 = 0; i5 < buf.length; i5++) {
        idx1 = buf[i5] * 2;
        idx2 = i5 * 2;
        newBuf[idx2] = decodeBuf[idx1];
        newBuf[idx2 + 1] = decodeBuf[idx1 + 1];
      }
      return newBuf.toString("ucs2");
    };
    SBCSDecoder.prototype.end = function() {
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/sbcs-data.js
var require_sbcs_data = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/sbcs-data.js"(exports, module) {
    "use strict";
    module.exports = {
      // Not supported by iconv, not sure why.
      10029: "maccenteuro",
      maccenteuro: {
        type: "_sbcs",
        chars: "\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"
      },
      808: "cp808",
      ibm808: "cp808",
      cp808: {
        type: "_sbcs",
        chars: "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"
      },
      mik: {
        type: "_sbcs",
        chars: "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      cp720: {
        type: "_sbcs",
        chars: "\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      // Aliases of generated encodings.
      ascii8bit: "ascii",
      usascii: "ascii",
      ansix34: "ascii",
      ansix341968: "ascii",
      ansix341986: "ascii",
      csascii: "ascii",
      cp367: "ascii",
      ibm367: "ascii",
      isoir6: "ascii",
      iso646us: "ascii",
      iso646irv: "ascii",
      us: "ascii",
      latin1: "iso88591",
      latin2: "iso88592",
      latin3: "iso88593",
      latin4: "iso88594",
      latin5: "iso88599",
      latin6: "iso885910",
      latin7: "iso885913",
      latin8: "iso885914",
      latin9: "iso885915",
      latin10: "iso885916",
      csisolatin1: "iso88591",
      csisolatin2: "iso88592",
      csisolatin3: "iso88593",
      csisolatin4: "iso88594",
      csisolatincyrillic: "iso88595",
      csisolatinarabic: "iso88596",
      csisolatingreek: "iso88597",
      csisolatinhebrew: "iso88598",
      csisolatin5: "iso88599",
      csisolatin6: "iso885910",
      l1: "iso88591",
      l2: "iso88592",
      l3: "iso88593",
      l4: "iso88594",
      l5: "iso88599",
      l6: "iso885910",
      l7: "iso885913",
      l8: "iso885914",
      l9: "iso885915",
      l10: "iso885916",
      isoir14: "iso646jp",
      isoir57: "iso646cn",
      isoir100: "iso88591",
      isoir101: "iso88592",
      isoir109: "iso88593",
      isoir110: "iso88594",
      isoir144: "iso88595",
      isoir127: "iso88596",
      isoir126: "iso88597",
      isoir138: "iso88598",
      isoir148: "iso88599",
      isoir157: "iso885910",
      isoir166: "tis620",
      isoir179: "iso885913",
      isoir199: "iso885914",
      isoir203: "iso885915",
      isoir226: "iso885916",
      cp819: "iso88591",
      ibm819: "iso88591",
      cyrillic: "iso88595",
      arabic: "iso88596",
      arabic8: "iso88596",
      ecma114: "iso88596",
      asmo708: "iso88596",
      greek: "iso88597",
      greek8: "iso88597",
      ecma118: "iso88597",
      elot928: "iso88597",
      hebrew: "iso88598",
      hebrew8: "iso88598",
      turkish: "iso88599",
      turkish8: "iso88599",
      thai: "iso885911",
      thai8: "iso885911",
      celtic: "iso885914",
      celtic8: "iso885914",
      isoceltic: "iso885914",
      tis6200: "tis620",
      tis62025291: "tis620",
      tis62025330: "tis620",
      1e4: "macroman",
      10006: "macgreek",
      10007: "maccyrillic",
      10079: "maciceland",
      10081: "macturkish",
      cspc8codepage437: "cp437",
      cspc775baltic: "cp775",
      cspc850multilingual: "cp850",
      cspcp852: "cp852",
      cspc862latinhebrew: "cp862",
      cpgr: "cp869",
      msee: "cp1250",
      mscyrl: "cp1251",
      msansi: "cp1252",
      msgreek: "cp1253",
      msturk: "cp1254",
      mshebr: "cp1255",
      msarab: "cp1256",
      winbaltrim: "cp1257",
      cp20866: "koi8r",
      20866: "koi8r",
      ibm878: "koi8r",
      cskoi8r: "koi8r",
      cp21866: "koi8u",
      21866: "koi8u",
      ibm1168: "koi8u",
      strk10482002: "rk1048",
      tcvn5712: "tcvn",
      tcvn57121: "tcvn",
      gb198880: "iso646cn",
      cn: "iso646cn",
      csiso14jisc6220ro: "iso646jp",
      jisc62201969ro: "iso646jp",
      jp: "iso646jp",
      cshproman8: "hproman8",
      r8: "hproman8",
      roman8: "hproman8",
      xroman8: "hproman8",
      ibm1051: "hproman8",
      mac: "macintosh",
      csmacintosh: "macintosh"
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/sbcs-data-generated.js
var require_sbcs_data_generated = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/sbcs-data-generated.js"(exports, module) {
    "use strict";
    module.exports = {
      "437": "cp437",
      "737": "cp737",
      "775": "cp775",
      "850": "cp850",
      "852": "cp852",
      "855": "cp855",
      "856": "cp856",
      "857": "cp857",
      "858": "cp858",
      "860": "cp860",
      "861": "cp861",
      "862": "cp862",
      "863": "cp863",
      "864": "cp864",
      "865": "cp865",
      "866": "cp866",
      "869": "cp869",
      "874": "windows874",
      "922": "cp922",
      "1046": "cp1046",
      "1124": "cp1124",
      "1125": "cp1125",
      "1129": "cp1129",
      "1133": "cp1133",
      "1161": "cp1161",
      "1162": "cp1162",
      "1163": "cp1163",
      "1250": "windows1250",
      "1251": "windows1251",
      "1252": "windows1252",
      "1253": "windows1253",
      "1254": "windows1254",
      "1255": "windows1255",
      "1256": "windows1256",
      "1257": "windows1257",
      "1258": "windows1258",
      "28591": "iso88591",
      "28592": "iso88592",
      "28593": "iso88593",
      "28594": "iso88594",
      "28595": "iso88595",
      "28596": "iso88596",
      "28597": "iso88597",
      "28598": "iso88598",
      "28599": "iso88599",
      "28600": "iso885910",
      "28601": "iso885911",
      "28603": "iso885913",
      "28604": "iso885914",
      "28605": "iso885915",
      "28606": "iso885916",
      "windows874": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "win874": "windows874",
      "cp874": "windows874",
      "windows1250": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
      },
      "win1250": "windows1250",
      "cp1250": "windows1250",
      "windows1251": {
        "type": "_sbcs",
        "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
      },
      "win1251": "windows1251",
      "cp1251": "windows1251",
      "windows1252": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
      },
      "win1252": "windows1252",
      "cp1252": "windows1252",
      "windows1253": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
      },
      "win1253": "windows1253",
      "cp1253": "windows1253",
      "windows1254": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
      },
      "win1254": "windows1254",
      "cp1254": "windows1254",
      "windows1255": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
      },
      "win1255": "windows1255",
      "cp1255": "windows1255",
      "windows1256": {
        "type": "_sbcs",
        "chars": "\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"
      },
      "win1256": "windows1256",
      "cp1256": "windows1256",
      "windows1257": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"
      },
      "win1257": "windows1257",
      "cp1257": "windows1257",
      "windows1258": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
      },
      "win1258": "windows1258",
      "cp1258": "windows1258",
      "iso88591": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
      },
      "cp28591": "iso88591",
      "iso88592": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
      },
      "cp28592": "iso88592",
      "iso88593": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"
      },
      "cp28593": "iso88593",
      "iso88594": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"
      },
      "cp28594": "iso88594",
      "iso88595": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
      },
      "cp28595": "iso88595",
      "iso88596": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "cp28596": "iso88596",
      "iso88597": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
      },
      "cp28597": "iso88597",
      "iso88598": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
      },
      "cp28598": "iso88598",
      "iso88599": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
      },
      "cp28599": "iso88599",
      "iso885910": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"
      },
      "cp28600": "iso885910",
      "iso885911": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "cp28601": "iso885911",
      "iso885913": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"
      },
      "cp28603": "iso885913",
      "iso885914": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"
      },
      "cp28604": "iso885914",
      "iso885915": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
      },
      "cp28605": "iso885915",
      "iso885916": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"
      },
      "cp28606": "iso885916",
      "cp437": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm437": "cp437",
      "csibm437": "cp437",
      "cp737": {
        "type": "_sbcs",
        "chars": "\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm737": "cp737",
      "csibm737": "cp737",
      "cp775": {
        "type": "_sbcs",
        "chars": "\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"
      },
      "ibm775": "cp775",
      "csibm775": "cp775",
      "cp850": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
      },
      "ibm850": "cp850",
      "csibm850": "cp850",
      "cp852": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"
      },
      "ibm852": "cp852",
      "csibm852": "cp852",
      "cp855": {
        "type": "_sbcs",
        "chars": "\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"
      },
      "ibm855": "cp855",
      "csibm855": "cp855",
      "cp856": {
        "type": "_sbcs",
        "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
      },
      "ibm856": "cp856",
      "csibm856": "cp856",
      "cp857": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
      },
      "ibm857": "cp857",
      "csibm857": "cp857",
      "cp858": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
      },
      "ibm858": "cp858",
      "csibm858": "cp858",
      "cp860": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm860": "cp860",
      "csibm860": "cp860",
      "cp861": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm861": "cp861",
      "csibm861": "cp861",
      "cp862": {
        "type": "_sbcs",
        "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm862": "cp862",
      "csibm862": "cp862",
      "cp863": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm863": "cp863",
      "csibm863": "cp863",
      "cp864": {
        "type": "_sbcs",
        "chars": "\0\x07\b	\n\v\f\r\x1B !\"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD"
      },
      "ibm864": "cp864",
      "csibm864": "cp864",
      "cp865": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm865": "cp865",
      "csibm865": "cp865",
      "cp866": {
        "type": "_sbcs",
        "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"
      },
      "ibm866": "cp866",
      "csibm866": "cp866",
      "cp869": {
        "type": "_sbcs",
        "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"
      },
      "ibm869": "cp869",
      "csibm869": "cp869",
      "cp922": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"
      },
      "ibm922": "cp922",
      "csibm922": "cp922",
      "cp1046": {
        "type": "_sbcs",
        "chars": "\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"
      },
      "ibm1046": "cp1046",
      "csibm1046": "cp1046",
      "cp1124": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
      },
      "ibm1124": "cp1124",
      "csibm1124": "cp1124",
      "cp1125": {
        "type": "_sbcs",
        "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"
      },
      "ibm1125": "cp1125",
      "csibm1125": "cp1125",
      "cp1129": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
      },
      "ibm1129": "cp1129",
      "csibm1129": "cp1129",
      "cp1133": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"
      },
      "ibm1133": "cp1133",
      "csibm1133": "cp1133",
      "cp1161": {
        "type": "_sbcs",
        "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"
      },
      "ibm1161": "cp1161",
      "csibm1161": "cp1161",
      "cp1162": {
        "type": "_sbcs",
        "chars": "\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "ibm1162": "cp1162",
      "csibm1162": "cp1162",
      "cp1163": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
      },
      "ibm1163": "cp1163",
      "csibm1163": "cp1163",
      "maccroatian": {
        "type": "_sbcs",
        "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"
      },
      "maccyrillic": {
        "type": "_sbcs",
        "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
      },
      "macgreek": {
        "type": "_sbcs",
        "chars": "\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"
      },
      "maciceland": {
        "type": "_sbcs",
        "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
      },
      "macroman": {
        "type": "_sbcs",
        "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
      },
      "macromania": {
        "type": "_sbcs",
        "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
      },
      "macthai": {
        "type": "_sbcs",
        "chars": "\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "macturkish": {
        "type": "_sbcs",
        "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
      },
      "macukraine": {
        "type": "_sbcs",
        "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
      },
      "koi8r": {
        "type": "_sbcs",
        "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
      },
      "koi8u": {
        "type": "_sbcs",
        "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
      },
      "koi8ru": {
        "type": "_sbcs",
        "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
      },
      "koi8t": {
        "type": "_sbcs",
        "chars": "\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
      },
      "armscii8": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"
      },
      "rk1048": {
        "type": "_sbcs",
        "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
      },
      "tcvn": {
        "type": "_sbcs",
        "chars": "\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b	\n\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0"
      },
      "georgianacademy": {
        "type": "_sbcs",
        "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
      },
      "georgianps": {
        "type": "_sbcs",
        "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
      },
      "pt154": {
        "type": "_sbcs",
        "chars": "\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
      },
      "viscii": {
        "type": "_sbcs",
        "chars": "\0\u1EB2\u1EB4\u1EAA\x07\b	\n\v\f\r\u1EF6\u1EF8\x1B\u1EF4 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE"
      },
      "iso646cn": {
        "type": "_sbcs",
        "chars": "\0\x07\b	\n\v\f\r\x1B !\"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "iso646jp": {
        "type": "_sbcs",
        "chars": "\0\x07\b	\n\v\f\r\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "hproman8": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"
      },
      "macintosh": {
        "type": "_sbcs",
        "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
      },
      "ascii": {
        "type": "_sbcs",
        "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "tis620": {
        "type": "_sbcs",
        "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
      }
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/dbcs-codec.js
var require_dbcs_codec = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/dbcs-codec.js"(exports) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    exports._dbcs = DBCSCodec;
    var UNASSIGNED = -1;
    var GB18030_CODE = -2;
    var SEQ_START = -10;
    var NODE_START = -1e3;
    var UNASSIGNED_NODE = new Array(256);
    var DEF_CHAR = -1;
    for (i5 = 0; i5 < 256; i5++) {
      UNASSIGNED_NODE[i5] = UNASSIGNED;
    }
    var i5;
    function DBCSCodec(codecOptions, iconv) {
      this.encodingName = codecOptions.encodingName;
      if (!codecOptions) {
        throw new Error("DBCS codec is called without the data.");
      }
      if (!codecOptions.table) {
        throw new Error("Encoding '" + this.encodingName + "' has no data.");
      }
      var mappingTable = codecOptions.table();
      this.decodeTables = [];
      this.decodeTables[0] = UNASSIGNED_NODE.slice(0);
      this.decodeTableSeq = [];
      for (var i6 = 0; i6 < mappingTable.length; i6++) {
        this._addDecodeChunk(mappingTable[i6]);
      }
      if (typeof codecOptions.gb18030 === "function") {
        this.gb18030 = codecOptions.gb18030();
        var commonThirdByteNodeIdx = this.decodeTables.length;
        this.decodeTables.push(UNASSIGNED_NODE.slice(0));
        var commonFourthByteNodeIdx = this.decodeTables.length;
        this.decodeTables.push(UNASSIGNED_NODE.slice(0));
        var firstByteNode = this.decodeTables[0];
        for (var i6 = 129; i6 <= 254; i6++) {
          var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i6]];
          for (var j = 48; j <= 57; j++) {
            if (secondByteNode[j] === UNASSIGNED) {
              secondByteNode[j] = NODE_START - commonThirdByteNodeIdx;
            } else if (secondByteNode[j] > NODE_START) {
              throw new Error("gb18030 decode tables conflict at byte 2");
            }
            var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j]];
            for (var k3 = 129; k3 <= 254; k3++) {
              if (thirdByteNode[k3] === UNASSIGNED) {
                thirdByteNode[k3] = NODE_START - commonFourthByteNodeIdx;
              } else if (thirdByteNode[k3] === NODE_START - commonFourthByteNodeIdx) {
                continue;
              } else if (thirdByteNode[k3] > NODE_START) {
                throw new Error("gb18030 decode tables conflict at byte 3");
              }
              var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k3]];
              for (var l4 = 48; l4 <= 57; l4++) {
                if (fourthByteNode[l4] === UNASSIGNED) {
                  fourthByteNode[l4] = GB18030_CODE;
                }
              }
            }
          }
        }
      }
      this.defaultCharUnicode = iconv.defaultCharUnicode;
      this.encodeTable = [];
      this.encodeTableSeq = [];
      var skipEncodeChars = {};
      if (codecOptions.encodeSkipVals) {
        for (var i6 = 0; i6 < codecOptions.encodeSkipVals.length; i6++) {
          var val = codecOptions.encodeSkipVals[i6];
          if (typeof val === "number") {
            skipEncodeChars[val] = true;
          } else {
            for (var j = val.from; j <= val.to; j++) {
              skipEncodeChars[j] = true;
            }
          }
        }
      }
      this._fillEncodeTable(0, 0, skipEncodeChars);
      if (codecOptions.encodeAdd) {
        for (var uChar in codecOptions.encodeAdd) {
          if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) {
            this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
          }
        }
      }
      this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
      if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]["?"];
      if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0);
    }
    DBCSCodec.prototype.encoder = DBCSEncoder;
    DBCSCodec.prototype.decoder = DBCSDecoder;
    DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
      var bytes = [];
      for (; addr > 0; addr >>>= 8) {
        bytes.push(addr & 255);
      }
      if (bytes.length == 0) {
        bytes.push(0);
      }
      var node = this.decodeTables[0];
      for (var i6 = bytes.length - 1; i6 > 0; i6--) {
        var val = node[bytes[i6]];
        if (val == UNASSIGNED) {
          node[bytes[i6]] = NODE_START - this.decodeTables.length;
          this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
        } else if (val <= NODE_START) {
          node = this.decodeTables[NODE_START - val];
        } else {
          throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
        }
      }
      return node;
    };
    DBCSCodec.prototype._addDecodeChunk = function(chunk3) {
      var curAddr = parseInt(chunk3[0], 16);
      var writeTable = this._getDecodeTrieNode(curAddr);
      curAddr = curAddr & 255;
      for (var k3 = 1; k3 < chunk3.length; k3++) {
        var part = chunk3[k3];
        if (typeof part === "string") {
          for (var l4 = 0; l4 < part.length; ) {
            var code = part.charCodeAt(l4++);
            if (code >= 55296 && code < 56320) {
              var codeTrail = part.charCodeAt(l4++);
              if (codeTrail >= 56320 && codeTrail < 57344) {
                writeTable[curAddr++] = 65536 + (code - 55296) * 1024 + (codeTrail - 56320);
              } else {
                throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk3[0]);
              }
            } else if (code > 4080 && code <= 4095) {
              var len = 4095 - code + 2;
              var seq = [];
              for (var m3 = 0; m3 < len; m3++) {
                seq.push(part.charCodeAt(l4++));
              }
              writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
              this.decodeTableSeq.push(seq);
            } else {
              writeTable[curAddr++] = code;
            }
          }
        } else if (typeof part === "number") {
          var charCode = writeTable[curAddr - 1] + 1;
          for (var l4 = 0; l4 < part; l4++) {
            writeTable[curAddr++] = charCode++;
          }
        } else {
          throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk3[0]);
        }
      }
      if (curAddr > 255) {
        throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk3[0] + ": too long" + curAddr);
      }
    };
    DBCSCodec.prototype._getEncodeBucket = function(uCode) {
      var high = uCode >> 8;
      if (this.encodeTable[high] === void 0) {
        this.encodeTable[high] = UNASSIGNED_NODE.slice(0);
      }
      return this.encodeTable[high];
    };
    DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
      var bucket = this._getEncodeBucket(uCode);
      var low = uCode & 255;
      if (bucket[low] <= SEQ_START) {
        this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode;
      } else if (bucket[low] == UNASSIGNED) {
        bucket[low] = dbcsCode;
      }
    };
    DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
      var uCode = seq[0];
      var bucket = this._getEncodeBucket(uCode);
      var low = uCode & 255;
      var node;
      if (bucket[low] <= SEQ_START) {
        node = this.encodeTableSeq[SEQ_START - bucket[low]];
      } else {
        node = {};
        if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low];
        bucket[low] = SEQ_START - this.encodeTableSeq.length;
        this.encodeTableSeq.push(node);
      }
      for (var j = 1; j < seq.length - 1; j++) {
        var oldVal = node[uCode];
        if (typeof oldVal === "object") {
          node = oldVal;
        } else {
          node = node[uCode] = {};
          if (oldVal !== void 0) {
            node[DEF_CHAR] = oldVal;
          }
        }
      }
      uCode = seq[seq.length - 1];
      node[uCode] = dbcsCode;
    };
    DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
      var node = this.decodeTables[nodeIdx];
      var hasValues = false;
      var subNodeEmpty = {};
      for (var i6 = 0; i6 < 256; i6++) {
        var uCode = node[i6];
        var mbCode = prefix + i6;
        if (skipEncodeChars[mbCode]) {
          continue;
        }
        if (uCode >= 0) {
          this._setEncodeChar(uCode, mbCode);
          hasValues = true;
        } else if (uCode <= NODE_START) {
          var subNodeIdx = NODE_START - uCode;
          if (!subNodeEmpty[subNodeIdx]) {
            var newPrefix = mbCode << 8 >>> 0;
            if (this._fillEncodeTable(subNodeIdx, newPrefix, skipEncodeChars)) {
              hasValues = true;
            } else {
              subNodeEmpty[subNodeIdx] = true;
            }
          }
        } else if (uCode <= SEQ_START) {
          this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
          hasValues = true;
        }
      }
      return hasValues;
    };
    function DBCSEncoder(options, codec) {
      this.leadSurrogate = -1;
      this.seqObj = void 0;
      this.encodeTable = codec.encodeTable;
      this.encodeTableSeq = codec.encodeTableSeq;
      this.defaultCharSingleByte = codec.defCharSB;
      this.gb18030 = codec.gb18030;
    }
    DBCSEncoder.prototype.write = function(str) {
      var newBuf = Buffer5.alloc(str.length * (this.gb18030 ? 4 : 3));
      var leadSurrogate = this.leadSurrogate;
      var seqObj = this.seqObj;
      var nextChar = -1;
      var i6 = 0;
      var j = 0;
      while (true) {
        if (nextChar === -1) {
          if (i6 == str.length) break;
          var uCode = str.charCodeAt(i6++);
        } else {
          var uCode = nextChar;
          nextChar = -1;
        }
        if (uCode >= 55296 && uCode < 57344) {
          if (uCode < 56320) {
            if (leadSurrogate === -1) {
              leadSurrogate = uCode;
              continue;
            } else {
              leadSurrogate = uCode;
              uCode = UNASSIGNED;
            }
          } else {
            if (leadSurrogate !== -1) {
              uCode = 65536 + (leadSurrogate - 55296) * 1024 + (uCode - 56320);
              leadSurrogate = -1;
            } else {
              uCode = UNASSIGNED;
            }
          }
        } else if (leadSurrogate !== -1) {
          nextChar = uCode;
          uCode = UNASSIGNED;
          leadSurrogate = -1;
        }
        var dbcsCode = UNASSIGNED;
        if (seqObj !== void 0 && uCode != UNASSIGNED) {
          var resCode = seqObj[uCode];
          if (typeof resCode === "object") {
            seqObj = resCode;
            continue;
          } else if (typeof resCode === "number") {
            dbcsCode = resCode;
          } else if (resCode == void 0) {
            resCode = seqObj[DEF_CHAR];
            if (resCode !== void 0) {
              dbcsCode = resCode;
              nextChar = uCode;
            } else {
            }
          }
          seqObj = void 0;
        } else if (uCode >= 0) {
          var subtable = this.encodeTable[uCode >> 8];
          if (subtable !== void 0) {
            dbcsCode = subtable[uCode & 255];
          }
          if (dbcsCode <= SEQ_START) {
            seqObj = this.encodeTableSeq[SEQ_START - dbcsCode];
            continue;
          }
          if (dbcsCode == UNASSIGNED && this.gb18030) {
            var idx = findIdx(this.gb18030.uChars, uCode);
            if (idx != -1) {
              var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
              newBuf[j++] = 129 + Math.floor(dbcsCode / 12600);
              dbcsCode = dbcsCode % 12600;
              newBuf[j++] = 48 + Math.floor(dbcsCode / 1260);
              dbcsCode = dbcsCode % 1260;
              newBuf[j++] = 129 + Math.floor(dbcsCode / 10);
              dbcsCode = dbcsCode % 10;
              newBuf[j++] = 48 + dbcsCode;
              continue;
            }
          }
        }
        if (dbcsCode === UNASSIGNED) {
          dbcsCode = this.defaultCharSingleByte;
        }
        if (dbcsCode < 256) {
          newBuf[j++] = dbcsCode;
        } else if (dbcsCode < 65536) {
          newBuf[j++] = dbcsCode >> 8;
          newBuf[j++] = dbcsCode & 255;
        } else if (dbcsCode < 16777216) {
          newBuf[j++] = dbcsCode >> 16;
          newBuf[j++] = dbcsCode >> 8 & 255;
          newBuf[j++] = dbcsCode & 255;
        } else {
          newBuf[j++] = dbcsCode >>> 24;
          newBuf[j++] = dbcsCode >>> 16 & 255;
          newBuf[j++] = dbcsCode >>> 8 & 255;
          newBuf[j++] = dbcsCode & 255;
        }
      }
      this.seqObj = seqObj;
      this.leadSurrogate = leadSurrogate;
      return newBuf.slice(0, j);
    };
    DBCSEncoder.prototype.end = function() {
      if (this.leadSurrogate === -1 && this.seqObj === void 0) {
        return;
      }
      var newBuf = Buffer5.alloc(10);
      var j = 0;
      if (this.seqObj) {
        var dbcsCode = this.seqObj[DEF_CHAR];
        if (dbcsCode !== void 0) {
          if (dbcsCode < 256) {
            newBuf[j++] = dbcsCode;
          } else {
            newBuf[j++] = dbcsCode >> 8;
            newBuf[j++] = dbcsCode & 255;
          }
        } else {
        }
        this.seqObj = void 0;
      }
      if (this.leadSurrogate !== -1) {
        newBuf[j++] = this.defaultCharSingleByte;
        this.leadSurrogate = -1;
      }
      return newBuf.slice(0, j);
    };
    DBCSEncoder.prototype.findIdx = findIdx;
    function DBCSDecoder(options, codec) {
      this.nodeIdx = 0;
      this.prevBytes = [];
      this.decodeTables = codec.decodeTables;
      this.decodeTableSeq = codec.decodeTableSeq;
      this.defaultCharUnicode = codec.defaultCharUnicode;
      this.gb18030 = codec.gb18030;
    }
    DBCSDecoder.prototype.write = function(buf) {
      var newBuf = Buffer5.alloc(buf.length * 2);
      var nodeIdx = this.nodeIdx;
      var prevBytes = this.prevBytes;
      var prevOffset = this.prevBytes.length;
      var seqStart = -this.prevBytes.length;
      var uCode;
      for (var i6 = 0, j = 0; i6 < buf.length; i6++) {
        var curByte = i6 >= 0 ? buf[i6] : prevBytes[i6 + prevOffset];
        var uCode = this.decodeTables[nodeIdx][curByte];
        if (uCode >= 0) {
        } else if (uCode === UNASSIGNED) {
          uCode = this.defaultCharUnicode.charCodeAt(0);
          i6 = seqStart;
        } else if (uCode === GB18030_CODE) {
          if (i6 >= 3) {
            var ptr = (buf[i6 - 3] - 129) * 12600 + (buf[i6 - 2] - 48) * 1260 + (buf[i6 - 1] - 129) * 10 + (curByte - 48);
          } else {
            var ptr = (prevBytes[i6 - 3 + prevOffset] - 129) * 12600 + ((i6 - 2 >= 0 ? buf[i6 - 2] : prevBytes[i6 - 2 + prevOffset]) - 48) * 1260 + ((i6 - 1 >= 0 ? buf[i6 - 1] : prevBytes[i6 - 1 + prevOffset]) - 129) * 10 + (curByte - 48);
          }
          var idx = findIdx(this.gb18030.gbChars, ptr);
          uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
        } else if (uCode <= NODE_START) {
          nodeIdx = NODE_START - uCode;
          continue;
        } else if (uCode <= SEQ_START) {
          var seq = this.decodeTableSeq[SEQ_START - uCode];
          for (var k3 = 0; k3 < seq.length - 1; k3++) {
            uCode = seq[k3];
            newBuf[j++] = uCode & 255;
            newBuf[j++] = uCode >> 8;
          }
          uCode = seq[seq.length - 1];
        } else {
          throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);
        }
        if (uCode >= 65536) {
          uCode -= 65536;
          var uCodeLead = 55296 | uCode >> 10;
          newBuf[j++] = uCodeLead & 255;
          newBuf[j++] = uCodeLead >> 8;
          uCode = 56320 | uCode & 1023;
        }
        newBuf[j++] = uCode & 255;
        newBuf[j++] = uCode >> 8;
        nodeIdx = 0;
        seqStart = i6 + 1;
      }
      this.nodeIdx = nodeIdx;
      this.prevBytes = seqStart >= 0 ? Array.prototype.slice.call(buf, seqStart) : prevBytes.slice(seqStart + prevOffset).concat(Array.prototype.slice.call(buf));
      return newBuf.slice(0, j).toString("ucs2");
    };
    DBCSDecoder.prototype.end = function() {
      var ret = "";
      while (this.prevBytes.length > 0) {
        ret += this.defaultCharUnicode;
        var bytesArr = this.prevBytes.slice(1);
        this.prevBytes = [];
        this.nodeIdx = 0;
        if (bytesArr.length > 0) {
          ret += this.write(bytesArr);
        }
      }
      this.prevBytes = [];
      this.nodeIdx = 0;
      return ret;
    };
    function findIdx(table, val) {
      if (table[0] > val) {
        return -1;
      }
      var l4 = 0;
      var r4 = table.length;
      while (l4 < r4 - 1) {
        var mid = l4 + (r4 - l4 + 1 >> 1);
        if (table[mid] <= val) {
          l4 = mid;
        } else {
          r4 = mid;
        }
      }
      return l4;
    }
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/shiftjis.json
var require_shiftjis = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/shiftjis.json"(exports, module) {
    module.exports = [
      ["0", "\0", 128],
      ["a1", "\uFF61", 62],
      ["8140", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7"],
      ["8180", "\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
      ["81b8", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
      ["81c8", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
      ["81da", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
      ["81f0", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
      ["81fc", "\u25EF"],
      ["824f", "\uFF10", 9],
      ["8260", "\uFF21", 25],
      ["8281", "\uFF41", 25],
      ["829f", "\u3041", 82],
      ["8340", "\u30A1", 62],
      ["8380", "\u30E0", 22],
      ["839f", "\u0391", 16, "\u03A3", 6],
      ["83bf", "\u03B1", 16, "\u03C3", 6],
      ["8440", "\u0410", 5, "\u0401\u0416", 25],
      ["8470", "\u0430", 5, "\u0451\u0436", 7],
      ["8480", "\u043E", 17],
      ["849f", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
      ["8740", "\u2460", 19, "\u2160", 9],
      ["875f", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
      ["877e", "\u337B"],
      ["8780", "\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
      ["889f", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
      ["8940", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],
      ["8980", "\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
      ["8a40", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],
      ["8a80", "\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
      ["8b40", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],
      ["8b80", "\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
      ["8c40", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],
      ["8c80", "\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
      ["8d40", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],
      ["8d80", "\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
      ["8e40", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],
      ["8e80", "\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
      ["8f40", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],
      ["8f80", "\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
      ["9040", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],
      ["9080", "\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
      ["9140", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],
      ["9180", "\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
      ["9240", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],
      ["9280", "\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
      ["9340", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],
      ["9380", "\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
      ["9440", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],
      ["9480", "\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
      ["9540", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],
      ["9580", "\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
      ["9640", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],
      ["9680", "\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
      ["9740", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],
      ["9780", "\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
      ["9840", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
      ["989f", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
      ["9940", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],
      ["9980", "\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
      ["9a40", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],
      ["9a80", "\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
      ["9b40", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],
      ["9b80", "\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
      ["9c40", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],
      ["9c80", "\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
      ["9d40", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],
      ["9d80", "\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
      ["9e40", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],
      ["9e80", "\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
      ["9f40", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],
      ["9f80", "\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
      ["e040", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],
      ["e080", "\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
      ["e140", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],
      ["e180", "\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
      ["e240", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],
      ["e280", "\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
      ["e340", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],
      ["e380", "\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
      ["e440", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],
      ["e480", "\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
      ["e540", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],
      ["e580", "\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
      ["e640", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],
      ["e680", "\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
      ["e740", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],
      ["e780", "\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
      ["e840", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],
      ["e880", "\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
      ["e940", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],
      ["e980", "\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
      ["ea40", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],
      ["ea80", "\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],
      ["ed40", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],
      ["ed80", "\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
      ["ee40", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],
      ["ee80", "\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
      ["eeef", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
      ["f040", "\uE000", 62],
      ["f080", "\uE03F", 124],
      ["f140", "\uE0BC", 62],
      ["f180", "\uE0FB", 124],
      ["f240", "\uE178", 62],
      ["f280", "\uE1B7", 124],
      ["f340", "\uE234", 62],
      ["f380", "\uE273", 124],
      ["f440", "\uE2F0", 62],
      ["f480", "\uE32F", 124],
      ["f540", "\uE3AC", 62],
      ["f580", "\uE3EB", 124],
      ["f640", "\uE468", 62],
      ["f680", "\uE4A7", 124],
      ["f740", "\uE524", 62],
      ["f780", "\uE563", 124],
      ["f840", "\uE5E0", 62],
      ["f880", "\uE61F", 124],
      ["f940", "\uE69C"],
      ["fa40", "\u2170", 9, "\u2160", 9, "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],
      ["fa80", "\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],
      ["fb40", "\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],
      ["fb80", "\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],
      ["fc40", "\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/eucjp.json
var require_eucjp = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/eucjp.json"(exports, module) {
    module.exports = [
      ["0", "\0", 127],
      ["8ea1", "\uFF61", 62],
      ["a1a1", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],
      ["a2a1", "\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
      ["a2ba", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
      ["a2ca", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
      ["a2dc", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
      ["a2f2", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
      ["a2fe", "\u25EF"],
      ["a3b0", "\uFF10", 9],
      ["a3c1", "\uFF21", 25],
      ["a3e1", "\uFF41", 25],
      ["a4a1", "\u3041", 82],
      ["a5a1", "\u30A1", 85],
      ["a6a1", "\u0391", 16, "\u03A3", 6],
      ["a6c1", "\u03B1", 16, "\u03C3", 6],
      ["a7a1", "\u0410", 5, "\u0401\u0416", 25],
      ["a7d1", "\u0430", 5, "\u0451\u0436", 25],
      ["a8a1", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
      ["ada1", "\u2460", 19, "\u2160", 9],
      ["adc0", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
      ["addf", "\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
      ["b0a1", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
      ["b1a1", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],
      ["b2a1", "\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
      ["b3a1", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],
      ["b4a1", "\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
      ["b5a1", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],
      ["b6a1", "\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
      ["b7a1", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],
      ["b8a1", "\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
      ["b9a1", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],
      ["baa1", "\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
      ["bba1", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],
      ["bca1", "\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
      ["bda1", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],
      ["bea1", "\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
      ["bfa1", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],
      ["c0a1", "\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
      ["c1a1", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],
      ["c2a1", "\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
      ["c3a1", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],
      ["c4a1", "\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
      ["c5a1", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],
      ["c6a1", "\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
      ["c7a1", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],
      ["c8a1", "\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
      ["c9a1", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],
      ["caa1", "\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
      ["cba1", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],
      ["cca1", "\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
      ["cda1", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],
      ["cea1", "\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
      ["cfa1", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
      ["d0a1", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
      ["d1a1", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],
      ["d2a1", "\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
      ["d3a1", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],
      ["d4a1", "\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
      ["d5a1", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],
      ["d6a1", "\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
      ["d7a1", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],
      ["d8a1", "\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
      ["d9a1", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],
      ["daa1", "\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
      ["dba1", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],
      ["dca1", "\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
      ["dda1", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],
      ["dea1", "\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
      ["dfa1", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],
      ["e0a1", "\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
      ["e1a1", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],
      ["e2a1", "\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
      ["e3a1", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],
      ["e4a1", "\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
      ["e5a1", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],
      ["e6a1", "\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
      ["e7a1", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],
      ["e8a1", "\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
      ["e9a1", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],
      ["eaa1", "\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
      ["eba1", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],
      ["eca1", "\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
      ["eda1", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],
      ["eea1", "\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
      ["efa1", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],
      ["f0a1", "\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
      ["f1a1", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],
      ["f2a1", "\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
      ["f3a1", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],
      ["f4a1", "\u582F\u69C7\u9059\u7464\u51DC\u7199"],
      ["f9a1", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],
      ["faa1", "\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
      ["fba1", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],
      ["fca1", "\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
      ["fcf1", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
      ["8fa2af", "\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],
      ["8fa2c2", "\xA1\xA6\xBF"],
      ["8fa2eb", "\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],
      ["8fa6e1", "\u0386\u0388\u0389\u038A\u03AA"],
      ["8fa6e7", "\u038C"],
      ["8fa6e9", "\u038E\u03AB"],
      ["8fa6ec", "\u038F"],
      ["8fa6f1", "\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],
      ["8fa7c2", "\u0402", 10, "\u040E\u040F"],
      ["8fa7f2", "\u0452", 10, "\u045E\u045F"],
      ["8fa9a1", "\xC6\u0110"],
      ["8fa9a4", "\u0126"],
      ["8fa9a6", "\u0132"],
      ["8fa9a8", "\u0141\u013F"],
      ["8fa9ab", "\u014A\xD8\u0152"],
      ["8fa9af", "\u0166\xDE"],
      ["8fa9c1", "\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],
      ["8faaa1", "\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],
      ["8faaba", "\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],
      ["8faba1", "\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],
      ["8fabbd", "\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],
      ["8fabc5", "\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],
      ["8fb0a1", "\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],
      ["8fb1a1", "\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],
      ["8fb2a1", "\u5092\u5093\u5094\u5096\u509B\u509C\u509E", 4, "\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],
      ["8fb3a1", "\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],
      ["8fb4a1", "\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],
      ["8fb5a1", "\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],
      ["8fb6a1", "\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D", 5, "\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4", 4, "\u56F1\u56EB\u56ED"],
      ["8fb7a1", "\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D", 4, "\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],
      ["8fb8a1", "\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],
      ["8fb9a1", "\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],
      ["8fbaa1", "\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6", 4, "\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],
      ["8fbba1", "\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],
      ["8fbca1", "\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A", 4, "\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],
      ["8fbda1", "\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0", 4, "\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],
      ["8fbea1", "\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110", 4, "\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],
      ["8fbfa1", "\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],
      ["8fc0a1", "\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],
      ["8fc1a1", "\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],
      ["8fc2a1", "\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],
      ["8fc3a1", "\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E", 4, "\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],
      ["8fc4a1", "\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],
      ["8fc5a1", "\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],
      ["8fc6a1", "\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],
      ["8fc7a1", "\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],
      ["8fc8a1", "\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],
      ["8fc9a1", "\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094", 4, "\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103", 4, "\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],
      ["8fcaa1", "\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],
      ["8fcba1", "\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],
      ["8fcca1", "\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428", 9, "\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],
      ["8fcda1", "\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579", 5, "\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],
      ["8fcea1", "\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2", 6, "\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],
      ["8fcfa1", "\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],
      ["8fd0a1", "\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],
      ["8fd1a1", "\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],
      ["8fd2a1", "\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59", 5],
      ["8fd3a1", "\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],
      ["8fd4a1", "\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2", 4, "\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],
      ["8fd5a1", "\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],
      ["8fd6a1", "\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],
      ["8fd7a1", "\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],
      ["8fd8a1", "\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],
      ["8fd9a1", "\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F", 4, "\u8556\u8559\u855C", 6, "\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],
      ["8fdaa1", "\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660", 4, "\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],
      ["8fdba1", "\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783", 6, "\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],
      ["8fdca1", "\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA", 4, "\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],
      ["8fdda1", "\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4", 4, "\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],
      ["8fdea1", "\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42", 4, "\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],
      ["8fdfa1", "\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],
      ["8fe0a1", "\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],
      ["8fe1a1", "\u8F43\u8F47\u8F4F\u8F51", 4, "\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],
      ["8fe2a1", "\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],
      ["8fe3a1", "\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC", 5, "\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275", 4, "\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],
      ["8fe4a1", "\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF", 4, "\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],
      ["8fe5a1", "\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9", 4, "\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],
      ["8fe6a1", "\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],
      ["8fe7a1", "\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],
      ["8fe8a1", "\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931", 4, "\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],
      ["8fe9a1", "\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF", 4],
      ["8feaa1", "\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A", 4, "\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],
      ["8feba1", "\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26", 4, "\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],
      ["8feca1", "\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],
      ["8feda1", "\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43", 4, "\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D", 4, "\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/cp936.json
var require_cp936 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/cp936.json"(exports, module) {
    module.exports = [
      ["0", "\0", 127, "\u20AC"],
      ["8140", "\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A", 5, "\u4E72\u4E74", 9, "\u4E7F", 6, "\u4E87\u4E8A"],
      ["8180", "\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02", 6, "\u4F0B\u4F0C\u4F12", 4, "\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E", 4, "\u4F44\u4F45\u4F47", 5, "\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],
      ["8240", "\u4FA4\u4FAB\u4FAD\u4FB0", 4, "\u4FB6", 8, "\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2", 4, "\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF", 11],
      ["8280", "\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F", 10, "\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050", 4, "\u5056\u5057\u5058\u5059\u505B\u505D", 7, "\u5066", 5, "\u506D", 8, "\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E", 20, "\u50A4\u50A6\u50AA\u50AB\u50AD", 4, "\u50B3", 6, "\u50BC"],
      ["8340", "\u50BD", 17, "\u50D0", 5, "\u50D7\u50D8\u50D9\u50DB", 10, "\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6", 4, "\u50FC", 9, "\u5108"],
      ["8380", "\u5109\u510A\u510C", 5, "\u5113", 13, "\u5122", 28, "\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D", 4, "\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6", 4, "\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2", 5],
      ["8440", "\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5", 5, "\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244", 5, "\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],
      ["8480", "\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273", 9, "\u527E\u5280\u5283", 4, "\u5289", 6, "\u5291\u5292\u5294", 6, "\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4", 9, "\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9", 5, "\u52E0\u52E1\u52E2\u52E3\u52E5", 10, "\u52F1", 7, "\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],
      ["8540", "\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F", 9, "\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],
      ["8580", "\u5390", 4, "\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF", 6, "\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3", 4, "\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D", 4, "\u5463\u5465\u5467\u5469", 7, "\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],
      ["8640", "\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0", 4, "\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4", 5, "\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A", 4, "\u5512\u5513\u5515", 5, "\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],
      ["8680", "\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B", 4, "\u5551\u5552\u5553\u5554\u5557", 4, "\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F", 5, "\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0", 6, "\u55A8", 8, "\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF", 4, "\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7", 4, "\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8", 4, "\u55FF\u5602\u5603\u5604\u5605"],
      ["8740", "\u5606\u5607\u560A\u560B\u560D\u5610", 7, "\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640", 11, "\u564F", 4, "\u5655\u5656\u565A\u565B\u565D", 4],
      ["8780", "\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D", 7, "\u5687", 6, "\u5690\u5691\u5692\u5694", 14, "\u56A4", 10, "\u56B0", 6, "\u56B8\u56B9\u56BA\u56BB\u56BD", 12, "\u56CB", 8, "\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5", 5, "\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B", 6],
      ["8840", "\u5712", 9, "\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734", 4, "\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752", 4, "\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],
      ["8880", "\u5781\u5787\u5788\u5789\u578A\u578D", 4, "\u5794", 6, "\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9", 8, "\u57C4", 6, "\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5", 7, "\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825", 4, "\u582B", 4, "\u5831\u5832\u5833\u5834\u5836", 7],
      ["8940", "\u583E", 5, "\u5845", 6, "\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859", 4, "\u585F", 5, "\u5866", 4, "\u586D", 16, "\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],
      ["8980", "\u588D", 4, "\u5894", 4, "\u589B\u589C\u589D\u58A0", 7, "\u58AA", 17, "\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6", 10, "\u58D2\u58D3\u58D4\u58D6", 13, "\u58E5", 5, "\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA", 7, "\u5903\u5905\u5906\u5908", 4, "\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],
      ["8a40", "\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B", 4, "\u5961\u5963\u5964\u5966", 12, "\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],
      ["8a80", "\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3", 5, "\u59BA\u59BC\u59BD\u59BF", 6, "\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE", 4, "\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED", 11, "\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A", 6, "\u5A33\u5A35\u5A37", 4, "\u5A3D\u5A3E\u5A3F\u5A41", 4, "\u5A47\u5A48\u5A4B", 9, "\u5A56\u5A57\u5A58\u5A59\u5A5B", 5],
      ["8b40", "\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B", 8, "\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80", 17, "\u5A93", 6, "\u5A9C", 13, "\u5AAB\u5AAC"],
      ["8b80", "\u5AAD", 4, "\u5AB4\u5AB6\u5AB7\u5AB9", 4, "\u5ABF\u5AC0\u5AC3", 5, "\u5ACA\u5ACB\u5ACD", 4, "\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC", 4, "\u5AF2", 22, "\u5B0A", 11, "\u5B18", 25, "\u5B33\u5B35\u5B36\u5B38", 7, "\u5B41", 6],
      ["8c40", "\u5B48", 7, "\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],
      ["8c80", "\u5BD1\u5BD4", 8, "\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9", 4, "\u5BEF\u5BF1", 6, "\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67", 6, "\u5C70\u5C72", 6, "\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83", 4, "\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D", 4, "\u5CA4", 4],
      ["8d40", "\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5", 5, "\u5CCC", 5, "\u5CD3", 5, "\u5CDA", 6, "\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1", 9, "\u5CFC", 4],
      ["8d80", "\u5D01\u5D04\u5D05\u5D08", 5, "\u5D0F", 4, "\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F", 4, "\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F", 4, "\u5D35", 7, "\u5D3F", 7, "\u5D48\u5D49\u5D4D", 10, "\u5D59\u5D5A\u5D5C\u5D5E", 10, "\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75", 12, "\u5D83", 21, "\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],
      ["8e40", "\u5DA1", 21, "\u5DB8", 12, "\u5DC6", 6, "\u5DCE", 12, "\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],
      ["8e80", "\u5DF0\u5DF5\u5DF6\u5DF8", 4, "\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E", 7, "\u5E28", 4, "\u5E2F\u5E30\u5E32", 4, "\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46", 5, "\u5E4D", 6, "\u5E56", 4, "\u5E5C\u5E5D\u5E5F\u5E60\u5E63", 14, "\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8", 4, "\u5EAE", 4, "\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF", 6],
      ["8f40", "\u5EC6\u5EC7\u5EC8\u5ECB", 5, "\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC", 11, "\u5EE9\u5EEB", 8, "\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],
      ["8f80", "\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32", 6, "\u5F3B\u5F3D\u5F3E\u5F3F\u5F41", 14, "\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2", 5, "\u5FA9\u5FAB\u5FAC\u5FAF", 5, "\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE", 4, "\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],
      ["9040", "\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030", 4, "\u6036", 4, "\u603D\u603E\u6040\u6044", 6, "\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],
      ["9080", "\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD", 7, "\u60C7\u60C8\u60C9\u60CC", 4, "\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1", 4, "\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB", 4, "\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110", 4, "\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C", 18, "\u6140", 6],
      ["9140", "\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156", 6, "\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169", 6, "\u6171\u6172\u6173\u6174\u6176\u6178", 18, "\u618C\u618D\u618F", 4, "\u6195"],
      ["9180", "\u6196", 6, "\u619E", 8, "\u61AA\u61AB\u61AD", 9, "\u61B8", 5, "\u61BF\u61C0\u61C1\u61C3", 4, "\u61C9\u61CC", 4, "\u61D3\u61D5", 16, "\u61E7", 13, "\u61F6", 8, "\u6200", 5, "\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238", 4, "\u6242\u6244\u6245\u6246\u624A"],
      ["9240", "\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C", 6, "\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B", 5, "\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],
      ["9280", "\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333", 5, "\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356", 7, "\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399", 6, "\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],
      ["9340", "\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7", 6, "\u63DF\u63E2\u63E4", 4, "\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406", 4, "\u640D\u640E\u6411\u6412\u6415", 5, "\u641D\u641F\u6422\u6423\u6424"],
      ["9380", "\u6425\u6427\u6428\u6429\u642B\u642E", 5, "\u6435", 4, "\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B", 6, "\u6453\u6455\u6456\u6457\u6459", 4, "\u645F", 7, "\u6468\u646A\u646B\u646C\u646E", 9, "\u647B", 6, "\u6483\u6486\u6488", 8, "\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F", 4, "\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6", 6, "\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],
      ["9440", "\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7", 24, "\u6501", 7, "\u650A", 7, "\u6513", 4, "\u6519", 8],
      ["9480", "\u6522\u6523\u6524\u6526", 4, "\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540", 4, "\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578", 14, "\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1", 7, "\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8", 7, "\u65E1\u65E3\u65E4\u65EA\u65EB"],
      ["9540", "\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB", 4, "\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637", 4, "\u663D\u663F\u6640\u6642\u6644", 6, "\u664D\u664E\u6650\u6651\u6658"],
      ["9580", "\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669", 4, "\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698", 4, "\u669E", 8, "\u66A9", 4, "\u66AF", 4, "\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF", 25, "\u66DA\u66DE", 7, "\u66E7\u66E8\u66EA", 5, "\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],
      ["9640", "\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720", 5, "\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757", 4, "\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],
      ["9680", "\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9", 7, "\u67C2\u67C5", 9, "\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5", 7, "\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818", 4, "\u681E\u681F\u6820\u6822", 6, "\u682B", 6, "\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856", 5],
      ["9740", "\u685C\u685D\u685E\u685F\u686A\u686C", 7, "\u6875\u6878", 8, "\u6882\u6884\u6887", 7, "\u6890\u6891\u6892\u6894\u6895\u6896\u6898", 9, "\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],
      ["9780", "\u68B9", 6, "\u68C1\u68C3", 5, "\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB", 4, "\u68E1\u68E2\u68E4", 9, "\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906", 4, "\u690C\u690F\u6911\u6913", 11, "\u6921\u6922\u6923\u6925", 7, "\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943", 16, "\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],
      ["9840", "\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972", 4, "\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E", 5, "\u6996\u6997\u6999\u699A\u699D", 9, "\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],
      ["9880", "\u69BE\u69BF\u69C0\u69C2", 7, "\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5", 5, "\u69DC\u69DD\u69DE\u69E1", 11, "\u69EE\u69EF\u69F0\u69F1\u69F3", 9, "\u69FE\u6A00", 9, "\u6A0B", 11, "\u6A19", 5, "\u6A20\u6A22", 5, "\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36", 6, "\u6A3F", 4, "\u6A45\u6A46\u6A48", 7, "\u6A51", 6, "\u6A5A"],
      ["9940", "\u6A5C", 4, "\u6A62\u6A63\u6A64\u6A66", 10, "\u6A72", 6, "\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85", 8, "\u6A8F\u6A92", 4, "\u6A98", 7, "\u6AA1", 5],
      ["9980", "\u6AA7\u6AA8\u6AAA\u6AAD", 114, "\u6B25\u6B26\u6B28", 6],
      ["9a40", "\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D", 11, "\u6B5A", 7, "\u6B68\u6B69\u6B6B", 13, "\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],
      ["9a80", "\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C", 4, "\u6BA2", 7, "\u6BAB", 7, "\u6BB6\u6BB8", 6, "\u6BC0\u6BC3\u6BC4\u6BC6", 4, "\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC", 4, "\u6BE2", 7, "\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE", 6, "\u6C08", 4, "\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B", 4, "\u6C51\u6C52\u6C53\u6C56\u6C58"],
      ["9b40", "\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B", 4, "\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],
      ["9b80", "\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F", 5, "\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D", 4, "\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96", 4, "\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9", 5, "\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],
      ["9c40", "\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD", 7, "\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],
      ["9c80", "\u6E36\u6E37\u6E39\u6E3B", 7, "\u6E45", 7, "\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60", 10, "\u6E6C\u6E6D\u6E6F", 14, "\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A", 4, "\u6E91", 6, "\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA", 5],
      ["9d40", "\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA", 7, "\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A", 4, "\u6F10\u6F11\u6F12\u6F16", 9, "\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37", 6, "\u6F3F\u6F40\u6F41\u6F42"],
      ["9d80", "\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E", 9, "\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67", 5, "\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D", 6, "\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F", 12, "\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2", 4, "\u6FA8", 10, "\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA", 5, "\u6FC1\u6FC3", 5, "\u6FCA", 6, "\u6FD3", 10, "\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],
      ["9e40", "\u6FE6", 7, "\u6FF0", 32, "\u7012", 7, "\u701C", 6, "\u7024", 6],
      ["9e80", "\u702B", 9, "\u7036\u7037\u7038\u703A", 17, "\u704D\u704E\u7050", 13, "\u705F", 11, "\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E", 12, "\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB", 12, "\u70DA"],
      ["9f40", "\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0", 6, "\u70F8\u70FA\u70FB\u70FC\u70FE", 10, "\u710B", 4, "\u7111\u7112\u7114\u7117\u711B", 10, "\u7127", 7, "\u7132\u7133\u7134"],
      ["9f80", "\u7135\u7137", 13, "\u7146\u7147\u7148\u7149\u714B\u714D\u714F", 12, "\u715D\u715F", 4, "\u7165\u7169", 4, "\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E", 5, "\u7185", 4, "\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A", 4, "\u71A1", 6, "\u71A9\u71AA\u71AB\u71AD", 5, "\u71B4\u71B6\u71B7\u71B8\u71BA", 8, "\u71C4", 9, "\u71CF", 4],
      ["a040", "\u71D6", 9, "\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8", 5, "\u71EF", 9, "\u71FA", 11, "\u7207", 19],
      ["a080", "\u721B\u721C\u721E", 9, "\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240", 6, "\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285", 4, "\u728C\u728E\u7290\u7291\u7293", 11, "\u72A0", 11, "\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA", 6, "\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],
      ["a1a1", "\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 7, "\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],
      ["a2a1", "\u2170", 9],
      ["a2b1", "\u2488", 19, "\u2474", 19, "\u2460", 9],
      ["a2e5", "\u3220", 9],
      ["a2f1", "\u2160", 11],
      ["a3a1", "\uFF01\uFF02\uFF03\uFFE5\uFF05", 88, "\uFFE3"],
      ["a4a1", "\u3041", 82],
      ["a5a1", "\u30A1", 85],
      ["a6a1", "\u0391", 16, "\u03A3", 6],
      ["a6c1", "\u03B1", 16, "\u03C3", 6],
      ["a6e0", "\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],
      ["a6ee", "\uFE3B\uFE3C\uFE37\uFE38\uFE31"],
      ["a6f4", "\uFE33\uFE34"],
      ["a7a1", "\u0410", 5, "\u0401\u0416", 25],
      ["a7d1", "\u0430", 5, "\u0451\u0436", 25],
      ["a840", "\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550", 35, "\u2581", 6],
      ["a880", "\u2588", 7, "\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],
      ["a8a1", "\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],
      ["a8bd", "\u0144\u0148"],
      ["a8c0", "\u0261"],
      ["a8c5", "\u3105", 36],
      ["a940", "\u3021", 8, "\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],
      ["a959", "\u2121\u3231"],
      ["a95c", "\u2010"],
      ["a960", "\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49", 9, "\uFE54\uFE55\uFE56\uFE57\uFE59", 8],
      ["a980", "\uFE62", 4, "\uFE68\uFE69\uFE6A\uFE6B"],
      ["a996", "\u3007"],
      ["a9a4", "\u2500", 75],
      ["aa40", "\u72DC\u72DD\u72DF\u72E2", 5, "\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304", 5, "\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340", 8],
      ["aa80", "\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358", 7, "\u7361", 10, "\u736E\u7370\u7371"],
      ["ab40", "\u7372", 11, "\u737F", 4, "\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3", 5, "\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3", 4],
      ["ab80", "\u73CB\u73CC\u73CE\u73D2", 6, "\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3", 4],
      ["ac40", "\u73F8", 10, "\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411", 8, "\u741C", 5, "\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437", 4, "\u743D\u743E\u743F\u7440\u7442", 11],
      ["ac80", "\u744E", 6, "\u7456\u7458\u745D\u7460", 12, "\u746E\u746F\u7471", 4, "\u7478\u7479\u747A"],
      ["ad40", "\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491", 10, "\u749D\u749F", 7, "\u74AA", 15, "\u74BB", 12],
      ["ad80", "\u74C8", 9, "\u74D3", 8, "\u74DD\u74DF\u74E1\u74E5\u74E7", 6, "\u74F0\u74F1\u74F2"],
      ["ae40", "\u74F3\u74F5\u74F8", 6, "\u7500\u7501\u7502\u7503\u7505", 7, "\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520", 4, "\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],
      ["ae80", "\u755D", 7, "\u7567\u7568\u7569\u756B", 6, "\u7573\u7575\u7576\u7577\u757A", 4, "\u7580\u7581\u7582\u7584\u7585\u7587"],
      ["af40", "\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6", 4, "\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],
      ["af80", "\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],
      ["b040", "\u7645", 6, "\u764E", 5, "\u7655\u7657", 4, "\u765D\u765F\u7660\u7661\u7662\u7664", 6, "\u766C\u766D\u766E\u7670", 7, "\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],
      ["b080", "\u769C", 7, "\u76A5", 8, "\u76AF\u76B0\u76B3\u76B5", 9, "\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],
      ["b140", "\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0", 4, "\u76E6", 7, "\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E", 10, "\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],
      ["b180", "\u772C\u772E\u7730", 4, "\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748", 7, "\u7752", 7, "\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],
      ["b240", "\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D", 11, "\u777A\u777B\u777C\u7781\u7782\u7783\u7786", 5, "\u778F\u7790\u7793", 11, "\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6", 4],
      ["b280", "\u77BC\u77BE\u77C0", 12, "\u77CE", 8, "\u77D8\u77D9\u77DA\u77DD", 4, "\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],
      ["b340", "\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803", 5, "\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],
      ["b380", "\u785B\u785C\u785E", 11, "\u786F", 7, "\u7878\u7879\u787A\u787B\u787D", 6, "\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],
      ["b440", "\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8", 7, "\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA", 9],
      ["b480", "\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED", 4, "\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB", 5, "\u7902\u7903\u7904\u7906", 6, "\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],
      ["b540", "\u790D", 5, "\u7914", 9, "\u791F", 4, "\u7925", 14, "\u7935", 4, "\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A", 8, "\u7954\u7955\u7958\u7959\u7961\u7963"],
      ["b580", "\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970", 6, "\u7979\u797B", 4, "\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],
      ["b640", "\u7993", 6, "\u799B", 11, "\u79A8", 10, "\u79B4", 4, "\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9", 5, "\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],
      ["b680", "\u79EC\u79EE\u79F1", 6, "\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F", 4, "\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],
      ["b740", "\u7A1D\u7A1F\u7A21\u7A22\u7A24", 14, "\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40", 5, "\u7A47", 9, "\u7A52", 4, "\u7A58", 16],
      ["b780", "\u7A69", 6, "\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],
      ["b840", "\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE", 4, "\u7AB4", 10, "\u7AC0", 10, "\u7ACC", 9, "\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7", 5, "\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],
      ["b880", "\u7AF4", 4, "\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],
      ["b940", "\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F", 5, "\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63", 10, "\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86", 6, "\u7B8E\u7B8F"],
      ["b980", "\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9", 7, "\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],
      ["ba40", "\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4", 4, "\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2", 4, "\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF", 7, "\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10", 5, "\u7C17\u7C18\u7C19"],
      ["ba80", "\u7C1A", 4, "\u7C20", 5, "\u7C28\u7C29\u7C2B", 12, "\u7C39", 5, "\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],
      ["bb40", "\u7C43", 9, "\u7C4E", 36, "\u7C75", 5, "\u7C7E", 9],
      ["bb80", "\u7C88\u7C8A", 6, "\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4", 4, "\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],
      ["bc40", "\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE", 6, "\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1", 6, "\u7CE9", 5, "\u7CF0", 7, "\u7CF9\u7CFA\u7CFC", 13, "\u7D0B", 5],
      ["bc80", "\u7D11", 14, "\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30", 6, "\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],
      ["bd40", "\u7D37", 54, "\u7D6F", 7],
      ["bd80", "\u7D78", 32, "\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],
      ["be40", "\u7D99", 12, "\u7DA7", 6, "\u7DAF", 42],
      ["be80", "\u7DDA", 32, "\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],
      ["bf40", "\u7DFB", 62],
      ["bf80", "\u7E3A\u7E3C", 4, "\u7E42", 4, "\u7E48", 21, "\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],
      ["c040", "\u7E5E", 35, "\u7E83", 23, "\u7E9C\u7E9D\u7E9E"],
      ["c080", "\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B", 6, "\u7F43\u7F46", 9, "\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],
      ["c140", "\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63", 4, "\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82", 7, "\u7F8B\u7F8D\u7F8F", 4, "\u7F95", 4, "\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8", 6, "\u7FB1"],
      ["c180", "\u7FB3", 4, "\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF", 4, "\u7FD6\u7FD7\u7FD9", 5, "\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],
      ["c240", "\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4", 6, "\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B", 5, "\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],
      ["c280", "\u8059\u805B", 13, "\u806B", 5, "\u8072", 11, "\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],
      ["c340", "\u807E\u8081\u8082\u8085\u8088\u808A\u808D", 5, "\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7", 4, "\u80CF", 6, "\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],
      ["c380", "\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F", 12, "\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139", 4, "\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],
      ["c440", "\u8140", 5, "\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B", 4, "\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183", 4, "\u8189\u818B\u818C\u818D\u818E\u8190\u8192", 5, "\u8199\u819A\u819E", 4, "\u81A4\u81A5"],
      ["c480", "\u81A7\u81A9\u81AB", 7, "\u81B4", 5, "\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD", 6, "\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],
      ["c540", "\u81D4", 14, "\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE", 4, "\u81F5", 5, "\u81FD\u81FF\u8203\u8207", 4, "\u820E\u820F\u8211\u8213\u8215", 5, "\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],
      ["c580", "\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250", 7, "\u8259\u825B\u825C\u825D\u825E\u8260", 7, "\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],
      ["c640", "\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],
      ["c680", "\u82FA\u82FC", 4, "\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D", 9, "\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],
      ["c740", "\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A", 4, "\u8353\u8355", 4, "\u835D\u8362\u8370", 6, "\u8379\u837A\u837E", 6, "\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1", 6, "\u83AC\u83AD\u83AE"],
      ["c780", "\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],
      ["c840", "\u83EE\u83EF\u83F3", 4, "\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412", 5, "\u8419\u841A\u841B\u841E", 5, "\u8429", 7, "\u8432", 5, "\u8439\u843A\u843B\u843E", 7, "\u8447\u8448\u8449"],
      ["c880", "\u844A", 6, "\u8452", 4, "\u8458\u845D\u845E\u845F\u8460\u8462\u8464", 4, "\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],
      ["c940", "\u847D", 4, "\u8483\u8484\u8485\u8486\u848A\u848D\u848F", 7, "\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2", 12, "\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],
      ["c980", "\u84D8", 4, "\u84DE\u84E1\u84E2\u84E4\u84E7", 4, "\u84ED\u84EE\u84EF\u84F1", 10, "\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],
      ["ca40", "\u8503", 8, "\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522", 8, "\u852D", 9, "\u853E", 4, "\u8544\u8545\u8546\u8547\u854B", 10],
      ["ca80", "\u8557\u8558\u855A\u855B\u855C\u855D\u855F", 4, "\u8565\u8566\u8567\u8569", 8, "\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],
      ["cb40", "\u8582\u8583\u8586\u8588", 6, "\u8590", 10, "\u859D", 6, "\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1", 5, "\u85B8\u85BA", 6, "\u85C2", 6, "\u85CA", 4, "\u85D1\u85D2"],
      ["cb80", "\u85D4\u85D6", 5, "\u85DD", 6, "\u85E5\u85E6\u85E7\u85E8\u85EA", 14, "\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],
      ["cc40", "\u85F9\u85FA\u85FC\u85FD\u85FE\u8600", 4, "\u8606", 10, "\u8612\u8613\u8614\u8615\u8617", 15, "\u8628\u862A", 13, "\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],
      ["cc80", "\u8641", 11, "\u8652\u8653\u8655", 4, "\u865B\u865C\u865D\u865F\u8660\u8661\u8663", 7, "\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],
      ["cd40", "\u866D\u866F\u8670\u8672", 6, "\u8683", 6, "\u868E", 4, "\u8694\u8696", 5, "\u869E", 4, "\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB", 4, "\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],
      ["cd80", "\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],
      ["ce40", "\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740", 6, "\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A", 5, "\u8761\u8762\u8766", 7, "\u876F\u8771\u8772\u8773\u8775"],
      ["ce80", "\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E", 4, "\u8794\u8795\u8796\u8798", 6, "\u87A0", 4, "\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],
      ["cf40", "\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1", 4, "\u87C7\u87C8\u87C9\u87CC", 4, "\u87D4", 6, "\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF", 9],
      ["cf80", "\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804", 5, "\u880B", 7, "\u8814\u8817\u8818\u8819\u881A\u881C", 4, "\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],
      ["d040", "\u8824", 13, "\u8833", 5, "\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846", 5, "\u884E", 5, "\u8855\u8856\u8858\u885A", 6, "\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],
      ["d080", "\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897", 4, "\u889D", 4, "\u88A3\u88A5", 5, "\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],
      ["d140", "\u88AC\u88AE\u88AF\u88B0\u88B2", 4, "\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA", 4, "\u88E0\u88E1\u88E6\u88E7\u88E9", 6, "\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903", 5],
      ["d180", "\u8909\u890B", 4, "\u8911\u8914", 4, "\u891C", 4, "\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],
      ["d240", "\u8938", 8, "\u8942\u8943\u8945", 24, "\u8960", 5, "\u8967", 19, "\u897C"],
      ["d280", "\u897D\u897E\u8980\u8982\u8984\u8985\u8987", 26, "\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],
      ["d340", "\u89A2", 30, "\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4", 6],
      ["d380", "\u89FB", 4, "\u8A01", 5, "\u8A08", 21, "\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],
      ["d440", "\u8A1E", 31, "\u8A3F", 8, "\u8A49", 21],
      ["d480", "\u8A5F", 25, "\u8A7A", 6, "\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],
      ["d540", "\u8A81", 7, "\u8A8B", 7, "\u8A94", 46],
      ["d580", "\u8AC3", 32, "\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],
      ["d640", "\u8AE4", 34, "\u8B08", 27],
      ["d680", "\u8B24\u8B25\u8B27", 30, "\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],
      ["d740", "\u8B46", 31, "\u8B67", 4, "\u8B6D", 25],
      ["d780", "\u8B87", 24, "\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],
      ["d840", "\u8C38", 8, "\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D", 7, "\u8C56\u8C57\u8C58\u8C59\u8C5B", 5, "\u8C63", 6, "\u8C6C", 6, "\u8C74\u8C75\u8C76\u8C77\u8C7B", 6, "\u8C83\u8C84\u8C86\u8C87"],
      ["d880", "\u8C88\u8C8B\u8C8D", 6, "\u8C95\u8C96\u8C97\u8C99", 20, "\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],
      ["d940", "\u8CAE", 62],
      ["d980", "\u8CED", 32, "\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],
      ["da40", "\u8D0E", 14, "\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78", 8, "\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C", 4, "\u8D92\u8D93\u8D95", 9, "\u8DA0\u8DA1"],
      ["da80", "\u8DA2\u8DA4", 12, "\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],
      ["db40", "\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE", 6, "\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15", 7, "\u8E20\u8E21\u8E24", 4, "\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],
      ["db80", "\u8E3F\u8E43\u8E45\u8E46\u8E4C", 4, "\u8E53", 5, "\u8E5A", 11, "\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],
      ["dc40", "\u8E73\u8E75\u8E77", 4, "\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88", 6, "\u8E91\u8E92\u8E93\u8E95", 6, "\u8E9D\u8E9F", 11, "\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3", 6, "\u8EBB", 7],
      ["dc80", "\u8EC3", 10, "\u8ECF", 21, "\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],
      ["dd40", "\u8EE5", 62],
      ["dd80", "\u8F24", 32, "\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],
      ["de40", "\u8F45", 32, "\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],
      ["de80", "\u8FC9", 4, "\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],
      ["df40", "\u9019\u901C\u9023\u9024\u9025\u9027", 5, "\u9030", 4, "\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048", 4, "\u904E\u9054\u9055\u9056\u9059\u905A\u905C", 5, "\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F", 4, "\u9076", 6, "\u907E\u9081"],
      ["df80", "\u9084\u9085\u9086\u9087\u9089\u908A\u908C", 4, "\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],
      ["e040", "\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105", 19, "\u911A\u911B\u911C"],
      ["e080", "\u911D\u911F\u9120\u9121\u9124", 10, "\u9130\u9132", 6, "\u913A", 8, "\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],
      ["e140", "\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180", 4, "\u9186\u9188\u918A\u918E\u918F\u9193", 6, "\u919C", 5, "\u91A4", 5, "\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],
      ["e180", "\u91BC", 10, "\u91C8\u91CB\u91D0\u91D2", 9, "\u91DD", 8, "\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],
      ["e240", "\u91E6", 62],
      ["e280", "\u9225", 32, "\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967", 5, "\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],
      ["e340", "\u9246", 45, "\u9275", 16],
      ["e380", "\u9286", 7, "\u928F", 24, "\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],
      ["e440", "\u92A8", 5, "\u92AF", 24, "\u92C9", 31],
      ["e480", "\u92E9", 32, "\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],
      ["e540", "\u930A", 51, "\u933F", 10],
      ["e580", "\u934A", 31, "\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],
      ["e640", "\u936C", 34, "\u9390", 27],
      ["e680", "\u93AC", 29, "\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],
      ["e740", "\u93CE", 7, "\u93D7", 54],
      ["e780", "\u940E", 32, "\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21", 6, "\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F", 4, "\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],
      ["e840", "\u942F", 14, "\u943F", 43, "\u946C\u946D\u946E\u946F"],
      ["e880", "\u9470", 20, "\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],
      ["e940", "\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577", 7, "\u9580", 42],
      ["e980", "\u95AB", 32, "\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],
      ["ea40", "\u95CC", 27, "\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623", 6, "\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],
      ["ea80", "\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D", 4, "\u9673\u9678", 12, "\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],
      ["eb40", "\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D", 9, "\u96A8", 7, "\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6", 9, "\u96E1", 6, "\u96EB"],
      ["eb80", "\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717", 4, "\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],
      ["ec40", "\u9721", 8, "\u972B\u972C\u972E\u972F\u9731\u9733", 4, "\u973A\u973B\u973C\u973D\u973F", 18, "\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A", 7],
      ["ec80", "\u9772\u9775\u9777", 4, "\u977D", 7, "\u9786", 4, "\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799", 4, "\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],
      ["ed40", "\u979E\u979F\u97A1\u97A2\u97A4", 6, "\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5", 46],
      ["ed80", "\u97E4\u97E5\u97E8\u97EE", 4, "\u97F4\u97F7", 23, "\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],
      ["ee40", "\u980F", 62],
      ["ee80", "\u984E", 32, "\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6", 4, "\u94BC\u94BD\u94BF\u94C4\u94C8", 6, "\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],
      ["ef40", "\u986F", 5, "\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8", 37, "\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0", 4],
      ["ef80", "\u98E5\u98E6\u98E9", 30, "\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512", 4, "\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564", 8, "\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],
      ["f040", "\u9908", 4, "\u990E\u990F\u9911", 28, "\u992F", 26],
      ["f080", "\u994A", 9, "\u9956", 12, "\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28", 4, "\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66", 6, "\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],
      ["f140", "\u998C\u998E\u999A", 10, "\u99A6\u99A7\u99A9", 47],
      ["f180", "\u99D9", 32, "\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],
      ["f240", "\u99FA", 62],
      ["f280", "\u9A39", 32, "\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],
      ["f340", "\u9A5A", 17, "\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9", 6, "\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6", 4, "\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],
      ["f380", "\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0", 8, "\u9AFA\u9AFC", 6, "\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],
      ["f440", "\u9B07\u9B09", 5, "\u9B10\u9B11\u9B12\u9B14", 10, "\u9B20\u9B21\u9B22\u9B24", 10, "\u9B30\u9B31\u9B33", 7, "\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55", 5],
      ["f480", "\u9B5B", 32, "\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],
      ["f540", "\u9B7C", 62],
      ["f580", "\u9BBB", 32, "\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],
      ["f640", "\u9BDC", 62],
      ["f680", "\u9C1B", 32, "\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85", 5, "\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E", 5, "\u9CA5", 4, "\u9CAB\u9CAD\u9CAE\u9CB0", 7, "\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],
      ["f740", "\u9C3C", 62],
      ["f780", "\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE", 4, "\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC", 4, "\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],
      ["f840", "\u9CE3", 62],
      ["f880", "\u9D22", 32],
      ["f940", "\u9D43", 62],
      ["f980", "\u9D82", 32],
      ["fa40", "\u9DA3", 62],
      ["fa80", "\u9DE2", 32],
      ["fb40", "\u9E03", 27, "\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74", 9, "\u9E80"],
      ["fb80", "\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C", 5, "\u9E94", 8, "\u9E9E\u9EA0", 5, "\u9EA7\u9EA8\u9EA9\u9EAA"],
      ["fc40", "\u9EAB", 8, "\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF", 4, "\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0", 8, "\u9EFA\u9EFD\u9EFF", 6],
      ["fc80", "\u9F06", 4, "\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A", 5, "\u9F21\u9F23", 8, "\u9F2D\u9F2E\u9F30\u9F31"],
      ["fd40", "\u9F32", 4, "\u9F38\u9F3A\u9F3C\u9F3F", 4, "\u9F45", 10, "\u9F52", 38],
      ["fd80", "\u9F79", 5, "\u9F81\u9F82\u9F8D", 11, "\u9F9C\u9F9D\u9F9E\u9FA1", 4, "\uF92C\uF979\uF995\uF9E7\uF9F1"],
      ["fe40", "\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/gbk-added.json
var require_gbk_added = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/gbk-added.json"(exports, module) {
    module.exports = [
      ["a140", "\uE4C6", 62],
      ["a180", "\uE505", 32],
      ["a240", "\uE526", 62],
      ["a280", "\uE565", 32],
      ["a2ab", "\uE766", 5],
      ["a2e3", "\u20AC\uE76D"],
      ["a2ef", "\uE76E\uE76F"],
      ["a2fd", "\uE770\uE771"],
      ["a340", "\uE586", 62],
      ["a380", "\uE5C5", 31, "\u3000"],
      ["a440", "\uE5E6", 62],
      ["a480", "\uE625", 32],
      ["a4f4", "\uE772", 10],
      ["a540", "\uE646", 62],
      ["a580", "\uE685", 32],
      ["a5f7", "\uE77D", 7],
      ["a640", "\uE6A6", 62],
      ["a680", "\uE6E5", 32],
      ["a6b9", "\uE785", 7],
      ["a6d9", "\uE78D", 6],
      ["a6ec", "\uE794\uE795"],
      ["a6f3", "\uE796"],
      ["a6f6", "\uE797", 8],
      ["a740", "\uE706", 62],
      ["a780", "\uE745", 32],
      ["a7c2", "\uE7A0", 14],
      ["a7f2", "\uE7AF", 12],
      ["a896", "\uE7BC", 10],
      ["a8bc", "\u1E3F"],
      ["a8bf", "\u01F9"],
      ["a8c1", "\uE7C9\uE7CA\uE7CB\uE7CC"],
      ["a8ea", "\uE7CD", 20],
      ["a958", "\uE7E2"],
      ["a95b", "\uE7E3"],
      ["a95d", "\uE7E4\uE7E5\uE7E6"],
      ["a989", "\u303E\u2FF0", 11],
      ["a997", "\uE7F4", 12],
      ["a9f0", "\uE801", 14],
      ["aaa1", "\uE000", 93],
      ["aba1", "\uE05E", 93],
      ["aca1", "\uE0BC", 93],
      ["ada1", "\uE11A", 93],
      ["aea1", "\uE178", 93],
      ["afa1", "\uE1D6", 93],
      ["d7fa", "\uE810", 4],
      ["f8a1", "\uE234", 93],
      ["f9a1", "\uE292", 93],
      ["faa1", "\uE2F0", 93],
      ["fba1", "\uE34E", 93],
      ["fca1", "\uE3AC", 93],
      ["fda1", "\uE40A", 93],
      ["fe50", "\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],
      ["fe80", "\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13", 6, "\u4DAE\uE864\uE468", 93],
      ["8135f437", "\uE7C7"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json
var require_gb18030_ranges = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json"(exports, module) {
    module.exports = { uChars: [128, 165, 169, 178, 184, 216, 226, 235, 238, 244, 248, 251, 253, 258, 276, 284, 300, 325, 329, 334, 364, 463, 465, 467, 469, 471, 473, 475, 477, 506, 594, 610, 712, 716, 730, 930, 938, 962, 970, 1026, 1104, 1106, 8209, 8215, 8218, 8222, 8231, 8241, 8244, 8246, 8252, 8365, 8452, 8454, 8458, 8471, 8482, 8556, 8570, 8596, 8602, 8713, 8720, 8722, 8726, 8731, 8737, 8740, 8742, 8748, 8751, 8760, 8766, 8777, 8781, 8787, 8802, 8808, 8816, 8854, 8858, 8870, 8896, 8979, 9322, 9372, 9548, 9588, 9616, 9622, 9634, 9652, 9662, 9672, 9676, 9680, 9702, 9735, 9738, 9793, 9795, 11906, 11909, 11913, 11917, 11928, 11944, 11947, 11951, 11956, 11960, 11964, 11979, 12284, 12292, 12312, 12319, 12330, 12351, 12436, 12447, 12535, 12543, 12586, 12842, 12850, 12964, 13200, 13215, 13218, 13253, 13263, 13267, 13270, 13384, 13428, 13727, 13839, 13851, 14617, 14703, 14801, 14816, 14964, 15183, 15471, 15585, 16471, 16736, 17208, 17325, 17330, 17374, 17623, 17997, 18018, 18212, 18218, 18301, 18318, 18760, 18811, 18814, 18820, 18823, 18844, 18848, 18872, 19576, 19620, 19738, 19887, 40870, 59244, 59336, 59367, 59413, 59417, 59423, 59431, 59437, 59443, 59452, 59460, 59478, 59493, 63789, 63866, 63894, 63976, 63986, 64016, 64018, 64021, 64025, 64034, 64037, 64042, 65074, 65093, 65107, 65112, 65127, 65132, 65375, 65510, 65536], gbChars: [0, 36, 38, 45, 50, 81, 89, 95, 96, 100, 103, 104, 105, 109, 126, 133, 148, 172, 175, 179, 208, 306, 307, 308, 309, 310, 311, 312, 313, 341, 428, 443, 544, 545, 558, 741, 742, 749, 750, 805, 819, 820, 7922, 7924, 7925, 7927, 7934, 7943, 7944, 7945, 7950, 8062, 8148, 8149, 8152, 8164, 8174, 8236, 8240, 8262, 8264, 8374, 8380, 8381, 8384, 8388, 8390, 8392, 8393, 8394, 8396, 8401, 8406, 8416, 8419, 8424, 8437, 8439, 8445, 8482, 8485, 8496, 8521, 8603, 8936, 8946, 9046, 9050, 9063, 9066, 9076, 9092, 9100, 9108, 9111, 9113, 9131, 9162, 9164, 9218, 9219, 11329, 11331, 11334, 11336, 11346, 11361, 11363, 11366, 11370, 11372, 11375, 11389, 11682, 11686, 11687, 11692, 11694, 11714, 11716, 11723, 11725, 11730, 11736, 11982, 11989, 12102, 12336, 12348, 12350, 12384, 12393, 12395, 12397, 12510, 12553, 12851, 12962, 12973, 13738, 13823, 13919, 13933, 14080, 14298, 14585, 14698, 15583, 15847, 16318, 16434, 16438, 16481, 16729, 17102, 17122, 17315, 17320, 17402, 17418, 17859, 17909, 17911, 17915, 17916, 17936, 17939, 17961, 18664, 18703, 18814, 18962, 19043, 33469, 33470, 33471, 33484, 33485, 33490, 33497, 33501, 33505, 33513, 33520, 33536, 33550, 37845, 37921, 37948, 38029, 38038, 38064, 38065, 38066, 38069, 38075, 38076, 38078, 39108, 39109, 39113, 39114, 39115, 39116, 39265, 39394, 189e3] };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/cp949.json
var require_cp949 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/cp949.json"(exports, module) {
    module.exports = [
      ["0", "\0", 127],
      ["8141", "\uAC02\uAC03\uAC05\uAC06\uAC0B", 4, "\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25", 6, "\uAC2E\uAC32\uAC33\uAC34"],
      ["8161", "\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41", 9, "\uAC4C\uAC4E", 5, "\uAC55"],
      ["8181", "\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D", 18, "\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B", 4, "\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95", 6, "\uAC9E\uACA2", 5, "\uACAB\uACAD\uACAE\uACB1", 6, "\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD", 7, "\uACD6\uACD8", 7, "\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7", 4, "\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07", 4, "\uAD0E\uAD10\uAD12\uAD13"],
      ["8241", "\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21", 7, "\uAD2A\uAD2B\uAD2E", 5],
      ["8261", "\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D", 6, "\uAD46\uAD48\uAD4A", 5, "\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],
      ["8281", "\uAD59", 7, "\uAD62\uAD64", 7, "\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83", 4, "\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91", 10, "\uAD9E", 5, "\uADA5", 17, "\uADB8", 7, "\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9", 6, "\uADD2\uADD4", 7, "\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5", 18],
      ["8341", "\uADFA\uADFB\uADFD\uADFE\uAE02", 5, "\uAE0A\uAE0C\uAE0E", 5, "\uAE15", 7],
      ["8361", "\uAE1D", 18, "\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],
      ["8381", "\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57", 4, "\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71", 6, "\uAE7A\uAE7E", 5, "\uAE86", 5, "\uAE8D", 46, "\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5", 6, "\uAECE\uAED2", 5, "\uAEDA\uAEDB\uAEDD", 8],
      ["8441", "\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE", 5, "\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD", 8],
      ["8461", "\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11", 18],
      ["8481", "\uAF24", 7, "\uAF2E\uAF2F\uAF31\uAF33\uAF35", 6, "\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A", 5, "\uAF51", 10, "\uAF5E", 5, "\uAF66", 18, "\uAF7A", 5, "\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89", 6, "\uAF92\uAF93\uAF94\uAF96", 5, "\uAF9D", 26, "\uAFBA\uAFBB\uAFBD\uAFBE"],
      ["8541", "\uAFBF\uAFC1", 5, "\uAFCA\uAFCC\uAFCF", 4, "\uAFD5", 6, "\uAFDD", 4],
      ["8561", "\uAFE2", 5, "\uAFEA", 5, "\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9", 6, "\uB002\uB003"],
      ["8581", "\uB005", 6, "\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015", 6, "\uB01E", 9, "\uB029", 26, "\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E", 29, "\uB07E\uB07F\uB081\uB082\uB083\uB085", 6, "\uB08E\uB090\uB092", 5, "\uB09B\uB09D\uB09E\uB0A3\uB0A4"],
      ["8641", "\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD", 6, "\uB0C6\uB0CA", 5, "\uB0D2"],
      ["8661", "\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9", 6, "\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6", 10],
      ["8681", "\uB0F1", 22, "\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E", 4, "\uB126\uB127\uB129\uB12A\uB12B\uB12D", 6, "\uB136\uB13A", 5, "\uB142\uB143\uB145\uB146\uB147\uB149", 6, "\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161", 22, "\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183", 4, "\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],
      ["8741", "\uB19E", 9, "\uB1A9", 15],
      ["8761", "\uB1B9", 18, "\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],
      ["8781", "\uB1D6", 5, "\uB1DE\uB1E0", 7, "\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1", 7, "\uB1FA\uB1FC\uB1FE", 5, "\uB206\uB207\uB209\uB20A\uB20D", 6, "\uB216\uB218\uB21A", 5, "\uB221", 18, "\uB235", 6, "\uB23D", 26, "\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261", 6, "\uB26A", 4],
      ["8841", "\uB26F", 4, "\uB276", 5, "\uB27D", 6, "\uB286\uB287\uB288\uB28A", 4],
      ["8861", "\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B", 4, "\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],
      ["8881", "\uB2B8", 15, "\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3", 4, "\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309", 6, "\uB312\uB316", 5, "\uB31D", 54, "\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],
      ["8941", "\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379", 6, "\uB382\uB386", 5, "\uB38D"],
      ["8961", "\uB38E\uB38F\uB391\uB392\uB393\uB395", 10, "\uB3A2", 5, "\uB3A9\uB3AA\uB3AB\uB3AD"],
      ["8981", "\uB3AE", 21, "\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9", 18, "\uB3FD", 18, "\uB411", 6, "\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421", 6, "\uB42A\uB42C", 7, "\uB435", 15],
      ["8a41", "\uB445", 10, "\uB452\uB453\uB455\uB456\uB457\uB459", 6, "\uB462\uB464\uB466"],
      ["8a61", "\uB467", 4, "\uB46D", 18, "\uB481\uB482"],
      ["8a81", "\uB483", 4, "\uB489", 19, "\uB49E", 5, "\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD", 7, "\uB4B6\uB4B8\uB4BA", 5, "\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9", 6, "\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6", 5, "\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7", 4, "\uB4EE\uB4F0\uB4F2", 5, "\uB4F9", 26, "\uB516\uB517\uB519\uB51A\uB51D"],
      ["8b41", "\uB51E", 5, "\uB526\uB52B", 4, "\uB532\uB533\uB535\uB536\uB537\uB539", 6, "\uB542\uB546"],
      ["8b61", "\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555", 6, "\uB55E\uB562", 8],
      ["8b81", "\uB56B", 52, "\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6", 4, "\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5", 6, "\uB5CE\uB5D2", 5, "\uB5D9", 18, "\uB5ED", 18],
      ["8c41", "\uB600", 15, "\uB612\uB613\uB615\uB616\uB617\uB619", 4],
      ["8c61", "\uB61E", 6, "\uB626", 5, "\uB62D", 6, "\uB635", 5],
      ["8c81", "\uB63B", 12, "\uB649", 26, "\uB665\uB666\uB667\uB669", 50, "\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5", 5, "\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2", 16],
      ["8d41", "\uB6C3", 16, "\uB6D5", 8],
      ["8d61", "\uB6DE", 17, "\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],
      ["8d81", "\uB6FB", 4, "\uB702\uB703\uB704\uB706", 33, "\uB72A\uB72B\uB72D\uB72E\uB731", 6, "\uB73A\uB73C", 7, "\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D", 6, "\uB756", 9, "\uB761\uB762\uB763\uB765\uB766\uB767\uB769", 6, "\uB772\uB774\uB776", 5, "\uB77E\uB77F\uB781\uB782\uB783\uB785", 6, "\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],
      ["8e41", "\uB79F\uB7A1", 6, "\uB7AA\uB7AE", 5, "\uB7B6\uB7B7\uB7B9", 8],
      ["8e61", "\uB7C2", 4, "\uB7C8\uB7CA", 19],
      ["8e81", "\uB7DE", 13, "\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5", 6, "\uB7FE\uB802", 4, "\uB80A\uB80B\uB80D\uB80E\uB80F\uB811", 6, "\uB81A\uB81C\uB81E", 5, "\uB826\uB827\uB829\uB82A\uB82B\uB82D", 6, "\uB836\uB83A", 5, "\uB841\uB842\uB843\uB845", 11, "\uB852\uB854", 7, "\uB85E\uB85F\uB861\uB862\uB863\uB865", 6, "\uB86E\uB870\uB872", 5, "\uB879\uB87A\uB87B\uB87D", 7],
      ["8f41", "\uB885", 7, "\uB88E", 17],
      ["8f61", "\uB8A0", 7, "\uB8A9", 6, "\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9", 4],
      ["8f81", "\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6", 5, "\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5", 7, "\uB8DE\uB8E0\uB8E2", 5, "\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1", 6, "\uB8FA\uB8FC\uB8FE", 5, "\uB905", 18, "\uB919", 6, "\uB921", 26, "\uB93E\uB93F\uB941\uB942\uB943\uB945", 6, "\uB94D\uB94E\uB950\uB952", 5],
      ["9041", "\uB95A\uB95B\uB95D\uB95E\uB95F\uB961", 6, "\uB96A\uB96C\uB96E", 5, "\uB976\uB977\uB979\uB97A\uB97B\uB97D"],
      ["9061", "\uB97E", 5, "\uB986\uB988\uB98B\uB98C\uB98F", 15],
      ["9081", "\uB99F", 12, "\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5", 6, "\uB9BE\uB9C0\uB9C2", 5, "\uB9CA\uB9CB\uB9CD\uB9D3", 4, "\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED", 6, "\uB9F6\uB9FB", 4, "\uBA02", 5, "\uBA09", 11, "\uBA16", 33, "\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],
      ["9141", "\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D", 6, "\uBA66\uBA6A", 5],
      ["9161", "\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79", 9, "\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D", 5],
      ["9181", "\uBA93", 20, "\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3", 4, "\uBABA\uBABC\uBABE", 5, "\uBAC5\uBAC6\uBAC7\uBAC9", 14, "\uBADA", 33, "\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05", 7, "\uBB0E\uBB10\uBB12", 5, "\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21", 6],
      ["9241", "\uBB28\uBB2A\uBB2C", 7, "\uBB37\uBB39\uBB3A\uBB3F", 4, "\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],
      ["9261", "\uBB53\uBB55\uBB56\uBB57\uBB59", 7, "\uBB62\uBB64", 7, "\uBB6D", 4],
      ["9281", "\uBB72", 21, "\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91", 18, "\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD", 6, "\uBBB5\uBBB6\uBBB8", 7, "\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9", 6, "\uBBD1\uBBD2\uBBD4", 35, "\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],
      ["9341", "\uBC03", 4, "\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],
      ["9361", "\uBC36\uBC37\uBC39", 6, "\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51", 8],
      ["9381", "\uBC5A\uBC5B\uBC5C\uBC5E", 37, "\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F", 4, "\uBC96\uBC98\uBC9B", 4, "\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9", 6, "\uBCB2\uBCB6", 5, "\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5", 7, "\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD", 22, "\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],
      ["9441", "\uBCFE", 5, "\uBD06\uBD08\uBD0A", 5, "\uBD11\uBD12\uBD13\uBD15", 8],
      ["9461", "\uBD1E", 5, "\uBD25", 6, "\uBD2D", 12],
      ["9481", "\uBD3A", 5, "\uBD41", 6, "\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51", 6, "\uBD5A", 9, "\uBD65\uBD66\uBD67\uBD69", 22, "\uBD82\uBD83\uBD85\uBD86\uBD8B", 4, "\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D", 6, "\uBDA5", 10, "\uBDB1", 6, "\uBDB9", 24],
      ["9541", "\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD", 11, "\uBDEA", 5, "\uBDF1"],
      ["9561", "\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9", 6, "\uBE01\uBE02\uBE04\uBE06", 5, "\uBE0E\uBE0F\uBE11\uBE12\uBE13"],
      ["9581", "\uBE15", 6, "\uBE1E\uBE20", 35, "\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F", 4, "\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B", 4, "\uBE72\uBE76", 4, "\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85", 6, "\uBE8E\uBE92", 5, "\uBE9A", 13, "\uBEA9", 14],
      ["9641", "\uBEB8", 23, "\uBED2\uBED3"],
      ["9661", "\uBED5\uBED6\uBED9", 6, "\uBEE1\uBEE2\uBEE6", 5, "\uBEED", 8],
      ["9681", "\uBEF6", 10, "\uBF02", 5, "\uBF0A", 13, "\uBF1A\uBF1E", 33, "\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49", 6, "\uBF52\uBF53\uBF54\uBF56", 44],
      ["9741", "\uBF83", 16, "\uBF95", 8],
      ["9761", "\uBF9E", 17, "\uBFB1", 7],
      ["9781", "\uBFB9", 11, "\uBFC6", 5, "\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5", 6, "\uBFDD\uBFDE\uBFE0\uBFE2", 89, "\uC03D\uC03E\uC03F"],
      ["9841", "\uC040", 16, "\uC052", 5, "\uC059\uC05A\uC05B"],
      ["9861", "\uC05D\uC05E\uC05F\uC061", 6, "\uC06A", 15],
      ["9881", "\uC07A", 21, "\uC092\uC093\uC095\uC096\uC097\uC099", 6, "\uC0A2\uC0A4\uC0A6", 5, "\uC0AE\uC0B1\uC0B2\uC0B7", 4, "\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1", 6, "\uC0DA\uC0DE", 5, "\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED", 6, "\uC0F6\uC0F8\uC0FA", 5, "\uC101\uC102\uC103\uC105\uC106\uC107\uC109", 6, "\uC111\uC112\uC113\uC114\uC116", 5, "\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],
      ["9941", "\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141", 6, "\uC14A\uC14E", 5, "\uC156\uC157"],
      ["9961", "\uC159\uC15A\uC15B\uC15D", 6, "\uC166\uC16A", 5, "\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],
      ["9981", "\uC17C", 8, "\uC186", 5, "\uC18F\uC191\uC192\uC193\uC195\uC197", 4, "\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1", 11, "\uC1BE", 5, "\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD", 6, "\uC1D5\uC1D6\uC1D9", 6, "\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9", 6, "\uC1F2\uC1F4", 7, "\uC1FE\uC1FF\uC201\uC202\uC203\uC205", 6, "\uC20E\uC210\uC212", 5, "\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],
      ["9a41", "\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235", 16],
      ["9a61", "\uC246\uC247\uC249", 6, "\uC252\uC253\uC255\uC256\uC257\uC259", 6, "\uC261\uC262\uC263\uC264\uC266"],
      ["9a81", "\uC267", 4, "\uC26E\uC26F\uC271\uC272\uC273\uC275", 6, "\uC27E\uC280\uC282", 5, "\uC28A", 5, "\uC291", 6, "\uC299\uC29A\uC29C\uC29E", 5, "\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE", 5, "\uC2B6\uC2B8\uC2BA", 33, "\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5", 5, "\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301", 6, "\uC30A\uC30B\uC30E\uC30F"],
      ["9b41", "\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D", 6, "\uC326\uC327\uC32A", 8],
      ["9b61", "\uC333", 17, "\uC346", 7],
      ["9b81", "\uC34E", 25, "\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373", 4, "\uC37A\uC37B\uC37E", 5, "\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D", 50, "\uC3C1", 22, "\uC3DA"],
      ["9c41", "\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3", 4, "\uC3EA\uC3EB\uC3EC\uC3EE", 5, "\uC3F6\uC3F7\uC3F9", 5],
      ["9c61", "\uC3FF", 8, "\uC409", 6, "\uC411", 9],
      ["9c81", "\uC41B", 8, "\uC425", 6, "\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435", 6, "\uC43E", 9, "\uC449", 26, "\uC466\uC467\uC469\uC46A\uC46B\uC46D", 6, "\uC476\uC477\uC478\uC47A", 5, "\uC481", 18, "\uC495", 6, "\uC49D", 12],
      ["9d41", "\uC4AA", 13, "\uC4B9\uC4BA\uC4BB\uC4BD", 8],
      ["9d61", "\uC4C6", 25],
      ["9d81", "\uC4E0", 8, "\uC4EA", 5, "\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502", 9, "\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515", 6, "\uC51D", 10, "\uC52A\uC52B\uC52D\uC52E\uC52F\uC531", 6, "\uC53A\uC53C\uC53E", 5, "\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569", 6, "\uC572\uC576", 5, "\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],
      ["9e41", "\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1", 7, "\uC5AA", 9, "\uC5B6"],
      ["9e61", "\uC5B7\uC5BA\uC5BF", 4, "\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9", 6, "\uC5E2\uC5E4\uC5E6\uC5E7"],
      ["9e81", "\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611", 6, "\uC61A\uC61D", 6, "\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649", 6, "\uC652\uC656", 5, "\uC65E\uC65F\uC661", 10, "\uC66D\uC66E\uC670\uC672", 5, "\uC67A\uC67B\uC67D\uC67E\uC67F\uC681", 6, "\uC68A\uC68C\uC68E", 5, "\uC696\uC697\uC699\uC69A\uC69B\uC69D", 6, "\uC6A6"],
      ["9f41", "\uC6A8\uC6AA", 5, "\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB", 4, "\uC6C2\uC6C4\uC6C6", 5, "\uC6CE"],
      ["9f61", "\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5", 6, "\uC6DE\uC6DF\uC6E2", 5, "\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],
      ["9f81", "\uC6F3", 4, "\uC6FA\uC6FB\uC6FC\uC6FE", 5, "\uC706\uC707\uC709\uC70A\uC70B\uC70D", 6, "\uC716\uC718\uC71A", 5, "\uC722\uC723\uC725\uC726\uC727\uC729", 6, "\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745", 4, "\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761", 6, "\uC769\uC76A\uC76C", 7, "\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B", 4, "\uC7A2\uC7A7", 4, "\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],
      ["a041", "\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2", 5, "\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1", 6, "\uC7D9\uC7DA\uC7DB\uC7DC"],
      ["a061", "\uC7DE", 5, "\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED", 13],
      ["a081", "\uC7FB", 4, "\uC802\uC803\uC805\uC806\uC807\uC809\uC80B", 4, "\uC812\uC814\uC817", 4, "\uC81E\uC81F\uC821\uC822\uC823\uC825", 6, "\uC82E\uC830\uC832", 5, "\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841", 6, "\uC84A\uC84B\uC84E", 5, "\uC855", 26, "\uC872\uC873\uC875\uC876\uC877\uC879\uC87B", 4, "\uC882\uC884\uC888\uC889\uC88A\uC88E", 5, "\uC895", 7, "\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],
      ["a141", "\uC8A5\uC8A6\uC8A7\uC8A9", 18, "\uC8BE\uC8BF\uC8C0\uC8C1"],
      ["a161", "\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD", 6, "\uC8D6\uC8D8\uC8DA", 5, "\uC8E2\uC8E3\uC8E5"],
      ["a181", "\uC8E6", 14, "\uC8F6", 5, "\uC8FE\uC8FF\uC901\uC902\uC903\uC907", 4, "\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 9, "\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],
      ["a241", "\uC910\uC912", 5, "\uC919", 18],
      ["a261", "\uC92D", 6, "\uC935", 18],
      ["a281", "\uC948", 7, "\uC952\uC953\uC955\uC956\uC957\uC959", 6, "\uC962\uC964", 7, "\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],
      ["a341", "\uC971\uC972\uC973\uC975", 6, "\uC97D", 10, "\uC98A\uC98B\uC98D\uC98E\uC98F"],
      ["a361", "\uC991", 6, "\uC99A\uC99C\uC99E", 16],
      ["a381", "\uC9AF", 16, "\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB", 4, "\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01", 58, "\uFFE6\uFF3D", 32, "\uFFE3"],
      ["a441", "\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2", 5, "\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],
      ["a461", "\uCA05\uCA06\uCA07\uCA0A\uCA0E", 5, "\uCA15\uCA16\uCA17\uCA19", 12],
      ["a481", "\uCA26\uCA27\uCA28\uCA2A", 28, "\u3131", 93],
      ["a541", "\uCA47", 4, "\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55", 6, "\uCA5E\uCA62", 5, "\uCA69\uCA6A"],
      ["a561", "\uCA6B", 17, "\uCA7E", 5, "\uCA85\uCA86"],
      ["a581", "\uCA87", 16, "\uCA99", 14, "\u2170", 9],
      ["a5b0", "\u2160", 9],
      ["a5c1", "\u0391", 16, "\u03A3", 6],
      ["a5e1", "\u03B1", 16, "\u03C3", 6],
      ["a641", "\uCAA8", 19, "\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],
      ["a661", "\uCAC6", 5, "\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA", 5, "\uCAE1", 6],
      ["a681", "\uCAE8\uCAE9\uCAEA\uCAEB\uCAED", 6, "\uCAF5", 18, "\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543", 7],
      ["a741", "\uCB0B", 4, "\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19", 6, "\uCB22", 7],
      ["a761", "\uCB2A", 22, "\uCB42\uCB43\uCB44"],
      ["a781", "\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51", 6, "\uCB5A\uCB5B\uCB5C\uCB5E", 5, "\uCB65", 7, "\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399", 9, "\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0", 9, "\u3380", 4, "\u33BA", 5, "\u3390", 4, "\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],
      ["a841", "\uCB6D", 10, "\uCB7A", 14],
      ["a861", "\uCB89", 18, "\uCB9D", 6],
      ["a881", "\uCBA4", 19, "\uCBB9", 11, "\xC6\xD0\xAA\u0126"],
      ["a8a6", "\u0132"],
      ["a8a8", "\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],
      ["a8b1", "\u3260", 27, "\u24D0", 25, "\u2460", 14, "\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],
      ["a941", "\uCBC5", 14, "\uCBD5", 10],
      ["a961", "\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA", 18],
      ["a981", "\uCBFD", 14, "\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15", 6, "\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200", 27, "\u249C", 25, "\u2474", 14, "\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],
      ["aa41", "\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31", 6, "\uCC3A\uCC3F", 4, "\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],
      ["aa61", "\uCC4F", 4, "\uCC56\uCC5A", 5, "\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69", 6, "\uCC71\uCC72"],
      ["aa81", "\uCC73\uCC74\uCC76", 29, "\u3041", 82],
      ["ab41", "\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1", 6, "\uCCAA\uCCAE", 5, "\uCCB6\uCCB7\uCCB9"],
      ["ab61", "\uCCBA\uCCBB\uCCBD", 6, "\uCCC6\uCCC8\uCCCA", 5, "\uCCD1\uCCD2\uCCD3\uCCD5", 5],
      ["ab81", "\uCCDB", 8, "\uCCE5", 6, "\uCCED\uCCEE\uCCEF\uCCF1", 12, "\u30A1", 85],
      ["ac41", "\uCCFE\uCCFF\uCD00\uCD02", 5, "\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11", 6, "\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],
      ["ac61", "\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D", 11, "\uCD3A", 4],
      ["ac81", "\uCD3F", 28, "\uCD5D\uCD5E\uCD5F\u0410", 5, "\u0401\u0416", 25],
      ["acd1", "\u0430", 5, "\u0451\u0436", 25],
      ["ad41", "\uCD61\uCD62\uCD63\uCD65", 6, "\uCD6E\uCD70\uCD72", 5, "\uCD79", 7],
      ["ad61", "\uCD81", 6, "\uCD89", 10, "\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],
      ["ad81", "\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA", 5, "\uCDB1", 18, "\uCDC5"],
      ["ae41", "\uCDC6", 5, "\uCDCD\uCDCE\uCDCF\uCDD1", 16],
      ["ae61", "\uCDE2", 5, "\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1", 6, "\uCDFA\uCDFC\uCDFE", 4],
      ["ae81", "\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D", 6, "\uCE15\uCE16\uCE17\uCE18\uCE1A", 5, "\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],
      ["af41", "\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36", 19],
      ["af61", "\uCE4A", 13, "\uCE5A\uCE5B\uCE5D\uCE5E\uCE62", 5, "\uCE6A\uCE6C"],
      ["af81", "\uCE6E", 5, "\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D", 6, "\uCE86\uCE88\uCE8A", 5, "\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],
      ["b041", "\uCE9A", 5, "\uCEA2\uCEA6", 5, "\uCEAE", 12],
      ["b061", "\uCEBB", 5, "\uCEC2", 19],
      ["b081", "\uCED6", 13, "\uCEE6\uCEE7\uCEE9\uCEEA\uCEED", 6, "\uCEF6\uCEFA", 5, "\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10", 7, "\uAC19", 4, "\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],
      ["b141", "\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09", 6, "\uCF12\uCF14\uCF16", 5, "\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],
      ["b161", "\uCF25", 6, "\uCF2E\uCF32", 5, "\uCF39", 11],
      ["b181", "\uCF45", 14, "\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D", 6, "\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],
      ["b241", "\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79", 6, "\uCF81\uCF82\uCF83\uCF84\uCF86", 5, "\uCF8D"],
      ["b261", "\uCF8E", 18, "\uCFA2", 5, "\uCFA9"],
      ["b281", "\uCFAA", 5, "\uCFB1", 18, "\uCFC5", 6, "\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],
      ["b341", "\uCFCC", 19, "\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],
      ["b361", "\uCFEA", 5, "\uCFF2\uCFF4\uCFF6", 5, "\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005", 5],
      ["b381", "\uD00B", 5, "\uD012", 5, "\uD019", 19, "\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB", 4, "\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],
      ["b441", "\uD02E", 5, "\uD036\uD037\uD039\uD03A\uD03B\uD03D", 6, "\uD046\uD048\uD04A", 5],
      ["b461", "\uD051\uD052\uD053\uD055\uD056\uD057\uD059", 6, "\uD061", 10, "\uD06E\uD06F"],
      ["b481", "\uD071\uD072\uD073\uD075", 6, "\uD07E\uD07F\uD080\uD082", 18, "\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB", 4, "\uB2F3\uB2F4\uB2F5\uB2F7", 4, "\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],
      ["b541", "\uD095", 14, "\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD", 5],
      ["b561", "\uD0B3\uD0B6\uD0B8\uD0BA", 5, "\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA", 5, "\uD0D2\uD0D6", 4],
      ["b581", "\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5", 6, "\uD0EE\uD0F2", 5, "\uD0F9", 11, "\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],
      ["b641", "\uD105", 7, "\uD10E", 17],
      ["b661", "\uD120", 15, "\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],
      ["b681", "\uD13F\uD142\uD146", 5, "\uD14E\uD14F\uD151\uD152\uD153\uD155", 6, "\uD15E\uD160\uD162", 5, "\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],
      ["b741", "\uD16E", 13, "\uD17D", 6, "\uD185\uD186\uD187\uD189\uD18A"],
      ["b761", "\uD18B", 20, "\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],
      ["b781", "\uD1A9", 6, "\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1", 14, "\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],
      ["b841", "\uD1D0", 7, "\uD1D9", 17],
      ["b861", "\uD1EB", 8, "\uD1F5\uD1F6\uD1F7\uD1F9", 13],
      ["b881", "\uD208\uD20A", 5, "\uD211", 24, "\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE", 4, "\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],
      ["b941", "\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235", 6, "\uD23E\uD240\uD242", 5, "\uD249\uD24A\uD24B\uD24C"],
      ["b961", "\uD24D", 14, "\uD25D", 6, "\uD265\uD266\uD267\uD268"],
      ["b981", "\uD269", 22, "\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14", 4, "\uBC1B", 4, "\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],
      ["ba41", "\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296", 5, "\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5", 6, "\uD2AD"],
      ["ba61", "\uD2AE\uD2AF\uD2B0\uD2B2", 5, "\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3", 4, "\uD2CA\uD2CC", 5],
      ["ba81", "\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD", 6, "\uD2E6", 9, "\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],
      ["bb41", "\uD2FB", 4, "\uD302\uD304\uD306", 5, "\uD30F\uD311\uD312\uD313\uD315\uD317", 4, "\uD31E\uD322\uD323"],
      ["bb61", "\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331", 6, "\uD33A\uD33E", 5, "\uD346\uD347\uD348\uD349"],
      ["bb81", "\uD34A", 31, "\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],
      ["bc41", "\uD36A", 17, "\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],
      ["bc61", "\uD388\uD389\uD38A\uD38B\uD38E\uD392", 5, "\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1", 6, "\uD3AA\uD3AC\uD3AE"],
      ["bc81", "\uD3AF", 4, "\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD", 6, "\uD3C6\uD3C7\uD3CA", 5, "\uD3D1", 5, "\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C", 4, "\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],
      ["bd41", "\uD3D7\uD3D9", 7, "\uD3E2\uD3E4", 7, "\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],
      ["bd61", "\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402", 5, "\uD409", 13],
      ["bd81", "\uD417", 5, "\uD41E", 25, "\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],
      ["be41", "\uD438", 7, "\uD441\uD442\uD443\uD445", 14],
      ["be61", "\uD454", 7, "\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465", 7, "\uD46E\uD470\uD471\uD472"],
      ["be81", "\uD473", 4, "\uD47A\uD47B\uD47D\uD47E\uD481\uD483", 4, "\uD48A\uD48C\uD48E", 5, "\uD495", 8, "\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4", 6, "\uC5CC\uC5CE"],
      ["bf41", "\uD49E", 10, "\uD4AA", 14],
      ["bf61", "\uD4B9", 18, "\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],
      ["bf81", "\uD4D6", 5, "\uD4DD\uD4DE\uD4E0", 7, "\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1", 6, "\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC", 5, "\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],
      ["c041", "\uD4FE", 5, "\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D", 6, "\uD516\uD518", 5],
      ["c061", "\uD51E", 25],
      ["c081", "\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545", 6, "\uD54E\uD550\uD552", 5, "\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751", 7, "\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],
      ["c141", "\uD564\uD566\uD567\uD56A\uD56C\uD56E", 5, "\uD576\uD577\uD579\uD57A\uD57B\uD57D", 6, "\uD586\uD58A\uD58B"],
      ["c161", "\uD58C\uD58D\uD58E\uD58F\uD591", 19, "\uD5A6\uD5A7"],
      ["c181", "\uD5A8", 31, "\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],
      ["c241", "\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3", 4, "\uD5DA\uD5DC\uD5DE", 5, "\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],
      ["c261", "\uD5EF", 4, "\uD5F6\uD5F8\uD5FA", 5, "\uD602\uD603\uD605\uD606\uD607\uD609", 6, "\uD612"],
      ["c281", "\uD616", 5, "\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625", 7, "\uD62E", 9, "\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],
      ["c341", "\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D", 4],
      ["c361", "\uD662", 4, "\uD668\uD66A", 5, "\uD672\uD673\uD675", 11],
      ["c381", "\uD681\uD682\uD684\uD686", 5, "\uD68E\uD68F\uD691\uD692\uD693\uD695", 7, "\uD69E\uD6A0\uD6A2", 5, "\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],
      ["c441", "\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1", 7, "\uD6BA\uD6BC", 7, "\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],
      ["c461", "\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA", 5, "\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9", 4],
      ["c481", "\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6", 5, "\uD6FE\uD6FF\uD701\uD702\uD703\uD705", 11, "\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],
      ["c541", "\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721", 6, "\uD72A\uD72C\uD72E", 5, "\uD736\uD737\uD739"],
      ["c561", "\uD73A\uD73B\uD73D", 6, "\uD745\uD746\uD748\uD74A", 5, "\uD752\uD753\uD755\uD75A", 4],
      ["c581", "\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775", 6, "\uD77E\uD77F\uD780\uD782", 5, "\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],
      ["c641", "\uD78D\uD78E\uD78F\uD791", 6, "\uD79A\uD79C\uD79E", 5],
      ["c6a1", "\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],
      ["c7a1", "\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],
      ["c8a1", "\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],
      ["caa1", "\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],
      ["cba1", "\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],
      ["cca1", "\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],
      ["cda1", "\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],
      ["cea1", "\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],
      ["cfa1", "\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],
      ["d0a1", "\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],
      ["d1a1", "\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E", 5, "\u90A3\uF914", 4, "\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],
      ["d2a1", "\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928", 4, "\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933", 5, "\u99D1\uF939", 10, "\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A", 7, "\u5AE9\u8A25\u677B\u7D10\uF952", 5, "\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],
      ["d3a1", "\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],
      ["d4a1", "\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],
      ["d5a1", "\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],
      ["d6a1", "\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],
      ["d7a1", "\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],
      ["d8a1", "\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],
      ["d9a1", "\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],
      ["daa1", "\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],
      ["dba1", "\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],
      ["dca1", "\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],
      ["dda1", "\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],
      ["dea1", "\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],
      ["dfa1", "\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],
      ["e0a1", "\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],
      ["e1a1", "\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],
      ["e2a1", "\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],
      ["e3a1", "\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],
      ["e4a1", "\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],
      ["e5a1", "\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],
      ["e6a1", "\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],
      ["e7a1", "\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],
      ["e8a1", "\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],
      ["e9a1", "\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],
      ["eaa1", "\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],
      ["eba1", "\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],
      ["eca1", "\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],
      ["eda1", "\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],
      ["eea1", "\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],
      ["efa1", "\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],
      ["f0a1", "\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],
      ["f1a1", "\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],
      ["f2a1", "\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],
      ["f3a1", "\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],
      ["f4a1", "\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],
      ["f5a1", "\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],
      ["f6a1", "\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],
      ["f7a1", "\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],
      ["f8a1", "\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],
      ["f9a1", "\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],
      ["faa1", "\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],
      ["fba1", "\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],
      ["fca1", "\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],
      ["fda1", "\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/cp950.json
var require_cp950 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/cp950.json"(exports, module) {
    module.exports = [
      ["0", "\0", 127],
      ["a140", "\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],
      ["a1a1", "\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62", 4, "\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],
      ["a240", "\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581", 7, "\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],
      ["a2a1", "\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10", 9, "\u2160", 9, "\u3021", 8, "\u5341\u5344\u5345\uFF21", 25, "\uFF41", 21],
      ["a340", "\uFF57\uFF58\uFF59\uFF5A\u0391", 16, "\u03A3", 6, "\u03B1", 16, "\u03C3", 6, "\u3105", 10],
      ["a3a1", "\u3110", 25, "\u02D9\u02C9\u02CA\u02C7\u02CB"],
      ["a3e1", "\u20AC"],
      ["a440", "\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],
      ["a4a1", "\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],
      ["a540", "\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],
      ["a5a1", "\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],
      ["a640", "\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],
      ["a6a1", "\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],
      ["a740", "\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],
      ["a7a1", "\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],
      ["a840", "\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],
      ["a8a1", "\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],
      ["a940", "\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],
      ["a9a1", "\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],
      ["aa40", "\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],
      ["aaa1", "\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],
      ["ab40", "\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],
      ["aba1", "\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],
      ["ac40", "\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],
      ["aca1", "\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],
      ["ad40", "\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],
      ["ada1", "\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],
      ["ae40", "\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],
      ["aea1", "\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],
      ["af40", "\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],
      ["afa1", "\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],
      ["b040", "\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],
      ["b0a1", "\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],
      ["b140", "\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],
      ["b1a1", "\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],
      ["b240", "\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],
      ["b2a1", "\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],
      ["b340", "\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],
      ["b3a1", "\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],
      ["b440", "\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],
      ["b4a1", "\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],
      ["b540", "\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],
      ["b5a1", "\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],
      ["b640", "\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],
      ["b6a1", "\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],
      ["b740", "\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],
      ["b7a1", "\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],
      ["b840", "\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],
      ["b8a1", "\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],
      ["b940", "\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],
      ["b9a1", "\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],
      ["ba40", "\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],
      ["baa1", "\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],
      ["bb40", "\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],
      ["bba1", "\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],
      ["bc40", "\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],
      ["bca1", "\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],
      ["bd40", "\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],
      ["bda1", "\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],
      ["be40", "\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],
      ["bea1", "\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],
      ["bf40", "\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],
      ["bfa1", "\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],
      ["c040", "\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],
      ["c0a1", "\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],
      ["c140", "\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],
      ["c1a1", "\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],
      ["c240", "\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],
      ["c2a1", "\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],
      ["c340", "\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],
      ["c3a1", "\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],
      ["c440", "\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],
      ["c4a1", "\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],
      ["c540", "\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],
      ["c5a1", "\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],
      ["c640", "\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],
      ["c940", "\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],
      ["c9a1", "\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],
      ["ca40", "\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],
      ["caa1", "\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],
      ["cb40", "\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],
      ["cba1", "\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],
      ["cc40", "\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],
      ["cca1", "\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],
      ["cd40", "\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],
      ["cda1", "\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],
      ["ce40", "\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],
      ["cea1", "\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],
      ["cf40", "\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],
      ["cfa1", "\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],
      ["d040", "\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],
      ["d0a1", "\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],
      ["d140", "\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],
      ["d1a1", "\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],
      ["d240", "\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],
      ["d2a1", "\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],
      ["d340", "\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],
      ["d3a1", "\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],
      ["d440", "\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],
      ["d4a1", "\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],
      ["d540", "\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],
      ["d5a1", "\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],
      ["d640", "\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],
      ["d6a1", "\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],
      ["d740", "\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],
      ["d7a1", "\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],
      ["d840", "\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],
      ["d8a1", "\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],
      ["d940", "\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],
      ["d9a1", "\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],
      ["da40", "\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],
      ["daa1", "\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],
      ["db40", "\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],
      ["dba1", "\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],
      ["dc40", "\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],
      ["dca1", "\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],
      ["dd40", "\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],
      ["dda1", "\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],
      ["de40", "\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],
      ["dea1", "\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],
      ["df40", "\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],
      ["dfa1", "\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],
      ["e040", "\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],
      ["e0a1", "\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],
      ["e140", "\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],
      ["e1a1", "\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],
      ["e240", "\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],
      ["e2a1", "\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],
      ["e340", "\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],
      ["e3a1", "\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],
      ["e440", "\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],
      ["e4a1", "\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],
      ["e540", "\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],
      ["e5a1", "\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],
      ["e640", "\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],
      ["e6a1", "\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],
      ["e740", "\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],
      ["e7a1", "\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],
      ["e840", "\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],
      ["e8a1", "\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],
      ["e940", "\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],
      ["e9a1", "\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],
      ["ea40", "\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],
      ["eaa1", "\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],
      ["eb40", "\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],
      ["eba1", "\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],
      ["ec40", "\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],
      ["eca1", "\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],
      ["ed40", "\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],
      ["eda1", "\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],
      ["ee40", "\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],
      ["eea1", "\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],
      ["ef40", "\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],
      ["efa1", "\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],
      ["f040", "\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],
      ["f0a1", "\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],
      ["f140", "\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],
      ["f1a1", "\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],
      ["f240", "\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],
      ["f2a1", "\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],
      ["f340", "\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],
      ["f3a1", "\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],
      ["f440", "\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],
      ["f4a1", "\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],
      ["f540", "\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],
      ["f5a1", "\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],
      ["f640", "\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],
      ["f6a1", "\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],
      ["f740", "\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],
      ["f7a1", "\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],
      ["f840", "\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],
      ["f8a1", "\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],
      ["f940", "\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],
      ["f9a1", "\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/big5-added.json
var require_big5_added = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/big5-added.json"(exports, module) {
    module.exports = [
      ["8740", "\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],
      ["8767", "\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],
      ["87a1", "\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],
      ["8840", "\u31C0", 4, "\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],
      ["88a1", "\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],
      ["8940", "\u{2A3A9}\u{21145}"],
      ["8943", "\u650A"],
      ["8946", "\u4E3D\u6EDD\u9D4E\u91DF"],
      ["894c", "\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],
      ["89a1", "\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],
      ["89ab", "\u918C\u78B8\u915E\u80BC"],
      ["89b0", "\u8D0B\u80F6\u{209E7}"],
      ["89b5", "\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],
      ["89c1", "\u6E9A\u823E\u7519"],
      ["89c5", "\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],
      ["8a40", "\u{27D84}\u5525"],
      ["8a43", "\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],
      ["8a64", "\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],
      ["8a76", "\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],
      ["8aa1", "\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],
      ["8aac", "\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],
      ["8ab2", "\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],
      ["8abb", "\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],
      ["8ac9", "\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],
      ["8ace", "\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],
      ["8adf", "\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],
      ["8af6", "\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],
      ["8b40", "\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],
      ["8b55", "\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],
      ["8ba1", "\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],
      ["8bde", "\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],
      ["8c40", "\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],
      ["8ca1", "\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],
      ["8ca7", "\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],
      ["8cc9", "\u9868\u676B\u4276\u573D"],
      ["8cce", "\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],
      ["8ce6", "\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],
      ["8d40", "\u{20B9F}"],
      ["8d42", "\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],
      ["8da1", "\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],
      ["8e40", "\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],
      ["8ea1", "\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],
      ["8f40", "\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],
      ["8fa1", "\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],
      ["9040", "\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],
      ["90a1", "\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],
      ["9140", "\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],
      ["91a1", "\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],
      ["9240", "\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],
      ["92a1", "\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],
      ["9340", "\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],
      ["93a1", "\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],
      ["9440", "\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],
      ["94a1", "\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],
      ["9540", "\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],
      ["95a1", "\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],
      ["9640", "\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],
      ["96a1", "\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],
      ["9740", "\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],
      ["97a1", "\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],
      ["9840", "\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],
      ["98a1", "\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],
      ["9940", "\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],
      ["99a1", "\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],
      ["9a40", "\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],
      ["9aa1", "\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],
      ["9b40", "\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],
      ["9b62", "\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],
      ["9ba1", "\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],
      ["9c40", "\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],
      ["9ca1", "\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],
      ["9d40", "\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],
      ["9da1", "\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],
      ["9e40", "\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],
      ["9ea1", "\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],
      ["9ead", "\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],
      ["9ec5", "\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],
      ["9ef5", "\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],
      ["9f40", "\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],
      ["9f4f", "\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],
      ["9fa1", "\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],
      ["9fae", "\u9159\u9681\u915C"],
      ["9fb2", "\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],
      ["9fc1", "\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],
      ["9fc9", "\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],
      ["9fdb", "\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],
      ["9fe7", "\u6BFA\u8818\u7F78"],
      ["9feb", "\u5620\u{2A64A}\u8E77\u9F53"],
      ["9ff0", "\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],
      ["a040", "\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],
      ["a055", "\u{2183B}\u{26E05}"],
      ["a058", "\u8A7E\u{2251B}"],
      ["a05b", "\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],
      ["a063", "\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],
      ["a073", "\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],
      ["a0a1", "\u5D57\u{28BC2}\u8FDA\u{28E39}"],
      ["a0a6", "\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],
      ["a0ae", "\u77FE"],
      ["a0b0", "\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],
      ["a0d4", "\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],
      ["a0e2", "\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],
      ["a3c0", "\u2400", 31, "\u2421"],
      ["c6a1", "\u2460", 9, "\u2474", 9, "\u2170", 9, "\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041", 23],
      ["c740", "\u3059", 58, "\u30A1\u30A2\u30A3\u30A4"],
      ["c7a1", "\u30A5", 81, "\u0410", 5, "\u0401\u0416", 4],
      ["c840", "\u041B", 26, "\u0451\u0436", 25, "\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],
      ["c8a1", "\u9FB0\u5188\u9FB1\u{27607}"],
      ["c8cd", "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],
      ["c8f5", "\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],
      ["f9fe", "\uFFED"],
      ["fa40", "\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],
      ["faa1", "\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],
      ["fb40", "\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],
      ["fba1", "\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],
      ["fc40", "\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],
      ["fca1", "\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],
      ["fd40", "\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],
      ["fda1", "\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],
      ["fe40", "\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],
      ["fea1", "\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/dbcs-data.js
var require_dbcs_data = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/dbcs-data.js"(exports, module) {
    "use strict";
    module.exports = {
      // == Japanese/ShiftJIS ====================================================
      // All japanese encodings are based on JIS X set of standards:
      // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.
      // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes.
      //              Has several variations in 1978, 1983, 1990 and 1997.
      // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.
      // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.
      //              2 planes, first is superset of 0208, second - revised 0212.
      //              Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)
      // Byte encodings are:
      //  * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte
      //               encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.
      //               Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.
      //  * EUC-JP:    Up to 3 bytes per character. Used mostly on *nixes.
      //               0x00-0x7F       - lower part of 0201
      //               0x8E, 0xA1-0xDF - upper part of 0201
      //               (0xA1-0xFE)x2   - 0208 plane (94x94).
      //               0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).
      //  * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.
      //               Used as-is in ISO2022 family.
      //  * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII,
      //                0201-1976 Roman, 0208-1978, 0208-1983.
      //  * ISO2022-JP-1: Adds esc seq for 0212-1990.
      //  * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.
      //  * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.
      //  * ISO2022-JP-2004: Adds 0213-2004 Plane 1.
      //
      // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.
      //
      // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html
      shiftjis: {
        type: "_dbcs",
        table: function() {
          return require_shiftjis();
        },
        encodeAdd: { "\xA5": 92, "\u203E": 126 },
        encodeSkipVals: [{ from: 60736, to: 63808 }]
      },
      csshiftjis: "shiftjis",
      mskanji: "shiftjis",
      sjis: "shiftjis",
      windows31j: "shiftjis",
      ms31j: "shiftjis",
      xsjis: "shiftjis",
      windows932: "shiftjis",
      ms932: "shiftjis",
      932: "shiftjis",
      cp932: "shiftjis",
      eucjp: {
        type: "_dbcs",
        table: function() {
          return require_eucjp();
        },
        encodeAdd: { "\xA5": 92, "\u203E": 126 }
      },
      // TODO: KDDI extension to Shift_JIS
      // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.
      // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.
      // == Chinese/GBK ==========================================================
      // http://en.wikipedia.org/wiki/GBK
      // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder
      // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936
      gb2312: "cp936",
      gb231280: "cp936",
      gb23121980: "cp936",
      csgb2312: "cp936",
      csiso58gb231280: "cp936",
      euccn: "cp936",
      // Microsoft's CP936 is a subset and approximation of GBK.
      windows936: "cp936",
      ms936: "cp936",
      936: "cp936",
      cp936: {
        type: "_dbcs",
        table: function() {
          return require_cp936();
        }
      },
      // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.
      gbk: {
        type: "_dbcs",
        table: function() {
          return require_cp936().concat(require_gbk_added());
        }
      },
      xgbk: "gbk",
      isoir58: "gbk",
      // GB18030 is an algorithmic extension of GBK.
      // Main source: https://www.w3.org/TR/encoding/#gbk-encoder
      // http://icu-project.org/docs/papers/gb18030.html
      // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml
      // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0
      gb18030: {
        type: "_dbcs",
        table: function() {
          return require_cp936().concat(require_gbk_added());
        },
        gb18030: function() {
          return require_gb18030_ranges();
        },
        encodeSkipVals: [128],
        encodeAdd: { "\u20AC": 41699 }
      },
      chinese: "gb18030",
      // == Korean ===============================================================
      // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.
      windows949: "cp949",
      ms949: "cp949",
      949: "cp949",
      cp949: {
        type: "_dbcs",
        table: function() {
          return require_cp949();
        }
      },
      cseuckr: "cp949",
      csksc56011987: "cp949",
      euckr: "cp949",
      isoir149: "cp949",
      korean: "cp949",
      ksc56011987: "cp949",
      ksc56011989: "cp949",
      ksc5601: "cp949",
      // == Big5/Taiwan/Hong Kong ================================================
      // There are lots of tables for Big5 and cp950. Please see the following links for history:
      // http://moztw.org/docs/big5/  http://www.haible.de/bruno/charsets/conversion-tables/Big5.html
      // Variations, in roughly number of defined chars:
      //  * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
      //  * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/
      //  * Big5-2003 (Taiwan standard) almost superset of cp950.
      //  * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.
      //  * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard.
      //    many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.
      //    Plus, it has 4 combining sequences.
      //    Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299
      //    because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.
      //    Implementations are not consistent within browsers; sometimes labeled as just big5.
      //    MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.
      //    Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31
      //    In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.
      //    Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt
      //                   http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt
      //
      // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder
      // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.
      windows950: "cp950",
      ms950: "cp950",
      950: "cp950",
      cp950: {
        type: "_dbcs",
        table: function() {
          return require_cp950();
        }
      },
      // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.
      big5: "big5hkscs",
      big5hkscs: {
        type: "_dbcs",
        table: function() {
          return require_cp950().concat(require_big5_added());
        },
        encodeSkipVals: [
          // Although Encoding Standard says we should avoid encoding to HKSCS area (See Step 1 of
          // https://encoding.spec.whatwg.org/#index-big5-pointer), we still do it to increase compatibility with ICU.
          // But if a single unicode point can be encoded both as HKSCS and regular Big5, we prefer the latter.
          36457,
          36463,
          36478,
          36523,
          36532,
          36557,
          36560,
          36695,
          36713,
          36718,
          36811,
          36862,
          36973,
          36986,
          37060,
          37084,
          37105,
          37311,
          37551,
          37552,
          37553,
          37554,
          37585,
          37959,
          38090,
          38361,
          38652,
          39285,
          39798,
          39800,
          39803,
          39878,
          39902,
          39916,
          39926,
          40002,
          40019,
          40034,
          40040,
          40043,
          40055,
          40124,
          40125,
          40144,
          40279,
          40282,
          40388,
          40431,
          40443,
          40617,
          40687,
          40701,
          40800,
          40907,
          41079,
          41180,
          41183,
          36812,
          37576,
          38468,
          38637,
          // Step 2 of https://encoding.spec.whatwg.org/#index-big5-pointer: Use last pointer for U+2550, U+255E, U+2561, U+256A, U+5341, or U+5345
          41636,
          41637,
          41639,
          41638,
          41676,
          41678
        ]
      },
      cnbig5: "big5hkscs",
      csbig5: "big5hkscs",
      xxbig5: "big5hkscs"
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/index.js
var require_encodings = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/index.js"(exports, module) {
    "use strict";
    var mergeModules = require_merge_exports();
    var modules = [
      require_internal(),
      require_utf32(),
      require_utf16(),
      require_utf7(),
      require_sbcs_codec(),
      require_sbcs_data(),
      require_sbcs_data_generated(),
      require_dbcs_codec(),
      require_dbcs_data()
    ];
    for (i5 = 0; i5 < modules.length; i5++) {
      module = modules[i5];
      mergeModules(exports, module);
    }
    var module;
    var i5;
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/lib/streams.js
var require_streams = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/lib/streams.js"(exports, module) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    module.exports = function(streamModule) {
      var Transform = streamModule.Transform;
      function IconvLiteEncoderStream(conv, options) {
        this.conv = conv;
        options = options || {};
        options.decodeStrings = false;
        Transform.call(this, options);
      }
      IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {
        constructor: { value: IconvLiteEncoderStream }
      });
      IconvLiteEncoderStream.prototype._transform = function(chunk3, encoding, done) {
        if (typeof chunk3 !== "string") {
          return done(new Error("Iconv encoding stream needs strings as its input."));
        }
        try {
          var res = this.conv.write(chunk3);
          if (res && res.length) this.push(res);
          done();
        } catch (e4) {
          done(e4);
        }
      };
      IconvLiteEncoderStream.prototype._flush = function(done) {
        try {
          var res = this.conv.end();
          if (res && res.length) this.push(res);
          done();
        } catch (e4) {
          done(e4);
        }
      };
      IconvLiteEncoderStream.prototype.collect = function(cb) {
        var chunks = [];
        this.on("error", cb);
        this.on("data", function(chunk3) {
          chunks.push(chunk3);
        });
        this.on("end", function() {
          cb(null, Buffer5.concat(chunks));
        });
        return this;
      };
      function IconvLiteDecoderStream(conv, options) {
        this.conv = conv;
        options = options || {};
        options.encoding = this.encoding = "utf8";
        Transform.call(this, options);
      }
      IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {
        constructor: { value: IconvLiteDecoderStream }
      });
      IconvLiteDecoderStream.prototype._transform = function(chunk3, encoding, done) {
        if (!Buffer5.isBuffer(chunk3) && !(chunk3 instanceof Uint8Array)) {
          return done(new Error("Iconv decoding stream needs buffers as its input."));
        }
        try {
          var res = this.conv.write(chunk3);
          if (res && res.length) this.push(res, this.encoding);
          done();
        } catch (e4) {
          done(e4);
        }
      };
      IconvLiteDecoderStream.prototype._flush = function(done) {
        try {
          var res = this.conv.end();
          if (res && res.length) this.push(res, this.encoding);
          done();
        } catch (e4) {
          done(e4);
        }
      };
      IconvLiteDecoderStream.prototype.collect = function(cb) {
        var res = "";
        this.on("error", cb);
        this.on("data", function(chunk3) {
          res += chunk3;
        });
        this.on("end", function() {
          cb(null, res);
        });
        return this;
      };
      return {
        IconvLiteEncoderStream,
        IconvLiteDecoderStream
      };
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/lib/index.js
var require_lib18 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/lib/index.js"(exports, module) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    var bomHandling = require_bom_handling();
    var mergeModules = require_merge_exports();
    module.exports.encodings = null;
    module.exports.defaultCharUnicode = "\uFFFD";
    module.exports.defaultCharSingleByte = "?";
    module.exports.encode = function encode3(str, encoding, options) {
      str = "" + (str || "");
      var encoder = module.exports.getEncoder(encoding, options);
      var res = encoder.write(str);
      var trail = encoder.end();
      return trail && trail.length > 0 ? Buffer5.concat([res, trail]) : res;
    };
    module.exports.decode = function decode2(buf, encoding, options) {
      if (typeof buf === "string") {
        if (!module.exports.skipDecodeWarning) {
          console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding");
          module.exports.skipDecodeWarning = true;
        }
        buf = Buffer5.from("" + (buf || ""), "binary");
      }
      var decoder2 = module.exports.getDecoder(encoding, options);
      var res = decoder2.write(buf);
      var trail = decoder2.end();
      return trail ? res + trail : res;
    };
    module.exports.encodingExists = function encodingExists(enc) {
      try {
        module.exports.getCodec(enc);
        return true;
      } catch (e4) {
        return false;
      }
    };
    module.exports.toEncoding = module.exports.encode;
    module.exports.fromEncoding = module.exports.decode;
    module.exports._codecDataCache = { __proto__: null };
    module.exports.getCodec = function getCodec(encoding) {
      if (!module.exports.encodings) {
        var raw = require_encodings();
        module.exports.encodings = { __proto__: null };
        mergeModules(module.exports.encodings, raw);
      }
      var enc = module.exports._canonicalizeEncoding(encoding);
      var codecOptions = {};
      while (true) {
        var codec = module.exports._codecDataCache[enc];
        if (codec) {
          return codec;
        }
        var codecDef = module.exports.encodings[enc];
        switch (typeof codecDef) {
          case "string":
            enc = codecDef;
            break;
          case "object":
            for (var key in codecDef) {
              codecOptions[key] = codecDef[key];
            }
            if (!codecOptions.encodingName) {
              codecOptions.encodingName = enc;
            }
            enc = codecDef.type;
            break;
          case "function":
            if (!codecOptions.encodingName) {
              codecOptions.encodingName = enc;
            }
            codec = new codecDef(codecOptions, module.exports);
            module.exports._codecDataCache[codecOptions.encodingName] = codec;
            return codec;
          default:
            throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')");
        }
      }
    };
    module.exports._canonicalizeEncoding = function(encoding) {
      return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
    };
    module.exports.getEncoder = function getEncoder(encoding, options) {
      var codec = module.exports.getCodec(encoding);
      var encoder = new codec.encoder(options, codec);
      if (codec.bomAware && options && options.addBOM) {
        encoder = new bomHandling.PrependBOM(encoder, options);
      }
      return encoder;
    };
    module.exports.getDecoder = function getDecoder(encoding, options) {
      var codec = module.exports.getCodec(encoding);
      var decoder2 = new codec.decoder(options, codec);
      if (codec.bomAware && !(options && options.stripBOM === false)) {
        decoder2 = new bomHandling.StripBOM(decoder2, options);
      }
      return decoder2;
    };
    module.exports.enableStreamingAPI = function enableStreamingAPI(streamModule2) {
      if (module.exports.supportsStreams) {
        return;
      }
      var streams = require_streams()(streamModule2);
      module.exports.IconvLiteEncoderStream = streams.IconvLiteEncoderStream;
      module.exports.IconvLiteDecoderStream = streams.IconvLiteDecoderStream;
      module.exports.encodeStream = function encodeStream(encoding, options) {
        return new module.exports.IconvLiteEncoderStream(module.exports.getEncoder(encoding, options), options);
      };
      module.exports.decodeStream = function decodeStream(encoding, options) {
        return new module.exports.IconvLiteDecoderStream(module.exports.getDecoder(encoding, options), options);
      };
      module.exports.supportsStreams = true;
    };
    var streamModule;
    try {
      streamModule = __require("stream");
    } catch (e4) {
    }
    if (streamModule && streamModule.Transform) {
      module.exports.enableStreamingAPI(streamModule);
    } else {
      module.exports.encodeStream = module.exports.decodeStream = function() {
        throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.");
      };
    }
    if (false) {
      console.error("iconv-lite warning: js files use non-utf8 encoding. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.");
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+http@3.16.0/node_modules/@crawlee/http/internals/http-crawler.js
var require_http_crawler = __commonJS({
  "../../node_modules/.pnpm/@crawlee+http@3.16.0/node_modules/@crawlee/http/internals/http-crawler.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.HttpCrawler = void 0;
    exports.createHttpRouter = createHttpRouter2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var node_path_1 = __require("node:path");
    var node_util_1 = tslib_1.__importDefault(__require("node:util"));
    var basic_1 = require_basic();
    var utils_1 = require_utils9();
    var cheerio = tslib_1.__importStar(require_lib12());
    var content_type_1 = tslib_1.__importDefault(require_content_type());
    var iconv_lite_1 = tslib_1.__importDefault(require_lib18());
    var mime_types_1 = tslib_1.__importDefault(require_mime_types());
    var ow_1 = tslib_1.__importStar(require_dist2());
    var timeout_1 = require_cjs();
    var utilities_1 = require_cjs4();
    var TimeoutError3;
    var HTML_AND_XML_MIME_TYPES = ["text/html", "text/xml", "application/xhtml+xml", "application/xml"];
    var APPLICATION_JSON_MIME_TYPE = "application/json";
    var HTTP_OPTIMIZED_AUTOSCALED_POOL_OPTIONS = {
      desiredConcurrency: 10,
      snapshotterOptions: {
        eventLoopSnapshotIntervalSecs: 2,
        maxBlockedMillis: 100
      },
      systemStatusOptions: {
        maxEventLoopOverloadedRatio: 0.7
      }
    };
    var HttpCrawler2 = class _HttpCrawler extends basic_1.BasicCrawler {
      /**
       * All `HttpCrawlerOptions` parameters are passed via an options object.
       */
      constructor(options = {}, config = basic_1.Configuration.getGlobalConfig()) {
        (0, ow_1.default)(options, "HttpCrawlerOptions", ow_1.default.object.exactShape(_HttpCrawler.optionsShape));
        const {
          requestHandler,
          handlePageFunction,
          requestHandlerTimeoutSecs = 60,
          navigationTimeoutSecs = 30,
          ignoreSslErrors = true,
          additionalMimeTypes = [],
          suggestResponseEncoding,
          forceResponseEncoding,
          proxyConfiguration,
          persistCookiesPerSession,
          preNavigationHooks = [],
          postNavigationHooks = [],
          additionalHttpErrorStatusCodes = [],
          ignoreHttpErrorStatusCodes = [],
          // Ignored
          handleRequestFunction,
          // BasicCrawler
          autoscaledPoolOptions = HTTP_OPTIMIZED_AUTOSCALED_POOL_OPTIONS,
          ...basicCrawlerOptions
        } = options;
        super({
          ...basicCrawlerOptions,
          requestHandler,
          autoscaledPoolOptions,
          // We need to add some time for internal functions to finish,
          // but not too much so that we would stall the crawler.
          requestHandlerTimeoutSecs: navigationTimeoutSecs + requestHandlerTimeoutSecs + basic_1.BASIC_CRAWLER_TIMEOUT_BUFFER_SECS
        }, config);
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "proxyConfiguration", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "userRequestHandlerTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "preNavigationHooks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "postNavigationHooks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistCookiesPerSession", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "navigationTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "ignoreSslErrors", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "suggestResponseEncoding", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "forceResponseEncoding", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "additionalHttpErrorStatusCodes", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "ignoreHttpErrorStatusCodes", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "supportedMimeTypes", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_requestAsBrowser", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: async (options2, session) => {
            const response = await this.httpClient.stream((0, basic_1.processHttpRequestOptions)({
              ...options2,
              cookieJar: options2.cookieJar,
              responseType: "text"
            }), (redirectResponse, updatedRequest) => {
              if (this.persistCookiesPerSession) {
                session.setCookiesFromResponse(redirectResponse);
                const cookieString = session.getCookieString(updatedRequest.url.toString());
                if (cookieString !== "") {
                  updatedRequest.headers.Cookie = cookieString;
                }
              }
            });
            return addResponsePropertiesToStream(response.stream, response);
          }
        });
        this._handlePropertyNameChange({
          newName: "requestHandler",
          oldName: "handlePageFunction",
          propertyKey: "requestHandler",
          newProperty: requestHandler,
          oldProperty: handlePageFunction,
          allowUndefined: true
        });
        if (!this.requestHandler) {
          this.requestHandler = this.router;
        }
        if (!this.useSessionPool && persistCookiesPerSession) {
          throw new Error('You cannot use "persistCookiesPerSession" without "useSessionPool" set to true.');
        }
        this.supportedMimeTypes = /* @__PURE__ */ new Set([...HTML_AND_XML_MIME_TYPES, APPLICATION_JSON_MIME_TYPE]);
        if (additionalMimeTypes.length)
          this._extendSupportedMimeTypes(additionalMimeTypes);
        if (suggestResponseEncoding && forceResponseEncoding) {
          this.log.warning("Both forceResponseEncoding and suggestResponseEncoding options are set. Using forceResponseEncoding.");
        }
        this.userRequestHandlerTimeoutMillis = requestHandlerTimeoutSecs * 1e3;
        this.navigationTimeoutMillis = navigationTimeoutSecs * 1e3;
        this.ignoreSslErrors = ignoreSslErrors;
        this.suggestResponseEncoding = suggestResponseEncoding;
        this.forceResponseEncoding = forceResponseEncoding;
        this.additionalHttpErrorStatusCodes = /* @__PURE__ */ new Set([...additionalHttpErrorStatusCodes]);
        this.ignoreHttpErrorStatusCodes = /* @__PURE__ */ new Set([...ignoreHttpErrorStatusCodes]);
        this.proxyConfiguration = proxyConfiguration;
        this.preNavigationHooks = preNavigationHooks;
        this.postNavigationHooks = [
          ({ request, response }) => this._abortDownloadOfBody(request, response),
          ...postNavigationHooks
        ];
        if (this.useSessionPool) {
          this.persistCookiesPerSession = persistCookiesPerSession ?? true;
        } else {
          this.persistCookiesPerSession = false;
        }
      }
      /**
       * **EXPERIMENTAL**
       * Function for attaching CrawlerExtensions such as the Unblockers.
       * @param extension Crawler extension that overrides the crawler configuration.
       */
      use(extension) {
        (0, ow_1.default)(extension, ow_1.default.object.instanceOf(basic_1.CrawlerExtension));
        const className = this.constructor.name;
        const extensionOptions = extension.getCrawlerOptions();
        for (const [key, value2] of Object.entries(extensionOptions)) {
          const isConfigurable = Object.hasOwn(this, key);
          const originalType = typeof this[key];
          const extensionType = typeof value2;
          const isSameType = originalType === extensionType || value2 == null;
          const exists = this[key] != null;
          if (!isConfigurable) {
            throw new Error(`${extension.name} tries to set property "${key}" that is not configurable on ${className} instance.`);
          }
          if (!isSameType && exists) {
            throw new Error(`${extension.name} tries to set property of different type "${extensionType}". "${className}.${key}: ${originalType}".`);
          }
          this.log.warning(`${extension.name} is overriding "${className}.${key}: ${originalType}" with ${value2}.`);
          this[key] = value2;
        }
      }
      /**
       * Wrapper around requestHandler that opens and closes pages etc.
       */
      async _runRequestHandler(crawlingContext) {
        const { request, session } = crawlingContext;
        if (this.proxyConfiguration) {
          const sessionId = session ? session.id : void 0;
          crawlingContext.proxyInfo = await this.proxyConfiguration.newProxyInfo(sessionId, { request });
        }
        if (!request.skipNavigation) {
          await this._handleNavigation(crawlingContext);
          (0, timeout_1.tryCancel)();
          const parsed = await this._parseResponse(request, crawlingContext.response, crawlingContext);
          const response = parsed.response;
          const contentType = parsed.contentType;
          (0, timeout_1.tryCancel)();
          crawlingContext.waitForSelector ?? (crawlingContext.waitForSelector = async (selector, _timeoutMs) => {
            const $ = cheerio.load(parsed.body.toString());
            if ($(selector).get().length === 0) {
              throw new Error(`Selector '${selector}' not found.`);
            }
          });
          crawlingContext.parseWithCheerio ?? (crawlingContext.parseWithCheerio = async (selector, timeoutMs) => {
            const $ = cheerio.load(parsed.body.toString());
            if (selector) {
              await crawlingContext.waitForSelector(selector, timeoutMs);
            }
            return $;
          });
          if (this.useSessionPool) {
            this._throwOnBlockedRequest(crawlingContext.session, response.statusCode);
          }
          if (this.persistCookiesPerSession) {
            crawlingContext.session.setCookiesFromResponse(response);
          }
          request.loadedUrl = response.url;
          if (!this.requestMatchesEnqueueStrategy(request)) {
            this.log.debug(
              // eslint-disable-next-line dot-notation
              `Skipping request ${request.id} (starting url: ${request.url} -> loaded url: ${request.loadedUrl}) because it does not match the enqueue strategy (${request["enqueueStrategy"]}).`
            );
            request.noRetry = true;
            request.state = basic_1.RequestState.SKIPPED;
            await this.handleSkippedRequest({ url: request.url, reason: "redirect" });
            return;
          }
          Object.assign(crawlingContext, parsed);
          Object.defineProperty(crawlingContext, "json", {
            get() {
              if (contentType.type !== APPLICATION_JSON_MIME_TYPE)
                return null;
              const jsonString = parsed.body.toString(contentType.encoding);
              return JSON.parse(jsonString);
            }
          });
        }
        if (this.retryOnBlocked) {
          const error = await this.isRequestBlocked(crawlingContext);
          if (error)
            throw new basic_1.SessionError(error);
        }
        request.state = basic_1.RequestState.REQUEST_HANDLER;
        try {
          await (0, timeout_1.addTimeoutToPromise)(async () => Promise.resolve(this.requestHandler(crawlingContext)), this.userRequestHandlerTimeoutMillis, `requestHandler timed out after ${this.userRequestHandlerTimeoutMillis / 1e3} seconds.`);
          request.state = basic_1.RequestState.DONE;
        } catch (e4) {
          request.state = basic_1.RequestState.ERROR;
          throw e4;
        }
      }
      async isRequestBlocked(crawlingContext) {
        if (HTML_AND_XML_MIME_TYPES.includes(crawlingContext.contentType.type)) {
          const $ = await crawlingContext.parseWithCheerio();
          const foundSelectors = utils_1.RETRY_CSS_SELECTORS.filter((selector) => $(selector).length > 0);
          if (foundSelectors.length > 0) {
            return `Found selectors: ${foundSelectors.join(", ")}`;
          }
        }
        const blockedStatusCodes = (
          // eslint-disable-next-line dot-notation
          (this.sessionPool?.["blockedStatusCodes"].length ?? 0) > 0 ? (
            // eslint-disable-next-line dot-notation
            this.sessionPool["blockedStatusCodes"]
          ) : basic_1.BLOCKED_STATUS_CODES
        );
        if (blockedStatusCodes.includes(crawlingContext.response.statusCode)) {
          return `Blocked by status code ${crawlingContext.response.statusCode}`;
        }
        return false;
      }
      async _handleNavigation(crawlingContext) {
        const gotOptions = {};
        const { request, session } = crawlingContext;
        const preNavigationHooksCookies = this._getCookieHeaderFromRequest(request);
        request.state = basic_1.RequestState.BEFORE_NAV;
        await this._executeHooks(this.preNavigationHooks, crawlingContext, gotOptions);
        (0, timeout_1.tryCancel)();
        const postNavigationHooksCookies = this._getCookieHeaderFromRequest(request);
        this._applyCookies(crawlingContext, gotOptions, preNavigationHooksCookies, postNavigationHooksCookies);
        const proxyUrl = crawlingContext.proxyInfo?.url;
        crawlingContext.response = await (0, timeout_1.addTimeoutToPromise)(async () => this._requestFunction({ request, session, proxyUrl, gotOptions }), this.navigationTimeoutMillis, `request timed out after ${this.navigationTimeoutMillis / 1e3} seconds.`);
        (0, timeout_1.tryCancel)();
        request.state = basic_1.RequestState.AFTER_NAV;
        await this._executeHooks(this.postNavigationHooks, crawlingContext, gotOptions);
        (0, timeout_1.tryCancel)();
      }
      /**
       * Sets the cookie header to `gotOptions` based on the provided request and session headers, as well as any changes that occurred due to hooks.
       */
      _applyCookies({ session, request }, gotOptions, preHookCookies, postHookCookies) {
        const sessionCookie = session?.getCookieString(request.url) ?? "";
        let alteredGotOptionsCookies = gotOptions.headers?.Cookie || gotOptions.headers?.cookie || "";
        if (gotOptions.headers?.Cookie && gotOptions.headers?.cookie) {
          const { Cookie: upperCaseHeader, cookie: lowerCaseHeader } = gotOptions.headers;
          this.log.warning(`Encountered mixed casing for the cookie headers in the got options for request ${request.url} (${request.id}). Their values will be merged`);
          const sourceCookies2 = [];
          if (Array.isArray(lowerCaseHeader)) {
            sourceCookies2.push(...lowerCaseHeader);
          } else {
            sourceCookies2.push(lowerCaseHeader);
          }
          if (Array.isArray(upperCaseHeader)) {
            sourceCookies2.push(...upperCaseHeader);
          } else {
            sourceCookies2.push(upperCaseHeader);
          }
          alteredGotOptionsCookies = (0, basic_1.mergeCookies)(request.url, sourceCookies2);
        }
        const sourceCookies = [sessionCookie, preHookCookies];
        if (Array.isArray(alteredGotOptionsCookies)) {
          sourceCookies.push(...alteredGotOptionsCookies);
        } else {
          sourceCookies.push(alteredGotOptionsCookies);
        }
        sourceCookies.push(postHookCookies);
        const mergedCookie = (0, basic_1.mergeCookies)(request.url, sourceCookies);
        gotOptions.headers ?? (gotOptions.headers = {});
        Reflect.deleteProperty(gotOptions.headers, "Cookie");
        Reflect.deleteProperty(gotOptions.headers, "cookie");
        if (mergedCookie !== "") {
          gotOptions.headers.Cookie = mergedCookie;
        }
      }
      /**
       * Function to make the HTTP request. It performs optimizations
       * on the request such as only downloading the request body if the
       * received content type matches text/html, application/xml, application/xhtml+xml.
       */
      async _requestFunction({ request, session, proxyUrl, gotOptions }) {
        if (!TimeoutError3) {
          ({ TimeoutError: TimeoutError3 } = await Promise.resolve().then(() => (init_dist6(), dist_exports)));
        }
        const opts2 = this._getRequestOptions(request, session, proxyUrl, gotOptions);
        try {
          return await this._requestAsBrowser(opts2, session);
        } catch (e4) {
          if (e4 instanceof TimeoutError3) {
            this._handleRequestTimeout(session);
            return void 0;
          }
          if (this.isProxyError(e4)) {
            throw new basic_1.SessionError(this._getMessageFromError(e4));
          } else {
            throw e4;
          }
        }
      }
      /**
       * Encodes and parses response according to the provided content type
       */
      async _parseResponse(request, responseStream, crawlingContext) {
        const { statusCode } = responseStream;
        const { type, charset } = parseContentTypeFromResponse(responseStream);
        const { response, encoding } = this._encodeResponse(request, responseStream, charset);
        const contentType = { type, encoding };
        if (statusCode >= 400 && statusCode <= 599) {
          this.stats.registerStatusCode(statusCode);
        }
        const excludeError = this.ignoreHttpErrorStatusCodes.has(statusCode);
        const includeError = this.additionalHttpErrorStatusCodes.has(statusCode);
        if (statusCode >= 500 && !excludeError || includeError) {
          const body = await (0, utilities_1.readStreamToString)(response, encoding);
          if (type === APPLICATION_JSON_MIME_TYPE) {
            const errorResponse = JSON.parse(body);
            let { message } = errorResponse;
            if (!message)
              message = node_util_1.default.inspect(errorResponse, { depth: 1, maxArrayLength: 10 });
            throw new Error(`${statusCode} - ${message}`);
          }
          if (includeError) {
            throw new Error(`${statusCode} - Error status code was set by user.`);
          }
          throw new Error(`${statusCode} - Internal Server Error: ${body.slice(0, 100)}`);
        } else if (HTML_AND_XML_MIME_TYPES.includes(type)) {
          const isXml = type.includes("xml");
          const parsed = await this._parseHTML(response, isXml, crawlingContext);
          return { ...parsed, isXml, response, contentType };
        } else {
          const body = await (0, utilities_1.concatStreamToBuffer)(response);
          return {
            body,
            response,
            contentType,
            enqueueLinks: async () => Promise.resolve({ processedRequests: [], unprocessedRequests: [] })
          };
        }
      }
      async _parseHTML(response, _isXml, _crawlingContext) {
        return {
          body: await (0, utilities_1.concatStreamToBuffer)(response)
        };
      }
      /**
       * Combines the provided `requestOptions` with mandatory (non-overridable) values.
       */
      _getRequestOptions(request, session, proxyUrl, gotOptions) {
        const requestOptions = {
          url: request.url,
          method: request.method,
          proxyUrl,
          timeout: { request: this.navigationTimeoutMillis },
          cookieJar: this.persistCookiesPerSession ? session?.cookieJar : void 0,
          sessionToken: session,
          ...gotOptions,
          headers: { ...request.headers, ...gotOptions?.headers },
          https: {
            ...gotOptions?.https,
            rejectUnauthorized: !this.ignoreSslErrors
          },
          isStream: true
        };
        Reflect.deleteProperty(requestOptions.headers, "cookie");
        if (this.proxyConfiguration && this.proxyConfiguration.isManInTheMiddle) {
          requestOptions.https = {
            ...requestOptions.https,
            rejectUnauthorized: false
          };
        }
        if (/PATCH|POST|PUT/.test(request.method))
          requestOptions.body = request.payload ?? "";
        return requestOptions;
      }
      _encodeResponse(request, response, encoding) {
        if (this.forceResponseEncoding) {
          encoding = this.forceResponseEncoding;
        } else if (!encoding && this.suggestResponseEncoding) {
          encoding = this.suggestResponseEncoding;
        }
        const utf8 = "utf8";
        if (!encoding)
          return { response, encoding: utf8 };
        if (Buffer.isEncoding(encoding))
          return { response, encoding };
        if (iconv_lite_1.default.encodingExists(encoding)) {
          const encodeStream = iconv_lite_1.default.encodeStream(utf8);
          const decodeStream = iconv_lite_1.default.decodeStream(encoding).on("error", (err2) => encodeStream.emit("error", err2));
          response.on("error", (err2) => decodeStream.emit("error", err2));
          const encodedResponse = response.pipe(decodeStream).pipe(encodeStream);
          encodedResponse.statusCode = response.statusCode;
          encodedResponse.headers = response.headers;
          encodedResponse.url = response.url;
          return {
            response: encodedResponse,
            encoding: utf8
          };
        }
        throw new Error(`Resource ${request.url} served with unsupported charset/encoding: ${encoding}`);
      }
      /**
       * Checks and extends supported mime types
       */
      _extendSupportedMimeTypes(additionalMimeTypes) {
        for (const mimeType of additionalMimeTypes) {
          if (mimeType === "*/*") {
            this.supportedMimeTypes.add(mimeType);
            continue;
          }
          try {
            const parsedType = content_type_1.default.parse(mimeType);
            this.supportedMimeTypes.add(parsedType.type);
          } catch (err2) {
            throw new Error(`Can not parse mime type ${mimeType} from "options.additionalMimeTypes".`);
          }
        }
      }
      /**
       * Handles timeout request
       */
      _handleRequestTimeout(session) {
        session?.markBad();
        throw new Error(`request timed out after ${this.requestHandlerTimeoutMillis / 1e3} seconds.`);
      }
      _abortDownloadOfBody(request, response) {
        const { statusCode } = response;
        const { type } = parseContentTypeFromResponse(response);
        const blockedStatusCodes = this.sessionPool ? this.sessionPool["blockedStatusCodes"] : [];
        const isTransientContentType = statusCode >= 500 || blockedStatusCodes.includes(statusCode);
        if (!this.supportedMimeTypes.has(type) && !this.supportedMimeTypes.has("*/*") && !isTransientContentType) {
          request.noRetry = true;
          throw new Error(`Resource ${request.url} served Content-Type ${type}, but only ${Array.from(this.supportedMimeTypes).join(", ")} are allowed. Skipping resource.`);
        }
      }
    };
    exports.HttpCrawler = HttpCrawler2;
    Object.defineProperty(HttpCrawler2, "optionsShape", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        ...basic_1.BasicCrawler.optionsShape,
        handlePageFunction: ow_1.default.optional.function,
        navigationTimeoutSecs: ow_1.default.optional.number,
        ignoreSslErrors: ow_1.default.optional.boolean,
        additionalMimeTypes: ow_1.default.optional.array.ofType(ow_1.default.string),
        suggestResponseEncoding: ow_1.default.optional.string,
        forceResponseEncoding: ow_1.default.optional.string,
        proxyConfiguration: ow_1.default.optional.object.validate(basic_1.validators.proxyConfiguration),
        persistCookiesPerSession: ow_1.default.optional.boolean,
        additionalHttpErrorStatusCodes: ow_1.default.optional.array.ofType(ow_1.default.number),
        ignoreHttpErrorStatusCodes: ow_1.default.optional.array.ofType(ow_1.default.number),
        preNavigationHooks: ow_1.default.optional.array,
        postNavigationHooks: ow_1.default.optional.array
      }
    });
    function addResponsePropertiesToStream(stream7, response) {
      const properties = [
        "statusCode",
        "statusMessage",
        "headers",
        "complete",
        "httpVersion",
        "rawHeaders",
        "rawTrailers",
        "trailers",
        "url",
        "request"
      ];
      stream7.on("end", () => {
        if (stream7.rawTrailers)
          stream7.rawTrailers = response.rawTrailers;
        if (stream7.trailers)
          stream7.trailers = response.trailers;
        stream7.complete = response.complete;
      });
      for (const prop of properties) {
        if (!(prop in stream7)) {
          stream7[prop] = response[prop];
        }
      }
      return stream7;
    }
    function parseContentTypeFromResponse(response) {
      (0, ow_1.default)(response, ow_1.default.object.partialShape({
        url: ow_1.default.string.url,
        headers: new ow_1.ObjectPredicate()
      }));
      const { url: url3, headers } = response;
      let parsedContentType;
      if (headers["content-type"]) {
        try {
          parsedContentType = content_type_1.default.parse(headers["content-type"]);
        } catch {
        }
      }
      if (!parsedContentType) {
        const parsedUrl = new URL(url3);
        const contentTypeFromExtname = mime_types_1.default.contentType((0, node_path_1.extname)(parsedUrl.pathname)) || "application/octet-stream; charset=utf-8";
        parsedContentType = content_type_1.default.parse(contentTypeFromExtname);
      }
      return {
        type: parsedContentType.type,
        charset: parsedContentType.parameters.charset
      };
    }
    function createHttpRouter2(routes) {
      return basic_1.Router.create(routes);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+http@3.16.0/node_modules/@crawlee/http/internals/file-download.js
var require_file_download = __commonJS({
  "../../node_modules/.pnpm/@crawlee+http@3.16.0/node_modules/@crawlee/http/internals/file-download.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.FileDownload = void 0;
    exports.MinimumSpeedStream = MinimumSpeedStream2;
    exports.ByteCounterStream = ByteCounterStream2;
    exports.createFileRouter = createFileRouter2;
    var node_stream_1 = __require("node:stream");
    var promises_1 = __require("node:stream/promises");
    var types_1 = __require("node:util/types");
    var index_1 = require_http();
    function MinimumSpeedStream2({ minSpeedKbps, historyLengthMs = 1e4, checkProgressInterval: checkProgressIntervalMs = 5e3 }) {
      let snapshots = [];
      const checkInterval = setInterval(() => {
        const now = Date.now();
        snapshots = snapshots.filter((snapshot) => now - snapshot.timestamp < historyLengthMs);
        const totalBytes = snapshots.reduce((acc, snapshot) => acc + snapshot.bytes, 0);
        const elapsed = (now - (snapshots[0]?.timestamp ?? 0)) / 1e3;
        if (totalBytes / 1024 / elapsed < minSpeedKbps) {
          clearInterval(checkInterval);
          stream7.emit("error", new Error(`Stream speed too slow, aborting...`));
        }
      }, checkProgressIntervalMs);
      const stream7 = new node_stream_1.Transform({
        transform: (chunk3, _, callback) => {
          snapshots.push({ timestamp: Date.now(), bytes: chunk3.length });
          callback(null, chunk3);
        },
        final: (callback) => {
          clearInterval(checkInterval);
          callback();
        }
      });
      return stream7;
    }
    function ByteCounterStream2({ logTransferredBytes, loggingInterval = 5e3 }) {
      let transferredBytes = 0;
      let lastLogTime = Date.now();
      return new node_stream_1.Transform({
        transform: (chunk3, _, callback) => {
          transferredBytes += chunk3.length;
          if (Date.now() - lastLogTime > loggingInterval) {
            lastLogTime = Date.now();
            logTransferredBytes(transferredBytes);
          }
          callback(null, chunk3);
        },
        flush: (callback) => {
          logTransferredBytes(transferredBytes);
          callback();
        }
      });
    }
    var FileDownload2 = class extends index_1.HttpCrawler {
      constructor(options = {}) {
        const { streamHandler } = options;
        delete options.streamHandler;
        if (streamHandler) {
          options.requestHandlerTimeoutSecs = options.navigationTimeoutSecs ?? 120;
        }
        super(options);
        Object.defineProperty(this, "streamHandler", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.streamHandler = streamHandler;
        if (this.streamHandler) {
          this.requestHandler = this.streamRequestHandler;
        }
        this.supportedMimeTypes = /* @__PURE__ */ new Set(["*/*"]);
      }
      async _runRequestHandler(context) {
        if (this.streamHandler) {
          context.request.skipNavigation = true;
        }
        await super._runRequestHandler(context);
      }
      async streamRequestHandler(context) {
        const { log: log2, request: { url: url3 } } = context;
        const response = await this.httpClient.stream({
          url: url3,
          timeout: { request: void 0 },
          proxyUrl: context.proxyInfo?.url
        });
        let pollingInterval;
        const cleanUp = () => {
          clearInterval(pollingInterval);
          response.stream.destroy();
        };
        const downloadPromise = new Promise((resolve4, reject) => {
          pollingInterval = setInterval(() => {
            const { total, transferred } = response.downloadProgress;
            if (transferred > 0) {
              log2.debug(`Downloaded ${transferred} bytes of ${total ?? 0} bytes from ${url3}.`);
            }
          }, 5e3);
          response.stream.on("error", async (error) => {
            cleanUp();
            reject(error);
          });
          let streamHandlerResult;
          try {
            context.stream = response.stream;
            context.response = response;
            streamHandlerResult = this.streamHandler(context);
          } catch (e4) {
            cleanUp();
            reject(e4);
          }
          if ((0, types_1.isPromise)(streamHandlerResult)) {
            streamHandlerResult.then(() => {
              resolve4();
            }).catch((e4) => {
              cleanUp();
              reject(e4);
            });
          } else {
            resolve4();
          }
        });
        await Promise.all([downloadPromise, (0, promises_1.finished)(response.stream)]);
        cleanUp();
      }
    };
    exports.FileDownload = FileDownload2;
    function createFileRouter2(routes) {
      return index_1.Router.create(routes);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+http@3.16.0/node_modules/@crawlee/http/index.js
var require_http = __commonJS({
  "../../node_modules/.pnpm/@crawlee+http@3.16.0/node_modules/@crawlee/http/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_basic(), exports);
    tslib_1.__exportStar(require_http_crawler(), exports);
    tslib_1.__exportStar(require_file_download(), exports);
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/pathMatch.js
var require_pathMatch = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/pathMatch.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.pathMatch = pathMatch;
    function pathMatch(reqPath, cookiePath) {
      if (cookiePath === reqPath) {
        return true;
      }
      const idx = reqPath.indexOf(cookiePath);
      if (idx === 0) {
        if (cookiePath[cookiePath.length - 1] === "/") {
          return true;
        }
        if (reqPath.startsWith(cookiePath) && reqPath[cookiePath.length] === "/") {
          return true;
        }
      }
      return false;
    }
  }
});

// ../../node_modules/.pnpm/tldts@6.1.86/node_modules/tldts/dist/cjs/index.js
var require_cjs12 = __commonJS({
  "../../node_modules/.pnpm/tldts@6.1.86/node_modules/tldts/dist/cjs/index.js"(exports) {
    "use strict";
    function shareSameDomainSuffix(hostname, vhost) {
      if (hostname.endsWith(vhost)) {
        return hostname.length === vhost.length || hostname[hostname.length - vhost.length - 1] === ".";
      }
      return false;
    }
    function extractDomainWithSuffix(hostname, publicSuffix) {
      const publicSuffixIndex = hostname.length - publicSuffix.length - 2;
      const lastDotBeforeSuffixIndex = hostname.lastIndexOf(".", publicSuffixIndex);
      if (lastDotBeforeSuffixIndex === -1) {
        return hostname;
      }
      return hostname.slice(lastDotBeforeSuffixIndex + 1);
    }
    function getDomain$1(suffix, hostname, options) {
      if (options.validHosts !== null) {
        const validHosts = options.validHosts;
        for (const vhost of validHosts) {
          if (
            /*@__INLINE__*/
            shareSameDomainSuffix(hostname, vhost)
          ) {
            return vhost;
          }
        }
      }
      let numberOfLeadingDots = 0;
      if (hostname.startsWith(".")) {
        while (numberOfLeadingDots < hostname.length && hostname[numberOfLeadingDots] === ".") {
          numberOfLeadingDots += 1;
        }
      }
      if (suffix.length === hostname.length - numberOfLeadingDots) {
        return null;
      }
      return (
        /*@__INLINE__*/
        extractDomainWithSuffix(hostname, suffix)
      );
    }
    function getDomainWithoutSuffix$1(domain, suffix) {
      return domain.slice(0, -suffix.length - 1);
    }
    function extractHostname(url3, urlIsValidHostname) {
      let start2 = 0;
      let end2 = url3.length;
      let hasUpper = false;
      if (!urlIsValidHostname) {
        if (url3.startsWith("data:")) {
          return null;
        }
        while (start2 < url3.length && url3.charCodeAt(start2) <= 32) {
          start2 += 1;
        }
        while (end2 > start2 + 1 && url3.charCodeAt(end2 - 1) <= 32) {
          end2 -= 1;
        }
        if (url3.charCodeAt(start2) === 47 && url3.charCodeAt(start2 + 1) === 47) {
          start2 += 2;
        } else {
          const indexOfProtocol = url3.indexOf(":/", start2);
          if (indexOfProtocol !== -1) {
            const protocolSize = indexOfProtocol - start2;
            const c0 = url3.charCodeAt(start2);
            const c1 = url3.charCodeAt(start2 + 1);
            const c22 = url3.charCodeAt(start2 + 2);
            const c32 = url3.charCodeAt(start2 + 3);
            const c42 = url3.charCodeAt(start2 + 4);
            if (protocolSize === 5 && c0 === 104 && c1 === 116 && c22 === 116 && c32 === 112 && c42 === 115) ;
            else if (protocolSize === 4 && c0 === 104 && c1 === 116 && c22 === 116 && c32 === 112) ;
            else if (protocolSize === 3 && c0 === 119 && c1 === 115 && c22 === 115) ;
            else if (protocolSize === 2 && c0 === 119 && c1 === 115) ;
            else {
              for (let i5 = start2; i5 < indexOfProtocol; i5 += 1) {
                const lowerCaseCode = url3.charCodeAt(i5) | 32;
                if (!(lowerCaseCode >= 97 && lowerCaseCode <= 122 || // [a, z]
                lowerCaseCode >= 48 && lowerCaseCode <= 57 || // [0, 9]
                lowerCaseCode === 46 || // '.'
                lowerCaseCode === 45 || // '-'
                lowerCaseCode === 43)) {
                  return null;
                }
              }
            }
            start2 = indexOfProtocol + 2;
            while (url3.charCodeAt(start2) === 47) {
              start2 += 1;
            }
          }
        }
        let indexOfIdentifier = -1;
        let indexOfClosingBracket = -1;
        let indexOfPort = -1;
        for (let i5 = start2; i5 < end2; i5 += 1) {
          const code = url3.charCodeAt(i5);
          if (code === 35 || // '#'
          code === 47 || // '/'
          code === 63) {
            end2 = i5;
            break;
          } else if (code === 64) {
            indexOfIdentifier = i5;
          } else if (code === 93) {
            indexOfClosingBracket = i5;
          } else if (code === 58) {
            indexOfPort = i5;
          } else if (code >= 65 && code <= 90) {
            hasUpper = true;
          }
        }
        if (indexOfIdentifier !== -1 && indexOfIdentifier > start2 && indexOfIdentifier < end2) {
          start2 = indexOfIdentifier + 1;
        }
        if (url3.charCodeAt(start2) === 91) {
          if (indexOfClosingBracket !== -1) {
            return url3.slice(start2 + 1, indexOfClosingBracket).toLowerCase();
          }
          return null;
        } else if (indexOfPort !== -1 && indexOfPort > start2 && indexOfPort < end2) {
          end2 = indexOfPort;
        }
      }
      while (end2 > start2 + 1 && url3.charCodeAt(end2 - 1) === 46) {
        end2 -= 1;
      }
      const hostname = start2 !== 0 || end2 !== url3.length ? url3.slice(start2, end2) : url3;
      if (hasUpper) {
        return hostname.toLowerCase();
      }
      return hostname;
    }
    function isProbablyIpv4(hostname) {
      if (hostname.length < 7) {
        return false;
      }
      if (hostname.length > 15) {
        return false;
      }
      let numberOfDots = 0;
      for (let i5 = 0; i5 < hostname.length; i5 += 1) {
        const code = hostname.charCodeAt(i5);
        if (code === 46) {
          numberOfDots += 1;
        } else if (code < 48 || code > 57) {
          return false;
        }
      }
      return numberOfDots === 3 && hostname.charCodeAt(0) !== 46 && hostname.charCodeAt(hostname.length - 1) !== 46;
    }
    function isProbablyIpv6(hostname) {
      if (hostname.length < 3) {
        return false;
      }
      let start2 = hostname.startsWith("[") ? 1 : 0;
      let end2 = hostname.length;
      if (hostname[end2 - 1] === "]") {
        end2 -= 1;
      }
      if (end2 - start2 > 39) {
        return false;
      }
      let hasColon = false;
      for (; start2 < end2; start2 += 1) {
        const code = hostname.charCodeAt(start2);
        if (code === 58) {
          hasColon = true;
        } else if (!(code >= 48 && code <= 57 || // 0-9
        code >= 97 && code <= 102 || // a-f
        code >= 65 && code <= 90)) {
          return false;
        }
      }
      return hasColon;
    }
    function isIp(hostname) {
      return isProbablyIpv6(hostname) || isProbablyIpv4(hostname);
    }
    function isValidAscii(code) {
      return code >= 97 && code <= 122 || code >= 48 && code <= 57 || code > 127;
    }
    function isValidHostname(hostname) {
      if (hostname.length > 255) {
        return false;
      }
      if (hostname.length === 0) {
        return false;
      }
      if (
        /*@__INLINE__*/
        !isValidAscii(hostname.charCodeAt(0)) && hostname.charCodeAt(0) !== 46 && // '.' (dot)
        hostname.charCodeAt(0) !== 95
      ) {
        return false;
      }
      let lastDotIndex = -1;
      let lastCharCode = -1;
      const len = hostname.length;
      for (let i5 = 0; i5 < len; i5 += 1) {
        const code = hostname.charCodeAt(i5);
        if (code === 46) {
          if (
            // Check that previous label is < 63 bytes long (64 = 63 + '.')
            i5 - lastDotIndex > 64 || // Check that previous character was not already a '.'
            lastCharCode === 46 || // Check that the previous label does not end with a '-' (dash)
            lastCharCode === 45 || // Check that the previous label does not end with a '_' (underscore)
            lastCharCode === 95
          ) {
            return false;
          }
          lastDotIndex = i5;
        } else if (!/*@__INLINE__*/
        (isValidAscii(code) || code === 45 || code === 95)) {
          return false;
        }
        lastCharCode = code;
      }
      return (
        // Check that last label is shorter than 63 chars
        len - lastDotIndex - 1 <= 63 && // Check that the last character is an allowed trailing label character.
        // Since we already checked that the char is a valid hostname character,
        // we only need to check that it's different from '-'.
        lastCharCode !== 45
      );
    }
    function setDefaultsImpl({ allowIcannDomains = true, allowPrivateDomains = false, detectIp = true, extractHostname: extractHostname2 = true, mixedInputs = true, validHosts = null, validateHostname = true }) {
      return {
        allowIcannDomains,
        allowPrivateDomains,
        detectIp,
        extractHostname: extractHostname2,
        mixedInputs,
        validHosts,
        validateHostname
      };
    }
    var DEFAULT_OPTIONS2 = (
      /*@__INLINE__*/
      setDefaultsImpl({})
    );
    function setDefaults(options) {
      if (options === void 0) {
        return DEFAULT_OPTIONS2;
      }
      return (
        /*@__INLINE__*/
        setDefaultsImpl(options)
      );
    }
    function getSubdomain$1(hostname, domain) {
      if (domain.length === hostname.length) {
        return "";
      }
      return hostname.slice(0, -domain.length - 1);
    }
    function getEmptyResult() {
      return {
        domain: null,
        domainWithoutSuffix: null,
        hostname: null,
        isIcann: null,
        isIp: null,
        isPrivate: null,
        publicSuffix: null,
        subdomain: null
      };
    }
    function resetResult(result) {
      result.domain = null;
      result.domainWithoutSuffix = null;
      result.hostname = null;
      result.isIcann = null;
      result.isIp = null;
      result.isPrivate = null;
      result.publicSuffix = null;
      result.subdomain = null;
    }
    function parseImpl(url3, step, suffixLookup2, partialOptions, result) {
      const options = (
        /*@__INLINE__*/
        setDefaults(partialOptions)
      );
      if (typeof url3 !== "string") {
        return result;
      }
      if (!options.extractHostname) {
        result.hostname = url3;
      } else if (options.mixedInputs) {
        result.hostname = extractHostname(url3, isValidHostname(url3));
      } else {
        result.hostname = extractHostname(url3, false);
      }
      if (step === 0 || result.hostname === null) {
        return result;
      }
      if (options.detectIp) {
        result.isIp = isIp(result.hostname);
        if (result.isIp) {
          return result;
        }
      }
      if (options.validateHostname && options.extractHostname && !isValidHostname(result.hostname)) {
        result.hostname = null;
        return result;
      }
      suffixLookup2(result.hostname, options, result);
      if (step === 2 || result.publicSuffix === null) {
        return result;
      }
      result.domain = getDomain$1(result.publicSuffix, result.hostname, options);
      if (step === 3 || result.domain === null) {
        return result;
      }
      result.subdomain = getSubdomain$1(result.hostname, result.domain);
      if (step === 4) {
        return result;
      }
      result.domainWithoutSuffix = getDomainWithoutSuffix$1(result.domain, result.publicSuffix);
      return result;
    }
    function fastPathLookup(hostname, options, out) {
      if (!options.allowPrivateDomains && hostname.length > 3) {
        const last2 = hostname.length - 1;
        const c32 = hostname.charCodeAt(last2);
        const c22 = hostname.charCodeAt(last2 - 1);
        const c1 = hostname.charCodeAt(last2 - 2);
        const c0 = hostname.charCodeAt(last2 - 3);
        if (c32 === 109 && c22 === 111 && c1 === 99 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "com";
          return true;
        } else if (c32 === 103 && c22 === 114 && c1 === 111 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "org";
          return true;
        } else if (c32 === 117 && c22 === 100 && c1 === 101 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "edu";
          return true;
        } else if (c32 === 118 && c22 === 111 && c1 === 103 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "gov";
          return true;
        } else if (c32 === 116 && c22 === 101 && c1 === 110 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "net";
          return true;
        } else if (c32 === 101 && c22 === 100 && c1 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "de";
          return true;
        }
      }
      return false;
    }
    var exceptions = /* @__PURE__ */ (function() {
      const _0 = [1, {}], _1 = [2, {}], _2 = [0, { "city": _0 }];
      const exceptions2 = [0, { "ck": [0, { "www": _0 }], "jp": [0, { "kawasaki": _2, "kitakyushu": _2, "kobe": _2, "nagoya": _2, "sapporo": _2, "sendai": _2, "yokohama": _2 }], "dev": [0, { "hrsn": [0, { "psl": [0, { "wc": [0, { "ignored": _1, "sub": [0, { "ignored": _1 }] }] }] }] }] }];
      return exceptions2;
    })();
    var rules = /* @__PURE__ */ (function() {
      const _3 = [1, {}], _4 = [2, {}], _5 = [1, { "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3 }], _6 = [1, { "com": _3, "edu": _3, "gov": _3, "mil": _3, "net": _3, "org": _3 }], _7 = [0, { "*": _4 }], _8 = [2, { "s": _7 }], _9 = [0, { "relay": _4 }], _10 = [2, { "id": _4 }], _11 = [1, { "gov": _3 }], _12 = [0, { "transfer-webapp": _4 }], _13 = [0, { "notebook": _4, "studio": _4 }], _14 = [0, { "labeling": _4, "notebook": _4, "studio": _4 }], _15 = [0, { "notebook": _4 }], _16 = [0, { "labeling": _4, "notebook": _4, "notebook-fips": _4, "studio": _4 }], _17 = [0, { "notebook": _4, "notebook-fips": _4, "studio": _4, "studio-fips": _4 }], _18 = [0, { "*": _3 }], _19 = [1, { "co": _4 }], _20 = [0, { "objects": _4 }], _21 = [2, { "nodes": _4 }], _22 = [0, { "my": _7 }], _23 = [0, { "s3": _4, "s3-accesspoint": _4, "s3-website": _4 }], _24 = [0, { "s3": _4, "s3-accesspoint": _4 }], _25 = [0, { "direct": _4 }], _26 = [0, { "webview-assets": _4 }], _27 = [0, { "vfs": _4, "webview-assets": _4 }], _28 = [0, { "execute-api": _4, "emrappui-prod": _4, "emrnotebooks-prod": _4, "emrstudio-prod": _4, "dualstack": _23, "s3": _4, "s3-accesspoint": _4, "s3-object-lambda": _4, "s3-website": _4, "aws-cloud9": _26, "cloud9": _27 }], _29 = [0, { "execute-api": _4, "emrappui-prod": _4, "emrnotebooks-prod": _4, "emrstudio-prod": _4, "dualstack": _24, "s3": _4, "s3-accesspoint": _4, "s3-object-lambda": _4, "s3-website": _4, "aws-cloud9": _26, "cloud9": _27 }], _30 = [0, { "execute-api": _4, "emrappui-prod": _4, "emrnotebooks-prod": _4, "emrstudio-prod": _4, "dualstack": _23, "s3": _4, "s3-accesspoint": _4, "s3-object-lambda": _4, "s3-website": _4, "analytics-gateway": _4, "aws-cloud9": _26, "cloud9": _27 }], _31 = [0, { "execute-api": _4, "emrappui-prod": _4, "emrnotebooks-prod": _4, "emrstudio-prod": _4, "dualstack": _23, "s3": _4, "s3-accesspoint": _4, "s3-object-lambda": _4, "s3-website": _4 }], _32 = [0, { "s3": _4, "s3-accesspoint": _4, "s3-accesspoint-fips": _4, "s3-fips": _4, "s3-website": _4 }], _33 = [0, { "execute-api": _4, "emrappui-prod": _4, "emrnotebooks-prod": _4, "emrstudio-prod": _4, "dualstack": _32, "s3": _4, "s3-accesspoint": _4, "s3-accesspoint-fips": _4, "s3-fips": _4, "s3-object-lambda": _4, "s3-website": _4, "aws-cloud9": _26, "cloud9": _27 }], _34 = [0, { "execute-api": _4, "emrappui-prod": _4, "emrnotebooks-prod": _4, "emrstudio-prod": _4, "dualstack": _32, "s3": _4, "s3-accesspoint": _4, "s3-accesspoint-fips": _4, "s3-deprecated": _4, "s3-fips": _4, "s3-object-lambda": _4, "s3-website": _4, "analytics-gateway": _4, "aws-cloud9": _26, "cloud9": _27 }], _35 = [0, { "s3": _4, "s3-accesspoint": _4, "s3-accesspoint-fips": _4, "s3-fips": _4 }], _36 = [0, { "execute-api": _4, "emrappui-prod": _4, "emrnotebooks-prod": _4, "emrstudio-prod": _4, "dualstack": _35, "s3": _4, "s3-accesspoint": _4, "s3-accesspoint-fips": _4, "s3-fips": _4, "s3-object-lambda": _4, "s3-website": _4 }], _37 = [0, { "auth": _4 }], _38 = [0, { "auth": _4, "auth-fips": _4 }], _39 = [0, { "auth-fips": _4 }], _40 = [0, { "apps": _4 }], _41 = [0, { "paas": _4 }], _42 = [2, { "eu": _4 }], _43 = [0, { "app": _4 }], _44 = [0, { "site": _4 }], _45 = [1, { "com": _3, "edu": _3, "net": _3, "org": _3 }], _46 = [0, { "j": _4 }], _47 = [0, { "dyn": _4 }], _48 = [1, { "co": _3, "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3 }], _49 = [0, { "p": _4 }], _50 = [0, { "user": _4 }], _51 = [0, { "shop": _4 }], _52 = [0, { "cdn": _4 }], _53 = [0, { "cust": _4, "reservd": _4 }], _54 = [0, { "cust": _4 }], _55 = [0, { "s3": _4 }], _56 = [1, { "biz": _3, "com": _3, "edu": _3, "gov": _3, "info": _3, "net": _3, "org": _3 }], _57 = [0, { "ipfs": _4 }], _58 = [1, { "framer": _4 }], _59 = [0, { "forgot": _4 }], _60 = [1, { "gs": _3 }], _61 = [0, { "nes": _3 }], _62 = [1, { "k12": _3, "cc": _3, "lib": _3 }], _63 = [1, { "cc": _3, "lib": _3 }];
      const rules2 = [0, { "ac": [1, { "com": _3, "edu": _3, "gov": _3, "mil": _3, "net": _3, "org": _3, "drr": _4, "feedback": _4, "forms": _4 }], "ad": _3, "ae": [1, { "ac": _3, "co": _3, "gov": _3, "mil": _3, "net": _3, "org": _3, "sch": _3 }], "aero": [1, { "airline": _3, "airport": _3, "accident-investigation": _3, "accident-prevention": _3, "aerobatic": _3, "aeroclub": _3, "aerodrome": _3, "agents": _3, "air-surveillance": _3, "air-traffic-control": _3, "aircraft": _3, "airtraffic": _3, "ambulance": _3, "association": _3, "author": _3, "ballooning": _3, "broker": _3, "caa": _3, "cargo": _3, "catering": _3, "certification": _3, "championship": _3, "charter": _3, "civilaviation": _3, "club": _3, "conference": _3, "consultant": _3, "consulting": _3, "control": _3, "council": _3, "crew": _3, "design": _3, "dgca": _3, "educator": _3, "emergency": _3, "engine": _3, "engineer": _3, "entertainment": _3, "equipment": _3, "exchange": _3, "express": _3, "federation": _3, "flight": _3, "freight": _3, "fuel": _3, "gliding": _3, "government": _3, "groundhandling": _3, "group": _3, "hanggliding": _3, "homebuilt": _3, "insurance": _3, "journal": _3, "journalist": _3, "leasing": _3, "logistics": _3, "magazine": _3, "maintenance": _3, "marketplace": _3, "media": _3, "microlight": _3, "modelling": _3, "navigation": _3, "parachuting": _3, "paragliding": _3, "passenger-association": _3, "pilot": _3, "press": _3, "production": _3, "recreation": _3, "repbody": _3, "res": _3, "research": _3, "rotorcraft": _3, "safety": _3, "scientist": _3, "services": _3, "show": _3, "skydiving": _3, "software": _3, "student": _3, "taxi": _3, "trader": _3, "trading": _3, "trainer": _3, "union": _3, "workinggroup": _3, "works": _3 }], "af": _5, "ag": [1, { "co": _3, "com": _3, "net": _3, "nom": _3, "org": _3, "obj": _4 }], "ai": [1, { "com": _3, "net": _3, "off": _3, "org": _3, "uwu": _4, "framer": _4 }], "al": _6, "am": [1, { "co": _3, "com": _3, "commune": _3, "net": _3, "org": _3, "radio": _4 }], "ao": [1, { "co": _3, "ed": _3, "edu": _3, "gov": _3, "gv": _3, "it": _3, "og": _3, "org": _3, "pb": _3 }], "aq": _3, "ar": [1, { "bet": _3, "com": _3, "coop": _3, "edu": _3, "gob": _3, "gov": _3, "int": _3, "mil": _3, "musica": _3, "mutual": _3, "net": _3, "org": _3, "seg": _3, "senasa": _3, "tur": _3 }], "arpa": [1, { "e164": _3, "home": _3, "in-addr": _3, "ip6": _3, "iris": _3, "uri": _3, "urn": _3 }], "as": _11, "asia": [1, { "cloudns": _4, "daemon": _4, "dix": _4 }], "at": [1, { "ac": [1, { "sth": _3 }], "co": _3, "gv": _3, "or": _3, "funkfeuer": [0, { "wien": _4 }], "futurecms": [0, { "*": _4, "ex": _7, "in": _7 }], "futurehosting": _4, "futuremailing": _4, "ortsinfo": [0, { "ex": _7, "kunden": _7 }], "biz": _4, "info": _4, "123webseite": _4, "priv": _4, "myspreadshop": _4, "12hp": _4, "2ix": _4, "4lima": _4, "lima-city": _4 }], "au": [1, { "asn": _3, "com": [1, { "cloudlets": [0, { "mel": _4 }], "myspreadshop": _4 }], "edu": [1, { "act": _3, "catholic": _3, "nsw": [1, { "schools": _3 }], "nt": _3, "qld": _3, "sa": _3, "tas": _3, "vic": _3, "wa": _3 }], "gov": [1, { "qld": _3, "sa": _3, "tas": _3, "vic": _3, "wa": _3 }], "id": _3, "net": _3, "org": _3, "conf": _3, "oz": _3, "act": _3, "nsw": _3, "nt": _3, "qld": _3, "sa": _3, "tas": _3, "vic": _3, "wa": _3 }], "aw": [1, { "com": _3 }], "ax": _3, "az": [1, { "biz": _3, "co": _3, "com": _3, "edu": _3, "gov": _3, "info": _3, "int": _3, "mil": _3, "name": _3, "net": _3, "org": _3, "pp": _3, "pro": _3 }], "ba": [1, { "com": _3, "edu": _3, "gov": _3, "mil": _3, "net": _3, "org": _3, "rs": _4 }], "bb": [1, { "biz": _3, "co": _3, "com": _3, "edu": _3, "gov": _3, "info": _3, "net": _3, "org": _3, "store": _3, "tv": _3 }], "bd": _18, "be": [1, { "ac": _3, "cloudns": _4, "webhosting": _4, "interhostsolutions": [0, { "cloud": _4 }], "kuleuven": [0, { "ezproxy": _4 }], "123website": _4, "myspreadshop": _4, "transurl": _7 }], "bf": _11, "bg": [1, { "0": _3, "1": _3, "2": _3, "3": _3, "4": _3, "5": _3, "6": _3, "7": _3, "8": _3, "9": _3, "a": _3, "b": _3, "c": _3, "d": _3, "e": _3, "f": _3, "g": _3, "h": _3, "i": _3, "j": _3, "k": _3, "l": _3, "m": _3, "n": _3, "o": _3, "p": _3, "q": _3, "r": _3, "s": _3, "t": _3, "u": _3, "v": _3, "w": _3, "x": _3, "y": _3, "z": _3, "barsy": _4 }], "bh": _5, "bi": [1, { "co": _3, "com": _3, "edu": _3, "or": _3, "org": _3 }], "biz": [1, { "activetrail": _4, "cloud-ip": _4, "cloudns": _4, "jozi": _4, "dyndns": _4, "for-better": _4, "for-more": _4, "for-some": _4, "for-the": _4, "selfip": _4, "webhop": _4, "orx": _4, "mmafan": _4, "myftp": _4, "no-ip": _4, "dscloud": _4 }], "bj": [1, { "africa": _3, "agro": _3, "architectes": _3, "assur": _3, "avocats": _3, "co": _3, "com": _3, "eco": _3, "econo": _3, "edu": _3, "info": _3, "loisirs": _3, "money": _3, "net": _3, "org": _3, "ote": _3, "restaurant": _3, "resto": _3, "tourism": _3, "univ": _3 }], "bm": _5, "bn": [1, { "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3, "co": _4 }], "bo": [1, { "com": _3, "edu": _3, "gob": _3, "int": _3, "mil": _3, "net": _3, "org": _3, "tv": _3, "web": _3, "academia": _3, "agro": _3, "arte": _3, "blog": _3, "bolivia": _3, "ciencia": _3, "cooperativa": _3, "democracia": _3, "deporte": _3, "ecologia": _3, "economia": _3, "empresa": _3, "indigena": _3, "industria": _3, "info": _3, "medicina": _3, "movimiento": _3, "musica": _3, "natural": _3, "nombre": _3, "noticias": _3, "patria": _3, "plurinacional": _3, "politica": _3, "profesional": _3, "pueblo": _3, "revista": _3, "salud": _3, "tecnologia": _3, "tksat": _3, "transporte": _3, "wiki": _3 }], "br": [1, { "9guacu": _3, "abc": _3, "adm": _3, "adv": _3, "agr": _3, "aju": _3, "am": _3, "anani": _3, "aparecida": _3, "app": _3, "arq": _3, "art": _3, "ato": _3, "b": _3, "barueri": _3, "belem": _3, "bet": _3, "bhz": _3, "bib": _3, "bio": _3, "blog": _3, "bmd": _3, "boavista": _3, "bsb": _3, "campinagrande": _3, "campinas": _3, "caxias": _3, "cim": _3, "cng": _3, "cnt": _3, "com": [1, { "simplesite": _4 }], "contagem": _3, "coop": _3, "coz": _3, "cri": _3, "cuiaba": _3, "curitiba": _3, "def": _3, "des": _3, "det": _3, "dev": _3, "ecn": _3, "eco": _3, "edu": _3, "emp": _3, "enf": _3, "eng": _3, "esp": _3, "etc": _3, "eti": _3, "far": _3, "feira": _3, "flog": _3, "floripa": _3, "fm": _3, "fnd": _3, "fortal": _3, "fot": _3, "foz": _3, "fst": _3, "g12": _3, "geo": _3, "ggf": _3, "goiania": _3, "gov": [1, { "ac": _3, "al": _3, "am": _3, "ap": _3, "ba": _3, "ce": _3, "df": _3, "es": _3, "go": _3, "ma": _3, "mg": _3, "ms": _3, "mt": _3, "pa": _3, "pb": _3, "pe": _3, "pi": _3, "pr": _3, "rj": _3, "rn": _3, "ro": _3, "rr": _3, "rs": _3, "sc": _3, "se": _3, "sp": _3, "to": _3 }], "gru": _3, "imb": _3, "ind": _3, "inf": _3, "jab": _3, "jampa": _3, "jdf": _3, "joinville": _3, "jor": _3, "jus": _3, "leg": [1, { "ac": _4, "al": _4, "am": _4, "ap": _4, "ba": _4, "ce": _4, "df": _4, "es": _4, "go": _4, "ma": _4, "mg": _4, "ms": _4, "mt": _4, "pa": _4, "pb": _4, "pe": _4, "pi": _4, "pr": _4, "rj": _4, "rn": _4, "ro": _4, "rr": _4, "rs": _4, "sc": _4, "se": _4, "sp": _4, "to": _4 }], "leilao": _3, "lel": _3, "log": _3, "londrina": _3, "macapa": _3, "maceio": _3, "manaus": _3, "maringa": _3, "mat": _3, "med": _3, "mil": _3, "morena": _3, "mp": _3, "mus": _3, "natal": _3, "net": _3, "niteroi": _3, "nom": _18, "not": _3, "ntr": _3, "odo": _3, "ong": _3, "org": _3, "osasco": _3, "palmas": _3, "poa": _3, "ppg": _3, "pro": _3, "psc": _3, "psi": _3, "pvh": _3, "qsl": _3, "radio": _3, "rec": _3, "recife": _3, "rep": _3, "ribeirao": _3, "rio": _3, "riobranco": _3, "riopreto": _3, "salvador": _3, "sampa": _3, "santamaria": _3, "santoandre": _3, "saobernardo": _3, "saogonca": _3, "seg": _3, "sjc": _3, "slg": _3, "slz": _3, "sorocaba": _3, "srv": _3, "taxi": _3, "tc": _3, "tec": _3, "teo": _3, "the": _3, "tmp": _3, "trd": _3, "tur": _3, "tv": _3, "udi": _3, "vet": _3, "vix": _3, "vlog": _3, "wiki": _3, "zlg": _3 }], "bs": [1, { "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3, "we": _4 }], "bt": _5, "bv": _3, "bw": [1, { "ac": _3, "co": _3, "gov": _3, "net": _3, "org": _3 }], "by": [1, { "gov": _3, "mil": _3, "com": _3, "of": _3, "mediatech": _4 }], "bz": [1, { "co": _3, "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3, "za": _4, "mydns": _4, "gsj": _4 }], "ca": [1, { "ab": _3, "bc": _3, "mb": _3, "nb": _3, "nf": _3, "nl": _3, "ns": _3, "nt": _3, "nu": _3, "on": _3, "pe": _3, "qc": _3, "sk": _3, "yk": _3, "gc": _3, "barsy": _4, "awdev": _7, "co": _4, "no-ip": _4, "myspreadshop": _4, "box": _4 }], "cat": _3, "cc": [1, { "cleverapps": _4, "cloudns": _4, "ftpaccess": _4, "game-server": _4, "myphotos": _4, "scrapping": _4, "twmail": _4, "csx": _4, "fantasyleague": _4, "spawn": [0, { "instances": _4 }] }], "cd": _11, "cf": _3, "cg": _3, "ch": [1, { "square7": _4, "cloudns": _4, "cloudscale": [0, { "cust": _4, "lpg": _20, "rma": _20 }], "flow": [0, { "ae": [0, { "alp1": _4 }], "appengine": _4 }], "linkyard-cloud": _4, "gotdns": _4, "dnsking": _4, "123website": _4, "myspreadshop": _4, "firenet": [0, { "*": _4, "svc": _7 }], "12hp": _4, "2ix": _4, "4lima": _4, "lima-city": _4 }], "ci": [1, { "ac": _3, "xn--aroport-bya": _3, "a\xE9roport": _3, "asso": _3, "co": _3, "com": _3, "ed": _3, "edu": _3, "go": _3, "gouv": _3, "int": _3, "net": _3, "or": _3, "org": _3 }], "ck": _18, "cl": [1, { "co": _3, "gob": _3, "gov": _3, "mil": _3, "cloudns": _4 }], "cm": [1, { "co": _3, "com": _3, "gov": _3, "net": _3 }], "cn": [1, { "ac": _3, "com": [1, { "amazonaws": [0, { "cn-north-1": [0, { "execute-api": _4, "emrappui-prod": _4, "emrnotebooks-prod": _4, "emrstudio-prod": _4, "dualstack": _23, "s3": _4, "s3-accesspoint": _4, "s3-deprecated": _4, "s3-object-lambda": _4, "s3-website": _4 }], "cn-northwest-1": [0, { "execute-api": _4, "emrappui-prod": _4, "emrnotebooks-prod": _4, "emrstudio-prod": _4, "dualstack": _24, "s3": _4, "s3-accesspoint": _4, "s3-object-lambda": _4, "s3-website": _4 }], "compute": _7, "airflow": [0, { "cn-north-1": _7, "cn-northwest-1": _7 }], "eb": [0, { "cn-north-1": _4, "cn-northwest-1": _4 }], "elb": _7 }], "sagemaker": [0, { "cn-north-1": _13, "cn-northwest-1": _13 }] }], "edu": _3, "gov": _3, "mil": _3, "net": _3, "org": _3, "xn--55qx5d": _3, "\u516C\u53F8": _3, "xn--od0alg": _3, "\u7DB2\u7D61": _3, "xn--io0a7i": _3, "\u7F51\u7EDC": _3, "ah": _3, "bj": _3, "cq": _3, "fj": _3, "gd": _3, "gs": _3, "gx": _3, "gz": _3, "ha": _3, "hb": _3, "he": _3, "hi": _3, "hk": _3, "hl": _3, "hn": _3, "jl": _3, "js": _3, "jx": _3, "ln": _3, "mo": _3, "nm": _3, "nx": _3, "qh": _3, "sc": _3, "sd": _3, "sh": [1, { "as": _4 }], "sn": _3, "sx": _3, "tj": _3, "tw": _3, "xj": _3, "xz": _3, "yn": _3, "zj": _3, "canva-apps": _4, "canvasite": _22, "myqnapcloud": _4, "quickconnect": _25 }], "co": [1, { "com": _3, "edu": _3, "gov": _3, "mil": _3, "net": _3, "nom": _3, "org": _3, "carrd": _4, "crd": _4, "otap": _7, "leadpages": _4, "lpages": _4, "mypi": _4, "xmit": _7, "firewalledreplit": _10, "repl": _10, "supabase": _4 }], "com": [1, { "a2hosted": _4, "cpserver": _4, "adobeaemcloud": [2, { "dev": _7 }], "africa": _4, "airkitapps": _4, "airkitapps-au": _4, "aivencloud": _4, "alibabacloudcs": _4, "kasserver": _4, "amazonaws": [0, { "af-south-1": _28, "ap-east-1": _29, "ap-northeast-1": _30, "ap-northeast-2": _30, "ap-northeast-3": _28, "ap-south-1": _30, "ap-south-2": _31, "ap-southeast-1": _30, "ap-southeast-2": _30, "ap-southeast-3": _31, "ap-southeast-4": _31, "ap-southeast-5": [0, { "execute-api": _4, "dualstack": _23, "s3": _4, "s3-accesspoint": _4, "s3-deprecated": _4, "s3-object-lambda": _4, "s3-website": _4 }], "ca-central-1": _33, "ca-west-1": [0, { "execute-api": _4, "emrappui-prod": _4, "emrnotebooks-prod": _4, "emrstudio-prod": _4, "dualstack": _32, "s3": _4, "s3-accesspoint": _4, "s3-accesspoint-fips": _4, "s3-fips": _4, "s3-object-lambda": _4, "s3-website": _4 }], "eu-central-1": _30, "eu-central-2": _31, "eu-north-1": _29, "eu-south-1": _28, "eu-south-2": _31, "eu-west-1": [0, { "execute-api": _4, "emrappui-prod": _4, "emrnotebooks-prod": _4, "emrstudio-prod": _4, "dualstack": _23, "s3": _4, "s3-accesspoint": _4, "s3-deprecated": _4, "s3-object-lambda": _4, "s3-website": _4, "analytics-gateway": _4, "aws-cloud9": _26, "cloud9": _27 }], "eu-west-2": _29, "eu-west-3": _28, "il-central-1": [0, { "execute-api": _4, "emrappui-prod": _4, "emrnotebooks-prod": _4, "emrstudio-prod": _4, "dualstack": _23, "s3": _4, "s3-accesspoint": _4, "s3-object-lambda": _4, "s3-website": _4, "aws-cloud9": _26, "cloud9": [0, { "vfs": _4 }] }], "me-central-1": _31, "me-south-1": _29, "sa-east-1": _28, "us-east-1": [2, { "execute-api": _4, "emrappui-prod": _4, "emrnotebooks-prod": _4, "emrstudio-prod": _4, "dualstack": _32, "s3": _4, "s3-accesspoint": _4, "s3-accesspoint-fips": _4, "s3-deprecated": _4, "s3-fips": _4, "s3-object-lambda": _4, "s3-website": _4, "analytics-gateway": _4, "aws-cloud9": _26, "cloud9": _27 }], "us-east-2": _34, "us-gov-east-1": _36, "us-gov-west-1": _36, "us-west-1": _33, "us-west-2": _34, "compute": _7, "compute-1": _7, "airflow": [0, { "af-south-1": _7, "ap-east-1": _7, "ap-northeast-1": _7, "ap-northeast-2": _7, "ap-northeast-3": _7, "ap-south-1": _7, "ap-south-2": _7, "ap-southeast-1": _7, "ap-southeast-2": _7, "ap-southeast-3": _7, "ap-southeast-4": _7, "ca-central-1": _7, "ca-west-1": _7, "eu-central-1": _7, "eu-central-2": _7, "eu-north-1": _7, "eu-south-1": _7, "eu-south-2": _7, "eu-west-1": _7, "eu-west-2": _7, "eu-west-3": _7, "il-central-1": _7, "me-central-1": _7, "me-south-1": _7, "sa-east-1": _7, "us-east-1": _7, "us-east-2": _7, "us-west-1": _7, "us-west-2": _7 }], "s3": _4, "s3-1": _4, "s3-ap-east-1": _4, "s3-ap-northeast-1": _4, "s3-ap-northeast-2": _4, "s3-ap-northeast-3": _4, "s3-ap-south-1": _4, "s3-ap-southeast-1": _4, "s3-ap-southeast-2": _4, "s3-ca-central-1": _4, "s3-eu-central-1": _4, "s3-eu-north-1": _4, "s3-eu-west-1": _4, "s3-eu-west-2": _4, "s3-eu-west-3": _4, "s3-external-1": _4, "s3-fips-us-gov-east-1": _4, "s3-fips-us-gov-west-1": _4, "s3-global": [0, { "accesspoint": [0, { "mrap": _4 }] }], "s3-me-south-1": _4, "s3-sa-east-1": _4, "s3-us-east-2": _4, "s3-us-gov-east-1": _4, "s3-us-gov-west-1": _4, "s3-us-west-1": _4, "s3-us-west-2": _4, "s3-website-ap-northeast-1": _4, "s3-website-ap-southeast-1": _4, "s3-website-ap-southeast-2": _4, "s3-website-eu-west-1": _4, "s3-website-sa-east-1": _4, "s3-website-us-east-1": _4, "s3-website-us-gov-west-1": _4, "s3-website-us-west-1": _4, "s3-website-us-west-2": _4, "elb": _7 }], "amazoncognito": [0, { "af-south-1": _37, "ap-east-1": _37, "ap-northeast-1": _37, "ap-northeast-2": _37, "ap-northeast-3": _37, "ap-south-1": _37, "ap-south-2": _37, "ap-southeast-1": _37, "ap-southeast-2": _37, "ap-southeast-3": _37, "ap-southeast-4": _37, "ap-southeast-5": _37, "ca-central-1": _37, "ca-west-1": _37, "eu-central-1": _37, "eu-central-2": _37, "eu-north-1": _37, "eu-south-1": _37, "eu-south-2": _37, "eu-west-1": _37, "eu-west-2": _37, "eu-west-3": _37, "il-central-1": _37, "me-central-1": _37, "me-south-1": _37, "sa-east-1": _37, "us-east-1": _38, "us-east-2": _38, "us-gov-east-1": _39, "us-gov-west-1": _39, "us-west-1": _38, "us-west-2": _38 }], "amplifyapp": _4, "awsapprunner": _7, "awsapps": _4, "elasticbeanstalk": [2, { "af-south-1": _4, "ap-east-1": _4, "ap-northeast-1": _4, "ap-northeast-2": _4, "ap-northeast-3": _4, "ap-south-1": _4, "ap-southeast-1": _4, "ap-southeast-2": _4, "ap-southeast-3": _4, "ca-central-1": _4, "eu-central-1": _4, "eu-north-1": _4, "eu-south-1": _4, "eu-west-1": _4, "eu-west-2": _4, "eu-west-3": _4, "il-central-1": _4, "me-south-1": _4, "sa-east-1": _4, "us-east-1": _4, "us-east-2": _4, "us-gov-east-1": _4, "us-gov-west-1": _4, "us-west-1": _4, "us-west-2": _4 }], "awsglobalaccelerator": _4, "siiites": _4, "appspacehosted": _4, "appspaceusercontent": _4, "on-aptible": _4, "myasustor": _4, "balena-devices": _4, "boutir": _4, "bplaced": _4, "cafjs": _4, "canva-apps": _4, "cdn77-storage": _4, "br": _4, "cn": _4, "de": _4, "eu": _4, "jpn": _4, "mex": _4, "ru": _4, "sa": _4, "uk": _4, "us": _4, "za": _4, "clever-cloud": [0, { "services": _7 }], "dnsabr": _4, "ip-ddns": _4, "jdevcloud": _4, "wpdevcloud": _4, "cf-ipfs": _4, "cloudflare-ipfs": _4, "trycloudflare": _4, "co": _4, "devinapps": _7, "builtwithdark": _4, "datadetect": [0, { "demo": _4, "instance": _4 }], "dattolocal": _4, "dattorelay": _4, "dattoweb": _4, "mydatto": _4, "digitaloceanspaces": _7, "discordsays": _4, "discordsez": _4, "drayddns": _4, "dreamhosters": _4, "durumis": _4, "mydrobo": _4, "blogdns": _4, "cechire": _4, "dnsalias": _4, "dnsdojo": _4, "doesntexist": _4, "dontexist": _4, "doomdns": _4, "dyn-o-saur": _4, "dynalias": _4, "dyndns-at-home": _4, "dyndns-at-work": _4, "dyndns-blog": _4, "dyndns-free": _4, "dyndns-home": _4, "dyndns-ip": _4, "dyndns-mail": _4, "dyndns-office": _4, "dyndns-pics": _4, "dyndns-remote": _4, "dyndns-server": _4, "dyndns-web": _4, "dyndns-wiki": _4, "dyndns-work": _4, "est-a-la-maison": _4, "est-a-la-masion": _4, "est-le-patron": _4, "est-mon-blogueur": _4, "from-ak": _4, "from-al": _4, "from-ar": _4, "from-ca": _4, "from-ct": _4, "from-dc": _4, "from-de": _4, "from-fl": _4, "from-ga": _4, "from-hi": _4, "from-ia": _4, "from-id": _4, "from-il": _4, "from-in": _4, "from-ks": _4, "from-ky": _4, "from-ma": _4, "from-md": _4, "from-mi": _4, "from-mn": _4, "from-mo": _4, "from-ms": _4, "from-mt": _4, "from-nc": _4, "from-nd": _4, "from-ne": _4, "from-nh": _4, "from-nj": _4, "from-nm": _4, "from-nv": _4, "from-oh": _4, "from-ok": _4, "from-or": _4, "from-pa": _4, "from-pr": _4, "from-ri": _4, "from-sc": _4, "from-sd": _4, "from-tn": _4, "from-tx": _4, "from-ut": _4, "from-va": _4, "from-vt": _4, "from-wa": _4, "from-wi": _4, "from-wv": _4, "from-wy": _4, "getmyip": _4, "gotdns": _4, "hobby-site": _4, "homelinux": _4, "homeunix": _4, "iamallama": _4, "is-a-anarchist": _4, "is-a-blogger": _4, "is-a-bookkeeper": _4, "is-a-bulls-fan": _4, "is-a-caterer": _4, "is-a-chef": _4, "is-a-conservative": _4, "is-a-cpa": _4, "is-a-cubicle-slave": _4, "is-a-democrat": _4, "is-a-designer": _4, "is-a-doctor": _4, "is-a-financialadvisor": _4, "is-a-geek": _4, "is-a-green": _4, "is-a-guru": _4, "is-a-hard-worker": _4, "is-a-hunter": _4, "is-a-landscaper": _4, "is-a-lawyer": _4, "is-a-liberal": _4, "is-a-libertarian": _4, "is-a-llama": _4, "is-a-musician": _4, "is-a-nascarfan": _4, "is-a-nurse": _4, "is-a-painter": _4, "is-a-personaltrainer": _4, "is-a-photographer": _4, "is-a-player": _4, "is-a-republican": _4, "is-a-rockstar": _4, "is-a-socialist": _4, "is-a-student": _4, "is-a-teacher": _4, "is-a-techie": _4, "is-a-therapist": _4, "is-an-accountant": _4, "is-an-actor": _4, "is-an-actress": _4, "is-an-anarchist": _4, "is-an-artist": _4, "is-an-engineer": _4, "is-an-entertainer": _4, "is-certified": _4, "is-gone": _4, "is-into-anime": _4, "is-into-cars": _4, "is-into-cartoons": _4, "is-into-games": _4, "is-leet": _4, "is-not-certified": _4, "is-slick": _4, "is-uberleet": _4, "is-with-theband": _4, "isa-geek": _4, "isa-hockeynut": _4, "issmarterthanyou": _4, "likes-pie": _4, "likescandy": _4, "neat-url": _4, "saves-the-whales": _4, "selfip": _4, "sells-for-less": _4, "sells-for-u": _4, "servebbs": _4, "simple-url": _4, "space-to-rent": _4, "teaches-yoga": _4, "writesthisblog": _4, "ddnsfree": _4, "ddnsgeek": _4, "giize": _4, "gleeze": _4, "kozow": _4, "loseyourip": _4, "ooguy": _4, "theworkpc": _4, "mytuleap": _4, "tuleap-partners": _4, "encoreapi": _4, "evennode": [0, { "eu-1": _4, "eu-2": _4, "eu-3": _4, "eu-4": _4, "us-1": _4, "us-2": _4, "us-3": _4, "us-4": _4 }], "onfabrica": _4, "fastly-edge": _4, "fastly-terrarium": _4, "fastvps-server": _4, "mydobiss": _4, "firebaseapp": _4, "fldrv": _4, "forgeblocks": _4, "framercanvas": _4, "freebox-os": _4, "freeboxos": _4, "freemyip": _4, "aliases121": _4, "gentapps": _4, "gentlentapis": _4, "githubusercontent": _4, "0emm": _7, "appspot": [2, { "r": _7 }], "blogspot": _4, "codespot": _4, "googleapis": _4, "googlecode": _4, "pagespeedmobilizer": _4, "withgoogle": _4, "withyoutube": _4, "grayjayleagues": _4, "hatenablog": _4, "hatenadiary": _4, "herokuapp": _4, "gr": _4, "smushcdn": _4, "wphostedmail": _4, "wpmucdn": _4, "pixolino": _4, "apps-1and1": _4, "live-website": _4, "dopaas": _4, "hosted-by-previder": _41, "hosteur": [0, { "rag-cloud": _4, "rag-cloud-ch": _4 }], "ik-server": [0, { "jcloud": _4, "jcloud-ver-jpc": _4 }], "jelastic": [0, { "demo": _4 }], "massivegrid": _41, "wafaicloud": [0, { "jed": _4, "ryd": _4 }], "webadorsite": _4, "joyent": [0, { "cns": _7 }], "lpusercontent": _4, "linode": [0, { "members": _4, "nodebalancer": _7 }], "linodeobjects": _7, "linodeusercontent": [0, { "ip": _4 }], "localtonet": _4, "lovableproject": _4, "barsycenter": _4, "barsyonline": _4, "modelscape": _4, "mwcloudnonprod": _4, "polyspace": _4, "mazeplay": _4, "miniserver": _4, "atmeta": _4, "fbsbx": _40, "meteorapp": _42, "routingthecloud": _4, "mydbserver": _4, "hostedpi": _4, "mythic-beasts": [0, { "caracal": _4, "customer": _4, "fentiger": _4, "lynx": _4, "ocelot": _4, "oncilla": _4, "onza": _4, "sphinx": _4, "vs": _4, "x": _4, "yali": _4 }], "nospamproxy": [0, { "cloud": [2, { "o365": _4 }] }], "4u": _4, "nfshost": _4, "3utilities": _4, "blogsyte": _4, "ciscofreak": _4, "damnserver": _4, "ddnsking": _4, "ditchyourip": _4, "dnsiskinky": _4, "dynns": _4, "geekgalaxy": _4, "health-carereform": _4, "homesecuritymac": _4, "homesecuritypc": _4, "myactivedirectory": _4, "mysecuritycamera": _4, "myvnc": _4, "net-freaks": _4, "onthewifi": _4, "point2this": _4, "quicksytes": _4, "securitytactics": _4, "servebeer": _4, "servecounterstrike": _4, "serveexchange": _4, "serveftp": _4, "servegame": _4, "servehalflife": _4, "servehttp": _4, "servehumour": _4, "serveirc": _4, "servemp3": _4, "servep2p": _4, "servepics": _4, "servequake": _4, "servesarcasm": _4, "stufftoread": _4, "unusualperson": _4, "workisboring": _4, "myiphost": _4, "observableusercontent": [0, { "static": _4 }], "simplesite": _4, "orsites": _4, "operaunite": _4, "customer-oci": [0, { "*": _4, "oci": _7, "ocp": _7, "ocs": _7 }], "oraclecloudapps": _7, "oraclegovcloudapps": _7, "authgear-staging": _4, "authgearapps": _4, "skygearapp": _4, "outsystemscloud": _4, "ownprovider": _4, "pgfog": _4, "pagexl": _4, "gotpantheon": _4, "paywhirl": _7, "upsunapp": _4, "postman-echo": _4, "prgmr": [0, { "xen": _4 }], "pythonanywhere": _42, "qa2": _4, "alpha-myqnapcloud": _4, "dev-myqnapcloud": _4, "mycloudnas": _4, "mynascloud": _4, "myqnapcloud": _4, "qualifioapp": _4, "ladesk": _4, "qbuser": _4, "quipelements": _7, "rackmaze": _4, "readthedocs-hosted": _4, "rhcloud": _4, "onrender": _4, "render": _43, "subsc-pay": _4, "180r": _4, "dojin": _4, "sakuratan": _4, "sakuraweb": _4, "x0": _4, "code": [0, { "builder": _7, "dev-builder": _7, "stg-builder": _7 }], "salesforce": [0, { "platform": [0, { "code-builder-stg": [0, { "test": [0, { "001": _7 }] }] }] }], "logoip": _4, "scrysec": _4, "firewall-gateway": _4, "myshopblocks": _4, "myshopify": _4, "shopitsite": _4, "1kapp": _4, "appchizi": _4, "applinzi": _4, "sinaapp": _4, "vipsinaapp": _4, "streamlitapp": _4, "try-snowplow": _4, "playstation-cloud": _4, "myspreadshop": _4, "w-corp-staticblitz": _4, "w-credentialless-staticblitz": _4, "w-staticblitz": _4, "stackhero-network": _4, "stdlib": [0, { "api": _4 }], "strapiapp": [2, { "media": _4 }], "streak-link": _4, "streaklinks": _4, "streakusercontent": _4, "temp-dns": _4, "dsmynas": _4, "familyds": _4, "mytabit": _4, "taveusercontent": _4, "tb-hosting": _44, "reservd": _4, "thingdustdata": _4, "townnews-staging": _4, "typeform": [0, { "pro": _4 }], "hk": _4, "it": _4, "deus-canvas": _4, "vultrobjects": _7, "wafflecell": _4, "hotelwithflight": _4, "reserve-online": _4, "cprapid": _4, "pleskns": _4, "remotewd": _4, "wiardweb": [0, { "pages": _4 }], "wixsite": _4, "wixstudio": _4, "messwithdns": _4, "woltlab-demo": _4, "wpenginepowered": [2, { "js": _4 }], "xnbay": [2, { "u2": _4, "u2-local": _4 }], "yolasite": _4 }], "coop": _3, "cr": [1, { "ac": _3, "co": _3, "ed": _3, "fi": _3, "go": _3, "or": _3, "sa": _3 }], "cu": [1, { "com": _3, "edu": _3, "gob": _3, "inf": _3, "nat": _3, "net": _3, "org": _3 }], "cv": [1, { "com": _3, "edu": _3, "id": _3, "int": _3, "net": _3, "nome": _3, "org": _3, "publ": _3 }], "cw": _45, "cx": [1, { "gov": _3, "cloudns": _4, "ath": _4, "info": _4, "assessments": _4, "calculators": _4, "funnels": _4, "paynow": _4, "quizzes": _4, "researched": _4, "tests": _4 }], "cy": [1, { "ac": _3, "biz": _3, "com": [1, { "scaleforce": _46 }], "ekloges": _3, "gov": _3, "ltd": _3, "mil": _3, "net": _3, "org": _3, "press": _3, "pro": _3, "tm": _3 }], "cz": [1, { "contentproxy9": [0, { "rsc": _4 }], "realm": _4, "e4": _4, "co": _4, "metacentrum": [0, { "cloud": _7, "custom": _4 }], "muni": [0, { "cloud": [0, { "flt": _4, "usr": _4 }] }] }], "de": [1, { "bplaced": _4, "square7": _4, "com": _4, "cosidns": _47, "dnsupdater": _4, "dynamisches-dns": _4, "internet-dns": _4, "l-o-g-i-n": _4, "ddnss": [2, { "dyn": _4, "dyndns": _4 }], "dyn-ip24": _4, "dyndns1": _4, "home-webserver": [2, { "dyn": _4 }], "myhome-server": _4, "dnshome": _4, "fuettertdasnetz": _4, "isteingeek": _4, "istmein": _4, "lebtimnetz": _4, "leitungsen": _4, "traeumtgerade": _4, "frusky": _7, "goip": _4, "xn--gnstigbestellen-zvb": _4, "g\xFCnstigbestellen": _4, "xn--gnstigliefern-wob": _4, "g\xFCnstigliefern": _4, "hs-heilbronn": [0, { "it": [0, { "pages": _4, "pages-research": _4 }] }], "dyn-berlin": _4, "in-berlin": _4, "in-brb": _4, "in-butter": _4, "in-dsl": _4, "in-vpn": _4, "iservschule": _4, "mein-iserv": _4, "schulplattform": _4, "schulserver": _4, "test-iserv": _4, "keymachine": _4, "git-repos": _4, "lcube-server": _4, "svn-repos": _4, "barsy": _4, "webspaceconfig": _4, "123webseite": _4, "rub": _4, "ruhr-uni-bochum": [2, { "noc": [0, { "io": _4 }] }], "logoip": _4, "firewall-gateway": _4, "my-gateway": _4, "my-router": _4, "spdns": _4, "speedpartner": [0, { "customer": _4 }], "myspreadshop": _4, "taifun-dns": _4, "12hp": _4, "2ix": _4, "4lima": _4, "lima-city": _4, "dd-dns": _4, "dray-dns": _4, "draydns": _4, "dyn-vpn": _4, "dynvpn": _4, "mein-vigor": _4, "my-vigor": _4, "my-wan": _4, "syno-ds": _4, "synology-diskstation": _4, "synology-ds": _4, "uberspace": _7, "virtual-user": _4, "virtualuser": _4, "community-pro": _4, "diskussionsbereich": _4 }], "dj": _3, "dk": [1, { "biz": _4, "co": _4, "firm": _4, "reg": _4, "store": _4, "123hjemmeside": _4, "myspreadshop": _4 }], "dm": _48, "do": [1, { "art": _3, "com": _3, "edu": _3, "gob": _3, "gov": _3, "mil": _3, "net": _3, "org": _3, "sld": _3, "web": _3 }], "dz": [1, { "art": _3, "asso": _3, "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3, "pol": _3, "soc": _3, "tm": _3 }], "ec": [1, { "com": _3, "edu": _3, "fin": _3, "gob": _3, "gov": _3, "info": _3, "k12": _3, "med": _3, "mil": _3, "net": _3, "org": _3, "pro": _3, "base": _4, "official": _4 }], "edu": [1, { "rit": [0, { "git-pages": _4 }] }], "ee": [1, { "aip": _3, "com": _3, "edu": _3, "fie": _3, "gov": _3, "lib": _3, "med": _3, "org": _3, "pri": _3, "riik": _3 }], "eg": [1, { "ac": _3, "com": _3, "edu": _3, "eun": _3, "gov": _3, "info": _3, "me": _3, "mil": _3, "name": _3, "net": _3, "org": _3, "sci": _3, "sport": _3, "tv": _3 }], "er": _18, "es": [1, { "com": _3, "edu": _3, "gob": _3, "nom": _3, "org": _3, "123miweb": _4, "myspreadshop": _4 }], "et": [1, { "biz": _3, "com": _3, "edu": _3, "gov": _3, "info": _3, "name": _3, "net": _3, "org": _3 }], "eu": [1, { "airkitapps": _4, "cloudns": _4, "dogado": [0, { "jelastic": _4 }], "barsy": _4, "spdns": _4, "transurl": _7, "diskstation": _4 }], "fi": [1, { "aland": _3, "dy": _4, "xn--hkkinen-5wa": _4, "h\xE4kkinen": _4, "iki": _4, "cloudplatform": [0, { "fi": _4 }], "datacenter": [0, { "demo": _4, "paas": _4 }], "kapsi": _4, "123kotisivu": _4, "myspreadshop": _4 }], "fj": [1, { "ac": _3, "biz": _3, "com": _3, "gov": _3, "info": _3, "mil": _3, "name": _3, "net": _3, "org": _3, "pro": _3 }], "fk": _18, "fm": [1, { "com": _3, "edu": _3, "net": _3, "org": _3, "radio": _4, "user": _7 }], "fo": _3, "fr": [1, { "asso": _3, "com": _3, "gouv": _3, "nom": _3, "prd": _3, "tm": _3, "avoues": _3, "cci": _3, "greta": _3, "huissier-justice": _3, "en-root": _4, "fbx-os": _4, "fbxos": _4, "freebox-os": _4, "freeboxos": _4, "goupile": _4, "123siteweb": _4, "on-web": _4, "chirurgiens-dentistes-en-france": _4, "dedibox": _4, "aeroport": _4, "avocat": _4, "chambagri": _4, "chirurgiens-dentistes": _4, "experts-comptables": _4, "medecin": _4, "notaires": _4, "pharmacien": _4, "port": _4, "veterinaire": _4, "myspreadshop": _4, "ynh": _4 }], "ga": _3, "gb": _3, "gd": [1, { "edu": _3, "gov": _3 }], "ge": [1, { "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3, "pvt": _3, "school": _3 }], "gf": _3, "gg": [1, { "co": _3, "net": _3, "org": _3, "botdash": _4, "kaas": _4, "stackit": _4, "panel": [2, { "daemon": _4 }] }], "gh": [1, { "com": _3, "edu": _3, "gov": _3, "mil": _3, "org": _3 }], "gi": [1, { "com": _3, "edu": _3, "gov": _3, "ltd": _3, "mod": _3, "org": _3 }], "gl": [1, { "co": _3, "com": _3, "edu": _3, "net": _3, "org": _3, "biz": _4 }], "gm": _3, "gn": [1, { "ac": _3, "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3 }], "gov": _3, "gp": [1, { "asso": _3, "com": _3, "edu": _3, "mobi": _3, "net": _3, "org": _3 }], "gq": _3, "gr": [1, { "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3, "barsy": _4, "simplesite": _4 }], "gs": _3, "gt": [1, { "com": _3, "edu": _3, "gob": _3, "ind": _3, "mil": _3, "net": _3, "org": _3 }], "gu": [1, { "com": _3, "edu": _3, "gov": _3, "guam": _3, "info": _3, "net": _3, "org": _3, "web": _3 }], "gw": _3, "gy": _48, "hk": [1, { "com": _3, "edu": _3, "gov": _3, "idv": _3, "net": _3, "org": _3, "xn--ciqpn": _3, "\u4E2A\u4EBA": _3, "xn--gmqw5a": _3, "\u500B\u4EBA": _3, "xn--55qx5d": _3, "\u516C\u53F8": _3, "xn--mxtq1m": _3, "\u653F\u5E9C": _3, "xn--lcvr32d": _3, "\u654E\u80B2": _3, "xn--wcvs22d": _3, "\u6559\u80B2": _3, "xn--gmq050i": _3, "\u7B87\u4EBA": _3, "xn--uc0atv": _3, "\u7D44\u7E54": _3, "xn--uc0ay4a": _3, "\u7D44\u7EC7": _3, "xn--od0alg": _3, "\u7DB2\u7D61": _3, "xn--zf0avx": _3, "\u7DB2\u7EDC": _3, "xn--mk0axi": _3, "\u7EC4\u7E54": _3, "xn--tn0ag": _3, "\u7EC4\u7EC7": _3, "xn--od0aq3b": _3, "\u7F51\u7D61": _3, "xn--io0a7i": _3, "\u7F51\u7EDC": _3, "inc": _4, "ltd": _4 }], "hm": _3, "hn": [1, { "com": _3, "edu": _3, "gob": _3, "mil": _3, "net": _3, "org": _3 }], "hr": [1, { "com": _3, "from": _3, "iz": _3, "name": _3, "brendly": _51 }], "ht": [1, { "adult": _3, "art": _3, "asso": _3, "com": _3, "coop": _3, "edu": _3, "firm": _3, "gouv": _3, "info": _3, "med": _3, "net": _3, "org": _3, "perso": _3, "pol": _3, "pro": _3, "rel": _3, "shop": _3, "rt": _4 }], "hu": [1, { "2000": _3, "agrar": _3, "bolt": _3, "casino": _3, "city": _3, "co": _3, "erotica": _3, "erotika": _3, "film": _3, "forum": _3, "games": _3, "hotel": _3, "info": _3, "ingatlan": _3, "jogasz": _3, "konyvelo": _3, "lakas": _3, "media": _3, "news": _3, "org": _3, "priv": _3, "reklam": _3, "sex": _3, "shop": _3, "sport": _3, "suli": _3, "szex": _3, "tm": _3, "tozsde": _3, "utazas": _3, "video": _3 }], "id": [1, { "ac": _3, "biz": _3, "co": _3, "desa": _3, "go": _3, "mil": _3, "my": _3, "net": _3, "or": _3, "ponpes": _3, "sch": _3, "web": _3, "zone": _4 }], "ie": [1, { "gov": _3, "myspreadshop": _4 }], "il": [1, { "ac": _3, "co": [1, { "ravpage": _4, "mytabit": _4, "tabitorder": _4 }], "gov": _3, "idf": _3, "k12": _3, "muni": _3, "net": _3, "org": _3 }], "xn--4dbrk0ce": [1, { "xn--4dbgdty6c": _3, "xn--5dbhl8d": _3, "xn--8dbq2a": _3, "xn--hebda8b": _3 }], "\u05D9\u05E9\u05E8\u05D0\u05DC": [1, { "\u05D0\u05E7\u05D3\u05DE\u05D9\u05D4": _3, "\u05D9\u05E9\u05D5\u05D1": _3, "\u05E6\u05D4\u05DC": _3, "\u05DE\u05DE\u05E9\u05DC": _3 }], "im": [1, { "ac": _3, "co": [1, { "ltd": _3, "plc": _3 }], "com": _3, "net": _3, "org": _3, "tt": _3, "tv": _3 }], "in": [1, { "5g": _3, "6g": _3, "ac": _3, "ai": _3, "am": _3, "bihar": _3, "biz": _3, "business": _3, "ca": _3, "cn": _3, "co": _3, "com": _3, "coop": _3, "cs": _3, "delhi": _3, "dr": _3, "edu": _3, "er": _3, "firm": _3, "gen": _3, "gov": _3, "gujarat": _3, "ind": _3, "info": _3, "int": _3, "internet": _3, "io": _3, "me": _3, "mil": _3, "net": _3, "nic": _3, "org": _3, "pg": _3, "post": _3, "pro": _3, "res": _3, "travel": _3, "tv": _3, "uk": _3, "up": _3, "us": _3, "cloudns": _4, "barsy": _4, "web": _4, "supabase": _4 }], "info": [1, { "cloudns": _4, "dynamic-dns": _4, "barrel-of-knowledge": _4, "barrell-of-knowledge": _4, "dyndns": _4, "for-our": _4, "groks-the": _4, "groks-this": _4, "here-for-more": _4, "knowsitall": _4, "selfip": _4, "webhop": _4, "barsy": _4, "mayfirst": _4, "mittwald": _4, "mittwaldserver": _4, "typo3server": _4, "dvrcam": _4, "ilovecollege": _4, "no-ip": _4, "forumz": _4, "nsupdate": _4, "dnsupdate": _4, "v-info": _4 }], "int": [1, { "eu": _3 }], "io": [1, { "2038": _4, "co": _3, "com": _3, "edu": _3, "gov": _3, "mil": _3, "net": _3, "nom": _3, "org": _3, "on-acorn": _7, "myaddr": _4, "apigee": _4, "b-data": _4, "beagleboard": _4, "bitbucket": _4, "bluebite": _4, "boxfuse": _4, "brave": _8, "browsersafetymark": _4, "bubble": _52, "bubbleapps": _4, "bigv": [0, { "uk0": _4 }], "cleverapps": _4, "cloudbeesusercontent": _4, "dappnode": [0, { "dyndns": _4 }], "darklang": _4, "definima": _4, "dedyn": _4, "fh-muenster": _4, "shw": _4, "forgerock": [0, { "id": _4 }], "github": _4, "gitlab": _4, "lolipop": _4, "hasura-app": _4, "hostyhosting": _4, "hypernode": _4, "moonscale": _7, "beebyte": _41, "beebyteapp": [0, { "sekd1": _4 }], "jele": _4, "webthings": _4, "loginline": _4, "barsy": _4, "azurecontainer": _7, "ngrok": [2, { "ap": _4, "au": _4, "eu": _4, "in": _4, "jp": _4, "sa": _4, "us": _4 }], "nodeart": [0, { "stage": _4 }], "pantheonsite": _4, "pstmn": [2, { "mock": _4 }], "protonet": _4, "qcx": [2, { "sys": _7 }], "qoto": _4, "vaporcloud": _4, "myrdbx": _4, "rb-hosting": _44, "on-k3s": _7, "on-rio": _7, "readthedocs": _4, "resindevice": _4, "resinstaging": [0, { "devices": _4 }], "hzc": _4, "sandcats": _4, "scrypted": [0, { "client": _4 }], "mo-siemens": _4, "lair": _40, "stolos": _7, "musician": _4, "utwente": _4, "edugit": _4, "telebit": _4, "thingdust": [0, { "dev": _53, "disrec": _53, "prod": _54, "testing": _53 }], "tickets": _4, "webflow": _4, "webflowtest": _4, "editorx": _4, "wixstudio": _4, "basicserver": _4, "virtualserver": _4 }], "iq": _6, "ir": [1, { "ac": _3, "co": _3, "gov": _3, "id": _3, "net": _3, "org": _3, "sch": _3, "xn--mgba3a4f16a": _3, "\u0627\u06CC\u0631\u0627\u0646": _3, "xn--mgba3a4fra": _3, "\u0627\u064A\u0631\u0627\u0646": _3, "arvanedge": _4 }], "is": _3, "it": [1, { "edu": _3, "gov": _3, "abr": _3, "abruzzo": _3, "aosta-valley": _3, "aostavalley": _3, "bas": _3, "basilicata": _3, "cal": _3, "calabria": _3, "cam": _3, "campania": _3, "emilia-romagna": _3, "emiliaromagna": _3, "emr": _3, "friuli-v-giulia": _3, "friuli-ve-giulia": _3, "friuli-vegiulia": _3, "friuli-venezia-giulia": _3, "friuli-veneziagiulia": _3, "friuli-vgiulia": _3, "friuliv-giulia": _3, "friulive-giulia": _3, "friulivegiulia": _3, "friulivenezia-giulia": _3, "friuliveneziagiulia": _3, "friulivgiulia": _3, "fvg": _3, "laz": _3, "lazio": _3, "lig": _3, "liguria": _3, "lom": _3, "lombardia": _3, "lombardy": _3, "lucania": _3, "mar": _3, "marche": _3, "mol": _3, "molise": _3, "piedmont": _3, "piemonte": _3, "pmn": _3, "pug": _3, "puglia": _3, "sar": _3, "sardegna": _3, "sardinia": _3, "sic": _3, "sicilia": _3, "sicily": _3, "taa": _3, "tos": _3, "toscana": _3, "trentin-sud-tirol": _3, "xn--trentin-sd-tirol-rzb": _3, "trentin-s\xFCd-tirol": _3, "trentin-sudtirol": _3, "xn--trentin-sdtirol-7vb": _3, "trentin-s\xFCdtirol": _3, "trentin-sued-tirol": _3, "trentin-suedtirol": _3, "trentino": _3, "trentino-a-adige": _3, "trentino-aadige": _3, "trentino-alto-adige": _3, "trentino-altoadige": _3, "trentino-s-tirol": _3, "trentino-stirol": _3, "trentino-sud-tirol": _3, "xn--trentino-sd-tirol-c3b": _3, "trentino-s\xFCd-tirol": _3, "trentino-sudtirol": _3, "xn--trentino-sdtirol-szb": _3, "trentino-s\xFCdtirol": _3, "trentino-sued-tirol": _3, "trentino-suedtirol": _3, "trentinoa-adige": _3, "trentinoaadige": _3, "trentinoalto-adige": _3, "trentinoaltoadige": _3, "trentinos-tirol": _3, "trentinostirol": _3, "trentinosud-tirol": _3, "xn--trentinosd-tirol-rzb": _3, "trentinos\xFCd-tirol": _3, "trentinosudtirol": _3, "xn--trentinosdtirol-7vb": _3, "trentinos\xFCdtirol": _3, "trentinosued-tirol": _3, "trentinosuedtirol": _3, "trentinsud-tirol": _3, "xn--trentinsd-tirol-6vb": _3, "trentins\xFCd-tirol": _3, "trentinsudtirol": _3, "xn--trentinsdtirol-nsb": _3, "trentins\xFCdtirol": _3, "trentinsued-tirol": _3, "trentinsuedtirol": _3, "tuscany": _3, "umb": _3, "umbria": _3, "val-d-aosta": _3, "val-daosta": _3, "vald-aosta": _3, "valdaosta": _3, "valle-aosta": _3, "valle-d-aosta": _3, "valle-daosta": _3, "valleaosta": _3, "valled-aosta": _3, "valledaosta": _3, "vallee-aoste": _3, "xn--valle-aoste-ebb": _3, "vall\xE9e-aoste": _3, "vallee-d-aoste": _3, "xn--valle-d-aoste-ehb": _3, "vall\xE9e-d-aoste": _3, "valleeaoste": _3, "xn--valleaoste-e7a": _3, "vall\xE9eaoste": _3, "valleedaoste": _3, "xn--valledaoste-ebb": _3, "vall\xE9edaoste": _3, "vao": _3, "vda": _3, "ven": _3, "veneto": _3, "ag": _3, "agrigento": _3, "al": _3, "alessandria": _3, "alto-adige": _3, "altoadige": _3, "an": _3, "ancona": _3, "andria-barletta-trani": _3, "andria-trani-barletta": _3, "andriabarlettatrani": _3, "andriatranibarletta": _3, "ao": _3, "aosta": _3, "aoste": _3, "ap": _3, "aq": _3, "aquila": _3, "ar": _3, "arezzo": _3, "ascoli-piceno": _3, "ascolipiceno": _3, "asti": _3, "at": _3, "av": _3, "avellino": _3, "ba": _3, "balsan": _3, "balsan-sudtirol": _3, "xn--balsan-sdtirol-nsb": _3, "balsan-s\xFCdtirol": _3, "balsan-suedtirol": _3, "bari": _3, "barletta-trani-andria": _3, "barlettatraniandria": _3, "belluno": _3, "benevento": _3, "bergamo": _3, "bg": _3, "bi": _3, "biella": _3, "bl": _3, "bn": _3, "bo": _3, "bologna": _3, "bolzano": _3, "bolzano-altoadige": _3, "bozen": _3, "bozen-sudtirol": _3, "xn--bozen-sdtirol-2ob": _3, "bozen-s\xFCdtirol": _3, "bozen-suedtirol": _3, "br": _3, "brescia": _3, "brindisi": _3, "bs": _3, "bt": _3, "bulsan": _3, "bulsan-sudtirol": _3, "xn--bulsan-sdtirol-nsb": _3, "bulsan-s\xFCdtirol": _3, "bulsan-suedtirol": _3, "bz": _3, "ca": _3, "cagliari": _3, "caltanissetta": _3, "campidano-medio": _3, "campidanomedio": _3, "campobasso": _3, "carbonia-iglesias": _3, "carboniaiglesias": _3, "carrara-massa": _3, "carraramassa": _3, "caserta": _3, "catania": _3, "catanzaro": _3, "cb": _3, "ce": _3, "cesena-forli": _3, "xn--cesena-forl-mcb": _3, "cesena-forl\xEC": _3, "cesenaforli": _3, "xn--cesenaforl-i8a": _3, "cesenaforl\xEC": _3, "ch": _3, "chieti": _3, "ci": _3, "cl": _3, "cn": _3, "co": _3, "como": _3, "cosenza": _3, "cr": _3, "cremona": _3, "crotone": _3, "cs": _3, "ct": _3, "cuneo": _3, "cz": _3, "dell-ogliastra": _3, "dellogliastra": _3, "en": _3, "enna": _3, "fc": _3, "fe": _3, "fermo": _3, "ferrara": _3, "fg": _3, "fi": _3, "firenze": _3, "florence": _3, "fm": _3, "foggia": _3, "forli-cesena": _3, "xn--forl-cesena-fcb": _3, "forl\xEC-cesena": _3, "forlicesena": _3, "xn--forlcesena-c8a": _3, "forl\xECcesena": _3, "fr": _3, "frosinone": _3, "ge": _3, "genoa": _3, "genova": _3, "go": _3, "gorizia": _3, "gr": _3, "grosseto": _3, "iglesias-carbonia": _3, "iglesiascarbonia": _3, "im": _3, "imperia": _3, "is": _3, "isernia": _3, "kr": _3, "la-spezia": _3, "laquila": _3, "laspezia": _3, "latina": _3, "lc": _3, "le": _3, "lecce": _3, "lecco": _3, "li": _3, "livorno": _3, "lo": _3, "lodi": _3, "lt": _3, "lu": _3, "lucca": _3, "macerata": _3, "mantova": _3, "massa-carrara": _3, "massacarrara": _3, "matera": _3, "mb": _3, "mc": _3, "me": _3, "medio-campidano": _3, "mediocampidano": _3, "messina": _3, "mi": _3, "milan": _3, "milano": _3, "mn": _3, "mo": _3, "modena": _3, "monza": _3, "monza-brianza": _3, "monza-e-della-brianza": _3, "monzabrianza": _3, "monzaebrianza": _3, "monzaedellabrianza": _3, "ms": _3, "mt": _3, "na": _3, "naples": _3, "napoli": _3, "no": _3, "novara": _3, "nu": _3, "nuoro": _3, "og": _3, "ogliastra": _3, "olbia-tempio": _3, "olbiatempio": _3, "or": _3, "oristano": _3, "ot": _3, "pa": _3, "padova": _3, "padua": _3, "palermo": _3, "parma": _3, "pavia": _3, "pc": _3, "pd": _3, "pe": _3, "perugia": _3, "pesaro-urbino": _3, "pesarourbino": _3, "pescara": _3, "pg": _3, "pi": _3, "piacenza": _3, "pisa": _3, "pistoia": _3, "pn": _3, "po": _3, "pordenone": _3, "potenza": _3, "pr": _3, "prato": _3, "pt": _3, "pu": _3, "pv": _3, "pz": _3, "ra": _3, "ragusa": _3, "ravenna": _3, "rc": _3, "re": _3, "reggio-calabria": _3, "reggio-emilia": _3, "reggiocalabria": _3, "reggioemilia": _3, "rg": _3, "ri": _3, "rieti": _3, "rimini": _3, "rm": _3, "rn": _3, "ro": _3, "roma": _3, "rome": _3, "rovigo": _3, "sa": _3, "salerno": _3, "sassari": _3, "savona": _3, "si": _3, "siena": _3, "siracusa": _3, "so": _3, "sondrio": _3, "sp": _3, "sr": _3, "ss": _3, "xn--sdtirol-n2a": _3, "s\xFCdtirol": _3, "suedtirol": _3, "sv": _3, "ta": _3, "taranto": _3, "te": _3, "tempio-olbia": _3, "tempioolbia": _3, "teramo": _3, "terni": _3, "tn": _3, "to": _3, "torino": _3, "tp": _3, "tr": _3, "trani-andria-barletta": _3, "trani-barletta-andria": _3, "traniandriabarletta": _3, "tranibarlettaandria": _3, "trapani": _3, "trento": _3, "treviso": _3, "trieste": _3, "ts": _3, "turin": _3, "tv": _3, "ud": _3, "udine": _3, "urbino-pesaro": _3, "urbinopesaro": _3, "va": _3, "varese": _3, "vb": _3, "vc": _3, "ve": _3, "venezia": _3, "venice": _3, "verbania": _3, "vercelli": _3, "verona": _3, "vi": _3, "vibo-valentia": _3, "vibovalentia": _3, "vicenza": _3, "viterbo": _3, "vr": _3, "vs": _3, "vt": _3, "vv": _3, "12chars": _4, "ibxos": _4, "iliadboxos": _4, "neen": [0, { "jc": _4 }], "123homepage": _4, "16-b": _4, "32-b": _4, "64-b": _4, "myspreadshop": _4, "syncloud": _4 }], "je": [1, { "co": _3, "net": _3, "org": _3, "of": _4 }], "jm": _18, "jo": [1, { "agri": _3, "ai": _3, "com": _3, "edu": _3, "eng": _3, "fm": _3, "gov": _3, "mil": _3, "net": _3, "org": _3, "per": _3, "phd": _3, "sch": _3, "tv": _3 }], "jobs": _3, "jp": [1, { "ac": _3, "ad": _3, "co": _3, "ed": _3, "go": _3, "gr": _3, "lg": _3, "ne": [1, { "aseinet": _50, "gehirn": _4, "ivory": _4, "mail-box": _4, "mints": _4, "mokuren": _4, "opal": _4, "sakura": _4, "sumomo": _4, "topaz": _4 }], "or": _3, "aichi": [1, { "aisai": _3, "ama": _3, "anjo": _3, "asuke": _3, "chiryu": _3, "chita": _3, "fuso": _3, "gamagori": _3, "handa": _3, "hazu": _3, "hekinan": _3, "higashiura": _3, "ichinomiya": _3, "inazawa": _3, "inuyama": _3, "isshiki": _3, "iwakura": _3, "kanie": _3, "kariya": _3, "kasugai": _3, "kira": _3, "kiyosu": _3, "komaki": _3, "konan": _3, "kota": _3, "mihama": _3, "miyoshi": _3, "nishio": _3, "nisshin": _3, "obu": _3, "oguchi": _3, "oharu": _3, "okazaki": _3, "owariasahi": _3, "seto": _3, "shikatsu": _3, "shinshiro": _3, "shitara": _3, "tahara": _3, "takahama": _3, "tobishima": _3, "toei": _3, "togo": _3, "tokai": _3, "tokoname": _3, "toyoake": _3, "toyohashi": _3, "toyokawa": _3, "toyone": _3, "toyota": _3, "tsushima": _3, "yatomi": _3 }], "akita": [1, { "akita": _3, "daisen": _3, "fujisato": _3, "gojome": _3, "hachirogata": _3, "happou": _3, "higashinaruse": _3, "honjo": _3, "honjyo": _3, "ikawa": _3, "kamikoani": _3, "kamioka": _3, "katagami": _3, "kazuno": _3, "kitaakita": _3, "kosaka": _3, "kyowa": _3, "misato": _3, "mitane": _3, "moriyoshi": _3, "nikaho": _3, "noshiro": _3, "odate": _3, "oga": _3, "ogata": _3, "semboku": _3, "yokote": _3, "yurihonjo": _3 }], "aomori": [1, { "aomori": _3, "gonohe": _3, "hachinohe": _3, "hashikami": _3, "hiranai": _3, "hirosaki": _3, "itayanagi": _3, "kuroishi": _3, "misawa": _3, "mutsu": _3, "nakadomari": _3, "noheji": _3, "oirase": _3, "owani": _3, "rokunohe": _3, "sannohe": _3, "shichinohe": _3, "shingo": _3, "takko": _3, "towada": _3, "tsugaru": _3, "tsuruta": _3 }], "chiba": [1, { "abiko": _3, "asahi": _3, "chonan": _3, "chosei": _3, "choshi": _3, "chuo": _3, "funabashi": _3, "futtsu": _3, "hanamigawa": _3, "ichihara": _3, "ichikawa": _3, "ichinomiya": _3, "inzai": _3, "isumi": _3, "kamagaya": _3, "kamogawa": _3, "kashiwa": _3, "katori": _3, "katsuura": _3, "kimitsu": _3, "kisarazu": _3, "kozaki": _3, "kujukuri": _3, "kyonan": _3, "matsudo": _3, "midori": _3, "mihama": _3, "minamiboso": _3, "mobara": _3, "mutsuzawa": _3, "nagara": _3, "nagareyama": _3, "narashino": _3, "narita": _3, "noda": _3, "oamishirasato": _3, "omigawa": _3, "onjuku": _3, "otaki": _3, "sakae": _3, "sakura": _3, "shimofusa": _3, "shirako": _3, "shiroi": _3, "shisui": _3, "sodegaura": _3, "sosa": _3, "tako": _3, "tateyama": _3, "togane": _3, "tohnosho": _3, "tomisato": _3, "urayasu": _3, "yachimata": _3, "yachiyo": _3, "yokaichiba": _3, "yokoshibahikari": _3, "yotsukaido": _3 }], "ehime": [1, { "ainan": _3, "honai": _3, "ikata": _3, "imabari": _3, "iyo": _3, "kamijima": _3, "kihoku": _3, "kumakogen": _3, "masaki": _3, "matsuno": _3, "matsuyama": _3, "namikata": _3, "niihama": _3, "ozu": _3, "saijo": _3, "seiyo": _3, "shikokuchuo": _3, "tobe": _3, "toon": _3, "uchiko": _3, "uwajima": _3, "yawatahama": _3 }], "fukui": [1, { "echizen": _3, "eiheiji": _3, "fukui": _3, "ikeda": _3, "katsuyama": _3, "mihama": _3, "minamiechizen": _3, "obama": _3, "ohi": _3, "ono": _3, "sabae": _3, "sakai": _3, "takahama": _3, "tsuruga": _3, "wakasa": _3 }], "fukuoka": [1, { "ashiya": _3, "buzen": _3, "chikugo": _3, "chikuho": _3, "chikujo": _3, "chikushino": _3, "chikuzen": _3, "chuo": _3, "dazaifu": _3, "fukuchi": _3, "hakata": _3, "higashi": _3, "hirokawa": _3, "hisayama": _3, "iizuka": _3, "inatsuki": _3, "kaho": _3, "kasuga": _3, "kasuya": _3, "kawara": _3, "keisen": _3, "koga": _3, "kurate": _3, "kurogi": _3, "kurume": _3, "minami": _3, "miyako": _3, "miyama": _3, "miyawaka": _3, "mizumaki": _3, "munakata": _3, "nakagawa": _3, "nakama": _3, "nishi": _3, "nogata": _3, "ogori": _3, "okagaki": _3, "okawa": _3, "oki": _3, "omuta": _3, "onga": _3, "onojo": _3, "oto": _3, "saigawa": _3, "sasaguri": _3, "shingu": _3, "shinyoshitomi": _3, "shonai": _3, "soeda": _3, "sue": _3, "tachiarai": _3, "tagawa": _3, "takata": _3, "toho": _3, "toyotsu": _3, "tsuiki": _3, "ukiha": _3, "umi": _3, "usui": _3, "yamada": _3, "yame": _3, "yanagawa": _3, "yukuhashi": _3 }], "fukushima": [1, { "aizubange": _3, "aizumisato": _3, "aizuwakamatsu": _3, "asakawa": _3, "bandai": _3, "date": _3, "fukushima": _3, "furudono": _3, "futaba": _3, "hanawa": _3, "higashi": _3, "hirata": _3, "hirono": _3, "iitate": _3, "inawashiro": _3, "ishikawa": _3, "iwaki": _3, "izumizaki": _3, "kagamiishi": _3, "kaneyama": _3, "kawamata": _3, "kitakata": _3, "kitashiobara": _3, "koori": _3, "koriyama": _3, "kunimi": _3, "miharu": _3, "mishima": _3, "namie": _3, "nango": _3, "nishiaizu": _3, "nishigo": _3, "okuma": _3, "omotego": _3, "ono": _3, "otama": _3, "samegawa": _3, "shimogo": _3, "shirakawa": _3, "showa": _3, "soma": _3, "sukagawa": _3, "taishin": _3, "tamakawa": _3, "tanagura": _3, "tenei": _3, "yabuki": _3, "yamato": _3, "yamatsuri": _3, "yanaizu": _3, "yugawa": _3 }], "gifu": [1, { "anpachi": _3, "ena": _3, "gifu": _3, "ginan": _3, "godo": _3, "gujo": _3, "hashima": _3, "hichiso": _3, "hida": _3, "higashishirakawa": _3, "ibigawa": _3, "ikeda": _3, "kakamigahara": _3, "kani": _3, "kasahara": _3, "kasamatsu": _3, "kawaue": _3, "kitagata": _3, "mino": _3, "minokamo": _3, "mitake": _3, "mizunami": _3, "motosu": _3, "nakatsugawa": _3, "ogaki": _3, "sakahogi": _3, "seki": _3, "sekigahara": _3, "shirakawa": _3, "tajimi": _3, "takayama": _3, "tarui": _3, "toki": _3, "tomika": _3, "wanouchi": _3, "yamagata": _3, "yaotsu": _3, "yoro": _3 }], "gunma": [1, { "annaka": _3, "chiyoda": _3, "fujioka": _3, "higashiagatsuma": _3, "isesaki": _3, "itakura": _3, "kanna": _3, "kanra": _3, "katashina": _3, "kawaba": _3, "kiryu": _3, "kusatsu": _3, "maebashi": _3, "meiwa": _3, "midori": _3, "minakami": _3, "naganohara": _3, "nakanojo": _3, "nanmoku": _3, "numata": _3, "oizumi": _3, "ora": _3, "ota": _3, "shibukawa": _3, "shimonita": _3, "shinto": _3, "showa": _3, "takasaki": _3, "takayama": _3, "tamamura": _3, "tatebayashi": _3, "tomioka": _3, "tsukiyono": _3, "tsumagoi": _3, "ueno": _3, "yoshioka": _3 }], "hiroshima": [1, { "asaminami": _3, "daiwa": _3, "etajima": _3, "fuchu": _3, "fukuyama": _3, "hatsukaichi": _3, "higashihiroshima": _3, "hongo": _3, "jinsekikogen": _3, "kaita": _3, "kui": _3, "kumano": _3, "kure": _3, "mihara": _3, "miyoshi": _3, "naka": _3, "onomichi": _3, "osakikamijima": _3, "otake": _3, "saka": _3, "sera": _3, "seranishi": _3, "shinichi": _3, "shobara": _3, "takehara": _3 }], "hokkaido": [1, { "abashiri": _3, "abira": _3, "aibetsu": _3, "akabira": _3, "akkeshi": _3, "asahikawa": _3, "ashibetsu": _3, "ashoro": _3, "assabu": _3, "atsuma": _3, "bibai": _3, "biei": _3, "bifuka": _3, "bihoro": _3, "biratori": _3, "chippubetsu": _3, "chitose": _3, "date": _3, "ebetsu": _3, "embetsu": _3, "eniwa": _3, "erimo": _3, "esan": _3, "esashi": _3, "fukagawa": _3, "fukushima": _3, "furano": _3, "furubira": _3, "haboro": _3, "hakodate": _3, "hamatonbetsu": _3, "hidaka": _3, "higashikagura": _3, "higashikawa": _3, "hiroo": _3, "hokuryu": _3, "hokuto": _3, "honbetsu": _3, "horokanai": _3, "horonobe": _3, "ikeda": _3, "imakane": _3, "ishikari": _3, "iwamizawa": _3, "iwanai": _3, "kamifurano": _3, "kamikawa": _3, "kamishihoro": _3, "kamisunagawa": _3, "kamoenai": _3, "kayabe": _3, "kembuchi": _3, "kikonai": _3, "kimobetsu": _3, "kitahiroshima": _3, "kitami": _3, "kiyosato": _3, "koshimizu": _3, "kunneppu": _3, "kuriyama": _3, "kuromatsunai": _3, "kushiro": _3, "kutchan": _3, "kyowa": _3, "mashike": _3, "matsumae": _3, "mikasa": _3, "minamifurano": _3, "mombetsu": _3, "moseushi": _3, "mukawa": _3, "muroran": _3, "naie": _3, "nakagawa": _3, "nakasatsunai": _3, "nakatombetsu": _3, "nanae": _3, "nanporo": _3, "nayoro": _3, "nemuro": _3, "niikappu": _3, "niki": _3, "nishiokoppe": _3, "noboribetsu": _3, "numata": _3, "obihiro": _3, "obira": _3, "oketo": _3, "okoppe": _3, "otaru": _3, "otobe": _3, "otofuke": _3, "otoineppu": _3, "oumu": _3, "ozora": _3, "pippu": _3, "rankoshi": _3, "rebun": _3, "rikubetsu": _3, "rishiri": _3, "rishirifuji": _3, "saroma": _3, "sarufutsu": _3, "shakotan": _3, "shari": _3, "shibecha": _3, "shibetsu": _3, "shikabe": _3, "shikaoi": _3, "shimamaki": _3, "shimizu": _3, "shimokawa": _3, "shinshinotsu": _3, "shintoku": _3, "shiranuka": _3, "shiraoi": _3, "shiriuchi": _3, "sobetsu": _3, "sunagawa": _3, "taiki": _3, "takasu": _3, "takikawa": _3, "takinoue": _3, "teshikaga": _3, "tobetsu": _3, "tohma": _3, "tomakomai": _3, "tomari": _3, "toya": _3, "toyako": _3, "toyotomi": _3, "toyoura": _3, "tsubetsu": _3, "tsukigata": _3, "urakawa": _3, "urausu": _3, "uryu": _3, "utashinai": _3, "wakkanai": _3, "wassamu": _3, "yakumo": _3, "yoichi": _3 }], "hyogo": [1, { "aioi": _3, "akashi": _3, "ako": _3, "amagasaki": _3, "aogaki": _3, "asago": _3, "ashiya": _3, "awaji": _3, "fukusaki": _3, "goshiki": _3, "harima": _3, "himeji": _3, "ichikawa": _3, "inagawa": _3, "itami": _3, "kakogawa": _3, "kamigori": _3, "kamikawa": _3, "kasai": _3, "kasuga": _3, "kawanishi": _3, "miki": _3, "minamiawaji": _3, "nishinomiya": _3, "nishiwaki": _3, "ono": _3, "sanda": _3, "sannan": _3, "sasayama": _3, "sayo": _3, "shingu": _3, "shinonsen": _3, "shiso": _3, "sumoto": _3, "taishi": _3, "taka": _3, "takarazuka": _3, "takasago": _3, "takino": _3, "tamba": _3, "tatsuno": _3, "toyooka": _3, "yabu": _3, "yashiro": _3, "yoka": _3, "yokawa": _3 }], "ibaraki": [1, { "ami": _3, "asahi": _3, "bando": _3, "chikusei": _3, "daigo": _3, "fujishiro": _3, "hitachi": _3, "hitachinaka": _3, "hitachiomiya": _3, "hitachiota": _3, "ibaraki": _3, "ina": _3, "inashiki": _3, "itako": _3, "iwama": _3, "joso": _3, "kamisu": _3, "kasama": _3, "kashima": _3, "kasumigaura": _3, "koga": _3, "miho": _3, "mito": _3, "moriya": _3, "naka": _3, "namegata": _3, "oarai": _3, "ogawa": _3, "omitama": _3, "ryugasaki": _3, "sakai": _3, "sakuragawa": _3, "shimodate": _3, "shimotsuma": _3, "shirosato": _3, "sowa": _3, "suifu": _3, "takahagi": _3, "tamatsukuri": _3, "tokai": _3, "tomobe": _3, "tone": _3, "toride": _3, "tsuchiura": _3, "tsukuba": _3, "uchihara": _3, "ushiku": _3, "yachiyo": _3, "yamagata": _3, "yawara": _3, "yuki": _3 }], "ishikawa": [1, { "anamizu": _3, "hakui": _3, "hakusan": _3, "kaga": _3, "kahoku": _3, "kanazawa": _3, "kawakita": _3, "komatsu": _3, "nakanoto": _3, "nanao": _3, "nomi": _3, "nonoichi": _3, "noto": _3, "shika": _3, "suzu": _3, "tsubata": _3, "tsurugi": _3, "uchinada": _3, "wajima": _3 }], "iwate": [1, { "fudai": _3, "fujisawa": _3, "hanamaki": _3, "hiraizumi": _3, "hirono": _3, "ichinohe": _3, "ichinoseki": _3, "iwaizumi": _3, "iwate": _3, "joboji": _3, "kamaishi": _3, "kanegasaki": _3, "karumai": _3, "kawai": _3, "kitakami": _3, "kuji": _3, "kunohe": _3, "kuzumaki": _3, "miyako": _3, "mizusawa": _3, "morioka": _3, "ninohe": _3, "noda": _3, "ofunato": _3, "oshu": _3, "otsuchi": _3, "rikuzentakata": _3, "shiwa": _3, "shizukuishi": _3, "sumita": _3, "tanohata": _3, "tono": _3, "yahaba": _3, "yamada": _3 }], "kagawa": [1, { "ayagawa": _3, "higashikagawa": _3, "kanonji": _3, "kotohira": _3, "manno": _3, "marugame": _3, "mitoyo": _3, "naoshima": _3, "sanuki": _3, "tadotsu": _3, "takamatsu": _3, "tonosho": _3, "uchinomi": _3, "utazu": _3, "zentsuji": _3 }], "kagoshima": [1, { "akune": _3, "amami": _3, "hioki": _3, "isa": _3, "isen": _3, "izumi": _3, "kagoshima": _3, "kanoya": _3, "kawanabe": _3, "kinko": _3, "kouyama": _3, "makurazaki": _3, "matsumoto": _3, "minamitane": _3, "nakatane": _3, "nishinoomote": _3, "satsumasendai": _3, "soo": _3, "tarumizu": _3, "yusui": _3 }], "kanagawa": [1, { "aikawa": _3, "atsugi": _3, "ayase": _3, "chigasaki": _3, "ebina": _3, "fujisawa": _3, "hadano": _3, "hakone": _3, "hiratsuka": _3, "isehara": _3, "kaisei": _3, "kamakura": _3, "kiyokawa": _3, "matsuda": _3, "minamiashigara": _3, "miura": _3, "nakai": _3, "ninomiya": _3, "odawara": _3, "oi": _3, "oiso": _3, "sagamihara": _3, "samukawa": _3, "tsukui": _3, "yamakita": _3, "yamato": _3, "yokosuka": _3, "yugawara": _3, "zama": _3, "zushi": _3 }], "kochi": [1, { "aki": _3, "geisei": _3, "hidaka": _3, "higashitsuno": _3, "ino": _3, "kagami": _3, "kami": _3, "kitagawa": _3, "kochi": _3, "mihara": _3, "motoyama": _3, "muroto": _3, "nahari": _3, "nakamura": _3, "nankoku": _3, "nishitosa": _3, "niyodogawa": _3, "ochi": _3, "okawa": _3, "otoyo": _3, "otsuki": _3, "sakawa": _3, "sukumo": _3, "susaki": _3, "tosa": _3, "tosashimizu": _3, "toyo": _3, "tsuno": _3, "umaji": _3, "yasuda": _3, "yusuhara": _3 }], "kumamoto": [1, { "amakusa": _3, "arao": _3, "aso": _3, "choyo": _3, "gyokuto": _3, "kamiamakusa": _3, "kikuchi": _3, "kumamoto": _3, "mashiki": _3, "mifune": _3, "minamata": _3, "minamioguni": _3, "nagasu": _3, "nishihara": _3, "oguni": _3, "ozu": _3, "sumoto": _3, "takamori": _3, "uki": _3, "uto": _3, "yamaga": _3, "yamato": _3, "yatsushiro": _3 }], "kyoto": [1, { "ayabe": _3, "fukuchiyama": _3, "higashiyama": _3, "ide": _3, "ine": _3, "joyo": _3, "kameoka": _3, "kamo": _3, "kita": _3, "kizu": _3, "kumiyama": _3, "kyotamba": _3, "kyotanabe": _3, "kyotango": _3, "maizuru": _3, "minami": _3, "minamiyamashiro": _3, "miyazu": _3, "muko": _3, "nagaokakyo": _3, "nakagyo": _3, "nantan": _3, "oyamazaki": _3, "sakyo": _3, "seika": _3, "tanabe": _3, "uji": _3, "ujitawara": _3, "wazuka": _3, "yamashina": _3, "yawata": _3 }], "mie": [1, { "asahi": _3, "inabe": _3, "ise": _3, "kameyama": _3, "kawagoe": _3, "kiho": _3, "kisosaki": _3, "kiwa": _3, "komono": _3, "kumano": _3, "kuwana": _3, "matsusaka": _3, "meiwa": _3, "mihama": _3, "minamiise": _3, "misugi": _3, "miyama": _3, "nabari": _3, "shima": _3, "suzuka": _3, "tado": _3, "taiki": _3, "taki": _3, "tamaki": _3, "toba": _3, "tsu": _3, "udono": _3, "ureshino": _3, "watarai": _3, "yokkaichi": _3 }], "miyagi": [1, { "furukawa": _3, "higashimatsushima": _3, "ishinomaki": _3, "iwanuma": _3, "kakuda": _3, "kami": _3, "kawasaki": _3, "marumori": _3, "matsushima": _3, "minamisanriku": _3, "misato": _3, "murata": _3, "natori": _3, "ogawara": _3, "ohira": _3, "onagawa": _3, "osaki": _3, "rifu": _3, "semine": _3, "shibata": _3, "shichikashuku": _3, "shikama": _3, "shiogama": _3, "shiroishi": _3, "tagajo": _3, "taiwa": _3, "tome": _3, "tomiya": _3, "wakuya": _3, "watari": _3, "yamamoto": _3, "zao": _3 }], "miyazaki": [1, { "aya": _3, "ebino": _3, "gokase": _3, "hyuga": _3, "kadogawa": _3, "kawaminami": _3, "kijo": _3, "kitagawa": _3, "kitakata": _3, "kitaura": _3, "kobayashi": _3, "kunitomi": _3, "kushima": _3, "mimata": _3, "miyakonojo": _3, "miyazaki": _3, "morotsuka": _3, "nichinan": _3, "nishimera": _3, "nobeoka": _3, "saito": _3, "shiiba": _3, "shintomi": _3, "takaharu": _3, "takanabe": _3, "takazaki": _3, "tsuno": _3 }], "nagano": [1, { "achi": _3, "agematsu": _3, "anan": _3, "aoki": _3, "asahi": _3, "azumino": _3, "chikuhoku": _3, "chikuma": _3, "chino": _3, "fujimi": _3, "hakuba": _3, "hara": _3, "hiraya": _3, "iida": _3, "iijima": _3, "iiyama": _3, "iizuna": _3, "ikeda": _3, "ikusaka": _3, "ina": _3, "karuizawa": _3, "kawakami": _3, "kiso": _3, "kisofukushima": _3, "kitaaiki": _3, "komagane": _3, "komoro": _3, "matsukawa": _3, "matsumoto": _3, "miasa": _3, "minamiaiki": _3, "minamimaki": _3, "minamiminowa": _3, "minowa": _3, "miyada": _3, "miyota": _3, "mochizuki": _3, "nagano": _3, "nagawa": _3, "nagiso": _3, "nakagawa": _3, "nakano": _3, "nozawaonsen": _3, "obuse": _3, "ogawa": _3, "okaya": _3, "omachi": _3, "omi": _3, "ookuwa": _3, "ooshika": _3, "otaki": _3, "otari": _3, "sakae": _3, "sakaki": _3, "saku": _3, "sakuho": _3, "shimosuwa": _3, "shinanomachi": _3, "shiojiri": _3, "suwa": _3, "suzaka": _3, "takagi": _3, "takamori": _3, "takayama": _3, "tateshina": _3, "tatsuno": _3, "togakushi": _3, "togura": _3, "tomi": _3, "ueda": _3, "wada": _3, "yamagata": _3, "yamanouchi": _3, "yasaka": _3, "yasuoka": _3 }], "nagasaki": [1, { "chijiwa": _3, "futsu": _3, "goto": _3, "hasami": _3, "hirado": _3, "iki": _3, "isahaya": _3, "kawatana": _3, "kuchinotsu": _3, "matsuura": _3, "nagasaki": _3, "obama": _3, "omura": _3, "oseto": _3, "saikai": _3, "sasebo": _3, "seihi": _3, "shimabara": _3, "shinkamigoto": _3, "togitsu": _3, "tsushima": _3, "unzen": _3 }], "nara": [1, { "ando": _3, "gose": _3, "heguri": _3, "higashiyoshino": _3, "ikaruga": _3, "ikoma": _3, "kamikitayama": _3, "kanmaki": _3, "kashiba": _3, "kashihara": _3, "katsuragi": _3, "kawai": _3, "kawakami": _3, "kawanishi": _3, "koryo": _3, "kurotaki": _3, "mitsue": _3, "miyake": _3, "nara": _3, "nosegawa": _3, "oji": _3, "ouda": _3, "oyodo": _3, "sakurai": _3, "sango": _3, "shimoichi": _3, "shimokitayama": _3, "shinjo": _3, "soni": _3, "takatori": _3, "tawaramoto": _3, "tenkawa": _3, "tenri": _3, "uda": _3, "yamatokoriyama": _3, "yamatotakada": _3, "yamazoe": _3, "yoshino": _3 }], "niigata": [1, { "aga": _3, "agano": _3, "gosen": _3, "itoigawa": _3, "izumozaki": _3, "joetsu": _3, "kamo": _3, "kariwa": _3, "kashiwazaki": _3, "minamiuonuma": _3, "mitsuke": _3, "muika": _3, "murakami": _3, "myoko": _3, "nagaoka": _3, "niigata": _3, "ojiya": _3, "omi": _3, "sado": _3, "sanjo": _3, "seiro": _3, "seirou": _3, "sekikawa": _3, "shibata": _3, "tagami": _3, "tainai": _3, "tochio": _3, "tokamachi": _3, "tsubame": _3, "tsunan": _3, "uonuma": _3, "yahiko": _3, "yoita": _3, "yuzawa": _3 }], "oita": [1, { "beppu": _3, "bungoono": _3, "bungotakada": _3, "hasama": _3, "hiji": _3, "himeshima": _3, "hita": _3, "kamitsue": _3, "kokonoe": _3, "kuju": _3, "kunisaki": _3, "kusu": _3, "oita": _3, "saiki": _3, "taketa": _3, "tsukumi": _3, "usa": _3, "usuki": _3, "yufu": _3 }], "okayama": [1, { "akaiwa": _3, "asakuchi": _3, "bizen": _3, "hayashima": _3, "ibara": _3, "kagamino": _3, "kasaoka": _3, "kibichuo": _3, "kumenan": _3, "kurashiki": _3, "maniwa": _3, "misaki": _3, "nagi": _3, "niimi": _3, "nishiawakura": _3, "okayama": _3, "satosho": _3, "setouchi": _3, "shinjo": _3, "shoo": _3, "soja": _3, "takahashi": _3, "tamano": _3, "tsuyama": _3, "wake": _3, "yakage": _3 }], "okinawa": [1, { "aguni": _3, "ginowan": _3, "ginoza": _3, "gushikami": _3, "haebaru": _3, "higashi": _3, "hirara": _3, "iheya": _3, "ishigaki": _3, "ishikawa": _3, "itoman": _3, "izena": _3, "kadena": _3, "kin": _3, "kitadaito": _3, "kitanakagusuku": _3, "kumejima": _3, "kunigami": _3, "minamidaito": _3, "motobu": _3, "nago": _3, "naha": _3, "nakagusuku": _3, "nakijin": _3, "nanjo": _3, "nishihara": _3, "ogimi": _3, "okinawa": _3, "onna": _3, "shimoji": _3, "taketomi": _3, "tarama": _3, "tokashiki": _3, "tomigusuku": _3, "tonaki": _3, "urasoe": _3, "uruma": _3, "yaese": _3, "yomitan": _3, "yonabaru": _3, "yonaguni": _3, "zamami": _3 }], "osaka": [1, { "abeno": _3, "chihayaakasaka": _3, "chuo": _3, "daito": _3, "fujiidera": _3, "habikino": _3, "hannan": _3, "higashiosaka": _3, "higashisumiyoshi": _3, "higashiyodogawa": _3, "hirakata": _3, "ibaraki": _3, "ikeda": _3, "izumi": _3, "izumiotsu": _3, "izumisano": _3, "kadoma": _3, "kaizuka": _3, "kanan": _3, "kashiwara": _3, "katano": _3, "kawachinagano": _3, "kishiwada": _3, "kita": _3, "kumatori": _3, "matsubara": _3, "minato": _3, "minoh": _3, "misaki": _3, "moriguchi": _3, "neyagawa": _3, "nishi": _3, "nose": _3, "osakasayama": _3, "sakai": _3, "sayama": _3, "sennan": _3, "settsu": _3, "shijonawate": _3, "shimamoto": _3, "suita": _3, "tadaoka": _3, "taishi": _3, "tajiri": _3, "takaishi": _3, "takatsuki": _3, "tondabayashi": _3, "toyonaka": _3, "toyono": _3, "yao": _3 }], "saga": [1, { "ariake": _3, "arita": _3, "fukudomi": _3, "genkai": _3, "hamatama": _3, "hizen": _3, "imari": _3, "kamimine": _3, "kanzaki": _3, "karatsu": _3, "kashima": _3, "kitagata": _3, "kitahata": _3, "kiyama": _3, "kouhoku": _3, "kyuragi": _3, "nishiarita": _3, "ogi": _3, "omachi": _3, "ouchi": _3, "saga": _3, "shiroishi": _3, "taku": _3, "tara": _3, "tosu": _3, "yoshinogari": _3 }], "saitama": [1, { "arakawa": _3, "asaka": _3, "chichibu": _3, "fujimi": _3, "fujimino": _3, "fukaya": _3, "hanno": _3, "hanyu": _3, "hasuda": _3, "hatogaya": _3, "hatoyama": _3, "hidaka": _3, "higashichichibu": _3, "higashimatsuyama": _3, "honjo": _3, "ina": _3, "iruma": _3, "iwatsuki": _3, "kamiizumi": _3, "kamikawa": _3, "kamisato": _3, "kasukabe": _3, "kawagoe": _3, "kawaguchi": _3, "kawajima": _3, "kazo": _3, "kitamoto": _3, "koshigaya": _3, "kounosu": _3, "kuki": _3, "kumagaya": _3, "matsubushi": _3, "minano": _3, "misato": _3, "miyashiro": _3, "miyoshi": _3, "moroyama": _3, "nagatoro": _3, "namegawa": _3, "niiza": _3, "ogano": _3, "ogawa": _3, "ogose": _3, "okegawa": _3, "omiya": _3, "otaki": _3, "ranzan": _3, "ryokami": _3, "saitama": _3, "sakado": _3, "satte": _3, "sayama": _3, "shiki": _3, "shiraoka": _3, "soka": _3, "sugito": _3, "toda": _3, "tokigawa": _3, "tokorozawa": _3, "tsurugashima": _3, "urawa": _3, "warabi": _3, "yashio": _3, "yokoze": _3, "yono": _3, "yorii": _3, "yoshida": _3, "yoshikawa": _3, "yoshimi": _3 }], "shiga": [1, { "aisho": _3, "gamo": _3, "higashiomi": _3, "hikone": _3, "koka": _3, "konan": _3, "kosei": _3, "koto": _3, "kusatsu": _3, "maibara": _3, "moriyama": _3, "nagahama": _3, "nishiazai": _3, "notogawa": _3, "omihachiman": _3, "otsu": _3, "ritto": _3, "ryuoh": _3, "takashima": _3, "takatsuki": _3, "torahime": _3, "toyosato": _3, "yasu": _3 }], "shimane": [1, { "akagi": _3, "ama": _3, "gotsu": _3, "hamada": _3, "higashiizumo": _3, "hikawa": _3, "hikimi": _3, "izumo": _3, "kakinoki": _3, "masuda": _3, "matsue": _3, "misato": _3, "nishinoshima": _3, "ohda": _3, "okinoshima": _3, "okuizumo": _3, "shimane": _3, "tamayu": _3, "tsuwano": _3, "unnan": _3, "yakumo": _3, "yasugi": _3, "yatsuka": _3 }], "shizuoka": [1, { "arai": _3, "atami": _3, "fuji": _3, "fujieda": _3, "fujikawa": _3, "fujinomiya": _3, "fukuroi": _3, "gotemba": _3, "haibara": _3, "hamamatsu": _3, "higashiizu": _3, "ito": _3, "iwata": _3, "izu": _3, "izunokuni": _3, "kakegawa": _3, "kannami": _3, "kawanehon": _3, "kawazu": _3, "kikugawa": _3, "kosai": _3, "makinohara": _3, "matsuzaki": _3, "minamiizu": _3, "mishima": _3, "morimachi": _3, "nishiizu": _3, "numazu": _3, "omaezaki": _3, "shimada": _3, "shimizu": _3, "shimoda": _3, "shizuoka": _3, "susono": _3, "yaizu": _3, "yoshida": _3 }], "tochigi": [1, { "ashikaga": _3, "bato": _3, "haga": _3, "ichikai": _3, "iwafune": _3, "kaminokawa": _3, "kanuma": _3, "karasuyama": _3, "kuroiso": _3, "mashiko": _3, "mibu": _3, "moka": _3, "motegi": _3, "nasu": _3, "nasushiobara": _3, "nikko": _3, "nishikata": _3, "nogi": _3, "ohira": _3, "ohtawara": _3, "oyama": _3, "sakura": _3, "sano": _3, "shimotsuke": _3, "shioya": _3, "takanezawa": _3, "tochigi": _3, "tsuga": _3, "ujiie": _3, "utsunomiya": _3, "yaita": _3 }], "tokushima": [1, { "aizumi": _3, "anan": _3, "ichiba": _3, "itano": _3, "kainan": _3, "komatsushima": _3, "matsushige": _3, "mima": _3, "minami": _3, "miyoshi": _3, "mugi": _3, "nakagawa": _3, "naruto": _3, "sanagochi": _3, "shishikui": _3, "tokushima": _3, "wajiki": _3 }], "tokyo": [1, { "adachi": _3, "akiruno": _3, "akishima": _3, "aogashima": _3, "arakawa": _3, "bunkyo": _3, "chiyoda": _3, "chofu": _3, "chuo": _3, "edogawa": _3, "fuchu": _3, "fussa": _3, "hachijo": _3, "hachioji": _3, "hamura": _3, "higashikurume": _3, "higashimurayama": _3, "higashiyamato": _3, "hino": _3, "hinode": _3, "hinohara": _3, "inagi": _3, "itabashi": _3, "katsushika": _3, "kita": _3, "kiyose": _3, "kodaira": _3, "koganei": _3, "kokubunji": _3, "komae": _3, "koto": _3, "kouzushima": _3, "kunitachi": _3, "machida": _3, "meguro": _3, "minato": _3, "mitaka": _3, "mizuho": _3, "musashimurayama": _3, "musashino": _3, "nakano": _3, "nerima": _3, "ogasawara": _3, "okutama": _3, "ome": _3, "oshima": _3, "ota": _3, "setagaya": _3, "shibuya": _3, "shinagawa": _3, "shinjuku": _3, "suginami": _3, "sumida": _3, "tachikawa": _3, "taito": _3, "tama": _3, "toshima": _3 }], "tottori": [1, { "chizu": _3, "hino": _3, "kawahara": _3, "koge": _3, "kotoura": _3, "misasa": _3, "nanbu": _3, "nichinan": _3, "sakaiminato": _3, "tottori": _3, "wakasa": _3, "yazu": _3, "yonago": _3 }], "toyama": [1, { "asahi": _3, "fuchu": _3, "fukumitsu": _3, "funahashi": _3, "himi": _3, "imizu": _3, "inami": _3, "johana": _3, "kamiichi": _3, "kurobe": _3, "nakaniikawa": _3, "namerikawa": _3, "nanto": _3, "nyuzen": _3, "oyabe": _3, "taira": _3, "takaoka": _3, "tateyama": _3, "toga": _3, "tonami": _3, "toyama": _3, "unazuki": _3, "uozu": _3, "yamada": _3 }], "wakayama": [1, { "arida": _3, "aridagawa": _3, "gobo": _3, "hashimoto": _3, "hidaka": _3, "hirogawa": _3, "inami": _3, "iwade": _3, "kainan": _3, "kamitonda": _3, "katsuragi": _3, "kimino": _3, "kinokawa": _3, "kitayama": _3, "koya": _3, "koza": _3, "kozagawa": _3, "kudoyama": _3, "kushimoto": _3, "mihama": _3, "misato": _3, "nachikatsuura": _3, "shingu": _3, "shirahama": _3, "taiji": _3, "tanabe": _3, "wakayama": _3, "yuasa": _3, "yura": _3 }], "yamagata": [1, { "asahi": _3, "funagata": _3, "higashine": _3, "iide": _3, "kahoku": _3, "kaminoyama": _3, "kaneyama": _3, "kawanishi": _3, "mamurogawa": _3, "mikawa": _3, "murayama": _3, "nagai": _3, "nakayama": _3, "nanyo": _3, "nishikawa": _3, "obanazawa": _3, "oe": _3, "oguni": _3, "ohkura": _3, "oishida": _3, "sagae": _3, "sakata": _3, "sakegawa": _3, "shinjo": _3, "shirataka": _3, "shonai": _3, "takahata": _3, "tendo": _3, "tozawa": _3, "tsuruoka": _3, "yamagata": _3, "yamanobe": _3, "yonezawa": _3, "yuza": _3 }], "yamaguchi": [1, { "abu": _3, "hagi": _3, "hikari": _3, "hofu": _3, "iwakuni": _3, "kudamatsu": _3, "mitou": _3, "nagato": _3, "oshima": _3, "shimonoseki": _3, "shunan": _3, "tabuse": _3, "tokuyama": _3, "toyota": _3, "ube": _3, "yuu": _3 }], "yamanashi": [1, { "chuo": _3, "doshi": _3, "fuefuki": _3, "fujikawa": _3, "fujikawaguchiko": _3, "fujiyoshida": _3, "hayakawa": _3, "hokuto": _3, "ichikawamisato": _3, "kai": _3, "kofu": _3, "koshu": _3, "kosuge": _3, "minami-alps": _3, "minobu": _3, "nakamichi": _3, "nanbu": _3, "narusawa": _3, "nirasaki": _3, "nishikatsura": _3, "oshino": _3, "otsuki": _3, "showa": _3, "tabayama": _3, "tsuru": _3, "uenohara": _3, "yamanakako": _3, "yamanashi": _3 }], "xn--ehqz56n": _3, "\u4E09\u91CD": _3, "xn--1lqs03n": _3, "\u4EAC\u90FD": _3, "xn--qqqt11m": _3, "\u4F50\u8CC0": _3, "xn--f6qx53a": _3, "\u5175\u5EAB": _3, "xn--djrs72d6uy": _3, "\u5317\u6D77\u9053": _3, "xn--mkru45i": _3, "\u5343\u8449": _3, "xn--0trq7p7nn": _3, "\u548C\u6B4C\u5C71": _3, "xn--5js045d": _3, "\u57FC\u7389": _3, "xn--kbrq7o": _3, "\u5927\u5206": _3, "xn--pssu33l": _3, "\u5927\u962A": _3, "xn--ntsq17g": _3, "\u5948\u826F": _3, "xn--uisz3g": _3, "\u5BAE\u57CE": _3, "xn--6btw5a": _3, "\u5BAE\u5D0E": _3, "xn--1ctwo": _3, "\u5BCC\u5C71": _3, "xn--6orx2r": _3, "\u5C71\u53E3": _3, "xn--rht61e": _3, "\u5C71\u5F62": _3, "xn--rht27z": _3, "\u5C71\u68A8": _3, "xn--nit225k": _3, "\u5C90\u961C": _3, "xn--rht3d": _3, "\u5CA1\u5C71": _3, "xn--djty4k": _3, "\u5CA9\u624B": _3, "xn--klty5x": _3, "\u5CF6\u6839": _3, "xn--kltx9a": _3, "\u5E83\u5CF6": _3, "xn--kltp7d": _3, "\u5FB3\u5CF6": _3, "xn--c3s14m": _3, "\u611B\u5A9B": _3, "xn--vgu402c": _3, "\u611B\u77E5": _3, "xn--efvn9s": _3, "\u65B0\u6F5F": _3, "xn--1lqs71d": _3, "\u6771\u4EAC": _3, "xn--4pvxs": _3, "\u6803\u6728": _3, "xn--uuwu58a": _3, "\u6C96\u7E04": _3, "xn--zbx025d": _3, "\u6ECB\u8CC0": _3, "xn--8pvr4u": _3, "\u718A\u672C": _3, "xn--5rtp49c": _3, "\u77F3\u5DDD": _3, "xn--ntso0iqx3a": _3, "\u795E\u5948\u5DDD": _3, "xn--elqq16h": _3, "\u798F\u4E95": _3, "xn--4it168d": _3, "\u798F\u5CA1": _3, "xn--klt787d": _3, "\u798F\u5CF6": _3, "xn--rny31h": _3, "\u79CB\u7530": _3, "xn--7t0a264c": _3, "\u7FA4\u99AC": _3, "xn--uist22h": _3, "\u8328\u57CE": _3, "xn--8ltr62k": _3, "\u9577\u5D0E": _3, "xn--2m4a15e": _3, "\u9577\u91CE": _3, "xn--32vp30h": _3, "\u9752\u68EE": _3, "xn--4it797k": _3, "\u9759\u5CA1": _3, "xn--5rtq34k": _3, "\u9999\u5DDD": _3, "xn--k7yn95e": _3, "\u9AD8\u77E5": _3, "xn--tor131o": _3, "\u9CE5\u53D6": _3, "xn--d5qv7z876c": _3, "\u9E7F\u5150\u5CF6": _3, "kawasaki": _18, "kitakyushu": _18, "kobe": _18, "nagoya": _18, "sapporo": _18, "sendai": _18, "yokohama": _18, "buyshop": _4, "fashionstore": _4, "handcrafted": _4, "kawaiishop": _4, "supersale": _4, "theshop": _4, "0am": _4, "0g0": _4, "0j0": _4, "0t0": _4, "mydns": _4, "pgw": _4, "wjg": _4, "usercontent": _4, "angry": _4, "babyblue": _4, "babymilk": _4, "backdrop": _4, "bambina": _4, "bitter": _4, "blush": _4, "boo": _4, "boy": _4, "boyfriend": _4, "but": _4, "candypop": _4, "capoo": _4, "catfood": _4, "cheap": _4, "chicappa": _4, "chillout": _4, "chips": _4, "chowder": _4, "chu": _4, "ciao": _4, "cocotte": _4, "coolblog": _4, "cranky": _4, "cutegirl": _4, "daa": _4, "deca": _4, "deci": _4, "digick": _4, "egoism": _4, "fakefur": _4, "fem": _4, "flier": _4, "floppy": _4, "fool": _4, "frenchkiss": _4, "girlfriend": _4, "girly": _4, "gloomy": _4, "gonna": _4, "greater": _4, "hacca": _4, "heavy": _4, "her": _4, "hiho": _4, "hippy": _4, "holy": _4, "hungry": _4, "icurus": _4, "itigo": _4, "jellybean": _4, "kikirara": _4, "kill": _4, "kilo": _4, "kuron": _4, "littlestar": _4, "lolipopmc": _4, "lolitapunk": _4, "lomo": _4, "lovepop": _4, "lovesick": _4, "main": _4, "mods": _4, "mond": _4, "mongolian": _4, "moo": _4, "namaste": _4, "nikita": _4, "nobushi": _4, "noor": _4, "oops": _4, "parallel": _4, "parasite": _4, "pecori": _4, "peewee": _4, "penne": _4, "pepper": _4, "perma": _4, "pigboat": _4, "pinoko": _4, "punyu": _4, "pupu": _4, "pussycat": _4, "pya": _4, "raindrop": _4, "readymade": _4, "sadist": _4, "schoolbus": _4, "secret": _4, "staba": _4, "stripper": _4, "sub": _4, "sunnyday": _4, "thick": _4, "tonkotsu": _4, "under": _4, "upper": _4, "velvet": _4, "verse": _4, "versus": _4, "vivian": _4, "watson": _4, "weblike": _4, "whitesnow": _4, "zombie": _4, "hateblo": _4, "hatenablog": _4, "hatenadiary": _4, "2-d": _4, "bona": _4, "crap": _4, "daynight": _4, "eek": _4, "flop": _4, "halfmoon": _4, "jeez": _4, "matrix": _4, "mimoza": _4, "netgamers": _4, "nyanta": _4, "o0o0": _4, "rdy": _4, "rgr": _4, "rulez": _4, "sakurastorage": [0, { "isk01": _55, "isk02": _55 }], "saloon": _4, "sblo": _4, "skr": _4, "tank": _4, "uh-oh": _4, "undo": _4, "webaccel": [0, { "rs": _4, "user": _4 }], "websozai": _4, "xii": _4 }], "ke": [1, { "ac": _3, "co": _3, "go": _3, "info": _3, "me": _3, "mobi": _3, "ne": _3, "or": _3, "sc": _3 }], "kg": [1, { "com": _3, "edu": _3, "gov": _3, "mil": _3, "net": _3, "org": _3, "us": _4 }], "kh": _18, "ki": _56, "km": [1, { "ass": _3, "com": _3, "edu": _3, "gov": _3, "mil": _3, "nom": _3, "org": _3, "prd": _3, "tm": _3, "asso": _3, "coop": _3, "gouv": _3, "medecin": _3, "notaires": _3, "pharmaciens": _3, "presse": _3, "veterinaire": _3 }], "kn": [1, { "edu": _3, "gov": _3, "net": _3, "org": _3 }], "kp": [1, { "com": _3, "edu": _3, "gov": _3, "org": _3, "rep": _3, "tra": _3 }], "kr": [1, { "ac": _3, "ai": _3, "co": _3, "es": _3, "go": _3, "hs": _3, "io": _3, "it": _3, "kg": _3, "me": _3, "mil": _3, "ms": _3, "ne": _3, "or": _3, "pe": _3, "re": _3, "sc": _3, "busan": _3, "chungbuk": _3, "chungnam": _3, "daegu": _3, "daejeon": _3, "gangwon": _3, "gwangju": _3, "gyeongbuk": _3, "gyeonggi": _3, "gyeongnam": _3, "incheon": _3, "jeju": _3, "jeonbuk": _3, "jeonnam": _3, "seoul": _3, "ulsan": _3, "c01": _4, "eliv-dns": _4 }], "kw": [1, { "com": _3, "edu": _3, "emb": _3, "gov": _3, "ind": _3, "net": _3, "org": _3 }], "ky": _45, "kz": [1, { "com": _3, "edu": _3, "gov": _3, "mil": _3, "net": _3, "org": _3, "jcloud": _4 }], "la": [1, { "com": _3, "edu": _3, "gov": _3, "info": _3, "int": _3, "net": _3, "org": _3, "per": _3, "bnr": _4 }], "lb": _5, "lc": [1, { "co": _3, "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3, "oy": _4 }], "li": _3, "lk": [1, { "ac": _3, "assn": _3, "com": _3, "edu": _3, "gov": _3, "grp": _3, "hotel": _3, "int": _3, "ltd": _3, "net": _3, "ngo": _3, "org": _3, "sch": _3, "soc": _3, "web": _3 }], "lr": _5, "ls": [1, { "ac": _3, "biz": _3, "co": _3, "edu": _3, "gov": _3, "info": _3, "net": _3, "org": _3, "sc": _3 }], "lt": _11, "lu": [1, { "123website": _4 }], "lv": [1, { "asn": _3, "com": _3, "conf": _3, "edu": _3, "gov": _3, "id": _3, "mil": _3, "net": _3, "org": _3 }], "ly": [1, { "com": _3, "edu": _3, "gov": _3, "id": _3, "med": _3, "net": _3, "org": _3, "plc": _3, "sch": _3 }], "ma": [1, { "ac": _3, "co": _3, "gov": _3, "net": _3, "org": _3, "press": _3 }], "mc": [1, { "asso": _3, "tm": _3 }], "md": [1, { "ir": _4 }], "me": [1, { "ac": _3, "co": _3, "edu": _3, "gov": _3, "its": _3, "net": _3, "org": _3, "priv": _3, "c66": _4, "craft": _4, "edgestack": _4, "filegear": _4, "glitch": _4, "filegear-sg": _4, "lohmus": _4, "barsy": _4, "mcdir": _4, "brasilia": _4, "ddns": _4, "dnsfor": _4, "hopto": _4, "loginto": _4, "noip": _4, "webhop": _4, "soundcast": _4, "tcp4": _4, "vp4": _4, "diskstation": _4, "dscloud": _4, "i234": _4, "myds": _4, "synology": _4, "transip": _44, "nohost": _4 }], "mg": [1, { "co": _3, "com": _3, "edu": _3, "gov": _3, "mil": _3, "nom": _3, "org": _3, "prd": _3 }], "mh": _3, "mil": _3, "mk": [1, { "com": _3, "edu": _3, "gov": _3, "inf": _3, "name": _3, "net": _3, "org": _3 }], "ml": [1, { "ac": _3, "art": _3, "asso": _3, "com": _3, "edu": _3, "gouv": _3, "gov": _3, "info": _3, "inst": _3, "net": _3, "org": _3, "pr": _3, "presse": _3 }], "mm": _18, "mn": [1, { "edu": _3, "gov": _3, "org": _3, "nyc": _4 }], "mo": _5, "mobi": [1, { "barsy": _4, "dscloud": _4 }], "mp": [1, { "ju": _4 }], "mq": _3, "mr": _11, "ms": [1, { "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3, "minisite": _4 }], "mt": _45, "mu": [1, { "ac": _3, "co": _3, "com": _3, "gov": _3, "net": _3, "or": _3, "org": _3 }], "museum": _3, "mv": [1, { "aero": _3, "biz": _3, "com": _3, "coop": _3, "edu": _3, "gov": _3, "info": _3, "int": _3, "mil": _3, "museum": _3, "name": _3, "net": _3, "org": _3, "pro": _3 }], "mw": [1, { "ac": _3, "biz": _3, "co": _3, "com": _3, "coop": _3, "edu": _3, "gov": _3, "int": _3, "net": _3, "org": _3 }], "mx": [1, { "com": _3, "edu": _3, "gob": _3, "net": _3, "org": _3 }], "my": [1, { "biz": _3, "com": _3, "edu": _3, "gov": _3, "mil": _3, "name": _3, "net": _3, "org": _3 }], "mz": [1, { "ac": _3, "adv": _3, "co": _3, "edu": _3, "gov": _3, "mil": _3, "net": _3, "org": _3 }], "na": [1, { "alt": _3, "co": _3, "com": _3, "gov": _3, "net": _3, "org": _3 }], "name": [1, { "her": _59, "his": _59 }], "nc": [1, { "asso": _3, "nom": _3 }], "ne": _3, "net": [1, { "adobeaemcloud": _4, "adobeio-static": _4, "adobeioruntime": _4, "akadns": _4, "akamai": _4, "akamai-staging": _4, "akamaiedge": _4, "akamaiedge-staging": _4, "akamaihd": _4, "akamaihd-staging": _4, "akamaiorigin": _4, "akamaiorigin-staging": _4, "akamaized": _4, "akamaized-staging": _4, "edgekey": _4, "edgekey-staging": _4, "edgesuite": _4, "edgesuite-staging": _4, "alwaysdata": _4, "myamaze": _4, "cloudfront": _4, "appudo": _4, "atlassian-dev": [0, { "prod": _52 }], "myfritz": _4, "onavstack": _4, "shopselect": _4, "blackbaudcdn": _4, "boomla": _4, "bplaced": _4, "square7": _4, "cdn77": [0, { "r": _4 }], "cdn77-ssl": _4, "gb": _4, "hu": _4, "jp": _4, "se": _4, "uk": _4, "clickrising": _4, "ddns-ip": _4, "dns-cloud": _4, "dns-dynamic": _4, "cloudaccess": _4, "cloudflare": [2, { "cdn": _4 }], "cloudflareanycast": _52, "cloudflarecn": _52, "cloudflareglobal": _52, "ctfcloud": _4, "feste-ip": _4, "knx-server": _4, "static-access": _4, "cryptonomic": _7, "dattolocal": _4, "mydatto": _4, "debian": _4, "definima": _4, "deno": _4, "at-band-camp": _4, "blogdns": _4, "broke-it": _4, "buyshouses": _4, "dnsalias": _4, "dnsdojo": _4, "does-it": _4, "dontexist": _4, "dynalias": _4, "dynathome": _4, "endofinternet": _4, "from-az": _4, "from-co": _4, "from-la": _4, "from-ny": _4, "gets-it": _4, "ham-radio-op": _4, "homeftp": _4, "homeip": _4, "homelinux": _4, "homeunix": _4, "in-the-band": _4, "is-a-chef": _4, "is-a-geek": _4, "isa-geek": _4, "kicks-ass": _4, "office-on-the": _4, "podzone": _4, "scrapper-site": _4, "selfip": _4, "sells-it": _4, "servebbs": _4, "serveftp": _4, "thruhere": _4, "webhop": _4, "casacam": _4, "dynu": _4, "dynv6": _4, "twmail": _4, "ru": _4, "channelsdvr": [2, { "u": _4 }], "fastly": [0, { "freetls": _4, "map": _4, "prod": [0, { "a": _4, "global": _4 }], "ssl": [0, { "a": _4, "b": _4, "global": _4 }] }], "fastlylb": [2, { "map": _4 }], "edgeapp": _4, "keyword-on": _4, "live-on": _4, "server-on": _4, "cdn-edges": _4, "heteml": _4, "cloudfunctions": _4, "grafana-dev": _4, "iobb": _4, "moonscale": _4, "in-dsl": _4, "in-vpn": _4, "oninferno": _4, "botdash": _4, "apps-1and1": _4, "ipifony": _4, "cloudjiffy": [2, { "fra1-de": _4, "west1-us": _4 }], "elastx": [0, { "jls-sto1": _4, "jls-sto2": _4, "jls-sto3": _4 }], "massivegrid": [0, { "paas": [0, { "fr-1": _4, "lon-1": _4, "lon-2": _4, "ny-1": _4, "ny-2": _4, "sg-1": _4 }] }], "saveincloud": [0, { "jelastic": _4, "nordeste-idc": _4 }], "scaleforce": _46, "kinghost": _4, "uni5": _4, "krellian": _4, "ggff": _4, "localcert": _4, "localhostcert": _4, "localto": _7, "barsy": _4, "memset": _4, "azure-api": _4, "azure-mobile": _4, "azureedge": _4, "azurefd": _4, "azurestaticapps": [2, { "1": _4, "2": _4, "3": _4, "4": _4, "5": _4, "6": _4, "7": _4, "centralus": _4, "eastasia": _4, "eastus2": _4, "westeurope": _4, "westus2": _4 }], "azurewebsites": _4, "cloudapp": _4, "trafficmanager": _4, "windows": [0, { "core": [0, { "blob": _4 }], "servicebus": _4 }], "mynetname": [0, { "sn": _4 }], "routingthecloud": _4, "bounceme": _4, "ddns": _4, "eating-organic": _4, "mydissent": _4, "myeffect": _4, "mymediapc": _4, "mypsx": _4, "mysecuritycamera": _4, "nhlfan": _4, "no-ip": _4, "pgafan": _4, "privatizehealthinsurance": _4, "redirectme": _4, "serveblog": _4, "serveminecraft": _4, "sytes": _4, "dnsup": _4, "hicam": _4, "now-dns": _4, "ownip": _4, "vpndns": _4, "cloudycluster": _4, "ovh": [0, { "hosting": _7, "webpaas": _7 }], "rackmaze": _4, "myradweb": _4, "in": _4, "subsc-pay": _4, "squares": _4, "schokokeks": _4, "firewall-gateway": _4, "seidat": _4, "senseering": _4, "siteleaf": _4, "mafelo": _4, "myspreadshop": _4, "vps-host": [2, { "jelastic": [0, { "atl": _4, "njs": _4, "ric": _4 }] }], "srcf": [0, { "soc": _4, "user": _4 }], "supabase": _4, "dsmynas": _4, "familyds": _4, "ts": [2, { "c": _7 }], "torproject": [2, { "pages": _4 }], "vusercontent": _4, "reserve-online": _4, "community-pro": _4, "meinforum": _4, "yandexcloud": [2, { "storage": _4, "website": _4 }], "za": _4 }], "nf": [1, { "arts": _3, "com": _3, "firm": _3, "info": _3, "net": _3, "other": _3, "per": _3, "rec": _3, "store": _3, "web": _3 }], "ng": [1, { "com": _3, "edu": _3, "gov": _3, "i": _3, "mil": _3, "mobi": _3, "name": _3, "net": _3, "org": _3, "sch": _3, "biz": [2, { "co": _4, "dl": _4, "go": _4, "lg": _4, "on": _4 }], "col": _4, "firm": _4, "gen": _4, "ltd": _4, "ngo": _4, "plc": _4 }], "ni": [1, { "ac": _3, "biz": _3, "co": _3, "com": _3, "edu": _3, "gob": _3, "in": _3, "info": _3, "int": _3, "mil": _3, "net": _3, "nom": _3, "org": _3, "web": _3 }], "nl": [1, { "co": _4, "hosting-cluster": _4, "gov": _4, "khplay": _4, "123website": _4, "myspreadshop": _4, "transurl": _7, "cistron": _4, "demon": _4 }], "no": [1, { "fhs": _3, "folkebibl": _3, "fylkesbibl": _3, "idrett": _3, "museum": _3, "priv": _3, "vgs": _3, "dep": _3, "herad": _3, "kommune": _3, "mil": _3, "stat": _3, "aa": _60, "ah": _60, "bu": _60, "fm": _60, "hl": _60, "hm": _60, "jan-mayen": _60, "mr": _60, "nl": _60, "nt": _60, "of": _60, "ol": _60, "oslo": _60, "rl": _60, "sf": _60, "st": _60, "svalbard": _60, "tm": _60, "tr": _60, "va": _60, "vf": _60, "akrehamn": _3, "xn--krehamn-dxa": _3, "\xE5krehamn": _3, "algard": _3, "xn--lgrd-poac": _3, "\xE5lg\xE5rd": _3, "arna": _3, "bronnoysund": _3, "xn--brnnysund-m8ac": _3, "br\xF8nn\xF8ysund": _3, "brumunddal": _3, "bryne": _3, "drobak": _3, "xn--drbak-wua": _3, "dr\xF8bak": _3, "egersund": _3, "fetsund": _3, "floro": _3, "xn--flor-jra": _3, "flor\xF8": _3, "fredrikstad": _3, "hokksund": _3, "honefoss": _3, "xn--hnefoss-q1a": _3, "h\xF8nefoss": _3, "jessheim": _3, "jorpeland": _3, "xn--jrpeland-54a": _3, "j\xF8rpeland": _3, "kirkenes": _3, "kopervik": _3, "krokstadelva": _3, "langevag": _3, "xn--langevg-jxa": _3, "langev\xE5g": _3, "leirvik": _3, "mjondalen": _3, "xn--mjndalen-64a": _3, "mj\xF8ndalen": _3, "mo-i-rana": _3, "mosjoen": _3, "xn--mosjen-eya": _3, "mosj\xF8en": _3, "nesoddtangen": _3, "orkanger": _3, "osoyro": _3, "xn--osyro-wua": _3, "os\xF8yro": _3, "raholt": _3, "xn--rholt-mra": _3, "r\xE5holt": _3, "sandnessjoen": _3, "xn--sandnessjen-ogb": _3, "sandnessj\xF8en": _3, "skedsmokorset": _3, "slattum": _3, "spjelkavik": _3, "stathelle": _3, "stavern": _3, "stjordalshalsen": _3, "xn--stjrdalshalsen-sqb": _3, "stj\xF8rdalshalsen": _3, "tananger": _3, "tranby": _3, "vossevangen": _3, "aarborte": _3, "aejrie": _3, "afjord": _3, "xn--fjord-lra": _3, "\xE5fjord": _3, "agdenes": _3, "akershus": _61, "aknoluokta": _3, "xn--koluokta-7ya57h": _3, "\xE1k\u014Boluokta": _3, "al": _3, "xn--l-1fa": _3, "\xE5l": _3, "alaheadju": _3, "xn--laheadju-7ya": _3, "\xE1laheadju": _3, "alesund": _3, "xn--lesund-hua": _3, "\xE5lesund": _3, "alstahaug": _3, "alta": _3, "xn--lt-liac": _3, "\xE1lt\xE1": _3, "alvdal": _3, "amli": _3, "xn--mli-tla": _3, "\xE5mli": _3, "amot": _3, "xn--mot-tla": _3, "\xE5mot": _3, "andasuolo": _3, "andebu": _3, "andoy": _3, "xn--andy-ira": _3, "and\xF8y": _3, "ardal": _3, "xn--rdal-poa": _3, "\xE5rdal": _3, "aremark": _3, "arendal": _3, "xn--s-1fa": _3, "\xE5s": _3, "aseral": _3, "xn--seral-lra": _3, "\xE5seral": _3, "asker": _3, "askim": _3, "askoy": _3, "xn--asky-ira": _3, "ask\xF8y": _3, "askvoll": _3, "asnes": _3, "xn--snes-poa": _3, "\xE5snes": _3, "audnedaln": _3, "aukra": _3, "aure": _3, "aurland": _3, "aurskog-holand": _3, "xn--aurskog-hland-jnb": _3, "aurskog-h\xF8land": _3, "austevoll": _3, "austrheim": _3, "averoy": _3, "xn--avery-yua": _3, "aver\xF8y": _3, "badaddja": _3, "xn--bdddj-mrabd": _3, "b\xE5d\xE5ddj\xE5": _3, "xn--brum-voa": _3, "b\xE6rum": _3, "bahcavuotna": _3, "xn--bhcavuotna-s4a": _3, "b\xE1hcavuotna": _3, "bahccavuotna": _3, "xn--bhccavuotna-k7a": _3, "b\xE1hccavuotna": _3, "baidar": _3, "xn--bidr-5nac": _3, "b\xE1id\xE1r": _3, "bajddar": _3, "xn--bjddar-pta": _3, "b\xE1jddar": _3, "balat": _3, "xn--blt-elab": _3, "b\xE1l\xE1t": _3, "balestrand": _3, "ballangen": _3, "balsfjord": _3, "bamble": _3, "bardu": _3, "barum": _3, "batsfjord": _3, "xn--btsfjord-9za": _3, "b\xE5tsfjord": _3, "bearalvahki": _3, "xn--bearalvhki-y4a": _3, "bearalv\xE1hki": _3, "beardu": _3, "beiarn": _3, "berg": _3, "bergen": _3, "berlevag": _3, "xn--berlevg-jxa": _3, "berlev\xE5g": _3, "bievat": _3, "xn--bievt-0qa": _3, "biev\xE1t": _3, "bindal": _3, "birkenes": _3, "bjarkoy": _3, "xn--bjarky-fya": _3, "bjark\xF8y": _3, "bjerkreim": _3, "bjugn": _3, "bodo": _3, "xn--bod-2na": _3, "bod\xF8": _3, "bokn": _3, "bomlo": _3, "xn--bmlo-gra": _3, "b\xF8mlo": _3, "bremanger": _3, "bronnoy": _3, "xn--brnny-wuac": _3, "br\xF8nn\xF8y": _3, "budejju": _3, "buskerud": _61, "bygland": _3, "bykle": _3, "cahcesuolo": _3, "xn--hcesuolo-7ya35b": _3, "\u010D\xE1hcesuolo": _3, "davvenjarga": _3, "xn--davvenjrga-y4a": _3, "davvenj\xE1rga": _3, "davvesiida": _3, "deatnu": _3, "dielddanuorri": _3, "divtasvuodna": _3, "divttasvuotna": _3, "donna": _3, "xn--dnna-gra": _3, "d\xF8nna": _3, "dovre": _3, "drammen": _3, "drangedal": _3, "dyroy": _3, "xn--dyry-ira": _3, "dyr\xF8y": _3, "eid": _3, "eidfjord": _3, "eidsberg": _3, "eidskog": _3, "eidsvoll": _3, "eigersund": _3, "elverum": _3, "enebakk": _3, "engerdal": _3, "etne": _3, "etnedal": _3, "evenassi": _3, "xn--eveni-0qa01ga": _3, "even\xE1\u0161\u0161i": _3, "evenes": _3, "evje-og-hornnes": _3, "farsund": _3, "fauske": _3, "fedje": _3, "fet": _3, "finnoy": _3, "xn--finny-yua": _3, "finn\xF8y": _3, "fitjar": _3, "fjaler": _3, "fjell": _3, "fla": _3, "xn--fl-zia": _3, "fl\xE5": _3, "flakstad": _3, "flatanger": _3, "flekkefjord": _3, "flesberg": _3, "flora": _3, "folldal": _3, "forde": _3, "xn--frde-gra": _3, "f\xF8rde": _3, "forsand": _3, "fosnes": _3, "xn--frna-woa": _3, "fr\xE6na": _3, "frana": _3, "frei": _3, "frogn": _3, "froland": _3, "frosta": _3, "froya": _3, "xn--frya-hra": _3, "fr\xF8ya": _3, "fuoisku": _3, "fuossko": _3, "fusa": _3, "fyresdal": _3, "gaivuotna": _3, "xn--givuotna-8ya": _3, "g\xE1ivuotna": _3, "galsa": _3, "xn--gls-elac": _3, "g\xE1ls\xE1": _3, "gamvik": _3, "gangaviika": _3, "xn--ggaviika-8ya47h": _3, "g\xE1\u014Bgaviika": _3, "gaular": _3, "gausdal": _3, "giehtavuoatna": _3, "gildeskal": _3, "xn--gildeskl-g0a": _3, "gildesk\xE5l": _3, "giske": _3, "gjemnes": _3, "gjerdrum": _3, "gjerstad": _3, "gjesdal": _3, "gjovik": _3, "xn--gjvik-wua": _3, "gj\xF8vik": _3, "gloppen": _3, "gol": _3, "gran": _3, "grane": _3, "granvin": _3, "gratangen": _3, "grimstad": _3, "grong": _3, "grue": _3, "gulen": _3, "guovdageaidnu": _3, "ha": _3, "xn--h-2fa": _3, "h\xE5": _3, "habmer": _3, "xn--hbmer-xqa": _3, "h\xE1bmer": _3, "hadsel": _3, "xn--hgebostad-g3a": _3, "h\xE6gebostad": _3, "hagebostad": _3, "halden": _3, "halsa": _3, "hamar": _3, "hamaroy": _3, "hammarfeasta": _3, "xn--hmmrfeasta-s4ac": _3, "h\xE1mm\xE1rfeasta": _3, "hammerfest": _3, "hapmir": _3, "xn--hpmir-xqa": _3, "h\xE1pmir": _3, "haram": _3, "hareid": _3, "harstad": _3, "hasvik": _3, "hattfjelldal": _3, "haugesund": _3, "hedmark": [0, { "os": _3, "valer": _3, "xn--vler-qoa": _3, "v\xE5ler": _3 }], "hemne": _3, "hemnes": _3, "hemsedal": _3, "hitra": _3, "hjartdal": _3, "hjelmeland": _3, "hobol": _3, "xn--hobl-ira": _3, "hob\xF8l": _3, "hof": _3, "hol": _3, "hole": _3, "holmestrand": _3, "holtalen": _3, "xn--holtlen-hxa": _3, "holt\xE5len": _3, "hordaland": [0, { "os": _3 }], "hornindal": _3, "horten": _3, "hoyanger": _3, "xn--hyanger-q1a": _3, "h\xF8yanger": _3, "hoylandet": _3, "xn--hylandet-54a": _3, "h\xF8ylandet": _3, "hurdal": _3, "hurum": _3, "hvaler": _3, "hyllestad": _3, "ibestad": _3, "inderoy": _3, "xn--indery-fya": _3, "inder\xF8y": _3, "iveland": _3, "ivgu": _3, "jevnaker": _3, "jolster": _3, "xn--jlster-bya": _3, "j\xF8lster": _3, "jondal": _3, "kafjord": _3, "xn--kfjord-iua": _3, "k\xE5fjord": _3, "karasjohka": _3, "xn--krjohka-hwab49j": _3, "k\xE1r\xE1\u0161johka": _3, "karasjok": _3, "karlsoy": _3, "karmoy": _3, "xn--karmy-yua": _3, "karm\xF8y": _3, "kautokeino": _3, "klabu": _3, "xn--klbu-woa": _3, "kl\xE6bu": _3, "klepp": _3, "kongsberg": _3, "kongsvinger": _3, "kraanghke": _3, "xn--kranghke-b0a": _3, "kr\xE5anghke": _3, "kragero": _3, "xn--krager-gya": _3, "krager\xF8": _3, "kristiansand": _3, "kristiansund": _3, "krodsherad": _3, "xn--krdsherad-m8a": _3, "kr\xF8dsherad": _3, "xn--kvfjord-nxa": _3, "kv\xE6fjord": _3, "xn--kvnangen-k0a": _3, "kv\xE6nangen": _3, "kvafjord": _3, "kvalsund": _3, "kvam": _3, "kvanangen": _3, "kvinesdal": _3, "kvinnherad": _3, "kviteseid": _3, "kvitsoy": _3, "xn--kvitsy-fya": _3, "kvits\xF8y": _3, "laakesvuemie": _3, "xn--lrdal-sra": _3, "l\xE6rdal": _3, "lahppi": _3, "xn--lhppi-xqa": _3, "l\xE1hppi": _3, "lardal": _3, "larvik": _3, "lavagis": _3, "lavangen": _3, "leangaviika": _3, "xn--leagaviika-52b": _3, "lea\u014Bgaviika": _3, "lebesby": _3, "leikanger": _3, "leirfjord": _3, "leka": _3, "leksvik": _3, "lenvik": _3, "lerdal": _3, "lesja": _3, "levanger": _3, "lier": _3, "lierne": _3, "lillehammer": _3, "lillesand": _3, "lindas": _3, "xn--linds-pra": _3, "lind\xE5s": _3, "lindesnes": _3, "loabat": _3, "xn--loabt-0qa": _3, "loab\xE1t": _3, "lodingen": _3, "xn--ldingen-q1a": _3, "l\xF8dingen": _3, "lom": _3, "loppa": _3, "lorenskog": _3, "xn--lrenskog-54a": _3, "l\xF8renskog": _3, "loten": _3, "xn--lten-gra": _3, "l\xF8ten": _3, "lund": _3, "lunner": _3, "luroy": _3, "xn--lury-ira": _3, "lur\xF8y": _3, "luster": _3, "lyngdal": _3, "lyngen": _3, "malatvuopmi": _3, "xn--mlatvuopmi-s4a": _3, "m\xE1latvuopmi": _3, "malselv": _3, "xn--mlselv-iua": _3, "m\xE5lselv": _3, "malvik": _3, "mandal": _3, "marker": _3, "marnardal": _3, "masfjorden": _3, "masoy": _3, "xn--msy-ula0h": _3, "m\xE5s\xF8y": _3, "matta-varjjat": _3, "xn--mtta-vrjjat-k7af": _3, "m\xE1tta-v\xE1rjjat": _3, "meland": _3, "meldal": _3, "melhus": _3, "meloy": _3, "xn--mely-ira": _3, "mel\xF8y": _3, "meraker": _3, "xn--merker-kua": _3, "mer\xE5ker": _3, "midsund": _3, "midtre-gauldal": _3, "moareke": _3, "xn--moreke-jua": _3, "mo\xE5reke": _3, "modalen": _3, "modum": _3, "molde": _3, "more-og-romsdal": [0, { "heroy": _3, "sande": _3 }], "xn--mre-og-romsdal-qqb": [0, { "xn--hery-ira": _3, "sande": _3 }], "m\xF8re-og-romsdal": [0, { "her\xF8y": _3, "sande": _3 }], "moskenes": _3, "moss": _3, "mosvik": _3, "muosat": _3, "xn--muost-0qa": _3, "muos\xE1t": _3, "naamesjevuemie": _3, "xn--nmesjevuemie-tcba": _3, "n\xE5\xE5mesjevuemie": _3, "xn--nry-yla5g": _3, "n\xE6r\xF8y": _3, "namdalseid": _3, "namsos": _3, "namsskogan": _3, "nannestad": _3, "naroy": _3, "narviika": _3, "narvik": _3, "naustdal": _3, "navuotna": _3, "xn--nvuotna-hwa": _3, "n\xE1vuotna": _3, "nedre-eiker": _3, "nesna": _3, "nesodden": _3, "nesseby": _3, "nesset": _3, "nissedal": _3, "nittedal": _3, "nord-aurdal": _3, "nord-fron": _3, "nord-odal": _3, "norddal": _3, "nordkapp": _3, "nordland": [0, { "bo": _3, "xn--b-5ga": _3, "b\xF8": _3, "heroy": _3, "xn--hery-ira": _3, "her\xF8y": _3 }], "nordre-land": _3, "nordreisa": _3, "nore-og-uvdal": _3, "notodden": _3, "notteroy": _3, "xn--nttery-byae": _3, "n\xF8tter\xF8y": _3, "odda": _3, "oksnes": _3, "xn--ksnes-uua": _3, "\xF8ksnes": _3, "omasvuotna": _3, "oppdal": _3, "oppegard": _3, "xn--oppegrd-ixa": _3, "oppeg\xE5rd": _3, "orkdal": _3, "orland": _3, "xn--rland-uua": _3, "\xF8rland": _3, "orskog": _3, "xn--rskog-uua": _3, "\xF8rskog": _3, "orsta": _3, "xn--rsta-fra": _3, "\xF8rsta": _3, "osen": _3, "osteroy": _3, "xn--ostery-fya": _3, "oster\xF8y": _3, "ostfold": [0, { "valer": _3 }], "xn--stfold-9xa": [0, { "xn--vler-qoa": _3 }], "\xF8stfold": [0, { "v\xE5ler": _3 }], "ostre-toten": _3, "xn--stre-toten-zcb": _3, "\xF8stre-toten": _3, "overhalla": _3, "ovre-eiker": _3, "xn--vre-eiker-k8a": _3, "\xF8vre-eiker": _3, "oyer": _3, "xn--yer-zna": _3, "\xF8yer": _3, "oygarden": _3, "xn--ygarden-p1a": _3, "\xF8ygarden": _3, "oystre-slidre": _3, "xn--ystre-slidre-ujb": _3, "\xF8ystre-slidre": _3, "porsanger": _3, "porsangu": _3, "xn--porsgu-sta26f": _3, "pors\xE1\u014Bgu": _3, "porsgrunn": _3, "rade": _3, "xn--rde-ula": _3, "r\xE5de": _3, "radoy": _3, "xn--rady-ira": _3, "rad\xF8y": _3, "xn--rlingen-mxa": _3, "r\xE6lingen": _3, "rahkkeravju": _3, "xn--rhkkervju-01af": _3, "r\xE1hkker\xE1vju": _3, "raisa": _3, "xn--risa-5na": _3, "r\xE1isa": _3, "rakkestad": _3, "ralingen": _3, "rana": _3, "randaberg": _3, "rauma": _3, "rendalen": _3, "rennebu": _3, "rennesoy": _3, "xn--rennesy-v1a": _3, "rennes\xF8y": _3, "rindal": _3, "ringebu": _3, "ringerike": _3, "ringsaker": _3, "risor": _3, "xn--risr-ira": _3, "ris\xF8r": _3, "rissa": _3, "roan": _3, "rodoy": _3, "xn--rdy-0nab": _3, "r\xF8d\xF8y": _3, "rollag": _3, "romsa": _3, "romskog": _3, "xn--rmskog-bya": _3, "r\xF8mskog": _3, "roros": _3, "xn--rros-gra": _3, "r\xF8ros": _3, "rost": _3, "xn--rst-0na": _3, "r\xF8st": _3, "royken": _3, "xn--ryken-vua": _3, "r\xF8yken": _3, "royrvik": _3, "xn--ryrvik-bya": _3, "r\xF8yrvik": _3, "ruovat": _3, "rygge": _3, "salangen": _3, "salat": _3, "xn--slat-5na": _3, "s\xE1lat": _3, "xn--slt-elab": _3, "s\xE1l\xE1t": _3, "saltdal": _3, "samnanger": _3, "sandefjord": _3, "sandnes": _3, "sandoy": _3, "xn--sandy-yua": _3, "sand\xF8y": _3, "sarpsborg": _3, "sauda": _3, "sauherad": _3, "sel": _3, "selbu": _3, "selje": _3, "seljord": _3, "siellak": _3, "sigdal": _3, "siljan": _3, "sirdal": _3, "skanit": _3, "xn--sknit-yqa": _3, "sk\xE1nit": _3, "skanland": _3, "xn--sknland-fxa": _3, "sk\xE5nland": _3, "skaun": _3, "skedsmo": _3, "ski": _3, "skien": _3, "skierva": _3, "xn--skierv-uta": _3, "skierv\xE1": _3, "skiptvet": _3, "skjak": _3, "xn--skjk-soa": _3, "skj\xE5k": _3, "skjervoy": _3, "xn--skjervy-v1a": _3, "skjerv\xF8y": _3, "skodje": _3, "smola": _3, "xn--smla-hra": _3, "sm\xF8la": _3, "snaase": _3, "xn--snase-nra": _3, "sn\xE5ase": _3, "snasa": _3, "xn--snsa-roa": _3, "sn\xE5sa": _3, "snillfjord": _3, "snoasa": _3, "sogndal": _3, "sogne": _3, "xn--sgne-gra": _3, "s\xF8gne": _3, "sokndal": _3, "sola": _3, "solund": _3, "somna": _3, "xn--smna-gra": _3, "s\xF8mna": _3, "sondre-land": _3, "xn--sndre-land-0cb": _3, "s\xF8ndre-land": _3, "songdalen": _3, "sor-aurdal": _3, "xn--sr-aurdal-l8a": _3, "s\xF8r-aurdal": _3, "sor-fron": _3, "xn--sr-fron-q1a": _3, "s\xF8r-fron": _3, "sor-odal": _3, "xn--sr-odal-q1a": _3, "s\xF8r-odal": _3, "sor-varanger": _3, "xn--sr-varanger-ggb": _3, "s\xF8r-varanger": _3, "sorfold": _3, "xn--srfold-bya": _3, "s\xF8rfold": _3, "sorreisa": _3, "xn--srreisa-q1a": _3, "s\xF8rreisa": _3, "sortland": _3, "sorum": _3, "xn--srum-gra": _3, "s\xF8rum": _3, "spydeberg": _3, "stange": _3, "stavanger": _3, "steigen": _3, "steinkjer": _3, "stjordal": _3, "xn--stjrdal-s1a": _3, "stj\xF8rdal": _3, "stokke": _3, "stor-elvdal": _3, "stord": _3, "stordal": _3, "storfjord": _3, "strand": _3, "stranda": _3, "stryn": _3, "sula": _3, "suldal": _3, "sund": _3, "sunndal": _3, "surnadal": _3, "sveio": _3, "svelvik": _3, "sykkylven": _3, "tana": _3, "telemark": [0, { "bo": _3, "xn--b-5ga": _3, "b\xF8": _3 }], "time": _3, "tingvoll": _3, "tinn": _3, "tjeldsund": _3, "tjome": _3, "xn--tjme-hra": _3, "tj\xF8me": _3, "tokke": _3, "tolga": _3, "tonsberg": _3, "xn--tnsberg-q1a": _3, "t\xF8nsberg": _3, "torsken": _3, "xn--trna-woa": _3, "tr\xE6na": _3, "trana": _3, "tranoy": _3, "xn--trany-yua": _3, "tran\xF8y": _3, "troandin": _3, "trogstad": _3, "xn--trgstad-r1a": _3, "tr\xF8gstad": _3, "tromsa": _3, "tromso": _3, "xn--troms-zua": _3, "troms\xF8": _3, "trondheim": _3, "trysil": _3, "tvedestrand": _3, "tydal": _3, "tynset": _3, "tysfjord": _3, "tysnes": _3, "xn--tysvr-vra": _3, "tysv\xE6r": _3, "tysvar": _3, "ullensaker": _3, "ullensvang": _3, "ulvik": _3, "unjarga": _3, "xn--unjrga-rta": _3, "unj\xE1rga": _3, "utsira": _3, "vaapste": _3, "vadso": _3, "xn--vads-jra": _3, "vads\xF8": _3, "xn--vry-yla5g": _3, "v\xE6r\xF8y": _3, "vaga": _3, "xn--vg-yiab": _3, "v\xE5g\xE5": _3, "vagan": _3, "xn--vgan-qoa": _3, "v\xE5gan": _3, "vagsoy": _3, "xn--vgsy-qoa0j": _3, "v\xE5gs\xF8y": _3, "vaksdal": _3, "valle": _3, "vang": _3, "vanylven": _3, "vardo": _3, "xn--vard-jra": _3, "vard\xF8": _3, "varggat": _3, "xn--vrggt-xqad": _3, "v\xE1rgg\xE1t": _3, "varoy": _3, "vefsn": _3, "vega": _3, "vegarshei": _3, "xn--vegrshei-c0a": _3, "veg\xE5rshei": _3, "vennesla": _3, "verdal": _3, "verran": _3, "vestby": _3, "vestfold": [0, { "sande": _3 }], "vestnes": _3, "vestre-slidre": _3, "vestre-toten": _3, "vestvagoy": _3, "xn--vestvgy-ixa6o": _3, "vestv\xE5g\xF8y": _3, "vevelstad": _3, "vik": _3, "vikna": _3, "vindafjord": _3, "voagat": _3, "volda": _3, "voss": _3, "co": _4, "123hjemmeside": _4, "myspreadshop": _4 }], "np": _18, "nr": _56, "nu": [1, { "merseine": _4, "mine": _4, "shacknet": _4, "enterprisecloud": _4 }], "nz": [1, { "ac": _3, "co": _3, "cri": _3, "geek": _3, "gen": _3, "govt": _3, "health": _3, "iwi": _3, "kiwi": _3, "maori": _3, "xn--mori-qsa": _3, "m\u0101ori": _3, "mil": _3, "net": _3, "org": _3, "parliament": _3, "school": _3, "cloudns": _4 }], "om": [1, { "co": _3, "com": _3, "edu": _3, "gov": _3, "med": _3, "museum": _3, "net": _3, "org": _3, "pro": _3 }], "onion": _3, "org": [1, { "altervista": _4, "pimienta": _4, "poivron": _4, "potager": _4, "sweetpepper": _4, "cdn77": [0, { "c": _4, "rsc": _4 }], "cdn77-secure": [0, { "origin": [0, { "ssl": _4 }] }], "ae": _4, "cloudns": _4, "ip-dynamic": _4, "ddnss": _4, "dpdns": _4, "duckdns": _4, "tunk": _4, "blogdns": _4, "blogsite": _4, "boldlygoingnowhere": _4, "dnsalias": _4, "dnsdojo": _4, "doesntexist": _4, "dontexist": _4, "doomdns": _4, "dvrdns": _4, "dynalias": _4, "dyndns": [2, { "go": _4, "home": _4 }], "endofinternet": _4, "endoftheinternet": _4, "from-me": _4, "game-host": _4, "gotdns": _4, "hobby-site": _4, "homedns": _4, "homeftp": _4, "homelinux": _4, "homeunix": _4, "is-a-bruinsfan": _4, "is-a-candidate": _4, "is-a-celticsfan": _4, "is-a-chef": _4, "is-a-geek": _4, "is-a-knight": _4, "is-a-linux-user": _4, "is-a-patsfan": _4, "is-a-soxfan": _4, "is-found": _4, "is-lost": _4, "is-saved": _4, "is-very-bad": _4, "is-very-evil": _4, "is-very-good": _4, "is-very-nice": _4, "is-very-sweet": _4, "isa-geek": _4, "kicks-ass": _4, "misconfused": _4, "podzone": _4, "readmyblog": _4, "selfip": _4, "sellsyourhome": _4, "servebbs": _4, "serveftp": _4, "servegame": _4, "stuff-4-sale": _4, "webhop": _4, "accesscam": _4, "camdvr": _4, "freeddns": _4, "mywire": _4, "webredirect": _4, "twmail": _4, "eu": [2, { "al": _4, "asso": _4, "at": _4, "au": _4, "be": _4, "bg": _4, "ca": _4, "cd": _4, "ch": _4, "cn": _4, "cy": _4, "cz": _4, "de": _4, "dk": _4, "edu": _4, "ee": _4, "es": _4, "fi": _4, "fr": _4, "gr": _4, "hr": _4, "hu": _4, "ie": _4, "il": _4, "in": _4, "int": _4, "is": _4, "it": _4, "jp": _4, "kr": _4, "lt": _4, "lu": _4, "lv": _4, "me": _4, "mk": _4, "mt": _4, "my": _4, "net": _4, "ng": _4, "nl": _4, "no": _4, "nz": _4, "pl": _4, "pt": _4, "ro": _4, "ru": _4, "se": _4, "si": _4, "sk": _4, "tr": _4, "uk": _4, "us": _4 }], "fedorainfracloud": _4, "fedorapeople": _4, "fedoraproject": [0, { "cloud": _4, "os": _43, "stg": [0, { "os": _43 }] }], "freedesktop": _4, "hatenadiary": _4, "hepforge": _4, "in-dsl": _4, "in-vpn": _4, "js": _4, "barsy": _4, "mayfirst": _4, "routingthecloud": _4, "bmoattachments": _4, "cable-modem": _4, "collegefan": _4, "couchpotatofries": _4, "hopto": _4, "mlbfan": _4, "myftp": _4, "mysecuritycamera": _4, "nflfan": _4, "no-ip": _4, "read-books": _4, "ufcfan": _4, "zapto": _4, "dynserv": _4, "now-dns": _4, "is-local": _4, "httpbin": _4, "pubtls": _4, "jpn": _4, "my-firewall": _4, "myfirewall": _4, "spdns": _4, "small-web": _4, "dsmynas": _4, "familyds": _4, "teckids": _55, "tuxfamily": _4, "diskstation": _4, "hk": _4, "us": _4, "toolforge": _4, "wmcloud": _4, "wmflabs": _4, "za": _4 }], "pa": [1, { "abo": _3, "ac": _3, "com": _3, "edu": _3, "gob": _3, "ing": _3, "med": _3, "net": _3, "nom": _3, "org": _3, "sld": _3 }], "pe": [1, { "com": _3, "edu": _3, "gob": _3, "mil": _3, "net": _3, "nom": _3, "org": _3 }], "pf": [1, { "com": _3, "edu": _3, "org": _3 }], "pg": _18, "ph": [1, { "com": _3, "edu": _3, "gov": _3, "i": _3, "mil": _3, "net": _3, "ngo": _3, "org": _3, "cloudns": _4 }], "pk": [1, { "ac": _3, "biz": _3, "com": _3, "edu": _3, "fam": _3, "gkp": _3, "gob": _3, "gog": _3, "gok": _3, "gop": _3, "gos": _3, "gov": _3, "net": _3, "org": _3, "web": _3 }], "pl": [1, { "com": _3, "net": _3, "org": _3, "agro": _3, "aid": _3, "atm": _3, "auto": _3, "biz": _3, "edu": _3, "gmina": _3, "gsm": _3, "info": _3, "mail": _3, "media": _3, "miasta": _3, "mil": _3, "nieruchomosci": _3, "nom": _3, "pc": _3, "powiat": _3, "priv": _3, "realestate": _3, "rel": _3, "sex": _3, "shop": _3, "sklep": _3, "sos": _3, "szkola": _3, "targi": _3, "tm": _3, "tourism": _3, "travel": _3, "turystyka": _3, "gov": [1, { "ap": _3, "griw": _3, "ic": _3, "is": _3, "kmpsp": _3, "konsulat": _3, "kppsp": _3, "kwp": _3, "kwpsp": _3, "mup": _3, "mw": _3, "oia": _3, "oirm": _3, "oke": _3, "oow": _3, "oschr": _3, "oum": _3, "pa": _3, "pinb": _3, "piw": _3, "po": _3, "pr": _3, "psp": _3, "psse": _3, "pup": _3, "rzgw": _3, "sa": _3, "sdn": _3, "sko": _3, "so": _3, "sr": _3, "starostwo": _3, "ug": _3, "ugim": _3, "um": _3, "umig": _3, "upow": _3, "uppo": _3, "us": _3, "uw": _3, "uzs": _3, "wif": _3, "wiih": _3, "winb": _3, "wios": _3, "witd": _3, "wiw": _3, "wkz": _3, "wsa": _3, "wskr": _3, "wsse": _3, "wuoz": _3, "wzmiuw": _3, "zp": _3, "zpisdn": _3 }], "augustow": _3, "babia-gora": _3, "bedzin": _3, "beskidy": _3, "bialowieza": _3, "bialystok": _3, "bielawa": _3, "bieszczady": _3, "boleslawiec": _3, "bydgoszcz": _3, "bytom": _3, "cieszyn": _3, "czeladz": _3, "czest": _3, "dlugoleka": _3, "elblag": _3, "elk": _3, "glogow": _3, "gniezno": _3, "gorlice": _3, "grajewo": _3, "ilawa": _3, "jaworzno": _3, "jelenia-gora": _3, "jgora": _3, "kalisz": _3, "karpacz": _3, "kartuzy": _3, "kaszuby": _3, "katowice": _3, "kazimierz-dolny": _3, "kepno": _3, "ketrzyn": _3, "klodzko": _3, "kobierzyce": _3, "kolobrzeg": _3, "konin": _3, "konskowola": _3, "kutno": _3, "lapy": _3, "lebork": _3, "legnica": _3, "lezajsk": _3, "limanowa": _3, "lomza": _3, "lowicz": _3, "lubin": _3, "lukow": _3, "malbork": _3, "malopolska": _3, "mazowsze": _3, "mazury": _3, "mielec": _3, "mielno": _3, "mragowo": _3, "naklo": _3, "nowaruda": _3, "nysa": _3, "olawa": _3, "olecko": _3, "olkusz": _3, "olsztyn": _3, "opoczno": _3, "opole": _3, "ostroda": _3, "ostroleka": _3, "ostrowiec": _3, "ostrowwlkp": _3, "pila": _3, "pisz": _3, "podhale": _3, "podlasie": _3, "polkowice": _3, "pomorskie": _3, "pomorze": _3, "prochowice": _3, "pruszkow": _3, "przeworsk": _3, "pulawy": _3, "radom": _3, "rawa-maz": _3, "rybnik": _3, "rzeszow": _3, "sanok": _3, "sejny": _3, "skoczow": _3, "slask": _3, "slupsk": _3, "sosnowiec": _3, "stalowa-wola": _3, "starachowice": _3, "stargard": _3, "suwalki": _3, "swidnica": _3, "swiebodzin": _3, "swinoujscie": _3, "szczecin": _3, "szczytno": _3, "tarnobrzeg": _3, "tgory": _3, "turek": _3, "tychy": _3, "ustka": _3, "walbrzych": _3, "warmia": _3, "warszawa": _3, "waw": _3, "wegrow": _3, "wielun": _3, "wlocl": _3, "wloclawek": _3, "wodzislaw": _3, "wolomin": _3, "wroclaw": _3, "zachpomor": _3, "zagan": _3, "zarow": _3, "zgora": _3, "zgorzelec": _3, "art": _4, "gliwice": _4, "krakow": _4, "poznan": _4, "wroc": _4, "zakopane": _4, "beep": _4, "ecommerce-shop": _4, "cfolks": _4, "dfirma": _4, "dkonto": _4, "you2": _4, "shoparena": _4, "homesklep": _4, "sdscloud": _4, "unicloud": _4, "lodz": _4, "pabianice": _4, "plock": _4, "sieradz": _4, "skierniewice": _4, "zgierz": _4, "krasnik": _4, "leczna": _4, "lubartow": _4, "lublin": _4, "poniatowa": _4, "swidnik": _4, "co": _4, "torun": _4, "simplesite": _4, "myspreadshop": _4, "gda": _4, "gdansk": _4, "gdynia": _4, "med": _4, "sopot": _4, "bielsko": _4 }], "pm": [1, { "own": _4, "name": _4 }], "pn": [1, { "co": _3, "edu": _3, "gov": _3, "net": _3, "org": _3 }], "post": _3, "pr": [1, { "biz": _3, "com": _3, "edu": _3, "gov": _3, "info": _3, "isla": _3, "name": _3, "net": _3, "org": _3, "pro": _3, "ac": _3, "est": _3, "prof": _3 }], "pro": [1, { "aaa": _3, "aca": _3, "acct": _3, "avocat": _3, "bar": _3, "cpa": _3, "eng": _3, "jur": _3, "law": _3, "med": _3, "recht": _3, "12chars": _4, "cloudns": _4, "barsy": _4, "ngrok": _4 }], "ps": [1, { "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3, "plo": _3, "sec": _3 }], "pt": [1, { "com": _3, "edu": _3, "gov": _3, "int": _3, "net": _3, "nome": _3, "org": _3, "publ": _3, "123paginaweb": _4 }], "pw": [1, { "gov": _3, "cloudns": _4, "x443": _4 }], "py": [1, { "com": _3, "coop": _3, "edu": _3, "gov": _3, "mil": _3, "net": _3, "org": _3 }], "qa": [1, { "com": _3, "edu": _3, "gov": _3, "mil": _3, "name": _3, "net": _3, "org": _3, "sch": _3 }], "re": [1, { "asso": _3, "com": _3, "netlib": _4, "can": _4 }], "ro": [1, { "arts": _3, "com": _3, "firm": _3, "info": _3, "nom": _3, "nt": _3, "org": _3, "rec": _3, "store": _3, "tm": _3, "www": _3, "co": _4, "shop": _4, "barsy": _4 }], "rs": [1, { "ac": _3, "co": _3, "edu": _3, "gov": _3, "in": _3, "org": _3, "brendly": _51, "barsy": _4, "ox": _4 }], "ru": [1, { "ac": _4, "edu": _4, "gov": _4, "int": _4, "mil": _4, "eurodir": _4, "adygeya": _4, "bashkiria": _4, "bir": _4, "cbg": _4, "com": _4, "dagestan": _4, "grozny": _4, "kalmykia": _4, "kustanai": _4, "marine": _4, "mordovia": _4, "msk": _4, "mytis": _4, "nalchik": _4, "nov": _4, "pyatigorsk": _4, "spb": _4, "vladikavkaz": _4, "vladimir": _4, "na4u": _4, "mircloud": _4, "myjino": [2, { "hosting": _7, "landing": _7, "spectrum": _7, "vps": _7 }], "cldmail": [0, { "hb": _4 }], "mcdir": [2, { "vps": _4 }], "mcpre": _4, "net": _4, "org": _4, "pp": _4, "lk3": _4, "ras": _4 }], "rw": [1, { "ac": _3, "co": _3, "coop": _3, "gov": _3, "mil": _3, "net": _3, "org": _3 }], "sa": [1, { "com": _3, "edu": _3, "gov": _3, "med": _3, "net": _3, "org": _3, "pub": _3, "sch": _3 }], "sb": _5, "sc": _5, "sd": [1, { "com": _3, "edu": _3, "gov": _3, "info": _3, "med": _3, "net": _3, "org": _3, "tv": _3 }], "se": [1, { "a": _3, "ac": _3, "b": _3, "bd": _3, "brand": _3, "c": _3, "d": _3, "e": _3, "f": _3, "fh": _3, "fhsk": _3, "fhv": _3, "g": _3, "h": _3, "i": _3, "k": _3, "komforb": _3, "kommunalforbund": _3, "komvux": _3, "l": _3, "lanbib": _3, "m": _3, "n": _3, "naturbruksgymn": _3, "o": _3, "org": _3, "p": _3, "parti": _3, "pp": _3, "press": _3, "r": _3, "s": _3, "t": _3, "tm": _3, "u": _3, "w": _3, "x": _3, "y": _3, "z": _3, "com": _4, "iopsys": _4, "123minsida": _4, "itcouldbewor": _4, "myspreadshop": _4 }], "sg": [1, { "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3, "enscaled": _4 }], "sh": [1, { "com": _3, "gov": _3, "mil": _3, "net": _3, "org": _3, "hashbang": _4, "botda": _4, "platform": [0, { "ent": _4, "eu": _4, "us": _4 }], "now": _4 }], "si": [1, { "f5": _4, "gitapp": _4, "gitpage": _4 }], "sj": _3, "sk": _3, "sl": _5, "sm": _3, "sn": [1, { "art": _3, "com": _3, "edu": _3, "gouv": _3, "org": _3, "perso": _3, "univ": _3 }], "so": [1, { "com": _3, "edu": _3, "gov": _3, "me": _3, "net": _3, "org": _3, "surveys": _4 }], "sr": _3, "ss": [1, { "biz": _3, "co": _3, "com": _3, "edu": _3, "gov": _3, "me": _3, "net": _3, "org": _3, "sch": _3 }], "st": [1, { "co": _3, "com": _3, "consulado": _3, "edu": _3, "embaixada": _3, "mil": _3, "net": _3, "org": _3, "principe": _3, "saotome": _3, "store": _3, "helioho": _4, "kirara": _4, "noho": _4 }], "su": [1, { "abkhazia": _4, "adygeya": _4, "aktyubinsk": _4, "arkhangelsk": _4, "armenia": _4, "ashgabad": _4, "azerbaijan": _4, "balashov": _4, "bashkiria": _4, "bryansk": _4, "bukhara": _4, "chimkent": _4, "dagestan": _4, "east-kazakhstan": _4, "exnet": _4, "georgia": _4, "grozny": _4, "ivanovo": _4, "jambyl": _4, "kalmykia": _4, "kaluga": _4, "karacol": _4, "karaganda": _4, "karelia": _4, "khakassia": _4, "krasnodar": _4, "kurgan": _4, "kustanai": _4, "lenug": _4, "mangyshlak": _4, "mordovia": _4, "msk": _4, "murmansk": _4, "nalchik": _4, "navoi": _4, "north-kazakhstan": _4, "nov": _4, "obninsk": _4, "penza": _4, "pokrovsk": _4, "sochi": _4, "spb": _4, "tashkent": _4, "termez": _4, "togliatti": _4, "troitsk": _4, "tselinograd": _4, "tula": _4, "tuva": _4, "vladikavkaz": _4, "vladimir": _4, "vologda": _4 }], "sv": [1, { "com": _3, "edu": _3, "gob": _3, "org": _3, "red": _3 }], "sx": _11, "sy": _6, "sz": [1, { "ac": _3, "co": _3, "org": _3 }], "tc": _3, "td": _3, "tel": _3, "tf": [1, { "sch": _4 }], "tg": _3, "th": [1, { "ac": _3, "co": _3, "go": _3, "in": _3, "mi": _3, "net": _3, "or": _3, "online": _4, "shop": _4 }], "tj": [1, { "ac": _3, "biz": _3, "co": _3, "com": _3, "edu": _3, "go": _3, "gov": _3, "int": _3, "mil": _3, "name": _3, "net": _3, "nic": _3, "org": _3, "test": _3, "web": _3 }], "tk": _3, "tl": _11, "tm": [1, { "co": _3, "com": _3, "edu": _3, "gov": _3, "mil": _3, "net": _3, "nom": _3, "org": _3 }], "tn": [1, { "com": _3, "ens": _3, "fin": _3, "gov": _3, "ind": _3, "info": _3, "intl": _3, "mincom": _3, "nat": _3, "net": _3, "org": _3, "perso": _3, "tourism": _3, "orangecloud": _4 }], "to": [1, { "611": _4, "com": _3, "edu": _3, "gov": _3, "mil": _3, "net": _3, "org": _3, "oya": _4, "x0": _4, "quickconnect": _25, "vpnplus": _4 }], "tr": [1, { "av": _3, "bbs": _3, "bel": _3, "biz": _3, "com": _3, "dr": _3, "edu": _3, "gen": _3, "gov": _3, "info": _3, "k12": _3, "kep": _3, "mil": _3, "name": _3, "net": _3, "org": _3, "pol": _3, "tel": _3, "tsk": _3, "tv": _3, "web": _3, "nc": _11 }], "tt": [1, { "biz": _3, "co": _3, "com": _3, "edu": _3, "gov": _3, "info": _3, "mil": _3, "name": _3, "net": _3, "org": _3, "pro": _3 }], "tv": [1, { "better-than": _4, "dyndns": _4, "on-the-web": _4, "worse-than": _4, "from": _4, "sakura": _4 }], "tw": [1, { "club": _3, "com": [1, { "mymailer": _4 }], "ebiz": _3, "edu": _3, "game": _3, "gov": _3, "idv": _3, "mil": _3, "net": _3, "org": _3, "url": _4, "mydns": _4 }], "tz": [1, { "ac": _3, "co": _3, "go": _3, "hotel": _3, "info": _3, "me": _3, "mil": _3, "mobi": _3, "ne": _3, "or": _3, "sc": _3, "tv": _3 }], "ua": [1, { "com": _3, "edu": _3, "gov": _3, "in": _3, "net": _3, "org": _3, "cherkassy": _3, "cherkasy": _3, "chernigov": _3, "chernihiv": _3, "chernivtsi": _3, "chernovtsy": _3, "ck": _3, "cn": _3, "cr": _3, "crimea": _3, "cv": _3, "dn": _3, "dnepropetrovsk": _3, "dnipropetrovsk": _3, "donetsk": _3, "dp": _3, "if": _3, "ivano-frankivsk": _3, "kh": _3, "kharkiv": _3, "kharkov": _3, "kherson": _3, "khmelnitskiy": _3, "khmelnytskyi": _3, "kiev": _3, "kirovograd": _3, "km": _3, "kr": _3, "kropyvnytskyi": _3, "krym": _3, "ks": _3, "kv": _3, "kyiv": _3, "lg": _3, "lt": _3, "lugansk": _3, "luhansk": _3, "lutsk": _3, "lv": _3, "lviv": _3, "mk": _3, "mykolaiv": _3, "nikolaev": _3, "od": _3, "odesa": _3, "odessa": _3, "pl": _3, "poltava": _3, "rivne": _3, "rovno": _3, "rv": _3, "sb": _3, "sebastopol": _3, "sevastopol": _3, "sm": _3, "sumy": _3, "te": _3, "ternopil": _3, "uz": _3, "uzhgorod": _3, "uzhhorod": _3, "vinnica": _3, "vinnytsia": _3, "vn": _3, "volyn": _3, "yalta": _3, "zakarpattia": _3, "zaporizhzhe": _3, "zaporizhzhia": _3, "zhitomir": _3, "zhytomyr": _3, "zp": _3, "zt": _3, "cc": _4, "inf": _4, "ltd": _4, "cx": _4, "ie": _4, "biz": _4, "co": _4, "pp": _4, "v": _4 }], "ug": [1, { "ac": _3, "co": _3, "com": _3, "edu": _3, "go": _3, "gov": _3, "mil": _3, "ne": _3, "or": _3, "org": _3, "sc": _3, "us": _3 }], "uk": [1, { "ac": _3, "co": [1, { "bytemark": [0, { "dh": _4, "vm": _4 }], "layershift": _46, "barsy": _4, "barsyonline": _4, "retrosnub": _54, "nh-serv": _4, "no-ip": _4, "adimo": _4, "myspreadshop": _4 }], "gov": [1, { "api": _4, "campaign": _4, "service": _4 }], "ltd": _3, "me": _3, "net": _3, "nhs": _3, "org": [1, { "glug": _4, "lug": _4, "lugs": _4, "affinitylottery": _4, "raffleentry": _4, "weeklylottery": _4 }], "plc": _3, "police": _3, "sch": _18, "conn": _4, "copro": _4, "hosp": _4, "independent-commission": _4, "independent-inquest": _4, "independent-inquiry": _4, "independent-panel": _4, "independent-review": _4, "public-inquiry": _4, "royal-commission": _4, "pymnt": _4, "barsy": _4, "nimsite": _4, "oraclegovcloudapps": _7 }], "us": [1, { "dni": _3, "isa": _3, "nsn": _3, "ak": _62, "al": _62, "ar": _62, "as": _62, "az": _62, "ca": _62, "co": _62, "ct": _62, "dc": _62, "de": [1, { "cc": _3, "lib": _4 }], "fl": _62, "ga": _62, "gu": _62, "hi": _63, "ia": _62, "id": _62, "il": _62, "in": _62, "ks": _62, "ky": _62, "la": _62, "ma": [1, { "k12": [1, { "chtr": _3, "paroch": _3, "pvt": _3 }], "cc": _3, "lib": _3 }], "md": _62, "me": _62, "mi": [1, { "k12": _3, "cc": _3, "lib": _3, "ann-arbor": _3, "cog": _3, "dst": _3, "eaton": _3, "gen": _3, "mus": _3, "tec": _3, "washtenaw": _3 }], "mn": _62, "mo": _62, "ms": _62, "mt": _62, "nc": _62, "nd": _63, "ne": _62, "nh": _62, "nj": _62, "nm": _62, "nv": _62, "ny": _62, "oh": _62, "ok": _62, "or": _62, "pa": _62, "pr": _62, "ri": _63, "sc": _62, "sd": _63, "tn": _62, "tx": _62, "ut": _62, "va": _62, "vi": _62, "vt": _62, "wa": _62, "wi": _62, "wv": [1, { "cc": _3 }], "wy": _62, "cloudns": _4, "is-by": _4, "land-4-sale": _4, "stuff-4-sale": _4, "heliohost": _4, "enscaled": [0, { "phx": _4 }], "mircloud": _4, "ngo": _4, "golffan": _4, "noip": _4, "pointto": _4, "freeddns": _4, "srv": [2, { "gh": _4, "gl": _4 }], "platterp": _4, "servername": _4 }], "uy": [1, { "com": _3, "edu": _3, "gub": _3, "mil": _3, "net": _3, "org": _3 }], "uz": [1, { "co": _3, "com": _3, "net": _3, "org": _3 }], "va": _3, "vc": [1, { "com": _3, "edu": _3, "gov": _3, "mil": _3, "net": _3, "org": _3, "gv": [2, { "d": _4 }], "0e": _7, "mydns": _4 }], "ve": [1, { "arts": _3, "bib": _3, "co": _3, "com": _3, "e12": _3, "edu": _3, "emprende": _3, "firm": _3, "gob": _3, "gov": _3, "info": _3, "int": _3, "mil": _3, "net": _3, "nom": _3, "org": _3, "rar": _3, "rec": _3, "store": _3, "tec": _3, "web": _3 }], "vg": [1, { "edu": _3 }], "vi": [1, { "co": _3, "com": _3, "k12": _3, "net": _3, "org": _3 }], "vn": [1, { "ac": _3, "ai": _3, "biz": _3, "com": _3, "edu": _3, "gov": _3, "health": _3, "id": _3, "info": _3, "int": _3, "io": _3, "name": _3, "net": _3, "org": _3, "pro": _3, "angiang": _3, "bacgiang": _3, "backan": _3, "baclieu": _3, "bacninh": _3, "baria-vungtau": _3, "bentre": _3, "binhdinh": _3, "binhduong": _3, "binhphuoc": _3, "binhthuan": _3, "camau": _3, "cantho": _3, "caobang": _3, "daklak": _3, "daknong": _3, "danang": _3, "dienbien": _3, "dongnai": _3, "dongthap": _3, "gialai": _3, "hagiang": _3, "haiduong": _3, "haiphong": _3, "hanam": _3, "hanoi": _3, "hatinh": _3, "haugiang": _3, "hoabinh": _3, "hungyen": _3, "khanhhoa": _3, "kiengiang": _3, "kontum": _3, "laichau": _3, "lamdong": _3, "langson": _3, "laocai": _3, "longan": _3, "namdinh": _3, "nghean": _3, "ninhbinh": _3, "ninhthuan": _3, "phutho": _3, "phuyen": _3, "quangbinh": _3, "quangnam": _3, "quangngai": _3, "quangninh": _3, "quangtri": _3, "soctrang": _3, "sonla": _3, "tayninh": _3, "thaibinh": _3, "thainguyen": _3, "thanhhoa": _3, "thanhphohochiminh": _3, "thuathienhue": _3, "tiengiang": _3, "travinh": _3, "tuyenquang": _3, "vinhlong": _3, "vinhphuc": _3, "yenbai": _3 }], "vu": _45, "wf": [1, { "biz": _4, "sch": _4 }], "ws": [1, { "com": _3, "edu": _3, "gov": _3, "net": _3, "org": _3, "advisor": _7, "cloud66": _4, "dyndns": _4, "mypets": _4 }], "yt": [1, { "org": _4 }], "xn--mgbaam7a8h": _3, "\u0627\u0645\u0627\u0631\u0627\u062A": _3, "xn--y9a3aq": _3, "\u0570\u0561\u0575": _3, "xn--54b7fta0cc": _3, "\u09AC\u09BE\u0982\u09B2\u09BE": _3, "xn--90ae": _3, "\u0431\u0433": _3, "xn--mgbcpq6gpa1a": _3, "\u0627\u0644\u0628\u062D\u0631\u064A\u0646": _3, "xn--90ais": _3, "\u0431\u0435\u043B": _3, "xn--fiqs8s": _3, "\u4E2D\u56FD": _3, "xn--fiqz9s": _3, "\u4E2D\u570B": _3, "xn--lgbbat1ad8j": _3, "\u0627\u0644\u062C\u0632\u0627\u0626\u0631": _3, "xn--wgbh1c": _3, "\u0645\u0635\u0631": _3, "xn--e1a4c": _3, "\u0435\u044E": _3, "xn--qxa6a": _3, "\u03B5\u03C5": _3, "xn--mgbah1a3hjkrd": _3, "\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627": _3, "xn--node": _3, "\u10D2\u10D4": _3, "xn--qxam": _3, "\u03B5\u03BB": _3, "xn--j6w193g": [1, { "xn--gmqw5a": _3, "xn--55qx5d": _3, "xn--mxtq1m": _3, "xn--wcvs22d": _3, "xn--uc0atv": _3, "xn--od0alg": _3 }], "\u9999\u6E2F": [1, { "\u500B\u4EBA": _3, "\u516C\u53F8": _3, "\u653F\u5E9C": _3, "\u6559\u80B2": _3, "\u7D44\u7E54": _3, "\u7DB2\u7D61": _3 }], "xn--2scrj9c": _3, "\u0CAD\u0CBE\u0CB0\u0CA4": _3, "xn--3hcrj9c": _3, "\u0B2D\u0B3E\u0B30\u0B24": _3, "xn--45br5cyl": _3, "\u09AD\u09BE\u09F0\u09A4": _3, "xn--h2breg3eve": _3, "\u092D\u093E\u0930\u0924\u092E\u094D": _3, "xn--h2brj9c8c": _3, "\u092D\u093E\u0930\u094B\u0924": _3, "xn--mgbgu82a": _3, "\u0680\u0627\u0631\u062A": _3, "xn--rvc1e0am3e": _3, "\u0D2D\u0D3E\u0D30\u0D24\u0D02": _3, "xn--h2brj9c": _3, "\u092D\u093E\u0930\u0924": _3, "xn--mgbbh1a": _3, "\u0628\u0627\u0631\u062A": _3, "xn--mgbbh1a71e": _3, "\u0628\u06BE\u0627\u0631\u062A": _3, "xn--fpcrj9c3d": _3, "\u0C2D\u0C3E\u0C30\u0C24\u0C4D": _3, "xn--gecrj9c": _3, "\u0AAD\u0ABE\u0AB0\u0AA4": _3, "xn--s9brj9c": _3, "\u0A2D\u0A3E\u0A30\u0A24": _3, "xn--45brj9c": _3, "\u09AD\u09BE\u09B0\u09A4": _3, "xn--xkc2dl3a5ee0h": _3, "\u0B87\u0BA8\u0BCD\u0BA4\u0BBF\u0BAF\u0BBE": _3, "xn--mgba3a4f16a": _3, "\u0627\u06CC\u0631\u0627\u0646": _3, "xn--mgba3a4fra": _3, "\u0627\u064A\u0631\u0627\u0646": _3, "xn--mgbtx2b": _3, "\u0639\u0631\u0627\u0642": _3, "xn--mgbayh7gpa": _3, "\u0627\u0644\u0627\u0631\u062F\u0646": _3, "xn--3e0b707e": _3, "\uD55C\uAD6D": _3, "xn--80ao21a": _3, "\u049B\u0430\u0437": _3, "xn--q7ce6a": _3, "\u0EA5\u0EB2\u0EA7": _3, "xn--fzc2c9e2c": _3, "\u0DBD\u0D82\u0D9A\u0DCF": _3, "xn--xkc2al3hye2a": _3, "\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8": _3, "xn--mgbc0a9azcg": _3, "\u0627\u0644\u0645\u063A\u0631\u0628": _3, "xn--d1alf": _3, "\u043C\u043A\u0434": _3, "xn--l1acc": _3, "\u043C\u043E\u043D": _3, "xn--mix891f": _3, "\u6FB3\u9580": _3, "xn--mix082f": _3, "\u6FB3\u95E8": _3, "xn--mgbx4cd0ab": _3, "\u0645\u0644\u064A\u0633\u064A\u0627": _3, "xn--mgb9awbf": _3, "\u0639\u0645\u0627\u0646": _3, "xn--mgbai9azgqp6j": _3, "\u067E\u0627\u06A9\u0633\u062A\u0627\u0646": _3, "xn--mgbai9a5eva00b": _3, "\u067E\u0627\u0643\u0633\u062A\u0627\u0646": _3, "xn--ygbi2ammx": _3, "\u0641\u0644\u0633\u0637\u064A\u0646": _3, "xn--90a3ac": [1, { "xn--80au": _3, "xn--90azh": _3, "xn--d1at": _3, "xn--c1avg": _3, "xn--o1ac": _3, "xn--o1ach": _3 }], "\u0441\u0440\u0431": [1, { "\u0430\u043A": _3, "\u043E\u0431\u0440": _3, "\u043E\u0434": _3, "\u043E\u0440\u0433": _3, "\u043F\u0440": _3, "\u0443\u043F\u0440": _3 }], "xn--p1ai": _3, "\u0440\u0444": _3, "xn--wgbl6a": _3, "\u0642\u0637\u0631": _3, "xn--mgberp4a5d4ar": _3, "\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629": _3, "xn--mgberp4a5d4a87g": _3, "\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u0629": _3, "xn--mgbqly7c0a67fbc": _3, "\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u06C3": _3, "xn--mgbqly7cvafr": _3, "\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0647": _3, "xn--mgbpl2fh": _3, "\u0633\u0648\u062F\u0627\u0646": _3, "xn--yfro4i67o": _3, "\u65B0\u52A0\u5761": _3, "xn--clchc0ea0b2g2a9gcd": _3, "\u0B9A\u0BBF\u0B99\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BC2\u0BB0\u0BCD": _3, "xn--ogbpf8fl": _3, "\u0633\u0648\u0631\u064A\u0629": _3, "xn--mgbtf8fl": _3, "\u0633\u0648\u0631\u064A\u0627": _3, "xn--o3cw4h": [1, { "xn--o3cyx2a": _3, "xn--12co0c3b4eva": _3, "xn--m3ch0j3a": _3, "xn--h3cuzk1di": _3, "xn--12c1fe0br": _3, "xn--12cfi8ixb8l": _3 }], "\u0E44\u0E17\u0E22": [1, { "\u0E17\u0E2B\u0E32\u0E23": _3, "\u0E18\u0E38\u0E23\u0E01\u0E34\u0E08": _3, "\u0E40\u0E19\u0E47\u0E15": _3, "\u0E23\u0E31\u0E10\u0E1A\u0E32\u0E25": _3, "\u0E28\u0E36\u0E01\u0E29\u0E32": _3, "\u0E2D\u0E07\u0E04\u0E4C\u0E01\u0E23": _3 }], "xn--pgbs0dh": _3, "\u062A\u0648\u0646\u0633": _3, "xn--kpry57d": _3, "\u53F0\u7063": _3, "xn--kprw13d": _3, "\u53F0\u6E7E": _3, "xn--nnx388a": _3, "\u81FA\u7063": _3, "xn--j1amh": _3, "\u0443\u043A\u0440": _3, "xn--mgb2ddes": _3, "\u0627\u0644\u064A\u0645\u0646": _3, "xxx": _3, "ye": _6, "za": [0, { "ac": _3, "agric": _3, "alt": _3, "co": _3, "edu": _3, "gov": _3, "grondar": _3, "law": _3, "mil": _3, "net": _3, "ngo": _3, "nic": _3, "nis": _3, "nom": _3, "org": _3, "school": _3, "tm": _3, "web": _3 }], "zm": [1, { "ac": _3, "biz": _3, "co": _3, "com": _3, "edu": _3, "gov": _3, "info": _3, "mil": _3, "net": _3, "org": _3, "sch": _3 }], "zw": [1, { "ac": _3, "co": _3, "gov": _3, "mil": _3, "org": _3 }], "aaa": _3, "aarp": _3, "abb": _3, "abbott": _3, "abbvie": _3, "abc": _3, "able": _3, "abogado": _3, "abudhabi": _3, "academy": [1, { "official": _4 }], "accenture": _3, "accountant": _3, "accountants": _3, "aco": _3, "actor": _3, "ads": _3, "adult": _3, "aeg": _3, "aetna": _3, "afl": _3, "africa": _3, "agakhan": _3, "agency": _3, "aig": _3, "airbus": _3, "airforce": _3, "airtel": _3, "akdn": _3, "alibaba": _3, "alipay": _3, "allfinanz": _3, "allstate": _3, "ally": _3, "alsace": _3, "alstom": _3, "amazon": _3, "americanexpress": _3, "americanfamily": _3, "amex": _3, "amfam": _3, "amica": _3, "amsterdam": _3, "analytics": _3, "android": _3, "anquan": _3, "anz": _3, "aol": _3, "apartments": _3, "app": [1, { "adaptable": _4, "aiven": _4, "beget": _7, "brave": _8, "clerk": _4, "clerkstage": _4, "wnext": _4, "csb": [2, { "preview": _4 }], "convex": _4, "deta": _4, "ondigitalocean": _4, "easypanel": _4, "encr": _4, "evervault": _9, "expo": [2, { "staging": _4 }], "edgecompute": _4, "on-fleek": _4, "flutterflow": _4, "e2b": _4, "framer": _4, "hosted": _7, "run": _7, "web": _4, "hasura": _4, "botdash": _4, "loginline": _4, "lovable": _4, "medusajs": _4, "messerli": _4, "netfy": _4, "netlify": _4, "ngrok": _4, "ngrok-free": _4, "developer": _7, "noop": _4, "northflank": _7, "upsun": _7, "replit": _10, "nyat": _4, "snowflake": [0, { "*": _4, "privatelink": _7 }], "streamlit": _4, "storipress": _4, "telebit": _4, "typedream": _4, "vercel": _4, "bookonline": _4, "wdh": _4, "windsurf": _4, "zeabur": _4, "zerops": _7 }], "apple": _3, "aquarelle": _3, "arab": _3, "aramco": _3, "archi": _3, "army": _3, "art": _3, "arte": _3, "asda": _3, "associates": _3, "athleta": _3, "attorney": _3, "auction": _3, "audi": _3, "audible": _3, "audio": _3, "auspost": _3, "author": _3, "auto": _3, "autos": _3, "aws": [1, { "sagemaker": [0, { "ap-northeast-1": _14, "ap-northeast-2": _14, "ap-south-1": _14, "ap-southeast-1": _14, "ap-southeast-2": _14, "ca-central-1": _16, "eu-central-1": _14, "eu-west-1": _14, "eu-west-2": _14, "us-east-1": _16, "us-east-2": _16, "us-west-2": _16, "af-south-1": _13, "ap-east-1": _13, "ap-northeast-3": _13, "ap-south-2": _15, "ap-southeast-3": _13, "ap-southeast-4": _15, "ca-west-1": [0, { "notebook": _4, "notebook-fips": _4 }], "eu-central-2": _13, "eu-north-1": _13, "eu-south-1": _13, "eu-south-2": _13, "eu-west-3": _13, "il-central-1": _13, "me-central-1": _13, "me-south-1": _13, "sa-east-1": _13, "us-gov-east-1": _17, "us-gov-west-1": _17, "us-west-1": [0, { "notebook": _4, "notebook-fips": _4, "studio": _4 }], "experiments": _7 }], "repost": [0, { "private": _7 }], "on": [0, { "ap-northeast-1": _12, "ap-southeast-1": _12, "ap-southeast-2": _12, "eu-central-1": _12, "eu-north-1": _12, "eu-west-1": _12, "us-east-1": _12, "us-east-2": _12, "us-west-2": _12 }] }], "axa": _3, "azure": _3, "baby": _3, "baidu": _3, "banamex": _3, "band": _3, "bank": _3, "bar": _3, "barcelona": _3, "barclaycard": _3, "barclays": _3, "barefoot": _3, "bargains": _3, "baseball": _3, "basketball": [1, { "aus": _4, "nz": _4 }], "bauhaus": _3, "bayern": _3, "bbc": _3, "bbt": _3, "bbva": _3, "bcg": _3, "bcn": _3, "beats": _3, "beauty": _3, "beer": _3, "bentley": _3, "berlin": _3, "best": _3, "bestbuy": _3, "bet": _3, "bharti": _3, "bible": _3, "bid": _3, "bike": _3, "bing": _3, "bingo": _3, "bio": _3, "black": _3, "blackfriday": _3, "blockbuster": _3, "blog": _3, "bloomberg": _3, "blue": _3, "bms": _3, "bmw": _3, "bnpparibas": _3, "boats": _3, "boehringer": _3, "bofa": _3, "bom": _3, "bond": _3, "boo": _3, "book": _3, "booking": _3, "bosch": _3, "bostik": _3, "boston": _3, "bot": _3, "boutique": _3, "box": _3, "bradesco": _3, "bridgestone": _3, "broadway": _3, "broker": _3, "brother": _3, "brussels": _3, "build": [1, { "v0": _4, "windsurf": _4 }], "builders": [1, { "cloudsite": _4 }], "business": _19, "buy": _3, "buzz": _3, "bzh": _3, "cab": _3, "cafe": _3, "cal": _3, "call": _3, "calvinklein": _3, "cam": _3, "camera": _3, "camp": [1, { "emf": [0, { "at": _4 }] }], "canon": _3, "capetown": _3, "capital": _3, "capitalone": _3, "car": _3, "caravan": _3, "cards": _3, "care": _3, "career": _3, "careers": _3, "cars": _3, "casa": [1, { "nabu": [0, { "ui": _4 }] }], "case": _3, "cash": _3, "casino": _3, "catering": _3, "catholic": _3, "cba": _3, "cbn": _3, "cbre": _3, "center": _3, "ceo": _3, "cern": _3, "cfa": _3, "cfd": _3, "chanel": _3, "channel": _3, "charity": _3, "chase": _3, "chat": _3, "cheap": _3, "chintai": _3, "christmas": _3, "chrome": _3, "church": _3, "cipriani": _3, "circle": _3, "cisco": _3, "citadel": _3, "citi": _3, "citic": _3, "city": _3, "claims": _3, "cleaning": _3, "click": _3, "clinic": _3, "clinique": _3, "clothing": _3, "cloud": [1, { "convex": _4, "elementor": _4, "encoway": [0, { "eu": _4 }], "statics": _7, "ravendb": _4, "axarnet": [0, { "es-1": _4 }], "diadem": _4, "jelastic": [0, { "vip": _4 }], "jele": _4, "jenv-aruba": [0, { "aruba": [0, { "eur": [0, { "it1": _4 }] }], "it1": _4 }], "keliweb": [2, { "cs": _4 }], "oxa": [2, { "tn": _4, "uk": _4 }], "primetel": [2, { "uk": _4 }], "reclaim": [0, { "ca": _4, "uk": _4, "us": _4 }], "trendhosting": [0, { "ch": _4, "de": _4 }], "jotelulu": _4, "kuleuven": _4, "laravel": _4, "linkyard": _4, "magentosite": _7, "matlab": _4, "observablehq": _4, "perspecta": _4, "vapor": _4, "on-rancher": _7, "scw": [0, { "baremetal": [0, { "fr-par-1": _4, "fr-par-2": _4, "nl-ams-1": _4 }], "fr-par": [0, { "cockpit": _4, "fnc": [2, { "functions": _4 }], "k8s": _21, "s3": _4, "s3-website": _4, "whm": _4 }], "instances": [0, { "priv": _4, "pub": _4 }], "k8s": _4, "nl-ams": [0, { "cockpit": _4, "k8s": _21, "s3": _4, "s3-website": _4, "whm": _4 }], "pl-waw": [0, { "cockpit": _4, "k8s": _21, "s3": _4, "s3-website": _4 }], "scalebook": _4, "smartlabeling": _4 }], "servebolt": _4, "onstackit": [0, { "runs": _4 }], "trafficplex": _4, "unison-services": _4, "urown": _4, "voorloper": _4, "zap": _4 }], "club": [1, { "cloudns": _4, "jele": _4, "barsy": _4 }], "clubmed": _3, "coach": _3, "codes": [1, { "owo": _7 }], "coffee": _3, "college": _3, "cologne": _3, "commbank": _3, "community": [1, { "nog": _4, "ravendb": _4, "myforum": _4 }], "company": _3, "compare": _3, "computer": _3, "comsec": _3, "condos": _3, "construction": _3, "consulting": _3, "contact": _3, "contractors": _3, "cooking": _3, "cool": [1, { "elementor": _4, "de": _4 }], "corsica": _3, "country": _3, "coupon": _3, "coupons": _3, "courses": _3, "cpa": _3, "credit": _3, "creditcard": _3, "creditunion": _3, "cricket": _3, "crown": _3, "crs": _3, "cruise": _3, "cruises": _3, "cuisinella": _3, "cymru": _3, "cyou": _3, "dad": _3, "dance": _3, "data": _3, "date": _3, "dating": _3, "datsun": _3, "day": _3, "dclk": _3, "dds": _3, "deal": _3, "dealer": _3, "deals": _3, "degree": _3, "delivery": _3, "dell": _3, "deloitte": _3, "delta": _3, "democrat": _3, "dental": _3, "dentist": _3, "desi": _3, "design": [1, { "graphic": _4, "bss": _4 }], "dev": [1, { "12chars": _4, "myaddr": _4, "panel": _4, "lcl": _7, "lclstage": _7, "stg": _7, "stgstage": _7, "pages": _4, "r2": _4, "workers": _4, "deno": _4, "deno-staging": _4, "deta": _4, "evervault": _9, "fly": _4, "githubpreview": _4, "gateway": _7, "hrsn": [2, { "psl": [0, { "sub": _4, "wc": [0, { "*": _4, "sub": _7 }] }] }], "botdash": _4, "inbrowser": _7, "is-a-good": _4, "is-a": _4, "iserv": _4, "runcontainers": _4, "localcert": [0, { "user": _7 }], "loginline": _4, "barsy": _4, "mediatech": _4, "modx": _4, "ngrok": _4, "ngrok-free": _4, "is-a-fullstack": _4, "is-cool": _4, "is-not-a": _4, "localplayer": _4, "xmit": _4, "platter-app": _4, "replit": [2, { "archer": _4, "bones": _4, "canary": _4, "global": _4, "hacker": _4, "id": _4, "janeway": _4, "kim": _4, "kira": _4, "kirk": _4, "odo": _4, "paris": _4, "picard": _4, "pike": _4, "prerelease": _4, "reed": _4, "riker": _4, "sisko": _4, "spock": _4, "staging": _4, "sulu": _4, "tarpit": _4, "teams": _4, "tucker": _4, "wesley": _4, "worf": _4 }], "crm": [0, { "d": _7, "w": _7, "wa": _7, "wb": _7, "wc": _7, "wd": _7, "we": _7, "wf": _7 }], "vercel": _4, "webhare": _7 }], "dhl": _3, "diamonds": _3, "diet": _3, "digital": [1, { "cloudapps": [2, { "london": _4 }] }], "direct": [1, { "libp2p": _4 }], "directory": _3, "discount": _3, "discover": _3, "dish": _3, "diy": _3, "dnp": _3, "docs": _3, "doctor": _3, "dog": _3, "domains": _3, "dot": _3, "download": _3, "drive": _3, "dtv": _3, "dubai": _3, "dunlop": _3, "dupont": _3, "durban": _3, "dvag": _3, "dvr": _3, "earth": _3, "eat": _3, "eco": _3, "edeka": _3, "education": _19, "email": [1, { "crisp": [0, { "on": _4 }], "tawk": _49, "tawkto": _49 }], "emerck": _3, "energy": _3, "engineer": _3, "engineering": _3, "enterprises": _3, "epson": _3, "equipment": _3, "ericsson": _3, "erni": _3, "esq": _3, "estate": [1, { "compute": _7 }], "eurovision": _3, "eus": [1, { "party": _50 }], "events": [1, { "koobin": _4, "co": _4 }], "exchange": _3, "expert": _3, "exposed": _3, "express": _3, "extraspace": _3, "fage": _3, "fail": _3, "fairwinds": _3, "faith": _3, "family": _3, "fan": _3, "fans": _3, "farm": [1, { "storj": _4 }], "farmers": _3, "fashion": _3, "fast": _3, "fedex": _3, "feedback": _3, "ferrari": _3, "ferrero": _3, "fidelity": _3, "fido": _3, "film": _3, "final": _3, "finance": _3, "financial": _19, "fire": _3, "firestone": _3, "firmdale": _3, "fish": _3, "fishing": _3, "fit": _3, "fitness": _3, "flickr": _3, "flights": _3, "flir": _3, "florist": _3, "flowers": _3, "fly": _3, "foo": _3, "food": _3, "football": _3, "ford": _3, "forex": _3, "forsale": _3, "forum": _3, "foundation": _3, "fox": _3, "free": _3, "fresenius": _3, "frl": _3, "frogans": _3, "frontier": _3, "ftr": _3, "fujitsu": _3, "fun": _3, "fund": _3, "furniture": _3, "futbol": _3, "fyi": _3, "gal": _3, "gallery": _3, "gallo": _3, "gallup": _3, "game": _3, "games": [1, { "pley": _4, "sheezy": _4 }], "gap": _3, "garden": _3, "gay": [1, { "pages": _4 }], "gbiz": _3, "gdn": [1, { "cnpy": _4 }], "gea": _3, "gent": _3, "genting": _3, "george": _3, "ggee": _3, "gift": _3, "gifts": _3, "gives": _3, "giving": _3, "glass": _3, "gle": _3, "global": [1, { "appwrite": _4 }], "globo": _3, "gmail": _3, "gmbh": _3, "gmo": _3, "gmx": _3, "godaddy": _3, "gold": _3, "goldpoint": _3, "golf": _3, "goo": _3, "goodyear": _3, "goog": [1, { "cloud": _4, "translate": _4, "usercontent": _7 }], "google": _3, "gop": _3, "got": _3, "grainger": _3, "graphics": _3, "gratis": _3, "green": _3, "gripe": _3, "grocery": _3, "group": [1, { "discourse": _4 }], "gucci": _3, "guge": _3, "guide": _3, "guitars": _3, "guru": _3, "hair": _3, "hamburg": _3, "hangout": _3, "haus": _3, "hbo": _3, "hdfc": _3, "hdfcbank": _3, "health": [1, { "hra": _4 }], "healthcare": _3, "help": _3, "helsinki": _3, "here": _3, "hermes": _3, "hiphop": _3, "hisamitsu": _3, "hitachi": _3, "hiv": _3, "hkt": _3, "hockey": _3, "holdings": _3, "holiday": _3, "homedepot": _3, "homegoods": _3, "homes": _3, "homesense": _3, "honda": _3, "horse": _3, "hospital": _3, "host": [1, { "cloudaccess": _4, "freesite": _4, "easypanel": _4, "fastvps": _4, "myfast": _4, "tempurl": _4, "wpmudev": _4, "jele": _4, "mircloud": _4, "wp2": _4, "half": _4 }], "hosting": [1, { "opencraft": _4 }], "hot": _3, "hotels": _3, "hotmail": _3, "house": _3, "how": _3, "hsbc": _3, "hughes": _3, "hyatt": _3, "hyundai": _3, "ibm": _3, "icbc": _3, "ice": _3, "icu": _3, "ieee": _3, "ifm": _3, "ikano": _3, "imamat": _3, "imdb": _3, "immo": _3, "immobilien": _3, "inc": _3, "industries": _3, "infiniti": _3, "ing": _3, "ink": _3, "institute": _3, "insurance": _3, "insure": _3, "international": _3, "intuit": _3, "investments": _3, "ipiranga": _3, "irish": _3, "ismaili": _3, "ist": _3, "istanbul": _3, "itau": _3, "itv": _3, "jaguar": _3, "java": _3, "jcb": _3, "jeep": _3, "jetzt": _3, "jewelry": _3, "jio": _3, "jll": _3, "jmp": _3, "jnj": _3, "joburg": _3, "jot": _3, "joy": _3, "jpmorgan": _3, "jprs": _3, "juegos": _3, "juniper": _3, "kaufen": _3, "kddi": _3, "kerryhotels": _3, "kerryproperties": _3, "kfh": _3, "kia": _3, "kids": _3, "kim": _3, "kindle": _3, "kitchen": _3, "kiwi": _3, "koeln": _3, "komatsu": _3, "kosher": _3, "kpmg": _3, "kpn": _3, "krd": [1, { "co": _4, "edu": _4 }], "kred": _3, "kuokgroup": _3, "kyoto": _3, "lacaixa": _3, "lamborghini": _3, "lamer": _3, "lancaster": _3, "land": _3, "landrover": _3, "lanxess": _3, "lasalle": _3, "lat": _3, "latino": _3, "latrobe": _3, "law": _3, "lawyer": _3, "lds": _3, "lease": _3, "leclerc": _3, "lefrak": _3, "legal": _3, "lego": _3, "lexus": _3, "lgbt": _3, "lidl": _3, "life": _3, "lifeinsurance": _3, "lifestyle": _3, "lighting": _3, "like": _3, "lilly": _3, "limited": _3, "limo": _3, "lincoln": _3, "link": [1, { "myfritz": _4, "cyon": _4, "dweb": _7, "inbrowser": _7, "nftstorage": _57, "mypep": _4, "storacha": _57, "w3s": _57 }], "live": [1, { "aem": _4, "hlx": _4, "ewp": _7 }], "living": _3, "llc": _3, "llp": _3, "loan": _3, "loans": _3, "locker": _3, "locus": _3, "lol": [1, { "omg": _4 }], "london": _3, "lotte": _3, "lotto": _3, "love": _3, "lpl": _3, "lplfinancial": _3, "ltd": _3, "ltda": _3, "lundbeck": _3, "luxe": _3, "luxury": _3, "madrid": _3, "maif": _3, "maison": _3, "makeup": _3, "man": _3, "management": _3, "mango": _3, "map": _3, "market": _3, "marketing": _3, "markets": _3, "marriott": _3, "marshalls": _3, "mattel": _3, "mba": _3, "mckinsey": _3, "med": _3, "media": _58, "meet": _3, "melbourne": _3, "meme": _3, "memorial": _3, "men": _3, "menu": [1, { "barsy": _4, "barsyonline": _4 }], "merck": _3, "merckmsd": _3, "miami": _3, "microsoft": _3, "mini": _3, "mint": _3, "mit": _3, "mitsubishi": _3, "mlb": _3, "mls": _3, "mma": _3, "mobile": _3, "moda": _3, "moe": _3, "moi": _3, "mom": [1, { "ind": _4 }], "monash": _3, "money": _3, "monster": _3, "mormon": _3, "mortgage": _3, "moscow": _3, "moto": _3, "motorcycles": _3, "mov": _3, "movie": _3, "msd": _3, "mtn": _3, "mtr": _3, "music": _3, "nab": _3, "nagoya": _3, "navy": _3, "nba": _3, "nec": _3, "netbank": _3, "netflix": _3, "network": [1, { "alces": _7, "co": _4, "arvo": _4, "azimuth": _4, "tlon": _4 }], "neustar": _3, "new": _3, "news": [1, { "noticeable": _4 }], "next": _3, "nextdirect": _3, "nexus": _3, "nfl": _3, "ngo": _3, "nhk": _3, "nico": _3, "nike": _3, "nikon": _3, "ninja": _3, "nissan": _3, "nissay": _3, "nokia": _3, "norton": _3, "now": _3, "nowruz": _3, "nowtv": _3, "nra": _3, "nrw": _3, "ntt": _3, "nyc": _3, "obi": _3, "observer": _3, "office": _3, "okinawa": _3, "olayan": _3, "olayangroup": _3, "ollo": _3, "omega": _3, "one": [1, { "kin": _7, "service": _4 }], "ong": [1, { "obl": _4 }], "onl": _3, "online": [1, { "eero": _4, "eero-stage": _4, "websitebuilder": _4, "barsy": _4 }], "ooo": _3, "open": _3, "oracle": _3, "orange": [1, { "tech": _4 }], "organic": _3, "origins": _3, "osaka": _3, "otsuka": _3, "ott": _3, "ovh": [1, { "nerdpol": _4 }], "page": [1, { "aem": _4, "hlx": _4, "hlx3": _4, "translated": _4, "codeberg": _4, "heyflow": _4, "prvcy": _4, "rocky": _4, "pdns": _4, "plesk": _4 }], "panasonic": _3, "paris": _3, "pars": _3, "partners": _3, "parts": _3, "party": _3, "pay": _3, "pccw": _3, "pet": _3, "pfizer": _3, "pharmacy": _3, "phd": _3, "philips": _3, "phone": _3, "photo": _3, "photography": _3, "photos": _58, "physio": _3, "pics": _3, "pictet": _3, "pictures": [1, { "1337": _4 }], "pid": _3, "pin": _3, "ping": _3, "pink": _3, "pioneer": _3, "pizza": [1, { "ngrok": _4 }], "place": _19, "play": _3, "playstation": _3, "plumbing": _3, "plus": _3, "pnc": _3, "pohl": _3, "poker": _3, "politie": _3, "porn": _3, "pramerica": _3, "praxi": _3, "press": _3, "prime": _3, "prod": _3, "productions": _3, "prof": _3, "progressive": _3, "promo": _3, "properties": _3, "property": _3, "protection": _3, "pru": _3, "prudential": _3, "pub": [1, { "id": _7, "kin": _7, "barsy": _4 }], "pwc": _3, "qpon": _3, "quebec": _3, "quest": _3, "racing": _3, "radio": _3, "read": _3, "realestate": _3, "realtor": _3, "realty": _3, "recipes": _3, "red": _3, "redstone": _3, "redumbrella": _3, "rehab": _3, "reise": _3, "reisen": _3, "reit": _3, "reliance": _3, "ren": _3, "rent": _3, "rentals": _3, "repair": _3, "report": _3, "republican": _3, "rest": _3, "restaurant": _3, "review": _3, "reviews": _3, "rexroth": _3, "rich": _3, "richardli": _3, "ricoh": _3, "ril": _3, "rio": _3, "rip": [1, { "clan": _4 }], "rocks": [1, { "myddns": _4, "stackit": _4, "lima-city": _4, "webspace": _4 }], "rodeo": _3, "rogers": _3, "room": _3, "rsvp": _3, "rugby": _3, "ruhr": _3, "run": [1, { "appwrite": _7, "development": _4, "ravendb": _4, "liara": [2, { "iran": _4 }], "servers": _4, "build": _7, "code": _7, "database": _7, "migration": _7, "onporter": _4, "repl": _4, "stackit": _4, "val": [0, { "express": _4, "web": _4 }], "wix": _4 }], "rwe": _3, "ryukyu": _3, "saarland": _3, "safe": _3, "safety": _3, "sakura": _3, "sale": _3, "salon": _3, "samsclub": _3, "samsung": _3, "sandvik": _3, "sandvikcoromant": _3, "sanofi": _3, "sap": _3, "sarl": _3, "sas": _3, "save": _3, "saxo": _3, "sbi": _3, "sbs": _3, "scb": _3, "schaeffler": _3, "schmidt": _3, "scholarships": _3, "school": _3, "schule": _3, "schwarz": _3, "science": _3, "scot": [1, { "gov": [2, { "service": _4 }] }], "search": _3, "seat": _3, "secure": _3, "security": _3, "seek": _3, "select": _3, "sener": _3, "services": [1, { "loginline": _4 }], "seven": _3, "sew": _3, "sex": _3, "sexy": _3, "sfr": _3, "shangrila": _3, "sharp": _3, "shell": _3, "shia": _3, "shiksha": _3, "shoes": _3, "shop": [1, { "base": _4, "hoplix": _4, "barsy": _4, "barsyonline": _4, "shopware": _4 }], "shopping": _3, "shouji": _3, "show": _3, "silk": _3, "sina": _3, "singles": _3, "site": [1, { "square": _4, "canva": _22, "cloudera": _7, "convex": _4, "cyon": _4, "fastvps": _4, "figma": _4, "heyflow": _4, "jele": _4, "jouwweb": _4, "loginline": _4, "barsy": _4, "notion": _4, "omniwe": _4, "opensocial": _4, "madethis": _4, "platformsh": _7, "tst": _7, "byen": _4, "srht": _4, "novecore": _4, "cpanel": _4, "wpsquared": _4 }], "ski": _3, "skin": _3, "sky": _3, "skype": _3, "sling": _3, "smart": _3, "smile": _3, "sncf": _3, "soccer": _3, "social": _3, "softbank": _3, "software": _3, "sohu": _3, "solar": _3, "solutions": _3, "song": _3, "sony": _3, "soy": _3, "spa": _3, "space": [1, { "myfast": _4, "heiyu": _4, "hf": [2, { "static": _4 }], "app-ionos": _4, "project": _4, "uber": _4, "xs4all": _4 }], "sport": _3, "spot": _3, "srl": _3, "stada": _3, "staples": _3, "star": _3, "statebank": _3, "statefarm": _3, "stc": _3, "stcgroup": _3, "stockholm": _3, "storage": _3, "store": [1, { "barsy": _4, "sellfy": _4, "shopware": _4, "storebase": _4 }], "stream": _3, "studio": _3, "study": _3, "style": _3, "sucks": _3, "supplies": _3, "supply": _3, "support": [1, { "barsy": _4 }], "surf": _3, "surgery": _3, "suzuki": _3, "swatch": _3, "swiss": _3, "sydney": _3, "systems": [1, { "knightpoint": _4 }], "tab": _3, "taipei": _3, "talk": _3, "taobao": _3, "target": _3, "tatamotors": _3, "tatar": _3, "tattoo": _3, "tax": _3, "taxi": _3, "tci": _3, "tdk": _3, "team": [1, { "discourse": _4, "jelastic": _4 }], "tech": [1, { "cleverapps": _4 }], "technology": _19, "temasek": _3, "tennis": _3, "teva": _3, "thd": _3, "theater": _3, "theatre": _3, "tiaa": _3, "tickets": _3, "tienda": _3, "tips": _3, "tires": _3, "tirol": _3, "tjmaxx": _3, "tjx": _3, "tkmaxx": _3, "tmall": _3, "today": [1, { "prequalifyme": _4 }], "tokyo": _3, "tools": [1, { "addr": _47, "myaddr": _4 }], "top": [1, { "ntdll": _4, "wadl": _7 }], "toray": _3, "toshiba": _3, "total": _3, "tours": _3, "town": _3, "toyota": _3, "toys": _3, "trade": _3, "trading": _3, "training": _3, "travel": _3, "travelers": _3, "travelersinsurance": _3, "trust": _3, "trv": _3, "tube": _3, "tui": _3, "tunes": _3, "tushu": _3, "tvs": _3, "ubank": _3, "ubs": _3, "unicom": _3, "university": _3, "uno": _3, "uol": _3, "ups": _3, "vacations": _3, "vana": _3, "vanguard": _3, "vegas": _3, "ventures": _3, "verisign": _3, "versicherung": _3, "vet": _3, "viajes": _3, "video": _3, "vig": _3, "viking": _3, "villas": _3, "vin": _3, "vip": _3, "virgin": _3, "visa": _3, "vision": _3, "viva": _3, "vivo": _3, "vlaanderen": _3, "vodka": _3, "volvo": _3, "vote": _3, "voting": _3, "voto": _3, "voyage": _3, "wales": _3, "walmart": _3, "walter": _3, "wang": _3, "wanggou": _3, "watch": _3, "watches": _3, "weather": _3, "weatherchannel": _3, "webcam": _3, "weber": _3, "website": _58, "wed": _3, "wedding": _3, "weibo": _3, "weir": _3, "whoswho": _3, "wien": _3, "wiki": _58, "williamhill": _3, "win": _3, "windows": _3, "wine": _3, "winners": _3, "wme": _3, "wolterskluwer": _3, "woodside": _3, "work": _3, "works": _3, "world": _3, "wow": _3, "wtc": _3, "wtf": _3, "xbox": _3, "xerox": _3, "xihuan": _3, "xin": _3, "xn--11b4c3d": _3, "\u0915\u0949\u092E": _3, "xn--1ck2e1b": _3, "\u30BB\u30FC\u30EB": _3, "xn--1qqw23a": _3, "\u4F5B\u5C71": _3, "xn--30rr7y": _3, "\u6148\u5584": _3, "xn--3bst00m": _3, "\u96C6\u56E2": _3, "xn--3ds443g": _3, "\u5728\u7EBF": _3, "xn--3pxu8k": _3, "\u70B9\u770B": _3, "xn--42c2d9a": _3, "\u0E04\u0E2D\u0E21": _3, "xn--45q11c": _3, "\u516B\u5366": _3, "xn--4gbrim": _3, "\u0645\u0648\u0642\u0639": _3, "xn--55qw42g": _3, "\u516C\u76CA": _3, "xn--55qx5d": _3, "\u516C\u53F8": _3, "xn--5su34j936bgsg": _3, "\u9999\u683C\u91CC\u62C9": _3, "xn--5tzm5g": _3, "\u7F51\u7AD9": _3, "xn--6frz82g": _3, "\u79FB\u52A8": _3, "xn--6qq986b3xl": _3, "\u6211\u7231\u4F60": _3, "xn--80adxhks": _3, "\u043C\u043E\u0441\u043A\u0432\u0430": _3, "xn--80aqecdr1a": _3, "\u043A\u0430\u0442\u043E\u043B\u0438\u043A": _3, "xn--80asehdb": _3, "\u043E\u043D\u043B\u0430\u0439\u043D": _3, "xn--80aswg": _3, "\u0441\u0430\u0439\u0442": _3, "xn--8y0a063a": _3, "\u8054\u901A": _3, "xn--9dbq2a": _3, "\u05E7\u05D5\u05DD": _3, "xn--9et52u": _3, "\u65F6\u5C1A": _3, "xn--9krt00a": _3, "\u5FAE\u535A": _3, "xn--b4w605ferd": _3, "\u6DE1\u9A6C\u9521": _3, "xn--bck1b9a5dre4c": _3, "\u30D5\u30A1\u30C3\u30B7\u30E7\u30F3": _3, "xn--c1avg": _3, "\u043E\u0440\u0433": _3, "xn--c2br7g": _3, "\u0928\u0947\u091F": _3, "xn--cck2b3b": _3, "\u30B9\u30C8\u30A2": _3, "xn--cckwcxetd": _3, "\u30A2\u30DE\u30BE\u30F3": _3, "xn--cg4bki": _3, "\uC0BC\uC131": _3, "xn--czr694b": _3, "\u5546\u6807": _3, "xn--czrs0t": _3, "\u5546\u5E97": _3, "xn--czru2d": _3, "\u5546\u57CE": _3, "xn--d1acj3b": _3, "\u0434\u0435\u0442\u0438": _3, "xn--eckvdtc9d": _3, "\u30DD\u30A4\u30F3\u30C8": _3, "xn--efvy88h": _3, "\u65B0\u95FB": _3, "xn--fct429k": _3, "\u5BB6\u96FB": _3, "xn--fhbei": _3, "\u0643\u0648\u0645": _3, "xn--fiq228c5hs": _3, "\u4E2D\u6587\u7F51": _3, "xn--fiq64b": _3, "\u4E2D\u4FE1": _3, "xn--fjq720a": _3, "\u5A31\u4E50": _3, "xn--flw351e": _3, "\u8C37\u6B4C": _3, "xn--fzys8d69uvgm": _3, "\u96FB\u8A0A\u76C8\u79D1": _3, "xn--g2xx48c": _3, "\u8D2D\u7269": _3, "xn--gckr3f0f": _3, "\u30AF\u30E9\u30A6\u30C9": _3, "xn--gk3at1e": _3, "\u901A\u8CA9": _3, "xn--hxt814e": _3, "\u7F51\u5E97": _3, "xn--i1b6b1a6a2e": _3, "\u0938\u0902\u0917\u0920\u0928": _3, "xn--imr513n": _3, "\u9910\u5385": _3, "xn--io0a7i": _3, "\u7F51\u7EDC": _3, "xn--j1aef": _3, "\u043A\u043E\u043C": _3, "xn--jlq480n2rg": _3, "\u4E9A\u9A6C\u900A": _3, "xn--jvr189m": _3, "\u98DF\u54C1": _3, "xn--kcrx77d1x4a": _3, "\u98DE\u5229\u6D66": _3, "xn--kput3i": _3, "\u624B\u673A": _3, "xn--mgba3a3ejt": _3, "\u0627\u0631\u0627\u0645\u0643\u0648": _3, "xn--mgba7c0bbn0a": _3, "\u0627\u0644\u0639\u0644\u064A\u0627\u0646": _3, "xn--mgbab2bd": _3, "\u0628\u0627\u0632\u0627\u0631": _3, "xn--mgbca7dzdo": _3, "\u0627\u0628\u0648\u0638\u0628\u064A": _3, "xn--mgbi4ecexp": _3, "\u0643\u0627\u062B\u0648\u0644\u064A\u0643": _3, "xn--mgbt3dhd": _3, "\u0647\u0645\u0631\u0627\u0647": _3, "xn--mk1bu44c": _3, "\uB2F7\uCEF4": _3, "xn--mxtq1m": _3, "\u653F\u5E9C": _3, "xn--ngbc5azd": _3, "\u0634\u0628\u0643\u0629": _3, "xn--ngbe9e0a": _3, "\u0628\u064A\u062A\u0643": _3, "xn--ngbrx": _3, "\u0639\u0631\u0628": _3, "xn--nqv7f": _3, "\u673A\u6784": _3, "xn--nqv7fs00ema": _3, "\u7EC4\u7EC7\u673A\u6784": _3, "xn--nyqy26a": _3, "\u5065\u5EB7": _3, "xn--otu796d": _3, "\u62DB\u8058": _3, "xn--p1acf": [1, { "xn--90amc": _4, "xn--j1aef": _4, "xn--j1ael8b": _4, "xn--h1ahn": _4, "xn--j1adp": _4, "xn--c1avg": _4, "xn--80aaa0cvac": _4, "xn--h1aliz": _4, "xn--90a1af": _4, "xn--41a": _4 }], "\u0440\u0443\u0441": [1, { "\u0431\u0438\u0437": _4, "\u043A\u043E\u043C": _4, "\u043A\u0440\u044B\u043C": _4, "\u043C\u0438\u0440": _4, "\u043C\u0441\u043A": _4, "\u043E\u0440\u0433": _4, "\u0441\u0430\u043C\u0430\u0440\u0430": _4, "\u0441\u043E\u0447\u0438": _4, "\u0441\u043F\u0431": _4, "\u044F": _4 }], "xn--pssy2u": _3, "\u5927\u62FF": _3, "xn--q9jyb4c": _3, "\u307F\u3093\u306A": _3, "xn--qcka1pmc": _3, "\u30B0\u30FC\u30B0\u30EB": _3, "xn--rhqv96g": _3, "\u4E16\u754C": _3, "xn--rovu88b": _3, "\u66F8\u7C4D": _3, "xn--ses554g": _3, "\u7F51\u5740": _3, "xn--t60b56a": _3, "\uB2F7\uB137": _3, "xn--tckwe": _3, "\u30B3\u30E0": _3, "xn--tiq49xqyj": _3, "\u5929\u4E3B\u6559": _3, "xn--unup4y": _3, "\u6E38\u620F": _3, "xn--vermgensberater-ctb": _3, "verm\xF6gensberater": _3, "xn--vermgensberatung-pwb": _3, "verm\xF6gensberatung": _3, "xn--vhquv": _3, "\u4F01\u4E1A": _3, "xn--vuq861b": _3, "\u4FE1\u606F": _3, "xn--w4r85el8fhu5dnra": _3, "\u5609\u91CC\u5927\u9152\u5E97": _3, "xn--w4rs40l": _3, "\u5609\u91CC": _3, "xn--xhq521b": _3, "\u5E7F\u4E1C": _3, "xn--zfr164b": _3, "\u653F\u52A1": _3, "xyz": [1, { "botdash": _4, "telebit": _7 }], "yachts": _3, "yahoo": _3, "yamaxun": _3, "yandex": _3, "yodobashi": _3, "yoga": _3, "yokohama": _3, "you": _3, "youtube": _3, "yun": _3, "zappos": _3, "zara": _3, "zero": _3, "zip": _3, "zone": [1, { "cloud66": _4, "triton": _7, "stackit": _4, "lima": _4 }], "zuerich": _3 }];
      return rules2;
    })();
    function lookupInTrie(parts, trie, index2, allowedMask) {
      let result = null;
      let node = trie;
      while (node !== void 0) {
        if ((node[0] & allowedMask) !== 0) {
          result = {
            index: index2 + 1,
            isIcann: node[0] === 1,
            isPrivate: node[0] === 2
          };
        }
        if (index2 === -1) {
          break;
        }
        const succ = node[1];
        node = Object.prototype.hasOwnProperty.call(succ, parts[index2]) ? succ[parts[index2]] : succ["*"];
        index2 -= 1;
      }
      return result;
    }
    function suffixLookup(hostname, options, out) {
      var _a2;
      if (fastPathLookup(hostname, options, out)) {
        return;
      }
      const hostnameParts = hostname.split(".");
      const allowedMask = (options.allowPrivateDomains ? 2 : 0) | (options.allowIcannDomains ? 1 : 0);
      const exceptionMatch = lookupInTrie(hostnameParts, exceptions, hostnameParts.length - 1, allowedMask);
      if (exceptionMatch !== null) {
        out.isIcann = exceptionMatch.isIcann;
        out.isPrivate = exceptionMatch.isPrivate;
        out.publicSuffix = hostnameParts.slice(exceptionMatch.index + 1).join(".");
        return;
      }
      const rulesMatch = lookupInTrie(hostnameParts, rules, hostnameParts.length - 1, allowedMask);
      if (rulesMatch !== null) {
        out.isIcann = rulesMatch.isIcann;
        out.isPrivate = rulesMatch.isPrivate;
        out.publicSuffix = hostnameParts.slice(rulesMatch.index).join(".");
        return;
      }
      out.isIcann = false;
      out.isPrivate = false;
      out.publicSuffix = (_a2 = hostnameParts[hostnameParts.length - 1]) !== null && _a2 !== void 0 ? _a2 : null;
    }
    var RESULT = getEmptyResult();
    function parse3(url3, options = {}) {
      return parseImpl(url3, 5, suffixLookup, options, getEmptyResult());
    }
    function getHostname(url3, options = {}) {
      resetResult(RESULT);
      return parseImpl(url3, 0, suffixLookup, options, RESULT).hostname;
    }
    function getPublicSuffix(url3, options = {}) {
      resetResult(RESULT);
      return parseImpl(url3, 2, suffixLookup, options, RESULT).publicSuffix;
    }
    function getDomain(url3, options = {}) {
      resetResult(RESULT);
      return parseImpl(url3, 3, suffixLookup, options, RESULT).domain;
    }
    function getSubdomain(url3, options = {}) {
      resetResult(RESULT);
      return parseImpl(url3, 4, suffixLookup, options, RESULT).subdomain;
    }
    function getDomainWithoutSuffix(url3, options = {}) {
      resetResult(RESULT);
      return parseImpl(url3, 5, suffixLookup, options, RESULT).domainWithoutSuffix;
    }
    exports.getDomain = getDomain;
    exports.getDomainWithoutSuffix = getDomainWithoutSuffix;
    exports.getHostname = getHostname;
    exports.getPublicSuffix = getPublicSuffix;
    exports.getSubdomain = getSubdomain;
    exports.parse = parse3;
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/getPublicSuffix.js
var require_getPublicSuffix = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/getPublicSuffix.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getPublicSuffix = getPublicSuffix;
    var tldts_1 = require_cjs12();
    var SPECIAL_USE_DOMAINS = ["local", "example", "invalid", "localhost", "test"];
    var SPECIAL_TREATMENT_DOMAINS = ["localhost", "invalid"];
    var defaultGetPublicSuffixOptions = {
      allowSpecialUseDomain: false,
      ignoreError: false
    };
    function getPublicSuffix(domain, options = {}) {
      options = { ...defaultGetPublicSuffixOptions, ...options };
      const domainParts = domain.split(".");
      const topLevelDomain = domainParts[domainParts.length - 1];
      const allowSpecialUseDomain = !!options.allowSpecialUseDomain;
      const ignoreError = !!options.ignoreError;
      if (allowSpecialUseDomain && topLevelDomain !== void 0 && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {
        if (domainParts.length > 1) {
          const secondLevelDomain = domainParts[domainParts.length - 2];
          return `${secondLevelDomain}.${topLevelDomain}`;
        } else if (SPECIAL_TREATMENT_DOMAINS.includes(topLevelDomain)) {
          return topLevelDomain;
        }
      }
      if (!ignoreError && topLevelDomain !== void 0 && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {
        throw new Error(`Cookie has domain set to the public suffix "${topLevelDomain}" which is a special use domain. To allow this, configure your CookieJar with {allowSpecialUseDomain: true, rejectPublicSuffixes: false}.`);
      }
      const publicSuffix = (0, tldts_1.getDomain)(domain, {
        allowIcannDomains: true,
        allowPrivateDomains: true
      });
      if (publicSuffix)
        return publicSuffix;
    }
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/permuteDomain.js
var require_permuteDomain = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/permuteDomain.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.permuteDomain = permuteDomain;
    var getPublicSuffix_1 = require_getPublicSuffix();
    function permuteDomain(domain, allowSpecialUseDomain) {
      const pubSuf = (0, getPublicSuffix_1.getPublicSuffix)(domain, {
        allowSpecialUseDomain
      });
      if (!pubSuf) {
        return void 0;
      }
      if (pubSuf == domain) {
        return [domain];
      }
      if (domain.slice(-1) == ".") {
        domain = domain.slice(0, -1);
      }
      const prefix = domain.slice(0, -(pubSuf.length + 1));
      const parts = prefix.split(".").reverse();
      let cur = pubSuf;
      const permutations = [cur];
      while (parts.length) {
        const part = parts.shift();
        cur = `${part}.${cur}`;
        permutations.push(cur);
      }
      return permutations;
    }
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/store.js
var require_store = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/store.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Store = void 0;
    var Store = class {
      constructor() {
        this.synchronous = false;
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      findCookie(_domain, _path, _key, _callback) {
        throw new Error("findCookie is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      findCookies(_domain, _path, _allowSpecialUseDomain = false, _callback) {
        throw new Error("findCookies is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      putCookie(_cookie, _callback) {
        throw new Error("putCookie is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      updateCookie(_oldCookie, _newCookie, _callback) {
        throw new Error("updateCookie is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeCookie(_domain, _path, _key, _callback) {
        throw new Error("removeCookie is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeCookies(_domain, _path, _callback) {
        throw new Error("removeCookies is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeAllCookies(_callback) {
        throw new Error("removeAllCookies is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      getAllCookies(_callback) {
        throw new Error("getAllCookies is not implemented (therefore jar cannot be serialized)");
      }
    };
    exports.Store = Store;
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/utils.js
var require_utils14 = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.safeToString = exports.objectToString = void 0;
    exports.createPromiseCallback = createPromiseCallback;
    exports.inOperator = inOperator;
    var objectToString2 = (obj) => Object.prototype.toString.call(obj);
    exports.objectToString = objectToString2;
    var safeArrayToString = (arr, seenArrays) => {
      if (typeof arr.join !== "function")
        return (0, exports.objectToString)(arr);
      seenArrays.add(arr);
      const mapped = arr.map((val) => val === null || val === void 0 || seenArrays.has(val) ? "" : safeToStringImpl(val, seenArrays));
      return mapped.join();
    };
    var safeToStringImpl = (val, seenArrays = /* @__PURE__ */ new WeakSet()) => {
      if (typeof val !== "object" || val === null) {
        return String(val);
      } else if (typeof val.toString === "function") {
        return Array.isArray(val) ? (
          // Arrays have a weird custom toString that we need to replicate
          safeArrayToString(val, seenArrays)
        ) : (
          // eslint-disable-next-line @typescript-eslint/no-base-to-string
          String(val)
        );
      } else {
        return (0, exports.objectToString)(val);
      }
    };
    var safeToString = (val) => safeToStringImpl(val);
    exports.safeToString = safeToString;
    function createPromiseCallback(cb) {
      let callback;
      let resolve4;
      let reject;
      const promise = new Promise((_resolve, _reject) => {
        resolve4 = _resolve;
        reject = _reject;
      });
      if (typeof cb === "function") {
        callback = (err2, result) => {
          try {
            if (err2)
              cb(err2);
            else
              cb(null, result);
          } catch (e4) {
            reject(e4 instanceof Error ? e4 : new Error());
          }
        };
      } else {
        callback = (err2, result) => {
          try {
            if (err2)
              reject(err2);
            else
              resolve4(result);
          } catch (e4) {
            reject(e4 instanceof Error ? e4 : new Error());
          }
        };
      }
      return {
        promise,
        callback,
        resolve: (value2) => {
          callback(null, value2);
          return promise;
        },
        reject: (error) => {
          callback(error);
          return promise;
        }
      };
    }
    function inOperator(k3, o5) {
      return k3 in o5;
    }
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/memstore.js
var require_memstore = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/memstore.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.MemoryCookieStore = void 0;
    var pathMatch_1 = require_pathMatch();
    var permuteDomain_1 = require_permuteDomain();
    var store_1 = require_store();
    var utils_1 = require_utils14();
    var MemoryCookieStore = class extends store_1.Store {
      /**
       * Create a new {@link MemoryCookieStore}.
       */
      constructor() {
        super();
        this.synchronous = true;
        this.idx = /* @__PURE__ */ Object.create(null);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      findCookie(domain, path3, key, callback) {
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        if (domain == null || path3 == null || key == null) {
          return promiseCallback.resolve(void 0);
        }
        const result = this.idx[domain]?.[path3]?.[key];
        return promiseCallback.resolve(result);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      findCookies(domain, path3, allowSpecialUseDomain = false, callback) {
        if (typeof allowSpecialUseDomain === "function") {
          callback = allowSpecialUseDomain;
          allowSpecialUseDomain = true;
        }
        const results = [];
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        if (!domain) {
          return promiseCallback.resolve([]);
        }
        let pathMatcher;
        if (!path3) {
          pathMatcher = function matchAll2(domainIndex) {
            for (const curPath in domainIndex) {
              const pathIndex = domainIndex[curPath];
              for (const key in pathIndex) {
                const value2 = pathIndex[key];
                if (value2) {
                  results.push(value2);
                }
              }
            }
          };
        } else {
          pathMatcher = function matchRFC(domainIndex) {
            for (const cookiePath in domainIndex) {
              if ((0, pathMatch_1.pathMatch)(path3, cookiePath)) {
                const pathIndex = domainIndex[cookiePath];
                for (const key in pathIndex) {
                  const value2 = pathIndex[key];
                  if (value2) {
                    results.push(value2);
                  }
                }
              }
            }
          };
        }
        const domains = (0, permuteDomain_1.permuteDomain)(domain, allowSpecialUseDomain) || [domain];
        const idx = this.idx;
        domains.forEach((curDomain) => {
          const domainIndex = idx[curDomain];
          if (!domainIndex) {
            return;
          }
          pathMatcher(domainIndex);
        });
        return promiseCallback.resolve(results);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      putCookie(cookie, callback) {
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        const { domain, path: path3, key } = cookie;
        if (domain == null || path3 == null || key == null) {
          return promiseCallback.resolve(void 0);
        }
        const domainEntry = this.idx[domain] ?? /* @__PURE__ */ Object.create(null);
        this.idx[domain] = domainEntry;
        const pathEntry = domainEntry[path3] ?? /* @__PURE__ */ Object.create(null);
        domainEntry[path3] = pathEntry;
        pathEntry[key] = cookie;
        return promiseCallback.resolve(void 0);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      updateCookie(_oldCookie, newCookie, callback) {
        if (callback)
          this.putCookie(newCookie, callback);
        else
          return this.putCookie(newCookie);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeCookie(domain, path3, key, callback) {
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        delete this.idx[domain]?.[path3]?.[key];
        return promiseCallback.resolve(void 0);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeCookies(domain, path3, callback) {
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        const domainEntry = this.idx[domain];
        if (domainEntry) {
          if (path3) {
            delete domainEntry[path3];
          } else {
            delete this.idx[domain];
          }
        }
        return promiseCallback.resolve(void 0);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeAllCookies(callback) {
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        this.idx = /* @__PURE__ */ Object.create(null);
        return promiseCallback.resolve(void 0);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      getAllCookies(callback) {
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        const cookies = [];
        const idx = this.idx;
        const domains = Object.keys(idx);
        domains.forEach((domain) => {
          const domainEntry = idx[domain] ?? {};
          const paths = Object.keys(domainEntry);
          paths.forEach((path3) => {
            const pathEntry = domainEntry[path3] ?? {};
            const keys2 = Object.keys(pathEntry);
            keys2.forEach((key) => {
              const keyEntry = pathEntry[key];
              if (keyEntry != null) {
                cookies.push(keyEntry);
              }
            });
          });
        });
        cookies.sort((a5, b3) => {
          return (a5.creationIndex || 0) - (b3.creationIndex || 0);
        });
        return promiseCallback.resolve(cookies);
      }
    };
    exports.MemoryCookieStore = MemoryCookieStore;
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/validators.js
var require_validators2 = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/validators.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ParameterError = void 0;
    exports.isNonEmptyString = isNonEmptyString2;
    exports.isDate = isDate3;
    exports.isEmptyString = isEmptyString2;
    exports.isString = isString5;
    exports.isObject = isObject4;
    exports.isInteger = isInteger2;
    exports.validate = validate;
    var utils_1 = require_utils14();
    function isNonEmptyString2(data2) {
      return isString5(data2) && data2 !== "";
    }
    function isDate3(data2) {
      return data2 instanceof Date && isInteger2(data2.getTime());
    }
    function isEmptyString2(data2) {
      return data2 === "" || data2 instanceof String && data2.toString() === "";
    }
    function isString5(data2) {
      return typeof data2 === "string" || data2 instanceof String;
    }
    function isObject4(data2) {
      return (0, utils_1.objectToString)(data2) === "[object Object]";
    }
    function isInteger2(data2) {
      return typeof data2 === "number" && data2 % 1 === 0;
    }
    function validate(bool, cbOrMessage, message) {
      if (bool)
        return;
      const cb = typeof cbOrMessage === "function" ? cbOrMessage : void 0;
      let options = typeof cbOrMessage === "function" ? message : cbOrMessage;
      if (!isObject4(options))
        options = "[object Object]";
      const err2 = new ParameterError((0, utils_1.safeToString)(options));
      if (cb)
        cb(err2);
      else
        throw err2;
    }
    var ParameterError = class extends Error {
    };
    exports.ParameterError = ParameterError;
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/version.js
var require_version = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/version.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.version = void 0;
    exports.version = "5.1.2";
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/constants.js
var require_constants8 = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/constants.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.IP_V6_REGEX_OBJECT = exports.PrefixSecurityEnum = void 0;
    exports.PrefixSecurityEnum = {
      SILENT: "silent",
      STRICT: "strict",
      DISABLED: "unsafe-disabled"
    };
    Object.freeze(exports.PrefixSecurityEnum);
    var IP_V6_REGEX = `
\\[?(?:
(?:[a-fA-F\\d]{1,4}:){7}(?:[a-fA-F\\d]{1,4}|:)|
(?:[a-fA-F\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-fA-F\\d]{1,4}|:)|
(?:[a-fA-F\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,2}|:)|
(?:[a-fA-F\\d]{1,4}:){4}(?:(?::[a-fA-F\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,3}|:)|
(?:[a-fA-F\\d]{1,4}:){3}(?:(?::[a-fA-F\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,4}|:)|
(?:[a-fA-F\\d]{1,4}:){2}(?:(?::[a-fA-F\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,5}|:)|
(?:[a-fA-F\\d]{1,4}:){1}(?:(?::[a-fA-F\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,6}|:)|
(?::(?:(?::[a-fA-F\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,7}|:))
)(?:%[0-9a-zA-Z]{1,})?\\]?
`.replace(/\s*\/\/.*$/gm, "").replace(/\n/g, "").trim();
    exports.IP_V6_REGEX_OBJECT = new RegExp(`^${IP_V6_REGEX}$`);
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/canonicalDomain.js
var require_canonicalDomain = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/canonicalDomain.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.canonicalDomain = canonicalDomain;
    var constants_1 = require_constants8();
    function domainToASCII(domain) {
      return new URL(`http://${domain}`).hostname;
    }
    function canonicalDomain(domainName) {
      if (domainName == null) {
        return void 0;
      }
      let str = domainName.trim().replace(/^\./, "");
      if (constants_1.IP_V6_REGEX_OBJECT.test(str)) {
        if (!str.startsWith("[")) {
          str = "[" + str;
        }
        if (!str.endsWith("]")) {
          str = str + "]";
        }
        return domainToASCII(str).slice(1, -1);
      }
      if (/[^\u0001-\u007f]/.test(str)) {
        return domainToASCII(str);
      }
      return str.toLowerCase();
    }
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/formatDate.js
var require_formatDate = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/formatDate.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.formatDate = formatDate;
    function formatDate(date) {
      return date.toUTCString();
    }
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/parseDate.js
var require_parseDate = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/parseDate.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.parseDate = parseDate;
    var DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/;
    var MONTH_TO_NUM = {
      jan: 0,
      feb: 1,
      mar: 2,
      apr: 3,
      may: 4,
      jun: 5,
      jul: 6,
      aug: 7,
      sep: 8,
      oct: 9,
      nov: 10,
      dec: 11
    };
    function parseDigits(token, minDigits, maxDigits, trailingOK) {
      let count = 0;
      while (count < token.length) {
        const c6 = token.charCodeAt(count);
        if (c6 <= 47 || c6 >= 58) {
          break;
        }
        count++;
      }
      if (count < minDigits || count > maxDigits) {
        return;
      }
      if (!trailingOK && count != token.length) {
        return;
      }
      return parseInt(token.slice(0, count), 10);
    }
    function parseTime(token) {
      const parts = token.split(":");
      const result = [0, 0, 0];
      if (parts.length !== 3) {
        return;
      }
      for (let i5 = 0; i5 < 3; i5++) {
        const trailingOK = i5 == 2;
        const numPart = parts[i5];
        if (numPart === void 0) {
          return;
        }
        const num = parseDigits(numPart, 1, 2, trailingOK);
        if (num === void 0) {
          return;
        }
        result[i5] = num;
      }
      return result;
    }
    function parseMonth(token) {
      token = String(token).slice(0, 3).toLowerCase();
      switch (token) {
        case "jan":
          return MONTH_TO_NUM.jan;
        case "feb":
          return MONTH_TO_NUM.feb;
        case "mar":
          return MONTH_TO_NUM.mar;
        case "apr":
          return MONTH_TO_NUM.apr;
        case "may":
          return MONTH_TO_NUM.may;
        case "jun":
          return MONTH_TO_NUM.jun;
        case "jul":
          return MONTH_TO_NUM.jul;
        case "aug":
          return MONTH_TO_NUM.aug;
        case "sep":
          return MONTH_TO_NUM.sep;
        case "oct":
          return MONTH_TO_NUM.oct;
        case "nov":
          return MONTH_TO_NUM.nov;
        case "dec":
          return MONTH_TO_NUM.dec;
        default:
          return;
      }
    }
    function parseDate(cookieDate) {
      if (!cookieDate) {
        return;
      }
      const tokens = cookieDate.split(DATE_DELIM);
      let hour;
      let minute;
      let second;
      let dayOfMonth;
      let month;
      let year;
      for (let i5 = 0; i5 < tokens.length; i5++) {
        const token = (tokens[i5] ?? "").trim();
        if (!token.length) {
          continue;
        }
        if (second === void 0) {
          const result = parseTime(token);
          if (result) {
            hour = result[0];
            minute = result[1];
            second = result[2];
            continue;
          }
        }
        if (dayOfMonth === void 0) {
          const result = parseDigits(token, 1, 2, true);
          if (result !== void 0) {
            dayOfMonth = result;
            continue;
          }
        }
        if (month === void 0) {
          const result = parseMonth(token);
          if (result !== void 0) {
            month = result;
            continue;
          }
        }
        if (year === void 0) {
          const result = parseDigits(token, 2, 4, true);
          if (result !== void 0) {
            year = result;
            if (year >= 70 && year <= 99) {
              year += 1900;
            } else if (year >= 0 && year <= 69) {
              year += 2e3;
            }
          }
        }
      }
      if (dayOfMonth === void 0 || month === void 0 || year === void 0 || hour === void 0 || minute === void 0 || second === void 0 || dayOfMonth < 1 || dayOfMonth > 31 || year < 1601 || hour > 23 || minute > 59 || second > 59) {
        return;
      }
      return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second));
    }
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/cookie.js
var require_cookie = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/cookie.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Cookie = void 0;
    var getPublicSuffix_1 = require_getPublicSuffix();
    var validators4 = __importStar2(require_validators2());
    var utils_1 = require_utils14();
    var formatDate_1 = require_formatDate();
    var parseDate_1 = require_parseDate();
    var canonicalDomain_1 = require_canonicalDomain();
    var COOKIE_OCTETS = /^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;
    var PATH_VALUE = /[\x20-\x3A\x3C-\x7E]+/;
    var CONTROL_CHARS = /[\x00-\x1F]/;
    var TERMINATORS = ["\n", "\r", "\0"];
    function trimTerminator(str) {
      if (validators4.isEmptyString(str))
        return str;
      for (let t4 = 0; t4 < TERMINATORS.length; t4++) {
        const terminator = TERMINATORS[t4];
        const terminatorIdx = terminator ? str.indexOf(terminator) : -1;
        if (terminatorIdx !== -1) {
          str = str.slice(0, terminatorIdx);
        }
      }
      return str;
    }
    function parseCookiePair(cookiePair, looseMode) {
      cookiePair = trimTerminator(cookiePair);
      let firstEq = cookiePair.indexOf("=");
      if (looseMode) {
        if (firstEq === 0) {
          cookiePair = cookiePair.substring(1);
          firstEq = cookiePair.indexOf("=");
        }
      } else {
        if (firstEq <= 0) {
          return void 0;
        }
      }
      let cookieName, cookieValue;
      if (firstEq <= 0) {
        cookieName = "";
        cookieValue = cookiePair.trim();
      } else {
        cookieName = cookiePair.slice(0, firstEq).trim();
        cookieValue = cookiePair.slice(firstEq + 1).trim();
      }
      if (CONTROL_CHARS.test(cookieName) || CONTROL_CHARS.test(cookieValue)) {
        return void 0;
      }
      const c6 = new Cookie();
      c6.key = cookieName;
      c6.value = cookieValue;
      return c6;
    }
    function parse3(str, options) {
      if (validators4.isEmptyString(str) || !validators4.isString(str)) {
        return void 0;
      }
      str = str.trim();
      const firstSemi = str.indexOf(";");
      const cookiePair = firstSemi === -1 ? str : str.slice(0, firstSemi);
      const c6 = parseCookiePair(cookiePair, options?.loose ?? false);
      if (!c6) {
        return void 0;
      }
      if (firstSemi === -1) {
        return c6;
      }
      const unparsed = str.slice(firstSemi + 1).trim();
      if (unparsed.length === 0) {
        return c6;
      }
      const cookie_avs = unparsed.split(";");
      while (cookie_avs.length) {
        const av = (cookie_avs.shift() ?? "").trim();
        if (av.length === 0) {
          continue;
        }
        const av_sep = av.indexOf("=");
        let av_key, av_value;
        if (av_sep === -1) {
          av_key = av;
          av_value = null;
        } else {
          av_key = av.slice(0, av_sep);
          av_value = av.slice(av_sep + 1);
        }
        av_key = av_key.trim().toLowerCase();
        if (av_value) {
          av_value = av_value.trim();
        }
        switch (av_key) {
          case "expires":
            if (av_value) {
              const exp = (0, parseDate_1.parseDate)(av_value);
              if (exp) {
                c6.expires = exp;
              }
            }
            break;
          case "max-age":
            if (av_value) {
              if (/^-?[0-9]+$/.test(av_value)) {
                const delta = parseInt(av_value, 10);
                c6.setMaxAge(delta);
              }
            }
            break;
          case "domain":
            if (av_value) {
              const domain = av_value.trim().replace(/^\./, "");
              if (domain) {
                c6.domain = domain.toLowerCase();
              }
            }
            break;
          case "path":
            c6.path = av_value && av_value[0] === "/" ? av_value : null;
            break;
          case "secure":
            c6.secure = true;
            break;
          case "httponly":
            c6.httpOnly = true;
            break;
          case "samesite":
            switch (av_value ? av_value.toLowerCase() : "") {
              case "strict":
                c6.sameSite = "strict";
                break;
              case "lax":
                c6.sameSite = "lax";
                break;
              case "none":
                c6.sameSite = "none";
                break;
              default:
                c6.sameSite = void 0;
                break;
            }
            break;
          default:
            c6.extensions = c6.extensions || [];
            c6.extensions.push(av);
            break;
        }
      }
      return c6;
    }
    function fromJSON(str) {
      if (!str || validators4.isEmptyString(str)) {
        return void 0;
      }
      let obj;
      if (typeof str === "string") {
        try {
          obj = JSON.parse(str);
        } catch {
          return void 0;
        }
      } else {
        obj = str;
      }
      const c6 = new Cookie();
      Cookie.serializableProperties.forEach((prop) => {
        if (obj && typeof obj === "object" && (0, utils_1.inOperator)(prop, obj)) {
          const val = obj[prop];
          if (val === void 0) {
            return;
          }
          if ((0, utils_1.inOperator)(prop, cookieDefaults) && val === cookieDefaults[prop]) {
            return;
          }
          switch (prop) {
            case "key":
            case "value":
            case "sameSite":
              if (typeof val === "string") {
                c6[prop] = val;
              }
              break;
            case "expires":
            case "creation":
            case "lastAccessed":
              if (typeof val === "number" || typeof val === "string" || val instanceof Date) {
                c6[prop] = obj[prop] == "Infinity" ? "Infinity" : new Date(val);
              } else if (val === null) {
                c6[prop] = null;
              }
              break;
            case "maxAge":
              if (typeof val === "number" || val === "Infinity" || val === "-Infinity") {
                c6[prop] = val;
              }
              break;
            case "domain":
            case "path":
              if (typeof val === "string" || val === null) {
                c6[prop] = val;
              }
              break;
            case "secure":
            case "httpOnly":
              if (typeof val === "boolean") {
                c6[prop] = val;
              }
              break;
            case "extensions":
              if (Array.isArray(val) && val.every((item) => typeof item === "string")) {
                c6[prop] = val;
              }
              break;
            case "hostOnly":
            case "pathIsDefault":
              if (typeof val === "boolean" || val === null) {
                c6[prop] = val;
              }
              break;
          }
        }
      });
      return c6;
    }
    var cookieDefaults = {
      // the order in which the RFC has them:
      key: "",
      value: "",
      expires: "Infinity",
      maxAge: null,
      domain: null,
      path: null,
      secure: false,
      httpOnly: false,
      extensions: null,
      // set by the CookieJar:
      hostOnly: null,
      pathIsDefault: null,
      creation: null,
      lastAccessed: null,
      sameSite: void 0
    };
    var Cookie = class _Cookie {
      /**
       * Create a new Cookie instance.
       * @public
       * @param options - The attributes to set on the cookie
       */
      constructor(options = {}) {
        this.key = options.key ?? cookieDefaults.key;
        this.value = options.value ?? cookieDefaults.value;
        this.expires = options.expires ?? cookieDefaults.expires;
        this.maxAge = options.maxAge ?? cookieDefaults.maxAge;
        this.domain = options.domain ?? cookieDefaults.domain;
        this.path = options.path ?? cookieDefaults.path;
        this.secure = options.secure ?? cookieDefaults.secure;
        this.httpOnly = options.httpOnly ?? cookieDefaults.httpOnly;
        this.extensions = options.extensions ?? cookieDefaults.extensions;
        this.creation = options.creation ?? cookieDefaults.creation;
        this.hostOnly = options.hostOnly ?? cookieDefaults.hostOnly;
        this.pathIsDefault = options.pathIsDefault ?? cookieDefaults.pathIsDefault;
        this.lastAccessed = options.lastAccessed ?? cookieDefaults.lastAccessed;
        this.sameSite = options.sameSite ?? cookieDefaults.sameSite;
        this.creation = options.creation ?? /* @__PURE__ */ new Date();
        Object.defineProperty(this, "creationIndex", {
          configurable: false,
          enumerable: false,
          // important for assert.deepEqual checks
          writable: true,
          value: ++_Cookie.cookiesCreated
        });
        this.creationIndex = _Cookie.cookiesCreated;
      }
      [Symbol.for("nodejs.util.inspect.custom")]() {
        const now = Date.now();
        const hostOnly = this.hostOnly != null ? this.hostOnly.toString() : "?";
        const createAge = this.creation && this.creation !== "Infinity" ? `${String(now - this.creation.getTime())}ms` : "?";
        const accessAge = this.lastAccessed && this.lastAccessed !== "Infinity" ? `${String(now - this.lastAccessed.getTime())}ms` : "?";
        return `Cookie="${this.toString()}; hostOnly=${hostOnly}; aAge=${accessAge}; cAge=${createAge}"`;
      }
      /**
       * For convenience in using `JSON.stringify(cookie)`. Returns a plain-old Object that can be JSON-serialized.
       *
       * @remarks
       * - Any `Date` properties (such as {@link Cookie.expires}, {@link Cookie.creation}, and {@link Cookie.lastAccessed}) are exported in ISO format (`Date.toISOString()`).
       *
       *  - Custom Cookie properties are discarded. In tough-cookie 1.x, since there was no {@link Cookie.toJSON} method explicitly defined, all enumerable properties were captured.
       *      If you want a property to be serialized, add the property name to {@link Cookie.serializableProperties}.
       */
      toJSON() {
        const obj = {};
        for (const prop of _Cookie.serializableProperties) {
          const val = this[prop];
          if (val === cookieDefaults[prop]) {
            continue;
          }
          switch (prop) {
            case "key":
            case "value":
            case "sameSite":
              if (typeof val === "string") {
                obj[prop] = val;
              }
              break;
            case "expires":
            case "creation":
            case "lastAccessed":
              if (typeof val === "number" || typeof val === "string" || val instanceof Date) {
                obj[prop] = val == "Infinity" ? "Infinity" : new Date(val).toISOString();
              } else if (val === null) {
                obj[prop] = null;
              }
              break;
            case "maxAge":
              if (typeof val === "number" || val === "Infinity" || val === "-Infinity") {
                obj[prop] = val;
              }
              break;
            case "domain":
            case "path":
              if (typeof val === "string" || val === null) {
                obj[prop] = val;
              }
              break;
            case "secure":
            case "httpOnly":
              if (typeof val === "boolean") {
                obj[prop] = val;
              }
              break;
            case "extensions":
              if (Array.isArray(val)) {
                obj[prop] = val;
              }
              break;
            case "hostOnly":
            case "pathIsDefault":
              if (typeof val === "boolean" || val === null) {
                obj[prop] = val;
              }
              break;
          }
        }
        return obj;
      }
      /**
       * Does a deep clone of this cookie, implemented exactly as `Cookie.fromJSON(cookie.toJSON())`.
       * @public
       */
      clone() {
        return fromJSON(this.toJSON());
      }
      /**
       * Validates cookie attributes for semantic correctness. Useful for "lint" checking any `Set-Cookie` headers you generate.
       * For now, it returns a boolean, but eventually could return a reason string.
       *
       * @remarks
       * Works for a few things, but is by no means comprehensive.
       *
       * @beta
       */
      validate() {
        if (!this.value || !COOKIE_OCTETS.test(this.value)) {
          return false;
        }
        if (this.expires != "Infinity" && !(this.expires instanceof Date) && !(0, parseDate_1.parseDate)(this.expires)) {
          return false;
        }
        if (this.maxAge != null && this.maxAge !== "Infinity" && (this.maxAge === "-Infinity" || this.maxAge <= 0)) {
          return false;
        }
        if (this.path != null && !PATH_VALUE.test(this.path)) {
          return false;
        }
        const cdomain = this.cdomain();
        if (cdomain) {
          if (cdomain.match(/\.$/)) {
            return false;
          }
          const suffix = (0, getPublicSuffix_1.getPublicSuffix)(cdomain);
          if (suffix == null) {
            return false;
          }
        }
        return true;
      }
      /**
       * Sets the 'Expires' attribute on a cookie.
       *
       * @remarks
       * When given a `string` value it will be parsed with {@link parseDate}. If the value can't be parsed as a cookie date
       * then the 'Expires' attribute will be set to `"Infinity"`.
       *
       * @param exp - the new value for the 'Expires' attribute of the cookie.
       */
      setExpires(exp) {
        if (exp instanceof Date) {
          this.expires = exp;
        } else {
          this.expires = (0, parseDate_1.parseDate)(exp) || "Infinity";
        }
      }
      /**
       * Sets the 'Max-Age' attribute (in seconds) on a cookie.
       *
       * @remarks
       * Coerces `-Infinity` to `"-Infinity"` and `Infinity` to `"Infinity"` so it can be serialized to JSON.
       *
       * @param age - the new value for the 'Max-Age' attribute (in seconds).
       */
      setMaxAge(age) {
        if (age === Infinity) {
          this.maxAge = "Infinity";
        } else if (age === -Infinity) {
          this.maxAge = "-Infinity";
        } else {
          this.maxAge = age;
        }
      }
      /**
       * Encodes to a `Cookie` header value (specifically, the {@link Cookie.key} and {@link Cookie.value} properties joined with "=").
       * @public
       */
      cookieString() {
        const val = this.value || "";
        if (this.key) {
          return `${this.key}=${val}`;
        }
        return val;
      }
      /**
       * Encodes to a `Set-Cookie header` value.
       * @public
       */
      toString() {
        let str = this.cookieString();
        if (this.expires != "Infinity") {
          if (this.expires instanceof Date) {
            str += `; Expires=${(0, formatDate_1.formatDate)(this.expires)}`;
          }
        }
        if (this.maxAge != null && this.maxAge != Infinity) {
          str += `; Max-Age=${String(this.maxAge)}`;
        }
        if (this.domain && !this.hostOnly) {
          str += `; Domain=${this.domain}`;
        }
        if (this.path) {
          str += `; Path=${this.path}`;
        }
        if (this.secure) {
          str += "; Secure";
        }
        if (this.httpOnly) {
          str += "; HttpOnly";
        }
        if (this.sameSite && this.sameSite !== "none") {
          if (this.sameSite.toLowerCase() === _Cookie.sameSiteCanonical.lax.toLowerCase()) {
            str += `; SameSite=${_Cookie.sameSiteCanonical.lax}`;
          } else if (this.sameSite.toLowerCase() === _Cookie.sameSiteCanonical.strict.toLowerCase()) {
            str += `; SameSite=${_Cookie.sameSiteCanonical.strict}`;
          } else {
            str += `; SameSite=${this.sameSite}`;
          }
        }
        if (this.extensions) {
          this.extensions.forEach((ext) => {
            str += `; ${ext}`;
          });
        }
        return str;
      }
      /**
       * Computes the TTL relative to now (milliseconds).
       *
       * @remarks
       * - `Infinity` is returned for cookies without an explicit expiry
       *
       * - `0` is returned if the cookie is expired.
       *
       * - Otherwise a time-to-live in milliseconds is returned.
       *
       * @param now - passing an explicit value is mostly used for testing purposes since this defaults to the `Date.now()`
       * @public
       */
      TTL(now = Date.now()) {
        if (this.maxAge != null && typeof this.maxAge === "number") {
          return this.maxAge <= 0 ? 0 : this.maxAge * 1e3;
        }
        const expires = this.expires;
        if (expires === "Infinity") {
          return Infinity;
        }
        return (expires?.getTime() ?? now) - (now || Date.now());
      }
      /**
       * Computes the absolute unix-epoch milliseconds that this cookie expires.
       *
       * The "Max-Age" attribute takes precedence over "Expires" (as per the RFC). The {@link Cookie.lastAccessed} attribute
       * (or the `now` parameter if given) is used to offset the {@link Cookie.maxAge} attribute.
       *
       * If Expires ({@link Cookie.expires}) is set, that's returned.
       *
       * @param now - can be used to provide a time offset (instead of {@link Cookie.lastAccessed}) to use when calculating the "Max-Age" value
       */
      expiryTime(now) {
        if (this.maxAge != null) {
          const relativeTo = now || this.lastAccessed || /* @__PURE__ */ new Date();
          const maxAge = typeof this.maxAge === "number" ? this.maxAge : -Infinity;
          const age = maxAge <= 0 ? -Infinity : maxAge * 1e3;
          if (relativeTo === "Infinity") {
            return Infinity;
          }
          return relativeTo.getTime() + age;
        }
        if (this.expires == "Infinity") {
          return Infinity;
        }
        return this.expires ? this.expires.getTime() : void 0;
      }
      /**
       * Similar to {@link Cookie.expiryTime}, computes the absolute unix-epoch milliseconds that this cookie expires and returns it as a Date.
       *
       * The "Max-Age" attribute takes precedence over "Expires" (as per the RFC). The {@link Cookie.lastAccessed} attribute
       * (or the `now` parameter if given) is used to offset the {@link Cookie.maxAge} attribute.
       *
       * If Expires ({@link Cookie.expires}) is set, that's returned.
       *
       * @param now - can be used to provide a time offset (instead of {@link Cookie.lastAccessed}) to use when calculating the "Max-Age" value
       */
      expiryDate(now) {
        const millisec = this.expiryTime(now);
        if (millisec == Infinity) {
          return /* @__PURE__ */ new Date(2147483647e3);
        } else if (millisec == -Infinity) {
          return /* @__PURE__ */ new Date(0);
        } else {
          return millisec == void 0 ? void 0 : new Date(millisec);
        }
      }
      /**
       * Indicates if the cookie has been persisted to a store or not.
       * @public
       */
      isPersistent() {
        return this.maxAge != null || this.expires != "Infinity";
      }
      /**
       * Calls {@link canonicalDomain} with the {@link Cookie.domain} property.
       * @public
       */
      canonicalizedDomain() {
        return (0, canonicalDomain_1.canonicalDomain)(this.domain);
      }
      /**
       * Alias for {@link Cookie.canonicalizedDomain}
       * @public
       */
      cdomain() {
        return (0, canonicalDomain_1.canonicalDomain)(this.domain);
      }
      /**
       * Parses a string into a Cookie object.
       *
       * @remarks
       * Note: when parsing a `Cookie` header it must be split by ';' before each Cookie string can be parsed.
       *
       * @example
       * ```
       * // parse a `Set-Cookie` header
       * const setCookieHeader = 'a=bcd; Expires=Tue, 18 Oct 2011 07:05:03 GMT'
       * const cookie = Cookie.parse(setCookieHeader)
       * cookie.key === 'a'
       * cookie.value === 'bcd'
       * cookie.expires === new Date(Date.parse('Tue, 18 Oct 2011 07:05:03 GMT'))
       * ```
       *
       * @example
       * ```
       * // parse a `Cookie` header
       * const cookieHeader = 'name=value; name2=value2; name3=value3'
       * const cookies = cookieHeader.split(';').map(Cookie.parse)
       * cookies[0].name === 'name'
       * cookies[0].value === 'value'
       * cookies[1].name === 'name2'
       * cookies[1].value === 'value2'
       * cookies[2].name === 'name3'
       * cookies[2].value === 'value3'
       * ```
       *
       * @param str - The `Set-Cookie` header or a Cookie string to parse.
       * @param options - Configures `strict` or `loose` mode for cookie parsing
       */
      static parse(str, options) {
        return parse3(str, options);
      }
      /**
       * Does the reverse of {@link Cookie.toJSON}.
       *
       * @remarks
       * Any Date properties (such as .expires, .creation, and .lastAccessed) are parsed via Date.parse, not tough-cookie's parseDate, since ISO timestamps are being handled at this layer.
       *
       * @example
       * ```
       * const json = JSON.stringify({
       *   key: 'alpha',
       *   value: 'beta',
       *   domain: 'example.com',
       *   path: '/foo',
       *   expires: '2038-01-19T03:14:07.000Z',
       * })
       * const cookie = Cookie.fromJSON(json)
       * cookie.key === 'alpha'
       * cookie.value === 'beta'
       * cookie.domain === 'example.com'
       * cookie.path === '/foo'
       * cookie.expires === new Date(Date.parse('2038-01-19T03:14:07.000Z'))
       * ```
       *
       * @param str - An unparsed JSON string or a value that has already been parsed as JSON
       */
      static fromJSON(str) {
        return fromJSON(str);
      }
    };
    exports.Cookie = Cookie;
    Cookie.cookiesCreated = 0;
    Cookie.sameSiteLevel = {
      strict: 3,
      lax: 2,
      none: 1
    };
    Cookie.sameSiteCanonical = {
      strict: "Strict",
      lax: "Lax"
    };
    Cookie.serializableProperties = [
      "key",
      "value",
      "expires",
      "maxAge",
      "domain",
      "path",
      "secure",
      "httpOnly",
      "extensions",
      "hostOnly",
      "pathIsDefault",
      "creation",
      "lastAccessed",
      "sameSite"
    ];
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/cookieCompare.js
var require_cookieCompare = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/cookieCompare.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.cookieCompare = cookieCompare;
    var MAX_TIME = 2147483647e3;
    function cookieCompare(a5, b3) {
      let cmp;
      const aPathLen = a5.path ? a5.path.length : 0;
      const bPathLen = b3.path ? b3.path.length : 0;
      cmp = bPathLen - aPathLen;
      if (cmp !== 0) {
        return cmp;
      }
      const aTime = a5.creation && a5.creation instanceof Date ? a5.creation.getTime() : MAX_TIME;
      const bTime = b3.creation && b3.creation instanceof Date ? b3.creation.getTime() : MAX_TIME;
      cmp = aTime - bTime;
      if (cmp !== 0) {
        return cmp;
      }
      cmp = (a5.creationIndex || 0) - (b3.creationIndex || 0);
      return cmp;
    }
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/defaultPath.js
var require_defaultPath = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/defaultPath.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.defaultPath = defaultPath;
    function defaultPath(path3) {
      if (!path3 || path3.slice(0, 1) !== "/") {
        return "/";
      }
      if (path3 === "/") {
        return path3;
      }
      const rightSlash = path3.lastIndexOf("/");
      if (rightSlash === 0) {
        return "/";
      }
      return path3.slice(0, rightSlash);
    }
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/domainMatch.js
var require_domainMatch = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/domainMatch.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.domainMatch = domainMatch;
    var canonicalDomain_1 = require_canonicalDomain();
    var IP_REGEX_LOWERCASE = /(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-f\d]{1,4}:){7}(?:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,2}|:)|(?:[a-f\d]{1,4}:){4}(?:(?::[a-f\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,3}|:)|(?:[a-f\d]{1,4}:){3}(?:(?::[a-f\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,4}|:)|(?:[a-f\d]{1,4}:){2}(?:(?::[a-f\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,5}|:)|(?:[a-f\d]{1,4}:){1}(?:(?::[a-f\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,7}|:)))$)/;
    function domainMatch(domain, cookieDomain, canonicalize) {
      if (domain == null || cookieDomain == null) {
        return void 0;
      }
      let _str;
      let _domStr;
      if (canonicalize !== false) {
        _str = (0, canonicalDomain_1.canonicalDomain)(domain);
        _domStr = (0, canonicalDomain_1.canonicalDomain)(cookieDomain);
      } else {
        _str = domain;
        _domStr = cookieDomain;
      }
      if (_str == null || _domStr == null) {
        return void 0;
      }
      if (_str == _domStr) {
        return true;
      }
      const idx = _str.lastIndexOf(_domStr);
      if (idx <= 0) {
        return false;
      }
      if (_str.length !== _domStr.length + idx) {
        return false;
      }
      if (_str.substring(idx - 1, idx) !== ".") {
        return false;
      }
      return !IP_REGEX_LOWERCASE.test(_str);
    }
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/cookieJar.js
var require_cookieJar = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/cookieJar.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.CookieJar = void 0;
    var getPublicSuffix_1 = require_getPublicSuffix();
    var validators4 = __importStar2(require_validators2());
    var validators_1 = require_validators2();
    var store_1 = require_store();
    var memstore_1 = require_memstore();
    var pathMatch_1 = require_pathMatch();
    var cookie_1 = require_cookie();
    var utils_1 = require_utils14();
    var canonicalDomain_1 = require_canonicalDomain();
    var constants_1 = require_constants8();
    var defaultPath_1 = require_defaultPath();
    var domainMatch_1 = require_domainMatch();
    var cookieCompare_1 = require_cookieCompare();
    var version_1 = require_version();
    var defaultSetCookieOptions = {
      loose: false,
      sameSiteContext: void 0,
      ignoreError: false,
      http: true
    };
    var defaultGetCookieOptions = {
      http: true,
      expire: true,
      allPaths: false,
      sameSiteContext: void 0,
      sort: void 0
    };
    var SAME_SITE_CONTEXT_VAL_ERR = 'Invalid sameSiteContext option for getCookies(); expected one of "strict", "lax", or "none"';
    function getCookieContext(url3) {
      if (url3 && typeof url3 === "object" && "hostname" in url3 && typeof url3.hostname === "string" && "pathname" in url3 && typeof url3.pathname === "string" && "protocol" in url3 && typeof url3.protocol === "string") {
        return {
          hostname: url3.hostname,
          pathname: url3.pathname,
          protocol: url3.protocol
        };
      } else if (typeof url3 === "string") {
        try {
          return new URL(decodeURI(url3));
        } catch {
          return new URL(url3);
        }
      } else {
        throw new validators_1.ParameterError("`url` argument is not a string or URL.");
      }
    }
    function checkSameSiteContext(value2) {
      const context = String(value2).toLowerCase();
      if (context === "none" || context === "lax" || context === "strict") {
        return context;
      } else {
        return void 0;
      }
    }
    function isSecurePrefixConditionMet(cookie) {
      const startsWithSecurePrefix = typeof cookie.key === "string" && cookie.key.startsWith("__Secure-");
      return !startsWithSecurePrefix || cookie.secure;
    }
    function isHostPrefixConditionMet(cookie) {
      const startsWithHostPrefix = typeof cookie.key === "string" && cookie.key.startsWith("__Host-");
      return !startsWithHostPrefix || Boolean(cookie.secure && cookie.hostOnly && cookie.path != null && cookie.path === "/");
    }
    function getNormalizedPrefixSecurity(prefixSecurity) {
      const normalizedPrefixSecurity = prefixSecurity.toLowerCase();
      switch (normalizedPrefixSecurity) {
        case constants_1.PrefixSecurityEnum.STRICT:
        case constants_1.PrefixSecurityEnum.SILENT:
        case constants_1.PrefixSecurityEnum.DISABLED:
          return normalizedPrefixSecurity;
        default:
          return constants_1.PrefixSecurityEnum.SILENT;
      }
    }
    var CookieJar = class _CookieJar {
      /**
       * Creates a new `CookieJar` instance.
       *
       * @remarks
       * - If a custom store is not passed to the constructor, an in-memory store ({@link MemoryCookieStore} will be created and used.
       * - If a boolean value is passed as the `options` parameter, this is equivalent to passing `{ rejectPublicSuffixes: <value> }`
       *
       * @param store - a custom {@link Store} implementation (defaults to {@link MemoryCookieStore})
       * @param options - configures how cookies are processed by the cookie jar
       */
      constructor(store, options) {
        if (typeof options === "boolean") {
          options = { rejectPublicSuffixes: options };
        }
        this.rejectPublicSuffixes = options?.rejectPublicSuffixes ?? true;
        this.enableLooseMode = options?.looseMode ?? false;
        this.allowSpecialUseDomain = options?.allowSpecialUseDomain ?? true;
        this.prefixSecurity = getNormalizedPrefixSecurity(options?.prefixSecurity ?? "silent");
        this.store = store ?? new memstore_1.MemoryCookieStore();
      }
      callSync(fn) {
        if (!this.store.synchronous) {
          throw new Error("CookieJar store is not synchronous; use async API instead.");
        }
        let syncErr = null;
        let syncResult = void 0;
        try {
          fn.call(this, (error, result) => {
            syncErr = error;
            syncResult = result;
          });
        } catch (err2) {
          syncErr = err2;
        }
        if (syncErr)
          throw syncErr;
        return syncResult;
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      setCookie(cookie, url3, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = void 0;
        }
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        const cb = promiseCallback.callback;
        let context;
        try {
          if (typeof url3 === "string") {
            validators4.validate(validators4.isNonEmptyString(url3), callback, (0, utils_1.safeToString)(options));
          }
          context = getCookieContext(url3);
          if (typeof url3 === "function") {
            return promiseCallback.reject(new Error("No URL was specified"));
          }
          if (typeof options === "function") {
            options = defaultSetCookieOptions;
          }
          validators4.validate(typeof cb === "function", cb);
          if (!validators4.isNonEmptyString(cookie) && !validators4.isObject(cookie) && cookie instanceof String && cookie.length == 0) {
            return promiseCallback.resolve(void 0);
          }
        } catch (err2) {
          return promiseCallback.reject(err2);
        }
        const host = (0, canonicalDomain_1.canonicalDomain)(context.hostname) ?? null;
        const loose = options?.loose || this.enableLooseMode;
        let sameSiteContext = null;
        if (options?.sameSiteContext) {
          sameSiteContext = checkSameSiteContext(options.sameSiteContext);
          if (!sameSiteContext) {
            return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR));
          }
        }
        if (typeof cookie === "string" || cookie instanceof String) {
          const parsedCookie = cookie_1.Cookie.parse(cookie.toString(), { loose });
          if (!parsedCookie) {
            const err2 = new Error("Cookie failed to parse");
            return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
          }
          cookie = parsedCookie;
        } else if (!(cookie instanceof cookie_1.Cookie)) {
          const err2 = new Error("First argument to setCookie must be a Cookie object or string");
          return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
        }
        const now = options?.now || /* @__PURE__ */ new Date();
        if (this.rejectPublicSuffixes && cookie.domain) {
          try {
            const cdomain = cookie.cdomain();
            const suffix = typeof cdomain === "string" ? (0, getPublicSuffix_1.getPublicSuffix)(cdomain, {
              allowSpecialUseDomain: this.allowSpecialUseDomain,
              ignoreError: options?.ignoreError
            }) : null;
            if (suffix == null && !constants_1.IP_V6_REGEX_OBJECT.test(cookie.domain)) {
              const err2 = new Error("Cookie has domain set to a public suffix");
              return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
            }
          } catch (err2) {
            return options?.ignoreError ? promiseCallback.resolve(void 0) : (
              // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
              promiseCallback.reject(err2)
            );
          }
        }
        if (cookie.domain) {
          if (!(0, domainMatch_1.domainMatch)(host ?? void 0, cookie.cdomain() ?? void 0, false)) {
            const err2 = new Error(`Cookie not in this host's domain. Cookie:${cookie.cdomain() ?? "null"} Request:${host ?? "null"}`);
            return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
          }
          if (cookie.hostOnly == null) {
            cookie.hostOnly = false;
          }
        } else {
          cookie.hostOnly = true;
          cookie.domain = host;
        }
        if (!cookie.path || cookie.path[0] !== "/") {
          cookie.path = (0, defaultPath_1.defaultPath)(context.pathname);
          cookie.pathIsDefault = true;
        }
        if (options?.http === false && cookie.httpOnly) {
          const err2 = new Error("Cookie is HttpOnly and this isn't an HTTP API");
          return options.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
        }
        if (cookie.sameSite !== "none" && cookie.sameSite !== void 0 && sameSiteContext) {
          if (sameSiteContext === "none") {
            const err2 = new Error("Cookie is SameSite but this is a cross-origin request");
            return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
          }
        }
        const ignoreErrorForPrefixSecurity = this.prefixSecurity === constants_1.PrefixSecurityEnum.SILENT;
        const prefixSecurityDisabled = this.prefixSecurity === constants_1.PrefixSecurityEnum.DISABLED;
        if (!prefixSecurityDisabled) {
          let errorFound = false;
          let errorMsg;
          if (!isSecurePrefixConditionMet(cookie)) {
            errorFound = true;
            errorMsg = "Cookie has __Secure prefix but Secure attribute is not set";
          } else if (!isHostPrefixConditionMet(cookie)) {
            errorFound = true;
            errorMsg = "Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'";
          }
          if (errorFound) {
            return options?.ignoreError || ignoreErrorForPrefixSecurity ? promiseCallback.resolve(void 0) : promiseCallback.reject(new Error(errorMsg));
          }
        }
        const store = this.store;
        if (!store.updateCookie) {
          store.updateCookie = async function(_oldCookie, newCookie, cb2) {
            return this.putCookie(newCookie).then(() => cb2?.(null), (error) => cb2?.(error));
          };
        }
        const withCookie = function withCookie2(err2, oldCookie) {
          if (err2) {
            cb(err2);
            return;
          }
          const next = function(err3) {
            if (err3) {
              cb(err3);
            } else if (typeof cookie === "string") {
              cb(null, void 0);
            } else {
              cb(null, cookie);
            }
          };
          if (oldCookie) {
            if (options && "http" in options && options.http === false && oldCookie.httpOnly) {
              err2 = new Error("old Cookie is HttpOnly and this isn't an HTTP API");
              if (options.ignoreError)
                cb(null, void 0);
              else
                cb(err2);
              return;
            }
            if (cookie instanceof cookie_1.Cookie) {
              cookie.creation = oldCookie.creation;
              cookie.creationIndex = oldCookie.creationIndex;
              cookie.lastAccessed = now;
              store.updateCookie(oldCookie, cookie, next);
            }
          } else {
            if (cookie instanceof cookie_1.Cookie) {
              cookie.creation = cookie.lastAccessed = now;
              store.putCookie(cookie, next);
            }
          }
        };
        store.findCookie(cookie.domain, cookie.path, cookie.key, withCookie);
        return promiseCallback.promise;
      }
      /**
       * Synchronously attempt to set the {@link Cookie} in the {@link CookieJar}.
       *
       * <strong>Note:</strong> Only works if the configured {@link Store} is also synchronous.
       *
       * @remarks
       * - If successfully persisted, the {@link Cookie} will have updated
       *     {@link Cookie.creation}, {@link Cookie.lastAccessed} and {@link Cookie.hostOnly}
       *     properties.
       *
       * - As per the RFC, the {@link Cookie.hostOnly} flag is set if there was no `Domain={value}`
       *     atttribute on the cookie string. The {@link Cookie.domain} property is set to the
       *     fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an
       *     exact hostname match (not a {@link domainMatch} as per usual)
       *
       * @param cookie - The cookie object or cookie string to store. A string value will be parsed into a cookie using {@link Cookie.parse}.
       * @param url - The domain to store the cookie with.
       * @param options - Configuration settings to use when storing the cookie.
       * @public
       */
      setCookieSync(cookie, url3, options) {
        const setCookieFn = options ? this.setCookie.bind(this, cookie, url3, options) : this.setCookie.bind(this, cookie, url3);
        return this.callSync(setCookieFn);
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      getCookies(url3, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = defaultGetCookieOptions;
        } else if (options === void 0) {
          options = defaultGetCookieOptions;
        }
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        const cb = promiseCallback.callback;
        let context;
        try {
          if (typeof url3 === "string") {
            validators4.validate(validators4.isNonEmptyString(url3), cb, url3);
          }
          context = getCookieContext(url3);
          validators4.validate(validators4.isObject(options), cb, (0, utils_1.safeToString)(options));
          validators4.validate(typeof cb === "function", cb);
        } catch (parameterError) {
          return promiseCallback.reject(parameterError);
        }
        const host = (0, canonicalDomain_1.canonicalDomain)(context.hostname);
        const path3 = context.pathname || "/";
        const secure = context.protocol && (context.protocol == "https:" || context.protocol == "wss:");
        let sameSiteLevel = 0;
        if (options.sameSiteContext) {
          const sameSiteContext = checkSameSiteContext(options.sameSiteContext);
          if (sameSiteContext == null) {
            return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR));
          }
          sameSiteLevel = cookie_1.Cookie.sameSiteLevel[sameSiteContext];
          if (!sameSiteLevel) {
            return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR));
          }
        }
        const http6 = options.http ?? true;
        const now = Date.now();
        const expireCheck = options.expire ?? true;
        const allPaths = options.allPaths ?? false;
        const store = this.store;
        function matchingCookie(c6) {
          if (c6.hostOnly) {
            if (c6.domain != host) {
              return false;
            }
          } else {
            if (!(0, domainMatch_1.domainMatch)(host ?? void 0, c6.domain ?? void 0, false)) {
              return false;
            }
          }
          if (!allPaths && typeof c6.path === "string" && !(0, pathMatch_1.pathMatch)(path3, c6.path)) {
            return false;
          }
          if (c6.secure && !secure) {
            return false;
          }
          if (c6.httpOnly && !http6) {
            return false;
          }
          if (sameSiteLevel) {
            let cookieLevel;
            if (c6.sameSite === "lax") {
              cookieLevel = cookie_1.Cookie.sameSiteLevel.lax;
            } else if (c6.sameSite === "strict") {
              cookieLevel = cookie_1.Cookie.sameSiteLevel.strict;
            } else {
              cookieLevel = cookie_1.Cookie.sameSiteLevel.none;
            }
            if (cookieLevel > sameSiteLevel) {
              return false;
            }
          }
          const expiryTime = c6.expiryTime();
          if (expireCheck && expiryTime != void 0 && expiryTime <= now) {
            store.removeCookie(c6.domain, c6.path, c6.key, () => {
            });
            return false;
          }
          return true;
        }
        store.findCookies(host, allPaths ? null : path3, this.allowSpecialUseDomain, (err2, cookies) => {
          if (err2) {
            cb(err2);
            return;
          }
          if (cookies == null) {
            cb(null, []);
            return;
          }
          cookies = cookies.filter(matchingCookie);
          if ("sort" in options && options.sort !== false) {
            cookies = cookies.sort(cookieCompare_1.cookieCompare);
          }
          const now2 = /* @__PURE__ */ new Date();
          for (const cookie of cookies) {
            cookie.lastAccessed = now2;
          }
          cb(null, cookies);
        });
        return promiseCallback.promise;
      }
      /**
       * Synchronously retrieve the list of cookies that can be sent in a Cookie header for the
       * current URL.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @remarks
       * - The array of cookies returned will be sorted according to {@link cookieCompare}.
       *
       * - The {@link Cookie.lastAccessed} property will be updated on all returned cookies.
       *
       * @param url - The domain to store the cookie with.
       * @param options - Configuration settings to use when retrieving the cookies.
       */
      getCookiesSync(url3, options) {
        return this.callSync(this.getCookies.bind(this, url3, options)) ?? [];
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      getCookieString(url3, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = void 0;
        }
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        const next = function(err2, cookies) {
          if (err2) {
            promiseCallback.callback(err2);
          } else {
            promiseCallback.callback(null, cookies?.sort(cookieCompare_1.cookieCompare).map((c6) => c6.cookieString()).join("; "));
          }
        };
        this.getCookies(url3, options, next);
        return promiseCallback.promise;
      }
      /**
       * Synchronous version of `.getCookieString()`. Accepts the same options as `.getCookies()` but returns a string suitable for a
       * `Cookie` header rather than an Array.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @param url - The domain to store the cookie with.
       * @param options - Configuration settings to use when retrieving the cookies.
       */
      getCookieStringSync(url3, options) {
        return this.callSync(options ? this.getCookieString.bind(this, url3, options) : this.getCookieString.bind(this, url3)) ?? "";
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      getSetCookieStrings(url3, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = void 0;
        }
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        const next = function(err2, cookies) {
          if (err2) {
            promiseCallback.callback(err2);
          } else {
            promiseCallback.callback(null, cookies?.map((c6) => {
              return c6.toString();
            }));
          }
        };
        this.getCookies(url3, options, next);
        return promiseCallback.promise;
      }
      /**
       * Synchronous version of `.getSetCookieStrings()`. Returns an array of strings suitable for `Set-Cookie` headers.
       * Accepts the same options as `.getCookies()`.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @param url - The domain to store the cookie with.
       * @param options - Configuration settings to use when retrieving the cookies.
       */
      getSetCookieStringsSync(url3, options = {}) {
        return this.callSync(this.getSetCookieStrings.bind(this, url3, options)) ?? [];
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      serialize(callback) {
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        let type = this.store.constructor.name;
        if (validators4.isObject(type)) {
          type = null;
        }
        const serialized = {
          // The version of tough-cookie that serialized this jar. Generally a good
          // practice since future versions can make data import decisions based on
          // known past behavior. When/if this matters, use `semver`.
          version: `tough-cookie@${version_1.version}`,
          // add the store type, to make humans happy:
          storeType: type,
          // CookieJar configuration:
          rejectPublicSuffixes: this.rejectPublicSuffixes,
          enableLooseMode: this.enableLooseMode,
          allowSpecialUseDomain: this.allowSpecialUseDomain,
          prefixSecurity: getNormalizedPrefixSecurity(this.prefixSecurity),
          // this gets filled from getAllCookies:
          cookies: []
        };
        if (typeof this.store.getAllCookies !== "function") {
          return promiseCallback.reject(new Error("store does not support getAllCookies and cannot be serialized"));
        }
        this.store.getAllCookies((err2, cookies) => {
          if (err2) {
            promiseCallback.callback(err2);
            return;
          }
          if (cookies == null) {
            promiseCallback.callback(null, serialized);
            return;
          }
          serialized.cookies = cookies.map((cookie) => {
            const serializedCookie = cookie.toJSON();
            delete serializedCookie.creationIndex;
            return serializedCookie;
          });
          promiseCallback.callback(null, serialized);
        });
        return promiseCallback.promise;
      }
      /**
       * Serialize the CookieJar if the underlying store supports `.getAllCookies`.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       */
      serializeSync() {
        return this.callSync((callback) => {
          this.serialize(callback);
        });
      }
      /**
       * Alias of {@link CookieJar.serializeSync}. Allows the cookie to be serialized
       * with `JSON.stringify(cookieJar)`.
       */
      toJSON() {
        return this.serializeSync();
      }
      /**
       * Use the class method CookieJar.deserialize instead of calling this directly
       * @internal
       */
      _importCookies(serialized, callback) {
        let cookies = void 0;
        if (serialized && typeof serialized === "object" && (0, utils_1.inOperator)("cookies", serialized) && Array.isArray(serialized.cookies)) {
          cookies = serialized.cookies;
        }
        if (!cookies) {
          callback(new Error("serialized jar has no cookies array"), void 0);
          return;
        }
        cookies = cookies.slice();
        const putNext = (err2) => {
          if (err2) {
            callback(err2, void 0);
            return;
          }
          if (Array.isArray(cookies)) {
            if (!cookies.length) {
              callback(err2, this);
              return;
            }
            let cookie;
            try {
              cookie = cookie_1.Cookie.fromJSON(cookies.shift());
            } catch (e4) {
              callback(e4 instanceof Error ? e4 : new Error(), void 0);
              return;
            }
            if (cookie === void 0) {
              putNext(null);
              return;
            }
            this.store.putCookie(cookie, putNext);
          }
        };
        putNext(null);
      }
      /**
       * @internal
       */
      _importCookiesSync(serialized) {
        this.callSync(this._importCookies.bind(this, serialized));
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      clone(newStore, callback) {
        if (typeof newStore === "function") {
          callback = newStore;
          newStore = void 0;
        }
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        const cb = promiseCallback.callback;
        this.serialize((err2, serialized) => {
          if (err2) {
            return promiseCallback.reject(err2);
          }
          return _CookieJar.deserialize(serialized ?? "", newStore, cb);
        });
        return promiseCallback.promise;
      }
      /**
       * @internal
       */
      _cloneSync(newStore) {
        const cloneFn = newStore && typeof newStore !== "function" ? this.clone.bind(this, newStore) : this.clone.bind(this);
        return this.callSync((callback) => {
          cloneFn(callback);
        });
      }
      /**
       * Produces a deep clone of this CookieJar. Modifications to the original do
       * not affect the clone, and vice versa.
       *
       * <strong>Note</strong>: Only works if both the configured Store and destination
       * Store are synchronous.
       *
       * @remarks
       * - When no {@link Store} is provided, a new {@link MemoryCookieStore} will be used.
       *
       * - Transferring between store types is supported so long as the source
       *     implements `.getAllCookies()` and the destination implements `.putCookie()`.
       *
       * @param newStore - The target {@link Store} to clone cookies into.
       */
      cloneSync(newStore) {
        if (!newStore) {
          return this._cloneSync();
        }
        if (!newStore.synchronous) {
          throw new Error("CookieJar clone destination store is not synchronous; use async API instead.");
        }
        return this._cloneSync(newStore);
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      removeAllCookies(callback) {
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        const cb = promiseCallback.callback;
        const store = this.store;
        if (typeof store.removeAllCookies === "function" && store.removeAllCookies !== store_1.Store.prototype.removeAllCookies) {
          store.removeAllCookies(cb);
          return promiseCallback.promise;
        }
        store.getAllCookies((err2, cookies) => {
          if (err2) {
            cb(err2);
            return;
          }
          if (!cookies) {
            cookies = [];
          }
          if (cookies.length === 0) {
            cb(null, void 0);
            return;
          }
          let completedCount = 0;
          const removeErrors = [];
          const removeCookieCb = function removeCookieCb2(removeErr) {
            if (removeErr) {
              removeErrors.push(removeErr);
            }
            completedCount++;
            if (completedCount === cookies.length) {
              if (removeErrors[0])
                cb(removeErrors[0]);
              else
                cb(null, void 0);
              return;
            }
          };
          cookies.forEach((cookie) => {
            store.removeCookie(cookie.domain, cookie.path, cookie.key, removeCookieCb);
          });
        });
        return promiseCallback.promise;
      }
      /**
       * Removes all cookies from the CookieJar.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @remarks
       * - This is a new backwards-compatible feature of tough-cookie version 2.5,
       *     so not all Stores will implement it efficiently. For Stores that do not
       *     implement `removeAllCookies`, the fallback is to call `removeCookie` after
       *     `getAllCookies`.
       *
       * - If `getAllCookies` fails or isn't implemented in the Store, an error is returned.
       *
       * - If one or more of the `removeCookie` calls fail, only the first error is returned.
       */
      removeAllCookiesSync() {
        this.callSync((callback) => {
          this.removeAllCookies(callback);
        });
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      static deserialize(strOrObj, store, callback) {
        if (typeof store === "function") {
          callback = store;
          store = void 0;
        }
        const promiseCallback = (0, utils_1.createPromiseCallback)(callback);
        let serialized;
        if (typeof strOrObj === "string") {
          try {
            serialized = JSON.parse(strOrObj);
          } catch (e4) {
            return promiseCallback.reject(e4 instanceof Error ? e4 : new Error());
          }
        } else {
          serialized = strOrObj;
        }
        const readSerializedProperty = (property) => {
          return serialized && typeof serialized === "object" && (0, utils_1.inOperator)(property, serialized) ? serialized[property] : void 0;
        };
        const readSerializedBoolean = (property) => {
          const value2 = readSerializedProperty(property);
          return typeof value2 === "boolean" ? value2 : void 0;
        };
        const readSerializedString = (property) => {
          const value2 = readSerializedProperty(property);
          return typeof value2 === "string" ? value2 : void 0;
        };
        const jar = new _CookieJar(store, {
          rejectPublicSuffixes: readSerializedBoolean("rejectPublicSuffixes"),
          looseMode: readSerializedBoolean("enableLooseMode"),
          allowSpecialUseDomain: readSerializedBoolean("allowSpecialUseDomain"),
          prefixSecurity: getNormalizedPrefixSecurity(readSerializedString("prefixSecurity") ?? "silent")
        });
        jar._importCookies(serialized, (err2) => {
          if (err2) {
            promiseCallback.callback(err2);
            return;
          }
          promiseCallback.callback(null, jar);
        });
        return promiseCallback.promise;
      }
      /**
       * A new CookieJar is created and the serialized {@link Cookie} values are added to
       * the underlying store. Each {@link Cookie} is added via `store.putCookie(...)` in
       * the order in which they appear in the serialization.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @remarks
       * - When no {@link Store} is provided, a new {@link MemoryCookieStore} will be used.
       *
       * - As a convenience, if `strOrObj` is a string, it is passed through `JSON.parse` first.
       *
       * @param strOrObj - A JSON string or object representing the deserialized cookies.
       * @param store - The underlying store to persist the deserialized cookies into.
       */
      static deserializeSync(strOrObj, store) {
        const serialized = typeof strOrObj === "string" ? JSON.parse(strOrObj) : strOrObj;
        const readSerializedProperty = (property) => {
          return serialized && typeof serialized === "object" && (0, utils_1.inOperator)(property, serialized) ? serialized[property] : void 0;
        };
        const readSerializedBoolean = (property) => {
          const value2 = readSerializedProperty(property);
          return typeof value2 === "boolean" ? value2 : void 0;
        };
        const readSerializedString = (property) => {
          const value2 = readSerializedProperty(property);
          return typeof value2 === "string" ? value2 : void 0;
        };
        const jar = new _CookieJar(store, {
          rejectPublicSuffixes: readSerializedBoolean("rejectPublicSuffixes"),
          looseMode: readSerializedBoolean("enableLooseMode"),
          allowSpecialUseDomain: readSerializedBoolean("allowSpecialUseDomain"),
          prefixSecurity: getNormalizedPrefixSecurity(readSerializedString("prefixSecurity") ?? "silent")
        });
        if (!jar.store.synchronous) {
          throw new Error("CookieJar store is not synchronous; use async API instead.");
        }
        jar._importCookiesSync(serialized);
        return jar;
      }
      /**
       * Alias of {@link CookieJar.deserializeSync}.
       *
       * @remarks
       * - When no {@link Store} is provided, a new {@link MemoryCookieStore} will be used.
       *
       * - As a convenience, if `strOrObj` is a string, it is passed through `JSON.parse` first.
       *
       * @param jsonString - A JSON string or object representing the deserialized cookies.
       * @param store - The underlying store to persist the deserialized cookies into.
       */
      static fromJSON(jsonString, store) {
        return _CookieJar.deserializeSync(jsonString, store);
      }
    };
    exports.CookieJar = CookieJar;
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/permutePath.js
var require_permutePath = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/permutePath.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.permutePath = permutePath;
    function permutePath(path3) {
      if (path3 === "/") {
        return ["/"];
      }
      const permutations = [path3];
      while (path3.length > 1) {
        const lindex = path3.lastIndexOf("/");
        if (lindex === 0) {
          break;
        }
        path3 = path3.slice(0, lindex);
        permutations.push(path3);
      }
      permutations.push("/");
      return permutations;
    }
  }
});

// ../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/index.js
var require_cookie2 = __commonJS({
  "../../node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/dist/cookie/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.permutePath = exports.parseDate = exports.formatDate = exports.domainMatch = exports.defaultPath = exports.CookieJar = exports.cookieCompare = exports.Cookie = exports.PrefixSecurityEnum = exports.canonicalDomain = exports.version = exports.ParameterError = exports.Store = exports.getPublicSuffix = exports.permuteDomain = exports.pathMatch = exports.MemoryCookieStore = void 0;
    exports.parse = parse3;
    exports.fromJSON = fromJSON;
    var memstore_1 = require_memstore();
    Object.defineProperty(exports, "MemoryCookieStore", { enumerable: true, get: function() {
      return memstore_1.MemoryCookieStore;
    } });
    var pathMatch_1 = require_pathMatch();
    Object.defineProperty(exports, "pathMatch", { enumerable: true, get: function() {
      return pathMatch_1.pathMatch;
    } });
    var permuteDomain_1 = require_permuteDomain();
    Object.defineProperty(exports, "permuteDomain", { enumerable: true, get: function() {
      return permuteDomain_1.permuteDomain;
    } });
    var getPublicSuffix_1 = require_getPublicSuffix();
    Object.defineProperty(exports, "getPublicSuffix", { enumerable: true, get: function() {
      return getPublicSuffix_1.getPublicSuffix;
    } });
    var store_1 = require_store();
    Object.defineProperty(exports, "Store", { enumerable: true, get: function() {
      return store_1.Store;
    } });
    var validators_1 = require_validators2();
    Object.defineProperty(exports, "ParameterError", { enumerable: true, get: function() {
      return validators_1.ParameterError;
    } });
    var version_1 = require_version();
    Object.defineProperty(exports, "version", { enumerable: true, get: function() {
      return version_1.version;
    } });
    var canonicalDomain_1 = require_canonicalDomain();
    Object.defineProperty(exports, "canonicalDomain", { enumerable: true, get: function() {
      return canonicalDomain_1.canonicalDomain;
    } });
    var constants_1 = require_constants8();
    Object.defineProperty(exports, "PrefixSecurityEnum", { enumerable: true, get: function() {
      return constants_1.PrefixSecurityEnum;
    } });
    var cookie_1 = require_cookie();
    Object.defineProperty(exports, "Cookie", { enumerable: true, get: function() {
      return cookie_1.Cookie;
    } });
    var cookieCompare_1 = require_cookieCompare();
    Object.defineProperty(exports, "cookieCompare", { enumerable: true, get: function() {
      return cookieCompare_1.cookieCompare;
    } });
    var cookieJar_1 = require_cookieJar();
    Object.defineProperty(exports, "CookieJar", { enumerable: true, get: function() {
      return cookieJar_1.CookieJar;
    } });
    var defaultPath_1 = require_defaultPath();
    Object.defineProperty(exports, "defaultPath", { enumerable: true, get: function() {
      return defaultPath_1.defaultPath;
    } });
    var domainMatch_1 = require_domainMatch();
    Object.defineProperty(exports, "domainMatch", { enumerable: true, get: function() {
      return domainMatch_1.domainMatch;
    } });
    var formatDate_1 = require_formatDate();
    Object.defineProperty(exports, "formatDate", { enumerable: true, get: function() {
      return formatDate_1.formatDate;
    } });
    var parseDate_1 = require_parseDate();
    Object.defineProperty(exports, "parseDate", { enumerable: true, get: function() {
      return parseDate_1.parseDate;
    } });
    var permutePath_1 = require_permutePath();
    Object.defineProperty(exports, "permutePath", { enumerable: true, get: function() {
      return permutePath_1.permutePath;
    } });
    var cookie_2 = require_cookie();
    function parse3(str, options) {
      return cookie_2.Cookie.parse(str, options);
    }
    function fromJSON(str) {
      return cookie_2.Cookie.fromJSON(str);
    }
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/lib/bom-handling.js
var require_bom_handling2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/lib/bom-handling.js"(exports) {
    "use strict";
    var BOMChar = "\uFEFF";
    exports.PrependBOM = PrependBOMWrapper;
    function PrependBOMWrapper(encoder, options) {
      this.encoder = encoder;
      this.addBOM = true;
    }
    PrependBOMWrapper.prototype.write = function(str) {
      if (this.addBOM) {
        str = BOMChar + str;
        this.addBOM = false;
      }
      return this.encoder.write(str);
    };
    PrependBOMWrapper.prototype.end = function() {
      return this.encoder.end();
    };
    exports.StripBOM = StripBOMWrapper;
    function StripBOMWrapper(decoder2, options) {
      this.decoder = decoder2;
      this.pass = false;
      this.options = options || {};
    }
    StripBOMWrapper.prototype.write = function(buf) {
      var res = this.decoder.write(buf);
      if (this.pass || !res)
        return res;
      if (res[0] === BOMChar) {
        res = res.slice(1);
        if (typeof this.options.stripBOM === "function")
          this.options.stripBOM();
      }
      this.pass = true;
      return res;
    };
    StripBOMWrapper.prototype.end = function() {
      return this.decoder.end();
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/internal.js
var require_internal2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/internal.js"(exports, module) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    module.exports = {
      // Encodings
      utf8: { type: "_internal", bomAware: true },
      cesu8: { type: "_internal", bomAware: true },
      unicode11utf8: "utf8",
      ucs2: { type: "_internal", bomAware: true },
      utf16le: "ucs2",
      binary: { type: "_internal" },
      base64: { type: "_internal" },
      hex: { type: "_internal" },
      // Codec.
      _internal: InternalCodec
    };
    function InternalCodec(codecOptions, iconv) {
      this.enc = codecOptions.encodingName;
      this.bomAware = codecOptions.bomAware;
      if (this.enc === "base64")
        this.encoder = InternalEncoderBase64;
      else if (this.enc === "cesu8") {
        this.enc = "utf8";
        this.encoder = InternalEncoderCesu8;
        if (Buffer5.from("eda0bdedb2a9", "hex").toString() !== "\u{1F4A9}") {
          this.decoder = InternalDecoderCesu8;
          this.defaultCharUnicode = iconv.defaultCharUnicode;
        }
      }
    }
    InternalCodec.prototype.encoder = InternalEncoder;
    InternalCodec.prototype.decoder = InternalDecoder;
    var StringDecoder = __require("string_decoder").StringDecoder;
    if (!StringDecoder.prototype.end)
      StringDecoder.prototype.end = function() {
      };
    function InternalDecoder(options, codec) {
      this.decoder = new StringDecoder(codec.enc);
    }
    InternalDecoder.prototype.write = function(buf) {
      if (!Buffer5.isBuffer(buf)) {
        buf = Buffer5.from(buf);
      }
      return this.decoder.write(buf);
    };
    InternalDecoder.prototype.end = function() {
      return this.decoder.end();
    };
    function InternalEncoder(options, codec) {
      this.enc = codec.enc;
    }
    InternalEncoder.prototype.write = function(str) {
      return Buffer5.from(str, this.enc);
    };
    InternalEncoder.prototype.end = function() {
    };
    function InternalEncoderBase64(options, codec) {
      this.prevStr = "";
    }
    InternalEncoderBase64.prototype.write = function(str) {
      str = this.prevStr + str;
      var completeQuads = str.length - str.length % 4;
      this.prevStr = str.slice(completeQuads);
      str = str.slice(0, completeQuads);
      return Buffer5.from(str, "base64");
    };
    InternalEncoderBase64.prototype.end = function() {
      return Buffer5.from(this.prevStr, "base64");
    };
    function InternalEncoderCesu8(options, codec) {
    }
    InternalEncoderCesu8.prototype.write = function(str) {
      var buf = Buffer5.alloc(str.length * 3), bufIdx = 0;
      for (var i5 = 0; i5 < str.length; i5++) {
        var charCode = str.charCodeAt(i5);
        if (charCode < 128)
          buf[bufIdx++] = charCode;
        else if (charCode < 2048) {
          buf[bufIdx++] = 192 + (charCode >>> 6);
          buf[bufIdx++] = 128 + (charCode & 63);
        } else {
          buf[bufIdx++] = 224 + (charCode >>> 12);
          buf[bufIdx++] = 128 + (charCode >>> 6 & 63);
          buf[bufIdx++] = 128 + (charCode & 63);
        }
      }
      return buf.slice(0, bufIdx);
    };
    InternalEncoderCesu8.prototype.end = function() {
    };
    function InternalDecoderCesu8(options, codec) {
      this.acc = 0;
      this.contBytes = 0;
      this.accBytes = 0;
      this.defaultCharUnicode = codec.defaultCharUnicode;
    }
    InternalDecoderCesu8.prototype.write = function(buf) {
      var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, res = "";
      for (var i5 = 0; i5 < buf.length; i5++) {
        var curByte = buf[i5];
        if ((curByte & 192) !== 128) {
          if (contBytes > 0) {
            res += this.defaultCharUnicode;
            contBytes = 0;
          }
          if (curByte < 128) {
            res += String.fromCharCode(curByte);
          } else if (curByte < 224) {
            acc = curByte & 31;
            contBytes = 1;
            accBytes = 1;
          } else if (curByte < 240) {
            acc = curByte & 15;
            contBytes = 2;
            accBytes = 1;
          } else {
            res += this.defaultCharUnicode;
          }
        } else {
          if (contBytes > 0) {
            acc = acc << 6 | curByte & 63;
            contBytes--;
            accBytes++;
            if (contBytes === 0) {
              if (accBytes === 2 && acc < 128 && acc > 0)
                res += this.defaultCharUnicode;
              else if (accBytes === 3 && acc < 2048)
                res += this.defaultCharUnicode;
              else
                res += String.fromCharCode(acc);
            }
          } else {
            res += this.defaultCharUnicode;
          }
        }
      }
      this.acc = acc;
      this.contBytes = contBytes;
      this.accBytes = accBytes;
      return res;
    };
    InternalDecoderCesu8.prototype.end = function() {
      var res = 0;
      if (this.contBytes > 0)
        res += this.defaultCharUnicode;
      return res;
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/utf32.js
var require_utf322 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/utf32.js"(exports) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    exports._utf32 = Utf32Codec;
    function Utf32Codec(codecOptions, iconv) {
      this.iconv = iconv;
      this.bomAware = true;
      this.isLE = codecOptions.isLE;
    }
    exports.utf32le = { type: "_utf32", isLE: true };
    exports.utf32be = { type: "_utf32", isLE: false };
    exports.ucs4le = "utf32le";
    exports.ucs4be = "utf32be";
    Utf32Codec.prototype.encoder = Utf32Encoder;
    Utf32Codec.prototype.decoder = Utf32Decoder;
    function Utf32Encoder(options, codec) {
      this.isLE = codec.isLE;
      this.highSurrogate = 0;
    }
    Utf32Encoder.prototype.write = function(str) {
      var src = Buffer5.from(str, "ucs2");
      var dst = Buffer5.alloc(src.length * 2);
      var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE;
      var offset2 = 0;
      for (var i5 = 0; i5 < src.length; i5 += 2) {
        var code = src.readUInt16LE(i5);
        var isHighSurrogate = 55296 <= code && code < 56320;
        var isLowSurrogate = 56320 <= code && code < 57344;
        if (this.highSurrogate) {
          if (isHighSurrogate || !isLowSurrogate) {
            write32.call(dst, this.highSurrogate, offset2);
            offset2 += 4;
          } else {
            var codepoint = (this.highSurrogate - 55296 << 10 | code - 56320) + 65536;
            write32.call(dst, codepoint, offset2);
            offset2 += 4;
            this.highSurrogate = 0;
            continue;
          }
        }
        if (isHighSurrogate)
          this.highSurrogate = code;
        else {
          write32.call(dst, code, offset2);
          offset2 += 4;
          this.highSurrogate = 0;
        }
      }
      if (offset2 < dst.length)
        dst = dst.slice(0, offset2);
      return dst;
    };
    Utf32Encoder.prototype.end = function() {
      if (!this.highSurrogate)
        return;
      var buf = Buffer5.alloc(4);
      if (this.isLE)
        buf.writeUInt32LE(this.highSurrogate, 0);
      else
        buf.writeUInt32BE(this.highSurrogate, 0);
      this.highSurrogate = 0;
      return buf;
    };
    function Utf32Decoder(options, codec) {
      this.isLE = codec.isLE;
      this.badChar = codec.iconv.defaultCharUnicode.charCodeAt(0);
      this.overflow = [];
    }
    Utf32Decoder.prototype.write = function(src) {
      if (src.length === 0)
        return "";
      var i5 = 0;
      var codepoint = 0;
      var dst = Buffer5.alloc(src.length + 4);
      var offset2 = 0;
      var isLE = this.isLE;
      var overflow = this.overflow;
      var badChar = this.badChar;
      if (overflow.length > 0) {
        for (; i5 < src.length && overflow.length < 4; i5++)
          overflow.push(src[i5]);
        if (overflow.length === 4) {
          if (isLE) {
            codepoint = overflow[i5] | overflow[i5 + 1] << 8 | overflow[i5 + 2] << 16 | overflow[i5 + 3] << 24;
          } else {
            codepoint = overflow[i5 + 3] | overflow[i5 + 2] << 8 | overflow[i5 + 1] << 16 | overflow[i5] << 24;
          }
          overflow.length = 0;
          offset2 = _writeCodepoint(dst, offset2, codepoint, badChar);
        }
      }
      for (; i5 < src.length - 3; i5 += 4) {
        if (isLE) {
          codepoint = src[i5] | src[i5 + 1] << 8 | src[i5 + 2] << 16 | src[i5 + 3] << 24;
        } else {
          codepoint = src[i5 + 3] | src[i5 + 2] << 8 | src[i5 + 1] << 16 | src[i5] << 24;
        }
        offset2 = _writeCodepoint(dst, offset2, codepoint, badChar);
      }
      for (; i5 < src.length; i5++) {
        overflow.push(src[i5]);
      }
      return dst.slice(0, offset2).toString("ucs2");
    };
    function _writeCodepoint(dst, offset2, codepoint, badChar) {
      if (codepoint < 0 || codepoint > 1114111) {
        codepoint = badChar;
      }
      if (codepoint >= 65536) {
        codepoint -= 65536;
        var high = 55296 | codepoint >> 10;
        dst[offset2++] = high & 255;
        dst[offset2++] = high >> 8;
        var codepoint = 56320 | codepoint & 1023;
      }
      dst[offset2++] = codepoint & 255;
      dst[offset2++] = codepoint >> 8;
      return offset2;
    }
    Utf32Decoder.prototype.end = function() {
      this.overflow.length = 0;
    };
    exports.utf32 = Utf32AutoCodec;
    exports.ucs4 = "utf32";
    function Utf32AutoCodec(options, iconv) {
      this.iconv = iconv;
    }
    Utf32AutoCodec.prototype.encoder = Utf32AutoEncoder;
    Utf32AutoCodec.prototype.decoder = Utf32AutoDecoder;
    function Utf32AutoEncoder(options, codec) {
      options = options || {};
      if (options.addBOM === void 0)
        options.addBOM = true;
      this.encoder = codec.iconv.getEncoder(options.defaultEncoding || "utf-32le", options);
    }
    Utf32AutoEncoder.prototype.write = function(str) {
      return this.encoder.write(str);
    };
    Utf32AutoEncoder.prototype.end = function() {
      return this.encoder.end();
    };
    function Utf32AutoDecoder(options, codec) {
      this.decoder = null;
      this.initialBufs = [];
      this.initialBufsLen = 0;
      this.options = options || {};
      this.iconv = codec.iconv;
    }
    Utf32AutoDecoder.prototype.write = function(buf) {
      if (!this.decoder) {
        this.initialBufs.push(buf);
        this.initialBufsLen += buf.length;
        if (this.initialBufsLen < 32)
          return "";
        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
        this.decoder = this.iconv.getDecoder(encoding, this.options);
        var resStr = "";
        for (var i5 = 0; i5 < this.initialBufs.length; i5++)
          resStr += this.decoder.write(this.initialBufs[i5]);
        this.initialBufs.length = this.initialBufsLen = 0;
        return resStr;
      }
      return this.decoder.write(buf);
    };
    Utf32AutoDecoder.prototype.end = function() {
      if (!this.decoder) {
        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
        this.decoder = this.iconv.getDecoder(encoding, this.options);
        var resStr = "";
        for (var i5 = 0; i5 < this.initialBufs.length; i5++)
          resStr += this.decoder.write(this.initialBufs[i5]);
        var trail = this.decoder.end();
        if (trail)
          resStr += trail;
        this.initialBufs.length = this.initialBufsLen = 0;
        return resStr;
      }
      return this.decoder.end();
    };
    function detectEncoding(bufs, defaultEncoding) {
      var b3 = [];
      var charsProcessed = 0;
      var invalidLE = 0, invalidBE = 0;
      var bmpCharsLE = 0, bmpCharsBE = 0;
      outer_loop:
        for (var i5 = 0; i5 < bufs.length; i5++) {
          var buf = bufs[i5];
          for (var j = 0; j < buf.length; j++) {
            b3.push(buf[j]);
            if (b3.length === 4) {
              if (charsProcessed === 0) {
                if (b3[0] === 255 && b3[1] === 254 && b3[2] === 0 && b3[3] === 0) {
                  return "utf-32le";
                }
                if (b3[0] === 0 && b3[1] === 0 && b3[2] === 254 && b3[3] === 255) {
                  return "utf-32be";
                }
              }
              if (b3[0] !== 0 || b3[1] > 16) invalidBE++;
              if (b3[3] !== 0 || b3[2] > 16) invalidLE++;
              if (b3[0] === 0 && b3[1] === 0 && (b3[2] !== 0 || b3[3] !== 0)) bmpCharsBE++;
              if ((b3[0] !== 0 || b3[1] !== 0) && b3[2] === 0 && b3[3] === 0) bmpCharsLE++;
              b3.length = 0;
              charsProcessed++;
              if (charsProcessed >= 100) {
                break outer_loop;
              }
            }
          }
        }
      if (bmpCharsBE - invalidBE > bmpCharsLE - invalidLE) return "utf-32be";
      if (bmpCharsBE - invalidBE < bmpCharsLE - invalidLE) return "utf-32le";
      return defaultEncoding || "utf-32le";
    }
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/utf16.js
var require_utf162 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/utf16.js"(exports) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    exports.utf16be = Utf16BECodec;
    function Utf16BECodec() {
    }
    Utf16BECodec.prototype.encoder = Utf16BEEncoder;
    Utf16BECodec.prototype.decoder = Utf16BEDecoder;
    Utf16BECodec.prototype.bomAware = true;
    function Utf16BEEncoder() {
    }
    Utf16BEEncoder.prototype.write = function(str) {
      var buf = Buffer5.from(str, "ucs2");
      for (var i5 = 0; i5 < buf.length; i5 += 2) {
        var tmp = buf[i5];
        buf[i5] = buf[i5 + 1];
        buf[i5 + 1] = tmp;
      }
      return buf;
    };
    Utf16BEEncoder.prototype.end = function() {
    };
    function Utf16BEDecoder() {
      this.overflowByte = -1;
    }
    Utf16BEDecoder.prototype.write = function(buf) {
      if (buf.length == 0)
        return "";
      var buf2 = Buffer5.alloc(buf.length + 1), i5 = 0, j = 0;
      if (this.overflowByte !== -1) {
        buf2[0] = buf[0];
        buf2[1] = this.overflowByte;
        i5 = 1;
        j = 2;
      }
      for (; i5 < buf.length - 1; i5 += 2, j += 2) {
        buf2[j] = buf[i5 + 1];
        buf2[j + 1] = buf[i5];
      }
      this.overflowByte = i5 == buf.length - 1 ? buf[buf.length - 1] : -1;
      return buf2.slice(0, j).toString("ucs2");
    };
    Utf16BEDecoder.prototype.end = function() {
      this.overflowByte = -1;
    };
    exports.utf16 = Utf16Codec;
    function Utf16Codec(codecOptions, iconv) {
      this.iconv = iconv;
    }
    Utf16Codec.prototype.encoder = Utf16Encoder;
    Utf16Codec.prototype.decoder = Utf16Decoder;
    function Utf16Encoder(options, codec) {
      options = options || {};
      if (options.addBOM === void 0)
        options.addBOM = true;
      this.encoder = codec.iconv.getEncoder("utf-16le", options);
    }
    Utf16Encoder.prototype.write = function(str) {
      return this.encoder.write(str);
    };
    Utf16Encoder.prototype.end = function() {
      return this.encoder.end();
    };
    function Utf16Decoder(options, codec) {
      this.decoder = null;
      this.initialBufs = [];
      this.initialBufsLen = 0;
      this.options = options || {};
      this.iconv = codec.iconv;
    }
    Utf16Decoder.prototype.write = function(buf) {
      if (!this.decoder) {
        this.initialBufs.push(buf);
        this.initialBufsLen += buf.length;
        if (this.initialBufsLen < 16)
          return "";
        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
        this.decoder = this.iconv.getDecoder(encoding, this.options);
        var resStr = "";
        for (var i5 = 0; i5 < this.initialBufs.length; i5++)
          resStr += this.decoder.write(this.initialBufs[i5]);
        this.initialBufs.length = this.initialBufsLen = 0;
        return resStr;
      }
      return this.decoder.write(buf);
    };
    Utf16Decoder.prototype.end = function() {
      if (!this.decoder) {
        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
        this.decoder = this.iconv.getDecoder(encoding, this.options);
        var resStr = "";
        for (var i5 = 0; i5 < this.initialBufs.length; i5++)
          resStr += this.decoder.write(this.initialBufs[i5]);
        var trail = this.decoder.end();
        if (trail)
          resStr += trail;
        this.initialBufs.length = this.initialBufsLen = 0;
        return resStr;
      }
      return this.decoder.end();
    };
    function detectEncoding(bufs, defaultEncoding) {
      var b3 = [];
      var charsProcessed = 0;
      var asciiCharsLE = 0, asciiCharsBE = 0;
      outer_loop:
        for (var i5 = 0; i5 < bufs.length; i5++) {
          var buf = bufs[i5];
          for (var j = 0; j < buf.length; j++) {
            b3.push(buf[j]);
            if (b3.length === 2) {
              if (charsProcessed === 0) {
                if (b3[0] === 255 && b3[1] === 254) return "utf-16le";
                if (b3[0] === 254 && b3[1] === 255) return "utf-16be";
              }
              if (b3[0] === 0 && b3[1] !== 0) asciiCharsBE++;
              if (b3[0] !== 0 && b3[1] === 0) asciiCharsLE++;
              b3.length = 0;
              charsProcessed++;
              if (charsProcessed >= 100) {
                break outer_loop;
              }
            }
          }
        }
      if (asciiCharsBE > asciiCharsLE) return "utf-16be";
      if (asciiCharsBE < asciiCharsLE) return "utf-16le";
      return defaultEncoding || "utf-16le";
    }
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/utf7.js
var require_utf72 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/utf7.js"(exports) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    exports.utf7 = Utf7Codec;
    exports.unicode11utf7 = "utf7";
    function Utf7Codec(codecOptions, iconv) {
      this.iconv = iconv;
    }
    Utf7Codec.prototype.encoder = Utf7Encoder;
    Utf7Codec.prototype.decoder = Utf7Decoder;
    Utf7Codec.prototype.bomAware = true;
    var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
    function Utf7Encoder(options, codec) {
      this.iconv = codec.iconv;
    }
    Utf7Encoder.prototype.write = function(str) {
      return Buffer5.from(str.replace(nonDirectChars, function(chunk3) {
        return "+" + (chunk3 === "+" ? "" : this.iconv.encode(chunk3, "utf16-be").toString("base64").replace(/=+$/, "")) + "-";
      }.bind(this)));
    };
    Utf7Encoder.prototype.end = function() {
    };
    function Utf7Decoder(options, codec) {
      this.iconv = codec.iconv;
      this.inBase64 = false;
      this.base64Accum = "";
    }
    var base64Regex = /[A-Za-z0-9\/+]/;
    var base64Chars = [];
    for (i5 = 0; i5 < 256; i5++)
      base64Chars[i5] = base64Regex.test(String.fromCharCode(i5));
    var i5;
    var plusChar = "+".charCodeAt(0);
    var minusChar = "-".charCodeAt(0);
    var andChar = "&".charCodeAt(0);
    Utf7Decoder.prototype.write = function(buf) {
      var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum;
      for (var i6 = 0; i6 < buf.length; i6++) {
        if (!inBase64) {
          if (buf[i6] == plusChar) {
            res += this.iconv.decode(buf.slice(lastI, i6), "ascii");
            lastI = i6 + 1;
            inBase64 = true;
          }
        } else {
          if (!base64Chars[buf[i6]]) {
            if (i6 == lastI && buf[i6] == minusChar) {
              res += "+";
            } else {
              var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i6), "ascii");
              res += this.iconv.decode(Buffer5.from(b64str, "base64"), "utf16-be");
            }
            if (buf[i6] != minusChar)
              i6--;
            lastI = i6 + 1;
            inBase64 = false;
            base64Accum = "";
          }
        }
      }
      if (!inBase64) {
        res += this.iconv.decode(buf.slice(lastI), "ascii");
      } else {
        var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii");
        var canBeDecoded = b64str.length - b64str.length % 8;
        base64Accum = b64str.slice(canBeDecoded);
        b64str = b64str.slice(0, canBeDecoded);
        res += this.iconv.decode(Buffer5.from(b64str, "base64"), "utf16-be");
      }
      this.inBase64 = inBase64;
      this.base64Accum = base64Accum;
      return res;
    };
    Utf7Decoder.prototype.end = function() {
      var res = "";
      if (this.inBase64 && this.base64Accum.length > 0)
        res = this.iconv.decode(Buffer5.from(this.base64Accum, "base64"), "utf16-be");
      this.inBase64 = false;
      this.base64Accum = "";
      return res;
    };
    exports.utf7imap = Utf7IMAPCodec;
    function Utf7IMAPCodec(codecOptions, iconv) {
      this.iconv = iconv;
    }
    Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
    Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
    Utf7IMAPCodec.prototype.bomAware = true;
    function Utf7IMAPEncoder(options, codec) {
      this.iconv = codec.iconv;
      this.inBase64 = false;
      this.base64Accum = Buffer5.alloc(6);
      this.base64AccumIdx = 0;
    }
    Utf7IMAPEncoder.prototype.write = function(str) {
      var inBase64 = this.inBase64, base64Accum = this.base64Accum, base64AccumIdx = this.base64AccumIdx, buf = Buffer5.alloc(str.length * 5 + 10), bufIdx = 0;
      for (var i6 = 0; i6 < str.length; i6++) {
        var uChar = str.charCodeAt(i6);
        if (32 <= uChar && uChar <= 126) {
          if (inBase64) {
            if (base64AccumIdx > 0) {
              bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
              base64AccumIdx = 0;
            }
            buf[bufIdx++] = minusChar;
            inBase64 = false;
          }
          if (!inBase64) {
            buf[bufIdx++] = uChar;
            if (uChar === andChar)
              buf[bufIdx++] = minusChar;
          }
        } else {
          if (!inBase64) {
            buf[bufIdx++] = andChar;
            inBase64 = true;
          }
          if (inBase64) {
            base64Accum[base64AccumIdx++] = uChar >> 8;
            base64Accum[base64AccumIdx++] = uChar & 255;
            if (base64AccumIdx == base64Accum.length) {
              bufIdx += buf.write(base64Accum.toString("base64").replace(/\//g, ","), bufIdx);
              base64AccumIdx = 0;
            }
          }
        }
      }
      this.inBase64 = inBase64;
      this.base64AccumIdx = base64AccumIdx;
      return buf.slice(0, bufIdx);
    };
    Utf7IMAPEncoder.prototype.end = function() {
      var buf = Buffer5.alloc(10), bufIdx = 0;
      if (this.inBase64) {
        if (this.base64AccumIdx > 0) {
          bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
          this.base64AccumIdx = 0;
        }
        buf[bufIdx++] = minusChar;
        this.inBase64 = false;
      }
      return buf.slice(0, bufIdx);
    };
    function Utf7IMAPDecoder(options, codec) {
      this.iconv = codec.iconv;
      this.inBase64 = false;
      this.base64Accum = "";
    }
    var base64IMAPChars = base64Chars.slice();
    base64IMAPChars[",".charCodeAt(0)] = true;
    Utf7IMAPDecoder.prototype.write = function(buf) {
      var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum;
      for (var i6 = 0; i6 < buf.length; i6++) {
        if (!inBase64) {
          if (buf[i6] == andChar) {
            res += this.iconv.decode(buf.slice(lastI, i6), "ascii");
            lastI = i6 + 1;
            inBase64 = true;
          }
        } else {
          if (!base64IMAPChars[buf[i6]]) {
            if (i6 == lastI && buf[i6] == minusChar) {
              res += "&";
            } else {
              var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i6), "ascii").replace(/,/g, "/");
              res += this.iconv.decode(Buffer5.from(b64str, "base64"), "utf16-be");
            }
            if (buf[i6] != minusChar)
              i6--;
            lastI = i6 + 1;
            inBase64 = false;
            base64Accum = "";
          }
        }
      }
      if (!inBase64) {
        res += this.iconv.decode(buf.slice(lastI), "ascii");
      } else {
        var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii").replace(/,/g, "/");
        var canBeDecoded = b64str.length - b64str.length % 8;
        base64Accum = b64str.slice(canBeDecoded);
        b64str = b64str.slice(0, canBeDecoded);
        res += this.iconv.decode(Buffer5.from(b64str, "base64"), "utf16-be");
      }
      this.inBase64 = inBase64;
      this.base64Accum = base64Accum;
      return res;
    };
    Utf7IMAPDecoder.prototype.end = function() {
      var res = "";
      if (this.inBase64 && this.base64Accum.length > 0)
        res = this.iconv.decode(Buffer5.from(this.base64Accum, "base64"), "utf16-be");
      this.inBase64 = false;
      this.base64Accum = "";
      return res;
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/sbcs-codec.js
var require_sbcs_codec2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/sbcs-codec.js"(exports) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    exports._sbcs = SBCSCodec;
    function SBCSCodec(codecOptions, iconv) {
      if (!codecOptions)
        throw new Error("SBCS codec is called without the data.");
      if (!codecOptions.chars || codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256)
        throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)");
      if (codecOptions.chars.length === 128) {
        var asciiString = "";
        for (var i5 = 0; i5 < 128; i5++)
          asciiString += String.fromCharCode(i5);
        codecOptions.chars = asciiString + codecOptions.chars;
      }
      this.decodeBuf = Buffer5.from(codecOptions.chars, "ucs2");
      var encodeBuf = Buffer5.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));
      for (var i5 = 0; i5 < codecOptions.chars.length; i5++)
        encodeBuf[codecOptions.chars.charCodeAt(i5)] = i5;
      this.encodeBuf = encodeBuf;
    }
    SBCSCodec.prototype.encoder = SBCSEncoder;
    SBCSCodec.prototype.decoder = SBCSDecoder;
    function SBCSEncoder(options, codec) {
      this.encodeBuf = codec.encodeBuf;
    }
    SBCSEncoder.prototype.write = function(str) {
      var buf = Buffer5.alloc(str.length);
      for (var i5 = 0; i5 < str.length; i5++)
        buf[i5] = this.encodeBuf[str.charCodeAt(i5)];
      return buf;
    };
    SBCSEncoder.prototype.end = function() {
    };
    function SBCSDecoder(options, codec) {
      this.decodeBuf = codec.decodeBuf;
    }
    SBCSDecoder.prototype.write = function(buf) {
      var decodeBuf = this.decodeBuf;
      var newBuf = Buffer5.alloc(buf.length * 2);
      var idx1 = 0, idx2 = 0;
      for (var i5 = 0; i5 < buf.length; i5++) {
        idx1 = buf[i5] * 2;
        idx2 = i5 * 2;
        newBuf[idx2] = decodeBuf[idx1];
        newBuf[idx2 + 1] = decodeBuf[idx1 + 1];
      }
      return newBuf.toString("ucs2");
    };
    SBCSDecoder.prototype.end = function() {
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/sbcs-data.js
var require_sbcs_data2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/sbcs-data.js"(exports, module) {
    "use strict";
    module.exports = {
      // Not supported by iconv, not sure why.
      "10029": "maccenteuro",
      "maccenteuro": {
        "type": "_sbcs",
        "chars": "\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"
      },
      "808": "cp808",
      "ibm808": "cp808",
      "cp808": {
        "type": "_sbcs",
        "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"
      },
      "mik": {
        "type": "_sbcs",
        "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "cp720": {
        "type": "_sbcs",
        "chars": "\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      // Aliases of generated encodings.
      "ascii8bit": "ascii",
      "usascii": "ascii",
      "ansix34": "ascii",
      "ansix341968": "ascii",
      "ansix341986": "ascii",
      "csascii": "ascii",
      "cp367": "ascii",
      "ibm367": "ascii",
      "isoir6": "ascii",
      "iso646us": "ascii",
      "iso646irv": "ascii",
      "us": "ascii",
      "latin1": "iso88591",
      "latin2": "iso88592",
      "latin3": "iso88593",
      "latin4": "iso88594",
      "latin5": "iso88599",
      "latin6": "iso885910",
      "latin7": "iso885913",
      "latin8": "iso885914",
      "latin9": "iso885915",
      "latin10": "iso885916",
      "csisolatin1": "iso88591",
      "csisolatin2": "iso88592",
      "csisolatin3": "iso88593",
      "csisolatin4": "iso88594",
      "csisolatincyrillic": "iso88595",
      "csisolatinarabic": "iso88596",
      "csisolatingreek": "iso88597",
      "csisolatinhebrew": "iso88598",
      "csisolatin5": "iso88599",
      "csisolatin6": "iso885910",
      "l1": "iso88591",
      "l2": "iso88592",
      "l3": "iso88593",
      "l4": "iso88594",
      "l5": "iso88599",
      "l6": "iso885910",
      "l7": "iso885913",
      "l8": "iso885914",
      "l9": "iso885915",
      "l10": "iso885916",
      "isoir14": "iso646jp",
      "isoir57": "iso646cn",
      "isoir100": "iso88591",
      "isoir101": "iso88592",
      "isoir109": "iso88593",
      "isoir110": "iso88594",
      "isoir144": "iso88595",
      "isoir127": "iso88596",
      "isoir126": "iso88597",
      "isoir138": "iso88598",
      "isoir148": "iso88599",
      "isoir157": "iso885910",
      "isoir166": "tis620",
      "isoir179": "iso885913",
      "isoir199": "iso885914",
      "isoir203": "iso885915",
      "isoir226": "iso885916",
      "cp819": "iso88591",
      "ibm819": "iso88591",
      "cyrillic": "iso88595",
      "arabic": "iso88596",
      "arabic8": "iso88596",
      "ecma114": "iso88596",
      "asmo708": "iso88596",
      "greek": "iso88597",
      "greek8": "iso88597",
      "ecma118": "iso88597",
      "elot928": "iso88597",
      "hebrew": "iso88598",
      "hebrew8": "iso88598",
      "turkish": "iso88599",
      "turkish8": "iso88599",
      "thai": "iso885911",
      "thai8": "iso885911",
      "celtic": "iso885914",
      "celtic8": "iso885914",
      "isoceltic": "iso885914",
      "tis6200": "tis620",
      "tis62025291": "tis620",
      "tis62025330": "tis620",
      "10000": "macroman",
      "10006": "macgreek",
      "10007": "maccyrillic",
      "10079": "maciceland",
      "10081": "macturkish",
      "cspc8codepage437": "cp437",
      "cspc775baltic": "cp775",
      "cspc850multilingual": "cp850",
      "cspcp852": "cp852",
      "cspc862latinhebrew": "cp862",
      "cpgr": "cp869",
      "msee": "cp1250",
      "mscyrl": "cp1251",
      "msansi": "cp1252",
      "msgreek": "cp1253",
      "msturk": "cp1254",
      "mshebr": "cp1255",
      "msarab": "cp1256",
      "winbaltrim": "cp1257",
      "cp20866": "koi8r",
      "20866": "koi8r",
      "ibm878": "koi8r",
      "cskoi8r": "koi8r",
      "cp21866": "koi8u",
      "21866": "koi8u",
      "ibm1168": "koi8u",
      "strk10482002": "rk1048",
      "tcvn5712": "tcvn",
      "tcvn57121": "tcvn",
      "gb198880": "iso646cn",
      "cn": "iso646cn",
      "csiso14jisc6220ro": "iso646jp",
      "jisc62201969ro": "iso646jp",
      "jp": "iso646jp",
      "cshproman8": "hproman8",
      "r8": "hproman8",
      "roman8": "hproman8",
      "xroman8": "hproman8",
      "ibm1051": "hproman8",
      "mac": "macintosh",
      "csmacintosh": "macintosh"
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/sbcs-data-generated.js
var require_sbcs_data_generated2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/sbcs-data-generated.js"(exports, module) {
    "use strict";
    module.exports = {
      "437": "cp437",
      "737": "cp737",
      "775": "cp775",
      "850": "cp850",
      "852": "cp852",
      "855": "cp855",
      "856": "cp856",
      "857": "cp857",
      "858": "cp858",
      "860": "cp860",
      "861": "cp861",
      "862": "cp862",
      "863": "cp863",
      "864": "cp864",
      "865": "cp865",
      "866": "cp866",
      "869": "cp869",
      "874": "windows874",
      "922": "cp922",
      "1046": "cp1046",
      "1124": "cp1124",
      "1125": "cp1125",
      "1129": "cp1129",
      "1133": "cp1133",
      "1161": "cp1161",
      "1162": "cp1162",
      "1163": "cp1163",
      "1250": "windows1250",
      "1251": "windows1251",
      "1252": "windows1252",
      "1253": "windows1253",
      "1254": "windows1254",
      "1255": "windows1255",
      "1256": "windows1256",
      "1257": "windows1257",
      "1258": "windows1258",
      "28591": "iso88591",
      "28592": "iso88592",
      "28593": "iso88593",
      "28594": "iso88594",
      "28595": "iso88595",
      "28596": "iso88596",
      "28597": "iso88597",
      "28598": "iso88598",
      "28599": "iso88599",
      "28600": "iso885910",
      "28601": "iso885911",
      "28603": "iso885913",
      "28604": "iso885914",
      "28605": "iso885915",
      "28606": "iso885916",
      "windows874": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "win874": "windows874",
      "cp874": "windows874",
      "windows1250": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
      },
      "win1250": "windows1250",
      "cp1250": "windows1250",
      "windows1251": {
        "type": "_sbcs",
        "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
      },
      "win1251": "windows1251",
      "cp1251": "windows1251",
      "windows1252": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
      },
      "win1252": "windows1252",
      "cp1252": "windows1252",
      "windows1253": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
      },
      "win1253": "windows1253",
      "cp1253": "windows1253",
      "windows1254": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
      },
      "win1254": "windows1254",
      "cp1254": "windows1254",
      "windows1255": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
      },
      "win1255": "windows1255",
      "cp1255": "windows1255",
      "windows1256": {
        "type": "_sbcs",
        "chars": "\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"
      },
      "win1256": "windows1256",
      "cp1256": "windows1256",
      "windows1257": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"
      },
      "win1257": "windows1257",
      "cp1257": "windows1257",
      "windows1258": {
        "type": "_sbcs",
        "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
      },
      "win1258": "windows1258",
      "cp1258": "windows1258",
      "iso88591": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
      },
      "cp28591": "iso88591",
      "iso88592": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
      },
      "cp28592": "iso88592",
      "iso88593": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"
      },
      "cp28593": "iso88593",
      "iso88594": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"
      },
      "cp28594": "iso88594",
      "iso88595": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
      },
      "cp28595": "iso88595",
      "iso88596": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "cp28596": "iso88596",
      "iso88597": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
      },
      "cp28597": "iso88597",
      "iso88598": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
      },
      "cp28598": "iso88598",
      "iso88599": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
      },
      "cp28599": "iso88599",
      "iso885910": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"
      },
      "cp28600": "iso885910",
      "iso885911": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "cp28601": "iso885911",
      "iso885913": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"
      },
      "cp28603": "iso885913",
      "iso885914": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"
      },
      "cp28604": "iso885914",
      "iso885915": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
      },
      "cp28605": "iso885915",
      "iso885916": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"
      },
      "cp28606": "iso885916",
      "cp437": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm437": "cp437",
      "csibm437": "cp437",
      "cp737": {
        "type": "_sbcs",
        "chars": "\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm737": "cp737",
      "csibm737": "cp737",
      "cp775": {
        "type": "_sbcs",
        "chars": "\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"
      },
      "ibm775": "cp775",
      "csibm775": "cp775",
      "cp850": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
      },
      "ibm850": "cp850",
      "csibm850": "cp850",
      "cp852": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"
      },
      "ibm852": "cp852",
      "csibm852": "cp852",
      "cp855": {
        "type": "_sbcs",
        "chars": "\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"
      },
      "ibm855": "cp855",
      "csibm855": "cp855",
      "cp856": {
        "type": "_sbcs",
        "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
      },
      "ibm856": "cp856",
      "csibm856": "cp856",
      "cp857": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
      },
      "ibm857": "cp857",
      "csibm857": "cp857",
      "cp858": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
      },
      "ibm858": "cp858",
      "csibm858": "cp858",
      "cp860": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm860": "cp860",
      "csibm860": "cp860",
      "cp861": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm861": "cp861",
      "csibm861": "cp861",
      "cp862": {
        "type": "_sbcs",
        "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm862": "cp862",
      "csibm862": "cp862",
      "cp863": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm863": "cp863",
      "csibm863": "cp863",
      "cp864": {
        "type": "_sbcs",
        "chars": "\0\x07\b	\n\v\f\r\x1B !\"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD"
      },
      "ibm864": "cp864",
      "csibm864": "cp864",
      "cp865": {
        "type": "_sbcs",
        "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
      },
      "ibm865": "cp865",
      "csibm865": "cp865",
      "cp866": {
        "type": "_sbcs",
        "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"
      },
      "ibm866": "cp866",
      "csibm866": "cp866",
      "cp869": {
        "type": "_sbcs",
        "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"
      },
      "ibm869": "cp869",
      "csibm869": "cp869",
      "cp922": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"
      },
      "ibm922": "cp922",
      "csibm922": "cp922",
      "cp1046": {
        "type": "_sbcs",
        "chars": "\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"
      },
      "ibm1046": "cp1046",
      "csibm1046": "cp1046",
      "cp1124": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
      },
      "ibm1124": "cp1124",
      "csibm1124": "cp1124",
      "cp1125": {
        "type": "_sbcs",
        "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"
      },
      "ibm1125": "cp1125",
      "csibm1125": "cp1125",
      "cp1129": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
      },
      "ibm1129": "cp1129",
      "csibm1129": "cp1129",
      "cp1133": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"
      },
      "ibm1133": "cp1133",
      "csibm1133": "cp1133",
      "cp1161": {
        "type": "_sbcs",
        "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"
      },
      "ibm1161": "cp1161",
      "csibm1161": "cp1161",
      "cp1162": {
        "type": "_sbcs",
        "chars": "\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "ibm1162": "cp1162",
      "csibm1162": "cp1162",
      "cp1163": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
      },
      "ibm1163": "cp1163",
      "csibm1163": "cp1163",
      "maccroatian": {
        "type": "_sbcs",
        "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"
      },
      "maccyrillic": {
        "type": "_sbcs",
        "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
      },
      "macgreek": {
        "type": "_sbcs",
        "chars": "\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"
      },
      "maciceland": {
        "type": "_sbcs",
        "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
      },
      "macroman": {
        "type": "_sbcs",
        "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
      },
      "macromania": {
        "type": "_sbcs",
        "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
      },
      "macthai": {
        "type": "_sbcs",
        "chars": "\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "macturkish": {
        "type": "_sbcs",
        "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
      },
      "macukraine": {
        "type": "_sbcs",
        "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
      },
      "koi8r": {
        "type": "_sbcs",
        "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
      },
      "koi8u": {
        "type": "_sbcs",
        "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
      },
      "koi8ru": {
        "type": "_sbcs",
        "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
      },
      "koi8t": {
        "type": "_sbcs",
        "chars": "\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
      },
      "armscii8": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"
      },
      "rk1048": {
        "type": "_sbcs",
        "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
      },
      "tcvn": {
        "type": "_sbcs",
        "chars": "\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b	\n\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0"
      },
      "georgianacademy": {
        "type": "_sbcs",
        "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
      },
      "georgianps": {
        "type": "_sbcs",
        "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
      },
      "pt154": {
        "type": "_sbcs",
        "chars": "\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
      },
      "viscii": {
        "type": "_sbcs",
        "chars": "\0\u1EB2\u1EB4\u1EAA\x07\b	\n\v\f\r\u1EF6\u1EF8\x1B\u1EF4 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE"
      },
      "iso646cn": {
        "type": "_sbcs",
        "chars": "\0\x07\b	\n\v\f\r\x1B !\"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "iso646jp": {
        "type": "_sbcs",
        "chars": "\0\x07\b	\n\v\f\r\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "hproman8": {
        "type": "_sbcs",
        "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"
      },
      "macintosh": {
        "type": "_sbcs",
        "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
      },
      "ascii": {
        "type": "_sbcs",
        "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
      },
      "tis620": {
        "type": "_sbcs",
        "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
      }
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/dbcs-codec.js
var require_dbcs_codec2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/dbcs-codec.js"(exports) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    exports._dbcs = DBCSCodec;
    var UNASSIGNED = -1;
    var GB18030_CODE = -2;
    var SEQ_START = -10;
    var NODE_START = -1e3;
    var UNASSIGNED_NODE = new Array(256);
    var DEF_CHAR = -1;
    for (i5 = 0; i5 < 256; i5++)
      UNASSIGNED_NODE[i5] = UNASSIGNED;
    var i5;
    function DBCSCodec(codecOptions, iconv) {
      this.encodingName = codecOptions.encodingName;
      if (!codecOptions)
        throw new Error("DBCS codec is called without the data.");
      if (!codecOptions.table)
        throw new Error("Encoding '" + this.encodingName + "' has no data.");
      var mappingTable = codecOptions.table();
      this.decodeTables = [];
      this.decodeTables[0] = UNASSIGNED_NODE.slice(0);
      this.decodeTableSeq = [];
      for (var i6 = 0; i6 < mappingTable.length; i6++)
        this._addDecodeChunk(mappingTable[i6]);
      if (typeof codecOptions.gb18030 === "function") {
        this.gb18030 = codecOptions.gb18030();
        var commonThirdByteNodeIdx = this.decodeTables.length;
        this.decodeTables.push(UNASSIGNED_NODE.slice(0));
        var commonFourthByteNodeIdx = this.decodeTables.length;
        this.decodeTables.push(UNASSIGNED_NODE.slice(0));
        var firstByteNode = this.decodeTables[0];
        for (var i6 = 129; i6 <= 254; i6++) {
          var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i6]];
          for (var j = 48; j <= 57; j++) {
            if (secondByteNode[j] === UNASSIGNED) {
              secondByteNode[j] = NODE_START - commonThirdByteNodeIdx;
            } else if (secondByteNode[j] > NODE_START) {
              throw new Error("gb18030 decode tables conflict at byte 2");
            }
            var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j]];
            for (var k3 = 129; k3 <= 254; k3++) {
              if (thirdByteNode[k3] === UNASSIGNED) {
                thirdByteNode[k3] = NODE_START - commonFourthByteNodeIdx;
              } else if (thirdByteNode[k3] === NODE_START - commonFourthByteNodeIdx) {
                continue;
              } else if (thirdByteNode[k3] > NODE_START) {
                throw new Error("gb18030 decode tables conflict at byte 3");
              }
              var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k3]];
              for (var l4 = 48; l4 <= 57; l4++) {
                if (fourthByteNode[l4] === UNASSIGNED)
                  fourthByteNode[l4] = GB18030_CODE;
              }
            }
          }
        }
      }
      this.defaultCharUnicode = iconv.defaultCharUnicode;
      this.encodeTable = [];
      this.encodeTableSeq = [];
      var skipEncodeChars = {};
      if (codecOptions.encodeSkipVals)
        for (var i6 = 0; i6 < codecOptions.encodeSkipVals.length; i6++) {
          var val = codecOptions.encodeSkipVals[i6];
          if (typeof val === "number")
            skipEncodeChars[val] = true;
          else
            for (var j = val.from; j <= val.to; j++)
              skipEncodeChars[j] = true;
        }
      this._fillEncodeTable(0, 0, skipEncodeChars);
      if (codecOptions.encodeAdd) {
        for (var uChar in codecOptions.encodeAdd)
          if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))
            this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
      }
      this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
      if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]["?"];
      if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0);
    }
    DBCSCodec.prototype.encoder = DBCSEncoder;
    DBCSCodec.prototype.decoder = DBCSDecoder;
    DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
      var bytes = [];
      for (; addr > 0; addr >>>= 8)
        bytes.push(addr & 255);
      if (bytes.length == 0)
        bytes.push(0);
      var node = this.decodeTables[0];
      for (var i6 = bytes.length - 1; i6 > 0; i6--) {
        var val = node[bytes[i6]];
        if (val == UNASSIGNED) {
          node[bytes[i6]] = NODE_START - this.decodeTables.length;
          this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
        } else if (val <= NODE_START) {
          node = this.decodeTables[NODE_START - val];
        } else
          throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
      }
      return node;
    };
    DBCSCodec.prototype._addDecodeChunk = function(chunk3) {
      var curAddr = parseInt(chunk3[0], 16);
      var writeTable = this._getDecodeTrieNode(curAddr);
      curAddr = curAddr & 255;
      for (var k3 = 1; k3 < chunk3.length; k3++) {
        var part = chunk3[k3];
        if (typeof part === "string") {
          for (var l4 = 0; l4 < part.length; ) {
            var code = part.charCodeAt(l4++);
            if (55296 <= code && code < 56320) {
              var codeTrail = part.charCodeAt(l4++);
              if (56320 <= codeTrail && codeTrail < 57344)
                writeTable[curAddr++] = 65536 + (code - 55296) * 1024 + (codeTrail - 56320);
              else
                throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk3[0]);
            } else if (4080 < code && code <= 4095) {
              var len = 4095 - code + 2;
              var seq = [];
              for (var m3 = 0; m3 < len; m3++)
                seq.push(part.charCodeAt(l4++));
              writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
              this.decodeTableSeq.push(seq);
            } else
              writeTable[curAddr++] = code;
          }
        } else if (typeof part === "number") {
          var charCode = writeTable[curAddr - 1] + 1;
          for (var l4 = 0; l4 < part; l4++)
            writeTable[curAddr++] = charCode++;
        } else
          throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk3[0]);
      }
      if (curAddr > 255)
        throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk3[0] + ": too long" + curAddr);
    };
    DBCSCodec.prototype._getEncodeBucket = function(uCode) {
      var high = uCode >> 8;
      if (this.encodeTable[high] === void 0)
        this.encodeTable[high] = UNASSIGNED_NODE.slice(0);
      return this.encodeTable[high];
    };
    DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
      var bucket = this._getEncodeBucket(uCode);
      var low = uCode & 255;
      if (bucket[low] <= SEQ_START)
        this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode;
      else if (bucket[low] == UNASSIGNED)
        bucket[low] = dbcsCode;
    };
    DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
      var uCode = seq[0];
      var bucket = this._getEncodeBucket(uCode);
      var low = uCode & 255;
      var node;
      if (bucket[low] <= SEQ_START) {
        node = this.encodeTableSeq[SEQ_START - bucket[low]];
      } else {
        node = {};
        if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low];
        bucket[low] = SEQ_START - this.encodeTableSeq.length;
        this.encodeTableSeq.push(node);
      }
      for (var j = 1; j < seq.length - 1; j++) {
        var oldVal = node[uCode];
        if (typeof oldVal === "object")
          node = oldVal;
        else {
          node = node[uCode] = {};
          if (oldVal !== void 0)
            node[DEF_CHAR] = oldVal;
        }
      }
      uCode = seq[seq.length - 1];
      node[uCode] = dbcsCode;
    };
    DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
      var node = this.decodeTables[nodeIdx];
      var hasValues = false;
      var subNodeEmpty = {};
      for (var i6 = 0; i6 < 256; i6++) {
        var uCode = node[i6];
        var mbCode = prefix + i6;
        if (skipEncodeChars[mbCode])
          continue;
        if (uCode >= 0) {
          this._setEncodeChar(uCode, mbCode);
          hasValues = true;
        } else if (uCode <= NODE_START) {
          var subNodeIdx = NODE_START - uCode;
          if (!subNodeEmpty[subNodeIdx]) {
            var newPrefix = mbCode << 8 >>> 0;
            if (this._fillEncodeTable(subNodeIdx, newPrefix, skipEncodeChars))
              hasValues = true;
            else
              subNodeEmpty[subNodeIdx] = true;
          }
        } else if (uCode <= SEQ_START) {
          this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
          hasValues = true;
        }
      }
      return hasValues;
    };
    function DBCSEncoder(options, codec) {
      this.leadSurrogate = -1;
      this.seqObj = void 0;
      this.encodeTable = codec.encodeTable;
      this.encodeTableSeq = codec.encodeTableSeq;
      this.defaultCharSingleByte = codec.defCharSB;
      this.gb18030 = codec.gb18030;
    }
    DBCSEncoder.prototype.write = function(str) {
      var newBuf = Buffer5.alloc(str.length * (this.gb18030 ? 4 : 3)), leadSurrogate = this.leadSurrogate, seqObj = this.seqObj, nextChar = -1, i6 = 0, j = 0;
      while (true) {
        if (nextChar === -1) {
          if (i6 == str.length) break;
          var uCode = str.charCodeAt(i6++);
        } else {
          var uCode = nextChar;
          nextChar = -1;
        }
        if (55296 <= uCode && uCode < 57344) {
          if (uCode < 56320) {
            if (leadSurrogate === -1) {
              leadSurrogate = uCode;
              continue;
            } else {
              leadSurrogate = uCode;
              uCode = UNASSIGNED;
            }
          } else {
            if (leadSurrogate !== -1) {
              uCode = 65536 + (leadSurrogate - 55296) * 1024 + (uCode - 56320);
              leadSurrogate = -1;
            } else {
              uCode = UNASSIGNED;
            }
          }
        } else if (leadSurrogate !== -1) {
          nextChar = uCode;
          uCode = UNASSIGNED;
          leadSurrogate = -1;
        }
        var dbcsCode = UNASSIGNED;
        if (seqObj !== void 0 && uCode != UNASSIGNED) {
          var resCode = seqObj[uCode];
          if (typeof resCode === "object") {
            seqObj = resCode;
            continue;
          } else if (typeof resCode == "number") {
            dbcsCode = resCode;
          } else if (resCode == void 0) {
            resCode = seqObj[DEF_CHAR];
            if (resCode !== void 0) {
              dbcsCode = resCode;
              nextChar = uCode;
            } else {
            }
          }
          seqObj = void 0;
        } else if (uCode >= 0) {
          var subtable = this.encodeTable[uCode >> 8];
          if (subtable !== void 0)
            dbcsCode = subtable[uCode & 255];
          if (dbcsCode <= SEQ_START) {
            seqObj = this.encodeTableSeq[SEQ_START - dbcsCode];
            continue;
          }
          if (dbcsCode == UNASSIGNED && this.gb18030) {
            var idx = findIdx(this.gb18030.uChars, uCode);
            if (idx != -1) {
              var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
              newBuf[j++] = 129 + Math.floor(dbcsCode / 12600);
              dbcsCode = dbcsCode % 12600;
              newBuf[j++] = 48 + Math.floor(dbcsCode / 1260);
              dbcsCode = dbcsCode % 1260;
              newBuf[j++] = 129 + Math.floor(dbcsCode / 10);
              dbcsCode = dbcsCode % 10;
              newBuf[j++] = 48 + dbcsCode;
              continue;
            }
          }
        }
        if (dbcsCode === UNASSIGNED)
          dbcsCode = this.defaultCharSingleByte;
        if (dbcsCode < 256) {
          newBuf[j++] = dbcsCode;
        } else if (dbcsCode < 65536) {
          newBuf[j++] = dbcsCode >> 8;
          newBuf[j++] = dbcsCode & 255;
        } else if (dbcsCode < 16777216) {
          newBuf[j++] = dbcsCode >> 16;
          newBuf[j++] = dbcsCode >> 8 & 255;
          newBuf[j++] = dbcsCode & 255;
        } else {
          newBuf[j++] = dbcsCode >>> 24;
          newBuf[j++] = dbcsCode >>> 16 & 255;
          newBuf[j++] = dbcsCode >>> 8 & 255;
          newBuf[j++] = dbcsCode & 255;
        }
      }
      this.seqObj = seqObj;
      this.leadSurrogate = leadSurrogate;
      return newBuf.slice(0, j);
    };
    DBCSEncoder.prototype.end = function() {
      if (this.leadSurrogate === -1 && this.seqObj === void 0)
        return;
      var newBuf = Buffer5.alloc(10), j = 0;
      if (this.seqObj) {
        var dbcsCode = this.seqObj[DEF_CHAR];
        if (dbcsCode !== void 0) {
          if (dbcsCode < 256) {
            newBuf[j++] = dbcsCode;
          } else {
            newBuf[j++] = dbcsCode >> 8;
            newBuf[j++] = dbcsCode & 255;
          }
        } else {
        }
        this.seqObj = void 0;
      }
      if (this.leadSurrogate !== -1) {
        newBuf[j++] = this.defaultCharSingleByte;
        this.leadSurrogate = -1;
      }
      return newBuf.slice(0, j);
    };
    DBCSEncoder.prototype.findIdx = findIdx;
    function DBCSDecoder(options, codec) {
      this.nodeIdx = 0;
      this.prevBytes = [];
      this.decodeTables = codec.decodeTables;
      this.decodeTableSeq = codec.decodeTableSeq;
      this.defaultCharUnicode = codec.defaultCharUnicode;
      this.gb18030 = codec.gb18030;
    }
    DBCSDecoder.prototype.write = function(buf) {
      var newBuf = Buffer5.alloc(buf.length * 2), nodeIdx = this.nodeIdx, prevBytes = this.prevBytes, prevOffset = this.prevBytes.length, seqStart = -this.prevBytes.length, uCode;
      for (var i6 = 0, j = 0; i6 < buf.length; i6++) {
        var curByte = i6 >= 0 ? buf[i6] : prevBytes[i6 + prevOffset];
        var uCode = this.decodeTables[nodeIdx][curByte];
        if (uCode >= 0) {
        } else if (uCode === UNASSIGNED) {
          uCode = this.defaultCharUnicode.charCodeAt(0);
          i6 = seqStart;
        } else if (uCode === GB18030_CODE) {
          if (i6 >= 3) {
            var ptr = (buf[i6 - 3] - 129) * 12600 + (buf[i6 - 2] - 48) * 1260 + (buf[i6 - 1] - 129) * 10 + (curByte - 48);
          } else {
            var ptr = (prevBytes[i6 - 3 + prevOffset] - 129) * 12600 + ((i6 - 2 >= 0 ? buf[i6 - 2] : prevBytes[i6 - 2 + prevOffset]) - 48) * 1260 + ((i6 - 1 >= 0 ? buf[i6 - 1] : prevBytes[i6 - 1 + prevOffset]) - 129) * 10 + (curByte - 48);
          }
          var idx = findIdx(this.gb18030.gbChars, ptr);
          uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
        } else if (uCode <= NODE_START) {
          nodeIdx = NODE_START - uCode;
          continue;
        } else if (uCode <= SEQ_START) {
          var seq = this.decodeTableSeq[SEQ_START - uCode];
          for (var k3 = 0; k3 < seq.length - 1; k3++) {
            uCode = seq[k3];
            newBuf[j++] = uCode & 255;
            newBuf[j++] = uCode >> 8;
          }
          uCode = seq[seq.length - 1];
        } else
          throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);
        if (uCode >= 65536) {
          uCode -= 65536;
          var uCodeLead = 55296 | uCode >> 10;
          newBuf[j++] = uCodeLead & 255;
          newBuf[j++] = uCodeLead >> 8;
          uCode = 56320 | uCode & 1023;
        }
        newBuf[j++] = uCode & 255;
        newBuf[j++] = uCode >> 8;
        nodeIdx = 0;
        seqStart = i6 + 1;
      }
      this.nodeIdx = nodeIdx;
      this.prevBytes = seqStart >= 0 ? Array.prototype.slice.call(buf, seqStart) : prevBytes.slice(seqStart + prevOffset).concat(Array.prototype.slice.call(buf));
      return newBuf.slice(0, j).toString("ucs2");
    };
    DBCSDecoder.prototype.end = function() {
      var ret = "";
      while (this.prevBytes.length > 0) {
        ret += this.defaultCharUnicode;
        var bytesArr = this.prevBytes.slice(1);
        this.prevBytes = [];
        this.nodeIdx = 0;
        if (bytesArr.length > 0)
          ret += this.write(bytesArr);
      }
      this.prevBytes = [];
      this.nodeIdx = 0;
      return ret;
    };
    function findIdx(table, val) {
      if (table[0] > val)
        return -1;
      var l4 = 0, r4 = table.length;
      while (l4 < r4 - 1) {
        var mid = l4 + (r4 - l4 + 1 >> 1);
        if (table[mid] <= val)
          l4 = mid;
        else
          r4 = mid;
      }
      return l4;
    }
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/shiftjis.json
var require_shiftjis2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/shiftjis.json"(exports, module) {
    module.exports = [
      ["0", "\0", 128],
      ["a1", "\uFF61", 62],
      ["8140", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7"],
      ["8180", "\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
      ["81b8", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
      ["81c8", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
      ["81da", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
      ["81f0", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
      ["81fc", "\u25EF"],
      ["824f", "\uFF10", 9],
      ["8260", "\uFF21", 25],
      ["8281", "\uFF41", 25],
      ["829f", "\u3041", 82],
      ["8340", "\u30A1", 62],
      ["8380", "\u30E0", 22],
      ["839f", "\u0391", 16, "\u03A3", 6],
      ["83bf", "\u03B1", 16, "\u03C3", 6],
      ["8440", "\u0410", 5, "\u0401\u0416", 25],
      ["8470", "\u0430", 5, "\u0451\u0436", 7],
      ["8480", "\u043E", 17],
      ["849f", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
      ["8740", "\u2460", 19, "\u2160", 9],
      ["875f", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
      ["877e", "\u337B"],
      ["8780", "\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
      ["889f", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
      ["8940", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],
      ["8980", "\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
      ["8a40", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],
      ["8a80", "\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
      ["8b40", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],
      ["8b80", "\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
      ["8c40", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],
      ["8c80", "\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
      ["8d40", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],
      ["8d80", "\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
      ["8e40", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],
      ["8e80", "\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
      ["8f40", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],
      ["8f80", "\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
      ["9040", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],
      ["9080", "\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
      ["9140", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],
      ["9180", "\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
      ["9240", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],
      ["9280", "\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
      ["9340", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],
      ["9380", "\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
      ["9440", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],
      ["9480", "\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
      ["9540", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],
      ["9580", "\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
      ["9640", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],
      ["9680", "\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
      ["9740", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],
      ["9780", "\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
      ["9840", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
      ["989f", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
      ["9940", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],
      ["9980", "\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
      ["9a40", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],
      ["9a80", "\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
      ["9b40", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],
      ["9b80", "\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
      ["9c40", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],
      ["9c80", "\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
      ["9d40", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],
      ["9d80", "\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
      ["9e40", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],
      ["9e80", "\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
      ["9f40", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],
      ["9f80", "\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
      ["e040", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],
      ["e080", "\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
      ["e140", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],
      ["e180", "\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
      ["e240", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],
      ["e280", "\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
      ["e340", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],
      ["e380", "\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
      ["e440", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],
      ["e480", "\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
      ["e540", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],
      ["e580", "\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
      ["e640", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],
      ["e680", "\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
      ["e740", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],
      ["e780", "\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
      ["e840", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],
      ["e880", "\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
      ["e940", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],
      ["e980", "\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
      ["ea40", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],
      ["ea80", "\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],
      ["ed40", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],
      ["ed80", "\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
      ["ee40", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],
      ["ee80", "\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
      ["eeef", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
      ["f040", "\uE000", 62],
      ["f080", "\uE03F", 124],
      ["f140", "\uE0BC", 62],
      ["f180", "\uE0FB", 124],
      ["f240", "\uE178", 62],
      ["f280", "\uE1B7", 124],
      ["f340", "\uE234", 62],
      ["f380", "\uE273", 124],
      ["f440", "\uE2F0", 62],
      ["f480", "\uE32F", 124],
      ["f540", "\uE3AC", 62],
      ["f580", "\uE3EB", 124],
      ["f640", "\uE468", 62],
      ["f680", "\uE4A7", 124],
      ["f740", "\uE524", 62],
      ["f780", "\uE563", 124],
      ["f840", "\uE5E0", 62],
      ["f880", "\uE61F", 124],
      ["f940", "\uE69C"],
      ["fa40", "\u2170", 9, "\u2160", 9, "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],
      ["fa80", "\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],
      ["fb40", "\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],
      ["fb80", "\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],
      ["fc40", "\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/eucjp.json
var require_eucjp2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/eucjp.json"(exports, module) {
    module.exports = [
      ["0", "\0", 127],
      ["8ea1", "\uFF61", 62],
      ["a1a1", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],
      ["a2a1", "\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
      ["a2ba", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
      ["a2ca", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
      ["a2dc", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
      ["a2f2", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
      ["a2fe", "\u25EF"],
      ["a3b0", "\uFF10", 9],
      ["a3c1", "\uFF21", 25],
      ["a3e1", "\uFF41", 25],
      ["a4a1", "\u3041", 82],
      ["a5a1", "\u30A1", 85],
      ["a6a1", "\u0391", 16, "\u03A3", 6],
      ["a6c1", "\u03B1", 16, "\u03C3", 6],
      ["a7a1", "\u0410", 5, "\u0401\u0416", 25],
      ["a7d1", "\u0430", 5, "\u0451\u0436", 25],
      ["a8a1", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
      ["ada1", "\u2460", 19, "\u2160", 9],
      ["adc0", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
      ["addf", "\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
      ["b0a1", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
      ["b1a1", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],
      ["b2a1", "\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
      ["b3a1", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],
      ["b4a1", "\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
      ["b5a1", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],
      ["b6a1", "\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
      ["b7a1", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],
      ["b8a1", "\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
      ["b9a1", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],
      ["baa1", "\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
      ["bba1", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],
      ["bca1", "\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
      ["bda1", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],
      ["bea1", "\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
      ["bfa1", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],
      ["c0a1", "\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
      ["c1a1", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],
      ["c2a1", "\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
      ["c3a1", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],
      ["c4a1", "\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
      ["c5a1", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],
      ["c6a1", "\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
      ["c7a1", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],
      ["c8a1", "\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
      ["c9a1", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],
      ["caa1", "\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
      ["cba1", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],
      ["cca1", "\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
      ["cda1", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],
      ["cea1", "\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
      ["cfa1", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
      ["d0a1", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
      ["d1a1", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],
      ["d2a1", "\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
      ["d3a1", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],
      ["d4a1", "\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
      ["d5a1", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],
      ["d6a1", "\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
      ["d7a1", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],
      ["d8a1", "\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
      ["d9a1", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],
      ["daa1", "\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
      ["dba1", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],
      ["dca1", "\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
      ["dda1", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],
      ["dea1", "\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
      ["dfa1", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],
      ["e0a1", "\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
      ["e1a1", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],
      ["e2a1", "\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
      ["e3a1", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],
      ["e4a1", "\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
      ["e5a1", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],
      ["e6a1", "\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
      ["e7a1", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],
      ["e8a1", "\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
      ["e9a1", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],
      ["eaa1", "\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
      ["eba1", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],
      ["eca1", "\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
      ["eda1", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],
      ["eea1", "\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
      ["efa1", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],
      ["f0a1", "\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
      ["f1a1", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],
      ["f2a1", "\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
      ["f3a1", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],
      ["f4a1", "\u582F\u69C7\u9059\u7464\u51DC\u7199"],
      ["f9a1", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],
      ["faa1", "\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
      ["fba1", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],
      ["fca1", "\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
      ["fcf1", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
      ["8fa2af", "\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],
      ["8fa2c2", "\xA1\xA6\xBF"],
      ["8fa2eb", "\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],
      ["8fa6e1", "\u0386\u0388\u0389\u038A\u03AA"],
      ["8fa6e7", "\u038C"],
      ["8fa6e9", "\u038E\u03AB"],
      ["8fa6ec", "\u038F"],
      ["8fa6f1", "\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],
      ["8fa7c2", "\u0402", 10, "\u040E\u040F"],
      ["8fa7f2", "\u0452", 10, "\u045E\u045F"],
      ["8fa9a1", "\xC6\u0110"],
      ["8fa9a4", "\u0126"],
      ["8fa9a6", "\u0132"],
      ["8fa9a8", "\u0141\u013F"],
      ["8fa9ab", "\u014A\xD8\u0152"],
      ["8fa9af", "\u0166\xDE"],
      ["8fa9c1", "\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],
      ["8faaa1", "\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],
      ["8faaba", "\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],
      ["8faba1", "\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],
      ["8fabbd", "\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],
      ["8fabc5", "\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],
      ["8fb0a1", "\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],
      ["8fb1a1", "\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],
      ["8fb2a1", "\u5092\u5093\u5094\u5096\u509B\u509C\u509E", 4, "\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],
      ["8fb3a1", "\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],
      ["8fb4a1", "\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],
      ["8fb5a1", "\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],
      ["8fb6a1", "\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D", 5, "\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4", 4, "\u56F1\u56EB\u56ED"],
      ["8fb7a1", "\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D", 4, "\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],
      ["8fb8a1", "\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],
      ["8fb9a1", "\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],
      ["8fbaa1", "\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6", 4, "\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],
      ["8fbba1", "\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],
      ["8fbca1", "\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A", 4, "\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],
      ["8fbda1", "\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0", 4, "\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],
      ["8fbea1", "\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110", 4, "\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],
      ["8fbfa1", "\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],
      ["8fc0a1", "\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],
      ["8fc1a1", "\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],
      ["8fc2a1", "\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],
      ["8fc3a1", "\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E", 4, "\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],
      ["8fc4a1", "\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],
      ["8fc5a1", "\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],
      ["8fc6a1", "\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],
      ["8fc7a1", "\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],
      ["8fc8a1", "\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],
      ["8fc9a1", "\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094", 4, "\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103", 4, "\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],
      ["8fcaa1", "\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],
      ["8fcba1", "\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],
      ["8fcca1", "\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428", 9, "\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],
      ["8fcda1", "\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579", 5, "\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],
      ["8fcea1", "\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2", 6, "\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],
      ["8fcfa1", "\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],
      ["8fd0a1", "\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],
      ["8fd1a1", "\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],
      ["8fd2a1", "\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59", 5],
      ["8fd3a1", "\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],
      ["8fd4a1", "\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2", 4, "\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],
      ["8fd5a1", "\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],
      ["8fd6a1", "\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],
      ["8fd7a1", "\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],
      ["8fd8a1", "\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],
      ["8fd9a1", "\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F", 4, "\u8556\u8559\u855C", 6, "\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],
      ["8fdaa1", "\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660", 4, "\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],
      ["8fdba1", "\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783", 6, "\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],
      ["8fdca1", "\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA", 4, "\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],
      ["8fdda1", "\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4", 4, "\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],
      ["8fdea1", "\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42", 4, "\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],
      ["8fdfa1", "\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],
      ["8fe0a1", "\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],
      ["8fe1a1", "\u8F43\u8F47\u8F4F\u8F51", 4, "\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],
      ["8fe2a1", "\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],
      ["8fe3a1", "\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC", 5, "\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275", 4, "\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],
      ["8fe4a1", "\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF", 4, "\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],
      ["8fe5a1", "\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9", 4, "\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],
      ["8fe6a1", "\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],
      ["8fe7a1", "\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],
      ["8fe8a1", "\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931", 4, "\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],
      ["8fe9a1", "\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF", 4],
      ["8feaa1", "\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A", 4, "\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],
      ["8feba1", "\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26", 4, "\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],
      ["8feca1", "\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],
      ["8feda1", "\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43", 4, "\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D", 4, "\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/cp936.json
var require_cp9362 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/cp936.json"(exports, module) {
    module.exports = [
      ["0", "\0", 127, "\u20AC"],
      ["8140", "\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A", 5, "\u4E72\u4E74", 9, "\u4E7F", 6, "\u4E87\u4E8A"],
      ["8180", "\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02", 6, "\u4F0B\u4F0C\u4F12", 4, "\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E", 4, "\u4F44\u4F45\u4F47", 5, "\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],
      ["8240", "\u4FA4\u4FAB\u4FAD\u4FB0", 4, "\u4FB6", 8, "\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2", 4, "\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF", 11],
      ["8280", "\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F", 10, "\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050", 4, "\u5056\u5057\u5058\u5059\u505B\u505D", 7, "\u5066", 5, "\u506D", 8, "\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E", 20, "\u50A4\u50A6\u50AA\u50AB\u50AD", 4, "\u50B3", 6, "\u50BC"],
      ["8340", "\u50BD", 17, "\u50D0", 5, "\u50D7\u50D8\u50D9\u50DB", 10, "\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6", 4, "\u50FC", 9, "\u5108"],
      ["8380", "\u5109\u510A\u510C", 5, "\u5113", 13, "\u5122", 28, "\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D", 4, "\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6", 4, "\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2", 5],
      ["8440", "\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5", 5, "\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244", 5, "\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],
      ["8480", "\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273", 9, "\u527E\u5280\u5283", 4, "\u5289", 6, "\u5291\u5292\u5294", 6, "\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4", 9, "\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9", 5, "\u52E0\u52E1\u52E2\u52E3\u52E5", 10, "\u52F1", 7, "\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],
      ["8540", "\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F", 9, "\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],
      ["8580", "\u5390", 4, "\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF", 6, "\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3", 4, "\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D", 4, "\u5463\u5465\u5467\u5469", 7, "\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],
      ["8640", "\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0", 4, "\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4", 5, "\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A", 4, "\u5512\u5513\u5515", 5, "\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],
      ["8680", "\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B", 4, "\u5551\u5552\u5553\u5554\u5557", 4, "\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F", 5, "\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0", 6, "\u55A8", 8, "\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF", 4, "\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7", 4, "\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8", 4, "\u55FF\u5602\u5603\u5604\u5605"],
      ["8740", "\u5606\u5607\u560A\u560B\u560D\u5610", 7, "\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640", 11, "\u564F", 4, "\u5655\u5656\u565A\u565B\u565D", 4],
      ["8780", "\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D", 7, "\u5687", 6, "\u5690\u5691\u5692\u5694", 14, "\u56A4", 10, "\u56B0", 6, "\u56B8\u56B9\u56BA\u56BB\u56BD", 12, "\u56CB", 8, "\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5", 5, "\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B", 6],
      ["8840", "\u5712", 9, "\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734", 4, "\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752", 4, "\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],
      ["8880", "\u5781\u5787\u5788\u5789\u578A\u578D", 4, "\u5794", 6, "\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9", 8, "\u57C4", 6, "\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5", 7, "\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825", 4, "\u582B", 4, "\u5831\u5832\u5833\u5834\u5836", 7],
      ["8940", "\u583E", 5, "\u5845", 6, "\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859", 4, "\u585F", 5, "\u5866", 4, "\u586D", 16, "\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],
      ["8980", "\u588D", 4, "\u5894", 4, "\u589B\u589C\u589D\u58A0", 7, "\u58AA", 17, "\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6", 10, "\u58D2\u58D3\u58D4\u58D6", 13, "\u58E5", 5, "\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA", 7, "\u5903\u5905\u5906\u5908", 4, "\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],
      ["8a40", "\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B", 4, "\u5961\u5963\u5964\u5966", 12, "\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],
      ["8a80", "\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3", 5, "\u59BA\u59BC\u59BD\u59BF", 6, "\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE", 4, "\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED", 11, "\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A", 6, "\u5A33\u5A35\u5A37", 4, "\u5A3D\u5A3E\u5A3F\u5A41", 4, "\u5A47\u5A48\u5A4B", 9, "\u5A56\u5A57\u5A58\u5A59\u5A5B", 5],
      ["8b40", "\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B", 8, "\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80", 17, "\u5A93", 6, "\u5A9C", 13, "\u5AAB\u5AAC"],
      ["8b80", "\u5AAD", 4, "\u5AB4\u5AB6\u5AB7\u5AB9", 4, "\u5ABF\u5AC0\u5AC3", 5, "\u5ACA\u5ACB\u5ACD", 4, "\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC", 4, "\u5AF2", 22, "\u5B0A", 11, "\u5B18", 25, "\u5B33\u5B35\u5B36\u5B38", 7, "\u5B41", 6],
      ["8c40", "\u5B48", 7, "\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],
      ["8c80", "\u5BD1\u5BD4", 8, "\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9", 4, "\u5BEF\u5BF1", 6, "\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67", 6, "\u5C70\u5C72", 6, "\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83", 4, "\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D", 4, "\u5CA4", 4],
      ["8d40", "\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5", 5, "\u5CCC", 5, "\u5CD3", 5, "\u5CDA", 6, "\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1", 9, "\u5CFC", 4],
      ["8d80", "\u5D01\u5D04\u5D05\u5D08", 5, "\u5D0F", 4, "\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F", 4, "\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F", 4, "\u5D35", 7, "\u5D3F", 7, "\u5D48\u5D49\u5D4D", 10, "\u5D59\u5D5A\u5D5C\u5D5E", 10, "\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75", 12, "\u5D83", 21, "\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],
      ["8e40", "\u5DA1", 21, "\u5DB8", 12, "\u5DC6", 6, "\u5DCE", 12, "\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],
      ["8e80", "\u5DF0\u5DF5\u5DF6\u5DF8", 4, "\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E", 7, "\u5E28", 4, "\u5E2F\u5E30\u5E32", 4, "\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46", 5, "\u5E4D", 6, "\u5E56", 4, "\u5E5C\u5E5D\u5E5F\u5E60\u5E63", 14, "\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8", 4, "\u5EAE", 4, "\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF", 6],
      ["8f40", "\u5EC6\u5EC7\u5EC8\u5ECB", 5, "\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC", 11, "\u5EE9\u5EEB", 8, "\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],
      ["8f80", "\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32", 6, "\u5F3B\u5F3D\u5F3E\u5F3F\u5F41", 14, "\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2", 5, "\u5FA9\u5FAB\u5FAC\u5FAF", 5, "\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE", 4, "\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],
      ["9040", "\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030", 4, "\u6036", 4, "\u603D\u603E\u6040\u6044", 6, "\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],
      ["9080", "\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD", 7, "\u60C7\u60C8\u60C9\u60CC", 4, "\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1", 4, "\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB", 4, "\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110", 4, "\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C", 18, "\u6140", 6],
      ["9140", "\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156", 6, "\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169", 6, "\u6171\u6172\u6173\u6174\u6176\u6178", 18, "\u618C\u618D\u618F", 4, "\u6195"],
      ["9180", "\u6196", 6, "\u619E", 8, "\u61AA\u61AB\u61AD", 9, "\u61B8", 5, "\u61BF\u61C0\u61C1\u61C3", 4, "\u61C9\u61CC", 4, "\u61D3\u61D5", 16, "\u61E7", 13, "\u61F6", 8, "\u6200", 5, "\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238", 4, "\u6242\u6244\u6245\u6246\u624A"],
      ["9240", "\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C", 6, "\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B", 5, "\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],
      ["9280", "\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333", 5, "\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356", 7, "\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399", 6, "\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],
      ["9340", "\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7", 6, "\u63DF\u63E2\u63E4", 4, "\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406", 4, "\u640D\u640E\u6411\u6412\u6415", 5, "\u641D\u641F\u6422\u6423\u6424"],
      ["9380", "\u6425\u6427\u6428\u6429\u642B\u642E", 5, "\u6435", 4, "\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B", 6, "\u6453\u6455\u6456\u6457\u6459", 4, "\u645F", 7, "\u6468\u646A\u646B\u646C\u646E", 9, "\u647B", 6, "\u6483\u6486\u6488", 8, "\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F", 4, "\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6", 6, "\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],
      ["9440", "\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7", 24, "\u6501", 7, "\u650A", 7, "\u6513", 4, "\u6519", 8],
      ["9480", "\u6522\u6523\u6524\u6526", 4, "\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540", 4, "\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578", 14, "\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1", 7, "\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8", 7, "\u65E1\u65E3\u65E4\u65EA\u65EB"],
      ["9540", "\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB", 4, "\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637", 4, "\u663D\u663F\u6640\u6642\u6644", 6, "\u664D\u664E\u6650\u6651\u6658"],
      ["9580", "\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669", 4, "\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698", 4, "\u669E", 8, "\u66A9", 4, "\u66AF", 4, "\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF", 25, "\u66DA\u66DE", 7, "\u66E7\u66E8\u66EA", 5, "\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],
      ["9640", "\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720", 5, "\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757", 4, "\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],
      ["9680", "\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9", 7, "\u67C2\u67C5", 9, "\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5", 7, "\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818", 4, "\u681E\u681F\u6820\u6822", 6, "\u682B", 6, "\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856", 5],
      ["9740", "\u685C\u685D\u685E\u685F\u686A\u686C", 7, "\u6875\u6878", 8, "\u6882\u6884\u6887", 7, "\u6890\u6891\u6892\u6894\u6895\u6896\u6898", 9, "\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],
      ["9780", "\u68B9", 6, "\u68C1\u68C3", 5, "\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB", 4, "\u68E1\u68E2\u68E4", 9, "\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906", 4, "\u690C\u690F\u6911\u6913", 11, "\u6921\u6922\u6923\u6925", 7, "\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943", 16, "\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],
      ["9840", "\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972", 4, "\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E", 5, "\u6996\u6997\u6999\u699A\u699D", 9, "\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],
      ["9880", "\u69BE\u69BF\u69C0\u69C2", 7, "\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5", 5, "\u69DC\u69DD\u69DE\u69E1", 11, "\u69EE\u69EF\u69F0\u69F1\u69F3", 9, "\u69FE\u6A00", 9, "\u6A0B", 11, "\u6A19", 5, "\u6A20\u6A22", 5, "\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36", 6, "\u6A3F", 4, "\u6A45\u6A46\u6A48", 7, "\u6A51", 6, "\u6A5A"],
      ["9940", "\u6A5C", 4, "\u6A62\u6A63\u6A64\u6A66", 10, "\u6A72", 6, "\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85", 8, "\u6A8F\u6A92", 4, "\u6A98", 7, "\u6AA1", 5],
      ["9980", "\u6AA7\u6AA8\u6AAA\u6AAD", 114, "\u6B25\u6B26\u6B28", 6],
      ["9a40", "\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D", 11, "\u6B5A", 7, "\u6B68\u6B69\u6B6B", 13, "\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],
      ["9a80", "\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C", 4, "\u6BA2", 7, "\u6BAB", 7, "\u6BB6\u6BB8", 6, "\u6BC0\u6BC3\u6BC4\u6BC6", 4, "\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC", 4, "\u6BE2", 7, "\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE", 6, "\u6C08", 4, "\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B", 4, "\u6C51\u6C52\u6C53\u6C56\u6C58"],
      ["9b40", "\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B", 4, "\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],
      ["9b80", "\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F", 5, "\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D", 4, "\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96", 4, "\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9", 5, "\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],
      ["9c40", "\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD", 7, "\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],
      ["9c80", "\u6E36\u6E37\u6E39\u6E3B", 7, "\u6E45", 7, "\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60", 10, "\u6E6C\u6E6D\u6E6F", 14, "\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A", 4, "\u6E91", 6, "\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA", 5],
      ["9d40", "\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA", 7, "\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A", 4, "\u6F10\u6F11\u6F12\u6F16", 9, "\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37", 6, "\u6F3F\u6F40\u6F41\u6F42"],
      ["9d80", "\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E", 9, "\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67", 5, "\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D", 6, "\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F", 12, "\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2", 4, "\u6FA8", 10, "\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA", 5, "\u6FC1\u6FC3", 5, "\u6FCA", 6, "\u6FD3", 10, "\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],
      ["9e40", "\u6FE6", 7, "\u6FF0", 32, "\u7012", 7, "\u701C", 6, "\u7024", 6],
      ["9e80", "\u702B", 9, "\u7036\u7037\u7038\u703A", 17, "\u704D\u704E\u7050", 13, "\u705F", 11, "\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E", 12, "\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB", 12, "\u70DA"],
      ["9f40", "\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0", 6, "\u70F8\u70FA\u70FB\u70FC\u70FE", 10, "\u710B", 4, "\u7111\u7112\u7114\u7117\u711B", 10, "\u7127", 7, "\u7132\u7133\u7134"],
      ["9f80", "\u7135\u7137", 13, "\u7146\u7147\u7148\u7149\u714B\u714D\u714F", 12, "\u715D\u715F", 4, "\u7165\u7169", 4, "\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E", 5, "\u7185", 4, "\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A", 4, "\u71A1", 6, "\u71A9\u71AA\u71AB\u71AD", 5, "\u71B4\u71B6\u71B7\u71B8\u71BA", 8, "\u71C4", 9, "\u71CF", 4],
      ["a040", "\u71D6", 9, "\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8", 5, "\u71EF", 9, "\u71FA", 11, "\u7207", 19],
      ["a080", "\u721B\u721C\u721E", 9, "\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240", 6, "\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285", 4, "\u728C\u728E\u7290\u7291\u7293", 11, "\u72A0", 11, "\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA", 6, "\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],
      ["a1a1", "\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 7, "\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],
      ["a2a1", "\u2170", 9],
      ["a2b1", "\u2488", 19, "\u2474", 19, "\u2460", 9],
      ["a2e5", "\u3220", 9],
      ["a2f1", "\u2160", 11],
      ["a3a1", "\uFF01\uFF02\uFF03\uFFE5\uFF05", 88, "\uFFE3"],
      ["a4a1", "\u3041", 82],
      ["a5a1", "\u30A1", 85],
      ["a6a1", "\u0391", 16, "\u03A3", 6],
      ["a6c1", "\u03B1", 16, "\u03C3", 6],
      ["a6e0", "\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],
      ["a6ee", "\uFE3B\uFE3C\uFE37\uFE38\uFE31"],
      ["a6f4", "\uFE33\uFE34"],
      ["a7a1", "\u0410", 5, "\u0401\u0416", 25],
      ["a7d1", "\u0430", 5, "\u0451\u0436", 25],
      ["a840", "\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550", 35, "\u2581", 6],
      ["a880", "\u2588", 7, "\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],
      ["a8a1", "\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],
      ["a8bd", "\u0144\u0148"],
      ["a8c0", "\u0261"],
      ["a8c5", "\u3105", 36],
      ["a940", "\u3021", 8, "\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],
      ["a959", "\u2121\u3231"],
      ["a95c", "\u2010"],
      ["a960", "\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49", 9, "\uFE54\uFE55\uFE56\uFE57\uFE59", 8],
      ["a980", "\uFE62", 4, "\uFE68\uFE69\uFE6A\uFE6B"],
      ["a996", "\u3007"],
      ["a9a4", "\u2500", 75],
      ["aa40", "\u72DC\u72DD\u72DF\u72E2", 5, "\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304", 5, "\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340", 8],
      ["aa80", "\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358", 7, "\u7361", 10, "\u736E\u7370\u7371"],
      ["ab40", "\u7372", 11, "\u737F", 4, "\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3", 5, "\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3", 4],
      ["ab80", "\u73CB\u73CC\u73CE\u73D2", 6, "\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3", 4],
      ["ac40", "\u73F8", 10, "\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411", 8, "\u741C", 5, "\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437", 4, "\u743D\u743E\u743F\u7440\u7442", 11],
      ["ac80", "\u744E", 6, "\u7456\u7458\u745D\u7460", 12, "\u746E\u746F\u7471", 4, "\u7478\u7479\u747A"],
      ["ad40", "\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491", 10, "\u749D\u749F", 7, "\u74AA", 15, "\u74BB", 12],
      ["ad80", "\u74C8", 9, "\u74D3", 8, "\u74DD\u74DF\u74E1\u74E5\u74E7", 6, "\u74F0\u74F1\u74F2"],
      ["ae40", "\u74F3\u74F5\u74F8", 6, "\u7500\u7501\u7502\u7503\u7505", 7, "\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520", 4, "\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],
      ["ae80", "\u755D", 7, "\u7567\u7568\u7569\u756B", 6, "\u7573\u7575\u7576\u7577\u757A", 4, "\u7580\u7581\u7582\u7584\u7585\u7587"],
      ["af40", "\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6", 4, "\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],
      ["af80", "\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],
      ["b040", "\u7645", 6, "\u764E", 5, "\u7655\u7657", 4, "\u765D\u765F\u7660\u7661\u7662\u7664", 6, "\u766C\u766D\u766E\u7670", 7, "\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],
      ["b080", "\u769C", 7, "\u76A5", 8, "\u76AF\u76B0\u76B3\u76B5", 9, "\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],
      ["b140", "\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0", 4, "\u76E6", 7, "\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E", 10, "\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],
      ["b180", "\u772C\u772E\u7730", 4, "\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748", 7, "\u7752", 7, "\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],
      ["b240", "\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D", 11, "\u777A\u777B\u777C\u7781\u7782\u7783\u7786", 5, "\u778F\u7790\u7793", 11, "\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6", 4],
      ["b280", "\u77BC\u77BE\u77C0", 12, "\u77CE", 8, "\u77D8\u77D9\u77DA\u77DD", 4, "\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],
      ["b340", "\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803", 5, "\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],
      ["b380", "\u785B\u785C\u785E", 11, "\u786F", 7, "\u7878\u7879\u787A\u787B\u787D", 6, "\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],
      ["b440", "\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8", 7, "\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA", 9],
      ["b480", "\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED", 4, "\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB", 5, "\u7902\u7903\u7904\u7906", 6, "\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],
      ["b540", "\u790D", 5, "\u7914", 9, "\u791F", 4, "\u7925", 14, "\u7935", 4, "\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A", 8, "\u7954\u7955\u7958\u7959\u7961\u7963"],
      ["b580", "\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970", 6, "\u7979\u797B", 4, "\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],
      ["b640", "\u7993", 6, "\u799B", 11, "\u79A8", 10, "\u79B4", 4, "\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9", 5, "\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],
      ["b680", "\u79EC\u79EE\u79F1", 6, "\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F", 4, "\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],
      ["b740", "\u7A1D\u7A1F\u7A21\u7A22\u7A24", 14, "\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40", 5, "\u7A47", 9, "\u7A52", 4, "\u7A58", 16],
      ["b780", "\u7A69", 6, "\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],
      ["b840", "\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE", 4, "\u7AB4", 10, "\u7AC0", 10, "\u7ACC", 9, "\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7", 5, "\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],
      ["b880", "\u7AF4", 4, "\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],
      ["b940", "\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F", 5, "\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63", 10, "\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86", 6, "\u7B8E\u7B8F"],
      ["b980", "\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9", 7, "\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],
      ["ba40", "\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4", 4, "\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2", 4, "\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF", 7, "\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10", 5, "\u7C17\u7C18\u7C19"],
      ["ba80", "\u7C1A", 4, "\u7C20", 5, "\u7C28\u7C29\u7C2B", 12, "\u7C39", 5, "\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],
      ["bb40", "\u7C43", 9, "\u7C4E", 36, "\u7C75", 5, "\u7C7E", 9],
      ["bb80", "\u7C88\u7C8A", 6, "\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4", 4, "\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],
      ["bc40", "\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE", 6, "\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1", 6, "\u7CE9", 5, "\u7CF0", 7, "\u7CF9\u7CFA\u7CFC", 13, "\u7D0B", 5],
      ["bc80", "\u7D11", 14, "\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30", 6, "\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],
      ["bd40", "\u7D37", 54, "\u7D6F", 7],
      ["bd80", "\u7D78", 32, "\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],
      ["be40", "\u7D99", 12, "\u7DA7", 6, "\u7DAF", 42],
      ["be80", "\u7DDA", 32, "\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],
      ["bf40", "\u7DFB", 62],
      ["bf80", "\u7E3A\u7E3C", 4, "\u7E42", 4, "\u7E48", 21, "\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],
      ["c040", "\u7E5E", 35, "\u7E83", 23, "\u7E9C\u7E9D\u7E9E"],
      ["c080", "\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B", 6, "\u7F43\u7F46", 9, "\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],
      ["c140", "\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63", 4, "\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82", 7, "\u7F8B\u7F8D\u7F8F", 4, "\u7F95", 4, "\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8", 6, "\u7FB1"],
      ["c180", "\u7FB3", 4, "\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF", 4, "\u7FD6\u7FD7\u7FD9", 5, "\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],
      ["c240", "\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4", 6, "\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B", 5, "\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],
      ["c280", "\u8059\u805B", 13, "\u806B", 5, "\u8072", 11, "\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],
      ["c340", "\u807E\u8081\u8082\u8085\u8088\u808A\u808D", 5, "\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7", 4, "\u80CF", 6, "\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],
      ["c380", "\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F", 12, "\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139", 4, "\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],
      ["c440", "\u8140", 5, "\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B", 4, "\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183", 4, "\u8189\u818B\u818C\u818D\u818E\u8190\u8192", 5, "\u8199\u819A\u819E", 4, "\u81A4\u81A5"],
      ["c480", "\u81A7\u81A9\u81AB", 7, "\u81B4", 5, "\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD", 6, "\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],
      ["c540", "\u81D4", 14, "\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE", 4, "\u81F5", 5, "\u81FD\u81FF\u8203\u8207", 4, "\u820E\u820F\u8211\u8213\u8215", 5, "\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],
      ["c580", "\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250", 7, "\u8259\u825B\u825C\u825D\u825E\u8260", 7, "\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],
      ["c640", "\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],
      ["c680", "\u82FA\u82FC", 4, "\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D", 9, "\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],
      ["c740", "\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A", 4, "\u8353\u8355", 4, "\u835D\u8362\u8370", 6, "\u8379\u837A\u837E", 6, "\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1", 6, "\u83AC\u83AD\u83AE"],
      ["c780", "\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],
      ["c840", "\u83EE\u83EF\u83F3", 4, "\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412", 5, "\u8419\u841A\u841B\u841E", 5, "\u8429", 7, "\u8432", 5, "\u8439\u843A\u843B\u843E", 7, "\u8447\u8448\u8449"],
      ["c880", "\u844A", 6, "\u8452", 4, "\u8458\u845D\u845E\u845F\u8460\u8462\u8464", 4, "\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],
      ["c940", "\u847D", 4, "\u8483\u8484\u8485\u8486\u848A\u848D\u848F", 7, "\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2", 12, "\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],
      ["c980", "\u84D8", 4, "\u84DE\u84E1\u84E2\u84E4\u84E7", 4, "\u84ED\u84EE\u84EF\u84F1", 10, "\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],
      ["ca40", "\u8503", 8, "\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522", 8, "\u852D", 9, "\u853E", 4, "\u8544\u8545\u8546\u8547\u854B", 10],
      ["ca80", "\u8557\u8558\u855A\u855B\u855C\u855D\u855F", 4, "\u8565\u8566\u8567\u8569", 8, "\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],
      ["cb40", "\u8582\u8583\u8586\u8588", 6, "\u8590", 10, "\u859D", 6, "\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1", 5, "\u85B8\u85BA", 6, "\u85C2", 6, "\u85CA", 4, "\u85D1\u85D2"],
      ["cb80", "\u85D4\u85D6", 5, "\u85DD", 6, "\u85E5\u85E6\u85E7\u85E8\u85EA", 14, "\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],
      ["cc40", "\u85F9\u85FA\u85FC\u85FD\u85FE\u8600", 4, "\u8606", 10, "\u8612\u8613\u8614\u8615\u8617", 15, "\u8628\u862A", 13, "\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],
      ["cc80", "\u8641", 11, "\u8652\u8653\u8655", 4, "\u865B\u865C\u865D\u865F\u8660\u8661\u8663", 7, "\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],
      ["cd40", "\u866D\u866F\u8670\u8672", 6, "\u8683", 6, "\u868E", 4, "\u8694\u8696", 5, "\u869E", 4, "\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB", 4, "\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],
      ["cd80", "\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],
      ["ce40", "\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740", 6, "\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A", 5, "\u8761\u8762\u8766", 7, "\u876F\u8771\u8772\u8773\u8775"],
      ["ce80", "\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E", 4, "\u8794\u8795\u8796\u8798", 6, "\u87A0", 4, "\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],
      ["cf40", "\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1", 4, "\u87C7\u87C8\u87C9\u87CC", 4, "\u87D4", 6, "\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF", 9],
      ["cf80", "\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804", 5, "\u880B", 7, "\u8814\u8817\u8818\u8819\u881A\u881C", 4, "\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],
      ["d040", "\u8824", 13, "\u8833", 5, "\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846", 5, "\u884E", 5, "\u8855\u8856\u8858\u885A", 6, "\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],
      ["d080", "\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897", 4, "\u889D", 4, "\u88A3\u88A5", 5, "\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],
      ["d140", "\u88AC\u88AE\u88AF\u88B0\u88B2", 4, "\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA", 4, "\u88E0\u88E1\u88E6\u88E7\u88E9", 6, "\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903", 5],
      ["d180", "\u8909\u890B", 4, "\u8911\u8914", 4, "\u891C", 4, "\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],
      ["d240", "\u8938", 8, "\u8942\u8943\u8945", 24, "\u8960", 5, "\u8967", 19, "\u897C"],
      ["d280", "\u897D\u897E\u8980\u8982\u8984\u8985\u8987", 26, "\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],
      ["d340", "\u89A2", 30, "\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4", 6],
      ["d380", "\u89FB", 4, "\u8A01", 5, "\u8A08", 21, "\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],
      ["d440", "\u8A1E", 31, "\u8A3F", 8, "\u8A49", 21],
      ["d480", "\u8A5F", 25, "\u8A7A", 6, "\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],
      ["d540", "\u8A81", 7, "\u8A8B", 7, "\u8A94", 46],
      ["d580", "\u8AC3", 32, "\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],
      ["d640", "\u8AE4", 34, "\u8B08", 27],
      ["d680", "\u8B24\u8B25\u8B27", 30, "\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],
      ["d740", "\u8B46", 31, "\u8B67", 4, "\u8B6D", 25],
      ["d780", "\u8B87", 24, "\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],
      ["d840", "\u8C38", 8, "\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D", 7, "\u8C56\u8C57\u8C58\u8C59\u8C5B", 5, "\u8C63", 6, "\u8C6C", 6, "\u8C74\u8C75\u8C76\u8C77\u8C7B", 6, "\u8C83\u8C84\u8C86\u8C87"],
      ["d880", "\u8C88\u8C8B\u8C8D", 6, "\u8C95\u8C96\u8C97\u8C99", 20, "\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],
      ["d940", "\u8CAE", 62],
      ["d980", "\u8CED", 32, "\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],
      ["da40", "\u8D0E", 14, "\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78", 8, "\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C", 4, "\u8D92\u8D93\u8D95", 9, "\u8DA0\u8DA1"],
      ["da80", "\u8DA2\u8DA4", 12, "\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],
      ["db40", "\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE", 6, "\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15", 7, "\u8E20\u8E21\u8E24", 4, "\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],
      ["db80", "\u8E3F\u8E43\u8E45\u8E46\u8E4C", 4, "\u8E53", 5, "\u8E5A", 11, "\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],
      ["dc40", "\u8E73\u8E75\u8E77", 4, "\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88", 6, "\u8E91\u8E92\u8E93\u8E95", 6, "\u8E9D\u8E9F", 11, "\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3", 6, "\u8EBB", 7],
      ["dc80", "\u8EC3", 10, "\u8ECF", 21, "\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],
      ["dd40", "\u8EE5", 62],
      ["dd80", "\u8F24", 32, "\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],
      ["de40", "\u8F45", 32, "\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],
      ["de80", "\u8FC9", 4, "\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],
      ["df40", "\u9019\u901C\u9023\u9024\u9025\u9027", 5, "\u9030", 4, "\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048", 4, "\u904E\u9054\u9055\u9056\u9059\u905A\u905C", 5, "\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F", 4, "\u9076", 6, "\u907E\u9081"],
      ["df80", "\u9084\u9085\u9086\u9087\u9089\u908A\u908C", 4, "\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],
      ["e040", "\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105", 19, "\u911A\u911B\u911C"],
      ["e080", "\u911D\u911F\u9120\u9121\u9124", 10, "\u9130\u9132", 6, "\u913A", 8, "\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],
      ["e140", "\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180", 4, "\u9186\u9188\u918A\u918E\u918F\u9193", 6, "\u919C", 5, "\u91A4", 5, "\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],
      ["e180", "\u91BC", 10, "\u91C8\u91CB\u91D0\u91D2", 9, "\u91DD", 8, "\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],
      ["e240", "\u91E6", 62],
      ["e280", "\u9225", 32, "\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967", 5, "\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],
      ["e340", "\u9246", 45, "\u9275", 16],
      ["e380", "\u9286", 7, "\u928F", 24, "\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],
      ["e440", "\u92A8", 5, "\u92AF", 24, "\u92C9", 31],
      ["e480", "\u92E9", 32, "\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],
      ["e540", "\u930A", 51, "\u933F", 10],
      ["e580", "\u934A", 31, "\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],
      ["e640", "\u936C", 34, "\u9390", 27],
      ["e680", "\u93AC", 29, "\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],
      ["e740", "\u93CE", 7, "\u93D7", 54],
      ["e780", "\u940E", 32, "\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21", 6, "\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F", 4, "\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],
      ["e840", "\u942F", 14, "\u943F", 43, "\u946C\u946D\u946E\u946F"],
      ["e880", "\u9470", 20, "\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],
      ["e940", "\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577", 7, "\u9580", 42],
      ["e980", "\u95AB", 32, "\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],
      ["ea40", "\u95CC", 27, "\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623", 6, "\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],
      ["ea80", "\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D", 4, "\u9673\u9678", 12, "\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],
      ["eb40", "\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D", 9, "\u96A8", 7, "\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6", 9, "\u96E1", 6, "\u96EB"],
      ["eb80", "\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717", 4, "\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],
      ["ec40", "\u9721", 8, "\u972B\u972C\u972E\u972F\u9731\u9733", 4, "\u973A\u973B\u973C\u973D\u973F", 18, "\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A", 7],
      ["ec80", "\u9772\u9775\u9777", 4, "\u977D", 7, "\u9786", 4, "\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799", 4, "\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],
      ["ed40", "\u979E\u979F\u97A1\u97A2\u97A4", 6, "\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5", 46],
      ["ed80", "\u97E4\u97E5\u97E8\u97EE", 4, "\u97F4\u97F7", 23, "\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],
      ["ee40", "\u980F", 62],
      ["ee80", "\u984E", 32, "\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6", 4, "\u94BC\u94BD\u94BF\u94C4\u94C8", 6, "\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],
      ["ef40", "\u986F", 5, "\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8", 37, "\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0", 4],
      ["ef80", "\u98E5\u98E6\u98E9", 30, "\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512", 4, "\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564", 8, "\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],
      ["f040", "\u9908", 4, "\u990E\u990F\u9911", 28, "\u992F", 26],
      ["f080", "\u994A", 9, "\u9956", 12, "\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28", 4, "\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66", 6, "\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],
      ["f140", "\u998C\u998E\u999A", 10, "\u99A6\u99A7\u99A9", 47],
      ["f180", "\u99D9", 32, "\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],
      ["f240", "\u99FA", 62],
      ["f280", "\u9A39", 32, "\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],
      ["f340", "\u9A5A", 17, "\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9", 6, "\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6", 4, "\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],
      ["f380", "\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0", 8, "\u9AFA\u9AFC", 6, "\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],
      ["f440", "\u9B07\u9B09", 5, "\u9B10\u9B11\u9B12\u9B14", 10, "\u9B20\u9B21\u9B22\u9B24", 10, "\u9B30\u9B31\u9B33", 7, "\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55", 5],
      ["f480", "\u9B5B", 32, "\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],
      ["f540", "\u9B7C", 62],
      ["f580", "\u9BBB", 32, "\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],
      ["f640", "\u9BDC", 62],
      ["f680", "\u9C1B", 32, "\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85", 5, "\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E", 5, "\u9CA5", 4, "\u9CAB\u9CAD\u9CAE\u9CB0", 7, "\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],
      ["f740", "\u9C3C", 62],
      ["f780", "\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE", 4, "\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC", 4, "\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],
      ["f840", "\u9CE3", 62],
      ["f880", "\u9D22", 32],
      ["f940", "\u9D43", 62],
      ["f980", "\u9D82", 32],
      ["fa40", "\u9DA3", 62],
      ["fa80", "\u9DE2", 32],
      ["fb40", "\u9E03", 27, "\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74", 9, "\u9E80"],
      ["fb80", "\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C", 5, "\u9E94", 8, "\u9E9E\u9EA0", 5, "\u9EA7\u9EA8\u9EA9\u9EAA"],
      ["fc40", "\u9EAB", 8, "\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF", 4, "\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0", 8, "\u9EFA\u9EFD\u9EFF", 6],
      ["fc80", "\u9F06", 4, "\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A", 5, "\u9F21\u9F23", 8, "\u9F2D\u9F2E\u9F30\u9F31"],
      ["fd40", "\u9F32", 4, "\u9F38\u9F3A\u9F3C\u9F3F", 4, "\u9F45", 10, "\u9F52", 38],
      ["fd80", "\u9F79", 5, "\u9F81\u9F82\u9F8D", 11, "\u9F9C\u9F9D\u9F9E\u9FA1", 4, "\uF92C\uF979\uF995\uF9E7\uF9F1"],
      ["fe40", "\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/gbk-added.json
var require_gbk_added2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/gbk-added.json"(exports, module) {
    module.exports = [
      ["a140", "\uE4C6", 62],
      ["a180", "\uE505", 32],
      ["a240", "\uE526", 62],
      ["a280", "\uE565", 32],
      ["a2ab", "\uE766", 5],
      ["a2e3", "\u20AC\uE76D"],
      ["a2ef", "\uE76E\uE76F"],
      ["a2fd", "\uE770\uE771"],
      ["a340", "\uE586", 62],
      ["a380", "\uE5C5", 31, "\u3000"],
      ["a440", "\uE5E6", 62],
      ["a480", "\uE625", 32],
      ["a4f4", "\uE772", 10],
      ["a540", "\uE646", 62],
      ["a580", "\uE685", 32],
      ["a5f7", "\uE77D", 7],
      ["a640", "\uE6A6", 62],
      ["a680", "\uE6E5", 32],
      ["a6b9", "\uE785", 7],
      ["a6d9", "\uE78D", 6],
      ["a6ec", "\uE794\uE795"],
      ["a6f3", "\uE796"],
      ["a6f6", "\uE797", 8],
      ["a740", "\uE706", 62],
      ["a780", "\uE745", 32],
      ["a7c2", "\uE7A0", 14],
      ["a7f2", "\uE7AF", 12],
      ["a896", "\uE7BC", 10],
      ["a8bc", "\u1E3F"],
      ["a8bf", "\u01F9"],
      ["a8c1", "\uE7C9\uE7CA\uE7CB\uE7CC"],
      ["a8ea", "\uE7CD", 20],
      ["a958", "\uE7E2"],
      ["a95b", "\uE7E3"],
      ["a95d", "\uE7E4\uE7E5\uE7E6"],
      ["a989", "\u303E\u2FF0", 11],
      ["a997", "\uE7F4", 12],
      ["a9f0", "\uE801", 14],
      ["aaa1", "\uE000", 93],
      ["aba1", "\uE05E", 93],
      ["aca1", "\uE0BC", 93],
      ["ada1", "\uE11A", 93],
      ["aea1", "\uE178", 93],
      ["afa1", "\uE1D6", 93],
      ["d7fa", "\uE810", 4],
      ["f8a1", "\uE234", 93],
      ["f9a1", "\uE292", 93],
      ["faa1", "\uE2F0", 93],
      ["fba1", "\uE34E", 93],
      ["fca1", "\uE3AC", 93],
      ["fda1", "\uE40A", 93],
      ["fe50", "\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],
      ["fe80", "\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13", 6, "\u4DAE\uE864\uE468", 93],
      ["8135f437", "\uE7C7"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json
var require_gb18030_ranges2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json"(exports, module) {
    module.exports = { uChars: [128, 165, 169, 178, 184, 216, 226, 235, 238, 244, 248, 251, 253, 258, 276, 284, 300, 325, 329, 334, 364, 463, 465, 467, 469, 471, 473, 475, 477, 506, 594, 610, 712, 716, 730, 930, 938, 962, 970, 1026, 1104, 1106, 8209, 8215, 8218, 8222, 8231, 8241, 8244, 8246, 8252, 8365, 8452, 8454, 8458, 8471, 8482, 8556, 8570, 8596, 8602, 8713, 8720, 8722, 8726, 8731, 8737, 8740, 8742, 8748, 8751, 8760, 8766, 8777, 8781, 8787, 8802, 8808, 8816, 8854, 8858, 8870, 8896, 8979, 9322, 9372, 9548, 9588, 9616, 9622, 9634, 9652, 9662, 9672, 9676, 9680, 9702, 9735, 9738, 9793, 9795, 11906, 11909, 11913, 11917, 11928, 11944, 11947, 11951, 11956, 11960, 11964, 11979, 12284, 12292, 12312, 12319, 12330, 12351, 12436, 12447, 12535, 12543, 12586, 12842, 12850, 12964, 13200, 13215, 13218, 13253, 13263, 13267, 13270, 13384, 13428, 13727, 13839, 13851, 14617, 14703, 14801, 14816, 14964, 15183, 15471, 15585, 16471, 16736, 17208, 17325, 17330, 17374, 17623, 17997, 18018, 18212, 18218, 18301, 18318, 18760, 18811, 18814, 18820, 18823, 18844, 18848, 18872, 19576, 19620, 19738, 19887, 40870, 59244, 59336, 59367, 59413, 59417, 59423, 59431, 59437, 59443, 59452, 59460, 59478, 59493, 63789, 63866, 63894, 63976, 63986, 64016, 64018, 64021, 64025, 64034, 64037, 64042, 65074, 65093, 65107, 65112, 65127, 65132, 65375, 65510, 65536], gbChars: [0, 36, 38, 45, 50, 81, 89, 95, 96, 100, 103, 104, 105, 109, 126, 133, 148, 172, 175, 179, 208, 306, 307, 308, 309, 310, 311, 312, 313, 341, 428, 443, 544, 545, 558, 741, 742, 749, 750, 805, 819, 820, 7922, 7924, 7925, 7927, 7934, 7943, 7944, 7945, 7950, 8062, 8148, 8149, 8152, 8164, 8174, 8236, 8240, 8262, 8264, 8374, 8380, 8381, 8384, 8388, 8390, 8392, 8393, 8394, 8396, 8401, 8406, 8416, 8419, 8424, 8437, 8439, 8445, 8482, 8485, 8496, 8521, 8603, 8936, 8946, 9046, 9050, 9063, 9066, 9076, 9092, 9100, 9108, 9111, 9113, 9131, 9162, 9164, 9218, 9219, 11329, 11331, 11334, 11336, 11346, 11361, 11363, 11366, 11370, 11372, 11375, 11389, 11682, 11686, 11687, 11692, 11694, 11714, 11716, 11723, 11725, 11730, 11736, 11982, 11989, 12102, 12336, 12348, 12350, 12384, 12393, 12395, 12397, 12510, 12553, 12851, 12962, 12973, 13738, 13823, 13919, 13933, 14080, 14298, 14585, 14698, 15583, 15847, 16318, 16434, 16438, 16481, 16729, 17102, 17122, 17315, 17320, 17402, 17418, 17859, 17909, 17911, 17915, 17916, 17936, 17939, 17961, 18664, 18703, 18814, 18962, 19043, 33469, 33470, 33471, 33484, 33485, 33490, 33497, 33501, 33505, 33513, 33520, 33536, 33550, 37845, 37921, 37948, 38029, 38038, 38064, 38065, 38066, 38069, 38075, 38076, 38078, 39108, 39109, 39113, 39114, 39115, 39116, 39265, 39394, 189e3] };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/cp949.json
var require_cp9492 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/cp949.json"(exports, module) {
    module.exports = [
      ["0", "\0", 127],
      ["8141", "\uAC02\uAC03\uAC05\uAC06\uAC0B", 4, "\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25", 6, "\uAC2E\uAC32\uAC33\uAC34"],
      ["8161", "\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41", 9, "\uAC4C\uAC4E", 5, "\uAC55"],
      ["8181", "\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D", 18, "\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B", 4, "\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95", 6, "\uAC9E\uACA2", 5, "\uACAB\uACAD\uACAE\uACB1", 6, "\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD", 7, "\uACD6\uACD8", 7, "\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7", 4, "\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07", 4, "\uAD0E\uAD10\uAD12\uAD13"],
      ["8241", "\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21", 7, "\uAD2A\uAD2B\uAD2E", 5],
      ["8261", "\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D", 6, "\uAD46\uAD48\uAD4A", 5, "\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],
      ["8281", "\uAD59", 7, "\uAD62\uAD64", 7, "\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83", 4, "\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91", 10, "\uAD9E", 5, "\uADA5", 17, "\uADB8", 7, "\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9", 6, "\uADD2\uADD4", 7, "\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5", 18],
      ["8341", "\uADFA\uADFB\uADFD\uADFE\uAE02", 5, "\uAE0A\uAE0C\uAE0E", 5, "\uAE15", 7],
      ["8361", "\uAE1D", 18, "\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],
      ["8381", "\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57", 4, "\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71", 6, "\uAE7A\uAE7E", 5, "\uAE86", 5, "\uAE8D", 46, "\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5", 6, "\uAECE\uAED2", 5, "\uAEDA\uAEDB\uAEDD", 8],
      ["8441", "\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE", 5, "\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD", 8],
      ["8461", "\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11", 18],
      ["8481", "\uAF24", 7, "\uAF2E\uAF2F\uAF31\uAF33\uAF35", 6, "\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A", 5, "\uAF51", 10, "\uAF5E", 5, "\uAF66", 18, "\uAF7A", 5, "\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89", 6, "\uAF92\uAF93\uAF94\uAF96", 5, "\uAF9D", 26, "\uAFBA\uAFBB\uAFBD\uAFBE"],
      ["8541", "\uAFBF\uAFC1", 5, "\uAFCA\uAFCC\uAFCF", 4, "\uAFD5", 6, "\uAFDD", 4],
      ["8561", "\uAFE2", 5, "\uAFEA", 5, "\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9", 6, "\uB002\uB003"],
      ["8581", "\uB005", 6, "\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015", 6, "\uB01E", 9, "\uB029", 26, "\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E", 29, "\uB07E\uB07F\uB081\uB082\uB083\uB085", 6, "\uB08E\uB090\uB092", 5, "\uB09B\uB09D\uB09E\uB0A3\uB0A4"],
      ["8641", "\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD", 6, "\uB0C6\uB0CA", 5, "\uB0D2"],
      ["8661", "\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9", 6, "\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6", 10],
      ["8681", "\uB0F1", 22, "\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E", 4, "\uB126\uB127\uB129\uB12A\uB12B\uB12D", 6, "\uB136\uB13A", 5, "\uB142\uB143\uB145\uB146\uB147\uB149", 6, "\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161", 22, "\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183", 4, "\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],
      ["8741", "\uB19E", 9, "\uB1A9", 15],
      ["8761", "\uB1B9", 18, "\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],
      ["8781", "\uB1D6", 5, "\uB1DE\uB1E0", 7, "\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1", 7, "\uB1FA\uB1FC\uB1FE", 5, "\uB206\uB207\uB209\uB20A\uB20D", 6, "\uB216\uB218\uB21A", 5, "\uB221", 18, "\uB235", 6, "\uB23D", 26, "\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261", 6, "\uB26A", 4],
      ["8841", "\uB26F", 4, "\uB276", 5, "\uB27D", 6, "\uB286\uB287\uB288\uB28A", 4],
      ["8861", "\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B", 4, "\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],
      ["8881", "\uB2B8", 15, "\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3", 4, "\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309", 6, "\uB312\uB316", 5, "\uB31D", 54, "\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],
      ["8941", "\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379", 6, "\uB382\uB386", 5, "\uB38D"],
      ["8961", "\uB38E\uB38F\uB391\uB392\uB393\uB395", 10, "\uB3A2", 5, "\uB3A9\uB3AA\uB3AB\uB3AD"],
      ["8981", "\uB3AE", 21, "\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9", 18, "\uB3FD", 18, "\uB411", 6, "\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421", 6, "\uB42A\uB42C", 7, "\uB435", 15],
      ["8a41", "\uB445", 10, "\uB452\uB453\uB455\uB456\uB457\uB459", 6, "\uB462\uB464\uB466"],
      ["8a61", "\uB467", 4, "\uB46D", 18, "\uB481\uB482"],
      ["8a81", "\uB483", 4, "\uB489", 19, "\uB49E", 5, "\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD", 7, "\uB4B6\uB4B8\uB4BA", 5, "\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9", 6, "\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6", 5, "\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7", 4, "\uB4EE\uB4F0\uB4F2", 5, "\uB4F9", 26, "\uB516\uB517\uB519\uB51A\uB51D"],
      ["8b41", "\uB51E", 5, "\uB526\uB52B", 4, "\uB532\uB533\uB535\uB536\uB537\uB539", 6, "\uB542\uB546"],
      ["8b61", "\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555", 6, "\uB55E\uB562", 8],
      ["8b81", "\uB56B", 52, "\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6", 4, "\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5", 6, "\uB5CE\uB5D2", 5, "\uB5D9", 18, "\uB5ED", 18],
      ["8c41", "\uB600", 15, "\uB612\uB613\uB615\uB616\uB617\uB619", 4],
      ["8c61", "\uB61E", 6, "\uB626", 5, "\uB62D", 6, "\uB635", 5],
      ["8c81", "\uB63B", 12, "\uB649", 26, "\uB665\uB666\uB667\uB669", 50, "\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5", 5, "\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2", 16],
      ["8d41", "\uB6C3", 16, "\uB6D5", 8],
      ["8d61", "\uB6DE", 17, "\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],
      ["8d81", "\uB6FB", 4, "\uB702\uB703\uB704\uB706", 33, "\uB72A\uB72B\uB72D\uB72E\uB731", 6, "\uB73A\uB73C", 7, "\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D", 6, "\uB756", 9, "\uB761\uB762\uB763\uB765\uB766\uB767\uB769", 6, "\uB772\uB774\uB776", 5, "\uB77E\uB77F\uB781\uB782\uB783\uB785", 6, "\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],
      ["8e41", "\uB79F\uB7A1", 6, "\uB7AA\uB7AE", 5, "\uB7B6\uB7B7\uB7B9", 8],
      ["8e61", "\uB7C2", 4, "\uB7C8\uB7CA", 19],
      ["8e81", "\uB7DE", 13, "\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5", 6, "\uB7FE\uB802", 4, "\uB80A\uB80B\uB80D\uB80E\uB80F\uB811", 6, "\uB81A\uB81C\uB81E", 5, "\uB826\uB827\uB829\uB82A\uB82B\uB82D", 6, "\uB836\uB83A", 5, "\uB841\uB842\uB843\uB845", 11, "\uB852\uB854", 7, "\uB85E\uB85F\uB861\uB862\uB863\uB865", 6, "\uB86E\uB870\uB872", 5, "\uB879\uB87A\uB87B\uB87D", 7],
      ["8f41", "\uB885", 7, "\uB88E", 17],
      ["8f61", "\uB8A0", 7, "\uB8A9", 6, "\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9", 4],
      ["8f81", "\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6", 5, "\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5", 7, "\uB8DE\uB8E0\uB8E2", 5, "\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1", 6, "\uB8FA\uB8FC\uB8FE", 5, "\uB905", 18, "\uB919", 6, "\uB921", 26, "\uB93E\uB93F\uB941\uB942\uB943\uB945", 6, "\uB94D\uB94E\uB950\uB952", 5],
      ["9041", "\uB95A\uB95B\uB95D\uB95E\uB95F\uB961", 6, "\uB96A\uB96C\uB96E", 5, "\uB976\uB977\uB979\uB97A\uB97B\uB97D"],
      ["9061", "\uB97E", 5, "\uB986\uB988\uB98B\uB98C\uB98F", 15],
      ["9081", "\uB99F", 12, "\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5", 6, "\uB9BE\uB9C0\uB9C2", 5, "\uB9CA\uB9CB\uB9CD\uB9D3", 4, "\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED", 6, "\uB9F6\uB9FB", 4, "\uBA02", 5, "\uBA09", 11, "\uBA16", 33, "\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],
      ["9141", "\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D", 6, "\uBA66\uBA6A", 5],
      ["9161", "\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79", 9, "\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D", 5],
      ["9181", "\uBA93", 20, "\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3", 4, "\uBABA\uBABC\uBABE", 5, "\uBAC5\uBAC6\uBAC7\uBAC9", 14, "\uBADA", 33, "\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05", 7, "\uBB0E\uBB10\uBB12", 5, "\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21", 6],
      ["9241", "\uBB28\uBB2A\uBB2C", 7, "\uBB37\uBB39\uBB3A\uBB3F", 4, "\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],
      ["9261", "\uBB53\uBB55\uBB56\uBB57\uBB59", 7, "\uBB62\uBB64", 7, "\uBB6D", 4],
      ["9281", "\uBB72", 21, "\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91", 18, "\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD", 6, "\uBBB5\uBBB6\uBBB8", 7, "\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9", 6, "\uBBD1\uBBD2\uBBD4", 35, "\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],
      ["9341", "\uBC03", 4, "\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],
      ["9361", "\uBC36\uBC37\uBC39", 6, "\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51", 8],
      ["9381", "\uBC5A\uBC5B\uBC5C\uBC5E", 37, "\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F", 4, "\uBC96\uBC98\uBC9B", 4, "\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9", 6, "\uBCB2\uBCB6", 5, "\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5", 7, "\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD", 22, "\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],
      ["9441", "\uBCFE", 5, "\uBD06\uBD08\uBD0A", 5, "\uBD11\uBD12\uBD13\uBD15", 8],
      ["9461", "\uBD1E", 5, "\uBD25", 6, "\uBD2D", 12],
      ["9481", "\uBD3A", 5, "\uBD41", 6, "\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51", 6, "\uBD5A", 9, "\uBD65\uBD66\uBD67\uBD69", 22, "\uBD82\uBD83\uBD85\uBD86\uBD8B", 4, "\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D", 6, "\uBDA5", 10, "\uBDB1", 6, "\uBDB9", 24],
      ["9541", "\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD", 11, "\uBDEA", 5, "\uBDF1"],
      ["9561", "\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9", 6, "\uBE01\uBE02\uBE04\uBE06", 5, "\uBE0E\uBE0F\uBE11\uBE12\uBE13"],
      ["9581", "\uBE15", 6, "\uBE1E\uBE20", 35, "\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F", 4, "\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B", 4, "\uBE72\uBE76", 4, "\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85", 6, "\uBE8E\uBE92", 5, "\uBE9A", 13, "\uBEA9", 14],
      ["9641", "\uBEB8", 23, "\uBED2\uBED3"],
      ["9661", "\uBED5\uBED6\uBED9", 6, "\uBEE1\uBEE2\uBEE6", 5, "\uBEED", 8],
      ["9681", "\uBEF6", 10, "\uBF02", 5, "\uBF0A", 13, "\uBF1A\uBF1E", 33, "\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49", 6, "\uBF52\uBF53\uBF54\uBF56", 44],
      ["9741", "\uBF83", 16, "\uBF95", 8],
      ["9761", "\uBF9E", 17, "\uBFB1", 7],
      ["9781", "\uBFB9", 11, "\uBFC6", 5, "\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5", 6, "\uBFDD\uBFDE\uBFE0\uBFE2", 89, "\uC03D\uC03E\uC03F"],
      ["9841", "\uC040", 16, "\uC052", 5, "\uC059\uC05A\uC05B"],
      ["9861", "\uC05D\uC05E\uC05F\uC061", 6, "\uC06A", 15],
      ["9881", "\uC07A", 21, "\uC092\uC093\uC095\uC096\uC097\uC099", 6, "\uC0A2\uC0A4\uC0A6", 5, "\uC0AE\uC0B1\uC0B2\uC0B7", 4, "\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1", 6, "\uC0DA\uC0DE", 5, "\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED", 6, "\uC0F6\uC0F8\uC0FA", 5, "\uC101\uC102\uC103\uC105\uC106\uC107\uC109", 6, "\uC111\uC112\uC113\uC114\uC116", 5, "\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],
      ["9941", "\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141", 6, "\uC14A\uC14E", 5, "\uC156\uC157"],
      ["9961", "\uC159\uC15A\uC15B\uC15D", 6, "\uC166\uC16A", 5, "\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],
      ["9981", "\uC17C", 8, "\uC186", 5, "\uC18F\uC191\uC192\uC193\uC195\uC197", 4, "\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1", 11, "\uC1BE", 5, "\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD", 6, "\uC1D5\uC1D6\uC1D9", 6, "\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9", 6, "\uC1F2\uC1F4", 7, "\uC1FE\uC1FF\uC201\uC202\uC203\uC205", 6, "\uC20E\uC210\uC212", 5, "\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],
      ["9a41", "\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235", 16],
      ["9a61", "\uC246\uC247\uC249", 6, "\uC252\uC253\uC255\uC256\uC257\uC259", 6, "\uC261\uC262\uC263\uC264\uC266"],
      ["9a81", "\uC267", 4, "\uC26E\uC26F\uC271\uC272\uC273\uC275", 6, "\uC27E\uC280\uC282", 5, "\uC28A", 5, "\uC291", 6, "\uC299\uC29A\uC29C\uC29E", 5, "\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE", 5, "\uC2B6\uC2B8\uC2BA", 33, "\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5", 5, "\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301", 6, "\uC30A\uC30B\uC30E\uC30F"],
      ["9b41", "\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D", 6, "\uC326\uC327\uC32A", 8],
      ["9b61", "\uC333", 17, "\uC346", 7],
      ["9b81", "\uC34E", 25, "\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373", 4, "\uC37A\uC37B\uC37E", 5, "\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D", 50, "\uC3C1", 22, "\uC3DA"],
      ["9c41", "\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3", 4, "\uC3EA\uC3EB\uC3EC\uC3EE", 5, "\uC3F6\uC3F7\uC3F9", 5],
      ["9c61", "\uC3FF", 8, "\uC409", 6, "\uC411", 9],
      ["9c81", "\uC41B", 8, "\uC425", 6, "\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435", 6, "\uC43E", 9, "\uC449", 26, "\uC466\uC467\uC469\uC46A\uC46B\uC46D", 6, "\uC476\uC477\uC478\uC47A", 5, "\uC481", 18, "\uC495", 6, "\uC49D", 12],
      ["9d41", "\uC4AA", 13, "\uC4B9\uC4BA\uC4BB\uC4BD", 8],
      ["9d61", "\uC4C6", 25],
      ["9d81", "\uC4E0", 8, "\uC4EA", 5, "\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502", 9, "\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515", 6, "\uC51D", 10, "\uC52A\uC52B\uC52D\uC52E\uC52F\uC531", 6, "\uC53A\uC53C\uC53E", 5, "\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569", 6, "\uC572\uC576", 5, "\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],
      ["9e41", "\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1", 7, "\uC5AA", 9, "\uC5B6"],
      ["9e61", "\uC5B7\uC5BA\uC5BF", 4, "\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9", 6, "\uC5E2\uC5E4\uC5E6\uC5E7"],
      ["9e81", "\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611", 6, "\uC61A\uC61D", 6, "\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649", 6, "\uC652\uC656", 5, "\uC65E\uC65F\uC661", 10, "\uC66D\uC66E\uC670\uC672", 5, "\uC67A\uC67B\uC67D\uC67E\uC67F\uC681", 6, "\uC68A\uC68C\uC68E", 5, "\uC696\uC697\uC699\uC69A\uC69B\uC69D", 6, "\uC6A6"],
      ["9f41", "\uC6A8\uC6AA", 5, "\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB", 4, "\uC6C2\uC6C4\uC6C6", 5, "\uC6CE"],
      ["9f61", "\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5", 6, "\uC6DE\uC6DF\uC6E2", 5, "\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],
      ["9f81", "\uC6F3", 4, "\uC6FA\uC6FB\uC6FC\uC6FE", 5, "\uC706\uC707\uC709\uC70A\uC70B\uC70D", 6, "\uC716\uC718\uC71A", 5, "\uC722\uC723\uC725\uC726\uC727\uC729", 6, "\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745", 4, "\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761", 6, "\uC769\uC76A\uC76C", 7, "\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B", 4, "\uC7A2\uC7A7", 4, "\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],
      ["a041", "\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2", 5, "\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1", 6, "\uC7D9\uC7DA\uC7DB\uC7DC"],
      ["a061", "\uC7DE", 5, "\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED", 13],
      ["a081", "\uC7FB", 4, "\uC802\uC803\uC805\uC806\uC807\uC809\uC80B", 4, "\uC812\uC814\uC817", 4, "\uC81E\uC81F\uC821\uC822\uC823\uC825", 6, "\uC82E\uC830\uC832", 5, "\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841", 6, "\uC84A\uC84B\uC84E", 5, "\uC855", 26, "\uC872\uC873\uC875\uC876\uC877\uC879\uC87B", 4, "\uC882\uC884\uC888\uC889\uC88A\uC88E", 5, "\uC895", 7, "\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],
      ["a141", "\uC8A5\uC8A6\uC8A7\uC8A9", 18, "\uC8BE\uC8BF\uC8C0\uC8C1"],
      ["a161", "\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD", 6, "\uC8D6\uC8D8\uC8DA", 5, "\uC8E2\uC8E3\uC8E5"],
      ["a181", "\uC8E6", 14, "\uC8F6", 5, "\uC8FE\uC8FF\uC901\uC902\uC903\uC907", 4, "\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 9, "\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],
      ["a241", "\uC910\uC912", 5, "\uC919", 18],
      ["a261", "\uC92D", 6, "\uC935", 18],
      ["a281", "\uC948", 7, "\uC952\uC953\uC955\uC956\uC957\uC959", 6, "\uC962\uC964", 7, "\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],
      ["a341", "\uC971\uC972\uC973\uC975", 6, "\uC97D", 10, "\uC98A\uC98B\uC98D\uC98E\uC98F"],
      ["a361", "\uC991", 6, "\uC99A\uC99C\uC99E", 16],
      ["a381", "\uC9AF", 16, "\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB", 4, "\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01", 58, "\uFFE6\uFF3D", 32, "\uFFE3"],
      ["a441", "\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2", 5, "\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],
      ["a461", "\uCA05\uCA06\uCA07\uCA0A\uCA0E", 5, "\uCA15\uCA16\uCA17\uCA19", 12],
      ["a481", "\uCA26\uCA27\uCA28\uCA2A", 28, "\u3131", 93],
      ["a541", "\uCA47", 4, "\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55", 6, "\uCA5E\uCA62", 5, "\uCA69\uCA6A"],
      ["a561", "\uCA6B", 17, "\uCA7E", 5, "\uCA85\uCA86"],
      ["a581", "\uCA87", 16, "\uCA99", 14, "\u2170", 9],
      ["a5b0", "\u2160", 9],
      ["a5c1", "\u0391", 16, "\u03A3", 6],
      ["a5e1", "\u03B1", 16, "\u03C3", 6],
      ["a641", "\uCAA8", 19, "\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],
      ["a661", "\uCAC6", 5, "\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA", 5, "\uCAE1", 6],
      ["a681", "\uCAE8\uCAE9\uCAEA\uCAEB\uCAED", 6, "\uCAF5", 18, "\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543", 7],
      ["a741", "\uCB0B", 4, "\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19", 6, "\uCB22", 7],
      ["a761", "\uCB2A", 22, "\uCB42\uCB43\uCB44"],
      ["a781", "\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51", 6, "\uCB5A\uCB5B\uCB5C\uCB5E", 5, "\uCB65", 7, "\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399", 9, "\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0", 9, "\u3380", 4, "\u33BA", 5, "\u3390", 4, "\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],
      ["a841", "\uCB6D", 10, "\uCB7A", 14],
      ["a861", "\uCB89", 18, "\uCB9D", 6],
      ["a881", "\uCBA4", 19, "\uCBB9", 11, "\xC6\xD0\xAA\u0126"],
      ["a8a6", "\u0132"],
      ["a8a8", "\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],
      ["a8b1", "\u3260", 27, "\u24D0", 25, "\u2460", 14, "\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],
      ["a941", "\uCBC5", 14, "\uCBD5", 10],
      ["a961", "\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA", 18],
      ["a981", "\uCBFD", 14, "\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15", 6, "\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200", 27, "\u249C", 25, "\u2474", 14, "\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],
      ["aa41", "\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31", 6, "\uCC3A\uCC3F", 4, "\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],
      ["aa61", "\uCC4F", 4, "\uCC56\uCC5A", 5, "\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69", 6, "\uCC71\uCC72"],
      ["aa81", "\uCC73\uCC74\uCC76", 29, "\u3041", 82],
      ["ab41", "\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1", 6, "\uCCAA\uCCAE", 5, "\uCCB6\uCCB7\uCCB9"],
      ["ab61", "\uCCBA\uCCBB\uCCBD", 6, "\uCCC6\uCCC8\uCCCA", 5, "\uCCD1\uCCD2\uCCD3\uCCD5", 5],
      ["ab81", "\uCCDB", 8, "\uCCE5", 6, "\uCCED\uCCEE\uCCEF\uCCF1", 12, "\u30A1", 85],
      ["ac41", "\uCCFE\uCCFF\uCD00\uCD02", 5, "\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11", 6, "\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],
      ["ac61", "\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D", 11, "\uCD3A", 4],
      ["ac81", "\uCD3F", 28, "\uCD5D\uCD5E\uCD5F\u0410", 5, "\u0401\u0416", 25],
      ["acd1", "\u0430", 5, "\u0451\u0436", 25],
      ["ad41", "\uCD61\uCD62\uCD63\uCD65", 6, "\uCD6E\uCD70\uCD72", 5, "\uCD79", 7],
      ["ad61", "\uCD81", 6, "\uCD89", 10, "\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],
      ["ad81", "\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA", 5, "\uCDB1", 18, "\uCDC5"],
      ["ae41", "\uCDC6", 5, "\uCDCD\uCDCE\uCDCF\uCDD1", 16],
      ["ae61", "\uCDE2", 5, "\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1", 6, "\uCDFA\uCDFC\uCDFE", 4],
      ["ae81", "\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D", 6, "\uCE15\uCE16\uCE17\uCE18\uCE1A", 5, "\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],
      ["af41", "\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36", 19],
      ["af61", "\uCE4A", 13, "\uCE5A\uCE5B\uCE5D\uCE5E\uCE62", 5, "\uCE6A\uCE6C"],
      ["af81", "\uCE6E", 5, "\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D", 6, "\uCE86\uCE88\uCE8A", 5, "\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],
      ["b041", "\uCE9A", 5, "\uCEA2\uCEA6", 5, "\uCEAE", 12],
      ["b061", "\uCEBB", 5, "\uCEC2", 19],
      ["b081", "\uCED6", 13, "\uCEE6\uCEE7\uCEE9\uCEEA\uCEED", 6, "\uCEF6\uCEFA", 5, "\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10", 7, "\uAC19", 4, "\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],
      ["b141", "\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09", 6, "\uCF12\uCF14\uCF16", 5, "\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],
      ["b161", "\uCF25", 6, "\uCF2E\uCF32", 5, "\uCF39", 11],
      ["b181", "\uCF45", 14, "\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D", 6, "\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],
      ["b241", "\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79", 6, "\uCF81\uCF82\uCF83\uCF84\uCF86", 5, "\uCF8D"],
      ["b261", "\uCF8E", 18, "\uCFA2", 5, "\uCFA9"],
      ["b281", "\uCFAA", 5, "\uCFB1", 18, "\uCFC5", 6, "\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],
      ["b341", "\uCFCC", 19, "\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],
      ["b361", "\uCFEA", 5, "\uCFF2\uCFF4\uCFF6", 5, "\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005", 5],
      ["b381", "\uD00B", 5, "\uD012", 5, "\uD019", 19, "\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB", 4, "\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],
      ["b441", "\uD02E", 5, "\uD036\uD037\uD039\uD03A\uD03B\uD03D", 6, "\uD046\uD048\uD04A", 5],
      ["b461", "\uD051\uD052\uD053\uD055\uD056\uD057\uD059", 6, "\uD061", 10, "\uD06E\uD06F"],
      ["b481", "\uD071\uD072\uD073\uD075", 6, "\uD07E\uD07F\uD080\uD082", 18, "\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB", 4, "\uB2F3\uB2F4\uB2F5\uB2F7", 4, "\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],
      ["b541", "\uD095", 14, "\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD", 5],
      ["b561", "\uD0B3\uD0B6\uD0B8\uD0BA", 5, "\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA", 5, "\uD0D2\uD0D6", 4],
      ["b581", "\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5", 6, "\uD0EE\uD0F2", 5, "\uD0F9", 11, "\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],
      ["b641", "\uD105", 7, "\uD10E", 17],
      ["b661", "\uD120", 15, "\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],
      ["b681", "\uD13F\uD142\uD146", 5, "\uD14E\uD14F\uD151\uD152\uD153\uD155", 6, "\uD15E\uD160\uD162", 5, "\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],
      ["b741", "\uD16E", 13, "\uD17D", 6, "\uD185\uD186\uD187\uD189\uD18A"],
      ["b761", "\uD18B", 20, "\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],
      ["b781", "\uD1A9", 6, "\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1", 14, "\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],
      ["b841", "\uD1D0", 7, "\uD1D9", 17],
      ["b861", "\uD1EB", 8, "\uD1F5\uD1F6\uD1F7\uD1F9", 13],
      ["b881", "\uD208\uD20A", 5, "\uD211", 24, "\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE", 4, "\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],
      ["b941", "\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235", 6, "\uD23E\uD240\uD242", 5, "\uD249\uD24A\uD24B\uD24C"],
      ["b961", "\uD24D", 14, "\uD25D", 6, "\uD265\uD266\uD267\uD268"],
      ["b981", "\uD269", 22, "\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14", 4, "\uBC1B", 4, "\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],
      ["ba41", "\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296", 5, "\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5", 6, "\uD2AD"],
      ["ba61", "\uD2AE\uD2AF\uD2B0\uD2B2", 5, "\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3", 4, "\uD2CA\uD2CC", 5],
      ["ba81", "\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD", 6, "\uD2E6", 9, "\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],
      ["bb41", "\uD2FB", 4, "\uD302\uD304\uD306", 5, "\uD30F\uD311\uD312\uD313\uD315\uD317", 4, "\uD31E\uD322\uD323"],
      ["bb61", "\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331", 6, "\uD33A\uD33E", 5, "\uD346\uD347\uD348\uD349"],
      ["bb81", "\uD34A", 31, "\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],
      ["bc41", "\uD36A", 17, "\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],
      ["bc61", "\uD388\uD389\uD38A\uD38B\uD38E\uD392", 5, "\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1", 6, "\uD3AA\uD3AC\uD3AE"],
      ["bc81", "\uD3AF", 4, "\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD", 6, "\uD3C6\uD3C7\uD3CA", 5, "\uD3D1", 5, "\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C", 4, "\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],
      ["bd41", "\uD3D7\uD3D9", 7, "\uD3E2\uD3E4", 7, "\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],
      ["bd61", "\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402", 5, "\uD409", 13],
      ["bd81", "\uD417", 5, "\uD41E", 25, "\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],
      ["be41", "\uD438", 7, "\uD441\uD442\uD443\uD445", 14],
      ["be61", "\uD454", 7, "\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465", 7, "\uD46E\uD470\uD471\uD472"],
      ["be81", "\uD473", 4, "\uD47A\uD47B\uD47D\uD47E\uD481\uD483", 4, "\uD48A\uD48C\uD48E", 5, "\uD495", 8, "\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4", 6, "\uC5CC\uC5CE"],
      ["bf41", "\uD49E", 10, "\uD4AA", 14],
      ["bf61", "\uD4B9", 18, "\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],
      ["bf81", "\uD4D6", 5, "\uD4DD\uD4DE\uD4E0", 7, "\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1", 6, "\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC", 5, "\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],
      ["c041", "\uD4FE", 5, "\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D", 6, "\uD516\uD518", 5],
      ["c061", "\uD51E", 25],
      ["c081", "\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545", 6, "\uD54E\uD550\uD552", 5, "\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751", 7, "\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],
      ["c141", "\uD564\uD566\uD567\uD56A\uD56C\uD56E", 5, "\uD576\uD577\uD579\uD57A\uD57B\uD57D", 6, "\uD586\uD58A\uD58B"],
      ["c161", "\uD58C\uD58D\uD58E\uD58F\uD591", 19, "\uD5A6\uD5A7"],
      ["c181", "\uD5A8", 31, "\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],
      ["c241", "\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3", 4, "\uD5DA\uD5DC\uD5DE", 5, "\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],
      ["c261", "\uD5EF", 4, "\uD5F6\uD5F8\uD5FA", 5, "\uD602\uD603\uD605\uD606\uD607\uD609", 6, "\uD612"],
      ["c281", "\uD616", 5, "\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625", 7, "\uD62E", 9, "\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],
      ["c341", "\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D", 4],
      ["c361", "\uD662", 4, "\uD668\uD66A", 5, "\uD672\uD673\uD675", 11],
      ["c381", "\uD681\uD682\uD684\uD686", 5, "\uD68E\uD68F\uD691\uD692\uD693\uD695", 7, "\uD69E\uD6A0\uD6A2", 5, "\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],
      ["c441", "\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1", 7, "\uD6BA\uD6BC", 7, "\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],
      ["c461", "\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA", 5, "\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9", 4],
      ["c481", "\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6", 5, "\uD6FE\uD6FF\uD701\uD702\uD703\uD705", 11, "\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],
      ["c541", "\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721", 6, "\uD72A\uD72C\uD72E", 5, "\uD736\uD737\uD739"],
      ["c561", "\uD73A\uD73B\uD73D", 6, "\uD745\uD746\uD748\uD74A", 5, "\uD752\uD753\uD755\uD75A", 4],
      ["c581", "\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775", 6, "\uD77E\uD77F\uD780\uD782", 5, "\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],
      ["c641", "\uD78D\uD78E\uD78F\uD791", 6, "\uD79A\uD79C\uD79E", 5],
      ["c6a1", "\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],
      ["c7a1", "\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],
      ["c8a1", "\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],
      ["caa1", "\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],
      ["cba1", "\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],
      ["cca1", "\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],
      ["cda1", "\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],
      ["cea1", "\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],
      ["cfa1", "\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],
      ["d0a1", "\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],
      ["d1a1", "\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E", 5, "\u90A3\uF914", 4, "\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],
      ["d2a1", "\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928", 4, "\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933", 5, "\u99D1\uF939", 10, "\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A", 7, "\u5AE9\u8A25\u677B\u7D10\uF952", 5, "\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],
      ["d3a1", "\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],
      ["d4a1", "\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],
      ["d5a1", "\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],
      ["d6a1", "\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],
      ["d7a1", "\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],
      ["d8a1", "\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],
      ["d9a1", "\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],
      ["daa1", "\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],
      ["dba1", "\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],
      ["dca1", "\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],
      ["dda1", "\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],
      ["dea1", "\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],
      ["dfa1", "\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],
      ["e0a1", "\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],
      ["e1a1", "\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],
      ["e2a1", "\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],
      ["e3a1", "\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],
      ["e4a1", "\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],
      ["e5a1", "\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],
      ["e6a1", "\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],
      ["e7a1", "\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],
      ["e8a1", "\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],
      ["e9a1", "\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],
      ["eaa1", "\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],
      ["eba1", "\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],
      ["eca1", "\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],
      ["eda1", "\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],
      ["eea1", "\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],
      ["efa1", "\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],
      ["f0a1", "\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],
      ["f1a1", "\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],
      ["f2a1", "\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],
      ["f3a1", "\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],
      ["f4a1", "\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],
      ["f5a1", "\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],
      ["f6a1", "\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],
      ["f7a1", "\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],
      ["f8a1", "\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],
      ["f9a1", "\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],
      ["faa1", "\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],
      ["fba1", "\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],
      ["fca1", "\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],
      ["fda1", "\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/cp950.json
var require_cp9502 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/cp950.json"(exports, module) {
    module.exports = [
      ["0", "\0", 127],
      ["a140", "\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],
      ["a1a1", "\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62", 4, "\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],
      ["a240", "\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581", 7, "\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],
      ["a2a1", "\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10", 9, "\u2160", 9, "\u3021", 8, "\u5341\u5344\u5345\uFF21", 25, "\uFF41", 21],
      ["a340", "\uFF57\uFF58\uFF59\uFF5A\u0391", 16, "\u03A3", 6, "\u03B1", 16, "\u03C3", 6, "\u3105", 10],
      ["a3a1", "\u3110", 25, "\u02D9\u02C9\u02CA\u02C7\u02CB"],
      ["a3e1", "\u20AC"],
      ["a440", "\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],
      ["a4a1", "\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],
      ["a540", "\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],
      ["a5a1", "\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],
      ["a640", "\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],
      ["a6a1", "\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],
      ["a740", "\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],
      ["a7a1", "\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],
      ["a840", "\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],
      ["a8a1", "\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],
      ["a940", "\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],
      ["a9a1", "\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],
      ["aa40", "\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],
      ["aaa1", "\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],
      ["ab40", "\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],
      ["aba1", "\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],
      ["ac40", "\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],
      ["aca1", "\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],
      ["ad40", "\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],
      ["ada1", "\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],
      ["ae40", "\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],
      ["aea1", "\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],
      ["af40", "\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],
      ["afa1", "\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],
      ["b040", "\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],
      ["b0a1", "\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],
      ["b140", "\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],
      ["b1a1", "\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],
      ["b240", "\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],
      ["b2a1", "\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],
      ["b340", "\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],
      ["b3a1", "\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],
      ["b440", "\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],
      ["b4a1", "\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],
      ["b540", "\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],
      ["b5a1", "\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],
      ["b640", "\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],
      ["b6a1", "\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],
      ["b740", "\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],
      ["b7a1", "\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],
      ["b840", "\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],
      ["b8a1", "\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],
      ["b940", "\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],
      ["b9a1", "\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],
      ["ba40", "\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],
      ["baa1", "\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],
      ["bb40", "\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],
      ["bba1", "\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],
      ["bc40", "\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],
      ["bca1", "\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],
      ["bd40", "\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],
      ["bda1", "\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],
      ["be40", "\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],
      ["bea1", "\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],
      ["bf40", "\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],
      ["bfa1", "\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],
      ["c040", "\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],
      ["c0a1", "\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],
      ["c140", "\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],
      ["c1a1", "\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],
      ["c240", "\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],
      ["c2a1", "\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],
      ["c340", "\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],
      ["c3a1", "\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],
      ["c440", "\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],
      ["c4a1", "\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],
      ["c540", "\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],
      ["c5a1", "\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],
      ["c640", "\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],
      ["c940", "\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],
      ["c9a1", "\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],
      ["ca40", "\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],
      ["caa1", "\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],
      ["cb40", "\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],
      ["cba1", "\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],
      ["cc40", "\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],
      ["cca1", "\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],
      ["cd40", "\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],
      ["cda1", "\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],
      ["ce40", "\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],
      ["cea1", "\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],
      ["cf40", "\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],
      ["cfa1", "\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],
      ["d040", "\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],
      ["d0a1", "\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],
      ["d140", "\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],
      ["d1a1", "\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],
      ["d240", "\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],
      ["d2a1", "\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],
      ["d340", "\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],
      ["d3a1", "\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],
      ["d440", "\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],
      ["d4a1", "\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],
      ["d540", "\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],
      ["d5a1", "\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],
      ["d640", "\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],
      ["d6a1", "\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],
      ["d740", "\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],
      ["d7a1", "\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],
      ["d840", "\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],
      ["d8a1", "\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],
      ["d940", "\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],
      ["d9a1", "\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],
      ["da40", "\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],
      ["daa1", "\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],
      ["db40", "\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],
      ["dba1", "\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],
      ["dc40", "\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],
      ["dca1", "\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],
      ["dd40", "\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],
      ["dda1", "\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],
      ["de40", "\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],
      ["dea1", "\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],
      ["df40", "\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],
      ["dfa1", "\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],
      ["e040", "\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],
      ["e0a1", "\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],
      ["e140", "\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],
      ["e1a1", "\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],
      ["e240", "\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],
      ["e2a1", "\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],
      ["e340", "\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],
      ["e3a1", "\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],
      ["e440", "\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],
      ["e4a1", "\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],
      ["e540", "\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],
      ["e5a1", "\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],
      ["e640", "\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],
      ["e6a1", "\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],
      ["e740", "\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],
      ["e7a1", "\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],
      ["e840", "\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],
      ["e8a1", "\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],
      ["e940", "\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],
      ["e9a1", "\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],
      ["ea40", "\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],
      ["eaa1", "\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],
      ["eb40", "\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],
      ["eba1", "\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],
      ["ec40", "\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],
      ["eca1", "\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],
      ["ed40", "\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],
      ["eda1", "\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],
      ["ee40", "\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],
      ["eea1", "\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],
      ["ef40", "\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],
      ["efa1", "\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],
      ["f040", "\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],
      ["f0a1", "\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],
      ["f140", "\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],
      ["f1a1", "\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],
      ["f240", "\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],
      ["f2a1", "\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],
      ["f340", "\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],
      ["f3a1", "\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],
      ["f440", "\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],
      ["f4a1", "\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],
      ["f540", "\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],
      ["f5a1", "\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],
      ["f640", "\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],
      ["f6a1", "\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],
      ["f740", "\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],
      ["f7a1", "\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],
      ["f840", "\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],
      ["f8a1", "\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],
      ["f940", "\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],
      ["f9a1", "\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/big5-added.json
var require_big5_added2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/big5-added.json"(exports, module) {
    module.exports = [
      ["8740", "\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],
      ["8767", "\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],
      ["87a1", "\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],
      ["8840", "\u31C0", 4, "\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],
      ["88a1", "\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],
      ["8940", "\u{2A3A9}\u{21145}"],
      ["8943", "\u650A"],
      ["8946", "\u4E3D\u6EDD\u9D4E\u91DF"],
      ["894c", "\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],
      ["89a1", "\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],
      ["89ab", "\u918C\u78B8\u915E\u80BC"],
      ["89b0", "\u8D0B\u80F6\u{209E7}"],
      ["89b5", "\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],
      ["89c1", "\u6E9A\u823E\u7519"],
      ["89c5", "\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],
      ["8a40", "\u{27D84}\u5525"],
      ["8a43", "\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],
      ["8a64", "\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],
      ["8a76", "\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],
      ["8aa1", "\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],
      ["8aac", "\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],
      ["8ab2", "\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],
      ["8abb", "\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],
      ["8ac9", "\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],
      ["8ace", "\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],
      ["8adf", "\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],
      ["8af6", "\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],
      ["8b40", "\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],
      ["8b55", "\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],
      ["8ba1", "\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],
      ["8bde", "\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],
      ["8c40", "\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],
      ["8ca1", "\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],
      ["8ca7", "\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],
      ["8cc9", "\u9868\u676B\u4276\u573D"],
      ["8cce", "\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],
      ["8ce6", "\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],
      ["8d40", "\u{20B9F}"],
      ["8d42", "\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],
      ["8da1", "\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],
      ["8e40", "\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],
      ["8ea1", "\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],
      ["8f40", "\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],
      ["8fa1", "\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],
      ["9040", "\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],
      ["90a1", "\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],
      ["9140", "\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],
      ["91a1", "\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],
      ["9240", "\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],
      ["92a1", "\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],
      ["9340", "\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],
      ["93a1", "\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],
      ["9440", "\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],
      ["94a1", "\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],
      ["9540", "\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],
      ["95a1", "\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],
      ["9640", "\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],
      ["96a1", "\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],
      ["9740", "\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],
      ["97a1", "\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],
      ["9840", "\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],
      ["98a1", "\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],
      ["9940", "\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],
      ["99a1", "\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],
      ["9a40", "\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],
      ["9aa1", "\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],
      ["9b40", "\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],
      ["9b62", "\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],
      ["9ba1", "\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],
      ["9c40", "\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],
      ["9ca1", "\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],
      ["9d40", "\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],
      ["9da1", "\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],
      ["9e40", "\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],
      ["9ea1", "\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],
      ["9ead", "\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],
      ["9ec5", "\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],
      ["9ef5", "\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],
      ["9f40", "\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],
      ["9f4f", "\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],
      ["9fa1", "\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],
      ["9fae", "\u9159\u9681\u915C"],
      ["9fb2", "\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],
      ["9fc1", "\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],
      ["9fc9", "\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],
      ["9fdb", "\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],
      ["9fe7", "\u6BFA\u8818\u7F78"],
      ["9feb", "\u5620\u{2A64A}\u8E77\u9F53"],
      ["9ff0", "\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],
      ["a040", "\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],
      ["a055", "\u{2183B}\u{26E05}"],
      ["a058", "\u8A7E\u{2251B}"],
      ["a05b", "\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],
      ["a063", "\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],
      ["a073", "\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],
      ["a0a1", "\u5D57\u{28BC2}\u8FDA\u{28E39}"],
      ["a0a6", "\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],
      ["a0ae", "\u77FE"],
      ["a0b0", "\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],
      ["a0d4", "\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],
      ["a0e2", "\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],
      ["a3c0", "\u2400", 31, "\u2421"],
      ["c6a1", "\u2460", 9, "\u2474", 9, "\u2170", 9, "\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041", 23],
      ["c740", "\u3059", 58, "\u30A1\u30A2\u30A3\u30A4"],
      ["c7a1", "\u30A5", 81, "\u0410", 5, "\u0401\u0416", 4],
      ["c840", "\u041B", 26, "\u0451\u0436", 25, "\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],
      ["c8a1", "\u9FB0\u5188\u9FB1\u{27607}"],
      ["c8cd", "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],
      ["c8f5", "\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],
      ["f9fe", "\uFFED"],
      ["fa40", "\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],
      ["faa1", "\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],
      ["fb40", "\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],
      ["fba1", "\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],
      ["fc40", "\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],
      ["fca1", "\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],
      ["fd40", "\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],
      ["fda1", "\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],
      ["fe40", "\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],
      ["fea1", "\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]
    ];
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/dbcs-data.js
var require_dbcs_data2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/dbcs-data.js"(exports, module) {
    "use strict";
    module.exports = {
      // == Japanese/ShiftJIS ====================================================
      // All japanese encodings are based on JIS X set of standards:
      // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.
      // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes. 
      //              Has several variations in 1978, 1983, 1990 and 1997.
      // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.
      // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.
      //              2 planes, first is superset of 0208, second - revised 0212.
      //              Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)
      // Byte encodings are:
      //  * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte
      //               encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.
      //               Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.
      //  * EUC-JP:    Up to 3 bytes per character. Used mostly on *nixes.
      //               0x00-0x7F       - lower part of 0201
      //               0x8E, 0xA1-0xDF - upper part of 0201
      //               (0xA1-0xFE)x2   - 0208 plane (94x94).
      //               0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).
      //  * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.
      //               Used as-is in ISO2022 family.
      //  * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII, 
      //                0201-1976 Roman, 0208-1978, 0208-1983.
      //  * ISO2022-JP-1: Adds esc seq for 0212-1990.
      //  * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.
      //  * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.
      //  * ISO2022-JP-2004: Adds 0213-2004 Plane 1.
      //
      // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.
      //
      // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html
      "shiftjis": {
        type: "_dbcs",
        table: function() {
          return require_shiftjis2();
        },
        encodeAdd: { "\xA5": 92, "\u203E": 126 },
        encodeSkipVals: [{ from: 60736, to: 63808 }]
      },
      "csshiftjis": "shiftjis",
      "mskanji": "shiftjis",
      "sjis": "shiftjis",
      "windows31j": "shiftjis",
      "ms31j": "shiftjis",
      "xsjis": "shiftjis",
      "windows932": "shiftjis",
      "ms932": "shiftjis",
      "932": "shiftjis",
      "cp932": "shiftjis",
      "eucjp": {
        type: "_dbcs",
        table: function() {
          return require_eucjp2();
        },
        encodeAdd: { "\xA5": 92, "\u203E": 126 }
      },
      // TODO: KDDI extension to Shift_JIS
      // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.
      // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.
      // == Chinese/GBK ==========================================================
      // http://en.wikipedia.org/wiki/GBK
      // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder
      // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936
      "gb2312": "cp936",
      "gb231280": "cp936",
      "gb23121980": "cp936",
      "csgb2312": "cp936",
      "csiso58gb231280": "cp936",
      "euccn": "cp936",
      // Microsoft's CP936 is a subset and approximation of GBK.
      "windows936": "cp936",
      "ms936": "cp936",
      "936": "cp936",
      "cp936": {
        type: "_dbcs",
        table: function() {
          return require_cp9362();
        }
      },
      // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.
      "gbk": {
        type: "_dbcs",
        table: function() {
          return require_cp9362().concat(require_gbk_added2());
        }
      },
      "xgbk": "gbk",
      "isoir58": "gbk",
      // GB18030 is an algorithmic extension of GBK.
      // Main source: https://www.w3.org/TR/encoding/#gbk-encoder
      // http://icu-project.org/docs/papers/gb18030.html
      // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml
      // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0
      "gb18030": {
        type: "_dbcs",
        table: function() {
          return require_cp9362().concat(require_gbk_added2());
        },
        gb18030: function() {
          return require_gb18030_ranges2();
        },
        encodeSkipVals: [128],
        encodeAdd: { "\u20AC": 41699 }
      },
      "chinese": "gb18030",
      // == Korean ===============================================================
      // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.
      "windows949": "cp949",
      "ms949": "cp949",
      "949": "cp949",
      "cp949": {
        type: "_dbcs",
        table: function() {
          return require_cp9492();
        }
      },
      "cseuckr": "cp949",
      "csksc56011987": "cp949",
      "euckr": "cp949",
      "isoir149": "cp949",
      "korean": "cp949",
      "ksc56011987": "cp949",
      "ksc56011989": "cp949",
      "ksc5601": "cp949",
      // == Big5/Taiwan/Hong Kong ================================================
      // There are lots of tables for Big5 and cp950. Please see the following links for history:
      // http://moztw.org/docs/big5/  http://www.haible.de/bruno/charsets/conversion-tables/Big5.html
      // Variations, in roughly number of defined chars:
      //  * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
      //  * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/
      //  * Big5-2003 (Taiwan standard) almost superset of cp950.
      //  * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.
      //  * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard. 
      //    many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.
      //    Plus, it has 4 combining sequences.
      //    Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299
      //    because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.
      //    Implementations are not consistent within browsers; sometimes labeled as just big5.
      //    MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.
      //    Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31
      //    In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.
      //    Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt
      //                   http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt
      // 
      // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder
      // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.
      "windows950": "cp950",
      "ms950": "cp950",
      "950": "cp950",
      "cp950": {
        type: "_dbcs",
        table: function() {
          return require_cp9502();
        }
      },
      // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.
      "big5": "big5hkscs",
      "big5hkscs": {
        type: "_dbcs",
        table: function() {
          return require_cp9502().concat(require_big5_added2());
        },
        encodeSkipVals: [
          // Although Encoding Standard says we should avoid encoding to HKSCS area (See Step 1 of
          // https://encoding.spec.whatwg.org/#index-big5-pointer), we still do it to increase compatibility with ICU.
          // But if a single unicode point can be encoded both as HKSCS and regular Big5, we prefer the latter.
          36457,
          36463,
          36478,
          36523,
          36532,
          36557,
          36560,
          36695,
          36713,
          36718,
          36811,
          36862,
          36973,
          36986,
          37060,
          37084,
          37105,
          37311,
          37551,
          37552,
          37553,
          37554,
          37585,
          37959,
          38090,
          38361,
          38652,
          39285,
          39798,
          39800,
          39803,
          39878,
          39902,
          39916,
          39926,
          40002,
          40019,
          40034,
          40040,
          40043,
          40055,
          40124,
          40125,
          40144,
          40279,
          40282,
          40388,
          40431,
          40443,
          40617,
          40687,
          40701,
          40800,
          40907,
          41079,
          41180,
          41183,
          36812,
          37576,
          38468,
          38637,
          // Step 2 of https://encoding.spec.whatwg.org/#index-big5-pointer: Use last pointer for U+2550, U+255E, U+2561, U+256A, U+5341, or U+5345
          41636,
          41637,
          41639,
          41638,
          41676,
          41678
        ]
      },
      "cnbig5": "big5hkscs",
      "csbig5": "big5hkscs",
      "xxbig5": "big5hkscs"
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/index.js
var require_encodings2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/index.js"(exports, module) {
    "use strict";
    var modules = [
      require_internal2(),
      require_utf322(),
      require_utf162(),
      require_utf72(),
      require_sbcs_codec2(),
      require_sbcs_data2(),
      require_sbcs_data_generated2(),
      require_dbcs_codec2(),
      require_dbcs_data2()
    ];
    for (i5 = 0; i5 < modules.length; i5++) {
      module = modules[i5];
      for (enc in module)
        if (Object.prototype.hasOwnProperty.call(module, enc))
          exports[enc] = module[enc];
    }
    var module;
    var enc;
    var i5;
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/lib/streams.js
var require_streams2 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/lib/streams.js"(exports, module) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    module.exports = function(stream_module) {
      var Transform = stream_module.Transform;
      function IconvLiteEncoderStream(conv, options) {
        this.conv = conv;
        options = options || {};
        options.decodeStrings = false;
        Transform.call(this, options);
      }
      IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {
        constructor: { value: IconvLiteEncoderStream }
      });
      IconvLiteEncoderStream.prototype._transform = function(chunk3, encoding, done) {
        if (typeof chunk3 != "string")
          return done(new Error("Iconv encoding stream needs strings as its input."));
        try {
          var res = this.conv.write(chunk3);
          if (res && res.length) this.push(res);
          done();
        } catch (e4) {
          done(e4);
        }
      };
      IconvLiteEncoderStream.prototype._flush = function(done) {
        try {
          var res = this.conv.end();
          if (res && res.length) this.push(res);
          done();
        } catch (e4) {
          done(e4);
        }
      };
      IconvLiteEncoderStream.prototype.collect = function(cb) {
        var chunks = [];
        this.on("error", cb);
        this.on("data", function(chunk3) {
          chunks.push(chunk3);
        });
        this.on("end", function() {
          cb(null, Buffer5.concat(chunks));
        });
        return this;
      };
      function IconvLiteDecoderStream(conv, options) {
        this.conv = conv;
        options = options || {};
        options.encoding = this.encoding = "utf8";
        Transform.call(this, options);
      }
      IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {
        constructor: { value: IconvLiteDecoderStream }
      });
      IconvLiteDecoderStream.prototype._transform = function(chunk3, encoding, done) {
        if (!Buffer5.isBuffer(chunk3) && !(chunk3 instanceof Uint8Array))
          return done(new Error("Iconv decoding stream needs buffers as its input."));
        try {
          var res = this.conv.write(chunk3);
          if (res && res.length) this.push(res, this.encoding);
          done();
        } catch (e4) {
          done(e4);
        }
      };
      IconvLiteDecoderStream.prototype._flush = function(done) {
        try {
          var res = this.conv.end();
          if (res && res.length) this.push(res, this.encoding);
          done();
        } catch (e4) {
          done(e4);
        }
      };
      IconvLiteDecoderStream.prototype.collect = function(cb) {
        var res = "";
        this.on("error", cb);
        this.on("data", function(chunk3) {
          res += chunk3;
        });
        this.on("end", function() {
          cb(null, res);
        });
        return this;
      };
      return {
        IconvLiteEncoderStream,
        IconvLiteDecoderStream
      };
    };
  }
});

// ../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/lib/index.js
var require_lib19 = __commonJS({
  "../../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/lib/index.js"(exports, module) {
    "use strict";
    var Buffer5 = require_safer().Buffer;
    var bomHandling = require_bom_handling2();
    var iconv = module.exports;
    iconv.encodings = null;
    iconv.defaultCharUnicode = "\uFFFD";
    iconv.defaultCharSingleByte = "?";
    iconv.encode = function encode3(str, encoding, options) {
      str = "" + (str || "");
      var encoder = iconv.getEncoder(encoding, options);
      var res = encoder.write(str);
      var trail = encoder.end();
      return trail && trail.length > 0 ? Buffer5.concat([res, trail]) : res;
    };
    iconv.decode = function decode2(buf, encoding, options) {
      if (typeof buf === "string") {
        if (!iconv.skipDecodeWarning) {
          console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding");
          iconv.skipDecodeWarning = true;
        }
        buf = Buffer5.from("" + (buf || ""), "binary");
      }
      var decoder2 = iconv.getDecoder(encoding, options);
      var res = decoder2.write(buf);
      var trail = decoder2.end();
      return trail ? res + trail : res;
    };
    iconv.encodingExists = function encodingExists(enc) {
      try {
        iconv.getCodec(enc);
        return true;
      } catch (e4) {
        return false;
      }
    };
    iconv.toEncoding = iconv.encode;
    iconv.fromEncoding = iconv.decode;
    iconv._codecDataCache = {};
    iconv.getCodec = function getCodec(encoding) {
      if (!iconv.encodings)
        iconv.encodings = require_encodings2();
      var enc = iconv._canonicalizeEncoding(encoding);
      var codecOptions = {};
      while (true) {
        var codec = iconv._codecDataCache[enc];
        if (codec)
          return codec;
        var codecDef = iconv.encodings[enc];
        switch (typeof codecDef) {
          case "string":
            enc = codecDef;
            break;
          case "object":
            for (var key in codecDef)
              codecOptions[key] = codecDef[key];
            if (!codecOptions.encodingName)
              codecOptions.encodingName = enc;
            enc = codecDef.type;
            break;
          case "function":
            if (!codecOptions.encodingName)
              codecOptions.encodingName = enc;
            codec = new codecDef(codecOptions, iconv);
            iconv._codecDataCache[codecOptions.encodingName] = codec;
            return codec;
          default:
            throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')");
        }
      }
    };
    iconv._canonicalizeEncoding = function(encoding) {
      return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
    };
    iconv.getEncoder = function getEncoder(encoding, options) {
      var codec = iconv.getCodec(encoding), encoder = new codec.encoder(options, codec);
      if (codec.bomAware && options && options.addBOM)
        encoder = new bomHandling.PrependBOM(encoder, options);
      return encoder;
    };
    iconv.getDecoder = function getDecoder(encoding, options) {
      var codec = iconv.getCodec(encoding), decoder2 = new codec.decoder(options, codec);
      if (codec.bomAware && !(options && options.stripBOM === false))
        decoder2 = new bomHandling.StripBOM(decoder2, options);
      return decoder2;
    };
    iconv.enableStreamingAPI = function enableStreamingAPI(stream_module2) {
      if (iconv.supportsStreams)
        return;
      var streams = require_streams2()(stream_module2);
      iconv.IconvLiteEncoderStream = streams.IconvLiteEncoderStream;
      iconv.IconvLiteDecoderStream = streams.IconvLiteDecoderStream;
      iconv.encodeStream = function encodeStream(encoding, options) {
        return new iconv.IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options);
      };
      iconv.decodeStream = function decodeStream(encoding, options) {
        return new iconv.IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options);
      };
      iconv.supportsStreams = true;
    };
    var stream_module;
    try {
      stream_module = __require("stream");
    } catch (e4) {
    }
    if (stream_module && stream_module.Transform) {
      iconv.enableStreamingAPI(stream_module);
    } else {
      iconv.encodeStream = iconv.decodeStream = function() {
        throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.");
      };
    }
    if (false) {
      console.error("iconv-lite warning: js files use non-utf8 encoding. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.");
    }
  }
});

// ../../node_modules/.pnpm/whatwg-encoding@3.1.1/node_modules/whatwg-encoding/lib/supported-names.json
var require_supported_names = __commonJS({
  "../../node_modules/.pnpm/whatwg-encoding@3.1.1/node_modules/whatwg-encoding/lib/supported-names.json"(exports, module) {
    module.exports = [
      "UTF-8",
      "IBM866",
      "ISO-8859-2",
      "ISO-8859-3",
      "ISO-8859-4",
      "ISO-8859-5",
      "ISO-8859-6",
      "ISO-8859-7",
      "ISO-8859-8",
      "ISO-8859-10",
      "ISO-8859-13",
      "ISO-8859-14",
      "ISO-8859-15",
      "ISO-8859-16",
      "KOI8-R",
      "KOI8-U",
      "macintosh",
      "windows-874",
      "windows-1250",
      "windows-1251",
      "windows-1252",
      "windows-1253",
      "windows-1254",
      "windows-1255",
      "windows-1256",
      "windows-1257",
      "windows-1258",
      "GBK",
      "gb18030",
      "Big5",
      "EUC-JP",
      "Shift_JIS",
      "EUC-KR",
      "UTF-16BE",
      "UTF-16LE",
      "x-user-defined"
    ];
  }
});

// ../../node_modules/.pnpm/whatwg-encoding@3.1.1/node_modules/whatwg-encoding/lib/labels-to-names.json
var require_labels_to_names = __commonJS({
  "../../node_modules/.pnpm/whatwg-encoding@3.1.1/node_modules/whatwg-encoding/lib/labels-to-names.json"(exports, module) {
    module.exports = {
      "866": "IBM866",
      "unicode-1-1-utf-8": "UTF-8",
      unicode11utf8: "UTF-8",
      unicode20utf8: "UTF-8",
      "utf-8": "UTF-8",
      utf8: "UTF-8",
      "x-unicode20utf8": "UTF-8",
      cp866: "IBM866",
      csibm866: "IBM866",
      ibm866: "IBM866",
      csisolatin2: "ISO-8859-2",
      "iso-8859-2": "ISO-8859-2",
      "iso-ir-101": "ISO-8859-2",
      "iso8859-2": "ISO-8859-2",
      iso88592: "ISO-8859-2",
      "iso_8859-2": "ISO-8859-2",
      "iso_8859-2:1987": "ISO-8859-2",
      l2: "ISO-8859-2",
      latin2: "ISO-8859-2",
      csisolatin3: "ISO-8859-3",
      "iso-8859-3": "ISO-8859-3",
      "iso-ir-109": "ISO-8859-3",
      "iso8859-3": "ISO-8859-3",
      iso88593: "ISO-8859-3",
      "iso_8859-3": "ISO-8859-3",
      "iso_8859-3:1988": "ISO-8859-3",
      l3: "ISO-8859-3",
      latin3: "ISO-8859-3",
      csisolatin4: "ISO-8859-4",
      "iso-8859-4": "ISO-8859-4",
      "iso-ir-110": "ISO-8859-4",
      "iso8859-4": "ISO-8859-4",
      iso88594: "ISO-8859-4",
      "iso_8859-4": "ISO-8859-4",
      "iso_8859-4:1988": "ISO-8859-4",
      l4: "ISO-8859-4",
      latin4: "ISO-8859-4",
      csisolatincyrillic: "ISO-8859-5",
      cyrillic: "ISO-8859-5",
      "iso-8859-5": "ISO-8859-5",
      "iso-ir-144": "ISO-8859-5",
      "iso8859-5": "ISO-8859-5",
      iso88595: "ISO-8859-5",
      "iso_8859-5": "ISO-8859-5",
      "iso_8859-5:1988": "ISO-8859-5",
      arabic: "ISO-8859-6",
      "asmo-708": "ISO-8859-6",
      csiso88596e: "ISO-8859-6",
      csiso88596i: "ISO-8859-6",
      csisolatinarabic: "ISO-8859-6",
      "ecma-114": "ISO-8859-6",
      "iso-8859-6": "ISO-8859-6",
      "iso-8859-6-e": "ISO-8859-6",
      "iso-8859-6-i": "ISO-8859-6",
      "iso-ir-127": "ISO-8859-6",
      "iso8859-6": "ISO-8859-6",
      iso88596: "ISO-8859-6",
      "iso_8859-6": "ISO-8859-6",
      "iso_8859-6:1987": "ISO-8859-6",
      csisolatingreek: "ISO-8859-7",
      "ecma-118": "ISO-8859-7",
      elot_928: "ISO-8859-7",
      greek: "ISO-8859-7",
      greek8: "ISO-8859-7",
      "iso-8859-7": "ISO-8859-7",
      "iso-ir-126": "ISO-8859-7",
      "iso8859-7": "ISO-8859-7",
      iso88597: "ISO-8859-7",
      "iso_8859-7": "ISO-8859-7",
      "iso_8859-7:1987": "ISO-8859-7",
      sun_eu_greek: "ISO-8859-7",
      csiso88598e: "ISO-8859-8",
      csisolatinhebrew: "ISO-8859-8",
      hebrew: "ISO-8859-8",
      "iso-8859-8": "ISO-8859-8",
      "iso-8859-8-e": "ISO-8859-8",
      "iso-ir-138": "ISO-8859-8",
      "iso8859-8": "ISO-8859-8",
      iso88598: "ISO-8859-8",
      "iso_8859-8": "ISO-8859-8",
      "iso_8859-8:1988": "ISO-8859-8",
      visual: "ISO-8859-8",
      csisolatin6: "ISO-8859-10",
      "iso-8859-10": "ISO-8859-10",
      "iso-ir-157": "ISO-8859-10",
      "iso8859-10": "ISO-8859-10",
      iso885910: "ISO-8859-10",
      l6: "ISO-8859-10",
      latin6: "ISO-8859-10",
      "iso-8859-13": "ISO-8859-13",
      "iso8859-13": "ISO-8859-13",
      iso885913: "ISO-8859-13",
      "iso-8859-14": "ISO-8859-14",
      "iso8859-14": "ISO-8859-14",
      iso885914: "ISO-8859-14",
      csisolatin9: "ISO-8859-15",
      "iso-8859-15": "ISO-8859-15",
      "iso8859-15": "ISO-8859-15",
      iso885915: "ISO-8859-15",
      "iso_8859-15": "ISO-8859-15",
      l9: "ISO-8859-15",
      "iso-8859-16": "ISO-8859-16",
      cskoi8r: "KOI8-R",
      koi: "KOI8-R",
      koi8: "KOI8-R",
      "koi8-r": "KOI8-R",
      koi8_r: "KOI8-R",
      "koi8-ru": "KOI8-U",
      "koi8-u": "KOI8-U",
      csmacintosh: "macintosh",
      mac: "macintosh",
      macintosh: "macintosh",
      "x-mac-roman": "macintosh",
      "dos-874": "windows-874",
      "iso-8859-11": "windows-874",
      "iso8859-11": "windows-874",
      iso885911: "windows-874",
      "tis-620": "windows-874",
      "windows-874": "windows-874",
      cp1250: "windows-1250",
      "windows-1250": "windows-1250",
      "x-cp1250": "windows-1250",
      cp1251: "windows-1251",
      "windows-1251": "windows-1251",
      "x-cp1251": "windows-1251",
      "ansi_x3.4-1968": "windows-1252",
      ascii: "windows-1252",
      cp1252: "windows-1252",
      cp819: "windows-1252",
      csisolatin1: "windows-1252",
      ibm819: "windows-1252",
      "iso-8859-1": "windows-1252",
      "iso-ir-100": "windows-1252",
      "iso8859-1": "windows-1252",
      iso88591: "windows-1252",
      "iso_8859-1": "windows-1252",
      "iso_8859-1:1987": "windows-1252",
      l1: "windows-1252",
      latin1: "windows-1252",
      "us-ascii": "windows-1252",
      "windows-1252": "windows-1252",
      "x-cp1252": "windows-1252",
      cp1253: "windows-1253",
      "windows-1253": "windows-1253",
      "x-cp1253": "windows-1253",
      cp1254: "windows-1254",
      csisolatin5: "windows-1254",
      "iso-8859-9": "windows-1254",
      "iso-ir-148": "windows-1254",
      "iso8859-9": "windows-1254",
      iso88599: "windows-1254",
      "iso_8859-9": "windows-1254",
      "iso_8859-9:1989": "windows-1254",
      l5: "windows-1254",
      latin5: "windows-1254",
      "windows-1254": "windows-1254",
      "x-cp1254": "windows-1254",
      cp1255: "windows-1255",
      "windows-1255": "windows-1255",
      "x-cp1255": "windows-1255",
      cp1256: "windows-1256",
      "windows-1256": "windows-1256",
      "x-cp1256": "windows-1256",
      cp1257: "windows-1257",
      "windows-1257": "windows-1257",
      "x-cp1257": "windows-1257",
      cp1258: "windows-1258",
      "windows-1258": "windows-1258",
      "x-cp1258": "windows-1258",
      chinese: "GBK",
      csgb2312: "GBK",
      csiso58gb231280: "GBK",
      gb2312: "GBK",
      gb_2312: "GBK",
      "gb_2312-80": "GBK",
      gbk: "GBK",
      "iso-ir-58": "GBK",
      "x-gbk": "GBK",
      gb18030: "gb18030",
      big5: "Big5",
      "big5-hkscs": "Big5",
      "cn-big5": "Big5",
      csbig5: "Big5",
      "x-x-big5": "Big5",
      cseucpkdfmtjapanese: "EUC-JP",
      "euc-jp": "EUC-JP",
      "x-euc-jp": "EUC-JP",
      csshiftjis: "Shift_JIS",
      ms932: "Shift_JIS",
      ms_kanji: "Shift_JIS",
      "shift-jis": "Shift_JIS",
      shift_jis: "Shift_JIS",
      sjis: "Shift_JIS",
      "windows-31j": "Shift_JIS",
      "x-sjis": "Shift_JIS",
      cseuckr: "EUC-KR",
      csksc56011987: "EUC-KR",
      "euc-kr": "EUC-KR",
      "iso-ir-149": "EUC-KR",
      korean: "EUC-KR",
      "ks_c_5601-1987": "EUC-KR",
      "ks_c_5601-1989": "EUC-KR",
      ksc5601: "EUC-KR",
      ksc_5601: "EUC-KR",
      "windows-949": "EUC-KR",
      unicodefffe: "UTF-16BE",
      "utf-16be": "UTF-16BE",
      csunicode: "UTF-16LE",
      "iso-10646-ucs-2": "UTF-16LE",
      "ucs-2": "UTF-16LE",
      unicode: "UTF-16LE",
      unicodefeff: "UTF-16LE",
      "utf-16": "UTF-16LE",
      "utf-16le": "UTF-16LE",
      "x-user-defined": "x-user-defined"
    };
  }
});

// ../../node_modules/.pnpm/whatwg-encoding@3.1.1/node_modules/whatwg-encoding/lib/whatwg-encoding.js
var require_whatwg_encoding = __commonJS({
  "../../node_modules/.pnpm/whatwg-encoding@3.1.1/node_modules/whatwg-encoding/lib/whatwg-encoding.js"(exports) {
    "use strict";
    var iconvLite = require_lib19();
    var supportedNames = require_supported_names();
    var labelsToNames = require_labels_to_names();
    var supportedNamesSet = new Set(supportedNames);
    exports.labelToName = (label) => {
      label = String(label).trim().toLowerCase();
      return labelsToNames[label] || null;
    };
    exports.decode = (uint8Array, fallbackEncodingName) => {
      let encoding = fallbackEncodingName;
      if (!exports.isSupported(encoding)) {
        throw new RangeError(`"${encoding}" is not a supported encoding name`);
      }
      const bomEncoding = exports.getBOMEncoding(uint8Array);
      if (bomEncoding !== null) {
        encoding = bomEncoding;
      }
      if (encoding === "x-user-defined") {
        let result = "";
        for (const byte of uint8Array) {
          if (byte <= 127) {
            result += String.fromCodePoint(byte);
          } else {
            result += String.fromCodePoint(63360 + byte - 128);
          }
        }
        return result;
      }
      return iconvLite.decode(uint8Array, encoding);
    };
    exports.getBOMEncoding = (uint8Array) => {
      if (uint8Array[0] === 254 && uint8Array[1] === 255) {
        return "UTF-16BE";
      } else if (uint8Array[0] === 255 && uint8Array[1] === 254) {
        return "UTF-16LE";
      } else if (uint8Array[0] === 239 && uint8Array[1] === 187 && uint8Array[2] === 191) {
        return "UTF-8";
      }
      return null;
    };
    exports.isSupported = (name) => {
      return supportedNamesSet.has(String(name));
    };
  }
});

// ../../node_modules/.pnpm/html-encoding-sniffer@4.0.0/node_modules/html-encoding-sniffer/lib/html-encoding-sniffer.js
var require_html_encoding_sniffer = __commonJS({
  "../../node_modules/.pnpm/html-encoding-sniffer@4.0.0/node_modules/html-encoding-sniffer/lib/html-encoding-sniffer.js"(exports, module) {
    "use strict";
    var whatwgEncoding = require_whatwg_encoding();
    module.exports = (uint8Array, { transportLayerEncodingLabel, defaultEncoding = "windows-1252" } = {}) => {
      let encoding = whatwgEncoding.getBOMEncoding(uint8Array);
      if (encoding === null && transportLayerEncodingLabel !== void 0) {
        encoding = whatwgEncoding.labelToName(transportLayerEncodingLabel);
      }
      if (encoding === null) {
        encoding = prescanMetaCharset(uint8Array);
      }
      if (encoding === null) {
        encoding = defaultEncoding;
      }
      return encoding;
    };
    function prescanMetaCharset(uint8Array) {
      const l4 = Math.min(uint8Array.byteLength, 1024);
      for (let i5 = 0; i5 < l4; i5++) {
        let c6 = uint8Array[i5];
        if (c6 === 60) {
          const c1 = uint8Array[i5 + 1];
          const c22 = uint8Array[i5 + 2];
          const c32 = uint8Array[i5 + 3];
          const c42 = uint8Array[i5 + 4];
          const c52 = uint8Array[i5 + 5];
          if (c1 === 33 && c22 === 45 && c32 === 45) {
            i5 += 4;
            for (; i5 < l4; i5++) {
              c6 = uint8Array[i5];
              const cMinus1 = uint8Array[i5 - 1];
              const cMinus2 = uint8Array[i5 - 2];
              if (c6 === 62 && cMinus1 === 45 && cMinus2 === 45) {
                break;
              }
            }
          } else if ((c1 === 77 || c1 === 109) && (c22 === 69 || c22 === 101) && (c32 === 84 || c32 === 116) && (c42 === 65 || c42 === 97) && (isSpaceCharacter(c52) || c52 === 47)) {
            i5 += 6;
            const attributeList = /* @__PURE__ */ new Set();
            let gotPragma = false;
            let needPragma = null;
            let charset = null;
            let attrRes;
            do {
              attrRes = getAttribute(uint8Array, i5, l4);
              if (attrRes.attr && !attributeList.has(attrRes.attr.name)) {
                attributeList.add(attrRes.attr.name);
                if (attrRes.attr.name === "http-equiv") {
                  gotPragma = attrRes.attr.value === "content-type";
                } else if (attrRes.attr.name === "content" && !charset) {
                  charset = extractCharacterEncodingFromMeta(attrRes.attr.value);
                  if (charset !== null) {
                    needPragma = true;
                  }
                } else if (attrRes.attr.name === "charset") {
                  charset = whatwgEncoding.labelToName(attrRes.attr.value);
                  needPragma = false;
                }
              }
              i5 = attrRes.i;
            } while (attrRes.attr);
            if (needPragma === null) {
              continue;
            }
            if (needPragma === true && gotPragma === false) {
              continue;
            }
            if (charset === null) {
              continue;
            }
            if (charset === "UTF-16LE" || charset === "UTF-16BE") {
              charset = "UTF-8";
            }
            if (charset === "x-user-defined") {
              charset = "windows-1252";
            }
            return charset;
          } else if (c1 >= 65 && c1 <= 90 || c1 >= 97 && c1 <= 122) {
            for (i5 += 2; i5 < l4; i5++) {
              c6 = uint8Array[i5];
              if (isSpaceCharacter(c6) || c6 === 62) {
                break;
              }
            }
            let attrRes;
            do {
              attrRes = getAttribute(uint8Array, i5, l4);
              i5 = attrRes.i;
            } while (attrRes.attr);
          } else if (c1 === 33 || c1 === 47 || c1 === 63) {
            for (i5 += 2; i5 < l4; i5++) {
              c6 = uint8Array[i5];
              if (c6 === 62) {
                break;
              }
            }
          }
        }
      }
      return null;
    }
    function getAttribute(uint8Array, i5, l4) {
      for (; i5 < l4; i5++) {
        let c6 = uint8Array[i5];
        if (isSpaceCharacter(c6) || c6 === 47) {
          continue;
        }
        if (c6 === 62) {
          break;
        }
        let name = "";
        let value2 = "";
        nameLoop: for (; i5 < l4; i5++) {
          c6 = uint8Array[i5];
          if (c6 === 61 && name !== "") {
            i5++;
            break;
          }
          if (isSpaceCharacter(c6)) {
            for (i5++; i5 < l4; i5++) {
              c6 = uint8Array[i5];
              if (isSpaceCharacter(c6)) {
                continue;
              }
              if (c6 !== 61) {
                return { attr: { name, value: value2 }, i: i5 };
              }
              i5++;
              break nameLoop;
            }
            break;
          }
          if (c6 === 47 || c6 === 62) {
            return { attr: { name, value: value2 }, i: i5 };
          }
          if (c6 >= 65 && c6 <= 90) {
            name += String.fromCharCode(c6 + 32);
          } else {
            name += String.fromCharCode(c6);
          }
        }
        c6 = uint8Array[i5];
        if (isSpaceCharacter(c6)) {
          for (i5++; i5 < l4; i5++) {
            c6 = uint8Array[i5];
            if (isSpaceCharacter(c6)) {
              continue;
            } else {
              break;
            }
          }
        }
        if (c6 === 34 || c6 === 39) {
          const quote = c6;
          for (i5++; i5 < l4; i5++) {
            c6 = uint8Array[i5];
            if (c6 === quote) {
              i5++;
              return { attr: { name, value: value2 }, i: i5 };
            }
            if (c6 >= 65 && c6 <= 90) {
              value2 += String.fromCharCode(c6 + 32);
            } else {
              value2 += String.fromCharCode(c6);
            }
          }
        }
        if (c6 === 62) {
          return { attr: { name, value: value2 }, i: i5 };
        }
        if (c6 >= 65 && c6 <= 90) {
          value2 += String.fromCharCode(c6 + 32);
        } else {
          value2 += String.fromCharCode(c6);
        }
        for (i5++; i5 < l4; i5++) {
          c6 = uint8Array[i5];
          if (isSpaceCharacter(c6) || c6 === 62) {
            return { attr: { name, value: value2 }, i: i5 };
          }
          if (c6 >= 65 && c6 <= 90) {
            value2 += String.fromCharCode(c6 + 32);
          } else {
            value2 += String.fromCharCode(c6);
          }
        }
      }
      return { i: i5 };
    }
    function extractCharacterEncodingFromMeta(string) {
      let position = 0;
      while (true) {
        const indexOfCharset = string.substring(position).search(/charset/ui);
        if (indexOfCharset === -1) {
          return null;
        }
        let subPosition = position + indexOfCharset + "charset".length;
        while (isSpaceCharacter(string[subPosition].charCodeAt(0))) {
          ++subPosition;
        }
        if (string[subPosition] !== "=") {
          position = subPosition - 1;
          continue;
        }
        ++subPosition;
        while (isSpaceCharacter(string[subPosition].charCodeAt(0))) {
          ++subPosition;
        }
        position = subPosition;
        break;
      }
      if (string[position] === '"' || string[position] === "'") {
        const nextIndex = string.indexOf(string[position], position + 1);
        if (nextIndex !== -1) {
          return whatwgEncoding.labelToName(string.substring(position + 1, nextIndex));
        }
        return null;
      }
      if (string.length === position + 1) {
        return null;
      }
      const indexOfASCIIWhitespaceOrSemicolon = string.substring(position + 1).search(/\x09|\x0A|\x0C|\x0D|\x20|;/u);
      const end2 = indexOfASCIIWhitespaceOrSemicolon === -1 ? string.length : position + indexOfASCIIWhitespaceOrSemicolon + 1;
      return whatwgEncoding.labelToName(string.substring(position, end2));
    }
    function isSpaceCharacter(c6) {
      return c6 === 9 || c6 === 10 || c6 === 12 || c6 === 13 || c6 === 32;
    }
  }
});

// ../../node_modules/.pnpm/webidl-conversions@7.0.0/node_modules/webidl-conversions/lib/index.js
var require_lib20 = __commonJS({
  "../../node_modules/.pnpm/webidl-conversions@7.0.0/node_modules/webidl-conversions/lib/index.js"(exports) {
    "use strict";
    function makeException(ErrorType, message, options) {
      if (options.globals) {
        ErrorType = options.globals[ErrorType.name];
      }
      return new ErrorType(`${options.context ? options.context : "Value"} ${message}.`);
    }
    function toNumber(value2, options) {
      if (typeof value2 === "bigint") {
        throw makeException(TypeError, "is a BigInt which cannot be converted to a number", options);
      }
      if (!options.globals) {
        return Number(value2);
      }
      return options.globals.Number(value2);
    }
    function evenRound(x) {
      if (x > 0 && x % 1 === 0.5 && (x & 1) === 0 || x < 0 && x % 1 === -0.5 && (x & 1) === 1) {
        return censorNegativeZero(Math.floor(x));
      }
      return censorNegativeZero(Math.round(x));
    }
    function integerPart(n6) {
      return censorNegativeZero(Math.trunc(n6));
    }
    function sign(x) {
      return x < 0 ? -1 : 1;
    }
    function modulo(x, y3) {
      const signMightNotMatch = x % y3;
      if (sign(y3) !== sign(signMightNotMatch)) {
        return signMightNotMatch + y3;
      }
      return signMightNotMatch;
    }
    function censorNegativeZero(x) {
      return x === 0 ? 0 : x;
    }
    function createIntegerConversion(bitLength, { unsigned }) {
      let lowerBound, upperBound;
      if (unsigned) {
        lowerBound = 0;
        upperBound = 2 ** bitLength - 1;
      } else {
        lowerBound = -(2 ** (bitLength - 1));
        upperBound = 2 ** (bitLength - 1) - 1;
      }
      const twoToTheBitLength = 2 ** bitLength;
      const twoToOneLessThanTheBitLength = 2 ** (bitLength - 1);
      return (value2, options = {}) => {
        let x = toNumber(value2, options);
        x = censorNegativeZero(x);
        if (options.enforceRange) {
          if (!Number.isFinite(x)) {
            throw makeException(TypeError, "is not a finite number", options);
          }
          x = integerPart(x);
          if (x < lowerBound || x > upperBound) {
            throw makeException(
              TypeError,
              `is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`,
              options
            );
          }
          return x;
        }
        if (!Number.isNaN(x) && options.clamp) {
          x = Math.min(Math.max(x, lowerBound), upperBound);
          x = evenRound(x);
          return x;
        }
        if (!Number.isFinite(x) || x === 0) {
          return 0;
        }
        x = integerPart(x);
        if (x >= lowerBound && x <= upperBound) {
          return x;
        }
        x = modulo(x, twoToTheBitLength);
        if (!unsigned && x >= twoToOneLessThanTheBitLength) {
          return x - twoToTheBitLength;
        }
        return x;
      };
    }
    function createLongLongConversion(bitLength, { unsigned }) {
      const upperBound = Number.MAX_SAFE_INTEGER;
      const lowerBound = unsigned ? 0 : Number.MIN_SAFE_INTEGER;
      const asBigIntN = unsigned ? BigInt.asUintN : BigInt.asIntN;
      return (value2, options = {}) => {
        let x = toNumber(value2, options);
        x = censorNegativeZero(x);
        if (options.enforceRange) {
          if (!Number.isFinite(x)) {
            throw makeException(TypeError, "is not a finite number", options);
          }
          x = integerPart(x);
          if (x < lowerBound || x > upperBound) {
            throw makeException(
              TypeError,
              `is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`,
              options
            );
          }
          return x;
        }
        if (!Number.isNaN(x) && options.clamp) {
          x = Math.min(Math.max(x, lowerBound), upperBound);
          x = evenRound(x);
          return x;
        }
        if (!Number.isFinite(x) || x === 0) {
          return 0;
        }
        let xBigInt = BigInt(integerPart(x));
        xBigInt = asBigIntN(bitLength, xBigInt);
        return Number(xBigInt);
      };
    }
    exports.any = (value2) => {
      return value2;
    };
    exports.undefined = () => {
      return void 0;
    };
    exports.boolean = (value2) => {
      return Boolean(value2);
    };
    exports.byte = createIntegerConversion(8, { unsigned: false });
    exports.octet = createIntegerConversion(8, { unsigned: true });
    exports.short = createIntegerConversion(16, { unsigned: false });
    exports["unsigned short"] = createIntegerConversion(16, { unsigned: true });
    exports.long = createIntegerConversion(32, { unsigned: false });
    exports["unsigned long"] = createIntegerConversion(32, { unsigned: true });
    exports["long long"] = createLongLongConversion(64, { unsigned: false });
    exports["unsigned long long"] = createLongLongConversion(64, { unsigned: true });
    exports.double = (value2, options = {}) => {
      const x = toNumber(value2, options);
      if (!Number.isFinite(x)) {
        throw makeException(TypeError, "is not a finite floating-point value", options);
      }
      return x;
    };
    exports["unrestricted double"] = (value2, options = {}) => {
      const x = toNumber(value2, options);
      return x;
    };
    exports.float = (value2, options = {}) => {
      const x = toNumber(value2, options);
      if (!Number.isFinite(x)) {
        throw makeException(TypeError, "is not a finite floating-point value", options);
      }
      if (Object.is(x, -0)) {
        return x;
      }
      const y3 = Math.fround(x);
      if (!Number.isFinite(y3)) {
        throw makeException(TypeError, "is outside the range of a single-precision floating-point value", options);
      }
      return y3;
    };
    exports["unrestricted float"] = (value2, options = {}) => {
      const x = toNumber(value2, options);
      if (isNaN(x)) {
        return x;
      }
      if (Object.is(x, -0)) {
        return x;
      }
      return Math.fround(x);
    };
    exports.DOMString = (value2, options = {}) => {
      if (options.treatNullAsEmptyString && value2 === null) {
        return "";
      }
      if (typeof value2 === "symbol") {
        throw makeException(TypeError, "is a symbol, which cannot be converted to a string", options);
      }
      const StringCtor = options.globals ? options.globals.String : String;
      return StringCtor(value2);
    };
    exports.ByteString = (value2, options = {}) => {
      const x = exports.DOMString(value2, options);
      let c6;
      for (let i5 = 0; (c6 = x.codePointAt(i5)) !== void 0; ++i5) {
        if (c6 > 255) {
          throw makeException(TypeError, "is not a valid ByteString", options);
        }
      }
      return x;
    };
    exports.USVString = (value2, options = {}) => {
      const S3 = exports.DOMString(value2, options);
      const n6 = S3.length;
      const U = [];
      for (let i5 = 0; i5 < n6; ++i5) {
        const c6 = S3.charCodeAt(i5);
        if (c6 < 55296 || c6 > 57343) {
          U.push(String.fromCodePoint(c6));
        } else if (56320 <= c6 && c6 <= 57343) {
          U.push(String.fromCodePoint(65533));
        } else if (i5 === n6 - 1) {
          U.push(String.fromCodePoint(65533));
        } else {
          const d3 = S3.charCodeAt(i5 + 1);
          if (56320 <= d3 && d3 <= 57343) {
            const a5 = c6 & 1023;
            const b3 = d3 & 1023;
            U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a5 + b3));
            ++i5;
          } else {
            U.push(String.fromCodePoint(65533));
          }
        }
      }
      return U.join("");
    };
    exports.object = (value2, options = {}) => {
      if (value2 === null || typeof value2 !== "object" && typeof value2 !== "function") {
        throw makeException(TypeError, "is not an object", options);
      }
      return value2;
    };
    var abByteLengthGetter = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, "byteLength").get;
    var sabByteLengthGetter = typeof SharedArrayBuffer === "function" ? Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, "byteLength").get : null;
    function isNonSharedArrayBuffer(value2) {
      try {
        abByteLengthGetter.call(value2);
        return true;
      } catch {
        return false;
      }
    }
    function isSharedArrayBuffer2(value2) {
      try {
        sabByteLengthGetter.call(value2);
        return true;
      } catch {
        return false;
      }
    }
    function isArrayBufferDetached(value2) {
      try {
        new Uint8Array(value2);
        return false;
      } catch {
        return true;
      }
    }
    exports.ArrayBuffer = (value2, options = {}) => {
      if (!isNonSharedArrayBuffer(value2)) {
        if (options.allowShared && !isSharedArrayBuffer2(value2)) {
          throw makeException(TypeError, "is not an ArrayBuffer or SharedArrayBuffer", options);
        }
        throw makeException(TypeError, "is not an ArrayBuffer", options);
      }
      if (isArrayBufferDetached(value2)) {
        throw makeException(TypeError, "is a detached ArrayBuffer", options);
      }
      return value2;
    };
    var dvByteLengthGetter = Object.getOwnPropertyDescriptor(DataView.prototype, "byteLength").get;
    exports.DataView = (value2, options = {}) => {
      try {
        dvByteLengthGetter.call(value2);
      } catch (e4) {
        throw makeException(TypeError, "is not a DataView", options);
      }
      if (!options.allowShared && isSharedArrayBuffer2(value2.buffer)) {
        throw makeException(TypeError, "is backed by a SharedArrayBuffer, which is not allowed", options);
      }
      if (isArrayBufferDetached(value2.buffer)) {
        throw makeException(TypeError, "is backed by a detached ArrayBuffer", options);
      }
      return value2;
    };
    var typedArrayNameGetter = Object.getOwnPropertyDescriptor(
      Object.getPrototypeOf(Uint8Array).prototype,
      Symbol.toStringTag
    ).get;
    [
      Int8Array,
      Int16Array,
      Int32Array,
      Uint8Array,
      Uint16Array,
      Uint32Array,
      Uint8ClampedArray,
      Float32Array,
      Float64Array
    ].forEach((func) => {
      const { name } = func;
      const article = /^[AEIOU]/u.test(name) ? "an" : "a";
      exports[name] = (value2, options = {}) => {
        if (!ArrayBuffer.isView(value2) || typedArrayNameGetter.call(value2) !== name) {
          throw makeException(TypeError, `is not ${article} ${name} object`, options);
        }
        if (!options.allowShared && isSharedArrayBuffer2(value2.buffer)) {
          throw makeException(TypeError, "is a view on a SharedArrayBuffer, which is not allowed", options);
        }
        if (isArrayBufferDetached(value2.buffer)) {
          throw makeException(TypeError, "is a view on a detached ArrayBuffer", options);
        }
        return value2;
      };
    });
    exports.ArrayBufferView = (value2, options = {}) => {
      if (!ArrayBuffer.isView(value2)) {
        throw makeException(TypeError, "is not a view on an ArrayBuffer or SharedArrayBuffer", options);
      }
      if (!options.allowShared && isSharedArrayBuffer2(value2.buffer)) {
        throw makeException(TypeError, "is a view on a SharedArrayBuffer, which is not allowed", options);
      }
      if (isArrayBufferDetached(value2.buffer)) {
        throw makeException(TypeError, "is a view on a detached ArrayBuffer", options);
      }
      return value2;
    };
    exports.BufferSource = (value2, options = {}) => {
      if (ArrayBuffer.isView(value2)) {
        if (!options.allowShared && isSharedArrayBuffer2(value2.buffer)) {
          throw makeException(TypeError, "is a view on a SharedArrayBuffer, which is not allowed", options);
        }
        if (isArrayBufferDetached(value2.buffer)) {
          throw makeException(TypeError, "is a view on a detached ArrayBuffer", options);
        }
        return value2;
      }
      if (!options.allowShared && !isNonSharedArrayBuffer(value2)) {
        throw makeException(TypeError, "is not an ArrayBuffer or a view on one", options);
      }
      if (options.allowShared && !isSharedArrayBuffer2(value2) && !isNonSharedArrayBuffer(value2)) {
        throw makeException(TypeError, "is not an ArrayBuffer, SharedArrayBuffer, or a view on one", options);
      }
      if (isArrayBufferDetached(value2)) {
        throw makeException(TypeError, "is a detached ArrayBuffer", options);
      }
      return value2;
    };
    exports.DOMTimeStamp = exports["unsigned long long"];
  }
});

// ../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/utils.js
var require_utils15 = __commonJS({
  "../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/utils.js"(exports, module) {
    "use strict";
    function isObject4(value2) {
      return typeof value2 === "object" && value2 !== null || typeof value2 === "function";
    }
    var hasOwn = Function.prototype.call.bind(Object.prototype.hasOwnProperty);
    function define2(target, source) {
      for (const key of Reflect.ownKeys(source)) {
        const descriptor = Reflect.getOwnPropertyDescriptor(source, key);
        if (descriptor && !Reflect.defineProperty(target, key, descriptor)) {
          throw new TypeError(`Cannot redefine property: ${String(key)}`);
        }
      }
    }
    function newObjectInRealm(globalObject, object) {
      const ctorRegistry = initCtorRegistry(globalObject);
      return Object.defineProperties(
        Object.create(ctorRegistry["%Object.prototype%"]),
        Object.getOwnPropertyDescriptors(object)
      );
    }
    var wrapperSymbol = Symbol("wrapper");
    var implSymbol = Symbol("impl");
    var sameObjectCaches = Symbol("SameObject caches");
    var ctorRegistrySymbol = Symbol.for("[webidl2js] constructor registry");
    var AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () {
    }).prototype);
    function initCtorRegistry(globalObject) {
      if (hasOwn(globalObject, ctorRegistrySymbol)) {
        return globalObject[ctorRegistrySymbol];
      }
      const ctorRegistry = /* @__PURE__ */ Object.create(null);
      ctorRegistry["%Object.prototype%"] = globalObject.Object.prototype;
      ctorRegistry["%IteratorPrototype%"] = Object.getPrototypeOf(
        Object.getPrototypeOf(new globalObject.Array()[Symbol.iterator]())
      );
      try {
        ctorRegistry["%AsyncIteratorPrototype%"] = Object.getPrototypeOf(
          Object.getPrototypeOf(
            globalObject.eval("(async function* () {})").prototype
          )
        );
      } catch {
        ctorRegistry["%AsyncIteratorPrototype%"] = AsyncIteratorPrototype;
      }
      globalObject[ctorRegistrySymbol] = ctorRegistry;
      return ctorRegistry;
    }
    function getSameObject(wrapper, prop, creator) {
      if (!wrapper[sameObjectCaches]) {
        wrapper[sameObjectCaches] = /* @__PURE__ */ Object.create(null);
      }
      if (prop in wrapper[sameObjectCaches]) {
        return wrapper[sameObjectCaches][prop];
      }
      wrapper[sameObjectCaches][prop] = creator();
      return wrapper[sameObjectCaches][prop];
    }
    function wrapperForImpl(impl) {
      return impl ? impl[wrapperSymbol] : null;
    }
    function implForWrapper(wrapper) {
      return wrapper ? wrapper[implSymbol] : null;
    }
    function tryWrapperForImpl(impl) {
      const wrapper = wrapperForImpl(impl);
      return wrapper ? wrapper : impl;
    }
    function tryImplForWrapper(wrapper) {
      const impl = implForWrapper(wrapper);
      return impl ? impl : wrapper;
    }
    var iterInternalSymbol = Symbol("internal");
    function isArrayIndexPropName(P) {
      if (typeof P !== "string") {
        return false;
      }
      const i5 = P >>> 0;
      if (i5 === 2 ** 32 - 1) {
        return false;
      }
      const s4 = `${i5}`;
      if (P !== s4) {
        return false;
      }
      return true;
    }
    var byteLengthGetter = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, "byteLength").get;
    function isArrayBuffer3(value2) {
      try {
        byteLengthGetter.call(value2);
        return true;
      } catch (e4) {
        return false;
      }
    }
    function iteratorResult([key, value2], kind) {
      let result;
      switch (kind) {
        case "key":
          result = key;
          break;
        case "value":
          result = value2;
          break;
        case "key+value":
          result = [key, value2];
          break;
      }
      return { value: result, done: false };
    }
    var supportsPropertyIndex = Symbol("supports property index");
    var supportedPropertyIndices = Symbol("supported property indices");
    var supportsPropertyName = Symbol("supports property name");
    var supportedPropertyNames = Symbol("supported property names");
    var indexedGet = Symbol("indexed property get");
    var indexedSetNew = Symbol("indexed property set new");
    var indexedSetExisting = Symbol("indexed property set existing");
    var namedGet = Symbol("named property get");
    var namedSetNew = Symbol("named property set new");
    var namedSetExisting = Symbol("named property set existing");
    var namedDelete = Symbol("named property delete");
    var asyncIteratorNext = Symbol("async iterator get the next iteration result");
    var asyncIteratorReturn = Symbol("async iterator return steps");
    var asyncIteratorInit = Symbol("async iterator initialization steps");
    var asyncIteratorEOI = Symbol("async iterator end of iteration");
    module.exports = exports = {
      isObject: isObject4,
      hasOwn,
      define: define2,
      newObjectInRealm,
      wrapperSymbol,
      implSymbol,
      getSameObject,
      ctorRegistrySymbol,
      initCtorRegistry,
      wrapperForImpl,
      implForWrapper,
      tryWrapperForImpl,
      tryImplForWrapper,
      iterInternalSymbol,
      isArrayBuffer: isArrayBuffer3,
      isArrayIndexPropName,
      supportsPropertyIndex,
      supportedPropertyIndices,
      supportsPropertyName,
      supportedPropertyNames,
      indexedGet,
      indexedSetNew,
      indexedSetExisting,
      namedGet,
      namedSetNew,
      namedSetExisting,
      namedDelete,
      asyncIteratorNext,
      asyncIteratorReturn,
      asyncIteratorInit,
      asyncIteratorEOI,
      iteratorResult
    };
  }
});

// ../../node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/punycode.js
var require_punycode = __commonJS({
  "../../node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/punycode.js"(exports, module) {
    "use strict";
    var maxInt = 2147483647;
    var base = 36;
    var tMin = 1;
    var tMax = 26;
    var skew = 38;
    var damp = 700;
    var initialBias = 72;
    var initialN = 128;
    var delimiter = "-";
    var regexPunycode = /^xn--/;
    var regexNonASCII = /[^\0-\x7F]/;
    var regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g;
    var errors = {
      "overflow": "Overflow: input needs wider integers to process",
      "not-basic": "Illegal input >= 0x80 (not a basic code point)",
      "invalid-input": "Invalid input"
    };
    var baseMinusTMin = base - tMin;
    var floor = Math.floor;
    var stringFromCharCode = String.fromCharCode;
    function error(type) {
      throw new RangeError(errors[type]);
    }
    function map(array, callback) {
      const result = [];
      let length2 = array.length;
      while (length2--) {
        result[length2] = callback(array[length2]);
      }
      return result;
    }
    function mapDomain(domain, callback) {
      const parts = domain.split("@");
      let result = "";
      if (parts.length > 1) {
        result = parts[0] + "@";
        domain = parts[1];
      }
      domain = domain.replace(regexSeparators, ".");
      const labels = domain.split(".");
      const encoded = map(labels, callback).join(".");
      return result + encoded;
    }
    function ucs2decode(string) {
      const output = [];
      let counter = 0;
      const length2 = string.length;
      while (counter < length2) {
        const value2 = string.charCodeAt(counter++);
        if (value2 >= 55296 && value2 <= 56319 && counter < length2) {
          const extra = string.charCodeAt(counter++);
          if ((extra & 64512) == 56320) {
            output.push(((value2 & 1023) << 10) + (extra & 1023) + 65536);
          } else {
            output.push(value2);
            counter--;
          }
        } else {
          output.push(value2);
        }
      }
      return output;
    }
    var ucs2encode = (codePoints) => String.fromCodePoint(...codePoints);
    var basicToDigit = function(codePoint) {
      if (codePoint >= 48 && codePoint < 58) {
        return 26 + (codePoint - 48);
      }
      if (codePoint >= 65 && codePoint < 91) {
        return codePoint - 65;
      }
      if (codePoint >= 97 && codePoint < 123) {
        return codePoint - 97;
      }
      return base;
    };
    var digitToBasic = function(digit, flag) {
      return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
    };
    var adapt = function(delta, numPoints, firstTime) {
      let k3 = 0;
      delta = firstTime ? floor(delta / damp) : delta >> 1;
      delta += floor(delta / numPoints);
      for (; delta > baseMinusTMin * tMax >> 1; k3 += base) {
        delta = floor(delta / baseMinusTMin);
      }
      return floor(k3 + (baseMinusTMin + 1) * delta / (delta + skew));
    };
    var decode2 = function(input) {
      const output = [];
      const inputLength = input.length;
      let i5 = 0;
      let n6 = initialN;
      let bias = initialBias;
      let basic = input.lastIndexOf(delimiter);
      if (basic < 0) {
        basic = 0;
      }
      for (let j = 0; j < basic; ++j) {
        if (input.charCodeAt(j) >= 128) {
          error("not-basic");
        }
        output.push(input.charCodeAt(j));
      }
      for (let index2 = basic > 0 ? basic + 1 : 0; index2 < inputLength; ) {
        const oldi = i5;
        for (let w = 1, k3 = base; ; k3 += base) {
          if (index2 >= inputLength) {
            error("invalid-input");
          }
          const digit = basicToDigit(input.charCodeAt(index2++));
          if (digit >= base) {
            error("invalid-input");
          }
          if (digit > floor((maxInt - i5) / w)) {
            error("overflow");
          }
          i5 += digit * w;
          const t4 = k3 <= bias ? tMin : k3 >= bias + tMax ? tMax : k3 - bias;
          if (digit < t4) {
            break;
          }
          const baseMinusT = base - t4;
          if (w > floor(maxInt / baseMinusT)) {
            error("overflow");
          }
          w *= baseMinusT;
        }
        const out = output.length + 1;
        bias = adapt(i5 - oldi, out, oldi == 0);
        if (floor(i5 / out) > maxInt - n6) {
          error("overflow");
        }
        n6 += floor(i5 / out);
        i5 %= out;
        output.splice(i5++, 0, n6);
      }
      return String.fromCodePoint(...output);
    };
    var encode3 = function(input) {
      const output = [];
      input = ucs2decode(input);
      const inputLength = input.length;
      let n6 = initialN;
      let delta = 0;
      let bias = initialBias;
      for (const currentValue of input) {
        if (currentValue < 128) {
          output.push(stringFromCharCode(currentValue));
        }
      }
      const basicLength = output.length;
      let handledCPCount = basicLength;
      if (basicLength) {
        output.push(delimiter);
      }
      while (handledCPCount < inputLength) {
        let m3 = maxInt;
        for (const currentValue of input) {
          if (currentValue >= n6 && currentValue < m3) {
            m3 = currentValue;
          }
        }
        const handledCPCountPlusOne = handledCPCount + 1;
        if (m3 - n6 > floor((maxInt - delta) / handledCPCountPlusOne)) {
          error("overflow");
        }
        delta += (m3 - n6) * handledCPCountPlusOne;
        n6 = m3;
        for (const currentValue of input) {
          if (currentValue < n6 && ++delta > maxInt) {
            error("overflow");
          }
          if (currentValue === n6) {
            let q = delta;
            for (let k3 = base; ; k3 += base) {
              const t4 = k3 <= bias ? tMin : k3 >= bias + tMax ? tMax : k3 - bias;
              if (q < t4) {
                break;
              }
              const qMinusT = q - t4;
              const baseMinusT = base - t4;
              output.push(
                stringFromCharCode(digitToBasic(t4 + qMinusT % baseMinusT, 0))
              );
              q = floor(qMinusT / baseMinusT);
            }
            output.push(stringFromCharCode(digitToBasic(q, 0)));
            bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);
            delta = 0;
            ++handledCPCount;
          }
        }
        ++delta;
        ++n6;
      }
      return output.join("");
    };
    var toUnicode = function(input) {
      return mapDomain(input, function(string) {
        return regexPunycode.test(string) ? decode2(string.slice(4).toLowerCase()) : string;
      });
    };
    var toASCII = function(input) {
      return mapDomain(input, function(string) {
        return regexNonASCII.test(string) ? "xn--" + encode3(string) : string;
      });
    };
    var punycode = {
      /**
       * A string representing the current Punycode.js version number.
       * @memberOf punycode
       * @type String
       */
      "version": "2.3.1",
      /**
       * An object of methods to convert from JavaScript's internal character
       * representation (UCS-2) to Unicode code points, and back.
       * @see <https://mathiasbynens.be/notes/javascript-encoding>
       * @memberOf punycode
       * @type Object
       */
      "ucs2": {
        "decode": ucs2decode,
        "encode": ucs2encode
      },
      "decode": decode2,
      "encode": encode3,
      "toASCII": toASCII,
      "toUnicode": toUnicode
    };
    module.exports = punycode;
  }
});

// ../../node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/regexes.js
var require_regexes = __commonJS({
  "../../node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/regexes.js"(exports, module) {
    "use strict";
    var combiningMarks = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10D24}-\u{10D27}\u{10D69}-\u{10D6D}\u{10EAB}\u{10EAC}\u{10EFC}-\u{10EFF}\u{10F46}-\u{10F50}\u{10F82}-\u{10F85}\u{11000}-\u{11002}\u{11038}-\u{11046}\u{11070}\u{11073}\u{11074}\u{1107F}-\u{11082}\u{110B0}-\u{110BA}\u{110C2}\u{11100}-\u{11102}\u{11127}-\u{11134}\u{11145}\u{11146}\u{11173}\u{11180}-\u{11182}\u{111B3}-\u{111C0}\u{111C9}-\u{111CC}\u{111CE}\u{111CF}\u{1122C}-\u{11237}\u{1123E}\u{11241}\u{112DF}-\u{112EA}\u{11300}-\u{11303}\u{1133B}\u{1133C}\u{1133E}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11357}\u{11362}\u{11363}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{113B8}-\u{113C0}\u{113C2}\u{113C5}\u{113C7}-\u{113CA}\u{113CC}-\u{113D0}\u{113D2}\u{113E1}\u{113E2}\u{11435}-\u{11446}\u{1145E}\u{114B0}-\u{114C3}\u{115AF}-\u{115B5}\u{115B8}-\u{115C0}\u{115DC}\u{115DD}\u{11630}-\u{11640}\u{116AB}-\u{116B7}\u{1171D}-\u{1172B}\u{1182C}-\u{1183A}\u{11930}-\u{11935}\u{11937}\u{11938}\u{1193B}-\u{1193E}\u{11940}\u{11942}\u{11943}\u{119D1}-\u{119D7}\u{119DA}-\u{119E0}\u{119E4}\u{11A01}-\u{11A0A}\u{11A33}-\u{11A39}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A5B}\u{11A8A}-\u{11A99}\u{11C2F}-\u{11C36}\u{11C38}-\u{11C3F}\u{11C92}-\u{11CA7}\u{11CA9}-\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{11D8A}-\u{11D8E}\u{11D90}\u{11D91}\u{11D93}-\u{11D97}\u{11EF3}-\u{11EF6}\u{11F00}\u{11F01}\u{11F03}\u{11F34}-\u{11F3A}\u{11F3E}-\u{11F42}\u{11F5A}\u{13440}\u{13447}-\u{13455}\u{1611E}-\u{1612F}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F4F}\u{16F51}-\u{16F87}\u{16F8F}-\u{16F92}\u{16FE4}\u{16FF0}\u{16FF1}\u{1BC9D}\u{1BC9E}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1D165}-\u{1D169}\u{1D16D}-\u{1D172}\u{1D17B}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E08F}\u{1E130}-\u{1E136}\u{1E2AE}\u{1E2EC}-\u{1E2EF}\u{1E4EC}-\u{1E4EF}\u{1E5EE}\u{1E5EF}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0100}-\u{E01EF}]/u;
    var combiningClassVirama = /[\u094D\u09CD\u0A4D\u0ACD\u0B4D\u0BCD\u0C4D\u0CCD\u0D3B\u0D3C\u0D4D\u0DCA\u0E3A\u0EBA\u0F84\u1039\u103A\u1714\u1715\u1734\u17D2\u1A60\u1B44\u1BAA\u1BAB\u1BF2\u1BF3\u2D7F\uA806\uA82C\uA8C4\uA953\uA9C0\uAAF6\uABED\u{10A3F}\u{11046}\u{11070}\u{1107F}\u{110B9}\u{11133}\u{11134}\u{111C0}\u{11235}\u{112EA}\u{1134D}\u{113CE}-\u{113D0}\u{11442}\u{114C2}\u{115BF}\u{1163F}\u{116B6}\u{1172B}\u{11839}\u{1193D}\u{1193E}\u{119E0}\u{11A34}\u{11A47}\u{11A99}\u{11C3F}\u{11D44}\u{11D45}\u{11D97}\u{11F41}\u{11F42}\u{1612F}]/u;
    var validZWNJ = /[\u0620\u0626\u0628\u062A-\u062E\u0633-\u063F\u0641-\u0647\u0649\u064A\u066E\u066F\u0678-\u0687\u069A-\u06BF\u06C1\u06C2\u06CC\u06CE\u06D0\u06D1\u06FA-\u06FC\u06FF\u0712-\u0714\u071A-\u071D\u071F-\u0727\u0729\u072B\u072D\u072E\u074E-\u0758\u075C-\u076A\u076D-\u0770\u0772\u0775-\u0777\u077A-\u077F\u07CA-\u07EA\u0841-\u0845\u0848\u084A-\u0853\u0855\u0860\u0862-\u0865\u0868\u0886\u0889-\u088D\u08A0-\u08A9\u08AF\u08B0\u08B3-\u08B8\u08BA-\u08C8\u1807\u1820-\u1878\u1887-\u18A8\u18AA\uA840-\uA872\u{10AC0}-\u{10AC4}\u{10ACD}\u{10AD3}-\u{10ADC}\u{10ADE}-\u{10AE0}\u{10AEB}-\u{10AEE}\u{10B80}\u{10B82}\u{10B86}-\u{10B88}\u{10B8A}\u{10B8B}\u{10B8D}\u{10B90}\u{10BAD}\u{10BAE}\u{10D00}-\u{10D21}\u{10D23}\u{10EC3}\u{10EC4}\u{10F30}-\u{10F32}\u{10F34}-\u{10F44}\u{10F51}-\u{10F53}\u{10F70}-\u{10F73}\u{10F76}-\u{10F81}\u{10FB0}\u{10FB2}\u{10FB3}\u{10FB8}\u{10FBB}\u{10FBC}\u{10FBE}\u{10FBF}\u{10FC1}\u{10FC4}\u{10FCA}\u{10FCB}\u{1E900}-\u{1E943}][\xAD\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u061C\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u070F\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200B\u200E\u200F\u202A-\u202E\u2060-\u2064\u206A-\u206F\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFEFF\uFFF9-\uFFFB\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10D24}-\u{10D27}\u{10D69}-\u{10D6D}\u{10EAB}\u{10EAC}\u{10EFC}-\u{10EFF}\u{10F46}-\u{10F50}\u{10F82}-\u{10F85}\u{11001}\u{11038}-\u{11046}\u{11070}\u{11073}\u{11074}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110C2}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111C9}-\u{111CC}\u{111CF}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{11241}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133B}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{113BB}-\u{113C0}\u{113CE}\u{113D0}\u{113D2}\u{113E1}\u{113E2}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{1145E}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{1182F}-\u{11837}\u{11839}\u{1183A}\u{1193B}\u{1193C}\u{1193E}\u{11943}\u{119D4}-\u{119D7}\u{119DA}\u{119DB}\u{119E0}\u{11A01}-\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C3F}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{11D90}\u{11D91}\u{11D95}\u{11D97}\u{11EF3}\u{11EF4}\u{11F00}\u{11F01}\u{11F36}-\u{11F3A}\u{11F40}\u{11F42}\u{11F5A}\u{13430}-\u{13440}\u{13447}-\u{13455}\u{1611E}-\u{16129}\u{1612D}-\u{1612F}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F4F}\u{16F8F}-\u{16F92}\u{16FE4}\u{1BC9D}\u{1BC9E}\u{1BCA0}-\u{1BCA3}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1D167}-\u{1D169}\u{1D173}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E08F}\u{1E130}-\u{1E136}\u{1E2AE}\u{1E2EC}-\u{1E2EF}\u{1E4EC}-\u{1E4EF}\u{1E5EE}\u{1E5EF}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94B}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}]*\u200C[\xAD\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u061C\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u070F\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200B\u200E\u200F\u202A-\u202E\u2060-\u2064\u206A-\u206F\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFEFF\uFFF9-\uFFFB\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10D24}-\u{10D27}\u{10D69}-\u{10D6D}\u{10EAB}\u{10EAC}\u{10EFC}-\u{10EFF}\u{10F46}-\u{10F50}\u{10F82}-\u{10F85}\u{11001}\u{11038}-\u{11046}\u{11070}\u{11073}\u{11074}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110C2}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111C9}-\u{111CC}\u{111CF}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{11241}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133B}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{113BB}-\u{113C0}\u{113CE}\u{113D0}\u{113D2}\u{113E1}\u{113E2}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{1145E}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{1182F}-\u{11837}\u{11839}\u{1183A}\u{1193B}\u{1193C}\u{1193E}\u{11943}\u{119D4}-\u{119D7}\u{119DA}\u{119DB}\u{119E0}\u{11A01}-\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C3F}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{11D90}\u{11D91}\u{11D95}\u{11D97}\u{11EF3}\u{11EF4}\u{11F00}\u{11F01}\u{11F36}-\u{11F3A}\u{11F40}\u{11F42}\u{11F5A}\u{13430}-\u{13440}\u{13447}-\u{13455}\u{1611E}-\u{16129}\u{1612D}-\u{1612F}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F4F}\u{16F8F}-\u{16F92}\u{16FE4}\u{1BC9D}\u{1BC9E}\u{1BCA0}-\u{1BCA3}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1D167}-\u{1D169}\u{1D173}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E08F}\u{1E130}-\u{1E136}\u{1E2AE}\u{1E2EC}-\u{1E2EF}\u{1E4EC}-\u{1E4EF}\u{1E5EE}\u{1E5EF}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94B}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}]*[\u0620\u0622-\u063F\u0641-\u064A\u066E\u066F\u0671-\u0673\u0675-\u06D3\u06D5\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u077F\u07CA-\u07EA\u0840-\u0858\u0860\u0862-\u0865\u0867-\u086A\u0870-\u0882\u0886\u0889-\u088E\u08A0-\u08AC\u08AE-\u08C8\u1807\u1820-\u1878\u1887-\u18A8\u18AA\uA840-\uA871\u{10AC0}-\u{10AC5}\u{10AC7}\u{10AC9}\u{10ACA}\u{10ACE}-\u{10AD6}\u{10AD8}-\u{10AE1}\u{10AE4}\u{10AEB}-\u{10AEF}\u{10B80}-\u{10B91}\u{10BA9}-\u{10BAE}\u{10D01}-\u{10D23}\u{10EC2}-\u{10EC4}\u{10F30}-\u{10F44}\u{10F51}-\u{10F54}\u{10F70}-\u{10F81}\u{10FB0}\u{10FB2}-\u{10FB6}\u{10FB8}-\u{10FBF}\u{10FC1}-\u{10FC4}\u{10FC9}\u{10FCA}\u{1E900}-\u{1E943}]/u;
    var bidiDomain = /[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05EA\u05EF-\u05F4\u0600-\u0605\u0608\u060B\u060D\u061B-\u064A\u0660-\u0669\u066B-\u066F\u0671-\u06D5\u06DD\u06E5\u06E6\u06EE\u06EF\u06FA-\u070D\u070F\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u083E\u0840-\u0858\u085E\u0860-\u086A\u0870-\u088E\u0890\u0891\u08A0-\u08C9\u08E2\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC2\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE70-\uFE74\uFE76-\uFEFC\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{10920}-\u{10939}\u{1093F}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A35}\u{10A40}-\u{10A48}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE4}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10D23}\u{10D30}-\u{10D39}\u{10D40}-\u{10D65}\u{10D6F}-\u{10D85}\u{10D8E}\u{10D8F}\u{10E60}-\u{10E7E}\u{10E80}-\u{10EA9}\u{10EAD}\u{10EB0}\u{10EB1}\u{10EC2}-\u{10EC4}\u{10F00}-\u{10F27}\u{10F30}-\u{10F45}\u{10F51}-\u{10F59}\u{10F70}-\u{10F81}\u{10F86}-\u{10F89}\u{10FB0}-\u{10FCB}\u{10FE0}-\u{10FF6}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8CF}\u{1E900}-\u{1E943}\u{1E94B}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EC71}-\u{1ECB4}\u{1ED01}-\u{1ED3D}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}]/u;
    var bidiS1LTR = /[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02BB-\u02C1\u02D0\u02D1\u02E0-\u02E4\u02EE\u0370-\u0373\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0482\u048A-\u052F\u0531-\u0556\u0559-\u0589\u0903-\u0939\u093B\u093D-\u0940\u0949-\u094C\u094E-\u0950\u0958-\u0961\u0964-\u0980\u0982\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C0\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09FA\u09FC\u09FD\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A40\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A76\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC0\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0\u0AE1\u0AE6-\u0AF0\u0AF9\u0B02\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0BE6-\u0BF2\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C41-\u0C44\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C77\u0C7F\u0C80\u0C82-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1-\u0CF3\u0D02-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D4F\u0D54-\u0D61\u0D66-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E4F-\u0E5B\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00-\u0F17\u0F1A-\u0F34\u0F36\u0F38\u0F3E-\u0F47\u0F49-\u0F6C\u0F7F\u0F85\u0F88-\u0F8C\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE-\u0FDA\u1000-\u102C\u1031\u1038\u103B\u103C\u103F-\u1057\u105A-\u105D\u1061-\u1070\u1075-\u1081\u1083\u1084\u1087-\u108C\u108E-\u109C\u109E-\u10C5\u10C7\u10CD\u10D0-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1360-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u167F\u1681-\u169A\u16A0-\u16F8\u1700-\u1711\u1715\u171F-\u1731\u1734-\u1736\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17B6\u17BE-\u17C5\u17C7\u17C8\u17D4-\u17DA\u17DC\u17E0-\u17E9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A19\u1A1A\u1A1E-\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1A80-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD\u1B04-\u1B33\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B4C\u1B4E-\u1B6A\u1B74-\u1B7F\u1B82-\u1BA1\u1BA6\u1BA7\u1BAA\u1BAE-\u1BE5\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1BFC-\u1C2B\u1C34\u1C35\u1C3B-\u1C49\u1C4D-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CC7\u1CD3\u1CE1\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5-\u1CF7\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200E\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u214F\u2160-\u2188\u2336-\u237A\u2395\u249C-\u24E9\u26AC\u2800-\u28FF\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D70\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u302E\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3190-\u31BF\u31F0-\u321C\u3220-\u324F\u3260-\u327B\u327F-\u32B0\u32C0-\u32CB\u32D0-\u3376\u337B-\u33DD\u33E0-\u33FE\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA60C\uA610-\uA62B\uA640-\uA66E\uA680-\uA69D\uA6A0-\uA6EF\uA6F2-\uA6F7\uA722-\uA787\uA789-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA824\uA827\uA830-\uA837\uA840-\uA873\uA880-\uA8C3\uA8CE-\uA8D9\uA8F2-\uA8FE\uA900-\uA925\uA92E-\uA946\uA952\uA953\uA95F-\uA97C\uA983-\uA9B2\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9CD\uA9CF-\uA9D9\uA9DE-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA2F\uAA30\uAA33\uAA34\uAA40-\uAA42\uAA44-\uAA4B\uAA4D\uAA50-\uAA59\uAA5C-\uAA7B\uAA7D-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAAEB\uAAEE-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB69\uAB70-\uABE4\uABE6\uABE7\uABE9-\uABEC\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uD800-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10100}\u{10102}\u{10107}-\u{10133}\u{10137}-\u{1013F}\u{1018D}\u{1018E}\u{101D0}-\u{101FC}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{10300}-\u{10323}\u{1032D}-\u{1034A}\u{10350}-\u{10375}\u{10380}-\u{1039D}\u{1039F}-\u{103C3}\u{103C8}-\u{103D5}\u{10400}-\u{1049D}\u{104A0}-\u{104A9}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{1056F}-\u{1057A}\u{1057C}-\u{1058A}\u{1058C}-\u{10592}\u{10594}\u{10595}\u{10597}-\u{105A1}\u{105A3}-\u{105B1}\u{105B3}-\u{105B9}\u{105BB}\u{105BC}\u{105C0}-\u{105F3}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{10780}-\u{10785}\u{10787}-\u{107B0}\u{107B2}-\u{107BA}\u{11000}\u{11002}-\u{11037}\u{11047}-\u{1104D}\u{11066}-\u{1106F}\u{11071}\u{11072}\u{11075}\u{11082}-\u{110B2}\u{110B7}\u{110B8}\u{110BB}-\u{110C1}\u{110CD}\u{110D0}-\u{110E8}\u{110F0}-\u{110F9}\u{11103}-\u{11126}\u{1112C}\u{11136}-\u{11147}\u{11150}-\u{11172}\u{11174}-\u{11176}\u{11182}-\u{111B5}\u{111BF}-\u{111C8}\u{111CD}\u{111CE}\u{111D0}-\u{111DF}\u{111E1}-\u{111F4}\u{11200}-\u{11211}\u{11213}-\u{1122E}\u{11232}\u{11233}\u{11235}\u{11238}-\u{1123D}\u{1123F}\u{11240}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A9}\u{112B0}-\u{112DE}\u{112E0}-\u{112E2}\u{112F0}-\u{112F9}\u{11302}\u{11303}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133D}-\u{1133F}\u{11341}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11350}\u{11357}\u{1135D}-\u{11363}\u{11380}-\u{11389}\u{1138B}\u{1138E}\u{11390}-\u{113B5}\u{113B7}-\u{113BA}\u{113C2}\u{113C5}\u{113C7}-\u{113CA}\u{113CC}\u{113CD}\u{113CF}\u{113D1}\u{113D3}-\u{113D5}\u{113D7}\u{113D8}\u{11400}-\u{11437}\u{11440}\u{11441}\u{11445}\u{11447}-\u{1145B}\u{1145D}\u{1145F}-\u{11461}\u{11480}-\u{114B2}\u{114B9}\u{114BB}-\u{114BE}\u{114C1}\u{114C4}-\u{114C7}\u{114D0}-\u{114D9}\u{11580}-\u{115B1}\u{115B8}-\u{115BB}\u{115BE}\u{115C1}-\u{115DB}\u{11600}-\u{11632}\u{1163B}\u{1163C}\u{1163E}\u{11641}-\u{11644}\u{11650}-\u{11659}\u{11680}-\u{116AA}\u{116AC}\u{116AE}\u{116AF}\u{116B6}\u{116B8}\u{116B9}\u{116C0}-\u{116C9}\u{116D0}-\u{116E3}\u{11700}-\u{1171A}\u{1171E}\u{11720}\u{11721}\u{11726}\u{11730}-\u{11746}\u{11800}-\u{1182E}\u{11838}\u{1183B}\u{118A0}-\u{118F2}\u{118FF}-\u{11906}\u{11909}\u{1190C}-\u{11913}\u{11915}\u{11916}\u{11918}-\u{11935}\u{11937}\u{11938}\u{1193D}\u{1193F}-\u{11942}\u{11944}-\u{11946}\u{11950}-\u{11959}\u{119A0}-\u{119A7}\u{119AA}-\u{119D3}\u{119DC}-\u{119DF}\u{119E1}-\u{119E4}\u{11A00}\u{11A07}\u{11A08}\u{11A0B}-\u{11A32}\u{11A39}\u{11A3A}\u{11A3F}-\u{11A46}\u{11A50}\u{11A57}\u{11A58}\u{11A5C}-\u{11A89}\u{11A97}\u{11A9A}-\u{11AA2}\u{11AB0}-\u{11AF8}\u{11B00}-\u{11B09}\u{11BC0}-\u{11BE1}\u{11BF0}-\u{11BF9}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C2F}\u{11C3E}-\u{11C45}\u{11C50}-\u{11C6C}\u{11C70}-\u{11C8F}\u{11CA9}\u{11CB1}\u{11CB4}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D30}\u{11D46}\u{11D50}-\u{11D59}\u{11D60}-\u{11D65}\u{11D67}\u{11D68}\u{11D6A}-\u{11D8E}\u{11D93}\u{11D94}\u{11D96}\u{11D98}\u{11DA0}-\u{11DA9}\u{11EE0}-\u{11EF2}\u{11EF5}-\u{11EF8}\u{11F02}-\u{11F10}\u{11F12}-\u{11F35}\u{11F3E}\u{11F3F}\u{11F41}\u{11F43}-\u{11F59}\u{11FB0}\u{11FC0}-\u{11FD4}\u{11FFF}-\u{12399}\u{12400}-\u{1246E}\u{12470}-\u{12474}\u{12480}-\u{12543}\u{12F90}-\u{12FF2}\u{13000}-\u{1343F}\u{13441}-\u{13446}\u{13460}-\u{143FA}\u{14400}-\u{14646}\u{16100}-\u{1611D}\u{1612A}-\u{1612C}\u{16130}-\u{16139}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A60}-\u{16A69}\u{16A6E}-\u{16ABE}\u{16AC0}-\u{16AC9}\u{16AD0}-\u{16AED}\u{16AF5}\u{16B00}-\u{16B2F}\u{16B37}-\u{16B45}\u{16B50}-\u{16B59}\u{16B5B}-\u{16B61}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16D40}-\u{16D79}\u{16E40}-\u{16E9A}\u{16F00}-\u{16F4A}\u{16F50}-\u{16F87}\u{16F93}-\u{16F9F}\u{16FE0}\u{16FE1}\u{16FE3}\u{16FF0}\u{16FF1}\u{17000}-\u{187F7}\u{18800}-\u{18CD5}\u{18CFF}-\u{18D08}\u{1AFF0}-\u{1AFF3}\u{1AFF5}-\u{1AFFB}\u{1AFFD}\u{1AFFE}\u{1B000}-\u{1B122}\u{1B132}\u{1B150}-\u{1B152}\u{1B155}\u{1B164}-\u{1B167}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1BC9C}\u{1BC9F}\u{1CCD6}-\u{1CCEF}\u{1CF50}-\u{1CFC3}\u{1D000}-\u{1D0F5}\u{1D100}-\u{1D126}\u{1D129}-\u{1D166}\u{1D16A}-\u{1D172}\u{1D183}\u{1D184}\u{1D18C}-\u{1D1A9}\u{1D1AE}-\u{1D1E8}\u{1D2C0}-\u{1D2D3}\u{1D2E0}-\u{1D2F3}\u{1D360}-\u{1D378}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D6C0}\u{1D6C2}-\u{1D6DA}\u{1D6DC}-\u{1D6FA}\u{1D6FC}-\u{1D714}\u{1D716}-\u{1D734}\u{1D736}-\u{1D74E}\u{1D750}-\u{1D76E}\u{1D770}-\u{1D788}\u{1D78A}-\u{1D7A8}\u{1D7AA}-\u{1D7C2}\u{1D7C4}-\u{1D7CB}\u{1D800}-\u{1D9FF}\u{1DA37}-\u{1DA3A}\u{1DA6D}-\u{1DA74}\u{1DA76}-\u{1DA83}\u{1DA85}-\u{1DA8B}\u{1DF00}-\u{1DF1E}\u{1DF25}-\u{1DF2A}\u{1E030}-\u{1E06D}\u{1E100}-\u{1E12C}\u{1E137}-\u{1E13D}\u{1E140}-\u{1E149}\u{1E14E}\u{1E14F}\u{1E290}-\u{1E2AD}\u{1E2C0}-\u{1E2EB}\u{1E2F0}-\u{1E2F9}\u{1E4D0}-\u{1E4EB}\u{1E4F0}-\u{1E4F9}\u{1E5D0}-\u{1E5ED}\u{1E5F0}-\u{1E5FA}\u{1E5FF}\u{1E7E0}-\u{1E7E6}\u{1E7E8}-\u{1E7EB}\u{1E7ED}\u{1E7EE}\u{1E7F0}-\u{1E7FE}\u{1F110}-\u{1F12E}\u{1F130}-\u{1F169}\u{1F170}-\u{1F1AC}\u{1F1E6}-\u{1F202}\u{1F210}-\u{1F23B}\u{1F240}-\u{1F248}\u{1F250}\u{1F251}\u{20000}-\u{2A6DF}\u{2A700}-\u{2B739}\u{2B740}-\u{2B81D}\u{2B820}-\u{2CEA1}\u{2CEB0}-\u{2EBE0}\u{2EBF0}-\u{2EE5D}\u{2F800}-\u{2FA1D}\u{30000}-\u{3134A}\u{31350}-\u{323AF}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]/u;
    var bidiS1RTL = /[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05EA\u05EF-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u070D\u070F\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u083E\u0840-\u0858\u085E\u0860-\u086A\u0870-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC2\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE70-\uFE74\uFE76-\uFEFC\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{10920}-\u{10939}\u{1093F}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A35}\u{10A40}-\u{10A48}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE4}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10D23}\u{10D4A}-\u{10D65}\u{10D6F}-\u{10D85}\u{10D8E}\u{10D8F}\u{10E80}-\u{10EA9}\u{10EAD}\u{10EB0}\u{10EB1}\u{10EC2}-\u{10EC4}\u{10F00}-\u{10F27}\u{10F30}-\u{10F45}\u{10F51}-\u{10F59}\u{10F70}-\u{10F81}\u{10F86}-\u{10F89}\u{10FB0}-\u{10FCB}\u{10FE0}-\u{10FF6}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8CF}\u{1E900}-\u{1E943}\u{1E94B}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EC71}-\u{1ECB4}\u{1ED01}-\u{1ED3D}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}]/u;
    var bidiS2 = /^[\0-\x08\x0E-\x1B!-@\[-`\{-\x84\x86-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02B9\u02BA\u02C2-\u02CF\u02D2-\u02DF\u02E5-\u02ED\u02EF-\u036F\u0374\u0375\u037E\u0384\u0385\u0387\u03F6\u0483-\u0489\u058A\u058D-\u058F\u0591-\u05C7\u05D0-\u05EA\u05EF-\u05F4\u0600-\u070D\u070F-\u074A\u074D-\u07B1\u07C0-\u07FA\u07FD-\u082D\u0830-\u083E\u0840-\u085B\u085E\u0860-\u086A\u0870-\u088E\u0890\u0891\u0897-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09F2\u09F3\u09FB\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AF1\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0BF3-\u0BFA\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C78-\u0C7E\u0C81\u0CBC\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E3F\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39-\u0F3D\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1390-\u1399\u1400\u169B\u169C\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DB\u17DD\u17F0-\u17F9\u1800-\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1940\u1944\u1945\u19DE-\u19FF\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u200B-\u200D\u200F-\u2027\u202F-\u205E\u2060-\u2064\u206A-\u2070\u2074-\u207E\u2080-\u208E\u20A0-\u20C0\u20D0-\u20F0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u2150-\u215F\u2189-\u218B\u2190-\u2335\u237B-\u2394\u2396-\u2429\u2440-\u244A\u2460-\u249B\u24EA-\u26AB\u26AD-\u27FF\u2900-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2CEF-\u2CF1\u2CF9-\u2CFF\u2D7F\u2DE0-\u2E5D\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3001-\u3004\u3008-\u3020\u302A-\u302D\u3030\u3036\u3037\u303D-\u303F\u3099-\u309C\u30A0\u30FB\u31C0-\u31E5\u31EF\u321D\u321E\u3250-\u325F\u327C-\u327E\u32B1-\u32BF\u32CC-\u32CF\u3377-\u337A\u33DE\u33DF\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA60D-\uA60F\uA66F-\uA67F\uA69E\uA69F\uA6F0\uA6F1\uA700-\uA721\uA788\uA802\uA806\uA80B\uA825\uA826\uA828-\uA82C\uA838\uA839\uA874-\uA877\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uAB6A\uAB6B\uABE5\uABE8\uABED\uFB1D-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC2\uFBD3-\uFD8F\uFD92-\uFDC7\uFDCF\uFDF0-\uFE19\uFE20-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFE70-\uFE74\uFE76-\uFEFC\uFEFF\uFF01-\uFF20\uFF3B-\uFF40\uFF5B-\uFF65\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFF9-\uFFFD\u{10101}\u{10140}-\u{1018C}\u{10190}-\u{1019C}\u{101A0}\u{101FD}\u{102E0}-\u{102FB}\u{10376}-\u{1037A}\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{1091F}-\u{10939}\u{1093F}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A35}\u{10A38}-\u{10A3A}\u{10A3F}-\u{10A48}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE6}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B39}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10D27}\u{10D30}-\u{10D39}\u{10D40}-\u{10D65}\u{10D69}-\u{10D85}\u{10D8E}\u{10D8F}\u{10E60}-\u{10E7E}\u{10E80}-\u{10EA9}\u{10EAB}-\u{10EAD}\u{10EB0}\u{10EB1}\u{10EC2}-\u{10EC4}\u{10EFC}-\u{10F27}\u{10F30}-\u{10F59}\u{10F70}-\u{10F89}\u{10FB0}-\u{10FCB}\u{10FE0}-\u{10FF6}\u{11001}\u{11038}-\u{11046}\u{11052}-\u{11065}\u{11070}\u{11073}\u{11074}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110C2}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111C9}-\u{111CC}\u{111CF}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{11241}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133B}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{113BB}-\u{113C0}\u{113CE}\u{113D0}\u{113D2}\u{113E1}\u{113E2}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{1145E}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{11660}-\u{1166C}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{1182F}-\u{11837}\u{11839}\u{1183A}\u{1193B}\u{1193C}\u{1193E}\u{11943}\u{119D4}-\u{119D7}\u{119DA}\u{119DB}\u{119E0}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{11D90}\u{11D91}\u{11D95}\u{11D97}\u{11EF3}\u{11EF4}\u{11F00}\u{11F01}\u{11F36}-\u{11F3A}\u{11F40}\u{11F42}\u{11F5A}\u{11FD5}-\u{11FF1}\u{13440}\u{13447}-\u{13455}\u{1611E}-\u{16129}\u{1612D}-\u{1612F}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F4F}\u{16F8F}-\u{16F92}\u{16FE2}\u{16FE4}\u{1BC9D}\u{1BC9E}\u{1BCA0}-\u{1BCA3}\u{1CC00}-\u{1CCD5}\u{1CCF0}-\u{1CCF9}\u{1CD00}-\u{1CEB3}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1D167}-\u{1D169}\u{1D173}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D1E9}\u{1D1EA}\u{1D200}-\u{1D245}\u{1D300}-\u{1D356}\u{1D6C1}\u{1D6DB}\u{1D6FB}\u{1D715}\u{1D735}\u{1D74F}\u{1D76F}\u{1D789}\u{1D7A9}\u{1D7C3}\u{1D7CE}-\u{1D7FF}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E08F}\u{1E130}-\u{1E136}\u{1E2AE}\u{1E2EC}-\u{1E2EF}\u{1E2FF}\u{1E4EC}-\u{1E4EF}\u{1E5EE}\u{1E5EF}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8D6}\u{1E900}-\u{1E94B}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EC71}-\u{1ECB4}\u{1ED01}-\u{1ED3D}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}\u{1EEF0}\u{1EEF1}\u{1F000}-\u{1F02B}\u{1F030}-\u{1F093}\u{1F0A0}-\u{1F0AE}\u{1F0B1}-\u{1F0BF}\u{1F0C1}-\u{1F0CF}\u{1F0D1}-\u{1F0F5}\u{1F100}-\u{1F10F}\u{1F12F}\u{1F16A}-\u{1F16F}\u{1F1AD}\u{1F260}-\u{1F265}\u{1F300}-\u{1F6D7}\u{1F6DC}-\u{1F6EC}\u{1F6F0}-\u{1F6FC}\u{1F700}-\u{1F776}\u{1F77B}-\u{1F7D9}\u{1F7E0}-\u{1F7EB}\u{1F7F0}\u{1F800}-\u{1F80B}\u{1F810}-\u{1F847}\u{1F850}-\u{1F859}\u{1F860}-\u{1F887}\u{1F890}-\u{1F8AD}\u{1F8B0}-\u{1F8BB}\u{1F8C0}\u{1F8C1}\u{1F900}-\u{1FA53}\u{1FA60}-\u{1FA6D}\u{1FA70}-\u{1FA7C}\u{1FA80}-\u{1FA89}\u{1FA8F}-\u{1FAC6}\u{1FACE}-\u{1FADC}\u{1FADF}-\u{1FAE9}\u{1FAF0}-\u{1FAF8}\u{1FB00}-\u{1FB92}\u{1FB94}-\u{1FBF9}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}]*$/u;
    var bidiS3 = /[0-9\xB2\xB3\xB9\u05BE\u05C0\u05C3\u05C6\u05D0-\u05EA\u05EF-\u05F4\u0600-\u0605\u0608\u060B\u060D\u061B-\u064A\u0660-\u0669\u066B-\u066F\u0671-\u06D5\u06DD\u06E5\u06E6\u06EE-\u070D\u070F\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u083E\u0840-\u0858\u085E\u0860-\u086A\u0870-\u088E\u0890\u0891\u08A0-\u08C9\u08E2\u200F\u2070\u2074-\u2079\u2080-\u2089\u2488-\u249B\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC2\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\u{102E1}-\u{102FB}\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{10920}-\u{10939}\u{1093F}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A35}\u{10A40}-\u{10A48}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE4}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10D23}\u{10D30}-\u{10D39}\u{10D40}-\u{10D65}\u{10D6F}-\u{10D85}\u{10D8E}\u{10D8F}\u{10E60}-\u{10E7E}\u{10E80}-\u{10EA9}\u{10EAD}\u{10EB0}\u{10EB1}\u{10EC2}-\u{10EC4}\u{10F00}-\u{10F27}\u{10F30}-\u{10F45}\u{10F51}-\u{10F59}\u{10F70}-\u{10F81}\u{10F86}-\u{10F89}\u{10FB0}-\u{10FCB}\u{10FE0}-\u{10FF6}\u{1CCF0}-\u{1CCF9}\u{1D7CE}-\u{1D7FF}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8CF}\u{1E900}-\u{1E943}\u{1E94B}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EC71}-\u{1ECB4}\u{1ED01}-\u{1ED3D}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}\u{1F100}-\u{1F10A}\u{1FBF0}-\u{1FBF9}][\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10D24}-\u{10D27}\u{10D69}-\u{10D6D}\u{10EAB}\u{10EAC}\u{10EFC}-\u{10EFF}\u{10F46}-\u{10F50}\u{10F82}-\u{10F85}\u{11001}\u{11038}-\u{11046}\u{11070}\u{11073}\u{11074}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110C2}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111C9}-\u{111CC}\u{111CF}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{11241}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133B}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{113BB}-\u{113C0}\u{113CE}\u{113D0}\u{113D2}\u{113E1}\u{113E2}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{1145E}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{1182F}-\u{11837}\u{11839}\u{1183A}\u{1193B}\u{1193C}\u{1193E}\u{11943}\u{119D4}-\u{119D7}\u{119DA}\u{119DB}\u{119E0}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{11D90}\u{11D91}\u{11D95}\u{11D97}\u{11EF3}\u{11EF4}\u{11F00}\u{11F01}\u{11F36}-\u{11F3A}\u{11F40}\u{11F42}\u{11F5A}\u{13440}\u{13447}-\u{13455}\u{1611E}-\u{16129}\u{1612D}-\u{1612F}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F4F}\u{16F8F}-\u{16F92}\u{16FE4}\u{1BC9D}\u{1BC9E}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1D167}-\u{1D169}\u{1D17B}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E08F}\u{1E130}-\u{1E136}\u{1E2AE}\u{1E2EC}-\u{1E2EF}\u{1E4EC}-\u{1E4EF}\u{1E5EE}\u{1E5EF}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0100}-\u{E01EF}]*$/u;
    var bidiS4EN = /[0-9\xB2\xB3\xB9\u06F0-\u06F9\u2070\u2074-\u2079\u2080-\u2089\u2488-\u249B\uFF10-\uFF19\u{102E1}-\u{102FB}\u{1CCF0}-\u{1CCF9}\u{1D7CE}-\u{1D7FF}\u{1F100}-\u{1F10A}\u{1FBF0}-\u{1FBF9}]/u;
    var bidiS4AN = /[\u0600-\u0605\u0660-\u0669\u066B\u066C\u06DD\u0890\u0891\u08E2\u{10D30}-\u{10D39}\u{10D40}-\u{10D49}\u{10E60}-\u{10E7E}]/u;
    var bidiS5 = /^[\0-\x08\x0E-\x1B!-\x84\x86-\u0377\u037A-\u037F\u0384-\u038A\u038C\u038E-\u03A1\u03A3-\u052F\u0531-\u0556\u0559-\u058A\u058D-\u058F\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0606\u0607\u0609\u060A\u060C\u060E-\u061A\u064B-\u065F\u066A\u0670\u06D6-\u06DC\u06DE-\u06E4\u06E7-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07F6-\u07F9\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A76\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AF1\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B77\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BFA\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C77-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1-\u0CF3\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4F\u0D54-\u0D63\u0D66-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4\u0E01-\u0E3A\u0E3F-\u0E5B\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECE\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00-\u0F47\u0F49-\u0F6C\u0F71-\u0F97\u0F99-\u0FBC\u0FBE-\u0FCC\u0FCE-\u0FDA\u1000-\u10C5\u10C7\u10CD\u10D0-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u137C\u1380-\u1399\u13A0-\u13F5\u13F8-\u13FD\u1400-\u167F\u1681-\u169C\u16A0-\u16F8\u1700-\u1715\u171F-\u1736\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17DD\u17E0-\u17E9\u17F0-\u17F9\u1800-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1940\u1944-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u19DE-\u1A1B\u1A1E-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD\u1AB0-\u1ACE\u1B00-\u1B4C\u1B4E-\u1BF3\u1BFC-\u1C37\u1C3B-\u1C49\u1C4D-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CC7\u1CD0-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FC4\u1FC6-\u1FD3\u1FD6-\u1FDB\u1FDD-\u1FEF\u1FF2-\u1FF4\u1FF6-\u1FFE\u200B-\u200E\u2010-\u2027\u202F-\u205E\u2060-\u2064\u206A-\u2071\u2074-\u208E\u2090-\u209C\u20A0-\u20C0\u20D0-\u20F0\u2100-\u218B\u2190-\u2429\u2440-\u244A\u2460-\u2B73\u2B76-\u2B95\u2B97-\u2CF3\u2CF9-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D70\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2E5D\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3001-\u303F\u3041-\u3096\u3099-\u30FF\u3105-\u312F\u3131-\u318E\u3190-\u31E5\u31EF-\u321E\u3220-\uA48C\uA490-\uA4C6\uA4D0-\uA62B\uA640-\uA6F7\uA700-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA82C\uA830-\uA839\uA840-\uA877\uA880-\uA8C5\uA8CE-\uA8D9\uA8E0-\uA953\uA95F-\uA97C\uA980-\uA9CD\uA9CF-\uA9D9\uA9DE-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA5C-\uAAC2\uAADB-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB6B\uAB70-\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uD800-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1E\uFB29\uFD3E-\uFD4F\uFDCF\uFDFD-\uFE19\uFE20-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFEFF\uFF01-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFF9-\uFFFD\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10100}-\u{10102}\u{10107}-\u{10133}\u{10137}-\u{1018E}\u{10190}-\u{1019C}\u{101A0}\u{101D0}-\u{101FD}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{102E0}-\u{102FB}\u{10300}-\u{10323}\u{1032D}-\u{1034A}\u{10350}-\u{1037A}\u{10380}-\u{1039D}\u{1039F}-\u{103C3}\u{103C8}-\u{103D5}\u{10400}-\u{1049D}\u{104A0}-\u{104A9}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{1056F}-\u{1057A}\u{1057C}-\u{1058A}\u{1058C}-\u{10592}\u{10594}\u{10595}\u{10597}-\u{105A1}\u{105A3}-\u{105B1}\u{105B3}-\u{105B9}\u{105BB}\u{105BC}\u{105C0}-\u{105F3}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{10780}-\u{10785}\u{10787}-\u{107B0}\u{107B2}-\u{107BA}\u{1091F}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10B39}-\u{10B3F}\u{10D24}-\u{10D27}\u{10D69}-\u{10D6E}\u{10EAB}\u{10EAC}\u{10EFC}-\u{10EFF}\u{10F46}-\u{10F50}\u{10F82}-\u{10F85}\u{11000}-\u{1104D}\u{11052}-\u{11075}\u{1107F}-\u{110C2}\u{110CD}\u{110D0}-\u{110E8}\u{110F0}-\u{110F9}\u{11100}-\u{11134}\u{11136}-\u{11147}\u{11150}-\u{11176}\u{11180}-\u{111DF}\u{111E1}-\u{111F4}\u{11200}-\u{11211}\u{11213}-\u{11241}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A9}\u{112B0}-\u{112EA}\u{112F0}-\u{112F9}\u{11300}-\u{11303}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133B}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11350}\u{11357}\u{1135D}-\u{11363}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11380}-\u{11389}\u{1138B}\u{1138E}\u{11390}-\u{113B5}\u{113B7}-\u{113C0}\u{113C2}\u{113C5}\u{113C7}-\u{113CA}\u{113CC}-\u{113D5}\u{113D7}\u{113D8}\u{113E1}\u{113E2}\u{11400}-\u{1145B}\u{1145D}-\u{11461}\u{11480}-\u{114C7}\u{114D0}-\u{114D9}\u{11580}-\u{115B5}\u{115B8}-\u{115DD}\u{11600}-\u{11644}\u{11650}-\u{11659}\u{11660}-\u{1166C}\u{11680}-\u{116B9}\u{116C0}-\u{116C9}\u{116D0}-\u{116E3}\u{11700}-\u{1171A}\u{1171D}-\u{1172B}\u{11730}-\u{11746}\u{11800}-\u{1183B}\u{118A0}-\u{118F2}\u{118FF}-\u{11906}\u{11909}\u{1190C}-\u{11913}\u{11915}\u{11916}\u{11918}-\u{11935}\u{11937}\u{11938}\u{1193B}-\u{11946}\u{11950}-\u{11959}\u{119A0}-\u{119A7}\u{119AA}-\u{119D7}\u{119DA}-\u{119E4}\u{11A00}-\u{11A47}\u{11A50}-\u{11AA2}\u{11AB0}-\u{11AF8}\u{11B00}-\u{11B09}\u{11BC0}-\u{11BE1}\u{11BF0}-\u{11BF9}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C36}\u{11C38}-\u{11C45}\u{11C50}-\u{11C6C}\u{11C70}-\u{11C8F}\u{11C92}-\u{11CA7}\u{11CA9}-\u{11CB6}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D47}\u{11D50}-\u{11D59}\u{11D60}-\u{11D65}\u{11D67}\u{11D68}\u{11D6A}-\u{11D8E}\u{11D90}\u{11D91}\u{11D93}-\u{11D98}\u{11DA0}-\u{11DA9}\u{11EE0}-\u{11EF8}\u{11F00}-\u{11F10}\u{11F12}-\u{11F3A}\u{11F3E}-\u{11F5A}\u{11FB0}\u{11FC0}-\u{11FF1}\u{11FFF}-\u{12399}\u{12400}-\u{1246E}\u{12470}-\u{12474}\u{12480}-\u{12543}\u{12F90}-\u{12FF2}\u{13000}-\u{13455}\u{13460}-\u{143FA}\u{14400}-\u{14646}\u{16100}-\u{16139}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A60}-\u{16A69}\u{16A6E}-\u{16ABE}\u{16AC0}-\u{16AC9}\u{16AD0}-\u{16AED}\u{16AF0}-\u{16AF5}\u{16B00}-\u{16B45}\u{16B50}-\u{16B59}\u{16B5B}-\u{16B61}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16D40}-\u{16D79}\u{16E40}-\u{16E9A}\u{16F00}-\u{16F4A}\u{16F4F}-\u{16F87}\u{16F8F}-\u{16F9F}\u{16FE0}-\u{16FE4}\u{16FF0}\u{16FF1}\u{17000}-\u{187F7}\u{18800}-\u{18CD5}\u{18CFF}-\u{18D08}\u{1AFF0}-\u{1AFF3}\u{1AFF5}-\u{1AFFB}\u{1AFFD}\u{1AFFE}\u{1B000}-\u{1B122}\u{1B132}\u{1B150}-\u{1B152}\u{1B155}\u{1B164}-\u{1B167}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1BC9C}-\u{1BCA3}\u{1CC00}-\u{1CCF9}\u{1CD00}-\u{1CEB3}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1CF50}-\u{1CFC3}\u{1D000}-\u{1D0F5}\u{1D100}-\u{1D126}\u{1D129}-\u{1D1EA}\u{1D200}-\u{1D245}\u{1D2C0}-\u{1D2D3}\u{1D2E0}-\u{1D2F3}\u{1D300}-\u{1D356}\u{1D360}-\u{1D378}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D7CB}\u{1D7CE}-\u{1DA8B}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1DF00}-\u{1DF1E}\u{1DF25}-\u{1DF2A}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E030}-\u{1E06D}\u{1E08F}\u{1E100}-\u{1E12C}\u{1E130}-\u{1E13D}\u{1E140}-\u{1E149}\u{1E14E}\u{1E14F}\u{1E290}-\u{1E2AE}\u{1E2C0}-\u{1E2F9}\u{1E2FF}\u{1E4D0}-\u{1E4F9}\u{1E5D0}-\u{1E5FA}\u{1E5FF}\u{1E7E0}-\u{1E7E6}\u{1E7E8}-\u{1E7EB}\u{1E7ED}\u{1E7EE}\u{1E7F0}-\u{1E7FE}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{1EEF0}\u{1EEF1}\u{1F000}-\u{1F02B}\u{1F030}-\u{1F093}\u{1F0A0}-\u{1F0AE}\u{1F0B1}-\u{1F0BF}\u{1F0C1}-\u{1F0CF}\u{1F0D1}-\u{1F0F5}\u{1F100}-\u{1F1AD}\u{1F1E6}-\u{1F202}\u{1F210}-\u{1F23B}\u{1F240}-\u{1F248}\u{1F250}\u{1F251}\u{1F260}-\u{1F265}\u{1F300}-\u{1F6D7}\u{1F6DC}-\u{1F6EC}\u{1F6F0}-\u{1F6FC}\u{1F700}-\u{1F776}\u{1F77B}-\u{1F7D9}\u{1F7E0}-\u{1F7EB}\u{1F7F0}\u{1F800}-\u{1F80B}\u{1F810}-\u{1F847}\u{1F850}-\u{1F859}\u{1F860}-\u{1F887}\u{1F890}-\u{1F8AD}\u{1F8B0}-\u{1F8BB}\u{1F8C0}\u{1F8C1}\u{1F900}-\u{1FA53}\u{1FA60}-\u{1FA6D}\u{1FA70}-\u{1FA7C}\u{1FA80}-\u{1FA89}\u{1FA8F}-\u{1FAC6}\u{1FACE}-\u{1FADC}\u{1FADF}-\u{1FAE9}\u{1FAF0}-\u{1FAF8}\u{1FB00}-\u{1FB92}\u{1FB94}-\u{1FBF9}\u{20000}-\u{2A6DF}\u{2A700}-\u{2B739}\u{2B740}-\u{2B81D}\u{2B820}-\u{2CEA1}\u{2CEB0}-\u{2EBE0}\u{2EBF0}-\u{2EE5D}\u{2F800}-\u{2FA1D}\u{30000}-\u{3134A}\u{31350}-\u{323AF}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]*$/u;
    var bidiS6 = /[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02BB-\u02C1\u02D0\u02D1\u02E0-\u02E4\u02EE\u0370-\u0373\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0482\u048A-\u052F\u0531-\u0556\u0559-\u0589\u06F0-\u06F9\u0903-\u0939\u093B\u093D-\u0940\u0949-\u094C\u094E-\u0950\u0958-\u0961\u0964-\u0980\u0982\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C0\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09FA\u09FC\u09FD\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A40\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A76\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC0\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0\u0AE1\u0AE6-\u0AF0\u0AF9\u0B02\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0BE6-\u0BF2\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C41-\u0C44\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C77\u0C7F\u0C80\u0C82-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1-\u0CF3\u0D02-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D4F\u0D54-\u0D61\u0D66-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E4F-\u0E5B\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00-\u0F17\u0F1A-\u0F34\u0F36\u0F38\u0F3E-\u0F47\u0F49-\u0F6C\u0F7F\u0F85\u0F88-\u0F8C\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE-\u0FDA\u1000-\u102C\u1031\u1038\u103B\u103C\u103F-\u1057\u105A-\u105D\u1061-\u1070\u1075-\u1081\u1083\u1084\u1087-\u108C\u108E-\u109C\u109E-\u10C5\u10C7\u10CD\u10D0-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1360-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u167F\u1681-\u169A\u16A0-\u16F8\u1700-\u1711\u1715\u171F-\u1731\u1734-\u1736\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17B6\u17BE-\u17C5\u17C7\u17C8\u17D4-\u17DA\u17DC\u17E0-\u17E9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A19\u1A1A\u1A1E-\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1A80-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD\u1B04-\u1B33\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B4C\u1B4E-\u1B6A\u1B74-\u1B7F\u1B82-\u1BA1\u1BA6\u1BA7\u1BAA\u1BAE-\u1BE5\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1BFC-\u1C2B\u1C34\u1C35\u1C3B-\u1C49\u1C4D-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CC7\u1CD3\u1CE1\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5-\u1CF7\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200E\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u214F\u2160-\u2188\u2336-\u237A\u2395\u2488-\u24E9\u26AC\u2800-\u28FF\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D70\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u302E\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3190-\u31BF\u31F0-\u321C\u3220-\u324F\u3260-\u327B\u327F-\u32B0\u32C0-\u32CB\u32D0-\u3376\u337B-\u33DD\u33E0-\u33FE\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA60C\uA610-\uA62B\uA640-\uA66E\uA680-\uA69D\uA6A0-\uA6EF\uA6F2-\uA6F7\uA722-\uA787\uA789-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA824\uA827\uA830-\uA837\uA840-\uA873\uA880-\uA8C3\uA8CE-\uA8D9\uA8F2-\uA8FE\uA900-\uA925\uA92E-\uA946\uA952\uA953\uA95F-\uA97C\uA983-\uA9B2\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9CD\uA9CF-\uA9D9\uA9DE-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA2F\uAA30\uAA33\uAA34\uAA40-\uAA42\uAA44-\uAA4B\uAA4D\uAA50-\uAA59\uAA5C-\uAA7B\uAA7D-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAAEB\uAAEE-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB69\uAB70-\uABE4\uABE6\uABE7\uABE9-\uABEC\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uD800-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10100}\u{10102}\u{10107}-\u{10133}\u{10137}-\u{1013F}\u{1018D}\u{1018E}\u{101D0}-\u{101FC}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{102E1}-\u{102FB}\u{10300}-\u{10323}\u{1032D}-\u{1034A}\u{10350}-\u{10375}\u{10380}-\u{1039D}\u{1039F}-\u{103C3}\u{103C8}-\u{103D5}\u{10400}-\u{1049D}\u{104A0}-\u{104A9}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{1056F}-\u{1057A}\u{1057C}-\u{1058A}\u{1058C}-\u{10592}\u{10594}\u{10595}\u{10597}-\u{105A1}\u{105A3}-\u{105B1}\u{105B3}-\u{105B9}\u{105BB}\u{105BC}\u{105C0}-\u{105F3}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{10780}-\u{10785}\u{10787}-\u{107B0}\u{107B2}-\u{107BA}\u{11000}\u{11002}-\u{11037}\u{11047}-\u{1104D}\u{11066}-\u{1106F}\u{11071}\u{11072}\u{11075}\u{11082}-\u{110B2}\u{110B7}\u{110B8}\u{110BB}-\u{110C1}\u{110CD}\u{110D0}-\u{110E8}\u{110F0}-\u{110F9}\u{11103}-\u{11126}\u{1112C}\u{11136}-\u{11147}\u{11150}-\u{11172}\u{11174}-\u{11176}\u{11182}-\u{111B5}\u{111BF}-\u{111C8}\u{111CD}\u{111CE}\u{111D0}-\u{111DF}\u{111E1}-\u{111F4}\u{11200}-\u{11211}\u{11213}-\u{1122E}\u{11232}\u{11233}\u{11235}\u{11238}-\u{1123D}\u{1123F}\u{11240}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A9}\u{112B0}-\u{112DE}\u{112E0}-\u{112E2}\u{112F0}-\u{112F9}\u{11302}\u{11303}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133D}-\u{1133F}\u{11341}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11350}\u{11357}\u{1135D}-\u{11363}\u{11380}-\u{11389}\u{1138B}\u{1138E}\u{11390}-\u{113B5}\u{113B7}-\u{113BA}\u{113C2}\u{113C5}\u{113C7}-\u{113CA}\u{113CC}\u{113CD}\u{113CF}\u{113D1}\u{113D3}-\u{113D5}\u{113D7}\u{113D8}\u{11400}-\u{11437}\u{11440}\u{11441}\u{11445}\u{11447}-\u{1145B}\u{1145D}\u{1145F}-\u{11461}\u{11480}-\u{114B2}\u{114B9}\u{114BB}-\u{114BE}\u{114C1}\u{114C4}-\u{114C7}\u{114D0}-\u{114D9}\u{11580}-\u{115B1}\u{115B8}-\u{115BB}\u{115BE}\u{115C1}-\u{115DB}\u{11600}-\u{11632}\u{1163B}\u{1163C}\u{1163E}\u{11641}-\u{11644}\u{11650}-\u{11659}\u{11680}-\u{116AA}\u{116AC}\u{116AE}\u{116AF}\u{116B6}\u{116B8}\u{116B9}\u{116C0}-\u{116C9}\u{116D0}-\u{116E3}\u{11700}-\u{1171A}\u{1171E}\u{11720}\u{11721}\u{11726}\u{11730}-\u{11746}\u{11800}-\u{1182E}\u{11838}\u{1183B}\u{118A0}-\u{118F2}\u{118FF}-\u{11906}\u{11909}\u{1190C}-\u{11913}\u{11915}\u{11916}\u{11918}-\u{11935}\u{11937}\u{11938}\u{1193D}\u{1193F}-\u{11942}\u{11944}-\u{11946}\u{11950}-\u{11959}\u{119A0}-\u{119A7}\u{119AA}-\u{119D3}\u{119DC}-\u{119DF}\u{119E1}-\u{119E4}\u{11A00}\u{11A07}\u{11A08}\u{11A0B}-\u{11A32}\u{11A39}\u{11A3A}\u{11A3F}-\u{11A46}\u{11A50}\u{11A57}\u{11A58}\u{11A5C}-\u{11A89}\u{11A97}\u{11A9A}-\u{11AA2}\u{11AB0}-\u{11AF8}\u{11B00}-\u{11B09}\u{11BC0}-\u{11BE1}\u{11BF0}-\u{11BF9}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C2F}\u{11C3E}-\u{11C45}\u{11C50}-\u{11C6C}\u{11C70}-\u{11C8F}\u{11CA9}\u{11CB1}\u{11CB4}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D30}\u{11D46}\u{11D50}-\u{11D59}\u{11D60}-\u{11D65}\u{11D67}\u{11D68}\u{11D6A}-\u{11D8E}\u{11D93}\u{11D94}\u{11D96}\u{11D98}\u{11DA0}-\u{11DA9}\u{11EE0}-\u{11EF2}\u{11EF5}-\u{11EF8}\u{11F02}-\u{11F10}\u{11F12}-\u{11F35}\u{11F3E}\u{11F3F}\u{11F41}\u{11F43}-\u{11F59}\u{11FB0}\u{11FC0}-\u{11FD4}\u{11FFF}-\u{12399}\u{12400}-\u{1246E}\u{12470}-\u{12474}\u{12480}-\u{12543}\u{12F90}-\u{12FF2}\u{13000}-\u{1343F}\u{13441}-\u{13446}\u{13460}-\u{143FA}\u{14400}-\u{14646}\u{16100}-\u{1611D}\u{1612A}-\u{1612C}\u{16130}-\u{16139}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A60}-\u{16A69}\u{16A6E}-\u{16ABE}\u{16AC0}-\u{16AC9}\u{16AD0}-\u{16AED}\u{16AF5}\u{16B00}-\u{16B2F}\u{16B37}-\u{16B45}\u{16B50}-\u{16B59}\u{16B5B}-\u{16B61}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16D40}-\u{16D79}\u{16E40}-\u{16E9A}\u{16F00}-\u{16F4A}\u{16F50}-\u{16F87}\u{16F93}-\u{16F9F}\u{16FE0}\u{16FE1}\u{16FE3}\u{16FF0}\u{16FF1}\u{17000}-\u{187F7}\u{18800}-\u{18CD5}\u{18CFF}-\u{18D08}\u{1AFF0}-\u{1AFF3}\u{1AFF5}-\u{1AFFB}\u{1AFFD}\u{1AFFE}\u{1B000}-\u{1B122}\u{1B132}\u{1B150}-\u{1B152}\u{1B155}\u{1B164}-\u{1B167}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1BC9C}\u{1BC9F}\u{1CCD6}-\u{1CCF9}\u{1CF50}-\u{1CFC3}\u{1D000}-\u{1D0F5}\u{1D100}-\u{1D126}\u{1D129}-\u{1D166}\u{1D16A}-\u{1D172}\u{1D183}\u{1D184}\u{1D18C}-\u{1D1A9}\u{1D1AE}-\u{1D1E8}\u{1D2C0}-\u{1D2D3}\u{1D2E0}-\u{1D2F3}\u{1D360}-\u{1D378}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D6C0}\u{1D6C2}-\u{1D6DA}\u{1D6DC}-\u{1D6FA}\u{1D6FC}-\u{1D714}\u{1D716}-\u{1D734}\u{1D736}-\u{1D74E}\u{1D750}-\u{1D76E}\u{1D770}-\u{1D788}\u{1D78A}-\u{1D7A8}\u{1D7AA}-\u{1D7C2}\u{1D7C4}-\u{1D7CB}\u{1D7CE}-\u{1D9FF}\u{1DA37}-\u{1DA3A}\u{1DA6D}-\u{1DA74}\u{1DA76}-\u{1DA83}\u{1DA85}-\u{1DA8B}\u{1DF00}-\u{1DF1E}\u{1DF25}-\u{1DF2A}\u{1E030}-\u{1E06D}\u{1E100}-\u{1E12C}\u{1E137}-\u{1E13D}\u{1E140}-\u{1E149}\u{1E14E}\u{1E14F}\u{1E290}-\u{1E2AD}\u{1E2C0}-\u{1E2EB}\u{1E2F0}-\u{1E2F9}\u{1E4D0}-\u{1E4EB}\u{1E4F0}-\u{1E4F9}\u{1E5D0}-\u{1E5ED}\u{1E5F0}-\u{1E5FA}\u{1E5FF}\u{1E7E0}-\u{1E7E6}\u{1E7E8}-\u{1E7EB}\u{1E7ED}\u{1E7EE}\u{1E7F0}-\u{1E7FE}\u{1F100}-\u{1F10A}\u{1F110}-\u{1F12E}\u{1F130}-\u{1F169}\u{1F170}-\u{1F1AC}\u{1F1E6}-\u{1F202}\u{1F210}-\u{1F23B}\u{1F240}-\u{1F248}\u{1F250}\u{1F251}\u{1FBF0}-\u{1FBF9}\u{20000}-\u{2A6DF}\u{2A700}-\u{2B739}\u{2B740}-\u{2B81D}\u{2B820}-\u{2CEA1}\u{2CEB0}-\u{2EBE0}\u{2EBF0}-\u{2EE5D}\u{2F800}-\u{2FA1D}\u{30000}-\u{3134A}\u{31350}-\u{323AF}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}][\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10D24}-\u{10D27}\u{10D69}-\u{10D6D}\u{10EAB}\u{10EAC}\u{10EFC}-\u{10EFF}\u{10F46}-\u{10F50}\u{10F82}-\u{10F85}\u{11001}\u{11038}-\u{11046}\u{11070}\u{11073}\u{11074}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110C2}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111C9}-\u{111CC}\u{111CF}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{11241}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133B}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{113BB}-\u{113C0}\u{113CE}\u{113D0}\u{113D2}\u{113E1}\u{113E2}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{1145E}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{1182F}-\u{11837}\u{11839}\u{1183A}\u{1193B}\u{1193C}\u{1193E}\u{11943}\u{119D4}-\u{119D7}\u{119DA}\u{119DB}\u{119E0}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{11D90}\u{11D91}\u{11D95}\u{11D97}\u{11EF3}\u{11EF4}\u{11F00}\u{11F01}\u{11F36}-\u{11F3A}\u{11F40}\u{11F42}\u{11F5A}\u{13440}\u{13447}-\u{13455}\u{1611E}-\u{16129}\u{1612D}-\u{1612F}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F4F}\u{16F8F}-\u{16F92}\u{16FE4}\u{1BC9D}\u{1BC9E}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1D167}-\u{1D169}\u{1D17B}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E08F}\u{1E130}-\u{1E136}\u{1E2AE}\u{1E2EC}-\u{1E2EF}\u{1E4EC}-\u{1E4EF}\u{1E5EE}\u{1E5EF}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0100}-\u{E01EF}]*$/u;
    module.exports = {
      combiningMarks,
      combiningClassVirama,
      validZWNJ,
      bidiDomain,
      bidiS1LTR,
      bidiS1RTL,
      bidiS2,
      bidiS3,
      bidiS4EN,
      bidiS4AN,
      bidiS5,
      bidiS6
    };
  }
});

// ../../node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/mappingTable.json
var require_mappingTable = __commonJS({
  "../../node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/mappingTable.json"(exports, module) {
    module.exports = [[[0, 44], 2], [[45, 46], 2], [47, 2], [[48, 57], 2], [[58, 64], 2], [65, 1, "a"], [66, 1, "b"], [67, 1, "c"], [68, 1, "d"], [69, 1, "e"], [70, 1, "f"], [71, 1, "g"], [72, 1, "h"], [73, 1, "i"], [74, 1, "j"], [75, 1, "k"], [76, 1, "l"], [77, 1, "m"], [78, 1, "n"], [79, 1, "o"], [80, 1, "p"], [81, 1, "q"], [82, 1, "r"], [83, 1, "s"], [84, 1, "t"], [85, 1, "u"], [86, 1, "v"], [87, 1, "w"], [88, 1, "x"], [89, 1, "y"], [90, 1, "z"], [[91, 96], 2], [[97, 122], 2], [[123, 127], 2], [[128, 159], 3], [160, 1, " "], [[161, 167], 2], [168, 1, " \u0308"], [169, 2], [170, 1, "a"], [[171, 172], 2], [173, 7], [174, 2], [175, 1, " \u0304"], [[176, 177], 2], [178, 1, "2"], [179, 1, "3"], [180, 1, " \u0301"], [181, 1, "\u03BC"], [182, 2], [183, 2], [184, 1, " \u0327"], [185, 1, "1"], [186, 1, "o"], [187, 2], [188, 1, "1\u20444"], [189, 1, "1\u20442"], [190, 1, "3\u20444"], [191, 2], [192, 1, "\xE0"], [193, 1, "\xE1"], [194, 1, "\xE2"], [195, 1, "\xE3"], [196, 1, "\xE4"], [197, 1, "\xE5"], [198, 1, "\xE6"], [199, 1, "\xE7"], [200, 1, "\xE8"], [201, 1, "\xE9"], [202, 1, "\xEA"], [203, 1, "\xEB"], [204, 1, "\xEC"], [205, 1, "\xED"], [206, 1, "\xEE"], [207, 1, "\xEF"], [208, 1, "\xF0"], [209, 1, "\xF1"], [210, 1, "\xF2"], [211, 1, "\xF3"], [212, 1, "\xF4"], [213, 1, "\xF5"], [214, 1, "\xF6"], [215, 2], [216, 1, "\xF8"], [217, 1, "\xF9"], [218, 1, "\xFA"], [219, 1, "\xFB"], [220, 1, "\xFC"], [221, 1, "\xFD"], [222, 1, "\xFE"], [223, 6, "ss"], [[224, 246], 2], [247, 2], [[248, 255], 2], [256, 1, "\u0101"], [257, 2], [258, 1, "\u0103"], [259, 2], [260, 1, "\u0105"], [261, 2], [262, 1, "\u0107"], [263, 2], [264, 1, "\u0109"], [265, 2], [266, 1, "\u010B"], [267, 2], [268, 1, "\u010D"], [269, 2], [270, 1, "\u010F"], [271, 2], [272, 1, "\u0111"], [273, 2], [274, 1, "\u0113"], [275, 2], [276, 1, "\u0115"], [277, 2], [278, 1, "\u0117"], [279, 2], [280, 1, "\u0119"], [281, 2], [282, 1, "\u011B"], [283, 2], [284, 1, "\u011D"], [285, 2], [286, 1, "\u011F"], [287, 2], [288, 1, "\u0121"], [289, 2], [290, 1, "\u0123"], [291, 2], [292, 1, "\u0125"], [293, 2], [294, 1, "\u0127"], [295, 2], [296, 1, "\u0129"], [297, 2], [298, 1, "\u012B"], [299, 2], [300, 1, "\u012D"], [301, 2], [302, 1, "\u012F"], [303, 2], [304, 1, "i\u0307"], [305, 2], [[306, 307], 1, "ij"], [308, 1, "\u0135"], [309, 2], [310, 1, "\u0137"], [[311, 312], 2], [313, 1, "\u013A"], [314, 2], [315, 1, "\u013C"], [316, 2], [317, 1, "\u013E"], [318, 2], [[319, 320], 1, "l\xB7"], [321, 1, "\u0142"], [322, 2], [323, 1, "\u0144"], [324, 2], [325, 1, "\u0146"], [326, 2], [327, 1, "\u0148"], [328, 2], [329, 1, "\u02BCn"], [330, 1, "\u014B"], [331, 2], [332, 1, "\u014D"], [333, 2], [334, 1, "\u014F"], [335, 2], [336, 1, "\u0151"], [337, 2], [338, 1, "\u0153"], [339, 2], [340, 1, "\u0155"], [341, 2], [342, 1, "\u0157"], [343, 2], [344, 1, "\u0159"], [345, 2], [346, 1, "\u015B"], [347, 2], [348, 1, "\u015D"], [349, 2], [350, 1, "\u015F"], [351, 2], [352, 1, "\u0161"], [353, 2], [354, 1, "\u0163"], [355, 2], [356, 1, "\u0165"], [357, 2], [358, 1, "\u0167"], [359, 2], [360, 1, "\u0169"], [361, 2], [362, 1, "\u016B"], [363, 2], [364, 1, "\u016D"], [365, 2], [366, 1, "\u016F"], [367, 2], [368, 1, "\u0171"], [369, 2], [370, 1, "\u0173"], [371, 2], [372, 1, "\u0175"], [373, 2], [374, 1, "\u0177"], [375, 2], [376, 1, "\xFF"], [377, 1, "\u017A"], [378, 2], [379, 1, "\u017C"], [380, 2], [381, 1, "\u017E"], [382, 2], [383, 1, "s"], [384, 2], [385, 1, "\u0253"], [386, 1, "\u0183"], [387, 2], [388, 1, "\u0185"], [389, 2], [390, 1, "\u0254"], [391, 1, "\u0188"], [392, 2], [393, 1, "\u0256"], [394, 1, "\u0257"], [395, 1, "\u018C"], [[396, 397], 2], [398, 1, "\u01DD"], [399, 1, "\u0259"], [400, 1, "\u025B"], [401, 1, "\u0192"], [402, 2], [403, 1, "\u0260"], [404, 1, "\u0263"], [405, 2], [406, 1, "\u0269"], [407, 1, "\u0268"], [408, 1, "\u0199"], [[409, 411], 2], [412, 1, "\u026F"], [413, 1, "\u0272"], [414, 2], [415, 1, "\u0275"], [416, 1, "\u01A1"], [417, 2], [418, 1, "\u01A3"], [419, 2], [420, 1, "\u01A5"], [421, 2], [422, 1, "\u0280"], [423, 1, "\u01A8"], [424, 2], [425, 1, "\u0283"], [[426, 427], 2], [428, 1, "\u01AD"], [429, 2], [430, 1, "\u0288"], [431, 1, "\u01B0"], [432, 2], [433, 1, "\u028A"], [434, 1, "\u028B"], [435, 1, "\u01B4"], [436, 2], [437, 1, "\u01B6"], [438, 2], [439, 1, "\u0292"], [440, 1, "\u01B9"], [[441, 443], 2], [444, 1, "\u01BD"], [[445, 451], 2], [[452, 454], 1, "d\u017E"], [[455, 457], 1, "lj"], [[458, 460], 1, "nj"], [461, 1, "\u01CE"], [462, 2], [463, 1, "\u01D0"], [464, 2], [465, 1, "\u01D2"], [466, 2], [467, 1, "\u01D4"], [468, 2], [469, 1, "\u01D6"], [470, 2], [471, 1, "\u01D8"], [472, 2], [473, 1, "\u01DA"], [474, 2], [475, 1, "\u01DC"], [[476, 477], 2], [478, 1, "\u01DF"], [479, 2], [480, 1, "\u01E1"], [481, 2], [482, 1, "\u01E3"], [483, 2], [484, 1, "\u01E5"], [485, 2], [486, 1, "\u01E7"], [487, 2], [488, 1, "\u01E9"], [489, 2], [490, 1, "\u01EB"], [491, 2], [492, 1, "\u01ED"], [493, 2], [494, 1, "\u01EF"], [[495, 496], 2], [[497, 499], 1, "dz"], [500, 1, "\u01F5"], [501, 2], [502, 1, "\u0195"], [503, 1, "\u01BF"], [504, 1, "\u01F9"], [505, 2], [506, 1, "\u01FB"], [507, 2], [508, 1, "\u01FD"], [509, 2], [510, 1, "\u01FF"], [511, 2], [512, 1, "\u0201"], [513, 2], [514, 1, "\u0203"], [515, 2], [516, 1, "\u0205"], [517, 2], [518, 1, "\u0207"], [519, 2], [520, 1, "\u0209"], [521, 2], [522, 1, "\u020B"], [523, 2], [524, 1, "\u020D"], [525, 2], [526, 1, "\u020F"], [527, 2], [528, 1, "\u0211"], [529, 2], [530, 1, "\u0213"], [531, 2], [532, 1, "\u0215"], [533, 2], [534, 1, "\u0217"], [535, 2], [536, 1, "\u0219"], [537, 2], [538, 1, "\u021B"], [539, 2], [540, 1, "\u021D"], [541, 2], [542, 1, "\u021F"], [543, 2], [544, 1, "\u019E"], [545, 2], [546, 1, "\u0223"], [547, 2], [548, 1, "\u0225"], [549, 2], [550, 1, "\u0227"], [551, 2], [552, 1, "\u0229"], [553, 2], [554, 1, "\u022B"], [555, 2], [556, 1, "\u022D"], [557, 2], [558, 1, "\u022F"], [559, 2], [560, 1, "\u0231"], [561, 2], [562, 1, "\u0233"], [563, 2], [[564, 566], 2], [[567, 569], 2], [570, 1, "\u2C65"], [571, 1, "\u023C"], [572, 2], [573, 1, "\u019A"], [574, 1, "\u2C66"], [[575, 576], 2], [577, 1, "\u0242"], [578, 2], [579, 1, "\u0180"], [580, 1, "\u0289"], [581, 1, "\u028C"], [582, 1, "\u0247"], [583, 2], [584, 1, "\u0249"], [585, 2], [586, 1, "\u024B"], [587, 2], [588, 1, "\u024D"], [589, 2], [590, 1, "\u024F"], [591, 2], [[592, 680], 2], [[681, 685], 2], [[686, 687], 2], [688, 1, "h"], [689, 1, "\u0266"], [690, 1, "j"], [691, 1, "r"], [692, 1, "\u0279"], [693, 1, "\u027B"], [694, 1, "\u0281"], [695, 1, "w"], [696, 1, "y"], [[697, 705], 2], [[706, 709], 2], [[710, 721], 2], [[722, 727], 2], [728, 1, " \u0306"], [729, 1, " \u0307"], [730, 1, " \u030A"], [731, 1, " \u0328"], [732, 1, " \u0303"], [733, 1, " \u030B"], [734, 2], [735, 2], [736, 1, "\u0263"], [737, 1, "l"], [738, 1, "s"], [739, 1, "x"], [740, 1, "\u0295"], [[741, 745], 2], [[746, 747], 2], [748, 2], [749, 2], [750, 2], [[751, 767], 2], [[768, 831], 2], [832, 1, "\u0300"], [833, 1, "\u0301"], [834, 2], [835, 1, "\u0313"], [836, 1, "\u0308\u0301"], [837, 1, "\u03B9"], [[838, 846], 2], [847, 7], [[848, 855], 2], [[856, 860], 2], [[861, 863], 2], [[864, 865], 2], [866, 2], [[867, 879], 2], [880, 1, "\u0371"], [881, 2], [882, 1, "\u0373"], [883, 2], [884, 1, "\u02B9"], [885, 2], [886, 1, "\u0377"], [887, 2], [[888, 889], 3], [890, 1, " \u03B9"], [[891, 893], 2], [894, 1, ";"], [895, 1, "\u03F3"], [[896, 899], 3], [900, 1, " \u0301"], [901, 1, " \u0308\u0301"], [902, 1, "\u03AC"], [903, 1, "\xB7"], [904, 1, "\u03AD"], [905, 1, "\u03AE"], [906, 1, "\u03AF"], [907, 3], [908, 1, "\u03CC"], [909, 3], [910, 1, "\u03CD"], [911, 1, "\u03CE"], [912, 2], [913, 1, "\u03B1"], [914, 1, "\u03B2"], [915, 1, "\u03B3"], [916, 1, "\u03B4"], [917, 1, "\u03B5"], [918, 1, "\u03B6"], [919, 1, "\u03B7"], [920, 1, "\u03B8"], [921, 1, "\u03B9"], [922, 1, "\u03BA"], [923, 1, "\u03BB"], [924, 1, "\u03BC"], [925, 1, "\u03BD"], [926, 1, "\u03BE"], [927, 1, "\u03BF"], [928, 1, "\u03C0"], [929, 1, "\u03C1"], [930, 3], [931, 1, "\u03C3"], [932, 1, "\u03C4"], [933, 1, "\u03C5"], [934, 1, "\u03C6"], [935, 1, "\u03C7"], [936, 1, "\u03C8"], [937, 1, "\u03C9"], [938, 1, "\u03CA"], [939, 1, "\u03CB"], [[940, 961], 2], [962, 6, "\u03C3"], [[963, 974], 2], [975, 1, "\u03D7"], [976, 1, "\u03B2"], [977, 1, "\u03B8"], [978, 1, "\u03C5"], [979, 1, "\u03CD"], [980, 1, "\u03CB"], [981, 1, "\u03C6"], [982, 1, "\u03C0"], [983, 2], [984, 1, "\u03D9"], [985, 2], [986, 1, "\u03DB"], [987, 2], [988, 1, "\u03DD"], [989, 2], [990, 1, "\u03DF"], [991, 2], [992, 1, "\u03E1"], [993, 2], [994, 1, "\u03E3"], [995, 2], [996, 1, "\u03E5"], [997, 2], [998, 1, "\u03E7"], [999, 2], [1e3, 1, "\u03E9"], [1001, 2], [1002, 1, "\u03EB"], [1003, 2], [1004, 1, "\u03ED"], [1005, 2], [1006, 1, "\u03EF"], [1007, 2], [1008, 1, "\u03BA"], [1009, 1, "\u03C1"], [1010, 1, "\u03C3"], [1011, 2], [1012, 1, "\u03B8"], [1013, 1, "\u03B5"], [1014, 2], [1015, 1, "\u03F8"], [1016, 2], [1017, 1, "\u03C3"], [1018, 1, "\u03FB"], [1019, 2], [1020, 2], [1021, 1, "\u037B"], [1022, 1, "\u037C"], [1023, 1, "\u037D"], [1024, 1, "\u0450"], [1025, 1, "\u0451"], [1026, 1, "\u0452"], [1027, 1, "\u0453"], [1028, 1, "\u0454"], [1029, 1, "\u0455"], [1030, 1, "\u0456"], [1031, 1, "\u0457"], [1032, 1, "\u0458"], [1033, 1, "\u0459"], [1034, 1, "\u045A"], [1035, 1, "\u045B"], [1036, 1, "\u045C"], [1037, 1, "\u045D"], [1038, 1, "\u045E"], [1039, 1, "\u045F"], [1040, 1, "\u0430"], [1041, 1, "\u0431"], [1042, 1, "\u0432"], [1043, 1, "\u0433"], [1044, 1, "\u0434"], [1045, 1, "\u0435"], [1046, 1, "\u0436"], [1047, 1, "\u0437"], [1048, 1, "\u0438"], [1049, 1, "\u0439"], [1050, 1, "\u043A"], [1051, 1, "\u043B"], [1052, 1, "\u043C"], [1053, 1, "\u043D"], [1054, 1, "\u043E"], [1055, 1, "\u043F"], [1056, 1, "\u0440"], [1057, 1, "\u0441"], [1058, 1, "\u0442"], [1059, 1, "\u0443"], [1060, 1, "\u0444"], [1061, 1, "\u0445"], [1062, 1, "\u0446"], [1063, 1, "\u0447"], [1064, 1, "\u0448"], [1065, 1, "\u0449"], [1066, 1, "\u044A"], [1067, 1, "\u044B"], [1068, 1, "\u044C"], [1069, 1, "\u044D"], [1070, 1, "\u044E"], [1071, 1, "\u044F"], [[1072, 1103], 2], [1104, 2], [[1105, 1116], 2], [1117, 2], [[1118, 1119], 2], [1120, 1, "\u0461"], [1121, 2], [1122, 1, "\u0463"], [1123, 2], [1124, 1, "\u0465"], [1125, 2], [1126, 1, "\u0467"], [1127, 2], [1128, 1, "\u0469"], [1129, 2], [1130, 1, "\u046B"], [1131, 2], [1132, 1, "\u046D"], [1133, 2], [1134, 1, "\u046F"], [1135, 2], [1136, 1, "\u0471"], [1137, 2], [1138, 1, "\u0473"], [1139, 2], [1140, 1, "\u0475"], [1141, 2], [1142, 1, "\u0477"], [1143, 2], [1144, 1, "\u0479"], [1145, 2], [1146, 1, "\u047B"], [1147, 2], [1148, 1, "\u047D"], [1149, 2], [1150, 1, "\u047F"], [1151, 2], [1152, 1, "\u0481"], [1153, 2], [1154, 2], [[1155, 1158], 2], [1159, 2], [[1160, 1161], 2], [1162, 1, "\u048B"], [1163, 2], [1164, 1, "\u048D"], [1165, 2], [1166, 1, "\u048F"], [1167, 2], [1168, 1, "\u0491"], [1169, 2], [1170, 1, "\u0493"], [1171, 2], [1172, 1, "\u0495"], [1173, 2], [1174, 1, "\u0497"], [1175, 2], [1176, 1, "\u0499"], [1177, 2], [1178, 1, "\u049B"], [1179, 2], [1180, 1, "\u049D"], [1181, 2], [1182, 1, "\u049F"], [1183, 2], [1184, 1, "\u04A1"], [1185, 2], [1186, 1, "\u04A3"], [1187, 2], [1188, 1, "\u04A5"], [1189, 2], [1190, 1, "\u04A7"], [1191, 2], [1192, 1, "\u04A9"], [1193, 2], [1194, 1, "\u04AB"], [1195, 2], [1196, 1, "\u04AD"], [1197, 2], [1198, 1, "\u04AF"], [1199, 2], [1200, 1, "\u04B1"], [1201, 2], [1202, 1, "\u04B3"], [1203, 2], [1204, 1, "\u04B5"], [1205, 2], [1206, 1, "\u04B7"], [1207, 2], [1208, 1, "\u04B9"], [1209, 2], [1210, 1, "\u04BB"], [1211, 2], [1212, 1, "\u04BD"], [1213, 2], [1214, 1, "\u04BF"], [1215, 2], [1216, 1, "\u04CF"], [1217, 1, "\u04C2"], [1218, 2], [1219, 1, "\u04C4"], [1220, 2], [1221, 1, "\u04C6"], [1222, 2], [1223, 1, "\u04C8"], [1224, 2], [1225, 1, "\u04CA"], [1226, 2], [1227, 1, "\u04CC"], [1228, 2], [1229, 1, "\u04CE"], [1230, 2], [1231, 2], [1232, 1, "\u04D1"], [1233, 2], [1234, 1, "\u04D3"], [1235, 2], [1236, 1, "\u04D5"], [1237, 2], [1238, 1, "\u04D7"], [1239, 2], [1240, 1, "\u04D9"], [1241, 2], [1242, 1, "\u04DB"], [1243, 2], [1244, 1, "\u04DD"], [1245, 2], [1246, 1, "\u04DF"], [1247, 2], [1248, 1, "\u04E1"], [1249, 2], [1250, 1, "\u04E3"], [1251, 2], [1252, 1, "\u04E5"], [1253, 2], [1254, 1, "\u04E7"], [1255, 2], [1256, 1, "\u04E9"], [1257, 2], [1258, 1, "\u04EB"], [1259, 2], [1260, 1, "\u04ED"], [1261, 2], [1262, 1, "\u04EF"], [1263, 2], [1264, 1, "\u04F1"], [1265, 2], [1266, 1, "\u04F3"], [1267, 2], [1268, 1, "\u04F5"], [1269, 2], [1270, 1, "\u04F7"], [1271, 2], [1272, 1, "\u04F9"], [1273, 2], [1274, 1, "\u04FB"], [1275, 2], [1276, 1, "\u04FD"], [1277, 2], [1278, 1, "\u04FF"], [1279, 2], [1280, 1, "\u0501"], [1281, 2], [1282, 1, "\u0503"], [1283, 2], [1284, 1, "\u0505"], [1285, 2], [1286, 1, "\u0507"], [1287, 2], [1288, 1, "\u0509"], [1289, 2], [1290, 1, "\u050B"], [1291, 2], [1292, 1, "\u050D"], [1293, 2], [1294, 1, "\u050F"], [1295, 2], [1296, 1, "\u0511"], [1297, 2], [1298, 1, "\u0513"], [1299, 2], [1300, 1, "\u0515"], [1301, 2], [1302, 1, "\u0517"], [1303, 2], [1304, 1, "\u0519"], [1305, 2], [1306, 1, "\u051B"], [1307, 2], [1308, 1, "\u051D"], [1309, 2], [1310, 1, "\u051F"], [1311, 2], [1312, 1, "\u0521"], [1313, 2], [1314, 1, "\u0523"], [1315, 2], [1316, 1, "\u0525"], [1317, 2], [1318, 1, "\u0527"], [1319, 2], [1320, 1, "\u0529"], [1321, 2], [1322, 1, "\u052B"], [1323, 2], [1324, 1, "\u052D"], [1325, 2], [1326, 1, "\u052F"], [1327, 2], [1328, 3], [1329, 1, "\u0561"], [1330, 1, "\u0562"], [1331, 1, "\u0563"], [1332, 1, "\u0564"], [1333, 1, "\u0565"], [1334, 1, "\u0566"], [1335, 1, "\u0567"], [1336, 1, "\u0568"], [1337, 1, "\u0569"], [1338, 1, "\u056A"], [1339, 1, "\u056B"], [1340, 1, "\u056C"], [1341, 1, "\u056D"], [1342, 1, "\u056E"], [1343, 1, "\u056F"], [1344, 1, "\u0570"], [1345, 1, "\u0571"], [1346, 1, "\u0572"], [1347, 1, "\u0573"], [1348, 1, "\u0574"], [1349, 1, "\u0575"], [1350, 1, "\u0576"], [1351, 1, "\u0577"], [1352, 1, "\u0578"], [1353, 1, "\u0579"], [1354, 1, "\u057A"], [1355, 1, "\u057B"], [1356, 1, "\u057C"], [1357, 1, "\u057D"], [1358, 1, "\u057E"], [1359, 1, "\u057F"], [1360, 1, "\u0580"], [1361, 1, "\u0581"], [1362, 1, "\u0582"], [1363, 1, "\u0583"], [1364, 1, "\u0584"], [1365, 1, "\u0585"], [1366, 1, "\u0586"], [[1367, 1368], 3], [1369, 2], [[1370, 1375], 2], [1376, 2], [[1377, 1414], 2], [1415, 1, "\u0565\u0582"], [1416, 2], [1417, 2], [1418, 2], [[1419, 1420], 3], [[1421, 1422], 2], [1423, 2], [1424, 3], [[1425, 1441], 2], [1442, 2], [[1443, 1455], 2], [[1456, 1465], 2], [1466, 2], [[1467, 1469], 2], [1470, 2], [1471, 2], [1472, 2], [[1473, 1474], 2], [1475, 2], [1476, 2], [1477, 2], [1478, 2], [1479, 2], [[1480, 1487], 3], [[1488, 1514], 2], [[1515, 1518], 3], [1519, 2], [[1520, 1524], 2], [[1525, 1535], 3], [[1536, 1539], 3], [1540, 3], [1541, 3], [[1542, 1546], 2], [1547, 2], [1548, 2], [[1549, 1551], 2], [[1552, 1557], 2], [[1558, 1562], 2], [1563, 2], [1564, 3], [1565, 2], [1566, 2], [1567, 2], [1568, 2], [[1569, 1594], 2], [[1595, 1599], 2], [1600, 2], [[1601, 1618], 2], [[1619, 1621], 2], [[1622, 1624], 2], [[1625, 1630], 2], [1631, 2], [[1632, 1641], 2], [[1642, 1645], 2], [[1646, 1647], 2], [[1648, 1652], 2], [1653, 1, "\u0627\u0674"], [1654, 1, "\u0648\u0674"], [1655, 1, "\u06C7\u0674"], [1656, 1, "\u064A\u0674"], [[1657, 1719], 2], [[1720, 1721], 2], [[1722, 1726], 2], [1727, 2], [[1728, 1742], 2], [1743, 2], [[1744, 1747], 2], [1748, 2], [[1749, 1756], 2], [1757, 3], [1758, 2], [[1759, 1768], 2], [1769, 2], [[1770, 1773], 2], [[1774, 1775], 2], [[1776, 1785], 2], [[1786, 1790], 2], [1791, 2], [[1792, 1805], 2], [1806, 3], [1807, 3], [[1808, 1836], 2], [[1837, 1839], 2], [[1840, 1866], 2], [[1867, 1868], 3], [[1869, 1871], 2], [[1872, 1901], 2], [[1902, 1919], 2], [[1920, 1968], 2], [1969, 2], [[1970, 1983], 3], [[1984, 2037], 2], [[2038, 2042], 2], [[2043, 2044], 3], [2045, 2], [[2046, 2047], 2], [[2048, 2093], 2], [[2094, 2095], 3], [[2096, 2110], 2], [2111, 3], [[2112, 2139], 2], [[2140, 2141], 3], [2142, 2], [2143, 3], [[2144, 2154], 2], [[2155, 2159], 3], [[2160, 2183], 2], [2184, 2], [[2185, 2190], 2], [2191, 3], [[2192, 2193], 3], [[2194, 2198], 3], [2199, 2], [[2200, 2207], 2], [2208, 2], [2209, 2], [[2210, 2220], 2], [[2221, 2226], 2], [[2227, 2228], 2], [2229, 2], [[2230, 2237], 2], [[2238, 2247], 2], [[2248, 2258], 2], [2259, 2], [[2260, 2273], 2], [2274, 3], [2275, 2], [[2276, 2302], 2], [2303, 2], [2304, 2], [[2305, 2307], 2], [2308, 2], [[2309, 2361], 2], [[2362, 2363], 2], [[2364, 2381], 2], [2382, 2], [2383, 2], [[2384, 2388], 2], [2389, 2], [[2390, 2391], 2], [2392, 1, "\u0915\u093C"], [2393, 1, "\u0916\u093C"], [2394, 1, "\u0917\u093C"], [2395, 1, "\u091C\u093C"], [2396, 1, "\u0921\u093C"], [2397, 1, "\u0922\u093C"], [2398, 1, "\u092B\u093C"], [2399, 1, "\u092F\u093C"], [[2400, 2403], 2], [[2404, 2405], 2], [[2406, 2415], 2], [2416, 2], [[2417, 2418], 2], [[2419, 2423], 2], [2424, 2], [[2425, 2426], 2], [[2427, 2428], 2], [2429, 2], [[2430, 2431], 2], [2432, 2], [[2433, 2435], 2], [2436, 3], [[2437, 2444], 2], [[2445, 2446], 3], [[2447, 2448], 2], [[2449, 2450], 3], [[2451, 2472], 2], [2473, 3], [[2474, 2480], 2], [2481, 3], [2482, 2], [[2483, 2485], 3], [[2486, 2489], 2], [[2490, 2491], 3], [2492, 2], [2493, 2], [[2494, 2500], 2], [[2501, 2502], 3], [[2503, 2504], 2], [[2505, 2506], 3], [[2507, 2509], 2], [2510, 2], [[2511, 2518], 3], [2519, 2], [[2520, 2523], 3], [2524, 1, "\u09A1\u09BC"], [2525, 1, "\u09A2\u09BC"], [2526, 3], [2527, 1, "\u09AF\u09BC"], [[2528, 2531], 2], [[2532, 2533], 3], [[2534, 2545], 2], [[2546, 2554], 2], [2555, 2], [2556, 2], [2557, 2], [2558, 2], [[2559, 2560], 3], [2561, 2], [2562, 2], [2563, 2], [2564, 3], [[2565, 2570], 2], [[2571, 2574], 3], [[2575, 2576], 2], [[2577, 2578], 3], [[2579, 2600], 2], [2601, 3], [[2602, 2608], 2], [2609, 3], [2610, 2], [2611, 1, "\u0A32\u0A3C"], [2612, 3], [2613, 2], [2614, 1, "\u0A38\u0A3C"], [2615, 3], [[2616, 2617], 2], [[2618, 2619], 3], [2620, 2], [2621, 3], [[2622, 2626], 2], [[2627, 2630], 3], [[2631, 2632], 2], [[2633, 2634], 3], [[2635, 2637], 2], [[2638, 2640], 3], [2641, 2], [[2642, 2648], 3], [2649, 1, "\u0A16\u0A3C"], [2650, 1, "\u0A17\u0A3C"], [2651, 1, "\u0A1C\u0A3C"], [2652, 2], [2653, 3], [2654, 1, "\u0A2B\u0A3C"], [[2655, 2661], 3], [[2662, 2676], 2], [2677, 2], [2678, 2], [[2679, 2688], 3], [[2689, 2691], 2], [2692, 3], [[2693, 2699], 2], [2700, 2], [2701, 2], [2702, 3], [[2703, 2705], 2], [2706, 3], [[2707, 2728], 2], [2729, 3], [[2730, 2736], 2], [2737, 3], [[2738, 2739], 2], [2740, 3], [[2741, 2745], 2], [[2746, 2747], 3], [[2748, 2757], 2], [2758, 3], [[2759, 2761], 2], [2762, 3], [[2763, 2765], 2], [[2766, 2767], 3], [2768, 2], [[2769, 2783], 3], [2784, 2], [[2785, 2787], 2], [[2788, 2789], 3], [[2790, 2799], 2], [2800, 2], [2801, 2], [[2802, 2808], 3], [2809, 2], [[2810, 2815], 2], [2816, 3], [[2817, 2819], 2], [2820, 3], [[2821, 2828], 2], [[2829, 2830], 3], [[2831, 2832], 2], [[2833, 2834], 3], [[2835, 2856], 2], [2857, 3], [[2858, 2864], 2], [2865, 3], [[2866, 2867], 2], [2868, 3], [2869, 2], [[2870, 2873], 2], [[2874, 2875], 3], [[2876, 2883], 2], [2884, 2], [[2885, 2886], 3], [[2887, 2888], 2], [[2889, 2890], 3], [[2891, 2893], 2], [[2894, 2900], 3], [2901, 2], [[2902, 2903], 2], [[2904, 2907], 3], [2908, 1, "\u0B21\u0B3C"], [2909, 1, "\u0B22\u0B3C"], [2910, 3], [[2911, 2913], 2], [[2914, 2915], 2], [[2916, 2917], 3], [[2918, 2927], 2], [2928, 2], [2929, 2], [[2930, 2935], 2], [[2936, 2945], 3], [[2946, 2947], 2], [2948, 3], [[2949, 2954], 2], [[2955, 2957], 3], [[2958, 2960], 2], [2961, 3], [[2962, 2965], 2], [[2966, 2968], 3], [[2969, 2970], 2], [2971, 3], [2972, 2], [2973, 3], [[2974, 2975], 2], [[2976, 2978], 3], [[2979, 2980], 2], [[2981, 2983], 3], [[2984, 2986], 2], [[2987, 2989], 3], [[2990, 2997], 2], [2998, 2], [[2999, 3001], 2], [[3002, 3005], 3], [[3006, 3010], 2], [[3011, 3013], 3], [[3014, 3016], 2], [3017, 3], [[3018, 3021], 2], [[3022, 3023], 3], [3024, 2], [[3025, 3030], 3], [3031, 2], [[3032, 3045], 3], [3046, 2], [[3047, 3055], 2], [[3056, 3058], 2], [[3059, 3066], 2], [[3067, 3071], 3], [3072, 2], [[3073, 3075], 2], [3076, 2], [[3077, 3084], 2], [3085, 3], [[3086, 3088], 2], [3089, 3], [[3090, 3112], 2], [3113, 3], [[3114, 3123], 2], [3124, 2], [[3125, 3129], 2], [[3130, 3131], 3], [3132, 2], [3133, 2], [[3134, 3140], 2], [3141, 3], [[3142, 3144], 2], [3145, 3], [[3146, 3149], 2], [[3150, 3156], 3], [[3157, 3158], 2], [3159, 3], [[3160, 3161], 2], [3162, 2], [[3163, 3164], 3], [3165, 2], [[3166, 3167], 3], [[3168, 3169], 2], [[3170, 3171], 2], [[3172, 3173], 3], [[3174, 3183], 2], [[3184, 3190], 3], [3191, 2], [[3192, 3199], 2], [3200, 2], [3201, 2], [[3202, 3203], 2], [3204, 2], [[3205, 3212], 2], [3213, 3], [[3214, 3216], 2], [3217, 3], [[3218, 3240], 2], [3241, 3], [[3242, 3251], 2], [3252, 3], [[3253, 3257], 2], [[3258, 3259], 3], [[3260, 3261], 2], [[3262, 3268], 2], [3269, 3], [[3270, 3272], 2], [3273, 3], [[3274, 3277], 2], [[3278, 3284], 3], [[3285, 3286], 2], [[3287, 3292], 3], [3293, 2], [3294, 2], [3295, 3], [[3296, 3297], 2], [[3298, 3299], 2], [[3300, 3301], 3], [[3302, 3311], 2], [3312, 3], [[3313, 3314], 2], [3315, 2], [[3316, 3327], 3], [3328, 2], [3329, 2], [[3330, 3331], 2], [3332, 2], [[3333, 3340], 2], [3341, 3], [[3342, 3344], 2], [3345, 3], [[3346, 3368], 2], [3369, 2], [[3370, 3385], 2], [3386, 2], [[3387, 3388], 2], [3389, 2], [[3390, 3395], 2], [3396, 2], [3397, 3], [[3398, 3400], 2], [3401, 3], [[3402, 3405], 2], [3406, 2], [3407, 2], [[3408, 3411], 3], [[3412, 3414], 2], [3415, 2], [[3416, 3422], 2], [3423, 2], [[3424, 3425], 2], [[3426, 3427], 2], [[3428, 3429], 3], [[3430, 3439], 2], [[3440, 3445], 2], [[3446, 3448], 2], [3449, 2], [[3450, 3455], 2], [3456, 3], [3457, 2], [[3458, 3459], 2], [3460, 3], [[3461, 3478], 2], [[3479, 3481], 3], [[3482, 3505], 2], [3506, 3], [[3507, 3515], 2], [3516, 3], [3517, 2], [[3518, 3519], 3], [[3520, 3526], 2], [[3527, 3529], 3], [3530, 2], [[3531, 3534], 3], [[3535, 3540], 2], [3541, 3], [3542, 2], [3543, 3], [[3544, 3551], 2], [[3552, 3557], 3], [[3558, 3567], 2], [[3568, 3569], 3], [[3570, 3571], 2], [3572, 2], [[3573, 3584], 3], [[3585, 3634], 2], [3635, 1, "\u0E4D\u0E32"], [[3636, 3642], 2], [[3643, 3646], 3], [3647, 2], [[3648, 3662], 2], [3663, 2], [[3664, 3673], 2], [[3674, 3675], 2], [[3676, 3712], 3], [[3713, 3714], 2], [3715, 3], [3716, 2], [3717, 3], [3718, 2], [[3719, 3720], 2], [3721, 2], [3722, 2], [3723, 3], [3724, 2], [3725, 2], [[3726, 3731], 2], [[3732, 3735], 2], [3736, 2], [[3737, 3743], 2], [3744, 2], [[3745, 3747], 2], [3748, 3], [3749, 2], [3750, 3], [3751, 2], [[3752, 3753], 2], [[3754, 3755], 2], [3756, 2], [[3757, 3762], 2], [3763, 1, "\u0ECD\u0EB2"], [[3764, 3769], 2], [3770, 2], [[3771, 3773], 2], [[3774, 3775], 3], [[3776, 3780], 2], [3781, 3], [3782, 2], [3783, 3], [[3784, 3789], 2], [3790, 2], [3791, 3], [[3792, 3801], 2], [[3802, 3803], 3], [3804, 1, "\u0EAB\u0E99"], [3805, 1, "\u0EAB\u0EA1"], [[3806, 3807], 2], [[3808, 3839], 3], [3840, 2], [[3841, 3850], 2], [3851, 2], [3852, 1, "\u0F0B"], [[3853, 3863], 2], [[3864, 3865], 2], [[3866, 3871], 2], [[3872, 3881], 2], [[3882, 3892], 2], [3893, 2], [3894, 2], [3895, 2], [3896, 2], [3897, 2], [[3898, 3901], 2], [[3902, 3906], 2], [3907, 1, "\u0F42\u0FB7"], [[3908, 3911], 2], [3912, 3], [[3913, 3916], 2], [3917, 1, "\u0F4C\u0FB7"], [[3918, 3921], 2], [3922, 1, "\u0F51\u0FB7"], [[3923, 3926], 2], [3927, 1, "\u0F56\u0FB7"], [[3928, 3931], 2], [3932, 1, "\u0F5B\u0FB7"], [[3933, 3944], 2], [3945, 1, "\u0F40\u0FB5"], [3946, 2], [[3947, 3948], 2], [[3949, 3952], 3], [[3953, 3954], 2], [3955, 1, "\u0F71\u0F72"], [3956, 2], [3957, 1, "\u0F71\u0F74"], [3958, 1, "\u0FB2\u0F80"], [3959, 1, "\u0FB2\u0F71\u0F80"], [3960, 1, "\u0FB3\u0F80"], [3961, 1, "\u0FB3\u0F71\u0F80"], [[3962, 3968], 2], [3969, 1, "\u0F71\u0F80"], [[3970, 3972], 2], [3973, 2], [[3974, 3979], 2], [[3980, 3983], 2], [[3984, 3986], 2], [3987, 1, "\u0F92\u0FB7"], [[3988, 3989], 2], [3990, 2], [3991, 2], [3992, 3], [[3993, 3996], 2], [3997, 1, "\u0F9C\u0FB7"], [[3998, 4001], 2], [4002, 1, "\u0FA1\u0FB7"], [[4003, 4006], 2], [4007, 1, "\u0FA6\u0FB7"], [[4008, 4011], 2], [4012, 1, "\u0FAB\u0FB7"], [4013, 2], [[4014, 4016], 2], [[4017, 4023], 2], [4024, 2], [4025, 1, "\u0F90\u0FB5"], [[4026, 4028], 2], [4029, 3], [[4030, 4037], 2], [4038, 2], [[4039, 4044], 2], [4045, 3], [4046, 2], [4047, 2], [[4048, 4049], 2], [[4050, 4052], 2], [[4053, 4056], 2], [[4057, 4058], 2], [[4059, 4095], 3], [[4096, 4129], 2], [4130, 2], [[4131, 4135], 2], [4136, 2], [[4137, 4138], 2], [4139, 2], [[4140, 4146], 2], [[4147, 4149], 2], [[4150, 4153], 2], [[4154, 4159], 2], [[4160, 4169], 2], [[4170, 4175], 2], [[4176, 4185], 2], [[4186, 4249], 2], [[4250, 4253], 2], [[4254, 4255], 2], [4256, 1, "\u2D00"], [4257, 1, "\u2D01"], [4258, 1, "\u2D02"], [4259, 1, "\u2D03"], [4260, 1, "\u2D04"], [4261, 1, "\u2D05"], [4262, 1, "\u2D06"], [4263, 1, "\u2D07"], [4264, 1, "\u2D08"], [4265, 1, "\u2D09"], [4266, 1, "\u2D0A"], [4267, 1, "\u2D0B"], [4268, 1, "\u2D0C"], [4269, 1, "\u2D0D"], [4270, 1, "\u2D0E"], [4271, 1, "\u2D0F"], [4272, 1, "\u2D10"], [4273, 1, "\u2D11"], [4274, 1, "\u2D12"], [4275, 1, "\u2D13"], [4276, 1, "\u2D14"], [4277, 1, "\u2D15"], [4278, 1, "\u2D16"], [4279, 1, "\u2D17"], [4280, 1, "\u2D18"], [4281, 1, "\u2D19"], [4282, 1, "\u2D1A"], [4283, 1, "\u2D1B"], [4284, 1, "\u2D1C"], [4285, 1, "\u2D1D"], [4286, 1, "\u2D1E"], [4287, 1, "\u2D1F"], [4288, 1, "\u2D20"], [4289, 1, "\u2D21"], [4290, 1, "\u2D22"], [4291, 1, "\u2D23"], [4292, 1, "\u2D24"], [4293, 1, "\u2D25"], [4294, 3], [4295, 1, "\u2D27"], [[4296, 4300], 3], [4301, 1, "\u2D2D"], [[4302, 4303], 3], [[4304, 4342], 2], [[4343, 4344], 2], [[4345, 4346], 2], [4347, 2], [4348, 1, "\u10DC"], [[4349, 4351], 2], [[4352, 4441], 2], [[4442, 4446], 2], [[4447, 4448], 7], [[4449, 4514], 2], [[4515, 4519], 2], [[4520, 4601], 2], [[4602, 4607], 2], [[4608, 4614], 2], [4615, 2], [[4616, 4678], 2], [4679, 2], [4680, 2], [4681, 3], [[4682, 4685], 2], [[4686, 4687], 3], [[4688, 4694], 2], [4695, 3], [4696, 2], [4697, 3], [[4698, 4701], 2], [[4702, 4703], 3], [[4704, 4742], 2], [4743, 2], [4744, 2], [4745, 3], [[4746, 4749], 2], [[4750, 4751], 3], [[4752, 4782], 2], [4783, 2], [4784, 2], [4785, 3], [[4786, 4789], 2], [[4790, 4791], 3], [[4792, 4798], 2], [4799, 3], [4800, 2], [4801, 3], [[4802, 4805], 2], [[4806, 4807], 3], [[4808, 4814], 2], [4815, 2], [[4816, 4822], 2], [4823, 3], [[4824, 4846], 2], [4847, 2], [[4848, 4878], 2], [4879, 2], [4880, 2], [4881, 3], [[4882, 4885], 2], [[4886, 4887], 3], [[4888, 4894], 2], [4895, 2], [[4896, 4934], 2], [4935, 2], [[4936, 4954], 2], [[4955, 4956], 3], [[4957, 4958], 2], [4959, 2], [4960, 2], [[4961, 4988], 2], [[4989, 4991], 3], [[4992, 5007], 2], [[5008, 5017], 2], [[5018, 5023], 3], [[5024, 5108], 2], [5109, 2], [[5110, 5111], 3], [5112, 1, "\u13F0"], [5113, 1, "\u13F1"], [5114, 1, "\u13F2"], [5115, 1, "\u13F3"], [5116, 1, "\u13F4"], [5117, 1, "\u13F5"], [[5118, 5119], 3], [5120, 2], [[5121, 5740], 2], [[5741, 5742], 2], [[5743, 5750], 2], [[5751, 5759], 2], [5760, 3], [[5761, 5786], 2], [[5787, 5788], 2], [[5789, 5791], 3], [[5792, 5866], 2], [[5867, 5872], 2], [[5873, 5880], 2], [[5881, 5887], 3], [[5888, 5900], 2], [5901, 2], [[5902, 5908], 2], [5909, 2], [[5910, 5918], 3], [5919, 2], [[5920, 5940], 2], [[5941, 5942], 2], [[5943, 5951], 3], [[5952, 5971], 2], [[5972, 5983], 3], [[5984, 5996], 2], [5997, 3], [[5998, 6e3], 2], [6001, 3], [[6002, 6003], 2], [[6004, 6015], 3], [[6016, 6067], 2], [[6068, 6069], 7], [[6070, 6099], 2], [[6100, 6102], 2], [6103, 2], [[6104, 6107], 2], [6108, 2], [6109, 2], [[6110, 6111], 3], [[6112, 6121], 2], [[6122, 6127], 3], [[6128, 6137], 2], [[6138, 6143], 3], [[6144, 6154], 2], [[6155, 6158], 7], [6159, 7], [[6160, 6169], 2], [[6170, 6175], 3], [[6176, 6263], 2], [6264, 2], [[6265, 6271], 3], [[6272, 6313], 2], [6314, 2], [[6315, 6319], 3], [[6320, 6389], 2], [[6390, 6399], 3], [[6400, 6428], 2], [[6429, 6430], 2], [6431, 3], [[6432, 6443], 2], [[6444, 6447], 3], [[6448, 6459], 2], [[6460, 6463], 3], [6464, 2], [[6465, 6467], 3], [[6468, 6469], 2], [[6470, 6509], 2], [[6510, 6511], 3], [[6512, 6516], 2], [[6517, 6527], 3], [[6528, 6569], 2], [[6570, 6571], 2], [[6572, 6575], 3], [[6576, 6601], 2], [[6602, 6607], 3], [[6608, 6617], 2], [6618, 2], [[6619, 6621], 3], [[6622, 6623], 2], [[6624, 6655], 2], [[6656, 6683], 2], [[6684, 6685], 3], [[6686, 6687], 2], [[6688, 6750], 2], [6751, 3], [[6752, 6780], 2], [[6781, 6782], 3], [[6783, 6793], 2], [[6794, 6799], 3], [[6800, 6809], 2], [[6810, 6815], 3], [[6816, 6822], 2], [6823, 2], [[6824, 6829], 2], [[6830, 6831], 3], [[6832, 6845], 2], [6846, 2], [[6847, 6848], 2], [[6849, 6862], 2], [[6863, 6911], 3], [[6912, 6987], 2], [6988, 2], [6989, 3], [[6990, 6991], 2], [[6992, 7001], 2], [[7002, 7018], 2], [[7019, 7027], 2], [[7028, 7036], 2], [[7037, 7038], 2], [7039, 2], [[7040, 7082], 2], [[7083, 7085], 2], [[7086, 7097], 2], [[7098, 7103], 2], [[7104, 7155], 2], [[7156, 7163], 3], [[7164, 7167], 2], [[7168, 7223], 2], [[7224, 7226], 3], [[7227, 7231], 2], [[7232, 7241], 2], [[7242, 7244], 3], [[7245, 7293], 2], [[7294, 7295], 2], [7296, 1, "\u0432"], [7297, 1, "\u0434"], [7298, 1, "\u043E"], [7299, 1, "\u0441"], [[7300, 7301], 1, "\u0442"], [7302, 1, "\u044A"], [7303, 1, "\u0463"], [7304, 1, "\uA64B"], [7305, 1, "\u1C8A"], [7306, 2], [[7307, 7311], 3], [7312, 1, "\u10D0"], [7313, 1, "\u10D1"], [7314, 1, "\u10D2"], [7315, 1, "\u10D3"], [7316, 1, "\u10D4"], [7317, 1, "\u10D5"], [7318, 1, "\u10D6"], [7319, 1, "\u10D7"], [7320, 1, "\u10D8"], [7321, 1, "\u10D9"], [7322, 1, "\u10DA"], [7323, 1, "\u10DB"], [7324, 1, "\u10DC"], [7325, 1, "\u10DD"], [7326, 1, "\u10DE"], [7327, 1, "\u10DF"], [7328, 1, "\u10E0"], [7329, 1, "\u10E1"], [7330, 1, "\u10E2"], [7331, 1, "\u10E3"], [7332, 1, "\u10E4"], [7333, 1, "\u10E5"], [7334, 1, "\u10E6"], [7335, 1, "\u10E7"], [7336, 1, "\u10E8"], [7337, 1, "\u10E9"], [7338, 1, "\u10EA"], [7339, 1, "\u10EB"], [7340, 1, "\u10EC"], [7341, 1, "\u10ED"], [7342, 1, "\u10EE"], [7343, 1, "\u10EF"], [7344, 1, "\u10F0"], [7345, 1, "\u10F1"], [7346, 1, "\u10F2"], [7347, 1, "\u10F3"], [7348, 1, "\u10F4"], [7349, 1, "\u10F5"], [7350, 1, "\u10F6"], [7351, 1, "\u10F7"], [7352, 1, "\u10F8"], [7353, 1, "\u10F9"], [7354, 1, "\u10FA"], [[7355, 7356], 3], [7357, 1, "\u10FD"], [7358, 1, "\u10FE"], [7359, 1, "\u10FF"], [[7360, 7367], 2], [[7368, 7375], 3], [[7376, 7378], 2], [7379, 2], [[7380, 7410], 2], [[7411, 7414], 2], [7415, 2], [[7416, 7417], 2], [7418, 2], [[7419, 7423], 3], [[7424, 7467], 2], [7468, 1, "a"], [7469, 1, "\xE6"], [7470, 1, "b"], [7471, 2], [7472, 1, "d"], [7473, 1, "e"], [7474, 1, "\u01DD"], [7475, 1, "g"], [7476, 1, "h"], [7477, 1, "i"], [7478, 1, "j"], [7479, 1, "k"], [7480, 1, "l"], [7481, 1, "m"], [7482, 1, "n"], [7483, 2], [7484, 1, "o"], [7485, 1, "\u0223"], [7486, 1, "p"], [7487, 1, "r"], [7488, 1, "t"], [7489, 1, "u"], [7490, 1, "w"], [7491, 1, "a"], [7492, 1, "\u0250"], [7493, 1, "\u0251"], [7494, 1, "\u1D02"], [7495, 1, "b"], [7496, 1, "d"], [7497, 1, "e"], [7498, 1, "\u0259"], [7499, 1, "\u025B"], [7500, 1, "\u025C"], [7501, 1, "g"], [7502, 2], [7503, 1, "k"], [7504, 1, "m"], [7505, 1, "\u014B"], [7506, 1, "o"], [7507, 1, "\u0254"], [7508, 1, "\u1D16"], [7509, 1, "\u1D17"], [7510, 1, "p"], [7511, 1, "t"], [7512, 1, "u"], [7513, 1, "\u1D1D"], [7514, 1, "\u026F"], [7515, 1, "v"], [7516, 1, "\u1D25"], [7517, 1, "\u03B2"], [7518, 1, "\u03B3"], [7519, 1, "\u03B4"], [7520, 1, "\u03C6"], [7521, 1, "\u03C7"], [7522, 1, "i"], [7523, 1, "r"], [7524, 1, "u"], [7525, 1, "v"], [7526, 1, "\u03B2"], [7527, 1, "\u03B3"], [7528, 1, "\u03C1"], [7529, 1, "\u03C6"], [7530, 1, "\u03C7"], [7531, 2], [[7532, 7543], 2], [7544, 1, "\u043D"], [[7545, 7578], 2], [7579, 1, "\u0252"], [7580, 1, "c"], [7581, 1, "\u0255"], [7582, 1, "\xF0"], [7583, 1, "\u025C"], [7584, 1, "f"], [7585, 1, "\u025F"], [7586, 1, "\u0261"], [7587, 1, "\u0265"], [7588, 1, "\u0268"], [7589, 1, "\u0269"], [7590, 1, "\u026A"], [7591, 1, "\u1D7B"], [7592, 1, "\u029D"], [7593, 1, "\u026D"], [7594, 1, "\u1D85"], [7595, 1, "\u029F"], [7596, 1, "\u0271"], [7597, 1, "\u0270"], [7598, 1, "\u0272"], [7599, 1, "\u0273"], [7600, 1, "\u0274"], [7601, 1, "\u0275"], [7602, 1, "\u0278"], [7603, 1, "\u0282"], [7604, 1, "\u0283"], [7605, 1, "\u01AB"], [7606, 1, "\u0289"], [7607, 1, "\u028A"], [7608, 1, "\u1D1C"], [7609, 1, "\u028B"], [7610, 1, "\u028C"], [7611, 1, "z"], [7612, 1, "\u0290"], [7613, 1, "\u0291"], [7614, 1, "\u0292"], [7615, 1, "\u03B8"], [[7616, 7619], 2], [[7620, 7626], 2], [[7627, 7654], 2], [[7655, 7669], 2], [[7670, 7673], 2], [7674, 2], [7675, 2], [7676, 2], [7677, 2], [[7678, 7679], 2], [7680, 1, "\u1E01"], [7681, 2], [7682, 1, "\u1E03"], [7683, 2], [7684, 1, "\u1E05"], [7685, 2], [7686, 1, "\u1E07"], [7687, 2], [7688, 1, "\u1E09"], [7689, 2], [7690, 1, "\u1E0B"], [7691, 2], [7692, 1, "\u1E0D"], [7693, 2], [7694, 1, "\u1E0F"], [7695, 2], [7696, 1, "\u1E11"], [7697, 2], [7698, 1, "\u1E13"], [7699, 2], [7700, 1, "\u1E15"], [7701, 2], [7702, 1, "\u1E17"], [7703, 2], [7704, 1, "\u1E19"], [7705, 2], [7706, 1, "\u1E1B"], [7707, 2], [7708, 1, "\u1E1D"], [7709, 2], [7710, 1, "\u1E1F"], [7711, 2], [7712, 1, "\u1E21"], [7713, 2], [7714, 1, "\u1E23"], [7715, 2], [7716, 1, "\u1E25"], [7717, 2], [7718, 1, "\u1E27"], [7719, 2], [7720, 1, "\u1E29"], [7721, 2], [7722, 1, "\u1E2B"], [7723, 2], [7724, 1, "\u1E2D"], [7725, 2], [7726, 1, "\u1E2F"], [7727, 2], [7728, 1, "\u1E31"], [7729, 2], [7730, 1, "\u1E33"], [7731, 2], [7732, 1, "\u1E35"], [7733, 2], [7734, 1, "\u1E37"], [7735, 2], [7736, 1, "\u1E39"], [7737, 2], [7738, 1, "\u1E3B"], [7739, 2], [7740, 1, "\u1E3D"], [7741, 2], [7742, 1, "\u1E3F"], [7743, 2], [7744, 1, "\u1E41"], [7745, 2], [7746, 1, "\u1E43"], [7747, 2], [7748, 1, "\u1E45"], [7749, 2], [7750, 1, "\u1E47"], [7751, 2], [7752, 1, "\u1E49"], [7753, 2], [7754, 1, "\u1E4B"], [7755, 2], [7756, 1, "\u1E4D"], [7757, 2], [7758, 1, "\u1E4F"], [7759, 2], [7760, 1, "\u1E51"], [7761, 2], [7762, 1, "\u1E53"], [7763, 2], [7764, 1, "\u1E55"], [7765, 2], [7766, 1, "\u1E57"], [7767, 2], [7768, 1, "\u1E59"], [7769, 2], [7770, 1, "\u1E5B"], [7771, 2], [7772, 1, "\u1E5D"], [7773, 2], [7774, 1, "\u1E5F"], [7775, 2], [7776, 1, "\u1E61"], [7777, 2], [7778, 1, "\u1E63"], [7779, 2], [7780, 1, "\u1E65"], [7781, 2], [7782, 1, "\u1E67"], [7783, 2], [7784, 1, "\u1E69"], [7785, 2], [7786, 1, "\u1E6B"], [7787, 2], [7788, 1, "\u1E6D"], [7789, 2], [7790, 1, "\u1E6F"], [7791, 2], [7792, 1, "\u1E71"], [7793, 2], [7794, 1, "\u1E73"], [7795, 2], [7796, 1, "\u1E75"], [7797, 2], [7798, 1, "\u1E77"], [7799, 2], [7800, 1, "\u1E79"], [7801, 2], [7802, 1, "\u1E7B"], [7803, 2], [7804, 1, "\u1E7D"], [7805, 2], [7806, 1, "\u1E7F"], [7807, 2], [7808, 1, "\u1E81"], [7809, 2], [7810, 1, "\u1E83"], [7811, 2], [7812, 1, "\u1E85"], [7813, 2], [7814, 1, "\u1E87"], [7815, 2], [7816, 1, "\u1E89"], [7817, 2], [7818, 1, "\u1E8B"], [7819, 2], [7820, 1, "\u1E8D"], [7821, 2], [7822, 1, "\u1E8F"], [7823, 2], [7824, 1, "\u1E91"], [7825, 2], [7826, 1, "\u1E93"], [7827, 2], [7828, 1, "\u1E95"], [[7829, 7833], 2], [7834, 1, "a\u02BE"], [7835, 1, "\u1E61"], [[7836, 7837], 2], [7838, 1, "\xDF"], [7839, 2], [7840, 1, "\u1EA1"], [7841, 2], [7842, 1, "\u1EA3"], [7843, 2], [7844, 1, "\u1EA5"], [7845, 2], [7846, 1, "\u1EA7"], [7847, 2], [7848, 1, "\u1EA9"], [7849, 2], [7850, 1, "\u1EAB"], [7851, 2], [7852, 1, "\u1EAD"], [7853, 2], [7854, 1, "\u1EAF"], [7855, 2], [7856, 1, "\u1EB1"], [7857, 2], [7858, 1, "\u1EB3"], [7859, 2], [7860, 1, "\u1EB5"], [7861, 2], [7862, 1, "\u1EB7"], [7863, 2], [7864, 1, "\u1EB9"], [7865, 2], [7866, 1, "\u1EBB"], [7867, 2], [7868, 1, "\u1EBD"], [7869, 2], [7870, 1, "\u1EBF"], [7871, 2], [7872, 1, "\u1EC1"], [7873, 2], [7874, 1, "\u1EC3"], [7875, 2], [7876, 1, "\u1EC5"], [7877, 2], [7878, 1, "\u1EC7"], [7879, 2], [7880, 1, "\u1EC9"], [7881, 2], [7882, 1, "\u1ECB"], [7883, 2], [7884, 1, "\u1ECD"], [7885, 2], [7886, 1, "\u1ECF"], [7887, 2], [7888, 1, "\u1ED1"], [7889, 2], [7890, 1, "\u1ED3"], [7891, 2], [7892, 1, "\u1ED5"], [7893, 2], [7894, 1, "\u1ED7"], [7895, 2], [7896, 1, "\u1ED9"], [7897, 2], [7898, 1, "\u1EDB"], [7899, 2], [7900, 1, "\u1EDD"], [7901, 2], [7902, 1, "\u1EDF"], [7903, 2], [7904, 1, "\u1EE1"], [7905, 2], [7906, 1, "\u1EE3"], [7907, 2], [7908, 1, "\u1EE5"], [7909, 2], [7910, 1, "\u1EE7"], [7911, 2], [7912, 1, "\u1EE9"], [7913, 2], [7914, 1, "\u1EEB"], [7915, 2], [7916, 1, "\u1EED"], [7917, 2], [7918, 1, "\u1EEF"], [7919, 2], [7920, 1, "\u1EF1"], [7921, 2], [7922, 1, "\u1EF3"], [7923, 2], [7924, 1, "\u1EF5"], [7925, 2], [7926, 1, "\u1EF7"], [7927, 2], [7928, 1, "\u1EF9"], [7929, 2], [7930, 1, "\u1EFB"], [7931, 2], [7932, 1, "\u1EFD"], [7933, 2], [7934, 1, "\u1EFF"], [7935, 2], [[7936, 7943], 2], [7944, 1, "\u1F00"], [7945, 1, "\u1F01"], [7946, 1, "\u1F02"], [7947, 1, "\u1F03"], [7948, 1, "\u1F04"], [7949, 1, "\u1F05"], [7950, 1, "\u1F06"], [7951, 1, "\u1F07"], [[7952, 7957], 2], [[7958, 7959], 3], [7960, 1, "\u1F10"], [7961, 1, "\u1F11"], [7962, 1, "\u1F12"], [7963, 1, "\u1F13"], [7964, 1, "\u1F14"], [7965, 1, "\u1F15"], [[7966, 7967], 3], [[7968, 7975], 2], [7976, 1, "\u1F20"], [7977, 1, "\u1F21"], [7978, 1, "\u1F22"], [7979, 1, "\u1F23"], [7980, 1, "\u1F24"], [7981, 1, "\u1F25"], [7982, 1, "\u1F26"], [7983, 1, "\u1F27"], [[7984, 7991], 2], [7992, 1, "\u1F30"], [7993, 1, "\u1F31"], [7994, 1, "\u1F32"], [7995, 1, "\u1F33"], [7996, 1, "\u1F34"], [7997, 1, "\u1F35"], [7998, 1, "\u1F36"], [7999, 1, "\u1F37"], [[8e3, 8005], 2], [[8006, 8007], 3], [8008, 1, "\u1F40"], [8009, 1, "\u1F41"], [8010, 1, "\u1F42"], [8011, 1, "\u1F43"], [8012, 1, "\u1F44"], [8013, 1, "\u1F45"], [[8014, 8015], 3], [[8016, 8023], 2], [8024, 3], [8025, 1, "\u1F51"], [8026, 3], [8027, 1, "\u1F53"], [8028, 3], [8029, 1, "\u1F55"], [8030, 3], [8031, 1, "\u1F57"], [[8032, 8039], 2], [8040, 1, "\u1F60"], [8041, 1, "\u1F61"], [8042, 1, "\u1F62"], [8043, 1, "\u1F63"], [8044, 1, "\u1F64"], [8045, 1, "\u1F65"], [8046, 1, "\u1F66"], [8047, 1, "\u1F67"], [8048, 2], [8049, 1, "\u03AC"], [8050, 2], [8051, 1, "\u03AD"], [8052, 2], [8053, 1, "\u03AE"], [8054, 2], [8055, 1, "\u03AF"], [8056, 2], [8057, 1, "\u03CC"], [8058, 2], [8059, 1, "\u03CD"], [8060, 2], [8061, 1, "\u03CE"], [[8062, 8063], 3], [8064, 1, "\u1F00\u03B9"], [8065, 1, "\u1F01\u03B9"], [8066, 1, "\u1F02\u03B9"], [8067, 1, "\u1F03\u03B9"], [8068, 1, "\u1F04\u03B9"], [8069, 1, "\u1F05\u03B9"], [8070, 1, "\u1F06\u03B9"], [8071, 1, "\u1F07\u03B9"], [8072, 1, "\u1F00\u03B9"], [8073, 1, "\u1F01\u03B9"], [8074, 1, "\u1F02\u03B9"], [8075, 1, "\u1F03\u03B9"], [8076, 1, "\u1F04\u03B9"], [8077, 1, "\u1F05\u03B9"], [8078, 1, "\u1F06\u03B9"], [8079, 1, "\u1F07\u03B9"], [8080, 1, "\u1F20\u03B9"], [8081, 1, "\u1F21\u03B9"], [8082, 1, "\u1F22\u03B9"], [8083, 1, "\u1F23\u03B9"], [8084, 1, "\u1F24\u03B9"], [8085, 1, "\u1F25\u03B9"], [8086, 1, "\u1F26\u03B9"], [8087, 1, "\u1F27\u03B9"], [8088, 1, "\u1F20\u03B9"], [8089, 1, "\u1F21\u03B9"], [8090, 1, "\u1F22\u03B9"], [8091, 1, "\u1F23\u03B9"], [8092, 1, "\u1F24\u03B9"], [8093, 1, "\u1F25\u03B9"], [8094, 1, "\u1F26\u03B9"], [8095, 1, "\u1F27\u03B9"], [8096, 1, "\u1F60\u03B9"], [8097, 1, "\u1F61\u03B9"], [8098, 1, "\u1F62\u03B9"], [8099, 1, "\u1F63\u03B9"], [8100, 1, "\u1F64\u03B9"], [8101, 1, "\u1F65\u03B9"], [8102, 1, "\u1F66\u03B9"], [8103, 1, "\u1F67\u03B9"], [8104, 1, "\u1F60\u03B9"], [8105, 1, "\u1F61\u03B9"], [8106, 1, "\u1F62\u03B9"], [8107, 1, "\u1F63\u03B9"], [8108, 1, "\u1F64\u03B9"], [8109, 1, "\u1F65\u03B9"], [8110, 1, "\u1F66\u03B9"], [8111, 1, "\u1F67\u03B9"], [[8112, 8113], 2], [8114, 1, "\u1F70\u03B9"], [8115, 1, "\u03B1\u03B9"], [8116, 1, "\u03AC\u03B9"], [8117, 3], [8118, 2], [8119, 1, "\u1FB6\u03B9"], [8120, 1, "\u1FB0"], [8121, 1, "\u1FB1"], [8122, 1, "\u1F70"], [8123, 1, "\u03AC"], [8124, 1, "\u03B1\u03B9"], [8125, 1, " \u0313"], [8126, 1, "\u03B9"], [8127, 1, " \u0313"], [8128, 1, " \u0342"], [8129, 1, " \u0308\u0342"], [8130, 1, "\u1F74\u03B9"], [8131, 1, "\u03B7\u03B9"], [8132, 1, "\u03AE\u03B9"], [8133, 3], [8134, 2], [8135, 1, "\u1FC6\u03B9"], [8136, 1, "\u1F72"], [8137, 1, "\u03AD"], [8138, 1, "\u1F74"], [8139, 1, "\u03AE"], [8140, 1, "\u03B7\u03B9"], [8141, 1, " \u0313\u0300"], [8142, 1, " \u0313\u0301"], [8143, 1, " \u0313\u0342"], [[8144, 8146], 2], [8147, 1, "\u0390"], [[8148, 8149], 3], [[8150, 8151], 2], [8152, 1, "\u1FD0"], [8153, 1, "\u1FD1"], [8154, 1, "\u1F76"], [8155, 1, "\u03AF"], [8156, 3], [8157, 1, " \u0314\u0300"], [8158, 1, " \u0314\u0301"], [8159, 1, " \u0314\u0342"], [[8160, 8162], 2], [8163, 1, "\u03B0"], [[8164, 8167], 2], [8168, 1, "\u1FE0"], [8169, 1, "\u1FE1"], [8170, 1, "\u1F7A"], [8171, 1, "\u03CD"], [8172, 1, "\u1FE5"], [8173, 1, " \u0308\u0300"], [8174, 1, " \u0308\u0301"], [8175, 1, "`"], [[8176, 8177], 3], [8178, 1, "\u1F7C\u03B9"], [8179, 1, "\u03C9\u03B9"], [8180, 1, "\u03CE\u03B9"], [8181, 3], [8182, 2], [8183, 1, "\u1FF6\u03B9"], [8184, 1, "\u1F78"], [8185, 1, "\u03CC"], [8186, 1, "\u1F7C"], [8187, 1, "\u03CE"], [8188, 1, "\u03C9\u03B9"], [8189, 1, " \u0301"], [8190, 1, " \u0314"], [8191, 3], [[8192, 8202], 1, " "], [8203, 7], [[8204, 8205], 6, ""], [[8206, 8207], 3], [8208, 2], [8209, 1, "\u2010"], [[8210, 8214], 2], [8215, 1, " \u0333"], [[8216, 8227], 2], [[8228, 8230], 3], [8231, 2], [[8232, 8238], 3], [8239, 1, " "], [[8240, 8242], 2], [8243, 1, "\u2032\u2032"], [8244, 1, "\u2032\u2032\u2032"], [8245, 2], [8246, 1, "\u2035\u2035"], [8247, 1, "\u2035\u2035\u2035"], [[8248, 8251], 2], [8252, 1, "!!"], [8253, 2], [8254, 1, " \u0305"], [[8255, 8262], 2], [8263, 1, "??"], [8264, 1, "?!"], [8265, 1, "!?"], [[8266, 8269], 2], [[8270, 8274], 2], [[8275, 8276], 2], [[8277, 8278], 2], [8279, 1, "\u2032\u2032\u2032\u2032"], [[8280, 8286], 2], [8287, 1, " "], [[8288, 8291], 7], [8292, 7], [8293, 3], [[8294, 8297], 3], [[8298, 8303], 7], [8304, 1, "0"], [8305, 1, "i"], [[8306, 8307], 3], [8308, 1, "4"], [8309, 1, "5"], [8310, 1, "6"], [8311, 1, "7"], [8312, 1, "8"], [8313, 1, "9"], [8314, 1, "+"], [8315, 1, "\u2212"], [8316, 1, "="], [8317, 1, "("], [8318, 1, ")"], [8319, 1, "n"], [8320, 1, "0"], [8321, 1, "1"], [8322, 1, "2"], [8323, 1, "3"], [8324, 1, "4"], [8325, 1, "5"], [8326, 1, "6"], [8327, 1, "7"], [8328, 1, "8"], [8329, 1, "9"], [8330, 1, "+"], [8331, 1, "\u2212"], [8332, 1, "="], [8333, 1, "("], [8334, 1, ")"], [8335, 3], [8336, 1, "a"], [8337, 1, "e"], [8338, 1, "o"], [8339, 1, "x"], [8340, 1, "\u0259"], [8341, 1, "h"], [8342, 1, "k"], [8343, 1, "l"], [8344, 1, "m"], [8345, 1, "n"], [8346, 1, "p"], [8347, 1, "s"], [8348, 1, "t"], [[8349, 8351], 3], [[8352, 8359], 2], [8360, 1, "rs"], [[8361, 8362], 2], [8363, 2], [8364, 2], [[8365, 8367], 2], [[8368, 8369], 2], [[8370, 8373], 2], [[8374, 8376], 2], [8377, 2], [8378, 2], [[8379, 8381], 2], [8382, 2], [8383, 2], [8384, 2], [[8385, 8399], 3], [[8400, 8417], 2], [[8418, 8419], 2], [[8420, 8426], 2], [8427, 2], [[8428, 8431], 2], [8432, 2], [[8433, 8447], 3], [8448, 1, "a/c"], [8449, 1, "a/s"], [8450, 1, "c"], [8451, 1, "\xB0c"], [8452, 2], [8453, 1, "c/o"], [8454, 1, "c/u"], [8455, 1, "\u025B"], [8456, 2], [8457, 1, "\xB0f"], [8458, 1, "g"], [[8459, 8462], 1, "h"], [8463, 1, "\u0127"], [[8464, 8465], 1, "i"], [[8466, 8467], 1, "l"], [8468, 2], [8469, 1, "n"], [8470, 1, "no"], [[8471, 8472], 2], [8473, 1, "p"], [8474, 1, "q"], [[8475, 8477], 1, "r"], [[8478, 8479], 2], [8480, 1, "sm"], [8481, 1, "tel"], [8482, 1, "tm"], [8483, 2], [8484, 1, "z"], [8485, 2], [8486, 1, "\u03C9"], [8487, 2], [8488, 1, "z"], [8489, 2], [8490, 1, "k"], [8491, 1, "\xE5"], [8492, 1, "b"], [8493, 1, "c"], [8494, 2], [[8495, 8496], 1, "e"], [8497, 1, "f"], [8498, 1, "\u214E"], [8499, 1, "m"], [8500, 1, "o"], [8501, 1, "\u05D0"], [8502, 1, "\u05D1"], [8503, 1, "\u05D2"], [8504, 1, "\u05D3"], [8505, 1, "i"], [8506, 2], [8507, 1, "fax"], [8508, 1, "\u03C0"], [[8509, 8510], 1, "\u03B3"], [8511, 1, "\u03C0"], [8512, 1, "\u2211"], [[8513, 8516], 2], [[8517, 8518], 1, "d"], [8519, 1, "e"], [8520, 1, "i"], [8521, 1, "j"], [[8522, 8523], 2], [8524, 2], [8525, 2], [8526, 2], [8527, 2], [8528, 1, "1\u20447"], [8529, 1, "1\u20449"], [8530, 1, "1\u204410"], [8531, 1, "1\u20443"], [8532, 1, "2\u20443"], [8533, 1, "1\u20445"], [8534, 1, "2\u20445"], [8535, 1, "3\u20445"], [8536, 1, "4\u20445"], [8537, 1, "1\u20446"], [8538, 1, "5\u20446"], [8539, 1, "1\u20448"], [8540, 1, "3\u20448"], [8541, 1, "5\u20448"], [8542, 1, "7\u20448"], [8543, 1, "1\u2044"], [8544, 1, "i"], [8545, 1, "ii"], [8546, 1, "iii"], [8547, 1, "iv"], [8548, 1, "v"], [8549, 1, "vi"], [8550, 1, "vii"], [8551, 1, "viii"], [8552, 1, "ix"], [8553, 1, "x"], [8554, 1, "xi"], [8555, 1, "xii"], [8556, 1, "l"], [8557, 1, "c"], [8558, 1, "d"], [8559, 1, "m"], [8560, 1, "i"], [8561, 1, "ii"], [8562, 1, "iii"], [8563, 1, "iv"], [8564, 1, "v"], [8565, 1, "vi"], [8566, 1, "vii"], [8567, 1, "viii"], [8568, 1, "ix"], [8569, 1, "x"], [8570, 1, "xi"], [8571, 1, "xii"], [8572, 1, "l"], [8573, 1, "c"], [8574, 1, "d"], [8575, 1, "m"], [[8576, 8578], 2], [8579, 1, "\u2184"], [8580, 2], [[8581, 8584], 2], [8585, 1, "0\u20443"], [[8586, 8587], 2], [[8588, 8591], 3], [[8592, 8682], 2], [[8683, 8691], 2], [[8692, 8703], 2], [[8704, 8747], 2], [8748, 1, "\u222B\u222B"], [8749, 1, "\u222B\u222B\u222B"], [8750, 2], [8751, 1, "\u222E\u222E"], [8752, 1, "\u222E\u222E\u222E"], [[8753, 8945], 2], [[8946, 8959], 2], [8960, 2], [8961, 2], [[8962, 9e3], 2], [9001, 1, "\u3008"], [9002, 1, "\u3009"], [[9003, 9082], 2], [9083, 2], [9084, 2], [[9085, 9114], 2], [[9115, 9166], 2], [[9167, 9168], 2], [[9169, 9179], 2], [[9180, 9191], 2], [9192, 2], [[9193, 9203], 2], [[9204, 9210], 2], [[9211, 9214], 2], [9215, 2], [[9216, 9252], 2], [[9253, 9254], 2], [[9255, 9257], 2], [[9258, 9279], 3], [[9280, 9290], 2], [[9291, 9311], 3], [9312, 1, "1"], [9313, 1, "2"], [9314, 1, "3"], [9315, 1, "4"], [9316, 1, "5"], [9317, 1, "6"], [9318, 1, "7"], [9319, 1, "8"], [9320, 1, "9"], [9321, 1, "10"], [9322, 1, "11"], [9323, 1, "12"], [9324, 1, "13"], [9325, 1, "14"], [9326, 1, "15"], [9327, 1, "16"], [9328, 1, "17"], [9329, 1, "18"], [9330, 1, "19"], [9331, 1, "20"], [9332, 1, "(1)"], [9333, 1, "(2)"], [9334, 1, "(3)"], [9335, 1, "(4)"], [9336, 1, "(5)"], [9337, 1, "(6)"], [9338, 1, "(7)"], [9339, 1, "(8)"], [9340, 1, "(9)"], [9341, 1, "(10)"], [9342, 1, "(11)"], [9343, 1, "(12)"], [9344, 1, "(13)"], [9345, 1, "(14)"], [9346, 1, "(15)"], [9347, 1, "(16)"], [9348, 1, "(17)"], [9349, 1, "(18)"], [9350, 1, "(19)"], [9351, 1, "(20)"], [[9352, 9371], 3], [9372, 1, "(a)"], [9373, 1, "(b)"], [9374, 1, "(c)"], [9375, 1, "(d)"], [9376, 1, "(e)"], [9377, 1, "(f)"], [9378, 1, "(g)"], [9379, 1, "(h)"], [9380, 1, "(i)"], [9381, 1, "(j)"], [9382, 1, "(k)"], [9383, 1, "(l)"], [9384, 1, "(m)"], [9385, 1, "(n)"], [9386, 1, "(o)"], [9387, 1, "(p)"], [9388, 1, "(q)"], [9389, 1, "(r)"], [9390, 1, "(s)"], [9391, 1, "(t)"], [9392, 1, "(u)"], [9393, 1, "(v)"], [9394, 1, "(w)"], [9395, 1, "(x)"], [9396, 1, "(y)"], [9397, 1, "(z)"], [9398, 1, "a"], [9399, 1, "b"], [9400, 1, "c"], [9401, 1, "d"], [9402, 1, "e"], [9403, 1, "f"], [9404, 1, "g"], [9405, 1, "h"], [9406, 1, "i"], [9407, 1, "j"], [9408, 1, "k"], [9409, 1, "l"], [9410, 1, "m"], [9411, 1, "n"], [9412, 1, "o"], [9413, 1, "p"], [9414, 1, "q"], [9415, 1, "r"], [9416, 1, "s"], [9417, 1, "t"], [9418, 1, "u"], [9419, 1, "v"], [9420, 1, "w"], [9421, 1, "x"], [9422, 1, "y"], [9423, 1, "z"], [9424, 1, "a"], [9425, 1, "b"], [9426, 1, "c"], [9427, 1, "d"], [9428, 1, "e"], [9429, 1, "f"], [9430, 1, "g"], [9431, 1, "h"], [9432, 1, "i"], [9433, 1, "j"], [9434, 1, "k"], [9435, 1, "l"], [9436, 1, "m"], [9437, 1, "n"], [9438, 1, "o"], [9439, 1, "p"], [9440, 1, "q"], [9441, 1, "r"], [9442, 1, "s"], [9443, 1, "t"], [9444, 1, "u"], [9445, 1, "v"], [9446, 1, "w"], [9447, 1, "x"], [9448, 1, "y"], [9449, 1, "z"], [9450, 1, "0"], [[9451, 9470], 2], [9471, 2], [[9472, 9621], 2], [[9622, 9631], 2], [[9632, 9711], 2], [[9712, 9719], 2], [[9720, 9727], 2], [[9728, 9747], 2], [[9748, 9749], 2], [[9750, 9751], 2], [9752, 2], [9753, 2], [[9754, 9839], 2], [[9840, 9841], 2], [[9842, 9853], 2], [[9854, 9855], 2], [[9856, 9865], 2], [[9866, 9873], 2], [[9874, 9884], 2], [9885, 2], [[9886, 9887], 2], [[9888, 9889], 2], [[9890, 9905], 2], [9906, 2], [[9907, 9916], 2], [[9917, 9919], 2], [[9920, 9923], 2], [[9924, 9933], 2], [9934, 2], [[9935, 9953], 2], [9954, 2], [9955, 2], [[9956, 9959], 2], [[9960, 9983], 2], [9984, 2], [[9985, 9988], 2], [9989, 2], [[9990, 9993], 2], [[9994, 9995], 2], [[9996, 10023], 2], [10024, 2], [[10025, 10059], 2], [10060, 2], [10061, 2], [10062, 2], [[10063, 10066], 2], [[10067, 10069], 2], [10070, 2], [10071, 2], [[10072, 10078], 2], [[10079, 10080], 2], [[10081, 10087], 2], [[10088, 10101], 2], [[10102, 10132], 2], [[10133, 10135], 2], [[10136, 10159], 2], [10160, 2], [[10161, 10174], 2], [10175, 2], [[10176, 10182], 2], [[10183, 10186], 2], [10187, 2], [10188, 2], [10189, 2], [[10190, 10191], 2], [[10192, 10219], 2], [[10220, 10223], 2], [[10224, 10239], 2], [[10240, 10495], 2], [[10496, 10763], 2], [10764, 1, "\u222B\u222B\u222B\u222B"], [[10765, 10867], 2], [10868, 1, "::="], [10869, 1, "=="], [10870, 1, "==="], [[10871, 10971], 2], [10972, 1, "\u2ADD\u0338"], [[10973, 11007], 2], [[11008, 11021], 2], [[11022, 11027], 2], [[11028, 11034], 2], [[11035, 11039], 2], [[11040, 11043], 2], [[11044, 11084], 2], [[11085, 11087], 2], [[11088, 11092], 2], [[11093, 11097], 2], [[11098, 11123], 2], [[11124, 11125], 3], [[11126, 11157], 2], [11158, 3], [11159, 2], [[11160, 11193], 2], [[11194, 11196], 2], [[11197, 11208], 2], [11209, 2], [[11210, 11217], 2], [11218, 2], [[11219, 11243], 2], [[11244, 11247], 2], [[11248, 11262], 2], [11263, 2], [11264, 1, "\u2C30"], [11265, 1, "\u2C31"], [11266, 1, "\u2C32"], [11267, 1, "\u2C33"], [11268, 1, "\u2C34"], [11269, 1, "\u2C35"], [11270, 1, "\u2C36"], [11271, 1, "\u2C37"], [11272, 1, "\u2C38"], [11273, 1, "\u2C39"], [11274, 1, "\u2C3A"], [11275, 1, "\u2C3B"], [11276, 1, "\u2C3C"], [11277, 1, "\u2C3D"], [11278, 1, "\u2C3E"], [11279, 1, "\u2C3F"], [11280, 1, "\u2C40"], [11281, 1, "\u2C41"], [11282, 1, "\u2C42"], [11283, 1, "\u2C43"], [11284, 1, "\u2C44"], [11285, 1, "\u2C45"], [11286, 1, "\u2C46"], [11287, 1, "\u2C47"], [11288, 1, "\u2C48"], [11289, 1, "\u2C49"], [11290, 1, "\u2C4A"], [11291, 1, "\u2C4B"], [11292, 1, "\u2C4C"], [11293, 1, "\u2C4D"], [11294, 1, "\u2C4E"], [11295, 1, "\u2C4F"], [11296, 1, "\u2C50"], [11297, 1, "\u2C51"], [11298, 1, "\u2C52"], [11299, 1, "\u2C53"], [11300, 1, "\u2C54"], [11301, 1, "\u2C55"], [11302, 1, "\u2C56"], [11303, 1, "\u2C57"], [11304, 1, "\u2C58"], [11305, 1, "\u2C59"], [11306, 1, "\u2C5A"], [11307, 1, "\u2C5B"], [11308, 1, "\u2C5C"], [11309, 1, "\u2C5D"], [11310, 1, "\u2C5E"], [11311, 1, "\u2C5F"], [[11312, 11358], 2], [11359, 2], [11360, 1, "\u2C61"], [11361, 2], [11362, 1, "\u026B"], [11363, 1, "\u1D7D"], [11364, 1, "\u027D"], [[11365, 11366], 2], [11367, 1, "\u2C68"], [11368, 2], [11369, 1, "\u2C6A"], [11370, 2], [11371, 1, "\u2C6C"], [11372, 2], [11373, 1, "\u0251"], [11374, 1, "\u0271"], [11375, 1, "\u0250"], [11376, 1, "\u0252"], [11377, 2], [11378, 1, "\u2C73"], [11379, 2], [11380, 2], [11381, 1, "\u2C76"], [[11382, 11383], 2], [[11384, 11387], 2], [11388, 1, "j"], [11389, 1, "v"], [11390, 1, "\u023F"], [11391, 1, "\u0240"], [11392, 1, "\u2C81"], [11393, 2], [11394, 1, "\u2C83"], [11395, 2], [11396, 1, "\u2C85"], [11397, 2], [11398, 1, "\u2C87"], [11399, 2], [11400, 1, "\u2C89"], [11401, 2], [11402, 1, "\u2C8B"], [11403, 2], [11404, 1, "\u2C8D"], [11405, 2], [11406, 1, "\u2C8F"], [11407, 2], [11408, 1, "\u2C91"], [11409, 2], [11410, 1, "\u2C93"], [11411, 2], [11412, 1, "\u2C95"], [11413, 2], [11414, 1, "\u2C97"], [11415, 2], [11416, 1, "\u2C99"], [11417, 2], [11418, 1, "\u2C9B"], [11419, 2], [11420, 1, "\u2C9D"], [11421, 2], [11422, 1, "\u2C9F"], [11423, 2], [11424, 1, "\u2CA1"], [11425, 2], [11426, 1, "\u2CA3"], [11427, 2], [11428, 1, "\u2CA5"], [11429, 2], [11430, 1, "\u2CA7"], [11431, 2], [11432, 1, "\u2CA9"], [11433, 2], [11434, 1, "\u2CAB"], [11435, 2], [11436, 1, "\u2CAD"], [11437, 2], [11438, 1, "\u2CAF"], [11439, 2], [11440, 1, "\u2CB1"], [11441, 2], [11442, 1, "\u2CB3"], [11443, 2], [11444, 1, "\u2CB5"], [11445, 2], [11446, 1, "\u2CB7"], [11447, 2], [11448, 1, "\u2CB9"], [11449, 2], [11450, 1, "\u2CBB"], [11451, 2], [11452, 1, "\u2CBD"], [11453, 2], [11454, 1, "\u2CBF"], [11455, 2], [11456, 1, "\u2CC1"], [11457, 2], [11458, 1, "\u2CC3"], [11459, 2], [11460, 1, "\u2CC5"], [11461, 2], [11462, 1, "\u2CC7"], [11463, 2], [11464, 1, "\u2CC9"], [11465, 2], [11466, 1, "\u2CCB"], [11467, 2], [11468, 1, "\u2CCD"], [11469, 2], [11470, 1, "\u2CCF"], [11471, 2], [11472, 1, "\u2CD1"], [11473, 2], [11474, 1, "\u2CD3"], [11475, 2], [11476, 1, "\u2CD5"], [11477, 2], [11478, 1, "\u2CD7"], [11479, 2], [11480, 1, "\u2CD9"], [11481, 2], [11482, 1, "\u2CDB"], [11483, 2], [11484, 1, "\u2CDD"], [11485, 2], [11486, 1, "\u2CDF"], [11487, 2], [11488, 1, "\u2CE1"], [11489, 2], [11490, 1, "\u2CE3"], [[11491, 11492], 2], [[11493, 11498], 2], [11499, 1, "\u2CEC"], [11500, 2], [11501, 1, "\u2CEE"], [[11502, 11505], 2], [11506, 1, "\u2CF3"], [11507, 2], [[11508, 11512], 3], [[11513, 11519], 2], [[11520, 11557], 2], [11558, 3], [11559, 2], [[11560, 11564], 3], [11565, 2], [[11566, 11567], 3], [[11568, 11621], 2], [[11622, 11623], 2], [[11624, 11630], 3], [11631, 1, "\u2D61"], [11632, 2], [[11633, 11646], 3], [11647, 2], [[11648, 11670], 2], [[11671, 11679], 3], [[11680, 11686], 2], [11687, 3], [[11688, 11694], 2], [11695, 3], [[11696, 11702], 2], [11703, 3], [[11704, 11710], 2], [11711, 3], [[11712, 11718], 2], [11719, 3], [[11720, 11726], 2], [11727, 3], [[11728, 11734], 2], [11735, 3], [[11736, 11742], 2], [11743, 3], [[11744, 11775], 2], [[11776, 11799], 2], [[11800, 11803], 2], [[11804, 11805], 2], [[11806, 11822], 2], [11823, 2], [11824, 2], [11825, 2], [[11826, 11835], 2], [[11836, 11842], 2], [[11843, 11844], 2], [[11845, 11849], 2], [[11850, 11854], 2], [11855, 2], [[11856, 11858], 2], [[11859, 11869], 2], [[11870, 11903], 3], [[11904, 11929], 2], [11930, 3], [[11931, 11934], 2], [11935, 1, "\u6BCD"], [[11936, 12018], 2], [12019, 1, "\u9F9F"], [[12020, 12031], 3], [12032, 1, "\u4E00"], [12033, 1, "\u4E28"], [12034, 1, "\u4E36"], [12035, 1, "\u4E3F"], [12036, 1, "\u4E59"], [12037, 1, "\u4E85"], [12038, 1, "\u4E8C"], [12039, 1, "\u4EA0"], [12040, 1, "\u4EBA"], [12041, 1, "\u513F"], [12042, 1, "\u5165"], [12043, 1, "\u516B"], [12044, 1, "\u5182"], [12045, 1, "\u5196"], [12046, 1, "\u51AB"], [12047, 1, "\u51E0"], [12048, 1, "\u51F5"], [12049, 1, "\u5200"], [12050, 1, "\u529B"], [12051, 1, "\u52F9"], [12052, 1, "\u5315"], [12053, 1, "\u531A"], [12054, 1, "\u5338"], [12055, 1, "\u5341"], [12056, 1, "\u535C"], [12057, 1, "\u5369"], [12058, 1, "\u5382"], [12059, 1, "\u53B6"], [12060, 1, "\u53C8"], [12061, 1, "\u53E3"], [12062, 1, "\u56D7"], [12063, 1, "\u571F"], [12064, 1, "\u58EB"], [12065, 1, "\u5902"], [12066, 1, "\u590A"], [12067, 1, "\u5915"], [12068, 1, "\u5927"], [12069, 1, "\u5973"], [12070, 1, "\u5B50"], [12071, 1, "\u5B80"], [12072, 1, "\u5BF8"], [12073, 1, "\u5C0F"], [12074, 1, "\u5C22"], [12075, 1, "\u5C38"], [12076, 1, "\u5C6E"], [12077, 1, "\u5C71"], [12078, 1, "\u5DDB"], [12079, 1, "\u5DE5"], [12080, 1, "\u5DF1"], [12081, 1, "\u5DFE"], [12082, 1, "\u5E72"], [12083, 1, "\u5E7A"], [12084, 1, "\u5E7F"], [12085, 1, "\u5EF4"], [12086, 1, "\u5EFE"], [12087, 1, "\u5F0B"], [12088, 1, "\u5F13"], [12089, 1, "\u5F50"], [12090, 1, "\u5F61"], [12091, 1, "\u5F73"], [12092, 1, "\u5FC3"], [12093, 1, "\u6208"], [12094, 1, "\u6236"], [12095, 1, "\u624B"], [12096, 1, "\u652F"], [12097, 1, "\u6534"], [12098, 1, "\u6587"], [12099, 1, "\u6597"], [12100, 1, "\u65A4"], [12101, 1, "\u65B9"], [12102, 1, "\u65E0"], [12103, 1, "\u65E5"], [12104, 1, "\u66F0"], [12105, 1, "\u6708"], [12106, 1, "\u6728"], [12107, 1, "\u6B20"], [12108, 1, "\u6B62"], [12109, 1, "\u6B79"], [12110, 1, "\u6BB3"], [12111, 1, "\u6BCB"], [12112, 1, "\u6BD4"], [12113, 1, "\u6BDB"], [12114, 1, "\u6C0F"], [12115, 1, "\u6C14"], [12116, 1, "\u6C34"], [12117, 1, "\u706B"], [12118, 1, "\u722A"], [12119, 1, "\u7236"], [12120, 1, "\u723B"], [12121, 1, "\u723F"], [12122, 1, "\u7247"], [12123, 1, "\u7259"], [12124, 1, "\u725B"], [12125, 1, "\u72AC"], [12126, 1, "\u7384"], [12127, 1, "\u7389"], [12128, 1, "\u74DC"], [12129, 1, "\u74E6"], [12130, 1, "\u7518"], [12131, 1, "\u751F"], [12132, 1, "\u7528"], [12133, 1, "\u7530"], [12134, 1, "\u758B"], [12135, 1, "\u7592"], [12136, 1, "\u7676"], [12137, 1, "\u767D"], [12138, 1, "\u76AE"], [12139, 1, "\u76BF"], [12140, 1, "\u76EE"], [12141, 1, "\u77DB"], [12142, 1, "\u77E2"], [12143, 1, "\u77F3"], [12144, 1, "\u793A"], [12145, 1, "\u79B8"], [12146, 1, "\u79BE"], [12147, 1, "\u7A74"], [12148, 1, "\u7ACB"], [12149, 1, "\u7AF9"], [12150, 1, "\u7C73"], [12151, 1, "\u7CF8"], [12152, 1, "\u7F36"], [12153, 1, "\u7F51"], [12154, 1, "\u7F8A"], [12155, 1, "\u7FBD"], [12156, 1, "\u8001"], [12157, 1, "\u800C"], [12158, 1, "\u8012"], [12159, 1, "\u8033"], [12160, 1, "\u807F"], [12161, 1, "\u8089"], [12162, 1, "\u81E3"], [12163, 1, "\u81EA"], [12164, 1, "\u81F3"], [12165, 1, "\u81FC"], [12166, 1, "\u820C"], [12167, 1, "\u821B"], [12168, 1, "\u821F"], [12169, 1, "\u826E"], [12170, 1, "\u8272"], [12171, 1, "\u8278"], [12172, 1, "\u864D"], [12173, 1, "\u866B"], [12174, 1, "\u8840"], [12175, 1, "\u884C"], [12176, 1, "\u8863"], [12177, 1, "\u897E"], [12178, 1, "\u898B"], [12179, 1, "\u89D2"], [12180, 1, "\u8A00"], [12181, 1, "\u8C37"], [12182, 1, "\u8C46"], [12183, 1, "\u8C55"], [12184, 1, "\u8C78"], [12185, 1, "\u8C9D"], [12186, 1, "\u8D64"], [12187, 1, "\u8D70"], [12188, 1, "\u8DB3"], [12189, 1, "\u8EAB"], [12190, 1, "\u8ECA"], [12191, 1, "\u8F9B"], [12192, 1, "\u8FB0"], [12193, 1, "\u8FB5"], [12194, 1, "\u9091"], [12195, 1, "\u9149"], [12196, 1, "\u91C6"], [12197, 1, "\u91CC"], [12198, 1, "\u91D1"], [12199, 1, "\u9577"], [12200, 1, "\u9580"], [12201, 1, "\u961C"], [12202, 1, "\u96B6"], [12203, 1, "\u96B9"], [12204, 1, "\u96E8"], [12205, 1, "\u9751"], [12206, 1, "\u975E"], [12207, 1, "\u9762"], [12208, 1, "\u9769"], [12209, 1, "\u97CB"], [12210, 1, "\u97ED"], [12211, 1, "\u97F3"], [12212, 1, "\u9801"], [12213, 1, "\u98A8"], [12214, 1, "\u98DB"], [12215, 1, "\u98DF"], [12216, 1, "\u9996"], [12217, 1, "\u9999"], [12218, 1, "\u99AC"], [12219, 1, "\u9AA8"], [12220, 1, "\u9AD8"], [12221, 1, "\u9ADF"], [12222, 1, "\u9B25"], [12223, 1, "\u9B2F"], [12224, 1, "\u9B32"], [12225, 1, "\u9B3C"], [12226, 1, "\u9B5A"], [12227, 1, "\u9CE5"], [12228, 1, "\u9E75"], [12229, 1, "\u9E7F"], [12230, 1, "\u9EA5"], [12231, 1, "\u9EBB"], [12232, 1, "\u9EC3"], [12233, 1, "\u9ECD"], [12234, 1, "\u9ED1"], [12235, 1, "\u9EF9"], [12236, 1, "\u9EFD"], [12237, 1, "\u9F0E"], [12238, 1, "\u9F13"], [12239, 1, "\u9F20"], [12240, 1, "\u9F3B"], [12241, 1, "\u9F4A"], [12242, 1, "\u9F52"], [12243, 1, "\u9F8D"], [12244, 1, "\u9F9C"], [12245, 1, "\u9FA0"], [[12246, 12271], 3], [[12272, 12283], 3], [[12284, 12287], 3], [12288, 1, " "], [12289, 2], [12290, 1, "."], [[12291, 12292], 2], [[12293, 12295], 2], [[12296, 12329], 2], [[12330, 12333], 2], [[12334, 12341], 2], [12342, 1, "\u3012"], [12343, 2], [12344, 1, "\u5341"], [12345, 1, "\u5344"], [12346, 1, "\u5345"], [12347, 2], [12348, 2], [12349, 2], [12350, 2], [12351, 2], [12352, 3], [[12353, 12436], 2], [[12437, 12438], 2], [[12439, 12440], 3], [[12441, 12442], 2], [12443, 1, " \u3099"], [12444, 1, " \u309A"], [[12445, 12446], 2], [12447, 1, "\u3088\u308A"], [12448, 2], [[12449, 12542], 2], [12543, 1, "\u30B3\u30C8"], [[12544, 12548], 3], [[12549, 12588], 2], [12589, 2], [12590, 2], [12591, 2], [12592, 3], [12593, 1, "\u1100"], [12594, 1, "\u1101"], [12595, 1, "\u11AA"], [12596, 1, "\u1102"], [12597, 1, "\u11AC"], [12598, 1, "\u11AD"], [12599, 1, "\u1103"], [12600, 1, "\u1104"], [12601, 1, "\u1105"], [12602, 1, "\u11B0"], [12603, 1, "\u11B1"], [12604, 1, "\u11B2"], [12605, 1, "\u11B3"], [12606, 1, "\u11B4"], [12607, 1, "\u11B5"], [12608, 1, "\u111A"], [12609, 1, "\u1106"], [12610, 1, "\u1107"], [12611, 1, "\u1108"], [12612, 1, "\u1121"], [12613, 1, "\u1109"], [12614, 1, "\u110A"], [12615, 1, "\u110B"], [12616, 1, "\u110C"], [12617, 1, "\u110D"], [12618, 1, "\u110E"], [12619, 1, "\u110F"], [12620, 1, "\u1110"], [12621, 1, "\u1111"], [12622, 1, "\u1112"], [12623, 1, "\u1161"], [12624, 1, "\u1162"], [12625, 1, "\u1163"], [12626, 1, "\u1164"], [12627, 1, "\u1165"], [12628, 1, "\u1166"], [12629, 1, "\u1167"], [12630, 1, "\u1168"], [12631, 1, "\u1169"], [12632, 1, "\u116A"], [12633, 1, "\u116B"], [12634, 1, "\u116C"], [12635, 1, "\u116D"], [12636, 1, "\u116E"], [12637, 1, "\u116F"], [12638, 1, "\u1170"], [12639, 1, "\u1171"], [12640, 1, "\u1172"], [12641, 1, "\u1173"], [12642, 1, "\u1174"], [12643, 1, "\u1175"], [12644, 7], [12645, 1, "\u1114"], [12646, 1, "\u1115"], [12647, 1, "\u11C7"], [12648, 1, "\u11C8"], [12649, 1, "\u11CC"], [12650, 1, "\u11CE"], [12651, 1, "\u11D3"], [12652, 1, "\u11D7"], [12653, 1, "\u11D9"], [12654, 1, "\u111C"], [12655, 1, "\u11DD"], [12656, 1, "\u11DF"], [12657, 1, "\u111D"], [12658, 1, "\u111E"], [12659, 1, "\u1120"], [12660, 1, "\u1122"], [12661, 1, "\u1123"], [12662, 1, "\u1127"], [12663, 1, "\u1129"], [12664, 1, "\u112B"], [12665, 1, "\u112C"], [12666, 1, "\u112D"], [12667, 1, "\u112E"], [12668, 1, "\u112F"], [12669, 1, "\u1132"], [12670, 1, "\u1136"], [12671, 1, "\u1140"], [12672, 1, "\u1147"], [12673, 1, "\u114C"], [12674, 1, "\u11F1"], [12675, 1, "\u11F2"], [12676, 1, "\u1157"], [12677, 1, "\u1158"], [12678, 1, "\u1159"], [12679, 1, "\u1184"], [12680, 1, "\u1185"], [12681, 1, "\u1188"], [12682, 1, "\u1191"], [12683, 1, "\u1192"], [12684, 1, "\u1194"], [12685, 1, "\u119E"], [12686, 1, "\u11A1"], [12687, 3], [[12688, 12689], 2], [12690, 1, "\u4E00"], [12691, 1, "\u4E8C"], [12692, 1, "\u4E09"], [12693, 1, "\u56DB"], [12694, 1, "\u4E0A"], [12695, 1, "\u4E2D"], [12696, 1, "\u4E0B"], [12697, 1, "\u7532"], [12698, 1, "\u4E59"], [12699, 1, "\u4E19"], [12700, 1, "\u4E01"], [12701, 1, "\u5929"], [12702, 1, "\u5730"], [12703, 1, "\u4EBA"], [[12704, 12727], 2], [[12728, 12730], 2], [[12731, 12735], 2], [[12736, 12751], 2], [[12752, 12771], 2], [[12772, 12773], 2], [[12774, 12782], 3], [12783, 3], [[12784, 12799], 2], [12800, 1, "(\u1100)"], [12801, 1, "(\u1102)"], [12802, 1, "(\u1103)"], [12803, 1, "(\u1105)"], [12804, 1, "(\u1106)"], [12805, 1, "(\u1107)"], [12806, 1, "(\u1109)"], [12807, 1, "(\u110B)"], [12808, 1, "(\u110C)"], [12809, 1, "(\u110E)"], [12810, 1, "(\u110F)"], [12811, 1, "(\u1110)"], [12812, 1, "(\u1111)"], [12813, 1, "(\u1112)"], [12814, 1, "(\uAC00)"], [12815, 1, "(\uB098)"], [12816, 1, "(\uB2E4)"], [12817, 1, "(\uB77C)"], [12818, 1, "(\uB9C8)"], [12819, 1, "(\uBC14)"], [12820, 1, "(\uC0AC)"], [12821, 1, "(\uC544)"], [12822, 1, "(\uC790)"], [12823, 1, "(\uCC28)"], [12824, 1, "(\uCE74)"], [12825, 1, "(\uD0C0)"], [12826, 1, "(\uD30C)"], [12827, 1, "(\uD558)"], [12828, 1, "(\uC8FC)"], [12829, 1, "(\uC624\uC804)"], [12830, 1, "(\uC624\uD6C4)"], [12831, 3], [12832, 1, "(\u4E00)"], [12833, 1, "(\u4E8C)"], [12834, 1, "(\u4E09)"], [12835, 1, "(\u56DB)"], [12836, 1, "(\u4E94)"], [12837, 1, "(\u516D)"], [12838, 1, "(\u4E03)"], [12839, 1, "(\u516B)"], [12840, 1, "(\u4E5D)"], [12841, 1, "(\u5341)"], [12842, 1, "(\u6708)"], [12843, 1, "(\u706B)"], [12844, 1, "(\u6C34)"], [12845, 1, "(\u6728)"], [12846, 1, "(\u91D1)"], [12847, 1, "(\u571F)"], [12848, 1, "(\u65E5)"], [12849, 1, "(\u682A)"], [12850, 1, "(\u6709)"], [12851, 1, "(\u793E)"], [12852, 1, "(\u540D)"], [12853, 1, "(\u7279)"], [12854, 1, "(\u8CA1)"], [12855, 1, "(\u795D)"], [12856, 1, "(\u52B4)"], [12857, 1, "(\u4EE3)"], [12858, 1, "(\u547C)"], [12859, 1, "(\u5B66)"], [12860, 1, "(\u76E3)"], [12861, 1, "(\u4F01)"], [12862, 1, "(\u8CC7)"], [12863, 1, "(\u5354)"], [12864, 1, "(\u796D)"], [12865, 1, "(\u4F11)"], [12866, 1, "(\u81EA)"], [12867, 1, "(\u81F3)"], [12868, 1, "\u554F"], [12869, 1, "\u5E7C"], [12870, 1, "\u6587"], [12871, 1, "\u7B8F"], [[12872, 12879], 2], [12880, 1, "pte"], [12881, 1, "21"], [12882, 1, "22"], [12883, 1, "23"], [12884, 1, "24"], [12885, 1, "25"], [12886, 1, "26"], [12887, 1, "27"], [12888, 1, "28"], [12889, 1, "29"], [12890, 1, "30"], [12891, 1, "31"], [12892, 1, "32"], [12893, 1, "33"], [12894, 1, "34"], [12895, 1, "35"], [12896, 1, "\u1100"], [12897, 1, "\u1102"], [12898, 1, "\u1103"], [12899, 1, "\u1105"], [12900, 1, "\u1106"], [12901, 1, "\u1107"], [12902, 1, "\u1109"], [12903, 1, "\u110B"], [12904, 1, "\u110C"], [12905, 1, "\u110E"], [12906, 1, "\u110F"], [12907, 1, "\u1110"], [12908, 1, "\u1111"], [12909, 1, "\u1112"], [12910, 1, "\uAC00"], [12911, 1, "\uB098"], [12912, 1, "\uB2E4"], [12913, 1, "\uB77C"], [12914, 1, "\uB9C8"], [12915, 1, "\uBC14"], [12916, 1, "\uC0AC"], [12917, 1, "\uC544"], [12918, 1, "\uC790"], [12919, 1, "\uCC28"], [12920, 1, "\uCE74"], [12921, 1, "\uD0C0"], [12922, 1, "\uD30C"], [12923, 1, "\uD558"], [12924, 1, "\uCC38\uACE0"], [12925, 1, "\uC8FC\uC758"], [12926, 1, "\uC6B0"], [12927, 2], [12928, 1, "\u4E00"], [12929, 1, "\u4E8C"], [12930, 1, "\u4E09"], [12931, 1, "\u56DB"], [12932, 1, "\u4E94"], [12933, 1, "\u516D"], [12934, 1, "\u4E03"], [12935, 1, "\u516B"], [12936, 1, "\u4E5D"], [12937, 1, "\u5341"], [12938, 1, "\u6708"], [12939, 1, "\u706B"], [12940, 1, "\u6C34"], [12941, 1, "\u6728"], [12942, 1, "\u91D1"], [12943, 1, "\u571F"], [12944, 1, "\u65E5"], [12945, 1, "\u682A"], [12946, 1, "\u6709"], [12947, 1, "\u793E"], [12948, 1, "\u540D"], [12949, 1, "\u7279"], [12950, 1, "\u8CA1"], [12951, 1, "\u795D"], [12952, 1, "\u52B4"], [12953, 1, "\u79D8"], [12954, 1, "\u7537"], [12955, 1, "\u5973"], [12956, 1, "\u9069"], [12957, 1, "\u512A"], [12958, 1, "\u5370"], [12959, 1, "\u6CE8"], [12960, 1, "\u9805"], [12961, 1, "\u4F11"], [12962, 1, "\u5199"], [12963, 1, "\u6B63"], [12964, 1, "\u4E0A"], [12965, 1, "\u4E2D"], [12966, 1, "\u4E0B"], [12967, 1, "\u5DE6"], [12968, 1, "\u53F3"], [12969, 1, "\u533B"], [12970, 1, "\u5B97"], [12971, 1, "\u5B66"], [12972, 1, "\u76E3"], [12973, 1, "\u4F01"], [12974, 1, "\u8CC7"], [12975, 1, "\u5354"], [12976, 1, "\u591C"], [12977, 1, "36"], [12978, 1, "37"], [12979, 1, "38"], [12980, 1, "39"], [12981, 1, "40"], [12982, 1, "41"], [12983, 1, "42"], [12984, 1, "43"], [12985, 1, "44"], [12986, 1, "45"], [12987, 1, "46"], [12988, 1, "47"], [12989, 1, "48"], [12990, 1, "49"], [12991, 1, "50"], [12992, 1, "1\u6708"], [12993, 1, "2\u6708"], [12994, 1, "3\u6708"], [12995, 1, "4\u6708"], [12996, 1, "5\u6708"], [12997, 1, "6\u6708"], [12998, 1, "7\u6708"], [12999, 1, "8\u6708"], [13e3, 1, "9\u6708"], [13001, 1, "10\u6708"], [13002, 1, "11\u6708"], [13003, 1, "12\u6708"], [13004, 1, "hg"], [13005, 1, "erg"], [13006, 1, "ev"], [13007, 1, "ltd"], [13008, 1, "\u30A2"], [13009, 1, "\u30A4"], [13010, 1, "\u30A6"], [13011, 1, "\u30A8"], [13012, 1, "\u30AA"], [13013, 1, "\u30AB"], [13014, 1, "\u30AD"], [13015, 1, "\u30AF"], [13016, 1, "\u30B1"], [13017, 1, "\u30B3"], [13018, 1, "\u30B5"], [13019, 1, "\u30B7"], [13020, 1, "\u30B9"], [13021, 1, "\u30BB"], [13022, 1, "\u30BD"], [13023, 1, "\u30BF"], [13024, 1, "\u30C1"], [13025, 1, "\u30C4"], [13026, 1, "\u30C6"], [13027, 1, "\u30C8"], [13028, 1, "\u30CA"], [13029, 1, "\u30CB"], [13030, 1, "\u30CC"], [13031, 1, "\u30CD"], [13032, 1, "\u30CE"], [13033, 1, "\u30CF"], [13034, 1, "\u30D2"], [13035, 1, "\u30D5"], [13036, 1, "\u30D8"], [13037, 1, "\u30DB"], [13038, 1, "\u30DE"], [13039, 1, "\u30DF"], [13040, 1, "\u30E0"], [13041, 1, "\u30E1"], [13042, 1, "\u30E2"], [13043, 1, "\u30E4"], [13044, 1, "\u30E6"], [13045, 1, "\u30E8"], [13046, 1, "\u30E9"], [13047, 1, "\u30EA"], [13048, 1, "\u30EB"], [13049, 1, "\u30EC"], [13050, 1, "\u30ED"], [13051, 1, "\u30EF"], [13052, 1, "\u30F0"], [13053, 1, "\u30F1"], [13054, 1, "\u30F2"], [13055, 1, "\u4EE4\u548C"], [13056, 1, "\u30A2\u30D1\u30FC\u30C8"], [13057, 1, "\u30A2\u30EB\u30D5\u30A1"], [13058, 1, "\u30A2\u30F3\u30DA\u30A2"], [13059, 1, "\u30A2\u30FC\u30EB"], [13060, 1, "\u30A4\u30CB\u30F3\u30B0"], [13061, 1, "\u30A4\u30F3\u30C1"], [13062, 1, "\u30A6\u30A9\u30F3"], [13063, 1, "\u30A8\u30B9\u30AF\u30FC\u30C9"], [13064, 1, "\u30A8\u30FC\u30AB\u30FC"], [13065, 1, "\u30AA\u30F3\u30B9"], [13066, 1, "\u30AA\u30FC\u30E0"], [13067, 1, "\u30AB\u30A4\u30EA"], [13068, 1, "\u30AB\u30E9\u30C3\u30C8"], [13069, 1, "\u30AB\u30ED\u30EA\u30FC"], [13070, 1, "\u30AC\u30ED\u30F3"], [13071, 1, "\u30AC\u30F3\u30DE"], [13072, 1, "\u30AE\u30AC"], [13073, 1, "\u30AE\u30CB\u30FC"], [13074, 1, "\u30AD\u30E5\u30EA\u30FC"], [13075, 1, "\u30AE\u30EB\u30C0\u30FC"], [13076, 1, "\u30AD\u30ED"], [13077, 1, "\u30AD\u30ED\u30B0\u30E9\u30E0"], [13078, 1, "\u30AD\u30ED\u30E1\u30FC\u30C8\u30EB"], [13079, 1, "\u30AD\u30ED\u30EF\u30C3\u30C8"], [13080, 1, "\u30B0\u30E9\u30E0"], [13081, 1, "\u30B0\u30E9\u30E0\u30C8\u30F3"], [13082, 1, "\u30AF\u30EB\u30BC\u30A4\u30ED"], [13083, 1, "\u30AF\u30ED\u30FC\u30CD"], [13084, 1, "\u30B1\u30FC\u30B9"], [13085, 1, "\u30B3\u30EB\u30CA"], [13086, 1, "\u30B3\u30FC\u30DD"], [13087, 1, "\u30B5\u30A4\u30AF\u30EB"], [13088, 1, "\u30B5\u30F3\u30C1\u30FC\u30E0"], [13089, 1, "\u30B7\u30EA\u30F3\u30B0"], [13090, 1, "\u30BB\u30F3\u30C1"], [13091, 1, "\u30BB\u30F3\u30C8"], [13092, 1, "\u30C0\u30FC\u30B9"], [13093, 1, "\u30C7\u30B7"], [13094, 1, "\u30C9\u30EB"], [13095, 1, "\u30C8\u30F3"], [13096, 1, "\u30CA\u30CE"], [13097, 1, "\u30CE\u30C3\u30C8"], [13098, 1, "\u30CF\u30A4\u30C4"], [13099, 1, "\u30D1\u30FC\u30BB\u30F3\u30C8"], [13100, 1, "\u30D1\u30FC\u30C4"], [13101, 1, "\u30D0\u30FC\u30EC\u30EB"], [13102, 1, "\u30D4\u30A2\u30B9\u30C8\u30EB"], [13103, 1, "\u30D4\u30AF\u30EB"], [13104, 1, "\u30D4\u30B3"], [13105, 1, "\u30D3\u30EB"], [13106, 1, "\u30D5\u30A1\u30E9\u30C3\u30C9"], [13107, 1, "\u30D5\u30A3\u30FC\u30C8"], [13108, 1, "\u30D6\u30C3\u30B7\u30A7\u30EB"], [13109, 1, "\u30D5\u30E9\u30F3"], [13110, 1, "\u30D8\u30AF\u30BF\u30FC\u30EB"], [13111, 1, "\u30DA\u30BD"], [13112, 1, "\u30DA\u30CB\u30D2"], [13113, 1, "\u30D8\u30EB\u30C4"], [13114, 1, "\u30DA\u30F3\u30B9"], [13115, 1, "\u30DA\u30FC\u30B8"], [13116, 1, "\u30D9\u30FC\u30BF"], [13117, 1, "\u30DD\u30A4\u30F3\u30C8"], [13118, 1, "\u30DC\u30EB\u30C8"], [13119, 1, "\u30DB\u30F3"], [13120, 1, "\u30DD\u30F3\u30C9"], [13121, 1, "\u30DB\u30FC\u30EB"], [13122, 1, "\u30DB\u30FC\u30F3"], [13123, 1, "\u30DE\u30A4\u30AF\u30ED"], [13124, 1, "\u30DE\u30A4\u30EB"], [13125, 1, "\u30DE\u30C3\u30CF"], [13126, 1, "\u30DE\u30EB\u30AF"], [13127, 1, "\u30DE\u30F3\u30B7\u30E7\u30F3"], [13128, 1, "\u30DF\u30AF\u30ED\u30F3"], [13129, 1, "\u30DF\u30EA"], [13130, 1, "\u30DF\u30EA\u30D0\u30FC\u30EB"], [13131, 1, "\u30E1\u30AC"], [13132, 1, "\u30E1\u30AC\u30C8\u30F3"], [13133, 1, "\u30E1\u30FC\u30C8\u30EB"], [13134, 1, "\u30E4\u30FC\u30C9"], [13135, 1, "\u30E4\u30FC\u30EB"], [13136, 1, "\u30E6\u30A2\u30F3"], [13137, 1, "\u30EA\u30C3\u30C8\u30EB"], [13138, 1, "\u30EA\u30E9"], [13139, 1, "\u30EB\u30D4\u30FC"], [13140, 1, "\u30EB\u30FC\u30D6\u30EB"], [13141, 1, "\u30EC\u30E0"], [13142, 1, "\u30EC\u30F3\u30C8\u30B2\u30F3"], [13143, 1, "\u30EF\u30C3\u30C8"], [13144, 1, "0\u70B9"], [13145, 1, "1\u70B9"], [13146, 1, "2\u70B9"], [13147, 1, "3\u70B9"], [13148, 1, "4\u70B9"], [13149, 1, "5\u70B9"], [13150, 1, "6\u70B9"], [13151, 1, "7\u70B9"], [13152, 1, "8\u70B9"], [13153, 1, "9\u70B9"], [13154, 1, "10\u70B9"], [13155, 1, "11\u70B9"], [13156, 1, "12\u70B9"], [13157, 1, "13\u70B9"], [13158, 1, "14\u70B9"], [13159, 1, "15\u70B9"], [13160, 1, "16\u70B9"], [13161, 1, "17\u70B9"], [13162, 1, "18\u70B9"], [13163, 1, "19\u70B9"], [13164, 1, "20\u70B9"], [13165, 1, "21\u70B9"], [13166, 1, "22\u70B9"], [13167, 1, "23\u70B9"], [13168, 1, "24\u70B9"], [13169, 1, "hpa"], [13170, 1, "da"], [13171, 1, "au"], [13172, 1, "bar"], [13173, 1, "ov"], [13174, 1, "pc"], [13175, 1, "dm"], [13176, 1, "dm2"], [13177, 1, "dm3"], [13178, 1, "iu"], [13179, 1, "\u5E73\u6210"], [13180, 1, "\u662D\u548C"], [13181, 1, "\u5927\u6B63"], [13182, 1, "\u660E\u6CBB"], [13183, 1, "\u682A\u5F0F\u4F1A\u793E"], [13184, 1, "pa"], [13185, 1, "na"], [13186, 1, "\u03BCa"], [13187, 1, "ma"], [13188, 1, "ka"], [13189, 1, "kb"], [13190, 1, "mb"], [13191, 1, "gb"], [13192, 1, "cal"], [13193, 1, "kcal"], [13194, 1, "pf"], [13195, 1, "nf"], [13196, 1, "\u03BCf"], [13197, 1, "\u03BCg"], [13198, 1, "mg"], [13199, 1, "kg"], [13200, 1, "hz"], [13201, 1, "khz"], [13202, 1, "mhz"], [13203, 1, "ghz"], [13204, 1, "thz"], [13205, 1, "\u03BCl"], [13206, 1, "ml"], [13207, 1, "dl"], [13208, 1, "kl"], [13209, 1, "fm"], [13210, 1, "nm"], [13211, 1, "\u03BCm"], [13212, 1, "mm"], [13213, 1, "cm"], [13214, 1, "km"], [13215, 1, "mm2"], [13216, 1, "cm2"], [13217, 1, "m2"], [13218, 1, "km2"], [13219, 1, "mm3"], [13220, 1, "cm3"], [13221, 1, "m3"], [13222, 1, "km3"], [13223, 1, "m\u2215s"], [13224, 1, "m\u2215s2"], [13225, 1, "pa"], [13226, 1, "kpa"], [13227, 1, "mpa"], [13228, 1, "gpa"], [13229, 1, "rad"], [13230, 1, "rad\u2215s"], [13231, 1, "rad\u2215s2"], [13232, 1, "ps"], [13233, 1, "ns"], [13234, 1, "\u03BCs"], [13235, 1, "ms"], [13236, 1, "pv"], [13237, 1, "nv"], [13238, 1, "\u03BCv"], [13239, 1, "mv"], [13240, 1, "kv"], [13241, 1, "mv"], [13242, 1, "pw"], [13243, 1, "nw"], [13244, 1, "\u03BCw"], [13245, 1, "mw"], [13246, 1, "kw"], [13247, 1, "mw"], [13248, 1, "k\u03C9"], [13249, 1, "m\u03C9"], [13250, 3], [13251, 1, "bq"], [13252, 1, "cc"], [13253, 1, "cd"], [13254, 1, "c\u2215kg"], [13255, 3], [13256, 1, "db"], [13257, 1, "gy"], [13258, 1, "ha"], [13259, 1, "hp"], [13260, 1, "in"], [13261, 1, "kk"], [13262, 1, "km"], [13263, 1, "kt"], [13264, 1, "lm"], [13265, 1, "ln"], [13266, 1, "log"], [13267, 1, "lx"], [13268, 1, "mb"], [13269, 1, "mil"], [13270, 1, "mol"], [13271, 1, "ph"], [13272, 3], [13273, 1, "ppm"], [13274, 1, "pr"], [13275, 1, "sr"], [13276, 1, "sv"], [13277, 1, "wb"], [13278, 1, "v\u2215m"], [13279, 1, "a\u2215m"], [13280, 1, "1\u65E5"], [13281, 1, "2\u65E5"], [13282, 1, "3\u65E5"], [13283, 1, "4\u65E5"], [13284, 1, "5\u65E5"], [13285, 1, "6\u65E5"], [13286, 1, "7\u65E5"], [13287, 1, "8\u65E5"], [13288, 1, "9\u65E5"], [13289, 1, "10\u65E5"], [13290, 1, "11\u65E5"], [13291, 1, "12\u65E5"], [13292, 1, "13\u65E5"], [13293, 1, "14\u65E5"], [13294, 1, "15\u65E5"], [13295, 1, "16\u65E5"], [13296, 1, "17\u65E5"], [13297, 1, "18\u65E5"], [13298, 1, "19\u65E5"], [13299, 1, "20\u65E5"], [13300, 1, "21\u65E5"], [13301, 1, "22\u65E5"], [13302, 1, "23\u65E5"], [13303, 1, "24\u65E5"], [13304, 1, "25\u65E5"], [13305, 1, "26\u65E5"], [13306, 1, "27\u65E5"], [13307, 1, "28\u65E5"], [13308, 1, "29\u65E5"], [13309, 1, "30\u65E5"], [13310, 1, "31\u65E5"], [13311, 1, "gal"], [[13312, 19893], 2], [[19894, 19903], 2], [[19904, 19967], 2], [[19968, 40869], 2], [[40870, 40891], 2], [[40892, 40899], 2], [[40900, 40907], 2], [40908, 2], [[40909, 40917], 2], [[40918, 40938], 2], [[40939, 40943], 2], [[40944, 40956], 2], [[40957, 40959], 2], [[40960, 42124], 2], [[42125, 42127], 3], [[42128, 42145], 2], [[42146, 42147], 2], [[42148, 42163], 2], [42164, 2], [[42165, 42176], 2], [42177, 2], [[42178, 42180], 2], [42181, 2], [42182, 2], [[42183, 42191], 3], [[42192, 42237], 2], [[42238, 42239], 2], [[42240, 42508], 2], [[42509, 42511], 2], [[42512, 42539], 2], [[42540, 42559], 3], [42560, 1, "\uA641"], [42561, 2], [42562, 1, "\uA643"], [42563, 2], [42564, 1, "\uA645"], [42565, 2], [42566, 1, "\uA647"], [42567, 2], [42568, 1, "\uA649"], [42569, 2], [42570, 1, "\uA64B"], [42571, 2], [42572, 1, "\uA64D"], [42573, 2], [42574, 1, "\uA64F"], [42575, 2], [42576, 1, "\uA651"], [42577, 2], [42578, 1, "\uA653"], [42579, 2], [42580, 1, "\uA655"], [42581, 2], [42582, 1, "\uA657"], [42583, 2], [42584, 1, "\uA659"], [42585, 2], [42586, 1, "\uA65B"], [42587, 2], [42588, 1, "\uA65D"], [42589, 2], [42590, 1, "\uA65F"], [42591, 2], [42592, 1, "\uA661"], [42593, 2], [42594, 1, "\uA663"], [42595, 2], [42596, 1, "\uA665"], [42597, 2], [42598, 1, "\uA667"], [42599, 2], [42600, 1, "\uA669"], [42601, 2], [42602, 1, "\uA66B"], [42603, 2], [42604, 1, "\uA66D"], [[42605, 42607], 2], [[42608, 42611], 2], [[42612, 42619], 2], [[42620, 42621], 2], [42622, 2], [42623, 2], [42624, 1, "\uA681"], [42625, 2], [42626, 1, "\uA683"], [42627, 2], [42628, 1, "\uA685"], [42629, 2], [42630, 1, "\uA687"], [42631, 2], [42632, 1, "\uA689"], [42633, 2], [42634, 1, "\uA68B"], [42635, 2], [42636, 1, "\uA68D"], [42637, 2], [42638, 1, "\uA68F"], [42639, 2], [42640, 1, "\uA691"], [42641, 2], [42642, 1, "\uA693"], [42643, 2], [42644, 1, "\uA695"], [42645, 2], [42646, 1, "\uA697"], [42647, 2], [42648, 1, "\uA699"], [42649, 2], [42650, 1, "\uA69B"], [42651, 2], [42652, 1, "\u044A"], [42653, 1, "\u044C"], [42654, 2], [42655, 2], [[42656, 42725], 2], [[42726, 42735], 2], [[42736, 42737], 2], [[42738, 42743], 2], [[42744, 42751], 3], [[42752, 42774], 2], [[42775, 42778], 2], [[42779, 42783], 2], [[42784, 42785], 2], [42786, 1, "\uA723"], [42787, 2], [42788, 1, "\uA725"], [42789, 2], [42790, 1, "\uA727"], [42791, 2], [42792, 1, "\uA729"], [42793, 2], [42794, 1, "\uA72B"], [42795, 2], [42796, 1, "\uA72D"], [42797, 2], [42798, 1, "\uA72F"], [[42799, 42801], 2], [42802, 1, "\uA733"], [42803, 2], [42804, 1, "\uA735"], [42805, 2], [42806, 1, "\uA737"], [42807, 2], [42808, 1, "\uA739"], [42809, 2], [42810, 1, "\uA73B"], [42811, 2], [42812, 1, "\uA73D"], [42813, 2], [42814, 1, "\uA73F"], [42815, 2], [42816, 1, "\uA741"], [42817, 2], [42818, 1, "\uA743"], [42819, 2], [42820, 1, "\uA745"], [42821, 2], [42822, 1, "\uA747"], [42823, 2], [42824, 1, "\uA749"], [42825, 2], [42826, 1, "\uA74B"], [42827, 2], [42828, 1, "\uA74D"], [42829, 2], [42830, 1, "\uA74F"], [42831, 2], [42832, 1, "\uA751"], [42833, 2], [42834, 1, "\uA753"], [42835, 2], [42836, 1, "\uA755"], [42837, 2], [42838, 1, "\uA757"], [42839, 2], [42840, 1, "\uA759"], [42841, 2], [42842, 1, "\uA75B"], [42843, 2], [42844, 1, "\uA75D"], [42845, 2], [42846, 1, "\uA75F"], [42847, 2], [42848, 1, "\uA761"], [42849, 2], [42850, 1, "\uA763"], [42851, 2], [42852, 1, "\uA765"], [42853, 2], [42854, 1, "\uA767"], [42855, 2], [42856, 1, "\uA769"], [42857, 2], [42858, 1, "\uA76B"], [42859, 2], [42860, 1, "\uA76D"], [42861, 2], [42862, 1, "\uA76F"], [42863, 2], [42864, 1, "\uA76F"], [[42865, 42872], 2], [42873, 1, "\uA77A"], [42874, 2], [42875, 1, "\uA77C"], [42876, 2], [42877, 1, "\u1D79"], [42878, 1, "\uA77F"], [42879, 2], [42880, 1, "\uA781"], [42881, 2], [42882, 1, "\uA783"], [42883, 2], [42884, 1, "\uA785"], [42885, 2], [42886, 1, "\uA787"], [[42887, 42888], 2], [[42889, 42890], 2], [42891, 1, "\uA78C"], [42892, 2], [42893, 1, "\u0265"], [42894, 2], [42895, 2], [42896, 1, "\uA791"], [42897, 2], [42898, 1, "\uA793"], [42899, 2], [[42900, 42901], 2], [42902, 1, "\uA797"], [42903, 2], [42904, 1, "\uA799"], [42905, 2], [42906, 1, "\uA79B"], [42907, 2], [42908, 1, "\uA79D"], [42909, 2], [42910, 1, "\uA79F"], [42911, 2], [42912, 1, "\uA7A1"], [42913, 2], [42914, 1, "\uA7A3"], [42915, 2], [42916, 1, "\uA7A5"], [42917, 2], [42918, 1, "\uA7A7"], [42919, 2], [42920, 1, "\uA7A9"], [42921, 2], [42922, 1, "\u0266"], [42923, 1, "\u025C"], [42924, 1, "\u0261"], [42925, 1, "\u026C"], [42926, 1, "\u026A"], [42927, 2], [42928, 1, "\u029E"], [42929, 1, "\u0287"], [42930, 1, "\u029D"], [42931, 1, "\uAB53"], [42932, 1, "\uA7B5"], [42933, 2], [42934, 1, "\uA7B7"], [42935, 2], [42936, 1, "\uA7B9"], [42937, 2], [42938, 1, "\uA7BB"], [42939, 2], [42940, 1, "\uA7BD"], [42941, 2], [42942, 1, "\uA7BF"], [42943, 2], [42944, 1, "\uA7C1"], [42945, 2], [42946, 1, "\uA7C3"], [42947, 2], [42948, 1, "\uA794"], [42949, 1, "\u0282"], [42950, 1, "\u1D8E"], [42951, 1, "\uA7C8"], [42952, 2], [42953, 1, "\uA7CA"], [42954, 2], [42955, 1, "\u0264"], [42956, 1, "\uA7CD"], [42957, 2], [[42958, 42959], 3], [42960, 1, "\uA7D1"], [42961, 2], [42962, 3], [42963, 2], [42964, 3], [42965, 2], [42966, 1, "\uA7D7"], [42967, 2], [42968, 1, "\uA7D9"], [42969, 2], [42970, 1, "\uA7DB"], [42971, 2], [42972, 1, "\u019B"], [[42973, 42993], 3], [42994, 1, "c"], [42995, 1, "f"], [42996, 1, "q"], [42997, 1, "\uA7F6"], [42998, 2], [42999, 2], [43e3, 1, "\u0127"], [43001, 1, "\u0153"], [43002, 2], [[43003, 43007], 2], [[43008, 43047], 2], [[43048, 43051], 2], [43052, 2], [[43053, 43055], 3], [[43056, 43065], 2], [[43066, 43071], 3], [[43072, 43123], 2], [[43124, 43127], 2], [[43128, 43135], 3], [[43136, 43204], 2], [43205, 2], [[43206, 43213], 3], [[43214, 43215], 2], [[43216, 43225], 2], [[43226, 43231], 3], [[43232, 43255], 2], [[43256, 43258], 2], [43259, 2], [43260, 2], [43261, 2], [[43262, 43263], 2], [[43264, 43309], 2], [[43310, 43311], 2], [[43312, 43347], 2], [[43348, 43358], 3], [43359, 2], [[43360, 43388], 2], [[43389, 43391], 3], [[43392, 43456], 2], [[43457, 43469], 2], [43470, 3], [[43471, 43481], 2], [[43482, 43485], 3], [[43486, 43487], 2], [[43488, 43518], 2], [43519, 3], [[43520, 43574], 2], [[43575, 43583], 3], [[43584, 43597], 2], [[43598, 43599], 3], [[43600, 43609], 2], [[43610, 43611], 3], [[43612, 43615], 2], [[43616, 43638], 2], [[43639, 43641], 2], [[43642, 43643], 2], [[43644, 43647], 2], [[43648, 43714], 2], [[43715, 43738], 3], [[43739, 43741], 2], [[43742, 43743], 2], [[43744, 43759], 2], [[43760, 43761], 2], [[43762, 43766], 2], [[43767, 43776], 3], [[43777, 43782], 2], [[43783, 43784], 3], [[43785, 43790], 2], [[43791, 43792], 3], [[43793, 43798], 2], [[43799, 43807], 3], [[43808, 43814], 2], [43815, 3], [[43816, 43822], 2], [43823, 3], [[43824, 43866], 2], [43867, 2], [43868, 1, "\uA727"], [43869, 1, "\uAB37"], [43870, 1, "\u026B"], [43871, 1, "\uAB52"], [[43872, 43875], 2], [[43876, 43877], 2], [[43878, 43879], 2], [43880, 2], [43881, 1, "\u028D"], [[43882, 43883], 2], [[43884, 43887], 3], [43888, 1, "\u13A0"], [43889, 1, "\u13A1"], [43890, 1, "\u13A2"], [43891, 1, "\u13A3"], [43892, 1, "\u13A4"], [43893, 1, "\u13A5"], [43894, 1, "\u13A6"], [43895, 1, "\u13A7"], [43896, 1, "\u13A8"], [43897, 1, "\u13A9"], [43898, 1, "\u13AA"], [43899, 1, "\u13AB"], [43900, 1, "\u13AC"], [43901, 1, "\u13AD"], [43902, 1, "\u13AE"], [43903, 1, "\u13AF"], [43904, 1, "\u13B0"], [43905, 1, "\u13B1"], [43906, 1, "\u13B2"], [43907, 1, "\u13B3"], [43908, 1, "\u13B4"], [43909, 1, "\u13B5"], [43910, 1, "\u13B6"], [43911, 1, "\u13B7"], [43912, 1, "\u13B8"], [43913, 1, "\u13B9"], [43914, 1, "\u13BA"], [43915, 1, "\u13BB"], [43916, 1, "\u13BC"], [43917, 1, "\u13BD"], [43918, 1, "\u13BE"], [43919, 1, "\u13BF"], [43920, 1, "\u13C0"], [43921, 1, "\u13C1"], [43922, 1, "\u13C2"], [43923, 1, "\u13C3"], [43924, 1, "\u13C4"], [43925, 1, "\u13C5"], [43926, 1, "\u13C6"], [43927, 1, "\u13C7"], [43928, 1, "\u13C8"], [43929, 1, "\u13C9"], [43930, 1, "\u13CA"], [43931, 1, "\u13CB"], [43932, 1, "\u13CC"], [43933, 1, "\u13CD"], [43934, 1, "\u13CE"], [43935, 1, "\u13CF"], [43936, 1, "\u13D0"], [43937, 1, "\u13D1"], [43938, 1, "\u13D2"], [43939, 1, "\u13D3"], [43940, 1, "\u13D4"], [43941, 1, "\u13D5"], [43942, 1, "\u13D6"], [43943, 1, "\u13D7"], [43944, 1, "\u13D8"], [43945, 1, "\u13D9"], [43946, 1, "\u13DA"], [43947, 1, "\u13DB"], [43948, 1, "\u13DC"], [43949, 1, "\u13DD"], [43950, 1, "\u13DE"], [43951, 1, "\u13DF"], [43952, 1, "\u13E0"], [43953, 1, "\u13E1"], [43954, 1, "\u13E2"], [43955, 1, "\u13E3"], [43956, 1, "\u13E4"], [43957, 1, "\u13E5"], [43958, 1, "\u13E6"], [43959, 1, "\u13E7"], [43960, 1, "\u13E8"], [43961, 1, "\u13E9"], [43962, 1, "\u13EA"], [43963, 1, "\u13EB"], [43964, 1, "\u13EC"], [43965, 1, "\u13ED"], [43966, 1, "\u13EE"], [43967, 1, "\u13EF"], [[43968, 44010], 2], [44011, 2], [[44012, 44013], 2], [[44014, 44015], 3], [[44016, 44025], 2], [[44026, 44031], 3], [[44032, 55203], 2], [[55204, 55215], 3], [[55216, 55238], 2], [[55239, 55242], 3], [[55243, 55291], 2], [[55292, 55295], 3], [[55296, 57343], 3], [[57344, 63743], 3], [63744, 1, "\u8C48"], [63745, 1, "\u66F4"], [63746, 1, "\u8ECA"], [63747, 1, "\u8CC8"], [63748, 1, "\u6ED1"], [63749, 1, "\u4E32"], [63750, 1, "\u53E5"], [[63751, 63752], 1, "\u9F9C"], [63753, 1, "\u5951"], [63754, 1, "\u91D1"], [63755, 1, "\u5587"], [63756, 1, "\u5948"], [63757, 1, "\u61F6"], [63758, 1, "\u7669"], [63759, 1, "\u7F85"], [63760, 1, "\u863F"], [63761, 1, "\u87BA"], [63762, 1, "\u88F8"], [63763, 1, "\u908F"], [63764, 1, "\u6A02"], [63765, 1, "\u6D1B"], [63766, 1, "\u70D9"], [63767, 1, "\u73DE"], [63768, 1, "\u843D"], [63769, 1, "\u916A"], [63770, 1, "\u99F1"], [63771, 1, "\u4E82"], [63772, 1, "\u5375"], [63773, 1, "\u6B04"], [63774, 1, "\u721B"], [63775, 1, "\u862D"], [63776, 1, "\u9E1E"], [63777, 1, "\u5D50"], [63778, 1, "\u6FEB"], [63779, 1, "\u85CD"], [63780, 1, "\u8964"], [63781, 1, "\u62C9"], [63782, 1, "\u81D8"], [63783, 1, "\u881F"], [63784, 1, "\u5ECA"], [63785, 1, "\u6717"], [63786, 1, "\u6D6A"], [63787, 1, "\u72FC"], [63788, 1, "\u90CE"], [63789, 1, "\u4F86"], [63790, 1, "\u51B7"], [63791, 1, "\u52DE"], [63792, 1, "\u64C4"], [63793, 1, "\u6AD3"], [63794, 1, "\u7210"], [63795, 1, "\u76E7"], [63796, 1, "\u8001"], [63797, 1, "\u8606"], [63798, 1, "\u865C"], [63799, 1, "\u8DEF"], [63800, 1, "\u9732"], [63801, 1, "\u9B6F"], [63802, 1, "\u9DFA"], [63803, 1, "\u788C"], [63804, 1, "\u797F"], [63805, 1, "\u7DA0"], [63806, 1, "\u83C9"], [63807, 1, "\u9304"], [63808, 1, "\u9E7F"], [63809, 1, "\u8AD6"], [63810, 1, "\u58DF"], [63811, 1, "\u5F04"], [63812, 1, "\u7C60"], [63813, 1, "\u807E"], [63814, 1, "\u7262"], [63815, 1, "\u78CA"], [63816, 1, "\u8CC2"], [63817, 1, "\u96F7"], [63818, 1, "\u58D8"], [63819, 1, "\u5C62"], [63820, 1, "\u6A13"], [63821, 1, "\u6DDA"], [63822, 1, "\u6F0F"], [63823, 1, "\u7D2F"], [63824, 1, "\u7E37"], [63825, 1, "\u964B"], [63826, 1, "\u52D2"], [63827, 1, "\u808B"], [63828, 1, "\u51DC"], [63829, 1, "\u51CC"], [63830, 1, "\u7A1C"], [63831, 1, "\u7DBE"], [63832, 1, "\u83F1"], [63833, 1, "\u9675"], [63834, 1, "\u8B80"], [63835, 1, "\u62CF"], [63836, 1, "\u6A02"], [63837, 1, "\u8AFE"], [63838, 1, "\u4E39"], [63839, 1, "\u5BE7"], [63840, 1, "\u6012"], [63841, 1, "\u7387"], [63842, 1, "\u7570"], [63843, 1, "\u5317"], [63844, 1, "\u78FB"], [63845, 1, "\u4FBF"], [63846, 1, "\u5FA9"], [63847, 1, "\u4E0D"], [63848, 1, "\u6CCC"], [63849, 1, "\u6578"], [63850, 1, "\u7D22"], [63851, 1, "\u53C3"], [63852, 1, "\u585E"], [63853, 1, "\u7701"], [63854, 1, "\u8449"], [63855, 1, "\u8AAA"], [63856, 1, "\u6BBA"], [63857, 1, "\u8FB0"], [63858, 1, "\u6C88"], [63859, 1, "\u62FE"], [63860, 1, "\u82E5"], [63861, 1, "\u63A0"], [63862, 1, "\u7565"], [63863, 1, "\u4EAE"], [63864, 1, "\u5169"], [63865, 1, "\u51C9"], [63866, 1, "\u6881"], [63867, 1, "\u7CE7"], [63868, 1, "\u826F"], [63869, 1, "\u8AD2"], [63870, 1, "\u91CF"], [63871, 1, "\u52F5"], [63872, 1, "\u5442"], [63873, 1, "\u5973"], [63874, 1, "\u5EEC"], [63875, 1, "\u65C5"], [63876, 1, "\u6FFE"], [63877, 1, "\u792A"], [63878, 1, "\u95AD"], [63879, 1, "\u9A6A"], [63880, 1, "\u9E97"], [63881, 1, "\u9ECE"], [63882, 1, "\u529B"], [63883, 1, "\u66C6"], [63884, 1, "\u6B77"], [63885, 1, "\u8F62"], [63886, 1, "\u5E74"], [63887, 1, "\u6190"], [63888, 1, "\u6200"], [63889, 1, "\u649A"], [63890, 1, "\u6F23"], [63891, 1, "\u7149"], [63892, 1, "\u7489"], [63893, 1, "\u79CA"], [63894, 1, "\u7DF4"], [63895, 1, "\u806F"], [63896, 1, "\u8F26"], [63897, 1, "\u84EE"], [63898, 1, "\u9023"], [63899, 1, "\u934A"], [63900, 1, "\u5217"], [63901, 1, "\u52A3"], [63902, 1, "\u54BD"], [63903, 1, "\u70C8"], [63904, 1, "\u88C2"], [63905, 1, "\u8AAA"], [63906, 1, "\u5EC9"], [63907, 1, "\u5FF5"], [63908, 1, "\u637B"], [63909, 1, "\u6BAE"], [63910, 1, "\u7C3E"], [63911, 1, "\u7375"], [63912, 1, "\u4EE4"], [63913, 1, "\u56F9"], [63914, 1, "\u5BE7"], [63915, 1, "\u5DBA"], [63916, 1, "\u601C"], [63917, 1, "\u73B2"], [63918, 1, "\u7469"], [63919, 1, "\u7F9A"], [63920, 1, "\u8046"], [63921, 1, "\u9234"], [63922, 1, "\u96F6"], [63923, 1, "\u9748"], [63924, 1, "\u9818"], [63925, 1, "\u4F8B"], [63926, 1, "\u79AE"], [63927, 1, "\u91B4"], [63928, 1, "\u96B8"], [63929, 1, "\u60E1"], [63930, 1, "\u4E86"], [63931, 1, "\u50DA"], [63932, 1, "\u5BEE"], [63933, 1, "\u5C3F"], [63934, 1, "\u6599"], [63935, 1, "\u6A02"], [63936, 1, "\u71CE"], [63937, 1, "\u7642"], [63938, 1, "\u84FC"], [63939, 1, "\u907C"], [63940, 1, "\u9F8D"], [63941, 1, "\u6688"], [63942, 1, "\u962E"], [63943, 1, "\u5289"], [63944, 1, "\u677B"], [63945, 1, "\u67F3"], [63946, 1, "\u6D41"], [63947, 1, "\u6E9C"], [63948, 1, "\u7409"], [63949, 1, "\u7559"], [63950, 1, "\u786B"], [63951, 1, "\u7D10"], [63952, 1, "\u985E"], [63953, 1, "\u516D"], [63954, 1, "\u622E"], [63955, 1, "\u9678"], [63956, 1, "\u502B"], [63957, 1, "\u5D19"], [63958, 1, "\u6DEA"], [63959, 1, "\u8F2A"], [63960, 1, "\u5F8B"], [63961, 1, "\u6144"], [63962, 1, "\u6817"], [63963, 1, "\u7387"], [63964, 1, "\u9686"], [63965, 1, "\u5229"], [63966, 1, "\u540F"], [63967, 1, "\u5C65"], [63968, 1, "\u6613"], [63969, 1, "\u674E"], [63970, 1, "\u68A8"], [63971, 1, "\u6CE5"], [63972, 1, "\u7406"], [63973, 1, "\u75E2"], [63974, 1, "\u7F79"], [63975, 1, "\u88CF"], [63976, 1, "\u88E1"], [63977, 1, "\u91CC"], [63978, 1, "\u96E2"], [63979, 1, "\u533F"], [63980, 1, "\u6EBA"], [63981, 1, "\u541D"], [63982, 1, "\u71D0"], [63983, 1, "\u7498"], [63984, 1, "\u85FA"], [63985, 1, "\u96A3"], [63986, 1, "\u9C57"], [63987, 1, "\u9E9F"], [63988, 1, "\u6797"], [63989, 1, "\u6DCB"], [63990, 1, "\u81E8"], [63991, 1, "\u7ACB"], [63992, 1, "\u7B20"], [63993, 1, "\u7C92"], [63994, 1, "\u72C0"], [63995, 1, "\u7099"], [63996, 1, "\u8B58"], [63997, 1, "\u4EC0"], [63998, 1, "\u8336"], [63999, 1, "\u523A"], [64e3, 1, "\u5207"], [64001, 1, "\u5EA6"], [64002, 1, "\u62D3"], [64003, 1, "\u7CD6"], [64004, 1, "\u5B85"], [64005, 1, "\u6D1E"], [64006, 1, "\u66B4"], [64007, 1, "\u8F3B"], [64008, 1, "\u884C"], [64009, 1, "\u964D"], [64010, 1, "\u898B"], [64011, 1, "\u5ED3"], [64012, 1, "\u5140"], [64013, 1, "\u55C0"], [[64014, 64015], 2], [64016, 1, "\u585A"], [64017, 2], [64018, 1, "\u6674"], [[64019, 64020], 2], [64021, 1, "\u51DE"], [64022, 1, "\u732A"], [64023, 1, "\u76CA"], [64024, 1, "\u793C"], [64025, 1, "\u795E"], [64026, 1, "\u7965"], [64027, 1, "\u798F"], [64028, 1, "\u9756"], [64029, 1, "\u7CBE"], [64030, 1, "\u7FBD"], [64031, 2], [64032, 1, "\u8612"], [64033, 2], [64034, 1, "\u8AF8"], [[64035, 64036], 2], [64037, 1, "\u9038"], [64038, 1, "\u90FD"], [[64039, 64041], 2], [64042, 1, "\u98EF"], [64043, 1, "\u98FC"], [64044, 1, "\u9928"], [64045, 1, "\u9DB4"], [64046, 1, "\u90DE"], [64047, 1, "\u96B7"], [64048, 1, "\u4FAE"], [64049, 1, "\u50E7"], [64050, 1, "\u514D"], [64051, 1, "\u52C9"], [64052, 1, "\u52E4"], [64053, 1, "\u5351"], [64054, 1, "\u559D"], [64055, 1, "\u5606"], [64056, 1, "\u5668"], [64057, 1, "\u5840"], [64058, 1, "\u58A8"], [64059, 1, "\u5C64"], [64060, 1, "\u5C6E"], [64061, 1, "\u6094"], [64062, 1, "\u6168"], [64063, 1, "\u618E"], [64064, 1, "\u61F2"], [64065, 1, "\u654F"], [64066, 1, "\u65E2"], [64067, 1, "\u6691"], [64068, 1, "\u6885"], [64069, 1, "\u6D77"], [64070, 1, "\u6E1A"], [64071, 1, "\u6F22"], [64072, 1, "\u716E"], [64073, 1, "\u722B"], [64074, 1, "\u7422"], [64075, 1, "\u7891"], [64076, 1, "\u793E"], [64077, 1, "\u7949"], [64078, 1, "\u7948"], [64079, 1, "\u7950"], [64080, 1, "\u7956"], [64081, 1, "\u795D"], [64082, 1, "\u798D"], [64083, 1, "\u798E"], [64084, 1, "\u7A40"], [64085, 1, "\u7A81"], [64086, 1, "\u7BC0"], [64087, 1, "\u7DF4"], [64088, 1, "\u7E09"], [64089, 1, "\u7E41"], [64090, 1, "\u7F72"], [64091, 1, "\u8005"], [64092, 1, "\u81ED"], [[64093, 64094], 1, "\u8279"], [64095, 1, "\u8457"], [64096, 1, "\u8910"], [64097, 1, "\u8996"], [64098, 1, "\u8B01"], [64099, 1, "\u8B39"], [64100, 1, "\u8CD3"], [64101, 1, "\u8D08"], [64102, 1, "\u8FB6"], [64103, 1, "\u9038"], [64104, 1, "\u96E3"], [64105, 1, "\u97FF"], [64106, 1, "\u983B"], [64107, 1, "\u6075"], [64108, 1, "\u{242EE}"], [64109, 1, "\u8218"], [[64110, 64111], 3], [64112, 1, "\u4E26"], [64113, 1, "\u51B5"], [64114, 1, "\u5168"], [64115, 1, "\u4F80"], [64116, 1, "\u5145"], [64117, 1, "\u5180"], [64118, 1, "\u52C7"], [64119, 1, "\u52FA"], [64120, 1, "\u559D"], [64121, 1, "\u5555"], [64122, 1, "\u5599"], [64123, 1, "\u55E2"], [64124, 1, "\u585A"], [64125, 1, "\u58B3"], [64126, 1, "\u5944"], [64127, 1, "\u5954"], [64128, 1, "\u5A62"], [64129, 1, "\u5B28"], [64130, 1, "\u5ED2"], [64131, 1, "\u5ED9"], [64132, 1, "\u5F69"], [64133, 1, "\u5FAD"], [64134, 1, "\u60D8"], [64135, 1, "\u614E"], [64136, 1, "\u6108"], [64137, 1, "\u618E"], [64138, 1, "\u6160"], [64139, 1, "\u61F2"], [64140, 1, "\u6234"], [64141, 1, "\u63C4"], [64142, 1, "\u641C"], [64143, 1, "\u6452"], [64144, 1, "\u6556"], [64145, 1, "\u6674"], [64146, 1, "\u6717"], [64147, 1, "\u671B"], [64148, 1, "\u6756"], [64149, 1, "\u6B79"], [64150, 1, "\u6BBA"], [64151, 1, "\u6D41"], [64152, 1, "\u6EDB"], [64153, 1, "\u6ECB"], [64154, 1, "\u6F22"], [64155, 1, "\u701E"], [64156, 1, "\u716E"], [64157, 1, "\u77A7"], [64158, 1, "\u7235"], [64159, 1, "\u72AF"], [64160, 1, "\u732A"], [64161, 1, "\u7471"], [64162, 1, "\u7506"], [64163, 1, "\u753B"], [64164, 1, "\u761D"], [64165, 1, "\u761F"], [64166, 1, "\u76CA"], [64167, 1, "\u76DB"], [64168, 1, "\u76F4"], [64169, 1, "\u774A"], [64170, 1, "\u7740"], [64171, 1, "\u78CC"], [64172, 1, "\u7AB1"], [64173, 1, "\u7BC0"], [64174, 1, "\u7C7B"], [64175, 1, "\u7D5B"], [64176, 1, "\u7DF4"], [64177, 1, "\u7F3E"], [64178, 1, "\u8005"], [64179, 1, "\u8352"], [64180, 1, "\u83EF"], [64181, 1, "\u8779"], [64182, 1, "\u8941"], [64183, 1, "\u8986"], [64184, 1, "\u8996"], [64185, 1, "\u8ABF"], [64186, 1, "\u8AF8"], [64187, 1, "\u8ACB"], [64188, 1, "\u8B01"], [64189, 1, "\u8AFE"], [64190, 1, "\u8AED"], [64191, 1, "\u8B39"], [64192, 1, "\u8B8A"], [64193, 1, "\u8D08"], [64194, 1, "\u8F38"], [64195, 1, "\u9072"], [64196, 1, "\u9199"], [64197, 1, "\u9276"], [64198, 1, "\u967C"], [64199, 1, "\u96E3"], [64200, 1, "\u9756"], [64201, 1, "\u97DB"], [64202, 1, "\u97FF"], [64203, 1, "\u980B"], [64204, 1, "\u983B"], [64205, 1, "\u9B12"], [64206, 1, "\u9F9C"], [64207, 1, "\u{2284A}"], [64208, 1, "\u{22844}"], [64209, 1, "\u{233D5}"], [64210, 1, "\u3B9D"], [64211, 1, "\u4018"], [64212, 1, "\u4039"], [64213, 1, "\u{25249}"], [64214, 1, "\u{25CD0}"], [64215, 1, "\u{27ED3}"], [64216, 1, "\u9F43"], [64217, 1, "\u9F8E"], [[64218, 64255], 3], [64256, 1, "ff"], [64257, 1, "fi"], [64258, 1, "fl"], [64259, 1, "ffi"], [64260, 1, "ffl"], [[64261, 64262], 1, "st"], [[64263, 64274], 3], [64275, 1, "\u0574\u0576"], [64276, 1, "\u0574\u0565"], [64277, 1, "\u0574\u056B"], [64278, 1, "\u057E\u0576"], [64279, 1, "\u0574\u056D"], [[64280, 64284], 3], [64285, 1, "\u05D9\u05B4"], [64286, 2], [64287, 1, "\u05F2\u05B7"], [64288, 1, "\u05E2"], [64289, 1, "\u05D0"], [64290, 1, "\u05D3"], [64291, 1, "\u05D4"], [64292, 1, "\u05DB"], [64293, 1, "\u05DC"], [64294, 1, "\u05DD"], [64295, 1, "\u05E8"], [64296, 1, "\u05EA"], [64297, 1, "+"], [64298, 1, "\u05E9\u05C1"], [64299, 1, "\u05E9\u05C2"], [64300, 1, "\u05E9\u05BC\u05C1"], [64301, 1, "\u05E9\u05BC\u05C2"], [64302, 1, "\u05D0\u05B7"], [64303, 1, "\u05D0\u05B8"], [64304, 1, "\u05D0\u05BC"], [64305, 1, "\u05D1\u05BC"], [64306, 1, "\u05D2\u05BC"], [64307, 1, "\u05D3\u05BC"], [64308, 1, "\u05D4\u05BC"], [64309, 1, "\u05D5\u05BC"], [64310, 1, "\u05D6\u05BC"], [64311, 3], [64312, 1, "\u05D8\u05BC"], [64313, 1, "\u05D9\u05BC"], [64314, 1, "\u05DA\u05BC"], [64315, 1, "\u05DB\u05BC"], [64316, 1, "\u05DC\u05BC"], [64317, 3], [64318, 1, "\u05DE\u05BC"], [64319, 3], [64320, 1, "\u05E0\u05BC"], [64321, 1, "\u05E1\u05BC"], [64322, 3], [64323, 1, "\u05E3\u05BC"], [64324, 1, "\u05E4\u05BC"], [64325, 3], [64326, 1, "\u05E6\u05BC"], [64327, 1, "\u05E7\u05BC"], [64328, 1, "\u05E8\u05BC"], [64329, 1, "\u05E9\u05BC"], [64330, 1, "\u05EA\u05BC"], [64331, 1, "\u05D5\u05B9"], [64332, 1, "\u05D1\u05BF"], [64333, 1, "\u05DB\u05BF"], [64334, 1, "\u05E4\u05BF"], [64335, 1, "\u05D0\u05DC"], [[64336, 64337], 1, "\u0671"], [[64338, 64341], 1, "\u067B"], [[64342, 64345], 1, "\u067E"], [[64346, 64349], 1, "\u0680"], [[64350, 64353], 1, "\u067A"], [[64354, 64357], 1, "\u067F"], [[64358, 64361], 1, "\u0679"], [[64362, 64365], 1, "\u06A4"], [[64366, 64369], 1, "\u06A6"], [[64370, 64373], 1, "\u0684"], [[64374, 64377], 1, "\u0683"], [[64378, 64381], 1, "\u0686"], [[64382, 64385], 1, "\u0687"], [[64386, 64387], 1, "\u068D"], [[64388, 64389], 1, "\u068C"], [[64390, 64391], 1, "\u068E"], [[64392, 64393], 1, "\u0688"], [[64394, 64395], 1, "\u0698"], [[64396, 64397], 1, "\u0691"], [[64398, 64401], 1, "\u06A9"], [[64402, 64405], 1, "\u06AF"], [[64406, 64409], 1, "\u06B3"], [[64410, 64413], 1, "\u06B1"], [[64414, 64415], 1, "\u06BA"], [[64416, 64419], 1, "\u06BB"], [[64420, 64421], 1, "\u06C0"], [[64422, 64425], 1, "\u06C1"], [[64426, 64429], 1, "\u06BE"], [[64430, 64431], 1, "\u06D2"], [[64432, 64433], 1, "\u06D3"], [[64434, 64449], 2], [64450, 2], [[64451, 64466], 3], [[64467, 64470], 1, "\u06AD"], [[64471, 64472], 1, "\u06C7"], [[64473, 64474], 1, "\u06C6"], [[64475, 64476], 1, "\u06C8"], [64477, 1, "\u06C7\u0674"], [[64478, 64479], 1, "\u06CB"], [[64480, 64481], 1, "\u06C5"], [[64482, 64483], 1, "\u06C9"], [[64484, 64487], 1, "\u06D0"], [[64488, 64489], 1, "\u0649"], [[64490, 64491], 1, "\u0626\u0627"], [[64492, 64493], 1, "\u0626\u06D5"], [[64494, 64495], 1, "\u0626\u0648"], [[64496, 64497], 1, "\u0626\u06C7"], [[64498, 64499], 1, "\u0626\u06C6"], [[64500, 64501], 1, "\u0626\u06C8"], [[64502, 64504], 1, "\u0626\u06D0"], [[64505, 64507], 1, "\u0626\u0649"], [[64508, 64511], 1, "\u06CC"], [64512, 1, "\u0626\u062C"], [64513, 1, "\u0626\u062D"], [64514, 1, "\u0626\u0645"], [64515, 1, "\u0626\u0649"], [64516, 1, "\u0626\u064A"], [64517, 1, "\u0628\u062C"], [64518, 1, "\u0628\u062D"], [64519, 1, "\u0628\u062E"], [64520, 1, "\u0628\u0645"], [64521, 1, "\u0628\u0649"], [64522, 1, "\u0628\u064A"], [64523, 1, "\u062A\u062C"], [64524, 1, "\u062A\u062D"], [64525, 1, "\u062A\u062E"], [64526, 1, "\u062A\u0645"], [64527, 1, "\u062A\u0649"], [64528, 1, "\u062A\u064A"], [64529, 1, "\u062B\u062C"], [64530, 1, "\u062B\u0645"], [64531, 1, "\u062B\u0649"], [64532, 1, "\u062B\u064A"], [64533, 1, "\u062C\u062D"], [64534, 1, "\u062C\u0645"], [64535, 1, "\u062D\u062C"], [64536, 1, "\u062D\u0645"], [64537, 1, "\u062E\u062C"], [64538, 1, "\u062E\u062D"], [64539, 1, "\u062E\u0645"], [64540, 1, "\u0633\u062C"], [64541, 1, "\u0633\u062D"], [64542, 1, "\u0633\u062E"], [64543, 1, "\u0633\u0645"], [64544, 1, "\u0635\u062D"], [64545, 1, "\u0635\u0645"], [64546, 1, "\u0636\u062C"], [64547, 1, "\u0636\u062D"], [64548, 1, "\u0636\u062E"], [64549, 1, "\u0636\u0645"], [64550, 1, "\u0637\u062D"], [64551, 1, "\u0637\u0645"], [64552, 1, "\u0638\u0645"], [64553, 1, "\u0639\u062C"], [64554, 1, "\u0639\u0645"], [64555, 1, "\u063A\u062C"], [64556, 1, "\u063A\u0645"], [64557, 1, "\u0641\u062C"], [64558, 1, "\u0641\u062D"], [64559, 1, "\u0641\u062E"], [64560, 1, "\u0641\u0645"], [64561, 1, "\u0641\u0649"], [64562, 1, "\u0641\u064A"], [64563, 1, "\u0642\u062D"], [64564, 1, "\u0642\u0645"], [64565, 1, "\u0642\u0649"], [64566, 1, "\u0642\u064A"], [64567, 1, "\u0643\u0627"], [64568, 1, "\u0643\u062C"], [64569, 1, "\u0643\u062D"], [64570, 1, "\u0643\u062E"], [64571, 1, "\u0643\u0644"], [64572, 1, "\u0643\u0645"], [64573, 1, "\u0643\u0649"], [64574, 1, "\u0643\u064A"], [64575, 1, "\u0644\u062C"], [64576, 1, "\u0644\u062D"], [64577, 1, "\u0644\u062E"], [64578, 1, "\u0644\u0645"], [64579, 1, "\u0644\u0649"], [64580, 1, "\u0644\u064A"], [64581, 1, "\u0645\u062C"], [64582, 1, "\u0645\u062D"], [64583, 1, "\u0645\u062E"], [64584, 1, "\u0645\u0645"], [64585, 1, "\u0645\u0649"], [64586, 1, "\u0645\u064A"], [64587, 1, "\u0646\u062C"], [64588, 1, "\u0646\u062D"], [64589, 1, "\u0646\u062E"], [64590, 1, "\u0646\u0645"], [64591, 1, "\u0646\u0649"], [64592, 1, "\u0646\u064A"], [64593, 1, "\u0647\u062C"], [64594, 1, "\u0647\u0645"], [64595, 1, "\u0647\u0649"], [64596, 1, "\u0647\u064A"], [64597, 1, "\u064A\u062C"], [64598, 1, "\u064A\u062D"], [64599, 1, "\u064A\u062E"], [64600, 1, "\u064A\u0645"], [64601, 1, "\u064A\u0649"], [64602, 1, "\u064A\u064A"], [64603, 1, "\u0630\u0670"], [64604, 1, "\u0631\u0670"], [64605, 1, "\u0649\u0670"], [64606, 1, " \u064C\u0651"], [64607, 1, " \u064D\u0651"], [64608, 1, " \u064E\u0651"], [64609, 1, " \u064F\u0651"], [64610, 1, " \u0650\u0651"], [64611, 1, " \u0651\u0670"], [64612, 1, "\u0626\u0631"], [64613, 1, "\u0626\u0632"], [64614, 1, "\u0626\u0645"], [64615, 1, "\u0626\u0646"], [64616, 1, "\u0626\u0649"], [64617, 1, "\u0626\u064A"], [64618, 1, "\u0628\u0631"], [64619, 1, "\u0628\u0632"], [64620, 1, "\u0628\u0645"], [64621, 1, "\u0628\u0646"], [64622, 1, "\u0628\u0649"], [64623, 1, "\u0628\u064A"], [64624, 1, "\u062A\u0631"], [64625, 1, "\u062A\u0632"], [64626, 1, "\u062A\u0645"], [64627, 1, "\u062A\u0646"], [64628, 1, "\u062A\u0649"], [64629, 1, "\u062A\u064A"], [64630, 1, "\u062B\u0631"], [64631, 1, "\u062B\u0632"], [64632, 1, "\u062B\u0645"], [64633, 1, "\u062B\u0646"], [64634, 1, "\u062B\u0649"], [64635, 1, "\u062B\u064A"], [64636, 1, "\u0641\u0649"], [64637, 1, "\u0641\u064A"], [64638, 1, "\u0642\u0649"], [64639, 1, "\u0642\u064A"], [64640, 1, "\u0643\u0627"], [64641, 1, "\u0643\u0644"], [64642, 1, "\u0643\u0645"], [64643, 1, "\u0643\u0649"], [64644, 1, "\u0643\u064A"], [64645, 1, "\u0644\u0645"], [64646, 1, "\u0644\u0649"], [64647, 1, "\u0644\u064A"], [64648, 1, "\u0645\u0627"], [64649, 1, "\u0645\u0645"], [64650, 1, "\u0646\u0631"], [64651, 1, "\u0646\u0632"], [64652, 1, "\u0646\u0645"], [64653, 1, "\u0646\u0646"], [64654, 1, "\u0646\u0649"], [64655, 1, "\u0646\u064A"], [64656, 1, "\u0649\u0670"], [64657, 1, "\u064A\u0631"], [64658, 1, "\u064A\u0632"], [64659, 1, "\u064A\u0645"], [64660, 1, "\u064A\u0646"], [64661, 1, "\u064A\u0649"], [64662, 1, "\u064A\u064A"], [64663, 1, "\u0626\u062C"], [64664, 1, "\u0626\u062D"], [64665, 1, "\u0626\u062E"], [64666, 1, "\u0626\u0645"], [64667, 1, "\u0626\u0647"], [64668, 1, "\u0628\u062C"], [64669, 1, "\u0628\u062D"], [64670, 1, "\u0628\u062E"], [64671, 1, "\u0628\u0645"], [64672, 1, "\u0628\u0647"], [64673, 1, "\u062A\u062C"], [64674, 1, "\u062A\u062D"], [64675, 1, "\u062A\u062E"], [64676, 1, "\u062A\u0645"], [64677, 1, "\u062A\u0647"], [64678, 1, "\u062B\u0645"], [64679, 1, "\u062C\u062D"], [64680, 1, "\u062C\u0645"], [64681, 1, "\u062D\u062C"], [64682, 1, "\u062D\u0645"], [64683, 1, "\u062E\u062C"], [64684, 1, "\u062E\u0645"], [64685, 1, "\u0633\u062C"], [64686, 1, "\u0633\u062D"], [64687, 1, "\u0633\u062E"], [64688, 1, "\u0633\u0645"], [64689, 1, "\u0635\u062D"], [64690, 1, "\u0635\u062E"], [64691, 1, "\u0635\u0645"], [64692, 1, "\u0636\u062C"], [64693, 1, "\u0636\u062D"], [64694, 1, "\u0636\u062E"], [64695, 1, "\u0636\u0645"], [64696, 1, "\u0637\u062D"], [64697, 1, "\u0638\u0645"], [64698, 1, "\u0639\u062C"], [64699, 1, "\u0639\u0645"], [64700, 1, "\u063A\u062C"], [64701, 1, "\u063A\u0645"], [64702, 1, "\u0641\u062C"], [64703, 1, "\u0641\u062D"], [64704, 1, "\u0641\u062E"], [64705, 1, "\u0641\u0645"], [64706, 1, "\u0642\u062D"], [64707, 1, "\u0642\u0645"], [64708, 1, "\u0643\u062C"], [64709, 1, "\u0643\u062D"], [64710, 1, "\u0643\u062E"], [64711, 1, "\u0643\u0644"], [64712, 1, "\u0643\u0645"], [64713, 1, "\u0644\u062C"], [64714, 1, "\u0644\u062D"], [64715, 1, "\u0644\u062E"], [64716, 1, "\u0644\u0645"], [64717, 1, "\u0644\u0647"], [64718, 1, "\u0645\u062C"], [64719, 1, "\u0645\u062D"], [64720, 1, "\u0645\u062E"], [64721, 1, "\u0645\u0645"], [64722, 1, "\u0646\u062C"], [64723, 1, "\u0646\u062D"], [64724, 1, "\u0646\u062E"], [64725, 1, "\u0646\u0645"], [64726, 1, "\u0646\u0647"], [64727, 1, "\u0647\u062C"], [64728, 1, "\u0647\u0645"], [64729, 1, "\u0647\u0670"], [64730, 1, "\u064A\u062C"], [64731, 1, "\u064A\u062D"], [64732, 1, "\u064A\u062E"], [64733, 1, "\u064A\u0645"], [64734, 1, "\u064A\u0647"], [64735, 1, "\u0626\u0645"], [64736, 1, "\u0626\u0647"], [64737, 1, "\u0628\u0645"], [64738, 1, "\u0628\u0647"], [64739, 1, "\u062A\u0645"], [64740, 1, "\u062A\u0647"], [64741, 1, "\u062B\u0645"], [64742, 1, "\u062B\u0647"], [64743, 1, "\u0633\u0645"], [64744, 1, "\u0633\u0647"], [64745, 1, "\u0634\u0645"], [64746, 1, "\u0634\u0647"], [64747, 1, "\u0643\u0644"], [64748, 1, "\u0643\u0645"], [64749, 1, "\u0644\u0645"], [64750, 1, "\u0646\u0645"], [64751, 1, "\u0646\u0647"], [64752, 1, "\u064A\u0645"], [64753, 1, "\u064A\u0647"], [64754, 1, "\u0640\u064E\u0651"], [64755, 1, "\u0640\u064F\u0651"], [64756, 1, "\u0640\u0650\u0651"], [64757, 1, "\u0637\u0649"], [64758, 1, "\u0637\u064A"], [64759, 1, "\u0639\u0649"], [64760, 1, "\u0639\u064A"], [64761, 1, "\u063A\u0649"], [64762, 1, "\u063A\u064A"], [64763, 1, "\u0633\u0649"], [64764, 1, "\u0633\u064A"], [64765, 1, "\u0634\u0649"], [64766, 1, "\u0634\u064A"], [64767, 1, "\u062D\u0649"], [64768, 1, "\u062D\u064A"], [64769, 1, "\u062C\u0649"], [64770, 1, "\u062C\u064A"], [64771, 1, "\u062E\u0649"], [64772, 1, "\u062E\u064A"], [64773, 1, "\u0635\u0649"], [64774, 1, "\u0635\u064A"], [64775, 1, "\u0636\u0649"], [64776, 1, "\u0636\u064A"], [64777, 1, "\u0634\u062C"], [64778, 1, "\u0634\u062D"], [64779, 1, "\u0634\u062E"], [64780, 1, "\u0634\u0645"], [64781, 1, "\u0634\u0631"], [64782, 1, "\u0633\u0631"], [64783, 1, "\u0635\u0631"], [64784, 1, "\u0636\u0631"], [64785, 1, "\u0637\u0649"], [64786, 1, "\u0637\u064A"], [64787, 1, "\u0639\u0649"], [64788, 1, "\u0639\u064A"], [64789, 1, "\u063A\u0649"], [64790, 1, "\u063A\u064A"], [64791, 1, "\u0633\u0649"], [64792, 1, "\u0633\u064A"], [64793, 1, "\u0634\u0649"], [64794, 1, "\u0634\u064A"], [64795, 1, "\u062D\u0649"], [64796, 1, "\u062D\u064A"], [64797, 1, "\u062C\u0649"], [64798, 1, "\u062C\u064A"], [64799, 1, "\u062E\u0649"], [64800, 1, "\u062E\u064A"], [64801, 1, "\u0635\u0649"], [64802, 1, "\u0635\u064A"], [64803, 1, "\u0636\u0649"], [64804, 1, "\u0636\u064A"], [64805, 1, "\u0634\u062C"], [64806, 1, "\u0634\u062D"], [64807, 1, "\u0634\u062E"], [64808, 1, "\u0634\u0645"], [64809, 1, "\u0634\u0631"], [64810, 1, "\u0633\u0631"], [64811, 1, "\u0635\u0631"], [64812, 1, "\u0636\u0631"], [64813, 1, "\u0634\u062C"], [64814, 1, "\u0634\u062D"], [64815, 1, "\u0634\u062E"], [64816, 1, "\u0634\u0645"], [64817, 1, "\u0633\u0647"], [64818, 1, "\u0634\u0647"], [64819, 1, "\u0637\u0645"], [64820, 1, "\u0633\u062C"], [64821, 1, "\u0633\u062D"], [64822, 1, "\u0633\u062E"], [64823, 1, "\u0634\u062C"], [64824, 1, "\u0634\u062D"], [64825, 1, "\u0634\u062E"], [64826, 1, "\u0637\u0645"], [64827, 1, "\u0638\u0645"], [[64828, 64829], 1, "\u0627\u064B"], [[64830, 64831], 2], [[64832, 64847], 2], [64848, 1, "\u062A\u062C\u0645"], [[64849, 64850], 1, "\u062A\u062D\u062C"], [64851, 1, "\u062A\u062D\u0645"], [64852, 1, "\u062A\u062E\u0645"], [64853, 1, "\u062A\u0645\u062C"], [64854, 1, "\u062A\u0645\u062D"], [64855, 1, "\u062A\u0645\u062E"], [[64856, 64857], 1, "\u062C\u0645\u062D"], [64858, 1, "\u062D\u0645\u064A"], [64859, 1, "\u062D\u0645\u0649"], [64860, 1, "\u0633\u062D\u062C"], [64861, 1, "\u0633\u062C\u062D"], [64862, 1, "\u0633\u062C\u0649"], [[64863, 64864], 1, "\u0633\u0645\u062D"], [64865, 1, "\u0633\u0645\u062C"], [[64866, 64867], 1, "\u0633\u0645\u0645"], [[64868, 64869], 1, "\u0635\u062D\u062D"], [64870, 1, "\u0635\u0645\u0645"], [[64871, 64872], 1, "\u0634\u062D\u0645"], [64873, 1, "\u0634\u062C\u064A"], [[64874, 64875], 1, "\u0634\u0645\u062E"], [[64876, 64877], 1, "\u0634\u0645\u0645"], [64878, 1, "\u0636\u062D\u0649"], [[64879, 64880], 1, "\u0636\u062E\u0645"], [[64881, 64882], 1, "\u0637\u0645\u062D"], [64883, 1, "\u0637\u0645\u0645"], [64884, 1, "\u0637\u0645\u064A"], [64885, 1, "\u0639\u062C\u0645"], [[64886, 64887], 1, "\u0639\u0645\u0645"], [64888, 1, "\u0639\u0645\u0649"], [64889, 1, "\u063A\u0645\u0645"], [64890, 1, "\u063A\u0645\u064A"], [64891, 1, "\u063A\u0645\u0649"], [[64892, 64893], 1, "\u0641\u062E\u0645"], [64894, 1, "\u0642\u0645\u062D"], [64895, 1, "\u0642\u0645\u0645"], [64896, 1, "\u0644\u062D\u0645"], [64897, 1, "\u0644\u062D\u064A"], [64898, 1, "\u0644\u062D\u0649"], [[64899, 64900], 1, "\u0644\u062C\u062C"], [[64901, 64902], 1, "\u0644\u062E\u0645"], [[64903, 64904], 1, "\u0644\u0645\u062D"], [64905, 1, "\u0645\u062D\u062C"], [64906, 1, "\u0645\u062D\u0645"], [64907, 1, "\u0645\u062D\u064A"], [64908, 1, "\u0645\u062C\u062D"], [64909, 1, "\u0645\u062C\u0645"], [64910, 1, "\u0645\u062E\u062C"], [64911, 1, "\u0645\u062E\u0645"], [[64912, 64913], 3], [64914, 1, "\u0645\u062C\u062E"], [64915, 1, "\u0647\u0645\u062C"], [64916, 1, "\u0647\u0645\u0645"], [64917, 1, "\u0646\u062D\u0645"], [64918, 1, "\u0646\u062D\u0649"], [[64919, 64920], 1, "\u0646\u062C\u0645"], [64921, 1, "\u0646\u062C\u0649"], [64922, 1, "\u0646\u0645\u064A"], [64923, 1, "\u0646\u0645\u0649"], [[64924, 64925], 1, "\u064A\u0645\u0645"], [64926, 1, "\u0628\u062E\u064A"], [64927, 1, "\u062A\u062C\u064A"], [64928, 1, "\u062A\u062C\u0649"], [64929, 1, "\u062A\u062E\u064A"], [64930, 1, "\u062A\u062E\u0649"], [64931, 1, "\u062A\u0645\u064A"], [64932, 1, "\u062A\u0645\u0649"], [64933, 1, "\u062C\u0645\u064A"], [64934, 1, "\u062C\u062D\u0649"], [64935, 1, "\u062C\u0645\u0649"], [64936, 1, "\u0633\u062E\u0649"], [64937, 1, "\u0635\u062D\u064A"], [64938, 1, "\u0634\u062D\u064A"], [64939, 1, "\u0636\u062D\u064A"], [64940, 1, "\u0644\u062C\u064A"], [64941, 1, "\u0644\u0645\u064A"], [64942, 1, "\u064A\u062D\u064A"], [64943, 1, "\u064A\u062C\u064A"], [64944, 1, "\u064A\u0645\u064A"], [64945, 1, "\u0645\u0645\u064A"], [64946, 1, "\u0642\u0645\u064A"], [64947, 1, "\u0646\u062D\u064A"], [64948, 1, "\u0642\u0645\u062D"], [64949, 1, "\u0644\u062D\u0645"], [64950, 1, "\u0639\u0645\u064A"], [64951, 1, "\u0643\u0645\u064A"], [64952, 1, "\u0646\u062C\u062D"], [64953, 1, "\u0645\u062E\u064A"], [64954, 1, "\u0644\u062C\u0645"], [64955, 1, "\u0643\u0645\u0645"], [64956, 1, "\u0644\u062C\u0645"], [64957, 1, "\u0646\u062C\u062D"], [64958, 1, "\u062C\u062D\u064A"], [64959, 1, "\u062D\u062C\u064A"], [64960, 1, "\u0645\u062C\u064A"], [64961, 1, "\u0641\u0645\u064A"], [64962, 1, "\u0628\u062D\u064A"], [64963, 1, "\u0643\u0645\u0645"], [64964, 1, "\u0639\u062C\u0645"], [64965, 1, "\u0635\u0645\u0645"], [64966, 1, "\u0633\u062E\u064A"], [64967, 1, "\u0646\u062C\u064A"], [[64968, 64974], 3], [64975, 2], [[64976, 65007], 3], [65008, 1, "\u0635\u0644\u06D2"], [65009, 1, "\u0642\u0644\u06D2"], [65010, 1, "\u0627\u0644\u0644\u0647"], [65011, 1, "\u0627\u0643\u0628\u0631"], [65012, 1, "\u0645\u062D\u0645\u062F"], [65013, 1, "\u0635\u0644\u0639\u0645"], [65014, 1, "\u0631\u0633\u0648\u0644"], [65015, 1, "\u0639\u0644\u064A\u0647"], [65016, 1, "\u0648\u0633\u0644\u0645"], [65017, 1, "\u0635\u0644\u0649"], [65018, 1, "\u0635\u0644\u0649 \u0627\u0644\u0644\u0647 \u0639\u0644\u064A\u0647 \u0648\u0633\u0644\u0645"], [65019, 1, "\u062C\u0644 \u062C\u0644\u0627\u0644\u0647"], [65020, 1, "\u0631\u06CC\u0627\u0644"], [65021, 2], [[65022, 65023], 2], [[65024, 65039], 7], [65040, 1, ","], [65041, 1, "\u3001"], [65042, 3], [65043, 1, ":"], [65044, 1, ";"], [65045, 1, "!"], [65046, 1, "?"], [65047, 1, "\u3016"], [65048, 1, "\u3017"], [65049, 3], [[65050, 65055], 3], [[65056, 65059], 2], [[65060, 65062], 2], [[65063, 65069], 2], [[65070, 65071], 2], [65072, 3], [65073, 1, "\u2014"], [65074, 1, "\u2013"], [[65075, 65076], 1, "_"], [65077, 1, "("], [65078, 1, ")"], [65079, 1, "{"], [65080, 1, "}"], [65081, 1, "\u3014"], [65082, 1, "\u3015"], [65083, 1, "\u3010"], [65084, 1, "\u3011"], [65085, 1, "\u300A"], [65086, 1, "\u300B"], [65087, 1, "\u3008"], [65088, 1, "\u3009"], [65089, 1, "\u300C"], [65090, 1, "\u300D"], [65091, 1, "\u300E"], [65092, 1, "\u300F"], [[65093, 65094], 2], [65095, 1, "["], [65096, 1, "]"], [[65097, 65100], 1, " \u0305"], [[65101, 65103], 1, "_"], [65104, 1, ","], [65105, 1, "\u3001"], [65106, 3], [65107, 3], [65108, 1, ";"], [65109, 1, ":"], [65110, 1, "?"], [65111, 1, "!"], [65112, 1, "\u2014"], [65113, 1, "("], [65114, 1, ")"], [65115, 1, "{"], [65116, 1, "}"], [65117, 1, "\u3014"], [65118, 1, "\u3015"], [65119, 1, "#"], [65120, 1, "&"], [65121, 1, "*"], [65122, 1, "+"], [65123, 1, "-"], [65124, 1, "<"], [65125, 1, ">"], [65126, 1, "="], [65127, 3], [65128, 1, "\\"], [65129, 1, "$"], [65130, 1, "%"], [65131, 1, "@"], [[65132, 65135], 3], [65136, 1, " \u064B"], [65137, 1, "\u0640\u064B"], [65138, 1, " \u064C"], [65139, 2], [65140, 1, " \u064D"], [65141, 3], [65142, 1, " \u064E"], [65143, 1, "\u0640\u064E"], [65144, 1, " \u064F"], [65145, 1, "\u0640\u064F"], [65146, 1, " \u0650"], [65147, 1, "\u0640\u0650"], [65148, 1, " \u0651"], [65149, 1, "\u0640\u0651"], [65150, 1, " \u0652"], [65151, 1, "\u0640\u0652"], [65152, 1, "\u0621"], [[65153, 65154], 1, "\u0622"], [[65155, 65156], 1, "\u0623"], [[65157, 65158], 1, "\u0624"], [[65159, 65160], 1, "\u0625"], [[65161, 65164], 1, "\u0626"], [[65165, 65166], 1, "\u0627"], [[65167, 65170], 1, "\u0628"], [[65171, 65172], 1, "\u0629"], [[65173, 65176], 1, "\u062A"], [[65177, 65180], 1, "\u062B"], [[65181, 65184], 1, "\u062C"], [[65185, 65188], 1, "\u062D"], [[65189, 65192], 1, "\u062E"], [[65193, 65194], 1, "\u062F"], [[65195, 65196], 1, "\u0630"], [[65197, 65198], 1, "\u0631"], [[65199, 65200], 1, "\u0632"], [[65201, 65204], 1, "\u0633"], [[65205, 65208], 1, "\u0634"], [[65209, 65212], 1, "\u0635"], [[65213, 65216], 1, "\u0636"], [[65217, 65220], 1, "\u0637"], [[65221, 65224], 1, "\u0638"], [[65225, 65228], 1, "\u0639"], [[65229, 65232], 1, "\u063A"], [[65233, 65236], 1, "\u0641"], [[65237, 65240], 1, "\u0642"], [[65241, 65244], 1, "\u0643"], [[65245, 65248], 1, "\u0644"], [[65249, 65252], 1, "\u0645"], [[65253, 65256], 1, "\u0646"], [[65257, 65260], 1, "\u0647"], [[65261, 65262], 1, "\u0648"], [[65263, 65264], 1, "\u0649"], [[65265, 65268], 1, "\u064A"], [[65269, 65270], 1, "\u0644\u0622"], [[65271, 65272], 1, "\u0644\u0623"], [[65273, 65274], 1, "\u0644\u0625"], [[65275, 65276], 1, "\u0644\u0627"], [[65277, 65278], 3], [65279, 7], [65280, 3], [65281, 1, "!"], [65282, 1, '"'], [65283, 1, "#"], [65284, 1, "$"], [65285, 1, "%"], [65286, 1, "&"], [65287, 1, "'"], [65288, 1, "("], [65289, 1, ")"], [65290, 1, "*"], [65291, 1, "+"], [65292, 1, ","], [65293, 1, "-"], [65294, 1, "."], [65295, 1, "/"], [65296, 1, "0"], [65297, 1, "1"], [65298, 1, "2"], [65299, 1, "3"], [65300, 1, "4"], [65301, 1, "5"], [65302, 1, "6"], [65303, 1, "7"], [65304, 1, "8"], [65305, 1, "9"], [65306, 1, ":"], [65307, 1, ";"], [65308, 1, "<"], [65309, 1, "="], [65310, 1, ">"], [65311, 1, "?"], [65312, 1, "@"], [65313, 1, "a"], [65314, 1, "b"], [65315, 1, "c"], [65316, 1, "d"], [65317, 1, "e"], [65318, 1, "f"], [65319, 1, "g"], [65320, 1, "h"], [65321, 1, "i"], [65322, 1, "j"], [65323, 1, "k"], [65324, 1, "l"], [65325, 1, "m"], [65326, 1, "n"], [65327, 1, "o"], [65328, 1, "p"], [65329, 1, "q"], [65330, 1, "r"], [65331, 1, "s"], [65332, 1, "t"], [65333, 1, "u"], [65334, 1, "v"], [65335, 1, "w"], [65336, 1, "x"], [65337, 1, "y"], [65338, 1, "z"], [65339, 1, "["], [65340, 1, "\\"], [65341, 1, "]"], [65342, 1, "^"], [65343, 1, "_"], [65344, 1, "`"], [65345, 1, "a"], [65346, 1, "b"], [65347, 1, "c"], [65348, 1, "d"], [65349, 1, "e"], [65350, 1, "f"], [65351, 1, "g"], [65352, 1, "h"], [65353, 1, "i"], [65354, 1, "j"], [65355, 1, "k"], [65356, 1, "l"], [65357, 1, "m"], [65358, 1, "n"], [65359, 1, "o"], [65360, 1, "p"], [65361, 1, "q"], [65362, 1, "r"], [65363, 1, "s"], [65364, 1, "t"], [65365, 1, "u"], [65366, 1, "v"], [65367, 1, "w"], [65368, 1, "x"], [65369, 1, "y"], [65370, 1, "z"], [65371, 1, "{"], [65372, 1, "|"], [65373, 1, "}"], [65374, 1, "~"], [65375, 1, "\u2985"], [65376, 1, "\u2986"], [65377, 1, "."], [65378, 1, "\u300C"], [65379, 1, "\u300D"], [65380, 1, "\u3001"], [65381, 1, "\u30FB"], [65382, 1, "\u30F2"], [65383, 1, "\u30A1"], [65384, 1, "\u30A3"], [65385, 1, "\u30A5"], [65386, 1, "\u30A7"], [65387, 1, "\u30A9"], [65388, 1, "\u30E3"], [65389, 1, "\u30E5"], [65390, 1, "\u30E7"], [65391, 1, "\u30C3"], [65392, 1, "\u30FC"], [65393, 1, "\u30A2"], [65394, 1, "\u30A4"], [65395, 1, "\u30A6"], [65396, 1, "\u30A8"], [65397, 1, "\u30AA"], [65398, 1, "\u30AB"], [65399, 1, "\u30AD"], [65400, 1, "\u30AF"], [65401, 1, "\u30B1"], [65402, 1, "\u30B3"], [65403, 1, "\u30B5"], [65404, 1, "\u30B7"], [65405, 1, "\u30B9"], [65406, 1, "\u30BB"], [65407, 1, "\u30BD"], [65408, 1, "\u30BF"], [65409, 1, "\u30C1"], [65410, 1, "\u30C4"], [65411, 1, "\u30C6"], [65412, 1, "\u30C8"], [65413, 1, "\u30CA"], [65414, 1, "\u30CB"], [65415, 1, "\u30CC"], [65416, 1, "\u30CD"], [65417, 1, "\u30CE"], [65418, 1, "\u30CF"], [65419, 1, "\u30D2"], [65420, 1, "\u30D5"], [65421, 1, "\u30D8"], [65422, 1, "\u30DB"], [65423, 1, "\u30DE"], [65424, 1, "\u30DF"], [65425, 1, "\u30E0"], [65426, 1, "\u30E1"], [65427, 1, "\u30E2"], [65428, 1, "\u30E4"], [65429, 1, "\u30E6"], [65430, 1, "\u30E8"], [65431, 1, "\u30E9"], [65432, 1, "\u30EA"], [65433, 1, "\u30EB"], [65434, 1, "\u30EC"], [65435, 1, "\u30ED"], [65436, 1, "\u30EF"], [65437, 1, "\u30F3"], [65438, 1, "\u3099"], [65439, 1, "\u309A"], [65440, 7], [65441, 1, "\u1100"], [65442, 1, "\u1101"], [65443, 1, "\u11AA"], [65444, 1, "\u1102"], [65445, 1, "\u11AC"], [65446, 1, "\u11AD"], [65447, 1, "\u1103"], [65448, 1, "\u1104"], [65449, 1, "\u1105"], [65450, 1, "\u11B0"], [65451, 1, "\u11B1"], [65452, 1, "\u11B2"], [65453, 1, "\u11B3"], [65454, 1, "\u11B4"], [65455, 1, "\u11B5"], [65456, 1, "\u111A"], [65457, 1, "\u1106"], [65458, 1, "\u1107"], [65459, 1, "\u1108"], [65460, 1, "\u1121"], [65461, 1, "\u1109"], [65462, 1, "\u110A"], [65463, 1, "\u110B"], [65464, 1, "\u110C"], [65465, 1, "\u110D"], [65466, 1, "\u110E"], [65467, 1, "\u110F"], [65468, 1, "\u1110"], [65469, 1, "\u1111"], [65470, 1, "\u1112"], [[65471, 65473], 3], [65474, 1, "\u1161"], [65475, 1, "\u1162"], [65476, 1, "\u1163"], [65477, 1, "\u1164"], [65478, 1, "\u1165"], [65479, 1, "\u1166"], [[65480, 65481], 3], [65482, 1, "\u1167"], [65483, 1, "\u1168"], [65484, 1, "\u1169"], [65485, 1, "\u116A"], [65486, 1, "\u116B"], [65487, 1, "\u116C"], [[65488, 65489], 3], [65490, 1, "\u116D"], [65491, 1, "\u116E"], [65492, 1, "\u116F"], [65493, 1, "\u1170"], [65494, 1, "\u1171"], [65495, 1, "\u1172"], [[65496, 65497], 3], [65498, 1, "\u1173"], [65499, 1, "\u1174"], [65500, 1, "\u1175"], [[65501, 65503], 3], [65504, 1, "\xA2"], [65505, 1, "\xA3"], [65506, 1, "\xAC"], [65507, 1, " \u0304"], [65508, 1, "\xA6"], [65509, 1, "\xA5"], [65510, 1, "\u20A9"], [65511, 3], [65512, 1, "\u2502"], [65513, 1, "\u2190"], [65514, 1, "\u2191"], [65515, 1, "\u2192"], [65516, 1, "\u2193"], [65517, 1, "\u25A0"], [65518, 1, "\u25CB"], [[65519, 65528], 3], [[65529, 65531], 3], [65532, 3], [65533, 3], [[65534, 65535], 3], [[65536, 65547], 2], [65548, 3], [[65549, 65574], 2], [65575, 3], [[65576, 65594], 2], [65595, 3], [[65596, 65597], 2], [65598, 3], [[65599, 65613], 2], [[65614, 65615], 3], [[65616, 65629], 2], [[65630, 65663], 3], [[65664, 65786], 2], [[65787, 65791], 3], [[65792, 65794], 2], [[65795, 65798], 3], [[65799, 65843], 2], [[65844, 65846], 3], [[65847, 65855], 2], [[65856, 65930], 2], [[65931, 65932], 2], [[65933, 65934], 2], [65935, 3], [[65936, 65947], 2], [65948, 2], [[65949, 65951], 3], [65952, 2], [[65953, 65999], 3], [[66e3, 66044], 2], [66045, 2], [[66046, 66175], 3], [[66176, 66204], 2], [[66205, 66207], 3], [[66208, 66256], 2], [[66257, 66271], 3], [66272, 2], [[66273, 66299], 2], [[66300, 66303], 3], [[66304, 66334], 2], [66335, 2], [[66336, 66339], 2], [[66340, 66348], 3], [[66349, 66351], 2], [[66352, 66368], 2], [66369, 2], [[66370, 66377], 2], [66378, 2], [[66379, 66383], 3], [[66384, 66426], 2], [[66427, 66431], 3], [[66432, 66461], 2], [66462, 3], [66463, 2], [[66464, 66499], 2], [[66500, 66503], 3], [[66504, 66511], 2], [[66512, 66517], 2], [[66518, 66559], 3], [66560, 1, "\u{10428}"], [66561, 1, "\u{10429}"], [66562, 1, "\u{1042A}"], [66563, 1, "\u{1042B}"], [66564, 1, "\u{1042C}"], [66565, 1, "\u{1042D}"], [66566, 1, "\u{1042E}"], [66567, 1, "\u{1042F}"], [66568, 1, "\u{10430}"], [66569, 1, "\u{10431}"], [66570, 1, "\u{10432}"], [66571, 1, "\u{10433}"], [66572, 1, "\u{10434}"], [66573, 1, "\u{10435}"], [66574, 1, "\u{10436}"], [66575, 1, "\u{10437}"], [66576, 1, "\u{10438}"], [66577, 1, "\u{10439}"], [66578, 1, "\u{1043A}"], [66579, 1, "\u{1043B}"], [66580, 1, "\u{1043C}"], [66581, 1, "\u{1043D}"], [66582, 1, "\u{1043E}"], [66583, 1, "\u{1043F}"], [66584, 1, "\u{10440}"], [66585, 1, "\u{10441}"], [66586, 1, "\u{10442}"], [66587, 1, "\u{10443}"], [66588, 1, "\u{10444}"], [66589, 1, "\u{10445}"], [66590, 1, "\u{10446}"], [66591, 1, "\u{10447}"], [66592, 1, "\u{10448}"], [66593, 1, "\u{10449}"], [66594, 1, "\u{1044A}"], [66595, 1, "\u{1044B}"], [66596, 1, "\u{1044C}"], [66597, 1, "\u{1044D}"], [66598, 1, "\u{1044E}"], [66599, 1, "\u{1044F}"], [[66600, 66637], 2], [[66638, 66717], 2], [[66718, 66719], 3], [[66720, 66729], 2], [[66730, 66735], 3], [66736, 1, "\u{104D8}"], [66737, 1, "\u{104D9}"], [66738, 1, "\u{104DA}"], [66739, 1, "\u{104DB}"], [66740, 1, "\u{104DC}"], [66741, 1, "\u{104DD}"], [66742, 1, "\u{104DE}"], [66743, 1, "\u{104DF}"], [66744, 1, "\u{104E0}"], [66745, 1, "\u{104E1}"], [66746, 1, "\u{104E2}"], [66747, 1, "\u{104E3}"], [66748, 1, "\u{104E4}"], [66749, 1, "\u{104E5}"], [66750, 1, "\u{104E6}"], [66751, 1, "\u{104E7}"], [66752, 1, "\u{104E8}"], [66753, 1, "\u{104E9}"], [66754, 1, "\u{104EA}"], [66755, 1, "\u{104EB}"], [66756, 1, "\u{104EC}"], [66757, 1, "\u{104ED}"], [66758, 1, "\u{104EE}"], [66759, 1, "\u{104EF}"], [66760, 1, "\u{104F0}"], [66761, 1, "\u{104F1}"], [66762, 1, "\u{104F2}"], [66763, 1, "\u{104F3}"], [66764, 1, "\u{104F4}"], [66765, 1, "\u{104F5}"], [66766, 1, "\u{104F6}"], [66767, 1, "\u{104F7}"], [66768, 1, "\u{104F8}"], [66769, 1, "\u{104F9}"], [66770, 1, "\u{104FA}"], [66771, 1, "\u{104FB}"], [[66772, 66775], 3], [[66776, 66811], 2], [[66812, 66815], 3], [[66816, 66855], 2], [[66856, 66863], 3], [[66864, 66915], 2], [[66916, 66926], 3], [66927, 2], [66928, 1, "\u{10597}"], [66929, 1, "\u{10598}"], [66930, 1, "\u{10599}"], [66931, 1, "\u{1059A}"], [66932, 1, "\u{1059B}"], [66933, 1, "\u{1059C}"], [66934, 1, "\u{1059D}"], [66935, 1, "\u{1059E}"], [66936, 1, "\u{1059F}"], [66937, 1, "\u{105A0}"], [66938, 1, "\u{105A1}"], [66939, 3], [66940, 1, "\u{105A3}"], [66941, 1, "\u{105A4}"], [66942, 1, "\u{105A5}"], [66943, 1, "\u{105A6}"], [66944, 1, "\u{105A7}"], [66945, 1, "\u{105A8}"], [66946, 1, "\u{105A9}"], [66947, 1, "\u{105AA}"], [66948, 1, "\u{105AB}"], [66949, 1, "\u{105AC}"], [66950, 1, "\u{105AD}"], [66951, 1, "\u{105AE}"], [66952, 1, "\u{105AF}"], [66953, 1, "\u{105B0}"], [66954, 1, "\u{105B1}"], [66955, 3], [66956, 1, "\u{105B3}"], [66957, 1, "\u{105B4}"], [66958, 1, "\u{105B5}"], [66959, 1, "\u{105B6}"], [66960, 1, "\u{105B7}"], [66961, 1, "\u{105B8}"], [66962, 1, "\u{105B9}"], [66963, 3], [66964, 1, "\u{105BB}"], [66965, 1, "\u{105BC}"], [66966, 3], [[66967, 66977], 2], [66978, 3], [[66979, 66993], 2], [66994, 3], [[66995, 67001], 2], [67002, 3], [[67003, 67004], 2], [[67005, 67007], 3], [[67008, 67059], 2], [[67060, 67071], 3], [[67072, 67382], 2], [[67383, 67391], 3], [[67392, 67413], 2], [[67414, 67423], 3], [[67424, 67431], 2], [[67432, 67455], 3], [67456, 2], [67457, 1, "\u02D0"], [67458, 1, "\u02D1"], [67459, 1, "\xE6"], [67460, 1, "\u0299"], [67461, 1, "\u0253"], [67462, 3], [67463, 1, "\u02A3"], [67464, 1, "\uAB66"], [67465, 1, "\u02A5"], [67466, 1, "\u02A4"], [67467, 1, "\u0256"], [67468, 1, "\u0257"], [67469, 1, "\u1D91"], [67470, 1, "\u0258"], [67471, 1, "\u025E"], [67472, 1, "\u02A9"], [67473, 1, "\u0264"], [67474, 1, "\u0262"], [67475, 1, "\u0260"], [67476, 1, "\u029B"], [67477, 1, "\u0127"], [67478, 1, "\u029C"], [67479, 1, "\u0267"], [67480, 1, "\u0284"], [67481, 1, "\u02AA"], [67482, 1, "\u02AB"], [67483, 1, "\u026C"], [67484, 1, "\u{1DF04}"], [67485, 1, "\uA78E"], [67486, 1, "\u026E"], [67487, 1, "\u{1DF05}"], [67488, 1, "\u028E"], [67489, 1, "\u{1DF06}"], [67490, 1, "\xF8"], [67491, 1, "\u0276"], [67492, 1, "\u0277"], [67493, 1, "q"], [67494, 1, "\u027A"], [67495, 1, "\u{1DF08}"], [67496, 1, "\u027D"], [67497, 1, "\u027E"], [67498, 1, "\u0280"], [67499, 1, "\u02A8"], [67500, 1, "\u02A6"], [67501, 1, "\uAB67"], [67502, 1, "\u02A7"], [67503, 1, "\u0288"], [67504, 1, "\u2C71"], [67505, 3], [67506, 1, "\u028F"], [67507, 1, "\u02A1"], [67508, 1, "\u02A2"], [67509, 1, "\u0298"], [67510, 1, "\u01C0"], [67511, 1, "\u01C1"], [67512, 1, "\u01C2"], [67513, 1, "\u{1DF0A}"], [67514, 1, "\u{1DF1E}"], [[67515, 67583], 3], [[67584, 67589], 2], [[67590, 67591], 3], [67592, 2], [67593, 3], [[67594, 67637], 2], [67638, 3], [[67639, 67640], 2], [[67641, 67643], 3], [67644, 2], [[67645, 67646], 3], [67647, 2], [[67648, 67669], 2], [67670, 3], [[67671, 67679], 2], [[67680, 67702], 2], [[67703, 67711], 2], [[67712, 67742], 2], [[67743, 67750], 3], [[67751, 67759], 2], [[67760, 67807], 3], [[67808, 67826], 2], [67827, 3], [[67828, 67829], 2], [[67830, 67834], 3], [[67835, 67839], 2], [[67840, 67861], 2], [[67862, 67865], 2], [[67866, 67867], 2], [[67868, 67870], 3], [67871, 2], [[67872, 67897], 2], [[67898, 67902], 3], [67903, 2], [[67904, 67967], 3], [[67968, 68023], 2], [[68024, 68027], 3], [[68028, 68029], 2], [[68030, 68031], 2], [[68032, 68047], 2], [[68048, 68049], 3], [[68050, 68095], 2], [[68096, 68099], 2], [68100, 3], [[68101, 68102], 2], [[68103, 68107], 3], [[68108, 68115], 2], [68116, 3], [[68117, 68119], 2], [68120, 3], [[68121, 68147], 2], [[68148, 68149], 2], [[68150, 68151], 3], [[68152, 68154], 2], [[68155, 68158], 3], [68159, 2], [[68160, 68167], 2], [68168, 2], [[68169, 68175], 3], [[68176, 68184], 2], [[68185, 68191], 3], [[68192, 68220], 2], [[68221, 68223], 2], [[68224, 68252], 2], [[68253, 68255], 2], [[68256, 68287], 3], [[68288, 68295], 2], [68296, 2], [[68297, 68326], 2], [[68327, 68330], 3], [[68331, 68342], 2], [[68343, 68351], 3], [[68352, 68405], 2], [[68406, 68408], 3], [[68409, 68415], 2], [[68416, 68437], 2], [[68438, 68439], 3], [[68440, 68447], 2], [[68448, 68466], 2], [[68467, 68471], 3], [[68472, 68479], 2], [[68480, 68497], 2], [[68498, 68504], 3], [[68505, 68508], 2], [[68509, 68520], 3], [[68521, 68527], 2], [[68528, 68607], 3], [[68608, 68680], 2], [[68681, 68735], 3], [68736, 1, "\u{10CC0}"], [68737, 1, "\u{10CC1}"], [68738, 1, "\u{10CC2}"], [68739, 1, "\u{10CC3}"], [68740, 1, "\u{10CC4}"], [68741, 1, "\u{10CC5}"], [68742, 1, "\u{10CC6}"], [68743, 1, "\u{10CC7}"], [68744, 1, "\u{10CC8}"], [68745, 1, "\u{10CC9}"], [68746, 1, "\u{10CCA}"], [68747, 1, "\u{10CCB}"], [68748, 1, "\u{10CCC}"], [68749, 1, "\u{10CCD}"], [68750, 1, "\u{10CCE}"], [68751, 1, "\u{10CCF}"], [68752, 1, "\u{10CD0}"], [68753, 1, "\u{10CD1}"], [68754, 1, "\u{10CD2}"], [68755, 1, "\u{10CD3}"], [68756, 1, "\u{10CD4}"], [68757, 1, "\u{10CD5}"], [68758, 1, "\u{10CD6}"], [68759, 1, "\u{10CD7}"], [68760, 1, "\u{10CD8}"], [68761, 1, "\u{10CD9}"], [68762, 1, "\u{10CDA}"], [68763, 1, "\u{10CDB}"], [68764, 1, "\u{10CDC}"], [68765, 1, "\u{10CDD}"], [68766, 1, "\u{10CDE}"], [68767, 1, "\u{10CDF}"], [68768, 1, "\u{10CE0}"], [68769, 1, "\u{10CE1}"], [68770, 1, "\u{10CE2}"], [68771, 1, "\u{10CE3}"], [68772, 1, "\u{10CE4}"], [68773, 1, "\u{10CE5}"], [68774, 1, "\u{10CE6}"], [68775, 1, "\u{10CE7}"], [68776, 1, "\u{10CE8}"], [68777, 1, "\u{10CE9}"], [68778, 1, "\u{10CEA}"], [68779, 1, "\u{10CEB}"], [68780, 1, "\u{10CEC}"], [68781, 1, "\u{10CED}"], [68782, 1, "\u{10CEE}"], [68783, 1, "\u{10CEF}"], [68784, 1, "\u{10CF0}"], [68785, 1, "\u{10CF1}"], [68786, 1, "\u{10CF2}"], [[68787, 68799], 3], [[68800, 68850], 2], [[68851, 68857], 3], [[68858, 68863], 2], [[68864, 68903], 2], [[68904, 68911], 3], [[68912, 68921], 2], [[68922, 68927], 3], [[68928, 68943], 2], [68944, 1, "\u{10D70}"], [68945, 1, "\u{10D71}"], [68946, 1, "\u{10D72}"], [68947, 1, "\u{10D73}"], [68948, 1, "\u{10D74}"], [68949, 1, "\u{10D75}"], [68950, 1, "\u{10D76}"], [68951, 1, "\u{10D77}"], [68952, 1, "\u{10D78}"], [68953, 1, "\u{10D79}"], [68954, 1, "\u{10D7A}"], [68955, 1, "\u{10D7B}"], [68956, 1, "\u{10D7C}"], [68957, 1, "\u{10D7D}"], [68958, 1, "\u{10D7E}"], [68959, 1, "\u{10D7F}"], [68960, 1, "\u{10D80}"], [68961, 1, "\u{10D81}"], [68962, 1, "\u{10D82}"], [68963, 1, "\u{10D83}"], [68964, 1, "\u{10D84}"], [68965, 1, "\u{10D85}"], [[68966, 68968], 3], [[68969, 68973], 2], [68974, 2], [[68975, 68997], 2], [[68998, 69005], 3], [[69006, 69007], 2], [[69008, 69215], 3], [[69216, 69246], 2], [69247, 3], [[69248, 69289], 2], [69290, 3], [[69291, 69292], 2], [69293, 2], [[69294, 69295], 3], [[69296, 69297], 2], [[69298, 69313], 3], [[69314, 69316], 2], [[69317, 69371], 3], [69372, 2], [[69373, 69375], 2], [[69376, 69404], 2], [[69405, 69414], 2], [69415, 2], [[69416, 69423], 3], [[69424, 69456], 2], [[69457, 69465], 2], [[69466, 69487], 3], [[69488, 69509], 2], [[69510, 69513], 2], [[69514, 69551], 3], [[69552, 69572], 2], [[69573, 69579], 2], [[69580, 69599], 3], [[69600, 69622], 2], [[69623, 69631], 3], [[69632, 69702], 2], [[69703, 69709], 2], [[69710, 69713], 3], [[69714, 69733], 2], [[69734, 69743], 2], [[69744, 69749], 2], [[69750, 69758], 3], [69759, 2], [[69760, 69818], 2], [[69819, 69820], 2], [69821, 3], [[69822, 69825], 2], [69826, 2], [[69827, 69836], 3], [69837, 3], [[69838, 69839], 3], [[69840, 69864], 2], [[69865, 69871], 3], [[69872, 69881], 2], [[69882, 69887], 3], [[69888, 69940], 2], [69941, 3], [[69942, 69951], 2], [[69952, 69955], 2], [[69956, 69958], 2], [69959, 2], [[69960, 69967], 3], [[69968, 70003], 2], [[70004, 70005], 2], [70006, 2], [[70007, 70015], 3], [[70016, 70084], 2], [[70085, 70088], 2], [[70089, 70092], 2], [70093, 2], [[70094, 70095], 2], [[70096, 70105], 2], [70106, 2], [70107, 2], [70108, 2], [[70109, 70111], 2], [70112, 3], [[70113, 70132], 2], [[70133, 70143], 3], [[70144, 70161], 2], [70162, 3], [[70163, 70199], 2], [[70200, 70205], 2], [70206, 2], [[70207, 70209], 2], [[70210, 70271], 3], [[70272, 70278], 2], [70279, 3], [70280, 2], [70281, 3], [[70282, 70285], 2], [70286, 3], [[70287, 70301], 2], [70302, 3], [[70303, 70312], 2], [70313, 2], [[70314, 70319], 3], [[70320, 70378], 2], [[70379, 70383], 3], [[70384, 70393], 2], [[70394, 70399], 3], [70400, 2], [[70401, 70403], 2], [70404, 3], [[70405, 70412], 2], [[70413, 70414], 3], [[70415, 70416], 2], [[70417, 70418], 3], [[70419, 70440], 2], [70441, 3], [[70442, 70448], 2], [70449, 3], [[70450, 70451], 2], [70452, 3], [[70453, 70457], 2], [70458, 3], [70459, 2], [[70460, 70468], 2], [[70469, 70470], 3], [[70471, 70472], 2], [[70473, 70474], 3], [[70475, 70477], 2], [[70478, 70479], 3], [70480, 2], [[70481, 70486], 3], [70487, 2], [[70488, 70492], 3], [[70493, 70499], 2], [[70500, 70501], 3], [[70502, 70508], 2], [[70509, 70511], 3], [[70512, 70516], 2], [[70517, 70527], 3], [[70528, 70537], 2], [70538, 3], [70539, 2], [[70540, 70541], 3], [70542, 2], [70543, 3], [[70544, 70581], 2], [70582, 3], [[70583, 70592], 2], [70593, 3], [70594, 2], [[70595, 70596], 3], [70597, 2], [70598, 3], [[70599, 70602], 2], [70603, 3], [[70604, 70611], 2], [[70612, 70613], 2], [70614, 3], [[70615, 70616], 2], [[70617, 70624], 3], [[70625, 70626], 2], [[70627, 70655], 3], [[70656, 70730], 2], [[70731, 70735], 2], [[70736, 70745], 2], [70746, 2], [70747, 2], [70748, 3], [70749, 2], [70750, 2], [70751, 2], [[70752, 70753], 2], [[70754, 70783], 3], [[70784, 70853], 2], [70854, 2], [70855, 2], [[70856, 70863], 3], [[70864, 70873], 2], [[70874, 71039], 3], [[71040, 71093], 2], [[71094, 71095], 3], [[71096, 71104], 2], [[71105, 71113], 2], [[71114, 71127], 2], [[71128, 71133], 2], [[71134, 71167], 3], [[71168, 71232], 2], [[71233, 71235], 2], [71236, 2], [[71237, 71247], 3], [[71248, 71257], 2], [[71258, 71263], 3], [[71264, 71276], 2], [[71277, 71295], 3], [[71296, 71351], 2], [71352, 2], [71353, 2], [[71354, 71359], 3], [[71360, 71369], 2], [[71370, 71375], 3], [[71376, 71395], 2], [[71396, 71423], 3], [[71424, 71449], 2], [71450, 2], [[71451, 71452], 3], [[71453, 71467], 2], [[71468, 71471], 3], [[71472, 71481], 2], [[71482, 71487], 2], [[71488, 71494], 2], [[71495, 71679], 3], [[71680, 71738], 2], [71739, 2], [[71740, 71839], 3], [71840, 1, "\u{118C0}"], [71841, 1, "\u{118C1}"], [71842, 1, "\u{118C2}"], [71843, 1, "\u{118C3}"], [71844, 1, "\u{118C4}"], [71845, 1, "\u{118C5}"], [71846, 1, "\u{118C6}"], [71847, 1, "\u{118C7}"], [71848, 1, "\u{118C8}"], [71849, 1, "\u{118C9}"], [71850, 1, "\u{118CA}"], [71851, 1, "\u{118CB}"], [71852, 1, "\u{118CC}"], [71853, 1, "\u{118CD}"], [71854, 1, "\u{118CE}"], [71855, 1, "\u{118CF}"], [71856, 1, "\u{118D0}"], [71857, 1, "\u{118D1}"], [71858, 1, "\u{118D2}"], [71859, 1, "\u{118D3}"], [71860, 1, "\u{118D4}"], [71861, 1, "\u{118D5}"], [71862, 1, "\u{118D6}"], [71863, 1, "\u{118D7}"], [71864, 1, "\u{118D8}"], [71865, 1, "\u{118D9}"], [71866, 1, "\u{118DA}"], [71867, 1, "\u{118DB}"], [71868, 1, "\u{118DC}"], [71869, 1, "\u{118DD}"], [71870, 1, "\u{118DE}"], [71871, 1, "\u{118DF}"], [[71872, 71913], 2], [[71914, 71922], 2], [[71923, 71934], 3], [71935, 2], [[71936, 71942], 2], [[71943, 71944], 3], [71945, 2], [[71946, 71947], 3], [[71948, 71955], 2], [71956, 3], [[71957, 71958], 2], [71959, 3], [[71960, 71989], 2], [71990, 3], [[71991, 71992], 2], [[71993, 71994], 3], [[71995, 72003], 2], [[72004, 72006], 2], [[72007, 72015], 3], [[72016, 72025], 2], [[72026, 72095], 3], [[72096, 72103], 2], [[72104, 72105], 3], [[72106, 72151], 2], [[72152, 72153], 3], [[72154, 72161], 2], [72162, 2], [[72163, 72164], 2], [[72165, 72191], 3], [[72192, 72254], 2], [[72255, 72262], 2], [72263, 2], [[72264, 72271], 3], [[72272, 72323], 2], [[72324, 72325], 2], [[72326, 72345], 2], [[72346, 72348], 2], [72349, 2], [[72350, 72354], 2], [[72355, 72367], 3], [[72368, 72383], 2], [[72384, 72440], 2], [[72441, 72447], 3], [[72448, 72457], 2], [[72458, 72639], 3], [[72640, 72672], 2], [72673, 2], [[72674, 72687], 3], [[72688, 72697], 2], [[72698, 72703], 3], [[72704, 72712], 2], [72713, 3], [[72714, 72758], 2], [72759, 3], [[72760, 72768], 2], [[72769, 72773], 2], [[72774, 72783], 3], [[72784, 72793], 2], [[72794, 72812], 2], [[72813, 72815], 3], [[72816, 72817], 2], [[72818, 72847], 2], [[72848, 72849], 3], [[72850, 72871], 2], [72872, 3], [[72873, 72886], 2], [[72887, 72959], 3], [[72960, 72966], 2], [72967, 3], [[72968, 72969], 2], [72970, 3], [[72971, 73014], 2], [[73015, 73017], 3], [73018, 2], [73019, 3], [[73020, 73021], 2], [73022, 3], [[73023, 73031], 2], [[73032, 73039], 3], [[73040, 73049], 2], [[73050, 73055], 3], [[73056, 73061], 2], [73062, 3], [[73063, 73064], 2], [73065, 3], [[73066, 73102], 2], [73103, 3], [[73104, 73105], 2], [73106, 3], [[73107, 73112], 2], [[73113, 73119], 3], [[73120, 73129], 2], [[73130, 73439], 3], [[73440, 73462], 2], [[73463, 73464], 2], [[73465, 73471], 3], [[73472, 73488], 2], [73489, 3], [[73490, 73530], 2], [[73531, 73533], 3], [[73534, 73538], 2], [[73539, 73551], 2], [[73552, 73561], 2], [73562, 2], [[73563, 73647], 3], [73648, 2], [[73649, 73663], 3], [[73664, 73713], 2], [[73714, 73726], 3], [73727, 2], [[73728, 74606], 2], [[74607, 74648], 2], [74649, 2], [[74650, 74751], 3], [[74752, 74850], 2], [[74851, 74862], 2], [74863, 3], [[74864, 74867], 2], [74868, 2], [[74869, 74879], 3], [[74880, 75075], 2], [[75076, 77711], 3], [[77712, 77808], 2], [[77809, 77810], 2], [[77811, 77823], 3], [[77824, 78894], 2], [78895, 2], [[78896, 78904], 3], [[78905, 78911], 3], [[78912, 78933], 2], [[78934, 78943], 3], [[78944, 82938], 2], [[82939, 82943], 3], [[82944, 83526], 2], [[83527, 90367], 3], [[90368, 90425], 2], [[90426, 92159], 3], [[92160, 92728], 2], [[92729, 92735], 3], [[92736, 92766], 2], [92767, 3], [[92768, 92777], 2], [[92778, 92781], 3], [[92782, 92783], 2], [[92784, 92862], 2], [92863, 3], [[92864, 92873], 2], [[92874, 92879], 3], [[92880, 92909], 2], [[92910, 92911], 3], [[92912, 92916], 2], [92917, 2], [[92918, 92927], 3], [[92928, 92982], 2], [[92983, 92991], 2], [[92992, 92995], 2], [[92996, 92997], 2], [[92998, 93007], 3], [[93008, 93017], 2], [93018, 3], [[93019, 93025], 2], [93026, 3], [[93027, 93047], 2], [[93048, 93052], 3], [[93053, 93071], 2], [[93072, 93503], 3], [[93504, 93548], 2], [[93549, 93551], 2], [[93552, 93561], 2], [[93562, 93759], 3], [93760, 1, "\u{16E60}"], [93761, 1, "\u{16E61}"], [93762, 1, "\u{16E62}"], [93763, 1, "\u{16E63}"], [93764, 1, "\u{16E64}"], [93765, 1, "\u{16E65}"], [93766, 1, "\u{16E66}"], [93767, 1, "\u{16E67}"], [93768, 1, "\u{16E68}"], [93769, 1, "\u{16E69}"], [93770, 1, "\u{16E6A}"], [93771, 1, "\u{16E6B}"], [93772, 1, "\u{16E6C}"], [93773, 1, "\u{16E6D}"], [93774, 1, "\u{16E6E}"], [93775, 1, "\u{16E6F}"], [93776, 1, "\u{16E70}"], [93777, 1, "\u{16E71}"], [93778, 1, "\u{16E72}"], [93779, 1, "\u{16E73}"], [93780, 1, "\u{16E74}"], [93781, 1, "\u{16E75}"], [93782, 1, "\u{16E76}"], [93783, 1, "\u{16E77}"], [93784, 1, "\u{16E78}"], [93785, 1, "\u{16E79}"], [93786, 1, "\u{16E7A}"], [93787, 1, "\u{16E7B}"], [93788, 1, "\u{16E7C}"], [93789, 1, "\u{16E7D}"], [93790, 1, "\u{16E7E}"], [93791, 1, "\u{16E7F}"], [[93792, 93823], 2], [[93824, 93850], 2], [[93851, 93951], 3], [[93952, 94020], 2], [[94021, 94026], 2], [[94027, 94030], 3], [94031, 2], [[94032, 94078], 2], [[94079, 94087], 2], [[94088, 94094], 3], [[94095, 94111], 2], [[94112, 94175], 3], [94176, 2], [94177, 2], [94178, 2], [94179, 2], [94180, 2], [[94181, 94191], 3], [[94192, 94193], 2], [[94194, 94207], 3], [[94208, 100332], 2], [[100333, 100337], 2], [[100338, 100343], 2], [[100344, 100351], 3], [[100352, 101106], 2], [[101107, 101589], 2], [[101590, 101630], 3], [101631, 2], [[101632, 101640], 2], [[101641, 110575], 3], [[110576, 110579], 2], [110580, 3], [[110581, 110587], 2], [110588, 3], [[110589, 110590], 2], [110591, 3], [[110592, 110593], 2], [[110594, 110878], 2], [[110879, 110882], 2], [[110883, 110897], 3], [110898, 2], [[110899, 110927], 3], [[110928, 110930], 2], [[110931, 110932], 3], [110933, 2], [[110934, 110947], 3], [[110948, 110951], 2], [[110952, 110959], 3], [[110960, 111355], 2], [[111356, 113663], 3], [[113664, 113770], 2], [[113771, 113775], 3], [[113776, 113788], 2], [[113789, 113791], 3], [[113792, 113800], 2], [[113801, 113807], 3], [[113808, 113817], 2], [[113818, 113819], 3], [113820, 2], [[113821, 113822], 2], [113823, 2], [[113824, 113827], 7], [[113828, 117759], 3], [[117760, 117973], 2], [117974, 1, "a"], [117975, 1, "b"], [117976, 1, "c"], [117977, 1, "d"], [117978, 1, "e"], [117979, 1, "f"], [117980, 1, "g"], [117981, 1, "h"], [117982, 1, "i"], [117983, 1, "j"], [117984, 1, "k"], [117985, 1, "l"], [117986, 1, "m"], [117987, 1, "n"], [117988, 1, "o"], [117989, 1, "p"], [117990, 1, "q"], [117991, 1, "r"], [117992, 1, "s"], [117993, 1, "t"], [117994, 1, "u"], [117995, 1, "v"], [117996, 1, "w"], [117997, 1, "x"], [117998, 1, "y"], [117999, 1, "z"], [118e3, 1, "0"], [118001, 1, "1"], [118002, 1, "2"], [118003, 1, "3"], [118004, 1, "4"], [118005, 1, "5"], [118006, 1, "6"], [118007, 1, "7"], [118008, 1, "8"], [118009, 1, "9"], [[118010, 118015], 3], [[118016, 118451], 2], [[118452, 118527], 3], [[118528, 118573], 2], [[118574, 118575], 3], [[118576, 118598], 2], [[118599, 118607], 3], [[118608, 118723], 2], [[118724, 118783], 3], [[118784, 119029], 2], [[119030, 119039], 3], [[119040, 119078], 2], [[119079, 119080], 3], [119081, 2], [[119082, 119133], 2], [119134, 1, "\u{1D157}\u{1D165}"], [119135, 1, "\u{1D158}\u{1D165}"], [119136, 1, "\u{1D158}\u{1D165}\u{1D16E}"], [119137, 1, "\u{1D158}\u{1D165}\u{1D16F}"], [119138, 1, "\u{1D158}\u{1D165}\u{1D170}"], [119139, 1, "\u{1D158}\u{1D165}\u{1D171}"], [119140, 1, "\u{1D158}\u{1D165}\u{1D172}"], [[119141, 119154], 2], [[119155, 119162], 7], [[119163, 119226], 2], [119227, 1, "\u{1D1B9}\u{1D165}"], [119228, 1, "\u{1D1BA}\u{1D165}"], [119229, 1, "\u{1D1B9}\u{1D165}\u{1D16E}"], [119230, 1, "\u{1D1BA}\u{1D165}\u{1D16E}"], [119231, 1, "\u{1D1B9}\u{1D165}\u{1D16F}"], [119232, 1, "\u{1D1BA}\u{1D165}\u{1D16F}"], [[119233, 119261], 2], [[119262, 119272], 2], [[119273, 119274], 2], [[119275, 119295], 3], [[119296, 119365], 2], [[119366, 119487], 3], [[119488, 119507], 2], [[119508, 119519], 3], [[119520, 119539], 2], [[119540, 119551], 3], [[119552, 119638], 2], [[119639, 119647], 3], [[119648, 119665], 2], [[119666, 119672], 2], [[119673, 119807], 3], [119808, 1, "a"], [119809, 1, "b"], [119810, 1, "c"], [119811, 1, "d"], [119812, 1, "e"], [119813, 1, "f"], [119814, 1, "g"], [119815, 1, "h"], [119816, 1, "i"], [119817, 1, "j"], [119818, 1, "k"], [119819, 1, "l"], [119820, 1, "m"], [119821, 1, "n"], [119822, 1, "o"], [119823, 1, "p"], [119824, 1, "q"], [119825, 1, "r"], [119826, 1, "s"], [119827, 1, "t"], [119828, 1, "u"], [119829, 1, "v"], [119830, 1, "w"], [119831, 1, "x"], [119832, 1, "y"], [119833, 1, "z"], [119834, 1, "a"], [119835, 1, "b"], [119836, 1, "c"], [119837, 1, "d"], [119838, 1, "e"], [119839, 1, "f"], [119840, 1, "g"], [119841, 1, "h"], [119842, 1, "i"], [119843, 1, "j"], [119844, 1, "k"], [119845, 1, "l"], [119846, 1, "m"], [119847, 1, "n"], [119848, 1, "o"], [119849, 1, "p"], [119850, 1, "q"], [119851, 1, "r"], [119852, 1, "s"], [119853, 1, "t"], [119854, 1, "u"], [119855, 1, "v"], [119856, 1, "w"], [119857, 1, "x"], [119858, 1, "y"], [119859, 1, "z"], [119860, 1, "a"], [119861, 1, "b"], [119862, 1, "c"], [119863, 1, "d"], [119864, 1, "e"], [119865, 1, "f"], [119866, 1, "g"], [119867, 1, "h"], [119868, 1, "i"], [119869, 1, "j"], [119870, 1, "k"], [119871, 1, "l"], [119872, 1, "m"], [119873, 1, "n"], [119874, 1, "o"], [119875, 1, "p"], [119876, 1, "q"], [119877, 1, "r"], [119878, 1, "s"], [119879, 1, "t"], [119880, 1, "u"], [119881, 1, "v"], [119882, 1, "w"], [119883, 1, "x"], [119884, 1, "y"], [119885, 1, "z"], [119886, 1, "a"], [119887, 1, "b"], [119888, 1, "c"], [119889, 1, "d"], [119890, 1, "e"], [119891, 1, "f"], [119892, 1, "g"], [119893, 3], [119894, 1, "i"], [119895, 1, "j"], [119896, 1, "k"], [119897, 1, "l"], [119898, 1, "m"], [119899, 1, "n"], [119900, 1, "o"], [119901, 1, "p"], [119902, 1, "q"], [119903, 1, "r"], [119904, 1, "s"], [119905, 1, "t"], [119906, 1, "u"], [119907, 1, "v"], [119908, 1, "w"], [119909, 1, "x"], [119910, 1, "y"], [119911, 1, "z"], [119912, 1, "a"], [119913, 1, "b"], [119914, 1, "c"], [119915, 1, "d"], [119916, 1, "e"], [119917, 1, "f"], [119918, 1, "g"], [119919, 1, "h"], [119920, 1, "i"], [119921, 1, "j"], [119922, 1, "k"], [119923, 1, "l"], [119924, 1, "m"], [119925, 1, "n"], [119926, 1, "o"], [119927, 1, "p"], [119928, 1, "q"], [119929, 1, "r"], [119930, 1, "s"], [119931, 1, "t"], [119932, 1, "u"], [119933, 1, "v"], [119934, 1, "w"], [119935, 1, "x"], [119936, 1, "y"], [119937, 1, "z"], [119938, 1, "a"], [119939, 1, "b"], [119940, 1, "c"], [119941, 1, "d"], [119942, 1, "e"], [119943, 1, "f"], [119944, 1, "g"], [119945, 1, "h"], [119946, 1, "i"], [119947, 1, "j"], [119948, 1, "k"], [119949, 1, "l"], [119950, 1, "m"], [119951, 1, "n"], [119952, 1, "o"], [119953, 1, "p"], [119954, 1, "q"], [119955, 1, "r"], [119956, 1, "s"], [119957, 1, "t"], [119958, 1, "u"], [119959, 1, "v"], [119960, 1, "w"], [119961, 1, "x"], [119962, 1, "y"], [119963, 1, "z"], [119964, 1, "a"], [119965, 3], [119966, 1, "c"], [119967, 1, "d"], [[119968, 119969], 3], [119970, 1, "g"], [[119971, 119972], 3], [119973, 1, "j"], [119974, 1, "k"], [[119975, 119976], 3], [119977, 1, "n"], [119978, 1, "o"], [119979, 1, "p"], [119980, 1, "q"], [119981, 3], [119982, 1, "s"], [119983, 1, "t"], [119984, 1, "u"], [119985, 1, "v"], [119986, 1, "w"], [119987, 1, "x"], [119988, 1, "y"], [119989, 1, "z"], [119990, 1, "a"], [119991, 1, "b"], [119992, 1, "c"], [119993, 1, "d"], [119994, 3], [119995, 1, "f"], [119996, 3], [119997, 1, "h"], [119998, 1, "i"], [119999, 1, "j"], [12e4, 1, "k"], [120001, 1, "l"], [120002, 1, "m"], [120003, 1, "n"], [120004, 3], [120005, 1, "p"], [120006, 1, "q"], [120007, 1, "r"], [120008, 1, "s"], [120009, 1, "t"], [120010, 1, "u"], [120011, 1, "v"], [120012, 1, "w"], [120013, 1, "x"], [120014, 1, "y"], [120015, 1, "z"], [120016, 1, "a"], [120017, 1, "b"], [120018, 1, "c"], [120019, 1, "d"], [120020, 1, "e"], [120021, 1, "f"], [120022, 1, "g"], [120023, 1, "h"], [120024, 1, "i"], [120025, 1, "j"], [120026, 1, "k"], [120027, 1, "l"], [120028, 1, "m"], [120029, 1, "n"], [120030, 1, "o"], [120031, 1, "p"], [120032, 1, "q"], [120033, 1, "r"], [120034, 1, "s"], [120035, 1, "t"], [120036, 1, "u"], [120037, 1, "v"], [120038, 1, "w"], [120039, 1, "x"], [120040, 1, "y"], [120041, 1, "z"], [120042, 1, "a"], [120043, 1, "b"], [120044, 1, "c"], [120045, 1, "d"], [120046, 1, "e"], [120047, 1, "f"], [120048, 1, "g"], [120049, 1, "h"], [120050, 1, "i"], [120051, 1, "j"], [120052, 1, "k"], [120053, 1, "l"], [120054, 1, "m"], [120055, 1, "n"], [120056, 1, "o"], [120057, 1, "p"], [120058, 1, "q"], [120059, 1, "r"], [120060, 1, "s"], [120061, 1, "t"], [120062, 1, "u"], [120063, 1, "v"], [120064, 1, "w"], [120065, 1, "x"], [120066, 1, "y"], [120067, 1, "z"], [120068, 1, "a"], [120069, 1, "b"], [120070, 3], [120071, 1, "d"], [120072, 1, "e"], [120073, 1, "f"], [120074, 1, "g"], [[120075, 120076], 3], [120077, 1, "j"], [120078, 1, "k"], [120079, 1, "l"], [120080, 1, "m"], [120081, 1, "n"], [120082, 1, "o"], [120083, 1, "p"], [120084, 1, "q"], [120085, 3], [120086, 1, "s"], [120087, 1, "t"], [120088, 1, "u"], [120089, 1, "v"], [120090, 1, "w"], [120091, 1, "x"], [120092, 1, "y"], [120093, 3], [120094, 1, "a"], [120095, 1, "b"], [120096, 1, "c"], [120097, 1, "d"], [120098, 1, "e"], [120099, 1, "f"], [120100, 1, "g"], [120101, 1, "h"], [120102, 1, "i"], [120103, 1, "j"], [120104, 1, "k"], [120105, 1, "l"], [120106, 1, "m"], [120107, 1, "n"], [120108, 1, "o"], [120109, 1, "p"], [120110, 1, "q"], [120111, 1, "r"], [120112, 1, "s"], [120113, 1, "t"], [120114, 1, "u"], [120115, 1, "v"], [120116, 1, "w"], [120117, 1, "x"], [120118, 1, "y"], [120119, 1, "z"], [120120, 1, "a"], [120121, 1, "b"], [120122, 3], [120123, 1, "d"], [120124, 1, "e"], [120125, 1, "f"], [120126, 1, "g"], [120127, 3], [120128, 1, "i"], [120129, 1, "j"], [120130, 1, "k"], [120131, 1, "l"], [120132, 1, "m"], [120133, 3], [120134, 1, "o"], [[120135, 120137], 3], [120138, 1, "s"], [120139, 1, "t"], [120140, 1, "u"], [120141, 1, "v"], [120142, 1, "w"], [120143, 1, "x"], [120144, 1, "y"], [120145, 3], [120146, 1, "a"], [120147, 1, "b"], [120148, 1, "c"], [120149, 1, "d"], [120150, 1, "e"], [120151, 1, "f"], [120152, 1, "g"], [120153, 1, "h"], [120154, 1, "i"], [120155, 1, "j"], [120156, 1, "k"], [120157, 1, "l"], [120158, 1, "m"], [120159, 1, "n"], [120160, 1, "o"], [120161, 1, "p"], [120162, 1, "q"], [120163, 1, "r"], [120164, 1, "s"], [120165, 1, "t"], [120166, 1, "u"], [120167, 1, "v"], [120168, 1, "w"], [120169, 1, "x"], [120170, 1, "y"], [120171, 1, "z"], [120172, 1, "a"], [120173, 1, "b"], [120174, 1, "c"], [120175, 1, "d"], [120176, 1, "e"], [120177, 1, "f"], [120178, 1, "g"], [120179, 1, "h"], [120180, 1, "i"], [120181, 1, "j"], [120182, 1, "k"], [120183, 1, "l"], [120184, 1, "m"], [120185, 1, "n"], [120186, 1, "o"], [120187, 1, "p"], [120188, 1, "q"], [120189, 1, "r"], [120190, 1, "s"], [120191, 1, "t"], [120192, 1, "u"], [120193, 1, "v"], [120194, 1, "w"], [120195, 1, "x"], [120196, 1, "y"], [120197, 1, "z"], [120198, 1, "a"], [120199, 1, "b"], [120200, 1, "c"], [120201, 1, "d"], [120202, 1, "e"], [120203, 1, "f"], [120204, 1, "g"], [120205, 1, "h"], [120206, 1, "i"], [120207, 1, "j"], [120208, 1, "k"], [120209, 1, "l"], [120210, 1, "m"], [120211, 1, "n"], [120212, 1, "o"], [120213, 1, "p"], [120214, 1, "q"], [120215, 1, "r"], [120216, 1, "s"], [120217, 1, "t"], [120218, 1, "u"], [120219, 1, "v"], [120220, 1, "w"], [120221, 1, "x"], [120222, 1, "y"], [120223, 1, "z"], [120224, 1, "a"], [120225, 1, "b"], [120226, 1, "c"], [120227, 1, "d"], [120228, 1, "e"], [120229, 1, "f"], [120230, 1, "g"], [120231, 1, "h"], [120232, 1, "i"], [120233, 1, "j"], [120234, 1, "k"], [120235, 1, "l"], [120236, 1, "m"], [120237, 1, "n"], [120238, 1, "o"], [120239, 1, "p"], [120240, 1, "q"], [120241, 1, "r"], [120242, 1, "s"], [120243, 1, "t"], [120244, 1, "u"], [120245, 1, "v"], [120246, 1, "w"], [120247, 1, "x"], [120248, 1, "y"], [120249, 1, "z"], [120250, 1, "a"], [120251, 1, "b"], [120252, 1, "c"], [120253, 1, "d"], [120254, 1, "e"], [120255, 1, "f"], [120256, 1, "g"], [120257, 1, "h"], [120258, 1, "i"], [120259, 1, "j"], [120260, 1, "k"], [120261, 1, "l"], [120262, 1, "m"], [120263, 1, "n"], [120264, 1, "o"], [120265, 1, "p"], [120266, 1, "q"], [120267, 1, "r"], [120268, 1, "s"], [120269, 1, "t"], [120270, 1, "u"], [120271, 1, "v"], [120272, 1, "w"], [120273, 1, "x"], [120274, 1, "y"], [120275, 1, "z"], [120276, 1, "a"], [120277, 1, "b"], [120278, 1, "c"], [120279, 1, "d"], [120280, 1, "e"], [120281, 1, "f"], [120282, 1, "g"], [120283, 1, "h"], [120284, 1, "i"], [120285, 1, "j"], [120286, 1, "k"], [120287, 1, "l"], [120288, 1, "m"], [120289, 1, "n"], [120290, 1, "o"], [120291, 1, "p"], [120292, 1, "q"], [120293, 1, "r"], [120294, 1, "s"], [120295, 1, "t"], [120296, 1, "u"], [120297, 1, "v"], [120298, 1, "w"], [120299, 1, "x"], [120300, 1, "y"], [120301, 1, "z"], [120302, 1, "a"], [120303, 1, "b"], [120304, 1, "c"], [120305, 1, "d"], [120306, 1, "e"], [120307, 1, "f"], [120308, 1, "g"], [120309, 1, "h"], [120310, 1, "i"], [120311, 1, "j"], [120312, 1, "k"], [120313, 1, "l"], [120314, 1, "m"], [120315, 1, "n"], [120316, 1, "o"], [120317, 1, "p"], [120318, 1, "q"], [120319, 1, "r"], [120320, 1, "s"], [120321, 1, "t"], [120322, 1, "u"], [120323, 1, "v"], [120324, 1, "w"], [120325, 1, "x"], [120326, 1, "y"], [120327, 1, "z"], [120328, 1, "a"], [120329, 1, "b"], [120330, 1, "c"], [120331, 1, "d"], [120332, 1, "e"], [120333, 1, "f"], [120334, 1, "g"], [120335, 1, "h"], [120336, 1, "i"], [120337, 1, "j"], [120338, 1, "k"], [120339, 1, "l"], [120340, 1, "m"], [120341, 1, "n"], [120342, 1, "o"], [120343, 1, "p"], [120344, 1, "q"], [120345, 1, "r"], [120346, 1, "s"], [120347, 1, "t"], [120348, 1, "u"], [120349, 1, "v"], [120350, 1, "w"], [120351, 1, "x"], [120352, 1, "y"], [120353, 1, "z"], [120354, 1, "a"], [120355, 1, "b"], [120356, 1, "c"], [120357, 1, "d"], [120358, 1, "e"], [120359, 1, "f"], [120360, 1, "g"], [120361, 1, "h"], [120362, 1, "i"], [120363, 1, "j"], [120364, 1, "k"], [120365, 1, "l"], [120366, 1, "m"], [120367, 1, "n"], [120368, 1, "o"], [120369, 1, "p"], [120370, 1, "q"], [120371, 1, "r"], [120372, 1, "s"], [120373, 1, "t"], [120374, 1, "u"], [120375, 1, "v"], [120376, 1, "w"], [120377, 1, "x"], [120378, 1, "y"], [120379, 1, "z"], [120380, 1, "a"], [120381, 1, "b"], [120382, 1, "c"], [120383, 1, "d"], [120384, 1, "e"], [120385, 1, "f"], [120386, 1, "g"], [120387, 1, "h"], [120388, 1, "i"], [120389, 1, "j"], [120390, 1, "k"], [120391, 1, "l"], [120392, 1, "m"], [120393, 1, "n"], [120394, 1, "o"], [120395, 1, "p"], [120396, 1, "q"], [120397, 1, "r"], [120398, 1, "s"], [120399, 1, "t"], [120400, 1, "u"], [120401, 1, "v"], [120402, 1, "w"], [120403, 1, "x"], [120404, 1, "y"], [120405, 1, "z"], [120406, 1, "a"], [120407, 1, "b"], [120408, 1, "c"], [120409, 1, "d"], [120410, 1, "e"], [120411, 1, "f"], [120412, 1, "g"], [120413, 1, "h"], [120414, 1, "i"], [120415, 1, "j"], [120416, 1, "k"], [120417, 1, "l"], [120418, 1, "m"], [120419, 1, "n"], [120420, 1, "o"], [120421, 1, "p"], [120422, 1, "q"], [120423, 1, "r"], [120424, 1, "s"], [120425, 1, "t"], [120426, 1, "u"], [120427, 1, "v"], [120428, 1, "w"], [120429, 1, "x"], [120430, 1, "y"], [120431, 1, "z"], [120432, 1, "a"], [120433, 1, "b"], [120434, 1, "c"], [120435, 1, "d"], [120436, 1, "e"], [120437, 1, "f"], [120438, 1, "g"], [120439, 1, "h"], [120440, 1, "i"], [120441, 1, "j"], [120442, 1, "k"], [120443, 1, "l"], [120444, 1, "m"], [120445, 1, "n"], [120446, 1, "o"], [120447, 1, "p"], [120448, 1, "q"], [120449, 1, "r"], [120450, 1, "s"], [120451, 1, "t"], [120452, 1, "u"], [120453, 1, "v"], [120454, 1, "w"], [120455, 1, "x"], [120456, 1, "y"], [120457, 1, "z"], [120458, 1, "a"], [120459, 1, "b"], [120460, 1, "c"], [120461, 1, "d"], [120462, 1, "e"], [120463, 1, "f"], [120464, 1, "g"], [120465, 1, "h"], [120466, 1, "i"], [120467, 1, "j"], [120468, 1, "k"], [120469, 1, "l"], [120470, 1, "m"], [120471, 1, "n"], [120472, 1, "o"], [120473, 1, "p"], [120474, 1, "q"], [120475, 1, "r"], [120476, 1, "s"], [120477, 1, "t"], [120478, 1, "u"], [120479, 1, "v"], [120480, 1, "w"], [120481, 1, "x"], [120482, 1, "y"], [120483, 1, "z"], [120484, 1, "\u0131"], [120485, 1, "\u0237"], [[120486, 120487], 3], [120488, 1, "\u03B1"], [120489, 1, "\u03B2"], [120490, 1, "\u03B3"], [120491, 1, "\u03B4"], [120492, 1, "\u03B5"], [120493, 1, "\u03B6"], [120494, 1, "\u03B7"], [120495, 1, "\u03B8"], [120496, 1, "\u03B9"], [120497, 1, "\u03BA"], [120498, 1, "\u03BB"], [120499, 1, "\u03BC"], [120500, 1, "\u03BD"], [120501, 1, "\u03BE"], [120502, 1, "\u03BF"], [120503, 1, "\u03C0"], [120504, 1, "\u03C1"], [120505, 1, "\u03B8"], [120506, 1, "\u03C3"], [120507, 1, "\u03C4"], [120508, 1, "\u03C5"], [120509, 1, "\u03C6"], [120510, 1, "\u03C7"], [120511, 1, "\u03C8"], [120512, 1, "\u03C9"], [120513, 1, "\u2207"], [120514, 1, "\u03B1"], [120515, 1, "\u03B2"], [120516, 1, "\u03B3"], [120517, 1, "\u03B4"], [120518, 1, "\u03B5"], [120519, 1, "\u03B6"], [120520, 1, "\u03B7"], [120521, 1, "\u03B8"], [120522, 1, "\u03B9"], [120523, 1, "\u03BA"], [120524, 1, "\u03BB"], [120525, 1, "\u03BC"], [120526, 1, "\u03BD"], [120527, 1, "\u03BE"], [120528, 1, "\u03BF"], [120529, 1, "\u03C0"], [120530, 1, "\u03C1"], [[120531, 120532], 1, "\u03C3"], [120533, 1, "\u03C4"], [120534, 1, "\u03C5"], [120535, 1, "\u03C6"], [120536, 1, "\u03C7"], [120537, 1, "\u03C8"], [120538, 1, "\u03C9"], [120539, 1, "\u2202"], [120540, 1, "\u03B5"], [120541, 1, "\u03B8"], [120542, 1, "\u03BA"], [120543, 1, "\u03C6"], [120544, 1, "\u03C1"], [120545, 1, "\u03C0"], [120546, 1, "\u03B1"], [120547, 1, "\u03B2"], [120548, 1, "\u03B3"], [120549, 1, "\u03B4"], [120550, 1, "\u03B5"], [120551, 1, "\u03B6"], [120552, 1, "\u03B7"], [120553, 1, "\u03B8"], [120554, 1, "\u03B9"], [120555, 1, "\u03BA"], [120556, 1, "\u03BB"], [120557, 1, "\u03BC"], [120558, 1, "\u03BD"], [120559, 1, "\u03BE"], [120560, 1, "\u03BF"], [120561, 1, "\u03C0"], [120562, 1, "\u03C1"], [120563, 1, "\u03B8"], [120564, 1, "\u03C3"], [120565, 1, "\u03C4"], [120566, 1, "\u03C5"], [120567, 1, "\u03C6"], [120568, 1, "\u03C7"], [120569, 1, "\u03C8"], [120570, 1, "\u03C9"], [120571, 1, "\u2207"], [120572, 1, "\u03B1"], [120573, 1, "\u03B2"], [120574, 1, "\u03B3"], [120575, 1, "\u03B4"], [120576, 1, "\u03B5"], [120577, 1, "\u03B6"], [120578, 1, "\u03B7"], [120579, 1, "\u03B8"], [120580, 1, "\u03B9"], [120581, 1, "\u03BA"], [120582, 1, "\u03BB"], [120583, 1, "\u03BC"], [120584, 1, "\u03BD"], [120585, 1, "\u03BE"], [120586, 1, "\u03BF"], [120587, 1, "\u03C0"], [120588, 1, "\u03C1"], [[120589, 120590], 1, "\u03C3"], [120591, 1, "\u03C4"], [120592, 1, "\u03C5"], [120593, 1, "\u03C6"], [120594, 1, "\u03C7"], [120595, 1, "\u03C8"], [120596, 1, "\u03C9"], [120597, 1, "\u2202"], [120598, 1, "\u03B5"], [120599, 1, "\u03B8"], [120600, 1, "\u03BA"], [120601, 1, "\u03C6"], [120602, 1, "\u03C1"], [120603, 1, "\u03C0"], [120604, 1, "\u03B1"], [120605, 1, "\u03B2"], [120606, 1, "\u03B3"], [120607, 1, "\u03B4"], [120608, 1, "\u03B5"], [120609, 1, "\u03B6"], [120610, 1, "\u03B7"], [120611, 1, "\u03B8"], [120612, 1, "\u03B9"], [120613, 1, "\u03BA"], [120614, 1, "\u03BB"], [120615, 1, "\u03BC"], [120616, 1, "\u03BD"], [120617, 1, "\u03BE"], [120618, 1, "\u03BF"], [120619, 1, "\u03C0"], [120620, 1, "\u03C1"], [120621, 1, "\u03B8"], [120622, 1, "\u03C3"], [120623, 1, "\u03C4"], [120624, 1, "\u03C5"], [120625, 1, "\u03C6"], [120626, 1, "\u03C7"], [120627, 1, "\u03C8"], [120628, 1, "\u03C9"], [120629, 1, "\u2207"], [120630, 1, "\u03B1"], [120631, 1, "\u03B2"], [120632, 1, "\u03B3"], [120633, 1, "\u03B4"], [120634, 1, "\u03B5"], [120635, 1, "\u03B6"], [120636, 1, "\u03B7"], [120637, 1, "\u03B8"], [120638, 1, "\u03B9"], [120639, 1, "\u03BA"], [120640, 1, "\u03BB"], [120641, 1, "\u03BC"], [120642, 1, "\u03BD"], [120643, 1, "\u03BE"], [120644, 1, "\u03BF"], [120645, 1, "\u03C0"], [120646, 1, "\u03C1"], [[120647, 120648], 1, "\u03C3"], [120649, 1, "\u03C4"], [120650, 1, "\u03C5"], [120651, 1, "\u03C6"], [120652, 1, "\u03C7"], [120653, 1, "\u03C8"], [120654, 1, "\u03C9"], [120655, 1, "\u2202"], [120656, 1, "\u03B5"], [120657, 1, "\u03B8"], [120658, 1, "\u03BA"], [120659, 1, "\u03C6"], [120660, 1, "\u03C1"], [120661, 1, "\u03C0"], [120662, 1, "\u03B1"], [120663, 1, "\u03B2"], [120664, 1, "\u03B3"], [120665, 1, "\u03B4"], [120666, 1, "\u03B5"], [120667, 1, "\u03B6"], [120668, 1, "\u03B7"], [120669, 1, "\u03B8"], [120670, 1, "\u03B9"], [120671, 1, "\u03BA"], [120672, 1, "\u03BB"], [120673, 1, "\u03BC"], [120674, 1, "\u03BD"], [120675, 1, "\u03BE"], [120676, 1, "\u03BF"], [120677, 1, "\u03C0"], [120678, 1, "\u03C1"], [120679, 1, "\u03B8"], [120680, 1, "\u03C3"], [120681, 1, "\u03C4"], [120682, 1, "\u03C5"], [120683, 1, "\u03C6"], [120684, 1, "\u03C7"], [120685, 1, "\u03C8"], [120686, 1, "\u03C9"], [120687, 1, "\u2207"], [120688, 1, "\u03B1"], [120689, 1, "\u03B2"], [120690, 1, "\u03B3"], [120691, 1, "\u03B4"], [120692, 1, "\u03B5"], [120693, 1, "\u03B6"], [120694, 1, "\u03B7"], [120695, 1, "\u03B8"], [120696, 1, "\u03B9"], [120697, 1, "\u03BA"], [120698, 1, "\u03BB"], [120699, 1, "\u03BC"], [120700, 1, "\u03BD"], [120701, 1, "\u03BE"], [120702, 1, "\u03BF"], [120703, 1, "\u03C0"], [120704, 1, "\u03C1"], [[120705, 120706], 1, "\u03C3"], [120707, 1, "\u03C4"], [120708, 1, "\u03C5"], [120709, 1, "\u03C6"], [120710, 1, "\u03C7"], [120711, 1, "\u03C8"], [120712, 1, "\u03C9"], [120713, 1, "\u2202"], [120714, 1, "\u03B5"], [120715, 1, "\u03B8"], [120716, 1, "\u03BA"], [120717, 1, "\u03C6"], [120718, 1, "\u03C1"], [120719, 1, "\u03C0"], [120720, 1, "\u03B1"], [120721, 1, "\u03B2"], [120722, 1, "\u03B3"], [120723, 1, "\u03B4"], [120724, 1, "\u03B5"], [120725, 1, "\u03B6"], [120726, 1, "\u03B7"], [120727, 1, "\u03B8"], [120728, 1, "\u03B9"], [120729, 1, "\u03BA"], [120730, 1, "\u03BB"], [120731, 1, "\u03BC"], [120732, 1, "\u03BD"], [120733, 1, "\u03BE"], [120734, 1, "\u03BF"], [120735, 1, "\u03C0"], [120736, 1, "\u03C1"], [120737, 1, "\u03B8"], [120738, 1, "\u03C3"], [120739, 1, "\u03C4"], [120740, 1, "\u03C5"], [120741, 1, "\u03C6"], [120742, 1, "\u03C7"], [120743, 1, "\u03C8"], [120744, 1, "\u03C9"], [120745, 1, "\u2207"], [120746, 1, "\u03B1"], [120747, 1, "\u03B2"], [120748, 1, "\u03B3"], [120749, 1, "\u03B4"], [120750, 1, "\u03B5"], [120751, 1, "\u03B6"], [120752, 1, "\u03B7"], [120753, 1, "\u03B8"], [120754, 1, "\u03B9"], [120755, 1, "\u03BA"], [120756, 1, "\u03BB"], [120757, 1, "\u03BC"], [120758, 1, "\u03BD"], [120759, 1, "\u03BE"], [120760, 1, "\u03BF"], [120761, 1, "\u03C0"], [120762, 1, "\u03C1"], [[120763, 120764], 1, "\u03C3"], [120765, 1, "\u03C4"], [120766, 1, "\u03C5"], [120767, 1, "\u03C6"], [120768, 1, "\u03C7"], [120769, 1, "\u03C8"], [120770, 1, "\u03C9"], [120771, 1, "\u2202"], [120772, 1, "\u03B5"], [120773, 1, "\u03B8"], [120774, 1, "\u03BA"], [120775, 1, "\u03C6"], [120776, 1, "\u03C1"], [120777, 1, "\u03C0"], [[120778, 120779], 1, "\u03DD"], [[120780, 120781], 3], [120782, 1, "0"], [120783, 1, "1"], [120784, 1, "2"], [120785, 1, "3"], [120786, 1, "4"], [120787, 1, "5"], [120788, 1, "6"], [120789, 1, "7"], [120790, 1, "8"], [120791, 1, "9"], [120792, 1, "0"], [120793, 1, "1"], [120794, 1, "2"], [120795, 1, "3"], [120796, 1, "4"], [120797, 1, "5"], [120798, 1, "6"], [120799, 1, "7"], [120800, 1, "8"], [120801, 1, "9"], [120802, 1, "0"], [120803, 1, "1"], [120804, 1, "2"], [120805, 1, "3"], [120806, 1, "4"], [120807, 1, "5"], [120808, 1, "6"], [120809, 1, "7"], [120810, 1, "8"], [120811, 1, "9"], [120812, 1, "0"], [120813, 1, "1"], [120814, 1, "2"], [120815, 1, "3"], [120816, 1, "4"], [120817, 1, "5"], [120818, 1, "6"], [120819, 1, "7"], [120820, 1, "8"], [120821, 1, "9"], [120822, 1, "0"], [120823, 1, "1"], [120824, 1, "2"], [120825, 1, "3"], [120826, 1, "4"], [120827, 1, "5"], [120828, 1, "6"], [120829, 1, "7"], [120830, 1, "8"], [120831, 1, "9"], [[120832, 121343], 2], [[121344, 121398], 2], [[121399, 121402], 2], [[121403, 121452], 2], [[121453, 121460], 2], [121461, 2], [[121462, 121475], 2], [121476, 2], [[121477, 121483], 2], [[121484, 121498], 3], [[121499, 121503], 2], [121504, 3], [[121505, 121519], 2], [[121520, 122623], 3], [[122624, 122654], 2], [[122655, 122660], 3], [[122661, 122666], 2], [[122667, 122879], 3], [[122880, 122886], 2], [122887, 3], [[122888, 122904], 2], [[122905, 122906], 3], [[122907, 122913], 2], [122914, 3], [[122915, 122916], 2], [122917, 3], [[122918, 122922], 2], [[122923, 122927], 3], [122928, 1, "\u0430"], [122929, 1, "\u0431"], [122930, 1, "\u0432"], [122931, 1, "\u0433"], [122932, 1, "\u0434"], [122933, 1, "\u0435"], [122934, 1, "\u0436"], [122935, 1, "\u0437"], [122936, 1, "\u0438"], [122937, 1, "\u043A"], [122938, 1, "\u043B"], [122939, 1, "\u043C"], [122940, 1, "\u043E"], [122941, 1, "\u043F"], [122942, 1, "\u0440"], [122943, 1, "\u0441"], [122944, 1, "\u0442"], [122945, 1, "\u0443"], [122946, 1, "\u0444"], [122947, 1, "\u0445"], [122948, 1, "\u0446"], [122949, 1, "\u0447"], [122950, 1, "\u0448"], [122951, 1, "\u044B"], [122952, 1, "\u044D"], [122953, 1, "\u044E"], [122954, 1, "\uA689"], [122955, 1, "\u04D9"], [122956, 1, "\u0456"], [122957, 1, "\u0458"], [122958, 1, "\u04E9"], [122959, 1, "\u04AF"], [122960, 1, "\u04CF"], [122961, 1, "\u0430"], [122962, 1, "\u0431"], [122963, 1, "\u0432"], [122964, 1, "\u0433"], [122965, 1, "\u0434"], [122966, 1, "\u0435"], [122967, 1, "\u0436"], [122968, 1, "\u0437"], [122969, 1, "\u0438"], [122970, 1, "\u043A"], [122971, 1, "\u043B"], [122972, 1, "\u043E"], [122973, 1, "\u043F"], [122974, 1, "\u0441"], [122975, 1, "\u0443"], [122976, 1, "\u0444"], [122977, 1, "\u0445"], [122978, 1, "\u0446"], [122979, 1, "\u0447"], [122980, 1, "\u0448"], [122981, 1, "\u044A"], [122982, 1, "\u044B"], [122983, 1, "\u0491"], [122984, 1, "\u0456"], [122985, 1, "\u0455"], [122986, 1, "\u045F"], [122987, 1, "\u04AB"], [122988, 1, "\uA651"], [122989, 1, "\u04B1"], [[122990, 123022], 3], [123023, 2], [[123024, 123135], 3], [[123136, 123180], 2], [[123181, 123183], 3], [[123184, 123197], 2], [[123198, 123199], 3], [[123200, 123209], 2], [[123210, 123213], 3], [123214, 2], [123215, 2], [[123216, 123535], 3], [[123536, 123566], 2], [[123567, 123583], 3], [[123584, 123641], 2], [[123642, 123646], 3], [123647, 2], [[123648, 124111], 3], [[124112, 124153], 2], [[124154, 124367], 3], [[124368, 124410], 2], [[124411, 124414], 3], [124415, 2], [[124416, 124895], 3], [[124896, 124902], 2], [124903, 3], [[124904, 124907], 2], [124908, 3], [[124909, 124910], 2], [124911, 3], [[124912, 124926], 2], [124927, 3], [[124928, 125124], 2], [[125125, 125126], 3], [[125127, 125135], 2], [[125136, 125142], 2], [[125143, 125183], 3], [125184, 1, "\u{1E922}"], [125185, 1, "\u{1E923}"], [125186, 1, "\u{1E924}"], [125187, 1, "\u{1E925}"], [125188, 1, "\u{1E926}"], [125189, 1, "\u{1E927}"], [125190, 1, "\u{1E928}"], [125191, 1, "\u{1E929}"], [125192, 1, "\u{1E92A}"], [125193, 1, "\u{1E92B}"], [125194, 1, "\u{1E92C}"], [125195, 1, "\u{1E92D}"], [125196, 1, "\u{1E92E}"], [125197, 1, "\u{1E92F}"], [125198, 1, "\u{1E930}"], [125199, 1, "\u{1E931}"], [125200, 1, "\u{1E932}"], [125201, 1, "\u{1E933}"], [125202, 1, "\u{1E934}"], [125203, 1, "\u{1E935}"], [125204, 1, "\u{1E936}"], [125205, 1, "\u{1E937}"], [125206, 1, "\u{1E938}"], [125207, 1, "\u{1E939}"], [125208, 1, "\u{1E93A}"], [125209, 1, "\u{1E93B}"], [125210, 1, "\u{1E93C}"], [125211, 1, "\u{1E93D}"], [125212, 1, "\u{1E93E}"], [125213, 1, "\u{1E93F}"], [125214, 1, "\u{1E940}"], [125215, 1, "\u{1E941}"], [125216, 1, "\u{1E942}"], [125217, 1, "\u{1E943}"], [[125218, 125258], 2], [125259, 2], [[125260, 125263], 3], [[125264, 125273], 2], [[125274, 125277], 3], [[125278, 125279], 2], [[125280, 126064], 3], [[126065, 126132], 2], [[126133, 126208], 3], [[126209, 126269], 2], [[126270, 126463], 3], [126464, 1, "\u0627"], [126465, 1, "\u0628"], [126466, 1, "\u062C"], [126467, 1, "\u062F"], [126468, 3], [126469, 1, "\u0648"], [126470, 1, "\u0632"], [126471, 1, "\u062D"], [126472, 1, "\u0637"], [126473, 1, "\u064A"], [126474, 1, "\u0643"], [126475, 1, "\u0644"], [126476, 1, "\u0645"], [126477, 1, "\u0646"], [126478, 1, "\u0633"], [126479, 1, "\u0639"], [126480, 1, "\u0641"], [126481, 1, "\u0635"], [126482, 1, "\u0642"], [126483, 1, "\u0631"], [126484, 1, "\u0634"], [126485, 1, "\u062A"], [126486, 1, "\u062B"], [126487, 1, "\u062E"], [126488, 1, "\u0630"], [126489, 1, "\u0636"], [126490, 1, "\u0638"], [126491, 1, "\u063A"], [126492, 1, "\u066E"], [126493, 1, "\u06BA"], [126494, 1, "\u06A1"], [126495, 1, "\u066F"], [126496, 3], [126497, 1, "\u0628"], [126498, 1, "\u062C"], [126499, 3], [126500, 1, "\u0647"], [[126501, 126502], 3], [126503, 1, "\u062D"], [126504, 3], [126505, 1, "\u064A"], [126506, 1, "\u0643"], [126507, 1, "\u0644"], [126508, 1, "\u0645"], [126509, 1, "\u0646"], [126510, 1, "\u0633"], [126511, 1, "\u0639"], [126512, 1, "\u0641"], [126513, 1, "\u0635"], [126514, 1, "\u0642"], [126515, 3], [126516, 1, "\u0634"], [126517, 1, "\u062A"], [126518, 1, "\u062B"], [126519, 1, "\u062E"], [126520, 3], [126521, 1, "\u0636"], [126522, 3], [126523, 1, "\u063A"], [[126524, 126529], 3], [126530, 1, "\u062C"], [[126531, 126534], 3], [126535, 1, "\u062D"], [126536, 3], [126537, 1, "\u064A"], [126538, 3], [126539, 1, "\u0644"], [126540, 3], [126541, 1, "\u0646"], [126542, 1, "\u0633"], [126543, 1, "\u0639"], [126544, 3], [126545, 1, "\u0635"], [126546, 1, "\u0642"], [126547, 3], [126548, 1, "\u0634"], [[126549, 126550], 3], [126551, 1, "\u062E"], [126552, 3], [126553, 1, "\u0636"], [126554, 3], [126555, 1, "\u063A"], [126556, 3], [126557, 1, "\u06BA"], [126558, 3], [126559, 1, "\u066F"], [126560, 3], [126561, 1, "\u0628"], [126562, 1, "\u062C"], [126563, 3], [126564, 1, "\u0647"], [[126565, 126566], 3], [126567, 1, "\u062D"], [126568, 1, "\u0637"], [126569, 1, "\u064A"], [126570, 1, "\u0643"], [126571, 3], [126572, 1, "\u0645"], [126573, 1, "\u0646"], [126574, 1, "\u0633"], [126575, 1, "\u0639"], [126576, 1, "\u0641"], [126577, 1, "\u0635"], [126578, 1, "\u0642"], [126579, 3], [126580, 1, "\u0634"], [126581, 1, "\u062A"], [126582, 1, "\u062B"], [126583, 1, "\u062E"], [126584, 3], [126585, 1, "\u0636"], [126586, 1, "\u0638"], [126587, 1, "\u063A"], [126588, 1, "\u066E"], [126589, 3], [126590, 1, "\u06A1"], [126591, 3], [126592, 1, "\u0627"], [126593, 1, "\u0628"], [126594, 1, "\u062C"], [126595, 1, "\u062F"], [126596, 1, "\u0647"], [126597, 1, "\u0648"], [126598, 1, "\u0632"], [126599, 1, "\u062D"], [126600, 1, "\u0637"], [126601, 1, "\u064A"], [126602, 3], [126603, 1, "\u0644"], [126604, 1, "\u0645"], [126605, 1, "\u0646"], [126606, 1, "\u0633"], [126607, 1, "\u0639"], [126608, 1, "\u0641"], [126609, 1, "\u0635"], [126610, 1, "\u0642"], [126611, 1, "\u0631"], [126612, 1, "\u0634"], [126613, 1, "\u062A"], [126614, 1, "\u062B"], [126615, 1, "\u062E"], [126616, 1, "\u0630"], [126617, 1, "\u0636"], [126618, 1, "\u0638"], [126619, 1, "\u063A"], [[126620, 126624], 3], [126625, 1, "\u0628"], [126626, 1, "\u062C"], [126627, 1, "\u062F"], [126628, 3], [126629, 1, "\u0648"], [126630, 1, "\u0632"], [126631, 1, "\u062D"], [126632, 1, "\u0637"], [126633, 1, "\u064A"], [126634, 3], [126635, 1, "\u0644"], [126636, 1, "\u0645"], [126637, 1, "\u0646"], [126638, 1, "\u0633"], [126639, 1, "\u0639"], [126640, 1, "\u0641"], [126641, 1, "\u0635"], [126642, 1, "\u0642"], [126643, 1, "\u0631"], [126644, 1, "\u0634"], [126645, 1, "\u062A"], [126646, 1, "\u062B"], [126647, 1, "\u062E"], [126648, 1, "\u0630"], [126649, 1, "\u0636"], [126650, 1, "\u0638"], [126651, 1, "\u063A"], [[126652, 126703], 3], [[126704, 126705], 2], [[126706, 126975], 3], [[126976, 127019], 2], [[127020, 127023], 3], [[127024, 127123], 2], [[127124, 127135], 3], [[127136, 127150], 2], [[127151, 127152], 3], [[127153, 127166], 2], [127167, 2], [127168, 3], [[127169, 127183], 2], [127184, 3], [[127185, 127199], 2], [[127200, 127221], 2], [[127222, 127231], 3], [127232, 3], [127233, 1, "0,"], [127234, 1, "1,"], [127235, 1, "2,"], [127236, 1, "3,"], [127237, 1, "4,"], [127238, 1, "5,"], [127239, 1, "6,"], [127240, 1, "7,"], [127241, 1, "8,"], [127242, 1, "9,"], [[127243, 127244], 2], [[127245, 127247], 2], [127248, 1, "(a)"], [127249, 1, "(b)"], [127250, 1, "(c)"], [127251, 1, "(d)"], [127252, 1, "(e)"], [127253, 1, "(f)"], [127254, 1, "(g)"], [127255, 1, "(h)"], [127256, 1, "(i)"], [127257, 1, "(j)"], [127258, 1, "(k)"], [127259, 1, "(l)"], [127260, 1, "(m)"], [127261, 1, "(n)"], [127262, 1, "(o)"], [127263, 1, "(p)"], [127264, 1, "(q)"], [127265, 1, "(r)"], [127266, 1, "(s)"], [127267, 1, "(t)"], [127268, 1, "(u)"], [127269, 1, "(v)"], [127270, 1, "(w)"], [127271, 1, "(x)"], [127272, 1, "(y)"], [127273, 1, "(z)"], [127274, 1, "\u3014s\u3015"], [127275, 1, "c"], [127276, 1, "r"], [127277, 1, "cd"], [127278, 1, "wz"], [127279, 2], [127280, 1, "a"], [127281, 1, "b"], [127282, 1, "c"], [127283, 1, "d"], [127284, 1, "e"], [127285, 1, "f"], [127286, 1, "g"], [127287, 1, "h"], [127288, 1, "i"], [127289, 1, "j"], [127290, 1, "k"], [127291, 1, "l"], [127292, 1, "m"], [127293, 1, "n"], [127294, 1, "o"], [127295, 1, "p"], [127296, 1, "q"], [127297, 1, "r"], [127298, 1, "s"], [127299, 1, "t"], [127300, 1, "u"], [127301, 1, "v"], [127302, 1, "w"], [127303, 1, "x"], [127304, 1, "y"], [127305, 1, "z"], [127306, 1, "hv"], [127307, 1, "mv"], [127308, 1, "sd"], [127309, 1, "ss"], [127310, 1, "ppv"], [127311, 1, "wc"], [[127312, 127318], 2], [127319, 2], [[127320, 127326], 2], [127327, 2], [[127328, 127337], 2], [127338, 1, "mc"], [127339, 1, "md"], [127340, 1, "mr"], [[127341, 127343], 2], [[127344, 127352], 2], [127353, 2], [127354, 2], [[127355, 127356], 2], [[127357, 127358], 2], [127359, 2], [[127360, 127369], 2], [[127370, 127373], 2], [[127374, 127375], 2], [127376, 1, "dj"], [[127377, 127386], 2], [[127387, 127404], 2], [127405, 2], [[127406, 127461], 3], [[127462, 127487], 2], [127488, 1, "\u307B\u304B"], [127489, 1, "\u30B3\u30B3"], [127490, 1, "\u30B5"], [[127491, 127503], 3], [127504, 1, "\u624B"], [127505, 1, "\u5B57"], [127506, 1, "\u53CC"], [127507, 1, "\u30C7"], [127508, 1, "\u4E8C"], [127509, 1, "\u591A"], [127510, 1, "\u89E3"], [127511, 1, "\u5929"], [127512, 1, "\u4EA4"], [127513, 1, "\u6620"], [127514, 1, "\u7121"], [127515, 1, "\u6599"], [127516, 1, "\u524D"], [127517, 1, "\u5F8C"], [127518, 1, "\u518D"], [127519, 1, "\u65B0"], [127520, 1, "\u521D"], [127521, 1, "\u7D42"], [127522, 1, "\u751F"], [127523, 1, "\u8CA9"], [127524, 1, "\u58F0"], [127525, 1, "\u5439"], [127526, 1, "\u6F14"], [127527, 1, "\u6295"], [127528, 1, "\u6355"], [127529, 1, "\u4E00"], [127530, 1, "\u4E09"], [127531, 1, "\u904A"], [127532, 1, "\u5DE6"], [127533, 1, "\u4E2D"], [127534, 1, "\u53F3"], [127535, 1, "\u6307"], [127536, 1, "\u8D70"], [127537, 1, "\u6253"], [127538, 1, "\u7981"], [127539, 1, "\u7A7A"], [127540, 1, "\u5408"], [127541, 1, "\u6E80"], [127542, 1, "\u6709"], [127543, 1, "\u6708"], [127544, 1, "\u7533"], [127545, 1, "\u5272"], [127546, 1, "\u55B6"], [127547, 1, "\u914D"], [[127548, 127551], 3], [127552, 1, "\u3014\u672C\u3015"], [127553, 1, "\u3014\u4E09\u3015"], [127554, 1, "\u3014\u4E8C\u3015"], [127555, 1, "\u3014\u5B89\u3015"], [127556, 1, "\u3014\u70B9\u3015"], [127557, 1, "\u3014\u6253\u3015"], [127558, 1, "\u3014\u76D7\u3015"], [127559, 1, "\u3014\u52DD\u3015"], [127560, 1, "\u3014\u6557\u3015"], [[127561, 127567], 3], [127568, 1, "\u5F97"], [127569, 1, "\u53EF"], [[127570, 127583], 3], [[127584, 127589], 2], [[127590, 127743], 3], [[127744, 127776], 2], [[127777, 127788], 2], [[127789, 127791], 2], [[127792, 127797], 2], [127798, 2], [[127799, 127868], 2], [127869, 2], [[127870, 127871], 2], [[127872, 127891], 2], [[127892, 127903], 2], [[127904, 127940], 2], [127941, 2], [[127942, 127946], 2], [[127947, 127950], 2], [[127951, 127955], 2], [[127956, 127967], 2], [[127968, 127984], 2], [[127985, 127991], 2], [[127992, 127999], 2], [[128e3, 128062], 2], [128063, 2], [128064, 2], [128065, 2], [[128066, 128247], 2], [128248, 2], [[128249, 128252], 2], [[128253, 128254], 2], [128255, 2], [[128256, 128317], 2], [[128318, 128319], 2], [[128320, 128323], 2], [[128324, 128330], 2], [[128331, 128335], 2], [[128336, 128359], 2], [[128360, 128377], 2], [128378, 2], [[128379, 128419], 2], [128420, 2], [[128421, 128506], 2], [[128507, 128511], 2], [128512, 2], [[128513, 128528], 2], [128529, 2], [[128530, 128532], 2], [128533, 2], [128534, 2], [128535, 2], [128536, 2], [128537, 2], [128538, 2], [128539, 2], [[128540, 128542], 2], [128543, 2], [[128544, 128549], 2], [[128550, 128551], 2], [[128552, 128555], 2], [128556, 2], [128557, 2], [[128558, 128559], 2], [[128560, 128563], 2], [128564, 2], [[128565, 128576], 2], [[128577, 128578], 2], [[128579, 128580], 2], [[128581, 128591], 2], [[128592, 128639], 2], [[128640, 128709], 2], [[128710, 128719], 2], [128720, 2], [[128721, 128722], 2], [[128723, 128724], 2], [128725, 2], [[128726, 128727], 2], [[128728, 128731], 3], [128732, 2], [[128733, 128735], 2], [[128736, 128748], 2], [[128749, 128751], 3], [[128752, 128755], 2], [[128756, 128758], 2], [[128759, 128760], 2], [128761, 2], [128762, 2], [[128763, 128764], 2], [[128765, 128767], 3], [[128768, 128883], 2], [[128884, 128886], 2], [[128887, 128890], 3], [[128891, 128895], 2], [[128896, 128980], 2], [[128981, 128984], 2], [128985, 2], [[128986, 128991], 3], [[128992, 129003], 2], [[129004, 129007], 3], [129008, 2], [[129009, 129023], 3], [[129024, 129035], 2], [[129036, 129039], 3], [[129040, 129095], 2], [[129096, 129103], 3], [[129104, 129113], 2], [[129114, 129119], 3], [[129120, 129159], 2], [[129160, 129167], 3], [[129168, 129197], 2], [[129198, 129199], 3], [[129200, 129201], 2], [[129202, 129211], 2], [[129212, 129215], 3], [[129216, 129217], 2], [[129218, 129279], 3], [[129280, 129291], 2], [129292, 2], [[129293, 129295], 2], [[129296, 129304], 2], [[129305, 129310], 2], [129311, 2], [[129312, 129319], 2], [[129320, 129327], 2], [129328, 2], [[129329, 129330], 2], [[129331, 129342], 2], [129343, 2], [[129344, 129355], 2], [129356, 2], [[129357, 129359], 2], [[129360, 129374], 2], [[129375, 129387], 2], [[129388, 129392], 2], [129393, 2], [129394, 2], [[129395, 129398], 2], [[129399, 129400], 2], [129401, 2], [129402, 2], [129403, 2], [[129404, 129407], 2], [[129408, 129412], 2], [[129413, 129425], 2], [[129426, 129431], 2], [[129432, 129442], 2], [[129443, 129444], 2], [[129445, 129450], 2], [[129451, 129453], 2], [[129454, 129455], 2], [[129456, 129465], 2], [[129466, 129471], 2], [129472, 2], [[129473, 129474], 2], [[129475, 129482], 2], [129483, 2], [129484, 2], [[129485, 129487], 2], [[129488, 129510], 2], [[129511, 129535], 2], [[129536, 129619], 2], [[129620, 129631], 3], [[129632, 129645], 2], [[129646, 129647], 3], [[129648, 129651], 2], [129652, 2], [[129653, 129655], 2], [[129656, 129658], 2], [[129659, 129660], 2], [[129661, 129663], 3], [[129664, 129666], 2], [[129667, 129670], 2], [[129671, 129672], 2], [129673, 2], [[129674, 129678], 3], [129679, 2], [[129680, 129685], 2], [[129686, 129704], 2], [[129705, 129708], 2], [[129709, 129711], 2], [[129712, 129718], 2], [[129719, 129722], 2], [[129723, 129725], 2], [129726, 2], [129727, 2], [[129728, 129730], 2], [[129731, 129733], 2], [129734, 2], [[129735, 129741], 3], [[129742, 129743], 2], [[129744, 129750], 2], [[129751, 129753], 2], [[129754, 129755], 2], [129756, 2], [[129757, 129758], 3], [129759, 2], [[129760, 129767], 2], [129768, 2], [129769, 2], [[129770, 129775], 3], [[129776, 129782], 2], [[129783, 129784], 2], [[129785, 129791], 3], [[129792, 129938], 2], [129939, 3], [[129940, 129994], 2], [[129995, 130031], 2], [130032, 1, "0"], [130033, 1, "1"], [130034, 1, "2"], [130035, 1, "3"], [130036, 1, "4"], [130037, 1, "5"], [130038, 1, "6"], [130039, 1, "7"], [130040, 1, "8"], [130041, 1, "9"], [[130042, 131069], 3], [[131070, 131071], 3], [[131072, 173782], 2], [[173783, 173789], 2], [[173790, 173791], 2], [[173792, 173823], 3], [[173824, 177972], 2], [[177973, 177976], 2], [177977, 2], [[177978, 177983], 3], [[177984, 178205], 2], [[178206, 178207], 3], [[178208, 183969], 2], [[183970, 183983], 3], [[183984, 191456], 2], [[191457, 191471], 3], [[191472, 192093], 2], [[192094, 194559], 3], [194560, 1, "\u4E3D"], [194561, 1, "\u4E38"], [194562, 1, "\u4E41"], [194563, 1, "\u{20122}"], [194564, 1, "\u4F60"], [194565, 1, "\u4FAE"], [194566, 1, "\u4FBB"], [194567, 1, "\u5002"], [194568, 1, "\u507A"], [194569, 1, "\u5099"], [194570, 1, "\u50E7"], [194571, 1, "\u50CF"], [194572, 1, "\u349E"], [194573, 1, "\u{2063A}"], [194574, 1, "\u514D"], [194575, 1, "\u5154"], [194576, 1, "\u5164"], [194577, 1, "\u5177"], [194578, 1, "\u{2051C}"], [194579, 1, "\u34B9"], [194580, 1, "\u5167"], [194581, 1, "\u518D"], [194582, 1, "\u{2054B}"], [194583, 1, "\u5197"], [194584, 1, "\u51A4"], [194585, 1, "\u4ECC"], [194586, 1, "\u51AC"], [194587, 1, "\u51B5"], [194588, 1, "\u{291DF}"], [194589, 1, "\u51F5"], [194590, 1, "\u5203"], [194591, 1, "\u34DF"], [194592, 1, "\u523B"], [194593, 1, "\u5246"], [194594, 1, "\u5272"], [194595, 1, "\u5277"], [194596, 1, "\u3515"], [194597, 1, "\u52C7"], [194598, 1, "\u52C9"], [194599, 1, "\u52E4"], [194600, 1, "\u52FA"], [194601, 1, "\u5305"], [194602, 1, "\u5306"], [194603, 1, "\u5317"], [194604, 1, "\u5349"], [194605, 1, "\u5351"], [194606, 1, "\u535A"], [194607, 1, "\u5373"], [194608, 1, "\u537D"], [[194609, 194611], 1, "\u537F"], [194612, 1, "\u{20A2C}"], [194613, 1, "\u7070"], [194614, 1, "\u53CA"], [194615, 1, "\u53DF"], [194616, 1, "\u{20B63}"], [194617, 1, "\u53EB"], [194618, 1, "\u53F1"], [194619, 1, "\u5406"], [194620, 1, "\u549E"], [194621, 1, "\u5438"], [194622, 1, "\u5448"], [194623, 1, "\u5468"], [194624, 1, "\u54A2"], [194625, 1, "\u54F6"], [194626, 1, "\u5510"], [194627, 1, "\u5553"], [194628, 1, "\u5563"], [[194629, 194630], 1, "\u5584"], [194631, 1, "\u5599"], [194632, 1, "\u55AB"], [194633, 1, "\u55B3"], [194634, 1, "\u55C2"], [194635, 1, "\u5716"], [194636, 1, "\u5606"], [194637, 1, "\u5717"], [194638, 1, "\u5651"], [194639, 1, "\u5674"], [194640, 1, "\u5207"], [194641, 1, "\u58EE"], [194642, 1, "\u57CE"], [194643, 1, "\u57F4"], [194644, 1, "\u580D"], [194645, 1, "\u578B"], [194646, 1, "\u5832"], [194647, 1, "\u5831"], [194648, 1, "\u58AC"], [194649, 1, "\u{214E4}"], [194650, 1, "\u58F2"], [194651, 1, "\u58F7"], [194652, 1, "\u5906"], [194653, 1, "\u591A"], [194654, 1, "\u5922"], [194655, 1, "\u5962"], [194656, 1, "\u{216A8}"], [194657, 1, "\u{216EA}"], [194658, 1, "\u59EC"], [194659, 1, "\u5A1B"], [194660, 1, "\u5A27"], [194661, 1, "\u59D8"], [194662, 1, "\u5A66"], [194663, 1, "\u36EE"], [194664, 1, "\u36FC"], [194665, 1, "\u5B08"], [[194666, 194667], 1, "\u5B3E"], [194668, 1, "\u{219C8}"], [194669, 1, "\u5BC3"], [194670, 1, "\u5BD8"], [194671, 1, "\u5BE7"], [194672, 1, "\u5BF3"], [194673, 1, "\u{21B18}"], [194674, 1, "\u5BFF"], [194675, 1, "\u5C06"], [194676, 1, "\u5F53"], [194677, 1, "\u5C22"], [194678, 1, "\u3781"], [194679, 1, "\u5C60"], [194680, 1, "\u5C6E"], [194681, 1, "\u5CC0"], [194682, 1, "\u5C8D"], [194683, 1, "\u{21DE4}"], [194684, 1, "\u5D43"], [194685, 1, "\u{21DE6}"], [194686, 1, "\u5D6E"], [194687, 1, "\u5D6B"], [194688, 1, "\u5D7C"], [194689, 1, "\u5DE1"], [194690, 1, "\u5DE2"], [194691, 1, "\u382F"], [194692, 1, "\u5DFD"], [194693, 1, "\u5E28"], [194694, 1, "\u5E3D"], [194695, 1, "\u5E69"], [194696, 1, "\u3862"], [194697, 1, "\u{22183}"], [194698, 1, "\u387C"], [194699, 1, "\u5EB0"], [194700, 1, "\u5EB3"], [194701, 1, "\u5EB6"], [194702, 1, "\u5ECA"], [194703, 1, "\u{2A392}"], [194704, 1, "\u5EFE"], [[194705, 194706], 1, "\u{22331}"], [194707, 1, "\u8201"], [[194708, 194709], 1, "\u5F22"], [194710, 1, "\u38C7"], [194711, 1, "\u{232B8}"], [194712, 1, "\u{261DA}"], [194713, 1, "\u5F62"], [194714, 1, "\u5F6B"], [194715, 1, "\u38E3"], [194716, 1, "\u5F9A"], [194717, 1, "\u5FCD"], [194718, 1, "\u5FD7"], [194719, 1, "\u5FF9"], [194720, 1, "\u6081"], [194721, 1, "\u393A"], [194722, 1, "\u391C"], [194723, 1, "\u6094"], [194724, 1, "\u{226D4}"], [194725, 1, "\u60C7"], [194726, 1, "\u6148"], [194727, 1, "\u614C"], [194728, 1, "\u614E"], [194729, 1, "\u614C"], [194730, 1, "\u617A"], [194731, 1, "\u618E"], [194732, 1, "\u61B2"], [194733, 1, "\u61A4"], [194734, 1, "\u61AF"], [194735, 1, "\u61DE"], [194736, 1, "\u61F2"], [194737, 1, "\u61F6"], [194738, 1, "\u6210"], [194739, 1, "\u621B"], [194740, 1, "\u625D"], [194741, 1, "\u62B1"], [194742, 1, "\u62D4"], [194743, 1, "\u6350"], [194744, 1, "\u{22B0C}"], [194745, 1, "\u633D"], [194746, 1, "\u62FC"], [194747, 1, "\u6368"], [194748, 1, "\u6383"], [194749, 1, "\u63E4"], [194750, 1, "\u{22BF1}"], [194751, 1, "\u6422"], [194752, 1, "\u63C5"], [194753, 1, "\u63A9"], [194754, 1, "\u3A2E"], [194755, 1, "\u6469"], [194756, 1, "\u647E"], [194757, 1, "\u649D"], [194758, 1, "\u6477"], [194759, 1, "\u3A6C"], [194760, 1, "\u654F"], [194761, 1, "\u656C"], [194762, 1, "\u{2300A}"], [194763, 1, "\u65E3"], [194764, 1, "\u66F8"], [194765, 1, "\u6649"], [194766, 1, "\u3B19"], [194767, 1, "\u6691"], [194768, 1, "\u3B08"], [194769, 1, "\u3AE4"], [194770, 1, "\u5192"], [194771, 1, "\u5195"], [194772, 1, "\u6700"], [194773, 1, "\u669C"], [194774, 1, "\u80AD"], [194775, 1, "\u43D9"], [194776, 1, "\u6717"], [194777, 1, "\u671B"], [194778, 1, "\u6721"], [194779, 1, "\u675E"], [194780, 1, "\u6753"], [194781, 1, "\u{233C3}"], [194782, 1, "\u3B49"], [194783, 1, "\u67FA"], [194784, 1, "\u6785"], [194785, 1, "\u6852"], [194786, 1, "\u6885"], [194787, 1, "\u{2346D}"], [194788, 1, "\u688E"], [194789, 1, "\u681F"], [194790, 1, "\u6914"], [194791, 1, "\u3B9D"], [194792, 1, "\u6942"], [194793, 1, "\u69A3"], [194794, 1, "\u69EA"], [194795, 1, "\u6AA8"], [194796, 1, "\u{236A3}"], [194797, 1, "\u6ADB"], [194798, 1, "\u3C18"], [194799, 1, "\u6B21"], [194800, 1, "\u{238A7}"], [194801, 1, "\u6B54"], [194802, 1, "\u3C4E"], [194803, 1, "\u6B72"], [194804, 1, "\u6B9F"], [194805, 1, "\u6BBA"], [194806, 1, "\u6BBB"], [194807, 1, "\u{23A8D}"], [194808, 1, "\u{21D0B}"], [194809, 1, "\u{23AFA}"], [194810, 1, "\u6C4E"], [194811, 1, "\u{23CBC}"], [194812, 1, "\u6CBF"], [194813, 1, "\u6CCD"], [194814, 1, "\u6C67"], [194815, 1, "\u6D16"], [194816, 1, "\u6D3E"], [194817, 1, "\u6D77"], [194818, 1, "\u6D41"], [194819, 1, "\u6D69"], [194820, 1, "\u6D78"], [194821, 1, "\u6D85"], [194822, 1, "\u{23D1E}"], [194823, 1, "\u6D34"], [194824, 1, "\u6E2F"], [194825, 1, "\u6E6E"], [194826, 1, "\u3D33"], [194827, 1, "\u6ECB"], [194828, 1, "\u6EC7"], [194829, 1, "\u{23ED1}"], [194830, 1, "\u6DF9"], [194831, 1, "\u6F6E"], [194832, 1, "\u{23F5E}"], [194833, 1, "\u{23F8E}"], [194834, 1, "\u6FC6"], [194835, 1, "\u7039"], [194836, 1, "\u701E"], [194837, 1, "\u701B"], [194838, 1, "\u3D96"], [194839, 1, "\u704A"], [194840, 1, "\u707D"], [194841, 1, "\u7077"], [194842, 1, "\u70AD"], [194843, 1, "\u{20525}"], [194844, 1, "\u7145"], [194845, 1, "\u{24263}"], [194846, 1, "\u719C"], [194847, 1, "\u{243AB}"], [194848, 1, "\u7228"], [194849, 1, "\u7235"], [194850, 1, "\u7250"], [194851, 1, "\u{24608}"], [194852, 1, "\u7280"], [194853, 1, "\u7295"], [194854, 1, "\u{24735}"], [194855, 1, "\u{24814}"], [194856, 1, "\u737A"], [194857, 1, "\u738B"], [194858, 1, "\u3EAC"], [194859, 1, "\u73A5"], [[194860, 194861], 1, "\u3EB8"], [194862, 1, "\u7447"], [194863, 1, "\u745C"], [194864, 1, "\u7471"], [194865, 1, "\u7485"], [194866, 1, "\u74CA"], [194867, 1, "\u3F1B"], [194868, 1, "\u7524"], [194869, 1, "\u{24C36}"], [194870, 1, "\u753E"], [194871, 1, "\u{24C92}"], [194872, 1, "\u7570"], [194873, 1, "\u{2219F}"], [194874, 1, "\u7610"], [194875, 1, "\u{24FA1}"], [194876, 1, "\u{24FB8}"], [194877, 1, "\u{25044}"], [194878, 1, "\u3FFC"], [194879, 1, "\u4008"], [194880, 1, "\u76F4"], [194881, 1, "\u{250F3}"], [194882, 1, "\u{250F2}"], [194883, 1, "\u{25119}"], [194884, 1, "\u{25133}"], [194885, 1, "\u771E"], [[194886, 194887], 1, "\u771F"], [194888, 1, "\u774A"], [194889, 1, "\u4039"], [194890, 1, "\u778B"], [194891, 1, "\u4046"], [194892, 1, "\u4096"], [194893, 1, "\u{2541D}"], [194894, 1, "\u784E"], [194895, 1, "\u788C"], [194896, 1, "\u78CC"], [194897, 1, "\u40E3"], [194898, 1, "\u{25626}"], [194899, 1, "\u7956"], [194900, 1, "\u{2569A}"], [194901, 1, "\u{256C5}"], [194902, 1, "\u798F"], [194903, 1, "\u79EB"], [194904, 1, "\u412F"], [194905, 1, "\u7A40"], [194906, 1, "\u7A4A"], [194907, 1, "\u7A4F"], [194908, 1, "\u{2597C}"], [[194909, 194910], 1, "\u{25AA7}"], [194911, 1, "\u7AEE"], [194912, 1, "\u4202"], [194913, 1, "\u{25BAB}"], [194914, 1, "\u7BC6"], [194915, 1, "\u7BC9"], [194916, 1, "\u4227"], [194917, 1, "\u{25C80}"], [194918, 1, "\u7CD2"], [194919, 1, "\u42A0"], [194920, 1, "\u7CE8"], [194921, 1, "\u7CE3"], [194922, 1, "\u7D00"], [194923, 1, "\u{25F86}"], [194924, 1, "\u7D63"], [194925, 1, "\u4301"], [194926, 1, "\u7DC7"], [194927, 1, "\u7E02"], [194928, 1, "\u7E45"], [194929, 1, "\u4334"], [194930, 1, "\u{26228}"], [194931, 1, "\u{26247}"], [194932, 1, "\u4359"], [194933, 1, "\u{262D9}"], [194934, 1, "\u7F7A"], [194935, 1, "\u{2633E}"], [194936, 1, "\u7F95"], [194937, 1, "\u7FFA"], [194938, 1, "\u8005"], [194939, 1, "\u{264DA}"], [194940, 1, "\u{26523}"], [194941, 1, "\u8060"], [194942, 1, "\u{265A8}"], [194943, 1, "\u8070"], [194944, 1, "\u{2335F}"], [194945, 1, "\u43D5"], [194946, 1, "\u80B2"], [194947, 1, "\u8103"], [194948, 1, "\u440B"], [194949, 1, "\u813E"], [194950, 1, "\u5AB5"], [194951, 1, "\u{267A7}"], [194952, 1, "\u{267B5}"], [194953, 1, "\u{23393}"], [194954, 1, "\u{2339C}"], [194955, 1, "\u8201"], [194956, 1, "\u8204"], [194957, 1, "\u8F9E"], [194958, 1, "\u446B"], [194959, 1, "\u8291"], [194960, 1, "\u828B"], [194961, 1, "\u829D"], [194962, 1, "\u52B3"], [194963, 1, "\u82B1"], [194964, 1, "\u82B3"], [194965, 1, "\u82BD"], [194966, 1, "\u82E6"], [194967, 1, "\u{26B3C}"], [194968, 1, "\u82E5"], [194969, 1, "\u831D"], [194970, 1, "\u8363"], [194971, 1, "\u83AD"], [194972, 1, "\u8323"], [194973, 1, "\u83BD"], [194974, 1, "\u83E7"], [194975, 1, "\u8457"], [194976, 1, "\u8353"], [194977, 1, "\u83CA"], [194978, 1, "\u83CC"], [194979, 1, "\u83DC"], [194980, 1, "\u{26C36}"], [194981, 1, "\u{26D6B}"], [194982, 1, "\u{26CD5}"], [194983, 1, "\u452B"], [194984, 1, "\u84F1"], [194985, 1, "\u84F3"], [194986, 1, "\u8516"], [194987, 1, "\u{273CA}"], [194988, 1, "\u8564"], [194989, 1, "\u{26F2C}"], [194990, 1, "\u455D"], [194991, 1, "\u4561"], [194992, 1, "\u{26FB1}"], [194993, 1, "\u{270D2}"], [194994, 1, "\u456B"], [194995, 1, "\u8650"], [194996, 1, "\u865C"], [194997, 1, "\u8667"], [194998, 1, "\u8669"], [194999, 1, "\u86A9"], [195e3, 1, "\u8688"], [195001, 1, "\u870E"], [195002, 1, "\u86E2"], [195003, 1, "\u8779"], [195004, 1, "\u8728"], [195005, 1, "\u876B"], [195006, 1, "\u8786"], [195007, 1, "\u45D7"], [195008, 1, "\u87E1"], [195009, 1, "\u8801"], [195010, 1, "\u45F9"], [195011, 1, "\u8860"], [195012, 1, "\u8863"], [195013, 1, "\u{27667}"], [195014, 1, "\u88D7"], [195015, 1, "\u88DE"], [195016, 1, "\u4635"], [195017, 1, "\u88FA"], [195018, 1, "\u34BB"], [195019, 1, "\u{278AE}"], [195020, 1, "\u{27966}"], [195021, 1, "\u46BE"], [195022, 1, "\u46C7"], [195023, 1, "\u8AA0"], [195024, 1, "\u8AED"], [195025, 1, "\u8B8A"], [195026, 1, "\u8C55"], [195027, 1, "\u{27CA8}"], [195028, 1, "\u8CAB"], [195029, 1, "\u8CC1"], [195030, 1, "\u8D1B"], [195031, 1, "\u8D77"], [195032, 1, "\u{27F2F}"], [195033, 1, "\u{20804}"], [195034, 1, "\u8DCB"], [195035, 1, "\u8DBC"], [195036, 1, "\u8DF0"], [195037, 1, "\u{208DE}"], [195038, 1, "\u8ED4"], [195039, 1, "\u8F38"], [195040, 1, "\u{285D2}"], [195041, 1, "\u{285ED}"], [195042, 1, "\u9094"], [195043, 1, "\u90F1"], [195044, 1, "\u9111"], [195045, 1, "\u{2872E}"], [195046, 1, "\u911B"], [195047, 1, "\u9238"], [195048, 1, "\u92D7"], [195049, 1, "\u92D8"], [195050, 1, "\u927C"], [195051, 1, "\u93F9"], [195052, 1, "\u9415"], [195053, 1, "\u{28BFA}"], [195054, 1, "\u958B"], [195055, 1, "\u4995"], [195056, 1, "\u95B7"], [195057, 1, "\u{28D77}"], [195058, 1, "\u49E6"], [195059, 1, "\u96C3"], [195060, 1, "\u5DB2"], [195061, 1, "\u9723"], [195062, 1, "\u{29145}"], [195063, 1, "\u{2921A}"], [195064, 1, "\u4A6E"], [195065, 1, "\u4A76"], [195066, 1, "\u97E0"], [195067, 1, "\u{2940A}"], [195068, 1, "\u4AB2"], [195069, 1, "\u{29496}"], [[195070, 195071], 1, "\u980B"], [195072, 1, "\u9829"], [195073, 1, "\u{295B6}"], [195074, 1, "\u98E2"], [195075, 1, "\u4B33"], [195076, 1, "\u9929"], [195077, 1, "\u99A7"], [195078, 1, "\u99C2"], [195079, 1, "\u99FE"], [195080, 1, "\u4BCE"], [195081, 1, "\u{29B30}"], [195082, 1, "\u9B12"], [195083, 1, "\u9C40"], [195084, 1, "\u9CFD"], [195085, 1, "\u4CCE"], [195086, 1, "\u4CED"], [195087, 1, "\u9D67"], [195088, 1, "\u{2A0CE}"], [195089, 1, "\u4CF8"], [195090, 1, "\u{2A105}"], [195091, 1, "\u{2A20E}"], [195092, 1, "\u{2A291}"], [195093, 1, "\u9EBB"], [195094, 1, "\u4D56"], [195095, 1, "\u9EF9"], [195096, 1, "\u9EFE"], [195097, 1, "\u9F05"], [195098, 1, "\u9F0F"], [195099, 1, "\u9F16"], [195100, 1, "\u9F3B"], [195101, 1, "\u{2A600}"], [[195102, 196605], 3], [[196606, 196607], 3], [[196608, 201546], 2], [[201547, 201551], 3], [[201552, 205743], 2], [[205744, 262141], 3], [[262142, 262143], 3], [[262144, 327677], 3], [[327678, 327679], 3], [[327680, 393213], 3], [[393214, 393215], 3], [[393216, 458749], 3], [[458750, 458751], 3], [[458752, 524285], 3], [[524286, 524287], 3], [[524288, 589821], 3], [[589822, 589823], 3], [[589824, 655357], 3], [[655358, 655359], 3], [[655360, 720893], 3], [[720894, 720895], 3], [[720896, 786429], 3], [[786430, 786431], 3], [[786432, 851965], 3], [[851966, 851967], 3], [[851968, 917501], 3], [[917502, 917503], 3], [917504, 3], [917505, 3], [[917506, 917535], 3], [[917536, 917631], 3], [[917632, 917759], 3], [[917760, 917999], 7], [[918e3, 983037], 3], [[983038, 983039], 3], [[983040, 1048573], 3], [[1048574, 1048575], 3], [[1048576, 1114109], 3], [[1114110, 1114111], 3]];
  }
});

// ../../node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/statusMapping.js
var require_statusMapping = __commonJS({
  "../../node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/statusMapping.js"(exports, module) {
    "use strict";
    module.exports.STATUS_MAPPING = {
      mapped: 1,
      valid: 2,
      disallowed: 3,
      deviation: 6,
      ignored: 7
    };
  }
});

// ../../node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/index.js
var require_tr46 = __commonJS({
  "../../node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/index.js"(exports, module) {
    "use strict";
    var punycode = require_punycode();
    var regexes = require_regexes();
    var mappingTable = require_mappingTable();
    var { STATUS_MAPPING } = require_statusMapping();
    function containsNonASCII(str) {
      return /[^\x00-\x7F]/u.test(str);
    }
    function findStatus(val) {
      let start2 = 0;
      let end2 = mappingTable.length - 1;
      while (start2 <= end2) {
        const mid = Math.floor((start2 + end2) / 2);
        const target = mappingTable[mid];
        const min2 = Array.isArray(target[0]) ? target[0][0] : target[0];
        const max3 = Array.isArray(target[0]) ? target[0][1] : target[0];
        if (min2 <= val && max3 >= val) {
          return target.slice(1);
        } else if (min2 > val) {
          end2 = mid - 1;
        } else {
          start2 = mid + 1;
        }
      }
      return null;
    }
    function mapChars(domainName, { transitionalProcessing }) {
      let processed = "";
      for (const ch of domainName) {
        const [status, mapping] = findStatus(ch.codePointAt(0));
        switch (status) {
          case STATUS_MAPPING.disallowed:
            processed += ch;
            break;
          case STATUS_MAPPING.ignored:
            break;
          case STATUS_MAPPING.mapped:
            if (transitionalProcessing && ch === "\u1E9E") {
              processed += "ss";
            } else {
              processed += mapping;
            }
            break;
          case STATUS_MAPPING.deviation:
            if (transitionalProcessing) {
              processed += mapping;
            } else {
              processed += ch;
            }
            break;
          case STATUS_MAPPING.valid:
            processed += ch;
            break;
        }
      }
      return processed;
    }
    function validateLabel(label, {
      checkHyphens,
      checkBidi,
      checkJoiners,
      transitionalProcessing,
      useSTD3ASCIIRules,
      isBidi
    }) {
      if (label.length === 0) {
        return true;
      }
      if (label.normalize("NFC") !== label) {
        return false;
      }
      const codePoints = Array.from(label);
      if (checkHyphens) {
        if (codePoints[2] === "-" && codePoints[3] === "-" || (label.startsWith("-") || label.endsWith("-"))) {
          return false;
        }
      }
      if (!checkHyphens) {
        if (label.startsWith("xn--")) {
          return false;
        }
      }
      if (label.includes(".")) {
        return false;
      }
      if (regexes.combiningMarks.test(codePoints[0])) {
        return false;
      }
      for (const ch of codePoints) {
        const codePoint = ch.codePointAt(0);
        const [status] = findStatus(codePoint);
        if (transitionalProcessing) {
          if (status !== STATUS_MAPPING.valid) {
            return false;
          }
        } else if (status !== STATUS_MAPPING.valid && status !== STATUS_MAPPING.deviation) {
          return false;
        }
        if (useSTD3ASCIIRules && codePoint <= 127) {
          if (!/^(?:[a-z]|[0-9]|-)$/u.test(ch)) {
            return false;
          }
        }
      }
      if (checkJoiners) {
        let last2 = 0;
        for (const [i5, ch] of codePoints.entries()) {
          if (ch === "\u200C" || ch === "\u200D") {
            if (i5 > 0) {
              if (regexes.combiningClassVirama.test(codePoints[i5 - 1])) {
                continue;
              }
              if (ch === "\u200C") {
                const next = codePoints.indexOf("\u200C", i5 + 1);
                const test3 = next < 0 ? codePoints.slice(last2) : codePoints.slice(last2, next);
                if (regexes.validZWNJ.test(test3.join(""))) {
                  last2 = i5 + 1;
                  continue;
                }
              }
            }
            return false;
          }
        }
      }
      if (checkBidi && isBidi) {
        let rtl;
        if (regexes.bidiS1LTR.test(codePoints[0])) {
          rtl = false;
        } else if (regexes.bidiS1RTL.test(codePoints[0])) {
          rtl = true;
        } else {
          return false;
        }
        if (rtl) {
          if (!regexes.bidiS2.test(label) || !regexes.bidiS3.test(label) || regexes.bidiS4EN.test(label) && regexes.bidiS4AN.test(label)) {
            return false;
          }
        } else if (!regexes.bidiS5.test(label) || !regexes.bidiS6.test(label)) {
          return false;
        }
      }
      return true;
    }
    function isBidiDomain(labels) {
      const domain = labels.map((label) => {
        if (label.startsWith("xn--")) {
          try {
            return punycode.decode(label.substring(4));
          } catch {
            return "";
          }
        }
        return label;
      }).join(".");
      return regexes.bidiDomain.test(domain);
    }
    function processing(domainName, options) {
      let string = mapChars(domainName, options);
      string = string.normalize("NFC");
      const labels = string.split(".");
      const isBidi = isBidiDomain(labels);
      let error = false;
      for (const [i5, origLabel] of labels.entries()) {
        let label = origLabel;
        let transitionalProcessingForThisLabel = options.transitionalProcessing;
        if (label.startsWith("xn--")) {
          if (containsNonASCII(label)) {
            error = true;
            continue;
          }
          try {
            label = punycode.decode(label.substring(4));
          } catch {
            if (!options.ignoreInvalidPunycode) {
              error = true;
              continue;
            }
          }
          labels[i5] = label;
          if (label === "" || !containsNonASCII(label)) {
            error = true;
          }
          transitionalProcessingForThisLabel = false;
        }
        if (error) {
          continue;
        }
        const validation = validateLabel(label, {
          ...options,
          transitionalProcessing: transitionalProcessingForThisLabel,
          isBidi
        });
        if (!validation) {
          error = true;
        }
      }
      return {
        string: labels.join("."),
        error
      };
    }
    function toASCII(domainName, {
      checkHyphens = false,
      checkBidi = false,
      checkJoiners = false,
      useSTD3ASCIIRules = false,
      verifyDNSLength = false,
      transitionalProcessing = false,
      ignoreInvalidPunycode = false
    } = {}) {
      const result = processing(domainName, {
        checkHyphens,
        checkBidi,
        checkJoiners,
        useSTD3ASCIIRules,
        transitionalProcessing,
        ignoreInvalidPunycode
      });
      let labels = result.string.split(".");
      labels = labels.map((l4) => {
        if (containsNonASCII(l4)) {
          try {
            return `xn--${punycode.encode(l4)}`;
          } catch {
            result.error = true;
          }
        }
        return l4;
      });
      if (verifyDNSLength) {
        const total = labels.join(".").length;
        if (total > 253 || total === 0) {
          result.error = true;
        }
        for (let i5 = 0; i5 < labels.length; ++i5) {
          if (labels[i5].length > 63 || labels[i5].length === 0) {
            result.error = true;
            break;
          }
        }
      }
      if (result.error) {
        return null;
      }
      return labels.join(".");
    }
    function toUnicode(domainName, {
      checkHyphens = false,
      checkBidi = false,
      checkJoiners = false,
      useSTD3ASCIIRules = false,
      transitionalProcessing = false,
      ignoreInvalidPunycode = false
    } = {}) {
      const result = processing(domainName, {
        checkHyphens,
        checkBidi,
        checkJoiners,
        useSTD3ASCIIRules,
        transitionalProcessing,
        ignoreInvalidPunycode
      });
      return {
        domain: result.string,
        error: result.error
      };
    }
    module.exports = {
      toASCII,
      toUnicode
    };
  }
});

// ../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/infra.js
var require_infra = __commonJS({
  "../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/infra.js"(exports, module) {
    "use strict";
    function isASCIIDigit(c6) {
      return c6 >= 48 && c6 <= 57;
    }
    function isASCIIAlpha(c6) {
      return c6 >= 65 && c6 <= 90 || c6 >= 97 && c6 <= 122;
    }
    function isASCIIAlphanumeric(c6) {
      return isASCIIAlpha(c6) || isASCIIDigit(c6);
    }
    function isASCIIHex(c6) {
      return isASCIIDigit(c6) || c6 >= 65 && c6 <= 70 || c6 >= 97 && c6 <= 102;
    }
    module.exports = {
      isASCIIDigit,
      isASCIIAlpha,
      isASCIIAlphanumeric,
      isASCIIHex
    };
  }
});

// ../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/encoding.js
var require_encoding = __commonJS({
  "../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/encoding.js"(exports, module) {
    "use strict";
    var utf8Encoder = new TextEncoder();
    var utf8Decoder2 = new TextDecoder("utf-8", { ignoreBOM: true });
    function utf8Encode(string) {
      return utf8Encoder.encode(string);
    }
    function utf8DecodeWithoutBOM(bytes) {
      return utf8Decoder2.decode(bytes);
    }
    module.exports = {
      utf8Encode,
      utf8DecodeWithoutBOM
    };
  }
});

// ../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/percent-encoding.js
var require_percent_encoding = __commonJS({
  "../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/percent-encoding.js"(exports, module) {
    "use strict";
    var { isASCIIHex } = require_infra();
    var { utf8Encode } = require_encoding();
    function p3(char) {
      return char.codePointAt(0);
    }
    function percentEncode(c6) {
      let hex = c6.toString(16).toUpperCase();
      if (hex.length === 1) {
        hex = `0${hex}`;
      }
      return `%${hex}`;
    }
    function percentDecodeBytes(input) {
      const output = new Uint8Array(input.byteLength);
      let outputIndex = 0;
      for (let i5 = 0; i5 < input.byteLength; ++i5) {
        const byte = input[i5];
        if (byte !== 37) {
          output[outputIndex++] = byte;
        } else if (byte === 37 && (!isASCIIHex(input[i5 + 1]) || !isASCIIHex(input[i5 + 2]))) {
          output[outputIndex++] = byte;
        } else {
          const bytePoint = parseInt(String.fromCodePoint(input[i5 + 1], input[i5 + 2]), 16);
          output[outputIndex++] = bytePoint;
          i5 += 2;
        }
      }
      return output.slice(0, outputIndex);
    }
    function percentDecodeString(input) {
      const bytes = utf8Encode(input);
      return percentDecodeBytes(bytes);
    }
    function isC0ControlPercentEncode(c6) {
      return c6 <= 31 || c6 > 126;
    }
    var extraFragmentPercentEncodeSet = /* @__PURE__ */ new Set([p3(" "), p3('"'), p3("<"), p3(">"), p3("`")]);
    function isFragmentPercentEncode(c6) {
      return isC0ControlPercentEncode(c6) || extraFragmentPercentEncodeSet.has(c6);
    }
    var extraQueryPercentEncodeSet = /* @__PURE__ */ new Set([p3(" "), p3('"'), p3("#"), p3("<"), p3(">")]);
    function isQueryPercentEncode(c6) {
      return isC0ControlPercentEncode(c6) || extraQueryPercentEncodeSet.has(c6);
    }
    function isSpecialQueryPercentEncode(c6) {
      return isQueryPercentEncode(c6) || c6 === p3("'");
    }
    var extraPathPercentEncodeSet = /* @__PURE__ */ new Set([p3("?"), p3("`"), p3("{"), p3("}"), p3("^")]);
    function isPathPercentEncode(c6) {
      return isQueryPercentEncode(c6) || extraPathPercentEncodeSet.has(c6);
    }
    var extraUserinfoPercentEncodeSet = /* @__PURE__ */ new Set([p3("/"), p3(":"), p3(";"), p3("="), p3("@"), p3("["), p3("\\"), p3("]"), p3("|")]);
    function isUserinfoPercentEncode(c6) {
      return isPathPercentEncode(c6) || extraUserinfoPercentEncodeSet.has(c6);
    }
    var extraComponentPercentEncodeSet = /* @__PURE__ */ new Set([p3("$"), p3("%"), p3("&"), p3("+"), p3(",")]);
    function isComponentPercentEncode(c6) {
      return isUserinfoPercentEncode(c6) || extraComponentPercentEncodeSet.has(c6);
    }
    var extraURLEncodedPercentEncodeSet = /* @__PURE__ */ new Set([p3("!"), p3("'"), p3("("), p3(")"), p3("~")]);
    function isURLEncodedPercentEncode(c6) {
      return isComponentPercentEncode(c6) || extraURLEncodedPercentEncodeSet.has(c6);
    }
    function utf8PercentEncodeCodePointInternal(codePoint, percentEncodePredicate) {
      const bytes = utf8Encode(codePoint);
      let output = "";
      for (const byte of bytes) {
        if (!percentEncodePredicate(byte)) {
          output += String.fromCharCode(byte);
        } else {
          output += percentEncode(byte);
        }
      }
      return output;
    }
    function utf8PercentEncodeCodePoint(codePoint, percentEncodePredicate) {
      return utf8PercentEncodeCodePointInternal(String.fromCodePoint(codePoint), percentEncodePredicate);
    }
    function utf8PercentEncodeString(input, percentEncodePredicate, spaceAsPlus = false) {
      let output = "";
      for (const codePoint of input) {
        if (spaceAsPlus && codePoint === " ") {
          output += "+";
        } else {
          output += utf8PercentEncodeCodePointInternal(codePoint, percentEncodePredicate);
        }
      }
      return output;
    }
    module.exports = {
      isC0ControlPercentEncode,
      isFragmentPercentEncode,
      isQueryPercentEncode,
      isSpecialQueryPercentEncode,
      isPathPercentEncode,
      isUserinfoPercentEncode,
      isURLEncodedPercentEncode,
      percentDecodeString,
      percentDecodeBytes,
      utf8PercentEncodeString,
      utf8PercentEncodeCodePoint
    };
  }
});

// ../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/url-state-machine.js
var require_url_state_machine = __commonJS({
  "../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/url-state-machine.js"(exports, module) {
    "use strict";
    var tr46 = require_tr46();
    var infra = require_infra();
    var { utf8DecodeWithoutBOM } = require_encoding();
    var {
      percentDecodeString,
      utf8PercentEncodeCodePoint,
      utf8PercentEncodeString,
      isC0ControlPercentEncode,
      isFragmentPercentEncode,
      isQueryPercentEncode,
      isSpecialQueryPercentEncode,
      isPathPercentEncode,
      isUserinfoPercentEncode
    } = require_percent_encoding();
    function p3(char) {
      return char.codePointAt(0);
    }
    var specialSchemes = {
      ftp: 21,
      file: null,
      http: 80,
      https: 443,
      ws: 80,
      wss: 443
    };
    var failure = Symbol("failure");
    function countSymbols(str) {
      return [...str].length;
    }
    function at(input, idx) {
      const c6 = input[idx];
      return isNaN(c6) ? void 0 : String.fromCodePoint(c6);
    }
    function isSingleDot(buffer) {
      return buffer === "." || buffer.toLowerCase() === "%2e";
    }
    function isDoubleDot(buffer) {
      buffer = buffer.toLowerCase();
      return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e";
    }
    function isWindowsDriveLetterCodePoints(cp1, cp2) {
      return infra.isASCIIAlpha(cp1) && (cp2 === p3(":") || cp2 === p3("|"));
    }
    function isWindowsDriveLetterString(string) {
      return string.length === 2 && infra.isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|");
    }
    function isNormalizedWindowsDriveLetterString(string) {
      return string.length === 2 && infra.isASCIIAlpha(string.codePointAt(0)) && string[1] === ":";
    }
    function containsForbiddenHostCodePoint(string) {
      return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|<|>|\?|@|\[|\\|\]|\^|\|/u) !== -1;
    }
    function containsForbiddenDomainCodePoint(string) {
      return containsForbiddenHostCodePoint(string) || string.search(/[\u0000-\u001F]|%|\u007F/u) !== -1;
    }
    function isSpecialScheme(scheme) {
      return specialSchemes[scheme] !== void 0;
    }
    function isSpecial(url3) {
      return isSpecialScheme(url3.scheme);
    }
    function isNotSpecial(url3) {
      return !isSpecialScheme(url3.scheme);
    }
    function defaultPort(scheme) {
      return specialSchemes[scheme];
    }
    function parseIPv4Number(input) {
      if (input === "") {
        return failure;
      }
      let R = 10;
      if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") {
        input = input.substring(2);
        R = 16;
      } else if (input.length >= 2 && input.charAt(0) === "0") {
        input = input.substring(1);
        R = 8;
      }
      if (input === "") {
        return 0;
      }
      let regex2 = /[^0-7]/u;
      if (R === 10) {
        regex2 = /[^0-9]/u;
      }
      if (R === 16) {
        regex2 = /[^0-9A-Fa-f]/u;
      }
      if (regex2.test(input)) {
        return failure;
      }
      return parseInt(input, R);
    }
    function parseIPv4(input) {
      const parts = input.split(".");
      if (parts[parts.length - 1] === "") {
        if (parts.length > 1) {
          parts.pop();
        }
      }
      if (parts.length > 4) {
        return failure;
      }
      const numbers = [];
      for (const part of parts) {
        const n6 = parseIPv4Number(part);
        if (n6 === failure) {
          return failure;
        }
        numbers.push(n6);
      }
      for (let i5 = 0; i5 < numbers.length - 1; ++i5) {
        if (numbers[i5] > 255) {
          return failure;
        }
      }
      if (numbers[numbers.length - 1] >= 256 ** (5 - numbers.length)) {
        return failure;
      }
      let ipv4 = numbers.pop();
      let counter = 0;
      for (const n6 of numbers) {
        ipv4 += n6 * 256 ** (3 - counter);
        ++counter;
      }
      return ipv4;
    }
    function serializeIPv4(address) {
      let output = "";
      let n6 = address;
      for (let i5 = 1; i5 <= 4; ++i5) {
        output = String(n6 % 256) + output;
        if (i5 !== 4) {
          output = `.${output}`;
        }
        n6 = Math.floor(n6 / 256);
      }
      return output;
    }
    function parseIPv6(input) {
      const address = [0, 0, 0, 0, 0, 0, 0, 0];
      let pieceIndex = 0;
      let compress = null;
      let pointer = 0;
      input = Array.from(input, (c6) => c6.codePointAt(0));
      if (input[pointer] === p3(":")) {
        if (input[pointer + 1] !== p3(":")) {
          return failure;
        }
        pointer += 2;
        ++pieceIndex;
        compress = pieceIndex;
      }
      while (pointer < input.length) {
        if (pieceIndex === 8) {
          return failure;
        }
        if (input[pointer] === p3(":")) {
          if (compress !== null) {
            return failure;
          }
          ++pointer;
          ++pieceIndex;
          compress = pieceIndex;
          continue;
        }
        let value2 = 0;
        let length2 = 0;
        while (length2 < 4 && infra.isASCIIHex(input[pointer])) {
          value2 = value2 * 16 + parseInt(at(input, pointer), 16);
          ++pointer;
          ++length2;
        }
        if (input[pointer] === p3(".")) {
          if (length2 === 0) {
            return failure;
          }
          pointer -= length2;
          if (pieceIndex > 6) {
            return failure;
          }
          let numbersSeen = 0;
          while (input[pointer] !== void 0) {
            let ipv4Piece = null;
            if (numbersSeen > 0) {
              if (input[pointer] === p3(".") && numbersSeen < 4) {
                ++pointer;
              } else {
                return failure;
              }
            }
            if (!infra.isASCIIDigit(input[pointer])) {
              return failure;
            }
            while (infra.isASCIIDigit(input[pointer])) {
              const number3 = parseInt(at(input, pointer));
              if (ipv4Piece === null) {
                ipv4Piece = number3;
              } else if (ipv4Piece === 0) {
                return failure;
              } else {
                ipv4Piece = ipv4Piece * 10 + number3;
              }
              if (ipv4Piece > 255) {
                return failure;
              }
              ++pointer;
            }
            address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;
            ++numbersSeen;
            if (numbersSeen === 2 || numbersSeen === 4) {
              ++pieceIndex;
            }
          }
          if (numbersSeen !== 4) {
            return failure;
          }
          break;
        } else if (input[pointer] === p3(":")) {
          ++pointer;
          if (input[pointer] === void 0) {
            return failure;
          }
        } else if (input[pointer] !== void 0) {
          return failure;
        }
        address[pieceIndex] = value2;
        ++pieceIndex;
      }
      if (compress !== null) {
        let swaps = pieceIndex - compress;
        pieceIndex = 7;
        while (pieceIndex !== 0 && swaps > 0) {
          const temp = address[compress + swaps - 1];
          address[compress + swaps - 1] = address[pieceIndex];
          address[pieceIndex] = temp;
          --pieceIndex;
          --swaps;
        }
      } else if (compress === null && pieceIndex !== 8) {
        return failure;
      }
      return address;
    }
    function serializeIPv6(address) {
      let output = "";
      const compress = findTheIPv6AddressCompressedPieceIndex(address);
      let ignore0 = false;
      for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {
        if (ignore0 && address[pieceIndex] === 0) {
          continue;
        } else if (ignore0) {
          ignore0 = false;
        }
        if (compress === pieceIndex) {
          const separator = pieceIndex === 0 ? "::" : ":";
          output += separator;
          ignore0 = true;
          continue;
        }
        output += address[pieceIndex].toString(16);
        if (pieceIndex !== 7) {
          output += ":";
        }
      }
      return output;
    }
    function parseHost(input, isOpaque = false) {
      if (input[0] === "[") {
        if (input[input.length - 1] !== "]") {
          return failure;
        }
        return parseIPv6(input.substring(1, input.length - 1));
      }
      if (isOpaque) {
        return parseOpaqueHost(input);
      }
      const domain = utf8DecodeWithoutBOM(percentDecodeString(input));
      const asciiDomain = domainToASCII(domain);
      if (asciiDomain === failure) {
        return failure;
      }
      if (endsInANumber(asciiDomain)) {
        return parseIPv4(asciiDomain);
      }
      return asciiDomain;
    }
    function endsInANumber(input) {
      const parts = input.split(".");
      if (parts[parts.length - 1] === "") {
        if (parts.length === 1) {
          return false;
        }
        parts.pop();
      }
      const last2 = parts[parts.length - 1];
      if (parseIPv4Number(last2) !== failure) {
        return true;
      }
      if (/^[0-9]+$/u.test(last2)) {
        return true;
      }
      return false;
    }
    function parseOpaqueHost(input) {
      if (containsForbiddenHostCodePoint(input)) {
        return failure;
      }
      return utf8PercentEncodeString(input, isC0ControlPercentEncode);
    }
    function findTheIPv6AddressCompressedPieceIndex(address) {
      let longestIndex = null;
      let longestSize = 1;
      let foundIndex = null;
      let foundSize = 0;
      for (let pieceIndex = 0; pieceIndex < address.length; ++pieceIndex) {
        if (address[pieceIndex] !== 0) {
          if (foundSize > longestSize) {
            longestIndex = foundIndex;
            longestSize = foundSize;
          }
          foundIndex = null;
          foundSize = 0;
        } else {
          if (foundIndex === null) {
            foundIndex = pieceIndex;
          }
          ++foundSize;
        }
      }
      if (foundSize > longestSize) {
        return foundIndex;
      }
      return longestIndex;
    }
    function serializeHost(host) {
      if (typeof host === "number") {
        return serializeIPv4(host);
      }
      if (host instanceof Array) {
        return `[${serializeIPv6(host)}]`;
      }
      return host;
    }
    function domainToASCII(domain, beStrict = false) {
      const result = tr46.toASCII(domain, {
        checkHyphens: beStrict,
        checkBidi: true,
        checkJoiners: true,
        useSTD3ASCIIRules: beStrict,
        transitionalProcessing: false,
        verifyDNSLength: beStrict,
        ignoreInvalidPunycode: false
      });
      if (result === null) {
        return failure;
      }
      if (!beStrict) {
        if (result === "") {
          return failure;
        }
        if (containsForbiddenDomainCodePoint(result)) {
          return failure;
        }
      }
      return result;
    }
    function trimControlChars(string) {
      let start2 = 0;
      let end2 = string.length;
      for (; start2 < end2; ++start2) {
        if (string.charCodeAt(start2) > 32) {
          break;
        }
      }
      for (; end2 > start2; --end2) {
        if (string.charCodeAt(end2 - 1) > 32) {
          break;
        }
      }
      return string.substring(start2, end2);
    }
    function trimTabAndNewline(url3) {
      return url3.replace(/\u0009|\u000A|\u000D/ug, "");
    }
    function shortenPath(url3) {
      const { path: path3 } = url3;
      if (path3.length === 0) {
        return;
      }
      if (url3.scheme === "file" && path3.length === 1 && isNormalizedWindowsDriveLetter(path3[0])) {
        return;
      }
      path3.pop();
    }
    function includesCredentials(url3) {
      return url3.username !== "" || url3.password !== "";
    }
    function cannotHaveAUsernamePasswordPort(url3) {
      return url3.host === null || url3.host === "" || url3.scheme === "file";
    }
    function hasAnOpaquePath(url3) {
      return typeof url3.path === "string";
    }
    function isNormalizedWindowsDriveLetter(string) {
      return /^[A-Za-z]:$/u.test(string);
    }
    function URLStateMachine(input, base, encodingOverride, url3, stateOverride) {
      this.pointer = 0;
      this.input = input;
      this.base = base || null;
      this.encodingOverride = encodingOverride || "utf-8";
      this.stateOverride = stateOverride;
      this.url = url3;
      this.failure = false;
      this.parseError = false;
      if (!this.url) {
        this.url = {
          scheme: "",
          username: "",
          password: "",
          host: null,
          port: null,
          path: [],
          query: null,
          fragment: null
        };
        const res2 = trimControlChars(this.input);
        if (res2 !== this.input) {
          this.parseError = true;
        }
        this.input = res2;
      }
      const res = trimTabAndNewline(this.input);
      if (res !== this.input) {
        this.parseError = true;
      }
      this.input = res;
      this.state = stateOverride || "scheme start";
      this.buffer = "";
      this.atFlag = false;
      this.arrFlag = false;
      this.passwordTokenSeenFlag = false;
      this.input = Array.from(this.input, (c6) => c6.codePointAt(0));
      for (; this.pointer <= this.input.length; ++this.pointer) {
        const c6 = this.input[this.pointer];
        const cStr = isNaN(c6) ? void 0 : String.fromCodePoint(c6);
        const ret = this[`parse ${this.state}`](c6, cStr);
        if (!ret) {
          break;
        } else if (ret === failure) {
          this.failure = true;
          break;
        }
      }
    }
    URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c6, cStr) {
      if (infra.isASCIIAlpha(c6)) {
        this.buffer += cStr.toLowerCase();
        this.state = "scheme";
      } else if (!this.stateOverride) {
        this.state = "no scheme";
        --this.pointer;
      } else {
        this.parseError = true;
        return failure;
      }
      return true;
    };
    URLStateMachine.prototype["parse scheme"] = function parseScheme(c6, cStr) {
      if (infra.isASCIIAlphanumeric(c6) || c6 === p3("+") || c6 === p3("-") || c6 === p3(".")) {
        this.buffer += cStr.toLowerCase();
      } else if (c6 === p3(":")) {
        if (this.stateOverride) {
          if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {
            return false;
          }
          if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {
            return false;
          }
          if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") {
            return false;
          }
          if (this.url.scheme === "file" && this.url.host === "") {
            return false;
          }
        }
        this.url.scheme = this.buffer;
        if (this.stateOverride) {
          if (this.url.port === defaultPort(this.url.scheme)) {
            this.url.port = null;
          }
          return false;
        }
        this.buffer = "";
        if (this.url.scheme === "file") {
          if (this.input[this.pointer + 1] !== p3("/") || this.input[this.pointer + 2] !== p3("/")) {
            this.parseError = true;
          }
          this.state = "file";
        } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {
          this.state = "special relative or authority";
        } else if (isSpecial(this.url)) {
          this.state = "special authority slashes";
        } else if (this.input[this.pointer + 1] === p3("/")) {
          this.state = "path or authority";
          ++this.pointer;
        } else {
          this.url.path = "";
          this.state = "opaque path";
        }
      } else if (!this.stateOverride) {
        this.buffer = "";
        this.state = "no scheme";
        this.pointer = -1;
      } else {
        this.parseError = true;
        return failure;
      }
      return true;
    };
    URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c6) {
      if (this.base === null || hasAnOpaquePath(this.base) && c6 !== p3("#")) {
        return failure;
      } else if (hasAnOpaquePath(this.base) && c6 === p3("#")) {
        this.url.scheme = this.base.scheme;
        this.url.path = this.base.path;
        this.url.query = this.base.query;
        this.url.fragment = "";
        this.state = "fragment";
      } else if (this.base.scheme === "file") {
        this.state = "file";
        --this.pointer;
      } else {
        this.state = "relative";
        --this.pointer;
      }
      return true;
    };
    URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c6) {
      if (c6 === p3("/") && this.input[this.pointer + 1] === p3("/")) {
        this.state = "special authority ignore slashes";
        ++this.pointer;
      } else {
        this.parseError = true;
        this.state = "relative";
        --this.pointer;
      }
      return true;
    };
    URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c6) {
      if (c6 === p3("/")) {
        this.state = "authority";
      } else {
        this.state = "path";
        --this.pointer;
      }
      return true;
    };
    URLStateMachine.prototype["parse relative"] = function parseRelative(c6) {
      this.url.scheme = this.base.scheme;
      if (c6 === p3("/")) {
        this.state = "relative slash";
      } else if (isSpecial(this.url) && c6 === p3("\\")) {
        this.parseError = true;
        this.state = "relative slash";
      } else {
        this.url.username = this.base.username;
        this.url.password = this.base.password;
        this.url.host = this.base.host;
        this.url.port = this.base.port;
        this.url.path = this.base.path.slice();
        this.url.query = this.base.query;
        if (c6 === p3("?")) {
          this.url.query = "";
          this.state = "query";
        } else if (c6 === p3("#")) {
          this.url.fragment = "";
          this.state = "fragment";
        } else if (!isNaN(c6)) {
          this.url.query = null;
          this.url.path.pop();
          this.state = "path";
          --this.pointer;
        }
      }
      return true;
    };
    URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c6) {
      if (isSpecial(this.url) && (c6 === p3("/") || c6 === p3("\\"))) {
        if (c6 === p3("\\")) {
          this.parseError = true;
        }
        this.state = "special authority ignore slashes";
      } else if (c6 === p3("/")) {
        this.state = "authority";
      } else {
        this.url.username = this.base.username;
        this.url.password = this.base.password;
        this.url.host = this.base.host;
        this.url.port = this.base.port;
        this.state = "path";
        --this.pointer;
      }
      return true;
    };
    URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c6) {
      if (c6 === p3("/") && this.input[this.pointer + 1] === p3("/")) {
        this.state = "special authority ignore slashes";
        ++this.pointer;
      } else {
        this.parseError = true;
        this.state = "special authority ignore slashes";
        --this.pointer;
      }
      return true;
    };
    URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c6) {
      if (c6 !== p3("/") && c6 !== p3("\\")) {
        this.state = "authority";
        --this.pointer;
      } else {
        this.parseError = true;
      }
      return true;
    };
    URLStateMachine.prototype["parse authority"] = function parseAuthority(c6, cStr) {
      if (c6 === p3("@")) {
        this.parseError = true;
        if (this.atFlag) {
          this.buffer = `%40${this.buffer}`;
        }
        this.atFlag = true;
        const len = countSymbols(this.buffer);
        for (let pointer = 0; pointer < len; ++pointer) {
          const codePoint = this.buffer.codePointAt(pointer);
          if (codePoint === p3(":") && !this.passwordTokenSeenFlag) {
            this.passwordTokenSeenFlag = true;
            continue;
          }
          const encodedCodePoints = utf8PercentEncodeCodePoint(codePoint, isUserinfoPercentEncode);
          if (this.passwordTokenSeenFlag) {
            this.url.password += encodedCodePoints;
          } else {
            this.url.username += encodedCodePoints;
          }
        }
        this.buffer = "";
      } else if (isNaN(c6) || c6 === p3("/") || c6 === p3("?") || c6 === p3("#") || isSpecial(this.url) && c6 === p3("\\")) {
        if (this.atFlag && this.buffer === "") {
          this.parseError = true;
          return failure;
        }
        this.pointer -= countSymbols(this.buffer) + 1;
        this.buffer = "";
        this.state = "host";
      } else {
        this.buffer += cStr;
      }
      return true;
    };
    URLStateMachine.prototype["parse hostname"] = URLStateMachine.prototype["parse host"] = function parseHostName(c6, cStr) {
      if (this.stateOverride && this.url.scheme === "file") {
        --this.pointer;
        this.state = "file host";
      } else if (c6 === p3(":") && !this.arrFlag) {
        if (this.buffer === "") {
          this.parseError = true;
          return failure;
        }
        if (this.stateOverride === "hostname") {
          return false;
        }
        const host = parseHost(this.buffer, isNotSpecial(this.url));
        if (host === failure) {
          return failure;
        }
        this.url.host = host;
        this.buffer = "";
        this.state = "port";
      } else if (isNaN(c6) || c6 === p3("/") || c6 === p3("?") || c6 === p3("#") || isSpecial(this.url) && c6 === p3("\\")) {
        --this.pointer;
        if (isSpecial(this.url) && this.buffer === "") {
          this.parseError = true;
          return failure;
        } else if (this.stateOverride && this.buffer === "" && (includesCredentials(this.url) || this.url.port !== null)) {
          this.parseError = true;
          return false;
        }
        const host = parseHost(this.buffer, isNotSpecial(this.url));
        if (host === failure) {
          return failure;
        }
        this.url.host = host;
        this.buffer = "";
        this.state = "path start";
        if (this.stateOverride) {
          return false;
        }
      } else {
        if (c6 === p3("[")) {
          this.arrFlag = true;
        } else if (c6 === p3("]")) {
          this.arrFlag = false;
        }
        this.buffer += cStr;
      }
      return true;
    };
    URLStateMachine.prototype["parse port"] = function parsePort(c6, cStr) {
      if (infra.isASCIIDigit(c6)) {
        this.buffer += cStr;
      } else if (isNaN(c6) || c6 === p3("/") || c6 === p3("?") || c6 === p3("#") || isSpecial(this.url) && c6 === p3("\\") || this.stateOverride) {
        if (this.buffer !== "") {
          const port = parseInt(this.buffer);
          if (port > 2 ** 16 - 1) {
            this.parseError = true;
            return failure;
          }
          this.url.port = port === defaultPort(this.url.scheme) ? null : port;
          this.buffer = "";
        }
        if (this.stateOverride) {
          return false;
        }
        this.state = "path start";
        --this.pointer;
      } else {
        this.parseError = true;
        return failure;
      }
      return true;
    };
    var fileOtherwiseCodePoints = /* @__PURE__ */ new Set([p3("/"), p3("\\"), p3("?"), p3("#")]);
    function startsWithWindowsDriveLetter(input, pointer) {
      const length2 = input.length - pointer;
      return length2 >= 2 && isWindowsDriveLetterCodePoints(input[pointer], input[pointer + 1]) && (length2 === 2 || fileOtherwiseCodePoints.has(input[pointer + 2]));
    }
    URLStateMachine.prototype["parse file"] = function parseFile(c6) {
      this.url.scheme = "file";
      this.url.host = "";
      if (c6 === p3("/") || c6 === p3("\\")) {
        if (c6 === p3("\\")) {
          this.parseError = true;
        }
        this.state = "file slash";
      } else if (this.base !== null && this.base.scheme === "file") {
        this.url.host = this.base.host;
        this.url.path = this.base.path.slice();
        this.url.query = this.base.query;
        if (c6 === p3("?")) {
          this.url.query = "";
          this.state = "query";
        } else if (c6 === p3("#")) {
          this.url.fragment = "";
          this.state = "fragment";
        } else if (!isNaN(c6)) {
          this.url.query = null;
          if (!startsWithWindowsDriveLetter(this.input, this.pointer)) {
            shortenPath(this.url);
          } else {
            this.parseError = true;
            this.url.path = [];
          }
          this.state = "path";
          --this.pointer;
        }
      } else {
        this.state = "path";
        --this.pointer;
      }
      return true;
    };
    URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c6) {
      if (c6 === p3("/") || c6 === p3("\\")) {
        if (c6 === p3("\\")) {
          this.parseError = true;
        }
        this.state = "file host";
      } else {
        if (this.base !== null && this.base.scheme === "file") {
          if (!startsWithWindowsDriveLetter(this.input, this.pointer) && isNormalizedWindowsDriveLetterString(this.base.path[0])) {
            this.url.path.push(this.base.path[0]);
          }
          this.url.host = this.base.host;
        }
        this.state = "path";
        --this.pointer;
      }
      return true;
    };
    URLStateMachine.prototype["parse file host"] = function parseFileHost(c6, cStr) {
      if (isNaN(c6) || c6 === p3("/") || c6 === p3("\\") || c6 === p3("?") || c6 === p3("#")) {
        --this.pointer;
        if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {
          this.parseError = true;
          this.state = "path";
        } else if (this.buffer === "") {
          this.url.host = "";
          if (this.stateOverride) {
            return false;
          }
          this.state = "path start";
        } else {
          let host = parseHost(this.buffer, isNotSpecial(this.url));
          if (host === failure) {
            return failure;
          }
          if (host === "localhost") {
            host = "";
          }
          this.url.host = host;
          if (this.stateOverride) {
            return false;
          }
          this.buffer = "";
          this.state = "path start";
        }
      } else {
        this.buffer += cStr;
      }
      return true;
    };
    URLStateMachine.prototype["parse path start"] = function parsePathStart(c6) {
      if (isSpecial(this.url)) {
        if (c6 === p3("\\")) {
          this.parseError = true;
        }
        this.state = "path";
        if (c6 !== p3("/") && c6 !== p3("\\")) {
          --this.pointer;
        }
      } else if (!this.stateOverride && c6 === p3("?")) {
        this.url.query = "";
        this.state = "query";
      } else if (!this.stateOverride && c6 === p3("#")) {
        this.url.fragment = "";
        this.state = "fragment";
      } else if (c6 !== void 0) {
        this.state = "path";
        if (c6 !== p3("/")) {
          --this.pointer;
        }
      } else if (this.stateOverride && this.url.host === null) {
        this.url.path.push("");
      }
      return true;
    };
    URLStateMachine.prototype["parse path"] = function parsePath2(c6) {
      if (isNaN(c6) || c6 === p3("/") || isSpecial(this.url) && c6 === p3("\\") || !this.stateOverride && (c6 === p3("?") || c6 === p3("#"))) {
        if (isSpecial(this.url) && c6 === p3("\\")) {
          this.parseError = true;
        }
        if (isDoubleDot(this.buffer)) {
          shortenPath(this.url);
          if (c6 !== p3("/") && !(isSpecial(this.url) && c6 === p3("\\"))) {
            this.url.path.push("");
          }
        } else if (isSingleDot(this.buffer) && c6 !== p3("/") && !(isSpecial(this.url) && c6 === p3("\\"))) {
          this.url.path.push("");
        } else if (!isSingleDot(this.buffer)) {
          if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {
            this.buffer = `${this.buffer[0]}:`;
          }
          this.url.path.push(this.buffer);
        }
        this.buffer = "";
        if (c6 === p3("?")) {
          this.url.query = "";
          this.state = "query";
        }
        if (c6 === p3("#")) {
          this.url.fragment = "";
          this.state = "fragment";
        }
      } else {
        if (c6 === p3("%") && (!infra.isASCIIHex(this.input[this.pointer + 1]) || !infra.isASCIIHex(this.input[this.pointer + 2]))) {
          this.parseError = true;
        }
        this.buffer += utf8PercentEncodeCodePoint(c6, isPathPercentEncode);
      }
      return true;
    };
    URLStateMachine.prototype["parse opaque path"] = function parseOpaquePath(c6) {
      if (c6 === p3("?")) {
        this.url.query = "";
        this.state = "query";
      } else if (c6 === p3("#")) {
        this.url.fragment = "";
        this.state = "fragment";
      } else if (c6 === p3(" ")) {
        const remaining = this.input[this.pointer + 1];
        if (remaining === p3("?") || remaining === p3("#")) {
          this.url.path += "%20";
        } else {
          this.url.path += " ";
        }
      } else {
        if (!isNaN(c6) && c6 !== p3("%")) {
          this.parseError = true;
        }
        if (c6 === p3("%") && (!infra.isASCIIHex(this.input[this.pointer + 1]) || !infra.isASCIIHex(this.input[this.pointer + 2]))) {
          this.parseError = true;
        }
        if (!isNaN(c6)) {
          this.url.path += utf8PercentEncodeCodePoint(c6, isC0ControlPercentEncode);
        }
      }
      return true;
    };
    URLStateMachine.prototype["parse query"] = function parseQuery(c6, cStr) {
      if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") {
        this.encodingOverride = "utf-8";
      }
      if (!this.stateOverride && c6 === p3("#") || isNaN(c6)) {
        const queryPercentEncodePredicate = isSpecial(this.url) ? isSpecialQueryPercentEncode : isQueryPercentEncode;
        this.url.query += utf8PercentEncodeString(this.buffer, queryPercentEncodePredicate);
        this.buffer = "";
        if (c6 === p3("#")) {
          this.url.fragment = "";
          this.state = "fragment";
        }
      } else if (!isNaN(c6)) {
        if (c6 === p3("%") && (!infra.isASCIIHex(this.input[this.pointer + 1]) || !infra.isASCIIHex(this.input[this.pointer + 2]))) {
          this.parseError = true;
        }
        this.buffer += cStr;
      }
      return true;
    };
    URLStateMachine.prototype["parse fragment"] = function parseFragment(c6) {
      if (!isNaN(c6)) {
        if (c6 === p3("%") && (!infra.isASCIIHex(this.input[this.pointer + 1]) || !infra.isASCIIHex(this.input[this.pointer + 2]))) {
          this.parseError = true;
        }
        this.url.fragment += utf8PercentEncodeCodePoint(c6, isFragmentPercentEncode);
      }
      return true;
    };
    function serializeURL(url3, excludeFragment) {
      let output = `${url3.scheme}:`;
      if (url3.host !== null) {
        output += "//";
        if (url3.username !== "" || url3.password !== "") {
          output += url3.username;
          if (url3.password !== "") {
            output += `:${url3.password}`;
          }
          output += "@";
        }
        output += serializeHost(url3.host);
        if (url3.port !== null) {
          output += `:${url3.port}`;
        }
      }
      if (url3.host === null && !hasAnOpaquePath(url3) && url3.path.length > 1 && url3.path[0] === "") {
        output += "/.";
      }
      output += serializePath(url3);
      if (url3.query !== null) {
        output += `?${url3.query}`;
      }
      if (!excludeFragment && url3.fragment !== null) {
        output += `#${url3.fragment}`;
      }
      return output;
    }
    function serializeOrigin(tuple) {
      let result = `${tuple.scheme}://`;
      result += serializeHost(tuple.host);
      if (tuple.port !== null) {
        result += `:${tuple.port}`;
      }
      return result;
    }
    function serializePath(url3) {
      if (hasAnOpaquePath(url3)) {
        return url3.path;
      }
      let output = "";
      for (const segment of url3.path) {
        output += `/${segment}`;
      }
      return output;
    }
    module.exports.serializeURL = serializeURL;
    module.exports.serializePath = serializePath;
    module.exports.serializeURLOrigin = function(url3) {
      switch (url3.scheme) {
        case "blob": {
          const pathURL = module.exports.parseURL(serializePath(url3));
          if (pathURL === null) {
            return "null";
          }
          if (pathURL.scheme !== "http" && pathURL.scheme !== "https") {
            return "null";
          }
          return module.exports.serializeURLOrigin(pathURL);
        }
        case "ftp":
        case "http":
        case "https":
        case "ws":
        case "wss":
          return serializeOrigin({
            scheme: url3.scheme,
            host: url3.host,
            port: url3.port
          });
        case "file":
          return "null";
        default:
          return "null";
      }
    };
    module.exports.basicURLParse = function(input, options) {
      if (options === void 0) {
        options = {};
      }
      const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);
      if (usm.failure) {
        return null;
      }
      return usm.url;
    };
    module.exports.setTheUsername = function(url3, username) {
      url3.username = utf8PercentEncodeString(username, isUserinfoPercentEncode);
    };
    module.exports.setThePassword = function(url3, password) {
      url3.password = utf8PercentEncodeString(password, isUserinfoPercentEncode);
    };
    module.exports.serializeHost = serializeHost;
    module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;
    module.exports.hasAnOpaquePath = hasAnOpaquePath;
    module.exports.serializeInteger = function(integer) {
      return String(integer);
    };
    module.exports.parseURL = function(input, options) {
      if (options === void 0) {
        options = {};
      }
      return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });
    };
  }
});

// ../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/urlencoded.js
var require_urlencoded = __commonJS({
  "../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/urlencoded.js"(exports, module) {
    "use strict";
    var { utf8Encode, utf8DecodeWithoutBOM } = require_encoding();
    var { percentDecodeBytes, utf8PercentEncodeString, isURLEncodedPercentEncode } = require_percent_encoding();
    function p3(char) {
      return char.codePointAt(0);
    }
    function parseUrlencoded(input) {
      const sequences = strictlySplitByteSequence(input, p3("&"));
      const output = [];
      for (const bytes of sequences) {
        if (bytes.length === 0) {
          continue;
        }
        let name, value2;
        const indexOfEqual = bytes.indexOf(p3("="));
        if (indexOfEqual >= 0) {
          name = bytes.slice(0, indexOfEqual);
          value2 = bytes.slice(indexOfEqual + 1);
        } else {
          name = bytes;
          value2 = new Uint8Array(0);
        }
        name = replaceByteInByteSequence(name, 43, 32);
        value2 = replaceByteInByteSequence(value2, 43, 32);
        const nameString = utf8DecodeWithoutBOM(percentDecodeBytes(name));
        const valueString = utf8DecodeWithoutBOM(percentDecodeBytes(value2));
        output.push([nameString, valueString]);
      }
      return output;
    }
    function parseUrlencodedString(input) {
      return parseUrlencoded(utf8Encode(input));
    }
    function serializeUrlencoded(tuples) {
      let output = "";
      for (const [i5, tuple] of tuples.entries()) {
        const name = utf8PercentEncodeString(tuple[0], isURLEncodedPercentEncode, true);
        const value2 = utf8PercentEncodeString(tuple[1], isURLEncodedPercentEncode, true);
        if (i5 !== 0) {
          output += "&";
        }
        output += `${name}=${value2}`;
      }
      return output;
    }
    function strictlySplitByteSequence(buf, cp) {
      const list = [];
      let last2 = 0;
      let i5 = buf.indexOf(cp);
      while (i5 >= 0) {
        list.push(buf.slice(last2, i5));
        last2 = i5 + 1;
        i5 = buf.indexOf(cp, last2);
      }
      if (last2 !== buf.length) {
        list.push(buf.slice(last2));
      }
      return list;
    }
    function replaceByteInByteSequence(buf, from, to) {
      let i5 = buf.indexOf(from);
      while (i5 >= 0) {
        buf[i5] = to;
        i5 = buf.indexOf(from, i5 + 1);
      }
      return buf;
    }
    module.exports = {
      parseUrlencodedString,
      serializeUrlencoded
    };
  }
});

// ../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/Function.js
var require_Function = __commonJS({
  "../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/Function.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils15();
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (typeof value2 !== "function") {
        throw new globalObject.TypeError(context + " is not a function");
      }
      function invokeTheCallbackFunction(...args) {
        const thisArg = utils2.tryWrapperForImpl(this);
        let callResult;
        for (let i5 = 0; i5 < args.length; i5++) {
          args[i5] = utils2.tryWrapperForImpl(args[i5]);
        }
        callResult = Reflect.apply(value2, thisArg, args);
        callResult = conversions["any"](callResult, { context, globals: globalObject });
        return callResult;
      }
      invokeTheCallbackFunction.construct = (...args) => {
        for (let i5 = 0; i5 < args.length; i5++) {
          args[i5] = utils2.tryWrapperForImpl(args[i5]);
        }
        let callResult = Reflect.construct(value2, args);
        callResult = conversions["any"](callResult, { context, globals: globalObject });
        return callResult;
      };
      invokeTheCallbackFunction[utils2.wrapperSymbol] = value2;
      invokeTheCallbackFunction.objectReference = value2;
      return invokeTheCallbackFunction;
    };
  }
});

// ../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams-impl.js
var require_URLSearchParams_impl = __commonJS({
  "../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams-impl.js"(exports) {
    "use strict";
    var urlencoded = require_urlencoded();
    exports.implementation = class URLSearchParamsImpl {
      constructor(globalObject, constructorArgs, { doNotStripQMark = false }) {
        let init3 = constructorArgs[0];
        this._list = [];
        this._url = null;
        if (!doNotStripQMark && typeof init3 === "string" && init3[0] === "?") {
          init3 = init3.slice(1);
        }
        if (Array.isArray(init3)) {
          for (const pair of init3) {
            if (pair.length !== 2) {
              throw new TypeError("Failed to construct 'URLSearchParams': parameter 1 sequence's element does not contain exactly two elements.");
            }
            this._list.push([pair[0], pair[1]]);
          }
        } else if (typeof init3 === "object" && Object.getPrototypeOf(init3) === null) {
          for (const name of Object.keys(init3)) {
            const value2 = init3[name];
            this._list.push([name, value2]);
          }
        } else {
          this._list = urlencoded.parseUrlencodedString(init3);
        }
      }
      _updateSteps() {
        if (this._url !== null) {
          let serializedQuery = urlencoded.serializeUrlencoded(this._list);
          if (serializedQuery === "") {
            serializedQuery = null;
          }
          this._url._url.query = serializedQuery;
        }
      }
      get size() {
        return this._list.length;
      }
      append(name, value2) {
        this._list.push([name, value2]);
        this._updateSteps();
      }
      delete(name, value2) {
        let i5 = 0;
        while (i5 < this._list.length) {
          if (this._list[i5][0] === name && (value2 === void 0 || this._list[i5][1] === value2)) {
            this._list.splice(i5, 1);
          } else {
            i5++;
          }
        }
        this._updateSteps();
      }
      get(name) {
        for (const tuple of this._list) {
          if (tuple[0] === name) {
            return tuple[1];
          }
        }
        return null;
      }
      getAll(name) {
        const output = [];
        for (const tuple of this._list) {
          if (tuple[0] === name) {
            output.push(tuple[1]);
          }
        }
        return output;
      }
      has(name, value2) {
        for (const tuple of this._list) {
          if (tuple[0] === name && (value2 === void 0 || tuple[1] === value2)) {
            return true;
          }
        }
        return false;
      }
      set(name, value2) {
        let found = false;
        let i5 = 0;
        while (i5 < this._list.length) {
          if (this._list[i5][0] === name) {
            if (found) {
              this._list.splice(i5, 1);
            } else {
              found = true;
              this._list[i5][1] = value2;
              i5++;
            }
          } else {
            i5++;
          }
        }
        if (!found) {
          this._list.push([name, value2]);
        }
        this._updateSteps();
      }
      sort() {
        this._list.sort((a5, b3) => {
          if (a5[0] < b3[0]) {
            return -1;
          }
          if (a5[0] > b3[0]) {
            return 1;
          }
          return 0;
        });
        this._updateSteps();
      }
      [Symbol.iterator]() {
        return this._list[Symbol.iterator]();
      }
      toString() {
        return urlencoded.serializeUrlencoded(this._list);
      }
    };
  }
});

// ../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams.js
var require_URLSearchParams = __commonJS({
  "../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils15();
    var Function2 = require_Function();
    var newObjectInRealm = utils2.newObjectInRealm;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "URLSearchParams";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'URLSearchParams'.`);
    };
    exports.createDefaultIterator = (globalObject, target, kind) => {
      const ctorRegistry = globalObject[ctorRegistrySymbol];
      const iteratorPrototype = ctorRegistry["URLSearchParams Iterator"];
      const iterator2 = Object.create(iteratorPrototype);
      Object.defineProperty(iterator2, utils2.iterInternalSymbol, {
        value: { target, kind, index: 0 },
        configurable: true
      });
      return iterator2;
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["URLSearchParams"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class URLSearchParams2 {
        constructor() {
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              if (utils2.isObject(curArg)) {
                if (curArg[Symbol.iterator] !== void 0) {
                  if (!utils2.isObject(curArg)) {
                    throw new globalObject.TypeError(
                      "Failed to construct 'URLSearchParams': parameter 1 sequence is not an iterable object."
                    );
                  } else {
                    const V = [];
                    const tmp = curArg;
                    for (let nextItem of tmp) {
                      if (!utils2.isObject(nextItem)) {
                        throw new globalObject.TypeError(
                          "Failed to construct 'URLSearchParams': parameter 1 sequence's element is not an iterable object."
                        );
                      } else {
                        const V2 = [];
                        const tmp2 = nextItem;
                        for (let nextItem2 of tmp2) {
                          nextItem2 = conversions["USVString"](nextItem2, {
                            context: "Failed to construct 'URLSearchParams': parameter 1 sequence's element's element",
                            globals: globalObject
                          });
                          V2.push(nextItem2);
                        }
                        nextItem = V2;
                      }
                      V.push(nextItem);
                    }
                    curArg = V;
                  }
                } else {
                  if (!utils2.isObject(curArg)) {
                    throw new globalObject.TypeError(
                      "Failed to construct 'URLSearchParams': parameter 1 record is not an object."
                    );
                  } else {
                    const result = /* @__PURE__ */ Object.create(null);
                    for (const key of Reflect.ownKeys(curArg)) {
                      const desc = Object.getOwnPropertyDescriptor(curArg, key);
                      if (desc && desc.enumerable) {
                        let typedKey = key;
                        typedKey = conversions["USVString"](typedKey, {
                          context: "Failed to construct 'URLSearchParams': parameter 1 record's key",
                          globals: globalObject
                        });
                        let typedValue = curArg[key];
                        typedValue = conversions["USVString"](typedValue, {
                          context: "Failed to construct 'URLSearchParams': parameter 1 record's value",
                          globals: globalObject
                        });
                        result[typedKey] = typedValue;
                      }
                    }
                    curArg = result;
                  }
                }
              } else {
                curArg = conversions["USVString"](curArg, {
                  context: "Failed to construct 'URLSearchParams': parameter 1",
                  globals: globalObject
                });
              }
            } else {
              curArg = "";
            }
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        append(name, value2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'append' called on an object that is not a valid instance of URLSearchParams."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'append' on 'URLSearchParams': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'append' on 'URLSearchParams': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'append' on 'URLSearchParams': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].append(...args));
        }
        delete(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'delete' called on an object that is not a valid instance of URLSearchParams."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'delete' on 'URLSearchParams': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'delete' on 'URLSearchParams': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["USVString"](curArg, {
                context: "Failed to execute 'delete' on 'URLSearchParams': parameter 2",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].delete(...args));
        }
        get(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get' called on an object that is not a valid instance of URLSearchParams.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'get' on 'URLSearchParams': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'get' on 'URLSearchParams': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].get(...args);
        }
        getAll(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getAll' called on an object that is not a valid instance of URLSearchParams."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getAll' on 'URLSearchParams': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'getAll' on 'URLSearchParams': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getAll(...args));
        }
        has(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'has' called on an object that is not a valid instance of URLSearchParams.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'has' on 'URLSearchParams': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'has' on 'URLSearchParams': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["USVString"](curArg, {
                context: "Failed to execute 'has' on 'URLSearchParams': parameter 2",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].has(...args);
        }
        set(name, value2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set' called on an object that is not a valid instance of URLSearchParams.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'set' on 'URLSearchParams': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'set' on 'URLSearchParams': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'set' on 'URLSearchParams': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].set(...args));
        }
        sort() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'sort' called on an object that is not a valid instance of URLSearchParams.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].sort());
        }
        toString() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'toString' called on an object that is not a valid instance of URLSearchParams."
            );
          }
          return esValue[implSymbol].toString();
        }
        keys() {
          if (!exports.is(this)) {
            throw new globalObject.TypeError("'keys' called on an object that is not a valid instance of URLSearchParams.");
          }
          return exports.createDefaultIterator(globalObject, this, "key");
        }
        values() {
          if (!exports.is(this)) {
            throw new globalObject.TypeError(
              "'values' called on an object that is not a valid instance of URLSearchParams."
            );
          }
          return exports.createDefaultIterator(globalObject, this, "value");
        }
        entries() {
          if (!exports.is(this)) {
            throw new globalObject.TypeError(
              "'entries' called on an object that is not a valid instance of URLSearchParams."
            );
          }
          return exports.createDefaultIterator(globalObject, this, "key+value");
        }
        forEach(callback) {
          if (!exports.is(this)) {
            throw new globalObject.TypeError(
              "'forEach' called on an object that is not a valid instance of URLSearchParams."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              "Failed to execute 'forEach' on 'iterable': 1 argument required, but only 0 present."
            );
          }
          callback = Function2.convert(globalObject, callback, {
            context: "Failed to execute 'forEach' on 'iterable': The callback provided as parameter 1"
          });
          const thisArg = arguments[1];
          let pairs2 = Array.from(this[implSymbol]);
          let i5 = 0;
          while (i5 < pairs2.length) {
            const [key, value2] = pairs2[i5].map(utils2.tryWrapperForImpl);
            callback.call(thisArg, value2, key, this);
            pairs2 = Array.from(this[implSymbol]);
            i5++;
          }
        }
        get size() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get size' called on an object that is not a valid instance of URLSearchParams."
            );
          }
          return esValue[implSymbol]["size"];
        }
      }
      Object.defineProperties(URLSearchParams2.prototype, {
        append: { enumerable: true },
        delete: { enumerable: true },
        get: { enumerable: true },
        getAll: { enumerable: true },
        has: { enumerable: true },
        set: { enumerable: true },
        sort: { enumerable: true },
        toString: { enumerable: true },
        keys: { enumerable: true },
        values: { enumerable: true },
        entries: { enumerable: true },
        forEach: { enumerable: true },
        size: { enumerable: true },
        [Symbol.toStringTag]: { value: "URLSearchParams", configurable: true },
        [Symbol.iterator]: { value: URLSearchParams2.prototype.entries, configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = URLSearchParams2;
      ctorRegistry["URLSearchParams Iterator"] = Object.create(ctorRegistry["%IteratorPrototype%"], {
        [Symbol.toStringTag]: {
          configurable: true,
          value: "URLSearchParams Iterator"
        }
      });
      utils2.define(ctorRegistry["URLSearchParams Iterator"], {
        next() {
          const internal = this && this[utils2.iterInternalSymbol];
          if (!internal) {
            throw new globalObject.TypeError("next() called on a value that is not a URLSearchParams iterator object");
          }
          const { target, kind, index: index2 } = internal;
          const values = Array.from(target[implSymbol]);
          const len = values.length;
          if (index2 >= len) {
            return newObjectInRealm(globalObject, { value: void 0, done: true });
          }
          const pair = values[index2];
          internal.index = index2 + 1;
          return newObjectInRealm(globalObject, utils2.iteratorResult(pair.map(utils2.tryWrapperForImpl), kind));
        }
      });
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: URLSearchParams2
      });
    };
    var Impl = require_URLSearchParams_impl();
  }
});

// ../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL-impl.js
var require_URL_impl = __commonJS({
  "../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL-impl.js"(exports) {
    "use strict";
    var usm = require_url_state_machine();
    var urlencoded = require_urlencoded();
    var URLSearchParams2 = require_URLSearchParams();
    exports.implementation = class URLImpl {
      // Unlike the spec, we duplicate some code between the constructor and canParse, because we want to give useful error
      // messages in the constructor that distinguish between the different causes of failure.
      constructor(globalObject, [url3, base]) {
        let parsedBase = null;
        if (base !== void 0) {
          parsedBase = usm.basicURLParse(base);
          if (parsedBase === null) {
            throw new TypeError(`Invalid base URL: ${base}`);
          }
        }
        const parsedURL = usm.basicURLParse(url3, { baseURL: parsedBase });
        if (parsedURL === null) {
          throw new TypeError(`Invalid URL: ${url3}`);
        }
        const query = parsedURL.query !== null ? parsedURL.query : "";
        this._url = parsedURL;
        this._query = URLSearchParams2.createImpl(globalObject, [query], { doNotStripQMark: true });
        this._query._url = this;
      }
      static parse(globalObject, input, base) {
        try {
          return new URLImpl(globalObject, [input, base]);
        } catch {
          return null;
        }
      }
      static canParse(url3, base) {
        let parsedBase = null;
        if (base !== void 0) {
          parsedBase = usm.basicURLParse(base);
          if (parsedBase === null) {
            return false;
          }
        }
        const parsedURL = usm.basicURLParse(url3, { baseURL: parsedBase });
        if (parsedURL === null) {
          return false;
        }
        return true;
      }
      get href() {
        return usm.serializeURL(this._url);
      }
      set href(v3) {
        const parsedURL = usm.basicURLParse(v3);
        if (parsedURL === null) {
          throw new TypeError(`Invalid URL: ${v3}`);
        }
        this._url = parsedURL;
        this._query._list.splice(0);
        const { query } = parsedURL;
        if (query !== null) {
          this._query._list = urlencoded.parseUrlencodedString(query);
        }
      }
      get origin() {
        return usm.serializeURLOrigin(this._url);
      }
      get protocol() {
        return `${this._url.scheme}:`;
      }
      set protocol(v3) {
        usm.basicURLParse(`${v3}:`, { url: this._url, stateOverride: "scheme start" });
      }
      get username() {
        return this._url.username;
      }
      set username(v3) {
        if (usm.cannotHaveAUsernamePasswordPort(this._url)) {
          return;
        }
        usm.setTheUsername(this._url, v3);
      }
      get password() {
        return this._url.password;
      }
      set password(v3) {
        if (usm.cannotHaveAUsernamePasswordPort(this._url)) {
          return;
        }
        usm.setThePassword(this._url, v3);
      }
      get host() {
        const url3 = this._url;
        if (url3.host === null) {
          return "";
        }
        if (url3.port === null) {
          return usm.serializeHost(url3.host);
        }
        return `${usm.serializeHost(url3.host)}:${usm.serializeInteger(url3.port)}`;
      }
      set host(v3) {
        if (usm.hasAnOpaquePath(this._url)) {
          return;
        }
        usm.basicURLParse(v3, { url: this._url, stateOverride: "host" });
      }
      get hostname() {
        if (this._url.host === null) {
          return "";
        }
        return usm.serializeHost(this._url.host);
      }
      set hostname(v3) {
        if (usm.hasAnOpaquePath(this._url)) {
          return;
        }
        usm.basicURLParse(v3, { url: this._url, stateOverride: "hostname" });
      }
      get port() {
        if (this._url.port === null) {
          return "";
        }
        return usm.serializeInteger(this._url.port);
      }
      set port(v3) {
        if (usm.cannotHaveAUsernamePasswordPort(this._url)) {
          return;
        }
        if (v3 === "") {
          this._url.port = null;
        } else {
          usm.basicURLParse(v3, { url: this._url, stateOverride: "port" });
        }
      }
      get pathname() {
        return usm.serializePath(this._url);
      }
      set pathname(v3) {
        if (usm.hasAnOpaquePath(this._url)) {
          return;
        }
        this._url.path = [];
        usm.basicURLParse(v3, { url: this._url, stateOverride: "path start" });
      }
      get search() {
        if (this._url.query === null || this._url.query === "") {
          return "";
        }
        return `?${this._url.query}`;
      }
      set search(v3) {
        const url3 = this._url;
        if (v3 === "") {
          url3.query = null;
          this._query._list = [];
          return;
        }
        const input = v3[0] === "?" ? v3.substring(1) : v3;
        url3.query = "";
        usm.basicURLParse(input, { url: url3, stateOverride: "query" });
        this._query._list = urlencoded.parseUrlencodedString(input);
      }
      get searchParams() {
        return this._query;
      }
      get hash() {
        if (this._url.fragment === null || this._url.fragment === "") {
          return "";
        }
        return `#${this._url.fragment}`;
      }
      set hash(v3) {
        if (v3 === "") {
          this._url.fragment = null;
          return;
        }
        const input = v3[0] === "#" ? v3.substring(1) : v3;
        this._url.fragment = "";
        usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" });
      }
      toJSON() {
        return this.href;
      }
    };
  }
});

// ../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL.js
var require_URL = __commonJS({
  "../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils15();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "URL";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'URL'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["URL"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class URL5 {
        constructor(url3) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'URL': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to construct 'URL': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["USVString"](curArg, {
                context: "Failed to construct 'URL': parameter 2",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        toJSON() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'toJSON' called on an object that is not a valid instance of URL.");
          }
          return esValue[implSymbol].toJSON();
        }
        get href() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get href' called on an object that is not a valid instance of URL.");
          }
          return esValue[implSymbol]["href"];
        }
        set href(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set href' called on an object that is not a valid instance of URL.");
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'href' property on 'URL': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["href"] = V;
        }
        toString() {
          const esValue = this;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'toString' called on an object that is not a valid instance of URL.");
          }
          return esValue[implSymbol]["href"];
        }
        get origin() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get origin' called on an object that is not a valid instance of URL.");
          }
          return esValue[implSymbol]["origin"];
        }
        get protocol() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get protocol' called on an object that is not a valid instance of URL.");
          }
          return esValue[implSymbol]["protocol"];
        }
        set protocol(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set protocol' called on an object that is not a valid instance of URL.");
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'protocol' property on 'URL': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["protocol"] = V;
        }
        get username() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get username' called on an object that is not a valid instance of URL.");
          }
          return esValue[implSymbol]["username"];
        }
        set username(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set username' called on an object that is not a valid instance of URL.");
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'username' property on 'URL': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["username"] = V;
        }
        get password() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get password' called on an object that is not a valid instance of URL.");
          }
          return esValue[implSymbol]["password"];
        }
        set password(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set password' called on an object that is not a valid instance of URL.");
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'password' property on 'URL': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["password"] = V;
        }
        get host() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get host' called on an object that is not a valid instance of URL.");
          }
          return esValue[implSymbol]["host"];
        }
        set host(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set host' called on an object that is not a valid instance of URL.");
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'host' property on 'URL': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["host"] = V;
        }
        get hostname() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get hostname' called on an object that is not a valid instance of URL.");
          }
          return esValue[implSymbol]["hostname"];
        }
        set hostname(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set hostname' called on an object that is not a valid instance of URL.");
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'hostname' property on 'URL': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["hostname"] = V;
        }
        get port() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get port' called on an object that is not a valid instance of URL.");
          }
          return esValue[implSymbol]["port"];
        }
        set port(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set port' called on an object that is not a valid instance of URL.");
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'port' property on 'URL': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["port"] = V;
        }
        get pathname() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get pathname' called on an object that is not a valid instance of URL.");
          }
          return esValue[implSymbol]["pathname"];
        }
        set pathname(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set pathname' called on an object that is not a valid instance of URL.");
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'pathname' property on 'URL': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["pathname"] = V;
        }
        get search() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get search' called on an object that is not a valid instance of URL.");
          }
          return esValue[implSymbol]["search"];
        }
        set search(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set search' called on an object that is not a valid instance of URL.");
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'search' property on 'URL': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["search"] = V;
        }
        get searchParams() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get searchParams' called on an object that is not a valid instance of URL.");
          }
          return utils2.getSameObject(this, "searchParams", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["searchParams"]);
          });
        }
        get hash() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get hash' called on an object that is not a valid instance of URL.");
          }
          return esValue[implSymbol]["hash"];
        }
        set hash(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set hash' called on an object that is not a valid instance of URL.");
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'hash' property on 'URL': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["hash"] = V;
        }
        static parse(url3) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'parse' on 'URL': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'parse' on 'URL': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["USVString"](curArg, {
                context: "Failed to execute 'parse' on 'URL': parameter 2",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(Impl.implementation.parse(globalObject, ...args));
        }
        static canParse(url3) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'canParse' on 'URL': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'canParse' on 'URL': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["USVString"](curArg, {
                context: "Failed to execute 'canParse' on 'URL': parameter 2",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return Impl.implementation.canParse(...args);
        }
      }
      Object.defineProperties(URL5.prototype, {
        toJSON: { enumerable: true },
        href: { enumerable: true },
        toString: { enumerable: true },
        origin: { enumerable: true },
        protocol: { enumerable: true },
        username: { enumerable: true },
        password: { enumerable: true },
        host: { enumerable: true },
        hostname: { enumerable: true },
        port: { enumerable: true },
        pathname: { enumerable: true },
        search: { enumerable: true },
        searchParams: { enumerable: true },
        hash: { enumerable: true },
        [Symbol.toStringTag]: { value: "URL", configurable: true }
      });
      Object.defineProperties(URL5, { parse: { enumerable: true }, canParse: { enumerable: true } });
      ctorRegistry[interfaceName] = URL5;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: URL5
      });
      if (globalNames.includes("Window")) {
        Object.defineProperty(globalObject, "webkitURL", {
          configurable: true,
          writable: true,
          value: URL5
        });
      }
    };
    var Impl = require_URL_impl();
  }
});

// ../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/webidl2js-wrapper.js
var require_webidl2js_wrapper = __commonJS({
  "../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/webidl2js-wrapper.js"(exports) {
    "use strict";
    var URL5 = require_URL();
    var URLSearchParams2 = require_URLSearchParams();
    exports.URL = URL5;
    exports.URLSearchParams = URLSearchParams2;
  }
});

// ../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/index.js
var require_whatwg_url = __commonJS({
  "../../node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/index.js"(exports) {
    "use strict";
    var { URL: URL5, URLSearchParams: URLSearchParams2 } = require_webidl2js_wrapper();
    var urlStateMachine = require_url_state_machine();
    var percentEncoding = require_percent_encoding();
    var sharedGlobalObject = { Array, Object, Promise, String, TypeError };
    URL5.install(sharedGlobalObject, ["Window"]);
    URLSearchParams2.install(sharedGlobalObject, ["Window"]);
    exports.URL = sharedGlobalObject.URL;
    exports.URLSearchParams = sharedGlobalObject.URLSearchParams;
    exports.parseURL = urlStateMachine.parseURL;
    exports.basicURLParse = urlStateMachine.basicURLParse;
    exports.serializeURL = urlStateMachine.serializeURL;
    exports.serializePath = urlStateMachine.serializePath;
    exports.serializeHost = urlStateMachine.serializeHost;
    exports.serializeInteger = urlStateMachine.serializeInteger;
    exports.serializeURLOrigin = urlStateMachine.serializeURLOrigin;
    exports.setTheUsername = urlStateMachine.setTheUsername;
    exports.setThePassword = urlStateMachine.setThePassword;
    exports.cannotHaveAUsernamePasswordPort = urlStateMachine.cannotHaveAUsernamePasswordPort;
    exports.hasAnOpaquePath = urlStateMachine.hasAnOpaquePath;
    exports.percentDecodeString = percentEncoding.percentDecodeString;
    exports.percentDecodeBytes = percentEncoding.percentDecodeBytes;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/utils.js
var require_utils16 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/utils.js"(exports, module) {
    "use strict";
    function isObject4(value2) {
      return typeof value2 === "object" && value2 !== null || typeof value2 === "function";
    }
    var hasOwn = Function.prototype.call.bind(Object.prototype.hasOwnProperty);
    function define2(target, source) {
      for (const key of Reflect.ownKeys(source)) {
        const descriptor = Reflect.getOwnPropertyDescriptor(source, key);
        if (descriptor && !Reflect.defineProperty(target, key, descriptor)) {
          throw new TypeError(`Cannot redefine property: ${String(key)}`);
        }
      }
    }
    function newObjectInRealm(globalObject, object) {
      const ctorRegistry = initCtorRegistry(globalObject);
      return Object.defineProperties(
        Object.create(ctorRegistry["%Object.prototype%"]),
        Object.getOwnPropertyDescriptors(object)
      );
    }
    var wrapperSymbol = Symbol("wrapper");
    var implSymbol = Symbol("impl");
    var sameObjectCaches = Symbol("SameObject caches");
    var ctorRegistrySymbol = Symbol.for("[webidl2js] constructor registry");
    var AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () {
    }).prototype);
    function initCtorRegistry(globalObject) {
      if (hasOwn(globalObject, ctorRegistrySymbol)) {
        return globalObject[ctorRegistrySymbol];
      }
      const ctorRegistry = /* @__PURE__ */ Object.create(null);
      ctorRegistry["%Object.prototype%"] = globalObject.Object.prototype;
      ctorRegistry["%IteratorPrototype%"] = Object.getPrototypeOf(
        Object.getPrototypeOf(new globalObject.Array()[Symbol.iterator]())
      );
      try {
        ctorRegistry["%AsyncIteratorPrototype%"] = Object.getPrototypeOf(
          Object.getPrototypeOf(
            globalObject.eval("(async function* () {})").prototype
          )
        );
      } catch {
        ctorRegistry["%AsyncIteratorPrototype%"] = AsyncIteratorPrototype;
      }
      globalObject[ctorRegistrySymbol] = ctorRegistry;
      return ctorRegistry;
    }
    function getSameObject(wrapper, prop, creator) {
      if (!wrapper[sameObjectCaches]) {
        wrapper[sameObjectCaches] = /* @__PURE__ */ Object.create(null);
      }
      if (prop in wrapper[sameObjectCaches]) {
        return wrapper[sameObjectCaches][prop];
      }
      wrapper[sameObjectCaches][prop] = creator();
      return wrapper[sameObjectCaches][prop];
    }
    function wrapperForImpl(impl) {
      return impl ? impl[wrapperSymbol] : null;
    }
    function implForWrapper(wrapper) {
      return wrapper ? wrapper[implSymbol] : null;
    }
    function tryWrapperForImpl(impl) {
      const wrapper = wrapperForImpl(impl);
      return wrapper ? wrapper : impl;
    }
    function tryImplForWrapper(wrapper) {
      const impl = implForWrapper(wrapper);
      return impl ? impl : wrapper;
    }
    var iterInternalSymbol = Symbol("internal");
    function isArrayIndexPropName(P) {
      if (typeof P !== "string") {
        return false;
      }
      const i5 = P >>> 0;
      if (i5 === 2 ** 32 - 1) {
        return false;
      }
      const s4 = `${i5}`;
      if (P !== s4) {
        return false;
      }
      return true;
    }
    var byteLengthGetter = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, "byteLength").get;
    function isArrayBuffer3(value2) {
      try {
        byteLengthGetter.call(value2);
        return true;
      } catch (e4) {
        return false;
      }
    }
    function iteratorResult([key, value2], kind) {
      let result;
      switch (kind) {
        case "key":
          result = key;
          break;
        case "value":
          result = value2;
          break;
        case "key+value":
          result = [key, value2];
          break;
      }
      return { value: result, done: false };
    }
    var supportsPropertyIndex = Symbol("supports property index");
    var supportedPropertyIndices = Symbol("supported property indices");
    var supportsPropertyName = Symbol("supports property name");
    var supportedPropertyNames = Symbol("supported property names");
    var indexedGet = Symbol("indexed property get");
    var indexedSetNew = Symbol("indexed property set new");
    var indexedSetExisting = Symbol("indexed property set existing");
    var namedGet = Symbol("named property get");
    var namedSetNew = Symbol("named property set new");
    var namedSetExisting = Symbol("named property set existing");
    var namedDelete = Symbol("named property delete");
    var asyncIteratorNext = Symbol("async iterator get the next iteration result");
    var asyncIteratorReturn = Symbol("async iterator return steps");
    var asyncIteratorInit = Symbol("async iterator initialization steps");
    var asyncIteratorEOI = Symbol("async iterator end of iteration");
    module.exports = exports = {
      isObject: isObject4,
      hasOwn,
      define: define2,
      newObjectInRealm,
      wrapperSymbol,
      implSymbol,
      getSameObject,
      ctorRegistrySymbol,
      initCtorRegistry,
      wrapperForImpl,
      implForWrapper,
      tryWrapperForImpl,
      tryImplForWrapper,
      iterInternalSymbol,
      isArrayBuffer: isArrayBuffer3,
      isArrayIndexPropName,
      supportsPropertyIndex,
      supportedPropertyIndices,
      supportsPropertyName,
      supportedPropertyNames,
      indexedGet,
      indexedSetNew,
      indexedSetExisting,
      namedGet,
      namedSetNew,
      namedSetExisting,
      namedDelete,
      asyncIteratorNext,
      asyncIteratorReturn,
      asyncIteratorInit,
      asyncIteratorEOI,
      iteratorResult
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/virtual-console.js
var require_virtual_console = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/virtual-console.js"(exports, module) {
    "use strict";
    var { EventEmitter: EventEmitter5 } = __require("events");
    module.exports = class VirtualConsole extends EventEmitter5 {
      constructor() {
        super();
        this.on("error", () => {
        });
      }
      sendTo(anyConsole, options) {
        if (options === void 0) {
          options = {};
        }
        for (const method of Object.keys(anyConsole)) {
          if (typeof anyConsole[method] === "function") {
            let onMethodCall = function(...args) {
              anyConsole[method](...args);
            };
            this.on(method, onMethodCall);
          }
        }
        if (!options.omitJSDOMErrors) {
          this.on("jsdomError", (e4) => anyConsole.error(e4.stack, e4.detail));
        }
        return this;
      }
    };
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/StyleSheet.js
var require_StyleSheet = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/StyleSheet.js"(exports) {
    var CSSOM = {};
    CSSOM.StyleSheet = function StyleSheet2() {
      this.parentStyleSheet = null;
    };
    exports.StyleSheet = CSSOM.StyleSheet;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSRule.js
var require_CSSRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSRule.js"(exports) {
    var CSSOM = {};
    CSSOM.CSSRule = function CSSRule() {
      this.parentRule = null;
      this.parentStyleSheet = null;
    };
    CSSOM.CSSRule.UNKNOWN_RULE = 0;
    CSSOM.CSSRule.STYLE_RULE = 1;
    CSSOM.CSSRule.CHARSET_RULE = 2;
    CSSOM.CSSRule.IMPORT_RULE = 3;
    CSSOM.CSSRule.MEDIA_RULE = 4;
    CSSOM.CSSRule.FONT_FACE_RULE = 5;
    CSSOM.CSSRule.PAGE_RULE = 6;
    CSSOM.CSSRule.KEYFRAMES_RULE = 7;
    CSSOM.CSSRule.KEYFRAME_RULE = 8;
    CSSOM.CSSRule.MARGIN_RULE = 9;
    CSSOM.CSSRule.NAMESPACE_RULE = 10;
    CSSOM.CSSRule.COUNTER_STYLE_RULE = 11;
    CSSOM.CSSRule.SUPPORTS_RULE = 12;
    CSSOM.CSSRule.DOCUMENT_RULE = 13;
    CSSOM.CSSRule.FONT_FEATURE_VALUES_RULE = 14;
    CSSOM.CSSRule.VIEWPORT_RULE = 15;
    CSSOM.CSSRule.REGION_STYLE_RULE = 16;
    CSSOM.CSSRule.CONTAINER_RULE = 17;
    CSSOM.CSSRule.LAYER_BLOCK_RULE = 18;
    CSSOM.CSSRule.STARTING_STYLE_RULE = 1002;
    CSSOM.CSSRule.prototype = {
      constructor: CSSOM.CSSRule
      //FIXME
    };
    exports.CSSRule = CSSOM.CSSRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSStyleRule.js
var require_CSSStyleRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSStyleRule.js"(exports) {
    var CSSOM = {
      CSSStyleDeclaration: require_CSSStyleDeclaration().CSSStyleDeclaration,
      CSSRule: require_CSSRule().CSSRule
    };
    CSSOM.CSSStyleRule = function CSSStyleRule() {
      CSSOM.CSSRule.call(this);
      this.selectorText = "";
      this.style = new CSSOM.CSSStyleDeclaration();
      this.style.parentRule = this;
    };
    CSSOM.CSSStyleRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSStyleRule.prototype.constructor = CSSOM.CSSStyleRule;
    CSSOM.CSSStyleRule.prototype.type = 1;
    Object.defineProperty(CSSOM.CSSStyleRule.prototype, "cssText", {
      get: function() {
        var text;
        if (this.selectorText) {
          text = this.selectorText + " {" + this.style.cssText + "}";
        } else {
          text = "";
        }
        return text;
      },
      set: function(cssText) {
        var rule = CSSOM.CSSStyleRule.parse(cssText);
        this.style = rule.style;
        this.selectorText = rule.selectorText;
      }
    });
    CSSOM.CSSStyleRule.parse = function(ruleText) {
      var i5 = 0;
      var state = "selector";
      var index2;
      var j = i5;
      var buffer = "";
      var SIGNIFICANT_WHITESPACE = {
        "selector": true,
        "value": true
      };
      var styleRule = new CSSOM.CSSStyleRule();
      var name, priority = "";
      for (var character; character = ruleText.charAt(i5); i5++) {
        switch (character) {
          case " ":
          case "	":
          case "\r":
          case "\n":
          case "\f":
            if (SIGNIFICANT_WHITESPACE[state]) {
              switch (ruleText.charAt(i5 - 1)) {
                case " ":
                case "	":
                case "\r":
                case "\n":
                case "\f":
                  break;
                default:
                  buffer += " ";
                  break;
              }
            }
            break;
          // String
          case '"':
            j = i5 + 1;
            index2 = ruleText.indexOf('"', j) + 1;
            if (!index2) {
              throw '" is missing';
            }
            buffer += ruleText.slice(i5, index2);
            i5 = index2 - 1;
            break;
          case "'":
            j = i5 + 1;
            index2 = ruleText.indexOf("'", j) + 1;
            if (!index2) {
              throw "' is missing";
            }
            buffer += ruleText.slice(i5, index2);
            i5 = index2 - 1;
            break;
          // Comment
          case "/":
            if (ruleText.charAt(i5 + 1) === "*") {
              i5 += 2;
              index2 = ruleText.indexOf("*/", i5);
              if (index2 === -1) {
                throw new SyntaxError("Missing */");
              } else {
                i5 = index2 + 1;
              }
            } else {
              buffer += character;
            }
            break;
          case "{":
            if (state === "selector") {
              styleRule.selectorText = buffer.trim();
              buffer = "";
              state = "name";
            }
            break;
          case ":":
            if (state === "name") {
              name = buffer.trim();
              buffer = "";
              state = "value";
            } else {
              buffer += character;
            }
            break;
          case "!":
            if (state === "value" && ruleText.indexOf("!important", i5) === i5) {
              priority = "important";
              i5 += "important".length;
            } else {
              buffer += character;
            }
            break;
          case ";":
            if (state === "value") {
              styleRule.style.setProperty(name, buffer.trim(), priority);
              priority = "";
              buffer = "";
              state = "name";
            } else {
              buffer += character;
            }
            break;
          case "}":
            if (state === "value") {
              styleRule.style.setProperty(name, buffer.trim(), priority);
              priority = "";
              buffer = "";
            } else if (state === "name") {
              break;
            } else {
              buffer += character;
            }
            state = "selector";
            break;
          default:
            buffer += character;
            break;
        }
      }
      return styleRule;
    };
    exports.CSSStyleRule = CSSOM.CSSStyleRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSStyleSheet.js
var require_CSSStyleSheet = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSStyleSheet.js"(exports) {
    var CSSOM = {
      StyleSheet: require_StyleSheet().StyleSheet,
      CSSStyleRule: require_CSSStyleRule().CSSStyleRule
    };
    CSSOM.CSSStyleSheet = function CSSStyleSheet() {
      CSSOM.StyleSheet.call(this);
      this.cssRules = [];
    };
    CSSOM.CSSStyleSheet.prototype = new CSSOM.StyleSheet();
    CSSOM.CSSStyleSheet.prototype.constructor = CSSOM.CSSStyleSheet;
    CSSOM.CSSStyleSheet.prototype.insertRule = function(rule, index2) {
      if (index2 < 0 || index2 > this.cssRules.length) {
        throw new RangeError("INDEX_SIZE_ERR");
      }
      var cssRule = CSSOM.parse(rule).cssRules[0];
      cssRule.parentStyleSheet = this;
      this.cssRules.splice(index2, 0, cssRule);
      return index2;
    };
    CSSOM.CSSStyleSheet.prototype.deleteRule = function(index2) {
      if (index2 < 0 || index2 >= this.cssRules.length) {
        throw new RangeError("INDEX_SIZE_ERR");
      }
      this.cssRules.splice(index2, 1);
    };
    CSSOM.CSSStyleSheet.prototype.toString = function() {
      var result = "";
      var rules = this.cssRules;
      for (var i5 = 0; i5 < rules.length; i5++) {
        result += rules[i5].cssText + "\n";
      }
      return result;
    };
    exports.CSSStyleSheet = CSSOM.CSSStyleSheet;
    CSSOM.parse = require_parse6().parse;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/MediaList.js
var require_MediaList = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/MediaList.js"(exports) {
    var CSSOM = {};
    CSSOM.MediaList = function MediaList() {
      this.length = 0;
    };
    CSSOM.MediaList.prototype = {
      constructor: CSSOM.MediaList,
      /**
       * @return {string}
       */
      get mediaText() {
        return Array.prototype.join.call(this, ", ");
      },
      /**
       * @param {string} value
       */
      set mediaText(value2) {
        var values = value2.split(",");
        var length2 = this.length = values.length;
        for (var i5 = 0; i5 < length2; i5++) {
          this[i5] = values[i5].trim();
        }
      },
      /**
       * @param {string} medium
       */
      appendMedium: function(medium) {
        if (Array.prototype.indexOf.call(this, medium) === -1) {
          this[this.length] = medium;
          this.length++;
        }
      },
      /**
       * @param {string} medium
       */
      deleteMedium: function(medium) {
        var index2 = Array.prototype.indexOf.call(this, medium);
        if (index2 !== -1) {
          Array.prototype.splice.call(this, index2, 1);
        }
      }
    };
    exports.MediaList = CSSOM.MediaList;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSImportRule.js
var require_CSSImportRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSImportRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule().CSSRule,
      CSSStyleSheet: require_CSSStyleSheet().CSSStyleSheet,
      MediaList: require_MediaList().MediaList
    };
    CSSOM.CSSImportRule = function CSSImportRule() {
      CSSOM.CSSRule.call(this);
      this.href = "";
      this.media = new CSSOM.MediaList();
      this.styleSheet = new CSSOM.CSSStyleSheet();
    };
    CSSOM.CSSImportRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSImportRule.prototype.constructor = CSSOM.CSSImportRule;
    CSSOM.CSSImportRule.prototype.type = 3;
    Object.defineProperty(CSSOM.CSSImportRule.prototype, "cssText", {
      get: function() {
        var mediaText = this.media.mediaText;
        return "@import url(" + this.href + ")" + (mediaText ? " " + mediaText : "") + ";";
      },
      set: function(cssText) {
        var i5 = 0;
        var state = "";
        var buffer = "";
        var index2;
        for (var character; character = cssText.charAt(i5); i5++) {
          switch (character) {
            case " ":
            case "	":
            case "\r":
            case "\n":
            case "\f":
              if (state === "after-import") {
                state = "url";
              } else {
                buffer += character;
              }
              break;
            case "@":
              if (!state && cssText.indexOf("@import", i5) === i5) {
                state = "after-import";
                i5 += "import".length;
                buffer = "";
              }
              break;
            case "u":
              if (state === "url" && cssText.indexOf("url(", i5) === i5) {
                index2 = cssText.indexOf(")", i5 + 1);
                if (index2 === -1) {
                  throw i5 + ': ")" not found';
                }
                i5 += "url(".length;
                var url3 = cssText.slice(i5, index2);
                if (url3[0] === url3[url3.length - 1]) {
                  if (url3[0] === '"' || url3[0] === "'") {
                    url3 = url3.slice(1, -1);
                  }
                }
                this.href = url3;
                i5 = index2;
                state = "media";
              }
              break;
            case '"':
              if (state === "url") {
                index2 = cssText.indexOf('"', i5 + 1);
                if (!index2) {
                  throw i5 + `: '"' not found`;
                }
                this.href = cssText.slice(i5 + 1, index2);
                i5 = index2;
                state = "media";
              }
              break;
            case "'":
              if (state === "url") {
                index2 = cssText.indexOf("'", i5 + 1);
                if (!index2) {
                  throw i5 + `: "'" not found`;
                }
                this.href = cssText.slice(i5 + 1, index2);
                i5 = index2;
                state = "media";
              }
              break;
            case ";":
              if (state === "media") {
                if (buffer) {
                  this.media.mediaText = buffer.trim();
                }
              }
              break;
            default:
              if (state === "media") {
                buffer += character;
              }
              break;
          }
        }
      }
    });
    exports.CSSImportRule = CSSOM.CSSImportRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSGroupingRule.js
var require_CSSGroupingRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSGroupingRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule().CSSRule,
      parse: require_parse6().parse
    };
    CSSOM.CSSGroupingRule = function CSSGroupingRule() {
      CSSOM.CSSRule.call(this);
      this.cssRules = [];
    };
    CSSOM.CSSGroupingRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSGroupingRule.prototype.constructor = CSSOM.CSSGroupingRule;
    CSSOM.CSSGroupingRule.prototype.insertRule = function insertRule(rule, index2) {
      if (index2 < 0 || index2 > this.cssRules.length) {
        throw new RangeError("INDEX_SIZE_ERR");
      }
      var cssRule = CSSOM.parse(rule).cssRules[0];
      cssRule.parentRule = this;
      this.cssRules.splice(index2, 0, cssRule);
      return index2;
    };
    CSSOM.CSSGroupingRule.prototype.deleteRule = function deleteRule(index2) {
      if (index2 < 0 || index2 >= this.cssRules.length) {
        throw new RangeError("INDEX_SIZE_ERR");
      }
      this.cssRules.splice(index2, 1)[0].parentRule = null;
    };
    exports.CSSGroupingRule = CSSOM.CSSGroupingRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSConditionRule.js
var require_CSSConditionRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSConditionRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule().CSSRule,
      CSSGroupingRule: require_CSSGroupingRule().CSSGroupingRule
    };
    CSSOM.CSSConditionRule = function CSSConditionRule() {
      CSSOM.CSSGroupingRule.call(this);
      this.cssRules = [];
    };
    CSSOM.CSSConditionRule.prototype = new CSSOM.CSSGroupingRule();
    CSSOM.CSSConditionRule.prototype.constructor = CSSOM.CSSConditionRule;
    CSSOM.CSSConditionRule.prototype.conditionText = "";
    CSSOM.CSSConditionRule.prototype.cssText = "";
    exports.CSSConditionRule = CSSOM.CSSConditionRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSMediaRule.js
var require_CSSMediaRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSMediaRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule().CSSRule,
      CSSGroupingRule: require_CSSGroupingRule().CSSGroupingRule,
      CSSConditionRule: require_CSSConditionRule().CSSConditionRule,
      MediaList: require_MediaList().MediaList
    };
    CSSOM.CSSMediaRule = function CSSMediaRule() {
      CSSOM.CSSConditionRule.call(this);
      this.media = new CSSOM.MediaList();
    };
    CSSOM.CSSMediaRule.prototype = new CSSOM.CSSConditionRule();
    CSSOM.CSSMediaRule.prototype.constructor = CSSOM.CSSMediaRule;
    CSSOM.CSSMediaRule.prototype.type = 4;
    Object.defineProperties(CSSOM.CSSMediaRule.prototype, {
      "conditionText": {
        get: function() {
          return this.media.mediaText;
        },
        set: function(value2) {
          this.media.mediaText = value2;
        },
        configurable: true,
        enumerable: true
      },
      "cssText": {
        get: function() {
          var cssTexts = [];
          for (var i5 = 0, length2 = this.cssRules.length; i5 < length2; i5++) {
            cssTexts.push(this.cssRules[i5].cssText);
          }
          return "@media " + this.media.mediaText + " {" + cssTexts.join("") + "}";
        },
        configurable: true,
        enumerable: true
      }
    });
    exports.CSSMediaRule = CSSOM.CSSMediaRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSContainerRule.js
var require_CSSContainerRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSContainerRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule().CSSRule,
      CSSGroupingRule: require_CSSGroupingRule().CSSGroupingRule,
      CSSConditionRule: require_CSSConditionRule().CSSConditionRule
    };
    CSSOM.CSSContainerRule = function CSSContainerRule() {
      CSSOM.CSSConditionRule.call(this);
    };
    CSSOM.CSSContainerRule.prototype = new CSSOM.CSSConditionRule();
    CSSOM.CSSContainerRule.prototype.constructor = CSSOM.CSSContainerRule;
    CSSOM.CSSContainerRule.prototype.type = 17;
    Object.defineProperties(CSSOM.CSSContainerRule.prototype, {
      "conditionText": {
        get: function() {
          return this.containerText;
        },
        set: function(value2) {
          this.containerText = value2;
        },
        configurable: true,
        enumerable: true
      },
      "cssText": {
        get: function() {
          var cssTexts = [];
          for (var i5 = 0, length2 = this.cssRules.length; i5 < length2; i5++) {
            cssTexts.push(this.cssRules[i5].cssText);
          }
          return "@container " + this.containerText + " {" + cssTexts.join("") + "}";
        },
        configurable: true,
        enumerable: true
      }
    });
    exports.CSSContainerRule = CSSOM.CSSContainerRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSSupportsRule.js
var require_CSSSupportsRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSSupportsRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule().CSSRule,
      CSSGroupingRule: require_CSSGroupingRule().CSSGroupingRule,
      CSSConditionRule: require_CSSConditionRule().CSSConditionRule
    };
    CSSOM.CSSSupportsRule = function CSSSupportsRule() {
      CSSOM.CSSConditionRule.call(this);
    };
    CSSOM.CSSSupportsRule.prototype = new CSSOM.CSSConditionRule();
    CSSOM.CSSSupportsRule.prototype.constructor = CSSOM.CSSSupportsRule;
    CSSOM.CSSSupportsRule.prototype.type = 12;
    Object.defineProperty(CSSOM.CSSSupportsRule.prototype, "cssText", {
      get: function() {
        var cssTexts = [];
        for (var i5 = 0, length2 = this.cssRules.length; i5 < length2; i5++) {
          cssTexts.push(this.cssRules[i5].cssText);
        }
        return "@supports " + this.conditionText + " {" + cssTexts.join("") + "}";
      }
    });
    exports.CSSSupportsRule = CSSOM.CSSSupportsRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSFontFaceRule.js
var require_CSSFontFaceRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSFontFaceRule.js"(exports) {
    var CSSOM = {
      CSSStyleDeclaration: require_CSSStyleDeclaration().CSSStyleDeclaration,
      CSSRule: require_CSSRule().CSSRule
    };
    CSSOM.CSSFontFaceRule = function CSSFontFaceRule() {
      CSSOM.CSSRule.call(this);
      this.style = new CSSOM.CSSStyleDeclaration();
      this.style.parentRule = this;
    };
    CSSOM.CSSFontFaceRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSFontFaceRule.prototype.constructor = CSSOM.CSSFontFaceRule;
    CSSOM.CSSFontFaceRule.prototype.type = 5;
    Object.defineProperty(CSSOM.CSSFontFaceRule.prototype, "cssText", {
      get: function() {
        return "@font-face {" + this.style.cssText + "}";
      }
    });
    exports.CSSFontFaceRule = CSSOM.CSSFontFaceRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSHostRule.js
var require_CSSHostRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSHostRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule().CSSRule
    };
    CSSOM.CSSHostRule = function CSSHostRule() {
      CSSOM.CSSRule.call(this);
      this.cssRules = [];
    };
    CSSOM.CSSHostRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSHostRule.prototype.constructor = CSSOM.CSSHostRule;
    CSSOM.CSSHostRule.prototype.type = 1001;
    Object.defineProperty(CSSOM.CSSHostRule.prototype, "cssText", {
      get: function() {
        var cssTexts = [];
        for (var i5 = 0, length2 = this.cssRules.length; i5 < length2; i5++) {
          cssTexts.push(this.cssRules[i5].cssText);
        }
        return "@host {" + cssTexts.join("") + "}";
      }
    });
    exports.CSSHostRule = CSSOM.CSSHostRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSStartingStyleRule.js
var require_CSSStartingStyleRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSStartingStyleRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule().CSSRule
    };
    CSSOM.CSSStartingStyleRule = function CSSStartingStyleRule() {
      CSSOM.CSSRule.call(this);
      this.cssRules = [];
    };
    CSSOM.CSSStartingStyleRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSStartingStyleRule.prototype.constructor = CSSOM.CSSStartingStyleRule;
    CSSOM.CSSStartingStyleRule.prototype.type = 1002;
    Object.defineProperty(CSSOM.CSSStartingStyleRule.prototype, "cssText", {
      get: function() {
        var cssTexts = [];
        for (var i5 = 0, length2 = this.cssRules.length; i5 < length2; i5++) {
          cssTexts.push(this.cssRules[i5].cssText);
        }
        return "@starting-style {" + cssTexts.join("") + "}";
      }
    });
    exports.CSSStartingStyleRule = CSSOM.CSSStartingStyleRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSKeyframeRule.js
var require_CSSKeyframeRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSKeyframeRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule().CSSRule,
      CSSStyleDeclaration: require_CSSStyleDeclaration().CSSStyleDeclaration
    };
    CSSOM.CSSKeyframeRule = function CSSKeyframeRule() {
      CSSOM.CSSRule.call(this);
      this.keyText = "";
      this.style = new CSSOM.CSSStyleDeclaration();
      this.style.parentRule = this;
    };
    CSSOM.CSSKeyframeRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSKeyframeRule.prototype.constructor = CSSOM.CSSKeyframeRule;
    CSSOM.CSSKeyframeRule.prototype.type = 8;
    Object.defineProperty(CSSOM.CSSKeyframeRule.prototype, "cssText", {
      get: function() {
        return this.keyText + " {" + this.style.cssText + "} ";
      }
    });
    exports.CSSKeyframeRule = CSSOM.CSSKeyframeRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSKeyframesRule.js
var require_CSSKeyframesRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSKeyframesRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule().CSSRule
    };
    CSSOM.CSSKeyframesRule = function CSSKeyframesRule() {
      CSSOM.CSSRule.call(this);
      this.name = "";
      this.cssRules = [];
    };
    CSSOM.CSSKeyframesRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSKeyframesRule.prototype.constructor = CSSOM.CSSKeyframesRule;
    CSSOM.CSSKeyframesRule.prototype.type = 7;
    Object.defineProperty(CSSOM.CSSKeyframesRule.prototype, "cssText", {
      get: function() {
        var cssTexts = [];
        for (var i5 = 0, length2 = this.cssRules.length; i5 < length2; i5++) {
          cssTexts.push("  " + this.cssRules[i5].cssText);
        }
        return "@" + (this._vendorPrefix || "") + "keyframes " + this.name + " { \n" + cssTexts.join("\n") + "\n}";
      }
    });
    exports.CSSKeyframesRule = CSSOM.CSSKeyframesRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSValue.js
var require_CSSValue = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSValue.js"(exports) {
    var CSSOM = {};
    CSSOM.CSSValue = function CSSValue() {
    };
    CSSOM.CSSValue.prototype = {
      constructor: CSSOM.CSSValue,
      // @see: http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue
      set cssText(text) {
        var name = this._getConstructorName();
        throw new Error('DOMException: property "cssText" of "' + name + '" is readonly and can not be replaced with "' + text + '"!');
      },
      get cssText() {
        var name = this._getConstructorName();
        throw new Error('getter "cssText" of "' + name + '" is not implemented!');
      },
      _getConstructorName: function() {
        var s4 = this.constructor.toString(), c6 = s4.match(/function\s([^\(]+)/), name = c6[1];
        return name;
      }
    };
    exports.CSSValue = CSSOM.CSSValue;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSValueExpression.js
var require_CSSValueExpression = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSValueExpression.js"(exports) {
    var CSSOM = {
      CSSValue: require_CSSValue().CSSValue
    };
    CSSOM.CSSValueExpression = function CSSValueExpression(token, idx) {
      this._token = token;
      this._idx = idx;
    };
    CSSOM.CSSValueExpression.prototype = new CSSOM.CSSValue();
    CSSOM.CSSValueExpression.prototype.constructor = CSSOM.CSSValueExpression;
    CSSOM.CSSValueExpression.prototype.parse = function() {
      var token = this._token, idx = this._idx;
      var character = "", expression = "", error = "", info, paren = [];
      for (; ; ++idx) {
        character = token.charAt(idx);
        if (character === "") {
          error = "css expression error: unfinished expression!";
          break;
        }
        switch (character) {
          case "(":
            paren.push(character);
            expression += character;
            break;
          case ")":
            paren.pop(character);
            expression += character;
            break;
          case "/":
            if (info = this._parseJSComment(token, idx)) {
              if (info.error) {
                error = "css expression error: unfinished comment in expression!";
              } else {
                idx = info.idx;
              }
            } else if (info = this._parseJSRexExp(token, idx)) {
              idx = info.idx;
              expression += info.text;
            } else {
              expression += character;
            }
            break;
          case "'":
          case '"':
            info = this._parseJSString(token, idx, character);
            if (info) {
              idx = info.idx;
              expression += info.text;
            } else {
              expression += character;
            }
            break;
          default:
            expression += character;
            break;
        }
        if (error) {
          break;
        }
        if (paren.length === 0) {
          break;
        }
      }
      var ret;
      if (error) {
        ret = {
          error
        };
      } else {
        ret = {
          idx,
          expression
        };
      }
      return ret;
    };
    CSSOM.CSSValueExpression.prototype._parseJSComment = function(token, idx) {
      var nextChar = token.charAt(idx + 1), text;
      if (nextChar === "/" || nextChar === "*") {
        var startIdx = idx, endIdx, commentEndChar;
        if (nextChar === "/") {
          commentEndChar = "\n";
        } else if (nextChar === "*") {
          commentEndChar = "*/";
        }
        endIdx = token.indexOf(commentEndChar, startIdx + 1 + 1);
        if (endIdx !== -1) {
          endIdx = endIdx + commentEndChar.length - 1;
          text = token.substring(idx, endIdx + 1);
          return {
            idx: endIdx,
            text
          };
        } else {
          var error = "css expression error: unfinished comment in expression!";
          return {
            error
          };
        }
      } else {
        return false;
      }
    };
    CSSOM.CSSValueExpression.prototype._parseJSString = function(token, idx, sep) {
      var endIdx = this._findMatchedIdx(token, idx, sep), text;
      if (endIdx === -1) {
        return false;
      } else {
        text = token.substring(idx, endIdx + sep.length);
        return {
          idx: endIdx,
          text
        };
      }
    };
    CSSOM.CSSValueExpression.prototype._parseJSRexExp = function(token, idx) {
      var before = token.substring(0, idx).replace(/\s+$/, ""), legalRegx = [
        /^$/,
        /\($/,
        /\[$/,
        /\!$/,
        /\+$/,
        /\-$/,
        /\*$/,
        /\/\s+/,
        /\%$/,
        /\=$/,
        /\>$/,
        /<$/,
        /\&$/,
        /\|$/,
        /\^$/,
        /\~$/,
        /\?$/,
        /\,$/,
        /delete$/,
        /in$/,
        /instanceof$/,
        /new$/,
        /typeof$/,
        /void$/
      ];
      var isLegal = legalRegx.some(function(reg) {
        return reg.test(before);
      });
      if (!isLegal) {
        return false;
      } else {
        var sep = "/";
        return this._parseJSString(token, idx, sep);
      }
    };
    CSSOM.CSSValueExpression.prototype._findMatchedIdx = function(token, idx, sep) {
      var startIdx = idx, endIdx;
      var NOT_FOUND = -1;
      while (true) {
        endIdx = token.indexOf(sep, startIdx + 1);
        if (endIdx === -1) {
          endIdx = NOT_FOUND;
          break;
        } else {
          var text = token.substring(idx + 1, endIdx), matched = text.match(/\\+$/);
          if (!matched || matched[0] % 2 === 0) {
            break;
          } else {
            startIdx = endIdx;
          }
        }
      }
      var nextNewLineIdx = token.indexOf("\n", idx + 1);
      if (nextNewLineIdx < endIdx) {
        endIdx = NOT_FOUND;
      }
      return endIdx;
    };
    exports.CSSValueExpression = CSSOM.CSSValueExpression;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/MatcherList.js
var require_MatcherList = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/MatcherList.js"(exports) {
    var CSSOM = {};
    CSSOM.MatcherList = function MatcherList() {
      this.length = 0;
    };
    CSSOM.MatcherList.prototype = {
      constructor: CSSOM.MatcherList,
      /**
       * @return {string}
       */
      get matcherText() {
        return Array.prototype.join.call(this, ", ");
      },
      /**
       * @param {string} value
       */
      set matcherText(value2) {
        var values = value2.split(",");
        var length2 = this.length = values.length;
        for (var i5 = 0; i5 < length2; i5++) {
          this[i5] = values[i5].trim();
        }
      },
      /**
       * @param {string} matcher
       */
      appendMatcher: function(matcher) {
        if (Array.prototype.indexOf.call(this, matcher) === -1) {
          this[this.length] = matcher;
          this.length++;
        }
      },
      /**
       * @param {string} matcher
       */
      deleteMatcher: function(matcher) {
        var index2 = Array.prototype.indexOf.call(this, matcher);
        if (index2 !== -1) {
          Array.prototype.splice.call(this, index2, 1);
        }
      }
    };
    exports.MatcherList = CSSOM.MatcherList;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSDocumentRule.js
var require_CSSDocumentRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSDocumentRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule().CSSRule,
      MatcherList: require_MatcherList().MatcherList
    };
    CSSOM.CSSDocumentRule = function CSSDocumentRule() {
      CSSOM.CSSRule.call(this);
      this.matcher = new CSSOM.MatcherList();
      this.cssRules = [];
    };
    CSSOM.CSSDocumentRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSDocumentRule.prototype.constructor = CSSOM.CSSDocumentRule;
    CSSOM.CSSDocumentRule.prototype.type = 10;
    Object.defineProperty(CSSOM.CSSDocumentRule.prototype, "cssText", {
      get: function() {
        var cssTexts = [];
        for (var i5 = 0, length2 = this.cssRules.length; i5 < length2; i5++) {
          cssTexts.push(this.cssRules[i5].cssText);
        }
        return "@-moz-document " + this.matcher.matcherText + " {" + cssTexts.join("") + "}";
      }
    });
    exports.CSSDocumentRule = CSSOM.CSSDocumentRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSLayerBlockRule.js
var require_CSSLayerBlockRule = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSLayerBlockRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule().CSSRule,
      CSSGroupingRule: require_CSSGroupingRule().CSSGroupingRule
    };
    CSSOM.CSSLayerBlockRule = function CSSLayerBlockRule() {
      CSSOM.CSSGroupingRule.call(this);
      this.layerName = "";
      this.cssRules = [];
    };
    CSSOM.CSSLayerBlockRule.prototype = new CSSOM.CSSGroupingRule();
    CSSOM.CSSLayerBlockRule.prototype.constructor = CSSOM.CSSLayerBlockRule;
    CSSOM.CSSLayerBlockRule.prototype.type = 18;
    Object.defineProperties(CSSOM.CSSLayerBlockRule.prototype, {
      layerNameText: {
        get: function() {
          return this.layerName;
        },
        set: function(value2) {
          this.layerName = value2;
        },
        configurable: true,
        enumerable: true
      },
      cssText: {
        get: function() {
          var cssTexts = [];
          for (var i5 = 0, length2 = this.cssRules.length; i5 < length2; i5++) {
            cssTexts.push(this.cssRules[i5].cssText);
          }
          return "@layer " + this.layerNameText + " {" + cssTexts.join("") + "}";
        },
        configurable: true,
        enumerable: true
      }
    });
    exports.CSSLayerBlockRule = CSSOM.CSSLayerBlockRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/parse.js
var require_parse6 = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/parse.js"(exports) {
    var CSSOM = {};
    CSSOM.parse = function parse3(token) {
      var i5 = 0;
      var state = "before-selector";
      var index2;
      var buffer = "";
      var valueParenthesisDepth = 0;
      var SIGNIFICANT_WHITESPACE = {
        "selector": true,
        "value": true,
        "value-parenthesis": true,
        "atRule": true,
        "importRule-begin": true,
        "importRule": true,
        "atBlock": true,
        "containerBlock": true,
        "conditionBlock": true,
        "documentRule-begin": true,
        "layerBlock": true
      };
      var styleSheet = new CSSOM.CSSStyleSheet();
      var currentScope = styleSheet;
      var parentRule;
      var ancestorRules = [];
      var hasAncestors = false;
      var prevScope;
      var name, priority = "", styleRule, mediaRule, containerRule, supportsRule, importRule, fontFaceRule, keyframesRule, documentRule, hostRule, startingStyleRule, layerBlockRule;
      var atKeyframesRegExp = /@(-(?:\w+-)+)?keyframes/g;
      var parseError = function(message) {
        var lines = token.substring(0, i5).split("\n");
        var lineCount = lines.length;
        var charCount = lines.pop().length + 1;
        var error = new Error(message + " (line " + lineCount + ", char " + charCount + ")");
        error.line = lineCount;
        error["char"] = charCount;
        error.styleSheet = styleSheet;
        throw error;
      };
      for (var character; character = token.charAt(i5); i5++) {
        switch (character) {
          case " ":
          case "	":
          case "\r":
          case "\n":
          case "\f":
            if (SIGNIFICANT_WHITESPACE[state]) {
              buffer += character;
            }
            break;
          // String
          case '"':
            index2 = i5 + 1;
            do {
              index2 = token.indexOf('"', index2) + 1;
              if (!index2) {
                parseError('Unmatched "');
              }
            } while (token[index2 - 2] === "\\");
            buffer += token.slice(i5, index2);
            i5 = index2 - 1;
            switch (state) {
              case "before-value":
                state = "value";
                break;
              case "importRule-begin":
                state = "importRule";
                break;
            }
            break;
          case "'":
            index2 = i5 + 1;
            do {
              index2 = token.indexOf("'", index2) + 1;
              if (!index2) {
                parseError("Unmatched '");
              }
            } while (token[index2 - 2] === "\\");
            buffer += token.slice(i5, index2);
            i5 = index2 - 1;
            switch (state) {
              case "before-value":
                state = "value";
                break;
              case "importRule-begin":
                state = "importRule";
                break;
            }
            break;
          // Comment
          case "/":
            if (token.charAt(i5 + 1) === "*") {
              i5 += 2;
              index2 = token.indexOf("*/", i5);
              if (index2 === -1) {
                parseError("Missing */");
              } else {
                i5 = index2 + 1;
              }
            } else {
              buffer += character;
            }
            if (state === "importRule-begin") {
              buffer += " ";
              state = "importRule";
            }
            break;
          // At-rule
          case "@":
            if (token.indexOf("@-moz-document", i5) === i5) {
              state = "documentRule-begin";
              documentRule = new CSSOM.CSSDocumentRule();
              documentRule.__starts = i5;
              i5 += "-moz-document".length;
              buffer = "";
              break;
            } else if (token.indexOf("@media", i5) === i5) {
              state = "atBlock";
              mediaRule = new CSSOM.CSSMediaRule();
              mediaRule.__starts = i5;
              i5 += "media".length;
              buffer = "";
              break;
            } else if (token.indexOf("@container", i5) === i5) {
              state = "containerBlock";
              containerRule = new CSSOM.CSSContainerRule();
              containerRule.__starts = i5;
              i5 += "container".length;
              buffer = "";
              break;
            } else if (token.indexOf("@layer", i5) === i5) {
              state = "layerBlock";
              layerBlockRule = new CSSOM.CSSLayerBlockRule();
              layerBlockRule.__starts = i5;
              i5 += "layer".length;
              buffer = "";
              break;
            } else if (token.indexOf("@supports", i5) === i5) {
              state = "conditionBlock";
              supportsRule = new CSSOM.CSSSupportsRule();
              supportsRule.__starts = i5;
              i5 += "supports".length;
              buffer = "";
              break;
            } else if (token.indexOf("@host", i5) === i5) {
              state = "hostRule-begin";
              i5 += "host".length;
              hostRule = new CSSOM.CSSHostRule();
              hostRule.__starts = i5;
              buffer = "";
              break;
            } else if (token.indexOf("@starting-style", i5) === i5) {
              state = "startingStyleRule-begin";
              i5 += "starting-style".length;
              startingStyleRule = new CSSOM.CSSStartingStyleRule();
              startingStyleRule.__starts = i5;
              buffer = "";
              break;
            } else if (token.indexOf("@import", i5) === i5) {
              state = "importRule-begin";
              i5 += "import".length;
              buffer += "@import";
              break;
            } else if (token.indexOf("@font-face", i5) === i5) {
              state = "fontFaceRule-begin";
              i5 += "font-face".length;
              fontFaceRule = new CSSOM.CSSFontFaceRule();
              fontFaceRule.__starts = i5;
              buffer = "";
              break;
            } else {
              atKeyframesRegExp.lastIndex = i5;
              var matchKeyframes = atKeyframesRegExp.exec(token);
              if (matchKeyframes && matchKeyframes.index === i5) {
                state = "keyframesRule-begin";
                keyframesRule = new CSSOM.CSSKeyframesRule();
                keyframesRule.__starts = i5;
                keyframesRule._vendorPrefix = matchKeyframes[1];
                i5 += matchKeyframes[0].length - 1;
                buffer = "";
                break;
              } else if (state === "selector") {
                state = "atRule";
              }
            }
            buffer += character;
            break;
          case "{":
            if (state === "selector" || state === "atRule") {
              styleRule.selectorText = buffer.trim();
              styleRule.style.__starts = i5;
              buffer = "";
              state = "before-name";
            } else if (state === "atBlock") {
              mediaRule.media.mediaText = buffer.trim();
              if (parentRule) {
                ancestorRules.push(parentRule);
              }
              currentScope = parentRule = mediaRule;
              mediaRule.parentStyleSheet = styleSheet;
              buffer = "";
              state = "before-selector";
            } else if (state === "containerBlock") {
              containerRule.containerText = buffer.trim();
              if (parentRule) {
                ancestorRules.push(parentRule);
              }
              currentScope = parentRule = containerRule;
              containerRule.parentStyleSheet = styleSheet;
              buffer = "";
              state = "before-selector";
            } else if (state === "conditionBlock") {
              supportsRule.conditionText = buffer.trim();
              if (parentRule) {
                ancestorRules.push(parentRule);
              }
              currentScope = parentRule = supportsRule;
              supportsRule.parentStyleSheet = styleSheet;
              buffer = "";
              state = "before-selector";
            } else if (state === "layerBlock") {
              layerBlockRule.layerNameText = buffer.trim();
              if (parentRule) {
                ancestorRules.push(parentRule);
              }
              currentScope = parentRule = layerBlockRule;
              layerBlockRule.parentStyleSheet = styleSheet;
              buffer = "";
              state = "before-selector";
            } else if (state === "hostRule-begin") {
              if (parentRule) {
                ancestorRules.push(parentRule);
              }
              currentScope = parentRule = hostRule;
              hostRule.parentStyleSheet = styleSheet;
              buffer = "";
              state = "before-selector";
            } else if (state === "startingStyleRule-begin") {
              if (parentRule) {
                ancestorRules.push(parentRule);
              }
              currentScope = parentRule = startingStyleRule;
              startingStyleRule.parentStyleSheet = styleSheet;
              buffer = "";
              state = "before-selector";
            } else if (state === "fontFaceRule-begin") {
              if (parentRule) {
                fontFaceRule.parentRule = parentRule;
              }
              fontFaceRule.parentStyleSheet = styleSheet;
              styleRule = fontFaceRule;
              buffer = "";
              state = "before-name";
            } else if (state === "keyframesRule-begin") {
              keyframesRule.name = buffer.trim();
              if (parentRule) {
                ancestorRules.push(parentRule);
                keyframesRule.parentRule = parentRule;
              }
              keyframesRule.parentStyleSheet = styleSheet;
              currentScope = parentRule = keyframesRule;
              buffer = "";
              state = "keyframeRule-begin";
            } else if (state === "keyframeRule-begin") {
              styleRule = new CSSOM.CSSKeyframeRule();
              styleRule.keyText = buffer.trim();
              styleRule.__starts = i5;
              buffer = "";
              state = "before-name";
            } else if (state === "documentRule-begin") {
              documentRule.matcher.matcherText = buffer.trim();
              if (parentRule) {
                ancestorRules.push(parentRule);
                documentRule.parentRule = parentRule;
              }
              currentScope = parentRule = documentRule;
              documentRule.parentStyleSheet = styleSheet;
              buffer = "";
              state = "before-selector";
            }
            break;
          case ":":
            if (state === "name") {
              name = buffer.trim();
              buffer = "";
              state = "before-value";
            } else {
              buffer += character;
            }
            break;
          case "(":
            if (state === "value") {
              if (buffer.trim() === "expression") {
                var info = new CSSOM.CSSValueExpression(token, i5).parse();
                if (info.error) {
                  parseError(info.error);
                } else {
                  buffer += info.expression;
                  i5 = info.idx;
                }
              } else {
                state = "value-parenthesis";
                valueParenthesisDepth = 1;
                buffer += character;
              }
            } else if (state === "value-parenthesis") {
              valueParenthesisDepth++;
              buffer += character;
            } else {
              buffer += character;
            }
            break;
          case ")":
            if (state === "value-parenthesis") {
              valueParenthesisDepth--;
              if (valueParenthesisDepth === 0) state = "value";
            }
            buffer += character;
            break;
          case "!":
            if (state === "value" && token.indexOf("!important", i5) === i5) {
              priority = "important";
              i5 += "important".length;
            } else {
              buffer += character;
            }
            break;
          case ";":
            switch (state) {
              case "value":
                styleRule.style.setProperty(name, buffer.trim(), priority);
                priority = "";
                buffer = "";
                state = "before-name";
                break;
              case "atRule":
                buffer = "";
                state = "before-selector";
                break;
              case "importRule":
                importRule = new CSSOM.CSSImportRule();
                importRule.parentStyleSheet = importRule.styleSheet.parentStyleSheet = styleSheet;
                importRule.cssText = buffer + character;
                styleSheet.cssRules.push(importRule);
                buffer = "";
                state = "before-selector";
                break;
              default:
                buffer += character;
                break;
            }
            break;
          case "}":
            switch (state) {
              case "value":
                styleRule.style.setProperty(name, buffer.trim(), priority);
                priority = "";
              /* falls through */
              case "before-name":
              case "name":
                styleRule.__ends = i5 + 1;
                if (parentRule) {
                  styleRule.parentRule = parentRule;
                }
                styleRule.parentStyleSheet = styleSheet;
                currentScope.cssRules.push(styleRule);
                buffer = "";
                if (currentScope.constructor === CSSOM.CSSKeyframesRule) {
                  state = "keyframeRule-begin";
                } else {
                  state = "before-selector";
                }
                break;
              case "keyframeRule-begin":
              case "before-selector":
              case "selector":
                if (!parentRule) {
                  parseError("Unexpected }");
                }
                hasAncestors = ancestorRules.length > 0;
                while (ancestorRules.length > 0) {
                  parentRule = ancestorRules.pop();
                  if (parentRule.constructor.name === "CSSMediaRule" || parentRule.constructor.name === "CSSSupportsRule" || parentRule.constructor.name === "CSSContainerRule" || parentRule.constructor.name === "CSSLayerBlockRule" || parentRule.constructor.name === "CSSStartingStyleRule") {
                    prevScope = currentScope;
                    currentScope = parentRule;
                    currentScope.cssRules.push(prevScope);
                    break;
                  }
                  if (ancestorRules.length === 0) {
                    hasAncestors = false;
                  }
                }
                if (!hasAncestors) {
                  currentScope.__ends = i5 + 1;
                  styleSheet.cssRules.push(currentScope);
                  currentScope = styleSheet;
                  parentRule = null;
                }
                buffer = "";
                state = "before-selector";
                break;
            }
            break;
          default:
            switch (state) {
              case "before-selector":
                state = "selector";
                styleRule = new CSSOM.CSSStyleRule();
                styleRule.__starts = i5;
                break;
              case "before-name":
                state = "name";
                break;
              case "before-value":
                state = "value";
                break;
              case "importRule-begin":
                state = "importRule";
                break;
            }
            buffer += character;
            break;
        }
      }
      return styleSheet;
    };
    exports.parse = CSSOM.parse;
    CSSOM.CSSStyleSheet = require_CSSStyleSheet().CSSStyleSheet;
    CSSOM.CSSStyleRule = require_CSSStyleRule().CSSStyleRule;
    CSSOM.CSSImportRule = require_CSSImportRule().CSSImportRule;
    CSSOM.CSSGroupingRule = require_CSSGroupingRule().CSSGroupingRule;
    CSSOM.CSSMediaRule = require_CSSMediaRule().CSSMediaRule;
    CSSOM.CSSContainerRule = require_CSSContainerRule().CSSContainerRule;
    CSSOM.CSSConditionRule = require_CSSConditionRule().CSSConditionRule;
    CSSOM.CSSSupportsRule = require_CSSSupportsRule().CSSSupportsRule;
    CSSOM.CSSFontFaceRule = require_CSSFontFaceRule().CSSFontFaceRule;
    CSSOM.CSSHostRule = require_CSSHostRule().CSSHostRule;
    CSSOM.CSSStartingStyleRule = require_CSSStartingStyleRule().CSSStartingStyleRule;
    CSSOM.CSSStyleDeclaration = require_CSSStyleDeclaration().CSSStyleDeclaration;
    CSSOM.CSSKeyframeRule = require_CSSKeyframeRule().CSSKeyframeRule;
    CSSOM.CSSKeyframesRule = require_CSSKeyframesRule().CSSKeyframesRule;
    CSSOM.CSSValueExpression = require_CSSValueExpression().CSSValueExpression;
    CSSOM.CSSDocumentRule = require_CSSDocumentRule().CSSDocumentRule;
    CSSOM.CSSLayerBlockRule = require_CSSLayerBlockRule().CSSLayerBlockRule;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSStyleDeclaration.js
var require_CSSStyleDeclaration = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/CSSStyleDeclaration.js"(exports) {
    var CSSOM = {};
    CSSOM.CSSStyleDeclaration = function CSSStyleDeclaration() {
      this.length = 0;
      this.parentRule = null;
      this._importants = {};
    };
    CSSOM.CSSStyleDeclaration.prototype = {
      constructor: CSSOM.CSSStyleDeclaration,
      /**
       *
       * @param {string} name
       * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-getPropertyValue
       * @return {string} the value of the property if it has been explicitly set for this declaration block.
       * Returns the empty string if the property has not been set.
       */
      getPropertyValue: function(name) {
        return this[name] || "";
      },
      /**
       *
       * @param {string} name
       * @param {string} value
       * @param {string} [priority=null] "important" or null
       * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-setProperty
       */
      setProperty: function(name, value2, priority) {
        if (this[name]) {
          var index2 = Array.prototype.indexOf.call(this, name);
          if (index2 < 0) {
            this[this.length] = name;
            this.length++;
          }
        } else {
          this[this.length] = name;
          this.length++;
        }
        this[name] = value2 + "";
        this._importants[name] = priority;
      },
      /**
       *
       * @param {string} name
       * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-removeProperty
       * @return {string} the value of the property if it has been explicitly set for this declaration block.
       * Returns the empty string if the property has not been set or the property name does not correspond to a known CSS property.
       */
      removeProperty: function(name) {
        if (!(name in this)) {
          return "";
        }
        var index2 = Array.prototype.indexOf.call(this, name);
        if (index2 < 0) {
          return "";
        }
        var prevValue = this[name];
        this[name] = "";
        Array.prototype.splice.call(this, index2, 1);
        return prevValue;
      },
      getPropertyCSSValue: function() {
      },
      /**
       *
       * @param {String} name
       */
      getPropertyPriority: function(name) {
        return this._importants[name] || "";
      },
      /**
       *   element.style.overflow = "auto"
       *   element.style.getPropertyShorthand("overflow-x")
       *   -> "overflow"
       */
      getPropertyShorthand: function() {
      },
      isPropertyImplicit: function() {
      },
      // Doesn't work in IE < 9
      get cssText() {
        var properties = [];
        for (var i5 = 0, length2 = this.length; i5 < length2; ++i5) {
          var name = this[i5];
          var value2 = this.getPropertyValue(name);
          var priority = this.getPropertyPriority(name);
          if (priority) {
            priority = " !" + priority;
          }
          properties[i5] = name + ": " + value2 + priority + ";";
        }
        return properties.join(" ");
      },
      set cssText(text) {
        var i5, name;
        for (i5 = this.length; i5--; ) {
          name = this[i5];
          this[name] = "";
        }
        Array.prototype.splice.call(this, 0, this.length);
        this._importants = {};
        var dummyRule = CSSOM.parse("#bogus{" + text + "}").cssRules[0].style;
        var length2 = dummyRule.length;
        for (i5 = 0; i5 < length2; ++i5) {
          name = dummyRule[i5];
          this.setProperty(dummyRule[i5], dummyRule.getPropertyValue(name), dummyRule.getPropertyPriority(name));
        }
      }
    };
    exports.CSSStyleDeclaration = CSSOM.CSSStyleDeclaration;
    CSSOM.parse = require_parse6().parse;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/clone.js
var require_clone2 = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/clone.js"(exports) {
    var CSSOM = {
      CSSStyleSheet: require_CSSStyleSheet().CSSStyleSheet,
      CSSRule: require_CSSRule().CSSRule,
      CSSStyleRule: require_CSSStyleRule().CSSStyleRule,
      CSSGroupingRule: require_CSSGroupingRule().CSSGroupingRule,
      CSSConditionRule: require_CSSConditionRule().CSSConditionRule,
      CSSMediaRule: require_CSSMediaRule().CSSMediaRule,
      CSSContainerRule: require_CSSContainerRule().CSSContainerRule,
      CSSSupportsRule: require_CSSSupportsRule().CSSSupportsRule,
      CSSStyleDeclaration: require_CSSStyleDeclaration().CSSStyleDeclaration,
      CSSKeyframeRule: require_CSSKeyframeRule().CSSKeyframeRule,
      CSSKeyframesRule: require_CSSKeyframesRule().CSSKeyframesRule,
      CSSLayerBlockRule: require_CSSLayerBlockRule().CSSLayerBlockRule
    };
    CSSOM.clone = function clone(stylesheet) {
      var cloned = new CSSOM.CSSStyleSheet();
      var rules = stylesheet.cssRules;
      if (!rules) {
        return cloned;
      }
      for (var i5 = 0, rulesLength = rules.length; i5 < rulesLength; i5++) {
        var rule = rules[i5];
        var ruleClone = cloned.cssRules[i5] = new rule.constructor();
        var style = rule.style;
        if (style) {
          var styleClone = ruleClone.style = new CSSOM.CSSStyleDeclaration();
          for (var j = 0, styleLength = style.length; j < styleLength; j++) {
            var name = styleClone[j] = style[j];
            styleClone[name] = style[name];
            styleClone._importants[name] = style.getPropertyPriority(name);
          }
          styleClone.length = style.length;
        }
        if (rule.hasOwnProperty("keyText")) {
          ruleClone.keyText = rule.keyText;
        }
        if (rule.hasOwnProperty("selectorText")) {
          ruleClone.selectorText = rule.selectorText;
        }
        if (rule.hasOwnProperty("mediaText")) {
          ruleClone.mediaText = rule.mediaText;
        }
        if (rule.hasOwnProperty("conditionText")) {
          ruleClone.conditionText = rule.conditionText;
        }
        if (rule.hasOwnProperty("layerName")) {
          ruleClone.layerName = rule.layerName;
        }
        if (rule.hasOwnProperty("cssRules")) {
          ruleClone.cssRules = clone(rule).cssRules;
        }
      }
      return cloned;
    };
    exports.clone = CSSOM.clone;
  }
});

// ../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/index.js
var require_lib21 = __commonJS({
  "../../node_modules/.pnpm/rrweb-cssom@0.8.0/node_modules/rrweb-cssom/lib/index.js"(exports) {
    "use strict";
    exports.CSSStyleDeclaration = require_CSSStyleDeclaration().CSSStyleDeclaration;
    exports.CSSRule = require_CSSRule().CSSRule;
    exports.CSSGroupingRule = require_CSSGroupingRule().CSSGroupingRule;
    exports.CSSConditionRule = require_CSSConditionRule().CSSConditionRule;
    exports.CSSStyleRule = require_CSSStyleRule().CSSStyleRule;
    exports.MediaList = require_MediaList().MediaList;
    exports.CSSMediaRule = require_CSSMediaRule().CSSMediaRule;
    exports.CSSContainerRule = require_CSSContainerRule().CSSContainerRule;
    exports.CSSSupportsRule = require_CSSSupportsRule().CSSSupportsRule;
    exports.CSSImportRule = require_CSSImportRule().CSSImportRule;
    exports.CSSFontFaceRule = require_CSSFontFaceRule().CSSFontFaceRule;
    exports.CSSHostRule = require_CSSHostRule().CSSHostRule;
    exports.CSSStartingStyleRule = require_CSSStartingStyleRule().CSSStartingStyleRule;
    exports.StyleSheet = require_StyleSheet().StyleSheet;
    exports.CSSStyleSheet = require_CSSStyleSheet().CSSStyleSheet;
    exports.CSSKeyframesRule = require_CSSKeyframesRule().CSSKeyframesRule;
    exports.CSSKeyframeRule = require_CSSKeyframeRule().CSSKeyframeRule;
    exports.MatcherList = require_MatcherList().MatcherList;
    exports.CSSDocumentRule = require_CSSDocumentRule().CSSDocumentRule;
    exports.CSSValue = require_CSSValue().CSSValue;
    exports.CSSValueExpression = require_CSSValueExpression().CSSValueExpression;
    exports.CSSLayerBlockRule = require_CSSLayerBlockRule().CSSLayerBlockRule;
    exports.parse = require_parse6().parse;
    exports.clone = require_clone2().clone;
  }
});

// ../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/allWebkitProperties.js
var require_allWebkitProperties = __commonJS({
  "../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/allWebkitProperties.js"(exports, module) {
    "use strict";
    module.exports = [
      "background-composite",
      "border-after",
      "border-after-color",
      "border-after-style",
      "border-after-width",
      "border-before",
      "border-before-color",
      "border-before-style",
      "border-before-width",
      "border-end",
      "border-end-color",
      "border-end-style",
      "border-end-width",
      "border-fit",
      "border-horizontal-spacing",
      "border-start",
      "border-start-color",
      "border-start-style",
      "border-start-width",
      "border-vertical-spacing",
      "color-correction",
      "column-axis",
      "column-break-after",
      "column-break-before",
      "column-break-inside",
      "column-rule-color",
      "flex-align",
      "flex-item-align",
      "flex-line-pack",
      "flex-order",
      "flex-pack",
      "flex-wrap",
      "font-size-delta",
      "font-smoothing",
      "highlight",
      "hyphenate-limit-after",
      "hyphenate-limit-before",
      "locale",
      "logical-height",
      "logical-width",
      "margin-after",
      "margin-after-collapse",
      "margin-before",
      "margin-before-collapse",
      "margin-bottom-collapse",
      "margin-collapse",
      "margin-end",
      "margin-start",
      "margin-top-collapse",
      "marquee",
      "marquee-direction",
      "marquee-increment",
      "marquee-repetition",
      "marquee-speed",
      "marquee-style",
      "mask-attachment",
      "mask-box-image-outset",
      "mask-box-image-repeat",
      "mask-box-image-slice",
      "mask-box-image-source",
      "mask-box-image-width",
      "mask-position-x",
      "mask-position-y",
      "mask-repeat-x",
      "mask-repeat-y",
      "match-nearest-mail-blockquote-color",
      "max-logical-height",
      "max-logical-width",
      "min-logical-height",
      "min-logical-width",
      "nbsp-mode",
      "overflow-scrolling",
      "padding-after",
      "padding-before",
      "padding-end",
      "padding-start",
      "perspective-origin-x",
      "perspective-origin-y",
      "region-break-after",
      "region-break-before",
      "region-break-inside",
      "region-overflow",
      "rtl-ordering",
      "svg-shadow",
      "tap-highlight-color",
      "text-decorations-in-effect",
      "text-emphasis-color",
      "text-fill-color",
      "text-security",
      "text-size-adjust",
      "text-stroke",
      "text-stroke-color",
      "text-stroke-width",
      "transform",
      "transform-origin-x",
      "transform-origin-y",
      "transform-origin-z",
      "user-drag",
      "user-modify",
      "wrap",
      "wrap-margin",
      "wrap-padding",
      "wrap-shape-inside",
      "wrap-shape-outside",
      "zoom"
    ].map((prop) => `-webkit-${prop}`);
  }
});

// ../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/allExtraProperties.js
var require_allExtraProperties = __commonJS({
  "../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/allExtraProperties.js"(exports, module) {
    "use strict";
    var allWebkitProperties = require_allWebkitProperties();
    module.exports = /* @__PURE__ */ new Set([
      "background-position-x",
      "background-position-y",
      "background-repeat-x",
      "background-repeat-y",
      "color-interpolation",
      "color-profile",
      "color-rendering",
      "enable-background",
      "glyph-orientation-horizontal",
      "kerning",
      "marker-offset",
      "marks",
      "pointer-events",
      "shape-rendering",
      "size",
      "src",
      "stop-color",
      "stop-opacity",
      "text-anchor",
      "text-line-through",
      "text-line-through-color",
      "text-line-through-mode",
      "text-line-through-style",
      "text-line-through-width",
      "text-overline",
      "text-overline-color",
      "text-overline-mode",
      "text-overline-style",
      "text-overline-width",
      "text-rendering",
      "text-underline",
      "text-underline-color",
      "text-underline-mode",
      "text-underline-style",
      "text-underline-width",
      "unicode-range",
      "vector-effect",
      ...allWebkitProperties
    ]);
  }
});

// ../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/generated/allProperties.js
var require_allProperties = __commonJS({
  "../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/generated/allProperties.js"(exports, module) {
    "use strict";
    module.exports = /* @__PURE__ */ new Set([
      "-webkit-line-clamp",
      "accent-color",
      "align-content",
      "align-items",
      "align-self",
      "alignment-baseline",
      "all",
      "anchor-name",
      "anchor-scope",
      "animation",
      "animation-composition",
      "animation-delay",
      "animation-direction",
      "animation-duration",
      "animation-fill-mode",
      "animation-iteration-count",
      "animation-name",
      "animation-play-state",
      "animation-range",
      "animation-range-end",
      "animation-range-start",
      "animation-timeline",
      "animation-timing-function",
      "appearance",
      "aspect-ratio",
      "azimuth",
      "backface-visibility",
      "background",
      "background-attachment",
      "background-blend-mode",
      "background-clip",
      "background-color",
      "background-image",
      "background-origin",
      "background-position",
      "background-repeat",
      "background-size",
      "baseline-shift",
      "baseline-source",
      "block-ellipsis",
      "block-size",
      "block-step",
      "block-step-align",
      "block-step-insert",
      "block-step-round",
      "block-step-size",
      "bookmark-label",
      "bookmark-level",
      "bookmark-state",
      "border",
      "border-block",
      "border-block-color",
      "border-block-end",
      "border-block-end-color",
      "border-block-end-style",
      "border-block-end-width",
      "border-block-start",
      "border-block-start-color",
      "border-block-start-style",
      "border-block-start-width",
      "border-block-style",
      "border-block-width",
      "border-bottom",
      "border-bottom-color",
      "border-bottom-left-radius",
      "border-bottom-right-radius",
      "border-bottom-style",
      "border-bottom-width",
      "border-boundary",
      "border-collapse",
      "border-color",
      "border-end-end-radius",
      "border-end-start-radius",
      "border-image",
      "border-image-outset",
      "border-image-repeat",
      "border-image-slice",
      "border-image-source",
      "border-image-width",
      "border-inline",
      "border-inline-color",
      "border-inline-end",
      "border-inline-end-color",
      "border-inline-end-style",
      "border-inline-end-width",
      "border-inline-start",
      "border-inline-start-color",
      "border-inline-start-style",
      "border-inline-start-width",
      "border-inline-style",
      "border-inline-width",
      "border-left",
      "border-left-color",
      "border-left-style",
      "border-left-width",
      "border-radius",
      "border-right",
      "border-right-color",
      "border-right-style",
      "border-right-width",
      "border-spacing",
      "border-start-end-radius",
      "border-start-start-radius",
      "border-style",
      "border-top",
      "border-top-color",
      "border-top-left-radius",
      "border-top-right-radius",
      "border-top-style",
      "border-top-width",
      "border-width",
      "bottom",
      "box-decoration-break",
      "box-shadow",
      "box-sizing",
      "box-snap",
      "break-after",
      "break-before",
      "break-inside",
      "caption-side",
      "caret",
      "caret-color",
      "caret-shape",
      "clear",
      "clip",
      "clip-path",
      "clip-rule",
      "color",
      "color-adjust",
      "color-interpolation-filters",
      "color-scheme",
      "column-count",
      "column-fill",
      "column-gap",
      "column-rule",
      "column-rule-break",
      "column-rule-color",
      "column-rule-outset",
      "column-rule-style",
      "column-rule-width",
      "column-span",
      "column-width",
      "columns",
      "contain",
      "contain-intrinsic-block-size",
      "contain-intrinsic-height",
      "contain-intrinsic-inline-size",
      "contain-intrinsic-size",
      "contain-intrinsic-width",
      "container",
      "container-name",
      "container-type",
      "content",
      "content-visibility",
      "continue",
      "counter-increment",
      "counter-reset",
      "counter-set",
      "cue",
      "cue-after",
      "cue-before",
      "cursor",
      "direction",
      "display",
      "dominant-baseline",
      "dynamic-range-limit",
      "elevation",
      "empty-cells",
      "fill",
      "fill-break",
      "fill-color",
      "fill-image",
      "fill-opacity",
      "fill-origin",
      "fill-position",
      "fill-repeat",
      "fill-rule",
      "fill-size",
      "filter",
      "flex",
      "flex-basis",
      "flex-direction",
      "flex-flow",
      "flex-grow",
      "flex-shrink",
      "flex-wrap",
      "float",
      "float-defer",
      "float-offset",
      "float-reference",
      "flood-color",
      "flood-opacity",
      "flow-from",
      "flow-into",
      "font",
      "font-family",
      "font-feature-settings",
      "font-kerning",
      "font-language-override",
      "font-optical-sizing",
      "font-palette",
      "font-size",
      "font-size-adjust",
      "font-stretch",
      "font-style",
      "font-synthesis",
      "font-synthesis-position",
      "font-synthesis-small-caps",
      "font-synthesis-style",
      "font-synthesis-weight",
      "font-variant",
      "font-variant-alternates",
      "font-variant-caps",
      "font-variant-east-asian",
      "font-variant-emoji",
      "font-variant-ligatures",
      "font-variant-numeric",
      "font-variant-position",
      "font-variation-settings",
      "font-weight",
      "font-width",
      "footnote-display",
      "footnote-policy",
      "forced-color-adjust",
      "gap",
      "glyph-orientation-vertical",
      "grid",
      "grid-area",
      "grid-auto-columns",
      "grid-auto-flow",
      "grid-auto-rows",
      "grid-column",
      "grid-column-end",
      "grid-column-start",
      "grid-row",
      "grid-row-end",
      "grid-row-start",
      "grid-template",
      "grid-template-areas",
      "grid-template-columns",
      "grid-template-rows",
      "hanging-punctuation",
      "height",
      "hyphenate-character",
      "hyphenate-limit-chars",
      "hyphenate-limit-last",
      "hyphenate-limit-lines",
      "hyphenate-limit-zone",
      "hyphens",
      "image-orientation",
      "image-rendering",
      "image-resolution",
      "initial-letter",
      "initial-letter-align",
      "initial-letter-wrap",
      "inline-size",
      "inline-sizing",
      "inset",
      "inset-block",
      "inset-block-end",
      "inset-block-start",
      "inset-inline",
      "inset-inline-end",
      "inset-inline-start",
      "interpolate-size",
      "isolation",
      "item-cross",
      "item-direction",
      "item-flow",
      "item-pack",
      "item-slack",
      "item-track",
      "item-wrap",
      "justify-content",
      "justify-items",
      "justify-self",
      "left",
      "letter-spacing",
      "lighting-color",
      "line-break",
      "line-clamp",
      "line-fit-edge",
      "line-grid",
      "line-height",
      "line-height-step",
      "line-padding",
      "line-snap",
      "list-style",
      "list-style-image",
      "list-style-position",
      "list-style-type",
      "margin",
      "margin-block",
      "margin-block-end",
      "margin-block-start",
      "margin-bottom",
      "margin-break",
      "margin-inline",
      "margin-inline-end",
      "margin-inline-start",
      "margin-left",
      "margin-right",
      "margin-top",
      "margin-trim",
      "marker",
      "marker-end",
      "marker-knockout-left",
      "marker-knockout-right",
      "marker-mid",
      "marker-pattern",
      "marker-segment",
      "marker-side",
      "marker-start",
      "mask",
      "mask-border",
      "mask-border-mode",
      "mask-border-outset",
      "mask-border-repeat",
      "mask-border-slice",
      "mask-border-source",
      "mask-border-width",
      "mask-clip",
      "mask-composite",
      "mask-image",
      "mask-mode",
      "mask-origin",
      "mask-position",
      "mask-repeat",
      "mask-size",
      "mask-type",
      "max-block-size",
      "max-height",
      "max-inline-size",
      "max-lines",
      "max-width",
      "min-block-size",
      "min-height",
      "min-inline-size",
      "min-intrinsic-sizing",
      "min-width",
      "mix-blend-mode",
      "nav-down",
      "nav-left",
      "nav-right",
      "nav-up",
      "object-fit",
      "object-position",
      "offset",
      "offset-anchor",
      "offset-distance",
      "offset-path",
      "offset-position",
      "offset-rotate",
      "opacity",
      "order",
      "orphans",
      "outline",
      "outline-color",
      "outline-offset",
      "outline-style",
      "outline-width",
      "overflow",
      "overflow-anchor",
      "overflow-block",
      "overflow-clip-margin",
      "overflow-clip-margin-block",
      "overflow-clip-margin-block-end",
      "overflow-clip-margin-block-start",
      "overflow-clip-margin-bottom",
      "overflow-clip-margin-inline",
      "overflow-clip-margin-inline-end",
      "overflow-clip-margin-inline-start",
      "overflow-clip-margin-left",
      "overflow-clip-margin-right",
      "overflow-clip-margin-top",
      "overflow-inline",
      "overflow-wrap",
      "overflow-x",
      "overflow-y",
      "overscroll-behavior",
      "overscroll-behavior-block",
      "overscroll-behavior-inline",
      "overscroll-behavior-x",
      "overscroll-behavior-y",
      "padding",
      "padding-block",
      "padding-block-end",
      "padding-block-start",
      "padding-bottom",
      "padding-inline",
      "padding-inline-end",
      "padding-inline-start",
      "padding-left",
      "padding-right",
      "padding-top",
      "page",
      "page-break-after",
      "page-break-before",
      "page-break-inside",
      "pause",
      "pause-after",
      "pause-before",
      "perspective",
      "perspective-origin",
      "pitch",
      "pitch-range",
      "place-content",
      "place-items",
      "place-self",
      "play-during",
      "position",
      "position-anchor",
      "position-area",
      "position-try",
      "position-try-fallbacks",
      "position-try-order",
      "position-visibility",
      "print-color-adjust",
      "quotes",
      "reading-flow",
      "region-fragment",
      "resize",
      "rest",
      "rest-after",
      "rest-before",
      "richness",
      "right",
      "rotate",
      "row-gap",
      "row-rule",
      "row-rule-break",
      "row-rule-color",
      "row-rule-outset",
      "row-rule-style",
      "row-rule-width",
      "ruby-align",
      "ruby-merge",
      "ruby-overhang",
      "ruby-position",
      "rule",
      "rule-break",
      "rule-color",
      "rule-outset",
      "rule-paint-order",
      "rule-style",
      "rule-width",
      "running",
      "scale",
      "scroll-behavior",
      "scroll-margin",
      "scroll-margin-block",
      "scroll-margin-block-end",
      "scroll-margin-block-start",
      "scroll-margin-bottom",
      "scroll-margin-inline",
      "scroll-margin-inline-end",
      "scroll-margin-inline-start",
      "scroll-margin-left",
      "scroll-margin-right",
      "scroll-margin-top",
      "scroll-marker-group",
      "scroll-padding",
      "scroll-padding-block",
      "scroll-padding-block-end",
      "scroll-padding-block-start",
      "scroll-padding-bottom",
      "scroll-padding-inline",
      "scroll-padding-inline-end",
      "scroll-padding-inline-start",
      "scroll-padding-left",
      "scroll-padding-right",
      "scroll-padding-top",
      "scroll-snap-align",
      "scroll-snap-stop",
      "scroll-snap-type",
      "scroll-start-target",
      "scroll-timeline",
      "scroll-timeline-axis",
      "scroll-timeline-name",
      "scrollbar-color",
      "scrollbar-gutter",
      "scrollbar-width",
      "shape-image-threshold",
      "shape-inside",
      "shape-margin",
      "shape-outside",
      "slider-orientation",
      "spatial-navigation-action",
      "spatial-navigation-contain",
      "spatial-navigation-function",
      "speak",
      "speak-as",
      "speak-header",
      "speak-numeral",
      "speak-punctuation",
      "speech-rate",
      "stress",
      "string-set",
      "stroke",
      "stroke-align",
      "stroke-alignment",
      "stroke-break",
      "stroke-color",
      "stroke-dash-corner",
      "stroke-dash-justify",
      "stroke-dashadjust",
      "stroke-dasharray",
      "stroke-dashcorner",
      "stroke-dashoffset",
      "stroke-image",
      "stroke-linecap",
      "stroke-linejoin",
      "stroke-miterlimit",
      "stroke-opacity",
      "stroke-origin",
      "stroke-position",
      "stroke-repeat",
      "stroke-size",
      "stroke-width",
      "tab-size",
      "table-layout",
      "text-align",
      "text-align-all",
      "text-align-last",
      "text-autospace",
      "text-box",
      "text-box-edge",
      "text-box-trim",
      "text-combine-upright",
      "text-decoration",
      "text-decoration-color",
      "text-decoration-line",
      "text-decoration-skip",
      "text-decoration-skip-box",
      "text-decoration-skip-ink",
      "text-decoration-skip-inset",
      "text-decoration-skip-self",
      "text-decoration-skip-spaces",
      "text-decoration-style",
      "text-decoration-thickness",
      "text-emphasis",
      "text-emphasis-color",
      "text-emphasis-position",
      "text-emphasis-skip",
      "text-emphasis-style",
      "text-group-align",
      "text-indent",
      "text-justify",
      "text-orientation",
      "text-overflow",
      "text-shadow",
      "text-spacing",
      "text-spacing-trim",
      "text-transform",
      "text-underline-offset",
      "text-underline-position",
      "text-wrap",
      "text-wrap-mode",
      "text-wrap-style",
      "timeline-scope",
      "top",
      "transform",
      "transform-box",
      "transform-origin",
      "transform-style",
      "transition",
      "transition-behavior",
      "transition-delay",
      "transition-duration",
      "transition-property",
      "transition-timing-function",
      "translate",
      "unicode-bidi",
      "user-select",
      "vertical-align",
      "view-timeline",
      "view-timeline-axis",
      "view-timeline-inset",
      "view-timeline-name",
      "view-transition-class",
      "view-transition-group",
      "view-transition-name",
      "visibility",
      "voice-balance",
      "voice-duration",
      "voice-family",
      "voice-pitch",
      "voice-range",
      "voice-rate",
      "voice-stress",
      "voice-volume",
      "volume",
      "white-space",
      "white-space-collapse",
      "white-space-trim",
      "widows",
      "width",
      "will-change",
      "word-break",
      "word-space-transform",
      "word-spacing",
      "word-wrap",
      "wrap-after",
      "wrap-before",
      "wrap-flow",
      "wrap-inside",
      "wrap-through",
      "writing-mode",
      "z-index"
    ]);
  }
});

// ../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/generated/implementedProperties.js
var require_implementedProperties = __commonJS({
  "../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/generated/implementedProperties.js"(exports, module) {
    "use strict";
    module.exports = /* @__PURE__ */ new Set([
      "background",
      "background-attachment",
      "background-color",
      "background-image",
      "background-position",
      "background-repeat",
      "border",
      "border-bottom",
      "border-bottom-color",
      "border-bottom-style",
      "border-bottom-width",
      "border-collapse",
      "border-color",
      "border-left",
      "border-left-color",
      "border-left-style",
      "border-left-width",
      "border-right",
      "border-right-color",
      "border-right-style",
      "border-right-width",
      "border-spacing",
      "border-style",
      "border-top",
      "border-top-color",
      "border-top-style",
      "border-top-width",
      "border-width",
      "bottom",
      "clear",
      "clip",
      "color",
      "flex",
      "flex-basis",
      "flex-grow",
      "flex-shrink",
      "float",
      "flood-color",
      "font",
      "font-family",
      "font-size",
      "font-style",
      "font-variant",
      "font-weight",
      "height",
      "left",
      "lighting-color",
      "line-height",
      "margin",
      "margin-bottom",
      "margin-left",
      "margin-right",
      "margin-top",
      "opacity",
      "outline-color",
      "padding",
      "padding-bottom",
      "padding-left",
      "padding-right",
      "padding-top",
      "right",
      "stop-color",
      "top",
      "-webkit-border-after-color",
      "-webkit-border-before-color",
      "-webkit-border-end-color",
      "-webkit-border-start-color",
      "-webkit-column-rule-color",
      "-webkit-tap-highlight-color",
      "-webkit-text-emphasis-color",
      "-webkit-text-fill-color",
      "-webkit-text-stroke-color",
      "width"
    ]);
  }
});

// ../../node_modules/.pnpm/@csstools+css-tokenizer@3.0.4/node_modules/@csstools/css-tokenizer/dist/index.cjs
var require_dist10 = __commonJS({
  "../../node_modules/.pnpm/@csstools+css-tokenizer@3.0.4/node_modules/@csstools/css-tokenizer/dist/index.cjs"(exports) {
    "use strict";
    var ParseError2 = class extends Error {
      sourceStart;
      sourceEnd;
      parserState;
      constructor(e5, n7, o6, t5) {
        super(e5), this.name = "ParseError", this.sourceStart = n7, this.sourceEnd = o6, this.parserState = t5;
      }
    };
    var ParseErrorWithToken = class extends ParseError2 {
      token;
      constructor(e5, n7, o6, t5, r5) {
        super(e5, n7, o6, t5), this.token = r5;
      }
    };
    var e4 = { UnexpectedNewLineInString: "Unexpected newline while consuming a string token.", UnexpectedEOFInString: "Unexpected EOF while consuming a string token.", UnexpectedEOFInComment: "Unexpected EOF while consuming a comment.", UnexpectedEOFInURL: "Unexpected EOF while consuming a url token.", UnexpectedEOFInEscapedCodePoint: "Unexpected EOF while consuming an escaped code point.", UnexpectedCharacterInURL: "Unexpected character while consuming a url token.", InvalidEscapeSequenceInURL: "Invalid escape sequence while consuming a url token.", InvalidEscapeSequenceAfterBackslash: 'Invalid escape sequence after "\\"' };
    var n6 = "undefined" != typeof globalThis && "structuredClone" in globalThis;
    var o5 = 13;
    var t4 = 45;
    var r4 = 10;
    var s4 = 43;
    var i5 = 65533;
    function checkIfFourCodePointsWouldStartCDO(e5) {
      return 60 === e5.source.codePointAt(e5.cursor) && 33 === e5.source.codePointAt(e5.cursor + 1) && e5.source.codePointAt(e5.cursor + 2) === t4 && e5.source.codePointAt(e5.cursor + 3) === t4;
    }
    function isDigitCodePoint(e5) {
      return e5 >= 48 && e5 <= 57;
    }
    function isUppercaseLetterCodePoint(e5) {
      return e5 >= 65 && e5 <= 90;
    }
    function isLowercaseLetterCodePoint(e5) {
      return e5 >= 97 && e5 <= 122;
    }
    function isHexDigitCodePoint(e5) {
      return e5 >= 48 && e5 <= 57 || e5 >= 97 && e5 <= 102 || e5 >= 65 && e5 <= 70;
    }
    function isLetterCodePoint(e5) {
      return isLowercaseLetterCodePoint(e5) || isUppercaseLetterCodePoint(e5);
    }
    function isIdentStartCodePoint(e5) {
      return isLetterCodePoint(e5) || isNonASCII_IdentCodePoint(e5) || 95 === e5;
    }
    function isIdentCodePoint(e5) {
      return isIdentStartCodePoint(e5) || isDigitCodePoint(e5) || e5 === t4;
    }
    function isNonASCII_IdentCodePoint(e5) {
      return 183 === e5 || 8204 === e5 || 8205 === e5 || 8255 === e5 || 8256 === e5 || 8204 === e5 || (192 <= e5 && e5 <= 214 || 216 <= e5 && e5 <= 246 || 248 <= e5 && e5 <= 893 || 895 <= e5 && e5 <= 8191 || 8304 <= e5 && e5 <= 8591 || 11264 <= e5 && e5 <= 12271 || 12289 <= e5 && e5 <= 55295 || 63744 <= e5 && e5 <= 64975 || 65008 <= e5 && e5 <= 65533 || (0 === e5 || (!!isSurrogate(e5) || e5 >= 65536)));
    }
    function isNewLine(e5) {
      return e5 === r4 || e5 === o5 || 12 === e5;
    }
    function isWhitespace(e5) {
      return 32 === e5 || e5 === r4 || 9 === e5 || e5 === o5 || 12 === e5;
    }
    function isSurrogate(e5) {
      return e5 >= 55296 && e5 <= 57343;
    }
    function checkIfTwoCodePointsAreAValidEscape(e5) {
      return 92 === e5.source.codePointAt(e5.cursor) && !isNewLine(e5.source.codePointAt(e5.cursor + 1) ?? -1);
    }
    function checkIfThreeCodePointsWouldStartAnIdentSequence(e5, n7) {
      return n7.source.codePointAt(n7.cursor) === t4 ? n7.source.codePointAt(n7.cursor + 1) === t4 || (!!isIdentStartCodePoint(n7.source.codePointAt(n7.cursor + 1) ?? -1) || 92 === n7.source.codePointAt(n7.cursor + 1) && !isNewLine(n7.source.codePointAt(n7.cursor + 2) ?? -1)) : !!isIdentStartCodePoint(n7.source.codePointAt(n7.cursor) ?? -1) || checkIfTwoCodePointsAreAValidEscape(n7);
    }
    function checkIfThreeCodePointsWouldStartANumber(e5) {
      return e5.source.codePointAt(e5.cursor) === s4 || e5.source.codePointAt(e5.cursor) === t4 ? !!isDigitCodePoint(e5.source.codePointAt(e5.cursor + 1) ?? -1) || 46 === e5.source.codePointAt(e5.cursor + 1) && isDigitCodePoint(e5.source.codePointAt(e5.cursor + 2) ?? -1) : 46 === e5.source.codePointAt(e5.cursor) ? isDigitCodePoint(e5.source.codePointAt(e5.cursor + 1) ?? -1) : isDigitCodePoint(e5.source.codePointAt(e5.cursor) ?? -1);
    }
    function checkIfTwoCodePointsStartAComment(e5) {
      return 47 === e5.source.codePointAt(e5.cursor) && 42 === e5.source.codePointAt(e5.cursor + 1);
    }
    function checkIfThreeCodePointsWouldStartCDC(e5) {
      return e5.source.codePointAt(e5.cursor) === t4 && e5.source.codePointAt(e5.cursor + 1) === t4 && 62 === e5.source.codePointAt(e5.cursor + 2);
    }
    var c6;
    var a5;
    var u5;
    function consumeComment(n7, o6) {
      for (o6.advanceCodePoint(2); ; ) {
        const t5 = o6.readCodePoint();
        if (void 0 === t5) {
          const t6 = [exports.TokenType.Comment, o6.source.slice(o6.representationStart, o6.representationEnd + 1), o6.representationStart, o6.representationEnd, void 0];
          return n7.onParseError(new ParseErrorWithToken(e4.UnexpectedEOFInComment, o6.representationStart, o6.representationEnd, ["4.3.2. Consume comments", "Unexpected EOF"], t6)), t6;
        }
        if (42 === t5 && (void 0 !== o6.source.codePointAt(o6.cursor) && 47 === o6.source.codePointAt(o6.cursor))) {
          o6.advanceCodePoint();
          break;
        }
      }
      return [exports.TokenType.Comment, o6.source.slice(o6.representationStart, o6.representationEnd + 1), o6.representationStart, o6.representationEnd, void 0];
    }
    function consumeEscapedCodePoint(n7, t5) {
      const s5 = t5.readCodePoint();
      if (void 0 === s5) return n7.onParseError(new ParseError2(e4.UnexpectedEOFInEscapedCodePoint, t5.representationStart, t5.representationEnd, ["4.3.7. Consume an escaped code point", "Unexpected EOF"])), i5;
      if (isHexDigitCodePoint(s5)) {
        const e5 = [s5];
        let n8;
        for (; void 0 !== (n8 = t5.source.codePointAt(t5.cursor)) && isHexDigitCodePoint(n8) && e5.length < 6; ) e5.push(n8), t5.advanceCodePoint();
        isWhitespace(t5.source.codePointAt(t5.cursor) ?? -1) && (t5.source.codePointAt(t5.cursor) === o5 && t5.source.codePointAt(t5.cursor + 1) === r4 && t5.advanceCodePoint(), t5.advanceCodePoint());
        const c7 = parseInt(String.fromCodePoint(...e5), 16);
        return 0 === c7 || isSurrogate(c7) || c7 > 1114111 ? i5 : c7;
      }
      return 0 === s5 || isSurrogate(s5) ? i5 : s5;
    }
    function consumeIdentSequence(e5, n7) {
      const o6 = [];
      for (; ; ) {
        const t5 = n7.source.codePointAt(n7.cursor) ?? -1;
        if (0 === t5 || isSurrogate(t5)) o6.push(i5), n7.advanceCodePoint(+(t5 > 65535) + 1);
        else if (isIdentCodePoint(t5)) o6.push(t5), n7.advanceCodePoint(+(t5 > 65535) + 1);
        else {
          if (!checkIfTwoCodePointsAreAValidEscape(n7)) return o6;
          n7.advanceCodePoint(), o6.push(consumeEscapedCodePoint(e5, n7));
        }
      }
    }
    function consumeHashToken(e5, n7) {
      n7.advanceCodePoint();
      const o6 = n7.source.codePointAt(n7.cursor);
      if (void 0 !== o6 && (isIdentCodePoint(o6) || checkIfTwoCodePointsAreAValidEscape(n7))) {
        let o7 = exports.HashType.Unrestricted;
        checkIfThreeCodePointsWouldStartAnIdentSequence(0, n7) && (o7 = exports.HashType.ID);
        const t5 = consumeIdentSequence(e5, n7);
        return [exports.TokenType.Hash, n7.source.slice(n7.representationStart, n7.representationEnd + 1), n7.representationStart, n7.representationEnd, { value: String.fromCodePoint(...t5), type: o7 }];
      }
      return [exports.TokenType.Delim, "#", n7.representationStart, n7.representationEnd, { value: "#" }];
    }
    function consumeNumber(e5, n7) {
      let o6 = exports.NumberType.Integer;
      for (n7.source.codePointAt(n7.cursor) !== s4 && n7.source.codePointAt(n7.cursor) !== t4 || n7.advanceCodePoint(); isDigitCodePoint(n7.source.codePointAt(n7.cursor) ?? -1); ) n7.advanceCodePoint();
      if (46 === n7.source.codePointAt(n7.cursor) && isDigitCodePoint(n7.source.codePointAt(n7.cursor + 1) ?? -1)) for (n7.advanceCodePoint(2), o6 = exports.NumberType.Number; isDigitCodePoint(n7.source.codePointAt(n7.cursor) ?? -1); ) n7.advanceCodePoint();
      if (101 === n7.source.codePointAt(n7.cursor) || 69 === n7.source.codePointAt(n7.cursor)) {
        if (isDigitCodePoint(n7.source.codePointAt(n7.cursor + 1) ?? -1)) n7.advanceCodePoint(2);
        else {
          if (n7.source.codePointAt(n7.cursor + 1) !== t4 && n7.source.codePointAt(n7.cursor + 1) !== s4 || !isDigitCodePoint(n7.source.codePointAt(n7.cursor + 2) ?? -1)) return o6;
          n7.advanceCodePoint(3);
        }
        for (o6 = exports.NumberType.Number; isDigitCodePoint(n7.source.codePointAt(n7.cursor) ?? -1); ) n7.advanceCodePoint();
      }
      return o6;
    }
    function consumeNumericToken(e5, n7) {
      let o6;
      {
        const e6 = n7.source.codePointAt(n7.cursor);
        e6 === t4 ? o6 = "-" : e6 === s4 && (o6 = "+");
      }
      const r5 = consumeNumber(0, n7), i6 = parseFloat(n7.source.slice(n7.representationStart, n7.representationEnd + 1));
      if (checkIfThreeCodePointsWouldStartAnIdentSequence(0, n7)) {
        const t5 = consumeIdentSequence(e5, n7);
        return [exports.TokenType.Dimension, n7.source.slice(n7.representationStart, n7.representationEnd + 1), n7.representationStart, n7.representationEnd, { value: i6, signCharacter: o6, type: r5, unit: String.fromCodePoint(...t5) }];
      }
      return 37 === n7.source.codePointAt(n7.cursor) ? (n7.advanceCodePoint(), [exports.TokenType.Percentage, n7.source.slice(n7.representationStart, n7.representationEnd + 1), n7.representationStart, n7.representationEnd, { value: i6, signCharacter: o6 }]) : [exports.TokenType.Number, n7.source.slice(n7.representationStart, n7.representationEnd + 1), n7.representationStart, n7.representationEnd, { value: i6, signCharacter: o6, type: r5 }];
    }
    function consumeWhiteSpace(e5) {
      for (; isWhitespace(e5.source.codePointAt(e5.cursor) ?? -1); ) e5.advanceCodePoint();
      return [exports.TokenType.Whitespace, e5.source.slice(e5.representationStart, e5.representationEnd + 1), e5.representationStart, e5.representationEnd, void 0];
    }
    exports.TokenType = void 0, (c6 = exports.TokenType || (exports.TokenType = {})).Comment = "comment", c6.AtKeyword = "at-keyword-token", c6.BadString = "bad-string-token", c6.BadURL = "bad-url-token", c6.CDC = "CDC-token", c6.CDO = "CDO-token", c6.Colon = "colon-token", c6.Comma = "comma-token", c6.Delim = "delim-token", c6.Dimension = "dimension-token", c6.EOF = "EOF-token", c6.Function = "function-token", c6.Hash = "hash-token", c6.Ident = "ident-token", c6.Number = "number-token", c6.Percentage = "percentage-token", c6.Semicolon = "semicolon-token", c6.String = "string-token", c6.URL = "url-token", c6.Whitespace = "whitespace-token", c6.OpenParen = "(-token", c6.CloseParen = ")-token", c6.OpenSquare = "[-token", c6.CloseSquare = "]-token", c6.OpenCurly = "{-token", c6.CloseCurly = "}-token", c6.UnicodeRange = "unicode-range-token", exports.NumberType = void 0, (a5 = exports.NumberType || (exports.NumberType = {})).Integer = "integer", a5.Number = "number", exports.HashType = void 0, (u5 = exports.HashType || (exports.HashType = {})).Unrestricted = "unrestricted", u5.ID = "id";
    var Reader = class {
      cursor = 0;
      source = "";
      representationStart = 0;
      representationEnd = -1;
      constructor(e5) {
        this.source = e5;
      }
      advanceCodePoint(e5 = 1) {
        this.cursor = this.cursor + e5, this.representationEnd = this.cursor - 1;
      }
      readCodePoint() {
        const e5 = this.source.codePointAt(this.cursor);
        if (void 0 !== e5) return this.cursor = this.cursor + 1, this.representationEnd = this.cursor - 1, e5;
      }
      unreadCodePoint(e5 = 1) {
        this.cursor = this.cursor - e5, this.representationEnd = this.cursor - 1;
      }
      resetRepresentation() {
        this.representationStart = this.cursor, this.representationEnd = -1;
      }
    };
    function consumeStringToken(n7, t5) {
      let s5 = "";
      const c7 = t5.readCodePoint();
      for (; ; ) {
        const a6 = t5.readCodePoint();
        if (void 0 === a6) {
          const o6 = [exports.TokenType.String, t5.source.slice(t5.representationStart, t5.representationEnd + 1), t5.representationStart, t5.representationEnd, { value: s5 }];
          return n7.onParseError(new ParseErrorWithToken(e4.UnexpectedEOFInString, t5.representationStart, t5.representationEnd, ["4.3.5. Consume a string token", "Unexpected EOF"], o6)), o6;
        }
        if (isNewLine(a6)) {
          t5.unreadCodePoint();
          const s6 = [exports.TokenType.BadString, t5.source.slice(t5.representationStart, t5.representationEnd + 1), t5.representationStart, t5.representationEnd, void 0];
          return n7.onParseError(new ParseErrorWithToken(e4.UnexpectedNewLineInString, t5.representationStart, t5.source.codePointAt(t5.cursor) === o5 && t5.source.codePointAt(t5.cursor + 1) === r4 ? t5.representationEnd + 2 : t5.representationEnd + 1, ["4.3.5. Consume a string token", "Unexpected newline"], s6)), s6;
        }
        if (a6 === c7) return [exports.TokenType.String, t5.source.slice(t5.representationStart, t5.representationEnd + 1), t5.representationStart, t5.representationEnd, { value: s5 }];
        if (92 !== a6) 0 === a6 || isSurrogate(a6) ? s5 += String.fromCodePoint(i5) : s5 += String.fromCodePoint(a6);
        else {
          if (void 0 === t5.source.codePointAt(t5.cursor)) continue;
          if (isNewLine(t5.source.codePointAt(t5.cursor) ?? -1)) {
            t5.source.codePointAt(t5.cursor) === o5 && t5.source.codePointAt(t5.cursor + 1) === r4 && t5.advanceCodePoint(), t5.advanceCodePoint();
            continue;
          }
          s5 += String.fromCodePoint(consumeEscapedCodePoint(n7, t5));
        }
      }
    }
    function checkIfCodePointsMatchURLIdent(e5) {
      return !(3 !== e5.length || 117 !== e5[0] && 85 !== e5[0] || 114 !== e5[1] && 82 !== e5[1] || 108 !== e5[2] && 76 !== e5[2]);
    }
    function consumeBadURL(e5, n7) {
      for (; ; ) {
        const o6 = n7.source.codePointAt(n7.cursor);
        if (void 0 === o6) return;
        if (41 === o6) return void n7.advanceCodePoint();
        checkIfTwoCodePointsAreAValidEscape(n7) ? (n7.advanceCodePoint(), consumeEscapedCodePoint(e5, n7)) : n7.advanceCodePoint();
      }
    }
    function consumeUrlToken(n7, o6) {
      for (; isWhitespace(o6.source.codePointAt(o6.cursor) ?? -1); ) o6.advanceCodePoint();
      let t5 = "";
      for (; ; ) {
        if (void 0 === o6.source.codePointAt(o6.cursor)) {
          const r6 = [exports.TokenType.URL, o6.source.slice(o6.representationStart, o6.representationEnd + 1), o6.representationStart, o6.representationEnd, { value: t5 }];
          return n7.onParseError(new ParseErrorWithToken(e4.UnexpectedEOFInURL, o6.representationStart, o6.representationEnd, ["4.3.6. Consume a url token", "Unexpected EOF"], r6)), r6;
        }
        if (41 === o6.source.codePointAt(o6.cursor)) return o6.advanceCodePoint(), [exports.TokenType.URL, o6.source.slice(o6.representationStart, o6.representationEnd + 1), o6.representationStart, o6.representationEnd, { value: t5 }];
        if (isWhitespace(o6.source.codePointAt(o6.cursor) ?? -1)) {
          for (o6.advanceCodePoint(); isWhitespace(o6.source.codePointAt(o6.cursor) ?? -1); ) o6.advanceCodePoint();
          if (void 0 === o6.source.codePointAt(o6.cursor)) {
            const r6 = [exports.TokenType.URL, o6.source.slice(o6.representationStart, o6.representationEnd + 1), o6.representationStart, o6.representationEnd, { value: t5 }];
            return n7.onParseError(new ParseErrorWithToken(e4.UnexpectedEOFInURL, o6.representationStart, o6.representationEnd, ["4.3.6. Consume a url token", "Consume as much whitespace as possible", "Unexpected EOF"], r6)), r6;
          }
          return 41 === o6.source.codePointAt(o6.cursor) ? (o6.advanceCodePoint(), [exports.TokenType.URL, o6.source.slice(o6.representationStart, o6.representationEnd + 1), o6.representationStart, o6.representationEnd, { value: t5 }]) : (consumeBadURL(n7, o6), [exports.TokenType.BadURL, o6.source.slice(o6.representationStart, o6.representationEnd + 1), o6.representationStart, o6.representationEnd, void 0]);
        }
        const s5 = o6.source.codePointAt(o6.cursor);
        if (34 === s5 || 39 === s5 || 40 === s5 || (11 === (r5 = s5 ?? -1) || 127 === r5 || 0 <= r5 && r5 <= 8 || 14 <= r5 && r5 <= 31)) {
          consumeBadURL(n7, o6);
          const t6 = [exports.TokenType.BadURL, o6.source.slice(o6.representationStart, o6.representationEnd + 1), o6.representationStart, o6.representationEnd, void 0];
          return n7.onParseError(new ParseErrorWithToken(e4.UnexpectedCharacterInURL, o6.representationStart, o6.representationEnd, ["4.3.6. Consume a url token", `Unexpected U+0022 QUOTATION MARK ("), U+0027 APOSTROPHE ('), U+0028 LEFT PARENTHESIS (() or non-printable code point`], t6)), t6;
        }
        if (92 === s5) {
          if (checkIfTwoCodePointsAreAValidEscape(o6)) {
            o6.advanceCodePoint(), t5 += String.fromCodePoint(consumeEscapedCodePoint(n7, o6));
            continue;
          }
          consumeBadURL(n7, o6);
          const r6 = [exports.TokenType.BadURL, o6.source.slice(o6.representationStart, o6.representationEnd + 1), o6.representationStart, o6.representationEnd, void 0];
          return n7.onParseError(new ParseErrorWithToken(e4.InvalidEscapeSequenceInURL, o6.representationStart, o6.representationEnd, ["4.3.6. Consume a url token", "U+005C REVERSE SOLIDUS (\\)", "The input stream does not start with a valid escape sequence"], r6)), r6;
        }
        0 === o6.source.codePointAt(o6.cursor) || isSurrogate(o6.source.codePointAt(o6.cursor) ?? -1) ? (t5 += String.fromCodePoint(i5), o6.advanceCodePoint()) : (t5 += o6.source[o6.cursor], o6.advanceCodePoint());
      }
      var r5;
    }
    function consumeIdentLikeToken(e5, n7) {
      const o6 = consumeIdentSequence(e5, n7);
      if (40 !== n7.source.codePointAt(n7.cursor)) return [exports.TokenType.Ident, n7.source.slice(n7.representationStart, n7.representationEnd + 1), n7.representationStart, n7.representationEnd, { value: String.fromCodePoint(...o6) }];
      if (checkIfCodePointsMatchURLIdent(o6)) {
        n7.advanceCodePoint();
        let t5 = 0;
        for (; ; ) {
          const e6 = isWhitespace(n7.source.codePointAt(n7.cursor) ?? -1), r5 = isWhitespace(n7.source.codePointAt(n7.cursor + 1) ?? -1);
          if (e6 && r5) {
            t5 += 1, n7.advanceCodePoint(1);
            continue;
          }
          const s5 = e6 ? n7.source.codePointAt(n7.cursor + 1) : n7.source.codePointAt(n7.cursor);
          if (34 === s5 || 39 === s5) return t5 > 0 && n7.unreadCodePoint(t5), [exports.TokenType.Function, n7.source.slice(n7.representationStart, n7.representationEnd + 1), n7.representationStart, n7.representationEnd, { value: String.fromCodePoint(...o6) }];
          break;
        }
        return consumeUrlToken(e5, n7);
      }
      return n7.advanceCodePoint(), [exports.TokenType.Function, n7.source.slice(n7.representationStart, n7.representationEnd + 1), n7.representationStart, n7.representationEnd, { value: String.fromCodePoint(...o6) }];
    }
    function checkIfThreeCodePointsWouldStartAUnicodeRange(e5) {
      return !(117 !== e5.source.codePointAt(e5.cursor) && 85 !== e5.source.codePointAt(e5.cursor) || e5.source.codePointAt(e5.cursor + 1) !== s4 || 63 !== e5.source.codePointAt(e5.cursor + 2) && !isHexDigitCodePoint(e5.source.codePointAt(e5.cursor + 2) ?? -1));
    }
    function consumeUnicodeRangeToken(e5, n7) {
      n7.advanceCodePoint(2);
      const o6 = [], r5 = [];
      let s5;
      for (; void 0 !== (s5 = n7.source.codePointAt(n7.cursor)) && o6.length < 6 && isHexDigitCodePoint(s5); ) o6.push(s5), n7.advanceCodePoint();
      for (; void 0 !== (s5 = n7.source.codePointAt(n7.cursor)) && o6.length < 6 && 63 === s5; ) 0 === r5.length && r5.push(...o6), o6.push(48), r5.push(70), n7.advanceCodePoint();
      if (!r5.length && n7.source.codePointAt(n7.cursor) === t4 && isHexDigitCodePoint(n7.source.codePointAt(n7.cursor + 1) ?? -1)) for (n7.advanceCodePoint(); void 0 !== (s5 = n7.source.codePointAt(n7.cursor)) && r5.length < 6 && isHexDigitCodePoint(s5); ) r5.push(s5), n7.advanceCodePoint();
      if (!r5.length) {
        const e6 = parseInt(String.fromCodePoint(...o6), 16);
        return [exports.TokenType.UnicodeRange, n7.source.slice(n7.representationStart, n7.representationEnd + 1), n7.representationStart, n7.representationEnd, { startOfRange: e6, endOfRange: e6 }];
      }
      const i6 = parseInt(String.fromCodePoint(...o6), 16), c7 = parseInt(String.fromCodePoint(...r5), 16);
      return [exports.TokenType.UnicodeRange, n7.source.slice(n7.representationStart, n7.representationEnd + 1), n7.representationStart, n7.representationEnd, { startOfRange: i6, endOfRange: c7 }];
    }
    function tokenizer(n7, i6) {
      const c7 = n7.css.valueOf(), a6 = n7.unicodeRangesAllowed ?? false, u6 = new Reader(c7), d4 = { onParseError: i6?.onParseError ?? noop6 };
      return { nextToken: function nextToken() {
        u6.resetRepresentation();
        const n8 = u6.source.codePointAt(u6.cursor);
        if (void 0 === n8) return [exports.TokenType.EOF, "", -1, -1, void 0];
        if (47 === n8 && checkIfTwoCodePointsStartAComment(u6)) return consumeComment(d4, u6);
        if (a6 && (117 === n8 || 85 === n8) && checkIfThreeCodePointsWouldStartAUnicodeRange(u6)) return consumeUnicodeRangeToken(0, u6);
        if (isIdentStartCodePoint(n8)) return consumeIdentLikeToken(d4, u6);
        if (isDigitCodePoint(n8)) return consumeNumericToken(d4, u6);
        switch (n8) {
          case 44:
            return u6.advanceCodePoint(), [exports.TokenType.Comma, ",", u6.representationStart, u6.representationEnd, void 0];
          case 58:
            return u6.advanceCodePoint(), [exports.TokenType.Colon, ":", u6.representationStart, u6.representationEnd, void 0];
          case 59:
            return u6.advanceCodePoint(), [exports.TokenType.Semicolon, ";", u6.representationStart, u6.representationEnd, void 0];
          case 40:
            return u6.advanceCodePoint(), [exports.TokenType.OpenParen, "(", u6.representationStart, u6.representationEnd, void 0];
          case 41:
            return u6.advanceCodePoint(), [exports.TokenType.CloseParen, ")", u6.representationStart, u6.representationEnd, void 0];
          case 91:
            return u6.advanceCodePoint(), [exports.TokenType.OpenSquare, "[", u6.representationStart, u6.representationEnd, void 0];
          case 93:
            return u6.advanceCodePoint(), [exports.TokenType.CloseSquare, "]", u6.representationStart, u6.representationEnd, void 0];
          case 123:
            return u6.advanceCodePoint(), [exports.TokenType.OpenCurly, "{", u6.representationStart, u6.representationEnd, void 0];
          case 125:
            return u6.advanceCodePoint(), [exports.TokenType.CloseCurly, "}", u6.representationStart, u6.representationEnd, void 0];
          case 39:
          case 34:
            return consumeStringToken(d4, u6);
          case 35:
            return consumeHashToken(d4, u6);
          case s4:
          case 46:
            return checkIfThreeCodePointsWouldStartANumber(u6) ? consumeNumericToken(d4, u6) : (u6.advanceCodePoint(), [exports.TokenType.Delim, u6.source[u6.representationStart], u6.representationStart, u6.representationEnd, { value: u6.source[u6.representationStart] }]);
          case r4:
          case o5:
          case 12:
          case 9:
          case 32:
            return consumeWhiteSpace(u6);
          case t4:
            return checkIfThreeCodePointsWouldStartANumber(u6) ? consumeNumericToken(d4, u6) : checkIfThreeCodePointsWouldStartCDC(u6) ? (u6.advanceCodePoint(3), [exports.TokenType.CDC, "-->", u6.representationStart, u6.representationEnd, void 0]) : checkIfThreeCodePointsWouldStartAnIdentSequence(0, u6) ? consumeIdentLikeToken(d4, u6) : (u6.advanceCodePoint(), [exports.TokenType.Delim, "-", u6.representationStart, u6.representationEnd, { value: "-" }]);
          case 60:
            return checkIfFourCodePointsWouldStartCDO(u6) ? (u6.advanceCodePoint(4), [exports.TokenType.CDO, "<!--", u6.representationStart, u6.representationEnd, void 0]) : (u6.advanceCodePoint(), [exports.TokenType.Delim, "<", u6.representationStart, u6.representationEnd, { value: "<" }]);
          case 64:
            if (u6.advanceCodePoint(), checkIfThreeCodePointsWouldStartAnIdentSequence(0, u6)) {
              const e5 = consumeIdentSequence(d4, u6);
              return [exports.TokenType.AtKeyword, u6.source.slice(u6.representationStart, u6.representationEnd + 1), u6.representationStart, u6.representationEnd, { value: String.fromCodePoint(...e5) }];
            }
            return [exports.TokenType.Delim, "@", u6.representationStart, u6.representationEnd, { value: "@" }];
          case 92: {
            if (checkIfTwoCodePointsAreAValidEscape(u6)) return consumeIdentLikeToken(d4, u6);
            u6.advanceCodePoint();
            const n9 = [exports.TokenType.Delim, "\\", u6.representationStart, u6.representationEnd, { value: "\\" }];
            return d4.onParseError(new ParseErrorWithToken(e4.InvalidEscapeSequenceAfterBackslash, u6.representationStart, u6.representationEnd, ["4.3.1. Consume a token", "U+005C REVERSE SOLIDUS (\\)", "The input stream does not start with a valid escape sequence"], n9)), n9;
          }
        }
        return u6.advanceCodePoint(), [exports.TokenType.Delim, u6.source[u6.representationStart], u6.representationStart, u6.representationEnd, { value: u6.source[u6.representationStart] }];
      }, endOfFile: function endOfFile() {
        return void 0 === u6.source.codePointAt(u6.cursor);
      } };
    }
    function noop6() {
    }
    function serializeIdent(e5) {
      let n7 = 0;
      if (0 === e5[0]) e5.splice(0, 1, i5), n7 = 1;
      else if (e5[0] === t4 && e5[1] === t4) n7 = 2;
      else if (e5[0] === t4 && e5[1]) n7 = 2, isIdentStartCodePoint(e5[1]) || (n7 += insertEscapedCodePoint(e5, 1, e5[1]));
      else {
        if (e5[0] === t4 && !e5[1]) return [92, e5[0]];
        isIdentStartCodePoint(e5[0]) ? n7 = 1 : (n7 = 1, n7 += insertEscapedCodePoint(e5, 0, e5[0]));
      }
      for (let o6 = n7; o6 < e5.length; o6++) 0 !== e5[o6] ? isIdentCodePoint(e5[o6]) || (o6 += insertEscapedCharacter(e5, o6, e5[o6])) : (e5.splice(o6, 1, i5), o6++);
      return e5;
    }
    function insertEscapedCharacter(e5, n7, o6) {
      return e5.splice(n7, 1, 92, o6), 1;
    }
    function insertEscapedCodePoint(e5, n7, o6) {
      const t5 = o6.toString(16), r5 = [];
      for (const e6 of t5) r5.push(e6.codePointAt(0));
      return e5.splice(n7, 1, 92, ...r5, 32), 1 + r5.length;
    }
    var d3 = Object.values(exports.TokenType);
    exports.ParseError = ParseError2, exports.ParseErrorMessage = e4, exports.ParseErrorWithToken = ParseErrorWithToken, exports.cloneTokens = function cloneTokens(e5) {
      return n6 ? structuredClone(e5) : JSON.parse(JSON.stringify(e5));
    }, exports.isToken = function isToken(e5) {
      return !!Array.isArray(e5) && (!(e5.length < 4) && (!!d3.includes(e5[0]) && ("string" == typeof e5[1] && ("number" == typeof e5[2] && "number" == typeof e5[3]))));
    }, exports.isTokenAtKeyword = function isTokenAtKeyword(e5) {
      return !!e5 && e5[0] === exports.TokenType.AtKeyword;
    }, exports.isTokenBadString = function isTokenBadString(e5) {
      return !!e5 && e5[0] === exports.TokenType.BadString;
    }, exports.isTokenBadURL = function isTokenBadURL(e5) {
      return !!e5 && e5[0] === exports.TokenType.BadURL;
    }, exports.isTokenCDC = function isTokenCDC(e5) {
      return !!e5 && e5[0] === exports.TokenType.CDC;
    }, exports.isTokenCDO = function isTokenCDO(e5) {
      return !!e5 && e5[0] === exports.TokenType.CDO;
    }, exports.isTokenCloseCurly = function isTokenCloseCurly(e5) {
      return !!e5 && e5[0] === exports.TokenType.CloseCurly;
    }, exports.isTokenCloseParen = function isTokenCloseParen(e5) {
      return !!e5 && e5[0] === exports.TokenType.CloseParen;
    }, exports.isTokenCloseSquare = function isTokenCloseSquare(e5) {
      return !!e5 && e5[0] === exports.TokenType.CloseSquare;
    }, exports.isTokenColon = function isTokenColon(e5) {
      return !!e5 && e5[0] === exports.TokenType.Colon;
    }, exports.isTokenComma = function isTokenComma(e5) {
      return !!e5 && e5[0] === exports.TokenType.Comma;
    }, exports.isTokenComment = function isTokenComment(e5) {
      return !!e5 && e5[0] === exports.TokenType.Comment;
    }, exports.isTokenDelim = function isTokenDelim(e5) {
      return !!e5 && e5[0] === exports.TokenType.Delim;
    }, exports.isTokenDimension = function isTokenDimension(e5) {
      return !!e5 && e5[0] === exports.TokenType.Dimension;
    }, exports.isTokenEOF = function isTokenEOF(e5) {
      return !!e5 && e5[0] === exports.TokenType.EOF;
    }, exports.isTokenFunction = function isTokenFunction(e5) {
      return !!e5 && e5[0] === exports.TokenType.Function;
    }, exports.isTokenHash = function isTokenHash(e5) {
      return !!e5 && e5[0] === exports.TokenType.Hash;
    }, exports.isTokenIdent = function isTokenIdent(e5) {
      return !!e5 && e5[0] === exports.TokenType.Ident;
    }, exports.isTokenNumber = function isTokenNumber(e5) {
      return !!e5 && e5[0] === exports.TokenType.Number;
    }, exports.isTokenNumeric = function isTokenNumeric(e5) {
      if (!e5) return false;
      switch (e5[0]) {
        case exports.TokenType.Dimension:
        case exports.TokenType.Number:
        case exports.TokenType.Percentage:
          return true;
        default:
          return false;
      }
    }, exports.isTokenOpenCurly = function isTokenOpenCurly(e5) {
      return !!e5 && e5[0] === exports.TokenType.OpenCurly;
    }, exports.isTokenOpenParen = function isTokenOpenParen(e5) {
      return !!e5 && e5[0] === exports.TokenType.OpenParen;
    }, exports.isTokenOpenSquare = function isTokenOpenSquare(e5) {
      return !!e5 && e5[0] === exports.TokenType.OpenSquare;
    }, exports.isTokenPercentage = function isTokenPercentage(e5) {
      return !!e5 && e5[0] === exports.TokenType.Percentage;
    }, exports.isTokenSemicolon = function isTokenSemicolon(e5) {
      return !!e5 && e5[0] === exports.TokenType.Semicolon;
    }, exports.isTokenString = function isTokenString(e5) {
      return !!e5 && e5[0] === exports.TokenType.String;
    }, exports.isTokenURL = function isTokenURL(e5) {
      return !!e5 && e5[0] === exports.TokenType.URL;
    }, exports.isTokenUnicodeRange = function isTokenUnicodeRange(e5) {
      return !!e5 && e5[0] === exports.TokenType.UnicodeRange;
    }, exports.isTokenWhiteSpaceOrComment = function isTokenWhiteSpaceOrComment(e5) {
      if (!e5) return false;
      switch (e5[0]) {
        case exports.TokenType.Whitespace:
        case exports.TokenType.Comment:
          return true;
        default:
          return false;
      }
    }, exports.isTokenWhitespace = function isTokenWhitespace(e5) {
      return !!e5 && e5[0] === exports.TokenType.Whitespace;
    }, exports.mirrorVariant = function mirrorVariant(e5) {
      switch (e5[0]) {
        case exports.TokenType.OpenParen:
          return [exports.TokenType.CloseParen, ")", -1, -1, void 0];
        case exports.TokenType.CloseParen:
          return [exports.TokenType.OpenParen, "(", -1, -1, void 0];
        case exports.TokenType.OpenCurly:
          return [exports.TokenType.CloseCurly, "}", -1, -1, void 0];
        case exports.TokenType.CloseCurly:
          return [exports.TokenType.OpenCurly, "{", -1, -1, void 0];
        case exports.TokenType.OpenSquare:
          return [exports.TokenType.CloseSquare, "]", -1, -1, void 0];
        case exports.TokenType.CloseSquare:
          return [exports.TokenType.OpenSquare, "[", -1, -1, void 0];
        default:
          return null;
      }
    }, exports.mirrorVariantType = function mirrorVariantType(e5) {
      switch (e5) {
        case exports.TokenType.OpenParen:
          return exports.TokenType.CloseParen;
        case exports.TokenType.CloseParen:
          return exports.TokenType.OpenParen;
        case exports.TokenType.OpenCurly:
          return exports.TokenType.CloseCurly;
        case exports.TokenType.CloseCurly:
          return exports.TokenType.OpenCurly;
        case exports.TokenType.OpenSquare:
          return exports.TokenType.CloseSquare;
        case exports.TokenType.CloseSquare:
          return exports.TokenType.OpenSquare;
        default:
          return null;
      }
    }, exports.mutateIdent = function mutateIdent(e5, n7) {
      const o6 = [];
      for (const e6 of n7) o6.push(e6.codePointAt(0));
      const t5 = String.fromCodePoint(...serializeIdent(o6));
      e5[1] = t5, e5[4].value = n7;
    }, exports.mutateUnit = function mutateUnit(e5, n7) {
      const o6 = [];
      for (const e6 of n7) o6.push(e6.codePointAt(0));
      const t5 = serializeIdent(o6);
      101 === t5[0] && insertEscapedCodePoint(t5, 0, t5[0]);
      const r5 = String.fromCodePoint(...t5), s5 = "+" === e5[4].signCharacter ? e5[4].signCharacter : "", i6 = e5[4].value.toString();
      e5[1] = `${s5}${i6}${r5}`, e5[4].unit = n7;
    }, exports.stringify = function stringify(...e5) {
      let n7 = "";
      for (let o6 = 0; o6 < e5.length; o6++) n7 += e5[o6][1];
      return n7;
    }, exports.tokenize = function tokenize(e5, n7) {
      const o6 = tokenizer(e5, n7), t5 = [];
      for (; !o6.endOfFile(); ) t5.push(o6.nextToken());
      return t5.push(o6.nextToken()), t5;
    }, exports.tokenizer = tokenizer;
  }
});

// ../../node_modules/.pnpm/@csstools+css-parser-algorithms@3.0.5_@csstools+css-tokenizer@3.0.4/node_modules/@csstools/css-parser-algorithms/dist/index.cjs
var require_dist11 = __commonJS({
  "../../node_modules/.pnpm/@csstools+css-parser-algorithms@3.0.5_@csstools+css-tokenizer@3.0.4/node_modules/@csstools/css-parser-algorithms/dist/index.cjs"(exports) {
    "use strict";
    var e4;
    var n6 = require_dist10();
    function walkerIndexGenerator(e5) {
      let n7 = e5.slice();
      return (e6, o5, t4) => {
        let s4 = -1;
        for (let i5 = n7.indexOf(o5); i5 < n7.length && (s4 = e6.indexOf(n7[i5]), -1 === s4 || s4 < t4); i5++) ;
        return -1 === s4 || s4 === t4 && o5 === e6[t4] && (s4++, s4 >= e6.length) ? -1 : (n7 = e6.slice(), s4);
      };
    }
    function consumeComponentValue(e5, o5) {
      const t4 = o5[0];
      if (n6.isTokenOpenParen(t4) || n6.isTokenOpenCurly(t4) || n6.isTokenOpenSquare(t4)) {
        const n7 = consumeSimpleBlock(e5, o5);
        return { advance: n7.advance, node: n7.node };
      }
      if (n6.isTokenFunction(t4)) {
        const n7 = consumeFunction(e5, o5);
        return { advance: n7.advance, node: n7.node };
      }
      if (n6.isTokenWhitespace(t4)) {
        const n7 = consumeWhitespace(e5, o5);
        return { advance: n7.advance, node: n7.node };
      }
      if (n6.isTokenComment(t4)) {
        const n7 = consumeComment(e5, o5);
        return { advance: n7.advance, node: n7.node };
      }
      return { advance: 1, node: new TokenNode(t4) };
    }
    exports.ComponentValueType = void 0, (e4 = exports.ComponentValueType || (exports.ComponentValueType = {})).Function = "function", e4.SimpleBlock = "simple-block", e4.Whitespace = "whitespace", e4.Comment = "comment", e4.Token = "token";
    var ContainerNodeBaseClass = class {
      value = [];
      indexOf(e5) {
        return this.value.indexOf(e5);
      }
      at(e5) {
        if ("number" == typeof e5) return e5 < 0 && (e5 = this.value.length + e5), this.value[e5];
      }
      forEach(e5, n7) {
        if (0 === this.value.length) return;
        const o5 = walkerIndexGenerator(this.value);
        let t4 = 0;
        for (; t4 < this.value.length; ) {
          const s4 = this.value[t4];
          let i5;
          if (n7 && (i5 = { ...n7 }), false === e5({ node: s4, parent: this, state: i5 }, t4)) return false;
          if (t4 = o5(this.value, s4, t4), -1 === t4) break;
        }
      }
      walk(e5, n7) {
        0 !== this.value.length && this.forEach(((n8, o5) => false !== e5(n8, o5) && ((!("walk" in n8.node) || !this.value.includes(n8.node) || false !== n8.node.walk(e5, n8.state)) && void 0)), n7);
      }
    };
    var FunctionNode = class _FunctionNode extends ContainerNodeBaseClass {
      type = exports.ComponentValueType.Function;
      name;
      endToken;
      constructor(e5, n7, o5) {
        super(), this.name = e5, this.endToken = n7, this.value = o5;
      }
      getName() {
        return this.name[4].value;
      }
      normalize() {
        n6.isTokenEOF(this.endToken) && (this.endToken = [n6.TokenType.CloseParen, ")", -1, -1, void 0]);
      }
      tokens() {
        return n6.isTokenEOF(this.endToken) ? [this.name, ...this.value.flatMap(((e5) => e5.tokens()))] : [this.name, ...this.value.flatMap(((e5) => e5.tokens())), this.endToken];
      }
      toString() {
        const e5 = this.value.map(((e6) => n6.isToken(e6) ? n6.stringify(e6) : e6.toString())).join("");
        return n6.stringify(this.name) + e5 + n6.stringify(this.endToken);
      }
      toJSON() {
        return { type: this.type, name: this.getName(), tokens: this.tokens(), value: this.value.map(((e5) => e5.toJSON())) };
      }
      isFunctionNode() {
        return _FunctionNode.isFunctionNode(this);
      }
      static isFunctionNode(e5) {
        return !!e5 && (e5 instanceof _FunctionNode && e5.type === exports.ComponentValueType.Function);
      }
    };
    function consumeFunction(e5, o5) {
      const t4 = [];
      let s4 = 1;
      for (; ; ) {
        const i5 = o5[s4];
        if (!i5 || n6.isTokenEOF(i5)) return e5.onParseError(new n6.ParseError("Unexpected EOF while consuming a function.", o5[0][2], o5[o5.length - 1][3], ["5.4.9. Consume a function", "Unexpected EOF"])), { advance: o5.length, node: new FunctionNode(o5[0], i5, t4) };
        if (n6.isTokenCloseParen(i5)) return { advance: s4 + 1, node: new FunctionNode(o5[0], i5, t4) };
        if (n6.isTokenWhiteSpaceOrComment(i5)) {
          const n7 = consumeAllCommentsAndWhitespace(e5, o5.slice(s4));
          s4 += n7.advance, t4.push(...n7.nodes);
          continue;
        }
        const r4 = consumeComponentValue(e5, o5.slice(s4));
        s4 += r4.advance, t4.push(r4.node);
      }
    }
    var SimpleBlockNode = class _SimpleBlockNode extends ContainerNodeBaseClass {
      type = exports.ComponentValueType.SimpleBlock;
      startToken;
      endToken;
      constructor(e5, n7, o5) {
        super(), this.startToken = e5, this.endToken = n7, this.value = o5;
      }
      normalize() {
        if (n6.isTokenEOF(this.endToken)) {
          const e5 = n6.mirrorVariant(this.startToken);
          e5 && (this.endToken = e5);
        }
      }
      tokens() {
        return n6.isTokenEOF(this.endToken) ? [this.startToken, ...this.value.flatMap(((e5) => e5.tokens()))] : [this.startToken, ...this.value.flatMap(((e5) => e5.tokens())), this.endToken];
      }
      toString() {
        const e5 = this.value.map(((e6) => n6.isToken(e6) ? n6.stringify(e6) : e6.toString())).join("");
        return n6.stringify(this.startToken) + e5 + n6.stringify(this.endToken);
      }
      toJSON() {
        return { type: this.type, startToken: this.startToken, tokens: this.tokens(), value: this.value.map(((e5) => e5.toJSON())) };
      }
      isSimpleBlockNode() {
        return _SimpleBlockNode.isSimpleBlockNode(this);
      }
      static isSimpleBlockNode(e5) {
        return !!e5 && (e5 instanceof _SimpleBlockNode && e5.type === exports.ComponentValueType.SimpleBlock);
      }
    };
    function consumeSimpleBlock(e5, o5) {
      const t4 = n6.mirrorVariantType(o5[0][0]);
      if (!t4) throw new Error("Failed to parse, a mirror variant must exist for all block open tokens.");
      const s4 = [];
      let i5 = 1;
      for (; ; ) {
        const r4 = o5[i5];
        if (!r4 || n6.isTokenEOF(r4)) return e5.onParseError(new n6.ParseError("Unexpected EOF while consuming a simple block.", o5[0][2], o5[o5.length - 1][3], ["5.4.8. Consume a simple block", "Unexpected EOF"])), { advance: o5.length, node: new SimpleBlockNode(o5[0], r4, s4) };
        if (r4[0] === t4) return { advance: i5 + 1, node: new SimpleBlockNode(o5[0], r4, s4) };
        if (n6.isTokenWhiteSpaceOrComment(r4)) {
          const n7 = consumeAllCommentsAndWhitespace(e5, o5.slice(i5));
          i5 += n7.advance, s4.push(...n7.nodes);
          continue;
        }
        const a5 = consumeComponentValue(e5, o5.slice(i5));
        i5 += a5.advance, s4.push(a5.node);
      }
    }
    var WhitespaceNode = class _WhitespaceNode {
      type = exports.ComponentValueType.Whitespace;
      value;
      constructor(e5) {
        this.value = e5;
      }
      tokens() {
        return this.value;
      }
      toString() {
        return n6.stringify(...this.value);
      }
      toJSON() {
        return { type: this.type, tokens: this.tokens() };
      }
      isWhitespaceNode() {
        return _WhitespaceNode.isWhitespaceNode(this);
      }
      static isWhitespaceNode(e5) {
        return !!e5 && (e5 instanceof _WhitespaceNode && e5.type === exports.ComponentValueType.Whitespace);
      }
    };
    function consumeWhitespace(e5, o5) {
      let t4 = 0;
      for (; ; ) {
        const e6 = o5[t4];
        if (!n6.isTokenWhitespace(e6)) return { advance: t4, node: new WhitespaceNode(o5.slice(0, t4)) };
        t4++;
      }
    }
    var CommentNode = class _CommentNode {
      type = exports.ComponentValueType.Comment;
      value;
      constructor(e5) {
        this.value = e5;
      }
      tokens() {
        return [this.value];
      }
      toString() {
        return n6.stringify(this.value);
      }
      toJSON() {
        return { type: this.type, tokens: this.tokens() };
      }
      isCommentNode() {
        return _CommentNode.isCommentNode(this);
      }
      static isCommentNode(e5) {
        return !!e5 && (e5 instanceof _CommentNode && e5.type === exports.ComponentValueType.Comment);
      }
    };
    function consumeComment(e5, n7) {
      return { advance: 1, node: new CommentNode(n7[0]) };
    }
    function consumeAllCommentsAndWhitespace(e5, o5) {
      const t4 = [];
      let s4 = 0;
      for (; ; ) if (n6.isTokenWhitespace(o5[s4])) {
        const e6 = consumeWhitespace(0, o5.slice(s4));
        s4 += e6.advance, t4.push(e6.node);
      } else {
        if (!n6.isTokenComment(o5[s4])) return { advance: s4, nodes: t4 };
        t4.push(new CommentNode(o5[s4])), s4++;
      }
    }
    var TokenNode = class _TokenNode {
      type = exports.ComponentValueType.Token;
      value;
      constructor(e5) {
        this.value = e5;
      }
      tokens() {
        return [this.value];
      }
      toString() {
        return this.value[1];
      }
      toJSON() {
        return { type: this.type, tokens: this.tokens() };
      }
      isTokenNode() {
        return _TokenNode.isTokenNode(this);
      }
      static isTokenNode(e5) {
        return !!e5 && (e5 instanceof _TokenNode && e5.type === exports.ComponentValueType.Token);
      }
    };
    function forEach2(e5, n7, o5) {
      if (0 === e5.length) return;
      const t4 = walkerIndexGenerator(e5);
      let s4 = 0;
      for (; s4 < e5.length; ) {
        const i5 = e5[s4];
        let r4;
        if (o5 && (r4 = { ...o5 }), false === n7({ node: i5, parent: { value: e5 }, state: r4 }, s4)) return false;
        if (s4 = t4(e5, i5, s4), -1 === s4) break;
      }
    }
    function walk(e5, n7, o5) {
      0 !== e5.length && forEach2(e5, ((o6, t4) => false !== n7(o6, t4) && ((!("walk" in o6.node) || !e5.includes(o6.node) || false !== o6.node.walk(n7, o6.state)) && void 0)), o5);
    }
    function isWhitespaceNode(e5) {
      return WhitespaceNode.isWhitespaceNode(e5);
    }
    function isCommentNode(e5) {
      return CommentNode.isCommentNode(e5);
    }
    exports.CommentNode = CommentNode, exports.ContainerNodeBaseClass = ContainerNodeBaseClass, exports.FunctionNode = FunctionNode, exports.SimpleBlockNode = SimpleBlockNode, exports.TokenNode = TokenNode, exports.WhitespaceNode = WhitespaceNode, exports.forEach = forEach2, exports.gatherNodeAncestry = function gatherNodeAncestry(e5) {
      const n7 = /* @__PURE__ */ new Map();
      return e5.walk(((e6) => {
        Array.isArray(e6.node) ? e6.node.forEach(((o5) => {
          n7.set(o5, e6.parent);
        })) : n7.set(e6.node, e6.parent);
      })), n7;
    }, exports.isCommentNode = isCommentNode, exports.isFunctionNode = function isFunctionNode(e5) {
      return FunctionNode.isFunctionNode(e5);
    }, exports.isSimpleBlockNode = function isSimpleBlockNode(e5) {
      return SimpleBlockNode.isSimpleBlockNode(e5);
    }, exports.isTokenNode = function isTokenNode(e5) {
      return TokenNode.isTokenNode(e5);
    }, exports.isWhiteSpaceOrCommentNode = function isWhiteSpaceOrCommentNode(e5) {
      return isWhitespaceNode(e5) || isCommentNode(e5);
    }, exports.isWhitespaceNode = isWhitespaceNode, exports.parseCommaSeparatedListOfComponentValues = function parseCommaSeparatedListOfComponentValues(e5, o5) {
      const t4 = { onParseError: o5?.onParseError ?? (() => {
      }) }, s4 = [...e5];
      if (0 === e5.length) return [];
      n6.isTokenEOF(s4[s4.length - 1]) && s4.push([n6.TokenType.EOF, "", s4[s4.length - 1][2], s4[s4.length - 1][3], void 0]);
      const i5 = [];
      let r4 = [], a5 = 0;
      for (; ; ) {
        if (!s4[a5] || n6.isTokenEOF(s4[a5])) return r4.length && i5.push(r4), i5;
        if (n6.isTokenComma(s4[a5])) {
          i5.push(r4), r4 = [], a5++;
          continue;
        }
        const o6 = consumeComponentValue(t4, e5.slice(a5));
        r4.push(o6.node), a5 += o6.advance;
      }
    }, exports.parseComponentValue = function parseComponentValue(e5, o5) {
      const t4 = { onParseError: o5?.onParseError ?? (() => {
      }) }, s4 = [...e5];
      n6.isTokenEOF(s4[s4.length - 1]) && s4.push([n6.TokenType.EOF, "", s4[s4.length - 1][2], s4[s4.length - 1][3], void 0]);
      const i5 = consumeComponentValue(t4, s4);
      if (n6.isTokenEOF(s4[Math.min(i5.advance, s4.length - 1)])) return i5.node;
      t4.onParseError(new n6.ParseError("Expected EOF after parsing a component value.", e5[0][2], e5[e5.length - 1][3], ["5.3.9. Parse a component value", "Expected EOF"]));
    }, exports.parseListOfComponentValues = function parseListOfComponentValues(e5, o5) {
      const t4 = { onParseError: o5?.onParseError ?? (() => {
      }) }, s4 = [...e5];
      n6.isTokenEOF(s4[s4.length - 1]) && s4.push([n6.TokenType.EOF, "", s4[s4.length - 1][2], s4[s4.length - 1][3], void 0]);
      const i5 = [];
      let r4 = 0;
      for (; ; ) {
        if (!s4[r4] || n6.isTokenEOF(s4[r4])) return i5;
        const e6 = consumeComponentValue(t4, s4.slice(r4));
        i5.push(e6.node), r4 += e6.advance;
      }
    }, exports.replaceComponentValues = function replaceComponentValues(e5, n7) {
      for (let o5 = 0; o5 < e5.length; o5++) {
        walk(e5[o5], ((e6, o6) => {
          if ("number" != typeof o6) return;
          const t4 = n7(e6.node);
          t4 && (Array.isArray(t4) ? e6.parent.value.splice(o6, 1, ...t4) : e6.parent.value.splice(o6, 1, t4));
        }));
      }
      return e5;
    }, exports.sourceIndices = function sourceIndices(e5) {
      if (Array.isArray(e5)) {
        const n8 = e5[0];
        if (!n8) return [0, 0];
        const o6 = e5[e5.length - 1] || n8;
        return [sourceIndices(n8)[0], sourceIndices(o6)[1]];
      }
      const n7 = e5.tokens(), o5 = n7[0], t4 = n7[n7.length - 1];
      return o5 && t4 ? [o5[2], t4[3]] : [0, 0];
    }, exports.stringify = function stringify(e5) {
      return e5.map(((e6) => e6.map(((e7) => n6.stringify(...e7.tokens()))).join(""))).join(",");
    }, exports.walk = walk, exports.walkerIndexGenerator = walkerIndexGenerator;
  }
});

// ../../node_modules/.pnpm/@csstools+css-calc@2.1.4_@csstools+css-parser-algorithms@3.0.5_@csstools+css-tokenizer@_e8d5cb57048a11d39451107410ea18b6/node_modules/@csstools/css-calc/dist/index.cjs
var require_dist12 = __commonJS({
  "../../node_modules/.pnpm/@csstools+css-calc@2.1.4_@csstools+css-parser-algorithms@3.0.5_@csstools+css-tokenizer@_e8d5cb57048a11d39451107410ea18b6/node_modules/@csstools/css-calc/dist/index.cjs"(exports) {
    "use strict";
    var e4 = require_dist11();
    var n6 = require_dist10();
    var t4 = /[A-Z]/g;
    function toLowerCaseAZ(e5) {
      return e5.replace(t4, ((e6) => String.fromCharCode(e6.charCodeAt(0) + 32)));
    }
    var o5 = { cm: "px", in: "px", mm: "px", pc: "px", pt: "px", px: "px", q: "px", deg: "deg", grad: "deg", rad: "deg", turn: "deg", ms: "s", s: "s", hz: "hz", khz: "hz" };
    var r4 = /* @__PURE__ */ new Map([["cm", (e5) => e5], ["mm", (e5) => 10 * e5], ["q", (e5) => 40 * e5], ["in", (e5) => e5 / 2.54], ["pc", (e5) => e5 / 2.54 * 6], ["pt", (e5) => e5 / 2.54 * 72], ["px", (e5) => e5 / 2.54 * 96]]);
    var i5 = /* @__PURE__ */ new Map([["deg", (e5) => e5], ["grad", (e5) => e5 / 0.9], ["rad", (e5) => e5 / 180 * Math.PI], ["turn", (e5) => e5 / 360]]);
    var u5 = /* @__PURE__ */ new Map([["deg", (e5) => 0.9 * e5], ["grad", (e5) => e5], ["rad", (e5) => 0.9 * e5 / 180 * Math.PI], ["turn", (e5) => 0.9 * e5 / 360]]);
    var a5 = /* @__PURE__ */ new Map([["hz", (e5) => e5], ["khz", (e5) => e5 / 1e3]]);
    var s4 = /* @__PURE__ */ new Map([["cm", (e5) => 2.54 * e5], ["mm", (e5) => 25.4 * e5], ["q", (e5) => 25.4 * e5 * 4], ["in", (e5) => e5], ["pc", (e5) => 6 * e5], ["pt", (e5) => 72 * e5], ["px", (e5) => 96 * e5]]);
    var l4 = /* @__PURE__ */ new Map([["hz", (e5) => 1e3 * e5], ["khz", (e5) => e5]]);
    var c6 = /* @__PURE__ */ new Map([["cm", (e5) => e5 / 10], ["mm", (e5) => e5], ["q", (e5) => 4 * e5], ["in", (e5) => e5 / 25.4], ["pc", (e5) => e5 / 25.4 * 6], ["pt", (e5) => e5 / 25.4 * 72], ["px", (e5) => e5 / 25.4 * 96]]);
    var m3 = /* @__PURE__ */ new Map([["ms", (e5) => e5], ["s", (e5) => e5 / 1e3]]);
    var v3 = /* @__PURE__ */ new Map([["cm", (e5) => e5 / 6 * 2.54], ["mm", (e5) => e5 / 6 * 25.4], ["q", (e5) => e5 / 6 * 25.4 * 4], ["in", (e5) => e5 / 6], ["pc", (e5) => e5], ["pt", (e5) => e5 / 6 * 72], ["px", (e5) => e5 / 6 * 96]]);
    var T = /* @__PURE__ */ new Map([["cm", (e5) => e5 / 72 * 2.54], ["mm", (e5) => e5 / 72 * 25.4], ["q", (e5) => e5 / 72 * 25.4 * 4], ["in", (e5) => e5 / 72], ["pc", (e5) => e5 / 72 * 6], ["pt", (e5) => e5], ["px", (e5) => e5 / 72 * 96]]);
    var p3 = /* @__PURE__ */ new Map([["cm", (e5) => e5 / 96 * 2.54], ["mm", (e5) => e5 / 96 * 25.4], ["q", (e5) => e5 / 96 * 25.4 * 4], ["in", (e5) => e5 / 96], ["pc", (e5) => e5 / 96 * 6], ["pt", (e5) => e5 / 96 * 72], ["px", (e5) => e5]]);
    var N = /* @__PURE__ */ new Map([["cm", (e5) => e5 / 4 / 10], ["mm", (e5) => e5 / 4], ["q", (e5) => e5], ["in", (e5) => e5 / 4 / 25.4], ["pc", (e5) => e5 / 4 / 25.4 * 6], ["pt", (e5) => e5 / 4 / 25.4 * 72], ["px", (e5) => e5 / 4 / 25.4 * 96]]);
    var f4 = /* @__PURE__ */ new Map([["deg", (e5) => 180 * e5 / Math.PI], ["grad", (e5) => 180 * e5 / Math.PI / 0.9], ["rad", (e5) => e5], ["turn", (e5) => 180 * e5 / Math.PI / 360]]);
    var d3 = /* @__PURE__ */ new Map([["ms", (e5) => 1e3 * e5], ["s", (e5) => e5]]);
    var k3 = /* @__PURE__ */ new Map([["deg", (e5) => 360 * e5], ["grad", (e5) => 360 * e5 / 0.9], ["rad", (e5) => 360 * e5 / 180 * Math.PI], ["turn", (e5) => e5]]);
    var C = /* @__PURE__ */ new Map([["cm", r4], ["mm", c6], ["q", N], ["in", s4], ["pc", v3], ["pt", T], ["px", p3], ["ms", m3], ["s", d3], ["deg", i5], ["grad", u5], ["rad", f4], ["turn", k3], ["hz", a5], ["khz", l4]]);
    function convertUnit(e5, t5) {
      if (!n6.isTokenDimension(e5)) return t5;
      if (!n6.isTokenDimension(t5)) return t5;
      const o6 = toLowerCaseAZ(e5[4].unit), r5 = toLowerCaseAZ(t5[4].unit);
      if (o6 === r5) return t5;
      const i6 = C.get(r5);
      if (!i6) return t5;
      const u6 = i6.get(o6);
      if (!u6) return t5;
      const a6 = u6(t5[4].value), s5 = [n6.TokenType.Dimension, "", t5[2], t5[3], { ...t5[4], signCharacter: a6 < 0 ? "-" : void 0, type: Number.isInteger(a6) ? n6.NumberType.Integer : n6.NumberType.Number, value: a6 }];
      return n6.mutateUnit(s5, e5[4].unit), s5;
    }
    function toCanonicalUnit(e5) {
      if (!n6.isTokenDimension(e5)) return e5;
      const t5 = toLowerCaseAZ(e5[4].unit), r5 = o5[t5];
      if (t5 === r5) return e5;
      const i6 = C.get(t5);
      if (!i6) return e5;
      const u6 = i6.get(r5);
      if (!u6) return e5;
      const a6 = u6(e5[4].value), s5 = [n6.TokenType.Dimension, "", e5[2], e5[3], { ...e5[4], signCharacter: a6 < 0 ? "-" : void 0, type: Number.isInteger(a6) ? n6.NumberType.Integer : n6.NumberType.Number, value: a6 }];
      return n6.mutateUnit(s5, r5), s5;
    }
    function addition(t5) {
      if (2 !== t5.length) return -1;
      const o6 = t5[0].value;
      let r5 = t5[1].value;
      if (n6.isTokenNumber(o6) && n6.isTokenNumber(r5)) {
        const t6 = o6[4].value + r5[4].value;
        return new e4.TokenNode([n6.TokenType.Number, t6.toString(), o6[2], r5[3], { value: t6, type: o6[4].type === n6.NumberType.Integer && r5[4].type === n6.NumberType.Integer ? n6.NumberType.Integer : n6.NumberType.Number }]);
      }
      if (n6.isTokenPercentage(o6) && n6.isTokenPercentage(r5)) {
        const t6 = o6[4].value + r5[4].value;
        return new e4.TokenNode([n6.TokenType.Percentage, t6.toString() + "%", o6[2], r5[3], { value: t6 }]);
      }
      if (n6.isTokenDimension(o6) && n6.isTokenDimension(r5) && (r5 = convertUnit(o6, r5), toLowerCaseAZ(o6[4].unit) === toLowerCaseAZ(r5[4].unit))) {
        const t6 = o6[4].value + r5[4].value;
        return new e4.TokenNode([n6.TokenType.Dimension, t6.toString() + o6[4].unit, o6[2], r5[3], { value: t6, type: o6[4].type === n6.NumberType.Integer && r5[4].type === n6.NumberType.Integer ? n6.NumberType.Integer : n6.NumberType.Number, unit: o6[4].unit }]);
      }
      return -1;
    }
    function division(t5) {
      if (2 !== t5.length) return -1;
      const o6 = t5[0].value, r5 = t5[1].value;
      if (n6.isTokenNumber(o6) && n6.isTokenNumber(r5)) {
        const t6 = o6[4].value / r5[4].value;
        return new e4.TokenNode([n6.TokenType.Number, t6.toString(), o6[2], r5[3], { value: t6, type: Number.isInteger(t6) ? n6.NumberType.Integer : n6.NumberType.Number }]);
      }
      if (n6.isTokenPercentage(o6) && n6.isTokenNumber(r5)) {
        const t6 = o6[4].value / r5[4].value;
        return new e4.TokenNode([n6.TokenType.Percentage, t6.toString() + "%", o6[2], r5[3], { value: t6 }]);
      }
      if (n6.isTokenDimension(o6) && n6.isTokenNumber(r5)) {
        const t6 = o6[4].value / r5[4].value;
        return new e4.TokenNode([n6.TokenType.Dimension, t6.toString() + o6[4].unit, o6[2], r5[3], { value: t6, type: Number.isInteger(t6) ? n6.NumberType.Integer : n6.NumberType.Number, unit: o6[4].unit }]);
      }
      return -1;
    }
    function isCalculation(e5) {
      return !!e5 && "object" == typeof e5 && "inputs" in e5 && Array.isArray(e5.inputs) && "operation" in e5;
    }
    function solve(n7) {
      if (-1 === n7) return -1;
      const t5 = [];
      for (let o6 = 0; o6 < n7.inputs.length; o6++) {
        const r5 = n7.inputs[o6];
        if (e4.isTokenNode(r5)) {
          t5.push(r5);
          continue;
        }
        const i6 = solve(r5);
        if (-1 === i6) return -1;
        t5.push(i6);
      }
      return n7.operation(t5);
    }
    function multiplication(t5) {
      if (2 !== t5.length) return -1;
      const o6 = t5[0].value, r5 = t5[1].value;
      if (n6.isTokenNumber(o6) && n6.isTokenNumber(r5)) {
        const t6 = o6[4].value * r5[4].value;
        return new e4.TokenNode([n6.TokenType.Number, t6.toString(), o6[2], r5[3], { value: t6, type: o6[4].type === n6.NumberType.Integer && r5[4].type === n6.NumberType.Integer ? n6.NumberType.Integer : n6.NumberType.Number }]);
      }
      if (n6.isTokenPercentage(o6) && n6.isTokenNumber(r5)) {
        const t6 = o6[4].value * r5[4].value;
        return new e4.TokenNode([n6.TokenType.Percentage, t6.toString() + "%", o6[2], r5[3], { value: t6 }]);
      }
      if (n6.isTokenNumber(o6) && n6.isTokenPercentage(r5)) {
        const t6 = o6[4].value * r5[4].value;
        return new e4.TokenNode([n6.TokenType.Percentage, t6.toString() + "%", o6[2], r5[3], { value: t6 }]);
      }
      if (n6.isTokenDimension(o6) && n6.isTokenNumber(r5)) {
        const t6 = o6[4].value * r5[4].value;
        return new e4.TokenNode([n6.TokenType.Dimension, t6.toString() + o6[4].unit, o6[2], r5[3], { value: t6, type: o6[4].type === n6.NumberType.Integer && r5[4].type === n6.NumberType.Integer ? n6.NumberType.Integer : n6.NumberType.Number, unit: o6[4].unit }]);
      }
      if (n6.isTokenNumber(o6) && n6.isTokenDimension(r5)) {
        const t6 = o6[4].value * r5[4].value;
        return new e4.TokenNode([n6.TokenType.Dimension, t6.toString() + r5[4].unit, o6[2], r5[3], { value: t6, type: o6[4].type === n6.NumberType.Integer && r5[4].type === n6.NumberType.Integer ? n6.NumberType.Integer : n6.NumberType.Number, unit: r5[4].unit }]);
      }
      return -1;
    }
    function resolveGlobalsAndConstants(t5, o6) {
      for (let r5 = 0; r5 < t5.length; r5++) {
        const i6 = t5[r5];
        if (!e4.isTokenNode(i6)) continue;
        const u6 = i6.value;
        if (!n6.isTokenIdent(u6)) continue;
        const a6 = toLowerCaseAZ(u6[4].value);
        switch (a6) {
          case "e":
            t5.splice(r5, 1, new e4.TokenNode([n6.TokenType.Number, Math.E.toString(), u6[2], u6[3], { value: Math.E, type: n6.NumberType.Number }]));
            break;
          case "pi":
            t5.splice(r5, 1, new e4.TokenNode([n6.TokenType.Number, Math.PI.toString(), u6[2], u6[3], { value: Math.PI, type: n6.NumberType.Number }]));
            break;
          case "infinity":
            t5.splice(r5, 1, new e4.TokenNode([n6.TokenType.Number, "infinity", u6[2], u6[3], { value: 1 / 0, type: n6.NumberType.Number }]));
            break;
          case "-infinity":
            t5.splice(r5, 1, new e4.TokenNode([n6.TokenType.Number, "-infinity", u6[2], u6[3], { value: -1 / 0, type: n6.NumberType.Number }]));
            break;
          case "nan":
            t5.splice(r5, 1, new e4.TokenNode([n6.TokenType.Number, "NaN", u6[2], u6[3], { value: Number.NaN, type: n6.NumberType.Number }]));
            break;
          default:
            if (o6.has(a6)) {
              const n7 = o6.get(a6);
              t5.splice(r5, 1, new e4.TokenNode(n7));
            }
        }
      }
      return t5;
    }
    function unary(e5) {
      if (1 !== e5.length) return -1;
      const t5 = e5[0].value;
      return n6.isTokenNumeric(t5) ? e5[0] : -1;
    }
    function resultToCalculation(e5, t5, o6) {
      return n6.isTokenDimension(t5) ? dimensionToCalculation(e5, t5[4].unit, o6) : n6.isTokenPercentage(t5) ? percentageToCalculation(e5, o6) : n6.isTokenNumber(t5) ? numberToCalculation(e5, o6) : -1;
    }
    function dimensionToCalculation(t5, o6, r5) {
      const i6 = t5.tokens();
      return { inputs: [new e4.TokenNode([n6.TokenType.Dimension, r5.toString() + o6, i6[0][2], i6[i6.length - 1][3], { value: r5, type: Number.isInteger(r5) ? n6.NumberType.Integer : n6.NumberType.Number, unit: o6 }])], operation: unary };
    }
    function percentageToCalculation(t5, o6) {
      const r5 = t5.tokens();
      return { inputs: [new e4.TokenNode([n6.TokenType.Percentage, o6.toString() + "%", r5[0][2], r5[r5.length - 1][3], { value: o6 }])], operation: unary };
    }
    function numberToCalculation(t5, o6) {
      const r5 = t5.tokens();
      return { inputs: [new e4.TokenNode([n6.TokenType.Number, o6.toString(), r5[0][2], r5[r5.length - 1][3], { value: o6, type: Number.isInteger(o6) ? n6.NumberType.Integer : n6.NumberType.Number }])], operation: unary };
    }
    function solveACos(e5, t5) {
      const o6 = t5.value;
      if (!n6.isTokenNumber(o6)) return -1;
      return dimensionToCalculation(e5, "rad", Math.acos(o6[4].value));
    }
    function solveASin(e5, t5) {
      const o6 = t5.value;
      if (!n6.isTokenNumber(o6)) return -1;
      return dimensionToCalculation(e5, "rad", Math.asin(o6[4].value));
    }
    function solveATan(e5, t5) {
      const o6 = t5.value;
      if (!n6.isTokenNumber(o6)) return -1;
      return dimensionToCalculation(e5, "rad", Math.atan(o6[4].value));
    }
    function isDimensionOrNumber(e5) {
      return n6.isTokenDimension(e5) || n6.isTokenNumber(e5);
    }
    function arrayOfSameNumeric(e5) {
      if (0 === e5.length) return true;
      const t5 = e5[0];
      if (!n6.isTokenNumeric(t5)) return false;
      if (1 === e5.length) return true;
      if (n6.isTokenDimension(t5)) {
        const n7 = toLowerCaseAZ(t5[4].unit);
        for (let o6 = 1; o6 < e5.length; o6++) {
          const r5 = e5[o6];
          if (t5[0] !== r5[0]) return false;
          if (n7 !== toLowerCaseAZ(r5[4].unit)) return false;
        }
        return true;
      }
      for (let n7 = 1; n7 < e5.length; n7++) {
        const o6 = e5[n7];
        if (t5[0] !== o6[0]) return false;
      }
      return true;
    }
    function twoOfSameNumeric(e5, t5) {
      return !!n6.isTokenNumeric(e5) && (n6.isTokenDimension(e5) ? e5[0] === t5[0] && toLowerCaseAZ(e5[4].unit) === toLowerCaseAZ(t5[4].unit) : e5[0] === t5[0]);
    }
    function solveATan2(e5, n7, t5) {
      const o6 = n7.value;
      if (!isDimensionOrNumber(o6)) return -1;
      const r5 = convertUnit(o6, t5.value);
      if (!twoOfSameNumeric(o6, r5)) return -1;
      return dimensionToCalculation(e5, "rad", Math.atan2(o6[4].value, r5[4].value));
    }
    function solveAbs(e5, t5, o6) {
      const r5 = t5.value;
      if (!n6.isTokenNumeric(r5)) return -1;
      if (!o6.rawPercentages && n6.isTokenPercentage(r5)) return -1;
      return resultToCalculation(e5, r5, Math.abs(r5[4].value));
    }
    function solveClamp(t5, o6, r5, i6, u6) {
      if (!e4.isTokenNode(o6) || !e4.isTokenNode(r5) || !e4.isTokenNode(i6)) return -1;
      const a6 = o6.value;
      if (!n6.isTokenNumeric(a6)) return -1;
      if (!u6.rawPercentages && n6.isTokenPercentage(a6)) return -1;
      const s5 = convertUnit(a6, r5.value);
      if (!twoOfSameNumeric(a6, s5)) return -1;
      const l5 = convertUnit(a6, i6.value);
      if (!twoOfSameNumeric(a6, l5)) return -1;
      return resultToCalculation(t5, a6, Math.max(a6[4].value, Math.min(s5[4].value, l5[4].value)));
    }
    function solveCos(e5, t5) {
      const o6 = t5.value;
      if (!isDimensionOrNumber(o6)) return -1;
      let r5 = o6[4].value;
      if (n6.isTokenDimension(o6)) switch (o6[4].unit.toLowerCase()) {
        case "rad":
          break;
        case "deg":
          r5 = i5.get("rad")(o6[4].value);
          break;
        case "grad":
          r5 = u5.get("rad")(o6[4].value);
          break;
        case "turn":
          r5 = k3.get("rad")(o6[4].value);
          break;
        default:
          return -1;
      }
      return r5 = Math.cos(r5), numberToCalculation(e5, r5);
    }
    function solveExp(e5, t5) {
      const o6 = t5.value;
      if (!n6.isTokenNumber(o6)) return -1;
      return numberToCalculation(e5, Math.exp(o6[4].value));
    }
    function solveHypot(t5, o6, r5) {
      if (!o6.every(e4.isTokenNode)) return -1;
      const i6 = o6[0].value;
      if (!n6.isTokenNumeric(i6)) return -1;
      if (!r5.rawPercentages && n6.isTokenPercentage(i6)) return -1;
      const u6 = o6.map(((e5) => convertUnit(i6, e5.value)));
      if (!arrayOfSameNumeric(u6)) return -1;
      const a6 = u6.map(((e5) => e5[4].value)), s5 = Math.hypot(...a6);
      return resultToCalculation(t5, i6, s5);
    }
    function solveMax(t5, o6, r5) {
      if (!o6.every(e4.isTokenNode)) return -1;
      const i6 = o6[0].value;
      if (!n6.isTokenNumeric(i6)) return -1;
      if (!r5.rawPercentages && n6.isTokenPercentage(i6)) return -1;
      const u6 = o6.map(((e5) => convertUnit(i6, e5.value)));
      if (!arrayOfSameNumeric(u6)) return -1;
      const a6 = u6.map(((e5) => e5[4].value)), s5 = Math.max(...a6);
      return resultToCalculation(t5, i6, s5);
    }
    function solveMin(t5, o6, r5) {
      if (!o6.every(e4.isTokenNode)) return -1;
      const i6 = o6[0].value;
      if (!n6.isTokenNumeric(i6)) return -1;
      if (!r5.rawPercentages && n6.isTokenPercentage(i6)) return -1;
      const u6 = o6.map(((e5) => convertUnit(i6, e5.value)));
      if (!arrayOfSameNumeric(u6)) return -1;
      const a6 = u6.map(((e5) => e5[4].value)), s5 = Math.min(...a6);
      return resultToCalculation(t5, i6, s5);
    }
    function solveMod(e5, t5, o6) {
      const r5 = t5.value;
      if (!n6.isTokenNumeric(r5)) return -1;
      const i6 = convertUnit(r5, o6.value);
      if (!twoOfSameNumeric(r5, i6)) return -1;
      let u6;
      return u6 = 0 === i6[4].value ? Number.NaN : Number.isFinite(r5[4].value) && (Number.isFinite(i6[4].value) || (i6[4].value !== Number.POSITIVE_INFINITY || r5[4].value !== Number.NEGATIVE_INFINITY && !Object.is(0 * r5[4].value, -0)) && (i6[4].value !== Number.NEGATIVE_INFINITY || r5[4].value !== Number.POSITIVE_INFINITY && !Object.is(0 * r5[4].value, 0))) ? Number.isFinite(i6[4].value) ? (r5[4].value % i6[4].value + i6[4].value) % i6[4].value : r5[4].value : Number.NaN, resultToCalculation(e5, r5, u6);
    }
    function solvePow(e5, t5, o6) {
      const r5 = t5.value, i6 = o6.value;
      if (!n6.isTokenNumber(r5)) return -1;
      if (!twoOfSameNumeric(r5, i6)) return -1;
      return numberToCalculation(e5, Math.pow(r5[4].value, i6[4].value));
    }
    function solveRem(e5, t5, o6) {
      const r5 = t5.value;
      if (!n6.isTokenNumeric(r5)) return -1;
      const i6 = convertUnit(r5, o6.value);
      if (!twoOfSameNumeric(r5, i6)) return -1;
      let u6;
      return u6 = 0 === i6[4].value ? Number.NaN : Number.isFinite(r5[4].value) ? Number.isFinite(i6[4].value) ? r5[4].value % i6[4].value : r5[4].value : Number.NaN, resultToCalculation(e5, r5, u6);
    }
    function solveRound(e5, t5, o6, r5, i6) {
      const u6 = o6.value;
      if (!n6.isTokenNumeric(u6)) return -1;
      if (!i6.rawPercentages && n6.isTokenPercentage(u6)) return -1;
      const a6 = convertUnit(u6, r5.value);
      if (!twoOfSameNumeric(u6, a6)) return -1;
      let s5;
      if (0 === a6[4].value) s5 = Number.NaN;
      else if (Number.isFinite(u6[4].value) || Number.isFinite(a6[4].value)) if (!Number.isFinite(u6[4].value) && Number.isFinite(a6[4].value)) s5 = u6[4].value;
      else if (Number.isFinite(u6[4].value) && !Number.isFinite(a6[4].value)) switch (t5) {
        case "down":
          s5 = u6[4].value < 0 ? -1 / 0 : Object.is(-0, 0 * u6[4].value) ? -0 : 0;
          break;
        case "up":
          s5 = u6[4].value > 0 ? 1 / 0 : Object.is(0, 0 * u6[4].value) ? 0 : -0;
          break;
        default:
          s5 = Object.is(0, 0 * u6[4].value) ? 0 : -0;
      }
      else if (Number.isFinite(a6[4].value)) switch (t5) {
        case "down":
          s5 = Math.floor(u6[4].value / a6[4].value) * a6[4].value;
          break;
        case "up":
          s5 = Math.ceil(u6[4].value / a6[4].value) * a6[4].value;
          break;
        case "to-zero":
          s5 = Math.trunc(u6[4].value / a6[4].value) * a6[4].value;
          break;
        default: {
          let e6 = Math.floor(u6[4].value / a6[4].value) * a6[4].value, n7 = Math.ceil(u6[4].value / a6[4].value) * a6[4].value;
          if (e6 > n7) {
            const t7 = e6;
            e6 = n7, n7 = t7;
          }
          const t6 = Math.abs(u6[4].value - e6), o7 = Math.abs(u6[4].value - n7);
          s5 = t6 === o7 ? n7 : t6 < o7 ? e6 : n7;
          break;
        }
      }
      else s5 = u6[4].value;
      else s5 = Number.NaN;
      return resultToCalculation(e5, u6, s5);
    }
    function solveSign(e5, t5, o6) {
      const r5 = t5.value;
      if (!n6.isTokenNumeric(r5)) return -1;
      if (!o6.rawPercentages && n6.isTokenPercentage(r5)) return -1;
      return numberToCalculation(e5, Math.sign(r5[4].value));
    }
    function solveSin(e5, t5) {
      const o6 = t5.value;
      if (!isDimensionOrNumber(o6)) return -1;
      let r5 = o6[4].value;
      if (n6.isTokenDimension(o6)) switch (toLowerCaseAZ(o6[4].unit)) {
        case "rad":
          break;
        case "deg":
          r5 = i5.get("rad")(o6[4].value);
          break;
        case "grad":
          r5 = u5.get("rad")(o6[4].value);
          break;
        case "turn":
          r5 = k3.get("rad")(o6[4].value);
          break;
        default:
          return -1;
      }
      return r5 = Math.sin(r5), numberToCalculation(e5, r5);
    }
    function solveSqrt(e5, t5) {
      const o6 = t5.value;
      if (!n6.isTokenNumber(o6)) return -1;
      return numberToCalculation(e5, Math.sqrt(o6[4].value));
    }
    function solveTan(e5, t5) {
      const o6 = t5.value;
      if (!isDimensionOrNumber(o6)) return -1;
      const r5 = o6[4].value;
      let a6 = 0, s5 = o6[4].value;
      if (n6.isTokenDimension(o6)) switch (toLowerCaseAZ(o6[4].unit)) {
        case "rad":
          a6 = f4.get("deg")(r5);
          break;
        case "deg":
          a6 = r5, s5 = i5.get("rad")(r5);
          break;
        case "grad":
          a6 = u5.get("deg")(r5), s5 = u5.get("rad")(r5);
          break;
        case "turn":
          a6 = k3.get("deg")(r5), s5 = k3.get("rad")(r5);
          break;
        default:
          return -1;
      }
      const l5 = a6 / 90;
      return s5 = a6 % 90 == 0 && l5 % 2 != 0 ? l5 > 0 ? 1 / 0 : -1 / 0 : Math.tan(s5), numberToCalculation(e5, s5);
    }
    function subtraction(t5) {
      if (2 !== t5.length) return -1;
      const o6 = t5[0].value;
      let r5 = t5[1].value;
      if (n6.isTokenNumber(o6) && n6.isTokenNumber(r5)) {
        const t6 = o6[4].value - r5[4].value;
        return new e4.TokenNode([n6.TokenType.Number, t6.toString(), o6[2], r5[3], { value: t6, type: o6[4].type === n6.NumberType.Integer && r5[4].type === n6.NumberType.Integer ? n6.NumberType.Integer : n6.NumberType.Number }]);
      }
      if (n6.isTokenPercentage(o6) && n6.isTokenPercentage(r5)) {
        const t6 = o6[4].value - r5[4].value;
        return new e4.TokenNode([n6.TokenType.Percentage, t6.toString() + "%", o6[2], r5[3], { value: t6 }]);
      }
      if (n6.isTokenDimension(o6) && n6.isTokenDimension(r5) && (r5 = convertUnit(o6, r5), toLowerCaseAZ(o6[4].unit) === toLowerCaseAZ(r5[4].unit))) {
        const t6 = o6[4].value - r5[4].value;
        return new e4.TokenNode([n6.TokenType.Dimension, t6.toString() + o6[4].unit, o6[2], r5[3], { value: t6, type: o6[4].type === n6.NumberType.Integer && r5[4].type === n6.NumberType.Integer ? n6.NumberType.Integer : n6.NumberType.Number, unit: o6[4].unit }]);
      }
      return -1;
    }
    function solveLog(t5, o6) {
      if (1 === o6.length) {
        const r5 = o6[0];
        if (!r5 || !e4.isTokenNode(r5)) return -1;
        const i6 = r5.value;
        if (!n6.isTokenNumber(i6)) return -1;
        return numberToCalculation(t5, Math.log(i6[4].value));
      }
      if (2 === o6.length) {
        const r5 = o6[0];
        if (!r5 || !e4.isTokenNode(r5)) return -1;
        const i6 = r5.value;
        if (!n6.isTokenNumber(i6)) return -1;
        const u6 = o6[1];
        if (!u6 || !e4.isTokenNode(u6)) return -1;
        const a6 = u6.value;
        if (!n6.isTokenNumber(a6)) return -1;
        return numberToCalculation(t5, Math.log(i6[4].value) / Math.log(a6[4].value));
      }
      return -1;
    }
    var g3 = /^none$/i;
    function isNone(t5) {
      if (Array.isArray(t5)) {
        const n7 = t5.filter(((n8) => !(e4.isWhitespaceNode(n8) && e4.isCommentNode(n8))));
        return 1 === n7.length && isNone(n7[0]);
      }
      if (!e4.isTokenNode(t5)) return false;
      const o6 = t5.value;
      return !!n6.isTokenIdent(o6) && g3.test(o6[4].value);
    }
    var D = String.fromCodePoint(0);
    function solveRandom(e5, t5, o6, r5, i6, u6) {
      if (-1 === t5.fixed && !u6.randomCaching) return -1;
      u6.randomCaching || (u6.randomCaching = { propertyName: "", propertyN: 0, elementID: "", documentID: "" }), u6.randomCaching && !u6.randomCaching.propertyN && (u6.randomCaching.propertyN = 0);
      const a6 = o6.value;
      if (!n6.isTokenNumeric(a6)) return -1;
      const s5 = convertUnit(a6, r5.value);
      if (!twoOfSameNumeric(a6, s5)) return -1;
      let l5 = null;
      if (i6 && (l5 = convertUnit(a6, i6.value), !twoOfSameNumeric(a6, l5))) return -1;
      if (!Number.isFinite(a6[4].value)) return resultToCalculation(e5, a6, Number.NaN);
      if (!Number.isFinite(s5[4].value)) return resultToCalculation(e5, a6, Number.NaN);
      if (!Number.isFinite(s5[4].value - a6[4].value)) return resultToCalculation(e5, a6, Number.NaN);
      if (l5 && !Number.isFinite(l5[4].value)) return resultToCalculation(e5, a6, a6[4].value);
      const c7 = -1 === t5.fixed ? sfc32(crc32([t5.dashedIdent ? t5.dashedIdent : `${u6.randomCaching?.propertyName} ${u6.randomCaching.propertyN++}`, t5.elementShared ? "" : u6.randomCaching.elementID, u6.randomCaching.documentID].join(D))) : () => t5.fixed;
      let m4 = a6[4].value, v4 = s5[4].value;
      if (m4 > v4 && ([m4, v4] = [v4, m4]), l5 && (l5[4].value <= 0 || Math.abs(m4 - v4) / l5[4].value > 1e10) && (l5 = null), l5) {
        const n7 = Math.max(l5[4].value / 1e3, 1e-9), t6 = [m4];
        let o7 = 0;
        for (; ; ) {
          o7 += l5[4].value;
          const e6 = m4 + o7;
          if (!(e6 + n7 < v4)) {
            t6.push(v4);
            break;
          }
          if (t6.push(e6), e6 + l5[4].value - n7 > v4) break;
        }
        const r6 = c7();
        return resultToCalculation(e5, a6, Number(t6[Math.floor(t6.length * r6)].toFixed(5)));
      }
      const T2 = c7();
      return resultToCalculation(e5, a6, Number((T2 * (v4 - m4) + m4).toFixed(5)));
    }
    function sfc32(e5 = 0.34944106645296036, n7 = 0.19228640875738723, t5 = 0.8784393832007205, o6 = 0.04850964319275053) {
      return () => {
        const r5 = ((e5 |= 0) + (n7 |= 0) | 0) + (o6 |= 0) | 0;
        return o6 = o6 + 1 | 0, e5 = n7 ^ n7 >>> 9, n7 = (t5 |= 0) + (t5 << 3) | 0, t5 = (t5 = t5 << 21 | t5 >>> 11) + r5 | 0, (r5 >>> 0) / 4294967296;
      };
    }
    function crc32(e5) {
      let n7 = 0, t5 = 0, o6 = 0;
      n7 ^= -1;
      for (let r5 = 0, i6 = e5.length; r5 < i6; r5++) o6 = 255 & (n7 ^ e5.charCodeAt(r5)), t5 = Number("0x" + "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D".substring(9 * o6, 9 * o6 + 8)), n7 = n7 >>> 8 ^ t5;
      return (-1 ^ n7) >>> 0;
    }
    var b3 = /* @__PURE__ */ new Map([["abs", function abs(e5, n7, t5) {
      return singleNodeSolver(e5, n7, t5, solveAbs);
    }], ["acos", function acos(e5, n7, t5) {
      return singleNodeSolver(e5, n7, t5, solveACos);
    }], ["asin", function asin(e5, n7, t5) {
      return singleNodeSolver(e5, n7, t5, solveASin);
    }], ["atan", function atan(e5, n7, t5) {
      return singleNodeSolver(e5, n7, t5, solveATan);
    }], ["atan2", function atan2(e5, n7, t5) {
      return twoCommaSeparatedNodesSolver(e5, n7, t5, solveATan2);
    }], ["calc", calc$1], ["clamp", function clamp(t5, o6, r5) {
      const i6 = resolveGlobalsAndConstants([...t5.value.filter(((n7) => !e4.isWhiteSpaceOrCommentNode(n7)))], o6), u6 = [], a6 = [], s5 = [];
      {
        let t6 = u6;
        for (let o7 = 0; o7 < i6.length; o7++) {
          const r6 = i6[o7];
          if (e4.isTokenNode(r6) && n6.isTokenComma(r6.value)) {
            if (t6 === s5) return -1;
            if (t6 === a6) {
              t6 = s5;
              continue;
            }
            if (t6 === u6) {
              t6 = a6;
              continue;
            }
            return -1;
          }
          t6.push(r6);
        }
      }
      const l5 = isNone(u6), c7 = isNone(s5);
      if (l5 && c7) return calc$1(calcWrapper(a6), o6, r5);
      const m4 = solve(calc$1(calcWrapper(a6), o6, r5));
      if (-1 === m4) return -1;
      if (l5) {
        const t6 = solve(calc$1(calcWrapper(s5), o6, r5));
        return -1 === t6 ? -1 : solveMin((v4 = m4, T2 = t6, new e4.FunctionNode([n6.TokenType.Function, "min(", -1, -1, { value: "min" }], [n6.TokenType.CloseParen, ")", -1, -1, void 0], [v4, new e4.TokenNode([n6.TokenType.Comma, ",", -1, -1, void 0]), T2])), [m4, t6], r5);
      }
      if (c7) {
        const e5 = solve(calc$1(calcWrapper(u6), o6, r5));
        return -1 === e5 ? -1 : solveMax(maxWrapper(e5, m4), [e5, m4], r5);
      }
      var v4, T2;
      const p4 = solve(calc$1(calcWrapper(u6), o6, r5));
      if (-1 === p4) return -1;
      const N2 = solve(calc$1(calcWrapper(s5), o6, r5));
      if (-1 === N2) return -1;
      return solveClamp(t5, p4, m4, N2, r5);
    }], ["cos", function cos(e5, n7, t5) {
      return singleNodeSolver(e5, n7, t5, solveCos);
    }], ["exp", function exp(e5, n7, t5) {
      return singleNodeSolver(e5, n7, t5, solveExp);
    }], ["hypot", function hypot(e5, n7, t5) {
      return variadicNodesSolver(e5, e5.value, n7, t5, solveHypot);
    }], ["log", function log2(e5, n7, t5) {
      return variadicNodesSolver(e5, e5.value, n7, t5, solveLog);
    }], ["max", function max3(e5, n7, t5) {
      return variadicNodesSolver(e5, e5.value, n7, t5, solveMax);
    }], ["min", function min2(e5, n7, t5) {
      return variadicNodesSolver(e5, e5.value, n7, t5, solveMin);
    }], ["mod", function mod3(e5, n7, t5) {
      return twoCommaSeparatedNodesSolver(e5, n7, t5, solveMod);
    }], ["pow", function pow(e5, n7, t5) {
      return twoCommaSeparatedNodesSolver(e5, n7, t5, solvePow);
    }], ["random", function random(n7, t5, o6) {
      const r5 = parseRandomValueSharing(n7.value.filter(((n8) => !e4.isWhiteSpaceOrCommentNode(n8))), t5, o6);
      if (-1 === r5) return -1;
      const [i6, u6] = r5, a6 = variadicArguments(u6, t5, o6);
      if (-1 === a6) return -1;
      const [s5, l5, c7] = a6;
      if (!s5 || !l5) return -1;
      return solveRandom(n7, i6, s5, l5, c7, o6);
    }], ["rem", function rem(e5, n7, t5) {
      return twoCommaSeparatedNodesSolver(e5, n7, t5, solveRem);
    }], ["round", function round(t5, o6, r5) {
      const i6 = resolveGlobalsAndConstants([...t5.value.filter(((n7) => !e4.isWhiteSpaceOrCommentNode(n7)))], o6);
      let u6 = "", a6 = false;
      const s5 = [], l5 = [];
      {
        let t6 = s5;
        for (let o7 = 0; o7 < i6.length; o7++) {
          const r6 = i6[o7];
          if (!u6 && 0 === s5.length && 0 === l5.length && e4.isTokenNode(r6) && n6.isTokenIdent(r6.value)) {
            const e5 = r6.value[4].value.toLowerCase();
            if (y3.has(e5)) {
              u6 = e5;
              continue;
            }
          }
          if (e4.isTokenNode(r6) && n6.isTokenComma(r6.value)) {
            if (t6 === l5) return -1;
            if (t6 === s5 && u6 && 0 === s5.length) continue;
            if (t6 === s5) {
              a6 = true, t6 = l5;
              continue;
            }
            return -1;
          }
          t6.push(r6);
        }
      }
      const c7 = solve(calc$1(calcWrapper(s5), o6, r5));
      if (-1 === c7) return -1;
      a6 || 0 !== l5.length || l5.push(new e4.TokenNode([n6.TokenType.Number, "1", -1, -1, { value: 1, type: n6.NumberType.Integer }]));
      const m4 = solve(calc$1(calcWrapper(l5), o6, r5));
      if (-1 === m4) return -1;
      u6 || (u6 = "nearest");
      return solveRound(t5, u6, c7, m4, r5);
    }], ["sign", function sign(e5, n7, t5) {
      return singleNodeSolver(e5, n7, t5, solveSign);
    }], ["sin", function sin(e5, n7, t5) {
      return singleNodeSolver(e5, n7, t5, solveSin);
    }], ["sqrt", function sqrt(e5, n7, t5) {
      return singleNodeSolver(e5, n7, t5, solveSqrt);
    }], ["tan", function tan(e5, n7, t5) {
      return singleNodeSolver(e5, n7, t5, solveTan);
    }]]);
    function calc$1(t5, o6, r5) {
      const i6 = resolveGlobalsAndConstants([...t5.value.filter(((n7) => !e4.isWhiteSpaceOrCommentNode(n7)))], o6);
      if (1 === i6.length && e4.isTokenNode(i6[0])) return { inputs: [i6[0]], operation: unary };
      let u6 = 0;
      for (; u6 < i6.length; ) {
        const t6 = i6[u6];
        if (e4.isSimpleBlockNode(t6) && n6.isTokenOpenParen(t6.startToken)) {
          const e5 = calc$1(t6, o6, r5);
          if (-1 === e5) return -1;
          i6.splice(u6, 1, e5);
        } else if (e4.isFunctionNode(t6)) {
          const e5 = b3.get(t6.getName().toLowerCase());
          if (!e5) return -1;
          const n7 = e5(t6, o6, r5);
          if (-1 === n7) return -1;
          i6.splice(u6, 1, n7);
        } else u6++;
      }
      if (u6 = 0, 1 === i6.length && isCalculation(i6[0])) return i6[0];
      for (; u6 < i6.length; ) {
        const t6 = i6[u6];
        if (!t6 || !e4.isTokenNode(t6) && !isCalculation(t6)) {
          u6++;
          continue;
        }
        const o7 = i6[u6 + 1];
        if (!o7 || !e4.isTokenNode(o7)) {
          u6++;
          continue;
        }
        const r6 = o7.value;
        if (!n6.isTokenDelim(r6) || "*" !== r6[4].value && "/" !== r6[4].value) {
          u6++;
          continue;
        }
        const a6 = i6[u6 + 2];
        if (!a6 || !e4.isTokenNode(a6) && !isCalculation(a6)) return -1;
        "*" !== r6[4].value ? "/" !== r6[4].value ? u6++ : i6.splice(u6, 3, { inputs: [t6, a6], operation: division }) : i6.splice(u6, 3, { inputs: [t6, a6], operation: multiplication });
      }
      if (u6 = 0, 1 === i6.length && isCalculation(i6[0])) return i6[0];
      for (; u6 < i6.length; ) {
        const t6 = i6[u6];
        if (!t6 || !e4.isTokenNode(t6) && !isCalculation(t6)) {
          u6++;
          continue;
        }
        const o7 = i6[u6 + 1];
        if (!o7 || !e4.isTokenNode(o7)) {
          u6++;
          continue;
        }
        const r6 = o7.value;
        if (!n6.isTokenDelim(r6) || "+" !== r6[4].value && "-" !== r6[4].value) {
          u6++;
          continue;
        }
        const a6 = i6[u6 + 2];
        if (!a6 || !e4.isTokenNode(a6) && !isCalculation(a6)) return -1;
        "+" !== r6[4].value ? "-" !== r6[4].value ? u6++ : i6.splice(u6, 3, { inputs: [t6, a6], operation: subtraction }) : i6.splice(u6, 3, { inputs: [t6, a6], operation: addition });
      }
      return 1 === i6.length && isCalculation(i6[0]) ? i6[0] : -1;
    }
    function singleNodeSolver(e5, n7, t5, o6) {
      const r5 = singleArgument(e5.value, n7, t5);
      return -1 === r5 ? -1 : o6(e5, r5, t5);
    }
    function singleArgument(n7, t5, o6) {
      const r5 = solve(calc$1(calcWrapper(resolveGlobalsAndConstants([...n7.filter(((n8) => !e4.isWhiteSpaceOrCommentNode(n8)))], t5)), t5, o6));
      return -1 === r5 ? -1 : r5;
    }
    function twoCommaSeparatedNodesSolver(e5, n7, t5, o6) {
      const r5 = twoCommaSeparatedArguments(e5.value, n7, t5);
      if (-1 === r5) return -1;
      const [i6, u6] = r5;
      return o6(e5, i6, u6, t5);
    }
    function twoCommaSeparatedArguments(t5, o6, r5) {
      const i6 = resolveGlobalsAndConstants([...t5.filter(((n7) => !e4.isWhiteSpaceOrCommentNode(n7)))], o6), u6 = [], a6 = [];
      {
        let t6 = u6;
        for (let o7 = 0; o7 < i6.length; o7++) {
          const r6 = i6[o7];
          if (e4.isTokenNode(r6) && n6.isTokenComma(r6.value)) {
            if (t6 === a6) return -1;
            if (t6 === u6) {
              t6 = a6;
              continue;
            }
            return -1;
          }
          t6.push(r6);
        }
      }
      const s5 = solve(calc$1(calcWrapper(u6), o6, r5));
      if (-1 === s5) return -1;
      const l5 = solve(calc$1(calcWrapper(a6), o6, r5));
      return -1 === l5 ? -1 : [s5, l5];
    }
    function variadicNodesSolver(e5, n7, t5, o6, r5) {
      const i6 = variadicArguments(e5.value, t5, o6);
      return -1 === i6 ? -1 : r5(e5, i6, o6);
    }
    function variadicArguments(t5, o6, r5) {
      const i6 = resolveGlobalsAndConstants([...t5.filter(((n7) => !e4.isWhiteSpaceOrCommentNode(n7)))], o6), u6 = [];
      {
        const t6 = [];
        let a6 = [];
        for (let o7 = 0; o7 < i6.length; o7++) {
          const r6 = i6[o7];
          e4.isTokenNode(r6) && n6.isTokenComma(r6.value) ? (t6.push(a6), a6 = []) : a6.push(r6);
        }
        t6.push(a6);
        for (let e5 = 0; e5 < t6.length; e5++) {
          if (0 === t6[e5].length) return -1;
          const n7 = solve(calc$1(calcWrapper(t6[e5]), o6, r5));
          if (-1 === n7) return -1;
          u6.push(n7);
        }
      }
      return u6;
    }
    var y3 = /* @__PURE__ */ new Set(["nearest", "up", "down", "to-zero"]);
    function parseRandomValueSharing(t5, o6, r5) {
      const i6 = { isAuto: false, dashedIdent: "", fixed: -1, elementShared: false }, u6 = t5[0];
      if (!e4.isTokenNode(u6) || !n6.isTokenIdent(u6.value)) return [i6, t5];
      for (let u7 = 0; u7 < t5.length; u7++) {
        const a6 = t5[u7];
        if (!e4.isTokenNode(a6)) return -1;
        if (n6.isTokenComma(a6.value)) return [i6, t5.slice(u7 + 1)];
        if (!n6.isTokenIdent(a6.value)) return -1;
        const s5 = a6.value[4].value.toLowerCase();
        if ("element-shared" !== s5) if ("fixed" !== s5) if ("auto" !== s5) if (s5.startsWith("--")) {
          if (-1 !== i6.fixed || i6.isAuto) return -1;
          i6.dashedIdent = s5;
        } else ;
        else {
          if (-1 !== i6.fixed || i6.dashedIdent) return -1;
          i6.isAuto = true;
        }
        else {
          if (i6.elementShared || i6.dashedIdent || i6.isAuto) return -1;
          u7++;
          const e5 = t5[u7];
          if (!e5) return -1;
          const a7 = solve(calc$1(calcWrapper([e5]), o6, r5));
          if (-1 === a7) return -1;
          if (!n6.isTokenNumber(a7.value)) return -1;
          if (a7.value[4].value < 0 || a7.value[4].value > 1) return -1;
          i6.fixed = Math.max(0, Math.min(a7.value[4].value, 1 - 1e-9));
        }
        else {
          if (-1 !== i6.fixed) return -1;
          i6.elementShared = true;
        }
      }
      return -1;
    }
    function calcWrapper(t5) {
      return new e4.FunctionNode([n6.TokenType.Function, "calc(", -1, -1, { value: "calc" }], [n6.TokenType.CloseParen, ")", -1, -1, void 0], t5);
    }
    function maxWrapper(t5, o6) {
      return new e4.FunctionNode([n6.TokenType.Function, "max(", -1, -1, { value: "max" }], [n6.TokenType.CloseParen, ")", -1, -1, void 0], [t5, new e4.TokenNode([n6.TokenType.Comma, ",", -1, -1, void 0]), o6]);
    }
    function patchNaN(t5) {
      if (-1 === t5) return -1;
      if (e4.isFunctionNode(t5)) return t5;
      const o6 = t5.value;
      return n6.isTokenNumeric(o6) && Number.isNaN(o6[4].value) ? n6.isTokenNumber(o6) ? new e4.FunctionNode([n6.TokenType.Function, "calc(", o6[2], o6[3], { value: "calc" }], [n6.TokenType.CloseParen, ")", o6[2], o6[3], void 0], [new e4.TokenNode([n6.TokenType.Ident, "NaN", o6[2], o6[3], { value: "NaN" }])]) : n6.isTokenDimension(o6) ? new e4.FunctionNode([n6.TokenType.Function, "calc(", o6[2], o6[3], { value: "calc" }], [n6.TokenType.CloseParen, ")", o6[2], o6[3], void 0], [new e4.TokenNode([n6.TokenType.Ident, "NaN", o6[2], o6[3], { value: "NaN" }]), new e4.WhitespaceNode([[n6.TokenType.Whitespace, " ", o6[2], o6[3], void 0]]), new e4.TokenNode([n6.TokenType.Delim, "*", o6[2], o6[3], { value: "*" }]), new e4.WhitespaceNode([[n6.TokenType.Whitespace, " ", o6[2], o6[3], void 0]]), new e4.TokenNode([n6.TokenType.Dimension, "1" + o6[4].unit, o6[2], o6[3], { value: 1, type: n6.NumberType.Integer, unit: o6[4].unit }])]) : n6.isTokenPercentage(o6) ? new e4.FunctionNode([n6.TokenType.Function, "calc(", o6[2], o6[3], { value: "calc" }], [n6.TokenType.CloseParen, ")", o6[2], o6[3], void 0], [new e4.TokenNode([n6.TokenType.Ident, "NaN", o6[2], o6[3], { value: "NaN" }]), new e4.WhitespaceNode([[n6.TokenType.Whitespace, " ", o6[2], o6[3], void 0]]), new e4.TokenNode([n6.TokenType.Delim, "*", o6[2], o6[3], { value: "*" }]), new e4.WhitespaceNode([[n6.TokenType.Whitespace, " ", o6[2], o6[3], void 0]]), new e4.TokenNode([n6.TokenType.Percentage, "1%", o6[2], o6[3], { value: 1 }])]) : -1 : t5;
    }
    function patchInfinity(t5) {
      if (-1 === t5) return -1;
      if (e4.isFunctionNode(t5)) return t5;
      const o6 = t5.value;
      if (!n6.isTokenNumeric(o6)) return t5;
      if (Number.isFinite(o6[4].value) || Number.isNaN(o6[4].value)) return t5;
      let r5 = "";
      return Number.NEGATIVE_INFINITY === o6[4].value && (r5 = "-"), n6.isTokenNumber(o6) ? new e4.FunctionNode([n6.TokenType.Function, "calc(", o6[2], o6[3], { value: "calc" }], [n6.TokenType.CloseParen, ")", o6[2], o6[3], void 0], [new e4.TokenNode([n6.TokenType.Ident, r5 + "infinity", o6[2], o6[3], { value: r5 + "infinity" }])]) : n6.isTokenDimension(o6) ? new e4.FunctionNode([n6.TokenType.Function, "calc(", o6[2], o6[3], { value: "calc" }], [n6.TokenType.CloseParen, ")", o6[2], o6[3], void 0], [new e4.TokenNode([n6.TokenType.Ident, r5 + "infinity", o6[2], o6[3], { value: r5 + "infinity" }]), new e4.WhitespaceNode([[n6.TokenType.Whitespace, " ", o6[2], o6[3], void 0]]), new e4.TokenNode([n6.TokenType.Delim, "*", o6[2], o6[3], { value: "*" }]), new e4.WhitespaceNode([[n6.TokenType.Whitespace, " ", o6[2], o6[3], void 0]]), new e4.TokenNode([n6.TokenType.Dimension, "1" + o6[4].unit, o6[2], o6[3], { value: 1, type: n6.NumberType.Integer, unit: o6[4].unit }])]) : new e4.FunctionNode([n6.TokenType.Function, "calc(", o6[2], o6[3], { value: "calc" }], [n6.TokenType.CloseParen, ")", o6[2], o6[3], void 0], [new e4.TokenNode([n6.TokenType.Ident, r5 + "infinity", o6[2], o6[3], { value: r5 + "infinity" }]), new e4.WhitespaceNode([[n6.TokenType.Whitespace, " ", o6[2], o6[3], void 0]]), new e4.TokenNode([n6.TokenType.Delim, "*", o6[2], o6[3], { value: "*" }]), new e4.WhitespaceNode([[n6.TokenType.Whitespace, " ", o6[2], o6[3], void 0]]), new e4.TokenNode([n6.TokenType.Percentage, "1%", o6[2], o6[3], { value: 1 }])]);
    }
    function patchMinusZero(t5) {
      if (-1 === t5) return -1;
      if (e4.isFunctionNode(t5)) return t5;
      const o6 = t5.value;
      return n6.isTokenNumeric(o6) && Object.is(-0, o6[4].value) ? ("-0" === o6[1] || (n6.isTokenPercentage(o6) ? o6[1] = "-0%" : n6.isTokenDimension(o6) ? o6[1] = "-0" + o6[4].unit : o6[1] = "-0"), t5) : t5;
    }
    function patchPrecision(t5, o6 = 13) {
      if (-1 === t5) return -1;
      if (o6 <= 0) return t5;
      if (e4.isFunctionNode(t5)) return t5;
      const r5 = t5.value;
      if (!n6.isTokenNumeric(r5)) return t5;
      if (Number.isInteger(r5[4].value)) return t5;
      const i6 = Number(r5[4].value.toFixed(o6)).toString();
      return n6.isTokenNumber(r5) ? r5[1] = i6 : n6.isTokenPercentage(r5) ? r5[1] = i6 + "%" : n6.isTokenDimension(r5) && (r5[1] = i6 + r5[4].unit), t5;
    }
    function patchCanonicalUnit(t5) {
      return -1 === t5 ? -1 : e4.isFunctionNode(t5) ? t5 : n6.isTokenDimension(t5.value) ? (t5.value = toCanonicalUnit(t5.value), t5) : t5;
    }
    function patchCalcResult(e5, n7) {
      let t5 = e5;
      return n7?.toCanonicalUnits && (t5 = patchCanonicalUnit(t5)), t5 = patchPrecision(t5, n7?.precision), t5 = patchMinusZero(t5), n7?.censorIntoStandardRepresentableValues || (t5 = patchNaN(t5), t5 = patchInfinity(t5)), t5;
    }
    function tokenizeGlobals(e5) {
      const t5 = /* @__PURE__ */ new Map();
      if (!e5) return t5;
      for (const [o6, r5] of e5) if (n6.isToken(r5)) t5.set(o6, r5);
      else if ("string" != typeof r5) ;
      else {
        const e6 = n6.tokenizer({ css: r5 }), i6 = e6.nextToken();
        if (e6.nextToken(), !e6.endOfFile()) continue;
        if (!n6.isTokenNumeric(i6)) continue;
        t5.set(o6, i6);
      }
      return t5;
    }
    function calcFromComponentValues(n7, t5) {
      const o6 = tokenizeGlobals(t5?.globals);
      return e4.replaceComponentValues(n7, ((n8) => {
        if (!e4.isFunctionNode(n8)) return;
        const r5 = b3.get(n8.getName().toLowerCase());
        if (!r5) return;
        const i6 = patchCalcResult(solve(r5(n8, o6, t5 ?? {})), t5);
        return -1 !== i6 ? i6 : void 0;
      }));
    }
    var h4 = new Set(b3.keys());
    exports.calc = function calc(t5, o6) {
      return calcFromComponentValues(e4.parseCommaSeparatedListOfComponentValues(n6.tokenize({ css: t5 }), {}), o6).map(((e5) => e5.map(((e6) => n6.stringify(...e6.tokens()))).join(""))).join(",");
    }, exports.calcFromComponentValues = calcFromComponentValues, exports.mathFunctionNames = h4;
  }
});

// ../../node_modules/.pnpm/lru-cache@10.4.3/node_modules/lru-cache/dist/commonjs/index.js
var require_commonjs3 = __commonJS({
  "../../node_modules/.pnpm/lru-cache@10.4.3/node_modules/lru-cache/dist/commonjs/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.LRUCache = void 0;
    var perf = typeof performance === "object" && performance && typeof performance.now === "function" ? performance : Date;
    var warned = /* @__PURE__ */ new Set();
    var PROCESS = typeof process === "object" && !!process ? process : {};
    var emitWarning = (msg, type, code, fn) => {
      typeof PROCESS.emitWarning === "function" ? PROCESS.emitWarning(msg, type, code, fn) : console.error(`[${code}] ${type}: ${msg}`);
    };
    var AC = globalThis.AbortController;
    var AS = globalThis.AbortSignal;
    if (typeof AC === "undefined") {
      AS = class AbortSignal {
        onabort;
        _onabort = [];
        reason;
        aborted = false;
        addEventListener(_, fn) {
          this._onabort.push(fn);
        }
      };
      AC = class AbortController {
        constructor() {
          warnACPolyfill();
        }
        signal = new AS();
        abort(reason) {
          if (this.signal.aborted)
            return;
          this.signal.reason = reason;
          this.signal.aborted = true;
          for (const fn of this.signal._onabort) {
            fn(reason);
          }
          this.signal.onabort?.(reason);
        }
      };
      let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== "1";
      const warnACPolyfill = () => {
        if (!printACPolyfillWarning)
          return;
        printACPolyfillWarning = false;
        emitWarning("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.", "NO_ABORT_CONTROLLER", "ENOTSUP", warnACPolyfill);
      };
    }
    var shouldWarn = (code) => !warned.has(code);
    var TYPE = Symbol("type");
    var isPosInt = (n6) => n6 && n6 === Math.floor(n6) && n6 > 0 && isFinite(n6);
    var getUintArray = (max3) => !isPosInt(max3) ? null : max3 <= Math.pow(2, 8) ? Uint8Array : max3 <= Math.pow(2, 16) ? Uint16Array : max3 <= Math.pow(2, 32) ? Uint32Array : max3 <= Number.MAX_SAFE_INTEGER ? ZeroArray : null;
    var ZeroArray = class extends Array {
      constructor(size) {
        super(size);
        this.fill(0);
      }
    };
    var Stack = class _Stack {
      heap;
      length;
      // private constructor
      static #constructing = false;
      static create(max3) {
        const HeapCls = getUintArray(max3);
        if (!HeapCls)
          return [];
        _Stack.#constructing = true;
        const s4 = new _Stack(max3, HeapCls);
        _Stack.#constructing = false;
        return s4;
      }
      constructor(max3, HeapCls) {
        if (!_Stack.#constructing) {
          throw new TypeError("instantiate Stack using Stack.create(n)");
        }
        this.heap = new HeapCls(max3);
        this.length = 0;
      }
      push(n6) {
        this.heap[this.length++] = n6;
      }
      pop() {
        return this.heap[--this.length];
      }
    };
    var LRUCache = class _LRUCache {
      // options that cannot be changed without disaster
      #max;
      #maxSize;
      #dispose;
      #disposeAfter;
      #fetchMethod;
      #memoMethod;
      /**
       * {@link LRUCache.OptionsBase.ttl}
       */
      ttl;
      /**
       * {@link LRUCache.OptionsBase.ttlResolution}
       */
      ttlResolution;
      /**
       * {@link LRUCache.OptionsBase.ttlAutopurge}
       */
      ttlAutopurge;
      /**
       * {@link LRUCache.OptionsBase.updateAgeOnGet}
       */
      updateAgeOnGet;
      /**
       * {@link LRUCache.OptionsBase.updateAgeOnHas}
       */
      updateAgeOnHas;
      /**
       * {@link LRUCache.OptionsBase.allowStale}
       */
      allowStale;
      /**
       * {@link LRUCache.OptionsBase.noDisposeOnSet}
       */
      noDisposeOnSet;
      /**
       * {@link LRUCache.OptionsBase.noUpdateTTL}
       */
      noUpdateTTL;
      /**
       * {@link LRUCache.OptionsBase.maxEntrySize}
       */
      maxEntrySize;
      /**
       * {@link LRUCache.OptionsBase.sizeCalculation}
       */
      sizeCalculation;
      /**
       * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}
       */
      noDeleteOnFetchRejection;
      /**
       * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}
       */
      noDeleteOnStaleGet;
      /**
       * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}
       */
      allowStaleOnFetchAbort;
      /**
       * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}
       */
      allowStaleOnFetchRejection;
      /**
       * {@link LRUCache.OptionsBase.ignoreFetchAbort}
       */
      ignoreFetchAbort;
      // computed properties
      #size;
      #calculatedSize;
      #keyMap;
      #keyList;
      #valList;
      #next;
      #prev;
      #head;
      #tail;
      #free;
      #disposed;
      #sizes;
      #starts;
      #ttls;
      #hasDispose;
      #hasFetchMethod;
      #hasDisposeAfter;
      /**
       * Do not call this method unless you need to inspect the
       * inner workings of the cache.  If anything returned by this
       * object is modified in any way, strange breakage may occur.
       *
       * These fields are private for a reason!
       *
       * @internal
       */
      static unsafeExposeInternals(c6) {
        return {
          // properties
          starts: c6.#starts,
          ttls: c6.#ttls,
          sizes: c6.#sizes,
          keyMap: c6.#keyMap,
          keyList: c6.#keyList,
          valList: c6.#valList,
          next: c6.#next,
          prev: c6.#prev,
          get head() {
            return c6.#head;
          },
          get tail() {
            return c6.#tail;
          },
          free: c6.#free,
          // methods
          isBackgroundFetch: (p3) => c6.#isBackgroundFetch(p3),
          backgroundFetch: (k3, index2, options, context) => c6.#backgroundFetch(k3, index2, options, context),
          moveToTail: (index2) => c6.#moveToTail(index2),
          indexes: (options) => c6.#indexes(options),
          rindexes: (options) => c6.#rindexes(options),
          isStale: (index2) => c6.#isStale(index2)
        };
      }
      // Protected read-only members
      /**
       * {@link LRUCache.OptionsBase.max} (read-only)
       */
      get max() {
        return this.#max;
      }
      /**
       * {@link LRUCache.OptionsBase.maxSize} (read-only)
       */
      get maxSize() {
        return this.#maxSize;
      }
      /**
       * The total computed size of items in the cache (read-only)
       */
      get calculatedSize() {
        return this.#calculatedSize;
      }
      /**
       * The number of items stored in the cache (read-only)
       */
      get size() {
        return this.#size;
      }
      /**
       * {@link LRUCache.OptionsBase.fetchMethod} (read-only)
       */
      get fetchMethod() {
        return this.#fetchMethod;
      }
      get memoMethod() {
        return this.#memoMethod;
      }
      /**
       * {@link LRUCache.OptionsBase.dispose} (read-only)
       */
      get dispose() {
        return this.#dispose;
      }
      /**
       * {@link LRUCache.OptionsBase.disposeAfter} (read-only)
       */
      get disposeAfter() {
        return this.#disposeAfter;
      }
      constructor(options) {
        const { max: max3 = 0, ttl: ttl2, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, memoMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort } = options;
        if (max3 !== 0 && !isPosInt(max3)) {
          throw new TypeError("max option must be a nonnegative integer");
        }
        const UintArray = max3 ? getUintArray(max3) : Array;
        if (!UintArray) {
          throw new Error("invalid max value: " + max3);
        }
        this.#max = max3;
        this.#maxSize = maxSize;
        this.maxEntrySize = maxEntrySize || this.#maxSize;
        this.sizeCalculation = sizeCalculation;
        if (this.sizeCalculation) {
          if (!this.#maxSize && !this.maxEntrySize) {
            throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");
          }
          if (typeof this.sizeCalculation !== "function") {
            throw new TypeError("sizeCalculation set to non-function");
          }
        }
        if (memoMethod !== void 0 && typeof memoMethod !== "function") {
          throw new TypeError("memoMethod must be a function if defined");
        }
        this.#memoMethod = memoMethod;
        if (fetchMethod !== void 0 && typeof fetchMethod !== "function") {
          throw new TypeError("fetchMethod must be a function if specified");
        }
        this.#fetchMethod = fetchMethod;
        this.#hasFetchMethod = !!fetchMethod;
        this.#keyMap = /* @__PURE__ */ new Map();
        this.#keyList = new Array(max3).fill(void 0);
        this.#valList = new Array(max3).fill(void 0);
        this.#next = new UintArray(max3);
        this.#prev = new UintArray(max3);
        this.#head = 0;
        this.#tail = 0;
        this.#free = Stack.create(max3);
        this.#size = 0;
        this.#calculatedSize = 0;
        if (typeof dispose === "function") {
          this.#dispose = dispose;
        }
        if (typeof disposeAfter === "function") {
          this.#disposeAfter = disposeAfter;
          this.#disposed = [];
        } else {
          this.#disposeAfter = void 0;
          this.#disposed = void 0;
        }
        this.#hasDispose = !!this.#dispose;
        this.#hasDisposeAfter = !!this.#disposeAfter;
        this.noDisposeOnSet = !!noDisposeOnSet;
        this.noUpdateTTL = !!noUpdateTTL;
        this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;
        this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;
        this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;
        this.ignoreFetchAbort = !!ignoreFetchAbort;
        if (this.maxEntrySize !== 0) {
          if (this.#maxSize !== 0) {
            if (!isPosInt(this.#maxSize)) {
              throw new TypeError("maxSize must be a positive integer if specified");
            }
          }
          if (!isPosInt(this.maxEntrySize)) {
            throw new TypeError("maxEntrySize must be a positive integer if specified");
          }
          this.#initializeSizeTracking();
        }
        this.allowStale = !!allowStale;
        this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;
        this.updateAgeOnGet = !!updateAgeOnGet;
        this.updateAgeOnHas = !!updateAgeOnHas;
        this.ttlResolution = isPosInt(ttlResolution) || ttlResolution === 0 ? ttlResolution : 1;
        this.ttlAutopurge = !!ttlAutopurge;
        this.ttl = ttl2 || 0;
        if (this.ttl) {
          if (!isPosInt(this.ttl)) {
            throw new TypeError("ttl must be a positive integer if specified");
          }
          this.#initializeTTLTracking();
        }
        if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {
          throw new TypeError("At least one of max, maxSize, or ttl is required");
        }
        if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {
          const code = "LRU_CACHE_UNBOUNDED";
          if (shouldWarn(code)) {
            warned.add(code);
            const msg = "TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.";
            emitWarning(msg, "UnboundedCacheWarning", code, _LRUCache);
          }
        }
      }
      /**
       * Return the number of ms left in the item's TTL. If item is not in cache,
       * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.
       */
      getRemainingTTL(key) {
        return this.#keyMap.has(key) ? Infinity : 0;
      }
      #initializeTTLTracking() {
        const ttls = new ZeroArray(this.#max);
        const starts = new ZeroArray(this.#max);
        this.#ttls = ttls;
        this.#starts = starts;
        this.#setItemTTL = (index2, ttl2, start2 = perf.now()) => {
          starts[index2] = ttl2 !== 0 ? start2 : 0;
          ttls[index2] = ttl2;
          if (ttl2 !== 0 && this.ttlAutopurge) {
            const t4 = setTimeout(() => {
              if (this.#isStale(index2)) {
                this.#delete(this.#keyList[index2], "expire");
              }
            }, ttl2 + 1);
            if (t4.unref) {
              t4.unref();
            }
          }
        };
        this.#updateItemAge = (index2) => {
          starts[index2] = ttls[index2] !== 0 ? perf.now() : 0;
        };
        this.#statusTTL = (status, index2) => {
          if (ttls[index2]) {
            const ttl2 = ttls[index2];
            const start2 = starts[index2];
            if (!ttl2 || !start2)
              return;
            status.ttl = ttl2;
            status.start = start2;
            status.now = cachedNow || getNow();
            const age = status.now - start2;
            status.remainingTTL = ttl2 - age;
          }
        };
        let cachedNow = 0;
        const getNow = () => {
          const n6 = perf.now();
          if (this.ttlResolution > 0) {
            cachedNow = n6;
            const t4 = setTimeout(() => cachedNow = 0, this.ttlResolution);
            if (t4.unref) {
              t4.unref();
            }
          }
          return n6;
        };
        this.getRemainingTTL = (key) => {
          const index2 = this.#keyMap.get(key);
          if (index2 === void 0) {
            return 0;
          }
          const ttl2 = ttls[index2];
          const start2 = starts[index2];
          if (!ttl2 || !start2) {
            return Infinity;
          }
          const age = (cachedNow || getNow()) - start2;
          return ttl2 - age;
        };
        this.#isStale = (index2) => {
          const s4 = starts[index2];
          const t4 = ttls[index2];
          return !!t4 && !!s4 && (cachedNow || getNow()) - s4 > t4;
        };
      }
      // conditionally set private methods related to TTL
      #updateItemAge = () => {
      };
      #statusTTL = () => {
      };
      #setItemTTL = () => {
      };
      /* c8 ignore stop */
      #isStale = () => false;
      #initializeSizeTracking() {
        const sizes = new ZeroArray(this.#max);
        this.#calculatedSize = 0;
        this.#sizes = sizes;
        this.#removeItemSize = (index2) => {
          this.#calculatedSize -= sizes[index2];
          sizes[index2] = 0;
        };
        this.#requireSize = (k3, v3, size, sizeCalculation) => {
          if (this.#isBackgroundFetch(v3)) {
            return 0;
          }
          if (!isPosInt(size)) {
            if (sizeCalculation) {
              if (typeof sizeCalculation !== "function") {
                throw new TypeError("sizeCalculation must be a function");
              }
              size = sizeCalculation(v3, k3);
              if (!isPosInt(size)) {
                throw new TypeError("sizeCalculation return invalid (expect positive integer)");
              }
            } else {
              throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");
            }
          }
          return size;
        };
        this.#addItemSize = (index2, size, status) => {
          sizes[index2] = size;
          if (this.#maxSize) {
            const maxSize = this.#maxSize - sizes[index2];
            while (this.#calculatedSize > maxSize) {
              this.#evict(true);
            }
          }
          this.#calculatedSize += sizes[index2];
          if (status) {
            status.entrySize = size;
            status.totalCalculatedSize = this.#calculatedSize;
          }
        };
      }
      #removeItemSize = (_i) => {
      };
      #addItemSize = (_i, _s, _st) => {
      };
      #requireSize = (_k, _v, size, sizeCalculation) => {
        if (size || sizeCalculation) {
          throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");
        }
        return 0;
      };
      *#indexes({ allowStale = this.allowStale } = {}) {
        if (this.#size) {
          for (let i5 = this.#tail; true; ) {
            if (!this.#isValidIndex(i5)) {
              break;
            }
            if (allowStale || !this.#isStale(i5)) {
              yield i5;
            }
            if (i5 === this.#head) {
              break;
            } else {
              i5 = this.#prev[i5];
            }
          }
        }
      }
      *#rindexes({ allowStale = this.allowStale } = {}) {
        if (this.#size) {
          for (let i5 = this.#head; true; ) {
            if (!this.#isValidIndex(i5)) {
              break;
            }
            if (allowStale || !this.#isStale(i5)) {
              yield i5;
            }
            if (i5 === this.#tail) {
              break;
            } else {
              i5 = this.#next[i5];
            }
          }
        }
      }
      #isValidIndex(index2) {
        return index2 !== void 0 && this.#keyMap.get(this.#keyList[index2]) === index2;
      }
      /**
       * Return a generator yielding `[key, value]` pairs,
       * in order from most recently used to least recently used.
       */
      *entries() {
        for (const i5 of this.#indexes()) {
          if (this.#valList[i5] !== void 0 && this.#keyList[i5] !== void 0 && !this.#isBackgroundFetch(this.#valList[i5])) {
            yield [this.#keyList[i5], this.#valList[i5]];
          }
        }
      }
      /**
       * Inverse order version of {@link LRUCache.entries}
       *
       * Return a generator yielding `[key, value]` pairs,
       * in order from least recently used to most recently used.
       */
      *rentries() {
        for (const i5 of this.#rindexes()) {
          if (this.#valList[i5] !== void 0 && this.#keyList[i5] !== void 0 && !this.#isBackgroundFetch(this.#valList[i5])) {
            yield [this.#keyList[i5], this.#valList[i5]];
          }
        }
      }
      /**
       * Return a generator yielding the keys in the cache,
       * in order from most recently used to least recently used.
       */
      *keys() {
        for (const i5 of this.#indexes()) {
          const k3 = this.#keyList[i5];
          if (k3 !== void 0 && !this.#isBackgroundFetch(this.#valList[i5])) {
            yield k3;
          }
        }
      }
      /**
       * Inverse order version of {@link LRUCache.keys}
       *
       * Return a generator yielding the keys in the cache,
       * in order from least recently used to most recently used.
       */
      *rkeys() {
        for (const i5 of this.#rindexes()) {
          const k3 = this.#keyList[i5];
          if (k3 !== void 0 && !this.#isBackgroundFetch(this.#valList[i5])) {
            yield k3;
          }
        }
      }
      /**
       * Return a generator yielding the values in the cache,
       * in order from most recently used to least recently used.
       */
      *values() {
        for (const i5 of this.#indexes()) {
          const v3 = this.#valList[i5];
          if (v3 !== void 0 && !this.#isBackgroundFetch(this.#valList[i5])) {
            yield this.#valList[i5];
          }
        }
      }
      /**
       * Inverse order version of {@link LRUCache.values}
       *
       * Return a generator yielding the values in the cache,
       * in order from least recently used to most recently used.
       */
      *rvalues() {
        for (const i5 of this.#rindexes()) {
          const v3 = this.#valList[i5];
          if (v3 !== void 0 && !this.#isBackgroundFetch(this.#valList[i5])) {
            yield this.#valList[i5];
          }
        }
      }
      /**
       * Iterating over the cache itself yields the same results as
       * {@link LRUCache.entries}
       */
      [Symbol.iterator]() {
        return this.entries();
      }
      /**
       * A String value that is used in the creation of the default string
       * description of an object. Called by the built-in method
       * `Object.prototype.toString`.
       */
      [Symbol.toStringTag] = "LRUCache";
      /**
       * Find a value for which the supplied fn method returns a truthy value,
       * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.
       */
      find(fn, getOptions = {}) {
        for (const i5 of this.#indexes()) {
          const v3 = this.#valList[i5];
          const value2 = this.#isBackgroundFetch(v3) ? v3.__staleWhileFetching : v3;
          if (value2 === void 0)
            continue;
          if (fn(value2, this.#keyList[i5], this)) {
            return this.get(this.#keyList[i5], getOptions);
          }
        }
      }
      /**
       * Call the supplied function on each item in the cache, in order from most
       * recently used to least recently used.
       *
       * `fn` is called as `fn(value, key, cache)`.
       *
       * If `thisp` is provided, function will be called in the `this`-context of
       * the provided object, or the cache if no `thisp` object is provided.
       *
       * Does not update age or recenty of use, or iterate over stale values.
       */
      forEach(fn, thisp = this) {
        for (const i5 of this.#indexes()) {
          const v3 = this.#valList[i5];
          const value2 = this.#isBackgroundFetch(v3) ? v3.__staleWhileFetching : v3;
          if (value2 === void 0)
            continue;
          fn.call(thisp, value2, this.#keyList[i5], this);
        }
      }
      /**
       * The same as {@link LRUCache.forEach} but items are iterated over in
       * reverse order.  (ie, less recently used items are iterated over first.)
       */
      rforEach(fn, thisp = this) {
        for (const i5 of this.#rindexes()) {
          const v3 = this.#valList[i5];
          const value2 = this.#isBackgroundFetch(v3) ? v3.__staleWhileFetching : v3;
          if (value2 === void 0)
            continue;
          fn.call(thisp, value2, this.#keyList[i5], this);
        }
      }
      /**
       * Delete any stale entries. Returns true if anything was removed,
       * false otherwise.
       */
      purgeStale() {
        let deleted = false;
        for (const i5 of this.#rindexes({ allowStale: true })) {
          if (this.#isStale(i5)) {
            this.#delete(this.#keyList[i5], "expire");
            deleted = true;
          }
        }
        return deleted;
      }
      /**
       * Get the extended info about a given entry, to get its value, size, and
       * TTL info simultaneously. Returns `undefined` if the key is not present.
       *
       * Unlike {@link LRUCache#dump}, which is designed to be portable and survive
       * serialization, the `start` value is always the current timestamp, and the
       * `ttl` is a calculated remaining time to live (negative if expired).
       *
       * Always returns stale values, if their info is found in the cache, so be
       * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})
       * if relevant.
       */
      info(key) {
        const i5 = this.#keyMap.get(key);
        if (i5 === void 0)
          return void 0;
        const v3 = this.#valList[i5];
        const value2 = this.#isBackgroundFetch(v3) ? v3.__staleWhileFetching : v3;
        if (value2 === void 0)
          return void 0;
        const entry = { value: value2 };
        if (this.#ttls && this.#starts) {
          const ttl2 = this.#ttls[i5];
          const start2 = this.#starts[i5];
          if (ttl2 && start2) {
            const remain = ttl2 - (perf.now() - start2);
            entry.ttl = remain;
            entry.start = Date.now();
          }
        }
        if (this.#sizes) {
          entry.size = this.#sizes[i5];
        }
        return entry;
      }
      /**
       * Return an array of [key, {@link LRUCache.Entry}] tuples which can be
       * passed to {@link LRLUCache#load}.
       *
       * The `start` fields are calculated relative to a portable `Date.now()`
       * timestamp, even if `performance.now()` is available.
       *
       * Stale entries are always included in the `dump`, even if
       * {@link LRUCache.OptionsBase.allowStale} is false.
       *
       * Note: this returns an actual array, not a generator, so it can be more
       * easily passed around.
       */
      dump() {
        const arr = [];
        for (const i5 of this.#indexes({ allowStale: true })) {
          const key = this.#keyList[i5];
          const v3 = this.#valList[i5];
          const value2 = this.#isBackgroundFetch(v3) ? v3.__staleWhileFetching : v3;
          if (value2 === void 0 || key === void 0)
            continue;
          const entry = { value: value2 };
          if (this.#ttls && this.#starts) {
            entry.ttl = this.#ttls[i5];
            const age = perf.now() - this.#starts[i5];
            entry.start = Math.floor(Date.now() - age);
          }
          if (this.#sizes) {
            entry.size = this.#sizes[i5];
          }
          arr.unshift([key, entry]);
        }
        return arr;
      }
      /**
       * Reset the cache and load in the items in entries in the order listed.
       *
       * The shape of the resulting cache may be different if the same options are
       * not used in both caches.
       *
       * The `start` fields are assumed to be calculated relative to a portable
       * `Date.now()` timestamp, even if `performance.now()` is available.
       */
      load(arr) {
        this.clear();
        for (const [key, entry] of arr) {
          if (entry.start) {
            const age = Date.now() - entry.start;
            entry.start = perf.now() - age;
          }
          this.set(key, entry.value, entry);
        }
      }
      /**
       * Add a value to the cache.
       *
       * Note: if `undefined` is specified as a value, this is an alias for
       * {@link LRUCache#delete}
       *
       * Fields on the {@link LRUCache.SetOptions} options param will override
       * their corresponding values in the constructor options for the scope
       * of this single `set()` operation.
       *
       * If `start` is provided, then that will set the effective start
       * time for the TTL calculation. Note that this must be a previous
       * value of `performance.now()` if supported, or a previous value of
       * `Date.now()` if not.
       *
       * Options object may also include `size`, which will prevent
       * calling the `sizeCalculation` function and just use the specified
       * number if it is a positive integer, and `noDisposeOnSet` which
       * will prevent calling a `dispose` function in the case of
       * overwrites.
       *
       * If the `size` (or return value of `sizeCalculation`) for a given
       * entry is greater than `maxEntrySize`, then the item will not be
       * added to the cache.
       *
       * Will update the recency of the entry.
       *
       * If the value is `undefined`, then this is an alias for
       * `cache.delete(key)`. `undefined` is never stored in the cache.
       */
      set(k3, v3, setOptions = {}) {
        if (v3 === void 0) {
          this.delete(k3);
          return this;
        }
        const { ttl: ttl2 = this.ttl, start: start2, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status } = setOptions;
        let { noUpdateTTL = this.noUpdateTTL } = setOptions;
        const size = this.#requireSize(k3, v3, setOptions.size || 0, sizeCalculation);
        if (this.maxEntrySize && size > this.maxEntrySize) {
          if (status) {
            status.set = "miss";
            status.maxEntrySizeExceeded = true;
          }
          this.#delete(k3, "set");
          return this;
        }
        let index2 = this.#size === 0 ? void 0 : this.#keyMap.get(k3);
        if (index2 === void 0) {
          index2 = this.#size === 0 ? this.#tail : this.#free.length !== 0 ? this.#free.pop() : this.#size === this.#max ? this.#evict(false) : this.#size;
          this.#keyList[index2] = k3;
          this.#valList[index2] = v3;
          this.#keyMap.set(k3, index2);
          this.#next[this.#tail] = index2;
          this.#prev[index2] = this.#tail;
          this.#tail = index2;
          this.#size++;
          this.#addItemSize(index2, size, status);
          if (status)
            status.set = "add";
          noUpdateTTL = false;
        } else {
          this.#moveToTail(index2);
          const oldVal = this.#valList[index2];
          if (v3 !== oldVal) {
            if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {
              oldVal.__abortController.abort(new Error("replaced"));
              const { __staleWhileFetching: s4 } = oldVal;
              if (s4 !== void 0 && !noDisposeOnSet) {
                if (this.#hasDispose) {
                  this.#dispose?.(s4, k3, "set");
                }
                if (this.#hasDisposeAfter) {
                  this.#disposed?.push([s4, k3, "set"]);
                }
              }
            } else if (!noDisposeOnSet) {
              if (this.#hasDispose) {
                this.#dispose?.(oldVal, k3, "set");
              }
              if (this.#hasDisposeAfter) {
                this.#disposed?.push([oldVal, k3, "set"]);
              }
            }
            this.#removeItemSize(index2);
            this.#addItemSize(index2, size, status);
            this.#valList[index2] = v3;
            if (status) {
              status.set = "replace";
              const oldValue = oldVal && this.#isBackgroundFetch(oldVal) ? oldVal.__staleWhileFetching : oldVal;
              if (oldValue !== void 0)
                status.oldValue = oldValue;
            }
          } else if (status) {
            status.set = "update";
          }
        }
        if (ttl2 !== 0 && !this.#ttls) {
          this.#initializeTTLTracking();
        }
        if (this.#ttls) {
          if (!noUpdateTTL) {
            this.#setItemTTL(index2, ttl2, start2);
          }
          if (status)
            this.#statusTTL(status, index2);
        }
        if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {
          const dt = this.#disposed;
          let task;
          while (task = dt?.shift()) {
            this.#disposeAfter?.(...task);
          }
        }
        return this;
      }
      /**
       * Evict the least recently used item, returning its value or
       * `undefined` if cache is empty.
       */
      pop() {
        try {
          while (this.#size) {
            const val = this.#valList[this.#head];
            this.#evict(true);
            if (this.#isBackgroundFetch(val)) {
              if (val.__staleWhileFetching) {
                return val.__staleWhileFetching;
              }
            } else if (val !== void 0) {
              return val;
            }
          }
        } finally {
          if (this.#hasDisposeAfter && this.#disposed) {
            const dt = this.#disposed;
            let task;
            while (task = dt?.shift()) {
              this.#disposeAfter?.(...task);
            }
          }
        }
      }
      #evict(free) {
        const head = this.#head;
        const k3 = this.#keyList[head];
        const v3 = this.#valList[head];
        if (this.#hasFetchMethod && this.#isBackgroundFetch(v3)) {
          v3.__abortController.abort(new Error("evicted"));
        } else if (this.#hasDispose || this.#hasDisposeAfter) {
          if (this.#hasDispose) {
            this.#dispose?.(v3, k3, "evict");
          }
          if (this.#hasDisposeAfter) {
            this.#disposed?.push([v3, k3, "evict"]);
          }
        }
        this.#removeItemSize(head);
        if (free) {
          this.#keyList[head] = void 0;
          this.#valList[head] = void 0;
          this.#free.push(head);
        }
        if (this.#size === 1) {
          this.#head = this.#tail = 0;
          this.#free.length = 0;
        } else {
          this.#head = this.#next[head];
        }
        this.#keyMap.delete(k3);
        this.#size--;
        return head;
      }
      /**
       * Check if a key is in the cache, without updating the recency of use.
       * Will return false if the item is stale, even though it is technically
       * in the cache.
       *
       * Check if a key is in the cache, without updating the recency of
       * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set
       * to `true` in either the options or the constructor.
       *
       * Will return `false` if the item is stale, even though it is technically in
       * the cache. The difference can be determined (if it matters) by using a
       * `status` argument, and inspecting the `has` field.
       *
       * Will not update item age unless
       * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.
       */
      has(k3, hasOptions = {}) {
        const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;
        const index2 = this.#keyMap.get(k3);
        if (index2 !== void 0) {
          const v3 = this.#valList[index2];
          if (this.#isBackgroundFetch(v3) && v3.__staleWhileFetching === void 0) {
            return false;
          }
          if (!this.#isStale(index2)) {
            if (updateAgeOnHas) {
              this.#updateItemAge(index2);
            }
            if (status) {
              status.has = "hit";
              this.#statusTTL(status, index2);
            }
            return true;
          } else if (status) {
            status.has = "stale";
            this.#statusTTL(status, index2);
          }
        } else if (status) {
          status.has = "miss";
        }
        return false;
      }
      /**
       * Like {@link LRUCache#get} but doesn't update recency or delete stale
       * items.
       *
       * Returns `undefined` if the item is stale, unless
       * {@link LRUCache.OptionsBase.allowStale} is set.
       */
      peek(k3, peekOptions = {}) {
        const { allowStale = this.allowStale } = peekOptions;
        const index2 = this.#keyMap.get(k3);
        if (index2 === void 0 || !allowStale && this.#isStale(index2)) {
          return;
        }
        const v3 = this.#valList[index2];
        return this.#isBackgroundFetch(v3) ? v3.__staleWhileFetching : v3;
      }
      #backgroundFetch(k3, index2, options, context) {
        const v3 = index2 === void 0 ? void 0 : this.#valList[index2];
        if (this.#isBackgroundFetch(v3)) {
          return v3;
        }
        const ac = new AC();
        const { signal } = options;
        signal?.addEventListener("abort", () => ac.abort(signal.reason), {
          signal: ac.signal
        });
        const fetchOpts = {
          signal: ac.signal,
          options,
          context
        };
        const cb = (v4, updateCache = false) => {
          const { aborted } = ac.signal;
          const ignoreAbort = options.ignoreFetchAbort && v4 !== void 0;
          if (options.status) {
            if (aborted && !updateCache) {
              options.status.fetchAborted = true;
              options.status.fetchError = ac.signal.reason;
              if (ignoreAbort)
                options.status.fetchAbortIgnored = true;
            } else {
              options.status.fetchResolved = true;
            }
          }
          if (aborted && !ignoreAbort && !updateCache) {
            return fetchFail(ac.signal.reason);
          }
          const bf2 = p3;
          if (this.#valList[index2] === p3) {
            if (v4 === void 0) {
              if (bf2.__staleWhileFetching) {
                this.#valList[index2] = bf2.__staleWhileFetching;
              } else {
                this.#delete(k3, "fetch");
              }
            } else {
              if (options.status)
                options.status.fetchUpdated = true;
              this.set(k3, v4, fetchOpts.options);
            }
          }
          return v4;
        };
        const eb = (er) => {
          if (options.status) {
            options.status.fetchRejected = true;
            options.status.fetchError = er;
          }
          return fetchFail(er);
        };
        const fetchFail = (er) => {
          const { aborted } = ac.signal;
          const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;
          const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;
          const noDelete = allowStale || options.noDeleteOnFetchRejection;
          const bf2 = p3;
          if (this.#valList[index2] === p3) {
            const del = !noDelete || bf2.__staleWhileFetching === void 0;
            if (del) {
              this.#delete(k3, "fetch");
            } else if (!allowStaleAborted) {
              this.#valList[index2] = bf2.__staleWhileFetching;
            }
          }
          if (allowStale) {
            if (options.status && bf2.__staleWhileFetching !== void 0) {
              options.status.returnedStale = true;
            }
            return bf2.__staleWhileFetching;
          } else if (bf2.__returned === bf2) {
            throw er;
          }
        };
        const pcall = (res, rej) => {
          const fmp = this.#fetchMethod?.(k3, v3, fetchOpts);
          if (fmp && fmp instanceof Promise) {
            fmp.then((v4) => res(v4 === void 0 ? void 0 : v4), rej);
          }
          ac.signal.addEventListener("abort", () => {
            if (!options.ignoreFetchAbort || options.allowStaleOnFetchAbort) {
              res(void 0);
              if (options.allowStaleOnFetchAbort) {
                res = (v4) => cb(v4, true);
              }
            }
          });
        };
        if (options.status)
          options.status.fetchDispatched = true;
        const p3 = new Promise(pcall).then(cb, eb);
        const bf = Object.assign(p3, {
          __abortController: ac,
          __staleWhileFetching: v3,
          __returned: void 0
        });
        if (index2 === void 0) {
          this.set(k3, bf, { ...fetchOpts.options, status: void 0 });
          index2 = this.#keyMap.get(k3);
        } else {
          this.#valList[index2] = bf;
        }
        return bf;
      }
      #isBackgroundFetch(p3) {
        if (!this.#hasFetchMethod)
          return false;
        const b3 = p3;
        return !!b3 && b3 instanceof Promise && b3.hasOwnProperty("__staleWhileFetching") && b3.__abortController instanceof AC;
      }
      async fetch(k3, fetchOptions = {}) {
        const {
          // get options
          allowStale = this.allowStale,
          updateAgeOnGet = this.updateAgeOnGet,
          noDeleteOnStaleGet = this.noDeleteOnStaleGet,
          // set options
          ttl: ttl2 = this.ttl,
          noDisposeOnSet = this.noDisposeOnSet,
          size = 0,
          sizeCalculation = this.sizeCalculation,
          noUpdateTTL = this.noUpdateTTL,
          // fetch exclusive options
          noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,
          allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,
          ignoreFetchAbort = this.ignoreFetchAbort,
          allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,
          context,
          forceRefresh = false,
          status,
          signal
        } = fetchOptions;
        if (!this.#hasFetchMethod) {
          if (status)
            status.fetch = "get";
          return this.get(k3, {
            allowStale,
            updateAgeOnGet,
            noDeleteOnStaleGet,
            status
          });
        }
        const options = {
          allowStale,
          updateAgeOnGet,
          noDeleteOnStaleGet,
          ttl: ttl2,
          noDisposeOnSet,
          size,
          sizeCalculation,
          noUpdateTTL,
          noDeleteOnFetchRejection,
          allowStaleOnFetchRejection,
          allowStaleOnFetchAbort,
          ignoreFetchAbort,
          status,
          signal
        };
        let index2 = this.#keyMap.get(k3);
        if (index2 === void 0) {
          if (status)
            status.fetch = "miss";
          const p3 = this.#backgroundFetch(k3, index2, options, context);
          return p3.__returned = p3;
        } else {
          const v3 = this.#valList[index2];
          if (this.#isBackgroundFetch(v3)) {
            const stale = allowStale && v3.__staleWhileFetching !== void 0;
            if (status) {
              status.fetch = "inflight";
              if (stale)
                status.returnedStale = true;
            }
            return stale ? v3.__staleWhileFetching : v3.__returned = v3;
          }
          const isStale = this.#isStale(index2);
          if (!forceRefresh && !isStale) {
            if (status)
              status.fetch = "hit";
            this.#moveToTail(index2);
            if (updateAgeOnGet) {
              this.#updateItemAge(index2);
            }
            if (status)
              this.#statusTTL(status, index2);
            return v3;
          }
          const p3 = this.#backgroundFetch(k3, index2, options, context);
          const hasStale = p3.__staleWhileFetching !== void 0;
          const staleVal = hasStale && allowStale;
          if (status) {
            status.fetch = isStale ? "stale" : "refresh";
            if (staleVal && isStale)
              status.returnedStale = true;
          }
          return staleVal ? p3.__staleWhileFetching : p3.__returned = p3;
        }
      }
      async forceFetch(k3, fetchOptions = {}) {
        const v3 = await this.fetch(k3, fetchOptions);
        if (v3 === void 0)
          throw new Error("fetch() returned undefined");
        return v3;
      }
      memo(k3, memoOptions = {}) {
        const memoMethod = this.#memoMethod;
        if (!memoMethod) {
          throw new Error("no memoMethod provided to constructor");
        }
        const { context, forceRefresh, ...options } = memoOptions;
        const v3 = this.get(k3, options);
        if (!forceRefresh && v3 !== void 0)
          return v3;
        const vv = memoMethod(k3, v3, {
          options,
          context
        });
        this.set(k3, vv, options);
        return vv;
      }
      /**
       * Return a value from the cache. Will update the recency of the cache
       * entry found.
       *
       * If the key is not found, get() will return `undefined`.
       */
      get(k3, getOptions = {}) {
        const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status } = getOptions;
        const index2 = this.#keyMap.get(k3);
        if (index2 !== void 0) {
          const value2 = this.#valList[index2];
          const fetching = this.#isBackgroundFetch(value2);
          if (status)
            this.#statusTTL(status, index2);
          if (this.#isStale(index2)) {
            if (status)
              status.get = "stale";
            if (!fetching) {
              if (!noDeleteOnStaleGet) {
                this.#delete(k3, "expire");
              }
              if (status && allowStale)
                status.returnedStale = true;
              return allowStale ? value2 : void 0;
            } else {
              if (status && allowStale && value2.__staleWhileFetching !== void 0) {
                status.returnedStale = true;
              }
              return allowStale ? value2.__staleWhileFetching : void 0;
            }
          } else {
            if (status)
              status.get = "hit";
            if (fetching) {
              return value2.__staleWhileFetching;
            }
            this.#moveToTail(index2);
            if (updateAgeOnGet) {
              this.#updateItemAge(index2);
            }
            return value2;
          }
        } else if (status) {
          status.get = "miss";
        }
      }
      #connect(p3, n6) {
        this.#prev[n6] = p3;
        this.#next[p3] = n6;
      }
      #moveToTail(index2) {
        if (index2 !== this.#tail) {
          if (index2 === this.#head) {
            this.#head = this.#next[index2];
          } else {
            this.#connect(this.#prev[index2], this.#next[index2]);
          }
          this.#connect(this.#tail, index2);
          this.#tail = index2;
        }
      }
      /**
       * Deletes a key out of the cache.
       *
       * Returns true if the key was deleted, false otherwise.
       */
      delete(k3) {
        return this.#delete(k3, "delete");
      }
      #delete(k3, reason) {
        let deleted = false;
        if (this.#size !== 0) {
          const index2 = this.#keyMap.get(k3);
          if (index2 !== void 0) {
            deleted = true;
            if (this.#size === 1) {
              this.#clear(reason);
            } else {
              this.#removeItemSize(index2);
              const v3 = this.#valList[index2];
              if (this.#isBackgroundFetch(v3)) {
                v3.__abortController.abort(new Error("deleted"));
              } else if (this.#hasDispose || this.#hasDisposeAfter) {
                if (this.#hasDispose) {
                  this.#dispose?.(v3, k3, reason);
                }
                if (this.#hasDisposeAfter) {
                  this.#disposed?.push([v3, k3, reason]);
                }
              }
              this.#keyMap.delete(k3);
              this.#keyList[index2] = void 0;
              this.#valList[index2] = void 0;
              if (index2 === this.#tail) {
                this.#tail = this.#prev[index2];
              } else if (index2 === this.#head) {
                this.#head = this.#next[index2];
              } else {
                const pi = this.#prev[index2];
                this.#next[pi] = this.#next[index2];
                const ni = this.#next[index2];
                this.#prev[ni] = this.#prev[index2];
              }
              this.#size--;
              this.#free.push(index2);
            }
          }
        }
        if (this.#hasDisposeAfter && this.#disposed?.length) {
          const dt = this.#disposed;
          let task;
          while (task = dt?.shift()) {
            this.#disposeAfter?.(...task);
          }
        }
        return deleted;
      }
      /**
       * Clear the cache entirely, throwing away all values.
       */
      clear() {
        return this.#clear("delete");
      }
      #clear(reason) {
        for (const index2 of this.#rindexes({ allowStale: true })) {
          const v3 = this.#valList[index2];
          if (this.#isBackgroundFetch(v3)) {
            v3.__abortController.abort(new Error("deleted"));
          } else {
            const k3 = this.#keyList[index2];
            if (this.#hasDispose) {
              this.#dispose?.(v3, k3, reason);
            }
            if (this.#hasDisposeAfter) {
              this.#disposed?.push([v3, k3, reason]);
            }
          }
        }
        this.#keyMap.clear();
        this.#valList.fill(void 0);
        this.#keyList.fill(void 0);
        if (this.#ttls && this.#starts) {
          this.#ttls.fill(0);
          this.#starts.fill(0);
        }
        if (this.#sizes) {
          this.#sizes.fill(0);
        }
        this.#head = 0;
        this.#tail = 0;
        this.#free.length = 0;
        this.#calculatedSize = 0;
        this.#size = 0;
        if (this.#hasDisposeAfter && this.#disposed) {
          const dt = this.#disposed;
          let task;
          while (task = dt?.shift()) {
            this.#disposeAfter?.(...task);
          }
        }
      }
    };
    exports.LRUCache = LRUCache;
  }
});

// ../../node_modules/.pnpm/@csstools+color-helpers@5.1.0/node_modules/@csstools/color-helpers/dist/index.cjs
var require_dist13 = __commonJS({
  "../../node_modules/.pnpm/@csstools+color-helpers@5.1.0/node_modules/@csstools/color-helpers/dist/index.cjs"(exports) {
    "use strict";
    function multiplyMatrices2(t5, _2) {
      return [t5[0] * _2[0] + t5[1] * _2[1] + t5[2] * _2[2], t5[3] * _2[0] + t5[4] * _2[1] + t5[5] * _2[2], t5[6] * _2[0] + t5[7] * _2[1] + t5[8] * _2[2]];
    }
    var t4 = [0.955473421488075, -0.02309845494876471, 0.06325924320057072, -0.0283697093338637, 1.0099953980813041, 0.021041441191917323, 0.012314014864481998, -0.020507649298898964, 1.330365926242124];
    function D50_to_D65(_2) {
      return multiplyMatrices2(t4, _2);
    }
    var _ = [1.0479297925449969, 0.022946870601609652, -0.05019226628920524, 0.02962780877005599, 0.9904344267538799, -0.017073799063418826, -0.009243040646204504, 0.015055191490298152, 0.7518742814281371];
    function D65_to_D50(t5) {
      return multiplyMatrices2(_, t5);
    }
    function HSL_to_sRGB(t5) {
      let _2 = t5[0] % 360;
      const n7 = t5[1] / 100, o6 = t5[2] / 100;
      return _2 < 0 && (_2 += 360), [HSL_to_sRGB_channel(0, _2, n7, o6), HSL_to_sRGB_channel(8, _2, n7, o6), HSL_to_sRGB_channel(4, _2, n7, o6)];
    }
    function HSL_to_sRGB_channel(t5, _2, n7, o6) {
      const e5 = (t5 + _2 / 30) % 12;
      return o6 - n7 * Math.min(o6, 1 - o6) * Math.max(-1, Math.min(e5 - 3, 9 - e5, 1));
    }
    function HWB_to_sRGB(t5) {
      const _2 = t5[0], n7 = t5[1] / 100, o6 = t5[2] / 100;
      if (n7 + o6 >= 1) {
        const t6 = n7 / (n7 + o6);
        return [t6, t6, t6];
      }
      const e5 = HSL_to_sRGB([_2, 100, 50]), r5 = 1 - n7 - o6;
      return [e5[0] * r5 + n7, e5[1] * r5 + n7, e5[2] * r5 + n7];
    }
    function LCH_to_Lab(t5) {
      const _2 = t5[2] * Math.PI / 180;
      return [t5[0], t5[1] * Math.cos(_2), t5[1] * Math.sin(_2)];
    }
    function Lab_to_LCH(t5) {
      const _2 = 180 * Math.atan2(t5[2], t5[1]) / Math.PI;
      return [t5[0], Math.sqrt(Math.pow(t5[1], 2) + Math.pow(t5[2], 2)), _2 >= 0 ? _2 : _2 + 360];
    }
    var n6 = [0.3457 / 0.3585, 1, 0.2958 / 0.3585];
    function Lab_to_XYZ(t5) {
      const _2 = 24389 / 27, o6 = 216 / 24389, e5 = (t5[0] + 16) / 116, r5 = t5[1] / 500 + e5, a6 = e5 - t5[2] / 200;
      return [(Math.pow(r5, 3) > o6 ? Math.pow(r5, 3) : (116 * r5 - 16) / _2) * n6[0], (t5[0] > 8 ? Math.pow((t5[0] + 16) / 116, 3) : t5[0] / _2) * n6[1], (Math.pow(a6, 3) > o6 ? Math.pow(a6, 3) : (116 * a6 - 16) / _2) * n6[2]];
    }
    function OKLCH_to_OKLab(t5) {
      const _2 = t5[2] * Math.PI / 180;
      return [t5[0], t5[1] * Math.cos(_2), t5[1] * Math.sin(_2)];
    }
    function OKLab_to_OKLCH(t5) {
      const _2 = 180 * Math.atan2(t5[2], t5[1]) / Math.PI;
      return [t5[0], Math.sqrt(t5[1] ** 2 + t5[2] ** 2), _2 >= 0 ? _2 : _2 + 360];
    }
    var o5 = [1.2268798758459243, -0.5578149944602171, 0.2813910456659647, -0.0405757452148008, 1.112286803280317, -0.0717110580655164, -0.0763729366746601, -0.4214933324022432, 1.5869240198367816];
    var e4 = [1, 0.3963377773761749, 0.2158037573099136, 1, -0.1055613458156586, -0.0638541728258133, 1, -0.0894841775298119, -1.2914855480194092];
    function OKLab_to_XYZ(t5) {
      const _2 = multiplyMatrices2(e4, t5);
      return multiplyMatrices2(o5, [_2[0] ** 3, _2[1] ** 3, _2[2] ** 3]);
    }
    function XYZ_to_Lab(t5) {
      const _2 = compute_f(t5[0] / n6[0]), o6 = compute_f(t5[1] / n6[1]);
      return [116 * o6 - 16, 500 * (_2 - o6), 200 * (o6 - compute_f(t5[2] / n6[2]))];
    }
    var r4 = 216 / 24389;
    var a5 = 24389 / 27;
    function compute_f(t5) {
      return t5 > r4 ? Math.cbrt(t5) : (a5 * t5 + 16) / 116;
    }
    var i5 = [0.819022437996703, 0.3619062600528904, -0.1288737815209879, 0.0329836539323885, 0.9292868615863434, 0.0361446663506424, 0.0481771893596242, 0.2642395317527308, 0.6335478284694309];
    var l4 = [0.210454268309314, 0.7936177747023054, -0.0040720430116193, 1.9779985324311684, -2.42859224204858, 0.450593709617411, 0.0259040424655478, 0.7827717124575296, -0.8086757549230774];
    function XYZ_to_OKLab(t5) {
      const _2 = multiplyMatrices2(i5, t5);
      return multiplyMatrices2(l4, [Math.cbrt(_2[0]), Math.cbrt(_2[1]), Math.cbrt(_2[2])]);
    }
    var s4 = [30757411 / 17917100, -6372589 / 17917100, -4539589 / 17917100, -0.666684351832489, 1.616481236634939, 467509 / 29648200, 792561 / 44930125, -1921689 / 44930125, 0.942103121235474];
    var c6 = [446124 / 178915, -333277 / 357830, -72051 / 178915, -14852 / 17905, 63121 / 35810, 423 / 17905, 11844 / 330415, -50337 / 660830, 316169 / 330415];
    function XYZ_to_lin_P3(t5) {
      return multiplyMatrices2(c6, t5);
    }
    var u5 = [1.3457868816471583, -0.25557208737979464, -0.05110186497554526, -0.5446307051249019, 1.5082477428451468, 0.02052744743642139, 0, 0, 1.2119675456389452];
    var h4 = [1829569 / 896150, -506331 / 896150, -308931 / 896150, -851781 / 878810, 1648619 / 878810, 36519 / 878810, 16779 / 1248040, -147721 / 1248040, 1266979 / 1248040];
    var m3 = [12831 / 3959, -329 / 214, -1974 / 3959, -851781 / 878810, 1648619 / 878810, 36519 / 878810, 705 / 12673, -2585 / 12673, 705 / 667];
    function XYZ_to_lin_sRGB(t5) {
      return multiplyMatrices2(m3, t5);
    }
    var p3 = 1.09929682680944;
    var D = 0.018053968510807;
    function gam_2020_channel(t5) {
      const _2 = t5 < 0 ? -1 : 1, n7 = Math.abs(t5);
      return n7 > D ? _2 * (p3 * Math.pow(n7, 0.45) - (p3 - 1)) : 4.5 * t5;
    }
    function gam_sRGB(t5) {
      return [gam_sRGB_channel(t5[0]), gam_sRGB_channel(t5[1]), gam_sRGB_channel(t5[2])];
    }
    function gam_sRGB_channel(t5) {
      const _2 = t5 < 0 ? -1 : 1, n7 = Math.abs(t5);
      return n7 > 31308e-7 ? _2 * (1.055 * Math.pow(n7, 1 / 2.4) - 0.055) : 12.92 * t5;
    }
    function gam_P3(t5) {
      return gam_sRGB(t5);
    }
    var X = 1 / 512;
    function gam_ProPhoto_channel(t5) {
      const _2 = t5 < 0 ? -1 : 1, n7 = Math.abs(t5);
      return n7 >= X ? _2 * Math.pow(n7, 1 / 1.8) : 16 * t5;
    }
    function gam_a98rgb_channel(t5) {
      const _2 = t5 < 0 ? -1 : 1, n7 = Math.abs(t5);
      return _2 * Math.pow(n7, 256 / 563);
    }
    var Y = 1.09929682680944;
    var Z = 0.018053968510807;
    function lin_2020_channel(t5) {
      const _2 = t5 < 0 ? -1 : 1, n7 = Math.abs(t5);
      return n7 < 4.5 * Z ? t5 / 4.5 : _2 * Math.pow((n7 + Y - 1) / Y, 1 / 0.45);
    }
    var b3 = [63426534 / 99577255, 20160776 / 139408157, 47086771 / 278816314, 26158966 / 99577255, 0.677998071518871, 8267143 / 139408157, 0, 19567812 / 697040785, 1.0609850577107909];
    function lin_sRGB(t5) {
      return [lin_sRGB_channel(t5[0]), lin_sRGB_channel(t5[1]), lin_sRGB_channel(t5[2])];
    }
    function lin_sRGB_channel(t5) {
      const _2 = t5 < 0 ? -1 : 1, n7 = Math.abs(t5);
      return n7 <= 0.04045 ? t5 / 12.92 : _2 * Math.pow((n7 + 0.055) / 1.055, 2.4);
    }
    function lin_P3(t5) {
      return lin_sRGB(t5);
    }
    var g3 = [608311 / 1250200, 189793 / 714400, 198249 / 1000160, 35783 / 156275, 247089 / 357200, 198249 / 2500400, 0, 32229 / 714400, 5220557 / 5000800];
    function lin_P3_to_XYZ(t5) {
      return multiplyMatrices2(g3, t5);
    }
    var f4 = 16 / 512;
    function lin_ProPhoto_channel(t5) {
      const _2 = t5 < 0 ? -1 : 1, n7 = Math.abs(t5);
      return n7 <= f4 ? t5 / 16 : _2 * Math.pow(n7, 1.8);
    }
    var L = [0.7977666449006423, 0.13518129740053308, 0.0313477341283922, 0.2880748288194013, 0.711835234241873, 8993693872564e-17, 0, 0, 0.8251046025104602];
    function lin_a98rgb_channel(t5) {
      const _2 = t5 < 0 ? -1 : 1, n7 = Math.abs(t5);
      return _2 * Math.pow(n7, 563 / 256);
    }
    var M = [573536 / 994567, 263643 / 1420810, 187206 / 994567, 591459 / 1989134, 6239551 / 9945670, 374412 / 4972835, 53769 / 1989134, 351524 / 4972835, 4929758 / 4972835];
    var d3 = [506752 / 1228815, 87881 / 245763, 12673 / 70218, 87098 / 409605, 175762 / 245763, 12673 / 175545, 7918 / 409605, 87881 / 737289, 1001167 / 1053270];
    function lin_sRGB_to_XYZ(t5) {
      return multiplyMatrices2(d3, t5);
    }
    function sRGB_to_HSL(t5) {
      const _2 = t5[0], n7 = t5[1], o6 = t5[2], e5 = Math.max(_2, n7, o6), r5 = Math.min(_2, n7, o6), a6 = (r5 + e5) / 2, i6 = e5 - r5;
      let l5 = Number.NaN, s5 = 0;
      if (0 !== Math.round(1e5 * i6)) {
        const t6 = Math.round(1e5 * a6);
        switch (s5 = 0 === t6 || 1e5 === t6 ? 0 : (e5 - a6) / Math.min(a6, 1 - a6), e5) {
          case _2:
            l5 = (n7 - o6) / i6 + (n7 < o6 ? 6 : 0);
            break;
          case n7:
            l5 = (o6 - _2) / i6 + 2;
            break;
          case o6:
            l5 = (_2 - n7) / i6 + 4;
        }
        l5 *= 60;
      }
      return s5 < 0 && (l5 += 180, s5 = Math.abs(s5)), l5 >= 360 && (l5 -= 360), [l5, 100 * s5, 100 * a6];
    }
    function sRGB_to_Hue(t5) {
      const _2 = t5[0], n7 = t5[1], o6 = t5[2], e5 = Math.max(_2, n7, o6), r5 = Math.min(_2, n7, o6);
      let a6 = Number.NaN;
      const i6 = e5 - r5;
      if (0 !== i6) {
        switch (e5) {
          case _2:
            a6 = (n7 - o6) / i6 + (n7 < o6 ? 6 : 0);
            break;
          case n7:
            a6 = (o6 - _2) / i6 + 2;
            break;
          case o6:
            a6 = (_2 - n7) / i6 + 4;
        }
        a6 *= 60;
      }
      return a6 >= 360 && (a6 -= 360), a6;
    }
    function inGamut(t5) {
      return t5[0] >= -1e-4 && t5[0] <= 1.0001 && t5[1] >= -1e-4 && t5[1] <= 1.0001 && t5[2] >= -1e-4 && t5[2] <= 1.0001;
    }
    function clip(t5) {
      return [t5[0] < 0 ? 0 : t5[0] > 1 ? 1 : t5[0], t5[1] < 0 ? 0 : t5[1] > 1 ? 1 : t5[1], t5[2] < 0 ? 0 : t5[2] > 1 ? 1 : t5[2]];
    }
    function deltaEOK(t5, _2) {
      const [n7, o6, e5] = t5, [r5, a6, i6] = _2, l5 = n7 - r5, s5 = o6 - a6, c7 = e5 - i6;
      return Math.sqrt(l5 ** 2 + s5 ** 2 + c7 ** 2);
    }
    var B = 0.02;
    var G2 = 1e-4;
    function rayTraceBox(t5, _2) {
      let n7 = 1 / 0, o6 = -1 / 0;
      const e5 = [0, 0, 0];
      for (let r5 = 0; r5 < 3; r5++) {
        const a6 = t5[r5], i6 = _2[r5] - a6;
        e5[r5] = i6;
        const l5 = 0, s5 = 1;
        if (i6) {
          const t6 = 1 / i6, _3 = (l5 - a6) * t6, e6 = (s5 - a6) * t6;
          o6 = Math.max(Math.min(_3, e6), o6), n7 = Math.min(Math.max(_3, e6), n7);
        } else if (a6 < l5 || a6 > s5) return false;
      }
      return !(o6 > n7 || n7 < 0) && (o6 < 0 && (o6 = n7), !!isFinite(o6) && [t5[0] + e5[0] * o6, t5[1] + e5[1] * o6, t5[2] + e5[2] * o6]);
    }
    function luminance(t5) {
      const [_2, n7, o6] = t5.map((t6) => t6 <= 0.03928 ? t6 / 12.92 : Math.pow((t6 + 0.055) / 1.055, 2.4));
      return 0.2126 * _2 + 0.7152 * n7 + 0.0722 * o6;
    }
    exports.HSL_to_XYZ_D50 = function HSL_to_XYZ_D50(t5) {
      let _2 = t5;
      return _2 = HSL_to_sRGB(_2), _2 = lin_sRGB(_2), _2 = lin_sRGB_to_XYZ(_2), _2 = D65_to_D50(_2), _2;
    }, exports.HWB_to_XYZ_D50 = function HWB_to_XYZ_D50(t5) {
      let _2 = t5;
      return _2 = HWB_to_sRGB(_2), _2 = lin_sRGB(_2), _2 = lin_sRGB_to_XYZ(_2), _2 = D65_to_D50(_2), _2;
    }, exports.LCH_to_XYZ_D50 = function LCH_to_XYZ_D50(t5) {
      let _2 = t5;
      return _2 = LCH_to_Lab(_2), _2 = Lab_to_XYZ(_2), _2;
    }, exports.Lab_to_XYZ_D50 = function Lab_to_XYZ_D50(t5) {
      let _2 = t5;
      return _2 = Lab_to_XYZ(_2), _2;
    }, exports.OKLCH_to_OKLab = OKLCH_to_OKLab, exports.OKLCH_to_XYZ_D50 = function OKLCH_to_XYZ_D50(t5) {
      let _2 = t5;
      return _2 = OKLCH_to_OKLab(_2), _2 = OKLab_to_XYZ(_2), _2 = D65_to_D50(_2), _2;
    }, exports.OKLab_to_OKLCH = OKLab_to_OKLCH, exports.OKLab_to_XYZ = OKLab_to_XYZ, exports.OKLab_to_XYZ_D50 = function OKLab_to_XYZ_D50(t5) {
      let _2 = t5;
      return _2 = OKLab_to_XYZ(_2), _2 = D65_to_D50(_2), _2;
    }, exports.P3_to_XYZ_D50 = function P3_to_XYZ_D50(t5) {
      let _2 = t5;
      return _2 = lin_P3(_2), _2 = lin_P3_to_XYZ(_2), _2 = D65_to_D50(_2), _2;
    }, exports.ProPhoto_RGB_to_XYZ_D50 = function ProPhoto_RGB_to_XYZ_D50(t5) {
      let _2 = t5;
      var n7;
      return _2 = [lin_ProPhoto_channel((n7 = _2)[0]), lin_ProPhoto_channel(n7[1]), lin_ProPhoto_channel(n7[2])], _2 = multiplyMatrices2(L, _2), _2;
    }, exports.XYZ_D50_to_HSL = function XYZ_D50_to_HSL(t5) {
      let _2 = t5;
      return _2 = D50_to_D65(_2), _2 = XYZ_to_lin_sRGB(_2), _2 = gam_sRGB(_2), _2 = sRGB_to_HSL(_2), _2;
    }, exports.XYZ_D50_to_HWB = function XYZ_D50_to_HWB(t5) {
      let _2 = t5;
      _2 = D50_to_D65(_2), _2 = XYZ_to_lin_sRGB(_2);
      const n7 = gam_sRGB(_2), o6 = Math.min(n7[0], n7[1], n7[2]), e5 = 1 - Math.max(n7[0], n7[1], n7[2]);
      return [sRGB_to_Hue(n7), 100 * o6, 100 * e5];
    }, exports.XYZ_D50_to_LCH = function XYZ_D50_to_LCH(t5) {
      let _2 = t5;
      return _2 = XYZ_to_Lab(_2), _2 = Lab_to_LCH(_2), _2;
    }, exports.XYZ_D50_to_Lab = function XYZ_D50_to_Lab(t5) {
      let _2 = t5;
      return _2 = XYZ_to_Lab(_2), _2;
    }, exports.XYZ_D50_to_OKLCH = function XYZ_D50_to_OKLCH(t5) {
      let _2 = t5;
      return _2 = D50_to_D65(_2), _2 = XYZ_to_OKLab(_2), _2 = OKLab_to_OKLCH(_2), _2;
    }, exports.XYZ_D50_to_OKLab = function XYZ_D50_to_OKLab(t5) {
      let _2 = t5;
      return _2 = D50_to_D65(_2), _2 = XYZ_to_OKLab(_2), _2;
    }, exports.XYZ_D50_to_P3 = function XYZ_D50_to_P3(t5) {
      let _2 = t5;
      return _2 = D50_to_D65(_2), _2 = XYZ_to_lin_P3(_2), _2 = gam_P3(_2), _2;
    }, exports.XYZ_D50_to_ProPhoto = function XYZ_D50_to_ProPhoto(t5) {
      let _2 = t5;
      var n7;
      return _2 = multiplyMatrices2(u5, _2), _2 = [gam_ProPhoto_channel((n7 = _2)[0]), gam_ProPhoto_channel(n7[1]), gam_ProPhoto_channel(n7[2])], _2;
    }, exports.XYZ_D50_to_XYZ_D50 = function XYZ_D50_to_XYZ_D50(t5) {
      return t5;
    }, exports.XYZ_D50_to_XYZ_D65 = function XYZ_D50_to_XYZ_D65(t5) {
      let _2 = t5;
      return _2 = D50_to_D65(_2), _2;
    }, exports.XYZ_D50_to_a98_RGB = function XYZ_D50_to_a98_RGB(t5) {
      let _2 = t5;
      var n7;
      return _2 = D50_to_D65(_2), _2 = multiplyMatrices2(h4, _2), _2 = [gam_a98rgb_channel((n7 = _2)[0]), gam_a98rgb_channel(n7[1]), gam_a98rgb_channel(n7[2])], _2;
    }, exports.XYZ_D50_to_lin_P3 = function XYZ_D50_to_lin_P3(t5) {
      let _2 = t5;
      return _2 = D50_to_D65(_2), _2 = XYZ_to_lin_P3(_2), _2;
    }, exports.XYZ_D50_to_lin_sRGB = function XYZ_D50_to_lin_sRGB(t5) {
      let _2 = t5;
      return _2 = D50_to_D65(_2), _2 = XYZ_to_lin_sRGB(_2), _2;
    }, exports.XYZ_D50_to_rec_2020 = function XYZ_D50_to_rec_2020(t5) {
      let _2 = t5;
      var n7;
      return _2 = D50_to_D65(_2), _2 = multiplyMatrices2(s4, _2), _2 = [gam_2020_channel((n7 = _2)[0]), gam_2020_channel(n7[1]), gam_2020_channel(n7[2])], _2;
    }, exports.XYZ_D50_to_sRGB = function XYZ_D50_to_sRGB(t5) {
      let _2 = t5;
      return _2 = D50_to_D65(_2), _2 = XYZ_to_lin_sRGB(_2), _2 = gam_sRGB(_2), _2;
    }, exports.XYZ_D65_to_XYZ_D50 = function XYZ_D65_to_XYZ_D50(t5) {
      let _2 = t5;
      return _2 = D65_to_D50(_2), _2;
    }, exports.XYZ_to_OKLab = XYZ_to_OKLab, exports.XYZ_to_lin_P3 = XYZ_to_lin_P3, exports.XYZ_to_lin_sRGB = XYZ_to_lin_sRGB, exports.a98_RGB_to_XYZ_D50 = function a98_RGB_to_XYZ_D50(t5) {
      let _2 = t5;
      var n7;
      return _2 = [lin_a98rgb_channel((n7 = _2)[0]), lin_a98rgb_channel(n7[1]), lin_a98rgb_channel(n7[2])], _2 = multiplyMatrices2(M, _2), _2 = D65_to_D50(_2), _2;
    }, exports.clip = clip, exports.contrast_ratio_wcag_2_1 = function contrast_ratio_wcag_2_1(t5, _2) {
      const n7 = luminance(t5), o6 = luminance(_2);
      return (Math.max(n7, o6) + 0.05) / (Math.min(n7, o6) + 0.05);
    }, exports.gam_P3 = gam_P3, exports.gam_sRGB = gam_sRGB, exports.inGamut = inGamut, exports.lin_P3 = lin_P3, exports.lin_P3_to_XYZ = lin_P3_to_XYZ, exports.lin_P3_to_XYZ_D50 = function lin_P3_to_XYZ_D50(t5) {
      let _2 = t5;
      return _2 = lin_P3_to_XYZ(_2), _2 = D65_to_D50(_2), _2;
    }, exports.lin_sRGB = lin_sRGB, exports.lin_sRGB_to_XYZ = lin_sRGB_to_XYZ, exports.lin_sRGB_to_XYZ_D50 = function lin_sRGB_to_XYZ_D50(t5) {
      let _2 = t5;
      return _2 = lin_sRGB_to_XYZ(_2), _2 = D65_to_D50(_2), _2;
    }, exports.mapGamut = function mapGamut(t5, _2, n7) {
      const o6 = t5;
      let e5 = clip(_2(o6)), r5 = deltaEOK(OKLCH_to_OKLab(n7(e5)), OKLCH_to_OKLab(o6));
      if (r5 < B) return e5;
      let a6 = 0, i6 = o6[1], l5 = true;
      for (; i6 - a6 > G2; ) {
        const t6 = (a6 + i6) / 2;
        if (o6[1] = t6, l5 && inGamut(_2(o6))) a6 = t6;
        else if (e5 = clip(_2(o6)), r5 = deltaEOK(OKLCH_to_OKLab(n7(e5)), OKLCH_to_OKLab(o6)), r5 < B) {
          if (B - r5 < G2) return e5;
          l5 = false, a6 = t6;
        } else i6 = t6;
      }
      return clip(_2([...o6]));
    }, exports.mapGamutRayTrace = function mapGamutRayTrace(t5, _2, n7) {
      const o6 = t5[0], e5 = t5[2];
      let r5 = _2(t5);
      const a6 = _2([o6, 0, e5]);
      for (let t6 = 0; t6 < 4; t6++) {
        if (t6 > 0) {
          const t7 = n7(r5);
          t7[0] = o6, t7[2] = e5, r5 = _2(t7);
        }
        const i6 = rayTraceBox(a6, r5);
        if (!i6) break;
        r5 = i6;
      }
      return clip(r5);
    }, exports.namedColors = { aliceblue: [240, 248, 255], antiquewhite: [250, 235, 215], aqua: [0, 255, 255], aquamarine: [127, 255, 212], azure: [240, 255, 255], beige: [245, 245, 220], bisque: [255, 228, 196], black: [0, 0, 0], blanchedalmond: [255, 235, 205], blue: [0, 0, 255], blueviolet: [138, 43, 226], brown: [165, 42, 42], burlywood: [222, 184, 135], cadetblue: [95, 158, 160], chartreuse: [127, 255, 0], chocolate: [210, 105, 30], coral: [255, 127, 80], cornflowerblue: [100, 149, 237], cornsilk: [255, 248, 220], crimson: [220, 20, 60], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgoldenrod: [184, 134, 11], darkgray: [169, 169, 169], darkgreen: [0, 100, 0], darkgrey: [169, 169, 169], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkseagreen: [143, 188, 143], darkslateblue: [72, 61, 139], darkslategray: [47, 79, 79], darkslategrey: [47, 79, 79], darkturquoise: [0, 206, 209], darkviolet: [148, 0, 211], deeppink: [255, 20, 147], deepskyblue: [0, 191, 255], dimgray: [105, 105, 105], dimgrey: [105, 105, 105], dodgerblue: [30, 144, 255], firebrick: [178, 34, 34], floralwhite: [255, 250, 240], forestgreen: [34, 139, 34], fuchsia: [255, 0, 255], gainsboro: [220, 220, 220], ghostwhite: [248, 248, 255], gold: [255, 215, 0], goldenrod: [218, 165, 32], gray: [128, 128, 128], green: [0, 128, 0], greenyellow: [173, 255, 47], grey: [128, 128, 128], honeydew: [240, 255, 240], hotpink: [255, 105, 180], indianred: [205, 92, 92], indigo: [75, 0, 130], ivory: [255, 255, 240], khaki: [240, 230, 140], lavender: [230, 230, 250], lavenderblush: [255, 240, 245], lawngreen: [124, 252, 0], lemonchiffon: [255, 250, 205], lightblue: [173, 216, 230], lightcoral: [240, 128, 128], lightcyan: [224, 255, 255], lightgoldenrodyellow: [250, 250, 210], lightgray: [211, 211, 211], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightsalmon: [255, 160, 122], lightseagreen: [32, 178, 170], lightskyblue: [135, 206, 250], lightslategray: [119, 136, 153], lightslategrey: [119, 136, 153], lightsteelblue: [176, 196, 222], lightyellow: [255, 255, 224], lime: [0, 255, 0], limegreen: [50, 205, 50], linen: [250, 240, 230], magenta: [255, 0, 255], maroon: [128, 0, 0], mediumaquamarine: [102, 205, 170], mediumblue: [0, 0, 205], mediumorchid: [186, 85, 211], mediumpurple: [147, 112, 219], mediumseagreen: [60, 179, 113], mediumslateblue: [123, 104, 238], mediumspringgreen: [0, 250, 154], mediumturquoise: [72, 209, 204], mediumvioletred: [199, 21, 133], midnightblue: [25, 25, 112], mintcream: [245, 255, 250], mistyrose: [255, 228, 225], moccasin: [255, 228, 181], navajowhite: [255, 222, 173], navy: [0, 0, 128], oldlace: [253, 245, 230], olive: [128, 128, 0], olivedrab: [107, 142, 35], orange: [255, 165, 0], orangered: [255, 69, 0], orchid: [218, 112, 214], palegoldenrod: [238, 232, 170], palegreen: [152, 251, 152], paleturquoise: [175, 238, 238], palevioletred: [219, 112, 147], papayawhip: [255, 239, 213], peachpuff: [255, 218, 185], peru: [205, 133, 63], pink: [255, 192, 203], plum: [221, 160, 221], powderblue: [176, 224, 230], purple: [128, 0, 128], rebeccapurple: [102, 51, 153], red: [255, 0, 0], rosybrown: [188, 143, 143], royalblue: [65, 105, 225], saddlebrown: [139, 69, 19], salmon: [250, 128, 114], sandybrown: [244, 164, 96], seagreen: [46, 139, 87], seashell: [255, 245, 238], sienna: [160, 82, 45], silver: [192, 192, 192], skyblue: [135, 206, 235], slateblue: [106, 90, 205], slategray: [112, 128, 144], slategrey: [112, 128, 144], snow: [255, 250, 250], springgreen: [0, 255, 127], steelblue: [70, 130, 180], tan: [210, 180, 140], teal: [0, 128, 128], thistle: [216, 191, 216], tomato: [255, 99, 71], turquoise: [64, 224, 208], violet: [238, 130, 238], wheat: [245, 222, 179], white: [255, 255, 255], whitesmoke: [245, 245, 245], yellow: [255, 255, 0], yellowgreen: [154, 205, 50] }, exports.rec_2020_to_XYZ_D50 = function rec_2020_to_XYZ_D50(t5) {
      let _2 = t5;
      var n7;
      return _2 = [lin_2020_channel((n7 = _2)[0]), lin_2020_channel(n7[1]), lin_2020_channel(n7[2])], _2 = multiplyMatrices2(b3, _2), _2 = D65_to_D50(_2), _2;
    }, exports.sRGB_to_XYZ_D50 = function sRGB_to_XYZ_D50(t5) {
      let _2 = t5;
      return _2 = lin_sRGB(_2), _2 = lin_sRGB_to_XYZ(_2), _2 = D65_to_D50(_2), _2;
    };
  }
});

// ../../node_modules/.pnpm/@csstools+css-color-parser@3.1.0_@csstools+css-parser-algorithms@3.0.5_@csstools+css-to_ac3eaa9e6357e2e6fe2577d663b974a1/node_modules/@csstools/css-color-parser/dist/index.cjs
var require_dist14 = __commonJS({
  "../../node_modules/.pnpm/@csstools+css-color-parser@3.1.0_@csstools+css-parser-algorithms@3.0.5_@csstools+css-to_ac3eaa9e6357e2e6fe2577d663b974a1/node_modules/@csstools/css-color-parser/dist/index.cjs"(exports) {
    "use strict";
    var e4;
    var o5;
    var a5 = require_dist10();
    var n6 = require_dist13();
    var t4 = require_dist11();
    var r4 = require_dist12();
    function convertNaNToZero(e5) {
      return [Number.isNaN(e5[0]) ? 0 : e5[0], Number.isNaN(e5[1]) ? 0 : e5[1], Number.isNaN(e5[2]) ? 0 : e5[2]];
    }
    function colorData_to_XYZ_D50(e5) {
      switch (e5.colorNotation) {
        case exports.ColorNotation.HEX:
        case exports.ColorNotation.RGB:
        case exports.ColorNotation.sRGB:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.sRGB_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.Linear_sRGB:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.lin_sRGB_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.Display_P3:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.P3_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.Linear_Display_P3:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.lin_P3_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.Rec2020:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.rec_2020_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.A98_RGB:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.a98_RGB_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.ProPhoto_RGB:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.ProPhoto_RGB_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.HSL:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.HSL_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.HWB:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.HWB_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.Lab:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.Lab_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.OKLab:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.OKLab_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.LCH:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.LCH_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.OKLCH:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.OKLCH_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.XYZ_D50:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.XYZ_D50_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        case exports.ColorNotation.XYZ_D65:
          return { ...e5, colorNotation: exports.ColorNotation.XYZ_D50, channels: n6.XYZ_D65_to_XYZ_D50(convertNaNToZero(e5.channels)) };
        default:
          throw new Error("Unsupported color notation");
      }
    }
    exports.ColorNotation = void 0, (e4 = exports.ColorNotation || (exports.ColorNotation = {})).A98_RGB = "a98-rgb", e4.Display_P3 = "display-p3", e4.Linear_Display_P3 = "display-p3-linear", e4.HEX = "hex", e4.HSL = "hsl", e4.HWB = "hwb", e4.LCH = "lch", e4.Lab = "lab", e4.Linear_sRGB = "srgb-linear", e4.OKLCH = "oklch", e4.OKLab = "oklab", e4.ProPhoto_RGB = "prophoto-rgb", e4.RGB = "rgb", e4.sRGB = "srgb", e4.Rec2020 = "rec2020", e4.XYZ_D50 = "xyz-d50", e4.XYZ_D65 = "xyz-d65", exports.SyntaxFlag = void 0, (o5 = exports.SyntaxFlag || (exports.SyntaxFlag = {})).ColorKeyword = "color-keyword", o5.HasAlpha = "has-alpha", o5.HasDimensionValues = "has-dimension-values", o5.HasNoneKeywords = "has-none-keywords", o5.HasNumberValues = "has-number-values", o5.HasPercentageAlpha = "has-percentage-alpha", o5.HasPercentageValues = "has-percentage-values", o5.HasVariableAlpha = "has-variable-alpha", o5.Hex = "hex", o5.LegacyHSL = "legacy-hsl", o5.LegacyRGB = "legacy-rgb", o5.NamedColor = "named-color", o5.RelativeColorSyntax = "relative-color-syntax", o5.ColorMix = "color-mix", o5.ColorMixVariadic = "color-mix-variadic", o5.ContrastColor = "contrast-color", o5.RelativeAlphaSyntax = "relative-alpha-syntax", o5.Experimental = "experimental";
    var l4 = /* @__PURE__ */ new Set([exports.ColorNotation.A98_RGB, exports.ColorNotation.Display_P3, exports.ColorNotation.Linear_Display_P3, exports.ColorNotation.HEX, exports.ColorNotation.Linear_sRGB, exports.ColorNotation.ProPhoto_RGB, exports.ColorNotation.RGB, exports.ColorNotation.sRGB, exports.ColorNotation.Rec2020, exports.ColorNotation.XYZ_D50, exports.ColorNotation.XYZ_D65]);
    function colorDataTo(e5, o6) {
      const a6 = { ...e5 };
      if (e5.colorNotation !== o6) {
        const e6 = colorData_to_XYZ_D50(a6);
        switch (o6) {
          case exports.ColorNotation.HEX:
          case exports.ColorNotation.RGB:
            a6.colorNotation = exports.ColorNotation.RGB, a6.channels = n6.XYZ_D50_to_sRGB(e6.channels);
            break;
          case exports.ColorNotation.sRGB:
            a6.colorNotation = exports.ColorNotation.sRGB, a6.channels = n6.XYZ_D50_to_sRGB(e6.channels);
            break;
          case exports.ColorNotation.Linear_sRGB:
            a6.colorNotation = exports.ColorNotation.Linear_sRGB, a6.channels = n6.XYZ_D50_to_lin_sRGB(e6.channels);
            break;
          case exports.ColorNotation.Display_P3:
            a6.colorNotation = exports.ColorNotation.Display_P3, a6.channels = n6.XYZ_D50_to_P3(e6.channels);
            break;
          case exports.ColorNotation.Linear_Display_P3:
            a6.colorNotation = exports.ColorNotation.Linear_Display_P3, a6.channels = n6.XYZ_D50_to_lin_P3(e6.channels);
            break;
          case exports.ColorNotation.Rec2020:
            a6.colorNotation = exports.ColorNotation.Rec2020, a6.channels = n6.XYZ_D50_to_rec_2020(e6.channels);
            break;
          case exports.ColorNotation.ProPhoto_RGB:
            a6.colorNotation = exports.ColorNotation.ProPhoto_RGB, a6.channels = n6.XYZ_D50_to_ProPhoto(e6.channels);
            break;
          case exports.ColorNotation.A98_RGB:
            a6.colorNotation = exports.ColorNotation.A98_RGB, a6.channels = n6.XYZ_D50_to_a98_RGB(e6.channels);
            break;
          case exports.ColorNotation.HSL:
            a6.colorNotation = exports.ColorNotation.HSL, a6.channels = n6.XYZ_D50_to_HSL(e6.channels);
            break;
          case exports.ColorNotation.HWB:
            a6.colorNotation = exports.ColorNotation.HWB, a6.channels = n6.XYZ_D50_to_HWB(e6.channels);
            break;
          case exports.ColorNotation.Lab:
            a6.colorNotation = exports.ColorNotation.Lab, a6.channels = n6.XYZ_D50_to_Lab(e6.channels);
            break;
          case exports.ColorNotation.LCH:
            a6.colorNotation = exports.ColorNotation.LCH, a6.channels = n6.XYZ_D50_to_LCH(e6.channels);
            break;
          case exports.ColorNotation.OKLCH:
            a6.colorNotation = exports.ColorNotation.OKLCH, a6.channels = n6.XYZ_D50_to_OKLCH(e6.channels);
            break;
          case exports.ColorNotation.OKLab:
            a6.colorNotation = exports.ColorNotation.OKLab, a6.channels = n6.XYZ_D50_to_OKLab(e6.channels);
            break;
          case exports.ColorNotation.XYZ_D50:
            a6.colorNotation = exports.ColorNotation.XYZ_D50, a6.channels = n6.XYZ_D50_to_XYZ_D50(e6.channels);
            break;
          case exports.ColorNotation.XYZ_D65:
            a6.colorNotation = exports.ColorNotation.XYZ_D65, a6.channels = n6.XYZ_D50_to_XYZ_D65(e6.channels);
            break;
          default:
            throw new Error("Unsupported color notation");
        }
      } else a6.channels = convertNaNToZero(e5.channels);
      if (o6 === e5.colorNotation) a6.channels = carryForwardMissingComponents(e5.channels, [0, 1, 2], a6.channels, [0, 1, 2]);
      else if (l4.has(o6) && l4.has(e5.colorNotation)) a6.channels = carryForwardMissingComponents(e5.channels, [0, 1, 2], a6.channels, [0, 1, 2]);
      else switch (o6) {
        case exports.ColorNotation.HSL:
          switch (e5.colorNotation) {
            case exports.ColorNotation.HWB:
              a6.channels = carryForwardMissingComponents(e5.channels, [0], a6.channels, [0]);
              break;
            case exports.ColorNotation.Lab:
            case exports.ColorNotation.OKLab:
              a6.channels = carryForwardMissingComponents(e5.channels, [2], a6.channels, [0]);
              break;
            case exports.ColorNotation.LCH:
            case exports.ColorNotation.OKLCH:
              a6.channels = carryForwardMissingComponents(e5.channels, [0, 1, 2], a6.channels, [2, 1, 0]);
          }
          break;
        case exports.ColorNotation.HWB:
          switch (e5.colorNotation) {
            case exports.ColorNotation.HSL:
              a6.channels = carryForwardMissingComponents(e5.channels, [0], a6.channels, [0]);
              break;
            case exports.ColorNotation.LCH:
            case exports.ColorNotation.OKLCH:
              a6.channels = carryForwardMissingComponents(e5.channels, [0], a6.channels, [2]);
          }
          break;
        case exports.ColorNotation.Lab:
        case exports.ColorNotation.OKLab:
          switch (e5.colorNotation) {
            case exports.ColorNotation.HSL:
              a6.channels = carryForwardMissingComponents(e5.channels, [0], a6.channels, [2]);
              break;
            case exports.ColorNotation.Lab:
            case exports.ColorNotation.OKLab:
              a6.channels = carryForwardMissingComponents(e5.channels, [0, 1, 2], a6.channels, [0, 1, 2]);
              break;
            case exports.ColorNotation.LCH:
            case exports.ColorNotation.OKLCH:
              a6.channels = carryForwardMissingComponents(e5.channels, [0], a6.channels, [0]);
          }
          break;
        case exports.ColorNotation.LCH:
        case exports.ColorNotation.OKLCH:
          switch (e5.colorNotation) {
            case exports.ColorNotation.HSL:
              a6.channels = carryForwardMissingComponents(e5.channels, [0, 1, 2], a6.channels, [2, 1, 0]);
              break;
            case exports.ColorNotation.HWB:
              a6.channels = carryForwardMissingComponents(e5.channels, [0], a6.channels, [2]);
              break;
            case exports.ColorNotation.Lab:
            case exports.ColorNotation.OKLab:
              a6.channels = carryForwardMissingComponents(e5.channels, [0], a6.channels, [0]);
              break;
            case exports.ColorNotation.LCH:
            case exports.ColorNotation.OKLCH:
              a6.channels = carryForwardMissingComponents(e5.channels, [0, 1, 2], a6.channels, [0, 1, 2]);
          }
      }
      return a6.channels = convertPowerlessComponentsToMissingComponents(a6.channels, o6), a6;
    }
    function convertPowerlessComponentsToMissingComponents(e5, o6) {
      const a6 = [...e5];
      switch (o6) {
        case exports.ColorNotation.HSL:
          !Number.isNaN(a6[1]) && reducePrecision(a6[1], 4) <= 0 && (a6[0] = Number.NaN);
          break;
        case exports.ColorNotation.HWB:
          Math.max(0, reducePrecision(a6[1], 4)) + Math.max(0, reducePrecision(a6[2], 4)) >= 100 && (a6[0] = Number.NaN);
          break;
        case exports.ColorNotation.LCH:
          !Number.isNaN(a6[1]) && reducePrecision(a6[1], 4) <= 0 && (a6[2] = Number.NaN);
          break;
        case exports.ColorNotation.OKLCH:
          !Number.isNaN(a6[1]) && reducePrecision(a6[1], 6) <= 0 && (a6[2] = Number.NaN);
      }
      return a6;
    }
    function convertPowerlessComponentsToZeroValuesForDisplay(e5, o6) {
      const a6 = [...e5];
      switch (o6) {
        case exports.ColorNotation.HSL:
          (reducePrecision(a6[2]) <= 0 || reducePrecision(a6[2]) >= 100) && (a6[0] = Number.NaN, a6[1] = Number.NaN), reducePrecision(a6[1]) <= 0 && (a6[0] = Number.NaN);
          break;
        case exports.ColorNotation.HWB:
          Math.max(0, reducePrecision(a6[1])) + Math.max(0, reducePrecision(a6[2])) >= 100 && (a6[0] = Number.NaN);
          break;
        case exports.ColorNotation.Lab:
          (reducePrecision(a6[0]) <= 0 || reducePrecision(a6[0]) >= 100) && (a6[1] = Number.NaN, a6[2] = Number.NaN);
          break;
        case exports.ColorNotation.LCH:
          reducePrecision(a6[1]) <= 0 && (a6[2] = Number.NaN), (reducePrecision(a6[0]) <= 0 || reducePrecision(a6[0]) >= 100) && (a6[1] = Number.NaN, a6[2] = Number.NaN);
          break;
        case exports.ColorNotation.OKLab:
          (reducePrecision(a6[0]) <= 0 || reducePrecision(a6[0]) >= 1) && (a6[1] = Number.NaN, a6[2] = Number.NaN);
          break;
        case exports.ColorNotation.OKLCH:
          reducePrecision(a6[1]) <= 0 && (a6[2] = Number.NaN), (reducePrecision(a6[0]) <= 0 || reducePrecision(a6[0]) >= 1) && (a6[1] = Number.NaN, a6[2] = Number.NaN);
      }
      return a6;
    }
    function carryForwardMissingComponents(e5, o6, a6, n7) {
      const t5 = [...a6];
      for (const a7 of o6) Number.isNaN(e5[o6[a7]]) && (t5[n7[a7]] = Number.NaN);
      return t5;
    }
    function normalizeRelativeColorDataChannels(e5) {
      const o6 = /* @__PURE__ */ new Map();
      switch (e5.colorNotation) {
        case exports.ColorNotation.RGB:
        case exports.ColorNotation.HEX:
          o6.set("r", dummyNumberToken(255 * e5.channels[0])), o6.set("g", dummyNumberToken(255 * e5.channels[1])), o6.set("b", dummyNumberToken(255 * e5.channels[2])), "number" == typeof e5.alpha && o6.set("alpha", dummyNumberToken(e5.alpha));
          break;
        case exports.ColorNotation.HSL:
          o6.set("h", dummyNumberToken(e5.channels[0])), o6.set("s", dummyNumberToken(e5.channels[1])), o6.set("l", dummyNumberToken(e5.channels[2])), "number" == typeof e5.alpha && o6.set("alpha", dummyNumberToken(e5.alpha));
          break;
        case exports.ColorNotation.HWB:
          o6.set("h", dummyNumberToken(e5.channels[0])), o6.set("w", dummyNumberToken(e5.channels[1])), o6.set("b", dummyNumberToken(e5.channels[2])), "number" == typeof e5.alpha && o6.set("alpha", dummyNumberToken(e5.alpha));
          break;
        case exports.ColorNotation.Lab:
        case exports.ColorNotation.OKLab:
          o6.set("l", dummyNumberToken(e5.channels[0])), o6.set("a", dummyNumberToken(e5.channels[1])), o6.set("b", dummyNumberToken(e5.channels[2])), "number" == typeof e5.alpha && o6.set("alpha", dummyNumberToken(e5.alpha));
          break;
        case exports.ColorNotation.LCH:
        case exports.ColorNotation.OKLCH:
          o6.set("l", dummyNumberToken(e5.channels[0])), o6.set("c", dummyNumberToken(e5.channels[1])), o6.set("h", dummyNumberToken(e5.channels[2])), "number" == typeof e5.alpha && o6.set("alpha", dummyNumberToken(e5.alpha));
          break;
        case exports.ColorNotation.sRGB:
        case exports.ColorNotation.A98_RGB:
        case exports.ColorNotation.Display_P3:
        case exports.ColorNotation.Linear_Display_P3:
        case exports.ColorNotation.Rec2020:
        case exports.ColorNotation.Linear_sRGB:
        case exports.ColorNotation.ProPhoto_RGB:
          o6.set("r", dummyNumberToken(e5.channels[0])), o6.set("g", dummyNumberToken(e5.channels[1])), o6.set("b", dummyNumberToken(e5.channels[2])), "number" == typeof e5.alpha && o6.set("alpha", dummyNumberToken(e5.alpha));
          break;
        case exports.ColorNotation.XYZ_D50:
        case exports.ColorNotation.XYZ_D65:
          o6.set("x", dummyNumberToken(e5.channels[0])), o6.set("y", dummyNumberToken(e5.channels[1])), o6.set("z", dummyNumberToken(e5.channels[2])), "number" == typeof e5.alpha && o6.set("alpha", dummyNumberToken(e5.alpha));
      }
      return o6;
    }
    function noneToZeroInRelativeColorDataChannels(e5) {
      const o6 = new Map(e5);
      for (const [a6, n7] of e5) Number.isNaN(n7[4].value) && o6.set(a6, dummyNumberToken(0));
      return o6;
    }
    function dummyNumberToken(e5) {
      return Number.isNaN(e5) ? [a5.TokenType.Number, "none", -1, -1, { value: Number.NaN, type: a5.NumberType.Number }] : [a5.TokenType.Number, e5.toString(), -1, -1, { value: e5, type: a5.NumberType.Number }];
    }
    function reducePrecision(e5, o6 = 7) {
      if (Number.isNaN(e5)) return 0;
      const a6 = Math.pow(10, o6);
      return Math.round(e5 * a6) / a6;
    }
    function normalize4(e5, o6, a6, n7) {
      return Math.min(Math.max(e5 / o6, a6), n7);
    }
    var s4 = /[A-Z]/g;
    function toLowerCaseAZ(e5) {
      return e5.replace(s4, (e6) => String.fromCharCode(e6.charCodeAt(0) + 32));
    }
    function normalize_Color_ChannelValues(e5, o6, n7) {
      if (a5.isTokenIdent(e5) && "none" === toLowerCaseAZ(e5[4].value)) return n7.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords), [a5.TokenType.Number, "none", e5[2], e5[3], { value: Number.NaN, type: a5.NumberType.Number }];
      if (a5.isTokenPercentage(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);
        let t5 = normalize4(e5[4].value, 100, -2147483647, 2147483647);
        return 3 === o6 && (t5 = normalize4(e5[4].value, 100, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      if (a5.isTokenNumber(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);
        let t5 = normalize4(e5[4].value, 1, -2147483647, 2147483647);
        return 3 === o6 && (t5 = normalize4(e5[4].value, 1, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      return false;
    }
    var i5 = /* @__PURE__ */ new Set(["srgb", "srgb-linear", "display-p3", "display-p3-linear", "a98-rgb", "prophoto-rgb", "rec2020", "xyz", "xyz-d50", "xyz-d65"]);
    function color$1(e5, o6) {
      const n7 = [], l5 = [], s5 = [], u6 = [];
      let c7, p4, N2 = false, m3 = false;
      const h4 = { colorNotation: exports.ColorNotation.sRGB, channels: [0, 0, 0], alpha: 1, syntaxFlags: /* @__PURE__ */ new Set([]) };
      let x = n7;
      for (let y4 = 0; y4 < e5.value.length; y4++) {
        let b4 = e5.value[y4];
        if (t4.isWhitespaceNode(b4) || t4.isCommentNode(b4)) for (; t4.isWhitespaceNode(e5.value[y4 + 1]) || t4.isCommentNode(e5.value[y4 + 1]); ) y4++;
        else if (x === n7 && n7.length && (x = l5), x === l5 && l5.length && (x = s5), t4.isTokenNode(b4) && a5.isTokenDelim(b4.value) && "/" === b4.value[4].value) {
          if (x === u6) return false;
          x = u6;
        } else {
          if (t4.isFunctionNode(b4)) {
            if (x === u6 && "var" === toLowerCaseAZ(b4.getName())) {
              h4.syntaxFlags.add(exports.SyntaxFlag.HasVariableAlpha), x.push(b4);
              continue;
            }
            if (!r4.mathFunctionNames.has(toLowerCaseAZ(b4.getName()))) return false;
            const [[e6]] = r4.calcFromComponentValues([[b4]], { censorIntoStandardRepresentableValues: true, globals: p4, precision: -1, toCanonicalUnits: true, rawPercentages: true });
            if (!e6 || !t4.isTokenNode(e6) || !a5.isTokenNumeric(e6.value)) return false;
            Number.isNaN(e6.value[4].value) && (e6.value[4].value = 0), b4 = e6;
          }
          if (x === n7 && 0 === n7.length && t4.isTokenNode(b4) && a5.isTokenIdent(b4.value) && i5.has(toLowerCaseAZ(b4.value[4].value))) {
            if (N2) return false;
            N2 = toLowerCaseAZ(b4.value[4].value), h4.colorNotation = colorSpaceNameToColorNotation(N2), m3 && (m3.colorNotation !== h4.colorNotation && (m3 = colorDataTo(m3, h4.colorNotation)), c7 = normalizeRelativeColorDataChannels(m3), p4 = noneToZeroInRelativeColorDataChannels(c7));
          } else if (x === n7 && 0 === n7.length && t4.isTokenNode(b4) && a5.isTokenIdent(b4.value) && "from" === toLowerCaseAZ(b4.value[4].value)) {
            if (m3) return false;
            if (N2) return false;
            for (; t4.isWhitespaceNode(e5.value[y4 + 1]) || t4.isCommentNode(e5.value[y4 + 1]); ) y4++;
            if (y4++, b4 = e5.value[y4], m3 = o6(b4), false === m3) return false;
            m3.syntaxFlags.has(exports.SyntaxFlag.Experimental) && h4.syntaxFlags.add(exports.SyntaxFlag.Experimental), h4.syntaxFlags.add(exports.SyntaxFlag.RelativeColorSyntax);
          } else {
            if (!t4.isTokenNode(b4)) return false;
            if (a5.isTokenIdent(b4.value) && c7 && c7.has(toLowerCaseAZ(b4.value[4].value))) {
              x.push(new t4.TokenNode(c7.get(toLowerCaseAZ(b4.value[4].value))));
              continue;
            }
            x.push(b4);
          }
        }
      }
      if (!N2) return false;
      if (1 !== x.length) return false;
      if (1 !== n7.length || 1 !== l5.length || 1 !== s5.length) return false;
      if (!t4.isTokenNode(n7[0]) || !t4.isTokenNode(l5[0]) || !t4.isTokenNode(s5[0])) return false;
      if (c7 && !c7.has("alpha")) return false;
      const y3 = normalize_Color_ChannelValues(n7[0].value, 0, h4);
      if (!y3 || !a5.isTokenNumber(y3)) return false;
      const b3 = normalize_Color_ChannelValues(l5[0].value, 1, h4);
      if (!b3 || !a5.isTokenNumber(b3)) return false;
      const C = normalize_Color_ChannelValues(s5[0].value, 2, h4);
      if (!C || !a5.isTokenNumber(C)) return false;
      const d3 = [y3, b3, C];
      if (1 === u6.length) if (h4.syntaxFlags.add(exports.SyntaxFlag.HasAlpha), t4.isTokenNode(u6[0])) {
        const e6 = normalize_Color_ChannelValues(u6[0].value, 3, h4);
        if (!e6 || !a5.isTokenNumber(e6)) return false;
        d3.push(e6);
      } else h4.alpha = u6[0];
      else if (c7 && c7.has("alpha")) {
        const e6 = normalize_Color_ChannelValues(c7.get("alpha"), 3, h4);
        if (!e6 || !a5.isTokenNumber(e6)) return false;
        d3.push(e6);
      }
      return h4.channels = [d3[0][4].value, d3[1][4].value, d3[2][4].value], 4 === d3.length && (h4.alpha = d3[3][4].value), h4;
    }
    function colorSpaceNameToColorNotation(e5) {
      switch (e5) {
        case "srgb":
          return exports.ColorNotation.sRGB;
        case "srgb-linear":
          return exports.ColorNotation.Linear_sRGB;
        case "display-p3":
          return exports.ColorNotation.Display_P3;
        case "display-p3-linear":
          return exports.ColorNotation.Linear_Display_P3;
        case "a98-rgb":
          return exports.ColorNotation.A98_RGB;
        case "prophoto-rgb":
          return exports.ColorNotation.ProPhoto_RGB;
        case "rec2020":
          return exports.ColorNotation.Rec2020;
        case "xyz":
        case "xyz-d65":
          return exports.ColorNotation.XYZ_D65;
        case "xyz-d50":
          return exports.ColorNotation.XYZ_D50;
        default:
          throw new Error("Unknown color space name: " + e5);
      }
    }
    var u5 = /* @__PURE__ */ new Set(["srgb", "srgb-linear", "display-p3", "display-p3-linear", "a98-rgb", "prophoto-rgb", "rec2020", "lab", "oklab", "xyz", "xyz-d50", "xyz-d65"]);
    var c6 = /* @__PURE__ */ new Set(["hsl", "hwb", "lch", "oklch"]);
    var p3 = /* @__PURE__ */ new Set(["shorter", "longer", "increasing", "decreasing"]);
    function colorMix(e5, o6) {
      let n7 = null, r5 = null, l5 = null, s5 = false;
      for (let i6 = 0; i6 < e5.value.length; i6++) {
        const N2 = e5.value[i6];
        if (!t4.isWhiteSpaceOrCommentNode(N2)) {
          if (!(n7 || t4.isTokenNode(N2) && a5.isTokenIdent(N2.value) && "in" === toLowerCaseAZ(N2.value[4].value))) return colorMixRectangular("oklab", colorMixComponents(e5.value, o6));
          if (t4.isTokenNode(N2) && a5.isTokenIdent(N2.value)) {
            if (!n7 && "in" === toLowerCaseAZ(N2.value[4].value)) {
              n7 = N2;
              continue;
            }
            if (n7 && !r5) {
              r5 = toLowerCaseAZ(N2.value[4].value);
              continue;
            }
            if (n7 && r5 && !l5 && c6.has(r5)) {
              l5 = toLowerCaseAZ(N2.value[4].value);
              continue;
            }
            if (n7 && r5 && l5 && !s5 && "hue" === toLowerCaseAZ(N2.value[4].value)) {
              s5 = true;
              continue;
            }
            return false;
          }
          return !(!t4.isTokenNode(N2) || !a5.isTokenComma(N2.value)) && (!!r5 && (l5 || s5 ? !!(r5 && l5 && s5 && c6.has(r5) && p3.has(l5)) && colorMixPolar(r5, l5, colorMixComponents(e5.value.slice(i6 + 1), o6)) : u5.has(r5) ? colorMixRectangular(r5, colorMixComponents(e5.value.slice(i6 + 1), o6)) : !!c6.has(r5) && colorMixPolar(r5, "shorter", colorMixComponents(e5.value.slice(i6 + 1), o6))));
        }
      }
      return false;
    }
    function colorMixComponents(e5, o6) {
      const n7 = [];
      let l5 = 1, s5 = false, i6 = false;
      for (let l6 = 0; l6 < e5.length; l6++) {
        let u7 = e5[l6];
        if (!t4.isWhiteSpaceOrCommentNode(u7)) {
          if (!t4.isTokenNode(u7) || !a5.isTokenComma(u7.value)) {
            if (!s5) {
              const e6 = o6(u7);
              if (e6) {
                s5 = e6;
                continue;
              }
            }
            if (!i6) {
              if (t4.isFunctionNode(u7) && r4.mathFunctionNames.has(toLowerCaseAZ(u7.getName()))) {
                if ([[u7]] = r4.calcFromComponentValues([[u7]], { censorIntoStandardRepresentableValues: true, precision: -1, toCanonicalUnits: true, rawPercentages: true }), !u7 || !t4.isTokenNode(u7) || !a5.isTokenNumeric(u7.value)) return false;
                Number.isNaN(u7.value[4].value) && (u7.value[4].value = 0);
              }
              if (t4.isTokenNode(u7) && a5.isTokenPercentage(u7.value) && u7.value[4].value >= 0) {
                i6 = u7.value[4].value;
                continue;
              }
            }
            return false;
          }
          if (!s5) return false;
          n7.push({ color: s5, percentage: i6 }), s5 = false, i6 = false;
        }
      }
      if (!s5) return false;
      n7.push({ color: s5, percentage: i6 });
      let u6 = 0, c7 = 0;
      for (let e6 = 0; e6 < n7.length; e6++) {
        const o7 = n7[e6].percentage;
        if (false !== o7) {
          if (o7 < 0 || o7 > 100) return false;
          u6 += o7;
        } else c7++;
      }
      const p4 = Math.max(0, 100 - u6);
      u6 = 0;
      for (let e6 = 0; e6 < n7.length; e6++) false === n7[e6].percentage && (n7[e6].percentage = p4 / c7), u6 += n7[e6].percentage;
      if (0 === u6) return { colors: [{ color: { channels: [0, 0, 0], colorNotation: exports.ColorNotation.sRGB, alpha: 0, syntaxFlags: /* @__PURE__ */ new Set() }, percentage: 0 }], alphaMultiplier: 0 };
      if (u6 > 100) for (let e6 = 0; e6 < n7.length; e6++) {
        let o7 = n7[e6].percentage;
        o7 = o7 / u6 * 100, n7[e6].percentage = o7;
      }
      if (u6 < 100) {
        l5 = u6 / 100;
        for (let e6 = 0; e6 < n7.length; e6++) {
          let o7 = n7[e6].percentage;
          o7 = o7 / u6 * 100, n7[e6].percentage = o7;
        }
      }
      return { colors: n7, alphaMultiplier: l5 };
    }
    function colorMixRectangular(e5, o6) {
      if (!o6 || !o6.colors.length) return false;
      const a6 = o6.colors.slice();
      a6.reverse();
      let n7 = exports.ColorNotation.RGB;
      switch (e5) {
        case "srgb":
          n7 = exports.ColorNotation.RGB;
          break;
        case "srgb-linear":
          n7 = exports.ColorNotation.Linear_sRGB;
          break;
        case "display-p3":
          n7 = exports.ColorNotation.Display_P3;
          break;
        case "display-p3-linear":
          n7 = exports.ColorNotation.Linear_Display_P3;
          break;
        case "a98-rgb":
          n7 = exports.ColorNotation.A98_RGB;
          break;
        case "prophoto-rgb":
          n7 = exports.ColorNotation.ProPhoto_RGB;
          break;
        case "rec2020":
          n7 = exports.ColorNotation.Rec2020;
          break;
        case "lab":
          n7 = exports.ColorNotation.Lab;
          break;
        case "oklab":
          n7 = exports.ColorNotation.OKLab;
          break;
        case "xyz-d50":
          n7 = exports.ColorNotation.XYZ_D50;
          break;
        case "xyz":
        case "xyz-d65":
          n7 = exports.ColorNotation.XYZ_D65;
          break;
        default:
          return false;
      }
      if (1 === a6.length) {
        const e6 = colorDataTo(a6[0].color, n7);
        return e6.colorNotation = n7, e6.syntaxFlags.add(exports.SyntaxFlag.ColorMixVariadic), "number" != typeof e6.alpha ? false : (e6.alpha = e6.alpha * o6.alphaMultiplier, e6);
      }
      for (; a6.length >= 2; ) {
        const e6 = a6.pop(), o7 = a6.pop();
        if (!e6 || !o7) return false;
        const t6 = colorMixRectangularPair(n7, e6.color, e6.percentage, o7.color, o7.percentage);
        if (!t6) return false;
        a6.push({ color: t6, percentage: e6.percentage + o7.percentage });
      }
      const t5 = a6[0]?.color;
      return !!t5 && (o6.colors.some((e6) => e6.color.syntaxFlags.has(exports.SyntaxFlag.Experimental)) && t5.syntaxFlags.add(exports.SyntaxFlag.Experimental), "number" == typeof t5.alpha && (t5.alpha = t5.alpha * o6.alphaMultiplier, 2 !== o6.colors.length && t5.syntaxFlags.add(exports.SyntaxFlag.ColorMixVariadic), t5));
    }
    function colorMixRectangularPair(e5, o6, a6, n7, t5) {
      const r5 = a6 / (a6 + t5);
      let l5 = o6.alpha;
      if ("number" != typeof l5) return false;
      let s5 = n7.alpha;
      if ("number" != typeof s5) return false;
      l5 = Number.isNaN(l5) ? s5 : l5, s5 = Number.isNaN(s5) ? l5 : s5;
      const i6 = colorDataTo(o6, e5).channels, u6 = colorDataTo(n7, e5).channels;
      i6[0] = fillInMissingComponent(i6[0], u6[0]), u6[0] = fillInMissingComponent(u6[0], i6[0]), i6[1] = fillInMissingComponent(i6[1], u6[1]), u6[1] = fillInMissingComponent(u6[1], i6[1]), i6[2] = fillInMissingComponent(i6[2], u6[2]), u6[2] = fillInMissingComponent(u6[2], i6[2]), i6[0] = premultiply(i6[0], l5), i6[1] = premultiply(i6[1], l5), i6[2] = premultiply(i6[2], l5), u6[0] = premultiply(u6[0], s5), u6[1] = premultiply(u6[1], s5), u6[2] = premultiply(u6[2], s5);
      const c7 = interpolate(l5, s5, r5);
      return { colorNotation: e5, channels: [un_premultiply(interpolate(i6[0], u6[0], r5), c7), un_premultiply(interpolate(i6[1], u6[1], r5), c7), un_premultiply(interpolate(i6[2], u6[2], r5), c7)], alpha: c7, syntaxFlags: /* @__PURE__ */ new Set([exports.SyntaxFlag.ColorMix]) };
    }
    function colorMixPolar(e5, o6, a6) {
      if (!a6 || !a6.colors.length) return false;
      const n7 = a6.colors.slice();
      n7.reverse();
      let t5 = exports.ColorNotation.HSL;
      switch (e5) {
        case "hsl":
          t5 = exports.ColorNotation.HSL;
          break;
        case "hwb":
          t5 = exports.ColorNotation.HWB;
          break;
        case "lch":
          t5 = exports.ColorNotation.LCH;
          break;
        case "oklch":
          t5 = exports.ColorNotation.OKLCH;
          break;
        default:
          return false;
      }
      if (1 === n7.length) {
        const e6 = colorDataTo(n7[0].color, t5);
        return e6.colorNotation = t5, e6.syntaxFlags.add(exports.SyntaxFlag.ColorMixVariadic), "number" != typeof e6.alpha ? false : (e6.alpha = e6.alpha * a6.alphaMultiplier, e6);
      }
      for (; n7.length >= 2; ) {
        const e6 = n7.pop(), a7 = n7.pop();
        if (!e6 || !a7) return false;
        const r6 = colorMixPolarPair(t5, o6, e6.color, e6.percentage, a7.color, a7.percentage);
        if (!r6) return false;
        n7.push({ color: r6, percentage: e6.percentage + a7.percentage });
      }
      const r5 = n7[0]?.color;
      return !!r5 && (a6.colors.some((e6) => e6.color.syntaxFlags.has(exports.SyntaxFlag.Experimental)) && r5.syntaxFlags.add(exports.SyntaxFlag.Experimental), "number" == typeof r5.alpha && (r5.alpha = r5.alpha * a6.alphaMultiplier, 2 !== a6.colors.length && r5.syntaxFlags.add(exports.SyntaxFlag.ColorMixVariadic), r5));
    }
    function colorMixPolarPair(e5, o6, a6, n7, t5, r5) {
      const l5 = n7 / (n7 + r5);
      let s5 = 0, i6 = 0, u6 = 0, c7 = 0, p4 = 0, N2 = 0, m3 = a6.alpha;
      if ("number" != typeof m3) return false;
      let h4 = t5.alpha;
      if ("number" != typeof h4) return false;
      m3 = Number.isNaN(m3) ? h4 : m3, h4 = Number.isNaN(h4) ? m3 : h4;
      const x = colorDataTo(a6, e5).channels, y3 = colorDataTo(t5, e5).channels;
      switch (e5) {
        case exports.ColorNotation.HSL:
        case exports.ColorNotation.HWB:
          s5 = x[0], i6 = y3[0], u6 = x[1], c7 = y3[1], p4 = x[2], N2 = y3[2];
          break;
        case exports.ColorNotation.LCH:
        case exports.ColorNotation.OKLCH:
          u6 = x[0], c7 = y3[0], p4 = x[1], N2 = y3[1], s5 = x[2], i6 = y3[2];
      }
      s5 = fillInMissingComponent(s5, i6), Number.isNaN(s5) && (s5 = 0), i6 = fillInMissingComponent(i6, s5), Number.isNaN(i6) && (i6 = 0), u6 = fillInMissingComponent(u6, c7), c7 = fillInMissingComponent(c7, u6), p4 = fillInMissingComponent(p4, N2), N2 = fillInMissingComponent(N2, p4);
      const b3 = i6 - s5;
      switch (o6) {
        case "shorter":
          b3 > 180 ? s5 += 360 : b3 < -180 && (i6 += 360);
          break;
        case "longer":
          -180 < b3 && b3 < 180 && (b3 > 0 ? s5 += 360 : i6 += 360);
          break;
        case "increasing":
          b3 < 0 && (i6 += 360);
          break;
        case "decreasing":
          b3 > 0 && (s5 += 360);
          break;
        default:
          throw new Error("Unknown hue interpolation method");
      }
      u6 = premultiply(u6, m3), p4 = premultiply(p4, m3), c7 = premultiply(c7, h4), N2 = premultiply(N2, h4);
      let C = [0, 0, 0];
      const d3 = interpolate(m3, h4, l5);
      switch (e5) {
        case exports.ColorNotation.HSL:
        case exports.ColorNotation.HWB:
          C = [interpolate(s5, i6, l5), un_premultiply(interpolate(u6, c7, l5), d3), un_premultiply(interpolate(p4, N2, l5), d3)];
          break;
        case exports.ColorNotation.LCH:
        case exports.ColorNotation.OKLCH:
          C = [un_premultiply(interpolate(u6, c7, l5), d3), un_premultiply(interpolate(p4, N2, l5), d3), interpolate(s5, i6, l5)];
      }
      return { colorNotation: e5, channels: C, alpha: d3, syntaxFlags: /* @__PURE__ */ new Set([exports.SyntaxFlag.ColorMix]) };
    }
    function fillInMissingComponent(e5, o6) {
      return Number.isNaN(e5) ? o6 : e5;
    }
    function interpolate(e5, o6, a6) {
      return e5 * a6 + o6 * (1 - a6);
    }
    function premultiply(e5, o6) {
      return Number.isNaN(o6) ? e5 : Number.isNaN(e5) ? Number.NaN : e5 * o6;
    }
    function un_premultiply(e5, o6) {
      return 0 === o6 || Number.isNaN(o6) ? e5 : Number.isNaN(e5) ? Number.NaN : e5 / o6;
    }
    function hex(e5) {
      const o6 = toLowerCaseAZ(e5[4].value);
      if (o6.match(/[^a-f0-9]/)) return false;
      const a6 = { colorNotation: exports.ColorNotation.HEX, channels: [0, 0, 0], alpha: 1, syntaxFlags: /* @__PURE__ */ new Set([exports.SyntaxFlag.Hex]) }, n7 = o6.length;
      if (3 === n7) {
        const e6 = o6[0], n8 = o6[1], t5 = o6[2];
        return a6.channels = [parseInt(e6 + e6, 16) / 255, parseInt(n8 + n8, 16) / 255, parseInt(t5 + t5, 16) / 255], a6;
      }
      if (6 === n7) {
        const e6 = o6[0] + o6[1], n8 = o6[2] + o6[3], t5 = o6[4] + o6[5];
        return a6.channels = [parseInt(e6, 16) / 255, parseInt(n8, 16) / 255, parseInt(t5, 16) / 255], a6;
      }
      if (4 === n7) {
        const e6 = o6[0], n8 = o6[1], t5 = o6[2], r5 = o6[3];
        return a6.channels = [parseInt(e6 + e6, 16) / 255, parseInt(n8 + n8, 16) / 255, parseInt(t5 + t5, 16) / 255], a6.alpha = parseInt(r5 + r5, 16) / 255, a6.syntaxFlags.add(exports.SyntaxFlag.HasAlpha), a6;
      }
      if (8 === n7) {
        const e6 = o6[0] + o6[1], n8 = o6[2] + o6[3], t5 = o6[4] + o6[5], r5 = o6[6] + o6[7];
        return a6.channels = [parseInt(e6, 16) / 255, parseInt(n8, 16) / 255, parseInt(t5, 16) / 255], a6.alpha = parseInt(r5, 16) / 255, a6.syntaxFlags.add(exports.SyntaxFlag.HasAlpha), a6;
      }
      return false;
    }
    function normalizeHue(e5) {
      if (a5.isTokenNumber(e5)) return e5[4].value = e5[4].value % 360, e5[1] = e5[4].value.toString(), e5;
      if (a5.isTokenDimension(e5)) {
        let o6 = e5[4].value;
        switch (toLowerCaseAZ(e5[4].unit)) {
          case "deg":
            break;
          case "rad":
            o6 = 180 * e5[4].value / Math.PI;
            break;
          case "grad":
            o6 = 0.9 * e5[4].value;
            break;
          case "turn":
            o6 = 360 * e5[4].value;
            break;
          default:
            return false;
        }
        return o6 %= 360, [a5.TokenType.Number, o6.toString(), e5[2], e5[3], { value: o6, type: a5.NumberType.Number }];
      }
      return false;
    }
    function normalize_legacy_HSL_ChannelValues(e5, o6, n7) {
      if (0 === o6) {
        const o7 = normalizeHue(e5);
        return false !== o7 && (a5.isTokenDimension(e5) && n7.syntaxFlags.add(exports.SyntaxFlag.HasDimensionValues), o7);
      }
      if (a5.isTokenPercentage(e5)) {
        3 === o6 ? n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageAlpha) : n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);
        let t5 = normalize4(e5[4].value, 1, 0, 100);
        return 3 === o6 && (t5 = normalize4(e5[4].value, 100, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      if (a5.isTokenNumber(e5)) {
        if (3 !== o6) return false;
        let n8 = normalize4(e5[4].value, 1, 0, 100);
        return 3 === o6 && (n8 = normalize4(e5[4].value, 1, 0, 1)), [a5.TokenType.Number, n8.toString(), e5[2], e5[3], { value: n8, type: a5.NumberType.Number }];
      }
      return false;
    }
    function normalize_modern_HSL_ChannelValues(e5, o6, n7) {
      if (a5.isTokenIdent(e5) && "none" === toLowerCaseAZ(e5[4].value)) return n7.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords), [a5.TokenType.Number, "none", e5[2], e5[3], { value: Number.NaN, type: a5.NumberType.Number }];
      if (0 === o6) {
        const o7 = normalizeHue(e5);
        return false !== o7 && (a5.isTokenDimension(e5) && n7.syntaxFlags.add(exports.SyntaxFlag.HasDimensionValues), o7);
      }
      if (a5.isTokenPercentage(e5)) {
        3 === o6 ? n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageAlpha) : n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);
        let t5 = e5[4].value;
        return 3 === o6 ? t5 = normalize4(e5[4].value, 100, 0, 1) : 1 === o6 && (t5 = normalize4(e5[4].value, 1, 0, 2147483647)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      if (a5.isTokenNumber(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);
        let t5 = e5[4].value;
        return 3 === o6 ? t5 = normalize4(e5[4].value, 1, 0, 1) : 1 === o6 && (t5 = normalize4(e5[4].value, 1, 0, 2147483647)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      return false;
    }
    function threeChannelLegacySyntax(e5, o6, n7, l5) {
      const s5 = [], i6 = [], u6 = [], c7 = [], p4 = { colorNotation: n7, channels: [0, 0, 0], alpha: 1, syntaxFlags: new Set(l5) };
      let N2 = s5;
      for (let o7 = 0; o7 < e5.value.length; o7++) {
        let n8 = e5.value[o7];
        if (!t4.isWhitespaceNode(n8) && !t4.isCommentNode(n8)) {
          if (t4.isTokenNode(n8) && a5.isTokenComma(n8.value)) {
            if (N2 === s5) {
              N2 = i6;
              continue;
            }
            if (N2 === i6) {
              N2 = u6;
              continue;
            }
            if (N2 === u6) {
              N2 = c7;
              continue;
            }
            if (N2 === c7) return false;
          }
          if (t4.isFunctionNode(n8)) {
            if (N2 === c7 && "var" === n8.getName().toLowerCase()) {
              p4.syntaxFlags.add(exports.SyntaxFlag.HasVariableAlpha), N2.push(n8);
              continue;
            }
            if (!r4.mathFunctionNames.has(n8.getName().toLowerCase())) return false;
            const [[e6]] = r4.calcFromComponentValues([[n8]], { censorIntoStandardRepresentableValues: true, precision: -1, toCanonicalUnits: true, rawPercentages: true });
            if (!e6 || !t4.isTokenNode(e6) || !a5.isTokenNumeric(e6.value)) return false;
            Number.isNaN(e6.value[4].value) && (e6.value[4].value = 0), n8 = e6;
          }
          if (!t4.isTokenNode(n8)) return false;
          N2.push(n8);
        }
      }
      if (1 !== N2.length) return false;
      if (1 !== s5.length || 1 !== i6.length || 1 !== u6.length) return false;
      if (!t4.isTokenNode(s5[0]) || !t4.isTokenNode(i6[0]) || !t4.isTokenNode(u6[0])) return false;
      const m3 = o6(s5[0].value, 0, p4);
      if (!m3 || !a5.isTokenNumber(m3)) return false;
      const h4 = o6(i6[0].value, 1, p4);
      if (!h4 || !a5.isTokenNumber(h4)) return false;
      const x = o6(u6[0].value, 2, p4);
      if (!x || !a5.isTokenNumber(x)) return false;
      const y3 = [m3, h4, x];
      if (1 === c7.length) if (p4.syntaxFlags.add(exports.SyntaxFlag.HasAlpha), t4.isTokenNode(c7[0])) {
        const e6 = o6(c7[0].value, 3, p4);
        if (!e6 || !a5.isTokenNumber(e6)) return false;
        y3.push(e6);
      } else p4.alpha = c7[0];
      return p4.channels = [y3[0][4].value, y3[1][4].value, y3[2][4].value], 4 === y3.length && (p4.alpha = y3[3][4].value), p4;
    }
    function threeChannelSpaceSeparated(e5, o6, n7, l5, s5) {
      const i6 = [], u6 = [], c7 = [], p4 = [];
      let N2, m3, h4 = false;
      const x = { colorNotation: n7, channels: [0, 0, 0], alpha: 1, syntaxFlags: new Set(l5) };
      let y3 = i6;
      for (let o7 = 0; o7 < e5.value.length; o7++) {
        let l6 = e5.value[o7];
        if (t4.isWhitespaceNode(l6) || t4.isCommentNode(l6)) for (; t4.isWhitespaceNode(e5.value[o7 + 1]) || t4.isCommentNode(e5.value[o7 + 1]); ) o7++;
        else if (y3 === i6 && i6.length && (y3 = u6), y3 === u6 && u6.length && (y3 = c7), t4.isTokenNode(l6) && a5.isTokenDelim(l6.value) && "/" === l6.value[4].value) {
          if (y3 === p4) return false;
          y3 = p4;
        } else {
          if (t4.isFunctionNode(l6)) {
            if (y3 === p4 && "var" === l6.getName().toLowerCase()) {
              x.syntaxFlags.add(exports.SyntaxFlag.HasVariableAlpha), y3.push(l6);
              continue;
            }
            if (!r4.mathFunctionNames.has(l6.getName().toLowerCase())) return false;
            const [[e6]] = r4.calcFromComponentValues([[l6]], { censorIntoStandardRepresentableValues: true, globals: m3, precision: -1, toCanonicalUnits: true, rawPercentages: true });
            if (!e6 || !t4.isTokenNode(e6) || !a5.isTokenNumeric(e6.value)) return false;
            Number.isNaN(e6.value[4].value) && (e6.value[4].value = 0), l6 = e6;
          }
          if (y3 === i6 && 0 === i6.length && t4.isTokenNode(l6) && a5.isTokenIdent(l6.value) && "from" === l6.value[4].value.toLowerCase()) {
            if (h4) return false;
            for (; t4.isWhitespaceNode(e5.value[o7 + 1]) || t4.isCommentNode(e5.value[o7 + 1]); ) o7++;
            if (o7++, l6 = e5.value[o7], h4 = s5(l6), false === h4) return false;
            h4.syntaxFlags.has(exports.SyntaxFlag.Experimental) && x.syntaxFlags.add(exports.SyntaxFlag.Experimental), x.syntaxFlags.add(exports.SyntaxFlag.RelativeColorSyntax), h4.colorNotation !== n7 && (h4 = colorDataTo(h4, n7)), N2 = normalizeRelativeColorDataChannels(h4), m3 = noneToZeroInRelativeColorDataChannels(N2);
          } else {
            if (!t4.isTokenNode(l6)) return false;
            if (a5.isTokenIdent(l6.value) && N2) {
              const e6 = l6.value[4].value.toLowerCase();
              if (N2.has(e6)) {
                y3.push(new t4.TokenNode(N2.get(e6)));
                continue;
              }
            }
            y3.push(l6);
          }
        }
      }
      if (1 !== y3.length) return false;
      if (1 !== i6.length || 1 !== u6.length || 1 !== c7.length) return false;
      if (!t4.isTokenNode(i6[0]) || !t4.isTokenNode(u6[0]) || !t4.isTokenNode(c7[0])) return false;
      if (N2 && !N2.has("alpha")) return false;
      const b3 = o6(i6[0].value, 0, x);
      if (!b3 || !a5.isTokenNumber(b3)) return false;
      const C = o6(u6[0].value, 1, x);
      if (!C || !a5.isTokenNumber(C)) return false;
      const d3 = o6(c7[0].value, 2, x);
      if (!d3 || !a5.isTokenNumber(d3)) return false;
      const g3 = [b3, C, d3];
      if (1 === p4.length) if (x.syntaxFlags.add(exports.SyntaxFlag.HasAlpha), t4.isTokenNode(p4[0])) {
        const e6 = o6(p4[0].value, 3, x);
        if (!e6 || !a5.isTokenNumber(e6)) return false;
        g3.push(e6);
      } else x.alpha = p4[0];
      else if (N2 && N2.has("alpha")) {
        const e6 = o6(N2.get("alpha"), 3, x);
        if (!e6 || !a5.isTokenNumber(e6)) return false;
        g3.push(e6);
      }
      return x.channels = [g3[0][4].value, g3[1][4].value, g3[2][4].value], 4 === g3.length && (x.alpha = g3[3][4].value), x;
    }
    function hsl(e5, o6) {
      if (e5.value.some((e6) => t4.isTokenNode(e6) && a5.isTokenComma(e6.value))) {
        const o7 = hslCommaSeparated(e5);
        if (false !== o7) return o7;
      }
      {
        const a6 = hslSpaceSeparated(e5, o6);
        if (false !== a6) return a6;
      }
      return false;
    }
    function hslCommaSeparated(e5) {
      return threeChannelLegacySyntax(e5, normalize_legacy_HSL_ChannelValues, exports.ColorNotation.HSL, [exports.SyntaxFlag.LegacyHSL]);
    }
    function hslSpaceSeparated(e5, o6) {
      return threeChannelSpaceSeparated(e5, normalize_modern_HSL_ChannelValues, exports.ColorNotation.HSL, [], o6);
    }
    function normalize_HWB_ChannelValues(e5, o6, n7) {
      if (a5.isTokenIdent(e5) && "none" === toLowerCaseAZ(e5[4].value)) return n7.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords), [a5.TokenType.Number, "none", e5[2], e5[3], { value: Number.NaN, type: a5.NumberType.Number }];
      if (0 === o6) {
        const o7 = normalizeHue(e5);
        return false !== o7 && (a5.isTokenDimension(e5) && n7.syntaxFlags.add(exports.SyntaxFlag.HasDimensionValues), o7);
      }
      if (a5.isTokenPercentage(e5)) {
        3 === o6 ? n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageAlpha) : n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);
        let t5 = e5[4].value;
        return 3 === o6 && (t5 = normalize4(e5[4].value, 100, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      if (a5.isTokenNumber(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);
        let t5 = e5[4].value;
        return 3 === o6 && (t5 = normalize4(e5[4].value, 1, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      return false;
    }
    function normalize_Lab_ChannelValues(e5, o6, n7) {
      if (a5.isTokenIdent(e5) && "none" === toLowerCaseAZ(e5[4].value)) return n7.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords), [a5.TokenType.Number, "none", e5[2], e5[3], { value: Number.NaN, type: a5.NumberType.Number }];
      if (a5.isTokenPercentage(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);
        let t5 = normalize4(e5[4].value, 1, 0, 100);
        return 1 === o6 || 2 === o6 ? t5 = normalize4(e5[4].value, 0.8, -2147483647, 2147483647) : 3 === o6 && (t5 = normalize4(e5[4].value, 100, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      if (a5.isTokenNumber(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);
        let t5 = normalize4(e5[4].value, 1, 0, 100);
        return 1 === o6 || 2 === o6 ? t5 = normalize4(e5[4].value, 1, -2147483647, 2147483647) : 3 === o6 && (t5 = normalize4(e5[4].value, 1, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      return false;
    }
    function lab(e5, o6) {
      return threeChannelSpaceSeparated(e5, normalize_Lab_ChannelValues, exports.ColorNotation.Lab, [], o6);
    }
    function normalize_LCH_ChannelValues(e5, o6, n7) {
      if (a5.isTokenIdent(e5) && "none" === toLowerCaseAZ(e5[4].value)) return n7.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords), [a5.TokenType.Number, "none", e5[2], e5[3], { value: Number.NaN, type: a5.NumberType.Number }];
      if (2 === o6) {
        const o7 = normalizeHue(e5);
        return false !== o7 && (a5.isTokenDimension(e5) && n7.syntaxFlags.add(exports.SyntaxFlag.HasDimensionValues), o7);
      }
      if (a5.isTokenPercentage(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);
        let t5 = normalize4(e5[4].value, 1, 0, 100);
        return 1 === o6 ? t5 = normalize4(e5[4].value, 100 / 150, 0, 2147483647) : 3 === o6 && (t5 = normalize4(e5[4].value, 100, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      if (a5.isTokenNumber(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);
        let t5 = normalize4(e5[4].value, 1, 0, 100);
        return 1 === o6 ? t5 = normalize4(e5[4].value, 1, 0, 2147483647) : 3 === o6 && (t5 = normalize4(e5[4].value, 1, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      return false;
    }
    function lch(e5, o6) {
      return threeChannelSpaceSeparated(e5, normalize_LCH_ChannelValues, exports.ColorNotation.LCH, [], o6);
    }
    var N = /* @__PURE__ */ new Map();
    for (const [e5, o6] of Object.entries(n6.namedColors)) N.set(e5, o6);
    function namedColor(e5) {
      const o6 = N.get(toLowerCaseAZ(e5));
      return !!o6 && { colorNotation: exports.ColorNotation.RGB, channels: [o6[0] / 255, o6[1] / 255, o6[2] / 255], alpha: 1, syntaxFlags: /* @__PURE__ */ new Set([exports.SyntaxFlag.ColorKeyword, exports.SyntaxFlag.NamedColor]) };
    }
    function normalize_OKLab_ChannelValues(e5, o6, n7) {
      if (a5.isTokenIdent(e5) && "none" === toLowerCaseAZ(e5[4].value)) return n7.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords), [a5.TokenType.Number, "none", e5[2], e5[3], { value: Number.NaN, type: a5.NumberType.Number }];
      if (a5.isTokenPercentage(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);
        let t5 = normalize4(e5[4].value, 100, 0, 1);
        return 1 === o6 || 2 === o6 ? t5 = normalize4(e5[4].value, 250, -2147483647, 2147483647) : 3 === o6 && (t5 = normalize4(e5[4].value, 100, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      if (a5.isTokenNumber(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);
        let t5 = normalize4(e5[4].value, 1, 0, 1);
        return 1 === o6 || 2 === o6 ? t5 = normalize4(e5[4].value, 1, -2147483647, 2147483647) : 3 === o6 && (t5 = normalize4(e5[4].value, 1, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      return false;
    }
    function oklab(e5, o6) {
      return threeChannelSpaceSeparated(e5, normalize_OKLab_ChannelValues, exports.ColorNotation.OKLab, [], o6);
    }
    function normalize_OKLCH_ChannelValues(e5, o6, n7) {
      if (a5.isTokenIdent(e5) && "none" === toLowerCaseAZ(e5[4].value)) return n7.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords), [a5.TokenType.Number, "none", e5[2], e5[3], { value: Number.NaN, type: a5.NumberType.Number }];
      if (2 === o6) {
        const o7 = normalizeHue(e5);
        return false !== o7 && (a5.isTokenDimension(e5) && n7.syntaxFlags.add(exports.SyntaxFlag.HasDimensionValues), o7);
      }
      if (a5.isTokenPercentage(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);
        let t5 = normalize4(e5[4].value, 100, 0, 1);
        return 1 === o6 ? t5 = normalize4(e5[4].value, 250, 0, 2147483647) : 3 === o6 && (t5 = normalize4(e5[4].value, 100, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      if (a5.isTokenNumber(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);
        let t5 = normalize4(e5[4].value, 1, 0, 1);
        return 1 === o6 ? t5 = normalize4(e5[4].value, 1, 0, 2147483647) : 3 === o6 && (t5 = normalize4(e5[4].value, 1, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      return false;
    }
    function oklch(e5, o6) {
      return threeChannelSpaceSeparated(e5, normalize_OKLCH_ChannelValues, exports.ColorNotation.OKLCH, [], o6);
    }
    function normalize_legacy_sRGB_ChannelValues(e5, o6, n7) {
      if (a5.isTokenPercentage(e5)) {
        3 === o6 ? n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageAlpha) : n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);
        const t5 = normalize4(e5[4].value, 100, 0, 1);
        return [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      if (a5.isTokenNumber(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);
        let t5 = normalize4(e5[4].value, 255, 0, 1);
        return 3 === o6 && (t5 = normalize4(e5[4].value, 1, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      return false;
    }
    function normalize_modern_sRGB_ChannelValues(e5, o6, n7) {
      if (a5.isTokenIdent(e5) && "none" === e5[4].value.toLowerCase()) return n7.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords), [a5.TokenType.Number, "none", e5[2], e5[3], { value: Number.NaN, type: a5.NumberType.Number }];
      if (a5.isTokenPercentage(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);
        let t5 = normalize4(e5[4].value, 100, -2147483647, 2147483647);
        return 3 === o6 && (t5 = normalize4(e5[4].value, 100, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      if (a5.isTokenNumber(e5)) {
        3 !== o6 && n7.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);
        let t5 = normalize4(e5[4].value, 255, -2147483647, 2147483647);
        return 3 === o6 && (t5 = normalize4(e5[4].value, 1, 0, 1)), [a5.TokenType.Number, t5.toString(), e5[2], e5[3], { value: t5, type: a5.NumberType.Number }];
      }
      return false;
    }
    function rgb(e5, o6) {
      if (e5.value.some((e6) => t4.isTokenNode(e6) && a5.isTokenComma(e6.value))) {
        const o7 = rgbCommaSeparated(e5);
        if (false !== o7) return (!o7.syntaxFlags.has(exports.SyntaxFlag.HasNumberValues) || !o7.syntaxFlags.has(exports.SyntaxFlag.HasPercentageValues)) && o7;
      } else {
        const a6 = rgbSpaceSeparated(e5, o6);
        if (false !== a6) return a6;
      }
      return false;
    }
    function rgbCommaSeparated(e5) {
      return threeChannelLegacySyntax(e5, normalize_legacy_sRGB_ChannelValues, exports.ColorNotation.RGB, [exports.SyntaxFlag.LegacyRGB]);
    }
    function rgbSpaceSeparated(e5, o6) {
      return threeChannelSpaceSeparated(e5, normalize_modern_sRGB_ChannelValues, exports.ColorNotation.RGB, [], o6);
    }
    function XYZ_D50_to_sRGB_Gamut(e5) {
      const o6 = n6.XYZ_D50_to_sRGB(e5);
      if (n6.inGamut(o6)) return n6.clip(o6);
      let a6 = e5;
      return a6 = n6.XYZ_D50_to_OKLCH(a6), a6[0] < 1e-6 && (a6 = [0, 0, 0]), a6[0] > 0.999999 && (a6 = [1, 0, 0]), n6.gam_sRGB(n6.mapGamutRayTrace(a6, oklch_to_lin_srgb, lin_srgb_to_oklch));
    }
    function oklch_to_lin_srgb(e5) {
      return e5 = n6.OKLCH_to_OKLab(e5), e5 = n6.OKLab_to_XYZ(e5), n6.XYZ_to_lin_sRGB(e5);
    }
    function lin_srgb_to_oklch(e5) {
      return e5 = n6.lin_sRGB_to_XYZ(e5), e5 = n6.XYZ_to_OKLab(e5), n6.OKLab_to_OKLCH(e5);
    }
    function contrastColor(e5, o6) {
      let a6 = false;
      for (let n7 = 0; n7 < e5.value.length; n7++) {
        const r6 = e5.value[n7];
        if (!t4.isWhitespaceNode(r6) && !t4.isCommentNode(r6) && (a6 || (a6 = o6(r6), !a6))) return false;
      }
      if (!a6) return false;
      a6.channels = convertNaNToZero(a6.channels), a6.channels = XYZ_D50_to_sRGB_Gamut(colorData_to_XYZ_D50(a6).channels), a6.colorNotation = exports.ColorNotation.sRGB;
      const r5 = { colorNotation: exports.ColorNotation.sRGB, channels: [0, 0, 0], alpha: 1, syntaxFlags: /* @__PURE__ */ new Set([exports.SyntaxFlag.ContrastColor, exports.SyntaxFlag.Experimental]) }, l5 = n6.contrast_ratio_wcag_2_1(a6.channels, [1, 1, 1]), s5 = n6.contrast_ratio_wcag_2_1(a6.channels, [0, 0, 0]);
      return r5.channels = l5 > s5 ? [1, 1, 1] : [0, 0, 0], r5;
    }
    function alpha(e5, o6) {
      let n7, l5, s5 = false, i6 = false, u6 = false;
      const c7 = { colorNotation: exports.ColorNotation.sRGB, channels: [0, 0, 0], alpha: 1, syntaxFlags: /* @__PURE__ */ new Set([]) };
      for (let p4 = 0; p4 < e5.value.length; p4++) {
        let N2 = e5.value[p4];
        if (t4.isWhitespaceNode(N2) || t4.isCommentNode(N2)) for (; t4.isWhitespaceNode(e5.value[p4 + 1]) || t4.isCommentNode(e5.value[p4 + 1]); ) p4++;
        else if (u6 && !s5 && !i6 && t4.isTokenNode(N2) && a5.isTokenDelim(N2.value) && "/" === N2.value[4].value) s5 = true;
        else {
          if (t4.isFunctionNode(N2) && r4.mathFunctionNames.has(toLowerCaseAZ(N2.getName()))) {
            const [[e6]] = r4.calcFromComponentValues([[N2]], { censorIntoStandardRepresentableValues: true, globals: l5, precision: -1, toCanonicalUnits: true, rawPercentages: true });
            if (!e6 || !t4.isTokenNode(e6) || !a5.isTokenNumeric(e6.value)) return false;
            Number.isNaN(e6.value[4].value) && (e6.value[4].value = 0), N2 = e6;
          }
          if (s5 || i6 || !t4.isTokenNode(N2) || !a5.isTokenIdent(N2.value) || "from" !== toLowerCaseAZ(N2.value[4].value)) {
            if (!s5) return false;
            if (i6) return false;
            if (t4.isTokenNode(N2)) {
              if (a5.isTokenIdent(N2.value) && "alpha" === toLowerCaseAZ(N2.value[4].value) && n7 && n7.has("alpha")) {
                c7.alpha = n7.get("alpha")[4].value, i6 = true;
                continue;
              }
              const e6 = normalize_Color_ChannelValues(N2.value, 3, c7);
              if (!e6 || !a5.isTokenNumber(e6)) return false;
              c7.alpha = new t4.TokenNode(e6), i6 = true;
              continue;
            }
            if (t4.isFunctionNode(N2)) {
              const e6 = t4.replaceComponentValues([[N2]], (e7) => {
                if (t4.isTokenNode(e7) && a5.isTokenIdent(e7.value) && "alpha" === toLowerCaseAZ(e7.value[4].value) && n7 && n7.has("alpha")) return new t4.TokenNode(n7.get("alpha"));
              });
              c7.alpha = e6[0][0], i6 = true;
              continue;
            }
            return false;
          }
          if (u6) return false;
          for (; t4.isWhitespaceNode(e5.value[p4 + 1]) || t4.isCommentNode(e5.value[p4 + 1]); ) p4++;
          if (p4++, N2 = e5.value[p4], u6 = o6(N2), false === u6) return false;
          n7 = normalizeRelativeColorDataChannels(u6), l5 = noneToZeroInRelativeColorDataChannels(n7), c7.syntaxFlags = new Set(u6.syntaxFlags), c7.syntaxFlags.add(exports.SyntaxFlag.RelativeAlphaSyntax), c7.channels = [...u6.channels], c7.colorNotation = u6.colorNotation, c7.alpha = u6.alpha;
        }
      }
      return !!n7 && c7;
    }
    function XYZ_D50_to_P3_Gamut(e5) {
      const o6 = n6.XYZ_D50_to_P3(e5);
      if (n6.inGamut(o6)) return n6.clip(o6);
      let a6 = e5;
      return a6 = n6.XYZ_D50_to_OKLCH(a6), a6[0] < 1e-6 && (a6 = [0, 0, 0]), a6[0] > 0.999999 && (a6 = [1, 0, 0]), n6.gam_P3(n6.mapGamutRayTrace(a6, oklch_to_lin_p3, lin_p3_to_oklch));
    }
    function oklch_to_lin_p3(e5) {
      return e5 = n6.OKLCH_to_OKLab(e5), e5 = n6.OKLab_to_XYZ(e5), n6.XYZ_to_lin_P3(e5);
    }
    function lin_p3_to_oklch(e5) {
      return e5 = n6.lin_P3_to_XYZ(e5), e5 = n6.XYZ_to_OKLab(e5), n6.OKLab_to_OKLCH(e5);
    }
    function toPrecision(e5, o6 = 7) {
      e5 = +e5, o6 = +o6;
      const a6 = (Math.floor(Math.abs(e5)) + "").length;
      if (o6 > a6) return +e5.toFixed(o6 - a6);
      {
        const n7 = 10 ** (a6 - o6);
        return Math.round(e5 / n7) * n7;
      }
    }
    function serializeWithAlpha(e5, o6, n7, r5) {
      const l5 = [a5.TokenType.CloseParen, ")", -1, -1, void 0];
      if ("number" == typeof e5.alpha) {
        const s5 = Math.min(1, Math.max(0, toPrecision(Number.isNaN(e5.alpha) ? 0 : e5.alpha)));
        return 1 === toPrecision(s5, 4) ? new t4.FunctionNode(o6, l5, r5) : new t4.FunctionNode(o6, l5, [...r5, new t4.WhitespaceNode([n7]), new t4.TokenNode([a5.TokenType.Delim, "/", -1, -1, { value: "/" }]), new t4.WhitespaceNode([n7]), new t4.TokenNode([a5.TokenType.Number, toPrecision(s5, 4).toString(), -1, -1, { value: e5.alpha, type: a5.NumberType.Integer }])]);
      }
      return new t4.FunctionNode(o6, l5, [...r5, new t4.WhitespaceNode([n7]), new t4.TokenNode([a5.TokenType.Delim, "/", -1, -1, { value: "/" }]), new t4.WhitespaceNode([n7]), e5.alpha]);
    }
    exports.color = function color(e5) {
      if (t4.isFunctionNode(e5)) {
        switch (toLowerCaseAZ(e5.getName())) {
          case "rgb":
          case "rgba":
            return rgb(e5, color);
          case "hsl":
          case "hsla":
            return hsl(e5, color);
          case "hwb":
            return o6 = color, threeChannelSpaceSeparated(e5, normalize_HWB_ChannelValues, exports.ColorNotation.HWB, [], o6);
          case "lab":
            return lab(e5, color);
          case "lch":
            return lch(e5, color);
          case "oklab":
            return oklab(e5, color);
          case "oklch":
            return oklch(e5, color);
          case "color":
            return color$1(e5, color);
          case "color-mix":
            return colorMix(e5, color);
          case "contrast-color":
            return contrastColor(e5, color);
          case "alpha":
            return alpha(e5, color);
        }
      }
      var o6;
      if (t4.isTokenNode(e5)) {
        if (a5.isTokenHash(e5.value)) return hex(e5.value);
        if (a5.isTokenIdent(e5.value)) {
          const o7 = namedColor(e5.value[4].value);
          return false !== o7 ? o7 : "transparent" === toLowerCaseAZ(e5.value[4].value) && { colorNotation: exports.ColorNotation.RGB, channels: [0, 0, 0], alpha: 0, syntaxFlags: /* @__PURE__ */ new Set([exports.SyntaxFlag.ColorKeyword]) };
        }
      }
      return false;
    }, exports.colorDataFitsDisplayP3_Gamut = function colorDataFitsDisplayP3_Gamut(e5) {
      const o6 = { ...e5, channels: [...e5.channels] };
      return o6.channels = convertPowerlessComponentsToZeroValuesForDisplay(o6.channels, o6.colorNotation), !colorDataTo(o6, exports.ColorNotation.Display_P3).channels.find((e6) => e6 < -1e-5 || e6 > 1.00001);
    }, exports.colorDataFitsRGB_Gamut = function colorDataFitsRGB_Gamut(e5) {
      const o6 = { ...e5, channels: [...e5.channels] };
      return o6.channels = convertPowerlessComponentsToZeroValuesForDisplay(o6.channels, o6.colorNotation), !colorDataTo(o6, exports.ColorNotation.RGB).channels.find((e6) => e6 < -1e-5 || e6 > 1.00001);
    }, exports.serializeHSL = function serializeHSL(e5, o6 = true) {
      e5.channels = convertPowerlessComponentsToZeroValuesForDisplay(e5.channels, e5.colorNotation);
      let r5 = e5.channels.map((e6) => Number.isNaN(e6) ? 0 : e6);
      r5 = o6 ? n6.XYZ_D50_to_HSL(n6.sRGB_to_XYZ_D50(XYZ_D50_to_sRGB_Gamut(colorData_to_XYZ_D50(e5).channels))) : n6.XYZ_D50_to_HSL(colorData_to_XYZ_D50(e5).channels), r5 = r5.map((e6) => Number.isNaN(e6) ? 0 : e6);
      const l5 = Math.min(360, Math.max(0, Math.round(toPrecision(r5[0])))), s5 = Math.min(100, Math.max(0, Math.round(toPrecision(r5[1])))), i6 = Math.min(100, Math.max(0, Math.round(toPrecision(r5[2])))), u6 = [a5.TokenType.CloseParen, ")", -1, -1, void 0], c7 = [a5.TokenType.Whitespace, " ", -1, -1, void 0], p4 = [a5.TokenType.Comma, ",", -1, -1, void 0], N2 = [new t4.TokenNode([a5.TokenType.Number, l5.toString(), -1, -1, { value: r5[0], type: a5.NumberType.Integer }]), new t4.TokenNode(p4), new t4.WhitespaceNode([c7]), new t4.TokenNode([a5.TokenType.Percentage, s5.toString() + "%", -1, -1, { value: r5[1] }]), new t4.TokenNode(p4), new t4.WhitespaceNode([c7]), new t4.TokenNode([a5.TokenType.Percentage, i6.toString() + "%", -1, -1, { value: r5[2] }])];
      if ("number" == typeof e5.alpha) {
        const o7 = Math.min(1, Math.max(0, toPrecision(Number.isNaN(e5.alpha) ? 0 : e5.alpha)));
        return 1 === toPrecision(o7, 4) ? new t4.FunctionNode([a5.TokenType.Function, "hsl(", -1, -1, { value: "hsl" }], u6, N2) : new t4.FunctionNode([a5.TokenType.Function, "hsla(", -1, -1, { value: "hsla" }], u6, [...N2, new t4.TokenNode(p4), new t4.WhitespaceNode([c7]), new t4.TokenNode([a5.TokenType.Number, toPrecision(o7, 4).toString(), -1, -1, { value: e5.alpha, type: a5.NumberType.Number }])]);
      }
      return new t4.FunctionNode([a5.TokenType.Function, "hsla(", -1, -1, { value: "hsla" }], u6, [...N2, new t4.TokenNode(p4), new t4.WhitespaceNode([c7]), e5.alpha]);
    }, exports.serializeOKLCH = function serializeOKLCH(e5) {
      e5.channels = convertPowerlessComponentsToZeroValuesForDisplay(e5.channels, e5.colorNotation);
      let o6 = e5.channels.map((e6) => Number.isNaN(e6) ? 0 : e6);
      e5.colorNotation !== exports.ColorNotation.OKLCH && (o6 = n6.XYZ_D50_to_OKLCH(colorData_to_XYZ_D50(e5).channels));
      const r5 = toPrecision(o6[0], 6), l5 = toPrecision(o6[1], 6), s5 = toPrecision(o6[2], 6), i6 = [a5.TokenType.Function, "oklch(", -1, -1, { value: "oklch" }], u6 = [a5.TokenType.Whitespace, " ", -1, -1, void 0];
      return serializeWithAlpha(e5, i6, u6, [new t4.TokenNode([a5.TokenType.Number, r5.toString(), -1, -1, { value: o6[0], type: a5.NumberType.Number }]), new t4.WhitespaceNode([u6]), new t4.TokenNode([a5.TokenType.Number, l5.toString(), -1, -1, { value: o6[1], type: a5.NumberType.Number }]), new t4.WhitespaceNode([u6]), new t4.TokenNode([a5.TokenType.Number, s5.toString(), -1, -1, { value: o6[2], type: a5.NumberType.Number }])]);
    }, exports.serializeP3 = function serializeP3(e5, o6 = true) {
      e5.channels = convertPowerlessComponentsToZeroValuesForDisplay(e5.channels, e5.colorNotation);
      let r5 = e5.channels.map((e6) => Number.isNaN(e6) ? 0 : e6);
      o6 ? r5 = XYZ_D50_to_P3_Gamut(colorData_to_XYZ_D50(e5).channels) : e5.colorNotation !== exports.ColorNotation.Display_P3 && (r5 = n6.XYZ_D50_to_P3(colorData_to_XYZ_D50(e5).channels));
      const l5 = o6 ? Math.min(1, Math.max(0, toPrecision(r5[0], 6))) : toPrecision(r5[0], 6), s5 = o6 ? Math.min(1, Math.max(0, toPrecision(r5[1], 6))) : toPrecision(r5[1], 6), i6 = o6 ? Math.min(1, Math.max(0, toPrecision(r5[2], 6))) : toPrecision(r5[2], 6), u6 = [a5.TokenType.Function, "color(", -1, -1, { value: "color" }], c7 = [a5.TokenType.Whitespace, " ", -1, -1, void 0];
      return serializeWithAlpha(e5, u6, c7, [new t4.TokenNode([a5.TokenType.Ident, "display-p3", -1, -1, { value: "display-p3" }]), new t4.WhitespaceNode([c7]), new t4.TokenNode([a5.TokenType.Number, l5.toString(), -1, -1, { value: r5[0], type: a5.NumberType.Number }]), new t4.WhitespaceNode([c7]), new t4.TokenNode([a5.TokenType.Number, s5.toString(), -1, -1, { value: r5[1], type: a5.NumberType.Number }]), new t4.WhitespaceNode([c7]), new t4.TokenNode([a5.TokenType.Number, i6.toString(), -1, -1, { value: r5[2], type: a5.NumberType.Number }])]);
    }, exports.serializeRGB = function serializeRGB(e5, o6 = true) {
      e5.channels = convertPowerlessComponentsToZeroValuesForDisplay(e5.channels, e5.colorNotation);
      let r5 = e5.channels.map((e6) => Number.isNaN(e6) ? 0 : e6);
      r5 = o6 ? XYZ_D50_to_sRGB_Gamut(colorData_to_XYZ_D50(e5).channels) : n6.XYZ_D50_to_sRGB(colorData_to_XYZ_D50(e5).channels);
      const l5 = Math.min(255, Math.max(0, Math.round(255 * toPrecision(r5[0])))), s5 = Math.min(255, Math.max(0, Math.round(255 * toPrecision(r5[1])))), i6 = Math.min(255, Math.max(0, Math.round(255 * toPrecision(r5[2])))), u6 = [a5.TokenType.CloseParen, ")", -1, -1, void 0], c7 = [a5.TokenType.Whitespace, " ", -1, -1, void 0], p4 = [a5.TokenType.Comma, ",", -1, -1, void 0], N2 = [new t4.TokenNode([a5.TokenType.Number, l5.toString(), -1, -1, { value: Math.min(255, 255 * Math.max(0, r5[0])), type: a5.NumberType.Integer }]), new t4.TokenNode(p4), new t4.WhitespaceNode([c7]), new t4.TokenNode([a5.TokenType.Number, s5.toString(), -1, -1, { value: Math.min(255, 255 * Math.max(0, r5[1])), type: a5.NumberType.Integer }]), new t4.TokenNode(p4), new t4.WhitespaceNode([c7]), new t4.TokenNode([a5.TokenType.Number, i6.toString(), -1, -1, { value: Math.min(255, 255 * Math.max(0, r5[2])), type: a5.NumberType.Integer }])];
      if ("number" == typeof e5.alpha) {
        const o7 = Math.min(1, Math.max(0, toPrecision(Number.isNaN(e5.alpha) ? 0 : e5.alpha)));
        return 1 === toPrecision(o7, 4) ? new t4.FunctionNode([a5.TokenType.Function, "rgb(", -1, -1, { value: "rgb" }], u6, N2) : new t4.FunctionNode([a5.TokenType.Function, "rgba(", -1, -1, { value: "rgba" }], u6, [...N2, new t4.TokenNode(p4), new t4.WhitespaceNode([c7]), new t4.TokenNode([a5.TokenType.Number, toPrecision(o7, 4).toString(), -1, -1, { value: e5.alpha, type: a5.NumberType.Number }])]);
      }
      return new t4.FunctionNode([a5.TokenType.Function, "rgba(", -1, -1, { value: "rgba" }], u6, [...N2, new t4.TokenNode(p4), new t4.WhitespaceNode([c7]), e5.alpha]);
    };
  }
});

// ../../node_modules/.pnpm/@asamuzakjp+css-color@3.2.0/node_modules/@asamuzakjp/css-color/dist/cjs/index.cjs
var require_cjs13 = __commonJS({
  "../../node_modules/.pnpm/@asamuzakjp+css-color@3.2.0/node_modules/@asamuzakjp/css-color/dist/cjs/index.cjs"(exports, module) {
    "use strict";
    var __defProp3 = Object.defineProperty;
    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames2 = Object.getOwnPropertyNames;
    var __hasOwnProp2 = Object.prototype.hasOwnProperty;
    var __export2 = (target, all5) => {
      for (var name in all5)
        __defProp3(target, name, { get: all5[name], enumerable: true });
    };
    var __copyProps2 = (to, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames2(from))
          if (!__hasOwnProp2.call(to, key) && key !== except)
            __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
      }
      return to;
    };
    var __toCommonJS2 = (mod3) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod3);
    var index_exports = {};
    __export2(index_exports, {
      convert: () => convert,
      cssCalc: () => cssCalc2,
      isColor: () => isColor2,
      resolve: () => resolve4,
      utils: () => utils2
    });
    module.exports = __toCommonJS2(index_exports);
    var import_css_calc4 = require_dist12();
    var import_css_tokenizer4 = require_dist10();
    var import_lru_cache = require_commonjs3();
    var import_css_tokenizer3 = require_dist10();
    var isString5 = (o5) => typeof o5 === "string" || o5 instanceof String;
    var isStringOrNumber = (o5) => isString5(o5) || typeof o5 === "number";
    var _DIGIT = "(?:0|[1-9]\\d*)";
    var _COMPARE = "clamp|max|min";
    var _EXPO = "exp|hypot|log|pow|sqrt";
    var _SIGN = "abs|sign";
    var _STEP = "mod|rem|round";
    var _TRIG = "a?(?:cos|sin|tan)|atan2";
    var _MATH = `${_COMPARE}|${_EXPO}|${_SIGN}|${_STEP}|${_TRIG}`;
    var _CALC = `calc|${_MATH}`;
    var _VAR = `var|${_CALC}`;
    var ANGLE = "deg|g?rad|turn";
    var LENGTH = "[cm]m|[dls]?v(?:[bhiw]|max|min)|in|p[ctx]|q|r?(?:[cl]h|cap|e[mx]|ic)";
    var NUM = `[+-]?(?:${_DIGIT}(?:\\.\\d*)?|\\.\\d+)(?:e-?${_DIGIT})?`;
    var NUM_POSITIVE = `\\+?(?:${_DIGIT}(?:\\.\\d*)?|\\.\\d+)(?:e-?${_DIGIT})?`;
    var NONE = "none";
    var PCT = `${NUM}%`;
    var SYN_FN_CALC = `^(?:${_CALC})\\(|(?<=[*\\/\\s\\(])(?:${_CALC})\\(`;
    var SYN_FN_MATH_START = `^(?:${_MATH})\\($`;
    var SYN_FN_VAR = "^var\\(|(?<=[*\\/\\s\\(])var\\(";
    var SYN_FN_VAR_START = `^(?:${_VAR})\\(`;
    var _ALPHA = `(?:\\s*\\/\\s*(?:${NUM}|${PCT}|${NONE}))?`;
    var _ALPHA_LV3 = `(?:\\s*,\\s*(?:${NUM}|${PCT}))?`;
    var _COLOR_FUNC = "(?:ok)?l(?:ab|ch)|color|hsla?|hwb|rgba?";
    var _COLOR_KEY = "[a-z]+|#[\\da-f]{3}|#[\\da-f]{4}|#[\\da-f]{6}|#[\\da-f]{8}";
    var _CS_HUE = "(?:ok)?lch|hsl|hwb";
    var _CS_HUE_ARC = "(?:de|in)creasing|longer|shorter";
    var _NUM_ANGLE = `${NUM}(?:${ANGLE})?`;
    var _NUM_ANGLE_NONE = `(?:${NUM}(?:${ANGLE})?|${NONE})`;
    var _NUM_PCT_NONE = `(?:${NUM}|${PCT}|${NONE})`;
    var CS_HUE = `(?:${_CS_HUE})(?:\\s(?:${_CS_HUE_ARC})\\shue)?`;
    var CS_HUE_CAPT = `(${_CS_HUE})(?:\\s(${_CS_HUE_ARC})\\shue)?`;
    var CS_LAB = "(?:ok)?lab";
    var CS_LCH = "(?:ok)?lch";
    var CS_SRGB = "srgb(?:-linear)?";
    var CS_RGB = `(?:a98|prophoto)-rgb|display-p3|rec2020|${CS_SRGB}`;
    var CS_XYZ = "xyz(?:-d(?:50|65))?";
    var CS_RECT = `${CS_LAB}|${CS_RGB}|${CS_XYZ}`;
    var CS_MIX = `${CS_HUE}|${CS_RECT}`;
    var FN_COLOR = "color(";
    var FN_MIX = "color-mix(";
    var FN_REL = `(?:${_COLOR_FUNC})\\(\\s*from\\s+`;
    var FN_REL_CAPT = `(${_COLOR_FUNC})\\(\\s*from\\s+`;
    var FN_VAR = "var(";
    var SYN_FN_COLOR = `(?:${CS_RGB}|${CS_XYZ})(?:\\s+${_NUM_PCT_NONE}){3}${_ALPHA}`;
    var SYN_FN_REL = `^${FN_REL}|(?<=[\\s])${FN_REL}`;
    var SYN_HSL = `${_NUM_ANGLE_NONE}(?:\\s+${_NUM_PCT_NONE}){2}${_ALPHA}`;
    var SYN_HSL_LV3 = `${_NUM_ANGLE}(?:\\s*,\\s*${PCT}){2}${_ALPHA_LV3}`;
    var SYN_LCH = `(?:${_NUM_PCT_NONE}\\s+){2}${_NUM_ANGLE_NONE}${_ALPHA}`;
    var SYN_MOD = `${_NUM_PCT_NONE}(?:\\s+${_NUM_PCT_NONE}){2}${_ALPHA}`;
    var SYN_RGB_LV3 = `(?:${NUM}(?:\\s*,\\s*${NUM}){2}|${PCT}(?:\\s*,\\s*${PCT}){2})${_ALPHA_LV3}`;
    var SYN_COLOR_TYPE = `${_COLOR_KEY}|hsla?\\(\\s*${SYN_HSL_LV3}\\s*\\)|rgba?\\(\\s*${SYN_RGB_LV3}\\s*\\)|(?:hsla?|hwb)\\(\\s*${SYN_HSL}\\s*\\)|(?:(?:ok)?lab|rgba?)\\(\\s*${SYN_MOD}\\s*\\)|(?:ok)?lch\\(\\s*${SYN_LCH}\\s*\\)|color\\(\\s*${SYN_FN_COLOR}\\s*\\)`;
    var SYN_MIX_PART = `(?:${SYN_COLOR_TYPE})(?:\\s+${PCT})?`;
    var SYN_MIX = `color-mix\\(\\s*in\\s+(?:${CS_MIX})\\s*,\\s*${SYN_MIX_PART}\\s*,\\s*${SYN_MIX_PART}\\s*\\)`;
    var SYN_MIX_CAPT = `color-mix\\(\\s*in\\s+(${CS_MIX})\\s*,\\s*(${SYN_MIX_PART})\\s*,\\s*(${SYN_MIX_PART})\\s*\\)`;
    var VAL_COMP = "computedValue";
    var VAL_MIX = "mixValue";
    var VAL_SPEC = "specifiedValue";
    var NAMESPACE = "color";
    var PPTH = 1e-3;
    var HALF = 0.5;
    var DUO = 2;
    var TRIA = 3;
    var QUAD = 4;
    var OCT = 8;
    var DEC = 10;
    var DOZ = 12;
    var HEX = 16;
    var SEXA = 60;
    var DEG_HALF = 180;
    var DEG = 360;
    var MAX_PCT = 100;
    var MAX_RGB = 255;
    var POW_SQR = 2;
    var POW_CUBE = 3;
    var POW_LINEAR = 2.4;
    var LINEAR_COEF = 12.92;
    var LINEAR_OFFSET = 0.055;
    var LAB_L = 116;
    var LAB_A = 500;
    var LAB_B = 200;
    var LAB_EPSILON = 216 / 24389;
    var LAB_KAPPA = 24389 / 27;
    var D50 = [
      0.3457 / 0.3585,
      1,
      (1 - 0.3457 - 0.3585) / 0.3585
    ];
    var MATRIX_D50_TO_D65 = [
      [0.955473421488075, -0.02309845494876471, 0.06325924320057072],
      [-0.0283697093338637, 1.0099953980813041, 0.021041441191917323],
      [0.012314014864481998, -0.020507649298898964, 1.330365926242124]
    ];
    var MATRIX_D65_TO_D50 = [
      [1.0479297925449969, 0.022946870601609652, -0.05019226628920524],
      [0.02962780877005599, 0.9904344267538799, -0.017073799063418826],
      [-0.009243040646204504, 0.015055191490298152, 0.7518742814281371]
    ];
    var MATRIX_L_RGB_TO_XYZ = [
      [506752 / 1228815, 87881 / 245763, 12673 / 70218],
      [87098 / 409605, 175762 / 245763, 12673 / 175545],
      [7918 / 409605, 87881 / 737289, 1001167 / 1053270]
    ];
    var MATRIX_XYZ_TO_L_RGB = [
      [12831 / 3959, -329 / 214, -1974 / 3959],
      [-851781 / 878810, 1648619 / 878810, 36519 / 878810],
      [705 / 12673, -2585 / 12673, 705 / 667]
    ];
    var MATRIX_XYZ_TO_LMS = [
      [0.819022437996703, 0.3619062600528904, -0.1288737815209879],
      [0.0329836539323885, 0.9292868615863434, 0.0361446663506424],
      [0.0481771893596242, 0.2642395317527308, 0.6335478284694309]
    ];
    var MATRIX_LMS_TO_XYZ = [
      [1.2268798758459243, -0.5578149944602171, 0.2813910456659647],
      [-0.0405757452148008, 1.112286803280317, -0.0717110580655164],
      [-0.0763729366746601, -0.4214933324022432, 1.5869240198367816]
    ];
    var MATRIX_OKLAB_TO_LMS = [
      [1, 0.3963377773761749, 0.2158037573099136],
      [1, -0.1055613458156586, -0.0638541728258133],
      [1, -0.0894841775298119, -1.2914855480194092]
    ];
    var MATRIX_LMS_TO_OKLAB = [
      [0.210454268309314, 0.7936177747023054, -0.0040720430116193],
      [1.9779985324311684, -2.42859224204858, 0.450593709617411],
      [0.0259040424655478, 0.7827717124575296, -0.8086757549230774]
    ];
    var MATRIX_P3_TO_XYZ = [
      [608311 / 1250200, 189793 / 714400, 198249 / 1000160],
      [35783 / 156275, 247089 / 357200, 198249 / 2500400],
      [0 / 1, 32229 / 714400, 5220557 / 5000800]
    ];
    var MATRIX_REC2020_TO_XYZ = [
      [63426534 / 99577255, 20160776 / 139408157, 47086771 / 278816314],
      [26158966 / 99577255, 472592308 / 697040785, 8267143 / 139408157],
      [0 / 1, 19567812 / 697040785, 295819943 / 278816314]
    ];
    var MATRIX_A98_TO_XYZ = [
      [573536 / 994567, 263643 / 1420810, 187206 / 994567],
      [591459 / 1989134, 6239551 / 9945670, 374412 / 4972835],
      [53769 / 1989134, 351524 / 4972835, 4929758 / 4972835]
    ];
    var MATRIX_PROPHOTO_TO_XYZ_D50 = [
      [0.7977666449006423, 0.13518129740053308, 0.0313477341283922],
      [0.2880748288194013, 0.711835234241873, 8993693872564e-17],
      [0, 0, 0.8251046025104602]
    ];
    var REG_COLOR = new RegExp(`^(?:${SYN_COLOR_TYPE})$`);
    var REG_CS_HUE = new RegExp(`^${CS_HUE_CAPT}$`);
    var REG_CS_XYZ = /^xyz(?:-d(?:50|65))?$/;
    var REG_CURRENT = /^currentColor$/i;
    var REG_FN_COLOR = new RegExp(`^color\\(\\s*(${SYN_FN_COLOR})\\s*\\)$`);
    var REG_HSL = new RegExp(`^hsla?\\(\\s*(${SYN_HSL}|${SYN_HSL_LV3})\\s*\\)$`);
    var REG_HWB = new RegExp(`^hwb\\(\\s*(${SYN_HSL})\\s*\\)$`);
    var REG_LAB = new RegExp(`^lab\\(\\s*(${SYN_MOD})\\s*\\)$`);
    var REG_LCH = new RegExp(`^lch\\(\\s*(${SYN_LCH})\\s*\\)$`);
    var REG_MIX = new RegExp(`^${SYN_MIX}$`);
    var REG_MIX_CAPT = new RegExp(`^${SYN_MIX_CAPT}$`);
    var REG_MIX_NEST = new RegExp(`${SYN_MIX}`, "g");
    var REG_OKLAB = new RegExp(`^oklab\\(\\s*(${SYN_MOD})\\s*\\)$`);
    var REG_OKLCH = new RegExp(`^oklch\\(\\s*(${SYN_LCH})\\s*\\)$`);
    var REG_SPEC = /^(?:specifi|comput)edValue$/;
    var NAMED_COLORS = {
      aliceblue: [240, 248, 255],
      antiquewhite: [250, 235, 215],
      aqua: [0, 255, 255],
      aquamarine: [127, 255, 212],
      azure: [240, 255, 255],
      beige: [245, 245, 220],
      bisque: [255, 228, 196],
      black: [0, 0, 0],
      blanchedalmond: [255, 235, 205],
      blue: [0, 0, 255],
      blueviolet: [138, 43, 226],
      brown: [165, 42, 42],
      burlywood: [222, 184, 135],
      cadetblue: [95, 158, 160],
      chartreuse: [127, 255, 0],
      chocolate: [210, 105, 30],
      coral: [255, 127, 80],
      cornflowerblue: [100, 149, 237],
      cornsilk: [255, 248, 220],
      crimson: [220, 20, 60],
      cyan: [0, 255, 255],
      darkblue: [0, 0, 139],
      darkcyan: [0, 139, 139],
      darkgoldenrod: [184, 134, 11],
      darkgray: [169, 169, 169],
      darkgreen: [0, 100, 0],
      darkgrey: [169, 169, 169],
      darkkhaki: [189, 183, 107],
      darkmagenta: [139, 0, 139],
      darkolivegreen: [85, 107, 47],
      darkorange: [255, 140, 0],
      darkorchid: [153, 50, 204],
      darkred: [139, 0, 0],
      darksalmon: [233, 150, 122],
      darkseagreen: [143, 188, 143],
      darkslateblue: [72, 61, 139],
      darkslategray: [47, 79, 79],
      darkslategrey: [47, 79, 79],
      darkturquoise: [0, 206, 209],
      darkviolet: [148, 0, 211],
      deeppink: [255, 20, 147],
      deepskyblue: [0, 191, 255],
      dimgray: [105, 105, 105],
      dimgrey: [105, 105, 105],
      dodgerblue: [30, 144, 255],
      firebrick: [178, 34, 34],
      floralwhite: [255, 250, 240],
      forestgreen: [34, 139, 34],
      fuchsia: [255, 0, 255],
      gainsboro: [220, 220, 220],
      ghostwhite: [248, 248, 255],
      gold: [255, 215, 0],
      goldenrod: [218, 165, 32],
      gray: [128, 128, 128],
      green: [0, 128, 0],
      greenyellow: [173, 255, 47],
      grey: [128, 128, 128],
      honeydew: [240, 255, 240],
      hotpink: [255, 105, 180],
      indianred: [205, 92, 92],
      indigo: [75, 0, 130],
      ivory: [255, 255, 240],
      khaki: [240, 230, 140],
      lavender: [230, 230, 250],
      lavenderblush: [255, 240, 245],
      lawngreen: [124, 252, 0],
      lemonchiffon: [255, 250, 205],
      lightblue: [173, 216, 230],
      lightcoral: [240, 128, 128],
      lightcyan: [224, 255, 255],
      lightgoldenrodyellow: [250, 250, 210],
      lightgray: [211, 211, 211],
      lightgreen: [144, 238, 144],
      lightgrey: [211, 211, 211],
      lightpink: [255, 182, 193],
      lightsalmon: [255, 160, 122],
      lightseagreen: [32, 178, 170],
      lightskyblue: [135, 206, 250],
      lightslategray: [119, 136, 153],
      lightslategrey: [119, 136, 153],
      lightsteelblue: [176, 196, 222],
      lightyellow: [255, 255, 224],
      lime: [0, 255, 0],
      limegreen: [50, 205, 50],
      linen: [250, 240, 230],
      magenta: [255, 0, 255],
      maroon: [128, 0, 0],
      mediumaquamarine: [102, 205, 170],
      mediumblue: [0, 0, 205],
      mediumorchid: [186, 85, 211],
      mediumpurple: [147, 112, 219],
      mediumseagreen: [60, 179, 113],
      mediumslateblue: [123, 104, 238],
      mediumspringgreen: [0, 250, 154],
      mediumturquoise: [72, 209, 204],
      mediumvioletred: [199, 21, 133],
      midnightblue: [25, 25, 112],
      mintcream: [245, 255, 250],
      mistyrose: [255, 228, 225],
      moccasin: [255, 228, 181],
      navajowhite: [255, 222, 173],
      navy: [0, 0, 128],
      oldlace: [253, 245, 230],
      olive: [128, 128, 0],
      olivedrab: [107, 142, 35],
      orange: [255, 165, 0],
      orangered: [255, 69, 0],
      orchid: [218, 112, 214],
      palegoldenrod: [238, 232, 170],
      palegreen: [152, 251, 152],
      paleturquoise: [175, 238, 238],
      palevioletred: [219, 112, 147],
      papayawhip: [255, 239, 213],
      peachpuff: [255, 218, 185],
      peru: [205, 133, 63],
      pink: [255, 192, 203],
      plum: [221, 160, 221],
      powderblue: [176, 224, 230],
      purple: [128, 0, 128],
      rebeccapurple: [102, 51, 153],
      red: [255, 0, 0],
      rosybrown: [188, 143, 143],
      royalblue: [65, 105, 225],
      saddlebrown: [139, 69, 19],
      salmon: [250, 128, 114],
      sandybrown: [244, 164, 96],
      seagreen: [46, 139, 87],
      seashell: [255, 245, 238],
      sienna: [160, 82, 45],
      silver: [192, 192, 192],
      skyblue: [135, 206, 235],
      slateblue: [106, 90, 205],
      slategray: [112, 128, 144],
      slategrey: [112, 128, 144],
      snow: [255, 250, 250],
      springgreen: [0, 255, 127],
      steelblue: [70, 130, 180],
      tan: [210, 180, 140],
      teal: [0, 128, 128],
      thistle: [216, 191, 216],
      tomato: [255, 99, 71],
      turquoise: [64, 224, 208],
      violet: [238, 130, 238],
      wheat: [245, 222, 179],
      white: [255, 255, 255],
      whitesmoke: [245, 245, 245],
      yellow: [255, 255, 0],
      yellowgreen: [154, 205, 50]
    };
    var cacheInvalidColorValue = (cacheKey, format, nullable = false) => {
      if (format === VAL_SPEC) {
        const res2 = "";
        setCache(cacheKey, res2);
        return res2;
      }
      if (nullable) {
        setCache(cacheKey, null);
        return new NullObject();
      }
      const res = ["rgb", 0, 0, 0, 0];
      setCache(cacheKey, res);
      return res;
    };
    var resolveInvalidColorValue = (format, nullable = false) => {
      switch (format) {
        case "hsl":
        case "hwb":
        case VAL_MIX: {
          return new NullObject();
        }
        case VAL_SPEC: {
          return "";
        }
        default: {
          if (nullable) {
            return new NullObject();
          }
          return ["rgb", 0, 0, 0, 0];
        }
      }
    };
    var validateColorComponents = (arr, opt = {}) => {
      if (!Array.isArray(arr)) {
        throw new TypeError(`${arr} is not an array.`);
      }
      const {
        alpha = false,
        minLength = TRIA,
        maxLength = QUAD,
        minRange = 0,
        maxRange = 1,
        validateRange = true
      } = opt;
      if (!Number.isFinite(minLength)) {
        throw new TypeError(`${minLength} is not a number.`);
      }
      if (!Number.isFinite(maxLength)) {
        throw new TypeError(`${maxLength} is not a number.`);
      }
      if (!Number.isFinite(minRange)) {
        throw new TypeError(`${minRange} is not a number.`);
      }
      if (!Number.isFinite(maxRange)) {
        throw new TypeError(`${maxRange} is not a number.`);
      }
      const l4 = arr.length;
      if (l4 < minLength || l4 > maxLength) {
        throw new Error(`Unexpected array length ${l4}.`);
      }
      let i5 = 0;
      while (i5 < l4) {
        const v3 = arr[i5];
        if (!Number.isFinite(v3)) {
          throw new TypeError(`${v3} is not a number.`);
        } else if (i5 < TRIA && validateRange && (v3 < minRange || v3 > maxRange)) {
          throw new RangeError(`${v3} is not between ${minRange} and ${maxRange}.`);
        } else if (i5 === TRIA && (v3 < 0 || v3 > 1)) {
          throw new RangeError(`${v3} is not between 0 and 1.`);
        }
        i5++;
      }
      if (alpha && l4 === TRIA) {
        arr.push(1);
      }
      return arr;
    };
    var transformMatrix = (mtx, vct, skip = false) => {
      if (!Array.isArray(mtx)) {
        throw new TypeError(`${mtx} is not an array.`);
      } else if (mtx.length !== TRIA) {
        throw new Error(`Unexpected array length ${mtx.length}.`);
      } else if (!skip) {
        for (let i5 of mtx) {
          i5 = validateColorComponents(i5, {
            maxLength: TRIA,
            validateRange: false
          });
        }
      }
      const [[r1c1, r1c2, r1c3], [r2c1, r2c2, r2c3], [r3c1, r3c2, r3c3]] = mtx;
      let v1, v22, v3;
      if (skip) {
        [v1, v22, v3] = vct;
      } else {
        [v1, v22, v3] = validateColorComponents(vct, {
          maxLength: TRIA,
          validateRange: false
        });
      }
      const p1 = r1c1 * v1 + r1c2 * v22 + r1c3 * v3;
      const p22 = r2c1 * v1 + r2c2 * v22 + r2c3 * v3;
      const p3 = r3c1 * v1 + r3c2 * v22 + r3c3 * v3;
      return [p1, p22, p3];
    };
    var normalizeColorComponents = (colorA, colorB, skip = false) => {
      if (!Array.isArray(colorA)) {
        throw new TypeError(`${colorA} is not an array.`);
      } else if (colorA.length !== QUAD) {
        throw new Error(`Unexpected array length ${colorA.length}.`);
      }
      if (!Array.isArray(colorB)) {
        throw new TypeError(`${colorB} is not an array.`);
      } else if (colorB.length !== QUAD) {
        throw new Error(`Unexpected array length ${colorB.length}.`);
      }
      let i5 = 0;
      while (i5 < QUAD) {
        if (colorA[i5] === NONE && colorB[i5] === NONE) {
          colorA[i5] = 0;
          colorB[i5] = 0;
        } else if (colorA[i5] === NONE) {
          colorA[i5] = colorB[i5];
        } else if (colorB[i5] === NONE) {
          colorB[i5] = colorA[i5];
        }
        i5++;
      }
      if (skip) {
        return [colorA, colorB];
      }
      const validatedColorA = validateColorComponents(colorA, {
        minLength: QUAD,
        validateRange: false
      });
      const validatedColorB = validateColorComponents(colorB, {
        minLength: QUAD,
        validateRange: false
      });
      return [validatedColorA, validatedColorB];
    };
    var numberToHexString = (value2) => {
      if (!Number.isFinite(value2)) {
        throw new TypeError(`${value2} is not a number.`);
      } else {
        value2 = Math.round(value2);
        if (value2 < 0 || value2 > MAX_RGB) {
          throw new RangeError(`${value2} is not between 0 and ${MAX_RGB}.`);
        }
      }
      let hex = value2.toString(HEX);
      if (hex.length === 1) {
        hex = `0${hex}`;
      }
      return hex;
    };
    var angleToDeg = (angle) => {
      if (isString5(angle)) {
        angle = angle.trim();
      } else {
        throw new TypeError(`${angle} is not a string.`);
      }
      const GRAD = DEG / 400;
      const RAD = DEG / (Math.PI * DUO);
      const reg = new RegExp(`^(${NUM})(${ANGLE})?$`);
      if (!reg.test(angle)) {
        throw new SyntaxError(`Invalid property value: ${angle}`);
      }
      const [, value2, unit] = angle.match(reg);
      let deg;
      switch (unit) {
        case "grad":
          deg = parseFloat(value2) * GRAD;
          break;
        case "rad":
          deg = parseFloat(value2) * RAD;
          break;
        case "turn":
          deg = parseFloat(value2) * DEG;
          break;
        default:
          deg = parseFloat(value2);
      }
      deg %= DEG;
      if (deg < 0) {
        deg += DEG;
      } else if (Object.is(deg, -0)) {
        deg = 0;
      }
      return deg;
    };
    var parseAlpha = (alpha = "") => {
      if (isString5(alpha)) {
        alpha = alpha.trim();
        if (!alpha) {
          alpha = "1";
        } else if (alpha === NONE) {
          alpha = "0";
        } else {
          let a5;
          if (alpha.endsWith("%")) {
            a5 = parseFloat(alpha) / MAX_PCT;
          } else {
            a5 = parseFloat(alpha);
          }
          if (!Number.isFinite(a5)) {
            throw new TypeError(`${a5} is not a finite number.`);
          }
          if (a5 < PPTH) {
            alpha = "0";
          } else if (a5 > 1) {
            alpha = "1";
          } else {
            alpha = a5.toFixed(TRIA);
          }
        }
      } else {
        alpha = "1";
      }
      return parseFloat(alpha);
    };
    var parseHexAlpha = (value2) => {
      if (isString5(value2)) {
        if (value2 === "") {
          throw new SyntaxError("Invalid property value: (empty string)");
        }
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      let alpha = parseInt(value2, HEX);
      if (alpha <= 0) {
        return 0;
      }
      if (alpha >= MAX_RGB) {
        return 1;
      }
      const alphaMap = /* @__PURE__ */ new Map();
      for (let i5 = 1; i5 < MAX_PCT; i5++) {
        alphaMap.set(Math.round(i5 * MAX_RGB / MAX_PCT), i5);
      }
      if (alphaMap.has(alpha)) {
        alpha = alphaMap.get(alpha) / MAX_PCT;
      } else {
        alpha = Math.round(alpha / MAX_RGB / PPTH) * PPTH;
      }
      return parseFloat(alpha.toFixed(TRIA));
    };
    var transformRgbToLinearRgb = (rgb, skip = false) => {
      let rr, gg, bb;
      if (skip) {
        [rr, gg, bb] = rgb;
      } else {
        [rr, gg, bb] = validateColorComponents(rgb, {
          maxLength: TRIA,
          maxRange: MAX_RGB
        });
      }
      let r4 = rr / MAX_RGB;
      let g3 = gg / MAX_RGB;
      let b3 = bb / MAX_RGB;
      const COND_POW = 0.04045;
      if (r4 > COND_POW) {
        r4 = Math.pow((r4 + LINEAR_OFFSET) / (1 + LINEAR_OFFSET), POW_LINEAR);
      } else {
        r4 /= LINEAR_COEF;
      }
      if (g3 > COND_POW) {
        g3 = Math.pow((g3 + LINEAR_OFFSET) / (1 + LINEAR_OFFSET), POW_LINEAR);
      } else {
        g3 /= LINEAR_COEF;
      }
      if (b3 > COND_POW) {
        b3 = Math.pow((b3 + LINEAR_OFFSET) / (1 + LINEAR_OFFSET), POW_LINEAR);
      } else {
        b3 /= LINEAR_COEF;
      }
      return [r4, g3, b3];
    };
    var transformRgbToXyz = (rgb, skip = false) => {
      if (!skip) {
        rgb = validateColorComponents(rgb, {
          maxLength: TRIA,
          maxRange: MAX_RGB
        });
      }
      rgb = transformRgbToLinearRgb(rgb, true);
      const xyz = transformMatrix(MATRIX_L_RGB_TO_XYZ, rgb, true);
      return xyz;
    };
    var transformLinearRgbToRgb = (rgb, round = false) => {
      let [r4, g3, b3] = validateColorComponents(rgb, {
        maxLength: TRIA
      });
      const COND_POW = 809 / 258400;
      if (r4 > COND_POW) {
        r4 = Math.pow(r4, 1 / POW_LINEAR) * (1 + LINEAR_OFFSET) - LINEAR_OFFSET;
      } else {
        r4 *= LINEAR_COEF;
      }
      r4 *= MAX_RGB;
      if (g3 > COND_POW) {
        g3 = Math.pow(g3, 1 / POW_LINEAR) * (1 + LINEAR_OFFSET) - LINEAR_OFFSET;
      } else {
        g3 *= LINEAR_COEF;
      }
      g3 *= MAX_RGB;
      if (b3 > COND_POW) {
        b3 = Math.pow(b3, 1 / POW_LINEAR) * (1 + LINEAR_OFFSET) - LINEAR_OFFSET;
      } else {
        b3 *= LINEAR_COEF;
      }
      b3 *= MAX_RGB;
      return [
        round ? Math.round(r4) : r4,
        round ? Math.round(g3) : g3,
        round ? Math.round(b3) : b3
      ];
    };
    var transformXyzToRgb = (xyz, skip = false) => {
      if (!skip) {
        xyz = validateColorComponents(xyz, {
          maxLength: TRIA,
          validateRange: false
        });
      }
      let [r4, g3, b3] = transformMatrix(MATRIX_XYZ_TO_L_RGB, xyz, true);
      [r4, g3, b3] = transformLinearRgbToRgb(
        [
          Math.min(Math.max(r4, 0), 1),
          Math.min(Math.max(g3, 0), 1),
          Math.min(Math.max(b3, 0), 1)
        ],
        true
      );
      return [r4, g3, b3];
    };
    var transformXyzToHsl = (xyz, skip = false) => {
      const [rr, gg, bb] = transformXyzToRgb(xyz, skip);
      const r4 = rr / MAX_RGB;
      const g3 = gg / MAX_RGB;
      const b3 = bb / MAX_RGB;
      const max3 = Math.max(r4, g3, b3);
      const min2 = Math.min(r4, g3, b3);
      const d3 = max3 - min2;
      const l4 = (max3 + min2) * HALF * MAX_PCT;
      let h4, s4;
      if (Math.round(l4) === 0 || Math.round(l4) === MAX_PCT) {
        h4 = 0;
        s4 = 0;
      } else {
        s4 = d3 / (1 - Math.abs(max3 + min2 - 1)) * MAX_PCT;
        if (s4 === 0) {
          h4 = 0;
        } else {
          switch (max3) {
            case r4:
              h4 = (g3 - b3) / d3;
              break;
            case g3:
              h4 = (b3 - r4) / d3 + DUO;
              break;
            case b3:
            default:
              h4 = (r4 - g3) / d3 + QUAD;
              break;
          }
          h4 = h4 * SEXA % DEG;
          if (h4 < 0) {
            h4 += DEG;
          }
        }
      }
      return [h4, s4, l4];
    };
    var transformXyzToHwb = (xyz, skip = false) => {
      const [r4, g3, b3] = transformXyzToRgb(xyz, skip);
      const wh = Math.min(r4, g3, b3) / MAX_RGB;
      const bk = 1 - Math.max(r4, g3, b3) / MAX_RGB;
      let h4;
      if (wh + bk === 1) {
        h4 = 0;
      } else {
        [h4] = transformXyzToHsl(xyz);
      }
      return [h4, wh * MAX_PCT, bk * MAX_PCT];
    };
    var transformXyzToOklab = (xyz, skip = false) => {
      if (!skip) {
        xyz = validateColorComponents(xyz, {
          maxLength: TRIA,
          validateRange: false
        });
      }
      const lms = transformMatrix(MATRIX_XYZ_TO_LMS, xyz, true);
      const xyzLms = lms.map((c6) => Math.cbrt(c6));
      let [l4, a5, b3] = transformMatrix(MATRIX_LMS_TO_OKLAB, xyzLms, true);
      l4 = Math.min(Math.max(l4, 0), 1);
      const lPct = Math.round(parseFloat(l4.toFixed(QUAD)) * MAX_PCT);
      if (lPct === 0 || lPct === MAX_PCT) {
        a5 = 0;
        b3 = 0;
      }
      return [l4, a5, b3];
    };
    var transformXyzToOklch = (xyz, skip = false) => {
      const [l4, a5, b3] = transformXyzToOklab(xyz, skip);
      let c6, h4;
      const lPct = Math.round(parseFloat(l4.toFixed(QUAD)) * MAX_PCT);
      if (lPct === 0 || lPct === MAX_PCT) {
        c6 = 0;
        h4 = 0;
      } else {
        c6 = Math.max(Math.sqrt(Math.pow(a5, POW_SQR) + Math.pow(b3, POW_SQR)), 0);
        if (parseFloat(c6.toFixed(QUAD)) === 0) {
          h4 = 0;
        } else {
          h4 = Math.atan2(b3, a5) * DEG_HALF / Math.PI;
          if (h4 < 0) {
            h4 += DEG;
          }
        }
      }
      return [l4, c6, h4];
    };
    var transformXyzD50ToRgb = (xyz, skip = false) => {
      if (!skip) {
        xyz = validateColorComponents(xyz, {
          maxLength: TRIA,
          validateRange: false
        });
      }
      const xyzD65 = transformMatrix(MATRIX_D50_TO_D65, xyz, true);
      const rgb = transformXyzToRgb(xyzD65, true);
      return rgb;
    };
    var transformXyzD50ToLab = (xyz, skip = false) => {
      if (!skip) {
        xyz = validateColorComponents(xyz, {
          maxLength: TRIA,
          validateRange: false
        });
      }
      const xyzD50 = xyz.map((val, i5) => val / D50[i5]);
      const [f0, f1, f22] = xyzD50.map(
        (val) => val > LAB_EPSILON ? Math.cbrt(val) : (val * LAB_KAPPA + HEX) / LAB_L
      );
      const l4 = Math.min(Math.max(LAB_L * f1 - HEX, 0), MAX_PCT);
      let a5, b3;
      if (l4 === 0 || l4 === MAX_PCT) {
        a5 = 0;
        b3 = 0;
      } else {
        a5 = (f0 - f1) * LAB_A;
        b3 = (f1 - f22) * LAB_B;
      }
      return [l4, a5, b3];
    };
    var transformXyzD50ToLch = (xyz, skip = false) => {
      const [l4, a5, b3] = transformXyzD50ToLab(xyz, skip);
      let c6, h4;
      if (l4 === 0 || l4 === MAX_PCT) {
        c6 = 0;
        h4 = 0;
      } else {
        c6 = Math.max(Math.sqrt(Math.pow(a5, POW_SQR) + Math.pow(b3, POW_SQR)), 0);
        h4 = Math.atan2(b3, a5) * DEG_HALF / Math.PI;
        if (h4 < 0) {
          h4 += DEG;
        }
      }
      return [l4, c6, h4];
    };
    var convertRgbToHex = (rgb) => {
      const [r4, g3, b3, alpha] = validateColorComponents(rgb, {
        alpha: true,
        maxRange: MAX_RGB
      });
      const rr = numberToHexString(r4);
      const gg = numberToHexString(g3);
      const bb = numberToHexString(b3);
      const aa = numberToHexString(alpha * MAX_RGB);
      let hex;
      if (aa === "ff") {
        hex = `#${rr}${gg}${bb}`;
      } else {
        hex = `#${rr}${gg}${bb}${aa}`;
      }
      return hex;
    };
    var convertHexToRgb = (value2) => {
      if (isString5(value2)) {
        value2 = value2.toLowerCase().trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      if (!(/^#[\da-f]{6}$/.test(value2) || /^#[\da-f]{3}$/.test(value2) || /^#[\da-f]{8}$/.test(value2) || /^#[\da-f]{4}$/.test(value2))) {
        throw new SyntaxError(`Invalid property value: ${value2}`);
      }
      const arr = [];
      if (/^#[\da-f]{3}$/.test(value2)) {
        const [, r4, g3, b3] = value2.match(
          /^#([\da-f])([\da-f])([\da-f])$/
        );
        arr.push(
          parseInt(`${r4}${r4}`, HEX),
          parseInt(`${g3}${g3}`, HEX),
          parseInt(`${b3}${b3}`, HEX),
          1
        );
      } else if (/^#[\da-f]{4}$/.test(value2)) {
        const [, r4, g3, b3, alpha] = value2.match(
          /^#([\da-f])([\da-f])([\da-f])([\da-f])$/
        );
        arr.push(
          parseInt(`${r4}${r4}`, HEX),
          parseInt(`${g3}${g3}`, HEX),
          parseInt(`${b3}${b3}`, HEX),
          parseHexAlpha(`${alpha}${alpha}`)
        );
      } else if (/^#[\da-f]{8}$/.test(value2)) {
        const [, r4, g3, b3, alpha] = value2.match(
          /^#([\da-f]{2})([\da-f]{2})([\da-f]{2})([\da-f]{2})$/
        );
        arr.push(
          parseInt(r4, HEX),
          parseInt(g3, HEX),
          parseInt(b3, HEX),
          parseHexAlpha(alpha)
        );
      } else {
        const [, r4, g3, b3] = value2.match(
          /^#([\da-f]{2})([\da-f]{2})([\da-f]{2})$/
        );
        arr.push(parseInt(r4, HEX), parseInt(g3, HEX), parseInt(b3, HEX), 1);
      }
      return arr;
    };
    var convertHexToLinearRgb = (value2) => {
      const [rr, gg, bb, alpha] = convertHexToRgb(value2);
      const [r4, g3, b3] = transformRgbToLinearRgb([rr, gg, bb], true);
      return [r4, g3, b3, alpha];
    };
    var convertHexToXyz = (value2) => {
      const [r4, g3, b3, alpha] = convertHexToLinearRgb(value2);
      const [x, y3, z] = transformMatrix(MATRIX_L_RGB_TO_XYZ, [r4, g3, b3], true);
      return [x, y3, z, alpha];
    };
    var parseRgb2 = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.toLowerCase().trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "", nullable = false } = opt;
      const reg = new RegExp(`^rgba?\\(\\s*(${SYN_MOD}|${SYN_RGB_LV3})\\s*\\)$`);
      if (!reg.test(value2)) {
        const res = resolveInvalidColorValue(format, nullable);
        if (res instanceof NullObject) {
          return res;
        }
        if (isString5(res)) {
          return res;
        }
        return res;
      }
      const [, val] = value2.match(reg);
      const [v1, v22, v3, v4 = ""] = val.replace(/[,/]/g, " ").split(/\s+/);
      let r4, g3, b3;
      if (v1 === NONE) {
        r4 = 0;
      } else {
        if (v1.endsWith("%")) {
          r4 = parseFloat(v1) * MAX_RGB / MAX_PCT;
        } else {
          r4 = parseFloat(v1);
        }
        r4 = Math.min(Math.max(roundToPrecision(r4, OCT), 0), MAX_RGB);
      }
      if (v22 === NONE) {
        g3 = 0;
      } else {
        if (v22.endsWith("%")) {
          g3 = parseFloat(v22) * MAX_RGB / MAX_PCT;
        } else {
          g3 = parseFloat(v22);
        }
        g3 = Math.min(Math.max(roundToPrecision(g3, OCT), 0), MAX_RGB);
      }
      if (v3 === NONE) {
        b3 = 0;
      } else {
        if (v3.endsWith("%")) {
          b3 = parseFloat(v3) * MAX_RGB / MAX_PCT;
        } else {
          b3 = parseFloat(v3);
        }
        b3 = Math.min(Math.max(roundToPrecision(b3, OCT), 0), MAX_RGB);
      }
      const alpha = parseAlpha(v4);
      return ["rgb", r4, g3, b3, format === VAL_MIX && v4 === NONE ? NONE : alpha];
    };
    var parseHsl2 = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "", nullable = false } = opt;
      if (!REG_HSL.test(value2)) {
        const res = resolveInvalidColorValue(format, nullable);
        if (res instanceof NullObject) {
          return res;
        }
        if (isString5(res)) {
          return res;
        }
        return res;
      }
      const [, val] = value2.match(REG_HSL);
      const [v1, v22, v3, v4 = ""] = val.replace(/[,/]/g, " ").split(/\s+/);
      let h4, s4, l4;
      if (v1 === NONE) {
        h4 = 0;
      } else {
        h4 = angleToDeg(v1);
      }
      if (v22 === NONE) {
        s4 = 0;
      } else {
        s4 = Math.min(Math.max(parseFloat(v22), 0), MAX_PCT);
      }
      if (v3 === NONE) {
        l4 = 0;
      } else {
        l4 = Math.min(Math.max(parseFloat(v3), 0), MAX_PCT);
      }
      const alpha = parseAlpha(v4);
      if (format === "hsl") {
        return [
          format,
          v1 === NONE ? v1 : h4,
          v22 === NONE ? v22 : s4,
          v3 === NONE ? v3 : l4,
          v4 === NONE ? v4 : alpha
        ];
      }
      h4 = h4 / DEG * DOZ;
      l4 /= MAX_PCT;
      const sa = s4 / MAX_PCT * Math.min(l4, 1 - l4);
      const rk = h4 % DOZ;
      const gk = (8 + h4) % DOZ;
      const bk = (4 + h4) % DOZ;
      const r4 = l4 - sa * Math.max(-1, Math.min(rk - TRIA, TRIA ** POW_SQR - rk, 1));
      const g3 = l4 - sa * Math.max(-1, Math.min(gk - TRIA, TRIA ** POW_SQR - gk, 1));
      const b3 = l4 - sa * Math.max(-1, Math.min(bk - TRIA, TRIA ** POW_SQR - bk, 1));
      return [
        "rgb",
        Math.min(Math.max(roundToPrecision(r4 * MAX_RGB, OCT), 0), MAX_RGB),
        Math.min(Math.max(roundToPrecision(g3 * MAX_RGB, OCT), 0), MAX_RGB),
        Math.min(Math.max(roundToPrecision(b3 * MAX_RGB, OCT), 0), MAX_RGB),
        alpha
      ];
    };
    var parseHwb = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "", nullable = false } = opt;
      if (!REG_HWB.test(value2)) {
        const res = resolveInvalidColorValue(format, nullable);
        if (res instanceof NullObject) {
          return res;
        }
        if (isString5(res)) {
          return res;
        }
        return res;
      }
      const [, val] = value2.match(REG_HWB);
      const [v1, v22, v3, v4 = ""] = val.replace("/", " ").split(/\s+/);
      let h4, wh, bk;
      if (v1 === NONE) {
        h4 = 0;
      } else {
        h4 = angleToDeg(v1);
      }
      if (v22 === NONE) {
        wh = 0;
      } else {
        wh = Math.min(Math.max(parseFloat(v22), 0), MAX_PCT) / MAX_PCT;
      }
      if (v3 === NONE) {
        bk = 0;
      } else {
        bk = Math.min(Math.max(parseFloat(v3), 0), MAX_PCT) / MAX_PCT;
      }
      const alpha = parseAlpha(v4);
      if (format === "hwb") {
        return [
          format,
          v1 === NONE ? v1 : h4,
          v22 === NONE ? v22 : wh * MAX_PCT,
          v3 === NONE ? v3 : bk * MAX_PCT,
          v4 === NONE ? v4 : alpha
        ];
      }
      if (wh + bk >= 1) {
        const v5 = roundToPrecision(wh / (wh + bk) * MAX_RGB, OCT);
        return ["rgb", v5, v5, v5, alpha];
      }
      const factor2 = (1 - wh - bk) / MAX_RGB;
      let [, r4, g3, b3] = parseHsl2(`hsl(${h4} 100 50)`);
      r4 = roundToPrecision((r4 * factor2 + wh) * MAX_RGB, OCT);
      g3 = roundToPrecision((g3 * factor2 + wh) * MAX_RGB, OCT);
      b3 = roundToPrecision((b3 * factor2 + wh) * MAX_RGB, OCT);
      return [
        "rgb",
        Math.min(Math.max(r4, 0), MAX_RGB),
        Math.min(Math.max(g3, 0), MAX_RGB),
        Math.min(Math.max(b3, 0), MAX_RGB),
        alpha
      ];
    };
    var parseLab = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "", nullable = false } = opt;
      if (!REG_LAB.test(value2)) {
        const res = resolveInvalidColorValue(format, nullable);
        if (res instanceof NullObject) {
          return res;
        }
        if (isString5(res)) {
          return res;
        }
        return res;
      }
      const COEF_PCT = 1.25;
      const COND_POW = 8;
      const [, val] = value2.match(REG_LAB);
      const [v1, v22, v3, v4 = ""] = val.replace("/", " ").split(/\s+/);
      let l4, a5, b3;
      if (v1 === NONE) {
        l4 = 0;
      } else {
        if (v1.endsWith("%")) {
          l4 = parseFloat(v1);
          if (l4 > MAX_PCT) {
            l4 = MAX_PCT;
          }
        } else {
          l4 = parseFloat(v1);
        }
        if (l4 < 0) {
          l4 = 0;
        }
      }
      if (v22 === NONE) {
        a5 = 0;
      } else {
        a5 = v22.endsWith("%") ? parseFloat(v22) * COEF_PCT : parseFloat(v22);
      }
      if (v3 === NONE) {
        b3 = 0;
      } else {
        b3 = v3.endsWith("%") ? parseFloat(v3) * COEF_PCT : parseFloat(v3);
      }
      const alpha = parseAlpha(v4);
      if (REG_SPEC.test(format)) {
        return [
          "lab",
          v1 === NONE ? v1 : roundToPrecision(l4, HEX),
          v22 === NONE ? v22 : roundToPrecision(a5, HEX),
          v3 === NONE ? v3 : roundToPrecision(b3, HEX),
          v4 === NONE ? v4 : alpha
        ];
      }
      const fl2 = (l4 + HEX) / LAB_L;
      const fa = a5 / LAB_A + fl2;
      const fb = fl2 - b3 / LAB_B;
      const powFl = Math.pow(fl2, POW_CUBE);
      const powFa = Math.pow(fa, POW_CUBE);
      const powFb = Math.pow(fb, POW_CUBE);
      const xyz = [
        powFa > LAB_EPSILON ? powFa : (fa * LAB_L - HEX) / LAB_KAPPA,
        l4 > COND_POW ? powFl : l4 / LAB_KAPPA,
        powFb > LAB_EPSILON ? powFb : (fb * LAB_L - HEX) / LAB_KAPPA
      ];
      const [x, y3, z] = xyz.map(
        (val2, i5) => val2 * D50[i5]
      );
      return [
        "xyz-d50",
        roundToPrecision(x, HEX),
        roundToPrecision(y3, HEX),
        roundToPrecision(z, HEX),
        alpha
      ];
    };
    var parseLch = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "", nullable = false } = opt;
      if (!REG_LCH.test(value2)) {
        const res = resolveInvalidColorValue(format, nullable);
        if (res instanceof NullObject) {
          return res;
        }
        if (isString5(res)) {
          return res;
        }
        return res;
      }
      const COEF_PCT = 1.5;
      const [, val] = value2.match(REG_LCH);
      const [v1, v22, v3, v4 = ""] = val.replace("/", " ").split(/\s+/);
      let l4, c6, h4;
      if (v1 === NONE) {
        l4 = 0;
      } else {
        l4 = parseFloat(v1);
        if (l4 < 0) {
          l4 = 0;
        }
      }
      if (v22 === NONE) {
        c6 = 0;
      } else {
        c6 = v22.endsWith("%") ? parseFloat(v22) * COEF_PCT : parseFloat(v22);
      }
      if (v3 === NONE) {
        h4 = 0;
      } else {
        h4 = angleToDeg(v3);
      }
      const alpha = parseAlpha(v4);
      if (REG_SPEC.test(format)) {
        return [
          "lch",
          v1 === NONE ? v1 : roundToPrecision(l4, HEX),
          v22 === NONE ? v22 : roundToPrecision(c6, HEX),
          v3 === NONE ? v3 : roundToPrecision(h4, HEX),
          v4 === NONE ? v4 : alpha
        ];
      }
      const a5 = c6 * Math.cos(h4 * Math.PI / DEG_HALF);
      const b3 = c6 * Math.sin(h4 * Math.PI / DEG_HALF);
      const [, x, y3, z] = parseLab(`lab(${l4} ${a5} ${b3})`);
      return [
        "xyz-d50",
        roundToPrecision(x, HEX),
        roundToPrecision(y3, HEX),
        roundToPrecision(z, HEX),
        alpha
      ];
    };
    var parseOklab = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "", nullable = false } = opt;
      if (!REG_OKLAB.test(value2)) {
        const res = resolveInvalidColorValue(format, nullable);
        if (res instanceof NullObject) {
          return res;
        }
        if (isString5(res)) {
          return res;
        }
        return res;
      }
      const COEF_PCT = 0.4;
      const [, val] = value2.match(REG_OKLAB);
      const [v1, v22, v3, v4 = ""] = val.replace("/", " ").split(/\s+/);
      let l4, a5, b3;
      if (v1 === NONE) {
        l4 = 0;
      } else {
        l4 = v1.endsWith("%") ? parseFloat(v1) / MAX_PCT : parseFloat(v1);
        if (l4 < 0) {
          l4 = 0;
        }
      }
      if (v22 === NONE) {
        a5 = 0;
      } else if (v22.endsWith("%")) {
        a5 = parseFloat(v22) * COEF_PCT / MAX_PCT;
      } else {
        a5 = parseFloat(v22);
      }
      if (v3 === NONE) {
        b3 = 0;
      } else if (v3.endsWith("%")) {
        b3 = parseFloat(v3) * COEF_PCT / MAX_PCT;
      } else {
        b3 = parseFloat(v3);
      }
      const alpha = parseAlpha(v4);
      if (REG_SPEC.test(format)) {
        return [
          "oklab",
          v1 === NONE ? v1 : roundToPrecision(l4, HEX),
          v22 === NONE ? v22 : roundToPrecision(a5, HEX),
          v3 === NONE ? v3 : roundToPrecision(b3, HEX),
          v4 === NONE ? v4 : alpha
        ];
      }
      const lms = transformMatrix(MATRIX_OKLAB_TO_LMS, [l4, a5, b3]);
      const xyzLms = lms.map((c6) => Math.pow(c6, POW_CUBE));
      const [x, y3, z] = transformMatrix(MATRIX_LMS_TO_XYZ, xyzLms, true);
      return [
        "xyz-d65",
        roundToPrecision(x, HEX),
        roundToPrecision(y3, HEX),
        roundToPrecision(z, HEX),
        alpha
      ];
    };
    var parseOklch = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "", nullable = false } = opt;
      if (!REG_OKLCH.test(value2)) {
        const res = resolveInvalidColorValue(format, nullable);
        if (res instanceof NullObject) {
          return res;
        }
        if (isString5(res)) {
          return res;
        }
        return res;
      }
      const COEF_PCT = 0.4;
      const [, val] = value2.match(REG_OKLCH);
      const [v1, v22, v3, v4 = ""] = val.replace("/", " ").split(/\s+/);
      let l4, c6, h4;
      if (v1 === NONE) {
        l4 = 0;
      } else {
        l4 = v1.endsWith("%") ? parseFloat(v1) / MAX_PCT : parseFloat(v1);
        if (l4 < 0) {
          l4 = 0;
        }
      }
      if (v22 === NONE) {
        c6 = 0;
      } else {
        if (v22.endsWith("%")) {
          c6 = parseFloat(v22) * COEF_PCT / MAX_PCT;
        } else {
          c6 = parseFloat(v22);
        }
        if (c6 < 0) {
          c6 = 0;
        }
      }
      if (v3 === NONE) {
        h4 = 0;
      } else {
        h4 = angleToDeg(v3);
      }
      const alpha = parseAlpha(v4);
      if (REG_SPEC.test(format)) {
        return [
          "oklch",
          v1 === NONE ? v1 : roundToPrecision(l4, HEX),
          v22 === NONE ? v22 : roundToPrecision(c6, HEX),
          v3 === NONE ? v3 : roundToPrecision(h4, HEX),
          v4 === NONE ? v4 : alpha
        ];
      }
      const a5 = c6 * Math.cos(h4 * Math.PI / DEG_HALF);
      const b3 = c6 * Math.sin(h4 * Math.PI / DEG_HALF);
      const lms = transformMatrix(MATRIX_OKLAB_TO_LMS, [l4, a5, b3]);
      const xyzLms = lms.map((cc) => Math.pow(cc, POW_CUBE));
      const [x, y3, z] = transformMatrix(MATRIX_LMS_TO_XYZ, xyzLms, true);
      return [
        "xyz-d65",
        roundToPrecision(x, HEX),
        roundToPrecision(y3, HEX),
        roundToPrecision(z, HEX),
        alpha
      ];
    };
    var parseColorFunc = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { colorSpace = "", d50 = false, format = "", nullable = false } = opt;
      if (!REG_FN_COLOR.test(value2)) {
        const res = resolveInvalidColorValue(format, nullable);
        if (res instanceof NullObject) {
          return res;
        }
        if (isString5(res)) {
          return res;
        }
        return res;
      }
      const [, val] = value2.match(REG_FN_COLOR);
      let [cs, v1, v22, v3, v4 = ""] = val.replace("/", " ").split(/\s+/);
      let r4, g3, b3;
      if (cs === "xyz") {
        cs = "xyz-d65";
      }
      if (v1 === NONE) {
        r4 = 0;
      } else {
        r4 = v1.endsWith("%") ? parseFloat(v1) / MAX_PCT : parseFloat(v1);
      }
      if (v22 === NONE) {
        g3 = 0;
      } else {
        g3 = v22.endsWith("%") ? parseFloat(v22) / MAX_PCT : parseFloat(v22);
      }
      if (v3 === NONE) {
        b3 = 0;
      } else {
        b3 = v3.endsWith("%") ? parseFloat(v3) / MAX_PCT : parseFloat(v3);
      }
      const alpha = parseAlpha(v4);
      if (REG_SPEC.test(format) || format === VAL_MIX && cs === colorSpace) {
        return [
          cs,
          v1 === NONE ? v1 : roundToPrecision(r4, DEC),
          v22 === NONE ? v22 : roundToPrecision(g3, DEC),
          v3 === NONE ? v3 : roundToPrecision(b3, DEC),
          v4 === NONE ? v4 : alpha
        ];
      }
      let x = 0;
      let y3 = 0;
      let z = 0;
      if (cs === "srgb-linear") {
        [x, y3, z] = transformMatrix(MATRIX_L_RGB_TO_XYZ, [r4, g3, b3]);
        if (d50) {
          [x, y3, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y3, z], true);
        }
      } else if (cs === "display-p3") {
        const linearRgb = transformRgbToLinearRgb([
          r4 * MAX_RGB,
          g3 * MAX_RGB,
          b3 * MAX_RGB
        ]);
        [x, y3, z] = transformMatrix(MATRIX_P3_TO_XYZ, linearRgb);
        if (d50) {
          [x, y3, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y3, z], true);
        }
      } else if (cs === "rec2020") {
        const ALPHA2 = 1.09929682680944;
        const BETA = 0.018053968510807;
        const REC_COEF = 0.45;
        const rgb = [r4, g3, b3].map((c6) => {
          let cl;
          if (c6 < BETA * REC_COEF * DEC) {
            cl = c6 / (REC_COEF * DEC);
          } else {
            cl = Math.pow((c6 + ALPHA2 - 1) / ALPHA2, 1 / REC_COEF);
          }
          return cl;
        });
        [x, y3, z] = transformMatrix(MATRIX_REC2020_TO_XYZ, rgb);
        if (d50) {
          [x, y3, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y3, z], true);
        }
      } else if (cs === "a98-rgb") {
        const POW_A98 = 563 / 256;
        const rgb = [r4, g3, b3].map((c6) => {
          const cl = Math.pow(c6, POW_A98);
          return cl;
        });
        [x, y3, z] = transformMatrix(MATRIX_A98_TO_XYZ, rgb);
        if (d50) {
          [x, y3, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y3, z], true);
        }
      } else if (cs === "prophoto-rgb") {
        const POW_PROPHOTO = 1.8;
        const rgb = [r4, g3, b3].map((c6) => {
          let cl;
          if (c6 > 1 / (HEX * DUO)) {
            cl = Math.pow(c6, POW_PROPHOTO);
          } else {
            cl = c6 / HEX;
          }
          return cl;
        });
        [x, y3, z] = transformMatrix(MATRIX_PROPHOTO_TO_XYZ_D50, rgb);
        if (!d50) {
          [x, y3, z] = transformMatrix(MATRIX_D50_TO_D65, [x, y3, z], true);
        }
      } else if (/^xyz(?:-d(?:50|65))?$/.test(cs)) {
        [x, y3, z] = [r4, g3, b3];
        if (cs === "xyz-d50") {
          if (!d50) {
            [x, y3, z] = transformMatrix(MATRIX_D50_TO_D65, [x, y3, z]);
          }
        } else if (d50) {
          [x, y3, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y3, z], true);
        }
      } else {
        [x, y3, z] = transformRgbToXyz([r4 * MAX_RGB, g3 * MAX_RGB, b3 * MAX_RGB]);
        if (d50) {
          [x, y3, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y3, z], true);
        }
      }
      return [
        d50 ? "xyz-d50" : "xyz-d65",
        roundToPrecision(x, HEX),
        roundToPrecision(y3, HEX),
        roundToPrecision(z, HEX),
        format === VAL_MIX && v4 === NONE ? v4 : alpha
      ];
    };
    var parseColorValue = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.toLowerCase().trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { d50 = false, format = "", nullable = false } = opt;
      if (!REG_COLOR.test(value2)) {
        const res = resolveInvalidColorValue(format, nullable);
        if (res instanceof NullObject) {
          return res;
        }
        if (isString5(res)) {
          return res;
        }
        return res;
      }
      let x = 0;
      let y3 = 0;
      let z = 0;
      let alpha = 0;
      if (REG_CURRENT.test(value2)) {
        if (format === VAL_COMP) {
          return ["rgb", 0, 0, 0, 0];
        }
        if (format === VAL_SPEC) {
          return value2;
        }
      } else if (/^[a-z]+$/.test(value2)) {
        if (Object.prototype.hasOwnProperty.call(NAMED_COLORS, value2)) {
          if (format === VAL_SPEC) {
            return value2;
          }
          const [r4, g3, b3] = NAMED_COLORS[value2];
          alpha = 1;
          if (format === VAL_COMP) {
            return ["rgb", r4, g3, b3, alpha];
          }
          [x, y3, z] = transformRgbToXyz([r4, g3, b3], true);
          if (d50) {
            [x, y3, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y3, z], true);
          }
        } else {
          switch (format) {
            case VAL_COMP: {
              if (nullable && value2 !== "transparent") {
                return new NullObject();
              }
              return ["rgb", 0, 0, 0, 0];
            }
            case VAL_SPEC: {
              if (value2 === "transparent") {
                return value2;
              }
              return "";
            }
            case VAL_MIX: {
              if (value2 === "transparent") {
                return ["rgb", 0, 0, 0, 0];
              }
              return new NullObject();
            }
            default:
          }
        }
      } else if (value2[0] === "#") {
        if (REG_SPEC.test(format)) {
          const rgb = convertHexToRgb(value2);
          return ["rgb", ...rgb];
        }
        [x, y3, z, alpha] = convertHexToXyz(value2);
        if (d50) {
          [x, y3, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y3, z], true);
        }
      } else if (value2.startsWith("lab")) {
        if (REG_SPEC.test(format)) {
          return parseLab(value2, opt);
        }
        [, x, y3, z, alpha] = parseLab(value2);
        if (!d50) {
          [x, y3, z] = transformMatrix(MATRIX_D50_TO_D65, [x, y3, z], true);
        }
      } else if (value2.startsWith("lch")) {
        if (REG_SPEC.test(format)) {
          return parseLch(value2, opt);
        }
        [, x, y3, z, alpha] = parseLch(value2);
        if (!d50) {
          [x, y3, z] = transformMatrix(MATRIX_D50_TO_D65, [x, y3, z], true);
        }
      } else if (value2.startsWith("oklab")) {
        if (REG_SPEC.test(format)) {
          return parseOklab(value2, opt);
        }
        [, x, y3, z, alpha] = parseOklab(value2);
        if (d50) {
          [x, y3, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y3, z], true);
        }
      } else if (value2.startsWith("oklch")) {
        if (REG_SPEC.test(format)) {
          return parseOklch(value2, opt);
        }
        [, x, y3, z, alpha] = parseOklch(value2);
        if (d50) {
          [x, y3, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y3, z], true);
        }
      } else {
        let r4, g3, b3;
        if (value2.startsWith("hsl")) {
          [, r4, g3, b3, alpha] = parseHsl2(value2);
        } else if (value2.startsWith("hwb")) {
          [, r4, g3, b3, alpha] = parseHwb(value2);
        } else {
          [, r4, g3, b3, alpha] = parseRgb2(value2, opt);
        }
        if (REG_SPEC.test(format)) {
          return ["rgb", Math.round(r4), Math.round(g3), Math.round(b3), alpha];
        }
        [x, y3, z] = transformRgbToXyz([r4, g3, b3]);
        if (d50) {
          [x, y3, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y3, z], true);
        }
      }
      return [
        d50 ? "xyz-d50" : "xyz-d65",
        roundToPrecision(x, HEX),
        roundToPrecision(y3, HEX),
        roundToPrecision(z, HEX),
        alpha
      ];
    };
    var resolveColorValue = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.toLowerCase().trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { colorSpace = "", format = "", nullable = false } = opt;
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE,
          name: "resolveColorValue",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        if (cachedResult.isNull) {
          return cachedResult;
        }
        const cachedItem = cachedResult.item;
        if (isString5(cachedItem)) {
          return cachedItem;
        }
        return cachedItem;
      }
      if (!REG_COLOR.test(value2)) {
        const res2 = resolveInvalidColorValue(format, nullable);
        if (res2 instanceof NullObject) {
          setCache(cacheKey, null);
          return res2;
        }
        setCache(cacheKey, res2);
        if (isString5(res2)) {
          return res2;
        }
        return res2;
      }
      let cs = "";
      let r4 = 0;
      let g3 = 0;
      let b3 = 0;
      let alpha = 0;
      if (REG_CURRENT.test(value2)) {
        if (format === VAL_SPEC) {
          setCache(cacheKey, value2);
          return value2;
        }
      } else if (/^[a-z]+$/.test(value2)) {
        if (Object.prototype.hasOwnProperty.call(NAMED_COLORS, value2)) {
          if (format === VAL_SPEC) {
            setCache(cacheKey, value2);
            return value2;
          }
          [r4, g3, b3] = NAMED_COLORS[value2];
          alpha = 1;
        } else {
          switch (format) {
            case VAL_SPEC: {
              if (value2 === "transparent") {
                setCache(cacheKey, value2);
                return value2;
              }
              const res2 = "";
              setCache(cacheKey, res2);
              return res2;
            }
            case VAL_MIX: {
              if (value2 === "transparent") {
                const res2 = ["rgb", 0, 0, 0, 0];
                setCache(cacheKey, res2);
                return res2;
              }
              setCache(cacheKey, null);
              return new NullObject();
            }
            case VAL_COMP:
            default: {
              if (nullable && value2 !== "transparent") {
                setCache(cacheKey, null);
                return new NullObject();
              }
              const res2 = ["rgb", 0, 0, 0, 0];
              setCache(cacheKey, res2);
              return res2;
            }
          }
        }
      } else if (value2[0] === "#") {
        [r4, g3, b3, alpha] = convertHexToRgb(value2);
      } else if (value2.startsWith("hsl")) {
        [, r4, g3, b3, alpha] = parseHsl2(value2, opt);
      } else if (value2.startsWith("hwb")) {
        [, r4, g3, b3, alpha] = parseHwb(value2, opt);
      } else if (/^l(?:ab|ch)/.test(value2)) {
        let x, y3, z;
        if (value2.startsWith("lab")) {
          [cs, x, y3, z, alpha] = parseLab(value2, opt);
        } else {
          [cs, x, y3, z, alpha] = parseLch(value2, opt);
        }
        if (REG_SPEC.test(format)) {
          const res2 = [cs, x, y3, z, alpha];
          setCache(cacheKey, res2);
          return res2;
        }
        [r4, g3, b3] = transformXyzD50ToRgb([x, y3, z]);
      } else if (/^okl(?:ab|ch)/.test(value2)) {
        let x, y3, z;
        if (value2.startsWith("oklab")) {
          [cs, x, y3, z, alpha] = parseOklab(value2, opt);
        } else {
          [cs, x, y3, z, alpha] = parseOklch(value2, opt);
        }
        if (REG_SPEC.test(format)) {
          const res2 = [cs, x, y3, z, alpha];
          setCache(cacheKey, res2);
          return res2;
        }
        [r4, g3, b3] = transformXyzToRgb([x, y3, z]);
      } else {
        [, r4, g3, b3, alpha] = parseRgb2(value2, opt);
      }
      if (format === VAL_MIX && colorSpace === "srgb") {
        const res2 = [
          "srgb",
          r4 / MAX_RGB,
          g3 / MAX_RGB,
          b3 / MAX_RGB,
          alpha
        ];
        setCache(cacheKey, res2);
        return res2;
      }
      const res = [
        "rgb",
        Math.round(r4),
        Math.round(g3),
        Math.round(b3),
        alpha
      ];
      setCache(cacheKey, res);
      return res;
    };
    var resolveColorFunc = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.toLowerCase().trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { colorSpace = "", format = "", nullable = false } = opt;
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE,
          name: "resolveColorFunc",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        if (cachedResult.isNull) {
          return cachedResult;
        }
        const cachedItem = cachedResult.item;
        if (isString5(cachedItem)) {
          return cachedItem;
        }
        return cachedItem;
      }
      if (!REG_FN_COLOR.test(value2)) {
        const res2 = resolveInvalidColorValue(format, nullable);
        if (res2 instanceof NullObject) {
          setCache(cacheKey, null);
          return res2;
        }
        setCache(cacheKey, res2);
        if (isString5(res2)) {
          return res2;
        }
        return res2;
      }
      const [cs, v1, v22, v3, v4] = parseColorFunc(
        value2,
        opt
      );
      if (REG_SPEC.test(format) || format === VAL_MIX && cs === colorSpace) {
        const res2 = [cs, v1, v22, v3, v4];
        setCache(cacheKey, res2);
        return res2;
      }
      const x = parseFloat(`${v1}`);
      const y3 = parseFloat(`${v22}`);
      const z = parseFloat(`${v3}`);
      const alpha = parseAlpha(`${v4}`);
      const [r4, g3, b3] = transformXyzToRgb([x, y3, z], true);
      const res = ["rgb", r4, g3, b3, alpha];
      setCache(cacheKey, res);
      return res;
    };
    var convertColorToLinearRgb = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { colorSpace = "", format = "" } = opt;
      let cs = "";
      let r4, g3, b3, alpha, x, y3, z;
      if (format === VAL_MIX) {
        let xyz;
        if (value2.startsWith(FN_COLOR)) {
          xyz = parseColorFunc(value2, opt);
        } else {
          xyz = parseColorValue(value2, opt);
        }
        if (xyz instanceof NullObject) {
          return xyz;
        }
        [cs, x, y3, z, alpha] = xyz;
        if (cs === colorSpace) {
          return [x, y3, z, alpha];
        }
        [r4, g3, b3] = transformMatrix(MATRIX_XYZ_TO_L_RGB, [x, y3, z], true);
      } else if (value2.startsWith(FN_COLOR)) {
        const [, val] = value2.match(REG_FN_COLOR);
        const [cs2] = val.replace("/", " ").split(/\s+/);
        if (cs2 === "srgb-linear") {
          [, r4, g3, b3, alpha] = resolveColorFunc(value2, {
            format: VAL_COMP
          });
        } else {
          [, x, y3, z, alpha] = parseColorFunc(value2);
          [r4, g3, b3] = transformMatrix(MATRIX_XYZ_TO_L_RGB, [x, y3, z], true);
        }
      } else {
        [, x, y3, z, alpha] = parseColorValue(value2);
        [r4, g3, b3] = transformMatrix(MATRIX_XYZ_TO_L_RGB, [x, y3, z], true);
      }
      return [
        Math.min(Math.max(r4, 0), 1),
        Math.min(Math.max(g3, 0), 1),
        Math.min(Math.max(b3, 0), 1),
        alpha
      ];
    };
    var convertColorToRgb = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "" } = opt;
      let r4, g3, b3, alpha;
      if (format === VAL_MIX) {
        let rgb;
        if (value2.startsWith(FN_COLOR)) {
          rgb = resolveColorFunc(value2, opt);
        } else {
          rgb = resolveColorValue(value2, opt);
        }
        if (rgb instanceof NullObject) {
          return rgb;
        }
        [, r4, g3, b3, alpha] = rgb;
      } else if (value2.startsWith(FN_COLOR)) {
        const [, val] = value2.match(REG_FN_COLOR);
        const [cs] = val.replace("/", " ").split(/\s+/);
        if (cs === "srgb") {
          [, r4, g3, b3, alpha] = resolveColorFunc(value2, {
            format: VAL_COMP
          });
          r4 *= MAX_RGB;
          g3 *= MAX_RGB;
          b3 *= MAX_RGB;
        } else {
          [, r4, g3, b3, alpha] = resolveColorFunc(value2);
        }
      } else if (/^(?:ok)?l(?:ab|ch)/.test(value2)) {
        [r4, g3, b3, alpha] = convertColorToLinearRgb(value2);
        [r4, g3, b3] = transformLinearRgbToRgb([r4, g3, b3]);
      } else {
        [, r4, g3, b3, alpha] = resolveColorValue(value2, {
          format: VAL_COMP
        });
      }
      return [r4, g3, b3, alpha];
    };
    var convertColorToXyz = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { d50 = false, format = "" } = opt;
      let x, y3, z, alpha;
      if (format === VAL_MIX) {
        let xyz;
        if (value2.startsWith(FN_COLOR)) {
          xyz = parseColorFunc(value2, opt);
        } else {
          xyz = parseColorValue(value2, opt);
        }
        if (xyz instanceof NullObject) {
          return xyz;
        }
        [, x, y3, z, alpha] = xyz;
      } else if (value2.startsWith(FN_COLOR)) {
        const [, val] = value2.match(REG_FN_COLOR);
        const [cs] = val.replace("/", " ").split(/\s+/);
        if (d50) {
          if (cs === "xyz-d50") {
            [, x, y3, z, alpha] = resolveColorFunc(value2, {
              format: VAL_COMP
            });
          } else {
            [, x, y3, z, alpha] = parseColorFunc(
              value2,
              opt
            );
          }
        } else if (/^xyz(?:-d65)?$/.test(cs)) {
          [, x, y3, z, alpha] = resolveColorFunc(value2, {
            format: VAL_COMP
          });
        } else {
          [, x, y3, z, alpha] = parseColorFunc(value2);
        }
      } else {
        [, x, y3, z, alpha] = parseColorValue(value2, opt);
      }
      return [x, y3, z, alpha];
    };
    var convertColorToHsl = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "" } = opt;
      let h4, s4, l4, alpha;
      if (REG_HSL.test(value2)) {
        [, h4, s4, l4, alpha] = parseHsl2(value2, {
          format: "hsl"
        });
        if (format === "hsl") {
          return [Math.round(h4), Math.round(s4), Math.round(l4), alpha];
        }
        return [h4, s4, l4, alpha];
      }
      let x, y3, z;
      if (format === VAL_MIX) {
        let xyz;
        if (value2.startsWith(FN_COLOR)) {
          xyz = parseColorFunc(value2, opt);
        } else {
          xyz = parseColorValue(value2, opt);
        }
        if (xyz instanceof NullObject) {
          return xyz;
        }
        [, x, y3, z, alpha] = xyz;
      } else if (value2.startsWith(FN_COLOR)) {
        [, x, y3, z, alpha] = parseColorFunc(value2);
      } else {
        [, x, y3, z, alpha] = parseColorValue(value2);
      }
      [h4, s4, l4] = transformXyzToHsl([x, y3, z], true);
      if (format === "hsl") {
        return [Math.round(h4), Math.round(s4), Math.round(l4), alpha];
      }
      return [format === VAL_MIX && s4 === 0 ? NONE : h4, s4, l4, alpha];
    };
    var convertColorToHwb = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "" } = opt;
      let h4, w, b3, alpha;
      if (REG_HWB.test(value2)) {
        [, h4, w, b3, alpha] = parseHwb(value2, {
          format: "hwb"
        });
        if (format === "hwb") {
          return [Math.round(h4), Math.round(w), Math.round(b3), alpha];
        }
        return [h4, w, b3, alpha];
      }
      let x, y3, z;
      if (format === VAL_MIX) {
        let xyz;
        if (value2.startsWith(FN_COLOR)) {
          xyz = parseColorFunc(value2, opt);
        } else {
          xyz = parseColorValue(value2, opt);
        }
        if (xyz instanceof NullObject) {
          return xyz;
        }
        [, x, y3, z, alpha] = xyz;
      } else if (value2.startsWith(FN_COLOR)) {
        [, x, y3, z, alpha] = parseColorFunc(value2);
      } else {
        [, x, y3, z, alpha] = parseColorValue(value2);
      }
      [h4, w, b3] = transformXyzToHwb([x, y3, z], true);
      if (format === "hwb") {
        return [Math.round(h4), Math.round(w), Math.round(b3), alpha];
      }
      return [format === VAL_MIX && w + b3 >= 100 ? NONE : h4, w, b3, alpha];
    };
    var convertColorToLab = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "" } = opt;
      let l4, a5, b3, alpha;
      if (REG_LAB.test(value2)) {
        [, l4, a5, b3, alpha] = parseLab(value2, {
          format: VAL_COMP
        });
        return [l4, a5, b3, alpha];
      }
      let x, y3, z;
      if (format === VAL_MIX) {
        let xyz;
        opt.d50 = true;
        if (value2.startsWith(FN_COLOR)) {
          xyz = parseColorFunc(value2, opt);
        } else {
          xyz = parseColorValue(value2, opt);
        }
        if (xyz instanceof NullObject) {
          return xyz;
        }
        [, x, y3, z, alpha] = xyz;
      } else if (value2.startsWith(FN_COLOR)) {
        [, x, y3, z, alpha] = parseColorFunc(value2, {
          d50: true
        });
      } else {
        [, x, y3, z, alpha] = parseColorValue(value2, {
          d50: true
        });
      }
      [l4, a5, b3] = transformXyzD50ToLab([x, y3, z], true);
      return [l4, a5, b3, alpha];
    };
    var convertColorToLch = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "" } = opt;
      let l4, c6, h4, alpha;
      if (REG_LCH.test(value2)) {
        [, l4, c6, h4, alpha] = parseLch(value2, {
          format: VAL_COMP
        });
        return [l4, c6, h4, alpha];
      }
      let x, y3, z;
      if (format === VAL_MIX) {
        let xyz;
        opt.d50 = true;
        if (value2.startsWith(FN_COLOR)) {
          xyz = parseColorFunc(value2, opt);
        } else {
          xyz = parseColorValue(value2, opt);
        }
        if (xyz instanceof NullObject) {
          return xyz;
        }
        [, x, y3, z, alpha] = xyz;
      } else if (value2.startsWith(FN_COLOR)) {
        [, x, y3, z, alpha] = parseColorFunc(value2, {
          d50: true
        });
      } else {
        [, x, y3, z, alpha] = parseColorValue(value2, {
          d50: true
        });
      }
      [l4, c6, h4] = transformXyzD50ToLch([x, y3, z], true);
      return [l4, c6, format === VAL_MIX && c6 === 0 ? NONE : h4, alpha];
    };
    var convertColorToOklab = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "" } = opt;
      let l4, a5, b3, alpha;
      if (REG_OKLAB.test(value2)) {
        [, l4, a5, b3, alpha] = parseOklab(value2, {
          format: VAL_COMP
        });
        return [l4, a5, b3, alpha];
      }
      let x, y3, z;
      if (format === VAL_MIX) {
        let xyz;
        if (value2.startsWith(FN_COLOR)) {
          xyz = parseColorFunc(value2, opt);
        } else {
          xyz = parseColorValue(value2, opt);
        }
        if (xyz instanceof NullObject) {
          return xyz;
        }
        [, x, y3, z, alpha] = xyz;
      } else if (value2.startsWith(FN_COLOR)) {
        [, x, y3, z, alpha] = parseColorFunc(value2);
      } else {
        [, x, y3, z, alpha] = parseColorValue(value2);
      }
      [l4, a5, b3] = transformXyzToOklab([x, y3, z], true);
      return [l4, a5, b3, alpha];
    };
    var convertColorToOklch = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "" } = opt;
      let l4, c6, h4, alpha;
      if (REG_OKLCH.test(value2)) {
        [, l4, c6, h4, alpha] = parseOklch(value2, {
          format: VAL_COMP
        });
        return [l4, c6, h4, alpha];
      }
      let x, y3, z;
      if (format === VAL_MIX) {
        let xyz;
        if (value2.startsWith(FN_COLOR)) {
          xyz = parseColorFunc(value2, opt);
        } else {
          xyz = parseColorValue(value2, opt);
        }
        if (xyz instanceof NullObject) {
          return xyz;
        }
        [, x, y3, z, alpha] = xyz;
      } else if (value2.startsWith(FN_COLOR)) {
        [, x, y3, z, alpha] = parseColorFunc(value2);
      } else {
        [, x, y3, z, alpha] = parseColorValue(value2);
      }
      [l4, c6, h4] = transformXyzToOklch([x, y3, z], true);
      return [l4, c6, format === VAL_MIX && c6 === 0 ? NONE : h4, alpha];
    };
    var resolveColorMix = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.toLowerCase().trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { format = "", nullable = false } = opt;
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE,
          name: "resolveColorMix",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        if (cachedResult.isNull) {
          return cachedResult;
        }
        const cachedItem = cachedResult.item;
        if (isString5(cachedItem)) {
          return cachedItem;
        }
        return cachedItem;
      }
      const nestedItems = [];
      if (!REG_MIX.test(value2)) {
        if (value2.startsWith(FN_MIX) && REG_MIX_NEST.test(value2)) {
          const regColorSpace = new RegExp(`^(?:${CS_RGB}|${CS_XYZ})$`);
          const items = value2.match(REG_MIX_NEST);
          for (const item of items) {
            if (item) {
              let val = resolveColorMix(item, {
                format: format === VAL_SPEC ? format : VAL_COMP
              });
              if (Array.isArray(val)) {
                const [cs, v1, v22, v3, v4] = val;
                if (v1 === 0 && v22 === 0 && v3 === 0 && v4 === 0) {
                  value2 = "";
                  break;
                }
                if (regColorSpace.test(cs)) {
                  if (v4 === 1) {
                    val = `color(${cs} ${v1} ${v22} ${v3})`;
                  } else {
                    val = `color(${cs} ${v1} ${v22} ${v3} / ${v4})`;
                  }
                } else if (v4 === 1) {
                  val = `${cs}(${v1} ${v22} ${v3})`;
                } else {
                  val = `${cs}(${v1} ${v22} ${v3} / ${v4})`;
                }
              } else if (!REG_MIX.test(val)) {
                value2 = "";
                break;
              }
              nestedItems.push(val);
              value2 = value2.replace(item, val);
            }
          }
          if (!value2) {
            const res2 = cacheInvalidColorValue(cacheKey, format, nullable);
            return res2;
          }
        } else {
          const res2 = cacheInvalidColorValue(cacheKey, format, nullable);
          return res2;
        }
      }
      let colorSpace = "";
      let hueArc = "";
      let colorA = "";
      let pctA = "";
      let colorB = "";
      let pctB = "";
      if (nestedItems.length && format === VAL_SPEC) {
        const regColorSpace = new RegExp(`^color-mix\\(\\s*in\\s+(${CS_MIX})\\s*,`);
        const [, cs] = value2.match(regColorSpace);
        if (REG_CS_HUE.test(cs)) {
          [, colorSpace, hueArc] = cs.match(REG_CS_HUE);
        } else {
          colorSpace = cs;
        }
        if (nestedItems.length === 2) {
          let [itemA, itemB] = nestedItems;
          itemA = itemA.replace(/(?=[()])/g, "\\");
          itemB = itemB.replace(/(?=[()])/g, "\\");
          const regA = new RegExp(`(${itemA})(?:\\s+(${PCT}))?`);
          const regB = new RegExp(`(${itemB})(?:\\s+(${PCT}))?`);
          [, colorA, pctA] = value2.match(regA);
          [, colorB, pctB] = value2.match(regB);
        } else {
          let [item] = nestedItems;
          item = item.replace(/(?=[()])/g, "\\");
          const itemPart = `${item}(?:\\s+${PCT})?`;
          const itemPartCapt = `(${item})(?:\\s+(${PCT}))?`;
          const regItemPart = new RegExp(`^${itemPartCapt}$`);
          const regLastItem = new RegExp(`${itemPartCapt}\\s*\\)$`);
          const regColorPart = new RegExp(`^(${SYN_COLOR_TYPE})(?:\\s+(${PCT}))?$`);
          if (regLastItem.test(value2)) {
            const reg = new RegExp(
              `(${SYN_MIX_PART})\\s*,\\s*(${itemPart})\\s*\\)$`
            );
            const [, colorPartA, colorPartB] = value2.match(reg);
            [, colorA, pctA] = colorPartA.match(regColorPart);
            [, colorB, pctB] = colorPartB.match(regItemPart);
          } else {
            const reg = new RegExp(
              `(${itemPart})\\s*,\\s*(${SYN_MIX_PART})\\s*\\)$`
            );
            const [, colorPartA, colorPartB] = value2.match(reg);
            [, colorA, pctA] = colorPartA.match(regItemPart);
            [, colorB, pctB] = colorPartB.match(regColorPart);
          }
        }
      } else {
        const [, cs, colorPartA, colorPartB] = value2.match(
          REG_MIX_CAPT
        );
        const reg = new RegExp(`^(${SYN_COLOR_TYPE})(?:\\s+(${PCT}))?$`);
        [, colorA, pctA] = colorPartA.match(reg);
        [, colorB, pctB] = colorPartB.match(reg);
        if (REG_CS_HUE.test(cs)) {
          [, colorSpace, hueArc] = cs.match(REG_CS_HUE);
        } else {
          colorSpace = cs;
        }
      }
      let pA, pB, m3;
      if (pctA && pctB) {
        const p1 = parseFloat(pctA) / MAX_PCT;
        const p22 = parseFloat(pctB) / MAX_PCT;
        if (p1 < 0 || p1 > 1 || p22 < 0 || p22 > 1) {
          const res2 = cacheInvalidColorValue(cacheKey, format, nullable);
          return res2;
        }
        const factor2 = p1 + p22;
        if (factor2 === 0) {
          const res2 = cacheInvalidColorValue(cacheKey, format, nullable);
          return res2;
        }
        pA = p1 / factor2;
        pB = p22 / factor2;
        m3 = factor2 < 1 ? factor2 : 1;
      } else {
        if (pctA) {
          pA = parseFloat(pctA) / MAX_PCT;
          if (pA < 0 || pA > 1) {
            const res2 = cacheInvalidColorValue(cacheKey, format, nullable);
            return res2;
          }
          pB = 1 - pA;
        } else if (pctB) {
          pB = parseFloat(pctB) / MAX_PCT;
          if (pB < 0 || pB > 1) {
            const res2 = cacheInvalidColorValue(cacheKey, format, nullable);
            return res2;
          }
          pA = 1 - pB;
        } else {
          pA = HALF;
          pB = HALF;
        }
        m3 = 1;
      }
      if (colorSpace === "xyz") {
        colorSpace = "xyz-d65";
      }
      if (format === VAL_SPEC) {
        let valueA = "";
        let valueB = "";
        if (colorA.startsWith(FN_MIX)) {
          valueA = colorA;
        } else if (colorA.startsWith(FN_COLOR)) {
          const [cs, v1, v22, v3, v4] = parseColorFunc(
            colorA,
            opt
          );
          if (v4 === 1) {
            valueA = `color(${cs} ${v1} ${v22} ${v3})`;
          } else {
            valueA = `color(${cs} ${v1} ${v22} ${v3} / ${v4})`;
          }
        } else {
          const val = parseColorValue(colorA, opt);
          if (Array.isArray(val)) {
            const [cs, v1, v22, v3, v4] = val;
            if (v4 === 1) {
              if (cs === "rgb") {
                valueA = `${cs}(${v1}, ${v22}, ${v3})`;
              } else {
                valueA = `${cs}(${v1} ${v22} ${v3})`;
              }
            } else if (cs === "rgb") {
              valueA = `${cs}a(${v1}, ${v22}, ${v3}, ${v4})`;
            } else {
              valueA = `${cs}(${v1} ${v22} ${v3} / ${v4})`;
            }
          } else {
            if (!isString5(val) || !val) {
              setCache(cacheKey, "");
              return "";
            }
            valueA = val;
          }
        }
        if (colorB.startsWith(FN_MIX)) {
          valueB = colorB;
        } else if (colorB.startsWith(FN_COLOR)) {
          const [cs, v1, v22, v3, v4] = parseColorFunc(
            colorB,
            opt
          );
          if (v4 === 1) {
            valueB = `color(${cs} ${v1} ${v22} ${v3})`;
          } else {
            valueB = `color(${cs} ${v1} ${v22} ${v3} / ${v4})`;
          }
        } else {
          const val = parseColorValue(colorB, opt);
          if (Array.isArray(val)) {
            const [cs, v1, v22, v3, v4] = val;
            if (v4 === 1) {
              if (cs === "rgb") {
                valueB = `${cs}(${v1}, ${v22}, ${v3})`;
              } else {
                valueB = `${cs}(${v1} ${v22} ${v3})`;
              }
            } else if (cs === "rgb") {
              valueB = `${cs}a(${v1}, ${v22}, ${v3}, ${v4})`;
            } else {
              valueB = `${cs}(${v1} ${v22} ${v3} / ${v4})`;
            }
          } else {
            if (!isString5(val) || !val) {
              setCache(cacheKey, "");
              return "";
            }
            valueB = val;
          }
        }
        if (pctA && pctB) {
          valueA += ` ${parseFloat(pctA)}%`;
          valueB += ` ${parseFloat(pctB)}%`;
        } else if (pctA) {
          const pA2 = parseFloat(pctA);
          if (pA2 !== MAX_PCT * HALF) {
            valueA += ` ${pA2}%`;
          }
        } else if (pctB) {
          const pA2 = MAX_PCT - parseFloat(pctB);
          if (pA2 !== MAX_PCT * HALF) {
            valueA += ` ${pA2}%`;
          }
        }
        if (hueArc) {
          const res2 = `color-mix(in ${colorSpace} ${hueArc} hue, ${valueA}, ${valueB})`;
          setCache(cacheKey, res2);
          return res2;
        } else {
          const res2 = `color-mix(in ${colorSpace}, ${valueA}, ${valueB})`;
          setCache(cacheKey, res2);
          return res2;
        }
      }
      let r4 = 0;
      let g3 = 0;
      let b3 = 0;
      let alpha = 0;
      if (/^srgb(?:-linear)?$/.test(colorSpace)) {
        let rgbA, rgbB;
        if (colorSpace === "srgb") {
          if (REG_CURRENT.test(colorA)) {
            rgbA = [NONE, NONE, NONE, NONE];
          } else {
            rgbA = convertColorToRgb(colorA, {
              colorSpace,
              format: VAL_MIX
            });
          }
          if (REG_CURRENT.test(colorB)) {
            rgbB = [NONE, NONE, NONE, NONE];
          } else {
            rgbB = convertColorToRgb(colorB, {
              colorSpace,
              format: VAL_MIX
            });
          }
        } else {
          if (REG_CURRENT.test(colorA)) {
            rgbA = [NONE, NONE, NONE, NONE];
          } else {
            rgbA = convertColorToLinearRgb(colorA, {
              colorSpace,
              format: VAL_MIX
            });
          }
          if (REG_CURRENT.test(colorB)) {
            rgbB = [NONE, NONE, NONE, NONE];
          } else {
            rgbB = convertColorToLinearRgb(colorB, {
              colorSpace,
              format: VAL_MIX
            });
          }
        }
        if (rgbA instanceof NullObject || rgbB instanceof NullObject) {
          const res2 = cacheInvalidColorValue(cacheKey, format, nullable);
          return res2;
        }
        const [rrA, ggA, bbA, aaA] = rgbA;
        const [rrB, ggB, bbB, aaB] = rgbB;
        const rNone = rrA === NONE && rrB === NONE;
        const gNone = ggA === NONE && ggB === NONE;
        const bNone = bbA === NONE && bbB === NONE;
        const alphaNone = aaA === NONE && aaB === NONE;
        const [[rA, gA, bA, alphaA], [rB, gB, bB, alphaB]] = normalizeColorComponents(
          [rrA, ggA, bbA, aaA],
          [rrB, ggB, bbB, aaB],
          true
        );
        const factorA = alphaA * pA;
        const factorB = alphaB * pB;
        alpha = factorA + factorB;
        if (alpha === 0) {
          r4 = rA * pA + rB * pB;
          g3 = gA * pA + gB * pB;
          b3 = bA * pA + bB * pB;
        } else {
          r4 = (rA * factorA + rB * factorB) / alpha;
          g3 = (gA * factorA + gB * factorB) / alpha;
          b3 = (bA * factorA + bB * factorB) / alpha;
          alpha = parseFloat(alpha.toFixed(3));
        }
        if (format === VAL_COMP) {
          const res2 = [
            colorSpace,
            rNone ? NONE : roundToPrecision(r4, HEX),
            gNone ? NONE : roundToPrecision(g3, HEX),
            bNone ? NONE : roundToPrecision(b3, HEX),
            alphaNone ? NONE : alpha * m3
          ];
          setCache(cacheKey, res2);
          return res2;
        }
        r4 *= MAX_RGB;
        g3 *= MAX_RGB;
        b3 *= MAX_RGB;
      } else if (REG_CS_XYZ.test(colorSpace)) {
        let xyzA, xyzB;
        if (REG_CURRENT.test(colorA)) {
          xyzA = [NONE, NONE, NONE, NONE];
        } else {
          xyzA = convertColorToXyz(colorA, {
            colorSpace,
            d50: colorSpace === "xyz-d50",
            format: VAL_MIX
          });
        }
        if (REG_CURRENT.test(colorB)) {
          xyzB = [NONE, NONE, NONE, NONE];
        } else {
          xyzB = convertColorToXyz(colorB, {
            colorSpace,
            d50: colorSpace === "xyz-d50",
            format: VAL_MIX
          });
        }
        if (xyzA instanceof NullObject || xyzB instanceof NullObject) {
          const res2 = cacheInvalidColorValue(cacheKey, format, nullable);
          return res2;
        }
        const [xxA, yyA, zzA, aaA] = xyzA;
        const [xxB, yyB, zzB, aaB] = xyzB;
        const xNone = xxA === NONE && xxB === NONE;
        const yNone = yyA === NONE && yyB === NONE;
        const zNone = zzA === NONE && zzB === NONE;
        const alphaNone = aaA === NONE && aaB === NONE;
        const [[xA, yA, zA, alphaA], [xB, yB, zB, alphaB]] = normalizeColorComponents(
          [xxA, yyA, zzA, aaA],
          [xxB, yyB, zzB, aaB],
          true
        );
        const factorA = alphaA * pA;
        const factorB = alphaB * pB;
        alpha = factorA + factorB;
        let x, y3, z;
        if (alpha === 0) {
          x = xA * pA + xB * pB;
          y3 = yA * pA + yB * pB;
          z = zA * pA + zB * pB;
        } else {
          x = (xA * factorA + xB * factorB) / alpha;
          y3 = (yA * factorA + yB * factorB) / alpha;
          z = (zA * factorA + zB * factorB) / alpha;
          alpha = parseFloat(alpha.toFixed(3));
        }
        if (format === VAL_COMP) {
          const res2 = [
            colorSpace,
            xNone ? NONE : roundToPrecision(x, HEX),
            yNone ? NONE : roundToPrecision(y3, HEX),
            zNone ? NONE : roundToPrecision(z, HEX),
            alphaNone ? NONE : alpha * m3
          ];
          setCache(cacheKey, res2);
          return res2;
        }
        if (colorSpace === "xyz-d50") {
          [r4, g3, b3] = transformXyzD50ToRgb([x, y3, z], true);
        } else {
          [r4, g3, b3] = transformXyzToRgb([x, y3, z], true);
        }
      } else if (/^h(?:sl|wb)$/.test(colorSpace)) {
        let hslA, hslB;
        if (colorSpace === "hsl") {
          if (REG_CURRENT.test(colorA)) {
            hslA = [NONE, NONE, NONE, NONE];
          } else {
            hslA = convertColorToHsl(colorA, {
              colorSpace,
              format: VAL_MIX
            });
          }
          if (REG_CURRENT.test(colorB)) {
            hslB = [NONE, NONE, NONE, NONE];
          } else {
            hslB = convertColorToHsl(colorB, {
              colorSpace,
              format: VAL_MIX
            });
          }
        } else {
          if (REG_CURRENT.test(colorA)) {
            hslA = [NONE, NONE, NONE, NONE];
          } else {
            hslA = convertColorToHwb(colorA, {
              colorSpace,
              format: VAL_MIX
            });
          }
          if (REG_CURRENT.test(colorB)) {
            hslB = [NONE, NONE, NONE, NONE];
          } else {
            hslB = convertColorToHwb(colorB, {
              colorSpace,
              format: VAL_MIX
            });
          }
        }
        if (hslA instanceof NullObject || hslB instanceof NullObject) {
          const res2 = cacheInvalidColorValue(cacheKey, format, nullable);
          return res2;
        }
        const [hhA, ssA, llA, aaA] = hslA;
        const [hhB, ssB, llB, aaB] = hslB;
        const alphaNone = aaA === NONE && aaB === NONE;
        let [[hA, sA, lA, alphaA], [hB, sB, lB, alphaB]] = normalizeColorComponents(
          [hhA, ssA, llA, aaA],
          [hhB, ssB, llB, aaB],
          true
        );
        if (hueArc) {
          [hA, hB] = interpolateHue(hA, hB, hueArc);
        }
        const factorA = alphaA * pA;
        const factorB = alphaB * pB;
        alpha = factorA + factorB;
        const h4 = (hA * pA + hB * pB) % DEG;
        let s4, l4;
        if (alpha === 0) {
          s4 = sA * pA + sB * pB;
          l4 = lA * pA + lB * pB;
        } else {
          s4 = (sA * factorA + sB * factorB) / alpha;
          l4 = (lA * factorA + lB * factorB) / alpha;
          alpha = parseFloat(alpha.toFixed(3));
        }
        [r4, g3, b3] = convertColorToRgb(
          `${colorSpace}(${h4} ${s4} ${l4})`
        );
        if (format === VAL_COMP) {
          const res2 = [
            "srgb",
            roundToPrecision(r4 / MAX_RGB, HEX),
            roundToPrecision(g3 / MAX_RGB, HEX),
            roundToPrecision(b3 / MAX_RGB, HEX),
            alphaNone ? NONE : alpha * m3
          ];
          setCache(cacheKey, res2);
          return res2;
        }
      } else if (/^(?:ok)?lch$/.test(colorSpace)) {
        let lchA, lchB;
        if (colorSpace === "lch") {
          if (REG_CURRENT.test(colorA)) {
            lchA = [NONE, NONE, NONE, NONE];
          } else {
            lchA = convertColorToLch(colorA, {
              colorSpace,
              format: VAL_MIX
            });
          }
          if (REG_CURRENT.test(colorB)) {
            lchB = [NONE, NONE, NONE, NONE];
          } else {
            lchB = convertColorToLch(colorB, {
              colorSpace,
              format: VAL_MIX
            });
          }
        } else {
          if (REG_CURRENT.test(colorA)) {
            lchA = [NONE, NONE, NONE, NONE];
          } else {
            lchA = convertColorToOklch(colorA, {
              colorSpace,
              format: VAL_MIX
            });
          }
          if (REG_CURRENT.test(colorB)) {
            lchB = [NONE, NONE, NONE, NONE];
          } else {
            lchB = convertColorToOklch(colorB, {
              colorSpace,
              format: VAL_MIX
            });
          }
        }
        if (lchA instanceof NullObject || lchB instanceof NullObject) {
          const res2 = cacheInvalidColorValue(cacheKey, format, nullable);
          return res2;
        }
        const [llA, ccA, hhA, aaA] = lchA;
        const [llB, ccB, hhB, aaB] = lchB;
        const lNone = llA === NONE && llB === NONE;
        const cNone = ccA === NONE && ccB === NONE;
        const hNone = hhA === NONE && hhB === NONE;
        const alphaNone = aaA === NONE && aaB === NONE;
        let [[lA, cA, hA, alphaA], [lB, cB, hB, alphaB]] = normalizeColorComponents(
          [llA, ccA, hhA, aaA],
          [llB, ccB, hhB, aaB],
          true
        );
        if (hueArc) {
          [hA, hB] = interpolateHue(hA, hB, hueArc);
        }
        const factorA = alphaA * pA;
        const factorB = alphaB * pB;
        alpha = factorA + factorB;
        const h4 = (hA * pA + hB * pB) % DEG;
        let l4, c6;
        if (alpha === 0) {
          l4 = lA * pA + lB * pB;
          c6 = cA * pA + cB * pB;
        } else {
          l4 = (lA * factorA + lB * factorB) / alpha;
          c6 = (cA * factorA + cB * factorB) / alpha;
          alpha = parseFloat(alpha.toFixed(3));
        }
        if (format === VAL_COMP) {
          const res2 = [
            colorSpace,
            lNone ? NONE : roundToPrecision(l4, HEX),
            cNone ? NONE : roundToPrecision(c6, HEX),
            hNone ? NONE : roundToPrecision(h4, HEX),
            alphaNone ? NONE : alpha * m3
          ];
          setCache(cacheKey, res2);
          return res2;
        }
        [, r4, g3, b3] = resolveColorValue(
          `${colorSpace}(${l4} ${c6} ${h4})`
        );
      } else {
        let labA, labB;
        if (colorSpace === "lab") {
          if (REG_CURRENT.test(colorA)) {
            labA = [NONE, NONE, NONE, NONE];
          } else {
            labA = convertColorToLab(colorA, {
              colorSpace,
              format: VAL_MIX
            });
          }
          if (REG_CURRENT.test(colorB)) {
            labB = [NONE, NONE, NONE, NONE];
          } else {
            labB = convertColorToLab(colorB, {
              colorSpace,
              format: VAL_MIX
            });
          }
        } else {
          if (REG_CURRENT.test(colorA)) {
            labA = [NONE, NONE, NONE, NONE];
          } else {
            labA = convertColorToOklab(colorA, {
              colorSpace,
              format: VAL_MIX
            });
          }
          if (REG_CURRENT.test(colorB)) {
            labB = [NONE, NONE, NONE, NONE];
          } else {
            labB = convertColorToOklab(colorB, {
              colorSpace,
              format: VAL_MIX
            });
          }
        }
        if (labA instanceof NullObject || labB instanceof NullObject) {
          const res2 = cacheInvalidColorValue(cacheKey, format, nullable);
          return res2;
        }
        const [llA, aaA, bbA, alA] = labA;
        const [llB, aaB, bbB, alB] = labB;
        const lNone = llA === NONE && llB === NONE;
        const aNone = aaA === NONE && aaB === NONE;
        const bNone = bbA === NONE && bbB === NONE;
        const alphaNone = alA === NONE && alB === NONE;
        const [[lA, aA, bA, alphaA], [lB, aB, bB, alphaB]] = normalizeColorComponents(
          [llA, aaA, bbA, alA],
          [llB, aaB, bbB, alB],
          true
        );
        const factorA = alphaA * pA;
        const factorB = alphaB * pB;
        alpha = factorA + factorB;
        let l4, aO, bO;
        if (alpha === 0) {
          l4 = lA * pA + lB * pB;
          aO = aA * pA + aB * pB;
          bO = bA * pA + bB * pB;
        } else {
          l4 = (lA * factorA + lB * factorB) / alpha;
          aO = (aA * factorA + aB * factorB) / alpha;
          bO = (bA * factorA + bB * factorB) / alpha;
          alpha = parseFloat(alpha.toFixed(3));
        }
        if (format === VAL_COMP) {
          const res2 = [
            colorSpace,
            lNone ? NONE : roundToPrecision(l4, HEX),
            aNone ? NONE : roundToPrecision(aO, HEX),
            bNone ? NONE : roundToPrecision(bO, HEX),
            alphaNone ? NONE : alpha * m3
          ];
          setCache(cacheKey, res2);
          return res2;
        }
        [, r4, g3, b3] = resolveColorValue(
          `${colorSpace}(${l4} ${aO} ${bO})`
        );
      }
      const res = [
        "rgb",
        Math.round(r4),
        Math.round(g3),
        Math.round(b3),
        parseFloat((alpha * m3).toFixed(3))
      ];
      setCache(cacheKey, res);
      return res;
    };
    var import_css_tokenizer = require_dist10();
    var {
      CloseParen: PAREN_CLOSE,
      Comment: COMMENT,
      EOF,
      Ident: IDENT,
      Whitespace: W_SPACE
    } = import_css_tokenizer.TokenType;
    var NAMESPACE2 = "css-var";
    var REG_FN_CALC = new RegExp(SYN_FN_CALC);
    var REG_FN_VAR = new RegExp(SYN_FN_VAR);
    function resolveCustomProperty(tokens, opt = {}) {
      if (!Array.isArray(tokens)) {
        throw new TypeError(`${tokens} is not an array.`);
      }
      const { customProperty = {} } = opt;
      const items = [];
      while (tokens.length) {
        const token = tokens.shift();
        if (!Array.isArray(token)) {
          throw new TypeError(`${token} is not an array.`);
        }
        const [type, value2] = token;
        if (type === PAREN_CLOSE) {
          break;
        }
        if (value2 === FN_VAR) {
          const [restTokens, item] = resolveCustomProperty(tokens, opt);
          tokens = restTokens;
          if (item) {
            items.push(item);
          }
        } else if (type === IDENT) {
          if (value2.startsWith("--")) {
            let item;
            if (Object.hasOwnProperty.call(customProperty, value2)) {
              item = customProperty[value2];
            } else if (typeof customProperty.callback === "function") {
              item = customProperty.callback(value2);
            }
            if (item) {
              items.push(item);
            }
          } else if (value2) {
            items.push(value2);
          }
        }
      }
      let resolveAsColor = false;
      if (items.length > 1) {
        const lastValue = items[items.length - 1];
        resolveAsColor = isColor(lastValue);
      }
      let resolvedValue = "";
      for (let item of items) {
        item = item.trim();
        if (REG_FN_VAR.test(item)) {
          const resolvedItem = resolveVar(item, opt);
          if (isString5(resolvedItem)) {
            if (resolveAsColor) {
              if (isColor(resolvedItem)) {
                resolvedValue = resolvedItem;
              }
            } else {
              resolvedValue = resolvedItem;
            }
          }
        } else if (REG_FN_CALC.test(item)) {
          item = cssCalc(item, opt);
          if (resolveAsColor) {
            if (isColor(item)) {
              resolvedValue = item;
            }
          } else {
            resolvedValue = item;
          }
        } else if (item && !/^(?:inherit|initial|revert(?:-layer)?|unset)$/.test(item)) {
          if (resolveAsColor) {
            if (isColor(item)) {
              resolvedValue = item;
            }
          } else {
            resolvedValue = item;
          }
        }
        if (resolvedValue) {
          break;
        }
      }
      return [tokens, resolvedValue];
    }
    function parseTokens2(tokens, opt = {}) {
      const res = [];
      while (tokens.length) {
        const token = tokens.shift();
        const [type = "", value2 = ""] = token;
        if (value2 === FN_VAR) {
          const [restTokens, resolvedValue] = resolveCustomProperty(tokens, opt);
          if (!resolvedValue) {
            return new NullObject();
          }
          tokens = restTokens;
          res.push(resolvedValue);
        } else {
          switch (type) {
            case PAREN_CLOSE: {
              if (res.length) {
                const lastValue = res[res.length - 1];
                if (lastValue === " ") {
                  res.splice(-1, 1, value2);
                } else {
                  res.push(value2);
                }
              } else {
                res.push(value2);
              }
              break;
            }
            case W_SPACE: {
              if (res.length) {
                const lastValue = res[res.length - 1];
                if (isString5(lastValue) && !lastValue.endsWith("(") && lastValue !== " ") {
                  res.push(value2);
                }
              }
              break;
            }
            default: {
              if (type !== COMMENT && type !== EOF) {
                res.push(value2);
              }
            }
          }
        }
      }
      return res;
    }
    function resolveVar(value2, opt = {}) {
      const { format = "" } = opt;
      if (isString5(value2)) {
        if (!REG_FN_VAR.test(value2) || format === VAL_SPEC) {
          return value2;
        }
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE2,
          name: "resolveVar",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        if (cachedResult.isNull) {
          return cachedResult;
        }
        return cachedResult.item;
      }
      const tokens = (0, import_css_tokenizer.tokenize)({ css: value2 });
      const values = parseTokens2(tokens, opt);
      if (Array.isArray(values)) {
        let color = values.join("");
        if (REG_FN_CALC.test(color)) {
          color = cssCalc(color, opt);
        }
        setCache(cacheKey, color);
        return color;
      } else {
        setCache(cacheKey, null);
        return new NullObject();
      }
    }
    var cssVar = (value2, opt = {}) => {
      const resolvedValue = resolveVar(value2, opt);
      if (isString5(resolvedValue)) {
        return resolvedValue;
      }
      return "";
    };
    var import_css_color_parser = require_dist14();
    var import_css_parser_algorithms = require_dist11();
    var import_css_tokenizer2 = require_dist10();
    var {
      CloseParen: PAREN_CLOSE2,
      Comment: COMMENT2,
      Dimension: DIM,
      EOF: EOF2,
      Function: FUNC,
      Ident: IDENT2,
      Number: NUM2,
      OpenParen: PAREN_OPEN,
      Percentage: PCT2,
      Whitespace: W_SPACE2
    } = import_css_tokenizer2.TokenType;
    var { HasNoneKeywords: KEY_NONE } = import_css_color_parser.SyntaxFlag;
    var NAMESPACE3 = "relative-color";
    var OCT2 = 8;
    var DEC2 = 10;
    var HEX2 = 16;
    var MAX_PCT2 = 100;
    var MAX_RGB2 = 255;
    var REG_COLOR_CAPT = new RegExp(
      `^${FN_REL}(${SYN_COLOR_TYPE}|${SYN_MIX})\\s+`
    );
    var REG_CS_HSL = /(?:hsla?|hwb)$/;
    var REG_CS_CIE = new RegExp(`^(?:${CS_LAB}|${CS_LCH})$`);
    var REG_FN_MATH_START = new RegExp(SYN_FN_MATH_START);
    var REG_FN_REL = new RegExp(FN_REL);
    var REG_FN_REL_CAPT = new RegExp(`^${FN_REL_CAPT}`);
    var REG_FN_REL_START = new RegExp(`^${FN_REL}`);
    var REG_FN_VAR2 = new RegExp(SYN_FN_VAR);
    function resolveColorChannels(tokens, opt = {}) {
      if (!Array.isArray(tokens)) {
        throw new TypeError(`${tokens} is not an array.`);
      }
      const { colorSpace = "", format = "" } = opt;
      const colorChannels = /* @__PURE__ */ new Map([
        ["color", ["r", "g", "b", "alpha"]],
        ["hsl", ["h", "s", "l", "alpha"]],
        ["hsla", ["h", "s", "l", "alpha"]],
        ["hwb", ["h", "w", "b", "alpha"]],
        ["lab", ["l", "a", "b", "alpha"]],
        ["lch", ["l", "c", "h", "alpha"]],
        ["oklab", ["l", "a", "b", "alpha"]],
        ["oklch", ["l", "c", "h", "alpha"]],
        ["rgb", ["r", "g", "b", "alpha"]],
        ["rgba", ["r", "g", "b", "alpha"]]
      ]);
      const colorChannel = colorChannels.get(colorSpace);
      if (!colorChannel) {
        return new NullObject();
      }
      const mathFunc = /* @__PURE__ */ new Set();
      const channels2 = [[], [], [], []];
      let i5 = 0;
      let nest = 0;
      let func = false;
      while (tokens.length) {
        const token = tokens.shift();
        if (!Array.isArray(token)) {
          throw new TypeError(`${token} is not an array.`);
        }
        const [type, value2, , , detail] = token;
        const channel = channels2[i5];
        if (Array.isArray(channel)) {
          switch (type) {
            case DIM: {
              const resolvedValue = resolveDimension(token, opt);
              if (isString5(resolvedValue)) {
                channel.push(resolvedValue);
              } else {
                channel.push(value2);
              }
              break;
            }
            case FUNC: {
              channel.push(value2);
              func = true;
              nest++;
              if (REG_FN_MATH_START.test(value2)) {
                mathFunc.add(nest);
              }
              break;
            }
            case IDENT2: {
              if (!colorChannel.includes(value2)) {
                return new NullObject();
              }
              channel.push(value2);
              if (!func) {
                i5++;
              }
              break;
            }
            case NUM2: {
              channel.push(Number(detail?.value));
              if (!func) {
                i5++;
              }
              break;
            }
            case PAREN_OPEN: {
              channel.push(value2);
              nest++;
              break;
            }
            case PAREN_CLOSE2: {
              if (func) {
                const lastValue = channel[channel.length - 1];
                if (lastValue === " ") {
                  channel.splice(-1, 1, value2);
                } else {
                  channel.push(value2);
                }
                if (mathFunc.has(nest)) {
                  mathFunc.delete(nest);
                }
                nest--;
                if (nest === 0) {
                  func = false;
                  i5++;
                }
              }
              break;
            }
            case PCT2: {
              channel.push(Number(detail?.value) / MAX_PCT2);
              if (!func) {
                i5++;
              }
              break;
            }
            case W_SPACE2: {
              if (channel.length && func) {
                const lastValue = channel[channel.length - 1];
                if (typeof lastValue === "number") {
                  channel.push(value2);
                } else if (isString5(lastValue) && !lastValue.endsWith("(") && lastValue !== " ") {
                  channel.push(value2);
                }
              }
              break;
            }
            default: {
              if (type !== COMMENT2 && type !== EOF2 && func) {
                channel.push(value2);
              }
            }
          }
        }
      }
      const channelValues = [];
      for (const channel of channels2) {
        if (channel.length === 1) {
          const [resolvedValue] = channel;
          if (isStringOrNumber(resolvedValue)) {
            channelValues.push(resolvedValue);
          }
        } else if (channel.length) {
          const resolvedValue = serializeCalc(channel.join(""), {
            format
          });
          channelValues.push(resolvedValue);
        }
      }
      return channelValues;
    }
    function extractOriginColor(value2, opt = {}) {
      const { currentColor = "", format = "" } = opt;
      if (isString5(value2)) {
        value2 = value2.toLowerCase().trim();
        if (!value2) {
          return new NullObject();
        }
        if (!REG_FN_REL_START.test(value2)) {
          return value2;
        }
      } else {
        return new NullObject();
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE3,
          name: "extractOriginColor",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        if (cachedResult.isNull) {
          return cachedResult;
        }
        return cachedResult.item;
      }
      if (/currentcolor/.test(value2)) {
        if (currentColor) {
          value2 = value2.replace(/currentcolor/g, currentColor);
        } else {
          setCache(cacheKey, null);
          return new NullObject();
        }
      }
      let colorSpace = "";
      if (REG_FN_REL_CAPT.test(value2)) {
        [, colorSpace] = value2.match(REG_FN_REL_CAPT);
      }
      opt.colorSpace = colorSpace;
      if (REG_COLOR_CAPT.test(value2)) {
        const [, originColor] = value2.match(REG_COLOR_CAPT);
        const [, restValue] = value2.split(originColor);
        if (/^[a-z]+$/.test(originColor)) {
          if (!/^transparent$/.test(originColor) && !Object.prototype.hasOwnProperty.call(NAMED_COLORS, originColor)) {
            setCache(cacheKey, null);
            return new NullObject();
          }
        } else if (format === VAL_SPEC) {
          const resolvedOriginColor = resolveColor(originColor, opt);
          if (isString5(resolvedOriginColor)) {
            value2 = value2.replace(originColor, resolvedOriginColor);
          }
        }
        if (format === VAL_SPEC) {
          const tokens = (0, import_css_tokenizer2.tokenize)({ css: restValue });
          const channelValues = resolveColorChannels(tokens, opt);
          if (channelValues instanceof NullObject) {
            setCache(cacheKey, null);
            return channelValues;
          }
          const [v1, v22, v3, v4] = channelValues;
          let channelValue = "";
          if (isStringOrNumber(v4)) {
            channelValue = ` ${v1} ${v22} ${v3} / ${v4})`;
          } else {
            channelValue = ` ${channelValues.join(" ")})`;
          }
          if (restValue !== channelValue) {
            value2 = value2.replace(restValue, channelValue);
          }
        }
      } else {
        const [, restValue] = value2.split(REG_FN_REL_START);
        const tokens = (0, import_css_tokenizer2.tokenize)({ css: restValue });
        const originColor = [];
        let nest = 0;
        while (tokens.length) {
          const [type, tokenValue] = tokens.shift();
          switch (type) {
            case FUNC:
            case PAREN_OPEN: {
              originColor.push(tokenValue);
              nest++;
              break;
            }
            case PAREN_CLOSE2: {
              const lastValue = originColor[originColor.length - 1];
              if (lastValue === " ") {
                originColor.splice(-1, 1, tokenValue);
              } else if (isString5(lastValue)) {
                originColor.push(tokenValue);
              }
              nest--;
              break;
            }
            case W_SPACE2: {
              const lastValue = originColor[originColor.length - 1];
              if (isString5(lastValue) && !lastValue.endsWith("(") && lastValue !== " ") {
                originColor.push(tokenValue);
              }
              break;
            }
            default: {
              if (type !== COMMENT2 && type !== EOF2) {
                originColor.push(tokenValue);
              }
            }
          }
          if (nest === 0) {
            break;
          }
        }
        const resolvedOriginColor = resolveRelativeColor(
          originColor.join("").trim(),
          opt
        );
        if (resolvedOriginColor instanceof NullObject) {
          setCache(cacheKey, null);
          return resolvedOriginColor;
        }
        const channelValues = resolveColorChannels(tokens, opt);
        if (channelValues instanceof NullObject) {
          setCache(cacheKey, null);
          return channelValues;
        }
        const [v1, v22, v3, v4] = channelValues;
        let channelValue = "";
        if (isStringOrNumber(v4)) {
          channelValue = ` ${v1} ${v22} ${v3} / ${v4})`;
        } else {
          channelValue = ` ${channelValues.join(" ")})`;
        }
        value2 = value2.replace(restValue, `${resolvedOriginColor}${channelValue}`);
      }
      setCache(cacheKey, value2);
      return value2;
    }
    function resolveRelativeColor(value2, opt = {}) {
      const { format = "" } = opt;
      if (isString5(value2)) {
        if (REG_FN_VAR2.test(value2)) {
          if (format === VAL_SPEC) {
            return value2;
          } else {
            throw new SyntaxError(`Unexpected token ${FN_VAR} found.`);
          }
        } else if (!REG_FN_REL.test(value2)) {
          return value2;
        }
        value2 = value2.toLowerCase().trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE3,
          name: "resolveRelativeColor",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        if (cachedResult.isNull) {
          return cachedResult;
        }
        return cachedResult.item;
      }
      const originColor = extractOriginColor(value2, opt);
      if (originColor instanceof NullObject) {
        setCache(cacheKey, null);
        return originColor;
      }
      value2 = originColor;
      if (format === VAL_SPEC) {
        if (value2.startsWith("rgba(")) {
          value2 = value2.replace(/^rgba\(/, "rgb(");
        } else if (value2.startsWith("hsla(")) {
          value2 = value2.replace(/^hsla\(/, "hsl(");
        }
        return value2;
      }
      const tokens = (0, import_css_tokenizer2.tokenize)({ css: value2 });
      const components = (0, import_css_parser_algorithms.parseComponentValue)(tokens);
      const parsedComponents = (0, import_css_color_parser.color)(components);
      if (!parsedComponents) {
        setCache(cacheKey, null);
        return new NullObject();
      }
      const {
        alpha: alphaComponent,
        channels: channelsComponent,
        colorNotation,
        syntaxFlags
      } = parsedComponents;
      let alpha;
      if (Number.isNaN(Number(alphaComponent))) {
        if (syntaxFlags instanceof Set && syntaxFlags.has(KEY_NONE)) {
          alpha = NONE;
        } else {
          alpha = 0;
        }
      } else {
        alpha = roundToPrecision(Number(alphaComponent), OCT2);
      }
      let v1;
      let v22;
      let v3;
      [v1, v22, v3] = channelsComponent;
      let resolvedValue;
      if (REG_CS_CIE.test(colorNotation)) {
        const hasNone = syntaxFlags instanceof Set && syntaxFlags.has(KEY_NONE);
        if (Number.isNaN(v1)) {
          if (hasNone) {
            v1 = NONE;
          } else {
            v1 = 0;
          }
        } else {
          v1 = roundToPrecision(v1, HEX2);
        }
        if (Number.isNaN(v22)) {
          if (hasNone) {
            v22 = NONE;
          } else {
            v22 = 0;
          }
        } else {
          v22 = roundToPrecision(v22, HEX2);
        }
        if (Number.isNaN(v3)) {
          if (hasNone) {
            v3 = NONE;
          } else {
            v3 = 0;
          }
        } else {
          v3 = roundToPrecision(v3, HEX2);
        }
        if (alpha === 1) {
          resolvedValue = `${colorNotation}(${v1} ${v22} ${v3})`;
        } else {
          resolvedValue = `${colorNotation}(${v1} ${v22} ${v3} / ${alpha})`;
        }
      } else if (REG_CS_HSL.test(colorNotation)) {
        if (Number.isNaN(v1)) {
          v1 = 0;
        }
        if (Number.isNaN(v22)) {
          v22 = 0;
        }
        if (Number.isNaN(v3)) {
          v3 = 0;
        }
        let [r4, g3, b3] = convertColorToRgb(
          `${colorNotation}(${v1} ${v22} ${v3} / ${alpha})`
        );
        r4 = roundToPrecision(r4 / MAX_RGB2, DEC2);
        g3 = roundToPrecision(g3 / MAX_RGB2, DEC2);
        b3 = roundToPrecision(b3 / MAX_RGB2, DEC2);
        if (alpha === 1) {
          resolvedValue = `color(srgb ${r4} ${g3} ${b3})`;
        } else {
          resolvedValue = `color(srgb ${r4} ${g3} ${b3} / ${alpha})`;
        }
      } else {
        const cs = colorNotation === "rgb" ? "srgb" : colorNotation;
        const hasNone = syntaxFlags instanceof Set && syntaxFlags.has(KEY_NONE);
        if (Number.isNaN(v1)) {
          if (hasNone) {
            v1 = NONE;
          } else {
            v1 = 0;
          }
        } else {
          v1 = roundToPrecision(v1, DEC2);
        }
        if (Number.isNaN(v22)) {
          if (hasNone) {
            v22 = NONE;
          } else {
            v22 = 0;
          }
        } else {
          v22 = roundToPrecision(v22, DEC2);
        }
        if (Number.isNaN(v3)) {
          if (hasNone) {
            v3 = NONE;
          } else {
            v3 = 0;
          }
        } else {
          v3 = roundToPrecision(v3, DEC2);
        }
        if (alpha === 1) {
          resolvedValue = `color(${cs} ${v1} ${v22} ${v3})`;
        } else {
          resolvedValue = `color(${cs} ${v1} ${v22} ${v3} / ${alpha})`;
        }
      }
      setCache(cacheKey, resolvedValue);
      return resolvedValue;
    }
    var NAMESPACE4 = "resolve";
    var RGB_TRANSPARENT = "rgba(0, 0, 0, 0)";
    var REG_FN_CALC2 = new RegExp(SYN_FN_CALC);
    var REG_FN_REL2 = new RegExp(SYN_FN_REL);
    var REG_FN_VAR3 = new RegExp(SYN_FN_VAR);
    var resolveColor = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { currentColor = "", format = VAL_COMP, nullable = false } = opt;
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE4,
          name: "resolve",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        if (cachedResult.isNull) {
          return cachedResult;
        }
        return cachedResult.item;
      }
      if (REG_FN_VAR3.test(value2)) {
        if (format === VAL_SPEC) {
          setCache(cacheKey, value2);
          return value2;
        }
        const resolvedValue = resolveVar(value2, opt);
        if (resolvedValue instanceof NullObject) {
          switch (format) {
            case "hex":
            case "hexAlpha": {
              setCache(cacheKey, resolvedValue);
              return resolvedValue;
            }
            default: {
              if (nullable) {
                setCache(cacheKey, resolvedValue);
                return resolvedValue;
              }
              const res2 = RGB_TRANSPARENT;
              setCache(cacheKey, res2);
              return res2;
            }
          }
        } else {
          value2 = resolvedValue;
        }
      }
      if (opt.format !== format) {
        opt.format = format;
      }
      value2 = value2.toLowerCase();
      if (REG_FN_REL2.test(value2)) {
        const resolvedValue = resolveRelativeColor(value2, opt);
        if (format === VAL_COMP) {
          let res2;
          if (resolvedValue instanceof NullObject) {
            if (nullable) {
              res2 = resolvedValue;
            } else {
              res2 = RGB_TRANSPARENT;
            }
          } else {
            res2 = resolvedValue;
          }
          setCache(cacheKey, res2);
          return res2;
        }
        if (format === VAL_SPEC) {
          let res2 = "";
          if (resolvedValue instanceof NullObject) {
            res2 = "";
          } else {
            res2 = resolvedValue;
          }
          setCache(cacheKey, res2);
          return res2;
        }
        if (resolvedValue instanceof NullObject) {
          value2 = "";
        } else {
          value2 = resolvedValue;
        }
      }
      if (REG_FN_CALC2.test(value2)) {
        value2 = cssCalc(value2, opt);
      }
      let cs = "";
      let r4 = NaN;
      let g3 = NaN;
      let b3 = NaN;
      let alpha = NaN;
      if (value2 === "transparent") {
        switch (format) {
          case VAL_SPEC: {
            setCache(cacheKey, value2);
            return value2;
          }
          case "hex": {
            setCache(cacheKey, null);
            return new NullObject();
          }
          case "hexAlpha": {
            const res2 = "#00000000";
            setCache(cacheKey, res2);
            return res2;
          }
          case VAL_COMP:
          default: {
            const res2 = RGB_TRANSPARENT;
            setCache(cacheKey, res2);
            return res2;
          }
        }
      } else if (value2 === "currentcolor") {
        if (format === VAL_SPEC) {
          setCache(cacheKey, value2);
          return value2;
        }
        if (currentColor) {
          let resolvedValue;
          if (currentColor.startsWith(FN_MIX)) {
            resolvedValue = resolveColorMix(currentColor, opt);
          } else if (currentColor.startsWith(FN_COLOR)) {
            resolvedValue = resolveColorFunc(currentColor, opt);
          } else {
            resolvedValue = resolveColorValue(currentColor, opt);
          }
          if (resolvedValue instanceof NullObject) {
            setCache(cacheKey, resolvedValue);
            return resolvedValue;
          }
          [cs, r4, g3, b3, alpha] = resolvedValue;
        } else if (format === VAL_COMP) {
          const res2 = RGB_TRANSPARENT;
          setCache(cacheKey, res2);
          return res2;
        }
      } else if (format === VAL_SPEC) {
        if (value2.startsWith(FN_MIX)) {
          const res2 = resolveColorMix(value2, opt);
          setCache(cacheKey, res2);
          return res2;
        } else if (value2.startsWith(FN_COLOR)) {
          const [scs, rr, gg, bb, aa] = resolveColorFunc(
            value2,
            opt
          );
          let res2 = "";
          if (aa === 1) {
            res2 = `color(${scs} ${rr} ${gg} ${bb})`;
          } else {
            res2 = `color(${scs} ${rr} ${gg} ${bb} / ${aa})`;
          }
          setCache(cacheKey, res2);
          return res2;
        } else {
          const rgb = resolveColorValue(value2, opt);
          if (isString5(rgb)) {
            setCache(cacheKey, rgb);
            return rgb;
          }
          const [scs, rr, gg, bb, aa] = rgb;
          let res2 = "";
          if (scs === "rgb") {
            if (aa === 1) {
              res2 = `${scs}(${rr}, ${gg}, ${bb})`;
            } else {
              res2 = `${scs}a(${rr}, ${gg}, ${bb}, ${aa})`;
            }
          } else if (aa === 1) {
            res2 = `${scs}(${rr} ${gg} ${bb})`;
          } else {
            res2 = `${scs}(${rr} ${gg} ${bb} / ${aa})`;
          }
          setCache(cacheKey, res2);
          return res2;
        }
      } else if (value2.startsWith(FN_MIX)) {
        if (/currentcolor/.test(value2)) {
          if (currentColor) {
            value2 = value2.replace(/currentcolor/g, currentColor);
          }
        }
        if (/transparent/.test(value2)) {
          value2 = value2.replace(/transparent/g, RGB_TRANSPARENT);
        }
        const resolvedValue = resolveColorMix(value2, opt);
        if (resolvedValue instanceof NullObject) {
          setCache(cacheKey, resolvedValue);
          return resolvedValue;
        }
        [cs, r4, g3, b3, alpha] = resolvedValue;
      } else if (value2.startsWith(FN_COLOR)) {
        const resolvedValue = resolveColorFunc(value2, opt);
        if (resolvedValue instanceof NullObject) {
          setCache(cacheKey, resolvedValue);
          return resolvedValue;
        }
        [cs, r4, g3, b3, alpha] = resolvedValue;
      } else if (value2) {
        const resolvedValue = resolveColorValue(value2, opt);
        if (resolvedValue instanceof NullObject) {
          setCache(cacheKey, resolvedValue);
          return resolvedValue;
        }
        [cs, r4, g3, b3, alpha] = resolvedValue;
      }
      let res = "";
      switch (format) {
        case "hex": {
          if (Number.isNaN(r4) || Number.isNaN(g3) || Number.isNaN(b3) || Number.isNaN(alpha) || alpha === 0) {
            setCache(cacheKey, null);
            return new NullObject();
          }
          res = convertRgbToHex([r4, g3, b3, 1]);
          break;
        }
        case "hexAlpha": {
          if (Number.isNaN(r4) || Number.isNaN(g3) || Number.isNaN(b3) || Number.isNaN(alpha)) {
            setCache(cacheKey, null);
            return new NullObject();
          }
          res = convertRgbToHex([r4, g3, b3, alpha]);
          break;
        }
        case VAL_COMP:
        default: {
          switch (cs) {
            case "rgb": {
              if (alpha === 1) {
                res = `${cs}(${r4}, ${g3}, ${b3})`;
              } else {
                res = `${cs}a(${r4}, ${g3}, ${b3}, ${alpha})`;
              }
              break;
            }
            case "lab":
            case "lch":
            case "oklab":
            case "oklch": {
              if (alpha === 1) {
                res = `${cs}(${r4} ${g3} ${b3})`;
              } else {
                res = `${cs}(${r4} ${g3} ${b3} / ${alpha})`;
              }
              break;
            }
            // color()
            default: {
              if (alpha === 1) {
                res = `color(${cs} ${r4} ${g3} ${b3})`;
              } else {
                res = `color(${cs} ${r4} ${g3} ${b3} / ${alpha})`;
              }
            }
          }
        }
      }
      setCache(cacheKey, res);
      return res;
    };
    var resolve4 = (value2, opt = {}) => {
      opt.nullable = false;
      const resolvedValue = resolveColor(value2, opt);
      if (resolvedValue instanceof NullObject) {
        return null;
      }
      return resolvedValue;
    };
    var {
      CloseParen: PAREN_CLOSE3,
      Comma: COMMA,
      Comment: COMMENT3,
      Delim: DELIM,
      EOF: EOF3,
      Function: FUNC2,
      Ident: IDENT3,
      OpenParen: PAREN_OPEN2,
      Whitespace: W_SPACE3
    } = import_css_tokenizer3.TokenType;
    var NAMESPACE5 = "util";
    var DEC3 = 10;
    var HEX3 = 16;
    var DEG2 = 360;
    var DEG_HALF2 = 180;
    var REG_COLOR2 = new RegExp(`^(?:${SYN_COLOR_TYPE})$`);
    var REG_FN_COLOR2 = /^(?:(?:ok)?l(?:ab|ch)|color(?:-mix)?|hsla?|hwb|rgba?|var)\(/;
    var REG_MIX2 = new RegExp(SYN_MIX);
    var splitValue = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { delimiter = " ", preserveComment = false } = opt;
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE5,
          name: "splitValue",
          value: value2
        },
        {
          delimiter,
          preserveComment
        }
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        return cachedResult.item;
      }
      let regDelimiter;
      if (delimiter === ",") {
        regDelimiter = /^,$/;
      } else if (delimiter === "/") {
        regDelimiter = /^\/$/;
      } else {
        regDelimiter = /^\s+$/;
      }
      const tokens = (0, import_css_tokenizer3.tokenize)({ css: value2 });
      let nest = 0;
      let str = "";
      const res = [];
      while (tokens.length) {
        const [type, value22] = tokens.shift();
        switch (type) {
          case COMMA: {
            if (regDelimiter.test(value22)) {
              if (nest === 0) {
                res.push(str.trim());
                str = "";
              } else {
                str += value22;
              }
            } else {
              str += value22;
            }
            break;
          }
          case DELIM: {
            if (regDelimiter.test(value22)) {
              if (nest === 0) {
                res.push(str.trim());
                str = "";
              } else {
                str += value22;
              }
            } else {
              str += value22;
            }
            break;
          }
          case COMMENT3: {
            if (preserveComment && (delimiter === "," || delimiter === "/")) {
              str += value22;
            }
            break;
          }
          case FUNC2:
          case PAREN_OPEN2: {
            str += value22;
            nest++;
            break;
          }
          case PAREN_CLOSE3: {
            str += value22;
            nest--;
            break;
          }
          case W_SPACE3: {
            if (regDelimiter.test(value22)) {
              if (nest === 0) {
                if (str) {
                  res.push(str.trim());
                  str = "";
                }
              } else {
                str += " ";
              }
            } else if (!str.endsWith(" ")) {
              str += " ";
            }
            break;
          }
          default: {
            if (type === EOF3) {
              res.push(str.trim());
              str = "";
            } else {
              str += value22;
            }
          }
        }
      }
      setCache(cacheKey, res);
      return res;
    };
    var extractDashedIdent = (value2) => {
      if (isString5(value2)) {
        value2 = value2.trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const cacheKey = createCacheKey({
        namespace: NAMESPACE5,
        name: "extractDashedIdent",
        value: value2
      });
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        return cachedResult.item;
      }
      const tokens = (0, import_css_tokenizer3.tokenize)({ css: value2 });
      const items = /* @__PURE__ */ new Set();
      while (tokens.length) {
        const [type, value22] = tokens.shift();
        if (type === IDENT3 && value22.startsWith("--")) {
          items.add(value22);
        }
      }
      const res = [...items];
      setCache(cacheKey, res);
      return res;
    };
    var isColor = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.toLowerCase().trim();
        if (value2 && isString5(value2)) {
          if (/^[a-z]+$/.test(value2)) {
            if (/^(?:currentcolor|transparent)$/.test(value2) || Object.prototype.hasOwnProperty.call(NAMED_COLORS, value2)) {
              return true;
            }
          } else if (REG_COLOR2.test(value2) || REG_MIX2.test(value2)) {
            return true;
          } else if (REG_FN_COLOR2.test(value2)) {
            opt.nullable = true;
            if (!opt.format) {
              opt.format = VAL_SPEC;
            }
            const resolvedValue = resolveColor(value2, opt);
            if (resolvedValue) {
              return true;
            }
          }
        }
      }
      return false;
    };
    var valueToJsonString = (value2, func = false) => {
      if (typeof value2 === "undefined") {
        return "";
      }
      const res = JSON.stringify(value2, (_key, val) => {
        let replacedValue;
        if (typeof val === "undefined") {
          replacedValue = null;
        } else if (typeof val === "function") {
          if (func) {
            replacedValue = val.toString().replace(/\s/g, "").substring(0, HEX3);
          } else {
            replacedValue = val.name;
          }
        } else if (val instanceof Map || val instanceof Set) {
          replacedValue = [...val];
        } else if (typeof val === "bigint") {
          replacedValue = val.toString();
        } else {
          replacedValue = val;
        }
        return replacedValue;
      });
      return res;
    };
    var roundToPrecision = (value2, bit = 0) => {
      if (!Number.isFinite(value2)) {
        throw new TypeError(`${value2} is not a finite number.`);
      }
      if (!Number.isFinite(bit)) {
        throw new TypeError(`${bit} is not a finite number.`);
      } else if (bit < 0 || bit > HEX3) {
        throw new RangeError(`${bit} is not between 0 and ${HEX3}.`);
      }
      if (bit === 0) {
        return Math.round(value2);
      }
      let val;
      if (bit === HEX3) {
        val = value2.toPrecision(6);
      } else if (bit < DEC3) {
        val = value2.toPrecision(4);
      } else {
        val = value2.toPrecision(5);
      }
      return parseFloat(val);
    };
    var interpolateHue = (hueA, hueB, arc = "shorter") => {
      if (!Number.isFinite(hueA)) {
        throw new TypeError(`${hueA} is not a finite number.`);
      }
      if (!Number.isFinite(hueB)) {
        throw new TypeError(`${hueB} is not a finite number.`);
      }
      switch (arc) {
        case "decreasing": {
          if (hueB > hueA) {
            hueA += DEG2;
          }
          break;
        }
        case "increasing": {
          if (hueB < hueA) {
            hueB += DEG2;
          }
          break;
        }
        case "longer": {
          if (hueB > hueA && hueB < hueA + DEG_HALF2) {
            hueA += DEG2;
          } else if (hueB > hueA + DEG_HALF2 * -1 && hueB <= hueA) {
            hueB += DEG2;
          }
          break;
        }
        case "shorter":
        default: {
          if (hueB > hueA + DEG_HALF2) {
            hueA += DEG2;
          } else if (hueB < hueA + DEG_HALF2 * -1) {
            hueB += DEG2;
          }
        }
      }
      return [hueA, hueB];
    };
    var MAX_CACHE = 4096;
    var CacheItem = class {
      /* private */
      #isNull;
      #item;
      /**
       * constructor
       */
      constructor(item, isNull2 = false) {
        this.#item = item;
        this.#isNull = !!isNull2;
      }
      get item() {
        return this.#item;
      }
      get isNull() {
        return this.#isNull;
      }
    };
    var NullObject = class extends CacheItem {
      /**
       * constructor
       */
      constructor() {
        super(Symbol("null"), true);
      }
    };
    var lruCache = new import_lru_cache.LRUCache({
      max: MAX_CACHE
    });
    var setCache = (key, value2) => {
      if (key) {
        if (value2 === null) {
          lruCache.set(key, new NullObject());
        } else if (value2 instanceof CacheItem) {
          lruCache.set(key, value2);
        } else {
          lruCache.set(key, new CacheItem(value2));
        }
      }
    };
    var getCache = (key) => {
      if (key && lruCache.has(key)) {
        const item = lruCache.get(key);
        if (item instanceof CacheItem) {
          return item;
        }
        lruCache.delete(key);
        return false;
      }
      return false;
    };
    var createCacheKey = (keyData, opt = {}) => {
      const { customProperty = {}, dimension = {} } = opt;
      let cacheKey = "";
      if (keyData && Object.keys(keyData).length && typeof customProperty.callback !== "function" && typeof dimension.callback !== "function") {
        keyData.opt = valueToJsonString(opt);
        cacheKey = valueToJsonString(keyData);
      }
      return cacheKey;
    };
    var {
      CloseParen: PAREN_CLOSE4,
      Comment: COMMENT4,
      Dimension: DIM2,
      EOF: EOF4,
      Function: FUNC3,
      OpenParen: PAREN_OPEN3,
      Whitespace: W_SPACE4
    } = import_css_tokenizer4.TokenType;
    var NAMESPACE6 = "css-calc";
    var TRIA2 = 3;
    var HEX4 = 16;
    var MAX_PCT3 = 100;
    var REG_FN_CALC3 = new RegExp(SYN_FN_CALC);
    var REG_FN_CALC_NUM = new RegExp(`^calc\\((${NUM})\\)$`);
    var REG_FN_MATH_START2 = new RegExp(SYN_FN_MATH_START);
    var REG_FN_VAR4 = new RegExp(SYN_FN_VAR);
    var REG_FN_VAR_START = new RegExp(SYN_FN_VAR_START);
    var REG_OPERATOR = /\s[*+/-]\s/;
    var REG_TYPE_DIM = new RegExp(`^(${NUM})(${ANGLE}|${LENGTH})$`);
    var REG_TYPE_DIM_PCT = new RegExp(`^(${NUM})(${ANGLE}|${LENGTH}|%)$`);
    var REG_TYPE_PCT = new RegExp(`^(${NUM})%$`);
    var Calculator = class {
      /* private */
      // number
      #hasNum;
      #numSum;
      #numMul;
      // percentage
      #hasPct;
      #pctSum;
      #pctMul;
      // dimension
      #hasDim;
      #dimSum;
      #dimSub;
      #dimMul;
      #dimDiv;
      // et cetra
      #hasEtc;
      #etcSum;
      #etcSub;
      #etcMul;
      #etcDiv;
      /**
       * constructor
       */
      constructor() {
        this.#hasNum = false;
        this.#numSum = [];
        this.#numMul = [];
        this.#hasPct = false;
        this.#pctSum = [];
        this.#pctMul = [];
        this.#hasDim = false;
        this.#dimSum = [];
        this.#dimSub = [];
        this.#dimMul = [];
        this.#dimDiv = [];
        this.#hasEtc = false;
        this.#etcSum = [];
        this.#etcSub = [];
        this.#etcMul = [];
        this.#etcDiv = [];
      }
      get hasNum() {
        return this.#hasNum;
      }
      set hasNum(value2) {
        this.#hasNum = !!value2;
      }
      get numSum() {
        return this.#numSum;
      }
      get numMul() {
        return this.#numMul;
      }
      get hasPct() {
        return this.#hasPct;
      }
      set hasPct(value2) {
        this.#hasPct = !!value2;
      }
      get pctSum() {
        return this.#pctSum;
      }
      get pctMul() {
        return this.#pctMul;
      }
      get hasDim() {
        return this.#hasDim;
      }
      set hasDim(value2) {
        this.#hasDim = !!value2;
      }
      get dimSum() {
        return this.#dimSum;
      }
      get dimSub() {
        return this.#dimSub;
      }
      get dimMul() {
        return this.#dimMul;
      }
      get dimDiv() {
        return this.#dimDiv;
      }
      get hasEtc() {
        return this.#hasEtc;
      }
      set hasEtc(value2) {
        this.#hasEtc = !!value2;
      }
      get etcSum() {
        return this.#etcSum;
      }
      get etcSub() {
        return this.#etcSub;
      }
      get etcMul() {
        return this.#etcMul;
      }
      get etcDiv() {
        return this.#etcDiv;
      }
      /**
       * clear values
       * @returns void
       */
      clear() {
        this.#hasNum = false;
        this.#numSum = [];
        this.#numMul = [];
        this.#hasPct = false;
        this.#pctSum = [];
        this.#pctMul = [];
        this.#hasDim = false;
        this.#dimSum = [];
        this.#dimSub = [];
        this.#dimMul = [];
        this.#dimDiv = [];
        this.#hasEtc = false;
        this.#etcSum = [];
        this.#etcSub = [];
        this.#etcMul = [];
        this.#etcDiv = [];
      }
      /**
       * sort values
       * @param values - values
       * @returns sorted values
       */
      sort(values = []) {
        const arr = [...values];
        if (arr.length > 1) {
          arr.sort((a5, b3) => {
            let res;
            if (REG_TYPE_DIM_PCT.test(a5) && REG_TYPE_DIM_PCT.test(b3)) {
              const [, valA, unitA] = a5.match(REG_TYPE_DIM_PCT);
              const [, valB, unitB] = b3.match(REG_TYPE_DIM_PCT);
              if (unitA === unitB) {
                if (Number(valA) === Number(valB)) {
                  res = 0;
                } else if (Number(valA) > Number(valB)) {
                  res = 1;
                } else {
                  res = -1;
                }
              } else if (unitA > unitB) {
                res = 1;
              } else {
                res = -1;
              }
            } else {
              if (a5 === b3) {
                res = 0;
              } else if (a5 > b3) {
                res = 1;
              } else {
                res = -1;
              }
            }
            return res;
          });
        }
        return arr;
      }
      /**
       * multiply values
       * @returns resolved value
       */
      multiply() {
        const value2 = [];
        let num;
        if (this.#hasNum) {
          num = 1;
          for (const i5 of this.#numMul) {
            num *= i5;
            if (num === 0 || !Number.isFinite(num) || Number.isNaN(num)) {
              break;
            }
          }
          if (!this.#hasPct && !this.#hasDim && !this.hasEtc) {
            if (Number.isFinite(num)) {
              num = roundToPrecision(num, HEX4);
            }
            value2.push(num);
          }
        }
        if (this.#hasPct) {
          if (typeof num !== "number") {
            num = 1;
          }
          for (const i5 of this.#pctMul) {
            num *= i5;
            if (num === 0 || !Number.isFinite(num) || Number.isNaN(num)) {
              break;
            }
          }
          if (Number.isFinite(num)) {
            num = `${roundToPrecision(num, HEX4)}%`;
          }
          if (!this.#hasDim && !this.hasEtc) {
            value2.push(num);
          }
        }
        if (this.#hasDim) {
          let dim = "";
          let mul = "";
          let div = "";
          if (this.#dimMul.length) {
            if (this.#dimMul.length === 1) {
              [mul] = this.#dimMul;
            } else {
              mul = `${this.sort(this.#dimMul).join(" * ")}`;
            }
          }
          if (this.#dimDiv.length) {
            if (this.#dimDiv.length === 1) {
              [div] = this.#dimDiv;
            } else {
              div = `${this.sort(this.#dimDiv).join(" * ")}`;
            }
          }
          if (Number.isFinite(num)) {
            if (mul) {
              if (div) {
                if (div.includes("*")) {
                  dim = (0, import_css_calc4.calc)(`calc(${num} * ${mul} / (${div}))`, {
                    toCanonicalUnits: true
                  });
                } else {
                  dim = (0, import_css_calc4.calc)(`calc(${num} * ${mul} / ${div})`, {
                    toCanonicalUnits: true
                  });
                }
              } else {
                dim = (0, import_css_calc4.calc)(`calc(${num} * ${mul})`, {
                  toCanonicalUnits: true
                });
              }
            } else if (div.includes("*")) {
              dim = (0, import_css_calc4.calc)(`calc(${num} / (${div}))`, {
                toCanonicalUnits: true
              });
            } else {
              dim = (0, import_css_calc4.calc)(`calc(${num} / ${div})`, {
                toCanonicalUnits: true
              });
            }
            value2.push(dim.replace(/^calc/, ""));
          } else {
            if (!value2.length && num !== void 0) {
              value2.push(num);
            }
            if (mul) {
              if (div) {
                if (div.includes("*")) {
                  dim = (0, import_css_calc4.calc)(`calc(${mul} / (${div}))`, {
                    toCanonicalUnits: true
                  });
                } else {
                  dim = (0, import_css_calc4.calc)(`calc(${mul} / ${div})`, {
                    toCanonicalUnits: true
                  });
                }
              } else {
                dim = (0, import_css_calc4.calc)(`calc(${mul})`, {
                  toCanonicalUnits: true
                });
              }
              if (value2.length) {
                value2.push("*", dim.replace(/^calc/, ""));
              } else {
                value2.push(dim.replace(/^calc/, ""));
              }
            } else {
              dim = (0, import_css_calc4.calc)(`calc(${div})`, {
                toCanonicalUnits: true
              });
              if (value2.length) {
                value2.push("/", dim.replace(/^calc/, ""));
              } else {
                value2.push("1", "/", dim.replace(/^calc/, ""));
              }
            }
          }
        }
        if (this.#hasEtc) {
          if (this.#etcMul.length) {
            if (!value2.length && num !== void 0) {
              value2.push(num);
            }
            const mul = this.sort(this.#etcMul).join(" * ");
            if (value2.length) {
              value2.push(`* ${mul}`);
            } else {
              value2.push(`${mul}`);
            }
          }
          if (this.#etcDiv.length) {
            const div = this.sort(this.#etcDiv).join(" * ");
            if (div.includes("*")) {
              if (value2.length) {
                value2.push(`/ (${div})`);
              } else {
                value2.push(`1 / (${div})`);
              }
            } else if (value2.length) {
              value2.push(`/ ${div}`);
            } else {
              value2.push(`1 / ${div}`);
            }
          }
        }
        if (value2.length) {
          return value2.join(" ");
        }
        return "";
      }
      /**
       * sum values
       * @returns resolved value
       */
      sum() {
        const value2 = [];
        if (this.#hasNum) {
          let num = 0;
          for (const i5 of this.#numSum) {
            num += i5;
            if (!Number.isFinite(num) || Number.isNaN(num)) {
              break;
            }
          }
          value2.push(num);
        }
        if (this.#hasPct) {
          let num = 0;
          for (const i5 of this.#pctSum) {
            num += i5;
            if (!Number.isFinite(num)) {
              break;
            }
          }
          if (Number.isFinite(num)) {
            num = `${num}%`;
          }
          if (value2.length) {
            value2.push(`+ ${num}`);
          } else {
            value2.push(num);
          }
        }
        if (this.#hasDim) {
          let dim, sum, sub;
          if (this.#dimSum.length) {
            sum = this.sort(this.#dimSum).join(" + ");
          }
          if (this.#dimSub.length) {
            sub = this.sort(this.#dimSub).join(" + ");
          }
          if (sum) {
            if (sub) {
              if (sub.includes("-")) {
                dim = (0, import_css_calc4.calc)(`calc(${sum} - (${sub}))`, {
                  toCanonicalUnits: true
                });
              } else {
                dim = (0, import_css_calc4.calc)(`calc(${sum} - ${sub})`, {
                  toCanonicalUnits: true
                });
              }
            } else {
              dim = (0, import_css_calc4.calc)(`calc(${sum})`, {
                toCanonicalUnits: true
              });
            }
          } else {
            dim = (0, import_css_calc4.calc)(`calc(-1 * (${sub}))`, {
              toCanonicalUnits: true
            });
          }
          if (value2.length) {
            value2.push("+", dim.replace(/^calc/, ""));
          } else {
            value2.push(dim.replace(/^calc/, ""));
          }
        }
        if (this.#hasEtc) {
          if (this.#etcSum.length) {
            const sum = this.sort(this.#etcSum).map((item) => {
              let res;
              if (REG_OPERATOR.test(item) && !item.startsWith("(") && !item.endsWith(")")) {
                res = `(${item})`;
              } else {
                res = item;
              }
              return res;
            }).join(" + ");
            if (value2.length) {
              if (this.#etcSum.length > 1) {
                value2.push(`+ (${sum})`);
              } else {
                value2.push(`+ ${sum}`);
              }
            } else {
              value2.push(`${sum}`);
            }
          }
          if (this.#etcSub.length) {
            const sub = this.sort(this.#etcSub).map((item) => {
              let res;
              if (REG_OPERATOR.test(item) && !item.startsWith("(") && !item.endsWith(")")) {
                res = `(${item})`;
              } else {
                res = item;
              }
              return res;
            }).join(" + ");
            if (value2.length) {
              if (this.#etcSub.length > 1) {
                value2.push(`- (${sub})`);
              } else {
                value2.push(`- ${sub}`);
              }
            } else if (this.#etcSub.length > 1) {
              value2.push(`-1 * (${sub})`);
            } else {
              value2.push(`-1 * ${sub}`);
            }
          }
        }
        if (value2.length) {
          return value2.join(" ");
        }
        return "";
      }
    };
    var sortCalcValues = (values = [], finalize = false) => {
      if (values.length < TRIA2) {
        throw new Error(`Unexpected array length ${values.length}.`);
      }
      const start2 = values.shift();
      if (!isString5(start2) || !start2.endsWith("(")) {
        throw new Error(`Unexpected token ${start2}.`);
      }
      const end2 = values.pop();
      if (end2 !== ")") {
        throw new Error(`Unexpected token ${end2}.`);
      }
      if (values.length === 1) {
        const [value2] = values;
        if (!isStringOrNumber(value2)) {
          throw new Error(`Unexpected token ${value2}.`);
        }
        return `${start2}${value2}${end2}`;
      }
      const sortedValues = [];
      const cal = new Calculator();
      let operator = "";
      const l4 = values.length;
      for (let i5 = 0; i5 < l4; i5++) {
        const value2 = values[i5];
        if (!isStringOrNumber(value2)) {
          throw new Error(`Unexpected token ${value2}.`);
        }
        if (value2 === "*" || value2 === "/") {
          operator = value2;
        } else if (value2 === "+" || value2 === "-") {
          const sortedValue = cal.multiply();
          if (sortedValue) {
            sortedValues.push(sortedValue, value2);
          }
          cal.clear();
          operator = "";
        } else {
          const numValue = Number(value2);
          const strValue = `${value2}`;
          switch (operator) {
            case "/": {
              if (Number.isFinite(numValue)) {
                cal.hasNum = true;
                cal.numMul.push(1 / numValue);
              } else if (REG_TYPE_PCT.test(strValue)) {
                const [, val] = strValue.match(REG_TYPE_PCT);
                cal.hasPct = true;
                cal.pctMul.push(MAX_PCT3 * MAX_PCT3 / Number(val));
              } else if (REG_TYPE_DIM.test(strValue)) {
                cal.hasDim = true;
                cal.dimDiv.push(strValue);
              } else {
                cal.hasEtc = true;
                cal.etcDiv.push(strValue);
              }
              break;
            }
            case "*":
            default: {
              if (Number.isFinite(numValue)) {
                cal.hasNum = true;
                cal.numMul.push(numValue);
              } else if (REG_TYPE_PCT.test(strValue)) {
                const [, val] = strValue.match(REG_TYPE_PCT);
                cal.hasPct = true;
                cal.pctMul.push(Number(val));
              } else if (REG_TYPE_DIM.test(strValue)) {
                cal.hasDim = true;
                cal.dimMul.push(strValue);
              } else {
                cal.hasEtc = true;
                cal.etcMul.push(strValue);
              }
            }
          }
        }
        if (i5 === l4 - 1) {
          const sortedValue = cal.multiply();
          if (sortedValue) {
            sortedValues.push(sortedValue);
          }
          cal.clear();
          operator = "";
        }
      }
      let resolvedValue = "";
      if (finalize && (sortedValues.includes("+") || sortedValues.includes("-"))) {
        const finalizedValues = [];
        cal.clear();
        operator = "";
        const l22 = sortedValues.length;
        for (let i5 = 0; i5 < l22; i5++) {
          const value2 = sortedValues[i5];
          if (isStringOrNumber(value2)) {
            if (value2 === "+" || value2 === "-") {
              operator = value2;
            } else {
              const numValue = Number(value2);
              const strValue = `${value2}`;
              switch (operator) {
                case "-": {
                  if (Number.isFinite(numValue)) {
                    cal.hasNum = true;
                    cal.numSum.push(-1 * numValue);
                  } else if (REG_TYPE_PCT.test(strValue)) {
                    const [, val] = strValue.match(REG_TYPE_PCT);
                    cal.hasPct = true;
                    cal.pctSum.push(-1 * Number(val));
                  } else if (REG_TYPE_DIM.test(strValue)) {
                    cal.hasDim = true;
                    cal.dimSub.push(strValue);
                  } else {
                    cal.hasEtc = true;
                    cal.etcSub.push(strValue);
                  }
                  break;
                }
                case "+":
                default: {
                  if (Number.isFinite(numValue)) {
                    cal.hasNum = true;
                    cal.numSum.push(numValue);
                  } else if (REG_TYPE_PCT.test(strValue)) {
                    const [, val] = strValue.match(REG_TYPE_PCT);
                    cal.hasPct = true;
                    cal.pctSum.push(Number(val));
                  } else if (REG_TYPE_DIM.test(strValue)) {
                    cal.hasDim = true;
                    cal.dimSum.push(strValue);
                  } else {
                    cal.hasEtc = true;
                    cal.etcSum.push(strValue);
                  }
                }
              }
            }
          }
          if (i5 === l22 - 1) {
            const sortedValue = cal.sum();
            if (sortedValue) {
              finalizedValues.push(sortedValue);
            }
            cal.clear();
            operator = "";
          }
        }
        resolvedValue = finalizedValues.join(" ").replace(/\+\s-/g, "- ");
      } else {
        resolvedValue = sortedValues.join(" ").replace(/\+\s-/g, "- ");
      }
      if (resolvedValue.startsWith("(") && resolvedValue.endsWith(")") && resolvedValue.lastIndexOf("(") === 0 && resolvedValue.indexOf(")") === resolvedValue.length - 1) {
        resolvedValue = resolvedValue.replace(/^\(/, "").replace(/\)$/, "");
      }
      return `${start2}${resolvedValue}${end2}`;
    };
    var serializeCalc = (value2, opt = {}) => {
      const { format = "" } = opt;
      if (isString5(value2)) {
        if (!REG_FN_VAR_START.test(value2) || format !== VAL_SPEC) {
          return value2;
        }
        value2 = value2.toLowerCase().trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE6,
          name: "serializeCalc",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        return cachedResult.item;
      }
      const items = (0, import_css_tokenizer4.tokenize)({ css: value2 }).map((token) => {
        const [type, value22] = token;
        let res = "";
        if (type !== W_SPACE4 && type !== COMMENT4) {
          res = value22;
        }
        return res;
      }).filter((v3) => v3);
      let startIndex = items.findLastIndex((item) => /\($/.test(item));
      while (startIndex) {
        const endIndex = items.findIndex((item, index2) => {
          return item === ")" && index2 > startIndex;
        });
        const slicedValues = items.slice(startIndex, endIndex + 1);
        let serializedValue = sortCalcValues(slicedValues);
        if (REG_FN_VAR_START.test(serializedValue)) {
          serializedValue = (0, import_css_calc4.calc)(serializedValue, {
            toCanonicalUnits: true
          });
        }
        items.splice(startIndex, endIndex - startIndex + 1, serializedValue);
        startIndex = items.findLastIndex((item) => /\($/.test(item));
      }
      const serializedCalc = sortCalcValues(items, true);
      setCache(cacheKey, serializedCalc);
      return serializedCalc;
    };
    var resolveDimension = (token, opt = {}) => {
      if (!Array.isArray(token)) {
        throw new TypeError(`${token} is not an array.`);
      }
      const [, , , , detail = {}] = token;
      const { unit, value: value2 } = detail;
      const { dimension = {} } = opt;
      if (unit === "px") {
        return `${value2}${unit}`;
      }
      const relativeValue = Number(value2);
      if (unit && Number.isFinite(relativeValue)) {
        let pixelValue;
        if (Object.hasOwnProperty.call(dimension, unit)) {
          pixelValue = dimension[unit];
        } else if (typeof dimension.callback === "function") {
          pixelValue = dimension.callback(unit);
        }
        pixelValue = Number(pixelValue);
        if (Number.isFinite(pixelValue)) {
          return `${relativeValue * pixelValue}px`;
        }
      }
      return new NullObject();
    };
    var parseTokens22 = (tokens, opt = {}) => {
      if (!Array.isArray(tokens)) {
        throw new TypeError(`${tokens} is not an array.`);
      }
      const { format = "" } = opt;
      const mathFunc = /* @__PURE__ */ new Set();
      let nest = 0;
      const res = [];
      while (tokens.length) {
        const token = tokens.shift();
        if (!Array.isArray(token)) {
          throw new TypeError(`${token} is not an array.`);
        }
        const [type = "", value2 = ""] = token;
        switch (type) {
          case DIM2: {
            if (format === VAL_SPEC && !mathFunc.has(nest)) {
              res.push(value2);
            } else {
              const resolvedValue = resolveDimension(token, opt);
              if (isString5(resolvedValue)) {
                res.push(resolvedValue);
              } else {
                res.push(value2);
              }
            }
            break;
          }
          case FUNC3:
          case PAREN_OPEN3: {
            res.push(value2);
            nest++;
            if (REG_FN_MATH_START2.test(value2)) {
              mathFunc.add(nest);
            }
            break;
          }
          case PAREN_CLOSE4: {
            if (res.length) {
              const lastValue = res[res.length - 1];
              if (lastValue === " ") {
                res.splice(-1, 1, value2);
              } else {
                res.push(value2);
              }
            } else {
              res.push(value2);
            }
            if (mathFunc.has(nest)) {
              mathFunc.delete(nest);
            }
            nest--;
            break;
          }
          case W_SPACE4: {
            if (res.length) {
              const lastValue = res[res.length - 1];
              if (isString5(lastValue) && !lastValue.endsWith("(") && lastValue !== " ") {
                res.push(value2);
              }
            }
            break;
          }
          default: {
            if (type !== COMMENT4 && type !== EOF4) {
              res.push(value2);
            }
          }
        }
      }
      return res;
    };
    var cssCalc = (value2, opt = {}) => {
      const { format = "" } = opt;
      if (isString5(value2)) {
        if (REG_FN_VAR4.test(value2)) {
          if (format === VAL_SPEC) {
            return value2;
          } else {
            const resolvedValue2 = resolveVar(value2, opt);
            if (isString5(resolvedValue2)) {
              return resolvedValue2;
            } else {
              return "";
            }
          }
        } else if (!REG_FN_CALC3.test(value2)) {
          return value2;
        }
        value2 = value2.toLowerCase().trim();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE6,
          name: "cssCalc",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        return cachedResult.item;
      }
      const tokens = (0, import_css_tokenizer4.tokenize)({ css: value2 });
      const values = parseTokens22(tokens, opt);
      let resolvedValue = (0, import_css_calc4.calc)(values.join(""), {
        toCanonicalUnits: true
      });
      if (REG_FN_VAR_START.test(value2)) {
        if (REG_TYPE_DIM_PCT.test(resolvedValue)) {
          const [, val, unit] = resolvedValue.match(
            REG_TYPE_DIM_PCT
          );
          resolvedValue = `${roundToPrecision(Number(val), HEX4)}${unit}`;
        }
        if (resolvedValue && !REG_FN_VAR_START.test(resolvedValue) && format === VAL_SPEC) {
          resolvedValue = `calc(${resolvedValue})`;
        }
      }
      if (format === VAL_SPEC) {
        if (/\s[-+*/]\s/.test(resolvedValue) && !resolvedValue.includes("NaN")) {
          resolvedValue = serializeCalc(resolvedValue, opt);
        } else if (REG_FN_CALC_NUM.test(resolvedValue)) {
          const [, val] = resolvedValue.match(REG_FN_CALC_NUM);
          resolvedValue = `calc(${roundToPrecision(Number(val), HEX4)})`;
        }
      }
      setCache(cacheKey, resolvedValue);
      return resolvedValue;
    };
    var NAMESPACE7 = "css-gradient";
    var DIM_ANGLE = `${NUM}(?:${ANGLE})`;
    var DIM_ANGLE_PCT = `${DIM_ANGLE}|${PCT}`;
    var DIM_LEN = `${NUM}(?:${LENGTH})|0`;
    var DIM_LEN_PCT = `${DIM_LEN}|${PCT}`;
    var DIM_LEN_PCT_POSI = `${NUM_POSITIVE}(?:${LENGTH}|%)|0`;
    var DIM_LEN_POSI = `${NUM_POSITIVE}(?:${LENGTH})|0`;
    var CTR = "center";
    var L_R = "left|right";
    var T_B = "top|bottom";
    var S_E = "start|end";
    var AXIS_X = `${L_R}|x-(?:${S_E})`;
    var AXIS_Y = `${T_B}|y-(?:${S_E})`;
    var BLOCK = `block-(?:${S_E})`;
    var INLINE = `inline-(?:${S_E})`;
    var POS_1 = `${CTR}|${AXIS_X}|${AXIS_Y}|${BLOCK}|${INLINE}|${DIM_LEN_PCT}`;
    var POS_2 = [
      `(?:${CTR}|${AXIS_X})\\s+(?:${CTR}|${AXIS_Y})`,
      `(?:${CTR}|${AXIS_Y})\\s+(?:${CTR}|${AXIS_X})`,
      `(?:${CTR}|${AXIS_X}|${DIM_LEN_PCT})\\s+(?:${CTR}|${AXIS_Y}|${DIM_LEN_PCT})`,
      `(?:${CTR}|${BLOCK})\\s+(?:${CTR}|${INLINE})`,
      `(?:${CTR}|${INLINE})\\s+(?:${CTR}|${BLOCK})`,
      `(?:${CTR}|${S_E})\\s+(?:${CTR}|${S_E})`
    ].join("|");
    var POS_4 = [
      `(?:${AXIS_X})\\s+(?:${DIM_LEN_PCT})\\s+(?:${AXIS_Y})\\s+(?:${DIM_LEN_PCT})`,
      `(?:${AXIS_Y})\\s+(?:${DIM_LEN_PCT})\\s+(?:${AXIS_X})\\s+(?:${DIM_LEN_PCT})`,
      `(?:${BLOCK})\\s+(?:${DIM_LEN_PCT})\\s+(?:${INLINE})\\s+(?:${DIM_LEN_PCT})`,
      `(?:${INLINE})\\s+(?:${DIM_LEN_PCT})\\s+(?:${BLOCK})\\s+(?:${DIM_LEN_PCT})`,
      `(?:${S_E})\\s+(?:${DIM_LEN_PCT})\\s+(?:${S_E})\\s+(?:${DIM_LEN_PCT})`
    ].join("|");
    var RAD_EXTENT = "(?:clos|farth)est-(?:corner|side)";
    var RAD_SIZE = [
      `${RAD_EXTENT}(?:\\s+${RAD_EXTENT})?`,
      `${DIM_LEN_POSI}`,
      `(?:${DIM_LEN_PCT_POSI})\\s+(?:${DIM_LEN_PCT_POSI})`
    ].join("|");
    var RAD_SHAPE = "circle|ellipse";
    var FROM_ANGLE = `from\\s+${DIM_ANGLE}`;
    var AT_POSITION = `at\\s+(?:${POS_1}|${POS_2}|${POS_4})`;
    var TO_SIDE_CORNER = `to\\s+(?:(?:${L_R})(?:\\s(?:${T_B}))?|(?:${T_B})(?:\\s(?:${L_R}))?)`;
    var IN_COLOR_SPACE = `in\\s+(?:${CS_RECT}|${CS_HUE})`;
    var REG_GRAD = /^(?:repeating-)?(?:conic|linear|radial)-gradient\(/;
    var REG_GRAD_CAPT = /^((?:repeating-)?(?:conic|linear|radial)-gradient)\(/;
    var getGradientType = (value2) => {
      if (isString5(value2)) {
        value2 = value2.trim();
        if (REG_GRAD.test(value2)) {
          const [, type] = value2.match(REG_GRAD_CAPT);
          return type;
        }
      }
      return "";
    };
    var validateGradientLine = (value2, type) => {
      if (isString5(value2) && isString5(type)) {
        value2 = value2.trim();
        type = type.trim();
        let lineSyntax = "";
        if (/^(?:repeating-)?linear-gradient$/.test(type)) {
          lineSyntax = [
            `(?:${DIM_ANGLE}|${TO_SIDE_CORNER})(?:\\s+${IN_COLOR_SPACE})?`,
            `${IN_COLOR_SPACE}(?:\\s+(?:${DIM_ANGLE}|${TO_SIDE_CORNER}))?`
          ].join("|");
        } else if (/^(?:repeating-)?radial-gradient$/.test(type)) {
          lineSyntax = [
            `(?:${RAD_SHAPE})(?:\\s+(?:${RAD_SIZE}))?(?:\\s+${AT_POSITION})?(?:\\s+${IN_COLOR_SPACE})?`,
            `(?:${RAD_SIZE})(?:\\s+(?:${RAD_SHAPE}))?(?:\\s+${AT_POSITION})?(?:\\s+${IN_COLOR_SPACE})?`,
            `${AT_POSITION}(?:\\s+${IN_COLOR_SPACE})?`,
            `${IN_COLOR_SPACE}(?:\\s+${RAD_SHAPE})(?:\\s+(?:${RAD_SIZE}))?(?:\\s+${AT_POSITION})?`,
            `${IN_COLOR_SPACE}(?:\\s+${RAD_SIZE})(?:\\s+(?:${RAD_SHAPE}))?(?:\\s+${AT_POSITION})?`,
            `${IN_COLOR_SPACE}(?:\\s+${AT_POSITION})?`
          ].join("|");
        } else if (/^(?:repeating-)?conic-gradient$/.test(type)) {
          lineSyntax = [
            `${FROM_ANGLE}(?:\\s+${AT_POSITION})?(?:\\s+${IN_COLOR_SPACE})?`,
            `${AT_POSITION}(?:\\s+${IN_COLOR_SPACE})?`,
            `${IN_COLOR_SPACE}(?:\\s+${FROM_ANGLE})?(?:\\s+${AT_POSITION})?`
          ].join("|");
        }
        if (lineSyntax) {
          const reg = new RegExp(`^(?:${lineSyntax})$`);
          return reg.test(value2);
        }
      }
      return false;
    };
    var validateColorStopList = (list, type, opt = {}) => {
      if (Array.isArray(list) && list.length > 1) {
        const dimension = /^(?:repeating-)?conic-gradient$/.test(type) ? DIM_ANGLE_PCT : DIM_LEN_PCT;
        const regColorHint = new RegExp(`^(?:${dimension})$`);
        const regDimension = new RegExp(`(?:\\s+(?:${dimension})){1,2}$`);
        const arr = [];
        for (const item of list) {
          if (isString5(item)) {
            if (regColorHint.test(item)) {
              arr.push("hint");
            } else {
              const color = item.replace(regDimension, "");
              if (isColor(color, opt)) {
                arr.push("color");
              } else {
                return false;
              }
            }
          }
        }
        const value2 = arr.join(",");
        return /^color(?:,(?:hint,)?color)+$/.test(value2);
      }
      return false;
    };
    var parseGradient = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
        const cacheKey = createCacheKey(
          {
            namespace: NAMESPACE7,
            name: "parseGradient",
            value: value2
          },
          opt
        );
        const cachedResult = getCache(cacheKey);
        if (cachedResult instanceof CacheItem) {
          if (cachedResult.isNull) {
            return null;
          }
          return cachedResult.item;
        }
        const type = getGradientType(value2);
        const gradValue = value2.replace(REG_GRAD, "").replace(/\)$/, "");
        if (type && gradValue) {
          const [lineOrColorStop = "", ...colorStops] = splitValue(gradValue, {
            delimiter: ","
          });
          const dimension = /^(?:repeating-)?conic-gradient$/.test(type) ? DIM_ANGLE_PCT : DIM_LEN_PCT;
          const regDimension = new RegExp(`(?:\\s+(?:${dimension})){1,2}$`);
          let isColorStop = false;
          if (regDimension.test(lineOrColorStop)) {
            const colorStop = lineOrColorStop.replace(regDimension, "");
            if (isColor(colorStop, opt)) {
              isColorStop = true;
            }
          } else if (isColor(lineOrColorStop, opt)) {
            isColorStop = true;
          }
          if (isColorStop) {
            colorStops.unshift(lineOrColorStop);
            const valid = validateColorStopList(colorStops, type, opt);
            if (valid) {
              const res = {
                value: value2,
                type,
                colorStopList: colorStops
              };
              setCache(cacheKey, res);
              return res;
            }
          } else if (colorStops.length > 1) {
            const gradientLine = lineOrColorStop;
            const valid = validateGradientLine(gradientLine, type) && validateColorStopList(colorStops, type, opt);
            if (valid) {
              const res = {
                value: value2,
                type,
                gradientLine,
                colorStopList: colorStops
              };
              setCache(cacheKey, res);
              return res;
            }
          }
        }
        setCache(cacheKey, null);
        return null;
      }
      return null;
    };
    var isGradient = (value2, opt = {}) => {
      const gradient = parseGradient(value2, opt);
      return gradient !== null;
    };
    var NAMESPACE8 = "convert";
    var REG_FN_CALC4 = new RegExp(SYN_FN_CALC);
    var REG_FN_REL3 = new RegExp(SYN_FN_REL);
    var REG_FN_VAR5 = new RegExp(SYN_FN_VAR);
    var preProcess = (value2, opt = {}) => {
      if (isString5(value2)) {
        value2 = value2.trim();
        if (!value2) {
          return new NullObject();
        }
      } else {
        return new NullObject();
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE8,
          name: "preProcess",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        if (cachedResult.isNull) {
          return cachedResult;
        }
        return cachedResult.item;
      }
      if (REG_FN_VAR5.test(value2)) {
        const resolvedValue = resolveVar(value2, opt);
        if (isString5(resolvedValue)) {
          value2 = resolvedValue;
        } else {
          setCache(cacheKey, null);
          return new NullObject();
        }
      }
      if (REG_FN_REL3.test(value2)) {
        const resolvedValue = resolveRelativeColor(value2, opt);
        if (isString5(resolvedValue)) {
          value2 = resolvedValue;
        } else {
          setCache(cacheKey, null);
          return new NullObject();
        }
      } else if (REG_FN_CALC4.test(value2)) {
        value2 = cssCalc(value2, opt);
      }
      if (value2.startsWith("color-mix")) {
        const clonedOpt = structuredClone(opt);
        clonedOpt.format = VAL_COMP;
        clonedOpt.nullable = true;
        const resolvedValue = resolveColor(value2, clonedOpt);
        setCache(cacheKey, resolvedValue);
        return resolvedValue;
      }
      setCache(cacheKey, value2);
      return value2;
    };
    var numberToHex = (value2) => {
      const hex = numberToHexString(value2);
      return hex;
    };
    var colorToHex = (value2, opt = {}) => {
      if (isString5(value2)) {
        const resolvedValue = preProcess(value2, opt);
        if (resolvedValue instanceof NullObject) {
          return null;
        }
        value2 = resolvedValue.toLowerCase();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const { alpha = false } = opt;
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE8,
          name: "colorToHex",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        if (cachedResult.isNull) {
          return null;
        }
        return cachedResult.item;
      }
      let hex;
      opt.nullable = true;
      if (alpha) {
        opt.format = "hexAlpha";
        hex = resolveColor(value2, opt);
      } else {
        opt.format = "hex";
        hex = resolveColor(value2, opt);
      }
      if (isString5(hex)) {
        setCache(cacheKey, hex);
        return hex;
      }
      setCache(cacheKey, null);
      return null;
    };
    var colorToHsl = (value2, opt = {}) => {
      if (isString5(value2)) {
        const resolvedValue = preProcess(value2, opt);
        if (resolvedValue instanceof NullObject) {
          return [0, 0, 0, 0];
        }
        value2 = resolvedValue.toLowerCase();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE8,
          name: "colorToHsl",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        return cachedResult.item;
      }
      opt.format = "hsl";
      const hsl = convertColorToHsl(value2, opt);
      setCache(cacheKey, hsl);
      return hsl;
    };
    var colorToHwb = (value2, opt = {}) => {
      if (isString5(value2)) {
        const resolvedValue = preProcess(value2, opt);
        if (resolvedValue instanceof NullObject) {
          return [0, 0, 0, 0];
        }
        value2 = resolvedValue.toLowerCase();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE8,
          name: "colorToHwb",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        return cachedResult.item;
      }
      opt.format = "hwb";
      const hwb = convertColorToHwb(value2, opt);
      setCache(cacheKey, hwb);
      return hwb;
    };
    var colorToLab = (value2, opt = {}) => {
      if (isString5(value2)) {
        const resolvedValue = preProcess(value2, opt);
        if (resolvedValue instanceof NullObject) {
          return [0, 0, 0, 0];
        }
        value2 = resolvedValue.toLowerCase();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE8,
          name: "colorToLab",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        return cachedResult.item;
      }
      const lab = convertColorToLab(value2, opt);
      setCache(cacheKey, lab);
      return lab;
    };
    var colorToLch = (value2, opt = {}) => {
      if (isString5(value2)) {
        const resolvedValue = preProcess(value2, opt);
        if (resolvedValue instanceof NullObject) {
          return [0, 0, 0, 0];
        }
        value2 = resolvedValue.toLowerCase();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE8,
          name: "colorToLch",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        return cachedResult.item;
      }
      const lch = convertColorToLch(value2, opt);
      setCache(cacheKey, lch);
      return lch;
    };
    var colorToOklab = (value2, opt = {}) => {
      if (isString5(value2)) {
        const resolvedValue = preProcess(value2, opt);
        if (resolvedValue instanceof NullObject) {
          return [0, 0, 0, 0];
        }
        value2 = resolvedValue.toLowerCase();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE8,
          name: "colorToOklab",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        return cachedResult.item;
      }
      const lab = convertColorToOklab(value2, opt);
      setCache(cacheKey, lab);
      return lab;
    };
    var colorToOklch = (value2, opt = {}) => {
      if (isString5(value2)) {
        const resolvedValue = preProcess(value2, opt);
        if (resolvedValue instanceof NullObject) {
          return [0, 0, 0, 0];
        }
        value2 = resolvedValue.toLowerCase();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE8,
          name: "colorToOklch",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        return cachedResult.item;
      }
      const lch = convertColorToOklch(value2, opt);
      setCache(cacheKey, lch);
      return lch;
    };
    var colorToRgb = (value2, opt = {}) => {
      if (isString5(value2)) {
        const resolvedValue = preProcess(value2, opt);
        if (resolvedValue instanceof NullObject) {
          return [0, 0, 0, 0];
        }
        value2 = resolvedValue.toLowerCase();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE8,
          name: "colorToRgb",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        return cachedResult.item;
      }
      const rgb = convertColorToRgb(value2, opt);
      setCache(cacheKey, rgb);
      return rgb;
    };
    var colorToXyz = (value2, opt = {}) => {
      if (isString5(value2)) {
        const resolvedValue = preProcess(value2, opt);
        if (resolvedValue instanceof NullObject) {
          return [0, 0, 0, 0];
        }
        value2 = resolvedValue.toLowerCase();
      } else {
        throw new TypeError(`${value2} is not a string.`);
      }
      const cacheKey = createCacheKey(
        {
          namespace: NAMESPACE8,
          name: "colorToXyz",
          value: value2
        },
        opt
      );
      const cachedResult = getCache(cacheKey);
      if (cachedResult instanceof CacheItem) {
        return cachedResult.item;
      }
      let xyz;
      if (value2.startsWith("color(")) {
        [, ...xyz] = parseColorFunc(value2, opt);
      } else {
        [, ...xyz] = parseColorValue(value2, opt);
      }
      setCache(cacheKey, xyz);
      return xyz;
    };
    var colorToXyzD50 = (value2, opt = {}) => {
      opt.d50 = true;
      return colorToXyz(value2, opt);
    };
    var convert = {
      colorToHex,
      colorToHsl,
      colorToHwb,
      colorToLab,
      colorToLch,
      colorToOklab,
      colorToOklch,
      colorToRgb,
      colorToXyz,
      colorToXyzD50,
      numberToHex
    };
    var utils2 = {
      cssCalc,
      cssVar,
      extractDashedIdent,
      isColor,
      isGradient,
      splitValue
    };
    var isColor2 = utils2.isColor;
    var cssCalc2 = utils2.cssCalc;
  }
});

// ../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/utils/strings.js
var require_strings = __commonJS({
  "../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/utils/strings.js"(exports) {
    "use strict";
    var asciiWhitespaceRe = /^[\t\n\f\r ]$/;
    exports.asciiWhitespaceRe = asciiWhitespaceRe;
    exports.asciiLowercase = (s4) => {
      const len = s4.length;
      const out = new Array(len);
      for (let i5 = 0; i5 < len; i5++) {
        const code = s4.charCodeAt(i5);
        out[i5] = code >= 65 && code <= 90 ? String.fromCharCode(code | 32) : s4[i5];
      }
      return out.join("");
    };
    exports.asciiUppercase = (s4) => {
      const len = s4.length;
      const out = new Array(len);
      for (let i5 = 0; i5 < len; i5++) {
        const code = s4.charCodeAt(i5);
        out[i5] = code >= 97 && code <= 122 ? String.fromCharCode(code & ~32) : s4[i5];
      }
      return out.join("");
    };
    exports.stripNewlines = (s4) => {
      return s4.replace(/[\n\r]+/g, "");
    };
    exports.stripLeadingAndTrailingASCIIWhitespace = (s4) => {
      return s4.replace(/^[ \t\n\f\r]+/, "").replace(/[ \t\n\f\r]+$/, "");
    };
    exports.stripAndCollapseASCIIWhitespace = (s4) => {
      return s4.replace(/[ \t\n\f\r]+/g, " ").replace(/^[ \t\n\f\r]+/, "").replace(/[ \t\n\f\r]+$/, "");
    };
    exports.isValidSimpleColor = (s4) => {
      return /^#[a-fA-F\d]{6}$/.test(s4);
    };
    exports.asciiCaseInsensitiveMatch = (a5, b3) => {
      if (a5.length !== b3.length) {
        return false;
      }
      for (let i5 = 0; i5 < a5.length; ++i5) {
        if ((a5.charCodeAt(i5) | 32) !== (b3.charCodeAt(i5) | 32)) {
          return false;
        }
      }
      return true;
    };
    var parseInteger = exports.parseInteger = (input) => {
      const numWhitespace = input.length - input.trimStart().length;
      if (/[^\t\n\f\r ]/.test(input.slice(0, numWhitespace))) {
        return null;
      }
      const value2 = parseInt(input, 10);
      if (Number.isNaN(value2)) {
        return null;
      }
      return value2 === 0 ? 0 : value2;
    };
    exports.parseNonNegativeInteger = (input) => {
      const value2 = parseInteger(input);
      if (value2 === null) {
        return null;
      }
      if (value2 < 0) {
        return null;
      }
      return value2;
    };
    var floatingPointNumRe = /^-?(?:\d+|\d*\.\d+)(?:[eE][-+]?\d+)?$/;
    exports.isValidFloatingPointNumber = (str) => floatingPointNumRe.test(str);
    exports.parseFloatingPointNumber = (str) => {
      const numWhitespace = str.length - str.trimStart().length;
      if (/[^\t\n\f\r ]/.test(str.slice(0, numWhitespace))) {
        return null;
      }
      const parsed = parseFloat(str);
      return isFinite(parsed) ? parsed : null;
    };
    exports.splitOnASCIIWhitespace = (str) => {
      let position = 0;
      const tokens = [];
      while (position < str.length && asciiWhitespaceRe.test(str[position])) {
        position++;
      }
      if (position === str.length) {
        return tokens;
      }
      while (position < str.length) {
        const start2 = position;
        while (position < str.length && !asciiWhitespaceRe.test(str[position])) {
          position++;
        }
        tokens.push(str.slice(start2, position));
        while (position < str.length && asciiWhitespaceRe.test(str[position])) {
          position++;
        }
      }
      return tokens;
    };
    exports.splitOnCommas = (str) => {
      let position = 0;
      const tokens = [];
      while (position < str.length) {
        let start2 = position;
        while (position < str.length && str[position] !== ",") {
          position++;
        }
        let end2 = position;
        while (start2 < str.length && asciiWhitespaceRe.test(str[start2])) {
          start2++;
        }
        while (end2 > start2 && asciiWhitespaceRe.test(str[end2 - 1])) {
          end2--;
        }
        tokens.push(str.slice(start2, end2));
        if (position < str.length) {
          position++;
        }
      }
      return tokens;
    };
  }
});

// ../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/parsers.js
var require_parsers = __commonJS({
  "../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/parsers.js"(exports) {
    "use strict";
    var { resolve: resolveColor, utils: utils2 } = require_cjs13();
    var { asciiLowercase } = require_strings();
    var { cssCalc, isColor, isGradient, splitValue } = utils2;
    var GLOBAL_VALUE = Object.freeze(["initial", "inherit", "unset", "revert", "revert-layer"]);
    var NUM_TYPE = Object.freeze({
      UNDEFINED: 0,
      VAR: 1,
      NUMBER: 2,
      PERCENT: 4,
      LENGTH: 8,
      ANGLE: 16,
      CALC: 32
    });
    var SYS_COLOR = Object.freeze([
      "accentcolor",
      "accentcolortext",
      "activeborder",
      "activecaption",
      "activetext",
      "appworkspace",
      "background",
      "buttonborder",
      "buttonface",
      "buttonhighlight",
      "buttonshadow",
      "buttontext",
      "canvas",
      "canvastext",
      "captiontext",
      "field",
      "fieldtext",
      "graytext",
      "highlight",
      "highlighttext",
      "inactiveborder",
      "inactivecaption",
      "inactivecaptiontext",
      "infobackground",
      "infotext",
      "linktext",
      "mark",
      "marktext",
      "menu",
      "menutext",
      "scrollbar",
      "selecteditem",
      "selecteditemtext",
      "threeddarkshadow",
      "threedface",
      "threedhighlight",
      "threedlightshadow",
      "threedshadow",
      "visitedtext",
      "window",
      "windowframe",
      "windowtext"
    ]);
    var DIGIT2 = "(?:0|[1-9]\\d*)";
    var NUMBER = `[+-]?(?:${DIGIT2}(?:\\.\\d*)?|\\.\\d+)(?:e-?${DIGIT2})?`;
    var unitRegEx = new RegExp(`^(${NUMBER})([a-z]+|%)?$`, "i");
    var urlRegEx = /^url\(\s*((?:[^)]|\\\))*)\s*\)$/;
    var keywordRegEx = /^[a-z]+(?:-[a-z]+)*$/i;
    var stringRegEx = /^("[^"]*"|'[^']*')$/;
    var varRegEx = /^var\(/;
    var varContainedRegEx = /(?<=[*/\s(])var\(/;
    var calcRegEx = /^(?:a?(?:cos|sin|tan)|abs|atan2|calc|clamp|exp|hypot|log|max|min|mod|pow|rem|round|sign|sqrt)\(/;
    var functionRegEx = /^([a-z][a-z\d]*(?:-[a-z\d]+)*)\(/i;
    var getNumericType = function getNumericType2(val) {
      if (varRegEx.test(val)) {
        return NUM_TYPE.VAR;
      }
      if (calcRegEx.test(val)) {
        return NUM_TYPE.CALC;
      }
      if (unitRegEx.test(val)) {
        const [, , unit] = unitRegEx.exec(val);
        if (!unit) {
          return NUM_TYPE.NUMBER;
        }
        if (unit === "%") {
          return NUM_TYPE.PERCENT;
        }
        if (/^(?:[cm]m|[dls]?v(?:[bhiw]|max|min)|in|p[ctx]|q|r?(?:[cl]h|cap|e[mx]|ic))$/i.test(unit)) {
          return NUM_TYPE.LENGTH;
        }
        if (/^(?:deg|g?rad|turn)$/i.test(unit)) {
          return NUM_TYPE.ANGLE;
        }
      }
      return NUM_TYPE.UNDEFINED;
    };
    exports.prepareValue = function prepareValue(value2, globalObject = globalThis) {
      if (value2 === null) {
        return "";
      }
      const type = typeof value2;
      switch (type) {
        case "string":
          return value2.trim();
        case "number":
          return value2.toString();
        case "undefined":
          return "undefined";
        case "symbol":
          throw new globalObject.TypeError("Can not convert symbol to string.");
        default: {
          const str = value2.toString();
          if (typeof str === "string") {
            return str;
          }
          throw new globalObject.TypeError(`Can not convert ${type} to string.`);
        }
      }
    };
    exports.hasVarFunc = function hasVarFunc(val) {
      return varRegEx.test(val) || varContainedRegEx.test(val);
    };
    exports.parseNumber = function parseNumber(val, restrictToPositive = false) {
      if (val === "") {
        return "";
      }
      const type = getNumericType(val);
      switch (type) {
        case NUM_TYPE.VAR:
          return val;
        case NUM_TYPE.CALC:
          return cssCalc(val, {
            format: "specifiedValue"
          });
        case NUM_TYPE.NUMBER: {
          const num = parseFloat(val);
          if (restrictToPositive && num < 0) {
            return;
          }
          return `${num}`;
        }
        default:
          if (varContainedRegEx.test(val)) {
            return val;
          }
      }
    };
    exports.parseLength = function parseLength(val, restrictToPositive = false) {
      if (val === "") {
        return "";
      }
      const type = getNumericType(val);
      switch (type) {
        case NUM_TYPE.VAR:
          return val;
        case NUM_TYPE.CALC:
          return cssCalc(val, {
            format: "specifiedValue"
          });
        case NUM_TYPE.NUMBER:
          if (parseFloat(val) === 0) {
            return "0px";
          }
          return;
        case NUM_TYPE.LENGTH: {
          const [, numVal, unit] = unitRegEx.exec(val);
          const num = parseFloat(numVal);
          if (restrictToPositive && num < 0) {
            return;
          }
          return `${num}${asciiLowercase(unit)}`;
        }
        default:
          if (varContainedRegEx.test(val)) {
            return val;
          }
      }
    };
    exports.parsePercent = function parsePercent2(val, restrictToPositive = false) {
      if (val === "") {
        return "";
      }
      const type = getNumericType(val);
      switch (type) {
        case NUM_TYPE.VAR:
          return val;
        case NUM_TYPE.CALC:
          return cssCalc(val, {
            format: "specifiedValue"
          });
        case NUM_TYPE.NUMBER:
          if (parseFloat(val) === 0) {
            return "0%";
          }
          return;
        case NUM_TYPE.PERCENT: {
          const [, numVal, unit] = unitRegEx.exec(val);
          const num = parseFloat(numVal);
          if (restrictToPositive && num < 0) {
            return;
          }
          return `${num}${asciiLowercase(unit)}`;
        }
        default:
          if (varContainedRegEx.test(val)) {
            return val;
          }
      }
    };
    exports.parseMeasurement = function parseMeasurement(val, restrictToPositive = false) {
      if (val === "") {
        return "";
      }
      const type = getNumericType(val);
      switch (type) {
        case NUM_TYPE.VAR:
          return val;
        case NUM_TYPE.CALC:
          return cssCalc(val, {
            format: "specifiedValue"
          });
        case NUM_TYPE.NUMBER:
          if (parseFloat(val) === 0) {
            return "0px";
          }
          return;
        case NUM_TYPE.LENGTH:
        case NUM_TYPE.PERCENT: {
          const [, numVal, unit] = unitRegEx.exec(val);
          const num = parseFloat(numVal);
          if (restrictToPositive && num < 0) {
            return;
          }
          return `${num}${asciiLowercase(unit)}`;
        }
        default:
          if (varContainedRegEx.test(val)) {
            return val;
          }
      }
    };
    exports.parseAngle = function parseAngle2(val, normalizeDeg = false) {
      if (val === "") {
        return "";
      }
      const type = getNumericType(val);
      switch (type) {
        case NUM_TYPE.VAR:
          return val;
        case NUM_TYPE.CALC:
          return cssCalc(val, {
            format: "specifiedValue"
          });
        case NUM_TYPE.NUMBER:
          if (parseFloat(val) === 0) {
            return "0deg";
          }
          return;
        case NUM_TYPE.ANGLE: {
          let [, numVal, unit] = unitRegEx.exec(val);
          numVal = parseFloat(numVal);
          unit = asciiLowercase(unit);
          if (unit === "deg") {
            if (normalizeDeg && numVal < 0) {
              while (numVal < 0) {
                numVal += 360;
              }
            }
            numVal %= 360;
          }
          return `${numVal}${unit}`;
        }
        default:
          if (varContainedRegEx.test(val)) {
            return val;
          }
      }
    };
    exports.parseUrl = function parseUrl(val) {
      if (val === "") {
        return val;
      }
      const res = urlRegEx.exec(val);
      if (!res) {
        return;
      }
      let str = res[1];
      if ((str[0] === '"' || str[0] === "'") && str[0] !== str[str.length - 1]) {
        return;
      }
      if (str[0] === '"' || str[0] === "'") {
        str = str.substr(1, str.length - 2);
      }
      let urlstr = "";
      let escaped = false;
      for (let i5 = 0; i5 < str.length; i5++) {
        switch (str[i5]) {
          case "\\":
            if (escaped) {
              urlstr += "\\\\";
              escaped = false;
            } else {
              escaped = true;
            }
            break;
          case "(":
          case ")":
          case " ":
          case "	":
          case "\n":
          case "'":
            if (!escaped) {
              return;
            }
            urlstr += str[i5];
            escaped = false;
            break;
          case '"':
            if (!escaped) {
              return;
            }
            urlstr += '\\"';
            escaped = false;
            break;
          default:
            urlstr += str[i5];
            escaped = false;
        }
      }
      return `url("${urlstr}")`;
    };
    exports.parseString = function parseString(val) {
      if (val === "") {
        return "";
      }
      if (!stringRegEx.test(val)) {
        return;
      }
      val = val.substr(1, val.length - 2);
      let str = "";
      let escaped = false;
      for (let i5 = 0; i5 < val.length; i5++) {
        switch (val[i5]) {
          case "\\":
            if (escaped) {
              str += "\\\\";
              escaped = false;
            } else {
              escaped = true;
            }
            break;
          case '"':
            str += '\\"';
            escaped = false;
            break;
          default:
            str += val[i5];
            escaped = false;
        }
      }
      return `"${str}"`;
    };
    exports.parseKeyword = function parseKeyword(val, validKeywords = []) {
      if (val === "") {
        return "";
      }
      if (varRegEx.test(val)) {
        return val;
      }
      val = asciiLowercase(val.toString());
      if (validKeywords.includes(val) || GLOBAL_VALUE.includes(val)) {
        return val;
      }
    };
    exports.parseColor = function parseColor2(val) {
      if (val === "") {
        return "";
      }
      if (varRegEx.test(val)) {
        return val;
      }
      if (/^[a-z]+$/i.test(val)) {
        const v3 = asciiLowercase(val);
        if (SYS_COLOR.includes(v3)) {
          return v3;
        }
      }
      const res = resolveColor(val, {
        format: "specifiedValue"
      });
      if (res) {
        return res;
      }
      return exports.parseKeyword(val);
    };
    exports.parseImage = function parseImage(val) {
      if (val === "") {
        return "";
      }
      if (varRegEx.test(val)) {
        return val;
      }
      if (keywordRegEx.test(val)) {
        return exports.parseKeyword(val, ["none"]);
      }
      const values = splitValue(val, {
        delimiter: ",",
        preserveComment: varContainedRegEx.test(val)
      });
      let isImage2 = Boolean(values.length);
      for (let i5 = 0; i5 < values.length; i5++) {
        const image = values[i5];
        if (image === "") {
          return "";
        }
        if (isGradient(image) || /^(?:none|inherit)$/i.test(image)) {
          continue;
        }
        const imageUrl = exports.parseUrl(image);
        if (imageUrl) {
          values[i5] = imageUrl;
        } else {
          isImage2 = false;
          break;
        }
      }
      if (isImage2) {
        return values.join(", ");
      }
    };
    exports.parseFunction = function parseFunction(val) {
      if (val === "") {
        return {
          name: null,
          value: ""
        };
      }
      if (functionRegEx.test(val) && val.endsWith(")")) {
        if (varRegEx.test(val) || varContainedRegEx.test(val)) {
          return {
            name: "var",
            value: val
          };
        }
        const [, name] = functionRegEx.exec(val);
        const value2 = val.replace(new RegExp(`^${name}\\(`), "").replace(/\)$/, "").trim();
        return {
          name,
          value: value2
        };
      }
    };
    exports.parseShorthand = function parseShorthand(val, shorthandFor, preserve = false) {
      const obj = {};
      if (val === "" || exports.hasVarFunc(val)) {
        for (const [property] of shorthandFor) {
          obj[property] = "";
        }
        return obj;
      }
      const key = exports.parseKeyword(val);
      if (key) {
        if (key === "inherit") {
          return obj;
        }
        return;
      }
      const parts = splitValue(val);
      const shorthandArr = [...shorthandFor];
      for (const part of parts) {
        let partValid = false;
        for (let i5 = 0; i5 < shorthandArr.length; i5++) {
          const [property, value2] = shorthandArr[i5];
          if (value2.isValid(part)) {
            partValid = true;
            obj[property] = value2.parse(part);
            if (!preserve) {
              shorthandArr.splice(i5, 1);
              break;
            }
          }
        }
        if (!partValid) {
          return;
        }
      }
      return obj;
    };
    exports.isValidColor = function isValidColor(val) {
      if (SYS_COLOR.includes(asciiLowercase(val))) {
        return true;
      }
      return isColor(val);
    };
    exports.splitValue = splitValue;
  }
});

// ../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/generated/properties.js
var require_properties = __commonJS({
  "../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/generated/properties.js"(exports, module) {
    "use strict";
    var external_dependency_parsers_0 = require_parsers();
    var external_dependency_strings_1 = require_strings();
    var backgroundImage_export_parse;
    var backgroundImage_export_isValid;
    var backgroundImage_export_definition;
    backgroundImage_export_parse = function parse3(v3) {
      return external_dependency_parsers_0.parseImage(v3);
    };
    backgroundImage_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3, ["none"]) === "string") {
        return true;
      }
      return typeof backgroundImage_export_parse(v3) === "string";
    };
    backgroundImage_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("background", "");
          this._setProperty("background-image", v3);
        } else {
          this._setProperty("background-image", backgroundImage_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("background-image");
      },
      enumerable: true,
      configurable: true
    };
    var backgroundPosition_export_parse;
    var backgroundPosition_export_isValid;
    var backgroundPosition_export_definition;
    backgroundPosition_export_parse = function parse3(v3) {
      const parts = external_dependency_parsers_0.splitValue(v3);
      if (!parts.length || parts.length > 2) {
        return;
      }
      const validKeywordsX = ["left", "center", "right"];
      const validKeywordsY = ["top", "center", "bottom"];
      if (parts.length === 1) {
        const dim = external_dependency_parsers_0.parseMeasurement(parts[0]);
        if (dim) {
          return dim;
        }
        const validKeywords = /* @__PURE__ */ new Set([...validKeywordsX, ...validKeywordsY]);
        return external_dependency_parsers_0.parseKeyword(v3, [...validKeywords]);
      }
      const [partX, partY] = parts;
      const posX = external_dependency_parsers_0.parseMeasurement(partX) || external_dependency_parsers_0.parseKeyword(partX, validKeywordsX);
      if (posX) {
        const posY = external_dependency_parsers_0.parseMeasurement(partY) || external_dependency_parsers_0.parseKeyword(partY, validKeywordsY);
        if (posY) {
          return `${posX} ${posY}`;
        }
      }
    };
    backgroundPosition_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof backgroundPosition_export_parse(v3) === "string";
    };
    backgroundPosition_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("background", "");
          this._setProperty("background-position", v3);
        } else {
          this._setProperty("background-position", backgroundPosition_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("background-position");
      },
      enumerable: true,
      configurable: true
    };
    var backgroundRepeat_export_parse;
    var backgroundRepeat_export_isValid;
    var backgroundRepeat_export_definition;
    backgroundRepeat_export_parse = function parse3(v3) {
      const keywords = ["repeat", "repeat-x", "repeat-y", "no-repeat", "space", "round"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    backgroundRepeat_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof backgroundRepeat_export_parse(v3) === "string";
    };
    backgroundRepeat_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("background", "");
          this._setProperty("background-repeat", v3);
        } else {
          this._setProperty("background-repeat", backgroundRepeat_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("background-repeat");
      },
      enumerable: true,
      configurable: true
    };
    var backgroundAttachment_export_parse;
    var backgroundAttachment_export_isValid;
    var backgroundAttachment_export_definition;
    backgroundAttachment_export_parse = function parse3(v3) {
      const keywords = ["fixed", "scroll", "local"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    backgroundAttachment_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof backgroundAttachment_export_parse(v3) === "string";
    };
    backgroundAttachment_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("background", "");
          this._setProperty("background-attachment", v3);
        } else {
          this._setProperty("background-attachment", backgroundAttachment_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("background-attachment");
      },
      enumerable: true,
      configurable: true
    };
    var backgroundColor_export_parse;
    var backgroundColor_export_isValid;
    var backgroundColor_export_definition;
    backgroundColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    backgroundColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    backgroundColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("background", "");
          this._setProperty("background-color", v3);
        } else {
          this._setProperty("background-color", backgroundColor_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("background-color");
      },
      enumerable: true,
      configurable: true
    };
    var background_export_definition;
    var background_local_var_shorthandFor = /* @__PURE__ */ new Map([["background-image", {
      parse: backgroundImage_export_parse,
      isValid: backgroundImage_export_isValid,
      definition: backgroundImage_export_definition
    }], ["background-position", {
      parse: backgroundPosition_export_parse,
      isValid: backgroundPosition_export_isValid,
      definition: backgroundPosition_export_definition
    }], ["background-repeat", {
      parse: backgroundRepeat_export_parse,
      isValid: backgroundRepeat_export_isValid,
      definition: backgroundRepeat_export_definition
    }], ["background-attachment", {
      parse: backgroundAttachment_export_parse,
      isValid: backgroundAttachment_export_isValid,
      definition: backgroundAttachment_export_definition
    }], ["background-color", {
      parse: backgroundColor_export_parse,
      isValid: backgroundColor_export_isValid,
      definition: backgroundColor_export_definition
    }]]);
    background_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (/^none$/i.test(v3)) {
          for (const [key] of background_local_var_shorthandFor) {
            this._setProperty(key, "");
          }
          this._setProperty("background", external_dependency_strings_1.asciiLowercase(v3));
        } else if (external_dependency_parsers_0.hasVarFunc(v3)) {
          for (const [key] of background_local_var_shorthandFor) {
            this._setProperty(key, "");
          }
          this._setProperty("background", v3);
        } else {
          this._shorthandSetter("background", v3, background_local_var_shorthandFor);
        }
      },
      get() {
        let val = this.getPropertyValue("background");
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return val;
        }
        val = this._shorthandGetter("background", background_local_var_shorthandFor);
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return "";
        }
        return val;
      },
      enumerable: true,
      configurable: true
    };
    var borderWidth_export_parse;
    var borderWidth_export_isValid;
    var borderWidth_export_definition;
    borderWidth_export_parse = function parse3(v3) {
      const keywords = ["thin", "medium", "thick"];
      const key = external_dependency_parsers_0.parseKeyword(v3, keywords);
      if (key) {
        return key;
      }
      return external_dependency_parsers_0.parseLength(v3, true);
    };
    borderWidth_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof borderWidth_export_parse(v3) === "string";
    };
    borderWidth_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-width", v3);
        } else {
          const positions = ["top", "right", "bottom", "left"];
          this._implicitSetter("border", "width", v3, borderWidth_export_isValid, borderWidth_export_parse, positions);
        }
      },
      get() {
        return this.getPropertyValue("border-width");
      },
      enumerable: true,
      configurable: true
    };
    var borderStyle_export_parse;
    var borderStyle_export_isValid;
    var borderStyle_export_definition;
    borderStyle_export_parse = function parse3(v3) {
      const keywords = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    borderStyle_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof borderStyle_export_parse(v3) === "string";
    };
    borderStyle_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (/^none$/i.test(v3)) {
          v3 = "";
        }
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-style", v3);
          return;
        }
        const positions = ["top", "right", "bottom", "left"];
        this._implicitSetter("border", "style", v3, borderStyle_export_isValid, borderStyle_export_parse, positions);
      },
      get() {
        return this.getPropertyValue("border-style");
      },
      enumerable: true,
      configurable: true
    };
    var borderColor_export_parse;
    var borderColor_export_isValid;
    var borderColor_export_definition;
    borderColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    borderColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    borderColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-color", v3);
        } else {
          const positions = ["top", "right", "bottom", "left"];
          this._implicitSetter("border", "color", v3, borderColor_export_isValid, borderColor_export_parse, positions);
        }
      },
      get() {
        return this.getPropertyValue("border-color");
      },
      enumerable: true,
      configurable: true
    };
    var border_export_definition;
    var border_local_var_shorthandFor = /* @__PURE__ */ new Map([["border-width", {
      parse: borderWidth_export_parse,
      isValid: borderWidth_export_isValid,
      definition: borderWidth_export_definition
    }], ["border-style", {
      parse: borderStyle_export_parse,
      isValid: borderStyle_export_isValid,
      definition: borderStyle_export_definition
    }], ["border-color", {
      parse: borderColor_export_parse,
      isValid: borderColor_export_isValid,
      definition: borderColor_export_definition
    }]]);
    border_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (/^none$/i.test(v3)) {
          v3 = "";
        }
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          for (const [key] of border_local_var_shorthandFor) {
            this._setProperty(key, "");
          }
          this._setProperty("border", v3);
        } else {
          this._midShorthandSetter("border", v3, border_local_var_shorthandFor, ["top", "right", "bottom", "left"]);
        }
      },
      get() {
        let val = this.getPropertyValue("border");
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return val;
        }
        val = this._shorthandGetter("border", border_local_var_shorthandFor);
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return "";
        }
        return val;
      },
      enumerable: true,
      configurable: true
    };
    var borderTopWidth_export_parse;
    var borderTopWidth_export_isValid;
    var borderTopWidth_export_definition;
    borderTopWidth_export_parse = function parse3(v3) {
      const keywords = ["thin", "medium", "thick"];
      const key = external_dependency_parsers_0.parseKeyword(v3, keywords);
      if (key) {
        return key;
      }
      return external_dependency_parsers_0.parseLength(v3, true);
    };
    borderTopWidth_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof borderTopWidth_export_parse(v3) === "string";
    };
    borderTopWidth_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-top", "");
          this._setProperty("border-width", "");
        }
        this._setProperty("border-top-width", borderTopWidth_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("border-top-width");
      },
      enumerable: true,
      configurable: true
    };
    var borderTopStyle_export_parse;
    var borderTopStyle_export_isValid;
    var borderTopStyle_export_definition;
    borderTopStyle_export_parse = function parse3(v3) {
      const keywords = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    borderTopStyle_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof borderTopStyle_export_parse(v3) === "string";
    };
    borderTopStyle_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        const val = borderTopStyle_export_parse(v3);
        if (val === "none" || val === "hidden" || v3 === "") {
          this._setProperty("border-top-style", "");
          this._setProperty("border-top-color", "");
          this._setProperty("border-top-width", "");
          return;
        }
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-top", "");
          this._setProperty("border-style", "");
        }
        this._setProperty("border-top-style", val);
      },
      get() {
        return this.getPropertyValue("border-top-style");
      },
      enumerable: true,
      configurable: true
    };
    var borderTopColor_export_parse;
    var borderTopColor_export_isValid;
    var borderTopColor_export_definition;
    borderTopColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    borderTopColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    borderTopColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-top", "");
          this._setProperty("border-color", "");
        }
        this._setProperty("border-top-color", borderTopColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("border-top-color");
      },
      enumerable: true,
      configurable: true
    };
    var borderBottom_export_definition;
    var borderBottom_local_var_shorthandFor = /* @__PURE__ */ new Map([["border-bottom-width", {
      parse: borderTopWidth_export_parse,
      isValid: borderTopWidth_export_isValid,
      definition: borderTopWidth_export_definition
    }], ["border-bottom-style", {
      parse: borderTopStyle_export_parse,
      isValid: borderTopStyle_export_isValid,
      definition: borderTopStyle_export_definition
    }], ["border-bottom-color", {
      parse: borderTopColor_export_parse,
      isValid: borderTopColor_export_isValid,
      definition: borderTopColor_export_definition
    }]]);
    borderBottom_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          for (const [key] of borderBottom_local_var_shorthandFor) {
            this._setProperty(key, "");
          }
          this._setProperty("border", "");
          this._setProperty("border-bottom", v3);
        } else {
          this._shorthandSetter("border-bottom", v3, borderBottom_local_var_shorthandFor);
        }
      },
      get() {
        let val = this.getPropertyValue("border-bottom");
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return val;
        }
        val = this._shorthandGetter("border-bottom", borderBottom_local_var_shorthandFor);
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return "";
        }
        return val;
      },
      enumerable: true,
      configurable: true
    };
    var borderBottomColor_export_parse;
    var borderBottomColor_export_isValid;
    var borderBottomColor_export_definition;
    borderBottomColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    borderBottomColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    borderBottomColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-bottom", "");
          this._setProperty("border-color", "");
        }
        this._setProperty("border-bottom-color", borderBottomColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("border-bottom-color");
      },
      enumerable: true,
      configurable: true
    };
    var borderBottomStyle_export_parse;
    var borderBottomStyle_export_isValid;
    var borderBottomStyle_export_definition;
    borderBottomStyle_export_parse = function parse3(v3) {
      const keywords = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    borderBottomStyle_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof borderBottomStyle_export_parse(v3) === "string";
    };
    borderBottomStyle_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        const val = borderBottomStyle_export_parse(v3);
        if (val === "none" || val === "hidden") {
          this._setProperty("border-bottom-style", "");
          this._setProperty("border-bottom-color", "");
          this._setProperty("border-bottom-width", "");
          return;
        }
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-bottom", "");
          this._setProperty("border-style", "");
        }
        this._setProperty("border-bottom-style", val);
      },
      get() {
        return this.getPropertyValue("border-bottom-style");
      },
      enumerable: true,
      configurable: true
    };
    var borderBottomWidth_export_parse;
    var borderBottomWidth_export_isValid;
    var borderBottomWidth_export_definition;
    borderBottomWidth_export_parse = function parse3(v3) {
      const keywords = ["thin", "medium", "thick"];
      const key = external_dependency_parsers_0.parseKeyword(v3, keywords);
      if (key) {
        return key;
      }
      return external_dependency_parsers_0.parseLength(v3, true);
    };
    borderBottomWidth_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof borderBottomWidth_export_parse(v3) === "string";
    };
    borderBottomWidth_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-bottom", "");
          this._setProperty("border-width", "");
        }
        this._setProperty("border-bottom-width", borderBottomWidth_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("border-bottom-width");
      },
      enumerable: true,
      configurable: true
    };
    var borderCollapse_export_parse;
    var borderCollapse_export_isValid;
    var borderCollapse_export_definition;
    borderCollapse_export_parse = function parse3(v3) {
      return external_dependency_parsers_0.parseKeyword(v3, ["collapse", "separate"]);
    };
    borderCollapse_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof borderCollapse_export_parse(v3) === "string";
    };
    borderCollapse_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("border-collapse", borderCollapse_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("border-collapse");
      },
      enumerable: true,
      configurable: true
    };
    var borderLeft_export_definition;
    var borderLeft_local_var_shorthandFor = /* @__PURE__ */ new Map([["border-left-width", {
      parse: borderTopWidth_export_parse,
      isValid: borderTopWidth_export_isValid,
      definition: borderTopWidth_export_definition
    }], ["border-left-style", {
      parse: borderTopStyle_export_parse,
      isValid: borderTopStyle_export_isValid,
      definition: borderTopStyle_export_definition
    }], ["border-left-color", {
      parse: borderTopColor_export_parse,
      isValid: borderTopColor_export_isValid,
      definition: borderTopColor_export_definition
    }]]);
    borderLeft_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          for (const [key] of borderLeft_local_var_shorthandFor) {
            this._setProperty(key, "");
          }
          this._setProperty("border", "");
          this._setProperty("border-left", v3);
        } else {
          this._shorthandSetter("border-left", v3, borderLeft_local_var_shorthandFor);
        }
      },
      get() {
        let val = this.getPropertyValue("border-left");
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return val;
        }
        val = this._shorthandGetter("border-left", borderLeft_local_var_shorthandFor);
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return "";
        }
        return val;
      },
      enumerable: true,
      configurable: true
    };
    var borderLeftColor_export_parse;
    var borderLeftColor_export_isValid;
    var borderLeftColor_export_definition;
    borderLeftColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    borderLeftColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    borderLeftColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-left", "");
          this._setProperty("border-color", "");
        }
        this._setProperty("border-left-color", borderLeftColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("border-left-color");
      },
      enumerable: true,
      configurable: true
    };
    var borderLeftStyle_export_parse;
    var borderLeftStyle_export_isValid;
    var borderLeftStyle_export_definition;
    borderLeftStyle_export_parse = function parse3(v3) {
      const keywords = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    borderLeftStyle_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof borderLeftStyle_export_parse(v3) === "string";
    };
    borderLeftStyle_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        const val = borderLeftStyle_export_parse(v3);
        if (val === "none" || val === "hidden") {
          this._setProperty("border-left-style", "");
          this._setProperty("border-left-color", "");
          this._setProperty("border-left-width", "");
          return;
        }
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-left", "");
          this._setProperty("border-style", "");
        }
        this._setProperty("border-left-style", val);
      },
      get() {
        return this.getPropertyValue("border-left-style");
      },
      enumerable: true,
      configurable: true
    };
    var borderLeftWidth_export_parse;
    var borderLeftWidth_export_isValid;
    var borderLeftWidth_export_definition;
    borderLeftWidth_export_parse = function parse3(v3) {
      const keywords = ["thin", "medium", "thick"];
      const key = external_dependency_parsers_0.parseKeyword(v3, keywords);
      if (key) {
        return key;
      }
      return external_dependency_parsers_0.parseLength(v3, true);
    };
    borderLeftWidth_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof borderLeftWidth_export_parse(v3) === "string";
    };
    borderLeftWidth_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-left", "");
          this._setProperty("border-width", "");
        }
        this._setProperty("border-left-width", borderLeftWidth_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("border-left-width");
      },
      enumerable: true,
      configurable: true
    };
    var borderRight_export_definition;
    var borderRight_local_var_shorthandFor = /* @__PURE__ */ new Map([["border-right-width", {
      parse: borderTopWidth_export_parse,
      isValid: borderTopWidth_export_isValid,
      definition: borderTopWidth_export_definition
    }], ["border-right-style", {
      parse: borderTopStyle_export_parse,
      isValid: borderTopStyle_export_isValid,
      definition: borderTopStyle_export_definition
    }], ["border-right-color", {
      parse: borderTopColor_export_parse,
      isValid: borderTopColor_export_isValid,
      definition: borderTopColor_export_definition
    }]]);
    borderRight_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          for (const [key] of borderRight_local_var_shorthandFor) {
            this._setProperty(key, "");
          }
          this._setProperty("border", "");
          this._setProperty("border-right", v3);
        } else {
          this._shorthandSetter("border-right", v3, borderRight_local_var_shorthandFor);
        }
      },
      get() {
        let val = this.getPropertyValue("border-right");
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return val;
        }
        val = this._shorthandGetter("border-right", borderRight_local_var_shorthandFor);
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return "";
        }
        return val;
      },
      enumerable: true,
      configurable: true
    };
    var borderRightColor_export_parse;
    var borderRightColor_export_isValid;
    var borderRightColor_export_definition;
    borderRightColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    borderRightColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    borderRightColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-right", "");
          this._setProperty("border-color", "");
        }
        this._setProperty("border-right-color", borderRightColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("border-right-color");
      },
      enumerable: true,
      configurable: true
    };
    var borderRightStyle_export_parse;
    var borderRightStyle_export_isValid;
    var borderRightStyle_export_definition;
    borderRightStyle_export_parse = function parse3(v3) {
      const keywords = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    borderRightStyle_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof borderRightStyle_export_parse(v3) === "string";
    };
    borderRightStyle_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        const val = borderRightStyle_export_parse(v3);
        if (val === "none" || val === "hidden") {
          this._setProperty("border-right-style", "");
          this._setProperty("border-right-color", "");
          this._setProperty("border-right-width", "");
          return;
        }
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-right", "");
          this._setProperty("border-style", "");
        }
        this._setProperty("border-right-style", val);
      },
      get() {
        return this.getPropertyValue("border-right-style");
      },
      enumerable: true,
      configurable: true
    };
    var borderRightWidth_export_parse;
    var borderRightWidth_export_isValid;
    var borderRightWidth_export_definition;
    borderRightWidth_export_parse = function parse3(v3) {
      const keywords = ["thin", "medium", "thick"];
      const key = external_dependency_parsers_0.parseKeyword(v3, keywords);
      if (key) {
        return key;
      }
      return external_dependency_parsers_0.parseLength(v3, true);
    };
    borderRightWidth_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof borderRightWidth_export_parse(v3) === "string";
    };
    borderRightWidth_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("border", "");
          this._setProperty("border-right", "");
          this._setProperty("border-width", "");
        }
        this._setProperty("border-right-width", borderRightWidth_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("border-right-width");
      },
      enumerable: true,
      configurable: true
    };
    var borderSpacing_export_parse;
    var borderSpacing_export_isValid;
    var borderSpacing_export_definition;
    borderSpacing_export_parse = function parse3(v3) {
      if (v3 === "") {
        return v3;
      }
      const key = external_dependency_parsers_0.parseKeyword(v3);
      if (key) {
        return key;
      }
      const parts = external_dependency_parsers_0.splitValue(v3);
      if (!parts.length || parts.length > 2) {
        return;
      }
      const val = [];
      for (const part of parts) {
        const dim = external_dependency_parsers_0.parseLength(part);
        if (!dim) {
          return;
        }
        val.push(dim);
      }
      return val.join(" ");
    };
    borderSpacing_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof borderSpacing_export_parse(v3) === "string";
    };
    borderSpacing_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("border-spacing", borderSpacing_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("border-spacing");
      },
      enumerable: true,
      configurable: true
    };
    var borderTop_export_definition;
    var borderTop_local_var_shorthandFor = /* @__PURE__ */ new Map([["border-top-width", {
      parse: borderTopWidth_export_parse,
      isValid: borderTopWidth_export_isValid,
      definition: borderTopWidth_export_definition
    }], ["border-top-style", {
      parse: borderTopStyle_export_parse,
      isValid: borderTopStyle_export_isValid,
      definition: borderTopStyle_export_definition
    }], ["border-top-color", {
      parse: borderTopColor_export_parse,
      isValid: borderTopColor_export_isValid,
      definition: borderTopColor_export_definition
    }]]);
    borderTop_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          for (const [key] of borderTop_local_var_shorthandFor) {
            this._setProperty(key, "");
          }
          this._setProperty("border", "");
          this._setProperty("border-top", v3);
        } else {
          this._shorthandSetter("border-top", v3, borderTop_local_var_shorthandFor);
        }
      },
      get() {
        let val = this.getPropertyValue("border-top");
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return val;
        }
        val = this._shorthandGetter("border-top", borderTop_local_var_shorthandFor);
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return "";
        }
        return val;
      },
      enumerable: true,
      configurable: true
    };
    var bottom_export_parse;
    var bottom_export_isValid;
    var bottom_export_definition;
    bottom_export_parse = function parse3(v3) {
      const dim = external_dependency_parsers_0.parseMeasurement(v3);
      if (dim) {
        return dim;
      }
      return external_dependency_parsers_0.parseKeyword(v3, ["auto"]);
    };
    bottom_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof bottom_export_parse(v3) === "string";
    };
    bottom_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("bottom", bottom_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("bottom");
      },
      enumerable: true,
      configurable: true
    };
    var clear_export_parse;
    var clear_export_isValid;
    var clear_export_definition;
    clear_export_parse = function parse3(v3) {
      const keywords = ["inline-start", "inline-end", "block-start", "block-end", "left", "right", "top", "bottom", "both-inline", "both-block", "both", "none"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    clear_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof clear_export_parse(v3) === "string";
    };
    clear_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("clear", clear_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("clear");
      },
      enumerable: true,
      configurable: true
    };
    var clip_export_parse;
    var clip_export_isValid;
    var clip_export_definition;
    clip_export_parse = function parse3(v3) {
      if (v3 === "") {
        return v3;
      }
      const val = external_dependency_parsers_0.parseKeyword(v3, ["auto"]);
      if (val) {
        return val;
      }
      v3 = external_dependency_strings_1.asciiLowercase(v3);
      const matches = v3.match(/^rect\(\s*(.*)\s*\)$/);
      if (!matches) {
        return;
      }
      const parts = matches[1].split(/\s*,\s*/);
      if (parts.length !== 4) {
        return;
      }
      const valid = parts.every(function(part, index2) {
        const measurement = external_dependency_parsers_0.parseMeasurement(part.trim());
        parts[index2] = measurement;
        return typeof measurement === "string";
      });
      if (!valid) {
        return;
      }
      return `rect(${parts.join(", ")})`;
    };
    clip_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof clip_export_parse(v3) === "string";
    };
    clip_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("clip", clip_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("clip");
      },
      enumerable: true,
      configurable: true
    };
    var color_export_parse;
    var color_export_isValid;
    var color_export_definition;
    color_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    color_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    color_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("color", color_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("color");
      },
      enumerable: true,
      configurable: true
    };
    var flexGrow_export_parse;
    var flexGrow_export_isValid;
    var flexGrow_export_definition;
    flexGrow_export_parse = function parse3(v3) {
      return external_dependency_parsers_0.parseNumber(v3, true);
    };
    flexGrow_export_isValid = function isValid(v3) {
      return typeof flexGrow_export_parse(v3) === "string";
    };
    flexGrow_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("flex", "");
          this._setProperty("flex-grow", v3);
        } else {
          this._setProperty("flex-grow", flexGrow_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("flex-grow");
      },
      enumerable: true,
      configurable: true
    };
    var flexShrink_export_parse;
    var flexShrink_export_isValid;
    var flexShrink_export_definition;
    flexShrink_export_parse = function parse3(v3) {
      return external_dependency_parsers_0.parseNumber(v3, true);
    };
    flexShrink_export_isValid = function isValid(v3) {
      return typeof flexShrink_export_parse(v3) === "string";
    };
    flexShrink_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("flex", "");
          this._setProperty("flex-shrink", v3);
        } else {
          this._setProperty("flex-shrink", flexShrink_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("flex-shrink");
      },
      enumerable: true,
      configurable: true
    };
    var flexBasis_export_parse;
    var flexBasis_export_isValid;
    var flexBasis_export_definition;
    flexBasis_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseMeasurement(v3);
      if (val) {
        return val;
      }
      const keywords = ["content", "auto", "min-content", "max-content"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    flexBasis_export_isValid = function isValid(v3) {
      return typeof flexBasis_export_parse(v3) === "string";
    };
    flexBasis_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("flex", "");
          this._setProperty("flex-basis", v3);
        } else {
          this._setProperty("flex-basis", flexBasis_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("flex-basis");
      },
      enumerable: true,
      configurable: true
    };
    var flex_export_parse;
    var flex_export_isValid;
    var flex_export_definition;
    var flex_local_var_shorthandFor = /* @__PURE__ */ new Map([["flex-grow", {
      parse: flexGrow_export_parse,
      isValid: flexGrow_export_isValid,
      definition: flexGrow_export_definition
    }], ["flex-shrink", {
      parse: flexShrink_export_parse,
      isValid: flexShrink_export_isValid,
      definition: flexShrink_export_definition
    }], ["flex-basis", {
      parse: flexBasis_export_parse,
      isValid: flexBasis_export_isValid,
      definition: flexBasis_export_definition
    }]]);
    flex_export_parse = function parse3(v3) {
      const key = external_dependency_parsers_0.parseKeyword(v3, ["auto", "none"]);
      if (key) {
        if (key === "auto") {
          return "1 1 auto";
        }
        if (key === "none") {
          return "0 0 auto";
        }
        if (key === "initial") {
          return "0 1 auto";
        }
        return;
      }
      const obj = external_dependency_parsers_0.parseShorthand(v3, flex_local_var_shorthandFor);
      if (obj) {
        const flex = {
          "flex-grow": "1",
          "flex-shrink": "1",
          "flex-basis": "0%"
        };
        const items = Object.entries(obj);
        for (const [property, value2] of items) {
          flex[property] = value2;
        }
        return [...Object.values(flex)].join(" ");
      }
    };
    flex_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof flex_export_parse(v3) === "string";
    };
    flex_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._shorthandSetter("flex", "", flex_local_var_shorthandFor);
          this._setProperty("flex", v3);
        } else {
          this._shorthandSetter("flex", flex_export_parse(v3), flex_local_var_shorthandFor);
        }
      },
      get() {
        let val = this.getPropertyValue("flex");
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return val;
        }
        val = this._shorthandGetter("flex", flex_local_var_shorthandFor);
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return "";
        }
        return val;
      },
      enumerable: true,
      configurable: true
    };
    var float_export_parse;
    var float_export_isValid;
    var float_export_definition;
    float_export_parse = function parse3(v3) {
      const keywords = ["left", "right", "none", "inline-start", "inline-end"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    float_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof float_export_parse(v3) === "string";
    };
    float_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("float", float_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("float");
      },
      enumerable: true,
      configurable: true
    };
    var floodColor_export_parse;
    var floodColor_export_isValid;
    var floodColor_export_definition;
    floodColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    floodColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    floodColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("flood-color", floodColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("flood-color");
      },
      enumerable: true,
      configurable: true
    };
    var fontStyle_export_parse;
    var fontStyle_export_isValid;
    var fontStyle_export_definition;
    fontStyle_export_parse = function parse3(v3) {
      const keywords = ["normal", "italic", "oblique"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    fontStyle_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof fontStyle_export_parse(v3) === "string";
    };
    fontStyle_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("font", "");
          this._setProperty("font-style", v3);
        } else {
          this._setProperty("font-style", fontStyle_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("font-style");
      },
      enumerable: true,
      configurable: true
    };
    var fontVariant_export_parse;
    var fontVariant_export_isValid;
    var fontVariant_export_definition;
    fontVariant_export_parse = function parse3(v3) {
      const num = external_dependency_parsers_0.parseNumber(v3, true);
      if (num && parseFloat(num) <= 1e3) {
        return num;
      }
      const keywords = ["normal", "none", "small-caps"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    fontVariant_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof fontVariant_export_parse(v3) === "string";
    };
    fontVariant_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("font", "");
          this._setProperty("font-valiant", v3);
        } else {
          this._setProperty("font-variant", fontVariant_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("font-variant");
      },
      enumerable: true,
      configurable: true
    };
    var fontWeight_export_parse;
    var fontWeight_export_isValid;
    var fontWeight_export_definition;
    fontWeight_export_parse = function parse3(v3) {
      const num = external_dependency_parsers_0.parseNumber(v3, true);
      if (num && parseFloat(num) <= 1e3) {
        return num;
      }
      const keywords = ["normal", "bold", "lighter", "bolder"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    fontWeight_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof fontWeight_export_parse(v3) === "string";
    };
    fontWeight_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("font", "");
          this._setProperty("font-weight", v3);
        } else {
          this._setProperty("font-weight", fontWeight_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("font-weight");
      },
      enumerable: true,
      configurable: true
    };
    var fontSize_export_parse;
    var fontSize_export_isValid;
    var fontSize_export_definition;
    fontSize_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseMeasurement(v3, true);
      if (val) {
        return val;
      }
      const keywords = ["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "smaller", "larger"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    fontSize_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof fontSize_export_parse(v3) === "string";
    };
    fontSize_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("font", "");
          this._setProperty("font-size", v3);
        } else {
          this._setProperty("font-size", fontSize_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("font-size");
      },
      enumerable: true,
      configurable: true
    };
    var lineHeight_export_parse;
    var lineHeight_export_isValid;
    var lineHeight_export_definition;
    lineHeight_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseKeyword(v3, ["normal"]);
      if (val) {
        return val;
      }
      const num = external_dependency_parsers_0.parseNumber(v3, true);
      if (num) {
        return num;
      }
      return external_dependency_parsers_0.parseMeasurement(v3, true);
    };
    lineHeight_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof lineHeight_export_parse(v3) === "string";
    };
    lineHeight_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("font", "");
          this._setProperty("line-height", v3);
        } else {
          this._setProperty("line-height", lineHeight_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("line-height");
      },
      enumerable: true,
      configurable: true
    };
    var fontFamily_export_parse;
    var fontFamily_export_isValid;
    var fontFamily_export_definition;
    fontFamily_export_parse = function parse3(v3) {
      if (v3 === "") {
        return v3;
      }
      const keywords = ["serif", "sans-serif", "cursive", "fantasy", "monospace", "system-ui", "math", "ui-serif", "ui-sans-serif", "ui-monospace", "ui-rounded"];
      const genericValues = ["fangsong", "kai", "khmer-mul", "nastaliq"];
      const val = external_dependency_parsers_0.splitValue(v3, {
        delimiter: ","
      });
      const font = [];
      let valid = false;
      for (const i5 of val) {
        const str = external_dependency_parsers_0.parseString(i5);
        if (str) {
          font.push(str);
          valid = true;
          continue;
        }
        const key = external_dependency_parsers_0.parseKeyword(i5, keywords);
        if (key) {
          font.push(key);
          valid = true;
          continue;
        }
        const obj = external_dependency_parsers_0.parseFunction(i5);
        if (obj) {
          const {
            name,
            value: value2
          } = obj;
          if (name === "generic" && genericValues.includes(value2)) {
            font.push(`${name}(${value2})`);
            valid = true;
            continue;
          }
        }
        if (i5 !== "undefined" && /^(?:[A-Z][A-Za-z\d-]+(?:\s+[A-Z][A-Za-z\d-]+)*|-?[a-z][a-z-]+)$/.test(i5)) {
          font.push(i5.trim());
          valid = true;
          continue;
        }
        if (!valid) {
          return;
        }
      }
      return font.join(", ");
    };
    fontFamily_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof fontFamily_export_parse(v3) === "string";
    };
    fontFamily_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("font", "");
          this._setProperty("font-family", v3);
        } else {
          this._setProperty("font-family", fontFamily_export_parse(v3));
        }
      },
      get() {
        return this.getPropertyValue("font-family");
      },
      enumerable: true,
      configurable: true
    };
    var font_export_parse;
    var font_export_definition;
    var font_local_var_shorthandFor = /* @__PURE__ */ new Map([["font-style", {
      parse: fontStyle_export_parse,
      isValid: fontStyle_export_isValid,
      definition: fontStyle_export_definition
    }], ["font-variant", {
      parse: fontVariant_export_parse,
      isValid: fontVariant_export_isValid,
      definition: fontVariant_export_definition
    }], ["font-weight", {
      parse: fontWeight_export_parse,
      isValid: fontWeight_export_isValid,
      definition: fontWeight_export_definition
    }], ["font-size", {
      parse: fontSize_export_parse,
      isValid: fontSize_export_isValid,
      definition: fontSize_export_definition
    }], ["line-height", {
      parse: lineHeight_export_parse,
      isValid: lineHeight_export_isValid,
      definition: lineHeight_export_definition
    }], ["font-family", {
      parse: fontFamily_export_parse,
      isValid: fontFamily_export_isValid,
      definition: fontFamily_export_definition
    }]]);
    font_export_parse = function parse3(v3) {
      const keywords = ["caption", "icon", "menu", "message-box", "small-caption", "status-bar"];
      const key = external_dependency_parsers_0.parseKeyword(v3, keywords);
      if (key) {
        return key;
      }
      const [fontBlock, ...families] = external_dependency_parsers_0.splitValue(v3, {
        delimiter: ","
      });
      const [fontBlockA, fontBlockB] = external_dependency_parsers_0.splitValue(fontBlock, {
        delimiter: "/"
      });
      const font = {
        "font-style": "normal",
        "font-variant": "normal",
        "font-weight": "normal"
      };
      const fontFamilies = /* @__PURE__ */ new Set();
      if (fontBlockB) {
        const [lineB, ...familiesB] = fontBlockB.trim().split(" ");
        if (!lineB || !{
          parse: lineHeight_export_parse,
          isValid: lineHeight_export_isValid,
          definition: lineHeight_export_definition
        }.isValid(lineB) || !familiesB.length) {
          return;
        }
        const lineHeightB = {
          parse: lineHeight_export_parse,
          isValid: lineHeight_export_isValid,
          definition: lineHeight_export_definition
        }.parse(lineB);
        const familyB = familiesB.join(" ");
        if ({
          parse: fontFamily_export_parse,
          isValid: fontFamily_export_isValid,
          definition: fontFamily_export_definition
        }.isValid(familyB)) {
          fontFamilies.add({
            parse: fontFamily_export_parse,
            isValid: fontFamily_export_isValid,
            definition: fontFamily_export_definition
          }.parse(familyB));
        } else {
          return;
        }
        const parts = external_dependency_parsers_0.splitValue(fontBlockA.trim());
        const properties = ["font-style", "font-variant", "font-weight", "font-size"];
        for (const part of parts) {
          if (part === "normal") {
            continue;
          } else {
            for (const property of properties) {
              switch (property) {
                case "font-style":
                case "font-variant":
                case "font-weight":
                case "font-size": {
                  const value2 = font_local_var_shorthandFor.get(property);
                  if (value2.isValid(part)) {
                    font[property] = value2.parse(part);
                  }
                  break;
                }
                default:
              }
            }
          }
        }
        if (Object.hasOwn(font, "font-size")) {
          font["line-height"] = lineHeightB;
        } else {
          return;
        }
      } else {
        const revParts = [...external_dependency_parsers_0.splitValue(fontBlockA.trim())].reverse();
        const revFontFamily = [];
        const properties = ["font-style", "font-variant", "font-weight", "line-height"];
        font["font-style"] = "normal";
        font["font-variant"] = "normal";
        font["font-weight"] = "normal";
        font["line-height"] = "normal";
        let fontSizeA;
        for (const part of revParts) {
          if (fontSizeA) {
            if (part === "normal") {
              continue;
            } else {
              for (const property of properties) {
                switch (property) {
                  case "font-style":
                  case "font-variant":
                  case "font-weight":
                  case "line-height": {
                    const value2 = font_local_var_shorthandFor.get(property);
                    if (value2.isValid(part)) {
                      font[property] = value2.parse(part);
                    }
                    break;
                  }
                  default:
                }
              }
            }
          } else if ({
            parse: fontSize_export_parse,
            isValid: fontSize_export_isValid,
            definition: fontSize_export_definition
          }.isValid(part)) {
            fontSizeA = {
              parse: fontSize_export_parse,
              isValid: fontSize_export_isValid,
              definition: fontSize_export_definition
            }.parse(part);
          } else if ({
            parse: fontFamily_export_parse,
            isValid: fontFamily_export_isValid,
            definition: fontFamily_export_definition
          }.isValid(part)) {
            revFontFamily.push(part);
          } else {
            return;
          }
        }
        const family = revFontFamily.reverse().join(" ");
        if (fontSizeA && {
          parse: fontFamily_export_parse,
          isValid: fontFamily_export_isValid,
          definition: fontFamily_export_definition
        }.isValid(family)) {
          font["font-size"] = fontSizeA;
          fontFamilies.add({
            parse: fontFamily_export_parse,
            isValid: fontFamily_export_isValid,
            definition: fontFamily_export_definition
          }.parse(family));
        } else {
          return;
        }
      }
      for (const family of families) {
        if ({
          parse: fontFamily_export_parse,
          isValid: fontFamily_export_isValid,
          definition: fontFamily_export_definition
        }.isValid(family)) {
          fontFamilies.add({
            parse: fontFamily_export_parse,
            isValid: fontFamily_export_isValid,
            definition: fontFamily_export_definition
          }.parse(family));
        } else {
          return;
        }
      }
      font["font-family"] = [...fontFamilies].join(", ");
      return font;
    };
    font_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (v3 === "" || external_dependency_parsers_0.hasVarFunc(v3)) {
          for (const [key] of font_local_var_shorthandFor) {
            this._setProperty(key, "");
          }
          this._setProperty("font", v3);
        } else {
          const obj = font_export_parse(v3);
          if (!obj) {
            return;
          }
          const str = /* @__PURE__ */ new Set();
          for (const [key] of font_local_var_shorthandFor) {
            const val = obj[key];
            if (typeof val === "string") {
              this._setProperty(key, val);
              if (val && val !== "normal" && !str.has(val)) {
                if (key === "line-height") {
                  str.add(`/ ${val}`);
                } else {
                  str.add(val);
                }
              }
            }
          }
          this._setProperty("font", [...str].join(" "));
        }
      },
      get() {
        const val = this.getPropertyValue("font");
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return val;
        }
        const str = /* @__PURE__ */ new Set();
        for (const [key] of font_local_var_shorthandFor) {
          const v3 = this.getPropertyValue(key);
          if (external_dependency_parsers_0.hasVarFunc(v3)) {
            return "";
          }
          if (v3 && v3 !== "normal" && !str.has(v3)) {
            if (key === "line-height") {
              str.add(`/ ${v3}`);
            } else {
              str.add(`${v3}`);
            }
          }
        }
        return [...str].join(" ");
      },
      enumerable: true,
      configurable: true
    };
    var height_export_parse;
    var height_export_isValid;
    var height_export_definition;
    height_export_parse = function parse3(v3) {
      const dim = external_dependency_parsers_0.parseMeasurement(v3, true);
      if (dim) {
        return dim;
      }
      const keywords = ["auto", "min-content", "max-content", "fit-content"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    height_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof height_export_parse(v3) === "string";
    };
    height_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("height", height_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("height");
      },
      enumerable: true,
      configurable: true
    };
    var left_export_parse;
    var left_export_isValid;
    var left_export_definition;
    left_export_parse = function parse3(v3) {
      const dim = external_dependency_parsers_0.parseMeasurement(v3);
      if (dim) {
        return dim;
      }
      return external_dependency_parsers_0.parseKeyword(v3, ["auto"]);
    };
    left_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof left_export_parse(v3) === "string";
    };
    left_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("left", left_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("left");
      },
      enumerable: true,
      configurable: true
    };
    var lightingColor_export_parse;
    var lightingColor_export_isValid;
    var lightingColor_export_definition;
    lightingColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    lightingColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    lightingColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("lighting-color", lightingColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("lighting-color");
      },
      enumerable: true,
      configurable: true
    };
    var margin_export_parse;
    var margin_export_isValid;
    var margin_export_definition;
    var margin_local_var_positions = ["top", "right", "bottom", "left"];
    margin_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseMeasurement(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3, ["auto"]);
    };
    margin_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof margin_export_parse(v3) === "string";
    };
    margin_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._implicitSetter("margin", "", "", margin_export_isValid, margin_export_parse, margin_local_var_positions);
          this._setProperty("margin", v3);
        } else {
          this._implicitSetter("margin", "", v3, margin_export_isValid, margin_export_parse, margin_local_var_positions);
        }
      },
      get() {
        const val = this._implicitGetter("margin", margin_local_var_positions);
        if (val === "") {
          return this.getPropertyValue("margin");
        }
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return "";
        }
        return val;
      },
      enumerable: true,
      configurable: true
    };
    var marginBottom_export_parse;
    var marginBottom_export_isValid;
    var marginBottom_export_definition;
    marginBottom_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseMeasurement(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3, ["auto"]);
    };
    marginBottom_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof marginBottom_export_parse(v3) === "string";
    };
    marginBottom_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("margin", "");
          this._setProperty("margin-bottom", v3);
        } else {
          this._subImplicitSetter("margin", "bottom", v3, marginBottom_export_isValid, marginBottom_export_parse, ["top", "right", "bottom", "left"]);
        }
      },
      get() {
        return this.getPropertyValue("margin-bottom");
      },
      enumerable: true,
      configurable: true
    };
    var marginLeft_export_parse;
    var marginLeft_export_isValid;
    var marginLeft_export_definition;
    marginLeft_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseMeasurement(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3, ["auto"]);
    };
    marginLeft_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof marginLeft_export_parse(v3) === "string";
    };
    marginLeft_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("margin", "");
          this._setProperty("margin-left", v3);
        } else {
          this._subImplicitSetter("margin", "left", v3, marginLeft_export_isValid, marginLeft_export_parse, ["top", "right", "bottom", "left"]);
        }
      },
      get() {
        return this.getPropertyValue("margin-left");
      },
      enumerable: true,
      configurable: true
    };
    var marginRight_export_parse;
    var marginRight_export_isValid;
    var marginRight_export_definition;
    marginRight_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseMeasurement(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3, ["auto"]);
    };
    marginRight_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof marginRight_export_parse(v3) === "string";
    };
    marginRight_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("margin", "");
          this._setProperty("margin-right", v3);
        } else {
          this._subImplicitSetter("margin", "right", v3, marginRight_export_isValid, marginRight_export_parse, ["top", "right", "bottom", "left"]);
        }
      },
      get() {
        return this.getPropertyValue("margin-right");
      },
      enumerable: true,
      configurable: true
    };
    var marginTop_export_parse;
    var marginTop_export_isValid;
    var marginTop_export_definition;
    marginTop_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseMeasurement(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3, ["auto"]);
    };
    marginTop_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof marginTop_export_parse(v3) === "string";
    };
    marginTop_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("margin", "");
          this._setProperty("margin-top", v3);
        } else {
          this._subImplicitSetter("margin", "top", v3, marginTop_export_isValid, marginTop_export_parse, ["top", "right", "bottom", "left"]);
        }
      },
      get() {
        return this.getPropertyValue("margin-top");
      },
      enumerable: true,
      configurable: true
    };
    var opacity_export_parse;
    var opacity_export_isValid;
    var opacity_export_definition;
    opacity_export_parse = function parse3(v3) {
      let num = external_dependency_parsers_0.parseNumber(v3);
      if (num) {
        num = parseFloat(num);
        if (num < 0) {
          return "0";
        } else if (num > 1) {
          return "1";
        }
        return `${num}`;
      }
      let pct = external_dependency_parsers_0.parsePercent(v3);
      if (pct) {
        pct = parseFloat(pct);
        if (pct < 0) {
          return "0%";
        } else if (pct > 100) {
          return "100%";
        }
        return `${pct}%`;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    opacity_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof opacity_export_parse(v3) === "string";
    };
    opacity_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("opacity", opacity_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("opacity");
      },
      enumerable: true,
      configurable: true
    };
    var outlineColor_export_parse;
    var outlineColor_export_isValid;
    var outlineColor_export_definition;
    outlineColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    outlineColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    outlineColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("outline-color", outlineColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("outline-color");
      },
      enumerable: true,
      configurable: true
    };
    var padding_export_parse;
    var padding_export_isValid;
    var padding_export_definition;
    var padding_local_var_positions = ["top", "right", "bottom", "left"];
    padding_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseMeasurement(v3, true);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    padding_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof padding_export_parse(v3) === "string";
    };
    padding_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._implicitSetter("padding", "", "", padding_export_isValid, padding_export_parse, padding_local_var_positions);
          this._setProperty("padding", v3);
        } else {
          this._implicitSetter("padding", "", v3, padding_export_isValid, padding_export_parse, padding_local_var_positions);
        }
      },
      get() {
        const val = this._implicitGetter("padding", padding_local_var_positions);
        if (val === "") {
          return this.getPropertyValue("padding");
        }
        if (external_dependency_parsers_0.hasVarFunc(val)) {
          return "";
        }
        return val;
      },
      enumerable: true,
      configurable: true
    };
    var paddingBottom_export_parse;
    var paddingBottom_export_isValid;
    var paddingBottom_export_definition;
    paddingBottom_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseMeasurement(v3, true);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    paddingBottom_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof paddingBottom_export_parse(v3) === "string";
    };
    paddingBottom_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("padding", "");
          this._setProperty("padding-bottom", v3);
        } else {
          this._subImplicitSetter("padding", "bottom", v3, paddingBottom_export_isValid, paddingBottom_export_parse, ["top", "right", "bottom", "left"]);
        }
      },
      get() {
        return this.getPropertyValue("padding-bottom");
      },
      enumerable: true,
      configurable: true
    };
    var paddingLeft_export_parse;
    var paddingLeft_export_isValid;
    var paddingLeft_export_definition;
    paddingLeft_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseMeasurement(v3, true);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    paddingLeft_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof paddingLeft_export_parse(v3) === "string";
    };
    paddingLeft_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("padding", "");
          this._setProperty("padding-left", v3);
        } else {
          this._subImplicitSetter("padding", "left", v3, paddingLeft_export_isValid, paddingLeft_export_parse, ["top", "right", "bottom", "left"]);
        }
      },
      get() {
        return this.getPropertyValue("padding-left");
      },
      enumerable: true,
      configurable: true
    };
    var paddingRight_export_parse;
    var paddingRight_export_isValid;
    var paddingRight_export_definition;
    paddingRight_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseMeasurement(v3, true);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    paddingRight_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof paddingRight_export_parse(v3) === "string";
    };
    paddingRight_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("padding", "");
          this._setProperty("padding-right", v3);
        } else {
          this._subImplicitSetter("padding", "right", v3, paddingRight_export_isValid, paddingRight_export_parse, ["top", "right", "bottom", "left"]);
        }
      },
      get() {
        return this.getPropertyValue("padding-right");
      },
      enumerable: true,
      configurable: true
    };
    var paddingTop_export_parse;
    var paddingTop_export_isValid;
    var paddingTop_export_definition;
    paddingTop_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseMeasurement(v3, true);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    paddingTop_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof paddingTop_export_parse(v3) === "string";
    };
    paddingTop_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        if (external_dependency_parsers_0.hasVarFunc(v3)) {
          this._setProperty("padding", "");
          this._setProperty("padding-top", v3);
        } else {
          this._subImplicitSetter("padding", "top", v3, paddingTop_export_isValid, paddingTop_export_parse, ["top", "right", "bottom", "left"]);
        }
      },
      get() {
        return this.getPropertyValue("padding-top");
      },
      enumerable: true,
      configurable: true
    };
    var right_export_parse;
    var right_export_isValid;
    var right_export_definition;
    right_export_parse = function parse3(v3) {
      const dim = external_dependency_parsers_0.parseMeasurement(v3);
      if (dim) {
        return dim;
      }
      return external_dependency_parsers_0.parseKeyword(v3, ["auto"]);
    };
    right_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof right_export_parse(v3) === "string";
    };
    right_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("right", right_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("right");
      },
      enumerable: true,
      configurable: true
    };
    var stopColor_export_parse;
    var stopColor_export_isValid;
    var stopColor_export_definition;
    stopColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    stopColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    stopColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("stop-color", stopColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("stop-color");
      },
      enumerable: true,
      configurable: true
    };
    var top_export_parse;
    var top_export_isValid;
    var top_export_definition;
    top_export_parse = function parse3(v3) {
      const dim = external_dependency_parsers_0.parseMeasurement(v3);
      if (dim) {
        return dim;
      }
      return external_dependency_parsers_0.parseKeyword(v3, ["auto"]);
    };
    top_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof top_export_parse(v3) === "string";
    };
    top_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("top", top_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("top");
      },
      enumerable: true,
      configurable: true
    };
    var webkitBorderAfterColor_export_parse;
    var webkitBorderAfterColor_export_isValid;
    var webkitBorderAfterColor_export_definition;
    webkitBorderAfterColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    webkitBorderAfterColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    webkitBorderAfterColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("-webkit-border-after-color", webkitBorderAfterColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("-webkit-border-after-color");
      },
      enumerable: true,
      configurable: true
    };
    var webkitBorderBeforeColor_export_parse;
    var webkitBorderBeforeColor_export_isValid;
    var webkitBorderBeforeColor_export_definition;
    webkitBorderBeforeColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    webkitBorderBeforeColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    webkitBorderBeforeColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("-webkit-border-before-color", webkitBorderBeforeColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("-webkit-border-before-color");
      },
      enumerable: true,
      configurable: true
    };
    var webkitBorderEndColor_export_parse;
    var webkitBorderEndColor_export_isValid;
    var webkitBorderEndColor_export_definition;
    webkitBorderEndColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    webkitBorderEndColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    webkitBorderEndColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("-webkit-border-end-color", webkitBorderEndColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("-webkit-border-end-color");
      },
      enumerable: true,
      configurable: true
    };
    var webkitBorderStartColor_export_parse;
    var webkitBorderStartColor_export_isValid;
    var webkitBorderStartColor_export_definition;
    webkitBorderStartColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    webkitBorderStartColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    webkitBorderStartColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("-webkit-border-start-color", webkitBorderStartColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("-webkit-border-start-color");
      },
      enumerable: true,
      configurable: true
    };
    var webkitColumnRuleColor_export_parse;
    var webkitColumnRuleColor_export_isValid;
    var webkitColumnRuleColor_export_definition;
    webkitColumnRuleColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    webkitColumnRuleColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    webkitColumnRuleColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("-webkit-column-rule-color", webkitColumnRuleColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("-webkit-column-rule-color");
      },
      enumerable: true,
      configurable: true
    };
    var webkitTapHighlightColor_export_parse;
    var webkitTapHighlightColor_export_isValid;
    var webkitTapHighlightColor_export_definition;
    webkitTapHighlightColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    webkitTapHighlightColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    webkitTapHighlightColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("-webkit-tap-highlight-color", webkitTapHighlightColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("-webkit-tap-highlight-color");
      },
      enumerable: true,
      configurable: true
    };
    var webkitTextEmphasisColor_export_parse;
    var webkitTextEmphasisColor_export_isValid;
    var webkitTextEmphasisColor_export_definition;
    webkitTextEmphasisColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    webkitTextEmphasisColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    webkitTextEmphasisColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("-webkit-text-emphasis-color", webkitTextEmphasisColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("-webkit-text-emphasis-color");
      },
      enumerable: true,
      configurable: true
    };
    var webkitTextFillColor_export_parse;
    var webkitTextFillColor_export_isValid;
    var webkitTextFillColor_export_definition;
    webkitTextFillColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    webkitTextFillColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    webkitTextFillColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("-webkit-text-fill-color", webkitTextFillColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("-webkit-text-fill-color");
      },
      enumerable: true,
      configurable: true
    };
    var webkitTextStrokeColor_export_parse;
    var webkitTextStrokeColor_export_isValid;
    var webkitTextStrokeColor_export_definition;
    webkitTextStrokeColor_export_parse = function parse3(v3) {
      const val = external_dependency_parsers_0.parseColor(v3);
      if (val) {
        return val;
      }
      return external_dependency_parsers_0.parseKeyword(v3);
    };
    webkitTextStrokeColor_export_isValid = function isValid(v3) {
      if (v3 === "" || typeof external_dependency_parsers_0.parseKeyword(v3) === "string") {
        return true;
      }
      return external_dependency_parsers_0.isValidColor(v3);
    };
    webkitTextStrokeColor_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("-webkit-text-stroke-color", webkitTextStrokeColor_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("-webkit-text-stroke-color");
      },
      enumerable: true,
      configurable: true
    };
    var width_export_parse;
    var width_export_isValid;
    var width_export_definition;
    width_export_parse = function parse3(v3) {
      const dim = external_dependency_parsers_0.parseMeasurement(v3, true);
      if (dim) {
        return dim;
      }
      const keywords = ["auto", "min-content", "max-content", "fit-content"];
      return external_dependency_parsers_0.parseKeyword(v3, keywords);
    };
    width_export_isValid = function isValid(v3) {
      if (v3 === "") {
        return true;
      }
      return typeof width_export_parse(v3) === "string";
    };
    width_export_definition = {
      set(v3) {
        v3 = external_dependency_parsers_0.prepareValue(v3, this._global);
        this._setProperty("width", width_export_parse(v3));
      },
      get() {
        return this.getPropertyValue("width");
      },
      enumerable: true,
      configurable: true
    };
    module.exports = {
      backgroundImage: backgroundImage_export_definition,
      "background-image": backgroundImage_export_definition,
      backgroundPosition: backgroundPosition_export_definition,
      "background-position": backgroundPosition_export_definition,
      backgroundRepeat: backgroundRepeat_export_definition,
      "background-repeat": backgroundRepeat_export_definition,
      backgroundAttachment: backgroundAttachment_export_definition,
      "background-attachment": backgroundAttachment_export_definition,
      backgroundColor: backgroundColor_export_definition,
      "background-color": backgroundColor_export_definition,
      background: background_export_definition,
      borderWidth: borderWidth_export_definition,
      "border-width": borderWidth_export_definition,
      borderStyle: borderStyle_export_definition,
      "border-style": borderStyle_export_definition,
      borderColor: borderColor_export_definition,
      "border-color": borderColor_export_definition,
      border: border_export_definition,
      borderTopWidth: borderTopWidth_export_definition,
      "border-top-width": borderTopWidth_export_definition,
      borderTopStyle: borderTopStyle_export_definition,
      "border-top-style": borderTopStyle_export_definition,
      borderTopColor: borderTopColor_export_definition,
      "border-top-color": borderTopColor_export_definition,
      borderBottom: borderBottom_export_definition,
      "border-bottom": borderBottom_export_definition,
      borderBottomColor: borderBottomColor_export_definition,
      "border-bottom-color": borderBottomColor_export_definition,
      borderBottomStyle: borderBottomStyle_export_definition,
      "border-bottom-style": borderBottomStyle_export_definition,
      borderBottomWidth: borderBottomWidth_export_definition,
      "border-bottom-width": borderBottomWidth_export_definition,
      borderCollapse: borderCollapse_export_definition,
      "border-collapse": borderCollapse_export_definition,
      borderLeft: borderLeft_export_definition,
      "border-left": borderLeft_export_definition,
      borderLeftColor: borderLeftColor_export_definition,
      "border-left-color": borderLeftColor_export_definition,
      borderLeftStyle: borderLeftStyle_export_definition,
      "border-left-style": borderLeftStyle_export_definition,
      borderLeftWidth: borderLeftWidth_export_definition,
      "border-left-width": borderLeftWidth_export_definition,
      borderRight: borderRight_export_definition,
      "border-right": borderRight_export_definition,
      borderRightColor: borderRightColor_export_definition,
      "border-right-color": borderRightColor_export_definition,
      borderRightStyle: borderRightStyle_export_definition,
      "border-right-style": borderRightStyle_export_definition,
      borderRightWidth: borderRightWidth_export_definition,
      "border-right-width": borderRightWidth_export_definition,
      borderSpacing: borderSpacing_export_definition,
      "border-spacing": borderSpacing_export_definition,
      borderTop: borderTop_export_definition,
      "border-top": borderTop_export_definition,
      bottom: bottom_export_definition,
      clear: clear_export_definition,
      clip: clip_export_definition,
      color: color_export_definition,
      flexGrow: flexGrow_export_definition,
      "flex-grow": flexGrow_export_definition,
      flexShrink: flexShrink_export_definition,
      "flex-shrink": flexShrink_export_definition,
      flexBasis: flexBasis_export_definition,
      "flex-basis": flexBasis_export_definition,
      flex: flex_export_definition,
      float: float_export_definition,
      floodColor: floodColor_export_definition,
      "flood-color": floodColor_export_definition,
      fontStyle: fontStyle_export_definition,
      "font-style": fontStyle_export_definition,
      fontVariant: fontVariant_export_definition,
      "font-variant": fontVariant_export_definition,
      fontWeight: fontWeight_export_definition,
      "font-weight": fontWeight_export_definition,
      fontSize: fontSize_export_definition,
      "font-size": fontSize_export_definition,
      lineHeight: lineHeight_export_definition,
      "line-height": lineHeight_export_definition,
      fontFamily: fontFamily_export_definition,
      "font-family": fontFamily_export_definition,
      font: font_export_definition,
      height: height_export_definition,
      left: left_export_definition,
      lightingColor: lightingColor_export_definition,
      "lighting-color": lightingColor_export_definition,
      margin: margin_export_definition,
      marginBottom: marginBottom_export_definition,
      "margin-bottom": marginBottom_export_definition,
      marginLeft: marginLeft_export_definition,
      "margin-left": marginLeft_export_definition,
      marginRight: marginRight_export_definition,
      "margin-right": marginRight_export_definition,
      marginTop: marginTop_export_definition,
      "margin-top": marginTop_export_definition,
      opacity: opacity_export_definition,
      outlineColor: outlineColor_export_definition,
      "outline-color": outlineColor_export_definition,
      padding: padding_export_definition,
      paddingBottom: paddingBottom_export_definition,
      "padding-bottom": paddingBottom_export_definition,
      paddingLeft: paddingLeft_export_definition,
      "padding-left": paddingLeft_export_definition,
      paddingRight: paddingRight_export_definition,
      "padding-right": paddingRight_export_definition,
      paddingTop: paddingTop_export_definition,
      "padding-top": paddingTop_export_definition,
      right: right_export_definition,
      stopColor: stopColor_export_definition,
      "stop-color": stopColor_export_definition,
      top: top_export_definition,
      webkitBorderAfterColor: webkitBorderAfterColor_export_definition,
      "-webkit-border-after-color": webkitBorderAfterColor_export_definition,
      "WebkitBorderAfterColor": webkitBorderAfterColor_export_definition,
      webkitBorderBeforeColor: webkitBorderBeforeColor_export_definition,
      "-webkit-border-before-color": webkitBorderBeforeColor_export_definition,
      "WebkitBorderBeforeColor": webkitBorderBeforeColor_export_definition,
      webkitBorderEndColor: webkitBorderEndColor_export_definition,
      "-webkit-border-end-color": webkitBorderEndColor_export_definition,
      "WebkitBorderEndColor": webkitBorderEndColor_export_definition,
      webkitBorderStartColor: webkitBorderStartColor_export_definition,
      "-webkit-border-start-color": webkitBorderStartColor_export_definition,
      "WebkitBorderStartColor": webkitBorderStartColor_export_definition,
      webkitColumnRuleColor: webkitColumnRuleColor_export_definition,
      "-webkit-column-rule-color": webkitColumnRuleColor_export_definition,
      "WebkitColumnRuleColor": webkitColumnRuleColor_export_definition,
      webkitTapHighlightColor: webkitTapHighlightColor_export_definition,
      "-webkit-tap-highlight-color": webkitTapHighlightColor_export_definition,
      "WebkitTapHighlightColor": webkitTapHighlightColor_export_definition,
      webkitTextEmphasisColor: webkitTextEmphasisColor_export_definition,
      "-webkit-text-emphasis-color": webkitTextEmphasisColor_export_definition,
      "WebkitTextEmphasisColor": webkitTextEmphasisColor_export_definition,
      webkitTextFillColor: webkitTextFillColor_export_definition,
      "-webkit-text-fill-color": webkitTextFillColor_export_definition,
      "WebkitTextFillColor": webkitTextFillColor_export_definition,
      webkitTextStrokeColor: webkitTextStrokeColor_export_definition,
      "-webkit-text-stroke-color": webkitTextStrokeColor_export_definition,
      "WebkitTextStrokeColor": webkitTextStrokeColor_export_definition,
      width: width_export_definition
    };
  }
});

// ../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/utils/camelize.js
var require_camelize = __commonJS({
  "../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/utils/camelize.js"(exports) {
    "use strict";
    var { asciiLowercase } = require_strings();
    exports.dashedToCamelCase = function(dashed) {
      if (dashed.startsWith("--")) {
        return dashed;
      }
      let camel = "";
      let nextCap = false;
      let i5 = /^-webkit-/.test(dashed) ? 1 : 0;
      for (; i5 < dashed.length; i5++) {
        if (dashed[i5] !== "-") {
          camel += nextCap ? dashed[i5].toUpperCase() : dashed[i5];
          nextCap = false;
        } else {
          nextCap = true;
        }
      }
      return camel;
    };
    exports.camelCaseToDashed = function(camelCase) {
      if (camelCase.startsWith("--")) {
        return camelCase;
      }
      const dashed = asciiLowercase(camelCase.replace(/(?<=[a-z])[A-Z]/g, "-$&"));
      if (/^webkit-/.test(dashed)) {
        return `-${dashed}`;
      }
      return dashed;
    };
  }
});

// ../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/utils/propertyDescriptors.js
var require_propertyDescriptors = __commonJS({
  "../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/utils/propertyDescriptors.js"(exports, module) {
    "use strict";
    var prepareValue = require_parsers().prepareValue;
    module.exports.getPropertyDescriptor = function getPropertyDescriptor(property) {
      return {
        set(v3) {
          this._setProperty(property, prepareValue(v3));
        },
        get() {
          return this.getPropertyValue(property);
        },
        enumerable: true,
        configurable: true
      };
    };
  }
});

// ../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/CSSStyleDeclaration.js
var require_CSSStyleDeclaration2 = __commonJS({
  "../../node_modules/.pnpm/cssstyle@4.6.0/node_modules/cssstyle/lib/CSSStyleDeclaration.js"(exports) {
    "use strict";
    var CSSOM = require_lib21();
    var allExtraProperties = require_allExtraProperties();
    var allProperties = require_allProperties();
    var implementedProperties = require_implementedProperties();
    var generatedProperties = require_properties();
    var { hasVarFunc, parseKeyword, parseShorthand, prepareValue, splitValue } = require_parsers();
    var { dashedToCamelCase } = require_camelize();
    var { getPropertyDescriptor } = require_propertyDescriptors();
    var { asciiLowercase } = require_strings();
    var CSSStyleDeclaration = class {
      /**
       * @param {Function} onChangeCallback
       * @param {object} [opt]
       * @param {object} [opt.context] - Window, Element or CSSRule.
       */
      constructor(onChangeCallback, opt = {}) {
        Object.defineProperties(this, {
          constructor: {
            enumerable: false,
            writable: true
          },
          // Window
          _global: {
            value: globalThis,
            enumerable: false,
            writable: true
          },
          // Element
          _ownerNode: {
            value: null,
            enumerable: false,
            writable: true
          },
          // CSSRule
          _parentNode: {
            value: null,
            enumerable: false,
            writable: true
          },
          _onChange: {
            value: null,
            enumerable: false,
            writable: true
          },
          _values: {
            value: /* @__PURE__ */ new Map(),
            enumerable: false,
            writable: true
          },
          _priorities: {
            value: /* @__PURE__ */ new Map(),
            enumerable: false,
            writable: true
          },
          _length: {
            value: 0,
            enumerable: false,
            writable: true
          },
          _computed: {
            value: false,
            enumerable: false,
            writable: true
          },
          _readonly: {
            value: false,
            enumerable: false,
            writable: true
          },
          _setInProgress: {
            value: false,
            enumerable: false,
            writable: true
          }
        });
        const { context } = opt;
        if (context) {
          if (typeof context.getComputedStyle === "function") {
            this._global = context;
            this._computed = true;
            this._readonly = true;
          } else if (context.nodeType === 1 && Object.hasOwn(context, "style")) {
            this._global = context.ownerDocument.defaultView;
            this._ownerNode = context;
          } else if (Object.hasOwn(context, "parentRule")) {
            this._parentRule = context;
            const window2 = context?.parentStyleSheet?.ownerNode?.ownerDocument?.defaultView;
            if (window2) {
              this._global = window2;
            }
          }
        }
        if (typeof onChangeCallback === "function") {
          this._onChange = onChangeCallback;
        }
      }
      get cssText() {
        if (this._computed) {
          return "";
        }
        const properties = [];
        for (let i5 = 0; i5 < this._length; i5++) {
          const property = this[i5];
          const value2 = this.getPropertyValue(property);
          const priority = this.getPropertyPriority(property);
          if (priority === "important") {
            properties.push(`${property}: ${value2} !${priority};`);
          } else {
            properties.push(`${property}: ${value2};`);
          }
        }
        return properties.join(" ");
      }
      set cssText(value2) {
        if (this._readonly) {
          const msg = "cssText can not be modified.";
          const name = "NoModificationAllowedError";
          throw new this._global.DOMException(msg, name);
        }
        Array.prototype.splice.call(this, 0, this._length);
        this._values.clear();
        this._priorities.clear();
        if (this._parentRule || this._ownerNode && this._setInProgress) {
          return;
        }
        this._setInProgress = true;
        let dummyRule;
        try {
          dummyRule = CSSOM.parse(`#bogus{${value2}}`).cssRules[0].style;
        } catch {
          return;
        }
        for (let i5 = 0; i5 < dummyRule.length; i5++) {
          const property = dummyRule[i5];
          this.setProperty(
            property,
            dummyRule.getPropertyValue(property),
            dummyRule.getPropertyPriority(property)
          );
        }
        this._setInProgress = false;
        if (typeof this._onChange === "function") {
          this._onChange(this.cssText);
        }
      }
      get length() {
        return this._length;
      }
      // This deletes indices if the new length is less then the current length.
      // If the new length is more, it does nothing, the new indices will be
      // undefined until set.
      set length(len) {
        for (let i5 = len; i5 < this._length; i5++) {
          delete this[i5];
        }
        this._length = len;
      }
      // Readonly
      get parentRule() {
        return this._parentRule;
      }
      get cssFloat() {
        return this.getPropertyValue("float");
      }
      set cssFloat(value2) {
        this._setProperty("float", value2);
      }
      /**
       * @param {string} property
       */
      getPropertyPriority(property) {
        return this._priorities.get(property) || "";
      }
      /**
       * @param {string} property
       */
      getPropertyValue(property) {
        if (this._values.has(property)) {
          return this._values.get(property).toString();
        }
        return "";
      }
      /**
       * @param {...number} args
       */
      item(...args) {
        if (!args.length) {
          const msg = "1 argument required, but only 0 present.";
          throw new this._global.TypeError(msg);
        }
        let [index2] = args;
        index2 = parseInt(index2);
        if (Number.isNaN(index2) || index2 < 0 || index2 >= this._length) {
          return "";
        }
        return this[index2];
      }
      /**
       * @param {string} property
       */
      removeProperty(property) {
        if (this._readonly) {
          const msg = `Property ${property} can not be modified.`;
          const name = "NoModificationAllowedError";
          throw new this._global.DOMException(msg, name);
        }
        if (!this._values.has(property)) {
          return "";
        }
        const prevValue = this._values.get(property);
        this._values.delete(property);
        this._priorities.delete(property);
        const index2 = Array.prototype.indexOf.call(this, property);
        if (index2 >= 0) {
          Array.prototype.splice.call(this, index2, 1);
          if (typeof this._onChange === "function") {
            this._onChange(this.cssText);
          }
        }
        return prevValue;
      }
      /**
       * @param {string} property
       * @param {string} value
       * @param {string?} [priority] - "important" or null
       */
      setProperty(property, value2, priority = null) {
        if (this._readonly) {
          const msg = `Property ${property} can not be modified.`;
          const name = "NoModificationAllowedError";
          throw new this._global.DOMException(msg, name);
        }
        value2 = prepareValue(value2, this._global);
        if (value2 === "") {
          this[property] = "";
          this.removeProperty(property);
          return;
        }
        const isCustomProperty = property.startsWith("--");
        if (isCustomProperty) {
          this._setProperty(property, value2);
          return;
        }
        property = asciiLowercase(property);
        if (!allProperties.has(property) && !allExtraProperties.has(property)) {
          return;
        }
        this[property] = value2;
        if (priority) {
          this._priorities.set(property, priority);
        } else {
          this._priorities.delete(property);
        }
      }
    };
    Object.defineProperties(CSSStyleDeclaration.prototype, {
      _shorthandGetter: {
        /**
         * @param {string} property
         * @param {object} shorthandFor
         */
        value(property, shorthandFor) {
          const parts = [];
          for (const key of shorthandFor.keys()) {
            const val = this.getPropertyValue(key);
            if (hasVarFunc(val)) {
              return "";
            }
            if (val !== "") {
              parts.push(val);
            }
          }
          if (parts.length) {
            return parts.join(" ");
          }
          if (this._values.has(property)) {
            return this.getPropertyValue(property);
          }
          return "";
        },
        enumerable: false
      },
      _implicitGetter: {
        /**
         * @param {string} property
         * @param {Array.<string>} positions
         */
        value(property, positions = []) {
          const parts = [];
          for (const position of positions) {
            const val = this.getPropertyValue(`${property}-${position}`);
            if (val === "" || hasVarFunc(val)) {
              return "";
            }
            parts.push(val);
          }
          if (!parts.length) {
            return "";
          }
          switch (positions.length) {
            case 4: {
              const [top, right, bottom, left] = parts;
              if (top === right && top === bottom && right === left) {
                return top;
              }
              if (top !== right && top === bottom && right === left) {
                return `${top} ${right}`;
              }
              if (top !== right && top !== bottom && right === left) {
                return `${top} ${right} ${bottom}`;
              }
              return `${top} ${right} ${bottom} ${left}`;
            }
            case 2: {
              const [x, y3] = parts;
              if (x === y3) {
                return x;
              }
              return `${x} ${y3}`;
            }
            default:
              return "";
          }
        },
        enumerable: false
      },
      _setProperty: {
        /**
         * @param {string} property
         * @param {string} val
         * @param {string?} [priority]
         */
        value(property, val, priority = null) {
          if (typeof val !== "string") {
            return;
          }
          if (val === "") {
            this.removeProperty(property);
            return;
          }
          let originalText = "";
          if (typeof this._onChange === "function") {
            originalText = this.cssText;
          }
          if (this._values.has(property)) {
            const index2 = Array.prototype.indexOf.call(this, property);
            if (index2 < 0) {
              this[this._length] = property;
              this._length++;
            }
          } else {
            this[this._length] = property;
            this._length++;
          }
          this._values.set(property, val);
          if (priority) {
            this._priorities.set(property, priority);
          } else {
            this._priorities.delete(property);
          }
          if (typeof this._onChange === "function" && this.cssText !== originalText && !this._setInProgress) {
            this._onChange(this.cssText);
          }
        },
        enumerable: false
      },
      _shorthandSetter: {
        /**
         * @param {string} property
         * @param {string} val
         * @param {object} shorthandFor
         */
        value(property, val, shorthandFor) {
          val = prepareValue(val, this._global);
          const obj = parseShorthand(val, shorthandFor);
          if (!obj) {
            return;
          }
          for (const subprop of Object.keys(obj)) {
            const camel = dashedToCamelCase(subprop);
            this[camel] = obj[subprop];
            obj[subprop] = this[camel];
            this.removeProperty(subprop);
            if (obj[subprop] !== "") {
              this._values.set(subprop, obj[subprop]);
            }
          }
          for (const [subprop] of shorthandFor) {
            if (!Object.hasOwn(obj, subprop)) {
              this.removeProperty(subprop);
              this._values.delete(subprop);
            }
          }
          this.removeProperty(property);
          const calculated = this._shorthandGetter(property, shorthandFor);
          if (calculated !== "") {
            this._setProperty(property, calculated);
          }
          return obj;
        },
        enumerable: false
      },
      // Companion to shorthandSetter, but for the individual parts which takes
      // position value in the middle.
      _midShorthandSetter: {
        /**
         * @param {string} property
         * @param {string} val
         * @param {object} shorthandFor
         * @param {Array.<string>} positions
         */
        value(property, val, shorthandFor, positions = []) {
          val = prepareValue(val, this._global);
          const obj = this._shorthandSetter(property, val, shorthandFor);
          if (!obj) {
            return;
          }
          for (const position of positions) {
            this.removeProperty(`${property}-${position}`);
            this._values.set(`${property}-${position}`, val);
          }
        },
        enumerable: false
      },
      _implicitSetter: {
        /**
         * @param {string} prefix
         * @param {string} part
         * @param {string} val
         * @param {Function} isValid
         * @param {Function} parser
         * @param {Array.<string>} positions
         */
        value(prefix, part, val, isValid, parser, positions = []) {
          val = prepareValue(val, this._global);
          if (typeof val !== "string") {
            return;
          }
          part ||= "";
          if (part) {
            part = `-${part}`;
          }
          let parts = [];
          if (val === "") {
            parts.push(val);
          } else {
            const key = parseKeyword(val);
            if (key) {
              parts.push(key);
            } else {
              parts.push(...splitValue(val));
            }
          }
          if (!parts.length || parts.length > positions.length || !parts.every(isValid)) {
            return;
          }
          parts = parts.map((p3) => parser(p3));
          this._setProperty(`${prefix}${part}`, parts.join(" "));
          switch (positions.length) {
            case 4:
              if (parts.length === 1) {
                parts.push(parts[0], parts[0], parts[0]);
              } else if (parts.length === 2) {
                parts.push(parts[0], parts[1]);
              } else if (parts.length === 3) {
                parts.push(parts[1]);
              }
              break;
            case 2:
              if (parts.length === 1) {
                parts.push(parts[0]);
              }
              break;
            default:
          }
          for (let i5 = 0; i5 < positions.length; i5++) {
            const property = `${prefix}-${positions[i5]}${part}`;
            this.removeProperty(property);
            this._values.set(property, parts[i5]);
          }
        },
        enumerable: false
      },
      // Companion to implicitSetter, but for the individual parts.
      // This sets the individual value, and checks to see if all sub-parts are
      // set. If so, it sets the shorthand version and removes the individual parts
      // from the cssText.
      _subImplicitSetter: {
        /**
         * @param {string} prefix
         * @param {string} part
         * @param {string} val
         * @param {Function} isValid
         * @param {Function} parser
         * @param {Array.<string>} positions
         */
        value(prefix, part, val, isValid, parser, positions = []) {
          val = prepareValue(val, this._global);
          if (typeof val !== "string" || !isValid(val)) {
            return;
          }
          val = parser(val);
          const property = `${prefix}-${part}`;
          this._setProperty(property, val);
          const combinedPriority = this.getPropertyPriority(prefix);
          const subparts = [];
          for (const position of positions) {
            subparts.push(`${prefix}-${position}`);
          }
          const parts = subparts.map((subpart) => this._values.get(subpart));
          const priorities = subparts.map((subpart) => this.getPropertyPriority(subpart));
          const [priority] = priorities;
          if (priority === combinedPriority && parts.every((p3) => p3) && priorities.every((p3) => p3 === priority)) {
            for (let i5 = 0; i5 < subparts.length; i5++) {
              this.removeProperty(subparts[i5]);
              this._values.set(subparts[i5], parts[i5]);
            }
            this._setProperty(prefix, parts.join(" "), priority);
          } else {
            this.removeProperty(prefix);
            for (let i5 = 0; i5 < subparts.length; i5++) {
              const subPriority = subparts[i5] === property ? "" : priorities[i5] || combinedPriority;
              this._setProperty(subparts[i5], parts[i5], subPriority);
            }
          }
        },
        enumerable: false
      }
    });
    Object.defineProperties(CSSStyleDeclaration.prototype, generatedProperties);
    [...allProperties, ...allExtraProperties].forEach(function(property) {
      if (!implementedProperties.has(property)) {
        const declaration = getPropertyDescriptor(property);
        Object.defineProperty(CSSStyleDeclaration.prototype, property, declaration);
        const camel = dashedToCamelCase(property);
        Object.defineProperty(CSSStyleDeclaration.prototype, camel, declaration);
        if (/^webkit[A-Z]/.test(camel)) {
          const pascal = camel.replace(/^webkit/, "Webkit");
          Object.defineProperty(CSSStyleDeclaration.prototype, pascal, declaration);
        }
      }
    });
    exports.CSSStyleDeclaration = CSSStyleDeclaration;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/not-implemented.js
var require_not_implemented = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/not-implemented.js"(exports, module) {
    "use strict";
    module.exports = function(nameForErrorMessage, window2) {
      if (!window2) {
        return;
      }
      const error = new Error(`Not implemented: ${nameForErrorMessage}`);
      error.type = "not implemented";
      window2._virtualConsole.emit("jsdomError", error);
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/level2/style.js
var require_style = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/level2/style.js"(exports) {
    "use strict";
    var cssom = require_lib21();
    var cssstyle = require_CSSStyleDeclaration2();
    exports.addToCore = (core) => {
      core.StyleSheet = cssom.StyleSheet;
      core.MediaList = cssom.MediaList;
      core.CSSStyleSheet = cssom.CSSStyleSheet;
      core.CSSRule = cssom.CSSRule;
      core.CSSStyleRule = cssom.CSSStyleRule;
      core.CSSMediaRule = cssom.CSSMediaRule;
      core.CSSImportRule = cssom.CSSImportRule;
      core.CSSStyleDeclaration = cssstyle.CSSStyleDeclaration;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/level3/xpath.js
var require_xpath = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/level3/xpath.js"(exports, module) {
    module.exports = (core) => {
      var xpath = {};
      function getNodeName(nodeOrAttr) {
        return nodeOrAttr.constructor.name === "Attr" ? nodeOrAttr.name : nodeOrAttr.nodeName;
      }
      var Stream = xpath.Stream = function Stream2(str) {
        this.original = this.str = str;
        this.peeked = null;
        this.prev = null;
        this.prevprev = null;
      };
      Stream.prototype = {
        peek: function() {
          if (this.peeked) return this.peeked;
          var m3 = this.re.exec(this.str);
          if (!m3) return null;
          this.str = this.str.substr(m3[0].length);
          return this.peeked = m3[1];
        },
        /** Peek 2 tokens ahead. */
        peek2: function() {
          this.peek();
          var m3 = this.re.exec(this.str);
          if (!m3) return null;
          return m3[1];
        },
        pop: function() {
          var r4 = this.peek();
          this.peeked = null;
          this.prevprev = this.prev;
          this.prev = r4;
          return r4;
        },
        trypop: function(tokens) {
          var tok = this.peek();
          if (tok === tokens) return this.pop();
          if (Array.isArray(tokens)) {
            for (var i5 = 0; i5 < tokens.length; ++i5) {
              var t4 = tokens[i5];
              if (t4 == tok) return this.pop();
              ;
            }
          }
        },
        trypopfuncname: function() {
          var tok = this.peek();
          if (!this.isQnameRe.test(tok))
            return null;
          switch (tok) {
            case "comment":
            case "text":
            case "processing-instruction":
            case "node":
              return null;
          }
          if ("(" != this.peek2()) return null;
          return this.pop();
        },
        trypopaxisname: function() {
          var tok = this.peek();
          switch (tok) {
            case "ancestor":
            case "ancestor-or-self":
            case "attribute":
            case "child":
            case "descendant":
            case "descendant-or-self":
            case "following":
            case "following-sibling":
            case "namespace":
            case "parent":
            case "preceding":
            case "preceding-sibling":
            case "self":
              if ("::" == this.peek2()) return this.pop();
          }
          return null;
        },
        trypopnametest: function() {
          var tok = this.peek();
          if ("*" === tok || this.startsWithNcNameRe.test(tok)) return this.pop();
          return null;
        },
        trypopliteral: function() {
          var tok = this.peek();
          if (null == tok) return null;
          var first = tok.charAt(0);
          var last2 = tok.charAt(tok.length - 1);
          if ('"' === first && '"' === last2 || "'" === first && "'" === last2) {
            this.pop();
            return tok.substr(1, tok.length - 2) ?? null;
          }
          return null;
        },
        trypopnumber: function() {
          var tok = this.peek();
          if (this.isNumberRe.test(tok)) return parseFloat(this.pop()) ?? null;
          else return null;
        },
        trypopvarref: function() {
          var tok = this.peek();
          if (null == tok) return null;
          if ("$" === tok.charAt(0)) return this.pop().substr(1) ?? null;
          else return null;
        },
        position: function() {
          return this.original.length - this.str.length;
        }
      };
      (function() {
        var nameStartCharsExceptColon = "A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD";
        var nameCharExceptColon = nameStartCharsExceptColon + "\\-\\.0-9\xB7\u0300-\u036F\u203F-\u2040";
        var ncNameChars = "[" + nameStartCharsExceptColon + "][" + nameCharExceptColon + "]*";
        var qNameChars = ncNameChars + "(?::" + ncNameChars + ")?";
        var otherChars = "\\.\\.|[\\(\\)\\[\\].@,]|::";
        var operatorChars = "and|or|mod|div|//|!=|<=|>=|[*/|+\\-=<>]";
        var literal = `"[^"]*"|'[^']*'`;
        var numberChars = "[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+";
        var variableReference = "\\$" + qNameChars;
        var nameTestChars = "\\*|" + ncNameChars + ":\\*|" + qNameChars;
        var optionalSpace = "[ 	\r\n]*";
        var nodeType = "comment|text|processing-instruction|node";
        var re = new RegExp(
          // numberChars before otherChars so that leading-decimal doesn't become .
          "^" + optionalSpace + "(" + numberChars + "|" + otherChars + "|" + nameTestChars + "|" + operatorChars + "|" + literal + "|" + variableReference + ")"
          // operatorName | nodeType | functionName | axisName are lumped into
          // qName for now; we'll check them on pop.
        );
        Stream.prototype.re = re;
        Stream.prototype.startsWithNcNameRe = new RegExp("^" + ncNameChars);
        Stream.prototype.isQnameRe = new RegExp("^" + qNameChars + "$");
        Stream.prototype.isNumberRe = new RegExp("^" + numberChars + "$");
      })();
      var parse3 = xpath.parse = function parse4(stream7, a5) {
        var r4 = orExpr(stream7, a5);
        var x, unparsed = [];
        while (x = stream7.pop()) {
          unparsed.push(x);
        }
        if (unparsed.length)
          throw new XPathException(
            XPathException.INVALID_EXPRESSION_ERR,
            "Position " + stream7.position() + ": Unparsed tokens: " + unparsed.join(" ")
          );
        return r4;
      };
      function binaryL(subExpr, stream7, a5, ops) {
        var lhs = subExpr(stream7, a5);
        if (lhs == null) return null;
        var op;
        while (op = stream7.trypop(ops)) {
          var rhs = subExpr(stream7, a5);
          if (rhs == null)
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Position " + stream7.position() + ": Expected something after " + op
            );
          lhs = a5.node(op, lhs, rhs);
        }
        return lhs;
      }
      function binaryR(subExpr, stream7, a5, ops) {
        var lhs = subExpr(stream7, a5);
        if (lhs == null) return null;
        var op = stream7.trypop(ops);
        if (op) {
          var rhs = binaryR(stream7, a5);
          if (rhs == null)
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Position " + stream7.position() + ": Expected something after " + op
            );
          return a5.node(op, lhs, rhs);
        } else {
          return lhs;
        }
      }
      function locationPath(stream7, a5) {
        return absoluteLocationPath(stream7, a5) || relativeLocationPath(null, stream7, a5);
      }
      function absoluteLocationPath(stream7, a5) {
        var op = stream7.peek();
        if ("/" === op || "//" === op) {
          var lhs = a5.node("Root");
          return relativeLocationPath(lhs, stream7, a5, true);
        } else {
          return null;
        }
      }
      function relativeLocationPath(lhs, stream7, a5, isOnlyRootOk) {
        if (null == lhs) {
          lhs = step(stream7, a5);
          if (null == lhs) return lhs;
        }
        var op;
        while (op = stream7.trypop(["/", "//"])) {
          if ("//" === op) {
            lhs = a5.node(
              "/",
              lhs,
              a5.node("Axis", "descendant-or-self", "node", void 0)
            );
          }
          var rhs = step(stream7, a5);
          if (null == rhs && "/" === op && isOnlyRootOk) return lhs;
          else isOnlyRootOk = false;
          if (null == rhs)
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Position " + stream7.position() + ": Expected step after " + op
            );
          lhs = a5.node("/", lhs, rhs);
        }
        return lhs;
      }
      function step(stream7, a5) {
        var abbrStep = stream7.trypop([".", ".."]);
        if ("." === abbrStep)
          return a5.node("Axis", "self", "node");
        if (".." === abbrStep)
          return a5.node("Axis", "parent", "node");
        var axis = axisSpecifier(stream7, a5);
        var nodeType = nodeTypeTest(stream7, a5);
        var nodeName;
        if (null == nodeType) nodeName = nodeNameTest(stream7, a5);
        if (null == axis && null == nodeType && null == nodeName) return null;
        if (null == nodeType && null == nodeName)
          throw new XPathException(
            XPathException.INVALID_EXPRESSION_ERR,
            "Position " + stream7.position() + ": Expected nodeTest after axisSpecifier " + axis
          );
        if (null == axis) axis = "child";
        if (null == nodeType) {
          if ("attribute" === axis) nodeType = "attribute";
          else if ("namespace" === axis) nodeType = "namespace";
          else nodeType = "element";
        }
        var lhs = a5.node("Axis", axis, nodeType, nodeName);
        var pred;
        while (null != (pred = predicate(lhs, stream7, a5))) {
          lhs = pred;
        }
        return lhs;
      }
      function axisSpecifier(stream7, a5) {
        var attr = stream7.trypop("@");
        if (null != attr) return "attribute";
        var axisName = stream7.trypopaxisname();
        if (null != axisName) {
          var coloncolon = stream7.trypop("::");
          if (null == coloncolon)
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Position " + stream7.position() + ": Should not happen. Should be ::."
            );
          return axisName;
        }
      }
      function nodeTypeTest(stream7, a5) {
        if ("(" !== stream7.peek2()) {
          return null;
        }
        var type = stream7.trypop(["comment", "text", "processing-instruction", "node"]);
        if (null != type) {
          if (null == stream7.trypop("("))
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Position " + stream7.position() + ": Should not happen."
            );
          var param = void 0;
          if (type == "processing-instruction") {
            param = stream7.trypopliteral();
          }
          if (null == stream7.trypop(")"))
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Position " + stream7.position() + ": Expected close parens."
            );
          return type;
        }
      }
      function nodeNameTest(stream7, a5) {
        var name = stream7.trypopnametest();
        if (name != null) return name;
        else return null;
      }
      function predicate(lhs, stream7, a5) {
        if (null == stream7.trypop("[")) return null;
        var expr = orExpr(stream7, a5);
        if (null == expr)
          throw new XPathException(
            XPathException.INVALID_EXPRESSION_ERR,
            "Position " + stream7.position() + ": Expected expression after ["
          );
        if (null == stream7.trypop("]"))
          throw new XPathException(
            XPathException.INVALID_EXPRESSION_ERR,
            "Position " + stream7.position() + ": Expected ] after expression."
          );
        return a5.node("Predicate", lhs, expr);
      }
      function primaryExpr(stream7, a5) {
        var x = stream7.trypopliteral();
        if (null == x)
          x = stream7.trypopnumber();
        if (null != x) {
          return x;
        }
        var varRef = stream7.trypopvarref();
        if (null != varRef) return a5.node("VariableReference", varRef);
        var funCall = functionCall(stream7, a5);
        if (null != funCall) {
          return funCall;
        }
        if (stream7.trypop("(")) {
          var e4 = orExpr(stream7, a5);
          if (null == e4)
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Position " + stream7.position() + ": Expected expression after (."
            );
          if (null == stream7.trypop(")"))
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Position " + stream7.position() + ": Expected ) after expression."
            );
          return e4;
        }
        return null;
      }
      function functionCall(stream7, a5) {
        var name = stream7.trypopfuncname(stream7, a5);
        if (null == name) return null;
        if (null == stream7.trypop("("))
          throw new XPathException(
            XPathException.INVALID_EXPRESSION_ERR,
            "Position " + stream7.position() + ": Expected ( ) after function name."
          );
        var params = [];
        var first = true;
        while (null == stream7.trypop(")")) {
          if (!first && null == stream7.trypop(","))
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Position " + stream7.position() + ": Expected , between arguments of the function."
            );
          first = false;
          var param = orExpr(stream7, a5);
          if (param == null)
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Position " + stream7.position() + ": Expected expression as argument of function."
            );
          params.push(param);
        }
        return a5.node("FunctionCall", name, params);
      }
      function unionExpr(stream7, a5) {
        return binaryL(pathExpr, stream7, a5, "|");
      }
      function pathExpr(stream7, a5) {
        var filter3 = filterExpr(stream7, a5);
        if (null == filter3) {
          var loc = locationPath(stream7, a5);
          if (null == loc) {
            throw new Error();
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Position " + stream7.position() + ": The expression shouldn't be empty..."
            );
          }
          return a5.node("PathExpr", loc);
        }
        var rel = relativeLocationPath(filter3, stream7, a5, false);
        if (filter3 === rel) return rel;
        else return a5.node("PathExpr", rel);
      }
      function filterExpr(stream7, a5) {
        var primary = primaryExpr(stream7, a5);
        if (primary == null) return null;
        var pred, lhs = primary;
        while (null != (pred = predicate(lhs, stream7, a5))) {
          lhs = pred;
        }
        return lhs;
      }
      function orExpr(stream7, a5) {
        var orig = (stream7.peeked || "") + stream7.str;
        var r4 = binaryL(andExpr, stream7, a5, "or");
        var now = (stream7.peeked || "") + stream7.str;
        return r4;
      }
      function andExpr(stream7, a5) {
        return binaryL(equalityExpr, stream7, a5, "and");
      }
      function equalityExpr(stream7, a5) {
        return binaryL(relationalExpr, stream7, a5, ["=", "!="]);
      }
      function relationalExpr(stream7, a5) {
        return binaryL(additiveExpr, stream7, a5, ["<", ">", "<=", ">="]);
      }
      function additiveExpr(stream7, a5) {
        return binaryL(multiplicativeExpr, stream7, a5, ["+", "-"]);
      }
      function multiplicativeExpr(stream7, a5) {
        return binaryL(unaryExpr, stream7, a5, ["*", "div", "mod"]);
      }
      function unaryExpr(stream7, a5) {
        if (stream7.trypop("-")) {
          var e4 = unaryExpr(stream7, a5);
          if (null == e4)
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Position " + stream7.position() + ": Expected unary expression after -"
            );
          return a5.node("UnaryMinus", e4);
        } else return unionExpr(stream7, a5);
      }
      var astFactory = {
        node: function() {
          return Array.prototype.slice.call(arguments);
        }
      };
      function optimize(ast) {
      }
      function NodeMultiSet(isReverseAxis) {
        this.nodes = [];
        this.pos = [];
        this.lasts = [];
        this.nextPos = [];
        this.seriesIndexes = [];
        this.isReverseAxis = isReverseAxis;
        this._pushToNodes = isReverseAxis ? Array.prototype.unshift : Array.prototype.push;
      }
      NodeMultiSet.prototype = {
        pushSeries: function pushSeries() {
          this.nextPos.push(1);
          this.seriesIndexes.push(this.nodes.length);
        },
        popSeries: function popSeries() {
          console.assert(0 < this.nextPos.length, this.nextPos);
          var last2 = this.nextPos.pop() - 1, indexInPos = this.nextPos.length, seriesBeginIndex = this.seriesIndexes.pop(), seriesEndIndex = this.nodes.length;
          for (var i5 = seriesBeginIndex; i5 < seriesEndIndex; ++i5) {
            console.assert(indexInPos < this.lasts[i5].length);
            console.assert(void 0 === this.lasts[i5][indexInPos]);
            this.lasts[i5][indexInPos] = last2;
          }
        },
        finalize: function() {
          if (null == this.nextPos) return this;
          console.assert(0 === this.nextPos.length);
          var lastsJSON = JSON.stringify(this.lasts);
          for (var i5 = 0; i5 < this.lasts.length; ++i5) {
            for (var j = 0; j < this.lasts[i5].length; ++j) {
              console.assert(null != this.lasts[i5][j], i5 + "," + j + ":" + lastsJSON);
            }
          }
          this.pushSeries = this.popSeries = this.addNode = function() {
            throw new Error("Already finalized.");
          };
          return this;
        },
        addNode: function addNode(node) {
          console.assert(node);
          this._pushToNodes.call(this.nodes, node);
          this._pushToNodes.call(this.pos, this.nextPos.slice());
          this._pushToNodes.call(this.lasts, new Array(this.nextPos.length));
          for (var i5 = 0; i5 < this.nextPos.length; ++i5) this.nextPos[i5]++;
        },
        simplify: function() {
          this.finalize();
          return { nodes: this.nodes, pos: this.pos, lasts: this.lasts };
        }
      };
      function eachContext(nodeMultiSet) {
        var r4 = [];
        for (var i5 = 0; i5 < nodeMultiSet.nodes.length; i5++) {
          var node = nodeMultiSet.nodes[i5];
          if (!nodeMultiSet.pos) {
            r4.push({ nodes: [node], pos: [[i5 + 1]], lasts: [[nodeMultiSet.nodes.length]] });
          } else {
            for (var j = 0; j < nodeMultiSet.pos[i5].length; ++j) {
              r4.push({ nodes: [node], pos: [[nodeMultiSet.pos[i5][j]]], lasts: [[nodeMultiSet.lasts[i5][j]]] });
            }
          }
        }
        return r4;
      }
      function NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase) {
        this.nodeTypeNum = nodeTypeNum;
        this.nodeName = nodeName;
        this.shouldLowerCase = shouldLowerCase;
        this.nodeNameTest = null == nodeName ? this._alwaysTrue : shouldLowerCase ? this._nodeNameLowerCaseEquals : this._nodeNameEquals;
      }
      NodeMatcher.prototype = {
        matches: function matches(node) {
          if (0 === this.nodeTypeNum || this._nodeTypeMatches(node)) {
            return this.nodeNameTest(getNodeName(node));
          }
          return false;
        },
        _nodeTypeMatches(nodeOrAttr) {
          if (nodeOrAttr.constructor.name === "Attr" && this.nodeTypeNum === 2) {
            return true;
          }
          return nodeOrAttr.nodeType === this.nodeTypeNum;
        },
        _alwaysTrue: function(name) {
          return true;
        },
        _nodeNameEquals: function _nodeNameEquals(name) {
          return this.nodeName === name;
        },
        _nodeNameLowerCaseEquals: function _nodeNameLowerCaseEquals(name) {
          return this.nodeName === name.toLowerCase();
        }
      };
      function followingSiblingHelper(nodeList, nodeTypeNum, nodeName, shouldLowerCase, shift, peek, followingNode2, andSelf, isReverseAxis) {
        var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
        var nodeMultiSet = new NodeMultiSet(isReverseAxis);
        while (0 < nodeList.length) {
          var node = shift.call(nodeList);
          console.assert(node != null);
          node = followingNode2(node);
          nodeMultiSet.pushSeries();
          var numPushed = 1;
          while (null != node) {
            if (!andSelf && matcher.matches(node))
              nodeMultiSet.addNode(node);
            if (node === peek.call(nodeList)) {
              shift.call(nodeList);
              nodeMultiSet.pushSeries();
              numPushed++;
            }
            if (andSelf && matcher.matches(node))
              nodeMultiSet.addNode(node);
            node = followingNode2(node);
          }
          while (0 < numPushed--)
            nodeMultiSet.popSeries();
        }
        return nodeMultiSet;
      }
      function followingNonDescendantNode(node) {
        if (node.ownerElement) {
          if (node.ownerElement.firstChild)
            return node.ownerElement.firstChild;
          node = node.ownerElement;
        }
        do {
          if (node.nextSibling) return node.nextSibling;
        } while (node = node.parentNode);
        return null;
      }
      function followingNode(node) {
        if (node.ownerElement)
          node = node.ownerElement;
        if (null != node.firstChild)
          return node.firstChild;
        do {
          if (null != node.nextSibling) {
            return node.nextSibling;
          }
          node = node.parentNode;
        } while (node);
        return null;
      }
      function precedingNode(node) {
        if (node.ownerElement)
          return node.ownerElement;
        if (null != node.previousSibling) {
          node = node.previousSibling;
          while (null != node.lastChild) {
            node = node.lastChild;
          }
          return node;
        }
        if (null != node.parentNode) {
          return node.parentNode;
        }
        return null;
      }
      function followingHelper(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
        var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
        var nodeMultiSet = new NodeMultiSet(false);
        var cursor = nodeList[0];
        var unorderedFollowingStarts = [];
        for (var i5 = 0; i5 < nodeList.length; i5++) {
          var node = nodeList[i5];
          var start2 = followingNonDescendantNode(node);
          if (start2)
            unorderedFollowingStarts.push(start2);
        }
        if (0 === unorderedFollowingStarts.length)
          return { nodes: [] };
        var pos = [], nextPos = [];
        var started = 0;
        while (cursor = followingNode(cursor)) {
          for (var i5 = unorderedFollowingStarts.length - 1; i5 >= 0; i5--) {
            if (cursor === unorderedFollowingStarts[i5]) {
              nodeMultiSet.pushSeries();
              unorderedFollowingStarts.splice(i5, i5 + 1);
              started++;
            }
          }
          if (started && matcher.matches(cursor)) {
            nodeMultiSet.addNode(cursor);
          }
        }
        console.assert(0 === unorderedFollowingStarts.length);
        for (var i5 = 0; i5 < started; i5++)
          nodeMultiSet.popSeries();
        return nodeMultiSet.finalize();
      }
      function precedingHelper(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
        var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
        var cursor = nodeList.pop();
        if (null == cursor) return { nodes: {} };
        var r4 = { nodes: [], pos: [], lasts: [] };
        var nextParents = [cursor.parentNode || cursor.ownerElement], nextPos = [1];
        while (cursor = precedingNode(cursor)) {
          if (cursor === nodeList[nodeList.length - 1]) {
            nextParents.push(nodeList.pop());
            nextPos.push(1);
          }
          var matches = matcher.matches(cursor);
          var pos, someoneUsed = false;
          if (matches)
            pos = nextPos.slice();
          for (var i5 = 0; i5 < nextParents.length; ++i5) {
            if (cursor === nextParents[i5]) {
              nextParents[i5] = cursor.parentNode || cursor.ownerElement;
              if (matches) {
                pos[i5] = null;
              }
            } else {
              if (matches) {
                pos[i5] = nextPos[i5]++;
                someoneUsed = true;
              }
            }
          }
          if (someoneUsed) {
            r4.nodes.unshift(cursor);
            r4.pos.unshift(pos);
          }
        }
        for (var i5 = 0; i5 < r4.pos.length; ++i5) {
          var lasts = [];
          r4.lasts.push(lasts);
          for (var j = r4.pos[i5].length - 1; j >= 0; j--) {
            if (null == r4.pos[i5][j]) {
              r4.pos[i5].splice(j, j + 1);
            } else {
              lasts.unshift(nextPos[j] - 1);
            }
          }
        }
        return r4;
      }
      function descendantDfs(nodeMultiSet, node, remaining, matcher, andSelf, attrIndices, attrNodes) {
        while (0 < remaining.length && null != remaining[0].ownerElement) {
          var attr = remaining.shift();
          if (andSelf && matcher.matches(attr)) {
            attrNodes.push(attr);
            attrIndices.push(nodeMultiSet.nodes.length);
          }
        }
        if (null != node && !andSelf) {
          if (matcher.matches(node))
            nodeMultiSet.addNode(node);
        }
        var pushed = false;
        if (null == node) {
          if (0 === remaining.length) return;
          node = remaining.shift();
          nodeMultiSet.pushSeries();
          pushed = true;
        } else if (0 < remaining.length && node === remaining[0]) {
          nodeMultiSet.pushSeries();
          pushed = true;
          remaining.shift();
        }
        if (andSelf) {
          if (matcher.matches(node))
            nodeMultiSet.addNode(node);
        }
        var nodeList = node.childNodes;
        for (var j = 0; j < nodeList.length; ++j) {
          var child = nodeList[j];
          descendantDfs(nodeMultiSet, child, remaining, matcher, andSelf, attrIndices, attrNodes);
        }
        if (pushed) {
          nodeMultiSet.popSeries();
        }
      }
      function descenantHelper(nodeList, nodeTypeNum, nodeName, shouldLowerCase, andSelf) {
        var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
        var nodeMultiSet = new NodeMultiSet(false);
        var attrIndices = [], attrNodes = [];
        while (0 < nodeList.length) {
          descendantDfs(nodeMultiSet, null, nodeList, matcher, andSelf, attrIndices, attrNodes);
        }
        nodeMultiSet.finalize();
        for (var i5 = attrNodes.length - 1; i5 >= 0; --i5) {
          nodeMultiSet.nodes.splice(attrIndices[i5], attrIndices[i5], attrNodes[i5]);
          nodeMultiSet.pos.splice(attrIndices[i5], attrIndices[i5], [1]);
          nodeMultiSet.lasts.splice(attrIndices[i5], attrIndices[i5], [1]);
        }
        return nodeMultiSet;
      }
      function ancestorHelper(nodeList, nodeTypeNum, nodeName, shouldLowerCase, andSelf) {
        var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
        var ancestors = [];
        for (var i5 = 0; i5 < nodeList.length; ++i5) {
          var node = nodeList[i5];
          var isFirst = true;
          var a5 = [];
          while (null != node) {
            if (!isFirst || andSelf) {
              if (matcher.matches(node))
                a5.push(node);
            }
            isFirst = false;
            node = node.parentNode || node.ownerElement;
          }
          if (0 < a5.length)
            ancestors.push(a5);
        }
        var lasts = [];
        for (var i5 = 0; i5 < ancestors.length; ++i5) lasts.push(ancestors[i5].length);
        var nodeMultiSet = new NodeMultiSet(true);
        var newCtx = { nodes: [], pos: [], lasts: [] };
        while (0 < ancestors.length) {
          var pos = [ancestors[0].length];
          var last2 = [lasts[0]];
          var node = ancestors[0].pop();
          for (var i5 = ancestors.length - 1; i5 > 0; --i5) {
            if (node === ancestors[i5][ancestors[i5].length - 1]) {
              pos.push(ancestors[i5].length);
              last2.push(lasts[i5]);
              ancestors[i5].pop();
              if (0 === ancestors[i5].length) {
                ancestors.splice(i5, i5 + 1);
                lasts.splice(i5, i5 + 1);
              }
            }
          }
          if (0 === ancestors[0].length) {
            ancestors.shift();
            lasts.shift();
          }
          newCtx.nodes.push(node);
          newCtx.pos.push(pos);
          newCtx.lasts.push(last2);
        }
        return newCtx;
      }
      function addressVector(node) {
        var r4 = [node];
        if (null != node.ownerElement) {
          node = node.ownerElement;
          r4.push(-1);
        }
        while (null != node) {
          var i5 = 0;
          while (null != node.previousSibling) {
            node = node.previousSibling;
            i5++;
          }
          r4.push(i5);
          node = node.parentNode;
        }
        return r4;
      }
      function addressComparator(a5, b3) {
        var minlen = Math.min(a5.length - 1, b3.length - 1), alen = a5.length, blen = b3.length;
        if (a5[0] === b3[0]) return 0;
        var c6;
        for (var i5 = 0; i5 < minlen; ++i5) {
          c6 = a5[alen - i5 - 1] - b3[blen - i5 - 1];
          if (0 !== c6)
            break;
        }
        if (null == c6 || 0 === c6) {
          c6 = alen - blen;
        }
        if (0 === c6)
          c6 = getNodeName(a5) - getNodeName(b3);
        if (0 === c6)
          c6 = 1;
        return c6;
      }
      var sortUniqDocumentOrder = xpath.sortUniqDocumentOrder = function(nodes) {
        var a5 = [];
        for (var i5 = 0; i5 < nodes.length; i5++) {
          var node = nodes[i5];
          var v3 = addressVector(node);
          a5.push(v3);
        }
        a5.sort(addressComparator);
        var b3 = [];
        for (var i5 = 0; i5 < a5.length; i5++) {
          if (0 < i5 && a5[i5][0] === a5[i5 - 1][0])
            continue;
          b3.push(a5[i5][0]);
        }
        return b3;
      };
      function sortNodeMultiSet(nodeMultiSet) {
        var a5 = [];
        for (var i5 = 0; i5 < nodeMultiSet.nodes.length; i5++) {
          var v3 = addressVector(nodeMultiSet.nodes[i5]);
          a5.push({
            v: v3,
            n: nodeMultiSet.nodes[i5],
            p: nodeMultiSet.pos[i5],
            l: nodeMultiSet.lasts[i5]
          });
        }
        a5.sort(compare);
        var r4 = { nodes: [], pos: [], lasts: [] };
        for (var i5 = 0; i5 < a5.length; ++i5) {
          r4.nodes.push(a5[i5].n);
          r4.pos.push(a5[i5].p);
          r4.lasts.push(a5[i5].l);
        }
        function compare(x, y3) {
          return addressComparator(x.v, y3.v);
        }
        return r4;
      }
      function nodeAndAncestors(node) {
        var ancestors = [node];
        var p3 = node;
        while (p3 = p3.parentNode || p3.ownerElement) {
          ancestors.unshift(p3);
        }
        return ancestors;
      }
      function compareSiblings(a5, b3) {
        if (a5 === b3) return 0;
        var c6 = a5;
        while (c6 = c6.previousSibling) {
          if (c6 === b3)
            return 1;
        }
        c6 = b3;
        while (c6 = c6.previousSibling) {
          if (c6 === a5)
            return -1;
        }
        throw new Error("a and b are not siblings: " + xpath.stringifyObject(a5) + " vs " + xpath.stringifyObject(b3));
      }
      function mergeNodeLists(x, y3) {
        var a5, b3, aanc, banc, r4 = [];
        if ("object" !== typeof x)
          throw new XPathException(
            XPathException.INVALID_EXPRESSION_ERR,
            "Invalid LHS for | operator (expected node-set): " + x
          );
        if ("object" !== typeof y3)
          throw new XPathException(
            XPathException.INVALID_EXPRESSION_ERR,
            "Invalid LHS for | operator (expected node-set): " + y3
          );
        while (true) {
          if (null == a5) {
            a5 = x.shift();
            if (null != a5)
              aanc = addressVector(a5);
          }
          if (null == b3) {
            b3 = y3.shift();
            if (null != b3)
              banc = addressVector(b3);
          }
          if (null == a5 || null == b3) break;
          var c6 = addressComparator(aanc, banc);
          if (c6 < 0) {
            r4.push(a5);
            a5 = null;
            aanc = null;
          } else if (c6 > 0) {
            r4.push(b3);
            b3 = null;
            banc = null;
          } else if (getNodeName(a5) < getNodeName(b3)) {
            r4.push(a5);
            a5 = null;
            aanc = null;
          } else if (getNodeName(a5) > getNodeName(b3)) {
            r4.push(b3);
            b3 = null;
            banc = null;
          } else if (a5 !== b3) {
            r4.push(b3);
            b3 = null;
            banc = null;
          } else {
            console.assert(a5 === b3, c6);
            b3 = null;
            banc = null;
          }
        }
        while (a5) {
          r4.push(a5);
          a5 = x.shift();
        }
        while (b3) {
          r4.push(b3);
          b3 = y3.shift();
        }
        return r4;
      }
      function comparisonHelper(test3, x, y3, isNumericComparison) {
        var coersion;
        if (isNumericComparison)
          coersion = fn.number;
        else coersion = "boolean" === typeof x || "boolean" === typeof y3 ? fn["boolean"] : "number" === typeof x || "number" === typeof y3 ? fn.number : fn.string;
        if ("object" === typeof x && "object" === typeof y3) {
          var aMap = {};
          for (var i5 = 0; i5 < x.nodes.length; ++i5) {
            var xi = coersion({ nodes: [x.nodes[i5]] });
            for (var j = 0; j < y3.nodes.length; ++j) {
              var yj = coersion({ nodes: [y3.nodes[j]] });
              if (test3(xi, yj)) return true;
            }
          }
          return false;
        } else if ("object" === typeof x && x.nodes && x.nodes.length) {
          for (var i5 = 0; i5 < x.nodes.length; ++i5) {
            var xi = coersion({ nodes: [x.nodes[i5]] }), yc = coersion(y3);
            if (test3(xi, yc))
              return true;
          }
          return false;
        } else if ("object" === typeof y3 && x.nodes && x.nodes.length) {
          for (var i5 = 0; i5 < x.nodes.length; ++i5) {
            var yi = coersion({ nodes: [y3.nodes[i5]] }), xc = coersion(x);
            if (test3(xc, yi))
              return true;
          }
          return false;
        } else {
          var xc = coersion(x), yc = coersion(y3);
          return test3(xc, yc);
        }
      }
      var axes = xpath.axes = {
        "ancestor": function ancestor(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
          return ancestorHelper(
            nodeList,
            nodeTypeNum,
            nodeName,
            shouldLowerCase,
            false
          );
        },
        "ancestor-or-self": function ancestorOrSelf(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
          return ancestorHelper(
            nodeList,
            nodeTypeNum,
            nodeName,
            shouldLowerCase,
            true
          );
        },
        "attribute": function attribute(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
          var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
          var nodeMultiSet = new NodeMultiSet(false);
          if (null != nodeName) {
            for (var i5 = 0; i5 < nodeList.length; ++i5) {
              var node = nodeList[i5];
              if (null == node.getAttributeNode)
                continue;
              var attr = node.getAttributeNode(nodeName);
              if (null != attr && matcher.matches(attr)) {
                nodeMultiSet.pushSeries();
                nodeMultiSet.addNode(attr);
                nodeMultiSet.popSeries();
              }
            }
          } else {
            for (var i5 = 0; i5 < nodeList.length; ++i5) {
              var node = nodeList[i5];
              if (null != node.attributes) {
                nodeMultiSet.pushSeries();
                for (var j = 0; j < node.attributes.length; j++) {
                  var attr = node.attributes[j];
                  if (matcher.matches(attr))
                    nodeMultiSet.addNode(attr);
                }
                nodeMultiSet.popSeries();
              }
            }
          }
          return nodeMultiSet.finalize();
        },
        "child": function child(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
          var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
          var nodeMultiSet = new NodeMultiSet(false);
          for (var i5 = 0; i5 < nodeList.length; ++i5) {
            var n6 = nodeList[i5];
            if (n6.ownerElement)
              continue;
            if (n6.childNodes) {
              nodeMultiSet.pushSeries();
              var childList = 1 === nodeTypeNum && null != n6.children ? n6.children : n6.childNodes;
              for (var j = 0; j < childList.length; ++j) {
                var child2 = childList[j];
                if (matcher.matches(child2)) {
                  nodeMultiSet.addNode(child2);
                }
              }
              nodeMultiSet.popSeries();
            }
          }
          nodeMultiSet.finalize();
          return sortNodeMultiSet(nodeMultiSet);
        },
        "descendant": function descenant(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
          return descenantHelper(
            nodeList,
            nodeTypeNum,
            nodeName,
            shouldLowerCase,
            false
          );
        },
        "descendant-or-self": function descenantOrSelf(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
          return descenantHelper(
            nodeList,
            nodeTypeNum,
            nodeName,
            shouldLowerCase,
            true
          );
        },
        "following": function following(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
          return followingHelper(nodeList, nodeTypeNum, nodeName, shouldLowerCase);
        },
        "following-sibling": function followingSibling(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
          return followingSiblingHelper(
            nodeList,
            nodeTypeNum,
            nodeName,
            shouldLowerCase,
            Array.prototype.shift,
            function() {
              return this[0];
            },
            function(node) {
              return node.nextSibling;
            }
          );
        },
        "namespace": function namespace(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
        },
        "parent": function parent(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
          var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
          var nodes = [], pos = [];
          for (var i5 = 0; i5 < nodeList.length; ++i5) {
            var parent2 = nodeList[i5].parentNode || nodeList[i5].ownerElement;
            if (null == parent2)
              continue;
            if (!matcher.matches(parent2))
              continue;
            if (nodes.length > 0 && parent2 === nodes[nodes.length - 1])
              continue;
            nodes.push(parent2);
            pos.push([1]);
          }
          return { nodes, pos, lasts: pos };
        },
        "preceding": function preceding(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
          return precedingHelper(
            nodeList,
            nodeTypeNum,
            nodeName,
            shouldLowerCase
          );
        },
        "preceding-sibling": function precedingSibling(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
          return followingSiblingHelper(
            nodeList,
            nodeTypeNum,
            nodeName,
            shouldLowerCase,
            Array.prototype.pop,
            function() {
              return this[this.length - 1];
            },
            function(node) {
              return node.previousSibling;
            },
            false,
            true
          );
        },
        "self": function self2(nodeList, nodeTypeNum, nodeName, shouldLowerCase) {
          var nodes = [], pos = [];
          var matcher = new NodeMatcher(nodeTypeNum, nodeName, shouldLowerCase);
          for (var i5 = 0; i5 < nodeList.length; ++i5) {
            if (matcher.matches(nodeList[i5])) {
              nodes.push(nodeList[i5]);
              pos.push([1]);
            }
          }
          return { nodes, pos, lasts: pos };
        }
      };
      var fn = {
        "number": function number3(optObject) {
          if ("number" === typeof optObject)
            return optObject;
          if ("string" === typeof optObject)
            return parseFloat(optObject);
          if ("boolean" === typeof optObject)
            return +optObject;
          return fn.number(fn.string.call(this, optObject));
        },
        "string": function string(optObject) {
          if (null == optObject)
            return fn.string(this);
          if ("string" === typeof optObject || "boolean" === typeof optObject || "number" === typeof optObject)
            return "" + optObject;
          if (0 == optObject.nodes.length) return "";
          if (null != optObject.nodes[0].textContent)
            return optObject.nodes[0].textContent;
          return optObject.nodes[0].nodeValue;
        },
        "boolean": function booleanVal(x) {
          return "object" === typeof x ? x.nodes.length > 0 : !!x;
        },
        "last": function last2() {
          console.assert(Array.isArray(this.pos));
          console.assert(Array.isArray(this.lasts));
          console.assert(1 === this.pos.length);
          console.assert(1 === this.lasts.length);
          console.assert(1 === this.lasts[0].length);
          return this.lasts[0][0];
        },
        "position": function position() {
          console.assert(Array.isArray(this.pos));
          console.assert(Array.isArray(this.lasts));
          console.assert(1 === this.pos.length);
          console.assert(1 === this.lasts.length);
          console.assert(1 === this.pos[0].length);
          return this.pos[0][0];
        },
        "count": function count(nodeSet) {
          if ("object" !== typeof nodeSet)
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Position " + stream.position() + ": Function count(node-set) got wrong argument type: " + nodeSet
            );
          return nodeSet.nodes.length;
        },
        "id": function id(object) {
          var r4 = { nodes: [] };
          var doc = this.nodes[0].ownerDocument || this.nodes[0];
          console.assert(doc);
          var ids;
          if ("object" === typeof object) {
            ids = [];
            for (var i5 = 0; i5 < object.nodes.length; ++i5) {
              var idNode = object.nodes[i5];
              var idsString = fn.string({ nodes: [idNode] });
              var a5 = idsString.split(/[ \t\r\n]+/g);
              Array.prototype.push.apply(ids, a5);
            }
          } else {
            var idsString = fn.string(object);
            var a5 = idsString.split(/[ \t\r\n]+/g);
            ids = a5;
          }
          for (var i5 = 0; i5 < ids.length; ++i5) {
            var id2 = ids[i5];
            if (0 === id2.length)
              continue;
            var node = doc.getElementById(id2);
            if (null != node)
              r4.nodes.push(node);
          }
          r4.nodes = sortUniqDocumentOrder(r4.nodes);
          return r4;
        },
        "local-name": function(nodeSet) {
          if (null == nodeSet)
            return fn.name(this);
          if (null == nodeSet.nodes) {
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "argument to name() must be a node-set. got " + nodeSet
            );
          }
          return nodeSet.nodes[0].localName;
        },
        "namespace-uri": function(nodeSet) {
          throw new Error("not implemented yet");
        },
        "name": function(nodeSet) {
          if (null == nodeSet)
            return fn.name(this);
          if (null == nodeSet.nodes) {
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "argument to name() must be a node-set. got " + nodeSet
            );
          }
          return nodeSet.nodes[0].name;
        },
        "concat": function concat2(x) {
          var l4 = [];
          for (var i5 = 0; i5 < arguments.length; ++i5) {
            l4.push(fn.string(arguments[i5]));
          }
          return l4.join("");
        },
        "starts-with": function startsWith(a5, b3) {
          var as = fn.string(a5), bs = fn.string(b3);
          return as.substr(0, bs.length) === bs;
        },
        "contains": function contains(a5, b3) {
          var as = fn.string(a5), bs = fn.string(b3);
          var i5 = as.indexOf(bs);
          if (-1 === i5) return false;
          return true;
        },
        "substring-before": function substringBefore(a5, b3) {
          var as = fn.string(a5), bs = fn.string(b3);
          var i5 = as.indexOf(bs);
          if (-1 === i5) return "";
          return as.substr(0, i5);
        },
        "substring-after": function substringBefore(a5, b3) {
          var as = fn.string(a5), bs = fn.string(b3);
          var i5 = as.indexOf(bs);
          if (-1 === i5) return "";
          return as.substr(i5 + bs.length);
        },
        "substring": function substring(string, start2, optEnd) {
          if (null == string || null == start2) {
            throw new XPathException(
              XPathException.INVALID_EXPRESSION_ERR,
              "Must be at least 2 arguments to string()"
            );
          }
          var sString = fn.string(string), iStart = fn.round(start2), iEnd = optEnd == null ? null : fn.round(optEnd);
          if (iEnd == null)
            return sString.substr(iStart - 1);
          else
            return sString.substr(iStart - 1, iEnd);
        },
        "string-length": function stringLength(optString) {
          return fn.string.call(this, optString).length;
        },
        "normalize-space": function normalizeSpace(optString) {
          var s4 = fn.string.call(this, optString);
          return s4.replace(/[ \t\r\n]+/g, " ").replace(/^ | $/g, "");
        },
        "translate": function translate(string, from, to) {
          var sString = fn.string.call(this, string), sFrom = fn.string(from), sTo = fn.string(to);
          var eachCharRe = [];
          var map = {};
          for (var i5 = 0; i5 < sFrom.length; ++i5) {
            var c6 = sFrom.charAt(i5);
            map[c6] = sTo.charAt(i5);
            eachCharRe.push(
              c6.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08")
            );
          }
          var re = new RegExp(eachCharRe.join("|"), "g");
          return sString.replace(re, function(c7) {
            return map[c7];
          });
        },
        /// Boolean functions
        "not": function not2(x) {
          var bx = fn["boolean"](x);
          return !bx;
        },
        "true": function trueVal() {
          return true;
        },
        "false": function falseVal() {
          return false;
        },
        // TODO
        "lang": function lang(string) {
          throw new Error("Not implemented");
        },
        "sum": function sum(optNodeSet) {
          if (null == optNodeSet) return fn.sum(this);
          var sum2 = 0;
          for (var i5 = 0; i5 < optNodeSet.nodes.length; ++i5) {
            var node = optNodeSet.nodes[i5];
            var x = fn.number({ nodes: [node] });
            sum2 += x;
          }
          return sum2;
        },
        "floor": function floor(number3) {
          return Math.floor(fn.number(number3));
        },
        "ceiling": function ceiling(number3) {
          return Math.ceil(fn.number(number3));
        },
        "round": function round(number3) {
          return Math.round(fn.number(number3));
        }
      };
      var more = {
        UnaryMinus: function(x) {
          return -fn.number(x);
        },
        "+": function(x, y3) {
          return fn.number(x) + fn.number(y3);
        },
        "-": function(x, y3) {
          return fn.number(x) - fn.number(y3);
        },
        "*": function(x, y3) {
          return fn.number(x) * fn.number(y3);
        },
        "div": function(x, y3) {
          return fn.number(x) / fn.number(y3);
        },
        "mod": function(x, y3) {
          return fn.number(x) % fn.number(y3);
        },
        "<": function(x, y3) {
          return comparisonHelper(function(x2, y4) {
            return fn.number(x2) < fn.number(y4);
          }, x, y3, true);
        },
        "<=": function(x, y3) {
          return comparisonHelper(function(x2, y4) {
            return fn.number(x2) <= fn.number(y4);
          }, x, y3, true);
        },
        ">": function(x, y3) {
          return comparisonHelper(function(x2, y4) {
            return fn.number(x2) > fn.number(y4);
          }, x, y3, true);
        },
        ">=": function(x, y3) {
          return comparisonHelper(function(x2, y4) {
            return fn.number(x2) >= fn.number(y4);
          }, x, y3, true);
        },
        "and": function(x, y3) {
          return fn["boolean"](x) && fn["boolean"](y3);
        },
        "or": function(x, y3) {
          return fn["boolean"](x) || fn["boolean"](y3);
        },
        "|": function(x, y3) {
          return { nodes: mergeNodeLists(x.nodes, y3.nodes) };
        },
        "=": function(x, y3) {
          if ("object" === typeof x && "object" === typeof y3) {
            var aMap = {};
            for (var i5 = 0; i5 < x.nodes.length; ++i5) {
              var s4 = fn.string({ nodes: [x.nodes[i5]] });
              aMap[s4] = true;
            }
            for (var i5 = 0; i5 < y3.nodes.length; ++i5) {
              var s4 = fn.string({ nodes: [y3.nodes[i5]] });
              if (aMap[s4]) return true;
            }
            return false;
          } else {
            return comparisonHelper(function(x2, y4) {
              return x2 === y4;
            }, x, y3);
          }
        },
        "!=": function(x, y3) {
          if ("object" === typeof x && "object" === typeof y3) {
            if (0 === x.nodes.length || 0 === y3.nodes.length) return false;
            var aMap = {};
            for (var i5 = 0; i5 < x.nodes.length; ++i5) {
              var s4 = fn.string({ nodes: [x.nodes[i5]] });
              aMap[s4] = true;
            }
            for (var i5 = 0; i5 < y3.nodes.length; ++i5) {
              var s4 = fn.string({ nodes: [y3.nodes[i5]] });
              if (!aMap[s4]) return true;
            }
            return false;
          } else {
            return comparisonHelper(function(x2, y4) {
              return x2 !== y4;
            }, x, y3);
          }
        }
      };
      var nodeTypes = xpath.nodeTypes = {
        "node": 0,
        "attribute": 2,
        "comment": 8,
        // this.doc.COMMENT_NODE,
        "text": 3,
        // this.doc.TEXT_NODE,
        "processing-instruction": 7,
        // this.doc.PROCESSING_INSTRUCTION_NODE,
        "element": 1
        //this.doc.ELEMENT_NODE
      };
      var stringifyObject = xpath.stringifyObject = function stringifyObject2(ctx) {
        var seenKey = "seen" + Math.floor(Math.random() * 1e9);
        return JSON.stringify(helper(ctx));
        function helper(ctx2) {
          if (Array.isArray(ctx2)) {
            return ctx2.map(function(x) {
              return helper(x);
            });
          }
          if ("object" !== typeof ctx2) return ctx2;
          if (null == ctx2) return ctx2;
          if (null != ctx2.outerHTML) return ctx2.outerHTML;
          if (null != ctx2.nodeValue) return ctx2.nodeName + "=" + ctx2.nodeValue;
          if (ctx2[seenKey]) return "[circular]";
          ctx2[seenKey] = true;
          var nicer = {};
          for (var key in ctx2) {
            if (seenKey === key)
              continue;
            try {
              nicer[key] = helper(ctx2[key]);
            } catch (e4) {
              nicer[key] = "[exception: " + e4.message + "]";
            }
          }
          delete ctx2[seenKey];
          return nicer;
        }
      };
      var Evaluator = xpath.Evaluator = function Evaluator2(doc) {
        this.doc = doc;
      };
      Evaluator.prototype = {
        val: function val(ast, ctx) {
          console.assert(ctx.nodes);
          if ("number" === typeof ast || "string" === typeof ast) return ast;
          if (more[ast[0]]) {
            var evaluatedParams = [];
            for (var i5 = 1; i5 < ast.length; ++i5) {
              evaluatedParams.push(this.val(ast[i5], ctx));
            }
            var r4 = more[ast[0]].apply(ctx, evaluatedParams);
            return r4;
          }
          switch (ast[0]) {
            case "Root":
              return { nodes: [this.doc] };
            case "FunctionCall":
              var functionName = ast[1], functionParams = ast[2];
              if (null == fn[functionName])
                throw new XPathException(
                  XPathException.INVALID_EXPRESSION_ERR,
                  "Unknown function: " + functionName
                );
              var evaluatedParams = [];
              for (var i5 = 0; i5 < functionParams.length; ++i5) {
                evaluatedParams.push(this.val(functionParams[i5], ctx));
              }
              var r4 = fn[functionName].apply(ctx, evaluatedParams);
              return r4;
            case "Predicate":
              var lhs = this.val(ast[1], ctx);
              var ret = { nodes: [] };
              var contexts = eachContext(lhs);
              for (var i5 = 0; i5 < contexts.length; ++i5) {
                var singleNodeSet = contexts[i5];
                var rhs = this.val(ast[2], singleNodeSet);
                var success;
                if ("number" === typeof rhs) {
                  success = rhs === singleNodeSet.pos[0][0];
                } else {
                  success = fn["boolean"](rhs);
                }
                if (success) {
                  var node = singleNodeSet.nodes[0];
                  ret.nodes.push(node);
                  while (i5 + 1 < contexts.length && node === contexts[i5 + 1].nodes[0]) {
                    i5++;
                  }
                }
              }
              return ret;
            case "PathExpr":
              var x = this.val(ast[1], ctx);
              if (x.finalize) {
                return { nodes: x.nodes };
              } else {
                return x;
              }
            case "/":
              var lhs = this.val(ast[1], ctx);
              console.assert(null != lhs);
              var r4 = this.val(ast[2], lhs);
              console.assert(null != r4);
              return r4;
            case "Axis":
              var axis = ast[1], nodeType = ast[2], nodeTypeNum = nodeTypes[nodeType], shouldLowerCase = true, nodeName = ast[3] && shouldLowerCase ? ast[3].toLowerCase() : ast[3];
              nodeName = nodeName === "*" ? null : nodeName;
              if ("object" !== typeof ctx) return { nodes: [], pos: [] };
              var nodeList = ctx.nodes.slice();
              var r4 = axes[axis](nodeList, nodeTypeNum, nodeName, shouldLowerCase);
              return r4;
          }
        }
      };
      var evaluate = xpath.evaluate = function evaluate2(expr, doc, context) {
        var stream7 = new Stream(expr);
        var ast = parse3(stream7, astFactory);
        var val = new Evaluator(doc).val(ast, { nodes: [context] });
        return val;
      };
      var XPathException = xpath.XPathException = function XPathException2(code, message) {
        var e4 = new Error(message);
        e4.name = "XPathException";
        e4.code = code;
        return e4;
      };
      XPathException.INVALID_EXPRESSION_ERR = 51;
      XPathException.TYPE_ERR = 52;
      var XPathEvaluator = xpath.XPathEvaluator = function XPathEvaluator2() {
      };
      XPathEvaluator.prototype = {
        createExpression: function(expression, resolver) {
          return new XPathExpression(expression, resolver);
        },
        createNSResolver: function(nodeResolver) {
        },
        evaluate: function evaluate2(expression, contextNode, resolver, type, result) {
          var expr = new XPathExpression(expression, resolver);
          return expr.evaluate(contextNode, type, result);
        }
      };
      var XPathExpression = xpath.XPathExpression = function XPathExpression2(expression, resolver, optDoc) {
        var stream7 = new Stream(expression);
        this._ast = parse3(stream7, astFactory);
        this._doc = optDoc;
      };
      XPathExpression.prototype = {
        evaluate: function evaluate2(contextNode, type, result) {
          if (null == contextNode.nodeType)
            throw new Error("bad argument (expected context node): " + contextNode);
          var doc = contextNode.ownerDocument || contextNode;
          if (null != this._doc && this._doc !== doc) {
            throw new core.DOMException(
              core.DOMException.WRONG_DOCUMENT_ERR,
              "The document must be the same as the context node's document."
            );
          }
          var evaluator = new Evaluator(doc);
          var value2 = evaluator.val(this._ast, { nodes: [contextNode] });
          if (XPathResult.NUMBER_TYPE === type)
            value2 = fn.number(value2);
          else if (XPathResult.STRING_TYPE === type)
            value2 = fn.string(value2);
          else if (XPathResult.BOOLEAN_TYPE === type)
            value2 = fn["boolean"](value2);
          else if (XPathResult.ANY_TYPE !== type && XPathResult.UNORDERED_NODE_ITERATOR_TYPE !== type && XPathResult.ORDERED_NODE_ITERATOR_TYPE !== type && XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE !== type && XPathResult.ORDERED_NODE_SNAPSHOT_TYPE !== type && XPathResult.ANY_UNORDERED_NODE_TYPE !== type && XPathResult.FIRST_ORDERED_NODE_TYPE !== type)
            throw new core.DOMException(
              core.DOMException.NOT_SUPPORTED_ERR,
              "You must provide an XPath result type (0=any)."
            );
          else if (XPathResult.ANY_TYPE !== type && "object" !== typeof value2)
            throw new XPathException(
              XPathException.TYPE_ERR,
              "Value should be a node-set: " + value2
            );
          return new XPathResult(doc, value2, type);
        }
      };
      var XPathResult = xpath.XPathResult = function XPathResult2(doc, value2, resultType) {
        this._value = value2;
        this._resultType = resultType;
        this._i = 0;
      };
      XPathResult.ANY_TYPE = 0;
      XPathResult.NUMBER_TYPE = 1;
      XPathResult.STRING_TYPE = 2;
      XPathResult.BOOLEAN_TYPE = 3;
      XPathResult.UNORDERED_NODE_ITERATOR_TYPE = 4;
      XPathResult.ORDERED_NODE_ITERATOR_TYPE = 5;
      XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE = 6;
      XPathResult.ORDERED_NODE_SNAPSHOT_TYPE = 7;
      XPathResult.ANY_UNORDERED_NODE_TYPE = 8;
      XPathResult.FIRST_ORDERED_NODE_TYPE = 9;
      var proto = {
        // XPathResultType
        get resultType() {
          if (this._resultType) return this._resultType;
          switch (typeof this._value) {
            case "number":
              return XPathResult.NUMBER_TYPE;
            case "string":
              return XPathResult.STRING_TYPE;
            case "boolean":
              return XPathResult.BOOLEAN_TYPE;
            default:
              return XPathResult.UNORDERED_NODE_ITERATOR_TYPE;
          }
        },
        get numberValue() {
          if (XPathResult.NUMBER_TYPE !== this.resultType)
            throw new XPathException(
              XPathException.TYPE_ERR,
              "You should have asked for a NUMBER_TYPE."
            );
          return this._value;
        },
        get stringValue() {
          if (XPathResult.STRING_TYPE !== this.resultType)
            throw new XPathException(
              XPathException.TYPE_ERR,
              "You should have asked for a STRING_TYPE."
            );
          return this._value;
        },
        get booleanValue() {
          if (XPathResult.BOOLEAN_TYPE !== this.resultType)
            throw new XPathException(
              XPathException.TYPE_ERR,
              "You should have asked for a BOOLEAN_TYPE."
            );
          return this._value;
        },
        get singleNodeValue() {
          if (XPathResult.ANY_UNORDERED_NODE_TYPE !== this.resultType && XPathResult.FIRST_ORDERED_NODE_TYPE !== this.resultType)
            throw new XPathException(
              XPathException.TYPE_ERR,
              "You should have asked for a FIRST_ORDERED_NODE_TYPE."
            );
          return this._value.nodes[0] || null;
        },
        get invalidIteratorState() {
          if (XPathResult.UNORDERED_NODE_ITERATOR_TYPE !== this.resultType && XPathResult.ORDERED_NODE_ITERATOR_TYPE !== this.resultType)
            return false;
          return !!this._invalidated;
        },
        get snapshotLength() {
          if (XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE !== this.resultType && XPathResult.ORDERED_NODE_SNAPSHOT_TYPE !== this.resultType)
            throw new XPathException(
              XPathException.TYPE_ERR,
              "You should have asked for a ORDERED_NODE_SNAPSHOT_TYPE."
            );
          return this._value.nodes.length;
        },
        iterateNext: function iterateNext() {
          if (XPathResult.UNORDERED_NODE_ITERATOR_TYPE !== this.resultType && XPathResult.ORDERED_NODE_ITERATOR_TYPE !== this.resultType)
            throw new XPathException(
              XPathException.TYPE_ERR,
              "You should have asked for a ORDERED_NODE_ITERATOR_TYPE."
            );
          if (this.invalidIteratorState)
            throw new core.DOMException(
              core.DOMException.INVALID_STATE_ERR,
              "The document has been mutated since the result was returned"
            );
          return this._value.nodes[this._i++] || null;
        },
        snapshotItem: function snapshotItem(index2) {
          if (XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE !== this.resultType && XPathResult.ORDERED_NODE_SNAPSHOT_TYPE !== this.resultType)
            throw new XPathException(
              XPathException.TYPE_ERR,
              "You should have asked for a ORDERED_NODE_SNAPSHOT_TYPE."
            );
          return this._value.nodes[index2] || null;
        }
      };
      XPathResult.prototype = Object.create(
        XPathResult,
        Object.keys(proto).reduce(function(descriptors, name) {
          descriptors[name] = Object.getOwnPropertyDescriptor(proto, name);
          return descriptors;
        }, {
          constructor: {
            value: XPathResult,
            writable: true,
            configurable: true
          }
        })
      );
      core.XPathException = XPathException;
      core.XPathExpression = XPathExpression;
      core.XPathResult = XPathResult;
      core.XPathEvaluator = XPathEvaluator;
      core.Document.prototype.createExpression = XPathEvaluator.prototype.createExpression;
      core.Document.prototype.createNSResolver = XPathEvaluator.prototype.createNSResolver;
      core.Document.prototype.evaluate = XPathEvaluator.prototype.evaluate;
      return xpath;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/webidl/DOMException-impl.js
var require_DOMException_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/webidl/DOMException-impl.js"(exports) {
    "use strict";
    var idlUtils = require_utils16();
    var legacyErrorCodes = {
      IndexSizeError: 1,
      HierarchyRequestError: 3,
      WrongDocumentError: 4,
      InvalidCharacterError: 5,
      NoModificationAllowedError: 7,
      NotFoundError: 8,
      NotSupportedError: 9,
      InUseAttributeError: 10,
      InvalidStateError: 11,
      SyntaxError: 12,
      InvalidModificationError: 13,
      NamespaceError: 14,
      InvalidAccessError: 15,
      TypeMismatchError: 17,
      SecurityError: 18,
      NetworkError: 19,
      AbortError: 20,
      URLMismatchError: 21,
      QuotaExceededError: 22,
      TimeoutError: 23,
      InvalidNodeTypeError: 24,
      DataCloneError: 25
    };
    exports.implementation = class DOMExceptionImpl {
      constructor(globalObject, [message, name]) {
        this.name = name;
        this.message = message;
      }
      get code() {
        return legacyErrorCodes[this.name] || 0;
      }
    };
    exports.init = (impl) => {
      if (Error.captureStackTrace) {
        const wrapper = idlUtils.wrapperForImpl(impl);
        Error.captureStackTrace(wrapper, wrapper.constructor);
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMException.js
var require_DOMException = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMException.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "DOMException";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'DOMException'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["DOMException"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class DOMException2 {
        constructor() {
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to construct 'DOMException': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = "";
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to construct 'DOMException': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = "Error";
            }
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of DOMException."
            );
          }
          return esValue[implSymbol]["name"];
        }
        get message() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get message' called on an object that is not a valid instance of DOMException."
            );
          }
          return esValue[implSymbol]["message"];
        }
        get code() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get code' called on an object that is not a valid instance of DOMException."
            );
          }
          return esValue[implSymbol]["code"];
        }
      }
      Object.defineProperties(DOMException2.prototype, {
        name: { enumerable: true },
        message: { enumerable: true },
        code: { enumerable: true },
        [Symbol.toStringTag]: { value: "DOMException", configurable: true },
        INDEX_SIZE_ERR: { value: 1, enumerable: true },
        DOMSTRING_SIZE_ERR: { value: 2, enumerable: true },
        HIERARCHY_REQUEST_ERR: { value: 3, enumerable: true },
        WRONG_DOCUMENT_ERR: { value: 4, enumerable: true },
        INVALID_CHARACTER_ERR: { value: 5, enumerable: true },
        NO_DATA_ALLOWED_ERR: { value: 6, enumerable: true },
        NO_MODIFICATION_ALLOWED_ERR: { value: 7, enumerable: true },
        NOT_FOUND_ERR: { value: 8, enumerable: true },
        NOT_SUPPORTED_ERR: { value: 9, enumerable: true },
        INUSE_ATTRIBUTE_ERR: { value: 10, enumerable: true },
        INVALID_STATE_ERR: { value: 11, enumerable: true },
        SYNTAX_ERR: { value: 12, enumerable: true },
        INVALID_MODIFICATION_ERR: { value: 13, enumerable: true },
        NAMESPACE_ERR: { value: 14, enumerable: true },
        INVALID_ACCESS_ERR: { value: 15, enumerable: true },
        VALIDATION_ERR: { value: 16, enumerable: true },
        TYPE_MISMATCH_ERR: { value: 17, enumerable: true },
        SECURITY_ERR: { value: 18, enumerable: true },
        NETWORK_ERR: { value: 19, enumerable: true },
        ABORT_ERR: { value: 20, enumerable: true },
        URL_MISMATCH_ERR: { value: 21, enumerable: true },
        QUOTA_EXCEEDED_ERR: { value: 22, enumerable: true },
        TIMEOUT_ERR: { value: 23, enumerable: true },
        INVALID_NODE_TYPE_ERR: { value: 24, enumerable: true },
        DATA_CLONE_ERR: { value: 25, enumerable: true }
      });
      Object.defineProperties(DOMException2, {
        INDEX_SIZE_ERR: { value: 1, enumerable: true },
        DOMSTRING_SIZE_ERR: { value: 2, enumerable: true },
        HIERARCHY_REQUEST_ERR: { value: 3, enumerable: true },
        WRONG_DOCUMENT_ERR: { value: 4, enumerable: true },
        INVALID_CHARACTER_ERR: { value: 5, enumerable: true },
        NO_DATA_ALLOWED_ERR: { value: 6, enumerable: true },
        NO_MODIFICATION_ALLOWED_ERR: { value: 7, enumerable: true },
        NOT_FOUND_ERR: { value: 8, enumerable: true },
        NOT_SUPPORTED_ERR: { value: 9, enumerable: true },
        INUSE_ATTRIBUTE_ERR: { value: 10, enumerable: true },
        INVALID_STATE_ERR: { value: 11, enumerable: true },
        SYNTAX_ERR: { value: 12, enumerable: true },
        INVALID_MODIFICATION_ERR: { value: 13, enumerable: true },
        NAMESPACE_ERR: { value: 14, enumerable: true },
        INVALID_ACCESS_ERR: { value: 15, enumerable: true },
        VALIDATION_ERR: { value: 16, enumerable: true },
        TYPE_MISMATCH_ERR: { value: 17, enumerable: true },
        SECURITY_ERR: { value: 18, enumerable: true },
        NETWORK_ERR: { value: 19, enumerable: true },
        ABORT_ERR: { value: 20, enumerable: true },
        URL_MISMATCH_ERR: { value: 21, enumerable: true },
        QUOTA_EXCEEDED_ERR: { value: 22, enumerable: true },
        TIMEOUT_ERR: { value: 23, enumerable: true },
        INVALID_NODE_TYPE_ERR: { value: 24, enumerable: true },
        DATA_CLONE_ERR: { value: 25, enumerable: true }
      });
      ctorRegistry[interfaceName] = DOMException2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: DOMException2
      });
    };
    var Impl = require_DOMException_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js
var require_EventListener = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (!utils2.isObject(value2)) {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      function callTheUserObjectsOperation(event) {
        let thisArg = utils2.tryWrapperForImpl(this);
        let O = value2;
        let X = O;
        if (typeof O !== "function") {
          X = O["handleEvent"];
          if (typeof X !== "function") {
            throw new globalObject.TypeError(`${context} does not correctly implement EventListener.`);
          }
          thisArg = O;
        }
        event = utils2.tryWrapperForImpl(event);
        let callResult = Reflect.apply(X, thisArg, [event]);
      }
      callTheUserObjectsOperation[utils2.wrapperSymbol] = value2;
      callTheUserObjectsOperation.objectReference = value2;
      return callTheUserObjectsOperation;
    };
    exports.install = (globalObject, globalNames) => {
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EventHandlerNonNull.js
var require_EventHandlerNonNull = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EventHandlerNonNull.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      function invokeTheCallbackFunction(event) {
        const thisArg = utils2.tryWrapperForImpl(this);
        let callResult;
        if (typeof value2 === "function") {
          event = utils2.tryWrapperForImpl(event);
          callResult = Reflect.apply(value2, thisArg, [event]);
        }
        callResult = conversions["any"](callResult, { context, globals: globalObject });
        return callResult;
      }
      invokeTheCallbackFunction.construct = (event) => {
        event = utils2.tryWrapperForImpl(event);
        let callResult = Reflect.construct(value2, [event]);
        callResult = conversions["any"](callResult, { context, globals: globalObject });
        return callResult;
      };
      invokeTheCallbackFunction[utils2.wrapperSymbol] = value2;
      invokeTheCallbackFunction.objectReference = value2;
      return invokeTheCallbackFunction;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js
var require_EventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      {
        const key = "bubbles";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, { context: context + " has member 'bubbles' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "cancelable";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'cancelable' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "composed";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'composed' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js
var require_ErrorEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventInit = require_EventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "colno";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unsigned long"](value2, {
            context: context + " has member 'colno' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "error";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["any"](value2, { context: context + " has member 'error' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
      {
        const key = "filename";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["USVString"](value2, {
            context: context + " has member 'filename' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = "";
        }
      }
      {
        const key = "lineno";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unsigned long"](value2, {
            context: context + " has member 'lineno' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "message";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["DOMString"](value2, {
            context: context + " has member 'message' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = "";
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/Event-impl.js
var require_Event_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/Event-impl.js"(exports, module) {
    "use strict";
    var idlUtils = require_utils16();
    var EventInit = require_EventInit();
    var EventImpl = class {
      constructor(globalObject, args, privateData) {
        const [type, eventInitDict = this.constructor.defaultInit] = args;
        this.type = type;
        this.bubbles = false;
        this.cancelable = false;
        for (const key in eventInitDict) {
          if (key in this.constructor.defaultInit) {
            this[key] = eventInitDict[key];
          }
        }
        for (const key in this.constructor.defaultInit) {
          if (!(key in this)) {
            this[key] = this.constructor.defaultInit[key];
          }
        }
        this.target = null;
        this.currentTarget = null;
        this.eventPhase = 0;
        this._globalObject = globalObject;
        this._initializedFlag = true;
        this._stopPropagationFlag = false;
        this._stopImmediatePropagationFlag = false;
        this._canceledFlag = false;
        this._inPassiveListenerFlag = false;
        this._dispatchFlag = false;
        this._path = [];
        this.isTrusted = privateData.isTrusted || false;
        this.timeStamp = Date.now();
      }
      // https://dom.spec.whatwg.org/#set-the-canceled-flag
      _setTheCanceledFlag() {
        if (this.cancelable && !this._inPassiveListenerFlag) {
          this._canceledFlag = true;
        }
      }
      get srcElement() {
        return this.target;
      }
      get returnValue() {
        return !this._canceledFlag;
      }
      set returnValue(v3) {
        if (v3 === false) {
          this._setTheCanceledFlag();
        }
      }
      get defaultPrevented() {
        return this._canceledFlag;
      }
      stopPropagation() {
        this._stopPropagationFlag = true;
      }
      get cancelBubble() {
        return this._stopPropagationFlag;
      }
      set cancelBubble(v3) {
        if (v3) {
          this._stopPropagationFlag = true;
        }
      }
      stopImmediatePropagation() {
        this._stopPropagationFlag = true;
        this._stopImmediatePropagationFlag = true;
      }
      preventDefault() {
        this._setTheCanceledFlag();
      }
      // https://dom.spec.whatwg.org/#dom-event-composedpath
      // Current implementation is based of https://whatpr.org/dom/699.html#dom-event-composedpath
      // due to a bug in composed path implementation https://github.com/whatwg/dom/issues/684
      composedPath() {
        const composedPath = [];
        const { currentTarget, _path: path3 } = this;
        if (path3.length === 0) {
          return composedPath;
        }
        composedPath.push(currentTarget);
        let currentTargetIndex = 0;
        let currentTargetHiddenSubtreeLevel = 0;
        for (let index2 = path3.length - 1; index2 >= 0; index2--) {
          const { item, rootOfClosedTree, slotInClosedTree } = path3[index2];
          if (rootOfClosedTree) {
            currentTargetHiddenSubtreeLevel++;
          }
          if (item === idlUtils.implForWrapper(currentTarget)) {
            currentTargetIndex = index2;
            break;
          }
          if (slotInClosedTree) {
            currentTargetHiddenSubtreeLevel--;
          }
        }
        let currentHiddenLevel = currentTargetHiddenSubtreeLevel;
        let maxHiddenLevel = currentTargetHiddenSubtreeLevel;
        for (let i5 = currentTargetIndex - 1; i5 >= 0; i5--) {
          const { item, rootOfClosedTree, slotInClosedTree } = path3[i5];
          if (rootOfClosedTree) {
            currentHiddenLevel++;
          }
          if (currentHiddenLevel <= maxHiddenLevel) {
            composedPath.unshift(idlUtils.wrapperForImpl(item));
          }
          if (slotInClosedTree) {
            currentHiddenLevel--;
            if (currentHiddenLevel < maxHiddenLevel) {
              maxHiddenLevel = currentHiddenLevel;
            }
          }
        }
        currentHiddenLevel = currentTargetHiddenSubtreeLevel;
        maxHiddenLevel = currentTargetHiddenSubtreeLevel;
        for (let index2 = currentTargetIndex + 1; index2 < path3.length; index2++) {
          const { item, rootOfClosedTree, slotInClosedTree } = path3[index2];
          if (slotInClosedTree) {
            currentHiddenLevel++;
          }
          if (currentHiddenLevel <= maxHiddenLevel) {
            composedPath.push(idlUtils.wrapperForImpl(item));
          }
          if (rootOfClosedTree) {
            currentHiddenLevel--;
            if (currentHiddenLevel < maxHiddenLevel) {
              maxHiddenLevel = currentHiddenLevel;
            }
          }
        }
        return composedPath;
      }
      _initialize(type, bubbles, cancelable) {
        this.type = type;
        this._initializedFlag = true;
        this._stopPropagationFlag = false;
        this._stopImmediatePropagationFlag = false;
        this._canceledFlag = false;
        this.isTrusted = false;
        this.target = null;
        this.bubbles = bubbles;
        this.cancelable = cancelable;
      }
      initEvent(type, bubbles, cancelable) {
        if (this._dispatchFlag) {
          return;
        }
        this._initialize(type, bubbles, cancelable);
      }
    };
    EventImpl.defaultInit = EventInit.convert(void 0, void 0);
    module.exports = {
      implementation: EventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Event.js
var require_Event = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Event.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventInit = require_EventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "Event";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Event'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Event"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    function getUnforgeables(globalObject) {
      let unforgeables = unforgeablesMap.get(globalObject);
      if (unforgeables === void 0) {
        unforgeables = /* @__PURE__ */ Object.create(null);
        utils2.define(unforgeables, {
          get isTrusted() {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'get isTrusted' called on an object that is not a valid instance of Event."
              );
            }
            return esValue[implSymbol]["isTrusted"];
          }
        });
        Object.defineProperties(unforgeables, {
          isTrusted: { configurable: false }
        });
        unforgeablesMap.set(globalObject, unforgeables);
      }
      return unforgeables;
    }
    exports._internalSetup = (wrapper, globalObject) => {
      utils2.define(wrapper, getUnforgeables(globalObject));
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var unforgeablesMap = /* @__PURE__ */ new WeakMap();
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker", "AudioWorklet"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Event2 {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'Event': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'Event': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = EventInit.convert(globalObject, curArg, { context: "Failed to construct 'Event': parameter 2" });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        composedPath() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'composedPath' called on an object that is not a valid instance of Event.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].composedPath());
        }
        stopPropagation() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'stopPropagation' called on an object that is not a valid instance of Event."
            );
          }
          return esValue[implSymbol].stopPropagation();
        }
        stopImmediatePropagation() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'stopImmediatePropagation' called on an object that is not a valid instance of Event."
            );
          }
          return esValue[implSymbol].stopImmediatePropagation();
        }
        preventDefault() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'preventDefault' called on an object that is not a valid instance of Event.");
          }
          return esValue[implSymbol].preventDefault();
        }
        initEvent(type) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'initEvent' called on an object that is not a valid instance of Event.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'initEvent' on 'Event': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'initEvent' on 'Event': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initEvent' on 'Event': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initEvent' on 'Event': parameter 3",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].initEvent(...args);
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get type' called on an object that is not a valid instance of Event.");
          }
          return esValue[implSymbol]["type"];
        }
        get target() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get target' called on an object that is not a valid instance of Event.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["target"]);
        }
        get srcElement() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get srcElement' called on an object that is not a valid instance of Event.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["srcElement"]);
        }
        get currentTarget() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get currentTarget' called on an object that is not a valid instance of Event."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["currentTarget"]);
        }
        get eventPhase() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get eventPhase' called on an object that is not a valid instance of Event.");
          }
          return esValue[implSymbol]["eventPhase"];
        }
        get cancelBubble() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get cancelBubble' called on an object that is not a valid instance of Event."
            );
          }
          return esValue[implSymbol]["cancelBubble"];
        }
        set cancelBubble(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set cancelBubble' called on an object that is not a valid instance of Event."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'cancelBubble' property on 'Event': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["cancelBubble"] = V;
        }
        get bubbles() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get bubbles' called on an object that is not a valid instance of Event.");
          }
          return esValue[implSymbol]["bubbles"];
        }
        get cancelable() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get cancelable' called on an object that is not a valid instance of Event.");
          }
          return esValue[implSymbol]["cancelable"];
        }
        get returnValue() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get returnValue' called on an object that is not a valid instance of Event."
            );
          }
          return esValue[implSymbol]["returnValue"];
        }
        set returnValue(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set returnValue' called on an object that is not a valid instance of Event."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'returnValue' property on 'Event': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["returnValue"] = V;
        }
        get defaultPrevented() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get defaultPrevented' called on an object that is not a valid instance of Event."
            );
          }
          return esValue[implSymbol]["defaultPrevented"];
        }
        get composed() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get composed' called on an object that is not a valid instance of Event.");
          }
          return esValue[implSymbol]["composed"];
        }
        get timeStamp() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get timeStamp' called on an object that is not a valid instance of Event.");
          }
          return esValue[implSymbol]["timeStamp"];
        }
      }
      Object.defineProperties(Event2.prototype, {
        composedPath: { enumerable: true },
        stopPropagation: { enumerable: true },
        stopImmediatePropagation: { enumerable: true },
        preventDefault: { enumerable: true },
        initEvent: { enumerable: true },
        type: { enumerable: true },
        target: { enumerable: true },
        srcElement: { enumerable: true },
        currentTarget: { enumerable: true },
        eventPhase: { enumerable: true },
        cancelBubble: { enumerable: true },
        bubbles: { enumerable: true },
        cancelable: { enumerable: true },
        returnValue: { enumerable: true },
        defaultPrevented: { enumerable: true },
        composed: { enumerable: true },
        timeStamp: { enumerable: true },
        [Symbol.toStringTag]: { value: "Event", configurable: true },
        NONE: { value: 0, enumerable: true },
        CAPTURING_PHASE: { value: 1, enumerable: true },
        AT_TARGET: { value: 2, enumerable: true },
        BUBBLING_PHASE: { value: 3, enumerable: true }
      });
      Object.defineProperties(Event2, {
        NONE: { value: 0, enumerable: true },
        CAPTURING_PHASE: { value: 1, enumerable: true },
        AT_TARGET: { value: 2, enumerable: true },
        BUBBLING_PHASE: { value: 3, enumerable: true }
      });
      ctorRegistry[interfaceName] = Event2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Event2
      });
    };
    var Impl = require_Event_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/ErrorEvent-impl.js
var require_ErrorEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/ErrorEvent-impl.js"(exports, module) {
    "use strict";
    var EventImpl = require_Event_impl().implementation;
    var ErrorEventInit = require_ErrorEventInit();
    var ErrorEventImpl = class extends EventImpl {
    };
    ErrorEventImpl.defaultInit = ErrorEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: ErrorEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js
var require_ErrorEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var ErrorEventInit = require_ErrorEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Event2 = require_Event();
    var interfaceName = "ErrorEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'ErrorEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["ErrorEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Event2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class ErrorEvent extends globalObject.Event {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'ErrorEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'ErrorEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = ErrorEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'ErrorEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get message() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get message' called on an object that is not a valid instance of ErrorEvent."
            );
          }
          return esValue[implSymbol]["message"];
        }
        get filename() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get filename' called on an object that is not a valid instance of ErrorEvent."
            );
          }
          return esValue[implSymbol]["filename"];
        }
        get lineno() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get lineno' called on an object that is not a valid instance of ErrorEvent."
            );
          }
          return esValue[implSymbol]["lineno"];
        }
        get colno() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get colno' called on an object that is not a valid instance of ErrorEvent.");
          }
          return esValue[implSymbol]["colno"];
        }
        get error() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get error' called on an object that is not a valid instance of ErrorEvent.");
          }
          return esValue[implSymbol]["error"];
        }
      }
      Object.defineProperties(ErrorEvent.prototype, {
        message: { enumerable: true },
        filename: { enumerable: true },
        lineno: { enumerable: true },
        colno: { enumerable: true },
        error: { enumerable: true },
        [Symbol.toStringTag]: { value: "ErrorEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = ErrorEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: ErrorEvent
      });
    };
    var Impl = require_ErrorEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/OnBeforeUnloadEventHandlerNonNull.js
var require_OnBeforeUnloadEventHandlerNonNull = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/OnBeforeUnloadEventHandlerNonNull.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      function invokeTheCallbackFunction(event) {
        const thisArg = utils2.tryWrapperForImpl(this);
        let callResult;
        if (typeof value2 === "function") {
          event = utils2.tryWrapperForImpl(event);
          callResult = Reflect.apply(value2, thisArg, [event]);
        }
        if (callResult === null || callResult === void 0) {
          callResult = null;
        } else {
          callResult = conversions["DOMString"](callResult, { context, globals: globalObject });
        }
        return callResult;
      }
      invokeTheCallbackFunction.construct = (event) => {
        event = utils2.tryWrapperForImpl(event);
        let callResult = Reflect.construct(value2, [event]);
        if (callResult === null || callResult === void 0) {
          callResult = null;
        } else {
          callResult = conversions["DOMString"](callResult, { context, globals: globalObject });
        }
        return callResult;
      };
      invokeTheCallbackFunction[utils2.wrapperSymbol] = value2;
      invokeTheCallbackFunction.objectReference = value2;
      return invokeTheCallbackFunction;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/OnErrorEventHandlerNonNull.js
var require_OnErrorEventHandlerNonNull = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/OnErrorEventHandlerNonNull.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      function invokeTheCallbackFunction(...args) {
        const thisArg = utils2.tryWrapperForImpl(this);
        let callResult;
        if (typeof value2 === "function") {
          for (let i5 = 0; i5 < Math.min(args.length, 5); i5++) {
            args[i5] = utils2.tryWrapperForImpl(args[i5]);
          }
          if (args.length < 1) {
            for (let i5 = args.length; i5 < 1; i5++) {
              args[i5] = void 0;
            }
          } else if (args.length > 5) {
            args.length = 5;
          }
          callResult = Reflect.apply(value2, thisArg, args);
        }
        callResult = conversions["any"](callResult, { context, globals: globalObject });
        return callResult;
      }
      invokeTheCallbackFunction.construct = (...args) => {
        for (let i5 = 0; i5 < Math.min(args.length, 5); i5++) {
          args[i5] = utils2.tryWrapperForImpl(args[i5]);
        }
        if (args.length < 1) {
          for (let i5 = args.length; i5 < 1; i5++) {
            args[i5] = void 0;
          }
        } else if (args.length > 5) {
          args.length = 5;
        }
        let callResult = Reflect.construct(value2, args);
        callResult = conversions["any"](callResult, { context, globals: globalObject });
        return callResult;
      };
      invokeTheCallbackFunction[utils2.wrapperSymbol] = value2;
      invokeTheCallbackFunction.objectReference = value2;
      return invokeTheCallbackFunction;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/events.js
var require_events4 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/events.js"(exports, module) {
    "use strict";
    var Event2 = require_Event();
    var { tryImplForWrapper } = require_utils16();
    function createAnEvent(e4, globalObject, eventInterface = Event2, attributes2 = {}) {
      return eventInterface.createImpl(
        globalObject,
        [e4, attributes2],
        { isTrusted: attributes2.isTrusted !== false }
      );
    }
    function fireAnEvent(e4, target, eventInterface, attributes2, legacyTargetOverrideFlag) {
      const event = createAnEvent(e4, target._globalObject, eventInterface, attributes2);
      return tryImplForWrapper(target)._dispatch(event, legacyTargetOverrideFlag);
    }
    module.exports = {
      createAnEvent,
      fireAnEvent
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js
var require_runtime_script_errors = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js"(exports, module) {
    "use strict";
    var util3 = __require("util");
    var idlUtils = require_utils16();
    var ErrorEvent = require_ErrorEvent();
    var { createAnEvent } = require_events4();
    var errorReportingMode = Symbol("error reporting mode");
    function reportAnError(line2, col, target, errorObject, message, location) {
      if (target[errorReportingMode]) {
        return false;
      }
      target[errorReportingMode] = true;
      if (typeof message !== "string") {
        message = "uncaught exception: " + util3.inspect(errorObject);
      }
      const event = createAnEvent("error", target._globalObject, ErrorEvent, {
        cancelable: true,
        message,
        filename: location,
        lineno: line2,
        colno: col,
        error: errorObject
      });
      try {
        target._dispatch(event);
      } finally {
        target[errorReportingMode] = false;
        return event.defaultPrevented;
      }
    }
    module.exports = function reportException(window2, error, filenameHint) {
      const stack = error && error.stack;
      const lines = stack && stack.split("\n");
      let pieces;
      if (lines) {
        for (let i5 = 1; i5 < lines.length && !pieces; ++i5) {
          pieces = lines[i5].match(/at (?:(.+)\s+)?\(?(?:(.+?):(\d+):(\d+)|([^)]+))\)?/);
        }
      }
      const fileName = pieces && pieces[2] || filenameHint || window2._document.URL;
      const lineNumber = pieces && parseInt(pieces[3]) || 0;
      const columnNumber = pieces && parseInt(pieces[4]) || 0;
      const windowImpl = idlUtils.implForWrapper(window2);
      const handled = reportAnError(lineNumber, columnNumber, windowImpl, error, error && error.message, fileName);
      if (!handled) {
        const errorString = shouldBeDisplayedAsError(error) ? `[${error.name}: ${error.message}]` : util3.inspect(error);
        const jsdomError = new Error(`Uncaught ${errorString}`);
        jsdomError.detail = error;
        jsdomError.type = "unhandled exception";
        window2._virtualConsole.emit("jsdomError", jsdomError);
      }
    };
    function shouldBeDisplayedAsError(x) {
      return x && x.name && x.message !== void 0 && x.stack;
    }
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js
var require_create_event_accessor = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js"(exports) {
    "use strict";
    var idlUtils = require_utils16();
    var ErrorEvent = require_ErrorEvent();
    var EventHandlerNonNull = require_EventHandlerNonNull();
    var OnBeforeUnloadEventHandlerNonNull = require_OnBeforeUnloadEventHandlerNonNull();
    var OnErrorEventHandlerNonNull = require_OnErrorEventHandlerNonNull();
    var reportException = require_runtime_script_errors();
    exports.appendHandler = (el, eventName) => {
      idlUtils.tryImplForWrapper(el).addEventListener(eventName, (event) => {
        const callback = exports.getCurrentEventHandlerValue(el, eventName);
        if (callback === null) {
          return;
        }
        const specialError = ErrorEvent.isImpl(event) && event.type === "error" && event.currentTarget.constructor.name === "Window";
        let returnValue = null;
        if (typeof callback === "function") {
          if (specialError) {
            returnValue = callback.call(
              event.currentTarget,
              event.message,
              event.filename,
              event.lineno,
              event.colno,
              event.error
            );
          } else {
            returnValue = callback.call(event.currentTarget, event);
          }
        }
        if (event.type === "beforeunload") {
          if (returnValue !== null) {
            event._canceledFlag = true;
            if (event.returnValue === "") {
              event.returnValue = returnValue;
            }
          }
        } else if (specialError) {
          if (returnValue === true) {
            event._canceledFlag = true;
          }
        } else if (returnValue === false) {
          event._canceledFlag = true;
        }
      });
    };
    exports.setupForSimpleEventAccessors = (prototype2, events2) => {
      prototype2._getEventHandlerFor = function(event) {
        return this._eventHandlers ? this._eventHandlers[event] : void 0;
      };
      prototype2._setEventHandlerFor = function(event, handler) {
        if (!this._registeredHandlers) {
          this._registeredHandlers = /* @__PURE__ */ new Set();
          this._eventHandlers = /* @__PURE__ */ Object.create(null);
        }
        if (!this._registeredHandlers.has(event) && handler !== null) {
          this._registeredHandlers.add(event);
          exports.appendHandler(this, event);
        }
        this._eventHandlers[event] = handler;
      };
      for (const event of events2) {
        exports.createEventAccessor(prototype2, event);
      }
    };
    exports.getCurrentEventHandlerValue = (target, event) => {
      const value2 = target._getEventHandlerFor(event);
      if (!value2) {
        return null;
      }
      if (value2.body !== void 0) {
        let element, document2, fn;
        if (target.constructor.name === "Window") {
          element = null;
          document2 = idlUtils.implForWrapper(target.document);
        } else {
          element = target;
          document2 = element.ownerDocument;
        }
        const { body } = value2;
        const formOwner = element !== null && element.form ? element.form : null;
        const window2 = target.constructor.name === "Window" && target._document ? target : document2.defaultView;
        try {
          Function(body);
        } catch (e4) {
          if (window2) {
            reportException(window2, e4);
          }
          target._setEventHandlerFor(event, null);
          return null;
        }
        const createFunction = document2.defaultView.Function;
        if (event === "error" && element === null) {
          const sourceURL = document2 ? `
//# sourceURL=${document2.URL}` : "";
          fn = createFunction(`with (arguments[0]) { return function onerror(event, source, lineno, colno, error) {
${body}
}; }${sourceURL}`)(window2);
          fn = OnErrorEventHandlerNonNull.convert(window2, fn);
        } else {
          const calls = [];
          if (element !== null) {
            calls.push(idlUtils.wrapperForImpl(document2));
          }
          if (formOwner !== null) {
            calls.push(idlUtils.wrapperForImpl(formOwner));
          }
          if (element !== null) {
            calls.push(idlUtils.wrapperForImpl(element));
          }
          let wrapperBody = `with (arguments[0]) { return function on${event}(event) {
${body}
}; }`;
          for (const call of calls) {
            wrapperBody = `with (arguments[0]) { return function () {
${wrapperBody}
}; }`;
          }
          if (document2) {
            wrapperBody += `
//# sourceURL=${document2.URL}`;
          }
          fn = createFunction(wrapperBody)(window2);
          for (const call of calls) {
            fn = fn(call);
          }
          if (event === "beforeunload") {
            fn = OnBeforeUnloadEventHandlerNonNull.convert(window2, fn);
          } else {
            fn = EventHandlerNonNull.convert(window2, fn);
          }
        }
        target._setEventHandlerFor(event, fn);
      }
      return target._getEventHandlerFor(event);
    };
    exports.createEventAccessor = (obj, event) => {
      Object.defineProperty(obj, "on" + event, {
        configurable: true,
        enumerable: true,
        get() {
          return exports.getCurrentEventHandlerValue(this, event);
        },
        set(val) {
          this._setEventHandlerFor(event, val);
        }
      });
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/node-type.js
var require_node_type = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/node-type.js"(exports, module) {
    "use strict";
    module.exports = Object.freeze({
      ELEMENT_NODE: 1,
      ATTRIBUTE_NODE: 2,
      TEXT_NODE: 3,
      CDATA_SECTION_NODE: 4,
      // historical
      ENTITY_REFERENCE_NODE: 5,
      // historical
      ENTITY_NODE: 6,
      // historical
      PROCESSING_INSTRUCTION_NODE: 7,
      COMMENT_NODE: 8,
      DOCUMENT_NODE: 9,
      DOCUMENT_TYPE_NODE: 10,
      DOCUMENT_FRAGMENT_NODE: 11,
      NOTATION_NODE: 12
      // historical
    });
  }
});

// ../../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTreeNode.js
var require_SymbolTreeNode = __commonJS({
  "../../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTreeNode.js"(exports, module) {
    "use strict";
    module.exports = class SymbolTreeNode {
      constructor() {
        this.parent = null;
        this.previousSibling = null;
        this.nextSibling = null;
        this.firstChild = null;
        this.lastChild = null;
        this.childrenVersion = 0;
        this.childIndexCachedUpTo = null;
        this.cachedIndex = -1;
        this.cachedIndexVersion = NaN;
      }
      get isAttached() {
        return Boolean(this.parent || this.previousSibling || this.nextSibling);
      }
      get hasChildren() {
        return Boolean(this.firstChild);
      }
      childrenChanged() {
        this.childrenVersion = this.childrenVersion + 1 & 4294967295;
        this.childIndexCachedUpTo = null;
      }
      getCachedIndex(parentNode) {
        if (this.cachedIndexVersion !== parentNode.childrenVersion) {
          this.cachedIndexVersion = NaN;
          return -1;
        }
        return this.cachedIndex;
      }
      setCachedIndex(parentNode, index2) {
        this.cachedIndexVersion = parentNode.childrenVersion;
        this.cachedIndex = index2;
      }
    };
  }
});

// ../../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreePosition.js
var require_TreePosition = __commonJS({
  "../../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreePosition.js"(exports, module) {
    "use strict";
    module.exports = Object.freeze({
      // same as DOM DOCUMENT_POSITION_
      DISCONNECTED: 1,
      PRECEDING: 2,
      FOLLOWING: 4,
      CONTAINS: 8,
      CONTAINED_BY: 16
    });
  }
});

// ../../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreeIterator.js
var require_TreeIterator = __commonJS({
  "../../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreeIterator.js"(exports, module) {
    "use strict";
    var TREE = Symbol();
    var ROOT = Symbol();
    var NEXT = Symbol();
    var ITERATE_FUNC = Symbol();
    var TreeIterator = class {
      constructor(tree, root, firstResult, iterateFunction) {
        this[TREE] = tree;
        this[ROOT] = root;
        this[NEXT] = firstResult;
        this[ITERATE_FUNC] = iterateFunction;
      }
      next() {
        const tree = this[TREE];
        const iterateFunc = this[ITERATE_FUNC];
        const root = this[ROOT];
        if (!this[NEXT]) {
          return {
            done: true,
            value: root
          };
        }
        const value2 = this[NEXT];
        if (iterateFunc === 1) {
          this[NEXT] = tree._node(value2).previousSibling;
        } else if (iterateFunc === 2) {
          this[NEXT] = tree._node(value2).nextSibling;
        } else if (iterateFunc === 3) {
          this[NEXT] = tree._node(value2).parent;
        } else if (iterateFunc === 4) {
          this[NEXT] = tree.preceding(value2, { root });
        } else {
          this[NEXT] = tree.following(value2, { root });
        }
        return {
          done: false,
          value: value2
        };
      }
    };
    Object.defineProperty(TreeIterator.prototype, Symbol.iterator, {
      value: function() {
        return this;
      },
      writable: false
    });
    TreeIterator.PREV = 1;
    TreeIterator.NEXT = 2;
    TreeIterator.PARENT = 3;
    TreeIterator.PRECEDING = 4;
    TreeIterator.FOLLOWING = 5;
    Object.freeze(TreeIterator);
    Object.freeze(TreeIterator.prototype);
    module.exports = TreeIterator;
  }
});

// ../../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTree.js
var require_SymbolTree = __commonJS({
  "../../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTree.js"(exports, module) {
    "use strict";
    var SymbolTreeNode = require_SymbolTreeNode();
    var TreePosition = require_TreePosition();
    var TreeIterator = require_TreeIterator();
    function returnTrue() {
      return true;
    }
    function reverseArrayIndex(array, reverseIndex) {
      return array[array.length - 1 - reverseIndex];
    }
    var SymbolTree = class {
      /**
       * @constructor
       * @alias module:symbol-tree
       * @param {string} [description='SymbolTree data'] Description used for the Symbol
       */
      constructor(description) {
        this.symbol = Symbol(description || "SymbolTree data");
      }
      /**
       * You can use this function to (optionally) initialize an object right after its creation,
       * to take advantage of V8's fast properties. Also useful if you would like to
       * freeze your object.
       *
       * `O(1)`
       *
       * @method
       * @alias module:symbol-tree#initialize
       * @param {Object} object
       * @return {Object} object
       */
      initialize(object) {
        this._node(object);
        return object;
      }
      _node(object) {
        if (!object) {
          return null;
        }
        const node = object[this.symbol];
        if (node) {
          return node;
        }
        return object[this.symbol] = new SymbolTreeNode();
      }
      /**
       * Returns `true` if the object has any children. Otherwise it returns `false`.
       *
       * * `O(1)`
       *
       * @method hasChildren
       * @memberOf module:symbol-tree#
       * @param {Object} object
       * @return {Boolean}
       */
      hasChildren(object) {
        return this._node(object).hasChildren;
      }
      /**
       * Returns the first child of the given object.
       *
       * * `O(1)`
       *
       * @method firstChild
       * @memberOf module:symbol-tree#
       * @param {Object} object
       * @return {Object}
       */
      firstChild(object) {
        return this._node(object).firstChild;
      }
      /**
       * Returns the last child of the given object.
       *
       * * `O(1)`
       *
       * @method lastChild
       * @memberOf module:symbol-tree#
       * @param {Object} object
       * @return {Object}
       */
      lastChild(object) {
        return this._node(object).lastChild;
      }
      /**
       * Returns the previous sibling of the given object.
       *
       * * `O(1)`
       *
       * @method previousSibling
       * @memberOf module:symbol-tree#
       * @param {Object} object
       * @return {Object}
       */
      previousSibling(object) {
        return this._node(object).previousSibling;
      }
      /**
       * Returns the next sibling of the given object.
       *
       * * `O(1)`
       *
       * @method nextSibling
       * @memberOf module:symbol-tree#
       * @param {Object} object
       * @return {Object}
       */
      nextSibling(object) {
        return this._node(object).nextSibling;
      }
      /**
       * Return the parent of the given object.
       *
       * * `O(1)`
       *
       * @method parent
       * @memberOf module:symbol-tree#
       * @param {Object} object
       * @return {Object}
       */
      parent(object) {
        return this._node(object).parent;
      }
      /**
       * Find the inclusive descendant that is last in tree order of the given object.
       *
       * * `O(n)` (worst case) where `n` is the depth of the subtree of `object`
       *
       * @method lastInclusiveDescendant
       * @memberOf module:symbol-tree#
       * @param {Object} object
       * @return {Object}
       */
      lastInclusiveDescendant(object) {
        let lastChild;
        let current = object;
        while (lastChild = this._node(current).lastChild) {
          current = lastChild;
        }
        return current;
      }
      /**
       * Find the preceding object (A) of the given object (B).
       * An object A is preceding an object B if A and B are in the same tree
       * and A comes before B in tree order.
       *
       * * `O(n)` (worst case)
       * * `O(1)` (amortized when walking the entire tree)
       *
       * @method preceding
       * @memberOf module:symbol-tree#
       * @param {Object} object
       * @param {Object} [options]
       * @param {Object} [options.root] If set, `root` must be an inclusive ancestor
       *        of the return value (or else null is returned). This check _assumes_
       *        that `root` is also an inclusive ancestor of the given `object`
       * @return {?Object}
       */
      preceding(object, options) {
        const treeRoot = options && options.root;
        if (object === treeRoot) {
          return null;
        }
        const previousSibling = this._node(object).previousSibling;
        if (previousSibling) {
          return this.lastInclusiveDescendant(previousSibling);
        }
        return this._node(object).parent;
      }
      /**
       * Find the following object (A) of the given object (B).
       * An object A is following an object B if A and B are in the same tree
       * and A comes after B in tree order.
       *
       * * `O(n)` (worst case) where `n` is the amount of objects in the entire tree
       * * `O(1)` (amortized when walking the entire tree)
       *
       * @method following
       * @memberOf module:symbol-tree#
       * @param {!Object} object
       * @param {Object} [options]
       * @param {Object} [options.root] If set, `root` must be an inclusive ancestor
       *        of the return value (or else null is returned). This check _assumes_
       *        that `root` is also an inclusive ancestor of the given `object`
       * @param {Boolean} [options.skipChildren=false] If set, ignore the children of `object`
       * @return {?Object}
       */
      following(object, options) {
        const treeRoot = options && options.root;
        const skipChildren = options && options.skipChildren;
        const firstChild = !skipChildren && this._node(object).firstChild;
        if (firstChild) {
          return firstChild;
        }
        let current = object;
        do {
          if (current === treeRoot) {
            return null;
          }
          const nextSibling = this._node(current).nextSibling;
          if (nextSibling) {
            return nextSibling;
          }
          current = this._node(current).parent;
        } while (current);
        return null;
      }
      /**
       * Append all children of the given object to an array.
       *
       * * `O(n)` where `n` is the amount of children of the given `parent`
       *
       * @method childrenToArray
       * @memberOf module:symbol-tree#
       * @param {Object} parent
       * @param {Object} [options]
       * @param {Object[]} [options.array=[]]
       * @param {Function} [options.filter] Function to test each object before it is added to the array.
       *                            Invoked with arguments (object). Should return `true` if an object
       *                            is to be included.
       * @param {*} [options.thisArg] Value to use as `this` when executing `filter`.
       * @return {Object[]}
       */
      childrenToArray(parent, options) {
        const array = options && options.array || [];
        const filter3 = options && options.filter || returnTrue;
        const thisArg = options && options.thisArg || void 0;
        const parentNode = this._node(parent);
        let object = parentNode.firstChild;
        let index2 = 0;
        while (object) {
          const node = this._node(object);
          node.setCachedIndex(parentNode, index2);
          if (filter3.call(thisArg, object)) {
            array.push(object);
          }
          object = node.nextSibling;
          ++index2;
        }
        return array;
      }
      /**
       * Append all inclusive ancestors of the given object to an array.
       *
       * * `O(n)` where `n` is the amount of ancestors of the given `object`
       *
       * @method ancestorsToArray
       * @memberOf module:symbol-tree#
       * @param {Object} object
       * @param {Object} [options]
       * @param {Object[]} [options.array=[]]
       * @param {Function} [options.filter] Function to test each object before it is added to the array.
       *                            Invoked with arguments (object). Should return `true` if an object
       *                            is to be included.
       * @param {*} [options.thisArg] Value to use as `this` when executing `filter`.
       * @return {Object[]}
       */
      ancestorsToArray(object, options) {
        const array = options && options.array || [];
        const filter3 = options && options.filter || returnTrue;
        const thisArg = options && options.thisArg || void 0;
        let ancestor = object;
        while (ancestor) {
          if (filter3.call(thisArg, ancestor)) {
            array.push(ancestor);
          }
          ancestor = this._node(ancestor).parent;
        }
        return array;
      }
      /**
       * Append all descendants of the given object to an array (in tree order).
       *
       * * `O(n)` where `n` is the amount of objects in the sub-tree of the given `object`
       *
       * @method treeToArray
       * @memberOf module:symbol-tree#
       * @param {Object} root
       * @param {Object} [options]
       * @param {Object[]} [options.array=[]]
       * @param {Function} [options.filter] Function to test each object before it is added to the array.
       *                            Invoked with arguments (object). Should return `true` if an object
       *                            is to be included.
       * @param {*} [options.thisArg] Value to use as `this` when executing `filter`.
       * @return {Object[]}
       */
      treeToArray(root, options) {
        const array = options && options.array || [];
        const filter3 = options && options.filter || returnTrue;
        const thisArg = options && options.thisArg || void 0;
        let object = root;
        while (object) {
          if (filter3.call(thisArg, object)) {
            array.push(object);
          }
          object = this.following(object, { root });
        }
        return array;
      }
      /**
       * Iterate over all children of the given object
       *
       * * `O(1)` for a single iteration
       *
       * @method childrenIterator
       * @memberOf module:symbol-tree#
       * @param {Object} parent
       * @param {Object} [options]
       * @param {Boolean} [options.reverse=false]
       * @return {Object} An iterable iterator (ES6)
       */
      childrenIterator(parent, options) {
        const reverse2 = options && options.reverse;
        const parentNode = this._node(parent);
        return new TreeIterator(
          this,
          parent,
          reverse2 ? parentNode.lastChild : parentNode.firstChild,
          reverse2 ? TreeIterator.PREV : TreeIterator.NEXT
        );
      }
      /**
       * Iterate over all the previous siblings of the given object. (in reverse tree order)
       *
       * * `O(1)` for a single iteration
       *
       * @method previousSiblingsIterator
       * @memberOf module:symbol-tree#
       * @param {Object} object
       * @return {Object} An iterable iterator (ES6)
       */
      previousSiblingsIterator(object) {
        return new TreeIterator(
          this,
          object,
          this._node(object).previousSibling,
          TreeIterator.PREV
        );
      }
      /**
       * Iterate over all the next siblings of the given object. (in tree order)
       *
       * * `O(1)` for a single iteration
       *
       * @method nextSiblingsIterator
       * @memberOf module:symbol-tree#
       * @param {Object} object
       * @return {Object} An iterable iterator (ES6)
       */
      nextSiblingsIterator(object) {
        return new TreeIterator(
          this,
          object,
          this._node(object).nextSibling,
          TreeIterator.NEXT
        );
      }
      /**
       * Iterate over all inclusive ancestors of the given object
       *
       * * `O(1)` for a single iteration
       *
       * @method ancestorsIterator
       * @memberOf module:symbol-tree#
       * @param {Object} object
       * @return {Object} An iterable iterator (ES6)
       */
      ancestorsIterator(object) {
        return new TreeIterator(
          this,
          object,
          object,
          TreeIterator.PARENT
        );
      }
      /**
       * Iterate over all descendants of the given object (in tree order).
       *
       * Where `n` is the amount of objects in the sub-tree of the given `root`:
       *
       * * `O(n)` (worst case for a single iteration)
       * * `O(n)` (amortized, when completing the iterator)
       *
       * @method treeIterator
       * @memberOf module:symbol-tree#
       * @param {Object} root
       * @param {Object} options
       * @param {Boolean} [options.reverse=false]
       * @return {Object} An iterable iterator (ES6)
       */
      treeIterator(root, options) {
        const reverse2 = options && options.reverse;
        return new TreeIterator(
          this,
          root,
          reverse2 ? this.lastInclusiveDescendant(root) : root,
          reverse2 ? TreeIterator.PRECEDING : TreeIterator.FOLLOWING
        );
      }
      /**
       * Find the index of the given object (the number of preceding siblings).
       *
       * * `O(n)` where `n` is the amount of preceding siblings
       * * `O(1)` (amortized, if the tree is not modified)
       *
       * @method index
       * @memberOf module:symbol-tree#
       * @param {Object} child
       * @return {Number} The number of preceding siblings, or -1 if the object has no parent
       */
      index(child) {
        const childNode = this._node(child);
        const parentNode = this._node(childNode.parent);
        if (!parentNode) {
          return -1;
        }
        let currentIndex = childNode.getCachedIndex(parentNode);
        if (currentIndex >= 0) {
          return currentIndex;
        }
        currentIndex = 0;
        let object = parentNode.firstChild;
        if (parentNode.childIndexCachedUpTo) {
          const cachedUpToNode = this._node(parentNode.childIndexCachedUpTo);
          object = cachedUpToNode.nextSibling;
          currentIndex = cachedUpToNode.getCachedIndex(parentNode) + 1;
        }
        while (object) {
          const node = this._node(object);
          node.setCachedIndex(parentNode, currentIndex);
          if (object === child) {
            break;
          }
          ++currentIndex;
          object = node.nextSibling;
        }
        parentNode.childIndexCachedUpTo = child;
        return currentIndex;
      }
      /**
       * Calculate the number of children.
       *
       * * `O(n)` where `n` is the amount of children
       * * `O(1)` (amortized, if the tree is not modified)
       *
       * @method childrenCount
       * @memberOf module:symbol-tree#
       * @param {Object} parent
       * @return {Number}
       */
      childrenCount(parent) {
        const parentNode = this._node(parent);
        if (!parentNode.lastChild) {
          return 0;
        }
        return this.index(parentNode.lastChild) + 1;
      }
      /**
       * Compare the position of an object relative to another object. A bit set is returned:
       *
       * <ul>
       *     <li>DISCONNECTED : 1</li>
       *     <li>PRECEDING : 2</li>
       *     <li>FOLLOWING : 4</li>
       *     <li>CONTAINS : 8</li>
       *     <li>CONTAINED_BY : 16</li>
       * </ul>
       *
       * The semantics are the same as compareDocumentPosition in DOM, with the exception that
       * DISCONNECTED never occurs with any other bit.
       *
       * where `n` and `m` are the amount of ancestors of `left` and `right`;
       * where `o` is the amount of children of the lowest common ancestor of `left` and `right`:
       *
       * * `O(n + m + o)` (worst case)
       * * `O(n + m)` (amortized, if the tree is not modified)
       *
       * @method compareTreePosition
       * @memberOf module:symbol-tree#
       * @param {Object} left
       * @param {Object} right
       * @return {Number}
       */
      compareTreePosition(left, right) {
        if (left === right) {
          return 0;
        }
        const leftAncestors = [];
        {
          let leftAncestor = left;
          while (leftAncestor) {
            if (leftAncestor === right) {
              return TreePosition.CONTAINS | TreePosition.PRECEDING;
            }
            leftAncestors.push(leftAncestor);
            leftAncestor = this.parent(leftAncestor);
          }
        }
        const rightAncestors = [];
        {
          let rightAncestor = right;
          while (rightAncestor) {
            if (rightAncestor === left) {
              return TreePosition.CONTAINED_BY | TreePosition.FOLLOWING;
            }
            rightAncestors.push(rightAncestor);
            rightAncestor = this.parent(rightAncestor);
          }
        }
        const root = reverseArrayIndex(leftAncestors, 0);
        if (!root || root !== reverseArrayIndex(rightAncestors, 0)) {
          return TreePosition.DISCONNECTED;
        }
        let commonAncestorIndex = 0;
        const ancestorsMinLength = Math.min(leftAncestors.length, rightAncestors.length);
        for (let i5 = 0; i5 < ancestorsMinLength; ++i5) {
          const leftAncestor = reverseArrayIndex(leftAncestors, i5);
          const rightAncestor = reverseArrayIndex(rightAncestors, i5);
          if (leftAncestor !== rightAncestor) {
            break;
          }
          commonAncestorIndex = i5;
        }
        const leftIndex = this.index(reverseArrayIndex(leftAncestors, commonAncestorIndex + 1));
        const rightIndex = this.index(reverseArrayIndex(rightAncestors, commonAncestorIndex + 1));
        return rightIndex < leftIndex ? TreePosition.PRECEDING : TreePosition.FOLLOWING;
      }
      /**
       * Remove the object from this tree.
       * Has no effect if already removed.
       *
       * * `O(1)`
       *
       * @method remove
       * @memberOf module:symbol-tree#
       * @param {Object} removeObject
       * @return {Object} removeObject
       */
      remove(removeObject) {
        const removeNode = this._node(removeObject);
        const parentNode = this._node(removeNode.parent);
        const prevNode = this._node(removeNode.previousSibling);
        const nextNode = this._node(removeNode.nextSibling);
        if (parentNode) {
          if (parentNode.firstChild === removeObject) {
            parentNode.firstChild = removeNode.nextSibling;
          }
          if (parentNode.lastChild === removeObject) {
            parentNode.lastChild = removeNode.previousSibling;
          }
        }
        if (prevNode) {
          prevNode.nextSibling = removeNode.nextSibling;
        }
        if (nextNode) {
          nextNode.previousSibling = removeNode.previousSibling;
        }
        removeNode.parent = null;
        removeNode.previousSibling = null;
        removeNode.nextSibling = null;
        removeNode.cachedIndex = -1;
        removeNode.cachedIndexVersion = NaN;
        if (parentNode) {
          parentNode.childrenChanged();
        }
        return removeObject;
      }
      /**
       * Insert the given object before the reference object.
       * `newObject` is now the previous sibling of `referenceObject`.
       *
       * * `O(1)`
       *
       * @method insertBefore
       * @memberOf module:symbol-tree#
       * @param {Object} referenceObject
       * @param {Object} newObject
       * @throws {Error} If the newObject is already present in this SymbolTree
       * @return {Object} newObject
       */
      insertBefore(referenceObject, newObject) {
        const referenceNode = this._node(referenceObject);
        const prevNode = this._node(referenceNode.previousSibling);
        const newNode = this._node(newObject);
        const parentNode = this._node(referenceNode.parent);
        if (newNode.isAttached) {
          throw Error("Given object is already present in this SymbolTree, remove it first");
        }
        newNode.parent = referenceNode.parent;
        newNode.previousSibling = referenceNode.previousSibling;
        newNode.nextSibling = referenceObject;
        referenceNode.previousSibling = newObject;
        if (prevNode) {
          prevNode.nextSibling = newObject;
        }
        if (parentNode && parentNode.firstChild === referenceObject) {
          parentNode.firstChild = newObject;
        }
        if (parentNode) {
          parentNode.childrenChanged();
        }
        return newObject;
      }
      /**
       * Insert the given object after the reference object.
       * `newObject` is now the next sibling of `referenceObject`.
       *
       * * `O(1)`
       *
       * @method insertAfter
       * @memberOf module:symbol-tree#
       * @param {Object} referenceObject
       * @param {Object} newObject
       * @throws {Error} If the newObject is already present in this SymbolTree
       * @return {Object} newObject
       */
      insertAfter(referenceObject, newObject) {
        const referenceNode = this._node(referenceObject);
        const nextNode = this._node(referenceNode.nextSibling);
        const newNode = this._node(newObject);
        const parentNode = this._node(referenceNode.parent);
        if (newNode.isAttached) {
          throw Error("Given object is already present in this SymbolTree, remove it first");
        }
        newNode.parent = referenceNode.parent;
        newNode.previousSibling = referenceObject;
        newNode.nextSibling = referenceNode.nextSibling;
        referenceNode.nextSibling = newObject;
        if (nextNode) {
          nextNode.previousSibling = newObject;
        }
        if (parentNode && parentNode.lastChild === referenceObject) {
          parentNode.lastChild = newObject;
        }
        if (parentNode) {
          parentNode.childrenChanged();
        }
        return newObject;
      }
      /**
       * Insert the given object as the first child of the given reference object.
       * `newObject` is now the first child of `referenceObject`.
       *
       * * `O(1)`
       *
       * @method prependChild
       * @memberOf module:symbol-tree#
       * @param {Object} referenceObject
       * @param {Object} newObject
       * @throws {Error} If the newObject is already present in this SymbolTree
       * @return {Object} newObject
       */
      prependChild(referenceObject, newObject) {
        const referenceNode = this._node(referenceObject);
        const newNode = this._node(newObject);
        if (newNode.isAttached) {
          throw Error("Given object is already present in this SymbolTree, remove it first");
        }
        if (referenceNode.hasChildren) {
          this.insertBefore(referenceNode.firstChild, newObject);
        } else {
          newNode.parent = referenceObject;
          referenceNode.firstChild = newObject;
          referenceNode.lastChild = newObject;
          referenceNode.childrenChanged();
        }
        return newObject;
      }
      /**
       * Insert the given object as the last child of the given reference object.
       * `newObject` is now the last child of `referenceObject`.
       *
       * * `O(1)`
       *
       * @method appendChild
       * @memberOf module:symbol-tree#
       * @param {Object} referenceObject
       * @param {Object} newObject
       * @throws {Error} If the newObject is already present in this SymbolTree
       * @return {Object} newObject
       */
      appendChild(referenceObject, newObject) {
        const referenceNode = this._node(referenceObject);
        const newNode = this._node(newObject);
        if (newNode.isAttached) {
          throw Error("Given object is already present in this SymbolTree, remove it first");
        }
        if (referenceNode.hasChildren) {
          this.insertAfter(referenceNode.lastChild, newObject);
        } else {
          newNode.parent = referenceObject;
          referenceNode.firstChild = newObject;
          referenceNode.lastChild = newObject;
          referenceNode.childrenChanged();
        }
        return newObject;
      }
    };
    module.exports = SymbolTree;
    SymbolTree.TreePosition = TreePosition;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/internal-constants.js
var require_internal_constants = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/internal-constants.js"(exports) {
    "use strict";
    var SymbolTree = require_SymbolTree();
    exports.cloningSteps = Symbol("cloning steps");
    exports.domSymbolTree = new SymbolTree("DOM SymbolTree");
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/node.js
var require_node4 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/node.js"(exports, module) {
    "use strict";
    var NODE_TYPE = require_node_type();
    var { domSymbolTree } = require_internal_constants();
    function nodeLength(node) {
      switch (node.nodeType) {
        case NODE_TYPE.DOCUMENT_TYPE_NODE:
          return 0;
        case NODE_TYPE.TEXT_NODE:
        case NODE_TYPE.PROCESSING_INSTRUCTION_NODE:
        case NODE_TYPE.COMMENT_NODE:
          return node.data.length;
        default:
          return domSymbolTree.childrenCount(node);
      }
    }
    function nodeRoot(node) {
      while (domSymbolTree.parent(node)) {
        node = domSymbolTree.parent(node);
      }
      return node;
    }
    function isInclusiveAncestor(ancestorNode, node) {
      while (node) {
        if (ancestorNode === node) {
          return true;
        }
        node = domSymbolTree.parent(node);
      }
      return false;
    }
    function isFollowing(nodeA, nodeB) {
      if (nodeA === nodeB) {
        return false;
      }
      let current = nodeB;
      while (current) {
        if (current === nodeA) {
          return true;
        }
        current = domSymbolTree.following(current);
      }
      return false;
    }
    module.exports = {
      nodeLength,
      nodeRoot,
      isInclusiveAncestor,
      isFollowing
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/namespaces.js
var require_namespaces = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/namespaces.js"(exports) {
    "use strict";
    exports.HTML_NS = "http://www.w3.org/1999/xhtml";
    exports.MATHML_NS = "http://www.w3.org/1998/Math/MathML";
    exports.SVG_NS = "http://www.w3.org/2000/svg";
    exports.XLINK_NS = "http://www.w3.org/1999/xlink";
    exports.XML_NS = "http://www.w3.org/XML/1998/namespace";
    exports.XMLNS_NS = "http://www.w3.org/2000/xmlns/";
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/NodeList-impl.js
var require_NodeList_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/NodeList-impl.js"(exports) {
    "use strict";
    var idlUtils = require_utils16();
    exports.implementation = class NodeListImpl {
      constructor(globalObject, args, privateData) {
        if (privateData.nodes) {
          this._list = [...privateData.nodes];
          this._isLive = false;
        } else {
          this._list = [];
          this._isLive = true;
          this._version = -1;
          this._element = privateData.element;
          this._query = privateData.query;
          this._update();
        }
      }
      get length() {
        this._update();
        return this._list.length;
      }
      item(index2) {
        this._update();
        return this._list[index2] || null;
      }
      _update() {
        if (this._isLive) {
          if (this._version < this._element._version) {
            const snapshot = this._query();
            for (let i5 = 0; i5 < snapshot.length; i5++) {
              this._list[i5] = snapshot[i5];
            }
            this._list.length = snapshot.length;
            this._version = this._element._version;
          }
        }
      }
      get [idlUtils.supportedPropertyIndices]() {
        this._update();
        return this._list.keys();
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js
var require_NodeList = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "NodeList";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'NodeList'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["NodeList"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class NodeList {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        item(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'item' called on an object that is not a valid instance of NodeList.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'item' on 'NodeList': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'item' on 'NodeList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].item(...args));
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get length' called on an object that is not a valid instance of NodeList.");
          }
          return esValue[implSymbol]["length"];
        }
      }
      Object.defineProperties(NodeList.prototype, {
        item: { enumerable: true },
        length: { enumerable: true },
        [Symbol.toStringTag]: { value: "NodeList", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true },
        keys: { value: globalObject.Array.prototype.keys, configurable: true, enumerable: true, writable: true },
        values: { value: globalObject.Array.prototype.values, configurable: true, enumerable: true, writable: true },
        entries: { value: globalObject.Array.prototype.entries, configurable: true, enumerable: true, writable: true },
        forEach: { value: globalObject.Array.prototype.forEach, configurable: true, enumerable: true, writable: true }
      });
      ctorRegistry[interfaceName] = NodeList;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: NodeList
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            return {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            ownDesc = {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          return false;
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !(target[implSymbol].item(index2) !== null);
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_NodeList_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationRecord-impl.js
var require_MutationRecord_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationRecord-impl.js"(exports, module) {
    "use strict";
    var NodeList = require_NodeList();
    var MutationRecordImpl = class {
      constructor(globalObject, args, privateData) {
        this._globalObject = globalObject;
        this.type = privateData.type;
        this.target = privateData.target;
        this.previousSibling = privateData.previousSibling;
        this.nextSibling = privateData.nextSibling;
        this.attributeName = privateData.attributeName;
        this.attributeNamespace = privateData.attributeNamespace;
        this.oldValue = privateData.oldValue;
        this._addedNodes = privateData.addedNodes;
        this._removedNodes = privateData.removedNodes;
      }
      get addedNodes() {
        return NodeList.createImpl(this._globalObject, [], {
          nodes: this._addedNodes
        });
      }
      get removedNodes() {
        return NodeList.createImpl(this._globalObject, [], {
          nodes: this._removedNodes
        });
      }
    };
    module.exports = {
      implementation: MutationRecordImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js
var require_MutationRecord = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "MutationRecord";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'MutationRecord'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["MutationRecord"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class MutationRecord {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of MutationRecord."
            );
          }
          return esValue[implSymbol]["type"];
        }
        get target() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get target' called on an object that is not a valid instance of MutationRecord."
            );
          }
          return utils2.getSameObject(this, "target", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["target"]);
          });
        }
        get addedNodes() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get addedNodes' called on an object that is not a valid instance of MutationRecord."
            );
          }
          return utils2.getSameObject(this, "addedNodes", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["addedNodes"]);
          });
        }
        get removedNodes() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get removedNodes' called on an object that is not a valid instance of MutationRecord."
            );
          }
          return utils2.getSameObject(this, "removedNodes", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["removedNodes"]);
          });
        }
        get previousSibling() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get previousSibling' called on an object that is not a valid instance of MutationRecord."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["previousSibling"]);
        }
        get nextSibling() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get nextSibling' called on an object that is not a valid instance of MutationRecord."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["nextSibling"]);
        }
        get attributeName() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get attributeName' called on an object that is not a valid instance of MutationRecord."
            );
          }
          return esValue[implSymbol]["attributeName"];
        }
        get attributeNamespace() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get attributeNamespace' called on an object that is not a valid instance of MutationRecord."
            );
          }
          return esValue[implSymbol]["attributeNamespace"];
        }
        get oldValue() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oldValue' called on an object that is not a valid instance of MutationRecord."
            );
          }
          return esValue[implSymbol]["oldValue"];
        }
      }
      Object.defineProperties(MutationRecord.prototype, {
        type: { enumerable: true },
        target: { enumerable: true },
        addedNodes: { enumerable: true },
        removedNodes: { enumerable: true },
        previousSibling: { enumerable: true },
        nextSibling: { enumerable: true },
        attributeName: { enumerable: true },
        attributeNamespace: { enumerable: true },
        oldValue: { enumerable: true },
        [Symbol.toStringTag]: { value: "MutationRecord", configurable: true }
      });
      ctorRegistry[interfaceName] = MutationRecord;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: MutationRecord
      });
    };
    var Impl = require_MutationRecord_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/mutation-observers.js
var require_mutation_observers = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/mutation-observers.js"(exports, module) {
    "use strict";
    var { domSymbolTree } = require_internal_constants();
    var reportException = require_runtime_script_errors();
    var Event2 = require_Event();
    var idlUtils = require_utils16();
    var MutationRecord = require_MutationRecord();
    var MUTATION_TYPE = {
      ATTRIBUTES: "attributes",
      CHARACTER_DATA: "characterData",
      CHILD_LIST: "childList"
    };
    var mutationObserverMicrotaskQueueFlag = false;
    var activeMutationObservers = /* @__PURE__ */ new Set();
    var signalSlotList = [];
    function queueMutationRecord(type, target, name, namespace, oldValue, addedNodes, removedNodes, previousSibling, nextSibling) {
      const interestedObservers = /* @__PURE__ */ new Map();
      const nodes = domSymbolTree.ancestorsToArray(target);
      for (const node of nodes) {
        for (const registered of node._registeredObserverList) {
          const { options, observer: mo } = registered;
          if (!(node !== target && options.subtree === false) && !(type === MUTATION_TYPE.ATTRIBUTES && options.attributes !== true) && !(type === MUTATION_TYPE.ATTRIBUTES && options.attributeFilter && !options.attributeFilter.some((value2) => value2 === name || value2 === namespace)) && !(type === MUTATION_TYPE.CHARACTER_DATA && options.characterData !== true) && !(type === MUTATION_TYPE.CHILD_LIST && options.childList === false)) {
            if (!interestedObservers.has(mo)) {
              interestedObservers.set(mo, null);
            }
            if (type === MUTATION_TYPE.ATTRIBUTES && options.attributeOldValue === true || type === MUTATION_TYPE.CHARACTER_DATA && options.characterDataOldValue === true) {
              interestedObservers.set(mo, oldValue);
            }
          }
        }
      }
      for (const [observer, mappedOldValue] of interestedObservers.entries()) {
        const record = MutationRecord.createImpl(target._globalObject, [], {
          type,
          target,
          attributeName: name,
          attributeNamespace: namespace,
          oldValue: mappedOldValue,
          addedNodes,
          removedNodes,
          previousSibling,
          nextSibling
        });
        observer._recordQueue.push(record);
        activeMutationObservers.add(observer);
      }
      queueMutationObserverMicrotask();
    }
    function queueTreeMutationRecord(target, addedNodes, removedNodes, previousSibling, nextSibling) {
      queueMutationRecord(
        MUTATION_TYPE.CHILD_LIST,
        target,
        null,
        null,
        null,
        addedNodes,
        removedNodes,
        previousSibling,
        nextSibling
      );
    }
    function queueAttributeMutationRecord(target, name, namespace, oldValue) {
      queueMutationRecord(
        MUTATION_TYPE.ATTRIBUTES,
        target,
        name,
        namespace,
        oldValue,
        [],
        [],
        null,
        null
      );
    }
    function queueMutationObserverMicrotask() {
      if (mutationObserverMicrotaskQueueFlag) {
        return;
      }
      mutationObserverMicrotaskQueueFlag = true;
      Promise.resolve().then(() => {
        notifyMutationObservers();
      });
    }
    function notifyMutationObservers() {
      mutationObserverMicrotaskQueueFlag = false;
      const notifyList = [...activeMutationObservers].sort((a5, b3) => a5._id - b3._id);
      activeMutationObservers.clear();
      const signalList = [...signalSlotList];
      signalSlotList.splice(0, signalSlotList.length);
      for (const mo of notifyList) {
        const records = [...mo._recordQueue];
        mo._recordQueue = [];
        for (const node of mo._nodeList) {
          node._registeredObserverList = node._registeredObserverList.filter((registeredObserver) => {
            return registeredObserver.source !== mo;
          });
        }
        if (records.length > 0) {
          try {
            const moWrapper = idlUtils.wrapperForImpl(mo);
            mo._callback.call(
              moWrapper,
              records.map(idlUtils.wrapperForImpl),
              moWrapper
            );
          } catch (e4) {
            const { target } = records[0];
            const window2 = target._ownerDocument._defaultView;
            reportException(window2, e4);
          }
        }
      }
      for (const slot of signalList) {
        const slotChangeEvent = Event2.createImpl(
          slot._globalObject,
          [
            "slotchange",
            { bubbles: true }
          ],
          { isTrusted: true }
        );
        slot._dispatch(slotChangeEvent);
      }
    }
    module.exports = {
      MUTATION_TYPE,
      queueMutationRecord,
      queueTreeMutationRecord,
      queueAttributeMutationRecord,
      queueMutationObserverMicrotask,
      signalSlotList
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/shadow-dom.js
var require_shadow_dom = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/shadow-dom.js"(exports, module) {
    "use strict";
    var NODE_TYPE = require_node_type();
    var { nodeRoot } = require_node4();
    var { HTML_NS } = require_namespaces();
    var { domSymbolTree } = require_internal_constants();
    var { signalSlotList, queueMutationObserverMicrotask } = require_mutation_observers();
    var VALID_HOST_ELEMENT_NAME = /* @__PURE__ */ new Set([
      "article",
      "aside",
      "blockquote",
      "body",
      "div",
      "footer",
      "h1",
      "h2",
      "h3",
      "h4",
      "h5",
      "h6",
      "header",
      "main",
      "nav",
      "p",
      "section",
      "span"
    ]);
    function isValidHostElementName(name) {
      return VALID_HOST_ELEMENT_NAME.has(name);
    }
    function isNode(nodeImpl) {
      return Boolean(nodeImpl && "nodeType" in nodeImpl);
    }
    function isShadowRoot(nodeImpl) {
      return Boolean(nodeImpl && nodeImpl.nodeType === NODE_TYPE.DOCUMENT_FRAGMENT_NODE && "host" in nodeImpl);
    }
    function isSlotable(nodeImpl) {
      return nodeImpl && (nodeImpl.nodeType === NODE_TYPE.ELEMENT_NODE || nodeImpl.nodeType === NODE_TYPE.TEXT_NODE);
    }
    function isSlot(nodeImpl) {
      return nodeImpl && nodeImpl.localName === "slot" && nodeImpl._namespaceURI === HTML_NS;
    }
    function isShadowInclusiveAncestor(ancestor, node) {
      while (isNode(node)) {
        if (node === ancestor) {
          return true;
        }
        if (isShadowRoot(node)) {
          node = node.host;
        } else {
          node = domSymbolTree.parent(node);
        }
      }
      return false;
    }
    function retarget(a5, b3) {
      while (true) {
        if (!isNode(a5)) {
          return a5;
        }
        const aRoot = nodeRoot(a5);
        if (!isShadowRoot(aRoot) || isNode(b3) && isShadowInclusiveAncestor(aRoot, b3)) {
          return a5;
        }
        a5 = nodeRoot(a5).host;
      }
    }
    function getEventTargetParent(eventTarget, event) {
      return eventTarget._getTheParent ? eventTarget._getTheParent(event) : null;
    }
    function shadowIncludingRoot(node) {
      const root = nodeRoot(node);
      return isShadowRoot(root) ? shadowIncludingRoot(root.host) : root;
    }
    function assignSlot(slotable) {
      const slot = findSlot(slotable);
      if (slot) {
        assignSlotable(slot);
      }
    }
    function assignSlotable(slot) {
      const slotables = findSlotable(slot);
      let shouldFireSlotChange = false;
      if (slotables.length !== slot._assignedNodes.length) {
        shouldFireSlotChange = true;
      } else {
        for (let i5 = 0; i5 < slotables.length; i5++) {
          if (slotables[i5] !== slot._assignedNodes[i5]) {
            shouldFireSlotChange = true;
            break;
          }
        }
      }
      if (shouldFireSlotChange) {
        signalSlotChange(slot);
      }
      slot._assignedNodes = slotables;
      for (const slotable of slotables) {
        slotable._assignedSlot = slot;
      }
    }
    function assignSlotableForTree(root) {
      for (const slot of domSymbolTree.treeIterator(root)) {
        if (isSlot(slot)) {
          assignSlotable(slot);
        }
      }
    }
    function findSlotable(slot) {
      const result = [];
      const root = nodeRoot(slot);
      if (!isShadowRoot(root)) {
        return result;
      }
      for (const slotable of domSymbolTree.treeIterator(root.host)) {
        const foundSlot = findSlot(slotable);
        if (foundSlot === slot) {
          result.push(slotable);
        }
      }
      return result;
    }
    function findFlattenedSlotables(slot) {
      const result = [];
      const root = nodeRoot(slot);
      if (!isShadowRoot(root)) {
        return result;
      }
      const slotables = findSlotable(slot);
      if (slotables.length === 0) {
        for (const child of domSymbolTree.childrenIterator(slot)) {
          if (isSlotable(child)) {
            slotables.push(child);
          }
        }
      }
      for (const node of slotables) {
        if (isSlot(node) && isShadowRoot(nodeRoot(node))) {
          const temporaryResult = findFlattenedSlotables(node);
          result.push(...temporaryResult);
        } else {
          result.push(node);
        }
      }
      return result;
    }
    function findSlot(slotable, openFlag) {
      const { parentNode: parent } = slotable;
      if (!parent) {
        return null;
      }
      const shadow = parent._shadowRoot;
      if (!shadow || openFlag && shadow.mode !== "open") {
        return null;
      }
      for (const child of domSymbolTree.treeIterator(shadow)) {
        if (isSlot(child) && child.name === slotable._slotableName) {
          return child;
        }
      }
      return null;
    }
    function signalSlotChange(slot) {
      if (!signalSlotList.some((entry) => entry === slot)) {
        signalSlotList.push(slot);
      }
      queueMutationObserverMicrotask();
    }
    function* shadowIncludingInclusiveDescendantsIterator(node) {
      yield node;
      if (node._shadowRoot) {
        yield* shadowIncludingInclusiveDescendantsIterator(node._shadowRoot);
      }
      for (const child of domSymbolTree.childrenIterator(node)) {
        yield* shadowIncludingInclusiveDescendantsIterator(child);
      }
    }
    function* shadowIncludingDescendantsIterator(node) {
      if (node._shadowRoot) {
        yield* shadowIncludingInclusiveDescendantsIterator(node._shadowRoot);
      }
      for (const child of domSymbolTree.childrenIterator(node)) {
        yield* shadowIncludingInclusiveDescendantsIterator(child);
      }
    }
    module.exports = {
      isValidHostElementName,
      isNode,
      isSlotable,
      isSlot,
      isShadowRoot,
      isShadowInclusiveAncestor,
      retarget,
      getEventTargetParent,
      shadowIncludingRoot,
      assignSlot,
      assignSlotable,
      assignSlotableForTree,
      findSlot,
      findFlattenedSlotables,
      signalSlotChange,
      shadowIncludingInclusiveDescendantsIterator,
      shadowIncludingDescendantsIterator
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/UIEventInit.js
var require_UIEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/UIEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventInit = require_EventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "detail";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["long"](value2, { context: context + " has member 'detail' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "view";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (value2 === null || value2 === void 0) {
            value2 = null;
          } else {
            value2 = utils2.tryImplForWrapper(value2);
          }
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
      {
        const key = "which";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unsigned long"](value2, {
            context: context + " has member 'which' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js
var require_EventModifierInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var UIEventInit = require_UIEventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      UIEventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "altKey";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, { context: context + " has member 'altKey' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "ctrlKey";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, { context: context + " has member 'ctrlKey' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "metaKey";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, { context: context + " has member 'metaKey' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "modifierAltGraph";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'modifierAltGraph' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "modifierCapsLock";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'modifierCapsLock' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "modifierFn";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'modifierFn' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "modifierFnLock";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'modifierFnLock' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "modifierHyper";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'modifierHyper' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "modifierNumLock";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'modifierNumLock' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "modifierScrollLock";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'modifierScrollLock' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "modifierSuper";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'modifierSuper' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "modifierSymbol";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'modifierSymbol' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "modifierSymbolLock";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'modifierSymbolLock' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "shiftKey";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'shiftKey' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js
var require_MouseEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventTarget2 = require_EventTarget();
    var EventModifierInit = require_EventModifierInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventModifierInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "button";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["short"](value2, { context: context + " has member 'button' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "buttons";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unsigned short"](value2, {
            context: context + " has member 'buttons' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "clientX";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["long"](value2, { context: context + " has member 'clientX' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "clientX";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["double"](value2, { context: context + " has member 'clientX' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "clientY";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["long"](value2, { context: context + " has member 'clientY' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "clientY";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["double"](value2, { context: context + " has member 'clientY' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "relatedTarget";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (value2 === null || value2 === void 0) {
            value2 = null;
          } else {
            value2 = EventTarget2.convert(globalObject, value2, { context: context + " has member 'relatedTarget' that" });
          }
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
      {
        const key = "screenX";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["long"](value2, { context: context + " has member 'screenX' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "screenX";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["double"](value2, { context: context + " has member 'screenX' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "screenY";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["long"](value2, { context: context + " has member 'screenY' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "screenY";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["double"](value2, { context: context + " has member 'screenY' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/UIEvent-impl.js
var require_UIEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/UIEvent-impl.js"(exports, module) {
    "use strict";
    var idlUtils = require_utils16();
    var UIEventInit = require_UIEventInit();
    var EventImpl = require_Event_impl().implementation;
    function isWindow(val) {
      if (typeof val !== "object") {
        return false;
      }
      const wrapper = idlUtils.wrapperForImpl(val);
      if (typeof wrapper === "object") {
        return wrapper === wrapper._globalProxy;
      }
      return isWindow(idlUtils.implForWrapper(val));
    }
    var UIEventImpl = class extends EventImpl {
      constructor(globalObject, args, privateData) {
        const eventInitDict = args[1];
        if (eventInitDict && eventInitDict.view !== null && eventInitDict.view !== void 0) {
          if (!isWindow(eventInitDict.view)) {
            throw new TypeError(`Failed to construct '${new.target.name.replace(/Impl$/, "")}': member view is not of type Window.`);
          }
        }
        super(globalObject, args, privateData);
      }
      initUIEvent(type, bubbles, cancelable, view, detail) {
        if (view !== null) {
          if (!isWindow(view)) {
            throw new TypeError(`Failed to execute 'initUIEvent' on '${this.constructor.name.replace(/Impl$/, "")}': parameter 4 is not of type 'Window'.`);
          }
        }
        if (this._dispatchFlag) {
          return;
        }
        this.initEvent(type, bubbles, cancelable);
        this.view = view;
        this.detail = detail;
      }
    };
    UIEventImpl.defaultInit = UIEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: UIEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/UIEvent.js
var require_UIEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/UIEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var UIEventInit = require_UIEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Event2 = require_Event();
    var interfaceName = "UIEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'UIEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["UIEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Event2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class UIEvent extends globalObject.Event {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'UIEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'UIEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = UIEventInit.convert(globalObject, curArg, { context: "Failed to construct 'UIEvent': parameter 2" });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        initUIEvent(typeArg) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'initUIEvent' called on an object that is not a valid instance of UIEvent.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'initUIEvent' on 'UIEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'initUIEvent' on 'UIEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initUIEvent' on 'UIEvent': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initUIEvent' on 'UIEvent': parameter 3",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[3];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = utils2.tryImplForWrapper(curArg);
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[4];
            if (curArg !== void 0) {
              curArg = conversions["long"](curArg, {
                context: "Failed to execute 'initUIEvent' on 'UIEvent': parameter 5",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].initUIEvent(...args);
        }
        get view() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get view' called on an object that is not a valid instance of UIEvent.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["view"]);
        }
        get detail() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get detail' called on an object that is not a valid instance of UIEvent.");
          }
          return esValue[implSymbol]["detail"];
        }
        get which() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get which' called on an object that is not a valid instance of UIEvent.");
          }
          return esValue[implSymbol]["which"];
        }
      }
      Object.defineProperties(UIEvent.prototype, {
        initUIEvent: { enumerable: true },
        view: { enumerable: true },
        detail: { enumerable: true },
        which: { enumerable: true },
        [Symbol.toStringTag]: { value: "UIEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = UIEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: UIEvent
      });
    };
    var Impl = require_UIEvent_impl();
  }
});

// mock-canvas:canvas
var canvas_exports = {};
__export(canvas_exports, {
  default: () => canvas_default
});
var canvas_default;
var init_canvas = __esm({
  "mock-canvas:canvas"() {
    canvas_default = {};
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/utils.js
var require_utils17 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/utils.js"(exports) {
    "use strict";
    var { domSymbolTree } = require_internal_constants();
    var SYMBOL_TREE_POSITION = require_SymbolTree().TreePosition;
    exports.define = function define2(object, properties) {
      for (const name of Object.getOwnPropertyNames(properties)) {
        const propDesc = Object.getOwnPropertyDescriptor(properties, name);
        Object.defineProperty(object, name, propDesc);
      }
    };
    exports.mixin = (target, source) => {
      const keys2 = Reflect.ownKeys(source);
      for (let i5 = 0; i5 < keys2.length; ++i5) {
        if (keys2[i5] in target) {
          continue;
        }
        Object.defineProperty(target, keys2[i5], Object.getOwnPropertyDescriptor(source, keys2[i5]));
      }
    };
    var memoizeQueryTypeCounter = 0;
    exports.memoizeQuery = function memoizeQuery(fn) {
      if (fn.length > 2) {
        return fn;
      }
      const type = memoizeQueryTypeCounter++;
      return function(...args) {
        if (!this._memoizedQueries) {
          return fn.apply(this, args);
        }
        if (!this._memoizedQueries[type]) {
          this._memoizedQueries[type] = /* @__PURE__ */ Object.create(null);
        }
        let key;
        if (args.length === 1 && typeof args[0] === "string") {
          key = args[0];
        } else if (args.length === 2 && typeof args[0] === "string" && typeof args[1] === "string") {
          key = args[0] + "::" + args[1];
        } else {
          return fn.apply(this, args);
        }
        if (!(key in this._memoizedQueries[type])) {
          this._memoizedQueries[type][key] = fn.apply(this, args);
        }
        return this._memoizedQueries[type][key];
      };
    };
    exports.simultaneousIterators = function* (first, second) {
      for (; ; ) {
        const firstResult = first.next();
        const secondResult = second.next();
        if (firstResult.done && secondResult.done) {
          return;
        }
        yield [
          firstResult.done ? null : firstResult.value,
          secondResult.done ? null : secondResult.value
        ];
      }
    };
    exports.treeOrderSorter = function(a5, b3) {
      const compare = domSymbolTree.compareTreePosition(a5, b3);
      if (compare & SYMBOL_TREE_POSITION.PRECEDING) {
        return 1;
      }
      if (compare & SYMBOL_TREE_POSITION.FOLLOWING) {
        return -1;
      }
      return 0;
    };
    try {
      exports.Canvas = (init_canvas(), __toCommonJS(canvas_exports));
    } catch {
      exports.Canvas = null;
    }
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/EventModifierMixin-impl.js
var require_EventModifierMixin_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/EventModifierMixin-impl.js"(exports) {
    "use strict";
    var EventModifierMixinImpl = class {
      // Event's constructor assumes all options correspond to IDL attributes with the same names, and sets them on `this`.
      // That is not the case for these modifier boolean options, but since the options are set on `this` anyway we'll
      // access them that way. The spec doesn't say much about the case where keyArg is not one of the valid ones
      // (https://w3c.github.io/uievents-key/#keys-modifier), but at least Chrome returns false for invalid modifiers. Since
      // these invalid modifiers will be undefined on `this` (thus `false` after casting it to boolean), we don't need to do
      // extra checking for validity.
      getModifierState(keyArg) {
        if (keyArg === "Control") {
          return Boolean(this.ctrlKey);
        }
        if (["Alt", "Meta", "Shift"].includes(keyArg)) {
          return Boolean(this[`${keyArg.toLowerCase()}Key`]);
        }
        return Boolean(this[`modifier${keyArg}`]);
      }
    };
    exports.implementation = EventModifierMixinImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/MouseEvent-impl.js
var require_MouseEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/MouseEvent-impl.js"(exports, module) {
    "use strict";
    var { mixin: mixin2 } = require_utils17();
    var EventModifierMixinImpl = require_EventModifierMixin_impl().implementation;
    var UIEventImpl = require_UIEvent_impl().implementation;
    var MouseEventInit = require_MouseEventInit();
    var MouseEventImpl = class extends UIEventImpl {
      get x() {
        return this.clientX;
      }
      get y() {
        return this.clientY;
      }
      get pageX() {
        return this.clientX;
      }
      get pageY() {
        return this.clientY;
      }
      get offsetX() {
        return this.pageX;
      }
      get offsetY() {
        return this.pageY;
      }
      initMouseEvent(type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget) {
        if (this._dispatchFlag) {
          return;
        }
        this.initUIEvent(type, bubbles, cancelable, view, detail);
        this.screenX = screenX;
        this.screenY = screenY;
        this.clientX = clientX;
        this.clientY = clientY;
        this.ctrlKey = ctrlKey;
        this.altKey = altKey;
        this.shiftKey = shiftKey;
        this.metaKey = metaKey;
        this.button = button;
        this.relatedTarget = relatedTarget;
      }
    };
    mixin2(MouseEventImpl.prototype, EventModifierMixinImpl.prototype);
    MouseEventImpl.defaultInit = MouseEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: MouseEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js
var require_MouseEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var MouseEventInit = require_MouseEventInit();
    var EventTarget2 = require_EventTarget();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var UIEvent = require_UIEvent();
    var interfaceName = "MouseEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'MouseEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["MouseEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      UIEvent._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class MouseEvent extends globalObject.UIEvent {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'MouseEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'MouseEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = MouseEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'MouseEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        getModifierState(keyArg) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getModifierState' called on an object that is not a valid instance of MouseEvent."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getModifierState' on 'MouseEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getModifierState' on 'MouseEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].getModifierState(...args);
        }
        initMouseEvent(typeArg) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'initMouseEvent' called on an object that is not a valid instance of MouseEvent."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'initMouseEvent' on 'MouseEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 3",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[3];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = utils2.tryImplForWrapper(curArg);
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[4];
            if (curArg !== void 0) {
              curArg = conversions["long"](curArg, {
                context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 5",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[5];
            if (curArg !== void 0) {
              curArg = conversions["long"](curArg, {
                context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 6",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[6];
            if (curArg !== void 0) {
              curArg = conversions["long"](curArg, {
                context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 7",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[7];
            if (curArg !== void 0) {
              curArg = conversions["long"](curArg, {
                context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 8",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[8];
            if (curArg !== void 0) {
              curArg = conversions["long"](curArg, {
                context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 9",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[9];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 10",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[10];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 11",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[11];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 12",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[12];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 13",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[13];
            if (curArg !== void 0) {
              curArg = conversions["short"](curArg, {
                context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 14",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[14];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = EventTarget2.convert(globalObject, curArg, {
                  context: "Failed to execute 'initMouseEvent' on 'MouseEvent': parameter 15"
                });
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].initMouseEvent(...args);
        }
        get screenX() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get screenX' called on an object that is not a valid instance of MouseEvent."
            );
          }
          return esValue[implSymbol]["screenX"];
        }
        get screenY() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get screenY' called on an object that is not a valid instance of MouseEvent."
            );
          }
          return esValue[implSymbol]["screenY"];
        }
        get clientX() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get clientX' called on an object that is not a valid instance of MouseEvent."
            );
          }
          return esValue[implSymbol]["clientX"];
        }
        get clientY() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get clientY' called on an object that is not a valid instance of MouseEvent."
            );
          }
          return esValue[implSymbol]["clientY"];
        }
        get ctrlKey() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ctrlKey' called on an object that is not a valid instance of MouseEvent."
            );
          }
          return esValue[implSymbol]["ctrlKey"];
        }
        get shiftKey() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get shiftKey' called on an object that is not a valid instance of MouseEvent."
            );
          }
          return esValue[implSymbol]["shiftKey"];
        }
        get altKey() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get altKey' called on an object that is not a valid instance of MouseEvent."
            );
          }
          return esValue[implSymbol]["altKey"];
        }
        get metaKey() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get metaKey' called on an object that is not a valid instance of MouseEvent."
            );
          }
          return esValue[implSymbol]["metaKey"];
        }
        get button() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get button' called on an object that is not a valid instance of MouseEvent."
            );
          }
          return esValue[implSymbol]["button"];
        }
        get buttons() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get buttons' called on an object that is not a valid instance of MouseEvent."
            );
          }
          return esValue[implSymbol]["buttons"];
        }
        get relatedTarget() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get relatedTarget' called on an object that is not a valid instance of MouseEvent."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["relatedTarget"]);
        }
        get pageX() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get pageX' called on an object that is not a valid instance of MouseEvent.");
          }
          return esValue[implSymbol]["pageX"];
        }
        get pageY() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get pageY' called on an object that is not a valid instance of MouseEvent.");
          }
          return esValue[implSymbol]["pageY"];
        }
        get x() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get x' called on an object that is not a valid instance of MouseEvent.");
          }
          return esValue[implSymbol]["x"];
        }
        get y() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get y' called on an object that is not a valid instance of MouseEvent.");
          }
          return esValue[implSymbol]["y"];
        }
        get offsetX() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get offsetX' called on an object that is not a valid instance of MouseEvent."
            );
          }
          return esValue[implSymbol]["offsetX"];
        }
        get offsetY() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get offsetY' called on an object that is not a valid instance of MouseEvent."
            );
          }
          return esValue[implSymbol]["offsetY"];
        }
      }
      Object.defineProperties(MouseEvent.prototype, {
        getModifierState: { enumerable: true },
        initMouseEvent: { enumerable: true },
        screenX: { enumerable: true },
        screenY: { enumerable: true },
        clientX: { enumerable: true },
        clientY: { enumerable: true },
        ctrlKey: { enumerable: true },
        shiftKey: { enumerable: true },
        altKey: { enumerable: true },
        metaKey: { enumerable: true },
        button: { enumerable: true },
        buttons: { enumerable: true },
        relatedTarget: { enumerable: true },
        pageX: { enumerable: true },
        pageY: { enumerable: true },
        x: { enumerable: true },
        y: { enumerable: true },
        offsetX: { enumerable: true },
        offsetY: { enumerable: true },
        [Symbol.toStringTag]: { value: "MouseEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = MouseEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: MouseEvent
      });
    };
    var Impl = require_MouseEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js
var require_EventTarget_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var reportException = require_runtime_script_errors();
    var idlUtils = require_utils16();
    var { nodeRoot } = require_node4();
    var {
      isNode,
      isShadowRoot,
      isSlotable,
      getEventTargetParent,
      isShadowInclusiveAncestor,
      retarget
    } = require_shadow_dom();
    var MouseEvent = require_MouseEvent();
    var EVENT_PHASE = {
      NONE: 0,
      CAPTURING_PHASE: 1,
      AT_TARGET: 2,
      BUBBLING_PHASE: 3
    };
    var EventTargetImpl = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
        this._eventListeners = /* @__PURE__ */ Object.create(null);
      }
      addEventListener(type, callback, options) {
        options = normalizeEventHandlerOptions(options, ["capture", "once", "passive"]);
        if (options.signal !== null && options.signal.aborted) {
          return;
        }
        if (callback === null) {
          return;
        }
        if (!this._eventListeners[type]) {
          this._eventListeners[type] = [];
        }
        for (let i5 = 0; i5 < this._eventListeners[type].length; ++i5) {
          const listener = this._eventListeners[type][i5];
          if (listener.callback.objectReference === callback.objectReference && listener.options.capture === options.capture) {
            return;
          }
        }
        this._eventListeners[type].push({
          callback,
          options
        });
        if (options.signal !== null) {
          options.signal._addAlgorithm(() => {
            this.removeEventListener(type, callback, options);
          });
        }
      }
      removeEventListener(type, callback, options) {
        options = normalizeEventHandlerOptions(options, ["capture"]);
        if (callback === null) {
          return;
        }
        if (!this._eventListeners[type]) {
          return;
        }
        for (let i5 = 0; i5 < this._eventListeners[type].length; ++i5) {
          const listener = this._eventListeners[type][i5];
          if (listener.callback.objectReference === callback.objectReference && listener.options.capture === options.capture) {
            this._eventListeners[type].splice(i5, 1);
            break;
          }
        }
      }
      dispatchEvent(eventImpl) {
        if (eventImpl._dispatchFlag || !eventImpl._initializedFlag) {
          throw DOMException2.create(this._globalObject, [
            "Tried to dispatch an uninitialized event",
            "InvalidStateError"
          ]);
        }
        if (eventImpl.eventPhase !== EVENT_PHASE.NONE) {
          throw DOMException2.create(this._globalObject, [
            "Tried to dispatch a dispatching event",
            "InvalidStateError"
          ]);
        }
        eventImpl.isTrusted = false;
        return this._dispatch(eventImpl);
      }
      // https://dom.spec.whatwg.org/#get-the-parent
      _getTheParent() {
        return null;
      }
      // https://dom.spec.whatwg.org/#concept-event-dispatch
      // legacyOutputDidListenersThrowFlag optional parameter is not necessary here since it is only used by indexDB.
      _dispatch(eventImpl, legacyTargetOverrideFlag) {
        let targetImpl = this;
        let clearTargets = false;
        let activationTarget = null;
        eventImpl._dispatchFlag = true;
        const targetOverride = legacyTargetOverrideFlag ? idlUtils.implForWrapper(targetImpl._globalObject._document) : targetImpl;
        let relatedTarget = retarget(eventImpl.relatedTarget, targetImpl);
        if (targetImpl !== relatedTarget || targetImpl === eventImpl.relatedTarget) {
          const touchTargets = [];
          appendToEventPath(eventImpl, targetImpl, targetOverride, relatedTarget, touchTargets, false);
          const isActivationEvent = MouseEvent.isImpl(eventImpl) && eventImpl.type === "click";
          if (isActivationEvent && targetImpl._hasActivationBehavior) {
            activationTarget = targetImpl;
          }
          let slotInClosedTree = false;
          let slotable = isSlotable(targetImpl) && targetImpl._assignedSlot ? targetImpl : null;
          let parent = getEventTargetParent(targetImpl, eventImpl);
          while (parent !== null) {
            if (slotable !== null) {
              if (parent.localName !== "slot") {
                throw new Error(`JSDOM Internal Error: Expected parent to be a Slot`);
              }
              slotable = null;
              const parentRoot = nodeRoot(parent);
              if (isShadowRoot(parentRoot) && parentRoot.mode === "closed") {
                slotInClosedTree = true;
              }
            }
            if (isSlotable(parent) && parent._assignedSlot) {
              slotable = parent;
            }
            relatedTarget = retarget(eventImpl.relatedTarget, parent);
            if (isNode(parent) && isShadowInclusiveAncestor(nodeRoot(targetImpl), parent) || idlUtils.wrapperForImpl(parent).constructor.name === "Window") {
              if (isActivationEvent && eventImpl.bubbles && activationTarget === null && parent._hasActivationBehavior) {
                activationTarget = parent;
              }
              appendToEventPath(eventImpl, parent, null, relatedTarget, touchTargets, slotInClosedTree);
            } else if (parent === relatedTarget) {
              parent = null;
            } else {
              targetImpl = parent;
              if (isActivationEvent && activationTarget === null && targetImpl._hasActivationBehavior) {
                activationTarget = targetImpl;
              }
              appendToEventPath(eventImpl, parent, targetImpl, relatedTarget, touchTargets, slotInClosedTree);
            }
            if (parent !== null) {
              parent = getEventTargetParent(parent, eventImpl);
            }
            slotInClosedTree = false;
          }
          let clearTargetsStructIndex = -1;
          for (let i5 = eventImpl._path.length - 1; i5 >= 0 && clearTargetsStructIndex === -1; i5--) {
            if (eventImpl._path[i5].target !== null) {
              clearTargetsStructIndex = i5;
            }
          }
          const clearTargetsStruct = eventImpl._path[clearTargetsStructIndex];
          clearTargets = isNode(clearTargetsStruct.target) && isShadowRoot(nodeRoot(clearTargetsStruct.target)) || isNode(clearTargetsStruct.relatedTarget) && isShadowRoot(nodeRoot(clearTargetsStruct.relatedTarget));
          if (activationTarget !== null && activationTarget._legacyPreActivationBehavior) {
            activationTarget._legacyPreActivationBehavior();
          }
          for (let i5 = eventImpl._path.length - 1; i5 >= 0; --i5) {
            const struct = eventImpl._path[i5];
            if (struct.target !== null) {
              eventImpl.eventPhase = EVENT_PHASE.AT_TARGET;
            } else {
              eventImpl.eventPhase = EVENT_PHASE.CAPTURING_PHASE;
            }
            invokeEventListeners(struct, eventImpl, "capturing");
          }
          for (let i5 = 0; i5 < eventImpl._path.length; i5++) {
            const struct = eventImpl._path[i5];
            if (struct.target !== null) {
              eventImpl.eventPhase = EVENT_PHASE.AT_TARGET;
            } else {
              if (!eventImpl.bubbles) {
                continue;
              }
              eventImpl.eventPhase = EVENT_PHASE.BUBBLING_PHASE;
            }
            invokeEventListeners(struct, eventImpl, "bubbling");
          }
        }
        eventImpl.eventPhase = EVENT_PHASE.NONE;
        eventImpl.currentTarget = null;
        eventImpl._path = [];
        eventImpl._dispatchFlag = false;
        eventImpl._stopPropagationFlag = false;
        eventImpl._stopImmediatePropagationFlag = false;
        if (clearTargets) {
          eventImpl.target = null;
          eventImpl.relatedTarget = null;
        }
        if (activationTarget !== null) {
          if (!eventImpl._canceledFlag) {
            activationTarget._activationBehavior(eventImpl);
          } else if (activationTarget._legacyCanceledActivationBehavior) {
            activationTarget._legacyCanceledActivationBehavior();
          }
        }
        return !eventImpl._canceledFlag;
      }
    };
    module.exports = {
      implementation: EventTargetImpl
    };
    function invokeEventListeners(struct, eventImpl, phase) {
      const structIndex = eventImpl._path.indexOf(struct);
      for (let i5 = structIndex; i5 >= 0; i5--) {
        const t4 = eventImpl._path[i5];
        if (t4.target) {
          eventImpl.target = t4.target;
          break;
        }
      }
      eventImpl.relatedTarget = idlUtils.wrapperForImpl(struct.relatedTarget);
      if (eventImpl._stopPropagationFlag) {
        return;
      }
      eventImpl.currentTarget = idlUtils.wrapperForImpl(struct.item);
      const listeners = struct.item._eventListeners;
      innerInvokeEventListeners(eventImpl, listeners, phase, struct.itemInShadowTree);
    }
    function innerInvokeEventListeners(eventImpl, listeners, phase, itemInShadowTree) {
      let found = false;
      const { type, target } = eventImpl;
      const wrapper = idlUtils.wrapperForImpl(target);
      if (!listeners || !listeners[type]) {
        return found;
      }
      const handlers3 = listeners[type].slice();
      for (let i5 = 0; i5 < handlers3.length; i5++) {
        const listener = handlers3[i5];
        const { capture, once, passive } = listener.options;
        if (!listeners[type].includes(listener)) {
          continue;
        }
        found = true;
        if (phase === "capturing" && !capture || phase === "bubbling" && capture) {
          continue;
        }
        if (once) {
          listeners[type].splice(listeners[type].indexOf(listener), 1);
        }
        let window2 = null;
        if (wrapper && wrapper._document) {
          window2 = wrapper;
        } else if (target._ownerDocument) {
          window2 = target._ownerDocument._defaultView;
        } else if (wrapper._ownerDocument) {
          window2 = wrapper._ownerDocument._defaultView;
        }
        let currentEvent;
        if (window2) {
          currentEvent = window2._currentEvent;
          if (!itemInShadowTree) {
            window2._currentEvent = eventImpl;
          }
        }
        if (passive) {
          eventImpl._inPassiveListenerFlag = true;
        }
        try {
          listener.callback.call(eventImpl.currentTarget, eventImpl);
        } catch (e4) {
          if (window2) {
            reportException(window2, e4);
          }
        }
        eventImpl._inPassiveListenerFlag = false;
        if (window2) {
          window2._currentEvent = currentEvent;
        }
        if (eventImpl._stopImmediatePropagationFlag) {
          return found;
        }
      }
      return found;
    }
    function normalizeEventHandlerOptions(options, defaultBoolKeys) {
      const returnValue = { signal: null };
      if (typeof options === "boolean" || options === null || typeof options === "undefined") {
        returnValue.capture = Boolean(options);
        return returnValue;
      }
      if (typeof options !== "object") {
        returnValue.capture = Boolean(options);
        defaultBoolKeys = defaultBoolKeys.filter((k3) => k3 !== "capture");
      }
      for (const key of defaultBoolKeys) {
        returnValue[key] = Boolean(options[key]);
      }
      if (options.signal !== void 0) {
        returnValue.signal = options.signal;
      }
      return returnValue;
    }
    function appendToEventPath(eventImpl, target, targetOverride, relatedTarget, touchTargets, slotInClosedTree) {
      const itemInShadowTree = isNode(target) && isShadowRoot(nodeRoot(target));
      const rootOfClosedTree = isShadowRoot(target) && target.mode === "closed";
      eventImpl._path.push({
        item: target,
        itemInShadowTree,
        target: targetOverride,
        relatedTarget,
        touchTargets,
        rootOfClosedTree,
        slotInClosedTree
      });
    }
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js
var require_AbortSignal_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js"(exports, module) {
    "use strict";
    var { setupForSimpleEventAccessors } = require_create_event_accessor();
    var { fireAnEvent } = require_events4();
    var EventTargetImpl = require_EventTarget_impl().implementation;
    var AbortSignal2 = require_AbortSignal();
    var DOMException2 = require_DOMException();
    var AbortSignalImpl = class extends EventTargetImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._ownerDocument = globalObject.document;
        this.reason = void 0;
        this.abortAlgorithms = /* @__PURE__ */ new Set();
        this._dependent = false;
        this._sourceSignals = /* @__PURE__ */ new Set();
        this._dependentSignals = /* @__PURE__ */ new Set();
      }
      get aborted() {
        return this.reason !== void 0;
      }
      throwIfAborted() {
        if (this.aborted) {
          throw this.reason;
        }
      }
      static abort(globalObject, reason) {
        const abortSignal = AbortSignal2.createImpl(globalObject, []);
        if (reason !== void 0) {
          abortSignal.reason = reason;
        } else {
          abortSignal.reason = DOMException2.create(globalObject, ["The operation was aborted.", "AbortError"]);
        }
        return abortSignal;
      }
      // https://dom.spec.whatwg.org/#abortsignal-dependent
      static any(globalObject, signals) {
        const resultSignal = AbortSignal2.createImpl(globalObject, []);
        for (const signal of signals) {
          if (signal.aborted) {
            resultSignal.reason = signal.reason;
            return resultSignal;
          }
        }
        resultSignal.dependent = true;
        for (const signal of signals) {
          if (!signal.dependent) {
            resultSignal._sourceSignals.add(signal);
            signal._dependentSignals.add(resultSignal);
          } else {
            for (const sourceSignal of signal._sourceSignals) {
              if (!sourceSignal.aborted && !sourceSignal.dependent) {
                resultSignal._sourceSignals.add(sourceSignal);
                sourceSignal._dependentSignals.add(resultSignal);
              }
            }
          }
        }
        return resultSignal;
      }
      static timeout(globalObject, milliseconds) {
        const signal = AbortSignal2.createImpl(globalObject, []);
        globalObject.setTimeout(() => {
          signal._signalAbort(DOMException2.create(globalObject, ["The operation timed out.", "TimeoutError"]));
        }, milliseconds);
        return signal;
      }
      // https://dom.spec.whatwg.org/#abortsignal-signal-abort
      _signalAbort(reason) {
        if (this.aborted) {
          return;
        }
        if (reason !== void 0) {
          this.reason = reason;
        } else {
          this.reason = DOMException2.create(this._globalObject, ["The operation was aborted.", "AbortError"]);
        }
        const dependentSignalsToAbort = [];
        for (const dependentSignal of this._dependentSignals) {
          if (!dependentSignal.aborted) {
            dependentSignal.reason = this.reason;
            dependentSignalsToAbort.push(dependentSignal);
          }
        }
        this._runAbortStep();
        for (const dependentSignal of dependentSignalsToAbort) {
          dependentSignal._runAbortStep();
        }
      }
      _runAbortStep() {
        for (const algorithm of this.abortAlgorithms) {
          algorithm();
        }
        this.abortAlgorithms.clear();
        fireAnEvent("abort", this);
      }
      _addAlgorithm(algorithm) {
        if (this.aborted) {
          return;
        }
        this.abortAlgorithms.add(algorithm);
      }
      _removeAlgorithm(algorithm) {
        this.abortAlgorithms.delete(algorithm);
      }
    };
    setupForSimpleEventAccessors(AbortSignalImpl.prototype, ["abort"]);
    module.exports = {
      implementation: AbortSignalImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js
var require_AbortSignal = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventHandlerNonNull = require_EventHandlerNonNull();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var EventTarget2 = require_EventTarget();
    var interfaceName = "AbortSignal";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'AbortSignal'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["AbortSignal"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      EventTarget2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class AbortSignal2 extends globalObject.EventTarget {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        throwIfAborted() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'throwIfAborted' called on an object that is not a valid instance of AbortSignal."
            );
          }
          return esValue[implSymbol].throwIfAborted();
        }
        get aborted() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get aborted' called on an object that is not a valid instance of AbortSignal."
            );
          }
          return esValue[implSymbol]["aborted"];
        }
        get reason() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get reason' called on an object that is not a valid instance of AbortSignal."
            );
          }
          return esValue[implSymbol]["reason"];
        }
        get onabort() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onabort' called on an object that is not a valid instance of AbortSignal."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onabort"]);
        }
        set onabort(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onabort' called on an object that is not a valid instance of AbortSignal."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onabort' property on 'AbortSignal': The provided value"
            });
          }
          esValue[implSymbol]["onabort"] = V;
        }
        static abort() {
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["any"](curArg, {
                context: "Failed to execute 'abort' on 'AbortSignal': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(Impl.implementation.abort(globalObject, ...args));
        }
        static timeout(milliseconds) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'timeout' on 'AbortSignal': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long long"](curArg, {
              context: "Failed to execute 'timeout' on 'AbortSignal': parameter 1",
              globals: globalObject,
              enforceRange: true
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(Impl.implementation.timeout(globalObject, ...args));
        }
        static any(signals) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'any' on 'AbortSignal': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (!utils2.isObject(curArg)) {
              throw new globalObject.TypeError(
                "Failed to execute 'any' on 'AbortSignal': parameter 1 is not an iterable object."
              );
            } else {
              const V = [];
              const tmp = curArg;
              for (let nextItem of tmp) {
                nextItem = exports.convert(globalObject, nextItem, {
                  context: "Failed to execute 'any' on 'AbortSignal': parameter 1's element"
                });
                V.push(nextItem);
              }
              curArg = V;
            }
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(Impl.implementation.any(globalObject, ...args));
        }
      }
      Object.defineProperties(AbortSignal2.prototype, {
        throwIfAborted: { enumerable: true },
        aborted: { enumerable: true },
        reason: { enumerable: true },
        onabort: { enumerable: true },
        [Symbol.toStringTag]: { value: "AbortSignal", configurable: true }
      });
      Object.defineProperties(AbortSignal2, {
        abort: { enumerable: true },
        timeout: { enumerable: true },
        any: { enumerable: true }
      });
      ctorRegistry[interfaceName] = AbortSignal2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: AbortSignal2
      });
    };
    var Impl = require_AbortSignal_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js
var require_EventListenerOptions = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      {
        const key = "capture";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, { context: context + " has member 'capture' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js
var require_AddEventListenerOptions = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var AbortSignal2 = require_AbortSignal();
    var EventListenerOptions = require_EventListenerOptions();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventListenerOptions._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "once";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, { context: context + " has member 'once' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "passive";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, { context: context + " has member 'passive' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "signal";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = AbortSignal2.convert(globalObject, value2, { context: context + " has member 'signal' that" });
          ret[key] = value2;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js
var require_EventTarget = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventListener = require_EventListener();
    var AddEventListenerOptions = require_AddEventListenerOptions();
    var EventListenerOptions = require_EventListenerOptions();
    var Event2 = require_Event();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "EventTarget";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'EventTarget'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["EventTarget"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker", "AudioWorklet"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class EventTarget2 {
        constructor() {
          return exports.setup(Object.create(new.target.prototype), globalObject, void 0);
        }
        addEventListener(type, callback) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'addEventListener' called on an object that is not a valid instance of EventTarget."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'addEventListener' on 'EventTarget': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'addEventListener' on 'EventTarget': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = EventListener.convert(globalObject, curArg, {
                context: "Failed to execute 'addEventListener' on 'EventTarget': parameter 2"
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = AddEventListenerOptions.convert(globalObject, curArg, {
                  context: "Failed to execute 'addEventListener' on 'EventTarget': parameter 3"
                });
              } else if (utils2.isObject(curArg)) {
                curArg = AddEventListenerOptions.convert(globalObject, curArg, {
                  context: "Failed to execute 'addEventListener' on 'EventTarget': parameter 3 dictionary"
                });
              } else if (typeof curArg === "boolean") {
                curArg = conversions["boolean"](curArg, {
                  context: "Failed to execute 'addEventListener' on 'EventTarget': parameter 3",
                  globals: globalObject
                });
              } else {
                curArg = conversions["boolean"](curArg, {
                  context: "Failed to execute 'addEventListener' on 'EventTarget': parameter 3",
                  globals: globalObject
                });
              }
            }
            args.push(curArg);
          }
          return esValue[implSymbol].addEventListener(...args);
        }
        removeEventListener(type, callback) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'removeEventListener' called on an object that is not a valid instance of EventTarget."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'removeEventListener' on 'EventTarget': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'removeEventListener' on 'EventTarget': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = EventListener.convert(globalObject, curArg, {
                context: "Failed to execute 'removeEventListener' on 'EventTarget': parameter 2"
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = EventListenerOptions.convert(globalObject, curArg, {
                  context: "Failed to execute 'removeEventListener' on 'EventTarget': parameter 3"
                });
              } else if (utils2.isObject(curArg)) {
                curArg = EventListenerOptions.convert(globalObject, curArg, {
                  context: "Failed to execute 'removeEventListener' on 'EventTarget': parameter 3 dictionary"
                });
              } else if (typeof curArg === "boolean") {
                curArg = conversions["boolean"](curArg, {
                  context: "Failed to execute 'removeEventListener' on 'EventTarget': parameter 3",
                  globals: globalObject
                });
              } else {
                curArg = conversions["boolean"](curArg, {
                  context: "Failed to execute 'removeEventListener' on 'EventTarget': parameter 3",
                  globals: globalObject
                });
              }
            }
            args.push(curArg);
          }
          return esValue[implSymbol].removeEventListener(...args);
        }
        dispatchEvent(event) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'dispatchEvent' called on an object that is not a valid instance of EventTarget."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'dispatchEvent' on 'EventTarget': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Event2.convert(globalObject, curArg, {
              context: "Failed to execute 'dispatchEvent' on 'EventTarget': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].dispatchEvent(...args);
        }
      }
      Object.defineProperties(EventTarget2.prototype, {
        addEventListener: { enumerable: true },
        removeEventListener: { enumerable: true },
        dispatchEvent: { enumerable: true },
        [Symbol.toStringTag]: { value: "EventTarget", configurable: true }
      });
      ctorRegistry[interfaceName] = EventTarget2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: EventTarget2
      });
    };
    var Impl = require_EventTarget_impl();
  }
});

// ../../node_modules/.pnpm/is-potential-custom-element-name@1.0.1/node_modules/is-potential-custom-element-name/index.js
var require_is_potential_custom_element_name = __commonJS({
  "../../node_modules/.pnpm/is-potential-custom-element-name@1.0.1/node_modules/is-potential-custom-element-name/index.js"(exports, module) {
    var regex2 = /^[a-z](?:[\.0-9_a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*-(?:[\x2D\.0-9_a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*$/;
    var isPotentialCustomElementName = function(string) {
      return regex2.test(string);
    };
    module.exports = isPotentialCustomElementName;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/custom-elements.js
var require_custom_elements = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/custom-elements.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var isPotentialCustomElementName = require_is_potential_custom_element_name();
    var NODE_TYPE = require_node_type();
    var { HTML_NS } = require_namespaces();
    var { shadowIncludingRoot } = require_shadow_dom();
    var reportException = require_runtime_script_errors();
    var { implForWrapper, wrapperForImpl } = require_utils16();
    var CEReactionsStack = class {
      constructor() {
        this._stack = [];
        this.backupElementQueue = [];
        this.processingBackupElementQueue = false;
      }
      push(elementQueue) {
        this._stack.push(elementQueue);
      }
      pop() {
        return this._stack.pop();
      }
      get currentElementQueue() {
        const { _stack } = this;
        return _stack[_stack.length - 1];
      }
      isEmpty() {
        return this._stack.length === 0;
      }
    };
    var customElementReactionsStack = new CEReactionsStack();
    function ceReactionsPreSteps() {
      customElementReactionsStack.push([]);
    }
    function ceReactionsPostSteps() {
      const queue = customElementReactionsStack.pop();
      invokeCEReactions(queue);
    }
    var RESTRICTED_CUSTOM_ELEMENT_NAME = /* @__PURE__ */ new Set([
      "annotation-xml",
      "color-profile",
      "font-face",
      "font-face-src",
      "font-face-uri",
      "font-face-format",
      "font-face-name",
      "missing-glyph"
    ]);
    function isValidCustomElementName(name) {
      if (RESTRICTED_CUSTOM_ELEMENT_NAME.has(name)) {
        return false;
      }
      return isPotentialCustomElementName(name);
    }
    function upgradeElement(definition, element) {
      if (element._ceState !== "undefined" || element._ceState === "uncustomized") {
        return;
      }
      element._ceDefinition = definition;
      element._ceState = "failed";
      for (const attribute of element._attributeList) {
        const { _localName, _namespace, _value } = attribute;
        enqueueCECallbackReaction(element, "attributeChangedCallback", [_localName, null, _value, _namespace]);
      }
      if (shadowIncludingRoot(element).nodeType === NODE_TYPE.DOCUMENT_NODE) {
        enqueueCECallbackReaction(element, "connectedCallback", []);
      }
      definition.constructionStack.push(element);
      const { constructionStack, constructor: C } = definition;
      let constructionError;
      try {
        if (definition.disableShadow === true && element._shadowRoot !== null) {
          throw DOMException2.create(element._globalObject, [
            "Can't upgrade a custom element with a shadow root if shadow is disabled",
            "NotSupportedError"
          ]);
        }
        element._ceState = "precustomized";
        const constructionResult = C.construct();
        const constructionResultImpl = implForWrapper(constructionResult);
        if (constructionResultImpl !== element) {
          throw new TypeError("Invalid custom element constructor return value");
        }
      } catch (error) {
        constructionError = error;
      }
      constructionStack.pop();
      if (constructionError !== void 0) {
        element._ceDefinition = null;
        element._ceReactionQueue = [];
        throw constructionError;
      }
      element._ceState = "custom";
    }
    function tryUpgradeElement(element) {
      const { _ownerDocument, _namespaceURI, _localName, _isValue } = element;
      const definition = lookupCEDefinition(_ownerDocument, _namespaceURI, _localName, _isValue);
      if (definition !== null) {
        enqueueCEUpgradeReaction(element, definition);
      }
    }
    function lookupCEDefinition(document2, namespace, localName, isValue) {
      const definition = null;
      if (namespace !== HTML_NS) {
        return definition;
      }
      if (!document2._defaultView) {
        return definition;
      }
      const registry = implForWrapper(document2._globalObject._customElementRegistry);
      const definitionByName = registry._customElementDefinitions.find((def) => {
        return def.name === def.localName && def.localName === localName;
      });
      if (definitionByName !== void 0) {
        return definitionByName;
      }
      const definitionByIs = registry._customElementDefinitions.find((def) => {
        return def.name === isValue && def.localName === localName;
      });
      if (definitionByIs !== void 0) {
        return definitionByIs;
      }
      return definition;
    }
    function invokeCEReactions(elementQueue) {
      while (elementQueue.length > 0) {
        const element = elementQueue.shift();
        const reactions = element._ceReactionQueue;
        try {
          while (reactions.length > 0) {
            const reaction = reactions.shift();
            switch (reaction.type) {
              case "upgrade":
                upgradeElement(reaction.definition, element);
                break;
              case "callback":
                reaction.callback.apply(wrapperForImpl(element), reaction.args);
                break;
            }
          }
        } catch (error) {
          reportException(element._globalObject, error);
        }
      }
    }
    function enqueueElementOnAppropriateElementQueue(element) {
      if (customElementReactionsStack.isEmpty()) {
        customElementReactionsStack.backupElementQueue.push(element);
        if (customElementReactionsStack.processingBackupElementQueue) {
          return;
        }
        customElementReactionsStack.processingBackupElementQueue = true;
        Promise.resolve().then(() => {
          const elementQueue = customElementReactionsStack.backupElementQueue;
          invokeCEReactions(elementQueue);
          customElementReactionsStack.processingBackupElementQueue = false;
        });
      } else {
        customElementReactionsStack.currentElementQueue.push(element);
      }
    }
    function enqueueCECallbackReaction(element, callbackName, args) {
      const { _ceDefinition: { lifecycleCallbacks, observedAttributes } } = element;
      const callback = lifecycleCallbacks[callbackName];
      if (callback === null) {
        return;
      }
      if (callbackName === "attributeChangedCallback") {
        const attributeName = args[0];
        if (!observedAttributes.includes(attributeName)) {
          return;
        }
      }
      element._ceReactionQueue.push({
        type: "callback",
        callback,
        args
      });
      enqueueElementOnAppropriateElementQueue(element);
    }
    function enqueueCEUpgradeReaction(element, definition) {
      element._ceReactionQueue.push({
        type: "upgrade",
        definition
      });
      enqueueElementOnAppropriateElementQueue(element);
    }
    module.exports = {
      customElementReactionsStack,
      ceReactionsPreSteps,
      ceReactionsPostSteps,
      isValidCustomElementName,
      upgradeElement,
      tryUpgradeElement,
      lookupCEDefinition,
      enqueueCEUpgradeReaction,
      enqueueCECallbackReaction,
      invokeCEReactions
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js
var require_GetRootNodeOptions = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      {
        const key = "composed";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'composed' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/node-document-position.js
var require_node_document_position = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/node-document-position.js"(exports, module) {
    "use strict";
    module.exports = Object.freeze({
      DOCUMENT_POSITION_DISCONNECTED: 1,
      DOCUMENT_POSITION_PRECEDING: 2,
      DOCUMENT_POSITION_FOLLOWING: 4,
      DOCUMENT_POSITION_CONTAINS: 8,
      DOCUMENT_POSITION_CONTAINED_BY: 16,
      DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32
    });
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/strings.js
var require_strings2 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/strings.js"(exports) {
    "use strict";
    var asciiWhitespaceRe = /^[\t\n\f\r ]$/;
    exports.asciiWhitespaceRe = asciiWhitespaceRe;
    exports.asciiLowercase = (s4) => {
      const len = s4.length;
      const out = new Array(len);
      for (let i5 = 0; i5 < len; i5++) {
        const code = s4.charCodeAt(i5);
        out[i5] = code >= 65 && code <= 90 ? String.fromCharCode(code | 32) : s4[i5];
      }
      return out.join("");
    };
    exports.asciiUppercase = (s4) => {
      const len = s4.length;
      const out = new Array(len);
      for (let i5 = 0; i5 < len; i5++) {
        const code = s4.charCodeAt(i5);
        out[i5] = code >= 97 && code <= 122 ? String.fromCharCode(code & ~32) : s4[i5];
      }
      return out.join("");
    };
    exports.stripNewlines = (s4) => {
      return s4.replace(/[\n\r]+/g, "");
    };
    exports.stripLeadingAndTrailingASCIIWhitespace = (s4) => {
      return s4.replace(/^[ \t\n\f\r]+/, "").replace(/[ \t\n\f\r]+$/, "");
    };
    exports.stripAndCollapseASCIIWhitespace = (s4) => {
      return s4.replace(/[ \t\n\f\r]+/g, " ").replace(/^[ \t\n\f\r]+/, "").replace(/[ \t\n\f\r]+$/, "");
    };
    exports.isValidSimpleColor = (s4) => {
      return /^#[a-fA-F\d]{6}$/.test(s4);
    };
    exports.asciiCaseInsensitiveMatch = (a5, b3) => {
      if (a5.length !== b3.length) {
        return false;
      }
      for (let i5 = 0; i5 < a5.length; ++i5) {
        if ((a5.charCodeAt(i5) | 32) !== (b3.charCodeAt(i5) | 32)) {
          return false;
        }
      }
      return true;
    };
    var parseInteger = exports.parseInteger = (input) => {
      const numWhitespace = input.length - input.trimStart().length;
      if (/[^\t\n\f\r ]/.test(input.slice(0, numWhitespace))) {
        return null;
      }
      const value2 = parseInt(input, 10);
      if (Number.isNaN(value2)) {
        return null;
      }
      return value2 === 0 ? 0 : value2;
    };
    exports.parseNonNegativeInteger = (input) => {
      const value2 = parseInteger(input);
      if (value2 === null) {
        return null;
      }
      if (value2 < 0) {
        return null;
      }
      return value2;
    };
    var floatingPointNumRe = /^-?(?:\d+|\d*\.\d+)(?:[eE][-+]?\d+)?$/;
    exports.isValidFloatingPointNumber = (str) => floatingPointNumRe.test(str);
    exports.parseFloatingPointNumber = (str) => {
      const numWhitespace = str.length - str.trimStart().length;
      if (/[^\t\n\f\r ]/.test(str.slice(0, numWhitespace))) {
        return null;
      }
      const parsed = parseFloat(str);
      return isFinite(parsed) ? parsed : null;
    };
    exports.splitOnASCIIWhitespace = (str) => {
      let position = 0;
      const tokens = [];
      while (position < str.length && asciiWhitespaceRe.test(str[position])) {
        position++;
      }
      if (position === str.length) {
        return tokens;
      }
      while (position < str.length) {
        const start2 = position;
        while (position < str.length && !asciiWhitespaceRe.test(str[position])) {
          position++;
        }
        tokens.push(str.slice(start2, position));
        while (position < str.length && asciiWhitespaceRe.test(str[position])) {
          position++;
        }
      }
      return tokens;
    };
    exports.splitOnCommas = (str) => {
      let position = 0;
      const tokens = [];
      while (position < str.length) {
        let start2 = position;
        while (position < str.length && str[position] !== ",") {
          position++;
        }
        let end2 = position;
        while (start2 < str.length && asciiWhitespaceRe.test(str[start2])) {
          start2++;
        }
        while (end2 > start2 && asciiWhitespaceRe.test(str[end2 - 1])) {
          end2--;
        }
        tokens.push(str.slice(start2, end2));
        if (position < str.length) {
          position++;
        }
      }
      return tokens;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/attributes.js
var require_attributes3 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/attributes.js"(exports) {
    "use strict";
    var DOMException2 = require_DOMException();
    var { HTML_NS } = require_namespaces();
    var { asciiLowercase } = require_strings2();
    var { queueAttributeMutationRecord } = require_mutation_observers();
    var { enqueueCECallbackReaction } = require_custom_elements();
    exports.hasAttribute = function(element, A) {
      return element._attributeList.includes(A);
    };
    exports.hasAttributeByName = function(element, name) {
      return element._attributesByNameMap.has(name);
    };
    exports.hasAttributeByNameNS = function(element, namespace, localName) {
      return element._attributeList.some((attribute) => {
        return attribute._localName === localName && attribute._namespace === namespace;
      });
    };
    exports.changeAttribute = (element, attribute, value2) => {
      const { _localName, _namespace, _value } = attribute;
      queueAttributeMutationRecord(element, _localName, _namespace, _value);
      if (element._ceState === "custom") {
        enqueueCECallbackReaction(element, "attributeChangedCallback", [
          _localName,
          _value,
          value2,
          _namespace
        ]);
      }
      attribute._value = value2;
      element._attrModified(attribute._qualifiedName, value2, _value);
    };
    exports.appendAttribute = function(element, attribute) {
      const { _localName, _namespace, _value } = attribute;
      queueAttributeMutationRecord(element, _localName, _namespace, null);
      if (element._ceState === "custom") {
        enqueueCECallbackReaction(element, "attributeChangedCallback", [
          _localName,
          null,
          _value,
          _namespace
        ]);
      }
      const attributeList = element._attributeList;
      attributeList.push(attribute);
      attribute._element = element;
      const name = attribute._qualifiedName;
      const cache2 = element._attributesByNameMap;
      let entry = cache2.get(name);
      if (!entry) {
        entry = [];
        cache2.set(name, entry);
      }
      entry.push(attribute);
      element._attrModified(name, _value, null);
    };
    exports.removeAttribute = function(element, attribute) {
      const { _localName, _namespace, _value } = attribute;
      queueAttributeMutationRecord(element, _localName, _namespace, _value);
      if (element._ceState === "custom") {
        enqueueCECallbackReaction(element, "attributeChangedCallback", [
          _localName,
          _value,
          null,
          _namespace
        ]);
      }
      const attributeList = element._attributeList;
      for (let i5 = 0; i5 < attributeList.length; ++i5) {
        if (attributeList[i5] === attribute) {
          attributeList.splice(i5, 1);
          attribute._element = null;
          const name = attribute._qualifiedName;
          const cache2 = element._attributesByNameMap;
          const entry = cache2.get(name);
          entry.splice(entry.indexOf(attribute), 1);
          if (entry.length === 0) {
            cache2.delete(name);
          }
          element._attrModified(name, null, attribute._value);
          return;
        }
      }
    };
    exports.replaceAttribute = function(element, oldAttr, newAttr) {
      const { _localName, _namespace, _value } = oldAttr;
      queueAttributeMutationRecord(element, _localName, _namespace, _value);
      if (element._ceState === "custom") {
        enqueueCECallbackReaction(element, "attributeChangedCallback", [
          _localName,
          _value,
          newAttr._value,
          _namespace
        ]);
      }
      const attributeList = element._attributeList;
      for (let i5 = 0; i5 < attributeList.length; ++i5) {
        if (attributeList[i5] === oldAttr) {
          attributeList.splice(i5, 1, newAttr);
          oldAttr._element = null;
          newAttr._element = element;
          const name = newAttr._qualifiedName;
          const cache2 = element._attributesByNameMap;
          let entry = cache2.get(name);
          if (!entry) {
            entry = [];
            cache2.set(name, entry);
          }
          entry.splice(entry.indexOf(oldAttr), 1, newAttr);
          element._attrModified(name, newAttr._value, oldAttr._value);
          return;
        }
      }
    };
    exports.getAttributeByName = function(element, name) {
      if (element._namespaceURI === HTML_NS && element._ownerDocument._parsingMode === "html") {
        name = asciiLowercase(name);
      }
      const cache2 = element._attributesByNameMap;
      const entry = cache2.get(name);
      if (!entry) {
        return null;
      }
      return entry[0];
    };
    exports.getAttributeByNameNS = function(element, namespace, localName) {
      if (namespace === "") {
        namespace = null;
      }
      const attributeList = element._attributeList;
      for (let i5 = 0; i5 < attributeList.length; ++i5) {
        const attr = attributeList[i5];
        if (attr._namespace === namespace && attr._localName === localName) {
          return attr;
        }
      }
      return null;
    };
    exports.getAttributeValue = function(element, localName) {
      const attr = exports.getAttributeByNameNS(element, null, localName);
      if (!attr) {
        return "";
      }
      return attr._value;
    };
    exports.getAttributeValueNS = function(element, namespace, localName) {
      const attr = exports.getAttributeByNameNS(element, namespace, localName);
      if (!attr) {
        return "";
      }
      return attr._value;
    };
    exports.setAttribute = function(element, attr) {
      if (attr._element !== null && attr._element !== element) {
        throw DOMException2.create(element._globalObject, ["The attribute is in use.", "InUseAttributeError"]);
      }
      const oldAttr = exports.getAttributeByNameNS(element, attr._namespace, attr._localName);
      if (oldAttr === attr) {
        return attr;
      }
      if (oldAttr !== null) {
        exports.replaceAttribute(element, oldAttr, attr);
      } else {
        exports.appendAttribute(element, attr);
      }
      return oldAttr;
    };
    exports.setAttributeValue = function(element, localName, value2, prefix, namespace) {
      if (prefix === void 0) {
        prefix = null;
      }
      if (namespace === void 0) {
        namespace = null;
      }
      const attribute = exports.getAttributeByNameNS(element, namespace, localName);
      if (attribute === null) {
        const newAttribute = element._ownerDocument._createAttribute({
          namespace,
          namespacePrefix: prefix,
          localName,
          value: value2
        });
        exports.appendAttribute(element, newAttribute);
        return;
      }
      exports.changeAttribute(element, attribute, value2);
    };
    exports.setAnExistingAttributeValue = (attribute, value2) => {
      const element = attribute._element;
      if (element === null) {
        attribute._value = value2;
      } else {
        exports.changeAttribute(element, attribute, value2);
      }
    };
    exports.removeAttributeByName = function(element, name) {
      const attr = exports.getAttributeByName(element, name);
      if (attr !== null) {
        exports.removeAttribute(element, attr);
      }
      return attr;
    };
    exports.removeAttributeByNameNS = function(element, namespace, localName) {
      const attr = exports.getAttributeByNameNS(element, namespace, localName);
      if (attr !== null) {
        exports.removeAttribute(element, attr);
      }
      return attr;
    };
    exports.attributeNames = function(element) {
      return element._attributeList.map((a5) => a5._qualifiedName);
    };
    exports.hasAttributes = function(element) {
      return element._attributeList.length > 0;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/ordered-set.js
var require_ordered_set = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/ordered-set.js"(exports, module) {
    "use strict";
    module.exports = class OrderedSet {
      constructor() {
        this._items = [];
      }
      append(item) {
        if (!this.contains(item)) {
          this._items.push(item);
        }
      }
      prepend(item) {
        if (!this.contains(item)) {
          this._items.unshift(item);
        }
      }
      replace(item, replacement) {
        let seen = false;
        for (let i5 = 0; i5 < this._items.length; ) {
          const isInstance = this._items[i5] === item || this._items[i5] === replacement;
          if (seen && isInstance) {
            this._items.splice(i5, 1);
          } else {
            if (isInstance) {
              this._items[i5] = replacement;
              seen = true;
            }
            i5++;
          }
        }
      }
      remove(...items) {
        this.removePredicate((item) => items.includes(item));
      }
      removePredicate(predicate) {
        for (let i5 = 0; i5 < this._items.length; ) {
          if (predicate(this._items[i5])) {
            this._items.splice(i5, 1);
          } else {
            i5++;
          }
        }
      }
      empty() {
        this._items.length = 0;
      }
      contains(item) {
        return this._items.includes(item);
      }
      get size() {
        return this._items.length;
      }
      isEmpty() {
        return this._items.length === 0;
      }
      // Useful for other parts of jsdom
      [Symbol.iterator]() {
        return this._items[Symbol.iterator]();
      }
      keys() {
        return this._items.keys();
      }
      get(index2) {
        return this._items[index2];
      }
      some(func) {
        return this._items.some(func);
      }
      // https://dom.spec.whatwg.org/#concept-ordered-set-parser
      static parse(input) {
        const tokens = new OrderedSet();
        for (const token of input.split(/[\t\n\f\r ]+/)) {
          if (token) {
            tokens.append(token);
          }
        }
        return tokens;
      }
      // https://dom.spec.whatwg.org/#concept-ordered-set-serializer
      serialize() {
        return this._items.join(" ");
      }
    };
  }
});

// ../../node_modules/.pnpm/xml-name-validator@5.0.0/node_modules/xml-name-validator/lib/xml-name-validator.js
var require_xml_name_validator = __commonJS({
  "../../node_modules/.pnpm/xml-name-validator@5.0.0/node_modules/xml-name-validator/lib/xml-name-validator.js"(exports) {
    "use strict";
    exports.name = (potentialName) => {
      return /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/u.test(potentialName);
    };
    exports.qname = (potentialQname) => {
      return /(?:^[A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}][A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*:[A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}][A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$)|(?:^[A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}][A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$)/u.test(potentialQname);
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/validate-names.js
var require_validate_names = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/validate-names.js"(exports) {
    "use strict";
    var xnv = require_xml_name_validator();
    var DOMException2 = require_DOMException();
    var { XML_NS, XMLNS_NS } = require_namespaces();
    exports.name = (globalObject, name) => {
      if (!xnv.name(name)) {
        throw DOMException2.create(globalObject, [`"${name}" did not match the Name production`, "InvalidCharacterError"]);
      }
    };
    exports.qname = (globalObject, qname) => {
      if (!xnv.qname(qname)) {
        throw DOMException2.create(globalObject, [`"${qname}" did not match the QName production`, "InvalidCharacterError"]);
      }
    };
    exports.validateAndExtract = (globalObject, namespace, qualifiedName) => {
      if (namespace === "") {
        namespace = null;
      }
      exports.qname(globalObject, qualifiedName);
      let prefix = null;
      let localName = qualifiedName;
      const colonIndex = qualifiedName.indexOf(":");
      if (colonIndex !== -1) {
        prefix = qualifiedName.substring(0, colonIndex);
        localName = qualifiedName.substring(colonIndex + 1);
      }
      if (prefix !== null && namespace === null) {
        throw DOMException2.create(globalObject, [
          "A namespace was given but a prefix was also extracted from the qualifiedName",
          "NamespaceError"
        ]);
      }
      if (prefix === "xml" && namespace !== XML_NS) {
        throw DOMException2.create(globalObject, [
          'A prefix of "xml" was given but the namespace was not the XML namespace',
          "NamespaceError"
        ]);
      }
      if ((qualifiedName === "xmlns" || prefix === "xmlns") && namespace !== XMLNS_NS) {
        throw DOMException2.create(globalObject, [
          'A prefix or qualifiedName of "xmlns" was given but the namespace was not the XMLNS namespace',
          "NamespaceError"
        ]);
      }
      if (namespace === XMLNS_NS && qualifiedName !== "xmlns" && prefix !== "xmlns") {
        throw DOMException2.create(globalObject, [
          'The XMLNS namespace was given but neither the prefix nor qualifiedName was "xmlns"',
          "NamespaceError"
        ]);
      }
      return { namespace, prefix, localName };
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/create-element.js
var require_create_element = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/create-element.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var interfaces = require_interfaces();
    var { implForWrapper } = require_utils16();
    var { HTML_NS, SVG_NS } = require_namespaces();
    var { domSymbolTree } = require_internal_constants();
    var { validateAndExtract } = require_validate_names();
    var reportException = require_runtime_script_errors();
    var {
      isValidCustomElementName,
      upgradeElement,
      lookupCEDefinition,
      enqueueCEUpgradeReaction
    } = require_custom_elements();
    var INTERFACE_TAG_MAPPING = {
      __proto__: null,
      // https://html.spec.whatwg.org/multipage/dom.html#elements-in-the-dom%3Aelement-interface
      // https://html.spec.whatwg.org/multipage/indices.html#elements-3
      [HTML_NS]: {
        __proto__: null,
        HTMLElement: [
          "abbr",
          "address",
          "article",
          "aside",
          "b",
          "bdi",
          "bdo",
          "cite",
          "code",
          "dd",
          "dfn",
          "dt",
          "em",
          "figcaption",
          "figure",
          "footer",
          "header",
          "hgroup",
          "i",
          "kbd",
          "main",
          "mark",
          "nav",
          "noscript",
          "rp",
          "rt",
          "ruby",
          "s",
          "samp",
          "section",
          "small",
          "strong",
          "sub",
          "summary",
          "sup",
          "u",
          "var",
          "wbr"
        ],
        HTMLAnchorElement: ["a"],
        HTMLAreaElement: ["area"],
        HTMLAudioElement: ["audio"],
        HTMLBaseElement: ["base"],
        HTMLBodyElement: ["body"],
        HTMLBRElement: ["br"],
        HTMLButtonElement: ["button"],
        HTMLCanvasElement: ["canvas"],
        HTMLDataElement: ["data"],
        HTMLDataListElement: ["datalist"],
        HTMLDetailsElement: ["details"],
        HTMLDialogElement: ["dialog"],
        HTMLDirectoryElement: ["dir"],
        HTMLDivElement: ["div"],
        HTMLDListElement: ["dl"],
        HTMLEmbedElement: ["embed"],
        HTMLFieldSetElement: ["fieldset"],
        HTMLFontElement: ["font"],
        HTMLFormElement: ["form"],
        HTMLFrameElement: ["frame"],
        HTMLFrameSetElement: ["frameset"],
        HTMLHeadingElement: ["h1", "h2", "h3", "h4", "h5", "h6"],
        HTMLHeadElement: ["head"],
        HTMLHRElement: ["hr"],
        HTMLHtmlElement: ["html"],
        HTMLIFrameElement: ["iframe"],
        HTMLImageElement: ["img"],
        HTMLInputElement: ["input"],
        HTMLLabelElement: ["label"],
        HTMLLegendElement: ["legend"],
        HTMLLIElement: ["li"],
        HTMLLinkElement: ["link"],
        HTMLMapElement: ["map"],
        HTMLMarqueeElement: ["marquee"],
        HTMLMediaElement: [],
        HTMLMenuElement: ["menu"],
        HTMLMetaElement: ["meta"],
        HTMLMeterElement: ["meter"],
        HTMLModElement: ["del", "ins"],
        HTMLObjectElement: ["object"],
        HTMLOListElement: ["ol"],
        HTMLOptGroupElement: ["optgroup"],
        HTMLOptionElement: ["option"],
        HTMLOutputElement: ["output"],
        HTMLParagraphElement: ["p"],
        HTMLParamElement: ["param"],
        HTMLPictureElement: ["picture"],
        HTMLPreElement: ["listing", "pre", "xmp"],
        HTMLProgressElement: ["progress"],
        HTMLQuoteElement: ["blockquote", "q"],
        HTMLScriptElement: ["script"],
        HTMLSelectElement: ["select"],
        HTMLSlotElement: ["slot"],
        HTMLSourceElement: ["source"],
        HTMLSpanElement: ["span"],
        HTMLStyleElement: ["style"],
        HTMLTableCaptionElement: ["caption"],
        HTMLTableCellElement: ["th", "td"],
        HTMLTableColElement: ["col", "colgroup"],
        HTMLTableElement: ["table"],
        HTMLTimeElement: ["time"],
        HTMLTitleElement: ["title"],
        HTMLTableRowElement: ["tr"],
        HTMLTableSectionElement: ["thead", "tbody", "tfoot"],
        HTMLTemplateElement: ["template"],
        HTMLTextAreaElement: ["textarea"],
        HTMLTrackElement: ["track"],
        HTMLUListElement: ["ul"],
        HTMLUnknownElement: [],
        HTMLVideoElement: ["video"]
      },
      [SVG_NS]: {
        __proto__: null,
        SVGElement: [],
        SVGGraphicsElement: [],
        SVGDefsElement: ["defs"],
        SVGDescElement: ["desc"],
        SVGGElement: ["g"],
        SVGMetadataElement: ["metadata"],
        SVGSVGElement: ["svg"],
        SVGSwitchElement: ["switch"],
        SVGSymbolElement: ["symbol"],
        SVGTitleElement: ["title"]
      }
    };
    var TAG_INTERFACE_LOOKUP = /* @__PURE__ */ Object.create(null);
    for (const namespace of [HTML_NS, SVG_NS]) {
      TAG_INTERFACE_LOOKUP[namespace] = /* @__PURE__ */ Object.create(null);
      const interfaceNames = Object.keys(INTERFACE_TAG_MAPPING[namespace]);
      for (const interfaceName of interfaceNames) {
        const tagNames = INTERFACE_TAG_MAPPING[namespace][interfaceName];
        for (const tagName of tagNames) {
          TAG_INTERFACE_LOOKUP[namespace][tagName] = interfaceName;
        }
      }
    }
    var UNKNOWN_HTML_ELEMENTS_NAMES = ["applet", "bgsound", "blink", "isindex", "keygen", "multicol", "nextid", "spacer"];
    var HTML_ELEMENTS_NAMES = [
      "acronym",
      "basefont",
      "big",
      "center",
      "nobr",
      "noembed",
      "noframes",
      "plaintext",
      "rb",
      "rtc",
      "strike",
      "tt"
    ];
    function getHTMLElementInterface(name) {
      if (UNKNOWN_HTML_ELEMENTS_NAMES.includes(name)) {
        return interfaces.getInterfaceWrapper("HTMLUnknownElement");
      }
      if (HTML_ELEMENTS_NAMES.includes(name)) {
        return interfaces.getInterfaceWrapper("HTMLElement");
      }
      const specDefinedInterface = TAG_INTERFACE_LOOKUP[HTML_NS][name];
      if (specDefinedInterface !== void 0) {
        return interfaces.getInterfaceWrapper(specDefinedInterface);
      }
      if (isValidCustomElementName(name)) {
        return interfaces.getInterfaceWrapper("HTMLElement");
      }
      return interfaces.getInterfaceWrapper("HTMLUnknownElement");
    }
    function getSVGInterface(name) {
      const specDefinedInterface = TAG_INTERFACE_LOOKUP[SVG_NS][name];
      if (specDefinedInterface !== void 0) {
        return interfaces.getInterfaceWrapper(specDefinedInterface);
      }
      return interfaces.getInterfaceWrapper("SVGElement");
    }
    function getValidTagNames(namespace, name) {
      if (INTERFACE_TAG_MAPPING[namespace] && INTERFACE_TAG_MAPPING[namespace][name]) {
        return INTERFACE_TAG_MAPPING[namespace][name];
      }
      return [];
    }
    function createElement11(document2, localName, namespace, prefix = null, isValue = null, synchronousCE = false) {
      let result = null;
      const { _globalObject } = document2;
      const definition = lookupCEDefinition(document2, namespace, localName, isValue);
      if (definition !== null && definition.name !== localName) {
        const elementInterface = getHTMLElementInterface(localName);
        result = elementInterface.createImpl(_globalObject, [], {
          ownerDocument: document2,
          localName,
          namespace: HTML_NS,
          prefix,
          ceState: "undefined",
          ceDefinition: null,
          isValue
        });
        if (synchronousCE) {
          upgradeElement(definition, result);
        } else {
          enqueueCEUpgradeReaction(result, definition);
        }
      } else if (definition !== null) {
        if (synchronousCE) {
          try {
            const C = definition.constructor;
            const resultWrapper = C.construct();
            result = implForWrapper(resultWrapper);
            if (!result._ceState || !result._ceDefinition || result._namespaceURI !== HTML_NS) {
              throw new TypeError("Internal error: Invalid custom element.");
            }
            if (result._attributeList.length !== 0) {
              throw DOMException2.create(_globalObject, ["Unexpected attributes.", "NotSupportedError"]);
            }
            if (domSymbolTree.hasChildren(result)) {
              throw DOMException2.create(_globalObject, ["Unexpected child nodes.", "NotSupportedError"]);
            }
            if (domSymbolTree.parent(result)) {
              throw DOMException2.create(_globalObject, ["Unexpected element parent.", "NotSupportedError"]);
            }
            if (result._ownerDocument !== document2) {
              throw DOMException2.create(_globalObject, ["Unexpected element owner document.", "NotSupportedError"]);
            }
            if (result._namespaceURI !== namespace) {
              throw DOMException2.create(_globalObject, ["Unexpected element namespace URI.", "NotSupportedError"]);
            }
            if (result._localName !== localName) {
              throw DOMException2.create(_globalObject, ["Unexpected element local name.", "NotSupportedError"]);
            }
            result._prefix = prefix;
            result._isValue = isValue;
          } catch (error) {
            reportException(document2._defaultView, error);
            const interfaceWrapper = interfaces.getInterfaceWrapper("HTMLUnknownElement");
            result = interfaceWrapper.createImpl(_globalObject, [], {
              ownerDocument: document2,
              localName,
              namespace: HTML_NS,
              prefix,
              ceState: "failed",
              ceDefinition: null,
              isValue: null
            });
          }
        } else {
          const interfaceWrapper = interfaces.getInterfaceWrapper("HTMLElement");
          result = interfaceWrapper.createImpl(_globalObject, [], {
            ownerDocument: document2,
            localName,
            namespace: HTML_NS,
            prefix,
            ceState: "undefined",
            ceDefinition: null,
            isValue: null
          });
          enqueueCEUpgradeReaction(result, definition);
        }
      } else {
        let elementInterface;
        switch (namespace) {
          case HTML_NS:
            elementInterface = getHTMLElementInterface(localName);
            break;
          case SVG_NS:
            elementInterface = getSVGInterface(localName);
            break;
          default:
            elementInterface = interfaces.getInterfaceWrapper("Element");
            break;
        }
        result = elementInterface.createImpl(_globalObject, [], {
          ownerDocument: document2,
          localName,
          namespace,
          prefix,
          ceState: "uncustomized",
          ceDefinition: null,
          isValue
        });
        if (namespace === HTML_NS && (isValidCustomElementName(localName) || isValue !== null)) {
          result._ceState = "undefined";
        }
      }
      return result;
    }
    function internalCreateElementNSSteps(document2, namespace, qualifiedName, options) {
      const extracted = validateAndExtract(document2._globalObject, namespace, qualifiedName);
      let isValue = null;
      if (options && options.is !== void 0) {
        isValue = options.is;
      }
      return createElement11(
        document2,
        extracted.localName,
        extracted.namespace,
        extracted.prefix,
        isValue,
        true
      );
    }
    module.exports = {
      createElement: createElement11,
      internalCreateElementNSSteps,
      getValidTagNames,
      getHTMLElementInterface
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCollection-impl.js
var require_HTMLCollection_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCollection-impl.js"(exports) {
    "use strict";
    var idlUtils = require_utils16();
    var { HTML_NS } = require_namespaces();
    exports.implementation = class HTMLCollectionImpl {
      constructor(globalObject, args, privateData) {
        this._list = [];
        this._version = -1;
        this._element = privateData.element;
        this._query = privateData.query;
        this._globalObject = globalObject;
        this._update();
      }
      get length() {
        this._update();
        return this._list.length;
      }
      item(index2) {
        this._update();
        return this._list[index2] || null;
      }
      namedItem(key) {
        if (key === "") {
          return null;
        }
        this._update();
        for (const element of this._list) {
          if (element.getAttributeNS(null, "id") === key) {
            return element;
          }
          if (element._namespaceURI === HTML_NS) {
            const name = element.getAttributeNS(null, "name");
            if (name === key) {
              return element;
            }
          }
        }
        return null;
      }
      _update() {
        if (this._version < this._element._version) {
          const snapshot = this._query();
          for (let i5 = 0; i5 < snapshot.length; i5++) {
            this._list[i5] = snapshot[i5];
          }
          this._list.length = snapshot.length;
          this._version = this._element._version;
        }
      }
      get [idlUtils.supportedPropertyIndices]() {
        this._update();
        return this._list.keys();
      }
      get [idlUtils.supportedPropertyNames]() {
        this._update();
        const result = /* @__PURE__ */ new Set();
        for (const element of this._list) {
          const id = element.getAttributeNS(null, "id");
          if (id) {
            result.add(id);
          }
          if (element._namespaceURI === HTML_NS) {
            const name = element.getAttributeNS(null, "name");
            if (name) {
              result.add(name);
            }
          }
        }
        return result;
      }
      // Inherit some useful functions from Array.
      [Symbol.iterator]() {
        this._update();
        return this._list[Symbol.iterator]();
      }
      entries() {
        this._update();
        return this._list.entries();
      }
      filter(...args) {
        this._update();
        return this._list.filter(...args);
      }
      map(...args) {
        this._update();
        return this._list.map(...args);
      }
      indexOf(...args) {
        this._update();
        return this._list.indexOf(...args);
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js
var require_HTMLCollection = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "HTMLCollection";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLCollection'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLCollection"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLCollection {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        item(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'item' called on an object that is not a valid instance of HTMLCollection.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'item' on 'HTMLCollection': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'item' on 'HTMLCollection': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].item(...args));
        }
        namedItem(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'namedItem' called on an object that is not a valid instance of HTMLCollection."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'namedItem' on 'HTMLCollection': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'namedItem' on 'HTMLCollection': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].namedItem(...args));
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get length' called on an object that is not a valid instance of HTMLCollection."
            );
          }
          return esValue[implSymbol]["length"];
        }
      }
      Object.defineProperties(HTMLCollection.prototype, {
        item: { enumerable: true },
        namedItem: { enumerable: true },
        length: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLCollection", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = HTMLCollection;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLCollection
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of target[implSymbol][utils2.supportedPropertyNames]) {
          if (!(key in target)) {
            keys2.add(`${key}`);
          }
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            return {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        const namedValue = target[implSymbol].namedItem(P);
        if (namedValue !== null && !(P in target) && !ignoreNamedProps) {
          return {
            writable: false,
            enumerable: false,
            configurable: true,
            value: utils2.tryWrapperForImpl(namedValue)
          };
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            ownDesc = {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          return false;
        }
        if (!utils2.hasOwn(target, P)) {
          const creating = !(target[implSymbol].namedItem(P) !== null);
          if (!creating) {
            return false;
          }
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !(target[implSymbol].item(index2) !== null);
        }
        if (target[implSymbol].namedItem(P) !== null && !(P in target)) {
          return false;
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_HTMLCollection_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/node.js
var require_node5 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/node.js"(exports) {
    "use strict";
    var { appendAttribute } = require_attributes3();
    var NODE_TYPE = require_node_type();
    var orderedSetParse = require_ordered_set().parse;
    var { createElement: createElement11 } = require_create_element();
    var { HTML_NS, XMLNS_NS } = require_namespaces();
    var { cloningSteps, domSymbolTree } = require_internal_constants();
    var { asciiCaseInsensitiveMatch, asciiLowercase } = require_strings2();
    var HTMLCollection = require_HTMLCollection();
    exports.clone = (node, document2, cloneChildren) => {
      if (document2 === void 0) {
        document2 = node._ownerDocument;
      }
      let copy2;
      switch (node.nodeType) {
        case NODE_TYPE.DOCUMENT_NODE:
          copy2 = node._cloneDocument();
          break;
        case NODE_TYPE.DOCUMENT_TYPE_NODE:
          copy2 = document2.implementation.createDocumentType(node.name, node.publicId, node.systemId);
          break;
        case NODE_TYPE.ELEMENT_NODE:
          copy2 = createElement11(
            document2,
            node._localName,
            node._namespaceURI,
            node._prefix,
            node._isValue,
            false
          );
          for (const attribute of node._attributeList) {
            appendAttribute(copy2, exports.clone(attribute, document2));
          }
          break;
        case NODE_TYPE.ATTRIBUTE_NODE:
          copy2 = document2._createAttribute({
            namespace: node._namespace,
            namespacePrefix: node._namespacePrefix,
            localName: node._localName,
            value: node._value
          });
          break;
        case NODE_TYPE.TEXT_NODE:
          copy2 = document2.createTextNode(node._data);
          break;
        case NODE_TYPE.CDATA_SECTION_NODE:
          copy2 = document2.createCDATASection(node._data);
          break;
        case NODE_TYPE.COMMENT_NODE:
          copy2 = document2.createComment(node._data);
          break;
        case NODE_TYPE.PROCESSING_INSTRUCTION_NODE:
          copy2 = document2.createProcessingInstruction(node.target, node._data);
          break;
        case NODE_TYPE.DOCUMENT_FRAGMENT_NODE:
          copy2 = document2.createDocumentFragment();
          break;
      }
      if (node[cloningSteps]) {
        node[cloningSteps](copy2, node, document2, cloneChildren);
      }
      if (cloneChildren) {
        for (const child of domSymbolTree.childrenIterator(node)) {
          const childCopy = exports.clone(child, document2, true);
          copy2._append(childCopy);
        }
      }
      return copy2;
    };
    exports.listOfElementsWithClassNames = (classNames, root) => {
      const classes = orderedSetParse(classNames);
      if (classes.size === 0) {
        return HTMLCollection.createImpl(root._globalObject, [], { element: root, query: () => [] });
      }
      return HTMLCollection.createImpl(root._globalObject, [], {
        element: root,
        query: () => {
          const isQuirksMode = root._ownerDocument.compatMode === "BackCompat";
          return domSymbolTree.treeToArray(root, { filter(node) {
            if (node.nodeType !== NODE_TYPE.ELEMENT_NODE || node === root) {
              return false;
            }
            const { classList } = node;
            if (isQuirksMode) {
              for (const className of classes) {
                if (!classList.tokenSet.some((cur) => asciiCaseInsensitiveMatch(cur, className))) {
                  return false;
                }
              }
            } else {
              for (const className of classes) {
                if (!classList.tokenSet.contains(className)) {
                  return false;
                }
              }
            }
            return true;
          } });
        }
      });
    };
    exports.listOfElementsWithQualifiedName = (qualifiedName, root) => {
      if (qualifiedName === "*") {
        return HTMLCollection.createImpl(root._globalObject, [], {
          element: root,
          query: () => domSymbolTree.treeToArray(root, {
            filter: (node) => node.nodeType === NODE_TYPE.ELEMENT_NODE && node !== root
          })
        });
      }
      if (root._ownerDocument._parsingMode === "html") {
        const lowerQualifiedName = asciiLowercase(qualifiedName);
        return HTMLCollection.createImpl(root._globalObject, [], {
          element: root,
          query: () => domSymbolTree.treeToArray(root, {
            filter(node) {
              if (node.nodeType !== NODE_TYPE.ELEMENT_NODE || node === root) {
                return false;
              }
              if (node._namespaceURI === HTML_NS) {
                return node._qualifiedName === lowerQualifiedName;
              }
              return node._qualifiedName === qualifiedName;
            }
          })
        });
      }
      return HTMLCollection.createImpl(root._globalObject, [], {
        element: root,
        query: () => domSymbolTree.treeToArray(root, {
          filter(node) {
            if (node.nodeType !== NODE_TYPE.ELEMENT_NODE || node === root) {
              return false;
            }
            return node._qualifiedName === qualifiedName;
          }
        })
      });
    };
    exports.listOfElementsWithNamespaceAndLocalName = (namespace, localName, root) => {
      if (namespace === "") {
        namespace = null;
      }
      if (namespace === "*" && localName === "*") {
        return HTMLCollection.createImpl(root._globalObject, [], {
          element: root,
          query: () => domSymbolTree.treeToArray(root, {
            filter: (node) => node.nodeType === NODE_TYPE.ELEMENT_NODE && node !== root
          })
        });
      }
      if (namespace === "*") {
        return HTMLCollection.createImpl(root._globalObject, [], {
          element: root,
          query: () => domSymbolTree.treeToArray(root, {
            filter(node) {
              if (node.nodeType !== NODE_TYPE.ELEMENT_NODE || node === root) {
                return false;
              }
              return node._localName === localName;
            }
          })
        });
      }
      if (localName === "*") {
        return HTMLCollection.createImpl(root._globalObject, [], {
          element: root,
          query: () => domSymbolTree.treeToArray(root, {
            filter(node) {
              if (node.nodeType !== NODE_TYPE.ELEMENT_NODE || node === root) {
                return false;
              }
              return node._namespaceURI === namespace;
            }
          })
        });
      }
      return HTMLCollection.createImpl(root._globalObject, [], {
        element: root,
        query: () => domSymbolTree.treeToArray(root, {
          filter(node) {
            if (node.nodeType !== NODE_TYPE.ELEMENT_NODE || node === root) {
              return false;
            }
            return node._localName === localName && node._namespaceURI === namespace;
          }
        })
      });
    };
    exports.convertNodesIntoNode = (document2, nodes) => {
      if (nodes.length === 1) {
        return typeof nodes[0] === "string" ? document2.createTextNode(nodes[0]) : nodes[0];
      }
      const fragment = document2.createDocumentFragment();
      for (let i5 = 0; i5 < nodes.length; i5++) {
        fragment._append(typeof nodes[i5] === "string" ? document2.createTextNode(nodes[i5]) : nodes[i5]);
      }
      return fragment;
    };
    exports.locateNamespacePrefix = (element, namespace) => {
      if (element._namespaceURI === namespace && element._prefix !== null) {
        return element._prefix;
      }
      for (const attribute of element._attributeList) {
        if (attribute._namespacePrefix === "xmlns" && attribute._value === namespace) {
          return attribute._localName;
        }
      }
      if (element.parentElement !== null) {
        return exports.locateNamespacePrefix(element.parentElement, namespace);
      }
      return null;
    };
    exports.locateNamespace = (node, prefix) => {
      switch (node.nodeType) {
        case NODE_TYPE.ELEMENT_NODE: {
          if (node._namespaceURI !== null && node._prefix === prefix) {
            return node._namespaceURI;
          }
          if (prefix === null) {
            for (const attribute of node._attributeList) {
              if (attribute._namespace === XMLNS_NS && attribute._namespacePrefix === null && attribute._localName === "xmlns") {
                return attribute._value !== "" ? attribute._value : null;
              }
            }
          } else {
            for (const attribute of node._attributeList) {
              if (attribute._namespace === XMLNS_NS && attribute._namespacePrefix === "xmlns" && attribute._localName === prefix) {
                return attribute._value !== "" ? attribute._value : null;
              }
            }
          }
          if (node.parentElement === null) {
            return null;
          }
          return exports.locateNamespace(node.parentElement, prefix);
        }
        case NODE_TYPE.DOCUMENT_NODE: {
          if (node.documentElement === null) {
            return null;
          }
          return exports.locateNamespace(node.documentElement, prefix);
        }
        case NODE_TYPE.DOCUMENT_TYPE_NODE:
        case NODE_TYPE.DOCUMENT_FRAGMENT_NODE: {
          return null;
        }
        case NODE_TYPE.ATTRIBUTE_NODE: {
          if (node._element === null) {
            return null;
          }
          return exports.locateNamespace(node._element, prefix);
        }
        default: {
          if (node.parentElement === null) {
            return null;
          }
          return exports.locateNamespace(node.parentElement, prefix);
        }
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/default-stylesheet.js
var require_default_stylesheet = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/default-stylesheet.js"(exports, module) {
    module.exports = `
/*
 * The default style sheet used to render HTML.
 *
 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this library; see the file COPYING.LIB.  If not, write to
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301, USA.
 *
 */

@namespace "http://www.w3.org/1999/xhtml";

html {
    display: block
}

:root {
    scroll-blocks-on: start-touch wheel-event
}

/* children of the <head> element all have display:none */
head {
    display: none
}

meta {
    display: none
}

title {
    display: none
}

link {
    display: none
}

style {
    display: none
}

script {
    display: none
}

/* generic block-level elements */

body {
    display: block;
    margin: 8px
}

p {
    display: block;
    -webkit-margin-before: 1__qem;
    -webkit-margin-after: 1__qem;
    -webkit-margin-start: 0;
    -webkit-margin-end: 0;
}

div {
    display: block
}

layer {
    display: block
}

article, aside, footer, header, hgroup, main, nav, section {
    display: block
}

marquee {
    display: inline-block;
}

address {
    display: block
}

blockquote {
    display: block;
    -webkit-margin-before: 1__qem;
    -webkit-margin-after: 1em;
    -webkit-margin-start: 40px;
    -webkit-margin-end: 40px;
}

figcaption {
    display: block
}

figure {
    display: block;
    -webkit-margin-before: 1em;
    -webkit-margin-after: 1em;
    -webkit-margin-start: 40px;
    -webkit-margin-end: 40px;
}

q {
    display: inline
}

/* nwmatcher does not support ::before and ::after, so we can't render q
correctly: https://html.spec.whatwg.org/multipage/rendering.html#phrasing-content-3
TODO: add q::before and q::after selectors
*/

center {
    display: block;
    /* special centering to be able to emulate the html4/netscape behaviour */
    text-align: -webkit-center
}

hr {
    display: block;
    -webkit-margin-before: 0.5em;
    -webkit-margin-after: 0.5em;
    -webkit-margin-start: auto;
    -webkit-margin-end: auto;
    border-style: inset;
    border-width: 1px;
    box-sizing: border-box
}

map {
    display: inline
}

video {
    object-fit: contain;
}

/* heading elements */

h1 {
    display: block;
    font-size: 2em;
    -webkit-margin-before: 0.67__qem;
    -webkit-margin-after: 0.67em;
    -webkit-margin-start: 0;
    -webkit-margin-end: 0;
    font-weight: bold
}

article h1,
aside h1,
nav h1,
section h1 {
    font-size: 1.5em;
    -webkit-margin-before: 0.83__qem;
    -webkit-margin-after: 0.83em;
}

article article h1,
article aside h1,
article nav h1,
article section h1,
aside article h1,
aside aside h1,
aside nav h1,
aside section h1,
nav article h1,
nav aside h1,
nav nav h1,
nav section h1,
section article h1,
section aside h1,
section nav h1,
section section h1 {
    font-size: 1.17em;
    -webkit-margin-before: 1__qem;
    -webkit-margin-after: 1em;
}

/* Remaining selectors are deleted because nwmatcher does not support
:matches() and expanding the selectors manually would be far too verbose.
Also see https://html.spec.whatwg.org/multipage/rendering.html#sections-and-headings
TODO: rewrite to use :matches() when nwmatcher supports it.
*/

h2 {
    display: block;
    font-size: 1.5em;
    -webkit-margin-before: 0.83__qem;
    -webkit-margin-after: 0.83em;
    -webkit-margin-start: 0;
    -webkit-margin-end: 0;
    font-weight: bold
}

h3 {
    display: block;
    font-size: 1.17em;
    -webkit-margin-before: 1__qem;
    -webkit-margin-after: 1em;
    -webkit-margin-start: 0;
    -webkit-margin-end: 0;
    font-weight: bold
}

h4 {
    display: block;
    -webkit-margin-before: 1.33__qem;
    -webkit-margin-after: 1.33em;
    -webkit-margin-start: 0;
    -webkit-margin-end: 0;
    font-weight: bold
}

h5 {
    display: block;
    font-size: .83em;
    -webkit-margin-before: 1.67__qem;
    -webkit-margin-after: 1.67em;
    -webkit-margin-start: 0;
    -webkit-margin-end: 0;
    font-weight: bold
}

h6 {
    display: block;
    font-size: .67em;
    -webkit-margin-before: 2.33__qem;
    -webkit-margin-after: 2.33em;
    -webkit-margin-start: 0;
    -webkit-margin-end: 0;
    font-weight: bold
}

/* tables */

table {
    display: table;
    border-collapse: separate;
    border-spacing: 2px;
    border-color: gray
}

thead {
    display: table-header-group;
    vertical-align: middle;
    border-color: inherit
}

tbody {
    display: table-row-group;
    vertical-align: middle;
    border-color: inherit
}

tfoot {
    display: table-footer-group;
    vertical-align: middle;
    border-color: inherit
}

/* for tables without table section elements (can happen with XHTML or dynamically created tables) */
table > tr {
    vertical-align: middle;
}

col {
    display: table-column
}

colgroup {
    display: table-column-group
}

tr {
    display: table-row;
    vertical-align: inherit;
    border-color: inherit
}

td, th {
    display: table-cell;
    vertical-align: inherit
}

th {
    font-weight: bold
}

caption {
    display: table-caption;
    text-align: -webkit-center
}

/* lists */

ul, menu, dir {
    display: block;
    list-style-type: disc;
    -webkit-margin-before: 1__qem;
    -webkit-margin-after: 1em;
    -webkit-margin-start: 0;
    -webkit-margin-end: 0;
    -webkit-padding-start: 40px
}

ol {
    display: block;
    list-style-type: decimal;
    -webkit-margin-before: 1__qem;
    -webkit-margin-after: 1em;
    -webkit-margin-start: 0;
    -webkit-margin-end: 0;
    -webkit-padding-start: 40px
}

li {
    display: list-item;
    text-align: -webkit-match-parent;
}

ul ul, ol ul {
    list-style-type: circle
}

ol ol ul, ol ul ul, ul ol ul, ul ul ul {
    list-style-type: square
}

dd {
    display: block;
    -webkit-margin-start: 40px
}

dl {
    display: block;
    -webkit-margin-before: 1__qem;
    -webkit-margin-after: 1em;
    -webkit-margin-start: 0;
    -webkit-margin-end: 0;
}

dt {
    display: block
}

ol ul, ul ol, ul ul, ol ol {
    -webkit-margin-before: 0;
    -webkit-margin-after: 0
}

/* form elements */

form {
    display: block;
    margin-top: 0__qem;
}

label {
    cursor: default;
}

legend {
    display: block;
    -webkit-padding-start: 2px;
    -webkit-padding-end: 2px;
    border: none
}

fieldset {
    display: block;
    -webkit-margin-start: 2px;
    -webkit-margin-end: 2px;
    -webkit-padding-before: 0.35em;
    -webkit-padding-start: 0.75em;
    -webkit-padding-end: 0.75em;
    -webkit-padding-after: 0.625em;
    border: 2px groove ThreeDFace;
    min-width: -webkit-min-content;
}

button {
    -webkit-appearance: button;
}

/* Form controls don't go vertical. */
input, textarea, select, button, meter, progress {
    -webkit-writing-mode: horizontal-tb !important;
}

input, textarea, select, button {
    margin: 0__qem;
    font: -webkit-small-control;
    text-rendering: auto; /* FIXME: Remove when tabs work with optimizeLegibility. */
    color: initial;
    letter-spacing: normal;
    word-spacing: normal;
    line-height: normal;
    text-transform: none;
    text-indent: 0;
    text-shadow: none;
    display: inline-block;
    text-align: start;
}

/* TODO: Add " i" to attribute matchers to support case-insensitive matching */
input[type="hidden"] {
    display: none
}

input {
    -webkit-appearance: textfield;
    padding: 1px;
    background-color: white;
    border: 2px inset;
    -webkit-rtl-ordering: logical;
    -webkit-user-select: text;
    cursor: auto;
}

input[type="search"] {
    -webkit-appearance: searchfield;
    box-sizing: border-box;
}

select {
    border-radius: 5px;
}

textarea {
    -webkit-appearance: textarea;
    background-color: white;
    border: 1px solid;
    -webkit-rtl-ordering: logical;
    -webkit-user-select: text;
    flex-direction: column;
    resize: auto;
    cursor: auto;
    padding: 2px;
    white-space: pre-wrap;
    word-wrap: break-word;
}

input[type="password"] {
    -webkit-text-security: disc !important;
}

input[type="hidden"], input[type="image"], input[type="file"] {
    -webkit-appearance: initial;
    padding: initial;
    background-color: initial;
    border: initial;
}

input[type="file"] {
    align-items: baseline;
    color: inherit;
    text-align: start !important;
}

input[type="radio"], input[type="checkbox"] {
    margin: 3px 0.5ex;
    padding: initial;
    background-color: initial;
    border: initial;
}

input[type="button"], input[type="submit"], input[type="reset"] {
    -webkit-appearance: push-button;
    -webkit-user-select: none;
    white-space: pre
}

input[type="button"], input[type="submit"], input[type="reset"], button {
    align-items: flex-start;
    text-align: center;
    cursor: default;
    color: ButtonText;
    padding: 2px 6px 3px 6px;
    border: 2px outset ButtonFace;
    background-color: ButtonFace;
    box-sizing: border-box
}

input[type="range"] {
    -webkit-appearance: slider-horizontal;
    padding: initial;
    border: initial;
    margin: 2px;
    color: #909090;
}

input[type="button"]:disabled, input[type="submit"]:disabled, input[type="reset"]:disabled,
button:disabled, select:disabled, optgroup:disabled, option:disabled,
select[disabled]>option {
    color: GrayText
}

input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, button:active {
    border-style: inset
}

input[type="button"]:active:disabled, input[type="submit"]:active:disabled, input[type="reset"]:active:disabled, button:active:disabled {
    border-style: outset
}

datalist {
    display: none
}

area {
    display: inline;
    cursor: pointer;
}

param {
    display: none
}

input[type="checkbox"] {
    -webkit-appearance: checkbox;
    box-sizing: border-box;
}

input[type="radio"] {
    -webkit-appearance: radio;
    box-sizing: border-box;
}

input[type="color"] {
    -webkit-appearance: square-button;
    width: 44px;
    height: 23px;
    background-color: ButtonFace;
    /* Same as native_theme_base. */
    border: 1px #a9a9a9 solid;
    padding: 1px 2px;
}

input[type="color"][list] {
    -webkit-appearance: menulist;
    width: 88px;
    height: 23px
}

select {
    -webkit-appearance: menulist;
    box-sizing: border-box;
    align-items: center;
    border: 1px solid;
    white-space: pre;
    -webkit-rtl-ordering: logical;
    color: black;
    background-color: white;
    cursor: default;
}

optgroup {
    font-weight: bolder;
    display: block;
}

option {
    font-weight: normal;
    display: block;
    padding: 0 2px 1px 2px;
    white-space: pre;
    min-height: 1.2em;
}

output {
    display: inline;
}

/* meter */

meter {
    -webkit-appearance: meter;
    box-sizing: border-box;
    display: inline-block;
    height: 1em;
    width: 5em;
    vertical-align: -0.2em;
}

/* progress */

progress {
    -webkit-appearance: progress-bar;
    box-sizing: border-box;
    display: inline-block;
    height: 1em;
    width: 10em;
    vertical-align: -0.2em;
}

/* inline elements */

u, ins {
    text-decoration: underline
}

strong, b {
    font-weight: bold
}

i, cite, em, var, address, dfn {
    font-style: italic
}

tt, code, kbd, samp {
    font-family: monospace
}

pre, xmp, plaintext, listing {
    display: block;
    font-family: monospace;
    white-space: pre;
    margin: 1__qem 0
}

mark {
    background-color: yellow;
    color: black
}

big {
    font-size: larger
}

small {
    font-size: smaller
}

s, strike, del {
    text-decoration: line-through
}

sub {
    vertical-align: sub;
    font-size: smaller
}

sup {
    vertical-align: super;
    font-size: smaller
}

nobr {
    white-space: nowrap
}

/* states */

:focus {
    outline: auto 5px -webkit-focus-ring-color
}

/* Read-only text fields do not show a focus ring but do still receive focus */
html:focus, body:focus, input[readonly]:focus {
    outline: none
}

embed:focus, iframe:focus, object:focus {
    outline: none
}

input:focus, textarea:focus, select:focus {
    outline-offset: -2px
}

input[type="button"]:focus,
input[type="checkbox"]:focus,
input[type="file"]:focus,
input[type="hidden"]:focus,
input[type="image"]:focus,
input[type="radio"]:focus,
input[type="reset"]:focus,
input[type="search"]:focus,
input[type="submit"]:focus {
    outline-offset: 0
}

/* HTML5 ruby elements */

ruby, rt {
    text-indent: 0; /* blocks used for ruby rendering should not trigger this */
}

rt {
    line-height: normal;
    -webkit-text-emphasis: none;
}

ruby > rt {
    display: block;
    font-size: 50%;
    text-align: start;
}

ruby > rp {
    display: none;
}

/* other elements */

noframes {
    display: none
}

frameset, frame {
    display: block
}

frameset {
    border-color: inherit
}

iframe {
    border: 2px inset
}

details {
    display: block
}

summary {
    display: block
}

template {
    display: none
}

bdi, output {
    unicode-bidi: -webkit-isolate;
}

bdo {
    unicode-bidi: bidi-override;
}

textarea[dir=auto] {
    unicode-bidi: -webkit-plaintext;
}

dialog:not([open]) {
    display: none
}

dialog {
    position: absolute;
    left: 0;
    right: 0;
    width: -webkit-fit-content;
    height: -webkit-fit-content;
    margin: auto;
    border: solid;
    padding: 1em;
    background: white;
    color: black
}

[hidden] {
    display: none
}

/* noscript is handled internally, as it depends on settings. */

`;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/colors.js
var require_colors = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/colors.js"(exports) {
    "use strict";
    var namedColors2 = {
      __proto__: null,
      aliceblue: [240, 248, 255],
      antiquewhite: [250, 235, 215],
      aqua: [0, 255, 255],
      aquamarine: [127, 255, 212],
      azure: [240, 255, 255],
      beige: [245, 245, 220],
      bisque: [255, 228, 196],
      black: [0, 0, 0],
      blanchedalmond: [255, 235, 205],
      blue: [0, 0, 255],
      blueviolet: [138, 43, 226],
      brown: [165, 42, 42],
      burlywood: [222, 184, 135],
      cadetblue: [95, 158, 160],
      chartreuse: [127, 255, 0],
      chocolate: [210, 105, 30],
      coral: [255, 127, 80],
      cornflowerblue: [100, 149, 237],
      cornsilk: [255, 248, 220],
      crimson: [220, 20, 60],
      cyan: [0, 255, 255],
      darkblue: [0, 0, 139],
      darkcyan: [0, 139, 139],
      darkgoldenrod: [184, 134, 11],
      darkgray: [169, 169, 169],
      darkgreen: [0, 100, 0],
      darkgrey: [169, 169, 169],
      darkkhaki: [189, 183, 107],
      darkmagenta: [139, 0, 139],
      darkolivegreen: [85, 107, 47],
      darkorange: [255, 140, 0],
      darkorchid: [153, 50, 204],
      darkred: [139, 0, 0],
      darksalmon: [233, 150, 122],
      darkseagreen: [143, 188, 143],
      darkslateblue: [72, 61, 139],
      darkslategray: [47, 79, 79],
      darkslategrey: [47, 79, 79],
      darkturquoise: [0, 206, 209],
      darkviolet: [148, 0, 211],
      deeppink: [255, 20, 147],
      deepskyblue: [0, 191, 255],
      dimgray: [105, 105, 105],
      dimgrey: [105, 105, 105],
      dodgerblue: [30, 144, 255],
      firebrick: [178, 34, 34],
      floralwhite: [255, 250, 240],
      forestgreen: [34, 139, 34],
      fuchsia: [255, 0, 255],
      gainsboro: [220, 220, 220],
      ghostwhite: [248, 248, 255],
      gold: [255, 215, 0],
      goldenrod: [218, 165, 32],
      gray: [128, 128, 128],
      green: [0, 128, 0],
      greenyellow: [173, 255, 47],
      grey: [128, 128, 128],
      honeydew: [240, 255, 240],
      hotpink: [255, 105, 180],
      indianred: [205, 92, 92],
      indigo: [75, 0, 130],
      ivory: [255, 255, 240],
      khaki: [240, 230, 140],
      lavender: [230, 230, 250],
      lavenderblush: [255, 240, 245],
      lawngreen: [124, 252, 0],
      lemonchiffon: [255, 250, 205],
      lightblue: [173, 216, 230],
      lightcoral: [240, 128, 128],
      lightcyan: [224, 255, 255],
      lightgoldenrodyellow: [250, 250, 210],
      lightgray: [211, 211, 211],
      lightgreen: [144, 238, 144],
      lightgrey: [211, 211, 211],
      lightpink: [255, 182, 193],
      lightsalmon: [255, 160, 122],
      lightseagreen: [32, 178, 170],
      lightskyblue: [135, 206, 250],
      lightslategray: [119, 136, 153],
      lightslategrey: [119, 136, 153],
      lightsteelblue: [176, 196, 222],
      lightyellow: [255, 255, 224],
      lime: [0, 255, 0],
      limegreen: [50, 205, 50],
      linen: [250, 240, 230],
      magenta: [255, 0, 255],
      maroon: [128, 0, 0],
      mediumaquamarine: [102, 205, 170],
      mediumblue: [0, 0, 205],
      mediumorchid: [186, 85, 211],
      mediumpurple: [147, 112, 219],
      mediumseagreen: [60, 179, 113],
      mediumslateblue: [123, 104, 238],
      mediumspringgreen: [0, 250, 154],
      mediumturquoise: [72, 209, 204],
      mediumvioletred: [199, 21, 133],
      midnightblue: [25, 25, 112],
      mintcream: [245, 255, 250],
      mistyrose: [255, 228, 225],
      moccasin: [255, 228, 181],
      navajowhite: [255, 222, 173],
      navy: [0, 0, 128],
      oldlace: [253, 245, 230],
      olive: [128, 128, 0],
      olivedrab: [107, 142, 35],
      orange: [255, 165, 0],
      orangered: [255, 69, 0],
      orchid: [218, 112, 214],
      palegoldenrod: [238, 232, 170],
      palegreen: [152, 251, 152],
      paleturquoise: [175, 238, 238],
      palevioletred: [219, 112, 147],
      papayawhip: [255, 239, 213],
      peachpuff: [255, 218, 185],
      peru: [205, 133, 63],
      pink: [255, 192, 203],
      plum: [221, 160, 221],
      powderblue: [176, 224, 230],
      purple: [128, 0, 128],
      rebeccapurple: [102, 51, 153],
      red: [255, 0, 0],
      rosybrown: [188, 143, 143],
      royalblue: [65, 105, 225],
      saddlebrown: [139, 69, 19],
      salmon: [250, 128, 114],
      sandybrown: [244, 164, 96],
      seagreen: [46, 139, 87],
      seashell: [255, 245, 238],
      sienna: [160, 82, 45],
      silver: [192, 192, 192],
      skyblue: [135, 206, 235],
      slateblue: [106, 90, 205],
      slategray: [112, 128, 144],
      slategrey: [112, 128, 144],
      snow: [255, 250, 250],
      springgreen: [0, 255, 127],
      steelblue: [70, 130, 180],
      tan: [210, 180, 140],
      teal: [0, 128, 128],
      thistle: [216, 191, 216],
      tomato: [255, 99, 71],
      turquoise: [64, 224, 208],
      violet: [238, 130, 238],
      wheat: [245, 222, 179],
      white: [255, 255, 255],
      whitesmoke: [245, 245, 245],
      yellow: [255, 255, 0],
      yellowgreen: [154, 205, 50]
    };
    exports.getSpecifiedColor = (color) => {
      const lowercasedColor = color.toLowerCase();
      if (Object.hasOwn(namedColors2, lowercasedColor) || lowercasedColor === "transparent") {
        return lowercasedColor;
      }
      return sharedSpecifiedAndComputedAndUsed(color);
    };
    exports.getComputedOrUsedColor = (color) => {
      const lowercasedColor = color.toLowerCase();
      const fromNamedColors = namedColors2[lowercasedColor];
      if (fromNamedColors !== void 0) {
        return `rgb(${fromNamedColors.join(", ")})`;
      }
      if (lowercasedColor === "transparent") {
        return "rgba(0, 0, 0, 0)";
      }
      return sharedSpecifiedAndComputedAndUsed(color);
    };
    function sharedSpecifiedAndComputedAndUsed(color) {
      if (/^#[0-9A-Fa-f]{6}$/.test(color) || /^#[0-9A-Fa-f]{3}$/.test(color)) {
        return hexToRGB(color.slice(1));
      }
      if (/^#[0-9A-Fa-f]{8}$/.test(color) || /^#[0-9A-Fa-f]{4}$/.test(color)) {
        return hexToRGBA(color.slice(1));
      }
      if (/^rgba?\(/.test(color)) {
        return color.split(",").map((s4) => s4.trim()).join(", ");
      }
      return color;
    }
    function hexToRGB(color) {
      if (color.length === 6) {
        const [r1, r22, g1, g22, b1, b22] = color.split("");
        return `rgb(${hexesToDecimals([r1, r22], [g1, g22], [b1, b22]).join(", ")})`;
      }
      if (color.length === 3) {
        const [r1, g1, b1] = color.split("");
        return `rgb(${hexesToDecimals([r1, r1], [g1, g1], [b1, b1]).join(", ")})`;
      }
      return "rgb(0, 0, 0)";
    }
    function hexToRGBA(color) {
      if (color.length === 8) {
        const [r1, r22, g1, g22, b1, b22, a1, a22] = color.split("");
        return `rgba(${hexesToDecimals([r1, r22], [g1, g22], [b1, b22]).join(", ")}, ${hexToPercent(a1, a22)})`;
      }
      if (color.length === 4) {
        const [r1, g1, b1, a1] = color.split("");
        return `rgba(${hexesToDecimals([r1, r1], [g1, g1], [b1, b1]).join(", ")}, ${hexToPercent(a1, a1)})`;
      }
      return "rgba(0, 0, 0, 1)";
    }
    function hexToDecimal(d1, d22) {
      return parseInt(d1, 16) * 16 + parseInt(d22, 16);
    }
    function hexesToDecimals(...hexes) {
      return hexes.map((pair) => hexToDecimal(pair[0], pair[1]));
    }
    function hexToPercent(d1, d22) {
      return Math.floor(1e3 * hexToDecimal(d1, d22) / 255) / 1e3;
    }
  }
});

// ../../node_modules/.pnpm/nwsapi@2.2.23/node_modules/nwsapi/src/nwsapi.js
var require_nwsapi = __commonJS({
  "../../node_modules/.pnpm/nwsapi@2.2.23/node_modules/nwsapi/src/nwsapi.js"(exports, module) {
    (function Export(global2, factory2) {
      "use strict";
      if (typeof module == "object" && typeof exports == "object") {
        module.exports = factory2;
      } else if (typeof define == "function" && define["amd"]) {
        define(factory2);
      } else {
        global2.NW || (global2.NW = {});
        global2.NW.Dom = factory2(global2, Export);
      }
    })(exports, function Factory(global2, Export) {
      var version2 = "nwsapi-2.2.23", doc = global2.document, root = doc.documentElement, slice2 = Array.prototype.slice, HSP = "[\\x20\\t]", VSP = "[\\r\\n\\f]", WSP = "[\\x20\\t\\r\\n\\f]", CFG = {
        // extensions
        operators: "[~*^$|]=|=",
        combinators: "[\\x20\\t>+~](?=[^>+~])"
      }, HAS = {
        nestedself: ":has\\x28(?::has\\x28|.*)\\x29)\\x29"
      }, NOT = {
        // not enclosed in double/single/parens/square
        double_enc: '(?=(?:[^"]*["][^"]*["])*[^"]*$)',
        single_enc: "(?=(?:[^']*['][^']*['])*[^']*$)",
        parens_enc: "(?![^\\x28]*\\x29)",
        square_enc: "(?![^\\x5b]*\\x5d)"
      }, REX = {
        // regular expressions
        HasEscapes: RegExp("\\\\"),
        HexNumbers: RegExp("^[0-9a-fA-F]"),
        EscOrQuote: RegExp("^\\\\|[\\x22\\x27]"),
        RegExpChar: RegExp("(?!\\\\)[\\\\^$.,*+?()[\\]{}|\\/]", "g"),
        TrimSpaces: RegExp("^" + WSP + "+|" + WSP + "+$|" + VSP, "g"),
        SplitGroup: RegExp("(\\([^)]*\\)|\\[[^[]*\\]|\\\\.|[^,])+", "g"),
        CommaGroup: RegExp("(\\s*,\\s*)" + NOT.square_enc + NOT.parens_enc, "g"),
        FixEscapes: RegExp("\\\\([0-9a-fA-F]{1,6}" + WSP + "?|.)|([\\x22\\x27])", "g"),
        CombineWSP: RegExp("[\\n\\r\\f\\x20]+" + NOT.single_enc + NOT.double_enc, "g"),
        TabCharWSP: RegExp("(\\x20?\\t+\\x20?)" + NOT.single_enc + NOT.double_enc, "g"),
        PseudosWSP: RegExp("\\s+([-+])\\s+" + NOT.square_enc, "g")
      }, STD = {
        combinator: RegExp("\\s?([>+~])\\s?", "g"),
        apimethods: RegExp("^(?:\\w+|\\*)\\|"),
        namespaces: RegExp("(\\*|\\w+)\\|[\\w-]+")
      }, GROUPS = {
        // pseudo-classes requiring parameters
        linguistic: "(dir|lang)(?:\\x28\\s?([-\\w]{2,})\\s?\\x29)",
        logicalsel: "(is|where|matches|not|has)(?:\\x28\\s?([^()]*|.*)\\s?\\x29)",
        treestruct: "(nth(?:-last)?(?:-child|-of\\-type))(?:\\x28\\s?(even|odd|(?:[-+]?\\d*)(?:n\\s?[-+]?\\s?\\d*)?)\\s?\\x29)",
        // pseudo-classes not requiring parameters
        locationpc: "(any\\-link|link|visited|target|defined)\\b",
        useraction: "(hover|active|focus\\-within|focus\\-visible|focus)\\b",
        structural: "(scope|root|empty|(?:(?:first|last|only)(?:-child|\\-of\\-type)))\\b",
        inputstate: "(enabled|disabled|read\\-only|read\\-write|placeholder\\-shown|default)\\b",
        inputvalue: "(checked|indeterminate|required|optional|valid|invalid|in\\-range|out\\-of\\-range)\\b",
        // pseudo-classes not requiring parameters and describing functional state
        rsrc_state: "(playing|paused|seeking|buffering|stalled|muted|volume-locked)\\b",
        disp_state: "(open|closed|modal|fullscreen|picture-in-picture)\\b",
        time_state: "(current|past|future)\\b",
        // pseudo-classes for parsing only selectors
        pseudo_nop: "(autofill|-webkit\\-autofill)\\b",
        // pseudo-elements starting with single colon (:)
        pseudo_sng: "(after|before|first\\-letter|first\\-line)\\b",
        // pseudo-elements starting with double colon (::)
        pseudo_dbl: ":(after|before|first\\-letter|first\\-line|selection|placeholder|-webkit-[-a-zA-Z0-9]{2,})\\b"
      }, Patterns = {
        // pseudo-classes
        treestruct: RegExp("^:(?:" + GROUPS.treestruct + ")(.*)", "i"),
        structural: RegExp("^:(?:" + GROUPS.structural + ")(.*)", "i"),
        linguistic: RegExp("^:(?:" + GROUPS.linguistic + ")(.*)", "i"),
        useraction: RegExp("^:(?:" + GROUPS.useraction + ")(.*)", "i"),
        inputstate: RegExp("^:(?:" + GROUPS.inputstate + ")(.*)", "i"),
        inputvalue: RegExp("^:(?:" + GROUPS.inputvalue + ")(.*)", "i"),
        rsrc_state: RegExp("^:(?:" + GROUPS.rsrc_state + ")(.*)", "i"),
        disp_state: RegExp("^:(?:" + GROUPS.disp_state + ")(.*)", "i"),
        time_state: RegExp("^:(?:" + GROUPS.time_state + ")(.*)", "i"),
        locationpc: RegExp("^:(?:" + GROUPS.locationpc + ")(.*)", "i"),
        logicalsel: RegExp("^:(?:" + GROUPS.logicalsel + ")(.*)", "i"),
        pseudo_nop: RegExp("^:(?:" + GROUPS.pseudo_nop + ")(.*)", "i"),
        pseudo_sng: RegExp("^:(?:" + GROUPS.pseudo_sng + ")(.*)", "i"),
        pseudo_dbl: RegExp("^:(?:" + GROUPS.pseudo_dbl + ")(.*)", "i"),
        // combinator symbols
        children: RegExp("^" + WSP + "?\\>" + WSP + "?(.*)"),
        adjacent: RegExp("^" + WSP + "?\\+" + WSP + "?(.*)"),
        relative: RegExp("^" + WSP + "?\\~" + WSP + "?(.*)"),
        ancestor: RegExp("^" + WSP + "+(.*)"),
        // universal & namespace
        universal: RegExp("^(\\*)(.*)"),
        namespace: RegExp("^(\\*|[\\w-]+)?\\|(.*)")
      }, RTL = RegExp("^(?:[\\u0627-\\u064a]|[\\u0591-\\u08ff]|[\\ufb1d-\\ufdfd]|[\\ufe70-\\ufefc])+$"), qsNotArgs = "Not enough arguments", qsInvalid = " is not a valid selector", reNthElem = RegExp("(:nth(?:-last)?-child)", "i"), reNthType = RegExp("(:nth(?:-last)?-of-type)", "i"), reOptimizer, reValidator, Config = {
        IDS_DUPES: true,
        FORGIVING: true,
        NODE_LIST: false,
        LOGERRORS: true,
        USR_EVENT: true,
        VERBOSITY: true
      }, NAMESPACE, QUIRKS_MODE, HTML_DOCUMENT, ATTR_STD_OPS = {
        "=": 1,
        "^=": 1,
        "$=": 1,
        "|=": 1,
        "*=": 1,
        "~=": 1
      }, HTML_TABLE = {
        "accept": 1,
        "accept-charset": 1,
        "align": 1,
        "alink": 1,
        "axis": 1,
        "bgcolor": 1,
        "charset": 1,
        "checked": 1,
        "clear": 1,
        "codetype": 1,
        "color": 1,
        "compact": 1,
        "declare": 1,
        "defer": 1,
        "dir": 1,
        "direction": 1,
        "disabled": 1,
        "enctype": 1,
        "face": 1,
        "frame": 1,
        "hreflang": 1,
        "http-equiv": 1,
        "lang": 1,
        "language": 1,
        "link": 1,
        "media": 1,
        "method": 1,
        "multiple": 1,
        "nohref": 1,
        "noresize": 1,
        "noshade": 1,
        "nowrap": 1,
        "readonly": 1,
        "rel": 1,
        "rev": 1,
        "rules": 1,
        "scope": 1,
        "scrolling": 1,
        "selected": 1,
        "shape": 1,
        "target": 1,
        "text": 1,
        "type": 1,
        "valign": 1,
        "valuetype": 1,
        "vlink": 1
      }, Combinators = {}, Selectors = {}, Operators = {
        "=": {
          p1: "^",
          p2: "$",
          p3: "true"
        },
        "^=": {
          p1: "^",
          p2: "",
          p3: "true"
        },
        "$=": {
          p1: "",
          p2: "$",
          p3: "true"
        },
        "*=": {
          p1: "",
          p2: "",
          p3: "true"
        },
        "|=": {
          p1: "^",
          p2: "(-|$)",
          p3: "true"
        },
        "~=": {
          p1: "(^|\\s)",
          p2: "(\\s|$)",
          p3: "true"
        }
      }, concatCall = function(nodes, callback) {
        var i5 = 0, l4 = nodes.length, list = Array(l4);
        while (l4 > i5) {
          if (false === callback(list[i5] = nodes[i5])) break;
          ++i5;
        }
        return list;
      }, concatList = function(list, nodes) {
        var i5 = -1, l4 = nodes.length;
        while (l4--) {
          list[list.length] = nodes[++i5];
        }
        return list;
      }, toNodeList = Config.NODE_LIST == false ? function(x) {
        return x;
      } : (function() {
        var emptyNL = doc.createDocumentFragment().childNodes;
        return function(nodeArray) {
          if (isInstanceOf(nodeArray)) return nodeArray;
          if (!Array.isArray(nodeArray)) nodeArray = [nodeArray];
          var fakeNL = Object.create(emptyNL, {
            "length": {
              value: nodeArray.length,
              enumerable: false
            },
            "item": {
              "value": function(i5) {
                return this[+i5 || 0];
              },
              enumerable: false
            }
          });
          nodeArray.forEach(function(v3, i5) {
            fakeNL[i5] = v3;
          });
          return fakeNL;
        };
      })(), isInstanceOf = function(nodes) {
        return nodes instanceof global2.NodeList;
      }, documentOrder = function(a5, b3) {
        if (!hasDupes && a5 === b3) {
          hasDupes = true;
          return 0;
        }
        return a5.compareDocumentPosition(b3) & 4 ? -1 : 1;
      }, hasDupes = false, unique2 = function(nodes) {
        var i5 = 0, j = -1, l4 = nodes.length + 1, list = [];
        while (--l4) {
          if (nodes[i5++] === nodes[i5]) continue;
          list[++j] = nodes[i5 - 1];
        }
        hasDupes = false;
        return list;
      }, switchContext = function(context, force) {
        var oldDoc = doc;
        doc = context.ownerDocument || context;
        if (force || oldDoc !== doc) {
          root = doc.documentElement;
          HTML_DOCUMENT = isHTML(doc);
          QUIRKS_MODE = HTML_DOCUMENT && doc.compatMode.indexOf("CSS") < 0;
          NAMESPACE = root && root.namespaceURI;
          Snapshot.doc = doc;
          Snapshot.root = root;
        }
        return Snapshot.from = context;
      }, codePointToUTF16 = function(codePoint) {
        if (codePoint < 1 || codePoint > 1114111 || codePoint > 55295 && codePoint < 57344) {
          return "\\ufffd";
        }
        if (codePoint < 65536) {
          var lowHex = "000" + codePoint.toString(16);
          return "\\u" + lowHex.substr(lowHex.length - 4);
        }
        return "\\u" + ((codePoint - 65536 >> 10) + 55296).toString(16) + "\\u" + ((codePoint - 65536) % 1024 + 56320).toString(16);
      }, stringFromCodePoint = function(codePoint) {
        if (codePoint < 1 || codePoint > 1114111 || codePoint > 55295 && codePoint < 57344) {
          return "\uFFFD";
        }
        if (codePoint < 65536) {
          return String.fromCharCode(codePoint);
        }
        return String.fromCodePoint ? String.fromCodePoint(codePoint) : String.fromCharCode(
          (codePoint - 65536 >> 10) + 55296,
          (codePoint - 65536) % 1024 + 56320
        );
      }, convertEscapes = function(str) {
        return REX.HasEscapes.test(str) ? str.replace(
          REX.FixEscapes,
          function(substring, p1, p22) {
            return p22 ? "\\" + p22 : (
              // javascript strings are UTF-16 encoded
              REX.HexNumbers.test(p1) ? codePointToUTF16(parseInt(p1, 16)) : (
                // \' \"
                REX.EscOrQuote.test(p1) ? substring : (
                  // \g \h \. \# etc
                  p1
                )
              )
            );
          }
        ) : str;
      }, unescapeIdentifier = function(str) {
        return REX.HasEscapes.test(str) ? str.replace(
          REX.FixEscapes,
          function(substring, p1, p22) {
            return p22 ? p22 : (
              // javascript strings are UTF-16 encoded
              REX.HexNumbers.test(p1) ? stringFromCodePoint(parseInt(p1, 16)) : (
                // \' \"
                REX.EscOrQuote.test(p1) ? substring : (
                  // \g \h \. \# etc
                  p1
                )
              )
            );
          }
        ) : str;
      }, method = {
        "#": "getElementById",
        "*": "getElementsByTagName",
        "|": "getElementsByTagNameNS",
        ".": "getElementsByClassName"
      }, compat = {
        "#": (c6, n6) => (e4, f4) => byId(n6, c6),
        "*": (c6, n6) => (e4, f4) => byTag(n6, c6),
        "|": (c6, n6) => (e4, f4) => byTagNS(n6, c6),
        ".": (c6, n6) => (e4, f4) => byClass(n6, c6)
      }, byIdRaw = function(id, context) {
        var node = context, nodes = [], next = node.firstElementChild;
        while (node = next) {
          node.id == id && (nodes[nodes.length] = node);
          if (next = node.firstElementChild || node.nextElementSibling) continue;
          while (!next && (node = node.parentElement) && node !== context) {
            next = node.nextElementSibling;
          }
        }
        return nodes;
      }, byId = function(id, context) {
        var e4, i5, l4, nodes, api = method["#"];
        if (Config.IDS_DUPES === false) {
          if (api in context) {
            return (e4 = context[api](id)) ? [e4] : none;
          }
        } else {
          if ("all" in context) {
            if (e4 = context.all[id]) {
              if (e4.nodeType == 1) return e4.getAttribute("id") != id ? [] : [e4];
              else if (id == "length") return (e4 = context[api](id)) ? [e4] : none;
              for (i5 = 0, l4 = e4.length, nodes = []; l4 > i5; ++i5) {
                if (e4[i5].id == id) nodes[nodes.length] = e4[i5];
              }
              return nodes && nodes.length ? nodes : [nodes];
            } else return none;
          }
        }
        return byIdRaw(id, context);
      }, byTagNS = function(context, tag) {
        return byTag(tag, context);
      }, byTag = function(tag, context) {
        var e4, nodes, api = method["*"];
        if (api in context) {
          return slice2.call(context[api](tag));
        } else {
          tag = tag.toLowerCase();
          if (e4 = context.firstElementChild) {
            if (!(e4.nextElementSibling || tag == "*" || e4.localName == tag)) {
              return slice2.call(e4[api](tag));
            } else {
              nodes = [];
              do {
                if (tag == "*" || e4.localName == tag) nodes[nodes.length] = e4;
                concatList(nodes, e4[api](tag));
              } while (e4 = e4.nextElementSibling);
            }
          } else nodes = none;
        }
        return !Config.NODE_LIST ? nodes : isInstanceOf(nodes) ? nodes : toNodeList(nodes);
      }, byClass = function(cls, context) {
        var e4, nodes, api = method["."], reCls;
        if (api in context) {
          return slice2.call(context[api](cls));
        } else {
          if (e4 = context.firstElementChild) {
            reCls = RegExp("(^|\\s)" + cls + "(\\s|$)", QUIRKS_MODE ? "i" : "");
            if (!(e4.nextElementSibling || reCls.test(e4.className))) {
              return slice2.call(e4[api](cls));
            } else {
              nodes = [];
              do {
                if (reCls.test(e4.className)) nodes[nodes.length] = e4;
                concatList(nodes, e4[api](cls));
              } while (e4 = e4.nextElementSibling);
            }
          } else nodes = none;
        }
        return !Config.NODE_LIST ? nodes : isInstanceof(nodes) ? nodes : toNodeList(nodes);
      }, hasAttributeNS = function(e4, name) {
        var i5, l4, attr = e4.getAttributeNames();
        name = RegExp(":?" + name + "$", HTML_DOCUMENT ? "i" : "");
        for (i5 = 0, l4 = attr.length; l4 > i5; ++i5) {
          if (name.test(attr[i5])) return true;
        }
        return false;
      }, nthElement = (function() {
        var idx = 0, len = 0, set = 0, parent = void 0, parents = Array(), nodes = Array();
        return function(element, dir) {
          if (dir == 2) {
            idx = 0;
            len = 0;
            set = 0;
            nodes.length = 0;
            parents.length = 0;
            parent = void 0;
            return -1;
          }
          var e4, i5, j, k3, l4;
          if (parent === element.parentElement) {
            i5 = set;
            j = idx;
            l4 = len;
          } else {
            l4 = parents.length;
            parent = element.parentElement;
            for (i5 = -1, j = 0, k3 = l4 - 1; l4 > j; ++j, --k3) {
              if (parents[j] === parent) {
                i5 = j;
                break;
              }
              if (parents[k3] === parent) {
                i5 = k3;
                break;
              }
            }
            if (i5 < 0) {
              parents[i5 = l4] = parent;
              l4 = 0;
              nodes[i5] = Array();
              e4 = parent && parent.firstElementChild || element;
              while (e4) {
                nodes[i5][l4] = e4;
                if (e4 === element) j = l4;
                e4 = e4.nextElementSibling;
                ++l4;
              }
              set = i5;
              idx = 0;
              len = l4;
              if (l4 < 2) return l4;
            } else {
              l4 = nodes[i5].length;
              set = i5;
            }
          }
          if (element !== nodes[i5][j] && element !== nodes[i5][j = 0]) {
            for (j = 0, e4 = nodes[i5], k3 = l4 - 1; l4 > j; ++j, --k3) {
              if (e4[j] === element) {
                break;
              }
              if (e4[k3] === element) {
                j = k3;
                break;
              }
            }
          }
          idx = j + 1;
          len = l4;
          return dir ? l4 - j : idx;
        };
      })(), nthOfType = (function() {
        var idx = 0, len = 0, set = 0, parent = void 0, parents = Array(), nodes = Array();
        return function(element, dir) {
          if (dir == 2) {
            idx = 0;
            len = 0;
            set = 0;
            nodes.length = 0;
            parents.length = 0;
            parent = void 0;
            return -1;
          }
          var e4, i5, j, k3, l4, name = element.localName;
          if (nodes[set] && nodes[set][name] && parent === element.parentElement) {
            i5 = set;
            j = idx;
            l4 = len;
          } else {
            l4 = parents.length;
            parent = element.parentElement;
            for (i5 = -1, j = 0, k3 = l4 - 1; l4 > j; ++j, --k3) {
              if (parents[j] === parent) {
                i5 = j;
                break;
              }
              if (parents[k3] === parent) {
                i5 = k3;
                break;
              }
            }
            if (i5 < 0 || !nodes[i5][name]) {
              parents[i5 = l4] = parent;
              nodes[i5] || (nodes[i5] = Object());
              l4 = 0;
              nodes[i5][name] = Array();
              e4 = parent && parent.firstElementChild || element;
              while (e4) {
                if (e4 === element) j = l4;
                if (e4.localName == name) {
                  nodes[i5][name][l4] = e4;
                  ++l4;
                }
                e4 = e4.nextElementSibling;
              }
              set = i5;
              idx = j;
              len = l4;
              if (l4 < 2) return l4;
            } else {
              l4 = nodes[i5][name].length;
              set = i5;
            }
          }
          if (element !== nodes[i5][name][j] && element !== nodes[i5][name][j = 0]) {
            for (j = 0, e4 = nodes[i5][name], k3 = l4 - 1; l4 > j; ++j, --k3) {
              if (e4[j] === element) {
                break;
              }
              if (e4[k3] === element) {
                j = k3;
                break;
              }
            }
          }
          idx = j + 1;
          len = l4;
          return dir ? l4 - j : idx;
        };
      })(), isHTML = function(node) {
        var doc2 = node.ownerDocument || node;
        return doc2.nodeType == 9 && // contentType not in IE <= 11
        "contentType" in doc2 ? doc2.contentType.indexOf("/html") > 0 : doc2.createElement("DiV").localName == "div";
      }, isFocusable = function(node) {
        var doc2 = node.ownerDocument;
        if (node.contentDocument && node.localName == "iframe") {
          return false;
        }
        if (doc2.hasFocus() && node === doc2.activeElement) {
          if (node.type || node.href || typeof node.tabIndex == "number") {
            return node;
          }
        }
        return false;
      }, isContentEditable = function(node) {
        var attrValue = "inherit";
        if (node.hasAttribute("contenteditable")) {
          attrValue = node.getAttribute("contenteditable");
        }
        switch (attrValue) {
          case "":
          case "plaintext-only":
          case "true":
            return true;
          case "false":
            return false;
          default:
            if (node.parentNode && node.parentNode.nodeType === 1) {
              return isContentEditable(node.parentNode);
            }
            return false;
        }
      }, isPlaying = function(media) {
        var parent = media instanceof HTMLMediaElement ? null : media.parentElement;
        return !!(media && media.currentTime > 0 && !media.paused && !media.ended && media.readyState > 2) || !!(parent && parent.currentTime > 0 && !parent.paused && !parent.ended && parent.readyState > 2);
      }, configure = function(option, clear) {
        if (typeof option == "string") {
          return !!Config[option];
        }
        if (typeof option != "object") {
          return Config;
        }
        for (var i5 in option) {
          Config[i5] = !!option[i5];
        }
        if (clear) {
          matchResolvers = {};
          selectResolvers = {};
        }
        setIdentifierSyntax();
        return true;
      }, emit = function(message, proto) {
        var err2;
        if (Config.VERBOSITY) {
          if (proto) {
            err2 = new proto(message);
          } else {
            err2 = new global2.DOMException(message, "SyntaxError");
          }
          throw err2;
        }
        if (Config.LOGERRORS && console && console.log) {
          console.log(message);
        }
      }, initialize2 = function(doc2) {
        setIdentifierSyntax();
        lastContext = switchContext(doc2, true);
      }, setIdentifierSyntax = function() {
        var noascii = "[^\\x00-\\x9f]", escaped = "\\\\[^\\r\\n\\f0-9a-fA-F]", unicode = "\\\\[0-9a-fA-F]{1,6}(?:\\r\\n|\\s)?", identifier = "-?(?:[a-zA-Z_-]|" + noascii + "|" + escaped + "|" + unicode + ")(?:-{2}|[0-9]|[a-zA-Z_-]|" + noascii + "|" + escaped + "|" + unicode + ")*", pseudonames = "[-\\w]+", pseudoparms = "(?:[-+]?\\d*)(?:n\\s?[-+]?\\s?\\d*)", doublequote = '"[^"\\\\]*(?:\\\\.[^"\\\\]*)*(?:"|$)', singlequote = "'[^'\\\\]*(?:\\\\.[^'\\\\]*)*(?:'|$)", attrparser = identifier + "|" + doublequote + "|" + singlequote, attrvalues = "([\\x22\\x27]?)((?!\\3)*|(?:\\\\?.)*?)(?:\\3|$)", attributes2 = "\\[(?:\\*\\|)?" + WSP + "?(" + identifier + "(?::" + identifier + ")?)" + WSP + "?(?:(" + CFG.operators + ")" + WSP + "?(?:" + attrparser + "))?(?:" + WSP + "?\\b(i))?" + WSP + "?(?:\\]|$)", attrmatcher = attributes2.replace(attrparser, attrvalues), pseudoclass = "(?:\\x28" + WSP + "*(?:" + pseudoparms + "?)?|(?:\\*|\\*\\|)|(?:(?::" + pseudonames + "(?:\\x28" + pseudoparms + "?(?:\\x29|$))?|)|(?:[.#]?" + identifier + ")|(?:" + attributes2 + "))+|(?:" + WSP + "?[>+~][^>+~]" + WSP + "?)|(?:" + WSP + "?," + WSP + "?)|(?:" + WSP + "?)|(?:\\x29|$))*", standardValidator = "(?=" + WSP + "?[^>+~(){}<>])(?:(?:\\*|\\*\\|)|(?:[.#]?" + identifier + ")+|(?:" + attributes2 + ")+|(?:::?" + pseudonames + pseudoclass + ")|(?:" + WSP + "?" + CFG.combinators + WSP + "?)|(?:" + WSP + "?," + WSP + "?)|(?:" + WSP + "?))+";
        reOptimizer = RegExp(
          "(?:([.:#*]?)(" + identifier + ")(?::[-\\w]+|\\[[^\\]]+(?:\\]|$)|\\x28[^\\x29]+(?:\\x29|$))*)$"
        );
        reValidator = RegExp(standardValidator, "g");
        Patterns.id = RegExp("^#(" + identifier + ")(.*)");
        Patterns.tagName = RegExp("^(" + identifier + ")(.*)");
        Patterns.className = RegExp("^\\.(" + identifier + ")(.*)");
        Patterns.attribute = RegExp("^(?:" + attrmatcher + ")(.*)");
      }, F_INIT = '"use strict";return function Resolver(c,f,x,r)', S_HEAD = "var e,n,o,j=r.length-1,k=-1", M_HEAD = "var e,n,o", N_HEAD = "var e,n,o", S_LOOP = "main:while((e=c[++k]))", M_LOOP = "e=c;", N_LOOP = "main:while((e=c.item(++k)))", S_BODY = "r[++j]=c[k];", M_BODY = "", N_BODY = "r[++j]=c.item(k);", S_TAIL = "continue main;", M_TAIL = "r=true;", N_TAIL = "r=true;", S_TEST = "if(f(c[k])){break main;}", M_TEST = "f(c);", N_TEST = "if(f(c.item(k))){break main;}", S_VARS = [], M_VARS = [], N_VARS = [], S_TEST = "if(f(c[k])){break main;}", M_TEST = "f(c);", N_TEST = "if(f(c.item(k))){break main;}", S_VARS = [], M_VARS = [], N_VARS = [], compile = function(selector, mode, callback) {
        var factory2, token, head = "", loop = "", macro = "", source = "", vars = "";
        switch (mode) {
          case true:
            if (selectLambdas[selector]) {
              return selectLambdas[selector];
            }
            macro = S_BODY + (callback ? S_TEST : "") + S_TAIL;
            head = S_HEAD;
            loop = S_LOOP;
            break;
          case false:
            if (matchLambdas[selector]) {
              return matchLambdas[selector];
            }
            macro = M_BODY + (callback ? M_TEST : "") + M_TAIL;
            head = M_HEAD;
            loop = M_LOOP;
            break;
          case null:
            if (selectLambdas[selector]) {
              return selectLambdas[selector];
            }
            macro = N_BODY + (callback ? N_TEST : "") + N_TAIL;
            head = N_HEAD;
            loop = N_LOOP;
            break;
          default:
            break;
        }
        source = compileSelector(selector, macro, mode, callback);
        loop += mode || mode === null ? "{" + source + "}" : source;
        if (mode || mode === null && selector.includes(":nth")) {
          loop += reNthElem.test(selector) ? "s.nthElement(null, 2);" : "";
          loop += reNthType.test(selector) ? "s.nthOfType(null, 2);" : "";
        }
        if (S_VARS[0] || M_VARS[0] || N_VARS[0]) {
          vars = "," + (S_VARS.join(",") || M_VARS.join(",") || N_VARS[0]);
          S_VARS.length = 0;
          M_VARS.length = 0;
          N_VARS.length = 0;
        }
        factory2 = Function("s", F_INIT + "{" + head + vars + ";" + loop + "return r;}")(Snapshot);
        return mode || mode === null ? selectLambdas[selector] = factory2 : matchLambdas[selector] = factory2;
      }, compileSelector = function(expression, source, mode, callback) {
        var a5, b3, n6, f4, name, NS, referenceElement, compat2, expr, match2, result, status, symbol, test3, type, selector = expression, vars;
        selector = selector.replace(STD.combinator, "$1");
        selector_recursion_label:
          while (selector) {
            symbol = STD.apimethods.test(selector) ? "|" : selector[0];
            switch (symbol) {
              // universal resolver
              case "*":
                match2 = selector.match(Patterns.universal);
                break;
              // id resolver
              case "#":
                match2 = selector.match(Patterns.id);
                source = "if((/^" + match2[1] + '$/.test(e.getAttribute("id")))){' + source + "}";
                break;
              // class name resolver
              case ".":
                match2 = selector.match(Patterns.className);
                compat2 = (QUIRKS_MODE ? "i" : "") + '.test(e.getAttribute("class"))';
                source = "if((/(^|\\s)" + match2[1] + "(\\s|$)/" + compat2 + ")){" + source + "}";
                break;
              // tag name resolver
              case (/[_a-z]/i.test(symbol) ? symbol : void 0):
                match2 = selector.match(Patterns.tagName);
                source = 'if((e.localName=="' + match2[1] + '")){' + source + "}";
                break;
              // namespace resolver
              case "|":
                match2 = selector.match(Patterns.namespace);
                if (match2[1] == "*") {
                  source = "if(true){" + source + "}";
                } else if (!match2[1]) {
                  source = "if((!e.namespaceURI)){" + source + "}";
                } else if (typeof match2[1] == "string" && root.prefix == match2[1]) {
                  source = 'if((e.namespaceURI=="' + NAMESPACE + '")){' + source + "}";
                } else {
                  emit("'" + expression + "'" + qsInvalid);
                }
                break;
              // attributes resolver
              case "[":
                match2 = selector.match(Patterns.attribute);
                NS = match2[0].match(STD.namespaces);
                name = match2[1];
                expr = name.split(":");
                expr = expr.length == 2 ? expr[1] : expr[0];
                if (match2[2] && !(test3 = Operators[match2[2]])) {
                  emit("'" + expression + "'" + qsInvalid);
                  return "";
                }
                if (match2[4] === "") {
                  test3 = match2[2] == "~=" ? { p1: "^\\s", p2: "+$", p3: "true" } : match2[2] in ATTR_STD_OPS && match2[2] != "~=" ? { p1: "^", p2: "$", p3: "true" } : test3;
                } else if (match2[2] == "~=" && match2[4].includes(" ")) {
                  break;
                } else if (match2[4]) {
                  match2[4] = convertEscapes(match2[4]).replace(REX.RegExpChar, "\\$&");
                }
                type = match2[5] == "i" || HTML_DOCUMENT && HTML_TABLE[expr.toLowerCase()] ? "i" : "";
                source = "if((" + (!match2[2] ? NS ? 's.hasAttributeNS(e,"' + name + '")' : 'e.hasAttribute&&e.hasAttribute("' + name + '")' : !match2[4] && ATTR_STD_OPS[match2[2]] && match2[2] != "~=" ? 'e.getAttribute&&e.getAttribute("' + name + '")==""' : "(/" + test3.p1 + match2[4] + test3.p2 + "/" + type + ').test(e.getAttribute&&e.getAttribute("' + name + '"))==' + test3.p3) + ")){" + source + "}";
                break;
              // *** General sibling combinator
              // E ~ F (F relative sibling of E)
              case "~":
                match2 = selector.match(Patterns.relative);
                source = "while(e&&(e=e.previousElementSibling)){" + source + "}";
                break;
              // *** Adjacent sibling combinator
              // E + F (F adiacent sibling of E)
              case "+":
                match2 = selector.match(Patterns.adjacent);
                source = "if(e&&(e=e.previousElementSibling)){" + source + "}";
                break;
              // *** Descendant combinator
              // E F (E ancestor of F)
              case "	":
              case " ":
                match2 = selector.match(Patterns.ancestor);
                source = "while(e&&(e=e.parentElement)){" + source + "}";
                break;
              // *** Child combinator
              // E > F (F children of E)
              case ">":
                match2 = selector.match(Patterns.children);
                source = "if(e&&(e=e.parentElement)){" + source + "}";
                break;
              // *** user supplied combinators extensions
              case (symbol in Combinators ? symbol : void 0):
                match2[match2.length - 1] = "*";
                source = Combinators[symbol](match2) + source;
                break;
              // *** tree-structural pseudo-classes
              // :root, :empty, :first-child, :last-child, :only-child, :first-of-type, :last-of-type, :only-of-type
              case ":":
                if (match2 = selector.match(Patterns.structural)) {
                  match2[1] = match2[1].toLowerCase();
                  switch (match2[1]) {
                    case "scope":
                      source = "if(e===(s.from.nodeType===9?s.root:s.from)){" + source + "}";
                      break;
                    case "root":
                      source = "if((e===s.root)){" + source + (mode ? "break main;" : "") + "}";
                      break;
                    case "empty":
                      source = "n=e.firstChild;while(n&&!(/1|3/).test(n.nodeType)){n=n.nextSibling}if(!n){" + source + "}";
                      break;
                    // *** child-indexed pseudo-classes
                    // :first-child, :last-child, :only-child
                    case "only-child":
                      source = "if((!e.nextElementSibling&&!e.previousElementSibling)){" + source + "}";
                      break;
                    case "last-child":
                      source = "if((!e.nextElementSibling)){" + source + "}";
                      break;
                    case "first-child":
                      source = "if((!e.previousElementSibling)){" + source + "}";
                      break;
                    // *** typed child-indexed pseudo-classes
                    // :only-of-type, :last-of-type, :first-of-type
                    case "only-of-type":
                      source = "o=e.localName;n=e;while((n=n.nextElementSibling)&&n.localName!=o);if(!n){n=e;while((n=n.previousElementSibling)&&n.localName!=o);}if(!n){" + source + "}";
                      break;
                    case "last-of-type":
                      source = "n=e;o=e.localName;while((n=n.nextElementSibling)&&n.localName!=o);if(!n){" + source + "}";
                      break;
                    case "first-of-type":
                      source = "n=e;o=e.localName;while((n=n.previousElementSibling)&&n.localName!=o);if(!n){" + source + "}";
                      break;
                    default:
                      emit("'" + expression + "'" + qsInvalid);
                      break;
                  }
                } else if (match2 = selector.match(Patterns.treestruct)) {
                  match2[1] = match2[1].toLowerCase();
                  switch (match2[1]) {
                    case "nth-child":
                    case "nth-of-type":
                    case "nth-last-child":
                    case "nth-last-of-type":
                      expr = /-of-type/i.test(match2[1]);
                      if (match2[1] && match2[2]) {
                        type = /last/i.test(match2[1]);
                        if (match2[2] == "n") {
                          source = "if(true){" + source + "}";
                          break;
                        } else if (match2[2] == "1") {
                          test3 = type ? "next" : "previous";
                          source = expr ? "n=e;o=e.localName;while((n=n." + test3 + "ElementSibling)&&n.localName!=o);if(!n){" + source + "}" : "if(!e." + test3 + "ElementSibling){" + source + "}";
                          break;
                        } else if (match2[2] == "even" || match2[2] == "2n0" || match2[2] == "2n+0" || match2[2] == "2n") {
                          test3 = "n%2==0";
                        } else if (match2[2] == "odd" || match2[2] == "2n1" || match2[2] == "2n+1") {
                          test3 = "n%2==1";
                        } else {
                          f4 = /n/i.test(match2[2]);
                          n6 = match2[2].split("n");
                          a5 = parseInt(n6[0], 10) || 0;
                          b3 = parseInt(n6[1], 10) || 0;
                          if (n6[0] == "-") {
                            a5 = -1;
                          }
                          if (n6[0] == "+") {
                            a5 = 1;
                          }
                          test3 = (b3 ? "(n" + (b3 > 0 ? "-" : "+") + Math.abs(b3) + ")" : "n") + "%" + a5 + "==0";
                          test3 = a5 >= 1 ? f4 ? "n>" + (b3 - 1) + (Math.abs(a5) != 1 ? "&&" + test3 : "") : "n==" + a5 : a5 <= -1 ? f4 ? "n<" + (b3 + 1) + (Math.abs(a5) != 1 ? "&&" + test3 : "") : "n==" + a5 : a5 === 0 ? n6[0] ? "n==" + b3 : "n>" + (b3 - 1) : "false";
                        }
                        expr = expr ? "OfType" : "Element";
                        type = type ? "true" : "false";
                        source = "n=s.nth" + expr + "(e," + type + ");if((" + test3 + ")){" + source + "}";
                      } else {
                        emit("'" + expression + "'" + qsInvalid);
                      }
                      break;
                    default:
                      emit("'" + expression + "'" + qsInvalid);
                      break;
                  }
                } else if (match2 = selector.match(Patterns.logicalsel)) {
                  match2[1] = match2[1].toLowerCase();
                  expr = match2[2].replace(REX.CommaGroup, ",").replace(REX.TrimSpaces, "").replace(/\x22/g, '\\"');
                  switch (match2[1]) {
                    case "is":
                    case "where":
                      if (Config.FORGIVING) {
                        source = 'try{if(s.match("' + expr + '",e)){' + source + "}}catch(E){}";
                      } else {
                        source = 'if(s.match("' + expr + '",e)){' + source + "}";
                      }
                      break;
                    case "matches":
                      source = 'if(s.match("' + expr + '",e)){' + source + "}";
                      break;
                    case "not":
                      source = 'if(!s.match("' + expr + '",e)){' + source + "}";
                      break;
                    case "has":
                      if (/^\s*(\+|\~)/.test(match2[2])) {
                        source = "if(e.parentElement&&Array.from(e.parentElement" + (/^\s*[+]/.test(match2[2]) ? '.querySelectorAll("*' + expr + '")' : ".children") + ").includes(e.nextElementSibling)){" + source + "}";
                      } else {
                        source = 'if(e.querySelector(":scope ' + expr + '")){' + source + "}";
                      }
                      break;
                    default:
                      emit("'" + expression + "'" + qsInvalid);
                      break;
                  }
                } else if (match2 = selector.match(Patterns.linguistic)) {
                  match2[1] = match2[1].toLowerCase();
                  switch (match2[1]) {
                    case "dir":
                      source = "var p;if(((/" + match2[2] + '/i.test(e.dir))||(p=s.ancestor("[dir]", e))&&(/' + match2[2] + '/i.test(p.dir))||(e.dir==""||e.dir=="auto")&&(' + (match2[2] == "ltr" ? "!" : "") + RTL + ".test(e.textContent)))){" + source + "};";
                      break;
                    case "lang":
                      expr = "(?:^|-)" + match2[2] + "(?:-|$)";
                      source = 'var p;if(((e.isConnected&&(e.lang==""&&(p=s.ancestor("[lang]",e)))&&(p.lang=="' + match2[2] + '")||/' + expr + "/i.test(e.lang)))){" + source + "};";
                      break;
                    default:
                      emit("'" + expression + "'" + qsInvalid);
                      break;
                  }
                } else if (match2 = selector.match(Patterns.locationpc)) {
                  match2[1] = match2[1].toLowerCase();
                  switch (match2[1]) {
                    case "any-link":
                      source = 'if((/^a|area$/i.test(e.localName)&&e.hasAttribute("href")||e.visited)){' + source + "}";
                      break;
                    case "link":
                      source = 'if((/^a|area$/i.test(e.localName)&&e.hasAttribute("href"))){' + source + "}";
                      break;
                    case "visited":
                      source = 'if((/^a|area$/i.test(e.localName)&&e.hasAttribute("href")&&e.visited)){' + source + "}";
                      break;
                    case "target":
                      source = "if(((s.doc.compareDocumentPosition(e)&16)&&s.doc.location.hash&&e.id==s.doc.location.hash.slice(1))){" + source + "}";
                      break;
                    case "defined":
                      source = "n=s.doc.defaultView.customElements.get(e.localName);if(n&&e instanceof n){" + source + "}";
                      break;
                    default:
                      emit("'" + expression + "'" + qsInvalid);
                      break;
                  }
                } else if (match2 = selector.match(Patterns.useraction)) {
                  match2[1] = match2[1].toLowerCase();
                  switch (match2[1]) {
                    case "hover":
                      source = "if(e===s.HOVER){" + source + "}";
                      break;
                    case "active":
                      source = "if(e===s.doc.activeElement){" + source + "}";
                      break;
                    case "focus":
                      source = "if(s.isFocusable(e)){" + source + "}";
                      break;
                    case "focus-visible":
                      source = "if(n=s.isFocusable(e)){if(e!==n){while(e){e=e.parentElement;if(e===n)break;}}}if((e===n||e.autofocus)){" + source + "}";
                      break;
                    case "focus-within":
                      source = "if(n=s.isFocusable(e)){if(n!==e){while(n){n=n.parentElement;if(n===e)break;}}}if((n===e||n.autofocus)){" + source + "}";
                      break;
                    default:
                      emit("'" + expression + "'" + qsInvalid);
                      break;
                  }
                } else if (match2 = selector.match(Patterns.inputstate)) {
                  match2[1] = match2[1].toLowerCase();
                  switch (match2[1]) {
                    case "enabled":
                      source = 'if((("form" in e||/^optgroup$/i.test(e.localName))&&"disabled" in e &&e.disabled===false)){' + source + "}";
                      break;
                    case "disabled":
                      source = 'if((("form" in e||/^optgroup$/i.test(e.localName))&&"disabled" in e)){var x=0,N=[],F=false,L=false;if(!(/^(optgroup|option)$/i.test(e.localName))){n=e.parentElement;while(n){if(n.localName=="fieldset"){N[x++]=n;if(n.disabled===true){F=true;break;}}n=n.parentElement;}for(var x=0;x<N.length;x++){if((n=s.first("legend",N[x]))&&n.contains(e)){L=true;break;}}}if(e.disabled===true||(F&&!L)){' + source + "}}";
                      break;
                    case "read-only":
                      source = 'if((/^textarea$/i.test(e.localName)&&(e.readOnly||e.disabled))||(/^input$/i.test(e.localName)&&("|date|datetime-local|email|month|number|password|search|tel|text|time|url|week|".includes("|"+e.type+"|")?(e.readOnly||e.disabled):true))||(!/^(?:input|textarea)$/i.test(e.localName) && !s.isContentEditable(e))){' + source + "}";
                      break;
                    case "read-write":
                      source = 'if((/^textarea$/i.test(e.localName)&&!e.readOnly&&!e.disabled)||(/^input$/i.test(e.localName)&&"|date|datetime-local|email|month|number|password|search|tel|text|time|url|week|".includes("|"+e.type+"|")&&!e.readOnly&&!e.disabled)||(!/^(?:input|textarea)$/i.test(e.localName) && s.isContentEditable(e))){' + source + "}";
                      break;
                    case "placeholder-shown":
                      source = 'if(((/^input|textarea$/i.test(e.localName))&&e.hasAttribute("placeholder")&&("|textarea|password|number|search|email|text|tel|url|".includes("|"+e.type+"|"))&&(!s.match(":focus",e)))){' + source + "}";
                      break;
                    case "default":
                      source = 'if(("form" in e && e.form)){var x=0;n=[];if(e.type=="image")n=e.form.getElementsByTagName("input");if(e.type=="submit")n=e.form.elements;while(n[x]&&e!==n[x]){if(n[x].type=="image")break;if(n[x].type=="submit")break;x++;}}if((e.form&&(e===n[x]&&"|image|submit|".includes("|"+e.type+"|"))||((/^option$/i.test(e.localName))&&e.defaultSelected)||(("|radio|checkbox|".includes("|"+e.type+"|"))&&e.defaultChecked))){' + source + "}";
                      break;
                    default:
                      emit("'" + expression + "'" + qsInvalid);
                      break;
                  }
                } else if (match2 = selector.match(Patterns.inputvalue)) {
                  match2[1] = match2[1].toLowerCase();
                  switch (match2[1]) {
                    case "checked":
                      source = 'if((/^input$/i.test(e.localName)&&("|radio|checkbox|".includes("|"+e.type+"|")&&e.checked)||(/^option$/i.test(e.localName)&&(e.selected||e.checked)))){' + source + "}";
                      break;
                    case "indeterminate":
                      source = 'if((/^progress$/i.test(e.localName)&&!e.hasAttribute("value"))||(/^input$/i.test(e.localName)&&("checkbox"==e.type&&e.indeterminate)||("radio"==e.type&&e.name&&!s.first("input[name="+e.name+"]:checked",e.form)))){' + source + "}";
                      break;
                    case "required":
                      source = "if((/^input|select|textarea$/i.test(e.localName)&&e.required)){" + source + "}";
                      break;
                    case "optional":
                      source = "if((/^input|select|textarea$/i.test(e.localName)&&!e.required)){" + source + "}";
                      break;
                    case "invalid":
                      source = 'if((((/^form$/i.test(e.localName)&&!e.noValidate)||(e.willValidate&&!e.formNoValidate))&&!e.checkValidity())||(/^fieldset$/i.test(e.localName)&&s.first(":invalid",e))){' + source + "}";
                      break;
                    case "valid":
                      source = 'if((((/^form$/i.test(e.localName)&&!e.noValidate)||(e.willValidate&&!e.formNoValidate))&&e.checkValidity())||(/^fieldset$/i.test(e.localName)&&s.first(":valid",e))){' + source + "}";
                      break;
                    case "in-range":
                      source = 'if((/^input$/i.test(e.localName))&&(e.willValidate&&!e.formNoValidate)&&(!e.validity.rangeUnderflow&&!e.validity.rangeOverflow)&&("|date|datetime-local|month|number|range|time|week|".includes("|"+e.type+"|"))&&("range"==e.type||e.getAttribute("min")||e.getAttribute("max"))){' + source + "}";
                      break;
                    case "out-of-range":
                      source = 'if((/^input$/i.test(e.localName))&&(e.willValidate&&!e.formNoValidate)&&(e.validity.rangeUnderflow||e.validity.rangeOverflow)&&("|date|datetime-local|month|number|range|time|week|".includes("|"+e.type+"|"))&&("range"==e.type||e.getAttribute("min")||e.getAttribute("max"))){' + source + "}";
                      break;
                    default:
                      emit("'" + expression + "'" + qsInvalid);
                      break;
                  }
                } else if (match2 = selector.match(Patterns.rsrc_state)) {
                  match2[1] = match2[1].toLowerCase();
                  switch (match2[1]) {
                    case "playing":
                      source = "if(s.isPlaying(e)){" + source + "}";
                      break;
                    case "paused":
                      source = "if(!s.isPlaying(e)){" + source + "}";
                      break;
                    case "seeking":
                      source = "if(!s.isPlaying(e)){" + source + "}";
                      break;
                    case "buffering":
                      break;
                    case "stalled":
                      break;
                    case "muted":
                      source = 'if(e.localName=="audio"&&e.getAttribute("muted")){' + source + "}";
                      break;
                    case "volume-locked":
                      break;
                    default:
                      break;
                  }
                } else if (match2 = selector.match(Patterns.pseudo_nop)) {
                  break;
                } else if (match2 = selector.match(Patterns.pseudo_sng)) {
                  source = 'if(e.element&&e.type.toLowerCase()==":' + match2[0].toLowerCase() + '"){e=e.element;' + source + "}";
                } else if (match2 = selector.match(Patterns.pseudo_dbl)) {
                  source = 'if(e.element&&e.type.toLowerCase()=="' + match2[0].toLowerCase() + '"){e=e.element;' + source + "}";
                } else {
                  expr = false;
                  status = false;
                  for (expr in Selectors) {
                    if (match2 = selector.match(Selectors[expr].Expression)) {
                      result = Selectors[expr].Callback(match2, source, mode, callback);
                      if ("match" in result) {
                        match2 = result.match;
                      }
                      vars = result.modvar;
                      if (mode) {
                        vars && S_VARS.indexOf(vars) < 0 && (S_VARS[S_VARS.length] = vars);
                      } else {
                        vars && M_VARS.indexOf(vars) < 0 && (M_VARS[M_VARS.length] = vars);
                      }
                      source = result.source;
                      status = result.status;
                      if (status) {
                        break;
                      }
                    }
                  }
                  if (!status) {
                    if (Config.FORGIVING && selector.match(/(:(?:is|where)\x28)/)) {
                      return "";
                    }
                    emit("unknown pseudo-class selector '" + selector + "'");
                    return "";
                  }
                  if (!expr) {
                    if (Config.FORGIVING && selector.match(/(:(?:is|where)\x28)/)) {
                      return "";
                    }
                    emit("unknown token in selector '" + selector + "'");
                    return "";
                  }
                }
                break;
              default:
                emit("'" + expression + "'" + qsInvalid);
                break selector_recursion_label;
            }
            if (!match2) {
              if (Config.FORGIVING && selector.match(/(:(?:is|where)\x28)/)) {
                return "";
              }
              emit("'" + expression + "'" + qsInvalid);
              return "";
            }
            selector = match2.pop();
          }
        return source;
      }, makeref = function(selectors, element) {
        if (element.nodeType === 9) {
          element = element.documentElement;
        }
        return selectors.replace(
          /:scope/i,
          element.localName + (element.id ? "#" + escape(element.id) : "") + (element.className ? "." + escape(element.classList[0]) : "")
        );
      }, ancestor = function _closest2(selectors, element, callback) {
        parse3(selectors, true);
        selectors = makeref(selectors, element);
        while (element) {
          if (match(selectors, element, callback)) break;
          element = element.parentElement;
        }
        return element;
      }, match_assert = function(f4, element, callback) {
        for (var i5 = 0, l4 = f4.length, r4 = false; l4 > i5; ++i5)
          f4[i5](element, callback, null, false) && (r4 = true);
        return r4;
      }, match_collect = function(selectors, callback) {
        for (var i5 = 0, l4 = selectors.length, f4 = []; l4 > i5; ++i5)
          f4[i5] = compile(selectors[i5], false, callback);
        return { factory: f4 };
      }, parse3 = function(selectors, type) {
        var parsed;
        if (arguments.length === 0) {
          emit(qsNotArgs, TypeError);
          return Config.VERBOSITY ? void 0 : type ? none : false;
        } else if (arguments[0] === "") {
          emit("''" + qsInvalid);
          return Config.VERBOSITY ? void 0 : type ? none : false;
        }
        if (typeof selectors != "string") {
          selectors = "" + selectors;
        }
        if (/:scope/i.test(selectors)) {
          selectors = makeref(selectors, Snapshot.from);
        }
        parsed = unescape(selectors).replace(/\x00|\\$/g, "\uFFFD").replace(REX.CombineWSP, " ").replace(REX.PseudosWSP, "$1").replace(REX.TabCharWSP, "	").replace(REX.CommaGroup, ",").replace(REX.TrimSpaces, "");
        if ((selectors = parsed.match(reValidator)) && selectors.join("") == parsed) {
          selectors = parsed.match(REX.SplitGroup);
          if (parsed[parsed.length - 1] == ",") {
            emit(qsInvalid);
            return Config.VERBOSITY ? void 0 : type ? none : false;
          }
        } else {
          if (Config.FORGIVING) {
            if (!(parsed.includes(":is(") || parsed.includes(":where("))) {
              emit("'" + selectors + "'" + qsInvalid);
              return Config.VERBOSITY ? void 0 : type ? none : false;
            }
          }
        }
        return selectors;
      }, match = function _matches2(selectors, element, callback) {
        if (element && matchResolvers[selectors]) {
          return match_assert(matchResolvers[selectors].factory, element, callback);
        }
        matchResolvers[selectors] = match_collect(parse3(selectors, false), callback);
        return match_assert(matchResolvers[selectors].factory, element, callback);
      }, first = function _querySelector2(selectors, context, callback) {
        return select(
          selectors,
          context,
          typeof callback == "function" ? function firstMatch(element) {
            callback(element);
            return false;
          } : function firstMatch() {
            return false;
          }
        )[0] || null;
      }, select = function _querySelectorAll2(selectors, context, callback) {
        var nodes = [], resolver;
        arguments.length == 0 && emit(qsNotArgs, TypeError);
        context || (context = doc);
        lastContext !== context && (lastContext = switchContext(context));
        if (selectors) {
          if (resolver = selectResolvers[selectors]) {
            if (resolver.context === context && resolver.callback === callback) {
              var i5, l4, list, f4 = resolver.factory, h4 = resolver.htmlset, n6 = resolver.nodeset;
              if (n6.length > 1) {
                for (i5 = 0, l4 = n6.length; l4 > i5; ++i5) {
                  list = compat[n6[i5][0]](context, n6[i5].slice(1))();
                  if (f4[i5] !== null) {
                    f4[i5](list, callback, context, nodes);
                  } else {
                    nodes = nodes.concat(list);
                  }
                }
                if (l4 > 1 && nodes.length > 1) {
                  nodes.sort(documentOrder);
                  hasDupes && (nodes = unique2(nodes));
                }
              } else {
                if (f4[0]) {
                  nodes = f4[0](h4[0](), callback, context, nodes);
                } else {
                  nodes = h4[0]();
                }
              }
              if (typeof callback == "function") {
                nodes = concatCall(nodes, callback);
              }
              return !Config.NODE_LIST ? nodes : isInstanceOf(nodes) ? nodes : toNodeList(nodes);
            }
          }
        }
        selectResolvers[selectors] = collect(parse3(selectors, true), context, callback);
        nodes = selectResolvers[selectors].results;
        if (typeof callback == "function") {
          nodes = concatCall(nodes, callback);
        }
        return !Config.NODE_LIST ? nodes : isInstanceOf(nodes) ? nodes : toNodeList(nodes);
      }, optimize = function(selector, token) {
        var index2 = token.index, length2 = token[1].length + token[2].length;
        return selector.slice(0, index2) + (" >+~".indexOf(selector.charAt(index2 - 1)) > -1 ? ":[".indexOf(selector.charAt(index2 + length2 + 1)) > -1 ? "*" : "" : "") + selector.slice(index2 + length2 - (token[1] == "*" ? 1 : 0));
      }, collect = function(selectors, context, callback) {
        var i5, l4, seen = {}, token = ["", "*", "*"], optimized = selectors, factory2 = [], htmlset = [], nodeset = [], results = [], type;
        for (i5 = 0, l4 = selectors.length; l4 > i5; ++i5) {
          if (!seen[selectors[i5]] && (seen[selectors[i5]] = true)) {
            type = selectors[i5].match(reOptimizer);
            if (type && type[1] != ":" && (token = type)) {
              token[1] || (token[1] = "*");
              optimized[i5] = optimize(optimized[i5], token);
            } else {
              token = ["", "*", "*"];
            }
          }
          nodeset[i5] = token[1] + token[2];
          token[2] = unescapeIdentifier(token[2]);
          htmlset[i5] = compat[token[1]](context, token[2]);
          factory2[i5] = compile(optimized[i5], true, null);
          factory2[i5] ? factory2[i5](htmlset[i5](), callback, context, results) : results.concat(htmlset[i5]());
        }
        if (l4 > 1) {
          results.sort(documentOrder);
          hasDupes && (results = unique2(results));
        }
        return {
          callback,
          context,
          factory: factory2,
          htmlset,
          nodeset,
          results
        };
      }, initEnv = (function() {
        doc.addEventListener("mouseover", function(e4) {
          Snapshot.HOVER = e4.target;
        }, true);
        doc.addEventListener("mouseout", function(e4) {
          Snapshot.HOVER = null;
        }, true);
      })(), _closest, _matches, _querySelector, _querySelectorAll, _querySelectorDoc, _querySelectorAllDoc, install = function(all5) {
        _closest = Element.prototype.closest;
        _matches = Element.prototype.matches;
        _querySelector = Element.prototype.querySelector;
        _querySelectorAll = Element.prototype.querySelectorAll;
        _querySelectorDoc = Document.prototype.querySelector;
        _querySelectorAllDoc = Document.prototype.querySelectorAll;
        function parseQSArgs() {
          var method2 = arguments[arguments.length - 1];
          return arguments.length < 2 ? method2.apply(this, []) : arguments.length < 3 ? method2.apply(this, [arguments[0], this]) : method2.apply(this, [
            arguments[0],
            this,
            typeof arguments[1] == "function" ? arguments[1] : void 0
          ]);
        }
        Element.prototype.closest = HTMLElement.prototype.closest = function closest() {
          return parseQSArgs.apply(this, [].slice.call(arguments).concat(ancestor));
        };
        Element.prototype.matches = HTMLElement.prototype.matches = function matches() {
          return parseQSArgs.apply(this, [].slice.call(arguments).concat(match));
        };
        Element.prototype.querySelector = HTMLElement.prototype.querySelector = function querySelector() {
          return parseQSArgs.apply(this, [].slice.call(arguments).concat(first));
        };
        Element.prototype.querySelectorAll = HTMLElement.prototype.querySelectorAll = function querySelectorAll() {
          return parseQSArgs.apply(this, [].slice.call(arguments).concat(select));
        };
        Document.prototype.querySelector = DocumentFragment.prototype.querySelector = function querySelector() {
          return parseQSArgs.apply(this, [].slice.call(arguments).concat(first));
        };
        Document.prototype.querySelectorAll = DocumentFragment.prototype.querySelectorAll = function querySelectorAll() {
          return parseQSArgs.apply(this, [].slice.call(arguments).concat(select));
        };
        if (all5) {
          doc.addEventListener("load", function(e4) {
            var c6, d3, r4, s4, t4 = e4.target;
            if (/iframe/i.test(t4.localName)) {
              c6 = "(" + Export + ")(this, " + Factory + ");";
              d3 = t4.ownerDocument;
              s4 = d3.createElement("script");
              s4.textContent = c6 + "NW.Dom.install(true)";
              r4 = d3.documentElement;
              r4.removeChild(r4.insertBefore(s4, r4.firstChild));
            }
          }, true);
        }
      }, uninstall = function() {
        if (_closest) {
          Element.prototype.closest = _closest;
          HTMLElement.prototype.closest = _closest;
        }
        if (_matches) {
          Element.prototype.matches = _matches;
          HTMLElement.prototype.matches = _matches;
        }
        if (_querySelector) {
          Element.prototype.querySelector = HTMLElement.prototype.querySelector = _querySelector;
          Element.prototype.querySelectorAll = HTMLElement.prototype.querySelectorAll = _querySelector;
        }
        if (_querySelectorAllDoc) {
          Document.prototype.querySelector = DocumentFragment.prototype.querySelector = _querySelectorDoc;
          Document.prototype.querySelectorAll = DocumentFragment.prototype.querySelectorAll = _querySelectorAllDoc;
        }
      }, none = Array(), lastContext, matchLambdas = {}, selectLambdas = {}, matchResolvers = {}, selectResolvers = {}, Snapshot = {
        doc,
        from: doc,
        root,
        byTag,
        first,
        match,
        ancestor,
        nthOfType,
        nthElement,
        isFocusable,
        isContentEditable,
        hasAttributeNS
      }, Dom = {
        // exported cache objects
        matchLambdas,
        selectLambdas,
        matchResolvers,
        selectResolvers,
        // exported compiler macros
        CFG,
        S_BODY,
        M_BODY,
        N_BODY: M_BODY,
        S_TEST,
        M_TEST,
        N_TEST,
        // exported engine methods
        byId,
        byTag,
        byClass,
        match,
        first,
        select,
        closest: ancestor,
        compile,
        configure,
        emit,
        Config,
        Snapshot,
        Version: version2,
        install,
        uninstall,
        Operators,
        Selectors,
        // register a new selector combinator symbol and its related function resolver
        registerCombinator: function(combinator, resolver) {
          var i5 = 0, l4 = combinator.length, symbol;
          for (; l4 > i5; ++i5) {
            if (combinator[i5] != "=") {
              symbol = combinator[i5];
              break;
            }
          }
          if (CFG.combinators.indexOf(symbol) < 0) {
            CFG.combinators = CFG.combinators.replace("](", symbol + "](");
            CFG.combinators = CFG.combinators.replace("])", symbol + "])");
            Combinators[combinator] = resolver;
            setIdentifierSyntax();
          } else {
            console.warn("Warning: the '" + combinator + "' combinator is already registered.");
          }
        },
        // register a new attribute operator symbol and its related function resolver
        registerOperator: function(operator, resolver) {
          var i5 = 0, l4 = operator.length, symbol;
          for (; l4 > i5; ++i5) {
            if (operator[i5] != "=") {
              symbol = operator[i5];
              break;
            }
          }
          if (CFG.operators.indexOf(symbol) < 0 && !Operators[operator]) {
            CFG.operators = CFG.operators.replace("]=", symbol + "]=");
            Operators[operator] = resolver;
            setIdentifierSyntax();
          } else {
            console.warn("Warning: the '" + operator + "' operator is already registered.");
          }
        },
        // register a new selector symbol and its related function resolver
        registerSelector: function(name, rexp, func) {
          Selectors[name] || (Selectors[name] = {
            Expression: rexp,
            Callback: func
          });
        }
      };
      initialize2(doc);
      return Dom;
    });
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/selectors.js
var require_selectors = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/selectors.js"(exports) {
    "use strict";
    var nwsapi = require_nwsapi();
    var idlUtils = require_utils16();
    function initNwsapi(node) {
      const { _globalObject, _ownerDocument } = node;
      return nwsapi({
        document: idlUtils.wrapperForImpl(_ownerDocument),
        DOMException: _globalObject.DOMException
      });
    }
    exports.matchesDontThrow = (elImpl, selector) => {
      const document2 = elImpl._ownerDocument;
      if (!document2._nwsapiDontThrow) {
        document2._nwsapiDontThrow = initNwsapi(elImpl);
        document2._nwsapiDontThrow.configure({
          LOGERRORS: false,
          VERBOSITY: false,
          IDS_DUPES: true,
          MIXEDCASE: true
        });
      }
      return document2._nwsapiDontThrow.match(selector, idlUtils.wrapperForImpl(elImpl));
    };
    exports.addNwsapi = (parentNode) => {
      const document2 = parentNode._ownerDocument;
      if (!document2._nwsapi) {
        document2._nwsapi = initNwsapi(parentNode);
        document2._nwsapi.configure({
          LOGERRORS: false,
          IDS_DUPES: true,
          MIXEDCASE: true
        });
      }
      return document2._nwsapi;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/style-rules.js
var require_style_rules = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/style-rules.js"(exports) {
    "use strict";
    var cssom = require_lib21();
    var { CSSStyleDeclaration } = require_CSSStyleDeclaration2();
    var defaultStyleSheet = require_default_stylesheet();
    var { getSpecifiedColor, getComputedOrUsedColor } = require_colors();
    var { matchesDontThrow } = require_selectors();
    var { forEach: forEach2, indexOf: indexOf3 } = Array.prototype;
    var parsedDefaultStyleSheet;
    exports.propertiesWithResolvedValueImplemented = {
      "__proto__": null,
      // https://drafts.csswg.org/css2/visufx.html#visibility
      "visibility": {
        inherited: true,
        initial: "visible",
        computedValue: "as-specified"
      },
      // https://svgwg.org/svg2-draft/interact.html#PointerEventsProperty
      "pointer-events": {
        inherited: true,
        initial: "auto",
        computedValue: "as-specified"
      },
      // https://drafts.csswg.org/css-backgrounds-3/#propdef-background-color
      "background-color": {
        inherited: false,
        initial: "transparent",
        computedValue: "computed-color"
      },
      // https://drafts.csswg.org/css-logical-1/#propdef-border-block-end-color
      "border-block-start-color": {
        inherited: false,
        initial: "currentcolor",
        computedValue: "computed-color"
      },
      "border-block-end-color": {
        inherited: false,
        initial: "currentcolor",
        computedValue: "computed-color"
      },
      "border-inline-start-color": {
        inherited: false,
        initial: "currentcolor",
        computedValue: "computed-color"
      },
      "border-inline-end-color": {
        inherited: false,
        initial: "currentcolor",
        computedValue: "computed-color"
      },
      // https://drafts.csswg.org/css-backgrounds-3/#propdef-border-bottom-color
      "border-top-color": {
        inherited: false,
        initial: "currentcolor",
        computedValue: "computed-color"
      },
      "border-right-color": {
        inherited: false,
        initial: "currentcolor",
        computedValue: "computed-color"
      },
      "border-bottom-color": {
        inherited: false,
        initial: "currentcolor",
        computedValue: "computed-color"
      },
      "border-left-color": {
        inherited: false,
        initial: "currentcolor",
        computedValue: "computed-color"
      },
      // https://drafts.csswg.org/css-ui-4/#propdef-caret-color
      "caret-color": {
        inherited: true,
        initial: "auto",
        computedValue: "computed-color"
      },
      // https://drafts.csswg.org/css-color-4/#propdef-color
      "color": {
        inherited: true,
        initial: "CanvasText",
        computedValue: "computed-color"
      },
      // https://drafts.csswg.org/css-ui-4/#propdef-outline-color
      "outline-color": {
        inherited: false,
        initial: "invert",
        computedValue: "computed-color"
      }
    };
    function forEachMatchingSheetRuleOfElement(elementImpl, handleRule) {
      function handleSheet(sheet) {
        forEach2.call(sheet.cssRules, (rule) => {
          if (rule.media) {
            if (indexOf3.call(rule.media, "screen") !== -1) {
              forEach2.call(rule.cssRules, (innerRule) => {
                if (matches(innerRule, elementImpl)) {
                  handleRule(innerRule);
                }
              });
            }
          } else if (matches(rule, elementImpl)) {
            handleRule(rule);
          }
        });
      }
      if (!parsedDefaultStyleSheet) {
        parsedDefaultStyleSheet = cssom.parse(defaultStyleSheet);
      }
      handleSheet(parsedDefaultStyleSheet);
      forEach2.call(elementImpl._ownerDocument.styleSheets._list, handleSheet);
    }
    exports.invalidateStyleCache = (elementImpl) => {
      if (elementImpl._attached) {
        elementImpl._ownerDocument._styleCache = null;
      }
    };
    exports.getDeclarationForElement = (elementImpl) => {
      let styleCache = elementImpl._ownerDocument._styleCache;
      if (!styleCache) {
        styleCache = elementImpl._ownerDocument._styleCache = /* @__PURE__ */ new WeakMap();
      }
      const cachedDeclaration = styleCache.get(elementImpl);
      if (cachedDeclaration) {
        return cachedDeclaration;
      }
      const declaration = new CSSStyleDeclaration();
      function handleProperty(style, property) {
        const value2 = style.getPropertyValue(property);
        if (value2 === "unset") {
          declaration.removeProperty(property);
        } else {
          declaration.setProperty(
            property,
            value2,
            style.getPropertyPriority(property)
          );
        }
      }
      forEachMatchingSheetRuleOfElement(elementImpl, (rule) => {
        forEach2.call(rule.style, (property) => {
          handleProperty(rule.style, property);
        });
      });
      forEach2.call(elementImpl.style, (property) => {
        handleProperty(elementImpl.style, property);
      });
      styleCache.set(elementImpl, declaration);
      return declaration;
    };
    function matches(rule, element) {
      return matchesDontThrow(element, rule.selectorText);
    }
    function getCascadedPropertyValue(element, property) {
      return exports.getDeclarationForElement(element).getPropertyValue(property);
    }
    function getSpecifiedValue(element, property) {
      const { initial, inherited, computedValue } = exports.propertiesWithResolvedValueImplemented[property];
      const cascade = getCascadedPropertyValue(element, property);
      if (cascade !== "") {
        if (computedValue === "computed-color") {
          return getSpecifiedColor(cascade);
        }
        return cascade;
      }
      if (inherited && element.parentElement !== null) {
        return getComputedValue(element.parentElement, property);
      }
      return initial;
    }
    function getComputedValue(element, property) {
      const { computedValue, initial } = exports.propertiesWithResolvedValueImplemented[property];
      if (computedValue === "as-specified") {
        return getSpecifiedValue(element, property);
      } else if (computedValue === "computed-color") {
        const specifiedValue = getSpecifiedValue(element, property);
        if (specifiedValue === "currentcolor") {
          if (property === "color") {
            if (element.parentElement !== null) {
              return getComputedValue(element.parentElement, "color");
            }
            return initial;
          }
          return getComputedValue(element, "color");
        }
        return getComputedOrUsedColor(specifiedValue);
      }
      throw new TypeError(`Internal error: unrecognized computed value instruction '${computedValue}'`);
    }
    exports.getResolvedValue = (element, property) => {
      return getComputedValue(element, property);
    };
    exports.SHADOW_DOM_PSEUDO_REGEXP = /^::(?:part|slotted)\(/i;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/Node-impl.js
var require_Node_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/Node-impl.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var EventTargetImpl = require_EventTarget_impl().implementation;
    var { simultaneousIterators } = require_utils17();
    var NODE_TYPE = require_node_type();
    var NODE_DOCUMENT_POSITION = require_node_document_position();
    var { clone, locateNamespacePrefix, locateNamespace } = require_node5();
    var { setAnExistingAttributeValue } = require_attributes3();
    var NodeList = require_NodeList();
    var { nodeRoot, nodeLength, isInclusiveAncestor } = require_node4();
    var { domSymbolTree } = require_internal_constants();
    var { queueTreeMutationRecord } = require_mutation_observers();
    var { enqueueCECallbackReaction, tryUpgradeElement } = require_custom_elements();
    var {
      isShadowRoot,
      shadowIncludingRoot,
      assignSlot,
      assignSlotableForTree,
      assignSlotable,
      signalSlotChange,
      isSlot,
      shadowIncludingInclusiveDescendantsIterator,
      shadowIncludingDescendantsIterator
    } = require_shadow_dom();
    var { invalidateStyleCache } = require_style_rules();
    function nodeEquals(a5, b3) {
      if (a5.nodeType !== b3.nodeType) {
        return false;
      }
      switch (a5.nodeType) {
        case NODE_TYPE.DOCUMENT_TYPE_NODE:
          if (a5.name !== b3.name || a5.publicId !== b3.publicId || a5.systemId !== b3.systemId) {
            return false;
          }
          break;
        case NODE_TYPE.ELEMENT_NODE:
          if (a5._namespaceURI !== b3._namespaceURI || a5._prefix !== b3._prefix || a5._localName !== b3._localName || a5._attributeList.length !== b3._attributeList.length) {
            return false;
          }
          break;
        case NODE_TYPE.ATTRIBUTE_NODE:
          if (a5._namespace !== b3._namespace || a5._localName !== b3._localName || a5._value !== b3._value) {
            return false;
          }
          break;
        case NODE_TYPE.PROCESSING_INSTRUCTION_NODE:
          if (a5._target !== b3._target || a5._data !== b3._data) {
            return false;
          }
          break;
        case NODE_TYPE.TEXT_NODE:
        case NODE_TYPE.COMMENT_NODE:
          if (a5._data !== b3._data) {
            return false;
          }
          break;
      }
      if (a5.nodeType === NODE_TYPE.ELEMENT_NODE && !attributeListsEqual(a5, b3)) {
        return false;
      }
      for (const nodes of simultaneousIterators(domSymbolTree.childrenIterator(a5), domSymbolTree.childrenIterator(b3))) {
        if (!nodes[0] || !nodes[1]) {
          return false;
        }
        if (!nodeEquals(nodes[0], nodes[1])) {
          return false;
        }
      }
      return true;
    }
    function attributeListsEqual(elementA, elementB) {
      const listA = elementA._attributeList;
      const listB = elementB._attributeList;
      const lengthA = listA.length;
      const lengthB = listB.length;
      if (lengthA !== lengthB) {
        return false;
      }
      for (let i5 = 0; i5 < lengthA; ++i5) {
        const attrA = listA[i5];
        if (!listB.some((attrB) => nodeEquals(attrA, attrB))) {
          return false;
        }
      }
      return true;
    }
    function isHostInclusiveAncestor(nodeImplA, nodeImplB) {
      for (const ancestor of domSymbolTree.ancestorsIterator(nodeImplB)) {
        if (ancestor === nodeImplA) {
          return true;
        }
      }
      const rootImplB = nodeRoot(nodeImplB);
      if (rootImplB._host) {
        return isHostInclusiveAncestor(nodeImplA, rootImplB._host);
      }
      return false;
    }
    var NodeImpl = class extends EventTargetImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        domSymbolTree.initialize(this);
        this._ownerDocument = privateData.ownerDocument;
        this._childNodesList = null;
        this._childrenList = null;
        this._version = 0;
        this._memoizedQueries = {};
        this._registeredObserverList = [];
        this._referencedRanges = /* @__PURE__ */ new Set();
      }
      _getTheParent() {
        if (this._assignedSlot) {
          return this._assignedSlot;
        }
        return domSymbolTree.parent(this);
      }
      get parentNode() {
        return domSymbolTree.parent(this);
      }
      getRootNode(options) {
        return options.composed ? shadowIncludingRoot(this) : nodeRoot(this);
      }
      get nodeName() {
        switch (this.nodeType) {
          case NODE_TYPE.ELEMENT_NODE:
            return this.tagName;
          case NODE_TYPE.ATTRIBUTE_NODE:
            return this._qualifiedName;
          case NODE_TYPE.TEXT_NODE:
            return "#text";
          case NODE_TYPE.CDATA_SECTION_NODE:
            return "#cdata-section";
          case NODE_TYPE.PROCESSING_INSTRUCTION_NODE:
            return this.target;
          case NODE_TYPE.COMMENT_NODE:
            return "#comment";
          case NODE_TYPE.DOCUMENT_NODE:
            return "#document";
          case NODE_TYPE.DOCUMENT_TYPE_NODE:
            return this.name;
          case NODE_TYPE.DOCUMENT_FRAGMENT_NODE:
            return "#document-fragment";
        }
        return null;
      }
      get firstChild() {
        return domSymbolTree.firstChild(this);
      }
      // https://dom.spec.whatwg.org/#connected
      // https://dom.spec.whatwg.org/#dom-node-isconnected
      get isConnected() {
        const root = shadowIncludingRoot(this);
        return root && root.nodeType === NODE_TYPE.DOCUMENT_NODE;
      }
      get ownerDocument() {
        return this.nodeType === NODE_TYPE.DOCUMENT_NODE ? null : this._ownerDocument;
      }
      get lastChild() {
        return domSymbolTree.lastChild(this);
      }
      get childNodes() {
        if (!this._childNodesList) {
          this._childNodesList = NodeList.createImpl(this._globalObject, [], {
            element: this,
            query: () => domSymbolTree.childrenToArray(this)
          });
        } else {
          this._childNodesList._update();
        }
        return this._childNodesList;
      }
      get nextSibling() {
        return domSymbolTree.nextSibling(this);
      }
      get previousSibling() {
        return domSymbolTree.previousSibling(this);
      }
      _modified() {
        this._version++;
        for (const ancestor of domSymbolTree.ancestorsIterator(this)) {
          ancestor._version++;
        }
        if (this._childrenList) {
          this._childrenList._update();
        }
        if (this._childNodesList) {
          this._childNodesList._update();
        }
        this._clearMemoizedQueries();
        invalidateStyleCache(this);
      }
      _childTextContentChangeSteps() {
        invalidateStyleCache(this);
      }
      _clearMemoizedQueries() {
        this._memoizedQueries = {};
        const myParent = domSymbolTree.parent(this);
        if (myParent) {
          myParent._clearMemoizedQueries();
        }
      }
      _descendantRemoved(parent, child) {
        const myParent = domSymbolTree.parent(this);
        if (myParent) {
          myParent._descendantRemoved(parent, child);
        }
      }
      _descendantAdded(parent, child) {
        const myParent = domSymbolTree.parent(this);
        if (myParent) {
          myParent._descendantAdded(parent, child);
        }
      }
      _attach() {
        this._attached = true;
        for (const child of domSymbolTree.childrenIterator(this)) {
          if (child._attach) {
            child._attach();
          }
        }
      }
      _detach() {
        this._attached = false;
        if (this._ownerDocument && this._ownerDocument._lastFocusedElement === this) {
          this._ownerDocument._lastFocusedElement = null;
        }
        for (const child of domSymbolTree.childrenIterator(this)) {
          if (child._detach) {
            child._detach();
          }
        }
      }
      hasChildNodes() {
        return domSymbolTree.hasChildren(this);
      }
      // https://dom.spec.whatwg.org/#dom-node-normalize
      normalize() {
        for (const node of domSymbolTree.treeToArray(this)) {
          const parentNode = domSymbolTree.parent(node);
          if (parentNode === null || node.nodeType !== NODE_TYPE.TEXT_NODE) {
            continue;
          }
          let length2 = nodeLength(node);
          if (length2 === 0) {
            parentNode._remove(node);
            continue;
          }
          const continuousExclusiveTextNodes = [];
          for (const currentNode2 of domSymbolTree.previousSiblingsIterator(node)) {
            if (currentNode2.nodeType !== NODE_TYPE.TEXT_NODE) {
              break;
            }
            continuousExclusiveTextNodes.unshift(currentNode2);
          }
          for (const currentNode2 of domSymbolTree.nextSiblingsIterator(node)) {
            if (currentNode2.nodeType !== NODE_TYPE.TEXT_NODE) {
              break;
            }
            continuousExclusiveTextNodes.push(currentNode2);
          }
          const data2 = continuousExclusiveTextNodes.reduce((d3, n6) => d3 + n6._data, "");
          node.replaceData(length2, 0, data2);
          let currentNode = domSymbolTree.nextSibling(node);
          while (currentNode && currentNode.nodeType === NODE_TYPE.TEXT_NODE) {
            const currentNodeIndex = domSymbolTree.index(currentNode);
            for (const range2 of node._referencedRanges) {
              const { _start, _end } = range2;
              if (_start.node === currentNode) {
                range2._setLiveRangeStart(node, _start.offset + length2);
              }
              if (_end.node === currentNode) {
                range2._setLiveRangeEnd(node, _end.offset + length2);
              }
            }
            for (const range2 of parentNode._referencedRanges) {
              const { _start, _end } = range2;
              if (_start.node === parentNode && _start.offset === currentNodeIndex) {
                range2._setLiveRangeStart(node, length2);
              }
              if (_end.node === parentNode && _end.offset === currentNodeIndex) {
                range2._setLiveRangeEnd(node, length2);
              }
            }
            length2 += nodeLength(currentNode);
            currentNode = domSymbolTree.nextSibling(currentNode);
          }
          for (const continuousExclusiveTextNode of continuousExclusiveTextNodes) {
            parentNode._remove(continuousExclusiveTextNode);
          }
        }
      }
      get parentElement() {
        const parentNode = domSymbolTree.parent(this);
        return parentNode !== null && parentNode.nodeType === NODE_TYPE.ELEMENT_NODE ? parentNode : null;
      }
      get baseURI() {
        return this._ownerDocument.baseURLSerialized();
      }
      compareDocumentPosition(other) {
        let node1 = other;
        let node2 = this;
        let attr1 = null;
        let attr2 = null;
        if (node1.nodeType === NODE_TYPE.ATTRIBUTE_NODE) {
          attr1 = node1;
          node1 = attr1._element;
        }
        if (node2.nodeType === NODE_TYPE.ATTRIBUTE_NODE) {
          attr2 = node2;
          node2 = attr2._element;
          if (attr1 !== null && node1 !== null && node2 === node1) {
            for (const attr of node2._attributeList) {
              if (nodeEquals(attr, attr1)) {
                return NODE_DOCUMENT_POSITION.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | NODE_DOCUMENT_POSITION.DOCUMENT_POSITION_PRECEDING;
              }
              if (nodeEquals(attr, attr2)) {
                return NODE_DOCUMENT_POSITION.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | NODE_DOCUMENT_POSITION.DOCUMENT_POSITION_FOLLOWING;
              }
            }
          }
        }
        const result = domSymbolTree.compareTreePosition(node2, node1);
        if (result === NODE_DOCUMENT_POSITION.DOCUMENT_POSITION_DISCONNECTED) {
          return NODE_DOCUMENT_POSITION.DOCUMENT_POSITION_DISCONNECTED | NODE_DOCUMENT_POSITION.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | NODE_DOCUMENT_POSITION.DOCUMENT_POSITION_FOLLOWING;
        }
        return result;
      }
      lookupPrefix(namespace) {
        if (namespace === null || namespace === "") {
          return null;
        }
        switch (this.nodeType) {
          case NODE_TYPE.ELEMENT_NODE: {
            return locateNamespacePrefix(this, namespace);
          }
          case NODE_TYPE.DOCUMENT_NODE: {
            return this.documentElement !== null ? locateNamespacePrefix(this.documentElement, namespace) : null;
          }
          case NODE_TYPE.DOCUMENT_TYPE_NODE:
          case NODE_TYPE.DOCUMENT_FRAGMENT_NODE: {
            return null;
          }
          case NODE_TYPE.ATTRIBUTE_NODE: {
            return this._element !== null ? locateNamespacePrefix(this._element, namespace) : null;
          }
          default: {
            return this.parentElement !== null ? locateNamespacePrefix(this.parentElement, namespace) : null;
          }
        }
      }
      lookupNamespaceURI(prefix) {
        if (prefix === "") {
          prefix = null;
        }
        return locateNamespace(this, prefix);
      }
      isDefaultNamespace(namespace) {
        if (namespace === "") {
          namespace = null;
        }
        const defaultNamespace = locateNamespace(this, null);
        return defaultNamespace === namespace;
      }
      contains(other) {
        return isInclusiveAncestor(this, other);
      }
      isEqualNode(node) {
        if (node === null) {
          return false;
        }
        if (this === node) {
          return true;
        }
        return nodeEquals(this, node);
      }
      isSameNode(node) {
        if (this === node) {
          return true;
        }
        return false;
      }
      cloneNode(deep) {
        if (isShadowRoot(this)) {
          throw DOMException2.create(this._globalObject, ["ShadowRoot nodes are not clonable.", "NotSupportedError"]);
        }
        deep = Boolean(deep);
        return clone(this, void 0, deep);
      }
      get nodeValue() {
        switch (this.nodeType) {
          case NODE_TYPE.ATTRIBUTE_NODE: {
            return this._value;
          }
          case NODE_TYPE.TEXT_NODE:
          case NODE_TYPE.CDATA_SECTION_NODE:
          // CDATASection is a subclass of Text
          case NODE_TYPE.PROCESSING_INSTRUCTION_NODE:
          case NODE_TYPE.COMMENT_NODE: {
            return this._data;
          }
          default: {
            return null;
          }
        }
      }
      set nodeValue(value2) {
        if (value2 === null) {
          value2 = "";
        }
        switch (this.nodeType) {
          case NODE_TYPE.ATTRIBUTE_NODE: {
            setAnExistingAttributeValue(this, value2);
            break;
          }
          case NODE_TYPE.TEXT_NODE:
          case NODE_TYPE.CDATA_SECTION_NODE:
          // CDATASection is a subclass of Text
          case NODE_TYPE.PROCESSING_INSTRUCTION_NODE:
          case NODE_TYPE.COMMENT_NODE: {
            this.replaceData(0, this.length, value2);
            break;
          }
        }
      }
      // https://dom.spec.whatwg.org/#dom-node-textcontent
      get textContent() {
        switch (this.nodeType) {
          case NODE_TYPE.DOCUMENT_FRAGMENT_NODE:
          case NODE_TYPE.ELEMENT_NODE: {
            let text = "";
            for (const child of domSymbolTree.treeIterator(this)) {
              if (child.nodeType === NODE_TYPE.TEXT_NODE || child.nodeType === NODE_TYPE.CDATA_SECTION_NODE) {
                text += child.nodeValue;
              }
            }
            return text;
          }
          case NODE_TYPE.ATTRIBUTE_NODE: {
            return this._value;
          }
          case NODE_TYPE.TEXT_NODE:
          case NODE_TYPE.CDATA_SECTION_NODE:
          // CDATASection is a subclass of Text
          case NODE_TYPE.PROCESSING_INSTRUCTION_NODE:
          case NODE_TYPE.COMMENT_NODE: {
            return this._data;
          }
          default: {
            return null;
          }
        }
      }
      set textContent(value2) {
        if (value2 === null) {
          value2 = "";
        }
        switch (this.nodeType) {
          case NODE_TYPE.DOCUMENT_FRAGMENT_NODE:
          case NODE_TYPE.ELEMENT_NODE: {
            let nodeImpl = null;
            if (value2 !== "") {
              nodeImpl = this._ownerDocument.createTextNode(value2);
            }
            this._replaceAll(nodeImpl);
            break;
          }
          case NODE_TYPE.ATTRIBUTE_NODE: {
            setAnExistingAttributeValue(this, value2);
            break;
          }
          case NODE_TYPE.TEXT_NODE:
          case NODE_TYPE.CDATA_SECTION_NODE:
          // CDATASection is a subclass of Text
          case NODE_TYPE.PROCESSING_INSTRUCTION_NODE:
          case NODE_TYPE.COMMENT_NODE: {
            this.replaceData(0, this.length, value2);
            break;
          }
        }
      }
      // https://dom.spec.whatwg.org/#dom-node-insertbefore
      insertBefore(nodeImpl, childImpl) {
        return this._preInsert(nodeImpl, childImpl);
      }
      // https://dom.spec.whatwg.org/#dom-node-appendchild
      appendChild(nodeImpl) {
        return this._append(nodeImpl);
      }
      // https://dom.spec.whatwg.org/#dom-node-replacechild
      replaceChild(nodeImpl, childImpl) {
        return this._replace(nodeImpl, childImpl);
      }
      // https://dom.spec.whatwg.org/#dom-node-removechild
      removeChild(oldChildImpl) {
        return this._preRemove(oldChildImpl);
      }
      // https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity
      _preInsertValidity(nodeImpl, childImpl) {
        const { nodeType } = nodeImpl;
        const parentType = this.nodeType;
        if (parentType !== NODE_TYPE.DOCUMENT_NODE && parentType !== NODE_TYPE.DOCUMENT_FRAGMENT_NODE && parentType !== NODE_TYPE.ELEMENT_NODE) {
          throw DOMException2.create(this._globalObject, [
            `Node can't be inserted in a ${this.nodeName} parent.`,
            "HierarchyRequestError"
          ]);
        }
        if (isHostInclusiveAncestor(nodeImpl, this)) {
          throw DOMException2.create(this._globalObject, [
            "The operation would yield an incorrect node tree.",
            "HierarchyRequestError"
          ]);
        }
        if (childImpl && domSymbolTree.parent(childImpl) !== this) {
          throw DOMException2.create(this._globalObject, [
            "The child can not be found in the parent.",
            "NotFoundError"
          ]);
        }
        if (nodeType !== NODE_TYPE.DOCUMENT_FRAGMENT_NODE && nodeType !== NODE_TYPE.DOCUMENT_TYPE_NODE && nodeType !== NODE_TYPE.ELEMENT_NODE && nodeType !== NODE_TYPE.TEXT_NODE && nodeType !== NODE_TYPE.CDATA_SECTION_NODE && // CData section extends from Text
        nodeType !== NODE_TYPE.PROCESSING_INSTRUCTION_NODE && nodeType !== NODE_TYPE.COMMENT_NODE) {
          throw DOMException2.create(this._globalObject, [
            `${nodeImpl.nodeName} node can't be inserted in parent node.`,
            "HierarchyRequestError"
          ]);
        }
        if (nodeType === NODE_TYPE.TEXT_NODE && parentType === NODE_TYPE.DOCUMENT_NODE || nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE && parentType !== NODE_TYPE.DOCUMENT_NODE) {
          throw DOMException2.create(this._globalObject, [
            `${nodeImpl.nodeName} node can't be inserted in ${this.nodeName} parent.`,
            "HierarchyRequestError"
          ]);
        }
        if (parentType === NODE_TYPE.DOCUMENT_NODE) {
          const nodeChildren = domSymbolTree.childrenToArray(nodeImpl);
          const parentChildren = domSymbolTree.childrenToArray(this);
          switch (nodeType) {
            case NODE_TYPE.DOCUMENT_FRAGMENT_NODE: {
              const nodeChildrenElements = nodeChildren.filter((child) => child.nodeType === NODE_TYPE.ELEMENT_NODE);
              if (nodeChildrenElements.length > 1) {
                throw DOMException2.create(this._globalObject, [
                  `Invalid insertion of ${nodeImpl.nodeName} node in ${this.nodeName} node.`,
                  "HierarchyRequestError"
                ]);
              }
              const hasNodeTextChildren = nodeChildren.some((child) => child.nodeType === NODE_TYPE.TEXT_NODE);
              if (hasNodeTextChildren) {
                throw DOMException2.create(this._globalObject, [
                  `Invalid insertion of ${nodeImpl.nodeName} node in ${this.nodeName} node.`,
                  "HierarchyRequestError"
                ]);
              }
              if (nodeChildrenElements.length === 1 && (parentChildren.some((child) => child.nodeType === NODE_TYPE.ELEMENT_NODE) || childImpl && childImpl.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE || childImpl && domSymbolTree.nextSibling(childImpl) && domSymbolTree.nextSibling(childImpl).nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE)) {
                throw DOMException2.create(this._globalObject, [
                  `Invalid insertion of ${nodeImpl.nodeName} node in ${this.nodeName} node.`,
                  "HierarchyRequestError"
                ]);
              }
              break;
            }
            case NODE_TYPE.ELEMENT_NODE:
              if (parentChildren.some((child) => child.nodeType === NODE_TYPE.ELEMENT_NODE) || childImpl && childImpl.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE || childImpl && domSymbolTree.nextSibling(childImpl) && domSymbolTree.nextSibling(childImpl).nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE) {
                throw DOMException2.create(this._globalObject, [
                  `Invalid insertion of ${nodeImpl.nodeName} node in ${this.nodeName} node.`,
                  "HierarchyRequestError"
                ]);
              }
              break;
            case NODE_TYPE.DOCUMENT_TYPE_NODE:
              if (parentChildren.some((child) => child.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE) || childImpl && domSymbolTree.previousSibling(childImpl) && domSymbolTree.previousSibling(childImpl).nodeType === NODE_TYPE.ELEMENT_NODE || !childImpl && parentChildren.some((child) => child.nodeType === NODE_TYPE.ELEMENT_NODE)) {
                throw DOMException2.create(this._globalObject, [
                  `Invalid insertion of ${nodeImpl.nodeName} node in ${this.nodeName} node.`,
                  "HierarchyRequestError"
                ]);
              }
              break;
          }
        }
      }
      // https://dom.spec.whatwg.org/#concept-node-pre-insert
      _preInsert(nodeImpl, childImpl) {
        this._preInsertValidity(nodeImpl, childImpl);
        let referenceChildImpl = childImpl;
        if (referenceChildImpl === nodeImpl) {
          referenceChildImpl = domSymbolTree.nextSibling(nodeImpl);
        }
        this._ownerDocument._adoptNode(nodeImpl);
        this._insert(nodeImpl, referenceChildImpl);
        return nodeImpl;
      }
      // https://dom.spec.whatwg.org/#concept-node-insert
      _insert(nodeImpl, childImpl, suppressObservers) {
        const count = nodeImpl.nodeType === NODE_TYPE.DOCUMENT_FRAGMENT_NODE ? domSymbolTree.childrenCount(nodeImpl) : 1;
        if (childImpl) {
          const childIndex = domSymbolTree.index(childImpl);
          for (const range2 of this._referencedRanges) {
            const { _start, _end } = range2;
            if (_start.offset > childIndex) {
              range2._setLiveRangeStart(this, _start.offset + count);
            }
            if (_end.offset > childIndex) {
              range2._setLiveRangeEnd(this, _end.offset + count);
            }
          }
        }
        const nodesImpl = nodeImpl.nodeType === NODE_TYPE.DOCUMENT_FRAGMENT_NODE ? domSymbolTree.childrenToArray(nodeImpl) : [nodeImpl];
        if (nodeImpl.nodeType === NODE_TYPE.DOCUMENT_FRAGMENT_NODE) {
          let grandChildImpl;
          while (grandChildImpl = domSymbolTree.firstChild(nodeImpl)) {
            nodeImpl._remove(grandChildImpl, true);
          }
        }
        if (nodeImpl.nodeType === NODE_TYPE.DOCUMENT_FRAGMENT_NODE) {
          queueTreeMutationRecord(nodeImpl, [], nodesImpl, null, null);
        }
        const previousChildImpl = childImpl ? domSymbolTree.previousSibling(childImpl) : domSymbolTree.lastChild(this);
        let isConnected;
        for (const node of nodesImpl) {
          if (!childImpl) {
            domSymbolTree.appendChild(this, node);
          } else {
            domSymbolTree.insertBefore(childImpl, node);
          }
          if (this.nodeType === NODE_TYPE.ELEMENT_NODE && this._shadowRoot !== null && (node.nodeType === NODE_TYPE.ELEMENT_NODE || node.nodeType === NODE_TYPE.TEXT_NODE)) {
            assignSlot(node);
          }
          this._modified();
          if (node.nodeType === NODE_TYPE.TEXT_NODE || node.nodeType === NODE_TYPE.CDATA_SECTION_NODE) {
            this._childTextContentChangeSteps();
          }
          if (isSlot(this) && this._assignedNodes.length === 0 && isShadowRoot(nodeRoot(this))) {
            signalSlotChange(this);
          }
          const root = nodeRoot(node);
          if (isShadowRoot(root)) {
            assignSlotableForTree(root);
          }
          if (this._attached && nodeImpl._attach) {
            node._attach();
          }
          this._descendantAdded(this, node);
          if (isConnected === void 0) {
            isConnected = node.isConnected;
          }
          if (isConnected) {
            for (const inclusiveDescendant of shadowIncludingInclusiveDescendantsIterator(node)) {
              if (inclusiveDescendant._ceState === "custom") {
                enqueueCECallbackReaction(inclusiveDescendant, "connectedCallback", []);
              } else {
                tryUpgradeElement(inclusiveDescendant);
              }
            }
          }
        }
        if (!suppressObservers) {
          queueTreeMutationRecord(this, nodesImpl, [], previousChildImpl, childImpl);
        }
      }
      // https://dom.spec.whatwg.org/#concept-node-append
      _append(nodeImpl) {
        return this._preInsert(nodeImpl, null);
      }
      // https://dom.spec.whatwg.org/#concept-node-replace
      _replace(nodeImpl, childImpl) {
        const { nodeType, nodeName } = nodeImpl;
        const { nodeType: parentType, nodeName: parentName } = this;
        if (parentType !== NODE_TYPE.DOCUMENT_NODE && parentType !== NODE_TYPE.DOCUMENT_FRAGMENT_NODE && parentType !== NODE_TYPE.ELEMENT_NODE) {
          throw DOMException2.create(this._globalObject, [
            `Node can't be inserted in a ${parentName} parent.`,
            "HierarchyRequestError"
          ]);
        }
        if (isHostInclusiveAncestor(nodeImpl, this)) {
          throw DOMException2.create(this._globalObject, [
            "The operation would yield an incorrect node tree.",
            "HierarchyRequestError"
          ]);
        }
        if (childImpl && domSymbolTree.parent(childImpl) !== this) {
          throw DOMException2.create(this._globalObject, [
            "The child can not be found in the parent.",
            "NotFoundError"
          ]);
        }
        if (nodeType !== NODE_TYPE.DOCUMENT_FRAGMENT_NODE && nodeType !== NODE_TYPE.DOCUMENT_TYPE_NODE && nodeType !== NODE_TYPE.ELEMENT_NODE && nodeType !== NODE_TYPE.TEXT_NODE && nodeType !== NODE_TYPE.CDATA_SECTION_NODE && // CData section extends from Text
        nodeType !== NODE_TYPE.PROCESSING_INSTRUCTION_NODE && nodeType !== NODE_TYPE.COMMENT_NODE) {
          throw DOMException2.create(this._globalObject, [
            `${nodeName} node can't be inserted in parent node.`,
            "HierarchyRequestError"
          ]);
        }
        if (nodeType === NODE_TYPE.TEXT_NODE && parentType === NODE_TYPE.DOCUMENT_NODE || nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE && parentType !== NODE_TYPE.DOCUMENT_NODE) {
          throw DOMException2.create(this._globalObject, [
            `${nodeName} node can't be inserted in ${parentName} parent.`,
            "HierarchyRequestError"
          ]);
        }
        if (parentType === NODE_TYPE.DOCUMENT_NODE) {
          const nodeChildren = domSymbolTree.childrenToArray(nodeImpl);
          const parentChildren = domSymbolTree.childrenToArray(this);
          switch (nodeType) {
            case NODE_TYPE.DOCUMENT_FRAGMENT_NODE: {
              const nodeChildrenElements = nodeChildren.filter((child) => child.nodeType === NODE_TYPE.ELEMENT_NODE);
              if (nodeChildrenElements.length > 1) {
                throw DOMException2.create(this._globalObject, [
                  `Invalid insertion of ${nodeName} node in ${parentName} node.`,
                  "HierarchyRequestError"
                ]);
              }
              const hasNodeTextChildren = nodeChildren.some((child) => child.nodeType === NODE_TYPE.TEXT_NODE);
              if (hasNodeTextChildren) {
                throw DOMException2.create(this._globalObject, [
                  `Invalid insertion of ${nodeName} node in ${parentName} node.`,
                  "HierarchyRequestError"
                ]);
              }
              const parentChildElements = parentChildren.filter((child) => child.nodeType === NODE_TYPE.ELEMENT_NODE);
              if (nodeChildrenElements.length === 1 && (parentChildElements.length === 1 && parentChildElements[0] !== childImpl || childImpl && domSymbolTree.nextSibling(childImpl) && domSymbolTree.nextSibling(childImpl).nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE)) {
                throw DOMException2.create(this._globalObject, [
                  `Invalid insertion of ${nodeName} node in ${parentName} node.`,
                  "HierarchyRequestError"
                ]);
              }
              break;
            }
            case NODE_TYPE.ELEMENT_NODE:
              if (parentChildren.some((child) => child.nodeType === NODE_TYPE.ELEMENT_NODE && child !== childImpl) || childImpl && domSymbolTree.nextSibling(childImpl) && domSymbolTree.nextSibling(childImpl).nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE) {
                throw DOMException2.create(this._globalObject, [
                  `Invalid insertion of ${nodeName} node in ${parentName} node.`,
                  "HierarchyRequestError"
                ]);
              }
              break;
            case NODE_TYPE.DOCUMENT_TYPE_NODE:
              if (parentChildren.some((child) => child.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE && child !== childImpl) || childImpl && domSymbolTree.previousSibling(childImpl) && domSymbolTree.previousSibling(childImpl).nodeType === NODE_TYPE.ELEMENT_NODE) {
                throw DOMException2.create(this._globalObject, [
                  `Invalid insertion of ${nodeName} node in ${parentName} node.`,
                  "HierarchyRequestError"
                ]);
              }
              break;
          }
        }
        let referenceChildImpl = domSymbolTree.nextSibling(childImpl);
        if (referenceChildImpl === nodeImpl) {
          referenceChildImpl = domSymbolTree.nextSibling(nodeImpl);
        }
        const previousSiblingImpl = domSymbolTree.previousSibling(childImpl);
        this._ownerDocument._adoptNode(nodeImpl);
        let removedNodesImpl = [];
        if (domSymbolTree.parent(childImpl)) {
          removedNodesImpl = [childImpl];
          this._remove(childImpl, true);
        }
        const nodesImpl = nodeImpl.nodeType === NODE_TYPE.DOCUMENT_FRAGMENT_NODE ? domSymbolTree.childrenToArray(nodeImpl) : [nodeImpl];
        this._insert(nodeImpl, referenceChildImpl, true);
        queueTreeMutationRecord(this, nodesImpl, removedNodesImpl, previousSiblingImpl, referenceChildImpl);
        return childImpl;
      }
      // https://dom.spec.whatwg.org/#concept-node-replace-all
      _replaceAll(nodeImpl) {
        if (nodeImpl !== null) {
          this._ownerDocument._adoptNode(nodeImpl);
        }
        const removedNodesImpl = domSymbolTree.childrenToArray(this);
        let addedNodesImpl;
        if (nodeImpl === null) {
          addedNodesImpl = [];
        } else if (nodeImpl.nodeType === NODE_TYPE.DOCUMENT_FRAGMENT_NODE) {
          addedNodesImpl = domSymbolTree.childrenToArray(nodeImpl);
        } else {
          addedNodesImpl = [nodeImpl];
        }
        for (const childImpl of domSymbolTree.childrenIterator(this)) {
          this._remove(childImpl, true);
        }
        if (nodeImpl !== null) {
          this._insert(nodeImpl, null, true);
        }
        if (addedNodesImpl.length > 0 || removedNodesImpl.length > 0) {
          queueTreeMutationRecord(this, addedNodesImpl, removedNodesImpl, null, null);
        }
      }
      // https://dom.spec.whatwg.org/#concept-node-pre-remove
      _preRemove(childImpl) {
        if (domSymbolTree.parent(childImpl) !== this) {
          throw DOMException2.create(this._globalObject, [
            "The node to be removed is not a child of this node.",
            "NotFoundError"
          ]);
        }
        this._remove(childImpl);
        return childImpl;
      }
      // https://dom.spec.whatwg.org/#concept-node-remove
      _remove(nodeImpl, suppressObservers) {
        const index2 = domSymbolTree.index(nodeImpl);
        for (const descendant of domSymbolTree.treeIterator(nodeImpl)) {
          for (const range2 of descendant._referencedRanges) {
            const { _start, _end } = range2;
            if (_start.node === descendant) {
              range2._setLiveRangeStart(this, index2);
            }
            if (_end.node === descendant) {
              range2._setLiveRangeEnd(this, index2);
            }
          }
        }
        for (const range2 of this._referencedRanges) {
          const { _start, _end } = range2;
          if (_start.node === this && _start.offset > index2) {
            range2._setLiveRangeStart(this, _start.offset - 1);
          }
          if (_end.node === this && _end.offset > index2) {
            range2._setLiveRangeEnd(this, _end.offset - 1);
          }
        }
        if (this._ownerDocument) {
          this._ownerDocument._runPreRemovingSteps(nodeImpl);
        }
        const oldPreviousSiblingImpl = domSymbolTree.previousSibling(nodeImpl);
        const oldNextSiblingImpl = domSymbolTree.nextSibling(nodeImpl);
        domSymbolTree.remove(nodeImpl);
        if (nodeImpl._assignedSlot) {
          assignSlotable(nodeImpl._assignedSlot);
        }
        if (isSlot(this) && this._assignedNodes.length === 0 && isShadowRoot(nodeRoot(this))) {
          signalSlotChange(this);
        }
        let hasSlotDescendant = isSlot(nodeImpl);
        if (!hasSlotDescendant) {
          for (const child of domSymbolTree.treeIterator(nodeImpl)) {
            if (isSlot(child)) {
              hasSlotDescendant = true;
              break;
            }
          }
        }
        if (hasSlotDescendant) {
          assignSlotableForTree(nodeRoot(this));
          assignSlotableForTree(nodeImpl);
        }
        this._modified();
        nodeImpl._detach();
        this._descendantRemoved(this, nodeImpl);
        if (this.isConnected) {
          if (nodeImpl._ceState === "custom") {
            enqueueCECallbackReaction(nodeImpl, "disconnectedCallback", []);
          }
          for (const descendantImpl of shadowIncludingDescendantsIterator(nodeImpl)) {
            if (descendantImpl._ceState === "custom") {
              enqueueCECallbackReaction(descendantImpl, "disconnectedCallback", []);
            }
          }
        }
        if (!suppressObservers) {
          queueTreeMutationRecord(this, [], [nodeImpl], oldPreviousSiblingImpl, oldNextSiblingImpl);
        }
        if (nodeImpl.nodeType === NODE_TYPE.TEXT_NODE) {
          this._childTextContentChangeSteps();
        }
      }
    };
    module.exports = {
      implementation: NodeImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Node.js
var require_Node = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Node.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var GetRootNodeOptions = require_GetRootNodeOptions();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var EventTarget2 = require_EventTarget();
    var interfaceName = "Node";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Node'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Node"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      EventTarget2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Node extends globalObject.EventTarget {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        getRootNode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'getRootNode' called on an object that is not a valid instance of Node.");
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = GetRootNodeOptions.convert(globalObject, curArg, {
              context: "Failed to execute 'getRootNode' on 'Node': parameter 1"
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getRootNode(...args));
        }
        hasChildNodes() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'hasChildNodes' called on an object that is not a valid instance of Node.");
          }
          return esValue[implSymbol].hasChildNodes();
        }
        normalize() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'normalize' called on an object that is not a valid instance of Node.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].normalize();
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        cloneNode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'cloneNode' called on an object that is not a valid instance of Node.");
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'cloneNode' on 'Node': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].cloneNode(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        isEqualNode(otherNode) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'isEqualNode' called on an object that is not a valid instance of Node.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'isEqualNode' on 'Node': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = exports.convert(globalObject, curArg, {
                context: "Failed to execute 'isEqualNode' on 'Node': parameter 1"
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].isEqualNode(...args);
        }
        isSameNode(otherNode) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'isSameNode' called on an object that is not a valid instance of Node.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'isSameNode' on 'Node': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = exports.convert(globalObject, curArg, {
                context: "Failed to execute 'isSameNode' on 'Node': parameter 1"
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].isSameNode(...args);
        }
        compareDocumentPosition(other) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'compareDocumentPosition' called on an object that is not a valid instance of Node."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'compareDocumentPosition' on 'Node': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = exports.convert(globalObject, curArg, {
              context: "Failed to execute 'compareDocumentPosition' on 'Node': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].compareDocumentPosition(...args);
        }
        contains(other) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'contains' called on an object that is not a valid instance of Node.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'contains' on 'Node': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = exports.convert(globalObject, curArg, {
                context: "Failed to execute 'contains' on 'Node': parameter 1"
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].contains(...args);
        }
        lookupPrefix(namespace) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'lookupPrefix' called on an object that is not a valid instance of Node.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'lookupPrefix' on 'Node': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'lookupPrefix' on 'Node': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].lookupPrefix(...args);
        }
        lookupNamespaceURI(prefix) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'lookupNamespaceURI' called on an object that is not a valid instance of Node."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'lookupNamespaceURI' on 'Node': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'lookupNamespaceURI' on 'Node': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].lookupNamespaceURI(...args);
        }
        isDefaultNamespace(namespace) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'isDefaultNamespace' called on an object that is not a valid instance of Node."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'isDefaultNamespace' on 'Node': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'isDefaultNamespace' on 'Node': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].isDefaultNamespace(...args);
        }
        insertBefore(node, child) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'insertBefore' called on an object that is not a valid instance of Node.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'insertBefore' on 'Node': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = exports.convert(globalObject, curArg, {
              context: "Failed to execute 'insertBefore' on 'Node': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = exports.convert(globalObject, curArg, {
                context: "Failed to execute 'insertBefore' on 'Node': parameter 2"
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].insertBefore(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        appendChild(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'appendChild' called on an object that is not a valid instance of Node.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'appendChild' on 'Node': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = exports.convert(globalObject, curArg, {
              context: "Failed to execute 'appendChild' on 'Node': parameter 1"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].appendChild(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        replaceChild(node, child) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'replaceChild' called on an object that is not a valid instance of Node.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'replaceChild' on 'Node': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = exports.convert(globalObject, curArg, {
              context: "Failed to execute 'replaceChild' on 'Node': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = exports.convert(globalObject, curArg, {
              context: "Failed to execute 'replaceChild' on 'Node': parameter 2"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].replaceChild(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        removeChild(child) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'removeChild' called on an object that is not a valid instance of Node.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'removeChild' on 'Node': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = exports.convert(globalObject, curArg, {
              context: "Failed to execute 'removeChild' on 'Node': parameter 1"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].removeChild(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get nodeType() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get nodeType' called on an object that is not a valid instance of Node.");
          }
          return esValue[implSymbol]["nodeType"];
        }
        get nodeName() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get nodeName' called on an object that is not a valid instance of Node.");
          }
          return esValue[implSymbol]["nodeName"];
        }
        get baseURI() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get baseURI' called on an object that is not a valid instance of Node.");
          }
          return esValue[implSymbol]["baseURI"];
        }
        get isConnected() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get isConnected' called on an object that is not a valid instance of Node.");
          }
          return esValue[implSymbol]["isConnected"];
        }
        get ownerDocument() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ownerDocument' called on an object that is not a valid instance of Node."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ownerDocument"]);
        }
        get parentNode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get parentNode' called on an object that is not a valid instance of Node.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["parentNode"]);
        }
        get parentElement() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get parentElement' called on an object that is not a valid instance of Node."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["parentElement"]);
        }
        get childNodes() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get childNodes' called on an object that is not a valid instance of Node.");
          }
          return utils2.getSameObject(this, "childNodes", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["childNodes"]);
          });
        }
        get firstChild() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get firstChild' called on an object that is not a valid instance of Node.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["firstChild"]);
        }
        get lastChild() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get lastChild' called on an object that is not a valid instance of Node.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["lastChild"]);
        }
        get previousSibling() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get previousSibling' called on an object that is not a valid instance of Node."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["previousSibling"]);
        }
        get nextSibling() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get nextSibling' called on an object that is not a valid instance of Node.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["nextSibling"]);
        }
        get nodeValue() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get nodeValue' called on an object that is not a valid instance of Node.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["nodeValue"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set nodeValue(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set nodeValue' called on an object that is not a valid instance of Node.");
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'nodeValue' property on 'Node': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["nodeValue"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get textContent() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get textContent' called on an object that is not a valid instance of Node.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["textContent"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set textContent(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set textContent' called on an object that is not a valid instance of Node.");
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'textContent' property on 'Node': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["textContent"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(Node.prototype, {
        getRootNode: { enumerable: true },
        hasChildNodes: { enumerable: true },
        normalize: { enumerable: true },
        cloneNode: { enumerable: true },
        isEqualNode: { enumerable: true },
        isSameNode: { enumerable: true },
        compareDocumentPosition: { enumerable: true },
        contains: { enumerable: true },
        lookupPrefix: { enumerable: true },
        lookupNamespaceURI: { enumerable: true },
        isDefaultNamespace: { enumerable: true },
        insertBefore: { enumerable: true },
        appendChild: { enumerable: true },
        replaceChild: { enumerable: true },
        removeChild: { enumerable: true },
        nodeType: { enumerable: true },
        nodeName: { enumerable: true },
        baseURI: { enumerable: true },
        isConnected: { enumerable: true },
        ownerDocument: { enumerable: true },
        parentNode: { enumerable: true },
        parentElement: { enumerable: true },
        childNodes: { enumerable: true },
        firstChild: { enumerable: true },
        lastChild: { enumerable: true },
        previousSibling: { enumerable: true },
        nextSibling: { enumerable: true },
        nodeValue: { enumerable: true },
        textContent: { enumerable: true },
        [Symbol.toStringTag]: { value: "Node", configurable: true },
        ELEMENT_NODE: { value: 1, enumerable: true },
        ATTRIBUTE_NODE: { value: 2, enumerable: true },
        TEXT_NODE: { value: 3, enumerable: true },
        CDATA_SECTION_NODE: { value: 4, enumerable: true },
        ENTITY_REFERENCE_NODE: { value: 5, enumerable: true },
        ENTITY_NODE: { value: 6, enumerable: true },
        PROCESSING_INSTRUCTION_NODE: { value: 7, enumerable: true },
        COMMENT_NODE: { value: 8, enumerable: true },
        DOCUMENT_NODE: { value: 9, enumerable: true },
        DOCUMENT_TYPE_NODE: { value: 10, enumerable: true },
        DOCUMENT_FRAGMENT_NODE: { value: 11, enumerable: true },
        NOTATION_NODE: { value: 12, enumerable: true },
        DOCUMENT_POSITION_DISCONNECTED: { value: 1, enumerable: true },
        DOCUMENT_POSITION_PRECEDING: { value: 2, enumerable: true },
        DOCUMENT_POSITION_FOLLOWING: { value: 4, enumerable: true },
        DOCUMENT_POSITION_CONTAINS: { value: 8, enumerable: true },
        DOCUMENT_POSITION_CONTAINED_BY: { value: 16, enumerable: true },
        DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { value: 32, enumerable: true }
      });
      Object.defineProperties(Node, {
        ELEMENT_NODE: { value: 1, enumerable: true },
        ATTRIBUTE_NODE: { value: 2, enumerable: true },
        TEXT_NODE: { value: 3, enumerable: true },
        CDATA_SECTION_NODE: { value: 4, enumerable: true },
        ENTITY_REFERENCE_NODE: { value: 5, enumerable: true },
        ENTITY_NODE: { value: 6, enumerable: true },
        PROCESSING_INSTRUCTION_NODE: { value: 7, enumerable: true },
        COMMENT_NODE: { value: 8, enumerable: true },
        DOCUMENT_NODE: { value: 9, enumerable: true },
        DOCUMENT_TYPE_NODE: { value: 10, enumerable: true },
        DOCUMENT_FRAGMENT_NODE: { value: 11, enumerable: true },
        NOTATION_NODE: { value: 12, enumerable: true },
        DOCUMENT_POSITION_DISCONNECTED: { value: 1, enumerable: true },
        DOCUMENT_POSITION_PRECEDING: { value: 2, enumerable: true },
        DOCUMENT_POSITION_FOLLOWING: { value: 4, enumerable: true },
        DOCUMENT_POSITION_CONTAINS: { value: 8, enumerable: true },
        DOCUMENT_POSITION_CONTAINED_BY: { value: 16, enumerable: true },
        DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { value: 32, enumerable: true }
      });
      ctorRegistry[interfaceName] = Node;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Node
      });
    };
    var Impl = require_Node_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/attributes/Attr-impl.js
var require_Attr_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/attributes/Attr-impl.js"(exports) {
    "use strict";
    var { setAnExistingAttributeValue } = require_attributes3();
    var NodeImpl = require_Node_impl().implementation;
    var { ATTRIBUTE_NODE } = require_node_type();
    exports.implementation = class AttrImpl extends NodeImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._namespace = privateData.namespace !== void 0 ? privateData.namespace : null;
        this._namespacePrefix = privateData.namespacePrefix !== void 0 ? privateData.namespacePrefix : null;
        this._localName = privateData.localName;
        this._value = privateData.value !== void 0 ? privateData.value : "";
        this._element = privateData.element !== void 0 ? privateData.element : null;
        this.nodeType = ATTRIBUTE_NODE;
        this.specified = true;
      }
      get namespaceURI() {
        return this._namespace;
      }
      get prefix() {
        return this._namespacePrefix;
      }
      get localName() {
        return this._localName;
      }
      get name() {
        return this._qualifiedName;
      }
      get nodeName() {
        return this._qualifiedName;
      }
      get value() {
        return this._value;
      }
      set value(value2) {
        setAnExistingAttributeValue(this, value2);
      }
      get ownerElement() {
        return this._element;
      }
      get _qualifiedName() {
        if (this._namespacePrefix === null) {
          return this._localName;
        }
        return this._namespacePrefix + ":" + this._localName;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Attr.js
var require_Attr = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Attr.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Node = require_Node();
    var interfaceName = "Attr";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Attr'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Attr"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Node._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Attr extends globalObject.Node {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get namespaceURI() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get namespaceURI' called on an object that is not a valid instance of Attr."
            );
          }
          return esValue[implSymbol]["namespaceURI"];
        }
        get prefix() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get prefix' called on an object that is not a valid instance of Attr.");
          }
          return esValue[implSymbol]["prefix"];
        }
        get localName() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get localName' called on an object that is not a valid instance of Attr.");
          }
          return esValue[implSymbol]["localName"];
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get name' called on an object that is not a valid instance of Attr.");
          }
          return esValue[implSymbol]["name"];
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get value' called on an object that is not a valid instance of Attr.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["value"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set value' called on an object that is not a valid instance of Attr.");
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'value' property on 'Attr': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["value"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ownerElement() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ownerElement' called on an object that is not a valid instance of Attr."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ownerElement"]);
        }
        get specified() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get specified' called on an object that is not a valid instance of Attr.");
          }
          return esValue[implSymbol]["specified"];
        }
      }
      Object.defineProperties(Attr.prototype, {
        namespaceURI: { enumerable: true },
        prefix: { enumerable: true },
        localName: { enumerable: true },
        name: { enumerable: true },
        value: { enumerable: true },
        ownerElement: { enumerable: true },
        specified: { enumerable: true },
        [Symbol.toStringTag]: { value: "Attr", configurable: true }
      });
      ctorRegistry[interfaceName] = Attr;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Attr
      });
    };
    var Impl = require_Attr_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/attributes/NamedNodeMap-impl.js
var require_NamedNodeMap_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/attributes/NamedNodeMap-impl.js"(exports) {
    "use strict";
    var DOMException2 = require_DOMException();
    var idlUtils = require_utils16();
    var attributes2 = require_attributes3();
    var { HTML_NS } = require_namespaces();
    exports.implementation = class NamedNodeMapImpl {
      constructor(globalObject, args, privateData) {
        this._element = privateData.element;
        this._globalObject = globalObject;
      }
      get _attributeList() {
        return this._element._attributeList;
      }
      get [idlUtils.supportedPropertyIndices]() {
        return this._attributeList.keys();
      }
      get length() {
        return this._attributeList.length;
      }
      item(index2) {
        if (index2 >= this._attributeList.length) {
          return null;
        }
        return this._attributeList[index2];
      }
      get [idlUtils.supportedPropertyNames]() {
        const names = new Set(this._attributeList.map((a5) => a5._qualifiedName));
        const el = this._element;
        if (el._namespaceURI === HTML_NS && el._ownerDocument._parsingMode === "html") {
          for (const name of names) {
            const lowercaseName = name.toLowerCase();
            if (lowercaseName !== name) {
              names.delete(name);
            }
          }
        }
        return names;
      }
      getNamedItem(qualifiedName) {
        return attributes2.getAttributeByName(this._element, qualifiedName);
      }
      getNamedItemNS(namespace, localName) {
        return attributes2.getAttributeByNameNS(this._element, namespace, localName);
      }
      setNamedItem(attr) {
        return attributes2.setAttribute(this._element, attr);
      }
      setNamedItemNS(attr) {
        return attributes2.setAttribute(this._element, attr);
      }
      removeNamedItem(qualifiedName) {
        const attr = attributes2.removeAttributeByName(this._element, qualifiedName);
        if (attr === null) {
          throw DOMException2.create(this._globalObject, [
            "Tried to remove an attribute that was not present",
            "NotFoundError"
          ]);
        }
        return attr;
      }
      removeNamedItemNS(namespace, localName) {
        const attr = attributes2.removeAttributeByNameNS(this._element, namespace, localName);
        if (attr === null) {
          throw DOMException2.create(this._globalObject, [
            "Tried to remove an attribute that was not present",
            "NotFoundError"
          ]);
        }
        return attr;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js
var require_NamedNodeMap = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Attr = require_Attr();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "NamedNodeMap";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'NamedNodeMap'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["NamedNodeMap"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class NamedNodeMap {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        item(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'item' called on an object that is not a valid instance of NamedNodeMap.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'item' on 'NamedNodeMap': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'item' on 'NamedNodeMap': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].item(...args));
        }
        getNamedItem(qualifiedName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getNamedItem' called on an object that is not a valid instance of NamedNodeMap."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getNamedItem' on 'NamedNodeMap': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getNamedItem' on 'NamedNodeMap': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getNamedItem(...args));
        }
        getNamedItemNS(namespace, localName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getNamedItemNS' called on an object that is not a valid instance of NamedNodeMap."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'getNamedItemNS' on 'NamedNodeMap': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'getNamedItemNS' on 'NamedNodeMap': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getNamedItemNS' on 'NamedNodeMap': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getNamedItemNS(...args));
        }
        setNamedItem(attr) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setNamedItem' called on an object that is not a valid instance of NamedNodeMap."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setNamedItem' on 'NamedNodeMap': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Attr.convert(globalObject, curArg, {
              context: "Failed to execute 'setNamedItem' on 'NamedNodeMap': parameter 1"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].setNamedItem(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        setNamedItemNS(attr) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setNamedItemNS' called on an object that is not a valid instance of NamedNodeMap."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setNamedItemNS' on 'NamedNodeMap': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Attr.convert(globalObject, curArg, {
              context: "Failed to execute 'setNamedItemNS' on 'NamedNodeMap': parameter 1"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].setNamedItemNS(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        removeNamedItem(qualifiedName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'removeNamedItem' called on an object that is not a valid instance of NamedNodeMap."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'removeNamedItem' on 'NamedNodeMap': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'removeNamedItem' on 'NamedNodeMap': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].removeNamedItem(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        removeNamedItemNS(namespace, localName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'removeNamedItemNS' called on an object that is not a valid instance of NamedNodeMap."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'removeNamedItemNS' on 'NamedNodeMap': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'removeNamedItemNS' on 'NamedNodeMap': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'removeNamedItemNS' on 'NamedNodeMap': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].removeNamedItemNS(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get length' called on an object that is not a valid instance of NamedNodeMap."
            );
          }
          return esValue[implSymbol]["length"];
        }
      }
      Object.defineProperties(NamedNodeMap.prototype, {
        item: { enumerable: true },
        getNamedItem: { enumerable: true },
        getNamedItemNS: { enumerable: true },
        setNamedItem: { enumerable: true },
        setNamedItemNS: { enumerable: true },
        removeNamedItem: { enumerable: true },
        removeNamedItemNS: { enumerable: true },
        length: { enumerable: true },
        [Symbol.toStringTag]: { value: "NamedNodeMap", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = NamedNodeMap;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: NamedNodeMap
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of target[implSymbol][utils2.supportedPropertyNames]) {
          if (!(key in target)) {
            keys2.add(`${key}`);
          }
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            return {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        const namedValue = target[implSymbol].getNamedItem(P);
        if (namedValue !== null && !(P in target) && !ignoreNamedProps) {
          return {
            writable: false,
            enumerable: false,
            configurable: true,
            value: utils2.tryWrapperForImpl(namedValue)
          };
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            ownDesc = {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          return false;
        }
        if (!utils2.hasOwn(target, P)) {
          const creating = !(target[implSymbol].getNamedItem(P) !== null);
          if (!creating) {
            return false;
          }
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !(target[implSymbol].item(index2) !== null);
        }
        if (target[implSymbol].getNamedItem(P) !== null && !(P in target)) {
          return false;
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_NamedNodeMap_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootMode.js
var require_ShadowRootMode = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootMode.js"(exports) {
    "use strict";
    var enumerationValues = /* @__PURE__ */ new Set(["open", "closed"]);
    exports.enumerationValues = enumerationValues;
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      const string = `${value2}`;
      if (!enumerationValues.has(string)) {
        throw new globalObject.TypeError(`${context} '${string}' is not a valid enumeration value for ShadowRootMode`);
      }
      return string;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootInit.js
var require_ShadowRootInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var ShadowRootMode = require_ShadowRootMode();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      {
        const key = "mode";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = ShadowRootMode.convert(globalObject, value2, { context: context + " has member 'mode' that" });
          ret[key] = value2;
        } else {
          throw new globalObject.TypeError("mode is required in 'ShadowRootInit'");
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/ParentNode-impl.js
var require_ParentNode_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/ParentNode-impl.js"(exports, module) {
    "use strict";
    var idlUtils = require_utils16();
    var NodeList = require_NodeList();
    var HTMLCollection = require_HTMLCollection();
    var { addNwsapi } = require_selectors();
    var { domSymbolTree } = require_internal_constants();
    var NODE_TYPE = require_node_type();
    var { convertNodesIntoNode } = require_node5();
    var ParentNodeImpl = class {
      get children() {
        if (!this._childrenList) {
          this._childrenList = HTMLCollection.createImpl(this._globalObject, [], {
            element: this,
            query: () => domSymbolTree.childrenToArray(this, {
              filter: (node) => node.nodeType === NODE_TYPE.ELEMENT_NODE
            })
          });
        } else {
          this._childrenList._update();
        }
        return this._childrenList;
      }
      get firstElementChild() {
        for (const child of domSymbolTree.childrenIterator(this)) {
          if (child.nodeType === NODE_TYPE.ELEMENT_NODE) {
            return child;
          }
        }
        return null;
      }
      get lastElementChild() {
        for (const child of domSymbolTree.childrenIterator(this, { reverse: true })) {
          if (child.nodeType === NODE_TYPE.ELEMENT_NODE) {
            return child;
          }
        }
        return null;
      }
      get childElementCount() {
        return this.children.length;
      }
      prepend(...nodes) {
        this._preInsert(convertNodesIntoNode(this._ownerDocument, nodes), this.firstChild);
      }
      append(...nodes) {
        this._append(convertNodesIntoNode(this._ownerDocument, nodes));
      }
      replaceChildren(...nodes) {
        const node = convertNodesIntoNode(this._ownerDocument, nodes);
        this._preInsertValidity(node, null);
        this._replaceAll(node);
      }
      querySelector(selectors) {
        if (shouldAlwaysSelectNothing(this)) {
          return null;
        }
        const matcher = addNwsapi(this);
        return idlUtils.implForWrapper(matcher.first(selectors, idlUtils.wrapperForImpl(this)));
      }
      // WARNING FOR INTERNAL USERS:
      // This returns a NodeList impl, not a NodeList wrapper. NodeList impls are not iterable and do not have indexed
      // properties. To iterate over them, use `for (let i = 0; i < nodeListImpl.length; ++i) { nodeListImpl.item(i) }`.
      querySelectorAll(selectors) {
        if (shouldAlwaysSelectNothing(this)) {
          return NodeList.createImpl(this._globalObject, [], { nodes: [] });
        }
        const matcher = addNwsapi(this);
        const list = matcher.select(selectors, idlUtils.wrapperForImpl(this));
        return NodeList.createImpl(this._globalObject, [], { nodes: list.map((n6) => idlUtils.tryImplForWrapper(n6)) });
      }
    };
    function shouldAlwaysSelectNothing(elImpl) {
      return elImpl === elImpl._ownerDocument && !elImpl.documentElement;
    }
    module.exports = {
      implementation: ParentNodeImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/ChildNode-impl.js
var require_ChildNode_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/ChildNode-impl.js"(exports, module) {
    "use strict";
    var { convertNodesIntoNode } = require_node5();
    var ChildNodeImpl = class {
      remove() {
        if (!this.parentNode) {
          return;
        }
        this.parentNode._remove(this);
      }
      after(...nodes) {
        const parent = this.parentNode;
        if (parent) {
          let viableNextSibling = this.nextSibling;
          let idx = viableNextSibling ? nodes.indexOf(viableNextSibling) : -1;
          while (idx !== -1) {
            viableNextSibling = viableNextSibling.nextSibling;
            if (!viableNextSibling) {
              break;
            }
            idx = nodes.indexOf(viableNextSibling);
          }
          parent._preInsert(convertNodesIntoNode(this._ownerDocument, nodes), viableNextSibling);
        }
      }
      before(...nodes) {
        const parent = this.parentNode;
        if (parent) {
          let viablePreviousSibling = this.previousSibling;
          let idx = viablePreviousSibling ? nodes.indexOf(viablePreviousSibling) : -1;
          while (idx !== -1) {
            viablePreviousSibling = viablePreviousSibling.previousSibling;
            if (!viablePreviousSibling) {
              break;
            }
            idx = nodes.indexOf(viablePreviousSibling);
          }
          parent._preInsert(
            convertNodesIntoNode(this._ownerDocument, nodes),
            viablePreviousSibling ? viablePreviousSibling.nextSibling : parent.firstChild
          );
        }
      }
      replaceWith(...nodes) {
        const parent = this.parentNode;
        if (parent) {
          let viableNextSibling = this.nextSibling;
          let idx = viableNextSibling ? nodes.indexOf(viableNextSibling) : -1;
          while (idx !== -1) {
            viableNextSibling = viableNextSibling.nextSibling;
            if (!viableNextSibling) {
              break;
            }
            idx = nodes.indexOf(viableNextSibling);
          }
          const node = convertNodesIntoNode(this._ownerDocument, nodes);
          if (this.parentNode === parent) {
            parent._replace(node, this);
          } else {
            parent._preInsert(node, viableNextSibling);
          }
        }
      }
    };
    module.exports = {
      implementation: ChildNodeImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/named-properties-tracker.js
var require_named_properties_tracker = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/named-properties-tracker.js"(exports) {
    "use strict";
    var IS_NAMED_PROPERTY = Symbol("is named property");
    var TRACKER = Symbol("named property tracker");
    exports.create = function(object, objectProxy, resolverFunc) {
      if (object[TRACKER]) {
        throw Error("A NamedPropertiesTracker has already been created for this object");
      }
      const tracker = new NamedPropertiesTracker(object, objectProxy, resolverFunc);
      object[TRACKER] = tracker;
      return tracker;
    };
    exports.get = function(object) {
      if (!object) {
        return null;
      }
      return object[TRACKER] || null;
    };
    function NamedPropertiesTracker(object, objectProxy, resolverFunc) {
      this.object = object;
      this.objectProxy = objectProxy;
      this.resolverFunc = resolverFunc;
      this.trackedValues = /* @__PURE__ */ new Map();
    }
    function newPropertyDescriptor(tracker, name) {
      const emptySet = /* @__PURE__ */ new Set();
      function getValues() {
        return tracker.trackedValues.get(name) || emptySet;
      }
      const descriptor = {
        enumerable: true,
        configurable: true,
        get() {
          return tracker.resolverFunc(tracker.object, name, getValues);
        },
        set(value2) {
          Object.defineProperty(tracker.object, name, {
            enumerable: true,
            configurable: true,
            writable: true,
            value: value2
          });
        }
      };
      descriptor.get[IS_NAMED_PROPERTY] = true;
      descriptor.set[IS_NAMED_PROPERTY] = true;
      return descriptor;
    }
    NamedPropertiesTracker.prototype.track = function(name, value2) {
      if (name === void 0 || name === null || name === "") {
        return;
      }
      let valueSet = this.trackedValues.get(name);
      if (!valueSet) {
        valueSet = /* @__PURE__ */ new Set();
        this.trackedValues.set(name, valueSet);
      }
      valueSet.add(value2);
      if (name in this.objectProxy) {
        return;
      }
      const descriptor = newPropertyDescriptor(this, name);
      Object.defineProperty(this.object, name, descriptor);
    };
    NamedPropertiesTracker.prototype.untrack = function(name, value2) {
      if (name === void 0 || name === null || name === "") {
        return;
      }
      const valueSet = this.trackedValues.get(name);
      if (!valueSet) {
        return;
      }
      if (!valueSet.delete(value2)) {
        return;
      }
      if (valueSet.size === 0) {
        this.trackedValues.delete(name);
      }
      if (valueSet.size > 0) {
        return;
      }
      const descriptor = Object.getOwnPropertyDescriptor(this.object, name);
      if (!descriptor || !descriptor.get || descriptor.get[IS_NAMED_PROPERTY] !== true) {
        return;
      }
      delete this.object[name];
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/named-properties-window.js
var require_named_properties_window = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/named-properties-window.js"(exports) {
    "use strict";
    var hasOwnProp = Object.prototype.hasOwnProperty;
    var namedPropertiesTracker = require_named_properties_tracker();
    var NODE_TYPE = require_node_type();
    var HTMLCollection = require_HTMLCollection();
    var { treeOrderSorter } = require_utils17();
    var idlUtils = require_utils16();
    function isNamedPropertyElement(element) {
      if ("contentWindow" in element && !hasOwnProp.call(element, "contentWindow")) {
        return true;
      }
      switch (element._localName) {
        case "a":
        case "area":
        case "embed":
        case "form":
        case "frameset":
        case "img":
        case "object":
          return true;
        default:
          return false;
      }
    }
    function namedPropertyResolver(window2, name, values) {
      function getResult() {
        const results = [];
        for (const node of values().keys()) {
          if (node.nodeType !== NODE_TYPE.ELEMENT_NODE) {
            continue;
          }
          if (node.getAttributeNS(null, "id") === name) {
            results.push(node);
          } else if (node.getAttributeNS(null, "name") === name && isNamedPropertyElement(node)) {
            results.push(node);
          }
        }
        results.sort(treeOrderSorter);
        return results;
      }
      const document2 = window2._document;
      const objects = HTMLCollection.create(window2, [], {
        element: idlUtils.implForWrapper(document2.documentElement),
        query: getResult
      });
      const { length: length2 } = objects;
      for (let i5 = 0; i5 < length2; ++i5) {
        const node = objects[i5];
        if ("contentWindow" in node && !hasOwnProp.call(node, "contentWindow") && node.getAttributeNS(null, "name") === name) {
          return node.contentWindow;
        }
      }
      if (length2 === 0) {
        return void 0;
      }
      if (length2 === 1) {
        return objects[0];
      }
      return objects;
    }
    exports.initializeWindow = function(window2, windowProxy) {
      namedPropertiesTracker.create(window2, windowProxy, namedPropertyResolver.bind(null));
    };
    exports.elementAttributeModified = function(element, name, value2, oldValue) {
      if (!element._attached) {
        return;
      }
      const useName = isNamedPropertyElement(element);
      if (name === "id" || name === "name" && useName) {
        const tracker = namedPropertiesTracker.get(element._ownerDocument._global);
        if (tracker) {
          if (name === "id" && (!useName || element.getAttributeNS(null, "name") !== oldValue)) {
            tracker.untrack(oldValue, element);
          }
          if (name === "name" && element.getAttributeNS(null, "id") !== oldValue) {
            tracker.untrack(oldValue, element);
          }
          tracker.track(value2, element);
        }
      }
    };
    exports.nodeAttachedToDocument = function(node) {
      if (node.nodeType !== NODE_TYPE.ELEMENT_NODE) {
        return;
      }
      const tracker = namedPropertiesTracker.get(node._ownerDocument._global);
      if (!tracker) {
        return;
      }
      tracker.track(node.getAttributeNS(null, "id"), node);
      if (isNamedPropertyElement(node)) {
        tracker.track(node.getAttributeNS(null, "name"), node);
      }
    };
    exports.nodeDetachedFromDocument = function(node) {
      if (node.nodeType !== NODE_TYPE.ELEMENT_NODE) {
        return;
      }
      const tracker = namedPropertiesTracker.get(node._ownerDocument._global);
      if (!tracker) {
        return;
      }
      tracker.untrack(node.getAttributeNS(null, "id"), node);
      if (isNamedPropertyElement(node)) {
        tracker.untrack(node.getAttributeNS(null, "name"), node);
      }
    };
  }
});

// ../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.0/ed5.js
var require_ed5 = __commonJS({
  "../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.0/ed5.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.CHAR = "	\n\r -\uD7FF\uE000-\uFFFD\u{10000}-\u{10FFFF}";
    exports.S = " 	\r\n";
    exports.NAME_START_CHAR = ":A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}";
    exports.NAME_CHAR = "-" + exports.NAME_START_CHAR + ".0-9\xB7\u0300-\u036F\u203F-\u2040";
    exports.CHAR_RE = new RegExp("^[" + exports.CHAR + "]$", "u");
    exports.S_RE = new RegExp("^[" + exports.S + "]+$", "u");
    exports.NAME_START_CHAR_RE = new RegExp("^[" + exports.NAME_START_CHAR + "]$", "u");
    exports.NAME_CHAR_RE = new RegExp("^[" + exports.NAME_CHAR + "]$", "u");
    exports.NAME_RE = new RegExp("^[" + exports.NAME_START_CHAR + "][" + exports.NAME_CHAR + "]*$", "u");
    exports.NMTOKEN_RE = new RegExp("^[" + exports.NAME_CHAR + "]+$", "u");
    var TAB = 9;
    var NL = 10;
    var CR = 13;
    var SPACE = 32;
    exports.S_LIST = [SPACE, NL, CR, TAB];
    function isChar(c6) {
      return c6 >= SPACE && c6 <= 55295 || c6 === NL || c6 === CR || c6 === TAB || c6 >= 57344 && c6 <= 65533 || c6 >= 65536 && c6 <= 1114111;
    }
    exports.isChar = isChar;
    function isS(c6) {
      return c6 === SPACE || c6 === NL || c6 === CR || c6 === TAB;
    }
    exports.isS = isS;
    function isNameStartChar(c6) {
      return c6 >= 65 && c6 <= 90 || c6 >= 97 && c6 <= 122 || c6 === 58 || c6 === 95 || c6 === 8204 || c6 === 8205 || c6 >= 192 && c6 <= 214 || c6 >= 216 && c6 <= 246 || c6 >= 248 && c6 <= 767 || c6 >= 880 && c6 <= 893 || c6 >= 895 && c6 <= 8191 || c6 >= 8304 && c6 <= 8591 || c6 >= 11264 && c6 <= 12271 || c6 >= 12289 && c6 <= 55295 || c6 >= 63744 && c6 <= 64975 || c6 >= 65008 && c6 <= 65533 || c6 >= 65536 && c6 <= 983039;
    }
    exports.isNameStartChar = isNameStartChar;
    function isNameChar(c6) {
      return isNameStartChar(c6) || c6 >= 48 && c6 <= 57 || c6 === 45 || c6 === 46 || c6 === 183 || c6 >= 768 && c6 <= 879 || c6 >= 8255 && c6 <= 8256;
    }
    exports.isNameChar = isNameChar;
  }
});

// ../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.1/ed2.js
var require_ed2 = __commonJS({
  "../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.1/ed2.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.CHAR = "-\uD7FF\uE000-\uFFFD\u{10000}-\u{10FFFF}";
    exports.RESTRICTED_CHAR = "-\b\v\f-\x7F-\x84\x86-\x9F";
    exports.S = " 	\r\n";
    exports.NAME_START_CHAR = ":A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}";
    exports.NAME_CHAR = "-" + exports.NAME_START_CHAR + ".0-9\xB7\u0300-\u036F\u203F-\u2040";
    exports.CHAR_RE = new RegExp("^[" + exports.CHAR + "]$", "u");
    exports.RESTRICTED_CHAR_RE = new RegExp("^[" + exports.RESTRICTED_CHAR + "]$", "u");
    exports.S_RE = new RegExp("^[" + exports.S + "]+$", "u");
    exports.NAME_START_CHAR_RE = new RegExp("^[" + exports.NAME_START_CHAR + "]$", "u");
    exports.NAME_CHAR_RE = new RegExp("^[" + exports.NAME_CHAR + "]$", "u");
    exports.NAME_RE = new RegExp("^[" + exports.NAME_START_CHAR + "][" + exports.NAME_CHAR + "]*$", "u");
    exports.NMTOKEN_RE = new RegExp("^[" + exports.NAME_CHAR + "]+$", "u");
    var TAB = 9;
    var NL = 10;
    var CR = 13;
    var SPACE = 32;
    exports.S_LIST = [SPACE, NL, CR, TAB];
    function isChar(c6) {
      return c6 >= 1 && c6 <= 55295 || c6 >= 57344 && c6 <= 65533 || c6 >= 65536 && c6 <= 1114111;
    }
    exports.isChar = isChar;
    function isRestrictedChar(c6) {
      return c6 >= 1 && c6 <= 8 || c6 === 11 || c6 === 12 || c6 >= 14 && c6 <= 31 || c6 >= 127 && c6 <= 132 || c6 >= 134 && c6 <= 159;
    }
    exports.isRestrictedChar = isRestrictedChar;
    function isCharAndNotRestricted(c6) {
      return c6 === 9 || c6 === 10 || c6 === 13 || c6 > 31 && c6 < 127 || c6 === 133 || c6 > 159 && c6 <= 55295 || c6 >= 57344 && c6 <= 65533 || c6 >= 65536 && c6 <= 1114111;
    }
    exports.isCharAndNotRestricted = isCharAndNotRestricted;
    function isS(c6) {
      return c6 === SPACE || c6 === NL || c6 === CR || c6 === TAB;
    }
    exports.isS = isS;
    function isNameStartChar(c6) {
      return c6 >= 65 && c6 <= 90 || c6 >= 97 && c6 <= 122 || c6 === 58 || c6 === 95 || c6 === 8204 || c6 === 8205 || c6 >= 192 && c6 <= 214 || c6 >= 216 && c6 <= 246 || c6 >= 248 && c6 <= 767 || c6 >= 880 && c6 <= 893 || c6 >= 895 && c6 <= 8191 || c6 >= 8304 && c6 <= 8591 || c6 >= 11264 && c6 <= 12271 || c6 >= 12289 && c6 <= 55295 || c6 >= 63744 && c6 <= 64975 || c6 >= 65008 && c6 <= 65533 || c6 >= 65536 && c6 <= 983039;
    }
    exports.isNameStartChar = isNameStartChar;
    function isNameChar(c6) {
      return isNameStartChar(c6) || c6 >= 48 && c6 <= 57 || c6 === 45 || c6 === 46 || c6 === 183 || c6 >= 768 && c6 <= 879 || c6 >= 8255 && c6 <= 8256;
    }
    exports.isNameChar = isNameChar;
  }
});

// ../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xmlns/1.0/ed3.js
var require_ed3 = __commonJS({
  "../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xmlns/1.0/ed3.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.NC_NAME_START_CHAR = "A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}";
    exports.NC_NAME_CHAR = "-" + exports.NC_NAME_START_CHAR + ".0-9\xB7\u0300-\u036F\u203F-\u2040";
    exports.NC_NAME_START_CHAR_RE = new RegExp("^[" + exports.NC_NAME_START_CHAR + "]$", "u");
    exports.NC_NAME_CHAR_RE = new RegExp("^[" + exports.NC_NAME_CHAR + "]$", "u");
    exports.NC_NAME_RE = new RegExp("^[" + exports.NC_NAME_START_CHAR + "][" + exports.NC_NAME_CHAR + "]*$", "u");
    function isNCNameStartChar(c6) {
      return c6 >= 65 && c6 <= 90 || c6 === 95 || c6 >= 97 && c6 <= 122 || c6 >= 192 && c6 <= 214 || c6 >= 216 && c6 <= 246 || c6 >= 248 && c6 <= 767 || c6 >= 880 && c6 <= 893 || c6 >= 895 && c6 <= 8191 || c6 >= 8204 && c6 <= 8205 || c6 >= 8304 && c6 <= 8591 || c6 >= 11264 && c6 <= 12271 || c6 >= 12289 && c6 <= 55295 || c6 >= 63744 && c6 <= 64975 || c6 >= 65008 && c6 <= 65533 || c6 >= 65536 && c6 <= 983039;
    }
    exports.isNCNameStartChar = isNCNameStartChar;
    function isNCNameChar(c6) {
      return isNCNameStartChar(c6) || (c6 === 45 || c6 === 46 || c6 >= 48 && c6 <= 57 || c6 === 183 || c6 >= 768 && c6 <= 879 || c6 >= 8255 && c6 <= 8256);
    }
    exports.isNCNameChar = isNCNameChar;
  }
});

// ../../node_modules/.pnpm/saxes@6.0.0/node_modules/saxes/saxes.js
var require_saxes = __commonJS({
  "../../node_modules/.pnpm/saxes@6.0.0/node_modules/saxes/saxes.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.SaxesParser = exports.EVENTS = void 0;
    var ed5 = require_ed5();
    var ed2 = require_ed2();
    var NSed3 = require_ed3();
    var isS = ed5.isS;
    var isChar10 = ed5.isChar;
    var isNameStartChar = ed5.isNameStartChar;
    var isNameChar = ed5.isNameChar;
    var S_LIST = ed5.S_LIST;
    var NAME_RE = ed5.NAME_RE;
    var isChar11 = ed2.isChar;
    var isNCNameStartChar = NSed3.isNCNameStartChar;
    var isNCNameChar = NSed3.isNCNameChar;
    var NC_NAME_RE = NSed3.NC_NAME_RE;
    var XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace";
    var XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/";
    var rootNS = {
      // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment
      __proto__: null,
      xml: XML_NAMESPACE,
      xmlns: XMLNS_NAMESPACE
    };
    var XML_ENTITIES = {
      // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment
      __proto__: null,
      amp: "&",
      gt: ">",
      lt: "<",
      quot: '"',
      apos: "'"
    };
    var EOC = -1;
    var NL_LIKE = -2;
    var S_BEGIN = 0;
    var S_BEGIN_WHITESPACE = 1;
    var S_DOCTYPE = 2;
    var S_DOCTYPE_QUOTE = 3;
    var S_DTD = 4;
    var S_DTD_QUOTED = 5;
    var S_DTD_OPEN_WAKA = 6;
    var S_DTD_OPEN_WAKA_BANG = 7;
    var S_DTD_COMMENT = 8;
    var S_DTD_COMMENT_ENDING = 9;
    var S_DTD_COMMENT_ENDED = 10;
    var S_DTD_PI = 11;
    var S_DTD_PI_ENDING = 12;
    var S_TEXT = 13;
    var S_ENTITY = 14;
    var S_OPEN_WAKA = 15;
    var S_OPEN_WAKA_BANG = 16;
    var S_COMMENT = 17;
    var S_COMMENT_ENDING = 18;
    var S_COMMENT_ENDED = 19;
    var S_CDATA = 20;
    var S_CDATA_ENDING = 21;
    var S_CDATA_ENDING_2 = 22;
    var S_PI_FIRST_CHAR = 23;
    var S_PI_REST = 24;
    var S_PI_BODY = 25;
    var S_PI_ENDING = 26;
    var S_XML_DECL_NAME_START = 27;
    var S_XML_DECL_NAME = 28;
    var S_XML_DECL_EQ = 29;
    var S_XML_DECL_VALUE_START = 30;
    var S_XML_DECL_VALUE = 31;
    var S_XML_DECL_SEPARATOR = 32;
    var S_XML_DECL_ENDING = 33;
    var S_OPEN_TAG = 34;
    var S_OPEN_TAG_SLASH = 35;
    var S_ATTRIB = 36;
    var S_ATTRIB_NAME = 37;
    var S_ATTRIB_NAME_SAW_WHITE = 38;
    var S_ATTRIB_VALUE = 39;
    var S_ATTRIB_VALUE_QUOTED = 40;
    var S_ATTRIB_VALUE_CLOSED = 41;
    var S_ATTRIB_VALUE_UNQUOTED = 42;
    var S_CLOSE_TAG = 43;
    var S_CLOSE_TAG_SAW_WHITE = 44;
    var TAB = 9;
    var NL = 10;
    var CR = 13;
    var SPACE = 32;
    var BANG = 33;
    var DQUOTE = 34;
    var AMP = 38;
    var SQUOTE = 39;
    var MINUS = 45;
    var FORWARD_SLASH = 47;
    var SEMICOLON = 59;
    var LESS = 60;
    var EQUAL = 61;
    var GREATER = 62;
    var QUESTION = 63;
    var OPEN_BRACKET = 91;
    var CLOSE_BRACKET = 93;
    var NEL = 133;
    var LS = 8232;
    var isQuote = (c6) => c6 === DQUOTE || c6 === SQUOTE;
    var QUOTES = [DQUOTE, SQUOTE];
    var DOCTYPE_TERMINATOR = [...QUOTES, OPEN_BRACKET, GREATER];
    var DTD_TERMINATOR = [...QUOTES, LESS, CLOSE_BRACKET];
    var XML_DECL_NAME_TERMINATOR = [EQUAL, QUESTION, ...S_LIST];
    var ATTRIB_VALUE_UNQUOTED_TERMINATOR = [...S_LIST, GREATER, AMP, LESS];
    function nsPairCheck(parser, prefix, uri) {
      switch (prefix) {
        case "xml":
          if (uri !== XML_NAMESPACE) {
            parser.fail(`xml prefix must be bound to ${XML_NAMESPACE}.`);
          }
          break;
        case "xmlns":
          if (uri !== XMLNS_NAMESPACE) {
            parser.fail(`xmlns prefix must be bound to ${XMLNS_NAMESPACE}.`);
          }
          break;
        default:
      }
      switch (uri) {
        case XMLNS_NAMESPACE:
          parser.fail(prefix === "" ? `the default namespace may not be set to ${uri}.` : `may not assign a prefix (even "xmlns") to the URI ${XMLNS_NAMESPACE}.`);
          break;
        case XML_NAMESPACE:
          switch (prefix) {
            case "xml":
              break;
            case "":
              parser.fail(`the default namespace may not be set to ${uri}.`);
              break;
            default:
              parser.fail("may not assign the xml namespace to another prefix.");
          }
          break;
        default:
      }
    }
    function nsMappingCheck(parser, mapping) {
      for (const local of Object.keys(mapping)) {
        nsPairCheck(parser, local, mapping[local]);
      }
    }
    var isNCName = (name) => NC_NAME_RE.test(name);
    var isName = (name) => NAME_RE.test(name);
    var FORBIDDEN_START = 0;
    var FORBIDDEN_BRACKET = 1;
    var FORBIDDEN_BRACKET_BRACKET = 2;
    exports.EVENTS = [
      "xmldecl",
      "text",
      "processinginstruction",
      "doctype",
      "comment",
      "opentagstart",
      "attribute",
      "opentag",
      "closetag",
      "cdata",
      "error",
      "end",
      "ready"
    ];
    var EVENT_NAME_TO_HANDLER_NAME = {
      xmldecl: "xmldeclHandler",
      text: "textHandler",
      processinginstruction: "piHandler",
      doctype: "doctypeHandler",
      comment: "commentHandler",
      opentagstart: "openTagStartHandler",
      attribute: "attributeHandler",
      opentag: "openTagHandler",
      closetag: "closeTagHandler",
      cdata: "cdataHandler",
      error: "errorHandler",
      end: "endHandler",
      ready: "readyHandler"
    };
    var SaxesParser = class {
      /**
       * @param opt The parser options.
       */
      constructor(opt) {
        this.opt = opt !== null && opt !== void 0 ? opt : {};
        this.fragmentOpt = !!this.opt.fragment;
        const xmlnsOpt = this.xmlnsOpt = !!this.opt.xmlns;
        this.trackPosition = this.opt.position !== false;
        this.fileName = this.opt.fileName;
        if (xmlnsOpt) {
          this.nameStartCheck = isNCNameStartChar;
          this.nameCheck = isNCNameChar;
          this.isName = isNCName;
          this.processAttribs = this.processAttribsNS;
          this.pushAttrib = this.pushAttribNS;
          this.ns = Object.assign({ __proto__: null }, rootNS);
          const additional = this.opt.additionalNamespaces;
          if (additional != null) {
            nsMappingCheck(this, additional);
            Object.assign(this.ns, additional);
          }
        } else {
          this.nameStartCheck = isNameStartChar;
          this.nameCheck = isNameChar;
          this.isName = isName;
          this.processAttribs = this.processAttribsPlain;
          this.pushAttrib = this.pushAttribPlain;
        }
        this.stateTable = [
          /* eslint-disable @typescript-eslint/unbound-method */
          this.sBegin,
          this.sBeginWhitespace,
          this.sDoctype,
          this.sDoctypeQuote,
          this.sDTD,
          this.sDTDQuoted,
          this.sDTDOpenWaka,
          this.sDTDOpenWakaBang,
          this.sDTDComment,
          this.sDTDCommentEnding,
          this.sDTDCommentEnded,
          this.sDTDPI,
          this.sDTDPIEnding,
          this.sText,
          this.sEntity,
          this.sOpenWaka,
          this.sOpenWakaBang,
          this.sComment,
          this.sCommentEnding,
          this.sCommentEnded,
          this.sCData,
          this.sCDataEnding,
          this.sCDataEnding2,
          this.sPIFirstChar,
          this.sPIRest,
          this.sPIBody,
          this.sPIEnding,
          this.sXMLDeclNameStart,
          this.sXMLDeclName,
          this.sXMLDeclEq,
          this.sXMLDeclValueStart,
          this.sXMLDeclValue,
          this.sXMLDeclSeparator,
          this.sXMLDeclEnding,
          this.sOpenTag,
          this.sOpenTagSlash,
          this.sAttrib,
          this.sAttribName,
          this.sAttribNameSawWhite,
          this.sAttribValue,
          this.sAttribValueQuoted,
          this.sAttribValueClosed,
          this.sAttribValueUnquoted,
          this.sCloseTag,
          this.sCloseTagSawWhite
          /* eslint-enable @typescript-eslint/unbound-method */
        ];
        this._init();
      }
      /**
       * Indicates whether or not the parser is closed. If ``true``, wait for
       * the ``ready`` event to write again.
       */
      get closed() {
        return this._closed;
      }
      _init() {
        var _a2;
        this.openWakaBang = "";
        this.text = "";
        this.name = "";
        this.piTarget = "";
        this.entity = "";
        this.q = null;
        this.tags = [];
        this.tag = null;
        this.topNS = null;
        this.chunk = "";
        this.chunkPosition = 0;
        this.i = 0;
        this.prevI = 0;
        this.carriedFromPrevious = void 0;
        this.forbiddenState = FORBIDDEN_START;
        this.attribList = [];
        const { fragmentOpt } = this;
        this.state = fragmentOpt ? S_TEXT : S_BEGIN;
        this.reportedTextBeforeRoot = this.reportedTextAfterRoot = this.closedRoot = this.sawRoot = fragmentOpt;
        this.xmlDeclPossible = !fragmentOpt;
        this.xmlDeclExpects = ["version"];
        this.entityReturnState = void 0;
        let { defaultXMLVersion } = this.opt;
        if (defaultXMLVersion === void 0) {
          if (this.opt.forceXMLVersion === true) {
            throw new Error("forceXMLVersion set but defaultXMLVersion is not set");
          }
          defaultXMLVersion = "1.0";
        }
        this.setXMLVersion(defaultXMLVersion);
        this.positionAtNewLine = 0;
        this.doctype = false;
        this._closed = false;
        this.xmlDecl = {
          version: void 0,
          encoding: void 0,
          standalone: void 0
        };
        this.line = 1;
        this.column = 0;
        this.ENTITIES = Object.create(XML_ENTITIES);
        (_a2 = this.readyHandler) === null || _a2 === void 0 ? void 0 : _a2.call(this);
      }
      /**
       * The stream position the parser is currently looking at. This field is
       * zero-based.
       *
       * This field is not based on counting Unicode characters but is to be
       * interpreted as a plain index into a JavaScript string.
       */
      get position() {
        return this.chunkPosition + this.i;
      }
      /**
       * The column number of the next character to be read by the parser.  *
       * This field is zero-based. (The first column in a line is 0.)
       *
       * This field reports the index at which the next character would be in the
       * line if the line were represented as a JavaScript string.  Note that this
       * *can* be different to a count based on the number of *Unicode characters*
       * due to how JavaScript handles astral plane characters.
       *
       * See [[column]] for a number that corresponds to a count of Unicode
       * characters.
       */
      get columnIndex() {
        return this.position - this.positionAtNewLine;
      }
      /**
       * Set an event listener on an event. The parser supports one handler per
       * event type. If you try to set an event handler over an existing handler,
       * the old handler is silently overwritten.
       *
       * @param name The event to listen to.
       *
       * @param handler The handler to set.
       */
      on(name, handler) {
        this[EVENT_NAME_TO_HANDLER_NAME[name]] = handler;
      }
      /**
       * Unset an event handler.
       *
       * @parma name The event to stop listening to.
       */
      off(name) {
        this[EVENT_NAME_TO_HANDLER_NAME[name]] = void 0;
      }
      /**
       * Make an error object. The error object will have a message that contains
       * the ``fileName`` option passed at the creation of the parser. If position
       * tracking was turned on, it will also have line and column number
       * information.
       *
       * @param message The message describing the error to report.
       *
       * @returns An error object with a properly formatted message.
       */
      makeError(message) {
        var _a2;
        let msg = (_a2 = this.fileName) !== null && _a2 !== void 0 ? _a2 : "";
        if (this.trackPosition) {
          if (msg.length > 0) {
            msg += ":";
          }
          msg += `${this.line}:${this.column}`;
        }
        if (msg.length > 0) {
          msg += ": ";
        }
        return new Error(msg + message);
      }
      /**
       * Report a parsing error. This method is made public so that client code may
       * check for issues that are outside the scope of this project and can report
       * errors.
       *
       * @param message The error to report.
       *
       * @returns this
       */
      fail(message) {
        const err2 = this.makeError(message);
        const handler = this.errorHandler;
        if (handler === void 0) {
          throw err2;
        } else {
          handler(err2);
        }
        return this;
      }
      /**
       * Write a XML data to the parser.
       *
       * @param chunk The XML data to write.
       *
       * @returns this
       */
      // We do need object for the type here. Yes, it often causes problems
      // but not in this case.
      write(chunk3) {
        if (this.closed) {
          return this.fail("cannot write after close; assign an onready handler.");
        }
        let end2 = false;
        if (chunk3 === null) {
          end2 = true;
          chunk3 = "";
        } else if (typeof chunk3 === "object") {
          chunk3 = chunk3.toString();
        }
        if (this.carriedFromPrevious !== void 0) {
          chunk3 = `${this.carriedFromPrevious}${chunk3}`;
          this.carriedFromPrevious = void 0;
        }
        let limit = chunk3.length;
        const lastCode = chunk3.charCodeAt(limit - 1);
        if (!end2 && // A trailing CR or surrogate must be carried over to the next
        // chunk.
        (lastCode === CR || lastCode >= 55296 && lastCode <= 56319)) {
          this.carriedFromPrevious = chunk3[limit - 1];
          limit--;
          chunk3 = chunk3.slice(0, limit);
        }
        const { stateTable } = this;
        this.chunk = chunk3;
        this.i = 0;
        while (this.i < limit) {
          stateTable[this.state].call(this);
        }
        this.chunkPosition += limit;
        return end2 ? this.end() : this;
      }
      /**
       * Close the current stream. Perform final well-formedness checks and reset
       * the parser tstate.
       *
       * @returns this
       */
      close() {
        return this.write(null);
      }
      /**
       * Get a single code point out of the current chunk. This updates the current
       * position if we do position tracking.
       *
       * This is the algorithm to use for XML 1.0.
       *
       * @returns The character read.
       */
      getCode10() {
        const { chunk: chunk3, i: i5 } = this;
        this.prevI = i5;
        this.i = i5 + 1;
        if (i5 >= chunk3.length) {
          return EOC;
        }
        const code = chunk3.charCodeAt(i5);
        this.column++;
        if (code < 55296) {
          if (code >= SPACE || code === TAB) {
            return code;
          }
          switch (code) {
            case NL:
              this.line++;
              this.column = 0;
              this.positionAtNewLine = this.position;
              return NL;
            case CR:
              if (chunk3.charCodeAt(i5 + 1) === NL) {
                this.i = i5 + 2;
              }
              this.line++;
              this.column = 0;
              this.positionAtNewLine = this.position;
              return NL_LIKE;
            default:
              this.fail("disallowed character.");
              return code;
          }
        }
        if (code > 56319) {
          if (!(code >= 57344 && code <= 65533)) {
            this.fail("disallowed character.");
          }
          return code;
        }
        const final = 65536 + (code - 55296) * 1024 + (chunk3.charCodeAt(i5 + 1) - 56320);
        this.i = i5 + 2;
        if (final > 1114111) {
          this.fail("disallowed character.");
        }
        return final;
      }
      /**
       * Get a single code point out of the current chunk. This updates the current
       * position if we do position tracking.
       *
       * This is the algorithm to use for XML 1.1.
       *
       * @returns {number} The character read.
       */
      getCode11() {
        const { chunk: chunk3, i: i5 } = this;
        this.prevI = i5;
        this.i = i5 + 1;
        if (i5 >= chunk3.length) {
          return EOC;
        }
        const code = chunk3.charCodeAt(i5);
        this.column++;
        if (code < 55296) {
          if (code > 31 && code < 127 || code > 159 && code !== LS || code === TAB) {
            return code;
          }
          switch (code) {
            case NL:
              this.line++;
              this.column = 0;
              this.positionAtNewLine = this.position;
              return NL;
            case CR: {
              const next = chunk3.charCodeAt(i5 + 1);
              if (next === NL || next === NEL) {
                this.i = i5 + 2;
              }
            }
            /* yes, fall through */
            case NEL:
            // 0x85
            case LS:
              this.line++;
              this.column = 0;
              this.positionAtNewLine = this.position;
              return NL_LIKE;
            default:
              this.fail("disallowed character.");
              return code;
          }
        }
        if (code > 56319) {
          if (!(code >= 57344 && code <= 65533)) {
            this.fail("disallowed character.");
          }
          return code;
        }
        const final = 65536 + (code - 55296) * 1024 + (chunk3.charCodeAt(i5 + 1) - 56320);
        this.i = i5 + 2;
        if (final > 1114111) {
          this.fail("disallowed character.");
        }
        return final;
      }
      /**
       * Like ``getCode`` but with the return value normalized so that ``NL`` is
       * returned for ``NL_LIKE``.
       */
      getCodeNorm() {
        const c6 = this.getCode();
        return c6 === NL_LIKE ? NL : c6;
      }
      unget() {
        this.i = this.prevI;
        this.column--;
      }
      /**
       * Capture characters into a buffer until encountering one of a set of
       * characters.
       *
       * @param chars An array of codepoints. Encountering a character in the array
       * ends the capture. (``chars`` may safely contain ``NL``.)
       *
       * @return The character code that made the capture end, or ``EOC`` if we hit
       * the end of the chunk. The return value cannot be NL_LIKE: NL is returned
       * instead.
       */
      captureTo(chars) {
        let { i: start2 } = this;
        const { chunk: chunk3 } = this;
        while (true) {
          const c6 = this.getCode();
          const isNLLike = c6 === NL_LIKE;
          const final = isNLLike ? NL : c6;
          if (final === EOC || chars.includes(final)) {
            this.text += chunk3.slice(start2, this.prevI);
            return final;
          }
          if (isNLLike) {
            this.text += `${chunk3.slice(start2, this.prevI)}
`;
            start2 = this.i;
          }
        }
      }
      /**
       * Capture characters into a buffer until encountering a character.
       *
       * @param char The codepoint that ends the capture. **NOTE ``char`` MAY NOT
       * CONTAIN ``NL``.** Passing ``NL`` will result in buggy behavior.
       *
       * @return ``true`` if we ran into the character. Otherwise, we ran into the
       * end of the current chunk.
       */
      captureToChar(char) {
        let { i: start2 } = this;
        const { chunk: chunk3 } = this;
        while (true) {
          let c6 = this.getCode();
          switch (c6) {
            case NL_LIKE:
              this.text += `${chunk3.slice(start2, this.prevI)}
`;
              start2 = this.i;
              c6 = NL;
              break;
            case EOC:
              this.text += chunk3.slice(start2);
              return false;
            default:
          }
          if (c6 === char) {
            this.text += chunk3.slice(start2, this.prevI);
            return true;
          }
        }
      }
      /**
       * Capture characters that satisfy ``isNameChar`` into the ``name`` field of
       * this parser.
       *
       * @return The character code that made the test fail, or ``EOC`` if we hit
       * the end of the chunk. The return value cannot be NL_LIKE: NL is returned
       * instead.
       */
      captureNameChars() {
        const { chunk: chunk3, i: start2 } = this;
        while (true) {
          const c6 = this.getCode();
          if (c6 === EOC) {
            this.name += chunk3.slice(start2);
            return EOC;
          }
          if (!isNameChar(c6)) {
            this.name += chunk3.slice(start2, this.prevI);
            return c6 === NL_LIKE ? NL : c6;
          }
        }
      }
      /**
       * Skip white spaces.
       *
       * @return The character that ended the skip, or ``EOC`` if we hit
       * the end of the chunk. The return value cannot be NL_LIKE: NL is returned
       * instead.
       */
      skipSpaces() {
        while (true) {
          const c6 = this.getCodeNorm();
          if (c6 === EOC || !isS(c6)) {
            return c6;
          }
        }
      }
      setXMLVersion(version2) {
        this.currentXMLVersion = version2;
        if (version2 === "1.0") {
          this.isChar = isChar10;
          this.getCode = this.getCode10;
        } else {
          this.isChar = isChar11;
          this.getCode = this.getCode11;
        }
      }
      // STATE ENGINE METHODS
      // This needs to be a state separate from S_BEGIN_WHITESPACE because we want
      // to be sure never to come back to this state later.
      sBegin() {
        if (this.chunk.charCodeAt(0) === 65279) {
          this.i++;
          this.column++;
        }
        this.state = S_BEGIN_WHITESPACE;
      }
      sBeginWhitespace() {
        const iBefore = this.i;
        const c6 = this.skipSpaces();
        if (this.prevI !== iBefore) {
          this.xmlDeclPossible = false;
        }
        switch (c6) {
          case LESS:
            this.state = S_OPEN_WAKA;
            if (this.text.length !== 0) {
              throw new Error("no-empty text at start");
            }
            break;
          case EOC:
            break;
          default:
            this.unget();
            this.state = S_TEXT;
            this.xmlDeclPossible = false;
        }
      }
      sDoctype() {
        var _a2;
        const c6 = this.captureTo(DOCTYPE_TERMINATOR);
        switch (c6) {
          case GREATER: {
            (_a2 = this.doctypeHandler) === null || _a2 === void 0 ? void 0 : _a2.call(this, this.text);
            this.text = "";
            this.state = S_TEXT;
            this.doctype = true;
            break;
          }
          case EOC:
            break;
          default:
            this.text += String.fromCodePoint(c6);
            if (c6 === OPEN_BRACKET) {
              this.state = S_DTD;
            } else if (isQuote(c6)) {
              this.state = S_DOCTYPE_QUOTE;
              this.q = c6;
            }
        }
      }
      sDoctypeQuote() {
        const q = this.q;
        if (this.captureToChar(q)) {
          this.text += String.fromCodePoint(q);
          this.q = null;
          this.state = S_DOCTYPE;
        }
      }
      sDTD() {
        const c6 = this.captureTo(DTD_TERMINATOR);
        if (c6 === EOC) {
          return;
        }
        this.text += String.fromCodePoint(c6);
        if (c6 === CLOSE_BRACKET) {
          this.state = S_DOCTYPE;
        } else if (c6 === LESS) {
          this.state = S_DTD_OPEN_WAKA;
        } else if (isQuote(c6)) {
          this.state = S_DTD_QUOTED;
          this.q = c6;
        }
      }
      sDTDQuoted() {
        const q = this.q;
        if (this.captureToChar(q)) {
          this.text += String.fromCodePoint(q);
          this.state = S_DTD;
          this.q = null;
        }
      }
      sDTDOpenWaka() {
        const c6 = this.getCodeNorm();
        this.text += String.fromCodePoint(c6);
        switch (c6) {
          case BANG:
            this.state = S_DTD_OPEN_WAKA_BANG;
            this.openWakaBang = "";
            break;
          case QUESTION:
            this.state = S_DTD_PI;
            break;
          default:
            this.state = S_DTD;
        }
      }
      sDTDOpenWakaBang() {
        const char = String.fromCodePoint(this.getCodeNorm());
        const owb = this.openWakaBang += char;
        this.text += char;
        if (owb !== "-") {
          this.state = owb === "--" ? S_DTD_COMMENT : S_DTD;
          this.openWakaBang = "";
        }
      }
      sDTDComment() {
        if (this.captureToChar(MINUS)) {
          this.text += "-";
          this.state = S_DTD_COMMENT_ENDING;
        }
      }
      sDTDCommentEnding() {
        const c6 = this.getCodeNorm();
        this.text += String.fromCodePoint(c6);
        this.state = c6 === MINUS ? S_DTD_COMMENT_ENDED : S_DTD_COMMENT;
      }
      sDTDCommentEnded() {
        const c6 = this.getCodeNorm();
        this.text += String.fromCodePoint(c6);
        if (c6 === GREATER) {
          this.state = S_DTD;
        } else {
          this.fail("malformed comment.");
          this.state = S_DTD_COMMENT;
        }
      }
      sDTDPI() {
        if (this.captureToChar(QUESTION)) {
          this.text += "?";
          this.state = S_DTD_PI_ENDING;
        }
      }
      sDTDPIEnding() {
        const c6 = this.getCodeNorm();
        this.text += String.fromCodePoint(c6);
        if (c6 === GREATER) {
          this.state = S_DTD;
        }
      }
      sText() {
        if (this.tags.length !== 0) {
          this.handleTextInRoot();
        } else {
          this.handleTextOutsideRoot();
        }
      }
      sEntity() {
        let { i: start2 } = this;
        const { chunk: chunk3 } = this;
        loop:
          while (true) {
            switch (this.getCode()) {
              case NL_LIKE:
                this.entity += `${chunk3.slice(start2, this.prevI)}
`;
                start2 = this.i;
                break;
              case SEMICOLON: {
                const { entityReturnState } = this;
                const entity = this.entity + chunk3.slice(start2, this.prevI);
                this.state = entityReturnState;
                let parsed;
                if (entity === "") {
                  this.fail("empty entity name.");
                  parsed = "&;";
                } else {
                  parsed = this.parseEntity(entity);
                  this.entity = "";
                }
                if (entityReturnState !== S_TEXT || this.textHandler !== void 0) {
                  this.text += parsed;
                }
                break loop;
              }
              case EOC:
                this.entity += chunk3.slice(start2);
                break loop;
              default:
            }
          }
      }
      sOpenWaka() {
        const c6 = this.getCode();
        if (isNameStartChar(c6)) {
          this.state = S_OPEN_TAG;
          this.unget();
          this.xmlDeclPossible = false;
        } else {
          switch (c6) {
            case FORWARD_SLASH:
              this.state = S_CLOSE_TAG;
              this.xmlDeclPossible = false;
              break;
            case BANG:
              this.state = S_OPEN_WAKA_BANG;
              this.openWakaBang = "";
              this.xmlDeclPossible = false;
              break;
            case QUESTION:
              this.state = S_PI_FIRST_CHAR;
              break;
            default:
              this.fail("disallowed character in tag name");
              this.state = S_TEXT;
              this.xmlDeclPossible = false;
          }
        }
      }
      sOpenWakaBang() {
        this.openWakaBang += String.fromCodePoint(this.getCodeNorm());
        switch (this.openWakaBang) {
          case "[CDATA[":
            if (!this.sawRoot && !this.reportedTextBeforeRoot) {
              this.fail("text data outside of root node.");
              this.reportedTextBeforeRoot = true;
            }
            if (this.closedRoot && !this.reportedTextAfterRoot) {
              this.fail("text data outside of root node.");
              this.reportedTextAfterRoot = true;
            }
            this.state = S_CDATA;
            this.openWakaBang = "";
            break;
          case "--":
            this.state = S_COMMENT;
            this.openWakaBang = "";
            break;
          case "DOCTYPE":
            this.state = S_DOCTYPE;
            if (this.doctype || this.sawRoot) {
              this.fail("inappropriately located doctype declaration.");
            }
            this.openWakaBang = "";
            break;
          default:
            if (this.openWakaBang.length >= 7) {
              this.fail("incorrect syntax.");
            }
        }
      }
      sComment() {
        if (this.captureToChar(MINUS)) {
          this.state = S_COMMENT_ENDING;
        }
      }
      sCommentEnding() {
        var _a2;
        const c6 = this.getCodeNorm();
        if (c6 === MINUS) {
          this.state = S_COMMENT_ENDED;
          (_a2 = this.commentHandler) === null || _a2 === void 0 ? void 0 : _a2.call(this, this.text);
          this.text = "";
        } else {
          this.text += `-${String.fromCodePoint(c6)}`;
          this.state = S_COMMENT;
        }
      }
      sCommentEnded() {
        const c6 = this.getCodeNorm();
        if (c6 !== GREATER) {
          this.fail("malformed comment.");
          this.text += `--${String.fromCodePoint(c6)}`;
          this.state = S_COMMENT;
        } else {
          this.state = S_TEXT;
        }
      }
      sCData() {
        if (this.captureToChar(CLOSE_BRACKET)) {
          this.state = S_CDATA_ENDING;
        }
      }
      sCDataEnding() {
        const c6 = this.getCodeNorm();
        if (c6 === CLOSE_BRACKET) {
          this.state = S_CDATA_ENDING_2;
        } else {
          this.text += `]${String.fromCodePoint(c6)}`;
          this.state = S_CDATA;
        }
      }
      sCDataEnding2() {
        var _a2;
        const c6 = this.getCodeNorm();
        switch (c6) {
          case GREATER: {
            (_a2 = this.cdataHandler) === null || _a2 === void 0 ? void 0 : _a2.call(this, this.text);
            this.text = "";
            this.state = S_TEXT;
            break;
          }
          case CLOSE_BRACKET:
            this.text += "]";
            break;
          default:
            this.text += `]]${String.fromCodePoint(c6)}`;
            this.state = S_CDATA;
        }
      }
      // We need this separate state to check the first character fo the pi target
      // with this.nameStartCheck which allows less characters than this.nameCheck.
      sPIFirstChar() {
        const c6 = this.getCodeNorm();
        if (this.nameStartCheck(c6)) {
          this.piTarget += String.fromCodePoint(c6);
          this.state = S_PI_REST;
        } else if (c6 === QUESTION || isS(c6)) {
          this.fail("processing instruction without a target.");
          this.state = c6 === QUESTION ? S_PI_ENDING : S_PI_BODY;
        } else {
          this.fail("disallowed character in processing instruction name.");
          this.piTarget += String.fromCodePoint(c6);
          this.state = S_PI_REST;
        }
      }
      sPIRest() {
        const { chunk: chunk3, i: start2 } = this;
        while (true) {
          const c6 = this.getCodeNorm();
          if (c6 === EOC) {
            this.piTarget += chunk3.slice(start2);
            return;
          }
          if (!this.nameCheck(c6)) {
            this.piTarget += chunk3.slice(start2, this.prevI);
            const isQuestion = c6 === QUESTION;
            if (isQuestion || isS(c6)) {
              if (this.piTarget === "xml") {
                if (!this.xmlDeclPossible) {
                  this.fail("an XML declaration must be at the start of the document.");
                }
                this.state = isQuestion ? S_XML_DECL_ENDING : S_XML_DECL_NAME_START;
              } else {
                this.state = isQuestion ? S_PI_ENDING : S_PI_BODY;
              }
            } else {
              this.fail("disallowed character in processing instruction name.");
              this.piTarget += String.fromCodePoint(c6);
            }
            break;
          }
        }
      }
      sPIBody() {
        if (this.text.length === 0) {
          const c6 = this.getCodeNorm();
          if (c6 === QUESTION) {
            this.state = S_PI_ENDING;
          } else if (!isS(c6)) {
            this.text = String.fromCodePoint(c6);
          }
        } else if (this.captureToChar(QUESTION)) {
          this.state = S_PI_ENDING;
        }
      }
      sPIEnding() {
        var _a2;
        const c6 = this.getCodeNorm();
        if (c6 === GREATER) {
          const { piTarget } = this;
          if (piTarget.toLowerCase() === "xml") {
            this.fail("the XML declaration must appear at the start of the document.");
          }
          (_a2 = this.piHandler) === null || _a2 === void 0 ? void 0 : _a2.call(this, {
            target: piTarget,
            body: this.text
          });
          this.piTarget = this.text = "";
          this.state = S_TEXT;
        } else if (c6 === QUESTION) {
          this.text += "?";
        } else {
          this.text += `?${String.fromCodePoint(c6)}`;
          this.state = S_PI_BODY;
        }
        this.xmlDeclPossible = false;
      }
      sXMLDeclNameStart() {
        const c6 = this.skipSpaces();
        if (c6 === QUESTION) {
          this.state = S_XML_DECL_ENDING;
          return;
        }
        if (c6 !== EOC) {
          this.state = S_XML_DECL_NAME;
          this.name = String.fromCodePoint(c6);
        }
      }
      sXMLDeclName() {
        const c6 = this.captureTo(XML_DECL_NAME_TERMINATOR);
        if (c6 === QUESTION) {
          this.state = S_XML_DECL_ENDING;
          this.name += this.text;
          this.text = "";
          this.fail("XML declaration is incomplete.");
          return;
        }
        if (!(isS(c6) || c6 === EQUAL)) {
          return;
        }
        this.name += this.text;
        this.text = "";
        if (!this.xmlDeclExpects.includes(this.name)) {
          switch (this.name.length) {
            case 0:
              this.fail("did not expect any more name/value pairs.");
              break;
            case 1:
              this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);
              break;
            default:
              this.fail(`expected one of ${this.xmlDeclExpects.join(", ")}`);
          }
        }
        this.state = c6 === EQUAL ? S_XML_DECL_VALUE_START : S_XML_DECL_EQ;
      }
      sXMLDeclEq() {
        const c6 = this.getCodeNorm();
        if (c6 === QUESTION) {
          this.state = S_XML_DECL_ENDING;
          this.fail("XML declaration is incomplete.");
          return;
        }
        if (isS(c6)) {
          return;
        }
        if (c6 !== EQUAL) {
          this.fail("value required.");
        }
        this.state = S_XML_DECL_VALUE_START;
      }
      sXMLDeclValueStart() {
        const c6 = this.getCodeNorm();
        if (c6 === QUESTION) {
          this.state = S_XML_DECL_ENDING;
          this.fail("XML declaration is incomplete.");
          return;
        }
        if (isS(c6)) {
          return;
        }
        if (!isQuote(c6)) {
          this.fail("value must be quoted.");
          this.q = SPACE;
        } else {
          this.q = c6;
        }
        this.state = S_XML_DECL_VALUE;
      }
      sXMLDeclValue() {
        const c6 = this.captureTo([this.q, QUESTION]);
        if (c6 === QUESTION) {
          this.state = S_XML_DECL_ENDING;
          this.text = "";
          this.fail("XML declaration is incomplete.");
          return;
        }
        if (c6 === EOC) {
          return;
        }
        const value2 = this.text;
        this.text = "";
        switch (this.name) {
          case "version": {
            this.xmlDeclExpects = ["encoding", "standalone"];
            const version2 = value2;
            this.xmlDecl.version = version2;
            if (!/^1\.[0-9]+$/.test(version2)) {
              this.fail("version number must match /^1\\.[0-9]+$/.");
            } else if (!this.opt.forceXMLVersion) {
              this.setXMLVersion(version2);
            }
            break;
          }
          case "encoding":
            if (!/^[A-Za-z][A-Za-z0-9._-]*$/.test(value2)) {
              this.fail("encoding value must match /^[A-Za-z0-9][A-Za-z0-9._-]*$/.");
            }
            this.xmlDeclExpects = ["standalone"];
            this.xmlDecl.encoding = value2;
            break;
          case "standalone":
            if (value2 !== "yes" && value2 !== "no") {
              this.fail('standalone value must match "yes" or "no".');
            }
            this.xmlDeclExpects = [];
            this.xmlDecl.standalone = value2;
            break;
          default:
        }
        this.name = "";
        this.state = S_XML_DECL_SEPARATOR;
      }
      sXMLDeclSeparator() {
        const c6 = this.getCodeNorm();
        if (c6 === QUESTION) {
          this.state = S_XML_DECL_ENDING;
          return;
        }
        if (!isS(c6)) {
          this.fail("whitespace required.");
          this.unget();
        }
        this.state = S_XML_DECL_NAME_START;
      }
      sXMLDeclEnding() {
        var _a2;
        const c6 = this.getCodeNorm();
        if (c6 === GREATER) {
          if (this.piTarget !== "xml") {
            this.fail("processing instructions are not allowed before root.");
          } else if (this.name !== "version" && this.xmlDeclExpects.includes("version")) {
            this.fail("XML declaration must contain a version.");
          }
          (_a2 = this.xmldeclHandler) === null || _a2 === void 0 ? void 0 : _a2.call(this, this.xmlDecl);
          this.name = "";
          this.piTarget = this.text = "";
          this.state = S_TEXT;
        } else {
          this.fail("The character ? is disallowed anywhere in XML declarations.");
        }
        this.xmlDeclPossible = false;
      }
      sOpenTag() {
        var _a2;
        const c6 = this.captureNameChars();
        if (c6 === EOC) {
          return;
        }
        const tag = this.tag = {
          name: this.name,
          attributes: /* @__PURE__ */ Object.create(null)
        };
        this.name = "";
        if (this.xmlnsOpt) {
          this.topNS = tag.ns = /* @__PURE__ */ Object.create(null);
        }
        (_a2 = this.openTagStartHandler) === null || _a2 === void 0 ? void 0 : _a2.call(this, tag);
        this.sawRoot = true;
        if (!this.fragmentOpt && this.closedRoot) {
          this.fail("documents may contain only one root.");
        }
        switch (c6) {
          case GREATER:
            this.openTag();
            break;
          case FORWARD_SLASH:
            this.state = S_OPEN_TAG_SLASH;
            break;
          default:
            if (!isS(c6)) {
              this.fail("disallowed character in tag name.");
            }
            this.state = S_ATTRIB;
        }
      }
      sOpenTagSlash() {
        if (this.getCode() === GREATER) {
          this.openSelfClosingTag();
        } else {
          this.fail("forward-slash in opening tag not followed by >.");
          this.state = S_ATTRIB;
        }
      }
      sAttrib() {
        const c6 = this.skipSpaces();
        if (c6 === EOC) {
          return;
        }
        if (isNameStartChar(c6)) {
          this.unget();
          this.state = S_ATTRIB_NAME;
        } else if (c6 === GREATER) {
          this.openTag();
        } else if (c6 === FORWARD_SLASH) {
          this.state = S_OPEN_TAG_SLASH;
        } else {
          this.fail("disallowed character in attribute name.");
        }
      }
      sAttribName() {
        const c6 = this.captureNameChars();
        if (c6 === EQUAL) {
          this.state = S_ATTRIB_VALUE;
        } else if (isS(c6)) {
          this.state = S_ATTRIB_NAME_SAW_WHITE;
        } else if (c6 === GREATER) {
          this.fail("attribute without value.");
          this.pushAttrib(this.name, this.name);
          this.name = this.text = "";
          this.openTag();
        } else if (c6 !== EOC) {
          this.fail("disallowed character in attribute name.");
        }
      }
      sAttribNameSawWhite() {
        const c6 = this.skipSpaces();
        switch (c6) {
          case EOC:
            return;
          case EQUAL:
            this.state = S_ATTRIB_VALUE;
            break;
          default:
            this.fail("attribute without value.");
            this.text = "";
            this.name = "";
            if (c6 === GREATER) {
              this.openTag();
            } else if (isNameStartChar(c6)) {
              this.unget();
              this.state = S_ATTRIB_NAME;
            } else {
              this.fail("disallowed character in attribute name.");
              this.state = S_ATTRIB;
            }
        }
      }
      sAttribValue() {
        const c6 = this.getCodeNorm();
        if (isQuote(c6)) {
          this.q = c6;
          this.state = S_ATTRIB_VALUE_QUOTED;
        } else if (!isS(c6)) {
          this.fail("unquoted attribute value.");
          this.state = S_ATTRIB_VALUE_UNQUOTED;
          this.unget();
        }
      }
      sAttribValueQuoted() {
        const { q, chunk: chunk3 } = this;
        let { i: start2 } = this;
        while (true) {
          switch (this.getCode()) {
            case q:
              this.pushAttrib(this.name, this.text + chunk3.slice(start2, this.prevI));
              this.name = this.text = "";
              this.q = null;
              this.state = S_ATTRIB_VALUE_CLOSED;
              return;
            case AMP:
              this.text += chunk3.slice(start2, this.prevI);
              this.state = S_ENTITY;
              this.entityReturnState = S_ATTRIB_VALUE_QUOTED;
              return;
            case NL:
            case NL_LIKE:
            case TAB:
              this.text += `${chunk3.slice(start2, this.prevI)} `;
              start2 = this.i;
              break;
            case LESS:
              this.text += chunk3.slice(start2, this.prevI);
              this.fail("disallowed character.");
              return;
            case EOC:
              this.text += chunk3.slice(start2);
              return;
            default:
          }
        }
      }
      sAttribValueClosed() {
        const c6 = this.getCodeNorm();
        if (isS(c6)) {
          this.state = S_ATTRIB;
        } else if (c6 === GREATER) {
          this.openTag();
        } else if (c6 === FORWARD_SLASH) {
          this.state = S_OPEN_TAG_SLASH;
        } else if (isNameStartChar(c6)) {
          this.fail("no whitespace between attributes.");
          this.unget();
          this.state = S_ATTRIB_NAME;
        } else {
          this.fail("disallowed character in attribute name.");
        }
      }
      sAttribValueUnquoted() {
        const c6 = this.captureTo(ATTRIB_VALUE_UNQUOTED_TERMINATOR);
        switch (c6) {
          case AMP:
            this.state = S_ENTITY;
            this.entityReturnState = S_ATTRIB_VALUE_UNQUOTED;
            break;
          case LESS:
            this.fail("disallowed character.");
            break;
          case EOC:
            break;
          default:
            if (this.text.includes("]]>")) {
              this.fail('the string "]]>" is disallowed in char data.');
            }
            this.pushAttrib(this.name, this.text);
            this.name = this.text = "";
            if (c6 === GREATER) {
              this.openTag();
            } else {
              this.state = S_ATTRIB;
            }
        }
      }
      sCloseTag() {
        const c6 = this.captureNameChars();
        if (c6 === GREATER) {
          this.closeTag();
        } else if (isS(c6)) {
          this.state = S_CLOSE_TAG_SAW_WHITE;
        } else if (c6 !== EOC) {
          this.fail("disallowed character in closing tag.");
        }
      }
      sCloseTagSawWhite() {
        switch (this.skipSpaces()) {
          case GREATER:
            this.closeTag();
            break;
          case EOC:
            break;
          default:
            this.fail("disallowed character in closing tag.");
        }
      }
      // END OF STATE ENGINE METHODS
      handleTextInRoot() {
        let { i: start2, forbiddenState } = this;
        const { chunk: chunk3, textHandler: handler } = this;
        scanLoop:
          while (true) {
            switch (this.getCode()) {
              case LESS: {
                this.state = S_OPEN_WAKA;
                if (handler !== void 0) {
                  const { text } = this;
                  const slice2 = chunk3.slice(start2, this.prevI);
                  if (text.length !== 0) {
                    handler(text + slice2);
                    this.text = "";
                  } else if (slice2.length !== 0) {
                    handler(slice2);
                  }
                }
                forbiddenState = FORBIDDEN_START;
                break scanLoop;
              }
              case AMP:
                this.state = S_ENTITY;
                this.entityReturnState = S_TEXT;
                if (handler !== void 0) {
                  this.text += chunk3.slice(start2, this.prevI);
                }
                forbiddenState = FORBIDDEN_START;
                break scanLoop;
              case CLOSE_BRACKET:
                switch (forbiddenState) {
                  case FORBIDDEN_START:
                    forbiddenState = FORBIDDEN_BRACKET;
                    break;
                  case FORBIDDEN_BRACKET:
                    forbiddenState = FORBIDDEN_BRACKET_BRACKET;
                    break;
                  case FORBIDDEN_BRACKET_BRACKET:
                    break;
                  default:
                    throw new Error("impossible state");
                }
                break;
              case GREATER:
                if (forbiddenState === FORBIDDEN_BRACKET_BRACKET) {
                  this.fail('the string "]]>" is disallowed in char data.');
                }
                forbiddenState = FORBIDDEN_START;
                break;
              case NL_LIKE:
                if (handler !== void 0) {
                  this.text += `${chunk3.slice(start2, this.prevI)}
`;
                }
                start2 = this.i;
                forbiddenState = FORBIDDEN_START;
                break;
              case EOC:
                if (handler !== void 0) {
                  this.text += chunk3.slice(start2);
                }
                break scanLoop;
              default:
                forbiddenState = FORBIDDEN_START;
            }
          }
        this.forbiddenState = forbiddenState;
      }
      handleTextOutsideRoot() {
        let { i: start2 } = this;
        const { chunk: chunk3, textHandler: handler } = this;
        let nonSpace = false;
        outRootLoop:
          while (true) {
            const code = this.getCode();
            switch (code) {
              case LESS: {
                this.state = S_OPEN_WAKA;
                if (handler !== void 0) {
                  const { text } = this;
                  const slice2 = chunk3.slice(start2, this.prevI);
                  if (text.length !== 0) {
                    handler(text + slice2);
                    this.text = "";
                  } else if (slice2.length !== 0) {
                    handler(slice2);
                  }
                }
                break outRootLoop;
              }
              case AMP:
                this.state = S_ENTITY;
                this.entityReturnState = S_TEXT;
                if (handler !== void 0) {
                  this.text += chunk3.slice(start2, this.prevI);
                }
                nonSpace = true;
                break outRootLoop;
              case NL_LIKE:
                if (handler !== void 0) {
                  this.text += `${chunk3.slice(start2, this.prevI)}
`;
                }
                start2 = this.i;
                break;
              case EOC:
                if (handler !== void 0) {
                  this.text += chunk3.slice(start2);
                }
                break outRootLoop;
              default:
                if (!isS(code)) {
                  nonSpace = true;
                }
            }
          }
        if (!nonSpace) {
          return;
        }
        if (!this.sawRoot && !this.reportedTextBeforeRoot) {
          this.fail("text data outside of root node.");
          this.reportedTextBeforeRoot = true;
        }
        if (this.closedRoot && !this.reportedTextAfterRoot) {
          this.fail("text data outside of root node.");
          this.reportedTextAfterRoot = true;
        }
      }
      pushAttribNS(name, value2) {
        var _a2;
        const { prefix, local } = this.qname(name);
        const attr = { name, prefix, local, value: value2 };
        this.attribList.push(attr);
        (_a2 = this.attributeHandler) === null || _a2 === void 0 ? void 0 : _a2.call(this, attr);
        if (prefix === "xmlns") {
          const trimmed = value2.trim();
          if (this.currentXMLVersion === "1.0" && trimmed === "") {
            this.fail("invalid attempt to undefine prefix in XML 1.0");
          }
          this.topNS[local] = trimmed;
          nsPairCheck(this, local, trimmed);
        } else if (name === "xmlns") {
          const trimmed = value2.trim();
          this.topNS[""] = trimmed;
          nsPairCheck(this, "", trimmed);
        }
      }
      pushAttribPlain(name, value2) {
        var _a2;
        const attr = { name, value: value2 };
        this.attribList.push(attr);
        (_a2 = this.attributeHandler) === null || _a2 === void 0 ? void 0 : _a2.call(this, attr);
      }
      /**
       * End parsing. This performs final well-formedness checks and resets the
       * parser to a clean state.
       *
       * @returns this
       */
      end() {
        var _a2, _b2;
        if (!this.sawRoot) {
          this.fail("document must contain a root element.");
        }
        const { tags: tags2 } = this;
        while (tags2.length > 0) {
          const tag = tags2.pop();
          this.fail(`unclosed tag: ${tag.name}`);
        }
        if (this.state !== S_BEGIN && this.state !== S_TEXT) {
          this.fail("unexpected end.");
        }
        const { text } = this;
        if (text.length !== 0) {
          (_a2 = this.textHandler) === null || _a2 === void 0 ? void 0 : _a2.call(this, text);
          this.text = "";
        }
        this._closed = true;
        (_b2 = this.endHandler) === null || _b2 === void 0 ? void 0 : _b2.call(this);
        this._init();
        return this;
      }
      /**
       * Resolve a namespace prefix.
       *
       * @param prefix The prefix to resolve.
       *
       * @returns The namespace URI or ``undefined`` if the prefix is not defined.
       */
      resolve(prefix) {
        var _a2, _b2;
        let uri = this.topNS[prefix];
        if (uri !== void 0) {
          return uri;
        }
        const { tags: tags2 } = this;
        for (let index2 = tags2.length - 1; index2 >= 0; index2--) {
          uri = tags2[index2].ns[prefix];
          if (uri !== void 0) {
            return uri;
          }
        }
        uri = this.ns[prefix];
        if (uri !== void 0) {
          return uri;
        }
        return (_b2 = (_a2 = this.opt).resolvePrefix) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, prefix);
      }
      /**
       * Parse a qname into its prefix and local name parts.
       *
       * @param name The name to parse
       *
       * @returns
       */
      qname(name) {
        const colon = name.indexOf(":");
        if (colon === -1) {
          return { prefix: "", local: name };
        }
        const local = name.slice(colon + 1);
        const prefix = name.slice(0, colon);
        if (prefix === "" || local === "" || local.includes(":")) {
          this.fail(`malformed name: ${name}.`);
        }
        return { prefix, local };
      }
      processAttribsNS() {
        var _a2;
        const { attribList } = this;
        const tag = this.tag;
        {
          const { prefix, local } = this.qname(tag.name);
          tag.prefix = prefix;
          tag.local = local;
          const uri = tag.uri = (_a2 = this.resolve(prefix)) !== null && _a2 !== void 0 ? _a2 : "";
          if (prefix !== "") {
            if (prefix === "xmlns") {
              this.fail('tags may not have "xmlns" as prefix.');
            }
            if (uri === "") {
              this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);
              tag.uri = prefix;
            }
          }
        }
        if (attribList.length === 0) {
          return;
        }
        const { attributes: attributes2 } = tag;
        const seen = /* @__PURE__ */ new Set();
        for (const attr of attribList) {
          const { name, prefix, local } = attr;
          let uri;
          let eqname;
          if (prefix === "") {
            uri = name === "xmlns" ? XMLNS_NAMESPACE : "";
            eqname = name;
          } else {
            uri = this.resolve(prefix);
            if (uri === void 0) {
              this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);
              uri = prefix;
            }
            eqname = `{${uri}}${local}`;
          }
          if (seen.has(eqname)) {
            this.fail(`duplicate attribute: ${eqname}.`);
          }
          seen.add(eqname);
          attr.uri = uri;
          attributes2[name] = attr;
        }
        this.attribList = [];
      }
      processAttribsPlain() {
        const { attribList } = this;
        const attributes2 = this.tag.attributes;
        for (const { name, value: value2 } of attribList) {
          if (attributes2[name] !== void 0) {
            this.fail(`duplicate attribute: ${name}.`);
          }
          attributes2[name] = value2;
        }
        this.attribList = [];
      }
      /**
       * Handle a complete open tag. This parser code calls this once it has seen
       * the whole tag. This method checks for well-formeness and then emits
       * ``onopentag``.
       */
      openTag() {
        var _a2;
        this.processAttribs();
        const { tags: tags2 } = this;
        const tag = this.tag;
        tag.isSelfClosing = false;
        (_a2 = this.openTagHandler) === null || _a2 === void 0 ? void 0 : _a2.call(this, tag);
        tags2.push(tag);
        this.state = S_TEXT;
        this.name = "";
      }
      /**
       * Handle a complete self-closing tag. This parser code calls this once it has
       * seen the whole tag. This method checks for well-formeness and then emits
       * ``onopentag`` and ``onclosetag``.
       */
      openSelfClosingTag() {
        var _a2, _b2, _c;
        this.processAttribs();
        const { tags: tags2 } = this;
        const tag = this.tag;
        tag.isSelfClosing = true;
        (_a2 = this.openTagHandler) === null || _a2 === void 0 ? void 0 : _a2.call(this, tag);
        (_b2 = this.closeTagHandler) === null || _b2 === void 0 ? void 0 : _b2.call(this, tag);
        const top = this.tag = (_c = tags2[tags2.length - 1]) !== null && _c !== void 0 ? _c : null;
        if (top === null) {
          this.closedRoot = true;
        }
        this.state = S_TEXT;
        this.name = "";
      }
      /**
       * Handle a complete close tag. This parser code calls this once it has seen
       * the whole tag. This method checks for well-formeness and then emits
       * ``onclosetag``.
       */
      closeTag() {
        const { tags: tags2, name } = this;
        this.state = S_TEXT;
        this.name = "";
        if (name === "") {
          this.fail("weird empty close tag.");
          this.text += "</>";
          return;
        }
        const handler = this.closeTagHandler;
        let l4 = tags2.length;
        while (l4-- > 0) {
          const tag = this.tag = tags2.pop();
          this.topNS = tag.ns;
          handler === null || handler === void 0 ? void 0 : handler(tag);
          if (tag.name === name) {
            break;
          }
          this.fail("unexpected close tag.");
        }
        if (l4 === 0) {
          this.closedRoot = true;
        } else if (l4 < 0) {
          this.fail(`unmatched closing tag: ${name}.`);
          this.text += `</${name}>`;
        }
      }
      /**
       * Resolves an entity. Makes any necessary well-formedness checks.
       *
       * @param entity The entity to resolve.
       *
       * @returns The parsed entity.
       */
      parseEntity(entity) {
        if (entity[0] !== "#") {
          const defined = this.ENTITIES[entity];
          if (defined !== void 0) {
            return defined;
          }
          this.fail(this.isName(entity) ? "undefined entity." : "disallowed character in entity name.");
          return `&${entity};`;
        }
        let num = NaN;
        if (entity[1] === "x" && /^#x[0-9a-f]+$/i.test(entity)) {
          num = parseInt(entity.slice(2), 16);
        } else if (/^#[0-9]+$/.test(entity)) {
          num = parseInt(entity.slice(1), 10);
        }
        if (!this.isChar(num)) {
          this.fail("malformed character entity.");
          return `&${entity};`;
        }
        return String.fromCodePoint(num);
      }
    };
    exports.SaxesParser = SaxesParser;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/NonElementParentNode-impl.js
var require_NonElementParentNode_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/NonElementParentNode-impl.js"(exports, module) {
    "use strict";
    var NonElementParentNodeImpl = class {
    };
    module.exports = {
      implementation: NonElementParentNodeImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/DocumentFragment-impl.js
var require_DocumentFragment_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/DocumentFragment-impl.js"(exports, module) {
    "use strict";
    var { mixin: mixin2 } = require_utils17();
    var { domSymbolTree } = require_internal_constants();
    var NODE_TYPE = require_node_type();
    var NodeImpl = require_Node_impl().implementation;
    var NonElementParentNodeImpl = require_NonElementParentNode_impl().implementation;
    var ParentNodeImpl = require_ParentNode_impl().implementation;
    var idlUtils = require_utils16();
    var DocumentFragmentImpl = class extends NodeImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, {
          ownerDocument: idlUtils.implForWrapper(globalObject._document),
          ...privateData
        });
        const { host } = privateData;
        this._host = host;
        this.nodeType = NODE_TYPE.DOCUMENT_FRAGMENT_NODE;
      }
      // This is implemented separately for Document (which has a _ids cache) and DocumentFragment (which does not).
      getElementById(id) {
        if (id === "") {
          return null;
        }
        for (const descendant of domSymbolTree.treeIterator(this)) {
          if (descendant.nodeType === NODE_TYPE.ELEMENT_NODE && descendant.getAttributeNS(null, "id") === id) {
            return descendant;
          }
        }
        return null;
      }
    };
    mixin2(DocumentFragmentImpl.prototype, NonElementParentNodeImpl.prototype);
    mixin2(DocumentFragmentImpl.prototype, ParentNodeImpl.prototype);
    module.exports = {
      implementation: DocumentFragmentImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js
var require_DocumentFragment = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Node = require_Node();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "DocumentFragment";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'DocumentFragment'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["DocumentFragment"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Node._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class DocumentFragment2 extends globalObject.Node {
        constructor() {
          return exports.setup(Object.create(new.target.prototype), globalObject, void 0);
        }
        getElementById(elementId) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getElementById' called on an object that is not a valid instance of DocumentFragment."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getElementById' on 'DocumentFragment': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getElementById' on 'DocumentFragment': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getElementById(...args));
        }
        prepend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'prepend' called on an object that is not a valid instance of DocumentFragment."
            );
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'prepend' on 'DocumentFragment': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].prepend(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        append() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'append' called on an object that is not a valid instance of DocumentFragment."
            );
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'append' on 'DocumentFragment': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].append(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        replaceChildren() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'replaceChildren' called on an object that is not a valid instance of DocumentFragment."
            );
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'replaceChildren' on 'DocumentFragment': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].replaceChildren(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        querySelector(selectors) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'querySelector' called on an object that is not a valid instance of DocumentFragment."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'querySelector' on 'DocumentFragment': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'querySelector' on 'DocumentFragment': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].querySelector(...args));
        }
        querySelectorAll(selectors) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'querySelectorAll' called on an object that is not a valid instance of DocumentFragment."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'querySelectorAll' on 'DocumentFragment': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'querySelectorAll' on 'DocumentFragment': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].querySelectorAll(...args));
        }
        get children() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get children' called on an object that is not a valid instance of DocumentFragment."
            );
          }
          return utils2.getSameObject(this, "children", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["children"]);
          });
        }
        get firstElementChild() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get firstElementChild' called on an object that is not a valid instance of DocumentFragment."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["firstElementChild"]);
        }
        get lastElementChild() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get lastElementChild' called on an object that is not a valid instance of DocumentFragment."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["lastElementChild"]);
        }
        get childElementCount() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get childElementCount' called on an object that is not a valid instance of DocumentFragment."
            );
          }
          return esValue[implSymbol]["childElementCount"];
        }
      }
      Object.defineProperties(DocumentFragment2.prototype, {
        getElementById: { enumerable: true },
        prepend: { enumerable: true },
        append: { enumerable: true },
        replaceChildren: { enumerable: true },
        querySelector: { enumerable: true },
        querySelectorAll: { enumerable: true },
        children: { enumerable: true },
        firstElementChild: { enumerable: true },
        lastElementChild: { enumerable: true },
        childElementCount: { enumerable: true },
        [Symbol.toStringTag]: { value: "DocumentFragment", configurable: true },
        [Symbol.unscopables]: {
          value: { prepend: true, append: true, replaceChildren: true, __proto__: null },
          configurable: true
        }
      });
      ctorRegistry[interfaceName] = DocumentFragment2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: DocumentFragment2
      });
    };
    var Impl = require_DocumentFragment_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/DocumentType-impl.js
var require_DocumentType_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/DocumentType-impl.js"(exports, module) {
    "use strict";
    var { mixin: mixin2 } = require_utils17();
    var NodeImpl = require_Node_impl().implementation;
    var ChildNodeImpl = require_ChildNode_impl().implementation;
    var NODE_TYPE = require_node_type();
    var DocumentTypeImpl = class extends NodeImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this.nodeType = NODE_TYPE.DOCUMENT_TYPE_NODE;
        this.name = privateData.name;
        this.publicId = privateData.publicId;
        this.systemId = privateData.systemId;
      }
    };
    mixin2(DocumentTypeImpl.prototype, ChildNodeImpl.prototype);
    module.exports = {
      implementation: DocumentTypeImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js
var require_DocumentType = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Node = require_Node();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "DocumentType";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'DocumentType'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["DocumentType"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Node._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class DocumentType extends globalObject.Node {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        before() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'before' called on an object that is not a valid instance of DocumentType.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'before' on 'DocumentType': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].before(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        after() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'after' called on an object that is not a valid instance of DocumentType.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'after' on 'DocumentType': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].after(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        replaceWith() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'replaceWith' called on an object that is not a valid instance of DocumentType."
            );
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'replaceWith' on 'DocumentType': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].replaceWith(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        remove() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'remove' called on an object that is not a valid instance of DocumentType.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].remove();
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of DocumentType."
            );
          }
          return esValue[implSymbol]["name"];
        }
        get publicId() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get publicId' called on an object that is not a valid instance of DocumentType."
            );
          }
          return esValue[implSymbol]["publicId"];
        }
        get systemId() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get systemId' called on an object that is not a valid instance of DocumentType."
            );
          }
          return esValue[implSymbol]["systemId"];
        }
      }
      Object.defineProperties(DocumentType.prototype, {
        before: { enumerable: true },
        after: { enumerable: true },
        replaceWith: { enumerable: true },
        remove: { enumerable: true },
        name: { enumerable: true },
        publicId: { enumerable: true },
        systemId: { enumerable: true },
        [Symbol.toStringTag]: { value: "DocumentType", configurable: true },
        [Symbol.unscopables]: {
          value: { before: true, after: true, replaceWith: true, remove: true, __proto__: null },
          configurable: true
        }
      });
      ctorRegistry[interfaceName] = DocumentType;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: DocumentType
      });
    };
    var Impl = require_DocumentType_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/NonDocumentTypeChildNode-impl.js
var require_NonDocumentTypeChildNode_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/NonDocumentTypeChildNode-impl.js"(exports, module) {
    "use strict";
    var { domSymbolTree } = require_internal_constants();
    var NODE_TYPE = require_node_type();
    var NonDocumentTypeChildNodeImpl = class {
      get nextElementSibling() {
        for (const sibling of domSymbolTree.nextSiblingsIterator(this)) {
          if (sibling.nodeType === NODE_TYPE.ELEMENT_NODE) {
            return sibling;
          }
        }
        return null;
      }
      get previousElementSibling() {
        for (const sibling of domSymbolTree.previousSiblingsIterator(this)) {
          if (sibling.nodeType === NODE_TYPE.ELEMENT_NODE) {
            return sibling;
          }
        }
        return null;
      }
    };
    module.exports = {
      implementation: NonDocumentTypeChildNodeImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/CharacterData-impl.js
var require_CharacterData_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/CharacterData-impl.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var { mixin: mixin2 } = require_utils17();
    var NodeImpl = require_Node_impl().implementation;
    var ChildNodeImpl = require_ChildNode_impl().implementation;
    var NonDocumentTypeChildNodeImpl = require_NonDocumentTypeChildNode_impl().implementation;
    var { TEXT_NODE } = require_node_type();
    var { MUTATION_TYPE, queueMutationRecord } = require_mutation_observers();
    var CharacterDataImpl = class extends NodeImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._data = privateData.data;
      }
      // https://dom.spec.whatwg.org/#dom-characterdata-data
      get data() {
        return this._data;
      }
      set data(data2) {
        this.replaceData(0, this.length, data2);
      }
      // https://dom.spec.whatwg.org/#dom-characterdata-length
      get length() {
        return this._data.length;
      }
      // https://dom.spec.whatwg.org/#dom-characterdata-substringdata
      // https://dom.spec.whatwg.org/#concept-cd-substring
      substringData(offset2, count) {
        const { length: length2 } = this;
        if (offset2 > length2) {
          throw DOMException2.create(this._globalObject, ["The index is not in the allowed range.", "IndexSizeError"]);
        }
        if (offset2 + count > length2) {
          return this._data.slice(offset2);
        }
        return this._data.slice(offset2, offset2 + count);
      }
      // https://dom.spec.whatwg.org/#dom-characterdata-appenddata
      appendData(data2) {
        this.replaceData(this.length, 0, data2);
      }
      // https://dom.spec.whatwg.org/#dom-characterdata-insertdata
      insertData(offset2, data2) {
        this.replaceData(offset2, 0, data2);
      }
      // https://dom.spec.whatwg.org/#dom-characterdata-deletedata
      deleteData(offset2, count) {
        this.replaceData(offset2, count, "");
      }
      // https://dom.spec.whatwg.org/#dom-characterdata-replacedata
      // https://dom.spec.whatwg.org/#concept-cd-replace
      replaceData(offset2, count, data2) {
        const { length: length2 } = this;
        if (offset2 > length2) {
          throw DOMException2.create(this._globalObject, [
            "The index is not in the allowed range.",
            "IndexSizeError"
          ]);
        }
        if (offset2 + count > length2) {
          count = length2 - offset2;
        }
        queueMutationRecord(MUTATION_TYPE.CHARACTER_DATA, this, null, null, this._data, [], [], null, null);
        const start2 = this._data.slice(0, offset2);
        const end2 = this._data.slice(offset2 + count);
        this._data = start2 + data2 + end2;
        for (const range2 of this._referencedRanges) {
          const { _start, _end } = range2;
          if (_start.node === this && _start.offset > offset2 && _start.offset <= offset2 + count) {
            range2._setLiveRangeStart(this, offset2);
          }
          if (_end.node === this && _end.offset > offset2 && _end.offset <= offset2 + count) {
            range2._setLiveRangeEnd(this, offset2);
          }
          if (_start.node === this && _start.offset > offset2 + count) {
            range2._setLiveRangeStart(this, _start.offset + data2.length - count);
          }
          if (_end.node === this && _end.offset > offset2 + count) {
            range2._setLiveRangeEnd(this, _end.offset + data2.length - count);
          }
        }
        if (this.nodeType === TEXT_NODE && this.parentNode) {
          this.parentNode._childTextContentChangeSteps();
        }
      }
    };
    mixin2(CharacterDataImpl.prototype, NonDocumentTypeChildNodeImpl.prototype);
    mixin2(CharacterDataImpl.prototype, ChildNodeImpl.prototype);
    module.exports = {
      implementation: CharacterDataImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js
var require_CharacterData = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Node = require_Node();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "CharacterData";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'CharacterData'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["CharacterData"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Node._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class CharacterData extends globalObject.Node {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        substringData(offset2, count) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'substringData' called on an object that is not a valid instance of CharacterData."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'substringData' on 'CharacterData': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'substringData' on 'CharacterData': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'substringData' on 'CharacterData': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].substringData(...args);
        }
        appendData(data2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'appendData' called on an object that is not a valid instance of CharacterData."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'appendData' on 'CharacterData': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'appendData' on 'CharacterData': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].appendData(...args);
        }
        insertData(offset2, data2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'insertData' called on an object that is not a valid instance of CharacterData."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'insertData' on 'CharacterData': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'insertData' on 'CharacterData': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'insertData' on 'CharacterData': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].insertData(...args);
        }
        deleteData(offset2, count) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'deleteData' called on an object that is not a valid instance of CharacterData."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'deleteData' on 'CharacterData': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'deleteData' on 'CharacterData': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'deleteData' on 'CharacterData': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].deleteData(...args);
        }
        replaceData(offset2, count, data2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'replaceData' called on an object that is not a valid instance of CharacterData."
            );
          }
          if (arguments.length < 3) {
            throw new globalObject.TypeError(
              `Failed to execute 'replaceData' on 'CharacterData': 3 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'replaceData' on 'CharacterData': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'replaceData' on 'CharacterData': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'replaceData' on 'CharacterData': parameter 3",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].replaceData(...args);
        }
        before() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'before' called on an object that is not a valid instance of CharacterData.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'before' on 'CharacterData': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].before(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        after() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'after' called on an object that is not a valid instance of CharacterData.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'after' on 'CharacterData': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].after(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        replaceWith() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'replaceWith' called on an object that is not a valid instance of CharacterData."
            );
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'replaceWith' on 'CharacterData': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].replaceWith(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        remove() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'remove' called on an object that is not a valid instance of CharacterData.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].remove();
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get data() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get data' called on an object that is not a valid instance of CharacterData."
            );
          }
          return esValue[implSymbol]["data"];
        }
        set data(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set data' called on an object that is not a valid instance of CharacterData."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'data' property on 'CharacterData': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          esValue[implSymbol]["data"] = V;
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get length' called on an object that is not a valid instance of CharacterData."
            );
          }
          return esValue[implSymbol]["length"];
        }
        get previousElementSibling() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get previousElementSibling' called on an object that is not a valid instance of CharacterData."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["previousElementSibling"]);
        }
        get nextElementSibling() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get nextElementSibling' called on an object that is not a valid instance of CharacterData."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["nextElementSibling"]);
        }
      }
      Object.defineProperties(CharacterData.prototype, {
        substringData: { enumerable: true },
        appendData: { enumerable: true },
        insertData: { enumerable: true },
        deleteData: { enumerable: true },
        replaceData: { enumerable: true },
        before: { enumerable: true },
        after: { enumerable: true },
        replaceWith: { enumerable: true },
        remove: { enumerable: true },
        data: { enumerable: true },
        length: { enumerable: true },
        previousElementSibling: { enumerable: true },
        nextElementSibling: { enumerable: true },
        [Symbol.toStringTag]: { value: "CharacterData", configurable: true },
        [Symbol.unscopables]: {
          value: { before: true, after: true, replaceWith: true, remove: true, __proto__: null },
          configurable: true
        }
      });
      ctorRegistry[interfaceName] = CharacterData;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: CharacterData
      });
    };
    var Impl = require_CharacterData_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/Slotable-impl.js
var require_Slotable_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/Slotable-impl.js"(exports, module) {
    "use strict";
    var { findSlot, assignSlot, assignSlotable } = require_shadow_dom();
    var SlotableMixinImpl = class {
      _initSlotableMixin() {
        this._slotableName = "";
      }
      _attrModifiedSlotableMixin(name, value2, oldValue) {
        if (name === "slot") {
          if (value2 === oldValue) {
            return;
          }
          if (value2 === null && oldValue === "") {
            return;
          }
          if (value2 === "" && oldValue === null) {
            return;
          }
          if (value2 === null || value2 === "") {
            this._slotableName = "";
          } else {
            this._slotableName = value2;
          }
          if (this._assignedSlot) {
            assignSlotable(this._assignedSlot);
          }
          assignSlot(this);
        }
      }
      get assignedSlot() {
        return findSlot(this, "open");
      }
    };
    module.exports = {
      implementation: SlotableMixinImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js
var require_Text_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js"(exports, module) {
    "use strict";
    var SlotableMixinImpl = require_Slotable_impl().implementation;
    var CharacterDataImpl = require_CharacterData_impl().implementation;
    var idlUtils = require_utils16();
    var { domSymbolTree } = require_internal_constants();
    var DOMException2 = require_DOMException();
    var NODE_TYPE = require_node_type();
    var { mixin: mixin2 } = require_utils17();
    var TextImpl = class extends CharacterDataImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, {
          data: args[0],
          ownerDocument: idlUtils.implForWrapper(globalObject._document),
          ...privateData
        });
        this._initSlotableMixin();
        this.nodeType = NODE_TYPE.TEXT_NODE;
      }
      // https://dom.spec.whatwg.org/#dom-text-splittext
      // https://dom.spec.whatwg.org/#concept-text-split
      splitText(offset2) {
        const { length: length2 } = this;
        if (offset2 > length2) {
          throw DOMException2.create(this._globalObject, ["The index is not in the allowed range.", "IndexSizeError"]);
        }
        const count = length2 - offset2;
        const newData = this.substringData(offset2, count);
        const newNode = this._ownerDocument.createTextNode(newData);
        const parent = domSymbolTree.parent(this);
        if (parent !== null) {
          parent._insert(newNode, this.nextSibling);
          for (const range2 of this._referencedRanges) {
            const { _start, _end } = range2;
            if (_start.node === this && _start.offset > offset2) {
              range2._setLiveRangeStart(newNode, _start.offset - offset2);
            }
            if (_end.node === this && _end.offset > offset2) {
              range2._setLiveRangeEnd(newNode, _end.offset - offset2);
            }
          }
          const nodeIndex = domSymbolTree.index(this);
          for (const range2 of parent._referencedRanges) {
            const { _start, _end } = range2;
            if (_start.node === parent && _start.offset === nodeIndex + 1) {
              range2._setLiveRangeStart(parent, _start.offset + 1);
            }
            if (_end.node === parent && _end.offset === nodeIndex + 1) {
              range2._setLiveRangeEnd(parent, _end.offset + 1);
            }
          }
        }
        this.replaceData(offset2, count, "");
        return newNode;
      }
      // https://dom.spec.whatwg.org/#dom-text-wholetext
      get wholeText() {
        let wholeText = this.textContent;
        let next;
        let current = this;
        while ((next = domSymbolTree.previousSibling(current)) && next.nodeType === NODE_TYPE.TEXT_NODE) {
          wholeText = next.textContent + wholeText;
          current = next;
        }
        current = this;
        while ((next = domSymbolTree.nextSibling(current)) && next.nodeType === NODE_TYPE.TEXT_NODE) {
          wholeText += next.textContent;
          current = next;
        }
        return wholeText;
      }
    };
    mixin2(TextImpl.prototype, SlotableMixinImpl.prototype);
    module.exports = {
      implementation: TextImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Text.js
var require_Text = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Text.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var CharacterData = require_CharacterData();
    var interfaceName = "Text";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Text'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Text"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      CharacterData._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Text2 extends globalObject.CharacterData {
        constructor() {
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to construct 'Text': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = "";
            }
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        splitText(offset2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'splitText' called on an object that is not a valid instance of Text.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'splitText' on 'Text': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'splitText' on 'Text': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].splitText(...args));
        }
        get wholeText() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get wholeText' called on an object that is not a valid instance of Text.");
          }
          return esValue[implSymbol]["wholeText"];
        }
        get assignedSlot() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get assignedSlot' called on an object that is not a valid instance of Text."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["assignedSlot"]);
        }
      }
      Object.defineProperties(Text2.prototype, {
        splitText: { enumerable: true },
        wholeText: { enumerable: true },
        assignedSlot: { enumerable: true },
        [Symbol.toStringTag]: { value: "Text", configurable: true }
      });
      ctorRegistry[interfaceName] = Text2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Text2
      });
    };
    var Impl = require_Text_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/CDATASection-impl.js
var require_CDATASection_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/CDATASection-impl.js"(exports, module) {
    "use strict";
    var TextImpl = require_Text_impl().implementation;
    var NODE_TYPE = require_node_type();
    var CDATASectionImpl = class extends TextImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this.nodeType = NODE_TYPE.CDATA_SECTION_NODE;
      }
    };
    module.exports = {
      implementation: CDATASectionImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js
var require_CDATASection = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Text2 = require_Text();
    var interfaceName = "CDATASection";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'CDATASection'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["CDATASection"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Text2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class CDATASection extends globalObject.Text {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
      }
      Object.defineProperties(CDATASection.prototype, {
        [Symbol.toStringTag]: { value: "CDATASection", configurable: true }
      });
      ctorRegistry[interfaceName] = CDATASection;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: CDATASection
      });
    };
    var Impl = require_CDATASection_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/Comment-impl.js
var require_Comment_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/Comment-impl.js"(exports, module) {
    "use strict";
    var CharacterDataImpl = require_CharacterData_impl().implementation;
    var idlUtils = require_utils16();
    var NODE_TYPE = require_node_type();
    var CommentImpl = class extends CharacterDataImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, {
          data: args[0],
          ownerDocument: idlUtils.implForWrapper(globalObject._document),
          ...privateData
        });
        this.nodeType = NODE_TYPE.COMMENT_NODE;
      }
    };
    module.exports = {
      implementation: CommentImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Comment.js
var require_Comment = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Comment.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var CharacterData = require_CharacterData();
    var interfaceName = "Comment";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Comment'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Comment"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      CharacterData._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Comment extends globalObject.CharacterData {
        constructor() {
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to construct 'Comment': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = "";
            }
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
      }
      Object.defineProperties(Comment.prototype, { [Symbol.toStringTag]: { value: "Comment", configurable: true } });
      ctorRegistry[interfaceName] = Comment;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Comment
      });
    };
    var Impl = require_Comment_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/ProcessingInstruction-impl.js
var require_ProcessingInstruction_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/ProcessingInstruction-impl.js"(exports, module) {
    "use strict";
    var CharacterDataImpl = require_CharacterData_impl().implementation;
    var NODE_TYPE = require_node_type();
    var ProcessingInstructionImpl = class extends CharacterDataImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this.nodeType = NODE_TYPE.PROCESSING_INSTRUCTION_NODE;
        this._target = privateData.target;
      }
      get target() {
        return this._target;
      }
    };
    module.exports = {
      implementation: ProcessingInstructionImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ProcessingInstruction.js
var require_ProcessingInstruction = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ProcessingInstruction.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var CharacterData = require_CharacterData();
    var interfaceName = "ProcessingInstruction";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'ProcessingInstruction'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["ProcessingInstruction"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      CharacterData._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class ProcessingInstruction extends globalObject.CharacterData {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get target() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get target' called on an object that is not a valid instance of ProcessingInstruction."
            );
          }
          return esValue[implSymbol]["target"];
        }
      }
      Object.defineProperties(ProcessingInstruction.prototype, {
        target: { enumerable: true },
        [Symbol.toStringTag]: { value: "ProcessingInstruction", configurable: true }
      });
      ctorRegistry[interfaceName] = ProcessingInstruction;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: ProcessingInstruction
      });
    };
    var Impl = require_ProcessingInstruction_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/parser/xml.js
var require_xml = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/parser/xml.js"(exports, module) {
    "use strict";
    var { SaxesParser } = require_saxes();
    var DOMException2 = require_DOMException();
    var { createElement: createElement11 } = require_create_element();
    var DocumentFragment2 = require_DocumentFragment();
    var DocumentType = require_DocumentType();
    var CDATASection = require_CDATASection();
    var Comment = require_Comment();
    var ProcessingInstruction = require_ProcessingInstruction();
    var Text2 = require_Text();
    var attributes2 = require_attributes3();
    var { HTML_NS } = require_namespaces();
    var HTML5_DOCTYPE = /<!doctype html>/i;
    var PUBLIC_DOCTYPE = /<!doctype\s+([^\s]+)\s+public\s+"([^"]+)"\s+"([^"]+)"/i;
    var SYSTEM_DOCTYPE = /<!doctype\s+([^\s]+)\s+system\s+"([^"]+)"/i;
    var CUSTOM_NAME_DOCTYPE = /<!doctype\s+([^\s>]+)/i;
    function parseDocType(globalObject, ownerDocument, html) {
      if (HTML5_DOCTYPE.test(html)) {
        return createDocumentType(globalObject, ownerDocument, "html", "", "");
      }
      const publicPieces = PUBLIC_DOCTYPE.exec(html);
      if (publicPieces) {
        return createDocumentType(globalObject, ownerDocument, publicPieces[1], publicPieces[2], publicPieces[3]);
      }
      const systemPieces = SYSTEM_DOCTYPE.exec(html);
      if (systemPieces) {
        return createDocumentType(globalObject, ownerDocument, systemPieces[1], "", systemPieces[2]);
      }
      const namePiece = CUSTOM_NAME_DOCTYPE.exec(html)[1] || "html";
      return createDocumentType(globalObject, ownerDocument, namePiece, "", "");
    }
    function createDocumentType(globalObject, ownerDocument, name, publicId, systemId) {
      return DocumentType.createImpl(globalObject, [], { ownerDocument, name, publicId, systemId });
    }
    function isHTMLTemplateElement(element) {
      return element.tagName === "template" && element.namespaceURI === HTML_NS;
    }
    function createParser(rootNode, globalObject, saxesOptions) {
      const parser = new SaxesParser({
        ...saxesOptions,
        // Browsers always have namespace support.
        xmlns: true,
        // We force the parser to treat all documents (even documents declaring themselves to be XML 1.1 documents) as XML
        // 1.0 documents. See https://github.com/jsdom/jsdom/issues/2677 for a discussion of the stakes.
        defaultXMLVersion: "1.0",
        forceXMLVersion: true
      });
      const openStack = [rootNode];
      function getOwnerDocument() {
        const currentElement = openStack[openStack.length - 1];
        return isHTMLTemplateElement(currentElement) ? currentElement._templateContents._ownerDocument : currentElement._ownerDocument;
      }
      function appendChild2(child) {
        const parentElement = openStack[openStack.length - 1];
        if (isHTMLTemplateElement(parentElement)) {
          parentElement._templateContents._insert(child, null);
        } else {
          parentElement._insert(child, null);
        }
      }
      parser.on("text", saxesOptions.fragment ? (
        // In a fragment, all text events produced by saxes must result in a text
        // node.
        (data2) => {
          const ownerDocument = getOwnerDocument();
          appendChild2(Text2.createImpl(globalObject, [], { data: data2, ownerDocument }));
        }
      ) : (
        // When parsing a whole document, we must ignore those text nodes that are
        // produced outside the root element. Saxes produces events for them,
        // but DOM trees do not record text outside the root element.
        (data2) => {
          if (openStack.length > 1) {
            const ownerDocument = getOwnerDocument();
            appendChild2(Text2.createImpl(globalObject, [], { data: data2, ownerDocument }));
          }
        }
      ));
      parser.on("cdata", (data2) => {
        const ownerDocument = getOwnerDocument();
        appendChild2(CDATASection.createImpl(globalObject, [], { data: data2, ownerDocument }));
      });
      parser.on("opentag", (tag) => {
        const { local: tagLocal, attributes: tagAttributes } = tag;
        const ownerDocument = getOwnerDocument();
        const tagNamespace = tag.uri === "" ? null : tag.uri;
        const tagPrefix = tag.prefix === "" ? null : tag.prefix;
        const isValue = tagAttributes.is === void 0 ? null : tagAttributes.is.value;
        const elem = createElement11(ownerDocument, tagLocal, tagNamespace, tagPrefix, isValue, true);
        if (tagLocal === "script" && tagNamespace === HTML_NS) {
          elem._parserInserted = true;
        }
        for (const key of Object.keys(tagAttributes)) {
          const { prefix, local, uri, value: value2 } = tagAttributes[key];
          attributes2.setAttributeValue(elem, local, value2, prefix === "" ? null : prefix, uri === "" ? null : uri);
        }
        appendChild2(elem);
        openStack.push(elem);
      });
      parser.on("closetag", () => {
        const elem = openStack.pop();
        if (elem.localName === "script" && elem.namespaceURI === HTML_NS) {
          elem._eval();
        }
      });
      parser.on("comment", (data2) => {
        const ownerDocument = getOwnerDocument();
        appendChild2(Comment.createImpl(globalObject, [], { data: data2, ownerDocument }));
      });
      parser.on("processinginstruction", ({ target, body }) => {
        const ownerDocument = getOwnerDocument();
        appendChild2(ProcessingInstruction.createImpl(globalObject, [], { target, data: body, ownerDocument }));
      });
      parser.on("doctype", (dt) => {
        const ownerDocument = getOwnerDocument();
        appendChild2(parseDocType(globalObject, ownerDocument, `<!doctype ${dt}>`));
        const entityMatcher = /<!ENTITY ([^ ]+) "([^"]+)">/g;
        let result;
        while (result = entityMatcher.exec(dt)) {
          const [, name, value2] = result;
          if (!(name in parser.ENTITIES)) {
            parser.ENTITIES[name] = value2;
          }
        }
      });
      parser.on("error", (err2) => {
        throw DOMException2.create(globalObject, [err2.message, "SyntaxError"]);
      });
      return parser;
    }
    function parseFragment(markup, contextElement) {
      const { _globalObject, _ownerDocument } = contextElement;
      const fragment = DocumentFragment2.createImpl(_globalObject, [], { ownerDocument: _ownerDocument });
      const parser = createParser(fragment, _globalObject, {
        fragment: true,
        resolvePrefix(prefix) {
          return contextElement.lookupNamespaceURI(prefix) || void 0;
        }
      });
      parser.write(markup).close();
      return fragment;
    }
    function parseIntoDocument(markup, ownerDocument) {
      const { _globalObject } = ownerDocument;
      const parser = createParser(ownerDocument, _globalObject, {
        fileName: ownerDocument.location && ownerDocument.location.href
      });
      parser.write(markup).close();
      return ownerDocument;
    }
    module.exports = {
      parseFragment,
      parseIntoDocument
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/domparsing/parse5-adapter-serialization.js
var require_parse5_adapter_serialization = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/domparsing/parse5-adapter-serialization.js"(exports) {
    "use strict";
    var nodeTypes = require_node_type();
    var { domSymbolTree } = require_internal_constants();
    exports.getFirstChild = (node) => node.firstChild;
    exports.getChildNodes = (node) => domSymbolTree.childrenToArray(node);
    exports.getParentNode = (node) => node.parentNode;
    exports.getAttrList = (element) => {
      const attributeList = [...element._attributeList];
      if (element._isValue && attributeList.every((attr) => attr.name !== "is")) {
        attributeList.unshift({
          name: "is",
          namespace: null,
          prefix: null,
          value: element._isValue
        });
      }
      return attributeList;
    };
    exports.getTagName = (element) => element._qualifiedName;
    exports.getNamespaceURI = (element) => element.namespaceURI;
    exports.getTextNodeContent = exports.getCommentNodeContent = (node) => node.data;
    exports.getDocumentTypeNodeName = (node) => node.name;
    exports.getDocumentTypeNodePublicId = (node) => node.publicId;
    exports.getDocumentTypeNodeSystemId = (node) => node.systemId;
    exports.getTemplateContent = (templateElement) => templateElement._templateContents;
    exports.getDocumentMode = (document2) => document2._mode;
    exports.isTextNode = (node) => node.nodeType === nodeTypes.TEXT_NODE;
    exports.isCommentNode = (node) => node.nodeType === nodeTypes.COMMENT_NODE;
    exports.isDocumentTypeNode = (node) => node.nodeType === nodeTypes.DOCUMENT_TYPE_NODE;
    exports.isElementNode = (node) => node.nodeType === nodeTypes.ELEMENT_NODE;
    exports.setNodeSourceCodeLocation = (node, location) => {
      node.sourceCodeLocation = location;
    };
    exports.getNodeSourceCodeLocation = (node) => node.sourceCodeLocation;
    exports.updateNodeSourceCodeLocation = (node, endLocation) => {
      Object.assign(node.sourceCodeLocation, endLocation);
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/parser/html.js
var require_html2 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/parser/html.js"(exports, module) {
    "use strict";
    var parse5 = require_cjs7();
    var { createElement: createElement11 } = require_create_element();
    var { HTML_NS } = require_namespaces();
    var DocumentType = require_DocumentType();
    var DocumentFragment2 = require_DocumentFragment();
    var Text2 = require_Text();
    var Comment = require_Comment();
    var attributes2 = require_attributes3();
    var nodeTypes = require_node_type();
    var serializationAdapter = require_parse5_adapter_serialization();
    var {
      customElementReactionsStack,
      invokeCEReactions,
      lookupCEDefinition
    } = require_custom_elements();
    var JSDOMParse5Adapter = class {
      constructor(documentImpl, options = {}) {
        this._documentImpl = documentImpl;
        this._globalObject = documentImpl._globalObject;
        this._fragment = options.fragment || false;
        this._currentElement = void 0;
      }
      _ownerDocument() {
        const { _currentElement } = this;
        if (_currentElement) {
          return _currentElement.localName === "template" && _currentElement.namespaceURI === HTML_NS ? _currentElement.content._ownerDocument : _currentElement._ownerDocument;
        }
        return this._documentImpl;
      }
      createDocument() {
        return this._documentImpl;
      }
      createDocumentFragment() {
        const ownerDocument = this._ownerDocument();
        return DocumentFragment2.createImpl(this._globalObject, [], { ownerDocument });
      }
      // https://html.spec.whatwg.org/#create-an-element-for-the-token
      createElement(localName, namespace, attrs) {
        const ownerDocument = this._ownerDocument();
        const isAttribute = attrs.find((attr) => attr.name === "is");
        const isValue = isAttribute ? isAttribute.value : null;
        const definition = lookupCEDefinition(ownerDocument, namespace, localName);
        let willExecuteScript = false;
        if (definition !== null && !this._fragment) {
          willExecuteScript = true;
        }
        if (willExecuteScript) {
          ownerDocument._throwOnDynamicMarkupInsertionCounter++;
          customElementReactionsStack.push([]);
        }
        const element = createElement11(ownerDocument, localName, namespace, null, isValue, willExecuteScript);
        this.adoptAttributes(element, attrs);
        if (willExecuteScript) {
          const queue = customElementReactionsStack.pop();
          invokeCEReactions(queue);
          ownerDocument._throwOnDynamicMarkupInsertionCounter--;
        }
        if ("_parserInserted" in element) {
          element._parserInserted = true;
        }
        return element;
      }
      createCommentNode(data2) {
        const ownerDocument = this._ownerDocument();
        return Comment.createImpl(this._globalObject, [], { data: data2, ownerDocument });
      }
      appendChild(parentNode, newNode) {
        parentNode._append(newNode);
      }
      insertBefore(parentNode, newNode, referenceNode) {
        parentNode._insert(newNode, referenceNode);
      }
      setTemplateContent(templateElement, contentFragment) {
        const { _ownerDocument, _host } = templateElement._templateContents;
        contentFragment._ownerDocument = _ownerDocument;
        contentFragment._host = _host;
        templateElement._templateContents = contentFragment;
      }
      setDocumentType(document2, name, publicId, systemId) {
        const ownerDocument = this._ownerDocument();
        const documentType = DocumentType.createImpl(this._globalObject, [], { name, publicId, systemId, ownerDocument });
        document2._append(documentType);
      }
      setDocumentMode(document2, mode) {
        document2._mode = mode;
      }
      detachNode(node) {
        node.remove();
      }
      insertText(parentNode, text) {
        const { lastChild } = parentNode;
        if (lastChild && lastChild.nodeType === nodeTypes.TEXT_NODE) {
          lastChild.data += text;
        } else {
          const ownerDocument = this._ownerDocument();
          const textNode = Text2.createImpl(this._globalObject, [], { data: text, ownerDocument });
          parentNode._append(textNode);
        }
      }
      insertTextBefore(parentNode, text, referenceNode) {
        const { previousSibling } = referenceNode;
        if (previousSibling && previousSibling.nodeType === nodeTypes.TEXT_NODE) {
          previousSibling.data += text;
        } else {
          const ownerDocument = this._ownerDocument();
          const textNode = Text2.createImpl(this._globalObject, [], { data: text, ownerDocument });
          parentNode._append(textNode, referenceNode);
        }
      }
      adoptAttributes(element, attrs) {
        for (const attr of attrs) {
          const prefix = attr.prefix === "" ? null : attr.prefix;
          attributes2.setAttributeValue(element, attr.name, attr.value, prefix, attr.namespace);
        }
      }
      onItemPush(after) {
        this._currentElement = after;
        after._pushedOnStackOfOpenElements?.();
      }
      onItemPop(before, newTop) {
        this._currentElement = newTop;
        before._poppedOffStackOfOpenElements?.();
      }
    };
    Object.assign(JSDOMParse5Adapter.prototype, serializationAdapter);
    function parseFragment(markup, contextElement) {
      const ownerDocument = contextElement.localName === "template" && contextElement.namespaceURI === HTML_NS ? contextElement.content._ownerDocument : contextElement._ownerDocument;
      const config = {
        ...ownerDocument._parseOptions,
        sourceCodeLocationInfo: false,
        treeAdapter: new JSDOMParse5Adapter(ownerDocument, { fragment: true })
      };
      return parse5.parseFragment(contextElement, markup, config);
    }
    function parseIntoDocument(markup, ownerDocument) {
      const config = {
        ...ownerDocument._parseOptions,
        treeAdapter: new JSDOMParse5Adapter(ownerDocument)
      };
      return parse5.parse(markup, config);
    }
    module.exports = {
      parseFragment,
      parseIntoDocument
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/parser/index.js
var require_parser3 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/parser/index.js"(exports, module) {
    "use strict";
    var xmlParser = require_xml();
    var htmlParser = require_html2();
    function parseFragment(markup, contextElement) {
      const { _parsingMode } = contextElement._ownerDocument;
      let parseAlgorithm;
      if (_parsingMode === "html") {
        parseAlgorithm = htmlParser.parseFragment;
      } else if (_parsingMode === "xml") {
        parseAlgorithm = xmlParser.parseFragment;
      }
      return parseAlgorithm(markup, contextElement);
    }
    function parseIntoDocument(markup, ownerDocument) {
      const { _parsingMode } = ownerDocument;
      let parseAlgorithm;
      if (_parsingMode === "html") {
        parseAlgorithm = htmlParser.parseIntoDocument;
      } else if (_parsingMode === "xml") {
        parseAlgorithm = xmlParser.parseIntoDocument;
      }
      return parseAlgorithm(markup, ownerDocument);
    }
    module.exports = {
      parseFragment,
      parseIntoDocument
    };
  }
});

// ../../node_modules/.pnpm/w3c-xmlserializer@5.0.0/node_modules/w3c-xmlserializer/lib/constants.js
var require_constants9 = __commonJS({
  "../../node_modules/.pnpm/w3c-xmlserializer@5.0.0/node_modules/w3c-xmlserializer/lib/constants.js"(exports, module) {
    "use strict";
    module.exports.NAMESPACES = {
      HTML: "http://www.w3.org/1999/xhtml",
      XML: "http://www.w3.org/XML/1998/namespace",
      XMLNS: "http://www.w3.org/2000/xmlns/"
    };
    module.exports.NODE_TYPES = {
      ELEMENT_NODE: 1,
      ATTRIBUTE_NODE: 2,
      // historical
      TEXT_NODE: 3,
      CDATA_SECTION_NODE: 4,
      ENTITY_REFERENCE_NODE: 5,
      // historical
      ENTITY_NODE: 6,
      // historical
      PROCESSING_INSTRUCTION_NODE: 7,
      COMMENT_NODE: 8,
      DOCUMENT_NODE: 9,
      DOCUMENT_TYPE_NODE: 10,
      DOCUMENT_FRAGMENT_NODE: 11,
      NOTATION_NODE: 12
      // historical
    };
    module.exports.VOID_ELEMENTS = /* @__PURE__ */ new Set([
      "area",
      "base",
      "basefont",
      "bgsound",
      "br",
      "col",
      "embed",
      "frame",
      "hr",
      "img",
      "input",
      "keygen",
      "link",
      "menuitem",
      "meta",
      "param",
      "source",
      "track",
      "wbr"
    ]);
  }
});

// ../../node_modules/.pnpm/w3c-xmlserializer@5.0.0/node_modules/w3c-xmlserializer/lib/attributes.js
var require_attributes4 = __commonJS({
  "../../node_modules/.pnpm/w3c-xmlserializer@5.0.0/node_modules/w3c-xmlserializer/lib/attributes.js"(exports, module) {
    "use strict";
    var xnv = require_xml_name_validator();
    var { NAMESPACES } = require_constants9();
    function generatePrefix(map, newNamespace, prefixIndex) {
      const generatedPrefix = `ns${prefixIndex}`;
      map[newNamespace] = [generatedPrefix];
      return generatedPrefix;
    }
    function preferredPrefixString(map, ns, preferredPrefix) {
      const candidateList = map[ns];
      if (!candidateList) {
        return null;
      }
      if (candidateList.includes(preferredPrefix)) {
        return preferredPrefix;
      }
      return candidateList[candidateList.length - 1];
    }
    function serializeAttributeValue(value2) {
      if (value2 === null) {
        return "";
      }
      return value2.replace(/&/ug, "&amp;").replace(/"/ug, "&quot;").replace(/</ug, "&lt;").replace(/>/ug, "&gt;").replace(/\t/ug, "&#x9;").replace(/\n/ug, "&#xA;").replace(/\r/ug, "&#xD;");
    }
    function serializeAttributes(element, map, localPrefixes, ignoreNamespaceDefAttr, requireWellFormed, refs) {
      let result = "";
      const namespaceLocalnames = /* @__PURE__ */ Object.create(null);
      for (const attr of element.attributes) {
        if (requireWellFormed && namespaceLocalnames[attr.namespaceURI] && namespaceLocalnames[attr.namespaceURI].has(attr.localName)) {
          throw new Error("Found duplicated attribute");
        }
        if (!namespaceLocalnames[attr.namespaceURI]) {
          namespaceLocalnames[attr.namespaceURI] = /* @__PURE__ */ new Set();
        }
        namespaceLocalnames[attr.namespaceURI].add(attr.localName);
        const attributeNamespace = attr.namespaceURI;
        let candidatePrefix = null;
        if (attributeNamespace !== null) {
          candidatePrefix = preferredPrefixString(
            map,
            attributeNamespace,
            attr.prefix
          );
          if (attributeNamespace === NAMESPACES.XMLNS) {
            if (attr.value === NAMESPACES.XML || attr.prefix === null && ignoreNamespaceDefAttr || attr.prefix !== null && localPrefixes[attr.localName] !== attr.value && map[attr.value].includes(attr.localName)) {
              continue;
            }
            if (requireWellFormed && attr.value === NAMESPACES.XMLNS) {
              throw new Error(
                "The XMLNS namespace is reserved and cannot be applied as an element's namespace via XML parsing"
              );
            }
            if (requireWellFormed && attr.value === "") {
              throw new Error(
                "Namespace prefix declarations cannot be used to undeclare a namespace"
              );
            }
            if (attr.prefix === "xmlns") {
              candidatePrefix = "xmlns";
            }
          } else if (candidatePrefix === null) {
            candidatePrefix = generatePrefix(
              map,
              attributeNamespace,
              refs.prefixIndex++
            );
            result += ` xmlns:${candidatePrefix}="${serializeAttributeValue(
              attributeNamespace,
              requireWellFormed
            )}"`;
          }
        }
        result += " ";
        if (candidatePrefix !== null) {
          result += `${candidatePrefix}:`;
        }
        if (requireWellFormed && (attr.localName.includes(":") || !xnv.name(attr.localName) || attr.localName === "xmlns" && attributeNamespace === null)) {
          throw new Error("Invalid attribute localName value");
        }
        result += `${attr.localName}="${serializeAttributeValue(attr.value, requireWellFormed)}"`;
      }
      return result;
    }
    module.exports.preferredPrefixString = preferredPrefixString;
    module.exports.generatePrefix = generatePrefix;
    module.exports.serializeAttributeValue = serializeAttributeValue;
    module.exports.serializeAttributes = serializeAttributes;
  }
});

// ../../node_modules/.pnpm/w3c-xmlserializer@5.0.0/node_modules/w3c-xmlserializer/lib/serialize.js
var require_serialize = __commonJS({
  "../../node_modules/.pnpm/w3c-xmlserializer@5.0.0/node_modules/w3c-xmlserializer/lib/serialize.js"(exports, module) {
    "use strict";
    var xnv = require_xml_name_validator();
    var attributeUtils = require_attributes4();
    var { NAMESPACES, VOID_ELEMENTS, NODE_TYPES } = require_constants9();
    var XML_CHAR = /^(\x09|\x0A|\x0D|[\x20-\uD7FF]|[\uE000-\uFFFD]|[\u{10000}-\u{10FFFF}])*$/u;
    var PUBID_CHAR = /^(\x20|\x0D|\x0A|[a-zA-Z0-9]|[-'()+,./:=?;!*#@$_%])*$/u;
    function asciiCaseInsensitiveMatch(a5, b3) {
      if (a5.length !== b3.length) {
        return false;
      }
      for (let i5 = 0; i5 < a5.length; ++i5) {
        if ((a5.charCodeAt(i5) | 32) !== (b3.charCodeAt(i5) | 32)) {
          return false;
        }
      }
      return true;
    }
    function recordNamespaceInformation(element, map, prefixMap) {
      let defaultNamespaceAttrValue = null;
      for (let i5 = 0; i5 < element.attributes.length; ++i5) {
        const attr = element.attributes[i5];
        if (attr.namespaceURI === NAMESPACES.XMLNS) {
          if (attr.prefix === null) {
            defaultNamespaceAttrValue = attr.value;
            continue;
          }
          let namespaceDefinition = attr.value;
          if (namespaceDefinition === NAMESPACES.XML) {
            continue;
          }
          if (namespaceDefinition === null) {
            namespaceDefinition = "";
          }
          if (namespaceDefinition in map && map[namespaceDefinition].includes(attr.localName)) {
            continue;
          }
          if (!(namespaceDefinition in map)) {
            map[namespaceDefinition] = [];
          }
          map[namespaceDefinition].push(attr.localName);
          prefixMap[attr.localName] = namespaceDefinition;
        }
      }
      return defaultNamespaceAttrValue;
    }
    function serializeDocumentType(node, namespace, prefixMap, requireWellFormed) {
      if (requireWellFormed && !PUBID_CHAR.test(node.publicId)) {
        throw new Error("Failed to serialize XML: document type node publicId is not well-formed.");
      }
      if (requireWellFormed && (!XML_CHAR.test(node.systemId) || node.systemId.includes('"') && node.systemId.includes("'"))) {
        throw new Error("Failed to serialize XML: document type node systemId is not well-formed.");
      }
      let markup = `<!DOCTYPE ${node.name}`;
      if (node.publicId !== "") {
        markup += ` PUBLIC "${node.publicId}"`;
      } else if (node.systemId !== "") {
        markup += " SYSTEM";
      }
      if (node.systemId !== "") {
        markup += ` "${node.systemId}"`;
      }
      return `${markup}>`;
    }
    function serializeProcessingInstruction(node, namespace, prefixMap, requireWellFormed) {
      if (requireWellFormed && (node.target.includes(":") || asciiCaseInsensitiveMatch(node.target, "xml"))) {
        throw new Error("Failed to serialize XML: processing instruction node target is not well-formed.");
      }
      if (requireWellFormed && (!XML_CHAR.test(node.data) || node.data.includes("?>"))) {
        throw new Error("Failed to serialize XML: processing instruction node data is not well-formed.");
      }
      return `<?${node.target} ${node.data}?>`;
    }
    function serializeDocument(node, namespace, prefixMap, requireWellFormed, refs) {
      if (requireWellFormed && node.documentElement === null) {
        throw new Error("Failed to serialize XML: document does not have a document element.");
      }
      let serializedDocument = "";
      for (const child of node.childNodes) {
        serializedDocument += xmlSerialization(
          child,
          namespace,
          prefixMap,
          requireWellFormed,
          refs
        );
      }
      return serializedDocument;
    }
    function serializeDocumentFragment(node, namespace, prefixMap, requireWellFormed, refs) {
      let markup = "";
      for (const child of node.childNodes) {
        markup += xmlSerialization(
          child,
          namespace,
          prefixMap,
          requireWellFormed,
          refs
        );
      }
      return markup;
    }
    function serializeText(node, namespace, prefixMap, requireWellFormed) {
      if (requireWellFormed && !XML_CHAR.test(node.data)) {
        throw new Error("Failed to serialize XML: text node data is not well-formed.");
      }
      return node.data.replace(/&/ug, "&amp;").replace(/</ug, "&lt;").replace(/>/ug, "&gt;");
    }
    function serializeComment(node, namespace, prefixMap, requireWellFormed) {
      if (requireWellFormed && !XML_CHAR.test(node.data)) {
        throw new Error("Failed to serialize XML: comment node data is not well-formed.");
      }
      if (requireWellFormed && (node.data.includes("--") || node.data.endsWith("-"))) {
        throw new Error("Failed to serialize XML: found hyphens in illegal places in comment node data.");
      }
      return `<!--${node.data}-->`;
    }
    function serializeElement(node, namespace, prefixMap, requireWellFormed, refs) {
      if (requireWellFormed && (node.localName.includes(":") || !xnv.name(node.localName))) {
        throw new Error("Failed to serialize XML: element node localName is not a valid XML name.");
      }
      let markup = "<";
      let qualifiedName = "";
      let skipEndTag = false;
      let ignoreNamespaceDefinitionAttr = false;
      const map = { ...prefixMap };
      const localPrefixesMap = /* @__PURE__ */ Object.create(null);
      const localDefaultNamespace = recordNamespaceInformation(
        node,
        map,
        localPrefixesMap
      );
      let inheritedNs = namespace;
      const ns = node.namespaceURI;
      if (inheritedNs === ns) {
        if (localDefaultNamespace !== null) {
          ignoreNamespaceDefinitionAttr = true;
        }
        if (ns === NAMESPACES.XML) {
          qualifiedName = `xml:${node.localName}`;
        } else {
          qualifiedName = node.localName;
        }
        markup += qualifiedName;
      } else {
        let { prefix } = node;
        let candidatePrefix = attributeUtils.preferredPrefixString(map, ns, prefix);
        if (prefix === "xmlns") {
          if (requireWellFormed) {
            throw new Error(`Failed to serialize XML: element nodes can't have a prefix of "xmlns".`);
          }
          candidatePrefix = "xmlns";
        }
        if (candidatePrefix !== null) {
          qualifiedName = `${candidatePrefix}:${node.localName}`;
          if (localDefaultNamespace !== null && localDefaultNamespace !== NAMESPACES.XML) {
            inheritedNs = localDefaultNamespace === "" ? null : localDefaultNamespace;
          }
          markup += qualifiedName;
        } else if (prefix !== null) {
          if (prefix in localPrefixesMap) {
            prefix = attributeUtils.generatePrefix(map, ns, refs.prefixIndex++);
          }
          if (map[ns]) {
            map[ns].push(prefix);
          } else {
            map[ns] = [prefix];
          }
          qualifiedName = `${prefix}:${node.localName}`;
          markup += `${qualifiedName} xmlns:${prefix}="${attributeUtils.serializeAttributeValue(ns, requireWellFormed)}"`;
          if (localDefaultNamespace !== null) {
            inheritedNs = localDefaultNamespace === "" ? null : localDefaultNamespace;
          }
        } else if (localDefaultNamespace === null || localDefaultNamespace !== ns) {
          ignoreNamespaceDefinitionAttr = true;
          qualifiedName = node.localName;
          inheritedNs = ns;
          markup += `${qualifiedName} xmlns="${attributeUtils.serializeAttributeValue(ns, requireWellFormed)}"`;
        } else {
          qualifiedName = node.localName;
          inheritedNs = ns;
          markup += qualifiedName;
        }
      }
      markup += attributeUtils.serializeAttributes(
        node,
        map,
        localPrefixesMap,
        ignoreNamespaceDefinitionAttr,
        requireWellFormed,
        refs
      );
      if (ns === NAMESPACES.HTML && node.childNodes.length === 0 && VOID_ELEMENTS.has(node.localName)) {
        markup += " /";
        skipEndTag = true;
      } else if (ns !== NAMESPACES.HTML && node.childNodes.length === 0) {
        markup += "/";
        skipEndTag = true;
      }
      markup += ">";
      if (skipEndTag) {
        return markup;
      }
      if (ns === NAMESPACES.HTML && node.localName === "template") {
        markup += xmlSerialization(
          node.content,
          inheritedNs,
          map,
          requireWellFormed,
          refs
        );
      } else {
        for (const child of node.childNodes) {
          markup += xmlSerialization(
            child,
            inheritedNs,
            map,
            requireWellFormed,
            refs
          );
        }
      }
      markup += `</${qualifiedName}>`;
      return markup;
    }
    function serializeCDATASection(node) {
      return `<![CDATA[${node.data}]]>`;
    }
    function xmlSerialization(node, namespace, prefixMap, requireWellFormed, refs) {
      switch (node.nodeType) {
        case NODE_TYPES.ELEMENT_NODE:
          return serializeElement(
            node,
            namespace,
            prefixMap,
            requireWellFormed,
            refs
          );
        case NODE_TYPES.DOCUMENT_NODE:
          return serializeDocument(
            node,
            namespace,
            prefixMap,
            requireWellFormed,
            refs
          );
        case NODE_TYPES.COMMENT_NODE:
          return serializeComment(node, namespace, prefixMap, requireWellFormed);
        case NODE_TYPES.TEXT_NODE:
          return serializeText(node, namespace, prefixMap, requireWellFormed);
        case NODE_TYPES.DOCUMENT_FRAGMENT_NODE:
          return serializeDocumentFragment(
            node,
            namespace,
            prefixMap,
            requireWellFormed,
            refs
          );
        case NODE_TYPES.DOCUMENT_TYPE_NODE:
          return serializeDocumentType(
            node,
            namespace,
            prefixMap,
            requireWellFormed
          );
        case NODE_TYPES.PROCESSING_INSTRUCTION_NODE:
          return serializeProcessingInstruction(
            node,
            namespace,
            prefixMap,
            requireWellFormed
          );
        case NODE_TYPES.ATTRIBUTE_NODE:
          return "";
        case NODE_TYPES.CDATA_SECTION_NODE:
          return serializeCDATASection(node);
        default:
          throw new TypeError("Failed to serialize XML: only Nodes can be serialized.");
      }
    }
    module.exports = (root, { requireWellFormed = false } = {}) => {
      const namespacePrefixMap = /* @__PURE__ */ Object.create(null);
      namespacePrefixMap["http://www.w3.org/XML/1998/namespace"] = ["xml"];
      return xmlSerialization(root, null, namespacePrefixMap, requireWellFormed, {
        prefixIndex: 1
      });
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js
var require_serialization2 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js"(exports, module) {
    "use strict";
    var produceXMLSerialization = require_serialize();
    var parse5 = require_cjs7();
    var DOMException2 = require_DOMException();
    var { domSymbolTree } = require_internal_constants();
    var utils2 = require_utils16();
    var treeAdapter = require_parse5_adapter_serialization();
    var NODE_TYPE = require_node_type();
    module.exports.fragmentSerialization = (node, { outer, requireWellFormed, globalObject }) => {
      const contextDocument = node.nodeType === NODE_TYPE.DOCUMENT_NODE ? node : node._ownerDocument;
      if (contextDocument._parsingMode === "html") {
        const config = {
          ...contextDocument._parseOptions,
          treeAdapter
        };
        return outer ? parse5.serializeOuter(node, config) : parse5.serialize(node, config);
      }
      const childNodes = outer ? [node] : domSymbolTree.childrenToArray(node);
      try {
        let serialized = "";
        for (let i5 = 0; i5 < childNodes.length; ++i5) {
          serialized += produceXMLSerialization(
            utils2.wrapperForImpl(childNodes[i5]),
            { requireWellFormed }
          );
        }
        return serialized;
      } catch (e4) {
        throw DOMException2.create(globalObject, [e4.message, "InvalidStateError"]);
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/domparsing/InnerHTML-impl.js
var require_InnerHTML_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/domparsing/InnerHTML-impl.js"(exports) {
    "use strict";
    var { parseFragment } = require_parser3();
    var { HTML_NS } = require_namespaces();
    var { isShadowRoot } = require_shadow_dom();
    var NODE_TYPE = require_node_type();
    var { fragmentSerialization } = require_serialization2();
    exports.implementation = class InnerHTMLImpl {
      // https://w3c.github.io/DOM-Parsing/#dom-innerhtml-innerhtml
      get innerHTML() {
        return fragmentSerialization(this, {
          outer: false,
          requireWellFormed: true,
          globalObject: this._globalObject
        });
      }
      set innerHTML(markup) {
        const contextElement = isShadowRoot(this) ? this.host : this;
        const fragment = parseFragment(markup, contextElement);
        let contextObject = this;
        if (this.nodeType === NODE_TYPE.ELEMENT_NODE && this.localName === "template" && this.namespaceURI === HTML_NS) {
          contextObject = this._templateContents;
        }
        contextObject._replaceAll(fragment);
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/DOMTokenList-impl.js
var require_DOMTokenList_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/DOMTokenList-impl.js"(exports) {
    "use strict";
    var DOMException2 = require_DOMException();
    var OrderedSet = require_ordered_set();
    var { asciiLowercase } = require_strings2();
    var idlUtils = require_utils16();
    var { getAttributeValue, setAttributeValue, hasAttributeByName } = require_attributes3();
    function validateTokens(globalObject, ...tokens) {
      for (const token of tokens) {
        if (token === "") {
          throw DOMException2.create(globalObject, ["The token provided must not be empty.", "SyntaxError"]);
        }
      }
      for (const token of tokens) {
        if (/[\t\n\f\r ]/.test(token)) {
          throw DOMException2.create(globalObject, [
            "The token provided contains HTML space characters, which are not valid in tokens.",
            "InvalidCharacterError"
          ]);
        }
      }
    }
    var DOMTokenListImpl = class {
      constructor(globalObject, args, privateData) {
        this._globalObject = globalObject;
        this._tokenSet = new OrderedSet();
        this._element = privateData.element;
        this._attributeLocalName = privateData.attributeLocalName;
        this._supportedTokens = privateData.supportedTokens;
        this._dirty = true;
      }
      attrModified() {
        this._dirty = true;
      }
      _syncWithElement() {
        if (!this._dirty) {
          return;
        }
        const val = getAttributeValue(this._element, this._attributeLocalName);
        if (val === null) {
          this._tokenSet.empty();
        } else {
          this._tokenSet = OrderedSet.parse(val);
        }
        this._dirty = false;
      }
      _validationSteps(token) {
        if (!this._supportedTokens) {
          throw new TypeError(`${this._attributeLocalName} attribute has no supported tokens`);
        }
        const lowerToken = asciiLowercase(token);
        return this._supportedTokens.has(lowerToken);
      }
      _updateSteps() {
        if (!hasAttributeByName(this._element, this._attributeLocalName) && this._tokenSet.isEmpty()) {
          return;
        }
        setAttributeValue(this._element, this._attributeLocalName, this._tokenSet.serialize());
      }
      _serializeSteps() {
        return getAttributeValue(this._element, this._attributeLocalName);
      }
      // Used by other parts of jsdom
      get tokenSet() {
        this._syncWithElement();
        return this._tokenSet;
      }
      get length() {
        this._syncWithElement();
        return this._tokenSet.size;
      }
      get [idlUtils.supportedPropertyIndices]() {
        this._syncWithElement();
        return this._tokenSet.keys();
      }
      item(index2) {
        this._syncWithElement();
        if (index2 >= this._tokenSet.size) {
          return null;
        }
        return this._tokenSet.get(index2);
      }
      contains(token) {
        this._syncWithElement();
        return this._tokenSet.contains(token);
      }
      add(...tokens) {
        for (const token of tokens) {
          validateTokens(this._globalObject, token);
        }
        this._syncWithElement();
        for (const token of tokens) {
          this._tokenSet.append(token);
        }
        this._updateSteps();
      }
      remove(...tokens) {
        for (const token of tokens) {
          validateTokens(this._globalObject, token);
        }
        this._syncWithElement();
        this._tokenSet.remove(...tokens);
        this._updateSteps();
      }
      toggle(token, force = void 0) {
        validateTokens(this._globalObject, token);
        this._syncWithElement();
        if (this._tokenSet.contains(token)) {
          if (force === void 0 || force === false) {
            this._tokenSet.remove(token);
            this._updateSteps();
            return false;
          }
          return true;
        }
        if (force === void 0 || force === true) {
          this._tokenSet.append(token);
          this._updateSteps();
          return true;
        }
        return false;
      }
      replace(token, newToken) {
        validateTokens(this._globalObject, token, newToken);
        this._syncWithElement();
        if (!this._tokenSet.contains(token)) {
          return false;
        }
        this._tokenSet.replace(token, newToken);
        this._updateSteps();
        return true;
      }
      supports(token) {
        return this._validationSteps(token);
      }
      get value() {
        return this._serializeSteps();
      }
      set value(V) {
        setAttributeValue(this._element, this._attributeLocalName, V);
      }
    };
    exports.implementation = DOMTokenListImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js
var require_DOMTokenList = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "DOMTokenList";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'DOMTokenList'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["DOMTokenList"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class DOMTokenList {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        item(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'item' called on an object that is not a valid instance of DOMTokenList.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'item' on 'DOMTokenList': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'item' on 'DOMTokenList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].item(...args);
        }
        contains(token) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'contains' called on an object that is not a valid instance of DOMTokenList."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'contains' on 'DOMTokenList': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'contains' on 'DOMTokenList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].contains(...args);
        }
        add() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'add' called on an object that is not a valid instance of DOMTokenList.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'add' on 'DOMTokenList': parameter " + (i5 + 1),
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].add(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        remove() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'remove' called on an object that is not a valid instance of DOMTokenList.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'remove' on 'DOMTokenList': parameter " + (i5 + 1),
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].remove(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        toggle(token) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'toggle' called on an object that is not a valid instance of DOMTokenList.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'toggle' on 'DOMTokenList': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'toggle' on 'DOMTokenList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'toggle' on 'DOMTokenList': parameter 2",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].toggle(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        replace(token, newToken) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'replace' called on an object that is not a valid instance of DOMTokenList.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'replace' on 'DOMTokenList': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'replace' on 'DOMTokenList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'replace' on 'DOMTokenList': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].replace(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        supports(token) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'supports' called on an object that is not a valid instance of DOMTokenList."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'supports' on 'DOMTokenList': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'supports' on 'DOMTokenList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].supports(...args);
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get length' called on an object that is not a valid instance of DOMTokenList."
            );
          }
          return esValue[implSymbol]["length"];
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get value' called on an object that is not a valid instance of DOMTokenList."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["value"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set value' called on an object that is not a valid instance of DOMTokenList."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'value' property on 'DOMTokenList': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["value"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        toString() {
          const esValue = this;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'toString' called on an object that is not a valid instance of DOMTokenList."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["value"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(DOMTokenList.prototype, {
        item: { enumerable: true },
        contains: { enumerable: true },
        add: { enumerable: true },
        remove: { enumerable: true },
        toggle: { enumerable: true },
        replace: { enumerable: true },
        supports: { enumerable: true },
        length: { enumerable: true },
        value: { enumerable: true },
        toString: { enumerable: true },
        [Symbol.toStringTag]: { value: "DOMTokenList", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true },
        keys: { value: globalObject.Array.prototype.keys, configurable: true, enumerable: true, writable: true },
        values: { value: globalObject.Array.prototype.values, configurable: true, enumerable: true, writable: true },
        entries: { value: globalObject.Array.prototype.entries, configurable: true, enumerable: true, writable: true },
        forEach: { value: globalObject.Array.prototype.forEach, configurable: true, enumerable: true, writable: true }
      });
      ctorRegistry[interfaceName] = DOMTokenList;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: DOMTokenList
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            return {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            ownDesc = {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          return false;
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !(target[implSymbol].item(index2) !== null);
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_DOMTokenList_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/DocumentOrShadowRoot-impl.js
var require_DocumentOrShadowRoot_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/DocumentOrShadowRoot-impl.js"(exports, module) {
    "use strict";
    var NODE_TYPE = require_node_type();
    var { nodeRoot } = require_node4();
    var { retarget } = require_shadow_dom();
    var DocumentOrShadowRootImpl = class {
      get activeElement() {
        let candidate = this._ownerDocument._lastFocusedElement || this._ownerDocument.body;
        if (!candidate) {
          return null;
        }
        candidate = retarget(candidate, this);
        if (nodeRoot(candidate) !== this) {
          return null;
        }
        if (candidate.nodeType !== NODE_TYPE.DOCUMENT_NODE) {
          return candidate;
        }
        if (candidate.body !== null) {
          return candidate.body;
        }
        return candidate.documentElement;
      }
    };
    module.exports = {
      implementation: DocumentOrShadowRootImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/ShadowRoot-impl.js
var require_ShadowRoot_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/ShadowRoot-impl.js"(exports, module) {
    "use strict";
    var { nodeRoot } = require_node4();
    var { mixin: mixin2 } = require_utils17();
    var DocumentFragment2 = require_DocumentFragment_impl().implementation;
    var DocumentOrShadowRootImpl = require_DocumentOrShadowRoot_impl().implementation;
    var InnerHTMLImpl = require_InnerHTML_impl().implementation;
    var ShadowRootImpl = class extends DocumentFragment2 {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        const { mode } = privateData;
        this._mode = mode;
        this._availableToElementInternals = false;
      }
      _getTheParent(event) {
        if (!event.composed && this === nodeRoot(event._path[0].item)) {
          return null;
        }
        return this._host;
      }
      get mode() {
        return this._mode;
      }
      get host() {
        return this._host;
      }
    };
    mixin2(ShadowRootImpl.prototype, DocumentOrShadowRootImpl.prototype);
    mixin2(ShadowRootImpl.prototype, InnerHTMLImpl.prototype);
    module.exports = {
      implementation: ShadowRootImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ShadowRoot.js
var require_ShadowRoot = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ShadowRoot.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var DocumentFragment2 = require_DocumentFragment();
    var interfaceName = "ShadowRoot";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'ShadowRoot'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["ShadowRoot"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      DocumentFragment2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class ShadowRoot extends globalObject.DocumentFragment {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get mode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get mode' called on an object that is not a valid instance of ShadowRoot.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["mode"]);
        }
        get host() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get host' called on an object that is not a valid instance of ShadowRoot.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["host"]);
        }
        get innerHTML() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get innerHTML' called on an object that is not a valid instance of ShadowRoot."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["innerHTML"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set innerHTML(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set innerHTML' called on an object that is not a valid instance of ShadowRoot."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'innerHTML' property on 'ShadowRoot': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["innerHTML"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get activeElement() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get activeElement' called on an object that is not a valid instance of ShadowRoot."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["activeElement"]);
        }
      }
      Object.defineProperties(ShadowRoot.prototype, {
        mode: { enumerable: true },
        host: { enumerable: true },
        innerHTML: { enumerable: true },
        activeElement: { enumerable: true },
        [Symbol.toStringTag]: { value: "ShadowRoot", configurable: true }
      });
      ctorRegistry[interfaceName] = ShadowRoot;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: ShadowRoot
      });
    };
    var Impl = require_ShadowRoot_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js
var require_Element_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js"(exports, module) {
    "use strict";
    var { addNwsapi } = require_selectors();
    var { HTML_NS } = require_namespaces();
    var { mixin: mixin2, memoizeQuery } = require_utils17();
    var idlUtils = require_utils16();
    var NodeImpl = require_Node_impl().implementation;
    var ParentNodeImpl = require_ParentNode_impl().implementation;
    var ChildNodeImpl = require_ChildNode_impl().implementation;
    var attributes2 = require_attributes3();
    var namedPropertiesWindow = require_named_properties_window();
    var NODE_TYPE = require_node_type();
    var { parseFragment } = require_parser3();
    var InnerHTMLImpl = require_InnerHTML_impl().implementation;
    var { fragmentSerialization } = require_serialization2();
    var { domSymbolTree } = require_internal_constants();
    var DOMException2 = require_DOMException();
    var DOMTokenList = require_DOMTokenList();
    var NamedNodeMap = require_NamedNodeMap();
    var validateNames = require_validate_names();
    var { asciiLowercase, asciiUppercase } = require_strings2();
    var {
      listOfElementsWithQualifiedName,
      listOfElementsWithNamespaceAndLocalName,
      listOfElementsWithClassNames
    } = require_node5();
    var SlotableMixinImpl = require_Slotable_impl().implementation;
    var NonDocumentTypeChildNode = require_NonDocumentTypeChildNode_impl().implementation;
    var ShadowRoot = require_ShadowRoot();
    var Text2 = require_Text();
    var { isValidHostElementName } = require_shadow_dom();
    var { isValidCustomElementName, lookupCEDefinition } = require_custom_elements();
    function attachId(id, elm, doc) {
      if (id && elm && doc) {
        if (!doc._ids[id]) {
          doc._ids[id] = [];
        }
        doc._ids[id].push(elm);
      }
    }
    function detachId(id, elm, doc) {
      if (id && elm && doc) {
        if (doc._ids && doc._ids[id]) {
          const elms = doc._ids[id];
          for (let i5 = 0; i5 < elms.length; i5++) {
            if (elms[i5] === elm) {
              elms.splice(i5, 1);
              --i5;
            }
          }
          if (elms.length === 0) {
            delete doc._ids[id];
          }
        }
      }
    }
    var ElementImpl = class extends NodeImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._initSlotableMixin();
        this._namespaceURI = privateData.namespace;
        this._prefix = privateData.prefix;
        this._localName = privateData.localName;
        this._ceState = privateData.ceState;
        this._ceDefinition = privateData.ceDefinition;
        this._isValue = privateData.isValue;
        this._shadowRoot = null;
        this._ceReactionQueue = [];
        this.nodeType = NODE_TYPE.ELEMENT_NODE;
        this.scrollTop = 0;
        this.scrollLeft = 0;
        this._attributeList = [];
        this._attributesByNameMap = /* @__PURE__ */ new Map();
        this._attributes = null;
        this._cachedTagName = null;
      }
      _attach() {
        namedPropertiesWindow.nodeAttachedToDocument(this);
        const id = this.getAttributeNS(null, "id");
        if (id) {
          attachId(id, this, this._ownerDocument);
        }
        this._cachedTagName = null;
        super._attach();
      }
      _detach() {
        super._detach();
        namedPropertiesWindow.nodeDetachedFromDocument(this);
        const id = this.getAttributeNS(null, "id");
        if (id) {
          detachId(id, this, this._ownerDocument);
        }
      }
      _attrModified(name, value2, oldValue) {
        this._modified();
        namedPropertiesWindow.elementAttributeModified(this, name, value2, oldValue);
        if (name === "id" && this._attached) {
          const doc = this._ownerDocument;
          detachId(oldValue, this, doc);
          attachId(value2, this, doc);
        }
        if (name === "class" && this._classList !== void 0) {
          this._classList.attrModified();
        }
        this._attrModifiedSlotableMixin(name, value2, oldValue);
      }
      get namespaceURI() {
        return this._namespaceURI;
      }
      get prefix() {
        return this._prefix;
      }
      get localName() {
        return this._localName;
      }
      get _qualifiedName() {
        return this._prefix !== null ? this._prefix + ":" + this._localName : this._localName;
      }
      get tagName() {
        if (this._cachedTagName === null) {
          if (this._namespaceURI === HTML_NS && this._ownerDocument._parsingMode === "html") {
            this._cachedTagName = asciiUppercase(this._qualifiedName);
          } else {
            this._cachedTagName = this._qualifiedName;
          }
        }
        return this._cachedTagName;
      }
      get attributes() {
        if (!this._attributes) {
          this._attributes = NamedNodeMap.createImpl(this._globalObject, [], {
            element: this
          });
        }
        return this._attributes;
      }
      // https://w3c.github.io/DOM-Parsing/#dom-element-outerhtml
      get outerHTML() {
        return fragmentSerialization(this, {
          outer: true,
          requireWellFormed: true,
          globalObject: this._globalObject
        });
      }
      set outerHTML(markup) {
        let parent = domSymbolTree.parent(this);
        const document2 = this._ownerDocument;
        if (!parent) {
          return;
        }
        if (parent.nodeType === NODE_TYPE.DOCUMENT_NODE) {
          throw DOMException2.create(this._globalObject, [
            "Modifications are not allowed for this document",
            "NoModificationAllowedError"
          ]);
        }
        if (parent.nodeType === NODE_TYPE.DOCUMENT_FRAGMENT_NODE) {
          parent = document2.createElementNS(HTML_NS, "body");
        }
        const fragment = parseFragment(markup, parent);
        const contextObjectParent = domSymbolTree.parent(this);
        contextObjectParent._replace(fragment, this);
      }
      get classList() {
        if (this._classList === void 0) {
          this._classList = DOMTokenList.createImpl(this._globalObject, [], {
            element: this,
            attributeLocalName: "class"
          });
        }
        return this._classList;
      }
      hasAttributes() {
        return attributes2.hasAttributes(this);
      }
      getAttributeNames() {
        return attributes2.attributeNames(this);
      }
      getAttribute(name) {
        const attr = attributes2.getAttributeByName(this, name);
        if (!attr) {
          return null;
        }
        return attr._value;
      }
      getAttributeNS(namespace, localName) {
        const attr = attributes2.getAttributeByNameNS(this, namespace, localName);
        if (!attr) {
          return null;
        }
        return attr._value;
      }
      setAttribute(name, value2) {
        validateNames.name(this._globalObject, name);
        if (this._namespaceURI === HTML_NS && this._ownerDocument._parsingMode === "html") {
          name = asciiLowercase(name);
        }
        const attribute = attributes2.getAttributeByName(this, name);
        if (attribute === null) {
          const newAttr = this._ownerDocument._createAttribute({
            localName: name,
            value: value2
          });
          attributes2.appendAttribute(this, newAttr);
          return;
        }
        attributes2.changeAttribute(this, attribute, value2);
      }
      setAttributeNS(namespace, name, value2) {
        const extracted = validateNames.validateAndExtract(this._globalObject, namespace, name);
        value2 = `${value2}`;
        attributes2.setAttributeValue(this, extracted.localName, value2, extracted.prefix, extracted.namespace);
      }
      removeAttribute(name) {
        attributes2.removeAttributeByName(this, name);
      }
      removeAttributeNS(namespace, localName) {
        attributes2.removeAttributeByNameNS(this, namespace, localName);
      }
      toggleAttribute(qualifiedName, force) {
        validateNames.name(this._globalObject, qualifiedName);
        if (this._namespaceURI === HTML_NS && this._ownerDocument._parsingMode === "html") {
          qualifiedName = asciiLowercase(qualifiedName);
        }
        const attribute = attributes2.getAttributeByName(this, qualifiedName);
        if (attribute === null) {
          if (force === void 0 || force === true) {
            const newAttr = this._ownerDocument._createAttribute({
              localName: qualifiedName,
              value: ""
            });
            attributes2.appendAttribute(this, newAttr);
            return true;
          }
          return false;
        }
        if (force === void 0 || force === false) {
          attributes2.removeAttributeByName(this, qualifiedName);
          return false;
        }
        return true;
      }
      hasAttribute(name) {
        if (this._namespaceURI === HTML_NS && this._ownerDocument._parsingMode === "html") {
          name = asciiLowercase(name);
        }
        return attributes2.hasAttributeByName(this, name);
      }
      hasAttributeNS(namespace, localName) {
        if (namespace === "") {
          namespace = null;
        }
        return attributes2.hasAttributeByNameNS(this, namespace, localName);
      }
      getAttributeNode(name) {
        return attributes2.getAttributeByName(this, name);
      }
      getAttributeNodeNS(namespace, localName) {
        return attributes2.getAttributeByNameNS(this, namespace, localName);
      }
      setAttributeNode(attr) {
        return attributes2.setAttribute(this, attr);
      }
      setAttributeNodeNS(attr) {
        return attributes2.setAttribute(this, attr);
      }
      removeAttributeNode(attr) {
        if (!attributes2.hasAttribute(this, attr)) {
          throw DOMException2.create(this._globalObject, [
            "Tried to remove an attribute that was not present",
            "NotFoundError"
          ]);
        }
        attributes2.removeAttribute(this, attr);
        return attr;
      }
      getBoundingClientRect() {
        return {
          x: 0,
          y: 0,
          bottom: 0,
          height: 0,
          left: 0,
          right: 0,
          top: 0,
          width: 0
        };
      }
      getClientRects() {
        return [];
      }
      get scrollWidth() {
        return 0;
      }
      get scrollHeight() {
        return 0;
      }
      get clientTop() {
        return 0;
      }
      get clientLeft() {
        return 0;
      }
      get clientWidth() {
        return 0;
      }
      get clientHeight() {
        return 0;
      }
      // https://dom.spec.whatwg.org/#dom-element-attachshadow
      attachShadow(init3) {
        const { _ownerDocument, _namespaceURI, _localName, _isValue } = this;
        if (this.namespaceURI !== HTML_NS) {
          throw DOMException2.create(this._globalObject, [
            "This element does not support attachShadow. This element is not part of the HTML namespace.",
            "NotSupportedError"
          ]);
        }
        if (!isValidHostElementName(_localName) && !isValidCustomElementName(_localName)) {
          const message = "This element does not support attachShadow. This element is not a custom element nor a standard element supporting a shadow root.";
          throw DOMException2.create(this._globalObject, [message, "NotSupportedError"]);
        }
        if (isValidCustomElementName(_localName) || _isValue) {
          const definition = lookupCEDefinition(_ownerDocument, _namespaceURI, _localName, _isValue);
          if (definition && definition.disableShadow) {
            throw DOMException2.create(this._globalObject, [
              "Shadow root cannot be create on a custom element with disabled shadow",
              "NotSupportedError"
            ]);
          }
        }
        if (this._shadowRoot !== null) {
          throw DOMException2.create(this._globalObject, [
            "Shadow root cannot be created on a host which already hosts a shadow tree.",
            "NotSupportedError"
          ]);
        }
        const shadow = ShadowRoot.createImpl(this._globalObject, [], {
          ownerDocument: this.ownerDocument,
          mode: init3.mode,
          host: this
        });
        if (this._ceState === "precustomized" || this._ceState === "custom") {
          shadow._availableToElementInternals = true;
        }
        this._shadowRoot = shadow;
        return shadow;
      }
      // https://dom.spec.whatwg.org/#dom-element-shadowroot
      get shadowRoot() {
        const shadow = this._shadowRoot;
        if (shadow === null || shadow.mode === "closed") {
          return null;
        }
        return shadow;
      }
      // https://dom.spec.whatwg.org/#insert-adjacent
      _insertAdjacent(element, where, node) {
        where = asciiLowercase(where);
        if (where === "beforebegin") {
          if (element.parentNode === null) {
            return null;
          }
          return element.parentNode._preInsert(node, element);
        }
        if (where === "afterbegin") {
          return element._preInsert(node, element.firstChild);
        }
        if (where === "beforeend") {
          return element._preInsert(node, null);
        }
        if (where === "afterend") {
          if (element.parentNode === null) {
            return null;
          }
          return element.parentNode._preInsert(node, element.nextSibling);
        }
        throw DOMException2.create(this._globalObject, [
          'Must provide one of "beforebegin", "afterbegin", "beforeend", or "afterend".',
          "SyntaxError"
        ]);
      }
      insertAdjacentElement(where, element) {
        return this._insertAdjacent(this, where, element);
      }
      insertAdjacentText(where, data2) {
        const text = Text2.createImpl(this._globalObject, [], { data: data2, ownerDocument: this._ownerDocument });
        this._insertAdjacent(this, where, text);
      }
      // https://w3c.github.io/DOM-Parsing/#dom-element-insertadjacenthtml
      insertAdjacentHTML(position, text) {
        position = asciiLowercase(position);
        let context;
        switch (position) {
          case "beforebegin":
          case "afterend": {
            context = this.parentNode;
            if (context === null || context.nodeType === NODE_TYPE.DOCUMENT_NODE) {
              throw DOMException2.create(this._globalObject, [
                "Cannot insert HTML adjacent to parent-less nodes or children of document nodes.",
                "NoModificationAllowedError"
              ]);
            }
            break;
          }
          case "afterbegin":
          case "beforeend": {
            context = this;
            break;
          }
          default: {
            throw DOMException2.create(this._globalObject, [
              'Must provide one of "beforebegin", "afterbegin", "beforeend", or "afterend".',
              "SyntaxError"
            ]);
          }
        }
        if (context.nodeType !== NODE_TYPE.ELEMENT_NODE || context._ownerDocument._parsingMode === "html" && context._localName === "html" && context._namespaceURI === HTML_NS) {
          context = context._ownerDocument.createElement("body");
        }
        const fragment = parseFragment(text, context);
        switch (position) {
          case "beforebegin": {
            this.parentNode._insert(fragment, this);
            break;
          }
          case "afterbegin": {
            this._insert(fragment, this.firstChild);
            break;
          }
          case "beforeend": {
            this._append(fragment);
            break;
          }
          case "afterend": {
            this.parentNode._insert(fragment, this.nextSibling);
            break;
          }
        }
      }
      closest(selectors) {
        const matcher = addNwsapi(this);
        return matcher.closest(selectors, idlUtils.wrapperForImpl(this));
      }
      // https://html.spec.whatwg.org/#reflecting-content-attributes-in-idl-attributes
      _reflectGetTheElement() {
        return this;
      }
      _reflectGetTheContentAttribute(reflectedContentAttributeName) {
        return this.getAttributeNS(null, reflectedContentAttributeName);
      }
      _reflectSetTheContentAttribute(reflectedContentAttributeName, value2) {
        this.setAttributeNS(null, reflectedContentAttributeName, value2);
      }
      _reflectDeleteTheContentAttribute(reflectedContentAttributeName) {
        this.removeAttributeNS(null, reflectedContentAttributeName);
      }
    };
    mixin2(ElementImpl.prototype, NonDocumentTypeChildNode.prototype);
    mixin2(ElementImpl.prototype, ParentNodeImpl.prototype);
    mixin2(ElementImpl.prototype, ChildNodeImpl.prototype);
    mixin2(ElementImpl.prototype, SlotableMixinImpl.prototype);
    mixin2(ElementImpl.prototype, InnerHTMLImpl.prototype);
    ElementImpl.prototype.getElementsByTagName = memoizeQuery(function(qualifiedName) {
      return listOfElementsWithQualifiedName(qualifiedName, this);
    });
    ElementImpl.prototype.getElementsByTagNameNS = memoizeQuery(function(namespace, localName) {
      return listOfElementsWithNamespaceAndLocalName(namespace, localName, this);
    });
    ElementImpl.prototype.getElementsByClassName = memoizeQuery(function(classNames) {
      return listOfElementsWithClassNames(classNames, this);
    });
    ElementImpl.prototype.matches = function(selectors) {
      const matcher = addNwsapi(this);
      return matcher.match(selectors, idlUtils.wrapperForImpl(this));
    };
    ElementImpl.prototype.webkitMatchesSelector = ElementImpl.prototype.matches;
    module.exports = {
      implementation: ElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Element.js
var require_Element = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Element.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var Attr = require_Attr();
    var ShadowRootInit = require_ShadowRootInit();
    var Node = require_Node();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "Element";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Element'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Element"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Node._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Element2 extends globalObject.Node {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        hasAttributes() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'hasAttributes' called on an object that is not a valid instance of Element."
            );
          }
          return esValue[implSymbol].hasAttributes();
        }
        getAttributeNames() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getAttributeNames' called on an object that is not a valid instance of Element."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getAttributeNames());
        }
        getAttribute(qualifiedName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'getAttribute' called on an object that is not a valid instance of Element.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getAttribute' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getAttribute' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].getAttribute(...args);
        }
        getAttributeNS(namespace, localName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getAttributeNS' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'getAttributeNS' on 'Element': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'getAttributeNS' on 'Element': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getAttributeNS' on 'Element': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].getAttributeNS(...args);
        }
        setAttribute(qualifiedName, value2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'setAttribute' called on an object that is not a valid instance of Element.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'setAttribute' on 'Element': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'setAttribute' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'setAttribute' on 'Element': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].setAttribute(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        setAttributeNS(namespace, qualifiedName, value2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setAttributeNS' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 3) {
            throw new globalObject.TypeError(
              `Failed to execute 'setAttributeNS' on 'Element': 3 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'setAttributeNS' on 'Element': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'setAttributeNS' on 'Element': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'setAttributeNS' on 'Element': parameter 3",
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].setAttributeNS(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        removeAttribute(qualifiedName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'removeAttribute' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'removeAttribute' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'removeAttribute' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].removeAttribute(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        removeAttributeNS(namespace, localName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'removeAttributeNS' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'removeAttributeNS' on 'Element': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'removeAttributeNS' on 'Element': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'removeAttributeNS' on 'Element': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].removeAttributeNS(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        toggleAttribute(qualifiedName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'toggleAttribute' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'toggleAttribute' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'toggleAttribute' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'toggleAttribute' on 'Element': parameter 2",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].toggleAttribute(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        hasAttribute(qualifiedName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'hasAttribute' called on an object that is not a valid instance of Element.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'hasAttribute' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'hasAttribute' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].hasAttribute(...args);
        }
        hasAttributeNS(namespace, localName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'hasAttributeNS' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'hasAttributeNS' on 'Element': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'hasAttributeNS' on 'Element': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'hasAttributeNS' on 'Element': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].hasAttributeNS(...args);
        }
        getAttributeNode(qualifiedName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getAttributeNode' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getAttributeNode' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getAttributeNode' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getAttributeNode(...args));
        }
        getAttributeNodeNS(namespace, localName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getAttributeNodeNS' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'getAttributeNodeNS' on 'Element': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'getAttributeNodeNS' on 'Element': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getAttributeNodeNS' on 'Element': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getAttributeNodeNS(...args));
        }
        setAttributeNode(attr) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setAttributeNode' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setAttributeNode' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Attr.convert(globalObject, curArg, {
              context: "Failed to execute 'setAttributeNode' on 'Element': parameter 1"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].setAttributeNode(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        setAttributeNodeNS(attr) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setAttributeNodeNS' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setAttributeNodeNS' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Attr.convert(globalObject, curArg, {
              context: "Failed to execute 'setAttributeNodeNS' on 'Element': parameter 1"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].setAttributeNodeNS(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        removeAttributeNode(attr) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'removeAttributeNode' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'removeAttributeNode' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Attr.convert(globalObject, curArg, {
              context: "Failed to execute 'removeAttributeNode' on 'Element': parameter 1"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].removeAttributeNode(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        attachShadow(init3) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'attachShadow' called on an object that is not a valid instance of Element.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'attachShadow' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = ShadowRootInit.convert(globalObject, curArg, {
              context: "Failed to execute 'attachShadow' on 'Element': parameter 1"
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].attachShadow(...args));
        }
        closest(selectors) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'closest' called on an object that is not a valid instance of Element.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'closest' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'closest' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].closest(...args));
        }
        matches(selectors) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'matches' called on an object that is not a valid instance of Element.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'matches' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'matches' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].matches(...args);
        }
        webkitMatchesSelector(selectors) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'webkitMatchesSelector' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'webkitMatchesSelector' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'webkitMatchesSelector' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].webkitMatchesSelector(...args);
        }
        getElementsByTagName(qualifiedName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getElementsByTagName' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getElementsByTagName' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getElementsByTagName' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getElementsByTagName(...args));
        }
        getElementsByTagNameNS(namespace, localName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getElementsByTagNameNS' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'getElementsByTagNameNS' on 'Element': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'getElementsByTagNameNS' on 'Element': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getElementsByTagNameNS' on 'Element': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getElementsByTagNameNS(...args));
        }
        getElementsByClassName(classNames) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getElementsByClassName' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getElementsByClassName' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getElementsByClassName' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getElementsByClassName(...args));
        }
        insertAdjacentElement(where, element) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'insertAdjacentElement' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'insertAdjacentElement' on 'Element': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'insertAdjacentElement' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = exports.convert(globalObject, curArg, {
              context: "Failed to execute 'insertAdjacentElement' on 'Element': parameter 2"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].insertAdjacentElement(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        insertAdjacentText(where, data2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'insertAdjacentText' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'insertAdjacentText' on 'Element': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'insertAdjacentText' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'insertAdjacentText' on 'Element': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].insertAdjacentText(...args);
        }
        insertAdjacentHTML(position, text) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'insertAdjacentHTML' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'insertAdjacentHTML' on 'Element': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'insertAdjacentHTML' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'insertAdjacentHTML' on 'Element': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].insertAdjacentHTML(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        getClientRects() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getClientRects' called on an object that is not a valid instance of Element."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getClientRects());
        }
        getBoundingClientRect() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getBoundingClientRect' called on an object that is not a valid instance of Element."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getBoundingClientRect());
        }
        before() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'before' called on an object that is not a valid instance of Element.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'before' on 'Element': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].before(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        after() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'after' called on an object that is not a valid instance of Element.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'after' on 'Element': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].after(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        replaceWith() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'replaceWith' called on an object that is not a valid instance of Element.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'replaceWith' on 'Element': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].replaceWith(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        remove() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'remove' called on an object that is not a valid instance of Element.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].remove();
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        prepend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'prepend' called on an object that is not a valid instance of Element.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'prepend' on 'Element': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].prepend(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        append() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'append' called on an object that is not a valid instance of Element.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'append' on 'Element': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].append(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        replaceChildren() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'replaceChildren' called on an object that is not a valid instance of Element."
            );
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'replaceChildren' on 'Element': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].replaceChildren(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        querySelector(selectors) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'querySelector' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'querySelector' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'querySelector' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].querySelector(...args));
        }
        querySelectorAll(selectors) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'querySelectorAll' called on an object that is not a valid instance of Element."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'querySelectorAll' on 'Element': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'querySelectorAll' on 'Element': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].querySelectorAll(...args));
        }
        get namespaceURI() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get namespaceURI' called on an object that is not a valid instance of Element."
            );
          }
          return esValue[implSymbol]["namespaceURI"];
        }
        get prefix() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get prefix' called on an object that is not a valid instance of Element.");
          }
          return esValue[implSymbol]["prefix"];
        }
        get localName() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get localName' called on an object that is not a valid instance of Element."
            );
          }
          return esValue[implSymbol]["localName"];
        }
        get tagName() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get tagName' called on an object that is not a valid instance of Element.");
          }
          return esValue[implSymbol]["tagName"];
        }
        get id() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get id' called on an object that is not a valid instance of Element.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("id");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set id(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set id' called on an object that is not a valid instance of Element.");
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'id' property on 'Element': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("id", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get className() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get className' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("class");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set className(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set className' called on an object that is not a valid instance of Element."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'className' property on 'Element': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("class", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get classList() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get classList' called on an object that is not a valid instance of Element."
            );
          }
          return utils2.getSameObject(this, "classList", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["classList"]);
          });
        }
        set classList(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set classList' called on an object that is not a valid instance of Element."
            );
          }
          const Q = esValue["classList"];
          if (!utils2.isObject(Q)) {
            throw new globalObject.TypeError("Property 'classList' is not an object");
          }
          Reflect.set(Q, "value", V);
        }
        get slot() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get slot' called on an object that is not a valid instance of Element.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("slot");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set slot(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set slot' called on an object that is not a valid instance of Element.");
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'slot' property on 'Element': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("slot", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get attributes() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get attributes' called on an object that is not a valid instance of Element."
            );
          }
          return utils2.getSameObject(this, "attributes", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["attributes"]);
          });
        }
        get shadowRoot() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get shadowRoot' called on an object that is not a valid instance of Element."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["shadowRoot"]);
        }
        get outerHTML() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get outerHTML' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["outerHTML"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set outerHTML(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set outerHTML' called on an object that is not a valid instance of Element."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'outerHTML' property on 'Element': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["outerHTML"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get scrollTop() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get scrollTop' called on an object that is not a valid instance of Element."
            );
          }
          return esValue[implSymbol]["scrollTop"];
        }
        set scrollTop(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set scrollTop' called on an object that is not a valid instance of Element."
            );
          }
          V = conversions["unrestricted double"](V, {
            context: "Failed to set the 'scrollTop' property on 'Element': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["scrollTop"] = V;
        }
        get scrollLeft() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get scrollLeft' called on an object that is not a valid instance of Element."
            );
          }
          return esValue[implSymbol]["scrollLeft"];
        }
        set scrollLeft(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set scrollLeft' called on an object that is not a valid instance of Element."
            );
          }
          V = conversions["unrestricted double"](V, {
            context: "Failed to set the 'scrollLeft' property on 'Element': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["scrollLeft"] = V;
        }
        get scrollWidth() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get scrollWidth' called on an object that is not a valid instance of Element."
            );
          }
          return esValue[implSymbol]["scrollWidth"];
        }
        get scrollHeight() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get scrollHeight' called on an object that is not a valid instance of Element."
            );
          }
          return esValue[implSymbol]["scrollHeight"];
        }
        get clientTop() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get clientTop' called on an object that is not a valid instance of Element."
            );
          }
          return esValue[implSymbol]["clientTop"];
        }
        get clientLeft() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get clientLeft' called on an object that is not a valid instance of Element."
            );
          }
          return esValue[implSymbol]["clientLeft"];
        }
        get clientWidth() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get clientWidth' called on an object that is not a valid instance of Element."
            );
          }
          return esValue[implSymbol]["clientWidth"];
        }
        get clientHeight() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get clientHeight' called on an object that is not a valid instance of Element."
            );
          }
          return esValue[implSymbol]["clientHeight"];
        }
        get innerHTML() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get innerHTML' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["innerHTML"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set innerHTML(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set innerHTML' called on an object that is not a valid instance of Element."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'innerHTML' property on 'Element': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["innerHTML"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get role() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get role' called on an object that is not a valid instance of Element.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("role");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set role(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set role' called on an object that is not a valid instance of Element.");
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'role' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("role");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("role", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaAtomic() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaAtomic' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-atomic");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaAtomic(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaAtomic' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaAtomic' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-atomic");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-atomic", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaAutoComplete() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaAutoComplete' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-autocomplete");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaAutoComplete(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaAutoComplete' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaAutoComplete' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-autocomplete");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-autocomplete", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaBusy() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get ariaBusy' called on an object that is not a valid instance of Element.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-busy");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaBusy(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set ariaBusy' called on an object that is not a valid instance of Element.");
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaBusy' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-busy");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-busy", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaChecked() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaChecked' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-checked");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaChecked(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaChecked' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaChecked' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-checked");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-checked", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaColCount() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaColCount' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colcount");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaColCount(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaColCount' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaColCount' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colcount");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-colcount", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaColIndex() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaColIndex' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colindex");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaColIndex(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaColIndex' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaColIndex' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colindex");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-colindex", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaColIndexText() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaColIndexText' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colindextext");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaColIndexText(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaColIndexText' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaColIndexText' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colindextext");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-colindextext", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaColSpan() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaColSpan' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colspan");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaColSpan(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaColSpan' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaColSpan' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colspan");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-colspan", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaCurrent() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaCurrent' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-current");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaCurrent(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaCurrent' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaCurrent' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-current");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-current", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaDescription() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaDescription' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-description");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaDescription(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaDescription' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaDescription' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-description");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-description", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaDisabled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaDisabled' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-disabled");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaDisabled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaDisabled' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaDisabled' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-disabled");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-disabled", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaExpanded() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaExpanded' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-expanded");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaExpanded(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaExpanded' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaExpanded' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-expanded");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-expanded", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaHasPopup() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaHasPopup' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-haspopup");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaHasPopup(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaHasPopup' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaHasPopup' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-haspopup");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-haspopup", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaHidden() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaHidden' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-hidden");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaHidden(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaHidden' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaHidden' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-hidden");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-hidden", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaInvalid() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaInvalid' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-invalid");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaInvalid(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaInvalid' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaInvalid' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-invalid");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-invalid", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaKeyShortcuts() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaKeyShortcuts' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-keyshortcuts");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaKeyShortcuts(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaKeyShortcuts' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaKeyShortcuts' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-keyshortcuts");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-keyshortcuts", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaLabel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaLabel' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-label");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaLabel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaLabel' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaLabel' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-label");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-label", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaLevel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaLevel' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-level");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaLevel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaLevel' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaLevel' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-level");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-level", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaLive() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get ariaLive' called on an object that is not a valid instance of Element.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-live");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaLive(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set ariaLive' called on an object that is not a valid instance of Element.");
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaLive' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-live");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-live", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaModal() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaModal' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-modal");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaModal(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaModal' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaModal' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-modal");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-modal", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaMultiLine() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaMultiLine' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-multiline");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaMultiLine(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaMultiLine' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaMultiLine' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-multiline");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-multiline", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaMultiSelectable() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaMultiSelectable' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-multiselectable");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaMultiSelectable(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaMultiSelectable' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaMultiSelectable' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-multiselectable");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-multiselectable", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaOrientation() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaOrientation' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-orientation");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaOrientation(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaOrientation' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaOrientation' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-orientation");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-orientation", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaPlaceholder() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaPlaceholder' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-placeholder");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaPlaceholder(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaPlaceholder' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaPlaceholder' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-placeholder");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-placeholder", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaPosInSet() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaPosInSet' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-posinset");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaPosInSet(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaPosInSet' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaPosInSet' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-posinset");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-posinset", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaPressed() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaPressed' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-pressed");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaPressed(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaPressed' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaPressed' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-pressed");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-pressed", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaReadOnly() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaReadOnly' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-readonly");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaReadOnly(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaReadOnly' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaReadOnly' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-readonly");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-readonly", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRequired() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRequired' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-required");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRequired(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRequired' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRequired' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-required");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-required", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRoleDescription() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRoleDescription' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-roledescription");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRoleDescription(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRoleDescription' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRoleDescription' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-roledescription");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-roledescription", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRowCount() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRowCount' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowcount");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRowCount(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRowCount' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRowCount' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowcount");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowcount", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRowIndex() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRowIndex' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowindex");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRowIndex(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRowIndex' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRowIndex' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowindex");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowindex", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRowIndexText() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRowIndexText' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowindextext");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRowIndexText(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRowIndexText' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRowIndexText' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowindextext");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowindextext", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRowSpan() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRowSpan' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowspan");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRowSpan(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRowSpan' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRowSpan' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowspan");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowspan", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaSelected() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaSelected' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-selected");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaSelected(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaSelected' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaSelected' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-selected");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-selected", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaSetSize() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaSetSize' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-setsize");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaSetSize(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaSetSize' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaSetSize' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-setsize");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-setsize", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaSort() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get ariaSort' called on an object that is not a valid instance of Element.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-sort");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaSort(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set ariaSort' called on an object that is not a valid instance of Element.");
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaSort' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-sort");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-sort", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaValueMax() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaValueMax' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuemax");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaValueMax(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaValueMax' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaValueMax' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuemax");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuemax", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaValueMin() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaValueMin' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuemin");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaValueMin(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaValueMin' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaValueMin' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuemin");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuemin", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaValueNow() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaValueNow' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuenow");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaValueNow(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaValueNow' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaValueNow' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuenow");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuenow", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaValueText() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaValueText' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuetext");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaValueText(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaValueText' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaValueText' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuetext");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuetext", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRelevant() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRelevant' called on an object that is not a valid instance of Element."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-relevant");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRelevant(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRelevant' called on an object that is not a valid instance of Element."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRelevant' property on 'Element': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-relevant");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-relevant", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get previousElementSibling() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get previousElementSibling' called on an object that is not a valid instance of Element."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["previousElementSibling"]);
        }
        get nextElementSibling() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get nextElementSibling' called on an object that is not a valid instance of Element."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["nextElementSibling"]);
        }
        get children() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get children' called on an object that is not a valid instance of Element.");
          }
          return utils2.getSameObject(this, "children", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["children"]);
          });
        }
        get firstElementChild() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get firstElementChild' called on an object that is not a valid instance of Element."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["firstElementChild"]);
        }
        get lastElementChild() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get lastElementChild' called on an object that is not a valid instance of Element."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["lastElementChild"]);
        }
        get childElementCount() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get childElementCount' called on an object that is not a valid instance of Element."
            );
          }
          return esValue[implSymbol]["childElementCount"];
        }
        get assignedSlot() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get assignedSlot' called on an object that is not a valid instance of Element."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["assignedSlot"]);
        }
      }
      Object.defineProperties(Element2.prototype, {
        hasAttributes: { enumerable: true },
        getAttributeNames: { enumerable: true },
        getAttribute: { enumerable: true },
        getAttributeNS: { enumerable: true },
        setAttribute: { enumerable: true },
        setAttributeNS: { enumerable: true },
        removeAttribute: { enumerable: true },
        removeAttributeNS: { enumerable: true },
        toggleAttribute: { enumerable: true },
        hasAttribute: { enumerable: true },
        hasAttributeNS: { enumerable: true },
        getAttributeNode: { enumerable: true },
        getAttributeNodeNS: { enumerable: true },
        setAttributeNode: { enumerable: true },
        setAttributeNodeNS: { enumerable: true },
        removeAttributeNode: { enumerable: true },
        attachShadow: { enumerable: true },
        closest: { enumerable: true },
        matches: { enumerable: true },
        webkitMatchesSelector: { enumerable: true },
        getElementsByTagName: { enumerable: true },
        getElementsByTagNameNS: { enumerable: true },
        getElementsByClassName: { enumerable: true },
        insertAdjacentElement: { enumerable: true },
        insertAdjacentText: { enumerable: true },
        insertAdjacentHTML: { enumerable: true },
        getClientRects: { enumerable: true },
        getBoundingClientRect: { enumerable: true },
        before: { enumerable: true },
        after: { enumerable: true },
        replaceWith: { enumerable: true },
        remove: { enumerable: true },
        prepend: { enumerable: true },
        append: { enumerable: true },
        replaceChildren: { enumerable: true },
        querySelector: { enumerable: true },
        querySelectorAll: { enumerable: true },
        namespaceURI: { enumerable: true },
        prefix: { enumerable: true },
        localName: { enumerable: true },
        tagName: { enumerable: true },
        id: { enumerable: true },
        className: { enumerable: true },
        classList: { enumerable: true },
        slot: { enumerable: true },
        attributes: { enumerable: true },
        shadowRoot: { enumerable: true },
        outerHTML: { enumerable: true },
        scrollTop: { enumerable: true },
        scrollLeft: { enumerable: true },
        scrollWidth: { enumerable: true },
        scrollHeight: { enumerable: true },
        clientTop: { enumerable: true },
        clientLeft: { enumerable: true },
        clientWidth: { enumerable: true },
        clientHeight: { enumerable: true },
        innerHTML: { enumerable: true },
        role: { enumerable: true },
        ariaAtomic: { enumerable: true },
        ariaAutoComplete: { enumerable: true },
        ariaBusy: { enumerable: true },
        ariaChecked: { enumerable: true },
        ariaColCount: { enumerable: true },
        ariaColIndex: { enumerable: true },
        ariaColIndexText: { enumerable: true },
        ariaColSpan: { enumerable: true },
        ariaCurrent: { enumerable: true },
        ariaDescription: { enumerable: true },
        ariaDisabled: { enumerable: true },
        ariaExpanded: { enumerable: true },
        ariaHasPopup: { enumerable: true },
        ariaHidden: { enumerable: true },
        ariaInvalid: { enumerable: true },
        ariaKeyShortcuts: { enumerable: true },
        ariaLabel: { enumerable: true },
        ariaLevel: { enumerable: true },
        ariaLive: { enumerable: true },
        ariaModal: { enumerable: true },
        ariaMultiLine: { enumerable: true },
        ariaMultiSelectable: { enumerable: true },
        ariaOrientation: { enumerable: true },
        ariaPlaceholder: { enumerable: true },
        ariaPosInSet: { enumerable: true },
        ariaPressed: { enumerable: true },
        ariaReadOnly: { enumerable: true },
        ariaRequired: { enumerable: true },
        ariaRoleDescription: { enumerable: true },
        ariaRowCount: { enumerable: true },
        ariaRowIndex: { enumerable: true },
        ariaRowIndexText: { enumerable: true },
        ariaRowSpan: { enumerable: true },
        ariaSelected: { enumerable: true },
        ariaSetSize: { enumerable: true },
        ariaSort: { enumerable: true },
        ariaValueMax: { enumerable: true },
        ariaValueMin: { enumerable: true },
        ariaValueNow: { enumerable: true },
        ariaValueText: { enumerable: true },
        ariaRelevant: { enumerable: true },
        previousElementSibling: { enumerable: true },
        nextElementSibling: { enumerable: true },
        children: { enumerable: true },
        firstElementChild: { enumerable: true },
        lastElementChild: { enumerable: true },
        childElementCount: { enumerable: true },
        assignedSlot: { enumerable: true },
        [Symbol.toStringTag]: { value: "Element", configurable: true },
        [Symbol.unscopables]: {
          value: {
            slot: true,
            before: true,
            after: true,
            replaceWith: true,
            remove: true,
            prepend: true,
            append: true,
            replaceChildren: true,
            __proto__: null
          },
          configurable: true
        }
      });
      ctorRegistry[interfaceName] = Element2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Element2
      });
    };
    var Impl = require_Element_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js
var require_ElementCreationOptions = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      {
        const key = "is";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["DOMString"](value2, { context: context + " has member 'is' that", globals: globalObject });
          ret[key] = value2;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js
var require_NodeFilter = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (!utils2.isObject(value2)) {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      function callTheUserObjectsOperation(node) {
        let thisArg = utils2.tryWrapperForImpl(this);
        let O = value2;
        let X = O;
        if (typeof O !== "function") {
          X = O["acceptNode"];
          if (typeof X !== "function") {
            throw new globalObject.TypeError(`${context} does not correctly implement NodeFilter.`);
          }
          thisArg = O;
        }
        node = utils2.tryWrapperForImpl(node);
        let callResult = Reflect.apply(X, thisArg, [node]);
        callResult = conversions["unsigned short"](callResult, { context, globals: globalObject });
        return callResult;
      }
      callTheUserObjectsOperation[utils2.wrapperSymbol] = value2;
      callTheUserObjectsOperation.objectReference = value2;
      return callTheUserObjectsOperation;
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      const NodeFilter = () => {
        throw new globalObject.TypeError("Illegal invocation");
      };
      Object.defineProperties(NodeFilter, {
        FILTER_ACCEPT: { value: 1, enumerable: true },
        FILTER_REJECT: { value: 2, enumerable: true },
        FILTER_SKIP: { value: 3, enumerable: true },
        SHOW_ALL: { value: 4294967295, enumerable: true },
        SHOW_ELEMENT: { value: 1, enumerable: true },
        SHOW_ATTRIBUTE: { value: 2, enumerable: true },
        SHOW_TEXT: { value: 4, enumerable: true },
        SHOW_CDATA_SECTION: { value: 8, enumerable: true },
        SHOW_ENTITY_REFERENCE: { value: 16, enumerable: true },
        SHOW_ENTITY: { value: 32, enumerable: true },
        SHOW_PROCESSING_INSTRUCTION: { value: 64, enumerable: true },
        SHOW_COMMENT: { value: 128, enumerable: true },
        SHOW_DOCUMENT: { value: 256, enumerable: true },
        SHOW_DOCUMENT_TYPE: { value: 512, enumerable: true },
        SHOW_DOCUMENT_FRAGMENT: { value: 1024, enumerable: true },
        SHOW_NOTATION: { value: 2048, enumerable: true }
      });
      Object.defineProperty(globalObject, "NodeFilter", {
        configurable: true,
        writable: true,
        value: NodeFilter
      });
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/html-constructor.js
var require_html_constructor = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/html-constructor.js"(exports, module) {
    "use strict";
    var { HTML_NS } = require_namespaces();
    var { createElement: createElement11, getValidTagNames } = require_create_element();
    var { implForWrapper, wrapperForImpl } = require_utils16();
    var ALREADY_CONSTRUCTED_MARKER = Symbol("already-constructed-marker");
    function HTMLConstructor(globalObject, constructorName, newTarget) {
      const registry = implForWrapper(globalObject._customElementRegistry);
      if (newTarget === HTMLConstructor) {
        throw new TypeError("Invalid constructor");
      }
      const definition = registry._customElementDefinitions.find((entry) => entry.objectReference === newTarget);
      if (definition === void 0) {
        throw new TypeError("Invalid constructor, the constructor is not part of the custom element registry");
      }
      let isValue = null;
      if (definition.localName === definition.name) {
        if (constructorName !== "HTMLElement") {
          throw new TypeError("Invalid constructor, autonomous custom element should extend from HTMLElement");
        }
      } else {
        const validLocalNames = getValidTagNames(HTML_NS, constructorName);
        if (!validLocalNames.includes(definition.localName)) {
          throw new TypeError(`${definition.localName} is not valid local name for ${constructorName}`);
        }
        isValue = definition.name;
      }
      let { prototype: prototype2 } = newTarget;
      if (prototype2 === null || typeof prototype2 !== "object") {
        prototype2 = globalObject.HTMLElement.prototype;
      }
      if (definition.constructionStack.length === 0) {
        const documentImpl = implForWrapper(globalObject.document);
        const elementImpl2 = createElement11(documentImpl, definition.localName, HTML_NS);
        const element2 = wrapperForImpl(elementImpl2);
        Object.setPrototypeOf(element2, prototype2);
        elementImpl2._ceState = "custom";
        elementImpl2._ceDefinition = definition;
        elementImpl2._isValue = isValue;
        return element2;
      }
      const elementImpl = definition.constructionStack[definition.constructionStack.length - 1];
      const element = wrapperForImpl(elementImpl);
      if (elementImpl === ALREADY_CONSTRUCTED_MARKER) {
        throw new TypeError("This instance is already constructed");
      }
      Object.setPrototypeOf(element, prototype2);
      definition.constructionStack[definition.constructionStack.length - 1] = ALREADY_CONSTRUCTED_MARKER;
      return element;
    }
    module.exports = {
      HTMLConstructor
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/dates-and-times.js
var require_dates_and_times = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/dates-and-times.js"(exports, module) {
    "use strict";
    function isLeapYear(year) {
      return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
    }
    var daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    function numberOfDaysInMonthOfYear(month, year) {
      if (month === 2 && isLeapYear(year)) {
        return 29;
      }
      return daysInMonth[month - 1];
    }
    var monthRe = /^([0-9]{4,})-([0-9]{2})$/;
    function parseMonthString(str) {
      const matches = monthRe.exec(str);
      if (!matches) {
        return null;
      }
      const year = Number(matches[1]);
      if (year <= 0) {
        return null;
      }
      const month = Number(matches[2]);
      if (month < 1 || month > 12) {
        return null;
      }
      return { year, month };
    }
    function isValidMonthString(str) {
      return parseMonthString(str) !== null;
    }
    function serializeMonth({ year, month }) {
      const yearStr = `${year}`.padStart(4, "0");
      const monthStr = `${month}`.padStart(2, "0");
      return `${yearStr}-${monthStr}`;
    }
    var dateRe = /^([0-9]{4,})-([0-9]{2})-([0-9]{2})$/;
    function parseDateString(str) {
      const matches = dateRe.exec(str);
      if (!matches) {
        return null;
      }
      const year = Number(matches[1]);
      if (year <= 0) {
        return null;
      }
      const month = Number(matches[2]);
      if (month < 1 || month > 12) {
        return null;
      }
      const day = Number(matches[3]);
      if (day < 1 || day > numberOfDaysInMonthOfYear(month, year)) {
        return null;
      }
      return { year, month, day };
    }
    function isValidDateString(str) {
      return parseDateString(str) !== null;
    }
    function serializeDate(date) {
      const dayStr = `${date.day}`.padStart(2, "0");
      return `${serializeMonth(date)}-${dayStr}`;
    }
    var yearlessDateRe = /^(?:--)?([0-9]{2})-([0-9]{2})$/;
    function parseYearlessDateString(str) {
      const matches = yearlessDateRe.exec(str);
      if (!matches) {
        return null;
      }
      const month = Number(matches[1]);
      if (month < 1 || month > 12) {
        return null;
      }
      const day = Number(matches[2]);
      if (day < 1 || day > numberOfDaysInMonthOfYear(month, 4)) {
        return null;
      }
      return { month, day };
    }
    function isValidYearlessDateString(str) {
      return parseYearlessDateString(str) !== null;
    }
    function serializeYearlessDate({ month, day }) {
      const monthStr = `${month}`.padStart(2, "0");
      const dayStr = `${day}`.padStart(2, "0");
      return `${monthStr}-${dayStr}`;
    }
    var timeRe = /^([0-9]{2}):([0-9]{2})(?::([0-9]{2}(?:\.([0-9]{1,3}))?))?$/;
    function parseTimeString(str) {
      const matches = timeRe.exec(str);
      if (!matches) {
        return null;
      }
      const hour = Number(matches[1]);
      if (hour < 0 || hour > 23) {
        return null;
      }
      const minute = Number(matches[2]);
      if (minute < 0 || minute > 59) {
        return null;
      }
      const second = matches[3] !== void 0 ? Math.trunc(Number(matches[3])) : 0;
      if (second < 0 || second >= 60) {
        return null;
      }
      const millisecond = matches[4] !== void 0 ? Number(matches[4]) : 0;
      return { hour, minute, second, millisecond };
    }
    function isValidTimeString(str) {
      return parseTimeString(str) !== null;
    }
    function serializeTime({ hour, minute, second, millisecond }) {
      const hourStr = `${hour}`.padStart(2, "0");
      const minuteStr = `${minute}`.padStart(2, "0");
      if (second === 0 && millisecond === 0) {
        return `${hourStr}:${minuteStr}`;
      }
      const secondStr = `${second}`.padStart(2, "0");
      const millisecondStr = `${millisecond}`.padStart(3, "0");
      return `${hourStr}:${minuteStr}:${secondStr}.${millisecondStr}`;
    }
    function parseLocalDateAndTimeString(str, normalized = false) {
      let separatorIdx = str.indexOf("T");
      if (separatorIdx < 0 && !normalized) {
        separatorIdx = str.indexOf(" ");
      }
      if (separatorIdx < 0) {
        return null;
      }
      const date = parseDateString(str.slice(0, separatorIdx));
      if (date === null) {
        return null;
      }
      const time = parseTimeString(str.slice(separatorIdx + 1));
      if (time === null) {
        return null;
      }
      return { date, time };
    }
    function isValidLocalDateAndTimeString(str) {
      return parseLocalDateAndTimeString(str) !== null;
    }
    function isValidNormalizedLocalDateAndTimeString(str) {
      return parseLocalDateAndTimeString(str, true) !== null;
    }
    function serializeNormalizedDateAndTime({ date, time }) {
      return `${serializeDate(date)}T${serializeTime(time)}`;
    }
    function weekNumberOfLastDay(year) {
      const jan1 = new Date(year, 0);
      return jan1.getDay() === 4 || isLeapYear(year) && jan1.getDay() === 3 ? 53 : 52;
    }
    var weekRe = /^([0-9]{4,5})-W([0-9]{2})$/;
    function parseWeekString(str) {
      const matches = weekRe.exec(str);
      if (!matches) {
        return null;
      }
      const year = Number(matches[1]);
      if (year <= 0) {
        return null;
      }
      const week = Number(matches[2]);
      if (week < 1 || week > weekNumberOfLastDay(year)) {
        return null;
      }
      return { year, week };
    }
    function isValidWeekString(str) {
      return parseWeekString(str) !== null;
    }
    function serializeWeek({ year, week }) {
      const yearStr = `${year}`.padStart(4, "0");
      const weekStr = `${week}`.padStart(2, "0");
      return `${yearStr}-W${weekStr}`;
    }
    function parseDateAsWeek(originalDate) {
      const dayInSeconds = 864e5;
      const date = new Date(Date.UTC(originalDate.getUTCFullYear(), originalDate.getUTCMonth(), originalDate.getUTCDate()));
      date.setUTCDate(date.getUTCDate() + 4 - (date.getUTCDay() || 7));
      const yearStart = new Date(Date.UTC(date.getUTCFullYear(), 0, 1));
      const week = Math.ceil(((date - yearStart) / dayInSeconds + 1) / 7);
      return { year: date.getUTCFullYear(), week };
    }
    function isDate3(obj) {
      try {
        Date.prototype.valueOf.call(obj);
        return true;
      } catch {
        return false;
      }
    }
    module.exports = {
      isDate: isDate3,
      numberOfDaysInMonthOfYear,
      parseMonthString,
      isValidMonthString,
      serializeMonth,
      parseDateString,
      isValidDateString,
      serializeDate,
      parseYearlessDateString,
      isValidYearlessDateString,
      serializeYearlessDate,
      parseTimeString,
      isValidTimeString,
      serializeTime,
      parseLocalDateAndTimeString,
      isValidLocalDateAndTimeString,
      isValidNormalizedLocalDateAndTimeString,
      serializeNormalizedDateAndTime,
      parseDateAsWeek,
      weekNumberOfLastDay,
      parseWeekString,
      isValidWeekString,
      serializeWeek
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/traversal.js
var require_traversal2 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/traversal.js"(exports) {
    "use strict";
    var { domSymbolTree } = require_internal_constants();
    var { HTML_NS } = require_namespaces();
    exports.closest = (e4, localName, namespace = HTML_NS) => {
      while (e4) {
        if (e4.localName === localName && e4.namespaceURI === namespace) {
          return e4;
        }
        e4 = domSymbolTree.parent(e4);
      }
      return null;
    };
    exports.childrenByLocalName = (parent, localName, namespace = HTML_NS) => {
      return domSymbolTree.childrenToArray(parent, { filter(node) {
        return node._localName === localName && node._namespaceURI === namespace;
      } });
    };
    exports.descendantsByLocalName = (parent, localName, namespace = HTML_NS) => {
      return domSymbolTree.treeToArray(parent, { filter(node) {
        return node._localName === localName && node._namespaceURI === namespace && node !== parent;
      } });
    };
    exports.childrenByLocalNames = (parent, localNamesSet, namespace = HTML_NS) => {
      return domSymbolTree.childrenToArray(parent, { filter(node) {
        return localNamesSet.has(node._localName) && node._namespaceURI === namespace;
      } });
    };
    exports.descendantsByLocalNames = (parent, localNamesSet, namespace = HTML_NS) => {
      return domSymbolTree.treeToArray(parent, { filter(node) {
        return localNamesSet.has(node._localName) && node._namespaceURI === namespace && node !== parent;
      } });
    };
    exports.firstChildWithLocalName = (parent, localName, namespace = HTML_NS) => {
      const iterator2 = domSymbolTree.childrenIterator(parent);
      for (const child of iterator2) {
        if (child._localName === localName && child._namespaceURI === namespace) {
          return child;
        }
      }
      return null;
    };
    exports.firstChildWithLocalNames = (parent, localNamesSet, namespace = HTML_NS) => {
      const iterator2 = domSymbolTree.childrenIterator(parent);
      for (const child of iterator2) {
        if (localNamesSet.has(child._localName) && child._namespaceURI === namespace) {
          return child;
        }
      }
      return null;
    };
    exports.firstDescendantWithLocalName = (parent, localName, namespace = HTML_NS) => {
      const iterator2 = domSymbolTree.treeIterator(parent);
      for (const descendant of iterator2) {
        if (descendant._localName === localName && descendant._namespaceURI === namespace) {
          return descendant;
        }
      }
      return null;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/form-controls.js
var require_form_controls = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/form-controls.js"(exports) {
    "use strict";
    var {
      isValidFloatingPointNumber,
      isValidSimpleColor,
      parseFloatingPointNumber,
      stripLeadingAndTrailingASCIIWhitespace,
      stripNewlines,
      splitOnCommas
    } = require_strings2();
    var {
      isValidDateString,
      isValidMonthString,
      isValidTimeString,
      isValidWeekString,
      parseLocalDateAndTimeString,
      serializeNormalizedDateAndTime
    } = require_dates_and_times();
    var whatwgURL = require_whatwg_url();
    var NodeList = require_NodeList();
    var { domSymbolTree } = require_internal_constants();
    var { closest, firstChildWithLocalName } = require_traversal2();
    var NODE_TYPE = require_node_type();
    var { HTML_NS } = require_namespaces();
    exports.isDisabled = (formControl) => {
      if (formControl.localName === "button" || formControl.localName === "input" || formControl.localName === "select" || formControl.localName === "textarea") {
        if (formControl.hasAttributeNS(null, "disabled")) {
          return true;
        }
      }
      let e4 = formControl.parentNode;
      while (e4) {
        if (e4.localName === "fieldset" && e4.hasAttributeNS(null, "disabled")) {
          const firstLegendElementChild = firstChildWithLocalName(e4, "legend");
          if (!firstLegendElementChild || !firstLegendElementChild.contains(formControl)) {
            return true;
          }
        }
        e4 = e4.parentNode;
      }
      return false;
    };
    var listedElements = /* @__PURE__ */ new Set(["button", "fieldset", "input", "object", "output", "select", "textarea"]);
    exports.isListed = (formControl) => listedElements.has(formControl._localName) && formControl.namespaceURI === HTML_NS;
    var submittableElements = /* @__PURE__ */ new Set(["button", "input", "object", "select", "textarea"]);
    exports.isSubmittable = (formControl) => {
      return submittableElements.has(formControl._localName) && formControl.namespaceURI === HTML_NS;
    };
    var submitButtonInputTypes = /* @__PURE__ */ new Set(["submit", "image"]);
    exports.isSubmitButton = (formControl) => {
      return (formControl._localName === "input" && submitButtonInputTypes.has(formControl.type) || formControl._localName === "button" && formControl.type === "submit") && formControl.namespaceURI === HTML_NS;
    };
    var buttonInputTypes = /* @__PURE__ */ new Set([...submitButtonInputTypes, "reset", "button"]);
    exports.isButton = (formControl) => {
      return (formControl._localName === "input" && buttonInputTypes.has(formControl.type) || formControl._localName === "button") && formControl.namespaceURI === HTML_NS;
    };
    exports.isInteractiveContent = (node) => {
      if (node.nodeType !== NODE_TYPE.ELEMENT_NODE) {
        return false;
      }
      if (node.namespaceURI !== HTML_NS) {
        return false;
      }
      if (node.hasAttributeNS(null, "tabindex")) {
        return true;
      }
      switch (node.localName) {
        case "a":
          return node.hasAttributeNS(null, "href");
        case "audio":
        case "video":
          return node.hasAttributeNS(null, "controls");
        case "img":
        case "object":
          return node.hasAttributeNS(null, "usemap");
        case "input":
          return node.type !== "hidden";
        case "button":
        case "details":
        case "embed":
        case "iframe":
        case "label":
        case "select":
        case "textarea":
          return true;
      }
      return false;
    };
    exports.isLabelable = (node) => {
      if (node.nodeType !== NODE_TYPE.ELEMENT_NODE) {
        return false;
      }
      if (node.namespaceURI !== HTML_NS) {
        return false;
      }
      switch (node.localName) {
        case "button":
        case "meter":
        case "output":
        case "progress":
        case "select":
        case "textarea":
          return true;
        case "input":
          return node.type !== "hidden";
      }
      if (node._ceDefinition?.formAssociated) {
        return true;
      }
      return false;
    };
    exports.getLabelsForLabelable = (labelable) => {
      if (!exports.isLabelable(labelable)) {
        return null;
      }
      if (!labelable._labels) {
        const root = labelable.getRootNode({});
        labelable._labels = NodeList.createImpl(root._globalObject, [], {
          element: root,
          query: () => {
            const nodes = [];
            for (const descendant of domSymbolTree.treeIterator(root)) {
              if (descendant.control === labelable) {
                nodes.push(descendant);
              }
            }
            return nodes;
          }
        });
      }
      return labelable._labels;
    };
    exports.isValidEmailAddress = (emailAddress, multiple = false) => {
      const emailAddressRegExp = new RegExp("^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$");
      if (multiple) {
        return splitOnCommas(emailAddress).every((value2) => emailAddressRegExp.test(value2));
      }
      return emailAddressRegExp.test(emailAddress);
    };
    exports.isValidAbsoluteURL = (url3) => {
      return whatwgURL.parseURL(url3) !== null;
    };
    exports.sanitizeValueByType = (input, val) => {
      switch (input.type.toLowerCase()) {
        case "password":
        case "search":
        case "tel":
        case "text":
          val = stripNewlines(val);
          break;
        case "color":
          val = isValidSimpleColor(val) ? val.toLowerCase() : "#000000";
          break;
        case "date":
          if (!isValidDateString(val)) {
            val = "";
          }
          break;
        case "datetime-local": {
          const dateAndTime = parseLocalDateAndTimeString(val);
          val = dateAndTime !== null ? serializeNormalizedDateAndTime(dateAndTime) : "";
          break;
        }
        case "email":
          if (input.hasAttributeNS(null, "multiple")) {
            val = val.split(",").map((token) => stripLeadingAndTrailingASCIIWhitespace(token)).join(",");
          } else {
            val = stripNewlines(val);
            val = stripLeadingAndTrailingASCIIWhitespace(val);
          }
          break;
        case "month":
          if (!isValidMonthString(val)) {
            val = "";
          }
          break;
        case "number":
          if (!isValidFloatingPointNumber(val) || parseFloatingPointNumber(val) === null) {
            val = "";
          }
          break;
        case "range":
          if (!isValidFloatingPointNumber(val) || parseFloatingPointNumber(val) === null) {
            const minimum = input._minimum;
            const maximum = input._maximum;
            const defaultValue = maximum < minimum ? minimum : (minimum + maximum) / 2;
            val = `${defaultValue}`;
          } else if (val < input._minimum) {
            val = `${input._minimum}`;
          } else if (val > input._maximum) {
            val = `${input._maximum}`;
          }
          break;
        case "time":
          if (!isValidTimeString(val)) {
            val = "";
          }
          break;
        case "url":
          val = stripNewlines(val);
          val = stripLeadingAndTrailingASCIIWhitespace(val);
          break;
        case "week":
          if (!isValidWeekString(val)) {
            val = "";
          }
      }
      return val;
    };
    exports.formOwner = (formControl) => {
      const formAttr = formControl.getAttributeNS(null, "form");
      if (formAttr === "") {
        return null;
      }
      if (formAttr === null) {
        return closest(formControl, "form");
      }
      const root = formControl.getRootNode({});
      let firstElementWithId;
      for (const descendant of domSymbolTree.treeIterator(root)) {
        if (descendant.nodeType === NODE_TYPE.ELEMENT_NODE && descendant.getAttributeNS(null, "id") === formAttr) {
          firstElementWithId = descendant;
          break;
        }
      }
      if (firstElementWithId && firstElementWithId.namespaceURI === HTML_NS && firstElementWithId.localName === "form") {
        return firstElementWithId;
      }
      return null;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/custom-elements/ElementInternals-impl.js
var require_ElementInternals_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/custom-elements/ElementInternals-impl.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var { getLabelsForLabelable } = require_form_controls();
    var ElementInternalsImpl = class {
      constructor(globalObject, args, { targetElement }) {
        this._targetElement = targetElement;
      }
      get shadowRoot() {
        const shadow = this._targetElement._shadowRoot;
        if (!shadow || !shadow._availableToElementInternals) {
          return null;
        }
        return shadow;
      }
      get labels() {
        if (!this._targetElement._ceDefinition.formAssociated) {
          throw DOMException2.create(this._targetElement._globalObject, [
            "Accesing an ElementInternal's labels property is only supported for form-associated custom elements",
            "NotSupportedError"
          ]);
        }
        return getLabelsForLabelable(this._targetElement);
      }
      // https://html.spec.whatwg.org/#reflecting-content-attributes-in-idl-attributes
      _reflectGetTheElement() {
        return this._targetElement;
      }
      _reflectGetTheContentAttribute(reflectedContentAttributeName) {
        return this._targetElement._internalContentAttributeMap.get(reflectedContentAttributeName) ?? null;
      }
      _reflectSetTheContentAttribute(reflectedContentAttributeName, value2) {
        this._targetElement._internalContentAttributeMap.set(reflectedContentAttributeName, value2);
      }
      _reflectDeleteTheContentAttribute(reflectedContentAttributeName) {
        this._targetElement._internalContentAttributeMap.delete(reflectedContentAttributeName);
      }
    };
    module.exports = {
      implementation: ElementInternalsImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ElementInternals.js
var require_ElementInternals = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ElementInternals.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "ElementInternals";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'ElementInternals'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["ElementInternals"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class ElementInternals {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get shadowRoot() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get shadowRoot' called on an object that is not a valid instance of ElementInternals."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["shadowRoot"]);
        }
        get labels() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get labels' called on an object that is not a valid instance of ElementInternals."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["labels"]);
        }
        get role() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get role' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("role");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set role(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set role' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'role' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("role");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("role", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaAtomic() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaAtomic' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-atomic");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaAtomic(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaAtomic' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaAtomic' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-atomic");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-atomic", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaAutoComplete() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaAutoComplete' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-autocomplete");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaAutoComplete(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaAutoComplete' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaAutoComplete' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-autocomplete");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-autocomplete", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaBusy() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaBusy' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-busy");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaBusy(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaBusy' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaBusy' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-busy");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-busy", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaChecked() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaChecked' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-checked");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaChecked(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaChecked' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaChecked' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-checked");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-checked", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaColCount() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaColCount' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colcount");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaColCount(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaColCount' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaColCount' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colcount");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-colcount", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaColIndex() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaColIndex' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colindex");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaColIndex(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaColIndex' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaColIndex' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colindex");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-colindex", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaColIndexText() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaColIndexText' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colindextext");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaColIndexText(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaColIndexText' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaColIndexText' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colindextext");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-colindextext", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaColSpan() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaColSpan' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-colspan");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaColSpan(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaColSpan' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaColSpan' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-colspan");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-colspan", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaCurrent() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaCurrent' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-current");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaCurrent(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaCurrent' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaCurrent' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-current");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-current", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaDescription() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaDescription' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-description");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaDescription(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaDescription' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaDescription' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-description");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-description", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaDisabled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaDisabled' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-disabled");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaDisabled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaDisabled' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaDisabled' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-disabled");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-disabled", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaExpanded() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaExpanded' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-expanded");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaExpanded(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaExpanded' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaExpanded' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-expanded");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-expanded", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaHasPopup() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaHasPopup' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-haspopup");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaHasPopup(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaHasPopup' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaHasPopup' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-haspopup");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-haspopup", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaHidden() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaHidden' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-hidden");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaHidden(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaHidden' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaHidden' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-hidden");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-hidden", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaInvalid() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaInvalid' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-invalid");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaInvalid(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaInvalid' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaInvalid' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-invalid");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-invalid", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaKeyShortcuts() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaKeyShortcuts' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-keyshortcuts");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaKeyShortcuts(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaKeyShortcuts' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaKeyShortcuts' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-keyshortcuts");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-keyshortcuts", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaLabel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaLabel' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-label");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaLabel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaLabel' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaLabel' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-label");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-label", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaLevel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaLevel' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-level");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaLevel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaLevel' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaLevel' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-level");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-level", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaLive() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaLive' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-live");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaLive(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaLive' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaLive' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-live");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-live", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaModal() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaModal' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-modal");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaModal(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaModal' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaModal' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-modal");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-modal", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaMultiLine() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaMultiLine' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-multiline");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaMultiLine(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaMultiLine' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaMultiLine' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-multiline");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-multiline", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaMultiSelectable() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaMultiSelectable' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-multiselectable");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaMultiSelectable(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaMultiSelectable' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaMultiSelectable' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-multiselectable");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-multiselectable", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaOrientation() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaOrientation' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-orientation");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaOrientation(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaOrientation' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaOrientation' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-orientation");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-orientation", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaPlaceholder() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaPlaceholder' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-placeholder");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaPlaceholder(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaPlaceholder' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaPlaceholder' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-placeholder");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-placeholder", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaPosInSet() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaPosInSet' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-posinset");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaPosInSet(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaPosInSet' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaPosInSet' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-posinset");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-posinset", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaPressed() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaPressed' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-pressed");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaPressed(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaPressed' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaPressed' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-pressed");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-pressed", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaReadOnly() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaReadOnly' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-readonly");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaReadOnly(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaReadOnly' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaReadOnly' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-readonly");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-readonly", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRequired() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRequired' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-required");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRequired(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRequired' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRequired' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-required");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-required", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRoleDescription() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRoleDescription' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-roledescription");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRoleDescription(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRoleDescription' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRoleDescription' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-roledescription");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-roledescription", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRowCount() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRowCount' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowcount");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRowCount(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRowCount' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRowCount' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowcount");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowcount", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRowIndex() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRowIndex' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowindex");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRowIndex(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRowIndex' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRowIndex' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowindex");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowindex", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRowIndexText() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRowIndexText' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowindextext");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRowIndexText(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRowIndexText' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRowIndexText' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowindextext");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowindextext", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRowSpan() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRowSpan' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-rowspan");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRowSpan(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRowSpan' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRowSpan' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-rowspan");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-rowspan", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaSelected() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaSelected' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-selected");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaSelected(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaSelected' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaSelected' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-selected");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-selected", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaSetSize() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaSetSize' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-setsize");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaSetSize(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaSetSize' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaSetSize' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-setsize");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-setsize", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaSort() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaSort' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-sort");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaSort(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaSort' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaSort' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-sort");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-sort", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaValueMax() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaValueMax' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuemax");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaValueMax(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaValueMax' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaValueMax' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuemax");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuemax", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaValueMin() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaValueMin' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuemin");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaValueMin(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaValueMin' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaValueMin' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuemin");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuemin", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaValueNow() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaValueNow' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuenow");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaValueNow(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaValueNow' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaValueNow' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuenow");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuenow", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaValueText() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaValueText' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-valuetext");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaValueText(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaValueText' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaValueText' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-valuetext");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-valuetext", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ariaRelevant() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ariaRelevant' called on an object that is not a valid instance of ElementInternals."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("aria-relevant");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ariaRelevant(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ariaRelevant' called on an object that is not a valid instance of ElementInternals."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'ariaRelevant' property on 'ElementInternals': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("aria-relevant");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("aria-relevant", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(ElementInternals.prototype, {
        shadowRoot: { enumerable: true },
        labels: { enumerable: true },
        role: { enumerable: true },
        ariaAtomic: { enumerable: true },
        ariaAutoComplete: { enumerable: true },
        ariaBusy: { enumerable: true },
        ariaChecked: { enumerable: true },
        ariaColCount: { enumerable: true },
        ariaColIndex: { enumerable: true },
        ariaColIndexText: { enumerable: true },
        ariaColSpan: { enumerable: true },
        ariaCurrent: { enumerable: true },
        ariaDescription: { enumerable: true },
        ariaDisabled: { enumerable: true },
        ariaExpanded: { enumerable: true },
        ariaHasPopup: { enumerable: true },
        ariaHidden: { enumerable: true },
        ariaInvalid: { enumerable: true },
        ariaKeyShortcuts: { enumerable: true },
        ariaLabel: { enumerable: true },
        ariaLevel: { enumerable: true },
        ariaLive: { enumerable: true },
        ariaModal: { enumerable: true },
        ariaMultiLine: { enumerable: true },
        ariaMultiSelectable: { enumerable: true },
        ariaOrientation: { enumerable: true },
        ariaPlaceholder: { enumerable: true },
        ariaPosInSet: { enumerable: true },
        ariaPressed: { enumerable: true },
        ariaReadOnly: { enumerable: true },
        ariaRequired: { enumerable: true },
        ariaRoleDescription: { enumerable: true },
        ariaRowCount: { enumerable: true },
        ariaRowIndex: { enumerable: true },
        ariaRowIndexText: { enumerable: true },
        ariaRowSpan: { enumerable: true },
        ariaSelected: { enumerable: true },
        ariaSetSize: { enumerable: true },
        ariaSort: { enumerable: true },
        ariaValueMax: { enumerable: true },
        ariaValueMin: { enumerable: true },
        ariaValueNow: { enumerable: true },
        ariaValueText: { enumerable: true },
        ariaRelevant: { enumerable: true },
        [Symbol.toStringTag]: { value: "ElementInternals", configurable: true }
      });
      ctorRegistry[interfaceName] = ElementInternals;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: ElementInternals
      });
    };
    var Impl = require_ElementInternals_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/ElementCSSInlineStyle-impl.js
var require_ElementCSSInlineStyle_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/ElementCSSInlineStyle-impl.js"(exports, module) {
    "use strict";
    var cssstyle = require_CSSStyleDeclaration2();
    var ElementCSSInlineStyle = class {
      _initElementCSSInlineStyle() {
        this._settingCssText = false;
        this._style = new cssstyle.CSSStyleDeclaration((newCssText) => {
          if (!this._settingCssText) {
            this._settingCssText = true;
            this.setAttributeNS(null, "style", newCssText);
            this._settingCssText = false;
          }
        });
      }
      get style() {
        return this._style;
      }
    };
    module.exports = {
      implementation: ElementCSSInlineStyle
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/GlobalEventHandlers-impl.js
var require_GlobalEventHandlers_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/GlobalEventHandlers-impl.js"(exports, module) {
    "use strict";
    var { appendHandler, createEventAccessor } = require_create_event_accessor();
    var events2 = /* @__PURE__ */ new Set([
      "abort",
      "auxclick",
      "beforeinput",
      "beforematch",
      "beforetoggle",
      "blur",
      "cancel",
      "canplay",
      "canplaythrough",
      "change",
      "click",
      "close",
      "contextlost",
      "contextmenu",
      "contextrestored",
      "copy",
      "cuechange",
      "cut",
      "dblclick",
      "drag",
      "dragend",
      "dragenter",
      "dragleave",
      "dragover",
      "dragstart",
      "drop",
      "durationchange",
      "emptied",
      "ended",
      "error",
      "focus",
      "formdata",
      "input",
      "invalid",
      "keydown",
      "keypress",
      "keyup",
      "load",
      "loadeddata",
      "loadedmetadata",
      "loadstart",
      "mousedown",
      "mouseenter",
      "mouseleave",
      "mousemove",
      "mouseout",
      "mouseover",
      "mouseup",
      "paste",
      "pause",
      "play",
      "playing",
      "progress",
      "ratechange",
      "reset",
      "resize",
      "scroll",
      "scrollend",
      "securitypolicyviolation",
      "seeked",
      "seeking",
      "select",
      "slotchange",
      "stalled",
      "submit",
      "suspend",
      "timeupdate",
      "toggle",
      "volumechange",
      "waiting",
      "webkitanimationend",
      "webkitanimationiteration",
      "webkitanimationstart",
      "webkittransitionend",
      "wheel",
      "touchstart",
      "touchend",
      "touchmove",
      "touchcancel"
    ]);
    var GlobalEventHandlersImpl = class {
      _initGlobalEvents() {
        this._registeredHandlers = /* @__PURE__ */ new Set();
        this._eventHandlers = /* @__PURE__ */ Object.create(null);
      }
      _getEventHandlerTarget() {
        return this;
      }
      _getEventHandlerFor(event) {
        const target = this._getEventHandlerTarget(event);
        if (!target) {
          return null;
        }
        return target._eventHandlers[event];
      }
      _setEventHandlerFor(event, handler) {
        const target = this._getEventHandlerTarget(event);
        if (!target) {
          return;
        }
        if (!target._registeredHandlers.has(event) && handler !== null) {
          target._registeredHandlers.add(event);
          appendHandler(target, event);
        }
        target._eventHandlers[event] = handler;
      }
      _globalEventChanged(event) {
        const propName = "on" + event;
        if (!(propName in this)) {
          return;
        }
        const runScripts = "_runScripts" in this ? this._runScripts : (this._ownerDocument._defaultView || {})._runScripts;
        if (runScripts !== "dangerously") {
          return;
        }
        const val = this.getAttributeNS(null, propName);
        const handler = val === null ? null : { body: val };
        this._setEventHandlerFor(event, handler);
      }
    };
    for (const event of events2) {
      createEventAccessor(GlobalEventHandlersImpl.prototype, event);
    }
    module.exports = {
      implementation: GlobalEventHandlersImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/details.js
var require_details = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/details.js"(exports) {
    "use strict";
    var { firstChildWithLocalName } = require_traversal2();
    var { HTML_NS } = require_namespaces();
    exports.isSummaryForParentDetails = (summaryElement) => {
      const parent = summaryElement.parentNode;
      if (parent === null) {
        return false;
      }
      if (parent._localName !== "details" || parent._namespaceURI !== HTML_NS) {
        return false;
      }
      return firstChildWithLocalName(parent, "summary") === summaryElement;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js
var require_FocusEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventTarget2 = require_EventTarget();
    var UIEventInit = require_UIEventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      UIEventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "relatedTarget";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (value2 === null || value2 === void 0) {
            value2 = null;
          } else {
            value2 = EventTarget2.convert(globalObject, value2, { context: context + " has member 'relatedTarget' that" });
          }
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/FocusEvent-impl.js
var require_FocusEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/FocusEvent-impl.js"(exports) {
    "use strict";
    var UIEventImpl = require_UIEvent_impl().implementation;
    var FocusEventInit = require_FocusEventInit();
    var FocusEventImpl = class extends UIEventImpl {
    };
    FocusEventImpl.defaultInit = FocusEventInit.convert(void 0, void 0);
    exports.implementation = FocusEventImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js
var require_FocusEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var FocusEventInit = require_FocusEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var UIEvent = require_UIEvent();
    var interfaceName = "FocusEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'FocusEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["FocusEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      UIEvent._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class FocusEvent extends globalObject.UIEvent {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'FocusEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'FocusEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = FocusEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'FocusEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get relatedTarget() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get relatedTarget' called on an object that is not a valid instance of FocusEvent."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["relatedTarget"]);
        }
      }
      Object.defineProperties(FocusEvent.prototype, {
        relatedTarget: { enumerable: true },
        [Symbol.toStringTag]: { value: "FocusEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = FocusEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: FocusEvent
      });
    };
    var Impl = require_FocusEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js
var require_render = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js"(exports) {
    "use strict";
    var { SVG_NS } = require_namespaces();
    var neverRenderedElements = /* @__PURE__ */ new Set([
      "clipPath",
      "defs",
      "desc",
      "linearGradient",
      "marker",
      "mask",
      "metadata",
      "pattern",
      "radialGradient",
      "script",
      "style",
      "title",
      "symbol"
    ]);
    exports.isRenderedElement = (elImpl) => {
      if (neverRenderedElements.has(elImpl._localName)) {
        return false;
      }
      if (!elImpl.isConnected) {
        return false;
      }
      if (elImpl.parentElement && elImpl.parentElement._namespaceURI === SVG_NS && !exports.isRenderedElement(elImpl.parentNode)) {
        return false;
      }
      return true;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/focusing.js
var require_focusing = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/focusing.js"(exports) {
    "use strict";
    var FocusEvent = require_FocusEvent();
    var idlUtils = require_utils16();
    var { isDisabled } = require_form_controls();
    var { firstChildWithLocalName } = require_traversal2();
    var { createAnEvent } = require_events4();
    var { HTML_NS, SVG_NS } = require_namespaces();
    var { isRenderedElement } = require_render();
    var focusableFormElements = /* @__PURE__ */ new Set(["input", "select", "textarea", "button"]);
    exports.isFocusableAreaElement = (elImpl) => {
      if (elImpl._namespaceURI === HTML_NS) {
        if (!elImpl._ownerDocument._defaultView) {
          return false;
        }
        if (!elImpl.isConnected) {
          return false;
        }
        if (!Number.isNaN(parseInt(elImpl.getAttributeNS(null, "tabindex")))) {
          return true;
        }
        if (elImpl._localName === "iframe") {
          return true;
        }
        if (elImpl._localName === "a" && elImpl.hasAttributeNS(null, "href")) {
          return true;
        }
        if (elImpl._localName === "summary" && elImpl.parentNode && elImpl.parentNode._localName === "details" && elImpl === firstChildWithLocalName(elImpl.parentNode, "summary")) {
          return true;
        }
        if (focusableFormElements.has(elImpl._localName) && !isDisabled(elImpl)) {
          if (elImpl._localName === "input" && elImpl.type === "hidden") {
            return false;
          }
          return true;
        }
        if (elImpl.hasAttributeNS(null, "contenteditable")) {
          return true;
        }
        return false;
      }
      if (elImpl._namespaceURI === SVG_NS) {
        if (!Number.isNaN(parseInt(elImpl.getAttributeNS(null, "tabindex"))) && isRenderedElement(elImpl)) {
          return true;
        }
        if (elImpl._localName === "a" && elImpl.hasAttributeNS(null, "href")) {
          return true;
        }
        return false;
      }
      return false;
    };
    exports.fireFocusEventWithTargetAdjustment = (name, target, relatedTarget, { bubbles = false } = {}) => {
      if (target === null) {
        return;
      }
      const event = createAnEvent(name, target._globalObject, FocusEvent, {
        bubbles,
        composed: true,
        relatedTarget,
        view: target._ownerDocument._defaultView,
        detail: 0
      });
      if (target._defaultView) {
        target = idlUtils.implForWrapper(target._defaultView);
      }
      target._dispatch(event);
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/DOMStringMap-impl.js
var require_DOMStringMap_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/DOMStringMap-impl.js"(exports) {
    "use strict";
    var idlUtils = require_utils16();
    var { setAttributeValue, removeAttributeByName } = require_attributes3();
    var validateName = require_validate_names().name;
    var DOMException2 = require_DOMException();
    var dataAttrRe = /^data-([^A-Z]*)$/;
    function attrCamelCase(name) {
      return name.replace(/-([a-z])/g, (match, alpha) => alpha.toUpperCase());
    }
    function attrSnakeCase(name) {
      return name.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);
    }
    exports.implementation = class DOMStringMapImpl {
      constructor(globalObject, args, privateData) {
        this._globalObject = globalObject;
        this._element = privateData.element;
      }
      get [idlUtils.supportedPropertyNames]() {
        const result = /* @__PURE__ */ new Set();
        const { attributes: attributes2 } = this._element;
        for (let i5 = 0; i5 < attributes2.length; i5++) {
          const attr = attributes2.item(i5);
          const matches = dataAttrRe.exec(attr.localName);
          if (matches) {
            result.add(attrCamelCase(matches[1]));
          }
        }
        return result;
      }
      [idlUtils.namedGet](name) {
        const { attributes: attributes2 } = this._element;
        for (let i5 = 0; i5 < attributes2.length; i5++) {
          const attr = attributes2.item(i5);
          const matches = dataAttrRe.exec(attr.localName);
          if (matches && attrCamelCase(matches[1]) === name) {
            return attr.value;
          }
        }
        return void 0;
      }
      [idlUtils.namedSetNew](name, value2) {
        if (/-[a-z]/.test(name)) {
          throw DOMException2.create(this._globalObject, [
            `'${name}' is not a valid property name`,
            "SyntaxError"
          ]);
        }
        name = `data-${attrSnakeCase(name)}`;
        validateName(this._globalObject, name);
        setAttributeValue(this._element, name, value2);
      }
      [idlUtils.namedSetExisting](name, value2) {
        this[idlUtils.namedSetNew](name, value2);
      }
      [idlUtils.namedDelete](name) {
        name = `data-${attrSnakeCase(name)}`;
        removeAttributeByName(this._element, name);
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js
var require_DOMStringMap = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "DOMStringMap";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'DOMStringMap'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["DOMStringMap"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class DOMStringMap {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
      }
      Object.defineProperties(DOMStringMap.prototype, {
        [Symbol.toStringTag]: { value: "DOMStringMap", configurable: true }
      });
      ctorRegistry[interfaceName] = DOMStringMap;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: DOMStringMap
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyNames]) {
          if (!utils2.hasOwn(target, key)) {
            keys2.add(`${key}`);
          }
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        const namedValue = target[implSymbol][utils2.namedGet](P);
        if (namedValue !== void 0 && !utils2.hasOwn(target, P) && !ignoreNamedProps) {
          return {
            writable: true,
            enumerable: true,
            configurable: true,
            value: utils2.tryWrapperForImpl(namedValue)
          };
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
          if (typeof P === "string") {
            let namedValue = V;
            namedValue = conversions["DOMString"](namedValue, {
              context: "Failed to set the '" + P + "' property on 'DOMStringMap': The provided value",
              globals: globalObject
            });
            ceReactionsPreSteps_helpers_custom_elements(globalObject);
            try {
              const creating = !(target[implSymbol][utils2.namedGet](P) !== void 0);
              if (creating) {
                target[implSymbol][utils2.namedSetNew](P, namedValue);
              } else {
                target[implSymbol][utils2.namedSetExisting](P, namedValue);
              }
            } finally {
              ceReactionsPostSteps_helpers_custom_elements(globalObject);
            }
            return true;
          }
        }
        let ownDesc;
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (desc.get || desc.set) {
          return false;
        }
        let namedValue = desc.value;
        namedValue = conversions["DOMString"](namedValue, {
          context: "Failed to set the '" + P + "' property on 'DOMStringMap': The provided value",
          globals: globalObject
        });
        ceReactionsPreSteps_helpers_custom_elements(globalObject);
        try {
          const creating = !(target[implSymbol][utils2.namedGet](P) !== void 0);
          if (creating) {
            target[implSymbol][utils2.namedSetNew](P, namedValue);
          } else {
            target[implSymbol][utils2.namedSetExisting](P, namedValue);
          }
        } finally {
          ceReactionsPostSteps_helpers_custom_elements(globalObject);
        }
        return true;
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (target[implSymbol][utils2.namedGet](P) !== void 0 && !utils2.hasOwn(target, P)) {
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            target[implSymbol][utils2.namedDelete](P);
            return true;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_DOMStringMap_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOrSVGElement-impl.js
var require_HTMLOrSVGElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOrSVGElement-impl.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var { isSummaryForParentDetails } = require_details();
    var focusing = require_focusing();
    var { HTML_NS, SVG_NS } = require_namespaces();
    var DOMStringMap = require_DOMStringMap();
    var tabIndexReflectAllowedHTMLElements = /* @__PURE__ */ new Set([
      "a",
      "area",
      "button",
      "frame",
      "iframe",
      "input",
      "object",
      "select",
      "textarea"
    ]);
    var HTMLOrSVGElementImpl = class {
      _initHTMLOrSVGElement() {
        this._tabIndex = 0;
        this._dataset = null;
      }
      get dataset() {
        if (!this._dataset) {
          this._dataset = DOMStringMap.createImpl(this._globalObject, [], { element: this });
        }
        return this._dataset;
      }
      // TODO this should be [Reflect]able if we added default value support to webidl2js's [Reflect]
      get tabIndex() {
        if (!this.hasAttributeNS(null, "tabindex")) {
          if (this.namespaceURI === HTML_NS && (tabIndexReflectAllowedHTMLElements.has(this._localName) || this._localName === "summary" && isSummaryForParentDetails(this)) || this.namespaceURI === SVG_NS && this._localName === "a") {
            return 0;
          }
          return -1;
        }
        return conversions.long(this.getAttributeNS(null, "tabindex"));
      }
      set tabIndex(value2) {
        this.setAttributeNS(null, "tabindex", String(value2));
      }
      focus() {
        if (!focusing.isFocusableAreaElement(this)) {
          return;
        }
        const ownerDocument = this._ownerDocument;
        const previous = ownerDocument._lastFocusedElement;
        if (previous === this) {
          return;
        }
        ownerDocument._lastFocusedElement = null;
        if (previous) {
          focusing.fireFocusEventWithTargetAdjustment("blur", previous, this);
          focusing.fireFocusEventWithTargetAdjustment("focusout", previous, this, { bubbles: true });
        } else {
          const frameElement = ownerDocument._defaultView._frameElement;
          if (frameElement) {
            const frameLastFocusedElement = frameElement.ownerDocument._lastFocusedElement;
            frameElement.ownerDocument._lastFocusedElement = null;
            focusing.fireFocusEventWithTargetAdjustment("blur", frameLastFocusedElement, null);
            focusing.fireFocusEventWithTargetAdjustment("focusout", frameLastFocusedElement, null, { bubbles: true });
            frameElement.ownerDocument._lastFocusedElement = frameElement;
          }
        }
        ownerDocument._lastFocusedElement = this;
        focusing.fireFocusEventWithTargetAdjustment("focus", this, previous);
        focusing.fireFocusEventWithTargetAdjustment("focusin", this, previous, { bubbles: true });
        ownerDocument.getSelection().collapse(this, 0);
      }
      blur() {
        if (this._ownerDocument._lastFocusedElement !== this || !focusing.isFocusableAreaElement(this)) {
          return;
        }
        this._ownerDocument._lastFocusedElement = null;
        focusing.fireFocusEventWithTargetAdjustment("blur", this, null);
        focusing.fireFocusEventWithTargetAdjustment("focusout", this, null, { bubbles: true });
        this._ownerDocument.getSelection().empty();
      }
    };
    exports.implementation = HTMLOrSVGElementImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js
var require_HTMLElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js"(exports, module) {
    "use strict";
    var { mixin: mixin2 } = require_utils17();
    var ElementImpl = require_Element_impl().implementation;
    var DOMException2 = require_DOMException();
    var MouseEvent = require_MouseEvent();
    var ElementInternals = require_ElementInternals();
    var ElementCSSInlineStyleImpl = require_ElementCSSInlineStyle_impl().implementation;
    var GlobalEventHandlersImpl = require_GlobalEventHandlers_impl().implementation;
    var HTMLOrSVGElementImpl = require_HTMLOrSVGElement_impl().implementation;
    var { firstChildWithLocalName } = require_traversal2();
    var { isDisabled } = require_form_controls();
    var { fireAnEvent } = require_events4();
    var { asciiLowercase } = require_strings2();
    var { lookupCEDefinition } = require_custom_elements();
    var HTMLElementImpl = class extends ElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._initHTMLOrSVGElement();
        this._initElementCSSInlineStyle();
        this._initGlobalEvents();
        this._clickInProgress = false;
        this._hasActivationBehavior = this._localName === "summary";
        this._attachedInternals = null;
      }
      _activationBehavior() {
        const parent = this.parentNode;
        if (parent && parent._localName === "details" && this === firstChildWithLocalName(parent, "summary")) {
          if (parent.hasAttributeNS(null, "open")) {
            parent.removeAttributeNS(null, "open");
          } else {
            parent.setAttributeNS(null, "open", "");
          }
        }
      }
      // https://html.spec.whatwg.org/multipage/dom.html#the-translate-attribute
      get translate() {
        const translateAttr = this.getAttributeNS(null, "translate");
        const translateAttrString = asciiLowercase(translateAttr || "");
        if (translateAttrString === "yes" || translateAttr && translateAttrString === "") {
          return true;
        } else if (translateAttrString === "no") {
          return false;
        }
        if (this === this.ownerDocument.documentElement) {
          return true;
        }
        return this.parentElement && this.parentElement.translate;
      }
      set translate(value2) {
        if (value2 === true) {
          this.setAttributeNS(null, "translate", "yes");
        } else {
          this.setAttributeNS(null, "translate", "no");
        }
      }
      click() {
        if (isDisabled(this)) {
          return;
        }
        if (this._clickInProgress) {
          return;
        }
        this._clickInProgress = true;
        fireAnEvent("click", this, MouseEvent, {
          bubbles: true,
          cancelable: true,
          composed: true,
          isTrusted: false,
          view: this.ownerDocument.defaultView
        });
        this._clickInProgress = false;
      }
      get draggable() {
        const attributeValue = asciiLowercase(this.getAttributeNS(null, "draggable") || "");
        if (attributeValue === "true") {
          return true;
        } else if (attributeValue === "false") {
          return false;
        }
        return this._localName === "img" || this._localName === "a" && this.hasAttributeNS(null, "href");
      }
      set draggable(value2) {
        this.setAttributeNS(null, "draggable", String(value2));
      }
      get dir() {
        let dirValue = this.getAttributeNS(null, "dir");
        if (dirValue !== null) {
          dirValue = dirValue.toLowerCase();
          if (["ltr", "rtl", "auto"].includes(dirValue)) {
            return dirValue;
          }
        }
        return "";
      }
      set dir(value2) {
        this.setAttributeNS(null, "dir", value2);
      }
      // https://html.spec.whatwg.org/#dom-attachinternals
      attachInternals() {
        if (this._isValue !== null) {
          throw DOMException2.create(this._globalObject, [
            "Unable to attach ElementInternals to a customized built-in element.",
            "NotSupportedError"
          ]);
        }
        const definition = lookupCEDefinition(this._ownerDocument, this._namespaceURI, this._localName, null);
        if (definition === null) {
          throw DOMException2.create(this._globalObject, [
            "Unable to attach ElementInternals to non-custom elements.",
            "NotSupportedError"
          ]);
        }
        if (definition.disableInternals === true) {
          throw DOMException2.create(this._globalObject, [
            "ElementInternals is disabled by disabledFeature static field.",
            "NotSupportedError"
          ]);
        }
        if (this._attachedInternals !== null) {
          throw DOMException2.create(this._globalObject, [
            "ElementInternals for the specified element was already attached.",
            "NotSupportedError"
          ]);
        }
        if (this._ceState !== "precustomized" && this._ceState !== "custom") {
          throw DOMException2.create(this._globalObject, [
            "The attachInternals() function cannot be called prior to the execution of the custom element constructor.",
            "NotSupportedError"
          ]);
        }
        this._attachedInternals = ElementInternals.createImpl(this._globalObject, [], { targetElement: this });
        return this._attachedInternals;
      }
      // Keep in sync with SVGElement. https://github.com/jsdom/jsdom/issues/2599
      _attrModified(name, value2, oldValue) {
        if (name === "style" && value2 !== oldValue && !this._settingCssText) {
          this._settingCssText = true;
          this._style.cssText = value2;
          this._settingCssText = false;
        } else if (name.startsWith("on")) {
          this._globalEventChanged(name.substring(2));
        }
        super._attrModified(name, value2, oldValue);
      }
      get offsetParent() {
        return null;
      }
      get offsetTop() {
        return 0;
      }
      get offsetLeft() {
        return 0;
      }
      get offsetWidth() {
        return 0;
      }
      get offsetHeight() {
        return 0;
      }
    };
    mixin2(HTMLElementImpl.prototype, ElementCSSInlineStyleImpl.prototype);
    mixin2(HTMLElementImpl.prototype, GlobalEventHandlersImpl.prototype);
    mixin2(HTMLElementImpl.prototype, HTMLOrSVGElementImpl.prototype);
    module.exports = {
      implementation: HTMLElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js
var require_HTMLElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var EventHandlerNonNull = require_EventHandlerNonNull();
    var OnErrorEventHandlerNonNull = require_OnErrorEventHandlerNonNull();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Element2 = require_Element();
    var interfaceName = "HTMLElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Element2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLElement2 extends globalObject.Element {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        click() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'click' called on an object that is not a valid instance of HTMLElement.");
          }
          return esValue[implSymbol].click();
        }
        attachInternals() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'attachInternals' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].attachInternals());
        }
        focus() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'focus' called on an object that is not a valid instance of HTMLElement.");
          }
          return esValue[implSymbol].focus();
        }
        blur() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'blur' called on an object that is not a valid instance of HTMLElement.");
          }
          return esValue[implSymbol].blur();
        }
        get title() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get title' called on an object that is not a valid instance of HTMLElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("title");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set title(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set title' called on an object that is not a valid instance of HTMLElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'title' property on 'HTMLElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("title", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get lang() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get lang' called on an object that is not a valid instance of HTMLElement.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("lang");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set lang(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set lang' called on an object that is not a valid instance of HTMLElement.");
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'lang' property on 'HTMLElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("lang", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get translate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get translate' called on an object that is not a valid instance of HTMLElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["translate"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set translate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set translate' called on an object that is not a valid instance of HTMLElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'translate' property on 'HTMLElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["translate"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get dir() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get dir' called on an object that is not a valid instance of HTMLElement.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["dir"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set dir(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set dir' called on an object that is not a valid instance of HTMLElement.");
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'dir' property on 'HTMLElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["dir"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get hidden() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get hidden' called on an object that is not a valid instance of HTMLElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("hidden") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set hidden(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set hidden' called on an object that is not a valid instance of HTMLElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'hidden' property on 'HTMLElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("hidden", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("hidden");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get accessKey() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get accessKey' called on an object that is not a valid instance of HTMLElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("accesskey");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set accessKey(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set accessKey' called on an object that is not a valid instance of HTMLElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'accessKey' property on 'HTMLElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("accesskey", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get draggable() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get draggable' called on an object that is not a valid instance of HTMLElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["draggable"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set draggable(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set draggable' called on an object that is not a valid instance of HTMLElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'draggable' property on 'HTMLElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["draggable"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get offsetParent() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get offsetParent' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["offsetParent"]);
        }
        get offsetTop() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get offsetTop' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return esValue[implSymbol]["offsetTop"];
        }
        get offsetLeft() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get offsetLeft' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return esValue[implSymbol]["offsetLeft"];
        }
        get offsetWidth() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get offsetWidth' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return esValue[implSymbol]["offsetWidth"];
        }
        get offsetHeight() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get offsetHeight' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return esValue[implSymbol]["offsetHeight"];
        }
        get style() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get style' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.getSameObject(this, "style", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["style"]);
          });
        }
        set style(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set style' called on an object that is not a valid instance of HTMLElement."
            );
          }
          const Q = esValue["style"];
          if (!utils2.isObject(Q)) {
            throw new globalObject.TypeError("Property 'style' is not an object");
          }
          Reflect.set(Q, "cssText", V);
        }
        get onabort() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onabort' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onabort"]);
        }
        set onabort(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onabort' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onabort' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onabort"] = V;
        }
        get onauxclick() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onauxclick' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onauxclick"]);
        }
        set onauxclick(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onauxclick' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onauxclick' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onauxclick"] = V;
        }
        get onbeforeinput() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforeinput' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforeinput"]);
        }
        set onbeforeinput(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforeinput' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforeinput' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onbeforeinput"] = V;
        }
        get onbeforematch() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforematch' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforematch"]);
        }
        set onbeforematch(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforematch' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforematch' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onbeforematch"] = V;
        }
        get onbeforetoggle() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforetoggle' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforetoggle"]);
        }
        set onbeforetoggle(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforetoggle' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforetoggle' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onbeforetoggle"] = V;
        }
        get onblur() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onblur' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onblur"]);
        }
        set onblur(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onblur' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onblur' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onblur"] = V;
        }
        get oncancel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncancel' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncancel"]);
        }
        set oncancel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncancel' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncancel' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["oncancel"] = V;
        }
        get oncanplay() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncanplay' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncanplay"]);
        }
        set oncanplay(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncanplay' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncanplay' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["oncanplay"] = V;
        }
        get oncanplaythrough() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncanplaythrough' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncanplaythrough"]);
        }
        set oncanplaythrough(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncanplaythrough' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncanplaythrough' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["oncanplaythrough"] = V;
        }
        get onchange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onchange' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onchange"]);
        }
        set onchange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onchange' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onchange' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onchange"] = V;
        }
        get onclick() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onclick' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onclick"]);
        }
        set onclick(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onclick' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onclick' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onclick"] = V;
        }
        get onclose() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onclose' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onclose"]);
        }
        set onclose(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onclose' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onclose' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onclose"] = V;
        }
        get oncontextlost() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncontextlost' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncontextlost"]);
        }
        set oncontextlost(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncontextlost' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncontextlost' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["oncontextlost"] = V;
        }
        get oncontextmenu() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncontextmenu' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncontextmenu"]);
        }
        set oncontextmenu(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncontextmenu' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncontextmenu' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["oncontextmenu"] = V;
        }
        get oncontextrestored() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncontextrestored' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncontextrestored"]);
        }
        set oncontextrestored(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncontextrestored' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncontextrestored' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["oncontextrestored"] = V;
        }
        get oncopy() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncopy' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncopy"]);
        }
        set oncopy(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncopy' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncopy' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["oncopy"] = V;
        }
        get oncuechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncuechange' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncuechange"]);
        }
        set oncuechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncuechange' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncuechange' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["oncuechange"] = V;
        }
        get oncut() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncut' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncut"]);
        }
        set oncut(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncut' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncut' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["oncut"] = V;
        }
        get ondblclick() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondblclick' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondblclick"]);
        }
        set ondblclick(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondblclick' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondblclick' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ondblclick"] = V;
        }
        get ondrag() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondrag' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondrag"]);
        }
        set ondrag(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondrag' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondrag' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ondrag"] = V;
        }
        get ondragend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragend' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragend"]);
        }
        set ondragend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragend' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragend' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ondragend"] = V;
        }
        get ondragenter() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragenter' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragenter"]);
        }
        set ondragenter(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragenter' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragenter' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ondragenter"] = V;
        }
        get ondragleave() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragleave' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragleave"]);
        }
        set ondragleave(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragleave' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragleave' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ondragleave"] = V;
        }
        get ondragover() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragover' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragover"]);
        }
        set ondragover(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragover' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragover' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ondragover"] = V;
        }
        get ondragstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragstart' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragstart"]);
        }
        set ondragstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragstart' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragstart' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ondragstart"] = V;
        }
        get ondrop() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondrop' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondrop"]);
        }
        set ondrop(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondrop' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondrop' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ondrop"] = V;
        }
        get ondurationchange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondurationchange' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondurationchange"]);
        }
        set ondurationchange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondurationchange' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondurationchange' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ondurationchange"] = V;
        }
        get onemptied() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onemptied' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onemptied"]);
        }
        set onemptied(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onemptied' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onemptied' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onemptied"] = V;
        }
        get onended() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onended' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onended"]);
        }
        set onended(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onended' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onended' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onended"] = V;
        }
        get onerror() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onerror' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onerror"]);
        }
        set onerror(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onerror' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = OnErrorEventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onerror' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onerror"] = V;
        }
        get onfocus() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onfocus' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onfocus"]);
        }
        set onfocus(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onfocus' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onfocus' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onfocus"] = V;
        }
        get onformdata() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onformdata' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onformdata"]);
        }
        set onformdata(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onformdata' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onformdata' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onformdata"] = V;
        }
        get oninput() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oninput' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oninput"]);
        }
        set oninput(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oninput' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oninput' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["oninput"] = V;
        }
        get oninvalid() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oninvalid' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oninvalid"]);
        }
        set oninvalid(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oninvalid' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oninvalid' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["oninvalid"] = V;
        }
        get onkeydown() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onkeydown' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onkeydown"]);
        }
        set onkeydown(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onkeydown' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onkeydown' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onkeydown"] = V;
        }
        get onkeypress() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onkeypress' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onkeypress"]);
        }
        set onkeypress(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onkeypress' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onkeypress' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onkeypress"] = V;
        }
        get onkeyup() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onkeyup' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onkeyup"]);
        }
        set onkeyup(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onkeyup' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onkeyup' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onkeyup"] = V;
        }
        get onload() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onload' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onload"]);
        }
        set onload(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onload' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onload' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onload"] = V;
        }
        get onloadeddata() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onloadeddata' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onloadeddata"]);
        }
        set onloadeddata(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onloadeddata' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onloadeddata' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onloadeddata"] = V;
        }
        get onloadedmetadata() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onloadedmetadata' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onloadedmetadata"]);
        }
        set onloadedmetadata(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onloadedmetadata' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onloadedmetadata' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onloadedmetadata"] = V;
        }
        get onloadstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onloadstart' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onloadstart"]);
        }
        set onloadstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onloadstart' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onloadstart' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onloadstart"] = V;
        }
        get onmousedown() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmousedown' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmousedown"]);
        }
        set onmousedown(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmousedown' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmousedown' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onmousedown"] = V;
        }
        get onmouseenter() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseenter"]);
        }
        set onmouseenter(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseenter' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onmouseenter"] = V;
        }
        get onmouseleave() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseleave"]);
        }
        set onmouseleave(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseleave' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onmouseleave"] = V;
        }
        get onmousemove() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmousemove' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmousemove"]);
        }
        set onmousemove(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmousemove' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmousemove' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onmousemove"] = V;
        }
        get onmouseout() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmouseout' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseout"]);
        }
        set onmouseout(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmouseout' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseout' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onmouseout"] = V;
        }
        get onmouseover() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmouseover' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseover"]);
        }
        set onmouseover(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmouseover' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseover' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onmouseover"] = V;
        }
        get onmouseup() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmouseup' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseup"]);
        }
        set onmouseup(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmouseup' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseup' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onmouseup"] = V;
        }
        get onpaste() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onpaste' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpaste"]);
        }
        set onpaste(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onpaste' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpaste' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onpaste"] = V;
        }
        get onpause() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onpause' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpause"]);
        }
        set onpause(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onpause' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpause' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onpause"] = V;
        }
        get onplay() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onplay' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onplay"]);
        }
        set onplay(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onplay' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onplay' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onplay"] = V;
        }
        get onplaying() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onplaying' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onplaying"]);
        }
        set onplaying(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onplaying' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onplaying' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onplaying"] = V;
        }
        get onprogress() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onprogress' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onprogress"]);
        }
        set onprogress(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onprogress' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onprogress' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onprogress"] = V;
        }
        get onratechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onratechange' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onratechange"]);
        }
        set onratechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onratechange' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onratechange' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onratechange"] = V;
        }
        get onreset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onreset' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onreset"]);
        }
        set onreset(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onreset' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onreset' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onreset"] = V;
        }
        get onresize() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onresize' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onresize"]);
        }
        set onresize(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onresize' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onresize' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onresize"] = V;
        }
        get onscroll() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onscroll' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onscroll"]);
        }
        set onscroll(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onscroll' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onscroll' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onscroll"] = V;
        }
        get onscrollend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onscrollend' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onscrollend"]);
        }
        set onscrollend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onscrollend' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onscrollend' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onscrollend"] = V;
        }
        get onsecuritypolicyviolation() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onsecuritypolicyviolation' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onsecuritypolicyviolation"]);
        }
        set onsecuritypolicyviolation(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onsecuritypolicyviolation' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onsecuritypolicyviolation' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onsecuritypolicyviolation"] = V;
        }
        get onseeked() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onseeked' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onseeked"]);
        }
        set onseeked(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onseeked' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onseeked' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onseeked"] = V;
        }
        get onseeking() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onseeking' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onseeking"]);
        }
        set onseeking(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onseeking' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onseeking' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onseeking"] = V;
        }
        get onselect() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onselect' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onselect"]);
        }
        set onselect(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onselect' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onselect' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onselect"] = V;
        }
        get onslotchange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onslotchange' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onslotchange"]);
        }
        set onslotchange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onslotchange' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onslotchange' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onslotchange"] = V;
        }
        get onstalled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onstalled' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onstalled"]);
        }
        set onstalled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onstalled' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onstalled' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onstalled"] = V;
        }
        get onsubmit() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onsubmit' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onsubmit"]);
        }
        set onsubmit(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onsubmit' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onsubmit' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onsubmit"] = V;
        }
        get onsuspend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onsuspend' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onsuspend"]);
        }
        set onsuspend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onsuspend' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onsuspend' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onsuspend"] = V;
        }
        get ontimeupdate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontimeupdate' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontimeupdate"]);
        }
        set ontimeupdate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontimeupdate' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontimeupdate' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ontimeupdate"] = V;
        }
        get ontoggle() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontoggle' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontoggle"]);
        }
        set ontoggle(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontoggle' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontoggle' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ontoggle"] = V;
        }
        get onvolumechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onvolumechange' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onvolumechange"]);
        }
        set onvolumechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onvolumechange' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onvolumechange' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onvolumechange"] = V;
        }
        get onwaiting() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwaiting' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwaiting"]);
        }
        set onwaiting(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwaiting' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwaiting' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onwaiting"] = V;
        }
        get onwebkitanimationend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwebkitanimationend' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationend"]);
        }
        set onwebkitanimationend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwebkitanimationend' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwebkitanimationend' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onwebkitanimationend"] = V;
        }
        get onwebkitanimationiteration() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwebkitanimationiteration' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationiteration"]);
        }
        set onwebkitanimationiteration(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwebkitanimationiteration' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwebkitanimationiteration' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onwebkitanimationiteration"] = V;
        }
        get onwebkitanimationstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwebkitanimationstart' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationstart"]);
        }
        set onwebkitanimationstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwebkitanimationstart' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwebkitanimationstart' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onwebkitanimationstart"] = V;
        }
        get onwebkittransitionend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwebkittransitionend' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwebkittransitionend"]);
        }
        set onwebkittransitionend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwebkittransitionend' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwebkittransitionend' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onwebkittransitionend"] = V;
        }
        get onwheel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwheel' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwheel"]);
        }
        set onwheel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwheel' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwheel' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["onwheel"] = V;
        }
        get ontouchstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontouchstart' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontouchstart"]);
        }
        set ontouchstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontouchstart' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontouchstart' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ontouchstart"] = V;
        }
        get ontouchend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontouchend' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontouchend"]);
        }
        set ontouchend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontouchend' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontouchend' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ontouchend"] = V;
        }
        get ontouchmove() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontouchmove' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontouchmove"]);
        }
        set ontouchmove(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontouchmove' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontouchmove' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ontouchmove"] = V;
        }
        get ontouchcancel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontouchcancel' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontouchcancel"]);
        }
        set ontouchcancel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontouchcancel' called on an object that is not a valid instance of HTMLElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontouchcancel' property on 'HTMLElement': The provided value"
            });
          }
          esValue[implSymbol]["ontouchcancel"] = V;
        }
        get dataset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get dataset' called on an object that is not a valid instance of HTMLElement."
            );
          }
          return utils2.getSameObject(this, "dataset", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["dataset"]);
          });
        }
        get nonce() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get nonce' called on an object that is not a valid instance of HTMLElement."
            );
          }
          const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("nonce");
          return value2 === null ? "" : value2;
        }
        set nonce(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set nonce' called on an object that is not a valid instance of HTMLElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'nonce' property on 'HTMLElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]._reflectSetTheContentAttribute("nonce", V);
        }
        get tabIndex() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get tabIndex' called on an object that is not a valid instance of HTMLElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["tabIndex"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set tabIndex(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set tabIndex' called on an object that is not a valid instance of HTMLElement."
            );
          }
          V = conversions["long"](V, {
            context: "Failed to set the 'tabIndex' property on 'HTMLElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["tabIndex"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLElement2.prototype, {
        click: { enumerable: true },
        attachInternals: { enumerable: true },
        focus: { enumerable: true },
        blur: { enumerable: true },
        title: { enumerable: true },
        lang: { enumerable: true },
        translate: { enumerable: true },
        dir: { enumerable: true },
        hidden: { enumerable: true },
        accessKey: { enumerable: true },
        draggable: { enumerable: true },
        offsetParent: { enumerable: true },
        offsetTop: { enumerable: true },
        offsetLeft: { enumerable: true },
        offsetWidth: { enumerable: true },
        offsetHeight: { enumerable: true },
        style: { enumerable: true },
        onabort: { enumerable: true },
        onauxclick: { enumerable: true },
        onbeforeinput: { enumerable: true },
        onbeforematch: { enumerable: true },
        onbeforetoggle: { enumerable: true },
        onblur: { enumerable: true },
        oncancel: { enumerable: true },
        oncanplay: { enumerable: true },
        oncanplaythrough: { enumerable: true },
        onchange: { enumerable: true },
        onclick: { enumerable: true },
        onclose: { enumerable: true },
        oncontextlost: { enumerable: true },
        oncontextmenu: { enumerable: true },
        oncontextrestored: { enumerable: true },
        oncopy: { enumerable: true },
        oncuechange: { enumerable: true },
        oncut: { enumerable: true },
        ondblclick: { enumerable: true },
        ondrag: { enumerable: true },
        ondragend: { enumerable: true },
        ondragenter: { enumerable: true },
        ondragleave: { enumerable: true },
        ondragover: { enumerable: true },
        ondragstart: { enumerable: true },
        ondrop: { enumerable: true },
        ondurationchange: { enumerable: true },
        onemptied: { enumerable: true },
        onended: { enumerable: true },
        onerror: { enumerable: true },
        onfocus: { enumerable: true },
        onformdata: { enumerable: true },
        oninput: { enumerable: true },
        oninvalid: { enumerable: true },
        onkeydown: { enumerable: true },
        onkeypress: { enumerable: true },
        onkeyup: { enumerable: true },
        onload: { enumerable: true },
        onloadeddata: { enumerable: true },
        onloadedmetadata: { enumerable: true },
        onloadstart: { enumerable: true },
        onmousedown: { enumerable: true },
        onmouseenter: { enumerable: true },
        onmouseleave: { enumerable: true },
        onmousemove: { enumerable: true },
        onmouseout: { enumerable: true },
        onmouseover: { enumerable: true },
        onmouseup: { enumerable: true },
        onpaste: { enumerable: true },
        onpause: { enumerable: true },
        onplay: { enumerable: true },
        onplaying: { enumerable: true },
        onprogress: { enumerable: true },
        onratechange: { enumerable: true },
        onreset: { enumerable: true },
        onresize: { enumerable: true },
        onscroll: { enumerable: true },
        onscrollend: { enumerable: true },
        onsecuritypolicyviolation: { enumerable: true },
        onseeked: { enumerable: true },
        onseeking: { enumerable: true },
        onselect: { enumerable: true },
        onslotchange: { enumerable: true },
        onstalled: { enumerable: true },
        onsubmit: { enumerable: true },
        onsuspend: { enumerable: true },
        ontimeupdate: { enumerable: true },
        ontoggle: { enumerable: true },
        onvolumechange: { enumerable: true },
        onwaiting: { enumerable: true },
        onwebkitanimationend: { enumerable: true },
        onwebkitanimationiteration: { enumerable: true },
        onwebkitanimationstart: { enumerable: true },
        onwebkittransitionend: { enumerable: true },
        onwheel: { enumerable: true },
        ontouchstart: { enumerable: true },
        ontouchend: { enumerable: true },
        ontouchmove: { enumerable: true },
        ontouchcancel: { enumerable: true },
        dataset: { enumerable: true },
        nonce: { enumerable: true },
        tabIndex: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLElement2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLElement2
      });
    };
    var Impl = require_HTMLElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/cssom/StyleSheetList-impl.js
var require_StyleSheetList_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/cssom/StyleSheetList-impl.js"(exports) {
    "use strict";
    var idlUtils = require_utils16();
    exports.implementation = class StyleSheetList {
      constructor() {
        this._list = [];
      }
      get length() {
        return this._list.length;
      }
      item(index2) {
        const result = this._list[index2];
        return result !== void 0 ? result : null;
      }
      get [idlUtils.supportedPropertyIndices]() {
        return this._list.keys();
      }
      _add(sheet) {
        const { _list } = this;
        if (!_list.includes(sheet)) {
          _list.push(sheet);
        }
      }
      _remove(sheet) {
        const { _list } = this;
        const index2 = _list.indexOf(sheet);
        if (index2 >= 0) {
          _list.splice(index2, 1);
        }
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/StyleSheetList.js
var require_StyleSheetList = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/StyleSheetList.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "StyleSheetList";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'StyleSheetList'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["StyleSheetList"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class StyleSheetList {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        item(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'item' called on an object that is not a valid instance of StyleSheetList.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'item' on 'StyleSheetList': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'item' on 'StyleSheetList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].item(...args));
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get length' called on an object that is not a valid instance of StyleSheetList."
            );
          }
          return esValue[implSymbol]["length"];
        }
      }
      Object.defineProperties(StyleSheetList.prototype, {
        item: { enumerable: true },
        length: { enumerable: true },
        [Symbol.toStringTag]: { value: "StyleSheetList", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = StyleSheetList;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: StyleSheetList
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            return {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            ownDesc = {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          return false;
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !(target[implSymbol].item(index2) !== null);
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_StyleSheetList_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/text.js
var require_text = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/text.js"(exports) {
    "use strict";
    var { domSymbolTree } = require_internal_constants();
    var { CDATA_SECTION_NODE, TEXT_NODE } = require_node_type();
    exports.childTextContent = (node) => {
      let result = "";
      const iterator2 = domSymbolTree.childrenIterator(node);
      for (const child of iterator2) {
        if (child.nodeType === TEXT_NODE || // The CDataSection extends Text.
        child.nodeType === CDATA_SECTION_NODE) {
          result += child.data;
        }
      }
      return result;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/History-impl.js
var require_History_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/History-impl.js"(exports) {
    "use strict";
    var DOMException2 = require_DOMException();
    var { serializeURL } = require_whatwg_url();
    exports.implementation = class HistoryImpl {
      constructor(globalObject, args, privateData) {
        this._window = privateData.window;
        this._document = privateData.document;
        this._actAsIfLocationReloadCalled = privateData.actAsIfLocationReloadCalled;
        this._state = null;
        this._globalObject = globalObject;
      }
      _guardAgainstInactiveDocuments() {
        if (!this._window) {
          throw DOMException2.create(this._globalObject, [
            "History object is associated with a document that is not fully active.",
            "SecurityError"
          ]);
        }
      }
      get length() {
        this._guardAgainstInactiveDocuments();
        return this._window._sessionHistory.length;
      }
      get state() {
        this._guardAgainstInactiveDocuments();
        return this._state;
      }
      go(delta) {
        this._guardAgainstInactiveDocuments();
        if (delta === 0) {
          this._actAsIfLocationReloadCalled();
        } else {
          this._window._sessionHistory.traverseByDelta(delta);
        }
      }
      back() {
        this.go(-1);
      }
      forward() {
        this.go(1);
      }
      pushState(data2, unused, url3) {
        this._sharedPushAndReplaceState(data2, url3, "push");
      }
      replaceState(data2, unused, url3) {
        this._sharedPushAndReplaceState(data2, url3, "replace");
      }
      // https://html.spec.whatwg.org/#shared-history-push/replace-state-steps
      _sharedPushAndReplaceState(data2, url3, historyHandling) {
        this._guardAgainstInactiveDocuments();
        let newURL = this._document._URL;
        if (url3 !== null && url3.length > 0) {
          newURL = this._document.encodingParseAURL(url3);
          if (newURL === null) {
            throw DOMException2.create(this._globalObject, [
              `Could not parse url argument "${url3}" to ${historyHandling}State() against base URL "${this._document.baseURLSerialized()}".`,
              "SecurityError"
            ]);
          }
          if (!canHaveItsURLRewritten(this._document, newURL)) {
            throw DOMException2.create(this._globalObject, [
              `${historyHandling}State() cannot update history to the URL ${serializeURL(newURL)}.`,
              "SecurityError"
            ]);
          }
        }
        if (historyHandling === "push") {
          this._window._sessionHistory.removeAllEntriesAfterCurrentEntry();
          this._window._sessionHistory.clearHistoryTraversalTasks();
          const newEntry = {
            document: this._document,
            stateObject: data2,
            url: newURL
          };
          this._window._sessionHistory.addEntryAfterCurrentEntry(newEntry);
          this._window._sessionHistory.updateCurrentEntry(newEntry);
        } else {
          const { currentEntry } = this._window._sessionHistory;
          currentEntry.stateObject = data2;
          currentEntry.url = newURL;
        }
        this._document._URL = newURL;
        this._document._clearBaseURLCache();
        this._state = data2;
        this._document._latestEntry = this._window._sessionHistory.currentEntry;
      }
    };
    function canHaveItsURLRewritten(document2, targetURL) {
      const documentURL = document2._URL;
      if (targetURL.scheme !== documentURL.scheme || targetURL.username !== documentURL.username || targetURL.password !== documentURL.password || targetURL.host !== documentURL.host || targetURL.port !== documentURL.port) {
        return false;
      }
      if (targetURL.scheme === "https" || targetURL.scheme === "http") {
        return true;
      }
      if (targetURL.scheme === "file" && targetURL.path !== documentURL.path) {
        return false;
      }
      if (targetURL.path.join("/") !== documentURL.path.join("/") || targetURL.query !== documentURL.query) {
        return false;
      }
      return true;
    }
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/History.js
var require_History = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/History.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "History";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'History'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["History"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class History {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        go() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'go' called on an object that is not a valid instance of History.");
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["long"](curArg, {
                context: "Failed to execute 'go' on 'History': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].go(...args);
        }
        back() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'back' called on an object that is not a valid instance of History.");
          }
          return esValue[implSymbol].back();
        }
        forward() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'forward' called on an object that is not a valid instance of History.");
          }
          return esValue[implSymbol].forward();
        }
        pushState(data2, title) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'pushState' called on an object that is not a valid instance of History.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'pushState' on 'History': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["any"](curArg, {
              context: "Failed to execute 'pushState' on 'History': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'pushState' on 'History': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = conversions["USVString"](curArg, {
                  context: "Failed to execute 'pushState' on 'History': parameter 3",
                  globals: globalObject
                });
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].pushState(...args);
        }
        replaceState(data2, title) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'replaceState' called on an object that is not a valid instance of History.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'replaceState' on 'History': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["any"](curArg, {
              context: "Failed to execute 'replaceState' on 'History': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'replaceState' on 'History': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = conversions["USVString"](curArg, {
                  context: "Failed to execute 'replaceState' on 'History': parameter 3",
                  globals: globalObject
                });
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].replaceState(...args);
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get length' called on an object that is not a valid instance of History.");
          }
          return esValue[implSymbol]["length"];
        }
        get state() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get state' called on an object that is not a valid instance of History.");
          }
          return esValue[implSymbol]["state"];
        }
      }
      Object.defineProperties(History.prototype, {
        go: { enumerable: true },
        back: { enumerable: true },
        forward: { enumerable: true },
        pushState: { enumerable: true },
        replaceState: { enumerable: true },
        length: { enumerable: true },
        state: { enumerable: true },
        [Symbol.toStringTag]: { value: "History", configurable: true }
      });
      ctorRegistry[interfaceName] = History;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: History
      });
    };
    var Impl = require_History_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/navigation.js
var require_navigation = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/navigation.js"(exports) {
    "use strict";
    var whatwgURL = require_whatwg_url();
    var notImplemented = require_not_implemented();
    var reportException = require_runtime_script_errors();
    var idlUtils = require_utils16();
    exports.evaluateJavaScriptURL = (window2, urlRecord) => {
      const urlString = whatwgURL.serializeURL(urlRecord);
      const encodedScriptSource = urlString.substring("javascript:".length);
      const scriptSource = Buffer.from(whatwgURL.percentDecodeString(encodedScriptSource)).toString();
      if (window2._runScripts === "dangerously") {
        try {
          return window2.eval(scriptSource);
        } catch (e4) {
          reportException(window2, e4, urlString);
        }
      }
      return void 0;
    };
    exports.navigate = (window2, newURL, flags) => {
      if (!window2._document) {
        return;
      }
      const document2 = idlUtils.implForWrapper(window2._document);
      const currentURL = document2._URL;
      if (!flags.reloadTriggered && urlEquals(currentURL, newURL, { excludeFragments: true })) {
        if (newURL.fragment !== currentURL.fragment) {
          navigateToFragment(window2, newURL, flags);
        }
        return;
      }
      if (newURL.scheme === "javascript") {
        setTimeout(() => {
          const result = exports.evaluateJavaScriptURL(window2, newURL);
          if (typeof result === "string") {
            notImplemented("string results from 'javascript:' URLs", window2);
          }
        }, 0);
        return;
      }
      navigateFetch(window2);
    };
    function navigateToFragment(window2, newURL, flags) {
      const document2 = idlUtils.implForWrapper(window2._document);
      window2._sessionHistory.clearHistoryTraversalTasks();
      if (!flags.replacement) {
        window2._sessionHistory.removeAllEntriesAfterCurrentEntry();
      }
      const newEntry = { document: document2, url: newURL };
      window2._sessionHistory.addEntryAfterCurrentEntry(newEntry);
      window2._sessionHistory.traverseHistory(newEntry, { nonBlockingEvents: true, replacement: flags.replacement });
    }
    function navigateFetch(window2) {
      notImplemented("navigation (except hash changes)", window2);
    }
    function urlEquals(a5, b3, flags) {
      const serializedA = whatwgURL.serializeURL(a5, flags.excludeFragments);
      const serializedB = whatwgURL.serializeURL(b3, flags.excludeFragments);
      return serializedA === serializedB;
    }
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/Location-impl.js
var require_Location_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/Location-impl.js"(exports) {
    "use strict";
    var whatwgURL = require_whatwg_url();
    var DOMException2 = require_DOMException();
    var { navigate } = require_navigation();
    exports.implementation = class LocationImpl {
      constructor(globalObject, args, privateData) {
        this._relevantDocument = privateData.relevantDocument;
        this.url = null;
        this._globalObject = globalObject;
      }
      get _url() {
        return this._relevantDocument._URL;
      }
      _locationObjectSetterNavigate(url3) {
        return this._locationObjectNavigate(url3);
      }
      _locationObjectNavigate(url3, { replacement = false } = {}) {
        navigate(this._relevantDocument._defaultView, url3, { replacement, exceptionsEnabled: true });
      }
      toString() {
        return this.href;
      }
      get href() {
        return whatwgURL.serializeURL(this._url);
      }
      set href(v3) {
        const newURL = whatwgURL.parseURL(v3, { baseURL: this._relevantDocument.baseURL() });
        if (newURL === null) {
          throw new TypeError(`Could not parse "${v3}" as a URL`);
        }
        this._locationObjectSetterNavigate(newURL);
      }
      get origin() {
        return whatwgURL.serializeURLOrigin(this._url);
      }
      get protocol() {
        return this._url.scheme + ":";
      }
      set protocol(v3) {
        const copyURL = { ...this._url };
        const possibleFailure = whatwgURL.basicURLParse(v3 + ":", { url: copyURL, stateOverride: "scheme start" });
        if (possibleFailure === null) {
          throw new TypeError(`Could not parse the URL after setting the procol to "${v3}"`);
        }
        if (copyURL.scheme !== "http" && copyURL.scheme !== "https") {
          return;
        }
        this._locationObjectSetterNavigate(copyURL);
      }
      get host() {
        const url3 = this._url;
        if (url3.host === null) {
          return "";
        }
        if (url3.port === null) {
          return whatwgURL.serializeHost(url3.host);
        }
        return whatwgURL.serializeHost(url3.host) + ":" + whatwgURL.serializeInteger(url3.port);
      }
      set host(v3) {
        const copyURL = { ...this._url };
        if (whatwgURL.hasAnOpaquePath(copyURL)) {
          return;
        }
        whatwgURL.basicURLParse(v3, { url: copyURL, stateOverride: "host" });
        this._locationObjectSetterNavigate(copyURL);
      }
      get hostname() {
        if (this._url.host === null) {
          return "";
        }
        return whatwgURL.serializeHost(this._url.host);
      }
      set hostname(v3) {
        const copyURL = { ...this._url };
        if (whatwgURL.hasAnOpaquePath(copyURL)) {
          return;
        }
        whatwgURL.basicURLParse(v3, { url: copyURL, stateOverride: "hostname" });
        this._locationObjectSetterNavigate(copyURL);
      }
      get port() {
        if (this._url.port === null) {
          return "";
        }
        return whatwgURL.serializeInteger(this._url.port);
      }
      set port(v3) {
        const copyURL = { ...this._url };
        if (whatwgURL.cannotHaveAUsernamePasswordPort(copyURL)) {
          return;
        }
        whatwgURL.basicURLParse(v3, { url: copyURL, stateOverride: "port" });
        this._locationObjectSetterNavigate(copyURL);
      }
      get pathname() {
        return whatwgURL.serializePath(this._url);
      }
      set pathname(v3) {
        const copyURL = { ...this._url };
        if (whatwgURL.hasAnOpaquePath(copyURL)) {
          return;
        }
        copyURL.path = [];
        whatwgURL.basicURLParse(v3, { url: copyURL, stateOverride: "path start" });
        this._locationObjectSetterNavigate(copyURL);
      }
      get search() {
        if (this._url.query === null || this._url.query === "") {
          return "";
        }
        return "?" + this._url.query;
      }
      set search(v3) {
        const copyURL = { ...this._url };
        if (v3 === "") {
          copyURL.query = null;
        } else {
          const input = v3[0] === "?" ? v3.substring(1) : v3;
          copyURL.query = "";
          whatwgURL.basicURLParse(input, {
            url: copyURL,
            stateOverride: "query",
            encodingOverride: this._relevantDocument.charset
          });
        }
        this._locationObjectSetterNavigate(copyURL);
      }
      get hash() {
        if (this._url.fragment === null || this._url.fragment === "") {
          return "";
        }
        return "#" + this._url.fragment;
      }
      set hash(v3) {
        const copyURL = { ...this._url };
        const input = v3[0] === "#" ? v3.substring(1) : v3;
        copyURL.fragment = "";
        whatwgURL.basicURLParse(input, { url: copyURL, stateOverride: "fragment" });
        if (copyURL.fragment === this._url.fragment) {
          return;
        }
        this._locationObjectSetterNavigate(copyURL);
      }
      assign(url3) {
        const parsedURL = this._relevantDocument.encodingParseAURL(url3);
        if (parsedURL === null) {
          throw DOMException2.create(this._globalObject, [
            `Could not resolve the given string "${url3}" relative to the base URL "${this._relevantDocument.URL}"`,
            "SyntaxError"
          ]);
        }
        this._locationObjectNavigate(parsedURL);
      }
      replace(url3) {
        const parsedURL = this._relevantDocument.encodingParseAURL(url3);
        if (parsedURL === null) {
          throw DOMException2.create(this._globalObject, [
            `Could not resolve the given string "${url3}" relative to the base URL "${this._relevantDocument.URL}"`,
            "SyntaxError"
          ]);
        }
        this._locationObjectNavigate(parsedURL, { replacement: true });
      }
      reload() {
        const flags = { replace: true, reloadTriggered: true, exceptionsEnabled: true };
        navigate(this._relevantDocument._defaultView, this._url, flags);
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Location.js
var require_Location = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Location.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "Location";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Location'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Location"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    function getUnforgeables(globalObject) {
      let unforgeables = unforgeablesMap.get(globalObject);
      if (unforgeables === void 0) {
        unforgeables = /* @__PURE__ */ Object.create(null);
        utils2.define(unforgeables, {
          assign(url3) {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError("'assign' called on an object that is not a valid instance of Location.");
            }
            if (arguments.length < 1) {
              throw new globalObject.TypeError(
                `Failed to execute 'assign' on 'Location': 1 argument required, but only ${arguments.length} present.`
              );
            }
            const args = [];
            {
              let curArg = arguments[0];
              curArg = conversions["USVString"](curArg, {
                context: "Failed to execute 'assign' on 'Location': parameter 1",
                globals: globalObject
              });
              args.push(curArg);
            }
            return esValue[implSymbol].assign(...args);
          },
          replace(url3) {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError("'replace' called on an object that is not a valid instance of Location.");
            }
            if (arguments.length < 1) {
              throw new globalObject.TypeError(
                `Failed to execute 'replace' on 'Location': 1 argument required, but only ${arguments.length} present.`
              );
            }
            const args = [];
            {
              let curArg = arguments[0];
              curArg = conversions["USVString"](curArg, {
                context: "Failed to execute 'replace' on 'Location': parameter 1",
                globals: globalObject
              });
              args.push(curArg);
            }
            return esValue[implSymbol].replace(...args);
          },
          reload() {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError("'reload' called on an object that is not a valid instance of Location.");
            }
            return esValue[implSymbol].reload();
          },
          get href() {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError("'get href' called on an object that is not a valid instance of Location.");
            }
            return esValue[implSymbol]["href"];
          },
          set href(V) {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError("'set href' called on an object that is not a valid instance of Location.");
            }
            V = conversions["USVString"](V, {
              context: "Failed to set the 'href' property on 'Location': The provided value",
              globals: globalObject
            });
            esValue[implSymbol]["href"] = V;
          },
          toString() {
            const esValue = this;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError("'toString' called on an object that is not a valid instance of Location.");
            }
            return esValue[implSymbol]["href"];
          },
          get origin() {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'get origin' called on an object that is not a valid instance of Location."
              );
            }
            return esValue[implSymbol]["origin"];
          },
          get protocol() {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'get protocol' called on an object that is not a valid instance of Location."
              );
            }
            return esValue[implSymbol]["protocol"];
          },
          set protocol(V) {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'set protocol' called on an object that is not a valid instance of Location."
              );
            }
            V = conversions["USVString"](V, {
              context: "Failed to set the 'protocol' property on 'Location': The provided value",
              globals: globalObject
            });
            esValue[implSymbol]["protocol"] = V;
          },
          get host() {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError("'get host' called on an object that is not a valid instance of Location.");
            }
            return esValue[implSymbol]["host"];
          },
          set host(V) {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError("'set host' called on an object that is not a valid instance of Location.");
            }
            V = conversions["USVString"](V, {
              context: "Failed to set the 'host' property on 'Location': The provided value",
              globals: globalObject
            });
            esValue[implSymbol]["host"] = V;
          },
          get hostname() {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'get hostname' called on an object that is not a valid instance of Location."
              );
            }
            return esValue[implSymbol]["hostname"];
          },
          set hostname(V) {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'set hostname' called on an object that is not a valid instance of Location."
              );
            }
            V = conversions["USVString"](V, {
              context: "Failed to set the 'hostname' property on 'Location': The provided value",
              globals: globalObject
            });
            esValue[implSymbol]["hostname"] = V;
          },
          get port() {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError("'get port' called on an object that is not a valid instance of Location.");
            }
            return esValue[implSymbol]["port"];
          },
          set port(V) {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError("'set port' called on an object that is not a valid instance of Location.");
            }
            V = conversions["USVString"](V, {
              context: "Failed to set the 'port' property on 'Location': The provided value",
              globals: globalObject
            });
            esValue[implSymbol]["port"] = V;
          },
          get pathname() {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'get pathname' called on an object that is not a valid instance of Location."
              );
            }
            return esValue[implSymbol]["pathname"];
          },
          set pathname(V) {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'set pathname' called on an object that is not a valid instance of Location."
              );
            }
            V = conversions["USVString"](V, {
              context: "Failed to set the 'pathname' property on 'Location': The provided value",
              globals: globalObject
            });
            esValue[implSymbol]["pathname"] = V;
          },
          get search() {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'get search' called on an object that is not a valid instance of Location."
              );
            }
            return esValue[implSymbol]["search"];
          },
          set search(V) {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'set search' called on an object that is not a valid instance of Location."
              );
            }
            V = conversions["USVString"](V, {
              context: "Failed to set the 'search' property on 'Location': The provided value",
              globals: globalObject
            });
            esValue[implSymbol]["search"] = V;
          },
          get hash() {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError("'get hash' called on an object that is not a valid instance of Location.");
            }
            return esValue[implSymbol]["hash"];
          },
          set hash(V) {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError("'set hash' called on an object that is not a valid instance of Location.");
            }
            V = conversions["USVString"](V, {
              context: "Failed to set the 'hash' property on 'Location': The provided value",
              globals: globalObject
            });
            esValue[implSymbol]["hash"] = V;
          }
        });
        Object.defineProperties(unforgeables, {
          assign: { configurable: false, writable: false },
          replace: { configurable: false, writable: false },
          reload: { configurable: false, writable: false },
          href: { configurable: false },
          toString: { configurable: false, writable: false },
          origin: { configurable: false },
          protocol: { configurable: false },
          host: { configurable: false },
          hostname: { configurable: false },
          port: { configurable: false },
          pathname: { configurable: false },
          search: { configurable: false },
          hash: { configurable: false }
        });
        unforgeablesMap.set(globalObject, unforgeables);
      }
      return unforgeables;
    }
    exports._internalSetup = (wrapper, globalObject) => {
      utils2.define(wrapper, getUnforgeables(globalObject));
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var unforgeablesMap = /* @__PURE__ */ new WeakMap();
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Location {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
      }
      Object.defineProperties(Location.prototype, { [Symbol.toStringTag]: { value: "Location", configurable: true } });
      ctorRegistry[interfaceName] = Location;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Location
      });
    };
    var Impl = require_Location_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/iterable-weak-set.js
var require_iterable_weak_set = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/iterable-weak-set.js"(exports, module) {
    "use strict";
    module.exports = class IterableWeakSet {
      constructor() {
        this._refSet = /* @__PURE__ */ new Set();
        this._refMap = /* @__PURE__ */ new WeakMap();
        this._finalizationRegistry = new FinalizationRegistry(({ ref, set }) => set.delete(ref));
      }
      add(value2) {
        if (!this._refMap.has(value2)) {
          const ref = new WeakRef(value2);
          this._refMap.set(value2, ref);
          this._refSet.add(ref);
          this._finalizationRegistry.register(value2, { ref, set: this._refSet }, ref);
        }
        return this;
      }
      delete(value2) {
        const ref = this._refMap.get(value2);
        if (!ref) {
          return false;
        }
        this._refMap.delete(value2);
        this._refSet.delete(ref);
        this._finalizationRegistry.unregister(ref);
        return true;
      }
      has(value2) {
        return this._refMap.has(value2);
      }
      *[Symbol.iterator]() {
        for (const ref of this._refSet) {
          const value2 = ref.deref();
          if (value2 === void 0) {
            continue;
          }
          yield value2;
        }
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/traversal/helpers.js
var require_helpers6 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/traversal/helpers.js"(exports) {
    "use strict";
    var DOMException2 = require_DOMException();
    var conversions = require_lib20();
    exports.FILTER_ACCEPT = 1;
    exports.FILTER_REJECT = 2;
    exports.FILTER_SKIP = 3;
    exports.filter = (nodeIteratorOrTreeWalkerImpl, nodeImpl) => {
      if (nodeIteratorOrTreeWalkerImpl._active) {
        throw DOMException2.create(nodeIteratorOrTreeWalkerImpl._globalObject, [
          "Recursive node filtering",
          "InvalidStateError"
        ]);
      }
      const n6 = nodeImpl.nodeType - 1;
      if (!(1 << n6 & nodeIteratorOrTreeWalkerImpl.whatToShow)) {
        return exports.FILTER_SKIP;
      }
      const { filter: filter3 } = nodeIteratorOrTreeWalkerImpl;
      if (filter3 === null) {
        return exports.FILTER_ACCEPT;
      }
      nodeIteratorOrTreeWalkerImpl._active = true;
      let result;
      try {
        result = filter3(nodeImpl);
      } finally {
        nodeIteratorOrTreeWalkerImpl._active = false;
      }
      result = conversions["unsigned short"](result);
      return result;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/traversal/TreeWalker-impl.js
var require_TreeWalker_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/traversal/TreeWalker-impl.js"(exports) {
    "use strict";
    var DOMException2 = require_DOMException();
    var { filter: filter3, FILTER_ACCEPT, FILTER_REJECT, FILTER_SKIP } = require_helpers6();
    var FIRST = false;
    var LAST = true;
    var NEXT = false;
    var PREVIOUS = true;
    exports.implementation = class TreeWalkerImpl {
      constructor(globalObject, args, privateData) {
        this._active = false;
        this.root = privateData.root;
        this.currentNode = this.root;
        this.whatToShow = privateData.whatToShow;
        this.filter = privateData.filter;
        this._globalObject = globalObject;
      }
      get currentNode() {
        return this._currentNode;
      }
      set currentNode(node) {
        if (node === null) {
          throw DOMException2.create(this._globalObject, ["Cannot set currentNode to null", "NotSupportedError"]);
        }
        this._currentNode = node;
      }
      parentNode() {
        let node = this._currentNode;
        while (node !== null && node !== this.root) {
          node = node.parentNode;
          if (node !== null && filter3(this, node) === FILTER_ACCEPT) {
            return this._currentNode = node;
          }
        }
        return null;
      }
      firstChild() {
        return this._traverseChildren(FIRST);
      }
      lastChild() {
        return this._traverseChildren(LAST);
      }
      previousSibling() {
        return this._traverseSiblings(PREVIOUS);
      }
      nextSibling() {
        return this._traverseSiblings(NEXT);
      }
      previousNode() {
        let node = this._currentNode;
        while (node !== this.root) {
          let sibling = node.previousSibling;
          while (sibling !== null) {
            node = sibling;
            let result = filter3(this, node);
            while (result !== FILTER_REJECT && node.hasChildNodes()) {
              node = node.lastChild;
              result = filter3(this, node);
            }
            if (result === FILTER_ACCEPT) {
              return this._currentNode = node;
            }
            sibling = node.previousSibling;
          }
          if (node === this.root || node.parentNode === null) {
            return null;
          }
          node = node.parentNode;
          if (filter3(this, node) === FILTER_ACCEPT) {
            return this._currentNode = node;
          }
        }
        return null;
      }
      nextNode() {
        let node = this._currentNode;
        let result = FILTER_ACCEPT;
        for (; ; ) {
          while (result !== FILTER_REJECT && node.hasChildNodes()) {
            node = node.firstChild;
            result = filter3(this, node);
            if (result === FILTER_ACCEPT) {
              return this._currentNode = node;
            }
          }
          do {
            if (node === this.root) {
              return null;
            }
            const sibling = node.nextSibling;
            if (sibling !== null) {
              node = sibling;
              break;
            }
            node = node.parentNode;
          } while (node !== null);
          if (node === null) {
            return null;
          }
          result = filter3(this, node);
          if (result === FILTER_ACCEPT) {
            return this._currentNode = node;
          }
        }
      }
      _traverseChildren(type) {
        let node = this._currentNode;
        node = type === FIRST ? node.firstChild : node.lastChild;
        if (node === null) {
          return null;
        }
        main: for (; ; ) {
          const result = filter3(this, node);
          if (result === FILTER_ACCEPT) {
            return this._currentNode = node;
          }
          if (result === FILTER_SKIP) {
            const child = type === FIRST ? node.firstChild : node.lastChild;
            if (child !== null) {
              node = child;
              continue;
            }
          }
          for (; ; ) {
            const sibling = type === FIRST ? node.nextSibling : node.previousSibling;
            if (sibling !== null) {
              node = sibling;
              continue main;
            }
            const parent = node.parentNode;
            if (parent === null || parent === this.root || parent === this._currentNode) {
              return null;
            }
            node = parent;
          }
        }
      }
      _traverseSiblings(type) {
        let node = this._currentNode;
        if (node === this.root) {
          return null;
        }
        for (; ; ) {
          let sibling = type === NEXT ? node.nextSibling : node.previousSibling;
          while (sibling !== null) {
            node = sibling;
            const result = filter3(this, node);
            if (result === FILTER_ACCEPT) {
              return this._currentNode = node;
            }
            sibling = type === NEXT ? node.firstChild : node.lastChild;
            if (result === FILTER_REJECT || sibling === null) {
              sibling = type === NEXT ? node.nextSibling : node.previousSibling;
            }
          }
          node = node.parentNode;
          if (node === null || node === this.root) {
            return null;
          }
          if (filter3(this, node) === FILTER_ACCEPT) {
            return null;
          }
        }
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/TreeWalker.js
var require_TreeWalker = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/TreeWalker.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Node = require_Node();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "TreeWalker";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'TreeWalker'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["TreeWalker"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class TreeWalker {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        parentNode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'parentNode' called on an object that is not a valid instance of TreeWalker."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].parentNode());
        }
        firstChild() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'firstChild' called on an object that is not a valid instance of TreeWalker."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].firstChild());
        }
        lastChild() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'lastChild' called on an object that is not a valid instance of TreeWalker.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].lastChild());
        }
        previousSibling() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'previousSibling' called on an object that is not a valid instance of TreeWalker."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].previousSibling());
        }
        nextSibling() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'nextSibling' called on an object that is not a valid instance of TreeWalker."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].nextSibling());
        }
        previousNode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'previousNode' called on an object that is not a valid instance of TreeWalker."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].previousNode());
        }
        nextNode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'nextNode' called on an object that is not a valid instance of TreeWalker.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].nextNode());
        }
        get root() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get root' called on an object that is not a valid instance of TreeWalker.");
          }
          return utils2.getSameObject(this, "root", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["root"]);
          });
        }
        get whatToShow() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get whatToShow' called on an object that is not a valid instance of TreeWalker."
            );
          }
          return esValue[implSymbol]["whatToShow"];
        }
        get filter() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get filter' called on an object that is not a valid instance of TreeWalker."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["filter"]);
        }
        get currentNode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get currentNode' called on an object that is not a valid instance of TreeWalker."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["currentNode"]);
        }
        set currentNode(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set currentNode' called on an object that is not a valid instance of TreeWalker."
            );
          }
          V = Node.convert(globalObject, V, {
            context: "Failed to set the 'currentNode' property on 'TreeWalker': The provided value"
          });
          esValue[implSymbol]["currentNode"] = V;
        }
      }
      Object.defineProperties(TreeWalker.prototype, {
        parentNode: { enumerable: true },
        firstChild: { enumerable: true },
        lastChild: { enumerable: true },
        previousSibling: { enumerable: true },
        nextSibling: { enumerable: true },
        previousNode: { enumerable: true },
        nextNode: { enumerable: true },
        root: { enumerable: true },
        whatToShow: { enumerable: true },
        filter: { enumerable: true },
        currentNode: { enumerable: true },
        [Symbol.toStringTag]: { value: "TreeWalker", configurable: true }
      });
      ctorRegistry[interfaceName] = TreeWalker;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: TreeWalker
      });
    };
    var Impl = require_TreeWalker_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/traversal/NodeIterator-impl.js
var require_NodeIterator_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/traversal/NodeIterator-impl.js"(exports) {
    "use strict";
    var { domSymbolTree } = require_internal_constants();
    var { filter: filter3, FILTER_ACCEPT } = require_helpers6();
    exports.implementation = class NodeIteratorImpl {
      constructor(globalObject, args, privateData) {
        this._active = false;
        this.root = privateData.root;
        this.whatToShow = privateData.whatToShow;
        this.filter = privateData.filter;
        this._referenceNode = this.root;
        this._pointerBeforeReferenceNode = true;
        this._globalObject = globalObject;
      }
      get referenceNode() {
        return this._referenceNode;
      }
      get pointerBeforeReferenceNode() {
        return this._pointerBeforeReferenceNode;
      }
      nextNode() {
        return this._traverse("next");
      }
      previousNode() {
        return this._traverse("previous");
      }
      detach() {
      }
      // Called by Documents.
      _preRemovingSteps(toBeRemovedNode) {
        if (!toBeRemovedNode.contains(this._referenceNode) || toBeRemovedNode === this.root) {
          return;
        }
        if (this._pointerBeforeReferenceNode) {
          let next = null;
          let candidateForNext = domSymbolTree.following(toBeRemovedNode, { skipChildren: true });
          while (candidateForNext !== null) {
            if (this.root.contains(candidateForNext)) {
              next = candidateForNext;
              break;
            }
            candidateForNext = domSymbolTree.following(candidateForNext, { skipChildren: true });
          }
          if (next !== null) {
            this._referenceNode = next;
            return;
          }
          this._pointerBeforeReferenceNode = false;
        }
        const { previousSibling } = toBeRemovedNode;
        this._referenceNode = previousSibling === null ? toBeRemovedNode.parentNode : domSymbolTree.lastInclusiveDescendant(toBeRemovedNode.previousSibling);
      }
      _traverse(direction) {
        let node = this._referenceNode;
        let beforeNode = this._pointerBeforeReferenceNode;
        while (true) {
          if (direction === "next") {
            if (!beforeNode) {
              node = domSymbolTree.following(node, { root: this.root });
              if (!node) {
                return null;
              }
            }
            beforeNode = false;
          } else if (direction === "previous") {
            if (beforeNode) {
              node = domSymbolTree.preceding(node, { root: this.root });
              if (!node) {
                return null;
              }
            }
            beforeNode = true;
          }
          const result = filter3(this, node);
          if (result === FILTER_ACCEPT) {
            break;
          }
        }
        this._referenceNode = node;
        this._pointerBeforeReferenceNode = beforeNode;
        return node;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js
var require_NodeIterator = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "NodeIterator";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'NodeIterator'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["NodeIterator"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class NodeIterator {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        nextNode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'nextNode' called on an object that is not a valid instance of NodeIterator."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].nextNode());
        }
        previousNode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'previousNode' called on an object that is not a valid instance of NodeIterator."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].previousNode());
        }
        detach() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'detach' called on an object that is not a valid instance of NodeIterator.");
          }
          return esValue[implSymbol].detach();
        }
        get root() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get root' called on an object that is not a valid instance of NodeIterator."
            );
          }
          return utils2.getSameObject(this, "root", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["root"]);
          });
        }
        get referenceNode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get referenceNode' called on an object that is not a valid instance of NodeIterator."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["referenceNode"]);
        }
        get pointerBeforeReferenceNode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get pointerBeforeReferenceNode' called on an object that is not a valid instance of NodeIterator."
            );
          }
          return esValue[implSymbol]["pointerBeforeReferenceNode"];
        }
        get whatToShow() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get whatToShow' called on an object that is not a valid instance of NodeIterator."
            );
          }
          return esValue[implSymbol]["whatToShow"];
        }
        get filter() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get filter' called on an object that is not a valid instance of NodeIterator."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["filter"]);
        }
      }
      Object.defineProperties(NodeIterator.prototype, {
        nextNode: { enumerable: true },
        previousNode: { enumerable: true },
        detach: { enumerable: true },
        root: { enumerable: true },
        referenceNode: { enumerable: true },
        pointerBeforeReferenceNode: { enumerable: true },
        whatToShow: { enumerable: true },
        filter: { enumerable: true },
        [Symbol.toStringTag]: { value: "NodeIterator", configurable: true }
      });
      ctorRegistry[interfaceName] = NodeIterator;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: NodeIterator
      });
    };
    var Impl = require_NodeIterator_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/range/AbstractRange-impl.js
var require_AbstractRange_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/range/AbstractRange-impl.js"(exports, module) {
    "use strict";
    var AbstractRangeImpl = class {
      constructor(globalObject, args, privateData) {
        const { start: start2, end: end2 } = privateData;
        this._start = start2;
        this._end = end2;
        this._globalObject = globalObject;
      }
      // https://dom.spec.whatwg.org/#dom-range-startcontainer
      get startContainer() {
        return this._start.node;
      }
      // https://dom.spec.whatwg.org/#dom-range-startoffset
      get startOffset() {
        return this._start.offset;
      }
      // https://dom.spec.whatwg.org/#dom-range-endcontainer
      get endContainer() {
        return this._end.node;
      }
      // https://dom.spec.whatwg.org/#dom-range-endoffset
      get endOffset() {
        return this._end.offset;
      }
      // https://dom.spec.whatwg.org/#dom-range-collapsed
      get collapsed() {
        const { _start, _end } = this;
        return _start.node === _end.node && _start.offset === _end.offset;
      }
    };
    module.exports = {
      implementation: AbstractRangeImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js
var require_AbstractRange = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "AbstractRange";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'AbstractRange'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["AbstractRange"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class AbstractRange {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get startContainer() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get startContainer' called on an object that is not a valid instance of AbstractRange."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["startContainer"]);
        }
        get startOffset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get startOffset' called on an object that is not a valid instance of AbstractRange."
            );
          }
          return esValue[implSymbol]["startOffset"];
        }
        get endContainer() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get endContainer' called on an object that is not a valid instance of AbstractRange."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["endContainer"]);
        }
        get endOffset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get endOffset' called on an object that is not a valid instance of AbstractRange."
            );
          }
          return esValue[implSymbol]["endOffset"];
        }
        get collapsed() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get collapsed' called on an object that is not a valid instance of AbstractRange."
            );
          }
          return esValue[implSymbol]["collapsed"];
        }
      }
      Object.defineProperties(AbstractRange.prototype, {
        startContainer: { enumerable: true },
        startOffset: { enumerable: true },
        endContainer: { enumerable: true },
        endOffset: { enumerable: true },
        collapsed: { enumerable: true },
        [Symbol.toStringTag]: { value: "AbstractRange", configurable: true }
      });
      ctorRegistry[interfaceName] = AbstractRange;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: AbstractRange
      });
    };
    var Impl = require_AbstractRange_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/range/boundary-point.js
var require_boundary_point = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/range/boundary-point.js"(exports, module) {
    "use strict";
    var { domSymbolTree } = require_internal_constants();
    var { nodeRoot, isFollowing, isInclusiveAncestor } = require_node4();
    function compareBoundaryPointsPosition(bpA, bpB) {
      const { node: nodeA, offset: offsetA } = bpA;
      const { node: nodeB, offset: offsetB } = bpB;
      if (nodeRoot(nodeA) !== nodeRoot(nodeB)) {
        throw new Error(`Internal Error: Boundary points should have the same root!`);
      }
      if (nodeA === nodeB) {
        if (offsetA === offsetB) {
          return 0;
        } else if (offsetA < offsetB) {
          return -1;
        }
        return 1;
      }
      if (isFollowing(nodeA, nodeB)) {
        return compareBoundaryPointsPosition(bpB, bpA) === -1 ? 1 : -1;
      }
      if (isInclusiveAncestor(nodeA, nodeB)) {
        let child = nodeB;
        while (domSymbolTree.parent(child) !== nodeA) {
          child = domSymbolTree.parent(child);
        }
        if (domSymbolTree.index(child) < offsetA) {
          return 1;
        }
      }
      return -1;
    }
    module.exports = {
      compareBoundaryPointsPosition
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/range/Range-impl.js
var require_Range_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/range/Range-impl.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var { clone } = require_node5();
    var NODE_TYPE = require_node_type();
    var { parseFragment } = require_parser3();
    var { HTML_NS } = require_namespaces();
    var { domSymbolTree } = require_internal_constants();
    var { compareBoundaryPointsPosition } = require_boundary_point();
    var { nodeRoot, nodeLength, isInclusiveAncestor } = require_node4();
    var { createElement: createElement11 } = require_create_element();
    var AbstractRangeImpl = require_AbstractRange_impl().implementation;
    var Range = require_Range();
    var DocumentFragment2 = require_DocumentFragment();
    var { implForWrapper } = require_utils16();
    var RANGE_COMPARISON_TYPE = {
      START_TO_START: 0,
      START_TO_END: 1,
      END_TO_END: 2,
      END_TO_START: 3
    };
    var RangeImpl = class extends AbstractRangeImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        const defaultBoundaryPoint = {
          node: implForWrapper(globalObject._document),
          offset: 0
        };
        const {
          start: start2 = defaultBoundaryPoint,
          end: end2 = defaultBoundaryPoint
        } = privateData;
        this._setLiveRangeStart(start2.node, start2.offset);
        this._setLiveRangeEnd(end2.node, end2.offset);
      }
      // https://dom.spec.whatwg.org/#dom-range-commonancestorcontainer
      get commonAncestorContainer() {
        const { _start, _end } = this;
        for (const container of domSymbolTree.ancestorsIterator(_start.node)) {
          if (isInclusiveAncestor(container, _end.node)) {
            return container;
          }
        }
        return null;
      }
      // https://dom.spec.whatwg.org/#dom-range-setstart
      setStart(node, offset2) {
        setBoundaryPointStart(this, node, offset2);
      }
      // https://dom.spec.whatwg.org/#dom-range-setend
      setEnd(node, offset2) {
        setBoundaryPointEnd(this, node, offset2);
      }
      // https://dom.spec.whatwg.org/#dom-range-setstartbefore
      setStartBefore(node) {
        const parent = domSymbolTree.parent(node);
        if (!parent) {
          throw DOMException2.create(this._globalObject, ["The given Node has no parent.", "InvalidNodeTypeError"]);
        }
        setBoundaryPointStart(this, parent, domSymbolTree.index(node));
      }
      // https://dom.spec.whatwg.org/#dom-range-setstartafter
      setStartAfter(node) {
        const parent = domSymbolTree.parent(node);
        if (!parent) {
          throw DOMException2.create(this._globalObject, ["The given Node has no parent.", "InvalidNodeTypeError"]);
        }
        setBoundaryPointStart(this, parent, domSymbolTree.index(node) + 1);
      }
      // https://dom.spec.whatwg.org/#dom-range-setendbefore
      setEndBefore(node) {
        const parent = domSymbolTree.parent(node);
        if (!parent) {
          throw DOMException2.create(this._globalObject, ["The given Node has no parent.", "InvalidNodeTypeError"]);
        }
        setBoundaryPointEnd(this, parent, domSymbolTree.index(node));
      }
      // https://dom.spec.whatwg.org/#dom-range-setendafter
      setEndAfter(node) {
        const parent = domSymbolTree.parent(node);
        if (!parent) {
          throw DOMException2.create(this._globalObject, ["The given Node has no parent.", "InvalidNodeTypeError"]);
        }
        setBoundaryPointEnd(this, parent, domSymbolTree.index(node) + 1);
      }
      // https://dom.spec.whatwg.org/#dom-range-collapse
      collapse(toStart) {
        if (toStart) {
          this._setLiveRangeEnd(this._start.node, this._start.offset);
        } else {
          this._setLiveRangeStart(this._end.node, this._end.offset);
        }
      }
      // https://dom.spec.whatwg.org/#dom-range-selectnode
      selectNode(node) {
        selectNodeWithinRange(node, this);
      }
      // https://dom.spec.whatwg.org/#dom-range-selectnodecontents
      selectNodeContents(node) {
        if (node.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE) {
          throw DOMException2.create(this._globalObject, [
            "DocumentType Node can't be used as boundary point.",
            "InvalidNodeTypeError"
          ]);
        }
        const length2 = nodeLength(node);
        this._setLiveRangeStart(node, 0);
        this._setLiveRangeEnd(node, length2);
      }
      // https://dom.spec.whatwg.org/#dom-range-compareboundarypoints
      compareBoundaryPoints(how, sourceRange) {
        if (how !== RANGE_COMPARISON_TYPE.START_TO_START && how !== RANGE_COMPARISON_TYPE.START_TO_END && how !== RANGE_COMPARISON_TYPE.END_TO_END && how !== RANGE_COMPARISON_TYPE.END_TO_START) {
          const message = "The comparison method provided must be one of 'START_TO_START', 'START_TO_END', 'END_TO_END', or 'END_TO_START'.";
          throw DOMException2.create(this._globalObject, [message, "NotSupportedError"]);
        }
        if (this._root !== sourceRange._root) {
          throw DOMException2.create(this._globalObject, ["The two Ranges are not in the same tree.", "WrongDocumentError"]);
        }
        let thisPoint, otherPoint;
        if (how === RANGE_COMPARISON_TYPE.START_TO_START) {
          thisPoint = this._start;
          otherPoint = sourceRange._start;
        } else if (how === RANGE_COMPARISON_TYPE.START_TO_END) {
          thisPoint = this._end;
          otherPoint = sourceRange._start;
        } else if (how === RANGE_COMPARISON_TYPE.END_TO_END) {
          thisPoint = this._end;
          otherPoint = sourceRange._end;
        } else {
          thisPoint = this._start;
          otherPoint = sourceRange._end;
        }
        return compareBoundaryPointsPosition(thisPoint, otherPoint);
      }
      // https://dom.spec.whatwg.org/#dom-range-deletecontents
      deleteContents() {
        if (this.collapsed) {
          return;
        }
        const { _start: originalStart, _end: originalEnd } = this;
        if (originalStart.node === originalEnd.node && (originalStart.node.nodeType === NODE_TYPE.TEXT_NODE || originalStart.node.nodeType === NODE_TYPE.PROCESSING_INSTRUCTION_NODE || originalStart.node.nodeType === NODE_TYPE.COMMENT_NODE)) {
          originalStart.node.replaceData(originalStart.offset, originalEnd.offset - originalStart.offset, "");
          return;
        }
        const nodesToRemove = [];
        let currentNode = this._start.node;
        const endNode = nextNodeDescendant(this._end.node);
        while (currentNode && currentNode !== endNode) {
          if (isContained(currentNode, this) && !isContained(domSymbolTree.parent(currentNode), this)) {
            nodesToRemove.push(currentNode);
          }
          currentNode = domSymbolTree.following(currentNode);
        }
        let newNode, newOffset;
        if (isInclusiveAncestor(originalStart.node, originalEnd.node)) {
          newNode = originalStart.node;
          newOffset = originalStart.offset;
        } else {
          let referenceNode = originalStart.node;
          while (referenceNode && !isInclusiveAncestor(domSymbolTree.parent(referenceNode), originalEnd.node)) {
            referenceNode = domSymbolTree.parent(referenceNode);
          }
          newNode = domSymbolTree.parent(referenceNode);
          newOffset = domSymbolTree.index(referenceNode) + 1;
        }
        if (originalStart.node.nodeType === NODE_TYPE.TEXT_NODE || originalStart.node.nodeType === NODE_TYPE.PROCESSING_INSTRUCTION_NODE || originalStart.node.nodeType === NODE_TYPE.COMMENT_NODE) {
          originalStart.node.replaceData(originalStart.offset, nodeLength(originalStart.node) - originalStart.offset, "");
        }
        for (const node of nodesToRemove) {
          const parent = domSymbolTree.parent(node);
          parent.removeChild(node);
        }
        if (originalEnd.node.nodeType === NODE_TYPE.TEXT_NODE || originalEnd.node.nodeType === NODE_TYPE.PROCESSING_INSTRUCTION_NODE || originalEnd.node.nodeType === NODE_TYPE.COMMENT_NODE) {
          originalEnd.node.replaceData(0, originalEnd.offset, "");
        }
        this._setLiveRangeStart(newNode, newOffset);
        this._setLiveRangeEnd(newNode, newOffset);
      }
      // https://dom.spec.whatwg.org/#dom-range-extractcontents
      extractContents() {
        return extractRange(this);
      }
      // https://dom.spec.whatwg.org/#dom-range-clonecontents
      cloneContents() {
        return cloneRange(this);
      }
      // https://dom.spec.whatwg.org/#dom-range-insertnode
      insertNode(node) {
        insertNodeInRange(node, this);
      }
      // https://dom.spec.whatwg.org/#dom-range-surroundcontents
      surroundContents(newParent) {
        let node = this.commonAncestorContainer;
        const endNode = nextNodeDescendant(node);
        while (node !== endNode) {
          if (node.nodeType !== NODE_TYPE.TEXT_NODE && isPartiallyContained(node, this)) {
            throw DOMException2.create(this._globalObject, [
              "The Range has partially contains a non-Text node.",
              "InvalidStateError"
            ]);
          }
          node = domSymbolTree.following(node);
        }
        if (newParent.nodeType === NODE_TYPE.DOCUMENT_NODE || newParent.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE || newParent.nodeType === NODE_TYPE.DOCUMENT_FRAGMENT_NODE) {
          throw DOMException2.create(this._globalObject, ["Invalid element type.", "InvalidNodeTypeError"]);
        }
        const fragment = extractRange(this);
        while (domSymbolTree.firstChild(newParent)) {
          newParent.removeChild(domSymbolTree.firstChild(newParent));
        }
        insertNodeInRange(newParent, this);
        newParent.appendChild(fragment);
        selectNodeWithinRange(newParent, this);
      }
      // https://dom.spec.whatwg.org/#dom-range-clonerange
      cloneRange() {
        const { _start, _end, _globalObject } = this;
        return Range.createImpl(_globalObject, [], {
          start: { node: _start.node, offset: _start.offset },
          end: { node: _end.node, offset: _end.offset }
        });
      }
      // https://dom.spec.whatwg.org/#dom-range-detach
      detach() {
      }
      // https://dom.spec.whatwg.org/#dom-range-ispointinrange
      isPointInRange(node, offset2) {
        if (nodeRoot(node) !== this._root) {
          return false;
        }
        validateSetBoundaryPoint(node, offset2);
        const bp = { node, offset: offset2 };
        if (compareBoundaryPointsPosition(bp, this._start) === -1 || compareBoundaryPointsPosition(bp, this._end) === 1) {
          return false;
        }
        return true;
      }
      // https://dom.spec.whatwg.org/#dom-range-comparepoint
      comparePoint(node, offset2) {
        if (nodeRoot(node) !== this._root) {
          throw DOMException2.create(this._globalObject, [
            "The given Node and the Range are not in the same tree.",
            "WrongDocumentError"
          ]);
        }
        validateSetBoundaryPoint(node, offset2);
        const bp = { node, offset: offset2 };
        if (compareBoundaryPointsPosition(bp, this._start) === -1) {
          return -1;
        } else if (compareBoundaryPointsPosition(bp, this._end) === 1) {
          return 1;
        }
        return 0;
      }
      // https://dom.spec.whatwg.org/#dom-range-intersectsnode
      intersectsNode(node) {
        if (nodeRoot(node) !== this._root) {
          return false;
        }
        const parent = domSymbolTree.parent(node);
        if (!parent) {
          return true;
        }
        const offset2 = domSymbolTree.index(node);
        return compareBoundaryPointsPosition({ node: parent, offset: offset2 }, this._end) === -1 && compareBoundaryPointsPosition({ node: parent, offset: offset2 + 1 }, this._start) === 1;
      }
      // https://dom.spec.whatwg.org/#dom-range-stringifier
      toString() {
        let s4 = "";
        const { _start, _end } = this;
        if (_start.node === _end.node && _start.node.nodeType === NODE_TYPE.TEXT_NODE) {
          return _start.node.data.slice(_start.offset, _end.offset);
        }
        if (_start.node.nodeType === NODE_TYPE.TEXT_NODE) {
          s4 += _start.node.data.slice(_start.offset);
        }
        let currentNode = _start.node;
        const endNode = nextNodeDescendant(_end.node);
        while (currentNode && currentNode !== endNode) {
          if (currentNode.nodeType === NODE_TYPE.TEXT_NODE && isContained(currentNode, this)) {
            s4 += currentNode.data;
          }
          currentNode = domSymbolTree.following(currentNode);
        }
        if (_end.node.nodeType === NODE_TYPE.TEXT_NODE) {
          s4 += _end.node.data.slice(0, _end.offset);
        }
        return s4;
      }
      // https://w3c.github.io/DOM-Parsing/#dom-range-createcontextualfragment
      createContextualFragment(fragment) {
        const { node } = this._start;
        let element;
        switch (node.nodeType) {
          case NODE_TYPE.DOCUMENT_NODE:
          case NODE_TYPE.DOCUMENT_FRAGMENT_NODE:
            element = null;
            break;
          case NODE_TYPE.ELEMENT_NODE:
            element = node;
            break;
          case NODE_TYPE.TEXT_NODE:
          case NODE_TYPE.COMMENT_NODE:
            element = node.parentElement;
            break;
          default:
            throw new Error("Internal error: Invalid range start node");
        }
        if (element === null || element._ownerDocument._parsingMode === "html" && element._localName === "html" && element._namespaceURI === HTML_NS) {
          element = createElement11(node._ownerDocument, "body", HTML_NS);
        }
        return parseFragment(fragment, element);
      }
      // https://dom.spec.whatwg.org/#concept-range-root
      get _root() {
        return nodeRoot(this._start.node);
      }
      _setLiveRangeStart(node, offset2) {
        if (this._start && this._start.node !== node && this._start.node !== this._end.node) {
          this._start.node._referencedRanges.delete(this);
        }
        if (!node._referencedRanges.has(this)) {
          node._referencedRanges.add(this);
        }
        this._start = {
          node,
          offset: offset2
        };
      }
      _setLiveRangeEnd(node, offset2) {
        if (this._end && this._end.node !== node && this._end.node !== this._start.node) {
          this._end.node._referencedRanges.delete(this);
        }
        if (!node._referencedRanges.has(this)) {
          node._referencedRanges.add(this);
        }
        this._end = {
          node,
          offset: offset2
        };
      }
    };
    function nextNodeDescendant(node) {
      while (node && !domSymbolTree.nextSibling(node)) {
        node = domSymbolTree.parent(node);
      }
      if (!node) {
        return null;
      }
      return domSymbolTree.nextSibling(node);
    }
    function validateSetBoundaryPoint(node, offset2) {
      if (node.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE) {
        throw DOMException2.create(node._globalObject, [
          "DocumentType Node can't be used as boundary point.",
          "InvalidNodeTypeError"
        ]);
      }
      if (offset2 > nodeLength(node)) {
        throw DOMException2.create(node._globalObject, ["Offset out of bound.", "IndexSizeError"]);
      }
    }
    function setBoundaryPointStart(range2, node, offset2) {
      validateSetBoundaryPoint(node, offset2);
      const bp = { node, offset: offset2 };
      if (nodeRoot(node) !== range2._root || compareBoundaryPointsPosition(bp, range2._end) === 1) {
        range2._setLiveRangeEnd(node, offset2);
      }
      range2._setLiveRangeStart(node, offset2);
    }
    function setBoundaryPointEnd(range2, node, offset2) {
      validateSetBoundaryPoint(node, offset2);
      const bp = { node, offset: offset2 };
      if (nodeRoot(node) !== range2._root || compareBoundaryPointsPosition(bp, range2._start) === -1) {
        range2._setLiveRangeStart(node, offset2);
      }
      range2._setLiveRangeEnd(node, offset2);
    }
    function selectNodeWithinRange(node, range2) {
      const parent = domSymbolTree.parent(node);
      if (!parent) {
        throw DOMException2.create(node._globalObject, ["The given Node has no parent.", "InvalidNodeTypeError"]);
      }
      const index2 = domSymbolTree.index(node);
      range2._setLiveRangeStart(parent, index2);
      range2._setLiveRangeEnd(parent, index2 + 1);
    }
    function isContained(node, range2) {
      const { _start, _end } = range2;
      return compareBoundaryPointsPosition({ node, offset: 0 }, _start) === 1 && compareBoundaryPointsPosition({ node, offset: nodeLength(node) }, _end) === -1;
    }
    function isPartiallyContained(node, range2) {
      const { _start, _end } = range2;
      return isInclusiveAncestor(node, _start.node) && !isInclusiveAncestor(node, _end.node) || !isInclusiveAncestor(node, _start.node) && isInclusiveAncestor(node, _end.node);
    }
    function insertNodeInRange(node, range2) {
      const { node: startNode, offset: startOffset } = range2._start;
      if (startNode.nodeType === NODE_TYPE.PROCESSING_INSTRUCTION_NODE || startNode.nodeType === NODE_TYPE.COMMENT_NODE || startNode.nodeType === NODE_TYPE.TEXT_NODE && !domSymbolTree.parent(startNode) || node === startNode) {
        throw DOMException2.create(node._globalObject, ["Invalid start node.", "HierarchyRequestError"]);
      }
      let referenceNode = startNode.nodeType === NODE_TYPE.TEXT_NODE ? startNode : domSymbolTree.childrenToArray(startNode)[startOffset] || null;
      const parent = !referenceNode ? startNode : domSymbolTree.parent(referenceNode);
      parent._preInsertValidity(node, referenceNode);
      if (startNode.nodeType === NODE_TYPE.TEXT_NODE) {
        referenceNode = startNode.splitText(startOffset);
      }
      if (node === referenceNode) {
        referenceNode = domSymbolTree.nextSibling(referenceNode);
      }
      const nodeParent = domSymbolTree.parent(node);
      if (nodeParent) {
        nodeParent.removeChild(node);
      }
      let newOffset = !referenceNode ? nodeLength(parent) : domSymbolTree.index(referenceNode);
      newOffset += node.nodeType === NODE_TYPE.DOCUMENT_FRAGMENT_NODE ? nodeLength(node) : 1;
      parent.insertBefore(node, referenceNode);
      if (range2.collapsed) {
        range2._setLiveRangeEnd(parent, newOffset);
      }
    }
    function cloneRange(range2) {
      const { _start: originalStart, _end: originalEnd, _globalObject } = range2;
      const fragment = DocumentFragment2.createImpl(_globalObject, [], {
        ownerDocument: originalStart.node._ownerDocument
      });
      if (range2.collapsed) {
        return fragment;
      }
      if (originalStart.node === originalEnd.node && (originalStart.node.nodeType === NODE_TYPE.TEXT_NODE || originalStart.node.nodeType === NODE_TYPE.PROCESSING_INSTRUCTION_NODE || originalStart.node.nodeType === NODE_TYPE.COMMENT_NODE)) {
        const cloned = clone(originalStart.node);
        cloned._data = cloned.substringData(originalStart.offset, originalEnd.offset - originalStart.offset);
        fragment.appendChild(cloned);
        return fragment;
      }
      let commonAncestor = originalStart.node;
      while (!isInclusiveAncestor(commonAncestor, originalEnd.node)) {
        commonAncestor = domSymbolTree.parent(commonAncestor);
      }
      let firstPartialContainedChild = null;
      if (!isInclusiveAncestor(originalStart.node, originalEnd.node)) {
        let candidate = domSymbolTree.firstChild(commonAncestor);
        while (!firstPartialContainedChild) {
          if (isPartiallyContained(candidate, range2)) {
            firstPartialContainedChild = candidate;
          }
          candidate = domSymbolTree.nextSibling(candidate);
        }
      }
      let lastPartiallyContainedChild = null;
      if (!isInclusiveAncestor(originalEnd.node, originalStart.node)) {
        let candidate = domSymbolTree.lastChild(commonAncestor);
        while (!lastPartiallyContainedChild) {
          if (isPartiallyContained(candidate, range2)) {
            lastPartiallyContainedChild = candidate;
          }
          candidate = domSymbolTree.previousSibling(candidate);
        }
      }
      const containedChildren = domSymbolTree.childrenToArray(commonAncestor).filter((node) => isContained(node, range2));
      const hasDoctypeChildren = containedChildren.some((node) => node.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE);
      if (hasDoctypeChildren) {
        throw DOMException2.create(range2._globalObject, ["Invalid document type element.", "HierarchyRequestError"]);
      }
      if (firstPartialContainedChild !== null && (firstPartialContainedChild.nodeType === NODE_TYPE.TEXT_NODE || firstPartialContainedChild.nodeType === NODE_TYPE.PROCESSING_INSTRUCTION_NODE || firstPartialContainedChild.nodeType === NODE_TYPE.COMMENT_NODE)) {
        const cloned = clone(originalStart.node);
        cloned._data = cloned.substringData(originalStart.offset, nodeLength(originalStart.node) - originalStart.offset);
        fragment.appendChild(cloned);
      } else if (firstPartialContainedChild !== null) {
        const cloned = clone(firstPartialContainedChild);
        fragment.appendChild(cloned);
        const subrange = Range.createImpl(_globalObject, [], {
          start: { node: originalStart.node, offset: originalStart.offset },
          end: { node: firstPartialContainedChild, offset: nodeLength(firstPartialContainedChild) }
        });
        const subfragment = cloneRange(subrange);
        cloned.appendChild(subfragment);
      }
      for (const containedChild of containedChildren) {
        const cloned = clone(containedChild, void 0, true);
        fragment.appendChild(cloned);
      }
      if (lastPartiallyContainedChild !== null && (lastPartiallyContainedChild.nodeType === NODE_TYPE.TEXT_NODE || lastPartiallyContainedChild.nodeType === NODE_TYPE.PROCESSING_INSTRUCTION_NODE || lastPartiallyContainedChild.nodeType === NODE_TYPE.COMMENT_NODE)) {
        const cloned = clone(originalEnd.node);
        cloned._data = cloned.substringData(0, originalEnd.offset);
        fragment.appendChild(cloned);
      } else if (lastPartiallyContainedChild !== null) {
        const cloned = clone(lastPartiallyContainedChild);
        fragment.appendChild(cloned);
        const subrange = Range.createImpl(_globalObject, [], {
          start: { node: lastPartiallyContainedChild, offset: 0 },
          end: { node: originalEnd.node, offset: originalEnd.offset }
        });
        const subfragment = cloneRange(subrange);
        cloned.appendChild(subfragment);
      }
      return fragment;
    }
    function extractRange(range2) {
      const { _start: originalStart, _end: originalEnd, _globalObject } = range2;
      const fragment = DocumentFragment2.createImpl(_globalObject, [], {
        ownerDocument: originalStart.node._ownerDocument
      });
      if (range2.collapsed) {
        return fragment;
      }
      if (originalStart.node === originalEnd.node && (originalStart.node.nodeType === NODE_TYPE.TEXT_NODE || originalStart.node.nodeType === NODE_TYPE.PROCESSING_INSTRUCTION_NODE || originalStart.node.nodeType === NODE_TYPE.COMMENT_NODE)) {
        const cloned = clone(originalStart.node);
        cloned._data = cloned.substringData(originalStart.offset, originalEnd.offset - originalStart.offset);
        fragment.appendChild(cloned);
        originalStart.node.replaceData(originalStart.offset, originalEnd.offset - originalStart.offset, "");
        return fragment;
      }
      let commonAncestor = originalStart.node;
      while (!isInclusiveAncestor(commonAncestor, originalEnd.node)) {
        commonAncestor = domSymbolTree.parent(commonAncestor);
      }
      let firstPartialContainedChild = null;
      if (!isInclusiveAncestor(originalStart.node, originalEnd.node)) {
        let candidate = domSymbolTree.firstChild(commonAncestor);
        while (!firstPartialContainedChild) {
          if (isPartiallyContained(candidate, range2)) {
            firstPartialContainedChild = candidate;
          }
          candidate = domSymbolTree.nextSibling(candidate);
        }
      }
      let lastPartiallyContainedChild = null;
      if (!isInclusiveAncestor(originalEnd.node, originalStart.node)) {
        let candidate = domSymbolTree.lastChild(commonAncestor);
        while (!lastPartiallyContainedChild) {
          if (isPartiallyContained(candidate, range2)) {
            lastPartiallyContainedChild = candidate;
          }
          candidate = domSymbolTree.previousSibling(candidate);
        }
      }
      const containedChildren = domSymbolTree.childrenToArray(commonAncestor).filter((node) => isContained(node, range2));
      const hasDoctypeChildren = containedChildren.some((node) => node.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE);
      if (hasDoctypeChildren) {
        throw DOMException2.create(range2._globalObject, ["Invalid document type element.", "HierarchyRequestError"]);
      }
      let newNode, newOffset;
      if (isInclusiveAncestor(originalStart.node, originalEnd.node)) {
        newNode = originalStart.node;
        newOffset = originalStart.offset;
      } else {
        let referenceNode = originalStart.node;
        while (referenceNode && !isInclusiveAncestor(domSymbolTree.parent(referenceNode), originalEnd.node)) {
          referenceNode = domSymbolTree.parent(referenceNode);
        }
        newNode = domSymbolTree.parent(referenceNode);
        newOffset = domSymbolTree.index(referenceNode) + 1;
      }
      if (firstPartialContainedChild !== null && (firstPartialContainedChild.nodeType === NODE_TYPE.TEXT_NODE || firstPartialContainedChild.nodeType === NODE_TYPE.PROCESSING_INSTRUCTION_NODE || firstPartialContainedChild.nodeType === NODE_TYPE.COMMENT_NODE)) {
        const cloned = clone(originalStart.node);
        cloned._data = cloned.substringData(originalStart.offset, nodeLength(originalStart.node) - originalStart.offset);
        fragment.appendChild(cloned);
        originalStart.node.replaceData(originalStart.offset, nodeLength(originalStart.node) - originalStart.offset, "");
      } else if (firstPartialContainedChild !== null) {
        const cloned = clone(firstPartialContainedChild);
        fragment.appendChild(cloned);
        const subrange = Range.createImpl(_globalObject, [], {
          start: { node: originalStart.node, offset: originalStart.offset },
          end: { node: firstPartialContainedChild, offset: nodeLength(firstPartialContainedChild) }
        });
        const subfragment = extractRange(subrange);
        cloned.appendChild(subfragment);
      }
      for (const containedChild of containedChildren) {
        fragment.appendChild(containedChild);
      }
      if (lastPartiallyContainedChild !== null && (lastPartiallyContainedChild.nodeType === NODE_TYPE.TEXT_NODE || lastPartiallyContainedChild.nodeType === NODE_TYPE.PROCESSING_INSTRUCTION_NODE || lastPartiallyContainedChild.nodeType === NODE_TYPE.COMMENT_NODE)) {
        const cloned = clone(originalEnd.node);
        cloned._data = cloned.substringData(0, originalEnd.offset);
        fragment.appendChild(cloned);
        originalEnd.node.replaceData(0, originalEnd.offset, "");
      } else if (lastPartiallyContainedChild !== null) {
        const cloned = clone(lastPartiallyContainedChild);
        fragment.appendChild(cloned);
        const subrange = Range.createImpl(_globalObject, [], {
          start: { node: lastPartiallyContainedChild, offset: 0 },
          end: { node: originalEnd.node, offset: originalEnd.offset }
        });
        const subfragment = extractRange(subrange);
        cloned.appendChild(subfragment);
      }
      range2._setLiveRangeStart(newNode, newOffset);
      range2._setLiveRangeEnd(newNode, newOffset);
      return fragment;
    }
    module.exports = {
      implementation: RangeImpl,
      setBoundaryPointStart,
      setBoundaryPointEnd
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Range.js
var require_Range = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Range.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Node = require_Node();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var AbstractRange = require_AbstractRange();
    var interfaceName = "Range";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Range'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Range"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      AbstractRange._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Range extends globalObject.AbstractRange {
        constructor() {
          return exports.setup(Object.create(new.target.prototype), globalObject, void 0);
        }
        setStart(node, offset2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'setStart' called on an object that is not a valid instance of Range.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'setStart' on 'Range': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'setStart' on 'Range': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'setStart' on 'Range': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setStart(...args);
        }
        setEnd(node, offset2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'setEnd' called on an object that is not a valid instance of Range.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'setEnd' on 'Range': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, { context: "Failed to execute 'setEnd' on 'Range': parameter 1" });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'setEnd' on 'Range': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setEnd(...args);
        }
        setStartBefore(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'setStartBefore' called on an object that is not a valid instance of Range.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setStartBefore' on 'Range': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'setStartBefore' on 'Range': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setStartBefore(...args);
        }
        setStartAfter(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'setStartAfter' called on an object that is not a valid instance of Range.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setStartAfter' on 'Range': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'setStartAfter' on 'Range': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setStartAfter(...args);
        }
        setEndBefore(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'setEndBefore' called on an object that is not a valid instance of Range.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setEndBefore' on 'Range': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'setEndBefore' on 'Range': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setEndBefore(...args);
        }
        setEndAfter(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'setEndAfter' called on an object that is not a valid instance of Range.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setEndAfter' on 'Range': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'setEndAfter' on 'Range': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setEndAfter(...args);
        }
        collapse() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'collapse' called on an object that is not a valid instance of Range.");
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'collapse' on 'Range': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].collapse(...args);
        }
        selectNode(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'selectNode' called on an object that is not a valid instance of Range.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'selectNode' on 'Range': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'selectNode' on 'Range': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].selectNode(...args);
        }
        selectNodeContents(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'selectNodeContents' called on an object that is not a valid instance of Range."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'selectNodeContents' on 'Range': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'selectNodeContents' on 'Range': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].selectNodeContents(...args);
        }
        compareBoundaryPoints(how, sourceRange) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'compareBoundaryPoints' called on an object that is not a valid instance of Range."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'compareBoundaryPoints' on 'Range': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned short"](curArg, {
              context: "Failed to execute 'compareBoundaryPoints' on 'Range': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = exports.convert(globalObject, curArg, {
              context: "Failed to execute 'compareBoundaryPoints' on 'Range': parameter 2"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].compareBoundaryPoints(...args);
        }
        deleteContents() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'deleteContents' called on an object that is not a valid instance of Range.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].deleteContents();
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        extractContents() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'extractContents' called on an object that is not a valid instance of Range."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].extractContents());
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        cloneContents() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'cloneContents' called on an object that is not a valid instance of Range.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].cloneContents());
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        insertNode(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'insertNode' called on an object that is not a valid instance of Range.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'insertNode' on 'Range': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'insertNode' on 'Range': parameter 1"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].insertNode(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        surroundContents(newParent) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'surroundContents' called on an object that is not a valid instance of Range."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'surroundContents' on 'Range': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'surroundContents' on 'Range': parameter 1"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].surroundContents(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        cloneRange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'cloneRange' called on an object that is not a valid instance of Range.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].cloneRange());
        }
        detach() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'detach' called on an object that is not a valid instance of Range.");
          }
          return esValue[implSymbol].detach();
        }
        isPointInRange(node, offset2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'isPointInRange' called on an object that is not a valid instance of Range.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'isPointInRange' on 'Range': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'isPointInRange' on 'Range': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'isPointInRange' on 'Range': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].isPointInRange(...args);
        }
        comparePoint(node, offset2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'comparePoint' called on an object that is not a valid instance of Range.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'comparePoint' on 'Range': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'comparePoint' on 'Range': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'comparePoint' on 'Range': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].comparePoint(...args);
        }
        intersectsNode(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'intersectsNode' called on an object that is not a valid instance of Range.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'intersectsNode' on 'Range': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'intersectsNode' on 'Range': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].intersectsNode(...args);
        }
        toString() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'toString' called on an object that is not a valid instance of Range.");
          }
          return esValue[implSymbol].toString();
        }
        createContextualFragment(fragment) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createContextualFragment' called on an object that is not a valid instance of Range."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'createContextualFragment' on 'Range': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createContextualFragment' on 'Range': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].createContextualFragment(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get commonAncestorContainer() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get commonAncestorContainer' called on an object that is not a valid instance of Range."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["commonAncestorContainer"]);
        }
      }
      Object.defineProperties(Range.prototype, {
        setStart: { enumerable: true },
        setEnd: { enumerable: true },
        setStartBefore: { enumerable: true },
        setStartAfter: { enumerable: true },
        setEndBefore: { enumerable: true },
        setEndAfter: { enumerable: true },
        collapse: { enumerable: true },
        selectNode: { enumerable: true },
        selectNodeContents: { enumerable: true },
        compareBoundaryPoints: { enumerable: true },
        deleteContents: { enumerable: true },
        extractContents: { enumerable: true },
        cloneContents: { enumerable: true },
        insertNode: { enumerable: true },
        surroundContents: { enumerable: true },
        cloneRange: { enumerable: true },
        detach: { enumerable: true },
        isPointInRange: { enumerable: true },
        comparePoint: { enumerable: true },
        intersectsNode: { enumerable: true },
        toString: { enumerable: true },
        createContextualFragment: { enumerable: true },
        commonAncestorContainer: { enumerable: true },
        [Symbol.toStringTag]: { value: "Range", configurable: true },
        START_TO_START: { value: 0, enumerable: true },
        START_TO_END: { value: 1, enumerable: true },
        END_TO_END: { value: 2, enumerable: true },
        END_TO_START: { value: 3, enumerable: true }
      });
      Object.defineProperties(Range, {
        START_TO_START: { value: 0, enumerable: true },
        START_TO_END: { value: 1, enumerable: true },
        END_TO_END: { value: 2, enumerable: true },
        END_TO_START: { value: 3, enumerable: true }
      });
      ctorRegistry[interfaceName] = Range;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Range
      });
    };
    var Impl = require_Range_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js
var require_CustomEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventInit = require_EventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "detail";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["any"](value2, { context: context + " has member 'detail' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/CustomEvent-impl.js
var require_CustomEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/CustomEvent-impl.js"(exports, module) {
    "use strict";
    var EventImpl = require_Event_impl().implementation;
    var CustomEventInit = require_CustomEventInit();
    var CustomEventImpl = class extends EventImpl {
      initCustomEvent(type, bubbles, cancelable, detail) {
        if (this._dispatchFlag) {
          return;
        }
        this.initEvent(type, bubbles, cancelable);
        this.detail = detail;
      }
    };
    CustomEventImpl.defaultInit = CustomEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: CustomEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js
var require_CustomEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var CustomEventInit = require_CustomEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Event2 = require_Event();
    var interfaceName = "CustomEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'CustomEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["CustomEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Event2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class CustomEvent extends globalObject.Event {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'CustomEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'CustomEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = CustomEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'CustomEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        initCustomEvent(type) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'initCustomEvent' called on an object that is not a valid instance of CustomEvent."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'initCustomEvent' on 'CustomEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'initCustomEvent' on 'CustomEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initCustomEvent' on 'CustomEvent': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initCustomEvent' on 'CustomEvent': parameter 3",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[3];
            if (curArg !== void 0) {
              curArg = conversions["any"](curArg, {
                context: "Failed to execute 'initCustomEvent' on 'CustomEvent': parameter 4",
                globals: globalObject
              });
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].initCustomEvent(...args);
        }
        get detail() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get detail' called on an object that is not a valid instance of CustomEvent."
            );
          }
          return esValue[implSymbol]["detail"];
        }
      }
      Object.defineProperties(CustomEvent.prototype, {
        initCustomEvent: { enumerable: true },
        detail: { enumerable: true },
        [Symbol.toStringTag]: { value: "CustomEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = CustomEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: CustomEvent
      });
    };
    var Impl = require_CustomEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js
var require_HashChangeEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventInit = require_EventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "newURL";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["USVString"](value2, {
            context: context + " has member 'newURL' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = "";
        }
      }
      {
        const key = "oldURL";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["USVString"](value2, {
            context: context + " has member 'oldURL' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = "";
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/HashChangeEvent-impl.js
var require_HashChangeEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/HashChangeEvent-impl.js"(exports, module) {
    "use strict";
    var EventImpl = require_Event_impl().implementation;
    var HashChangeEventInit = require_HashChangeEventInit();
    var HashChangeEventImpl = class extends EventImpl {
    };
    HashChangeEventImpl.defaultInit = HashChangeEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: HashChangeEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js
var require_HashChangeEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HashChangeEventInit = require_HashChangeEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Event2 = require_Event();
    var interfaceName = "HashChangeEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HashChangeEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HashChangeEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Event2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HashChangeEvent extends globalObject.Event {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'HashChangeEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'HashChangeEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = HashChangeEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'HashChangeEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get oldURL() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oldURL' called on an object that is not a valid instance of HashChangeEvent."
            );
          }
          return esValue[implSymbol]["oldURL"];
        }
        get newURL() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get newURL' called on an object that is not a valid instance of HashChangeEvent."
            );
          }
          return esValue[implSymbol]["newURL"];
        }
      }
      Object.defineProperties(HashChangeEvent.prototype, {
        oldURL: { enumerable: true },
        newURL: { enumerable: true },
        [Symbol.toStringTag]: { value: "HashChangeEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = HashChangeEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HashChangeEvent
      });
    };
    var Impl = require_HashChangeEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js
var require_KeyboardEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventModifierInit = require_EventModifierInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventModifierInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "charCode";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unsigned long"](value2, {
            context: context + " has member 'charCode' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "code";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["DOMString"](value2, { context: context + " has member 'code' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = "";
        }
      }
      {
        const key = "isComposing";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'isComposing' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "key";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["DOMString"](value2, { context: context + " has member 'key' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = "";
        }
      }
      {
        const key = "keyCode";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unsigned long"](value2, {
            context: context + " has member 'keyCode' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "location";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unsigned long"](value2, {
            context: context + " has member 'location' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "repeat";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, { context: context + " has member 'repeat' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js
var require_KeyboardEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js"(exports, module) {
    "use strict";
    var { mixin: mixin2 } = require_utils17();
    var EventModifierMixinImpl = require_EventModifierMixin_impl().implementation;
    var UIEventImpl = require_UIEvent_impl().implementation;
    var KeyboardEventInit = require_KeyboardEventInit();
    var KeyboardEventImpl = class extends UIEventImpl {
      initKeyboardEvent(type, bubbles, cancelable, view, key, location, ctrlKey, altKey, shiftKey, metaKey) {
        if (this._dispatchFlag) {
          return;
        }
        this.initUIEvent(type, bubbles, cancelable, view, 0);
        this.key = key;
        this.location = location;
        this.ctrlKey = ctrlKey;
        this.altKey = altKey;
        this.shiftKey = shiftKey;
        this.metaKey = metaKey;
      }
    };
    mixin2(KeyboardEventImpl.prototype, EventModifierMixinImpl.prototype);
    KeyboardEventImpl.defaultInit = KeyboardEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: KeyboardEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js
var require_KeyboardEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var KeyboardEventInit = require_KeyboardEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var UIEvent = require_UIEvent();
    var interfaceName = "KeyboardEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'KeyboardEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["KeyboardEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      UIEvent._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class KeyboardEvent extends globalObject.UIEvent {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'KeyboardEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'KeyboardEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = KeyboardEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'KeyboardEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        getModifierState(keyArg) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getModifierState' called on an object that is not a valid instance of KeyboardEvent."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getModifierState' on 'KeyboardEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getModifierState' on 'KeyboardEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].getModifierState(...args);
        }
        initKeyboardEvent(typeArg) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'initKeyboardEvent' called on an object that is not a valid instance of KeyboardEvent."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 3",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[3];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = utils2.tryImplForWrapper(curArg);
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[4];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 5",
                globals: globalObject
              });
            } else {
              curArg = "";
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[5];
            if (curArg !== void 0) {
              curArg = conversions["unsigned long"](curArg, {
                context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 6",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[6];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 7",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[7];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 8",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[8];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 9",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[9];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initKeyboardEvent' on 'KeyboardEvent': parameter 10",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].initKeyboardEvent(...args);
        }
        get key() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get key' called on an object that is not a valid instance of KeyboardEvent."
            );
          }
          return esValue[implSymbol]["key"];
        }
        get code() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get code' called on an object that is not a valid instance of KeyboardEvent."
            );
          }
          return esValue[implSymbol]["code"];
        }
        get location() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get location' called on an object that is not a valid instance of KeyboardEvent."
            );
          }
          return esValue[implSymbol]["location"];
        }
        get ctrlKey() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ctrlKey' called on an object that is not a valid instance of KeyboardEvent."
            );
          }
          return esValue[implSymbol]["ctrlKey"];
        }
        get shiftKey() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get shiftKey' called on an object that is not a valid instance of KeyboardEvent."
            );
          }
          return esValue[implSymbol]["shiftKey"];
        }
        get altKey() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get altKey' called on an object that is not a valid instance of KeyboardEvent."
            );
          }
          return esValue[implSymbol]["altKey"];
        }
        get metaKey() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get metaKey' called on an object that is not a valid instance of KeyboardEvent."
            );
          }
          return esValue[implSymbol]["metaKey"];
        }
        get repeat() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get repeat' called on an object that is not a valid instance of KeyboardEvent."
            );
          }
          return esValue[implSymbol]["repeat"];
        }
        get isComposing() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get isComposing' called on an object that is not a valid instance of KeyboardEvent."
            );
          }
          return esValue[implSymbol]["isComposing"];
        }
        get charCode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get charCode' called on an object that is not a valid instance of KeyboardEvent."
            );
          }
          return esValue[implSymbol]["charCode"];
        }
        get keyCode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get keyCode' called on an object that is not a valid instance of KeyboardEvent."
            );
          }
          return esValue[implSymbol]["keyCode"];
        }
      }
      Object.defineProperties(KeyboardEvent.prototype, {
        getModifierState: { enumerable: true },
        initKeyboardEvent: { enumerable: true },
        key: { enumerable: true },
        code: { enumerable: true },
        location: { enumerable: true },
        ctrlKey: { enumerable: true },
        shiftKey: { enumerable: true },
        altKey: { enumerable: true },
        metaKey: { enumerable: true },
        repeat: { enumerable: true },
        isComposing: { enumerable: true },
        charCode: { enumerable: true },
        keyCode: { enumerable: true },
        [Symbol.toStringTag]: { value: "KeyboardEvent", configurable: true },
        DOM_KEY_LOCATION_STANDARD: { value: 0, enumerable: true },
        DOM_KEY_LOCATION_LEFT: { value: 1, enumerable: true },
        DOM_KEY_LOCATION_RIGHT: { value: 2, enumerable: true },
        DOM_KEY_LOCATION_NUMPAD: { value: 3, enumerable: true }
      });
      Object.defineProperties(KeyboardEvent, {
        DOM_KEY_LOCATION_STANDARD: { value: 0, enumerable: true },
        DOM_KEY_LOCATION_LEFT: { value: 1, enumerable: true },
        DOM_KEY_LOCATION_RIGHT: { value: 2, enumerable: true },
        DOM_KEY_LOCATION_NUMPAD: { value: 3, enumerable: true }
      });
      ctorRegistry[interfaceName] = KeyboardEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: KeyboardEvent
      });
    };
    var Impl = require_KeyboardEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js
var require_MessageEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventInit = require_EventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "data";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["any"](value2, { context: context + " has member 'data' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
      {
        const key = "lastEventId";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["DOMString"](value2, {
            context: context + " has member 'lastEventId' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = "";
        }
      }
      {
        const key = "origin";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["USVString"](value2, {
            context: context + " has member 'origin' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = "";
        }
      }
      {
        const key = "ports";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (!utils2.isObject(value2)) {
            throw new globalObject.TypeError(context + " has member 'ports' that is not an iterable object.");
          } else {
            const V = [];
            const tmp = value2;
            for (let nextItem of tmp) {
              nextItem = utils2.tryImplForWrapper(nextItem);
              V.push(nextItem);
            }
            value2 = V;
          }
          ret[key] = value2;
        } else {
          ret[key] = [];
        }
      }
      {
        const key = "source";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (value2 === null || value2 === void 0) {
            value2 = null;
          } else {
            value2 = utils2.tryImplForWrapper(value2);
          }
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/MessageEvent-impl.js
var require_MessageEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/MessageEvent-impl.js"(exports, module) {
    "use strict";
    var EventImpl = require_Event_impl().implementation;
    var MessageEventInit = require_MessageEventInit();
    var MessageEventImpl = class extends EventImpl {
      initMessageEvent(type, bubbles, cancelable, data2, origin2, lastEventId, source, ports) {
        if (this._dispatchFlag) {
          return;
        }
        this.initEvent(type, bubbles, cancelable);
        this.data = data2;
        this.origin = origin2;
        this.lastEventId = lastEventId;
        this.source = source;
        this.ports = ports;
      }
    };
    MessageEventImpl.defaultInit = MessageEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: MessageEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js
var require_MessageEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var MessageEventInit = require_MessageEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Event2 = require_Event();
    var interfaceName = "MessageEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'MessageEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["MessageEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Event2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker", "AudioWorklet"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class MessageEvent extends globalObject.Event {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'MessageEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'MessageEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = MessageEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'MessageEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        initMessageEvent(type) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'initMessageEvent' called on an object that is not a valid instance of MessageEvent."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'initMessageEvent' on 'MessageEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 3",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[3];
            if (curArg !== void 0) {
              curArg = conversions["any"](curArg, {
                context: "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 4",
                globals: globalObject
              });
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[4];
            if (curArg !== void 0) {
              curArg = conversions["USVString"](curArg, {
                context: "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 5",
                globals: globalObject
              });
            } else {
              curArg = "";
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[5];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 6",
                globals: globalObject
              });
            } else {
              curArg = "";
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[6];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = utils2.tryImplForWrapper(curArg);
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[7];
            if (curArg !== void 0) {
              if (!utils2.isObject(curArg)) {
                throw new globalObject.TypeError(
                  "Failed to execute 'initMessageEvent' on 'MessageEvent': parameter 8 is not an iterable object."
                );
              } else {
                const V = [];
                const tmp = curArg;
                for (let nextItem of tmp) {
                  nextItem = utils2.tryImplForWrapper(nextItem);
                  V.push(nextItem);
                }
                curArg = V;
              }
            } else {
              curArg = [];
            }
            args.push(curArg);
          }
          return esValue[implSymbol].initMessageEvent(...args);
        }
        get data() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get data' called on an object that is not a valid instance of MessageEvent."
            );
          }
          return esValue[implSymbol]["data"];
        }
        get origin() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get origin' called on an object that is not a valid instance of MessageEvent."
            );
          }
          return esValue[implSymbol]["origin"];
        }
        get lastEventId() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get lastEventId' called on an object that is not a valid instance of MessageEvent."
            );
          }
          return esValue[implSymbol]["lastEventId"];
        }
        get source() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get source' called on an object that is not a valid instance of MessageEvent."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["source"]);
        }
        get ports() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ports' called on an object that is not a valid instance of MessageEvent."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ports"]);
        }
      }
      Object.defineProperties(MessageEvent.prototype, {
        initMessageEvent: { enumerable: true },
        data: { enumerable: true },
        origin: { enumerable: true },
        lastEventId: { enumerable: true },
        source: { enumerable: true },
        ports: { enumerable: true },
        [Symbol.toStringTag]: { value: "MessageEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = MessageEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: MessageEvent
      });
    };
    var Impl = require_MessageEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/PopStateEventInit.js
var require_PopStateEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/PopStateEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventInit = require_EventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "state";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["any"](value2, { context: context + " has member 'state' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/PopStateEvent-impl.js
var require_PopStateEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/PopStateEvent-impl.js"(exports) {
    "use strict";
    var EventImpl = require_Event_impl().implementation;
    var PopStateEventInit = require_PopStateEventInit();
    var PopStateEventImpl = class extends EventImpl {
    };
    PopStateEventImpl.defaultInit = PopStateEventInit.convert(void 0, void 0);
    exports.implementation = PopStateEventImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/PopStateEvent.js
var require_PopStateEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/PopStateEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var PopStateEventInit = require_PopStateEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Event2 = require_Event();
    var interfaceName = "PopStateEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'PopStateEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["PopStateEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Event2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class PopStateEvent extends globalObject.Event {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'PopStateEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'PopStateEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = PopStateEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'PopStateEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get state() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get state' called on an object that is not a valid instance of PopStateEvent."
            );
          }
          return esValue[implSymbol]["state"];
        }
      }
      Object.defineProperties(PopStateEvent.prototype, {
        state: { enumerable: true },
        [Symbol.toStringTag]: { value: "PopStateEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = PopStateEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: PopStateEvent
      });
    };
    var Impl = require_PopStateEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ProgressEventInit.js
var require_ProgressEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ProgressEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventInit = require_EventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "lengthComputable";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'lengthComputable' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "loaded";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unsigned long long"](value2, {
            context: context + " has member 'loaded' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "total";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unsigned long long"](value2, {
            context: context + " has member 'total' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/ProgressEvent-impl.js
var require_ProgressEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/ProgressEvent-impl.js"(exports, module) {
    "use strict";
    var EventImpl = require_Event_impl().implementation;
    var ProgressEventInit = require_ProgressEventInit();
    var ProgressEventImpl = class extends EventImpl {
    };
    ProgressEventImpl.defaultInit = ProgressEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: ProgressEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ProgressEvent.js
var require_ProgressEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ProgressEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var ProgressEventInit = require_ProgressEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Event2 = require_Event();
    var interfaceName = "ProgressEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'ProgressEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["ProgressEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Event2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "DedicatedWorker", "SharedWorker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class ProgressEvent extends globalObject.Event {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'ProgressEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'ProgressEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = ProgressEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'ProgressEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get lengthComputable() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get lengthComputable' called on an object that is not a valid instance of ProgressEvent."
            );
          }
          return esValue[implSymbol]["lengthComputable"];
        }
        get loaded() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get loaded' called on an object that is not a valid instance of ProgressEvent."
            );
          }
          return esValue[implSymbol]["loaded"];
        }
        get total() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get total' called on an object that is not a valid instance of ProgressEvent."
            );
          }
          return esValue[implSymbol]["total"];
        }
      }
      Object.defineProperties(ProgressEvent.prototype, {
        lengthComputable: { enumerable: true },
        loaded: { enumerable: true },
        total: { enumerable: true },
        [Symbol.toStringTag]: { value: "ProgressEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = ProgressEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: ProgressEvent
      });
    };
    var Impl = require_ProgressEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/TouchEventInit.js
var require_TouchEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/TouchEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventModifierInit = require_EventModifierInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventModifierInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "changedTouches";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (!utils2.isObject(value2)) {
            throw new globalObject.TypeError(context + " has member 'changedTouches' that is not an iterable object.");
          } else {
            const V = [];
            const tmp = value2;
            for (let nextItem of tmp) {
              nextItem = utils2.tryImplForWrapper(nextItem);
              V.push(nextItem);
            }
            value2 = V;
          }
          ret[key] = value2;
        } else {
          ret[key] = [];
        }
      }
      {
        const key = "targetTouches";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (!utils2.isObject(value2)) {
            throw new globalObject.TypeError(context + " has member 'targetTouches' that is not an iterable object.");
          } else {
            const V = [];
            const tmp = value2;
            for (let nextItem of tmp) {
              nextItem = utils2.tryImplForWrapper(nextItem);
              V.push(nextItem);
            }
            value2 = V;
          }
          ret[key] = value2;
        } else {
          ret[key] = [];
        }
      }
      {
        const key = "touches";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (!utils2.isObject(value2)) {
            throw new globalObject.TypeError(context + " has member 'touches' that is not an iterable object.");
          } else {
            const V = [];
            const tmp = value2;
            for (let nextItem of tmp) {
              nextItem = utils2.tryImplForWrapper(nextItem);
              V.push(nextItem);
            }
            value2 = V;
          }
          ret[key] = value2;
        } else {
          ret[key] = [];
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/TouchEvent-impl.js
var require_TouchEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/TouchEvent-impl.js"(exports, module) {
    "use strict";
    var UIEventImpl = require_UIEvent_impl().implementation;
    var TouchEventInit = require_TouchEventInit();
    var TouchEventImpl = class extends UIEventImpl {
    };
    TouchEventImpl.defaultInit = TouchEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: TouchEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/TouchEvent.js
var require_TouchEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/TouchEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var TouchEventInit = require_TouchEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var UIEvent = require_UIEvent();
    var interfaceName = "TouchEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'TouchEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["TouchEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      UIEvent._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class TouchEvent extends globalObject.UIEvent {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'TouchEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'TouchEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = TouchEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'TouchEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get touches() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get touches' called on an object that is not a valid instance of TouchEvent."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["touches"]);
        }
        get targetTouches() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get targetTouches' called on an object that is not a valid instance of TouchEvent."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["targetTouches"]);
        }
        get changedTouches() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get changedTouches' called on an object that is not a valid instance of TouchEvent."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["changedTouches"]);
        }
        get altKey() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get altKey' called on an object that is not a valid instance of TouchEvent."
            );
          }
          return esValue[implSymbol]["altKey"];
        }
        get metaKey() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get metaKey' called on an object that is not a valid instance of TouchEvent."
            );
          }
          return esValue[implSymbol]["metaKey"];
        }
        get ctrlKey() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ctrlKey' called on an object that is not a valid instance of TouchEvent."
            );
          }
          return esValue[implSymbol]["ctrlKey"];
        }
        get shiftKey() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get shiftKey' called on an object that is not a valid instance of TouchEvent."
            );
          }
          return esValue[implSymbol]["shiftKey"];
        }
      }
      Object.defineProperties(TouchEvent.prototype, {
        touches: { enumerable: true },
        targetTouches: { enumerable: true },
        changedTouches: { enumerable: true },
        altKey: { enumerable: true },
        metaKey: { enumerable: true },
        ctrlKey: { enumerable: true },
        shiftKey: { enumerable: true },
        [Symbol.toStringTag]: { value: "TouchEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = TouchEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: TouchEvent
      });
    };
    var Impl = require_TouchEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/resources/request-manager.js
var require_request_manager = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/resources/request-manager.js"(exports, module) {
    "use strict";
    module.exports = class RequestManager {
      constructor() {
        this.openedRequests = [];
      }
      add(req) {
        this.openedRequests.push(req);
      }
      remove(req) {
        const idx = this.openedRequests.indexOf(req);
        if (idx !== -1) {
          this.openedRequests.splice(idx, 1);
        }
      }
      close() {
        for (const openedRequest of this.openedRequests) {
          openedRequest.abort();
        }
        this.openedRequests = [];
      }
      size() {
        return this.openedRequests.length;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/resources/async-resource-queue.js
var require_async_resource_queue = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/resources/async-resource-queue.js"(exports, module) {
    "use strict";
    var QueueItem = class {
      constructor(onLoad, onError, dependentItem) {
        this.onLoad = onLoad;
        this.onError = onError;
        this.data = null;
        this.error = null;
        this.dependentItem = dependentItem;
      }
    };
    module.exports = class AsyncResourceQueue {
      constructor() {
        this.items = /* @__PURE__ */ new Set();
        this.dependentItems = /* @__PURE__ */ new Set();
      }
      count() {
        return this.items.size + this.dependentItems.size;
      }
      _notify() {
        if (this._listener) {
          this._listener();
        }
      }
      _check(item) {
        let promise;
        if (item.onError && item.error) {
          promise = item.onError(item.error);
        } else if (item.onLoad && item.data) {
          promise = item.onLoad(item.data);
        }
        promise.then(() => {
          this.items.delete(item);
          this.dependentItems.delete(item);
          if (this.count() === 0) {
            this._notify();
          }
        });
      }
      setListener(listener) {
        this._listener = listener;
      }
      push(request, onLoad, onError, dependentItem) {
        const q = this;
        const item = new QueueItem(onLoad, onError, dependentItem);
        q.items.add(item);
        return request.then((data2) => {
          item.data = data2;
          if (dependentItem && !dependentItem.finished) {
            q.dependentItems.add(item);
            return q.items.delete(item);
          }
          if (onLoad) {
            return q._check(item);
          }
          q.items.delete(item);
          if (q.count() === 0) {
            q._notify();
          }
          return null;
        }).catch((err2) => {
          item.error = err2;
          if (dependentItem && !dependentItem.finished) {
            q.dependentItems.add(item);
            return q.items.delete(item);
          }
          if (onError) {
            return q._check(item);
          }
          q.items.delete(item);
          if (q.count() === 0) {
            q._notify();
          }
          return null;
        });
      }
      notifyItem(syncItem) {
        for (const item of this.dependentItems) {
          if (item.dependentItem === syncItem) {
            this._check(item);
          }
        }
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/resources/resource-queue.js
var require_resource_queue = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/resources/resource-queue.js"(exports, module) {
    "use strict";
    module.exports = class ResourceQueue {
      constructor({ paused, asyncQueue } = {}) {
        this.paused = Boolean(paused);
        this._asyncQueue = asyncQueue;
      }
      getLastScript() {
        let head = this.tail;
        while (head) {
          if (head.isScript) {
            return head;
          }
          head = head.prev;
        }
        return null;
      }
      _moreScripts() {
        let found = false;
        let head = this.tail;
        while (head && !found) {
          found = head.isScript;
          head = head.prev;
        }
        return found;
      }
      _notify() {
        if (this._listener) {
          this._listener();
        }
      }
      setListener(listener) {
        this._listener = listener;
      }
      push(request, onLoad, onError, keepLast, element) {
        const isScript = element ? element.localName === "script" : false;
        if (!request) {
          if (isScript && !this._moreScripts()) {
            return onLoad();
          }
          request = Promise.resolve();
        }
        const q = this;
        const item = {
          isScript,
          err: null,
          element,
          fired: false,
          data: null,
          keepLast,
          prev: q.tail,
          check() {
            if (!q.paused && !this.prev && this.fired) {
              let promise;
              if (this.err && onError) {
                promise = onError(this.err);
              }
              if (!this.err && onLoad) {
                promise = onLoad(this.data);
              }
              Promise.resolve(promise).then(() => {
                if (this.next) {
                  this.next.prev = null;
                  this.next.check();
                } else {
                  q.tail = null;
                  q._notify();
                }
                this.finished = true;
                if (q._asyncQueue) {
                  q._asyncQueue.notifyItem(this);
                }
              });
            }
          }
        };
        if (q.tail) {
          if (q.tail.keepLast) {
            if (q.tail.prev) {
              q.tail.prev.next = item;
            }
            item.prev = q.tail.prev;
            q.tail.prev = item;
            item.next = q.tail;
          } else {
            q.tail.next = item;
            q.tail = item;
          }
        } else {
          q.tail = item;
        }
        return request.then((data2) => {
          item.fired = 1;
          item.data = data2;
          item.check();
        }).catch((err2) => {
          item.fired = true;
          item.err = err2;
          item.check();
        });
      }
      resume() {
        if (!this.paused) {
          return;
        }
        this.paused = false;
        let head = this.tail;
        while (head && head.prev) {
          head = head.prev;
        }
        if (head) {
          head.check();
        }
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/resources/per-document-resource-loader.js
var require_per_document_resource_loader = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/resources/per-document-resource-loader.js"(exports, module) {
    "use strict";
    var idlUtils = require_utils16();
    var { fireAnEvent } = require_events4();
    module.exports = class PerDocumentResourceLoader {
      constructor(document2) {
        this._document = document2;
        this._defaultEncoding = document2._encoding;
        this._resourceLoader = document2._defaultView ? document2._defaultView._resourceLoader : null;
        this._requestManager = document2._requestManager;
        this._queue = document2._queue;
        this._deferQueue = document2._deferQueue;
        this._asyncQueue = document2._asyncQueue;
      }
      fetch(url3, { element, onLoad, onError }) {
        const request = this._resourceLoader.fetch(url3, {
          cookieJar: this._document._cookieJar,
          element: idlUtils.wrapperForImpl(element),
          referrer: this._document.URL
        });
        if (request === null) {
          return null;
        }
        this._requestManager.add(request);
        const onErrorWrapped = (error) => {
          this._requestManager.remove(request);
          if (onError) {
            onError(error);
          }
          fireAnEvent("error", element);
          const err2 = new Error(`Could not load ${element.localName}: "${url3}"`);
          err2.type = "resource loading";
          err2.detail = error;
          this._document._defaultView._virtualConsole.emit("jsdomError", err2);
          return Promise.resolve();
        };
        const onLoadWrapped = (data2) => {
          this._requestManager.remove(request);
          this._addCookies(url3, request.response ? request.response.headers : {});
          try {
            const result = onLoad ? onLoad(data2) : void 0;
            return Promise.resolve(result).then(() => {
              fireAnEvent("load", element);
              return Promise.resolve();
            }).catch((err2) => {
              return onErrorWrapped(err2);
            });
          } catch (err2) {
            return onErrorWrapped(err2);
          }
        };
        if (element.localName === "script" && element.hasAttributeNS(null, "async")) {
          this._asyncQueue.push(request, onLoadWrapped, onErrorWrapped, this._queue.getLastScript());
        } else if (element.localName === "script" && element.hasAttributeNS(null, "defer") && this._document.readyState !== "interactive") {
          this._deferQueue.push(request, onLoadWrapped, onErrorWrapped, false, element);
        } else {
          this._queue.push(request, onLoadWrapped, onErrorWrapped, false, element);
        }
        return request;
      }
      _addCookies(url3, headers) {
        let cookies = headers["set-cookie"];
        if (!cookies) {
          return;
        }
        if (!Array.isArray(cookies)) {
          cookies = [cookies];
        }
        cookies.forEach((cookie) => {
          this._document._cookieJar.setCookieSync(cookie, url3, { http: true, ignoreError: true });
        });
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js
var require_Document_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js"(exports, module) {
    "use strict";
    var { CookieJar } = require_cookie2();
    var NodeImpl = require_Node_impl().implementation;
    var idlUtils = require_utils16();
    var NODE_TYPE = require_node_type();
    var { mixin: mixin2, memoizeQuery } = require_utils17();
    var { firstChildWithLocalName, firstChildWithLocalNames, firstDescendantWithLocalName } = require_traversal2();
    var whatwgURL = require_whatwg_url();
    var StyleSheetList = require_StyleSheetList();
    var { domSymbolTree } = require_internal_constants();
    var eventAccessors = require_create_event_accessor();
    var { asciiLowercase, stripAndCollapseASCIIWhitespace } = require_strings2();
    var { childTextContent } = require_text();
    var { HTML_NS, SVG_NS } = require_namespaces();
    var DOMException2 = require_DOMException();
    var { parseIntoDocument } = require_parser3();
    var History = require_History();
    var Location = require_Location();
    var HTMLCollection = require_HTMLCollection();
    var NodeList = require_NodeList();
    var validateName = require_validate_names().name;
    var { validateAndExtract } = require_validate_names();
    var { fireAnEvent } = require_events4();
    var { shadowIncludingInclusiveDescendantsIterator } = require_shadow_dom();
    var { enqueueCECallbackReaction } = require_custom_elements();
    var { createElement: createElement11, internalCreateElementNSSteps } = require_create_element();
    var IterableWeakSet = require_iterable_weak_set();
    var DocumentOrShadowRootImpl = require_DocumentOrShadowRoot_impl().implementation;
    var GlobalEventHandlersImpl = require_GlobalEventHandlers_impl().implementation;
    var NonElementParentNodeImpl = require_NonElementParentNode_impl().implementation;
    var ParentNodeImpl = require_ParentNode_impl().implementation;
    var {
      clone,
      listOfElementsWithQualifiedName,
      listOfElementsWithNamespaceAndLocalName,
      listOfElementsWithClassNames
    } = require_node5();
    var generatedAttr = require_Attr();
    var Comment = require_Comment();
    var ProcessingInstruction = require_ProcessingInstruction();
    var CDATASection = require_CDATASection();
    var Text2 = require_Text();
    var DocumentFragment2 = require_DocumentFragment();
    var DOMImplementation = require_DOMImplementation();
    var TreeWalker = require_TreeWalker();
    var NodeIterator = require_NodeIterator();
    var ShadowRoot = require_ShadowRoot();
    var Range = require_Range();
    var documents = require_documents();
    var CustomEvent = require_CustomEvent();
    var ErrorEvent = require_ErrorEvent();
    var Event2 = require_Event();
    var FocusEvent = require_FocusEvent();
    var HashChangeEvent = require_HashChangeEvent();
    var KeyboardEvent = require_KeyboardEvent();
    var MessageEvent = require_MessageEvent();
    var MouseEvent = require_MouseEvent();
    var PopStateEvent = require_PopStateEvent();
    var ProgressEvent = require_ProgressEvent();
    var TouchEvent = require_TouchEvent();
    var UIEvent = require_UIEvent();
    var RequestManager = require_request_manager();
    var AsyncResourceQueue = require_async_resource_queue();
    var ResourceQueue = require_resource_queue();
    var PerDocumentResourceLoader = require_per_document_resource_loader();
    function clearChildNodes(node) {
      for (let child = domSymbolTree.firstChild(node); child; child = domSymbolTree.firstChild(node)) {
        node.removeChild(child);
      }
    }
    function pad2(number3) {
      if (number3 < 10) {
        return "0" + number3;
      }
      return number3;
    }
    function toLastModifiedString(date) {
      return pad2(date.getMonth() + 1) + "/" + pad2(date.getDate()) + "/" + date.getFullYear() + " " + pad2(date.getHours()) + ":" + pad2(date.getMinutes()) + ":" + pad2(date.getSeconds());
    }
    var eventInterfaceTable = {
      customevent: CustomEvent,
      errorevent: ErrorEvent,
      event: Event2,
      events: Event2,
      focusevent: FocusEvent,
      hashchangeevent: HashChangeEvent,
      htmlevents: Event2,
      keyboardevent: KeyboardEvent,
      messageevent: MessageEvent,
      mouseevent: MouseEvent,
      mouseevents: MouseEvent,
      popstateevent: PopStateEvent,
      progressevent: ProgressEvent,
      svgevents: Event2,
      touchevent: TouchEvent,
      uievent: UIEvent,
      uievents: UIEvent
    };
    var DocumentImpl = class extends NodeImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._initGlobalEvents();
        this._ownerDocument = this;
        this.nodeType = NODE_TYPE.DOCUMENT_NODE;
        if (!privateData.options) {
          privateData.options = {};
        }
        if (!privateData.options.parsingMode) {
          privateData.options.parsingMode = "xml";
        }
        if (!privateData.options.encoding) {
          privateData.options.encoding = "UTF-8";
        }
        if (!privateData.options.contentType) {
          privateData.options.contentType = privateData.options.parsingMode === "xml" ? "application/xml" : "text/html";
        }
        this._parsingMode = privateData.options.parsingMode;
        this._implementation = DOMImplementation.createImpl(this._globalObject, [], {
          ownerDocument: this
        });
        this._defaultView = privateData.options.defaultView || null;
        this._global = privateData.options.global;
        this._ids = /* @__PURE__ */ Object.create(null);
        this._attached = true;
        this._currentScript = null;
        this._pageShowingFlag = false;
        this._cookieJar = privateData.options.cookieJar;
        this._parseOptions = privateData.options.parseOptions || {};
        this._scriptingDisabled = privateData.options.scriptingDisabled;
        if (this._cookieJar === void 0) {
          this._cookieJar = new CookieJar(null, { looseMode: true });
        }
        if (this._scriptingDisabled) {
          this._parseOptions.scriptingEnabled = false;
        }
        this.contentType = privateData.options.contentType;
        this._encoding = privateData.options.encoding;
        const urlOption = privateData.options.url === void 0 ? "about:blank" : privateData.options.url;
        const parsed = whatwgURL.parseURL(urlOption);
        if (parsed === null) {
          throw new TypeError(`Could not parse "${urlOption}" as a URL`);
        }
        this._URL = parsed;
        this._origin = urlOption === "about:blank" && privateData.options.parentOrigin ? privateData.options.parentOrigin : whatwgURL.serializeURLOrigin(this._URL);
        this._location = Location.createImpl(this._globalObject, [], { relevantDocument: this });
        this._history = History.createImpl(this._globalObject, [], {
          window: this._defaultView,
          document: this,
          actAsIfLocationReloadCalled: () => this._location.reload()
        });
        this._workingNodeIterators = new IterableWeakSet();
        this._referrer = privateData.options.referrer || "";
        this._lastModified = toLastModifiedString(privateData.options.lastModified || /* @__PURE__ */ new Date());
        this._asyncQueue = new AsyncResourceQueue();
        this._queue = new ResourceQueue({ asyncQueue: this._asyncQueue, paused: false });
        this._deferQueue = new ResourceQueue({ paused: true });
        this._requestManager = new RequestManager();
        this._currentDocumentReadiness = privateData.options.readyState || "loading";
        this._lastFocusedElement = null;
        this._resourceLoader = new PerDocumentResourceLoader(this);
        this._latestEntry = null;
        this._throwOnDynamicMarkupInsertionCounter = 0;
        this._styleCache = null;
        this._baseURLCache = null;
        this._baseURLSerializedCache = null;
      }
      _clearBaseURLCache() {
        this._baseURLCache = null;
        this._baseURLSerializedCache = null;
      }
      // https://html.spec.whatwg.org/multipage/infrastructure.html#document-base-url
      baseURL() {
        if (this._baseURLCache) {
          return this._baseURLCache;
        }
        const firstBase = this.querySelector("base[href]");
        this._baseURLCache = firstBase === null ? this._fallbackBaseURL() : this._frozenBaseURL(firstBase, this._fallbackBaseURL());
        return this._baseURLCache;
      }
      baseURLSerialized() {
        if (this._baseURLSerializedCache) {
          return this._baseURLSerializedCache;
        }
        const result = whatwgURL.serializeURL(this.baseURL());
        this._baseURLSerializedCache = result;
        return result;
      }
      // https://html.spec.whatwg.org/#resolve-a-url
      encodingParseAURL(url3) {
        return whatwgURL.parseURL(url3, { baseURL: this.baseURL() });
      }
      // https://html.spec.whatwg.org/#frozen-base-url
      _frozenBaseURL(baseElement, fallbackBaseURL) {
        const baseHrefAttribute = baseElement.getAttributeNS(null, "href");
        const result = whatwgURL.parseURL(baseHrefAttribute, { baseURL: fallbackBaseURL });
        return result === null ? fallbackBaseURL : result;
      }
      // https://html.spec.whatwg.org/#fallback-base-url
      _fallbackBaseURL() {
        if (this.URL === "about:blank" && this._defaultView && this._defaultView._parent !== this._defaultView) {
          const parentDocument = idlUtils.implForWrapper(this._defaultView._parent._document);
          return parentDocument.baseURL();
        }
        return this._URL;
      }
      _getTheParent(event) {
        if (event.type === "load" || !this._defaultView) {
          return null;
        }
        return idlUtils.implForWrapper(this._defaultView);
      }
      get compatMode() {
        return this._parsingMode === "xml" || this.doctype ? "CSS1Compat" : "BackCompat";
      }
      get charset() {
        return this._encoding;
      }
      get characterSet() {
        return this._encoding;
      }
      get inputEncoding() {
        return this._encoding;
      }
      get doctype() {
        for (const childNode of domSymbolTree.childrenIterator(this)) {
          if (childNode.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE) {
            return childNode;
          }
        }
        return null;
      }
      get URL() {
        return whatwgURL.serializeURL(this._URL);
      }
      get documentURI() {
        return whatwgURL.serializeURL(this._URL);
      }
      get location() {
        return this._defaultView ? this._location : null;
      }
      // https://dom.spec.whatwg.org/#dom-document-documentelement
      get documentElement() {
        for (const childNode of domSymbolTree.childrenIterator(this)) {
          if (childNode.nodeType === NODE_TYPE.ELEMENT_NODE) {
            return childNode;
          }
        }
        return null;
      }
      get implementation() {
        return this._implementation;
      }
      set implementation(implementation) {
        this._implementation = implementation;
      }
      get defaultView() {
        return this._defaultView;
      }
      get currentScript() {
        return this._currentScript;
      }
      get readyState() {
        return this._currentDocumentReadiness;
      }
      set readyState(state) {
        this._currentDocumentReadiness = state;
        fireAnEvent("readystatechange", this);
      }
      hasFocus() {
        return Boolean(this._lastFocusedElement);
      }
      _descendantRemoved(parent, child) {
        if (child.tagName === "STYLE") {
          this.styleSheets._remove(child.sheet);
        }
        super._descendantRemoved(parent, child);
      }
      write(...args) {
        let text = "";
        for (let i5 = 0; i5 < args.length; ++i5) {
          text += args[i5];
        }
        if (this._parsingMode === "xml") {
          throw DOMException2.create(this._globalObject, [
            "Cannot use document.write on XML documents",
            "InvalidStateError"
          ]);
        }
        if (this._throwOnDynamicMarkupInsertionCounter > 0) {
          throw DOMException2.create(this._globalObject, [
            "Cannot use document.write while a custom element upgrades",
            "InvalidStateError"
          ]);
        }
        if (this._writeAfterElement) {
          const tempDiv = this.createElement("div");
          tempDiv.innerHTML = text;
          let child = tempDiv.firstChild;
          let previous = this._writeAfterElement;
          const parent = this._writeAfterElement.parentNode;
          while (child) {
            const node = child;
            child = child.nextSibling;
            node._isMovingDueToDocumentWrite = true;
            parent.insertBefore(node, previous.nextSibling);
            node._isMovingDueToDocumentWrite = false;
            previous = node;
          }
        } else if (this.readyState === "loading") {
          if (this.lastChild) {
            let node = this;
            while (node.lastChild && node.lastChild.nodeType === NODE_TYPE.ELEMENT_NODE) {
              node = node.lastChild;
            }
            node.innerHTML = text;
          } else {
            clearChildNodes(this);
            parseIntoDocument(text, this);
          }
        } else if (text) {
          clearChildNodes(this);
          parseIntoDocument(text, this);
        }
      }
      writeln(...args) {
        this.write(...args, "\n");
      }
      // This is implemented separately for Document (which has a _ids cache) and DocumentFragment (which does not).
      getElementById(id) {
        if (!this._ids[id]) {
          return null;
        }
        const matchElement = this._ids[id].find((candidate) => {
          let root = candidate;
          while (domSymbolTree.parent(root)) {
            root = domSymbolTree.parent(root);
          }
          return root === this;
        });
        return matchElement || null;
      }
      get referrer() {
        return this._referrer || "";
      }
      get lastModified() {
        return this._lastModified;
      }
      get images() {
        return this.getElementsByTagName("IMG");
      }
      get embeds() {
        return this.getElementsByTagName("EMBED");
      }
      get plugins() {
        return this.embeds;
      }
      get links() {
        return HTMLCollection.createImpl(this._globalObject, [], {
          element: this,
          query: () => domSymbolTree.treeToArray(this, {
            filter: (node) => (node._localName === "a" || node._localName === "area") && node.hasAttributeNS(null, "href") && node._namespaceURI === HTML_NS
          })
        });
      }
      get forms() {
        return this.getElementsByTagName("FORM");
      }
      get scripts() {
        return this.getElementsByTagName("SCRIPT");
      }
      get anchors() {
        return HTMLCollection.createImpl(this._globalObject, [], {
          element: this,
          query: () => domSymbolTree.treeToArray(this, {
            filter: (node) => node._localName === "a" && node.hasAttributeNS(null, "name") && node._namespaceURI === HTML_NS
          })
        });
      }
      // The applets attribute must return an
      // HTMLCollection rooted at the Document node,
      // whose filter matches nothing.
      // (It exists for historical reasons.)
      get applets() {
        return HTMLCollection.createImpl(this._globalObject, [], {
          element: this,
          query: () => []
        });
      }
      open() {
        let child = domSymbolTree.firstChild(this);
        while (child) {
          this.removeChild(child);
          child = domSymbolTree.firstChild(this);
        }
        this._modified();
        return this;
      }
      close(noQueue) {
        if (noQueue) {
          this.readyState = "complete";
          fireAnEvent("DOMContentLoaded", this, void 0, { bubbles: true });
          fireAnEvent("load", this);
          return;
        }
        this._queue.resume();
        const dummyPromise = Promise.resolve();
        const onDOMContentLoad = () => {
          const doc = this;
          function dispatchEvent() {
            doc.readyState = "interactive";
            fireAnEvent("DOMContentLoaded", doc, void 0, { bubbles: true });
          }
          return new Promise((resolve4) => {
            if (!this._deferQueue.tail) {
              dispatchEvent();
              resolve4();
              return;
            }
            this._deferQueue.setListener(() => {
              dispatchEvent();
              resolve4();
            });
            this._deferQueue.resume();
          });
        };
        const onLoad = () => {
          const doc = this;
          function dispatchEvent() {
            doc.readyState = "complete";
            fireAnEvent("load", doc);
          }
          return new Promise((resolve4) => {
            if (this._asyncQueue.count() === 0) {
              dispatchEvent();
              resolve4();
              return;
            }
            this._asyncQueue.setListener(() => {
              dispatchEvent();
              resolve4();
            });
          });
        };
        this._queue.push(dummyPromise, onDOMContentLoad, null);
        this._queue.push(dummyPromise, onLoad, null, true);
      }
      getElementsByName(elementName) {
        return NodeList.createImpl(this._globalObject, [], {
          element: this,
          query: () => domSymbolTree.treeToArray(this, {
            filter: (node) => node.getAttributeNS && node.getAttributeNS(null, "name") === elementName
          })
        });
      }
      get title() {
        const { documentElement } = this;
        let value2 = "";
        if (documentElement && documentElement._localName === "svg") {
          const svgTitleElement = firstChildWithLocalName(documentElement, "title", SVG_NS);
          if (svgTitleElement) {
            value2 = childTextContent(svgTitleElement);
          }
        } else {
          const titleElement = firstDescendantWithLocalName(this, "title");
          if (titleElement) {
            value2 = childTextContent(titleElement);
          }
        }
        value2 = stripAndCollapseASCIIWhitespace(value2);
        return value2;
      }
      set title(value2) {
        const { documentElement } = this;
        let element;
        if (documentElement && documentElement._localName === "svg") {
          element = firstChildWithLocalName(documentElement, "title", SVG_NS);
          if (!element) {
            element = this.createElementNS(SVG_NS, "title");
            this._insert(element, documentElement.firstChild);
          }
          element.textContent = value2;
        } else if (documentElement && documentElement._namespaceURI === HTML_NS) {
          const titleElement = firstDescendantWithLocalName(this, "title");
          const headElement = this.head;
          if (titleElement === null && headElement === null) {
            return;
          }
          if (titleElement !== null) {
            element = titleElement;
          } else {
            element = this.createElement("title");
            headElement._append(element);
          }
          element.textContent = value2;
        }
      }
      get dir() {
        return this.documentElement ? this.documentElement.dir : "";
      }
      set dir(value2) {
        if (this.documentElement) {
          this.documentElement.dir = value2;
        }
      }
      get head() {
        return this.documentElement ? firstChildWithLocalName(this.documentElement, "head") : null;
      }
      get body() {
        const { documentElement } = this;
        if (!documentElement || documentElement._localName !== "html" || documentElement._namespaceURI !== HTML_NS) {
          return null;
        }
        return firstChildWithLocalNames(this.documentElement, /* @__PURE__ */ new Set(["body", "frameset"]));
      }
      set body(value2) {
        if (value2 === null || value2._namespaceURI !== HTML_NS || value2._localName !== "body" && value2._localName !== "frameset") {
          throw DOMException2.create(this._globalObject, [
            "Cannot set the body to null or a non-body/frameset element",
            "HierarchyRequestError"
          ]);
        }
        const bodyElement = this.body;
        if (value2 === bodyElement) {
          return;
        }
        if (bodyElement !== null) {
          bodyElement.parentNode._replace(value2, bodyElement);
          return;
        }
        const { documentElement } = this;
        if (documentElement === null) {
          throw DOMException2.create(this._globalObject, [
            "Cannot set the body when there is no document element",
            "HierarchyRequestError"
          ]);
        }
        documentElement._append(value2);
      }
      _runPreRemovingSteps(oldNode) {
        if (oldNode === this.activeElement) {
          this._lastFocusedElement = this.body;
        }
        for (const activeNodeIterator of this._workingNodeIterators) {
          activeNodeIterator._preRemovingSteps(oldNode);
        }
      }
      createEvent(type) {
        const typeLower = type.toLowerCase();
        const eventWrapper = eventInterfaceTable[typeLower] || null;
        if (!eventWrapper) {
          throw DOMException2.create(this._globalObject, [
            'The provided event type ("' + type + '") is invalid',
            "NotSupportedError"
          ]);
        }
        const impl = eventWrapper.createImpl(this._globalObject, [""]);
        impl._initializedFlag = false;
        return impl;
      }
      createRange() {
        return Range.createImpl(this._globalObject, [], {
          start: { node: this, offset: 0 },
          end: { node: this, offset: 0 }
        });
      }
      createProcessingInstruction(target, data2) {
        validateName(this._globalObject, target);
        if (data2.includes("?>")) {
          throw DOMException2.create(this._globalObject, [
            'Processing instruction data cannot contain the string "?>"',
            "InvalidCharacterError"
          ]);
        }
        return ProcessingInstruction.createImpl(this._globalObject, [], {
          ownerDocument: this,
          target,
          data: data2
        });
      }
      // https://dom.spec.whatwg.org/#dom-document-createcdatasection
      createCDATASection(data2) {
        if (this._parsingMode === "html") {
          throw DOMException2.create(this._globalObject, [
            "Cannot create CDATA sections in HTML documents",
            "NotSupportedError"
          ]);
        }
        if (data2.includes("]]>")) {
          throw DOMException2.create(this._globalObject, [
            'CDATA section data cannot contain the string "]]>"',
            "InvalidCharacterError"
          ]);
        }
        return CDATASection.createImpl(this._globalObject, [], {
          ownerDocument: this,
          data: data2
        });
      }
      createTextNode(data2) {
        return Text2.createImpl(this._globalObject, [], {
          ownerDocument: this,
          data: data2
        });
      }
      createComment(data2) {
        return Comment.createImpl(this._globalObject, [], {
          ownerDocument: this,
          data: data2
        });
      }
      // https://dom.spec.whatwg.org/#dom-document-createelement
      createElement(localName, options) {
        validateName(this._globalObject, localName);
        if (this._parsingMode === "html") {
          localName = asciiLowercase(localName);
        }
        let isValue = null;
        if (options && options.is !== void 0) {
          isValue = options.is;
        }
        const namespace = this._parsingMode === "html" || this.contentType === "application/xhtml+xml" ? HTML_NS : null;
        return createElement11(this, localName, namespace, null, isValue, true);
      }
      // https://dom.spec.whatwg.org/#dom-document-createelementns
      createElementNS(namespace, qualifiedName, options) {
        return internalCreateElementNSSteps(this, namespace, qualifiedName, options);
      }
      createDocumentFragment() {
        return DocumentFragment2.createImpl(this._globalObject, [], { ownerDocument: this });
      }
      createAttribute(localName) {
        validateName(this._globalObject, localName);
        if (this._parsingMode === "html") {
          localName = asciiLowercase(localName);
        }
        return this._createAttribute({ localName });
      }
      createAttributeNS(namespace, name) {
        if (namespace === void 0) {
          namespace = null;
        }
        namespace = namespace !== null ? String(namespace) : namespace;
        const extracted = validateAndExtract(this._globalObject, namespace, name);
        return this._createAttribute({
          namespace: extracted.namespace,
          namespacePrefix: extracted.prefix,
          localName: extracted.localName
        });
      }
      // Using this helper function rather than directly calling generatedAttr.createImpl may be preferred in some files,
      // to avoid introducing a potentially cyclic dependency on generated/Attr.js.
      _createAttribute({
        localName,
        value: value2,
        namespace,
        namespacePrefix
      }) {
        return generatedAttr.createImpl(this._globalObject, [], {
          localName,
          value: value2,
          namespace,
          namespacePrefix,
          ownerDocument: this
        });
      }
      createTreeWalker(root, whatToShow, filter3) {
        return TreeWalker.createImpl(this._globalObject, [], { root, whatToShow, filter: filter3 });
      }
      createNodeIterator(root, whatToShow, filter3) {
        const nodeIterator = NodeIterator.createImpl(this._globalObject, [], { root, whatToShow, filter: filter3 });
        this._workingNodeIterators.add(nodeIterator);
        return nodeIterator;
      }
      importNode(node, deep) {
        if (node.nodeType === NODE_TYPE.DOCUMENT_NODE) {
          throw DOMException2.create(this._globalObject, [
            "Cannot import a document node",
            "NotSupportedError"
          ]);
        } else if (ShadowRoot.isImpl(node)) {
          throw DOMException2.create(this._globalObject, [
            "Cannot adopt a shadow root",
            "NotSupportedError"
          ]);
        }
        return clone(node, this, deep);
      }
      // https://dom.spec.whatwg.org/#dom-document-adoptnode
      adoptNode(node) {
        if (node.nodeType === NODE_TYPE.DOCUMENT_NODE) {
          throw DOMException2.create(this._globalObject, [
            "Cannot adopt a document node",
            "NotSupportedError"
          ]);
        } else if (ShadowRoot.isImpl(node)) {
          throw DOMException2.create(this._globalObject, [
            "Cannot adopt a shadow root",
            "HierarchyRequestError"
          ]);
        }
        this._adoptNode(node);
        return node;
      }
      // https://dom.spec.whatwg.org/#concept-node-adopt
      _adoptNode(node) {
        const newDocument = this;
        const oldDocument = node._ownerDocument;
        const parent = domSymbolTree.parent(node);
        if (parent) {
          parent._remove(node);
        }
        if (oldDocument !== newDocument) {
          for (const inclusiveDescendant of shadowIncludingInclusiveDescendantsIterator(node)) {
            inclusiveDescendant._ownerDocument = newDocument;
          }
          for (const inclusiveDescendant of shadowIncludingInclusiveDescendantsIterator(node)) {
            if (inclusiveDescendant._ceState === "custom") {
              enqueueCECallbackReaction(inclusiveDescendant, "adoptedCallback", [
                idlUtils.wrapperForImpl(oldDocument),
                idlUtils.wrapperForImpl(newDocument)
              ]);
            }
          }
          for (const inclusiveDescendant of shadowIncludingInclusiveDescendantsIterator(node)) {
            if (inclusiveDescendant._adoptingSteps) {
              inclusiveDescendant._adoptingSteps(oldDocument);
            }
          }
        }
      }
      get cookie() {
        return this._cookieJar.getCookieStringSync(this.URL, { http: false });
      }
      set cookie(cookieStr) {
        cookieStr = String(cookieStr);
        this._cookieJar.setCookieSync(cookieStr, this.URL, {
          http: false,
          ignoreError: true
        });
      }
      // The clear(), captureEvents(), and releaseEvents() methods must do nothing
      clear() {
      }
      captureEvents() {
      }
      releaseEvents() {
      }
      get styleSheets() {
        if (!this._styleSheets) {
          this._styleSheets = StyleSheetList.createImpl(this._globalObject);
        }
        return this._styleSheets;
      }
      get hidden() {
        if (this._defaultView && this._defaultView._pretendToBeVisual) {
          return false;
        }
        return true;
      }
      get visibilityState() {
        if (this._defaultView && this._defaultView._pretendToBeVisual) {
          return "visible";
        }
        return "prerender";
      }
      // https://w3c.github.io/selection-api/#extensions-to-document-interface
      getSelection() {
        return this._defaultView ? this._defaultView._selection : null;
      }
      // Needed to ensure that the resulting document has the correct prototype chain:
      // https://dom.spec.whatwg.org/#concept-node-clone says "that implements the same interfaces as node".
      _cloneDocument() {
        const copy2 = documents.createImpl(
          this._globalObject,
          {
            contentType: this.contentType,
            encoding: this._encoding,
            parsingMode: this._parsingMode
          }
        );
        copy2._URL = this._URL;
        copy2._origin = this._origin;
        return copy2;
      }
    };
    eventAccessors.createEventAccessor(DocumentImpl.prototype, "readystatechange");
    mixin2(DocumentImpl.prototype, DocumentOrShadowRootImpl.prototype);
    mixin2(DocumentImpl.prototype, GlobalEventHandlersImpl.prototype);
    mixin2(DocumentImpl.prototype, NonElementParentNodeImpl.prototype);
    mixin2(DocumentImpl.prototype, ParentNodeImpl.prototype);
    DocumentImpl.prototype.getElementsByTagName = memoizeQuery(function(qualifiedName) {
      return listOfElementsWithQualifiedName(qualifiedName, this);
    });
    DocumentImpl.prototype.getElementsByTagNameNS = memoizeQuery(function(namespace, localName) {
      return listOfElementsWithNamespaceAndLocalName(namespace, localName, this);
    });
    DocumentImpl.prototype.getElementsByClassName = memoizeQuery(function getElementsByClassName(classNames) {
      return listOfElementsWithClassNames(classNames, this);
    });
    module.exports = {
      implementation: DocumentImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Document.js
var require_Document = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Document.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var ElementCreationOptions = require_ElementCreationOptions();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var Node = require_Node();
    var NodeFilter = require_NodeFilter();
    var HTMLElement2 = require_HTMLElement();
    var EventHandlerNonNull = require_EventHandlerNonNull();
    var OnErrorEventHandlerNonNull = require_OnErrorEventHandlerNonNull();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "Document";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Document'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Document"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    function getUnforgeables(globalObject) {
      let unforgeables = unforgeablesMap.get(globalObject);
      if (unforgeables === void 0) {
        unforgeables = /* @__PURE__ */ Object.create(null);
        utils2.define(unforgeables, {
          get location() {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'get location' called on an object that is not a valid instance of Document."
              );
            }
            return utils2.tryWrapperForImpl(esValue[implSymbol]["location"]);
          },
          set location(V) {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'set location' called on an object that is not a valid instance of Document."
              );
            }
            const Q = esValue["location"];
            if (!utils2.isObject(Q)) {
              throw new globalObject.TypeError("Property 'location' is not an object");
            }
            Reflect.set(Q, "href", V);
          }
        });
        Object.defineProperties(unforgeables, {
          location: { configurable: false }
        });
        unforgeablesMap.set(globalObject, unforgeables);
      }
      return unforgeables;
    }
    exports._internalSetup = (wrapper, globalObject) => {
      Node._internalSetup(wrapper, globalObject);
      utils2.define(wrapper, getUnforgeables(globalObject));
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var unforgeablesMap = /* @__PURE__ */ new WeakMap();
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Document3 extends globalObject.Node {
        constructor() {
          return exports.setup(Object.create(new.target.prototype), globalObject, void 0);
        }
        getElementsByTagName(qualifiedName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getElementsByTagName' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getElementsByTagName' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getElementsByTagName' on 'Document': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getElementsByTagName(...args));
        }
        getElementsByTagNameNS(namespace, localName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getElementsByTagNameNS' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'getElementsByTagNameNS' on 'Document': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'getElementsByTagNameNS' on 'Document': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getElementsByTagNameNS' on 'Document': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getElementsByTagNameNS(...args));
        }
        getElementsByClassName(classNames) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getElementsByClassName' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getElementsByClassName' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getElementsByClassName' on 'Document': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getElementsByClassName(...args));
        }
        createElement(localName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createElement' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'createElement' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createElement' on 'Document': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = ElementCreationOptions.convert(globalObject, curArg, {
                  context: "Failed to execute 'createElement' on 'Document': parameter 2"
                });
              } else if (utils2.isObject(curArg)) {
                curArg = ElementCreationOptions.convert(globalObject, curArg, {
                  context: "Failed to execute 'createElement' on 'Document': parameter 2 dictionary"
                });
              } else {
                curArg = conversions["DOMString"](curArg, {
                  context: "Failed to execute 'createElement' on 'Document': parameter 2",
                  globals: globalObject
                });
              }
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].createElement(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        createElementNS(namespace, qualifiedName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createElementNS' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'createElementNS' on 'Document': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'createElementNS' on 'Document': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createElementNS' on 'Document': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = ElementCreationOptions.convert(globalObject, curArg, {
                  context: "Failed to execute 'createElementNS' on 'Document': parameter 3"
                });
              } else if (utils2.isObject(curArg)) {
                curArg = ElementCreationOptions.convert(globalObject, curArg, {
                  context: "Failed to execute 'createElementNS' on 'Document': parameter 3 dictionary"
                });
              } else {
                curArg = conversions["DOMString"](curArg, {
                  context: "Failed to execute 'createElementNS' on 'Document': parameter 3",
                  globals: globalObject
                });
              }
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].createElementNS(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        createDocumentFragment() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createDocumentFragment' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createDocumentFragment());
        }
        createTextNode(data2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createTextNode' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'createTextNode' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createTextNode' on 'Document': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createTextNode(...args));
        }
        createCDATASection(data2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createCDATASection' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'createCDATASection' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createCDATASection' on 'Document': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createCDATASection(...args));
        }
        createComment(data2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createComment' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'createComment' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createComment' on 'Document': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createComment(...args));
        }
        createProcessingInstruction(target, data2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createProcessingInstruction' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'createProcessingInstruction' on 'Document': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createProcessingInstruction' on 'Document': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createProcessingInstruction' on 'Document': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createProcessingInstruction(...args));
        }
        importNode(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'importNode' called on an object that is not a valid instance of Document.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'importNode' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'importNode' on 'Document': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'importNode' on 'Document': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].importNode(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        adoptNode(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'adoptNode' called on an object that is not a valid instance of Document.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'adoptNode' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'adoptNode' on 'Document': parameter 1"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].adoptNode(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        createAttribute(localName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createAttribute' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'createAttribute' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createAttribute' on 'Document': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createAttribute(...args));
        }
        createAttributeNS(namespace, qualifiedName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createAttributeNS' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'createAttributeNS' on 'Document': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'createAttributeNS' on 'Document': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createAttributeNS' on 'Document': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createAttributeNS(...args));
        }
        createEvent(interface_) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'createEvent' called on an object that is not a valid instance of Document.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'createEvent' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createEvent' on 'Document': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createEvent(...args));
        }
        createRange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'createRange' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createRange());
        }
        createNodeIterator(root) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createNodeIterator' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'createNodeIterator' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'createNodeIterator' on 'Document': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["unsigned long"](curArg, {
                context: "Failed to execute 'createNodeIterator' on 'Document': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = 4294967295;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = NodeFilter.convert(globalObject, curArg, {
                  context: "Failed to execute 'createNodeIterator' on 'Document': parameter 3"
                });
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createNodeIterator(...args));
        }
        createTreeWalker(root) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createTreeWalker' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'createTreeWalker' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'createTreeWalker' on 'Document': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["unsigned long"](curArg, {
                context: "Failed to execute 'createTreeWalker' on 'Document': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = 4294967295;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = NodeFilter.convert(globalObject, curArg, {
                  context: "Failed to execute 'createTreeWalker' on 'Document': parameter 3"
                });
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createTreeWalker(...args));
        }
        getElementsByName(elementName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getElementsByName' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getElementsByName' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getElementsByName' on 'Document': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getElementsByName(...args));
        }
        open() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'open' called on an object that is not a valid instance of Document.");
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'open' on 'Document': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = "text/html";
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'open' on 'Document': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = "";
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol].open(...args));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        close() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'close' called on an object that is not a valid instance of Document.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].close();
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        write() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'write' called on an object that is not a valid instance of Document.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'write' on 'Document': parameter " + (i5 + 1),
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].write(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        writeln() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'writeln' called on an object that is not a valid instance of Document.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'writeln' on 'Document': parameter " + (i5 + 1),
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].writeln(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        hasFocus() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'hasFocus' called on an object that is not a valid instance of Document.");
          }
          return esValue[implSymbol].hasFocus();
        }
        clear() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'clear' called on an object that is not a valid instance of Document.");
          }
          return esValue[implSymbol].clear();
        }
        captureEvents() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'captureEvents' called on an object that is not a valid instance of Document."
            );
          }
          return esValue[implSymbol].captureEvents();
        }
        releaseEvents() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'releaseEvents' called on an object that is not a valid instance of Document."
            );
          }
          return esValue[implSymbol].releaseEvents();
        }
        getSelection() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getSelection' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getSelection());
        }
        getElementById(elementId) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getElementById' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getElementById' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getElementById' on 'Document': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getElementById(...args));
        }
        prepend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'prepend' called on an object that is not a valid instance of Document.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'prepend' on 'Document': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].prepend(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        append() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'append' called on an object that is not a valid instance of Document.");
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'append' on 'Document': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].append(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        replaceChildren() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'replaceChildren' called on an object that is not a valid instance of Document."
            );
          }
          const args = [];
          for (let i5 = 0; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            if (Node.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'replaceChildren' on 'Document': parameter " + (i5 + 1),
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].replaceChildren(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        querySelector(selectors) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'querySelector' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'querySelector' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'querySelector' on 'Document': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].querySelector(...args));
        }
        querySelectorAll(selectors) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'querySelectorAll' called on an object that is not a valid instance of Document."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'querySelectorAll' on 'Document': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'querySelectorAll' on 'Document': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].querySelectorAll(...args));
        }
        get implementation() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get implementation' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.getSameObject(this, "implementation", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["implementation"]);
          });
        }
        get URL() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get URL' called on an object that is not a valid instance of Document.");
          }
          return esValue[implSymbol]["URL"];
        }
        get documentURI() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get documentURI' called on an object that is not a valid instance of Document."
            );
          }
          return esValue[implSymbol]["documentURI"];
        }
        get compatMode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get compatMode' called on an object that is not a valid instance of Document."
            );
          }
          return esValue[implSymbol]["compatMode"];
        }
        get characterSet() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get characterSet' called on an object that is not a valid instance of Document."
            );
          }
          return esValue[implSymbol]["characterSet"];
        }
        get charset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get charset' called on an object that is not a valid instance of Document.");
          }
          return esValue[implSymbol]["charset"];
        }
        get inputEncoding() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get inputEncoding' called on an object that is not a valid instance of Document."
            );
          }
          return esValue[implSymbol]["inputEncoding"];
        }
        get contentType() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get contentType' called on an object that is not a valid instance of Document."
            );
          }
          return esValue[implSymbol]["contentType"];
        }
        get doctype() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get doctype' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["doctype"]);
        }
        get documentElement() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get documentElement' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["documentElement"]);
        }
        get referrer() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get referrer' called on an object that is not a valid instance of Document."
            );
          }
          return esValue[implSymbol]["referrer"];
        }
        get cookie() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get cookie' called on an object that is not a valid instance of Document.");
          }
          return esValue[implSymbol]["cookie"];
        }
        set cookie(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set cookie' called on an object that is not a valid instance of Document.");
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'cookie' property on 'Document': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["cookie"] = V;
        }
        get lastModified() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get lastModified' called on an object that is not a valid instance of Document."
            );
          }
          return esValue[implSymbol]["lastModified"];
        }
        get readyState() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get readyState' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["readyState"]);
        }
        get title() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get title' called on an object that is not a valid instance of Document.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["title"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set title(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set title' called on an object that is not a valid instance of Document.");
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'title' property on 'Document': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["title"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get dir() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get dir' called on an object that is not a valid instance of Document.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["dir"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set dir(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set dir' called on an object that is not a valid instance of Document.");
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'dir' property on 'Document': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["dir"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get body() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get body' called on an object that is not a valid instance of Document.");
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["body"]);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set body(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set body' called on an object that is not a valid instance of Document.");
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = HTMLElement2.convert(globalObject, V, {
              context: "Failed to set the 'body' property on 'Document': The provided value"
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["body"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get head() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get head' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["head"]);
        }
        get images() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get images' called on an object that is not a valid instance of Document.");
          }
          return utils2.getSameObject(this, "images", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["images"]);
          });
        }
        get embeds() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get embeds' called on an object that is not a valid instance of Document.");
          }
          return utils2.getSameObject(this, "embeds", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["embeds"]);
          });
        }
        get plugins() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get plugins' called on an object that is not a valid instance of Document.");
          }
          return utils2.getSameObject(this, "plugins", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["plugins"]);
          });
        }
        get links() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get links' called on an object that is not a valid instance of Document.");
          }
          return utils2.getSameObject(this, "links", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["links"]);
          });
        }
        get forms() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get forms' called on an object that is not a valid instance of Document.");
          }
          return utils2.getSameObject(this, "forms", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["forms"]);
          });
        }
        get scripts() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get scripts' called on an object that is not a valid instance of Document.");
          }
          return utils2.getSameObject(this, "scripts", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["scripts"]);
          });
        }
        get currentScript() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get currentScript' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["currentScript"]);
        }
        get defaultView() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get defaultView' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["defaultView"]);
        }
        get onreadystatechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onreadystatechange"]);
        }
        set onreadystatechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onreadystatechange' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onreadystatechange"] = V;
        }
        get anchors() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get anchors' called on an object that is not a valid instance of Document.");
          }
          return utils2.getSameObject(this, "anchors", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["anchors"]);
          });
        }
        get applets() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get applets' called on an object that is not a valid instance of Document.");
          }
          return utils2.getSameObject(this, "applets", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["applets"]);
          });
        }
        get styleSheets() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get styleSheets' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.getSameObject(this, "styleSheets", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["styleSheets"]);
          });
        }
        get hidden() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get hidden' called on an object that is not a valid instance of Document.");
          }
          return esValue[implSymbol]["hidden"];
        }
        get visibilityState() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get visibilityState' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["visibilityState"]);
        }
        get onvisibilitychange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onvisibilitychange' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onvisibilitychange"]);
        }
        set onvisibilitychange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onvisibilitychange' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onvisibilitychange' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onvisibilitychange"] = V;
        }
        get onabort() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onabort' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onabort"]);
        }
        set onabort(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onabort' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onabort' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onabort"] = V;
        }
        get onauxclick() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onauxclick' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onauxclick"]);
        }
        set onauxclick(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onauxclick' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onauxclick' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onauxclick"] = V;
        }
        get onbeforeinput() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforeinput' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforeinput"]);
        }
        set onbeforeinput(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforeinput' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforeinput' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onbeforeinput"] = V;
        }
        get onbeforematch() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforematch' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforematch"]);
        }
        set onbeforematch(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforematch' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforematch' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onbeforematch"] = V;
        }
        get onbeforetoggle() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforetoggle' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforetoggle"]);
        }
        set onbeforetoggle(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforetoggle' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforetoggle' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onbeforetoggle"] = V;
        }
        get onblur() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onblur' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onblur"]);
        }
        set onblur(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onblur' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onblur' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onblur"] = V;
        }
        get oncancel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncancel' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncancel"]);
        }
        set oncancel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncancel' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncancel' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["oncancel"] = V;
        }
        get oncanplay() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncanplay' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncanplay"]);
        }
        set oncanplay(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncanplay' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncanplay' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["oncanplay"] = V;
        }
        get oncanplaythrough() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncanplaythrough' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncanplaythrough"]);
        }
        set oncanplaythrough(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncanplaythrough' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncanplaythrough' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["oncanplaythrough"] = V;
        }
        get onchange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onchange' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onchange"]);
        }
        set onchange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onchange' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onchange' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onchange"] = V;
        }
        get onclick() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onclick' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onclick"]);
        }
        set onclick(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onclick' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onclick' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onclick"] = V;
        }
        get onclose() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onclose' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onclose"]);
        }
        set onclose(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onclose' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onclose' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onclose"] = V;
        }
        get oncontextlost() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncontextlost' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncontextlost"]);
        }
        set oncontextlost(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncontextlost' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncontextlost' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["oncontextlost"] = V;
        }
        get oncontextmenu() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncontextmenu' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncontextmenu"]);
        }
        set oncontextmenu(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncontextmenu' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncontextmenu' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["oncontextmenu"] = V;
        }
        get oncontextrestored() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncontextrestored' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncontextrestored"]);
        }
        set oncontextrestored(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncontextrestored' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncontextrestored' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["oncontextrestored"] = V;
        }
        get oncopy() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get oncopy' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncopy"]);
        }
        set oncopy(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set oncopy' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncopy' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["oncopy"] = V;
        }
        get oncuechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncuechange' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncuechange"]);
        }
        set oncuechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncuechange' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncuechange' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["oncuechange"] = V;
        }
        get oncut() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get oncut' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncut"]);
        }
        set oncut(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set oncut' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncut' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["oncut"] = V;
        }
        get ondblclick() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondblclick' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondblclick"]);
        }
        set ondblclick(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondblclick' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondblclick' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ondblclick"] = V;
        }
        get ondrag() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get ondrag' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondrag"]);
        }
        set ondrag(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set ondrag' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondrag' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ondrag"] = V;
        }
        get ondragend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragend' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragend"]);
        }
        set ondragend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragend' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragend' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ondragend"] = V;
        }
        get ondragenter() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragenter' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragenter"]);
        }
        set ondragenter(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragenter' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragenter' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ondragenter"] = V;
        }
        get ondragleave() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragleave' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragleave"]);
        }
        set ondragleave(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragleave' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragleave' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ondragleave"] = V;
        }
        get ondragover() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragover' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragover"]);
        }
        set ondragover(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragover' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragover' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ondragover"] = V;
        }
        get ondragstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragstart' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragstart"]);
        }
        set ondragstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragstart' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragstart' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ondragstart"] = V;
        }
        get ondrop() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get ondrop' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondrop"]);
        }
        set ondrop(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set ondrop' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondrop' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ondrop"] = V;
        }
        get ondurationchange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondurationchange' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondurationchange"]);
        }
        set ondurationchange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondurationchange' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondurationchange' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ondurationchange"] = V;
        }
        get onemptied() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onemptied' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onemptied"]);
        }
        set onemptied(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onemptied' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onemptied' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onemptied"] = V;
        }
        get onended() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onended' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onended"]);
        }
        set onended(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onended' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onended' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onended"] = V;
        }
        get onerror() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onerror' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onerror"]);
        }
        set onerror(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onerror' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = OnErrorEventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onerror' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onerror"] = V;
        }
        get onfocus() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onfocus' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onfocus"]);
        }
        set onfocus(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onfocus' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onfocus' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onfocus"] = V;
        }
        get onformdata() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onformdata' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onformdata"]);
        }
        set onformdata(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onformdata' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onformdata' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onformdata"] = V;
        }
        get oninput() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get oninput' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oninput"]);
        }
        set oninput(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set oninput' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oninput' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["oninput"] = V;
        }
        get oninvalid() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oninvalid' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oninvalid"]);
        }
        set oninvalid(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oninvalid' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oninvalid' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["oninvalid"] = V;
        }
        get onkeydown() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onkeydown' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onkeydown"]);
        }
        set onkeydown(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onkeydown' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onkeydown' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onkeydown"] = V;
        }
        get onkeypress() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onkeypress' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onkeypress"]);
        }
        set onkeypress(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onkeypress' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onkeypress' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onkeypress"] = V;
        }
        get onkeyup() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onkeyup' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onkeyup"]);
        }
        set onkeyup(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onkeyup' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onkeyup' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onkeyup"] = V;
        }
        get onload() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onload' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onload"]);
        }
        set onload(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onload' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onload' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onload"] = V;
        }
        get onloadeddata() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onloadeddata' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onloadeddata"]);
        }
        set onloadeddata(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onloadeddata' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onloadeddata' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onloadeddata"] = V;
        }
        get onloadedmetadata() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onloadedmetadata' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onloadedmetadata"]);
        }
        set onloadedmetadata(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onloadedmetadata' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onloadedmetadata' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onloadedmetadata"] = V;
        }
        get onloadstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onloadstart' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onloadstart"]);
        }
        set onloadstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onloadstart' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onloadstart' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onloadstart"] = V;
        }
        get onmousedown() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmousedown' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmousedown"]);
        }
        set onmousedown(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmousedown' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmousedown' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onmousedown"] = V;
        }
        get onmouseenter() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseenter"]);
        }
        set onmouseenter(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseenter' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onmouseenter"] = V;
        }
        get onmouseleave() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseleave"]);
        }
        set onmouseleave(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseleave' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onmouseleave"] = V;
        }
        get onmousemove() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmousemove' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmousemove"]);
        }
        set onmousemove(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmousemove' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmousemove' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onmousemove"] = V;
        }
        get onmouseout() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmouseout' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseout"]);
        }
        set onmouseout(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmouseout' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseout' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onmouseout"] = V;
        }
        get onmouseover() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmouseover' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseover"]);
        }
        set onmouseover(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmouseover' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseover' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onmouseover"] = V;
        }
        get onmouseup() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmouseup' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseup"]);
        }
        set onmouseup(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmouseup' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseup' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onmouseup"] = V;
        }
        get onpaste() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onpaste' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpaste"]);
        }
        set onpaste(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onpaste' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpaste' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onpaste"] = V;
        }
        get onpause() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onpause' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpause"]);
        }
        set onpause(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onpause' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpause' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onpause"] = V;
        }
        get onplay() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onplay' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onplay"]);
        }
        set onplay(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onplay' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onplay' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onplay"] = V;
        }
        get onplaying() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onplaying' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onplaying"]);
        }
        set onplaying(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onplaying' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onplaying' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onplaying"] = V;
        }
        get onprogress() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onprogress' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onprogress"]);
        }
        set onprogress(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onprogress' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onprogress' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onprogress"] = V;
        }
        get onratechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onratechange' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onratechange"]);
        }
        set onratechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onratechange' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onratechange' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onratechange"] = V;
        }
        get onreset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onreset' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onreset"]);
        }
        set onreset(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onreset' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onreset' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onreset"] = V;
        }
        get onresize() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onresize' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onresize"]);
        }
        set onresize(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onresize' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onresize' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onresize"] = V;
        }
        get onscroll() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onscroll' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onscroll"]);
        }
        set onscroll(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onscroll' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onscroll' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onscroll"] = V;
        }
        get onscrollend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onscrollend' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onscrollend"]);
        }
        set onscrollend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onscrollend' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onscrollend' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onscrollend"] = V;
        }
        get onsecuritypolicyviolation() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onsecuritypolicyviolation' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onsecuritypolicyviolation"]);
        }
        set onsecuritypolicyviolation(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onsecuritypolicyviolation' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onsecuritypolicyviolation' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onsecuritypolicyviolation"] = V;
        }
        get onseeked() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onseeked' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onseeked"]);
        }
        set onseeked(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onseeked' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onseeked' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onseeked"] = V;
        }
        get onseeking() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onseeking' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onseeking"]);
        }
        set onseeking(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onseeking' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onseeking' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onseeking"] = V;
        }
        get onselect() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onselect' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onselect"]);
        }
        set onselect(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onselect' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onselect' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onselect"] = V;
        }
        get onslotchange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onslotchange' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onslotchange"]);
        }
        set onslotchange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onslotchange' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onslotchange' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onslotchange"] = V;
        }
        get onstalled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onstalled' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onstalled"]);
        }
        set onstalled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onstalled' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onstalled' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onstalled"] = V;
        }
        get onsubmit() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onsubmit' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onsubmit"]);
        }
        set onsubmit(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onsubmit' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onsubmit' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onsubmit"] = V;
        }
        get onsuspend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onsuspend' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onsuspend"]);
        }
        set onsuspend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onsuspend' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onsuspend' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onsuspend"] = V;
        }
        get ontimeupdate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontimeupdate' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontimeupdate"]);
        }
        set ontimeupdate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontimeupdate' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontimeupdate' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ontimeupdate"] = V;
        }
        get ontoggle() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontoggle' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontoggle"]);
        }
        set ontoggle(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontoggle' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontoggle' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ontoggle"] = V;
        }
        get onvolumechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onvolumechange' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onvolumechange"]);
        }
        set onvolumechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onvolumechange' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onvolumechange' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onvolumechange"] = V;
        }
        get onwaiting() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwaiting' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwaiting"]);
        }
        set onwaiting(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwaiting' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwaiting' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onwaiting"] = V;
        }
        get onwebkitanimationend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwebkitanimationend' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationend"]);
        }
        set onwebkitanimationend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwebkitanimationend' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwebkitanimationend' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onwebkitanimationend"] = V;
        }
        get onwebkitanimationiteration() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwebkitanimationiteration' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationiteration"]);
        }
        set onwebkitanimationiteration(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwebkitanimationiteration' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwebkitanimationiteration' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onwebkitanimationiteration"] = V;
        }
        get onwebkitanimationstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwebkitanimationstart' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationstart"]);
        }
        set onwebkitanimationstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwebkitanimationstart' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwebkitanimationstart' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onwebkitanimationstart"] = V;
        }
        get onwebkittransitionend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwebkittransitionend' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwebkittransitionend"]);
        }
        set onwebkittransitionend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwebkittransitionend' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwebkittransitionend' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onwebkittransitionend"] = V;
        }
        get onwheel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onwheel' called on an object that is not a valid instance of Document.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwheel"]);
        }
        set onwheel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onwheel' called on an object that is not a valid instance of Document.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwheel' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["onwheel"] = V;
        }
        get ontouchstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontouchstart' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontouchstart"]);
        }
        set ontouchstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontouchstart' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontouchstart' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ontouchstart"] = V;
        }
        get ontouchend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontouchend' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontouchend"]);
        }
        set ontouchend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontouchend' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontouchend' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ontouchend"] = V;
        }
        get ontouchmove() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontouchmove' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontouchmove"]);
        }
        set ontouchmove(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontouchmove' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontouchmove' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ontouchmove"] = V;
        }
        get ontouchcancel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontouchcancel' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontouchcancel"]);
        }
        set ontouchcancel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontouchcancel' called on an object that is not a valid instance of Document."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontouchcancel' property on 'Document': The provided value"
            });
          }
          esValue[implSymbol]["ontouchcancel"] = V;
        }
        get activeElement() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get activeElement' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["activeElement"]);
        }
        get children() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get children' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.getSameObject(this, "children", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["children"]);
          });
        }
        get firstElementChild() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get firstElementChild' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["firstElementChild"]);
        }
        get lastElementChild() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get lastElementChild' called on an object that is not a valid instance of Document."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["lastElementChild"]);
        }
        get childElementCount() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get childElementCount' called on an object that is not a valid instance of Document."
            );
          }
          return esValue[implSymbol]["childElementCount"];
        }
      }
      Object.defineProperties(Document3.prototype, {
        getElementsByTagName: { enumerable: true },
        getElementsByTagNameNS: { enumerable: true },
        getElementsByClassName: { enumerable: true },
        createElement: { enumerable: true },
        createElementNS: { enumerable: true },
        createDocumentFragment: { enumerable: true },
        createTextNode: { enumerable: true },
        createCDATASection: { enumerable: true },
        createComment: { enumerable: true },
        createProcessingInstruction: { enumerable: true },
        importNode: { enumerable: true },
        adoptNode: { enumerable: true },
        createAttribute: { enumerable: true },
        createAttributeNS: { enumerable: true },
        createEvent: { enumerable: true },
        createRange: { enumerable: true },
        createNodeIterator: { enumerable: true },
        createTreeWalker: { enumerable: true },
        getElementsByName: { enumerable: true },
        open: { enumerable: true },
        close: { enumerable: true },
        write: { enumerable: true },
        writeln: { enumerable: true },
        hasFocus: { enumerable: true },
        clear: { enumerable: true },
        captureEvents: { enumerable: true },
        releaseEvents: { enumerable: true },
        getSelection: { enumerable: true },
        getElementById: { enumerable: true },
        prepend: { enumerable: true },
        append: { enumerable: true },
        replaceChildren: { enumerable: true },
        querySelector: { enumerable: true },
        querySelectorAll: { enumerable: true },
        implementation: { enumerable: true },
        URL: { enumerable: true },
        documentURI: { enumerable: true },
        compatMode: { enumerable: true },
        characterSet: { enumerable: true },
        charset: { enumerable: true },
        inputEncoding: { enumerable: true },
        contentType: { enumerable: true },
        doctype: { enumerable: true },
        documentElement: { enumerable: true },
        referrer: { enumerable: true },
        cookie: { enumerable: true },
        lastModified: { enumerable: true },
        readyState: { enumerable: true },
        title: { enumerable: true },
        dir: { enumerable: true },
        body: { enumerable: true },
        head: { enumerable: true },
        images: { enumerable: true },
        embeds: { enumerable: true },
        plugins: { enumerable: true },
        links: { enumerable: true },
        forms: { enumerable: true },
        scripts: { enumerable: true },
        currentScript: { enumerable: true },
        defaultView: { enumerable: true },
        onreadystatechange: { enumerable: true },
        anchors: { enumerable: true },
        applets: { enumerable: true },
        styleSheets: { enumerable: true },
        hidden: { enumerable: true },
        visibilityState: { enumerable: true },
        onvisibilitychange: { enumerable: true },
        onabort: { enumerable: true },
        onauxclick: { enumerable: true },
        onbeforeinput: { enumerable: true },
        onbeforematch: { enumerable: true },
        onbeforetoggle: { enumerable: true },
        onblur: { enumerable: true },
        oncancel: { enumerable: true },
        oncanplay: { enumerable: true },
        oncanplaythrough: { enumerable: true },
        onchange: { enumerable: true },
        onclick: { enumerable: true },
        onclose: { enumerable: true },
        oncontextlost: { enumerable: true },
        oncontextmenu: { enumerable: true },
        oncontextrestored: { enumerable: true },
        oncopy: { enumerable: true },
        oncuechange: { enumerable: true },
        oncut: { enumerable: true },
        ondblclick: { enumerable: true },
        ondrag: { enumerable: true },
        ondragend: { enumerable: true },
        ondragenter: { enumerable: true },
        ondragleave: { enumerable: true },
        ondragover: { enumerable: true },
        ondragstart: { enumerable: true },
        ondrop: { enumerable: true },
        ondurationchange: { enumerable: true },
        onemptied: { enumerable: true },
        onended: { enumerable: true },
        onerror: { enumerable: true },
        onfocus: { enumerable: true },
        onformdata: { enumerable: true },
        oninput: { enumerable: true },
        oninvalid: { enumerable: true },
        onkeydown: { enumerable: true },
        onkeypress: { enumerable: true },
        onkeyup: { enumerable: true },
        onload: { enumerable: true },
        onloadeddata: { enumerable: true },
        onloadedmetadata: { enumerable: true },
        onloadstart: { enumerable: true },
        onmousedown: { enumerable: true },
        onmouseenter: { enumerable: true },
        onmouseleave: { enumerable: true },
        onmousemove: { enumerable: true },
        onmouseout: { enumerable: true },
        onmouseover: { enumerable: true },
        onmouseup: { enumerable: true },
        onpaste: { enumerable: true },
        onpause: { enumerable: true },
        onplay: { enumerable: true },
        onplaying: { enumerable: true },
        onprogress: { enumerable: true },
        onratechange: { enumerable: true },
        onreset: { enumerable: true },
        onresize: { enumerable: true },
        onscroll: { enumerable: true },
        onscrollend: { enumerable: true },
        onsecuritypolicyviolation: { enumerable: true },
        onseeked: { enumerable: true },
        onseeking: { enumerable: true },
        onselect: { enumerable: true },
        onslotchange: { enumerable: true },
        onstalled: { enumerable: true },
        onsubmit: { enumerable: true },
        onsuspend: { enumerable: true },
        ontimeupdate: { enumerable: true },
        ontoggle: { enumerable: true },
        onvolumechange: { enumerable: true },
        onwaiting: { enumerable: true },
        onwebkitanimationend: { enumerable: true },
        onwebkitanimationiteration: { enumerable: true },
        onwebkitanimationstart: { enumerable: true },
        onwebkittransitionend: { enumerable: true },
        onwheel: { enumerable: true },
        ontouchstart: { enumerable: true },
        ontouchend: { enumerable: true },
        ontouchmove: { enumerable: true },
        ontouchcancel: { enumerable: true },
        activeElement: { enumerable: true },
        children: { enumerable: true },
        firstElementChild: { enumerable: true },
        lastElementChild: { enumerable: true },
        childElementCount: { enumerable: true },
        [Symbol.toStringTag]: { value: "Document", configurable: true },
        [Symbol.unscopables]: {
          value: { prepend: true, append: true, replaceChildren: true, __proto__: null },
          configurable: true
        }
      });
      ctorRegistry[interfaceName] = Document3;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Document3
      });
    };
    var Impl = require_Document_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/XMLDocument-impl.js
var require_XMLDocument_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/XMLDocument-impl.js"(exports) {
    "use strict";
    var DocumentImpl = require_Document_impl().implementation;
    exports.implementation = class XMLDocumentImpl extends DocumentImpl {
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/XMLDocument.js
var require_XMLDocument = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/XMLDocument.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Document3 = require_Document();
    var interfaceName = "XMLDocument";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'XMLDocument'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["XMLDocument"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Document3._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class XMLDocument extends globalObject.Document {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
      }
      Object.defineProperties(XMLDocument.prototype, {
        [Symbol.toStringTag]: { value: "XMLDocument", configurable: true }
      });
      ctorRegistry[interfaceName] = XMLDocument;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: XMLDocument
      });
    };
    var Impl = require_XMLDocument_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/documents.js
var require_documents = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/documents.js"(exports) {
    "use strict";
    var XMLDocument = require_XMLDocument();
    var Document3 = require_Document();
    var { wrapperForImpl } = require_utils16();
    exports.createImpl = (globalObject, options, { alwaysUseDocumentClass = false } = {}) => {
      if (options.parsingMode === "xml" && !alwaysUseDocumentClass) {
        return XMLDocument.createImpl(globalObject, [], { options });
      }
      return Document3.createImpl(globalObject, [], { options });
    };
    exports.createWrapper = (...args) => {
      return wrapperForImpl(exports.createImpl(...args));
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/DOMImplementation-impl.js
var require_DOMImplementation_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/DOMImplementation-impl.js"(exports, module) {
    "use strict";
    var validateNames = require_validate_names();
    var { HTML_NS, SVG_NS } = require_namespaces();
    var { createElement: createElement11, internalCreateElementNSSteps } = require_create_element();
    var DocumentType = require_DocumentType();
    var documents = require_documents();
    var DOMImplementationImpl = class {
      constructor(globalObject, args, privateData) {
        this._globalObject = globalObject;
        this._ownerDocument = privateData.ownerDocument;
      }
      hasFeature() {
        return true;
      }
      createDocumentType(qualifiedName, publicId, systemId) {
        validateNames.qname(this._globalObject, qualifiedName);
        return DocumentType.createImpl(this._globalObject, [], {
          ownerDocument: this._ownerDocument,
          name: qualifiedName,
          publicId,
          systemId
        });
      }
      // https://dom.spec.whatwg.org/#dom-domimplementation-createdocument
      createDocument(namespace, qualifiedName, doctype) {
        let contentType = "application/xml";
        if (namespace === HTML_NS) {
          contentType = "application/xhtml+xml";
        } else if (namespace === SVG_NS) {
          contentType = "image/svg+xml";
        }
        const document2 = documents.createImpl(this._globalObject, {
          contentType,
          parsingMode: "xml",
          encoding: "UTF-8"
        });
        let element = null;
        if (qualifiedName !== "") {
          element = internalCreateElementNSSteps(document2, namespace, qualifiedName, {});
        }
        if (doctype !== null) {
          document2.appendChild(doctype);
        }
        if (element !== null) {
          document2.appendChild(element);
        }
        document2._origin = this._ownerDocument._origin;
        return document2;
      }
      // https://dom.spec.whatwg.org/#dom-domimplementation-createhtmldocument
      createHTMLDocument(title) {
        const document2 = documents.createImpl(this._globalObject, {
          parsingMode: "html",
          encoding: "UTF-8"
        });
        const doctype = DocumentType.createImpl(this._globalObject, [], {
          ownerDocument: document2,
          name: "html",
          publicId: "",
          systemId: ""
        });
        document2.appendChild(doctype);
        const htmlElement = createElement11(document2, "html", HTML_NS);
        document2.appendChild(htmlElement);
        const headElement = createElement11(document2, "head", HTML_NS);
        htmlElement.appendChild(headElement);
        if (title !== void 0) {
          const titleElement = createElement11(document2, "title", HTML_NS);
          headElement.appendChild(titleElement);
          titleElement.appendChild(document2.createTextNode(title));
        }
        const bodyElement = createElement11(document2, "body", HTML_NS);
        htmlElement.appendChild(bodyElement);
        return document2;
      }
    };
    module.exports = {
      implementation: DOMImplementationImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js
var require_DOMImplementation = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var DocumentType = require_DocumentType();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "DOMImplementation";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'DOMImplementation'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["DOMImplementation"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class DOMImplementation {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        createDocumentType(qualifiedName, publicId, systemId) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createDocumentType' called on an object that is not a valid instance of DOMImplementation."
            );
          }
          if (arguments.length < 3) {
            throw new globalObject.TypeError(
              `Failed to execute 'createDocumentType' on 'DOMImplementation': 3 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createDocumentType' on 'DOMImplementation': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createDocumentType' on 'DOMImplementation': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createDocumentType' on 'DOMImplementation': parameter 3",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createDocumentType(...args));
        }
        createDocument(namespace, qualifiedName) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createDocument' called on an object that is not a valid instance of DOMImplementation."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'createDocument' on 'DOMImplementation': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'createDocument' on 'DOMImplementation': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'createDocument' on 'DOMImplementation': parameter 2",
              globals: globalObject,
              treatNullAsEmptyString: true
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = DocumentType.convert(globalObject, curArg, {
                  context: "Failed to execute 'createDocument' on 'DOMImplementation': parameter 3"
                });
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createDocument(...args));
        }
        createHTMLDocument() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createHTMLDocument' called on an object that is not a valid instance of DOMImplementation."
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'createHTMLDocument' on 'DOMImplementation': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createHTMLDocument(...args));
        }
        hasFeature() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'hasFeature' called on an object that is not a valid instance of DOMImplementation."
            );
          }
          return esValue[implSymbol].hasFeature();
        }
      }
      Object.defineProperties(DOMImplementation.prototype, {
        createDocumentType: { enumerable: true },
        createDocument: { enumerable: true },
        createHTMLDocument: { enumerable: true },
        hasFeature: { enumerable: true },
        [Symbol.toStringTag]: { value: "DOMImplementation", configurable: true }
      });
      ctorRegistry[interfaceName] = DOMImplementation;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: DOMImplementation
      });
    };
    var Impl = require_DOMImplementation_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/RadioNodeList-impl.js
var require_RadioNodeList_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/RadioNodeList-impl.js"(exports, module) {
    "use strict";
    var NodeListImpl = require_NodeList_impl().implementation;
    var RadioNodeListImpl = class extends NodeListImpl {
      // https://html.spec.whatwg.org/multipage/common-dom-interfaces.html#dom-radionodelist-value
      // Note in general the spec says to manipulate/consult checkedness, but we use `checked` instead
      // because the spec isn't very good here: https://github.com/whatwg/html/issues/7612.
      get value() {
        this._update();
        const element = this._list.find((e4) => e4._localName === "input" && e4.type === "radio" && e4.checked);
        if (element === void 0) {
          return "";
        }
        if (!element.hasAttributeNS(null, "value")) {
          return "on";
        }
        return element.getAttributeNS(null, "value");
      }
      set value(value2) {
        let element;
        if (value2 === "on") {
          element = this._list.find(
            (e4) => e4._localName === "input" && e4.type === "radio" && (!e4.hasAttributeNS(null, "value") || e4.getAttributeNS(null, "value") === value2)
          );
        } else {
          element = this._list.find(
            (e4) => e4._localName === "input" && e4.type === "radio" && (e4.hasAttributeNS(null, "value") && e4.getAttributeNS(null, "value") === value2)
          );
        }
        if (element) {
          element.checked = true;
        }
      }
    };
    module.exports = {
      implementation: RadioNodeListImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/RadioNodeList.js
var require_RadioNodeList = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/RadioNodeList.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var NodeList = require_NodeList();
    var interfaceName = "RadioNodeList";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'RadioNodeList'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["RadioNodeList"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      NodeList._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class RadioNodeList extends globalObject.NodeList {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get value' called on an object that is not a valid instance of RadioNodeList."
            );
          }
          return esValue[implSymbol]["value"];
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set value' called on an object that is not a valid instance of RadioNodeList."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'value' property on 'RadioNodeList': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["value"] = V;
        }
      }
      Object.defineProperties(RadioNodeList.prototype, {
        value: { enumerable: true },
        [Symbol.toStringTag]: { value: "RadioNodeList", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = RadioNodeList;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: RadioNodeList
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            return {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            ownDesc = {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          return false;
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !(target[implSymbol].item(index2) !== null);
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_RadioNodeList_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionElement-impl.js
var require_HTMLOptionElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var NODE_TYPE = require_node_type();
    var { stripAndCollapseASCIIWhitespace } = require_strings2();
    var { domSymbolTree } = require_internal_constants();
    var { HTML_NS, SVG_NS } = require_namespaces();
    var { closest } = require_traversal2();
    var { formOwner } = require_form_controls();
    var HTMLOptionElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._selectedness = false;
        this._dirtyness = false;
      }
      _removeOtherSelectedness() {
        const select = this._selectNode;
        if (select && !select.hasAttributeNS(null, "multiple")) {
          for (const option of select.options) {
            if (option !== this) {
              option._selectedness = false;
            }
          }
        }
      }
      _askForAReset() {
        const select = this._selectNode;
        if (select) {
          select._askedForAReset();
        }
      }
      _attrModified(name, value2, oldValue) {
        if (!this._dirtyness && name === "selected") {
          this._selectedness = this.hasAttributeNS(null, "selected");
          if (this._selectedness) {
            this._removeOtherSelectedness();
          }
          this._askForAReset();
        }
        super._attrModified(name, value2, oldValue);
      }
      get _selectNode() {
        let select = domSymbolTree.parent(this);
        if (!select) {
          return null;
        }
        if (select._localName !== "select") {
          select = domSymbolTree.parent(select);
          if (!select || select._localName !== "select") {
            return null;
          }
        }
        return select;
      }
      get form() {
        return formOwner(this);
      }
      get text() {
        return stripAndCollapseASCIIWhitespace(childTextContentExcludingDescendantsOfScript(this));
      }
      set text(value2) {
        this.textContent = value2;
      }
      // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-value
      _getValue() {
        if (this.hasAttributeNS(null, "value")) {
          return this.getAttributeNS(null, "value");
        }
        return this.text;
      }
      get value() {
        return this._getValue();
      }
      set value(value2) {
        this.setAttributeNS(null, "value", value2);
      }
      get index() {
        const select = closest(this, "select");
        if (select === null) {
          return 0;
        }
        return select.options.indexOf(this);
      }
      get selected() {
        return this._selectedness;
      }
      set selected(s4) {
        this._dirtyness = true;
        this._selectedness = Boolean(s4);
        if (this._selectedness) {
          this._removeOtherSelectedness();
        }
        this._askForAReset();
        this._modified();
      }
      get label() {
        if (this.hasAttributeNS(null, "label")) {
          return this.getAttributeNS(null, "label");
        }
        return this.text;
      }
      set label(value2) {
        this.setAttributeNS(null, "label", value2);
      }
    };
    function childTextContentExcludingDescendantsOfScript(root) {
      let text = "";
      for (const child of domSymbolTree.childrenIterator(root)) {
        if (child._localName === "script" && (child._namespaceURI === HTML_NS || child._namespaceURI === SVG_NS)) {
          continue;
        }
        if (child.nodeType === NODE_TYPE.TEXT_NODE || child.nodeType === NODE_TYPE.CDATA_SECTION_NODE) {
          text += child.nodeValue;
        } else {
          text += childTextContentExcludingDescendantsOfScript(child);
        }
      }
      return text;
    }
    module.exports = {
      implementation: HTMLOptionElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js
var require_HTMLOptionElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLOptionElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLOptionElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLOptionElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLOptionElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get disabled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get disabled' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set disabled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set disabled' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'disabled' property on 'HTMLOptionElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get form() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get form' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["form"]);
        }
        get label() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get label' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["label"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set label(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set label' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'label' property on 'HTMLOptionElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["label"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get defaultSelected() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get defaultSelected' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("selected") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set defaultSelected(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set defaultSelected' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'defaultSelected' property on 'HTMLOptionElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("selected", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("selected");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get selected() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get selected' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          return esValue[implSymbol]["selected"];
        }
        set selected(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set selected' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'selected' property on 'HTMLOptionElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["selected"] = V;
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get value' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["value"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set value' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'value' property on 'HTMLOptionElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["value"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get text() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get text' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["text"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set text(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set text' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'text' property on 'HTMLOptionElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["text"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get index() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get index' called on an object that is not a valid instance of HTMLOptionElement."
            );
          }
          return esValue[implSymbol]["index"];
        }
      }
      Object.defineProperties(HTMLOptionElement.prototype, {
        disabled: { enumerable: true },
        form: { enumerable: true },
        label: { enumerable: true },
        defaultSelected: { enumerable: true },
        selected: { enumerable: true },
        value: { enumerable: true },
        text: { enumerable: true },
        index: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLOptionElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLOptionElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLOptionElement
      });
    };
    var Impl = require_HTMLOptionElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptGroupElement-impl.js
var require_HTMLOptGroupElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptGroupElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLOptGroupElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLOptGroupElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js
var require_HTMLOptGroupElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLOptGroupElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLOptGroupElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLOptGroupElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLOptGroupElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get disabled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get disabled' called on an object that is not a valid instance of HTMLOptGroupElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set disabled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set disabled' called on an object that is not a valid instance of HTMLOptGroupElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'disabled' property on 'HTMLOptGroupElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get label() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get label' called on an object that is not a valid instance of HTMLOptGroupElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("label");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set label(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set label' called on an object that is not a valid instance of HTMLOptGroupElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'label' property on 'HTMLOptGroupElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("label", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLOptGroupElement.prototype, {
        disabled: { enumerable: true },
        label: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLOptGroupElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLOptGroupElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLOptGroupElement
      });
    };
    var Impl = require_HTMLOptGroupElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionsCollection-impl.js
var require_HTMLOptionsCollection_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionsCollection-impl.js"(exports) {
    "use strict";
    var idlUtils = require_utils16();
    var DOMException2 = require_DOMException();
    var { DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_CONTAINED_BY } = require_node_document_position();
    var Element2 = require_Element();
    var Node = require_Node();
    var HTMLCollectionImpl = require_HTMLCollection_impl().implementation;
    exports.implementation = class HTMLOptionsCollectionImpl extends HTMLCollectionImpl {
      // inherits supported property indices
      get length() {
        this._update();
        return this._list.length;
      }
      set length(value2) {
        this._update();
        if (value2 > this._list.length) {
          const doc = this._element._ownerDocument;
          for (let i5 = this._list.length; i5 < value2; i5++) {
            const el = doc.createElement("option");
            this._element.appendChild(el);
          }
        } else if (value2 < this._list.length) {
          for (let i5 = this._list.length - 1; i5 >= value2; i5--) {
            const el = this._list[i5];
            this._element.removeChild(el);
          }
        }
      }
      get [idlUtils.supportedPropertyNames]() {
        this._update();
        const result = /* @__PURE__ */ new Set();
        for (const element of this._list) {
          result.add(element.getAttributeNS(null, "id"));
          result.add(element.getAttributeNS(null, "name"));
        }
        return result;
      }
      [idlUtils.indexedSetNew](index2, value2) {
        if (value2 === null) {
          this.remove(index2);
          return;
        }
        this._update();
        const { length: length2 } = this._list;
        const n6 = index2 - length2;
        if (n6 > 0) {
          const doc = this._element._ownerDocument;
          const frag = doc.createDocumentFragment();
          for (let i5 = 0; i5 < n6; i5++) {
            const el = doc.createElement("option");
            frag.appendChild(el);
          }
          this._element._append(frag);
        }
        if (n6 >= 0) {
          this._element._append(value2);
        } else {
          this._element._replace(value2, this._list[index2]);
        }
      }
      [idlUtils.indexedSetExisting](index2, value2) {
        return this[idlUtils.indexedSetNew](index2, value2);
      }
      add(element, before) {
        if (this._element.compareDocumentPosition(element) & DOCUMENT_POSITION_CONTAINS) {
          throw DOMException2.create(this._globalObject, [
            "The operation would yield an incorrect node tree.",
            "HierarchyRequestError"
          ]);
        }
        if (Element2.isImpl(before) && !(this._element.compareDocumentPosition(before) & DOCUMENT_POSITION_CONTAINED_BY)) {
          throw DOMException2.create(this._globalObject, ["The object can not be found here.", "NotFoundError"]);
        }
        if (element === before) {
          return;
        }
        let reference = null;
        if (Node.isImpl(before)) {
          reference = before;
        } else if (typeof before === "number") {
          this._update();
          reference = this._list[before] || null;
        }
        const parent = reference !== null ? reference.parentNode : this._element;
        parent._preInsert(element, reference);
      }
      remove(index2) {
        this._update();
        if (this._list.length === 0) {
          return;
        }
        if (index2 < 0 || index2 >= this._list.length) {
          return;
        }
        const element = this._list[index2];
        element.parentNode._remove(element);
      }
      get selectedIndex() {
        return this._element.selectedIndex;
      }
      set selectedIndex(value2) {
        this._element.selectedIndex = value2;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js
var require_HTMLOptionsCollection = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLOptionElement = require_HTMLOptionElement();
    var HTMLOptGroupElement = require_HTMLOptGroupElement();
    var HTMLElement2 = require_HTMLElement();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLCollection = require_HTMLCollection();
    var interfaceName = "HTMLOptionsCollection";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLOptionsCollection'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLOptionsCollection"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLCollection._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLOptionsCollection extends globalObject.HTMLCollection {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        add(element) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'add' called on an object that is not a valid instance of HTMLOptionsCollection."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'add' on 'HTMLOptionsCollection': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (HTMLOptionElement.is(curArg) || HTMLOptGroupElement.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              throw new globalObject.TypeError(
                "Failed to execute 'add' on 'HTMLOptionsCollection': parameter 1 is not of any supported type."
              );
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                if (HTMLElement2.is(curArg)) {
                  curArg = utils2.implForWrapper(curArg);
                } else if (typeof curArg === "number") {
                  curArg = conversions["long"](curArg, {
                    context: "Failed to execute 'add' on 'HTMLOptionsCollection': parameter 2",
                    globals: globalObject
                  });
                } else {
                  curArg = conversions["long"](curArg, {
                    context: "Failed to execute 'add' on 'HTMLOptionsCollection': parameter 2",
                    globals: globalObject
                  });
                }
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].add(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        remove(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'remove' called on an object that is not a valid instance of HTMLOptionsCollection."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'remove' on 'HTMLOptionsCollection': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["long"](curArg, {
              context: "Failed to execute 'remove' on 'HTMLOptionsCollection': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].remove(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get length' called on an object that is not a valid instance of HTMLOptionsCollection."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["length"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set length(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set length' called on an object that is not a valid instance of HTMLOptionsCollection."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'length' property on 'HTMLOptionsCollection': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["length"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get selectedIndex() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get selectedIndex' called on an object that is not a valid instance of HTMLOptionsCollection."
            );
          }
          return esValue[implSymbol]["selectedIndex"];
        }
        set selectedIndex(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set selectedIndex' called on an object that is not a valid instance of HTMLOptionsCollection."
            );
          }
          V = conversions["long"](V, {
            context: "Failed to set the 'selectedIndex' property on 'HTMLOptionsCollection': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["selectedIndex"] = V;
        }
      }
      Object.defineProperties(HTMLOptionsCollection.prototype, {
        add: { enumerable: true },
        remove: { enumerable: true },
        length: { enumerable: true },
        selectedIndex: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLOptionsCollection", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = HTMLOptionsCollection;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLOptionsCollection
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of target[implSymbol][utils2.supportedPropertyNames]) {
          if (!(key in target)) {
            keys2.add(`${key}`);
          }
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            return {
              writable: true,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        const namedValue = target[implSymbol].namedItem(P);
        if (namedValue !== null && !(P in target) && !ignoreNamedProps) {
          return {
            writable: false,
            enumerable: true,
            configurable: true,
            value: utils2.tryWrapperForImpl(namedValue)
          };
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
          if (utils2.isArrayIndexPropName(P)) {
            const index2 = P >>> 0;
            let indexedValue = V;
            if (indexedValue === null || indexedValue === void 0) {
              indexedValue = null;
            } else {
              indexedValue = HTMLOptionElement.convert(globalObject, indexedValue, {
                context: "Failed to set the " + index2 + " property on 'HTMLOptionsCollection': The provided value"
              });
            }
            ceReactionsPreSteps_helpers_custom_elements(globalObject);
            try {
              const creating = !(target[implSymbol].item(index2) !== null);
              if (creating) {
                target[implSymbol][utils2.indexedSetNew](index2, indexedValue);
              } else {
                target[implSymbol][utils2.indexedSetExisting](index2, indexedValue);
              }
            } finally {
              ceReactionsPostSteps_helpers_custom_elements(globalObject);
            }
            return true;
          }
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            ownDesc = {
              writable: true,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          if (desc.get || desc.set) {
            return false;
          }
          const index2 = P >>> 0;
          let indexedValue = desc.value;
          if (indexedValue === null || indexedValue === void 0) {
            indexedValue = null;
          } else {
            indexedValue = HTMLOptionElement.convert(globalObject, indexedValue, {
              context: "Failed to set the " + index2 + " property on 'HTMLOptionsCollection': The provided value"
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const creating = !(target[implSymbol].item(index2) !== null);
            if (creating) {
              target[implSymbol][utils2.indexedSetNew](index2, indexedValue);
            } else {
              target[implSymbol][utils2.indexedSetExisting](index2, indexedValue);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
          return true;
        }
        if (!utils2.hasOwn(target, P)) {
          const creating = !(target[implSymbol].namedItem(P) !== null);
          if (!creating) {
            return false;
          }
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !(target[implSymbol].item(index2) !== null);
        }
        if (target[implSymbol].namedItem(P) !== null && !(P in target)) {
          return false;
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_HTMLOptionsCollection_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadElement-impl.js
var require_HTMLHeadElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLHeadElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLHeadElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js
var require_HTMLHeadElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLHeadElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLHeadElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLHeadElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLHeadElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
      }
      Object.defineProperties(HTMLHeadElement.prototype, {
        [Symbol.toStringTag]: { value: "HTMLHeadElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLHeadElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLHeadElement
      });
    };
    var Impl = require_HTMLHeadElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTitleElement-impl.js
var require_HTMLTitleElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTitleElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var { childTextContent } = require_text();
    var HTMLTitleElementImpl = class extends HTMLElementImpl {
      get text() {
        return childTextContent(this);
      }
      set text(value2) {
        this.textContent = value2;
      }
    };
    module.exports = {
      implementation: HTMLTitleElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js
var require_HTMLTitleElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLTitleElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLTitleElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLTitleElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLTitleElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get text() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get text' called on an object that is not a valid instance of HTMLTitleElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["text"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set text(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set text' called on an object that is not a valid instance of HTMLTitleElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'text' property on 'HTMLTitleElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["text"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLTitleElement.prototype, {
        text: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLTitleElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLTitleElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLTitleElement
      });
    };
    var Impl = require_HTMLTitleElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBaseElement-impl.js
var require_HTMLBaseElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBaseElement-impl.js"(exports, module) {
    "use strict";
    var whatwgURL = require_whatwg_url();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLBaseElementImpl = class extends HTMLElementImpl {
      get href() {
        const document2 = this._ownerDocument;
        const url3 = this.hasAttributeNS(null, "href") ? this.getAttributeNS(null, "href") : "";
        const parsed = whatwgURL.parseURL(url3, { baseURL: document2._fallbackBaseURL() });
        if (parsed === null) {
          return url3;
        }
        return whatwgURL.serializeURL(parsed);
      }
      set href(value2) {
        this.setAttributeNS(null, "href", value2);
      }
      _attrModified(name, value2, oldValue) {
        super._attrModified(name, value2, oldValue);
        if (name === "href") {
          this._ownerDocument._clearBaseURLCache();
        }
      }
      _attach() {
        super._attach();
        this._ownerDocument._clearBaseURLCache();
      }
      _detach() {
        super._detach();
        this._ownerDocument._clearBaseURLCache();
      }
    };
    module.exports = {
      implementation: HTMLBaseElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js
var require_HTMLBaseElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLBaseElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLBaseElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLBaseElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLBaseElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get href() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get href' called on an object that is not a valid instance of HTMLBaseElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["href"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set href(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set href' called on an object that is not a valid instance of HTMLBaseElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'href' property on 'HTMLBaseElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["href"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get target() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get target' called on an object that is not a valid instance of HTMLBaseElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("target");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set target(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set target' called on an object that is not a valid instance of HTMLBaseElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'target' property on 'HTMLBaseElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("target", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLBaseElement.prototype, {
        href: { enumerable: true },
        target: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLBaseElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLBaseElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLBaseElement
      });
    };
    var Impl = require_HTMLBaseElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/stylesheets.js
var require_stylesheets = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/stylesheets.js"(exports) {
    "use strict";
    var cssom = require_lib21();
    var whatwgEncoding = require_whatwg_encoding();
    var whatwgURL = require_whatwg_url();
    var { invalidateStyleCache } = require_style_rules();
    exports.fetchStylesheet = (elementImpl, urlString) => {
      const parsedURL = whatwgURL.parseURL(urlString);
      return fetchStylesheetInternal(elementImpl, urlString, parsedURL);
    };
    exports.removeStylesheet = (sheet, elementImpl) => {
      const { styleSheets } = elementImpl._ownerDocument;
      styleSheets._remove(sheet);
      elementImpl.sheet = null;
      invalidateStyleCache(elementImpl);
    };
    exports.createStylesheet = (sheetText, elementImpl, baseURL) => {
      let sheet;
      try {
        sheet = cssom.parse(sheetText);
      } catch {
        if (elementImpl._ownerDocument._defaultView) {
          const error = new Error("Could not parse CSS stylesheet");
          error.detail = sheetText;
          error.type = "css parsing";
          elementImpl._ownerDocument._defaultView._virtualConsole.emit("jsdomError", error);
        }
        return;
      }
      scanForImportRules(elementImpl, sheet.cssRules, baseURL);
      addStylesheet(sheet, elementImpl);
    };
    function addStylesheet(sheet, elementImpl) {
      elementImpl._ownerDocument.styleSheets._add(sheet);
      elementImpl.sheet = sheet;
      invalidateStyleCache(elementImpl);
    }
    function fetchStylesheetInternal(elementImpl, urlString, parsedURL) {
      const document2 = elementImpl._ownerDocument;
      let defaultEncoding = document2._encoding;
      const resourceLoader = document2._resourceLoader;
      if (elementImpl.localName === "link" && elementImpl.hasAttributeNS(null, "charset")) {
        defaultEncoding = whatwgEncoding.labelToName(elementImpl.getAttributeNS(null, "charset"));
      }
      function onStylesheetLoad(data2) {
        if (!elementImpl._attached) {
          return;
        }
        const css = whatwgEncoding.decode(data2, defaultEncoding);
        if (elementImpl.sheet) {
          exports.removeStylesheet(elementImpl.sheet, elementImpl);
        }
        exports.createStylesheet(css, elementImpl, parsedURL);
      }
      resourceLoader.fetch(urlString, {
        element: elementImpl,
        onLoad: onStylesheetLoad
      });
    }
    function scanForImportRules(elementImpl, cssRules, baseURL) {
      if (!cssRules) {
        return;
      }
      for (let i5 = 0; i5 < cssRules.length; ++i5) {
        if (cssRules[i5].cssRules) {
          scanForImportRules(elementImpl, cssRules[i5].cssRules, baseURL);
        } else if (cssRules[i5].href) {
          const parsed = whatwgURL.parseURL(cssRules[i5].href, { baseURL });
          if (parsed === null) {
            const window2 = elementImpl._ownerDocument._defaultView;
            if (window2) {
              const error = new Error(`Could not parse CSS @import URL ${cssRules[i5].href} relative to base URL "${whatwgURL.serializeURL(baseURL)}"`);
              error.type = "css @import URL parsing";
              window2._virtualConsole.emit("jsdomError", error);
            }
          } else {
            fetchStylesheetInternal(elementImpl, whatwgURL.serializeURL(parsed), parsed);
          }
        }
      }
    }
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLinkElement-impl.js
var require_HTMLLinkElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLinkElement-impl.js"(exports, module) {
    "use strict";
    var DOMTokenList = require_DOMTokenList();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var idlUtils = require_utils16();
    var { fetchStylesheet, removeStylesheet } = require_stylesheets();
    var whatwgURL = require_whatwg_url();
    var HTMLLinkElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this.sheet = null;
      }
      get relList() {
        if (this._relList === void 0) {
          this._relList = DOMTokenList.createImpl(this._globalObject, [], {
            element: this,
            attributeLocalName: "rel",
            supportedTokens: /* @__PURE__ */ new Set(["stylesheet"])
          });
        }
        return this._relList;
      }
      _attach() {
        super._attach();
        maybeFetchAndProcess(this);
      }
      _detach() {
        super._detach();
        if (this.sheet) {
          removeStylesheet(this.sheet, this);
        }
      }
      _attrModified(name, value2, oldValue) {
        super._attrModified(name, value2, oldValue);
        if (name === "href") {
          maybeFetchAndProcess(this);
        }
        if (name === "rel" && this._relList !== void 0) {
          this._relList.attrModified();
        }
      }
      get _accept() {
        return "text/css,*/*;q=0.1";
      }
    };
    module.exports = {
      implementation: HTMLLinkElementImpl
    };
    function maybeFetchAndProcess(el) {
      if (!isExternalResourceLink(el)) {
        return;
      }
      if (!el.isConnected || !el._ownerDocument._defaultView) {
        return;
      }
      fetchAndProcess(el);
    }
    function fetchAndProcess(el) {
      const href = el.getAttributeNS(null, "href");
      if (href === null || href === "") {
        return;
      }
      const url3 = el._ownerDocument.encodingParseAURL(href);
      if (url3 === null) {
        return;
      }
      const serialized = whatwgURL.serializeURL(url3);
      fetchStylesheet(el, serialized);
    }
    function isExternalResourceLink(el) {
      const wrapper = idlUtils.wrapperForImpl(el);
      if (!/(?:[ \t\n\r\f]|^)stylesheet(?:[ \t\n\r\f]|$)/i.test(wrapper.rel)) {
        return false;
      }
      return el.hasAttributeNS(null, "href");
    }
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js
var require_HTMLLinkElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLLinkElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLLinkElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLLinkElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLLinkElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get href() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get href' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("href");
            if (value2 === null) {
              return "";
            }
            if (this._hrefURLCacheKey === value2) {
              return this._hrefURLCache;
            }
            this._hrefURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._hrefURLCache = serializeURLwhatwg_url(urlRecord);
              return this._hrefURLCache;
            }
            this._hrefURLCache = conversions.USVString(value2);
            return this._hrefURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set href(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set href' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'href' property on 'HTMLLinkElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("href", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get crossOrigin() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get crossOrigin' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("crossorigin");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set crossOrigin(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set crossOrigin' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'crossOrigin' property on 'HTMLLinkElement': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("crossorigin");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("crossorigin", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get rel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rel' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("rel");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set rel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set rel' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'rel' property on 'HTMLLinkElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("rel", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get relList() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get relList' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          return utils2.getSameObject(this, "relList", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["relList"]);
          });
        }
        set relList(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set relList' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          const Q = esValue["relList"];
          if (!utils2.isObject(Q)) {
            throw new globalObject.TypeError("Property 'relList' is not an object");
          }
          Reflect.set(Q, "value", V);
        }
        get media() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get media' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("media");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set media(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set media' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'media' property on 'HTMLLinkElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("media", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get hreflang() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get hreflang' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("hreflang");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set hreflang(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set hreflang' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'hreflang' property on 'HTMLLinkElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("hreflang", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("type");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set type(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set type' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'type' property on 'HTMLLinkElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get charset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get charset' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("charset");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set charset(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set charset' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'charset' property on 'HTMLLinkElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("charset", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get rev() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rev' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("rev");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set rev(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set rev' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'rev' property on 'HTMLLinkElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("rev", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get target() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get target' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("target");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set target(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set target' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'target' property on 'HTMLLinkElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("target", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get sheet() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get sheet' called on an object that is not a valid instance of HTMLLinkElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["sheet"]);
        }
      }
      Object.defineProperties(HTMLLinkElement.prototype, {
        href: { enumerable: true },
        crossOrigin: { enumerable: true },
        rel: { enumerable: true },
        relList: { enumerable: true },
        media: { enumerable: true },
        hreflang: { enumerable: true },
        type: { enumerable: true },
        charset: { enumerable: true },
        rev: { enumerable: true },
        target: { enumerable: true },
        sheet: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLLinkElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLLinkElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLLinkElement
      });
    };
    var Impl = require_HTMLLinkElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMetaElement-impl.js
var require_HTMLMetaElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMetaElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLMetaElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLMetaElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js
var require_HTMLMetaElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLMetaElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLMetaElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLMetaElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLMetaElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLMetaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLMetaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLMetaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get httpEquiv() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get httpEquiv' called on an object that is not a valid instance of HTMLMetaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("http-equiv");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set httpEquiv(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set httpEquiv' called on an object that is not a valid instance of HTMLMetaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'httpEquiv' property on 'HTMLMetaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("http-equiv", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get content() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get content' called on an object that is not a valid instance of HTMLMetaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("content");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set content(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set content' called on an object that is not a valid instance of HTMLMetaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'content' property on 'HTMLMetaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("content", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get scheme() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get scheme' called on an object that is not a valid instance of HTMLMetaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("scheme");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set scheme(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set scheme' called on an object that is not a valid instance of HTMLMetaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'scheme' property on 'HTMLMetaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("scheme", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLMetaElement.prototype, {
        name: { enumerable: true },
        httpEquiv: { enumerable: true },
        content: { enumerable: true },
        scheme: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLMetaElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLMetaElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLMetaElement
      });
    };
    var Impl = require_HTMLMetaElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLStyleElement-impl.js
var require_HTMLStyleElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLStyleElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var { removeStylesheet, createStylesheet } = require_stylesheets();
    var { childTextContent } = require_text();
    var { asciiCaseInsensitiveMatch } = require_strings2();
    var HTMLStyleElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this.sheet = null;
        this._isOnStackOfOpenElements = false;
      }
      _attach() {
        super._attach();
        if (!this._isOnStackOfOpenElements) {
          this._updateAStyleBlock();
        }
      }
      _detach() {
        super._detach();
        if (!this._isOnStackOfOpenElements) {
          this._updateAStyleBlock();
        }
      }
      _childTextContentChangeSteps() {
        super._childTextContentChangeSteps();
        if (!this._isOnStackOfOpenElements) {
          this._updateAStyleBlock();
        }
      }
      _poppedOffStackOfOpenElements() {
        this._isOnStackOfOpenElements = false;
        this._updateAStyleBlock();
      }
      _pushedOnStackOfOpenElements() {
        this._isOnStackOfOpenElements = true;
      }
      _updateAStyleBlock() {
        if (this.sheet) {
          removeStylesheet(this.sheet, this);
        }
        if (!this.isConnected || !this._ownerDocument._defaultView) {
          return;
        }
        const type = this.getAttributeNS(null, "type");
        if (type !== null && type !== "" && !asciiCaseInsensitiveMatch(type, "text/css")) {
          return;
        }
        const content = childTextContent(this);
        createStylesheet(content, this, this._ownerDocument.baseURL());
      }
    };
    module.exports = {
      implementation: HTMLStyleElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js
var require_HTMLStyleElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLStyleElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLStyleElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLStyleElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLStyleElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get media() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get media' called on an object that is not a valid instance of HTMLStyleElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("media");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set media(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set media' called on an object that is not a valid instance of HTMLStyleElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'media' property on 'HTMLStyleElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("media", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLStyleElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("type");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set type(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set type' called on an object that is not a valid instance of HTMLStyleElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'type' property on 'HTMLStyleElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get sheet() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get sheet' called on an object that is not a valid instance of HTMLStyleElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["sheet"]);
        }
      }
      Object.defineProperties(HTMLStyleElement.prototype, {
        media: { enumerable: true },
        type: { enumerable: true },
        sheet: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLStyleElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLStyleElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLStyleElement
      });
    };
    var Impl = require_HTMLStyleElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/WindowEventHandlers-impl.js
var require_WindowEventHandlers_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/WindowEventHandlers-impl.js"(exports, module) {
    "use strict";
    var { createEventAccessor } = require_create_event_accessor();
    var events2 = /* @__PURE__ */ new Set([
      // WindowEventHandlers
      "afterprint",
      "beforeprint",
      "beforeunload",
      "hashchange",
      "languagechange",
      "message",
      "messageerror",
      "offline",
      "online",
      "pagehide",
      "pageshow",
      "popstate",
      "rejectionhandled",
      "storage",
      "unhandledrejection",
      "unload",
      // inherited and overridden
      "blur",
      "error",
      "focus",
      "load",
      "resize",
      "scroll"
    ]);
    var WindowEventHandlersImpl = class {
      _proxyWindowEventsToWindow() {
        this._getEventHandlerTarget = (event) => {
          if (events2.has(event)) {
            return this.ownerDocument.defaultView || null;
          }
          return this;
        };
      }
    };
    for (const event of events2) {
      createEventAccessor(WindowEventHandlersImpl.prototype, event);
    }
    module.exports = {
      implementation: WindowEventHandlersImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBodyElement-impl.js
var require_HTMLBodyElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBodyElement-impl.js"(exports, module) {
    "use strict";
    var { mixin: mixin2 } = require_utils17();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var WindowEventHandlersImpl = require_WindowEventHandlers_impl().implementation;
    var HTMLBodyElementImpl = class extends HTMLElementImpl {
      constructor(...args) {
        super(...args);
        this._proxyWindowEventsToWindow();
      }
    };
    mixin2(HTMLBodyElementImpl.prototype, WindowEventHandlersImpl.prototype);
    module.exports = {
      implementation: HTMLBodyElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js
var require_HTMLBodyElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var EventHandlerNonNull = require_EventHandlerNonNull();
    var OnBeforeUnloadEventHandlerNonNull = require_OnBeforeUnloadEventHandlerNonNull();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLBodyElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLBodyElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLBodyElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLBodyElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get text() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get text' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("text");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set text(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set text' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'text' property on 'HTMLBodyElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("text", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get link() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get link' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("link");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set link(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set link' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'link' property on 'HTMLBodyElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("link", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get vLink() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get vLink' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("vlink");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set vLink(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set vLink' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'vLink' property on 'HTMLBodyElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("vlink", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get aLink() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get aLink' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("alink");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set aLink(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set aLink' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'aLink' property on 'HTMLBodyElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("alink", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get bgColor() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get bgColor' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("bgcolor");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set bgColor(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set bgColor' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'bgColor' property on 'HTMLBodyElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("bgcolor", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get background() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get background' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("background");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set background(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set background' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'background' property on 'HTMLBodyElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("background", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get onafterprint() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onafterprint' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onafterprint"]);
        }
        set onafterprint(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onafterprint' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onafterprint' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onafterprint"] = V;
        }
        get onbeforeprint() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforeprint' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforeprint"]);
        }
        set onbeforeprint(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforeprint' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforeprint' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onbeforeprint"] = V;
        }
        get onbeforeunload() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforeunload' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforeunload"]);
        }
        set onbeforeunload(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforeunload' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = OnBeforeUnloadEventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforeunload' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onbeforeunload"] = V;
        }
        get onhashchange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onhashchange' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onhashchange"]);
        }
        set onhashchange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onhashchange' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onhashchange' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onhashchange"] = V;
        }
        get onlanguagechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onlanguagechange' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onlanguagechange"]);
        }
        set onlanguagechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onlanguagechange' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onlanguagechange' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onlanguagechange"] = V;
        }
        get onmessage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmessage' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmessage"]);
        }
        set onmessage(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmessage' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmessage' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onmessage"] = V;
        }
        get onmessageerror() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmessageerror' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmessageerror"]);
        }
        set onmessageerror(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmessageerror' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmessageerror' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onmessageerror"] = V;
        }
        get onoffline() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onoffline' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onoffline"]);
        }
        set onoffline(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onoffline' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onoffline' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onoffline"] = V;
        }
        get ononline() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ononline' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ononline"]);
        }
        set ononline(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ononline' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ononline' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["ononline"] = V;
        }
        get onpagehide() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onpagehide' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpagehide"]);
        }
        set onpagehide(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onpagehide' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpagehide' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onpagehide"] = V;
        }
        get onpageshow() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onpageshow' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpageshow"]);
        }
        set onpageshow(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onpageshow' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpageshow' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onpageshow"] = V;
        }
        get onpopstate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onpopstate' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpopstate"]);
        }
        set onpopstate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onpopstate' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpopstate' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onpopstate"] = V;
        }
        get onrejectionhandled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onrejectionhandled' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onrejectionhandled"]);
        }
        set onrejectionhandled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onrejectionhandled' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onrejectionhandled' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onrejectionhandled"] = V;
        }
        get onstorage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onstorage' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onstorage"]);
        }
        set onstorage(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onstorage' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onstorage' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onstorage"] = V;
        }
        get onunhandledrejection() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onunhandledrejection' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onunhandledrejection"]);
        }
        set onunhandledrejection(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onunhandledrejection' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onunhandledrejection' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onunhandledrejection"] = V;
        }
        get onunload() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onunload' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onunload"]);
        }
        set onunload(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onunload' called on an object that is not a valid instance of HTMLBodyElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onunload' property on 'HTMLBodyElement': The provided value"
            });
          }
          esValue[implSymbol]["onunload"] = V;
        }
      }
      Object.defineProperties(HTMLBodyElement.prototype, {
        text: { enumerable: true },
        link: { enumerable: true },
        vLink: { enumerable: true },
        aLink: { enumerable: true },
        bgColor: { enumerable: true },
        background: { enumerable: true },
        onafterprint: { enumerable: true },
        onbeforeprint: { enumerable: true },
        onbeforeunload: { enumerable: true },
        onhashchange: { enumerable: true },
        onlanguagechange: { enumerable: true },
        onmessage: { enumerable: true },
        onmessageerror: { enumerable: true },
        onoffline: { enumerable: true },
        ononline: { enumerable: true },
        onpagehide: { enumerable: true },
        onpageshow: { enumerable: true },
        onpopstate: { enumerable: true },
        onrejectionhandled: { enumerable: true },
        onstorage: { enumerable: true },
        onunhandledrejection: { enumerable: true },
        onunload: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLBodyElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLBodyElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLBodyElement
      });
    };
    var Impl = require_HTMLBodyElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadingElement-impl.js
var require_HTMLHeadingElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadingElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLHeadingElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLHeadingElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js
var require_HTMLHeadingElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLHeadingElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLHeadingElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLHeadingElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLHeadingElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLHeadingElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLHeadingElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLHeadingElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLHeadingElement.prototype, {
        align: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLHeadingElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLHeadingElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLHeadingElement
      });
    };
    var Impl = require_HTMLHeadingElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParagraphElement-impl.js
var require_HTMLParagraphElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParagraphElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLParagraphElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLParagraphElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js
var require_HTMLParagraphElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLParagraphElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLParagraphElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLParagraphElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLParagraphElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLParagraphElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLParagraphElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLParagraphElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLParagraphElement.prototype, {
        align: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLParagraphElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLParagraphElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLParagraphElement
      });
    };
    var Impl = require_HTMLParagraphElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHRElement-impl.js
var require_HTMLHRElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHRElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLHRElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLHRElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js
var require_HTMLHRElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLHRElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLHRElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLHRElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLHRElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLHRElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLHRElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLHRElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get color() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get color' called on an object that is not a valid instance of HTMLHRElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("color");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set color(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set color' called on an object that is not a valid instance of HTMLHRElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'color' property on 'HTMLHRElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("color", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get noShade() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get noShade' called on an object that is not a valid instance of HTMLHRElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("noshade") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set noShade(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set noShade' called on an object that is not a valid instance of HTMLHRElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'noShade' property on 'HTMLHRElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("noshade", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("noshade");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get size() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get size' called on an object that is not a valid instance of HTMLHRElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("size");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set size(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set size' called on an object that is not a valid instance of HTMLHRElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'size' property on 'HTMLHRElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("size", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get width' called on an object that is not a valid instance of HTMLHRElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("width");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set width' called on an object that is not a valid instance of HTMLHRElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'width' property on 'HTMLHRElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLHRElement.prototype, {
        align: { enumerable: true },
        color: { enumerable: true },
        noShade: { enumerable: true },
        size: { enumerable: true },
        width: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLHRElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLHRElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLHRElement
      });
    };
    var Impl = require_HTMLHRElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPreElement-impl.js
var require_HTMLPreElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPreElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLPreElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLPreElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js
var require_HTMLPreElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var parseInteger_helpers_strings = require_strings2().parseInteger;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLPreElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLPreElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLPreElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLPreElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get width' called on an object that is not a valid instance of HTMLPreElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("width");
            if (value2 !== null) {
              value2 = parseInteger_helpers_strings(value2);
              if (value2 !== null && conversions.long(value2) === value2) {
                return value2;
              }
            }
            return 0;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set width' called on an object that is not a valid instance of HTMLPreElement."
            );
          }
          V = conversions["long"](V, {
            context: "Failed to set the 'width' property on 'HTMLPreElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("width", String(V));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLPreElement.prototype, {
        width: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLPreElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLPreElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLPreElement
      });
    };
    var Impl = require_HTMLPreElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUListElement-impl.js
var require_HTMLUListElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUListElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLUListElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLUListElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js
var require_HTMLUListElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLUListElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLUListElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLUListElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLUListElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get compact() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get compact' called on an object that is not a valid instance of HTMLUListElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("compact") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set compact(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set compact' called on an object that is not a valid instance of HTMLUListElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'compact' property on 'HTMLUListElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("compact", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("compact");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLUListElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("type");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set type(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set type' called on an object that is not a valid instance of HTMLUListElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'type' property on 'HTMLUListElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLUListElement.prototype, {
        compact: { enumerable: true },
        type: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLUListElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLUListElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLUListElement
      });
    };
    var Impl = require_HTMLUListElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOListElement-impl.js
var require_HTMLOListElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOListElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLOListElementImpl = class extends HTMLElementImpl {
      get start() {
        const value2 = parseInt(this.getAttributeNS(null, "start"));
        if (!isNaN(value2)) {
          return value2;
        }
        return 1;
      }
      set start(value2) {
        this.setAttributeNS(null, "start", value2);
      }
    };
    module.exports = {
      implementation: HTMLOListElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js
var require_HTMLOListElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLOListElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLOListElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLOListElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLOListElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get reversed() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get reversed' called on an object that is not a valid instance of HTMLOListElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("reversed") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set reversed(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set reversed' called on an object that is not a valid instance of HTMLOListElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'reversed' property on 'HTMLOListElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("reversed", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("reversed");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get start() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get start' called on an object that is not a valid instance of HTMLOListElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["start"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set start(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set start' called on an object that is not a valid instance of HTMLOListElement."
            );
          }
          V = conversions["long"](V, {
            context: "Failed to set the 'start' property on 'HTMLOListElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["start"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLOListElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("type");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set type(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set type' called on an object that is not a valid instance of HTMLOListElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'type' property on 'HTMLOListElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get compact() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get compact' called on an object that is not a valid instance of HTMLOListElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("compact") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set compact(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set compact' called on an object that is not a valid instance of HTMLOListElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'compact' property on 'HTMLOListElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("compact", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("compact");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLOListElement.prototype, {
        reversed: { enumerable: true },
        start: { enumerable: true },
        type: { enumerable: true },
        compact: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLOListElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLOListElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLOListElement
      });
    };
    var Impl = require_HTMLOListElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLIElement-impl.js
var require_HTMLLIElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLIElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLLIElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLLIElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js
var require_HTMLLIElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var parseInteger_helpers_strings = require_strings2().parseInteger;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLLIElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLLIElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLLIElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLLIElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get value' called on an object that is not a valid instance of HTMLLIElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("value");
            if (value2 !== null) {
              value2 = parseInteger_helpers_strings(value2);
              if (value2 !== null && conversions.long(value2) === value2) {
                return value2;
              }
            }
            return 0;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set value' called on an object that is not a valid instance of HTMLLIElement."
            );
          }
          V = conversions["long"](V, {
            context: "Failed to set the 'value' property on 'HTMLLIElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("value", String(V));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLLIElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("type");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set type(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set type' called on an object that is not a valid instance of HTMLLIElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'type' property on 'HTMLLIElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLLIElement.prototype, {
        value: { enumerable: true },
        type: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLLIElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLLIElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLLIElement
      });
    };
    var Impl = require_HTMLLIElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMenuElement-impl.js
var require_HTMLMenuElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMenuElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLMenuElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLMenuElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js
var require_HTMLMenuElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLMenuElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLMenuElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLMenuElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLMenuElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get compact() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get compact' called on an object that is not a valid instance of HTMLMenuElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("compact") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set compact(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set compact' called on an object that is not a valid instance of HTMLMenuElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'compact' property on 'HTMLMenuElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("compact", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("compact");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLMenuElement.prototype, {
        compact: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLMenuElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLMenuElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLMenuElement
      });
    };
    var Impl = require_HTMLMenuElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDListElement-impl.js
var require_HTMLDListElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDListElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLDListElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLDListElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js
var require_HTMLDListElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLDListElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLDListElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLDListElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLDListElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get compact() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get compact' called on an object that is not a valid instance of HTMLDListElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("compact") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set compact(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set compact' called on an object that is not a valid instance of HTMLDListElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'compact' property on 'HTMLDListElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("compact", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("compact");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLDListElement.prototype, {
        compact: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLDListElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLDListElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLDListElement
      });
    };
    var Impl = require_HTMLDListElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDivElement-impl.js
var require_HTMLDivElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDivElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLDivElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLDivElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js
var require_HTMLDivElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLDivElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLDivElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLDivElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLDivElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLDivElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLDivElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLDivElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLDivElement.prototype, {
        align: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLDivElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLDivElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLDivElement
      });
    };
    var Impl = require_HTMLDivElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHyperlinkElementUtils-impl.js
var require_HTMLHyperlinkElementUtils_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHyperlinkElementUtils-impl.js"(exports) {
    "use strict";
    var whatwgURL = require_whatwg_url();
    var { asciiCaseInsensitiveMatch } = require_strings2();
    var { navigate } = require_navigation();
    exports.implementation = class HTMLHyperlinkElementUtilsImpl {
      _htmlHyperlinkElementUtilsSetup() {
        this.url = null;
      }
      // https://html.spec.whatwg.org/multipage/links.html#cannot-navigate
      _cannotNavigate() {
        return this._localName !== "a" && !this.isConnected;
      }
      // https://html.spec.whatwg.org/multipage/semantics.html#get-an-element's-target
      _getAnElementsTarget() {
        if (this.hasAttributeNS(null, "target")) {
          return this.getAttributeNS(null, "target");
        }
        const baseEl = this._ownerDocument.querySelector("base[target]");
        if (baseEl) {
          return baseEl.getAttributeNS(null, "target");
        }
        return "";
      }
      // https://html.spec.whatwg.org/multipage/browsers.html#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name
      _chooseABrowsingContext(name, current) {
        let chosen = null;
        if (name === "" || asciiCaseInsensitiveMatch(name, "_self")) {
          chosen = current;
        } else if (asciiCaseInsensitiveMatch(name, "_parent")) {
          chosen = current.parent;
        } else if (asciiCaseInsensitiveMatch(name, "_top")) {
          chosen = current.top;
        } else if (!asciiCaseInsensitiveMatch(name, "_blank")) {
        }
        return chosen;
      }
      // https://html.spec.whatwg.org/multipage/links.html#following-hyperlinks-2
      _followAHyperlink() {
        if (this._cannotNavigate()) {
          return;
        }
        const source = this._ownerDocument._defaultView;
        let targetAttributeValue = "";
        if (this._localName === "a" || this._localName === "area") {
          targetAttributeValue = this._getAnElementsTarget();
        }
        const noopener = this.relList.contains("noreferrer") || this.relList.contains("noopener");
        const target = this._chooseABrowsingContext(targetAttributeValue, source, noopener);
        if (target === null) {
          return;
        }
        const url3 = this._ownerDocument.encodingParseAURL(this.href);
        if (url3 === null) {
          return;
        }
        setTimeout(() => {
          navigate(target, url3, {});
        }, 0);
      }
      toString() {
        return this.href;
      }
      get href() {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null) {
          const href = this.getAttributeNS(null, "href");
          return href === null ? "" : href;
        }
        return whatwgURL.serializeURL(url3);
      }
      set href(v3) {
        this.setAttributeNS(null, "href", v3);
      }
      get origin() {
        reinitializeURL(this);
        if (this.url === null) {
          return "";
        }
        return whatwgURL.serializeURLOrigin(this.url);
      }
      get protocol() {
        reinitializeURL(this);
        if (this.url === null) {
          return ":";
        }
        return this.url.scheme + ":";
      }
      set protocol(v3) {
        reinitializeURL(this);
        if (this.url === null) {
          return;
        }
        whatwgURL.basicURLParse(v3 + ":", { url: this.url, stateOverride: "scheme start" });
        updateHref(this);
      }
      get username() {
        reinitializeURL(this);
        if (this.url === null) {
          return "";
        }
        return this.url.username;
      }
      set username(v3) {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null || whatwgURL.cannotHaveAUsernamePasswordPort(url3)) {
          return;
        }
        whatwgURL.setTheUsername(url3, v3);
        updateHref(this);
      }
      get password() {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null) {
          return "";
        }
        return url3.password;
      }
      set password(v3) {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null || whatwgURL.cannotHaveAUsernamePasswordPort(url3)) {
          return;
        }
        whatwgURL.setThePassword(url3, v3);
        updateHref(this);
      }
      get host() {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null || url3.host === null) {
          return "";
        }
        if (url3.port === null) {
          return whatwgURL.serializeHost(url3.host);
        }
        return whatwgURL.serializeHost(url3.host) + ":" + whatwgURL.serializeInteger(url3.port);
      }
      set host(v3) {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null || whatwgURL.hasAnOpaquePath(url3)) {
          return;
        }
        whatwgURL.basicURLParse(v3, { url: url3, stateOverride: "host" });
        updateHref(this);
      }
      get hostname() {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null || url3.host === null) {
          return "";
        }
        return whatwgURL.serializeHost(url3.host);
      }
      set hostname(v3) {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null || whatwgURL.hasAnOpaquePath(url3)) {
          return;
        }
        whatwgURL.basicURLParse(v3, { url: url3, stateOverride: "hostname" });
        updateHref(this);
      }
      get port() {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null || url3.port === null) {
          return "";
        }
        return whatwgURL.serializeInteger(url3.port);
      }
      set port(v3) {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null || whatwgURL.cannotHaveAUsernamePasswordPort(url3)) {
          return;
        }
        if (v3 === "") {
          url3.port = null;
        } else {
          whatwgURL.basicURLParse(v3, { url: url3, stateOverride: "port" });
        }
        updateHref(this);
      }
      get pathname() {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null) {
          return "";
        }
        return whatwgURL.serializePath(url3);
      }
      set pathname(v3) {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null || whatwgURL.hasAnOpaquePath(url3)) {
          return;
        }
        url3.path = [];
        whatwgURL.basicURLParse(v3, { url: url3, stateOverride: "path start" });
        updateHref(this);
      }
      get search() {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null || url3.query === null || url3.query === "") {
          return "";
        }
        return "?" + url3.query;
      }
      set search(v3) {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null) {
          return;
        }
        if (v3 === "") {
          url3.query = null;
        } else {
          const input = v3[0] === "?" ? v3.substring(1) : v3;
          url3.query = "";
          whatwgURL.basicURLParse(input, {
            url: url3,
            stateOverride: "query",
            encodingOverride: this._ownerDocument.charset
          });
        }
        updateHref(this);
      }
      get hash() {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null || url3.fragment === null || url3.fragment === "") {
          return "";
        }
        return "#" + url3.fragment;
      }
      set hash(v3) {
        reinitializeURL(this);
        const { url: url3 } = this;
        if (url3 === null) {
          return;
        }
        if (v3 === "") {
          url3.fragment = null;
        } else {
          const input = v3[0] === "#" ? v3.substring(1) : v3;
          url3.fragment = "";
          whatwgURL.basicURLParse(input, { url: url3, stateOverride: "fragment" });
        }
        updateHref(this);
      }
    };
    function reinitializeURL(hheu) {
      if (hheu.url !== null && hheu.url.scheme === "blob" && whatwgURL.hasAnOpaquePath(hheu.url)) {
        return;
      }
      setTheURL(hheu);
    }
    function setTheURL(hheu) {
      const href = hheu.getAttributeNS(null, "href");
      if (href === null) {
        hheu.url = null;
        return;
      }
      const parsed = hheu._ownerDocument.encodingParseAURL(href);
      hheu.url = parsed === null ? null : parsed;
    }
    function updateHref(hheu) {
      hheu.setAttributeNS(null, "href", whatwgURL.serializeURL(hheu.url));
    }
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAnchorElement-impl.js
var require_HTMLAnchorElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAnchorElement-impl.js"(exports, module) {
    "use strict";
    var { mixin: mixin2 } = require_utils17();
    var DOMTokenList = require_DOMTokenList();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLHyperlinkElementUtilsImpl = require_HTMLHyperlinkElementUtils_impl().implementation;
    var HTMLAnchorElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._htmlHyperlinkElementUtilsSetup();
        this._hasActivationBehavior = true;
      }
      _activationBehavior() {
        this._followAHyperlink();
      }
      get relList() {
        if (this._relList === void 0) {
          this._relList = DOMTokenList.createImpl(this._globalObject, [], {
            element: this,
            attributeLocalName: "rel"
          });
        }
        return this._relList;
      }
      get text() {
        return this.textContent;
      }
      set text(v3) {
        this.textContent = v3;
      }
      _attrModified(name, value2, oldValue) {
        super._attrModified(name, value2, oldValue);
        if (name === "rel" && this._relList !== void 0) {
          this._relList.attrModified();
        }
      }
    };
    mixin2(HTMLAnchorElementImpl.prototype, HTMLHyperlinkElementUtilsImpl.prototype);
    module.exports = {
      implementation: HTMLAnchorElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js
var require_HTMLAnchorElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLAnchorElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLAnchorElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLAnchorElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLAnchorElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get target() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get target' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("target");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set target(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set target' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'target' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("target", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get download() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get download' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("download");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set download(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set download' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'download' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("download", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get rel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rel' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("rel");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set rel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set rel' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'rel' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("rel", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get relList() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get relList' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          return utils2.getSameObject(this, "relList", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["relList"]);
          });
        }
        set relList(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set relList' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          const Q = esValue["relList"];
          if (!utils2.isObject(Q)) {
            throw new globalObject.TypeError("Property 'relList' is not an object");
          }
          Reflect.set(Q, "value", V);
        }
        get hreflang() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get hreflang' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("hreflang");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set hreflang(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set hreflang' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'hreflang' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("hreflang", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("type");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set type(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set type' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'type' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get text() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get text' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["text"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set text(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set text' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'text' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["text"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get coords() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get coords' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("coords");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set coords(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set coords' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'coords' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("coords", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get charset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get charset' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("charset");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set charset(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set charset' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'charset' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("charset", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get rev() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rev' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("rev");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set rev(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set rev' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'rev' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("rev", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get shape() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get shape' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("shape");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set shape(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set shape' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'shape' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("shape", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get href() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get href' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["href"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set href(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set href' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'href' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["href"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        toString() {
          const esValue = this;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'toString' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["href"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get origin() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get origin' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          return esValue[implSymbol]["origin"];
        }
        get protocol() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get protocol' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["protocol"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set protocol(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set protocol' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'protocol' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["protocol"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get username() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get username' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["username"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set username(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set username' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'username' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["username"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get password() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get password' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["password"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set password(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set password' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'password' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["password"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get host() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get host' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["host"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set host(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set host' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'host' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["host"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get hostname() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get hostname' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["hostname"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set hostname(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set hostname' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'hostname' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["hostname"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get port() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get port' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["port"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set port(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set port' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'port' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["port"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get pathname() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get pathname' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["pathname"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set pathname(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set pathname' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'pathname' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["pathname"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get search() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get search' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["search"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set search(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set search' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'search' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["search"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get hash() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get hash' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["hash"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set hash(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set hash' called on an object that is not a valid instance of HTMLAnchorElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'hash' property on 'HTMLAnchorElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["hash"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLAnchorElement.prototype, {
        target: { enumerable: true },
        download: { enumerable: true },
        rel: { enumerable: true },
        relList: { enumerable: true },
        hreflang: { enumerable: true },
        type: { enumerable: true },
        text: { enumerable: true },
        coords: { enumerable: true },
        charset: { enumerable: true },
        name: { enumerable: true },
        rev: { enumerable: true },
        shape: { enumerable: true },
        href: { enumerable: true },
        toString: { enumerable: true },
        origin: { enumerable: true },
        protocol: { enumerable: true },
        username: { enumerable: true },
        password: { enumerable: true },
        host: { enumerable: true },
        hostname: { enumerable: true },
        port: { enumerable: true },
        pathname: { enumerable: true },
        search: { enumerable: true },
        hash: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLAnchorElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLAnchorElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLAnchorElement
      });
    };
    var Impl = require_HTMLAnchorElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAreaElement-impl.js
var require_HTMLAreaElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAreaElement-impl.js"(exports, module) {
    "use strict";
    var { mixin: mixin2 } = require_utils17();
    var DOMTokenList = require_DOMTokenList();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLHyperlinkElementUtilsImpl = require_HTMLHyperlinkElementUtils_impl().implementation;
    var HTMLAreaElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._htmlHyperlinkElementUtilsSetup();
        this._hasActivationBehavior = true;
      }
      _activationBehavior() {
        this._followAHyperlink();
      }
      get relList() {
        if (this._relList === void 0) {
          this._relList = DOMTokenList.createImpl(this._globalObject, [], {
            element: this,
            attributeLocalName: "rel"
          });
        }
        return this._relList;
      }
      _attrModified(name, value2, oldValue) {
        super._attrModified(name, value2, oldValue);
        if (name === "rel" && this._relList !== void 0) {
          this._relList.attrModified();
        }
      }
    };
    mixin2(HTMLAreaElementImpl.prototype, HTMLHyperlinkElementUtilsImpl.prototype);
    module.exports = {
      implementation: HTMLAreaElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js
var require_HTMLAreaElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLAreaElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLAreaElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLAreaElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLAreaElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get alt() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get alt' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("alt");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set alt(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set alt' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'alt' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("alt", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get coords() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get coords' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("coords");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set coords(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set coords' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'coords' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("coords", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get shape() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get shape' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("shape");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set shape(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set shape' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'shape' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("shape", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get target() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get target' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("target");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set target(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set target' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'target' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("target", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get rel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rel' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("rel");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set rel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set rel' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'rel' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("rel", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get relList() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get relList' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          return utils2.getSameObject(this, "relList", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["relList"]);
          });
        }
        set relList(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set relList' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          const Q = esValue["relList"];
          if (!utils2.isObject(Q)) {
            throw new globalObject.TypeError("Property 'relList' is not an object");
          }
          Reflect.set(Q, "value", V);
        }
        get noHref() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get noHref' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("nohref") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set noHref(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set noHref' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'noHref' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("nohref", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("nohref");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get href() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get href' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["href"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set href(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set href' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'href' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["href"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        toString() {
          const esValue = this;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'toString' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["href"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get origin() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get origin' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          return esValue[implSymbol]["origin"];
        }
        get protocol() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get protocol' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["protocol"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set protocol(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set protocol' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'protocol' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["protocol"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get username() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get username' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["username"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set username(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set username' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'username' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["username"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get password() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get password' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["password"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set password(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set password' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'password' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["password"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get host() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get host' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["host"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set host(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set host' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'host' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["host"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get hostname() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get hostname' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["hostname"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set hostname(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set hostname' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'hostname' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["hostname"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get port() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get port' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["port"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set port(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set port' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'port' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["port"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get pathname() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get pathname' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["pathname"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set pathname(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set pathname' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'pathname' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["pathname"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get search() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get search' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["search"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set search(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set search' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'search' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["search"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get hash() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get hash' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["hash"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set hash(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set hash' called on an object that is not a valid instance of HTMLAreaElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'hash' property on 'HTMLAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["hash"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLAreaElement.prototype, {
        alt: { enumerable: true },
        coords: { enumerable: true },
        shape: { enumerable: true },
        target: { enumerable: true },
        rel: { enumerable: true },
        relList: { enumerable: true },
        noHref: { enumerable: true },
        href: { enumerable: true },
        toString: { enumerable: true },
        origin: { enumerable: true },
        protocol: { enumerable: true },
        username: { enumerable: true },
        password: { enumerable: true },
        host: { enumerable: true },
        hostname: { enumerable: true },
        port: { enumerable: true },
        pathname: { enumerable: true },
        search: { enumerable: true },
        hash: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLAreaElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLAreaElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLAreaElement
      });
    };
    var Impl = require_HTMLAreaElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBRElement-impl.js
var require_HTMLBRElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBRElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLBRElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLBRElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js
var require_HTMLBRElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLBRElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLBRElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLBRElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLBRElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get clear() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get clear' called on an object that is not a valid instance of HTMLBRElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("clear");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set clear(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set clear' called on an object that is not a valid instance of HTMLBRElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'clear' property on 'HTMLBRElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("clear", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLBRElement.prototype, {
        clear: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLBRElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLBRElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLBRElement
      });
    };
    var Impl = require_HTMLBRElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/constraint-validation/ValidityState-impl.js
var require_ValidityState_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/constraint-validation/ValidityState-impl.js"(exports) {
    "use strict";
    exports.implementation = class ValidityStateImpl {
      constructor(globalObject, args, privateData) {
        const { element, state = {} } = privateData;
        this._element = element;
        this._state = state;
      }
      get badInput() {
        return this._failsConstraint("badInput");
      }
      // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-a-custom-error
      get customError() {
        return this._element._customValidityErrorMessage !== "";
      }
      get patternMismatch() {
        return this._failsConstraint("patternMismatch");
      }
      get rangeOverflow() {
        return this._failsConstraint("rangeOverflow");
      }
      get rangeUnderflow() {
        return this._failsConstraint("rangeUnderflow");
      }
      get stepMismatch() {
        return this._failsConstraint("stepMismatch");
      }
      get tooLong() {
        return this._failsConstraint("tooLong");
      }
      get tooShort() {
        return this._failsConstraint("tooShort");
      }
      get typeMismatch() {
        return this._failsConstraint("typeMismatch");
      }
      get valueMissing() {
        return this._failsConstraint("valueMissing");
      }
      _failsConstraint(method) {
        const validationMethod = this._state[method];
        if (validationMethod) {
          return validationMethod();
        }
        return false;
      }
      get valid() {
        return !(this.badInput || this.valueMissing || this.customError || this.patternMismatch || this.rangeOverflow || this.rangeUnderflow || this.stepMismatch || this.tooLong || this.tooShort || this.typeMismatch);
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ValidityState.js
var require_ValidityState = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ValidityState.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "ValidityState";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'ValidityState'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["ValidityState"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class ValidityState {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get valueMissing() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get valueMissing' called on an object that is not a valid instance of ValidityState."
            );
          }
          return esValue[implSymbol]["valueMissing"];
        }
        get typeMismatch() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get typeMismatch' called on an object that is not a valid instance of ValidityState."
            );
          }
          return esValue[implSymbol]["typeMismatch"];
        }
        get patternMismatch() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get patternMismatch' called on an object that is not a valid instance of ValidityState."
            );
          }
          return esValue[implSymbol]["patternMismatch"];
        }
        get tooLong() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get tooLong' called on an object that is not a valid instance of ValidityState."
            );
          }
          return esValue[implSymbol]["tooLong"];
        }
        get tooShort() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get tooShort' called on an object that is not a valid instance of ValidityState."
            );
          }
          return esValue[implSymbol]["tooShort"];
        }
        get rangeUnderflow() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rangeUnderflow' called on an object that is not a valid instance of ValidityState."
            );
          }
          return esValue[implSymbol]["rangeUnderflow"];
        }
        get rangeOverflow() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rangeOverflow' called on an object that is not a valid instance of ValidityState."
            );
          }
          return esValue[implSymbol]["rangeOverflow"];
        }
        get stepMismatch() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get stepMismatch' called on an object that is not a valid instance of ValidityState."
            );
          }
          return esValue[implSymbol]["stepMismatch"];
        }
        get badInput() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get badInput' called on an object that is not a valid instance of ValidityState."
            );
          }
          return esValue[implSymbol]["badInput"];
        }
        get customError() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get customError' called on an object that is not a valid instance of ValidityState."
            );
          }
          return esValue[implSymbol]["customError"];
        }
        get valid() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get valid' called on an object that is not a valid instance of ValidityState."
            );
          }
          return esValue[implSymbol]["valid"];
        }
      }
      Object.defineProperties(ValidityState.prototype, {
        valueMissing: { enumerable: true },
        typeMismatch: { enumerable: true },
        patternMismatch: { enumerable: true },
        tooLong: { enumerable: true },
        tooShort: { enumerable: true },
        rangeUnderflow: { enumerable: true },
        rangeOverflow: { enumerable: true },
        stepMismatch: { enumerable: true },
        badInput: { enumerable: true },
        customError: { enumerable: true },
        valid: { enumerable: true },
        [Symbol.toStringTag]: { value: "ValidityState", configurable: true }
      });
      ctorRegistry[interfaceName] = ValidityState;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: ValidityState
      });
    };
    var Impl = require_ValidityState_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/constraint-validation/DefaultConstraintValidation-impl.js
var require_DefaultConstraintValidation_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/constraint-validation/DefaultConstraintValidation-impl.js"(exports) {
    "use strict";
    var ValidityState = require_ValidityState();
    var { isDisabled } = require_form_controls();
    var { closest } = require_traversal2();
    var { fireAnEvent } = require_events4();
    exports.implementation = class DefaultConstraintValidationImpl {
      // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-cva-willvalidate
      get willValidate() {
        return this._isCandidateForConstraintValidation();
      }
      get validity() {
        if (!this._validity) {
          this._validity = ValidityState.createImpl(this._globalObject, [], {
            element: this
          });
        }
        return this._validity;
      }
      // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-cva-checkvalidity
      checkValidity() {
        if (!this._isCandidateForConstraintValidation()) {
          return true;
        }
        if (this._satisfiesConstraints()) {
          return true;
        }
        fireAnEvent("invalid", this, void 0, { cancelable: true });
        return false;
      }
      // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-cva-setcustomvalidity
      setCustomValidity(message) {
        this._customValidityErrorMessage = message;
      }
      // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-cva-reportvalidity
      // Since jsdom has no user interaction, it's the same as #checkValidity
      reportValidity() {
        return this.checkValidity();
      }
      // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-cva-validationmessage
      get validationMessage() {
        const { validity } = this;
        if (!this._isCandidateForConstraintValidation() || this._satisfiesConstraints()) {
          return "";
        }
        const isSufferingFromCustomError = validity.customError;
        if (isSufferingFromCustomError) {
          return this._customValidityErrorMessage;
        }
        return "Constraints not satisfied";
      }
      _isCandidateForConstraintValidation() {
        return !isDisabled(this) && // If an element has a datalist element ancestor,
        // it is barred from constraint validation.
        closest(this, "datalist") === null && !this._barredFromConstraintValidationSpecialization();
      }
      _isBarredFromConstraintValidation() {
        return !this._isCandidateForConstraintValidation();
      }
      _satisfiesConstraints() {
        return this.validity.valid;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLButtonElement-impl.js
var require_HTMLButtonElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLButtonElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var DefaultConstraintValidationImpl = require_DefaultConstraintValidation_impl().implementation;
    var { mixin: mixin2 } = require_utils17();
    var { isDisabled, formOwner, getLabelsForLabelable } = require_form_controls();
    var { asciiLowercase } = require_strings2();
    var HTMLButtonElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._customValidityErrorMessage = "";
        this._labels = null;
        this._hasActivationBehavior = true;
      }
      _activationBehavior() {
        const { form } = this;
        if (form && !isDisabled(this)) {
          if (this.type === "submit") {
            form._doRequestSubmit(this);
          }
          if (this.type === "reset") {
            form._doReset();
          }
        }
      }
      _getValue() {
        const valueAttr = this.getAttributeNS(null, "value");
        return valueAttr === null ? "" : valueAttr;
      }
      get labels() {
        return getLabelsForLabelable(this);
      }
      get form() {
        return formOwner(this);
      }
      get type() {
        const typeAttr = asciiLowercase(this.getAttributeNS(null, "type") || "");
        switch (typeAttr) {
          case "submit":
          case "reset":
          case "button":
            return typeAttr;
          default:
            return "submit";
        }
      }
      set type(v3) {
        v3 = asciiLowercase(String(v3));
        switch (v3) {
          case "submit":
          case "reset":
          case "button":
            this.setAttributeNS(null, "type", v3);
            break;
          default:
            this.setAttributeNS(null, "type", "submit");
            break;
        }
      }
      _barredFromConstraintValidationSpecialization() {
        return this.type === "reset" || this.type === "button";
      }
    };
    mixin2(HTMLButtonElementImpl.prototype, DefaultConstraintValidationImpl.prototype);
    module.exports = {
      implementation: HTMLButtonElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js
var require_HTMLButtonElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLButtonElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLButtonElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLButtonElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLButtonElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        checkValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'checkValidity' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          return esValue[implSymbol].checkValidity();
        }
        reportValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'reportValidity' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          return esValue[implSymbol].reportValidity();
        }
        setCustomValidity(error) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setCustomValidity' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setCustomValidity' on 'HTMLButtonElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'setCustomValidity' on 'HTMLButtonElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setCustomValidity(...args);
        }
        get autofocus() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get autofocus' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("autofocus") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set autofocus(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set autofocus' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'autofocus' property on 'HTMLButtonElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("autofocus", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("autofocus");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get disabled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get disabled' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set disabled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set disabled' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'disabled' property on 'HTMLButtonElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get form() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get form' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["form"]);
        }
        get formNoValidate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get formNoValidate' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("formnovalidate") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set formNoValidate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set formNoValidate' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'formNoValidate' property on 'HTMLButtonElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("formnovalidate", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("formnovalidate");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get formTarget() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get formTarget' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("formtarget");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set formTarget(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set formTarget' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'formTarget' property on 'HTMLButtonElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("formtarget", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLButtonElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["type"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set type(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set type' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'type' property on 'HTMLButtonElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["type"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get value' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("value");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set value' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'value' property on 'HTMLButtonElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("value", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get willValidate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get willValidate' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          return esValue[implSymbol]["willValidate"];
        }
        get validity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validity' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["validity"]);
        }
        get validationMessage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validationMessage' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          return esValue[implSymbol]["validationMessage"];
        }
        get labels() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get labels' called on an object that is not a valid instance of HTMLButtonElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["labels"]);
        }
      }
      Object.defineProperties(HTMLButtonElement.prototype, {
        checkValidity: { enumerable: true },
        reportValidity: { enumerable: true },
        setCustomValidity: { enumerable: true },
        autofocus: { enumerable: true },
        disabled: { enumerable: true },
        form: { enumerable: true },
        formNoValidate: { enumerable: true },
        formTarget: { enumerable: true },
        name: { enumerable: true },
        type: { enumerable: true },
        value: { enumerable: true },
        willValidate: { enumerable: true },
        validity: { enumerable: true },
        validationMessage: { enumerable: true },
        labels: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLButtonElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLButtonElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLButtonElement
      });
    };
    var Impl = require_HTMLButtonElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/BlobCallback.js
var require_BlobCallback = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/BlobCallback.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (typeof value2 !== "function") {
        throw new globalObject.TypeError(context + " is not a function");
      }
      function invokeTheCallbackFunction(blob) {
        const thisArg = utils2.tryWrapperForImpl(this);
        let callResult;
        blob = utils2.tryWrapperForImpl(blob);
        callResult = Reflect.apply(value2, thisArg, [blob]);
      }
      invokeTheCallbackFunction.construct = (blob) => {
        blob = utils2.tryWrapperForImpl(blob);
        let callResult = Reflect.construct(value2, [blob]);
      };
      invokeTheCallbackFunction[utils2.wrapperSymbol] = value2;
      invokeTheCallbackFunction.objectReference = value2;
      return invokeTheCallbackFunction;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js
var require_HTMLCanvasElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var notImplemented = require_not_implemented();
    var idlUtils = require_utils16();
    var { Canvas: Canvas2 } = require_utils17();
    var HTMLCanvasElementImpl = class extends HTMLElementImpl {
      _attrModified(name, value2, oldValue) {
        if (this._canvas && (name === "width" || name === "height")) {
          this._canvas[name] = parseInt(value2);
        }
        super._attrModified(name, value2, oldValue);
      }
      _getCanvas() {
        if (Canvas2 && !this._canvas) {
          this._canvas = Canvas2.createCanvas(this.width, this.height);
        }
        return this._canvas;
      }
      getContext(contextId) {
        const canvas = this._getCanvas();
        if (canvas) {
          if (!this._context) {
            this._context = canvas.getContext(contextId) || null;
            if (this._context) {
              this._context.canvas = idlUtils.wrapperForImpl(this);
              wrapNodeCanvasMethod(this._context, "createPattern");
              wrapNodeCanvasMethod(this._context, "drawImage");
            }
          }
          return this._context;
        }
        notImplemented(
          "HTMLCanvasElement.prototype.getContext (without installing the canvas npm package)",
          this._ownerDocument._defaultView
        );
        return null;
      }
      toDataURL(...args) {
        const canvas = this._getCanvas();
        if (canvas) {
          return canvas.toDataURL(...args);
        }
        notImplemented(
          "HTMLCanvasElement.prototype.toDataURL (without installing the canvas npm package)",
          this._ownerDocument._defaultView
        );
        return null;
      }
      toBlob(callback, type, qualityArgument) {
        const window2 = this._ownerDocument._defaultView;
        const canvas = this._getCanvas();
        if (canvas) {
          const options = {};
          switch (type) {
            case "image/jpg":
            case "image/jpeg":
              type = "image/jpeg";
              options.quality = qualityArgument;
              break;
            default:
              type = "image/png";
          }
          canvas.toBuffer((err2, buff) => {
            if (err2) {
              throw err2;
            }
            callback(new window2.Blob([buff], { type }));
          }, type, options);
        } else {
          notImplemented(
            "HTMLCanvasElement.prototype.toBlob (without installing the canvas npm package)",
            window2
          );
        }
      }
      get width() {
        const parsed = parseInt(this.getAttributeNS(null, "width"));
        return isNaN(parsed) || parsed < 0 || parsed > 2147483647 ? 300 : parsed;
      }
      set width(v3) {
        v3 = v3 > 2147483647 ? 300 : v3;
        this.setAttributeNS(null, "width", String(v3));
      }
      get height() {
        const parsed = parseInt(this.getAttributeNS(null, "height"));
        return isNaN(parsed) || parsed < 0 || parsed > 2147483647 ? 150 : parsed;
      }
      set height(v3) {
        v3 = v3 > 2147483647 ? 150 : v3;
        this.setAttributeNS(null, "height", String(v3));
      }
    };
    function wrapNodeCanvasMethod(ctx, name) {
      const prev = ctx[name];
      ctx[name] = function(image, ...rest) {
        const impl = idlUtils.implForWrapper(image);
        if (impl) {
          if (impl instanceof HTMLCanvasElementImpl && !impl._canvas) {
            impl._getCanvas();
          }
          image = impl._image || impl._canvas;
        }
        return prev.call(ctx, image, ...rest);
      };
    }
    module.exports = {
      implementation: HTMLCanvasElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js
var require_HTMLCanvasElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var BlobCallback = require_BlobCallback();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLCanvasElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLCanvasElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLCanvasElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLCanvasElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        getContext(contextId) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getContext' called on an object that is not a valid instance of HTMLCanvasElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getContext' on 'HTMLCanvasElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getContext' on 'HTMLCanvasElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          for (let i5 = 1; i5 < arguments.length; i5++) {
            let curArg = arguments[i5];
            curArg = conversions["any"](curArg, {
              context: "Failed to execute 'getContext' on 'HTMLCanvasElement': parameter " + (i5 + 1),
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getContext(...args));
        }
        toDataURL() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'toDataURL' called on an object that is not a valid instance of HTMLCanvasElement."
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'toDataURL' on 'HTMLCanvasElement': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["any"](curArg, {
                context: "Failed to execute 'toDataURL' on 'HTMLCanvasElement': parameter 2",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].toDataURL(...args);
        }
        toBlob(callback) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'toBlob' called on an object that is not a valid instance of HTMLCanvasElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'toBlob' on 'HTMLCanvasElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = BlobCallback.convert(globalObject, curArg, {
              context: "Failed to execute 'toBlob' on 'HTMLCanvasElement': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'toBlob' on 'HTMLCanvasElement': parameter 2",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["any"](curArg, {
                context: "Failed to execute 'toBlob' on 'HTMLCanvasElement': parameter 3",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].toBlob(...args);
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get width' called on an object that is not a valid instance of HTMLCanvasElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["width"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set width' called on an object that is not a valid instance of HTMLCanvasElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'width' property on 'HTMLCanvasElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["width"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get height() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get height' called on an object that is not a valid instance of HTMLCanvasElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["height"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set height(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set height' called on an object that is not a valid instance of HTMLCanvasElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'height' property on 'HTMLCanvasElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["height"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLCanvasElement.prototype, {
        getContext: { enumerable: true },
        toDataURL: { enumerable: true },
        toBlob: { enumerable: true },
        width: { enumerable: true },
        height: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLCanvasElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLCanvasElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLCanvasElement
      });
    };
    var Impl = require_HTMLCanvasElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataElement-impl.js
var require_HTMLDataElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLDataElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLDataElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js
var require_HTMLDataElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLDataElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLDataElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLDataElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLDataElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get value' called on an object that is not a valid instance of HTMLDataElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("value");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set value' called on an object that is not a valid instance of HTMLDataElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'value' property on 'HTMLDataElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("value", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLDataElement.prototype, {
        value: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLDataElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLDataElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLDataElement
      });
    };
    var Impl = require_HTMLDataElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataListElement-impl.js
var require_HTMLDataListElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataListElement-impl.js"(exports, module) {
    "use strict";
    var HTMLCollection = require_HTMLCollection();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var { descendantsByLocalName } = require_traversal2();
    var HTMLDataListElementImpl = class extends HTMLElementImpl {
      // https://html.spec.whatwg.org/multipage/form-elements.html#dom-datalist-options
      get options() {
        return HTMLCollection.createImpl(this._globalObject, [], {
          element: this,
          query: () => descendantsByLocalName(this, "option")
        });
      }
    };
    module.exports = {
      implementation: HTMLDataListElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js
var require_HTMLDataListElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLDataListElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLDataListElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLDataListElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLDataListElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get options() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get options' called on an object that is not a valid instance of HTMLDataListElement."
            );
          }
          return utils2.getSameObject(this, "options", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["options"]);
          });
        }
      }
      Object.defineProperties(HTMLDataListElement.prototype, {
        options: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLDataListElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLDataListElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLDataListElement
      });
    };
    var Impl = require_HTMLDataListElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDetailsElement-impl.js
var require_HTMLDetailsElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDetailsElement-impl.js"(exports, module) {
    "use strict";
    var { fireAnEvent } = require_events4();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLDetailsElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._taskQueue = null;
      }
      _dispatchToggleEvent() {
        this._taskQueue = null;
        fireAnEvent("toggle", this);
      }
      _attrModified(name, value2, oldValue) {
        super._attrModified(name, value2, oldValue);
        if (name === "open" && this._taskQueue === null) {
          if (value2 !== oldValue && value2 !== null && oldValue === null || value2 === null && oldValue !== null) {
            this._taskQueue = setTimeout(this._dispatchToggleEvent.bind(this), 0);
          }
        }
      }
    };
    module.exports = {
      implementation: HTMLDetailsElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js
var require_HTMLDetailsElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLDetailsElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLDetailsElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLDetailsElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLDetailsElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get open() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get open' called on an object that is not a valid instance of HTMLDetailsElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("open") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set open(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set open' called on an object that is not a valid instance of HTMLDetailsElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'open' property on 'HTMLDetailsElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("open", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("open");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLDetailsElement.prototype, {
        open: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLDetailsElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLDetailsElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLDetailsElement
      });
    };
    var Impl = require_HTMLDetailsElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDialogElement-impl.js
var require_HTMLDialogElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDialogElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLDialogElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLDialogElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js
var require_HTMLDialogElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLDialogElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLDialogElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLDialogElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLDialogElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get open() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get open' called on an object that is not a valid instance of HTMLDialogElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("open") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set open(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set open' called on an object that is not a valid instance of HTMLDialogElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'open' property on 'HTMLDialogElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("open", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("open");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLDialogElement.prototype, {
        open: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLDialogElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLDialogElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLDialogElement
      });
    };
    var Impl = require_HTMLDialogElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDirectoryElement-impl.js
var require_HTMLDirectoryElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDirectoryElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLDirectoryElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLDirectoryElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js
var require_HTMLDirectoryElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLDirectoryElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLDirectoryElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLDirectoryElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLDirectoryElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get compact() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get compact' called on an object that is not a valid instance of HTMLDirectoryElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("compact") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set compact(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set compact' called on an object that is not a valid instance of HTMLDirectoryElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'compact' property on 'HTMLDirectoryElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("compact", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("compact");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLDirectoryElement.prototype, {
        compact: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLDirectoryElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLDirectoryElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLDirectoryElement
      });
    };
    var Impl = require_HTMLDirectoryElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFieldSetElement-impl.js
var require_HTMLFieldSetElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFieldSetElement-impl.js"(exports, module) {
    "use strict";
    var HTMLCollection = require_HTMLCollection();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var DefaultConstraintValidationImpl = require_DefaultConstraintValidation_impl().implementation;
    var { formOwner } = require_form_controls();
    var { mixin: mixin2 } = require_utils17();
    var { descendantsByLocalNames } = require_traversal2();
    var listedElements = /* @__PURE__ */ new Set(["button", "fieldset", "input", "object", "output", "select", "textarea"]);
    var HTMLFieldSetElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._customValidityErrorMessage = "";
      }
      get elements() {
        return HTMLCollection.createImpl(this._globalObject, [], {
          element: this,
          query: () => descendantsByLocalNames(this, listedElements)
        });
      }
      get form() {
        return formOwner(this);
      }
      get type() {
        return "fieldset";
      }
      _barredFromConstraintValidationSpecialization() {
        return true;
      }
    };
    mixin2(HTMLFieldSetElementImpl.prototype, DefaultConstraintValidationImpl.prototype);
    module.exports = {
      implementation: HTMLFieldSetElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js
var require_HTMLFieldSetElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLFieldSetElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLFieldSetElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLFieldSetElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLFieldSetElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        checkValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'checkValidity' called on an object that is not a valid instance of HTMLFieldSetElement."
            );
          }
          return esValue[implSymbol].checkValidity();
        }
        reportValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'reportValidity' called on an object that is not a valid instance of HTMLFieldSetElement."
            );
          }
          return esValue[implSymbol].reportValidity();
        }
        setCustomValidity(error) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setCustomValidity' called on an object that is not a valid instance of HTMLFieldSetElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setCustomValidity' on 'HTMLFieldSetElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'setCustomValidity' on 'HTMLFieldSetElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setCustomValidity(...args);
        }
        get disabled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get disabled' called on an object that is not a valid instance of HTMLFieldSetElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set disabled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set disabled' called on an object that is not a valid instance of HTMLFieldSetElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'disabled' property on 'HTMLFieldSetElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get form() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get form' called on an object that is not a valid instance of HTMLFieldSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["form"]);
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLFieldSetElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLFieldSetElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLFieldSetElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLFieldSetElement."
            );
          }
          return esValue[implSymbol]["type"];
        }
        get elements() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get elements' called on an object that is not a valid instance of HTMLFieldSetElement."
            );
          }
          return utils2.getSameObject(this, "elements", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["elements"]);
          });
        }
        get willValidate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get willValidate' called on an object that is not a valid instance of HTMLFieldSetElement."
            );
          }
          return esValue[implSymbol]["willValidate"];
        }
        get validity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validity' called on an object that is not a valid instance of HTMLFieldSetElement."
            );
          }
          return utils2.getSameObject(this, "validity", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["validity"]);
          });
        }
        get validationMessage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validationMessage' called on an object that is not a valid instance of HTMLFieldSetElement."
            );
          }
          return esValue[implSymbol]["validationMessage"];
        }
      }
      Object.defineProperties(HTMLFieldSetElement.prototype, {
        checkValidity: { enumerable: true },
        reportValidity: { enumerable: true },
        setCustomValidity: { enumerable: true },
        disabled: { enumerable: true },
        form: { enumerable: true },
        name: { enumerable: true },
        type: { enumerable: true },
        elements: { enumerable: true },
        willValidate: { enumerable: true },
        validity: { enumerable: true },
        validationMessage: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLFieldSetElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLFieldSetElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLFieldSetElement
      });
    };
    var Impl = require_HTMLFieldSetElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFontElement-impl.js
var require_HTMLFontElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFontElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLFontElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLFontElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js
var require_HTMLFontElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLFontElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLFontElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLFontElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLFontElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get color() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get color' called on an object that is not a valid instance of HTMLFontElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("color");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set color(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set color' called on an object that is not a valid instance of HTMLFontElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'color' property on 'HTMLFontElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("color", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get face() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get face' called on an object that is not a valid instance of HTMLFontElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("face");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set face(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set face' called on an object that is not a valid instance of HTMLFontElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'face' property on 'HTMLFontElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("face", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get size() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get size' called on an object that is not a valid instance of HTMLFontElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("size");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set size(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set size' called on an object that is not a valid instance of HTMLFontElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'size' property on 'HTMLFontElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("size", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLFontElement.prototype, {
        color: { enumerable: true },
        face: { enumerable: true },
        size: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLFontElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLFontElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLFontElement
      });
    };
    var Impl = require_HTMLFontElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormControlsCollection-impl.js
var require_HTMLFormControlsCollection_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormControlsCollection-impl.js"(exports) {
    "use strict";
    var HTMLCollectionImpl = require_HTMLCollection_impl().implementation;
    var RadioNodeList = require_RadioNodeList();
    exports.implementation = class HTMLFormControlsCollectionImpl extends HTMLCollectionImpl {
      namedItem(name) {
        if (name === "") {
          return null;
        }
        this._update();
        const nodeList = RadioNodeList.createImpl(this._globalObject, [], {
          element: this,
          query: () => this._list.filter(
            (e4) => e4.getAttributeNS(null, "id") === name || e4.getAttributeNS(null, "name") === name
          )
        });
        switch (nodeList.length) {
          case 0: {
            return null;
          }
          case 1: {
            return nodeList.item(0);
          }
          default: {
            return nodeList;
          }
        }
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormControlsCollection.js
var require_HTMLFormControlsCollection = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormControlsCollection.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLCollection = require_HTMLCollection();
    var interfaceName = "HTMLFormControlsCollection";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLFormControlsCollection'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLFormControlsCollection"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLCollection._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLFormControlsCollection extends globalObject.HTMLCollection {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        namedItem(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'namedItem' called on an object that is not a valid instance of HTMLFormControlsCollection."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'namedItem' on 'HTMLFormControlsCollection': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'namedItem' on 'HTMLFormControlsCollection': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].namedItem(...args));
        }
      }
      Object.defineProperties(HTMLFormControlsCollection.prototype, {
        namedItem: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLFormControlsCollection", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = HTMLFormControlsCollection;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLFormControlsCollection
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of target[implSymbol][utils2.supportedPropertyNames]) {
          if (!(key in target)) {
            keys2.add(`${key}`);
          }
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            return {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        const namedValue = target[implSymbol].namedItem(P);
        if (namedValue !== null && !(P in target) && !ignoreNamedProps) {
          return {
            writable: false,
            enumerable: true,
            configurable: true,
            value: utils2.tryWrapperForImpl(namedValue)
          };
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            ownDesc = {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          return false;
        }
        if (!utils2.hasOwn(target, P)) {
          const creating = !(target[implSymbol].namedItem(P) !== null);
          if (!creating) {
            return false;
          }
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !(target[implSymbol].item(index2) !== null);
        }
        if (target[implSymbol].namedItem(P) !== null && !(P in target)) {
          return false;
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_HTMLFormControlsCollection_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SubmitEventInit.js
var require_SubmitEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SubmitEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLElement2 = require_HTMLElement();
    var EventInit = require_EventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "submitter";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (value2 === null || value2 === void 0) {
            value2 = null;
          } else {
            value2 = HTMLElement2.convert(globalObject, value2, { context: context + " has member 'submitter' that" });
          }
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/SubmitEvent-impl.js
var require_SubmitEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/SubmitEvent-impl.js"(exports, module) {
    "use strict";
    var EventImpl = require_Event_impl().implementation;
    var SubmitEventInit = require_SubmitEventInit();
    var SubmitEventImpl = class extends EventImpl {
    };
    SubmitEventImpl.defaultInit = SubmitEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: SubmitEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SubmitEvent.js
var require_SubmitEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SubmitEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var SubmitEventInit = require_SubmitEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Event2 = require_Event();
    var interfaceName = "SubmitEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SubmitEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SubmitEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Event2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SubmitEvent extends globalObject.Event {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'SubmitEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'SubmitEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = SubmitEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'SubmitEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get submitter() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get submitter' called on an object that is not a valid instance of SubmitEvent."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["submitter"]);
        }
      }
      Object.defineProperties(SubmitEvent.prototype, {
        submitter: { enumerable: true },
        [Symbol.toStringTag]: { value: "SubmitEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = SubmitEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SubmitEvent
      });
    };
    var Impl = require_SubmitEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormElement-impl.js
var require_HTMLFormElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormElement-impl.js"(exports, module) {
    "use strict";
    var idlUtils = require_utils16();
    var DOMException2 = require_DOMException();
    var { serializeURL } = require_whatwg_url();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var { domSymbolTree } = require_internal_constants();
    var { fireAnEvent } = require_events4();
    var { formOwner, isListed, isSubmittable, isSubmitButton } = require_form_controls();
    var HTMLFormControlsCollection = require_HTMLFormControlsCollection();
    var notImplemented = require_not_implemented();
    var SubmitEvent = require_SubmitEvent();
    var encTypes = /* @__PURE__ */ new Set([
      "application/x-www-form-urlencoded",
      "multipart/form-data",
      "text/plain"
    ]);
    var methods = /* @__PURE__ */ new Set([
      "get",
      "post",
      "dialog"
    ]);
    var constraintValidationPositiveResult = Symbol("positive");
    var constraintValidationNegativeResult = Symbol("negative");
    var HTMLFormElementImpl = class extends HTMLElementImpl {
      _descendantAdded(parent, child) {
        const form = this;
        for (const el of domSymbolTree.treeIterator(child)) {
          if (typeof el._changedFormOwner === "function") {
            el._changedFormOwner(form);
          }
        }
        super._descendantAdded(parent, child);
      }
      _descendantRemoved(parent, child) {
        for (const el of domSymbolTree.treeIterator(child)) {
          if (typeof el._changedFormOwner === "function") {
            el._changedFormOwner(null);
          }
        }
        super._descendantRemoved(parent, child);
      }
      _getSubmittableElementNodes() {
        return domSymbolTree.treeToArray(this.getRootNode({}), {
          filter: (node) => {
            if (!isSubmittable(node)) {
              return false;
            }
            return formOwner(node) === this;
          }
        });
      }
      _getElementNodes() {
        return domSymbolTree.treeToArray(this.getRootNode({}), {
          filter: (node) => {
            if (!isListed(node) || node._localName === "input" && node.type === "image") {
              return false;
            }
            return formOwner(node) === this;
          }
        });
      }
      // https://html.spec.whatwg.org/multipage/forms.html#dom-form-elements
      get elements() {
        return HTMLFormControlsCollection.createImpl(this._globalObject, [], {
          element: this.getRootNode({}),
          query: () => this._getElementNodes()
        });
      }
      [idlUtils.indexedGet](index2) {
        return this._getElementNodes()[index2] || null;
      }
      get [idlUtils.supportedPropertyIndices]() {
        return Object.keys(this._getElementNodes());
      }
      get length() {
        return this.elements.length;
      }
      _doRequestSubmit(submitter) {
        if (!this.isConnected) {
          return;
        }
        this.requestSubmit(submitter);
      }
      submit() {
        notImplemented("HTMLFormElement.prototype.submit", this._ownerDocument._defaultView);
      }
      requestSubmit(submitter = null) {
        if (submitter !== null) {
          if (!isSubmitButton(submitter)) {
            throw new TypeError("The specified element is not a submit button");
          }
          if (submitter.form !== this) {
            throw DOMException2.create(this._globalObject, [
              "The specified element is not owned by this form element",
              "NotFoundError"
            ]);
          }
        }
        if (!this.hasAttributeNS(null, "novalidate") && !this.reportValidity()) {
          return;
        }
        if (!fireAnEvent("submit", this, SubmitEvent, { bubbles: true, cancelable: true, submitter })) {
          return;
        }
        notImplemented("HTMLFormElement.prototype.requestSubmit", this._ownerDocument._defaultView);
      }
      _doReset() {
        if (!this.isConnected) {
          return;
        }
        this.reset();
      }
      reset() {
        if (!fireAnEvent("reset", this, void 0, { bubbles: true, cancelable: true })) {
          return;
        }
        for (const el of this.elements) {
          if (typeof el._formReset === "function") {
            el._formReset();
          }
        }
      }
      get method() {
        let method = this.getAttributeNS(null, "method");
        if (method) {
          method = method.toLowerCase();
        }
        if (methods.has(method)) {
          return method;
        }
        return "get";
      }
      set method(V) {
        this.setAttributeNS(null, "method", V);
      }
      get enctype() {
        let type = this.getAttributeNS(null, "enctype");
        if (type) {
          type = type.toLowerCase();
        }
        if (encTypes.has(type)) {
          return type;
        }
        return "application/x-www-form-urlencoded";
      }
      set enctype(V) {
        this.setAttributeNS(null, "enctype", V);
      }
      get action() {
        const attributeValue = this.getAttributeNS(null, "action");
        if (attributeValue === null || attributeValue === "") {
          return this._ownerDocument.URL;
        }
        const urlRecord = this._ownerDocument.encodingParseAURL(attributeValue);
        if (urlRecord === null) {
          return attributeValue;
        }
        return serializeURL(urlRecord);
      }
      set action(V) {
        this.setAttributeNS(null, "action", V);
      }
      // If the checkValidity() method is invoked, the user agent must statically validate the
      // constraints of the form element, and return true if the constraint validation returned
      // a positive result, and false if it returned a negative result.
      checkValidity() {
        return this._staticallyValidateConstraints().result === constraintValidationPositiveResult;
      }
      // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#interactively-validate-the-constraints
      reportValidity() {
        return this.checkValidity();
      }
      // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#statically-validate-the-constraints
      _staticallyValidateConstraints() {
        const controls = [];
        for (const el of this.elements) {
          if (el.form === this && isSubmittable(el)) {
            controls.push(el);
          }
        }
        const invalidControls = [];
        for (const control of controls) {
          if (control._isCandidateForConstraintValidation() && !control._satisfiesConstraints()) {
            invalidControls.push(control);
          }
        }
        if (invalidControls.length === 0) {
          return { result: constraintValidationPositiveResult };
        }
        const unhandledInvalidControls = [];
        for (const invalidControl of invalidControls) {
          const notCancelled = fireAnEvent("invalid", invalidControl, void 0, { cancelable: true });
          if (notCancelled) {
            unhandledInvalidControls.push(invalidControl);
          }
        }
        return { result: constraintValidationNegativeResult, unhandledInvalidControls };
      }
    };
    module.exports = {
      implementation: HTMLFormElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js
var require_HTMLFormElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var HTMLElement2 = require_HTMLElement();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "HTMLFormElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLFormElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLFormElement"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLFormElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        submit() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'submit' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          return esValue[implSymbol].submit();
        }
        requestSubmit() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'requestSubmit' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = HTMLElement2.convert(globalObject, curArg, {
                context: "Failed to execute 'requestSubmit' on 'HTMLFormElement': parameter 1"
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].requestSubmit(...args);
        }
        reset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'reset' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].reset();
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        checkValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'checkValidity' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          return esValue[implSymbol].checkValidity();
        }
        reportValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'reportValidity' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          return esValue[implSymbol].reportValidity();
        }
        get acceptCharset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get acceptCharset' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("accept-charset");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set acceptCharset(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set acceptCharset' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'acceptCharset' property on 'HTMLFormElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("accept-charset", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get action() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get action' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["action"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set action(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set action' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'action' property on 'HTMLFormElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["action"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get enctype() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get enctype' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["enctype"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set enctype(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set enctype' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'enctype' property on 'HTMLFormElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["enctype"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get method() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get method' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["method"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set method(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set method' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'method' property on 'HTMLFormElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["method"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLFormElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get noValidate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get noValidate' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("novalidate") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set noValidate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set noValidate' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'noValidate' property on 'HTMLFormElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("novalidate", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("novalidate");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get target() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get target' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("target");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set target(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set target' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'target' property on 'HTMLFormElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("target", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get elements() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get elements' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          return utils2.getSameObject(this, "elements", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["elements"]);
          });
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get length' called on an object that is not a valid instance of HTMLFormElement."
            );
          }
          return esValue[implSymbol]["length"];
        }
      }
      Object.defineProperties(HTMLFormElement.prototype, {
        submit: { enumerable: true },
        requestSubmit: { enumerable: true },
        reset: { enumerable: true },
        checkValidity: { enumerable: true },
        reportValidity: { enumerable: true },
        acceptCharset: { enumerable: true },
        action: { enumerable: true },
        enctype: { enumerable: true },
        method: { enumerable: true },
        name: { enumerable: true },
        noValidate: { enumerable: true },
        target: { enumerable: true },
        elements: { enumerable: true },
        length: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLFormElement", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = HTMLFormElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLFormElement
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol][utils2.indexedGet](index2);
          if (indexedValue !== null) {
            return {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol][utils2.indexedGet](index2);
          if (indexedValue !== null) {
            ownDesc = {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          return false;
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !(target[implSymbol][utils2.indexedGet](index2) !== null);
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_HTMLFormElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHtmlElement-impl.js
var require_HTMLHtmlElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHtmlElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLHtmlElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLHtmlElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js
var require_HTMLHtmlElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLHtmlElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLHtmlElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLHtmlElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLHtmlElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get version() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get version' called on an object that is not a valid instance of HTMLHtmlElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("version");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set version(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set version' called on an object that is not a valid instance of HTMLHtmlElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'version' property on 'HTMLHtmlElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("version", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLHtmlElement.prototype, {
        version: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLHtmlElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLHtmlElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLHtmlElement
      });
    };
    var Impl = require_HTMLHtmlElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLImageElement-impl.js
var require_HTMLImageElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLImageElement-impl.js"(exports, module) {
    "use strict";
    var conversions = require_lib20();
    var { serializeURL } = require_whatwg_url();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var { Canvas: Canvas2 } = require_utils17();
    var HTMLImageElementImpl = class extends HTMLElementImpl {
      constructor(...args) {
        super(...args);
        this._currentRequestState = "unavailable";
      }
      _attrModified(name, value2, oldVal) {
        if (name === "src" || (name === "srcset" || name === "width" || name === "sizes") && value2 !== oldVal) {
          this._updateTheImageData();
        }
        super._attrModified(name, value2, oldVal);
      }
      get _accept() {
        return "image/png,image/*;q=0.8,*/*;q=0.5";
      }
      get height() {
        return this.hasAttributeNS(null, "height") ? conversions["unsigned long"](this.getAttributeNS(null, "height")) : this.naturalHeight;
      }
      set height(V) {
        this.setAttributeNS(null, "height", String(V));
      }
      get width() {
        return this.hasAttributeNS(null, "width") ? conversions["unsigned long"](this.getAttributeNS(null, "width")) : this.naturalWidth;
      }
      set width(V) {
        this.setAttributeNS(null, "width", String(V));
      }
      get naturalHeight() {
        return this._image ? this._image.naturalHeight : 0;
      }
      get naturalWidth() {
        return this._image ? this._image.naturalWidth : 0;
      }
      get complete() {
        const srcAttributeValue = this.getAttributeNS(null, "src");
        return srcAttributeValue === null || srcAttributeValue === "" || this._currentRequestState === "broken" || this._currentRequestState === "completely available";
      }
      get currentSrc() {
        return this._currentSrc || "";
      }
      // https://html.spec.whatwg.org/multipage/images.html#updating-the-image-data
      _updateTheImageData() {
        const document2 = this._ownerDocument;
        if (!document2._defaultView) {
          return;
        }
        if (!Canvas2) {
          return;
        }
        if (!this._image) {
          this._image = new Canvas2.Image();
        }
        this._currentSrc = null;
        this._currentRequestState = "unavailable";
        const srcAttributeValue = this.getAttributeNS(null, "src");
        let urlString = null;
        if (srcAttributeValue !== null && srcAttributeValue !== "") {
          const urlRecord = this._ownerDocument.encodingParseAURL(srcAttributeValue);
          if (urlRecord === null) {
            return;
          }
          urlString = serializeURL(urlRecord);
        }
        if (urlString !== null) {
          const resourceLoader = document2._resourceLoader;
          let request;
          const onLoadImage = (data2) => {
            const { response } = request;
            if (response && response.statusCode !== void 0 && response.statusCode !== 200) {
              throw new Error("Status code: " + response.statusCode);
            }
            let error = null;
            this._image.onerror = function(err2) {
              error = err2;
            };
            this._image.src = data2;
            if (error) {
              throw new Error(error);
            }
            this._currentSrc = srcAttributeValue;
            this._currentRequestState = "completely available";
          };
          request = resourceLoader.fetch(urlString, {
            element: this,
            onLoad: onLoadImage,
            onError: () => {
              this._currentRequestState = "broken";
            }
          });
        } else {
          this._image.src = "";
        }
      }
    };
    module.exports = {
      implementation: HTMLImageElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js
var require_HTMLImageElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var parseNonNegativeInteger_helpers_strings = require_strings2().parseNonNegativeInteger;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLImageElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLImageElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLImageElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLImageElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get alt() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get alt' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("alt");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set alt(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set alt' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'alt' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("alt", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get src() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get src' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("src");
            if (value2 === null) {
              return "";
            }
            if (this._srcURLCacheKey === value2) {
              return this._srcURLCache;
            }
            this._srcURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._srcURLCache = serializeURLwhatwg_url(urlRecord);
              return this._srcURLCache;
            }
            this._srcURLCache = conversions.USVString(value2);
            return this._srcURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set src(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set src' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'src' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get srcset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get srcset' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("srcset");
            return value2 === null ? "" : conversions.USVString(value2);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set srcset(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set srcset' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'srcset' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("srcset", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get sizes() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get sizes' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("sizes");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set sizes(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set sizes' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'sizes' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("sizes", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get crossOrigin() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get crossOrigin' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("crossorigin");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set crossOrigin(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set crossOrigin' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'crossOrigin' property on 'HTMLImageElement': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("crossorigin");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("crossorigin", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get useMap() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get useMap' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("usemap");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set useMap(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set useMap' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'useMap' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("usemap", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get isMap() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get isMap' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("ismap") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set isMap(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set isMap' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'isMap' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("ismap", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("ismap");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get width' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["width"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set width' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'width' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["width"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get height() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get height' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["height"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set height(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set height' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'height' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["height"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get naturalWidth() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get naturalWidth' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          return esValue[implSymbol]["naturalWidth"];
        }
        get naturalHeight() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get naturalHeight' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          return esValue[implSymbol]["naturalHeight"];
        }
        get complete() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get complete' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          return esValue[implSymbol]["complete"];
        }
        get currentSrc() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get currentSrc' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          return esValue[implSymbol]["currentSrc"];
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get lowsrc() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get lowsrc' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("lowsrc");
            if (value2 === null) {
              return "";
            }
            if (this._lowsrcURLCacheKey === value2) {
              return this._lowsrcURLCache;
            }
            this._lowsrcURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._lowsrcURLCache = serializeURLwhatwg_url(urlRecord);
              return this._lowsrcURLCache;
            }
            this._lowsrcURLCache = conversions.USVString(value2);
            return this._lowsrcURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set lowsrc(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set lowsrc' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'lowsrc' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("lowsrc", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get hspace() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get hspace' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("hspace");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 0 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 0;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set hspace(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set hspace' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'hspace' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 0;
            esValue[implSymbol]._reflectSetTheContentAttribute("hspace", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get vspace() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get vspace' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("vspace");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 0 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 0;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set vspace(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set vspace' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'vspace' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 0;
            esValue[implSymbol]._reflectSetTheContentAttribute("vspace", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get longDesc() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get longDesc' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("longdesc");
            if (value2 === null) {
              return "";
            }
            if (this._longdescURLCacheKey === value2) {
              return this._longdescURLCache;
            }
            this._longdescURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._longdescURLCache = serializeURLwhatwg_url(urlRecord);
              return this._longdescURLCache;
            }
            this._longdescURLCache = conversions.USVString(value2);
            return this._longdescURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set longDesc(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set longDesc' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'longDesc' property on 'HTMLImageElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("longdesc", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get border() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get border' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("border");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set border(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set border' called on an object that is not a valid instance of HTMLImageElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'border' property on 'HTMLImageElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("border", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLImageElement.prototype, {
        alt: { enumerable: true },
        src: { enumerable: true },
        srcset: { enumerable: true },
        sizes: { enumerable: true },
        crossOrigin: { enumerable: true },
        useMap: { enumerable: true },
        isMap: { enumerable: true },
        width: { enumerable: true },
        height: { enumerable: true },
        naturalWidth: { enumerable: true },
        naturalHeight: { enumerable: true },
        complete: { enumerable: true },
        currentSrc: { enumerable: true },
        name: { enumerable: true },
        lowsrc: { enumerable: true },
        align: { enumerable: true },
        hspace: { enumerable: true },
        vspace: { enumerable: true },
        longDesc: { enumerable: true },
        border: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLImageElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLImageElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLImageElement
      });
    };
    var Impl = require_HTMLImageElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SelectionMode.js
var require_SelectionMode = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SelectionMode.js"(exports) {
    "use strict";
    var enumerationValues = /* @__PURE__ */ new Set(["select", "start", "end", "preserve"]);
    exports.enumerationValues = enumerationValues;
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      const string = `${value2}`;
      if (!enumerationValues.has(string)) {
        throw new globalObject.TypeError(`${context} '${string}' is not a valid enumeration value for SelectionMode`);
      }
      return string;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/file-api/FileList-impl.js
var require_FileList_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/file-api/FileList-impl.js"(exports) {
    "use strict";
    var idlUtils = require_utils16();
    exports.implementation = class FileListImpl extends Array {
      constructor() {
        super(0);
      }
      item(index2) {
        return this[index2] || null;
      }
      get [idlUtils.supportedPropertyIndices]() {
        return this.keys();
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/FileList.js
var require_FileList = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/FileList.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "FileList";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'FileList'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["FileList"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class FileList {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        item(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'item' called on an object that is not a valid instance of FileList.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'item' on 'FileList': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'item' on 'FileList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].item(...args));
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get length' called on an object that is not a valid instance of FileList.");
          }
          return esValue[implSymbol]["length"];
        }
      }
      Object.defineProperties(FileList.prototype, {
        item: { enumerable: true },
        length: { enumerable: true },
        [Symbol.toStringTag]: { value: "FileList", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = FileList;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: FileList
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            return {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            ownDesc = {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          return false;
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !(target[implSymbol].item(index2) !== null);
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_FileList_impl();
  }
});

// ../../node_modules/.pnpm/decimal.js@10.6.0/node_modules/decimal.js/decimal.js
var require_decimal = __commonJS({
  "../../node_modules/.pnpm/decimal.js@10.6.0/node_modules/decimal.js/decimal.js"(exports, module) {
    (function(globalScope) {
      "use strict";
      var EXP_LIMIT = 9e15, MAX_DIGITS = 1e9, NUMERALS = "0123456789abcdef", LN10 = "2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058", PI = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789", DEFAULTS = {
        // These values must be integers within the stated ranges (inclusive).
        // Most of these values can be changed at run-time using the `Decimal.config` method.
        // The maximum number of significant digits of the result of a calculation or base conversion.
        // E.g. `Decimal.config({ precision: 20 });`
        precision: 20,
        // 1 to MAX_DIGITS
        // The rounding mode used when rounding to `precision`.
        //
        // ROUND_UP         0 Away from zero.
        // ROUND_DOWN       1 Towards zero.
        // ROUND_CEIL       2 Towards +Infinity.
        // ROUND_FLOOR      3 Towards -Infinity.
        // ROUND_HALF_UP    4 Towards nearest neighbour. If equidistant, up.
        // ROUND_HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.
        // ROUND_HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.
        // ROUND_HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.
        // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.
        //
        // E.g.
        // `Decimal.rounding = 4;`
        // `Decimal.rounding = Decimal.ROUND_HALF_UP;`
        rounding: 4,
        // 0 to 8
        // The modulo mode used when calculating the modulus: a mod n.
        // The quotient (q = a / n) is calculated according to the corresponding rounding mode.
        // The remainder (r) is calculated as: r = a - n * q.
        //
        // UP         0 The remainder is positive if the dividend is negative, else is negative.
        // DOWN       1 The remainder has the same sign as the dividend (JavaScript %).
        // FLOOR      3 The remainder has the same sign as the divisor (Python %).
        // HALF_EVEN  6 The IEEE 754 remainder function.
        // EUCLID     9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.
        //
        // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian
        // division (9) are commonly used for the modulus operation. The other rounding modes can also
        // be used, but they may not give useful results.
        modulo: 1,
        // 0 to 9
        // The exponent value at and beneath which `toString` returns exponential notation.
        // JavaScript numbers: -7
        toExpNeg: -7,
        // 0 to -EXP_LIMIT
        // The exponent value at and above which `toString` returns exponential notation.
        // JavaScript numbers: 21
        toExpPos: 21,
        // 0 to EXP_LIMIT
        // The minimum exponent value, beneath which underflow to zero occurs.
        // JavaScript numbers: -324  (5e-324)
        minE: -EXP_LIMIT,
        // -1 to -EXP_LIMIT
        // The maximum exponent value, above which overflow to Infinity occurs.
        // JavaScript numbers: 308  (1.7976931348623157e+308)
        maxE: EXP_LIMIT,
        // 1 to EXP_LIMIT
        // Whether to use cryptographically-secure random number generation, if available.
        crypto: false
        // true/false
      }, Decimal, inexact, noConflict, quadrant, external = true, decimalError = "[DecimalError] ", invalidArgument = decimalError + "Invalid argument: ", precisionLimitExceeded = decimalError + "Precision limit exceeded", cryptoUnavailable = decimalError + "crypto unavailable", tag = "[object Decimal]", mathfloor = Math.floor, mathpow = Math.pow, isBinary = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i, isHex = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i, isOctal = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i, isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, BASE = 1e7, LOG_BASE = 7, MAX_SAFE_INTEGER = 9007199254740991, LN10_PRECISION = LN10.length - 1, PI_PRECISION = PI.length - 1, P = { toStringTag: tag };
      P.absoluteValue = P.abs = function() {
        var x = new this.constructor(this);
        if (x.s < 0) x.s = 1;
        return finalise(x);
      };
      P.ceil = function() {
        return finalise(new this.constructor(this), this.e + 1, 2);
      };
      P.clampedTo = P.clamp = function(min3, max4) {
        var k3, x = this, Ctor = x.constructor;
        min3 = new Ctor(min3);
        max4 = new Ctor(max4);
        if (!min3.s || !max4.s) return new Ctor(NaN);
        if (min3.gt(max4)) throw Error(invalidArgument + max4);
        k3 = x.cmp(min3);
        return k3 < 0 ? min3 : x.cmp(max4) > 0 ? max4 : new Ctor(x);
      };
      P.comparedTo = P.cmp = function(y3) {
        var i5, j, xdL, ydL, x = this, xd = x.d, yd = (y3 = new x.constructor(y3)).d, xs = x.s, ys = y3.s;
        if (!xd || !yd) {
          return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;
        }
        if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0;
        if (xs !== ys) return xs;
        if (x.e !== y3.e) return x.e > y3.e ^ xs < 0 ? 1 : -1;
        xdL = xd.length;
        ydL = yd.length;
        for (i5 = 0, j = xdL < ydL ? xdL : ydL; i5 < j; ++i5) {
          if (xd[i5] !== yd[i5]) return xd[i5] > yd[i5] ^ xs < 0 ? 1 : -1;
        }
        return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;
      };
      P.cosine = P.cos = function() {
        var pr, rm, x = this, Ctor = x.constructor;
        if (!x.d) return new Ctor(NaN);
        if (!x.d[0]) return new Ctor(1);
        pr = Ctor.precision;
        rm = Ctor.rounding;
        Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;
        Ctor.rounding = 1;
        x = cosine(Ctor, toLessThanHalfPi(Ctor, x));
        Ctor.precision = pr;
        Ctor.rounding = rm;
        return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);
      };
      P.cubeRoot = P.cbrt = function() {
        var e4, m3, n6, r4, rep, s4, sd, t4, t32, t3plusx, x = this, Ctor = x.constructor;
        if (!x.isFinite() || x.isZero()) return new Ctor(x);
        external = false;
        s4 = x.s * mathpow(x.s * x, 1 / 3);
        if (!s4 || Math.abs(s4) == 1 / 0) {
          n6 = digitsToString(x.d);
          e4 = x.e;
          if (s4 = (e4 - n6.length + 1) % 3) n6 += s4 == 1 || s4 == -2 ? "0" : "00";
          s4 = mathpow(n6, 1 / 3);
          e4 = mathfloor((e4 + 1) / 3) - (e4 % 3 == (e4 < 0 ? -1 : 2));
          if (s4 == 1 / 0) {
            n6 = "5e" + e4;
          } else {
            n6 = s4.toExponential();
            n6 = n6.slice(0, n6.indexOf("e") + 1) + e4;
          }
          r4 = new Ctor(n6);
          r4.s = x.s;
        } else {
          r4 = new Ctor(s4.toString());
        }
        sd = (e4 = Ctor.precision) + 3;
        for (; ; ) {
          t4 = r4;
          t32 = t4.times(t4).times(t4);
          t3plusx = t32.plus(x);
          r4 = divide(t3plusx.plus(x).times(t4), t3plusx.plus(t32), sd + 2, 1);
          if (digitsToString(t4.d).slice(0, sd) === (n6 = digitsToString(r4.d)).slice(0, sd)) {
            n6 = n6.slice(sd - 3, sd + 1);
            if (n6 == "9999" || !rep && n6 == "4999") {
              if (!rep) {
                finalise(t4, e4 + 1, 0);
                if (t4.times(t4).times(t4).eq(x)) {
                  r4 = t4;
                  break;
                }
              }
              sd += 4;
              rep = 1;
            } else {
              if (!+n6 || !+n6.slice(1) && n6.charAt(0) == "5") {
                finalise(r4, e4 + 1, 1);
                m3 = !r4.times(r4).times(r4).eq(x);
              }
              break;
            }
          }
        }
        external = true;
        return finalise(r4, e4, Ctor.rounding, m3);
      };
      P.decimalPlaces = P.dp = function() {
        var w, d3 = this.d, n6 = NaN;
        if (d3) {
          w = d3.length - 1;
          n6 = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE;
          w = d3[w];
          if (w) for (; w % 10 == 0; w /= 10) n6--;
          if (n6 < 0) n6 = 0;
        }
        return n6;
      };
      P.dividedBy = P.div = function(y3) {
        return divide(this, new this.constructor(y3));
      };
      P.dividedToIntegerBy = P.divToInt = function(y3) {
        var x = this, Ctor = x.constructor;
        return finalise(divide(x, new Ctor(y3), 0, 1, 1), Ctor.precision, Ctor.rounding);
      };
      P.equals = P.eq = function(y3) {
        return this.cmp(y3) === 0;
      };
      P.floor = function() {
        return finalise(new this.constructor(this), this.e + 1, 3);
      };
      P.greaterThan = P.gt = function(y3) {
        return this.cmp(y3) > 0;
      };
      P.greaterThanOrEqualTo = P.gte = function(y3) {
        var k3 = this.cmp(y3);
        return k3 == 1 || k3 === 0;
      };
      P.hyperbolicCosine = P.cosh = function() {
        var k3, n6, pr, rm, len, x = this, Ctor = x.constructor, one = new Ctor(1);
        if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN);
        if (x.isZero()) return one;
        pr = Ctor.precision;
        rm = Ctor.rounding;
        Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;
        Ctor.rounding = 1;
        len = x.d.length;
        if (len < 32) {
          k3 = Math.ceil(len / 3);
          n6 = (1 / tinyPow(4, k3)).toString();
        } else {
          k3 = 16;
          n6 = "2.3283064365386962890625e-10";
        }
        x = taylorSeries(Ctor, 1, x.times(n6), new Ctor(1), true);
        var cosh2_x, i5 = k3, d8 = new Ctor(8);
        for (; i5--; ) {
          cosh2_x = x.times(x);
          x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));
        }
        return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);
      };
      P.hyperbolicSine = P.sinh = function() {
        var k3, pr, rm, len, x = this, Ctor = x.constructor;
        if (!x.isFinite() || x.isZero()) return new Ctor(x);
        pr = Ctor.precision;
        rm = Ctor.rounding;
        Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;
        Ctor.rounding = 1;
        len = x.d.length;
        if (len < 3) {
          x = taylorSeries(Ctor, 2, x, x, true);
        } else {
          k3 = 1.4 * Math.sqrt(len);
          k3 = k3 > 16 ? 16 : k3 | 0;
          x = x.times(1 / tinyPow(5, k3));
          x = taylorSeries(Ctor, 2, x, x, true);
          var sinh2_x, d5 = new Ctor(5), d16 = new Ctor(16), d20 = new Ctor(20);
          for (; k3--; ) {
            sinh2_x = x.times(x);
            x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));
          }
        }
        Ctor.precision = pr;
        Ctor.rounding = rm;
        return finalise(x, pr, rm, true);
      };
      P.hyperbolicTangent = P.tanh = function() {
        var pr, rm, x = this, Ctor = x.constructor;
        if (!x.isFinite()) return new Ctor(x.s);
        if (x.isZero()) return new Ctor(x);
        pr = Ctor.precision;
        rm = Ctor.rounding;
        Ctor.precision = pr + 7;
        Ctor.rounding = 1;
        return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);
      };
      P.inverseCosine = P.acos = function() {
        var x = this, Ctor = x.constructor, k3 = x.abs().cmp(1), pr = Ctor.precision, rm = Ctor.rounding;
        if (k3 !== -1) {
          return k3 === 0 ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0) : new Ctor(NaN);
        }
        if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5);
        Ctor.precision = pr + 6;
        Ctor.rounding = 1;
        x = new Ctor(1).minus(x).div(x.plus(1)).sqrt().atan();
        Ctor.precision = pr;
        Ctor.rounding = rm;
        return x.times(2);
      };
      P.inverseHyperbolicCosine = P.acosh = function() {
        var pr, rm, x = this, Ctor = x.constructor;
        if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN);
        if (!x.isFinite()) return new Ctor(x);
        pr = Ctor.precision;
        rm = Ctor.rounding;
        Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;
        Ctor.rounding = 1;
        external = false;
        x = x.times(x).minus(1).sqrt().plus(x);
        external = true;
        Ctor.precision = pr;
        Ctor.rounding = rm;
        return x.ln();
      };
      P.inverseHyperbolicSine = P.asinh = function() {
        var pr, rm, x = this, Ctor = x.constructor;
        if (!x.isFinite() || x.isZero()) return new Ctor(x);
        pr = Ctor.precision;
        rm = Ctor.rounding;
        Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;
        Ctor.rounding = 1;
        external = false;
        x = x.times(x).plus(1).sqrt().plus(x);
        external = true;
        Ctor.precision = pr;
        Ctor.rounding = rm;
        return x.ln();
      };
      P.inverseHyperbolicTangent = P.atanh = function() {
        var pr, rm, wpr, xsd, x = this, Ctor = x.constructor;
        if (!x.isFinite()) return new Ctor(NaN);
        if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);
        pr = Ctor.precision;
        rm = Ctor.rounding;
        xsd = x.sd();
        if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true);
        Ctor.precision = wpr = xsd - x.e;
        x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);
        Ctor.precision = pr + 4;
        Ctor.rounding = 1;
        x = x.ln();
        Ctor.precision = pr;
        Ctor.rounding = rm;
        return x.times(0.5);
      };
      P.inverseSine = P.asin = function() {
        var halfPi, k3, pr, rm, x = this, Ctor = x.constructor;
        if (x.isZero()) return new Ctor(x);
        k3 = x.abs().cmp(1);
        pr = Ctor.precision;
        rm = Ctor.rounding;
        if (k3 !== -1) {
          if (k3 === 0) {
            halfPi = getPi(Ctor, pr + 4, rm).times(0.5);
            halfPi.s = x.s;
            return halfPi;
          }
          return new Ctor(NaN);
        }
        Ctor.precision = pr + 6;
        Ctor.rounding = 1;
        x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();
        Ctor.precision = pr;
        Ctor.rounding = rm;
        return x.times(2);
      };
      P.inverseTangent = P.atan = function() {
        var i5, j, k3, n6, px2, t4, r4, wpr, x2, x = this, Ctor = x.constructor, pr = Ctor.precision, rm = Ctor.rounding;
        if (!x.isFinite()) {
          if (!x.s) return new Ctor(NaN);
          if (pr + 4 <= PI_PRECISION) {
            r4 = getPi(Ctor, pr + 4, rm).times(0.5);
            r4.s = x.s;
            return r4;
          }
        } else if (x.isZero()) {
          return new Ctor(x);
        } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {
          r4 = getPi(Ctor, pr + 4, rm).times(0.25);
          r4.s = x.s;
          return r4;
        }
        Ctor.precision = wpr = pr + 10;
        Ctor.rounding = 1;
        k3 = Math.min(28, wpr / LOG_BASE + 2 | 0);
        for (i5 = k3; i5; --i5) x = x.div(x.times(x).plus(1).sqrt().plus(1));
        external = false;
        j = Math.ceil(wpr / LOG_BASE);
        n6 = 1;
        x2 = x.times(x);
        r4 = new Ctor(x);
        px2 = x;
        for (; i5 !== -1; ) {
          px2 = px2.times(x2);
          t4 = r4.minus(px2.div(n6 += 2));
          px2 = px2.times(x2);
          r4 = t4.plus(px2.div(n6 += 2));
          if (r4.d[j] !== void 0) for (i5 = j; r4.d[i5] === t4.d[i5] && i5--; ) ;
        }
        if (k3) r4 = r4.times(2 << k3 - 1);
        external = true;
        return finalise(r4, Ctor.precision = pr, Ctor.rounding = rm, true);
      };
      P.isFinite = function() {
        return !!this.d;
      };
      P.isInteger = P.isInt = function() {
        return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;
      };
      P.isNaN = function() {
        return !this.s;
      };
      P.isNegative = P.isNeg = function() {
        return this.s < 0;
      };
      P.isPositive = P.isPos = function() {
        return this.s > 0;
      };
      P.isZero = function() {
        return !!this.d && this.d[0] === 0;
      };
      P.lessThan = P.lt = function(y3) {
        return this.cmp(y3) < 0;
      };
      P.lessThanOrEqualTo = P.lte = function(y3) {
        return this.cmp(y3) < 1;
      };
      P.logarithm = P.log = function(base) {
        var isBase10, d3, denominator, k3, inf, num, sd, r4, arg = this, Ctor = arg.constructor, pr = Ctor.precision, rm = Ctor.rounding, guard = 5;
        if (base == null) {
          base = new Ctor(10);
          isBase10 = true;
        } else {
          base = new Ctor(base);
          d3 = base.d;
          if (base.s < 0 || !d3 || !d3[0] || base.eq(1)) return new Ctor(NaN);
          isBase10 = base.eq(10);
        }
        d3 = arg.d;
        if (arg.s < 0 || !d3 || !d3[0] || arg.eq(1)) {
          return new Ctor(d3 && !d3[0] ? -1 / 0 : arg.s != 1 ? NaN : d3 ? 0 : 1 / 0);
        }
        if (isBase10) {
          if (d3.length > 1) {
            inf = true;
          } else {
            for (k3 = d3[0]; k3 % 10 === 0; ) k3 /= 10;
            inf = k3 !== 1;
          }
        }
        external = false;
        sd = pr + guard;
        num = naturalLogarithm(arg, sd);
        denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);
        r4 = divide(num, denominator, sd, 1);
        if (checkRoundingDigits(r4.d, k3 = pr, rm)) {
          do {
            sd += 10;
            num = naturalLogarithm(arg, sd);
            denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);
            r4 = divide(num, denominator, sd, 1);
            if (!inf) {
              if (+digitsToString(r4.d).slice(k3 + 1, k3 + 15) + 1 == 1e14) {
                r4 = finalise(r4, pr + 1, 0);
              }
              break;
            }
          } while (checkRoundingDigits(r4.d, k3 += 10, rm));
        }
        external = true;
        return finalise(r4, pr, rm);
      };
      P.minus = P.sub = function(y3) {
        var d3, e4, i5, j, k3, len, pr, rm, xd, xe, xLTy, yd, x = this, Ctor = x.constructor;
        y3 = new Ctor(y3);
        if (!x.d || !y3.d) {
          if (!x.s || !y3.s) y3 = new Ctor(NaN);
          else if (x.d) y3.s = -y3.s;
          else y3 = new Ctor(y3.d || x.s !== y3.s ? x : NaN);
          return y3;
        }
        if (x.s != y3.s) {
          y3.s = -y3.s;
          return x.plus(y3);
        }
        xd = x.d;
        yd = y3.d;
        pr = Ctor.precision;
        rm = Ctor.rounding;
        if (!xd[0] || !yd[0]) {
          if (yd[0]) y3.s = -y3.s;
          else if (xd[0]) y3 = new Ctor(x);
          else return new Ctor(rm === 3 ? -0 : 0);
          return external ? finalise(y3, pr, rm) : y3;
        }
        e4 = mathfloor(y3.e / LOG_BASE);
        xe = mathfloor(x.e / LOG_BASE);
        xd = xd.slice();
        k3 = xe - e4;
        if (k3) {
          xLTy = k3 < 0;
          if (xLTy) {
            d3 = xd;
            k3 = -k3;
            len = yd.length;
          } else {
            d3 = yd;
            e4 = xe;
            len = xd.length;
          }
          i5 = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;
          if (k3 > i5) {
            k3 = i5;
            d3.length = 1;
          }
          d3.reverse();
          for (i5 = k3; i5--; ) d3.push(0);
          d3.reverse();
        } else {
          i5 = xd.length;
          len = yd.length;
          xLTy = i5 < len;
          if (xLTy) len = i5;
          for (i5 = 0; i5 < len; i5++) {
            if (xd[i5] != yd[i5]) {
              xLTy = xd[i5] < yd[i5];
              break;
            }
          }
          k3 = 0;
        }
        if (xLTy) {
          d3 = xd;
          xd = yd;
          yd = d3;
          y3.s = -y3.s;
        }
        len = xd.length;
        for (i5 = yd.length - len; i5 > 0; --i5) xd[len++] = 0;
        for (i5 = yd.length; i5 > k3; ) {
          if (xd[--i5] < yd[i5]) {
            for (j = i5; j && xd[--j] === 0; ) xd[j] = BASE - 1;
            --xd[j];
            xd[i5] += BASE;
          }
          xd[i5] -= yd[i5];
        }
        for (; xd[--len] === 0; ) xd.pop();
        for (; xd[0] === 0; xd.shift()) --e4;
        if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0);
        y3.d = xd;
        y3.e = getBase10Exponent(xd, e4);
        return external ? finalise(y3, pr, rm) : y3;
      };
      P.modulo = P.mod = function(y3) {
        var q, x = this, Ctor = x.constructor;
        y3 = new Ctor(y3);
        if (!x.d || !y3.s || y3.d && !y3.d[0]) return new Ctor(NaN);
        if (!y3.d || x.d && !x.d[0]) {
          return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);
        }
        external = false;
        if (Ctor.modulo == 9) {
          q = divide(x, y3.abs(), 0, 3, 1);
          q.s *= y3.s;
        } else {
          q = divide(x, y3, 0, Ctor.modulo, 1);
        }
        q = q.times(y3);
        external = true;
        return x.minus(q);
      };
      P.naturalExponential = P.exp = function() {
        return naturalExponential(this);
      };
      P.naturalLogarithm = P.ln = function() {
        return naturalLogarithm(this);
      };
      P.negated = P.neg = function() {
        var x = new this.constructor(this);
        x.s = -x.s;
        return finalise(x);
      };
      P.plus = P.add = function(y3) {
        var carry, d3, e4, i5, k3, len, pr, rm, xd, yd, x = this, Ctor = x.constructor;
        y3 = new Ctor(y3);
        if (!x.d || !y3.d) {
          if (!x.s || !y3.s) y3 = new Ctor(NaN);
          else if (!x.d) y3 = new Ctor(y3.d || x.s === y3.s ? x : NaN);
          return y3;
        }
        if (x.s != y3.s) {
          y3.s = -y3.s;
          return x.minus(y3);
        }
        xd = x.d;
        yd = y3.d;
        pr = Ctor.precision;
        rm = Ctor.rounding;
        if (!xd[0] || !yd[0]) {
          if (!yd[0]) y3 = new Ctor(x);
          return external ? finalise(y3, pr, rm) : y3;
        }
        k3 = mathfloor(x.e / LOG_BASE);
        e4 = mathfloor(y3.e / LOG_BASE);
        xd = xd.slice();
        i5 = k3 - e4;
        if (i5) {
          if (i5 < 0) {
            d3 = xd;
            i5 = -i5;
            len = yd.length;
          } else {
            d3 = yd;
            e4 = k3;
            len = xd.length;
          }
          k3 = Math.ceil(pr / LOG_BASE);
          len = k3 > len ? k3 + 1 : len + 1;
          if (i5 > len) {
            i5 = len;
            d3.length = 1;
          }
          d3.reverse();
          for (; i5--; ) d3.push(0);
          d3.reverse();
        }
        len = xd.length;
        i5 = yd.length;
        if (len - i5 < 0) {
          i5 = len;
          d3 = yd;
          yd = xd;
          xd = d3;
        }
        for (carry = 0; i5; ) {
          carry = (xd[--i5] = xd[i5] + yd[i5] + carry) / BASE | 0;
          xd[i5] %= BASE;
        }
        if (carry) {
          xd.unshift(carry);
          ++e4;
        }
        for (len = xd.length; xd[--len] == 0; ) xd.pop();
        y3.d = xd;
        y3.e = getBase10Exponent(xd, e4);
        return external ? finalise(y3, pr, rm) : y3;
      };
      P.precision = P.sd = function(z) {
        var k3, x = this;
        if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);
        if (x.d) {
          k3 = getPrecision(x.d);
          if (z && x.e + 1 > k3) k3 = x.e + 1;
        } else {
          k3 = NaN;
        }
        return k3;
      };
      P.round = function() {
        var x = this, Ctor = x.constructor;
        return finalise(new Ctor(x), x.e + 1, Ctor.rounding);
      };
      P.sine = P.sin = function() {
        var pr, rm, x = this, Ctor = x.constructor;
        if (!x.isFinite()) return new Ctor(NaN);
        if (x.isZero()) return new Ctor(x);
        pr = Ctor.precision;
        rm = Ctor.rounding;
        Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;
        Ctor.rounding = 1;
        x = sine(Ctor, toLessThanHalfPi(Ctor, x));
        Ctor.precision = pr;
        Ctor.rounding = rm;
        return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);
      };
      P.squareRoot = P.sqrt = function() {
        var m3, n6, sd, r4, rep, t4, x = this, d3 = x.d, e4 = x.e, s4 = x.s, Ctor = x.constructor;
        if (s4 !== 1 || !d3 || !d3[0]) {
          return new Ctor(!s4 || s4 < 0 && (!d3 || d3[0]) ? NaN : d3 ? x : 1 / 0);
        }
        external = false;
        s4 = Math.sqrt(+x);
        if (s4 == 0 || s4 == 1 / 0) {
          n6 = digitsToString(d3);
          if ((n6.length + e4) % 2 == 0) n6 += "0";
          s4 = Math.sqrt(n6);
          e4 = mathfloor((e4 + 1) / 2) - (e4 < 0 || e4 % 2);
          if (s4 == 1 / 0) {
            n6 = "5e" + e4;
          } else {
            n6 = s4.toExponential();
            n6 = n6.slice(0, n6.indexOf("e") + 1) + e4;
          }
          r4 = new Ctor(n6);
        } else {
          r4 = new Ctor(s4.toString());
        }
        sd = (e4 = Ctor.precision) + 3;
        for (; ; ) {
          t4 = r4;
          r4 = t4.plus(divide(x, t4, sd + 2, 1)).times(0.5);
          if (digitsToString(t4.d).slice(0, sd) === (n6 = digitsToString(r4.d)).slice(0, sd)) {
            n6 = n6.slice(sd - 3, sd + 1);
            if (n6 == "9999" || !rep && n6 == "4999") {
              if (!rep) {
                finalise(t4, e4 + 1, 0);
                if (t4.times(t4).eq(x)) {
                  r4 = t4;
                  break;
                }
              }
              sd += 4;
              rep = 1;
            } else {
              if (!+n6 || !+n6.slice(1) && n6.charAt(0) == "5") {
                finalise(r4, e4 + 1, 1);
                m3 = !r4.times(r4).eq(x);
              }
              break;
            }
          }
        }
        external = true;
        return finalise(r4, e4, Ctor.rounding, m3);
      };
      P.tangent = P.tan = function() {
        var pr, rm, x = this, Ctor = x.constructor;
        if (!x.isFinite()) return new Ctor(NaN);
        if (x.isZero()) return new Ctor(x);
        pr = Ctor.precision;
        rm = Ctor.rounding;
        Ctor.precision = pr + 10;
        Ctor.rounding = 1;
        x = x.sin();
        x.s = 1;
        x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);
        Ctor.precision = pr;
        Ctor.rounding = rm;
        return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);
      };
      P.times = P.mul = function(y3) {
        var carry, e4, i5, k3, r4, rL, t4, xdL, ydL, x = this, Ctor = x.constructor, xd = x.d, yd = (y3 = new Ctor(y3)).d;
        y3.s *= x.s;
        if (!xd || !xd[0] || !yd || !yd[0]) {
          return new Ctor(!y3.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd ? NaN : !xd || !yd ? y3.s / 0 : y3.s * 0);
        }
        e4 = mathfloor(x.e / LOG_BASE) + mathfloor(y3.e / LOG_BASE);
        xdL = xd.length;
        ydL = yd.length;
        if (xdL < ydL) {
          r4 = xd;
          xd = yd;
          yd = r4;
          rL = xdL;
          xdL = ydL;
          ydL = rL;
        }
        r4 = [];
        rL = xdL + ydL;
        for (i5 = rL; i5--; ) r4.push(0);
        for (i5 = ydL; --i5 >= 0; ) {
          carry = 0;
          for (k3 = xdL + i5; k3 > i5; ) {
            t4 = r4[k3] + yd[i5] * xd[k3 - i5 - 1] + carry;
            r4[k3--] = t4 % BASE | 0;
            carry = t4 / BASE | 0;
          }
          r4[k3] = (r4[k3] + carry) % BASE | 0;
        }
        for (; !r4[--rL]; ) r4.pop();
        if (carry) ++e4;
        else r4.shift();
        y3.d = r4;
        y3.e = getBase10Exponent(r4, e4);
        return external ? finalise(y3, Ctor.precision, Ctor.rounding) : y3;
      };
      P.toBinary = function(sd, rm) {
        return toStringBinary(this, 2, sd, rm);
      };
      P.toDecimalPlaces = P.toDP = function(dp, rm) {
        var x = this, Ctor = x.constructor;
        x = new Ctor(x);
        if (dp === void 0) return x;
        checkInt32(dp, 0, MAX_DIGITS);
        if (rm === void 0) rm = Ctor.rounding;
        else checkInt32(rm, 0, 8);
        return finalise(x, dp + x.e + 1, rm);
      };
      P.toExponential = function(dp, rm) {
        var str, x = this, Ctor = x.constructor;
        if (dp === void 0) {
          str = finiteToString(x, true);
        } else {
          checkInt32(dp, 0, MAX_DIGITS);
          if (rm === void 0) rm = Ctor.rounding;
          else checkInt32(rm, 0, 8);
          x = finalise(new Ctor(x), dp + 1, rm);
          str = finiteToString(x, true, dp + 1);
        }
        return x.isNeg() && !x.isZero() ? "-" + str : str;
      };
      P.toFixed = function(dp, rm) {
        var str, y3, x = this, Ctor = x.constructor;
        if (dp === void 0) {
          str = finiteToString(x);
        } else {
          checkInt32(dp, 0, MAX_DIGITS);
          if (rm === void 0) rm = Ctor.rounding;
          else checkInt32(rm, 0, 8);
          y3 = finalise(new Ctor(x), dp + x.e + 1, rm);
          str = finiteToString(y3, false, dp + y3.e + 1);
        }
        return x.isNeg() && !x.isZero() ? "-" + str : str;
      };
      P.toFraction = function(maxD) {
        var d3, d0, d1, d22, e4, k3, n6, n0, n1, pr, q, r4, x = this, xd = x.d, Ctor = x.constructor;
        if (!xd) return new Ctor(x);
        n1 = d0 = new Ctor(1);
        d1 = n0 = new Ctor(0);
        d3 = new Ctor(d1);
        e4 = d3.e = getPrecision(xd) - x.e - 1;
        k3 = e4 % LOG_BASE;
        d3.d[0] = mathpow(10, k3 < 0 ? LOG_BASE + k3 : k3);
        if (maxD == null) {
          maxD = e4 > 0 ? d3 : n1;
        } else {
          n6 = new Ctor(maxD);
          if (!n6.isInt() || n6.lt(n1)) throw Error(invalidArgument + n6);
          maxD = n6.gt(d3) ? e4 > 0 ? d3 : n1 : n6;
        }
        external = false;
        n6 = new Ctor(digitsToString(xd));
        pr = Ctor.precision;
        Ctor.precision = e4 = xd.length * LOG_BASE * 2;
        for (; ; ) {
          q = divide(n6, d3, 0, 1, 1);
          d22 = d0.plus(q.times(d1));
          if (d22.cmp(maxD) == 1) break;
          d0 = d1;
          d1 = d22;
          d22 = n1;
          n1 = n0.plus(q.times(d22));
          n0 = d22;
          d22 = d3;
          d3 = n6.minus(q.times(d22));
          n6 = d22;
        }
        d22 = divide(maxD.minus(d0), d1, 0, 1, 1);
        n0 = n0.plus(d22.times(n1));
        d0 = d0.plus(d22.times(d1));
        n0.s = n1.s = x.s;
        r4 = divide(n1, d1, e4, 1).minus(x).abs().cmp(divide(n0, d0, e4, 1).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];
        Ctor.precision = pr;
        external = true;
        return r4;
      };
      P.toHexadecimal = P.toHex = function(sd, rm) {
        return toStringBinary(this, 16, sd, rm);
      };
      P.toNearest = function(y3, rm) {
        var x = this, Ctor = x.constructor;
        x = new Ctor(x);
        if (y3 == null) {
          if (!x.d) return x;
          y3 = new Ctor(1);
          rm = Ctor.rounding;
        } else {
          y3 = new Ctor(y3);
          if (rm === void 0) {
            rm = Ctor.rounding;
          } else {
            checkInt32(rm, 0, 8);
          }
          if (!x.d) return y3.s ? x : y3;
          if (!y3.d) {
            if (y3.s) y3.s = x.s;
            return y3;
          }
        }
        if (y3.d[0]) {
          external = false;
          x = divide(x, y3, 0, rm, 1).times(y3);
          external = true;
          finalise(x);
        } else {
          y3.s = x.s;
          x = y3;
        }
        return x;
      };
      P.toNumber = function() {
        return +this;
      };
      P.toOctal = function(sd, rm) {
        return toStringBinary(this, 8, sd, rm);
      };
      P.toPower = P.pow = function(y3) {
        var e4, k3, pr, r4, rm, s4, x = this, Ctor = x.constructor, yn = +(y3 = new Ctor(y3));
        if (!x.d || !y3.d || !x.d[0] || !y3.d[0]) return new Ctor(mathpow(+x, yn));
        x = new Ctor(x);
        if (x.eq(1)) return x;
        pr = Ctor.precision;
        rm = Ctor.rounding;
        if (y3.eq(1)) return finalise(x, pr, rm);
        e4 = mathfloor(y3.e / LOG_BASE);
        if (e4 >= y3.d.length - 1 && (k3 = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {
          r4 = intPow(Ctor, x, k3, pr);
          return y3.s < 0 ? new Ctor(1).div(r4) : finalise(r4, pr, rm);
        }
        s4 = x.s;
        if (s4 < 0) {
          if (e4 < y3.d.length - 1) return new Ctor(NaN);
          if ((y3.d[e4] & 1) == 0) s4 = 1;
          if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {
            x.s = s4;
            return x;
          }
        }
        k3 = mathpow(+x, yn);
        e4 = k3 == 0 || !isFinite(k3) ? mathfloor(yn * (Math.log("0." + digitsToString(x.d)) / Math.LN10 + x.e + 1)) : new Ctor(k3 + "").e;
        if (e4 > Ctor.maxE + 1 || e4 < Ctor.minE - 1) return new Ctor(e4 > 0 ? s4 / 0 : 0);
        external = false;
        Ctor.rounding = x.s = 1;
        k3 = Math.min(12, (e4 + "").length);
        r4 = naturalExponential(y3.times(naturalLogarithm(x, pr + k3)), pr);
        if (r4.d) {
          r4 = finalise(r4, pr + 5, 1);
          if (checkRoundingDigits(r4.d, pr, rm)) {
            e4 = pr + 10;
            r4 = finalise(naturalExponential(y3.times(naturalLogarithm(x, e4 + k3)), e4), e4 + 5, 1);
            if (+digitsToString(r4.d).slice(pr + 1, pr + 15) + 1 == 1e14) {
              r4 = finalise(r4, pr + 1, 0);
            }
          }
        }
        r4.s = s4;
        external = true;
        Ctor.rounding = rm;
        return finalise(r4, pr, rm);
      };
      P.toPrecision = function(sd, rm) {
        var str, x = this, Ctor = x.constructor;
        if (sd === void 0) {
          str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);
        } else {
          checkInt32(sd, 1, MAX_DIGITS);
          if (rm === void 0) rm = Ctor.rounding;
          else checkInt32(rm, 0, 8);
          x = finalise(new Ctor(x), sd, rm);
          str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);
        }
        return x.isNeg() && !x.isZero() ? "-" + str : str;
      };
      P.toSignificantDigits = P.toSD = function(sd, rm) {
        var x = this, Ctor = x.constructor;
        if (sd === void 0) {
          sd = Ctor.precision;
          rm = Ctor.rounding;
        } else {
          checkInt32(sd, 1, MAX_DIGITS);
          if (rm === void 0) rm = Ctor.rounding;
          else checkInt32(rm, 0, 8);
        }
        return finalise(new Ctor(x), sd, rm);
      };
      P.toString = function() {
        var x = this, Ctor = x.constructor, str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);
        return x.isNeg() && !x.isZero() ? "-" + str : str;
      };
      P.truncated = P.trunc = function() {
        return finalise(new this.constructor(this), this.e + 1, 1);
      };
      P.valueOf = P.toJSON = function() {
        var x = this, Ctor = x.constructor, str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);
        return x.isNeg() ? "-" + str : str;
      };
      function digitsToString(d3) {
        var i5, k3, ws, indexOfLastWord = d3.length - 1, str = "", w = d3[0];
        if (indexOfLastWord > 0) {
          str += w;
          for (i5 = 1; i5 < indexOfLastWord; i5++) {
            ws = d3[i5] + "";
            k3 = LOG_BASE - ws.length;
            if (k3) str += getZeroString(k3);
            str += ws;
          }
          w = d3[i5];
          ws = w + "";
          k3 = LOG_BASE - ws.length;
          if (k3) str += getZeroString(k3);
        } else if (w === 0) {
          return "0";
        }
        for (; w % 10 === 0; ) w /= 10;
        return str + w;
      }
      function checkInt32(i5, min3, max4) {
        if (i5 !== ~~i5 || i5 < min3 || i5 > max4) {
          throw Error(invalidArgument + i5);
        }
      }
      function checkRoundingDigits(d3, i5, rm, repeating) {
        var di, k3, r4, rd;
        for (k3 = d3[0]; k3 >= 10; k3 /= 10) --i5;
        if (--i5 < 0) {
          i5 += LOG_BASE;
          di = 0;
        } else {
          di = Math.ceil((i5 + 1) / LOG_BASE);
          i5 %= LOG_BASE;
        }
        k3 = mathpow(10, LOG_BASE - i5);
        rd = d3[di] % k3 | 0;
        if (repeating == null) {
          if (i5 < 3) {
            if (i5 == 0) rd = rd / 100 | 0;
            else if (i5 == 1) rd = rd / 10 | 0;
            r4 = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 5e4 || rd == 0;
          } else {
            r4 = (rm < 4 && rd + 1 == k3 || rm > 3 && rd + 1 == k3 / 2) && (d3[di + 1] / k3 / 100 | 0) == mathpow(10, i5 - 2) - 1 || (rd == k3 / 2 || rd == 0) && (d3[di + 1] / k3 / 100 | 0) == 0;
          }
        } else {
          if (i5 < 4) {
            if (i5 == 0) rd = rd / 1e3 | 0;
            else if (i5 == 1) rd = rd / 100 | 0;
            else if (i5 == 2) rd = rd / 10 | 0;
            r4 = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;
          } else {
            r4 = ((repeating || rm < 4) && rd + 1 == k3 || !repeating && rm > 3 && rd + 1 == k3 / 2) && (d3[di + 1] / k3 / 1e3 | 0) == mathpow(10, i5 - 3) - 1;
          }
        }
        return r4;
      }
      function convertBase(str, baseIn, baseOut) {
        var j, arr = [0], arrL, i5 = 0, strL = str.length;
        for (; i5 < strL; ) {
          for (arrL = arr.length; arrL--; ) arr[arrL] *= baseIn;
          arr[0] += NUMERALS.indexOf(str.charAt(i5++));
          for (j = 0; j < arr.length; j++) {
            if (arr[j] > baseOut - 1) {
              if (arr[j + 1] === void 0) arr[j + 1] = 0;
              arr[j + 1] += arr[j] / baseOut | 0;
              arr[j] %= baseOut;
            }
          }
        }
        return arr.reverse();
      }
      function cosine(Ctor, x) {
        var k3, len, y3;
        if (x.isZero()) return x;
        len = x.d.length;
        if (len < 32) {
          k3 = Math.ceil(len / 3);
          y3 = (1 / tinyPow(4, k3)).toString();
        } else {
          k3 = 16;
          y3 = "2.3283064365386962890625e-10";
        }
        Ctor.precision += k3;
        x = taylorSeries(Ctor, 1, x.times(y3), new Ctor(1));
        for (var i5 = k3; i5--; ) {
          var cos2x = x.times(x);
          x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);
        }
        Ctor.precision -= k3;
        return x;
      }
      var divide = /* @__PURE__ */ (function() {
        function multiplyInteger(x, k3, base) {
          var temp, carry = 0, i5 = x.length;
          for (x = x.slice(); i5--; ) {
            temp = x[i5] * k3 + carry;
            x[i5] = temp % base | 0;
            carry = temp / base | 0;
          }
          if (carry) x.unshift(carry);
          return x;
        }
        function compare(a5, b3, aL, bL) {
          var i5, r4;
          if (aL != bL) {
            r4 = aL > bL ? 1 : -1;
          } else {
            for (i5 = r4 = 0; i5 < aL; i5++) {
              if (a5[i5] != b3[i5]) {
                r4 = a5[i5] > b3[i5] ? 1 : -1;
                break;
              }
            }
          }
          return r4;
        }
        function subtract2(a5, b3, aL, base) {
          var i5 = 0;
          for (; aL--; ) {
            a5[aL] -= i5;
            i5 = a5[aL] < b3[aL] ? 1 : 0;
            a5[aL] = i5 * base + a5[aL] - b3[aL];
          }
          for (; !a5[0] && a5.length > 1; ) a5.shift();
        }
        return function(x, y3, pr, rm, dp, base) {
          var cmp, e4, i5, k3, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t4, xi, xL, yd0, yL, yz, Ctor = x.constructor, sign2 = x.s == y3.s ? 1 : -1, xd = x.d, yd = y3.d;
          if (!xd || !xd[0] || !yd || !yd[0]) {
            return new Ctor(
              // Return NaN if either NaN, or both Infinity or 0.
              !x.s || !y3.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN : (
                // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.
                xd && xd[0] == 0 || !yd ? sign2 * 0 : sign2 / 0
              )
            );
          }
          if (base) {
            logBase = 1;
            e4 = x.e - y3.e;
          } else {
            base = BASE;
            logBase = LOG_BASE;
            e4 = mathfloor(x.e / logBase) - mathfloor(y3.e / logBase);
          }
          yL = yd.length;
          xL = xd.length;
          q = new Ctor(sign2);
          qd = q.d = [];
          for (i5 = 0; yd[i5] == (xd[i5] || 0); i5++) ;
          if (yd[i5] > (xd[i5] || 0)) e4--;
          if (pr == null) {
            sd = pr = Ctor.precision;
            rm = Ctor.rounding;
          } else if (dp) {
            sd = pr + (x.e - y3.e) + 1;
          } else {
            sd = pr;
          }
          if (sd < 0) {
            qd.push(1);
            more = true;
          } else {
            sd = sd / logBase + 2 | 0;
            i5 = 0;
            if (yL == 1) {
              k3 = 0;
              yd = yd[0];
              sd++;
              for (; (i5 < xL || k3) && sd--; i5++) {
                t4 = k3 * base + (xd[i5] || 0);
                qd[i5] = t4 / yd | 0;
                k3 = t4 % yd | 0;
              }
              more = k3 || i5 < xL;
            } else {
              k3 = base / (yd[0] + 1) | 0;
              if (k3 > 1) {
                yd = multiplyInteger(yd, k3, base);
                xd = multiplyInteger(xd, k3, base);
                yL = yd.length;
                xL = xd.length;
              }
              xi = yL;
              rem = xd.slice(0, yL);
              remL = rem.length;
              for (; remL < yL; ) rem[remL++] = 0;
              yz = yd.slice();
              yz.unshift(0);
              yd0 = yd[0];
              if (yd[1] >= base / 2) ++yd0;
              do {
                k3 = 0;
                cmp = compare(yd, rem, yL, remL);
                if (cmp < 0) {
                  rem0 = rem[0];
                  if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);
                  k3 = rem0 / yd0 | 0;
                  if (k3 > 1) {
                    if (k3 >= base) k3 = base - 1;
                    prod = multiplyInteger(yd, k3, base);
                    prodL = prod.length;
                    remL = rem.length;
                    cmp = compare(prod, rem, prodL, remL);
                    if (cmp == 1) {
                      k3--;
                      subtract2(prod, yL < prodL ? yz : yd, prodL, base);
                    }
                  } else {
                    if (k3 == 0) cmp = k3 = 1;
                    prod = yd.slice();
                  }
                  prodL = prod.length;
                  if (prodL < remL) prod.unshift(0);
                  subtract2(rem, prod, remL, base);
                  if (cmp == -1) {
                    remL = rem.length;
                    cmp = compare(yd, rem, yL, remL);
                    if (cmp < 1) {
                      k3++;
                      subtract2(rem, yL < remL ? yz : yd, remL, base);
                    }
                  }
                  remL = rem.length;
                } else if (cmp === 0) {
                  k3++;
                  rem = [0];
                }
                qd[i5++] = k3;
                if (cmp && rem[0]) {
                  rem[remL++] = xd[xi] || 0;
                } else {
                  rem = [xd[xi]];
                  remL = 1;
                }
              } while ((xi++ < xL || rem[0] !== void 0) && sd--);
              more = rem[0] !== void 0;
            }
            if (!qd[0]) qd.shift();
          }
          if (logBase == 1) {
            q.e = e4;
            inexact = more;
          } else {
            for (i5 = 1, k3 = qd[0]; k3 >= 10; k3 /= 10) i5++;
            q.e = i5 + e4 * logBase - 1;
            finalise(q, dp ? pr + q.e + 1 : pr, rm, more);
          }
          return q;
        };
      })();
      function finalise(x, sd, rm, isTruncated) {
        var digits2, i5, j, k3, rd, roundUp, w, xd, xdi, Ctor = x.constructor;
        out: if (sd != null) {
          xd = x.d;
          if (!xd) return x;
          for (digits2 = 1, k3 = xd[0]; k3 >= 10; k3 /= 10) digits2++;
          i5 = sd - digits2;
          if (i5 < 0) {
            i5 += LOG_BASE;
            j = sd;
            w = xd[xdi = 0];
            rd = w / mathpow(10, digits2 - j - 1) % 10 | 0;
          } else {
            xdi = Math.ceil((i5 + 1) / LOG_BASE);
            k3 = xd.length;
            if (xdi >= k3) {
              if (isTruncated) {
                for (; k3++ <= xdi; ) xd.push(0);
                w = rd = 0;
                digits2 = 1;
                i5 %= LOG_BASE;
                j = i5 - LOG_BASE + 1;
              } else {
                break out;
              }
            } else {
              w = k3 = xd[xdi];
              for (digits2 = 1; k3 >= 10; k3 /= 10) digits2++;
              i5 %= LOG_BASE;
              j = i5 - LOG_BASE + digits2;
              rd = j < 0 ? 0 : w / mathpow(10, digits2 - j - 1) % 10 | 0;
            }
          }
          isTruncated = isTruncated || sd < 0 || xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits2 - j - 1));
          roundUp = rm < 4 ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 && // Check whether the digit to the left of the rounding digit is odd.
          (i5 > 0 ? j > 0 ? w / mathpow(10, digits2 - j) : 0 : xd[xdi - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7));
          if (sd < 1 || !xd[0]) {
            xd.length = 0;
            if (roundUp) {
              sd -= x.e + 1;
              xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);
              x.e = -sd || 0;
            } else {
              xd[0] = x.e = 0;
            }
            return x;
          }
          if (i5 == 0) {
            xd.length = xdi;
            k3 = 1;
            xdi--;
          } else {
            xd.length = xdi + 1;
            k3 = mathpow(10, LOG_BASE - i5);
            xd[xdi] = j > 0 ? (w / mathpow(10, digits2 - j) % mathpow(10, j) | 0) * k3 : 0;
          }
          if (roundUp) {
            for (; ; ) {
              if (xdi == 0) {
                for (i5 = 1, j = xd[0]; j >= 10; j /= 10) i5++;
                j = xd[0] += k3;
                for (k3 = 1; j >= 10; j /= 10) k3++;
                if (i5 != k3) {
                  x.e++;
                  if (xd[0] == BASE) xd[0] = 1;
                }
                break;
              } else {
                xd[xdi] += k3;
                if (xd[xdi] != BASE) break;
                xd[xdi--] = 0;
                k3 = 1;
              }
            }
          }
          for (i5 = xd.length; xd[--i5] === 0; ) xd.pop();
        }
        if (external) {
          if (x.e > Ctor.maxE) {
            x.d = null;
            x.e = NaN;
          } else if (x.e < Ctor.minE) {
            x.e = 0;
            x.d = [0];
          }
        }
        return x;
      }
      function finiteToString(x, isExp, sd) {
        if (!x.isFinite()) return nonFiniteToString(x);
        var k3, e4 = x.e, str = digitsToString(x.d), len = str.length;
        if (isExp) {
          if (sd && (k3 = sd - len) > 0) {
            str = str.charAt(0) + "." + str.slice(1) + getZeroString(k3);
          } else if (len > 1) {
            str = str.charAt(0) + "." + str.slice(1);
          }
          str = str + (x.e < 0 ? "e" : "e+") + x.e;
        } else if (e4 < 0) {
          str = "0." + getZeroString(-e4 - 1) + str;
          if (sd && (k3 = sd - len) > 0) str += getZeroString(k3);
        } else if (e4 >= len) {
          str += getZeroString(e4 + 1 - len);
          if (sd && (k3 = sd - e4 - 1) > 0) str = str + "." + getZeroString(k3);
        } else {
          if ((k3 = e4 + 1) < len) str = str.slice(0, k3) + "." + str.slice(k3);
          if (sd && (k3 = sd - len) > 0) {
            if (e4 + 1 === len) str += ".";
            str += getZeroString(k3);
          }
        }
        return str;
      }
      function getBase10Exponent(digits2, e4) {
        var w = digits2[0];
        for (e4 *= LOG_BASE; w >= 10; w /= 10) e4++;
        return e4;
      }
      function getLn10(Ctor, sd, pr) {
        if (sd > LN10_PRECISION) {
          external = true;
          if (pr) Ctor.precision = pr;
          throw Error(precisionLimitExceeded);
        }
        return finalise(new Ctor(LN10), sd, 1, true);
      }
      function getPi(Ctor, sd, rm) {
        if (sd > PI_PRECISION) throw Error(precisionLimitExceeded);
        return finalise(new Ctor(PI), sd, rm, true);
      }
      function getPrecision(digits2) {
        var w = digits2.length - 1, len = w * LOG_BASE + 1;
        w = digits2[w];
        if (w) {
          for (; w % 10 == 0; w /= 10) len--;
          for (w = digits2[0]; w >= 10; w /= 10) len++;
        }
        return len;
      }
      function getZeroString(k3) {
        var zs = "";
        for (; k3--; ) zs += "0";
        return zs;
      }
      function intPow(Ctor, x, n6, pr) {
        var isTruncated, r4 = new Ctor(1), k3 = Math.ceil(pr / LOG_BASE + 4);
        external = false;
        for (; ; ) {
          if (n6 % 2) {
            r4 = r4.times(x);
            if (truncate2(r4.d, k3)) isTruncated = true;
          }
          n6 = mathfloor(n6 / 2);
          if (n6 === 0) {
            n6 = r4.d.length - 1;
            if (isTruncated && r4.d[n6] === 0) ++r4.d[n6];
            break;
          }
          x = x.times(x);
          truncate2(x.d, k3);
        }
        external = true;
        return r4;
      }
      function isOdd(n6) {
        return n6.d[n6.d.length - 1] & 1;
      }
      function maxOrMin(Ctor, args, n6) {
        var k3, y3, x = new Ctor(args[0]), i5 = 0;
        for (; ++i5 < args.length; ) {
          y3 = new Ctor(args[i5]);
          if (!y3.s) {
            x = y3;
            break;
          }
          k3 = x.cmp(y3);
          if (k3 === n6 || k3 === 0 && x.s === n6) {
            x = y3;
          }
        }
        return x;
      }
      function naturalExponential(x, sd) {
        var denominator, guard, j, pow2, sum2, t4, wpr, rep = 0, i5 = 0, k3 = 0, Ctor = x.constructor, rm = Ctor.rounding, pr = Ctor.precision;
        if (!x.d || !x.d[0] || x.e > 17) {
          return new Ctor(x.d ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0 : x.s ? x.s < 0 ? 0 : x : 0 / 0);
        }
        if (sd == null) {
          external = false;
          wpr = pr;
        } else {
          wpr = sd;
        }
        t4 = new Ctor(0.03125);
        while (x.e > -2) {
          x = x.times(t4);
          k3 += 5;
        }
        guard = Math.log(mathpow(2, k3)) / Math.LN10 * 2 + 5 | 0;
        wpr += guard;
        denominator = pow2 = sum2 = new Ctor(1);
        Ctor.precision = wpr;
        for (; ; ) {
          pow2 = finalise(pow2.times(x), wpr, 1);
          denominator = denominator.times(++i5);
          t4 = sum2.plus(divide(pow2, denominator, wpr, 1));
          if (digitsToString(t4.d).slice(0, wpr) === digitsToString(sum2.d).slice(0, wpr)) {
            j = k3;
            while (j--) sum2 = finalise(sum2.times(sum2), wpr, 1);
            if (sd == null) {
              if (rep < 3 && checkRoundingDigits(sum2.d, wpr - guard, rm, rep)) {
                Ctor.precision = wpr += 10;
                denominator = pow2 = t4 = new Ctor(1);
                i5 = 0;
                rep++;
              } else {
                return finalise(sum2, Ctor.precision = pr, rm, external = true);
              }
            } else {
              Ctor.precision = pr;
              return sum2;
            }
          }
          sum2 = t4;
        }
      }
      function naturalLogarithm(y3, sd) {
        var c6, c0, denominator, e4, numerator, rep, sum2, t4, wpr, x1, x2, n6 = 1, guard = 10, x = y3, xd = x.d, Ctor = x.constructor, rm = Ctor.rounding, pr = Ctor.precision;
        if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {
          return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);
        }
        if (sd == null) {
          external = false;
          wpr = pr;
        } else {
          wpr = sd;
        }
        Ctor.precision = wpr += guard;
        c6 = digitsToString(xd);
        c0 = c6.charAt(0);
        if (Math.abs(e4 = x.e) < 15e14) {
          while (c0 < 7 && c0 != 1 || c0 == 1 && c6.charAt(1) > 3) {
            x = x.times(y3);
            c6 = digitsToString(x.d);
            c0 = c6.charAt(0);
            n6++;
          }
          e4 = x.e;
          if (c0 > 1) {
            x = new Ctor("0." + c6);
            e4++;
          } else {
            x = new Ctor(c0 + "." + c6.slice(1));
          }
        } else {
          t4 = getLn10(Ctor, wpr + 2, pr).times(e4 + "");
          x = naturalLogarithm(new Ctor(c0 + "." + c6.slice(1)), wpr - guard).plus(t4);
          Ctor.precision = pr;
          return sd == null ? finalise(x, pr, rm, external = true) : x;
        }
        x1 = x;
        sum2 = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);
        x2 = finalise(x.times(x), wpr, 1);
        denominator = 3;
        for (; ; ) {
          numerator = finalise(numerator.times(x2), wpr, 1);
          t4 = sum2.plus(divide(numerator, new Ctor(denominator), wpr, 1));
          if (digitsToString(t4.d).slice(0, wpr) === digitsToString(sum2.d).slice(0, wpr)) {
            sum2 = sum2.times(2);
            if (e4 !== 0) sum2 = sum2.plus(getLn10(Ctor, wpr + 2, pr).times(e4 + ""));
            sum2 = divide(sum2, new Ctor(n6), wpr, 1);
            if (sd == null) {
              if (checkRoundingDigits(sum2.d, wpr - guard, rm, rep)) {
                Ctor.precision = wpr += guard;
                t4 = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);
                x2 = finalise(x.times(x), wpr, 1);
                denominator = rep = 1;
              } else {
                return finalise(sum2, Ctor.precision = pr, rm, external = true);
              }
            } else {
              Ctor.precision = pr;
              return sum2;
            }
          }
          sum2 = t4;
          denominator += 2;
        }
      }
      function nonFiniteToString(x) {
        return String(x.s * x.s / 0);
      }
      function parseDecimal(x, str) {
        var e4, i5, len;
        if ((e4 = str.indexOf(".")) > -1) str = str.replace(".", "");
        if ((i5 = str.search(/e/i)) > 0) {
          if (e4 < 0) e4 = i5;
          e4 += +str.slice(i5 + 1);
          str = str.substring(0, i5);
        } else if (e4 < 0) {
          e4 = str.length;
        }
        for (i5 = 0; str.charCodeAt(i5) === 48; i5++) ;
        for (len = str.length; str.charCodeAt(len - 1) === 48; --len) ;
        str = str.slice(i5, len);
        if (str) {
          len -= i5;
          x.e = e4 = e4 - i5 - 1;
          x.d = [];
          i5 = (e4 + 1) % LOG_BASE;
          if (e4 < 0) i5 += LOG_BASE;
          if (i5 < len) {
            if (i5) x.d.push(+str.slice(0, i5));
            for (len -= LOG_BASE; i5 < len; ) x.d.push(+str.slice(i5, i5 += LOG_BASE));
            str = str.slice(i5);
            i5 = LOG_BASE - str.length;
          } else {
            i5 -= len;
          }
          for (; i5--; ) str += "0";
          x.d.push(+str);
          if (external) {
            if (x.e > x.constructor.maxE) {
              x.d = null;
              x.e = NaN;
            } else if (x.e < x.constructor.minE) {
              x.e = 0;
              x.d = [0];
            }
          }
        } else {
          x.e = 0;
          x.d = [0];
        }
        return x;
      }
      function parseOther(x, str) {
        var base, Ctor, divisor, i5, isFloat, len, p3, xd, xe;
        if (str.indexOf("_") > -1) {
          str = str.replace(/(\d)_(?=\d)/g, "$1");
          if (isDecimal.test(str)) return parseDecimal(x, str);
        } else if (str === "Infinity" || str === "NaN") {
          if (!+str) x.s = NaN;
          x.e = NaN;
          x.d = null;
          return x;
        }
        if (isHex.test(str)) {
          base = 16;
          str = str.toLowerCase();
        } else if (isBinary.test(str)) {
          base = 2;
        } else if (isOctal.test(str)) {
          base = 8;
        } else {
          throw Error(invalidArgument + str);
        }
        i5 = str.search(/p/i);
        if (i5 > 0) {
          p3 = +str.slice(i5 + 1);
          str = str.substring(2, i5);
        } else {
          str = str.slice(2);
        }
        i5 = str.indexOf(".");
        isFloat = i5 >= 0;
        Ctor = x.constructor;
        if (isFloat) {
          str = str.replace(".", "");
          len = str.length;
          i5 = len - i5;
          divisor = intPow(Ctor, new Ctor(base), i5, i5 * 2);
        }
        xd = convertBase(str, base, BASE);
        xe = xd.length - 1;
        for (i5 = xe; xd[i5] === 0; --i5) xd.pop();
        if (i5 < 0) return new Ctor(x.s * 0);
        x.e = getBase10Exponent(xd, xe);
        x.d = xd;
        external = false;
        if (isFloat) x = divide(x, divisor, len * 4);
        if (p3) x = x.times(Math.abs(p3) < 54 ? mathpow(2, p3) : Decimal.pow(2, p3));
        external = true;
        return x;
      }
      function sine(Ctor, x) {
        var k3, len = x.d.length;
        if (len < 3) {
          return x.isZero() ? x : taylorSeries(Ctor, 2, x, x);
        }
        k3 = 1.4 * Math.sqrt(len);
        k3 = k3 > 16 ? 16 : k3 | 0;
        x = x.times(1 / tinyPow(5, k3));
        x = taylorSeries(Ctor, 2, x, x);
        var sin2_x, d5 = new Ctor(5), d16 = new Ctor(16), d20 = new Ctor(20);
        for (; k3--; ) {
          sin2_x = x.times(x);
          x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));
        }
        return x;
      }
      function taylorSeries(Ctor, n6, x, y3, isHyperbolic) {
        var j, t4, u5, x2, i5 = 1, pr = Ctor.precision, k3 = Math.ceil(pr / LOG_BASE);
        external = false;
        x2 = x.times(x);
        u5 = new Ctor(y3);
        for (; ; ) {
          t4 = divide(u5.times(x2), new Ctor(n6++ * n6++), pr, 1);
          u5 = isHyperbolic ? y3.plus(t4) : y3.minus(t4);
          y3 = divide(t4.times(x2), new Ctor(n6++ * n6++), pr, 1);
          t4 = u5.plus(y3);
          if (t4.d[k3] !== void 0) {
            for (j = k3; t4.d[j] === u5.d[j] && j--; ) ;
            if (j == -1) break;
          }
          j = u5;
          u5 = y3;
          y3 = t4;
          t4 = j;
          i5++;
        }
        external = true;
        t4.d.length = k3 + 1;
        return t4;
      }
      function tinyPow(b3, e4) {
        var n6 = b3;
        while (--e4) n6 *= b3;
        return n6;
      }
      function toLessThanHalfPi(Ctor, x) {
        var t4, isNeg = x.s < 0, pi = getPi(Ctor, Ctor.precision, 1), halfPi = pi.times(0.5);
        x = x.abs();
        if (x.lte(halfPi)) {
          quadrant = isNeg ? 4 : 1;
          return x;
        }
        t4 = x.divToInt(pi);
        if (t4.isZero()) {
          quadrant = isNeg ? 3 : 2;
        } else {
          x = x.minus(t4.times(pi));
          if (x.lte(halfPi)) {
            quadrant = isOdd(t4) ? isNeg ? 2 : 3 : isNeg ? 4 : 1;
            return x;
          }
          quadrant = isOdd(t4) ? isNeg ? 1 : 4 : isNeg ? 3 : 2;
        }
        return x.minus(pi).abs();
      }
      function toStringBinary(x, baseOut, sd, rm) {
        var base, e4, i5, k3, len, roundUp, str, xd, y3, Ctor = x.constructor, isExp = sd !== void 0;
        if (isExp) {
          checkInt32(sd, 1, MAX_DIGITS);
          if (rm === void 0) rm = Ctor.rounding;
          else checkInt32(rm, 0, 8);
        } else {
          sd = Ctor.precision;
          rm = Ctor.rounding;
        }
        if (!x.isFinite()) {
          str = nonFiniteToString(x);
        } else {
          str = finiteToString(x);
          i5 = str.indexOf(".");
          if (isExp) {
            base = 2;
            if (baseOut == 16) {
              sd = sd * 4 - 3;
            } else if (baseOut == 8) {
              sd = sd * 3 - 2;
            }
          } else {
            base = baseOut;
          }
          if (i5 >= 0) {
            str = str.replace(".", "");
            y3 = new Ctor(1);
            y3.e = str.length - i5;
            y3.d = convertBase(finiteToString(y3), 10, base);
            y3.e = y3.d.length;
          }
          xd = convertBase(str, 10, base);
          e4 = len = xd.length;
          for (; xd[--len] == 0; ) xd.pop();
          if (!xd[0]) {
            str = isExp ? "0p+0" : "0";
          } else {
            if (i5 < 0) {
              e4--;
            } else {
              x = new Ctor(x);
              x.d = xd;
              x.e = e4;
              x = divide(x, y3, sd, rm, 0, base);
              xd = x.d;
              e4 = x.e;
              roundUp = inexact;
            }
            i5 = xd[sd];
            k3 = base / 2;
            roundUp = roundUp || xd[sd + 1] !== void 0;
            roundUp = rm < 4 ? (i5 !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2)) : i5 > k3 || i5 === k3 && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 || rm === (x.s < 0 ? 8 : 7));
            xd.length = sd;
            if (roundUp) {
              for (; ++xd[--sd] > base - 1; ) {
                xd[sd] = 0;
                if (!sd) {
                  ++e4;
                  xd.unshift(1);
                }
              }
            }
            for (len = xd.length; !xd[len - 1]; --len) ;
            for (i5 = 0, str = ""; i5 < len; i5++) str += NUMERALS.charAt(xd[i5]);
            if (isExp) {
              if (len > 1) {
                if (baseOut == 16 || baseOut == 8) {
                  i5 = baseOut == 16 ? 4 : 3;
                  for (--len; len % i5; len++) str += "0";
                  xd = convertBase(str, base, baseOut);
                  for (len = xd.length; !xd[len - 1]; --len) ;
                  for (i5 = 1, str = "1."; i5 < len; i5++) str += NUMERALS.charAt(xd[i5]);
                } else {
                  str = str.charAt(0) + "." + str.slice(1);
                }
              }
              str = str + (e4 < 0 ? "p" : "p+") + e4;
            } else if (e4 < 0) {
              for (; ++e4; ) str = "0" + str;
              str = "0." + str;
            } else {
              if (++e4 > len) for (e4 -= len; e4--; ) str += "0";
              else if (e4 < len) str = str.slice(0, e4) + "." + str.slice(e4);
            }
          }
          str = (baseOut == 16 ? "0x" : baseOut == 2 ? "0b" : baseOut == 8 ? "0o" : "") + str;
        }
        return x.s < 0 ? "-" + str : str;
      }
      function truncate2(arr, len) {
        if (arr.length > len) {
          arr.length = len;
          return true;
        }
      }
      function abs(x) {
        return new this(x).abs();
      }
      function acos(x) {
        return new this(x).acos();
      }
      function acosh(x) {
        return new this(x).acosh();
      }
      function add2(x, y3) {
        return new this(x).plus(y3);
      }
      function asin(x) {
        return new this(x).asin();
      }
      function asinh(x) {
        return new this(x).asinh();
      }
      function atan(x) {
        return new this(x).atan();
      }
      function atanh(x) {
        return new this(x).atanh();
      }
      function atan2(y3, x) {
        y3 = new this(y3);
        x = new this(x);
        var r4, pr = this.precision, rm = this.rounding, wpr = pr + 4;
        if (!y3.s || !x.s) {
          r4 = new this(NaN);
        } else if (!y3.d && !x.d) {
          r4 = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);
          r4.s = y3.s;
        } else if (!x.d || y3.isZero()) {
          r4 = x.s < 0 ? getPi(this, pr, rm) : new this(0);
          r4.s = y3.s;
        } else if (!y3.d || x.isZero()) {
          r4 = getPi(this, wpr, 1).times(0.5);
          r4.s = y3.s;
        } else if (x.s < 0) {
          this.precision = wpr;
          this.rounding = 1;
          r4 = this.atan(divide(y3, x, wpr, 1));
          x = getPi(this, wpr, 1);
          this.precision = pr;
          this.rounding = rm;
          r4 = y3.s < 0 ? r4.minus(x) : r4.plus(x);
        } else {
          r4 = this.atan(divide(y3, x, wpr, 1));
        }
        return r4;
      }
      function cbrt(x) {
        return new this(x).cbrt();
      }
      function ceil(x) {
        return finalise(x = new this(x), x.e + 1, 2);
      }
      function clamp(x, min3, max4) {
        return new this(x).clamp(min3, max4);
      }
      function config(obj) {
        if (!obj || typeof obj !== "object") throw Error(decimalError + "Object expected");
        var i5, p3, v3, useDefaults = obj.defaults === true, ps = [
          "precision",
          1,
          MAX_DIGITS,
          "rounding",
          0,
          8,
          "toExpNeg",
          -EXP_LIMIT,
          0,
          "toExpPos",
          0,
          EXP_LIMIT,
          "maxE",
          0,
          EXP_LIMIT,
          "minE",
          -EXP_LIMIT,
          0,
          "modulo",
          0,
          9
        ];
        for (i5 = 0; i5 < ps.length; i5 += 3) {
          if (p3 = ps[i5], useDefaults) this[p3] = DEFAULTS[p3];
          if ((v3 = obj[p3]) !== void 0) {
            if (mathfloor(v3) === v3 && v3 >= ps[i5 + 1] && v3 <= ps[i5 + 2]) this[p3] = v3;
            else throw Error(invalidArgument + p3 + ": " + v3);
          }
        }
        if (p3 = "crypto", useDefaults) this[p3] = DEFAULTS[p3];
        if ((v3 = obj[p3]) !== void 0) {
          if (v3 === true || v3 === false || v3 === 0 || v3 === 1) {
            if (v3) {
              if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) {
                this[p3] = true;
              } else {
                throw Error(cryptoUnavailable);
              }
            } else {
              this[p3] = false;
            }
          } else {
            throw Error(invalidArgument + p3 + ": " + v3);
          }
        }
        return this;
      }
      function cos(x) {
        return new this(x).cos();
      }
      function cosh(x) {
        return new this(x).cosh();
      }
      function clone(obj) {
        var i5, p3, ps;
        function Decimal2(v3) {
          var e4, i6, t4, x = this;
          if (!(x instanceof Decimal2)) return new Decimal2(v3);
          x.constructor = Decimal2;
          if (isDecimalInstance(v3)) {
            x.s = v3.s;
            if (external) {
              if (!v3.d || v3.e > Decimal2.maxE) {
                x.e = NaN;
                x.d = null;
              } else if (v3.e < Decimal2.minE) {
                x.e = 0;
                x.d = [0];
              } else {
                x.e = v3.e;
                x.d = v3.d.slice();
              }
            } else {
              x.e = v3.e;
              x.d = v3.d ? v3.d.slice() : v3.d;
            }
            return;
          }
          t4 = typeof v3;
          if (t4 === "number") {
            if (v3 === 0) {
              x.s = 1 / v3 < 0 ? -1 : 1;
              x.e = 0;
              x.d = [0];
              return;
            }
            if (v3 < 0) {
              v3 = -v3;
              x.s = -1;
            } else {
              x.s = 1;
            }
            if (v3 === ~~v3 && v3 < 1e7) {
              for (e4 = 0, i6 = v3; i6 >= 10; i6 /= 10) e4++;
              if (external) {
                if (e4 > Decimal2.maxE) {
                  x.e = NaN;
                  x.d = null;
                } else if (e4 < Decimal2.minE) {
                  x.e = 0;
                  x.d = [0];
                } else {
                  x.e = e4;
                  x.d = [v3];
                }
              } else {
                x.e = e4;
                x.d = [v3];
              }
              return;
            }
            if (v3 * 0 !== 0) {
              if (!v3) x.s = NaN;
              x.e = NaN;
              x.d = null;
              return;
            }
            return parseDecimal(x, v3.toString());
          }
          if (t4 === "string") {
            if ((i6 = v3.charCodeAt(0)) === 45) {
              v3 = v3.slice(1);
              x.s = -1;
            } else {
              if (i6 === 43) v3 = v3.slice(1);
              x.s = 1;
            }
            return isDecimal.test(v3) ? parseDecimal(x, v3) : parseOther(x, v3);
          }
          if (t4 === "bigint") {
            if (v3 < 0) {
              v3 = -v3;
              x.s = -1;
            } else {
              x.s = 1;
            }
            return parseDecimal(x, v3.toString());
          }
          throw Error(invalidArgument + v3);
        }
        Decimal2.prototype = P;
        Decimal2.ROUND_UP = 0;
        Decimal2.ROUND_DOWN = 1;
        Decimal2.ROUND_CEIL = 2;
        Decimal2.ROUND_FLOOR = 3;
        Decimal2.ROUND_HALF_UP = 4;
        Decimal2.ROUND_HALF_DOWN = 5;
        Decimal2.ROUND_HALF_EVEN = 6;
        Decimal2.ROUND_HALF_CEIL = 7;
        Decimal2.ROUND_HALF_FLOOR = 8;
        Decimal2.EUCLID = 9;
        Decimal2.config = Decimal2.set = config;
        Decimal2.clone = clone;
        Decimal2.isDecimal = isDecimalInstance;
        Decimal2.abs = abs;
        Decimal2.acos = acos;
        Decimal2.acosh = acosh;
        Decimal2.add = add2;
        Decimal2.asin = asin;
        Decimal2.asinh = asinh;
        Decimal2.atan = atan;
        Decimal2.atanh = atanh;
        Decimal2.atan2 = atan2;
        Decimal2.cbrt = cbrt;
        Decimal2.ceil = ceil;
        Decimal2.clamp = clamp;
        Decimal2.cos = cos;
        Decimal2.cosh = cosh;
        Decimal2.div = div;
        Decimal2.exp = exp;
        Decimal2.floor = floor;
        Decimal2.hypot = hypot;
        Decimal2.ln = ln;
        Decimal2.log = log2;
        Decimal2.log10 = log10;
        Decimal2.log2 = log22;
        Decimal2.max = max3;
        Decimal2.min = min2;
        Decimal2.mod = mod3;
        Decimal2.mul = mul;
        Decimal2.pow = pow;
        Decimal2.random = random;
        Decimal2.round = round;
        Decimal2.sign = sign;
        Decimal2.sin = sin;
        Decimal2.sinh = sinh;
        Decimal2.sqrt = sqrt;
        Decimal2.sub = sub;
        Decimal2.sum = sum;
        Decimal2.tan = tan;
        Decimal2.tanh = tanh;
        Decimal2.trunc = trunc;
        if (obj === void 0) obj = {};
        if (obj) {
          if (obj.defaults !== true) {
            ps = ["precision", "rounding", "toExpNeg", "toExpPos", "maxE", "minE", "modulo", "crypto"];
            for (i5 = 0; i5 < ps.length; ) if (!obj.hasOwnProperty(p3 = ps[i5++])) obj[p3] = this[p3];
          }
        }
        Decimal2.config(obj);
        return Decimal2;
      }
      function div(x, y3) {
        return new this(x).div(y3);
      }
      function exp(x) {
        return new this(x).exp();
      }
      function floor(x) {
        return finalise(x = new this(x), x.e + 1, 3);
      }
      function hypot() {
        var i5, n6, t4 = new this(0);
        external = false;
        for (i5 = 0; i5 < arguments.length; ) {
          n6 = new this(arguments[i5++]);
          if (!n6.d) {
            if (n6.s) {
              external = true;
              return new this(1 / 0);
            }
            t4 = n6;
          } else if (t4.d) {
            t4 = t4.plus(n6.times(n6));
          }
        }
        external = true;
        return t4.sqrt();
      }
      function isDecimalInstance(obj) {
        return obj instanceof Decimal || obj && obj.toStringTag === tag || false;
      }
      function ln(x) {
        return new this(x).ln();
      }
      function log2(x, y3) {
        return new this(x).log(y3);
      }
      function log22(x) {
        return new this(x).log(2);
      }
      function log10(x) {
        return new this(x).log(10);
      }
      function max3() {
        return maxOrMin(this, arguments, -1);
      }
      function min2() {
        return maxOrMin(this, arguments, 1);
      }
      function mod3(x, y3) {
        return new this(x).mod(y3);
      }
      function mul(x, y3) {
        return new this(x).mul(y3);
      }
      function pow(x, y3) {
        return new this(x).pow(y3);
      }
      function random(sd) {
        var d3, e4, k3, n6, i5 = 0, r4 = new this(1), rd = [];
        if (sd === void 0) sd = this.precision;
        else checkInt32(sd, 1, MAX_DIGITS);
        k3 = Math.ceil(sd / LOG_BASE);
        if (!this.crypto) {
          for (; i5 < k3; ) rd[i5++] = Math.random() * 1e7 | 0;
        } else if (crypto.getRandomValues) {
          d3 = crypto.getRandomValues(new Uint32Array(k3));
          for (; i5 < k3; ) {
            n6 = d3[i5];
            if (n6 >= 429e7) {
              d3[i5] = crypto.getRandomValues(new Uint32Array(1))[0];
            } else {
              rd[i5++] = n6 % 1e7;
            }
          }
        } else if (crypto.randomBytes) {
          d3 = crypto.randomBytes(k3 *= 4);
          for (; i5 < k3; ) {
            n6 = d3[i5] + (d3[i5 + 1] << 8) + (d3[i5 + 2] << 16) + ((d3[i5 + 3] & 127) << 24);
            if (n6 >= 214e7) {
              crypto.randomBytes(4).copy(d3, i5);
            } else {
              rd.push(n6 % 1e7);
              i5 += 4;
            }
          }
          i5 = k3 / 4;
        } else {
          throw Error(cryptoUnavailable);
        }
        k3 = rd[--i5];
        sd %= LOG_BASE;
        if (k3 && sd) {
          n6 = mathpow(10, LOG_BASE - sd);
          rd[i5] = (k3 / n6 | 0) * n6;
        }
        for (; rd[i5] === 0; i5--) rd.pop();
        if (i5 < 0) {
          e4 = 0;
          rd = [0];
        } else {
          e4 = -1;
          for (; rd[0] === 0; e4 -= LOG_BASE) rd.shift();
          for (k3 = 1, n6 = rd[0]; n6 >= 10; n6 /= 10) k3++;
          if (k3 < LOG_BASE) e4 -= LOG_BASE - k3;
        }
        r4.e = e4;
        r4.d = rd;
        return r4;
      }
      function round(x) {
        return finalise(x = new this(x), x.e + 1, this.rounding);
      }
      function sign(x) {
        x = new this(x);
        return x.d ? x.d[0] ? x.s : 0 * x.s : x.s || NaN;
      }
      function sin(x) {
        return new this(x).sin();
      }
      function sinh(x) {
        return new this(x).sinh();
      }
      function sqrt(x) {
        return new this(x).sqrt();
      }
      function sub(x, y3) {
        return new this(x).sub(y3);
      }
      function sum() {
        var i5 = 0, args = arguments, x = new this(args[i5]);
        external = false;
        for (; x.s && ++i5 < args.length; ) x = x.plus(args[i5]);
        external = true;
        return finalise(x, this.precision, this.rounding);
      }
      function tan(x) {
        return new this(x).tan();
      }
      function tanh(x) {
        return new this(x).tanh();
      }
      function trunc(x) {
        return finalise(x = new this(x), x.e + 1, 1);
      }
      Decimal = clone(DEFAULTS);
      Decimal.prototype.constructor = Decimal;
      Decimal["default"] = Decimal.Decimal = Decimal;
      LN10 = new Decimal(LN10);
      PI = new Decimal(PI);
      if (typeof define == "function" && define.amd) {
        define(function() {
          return Decimal;
        });
      } else if (typeof module != "undefined" && module.exports) {
        if (typeof Symbol == "function" && typeof Symbol.iterator == "symbol") {
          P[Symbol["for"]("nodejs.util.inspect.custom")] = P.toString;
          P[Symbol.toStringTag] = "Decimal";
        }
        module.exports = Decimal;
      } else {
        if (!globalScope) {
          globalScope = typeof self != "undefined" && self && self.self == self ? self : window;
        }
        noConflict = globalScope.Decimal;
        Decimal.noConflict = function() {
          globalScope.Decimal = noConflict;
          return Decimal;
        };
        globalScope.Decimal = Decimal;
      }
    })(exports);
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/number-and-date-inputs.js
var require_number_and_date_inputs = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/number-and-date-inputs.js"(exports) {
    "use strict";
    var { parseFloatingPointNumber } = require_strings2();
    var {
      parseDateString,
      parseLocalDateAndTimeString,
      parseMonthString,
      parseTimeString,
      parseWeekString,
      serializeDate,
      serializeMonth,
      serializeNormalizedDateAndTime,
      serializeTime,
      serializeWeek,
      parseDateAsWeek
    } = require_dates_and_times();
    function getUTCMs(year, month = 1, day = 1, hour = 0, minute = 0, second = 0, millisecond = 0) {
      if (year > 99 || year < 0) {
        return Date.UTC(year, month - 1, day, hour, minute, second, millisecond);
      }
      const d3 = /* @__PURE__ */ new Date(0);
      d3.setUTCFullYear(year);
      d3.setUTCMonth(month - 1);
      d3.setUTCDate(day);
      d3.setUTCHours(hour);
      d3.setUTCMinutes(minute);
      d3.setUTCSeconds(second, millisecond);
      return d3.valueOf();
    }
    var dayOfWeekRelMondayLUT = [-1, 0, 1, 2, 3, -3, -2];
    exports.convertStringToNumberByType = {
      // https://html.spec.whatwg.org/multipage/input.html#date-state-(type=date):concept-input-value-string-number
      date(input) {
        const date = parseDateString(input);
        if (date === null) {
          return null;
        }
        return getUTCMs(date.year, date.month, date.day);
      },
      // https://html.spec.whatwg.org/multipage/input.html#month-state-(type=month):concept-input-value-string-number
      month(input) {
        const date = parseMonthString(input);
        if (date === null) {
          return null;
        }
        return (date.year - 1970) * 12 + (date.month - 1);
      },
      // https://html.spec.whatwg.org/multipage/input.html#week-state-(type=week):concept-input-value-string-number
      week(input) {
        const date = parseWeekString(input);
        if (date === null) {
          return null;
        }
        const dateObj = new Date(getUTCMs(date.year));
        const dayOfWeekRelMonday = dayOfWeekRelMondayLUT[dateObj.getUTCDay()];
        return dateObj.setUTCDate(1 + 7 * (date.week - 1) - dayOfWeekRelMonday);
      },
      // https://html.spec.whatwg.org/multipage/input.html#time-state-(type=time):concept-input-value-string-number
      time(input) {
        const time = parseTimeString(input);
        if (time === null) {
          return null;
        }
        return ((time.hour * 60 + time.minute) * 60 + time.second) * 1e3 + time.millisecond;
      },
      // https://html.spec.whatwg.org/multipage/input.html#local-date-and-time-state-(type=datetime-local):concept-input-value-string-number
      "datetime-local"(input) {
        const dateAndTime = parseLocalDateAndTimeString(input);
        if (dateAndTime === null) {
          return null;
        }
        const { date: { year, month, day }, time: { hour, minute, second, millisecond } } = dateAndTime;
        return getUTCMs(year, month, day, hour, minute, second, millisecond);
      },
      // https://html.spec.whatwg.org/multipage/input.html#number-state-(type=number):concept-input-value-string-number
      number: parseFloatingPointNumber,
      // https://html.spec.whatwg.org/multipage/input.html#range-state-(type=range):concept-input-value-string-number
      range: parseFloatingPointNumber
    };
    exports.convertStringToDateByType = {
      date(input) {
        const parsedInput = exports.convertStringToNumberByType.date(input);
        return parsedInput === null ? null : new Date(parsedInput);
      },
      // https://html.spec.whatwg.org/multipage/input.html#month-state-(type=month):concept-input-value-string-number
      month(input) {
        const parsedMonthString = parseMonthString(input);
        if (parsedMonthString === null) {
          return null;
        }
        const date = /* @__PURE__ */ new Date(0);
        date.setUTCFullYear(parsedMonthString.year);
        date.setUTCMonth(parsedMonthString.month - 1);
        return date;
      },
      week(input) {
        const parsedInput = exports.convertStringToNumberByType.week(input);
        return parsedInput === null ? null : new Date(parsedInput);
      },
      time(input) {
        const parsedInput = exports.convertStringToNumberByType.time(input);
        return parsedInput === null ? null : new Date(parsedInput);
      },
      "datetime-local"(input) {
        const parsedInput = exports.convertStringToNumberByType["datetime-local"](input);
        return parsedInput === null ? null : new Date(parsedInput);
      }
    };
    exports.serializeDateByType = {
      date(input) {
        return serializeDate({
          year: input.getUTCFullYear(),
          month: input.getUTCMonth() + 1,
          day: input.getUTCDate()
        });
      },
      month(input) {
        return serializeMonth({
          year: input.getUTCFullYear(),
          month: input.getUTCMonth() + 1
        });
      },
      week(input) {
        return serializeWeek(parseDateAsWeek(input));
      },
      time(input) {
        return serializeTime({
          hour: input.getUTCHours(),
          minute: input.getUTCMinutes(),
          second: input.getUTCSeconds(),
          millisecond: input.getUTCMilliseconds()
        });
      },
      "datetime-local"(input) {
        return serializeNormalizedDateAndTime({
          date: {
            year: input.getUTCFullYear(),
            month: input.getUTCMonth() + 1,
            day: input.getUTCDate()
          },
          time: {
            hour: input.getUTCHours(),
            minute: input.getUTCMinutes(),
            second: input.getUTCSeconds(),
            millisecond: input.getUTCMilliseconds()
          }
        });
      }
    };
    exports.convertNumberToStringByType = {
      // https://html.spec.whatwg.org/multipage/input.html#date-state-(type=date):concept-input-value-string-number
      date(input) {
        return exports.serializeDateByType.date(new Date(input));
      },
      // https://html.spec.whatwg.org/multipage/input.html#month-state-(type=month):concept-input-value-string-date
      month(input) {
        const year = 1970 + Math.floor(input / 12);
        const month = input % 12;
        const date = /* @__PURE__ */ new Date(0);
        date.setUTCFullYear(year);
        date.setUTCMonth(month);
        return exports.serializeDateByType.month(date);
      },
      // https://html.spec.whatwg.org/multipage/input.html#week-state-(type=week):concept-input-value-string-date
      week(input) {
        return exports.serializeDateByType.week(new Date(input));
      },
      // https://html.spec.whatwg.org/multipage/input.html#time-state-(type=time):concept-input-value-string-date
      time(input) {
        return exports.serializeDateByType.time(new Date(input));
      },
      // https://html.spec.whatwg.org/multipage/input.html#local-date-and-time-state-(type=datetime-local):concept-input-value-number-string
      "datetime-local"(input) {
        return exports.serializeDateByType["datetime-local"](new Date(input));
      },
      // https://html.spec.whatwg.org/multipage/input.html#number-state-(type=number):concept-input-value-number-string
      number(input) {
        return input.toString();
      },
      // https://html.spec.whatwg.org/multipage/input.html#range-state-(type=range):concept-input-value-number-string
      range(input) {
        return input.toString();
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLInputElement-impl.js
var require_HTMLInputElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLInputElement-impl.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var FileList = require_FileList();
    var Decimal = require_decimal();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var idlUtils = require_utils16();
    var DefaultConstraintValidationImpl = require_DefaultConstraintValidation_impl().implementation;
    var ValidityState = require_ValidityState();
    var { mixin: mixin2 } = require_utils17();
    var { domSymbolTree, cloningSteps } = require_internal_constants();
    var { getLabelsForLabelable, formOwner } = require_form_controls();
    var { fireAnEvent } = require_events4();
    var {
      isDisabled,
      isValidEmailAddress,
      isValidAbsoluteURL,
      sanitizeValueByType
    } = require_form_controls();
    var {
      asciiCaseInsensitiveMatch,
      asciiLowercase,
      parseFloatingPointNumber,
      splitOnCommas
    } = require_strings2();
    var { isDate: isDate3 } = require_dates_and_times();
    var {
      convertStringToNumberByType,
      convertStringToDateByType,
      serializeDateByType,
      convertNumberToStringByType
    } = require_number_and_date_inputs();
    var filesSymbol = Symbol("files");
    var inputAllowedTypes = /* @__PURE__ */ new Set([
      "hidden",
      "text",
      "search",
      "tel",
      "url",
      "email",
      "password",
      "date",
      "month",
      "week",
      "time",
      "datetime-local",
      "number",
      "range",
      "color",
      "checkbox",
      "radio",
      "file",
      "submit",
      "image",
      "reset",
      "button"
    ]);
    var variableLengthSelectionAllowedTypes = /* @__PURE__ */ new Set(["text", "search", "url", "tel", "password"]);
    var numericTypes = /* @__PURE__ */ new Set(["date", "month", "week", "time", "datetime-local", "number", "range"]);
    var applicableTypesForIDLMember = {
      valueAsDate: /* @__PURE__ */ new Set(["date", "month", "week", "time"]),
      valueAsNumber: numericTypes,
      select: /* @__PURE__ */ new Set([
        "text",
        "search",
        "url",
        "tel",
        "email",
        "password",
        "date",
        "month",
        "week",
        "time",
        "datetime-local",
        "number",
        "color",
        "file"
      ]),
      selectionStart: variableLengthSelectionAllowedTypes,
      selectionEnd: variableLengthSelectionAllowedTypes,
      selectionDirection: variableLengthSelectionAllowedTypes,
      setRangeText: variableLengthSelectionAllowedTypes,
      setSelectionRange: variableLengthSelectionAllowedTypes,
      stepDown: numericTypes,
      stepUp: numericTypes
    };
    var lengthPatternSizeTypes = /* @__PURE__ */ new Set(["text", "search", "url", "tel", "email", "password"]);
    var readonlyTypes = /* @__PURE__ */ new Set([...lengthPatternSizeTypes, "date", "month", "week", "time", "datetime-local", "number"]);
    var applicableTypesForContentAttribute = {
      list: /* @__PURE__ */ new Set(["text", "search", "url", "tel", "email", ...numericTypes, "color"]),
      max: numericTypes,
      maxlength: lengthPatternSizeTypes,
      min: numericTypes,
      minlength: lengthPatternSizeTypes,
      multiple: /* @__PURE__ */ new Set(["email", "file"]),
      pattern: lengthPatternSizeTypes,
      readonly: readonlyTypes,
      required: /* @__PURE__ */ new Set([...readonlyTypes, "checkbox", "radio", "file"]),
      step: numericTypes
    };
    var valueAttributeDefaultMode = /* @__PURE__ */ new Set(["hidden", "submit", "image", "reset", "button"]);
    var valueAttributeDefaultOnMode = /* @__PURE__ */ new Set(["checkbox", "radio"]);
    function valueAttributeMode(type) {
      if (valueAttributeDefaultMode.has(type)) {
        return "default";
      }
      if (valueAttributeDefaultOnMode.has(type)) {
        return "default/on";
      }
      if (type === "file") {
        return "filename";
      }
      return "value";
    }
    function getTypeFromAttribute(typeAttribute) {
      if (typeof typeAttribute !== "string") {
        return "text";
      }
      const type = asciiLowercase(typeAttribute);
      return inputAllowedTypes.has(type) ? type : "text";
    }
    var HTMLInputElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._selectionStart = this._selectionEnd = 0;
        this._selectionDirection = "none";
        this._value = "";
        this._dirtyValue = false;
        this._checkedness = false;
        this._dirtyCheckedness = false;
        this._preCheckedRadioState = null;
        this._legacyActivationBehaviorPreviousIndeterminateState = false;
        this.indeterminate = false;
        this._customValidityErrorMessage = "";
        this._labels = null;
        this._hasActivationBehavior = true;
      }
      // https://html.spec.whatwg.org/multipage/input.html#concept-input-value-string-number
      get _convertStringToNumber() {
        return convertStringToNumberByType[this.type];
      }
      get _convertNumberToString() {
        return convertNumberToStringByType[this.type];
      }
      get _convertDateToString() {
        return serializeDateByType[this.type];
      }
      get _convertStringToDate() {
        return convertStringToDateByType[this.type];
      }
      _isStepAligned(v3) {
        return new Decimal(v3).minus(this._stepBase).modulo(this._allowedValueStep).isZero();
      }
      // Returns a Decimal.
      _stepAlign(v3, roundUp) {
        const allowedValueStep = this._allowedValueStep;
        const stepBase = this._stepBase;
        return new Decimal(v3).minus(stepBase).toNearest(allowedValueStep, roundUp ? Decimal.ROUND_UP : Decimal.ROUND_DOWN).add(stepBase);
      }
      // For <input>, https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#concept-fe-value
      // is a simple value that is gotten and set, not computed.
      _getValue() {
        return this._value;
      }
      _legacyPreActivationBehavior() {
        if (this.type === "checkbox") {
          this.checked = !this.checked;
          this._legacyActivationBehaviorPreviousIndeterminateState = this.indeterminate;
          this.indeterminate = false;
        } else if (this.type === "radio") {
          this._preCheckedRadioState = this.checked;
          this.checked = true;
        }
      }
      _legacyCanceledActivationBehavior() {
        if (this.type === "checkbox") {
          this.checked = !this.checked;
          this.indeterminate = this._legacyActivationBehaviorPreviousIndeterminateState;
        } else if (this.type === "radio") {
          if (this._preCheckedRadioState !== null) {
            this.checked = this._preCheckedRadioState;
            this._preCheckedRadioState = null;
          }
        }
      }
      _activationBehavior(event) {
        if (!this._mutable && this.type !== "checkbox" && this.type !== "radio") {
          return;
        }
        const { form } = this;
        if (this.type === "checkbox" || this.type === "radio" && !this._preCheckedRadioState) {
          if (this.isConnected) {
            fireAnEvent("input", this, void 0, { bubbles: true });
            fireAnEvent("change", this, void 0, { bubbles: true });
          }
        } else if (form && this.type === "image") {
          this._selectedCoordinate = { x: event.offsetX, y: event.offsetY };
          form._doRequestSubmit(this);
        } else if (form && this.type === "submit") {
          form._doRequestSubmit(this);
        } else if (form && this.type === "reset") {
          form._doReset();
        }
      }
      _attrModified(name, value2, oldVal) {
        const wrapper = idlUtils.wrapperForImpl(this);
        if (!this._dirtyValue && name === "value") {
          this._value = sanitizeValueByType(this, wrapper.defaultValue);
        }
        if (!this._dirtyCheckedness && name === "checked") {
          this._checkedness = wrapper.defaultChecked;
          if (this._checkedness) {
            this._removeOtherRadioCheckedness();
          }
        }
        if (name === "name" || name === "type") {
          if (this._checkedness) {
            this._removeOtherRadioCheckedness();
          }
        }
        if (name === "type") {
          const prevType = getTypeFromAttribute(oldVal);
          const curType = getTypeFromAttribute(value2);
          if (prevType !== curType) {
            const prevValueMode = valueAttributeMode(prevType);
            const curValueMode = valueAttributeMode(curType);
            if (prevValueMode === "value" && this._value !== "" && (curValueMode === "default" || curValueMode === "default/on")) {
              this.setAttributeNS(null, "value", this._value);
            } else if (prevValueMode !== "value" && curValueMode === "value") {
              this._value = this.getAttributeNS(null, "value") || "";
              this._dirtyValue = false;
            } else if (prevValueMode !== "filename" && curValueMode === "filename") {
              this._value = "";
            }
            this._signalATypeChange();
            this._value = sanitizeValueByType(this, this._value);
            const previouslySelectable = this._idlMemberApplies("setRangeText", prevType);
            const nowSelectable = this._idlMemberApplies("setRangeText", curType);
            if (!previouslySelectable && nowSelectable) {
              this._selectionStart = 0;
              this._selectionEnd = 0;
              this._selectionDirection = "none";
            }
          }
        }
        super._attrModified(name, value2, oldVal);
      }
      // https://html.spec.whatwg.org/multipage/input.html#signal-a-type-change
      _signalATypeChange() {
        if (this._checkedness) {
          this._removeOtherRadioCheckedness();
        }
      }
      _formReset() {
        const wrapper = idlUtils.wrapperForImpl(this);
        this._value = sanitizeValueByType(this, wrapper.defaultValue);
        this._dirtyValue = false;
        this._checkedness = wrapper.defaultChecked;
        this._dirtyCheckedness = false;
        if (this._checkedness) {
          this._removeOtherRadioCheckedness();
        }
      }
      _changedFormOwner() {
        if (this._checkedness) {
          this._removeOtherRadioCheckedness();
        }
      }
      get _otherRadioGroupElements() {
        const wrapper = idlUtils.wrapperForImpl(this);
        const root = this._radioButtonGroupRoot;
        if (!root) {
          return [];
        }
        const result = [];
        const descendants = domSymbolTree.treeIterator(root);
        for (const candidate of descendants) {
          if (candidate._radioButtonGroupRoot !== root) {
            continue;
          }
          const candidateWrapper = idlUtils.wrapperForImpl(candidate);
          if (!candidateWrapper.name || candidateWrapper.name !== wrapper.name) {
            continue;
          }
          if (candidate !== this) {
            result.push(candidate);
          }
        }
        return result;
      }
      _removeOtherRadioCheckedness() {
        for (const radioGroupElement of this._otherRadioGroupElements) {
          radioGroupElement._checkedness = false;
        }
      }
      get _radioButtonGroupRoot() {
        const wrapper = idlUtils.wrapperForImpl(this);
        if (this.type !== "radio" || !wrapper.name) {
          return null;
        }
        let e4 = domSymbolTree.parent(this);
        while (e4) {
          if (!domSymbolTree.parent(e4) || e4._localName === "form") {
            return e4;
          }
          e4 = domSymbolTree.parent(e4);
        }
        return null;
      }
      _someInRadioGroup(name) {
        if (this[name]) {
          return true;
        }
        return this._otherRadioGroupElements.some((radioGroupElement) => radioGroupElement[name]);
      }
      get _mutable() {
        return !isDisabled(this) && !this._hasAttributeAndApplies("readonly");
      }
      get labels() {
        return getLabelsForLabelable(this);
      }
      get form() {
        return formOwner(this);
      }
      get checked() {
        return this._checkedness;
      }
      set checked(checked) {
        this._checkedness = Boolean(checked);
        this._dirtyCheckedness = true;
        if (this._checkedness) {
          this._removeOtherRadioCheckedness();
        }
      }
      get value() {
        switch (valueAttributeMode(this.type)) {
          // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-value
          case "value":
            return this._getValue();
          // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-default
          case "default": {
            const attr = this.getAttributeNS(null, "value");
            return attr !== null ? attr : "";
          }
          // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-default-on
          case "default/on": {
            const attr = this.getAttributeNS(null, "value");
            return attr !== null ? attr : "on";
          }
          // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-filename
          case "filename":
            return this.files.length ? "C:\\fakepath\\" + this.files[0].name : "";
          default:
            throw new Error("jsdom internal error: unknown value attribute mode");
        }
      }
      set value(val) {
        switch (valueAttributeMode(this.type)) {
          // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-value
          case "value": {
            const oldValue = this._value;
            this._value = sanitizeValueByType(this, val);
            this._dirtyValue = true;
            if (oldValue !== this._value) {
              this._selectionStart = this._selectionEnd = this._getValueLength();
              this._selectionDirection = "none";
            }
            break;
          }
          // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-default
          // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-default-on
          case "default":
          case "default/on":
            this.setAttributeNS(null, "value", val);
            break;
          // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-filename
          case "filename":
            if (val === "") {
              this.files.length = 0;
            } else {
              throw DOMException2.create(this._globalObject, [
                "This input element accepts a filename, which may only be programmatically set to the empty string.",
                "InvalidStateError"
              ]);
            }
            break;
          default:
            throw new Error("jsdom internal error: unknown value attribute mode");
        }
      }
      // https://html.spec.whatwg.org/multipage/input.html#dom-input-valueasdate
      get valueAsDate() {
        if (!this._idlMemberApplies("valueAsDate")) {
          return null;
        }
        const window2 = this._ownerDocument._defaultView;
        const convertedValue = this._convertStringToDate(this._value);
        if (convertedValue instanceof Date) {
          return new window2.Date(convertedValue.getTime());
        }
        return null;
      }
      set valueAsDate(v3) {
        if (!this._idlMemberApplies("valueAsDate")) {
          throw DOMException2.create(this._globalObject, [
            "Failed to set the 'valueAsDate' property on 'HTMLInputElement': This input element does not support Date values.",
            "InvalidStateError"
          ]);
        }
        if (v3 !== null && !isDate3(v3)) {
          throw new TypeError("Failed to set the 'valueAsDate' property on 'HTMLInputElement': The provided value is not a Date.");
        }
        if (v3 === null || isNaN(v3)) {
          this._value = "";
          return;
        }
        this._value = this._convertDateToString(v3);
      }
      // https://html.spec.whatwg.org/multipage/input.html#dom-input-valueasnumber
      get valueAsNumber() {
        if (!this._idlMemberApplies("valueAsNumber")) {
          return NaN;
        }
        const parsedValue = this._convertStringToNumber(this._value);
        return parsedValue !== null ? parsedValue : NaN;
      }
      set valueAsNumber(v3) {
        if (!isFinite(v3) && !isNaN(v3)) {
          throw new TypeError("Failed to set infinite value as Number");
        }
        if (!this._idlMemberApplies("valueAsNumber")) {
          throw DOMException2.create(this._globalObject, [
            "Failed to set the 'valueAsNumber' property on 'HTMLInputElement': This input element does not support Number values.",
            "InvalidStateError"
          ]);
        }
        if (isNaN(v3)) {
          this._value = "";
        } else {
          this._value = this._convertNumberToString(v3);
        }
      }
      // https://html.spec.whatwg.org/multipage/input.html#dom-input-stepup
      _stepUpdate(n6, isUp) {
        const methodName = isUp ? "stepUp" : "stepDown";
        if (!this._idlMemberApplies(methodName)) {
          throw DOMException2.create(this._globalObject, [
            `Failed to invoke '${methodName}' method on 'HTMLInputElement': This input element does not support Number values.`,
            "InvalidStateError"
          ]);
        }
        const allowedValueStep = this._allowedValueStep;
        if (allowedValueStep === null) {
          throw DOMException2.create(this._globalObject, [
            `Failed to invoke '${methodName}' method on 'HTMLInputElement': This input element does not support value step.`,
            "InvalidStateError"
          ]);
        }
        const min2 = this._minimum;
        const max3 = this._maximum;
        if (min2 !== null && max3 !== null) {
          if (min2 > max3) {
            return;
          }
          const candidateStepValue = this._stepAlign(
            Decimal.add(min2, allowedValueStep),
            /* roundUp = */
            false
          );
          if (candidateStepValue.lt(min2) || candidateStepValue.gt(max3)) {
            return;
          }
        }
        let value2 = 0;
        try {
          value2 = this.valueAsNumber;
          if (isNaN(value2)) {
            value2 = 0;
          }
        } catch {
        }
        value2 = new Decimal(value2);
        const valueBeforeStepping = value2;
        if (!this._isStepAligned(value2)) {
          value2 = this._stepAlign(
            value2,
            /* roundUp = */
            isUp
          );
        } else {
          let delta = Decimal.mul(n6, allowedValueStep);
          if (!isUp) {
            delta = delta.neg();
          }
          value2 = value2.add(delta);
        }
        if (min2 !== null && value2.lt(min2)) {
          value2 = this._stepAlign(
            min2,
            /* roundUp = */
            true
          );
        }
        if (max3 !== null && value2.gt(max3)) {
          value2 = this._stepAlign(
            max3,
            /* roundUp = */
            false
          );
        }
        if (isUp ? value2.lt(valueBeforeStepping) : value2.gt(valueBeforeStepping)) {
          return;
        }
        this._value = this._convertNumberToString(value2.toNumber());
      }
      stepDown(n6 = 1) {
        return this._stepUpdate(n6, false);
      }
      stepUp(n6 = 1) {
        return this._stepUpdate(n6, true);
      }
      get files() {
        if (this.type === "file") {
          this[filesSymbol] ||= FileList.createImpl(this._globalObject);
        } else {
          this[filesSymbol] = null;
        }
        return this[filesSymbol];
      }
      set files(value2) {
        if (this.type === "file" && value2 !== null) {
          this[filesSymbol] = value2;
        }
      }
      get type() {
        const typeAttribute = this.getAttributeNS(null, "type");
        return getTypeFromAttribute(typeAttribute);
      }
      set type(type) {
        this.setAttributeNS(null, "type", type);
      }
      _dispatchSelectEvent() {
        setTimeout(() => fireAnEvent("select", this, void 0, { bubbles: true, cancelable: false }), 0);
      }
      _getValueLength() {
        return typeof this.value === "string" ? this.value.length : 0;
      }
      select() {
        if (!this._idlMemberApplies("select")) {
          return;
        }
        this._selectionStart = 0;
        this._selectionEnd = this._getValueLength();
        this._selectionDirection = "none";
        this._dispatchSelectEvent();
      }
      get selectionStart() {
        if (!this._idlMemberApplies("selectionStart")) {
          return null;
        }
        return this._selectionStart;
      }
      set selectionStart(start2) {
        if (!this._idlMemberApplies("selectionStart")) {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        this.setSelectionRange(start2, Math.max(start2, this._selectionEnd), this._selectionDirection);
      }
      get selectionEnd() {
        if (!this._idlMemberApplies("selectionEnd")) {
          return null;
        }
        return this._selectionEnd;
      }
      set selectionEnd(end2) {
        if (!this._idlMemberApplies("selectionEnd")) {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        this.setSelectionRange(this._selectionStart, end2, this._selectionDirection);
      }
      get selectionDirection() {
        if (!this._idlMemberApplies("selectionDirection")) {
          return null;
        }
        return this._selectionDirection;
      }
      set selectionDirection(dir) {
        if (!this._idlMemberApplies("selectionDirection")) {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        this.setSelectionRange(this._selectionStart, this._selectionEnd, dir);
      }
      setSelectionRange(start2, end2, dir) {
        if (!this._idlMemberApplies("setSelectionRange")) {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        this._selectionEnd = Math.min(end2, this._getValueLength());
        this._selectionStart = Math.min(start2, this._selectionEnd);
        this._selectionDirection = dir === "forward" || dir === "backward" ? dir : "none";
        this._dispatchSelectEvent();
      }
      setRangeText(repl, start2, end2, selectionMode = "preserve") {
        if (!this._idlMemberApplies("setRangeText")) {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        if (arguments.length < 2) {
          start2 = this._selectionStart;
          end2 = this._selectionEnd;
        } else if (start2 > end2) {
          throw DOMException2.create(this._globalObject, ["The index is not in the allowed range.", "IndexSizeError"]);
        }
        start2 = Math.min(start2, this._getValueLength());
        end2 = Math.min(end2, this._getValueLength());
        const val = this.value;
        let selStart = this._selectionStart;
        let selEnd = this._selectionEnd;
        this.value = val.slice(0, start2) + repl + val.slice(end2);
        const newEnd = start2 + repl.length;
        if (selectionMode === "select") {
          this.setSelectionRange(start2, newEnd);
        } else if (selectionMode === "start") {
          this.setSelectionRange(start2, start2);
        } else if (selectionMode === "end") {
          this.setSelectionRange(newEnd, newEnd);
        } else {
          const delta = repl.length - (end2 - start2);
          if (selStart > end2) {
            selStart += delta;
          } else if (selStart > start2) {
            selStart = start2;
          }
          if (selEnd > end2) {
            selEnd += delta;
          } else if (selEnd > start2) {
            selEnd = newEnd;
          }
          this.setSelectionRange(selStart, selEnd);
        }
      }
      // https://html.spec.whatwg.org/multipage/input.html#the-list-attribute
      get list() {
        const id = this._getAttributeIfApplies("list");
        if (!id) {
          return null;
        }
        const el = this.getRootNode({}).getElementById(id);
        if (el && el.localName === "datalist") {
          return el;
        }
        return null;
      }
      // https://html.spec.whatwg.org/multipage/input.html#the-min-and-max-attributes
      get _minimum() {
        let min2 = this._defaultMinimum;
        const attr = this._getAttributeIfApplies("min");
        if (attr !== null && this._convertStringToNumber !== void 0) {
          const parsed = this._convertStringToNumber(attr);
          if (parsed !== null) {
            min2 = parsed;
          }
        }
        return min2;
      }
      get _maximum() {
        let max3 = this._defaultMaximum;
        const attr = this._getAttributeIfApplies("max");
        if (attr !== null && this._convertStringToNumber !== void 0) {
          const parsed = this._convertStringToNumber(attr);
          if (parsed !== null) {
            max3 = parsed;
          }
        }
        return max3;
      }
      get _defaultMinimum() {
        if (this.type === "range") {
          return 0;
        }
        return null;
      }
      get _defaultMaximum() {
        if (this.type === "range") {
          return 100;
        }
        return null;
      }
      // https://html.spec.whatwg.org/multipage/input.html#concept-input-step
      get _allowedValueStep() {
        if (!this._contentAttributeApplies("step")) {
          return null;
        }
        const attr = this.getAttributeNS(null, "step");
        if (attr === null) {
          return this._defaultStep * this._stepScaleFactor;
        }
        if (asciiCaseInsensitiveMatch(attr, "any")) {
          return null;
        }
        const parsedStep = parseFloatingPointNumber(attr);
        if (parsedStep === null || parsedStep <= 0) {
          return this._defaultStep * this._stepScaleFactor;
        }
        return parsedStep * this._stepScaleFactor;
      }
      // https://html.spec.whatwg.org/multipage/input.html#concept-input-step-scale
      get _stepScaleFactor() {
        const dayInMilliseconds = 24 * 60 * 60 * 1e3;
        switch (this.type) {
          case "week":
            return 7 * dayInMilliseconds;
          case "date":
            return dayInMilliseconds;
          case "datetime-local":
          case "datetime":
          case "time":
            return 1e3;
        }
        return 1;
      }
      // https://html.spec.whatwg.org/multipage/input.html#concept-input-step-default
      get _defaultStep() {
        if (this.type === "datetime-local" || this.type === "datetime" || this.type === "time") {
          return 60;
        }
        return 1;
      }
      // https://html.spec.whatwg.org/multipage/input.html#concept-input-min-zero
      get _stepBase() {
        if (this._hasAttributeAndApplies("min")) {
          const min2 = this._convertStringToNumber(this.getAttributeNS(null, "min"));
          if (min2 !== null) {
            return min2;
          }
        }
        if (this.hasAttributeNS(null, "value")) {
          const value2 = this._convertStringToNumber(this.getAttributeNS(null, "value"));
          if (value2 !== null) {
            return value2;
          }
        }
        if (this._defaultStepBase !== null) {
          return this._defaultStepBase;
        }
        return 0;
      }
      // https://html.spec.whatwg.org/multipage/input.html#concept-input-step-default-base
      get _defaultStepBase() {
        if (this.type === "week") {
          return -2592e5;
        }
        return null;
      }
      // https://html.spec.whatwg.org/multipage/input.html#common-input-element-attributes
      // When an attribute doesn't apply to an input element, user agents must ignore the attribute.
      _contentAttributeApplies(attribute) {
        return applicableTypesForContentAttribute[attribute].has(this.type);
      }
      _hasAttributeAndApplies(attribute) {
        return this._contentAttributeApplies(attribute) && this.hasAttributeNS(null, attribute);
      }
      _getAttributeIfApplies(attribute) {
        if (this._contentAttributeApplies(attribute)) {
          return this.getAttributeNS(null, attribute);
        }
        return null;
      }
      _idlMemberApplies(member, type = this.type) {
        return applicableTypesForIDLMember[member].has(type);
      }
      _barredFromConstraintValidationSpecialization() {
        const willNotValidateTypes = /* @__PURE__ */ new Set(["hidden", "reset", "button"]);
        const readOnly = this._hasAttributeAndApplies("readonly");
        return willNotValidateTypes.has(this.type) || readOnly;
      }
      // https://html.spec.whatwg.org/multipage/input.html#concept-input-required
      get _required() {
        return this._hasAttributeAndApplies("required");
      }
      // https://html.spec.whatwg.org/multipage/input.html#has-a-periodic-domain
      get _hasAPeriodicDomain() {
        return this.type === "time";
      }
      // https://html.spec.whatwg.org/multipage/input.html#has-a-reversed-range
      get _hasAReversedRange() {
        return this._hasAPeriodicDomain && this._maximum < this._minimum;
      }
      get validity() {
        if (!this._validity) {
          const reversedRangeSufferingOverUnderflow = () => {
            const parsedValue = this._convertStringToNumber(this._value);
            return parsedValue !== null && parsedValue > this._maximum && parsedValue < this._minimum;
          };
          const state = {
            // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-being-missing
            valueMissing: () => {
              if (this._required && valueAttributeMode(this.type) === "value" && this._mutable && this._value === "") {
                return true;
              }
              switch (this.type) {
                // https://html.spec.whatwg.org/multipage/input.html#checkbox-state-(type=checkbox)
                // Constraint validation: If the element is required and its checkedness is
                // false, then the element is suffering from being missing.
                case "checkbox":
                  if (this._required && !this._checkedness) {
                    return true;
                  }
                  break;
                // https://html.spec.whatwg.org/multipage/input.html#radio-button-state-(type=radio)
                // Constraint validation: If an element in the radio button group is required,
                // and all of the input elements in the radio button group have a checkedness
                // that is false, then the element is suffering from being missing.
                case "radio":
                  if (this._someInRadioGroup("_required") && !this._someInRadioGroup("checked")) {
                    return true;
                  }
                  break;
                // https://html.spec.whatwg.org/multipage/input.html#file-upload-state-(type=file)
                // Constraint validation: If the element is required and the list of selected files is
                // empty, then the element is suffering from being missing.
                case "file":
                  if (this._required && this.files.length === 0) {
                    return true;
                  }
                  break;
              }
              return false;
            },
            // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-being-too-long
            // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-maxlength
            // jsdom has no way at the moment to emulate a user interaction, so tooLong/tooShort have
            // to be set to false.
            tooLong: () => false,
            // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-being-too-short
            // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-minlength
            tooShort: () => false,
            // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-an-overflow
            rangeOverflow: () => {
              if (this._hasAReversedRange) {
                return reversedRangeSufferingOverUnderflow();
              }
              if (this._maximum !== null) {
                const parsedValue = this._convertStringToNumber(this._value);
                if (parsedValue !== null && parsedValue > this._maximum) {
                  return true;
                }
              }
              return false;
            },
            // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-an-underflow
            rangeUnderflow: () => {
              if (this._hasAReversedRange) {
                return reversedRangeSufferingOverUnderflow();
              }
              if (this._minimum !== null) {
                const parsedValue = this._convertStringToNumber(this._value);
                if (parsedValue !== null && parsedValue < this._minimum) {
                  return true;
                }
              }
              return false;
            },
            // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-a-pattern-mismatch
            patternMismatch: () => {
              if (this._value === "" || !this._hasAttributeAndApplies("pattern")) {
                return false;
              }
              let regExp;
              try {
                const pattern3 = this.getAttributeNS(null, "pattern");
                new RegExp(pattern3, "u");
                regExp = new RegExp("^(?:" + pattern3 + ")$", "u");
              } catch {
                return false;
              }
              if (this._hasAttributeAndApplies("multiple")) {
                return !splitOnCommas(this._value).every((value2) => regExp.test(value2));
              }
              return !regExp.test(this._value);
            },
            // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-a-step-mismatch
            // https://html.spec.whatwg.org/multipage/input.html#attr-input-step
            stepMismatch: () => {
              const allowedValueStep = this._allowedValueStep;
              if (allowedValueStep === null) {
                return false;
              }
              const number3 = this._convertStringToNumber(this._value);
              return number3 !== null && !this._isStepAligned(number3);
            },
            // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#suffering-from-a-type-mismatch
            typeMismatch: () => {
              switch (this.type) {
                // https://html.spec.whatwg.org/multipage/input.html#url-state-(type=url)
                // Constraint validation: While the value of the element is neither the empty string
                // nor a valid absolute URL, the element is suffering from a type mismatch.
                case "url":
                  if (this._value !== "" && !isValidAbsoluteURL(this._value)) {
                    return true;
                  }
                  break;
                // https://html.spec.whatwg.org/multipage/input.html#e-mail-state-(type=email)
                // Constraint validation [multiple=false]: While the value of the element is neither the empty
                // string nor a single valid e - mail address, the element is suffering from a type mismatch.
                // Constraint validation [multiple=true]: While the value of the element is not a valid e-mail address list,
                // the element is suffering from a type mismatch.
                case "email":
                  if (this._value !== "" && !isValidEmailAddress(this._getValue(), this.hasAttributeNS(null, "multiple"))) {
                    return true;
                  }
                  break;
              }
              return false;
            }
          };
          this._validity = ValidityState.createImpl(this._globalObject, [], {
            element: this,
            state
          });
        }
        return this._validity;
      }
      [cloningSteps](copy2, node) {
        copy2._value = node._value;
        copy2._checkedness = node._checkedness;
        copy2._dirtyValue = node._dirtyValue;
        copy2._dirtyCheckedness = node._dirtyCheckedness;
      }
    };
    mixin2(HTMLInputElementImpl.prototype, DefaultConstraintValidationImpl.prototype);
    module.exports = {
      implementation: HTMLInputElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js
var require_HTMLInputElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var SelectionMode = require_SelectionMode();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var FileList = require_FileList();
    var parseNonNegativeInteger_helpers_strings = require_strings2().parseNonNegativeInteger;
    var create_DOMException = require_DOMException().create;
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLInputElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLInputElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLInputElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLInputElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        stepUp() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'stepUp' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["long"](curArg, {
                context: "Failed to execute 'stepUp' on 'HTMLInputElement': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = 1;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].stepUp(...args);
        }
        stepDown() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'stepDown' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["long"](curArg, {
                context: "Failed to execute 'stepDown' on 'HTMLInputElement': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = 1;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].stepDown(...args);
        }
        checkValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'checkValidity' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return esValue[implSymbol].checkValidity();
        }
        reportValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'reportValidity' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return esValue[implSymbol].reportValidity();
        }
        setCustomValidity(error) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setCustomValidity' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setCustomValidity' on 'HTMLInputElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'setCustomValidity' on 'HTMLInputElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setCustomValidity(...args);
        }
        select() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'select' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return esValue[implSymbol].select();
        }
        setRangeText(replacement) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setRangeText' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setRangeText' on 'HTMLInputElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          switch (arguments.length) {
            case 1:
              {
                let curArg = arguments[0];
                curArg = conversions["DOMString"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              break;
            case 2:
              throw new globalObject.TypeError(
                `Failed to execute 'setRangeText' on 'HTMLInputElement': only ${arguments.length} arguments present.`
              );
              break;
            case 3:
              {
                let curArg = arguments[0];
                curArg = conversions["DOMString"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[1];
                curArg = conversions["unsigned long"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 2",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[2];
                curArg = conversions["unsigned long"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 3",
                  globals: globalObject
                });
                args.push(curArg);
              }
              break;
            default:
              {
                let curArg = arguments[0];
                curArg = conversions["DOMString"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[1];
                curArg = conversions["unsigned long"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 2",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[2];
                curArg = conversions["unsigned long"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 3",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[3];
                if (curArg !== void 0) {
                  curArg = SelectionMode.convert(globalObject, curArg, {
                    context: "Failed to execute 'setRangeText' on 'HTMLInputElement': parameter 4"
                  });
                } else {
                  curArg = "preserve";
                }
                args.push(curArg);
              }
          }
          return esValue[implSymbol].setRangeText(...args);
        }
        setSelectionRange(start2, end2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setSelectionRange' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'setSelectionRange' on 'HTMLInputElement': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'setSelectionRange' on 'HTMLInputElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'setSelectionRange' on 'HTMLInputElement': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'setSelectionRange' on 'HTMLInputElement': parameter 3",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].setSelectionRange(...args);
        }
        get accept() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get accept' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("accept");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set accept(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set accept' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'accept' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("accept", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get alt() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get alt' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("alt");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set alt(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set alt' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'alt' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("alt", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get autocomplete() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get autocomplete' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("autocomplete");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set autocomplete(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set autocomplete' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'autocomplete' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("autocomplete", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get autofocus() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get autofocus' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("autofocus") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set autofocus(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set autofocus' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'autofocus' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("autofocus", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("autofocus");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get defaultChecked() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get defaultChecked' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("checked") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set defaultChecked(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set defaultChecked' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'defaultChecked' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("checked", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("checked");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get checked() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get checked' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return esValue[implSymbol]["checked"];
        }
        set checked(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set checked' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'checked' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["checked"] = V;
        }
        get dirName() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get dirName' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("dirname");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set dirName(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set dirName' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'dirName' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("dirname", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get disabled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get disabled' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set disabled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set disabled' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'disabled' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get form() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get form' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["form"]);
        }
        get files() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get files' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["files"]);
        }
        set files(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set files' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = FileList.convert(globalObject, V, {
              context: "Failed to set the 'files' property on 'HTMLInputElement': The provided value"
            });
          }
          esValue[implSymbol]["files"] = V;
        }
        get formNoValidate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get formNoValidate' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("formnovalidate") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set formNoValidate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set formNoValidate' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'formNoValidate' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("formnovalidate", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("formnovalidate");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get formTarget() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get formTarget' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("formtarget");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set formTarget(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set formTarget' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'formTarget' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("formtarget", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get indeterminate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get indeterminate' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return esValue[implSymbol]["indeterminate"];
        }
        set indeterminate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set indeterminate' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'indeterminate' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["indeterminate"] = V;
        }
        get inputMode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get inputMode' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("inputmode");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set inputMode(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set inputMode' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'inputMode' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("inputmode", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get list() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get list' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["list"]);
        }
        get max() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get max' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("max");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set max(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set max' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'max' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("max", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get maxLength() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get maxLength' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("maxlength");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && conversions.long(value2) === value2) {
                return value2;
              }
            }
            return -1;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set maxLength(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set maxLength' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["long"](V, {
            context: "Failed to set the 'maxLength' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V < 0) {
              throw create_DOMException(globalObject, [
                `The negative value ${V} cannot be set for the maxLength property.`,
                "IndexSizeError"
              ]);
            }
            esValue[implSymbol]._reflectSetTheContentAttribute("maxlength", String(V));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get min() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get min' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("min");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set min(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set min' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'min' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("min", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get minLength() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get minLength' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("minlength");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && conversions.long(value2) === value2) {
                return value2;
              }
            }
            return -1;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set minLength(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set minLength' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["long"](V, {
            context: "Failed to set the 'minLength' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V < 0) {
              throw create_DOMException(globalObject, [
                `The negative value ${V} cannot be set for the minLength property.`,
                "IndexSizeError"
              ]);
            }
            esValue[implSymbol]._reflectSetTheContentAttribute("minlength", String(V));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get multiple() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get multiple' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("multiple") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set multiple(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set multiple' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'multiple' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("multiple", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("multiple");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get pattern() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get pattern' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("pattern");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set pattern(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set pattern' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'pattern' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("pattern", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get placeholder() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get placeholder' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("placeholder");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set placeholder(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set placeholder' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'placeholder' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("placeholder", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get readOnly() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get readOnly' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("readonly") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set readOnly(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set readOnly' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'readOnly' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("readonly", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("readonly");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get required() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get required' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("required") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set required(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set required' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'required' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("required", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("required");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get size() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get size' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("size");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 1 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 20;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set size(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set size' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'size' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === 0) {
              throw create_DOMException(globalObject, [
                `The value ${V} cannot be set for the size property.`,
                "IndexSizeError"
              ]);
            }
            const newValue = V <= 2147483647 && V >= 1 ? V : 20;
            esValue[implSymbol]._reflectSetTheContentAttribute("size", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get src() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get src' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("src");
            if (value2 === null) {
              return "";
            }
            if (this._srcURLCacheKey === value2) {
              return this._srcURLCache;
            }
            this._srcURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._srcURLCache = serializeURLwhatwg_url(urlRecord);
              return this._srcURLCache;
            }
            this._srcURLCache = conversions.USVString(value2);
            return this._srcURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set src(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set src' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'src' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get step() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get step' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("step");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set step(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set step' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'step' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("step", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["type"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set type(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set type' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'type' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["type"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get defaultValue() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get defaultValue' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("value");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set defaultValue(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set defaultValue' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'defaultValue' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("value", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get value' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["value"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set value' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'value' property on 'HTMLInputElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["value"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get valueAsDate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get valueAsDate' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return esValue[implSymbol]["valueAsDate"];
        }
        set valueAsDate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set valueAsDate' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["object"](V, {
              context: "Failed to set the 'valueAsDate' property on 'HTMLInputElement': The provided value",
              globals: globalObject
            });
          }
          esValue[implSymbol]["valueAsDate"] = V;
        }
        get valueAsNumber() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get valueAsNumber' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return esValue[implSymbol]["valueAsNumber"];
        }
        set valueAsNumber(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set valueAsNumber' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["unrestricted double"](V, {
            context: "Failed to set the 'valueAsNumber' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["valueAsNumber"] = V;
        }
        get willValidate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get willValidate' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return esValue[implSymbol]["willValidate"];
        }
        get validity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validity' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["validity"]);
        }
        get validationMessage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validationMessage' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return esValue[implSymbol]["validationMessage"];
        }
        get labels() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get labels' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["labels"]);
        }
        get selectionStart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get selectionStart' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return esValue[implSymbol]["selectionStart"];
        }
        set selectionStart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set selectionStart' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["unsigned long"](V, {
              context: "Failed to set the 'selectionStart' property on 'HTMLInputElement': The provided value",
              globals: globalObject
            });
          }
          esValue[implSymbol]["selectionStart"] = V;
        }
        get selectionEnd() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get selectionEnd' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return esValue[implSymbol]["selectionEnd"];
        }
        set selectionEnd(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set selectionEnd' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["unsigned long"](V, {
              context: "Failed to set the 'selectionEnd' property on 'HTMLInputElement': The provided value",
              globals: globalObject
            });
          }
          esValue[implSymbol]["selectionEnd"] = V;
        }
        get selectionDirection() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get selectionDirection' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          return esValue[implSymbol]["selectionDirection"];
        }
        set selectionDirection(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set selectionDirection' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'selectionDirection' property on 'HTMLInputElement': The provided value",
              globals: globalObject
            });
          }
          esValue[implSymbol]["selectionDirection"] = V;
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get useMap() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get useMap' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("usemap");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set useMap(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set useMap' called on an object that is not a valid instance of HTMLInputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'useMap' property on 'HTMLInputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("usemap", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLInputElement.prototype, {
        stepUp: { enumerable: true },
        stepDown: { enumerable: true },
        checkValidity: { enumerable: true },
        reportValidity: { enumerable: true },
        setCustomValidity: { enumerable: true },
        select: { enumerable: true },
        setRangeText: { enumerable: true },
        setSelectionRange: { enumerable: true },
        accept: { enumerable: true },
        alt: { enumerable: true },
        autocomplete: { enumerable: true },
        autofocus: { enumerable: true },
        defaultChecked: { enumerable: true },
        checked: { enumerable: true },
        dirName: { enumerable: true },
        disabled: { enumerable: true },
        form: { enumerable: true },
        files: { enumerable: true },
        formNoValidate: { enumerable: true },
        formTarget: { enumerable: true },
        indeterminate: { enumerable: true },
        inputMode: { enumerable: true },
        list: { enumerable: true },
        max: { enumerable: true },
        maxLength: { enumerable: true },
        min: { enumerable: true },
        minLength: { enumerable: true },
        multiple: { enumerable: true },
        name: { enumerable: true },
        pattern: { enumerable: true },
        placeholder: { enumerable: true },
        readOnly: { enumerable: true },
        required: { enumerable: true },
        size: { enumerable: true },
        src: { enumerable: true },
        step: { enumerable: true },
        type: { enumerable: true },
        defaultValue: { enumerable: true },
        value: { enumerable: true },
        valueAsDate: { enumerable: true },
        valueAsNumber: { enumerable: true },
        willValidate: { enumerable: true },
        validity: { enumerable: true },
        validationMessage: { enumerable: true },
        labels: { enumerable: true },
        selectionStart: { enumerable: true },
        selectionEnd: { enumerable: true },
        selectionDirection: { enumerable: true },
        align: { enumerable: true },
        useMap: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLInputElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLInputElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLInputElement
      });
    };
    var Impl = require_HTMLInputElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLabelElement-impl.js
var require_HTMLLabelElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLabelElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var MouseEvent = require_MouseEvent();
    var { domSymbolTree } = require_internal_constants();
    var NODE_TYPE = require_node_type();
    var { isLabelable, isDisabled, isInteractiveContent } = require_form_controls();
    var { isInclusiveAncestor } = require_node4();
    var { fireAnEvent } = require_events4();
    function sendClickToAssociatedNode(node) {
      fireAnEvent("click", node, MouseEvent, {
        bubbles: true,
        cancelable: true,
        view: node.ownerDocument ? node.ownerDocument.defaultView : null,
        screenX: 0,
        screenY: 0,
        clientX: 0,
        clientY: 0,
        button: 0,
        detail: 1,
        relatedTarget: null
      });
    }
    var HTMLLabelElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._hasActivationBehavior = true;
      }
      get control() {
        if (this.hasAttributeNS(null, "for")) {
          const forValue = this.getAttributeNS(null, "for");
          if (forValue === "") {
            return null;
          }
          const root = this.getRootNode({});
          for (const descendant of domSymbolTree.treeIterator(root)) {
            if (descendant.nodeType === NODE_TYPE.ELEMENT_NODE && descendant.getAttributeNS(null, "id") === forValue) {
              return isLabelable(descendant) ? descendant : null;
            }
          }
          return null;
        }
        for (const descendant of domSymbolTree.treeIterator(this)) {
          if (isLabelable(descendant)) {
            return descendant;
          }
        }
        return null;
      }
      get form() {
        const node = this.control;
        if (node) {
          return node.form;
        }
        return null;
      }
      _activationBehavior(event) {
        if (event.target && event.target !== this && isInclusiveAncestor(this, event.target)) {
          for (const ancestor of domSymbolTree.ancestorsIterator(event.target)) {
            if (ancestor === this) {
              break;
            }
            if (isInteractiveContent(ancestor)) {
              return;
            }
          }
        }
        const node = this.control;
        if (node && !isDisabled(node)) {
          if (event.target && isInclusiveAncestor(node, event.target)) {
            return;
          }
          sendClickToAssociatedNode(node);
        }
      }
    };
    module.exports = {
      implementation: HTMLLabelElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js
var require_HTMLLabelElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLLabelElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLLabelElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLLabelElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLLabelElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get form() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get form' called on an object that is not a valid instance of HTMLLabelElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["form"]);
        }
        get htmlFor() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get htmlFor' called on an object that is not a valid instance of HTMLLabelElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("for");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set htmlFor(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set htmlFor' called on an object that is not a valid instance of HTMLLabelElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'htmlFor' property on 'HTMLLabelElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("for", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get control() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get control' called on an object that is not a valid instance of HTMLLabelElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["control"]);
        }
      }
      Object.defineProperties(HTMLLabelElement.prototype, {
        form: { enumerable: true },
        htmlFor: { enumerable: true },
        control: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLLabelElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLLabelElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLLabelElement
      });
    };
    var Impl = require_HTMLLabelElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLegendElement-impl.js
var require_HTMLLegendElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLegendElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var { formOwner } = require_form_controls();
    var { HTML_NS } = require_namespaces();
    var HTMLLegendElementImpl = class extends HTMLElementImpl {
      get form() {
        const parent = this.parentNode;
        if (parent && parent._localName === "fieldset" && parent.namespaceURI === HTML_NS) {
          return formOwner(parent);
        }
        return null;
      }
    };
    module.exports = {
      implementation: HTMLLegendElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js
var require_HTMLLegendElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLLegendElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLLegendElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLLegendElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLLegendElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get form() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get form' called on an object that is not a valid instance of HTMLLegendElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["form"]);
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLLegendElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLLegendElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLLegendElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLLegendElement.prototype, {
        form: { enumerable: true },
        align: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLLegendElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLLegendElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLLegendElement
      });
    };
    var Impl = require_HTMLLegendElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMapElement-impl.js
var require_HTMLMapElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMapElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLMapElementImpl = class extends HTMLElementImpl {
      get areas() {
        return this.getElementsByTagName("AREA");
      }
    };
    module.exports = {
      implementation: HTMLMapElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js
var require_HTMLMapElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLMapElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLMapElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLMapElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLMapElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLMapElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLMapElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLMapElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get areas() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get areas' called on an object that is not a valid instance of HTMLMapElement."
            );
          }
          return utils2.getSameObject(this, "areas", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["areas"]);
          });
        }
      }
      Object.defineProperties(HTMLMapElement.prototype, {
        name: { enumerable: true },
        areas: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLMapElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLMapElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLMapElement
      });
    };
    var Impl = require_HTMLMapElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMarqueeElement-impl.js
var require_HTMLMarqueeElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMarqueeElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLMarqueeElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLMarqueeElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js
var require_HTMLMarqueeElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var parseNonNegativeInteger_helpers_strings = require_strings2().parseNonNegativeInteger;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLMarqueeElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLMarqueeElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLMarqueeElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLMarqueeElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get behavior() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get behavior' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("behavior");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set behavior(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set behavior' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'behavior' property on 'HTMLMarqueeElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("behavior", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get bgColor() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get bgColor' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("bgcolor");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set bgColor(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set bgColor' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'bgColor' property on 'HTMLMarqueeElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("bgcolor", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get direction() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get direction' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("direction");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set direction(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set direction' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'direction' property on 'HTMLMarqueeElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("direction", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get height() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get height' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("height");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set height(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set height' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'height' property on 'HTMLMarqueeElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("height", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get hspace() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get hspace' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("hspace");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 0 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 0;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set hspace(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set hspace' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'hspace' property on 'HTMLMarqueeElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 0;
            esValue[implSymbol]._reflectSetTheContentAttribute("hspace", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get scrollAmount() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get scrollAmount' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("scrollamount");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 0 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 0;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set scrollAmount(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set scrollAmount' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'scrollAmount' property on 'HTMLMarqueeElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 0;
            esValue[implSymbol]._reflectSetTheContentAttribute("scrollamount", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get scrollDelay() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get scrollDelay' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("scrolldelay");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 0 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 0;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set scrollDelay(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set scrollDelay' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'scrollDelay' property on 'HTMLMarqueeElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 0;
            esValue[implSymbol]._reflectSetTheContentAttribute("scrolldelay", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get trueSpeed() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get trueSpeed' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("truespeed") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set trueSpeed(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set trueSpeed' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'trueSpeed' property on 'HTMLMarqueeElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("truespeed", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("truespeed");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get vspace() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get vspace' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("vspace");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 0 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 0;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set vspace(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set vspace' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'vspace' property on 'HTMLMarqueeElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 0;
            esValue[implSymbol]._reflectSetTheContentAttribute("vspace", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get width' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("width");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set width' called on an object that is not a valid instance of HTMLMarqueeElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'width' property on 'HTMLMarqueeElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLMarqueeElement.prototype, {
        behavior: { enumerable: true },
        bgColor: { enumerable: true },
        direction: { enumerable: true },
        height: { enumerable: true },
        hspace: { enumerable: true },
        scrollAmount: { enumerable: true },
        scrollDelay: { enumerable: true },
        trueSpeed: { enumerable: true },
        vspace: { enumerable: true },
        width: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLMarqueeElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLMarqueeElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLMarqueeElement
      });
    };
    var Impl = require_HTMLMarqueeElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/TextTrackKind.js
var require_TextTrackKind = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/TextTrackKind.js"(exports) {
    "use strict";
    var enumerationValues = /* @__PURE__ */ new Set(["subtitles", "captions", "descriptions", "chapters", "metadata"]);
    exports.enumerationValues = enumerationValues;
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      const string = `${value2}`;
      if (!enumerationValues.has(string)) {
        throw new globalObject.TypeError(`${context} '${string}' is not a valid enumeration value for TextTrackKind`);
      }
      return string;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMediaElement-impl.js
var require_HTMLMediaElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMediaElement-impl.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var notImplemented = require_not_implemented();
    var { fireAnEvent } = require_events4();
    function getTimeRangeDummy() {
      return {
        length: 0,
        start() {
          return 0;
        },
        end() {
          return 0;
        }
      };
    }
    var HTMLMediaElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._muted = false;
        this._volume = 1;
        this.readyState = 0;
        this.networkState = 0;
        this.currentTime = 0;
        this.currentSrc = "";
        this.buffered = getTimeRangeDummy();
        this.seeking = false;
        this.duration = NaN;
        this.paused = true;
        this.played = getTimeRangeDummy();
        this.seekable = getTimeRangeDummy();
        this.ended = false;
        this.audioTracks = [];
        this.videoTracks = [];
        this.textTracks = [];
      }
      get defaultPlaybackRate() {
        if (this._defaultPlaybackRate === void 0) {
          return 1;
        }
        return this._defaultPlaybackRate;
      }
      set defaultPlaybackRate(v3) {
        if (v3 === 0) {
          throw DOMException2.create(this._globalObject, ["The operation is not supported.", "NotSupportedError"]);
        }
        if (this._defaultPlaybackRate !== v3) {
          this._defaultPlaybackRate = v3;
          this._dispatchRateChange();
        }
      }
      get playbackRate() {
        if (this._playbackRate === void 0) {
          return 1;
        }
        return this._playbackRate;
      }
      set playbackRate(v3) {
        if (v3 !== this._playbackRate) {
          this._playbackRate = v3;
          this._dispatchRateChange();
        }
      }
      get muted() {
        return this._muted;
      }
      set muted(v3) {
        if (v3 !== this._muted) {
          this._muted = v3;
          this._dispatchVolumeChange();
        }
      }
      get defaultMuted() {
        return this.getAttributeNS(null, "muted") !== null;
      }
      set defaultMuted(v3) {
        if (v3) {
          this.setAttributeNS(null, "muted", v3);
        } else {
          this.removeAttributeNS(null, "muted");
        }
      }
      get volume() {
        return this._volume;
      }
      set volume(v3) {
        if (v3 < 0 || v3 > 1) {
          throw DOMException2.create(this._globalObject, ["The index is not in the allowed range.", "IndexSizeError"]);
        }
        if (this._volume !== v3) {
          this._volume = v3;
          this._dispatchVolumeChange();
        }
      }
      // Not (yet) implemented according to spec
      // Should return sane default values
      load() {
        notImplemented("HTMLMediaElement.prototype.load", this._ownerDocument._defaultView);
      }
      canPlayType() {
        return "";
      }
      play() {
        notImplemented("HTMLMediaElement.prototype.play", this._ownerDocument._defaultView);
      }
      pause() {
        notImplemented("HTMLMediaElement.prototype.pause", this._ownerDocument._defaultView);
      }
      addTextTrack() {
        notImplemented("HTMLMediaElement.prototype.addTextTrack", this._ownerDocument._defaultView);
      }
      _dispatchRateChange() {
        fireAnEvent("ratechange", this);
      }
      _dispatchVolumeChange() {
        fireAnEvent("volumechange", this);
      }
    };
    module.exports = {
      implementation: HTMLMediaElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js
var require_HTMLMediaElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var TextTrackKind = require_TextTrackKind();
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLMediaElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLMediaElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLMediaElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLMediaElement2 extends globalObject.HTMLElement {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        load() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'load' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol].load();
        }
        canPlayType(type) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'canPlayType' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'canPlayType' on 'HTMLMediaElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'canPlayType' on 'HTMLMediaElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].canPlayType(...args));
        }
        play() {
          try {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'play' called on an object that is not a valid instance of HTMLMediaElement."
              );
            }
            return utils2.tryWrapperForImpl(esValue[implSymbol].play());
          } catch (e4) {
            return globalObject.Promise.reject(e4);
          }
        }
        pause() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'pause' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol].pause();
        }
        addTextTrack(kind) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'addTextTrack' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'addTextTrack' on 'HTMLMediaElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = TextTrackKind.convert(globalObject, curArg, {
              context: "Failed to execute 'addTextTrack' on 'HTMLMediaElement': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'addTextTrack' on 'HTMLMediaElement': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = "";
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'addTextTrack' on 'HTMLMediaElement': parameter 3",
                globals: globalObject
              });
            } else {
              curArg = "";
            }
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].addTextTrack(...args));
        }
        get src() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get src' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("src");
            if (value2 === null) {
              return "";
            }
            if (this._srcURLCacheKey === value2) {
              return this._srcURLCache;
            }
            this._srcURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._srcURLCache = serializeURLwhatwg_url(urlRecord);
              return this._srcURLCache;
            }
            this._srcURLCache = conversions.USVString(value2);
            return this._srcURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set src(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set src' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'src' property on 'HTMLMediaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get currentSrc() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get currentSrc' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol]["currentSrc"];
        }
        get crossOrigin() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get crossOrigin' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("crossorigin");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set crossOrigin(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set crossOrigin' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'crossOrigin' property on 'HTMLMediaElement': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("crossorigin");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("crossorigin", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get networkState() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get networkState' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol]["networkState"];
        }
        get preload() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get preload' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("preload");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set preload(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set preload' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'preload' property on 'HTMLMediaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("preload", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get buffered() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get buffered' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["buffered"]);
        }
        get readyState() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get readyState' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol]["readyState"];
        }
        get seeking() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get seeking' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol]["seeking"];
        }
        get currentTime() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get currentTime' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol]["currentTime"];
        }
        set currentTime(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set currentTime' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          V = conversions["double"](V, {
            context: "Failed to set the 'currentTime' property on 'HTMLMediaElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["currentTime"] = V;
        }
        get duration() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get duration' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol]["duration"];
        }
        get paused() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get paused' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol]["paused"];
        }
        get defaultPlaybackRate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get defaultPlaybackRate' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol]["defaultPlaybackRate"];
        }
        set defaultPlaybackRate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set defaultPlaybackRate' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          V = conversions["double"](V, {
            context: "Failed to set the 'defaultPlaybackRate' property on 'HTMLMediaElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["defaultPlaybackRate"] = V;
        }
        get playbackRate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get playbackRate' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol]["playbackRate"];
        }
        set playbackRate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set playbackRate' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          V = conversions["double"](V, {
            context: "Failed to set the 'playbackRate' property on 'HTMLMediaElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["playbackRate"] = V;
        }
        get played() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get played' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["played"]);
        }
        get seekable() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get seekable' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["seekable"]);
        }
        get ended() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ended' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol]["ended"];
        }
        get autoplay() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get autoplay' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("autoplay") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set autoplay(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set autoplay' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'autoplay' property on 'HTMLMediaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("autoplay", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("autoplay");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get loop() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get loop' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("loop") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set loop(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set loop' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'loop' property on 'HTMLMediaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("loop", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("loop");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get controls() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get controls' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("controls") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set controls(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set controls' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'controls' property on 'HTMLMediaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("controls", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("controls");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get volume() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get volume' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol]["volume"];
        }
        set volume(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set volume' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          V = conversions["double"](V, {
            context: "Failed to set the 'volume' property on 'HTMLMediaElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["volume"] = V;
        }
        get muted() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get muted' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return esValue[implSymbol]["muted"];
        }
        set muted(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set muted' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'muted' property on 'HTMLMediaElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["muted"] = V;
        }
        get defaultMuted() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get defaultMuted' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("muted") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set defaultMuted(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set defaultMuted' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'defaultMuted' property on 'HTMLMediaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("muted", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("muted");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get audioTracks() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get audioTracks' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return utils2.getSameObject(this, "audioTracks", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["audioTracks"]);
          });
        }
        get videoTracks() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get videoTracks' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return utils2.getSameObject(this, "videoTracks", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["videoTracks"]);
          });
        }
        get textTracks() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get textTracks' called on an object that is not a valid instance of HTMLMediaElement."
            );
          }
          return utils2.getSameObject(this, "textTracks", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["textTracks"]);
          });
        }
      }
      Object.defineProperties(HTMLMediaElement2.prototype, {
        load: { enumerable: true },
        canPlayType: { enumerable: true },
        play: { enumerable: true },
        pause: { enumerable: true },
        addTextTrack: { enumerable: true },
        src: { enumerable: true },
        currentSrc: { enumerable: true },
        crossOrigin: { enumerable: true },
        networkState: { enumerable: true },
        preload: { enumerable: true },
        buffered: { enumerable: true },
        readyState: { enumerable: true },
        seeking: { enumerable: true },
        currentTime: { enumerable: true },
        duration: { enumerable: true },
        paused: { enumerable: true },
        defaultPlaybackRate: { enumerable: true },
        playbackRate: { enumerable: true },
        played: { enumerable: true },
        seekable: { enumerable: true },
        ended: { enumerable: true },
        autoplay: { enumerable: true },
        loop: { enumerable: true },
        controls: { enumerable: true },
        volume: { enumerable: true },
        muted: { enumerable: true },
        defaultMuted: { enumerable: true },
        audioTracks: { enumerable: true },
        videoTracks: { enumerable: true },
        textTracks: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLMediaElement", configurable: true },
        NETWORK_EMPTY: { value: 0, enumerable: true },
        NETWORK_IDLE: { value: 1, enumerable: true },
        NETWORK_LOADING: { value: 2, enumerable: true },
        NETWORK_NO_SOURCE: { value: 3, enumerable: true },
        HAVE_NOTHING: { value: 0, enumerable: true },
        HAVE_METADATA: { value: 1, enumerable: true },
        HAVE_CURRENT_DATA: { value: 2, enumerable: true },
        HAVE_FUTURE_DATA: { value: 3, enumerable: true },
        HAVE_ENOUGH_DATA: { value: 4, enumerable: true }
      });
      Object.defineProperties(HTMLMediaElement2, {
        NETWORK_EMPTY: { value: 0, enumerable: true },
        NETWORK_IDLE: { value: 1, enumerable: true },
        NETWORK_LOADING: { value: 2, enumerable: true },
        NETWORK_NO_SOURCE: { value: 3, enumerable: true },
        HAVE_NOTHING: { value: 0, enumerable: true },
        HAVE_METADATA: { value: 1, enumerable: true },
        HAVE_CURRENT_DATA: { value: 2, enumerable: true },
        HAVE_FUTURE_DATA: { value: 3, enumerable: true },
        HAVE_ENOUGH_DATA: { value: 4, enumerable: true }
      });
      ctorRegistry[interfaceName] = HTMLMediaElement2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLMediaElement2
      });
    };
    var Impl = require_HTMLMediaElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMeterElement-impl.js
var require_HTMLMeterElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMeterElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var { parseFloatingPointNumber } = require_strings2();
    var { getLabelsForLabelable } = require_form_controls();
    var HTMLMeterElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._labels = null;
      }
      // https://html.spec.whatwg.org/multipage/form-elements.html#concept-meter-minimum
      get _minimumValue() {
        const min2 = this.getAttributeNS(null, "min");
        if (min2 !== null) {
          const parsed = parseFloatingPointNumber(min2);
          if (parsed !== null) {
            return parsed;
          }
        }
        return 0;
      }
      // https://html.spec.whatwg.org/multipage/form-elements.html#concept-meter-maximum
      get _maximumValue() {
        let candidate = 1;
        const max3 = this.getAttributeNS(null, "max");
        if (max3 !== null) {
          const parsed = parseFloatingPointNumber(max3);
          if (parsed !== null) {
            candidate = parsed;
          }
        }
        const minimumValue = this._minimumValue;
        return candidate >= minimumValue ? candidate : minimumValue;
      }
      // https://html.spec.whatwg.org/multipage/form-elements.html#concept-meter-actual
      get _actualValue() {
        let candidate = 0;
        const value2 = this.getAttributeNS(null, "value");
        if (value2 !== null) {
          const parsed = parseFloatingPointNumber(value2);
          if (parsed !== null) {
            candidate = parsed;
          }
        }
        const minimumValue = this._minimumValue;
        if (candidate < minimumValue) {
          return minimumValue;
        }
        const maximumValue = this._maximumValue;
        return candidate > maximumValue ? maximumValue : candidate;
      }
      // https://html.spec.whatwg.org/multipage/form-elements.html#concept-meter-low
      get _lowBoundary() {
        const minimumValue = this._minimumValue;
        let candidate = minimumValue;
        const low = this.getAttributeNS(null, "low");
        if (low !== null) {
          const parsed = parseFloatingPointNumber(low);
          if (parsed !== null) {
            candidate = parsed;
          }
        }
        if (candidate < minimumValue) {
          return minimumValue;
        }
        const maximumValue = this._maximumValue;
        return candidate > maximumValue ? maximumValue : candidate;
      }
      // https://html.spec.whatwg.org/multipage/form-elements.html#concept-meter-high
      get _highBoundary() {
        const maximumValue = this._maximumValue;
        let candidate = maximumValue;
        const high = this.getAttributeNS(null, "high");
        if (high !== null) {
          const parsed = parseFloatingPointNumber(high);
          if (parsed !== null) {
            candidate = parsed;
          }
        }
        const lowBoundary = this._lowBoundary;
        if (candidate < lowBoundary) {
          return lowBoundary;
        }
        return candidate > maximumValue ? maximumValue : candidate;
      }
      // https://html.spec.whatwg.org/multipage/form-elements.html#concept-meter-optimum
      get _optimumPoint() {
        const minimumValue = this._minimumValue;
        const maximumValue = this._maximumValue;
        let candidate = (minimumValue + maximumValue) / 2;
        const optimum = this.getAttributeNS(null, "optimum");
        if (optimum !== null) {
          const parsed = parseFloatingPointNumber(optimum);
          if (parsed !== null) {
            candidate = parsed;
          }
        }
        if (candidate < minimumValue) {
          return minimumValue;
        }
        return candidate > maximumValue ? maximumValue : candidate;
      }
      get labels() {
        return getLabelsForLabelable(this);
      }
      get value() {
        return this._actualValue;
      }
      set value(val) {
        this.setAttributeNS(null, "value", String(val));
      }
      get min() {
        return this._minimumValue;
      }
      set min(val) {
        this.setAttributeNS(null, "min", String(val));
      }
      get max() {
        return this._maximumValue;
      }
      set max(val) {
        this.setAttributeNS(null, "max", String(val));
      }
      get low() {
        return this._lowBoundary;
      }
      set low(val) {
        this.setAttributeNS(null, "low", String(val));
      }
      get high() {
        return this._highBoundary;
      }
      set high(val) {
        this.setAttributeNS(null, "high", String(val));
      }
      get optimum() {
        return this._optimumPoint;
      }
      set optimum(val) {
        this.setAttributeNS(null, "optimum", String(val));
      }
    };
    module.exports = {
      implementation: HTMLMeterElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js
var require_HTMLMeterElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLMeterElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLMeterElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLMeterElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLMeterElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get value' called on an object that is not a valid instance of HTMLMeterElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["value"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set value' called on an object that is not a valid instance of HTMLMeterElement."
            );
          }
          V = conversions["double"](V, {
            context: "Failed to set the 'value' property on 'HTMLMeterElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["value"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get min() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get min' called on an object that is not a valid instance of HTMLMeterElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["min"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set min(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set min' called on an object that is not a valid instance of HTMLMeterElement."
            );
          }
          V = conversions["double"](V, {
            context: "Failed to set the 'min' property on 'HTMLMeterElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["min"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get max() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get max' called on an object that is not a valid instance of HTMLMeterElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["max"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set max(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set max' called on an object that is not a valid instance of HTMLMeterElement."
            );
          }
          V = conversions["double"](V, {
            context: "Failed to set the 'max' property on 'HTMLMeterElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["max"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get low() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get low' called on an object that is not a valid instance of HTMLMeterElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["low"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set low(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set low' called on an object that is not a valid instance of HTMLMeterElement."
            );
          }
          V = conversions["double"](V, {
            context: "Failed to set the 'low' property on 'HTMLMeterElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["low"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get high() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get high' called on an object that is not a valid instance of HTMLMeterElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["high"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set high(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set high' called on an object that is not a valid instance of HTMLMeterElement."
            );
          }
          V = conversions["double"](V, {
            context: "Failed to set the 'high' property on 'HTMLMeterElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["high"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get optimum() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get optimum' called on an object that is not a valid instance of HTMLMeterElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["optimum"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set optimum(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set optimum' called on an object that is not a valid instance of HTMLMeterElement."
            );
          }
          V = conversions["double"](V, {
            context: "Failed to set the 'optimum' property on 'HTMLMeterElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["optimum"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get labels() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get labels' called on an object that is not a valid instance of HTMLMeterElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["labels"]);
        }
      }
      Object.defineProperties(HTMLMeterElement.prototype, {
        value: { enumerable: true },
        min: { enumerable: true },
        max: { enumerable: true },
        low: { enumerable: true },
        high: { enumerable: true },
        optimum: { enumerable: true },
        labels: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLMeterElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLMeterElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLMeterElement
      });
    };
    var Impl = require_HTMLMeterElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLModElement-impl.js
var require_HTMLModElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLModElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLModElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLModElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js
var require_HTMLModElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLModElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLModElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLModElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLModElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get cite() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get cite' called on an object that is not a valid instance of HTMLModElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("cite");
            if (value2 === null) {
              return "";
            }
            if (this._citeURLCacheKey === value2) {
              return this._citeURLCache;
            }
            this._citeURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._citeURLCache = serializeURLwhatwg_url(urlRecord);
              return this._citeURLCache;
            }
            this._citeURLCache = conversions.USVString(value2);
            return this._citeURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set cite(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set cite' called on an object that is not a valid instance of HTMLModElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'cite' property on 'HTMLModElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("cite", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get dateTime() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get dateTime' called on an object that is not a valid instance of HTMLModElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("datetime");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set dateTime(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set dateTime' called on an object that is not a valid instance of HTMLModElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'dateTime' property on 'HTMLModElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("datetime", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLModElement.prototype, {
        cite: { enumerable: true },
        dateTime: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLModElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLModElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLModElement
      });
    };
    var Impl = require_HTMLModElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOutputElement-impl.js
var require_HTMLOutputElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOutputElement-impl.js"(exports, module) {
    "use strict";
    var DOMTokenList = require_DOMTokenList();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var DefaultConstraintValidationImpl = require_DefaultConstraintValidation_impl().implementation;
    var { mixin: mixin2 } = require_utils17();
    var { getLabelsForLabelable, formOwner } = require_form_controls();
    var HTMLOutputElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._labels = null;
        this._defaultValueOverride = null;
        this._customValidityErrorMessage = "";
      }
      _attrModified(name, value2, oldValue) {
        super._attrModified(name, value2, oldValue);
        if (name === "for" && this._htmlFor !== void 0) {
          this._htmlFor.attrModified();
        }
      }
      _barredFromConstraintValidationSpecialization() {
        return true;
      }
      _formReset() {
        this.textContent = this.defaultValue;
        this._defaultValueOverride = null;
      }
      get htmlFor() {
        if (this._htmlFor === void 0) {
          this._htmlFor = DOMTokenList.createImpl(this._globalObject, [], {
            element: this,
            attributeLocalName: "for"
          });
        }
        return this._htmlFor;
      }
      get type() {
        return "output";
      }
      get labels() {
        return getLabelsForLabelable(this);
      }
      get form() {
        return formOwner(this);
      }
      get value() {
        return this.textContent;
      }
      set value(val) {
        this._defaultValueOverride = this.defaultValue;
        this.textContent = val;
      }
      get defaultValue() {
        if (this._defaultValueOverride !== null) {
          return this._defaultValueOverride;
        }
        return this.textContent;
      }
      set defaultValue(val) {
        if (this._defaultValueOverride === null) {
          this.textContent = val;
          return;
        }
        this._defaultValueOverride = val;
      }
    };
    mixin2(HTMLOutputElementImpl.prototype, DefaultConstraintValidationImpl.prototype);
    module.exports = {
      implementation: HTMLOutputElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js
var require_HTMLOutputElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLOutputElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLOutputElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLOutputElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLOutputElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        checkValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'checkValidity' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          return esValue[implSymbol].checkValidity();
        }
        reportValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'reportValidity' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          return esValue[implSymbol].reportValidity();
        }
        setCustomValidity(error) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setCustomValidity' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setCustomValidity' on 'HTMLOutputElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'setCustomValidity' on 'HTMLOutputElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setCustomValidity(...args);
        }
        get htmlFor() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get htmlFor' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          return utils2.getSameObject(this, "htmlFor", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["htmlFor"]);
          });
        }
        set htmlFor(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set htmlFor' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          const Q = esValue["htmlFor"];
          if (!utils2.isObject(Q)) {
            throw new globalObject.TypeError("Property 'htmlFor' is not an object");
          }
          Reflect.set(Q, "value", V);
        }
        get form() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get form' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["form"]);
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLOutputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          return esValue[implSymbol]["type"];
        }
        get defaultValue() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get defaultValue' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["defaultValue"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set defaultValue(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set defaultValue' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'defaultValue' property on 'HTMLOutputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["defaultValue"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get value' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["value"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set value' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'value' property on 'HTMLOutputElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["value"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get willValidate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get willValidate' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          return esValue[implSymbol]["willValidate"];
        }
        get validity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validity' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["validity"]);
        }
        get validationMessage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validationMessage' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          return esValue[implSymbol]["validationMessage"];
        }
        get labels() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get labels' called on an object that is not a valid instance of HTMLOutputElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["labels"]);
        }
      }
      Object.defineProperties(HTMLOutputElement.prototype, {
        checkValidity: { enumerable: true },
        reportValidity: { enumerable: true },
        setCustomValidity: { enumerable: true },
        htmlFor: { enumerable: true },
        form: { enumerable: true },
        name: { enumerable: true },
        type: { enumerable: true },
        defaultValue: { enumerable: true },
        value: { enumerable: true },
        willValidate: { enumerable: true },
        validity: { enumerable: true },
        validationMessage: { enumerable: true },
        labels: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLOutputElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLOutputElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLOutputElement
      });
    };
    var Impl = require_HTMLOutputElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPictureElement-impl.js
var require_HTMLPictureElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPictureElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLPictureElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLPictureElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js
var require_HTMLPictureElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLPictureElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLPictureElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLPictureElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLPictureElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
      }
      Object.defineProperties(HTMLPictureElement.prototype, {
        [Symbol.toStringTag]: { value: "HTMLPictureElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLPictureElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLPictureElement
      });
    };
    var Impl = require_HTMLPictureElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLProgressElement-impl.js
var require_HTMLProgressElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLProgressElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var { getLabelsForLabelable } = require_form_controls();
    var { parseFloatingPointNumber } = require_strings2();
    var HTMLProgressElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._labels = null;
      }
      get _isDeterminate() {
        return this.hasAttributeNS(null, "value");
      }
      // https://html.spec.whatwg.org/multipage/form-elements.html#concept-progress-value
      get _value() {
        const valueAttr = this.getAttributeNS(null, "value");
        if (valueAttr !== null) {
          const parsedValue = parseFloatingPointNumber(valueAttr);
          if (parsedValue !== null && parsedValue > 0) {
            return parsedValue;
          }
        }
        return 0;
      }
      // https://html.spec.whatwg.org/multipage/form-elements.html#concept-progress-current-value
      get _currentValue() {
        const value2 = this._value;
        return value2 > this._maximumValue ? this._maximumValue : value2;
      }
      // https://html.spec.whatwg.org/multipage/form-elements.html#concept-progress-maximum
      get _maximumValue() {
        const maxAttr = this.getAttributeNS(null, "max");
        if (maxAttr !== null) {
          const parsedMax = parseFloatingPointNumber(maxAttr);
          if (parsedMax !== null && parsedMax > 0) {
            return parsedMax;
          }
        }
        return 1;
      }
      get value() {
        if (this._isDeterminate) {
          return this._currentValue;
        }
        return 0;
      }
      set value(value2) {
        this.setAttributeNS(null, "value", value2);
      }
      get position() {
        if (!this._isDeterminate) {
          return -1;
        }
        return this._currentValue / this._maximumValue;
      }
      get labels() {
        return getLabelsForLabelable(this);
      }
    };
    module.exports = {
      implementation: HTMLProgressElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js
var require_HTMLProgressElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var parseFloatingPointNumber_helpers_strings = require_strings2().parseFloatingPointNumber;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLProgressElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLProgressElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLProgressElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLProgressElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get value' called on an object that is not a valid instance of HTMLProgressElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["value"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set value' called on an object that is not a valid instance of HTMLProgressElement."
            );
          }
          V = conversions["double"](V, {
            context: "Failed to set the 'value' property on 'HTMLProgressElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["value"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get max() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get max' called on an object that is not a valid instance of HTMLProgressElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("max");
            if (value2 !== null) {
              value2 = parseFloatingPointNumber_helpers_strings(value2);
              if (value2 !== null && value2 > 0) {
                return value2;
              }
            }
            return 1;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set max(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set max' called on an object that is not a valid instance of HTMLProgressElement."
            );
          }
          V = conversions["double"](V, {
            context: "Failed to set the 'max' property on 'HTMLProgressElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V > 0) {
              esValue[implSymbol]._reflectSetTheContentAttribute("max", String(V));
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get position() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get position' called on an object that is not a valid instance of HTMLProgressElement."
            );
          }
          return esValue[implSymbol]["position"];
        }
        get labels() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get labels' called on an object that is not a valid instance of HTMLProgressElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["labels"]);
        }
      }
      Object.defineProperties(HTMLProgressElement.prototype, {
        value: { enumerable: true },
        max: { enumerable: true },
        position: { enumerable: true },
        labels: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLProgressElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLProgressElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLProgressElement
      });
    };
    var Impl = require_HTMLProgressElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLQuoteElement-impl.js
var require_HTMLQuoteElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLQuoteElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLQuoteElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLQuoteElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js
var require_HTMLQuoteElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLQuoteElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLQuoteElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLQuoteElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLQuoteElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get cite() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get cite' called on an object that is not a valid instance of HTMLQuoteElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("cite");
            if (value2 === null) {
              return "";
            }
            if (this._citeURLCacheKey === value2) {
              return this._citeURLCache;
            }
            this._citeURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._citeURLCache = serializeURLwhatwg_url(urlRecord);
              return this._citeURLCache;
            }
            this._citeURLCache = conversions.USVString(value2);
            return this._citeURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set cite(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set cite' called on an object that is not a valid instance of HTMLQuoteElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'cite' property on 'HTMLQuoteElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("cite", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLQuoteElement.prototype, {
        cite: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLQuoteElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLQuoteElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLQuoteElement
      });
    };
    var Impl = require_HTMLQuoteElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLScriptElement-impl.js
var require_HTMLScriptElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLScriptElement-impl.js"(exports, module) {
    "use strict";
    var vm = __require("vm");
    var whatwgEncoding = require_whatwg_encoding();
    var MIMEType = require_mime_type();
    var { serializeURL } = require_whatwg_url();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var reportException = require_runtime_script_errors();
    var { domSymbolTree, cloningSteps } = require_internal_constants();
    var { asciiLowercase } = require_strings2();
    var { childTextContent } = require_text();
    var nodeTypes = require_node_type();
    var jsMIMETypes = /* @__PURE__ */ new Set([
      "application/ecmascript",
      "application/javascript",
      "application/x-ecmascript",
      "application/x-javascript",
      "text/ecmascript",
      "text/javascript",
      "text/javascript1.0",
      "text/javascript1.1",
      "text/javascript1.2",
      "text/javascript1.3",
      "text/javascript1.4",
      "text/javascript1.5",
      "text/jscript",
      "text/livescript",
      "text/x-ecmascript",
      "text/x-javascript"
    ]);
    var HTMLScriptElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._alreadyStarted = false;
        this._parserInserted = false;
      }
      _attach() {
        super._attach();
        if (!this._parserInserted || this._isMovingDueToDocumentWrite) {
          this._eval();
        }
      }
      _canRunScript() {
        const document2 = this._ownerDocument;
        if (!document2._defaultView || document2._defaultView._runScripts !== "dangerously" || document2._scriptingDisabled) {
          return false;
        }
        return true;
      }
      _fetchExternalScript() {
        const document2 = this._ownerDocument;
        const resourceLoader = document2._resourceLoader;
        const defaultEncoding = whatwgEncoding.labelToName(this.getAttributeNS(null, "charset")) || document2._encoding;
        let request;
        if (!this._canRunScript()) {
          return;
        }
        const src = this.getAttributeNS(null, "src");
        const url3 = this._ownerDocument.encodingParseAURL(src);
        if (url3 === null) {
          return;
        }
        const urlString = serializeURL(url3);
        const onLoadExternalScript = (data2) => {
          const { response } = request;
          let contentType;
          if (response && response.statusCode !== void 0 && response.statusCode >= 400) {
            throw new Error("Status code: " + response.statusCode);
          }
          if (response) {
            contentType = MIMEType.parse(response.headers["content-type"]) || new MIMEType("text/plain");
          }
          const encoding = whatwgEncoding.getBOMEncoding(data2) || contentType && whatwgEncoding.labelToName(contentType.parameters.get("charset")) || defaultEncoding;
          const script = whatwgEncoding.decode(data2, encoding);
          this._innerEval(script, urlString);
        };
        request = resourceLoader.fetch(urlString, {
          element: this,
          onLoad: onLoadExternalScript
        });
      }
      _fetchInternalScript() {
        const document2 = this._ownerDocument;
        if (!this._canRunScript()) {
          return;
        }
        document2._queue.push(null, () => {
          this._innerEval(this.text, document2.URL);
        }, null, false, this);
      }
      _attrModified(name, value2, oldValue) {
        super._attrModified(name, value2, oldValue);
        if (this._attached && !this._startedEval && name === "src" && oldValue === null && value2 !== null) {
          this._fetchExternalScript();
        }
      }
      _poppedOffStackOfOpenElements() {
        this._eval();
      }
      // Vaguely similar to https://html.spec.whatwg.org/multipage/scripting.html#prepare-a-script, but we have a long way
      // to go before it's aligned.
      _eval() {
        if (this._alreadyStarted) {
          return;
        }
        if (!this.hasAttributeNS(null, "src") && this.text.length === 0) {
          return;
        }
        if (!this._attached) {
          return;
        }
        const scriptBlocksTypeString = this._getTypeString();
        const type = getType2(scriptBlocksTypeString);
        if (type !== "classic") {
          return;
        }
        this._alreadyStarted = true;
        if (this.hasAttributeNS(null, "src")) {
          this._fetchExternalScript();
        } else {
          this._fetchInternalScript();
        }
      }
      _innerEval(text, filename) {
        this._ownerDocument._writeAfterElement = this;
        processJavaScript(this, text, filename);
        delete this._ownerDocument._writeAfterElement;
      }
      _getTypeString() {
        const typeAttr = this.getAttributeNS(null, "type");
        const langAttr = this.getAttributeNS(null, "language");
        if (typeAttr === "") {
          return "text/javascript";
        }
        if (typeAttr === null && langAttr === "") {
          return "text/javascript";
        }
        if (typeAttr === null && langAttr === null) {
          return "text/javascript";
        }
        if (typeAttr !== null) {
          return typeAttr.trim();
        }
        if (langAttr !== null) {
          return "text/" + langAttr;
        }
        return null;
      }
      get text() {
        return childTextContent(this);
      }
      set text(text) {
        this.textContent = text;
      }
      // https://html.spec.whatwg.org/multipage/scripting.html#script-processing-model
      [cloningSteps](copy2, node) {
        copy2._alreadyStarted = node._alreadyStarted;
      }
    };
    function processJavaScript(element, code, filename) {
      const document2 = element.ownerDocument;
      const window2 = document2 && document2._global;
      if (window2) {
        document2._currentScript = element;
        let lineOffset = 0;
        if (!element.hasAttributeNS(null, "src")) {
          for (const child of domSymbolTree.childrenIterator(element)) {
            if (child.nodeType === nodeTypes.TEXT_NODE) {
              if (child.sourceCodeLocation) {
                lineOffset = child.sourceCodeLocation.startLine - 1;
              }
              break;
            }
          }
        }
        try {
          vm.runInContext(code, window2, { filename, lineOffset, displayErrors: false });
        } catch (e4) {
          reportException(window2, e4, filename);
        } finally {
          document2._currentScript = null;
        }
      }
    }
    function getType2(typeString) {
      const lowercased = asciiLowercase(typeString);
      if (jsMIMETypes.has(lowercased)) {
        return "classic";
      }
      if (lowercased === "module") {
        return "module";
      }
      return null;
    }
    module.exports = {
      implementation: HTMLScriptElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js
var require_HTMLScriptElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLScriptElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLScriptElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLScriptElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLScriptElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get src() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get src' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("src");
            if (value2 === null) {
              return "";
            }
            if (this._srcURLCacheKey === value2) {
              return this._srcURLCache;
            }
            this._srcURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._srcURLCache = serializeURLwhatwg_url(urlRecord);
              return this._srcURLCache;
            }
            this._srcURLCache = conversions.USVString(value2);
            return this._srcURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set src(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set src' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'src' property on 'HTMLScriptElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("type");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set type(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set type' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'type' property on 'HTMLScriptElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get defer() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get defer' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("defer") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set defer(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set defer' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'defer' property on 'HTMLScriptElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("defer", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("defer");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get crossOrigin() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get crossOrigin' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("crossorigin");
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set crossOrigin(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set crossOrigin' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = conversions["DOMString"](V, {
              context: "Failed to set the 'crossOrigin' property on 'HTMLScriptElement': The provided value",
              globals: globalObject
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V === null) {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("crossorigin");
            } else {
              esValue[implSymbol]._reflectSetTheContentAttribute("crossorigin", V);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get text() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get text' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["text"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set text(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set text' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'text' property on 'HTMLScriptElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["text"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get charset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get charset' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("charset");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set charset(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set charset' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'charset' property on 'HTMLScriptElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("charset", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get event() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get event' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("event");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set event(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set event' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'event' property on 'HTMLScriptElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("event", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get htmlFor() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get htmlFor' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("for");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set htmlFor(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set htmlFor' called on an object that is not a valid instance of HTMLScriptElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'htmlFor' property on 'HTMLScriptElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("for", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLScriptElement.prototype, {
        src: { enumerable: true },
        type: { enumerable: true },
        defer: { enumerable: true },
        crossOrigin: { enumerable: true },
        text: { enumerable: true },
        charset: { enumerable: true },
        event: { enumerable: true },
        htmlFor: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLScriptElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLScriptElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLScriptElement
      });
    };
    var Impl = require_HTMLScriptElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSelectElement-impl.js
var require_HTMLSelectElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSelectElement-impl.js"(exports, module) {
    "use strict";
    var conversions = require_lib20();
    var idlUtils = require_utils16();
    var ValidityState = require_ValidityState();
    var DefaultConstraintValidationImpl = require_DefaultConstraintValidation_impl().implementation;
    var { mixin: mixin2 } = require_utils17();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var NODE_TYPE = require_node_type();
    var HTMLCollection = require_HTMLCollection();
    var HTMLOptionsCollection = require_HTMLOptionsCollection();
    var { domSymbolTree } = require_internal_constants();
    var { getLabelsForLabelable, formOwner, isDisabled } = require_form_controls();
    var { parseNonNegativeInteger } = require_strings2();
    var HTMLSelectElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._options = HTMLOptionsCollection.createImpl(this._globalObject, [], {
          element: this,
          query: () => {
            const array = [];
            for (const child of domSymbolTree.childrenIterator(this)) {
              if (child._localName === "option") {
                array.push(child);
              } else if (child._localName === "optgroup") {
                for (const childOfGroup of domSymbolTree.childrenIterator(child)) {
                  if (childOfGroup._localName === "option") {
                    array.push(childOfGroup);
                  }
                }
              }
            }
            return array;
          }
        });
        this._selectedOptions = null;
        this._customValidityErrorMessage = "";
        this._labels = null;
      }
      _formReset() {
        for (const option of this.options) {
          option._selectedness = option.hasAttributeNS(null, "selected");
          option._dirtyness = false;
        }
        this._askedForAReset();
      }
      _askedForAReset() {
        if (this.hasAttributeNS(null, "multiple")) {
          return;
        }
        const selected = this.options.filter((opt) => opt._selectedness);
        const size = this._displaySize;
        if (size === 1 && !selected.length) {
          for (const option of this.options) {
            let disabled = option.hasAttributeNS(null, "disabled");
            const parentNode = domSymbolTree.parent(option);
            if (parentNode && parentNode._localName === "optgroup" && parentNode.hasAttributeNS(null, "disabled")) {
              disabled = true;
            }
            if (!disabled) {
              option._selectedness = true;
              break;
            }
          }
        } else if (selected.length >= 2) {
          selected.forEach((option, index2) => {
            option._selectedness = index2 === selected.length - 1;
          });
        }
      }
      _descendantAdded(parent, child) {
        if (child.nodeType === NODE_TYPE.ELEMENT_NODE) {
          this._askedForAReset();
        }
        super._descendantAdded(parent, child);
      }
      _descendantRemoved(parent, child) {
        if (child.nodeType === NODE_TYPE.ELEMENT_NODE) {
          this._askedForAReset();
        }
        super._descendantRemoved(parent, child);
      }
      _attrModified(name, value2, oldValue) {
        if (name === "multiple" || name === "size") {
          this._askedForAReset();
        }
        super._attrModified(name, value2, oldValue);
      }
      get _displaySize() {
        if (this.hasAttributeNS(null, "size")) {
          const size = parseNonNegativeInteger(this.getAttributeNS(null, "size"));
          if (size !== null) {
            return size;
          }
        }
        return this.hasAttributeNS(null, "multiple") ? 4 : 1;
      }
      get _mutable() {
        return !isDisabled(this);
      }
      get options() {
        return this._options;
      }
      get selectedOptions() {
        return HTMLCollection.createImpl(this._globalObject, [], {
          element: this,
          query: () => domSymbolTree.treeToArray(this, {
            filter: (node) => node._localName === "option" && node._selectedness === true
          })
        });
      }
      get selectedIndex() {
        for (let i5 = 0; i5 < this.options.length; i5++) {
          if (this.options.item(i5)._selectedness) {
            return i5;
          }
        }
        return -1;
      }
      set selectedIndex(index2) {
        for (let i5 = 0; i5 < this.options.length; i5++) {
          this.options.item(i5)._selectedness = false;
        }
        const selectedOption = this.options.item(index2);
        if (selectedOption) {
          selectedOption._selectedness = true;
          selectedOption._dirtyness = true;
        }
      }
      get labels() {
        return getLabelsForLabelable(this);
      }
      get value() {
        for (const option of this.options) {
          if (option._selectedness) {
            return option.value;
          }
        }
        return "";
      }
      set value(val) {
        for (const option of this.options) {
          if (option.value === val) {
            option._selectedness = true;
            option._dirtyness = true;
          } else {
            option._selectedness = false;
          }
          option._modified();
        }
      }
      get form() {
        return formOwner(this);
      }
      get type() {
        return this.hasAttributeNS(null, "multiple") ? "select-multiple" : "select-one";
      }
      get [idlUtils.supportedPropertyIndices]() {
        return this.options[idlUtils.supportedPropertyIndices];
      }
      get length() {
        return this.options.length;
      }
      set length(value2) {
        this.options.length = value2;
      }
      item(index2) {
        return this.options.item(index2);
      }
      namedItem(name) {
        return this.options.namedItem(name);
      }
      [idlUtils.indexedSetNew](index2, value2) {
        return this.options[idlUtils.indexedSetNew](index2, value2);
      }
      [idlUtils.indexedSetExisting](index2, value2) {
        return this.options[idlUtils.indexedSetExisting](index2, value2);
      }
      add(opt, before) {
        this.options.add(opt, before);
      }
      remove(index2) {
        if (arguments.length > 0) {
          index2 = conversions.long(index2, {
            context: "Failed to execute 'remove' on 'HTMLSelectElement': parameter 1"
          });
          this.options.remove(index2);
        } else {
          super.remove();
        }
      }
      _barredFromConstraintValidationSpecialization() {
        return this.hasAttributeNS(null, "readonly");
      }
      // Constraint validation: If the element has its required attribute specified,
      // and either none of the option elements in the select element's list of options
      // have their selectedness set to true, or the only option element in the select
      // element's list of options with its selectedness set to true is the placeholder
      // label option, then the element is suffering from being missing.
      get validity() {
        if (!this._validity) {
          const state = {
            valueMissing: () => {
              if (!this.hasAttributeNS(null, "required")) {
                return false;
              }
              const selectedOptionIndex = this.selectedIndex;
              return selectedOptionIndex < 0 || selectedOptionIndex === 0 && this._hasPlaceholderOption;
            }
          };
          this._validity = ValidityState.createImpl(this._globalObject, [], {
            element: this,
            state
          });
        }
        return this._validity;
      }
      // If a select element has a required attribute specified, does not have a multiple attribute
      // specified, and has a display size of 1; and if the value of the first option element in the
      // select element's list of options (if any) is the empty string, and that option element's parent
      // node is the select element(and not an optgroup element), then that option is the select
      // element's placeholder label option.
      // https://html.spec.whatwg.org/multipage/form-elements.html#placeholder-label-option
      get _hasPlaceholderOption() {
        return this.hasAttributeNS(null, "required") && !this.hasAttributeNS(null, "multiple") && this._displaySize === 1 && this.options.length > 0 && this.options.item(0).value === "" && this.options.item(0).parentNode._localName !== "optgroup";
      }
    };
    mixin2(HTMLSelectElementImpl.prototype, DefaultConstraintValidationImpl.prototype);
    module.exports = {
      implementation: HTMLSelectElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js
var require_HTMLSelectElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var HTMLOptionElement = require_HTMLOptionElement();
    var HTMLOptGroupElement = require_HTMLOptGroupElement();
    var HTMLElement2 = require_HTMLElement();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var parseNonNegativeInteger_helpers_strings = require_strings2().parseNonNegativeInteger;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "HTMLSelectElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLSelectElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLSelectElement"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLSelectElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        item(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'item' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'item' on 'HTMLSelectElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'item' on 'HTMLSelectElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].item(...args));
        }
        namedItem(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'namedItem' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'namedItem' on 'HTMLSelectElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'namedItem' on 'HTMLSelectElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].namedItem(...args));
        }
        add(element) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'add' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'add' on 'HTMLSelectElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (HTMLOptionElement.is(curArg) || HTMLOptGroupElement.is(curArg)) {
              curArg = utils2.implForWrapper(curArg);
            } else {
              throw new globalObject.TypeError(
                "Failed to execute 'add' on 'HTMLSelectElement': parameter 1 is not of any supported type."
              );
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                if (HTMLElement2.is(curArg)) {
                  curArg = utils2.implForWrapper(curArg);
                } else if (typeof curArg === "number") {
                  curArg = conversions["long"](curArg, {
                    context: "Failed to execute 'add' on 'HTMLSelectElement': parameter 2",
                    globals: globalObject
                  });
                } else {
                  curArg = conversions["long"](curArg, {
                    context: "Failed to execute 'add' on 'HTMLSelectElement': parameter 2",
                    globals: globalObject
                  });
                }
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].add(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        remove() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'remove' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          const args = [];
          switch (arguments.length) {
            case 0:
              break;
            default: {
              let curArg = arguments[0];
              curArg = conversions["long"](curArg, {
                context: "Failed to execute 'remove' on 'HTMLSelectElement': parameter 1",
                globals: globalObject
              });
              args.push(curArg);
            }
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].remove(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        checkValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'checkValidity' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          return esValue[implSymbol].checkValidity();
        }
        reportValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'reportValidity' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          return esValue[implSymbol].reportValidity();
        }
        setCustomValidity(error) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setCustomValidity' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setCustomValidity' on 'HTMLSelectElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'setCustomValidity' on 'HTMLSelectElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setCustomValidity(...args);
        }
        get autofocus() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get autofocus' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("autofocus") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set autofocus(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set autofocus' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'autofocus' property on 'HTMLSelectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("autofocus", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("autofocus");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get disabled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get disabled' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set disabled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set disabled' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'disabled' property on 'HTMLSelectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get form() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get form' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["form"]);
        }
        get multiple() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get multiple' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("multiple") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set multiple(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set multiple' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'multiple' property on 'HTMLSelectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("multiple", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("multiple");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLSelectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get required() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get required' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("required") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set required(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set required' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'required' property on 'HTMLSelectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("required", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("required");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get size() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get size' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("size");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 0 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 0;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set size(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set size' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'size' property on 'HTMLSelectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 0;
            esValue[implSymbol]._reflectSetTheContentAttribute("size", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          return esValue[implSymbol]["type"];
        }
        get options() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get options' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          return utils2.getSameObject(this, "options", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["options"]);
          });
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get length' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["length"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set length(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set length' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'length' property on 'HTMLSelectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["length"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get selectedOptions() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get selectedOptions' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          return utils2.getSameObject(this, "selectedOptions", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["selectedOptions"]);
          });
        }
        get selectedIndex() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get selectedIndex' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          return esValue[implSymbol]["selectedIndex"];
        }
        set selectedIndex(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set selectedIndex' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          V = conversions["long"](V, {
            context: "Failed to set the 'selectedIndex' property on 'HTMLSelectElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["selectedIndex"] = V;
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get value' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          return esValue[implSymbol]["value"];
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set value' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'value' property on 'HTMLSelectElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["value"] = V;
        }
        get willValidate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get willValidate' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          return esValue[implSymbol]["willValidate"];
        }
        get validity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validity' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["validity"]);
        }
        get validationMessage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validationMessage' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          return esValue[implSymbol]["validationMessage"];
        }
        get labels() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get labels' called on an object that is not a valid instance of HTMLSelectElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["labels"]);
        }
      }
      Object.defineProperties(HTMLSelectElement.prototype, {
        item: { enumerable: true },
        namedItem: { enumerable: true },
        add: { enumerable: true },
        remove: { enumerable: true },
        checkValidity: { enumerable: true },
        reportValidity: { enumerable: true },
        setCustomValidity: { enumerable: true },
        autofocus: { enumerable: true },
        disabled: { enumerable: true },
        form: { enumerable: true },
        multiple: { enumerable: true },
        name: { enumerable: true },
        required: { enumerable: true },
        size: { enumerable: true },
        type: { enumerable: true },
        options: { enumerable: true },
        length: { enumerable: true },
        selectedOptions: { enumerable: true },
        selectedIndex: { enumerable: true },
        value: { enumerable: true },
        willValidate: { enumerable: true },
        validity: { enumerable: true },
        validationMessage: { enumerable: true },
        labels: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLSelectElement", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = HTMLSelectElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLSelectElement
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            return {
              writable: true,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
          if (utils2.isArrayIndexPropName(P)) {
            const index2 = P >>> 0;
            let indexedValue = V;
            if (indexedValue === null || indexedValue === void 0) {
              indexedValue = null;
            } else {
              indexedValue = HTMLOptionElement.convert(globalObject, indexedValue, {
                context: "Failed to set the " + index2 + " property on 'HTMLSelectElement': The provided value"
              });
            }
            ceReactionsPreSteps_helpers_custom_elements(globalObject);
            try {
              const creating = !(target[implSymbol].item(index2) !== null);
              if (creating) {
                target[implSymbol][utils2.indexedSetNew](index2, indexedValue);
              } else {
                target[implSymbol][utils2.indexedSetExisting](index2, indexedValue);
              }
            } finally {
              ceReactionsPostSteps_helpers_custom_elements(globalObject);
            }
            return true;
          }
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            ownDesc = {
              writable: true,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          if (desc.get || desc.set) {
            return false;
          }
          const index2 = P >>> 0;
          let indexedValue = desc.value;
          if (indexedValue === null || indexedValue === void 0) {
            indexedValue = null;
          } else {
            indexedValue = HTMLOptionElement.convert(globalObject, indexedValue, {
              context: "Failed to set the " + index2 + " property on 'HTMLSelectElement': The provided value"
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const creating = !(target[implSymbol].item(index2) !== null);
            if (creating) {
              target[implSymbol][utils2.indexedSetNew](index2, indexedValue);
            } else {
              target[implSymbol][utils2.indexedSetExisting](index2, indexedValue);
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
          return true;
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !(target[implSymbol].item(index2) !== null);
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_HTMLSelectElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js
var require_AssignedNodesOptions = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      {
        const key = "flatten";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, { context: context + " has member 'flatten' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSlotElement-impl.js
var require_HTMLSlotElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSlotElement-impl.js"(exports, module) {
    "use strict";
    var idlUtils = require_utils16();
    var HTMLElement2 = require_HTMLElement();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var { nodeRoot } = require_node4();
    var { assignSlotableForTree, findFlattenedSlotables } = require_shadow_dom();
    var HTMLSlotElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._assignedNodes = [];
      }
      // https://dom.spec.whatwg.org/#slot-name
      get name() {
        return this.getAttributeNS(null, "name") || "";
      }
      _attrModified(name, value2, oldValue) {
        super._attrModified(name, value2, oldValue);
        if (name === "name") {
          if (value2 === oldValue) {
            return;
          }
          if (value2 === null && oldValue === "") {
            return;
          }
          if (value2 === "" && oldValue === null) {
            return;
          }
          assignSlotableForTree(nodeRoot(this));
        }
      }
      // https://html.spec.whatwg.org/#dom-slot-assignednodes
      assignedNodes(options) {
        if (!options || !options.flatten) {
          return this._assignedNodes.map(idlUtils.wrapperForImpl);
        }
        return findFlattenedSlotables(this).map(idlUtils.wrapperForImpl);
      }
      // https://html.spec.whatwg.org/#dom-slot-assignedelements
      assignedElements(options) {
        return this.assignedNodes(options).filter(HTMLElement2.is);
      }
    };
    module.exports = {
      implementation: HTMLSlotElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js
var require_HTMLSlotElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var AssignedNodesOptions = require_AssignedNodesOptions();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLSlotElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLSlotElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLSlotElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLSlotElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        assignedNodes() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'assignedNodes' called on an object that is not a valid instance of HTMLSlotElement."
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = AssignedNodesOptions.convert(globalObject, curArg, {
              context: "Failed to execute 'assignedNodes' on 'HTMLSlotElement': parameter 1"
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].assignedNodes(...args));
        }
        assignedElements() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'assignedElements' called on an object that is not a valid instance of HTMLSlotElement."
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = AssignedNodesOptions.convert(globalObject, curArg, {
              context: "Failed to execute 'assignedElements' on 'HTMLSlotElement': parameter 1"
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].assignedElements(...args));
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLSlotElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLSlotElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLSlotElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLSlotElement.prototype, {
        assignedNodes: { enumerable: true },
        assignedElements: { enumerable: true },
        name: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLSlotElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLSlotElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLSlotElement
      });
    };
    var Impl = require_HTMLSlotElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSourceElement-impl.js
var require_HTMLSourceElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSourceElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLSourceElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLSourceElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js
var require_HTMLSourceElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLSourceElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLSourceElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLSourceElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLSourceElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get src() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get src' called on an object that is not a valid instance of HTMLSourceElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("src");
            if (value2 === null) {
              return "";
            }
            if (this._srcURLCacheKey === value2) {
              return this._srcURLCache;
            }
            this._srcURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._srcURLCache = serializeURLwhatwg_url(urlRecord);
              return this._srcURLCache;
            }
            this._srcURLCache = conversions.USVString(value2);
            return this._srcURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set src(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set src' called on an object that is not a valid instance of HTMLSourceElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'src' property on 'HTMLSourceElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLSourceElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("type");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set type(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set type' called on an object that is not a valid instance of HTMLSourceElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'type' property on 'HTMLSourceElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get srcset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get srcset' called on an object that is not a valid instance of HTMLSourceElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("srcset");
            return value2 === null ? "" : conversions.USVString(value2);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set srcset(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set srcset' called on an object that is not a valid instance of HTMLSourceElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'srcset' property on 'HTMLSourceElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("srcset", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get sizes() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get sizes' called on an object that is not a valid instance of HTMLSourceElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("sizes");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set sizes(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set sizes' called on an object that is not a valid instance of HTMLSourceElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'sizes' property on 'HTMLSourceElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("sizes", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get media() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get media' called on an object that is not a valid instance of HTMLSourceElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("media");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set media(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set media' called on an object that is not a valid instance of HTMLSourceElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'media' property on 'HTMLSourceElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("media", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLSourceElement.prototype, {
        src: { enumerable: true },
        type: { enumerable: true },
        srcset: { enumerable: true },
        sizes: { enumerable: true },
        media: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLSourceElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLSourceElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLSourceElement
      });
    };
    var Impl = require_HTMLSourceElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSpanElement-impl.js
var require_HTMLSpanElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSpanElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLSpanElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLSpanElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js
var require_HTMLSpanElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLSpanElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLSpanElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLSpanElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLSpanElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
      }
      Object.defineProperties(HTMLSpanElement.prototype, {
        [Symbol.toStringTag]: { value: "HTMLSpanElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLSpanElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLSpanElement
      });
    };
    var Impl = require_HTMLSpanElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCaptionElement-impl.js
var require_HTMLTableCaptionElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCaptionElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLTableCaptionElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLTableCaptionElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js
var require_HTMLTableCaptionElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLTableCaptionElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLTableCaptionElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLTableCaptionElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLTableCaptionElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLTableCaptionElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLTableCaptionElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLTableCaptionElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLTableCaptionElement.prototype, {
        align: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLTableCaptionElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLTableCaptionElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLTableCaptionElement
      });
    };
    var Impl = require_HTMLTableCaptionElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCellElement-impl.js
var require_HTMLTableCellElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCellElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var { asciiLowercase, parseNonNegativeInteger } = require_strings2();
    var { closest } = require_traversal2();
    function reflectedAttributeClampedToRange(attrValue, min2, max3, defaultValue = 0) {
      if (attrValue === null) {
        return defaultValue;
      }
      const parsed = parseNonNegativeInteger(attrValue);
      if (parsed === null) {
        return defaultValue;
      }
      if (parsed < min2) {
        return min2;
      }
      if (parsed > max3) {
        return max3;
      }
      return parsed;
    }
    var HTMLTableCellElementImpl = class extends HTMLElementImpl {
      get colSpan() {
        return reflectedAttributeClampedToRange(this.getAttributeNS(null, "colspan"), 1, 1e3, 1);
      }
      set colSpan(V) {
        this.setAttributeNS(null, "colspan", String(V));
      }
      get rowSpan() {
        return reflectedAttributeClampedToRange(this.getAttributeNS(null, "rowspan"), 0, 65534, 1);
      }
      set rowSpan(V) {
        this.setAttributeNS(null, "rowspan", String(V));
      }
      get cellIndex() {
        const tr = closest(this, "tr");
        if (tr === null) {
          return -1;
        }
        return tr.cells.indexOf(this);
      }
      get scope() {
        let value2 = this.getAttributeNS(null, "scope");
        if (value2 === null) {
          return "";
        }
        value2 = asciiLowercase(value2);
        if (value2 === "row" || value2 === "col" || value2 === "rowgroup" || value2 === "colgroup") {
          return value2;
        }
        return "";
      }
      set scope(V) {
        this.setAttributeNS(null, "scope", V);
      }
    };
    module.exports = {
      implementation: HTMLTableCellElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js
var require_HTMLTableCellElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var parseNonNegativeInteger_helpers_strings = require_strings2().parseNonNegativeInteger;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLTableCellElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLTableCellElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLTableCellElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLTableCellElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get colSpan() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get colSpan' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("colspan");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null) {
                if (value2 < 1) {
                  return 1;
                } else if (value2 >= 1 && value2 <= 1e3) {
                  return value2;
                } else {
                  return 1e3;
                }
              }
            }
            return 1;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set colSpan(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set colSpan' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'colSpan' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 1;
            esValue[implSymbol]._reflectSetTheContentAttribute("colspan", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get rowSpan() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rowSpan' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("rowspan");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null) {
                if (value2 < 0) {
                  return 0;
                } else if (value2 >= 0 && value2 <= 65534) {
                  return value2;
                } else {
                  return 65534;
                }
              }
            }
            return 1;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set rowSpan(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set rowSpan' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'rowSpan' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 1;
            esValue[implSymbol]._reflectSetTheContentAttribute("rowspan", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get headers() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get headers' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("headers");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set headers(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set headers' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'headers' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("headers", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get cellIndex() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get cellIndex' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          return esValue[implSymbol]["cellIndex"];
        }
        get scope() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get scope' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["scope"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set scope(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set scope' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'scope' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["scope"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get abbr() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get abbr' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("abbr");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set abbr(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set abbr' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'abbr' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("abbr", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get axis() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get axis' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("axis");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set axis(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set axis' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'axis' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("axis", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get height() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get height' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("height");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set height(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set height' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'height' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("height", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get width' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("width");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set width' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'width' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ch() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ch' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("char");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ch(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ch' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'ch' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("char", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get chOff() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get chOff' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("charoff");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set chOff(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set chOff' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'chOff' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("charoff", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get noWrap() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get noWrap' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("nowrap") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set noWrap(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set noWrap' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'noWrap' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("nowrap", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("nowrap");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get vAlign() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get vAlign' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("valign");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set vAlign(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set vAlign' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'vAlign' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("valign", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get bgColor() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get bgColor' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("bgcolor");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set bgColor(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set bgColor' called on an object that is not a valid instance of HTMLTableCellElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'bgColor' property on 'HTMLTableCellElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("bgcolor", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLTableCellElement.prototype, {
        colSpan: { enumerable: true },
        rowSpan: { enumerable: true },
        headers: { enumerable: true },
        cellIndex: { enumerable: true },
        scope: { enumerable: true },
        abbr: { enumerable: true },
        align: { enumerable: true },
        axis: { enumerable: true },
        height: { enumerable: true },
        width: { enumerable: true },
        ch: { enumerable: true },
        chOff: { enumerable: true },
        noWrap: { enumerable: true },
        vAlign: { enumerable: true },
        bgColor: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLTableCellElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLTableCellElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLTableCellElement
      });
    };
    var Impl = require_HTMLTableCellElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableColElement-impl.js
var require_HTMLTableColElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableColElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLTableColElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLTableColElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js
var require_HTMLTableColElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var parseNonNegativeInteger_helpers_strings = require_strings2().parseNonNegativeInteger;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLTableColElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLTableColElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLTableColElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLTableColElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get span() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get span' called on an object that is not a valid instance of HTMLTableColElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("span");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null) {
                if (value2 < 1) {
                  return 1;
                } else if (value2 >= 1 && value2 <= 1e3) {
                  return value2;
                } else {
                  return 1e3;
                }
              }
            }
            return 1;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set span(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set span' called on an object that is not a valid instance of HTMLTableColElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'span' property on 'HTMLTableColElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 1;
            esValue[implSymbol]._reflectSetTheContentAttribute("span", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLTableColElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLTableColElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLTableColElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ch() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ch' called on an object that is not a valid instance of HTMLTableColElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("char");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ch(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ch' called on an object that is not a valid instance of HTMLTableColElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'ch' property on 'HTMLTableColElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("char", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get chOff() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get chOff' called on an object that is not a valid instance of HTMLTableColElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("charoff");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set chOff(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set chOff' called on an object that is not a valid instance of HTMLTableColElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'chOff' property on 'HTMLTableColElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("charoff", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get vAlign() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get vAlign' called on an object that is not a valid instance of HTMLTableColElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("valign");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set vAlign(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set vAlign' called on an object that is not a valid instance of HTMLTableColElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'vAlign' property on 'HTMLTableColElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("valign", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get width' called on an object that is not a valid instance of HTMLTableColElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("width");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set width' called on an object that is not a valid instance of HTMLTableColElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'width' property on 'HTMLTableColElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLTableColElement.prototype, {
        span: { enumerable: true },
        align: { enumerable: true },
        ch: { enumerable: true },
        chOff: { enumerable: true },
        vAlign: { enumerable: true },
        width: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLTableColElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLTableColElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLTableColElement
      });
    };
    var Impl = require_HTMLTableColElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableSectionElement-impl.js
var require_HTMLTableSectionElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableSectionElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var { childrenByLocalName } = require_traversal2();
    var HTMLCollection = require_HTMLCollection();
    var DOMException2 = require_DOMException();
    var HTMLTableSectionElementImpl = class extends HTMLElementImpl {
      get rows() {
        if (!this._rows) {
          this._rows = HTMLCollection.createImpl(this._globalObject, [], {
            element: this,
            query: () => childrenByLocalName(this, "tr")
          });
        }
        return this._rows;
      }
      insertRow(index2) {
        if (index2 < -1 || index2 > this.rows.length) {
          throw DOMException2.create(this._globalObject, [
            "Cannot insert a row at an index that is less than -1 or greater than the number of existing rows",
            "IndexSizeError"
          ]);
        }
        const tr = this._ownerDocument.createElement("tr");
        if (index2 === -1 || index2 === this.rows.length) {
          this._append(tr);
        } else {
          const beforeTR = this.rows.item(index2);
          this._insert(tr, beforeTR);
        }
        return tr;
      }
      deleteRow(index2) {
        if (index2 < -1 || index2 >= this.rows.length) {
          throw DOMException2.create(this._globalObject, [
            `Cannot delete a row at index ${index2}, where no row exists`,
            "IndexSizeError"
          ]);
        }
        if (index2 === -1) {
          if (this.rows.length > 0) {
            const tr = this.rows.item(this.rows.length - 1);
            this._remove(tr);
          }
        } else {
          const tr = this.rows.item(index2);
          this._remove(tr);
        }
      }
    };
    module.exports = {
      implementation: HTMLTableSectionElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js
var require_HTMLTableSectionElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLTableSectionElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLTableSectionElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLTableSectionElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLTableSectionElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        insertRow() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'insertRow' called on an object that is not a valid instance of HTMLTableSectionElement."
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["long"](curArg, {
                context: "Failed to execute 'insertRow' on 'HTMLTableSectionElement': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = -1;
            }
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].insertRow(...args));
        }
        deleteRow(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'deleteRow' called on an object that is not a valid instance of HTMLTableSectionElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'deleteRow' on 'HTMLTableSectionElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["long"](curArg, {
              context: "Failed to execute 'deleteRow' on 'HTMLTableSectionElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].deleteRow(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get rows() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rows' called on an object that is not a valid instance of HTMLTableSectionElement."
            );
          }
          return utils2.getSameObject(this, "rows", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["rows"]);
          });
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLTableSectionElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLTableSectionElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLTableSectionElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ch() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ch' called on an object that is not a valid instance of HTMLTableSectionElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("char");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ch(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ch' called on an object that is not a valid instance of HTMLTableSectionElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'ch' property on 'HTMLTableSectionElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("char", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get chOff() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get chOff' called on an object that is not a valid instance of HTMLTableSectionElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("charoff");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set chOff(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set chOff' called on an object that is not a valid instance of HTMLTableSectionElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'chOff' property on 'HTMLTableSectionElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("charoff", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get vAlign() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get vAlign' called on an object that is not a valid instance of HTMLTableSectionElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("valign");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set vAlign(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set vAlign' called on an object that is not a valid instance of HTMLTableSectionElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'vAlign' property on 'HTMLTableSectionElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("valign", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLTableSectionElement.prototype, {
        insertRow: { enumerable: true },
        deleteRow: { enumerable: true },
        rows: { enumerable: true },
        align: { enumerable: true },
        ch: { enumerable: true },
        chOff: { enumerable: true },
        vAlign: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLTableSectionElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLTableSectionElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLTableSectionElement
      });
    };
    var Impl = require_HTMLTableSectionElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableElement-impl.js
var require_HTMLTableElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableElement-impl.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var { HTML_NS } = require_namespaces();
    var { domSymbolTree } = require_internal_constants();
    var { firstChildWithLocalName, childrenByLocalName } = require_traversal2();
    var HTMLCollection = require_HTMLCollection();
    var NODE_TYPE = require_node_type();
    function tHeadInsertionPoint(table) {
      const iterator2 = domSymbolTree.childrenIterator(table);
      for (const child of iterator2) {
        if (child.nodeType !== NODE_TYPE.ELEMENT_NODE) {
          continue;
        }
        if (child._namespaceURI !== HTML_NS || child._localName !== "caption" && child._localName !== "colgroup") {
          return child;
        }
      }
      return null;
    }
    var HTMLTableElementImpl = class extends HTMLElementImpl {
      get caption() {
        return firstChildWithLocalName(this, "caption");
      }
      set caption(value2) {
        const currentCaption = this.caption;
        if (currentCaption !== null) {
          this.removeChild(currentCaption);
        }
        if (value2 !== null) {
          const insertionPoint = this.firstChild;
          this.insertBefore(value2, insertionPoint);
        }
      }
      get tHead() {
        return firstChildWithLocalName(this, "thead");
      }
      set tHead(value2) {
        if (value2 !== null && value2._localName !== "thead") {
          throw DOMException2.create(this._globalObject, [
            "Cannot set a non-thead element as a table header",
            "HierarchyRequestError"
          ]);
        }
        const currentHead = this.tHead;
        if (currentHead !== null) {
          this.removeChild(currentHead);
        }
        if (value2 !== null) {
          const insertionPoint = tHeadInsertionPoint(this);
          this.insertBefore(value2, insertionPoint);
        }
      }
      get tFoot() {
        return firstChildWithLocalName(this, "tfoot");
      }
      set tFoot(value2) {
        if (value2 !== null && value2._localName !== "tfoot") {
          throw DOMException2.create(this._globalObject, [
            "Cannot set a non-tfoot element as a table footer",
            "HierarchyRequestError"
          ]);
        }
        const currentFoot = this.tFoot;
        if (currentFoot !== null) {
          this.removeChild(currentFoot);
        }
        if (value2 !== null) {
          this.appendChild(value2);
        }
      }
      get rows() {
        if (!this._rows) {
          this._rows = HTMLCollection.createImpl(this._globalObject, [], {
            element: this,
            query: () => {
              const headerRows = [];
              const bodyRows = [];
              const footerRows = [];
              const iterator2 = domSymbolTree.childrenIterator(this);
              for (const child of iterator2) {
                if (child.nodeType !== NODE_TYPE.ELEMENT_NODE || child._namespaceURI !== HTML_NS) {
                  continue;
                }
                if (child._localName === "thead") {
                  headerRows.push(...childrenByLocalName(child, "tr"));
                } else if (child._localName === "tbody") {
                  bodyRows.push(...childrenByLocalName(child, "tr"));
                } else if (child._localName === "tfoot") {
                  footerRows.push(...childrenByLocalName(child, "tr"));
                } else if (child._localName === "tr") {
                  bodyRows.push(child);
                }
              }
              return [...headerRows, ...bodyRows, ...footerRows];
            }
          });
        }
        return this._rows;
      }
      get tBodies() {
        if (!this._tBodies) {
          this._tBodies = HTMLCollection.createImpl(this._globalObject, [], {
            element: this,
            query: () => childrenByLocalName(this, "tbody")
          });
        }
        return this._tBodies;
      }
      createTBody() {
        const el = this._ownerDocument.createElement("TBODY");
        const tbodies = childrenByLocalName(this, "tbody");
        const insertionPoint = tbodies[tbodies.length - 1];
        if (insertionPoint) {
          this.insertBefore(el, insertionPoint.nextSibling);
        } else {
          this.appendChild(el);
        }
        return el;
      }
      createTHead() {
        let el = this.tHead;
        if (!el) {
          el = this.tHead = this._ownerDocument.createElement("THEAD");
        }
        return el;
      }
      deleteTHead() {
        this.tHead = null;
      }
      createTFoot() {
        let el = this.tFoot;
        if (!el) {
          el = this.tFoot = this._ownerDocument.createElement("TFOOT");
        }
        return el;
      }
      deleteTFoot() {
        this.tFoot = null;
      }
      createCaption() {
        let el = this.caption;
        if (!el) {
          el = this.caption = this._ownerDocument.createElement("CAPTION");
        }
        return el;
      }
      deleteCaption() {
        const c6 = this.caption;
        if (c6) {
          c6.parentNode.removeChild(c6);
        }
      }
      insertRow(index2) {
        if (index2 < -1 || index2 > this.rows.length) {
          throw DOMException2.create(this._globalObject, [
            "Cannot insert a row at an index that is less than -1 or greater than the number of existing rows",
            "IndexSizeError"
          ]);
        }
        const tr = this._ownerDocument.createElement("tr");
        if (this.rows.length === 0 && this.tBodies.length === 0) {
          const tBody = this._ownerDocument.createElement("tbody");
          tBody.appendChild(tr);
          this.appendChild(tBody);
        } else if (this.rows.length === 0) {
          const tBody = this.tBodies.item(this.tBodies.length - 1);
          tBody.appendChild(tr);
        } else if (index2 === -1 || index2 === this.rows.length) {
          const tSection = this.rows.item(this.rows.length - 1).parentNode;
          tSection.appendChild(tr);
        } else {
          const beforeTR = this.rows.item(index2);
          const tSection = beforeTR.parentNode;
          tSection.insertBefore(tr, beforeTR);
        }
        return tr;
      }
      deleteRow(index2) {
        const rowLength = this.rows.length;
        if (index2 < -1 || index2 >= rowLength) {
          throw DOMException2.create(this._globalObject, [
            `Cannot delete a row at index ${index2}, where no row exists`,
            "IndexSizeError"
          ]);
        }
        if (index2 === -1) {
          if (rowLength === 0) {
            return;
          }
          index2 = rowLength - 1;
        }
        const tr = this.rows.item(index2);
        tr.parentNode.removeChild(tr);
      }
    };
    module.exports = {
      implementation: HTMLTableElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js
var require_HTMLTableElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var HTMLTableCaptionElement = require_HTMLTableCaptionElement();
    var HTMLTableSectionElement = require_HTMLTableSectionElement();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLTableElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLTableElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLTableElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLTableElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        createCaption() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createCaption' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createCaption());
        }
        deleteCaption() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'deleteCaption' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].deleteCaption();
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        createTHead() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createTHead' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createTHead());
        }
        deleteTHead() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'deleteTHead' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].deleteTHead();
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        createTFoot() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createTFoot' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createTFoot());
        }
        deleteTFoot() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'deleteTFoot' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].deleteTFoot();
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        createTBody() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createTBody' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createTBody());
        }
        insertRow() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'insertRow' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["long"](curArg, {
                context: "Failed to execute 'insertRow' on 'HTMLTableElement': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = -1;
            }
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].insertRow(...args));
        }
        deleteRow(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'deleteRow' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'deleteRow' on 'HTMLTableElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["long"](curArg, {
              context: "Failed to execute 'deleteRow' on 'HTMLTableElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].deleteRow(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get caption() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get caption' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["caption"]);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set caption(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set caption' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = HTMLTableCaptionElement.convert(globalObject, V, {
              context: "Failed to set the 'caption' property on 'HTMLTableElement': The provided value"
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["caption"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get tHead() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get tHead' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["tHead"]);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set tHead(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set tHead' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = HTMLTableSectionElement.convert(globalObject, V, {
              context: "Failed to set the 'tHead' property on 'HTMLTableElement': The provided value"
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["tHead"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get tFoot() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get tFoot' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["tFoot"]);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set tFoot(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set tFoot' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          if (V === null || V === void 0) {
            V = null;
          } else {
            V = HTMLTableSectionElement.convert(globalObject, V, {
              context: "Failed to set the 'tFoot' property on 'HTMLTableElement': The provided value"
            });
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["tFoot"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get tBodies() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get tBodies' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          return utils2.getSameObject(this, "tBodies", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["tBodies"]);
          });
        }
        get rows() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rows' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          return utils2.getSameObject(this, "rows", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["rows"]);
          });
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLTableElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get border() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get border' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("border");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set border(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set border' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'border' property on 'HTMLTableElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("border", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get frame() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get frame' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("frame");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set frame(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set frame' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'frame' property on 'HTMLTableElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("frame", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get rules() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rules' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("rules");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set rules(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set rules' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'rules' property on 'HTMLTableElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("rules", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get summary() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get summary' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("summary");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set summary(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set summary' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'summary' property on 'HTMLTableElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("summary", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get width' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("width");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set width' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'width' property on 'HTMLTableElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get bgColor() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get bgColor' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("bgcolor");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set bgColor(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set bgColor' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'bgColor' property on 'HTMLTableElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("bgcolor", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get cellPadding() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get cellPadding' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("cellpadding");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set cellPadding(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set cellPadding' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'cellPadding' property on 'HTMLTableElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("cellpadding", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get cellSpacing() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get cellSpacing' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("cellspacing");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set cellSpacing(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set cellSpacing' called on an object that is not a valid instance of HTMLTableElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'cellSpacing' property on 'HTMLTableElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("cellspacing", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLTableElement.prototype, {
        createCaption: { enumerable: true },
        deleteCaption: { enumerable: true },
        createTHead: { enumerable: true },
        deleteTHead: { enumerable: true },
        createTFoot: { enumerable: true },
        deleteTFoot: { enumerable: true },
        createTBody: { enumerable: true },
        insertRow: { enumerable: true },
        deleteRow: { enumerable: true },
        caption: { enumerable: true },
        tHead: { enumerable: true },
        tFoot: { enumerable: true },
        tBodies: { enumerable: true },
        rows: { enumerable: true },
        align: { enumerable: true },
        border: { enumerable: true },
        frame: { enumerable: true },
        rules: { enumerable: true },
        summary: { enumerable: true },
        width: { enumerable: true },
        bgColor: { enumerable: true },
        cellPadding: { enumerable: true },
        cellSpacing: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLTableElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLTableElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLTableElement
      });
    };
    var Impl = require_HTMLTableElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTimeElement-impl.js
var require_HTMLTimeElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTimeElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLTimeElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLTimeElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js
var require_HTMLTimeElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLTimeElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLTimeElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLTimeElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLTimeElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get dateTime() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get dateTime' called on an object that is not a valid instance of HTMLTimeElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("datetime");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set dateTime(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set dateTime' called on an object that is not a valid instance of HTMLTimeElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'dateTime' property on 'HTMLTimeElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("datetime", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLTimeElement.prototype, {
        dateTime: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLTimeElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLTimeElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLTimeElement
      });
    };
    var Impl = require_HTMLTimeElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableRowElement-impl.js
var require_HTMLTableRowElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableRowElement-impl.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLCollection = require_HTMLCollection();
    var { HTML_NS } = require_namespaces();
    var { childrenByLocalNames } = require_traversal2();
    var { domSymbolTree } = require_internal_constants();
    var cellLocalNames = /* @__PURE__ */ new Set(["td", "th"]);
    var HTMLTableRowElementImpl = class extends HTMLElementImpl {
      get cells() {
        if (!this._cells) {
          this._cells = HTMLCollection.createImpl(this._globalObject, [], {
            element: this,
            query: () => childrenByLocalNames(this, cellLocalNames)
          });
        }
        return this._cells;
      }
      get rowIndex() {
        const parent = this.parentElement;
        if (parent === null || parent.namespaceURI !== HTML_NS) {
          return -1;
        }
        let tableElement = parent;
        if (parent.localName === "thead" || parent.localName === "tbody" || parent.localName === "tfoot") {
          tableElement = parent.parentElement;
        }
        if (tableElement === null || tableElement.namespaceURI !== HTML_NS || tableElement.localName !== "table") {
          return -1;
        }
        return tableElement.rows.indexOf(this);
      }
      get sectionRowIndex() {
        const parent = domSymbolTree.parent(this);
        if (parent === null) {
          return -1;
        }
        const { rows } = parent;
        if (!rows) {
          return -1;
        }
        return rows.indexOf(this);
      }
      insertCell(index2) {
        const td2 = this._ownerDocument.createElement("TD");
        const { cells } = this;
        if (index2 < -1 || index2 > cells.length) {
          throw DOMException2.create(this._globalObject, ["The index is not in the allowed range.", "IndexSizeError"]);
        }
        if (index2 === -1 || index2 === cells.length) {
          this._append(td2);
        } else {
          const ref = cells.item(index2);
          this._insert(td2, ref);
        }
        return td2;
      }
      deleteCell(index2) {
        const { cells } = this;
        if (index2 < -1 || index2 >= cells.length) {
          throw DOMException2.create(this._globalObject, ["The index is not in the allowed range.", "IndexSizeError"]);
        }
        if (index2 === -1) {
          if (cells.length === 0) {
            return;
          }
          index2 = cells.length - 1;
        }
        const td2 = cells.item(index2);
        this._remove(td2);
      }
    };
    module.exports = {
      implementation: HTMLTableRowElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js
var require_HTMLTableRowElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLTableRowElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLTableRowElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLTableRowElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLTableRowElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        insertCell() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'insertCell' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["long"](curArg, {
                context: "Failed to execute 'insertCell' on 'HTMLTableRowElement': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = -1;
            }
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].insertCell(...args));
        }
        deleteCell(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'deleteCell' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'deleteCell' on 'HTMLTableRowElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["long"](curArg, {
              context: "Failed to execute 'deleteCell' on 'HTMLTableRowElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].deleteCell(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get rowIndex() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rowIndex' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          return esValue[implSymbol]["rowIndex"];
        }
        get sectionRowIndex() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get sectionRowIndex' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          return esValue[implSymbol]["sectionRowIndex"];
        }
        get cells() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get cells' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          return utils2.getSameObject(this, "cells", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["cells"]);
          });
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLTableRowElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get ch() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ch' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("char");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set ch(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ch' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'ch' property on 'HTMLTableRowElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("char", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get chOff() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get chOff' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("charoff");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set chOff(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set chOff' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'chOff' property on 'HTMLTableRowElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("charoff", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get vAlign() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get vAlign' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("valign");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set vAlign(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set vAlign' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'vAlign' property on 'HTMLTableRowElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("valign", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get bgColor() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get bgColor' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("bgcolor");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set bgColor(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set bgColor' called on an object that is not a valid instance of HTMLTableRowElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'bgColor' property on 'HTMLTableRowElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("bgcolor", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLTableRowElement.prototype, {
        insertCell: { enumerable: true },
        deleteCell: { enumerable: true },
        rowIndex: { enumerable: true },
        sectionRowIndex: { enumerable: true },
        cells: { enumerable: true },
        align: { enumerable: true },
        ch: { enumerable: true },
        chOff: { enumerable: true },
        vAlign: { enumerable: true },
        bgColor: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLTableRowElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLTableRowElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLTableRowElement
      });
    };
    var Impl = require_HTMLTableRowElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js
var require_HTMLTemplateElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var Document3 = require_Document();
    var DocumentFragment2 = require_DocumentFragment();
    var { cloningSteps, domSymbolTree } = require_internal_constants();
    var { clone } = require_node5();
    var HTMLTemplateElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        const doc = this._appropriateTemplateContentsOwnerDocument(this._ownerDocument);
        this._templateContents = DocumentFragment2.createImpl(this._globalObject, [], {
          ownerDocument: doc,
          host: this
        });
      }
      // https://html.spec.whatwg.org/multipage/scripting.html#appropriate-template-contents-owner-document
      _appropriateTemplateContentsOwnerDocument(doc) {
        if (!doc._isInertTemplateDocument) {
          if (doc._associatedInertTemplateDocument === void 0) {
            const newDoc = Document3.createImpl(this._globalObject, [], {
              options: {
                parsingMode: doc._parsingMode,
                encoding: doc._encoding
              }
            });
            newDoc._isInertTemplateDocument = true;
            doc._associatedInertTemplateDocument = newDoc;
          }
          doc = doc._associatedInertTemplateDocument;
        }
        return doc;
      }
      // https://html.spec.whatwg.org/multipage/scripting.html#template-adopting-steps
      _adoptingSteps() {
        const doc = this._appropriateTemplateContentsOwnerDocument(this._ownerDocument);
        doc._adoptNode(this._templateContents);
      }
      get content() {
        return this._templateContents;
      }
      [cloningSteps](copy2, node, document2, cloneChildren) {
        if (!cloneChildren) {
          return;
        }
        for (const child of domSymbolTree.childrenIterator(node._templateContents)) {
          const childCopy = clone(child, copy2._templateContents._ownerDocument, true);
          copy2._templateContents.appendChild(childCopy);
        }
      }
    };
    module.exports = {
      implementation: HTMLTemplateElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js
var require_HTMLTemplateElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLTemplateElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLTemplateElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLTemplateElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLTemplateElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get content() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get content' called on an object that is not a valid instance of HTMLTemplateElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["content"]);
        }
      }
      Object.defineProperties(HTMLTemplateElement.prototype, {
        content: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLTemplateElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLTemplateElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLTemplateElement
      });
    };
    var Impl = require_HTMLTemplateElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTextAreaElement-impl.js
var require_HTMLTextAreaElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTextAreaElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var DefaultConstraintValidationImpl = require_DefaultConstraintValidation_impl().implementation;
    var ValidityState = require_ValidityState();
    var { mixin: mixin2 } = require_utils17();
    var DOMException2 = require_DOMException();
    var { cloningSteps } = require_internal_constants();
    var { isDisabled, getLabelsForLabelable, formOwner } = require_form_controls();
    var { childTextContent } = require_text();
    var { fireAnEvent } = require_events4();
    var HTMLTextAreaElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._selectionStart = this._selectionEnd = 0;
        this._selectionDirection = "none";
        this._rawValue = "";
        this._dirtyValue = false;
        this._customValidityErrorMessage = "";
        this._labels = null;
      }
      _formReset() {
        this._rawValue = childTextContent(this);
        this._dirtyValue = false;
      }
      _getAPIValue() {
        return this._rawValue.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
      }
      // https://html.spec.whatwg.org/multipage/form-elements.html#textarea-wrapping-transformation
      _getValue() {
        const apiValue = this._getAPIValue();
        const wrap = this.getAttributeNS(null, "wrap");
        return wrap === "hard" ? textareaWrappingTransformation(apiValue, this.getAttributeNS(null, "cols") ?? 20) : apiValue;
      }
      _childTextContentChangeSteps() {
        super._childTextContentChangeSteps();
        if (this._dirtyValue === false) {
          this._rawValue = childTextContent(this);
        }
      }
      get labels() {
        return getLabelsForLabelable(this);
      }
      get form() {
        return formOwner(this);
      }
      get defaultValue() {
        return childTextContent(this);
      }
      set defaultValue(val) {
        this.textContent = val;
      }
      get value() {
        return this._getAPIValue();
      }
      set value(val) {
        const oldAPIValue = this._getAPIValue();
        this._rawValue = val;
        this._dirtyValue = true;
        if (oldAPIValue !== this._getAPIValue()) {
          this._selectionStart = this._selectionEnd = this._getValueLength();
          this._selectionDirection = "none";
        }
      }
      get textLength() {
        return this.value.length;
      }
      get type() {
        return "textarea";
      }
      _dispatchSelectEvent() {
        setTimeout(() => fireAnEvent("select", this, void 0, { bubbles: true, cancelable: false }), 0);
      }
      _getValueLength() {
        return typeof this.value === "string" ? this.value.length : 0;
      }
      select() {
        this._selectionStart = 0;
        this._selectionEnd = this._getValueLength();
        this._selectionDirection = "none";
        this._dispatchSelectEvent();
      }
      get selectionStart() {
        return this._selectionStart;
      }
      set selectionStart(start2) {
        this.setSelectionRange(start2, Math.max(start2, this._selectionEnd), this._selectionDirection);
      }
      get selectionEnd() {
        return this._selectionEnd;
      }
      set selectionEnd(end2) {
        this.setSelectionRange(this._selectionStart, end2, this._selectionDirection);
      }
      get selectionDirection() {
        return this._selectionDirection;
      }
      set selectionDirection(dir) {
        this.setSelectionRange(this._selectionStart, this._selectionEnd, dir);
      }
      setSelectionRange(start2, end2, dir) {
        this._selectionEnd = Math.min(end2, this._getValueLength());
        this._selectionStart = Math.min(start2, this._selectionEnd);
        this._selectionDirection = dir === "forward" || dir === "backward" ? dir : "none";
        this._dispatchSelectEvent();
      }
      setRangeText(repl, start2, end2, selectionMode = "preserve") {
        if (arguments.length < 2) {
          start2 = this._selectionStart;
          end2 = this._selectionEnd;
        } else if (start2 > end2) {
          throw DOMException2.create(this._globalObject, ["The index is not in the allowed range.", "IndexSizeError"]);
        }
        start2 = Math.min(start2, this._getValueLength());
        end2 = Math.min(end2, this._getValueLength());
        const val = this.value;
        let selStart = this._selectionStart;
        let selEnd = this._selectionEnd;
        this.value = val.slice(0, start2) + repl + val.slice(end2);
        const newEnd = start2 + repl.length;
        if (selectionMode === "select") {
          this.setSelectionRange(start2, newEnd);
        } else if (selectionMode === "start") {
          this.setSelectionRange(start2, start2);
        } else if (selectionMode === "end") {
          this.setSelectionRange(newEnd, newEnd);
        } else {
          const delta = repl.length - (end2 - start2);
          if (selStart > end2) {
            selStart += delta;
          } else if (selStart > start2) {
            selStart = start2;
          }
          if (selEnd > end2) {
            selEnd += delta;
          } else if (selEnd > start2) {
            selEnd = newEnd;
          }
          this.setSelectionRange(selStart, selEnd);
        }
      }
      _barredFromConstraintValidationSpecialization() {
        return this.hasAttributeNS(null, "readonly");
      }
      get _mutable() {
        return !isDisabled(this) && !this.hasAttributeNS(null, "readonly");
      }
      // https://html.spec.whatwg.org/multipage/form-elements.html#attr-textarea-required
      get validity() {
        if (!this._validity) {
          const state = {
            valueMissing: () => this.hasAttributeNS(null, "required") && this._mutable && this.value === ""
          };
          this._validity = ValidityState.createImpl(this._globalObject, [], {
            element: this,
            state
          });
        }
        return this._validity;
      }
      [cloningSteps](copy2, node) {
        copy2._dirtyValue = node._dirtyValue;
        copy2._rawValue = node._rawValue;
      }
    };
    mixin2(HTMLTextAreaElementImpl.prototype, DefaultConstraintValidationImpl.prototype);
    module.exports = {
      implementation: HTMLTextAreaElementImpl
    };
    function textareaWrappingTransformation(text, cols) {
      let lineStart = 0;
      let lineEnd = text.indexOf("\n");
      if (lineEnd === -1) {
        lineEnd = text.length;
      }
      while (lineStart < text.length) {
        const lineLength = lineEnd - lineStart;
        if (lineLength > cols) {
          lineEnd = lineStart + cols;
          text = text.slice(0, lineEnd) + "\n" + text.slice(lineEnd);
        }
        lineStart = lineEnd + 1;
        lineEnd = text.indexOf("\n", lineStart);
        if (lineEnd === -1) {
          lineEnd = text.length;
        }
      }
      return text;
    }
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js
var require_HTMLTextAreaElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var SelectionMode = require_SelectionMode();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var parseNonNegativeInteger_helpers_strings = require_strings2().parseNonNegativeInteger;
    var create_DOMException = require_DOMException().create;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLTextAreaElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLTextAreaElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLTextAreaElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLTextAreaElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        checkValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'checkValidity' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          return esValue[implSymbol].checkValidity();
        }
        reportValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'reportValidity' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          return esValue[implSymbol].reportValidity();
        }
        setCustomValidity(error) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setCustomValidity' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setCustomValidity' on 'HTMLTextAreaElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'setCustomValidity' on 'HTMLTextAreaElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setCustomValidity(...args);
        }
        select() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'select' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          return esValue[implSymbol].select();
        }
        setRangeText(replacement) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setRangeText' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setRangeText' on 'HTMLTextAreaElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          switch (arguments.length) {
            case 1:
              {
                let curArg = arguments[0];
                curArg = conversions["DOMString"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              break;
            case 2:
              throw new globalObject.TypeError(
                `Failed to execute 'setRangeText' on 'HTMLTextAreaElement': only ${arguments.length} arguments present.`
              );
              break;
            case 3:
              {
                let curArg = arguments[0];
                curArg = conversions["DOMString"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[1];
                curArg = conversions["unsigned long"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 2",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[2];
                curArg = conversions["unsigned long"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 3",
                  globals: globalObject
                });
                args.push(curArg);
              }
              break;
            default:
              {
                let curArg = arguments[0];
                curArg = conversions["DOMString"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[1];
                curArg = conversions["unsigned long"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 2",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[2];
                curArg = conversions["unsigned long"](curArg, {
                  context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 3",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[3];
                if (curArg !== void 0) {
                  curArg = SelectionMode.convert(globalObject, curArg, {
                    context: "Failed to execute 'setRangeText' on 'HTMLTextAreaElement': parameter 4"
                  });
                } else {
                  curArg = "preserve";
                }
                args.push(curArg);
              }
          }
          return esValue[implSymbol].setRangeText(...args);
        }
        setSelectionRange(start2, end2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setSelectionRange' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'setSelectionRange' on 'HTMLTextAreaElement': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'setSelectionRange' on 'HTMLTextAreaElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'setSelectionRange' on 'HTMLTextAreaElement': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'setSelectionRange' on 'HTMLTextAreaElement': parameter 3",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].setSelectionRange(...args);
        }
        get autocomplete() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get autocomplete' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("autocomplete");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set autocomplete(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set autocomplete' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'autocomplete' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("autocomplete", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get autofocus() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get autofocus' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("autofocus") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set autofocus(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set autofocus' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'autofocus' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("autofocus", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("autofocus");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get cols() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get cols' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("cols");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 1 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 20;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set cols(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set cols' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'cols' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 1 ? V : 20;
            esValue[implSymbol]._reflectSetTheContentAttribute("cols", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get dirName() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get dirName' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("dirname");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set dirName(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set dirName' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'dirName' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("dirname", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get disabled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get disabled' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("disabled") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set disabled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set disabled' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'disabled' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("disabled", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("disabled");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get form() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get form' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["form"]);
        }
        get inputMode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get inputMode' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("inputmode");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set inputMode(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set inputMode' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'inputMode' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("inputmode", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get maxLength() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get maxLength' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("maxlength");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && conversions.long(value2) === value2) {
                return value2;
              }
            }
            return -1;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set maxLength(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set maxLength' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["long"](V, {
            context: "Failed to set the 'maxLength' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V < 0) {
              throw create_DOMException(globalObject, [
                `The negative value ${V} cannot be set for the maxLength property.`,
                "IndexSizeError"
              ]);
            }
            esValue[implSymbol]._reflectSetTheContentAttribute("maxlength", String(V));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get minLength() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get minLength' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("minlength");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && conversions.long(value2) === value2) {
                return value2;
              }
            }
            return -1;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set minLength(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set minLength' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["long"](V, {
            context: "Failed to set the 'minLength' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V < 0) {
              throw create_DOMException(globalObject, [
                `The negative value ${V} cannot be set for the minLength property.`,
                "IndexSizeError"
              ]);
            }
            esValue[implSymbol]._reflectSetTheContentAttribute("minlength", String(V));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get placeholder() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get placeholder' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("placeholder");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set placeholder(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set placeholder' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'placeholder' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("placeholder", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get readOnly() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get readOnly' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("readonly") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set readOnly(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set readOnly' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'readOnly' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("readonly", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("readonly");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get required() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get required' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("required") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set required(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set required' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'required' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("required", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("required");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get rows() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rows' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("rows");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 1 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set rows(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set rows' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'rows' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 1 ? V : 2;
            esValue[implSymbol]._reflectSetTheContentAttribute("rows", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get wrap() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get wrap' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("wrap");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set wrap(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set wrap' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'wrap' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("wrap", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          return esValue[implSymbol]["type"];
        }
        get defaultValue() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get defaultValue' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["defaultValue"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set defaultValue(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set defaultValue' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'defaultValue' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["defaultValue"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get value' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["value"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set value' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'value' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["value"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get textLength() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get textLength' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          return esValue[implSymbol]["textLength"];
        }
        get willValidate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get willValidate' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          return esValue[implSymbol]["willValidate"];
        }
        get validity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validity' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["validity"]);
        }
        get validationMessage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validationMessage' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          return esValue[implSymbol]["validationMessage"];
        }
        get labels() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get labels' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["labels"]);
        }
        get selectionStart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get selectionStart' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          return esValue[implSymbol]["selectionStart"];
        }
        set selectionStart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set selectionStart' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'selectionStart' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["selectionStart"] = V;
        }
        get selectionEnd() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get selectionEnd' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          return esValue[implSymbol]["selectionEnd"];
        }
        set selectionEnd(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set selectionEnd' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'selectionEnd' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["selectionEnd"] = V;
        }
        get selectionDirection() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get selectionDirection' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          return esValue[implSymbol]["selectionDirection"];
        }
        set selectionDirection(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set selectionDirection' called on an object that is not a valid instance of HTMLTextAreaElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'selectionDirection' property on 'HTMLTextAreaElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["selectionDirection"] = V;
        }
      }
      Object.defineProperties(HTMLTextAreaElement.prototype, {
        checkValidity: { enumerable: true },
        reportValidity: { enumerable: true },
        setCustomValidity: { enumerable: true },
        select: { enumerable: true },
        setRangeText: { enumerable: true },
        setSelectionRange: { enumerable: true },
        autocomplete: { enumerable: true },
        autofocus: { enumerable: true },
        cols: { enumerable: true },
        dirName: { enumerable: true },
        disabled: { enumerable: true },
        form: { enumerable: true },
        inputMode: { enumerable: true },
        maxLength: { enumerable: true },
        minLength: { enumerable: true },
        name: { enumerable: true },
        placeholder: { enumerable: true },
        readOnly: { enumerable: true },
        required: { enumerable: true },
        rows: { enumerable: true },
        wrap: { enumerable: true },
        type: { enumerable: true },
        defaultValue: { enumerable: true },
        value: { enumerable: true },
        textLength: { enumerable: true },
        willValidate: { enumerable: true },
        validity: { enumerable: true },
        validationMessage: { enumerable: true },
        labels: { enumerable: true },
        selectionStart: { enumerable: true },
        selectionEnd: { enumerable: true },
        selectionDirection: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLTextAreaElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLTextAreaElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLTextAreaElement
      });
    };
    var Impl = require_HTMLTextAreaElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUnknownElement-impl.js
var require_HTMLUnknownElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUnknownElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLUnknownElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLUnknownElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js
var require_HTMLUnknownElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLUnknownElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLUnknownElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLUnknownElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLUnknownElement extends globalObject.HTMLElement {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
      }
      Object.defineProperties(HTMLUnknownElement.prototype, {
        [Symbol.toStringTag]: { value: "HTMLUnknownElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLUnknownElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLUnknownElement
      });
    };
    var Impl = require_HTMLUnknownElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameElement-impl.js
var require_HTMLFrameElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameElement-impl.js"(exports, module) {
    "use strict";
    var MIMEType = require_mime_type();
    var whatwgEncoding = require_whatwg_encoding();
    var { parseURL, serializeURL } = require_whatwg_url();
    var sniffHTMLEncoding = require_html_encoding_sniffer();
    var window2 = require_Window();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var { evaluateJavaScriptURL } = require_navigation();
    var { parseIntoDocument } = require_parser3();
    var { fireAnEvent } = require_events4();
    var { getAttributeValue } = require_attributes3();
    var idlUtils = require_utils16();
    function fireLoadEvent(document2, frame, attaching) {
      if (attaching) {
        fireAnEvent("load", frame);
        return;
      }
      const dummyPromise = Promise.resolve();
      function onLoad() {
        fireAnEvent("load", frame);
      }
      document2._queue.push(dummyPromise, onLoad);
    }
    function fetchFrame(serializedURL, frame, document2, contentDoc) {
      const resourceLoader = document2._resourceLoader;
      let request;
      function onFrameLoaded(data2) {
        const sniffOptions = {
          defaultEncoding: document2._encoding
        };
        if (request.response) {
          const contentType = MIMEType.parse(request.response.headers["content-type"]) || new MIMEType("text/plain");
          sniffOptions.transportLayerEncodingLabel = contentType.parameters.get("charset");
          if (contentType) {
            if (contentType.isXML()) {
              contentDoc._parsingMode = "xml";
            }
            contentDoc.contentType = contentType.essence;
          }
        }
        const encoding = sniffHTMLEncoding(data2, sniffOptions);
        contentDoc._encoding = encoding;
        const html = whatwgEncoding.decode(data2, contentDoc._encoding);
        try {
          parseIntoDocument(html, contentDoc);
        } catch (error) {
          const { DOMException: DOMException2 } = contentDoc._globalObject;
          if (error.constructor.name === "DOMException" && error.code === DOMException2.SYNTAX_ERR && contentDoc._parsingMode === "xml") {
            const element = contentDoc.createElementNS("http://www.mozilla.org/newlayout/xml/parsererror.xml", "parsererror");
            element.textContent = error.message;
            while (contentDoc.childNodes.length > 0) {
              contentDoc.removeChild(contentDoc.lastChild);
            }
            contentDoc.appendChild(element);
          } else {
            throw error;
          }
        }
        contentDoc.close();
        return new Promise((resolve4, reject) => {
          contentDoc.addEventListener("load", resolve4);
          contentDoc.addEventListener("error", reject);
        });
      }
      request = resourceLoader.fetch(serializedURL, {
        element: frame,
        onLoad: onFrameLoaded
      });
    }
    function canDispatchEvents(frame, attaching) {
      if (!attaching) {
        return false;
      }
      return Object.keys(frame._eventListeners).length === 0;
    }
    function loadFrame(frame, attaching) {
      if (frame._contentDocument) {
        if (frame._contentDocument._defaultView) {
          frame._contentDocument._defaultView.close();
        } else {
          delete frame._contentDocument;
        }
      }
      const parentDoc = frame._ownerDocument;
      let url3;
      const srcAttribute = getAttributeValue(frame, "src");
      if (srcAttribute === "") {
        url3 = parseURL("about:blank");
      } else {
        url3 = parseURL(srcAttribute, { baseURL: parentDoc.baseURL() || void 0 }) || parseURL("about:blank");
      }
      const serializedURL = serializeURL(url3);
      const wnd = window2.createWindow({
        parsingMode: "html",
        url: url3.scheme === "javascript" ? parentDoc.URL : serializedURL,
        parentOrigin: parentDoc._origin,
        resourceLoader: parentDoc._defaultView._resourceLoader,
        referrer: parentDoc.URL,
        cookieJar: parentDoc._cookieJar,
        pool: parentDoc._pool,
        encoding: parentDoc._encoding,
        runScripts: parentDoc._defaultView._runScripts,
        commonForOrigin: parentDoc._defaultView._commonForOrigin,
        pretendToBeVisual: parentDoc._defaultView._pretendToBeVisual
      });
      const contentDoc = frame._contentDocument = idlUtils.implForWrapper(wnd._document);
      const parent = parentDoc._defaultView;
      const contentWindow = contentDoc._defaultView;
      contentWindow._parent = parent;
      contentWindow._top = parent.top;
      contentWindow._frameElement = frame;
      contentWindow._virtualConsole = parent._virtualConsole;
      if (parentDoc._origin === contentDoc._origin) {
        contentWindow._currentOriginData.windowsInSameOrigin.push(contentWindow);
      }
      const noQueue = canDispatchEvents(frame, attaching);
      if (serializedURL === "about:blank") {
        parseIntoDocument("<html><head></head><body></body></html>", contentDoc);
        contentDoc.close(noQueue);
        if (noQueue) {
          fireLoadEvent(parentDoc, frame, noQueue);
        } else {
          contentDoc.addEventListener("load", () => {
            fireLoadEvent(parentDoc, frame);
          });
        }
      } else if (url3.scheme === "javascript") {
        parseIntoDocument("<html><head></head><body></body></html>", contentDoc);
        contentDoc.close(noQueue);
        const result = evaluateJavaScriptURL(contentWindow, url3);
        if (typeof result === "string") {
          contentDoc.body.textContent = result;
        }
        if (noQueue) {
          fireLoadEvent(parentDoc, frame, noQueue);
        } else {
          contentDoc.addEventListener("load", () => {
            fireLoadEvent(parentDoc, frame);
          });
        }
      } else {
        fetchFrame(serializedURL, frame, parentDoc, contentDoc);
      }
    }
    function refreshAccessors(document2) {
      const { _defaultView } = document2;
      if (!_defaultView) {
        return;
      }
      const frames = document2.querySelectorAll("iframe,frame");
      for (let i5 = 0; i5 < _defaultView._length; ++i5) {
        delete _defaultView[i5];
      }
      _defaultView._length = frames.length;
      for (let i5 = 0; i5 < frames.length; ++i5) {
        const frame = frames.item(i5);
        Object.defineProperty(_defaultView, i5, {
          configurable: true,
          enumerable: true,
          get() {
            return frame.contentWindow;
          }
        });
      }
    }
    var HTMLFrameElementImpl = class extends HTMLElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._contentDocument = null;
      }
      _attrModified(name, value2, oldVal) {
        super._attrModified(name, value2, oldVal);
        if (name === "src") {
          if (this._attached && this._ownerDocument._defaultView) {
            loadFrame(this);
          }
        }
      }
      _detach() {
        super._detach();
        if (this.contentWindow) {
          this.contentWindow.close();
        }
        refreshAccessors(this._ownerDocument);
      }
      _attach() {
        super._attach();
        if (this._ownerDocument._defaultView) {
          loadFrame(this, true);
        }
        refreshAccessors(this._ownerDocument);
      }
      get contentDocument() {
        return this._contentDocument;
      }
      get contentWindow() {
        return this.contentDocument ? this.contentDocument._defaultView : null;
      }
    };
    module.exports = {
      implementation: HTMLFrameElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js
var require_HTMLFrameElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLFrameElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLFrameElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLFrameElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLFrameElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get scrolling() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get scrolling' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("scrolling");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set scrolling(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set scrolling' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'scrolling' property on 'HTMLFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("scrolling", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get src() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get src' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("src");
            if (value2 === null) {
              return "";
            }
            if (this._srcURLCacheKey === value2) {
              return this._srcURLCache;
            }
            this._srcURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._srcURLCache = serializeURLwhatwg_url(urlRecord);
              return this._srcURLCache;
            }
            this._srcURLCache = conversions.USVString(value2);
            return this._srcURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set src(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set src' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'src' property on 'HTMLFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get frameBorder() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get frameBorder' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("frameborder");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set frameBorder(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set frameBorder' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'frameBorder' property on 'HTMLFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("frameborder", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get longDesc() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get longDesc' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("longdesc");
            if (value2 === null) {
              return "";
            }
            if (this._longdescURLCacheKey === value2) {
              return this._longdescURLCache;
            }
            this._longdescURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._longdescURLCache = serializeURLwhatwg_url(urlRecord);
              return this._longdescURLCache;
            }
            this._longdescURLCache = conversions.USVString(value2);
            return this._longdescURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set longDesc(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set longDesc' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'longDesc' property on 'HTMLFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("longdesc", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get noResize() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get noResize' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("noresize") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set noResize(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set noResize' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'noResize' property on 'HTMLFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("noresize", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("noresize");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get contentDocument() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get contentDocument' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["contentDocument"]);
        }
        get contentWindow() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get contentWindow' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["contentWindow"]);
        }
        get marginHeight() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get marginHeight' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("marginheight");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set marginHeight(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set marginHeight' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'marginHeight' property on 'HTMLFrameElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("marginheight", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get marginWidth() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get marginWidth' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("marginwidth");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set marginWidth(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set marginWidth' called on an object that is not a valid instance of HTMLFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'marginWidth' property on 'HTMLFrameElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("marginwidth", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLFrameElement.prototype, {
        name: { enumerable: true },
        scrolling: { enumerable: true },
        src: { enumerable: true },
        frameBorder: { enumerable: true },
        longDesc: { enumerable: true },
        noResize: { enumerable: true },
        contentDocument: { enumerable: true },
        contentWindow: { enumerable: true },
        marginHeight: { enumerable: true },
        marginWidth: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLFrameElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLFrameElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLFrameElement
      });
    };
    var Impl = require_HTMLFrameElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameSetElement-impl.js
var require_HTMLFrameSetElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameSetElement-impl.js"(exports, module) {
    "use strict";
    var { mixin: mixin2 } = require_utils17();
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var WindowEventHandlersImpl = require_WindowEventHandlers_impl().implementation;
    var HTMLFrameSetElementImpl = class extends HTMLElementImpl {
      constructor(...args) {
        super(...args);
        this._proxyWindowEventsToWindow();
      }
    };
    mixin2(HTMLFrameSetElementImpl.prototype, WindowEventHandlersImpl.prototype);
    module.exports = {
      implementation: HTMLFrameSetElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js
var require_HTMLFrameSetElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var EventHandlerNonNull = require_EventHandlerNonNull();
    var OnBeforeUnloadEventHandlerNonNull = require_OnBeforeUnloadEventHandlerNonNull();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLFrameSetElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLFrameSetElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLFrameSetElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLFrameSetElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get cols() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get cols' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("cols");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set cols(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set cols' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'cols' property on 'HTMLFrameSetElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("cols", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get rows() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rows' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("rows");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set rows(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set rows' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'rows' property on 'HTMLFrameSetElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("rows", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get onafterprint() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onafterprint' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onafterprint"]);
        }
        set onafterprint(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onafterprint' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onafterprint' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onafterprint"] = V;
        }
        get onbeforeprint() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforeprint' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforeprint"]);
        }
        set onbeforeprint(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforeprint' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforeprint' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onbeforeprint"] = V;
        }
        get onbeforeunload() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforeunload' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforeunload"]);
        }
        set onbeforeunload(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforeunload' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = OnBeforeUnloadEventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforeunload' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onbeforeunload"] = V;
        }
        get onhashchange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onhashchange' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onhashchange"]);
        }
        set onhashchange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onhashchange' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onhashchange' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onhashchange"] = V;
        }
        get onlanguagechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onlanguagechange' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onlanguagechange"]);
        }
        set onlanguagechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onlanguagechange' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onlanguagechange' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onlanguagechange"] = V;
        }
        get onmessage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmessage' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmessage"]);
        }
        set onmessage(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmessage' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmessage' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onmessage"] = V;
        }
        get onmessageerror() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmessageerror' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmessageerror"]);
        }
        set onmessageerror(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmessageerror' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmessageerror' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onmessageerror"] = V;
        }
        get onoffline() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onoffline' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onoffline"]);
        }
        set onoffline(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onoffline' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onoffline' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onoffline"] = V;
        }
        get ononline() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ononline' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ononline"]);
        }
        set ononline(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ononline' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ononline' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["ononline"] = V;
        }
        get onpagehide() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onpagehide' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpagehide"]);
        }
        set onpagehide(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onpagehide' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpagehide' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onpagehide"] = V;
        }
        get onpageshow() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onpageshow' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpageshow"]);
        }
        set onpageshow(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onpageshow' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpageshow' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onpageshow"] = V;
        }
        get onpopstate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onpopstate' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpopstate"]);
        }
        set onpopstate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onpopstate' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpopstate' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onpopstate"] = V;
        }
        get onrejectionhandled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onrejectionhandled' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onrejectionhandled"]);
        }
        set onrejectionhandled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onrejectionhandled' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onrejectionhandled' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onrejectionhandled"] = V;
        }
        get onstorage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onstorage' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onstorage"]);
        }
        set onstorage(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onstorage' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onstorage' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onstorage"] = V;
        }
        get onunhandledrejection() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onunhandledrejection' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onunhandledrejection"]);
        }
        set onunhandledrejection(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onunhandledrejection' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onunhandledrejection' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onunhandledrejection"] = V;
        }
        get onunload() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onunload' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onunload"]);
        }
        set onunload(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onunload' called on an object that is not a valid instance of HTMLFrameSetElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onunload' property on 'HTMLFrameSetElement': The provided value"
            });
          }
          esValue[implSymbol]["onunload"] = V;
        }
      }
      Object.defineProperties(HTMLFrameSetElement.prototype, {
        cols: { enumerable: true },
        rows: { enumerable: true },
        onafterprint: { enumerable: true },
        onbeforeprint: { enumerable: true },
        onbeforeunload: { enumerable: true },
        onhashchange: { enumerable: true },
        onlanguagechange: { enumerable: true },
        onmessage: { enumerable: true },
        onmessageerror: { enumerable: true },
        onoffline: { enumerable: true },
        ononline: { enumerable: true },
        onpagehide: { enumerable: true },
        onpageshow: { enumerable: true },
        onpopstate: { enumerable: true },
        onrejectionhandled: { enumerable: true },
        onstorage: { enumerable: true },
        onunhandledrejection: { enumerable: true },
        onunload: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLFrameSetElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLFrameSetElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLFrameSetElement
      });
    };
    var Impl = require_HTMLFrameSetElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLIFrameElement-impl.js
var require_HTMLIFrameElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLIFrameElement-impl.js"(exports, module) {
    "use strict";
    var HTMLFrameElementImpl = require_HTMLFrameElement_impl().implementation;
    var HTMLIFrameElementImpl = class extends HTMLFrameElementImpl {
    };
    module.exports = {
      implementation: HTMLIFrameElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js
var require_HTMLIFrameElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLIFrameElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLIFrameElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLIFrameElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLIFrameElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        getSVGDocument() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getSVGDocument' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getSVGDocument());
        }
        get src() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get src' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("src");
            if (value2 === null) {
              return "";
            }
            if (this._srcURLCacheKey === value2) {
              return this._srcURLCache;
            }
            this._srcURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._srcURLCache = serializeURLwhatwg_url(urlRecord);
              return this._srcURLCache;
            }
            this._srcURLCache = conversions.USVString(value2);
            return this._srcURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set src(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set src' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'src' property on 'HTMLIFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get srcdoc() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get srcdoc' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("srcdoc");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set srcdoc(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set srcdoc' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'srcdoc' property on 'HTMLIFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("srcdoc", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLIFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get allowFullscreen() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get allowFullscreen' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("allowfullscreen") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set allowFullscreen(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set allowFullscreen' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'allowFullscreen' property on 'HTMLIFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("allowfullscreen", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("allowfullscreen");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get width' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("width");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set width' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'width' property on 'HTMLIFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get height() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get height' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("height");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set height(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set height' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'height' property on 'HTMLIFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("height", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get contentDocument() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get contentDocument' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["contentDocument"]);
        }
        get contentWindow() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get contentWindow' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["contentWindow"]);
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLIFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get scrolling() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get scrolling' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("scrolling");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set scrolling(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set scrolling' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'scrolling' property on 'HTMLIFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("scrolling", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get frameBorder() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get frameBorder' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("frameborder");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set frameBorder(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set frameBorder' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'frameBorder' property on 'HTMLIFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("frameborder", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get longDesc() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get longDesc' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("longdesc");
            if (value2 === null) {
              return "";
            }
            if (this._longdescURLCacheKey === value2) {
              return this._longdescURLCache;
            }
            this._longdescURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._longdescURLCache = serializeURLwhatwg_url(urlRecord);
              return this._longdescURLCache;
            }
            this._longdescURLCache = conversions.USVString(value2);
            return this._longdescURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set longDesc(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set longDesc' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'longDesc' property on 'HTMLIFrameElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("longdesc", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get marginHeight() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get marginHeight' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("marginheight");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set marginHeight(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set marginHeight' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'marginHeight' property on 'HTMLIFrameElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("marginheight", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get marginWidth() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get marginWidth' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("marginwidth");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set marginWidth(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set marginWidth' called on an object that is not a valid instance of HTMLIFrameElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'marginWidth' property on 'HTMLIFrameElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("marginwidth", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLIFrameElement.prototype, {
        getSVGDocument: { enumerable: true },
        src: { enumerable: true },
        srcdoc: { enumerable: true },
        name: { enumerable: true },
        allowFullscreen: { enumerable: true },
        width: { enumerable: true },
        height: { enumerable: true },
        contentDocument: { enumerable: true },
        contentWindow: { enumerable: true },
        align: { enumerable: true },
        scrolling: { enumerable: true },
        frameBorder: { enumerable: true },
        longDesc: { enumerable: true },
        marginHeight: { enumerable: true },
        marginWidth: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLIFrameElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLIFrameElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLIFrameElement
      });
    };
    var Impl = require_HTMLIFrameElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLEmbedElement-impl.js
var require_HTMLEmbedElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLEmbedElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLEmbedElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLEmbedElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js
var require_HTMLEmbedElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLEmbedElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLEmbedElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLEmbedElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLEmbedElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get src() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get src' called on an object that is not a valid instance of HTMLEmbedElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("src");
            if (value2 === null) {
              return "";
            }
            if (this._srcURLCacheKey === value2) {
              return this._srcURLCache;
            }
            this._srcURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._srcURLCache = serializeURLwhatwg_url(urlRecord);
              return this._srcURLCache;
            }
            this._srcURLCache = conversions.USVString(value2);
            return this._srcURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set src(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set src' called on an object that is not a valid instance of HTMLEmbedElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'src' property on 'HTMLEmbedElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLEmbedElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("type");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set type(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set type' called on an object that is not a valid instance of HTMLEmbedElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'type' property on 'HTMLEmbedElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get width' called on an object that is not a valid instance of HTMLEmbedElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("width");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set width' called on an object that is not a valid instance of HTMLEmbedElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'width' property on 'HTMLEmbedElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get height() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get height' called on an object that is not a valid instance of HTMLEmbedElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("height");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set height(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set height' called on an object that is not a valid instance of HTMLEmbedElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'height' property on 'HTMLEmbedElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("height", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLEmbedElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLEmbedElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLEmbedElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLEmbedElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLEmbedElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLEmbedElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLEmbedElement.prototype, {
        src: { enumerable: true },
        type: { enumerable: true },
        width: { enumerable: true },
        height: { enumerable: true },
        align: { enumerable: true },
        name: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLEmbedElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLEmbedElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLEmbedElement
      });
    };
    var Impl = require_HTMLEmbedElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLObjectElement-impl.js
var require_HTMLObjectElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLObjectElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var DefaultConstraintValidationImpl = require_DefaultConstraintValidation_impl().implementation;
    var { mixin: mixin2 } = require_utils17();
    var { formOwner } = require_form_controls();
    var HTMLObjectElementImpl = class extends HTMLElementImpl {
      get form() {
        return formOwner(this);
      }
      get contentDocument() {
        return null;
      }
      _barredFromConstraintValidationSpecialization() {
        return true;
      }
    };
    mixin2(HTMLObjectElementImpl.prototype, DefaultConstraintValidationImpl.prototype);
    module.exports = {
      implementation: HTMLObjectElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js
var require_HTMLObjectElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var parseNonNegativeInteger_helpers_strings = require_strings2().parseNonNegativeInteger;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLObjectElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLObjectElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLObjectElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLObjectElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        checkValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'checkValidity' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          return esValue[implSymbol].checkValidity();
        }
        reportValidity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'reportValidity' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          return esValue[implSymbol].reportValidity();
        }
        setCustomValidity(error) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setCustomValidity' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setCustomValidity' on 'HTMLObjectElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'setCustomValidity' on 'HTMLObjectElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setCustomValidity(...args);
        }
        get data() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get data' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("data");
            if (value2 === null) {
              return "";
            }
            if (this._dataURLCacheKey === value2) {
              return this._dataURLCache;
            }
            this._dataURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._dataURLCache = serializeURLwhatwg_url(urlRecord);
              return this._dataURLCache;
            }
            this._dataURLCache = conversions.USVString(value2);
            return this._dataURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set data(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set data' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'data' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("data", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("type");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set type(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set type' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'type' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get useMap() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get useMap' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("usemap");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set useMap(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set useMap' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'useMap' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("usemap", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get form() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get form' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["form"]);
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get width' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("width");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set width' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'width' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("width", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get height() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get height' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("height");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set height(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set height' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'height' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("height", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get contentDocument() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get contentDocument' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["contentDocument"]);
        }
        get willValidate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get willValidate' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          return esValue[implSymbol]["willValidate"];
        }
        get validity() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validity' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["validity"]);
        }
        get validationMessage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get validationMessage' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          return esValue[implSymbol]["validationMessage"];
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("align");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'align' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("align", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get archive() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get archive' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("archive");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set archive(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set archive' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'archive' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("archive", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get code() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get code' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("code");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set code(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set code' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'code' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("code", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get declare() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get declare' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("declare") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set declare(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set declare' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'declare' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("declare", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("declare");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get hspace() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get hspace' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("hspace");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 0 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 0;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set hspace(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set hspace' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'hspace' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 0;
            esValue[implSymbol]._reflectSetTheContentAttribute("hspace", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get standby() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get standby' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("standby");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set standby(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set standby' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'standby' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("standby", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get vspace() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get vspace' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("vspace");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 0 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 0;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set vspace(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set vspace' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'vspace' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 0;
            esValue[implSymbol]._reflectSetTheContentAttribute("vspace", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get codeBase() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get codeBase' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("codebase");
            if (value2 === null) {
              return "";
            }
            if (this._codebaseURLCacheKey === value2) {
              return this._codebaseURLCache;
            }
            this._codebaseURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._codebaseURLCache = serializeURLwhatwg_url(urlRecord);
              return this._codebaseURLCache;
            }
            this._codebaseURLCache = conversions.USVString(value2);
            return this._codebaseURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set codeBase(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set codeBase' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'codeBase' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("codebase", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get codeType() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get codeType' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("codetype");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set codeType(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set codeType' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'codeType' property on 'HTMLObjectElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("codetype", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get border() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get border' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("border");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set border(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set border' called on an object that is not a valid instance of HTMLObjectElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'border' property on 'HTMLObjectElement': The provided value",
            globals: globalObject,
            treatNullAsEmptyString: true
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("border", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLObjectElement.prototype, {
        checkValidity: { enumerable: true },
        reportValidity: { enumerable: true },
        setCustomValidity: { enumerable: true },
        data: { enumerable: true },
        type: { enumerable: true },
        name: { enumerable: true },
        useMap: { enumerable: true },
        form: { enumerable: true },
        width: { enumerable: true },
        height: { enumerable: true },
        contentDocument: { enumerable: true },
        willValidate: { enumerable: true },
        validity: { enumerable: true },
        validationMessage: { enumerable: true },
        align: { enumerable: true },
        archive: { enumerable: true },
        code: { enumerable: true },
        declare: { enumerable: true },
        hspace: { enumerable: true },
        standby: { enumerable: true },
        vspace: { enumerable: true },
        codeBase: { enumerable: true },
        codeType: { enumerable: true },
        border: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLObjectElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLObjectElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLObjectElement
      });
    };
    var Impl = require_HTMLObjectElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParamElement-impl.js
var require_HTMLParamElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParamElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLParamElementImpl = class extends HTMLElementImpl {
    };
    module.exports = {
      implementation: HTMLParamElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js
var require_HTMLParamElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLParamElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLParamElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLParamElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLParamElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get name' called on an object that is not a valid instance of HTMLParamElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("name");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set name(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set name' called on an object that is not a valid instance of HTMLParamElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'name' property on 'HTMLParamElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("name", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get value' called on an object that is not a valid instance of HTMLParamElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("value");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set value' called on an object that is not a valid instance of HTMLParamElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'value' property on 'HTMLParamElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("value", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get type' called on an object that is not a valid instance of HTMLParamElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("type");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set type(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set type' called on an object that is not a valid instance of HTMLParamElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'type' property on 'HTMLParamElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("type", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get valueType() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get valueType' called on an object that is not a valid instance of HTMLParamElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("valuetype");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set valueType(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set valueType' called on an object that is not a valid instance of HTMLParamElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'valueType' property on 'HTMLParamElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("valuetype", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLParamElement.prototype, {
        name: { enumerable: true },
        value: { enumerable: true },
        type: { enumerable: true },
        valueType: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLParamElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLParamElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLParamElement
      });
    };
    var Impl = require_HTMLParamElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLVideoElement-impl.js
var require_HTMLVideoElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLVideoElement-impl.js"(exports, module) {
    "use strict";
    var HTMLMediaElementImpl = require_HTMLMediaElement_impl().implementation;
    var HTMLVideoElementImpl = class extends HTMLMediaElementImpl {
      get videoWidth() {
        return 0;
      }
      get videoHeight() {
        return 0;
      }
    };
    module.exports = {
      implementation: HTMLVideoElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js
var require_HTMLVideoElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var parseNonNegativeInteger_helpers_strings = require_strings2().parseNonNegativeInteger;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLMediaElement2 = require_HTMLMediaElement();
    var interfaceName = "HTMLVideoElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLVideoElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLVideoElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLMediaElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLVideoElement extends globalObject.HTMLMediaElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get width' called on an object that is not a valid instance of HTMLVideoElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("width");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 0 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 0;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set width' called on an object that is not a valid instance of HTMLVideoElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'width' property on 'HTMLVideoElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 0;
            esValue[implSymbol]._reflectSetTheContentAttribute("width", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get height() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get height' called on an object that is not a valid instance of HTMLVideoElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            let value2 = esValue[implSymbol]._reflectGetTheContentAttribute("height");
            if (value2 !== null) {
              value2 = parseNonNegativeInteger_helpers_strings(value2);
              if (value2 !== null && value2 >= 0 && value2 <= 2147483647) {
                return value2;
              }
            }
            return 0;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set height(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set height' called on an object that is not a valid instance of HTMLVideoElement."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'height' property on 'HTMLVideoElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const newValue = V <= 2147483647 && V >= 0 ? V : 0;
            esValue[implSymbol]._reflectSetTheContentAttribute("height", String(newValue));
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get videoWidth() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get videoWidth' called on an object that is not a valid instance of HTMLVideoElement."
            );
          }
          return esValue[implSymbol]["videoWidth"];
        }
        get videoHeight() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get videoHeight' called on an object that is not a valid instance of HTMLVideoElement."
            );
          }
          return esValue[implSymbol]["videoHeight"];
        }
        get poster() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get poster' called on an object that is not a valid instance of HTMLVideoElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("poster");
            if (value2 === null) {
              return "";
            }
            if (this._posterURLCacheKey === value2) {
              return this._posterURLCache;
            }
            this._posterURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._posterURLCache = serializeURLwhatwg_url(urlRecord);
              return this._posterURLCache;
            }
            this._posterURLCache = conversions.USVString(value2);
            return this._posterURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set poster(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set poster' called on an object that is not a valid instance of HTMLVideoElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'poster' property on 'HTMLVideoElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("poster", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get playsInline() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get playsInline' called on an object that is not a valid instance of HTMLVideoElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("playsinline") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set playsInline(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set playsInline' called on an object that is not a valid instance of HTMLVideoElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'playsInline' property on 'HTMLVideoElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("playsinline", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("playsinline");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(HTMLVideoElement.prototype, {
        width: { enumerable: true },
        height: { enumerable: true },
        videoWidth: { enumerable: true },
        videoHeight: { enumerable: true },
        poster: { enumerable: true },
        playsInline: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLVideoElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLVideoElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLVideoElement
      });
    };
    var Impl = require_HTMLVideoElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAudioElement-impl.js
var require_HTMLAudioElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAudioElement-impl.js"(exports, module) {
    "use strict";
    var HTMLMediaElementImpl = require_HTMLMediaElement_impl().implementation;
    var HTMLAudioElementImpl = class extends HTMLMediaElementImpl {
    };
    module.exports = {
      implementation: HTMLAudioElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js
var require_HTMLAudioElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLMediaElement2 = require_HTMLMediaElement();
    var interfaceName = "HTMLAudioElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLAudioElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLAudioElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLMediaElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLAudioElement extends globalObject.HTMLMediaElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
      }
      Object.defineProperties(HTMLAudioElement.prototype, {
        [Symbol.toStringTag]: { value: "HTMLAudioElement", configurable: true }
      });
      ctorRegistry[interfaceName] = HTMLAudioElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLAudioElement
      });
    };
    var Impl = require_HTMLAudioElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTrackElement-impl.js
var require_HTMLTrackElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTrackElement-impl.js"(exports, module) {
    "use strict";
    var HTMLElementImpl = require_HTMLElement_impl().implementation;
    var HTMLTrackElementImpl = class extends HTMLElementImpl {
      get readyState() {
        return 0;
      }
    };
    module.exports = {
      implementation: HTMLTrackElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js
var require_HTMLTrackElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLConstructor_helpers_html_constructor = require_html_constructor().HTMLConstructor;
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var serializeURLwhatwg_url = require_whatwg_url().serializeURL;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var HTMLElement2 = require_HTMLElement();
    var interfaceName = "HTMLTrackElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'HTMLTrackElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["HTMLTrackElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      HTMLElement2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class HTMLTrackElement extends globalObject.HTMLElement {
        constructor() {
          return HTMLConstructor_helpers_html_constructor(globalObject, interfaceName, new.target);
        }
        get kind() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get kind' called on an object that is not a valid instance of HTMLTrackElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("kind");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set kind(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set kind' called on an object that is not a valid instance of HTMLTrackElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'kind' property on 'HTMLTrackElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("kind", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get src() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get src' called on an object that is not a valid instance of HTMLTrackElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("src");
            if (value2 === null) {
              return "";
            }
            if (this._srcURLCacheKey === value2) {
              return this._srcURLCache;
            }
            this._srcURLCacheKey = value2;
            const urlRecord = esValue[implSymbol]._ownerDocument.encodingParseAURL(value2);
            if (urlRecord !== null) {
              this._srcURLCache = serializeURLwhatwg_url(urlRecord);
              return this._srcURLCache;
            }
            this._srcURLCache = conversions.USVString(value2);
            return this._srcURLCache;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set src(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set src' called on an object that is not a valid instance of HTMLTrackElement."
            );
          }
          V = conversions["USVString"](V, {
            context: "Failed to set the 'src' property on 'HTMLTrackElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("src", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get srclang() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get srclang' called on an object that is not a valid instance of HTMLTrackElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("srclang");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set srclang(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set srclang' called on an object that is not a valid instance of HTMLTrackElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'srclang' property on 'HTMLTrackElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("srclang", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get label() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get label' called on an object that is not a valid instance of HTMLTrackElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("label");
            return value2 === null ? "" : value2;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set label(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set label' called on an object that is not a valid instance of HTMLTrackElement."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'label' property on 'HTMLTrackElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]._reflectSetTheContentAttribute("label", V);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get default() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get default' called on an object that is not a valid instance of HTMLTrackElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]._reflectGetTheContentAttribute("default") !== null;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set default(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set default' called on an object that is not a valid instance of HTMLTrackElement."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'default' property on 'HTMLTrackElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            if (V) {
              esValue[implSymbol]._reflectSetTheContentAttribute("default", "");
            } else {
              esValue[implSymbol]._reflectDeleteTheContentAttribute("default");
            }
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get readyState() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get readyState' called on an object that is not a valid instance of HTMLTrackElement."
            );
          }
          return esValue[implSymbol]["readyState"];
        }
      }
      Object.defineProperties(HTMLTrackElement.prototype, {
        kind: { enumerable: true },
        src: { enumerable: true },
        srclang: { enumerable: true },
        label: { enumerable: true },
        default: { enumerable: true },
        readyState: { enumerable: true },
        [Symbol.toStringTag]: { value: "HTMLTrackElement", configurable: true },
        NONE: { value: 0, enumerable: true },
        LOADING: { value: 1, enumerable: true },
        LOADED: { value: 2, enumerable: true },
        ERROR: { value: 3, enumerable: true }
      });
      Object.defineProperties(HTMLTrackElement, {
        NONE: { value: 0, enumerable: true },
        LOADING: { value: 1, enumerable: true },
        LOADED: { value: 2, enumerable: true },
        ERROR: { value: 3, enumerable: true }
      });
      ctorRegistry[interfaceName] = HTMLTrackElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: HTMLTrackElement
      });
    };
    var Impl = require_HTMLTrackElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedString-impl.js
var require_SVGAnimatedString_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedString-impl.js"(exports) {
    "use strict";
    var SVGAnimatedStringImpl = class {
      constructor(globalObject, args, privateData) {
        this._element = privateData.element;
        this._attribute = privateData.attribute;
        this._attributeDeprecated = privateData.attributeDeprecated;
        this._attributeDeprecatedNamespace = privateData.attributeDeprecatedNamespace;
        this._initialValue = privateData.initialValue;
      }
      get baseVal() {
        if (!this._element.hasAttributeNS(null, this._attribute)) {
          if (this._attributeDeprecated !== void 0 && this._element.hasAttributeNS(this._attributeDeprecatedNamespace, this._attributeDeprecated)) {
            return this._element.getAttributeNS(this._attributeDeprecatedNamespace, this._attributeDeprecated);
          } else if (this._initialValue !== void 0) {
            return this._initialValue;
          }
          return "";
        }
        return this._element.getAttributeNS(null, this._attribute);
      }
      set baseVal(base) {
        if (!this._element.hasAttributeNS(null, this._attribute) && this._attributeDeprecated !== void 0 && this._element.hasAttributeNS(null, this._attributeDeprecated)) {
          this._element.setAttributeNS(null, this._attributeDeprecated, base);
        } else {
          this._element.setAttributeNS(null, this._attribute, base);
        }
      }
      get animVal() {
        return this.baseVal;
      }
    };
    exports.implementation = SVGAnimatedStringImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedString.js
var require_SVGAnimatedString = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedString.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "SVGAnimatedString";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGAnimatedString'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGAnimatedString"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGAnimatedString {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get baseVal() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get baseVal' called on an object that is not a valid instance of SVGAnimatedString."
            );
          }
          return esValue[implSymbol]["baseVal"];
        }
        set baseVal(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set baseVal' called on an object that is not a valid instance of SVGAnimatedString."
            );
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'baseVal' property on 'SVGAnimatedString': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["baseVal"] = V;
        }
        get animVal() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get animVal' called on an object that is not a valid instance of SVGAnimatedString."
            );
          }
          return esValue[implSymbol]["animVal"];
        }
      }
      Object.defineProperties(SVGAnimatedString.prototype, {
        baseVal: { enumerable: true },
        animVal: { enumerable: true },
        [Symbol.toStringTag]: { value: "SVGAnimatedString", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGAnimatedString;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGAnimatedString
      });
    };
    var Impl = require_SVGAnimatedString_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGElement-impl.js
var require_SVGElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGElement-impl.js"(exports) {
    "use strict";
    var { domSymbolTree } = require_internal_constants();
    var { SVG_NS } = require_namespaces();
    var { mixin: mixin2 } = require_utils17();
    var ElementImpl = require_Element_impl().implementation;
    var ElementCSSInlineStyleImpl = require_ElementCSSInlineStyle_impl().implementation;
    var GlobalEventHandlersImpl = require_GlobalEventHandlers_impl().implementation;
    var HTMLOrSVGElementImpl = require_HTMLOrSVGElement_impl().implementation;
    var SVGElementImpl = class extends ElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._initHTMLOrSVGElement();
        this._initElementCSSInlineStyle();
        this._initGlobalEvents();
      }
      // Keep in sync with HTMLElement. https://github.com/jsdom/jsdom/issues/2599
      _attrModified(name, value2, oldValue) {
        if (name === "style" && value2 !== oldValue && !this._settingCssText) {
          this._settingCssText = true;
          this._style.cssText = value2;
          this._settingCssText = false;
        } else if (name.startsWith("on")) {
          this._globalEventChanged(name.substring(2));
        }
        super._attrModified(name, value2, oldValue);
      }
      get ownerSVGElement() {
        let e4 = domSymbolTree.parent(this);
        while (e4 && e4.namespaceURI === SVG_NS) {
          if (e4.localName === "svg") {
            return e4;
          }
          e4 = domSymbolTree.parent(e4);
        }
        return null;
      }
      get viewportElement() {
        let e4 = domSymbolTree.parent(this);
        while (e4 && e4.namespaceURI === SVG_NS) {
          if (e4.localName === "svg" || e4.localName === "symbol") {
            return e4;
          }
          e4 = domSymbolTree.parent(e4);
        }
        return null;
      }
    };
    SVGElementImpl.attributeRegistry = /* @__PURE__ */ new Map();
    mixin2(SVGElementImpl.prototype, ElementCSSInlineStyleImpl.prototype);
    mixin2(SVGElementImpl.prototype, GlobalEventHandlersImpl.prototype);
    mixin2(SVGElementImpl.prototype, HTMLOrSVGElementImpl.prototype);
    exports.implementation = SVGElementImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGElement.js
var require_SVGElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var create_SVGAnimatedString = require_SVGAnimatedString().create;
    var EventHandlerNonNull = require_EventHandlerNonNull();
    var OnErrorEventHandlerNonNull = require_OnErrorEventHandlerNonNull();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Element2 = require_Element();
    var interfaceName = "SVGElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Element2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGElement extends globalObject.Element {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        focus() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'focus' called on an object that is not a valid instance of SVGElement.");
          }
          return esValue[implSymbol].focus();
        }
        blur() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'blur' called on an object that is not a valid instance of SVGElement.");
          }
          return esValue[implSymbol].blur();
        }
        get className() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get className' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.getSameObject(this, "className", () => {
            return create_SVGAnimatedString(globalObject, [], {
              element: esValue[implSymbol],
              attribute: "class"
            });
          });
        }
        get ownerSVGElement() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ownerSVGElement' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ownerSVGElement"]);
        }
        get viewportElement() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get viewportElement' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["viewportElement"]);
        }
        get style() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get style' called on an object that is not a valid instance of SVGElement.");
          }
          return utils2.getSameObject(this, "style", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["style"]);
          });
        }
        set style(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set style' called on an object that is not a valid instance of SVGElement.");
          }
          const Q = esValue["style"];
          if (!utils2.isObject(Q)) {
            throw new globalObject.TypeError("Property 'style' is not an object");
          }
          Reflect.set(Q, "cssText", V);
        }
        get onabort() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onabort' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onabort"]);
        }
        set onabort(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onabort' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onabort' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onabort"] = V;
        }
        get onauxclick() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onauxclick' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onauxclick"]);
        }
        set onauxclick(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onauxclick' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onauxclick' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onauxclick"] = V;
        }
        get onbeforeinput() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforeinput' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforeinput"]);
        }
        set onbeforeinput(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforeinput' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforeinput' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onbeforeinput"] = V;
        }
        get onbeforematch() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforematch' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforematch"]);
        }
        set onbeforematch(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforematch' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforematch' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onbeforematch"] = V;
        }
        get onbeforetoggle() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforetoggle' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforetoggle"]);
        }
        set onbeforetoggle(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforetoggle' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforetoggle' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onbeforetoggle"] = V;
        }
        get onblur() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onblur' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onblur"]);
        }
        set onblur(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onblur' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onblur' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onblur"] = V;
        }
        get oncancel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncancel' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncancel"]);
        }
        set oncancel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncancel' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncancel' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["oncancel"] = V;
        }
        get oncanplay() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncanplay' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncanplay"]);
        }
        set oncanplay(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncanplay' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncanplay' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["oncanplay"] = V;
        }
        get oncanplaythrough() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncanplaythrough' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncanplaythrough"]);
        }
        set oncanplaythrough(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncanplaythrough' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncanplaythrough' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["oncanplaythrough"] = V;
        }
        get onchange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onchange' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onchange"]);
        }
        set onchange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onchange' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onchange' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onchange"] = V;
        }
        get onclick() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onclick' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onclick"]);
        }
        set onclick(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onclick' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onclick' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onclick"] = V;
        }
        get onclose() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onclose' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onclose"]);
        }
        set onclose(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onclose' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onclose' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onclose"] = V;
        }
        get oncontextlost() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncontextlost' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncontextlost"]);
        }
        set oncontextlost(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncontextlost' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncontextlost' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["oncontextlost"] = V;
        }
        get oncontextmenu() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncontextmenu' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncontextmenu"]);
        }
        set oncontextmenu(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncontextmenu' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncontextmenu' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["oncontextmenu"] = V;
        }
        get oncontextrestored() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncontextrestored' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncontextrestored"]);
        }
        set oncontextrestored(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncontextrestored' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncontextrestored' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["oncontextrestored"] = V;
        }
        get oncopy() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncopy' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncopy"]);
        }
        set oncopy(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncopy' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncopy' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["oncopy"] = V;
        }
        get oncuechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oncuechange' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncuechange"]);
        }
        set oncuechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oncuechange' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncuechange' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["oncuechange"] = V;
        }
        get oncut() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get oncut' called on an object that is not a valid instance of SVGElement.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oncut"]);
        }
        set oncut(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set oncut' called on an object that is not a valid instance of SVGElement.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oncut' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["oncut"] = V;
        }
        get ondblclick() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondblclick' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondblclick"]);
        }
        set ondblclick(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondblclick' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondblclick' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ondblclick"] = V;
        }
        get ondrag() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondrag' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondrag"]);
        }
        set ondrag(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondrag' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondrag' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ondrag"] = V;
        }
        get ondragend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragend' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragend"]);
        }
        set ondragend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragend' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragend' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ondragend"] = V;
        }
        get ondragenter() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragenter' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragenter"]);
        }
        set ondragenter(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragenter' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragenter' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ondragenter"] = V;
        }
        get ondragleave() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragleave' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragleave"]);
        }
        set ondragleave(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragleave' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragleave' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ondragleave"] = V;
        }
        get ondragover() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragover' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragover"]);
        }
        set ondragover(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragover' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragover' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ondragover"] = V;
        }
        get ondragstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondragstart' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondragstart"]);
        }
        set ondragstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondragstart' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondragstart' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ondragstart"] = V;
        }
        get ondrop() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondrop' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondrop"]);
        }
        set ondrop(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondrop' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondrop' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ondrop"] = V;
        }
        get ondurationchange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ondurationchange' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ondurationchange"]);
        }
        set ondurationchange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ondurationchange' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ondurationchange' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ondurationchange"] = V;
        }
        get onemptied() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onemptied' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onemptied"]);
        }
        set onemptied(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onemptied' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onemptied' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onemptied"] = V;
        }
        get onended() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onended' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onended"]);
        }
        set onended(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onended' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onended' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onended"] = V;
        }
        get onerror() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onerror' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onerror"]);
        }
        set onerror(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onerror' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = OnErrorEventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onerror' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onerror"] = V;
        }
        get onfocus() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onfocus' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onfocus"]);
        }
        set onfocus(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onfocus' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onfocus' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onfocus"] = V;
        }
        get onformdata() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onformdata' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onformdata"]);
        }
        set onformdata(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onformdata' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onformdata' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onformdata"] = V;
        }
        get oninput() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oninput' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oninput"]);
        }
        set oninput(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oninput' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oninput' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["oninput"] = V;
        }
        get oninvalid() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oninvalid' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["oninvalid"]);
        }
        set oninvalid(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set oninvalid' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'oninvalid' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["oninvalid"] = V;
        }
        get onkeydown() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onkeydown' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onkeydown"]);
        }
        set onkeydown(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onkeydown' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onkeydown' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onkeydown"] = V;
        }
        get onkeypress() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onkeypress' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onkeypress"]);
        }
        set onkeypress(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onkeypress' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onkeypress' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onkeypress"] = V;
        }
        get onkeyup() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onkeyup' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onkeyup"]);
        }
        set onkeyup(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onkeyup' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onkeyup' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onkeyup"] = V;
        }
        get onload() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onload' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onload"]);
        }
        set onload(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onload' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onload' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onload"] = V;
        }
        get onloadeddata() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onloadeddata' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onloadeddata"]);
        }
        set onloadeddata(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onloadeddata' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onloadeddata' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onloadeddata"] = V;
        }
        get onloadedmetadata() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onloadedmetadata' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onloadedmetadata"]);
        }
        set onloadedmetadata(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onloadedmetadata' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onloadedmetadata' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onloadedmetadata"] = V;
        }
        get onloadstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onloadstart' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onloadstart"]);
        }
        set onloadstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onloadstart' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onloadstart' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onloadstart"] = V;
        }
        get onmousedown() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmousedown' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmousedown"]);
        }
        set onmousedown(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmousedown' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmousedown' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onmousedown"] = V;
        }
        get onmouseenter() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseenter"]);
        }
        set onmouseenter(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseenter' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onmouseenter"] = V;
        }
        get onmouseleave() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseleave"]);
        }
        set onmouseleave(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            return;
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseleave' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onmouseleave"] = V;
        }
        get onmousemove() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmousemove' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmousemove"]);
        }
        set onmousemove(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmousemove' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmousemove' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onmousemove"] = V;
        }
        get onmouseout() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmouseout' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseout"]);
        }
        set onmouseout(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmouseout' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseout' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onmouseout"] = V;
        }
        get onmouseover() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmouseover' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseover"]);
        }
        set onmouseover(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmouseover' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseover' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onmouseover"] = V;
        }
        get onmouseup() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmouseup' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmouseup"]);
        }
        set onmouseup(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmouseup' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmouseup' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onmouseup"] = V;
        }
        get onpaste() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onpaste' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpaste"]);
        }
        set onpaste(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onpaste' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpaste' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onpaste"] = V;
        }
        get onpause() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onpause' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpause"]);
        }
        set onpause(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onpause' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpause' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onpause"] = V;
        }
        get onplay() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onplay' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onplay"]);
        }
        set onplay(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onplay' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onplay' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onplay"] = V;
        }
        get onplaying() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onplaying' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onplaying"]);
        }
        set onplaying(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onplaying' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onplaying' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onplaying"] = V;
        }
        get onprogress() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onprogress' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onprogress"]);
        }
        set onprogress(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onprogress' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onprogress' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onprogress"] = V;
        }
        get onratechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onratechange' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onratechange"]);
        }
        set onratechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onratechange' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onratechange' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onratechange"] = V;
        }
        get onreset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onreset' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onreset"]);
        }
        set onreset(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onreset' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onreset' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onreset"] = V;
        }
        get onresize() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onresize' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onresize"]);
        }
        set onresize(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onresize' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onresize' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onresize"] = V;
        }
        get onscroll() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onscroll' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onscroll"]);
        }
        set onscroll(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onscroll' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onscroll' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onscroll"] = V;
        }
        get onscrollend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onscrollend' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onscrollend"]);
        }
        set onscrollend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onscrollend' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onscrollend' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onscrollend"] = V;
        }
        get onsecuritypolicyviolation() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onsecuritypolicyviolation' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onsecuritypolicyviolation"]);
        }
        set onsecuritypolicyviolation(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onsecuritypolicyviolation' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onsecuritypolicyviolation' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onsecuritypolicyviolation"] = V;
        }
        get onseeked() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onseeked' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onseeked"]);
        }
        set onseeked(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onseeked' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onseeked' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onseeked"] = V;
        }
        get onseeking() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onseeking' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onseeking"]);
        }
        set onseeking(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onseeking' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onseeking' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onseeking"] = V;
        }
        get onselect() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onselect' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onselect"]);
        }
        set onselect(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onselect' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onselect' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onselect"] = V;
        }
        get onslotchange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onslotchange' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onslotchange"]);
        }
        set onslotchange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onslotchange' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onslotchange' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onslotchange"] = V;
        }
        get onstalled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onstalled' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onstalled"]);
        }
        set onstalled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onstalled' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onstalled' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onstalled"] = V;
        }
        get onsubmit() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onsubmit' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onsubmit"]);
        }
        set onsubmit(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onsubmit' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onsubmit' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onsubmit"] = V;
        }
        get onsuspend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onsuspend' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onsuspend"]);
        }
        set onsuspend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onsuspend' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onsuspend' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onsuspend"] = V;
        }
        get ontimeupdate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontimeupdate' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontimeupdate"]);
        }
        set ontimeupdate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontimeupdate' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontimeupdate' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ontimeupdate"] = V;
        }
        get ontoggle() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontoggle' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontoggle"]);
        }
        set ontoggle(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontoggle' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontoggle' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ontoggle"] = V;
        }
        get onvolumechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onvolumechange' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onvolumechange"]);
        }
        set onvolumechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onvolumechange' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onvolumechange' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onvolumechange"] = V;
        }
        get onwaiting() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwaiting' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwaiting"]);
        }
        set onwaiting(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwaiting' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwaiting' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onwaiting"] = V;
        }
        get onwebkitanimationend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwebkitanimationend' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationend"]);
        }
        set onwebkitanimationend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwebkitanimationend' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwebkitanimationend' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onwebkitanimationend"] = V;
        }
        get onwebkitanimationiteration() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwebkitanimationiteration' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationiteration"]);
        }
        set onwebkitanimationiteration(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwebkitanimationiteration' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwebkitanimationiteration' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onwebkitanimationiteration"] = V;
        }
        get onwebkitanimationstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwebkitanimationstart' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwebkitanimationstart"]);
        }
        set onwebkitanimationstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwebkitanimationstart' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwebkitanimationstart' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onwebkitanimationstart"] = V;
        }
        get onwebkittransitionend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwebkittransitionend' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwebkittransitionend"]);
        }
        set onwebkittransitionend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwebkittransitionend' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwebkittransitionend' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onwebkittransitionend"] = V;
        }
        get onwheel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onwheel' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onwheel"]);
        }
        set onwheel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onwheel' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onwheel' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onwheel"] = V;
        }
        get ontouchstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontouchstart' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontouchstart"]);
        }
        set ontouchstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontouchstart' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontouchstart' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ontouchstart"] = V;
        }
        get ontouchend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontouchend' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontouchend"]);
        }
        set ontouchend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontouchend' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontouchend' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ontouchend"] = V;
        }
        get ontouchmove() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontouchmove' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontouchmove"]);
        }
        set ontouchmove(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontouchmove' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontouchmove' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ontouchmove"] = V;
        }
        get ontouchcancel() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontouchcancel' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontouchcancel"]);
        }
        set ontouchcancel(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontouchcancel' called on an object that is not a valid instance of SVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontouchcancel' property on 'SVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ontouchcancel"] = V;
        }
        get dataset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get dataset' called on an object that is not a valid instance of SVGElement."
            );
          }
          return utils2.getSameObject(this, "dataset", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["dataset"]);
          });
        }
        get nonce() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get nonce' called on an object that is not a valid instance of SVGElement.");
          }
          const value2 = esValue[implSymbol]._reflectGetTheContentAttribute("nonce");
          return value2 === null ? "" : value2;
        }
        set nonce(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set nonce' called on an object that is not a valid instance of SVGElement.");
          }
          V = conversions["DOMString"](V, {
            context: "Failed to set the 'nonce' property on 'SVGElement': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]._reflectSetTheContentAttribute("nonce", V);
        }
        get tabIndex() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get tabIndex' called on an object that is not a valid instance of SVGElement."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol]["tabIndex"];
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        set tabIndex(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set tabIndex' called on an object that is not a valid instance of SVGElement."
            );
          }
          V = conversions["long"](V, {
            context: "Failed to set the 'tabIndex' property on 'SVGElement': The provided value",
            globals: globalObject
          });
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            esValue[implSymbol]["tabIndex"] = V;
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(SVGElement.prototype, {
        focus: { enumerable: true },
        blur: { enumerable: true },
        className: { enumerable: true },
        ownerSVGElement: { enumerable: true },
        viewportElement: { enumerable: true },
        style: { enumerable: true },
        onabort: { enumerable: true },
        onauxclick: { enumerable: true },
        onbeforeinput: { enumerable: true },
        onbeforematch: { enumerable: true },
        onbeforetoggle: { enumerable: true },
        onblur: { enumerable: true },
        oncancel: { enumerable: true },
        oncanplay: { enumerable: true },
        oncanplaythrough: { enumerable: true },
        onchange: { enumerable: true },
        onclick: { enumerable: true },
        onclose: { enumerable: true },
        oncontextlost: { enumerable: true },
        oncontextmenu: { enumerable: true },
        oncontextrestored: { enumerable: true },
        oncopy: { enumerable: true },
        oncuechange: { enumerable: true },
        oncut: { enumerable: true },
        ondblclick: { enumerable: true },
        ondrag: { enumerable: true },
        ondragend: { enumerable: true },
        ondragenter: { enumerable: true },
        ondragleave: { enumerable: true },
        ondragover: { enumerable: true },
        ondragstart: { enumerable: true },
        ondrop: { enumerable: true },
        ondurationchange: { enumerable: true },
        onemptied: { enumerable: true },
        onended: { enumerable: true },
        onerror: { enumerable: true },
        onfocus: { enumerable: true },
        onformdata: { enumerable: true },
        oninput: { enumerable: true },
        oninvalid: { enumerable: true },
        onkeydown: { enumerable: true },
        onkeypress: { enumerable: true },
        onkeyup: { enumerable: true },
        onload: { enumerable: true },
        onloadeddata: { enumerable: true },
        onloadedmetadata: { enumerable: true },
        onloadstart: { enumerable: true },
        onmousedown: { enumerable: true },
        onmouseenter: { enumerable: true },
        onmouseleave: { enumerable: true },
        onmousemove: { enumerable: true },
        onmouseout: { enumerable: true },
        onmouseover: { enumerable: true },
        onmouseup: { enumerable: true },
        onpaste: { enumerable: true },
        onpause: { enumerable: true },
        onplay: { enumerable: true },
        onplaying: { enumerable: true },
        onprogress: { enumerable: true },
        onratechange: { enumerable: true },
        onreset: { enumerable: true },
        onresize: { enumerable: true },
        onscroll: { enumerable: true },
        onscrollend: { enumerable: true },
        onsecuritypolicyviolation: { enumerable: true },
        onseeked: { enumerable: true },
        onseeking: { enumerable: true },
        onselect: { enumerable: true },
        onslotchange: { enumerable: true },
        onstalled: { enumerable: true },
        onsubmit: { enumerable: true },
        onsuspend: { enumerable: true },
        ontimeupdate: { enumerable: true },
        ontoggle: { enumerable: true },
        onvolumechange: { enumerable: true },
        onwaiting: { enumerable: true },
        onwebkitanimationend: { enumerable: true },
        onwebkitanimationiteration: { enumerable: true },
        onwebkitanimationstart: { enumerable: true },
        onwebkittransitionend: { enumerable: true },
        onwheel: { enumerable: true },
        ontouchstart: { enumerable: true },
        ontouchend: { enumerable: true },
        ontouchmove: { enumerable: true },
        ontouchcancel: { enumerable: true },
        dataset: { enumerable: true },
        nonce: { enumerable: true },
        tabIndex: { enumerable: true },
        [Symbol.toStringTag]: { value: "SVGElement", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGElement
      });
    };
    var Impl = require_SVGElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/svg/basic-types.js
var require_basic_types = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/svg/basic-types.js"(exports) {
    "use strict";
    function detach(value2) {
      if (typeof value2 === "string") {
        return;
      }
      throw new TypeError(`jsdom internal error: detaching object of wrong type ${value2}`);
    }
    exports.detach = detach;
    function attach(value2, listObject) {
      if (typeof value2 === "string") {
        return;
      }
      throw new TypeError(`jsdom internal error: attaching object of wrong type ${value2}`);
    }
    exports.attach = attach;
    function reserializeSpaceSeparatedTokens(elements) {
      return elements.join(" ");
    }
    exports.reserializeSpaceSeparatedTokens = reserializeSpaceSeparatedTokens;
    function reserializeCommaSeparatedTokens(elements) {
      return elements.join(", ");
    }
    exports.reserializeCommaSeparatedTokens = reserializeCommaSeparatedTokens;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGListBase.js
var require_SVGListBase = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGListBase.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var idlUtils = require_utils16();
    var { attach, detach } = require_basic_types();
    var List2 = class {
      _initList({
        element,
        attribute,
        readOnly = false
      }) {
        this._element = element;
        this._attribute = attribute;
        this._attributeRegistryEntry = element.constructor.attributeRegistry.get(attribute);
        this._readOnly = readOnly;
        this._list = [];
        this._version = -1;
      }
      get _needsResync() {
        return this._version < this._element._version;
      }
      _synchronize() {
        if (!this._needsResync) {
          return;
        }
        let value2 = [];
        if (this._element.hasAttributeNS(null, this._attribute)) {
          value2 = this._attributeRegistryEntry.getValue(this._element.getAttributeNS(null, this._attribute));
        }
        if (value2.length === 0 && this._attributeRegistryEntry.initialValue !== void 0) {
          value2 = this._attributeRegistryEntry.getValue(this._attributeRegistryEntry.initialValue);
        }
        this._list = value2;
        this._version = this._element._version;
      }
      _reserialize() {
        const elements = this._list;
        this._element.setAttributeNS(null, this._attribute, this._attributeRegistryEntry.serialize(elements));
        this._version = this._element._version;
      }
      [idlUtils.supportsPropertyIndex](index2) {
        this._synchronize();
        return index2 >= 0 && index2 < this.length;
      }
      get [idlUtils.supportedPropertyIndices]() {
        this._synchronize();
        return this._list.keys();
      }
      get length() {
        this._synchronize();
        return this._list.length;
      }
      get numberOfItems() {
        this._synchronize();
        return this._list.length;
      }
      clear() {
        this._synchronize();
        if (this._readOnly) {
          throw DOMException2.create(this._globalObject, [
            "Attempting to modify a read-only list",
            "NoModificationAllowedError"
          ]);
        }
        for (const item of this._list) {
          detach(item);
        }
        this._list.length = 0;
        this._reserialize();
      }
      initialize(newItem) {
        this._synchronize();
        if (this._readOnly) {
          throw DOMException2.create(this._globalObject, [
            "Attempting to modify a read-only list",
            "NoModificationAllowedError"
          ]);
        }
        for (const item of this._list) {
          detach(item);
        }
        this._list.length = 0;
        attach(newItem, this);
        this._list.push(newItem);
        this._reserialize();
      }
      getItem(index2) {
        this._synchronize();
        if (index2 >= this._list.length) {
          throw DOMException2.create(this._globalObject, [
            `The index provided (${index2}) is greater than or equal to the maximum bound (${this._list.length}).`,
            "IndexSizeError"
          ]);
        }
        return this._list[index2];
      }
      insertItemBefore(newItem, index2) {
        this._synchronize();
        if (this._readOnly) {
          throw DOMException2.create(this._globalObject, [
            "Attempting to modify a read-only list",
            "NoModificationAllowedError"
          ]);
        }
        if (index2 > this._list.length) {
          index2 = this._list.length;
        }
        this._list.splice(index2, 0, newItem);
        attach(newItem, this);
        this._reserialize();
        return newItem;
      }
      replaceItem(newItem, index2) {
        this._synchronize();
        if (this._readOnly) {
          throw DOMException2.create(this._globalObject, [
            "Attempting to modify a read-only list",
            "NoModificationAllowedError"
          ]);
        }
        if (index2 >= this._list.length) {
          throw DOMException2.create(this._globalObject, [
            `The index provided (${index2}) is greater than or equal to the maximum bound (${this._list.length}).`,
            "IndexSizeError"
          ]);
        }
        detach(this._list[index2]);
        this._list[index2] = newItem;
        attach(newItem, this);
        this._reserialize();
        return newItem;
      }
      removeItem(index2) {
        this._synchronize();
        if (this._readOnly) {
          throw DOMException2.create(this._globalObject, [
            "Attempting to modify a read-only list",
            "NoModificationAllowedError"
          ]);
        }
        if (index2 >= this._list.length) {
          throw DOMException2.create(this._globalObject, [
            `The index provided (${index2}) is greater than or equal to the maximum bound (${this._list.length}).`,
            "IndexSizeError"
          ]);
        }
        const item = this._list[index2];
        detach(item);
        this._list.splice(index2, 1);
        this._reserialize();
        return item;
      }
      appendItem(newItem) {
        this._synchronize();
        this._list.push(newItem);
        attach(newItem, this);
        this._reserialize();
        return newItem;
      }
      [idlUtils.indexedSetNew](index2, value2) {
        this.replaceItem(value2, index2);
      }
      [idlUtils.indexedSetExisting](index2, value2) {
        this.replaceItem(value2, index2);
      }
    };
    module.exports = List2;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGStringList-impl.js
var require_SVGStringList_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGStringList-impl.js"(exports) {
    "use strict";
    var { mixin: mixin2 } = require_utils17();
    var SVGListBase = require_SVGListBase();
    var SVGStringListImpl = class {
      constructor(globalObject, args, privateData) {
        this._globalObject = globalObject;
        this._initList(privateData);
      }
    };
    mixin2(SVGStringListImpl.prototype, SVGListBase.prototype);
    exports.implementation = SVGStringListImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGStringList.js
var require_SVGStringList = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGStringList.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "SVGStringList";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGStringList'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGStringList"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGStringList {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        clear() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'clear' called on an object that is not a valid instance of SVGStringList.");
          }
          return esValue[implSymbol].clear();
        }
        initialize(newItem) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'initialize' called on an object that is not a valid instance of SVGStringList."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'initialize' on 'SVGStringList': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'initialize' on 'SVGStringList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].initialize(...args);
        }
        getItem(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getItem' called on an object that is not a valid instance of SVGStringList."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getItem' on 'SVGStringList': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'getItem' on 'SVGStringList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].getItem(...args);
        }
        insertItemBefore(newItem, index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'insertItemBefore' called on an object that is not a valid instance of SVGStringList."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'insertItemBefore' on 'SVGStringList': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'insertItemBefore' on 'SVGStringList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'insertItemBefore' on 'SVGStringList': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].insertItemBefore(...args);
        }
        replaceItem(newItem, index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'replaceItem' called on an object that is not a valid instance of SVGStringList."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'replaceItem' on 'SVGStringList': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'replaceItem' on 'SVGStringList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'replaceItem' on 'SVGStringList': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].replaceItem(...args);
        }
        removeItem(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'removeItem' called on an object that is not a valid instance of SVGStringList."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'removeItem' on 'SVGStringList': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'removeItem' on 'SVGStringList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].removeItem(...args);
        }
        appendItem(newItem) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'appendItem' called on an object that is not a valid instance of SVGStringList."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'appendItem' on 'SVGStringList': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'appendItem' on 'SVGStringList': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].appendItem(...args);
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get length' called on an object that is not a valid instance of SVGStringList."
            );
          }
          return esValue[implSymbol]["length"];
        }
        get numberOfItems() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get numberOfItems' called on an object that is not a valid instance of SVGStringList."
            );
          }
          return esValue[implSymbol]["numberOfItems"];
        }
      }
      Object.defineProperties(SVGStringList.prototype, {
        clear: { enumerable: true },
        initialize: { enumerable: true },
        getItem: { enumerable: true },
        insertItemBefore: { enumerable: true },
        replaceItem: { enumerable: true },
        removeItem: { enumerable: true },
        appendItem: { enumerable: true },
        length: { enumerable: true },
        numberOfItems: { enumerable: true },
        [Symbol.toStringTag]: { value: "SVGStringList", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = SVGStringList;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGStringList
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          if (target[implSymbol][utils2.supportsPropertyIndex](index2)) {
            const indexedValue = target[implSymbol].getItem(index2);
            return {
              writable: true,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
          if (utils2.isArrayIndexPropName(P)) {
            const index2 = P >>> 0;
            let indexedValue = V;
            indexedValue = conversions["DOMString"](indexedValue, {
              context: "Failed to set the " + index2 + " property on 'SVGStringList': The provided value",
              globals: globalObject
            });
            const creating = !target[implSymbol][utils2.supportsPropertyIndex](index2);
            if (creating) {
              target[implSymbol][utils2.indexedSetNew](index2, indexedValue);
            } else {
              target[implSymbol][utils2.indexedSetExisting](index2, indexedValue);
            }
            return true;
          }
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          if (target[implSymbol][utils2.supportsPropertyIndex](index2)) {
            const indexedValue = target[implSymbol].getItem(index2);
            ownDesc = {
              writable: true,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          if (desc.get || desc.set) {
            return false;
          }
          const index2 = P >>> 0;
          let indexedValue = desc.value;
          indexedValue = conversions["DOMString"](indexedValue, {
            context: "Failed to set the " + index2 + " property on 'SVGStringList': The provided value",
            globals: globalObject
          });
          const creating = !target[implSymbol][utils2.supportsPropertyIndex](index2);
          if (creating) {
            target[implSymbol][utils2.indexedSetNew](index2, indexedValue);
          } else {
            target[implSymbol][utils2.indexedSetExisting](index2, indexedValue);
          }
          return true;
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !target[implSymbol][utils2.supportsPropertyIndex](index2);
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_SVGStringList_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGTests-impl.js
var require_SVGTests_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGTests-impl.js"(exports) {
    "use strict";
    var { splitOnASCIIWhitespace, splitOnCommas } = require_strings2();
    var { reserializeCommaSeparatedTokens, reserializeSpaceSeparatedTokens } = require_basic_types();
    var SVGStringList = require_SVGStringList();
    var SVGTestsImpl = class {
      get requiredExtensions() {
        return SVGStringList.createImpl(this._globalObject, [], {
          element: this,
          attribute: "requiredExtensions"
        });
      }
      get systemLanguage() {
        return SVGStringList.createImpl(this._globalObject, [], {
          element: this,
          attribute: "systemLanguage"
        });
      }
    };
    SVGTestsImpl.attributeRegistry = /* @__PURE__ */ new Map([
      // https://svgwg.org/svg2-draft/struct.html#RequiredExtensionsAttribute
      [
        "requiredExtensions",
        {
          getValue: splitOnASCIIWhitespace,
          serialize: reserializeSpaceSeparatedTokens,
          initialValue: void 0
        }
      ],
      // https://svgwg.org/svg2-draft/struct.html#SystemLanguageAttribute
      [
        "systemLanguage",
        {
          getValue: splitOnCommas,
          serialize: reserializeCommaSeparatedTokens,
          initialValue: void 0
        }
      ]
    ]);
    exports.implementation = SVGTestsImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGGraphicsElement-impl.js
var require_SVGGraphicsElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGGraphicsElement-impl.js"(exports) {
    "use strict";
    var { mixin: mixin2 } = require_utils17();
    var SVGElementImpl = require_SVGElement_impl().implementation;
    var SVGTestsImpl = require_SVGTests_impl().implementation;
    var SVGGraphicsElementImpl = class extends SVGElementImpl {
    };
    SVGGraphicsElementImpl.attributeRegistry = new Map([
      ...SVGElementImpl.attributeRegistry,
      ...SVGTestsImpl.attributeRegistry
    ]);
    mixin2(SVGGraphicsElementImpl.prototype, SVGTestsImpl.prototype);
    exports.implementation = SVGGraphicsElementImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGGraphicsElement.js
var require_SVGGraphicsElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGGraphicsElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var SVGElement = require_SVGElement();
    var interfaceName = "SVGGraphicsElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGGraphicsElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGGraphicsElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      SVGElement._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGGraphicsElement extends globalObject.SVGElement {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get requiredExtensions() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get requiredExtensions' called on an object that is not a valid instance of SVGGraphicsElement."
            );
          }
          return utils2.getSameObject(this, "requiredExtensions", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["requiredExtensions"]);
          });
        }
        get systemLanguage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get systemLanguage' called on an object that is not a valid instance of SVGGraphicsElement."
            );
          }
          return utils2.getSameObject(this, "systemLanguage", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["systemLanguage"]);
          });
        }
      }
      Object.defineProperties(SVGGraphicsElement.prototype, {
        requiredExtensions: { enumerable: true },
        systemLanguage: { enumerable: true },
        [Symbol.toStringTag]: { value: "SVGGraphicsElement", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGGraphicsElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGGraphicsElement
      });
    };
    var Impl = require_SVGGraphicsElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGRect-impl.js
var require_SVGRect_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGRect-impl.js"(exports) {
    "use strict";
    var DOMException2 = require_DOMException();
    var SVGRectImplRecord = class {
      constructor() {
        this.x = 0;
        this.y = 0;
        this.width = 0;
        this.height = 0;
      }
    };
    var SVGRectImplReflection = class {
      constructor(privateData) {
        this._reflectedElement = privateData.reflectedElement;
        this._reflectedAttribute = privateData.reflectedAttribute;
        this._parser = privateData.parser;
      }
      // https://svgwg.org/svg2-draft/types.html#TermReserialize
      _reserialize({ x, y: y3, width, height: height2 }) {
        this._reflectedElement.setAttributeNS(null, this._reflectedAttribute, `${x} ${y3} ${width} ${height2}`);
      }
      get x() {
        const attr = this._reflectedElement.getAttributeNS(null, this._reflectedAttribute);
        return this._parser(attr).x;
      }
      set x(newX) {
        const { y: y3, width, height: height2 } = this;
        this._reserialize({
          x: newX,
          y: y3,
          width,
          height: height2
        });
      }
      get y() {
        const attr = this._reflectedElement.getAttributeNS(null, this._reflectedAttribute);
        return this._parser(attr).y;
      }
      set y(newY) {
        const { x, width, height: height2 } = this;
        this._reserialize({
          x,
          y: newY,
          width,
          height: height2
        });
      }
      get width() {
        const attr = this._reflectedElement.getAttributeNS(null, this._reflectedAttribute);
        return this._parser(attr).width;
      }
      set width(newWidth) {
        const { x, y: y3, height: height2 } = this;
        this._reserialize({
          x,
          y: y3,
          width: newWidth,
          height: height2
        });
      }
      get height() {
        const attr = this._reflectedElement.getAttributeNS(null, this._reflectedAttribute);
        return this._parser(attr).height;
      }
      set height(newHeight) {
        const { x, y: y3, width } = this;
        this._reserialize({
          x,
          y: y3,
          width,
          height: newHeight
        });
      }
    };
    var SVGRectImpl = class {
      constructor(globalObject, args, { readOnly = false, ...privateData } = {}) {
        this._globalObject = globalObject;
        this._readOnly = readOnly;
        if (privateData.reflectedElement) {
          this._impl = new SVGRectImplReflection(privateData);
        } else {
          this._impl = new SVGRectImplRecord();
        }
      }
      get x() {
        return this._impl.x;
      }
      set x(newX) {
        if (this._readOnly) {
          throw DOMException2.create(this._globalObject, ["This SVGRect is read-only", "NO_MODIFICATION_ALLOWED_ERR"]);
        }
        this._impl.x = newX;
      }
      get y() {
        return this._impl.y;
      }
      set y(newY) {
        if (this._readOnly) {
          throw DOMException2.create(this._globalObject, ["This SVGRect is read-only", "NO_MODIFICATION_ALLOWED_ERR"]);
        }
        this._impl.y = newY;
      }
      get width() {
        return this._impl.width;
      }
      set width(newWidth) {
        if (this._readOnly) {
          throw DOMException2.create(this._globalObject, ["This SVGRect is read-only", "NO_MODIFICATION_ALLOWED_ERR"]);
        }
        this._impl.width = newWidth;
      }
      get height() {
        return this._impl.height;
      }
      set height(newHeight) {
        if (this._readOnly) {
          throw DOMException2.create(this._globalObject, ["This SVGRect is read-only", "NO_MODIFICATION_ALLOWED_ERR"]);
        }
        this._impl.height = newHeight;
      }
    };
    exports.implementation = SVGRectImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGRect.js
var require_SVGRect = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGRect.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "SVGRect";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGRect'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGRect"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGRect {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get x() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get x' called on an object that is not a valid instance of SVGRect.");
          }
          return esValue[implSymbol]["x"];
        }
        set x(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set x' called on an object that is not a valid instance of SVGRect.");
          }
          V = conversions["float"](V, {
            context: "Failed to set the 'x' property on 'SVGRect': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["x"] = V;
        }
        get y() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get y' called on an object that is not a valid instance of SVGRect.");
          }
          return esValue[implSymbol]["y"];
        }
        set y(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set y' called on an object that is not a valid instance of SVGRect.");
          }
          V = conversions["float"](V, {
            context: "Failed to set the 'y' property on 'SVGRect': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["y"] = V;
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get width' called on an object that is not a valid instance of SVGRect.");
          }
          return esValue[implSymbol]["width"];
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set width' called on an object that is not a valid instance of SVGRect.");
          }
          V = conversions["float"](V, {
            context: "Failed to set the 'width' property on 'SVGRect': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["width"] = V;
        }
        get height() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get height' called on an object that is not a valid instance of SVGRect.");
          }
          return esValue[implSymbol]["height"];
        }
        set height(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set height' called on an object that is not a valid instance of SVGRect.");
          }
          V = conversions["float"](V, {
            context: "Failed to set the 'height' property on 'SVGRect': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["height"] = V;
        }
      }
      Object.defineProperties(SVGRect.prototype, {
        x: { enumerable: true },
        y: { enumerable: true },
        width: { enumerable: true },
        height: { enumerable: true },
        [Symbol.toStringTag]: { value: "SVGRect", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGRect;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGRect
      });
    };
    var Impl = require_SVGRect_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedRect-impl.js
var require_SVGAnimatedRect_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedRect-impl.js"(exports) {
    "use strict";
    var SVGRect = require_SVGRect();
    var numberRe = /^[+-]?(?:\d*\.)?\d+(?:[eE][+-]?\d+)?/;
    function parseViewBox(str) {
      do {
        let skipSpace = function() {
          while (i5 < str.length && str[i5] === " ") {
            i5 += 1;
          }
        }, matchNumber2 = function() {
          const numMatch = numberRe.exec(str.slice(i5));
          if (!numMatch) {
            return void 0;
          }
          i5 += numMatch[0].length;
          return numMatch[0];
        }, skipDelimiter = function() {
          const start2 = i5;
          skipSpace();
          if (i5 < str.length && str[i5] === ",") {
            i5 += 1;
          }
          skipSpace();
          return i5 > start2;
        };
        if (typeof str !== "string") {
          break;
        }
        let i5 = 0;
        skipSpace();
        const xStr = matchNumber2();
        if (!xStr) {
          break;
        }
        if (!skipDelimiter()) {
          break;
        }
        const yStr = matchNumber2();
        if (!yStr) {
          break;
        }
        if (!skipDelimiter()) {
          break;
        }
        const widthStr = matchNumber2();
        if (!widthStr) {
          break;
        }
        if (!skipDelimiter()) {
          break;
        }
        const heightStr = matchNumber2();
        if (!heightStr) {
          break;
        }
        skipSpace();
        if (i5 < str.length) {
          break;
        }
        const width = Number(widthStr);
        if (width < 0) {
          break;
        }
        const height2 = Number(heightStr);
        if (height2 < 0) {
          break;
        }
        return {
          x: Number(xStr),
          y: Number(yStr),
          width,
          height: height2
        };
      } while (false);
      return { x: 0, y: 0, width: 0, height: 0 };
    }
    var SVGAnimatedRectImpl = class {
      constructor(globalObject, args, privateData) {
        this._globalObject = globalObject;
        this._element = privateData.element;
        this._attribute = privateData.attribute;
      }
      get baseVal() {
        return SVGRect.createImpl(this._globalObject, [], {
          reflectedElement: this._element,
          reflectedAttribute: this._attribute,
          parser: parseViewBox
        });
      }
      get animVal() {
        return SVGRect.createImpl(this._globalObject, [], {
          reflectedElement: this._element,
          reflectedAttribute: this._attribute,
          parser: parseViewBox,
          readOnly: true
        });
      }
    };
    exports.implementation = SVGAnimatedRectImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedRect.js
var require_SVGAnimatedRect = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedRect.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "SVGAnimatedRect";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGAnimatedRect'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGAnimatedRect"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGAnimatedRect {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get baseVal() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get baseVal' called on an object that is not a valid instance of SVGAnimatedRect."
            );
          }
          return utils2.getSameObject(this, "baseVal", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["baseVal"]);
          });
        }
        get animVal() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get animVal' called on an object that is not a valid instance of SVGAnimatedRect."
            );
          }
          return utils2.getSameObject(this, "animVal", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["animVal"]);
          });
        }
      }
      Object.defineProperties(SVGAnimatedRect.prototype, {
        baseVal: { enumerable: true },
        animVal: { enumerable: true },
        [Symbol.toStringTag]: { value: "SVGAnimatedRect", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGAnimatedRect;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGAnimatedRect
      });
    };
    var Impl = require_SVGAnimatedRect_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGPreserveAspectRatio-impl.js
var require_SVGPreserveAspectRatio_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGPreserveAspectRatio-impl.js"(exports) {
    "use strict";
    var DOMException2 = require_DOMException();
    var alignmentStringsByIndex = [
      "unknown",
      "none",
      "xMinYMin",
      "xMidYMin",
      "xMaxYMin",
      "xMinYMid",
      "xMidYMid",
      "xMaxYMid",
      "xMinYMax",
      "xMidYMax",
      "xMaxYMax"
    ];
    var alignmentIndicesByString = {
      __proto__: null,
      unknown: 0,
      none: 1,
      xMinYMin: 2,
      xMidYMin: 3,
      xMaxYMin: 4,
      xMinYMid: 5,
      xMidYMid: 6,
      xMaxYMid: 7,
      xMinYMax: 8,
      xMidYMax: 9,
      xMaxYMax: 10
    };
    var meetOrSliceStringsByIndex = ["unknown", "meet", "slice"];
    var meetOrSliceIndicesByString = {
      __proto__: null,
      unknown: 0,
      meet: 1,
      slice: 2
    };
    var preserveAspectRatioRegExp = /^(none|x(?:Min|Mid|Max)Y(?:Min|Mid|Max))(?: +(meet|slice))?$/;
    var SVGPreserveAspectRatioImpl = class {
      constructor(globalObject, args, privateData) {
        this._globalObject = globalObject;
        this._element = privateData.element;
        this._readOnly = Boolean(privateData.readOnly);
      }
      _parse() {
        const attrValue = this._element.getAttributeNS(null, "preserveAspectRatio");
        if (attrValue) {
          const value2 = preserveAspectRatioRegExp.exec(attrValue);
          if (value2) {
            return {
              align: value2[1],
              meetOrSlice: value2[2] || "meet"
            };
          }
        }
        return {
          align: "xMidYMid",
          meetOrSlice: "meet"
        };
      }
      get align() {
        const { align } = this._parse();
        return alignmentIndicesByString[align];
      }
      set align(value2) {
        if (this._readOnly) {
          throw DOMException2.create(this._globalObject, [
            "Attempting to modify a read-only SVGPreserveAspectRatio",
            "NoModificationAllowedError"
          ]);
        }
        const string = alignmentStringsByIndex[value2];
        if (string === "unknown" || string === void 0) {
          throw new TypeError("Invalid alignment");
        }
        this._element.setAttributeNS(null, "preserveAspectRatio", `${string} ${this._parse().meetOrSlice}`);
      }
      get meetOrSlice() {
        const { meetOrSlice } = this._parse();
        return meetOrSliceIndicesByString[meetOrSlice];
      }
      set meetOrSlice(value2) {
        if (this._readOnly) {
          throw DOMException2.create(this._globalObject, [
            "Attempting to modify a read-only SVGPreserveAspectRatio",
            "NoModificationAllowedError"
          ]);
        }
        const string = meetOrSliceStringsByIndex[value2];
        if (string === "unknown" || string === void 0) {
          throw new TypeError("Invalid meet-or-slice value");
        }
        this._element.setAttributeNS(null, "preserveAspectRatio", `${this._parse().align} ${string}`);
      }
    };
    exports.implementation = SVGPreserveAspectRatioImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGPreserveAspectRatio.js
var require_SVGPreserveAspectRatio = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGPreserveAspectRatio.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "SVGPreserveAspectRatio";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGPreserveAspectRatio'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGPreserveAspectRatio"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGPreserveAspectRatio {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get align() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get align' called on an object that is not a valid instance of SVGPreserveAspectRatio."
            );
          }
          return esValue[implSymbol]["align"];
        }
        set align(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set align' called on an object that is not a valid instance of SVGPreserveAspectRatio."
            );
          }
          V = conversions["unsigned short"](V, {
            context: "Failed to set the 'align' property on 'SVGPreserveAspectRatio': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["align"] = V;
        }
        get meetOrSlice() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get meetOrSlice' called on an object that is not a valid instance of SVGPreserveAspectRatio."
            );
          }
          return esValue[implSymbol]["meetOrSlice"];
        }
        set meetOrSlice(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set meetOrSlice' called on an object that is not a valid instance of SVGPreserveAspectRatio."
            );
          }
          V = conversions["unsigned short"](V, {
            context: "Failed to set the 'meetOrSlice' property on 'SVGPreserveAspectRatio': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["meetOrSlice"] = V;
        }
      }
      Object.defineProperties(SVGPreserveAspectRatio.prototype, {
        align: { enumerable: true },
        meetOrSlice: { enumerable: true },
        [Symbol.toStringTag]: { value: "SVGPreserveAspectRatio", configurable: true },
        SVG_PRESERVEASPECTRATIO_UNKNOWN: { value: 0, enumerable: true },
        SVG_PRESERVEASPECTRATIO_NONE: { value: 1, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMINYMIN: { value: 2, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMIDYMIN: { value: 3, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMAXYMIN: { value: 4, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMINYMID: { value: 5, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMIDYMID: { value: 6, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMAXYMID: { value: 7, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMINYMAX: { value: 8, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMIDYMAX: { value: 9, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMAXYMAX: { value: 10, enumerable: true },
        SVG_MEETORSLICE_UNKNOWN: { value: 0, enumerable: true },
        SVG_MEETORSLICE_MEET: { value: 1, enumerable: true },
        SVG_MEETORSLICE_SLICE: { value: 2, enumerable: true }
      });
      Object.defineProperties(SVGPreserveAspectRatio, {
        SVG_PRESERVEASPECTRATIO_UNKNOWN: { value: 0, enumerable: true },
        SVG_PRESERVEASPECTRATIO_NONE: { value: 1, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMINYMIN: { value: 2, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMIDYMIN: { value: 3, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMAXYMIN: { value: 4, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMINYMID: { value: 5, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMIDYMID: { value: 6, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMAXYMID: { value: 7, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMINYMAX: { value: 8, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMIDYMAX: { value: 9, enumerable: true },
        SVG_PRESERVEASPECTRATIO_XMAXYMAX: { value: 10, enumerable: true },
        SVG_MEETORSLICE_UNKNOWN: { value: 0, enumerable: true },
        SVG_MEETORSLICE_MEET: { value: 1, enumerable: true },
        SVG_MEETORSLICE_SLICE: { value: 2, enumerable: true }
      });
      ctorRegistry[interfaceName] = SVGPreserveAspectRatio;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGPreserveAspectRatio
      });
    };
    var Impl = require_SVGPreserveAspectRatio_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedPreserveAspectRatio-impl.js
var require_SVGAnimatedPreserveAspectRatio_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedPreserveAspectRatio-impl.js"(exports) {
    "use strict";
    var SVGPreserveAspectRatio = require_SVGPreserveAspectRatio();
    var SVGAnimatedPreserveAspectRatioImpl = class {
      constructor(globalObject, args, privateData) {
        this._globalObject = globalObject;
        this._element = privateData.element;
      }
      get baseVal() {
        return SVGPreserveAspectRatio.createImpl(this._globalObject, [], {
          element: this._element
        });
      }
      get animVal() {
        return SVGPreserveAspectRatio.createImpl(this._globalObject, [], {
          element: this._element
        });
      }
    };
    exports.implementation = SVGAnimatedPreserveAspectRatioImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedPreserveAspectRatio.js
var require_SVGAnimatedPreserveAspectRatio = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedPreserveAspectRatio.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "SVGAnimatedPreserveAspectRatio";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGAnimatedPreserveAspectRatio'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGAnimatedPreserveAspectRatio"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGAnimatedPreserveAspectRatio {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get baseVal() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get baseVal' called on an object that is not a valid instance of SVGAnimatedPreserveAspectRatio."
            );
          }
          return utils2.getSameObject(this, "baseVal", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["baseVal"]);
          });
        }
        get animVal() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get animVal' called on an object that is not a valid instance of SVGAnimatedPreserveAspectRatio."
            );
          }
          return utils2.getSameObject(this, "animVal", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["animVal"]);
          });
        }
      }
      Object.defineProperties(SVGAnimatedPreserveAspectRatio.prototype, {
        baseVal: { enumerable: true },
        animVal: { enumerable: true },
        [Symbol.toStringTag]: { value: "SVGAnimatedPreserveAspectRatio", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGAnimatedPreserveAspectRatio;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGAnimatedPreserveAspectRatio
      });
    };
    var Impl = require_SVGAnimatedPreserveAspectRatio_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGNumber-impl.js
var require_SVGNumber_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/svg/SVGNumber-impl.js"(exports) {
    "use strict";
    var DOMException2 = require_DOMException();
    var SVGNumberImpl = class {
      constructor(globalObject, args, privateData) {
        this._parentList = privateData.parentList;
        this._value = 0;
      }
      get _readOnly() {
        if (this._parentList !== void 0) {
          return this._parentList._readOnly;
        }
        return false;
      }
      _synchronize() {
        if (this._parentList !== void 0) {
          this._parentList._synchronize();
        }
      }
      _reserialize() {
        if (this._parentList !== void 0) {
          this._parentList._reserialize();
        }
      }
      get value() {
        this._synchronize();
        return this._value;
      }
      set value(value2) {
        if (this._readOnly) {
          throw DOMException2.create(this._globalObject, [
            "Attempting to modify a read-only SVGNumber",
            "NoModificationAllowedError"
          ]);
        }
        this._value = value2;
        this._reserialize();
      }
    };
    exports.implementation = SVGNumberImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGNumber.js
var require_SVGNumber = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGNumber.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "SVGNumber";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGNumber'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGNumber"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGNumber {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get value() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get value' called on an object that is not a valid instance of SVGNumber.");
          }
          return esValue[implSymbol]["value"];
        }
        set value(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set value' called on an object that is not a valid instance of SVGNumber.");
          }
          V = conversions["float"](V, {
            context: "Failed to set the 'value' property on 'SVGNumber': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["value"] = V;
        }
      }
      Object.defineProperties(SVGNumber.prototype, {
        value: { enumerable: true },
        [Symbol.toStringTag]: { value: "SVGNumber", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGNumber;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGNumber
      });
    };
    var Impl = require_SVGNumber_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js
var require_SVGSVGElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js"(exports, module) {
    "use strict";
    var { mixin: mixin2 } = require_utils17();
    var SVGNumber = require_SVGNumber();
    var SVGRect = require_SVGRect();
    var SVGGraphicsElementImpl = require_SVGGraphicsElement_impl().implementation;
    var WindowEventHandlersImpl = require_WindowEventHandlers_impl().implementation;
    var { domSymbolTree } = require_internal_constants();
    var { ELEMENT_NODE } = require_node_type();
    var SVGSVGElementImpl = class extends SVGGraphicsElementImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._proxyWindowEventsToWindow();
      }
      createSVGNumber() {
        return SVGNumber.createImpl(this._globalObject, [], {});
      }
      createSVGRect() {
        return SVGRect.createImpl(this._globalObject, [], {});
      }
      getElementById(elementId) {
        for (const node of domSymbolTree.treeIterator(this)) {
          if (node.nodeType === ELEMENT_NODE && node.getAttributeNS(null, "id") === elementId) {
            return node;
          }
        }
        return null;
      }
      suspendRedraw() {
        return 1;
      }
      unsuspendRedraw() {
      }
      unsuspendRedrawAll() {
      }
      forceRedraw() {
      }
    };
    mixin2(SVGSVGElementImpl.prototype, WindowEventHandlersImpl.prototype);
    module.exports = {
      implementation: SVGSVGElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGSVGElement.js
var require_SVGSVGElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGSVGElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var create_SVGAnimatedRect = require_SVGAnimatedRect().create;
    var create_SVGAnimatedPreserveAspectRatio = require_SVGAnimatedPreserveAspectRatio().create;
    var EventHandlerNonNull = require_EventHandlerNonNull();
    var OnBeforeUnloadEventHandlerNonNull = require_OnBeforeUnloadEventHandlerNonNull();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var SVGGraphicsElement = require_SVGGraphicsElement();
    var interfaceName = "SVGSVGElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGSVGElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGSVGElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      SVGGraphicsElement._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGSVGElement extends globalObject.SVGGraphicsElement {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        createSVGNumber() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createSVGNumber' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createSVGNumber());
        }
        createSVGRect() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'createSVGRect' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].createSVGRect());
        }
        getElementById(elementId) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getElementById' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getElementById' on 'SVGSVGElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getElementById' on 'SVGSVGElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getElementById(...args));
        }
        suspendRedraw(maxWaitMilliseconds) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'suspendRedraw' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'suspendRedraw' on 'SVGSVGElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'suspendRedraw' on 'SVGSVGElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].suspendRedraw(...args);
        }
        unsuspendRedraw(suspendHandleID) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'unsuspendRedraw' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'unsuspendRedraw' on 'SVGSVGElement': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'unsuspendRedraw' on 'SVGSVGElement': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].unsuspendRedraw(...args);
        }
        unsuspendRedrawAll() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'unsuspendRedrawAll' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return esValue[implSymbol].unsuspendRedrawAll();
        }
        forceRedraw() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'forceRedraw' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return esValue[implSymbol].forceRedraw();
        }
        get viewBox() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get viewBox' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.getSameObject(this, "viewBox", () => {
            return create_SVGAnimatedRect(globalObject, [], {
              element: esValue[implSymbol],
              attribute: "viewBox"
            });
          });
        }
        get preserveAspectRatio() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get preserveAspectRatio' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.getSameObject(this, "preserveAspectRatio", () => {
            return create_SVGAnimatedPreserveAspectRatio(globalObject, [], {
              element: esValue[implSymbol]
            });
          });
        }
        get onafterprint() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onafterprint' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onafterprint"]);
        }
        set onafterprint(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onafterprint' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onafterprint' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onafterprint"] = V;
        }
        get onbeforeprint() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforeprint' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforeprint"]);
        }
        set onbeforeprint(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforeprint' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforeprint' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onbeforeprint"] = V;
        }
        get onbeforeunload() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onbeforeunload' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onbeforeunload"]);
        }
        set onbeforeunload(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onbeforeunload' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = OnBeforeUnloadEventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onbeforeunload' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onbeforeunload"] = V;
        }
        get onhashchange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onhashchange' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onhashchange"]);
        }
        set onhashchange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onhashchange' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onhashchange' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onhashchange"] = V;
        }
        get onlanguagechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onlanguagechange' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onlanguagechange"]);
        }
        set onlanguagechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onlanguagechange' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onlanguagechange' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onlanguagechange"] = V;
        }
        get onmessage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmessage' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmessage"]);
        }
        set onmessage(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmessage' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmessage' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onmessage"] = V;
        }
        get onmessageerror() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmessageerror' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmessageerror"]);
        }
        set onmessageerror(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmessageerror' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmessageerror' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onmessageerror"] = V;
        }
        get onoffline() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onoffline' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onoffline"]);
        }
        set onoffline(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onoffline' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onoffline' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onoffline"] = V;
        }
        get ononline() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ononline' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ononline"]);
        }
        set ononline(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ononline' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ononline' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["ononline"] = V;
        }
        get onpagehide() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onpagehide' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpagehide"]);
        }
        set onpagehide(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onpagehide' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpagehide' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onpagehide"] = V;
        }
        get onpageshow() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onpageshow' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpageshow"]);
        }
        set onpageshow(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onpageshow' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpageshow' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onpageshow"] = V;
        }
        get onpopstate() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onpopstate' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onpopstate"]);
        }
        set onpopstate(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onpopstate' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onpopstate' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onpopstate"] = V;
        }
        get onrejectionhandled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onrejectionhandled' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onrejectionhandled"]);
        }
        set onrejectionhandled(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onrejectionhandled' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onrejectionhandled' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onrejectionhandled"] = V;
        }
        get onstorage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onstorage' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onstorage"]);
        }
        set onstorage(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onstorage' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onstorage' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onstorage"] = V;
        }
        get onunhandledrejection() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onunhandledrejection' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onunhandledrejection"]);
        }
        set onunhandledrejection(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onunhandledrejection' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onunhandledrejection' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onunhandledrejection"] = V;
        }
        get onunload() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onunload' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onunload"]);
        }
        set onunload(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onunload' called on an object that is not a valid instance of SVGSVGElement."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onunload' property on 'SVGSVGElement': The provided value"
            });
          }
          esValue[implSymbol]["onunload"] = V;
        }
      }
      Object.defineProperties(SVGSVGElement.prototype, {
        createSVGNumber: { enumerable: true },
        createSVGRect: { enumerable: true },
        getElementById: { enumerable: true },
        suspendRedraw: { enumerable: true },
        unsuspendRedraw: { enumerable: true },
        unsuspendRedrawAll: { enumerable: true },
        forceRedraw: { enumerable: true },
        viewBox: { enumerable: true },
        preserveAspectRatio: { enumerable: true },
        onafterprint: { enumerable: true },
        onbeforeprint: { enumerable: true },
        onbeforeunload: { enumerable: true },
        onhashchange: { enumerable: true },
        onlanguagechange: { enumerable: true },
        onmessage: { enumerable: true },
        onmessageerror: { enumerable: true },
        onoffline: { enumerable: true },
        ononline: { enumerable: true },
        onpagehide: { enumerable: true },
        onpageshow: { enumerable: true },
        onpopstate: { enumerable: true },
        onrejectionhandled: { enumerable: true },
        onstorage: { enumerable: true },
        onunhandledrejection: { enumerable: true },
        onunload: { enumerable: true },
        [Symbol.toStringTag]: { value: "SVGSVGElement", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGSVGElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGSVGElement
      });
    };
    var Impl = require_SVGSVGElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGGElement-impl.js
var require_SVGGElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGGElement-impl.js"(exports, module) {
    "use strict";
    var SVGGraphicsElementImpl = require_SVGGraphicsElement_impl().implementation;
    var SVGGElementImpl = class extends SVGGraphicsElementImpl {
    };
    module.exports = {
      implementation: SVGGElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGGElement.js
var require_SVGGElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGGElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var SVGGraphicsElement = require_SVGGraphicsElement();
    var interfaceName = "SVGGElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGGElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGGElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      SVGGraphicsElement._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGGElement extends globalObject.SVGGraphicsElement {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
      }
      Object.defineProperties(SVGGElement.prototype, {
        [Symbol.toStringTag]: { value: "SVGGElement", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGGElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGGElement
      });
    };
    var Impl = require_SVGGElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGDefsElement-impl.js
var require_SVGDefsElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGDefsElement-impl.js"(exports, module) {
    "use strict";
    var SVGGraphicsElementImpl = require_SVGGraphicsElement_impl().implementation;
    var SVGDefsElementImpl = class extends SVGGraphicsElementImpl {
    };
    module.exports = {
      implementation: SVGDefsElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGDefsElement.js
var require_SVGDefsElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGDefsElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var SVGGraphicsElement = require_SVGGraphicsElement();
    var interfaceName = "SVGDefsElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGDefsElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGDefsElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      SVGGraphicsElement._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGDefsElement extends globalObject.SVGGraphicsElement {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
      }
      Object.defineProperties(SVGDefsElement.prototype, {
        [Symbol.toStringTag]: { value: "SVGDefsElement", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGDefsElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGDefsElement
      });
    };
    var Impl = require_SVGDefsElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGDescElement-impl.js
var require_SVGDescElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGDescElement-impl.js"(exports, module) {
    "use strict";
    var SVGElementImpl = require_SVGElement_impl().implementation;
    var SVGDescElementImpl = class extends SVGElementImpl {
    };
    module.exports = {
      implementation: SVGDescElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGDescElement.js
var require_SVGDescElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGDescElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var SVGElement = require_SVGElement();
    var interfaceName = "SVGDescElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGDescElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGDescElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      SVGElement._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGDescElement extends globalObject.SVGElement {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
      }
      Object.defineProperties(SVGDescElement.prototype, {
        [Symbol.toStringTag]: { value: "SVGDescElement", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGDescElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGDescElement
      });
    };
    var Impl = require_SVGDescElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGMetadataElement-impl.js
var require_SVGMetadataElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGMetadataElement-impl.js"(exports, module) {
    "use strict";
    var SVGElementImpl = require_SVGElement_impl().implementation;
    var SVGMetadataElementImpl = class extends SVGElementImpl {
    };
    module.exports = {
      implementation: SVGMetadataElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGMetadataElement.js
var require_SVGMetadataElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGMetadataElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var SVGElement = require_SVGElement();
    var interfaceName = "SVGMetadataElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGMetadataElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGMetadataElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      SVGElement._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGMetadataElement extends globalObject.SVGElement {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
      }
      Object.defineProperties(SVGMetadataElement.prototype, {
        [Symbol.toStringTag]: { value: "SVGMetadataElement", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGMetadataElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGMetadataElement
      });
    };
    var Impl = require_SVGMetadataElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGTitleElement-impl.js
var require_SVGTitleElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGTitleElement-impl.js"(exports, module) {
    "use strict";
    var SVGElementImpl = require_SVGElement_impl().implementation;
    var SVGTitleElementImpl = class extends SVGElementImpl {
    };
    module.exports = {
      implementation: SVGTitleElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGTitleElement.js
var require_SVGTitleElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGTitleElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var SVGElement = require_SVGElement();
    var interfaceName = "SVGTitleElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGTitleElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGTitleElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      SVGElement._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGTitleElement extends globalObject.SVGElement {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
      }
      Object.defineProperties(SVGTitleElement.prototype, {
        [Symbol.toStringTag]: { value: "SVGTitleElement", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGTitleElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGTitleElement
      });
    };
    var Impl = require_SVGTitleElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGSymbolElement-impl.js
var require_SVGSymbolElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGSymbolElement-impl.js"(exports, module) {
    "use strict";
    var SVGGraphicsElementImpl = require_SVGGraphicsElement_impl().implementation;
    var SVGSymbolElementImpl = class extends SVGGraphicsElementImpl {
    };
    module.exports = {
      implementation: SVGSymbolElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGSymbolElement.js
var require_SVGSymbolElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGSymbolElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var create_SVGAnimatedRect = require_SVGAnimatedRect().create;
    var create_SVGAnimatedPreserveAspectRatio = require_SVGAnimatedPreserveAspectRatio().create;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var SVGGraphicsElement = require_SVGGraphicsElement();
    var interfaceName = "SVGSymbolElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGSymbolElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGSymbolElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      SVGGraphicsElement._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGSymbolElement extends globalObject.SVGGraphicsElement {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get viewBox() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get viewBox' called on an object that is not a valid instance of SVGSymbolElement."
            );
          }
          return utils2.getSameObject(this, "viewBox", () => {
            return create_SVGAnimatedRect(globalObject, [], {
              element: esValue[implSymbol],
              attribute: "viewBox"
            });
          });
        }
        get preserveAspectRatio() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get preserveAspectRatio' called on an object that is not a valid instance of SVGSymbolElement."
            );
          }
          return utils2.getSameObject(this, "preserveAspectRatio", () => {
            return create_SVGAnimatedPreserveAspectRatio(globalObject, [], {
              element: esValue[implSymbol]
            });
          });
        }
      }
      Object.defineProperties(SVGSymbolElement.prototype, {
        viewBox: { enumerable: true },
        preserveAspectRatio: { enumerable: true },
        [Symbol.toStringTag]: { value: "SVGSymbolElement", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGSymbolElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGSymbolElement
      });
    };
    var Impl = require_SVGSymbolElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGSwitchElement-impl.js
var require_SVGSwitchElement_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/nodes/SVGSwitchElement-impl.js"(exports, module) {
    "use strict";
    var SVGGraphicsElementImpl = require_SVGGraphicsElement_impl().implementation;
    var SVGSwitchElementImpl = class extends SVGGraphicsElementImpl {
    };
    module.exports = {
      implementation: SVGSwitchElementImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGSwitchElement.js
var require_SVGSwitchElement = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SVGSwitchElement.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var SVGGraphicsElement = require_SVGGraphicsElement();
    var interfaceName = "SVGSwitchElement";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'SVGSwitchElement'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["SVGSwitchElement"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      SVGGraphicsElement._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class SVGSwitchElement extends globalObject.SVGGraphicsElement {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
      }
      Object.defineProperties(SVGSwitchElement.prototype, {
        [Symbol.toStringTag]: { value: "SVGSwitchElement", configurable: true }
      });
      ctorRegistry[interfaceName] = SVGSwitchElement;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: SVGSwitchElement
      });
    };
    var Impl = require_SVGSwitchElement_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js
var require_CloseEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventInit = require_EventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "code";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unsigned short"](value2, {
            context: context + " has member 'code' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "reason";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["USVString"](value2, {
            context: context + " has member 'reason' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = "";
        }
      }
      {
        const key = "wasClean";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'wasClean' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/CloseEvent-impl.js
var require_CloseEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/CloseEvent-impl.js"(exports) {
    "use strict";
    var EventImpl = require_Event_impl().implementation;
    var CloseEventInit = require_CloseEventInit();
    var CloseEventImpl = class extends EventImpl {
    };
    CloseEventImpl.defaultInit = CloseEventInit.convert(void 0, void 0);
    exports.implementation = CloseEventImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js
var require_CloseEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var CloseEventInit = require_CloseEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Event2 = require_Event();
    var interfaceName = "CloseEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'CloseEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["CloseEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Event2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class CloseEvent extends globalObject.Event {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'CloseEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'CloseEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = CloseEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'CloseEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get wasClean() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get wasClean' called on an object that is not a valid instance of CloseEvent."
            );
          }
          return esValue[implSymbol]["wasClean"];
        }
        get code() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get code' called on an object that is not a valid instance of CloseEvent.");
          }
          return esValue[implSymbol]["code"];
        }
        get reason() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get reason' called on an object that is not a valid instance of CloseEvent."
            );
          }
          return esValue[implSymbol]["reason"];
        }
      }
      Object.defineProperties(CloseEvent.prototype, {
        wasClean: { enumerable: true },
        code: { enumerable: true },
        reason: { enumerable: true },
        [Symbol.toStringTag]: { value: "CloseEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = CloseEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: CloseEvent
      });
    };
    var Impl = require_CloseEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/webstorage/Storage-impl.js
var require_Storage_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/webstorage/Storage-impl.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var StorageEvent = require_StorageEvent();
    var idlUtils = require_utils16();
    var { fireAnEvent } = require_events4();
    var StorageImpl = class {
      constructor(globalObject, args, privateData) {
        const { associatedWindow, storageArea, url: url3, type, storageQuota } = privateData;
        this._associatedWindow = associatedWindow;
        this._items = storageArea;
        this._url = url3;
        this._type = type;
        this._quota = storageQuota;
        this._globalObject = globalObject;
      }
      _dispatchStorageEvent(key, oldValue, newValue) {
        return this._associatedWindow._currentOriginData.windowsInSameOrigin.filter((target) => target !== this._associatedWindow).forEach((target) => fireAnEvent("storage", target, StorageEvent, {
          key,
          oldValue,
          newValue,
          url: this._url,
          storageArea: target["_" + this._type]
        }));
      }
      get length() {
        return this._items.size;
      }
      key(n6) {
        if (n6 >= this._items.size) {
          return null;
        }
        return [...this._items.keys()][n6];
      }
      getItem(key) {
        if (this._items.has(key)) {
          return this._items.get(key);
        }
        return null;
      }
      setItem(key, value2) {
        const oldValue = this._items.get(key) || null;
        if (oldValue === value2) {
          return;
        }
        let itemsTotalLength = key.length + value2.length;
        for (const [curKey, curValue] of this._items) {
          if (key !== curKey) {
            itemsTotalLength += curKey.length + curValue.length;
          }
        }
        if (itemsTotalLength > this._quota) {
          throw DOMException2.create(this._globalObject, [
            `The ${this._quota}-code unit storage quota has been exceeded.`,
            "QuotaExceededError"
          ]);
        }
        setTimeout(this._dispatchStorageEvent.bind(this), 0, key, oldValue, value2);
        this._items.set(key, value2);
      }
      removeItem(key) {
        if (this._items.has(key)) {
          setTimeout(this._dispatchStorageEvent.bind(this), 0, key, this._items.get(key), null);
          this._items.delete(key);
        }
      }
      clear() {
        if (this._items.size > 0) {
          setTimeout(this._dispatchStorageEvent.bind(this), 0, null, null, null);
          this._items.clear();
        }
      }
      get [idlUtils.supportedPropertyNames]() {
        return this._items.keys();
      }
    };
    module.exports = {
      implementation: StorageImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Storage.js
var require_Storage = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Storage.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "Storage";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Storage'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Storage"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Storage2 {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        key(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'key' called on an object that is not a valid instance of Storage.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'key' on 'Storage': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'key' on 'Storage': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].key(...args);
        }
        getItem(key) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'getItem' called on an object that is not a valid instance of Storage.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getItem' on 'Storage': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'getItem' on 'Storage': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].getItem(...args);
        }
        setItem(key, value2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'setItem' called on an object that is not a valid instance of Storage.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'setItem' on 'Storage': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'setItem' on 'Storage': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'setItem' on 'Storage': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setItem(...args);
        }
        removeItem(key) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'removeItem' called on an object that is not a valid instance of Storage.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'removeItem' on 'Storage': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'removeItem' on 'Storage': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].removeItem(...args);
        }
        clear() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'clear' called on an object that is not a valid instance of Storage.");
          }
          return esValue[implSymbol].clear();
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get length' called on an object that is not a valid instance of Storage.");
          }
          return esValue[implSymbol]["length"];
        }
      }
      Object.defineProperties(Storage2.prototype, {
        key: { enumerable: true },
        getItem: { enumerable: true },
        setItem: { enumerable: true },
        removeItem: { enumerable: true },
        clear: { enumerable: true },
        length: { enumerable: true },
        [Symbol.toStringTag]: { value: "Storage", configurable: true }
      });
      ctorRegistry[interfaceName] = Storage2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Storage2
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyNames]) {
          if (!(key in target)) {
            keys2.add(`${key}`);
          }
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        const namedValue = target[implSymbol].getItem(P);
        if (namedValue !== null && !(P in target) && !ignoreNamedProps) {
          return {
            writable: true,
            enumerable: true,
            configurable: true,
            value: utils2.tryWrapperForImpl(namedValue)
          };
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
          if (typeof P === "string") {
            let namedValue = V;
            namedValue = conversions["DOMString"](namedValue, {
              context: "Failed to set the '" + P + "' property on 'Storage': The provided value",
              globals: globalObject
            });
            target[implSymbol].setItem(P, namedValue);
            return true;
          }
        }
        let ownDesc;
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (!utils2.hasOwn(target, P)) {
          if (desc.get || desc.set) {
            return false;
          }
          let namedValue = desc.value;
          namedValue = conversions["DOMString"](namedValue, {
            context: "Failed to set the '" + P + "' property on 'Storage': The provided value",
            globals: globalObject
          });
          target[implSymbol].setItem(P, namedValue);
          return true;
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (target[implSymbol].getItem(P) !== null && !(P in target)) {
          target[implSymbol].removeItem(P);
          return true;
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_Storage_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/StorageEventInit.js
var require_StorageEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/StorageEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Storage2 = require_Storage();
    var EventInit = require_EventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "key";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (value2 === null || value2 === void 0) {
            value2 = null;
          } else {
            value2 = conversions["DOMString"](value2, { context: context + " has member 'key' that", globals: globalObject });
          }
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
      {
        const key = "newValue";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (value2 === null || value2 === void 0) {
            value2 = null;
          } else {
            value2 = conversions["DOMString"](value2, {
              context: context + " has member 'newValue' that",
              globals: globalObject
            });
          }
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
      {
        const key = "oldValue";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (value2 === null || value2 === void 0) {
            value2 = null;
          } else {
            value2 = conversions["DOMString"](value2, {
              context: context + " has member 'oldValue' that",
              globals: globalObject
            });
          }
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
      {
        const key = "storageArea";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (value2 === null || value2 === void 0) {
            value2 = null;
          } else {
            value2 = Storage2.convert(globalObject, value2, { context: context + " has member 'storageArea' that" });
          }
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
      {
        const key = "url";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["USVString"](value2, { context: context + " has member 'url' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = "";
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/StorageEvent-impl.js
var require_StorageEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/StorageEvent-impl.js"(exports, module) {
    "use strict";
    var EventImpl = require_Event_impl().implementation;
    var StorageEventInit = require_StorageEventInit();
    var StorageEventImpl = class extends EventImpl {
      initStorageEvent(type, bubbles, cancelable, key, oldValue, newValue, url3, storageArea) {
        if (this._dispatchFlag) {
          return;
        }
        this.initEvent(type, bubbles, cancelable);
        this.key = key;
        this.oldValue = oldValue;
        this.newValue = newValue;
        this.url = url3;
        this.storageArea = storageArea;
      }
    };
    StorageEventImpl.defaultInit = StorageEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: StorageEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/StorageEvent.js
var require_StorageEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/StorageEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var StorageEventInit = require_StorageEventInit();
    var Storage2 = require_Storage();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Event2 = require_Event();
    var interfaceName = "StorageEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'StorageEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["StorageEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Event2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class StorageEvent extends globalObject.Event {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'StorageEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'StorageEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = StorageEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'StorageEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        initStorageEvent(type) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'initStorageEvent' called on an object that is not a valid instance of StorageEvent."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'initStorageEvent' on 'StorageEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'initStorageEvent' on 'StorageEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initStorageEvent' on 'StorageEvent': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initStorageEvent' on 'StorageEvent': parameter 3",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[3];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = conversions["DOMString"](curArg, {
                  context: "Failed to execute 'initStorageEvent' on 'StorageEvent': parameter 4",
                  globals: globalObject
                });
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[4];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = conversions["DOMString"](curArg, {
                  context: "Failed to execute 'initStorageEvent' on 'StorageEvent': parameter 5",
                  globals: globalObject
                });
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[5];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = conversions["DOMString"](curArg, {
                  context: "Failed to execute 'initStorageEvent' on 'StorageEvent': parameter 6",
                  globals: globalObject
                });
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[6];
            if (curArg !== void 0) {
              curArg = conversions["USVString"](curArg, {
                context: "Failed to execute 'initStorageEvent' on 'StorageEvent': parameter 7",
                globals: globalObject
              });
            } else {
              curArg = "";
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[7];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = Storage2.convert(globalObject, curArg, {
                  context: "Failed to execute 'initStorageEvent' on 'StorageEvent': parameter 8"
                });
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].initStorageEvent(...args);
        }
        get key() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get key' called on an object that is not a valid instance of StorageEvent.");
          }
          return esValue[implSymbol]["key"];
        }
        get oldValue() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get oldValue' called on an object that is not a valid instance of StorageEvent."
            );
          }
          return esValue[implSymbol]["oldValue"];
        }
        get newValue() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get newValue' called on an object that is not a valid instance of StorageEvent."
            );
          }
          return esValue[implSymbol]["newValue"];
        }
        get url() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get url' called on an object that is not a valid instance of StorageEvent.");
          }
          return esValue[implSymbol]["url"];
        }
        get storageArea() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get storageArea' called on an object that is not a valid instance of StorageEvent."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["storageArea"]);
        }
      }
      Object.defineProperties(StorageEvent.prototype, {
        initStorageEvent: { enumerable: true },
        key: { enumerable: true },
        oldValue: { enumerable: true },
        newValue: { enumerable: true },
        url: { enumerable: true },
        storageArea: { enumerable: true },
        [Symbol.toStringTag]: { value: "StorageEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = StorageEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: StorageEvent
      });
    };
    var Impl = require_StorageEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEventInit.js
var require_PageTransitionEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventInit = require_EventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      EventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "persisted";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'persisted' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/PageTransitionEvent-impl.js
var require_PageTransitionEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/PageTransitionEvent-impl.js"(exports) {
    "use strict";
    var EventImpl = require_Event_impl().implementation;
    var PageTransitionEventInit = require_PageTransitionEventInit();
    var PageTransitionEventImpl = class extends EventImpl {
      initPageTransitionEvent(type, bubbles, cancelable, persisted) {
        if (this._dispatchFlag) {
          return;
        }
        this.initEvent(type, bubbles, cancelable);
        this.persisted = persisted;
      }
    };
    PageTransitionEventImpl.defaultInit = PageTransitionEventInit.convert(void 0, void 0);
    exports.implementation = PageTransitionEventImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEvent.js
var require_PageTransitionEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var PageTransitionEventInit = require_PageTransitionEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var Event2 = require_Event();
    var interfaceName = "PageTransitionEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'PageTransitionEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["PageTransitionEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Event2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class PageTransitionEvent extends globalObject.Event {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'PageTransitionEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'PageTransitionEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = PageTransitionEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'PageTransitionEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get persisted() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get persisted' called on an object that is not a valid instance of PageTransitionEvent."
            );
          }
          return esValue[implSymbol]["persisted"];
        }
      }
      Object.defineProperties(PageTransitionEvent.prototype, {
        persisted: { enumerable: true },
        [Symbol.toStringTag]: { value: "PageTransitionEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = PageTransitionEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: PageTransitionEvent
      });
    };
    var Impl = require_PageTransitionEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js
var require_InputEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var UIEventInit = require_UIEventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      UIEventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "data";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (value2 === null || value2 === void 0) {
            value2 = null;
          } else {
            value2 = conversions["DOMString"](value2, {
              context: context + " has member 'data' that",
              globals: globalObject
            });
          }
          ret[key] = value2;
        } else {
          ret[key] = null;
        }
      }
      {
        const key = "inputType";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["DOMString"](value2, {
            context: context + " has member 'inputType' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = "";
        }
      }
      {
        const key = "isComposing";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'isComposing' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/InputEvent-impl.js
var require_InputEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/InputEvent-impl.js"(exports, module) {
    "use strict";
    var UIEventImpl = require_UIEvent_impl().implementation;
    var InputEventInit = require_InputEventInit();
    var InputEventImpl = class extends UIEventImpl {
    };
    InputEventImpl.defaultInit = InputEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: InputEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js
var require_InputEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var InputEventInit = require_InputEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var UIEvent = require_UIEvent();
    var interfaceName = "InputEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'InputEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["InputEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      UIEvent._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class InputEvent extends globalObject.UIEvent {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'InputEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'InputEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = InputEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'InputEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get data() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get data' called on an object that is not a valid instance of InputEvent.");
          }
          return esValue[implSymbol]["data"];
        }
        get isComposing() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get isComposing' called on an object that is not a valid instance of InputEvent."
            );
          }
          return esValue[implSymbol]["isComposing"];
        }
        get inputType() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get inputType' called on an object that is not a valid instance of InputEvent."
            );
          }
          return esValue[implSymbol]["inputType"];
        }
      }
      Object.defineProperties(InputEvent.prototype, {
        data: { enumerable: true },
        isComposing: { enumerable: true },
        inputType: { enumerable: true },
        [Symbol.toStringTag]: { value: "InputEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = InputEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: InputEvent
      });
    };
    var Impl = require_InputEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js
var require_CompositionEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var UIEventInit = require_UIEventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      UIEventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "data";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["DOMString"](value2, { context: context + " has member 'data' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = "";
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/CompositionEvent-impl.js
var require_CompositionEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/CompositionEvent-impl.js"(exports, module) {
    "use strict";
    var UIEventImpl = require_UIEvent_impl().implementation;
    var CompositionEventInit = require_CompositionEventInit();
    var CompositionEventImpl = class extends UIEventImpl {
      initCompositionEvent(type, bubbles, cancelable, view, data2) {
        if (this._dispatchFlag) {
          return;
        }
        this.initUIEvent(type, bubbles, cancelable, view, 0);
        this.data = data2;
      }
    };
    CompositionEventImpl.defaultInit = CompositionEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: CompositionEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js
var require_CompositionEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var CompositionEventInit = require_CompositionEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var UIEvent = require_UIEvent();
    var interfaceName = "CompositionEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'CompositionEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["CompositionEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      UIEvent._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class CompositionEvent extends globalObject.UIEvent {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'CompositionEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'CompositionEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = CompositionEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'CompositionEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        initCompositionEvent(typeArg) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'initCompositionEvent' called on an object that is not a valid instance of CompositionEvent."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'initCompositionEvent' on 'CompositionEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'initCompositionEvent' on 'CompositionEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initCompositionEvent' on 'CompositionEvent': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'initCompositionEvent' on 'CompositionEvent': parameter 3",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[3];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = utils2.tryImplForWrapper(curArg);
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[4];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'initCompositionEvent' on 'CompositionEvent': parameter 5",
                globals: globalObject
              });
            } else {
              curArg = "";
            }
            args.push(curArg);
          }
          return esValue[implSymbol].initCompositionEvent(...args);
        }
        get data() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get data' called on an object that is not a valid instance of CompositionEvent."
            );
          }
          return esValue[implSymbol]["data"];
        }
      }
      Object.defineProperties(CompositionEvent.prototype, {
        initCompositionEvent: { enumerable: true },
        data: { enumerable: true },
        [Symbol.toStringTag]: { value: "CompositionEvent", configurable: true }
      });
      ctorRegistry[interfaceName] = CompositionEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: CompositionEvent
      });
    };
    var Impl = require_CompositionEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/WheelEventInit.js
var require_WheelEventInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/WheelEventInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var MouseEventInit = require_MouseEventInit();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      MouseEventInit._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "deltaMode";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unsigned long"](value2, {
            context: context + " has member 'deltaMode' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "deltaX";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["double"](value2, { context: context + " has member 'deltaX' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "deltaY";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["double"](value2, { context: context + " has member 'deltaY' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "deltaZ";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["double"](value2, { context: context + " has member 'deltaZ' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/WheelEvent-impl.js
var require_WheelEvent_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/events/WheelEvent-impl.js"(exports, module) {
    "use strict";
    var MouseEventImpl = require_MouseEvent_impl().implementation;
    var WheelEventInit = require_WheelEventInit();
    var WheelEventImpl = class extends MouseEventImpl {
    };
    WheelEventImpl.defaultInit = WheelEventInit.convert(void 0, void 0);
    module.exports = {
      implementation: WheelEventImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/WheelEvent.js
var require_WheelEvent = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/WheelEvent.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var WheelEventInit = require_WheelEventInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var MouseEvent = require_MouseEvent();
    var interfaceName = "WheelEvent";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'WheelEvent'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["WheelEvent"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      MouseEvent._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class WheelEvent extends globalObject.MouseEvent {
        constructor(type) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'WheelEvent': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to construct 'WheelEvent': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = WheelEventInit.convert(globalObject, curArg, {
              context: "Failed to construct 'WheelEvent': parameter 2"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get deltaX() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get deltaX' called on an object that is not a valid instance of WheelEvent."
            );
          }
          return esValue[implSymbol]["deltaX"];
        }
        get deltaY() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get deltaY' called on an object that is not a valid instance of WheelEvent."
            );
          }
          return esValue[implSymbol]["deltaY"];
        }
        get deltaZ() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get deltaZ' called on an object that is not a valid instance of WheelEvent."
            );
          }
          return esValue[implSymbol]["deltaZ"];
        }
        get deltaMode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get deltaMode' called on an object that is not a valid instance of WheelEvent."
            );
          }
          return esValue[implSymbol]["deltaMode"];
        }
      }
      Object.defineProperties(WheelEvent.prototype, {
        deltaX: { enumerable: true },
        deltaY: { enumerable: true },
        deltaZ: { enumerable: true },
        deltaMode: { enumerable: true },
        [Symbol.toStringTag]: { value: "WheelEvent", configurable: true },
        DOM_DELTA_PIXEL: { value: 0, enumerable: true },
        DOM_DELTA_LINE: { value: 1, enumerable: true },
        DOM_DELTA_PAGE: { value: 2, enumerable: true }
      });
      Object.defineProperties(WheelEvent, {
        DOM_DELTA_PIXEL: { value: 0, enumerable: true },
        DOM_DELTA_LINE: { value: 1, enumerable: true },
        DOM_DELTA_PAGE: { value: 2, enumerable: true }
      });
      ctorRegistry[interfaceName] = WheelEvent;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: WheelEvent
      });
    };
    var Impl = require_WheelEvent_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/BarProp-impl.js
var require_BarProp_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/BarProp-impl.js"(exports) {
    "use strict";
    var BarPropImpl = class {
    };
    BarPropImpl.prototype.visible = true;
    exports.implementation = BarPropImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js
var require_BarProp = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "BarProp";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'BarProp'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["BarProp"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class BarProp {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get visible() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get visible' called on an object that is not a valid instance of BarProp.");
          }
          return esValue[implSymbol]["visible"];
        }
      }
      Object.defineProperties(BarProp.prototype, {
        visible: { enumerable: true },
        [Symbol.toStringTag]: { value: "BarProp", configurable: true }
      });
      ctorRegistry[interfaceName] = BarProp;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: BarProp
      });
    };
    var Impl = require_BarProp_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/External-impl.js
var require_External_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/External-impl.js"(exports) {
    "use strict";
    exports.implementation = class ExternalImpl {
      // The AddSearchProvider() and IsSearchProviderInstalled() methods must do nothing
      AddSearchProvider() {
      }
      IsSearchProviderInstalled() {
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/External.js
var require_External = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/External.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "External";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'External'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["External"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class External {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        AddSearchProvider() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'AddSearchProvider' called on an object that is not a valid instance of External."
            );
          }
          return esValue[implSymbol].AddSearchProvider();
        }
        IsSearchProviderInstalled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'IsSearchProviderInstalled' called on an object that is not a valid instance of External."
            );
          }
          return esValue[implSymbol].IsSearchProviderInstalled();
        }
      }
      Object.defineProperties(External.prototype, {
        AddSearchProvider: { enumerable: true },
        IsSearchProviderInstalled: { enumerable: true },
        [Symbol.toStringTag]: { value: "External", configurable: true }
      });
      ctorRegistry[interfaceName] = External;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: External
      });
    };
    var Impl = require_External_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/Screen-impl.js
var require_Screen_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/Screen-impl.js"(exports) {
    "use strict";
    var ScreenImpl = class {
    };
    ScreenImpl.prototype.availWidth = 0;
    ScreenImpl.prototype.availHeight = 0;
    ScreenImpl.prototype.width = 0;
    ScreenImpl.prototype.height = 0;
    ScreenImpl.prototype.colorDepth = 24;
    ScreenImpl.prototype.pixelDepth = 24;
    exports.implementation = ScreenImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Screen.js
var require_Screen = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Screen.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "Screen";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Screen'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Screen"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Screen {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get availWidth() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get availWidth' called on an object that is not a valid instance of Screen."
            );
          }
          return esValue[implSymbol]["availWidth"];
        }
        get availHeight() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get availHeight' called on an object that is not a valid instance of Screen."
            );
          }
          return esValue[implSymbol]["availHeight"];
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get width' called on an object that is not a valid instance of Screen.");
          }
          return esValue[implSymbol]["width"];
        }
        get height() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get height' called on an object that is not a valid instance of Screen.");
          }
          return esValue[implSymbol]["height"];
        }
        get colorDepth() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get colorDepth' called on an object that is not a valid instance of Screen."
            );
          }
          return esValue[implSymbol]["colorDepth"];
        }
        get pixelDepth() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get pixelDepth' called on an object that is not a valid instance of Screen."
            );
          }
          return esValue[implSymbol]["pixelDepth"];
        }
      }
      Object.defineProperties(Screen.prototype, {
        availWidth: { enumerable: true },
        availHeight: { enumerable: true },
        width: { enumerable: true },
        height: { enumerable: true },
        colorDepth: { enumerable: true },
        pixelDepth: { enumerable: true },
        [Symbol.toStringTag]: { value: "Screen", configurable: true }
      });
      ctorRegistry[interfaceName] = Screen;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Screen
      });
    };
    var Impl = require_Screen_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/hr-time/Performance-impl.js
var require_Performance_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/hr-time/Performance-impl.js"(exports) {
    "use strict";
    var EventTargetImpl = require_EventTarget_impl().implementation;
    var PerformanceImpl = class extends EventTargetImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this.timeOrigin = privateData.timeOrigin;
        this._nowAtTimeOrigin = privateData.nowAtTimeOrigin;
      }
      now() {
        return performance.now() - this._nowAtTimeOrigin;
      }
      toJSON() {
        return { timeOrigin: this.timeOrigin };
      }
    };
    exports.implementation = PerformanceImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Performance.js
var require_Performance = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Performance.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var EventTarget2 = require_EventTarget();
    var interfaceName = "Performance";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Performance'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Performance"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      EventTarget2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Performance extends globalObject.EventTarget {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        now() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'now' called on an object that is not a valid instance of Performance.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].now());
        }
        toJSON() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'toJSON' called on an object that is not a valid instance of Performance.");
          }
          return esValue[implSymbol].toJSON();
        }
        get timeOrigin() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get timeOrigin' called on an object that is not a valid instance of Performance."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["timeOrigin"]);
        }
      }
      Object.defineProperties(Performance.prototype, {
        now: { enumerable: true },
        toJSON: { enumerable: true },
        timeOrigin: { enumerable: true },
        [Symbol.toStringTag]: { value: "Performance", configurable: true }
      });
      ctorRegistry[interfaceName] = Performance;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Performance
      });
    };
    var Impl = require_Performance_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/PluginArray-impl.js
var require_PluginArray_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/PluginArray-impl.js"(exports) {
    "use strict";
    var idlUtils = require_utils16();
    exports.implementation = class PluginArray {
      refresh() {
      }
      get length() {
        return 0;
      }
      item() {
        return null;
      }
      namedItem() {
        return null;
      }
      get [idlUtils.supportedPropertyIndices]() {
        return [];
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/PluginArray.js
var require_PluginArray = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/PluginArray.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "PluginArray";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'PluginArray'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["PluginArray"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class PluginArray {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        refresh() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'refresh' called on an object that is not a valid instance of PluginArray.");
          }
          return esValue[implSymbol].refresh();
        }
        item(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'item' called on an object that is not a valid instance of PluginArray.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'item' on 'PluginArray': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'item' on 'PluginArray': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].item(...args);
        }
        namedItem(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'namedItem' called on an object that is not a valid instance of PluginArray."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'namedItem' on 'PluginArray': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'namedItem' on 'PluginArray': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].namedItem(...args);
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get length' called on an object that is not a valid instance of PluginArray."
            );
          }
          return esValue[implSymbol]["length"];
        }
      }
      Object.defineProperties(PluginArray.prototype, {
        refresh: { enumerable: true },
        item: { enumerable: true },
        namedItem: { enumerable: true },
        length: { enumerable: true },
        [Symbol.toStringTag]: { value: "PluginArray", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = PluginArray;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: PluginArray
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            return {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            ownDesc = {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          return false;
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !(target[implSymbol].item(index2) !== null);
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_PluginArray_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/MimeTypeArray-impl.js
var require_MimeTypeArray_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/MimeTypeArray-impl.js"(exports) {
    "use strict";
    var idlUtils = require_utils16();
    exports.implementation = class MimeTypeArray {
      get length() {
        return 0;
      }
      item() {
        return null;
      }
      namedItem() {
        return null;
      }
      get [idlUtils.supportedPropertyIndices]() {
        return [];
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js
var require_MimeTypeArray = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "MimeTypeArray";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'MimeTypeArray'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["MimeTypeArray"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class MimeTypeArray {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        item(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'item' called on an object that is not a valid instance of MimeTypeArray.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'item' on 'MimeTypeArray': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'item' on 'MimeTypeArray': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].item(...args);
        }
        namedItem(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'namedItem' called on an object that is not a valid instance of MimeTypeArray."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'namedItem' on 'MimeTypeArray': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'namedItem' on 'MimeTypeArray': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].namedItem(...args);
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get length' called on an object that is not a valid instance of MimeTypeArray."
            );
          }
          return esValue[implSymbol]["length"];
        }
      }
      Object.defineProperties(MimeTypeArray.prototype, {
        item: { enumerable: true },
        namedItem: { enumerable: true },
        length: { enumerable: true },
        [Symbol.toStringTag]: { value: "MimeTypeArray", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = MimeTypeArray;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: MimeTypeArray
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            return {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          const indexedValue = target[implSymbol].item(index2);
          if (indexedValue !== null) {
            ownDesc = {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          return false;
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !(target[implSymbol].item(index2) !== null);
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_MimeTypeArray_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorID-impl.js
var require_NavigatorID_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorID-impl.js"(exports) {
    "use strict";
    exports.implementation = class NavigatorIDImpl {
      get appCodeName() {
        return "Mozilla";
      }
      get appName() {
        return "Netscape";
      }
      get appVersion() {
        return "4.0";
      }
      get platform() {
        return "";
      }
      get product() {
        return "Gecko";
      }
      get productSub() {
        return "20030107";
      }
      // see Navigator constructor for userAgent
      get vendor() {
        return "Apple Computer, Inc.";
      }
      get vendorSub() {
        return "";
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorLanguage-impl.js
var require_NavigatorLanguage_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorLanguage-impl.js"(exports) {
    "use strict";
    exports.implementation = class NavigatorLanguageImpl {
      get language() {
        return "en-US";
      }
      // See Navigator constructor for languages
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorOnLine-impl.js
var require_NavigatorOnLine_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorOnLine-impl.js"(exports) {
    "use strict";
    exports.implementation = class NavigatorOnLineImpl {
      get onLine() {
        return true;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorCookies-impl.js
var require_NavigatorCookies_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorCookies-impl.js"(exports) {
    "use strict";
    exports.implementation = class NavigatorCookiesImpl {
      get cookieEnabled() {
        return true;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorPlugins-impl.js
var require_NavigatorPlugins_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorPlugins-impl.js"(exports) {
    "use strict";
    exports.implementation = class NavigatorPluginsImpl {
      // plugins and mimeTypes are implemented in Navigator-impl.js
      javaEnabled() {
        return false;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorConcurrentHardware-impl.js
var require_NavigatorConcurrentHardware_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorConcurrentHardware-impl.js"(exports) {
    "use strict";
    var os2 = __require("os");
    exports.implementation = class NavigatorConcurrentHardwareImpl {
      get hardwareConcurrency() {
        return os2.cpus().length;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/Navigator-impl.js
var require_Navigator_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/Navigator-impl.js"(exports) {
    "use strict";
    var { mixin: mixin2 } = require_utils17();
    var PluginArray = require_PluginArray();
    var MimeTypeArray = require_MimeTypeArray();
    var NavigatorIDImpl = require_NavigatorID_impl().implementation;
    var NavigatorLanguageImpl = require_NavigatorLanguage_impl().implementation;
    var NavigatorOnLineImpl = require_NavigatorOnLine_impl().implementation;
    var NavigatorCookiesImpl = require_NavigatorCookies_impl().implementation;
    var NavigatorPluginsImpl = require_NavigatorPlugins_impl().implementation;
    var NavigatorConcurrentHardwareImpl = require_NavigatorConcurrentHardware_impl().implementation;
    var NavigatorImpl = class {
      constructor(globalObject, args, privateData) {
        this._globalObject = globalObject;
        this.userAgent = privateData.userAgent;
        this.languages = Object.freeze(["en-US", "en"]);
        this.plugins = PluginArray.create(this._globalObject);
        this.mimeTypes = MimeTypeArray.create(this._globalObject);
      }
    };
    mixin2(NavigatorImpl.prototype, NavigatorIDImpl.prototype);
    mixin2(NavigatorImpl.prototype, NavigatorLanguageImpl.prototype);
    mixin2(NavigatorImpl.prototype, NavigatorOnLineImpl.prototype);
    mixin2(NavigatorImpl.prototype, NavigatorCookiesImpl.prototype);
    mixin2(NavigatorImpl.prototype, NavigatorPluginsImpl.prototype);
    mixin2(NavigatorImpl.prototype, NavigatorConcurrentHardwareImpl.prototype);
    exports.implementation = NavigatorImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js
var require_Navigator = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "Navigator";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Navigator'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Navigator"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Navigator {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        javaEnabled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'javaEnabled' called on an object that is not a valid instance of Navigator."
            );
          }
          return esValue[implSymbol].javaEnabled();
        }
        get appCodeName() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get appCodeName' called on an object that is not a valid instance of Navigator."
            );
          }
          return esValue[implSymbol]["appCodeName"];
        }
        get appName() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get appName' called on an object that is not a valid instance of Navigator."
            );
          }
          return esValue[implSymbol]["appName"];
        }
        get appVersion() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get appVersion' called on an object that is not a valid instance of Navigator."
            );
          }
          return esValue[implSymbol]["appVersion"];
        }
        get platform() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get platform' called on an object that is not a valid instance of Navigator."
            );
          }
          return esValue[implSymbol]["platform"];
        }
        get product() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get product' called on an object that is not a valid instance of Navigator."
            );
          }
          return esValue[implSymbol]["product"];
        }
        get productSub() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get productSub' called on an object that is not a valid instance of Navigator."
            );
          }
          return esValue[implSymbol]["productSub"];
        }
        get userAgent() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get userAgent' called on an object that is not a valid instance of Navigator."
            );
          }
          return esValue[implSymbol]["userAgent"];
        }
        get vendor() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get vendor' called on an object that is not a valid instance of Navigator.");
          }
          return esValue[implSymbol]["vendor"];
        }
        get vendorSub() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get vendorSub' called on an object that is not a valid instance of Navigator."
            );
          }
          return esValue[implSymbol]["vendorSub"];
        }
        get language() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get language' called on an object that is not a valid instance of Navigator."
            );
          }
          return esValue[implSymbol]["language"];
        }
        get languages() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get languages' called on an object that is not a valid instance of Navigator."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["languages"]);
        }
        get onLine() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onLine' called on an object that is not a valid instance of Navigator.");
          }
          return esValue[implSymbol]["onLine"];
        }
        get cookieEnabled() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get cookieEnabled' called on an object that is not a valid instance of Navigator."
            );
          }
          return esValue[implSymbol]["cookieEnabled"];
        }
        get plugins() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get plugins' called on an object that is not a valid instance of Navigator."
            );
          }
          return utils2.getSameObject(this, "plugins", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["plugins"]);
          });
        }
        get mimeTypes() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get mimeTypes' called on an object that is not a valid instance of Navigator."
            );
          }
          return utils2.getSameObject(this, "mimeTypes", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["mimeTypes"]);
          });
        }
        get hardwareConcurrency() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get hardwareConcurrency' called on an object that is not a valid instance of Navigator."
            );
          }
          return esValue[implSymbol]["hardwareConcurrency"];
        }
      }
      Object.defineProperties(Navigator.prototype, {
        javaEnabled: { enumerable: true },
        appCodeName: { enumerable: true },
        appName: { enumerable: true },
        appVersion: { enumerable: true },
        platform: { enumerable: true },
        product: { enumerable: true },
        productSub: { enumerable: true },
        userAgent: { enumerable: true },
        vendor: { enumerable: true },
        vendorSub: { enumerable: true },
        language: { enumerable: true },
        languages: { enumerable: true },
        onLine: { enumerable: true },
        cookieEnabled: { enumerable: true },
        plugins: { enumerable: true },
        mimeTypes: { enumerable: true },
        hardwareConcurrency: { enumerable: true },
        [Symbol.toStringTag]: { value: "Navigator", configurable: true }
      });
      ctorRegistry[interfaceName] = Navigator;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Navigator
      });
    };
    var Impl = require_Navigator_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/crypto/Crypto-impl.js
var require_Crypto_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/crypto/Crypto-impl.js"(exports) {
    "use strict";
    var nodeCrypto = __require("crypto");
    var DOMException2 = require_DOMException();
    var CryptoImpl = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      // https://w3c.github.io/webcrypto/#Crypto-method-getRandomValues
      getRandomValues(array) {
        const typeName = getTypedArrayTypeName(array);
        if (!(typeName === "Int8Array" || typeName === "Uint8Array" || typeName === "Uint8ClampedArray" || typeName === "Int16Array" || typeName === "Uint16Array" || typeName === "Int32Array" || typeName === "Uint32Array" || typeName === "BigInt64Array" || typeName === "BigUint64Array")) {
          throw DOMException2.create(this._globalObject, [
            `getRandomValues() only accepts integer typed arrays`,
            "TypeMismatchError"
          ]);
        }
        if (array.byteLength > 65536) {
          throw DOMException2.create(this._globalObject, [
            `getRandomValues() cannot generate more than 65536 bytes of random values; ${array.byteLength} bytes were requested`,
            "QuotaExceededError"
          ]);
        }
        nodeCrypto.randomFillSync(array);
        return array;
      }
      // https://w3c.github.io/webcrypto/#Crypto-method-randomUUID
      randomUUID() {
        return nodeCrypto.randomUUID();
      }
    };
    exports.implementation = CryptoImpl;
    function getTypedArrayTypeName(array) {
      const target = array.constructor;
      const chain = [target.name];
      let proto = Object.getPrototypeOf(target);
      while (proto) {
        chain.push(proto.name);
        proto = Object.getPrototypeOf(proto);
      }
      while (chain.length > 0 && chain[chain.length - 1] !== "TypedArray") {
        chain.pop();
      }
      chain.reverse();
      return chain[1];
    }
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Crypto.js
var require_Crypto = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Crypto.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "Crypto";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Crypto'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Crypto"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Crypto {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        getRandomValues(array) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getRandomValues' called on an object that is not a valid instance of Crypto."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getRandomValues' on 'Crypto': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (ArrayBuffer.isView(curArg)) {
            } else {
              throw new globalObject.TypeError(
                "Failed to execute 'getRandomValues' on 'Crypto': parameter 1 is not of any supported type."
              );
            }
            args.push(curArg);
          }
          return esValue[implSymbol].getRandomValues(...args);
        }
        randomUUID() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'randomUUID' called on an object that is not a valid instance of Crypto.");
          }
          return esValue[implSymbol].randomUUID();
        }
      }
      Object.defineProperties(Crypto.prototype, {
        getRandomValues: { enumerable: true },
        randomUUID: { enumerable: true },
        [Symbol.toStringTag]: { value: "Crypto", configurable: true }
      });
      ctorRegistry[interfaceName] = Crypto;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Crypto
      });
    };
    var Impl = require_Crypto_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/Plugin-impl.js
var require_Plugin_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/Plugin-impl.js"(exports) {
    "use strict";
    exports.implementation = class Plugin {
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Plugin.js
var require_Plugin = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Plugin.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "Plugin";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Plugin'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Plugin"].prototype;
      }
      return Object.create(proto);
    }
    function makeProxy(wrapper, globalObject) {
      let proxyHandler = proxyHandlerCache.get(globalObject);
      if (proxyHandler === void 0) {
        proxyHandler = new ProxyHandler(globalObject);
        proxyHandlerCache.set(globalObject, proxyHandler);
      }
      return new Proxy(wrapper, proxyHandler);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      let wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper = makeProxy(wrapper, globalObject);
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Plugin {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        item(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'item' called on an object that is not a valid instance of Plugin.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'item' on 'Plugin': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'item' on 'Plugin': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].item(...args);
        }
        namedItem(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'namedItem' called on an object that is not a valid instance of Plugin.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'namedItem' on 'Plugin': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'namedItem' on 'Plugin': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].namedItem(...args);
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get name' called on an object that is not a valid instance of Plugin.");
          }
          return esValue[implSymbol]["name"];
        }
        get description() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get description' called on an object that is not a valid instance of Plugin."
            );
          }
          return esValue[implSymbol]["description"];
        }
        get filename() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get filename' called on an object that is not a valid instance of Plugin.");
          }
          return esValue[implSymbol]["filename"];
        }
        get length() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get length' called on an object that is not a valid instance of Plugin.");
          }
          return esValue[implSymbol]["length"];
        }
      }
      Object.defineProperties(Plugin.prototype, {
        item: { enumerable: true },
        namedItem: { enumerable: true },
        name: { enumerable: true },
        description: { enumerable: true },
        filename: { enumerable: true },
        length: { enumerable: true },
        [Symbol.toStringTag]: { value: "Plugin", configurable: true },
        [Symbol.iterator]: { value: globalObject.Array.prototype[Symbol.iterator], configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = Plugin;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Plugin
      });
    };
    var proxyHandlerCache = /* @__PURE__ */ new WeakMap();
    var ProxyHandler = class {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      get(target, P, receiver) {
        if (typeof P === "symbol") {
          return Reflect.get(target, P, receiver);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc === void 0) {
          const parent = Object.getPrototypeOf(target);
          if (parent === null) {
            return void 0;
          }
          return Reflect.get(target, P, receiver);
        }
        if (!desc.get && !desc.set) {
          return desc.value;
        }
        const getter = desc.get;
        if (getter === void 0) {
          return void 0;
        }
        return Reflect.apply(getter, receiver, []);
      }
      has(target, P) {
        if (typeof P === "symbol") {
          return Reflect.has(target, P);
        }
        const desc = this.getOwnPropertyDescriptor(target, P);
        if (desc !== void 0) {
          return true;
        }
        const parent = Object.getPrototypeOf(target);
        if (parent !== null) {
          return Reflect.has(parent, P);
        }
        return false;
      }
      ownKeys(target) {
        const keys2 = /* @__PURE__ */ new Set();
        for (const key of target[implSymbol][utils2.supportedPropertyIndices]) {
          keys2.add(`${key}`);
        }
        for (const key of Reflect.ownKeys(target)) {
          keys2.add(key);
        }
        return [...keys2];
      }
      getOwnPropertyDescriptor(target, P) {
        if (typeof P === "symbol") {
          return Reflect.getOwnPropertyDescriptor(target, P);
        }
        let ignoreNamedProps = false;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          if (target[implSymbol][utils2.supportsPropertyIndex](index2)) {
            const indexedValue = target[implSymbol].item(index2);
            return {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
          ignoreNamedProps = true;
        }
        return Reflect.getOwnPropertyDescriptor(target, P);
      }
      set(target, P, V, receiver) {
        if (typeof P === "symbol") {
          return Reflect.set(target, P, V, receiver);
        }
        if (target[implSymbol][utils2.wrapperSymbol] === receiver) {
          const globalObject = this._globalObject;
        }
        let ownDesc;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          if (target[implSymbol][utils2.supportsPropertyIndex](index2)) {
            const indexedValue = target[implSymbol].item(index2);
            ownDesc = {
              writable: false,
              enumerable: true,
              configurable: true,
              value: utils2.tryWrapperForImpl(indexedValue)
            };
          }
        }
        if (ownDesc === void 0) {
          ownDesc = Reflect.getOwnPropertyDescriptor(target, P);
        }
        if (ownDesc === void 0) {
          const parent = Reflect.getPrototypeOf(target);
          if (parent !== null) {
            return Reflect.set(parent, P, V, receiver);
          }
          ownDesc = { writable: true, enumerable: true, configurable: true, value: void 0 };
        }
        if (!ownDesc.writable) {
          return false;
        }
        if (!utils2.isObject(receiver)) {
          return false;
        }
        const existingDesc = Reflect.getOwnPropertyDescriptor(receiver, P);
        let valueDesc;
        if (existingDesc !== void 0) {
          if (existingDesc.get || existingDesc.set) {
            return false;
          }
          if (!existingDesc.writable) {
            return false;
          }
          valueDesc = { value: V };
        } else {
          valueDesc = { writable: true, enumerable: true, configurable: true, value: V };
        }
        return Reflect.defineProperty(receiver, P, valueDesc);
      }
      defineProperty(target, P, desc) {
        if (typeof P === "symbol") {
          return Reflect.defineProperty(target, P, desc);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          return false;
        }
        return Reflect.defineProperty(target, P, desc);
      }
      deleteProperty(target, P) {
        if (typeof P === "symbol") {
          return Reflect.deleteProperty(target, P);
        }
        const globalObject = this._globalObject;
        if (utils2.isArrayIndexPropName(P)) {
          const index2 = P >>> 0;
          return !target[implSymbol][utils2.supportsPropertyIndex](index2);
        }
        return Reflect.deleteProperty(target, P);
      }
      preventExtensions() {
        return false;
      }
    };
    var Impl = require_Plugin_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/MimeType-impl.js
var require_MimeType_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/navigator/MimeType-impl.js"(exports) {
    "use strict";
    exports.implementation = class MimeType {
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js
var require_MimeType = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "MimeType";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'MimeType'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["MimeType"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class MimeType {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get type' called on an object that is not a valid instance of MimeType.");
          }
          return esValue[implSymbol]["type"];
        }
        get description() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get description' called on an object that is not a valid instance of MimeType."
            );
          }
          return esValue[implSymbol]["description"];
        }
        get suffixes() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get suffixes' called on an object that is not a valid instance of MimeType."
            );
          }
          return esValue[implSymbol]["suffixes"];
        }
        get enabledPlugin() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get enabledPlugin' called on an object that is not a valid instance of MimeType."
            );
          }
          return esValue[implSymbol]["enabledPlugin"];
        }
      }
      Object.defineProperties(MimeType.prototype, {
        type: { enumerable: true },
        description: { enumerable: true },
        suffixes: { enumerable: true },
        enabledPlugin: { enumerable: true },
        [Symbol.toStringTag]: { value: "MimeType", configurable: true }
      });
      ctorRegistry[interfaceName] = MimeType;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: MimeType
      });
    };
    var Impl = require_MimeType_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js
var require_EndingType = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js"(exports) {
    "use strict";
    var enumerationValues = /* @__PURE__ */ new Set(["transparent", "native"]);
    exports.enumerationValues = enumerationValues;
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      const string = `${value2}`;
      if (!enumerationValues.has(string)) {
        throw new globalObject.TypeError(`${context} '${string}' is not a valid enumeration value for EndingType`);
      }
      return string;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js
var require_BlobPropertyBag = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EndingType = require_EndingType();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      {
        const key = "endings";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = EndingType.convert(globalObject, value2, { context: context + " has member 'endings' that" });
          ret[key] = value2;
        } else {
          ret[key] = "transparent";
        }
      }
      {
        const key = "type";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["DOMString"](value2, { context: context + " has member 'type' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = "";
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/file-api/Blob-impl.js
var require_Blob_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/file-api/Blob-impl.js"(exports) {
    "use strict";
    var Blob2 = require_Blob();
    var { isArrayBuffer: isArrayBuffer3 } = require_utils16();
    function convertLineEndingsToNative(s4) {
      return s4.replace(/\r\n|\r|\n/g, "\n");
    }
    exports.implementation = class BlobImpl {
      constructor(globalObject, args) {
        const parts = args[0];
        const properties = args[1];
        const buffers = [];
        if (parts !== void 0) {
          for (const part of parts) {
            let buffer;
            if (isArrayBuffer3(part)) {
              buffer = Buffer.from(part);
            } else if (ArrayBuffer.isView(part)) {
              buffer = Buffer.from(part.buffer, part.byteOffset, part.byteLength);
            } else if (Blob2.isImpl(part)) {
              buffer = part._buffer;
            } else {
              let s4 = part;
              if (properties.endings === "native") {
                s4 = convertLineEndingsToNative(part);
              }
              buffer = Buffer.from(s4);
            }
            buffers.push(buffer);
          }
        }
        this._buffer = Buffer.concat(buffers);
        this._globalObject = globalObject;
        this.type = properties.type;
        if (/[^\u0020-\u007E]/.test(this.type)) {
          this.type = "";
        } else {
          this.type = this.type.toLowerCase();
        }
      }
      get size() {
        return this._buffer.length;
      }
      slice(start2, end2, contentType) {
        const { size } = this;
        let relativeStart, relativeEnd, relativeContentType;
        if (start2 === void 0) {
          relativeStart = 0;
        } else if (start2 < 0) {
          relativeStart = Math.max(size + start2, 0);
        } else {
          relativeStart = Math.min(start2, size);
        }
        if (end2 === void 0) {
          relativeEnd = size;
        } else if (end2 < 0) {
          relativeEnd = Math.max(size + end2, 0);
        } else {
          relativeEnd = Math.min(end2, size);
        }
        if (contentType === void 0) {
          relativeContentType = "";
        } else {
          relativeContentType = contentType;
        }
        const span = Math.max(relativeEnd - relativeStart, 0);
        const buffer = this._buffer;
        const slicedBuffer = buffer.slice(
          relativeStart,
          relativeStart + span
        );
        const blob = Blob2.createImpl(this._globalObject, [[], { type: relativeContentType }], {});
        blob._buffer = slicedBuffer;
        return blob;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Blob.js
var require_Blob = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Blob.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var BlobPropertyBag = require_BlobPropertyBag();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "Blob";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Blob'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Blob"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Blob2 {
        constructor() {
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              if (!utils2.isObject(curArg)) {
                throw new globalObject.TypeError("Failed to construct 'Blob': parameter 1 is not an iterable object.");
              } else {
                const V = [];
                const tmp = curArg;
                for (let nextItem of tmp) {
                  if (exports.is(nextItem)) {
                    nextItem = utils2.implForWrapper(nextItem);
                  } else if (utils2.isArrayBuffer(nextItem)) {
                  } else if (ArrayBuffer.isView(nextItem)) {
                  } else {
                    nextItem = conversions["USVString"](nextItem, {
                      context: "Failed to construct 'Blob': parameter 1's element",
                      globals: globalObject
                    });
                  }
                  V.push(nextItem);
                }
                curArg = V;
              }
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = BlobPropertyBag.convert(globalObject, curArg, { context: "Failed to construct 'Blob': parameter 2" });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        slice() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'slice' called on an object that is not a valid instance of Blob.");
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["long long"](curArg, {
                context: "Failed to execute 'slice' on 'Blob': parameter 1",
                globals: globalObject,
                clamp: true
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["long long"](curArg, {
                context: "Failed to execute 'slice' on 'Blob': parameter 2",
                globals: globalObject,
                clamp: true
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'slice' on 'Blob': parameter 3",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].slice(...args));
        }
        get size() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get size' called on an object that is not a valid instance of Blob.");
          }
          return esValue[implSymbol]["size"];
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get type' called on an object that is not a valid instance of Blob.");
          }
          return esValue[implSymbol]["type"];
        }
      }
      Object.defineProperties(Blob2.prototype, {
        slice: { enumerable: true },
        size: { enumerable: true },
        type: { enumerable: true },
        [Symbol.toStringTag]: { value: "Blob", configurable: true }
      });
      ctorRegistry[interfaceName] = Blob2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Blob2
      });
    };
    var Impl = require_Blob_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/binary-data.js
var require_binary_data = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/binary-data.js"(exports) {
    "use strict";
    exports.copyToArrayBufferInNewRealm = (nodejsBuffer, newRealm) => {
      const newAB = new newRealm.ArrayBuffer(nodejsBuffer.byteLength);
      const view = new Uint8Array(newAB);
      view.set(nodejsBuffer);
      return newAB;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/file-api/FileReader-impl.js
var require_FileReader_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/file-api/FileReader-impl.js"(exports) {
    "use strict";
    var whatwgEncoding = require_whatwg_encoding();
    var MIMEType = require_mime_type();
    var DOMException2 = require_DOMException();
    var EventTargetImpl = require_EventTarget_impl().implementation;
    var ProgressEvent = require_ProgressEvent();
    var { setupForSimpleEventAccessors } = require_create_event_accessor();
    var { fireAnEvent } = require_events4();
    var { copyToArrayBufferInNewRealm } = require_binary_data();
    var READY_STATES = Object.freeze({
      EMPTY: 0,
      LOADING: 1,
      DONE: 2
    });
    var events2 = ["loadstart", "progress", "load", "abort", "error", "loadend"];
    var FileReaderImpl = class extends EventTargetImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this.error = null;
        this.readyState = READY_STATES.EMPTY;
        this.result = null;
        this._globalObject = globalObject;
        this._ownerDocument = globalObject.document;
        this._terminated = false;
      }
      readAsArrayBuffer(file) {
        this._readFile(file, "buffer");
      }
      readAsBinaryString(file) {
        this._readFile(file, "binaryString");
      }
      readAsDataURL(file) {
        this._readFile(file, "dataURL");
      }
      readAsText(file, encoding) {
        this._readFile(file, "text", whatwgEncoding.labelToName(encoding) || "UTF-8");
      }
      abort() {
        if (this.readyState === READY_STATES.EMPTY || this.readyState === READY_STATES.DONE) {
          this.result = null;
          return;
        }
        if (this.readyState === READY_STATES.LOADING) {
          this.readyState = READY_STATES.DONE;
          this.result = null;
        }
        this._terminated = true;
        this._fireProgressEvent("abort");
        this._fireProgressEvent("loadend");
      }
      _fireProgressEvent(name, props) {
        fireAnEvent(name, this, ProgressEvent, props);
      }
      _readFile(file, format, encoding) {
        if (this.readyState === READY_STATES.LOADING) {
          throw DOMException2.create(this._globalObject, [
            "The object is in an invalid state.",
            "InvalidStateError"
          ]);
        }
        this.readyState = READY_STATES.LOADING;
        setImmediate(() => {
          if (this._terminated) {
            this._terminated = false;
            return;
          }
          this._fireProgressEvent("loadstart");
          let data2 = file._buffer;
          if (!data2) {
            data2 = Buffer.alloc(0);
          }
          this._fireProgressEvent("progress", {
            lengthComputable: !isNaN(file.size),
            total: file.size,
            loaded: data2.length
          });
          setImmediate(() => {
            if (this._terminated) {
              this._terminated = false;
              return;
            }
            switch (format) {
              case "binaryString": {
                this.result = data2.toString("binary");
                break;
              }
              case "dataURL": {
                const contentType = MIMEType.parse(file.type) || "application/octet-stream";
                this.result = `data:${contentType};base64,${data2.toString("base64")}`;
                break;
              }
              case "text": {
                this.result = whatwgEncoding.decode(data2, encoding);
                break;
              }
              case "buffer":
              default: {
                this.result = copyToArrayBufferInNewRealm(data2, this._globalObject);
                break;
              }
            }
            this.readyState = READY_STATES.DONE;
            this._fireProgressEvent("load");
            this._fireProgressEvent("loadend");
          });
        });
      }
    };
    setupForSimpleEventAccessors(FileReaderImpl.prototype, events2);
    exports.implementation = FileReaderImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js
var require_FileReader = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Blob2 = require_Blob();
    var EventHandlerNonNull = require_EventHandlerNonNull();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var EventTarget2 = require_EventTarget();
    var interfaceName = "FileReader";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'FileReader'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["FileReader"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      EventTarget2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class FileReader extends globalObject.EventTarget {
        constructor() {
          return exports.setup(Object.create(new.target.prototype), globalObject, void 0);
        }
        readAsArrayBuffer(blob) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'readAsArrayBuffer' called on an object that is not a valid instance of FileReader."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'readAsArrayBuffer' on 'FileReader': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Blob2.convert(globalObject, curArg, {
              context: "Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].readAsArrayBuffer(...args);
        }
        readAsBinaryString(blob) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'readAsBinaryString' called on an object that is not a valid instance of FileReader."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'readAsBinaryString' on 'FileReader': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Blob2.convert(globalObject, curArg, {
              context: "Failed to execute 'readAsBinaryString' on 'FileReader': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].readAsBinaryString(...args);
        }
        readAsText(blob) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'readAsText' called on an object that is not a valid instance of FileReader."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'readAsText' on 'FileReader': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Blob2.convert(globalObject, curArg, {
              context: "Failed to execute 'readAsText' on 'FileReader': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'readAsText' on 'FileReader': parameter 2",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].readAsText(...args);
        }
        readAsDataURL(blob) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'readAsDataURL' called on an object that is not a valid instance of FileReader."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'readAsDataURL' on 'FileReader': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Blob2.convert(globalObject, curArg, {
              context: "Failed to execute 'readAsDataURL' on 'FileReader': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].readAsDataURL(...args);
        }
        abort() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'abort' called on an object that is not a valid instance of FileReader.");
          }
          return esValue[implSymbol].abort();
        }
        get readyState() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get readyState' called on an object that is not a valid instance of FileReader."
            );
          }
          return esValue[implSymbol]["readyState"];
        }
        get result() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get result' called on an object that is not a valid instance of FileReader."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["result"]);
        }
        get error() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get error' called on an object that is not a valid instance of FileReader.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["error"]);
        }
        get onloadstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onloadstart' called on an object that is not a valid instance of FileReader."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onloadstart"]);
        }
        set onloadstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onloadstart' called on an object that is not a valid instance of FileReader."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onloadstart' property on 'FileReader': The provided value"
            });
          }
          esValue[implSymbol]["onloadstart"] = V;
        }
        get onprogress() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onprogress' called on an object that is not a valid instance of FileReader."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onprogress"]);
        }
        set onprogress(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onprogress' called on an object that is not a valid instance of FileReader."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onprogress' property on 'FileReader': The provided value"
            });
          }
          esValue[implSymbol]["onprogress"] = V;
        }
        get onload() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onload' called on an object that is not a valid instance of FileReader."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onload"]);
        }
        set onload(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onload' called on an object that is not a valid instance of FileReader."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onload' property on 'FileReader': The provided value"
            });
          }
          esValue[implSymbol]["onload"] = V;
        }
        get onabort() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onabort' called on an object that is not a valid instance of FileReader."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onabort"]);
        }
        set onabort(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onabort' called on an object that is not a valid instance of FileReader."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onabort' property on 'FileReader': The provided value"
            });
          }
          esValue[implSymbol]["onabort"] = V;
        }
        get onerror() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onerror' called on an object that is not a valid instance of FileReader."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onerror"]);
        }
        set onerror(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onerror' called on an object that is not a valid instance of FileReader."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onerror' property on 'FileReader': The provided value"
            });
          }
          esValue[implSymbol]["onerror"] = V;
        }
        get onloadend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onloadend' called on an object that is not a valid instance of FileReader."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onloadend"]);
        }
        set onloadend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onloadend' called on an object that is not a valid instance of FileReader."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onloadend' property on 'FileReader': The provided value"
            });
          }
          esValue[implSymbol]["onloadend"] = V;
        }
      }
      Object.defineProperties(FileReader.prototype, {
        readAsArrayBuffer: { enumerable: true },
        readAsBinaryString: { enumerable: true },
        readAsText: { enumerable: true },
        readAsDataURL: { enumerable: true },
        abort: { enumerable: true },
        readyState: { enumerable: true },
        result: { enumerable: true },
        error: { enumerable: true },
        onloadstart: { enumerable: true },
        onprogress: { enumerable: true },
        onload: { enumerable: true },
        onabort: { enumerable: true },
        onerror: { enumerable: true },
        onloadend: { enumerable: true },
        [Symbol.toStringTag]: { value: "FileReader", configurable: true },
        EMPTY: { value: 0, enumerable: true },
        LOADING: { value: 1, enumerable: true },
        DONE: { value: 2, enumerable: true }
      });
      Object.defineProperties(FileReader, {
        EMPTY: { value: 0, enumerable: true },
        LOADING: { value: 1, enumerable: true },
        DONE: { value: 2, enumerable: true }
      });
      ctorRegistry[interfaceName] = FileReader;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: FileReader
      });
    };
    var Impl = require_FileReader_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js
var require_FilePropertyBag = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var BlobPropertyBag = require_BlobPropertyBag();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      BlobPropertyBag._convertInherit(globalObject, obj, ret, { context });
      {
        const key = "lastModified";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["long long"](value2, {
            context: context + " has member 'lastModified' that",
            globals: globalObject
          });
          ret[key] = value2;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/file-api/File-impl.js
var require_File_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/file-api/File-impl.js"(exports) {
    "use strict";
    var BlobImpl = require_Blob_impl().implementation;
    exports.implementation = class FileImpl extends BlobImpl {
      constructor(globalObject, [fileBits, fileName, options], privateData) {
        super(globalObject, [fileBits, options], privateData);
        this.name = fileName;
        this.lastModified = "lastModified" in options ? options.lastModified : Date.now();
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/File.js
var require_File = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/File.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Blob2 = require_Blob();
    var FilePropertyBag = require_FilePropertyBag();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "File";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'File'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["File"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      Blob2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class File2 extends globalObject.Blob {
        constructor(fileBits, fileName) {
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (!utils2.isObject(curArg)) {
              throw new globalObject.TypeError("Failed to construct 'File': parameter 1 is not an iterable object.");
            } else {
              const V = [];
              const tmp = curArg;
              for (let nextItem of tmp) {
                if (Blob2.is(nextItem)) {
                  nextItem = utils2.implForWrapper(nextItem);
                } else if (utils2.isArrayBuffer(nextItem)) {
                } else if (ArrayBuffer.isView(nextItem)) {
                } else {
                  nextItem = conversions["USVString"](nextItem, {
                    context: "Failed to construct 'File': parameter 1's element",
                    globals: globalObject
                  });
                }
                V.push(nextItem);
              }
              curArg = V;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to construct 'File': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            curArg = FilePropertyBag.convert(globalObject, curArg, { context: "Failed to construct 'File': parameter 3" });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get name() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get name' called on an object that is not a valid instance of File.");
          }
          return esValue[implSymbol]["name"];
        }
        get lastModified() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get lastModified' called on an object that is not a valid instance of File."
            );
          }
          return esValue[implSymbol]["lastModified"];
        }
      }
      Object.defineProperties(File2.prototype, {
        name: { enumerable: true },
        lastModified: { enumerable: true },
        [Symbol.toStringTag]: { value: "File", configurable: true }
      });
      ctorRegistry[interfaceName] = File2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: File2
      });
    };
    var Impl = require_File_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SupportedType.js
var require_SupportedType = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/SupportedType.js"(exports) {
    "use strict";
    var enumerationValues = /* @__PURE__ */ new Set([
      "text/html",
      "text/xml",
      "application/xml",
      "application/xhtml+xml",
      "image/svg+xml"
    ]);
    exports.enumerationValues = enumerationValues;
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      const string = `${value2}`;
      if (!enumerationValues.has(string)) {
        throw new globalObject.TypeError(`${context} '${string}' is not a valid enumeration value for SupportedType`);
      }
      return string;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/domparsing/DOMParser-impl.js
var require_DOMParser_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/domparsing/DOMParser-impl.js"(exports) {
    "use strict";
    var { parseIntoDocument } = require_parser3();
    var idlUtils = require_utils16();
    var Document3 = require_Document();
    exports.implementation = class DOMParserImpl {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      parseFromString(string, contentType) {
        switch (String(contentType)) {
          case "text/html": {
            return this.createScriptingDisabledDocument("html", contentType, string);
          }
          case "text/xml":
          case "application/xml":
          case "application/xhtml+xml":
          case "image/svg+xml": {
            try {
              return this.createScriptingDisabledDocument("xml", contentType, string);
            } catch (error) {
              const document2 = this.createScriptingDisabledDocument("xml", contentType);
              const element = document2.createElementNS("http://www.mozilla.org/newlayout/xml/parsererror.xml", "parsererror");
              element.textContent = error.message;
              document2.appendChild(element);
              return document2;
            }
          }
          default:
            throw new TypeError("Invalid contentType");
        }
      }
      createScriptingDisabledDocument(parsingMode, contentType, string) {
        const document2 = Document3.createImpl(this._globalObject, [], {
          options: {
            parsingMode,
            encoding: "UTF-8",
            contentType,
            readyState: "complete",
            scriptingDisabled: true,
            url: idlUtils.implForWrapper(this._globalObject._document).URL
          }
        });
        if (string !== void 0) {
          parseIntoDocument(string, document2);
        }
        return document2;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js
var require_DOMParser = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var SupportedType = require_SupportedType();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "DOMParser";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'DOMParser'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["DOMParser"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class DOMParser {
        constructor() {
          return exports.setup(Object.create(new.target.prototype), globalObject, void 0);
        }
        parseFromString(str, type) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'parseFromString' called on an object that is not a valid instance of DOMParser."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'parseFromString' on 'DOMParser': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'parseFromString' on 'DOMParser': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = SupportedType.convert(globalObject, curArg, {
              context: "Failed to execute 'parseFromString' on 'DOMParser': parameter 2"
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].parseFromString(...args));
        }
      }
      Object.defineProperties(DOMParser.prototype, {
        parseFromString: { enumerable: true },
        [Symbol.toStringTag]: { value: "DOMParser", configurable: true }
      });
      ctorRegistry[interfaceName] = DOMParser;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: DOMParser
      });
    };
    var Impl = require_DOMParser_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/domparsing/XMLSerializer-impl.js
var require_XMLSerializer_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/domparsing/XMLSerializer-impl.js"(exports) {
    "use strict";
    var serialize = require_serialize();
    var DOMException2 = require_DOMException();
    var utils2 = require_utils16();
    exports.implementation = class XMLSerializerImpl {
      constructor(globalObject) {
        this._globalObject = globalObject;
      }
      serializeToString(root) {
        try {
          return serialize(utils2.wrapperForImpl(root), { requireWellFormed: false });
        } catch (e4) {
          throw DOMException2.create(this._globalObject, [e4.message, "InvalidStateError"]);
        }
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/XMLSerializer.js
var require_XMLSerializer = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/XMLSerializer.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Node = require_Node();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "XMLSerializer";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'XMLSerializer'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["XMLSerializer"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class XMLSerializer {
        constructor() {
          return exports.setup(Object.create(new.target.prototype), globalObject, void 0);
        }
        serializeToString(root) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'serializeToString' called on an object that is not a valid instance of XMLSerializer."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'serializeToString' on 'XMLSerializer': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'serializeToString' on 'XMLSerializer': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].serializeToString(...args);
        }
      }
      Object.defineProperties(XMLSerializer.prototype, {
        serializeToString: { enumerable: true },
        [Symbol.toStringTag]: { value: "XMLSerializer", configurable: true }
      });
      ctorRegistry[interfaceName] = XMLSerializer;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: XMLSerializer
      });
    };
    var Impl = require_XMLSerializer_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Function.js
var require_Function2 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Function.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (typeof value2 !== "function") {
        throw new globalObject.TypeError(context + " is not a function");
      }
      function invokeTheCallbackFunction(...args) {
        const thisArg = utils2.tryWrapperForImpl(this);
        let callResult;
        for (let i5 = 0; i5 < args.length; i5++) {
          args[i5] = utils2.tryWrapperForImpl(args[i5]);
        }
        callResult = Reflect.apply(value2, thisArg, args);
        callResult = conversions["any"](callResult, { context, globals: globalObject });
        return callResult;
      }
      invokeTheCallbackFunction.construct = (...args) => {
        for (let i5 = 0; i5 < args.length; i5++) {
          args[i5] = utils2.tryWrapperForImpl(args[i5]);
        }
        let callResult = Reflect.construct(value2, args);
        callResult = conversions["any"](callResult, { context, globals: globalObject });
        return callResult;
      };
      invokeTheCallbackFunction[utils2.wrapperSymbol] = value2;
      invokeTheCallbackFunction.objectReference = value2;
      return invokeTheCallbackFunction;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/xhr/FormData-impl.js
var require_FormData_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/xhr/FormData-impl.js"(exports) {
    "use strict";
    var DOMException2 = require_DOMException();
    var idlUtils = require_utils16();
    var { closest } = require_traversal2();
    var { isDisabled, isButton, isSubmitButton } = require_form_controls();
    var Blob2 = require_Blob();
    var File2 = require_File();
    var conversions = require_lib20();
    exports.implementation = class FormDataImpl {
      constructor(globalObject, args) {
        this._globalObject = globalObject;
        this._entries = [];
        if (args[0] !== void 0) {
          const [form, submitter = null] = args;
          if (submitter !== null) {
            if (!isSubmitButton(submitter)) {
              throw new TypeError("The specified element is not a submit button");
            }
            if (submitter.form !== form) {
              throw DOMException2.create(this._globalObject, [
                "The specified element is not owned by this form element",
                "NotFoundError"
              ]);
            }
          }
          this._entries = constructTheEntryList(form, submitter);
        }
      }
      append(name, value2, filename) {
        const entry = createAnEntry(name, value2, filename);
        this._entries.push(entry);
      }
      delete(name) {
        this._entries = this._entries.filter((entry) => entry.name !== name);
      }
      get(name) {
        const foundEntry = this._entries.find((entry) => entry.name === name);
        return foundEntry !== void 0 ? idlUtils.tryWrapperForImpl(foundEntry.value) : null;
      }
      getAll(name) {
        return this._entries.filter((entry) => entry.name === name).map((entry) => idlUtils.tryWrapperForImpl(entry.value));
      }
      has(name) {
        return this._entries.findIndex((entry) => entry.name === name) !== -1;
      }
      set(name, value2, filename) {
        const entry = createAnEntry(name, value2, filename);
        const foundIndex = this._entries.findIndex((e4) => e4.name === name);
        if (foundIndex !== -1) {
          this._entries[foundIndex] = entry;
          this._entries = this._entries.filter((e4, i5) => e4.name !== name || i5 === foundIndex);
        } else {
          this._entries.push(entry);
        }
      }
      *[Symbol.iterator]() {
        for (const entry of this._entries) {
          yield [entry.name, idlUtils.tryWrapperForImpl(entry.value)];
        }
      }
    };
    function createAnEntry(name, value2, filename) {
      const entry = { name };
      if (Blob2.isImpl(value2) && !File2.isImpl(value2)) {
        const oldValue = value2;
        value2 = File2.createImpl(value2._globalObject, [
          [],
          "blob",
          { type: oldValue.type }
        ]);
        value2._buffer = oldValue._buffer;
      }
      if (File2.isImpl(value2) && filename !== void 0) {
        const oldValue = value2;
        value2 = File2.createImpl(value2._globalObject, [
          [],
          filename,
          // spec makes no mention of `lastModified`; assume it is inherited
          // (Chrome's behavior)
          { type: oldValue.type, lastModified: oldValue.lastModified }
        ]);
        value2._buffer = oldValue._buffer;
      }
      entry.value = value2;
      return entry;
    }
    function constructTheEntryList(form, submitter) {
      const controls = form._getSubmittableElementNodes();
      const entryList = [];
      for (const field of controls) {
        if (closest(field, "datalist") !== null) {
          continue;
        }
        if (isDisabled(field)) {
          continue;
        }
        if (isButton(field) && field !== submitter) {
          continue;
        }
        if (field.type === "checkbox" && field._checkedness === false) {
          continue;
        }
        if (field.type === "radio" && field._checkedness === false) {
          continue;
        }
        if (field.localName === "object") {
          continue;
        }
        const name = field.getAttributeNS(null, "name");
        if (field.localName === "input" && field.type === "image") {
          const prefix = name ? `${name}.` : "";
          const coordinate = field._selectedCoordinate ?? { x: 0, y: 0 };
          appendAnEntry(entryList, `${prefix}x`, coordinate.x);
          appendAnEntry(entryList, `${prefix}y`, coordinate.y);
          continue;
        }
        if (name === null || name === "") {
          continue;
        }
        if (field.localName === "select") {
          for (const option of field.options) {
            if (option._selectedness === true && !isDisabled(field)) {
              appendAnEntry(entryList, name, option._getValue());
            }
          }
        } else if (field.localName === "input" && (field.type === "checkbox" || field.type === "radio")) {
          const value2 = field.hasAttributeNS(null, "value") ? field.getAttributeNS(null, "value") : "on";
          appendAnEntry(entryList, name, value2);
        } else if (field.type === "file") {
          if (field.files.length === 0) {
            const value2 = File2.createImpl(form._globalObject, [[], "", { type: "application/octet-stream" }]);
            appendAnEntry(entryList, name, value2);
          } else {
            for (let i5 = 0; i5 < field.files.length; ++i5) {
              appendAnEntry(entryList, name, field.files.item(i5));
            }
          }
        } else {
          appendAnEntry(entryList, name, field._getValue());
        }
        const dirname = field.getAttributeNS(null, "dirname");
        if (dirname !== null && dirname !== "") {
          const dir = "ltr";
          appendAnEntry(entryList, dirname, dir);
        }
      }
      return entryList;
    }
    function appendAnEntry(entryList, name, value2) {
      name = conversions.USVString(name);
      if (!File2.isImpl(value2)) {
        value2 = conversions.USVString(value2);
      }
      const entry = createAnEntry(name, value2);
      entryList.push(entry);
    }
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/FormData.js
var require_FormData = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/FormData.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var HTMLFormElement = require_HTMLFormElement();
    var HTMLElement2 = require_HTMLElement();
    var Blob2 = require_Blob();
    var Function2 = require_Function2();
    var newObjectInRealm = utils2.newObjectInRealm;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "FormData";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'FormData'.`);
    };
    exports.createDefaultIterator = (globalObject, target, kind) => {
      const ctorRegistry = globalObject[ctorRegistrySymbol];
      const iteratorPrototype = ctorRegistry["FormData Iterator"];
      const iterator2 = Object.create(iteratorPrototype);
      Object.defineProperty(iterator2, utils2.iterInternalSymbol, {
        value: { target, kind, index: 0 },
        configurable: true
      });
      return iterator2;
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["FormData"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class FormData3 {
        constructor() {
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = HTMLFormElement.convert(globalObject, curArg, {
                context: "Failed to construct 'FormData': parameter 1"
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                curArg = HTMLElement2.convert(globalObject, curArg, {
                  context: "Failed to construct 'FormData': parameter 2"
                });
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        append(name, value2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'append' called on an object that is not a valid instance of FormData.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'append' on 'FormData': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          switch (arguments.length) {
            case 2:
              {
                let curArg = arguments[0];
                curArg = conversions["USVString"](curArg, {
                  context: "Failed to execute 'append' on 'FormData': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[1];
                if (Blob2.is(curArg)) {
                  {
                    let curArg2 = arguments[1];
                    curArg2 = Blob2.convert(globalObject, curArg2, {
                      context: "Failed to execute 'append' on 'FormData': parameter 2"
                    });
                    args.push(curArg2);
                  }
                } else {
                  {
                    let curArg2 = arguments[1];
                    curArg2 = conversions["USVString"](curArg2, {
                      context: "Failed to execute 'append' on 'FormData': parameter 2",
                      globals: globalObject
                    });
                    args.push(curArg2);
                  }
                }
              }
              break;
            default:
              {
                let curArg = arguments[0];
                curArg = conversions["USVString"](curArg, {
                  context: "Failed to execute 'append' on 'FormData': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[1];
                curArg = Blob2.convert(globalObject, curArg, {
                  context: "Failed to execute 'append' on 'FormData': parameter 2"
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[2];
                if (curArg !== void 0) {
                  curArg = conversions["USVString"](curArg, {
                    context: "Failed to execute 'append' on 'FormData': parameter 3",
                    globals: globalObject
                  });
                }
                args.push(curArg);
              }
          }
          return esValue[implSymbol].append(...args);
        }
        delete(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'delete' called on an object that is not a valid instance of FormData.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'delete' on 'FormData': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'delete' on 'FormData': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].delete(...args);
        }
        get(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get' called on an object that is not a valid instance of FormData.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'get' on 'FormData': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'get' on 'FormData': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].get(...args));
        }
        getAll(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'getAll' called on an object that is not a valid instance of FormData.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getAll' on 'FormData': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'getAll' on 'FormData': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getAll(...args));
        }
        has(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'has' called on an object that is not a valid instance of FormData.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'has' on 'FormData': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to execute 'has' on 'FormData': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].has(...args);
        }
        set(name, value2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set' called on an object that is not a valid instance of FormData.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'set' on 'FormData': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          switch (arguments.length) {
            case 2:
              {
                let curArg = arguments[0];
                curArg = conversions["USVString"](curArg, {
                  context: "Failed to execute 'set' on 'FormData': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[1];
                if (Blob2.is(curArg)) {
                  {
                    let curArg2 = arguments[1];
                    curArg2 = Blob2.convert(globalObject, curArg2, {
                      context: "Failed to execute 'set' on 'FormData': parameter 2"
                    });
                    args.push(curArg2);
                  }
                } else {
                  {
                    let curArg2 = arguments[1];
                    curArg2 = conversions["USVString"](curArg2, {
                      context: "Failed to execute 'set' on 'FormData': parameter 2",
                      globals: globalObject
                    });
                    args.push(curArg2);
                  }
                }
              }
              break;
            default:
              {
                let curArg = arguments[0];
                curArg = conversions["USVString"](curArg, {
                  context: "Failed to execute 'set' on 'FormData': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[1];
                curArg = Blob2.convert(globalObject, curArg, {
                  context: "Failed to execute 'set' on 'FormData': parameter 2"
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[2];
                if (curArg !== void 0) {
                  curArg = conversions["USVString"](curArg, {
                    context: "Failed to execute 'set' on 'FormData': parameter 3",
                    globals: globalObject
                  });
                }
                args.push(curArg);
              }
          }
          return esValue[implSymbol].set(...args);
        }
        keys() {
          if (!exports.is(this)) {
            throw new globalObject.TypeError("'keys' called on an object that is not a valid instance of FormData.");
          }
          return exports.createDefaultIterator(globalObject, this, "key");
        }
        values() {
          if (!exports.is(this)) {
            throw new globalObject.TypeError("'values' called on an object that is not a valid instance of FormData.");
          }
          return exports.createDefaultIterator(globalObject, this, "value");
        }
        entries() {
          if (!exports.is(this)) {
            throw new globalObject.TypeError("'entries' called on an object that is not a valid instance of FormData.");
          }
          return exports.createDefaultIterator(globalObject, this, "key+value");
        }
        forEach(callback) {
          if (!exports.is(this)) {
            throw new globalObject.TypeError("'forEach' called on an object that is not a valid instance of FormData.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              "Failed to execute 'forEach' on 'iterable': 1 argument required, but only 0 present."
            );
          }
          callback = Function2.convert(globalObject, callback, {
            context: "Failed to execute 'forEach' on 'iterable': The callback provided as parameter 1"
          });
          const thisArg = arguments[1];
          let pairs2 = Array.from(this[implSymbol]);
          let i5 = 0;
          while (i5 < pairs2.length) {
            const [key, value2] = pairs2[i5].map(utils2.tryWrapperForImpl);
            callback.call(thisArg, value2, key, this);
            pairs2 = Array.from(this[implSymbol]);
            i5++;
          }
        }
      }
      Object.defineProperties(FormData3.prototype, {
        append: { enumerable: true },
        delete: { enumerable: true },
        get: { enumerable: true },
        getAll: { enumerable: true },
        has: { enumerable: true },
        set: { enumerable: true },
        keys: { enumerable: true },
        values: { enumerable: true },
        entries: { enumerable: true },
        forEach: { enumerable: true },
        [Symbol.toStringTag]: { value: "FormData", configurable: true },
        [Symbol.iterator]: { value: FormData3.prototype.entries, configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = FormData3;
      ctorRegistry["FormData Iterator"] = Object.create(ctorRegistry["%IteratorPrototype%"], {
        [Symbol.toStringTag]: {
          configurable: true,
          value: "FormData Iterator"
        }
      });
      utils2.define(ctorRegistry["FormData Iterator"], {
        next() {
          const internal = this && this[utils2.iterInternalSymbol];
          if (!internal) {
            throw new globalObject.TypeError("next() called on a value that is not a FormData iterator object");
          }
          const { target, kind, index: index2 } = internal;
          const values = Array.from(target[implSymbol]);
          const len = values.length;
          if (index2 >= len) {
            return newObjectInRealm(globalObject, { value: void 0, done: true });
          }
          const pair = values[index2];
          internal.index = index2 + 1;
          return newObjectInRealm(globalObject, utils2.iteratorResult(pair.map(utils2.tryWrapperForImpl), kind));
        }
      });
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: FormData3
      });
    };
    var Impl = require_FormData_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestEventTarget-impl.js
var require_XMLHttpRequestEventTarget_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestEventTarget-impl.js"(exports) {
    "use strict";
    var EventTargetImpl = require_EventTarget_impl().implementation;
    var idlUtils = require_utils16();
    var { setupForSimpleEventAccessors } = require_create_event_accessor();
    var events2 = ["loadstart", "progress", "abort", "error", "load", "timeout", "loadend"];
    var XMLHttpRequestEventTargetImpl = class extends EventTargetImpl {
      // TODO: remove this when we fix EventTargetImpl to use this._globalObject directly instead of using _ownerDocument.
      // https://github.com/jsdom/jsdom/issues/2780
      get _ownerDocument() {
        return idlUtils.implForWrapper(this._globalObject._document);
      }
    };
    setupForSimpleEventAccessors(XMLHttpRequestEventTargetImpl.prototype, events2);
    exports.implementation = XMLHttpRequestEventTargetImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestEventTarget.js
var require_XMLHttpRequestEventTarget = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestEventTarget.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var EventHandlerNonNull = require_EventHandlerNonNull();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var EventTarget2 = require_EventTarget();
    var interfaceName = "XMLHttpRequestEventTarget";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'XMLHttpRequestEventTarget'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["XMLHttpRequestEventTarget"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      EventTarget2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "DedicatedWorker", "SharedWorker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class XMLHttpRequestEventTarget extends globalObject.EventTarget {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        get onloadstart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onloadstart' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onloadstart"]);
        }
        set onloadstart(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onloadstart' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onloadstart' property on 'XMLHttpRequestEventTarget': The provided value"
            });
          }
          esValue[implSymbol]["onloadstart"] = V;
        }
        get onprogress() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onprogress' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onprogress"]);
        }
        set onprogress(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onprogress' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onprogress' property on 'XMLHttpRequestEventTarget': The provided value"
            });
          }
          esValue[implSymbol]["onprogress"] = V;
        }
        get onabort() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onabort' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onabort"]);
        }
        set onabort(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onabort' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onabort' property on 'XMLHttpRequestEventTarget': The provided value"
            });
          }
          esValue[implSymbol]["onabort"] = V;
        }
        get onerror() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onerror' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onerror"]);
        }
        set onerror(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onerror' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onerror' property on 'XMLHttpRequestEventTarget': The provided value"
            });
          }
          esValue[implSymbol]["onerror"] = V;
        }
        get onload() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onload' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onload"]);
        }
        set onload(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onload' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onload' property on 'XMLHttpRequestEventTarget': The provided value"
            });
          }
          esValue[implSymbol]["onload"] = V;
        }
        get ontimeout() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get ontimeout' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["ontimeout"]);
        }
        set ontimeout(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set ontimeout' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'ontimeout' property on 'XMLHttpRequestEventTarget': The provided value"
            });
          }
          esValue[implSymbol]["ontimeout"] = V;
        }
        get onloadend() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onloadend' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onloadend"]);
        }
        set onloadend(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onloadend' called on an object that is not a valid instance of XMLHttpRequestEventTarget."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onloadend' property on 'XMLHttpRequestEventTarget': The provided value"
            });
          }
          esValue[implSymbol]["onloadend"] = V;
        }
      }
      Object.defineProperties(XMLHttpRequestEventTarget.prototype, {
        onloadstart: { enumerable: true },
        onprogress: { enumerable: true },
        onabort: { enumerable: true },
        onerror: { enumerable: true },
        onload: { enumerable: true },
        ontimeout: { enumerable: true },
        onloadend: { enumerable: true },
        [Symbol.toStringTag]: { value: "XMLHttpRequestEventTarget", configurable: true }
      });
      ctorRegistry[interfaceName] = XMLHttpRequestEventTarget;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: XMLHttpRequestEventTarget
      });
    };
    var Impl = require_XMLHttpRequestEventTarget_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestUpload-impl.js
var require_XMLHttpRequestUpload_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestUpload-impl.js"(exports) {
    "use strict";
    var XMLHttpRequestEventTargetImpl = require_XMLHttpRequestEventTarget_impl().implementation;
    exports.implementation = class XMLHttpRequestUploadImpl extends XMLHttpRequestEventTargetImpl {
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestUpload.js
var require_XMLHttpRequestUpload = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestUpload.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var XMLHttpRequestEventTarget = require_XMLHttpRequestEventTarget();
    var interfaceName = "XMLHttpRequestUpload";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'XMLHttpRequestUpload'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["XMLHttpRequestUpload"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      XMLHttpRequestEventTarget._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "DedicatedWorker", "SharedWorker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class XMLHttpRequestUpload extends globalObject.XMLHttpRequestEventTarget {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
      }
      Object.defineProperties(XMLHttpRequestUpload.prototype, {
        [Symbol.toStringTag]: { value: "XMLHttpRequestUpload", configurable: true }
      });
      ctorRegistry[interfaceName] = XMLHttpRequestUpload;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: XMLHttpRequestUpload
      });
    };
    var Impl = require_XMLHttpRequestUpload_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestResponseType.js
var require_XMLHttpRequestResponseType = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestResponseType.js"(exports) {
    "use strict";
    var enumerationValues = /* @__PURE__ */ new Set(["", "arraybuffer", "blob", "document", "json", "text"]);
    exports.enumerationValues = enumerationValues;
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      const string = `${value2}`;
      if (!enumerationValues.has(string)) {
        throw new globalObject.TypeError(
          `${context} '${string}' is not a valid enumeration value for XMLHttpRequestResponseType`
        );
      }
      return string;
    };
  }
});

// ../../node_modules/.pnpm/data-urls@5.0.0/node_modules/data-urls/lib/utils.js
var require_utils18 = __commonJS({
  "../../node_modules/.pnpm/data-urls@5.0.0/node_modules/data-urls/lib/utils.js"(exports) {
    "use strict";
    exports.stripLeadingAndTrailingASCIIWhitespace = (string) => {
      return string.replace(/^[ \t\n\f\r]+/u, "").replace(/[ \t\n\f\r]+$/u, "");
    };
    exports.isomorphicDecode = (input) => {
      return Array.from(input, (byte) => String.fromCodePoint(byte)).join("");
    };
    exports.forgivingBase64Decode = (data2) => {
      let asString;
      try {
        asString = atob(data2);
      } catch {
        return null;
      }
      return Uint8Array.from(asString, (c6) => c6.codePointAt(0));
    };
  }
});

// ../../node_modules/.pnpm/data-urls@5.0.0/node_modules/data-urls/lib/parser.js
var require_parser4 = __commonJS({
  "../../node_modules/.pnpm/data-urls@5.0.0/node_modules/data-urls/lib/parser.js"(exports, module) {
    "use strict";
    var MIMEType = require_mime_type();
    var { parseURL, serializeURL, percentDecodeString } = require_whatwg_url();
    var { stripLeadingAndTrailingASCIIWhitespace, isomorphicDecode, forgivingBase64Decode } = require_utils18();
    module.exports = (stringInput) => {
      const urlRecord = parseURL(stringInput);
      if (urlRecord === null) {
        return null;
      }
      return module.exports.fromURLRecord(urlRecord);
    };
    module.exports.fromURLRecord = (urlRecord) => {
      if (urlRecord.scheme !== "data") {
        return null;
      }
      const input = serializeURL(urlRecord, true).substring("data:".length);
      let position = 0;
      let mimeType = "";
      while (position < input.length && input[position] !== ",") {
        mimeType += input[position];
        ++position;
      }
      mimeType = stripLeadingAndTrailingASCIIWhitespace(mimeType);
      if (position === input.length) {
        return null;
      }
      ++position;
      const encodedBody = input.substring(position);
      let body = percentDecodeString(encodedBody);
      const mimeTypeBase64MatchResult = /(.*); *[Bb][Aa][Ss][Ee]64$/u.exec(mimeType);
      if (mimeTypeBase64MatchResult) {
        const stringBody = isomorphicDecode(body);
        body = forgivingBase64Decode(stringBody);
        if (body === null) {
          return null;
        }
        mimeType = mimeTypeBase64MatchResult[1];
      }
      if (mimeType.startsWith(";")) {
        mimeType = `text/plain${mimeType}`;
      }
      let mimeTypeRecord;
      try {
        mimeTypeRecord = new MIMEType(mimeType);
      } catch (e4) {
        mimeTypeRecord = new MIMEType("text/plain;charset=US-ASCII");
      }
      return {
        mimeType: mimeTypeRecord,
        body
      };
    };
  }
});

// ../../node_modules/.pnpm/http-proxy-agent@7.0.2/node_modules/http-proxy-agent/dist/index.js
var require_dist15 = __commonJS({
  "../../node_modules/.pnpm/http-proxy-agent@7.0.2/node_modules/http-proxy-agent/dist/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.HttpProxyAgent = void 0;
    var net2 = __importStar2(__require("net"));
    var tls3 = __importStar2(__require("tls"));
    var debug_1 = __importDefault2(require_src());
    var events_1 = __require("events");
    var agent_base_1 = require_dist6();
    var url_1 = __require("url");
    var debug2 = (0, debug_1.default)("http-proxy-agent");
    var HttpProxyAgent2 = class extends agent_base_1.Agent {
      constructor(proxy, opts2) {
        super(opts2);
        this.proxy = typeof proxy === "string" ? new url_1.URL(proxy) : proxy;
        this.proxyHeaders = opts2?.headers ?? {};
        debug2("Creating new HttpProxyAgent instance: %o", this.proxy.href);
        const host = (this.proxy.hostname || this.proxy.host).replace(/^\[|\]$/g, "");
        const port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === "https:" ? 443 : 80;
        this.connectOpts = {
          ...opts2 ? omit3(opts2, "headers") : null,
          host,
          port
        };
      }
      addRequest(req, opts2) {
        req._header = null;
        this.setRequestProps(req, opts2);
        super.addRequest(req, opts2);
      }
      setRequestProps(req, opts2) {
        const { proxy } = this;
        const protocol = opts2.secureEndpoint ? "https:" : "http:";
        const hostname = req.getHeader("host") || "localhost";
        const base = `${protocol}//${hostname}`;
        const url3 = new url_1.URL(req.path, base);
        if (opts2.port !== 80) {
          url3.port = String(opts2.port);
        }
        req.path = String(url3);
        const headers = typeof this.proxyHeaders === "function" ? this.proxyHeaders() : { ...this.proxyHeaders };
        if (proxy.username || proxy.password) {
          const auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`;
          headers["Proxy-Authorization"] = `Basic ${Buffer.from(auth).toString("base64")}`;
        }
        if (!headers["Proxy-Connection"]) {
          headers["Proxy-Connection"] = this.keepAlive ? "Keep-Alive" : "close";
        }
        for (const name of Object.keys(headers)) {
          const value2 = headers[name];
          if (value2) {
            req.setHeader(name, value2);
          }
        }
      }
      async connect(req, opts2) {
        req._header = null;
        if (!req.path.includes("://")) {
          this.setRequestProps(req, opts2);
        }
        let first;
        let endOfHeaders;
        debug2("Regenerating stored HTTP header string for request");
        req._implicitHeader();
        if (req.outputData && req.outputData.length > 0) {
          debug2("Patching connection write() output buffer with updated header");
          first = req.outputData[0].data;
          endOfHeaders = first.indexOf("\r\n\r\n") + 4;
          req.outputData[0].data = req._header + first.substring(endOfHeaders);
          debug2("Output buffer: %o", req.outputData[0].data);
        }
        let socket;
        if (this.proxy.protocol === "https:") {
          debug2("Creating `tls.Socket`: %o", this.connectOpts);
          socket = tls3.connect(this.connectOpts);
        } else {
          debug2("Creating `net.Socket`: %o", this.connectOpts);
          socket = net2.connect(this.connectOpts);
        }
        await (0, events_1.once)(socket, "connect");
        return socket;
      }
    };
    HttpProxyAgent2.protocols = ["http", "https"];
    exports.HttpProxyAgent = HttpProxyAgent2;
    function omit3(obj, ...keys2) {
      const ret = {};
      let key;
      for (key in obj) {
        if (!keys2.includes(key)) {
          ret[key] = obj[key];
        }
      }
      return ret;
    }
  }
});

// ../../node_modules/.pnpm/https-proxy-agent@7.0.6/node_modules/https-proxy-agent/dist/parse-proxy-response.js
var require_parse_proxy_response = __commonJS({
  "../../node_modules/.pnpm/https-proxy-agent@7.0.6/node_modules/https-proxy-agent/dist/parse-proxy-response.js"(exports) {
    "use strict";
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.parseProxyResponse = void 0;
    var debug_1 = __importDefault2(require_src());
    var debug2 = (0, debug_1.default)("https-proxy-agent:parse-proxy-response");
    function parseProxyResponse(socket) {
      return new Promise((resolve4, reject) => {
        let buffersLength = 0;
        const buffers = [];
        function read2() {
          const b3 = socket.read();
          if (b3)
            ondata(b3);
          else
            socket.once("readable", read2);
        }
        function cleanup() {
          socket.removeListener("end", onend);
          socket.removeListener("error", onerror);
          socket.removeListener("readable", read2);
        }
        function onend() {
          cleanup();
          debug2("onend");
          reject(new Error("Proxy connection ended before receiving CONNECT response"));
        }
        function onerror(err2) {
          cleanup();
          debug2("onerror %o", err2);
          reject(err2);
        }
        function ondata(b3) {
          buffers.push(b3);
          buffersLength += b3.length;
          const buffered = Buffer.concat(buffers, buffersLength);
          const endOfHeaders = buffered.indexOf("\r\n\r\n");
          if (endOfHeaders === -1) {
            debug2("have not received end of HTTP headers yet...");
            read2();
            return;
          }
          const headerParts = buffered.slice(0, endOfHeaders).toString("ascii").split("\r\n");
          const firstLine = headerParts.shift();
          if (!firstLine) {
            socket.destroy();
            return reject(new Error("No header received from proxy CONNECT response"));
          }
          const firstLineParts = firstLine.split(" ");
          const statusCode = +firstLineParts[1];
          const statusText = firstLineParts.slice(2).join(" ");
          const headers = {};
          for (const header of headerParts) {
            if (!header)
              continue;
            const firstColon = header.indexOf(":");
            if (firstColon === -1) {
              socket.destroy();
              return reject(new Error(`Invalid header from proxy CONNECT response: "${header}"`));
            }
            const key = header.slice(0, firstColon).toLowerCase();
            const value2 = header.slice(firstColon + 1).trimStart();
            const current = headers[key];
            if (typeof current === "string") {
              headers[key] = [current, value2];
            } else if (Array.isArray(current)) {
              current.push(value2);
            } else {
              headers[key] = value2;
            }
          }
          debug2("got proxy server response: %o %o", firstLine, headers);
          cleanup();
          resolve4({
            connect: {
              statusCode,
              statusText,
              headers
            },
            buffered
          });
        }
        socket.on("error", onerror);
        socket.on("end", onend);
        read2();
      });
    }
    exports.parseProxyResponse = parseProxyResponse;
  }
});

// ../../node_modules/.pnpm/https-proxy-agent@7.0.6/node_modules/https-proxy-agent/dist/index.js
var require_dist16 = __commonJS({
  "../../node_modules/.pnpm/https-proxy-agent@7.0.6/node_modules/https-proxy-agent/dist/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.HttpsProxyAgent = void 0;
    var net2 = __importStar2(__require("net"));
    var tls3 = __importStar2(__require("tls"));
    var assert_1 = __importDefault2(__require("assert"));
    var debug_1 = __importDefault2(require_src());
    var agent_base_1 = require_dist6();
    var url_1 = __require("url");
    var parse_proxy_response_1 = require_parse_proxy_response();
    var debug2 = (0, debug_1.default)("https-proxy-agent");
    var setServernameFromNonIpHost = (options) => {
      if (options.servername === void 0 && options.host && !net2.isIP(options.host)) {
        return {
          ...options,
          servername: options.host
        };
      }
      return options;
    };
    var HttpsProxyAgent2 = class extends agent_base_1.Agent {
      constructor(proxy, opts2) {
        super(opts2);
        this.options = { path: void 0 };
        this.proxy = typeof proxy === "string" ? new url_1.URL(proxy) : proxy;
        this.proxyHeaders = opts2?.headers ?? {};
        debug2("Creating new HttpsProxyAgent instance: %o", this.proxy.href);
        const host = (this.proxy.hostname || this.proxy.host).replace(/^\[|\]$/g, "");
        const port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === "https:" ? 443 : 80;
        this.connectOpts = {
          // Attempt to negotiate http/1.1 for proxy servers that support http/2
          ALPNProtocols: ["http/1.1"],
          ...opts2 ? omit3(opts2, "headers") : null,
          host,
          port
        };
      }
      /**
       * Called when the node-core HTTP client library is creating a
       * new HTTP request.
       */
      async connect(req, opts2) {
        const { proxy } = this;
        if (!opts2.host) {
          throw new TypeError('No "host" provided');
        }
        let socket;
        if (proxy.protocol === "https:") {
          debug2("Creating `tls.Socket`: %o", this.connectOpts);
          socket = tls3.connect(setServernameFromNonIpHost(this.connectOpts));
        } else {
          debug2("Creating `net.Socket`: %o", this.connectOpts);
          socket = net2.connect(this.connectOpts);
        }
        const headers = typeof this.proxyHeaders === "function" ? this.proxyHeaders() : { ...this.proxyHeaders };
        const host = net2.isIPv6(opts2.host) ? `[${opts2.host}]` : opts2.host;
        let payload = `CONNECT ${host}:${opts2.port} HTTP/1.1\r
`;
        if (proxy.username || proxy.password) {
          const auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`;
          headers["Proxy-Authorization"] = `Basic ${Buffer.from(auth).toString("base64")}`;
        }
        headers.Host = `${host}:${opts2.port}`;
        if (!headers["Proxy-Connection"]) {
          headers["Proxy-Connection"] = this.keepAlive ? "Keep-Alive" : "close";
        }
        for (const name of Object.keys(headers)) {
          payload += `${name}: ${headers[name]}\r
`;
        }
        const proxyResponsePromise = (0, parse_proxy_response_1.parseProxyResponse)(socket);
        socket.write(`${payload}\r
`);
        const { connect: connect2, buffered } = await proxyResponsePromise;
        req.emit("proxyConnect", connect2);
        this.emit("proxyConnect", connect2, req);
        if (connect2.statusCode === 200) {
          req.once("socket", resume);
          if (opts2.secureEndpoint) {
            debug2("Upgrading socket connection to TLS");
            return tls3.connect({
              ...omit3(setServernameFromNonIpHost(opts2), "host", "path", "port"),
              socket
            });
          }
          return socket;
        }
        socket.destroy();
        const fakeSocket = new net2.Socket({ writable: false });
        fakeSocket.readable = true;
        req.once("socket", (s4) => {
          debug2("Replaying proxy buffer for failed request");
          (0, assert_1.default)(s4.listenerCount("data") > 0);
          s4.push(buffered);
          s4.push(null);
        });
        return fakeSocket;
      }
    };
    HttpsProxyAgent2.protocols = ["http", "https"];
    exports.HttpsProxyAgent = HttpsProxyAgent2;
    function resume(socket) {
      socket.resume();
    }
    function omit3(obj, ...keys2) {
      const ret = {};
      let key;
      for (key in obj) {
        if (!keys2.includes(key)) {
          ret[key] = obj[key];
        }
      }
      return ret;
    }
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/agent-factory.js
var require_agent_factory = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/agent-factory.js"(exports, module) {
    "use strict";
    var http6 = __require("http");
    var https5 = __require("https");
    var { HttpProxyAgent: HttpProxyAgent2 } = require_dist15();
    var { HttpsProxyAgent: HttpsProxyAgent2 } = require_dist16();
    module.exports = function agentFactory(proxy, rejectUnauthorized) {
      const agentOpts = { keepAlive: true, rejectUnauthorized };
      if (proxy) {
        return { https: new HttpsProxyAgent2(proxy, agentOpts), http: new HttpProxyAgent2(proxy, agentOpts) };
      }
      return { http: new http6.Agent(agentOpts), https: new https5.Agent(agentOpts) };
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/http-request.js
var require_http_request = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/http-request.js"(exports, module) {
    "use strict";
    var http6 = __require("http");
    var https5 = __require("https");
    var { Writable } = __require("stream");
    var zlib6 = __require("zlib");
    var ver = process.version.replace("v", "").split(".");
    var majorNodeVersion = Number.parseInt(ver[0]);
    function abortRequest(clientRequest) {
      clientRequest.destroy();
      clientRequest.removeAllListeners();
      clientRequest.on("error", () => {
      });
    }
    module.exports = class Request extends Writable {
      constructor(url3, clientOptions, requestOptions) {
        super();
        Object.assign(this, clientOptions);
        this.currentURL = url3;
        this._requestOptions = requestOptions;
        this.headers = requestOptions.headers;
        this._ended = false;
        this._redirectCount = 0;
        this._requestBodyBuffers = [];
        this._bufferIndex = 0;
        this._performRequest();
      }
      abort() {
        abortRequest(this._currentRequest);
        this.emit("abort");
        this.removeAllListeners();
      }
      pipeRequest(form) {
        form.pipe(this._currentRequest);
      }
      write(data2, encoding) {
        if (data2.length > 0) {
          this._requestBodyBuffers.push({ data: data2, encoding });
          this._currentRequest.write(data2, encoding);
        }
      }
      end() {
        this.emit("request", this._currentRequest);
        this._ended = true;
        this._currentRequest.end();
      }
      setHeader(name, value2) {
        this.headers[name] = value2;
        this._currentRequest.setHeader(name, value2);
      }
      removeHeader(name) {
        delete this.headers[name];
        this._currentRequest.removeHeader(name);
      }
      // Without this method, the test send-redirect-infinite-sync will halt the test suite
      // TODO: investigate this further and ideally remove
      toJSON() {
        const { method, headers } = this._requestOptions;
        return { uri: new URL(this.currentURL), method, headers };
      }
      _writeNext(error) {
        if (this._currentRequest) {
          if (error) {
            this.emit("error", error);
          } else if (this._bufferIndex < this._requestBodyBuffers.length) {
            const buffer = this._requestBodyBuffers[this._bufferIndex++];
            if (!this._currentRequest.writableEnded) {
              this._currentRequest.write(
                buffer.data,
                buffer.encoding,
                this._writeNext.bind(this)
              );
            }
          } else if (this._ended) {
            this._currentRequest.end();
          }
        }
      }
      _performRequest() {
        const urlOptions = new URL(this.currentURL);
        const scheme = urlOptions.protocol;
        const requestOptions = {
          ...this._requestOptions,
          agent: this.agents[scheme.substring(0, scheme.length - 1)],
          protocol: urlOptions.protocol,
          hostname: urlOptions.hostname,
          port: urlOptions.port,
          path: urlOptions.pathname + urlOptions.search
        };
        const { request } = scheme === "https:" ? https5 : http6;
        this._currentRequest = request(requestOptions, (response) => {
          this._processResponse(response);
        });
        let cookies;
        if (this._redirectCount === 0) {
          this.originalCookieHeader = this.getHeader("Cookie");
        }
        if (this.cookieJar) {
          cookies = this.cookieJar.getCookieStringSync(this.currentURL);
        }
        if (cookies && cookies.length) {
          if (this.originalCookieHeader) {
            this.setHeader("Cookie", this.originalCookieHeader + "; " + cookies);
          } else {
            this.setHeader("Cookie", cookies);
          }
        }
        for (const event of ["connect", "error", "socket", "timeout"]) {
          this._currentRequest.on(event, (...args) => {
            this.emit(event, ...args);
          });
        }
        if (this._isRedirect) {
          this._bufferIndex = 0;
          this._writeNext();
        }
      }
      _processResponse(response) {
        const cookies = response.headers["set-cookie"];
        if (this.cookieJar && Array.isArray(cookies)) {
          try {
            cookies.forEach((cookie) => {
              this.cookieJar.setCookieSync(cookie, this.currentURL, { ignoreError: true });
            });
          } catch (e4) {
            this.emit("error", e4);
          }
        }
        const { statusCode } = response;
        const { location } = response.headers;
        const catchResErrors = (err2) => {
          if (!(majorNodeVersion >= 15 && err2.message === "aborted")) {
            this.emit("error", err2);
          }
        };
        response.on("error", catchResErrors);
        let redirectAddress = null;
        let resendWithAuth = false;
        if (typeof location === "string" && location.length && this.followRedirects && statusCode >= 300 && statusCode < 400) {
          redirectAddress = location;
        } else if (statusCode === 401 && /^Basic /i.test(response.headers["www-authenticate"] || "") && (this.user && this.user.length)) {
          this._requestOptions.auth = `${this.user}:${this.pass}`;
          resendWithAuth = true;
        }
        if (redirectAddress || resendWithAuth) {
          if (++this._redirectCount > 21) {
            const redirectError = new Error("Maximum number of redirects exceeded");
            redirectError.code = "ERR_TOO_MANY_REDIRECTS";
            this.emit("error", redirectError);
            return;
          }
          abortRequest(this._currentRequest);
          response.destroy();
          this._isRedirect = true;
          if ((statusCode === 301 || statusCode === 302) && this._requestOptions.method === "POST" || statusCode === 303 && !/^(?:GET|HEAD)$/.test(this._requestOptions.method)) {
            this._requestOptions.method = "GET";
            this._requestBodyBuffers = [];
          }
          let previousHostName = this._removeMatchingHeaders(/^host$/i);
          if (!previousHostName) {
            previousHostName = new URL(this.currentURL).hostname;
          }
          const previousURL = this.currentURL;
          if (!resendWithAuth) {
            let nextURL;
            try {
              nextURL = new URL(redirectAddress, this.currentURL);
            } catch (e4) {
              this.emit("error", e4);
              return;
            }
            if (nextURL.hostname !== previousHostName) {
              this._removeMatchingHeaders(/^authorization$/i);
            }
            this.currentURL = nextURL.toString();
          }
          this.headers.Referer = previousURL;
          this.emit("redirect", response, this.headers, this.currentURL);
          try {
            this._performRequest();
          } catch (cause) {
            this.emit("error", cause);
          }
        } else {
          let pipeline2 = response;
          const acceptEncoding = this.headers["Accept-Encoding"];
          const requestCompressed = typeof acceptEncoding === "string" && (acceptEncoding.includes("gzip") || acceptEncoding.includes("deflate"));
          if (requestCompressed && this._requestOptions.method !== "HEAD" && statusCode >= 200 && statusCode !== 204 && statusCode !== 304) {
            const zlibOptions2 = {
              flush: (zlib6.constants ?? zlib6).Z_SYNC_FLUSH,
              finishFlush: (zlib6.constants ?? zlib6).Z_SYNC_FLUSH
            };
            const contentEncoding = (response.headers["content-encoding"] || "identity").trim().toLowerCase();
            if (contentEncoding === "gzip") {
              pipeline2 = zlib6.createGunzip(zlibOptions2);
              response.pipe(pipeline2);
            } else if (contentEncoding === "deflate") {
              pipeline2 = zlib6.createInflate(zlibOptions2);
              response.pipe(pipeline2);
            }
          }
          pipeline2.removeAllListeners("error");
          this.emit("response", response, this.currentURL);
          pipeline2.on("data", (bytes) => this.emit("data", bytes));
          pipeline2.once("end", (bytes) => this.emit("end", bytes));
          pipeline2.on("error", catchResErrors);
          pipeline2.on("close", () => this.emit("close"));
          this._requestBodyBuffers = [];
        }
      }
      getHeader(key, value2) {
        if (this._currentRequest) {
          return this._currentRequest.getHeader(key, value2);
        }
        return null;
      }
      _removeMatchingHeaders(regex2) {
        let lastValue;
        for (const header in this.headers) {
          if (regex2.test(header)) {
            lastValue = this.headers[header];
            delete this.headers[header];
          }
        }
        return lastValue;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js
var require_xhr_utils = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js"(exports) {
    "use strict";
    var fs7 = __require("fs");
    var { EventEmitter: EventEmitter5 } = __require("events");
    var { URL: URL5 } = require_whatwg_url();
    var parseDataURL = require_parser4();
    var DOMException2 = require_DOMException();
    var ProgressEvent = require_ProgressEvent();
    var agentFactory = require_agent_factory();
    var Request3 = require_http_request();
    var { fireAnEvent } = require_events4();
    var headerListSeparatorRegexp = /,[ \t]*/;
    var simpleMethods = /* @__PURE__ */ new Set(["GET", "HEAD", "POST"]);
    var simpleHeaders = /* @__PURE__ */ new Set(["accept", "accept-language", "content-language", "content-type"]);
    var preflightHeaders = /* @__PURE__ */ new Set([
      "access-control-expose-headers",
      "access-control-allow-headers",
      "access-control-allow-credentials",
      "access-control-allow-origin"
    ]);
    var READY_STATES = exports.READY_STATES = Object.freeze({
      UNSENT: 0,
      OPENED: 1,
      HEADERS_RECEIVED: 2,
      LOADING: 3,
      DONE: 4
    });
    function getRequestHeader(requestHeaders, header) {
      const lcHeader = header.toLowerCase();
      const keys2 = Object.keys(requestHeaders);
      let n6 = keys2.length;
      while (n6--) {
        const key = keys2[n6];
        if (key.toLowerCase() === lcHeader) {
          return requestHeaders[key];
        }
      }
      return null;
    }
    function updateRequestHeader(requestHeaders, header, newValue) {
      const lcHeader = header.toLowerCase();
      const keys2 = Object.keys(requestHeaders);
      let n6 = keys2.length;
      while (n6--) {
        const key = keys2[n6];
        if (key.toLowerCase() === lcHeader) {
          requestHeaders[key] = newValue;
        }
      }
    }
    function dispatchError(xhr) {
      const errMessage = xhr.properties.error;
      requestErrorSteps(xhr, "error", DOMException2.create(xhr._globalObject, [errMessage, "NetworkError"]));
      if (xhr._ownerDocument) {
        const error = new Error(errMessage);
        error.type = "XMLHttpRequest";
        xhr._ownerDocument._defaultView._virtualConsole.emit("jsdomError", error);
      }
    }
    function validCORSHeaders(xhr, response, flag, properties, origin2) {
      const acaoStr = response.headers["access-control-allow-origin"];
      const acao = acaoStr ? acaoStr.trim() : null;
      if (acao !== "*" && acao !== origin2) {
        properties.error = "Cross origin " + origin2 + " forbidden";
        dispatchError(xhr);
        return false;
      }
      const acacStr = response.headers["access-control-allow-credentials"];
      const acac = acacStr ? acacStr.trim() : null;
      if (flag.withCredentials && acac !== "true") {
        properties.error = "Credentials forbidden";
        dispatchError(xhr);
        return false;
      }
      return true;
    }
    function validCORSPreflightHeaders(xhr, response, flag, properties) {
      if (!validCORSHeaders(xhr, response, flag, properties, properties.origin)) {
        return false;
      }
      const acahStr = response.headers["access-control-allow-headers"];
      const acah = new Set(acahStr ? acahStr.trim().toLowerCase().split(headerListSeparatorRegexp) : []);
      const forbiddenHeaders = acah.has("*") ? [] : Object.keys(flag.requestHeaders).filter((header) => {
        const lcHeader = header.toLowerCase();
        return !simpleHeaders.has(lcHeader) && !acah.has(lcHeader);
      });
      if (forbiddenHeaders.length > 0) {
        properties.error = "Headers " + forbiddenHeaders + " forbidden";
        dispatchError(xhr);
        return false;
      }
      return true;
    }
    function requestErrorSteps(xhr, event, exception) {
      const { flag, properties, upload } = xhr;
      xhr.readyState = READY_STATES.DONE;
      properties.send = false;
      setResponseToNetworkError(xhr);
      if (flag.synchronous) {
        throw exception;
      }
      fireAnEvent("readystatechange", xhr);
      if (!properties.uploadComplete) {
        properties.uploadComplete = true;
        if (properties.uploadListener) {
          fireAnEvent(event, upload, ProgressEvent, { loaded: 0, total: 0, lengthComputable: false });
          fireAnEvent("loadend", upload, ProgressEvent, { loaded: 0, total: 0, lengthComputable: false });
        }
      }
      fireAnEvent(event, xhr, ProgressEvent, { loaded: 0, total: 0, lengthComputable: false });
      fireAnEvent("loadend", xhr, ProgressEvent, { loaded: 0, total: 0, lengthComputable: false });
    }
    function setResponseToNetworkError(xhr) {
      const { properties } = xhr;
      properties.responseBuffer = properties.responseCache = properties.responseTextCache = properties.responseXMLCache = null;
      properties.responseHeaders = {};
      xhr.status = 0;
      xhr.statusText = "";
    }
    function createClient(xhr) {
      const { flag, properties } = xhr;
      const urlObj = new URL5(flag.uri);
      const uri = urlObj.href;
      const ucMethod = flag.method.toUpperCase();
      const { requestManager } = flag;
      if (urlObj.protocol === "file:") {
        const response = new EventEmitter5();
        response.statusCode = 200;
        response.rawHeaders = [];
        response.headers = {};
        const filePath = urlObj.pathname.replace(/^file:\/\//, "").replace(/^\/([a-z]):\//i, "$1:/").replace(/%20/g, " ");
        const client2 = new EventEmitter5();
        const readableStream = fs7.createReadStream(filePath, { encoding: null });
        readableStream.on("data", (chunk3) => {
          response.emit("data", chunk3);
          client2.emit("data", chunk3);
        });
        readableStream.on("end", () => {
          response.emit("end");
          client2.emit("end");
        });
        readableStream.on("error", (err2) => {
          client2.emit("error", err2);
        });
        client2.abort = function() {
          readableStream.destroy();
          client2.emit("abort");
        };
        if (requestManager) {
          const req = {
            abort() {
              properties.abortError = true;
              xhr.abort();
            }
          };
          requestManager.add(req);
          const rmReq = requestManager.remove.bind(requestManager, req);
          client2.on("abort", rmReq);
          client2.on("error", rmReq);
          client2.on("end", rmReq);
        }
        process.nextTick(() => client2.emit("response", response, urlObj.href));
        return client2;
      }
      if (urlObj.protocol === "data:") {
        const response = new EventEmitter5();
        const client2 = new EventEmitter5();
        let buffer;
        try {
          const parsed = parseDataURL(uri);
          const contentType = parsed.mimeType.toString();
          buffer = Buffer.from(parsed.body);
          response.statusCode = 200;
          response.rawHeaders = ["Content-Type", contentType];
          response.headers = { "content-type": contentType };
        } catch (err2) {
          process.nextTick(() => client2.emit("error", err2));
          return client2;
        }
        client2.abort = () => {
        };
        process.nextTick(() => {
          client2.emit("response", response, urlObj.href);
          process.nextTick(() => {
            response.emit("data", buffer);
            client2.emit("data", buffer);
            response.emit("end");
            client2.emit("end");
          });
        });
        return client2;
      }
      const agents = agentFactory(flag.proxy, flag.strictSSL);
      const requestHeaders = {};
      for (const header in flag.requestHeaders) {
        requestHeaders[header] = flag.requestHeaders[header];
      }
      if (getRequestHeader(flag.requestHeaders, "referer") === null) {
        requestHeaders.Referer = flag.referrer;
      }
      if (getRequestHeader(flag.requestHeaders, "user-agent") === null) {
        requestHeaders["User-Agent"] = flag.userAgent;
      }
      if (getRequestHeader(flag.requestHeaders, "accept-language") === null) {
        requestHeaders["Accept-Language"] = "en";
      }
      if (getRequestHeader(flag.requestHeaders, "accept") === null) {
        requestHeaders.Accept = "*/*";
      }
      const crossOrigin = flag.origin !== urlObj.origin;
      if (crossOrigin) {
        requestHeaders.Origin = flag.origin;
      }
      const options = { rejectUnauthorized: flag.strictSSL, agents, followRedirects: true };
      if (flag.auth) {
        options.user = flag.auth.user || "";
        options.pass = flag.auth.pass || "";
      }
      if (flag.cookieJar && (!crossOrigin || flag.withCredentials)) {
        options.cookieJar = flag.cookieJar;
      }
      const { body } = flag;
      const hasBody = body !== void 0 && body !== null && body !== "" && !(ucMethod === "HEAD" || ucMethod === "GET");
      if (hasBody && getRequestHeader(flag.requestHeaders, "content-type") === null) {
        requestHeaders["Content-Type"] = "text/plain;charset=UTF-8";
      }
      function doRequest() {
        try {
          requestHeaders["Accept-Encoding"] = "gzip, deflate";
          let len = 0;
          if (hasBody) {
            len = body.byteLength;
            requestHeaders["Content-Length"] = len;
          }
          const requestClient = new Request3(uri, options, { method: flag.method, headers: requestHeaders });
          if (hasBody) {
            requestClient.write(body);
          }
          return requestClient;
        } catch (e4) {
          const eventEmitterclient = new EventEmitter5();
          process.nextTick(() => eventEmitterclient.emit("error", e4));
          eventEmitterclient.end = () => {
          };
          eventEmitterclient.abort = () => {
          };
          return eventEmitterclient;
        }
      }
      let client;
      const nonSimpleHeaders = Object.keys(flag.requestHeaders).filter((header) => !simpleHeaders.has(header.toLowerCase()));
      if (crossOrigin && (!simpleMethods.has(ucMethod) || nonSimpleHeaders.length > 0 || properties.uploadListener)) {
        client = new EventEmitter5();
        const preflightRequestHeaders = {};
        for (const header in requestHeaders) {
          const lcHeader = header.toLowerCase();
          if (lcHeader === "origin" || lcHeader === "referer") {
            preflightRequestHeaders[header] = requestHeaders[header];
          }
        }
        preflightRequestHeaders["Access-Control-Request-Method"] = flag.method;
        if (nonSimpleHeaders.length > 0) {
          preflightRequestHeaders["Access-Control-Request-Headers"] = nonSimpleHeaders.join(", ");
        }
        preflightRequestHeaders["User-Agent"] = flag.userAgent;
        flag.preflight = true;
        const rejectUnauthorized = flag.strictSSL;
        const preflightClient = new Request3(
          uri,
          { agents, followRedirects: false },
          { method: "OPTIONS", headers: preflightRequestHeaders, rejectUnauthorized }
        );
        preflightClient.on("response", (resp) => {
          if (resp.statusCode < 200 || resp.statusCode > 299) {
            client.emit("error", new Error("Response for preflight has invalid HTTP status code " + resp.statusCode));
            return;
          }
          if (!validCORSPreflightHeaders(xhr, resp, flag, properties)) {
            setResponseToNetworkError(xhr);
            return;
          }
          const realClient = doRequest();
          realClient.on("response", (...args) => client.emit("response", ...args));
          realClient.on("data", (chunk3) => client.emit("data", chunk3));
          realClient.on("end", () => client.emit("end"));
          realClient.on("abort", () => client.emit("abort"));
          realClient.on("request", (req) => {
            client.headers = realClient.headers;
            client.emit("request", req);
          });
          realClient.on("redirect", (...args) => {
            client.emit("redirect", ...args);
          });
          realClient.on("error", (err2) => {
            client.emit("error", err2);
          });
          client.abort = () => {
            realClient.abort();
          };
          setImmediate(() => realClient.end());
        });
        preflightClient.on("error", (err2) => {
          client.emit("error", err2);
        });
        client.abort = () => {
          preflightClient.abort();
        };
        setImmediate(() => preflightClient.end());
      } else {
        client = doRequest();
        setImmediate(() => client.end());
      }
      if (requestManager) {
        const req = {
          abort() {
            properties.abortError = true;
            xhr.abort();
          }
        };
        requestManager.add(req);
        const rmReq = requestManager.remove.bind(requestManager, req);
        client.on("abort", rmReq);
        client.on("error", rmReq);
        client.on("end", rmReq);
      }
      return client;
    }
    exports.headerListSeparatorRegexp = headerListSeparatorRegexp;
    exports.simpleHeaders = simpleHeaders;
    exports.preflightHeaders = preflightHeaders;
    exports.getRequestHeader = getRequestHeader;
    exports.updateRequestHeader = updateRequestHeader;
    exports.dispatchError = dispatchError;
    exports.validCORSHeaders = validCORSHeaders;
    exports.requestErrorSteps = requestErrorSteps;
    exports.setResponseToNetworkError = setResponseToNetworkError;
    exports.createClient = createClient;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/json.js
var require_json2 = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/json.js"(exports) {
    "use strict";
    exports.parseJSONFromBytes = (bytes) => {
      if (bytes[0] === 239 && bytes[1] === 187 && bytes[2] === 191) {
        bytes = bytes.subarray(3);
      }
      const jsonText = bytes.toString("utf-8");
      return JSON.parse(jsonText);
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/xhr/multipart-form-data.js
var require_multipart_form_data = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/xhr/multipart-form-data.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utf8Encoder = new TextEncoder();
    var contentDispositionPrefix = utf8Encoder.encode(`Content-Disposition: form-data; name="`);
    var filenamePrefix = utf8Encoder.encode(`; filename="`);
    var contentType = utf8Encoder.encode(`Content-Type: `);
    function generateBoundary() {
      let boundary = "--------------------------";
      for (let i5 = 0; i5 < 24; ++i5) {
        boundary += Math.floor(Math.random() * 10).toString(16);
      }
      return utf8Encoder.encode(boundary);
    }
    function escapeName2(name, isFilename = false) {
      if (isFilename) {
        name = conversions.USVString(name);
      } else {
        name = name.replace(/\r(?!\n)|(?<!\r)\n/g, "\r\n");
      }
      const encoded = utf8Encoder.encode(name);
      const encodedWithSubs = [];
      for (const originalByte of encoded) {
        if (originalByte === 10) {
          encodedWithSubs.push(37, 48, 65);
        } else if (originalByte === 13) {
          encodedWithSubs.push(37, 48, 68);
        } else if (originalByte === 34) {
          encodedWithSubs.push(37, 50, 50);
        } else {
          encodedWithSubs.push(originalByte);
        }
      }
      return new Uint8Array(encodedWithSubs);
    }
    exports.serializeEntryList = (entries3) => {
      const boundary = generateBoundary();
      const outputChunks = [];
      for (const entry of entries3) {
        const chunkBytes = [
          45,
          45,
          // `--`
          ...boundary,
          13,
          10
        ];
        chunkBytes.push(
          ...contentDispositionPrefix,
          ...escapeName2(entry.name),
          34
          /* `"` */
        );
        let { value: value2 } = entry;
        if (typeof value2 === "string") {
          chunkBytes.push(13, 10, 13, 10);
          value2 = value2.replace(/\r(?!\n)|(?<!\r)\n/g, "\r\n");
          chunkBytes.push(...utf8Encoder.encode(value2));
          chunkBytes.push(13, 10);
          outputChunks.push(new Uint8Array(chunkBytes));
        } else {
          chunkBytes.push(...filenamePrefix, ...escapeName2(value2.name, true), 34, 13, 10);
          const type = value2.type !== "" ? value2.type : "application/octet-stream";
          chunkBytes.push(...contentType, ...utf8Encoder.encode(type));
          chunkBytes.push(13, 10, 13, 10);
          outputChunks.push(
            new Uint8Array(chunkBytes),
            // The spec returns the File object here but for our purposes the bytes (as a `Buffer`) are more convenient.
            value2._buffer,
            new Uint8Array([13, 10])
          );
        }
      }
      outputChunks.push(
        new Uint8Array([45, 45]),
        // `--`
        boundary,
        new Uint8Array([45, 45]),
        // `--`
        new Uint8Array([13, 10])
      );
      return { boundary, outputChunks };
    };
    exports.chunksToBuffer = (chunks) => {
      return Buffer.concat(chunks);
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js
var require_XMLHttpRequest_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js"(exports) {
    "use strict";
    var HTTP_STATUS_CODES = __require("http").STATUS_CODES;
    var { spawnSync } = __require("child_process");
    var { URL: URL5 } = require_whatwg_url();
    var whatwgEncoding = require_whatwg_encoding();
    var tough = require_cookie2();
    var MIMEType = require_mime_type();
    var xhrUtils = require_xhr_utils();
    var DOMException2 = require_DOMException();
    var { asciiCaseInsensitiveMatch } = require_strings2();
    var idlUtils = require_utils16();
    var Document3 = require_Document();
    var Blob2 = require_Blob();
    var FormData3 = require_FormData();
    var XMLHttpRequestEventTargetImpl = require_XMLHttpRequestEventTarget_impl().implementation;
    var XMLHttpRequestUpload = require_XMLHttpRequestUpload();
    var ProgressEvent = require_ProgressEvent();
    var { isArrayBuffer: isArrayBuffer3 } = require_utils16();
    var { parseIntoDocument } = require_parser3();
    var { fragmentSerialization } = require_serialization2();
    var { setupForSimpleEventAccessors } = require_create_event_accessor();
    var { parseJSONFromBytes } = require_json2();
    var { fireAnEvent } = require_events4();
    var { copyToArrayBufferInNewRealm } = require_binary_data();
    var { serializeEntryList, chunksToBuffer } = require_multipart_form_data();
    var { READY_STATES } = xhrUtils;
    var syncWorkerFile = __require.resolve ? __require.resolve("./xhr-sync-worker.js") : null;
    var tokenRegexp = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
    var fieldValueRegexp = /^[ \t]*(?:[\x21-\x7E\x80-\xFF](?:[ \t][\x21-\x7E\x80-\xFF])?)*[ \t]*$/;
    var utf8Decoder2 = new TextDecoder();
    var forbiddenRequestHeaders = /* @__PURE__ */ new Set([
      "accept-charset",
      "accept-encoding",
      "access-control-request-headers",
      "access-control-request-method",
      "connection",
      "content-length",
      "cookie",
      "cookie2",
      "date",
      "dnt",
      "expect",
      "host",
      "keep-alive",
      "origin",
      "referer",
      "te",
      "trailer",
      "transfer-encoding",
      "upgrade",
      "via"
    ]);
    var forbiddenResponseHeaders = /* @__PURE__ */ new Set([
      "set-cookie",
      "set-cookie2"
    ]);
    var uniqueResponseHeaders = /* @__PURE__ */ new Set([
      "content-type",
      "content-length",
      "user-agent",
      "referer",
      "host",
      "authorization",
      "proxy-authorization",
      "if-modified-since",
      "if-unmodified-since",
      "from",
      "location",
      "max-forwards"
    ]);
    var corsSafeResponseHeaders = /* @__PURE__ */ new Set([
      "cache-control",
      "content-language",
      "content-length",
      "content-type",
      "expires",
      "last-modified",
      "pragma"
    ]);
    var allowedRequestMethods = /* @__PURE__ */ new Set(["OPTIONS", "GET", "HEAD", "POST", "PUT", "DELETE"]);
    var forbiddenRequestMethods = /* @__PURE__ */ new Set(["TRACK", "TRACE", "CONNECT"]);
    var XMLHttpRequestImpl = class extends XMLHttpRequestEventTargetImpl {
      constructor(window2) {
        super(window2);
        const { _ownerDocument } = this;
        this.upload = XMLHttpRequestUpload.createImpl(window2);
        this.readyState = READY_STATES.UNSENT;
        this.responseURL = "";
        this.status = 0;
        this.statusText = "";
        this.flag = {
          synchronous: false,
          withCredentials: false,
          mimeType: null,
          auth: null,
          method: void 0,
          responseType: "",
          requestHeaders: {},
          referrer: _ownerDocument.URL,
          uri: "",
          timeout: 0,
          body: void 0,
          preflight: false,
          requestManager: _ownerDocument._requestManager,
          strictSSL: window2._resourceLoader._strictSSL,
          proxy: window2._resourceLoader._proxy,
          cookieJar: _ownerDocument._cookieJar,
          encoding: _ownerDocument._encoding,
          origin: window2._origin,
          userAgent: window2.navigator.userAgent
        };
        this.properties = {
          beforeSend: false,
          send: false,
          client: null,
          timeoutStart: 0,
          timeoutId: 0,
          timeoutFn: null,
          responseBuffer: null,
          responseCache: null,
          responseTextCache: null,
          responseXMLCache: null,
          responseHeaders: {},
          filteredResponseHeaders: [],
          error: "",
          uploadComplete: false,
          uploadListener: false,
          // Signifies that we're calling abort() from xhr-utils.js because of a window shutdown.
          // In that case the termination reason is "fatal", not "end-user abort".
          abortError: false,
          cookieJar: _ownerDocument._cookieJar,
          bufferStepSize: 1 * 1024 * 1024,
          // pre-allocate buffer increase step size. init value is 1MB
          totalReceivedChunkSize: 0
        };
      }
      get responseType() {
        return this.flag.responseType;
      }
      set responseType(responseType) {
        const { flag } = this;
        if (this.readyState === READY_STATES.LOADING || this.readyState === READY_STATES.DONE) {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        if (this.readyState === READY_STATES.OPENED && flag.synchronous) {
          throw DOMException2.create(this._globalObject, [
            "The object does not support the operation or argument.",
            "InvalidAccessError"
          ]);
        }
        flag.responseType = responseType;
      }
      get response() {
        const { properties } = this;
        if (properties.responseCache) {
          return idlUtils.tryWrapperForImpl(properties.responseCache);
        }
        let res;
        const responseBuffer = properties.responseBuffer ? properties.responseBuffer.slice(0, properties.totalReceivedChunkSize) : null;
        switch (this.responseType) {
          case "":
          case "text": {
            res = this.responseText;
            break;
          }
          case "arraybuffer": {
            if (!responseBuffer) {
              return null;
            }
            res = copyToArrayBufferInNewRealm(responseBuffer, this._globalObject);
            break;
          }
          case "blob": {
            if (!responseBuffer) {
              return null;
            }
            const contentType = finalMIMEType(this);
            res = Blob2.createImpl(this._globalObject, [
              [new Uint8Array(responseBuffer)],
              { type: contentType || "" }
            ]);
            break;
          }
          case "document": {
            res = this.responseXML;
            break;
          }
          case "json": {
            if (this.readyState !== READY_STATES.DONE || !responseBuffer) {
              res = null;
            }
            try {
              res = parseJSONFromBytes(responseBuffer);
            } catch {
              res = null;
            }
            break;
          }
        }
        properties.responseCache = res;
        return idlUtils.tryWrapperForImpl(res);
      }
      get responseText() {
        const { properties } = this;
        if (this.responseType !== "" && this.responseType !== "text") {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        if (this.readyState !== READY_STATES.LOADING && this.readyState !== READY_STATES.DONE) {
          return "";
        }
        if (properties.responseTextCache) {
          return properties.responseTextCache;
        }
        const responseBuffer = properties.responseBuffer ? properties.responseBuffer.slice(0, properties.totalReceivedChunkSize) : null;
        if (!responseBuffer) {
          return "";
        }
        const fallbackEncoding = finalCharset(this) || whatwgEncoding.getBOMEncoding(responseBuffer) || "UTF-8";
        const res = whatwgEncoding.decode(responseBuffer, fallbackEncoding);
        properties.responseTextCache = res;
        return res;
      }
      get responseXML() {
        const { flag, properties } = this;
        if (this.responseType !== "" && this.responseType !== "document") {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        if (this.readyState !== READY_STATES.DONE) {
          return null;
        }
        if (properties.responseXMLCache) {
          return properties.responseXMLCache;
        }
        const responseBuffer = properties.responseBuffer ? properties.responseBuffer.slice(0, properties.totalReceivedChunkSize) : null;
        if (!responseBuffer) {
          return null;
        }
        const contentType = finalMIMEType(this);
        let isHTML = false;
        let isXML = false;
        const parsed = MIMEType.parse(contentType);
        if (parsed) {
          isHTML = parsed.isHTML();
          isXML = parsed.isXML();
          if (!isXML && !isHTML) {
            return null;
          }
        }
        if (this.responseType === "" && isHTML) {
          return null;
        }
        const encoding = finalCharset(this) || whatwgEncoding.getBOMEncoding(responseBuffer) || "UTF-8";
        const resText = whatwgEncoding.decode(responseBuffer, encoding);
        if (!resText) {
          return null;
        }
        const res = Document3.createImpl(this._globalObject, [], {
          options: {
            url: flag.uri,
            lastModified: new Date(getResponseHeader(this, "last-modified")),
            parsingMode: isHTML ? "html" : "xml",
            cookieJar: { setCookieSync: () => void 0, getCookieStringSync: () => "" },
            encoding,
            parseOptions: this._ownerDocument._parseOptions
          }
        });
        try {
          parseIntoDocument(resText, res);
        } catch {
          properties.responseXMLCache = null;
          return null;
        }
        res.close();
        properties.responseXMLCache = res;
        return res;
      }
      get timeout() {
        return this.flag.timeout;
      }
      set timeout(val) {
        const { flag, properties } = this;
        if (flag.synchronous) {
          throw DOMException2.create(this._globalObject, [
            "The object does not support the operation or argument.",
            "InvalidAccessError"
          ]);
        }
        flag.timeout = val;
        clearTimeout(properties.timeoutId);
        if (val > 0 && properties.timeoutFn) {
          properties.timeoutId = setTimeout(
            properties.timeoutFn,
            Math.max(0, val - ((/* @__PURE__ */ new Date()).getTime() - properties.timeoutStart))
          );
        } else {
          properties.timeoutFn = null;
          properties.timeoutStart = 0;
        }
      }
      get withCredentials() {
        return this.flag.withCredentials;
      }
      set withCredentials(val) {
        const { flag, properties } = this;
        if (!(this.readyState === READY_STATES.UNSENT || this.readyState === READY_STATES.OPENED)) {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        if (properties.send) {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        flag.withCredentials = val;
      }
      abort() {
        const { properties } = this;
        clearTimeout(properties.timeoutId);
        properties.timeoutFn = null;
        properties.timeoutStart = 0;
        const { client } = properties;
        if (client) {
          client.abort();
          properties.client = null;
        }
        if (properties.abortError) {
          this.readyState = READY_STATES.DONE;
          properties.send = false;
          xhrUtils.setResponseToNetworkError(this);
          return;
        }
        if (this.readyState === READY_STATES.OPENED && properties.send || this.readyState === READY_STATES.HEADERS_RECEIVED || this.readyState === READY_STATES.LOADING) {
          xhrUtils.requestErrorSteps(this, "abort");
        }
        if (this.readyState === READY_STATES.DONE) {
          this.readyState = READY_STATES.UNSENT;
          xhrUtils.setResponseToNetworkError(this);
        }
      }
      getAllResponseHeaders() {
        const { properties, readyState } = this;
        if (readyState === READY_STATES.UNSENT || readyState === READY_STATES.OPENED) {
          return "";
        }
        return Object.keys(properties.responseHeaders).filter((key) => properties.filteredResponseHeaders.indexOf(key) === -1).map((key) => [key.toLowerCase(), properties.responseHeaders[key]].join(": ")).join("\r\n");
      }
      getResponseHeader(header) {
        const { properties, readyState } = this;
        if (readyState === READY_STATES.UNSENT || readyState === READY_STATES.OPENED) {
          return null;
        }
        const lcHeader = header.toLowerCase();
        if (properties.filteredResponseHeaders.find((filtered) => lcHeader === filtered.toLowerCase())) {
          return null;
        }
        return getResponseHeader(this, lcHeader);
      }
      open(method, uri, asynchronous, user, password) {
        const { flag, properties, _ownerDocument } = this;
        if (!_ownerDocument) {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        if (!tokenRegexp.test(method)) {
          throw DOMException2.create(this._globalObject, [
            "The string did not match the expected pattern.",
            "SyntaxError"
          ]);
        }
        const upperCaseMethod = method.toUpperCase();
        if (forbiddenRequestMethods.has(upperCaseMethod)) {
          throw DOMException2.create(this._globalObject, ["The operation is insecure.", "SecurityError"]);
        }
        const { client } = properties;
        if (client && typeof client.abort === "function") {
          client.abort();
        }
        if (allowedRequestMethods.has(upperCaseMethod)) {
          method = upperCaseMethod;
        }
        if (typeof asynchronous !== "undefined") {
          flag.synchronous = !asynchronous;
        } else {
          flag.synchronous = false;
        }
        if (flag.responseType && flag.synchronous) {
          throw DOMException2.create(this._globalObject, [
            "The object does not support the operation or argument.",
            "InvalidAccessError"
          ]);
        }
        if (flag.synchronous && flag.timeout) {
          throw DOMException2.create(this._globalObject, [
            "The object does not support the operation or argument.",
            "InvalidAccessError"
          ]);
        }
        flag.method = method;
        let urlObj;
        try {
          urlObj = new URL5(uri, _ownerDocument.baseURLSerialized());
        } catch {
          throw DOMException2.create(this._globalObject, [
            "The string did not match the expected pattern.",
            "SyntaxError"
          ]);
        }
        if (user || password && !urlObj.username) {
          flag.auth = {
            user,
            pass: password
          };
          urlObj.username = "";
          urlObj.password = "";
        }
        flag.uri = urlObj.href;
        flag.requestHeaders = {};
        flag.preflight = false;
        properties.send = false;
        properties.uploadListener = false;
        properties.abortError = false;
        this.responseURL = "";
        readyStateChange(this, READY_STATES.OPENED);
      }
      overrideMimeType(mime) {
        const { readyState } = this;
        if (readyState === READY_STATES.LOADING || readyState === READY_STATES.DONE) {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        this.flag.overrideMIMEType = "application/octet-stream";
        const parsed = MIMEType.parse(mime);
        if (parsed) {
          this.flag.overrideMIMEType = parsed.essence;
          const charset = parsed.parameters.get("charset");
          if (charset) {
            this.flag.overrideCharset = whatwgEncoding.labelToName(charset);
          }
        }
      }
      // TODO: Add support for URLSearchParams and ReadableStream
      send(body) {
        const { flag, properties, upload, _ownerDocument } = this;
        if (!_ownerDocument) {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        if (this.readyState !== READY_STATES.OPENED || properties.send) {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        properties.beforeSend = true;
        try {
          if (flag.method === "GET" || flag.method === "HEAD") {
            body = null;
          }
          if (body !== null) {
            let encoding = null;
            let mimeType = null;
            if (Document3.isImpl(body)) {
              encoding = "UTF-8";
              mimeType = (body._parsingMode === "html" ? "text/html" : "application/xml") + ";charset=UTF-8";
              flag.body = Buffer.from(fragmentSerialization(body, { requireWellFormed: false }));
            } else {
              if (typeof body === "string") {
                encoding = "UTF-8";
              }
              const { buffer, contentType } = extractBody(body);
              mimeType = contentType;
              flag.body = buffer;
            }
            const existingContentType = xhrUtils.getRequestHeader(flag.requestHeaders, "content-type");
            if (mimeType !== null && existingContentType === null) {
              flag.requestHeaders["Content-Type"] = mimeType;
            } else if (existingContentType !== null && encoding !== null) {
              const parsed = MIMEType.parse(existingContentType);
              if (parsed) {
                const charset = parsed.parameters.get("charset");
                if (charset && !asciiCaseInsensitiveMatch(charset, encoding) && encoding !== null) {
                  parsed.parameters.set("charset", encoding);
                  xhrUtils.updateRequestHeader(flag.requestHeaders, "content-type", parsed.toString());
                }
              }
            }
          }
        } finally {
          if (properties.beforeSend) {
            properties.beforeSend = false;
          } else {
            throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
          }
        }
        if (Object.keys(upload._eventListeners).length > 0) {
          properties.uploadListener = true;
        }
        if (flag.body && flag.body.byteLength === 0) {
          flag.body = null;
        }
        if (flag.synchronous) {
          const flagStr = JSON.stringify(flag, function(k3, v3) {
            if (this === flag && k3 === "requestManager") {
              return null;
            }
            if (this === flag && k3 === "pool" && v3) {
              return { maxSockets: v3.maxSockets };
            }
            return v3;
          });
          const res = spawnSync(
            process.execPath,
            [syncWorkerFile],
            { input: flagStr, maxBuffer: Infinity }
          );
          if (res.status !== 0) {
            throw new Error(res.stderr.toString());
          }
          if (res.error) {
            if (typeof res.error === "string") {
              res.error = new Error(res.error);
            }
            throw res.error;
          }
          const response = JSON.parse(res.stdout.toString());
          const resProp = response.properties;
          if (resProp.responseBuffer && resProp.responseBuffer.data) {
            resProp.responseBuffer = Buffer.from(resProp.responseBuffer.data);
          }
          if (resProp.cookieJar) {
            resProp.cookieJar = tough.CookieJar.deserializeSync(
              resProp.cookieJar,
              _ownerDocument._cookieJar.store
            );
          }
          this.readyState = READY_STATES.LOADING;
          this.status = response.status;
          this.statusText = response.statusText;
          this.responseURL = response.responseURL;
          Object.assign(this.properties, response.properties);
          if (resProp.error) {
            xhrUtils.dispatchError(this);
            throw DOMException2.create(this._globalObject, [resProp.error, "NetworkError"]);
          } else {
            const { responseBuffer } = properties;
            const contentLength = getResponseHeader(this, "content-length") || "0";
            const bufferLength = parseInt(contentLength) || responseBuffer.length;
            const progressObj = { lengthComputable: false };
            if (bufferLength !== 0) {
              progressObj.total = bufferLength;
              progressObj.loaded = bufferLength;
              progressObj.lengthComputable = true;
            }
            fireAnEvent("progress", this, ProgressEvent, progressObj);
            readyStateChange(this, READY_STATES.DONE);
            fireAnEvent("load", this, ProgressEvent, progressObj);
            fireAnEvent("loadend", this, ProgressEvent, progressObj);
          }
        } else {
          properties.send = true;
          fireAnEvent("loadstart", this, ProgressEvent);
          const client = xhrUtils.createClient(this);
          properties.client = client;
          properties.totalReceivedChunkSize = 0;
          properties.bufferStepSize = 1 * 1024 * 1024;
          properties.origin = flag.origin;
          client.on("error", (err2) => {
            client.removeAllListeners();
            properties.error = err2;
            xhrUtils.dispatchError(this);
          });
          client.on("response", (res, url3) => receiveResponse(this, res, url3));
          client.on("redirect", (response, requestHeaders, currentURL) => {
            const destUrlObj = new URL5(requestHeaders.Referer);
            const urlObj = new URL5(currentURL);
            if (destUrlObj.origin !== urlObj.origin && destUrlObj.origin !== flag.origin) {
              properties.origin = "null";
            }
            requestHeaders.Origin = properties.origin;
            if (flag.origin !== destUrlObj.origin && destUrlObj.protocol !== "data:") {
              if (!xhrUtils.validCORSHeaders(this, response, flag, properties, flag.origin)) {
                return;
              }
              if (urlObj.username || urlObj.password) {
                properties.error = "Userinfo forbidden in cors redirect";
                xhrUtils.dispatchError(this);
              }
            }
          });
          if (body !== null && body !== "") {
            properties.uploadComplete = false;
            setDispatchProgressEvents(this);
          } else {
            properties.uploadComplete = true;
          }
          if (this.timeout > 0) {
            properties.timeoutStart = (/* @__PURE__ */ new Date()).getTime();
            properties.timeoutFn = () => {
              client.abort();
              if (!(this.readyState === READY_STATES.UNSENT || this.readyState === READY_STATES.OPENED && !properties.send || this.readyState === READY_STATES.DONE)) {
                properties.send = false;
                let stateChanged = false;
                if (!properties.uploadComplete) {
                  fireAnEvent("progress", upload, ProgressEvent);
                  readyStateChange(this, READY_STATES.DONE);
                  fireAnEvent("timeout", upload, ProgressEvent);
                  fireAnEvent("loadend", upload, ProgressEvent);
                  stateChanged = true;
                }
                fireAnEvent("progress", this, ProgressEvent);
                if (!stateChanged) {
                  readyStateChange(this, READY_STATES.DONE);
                }
                fireAnEvent("timeout", this, ProgressEvent);
                fireAnEvent("loadend", this, ProgressEvent);
              }
              this.readyState = READY_STATES.UNSENT;
            };
            properties.timeoutId = setTimeout(properties.timeoutFn, this.timeout);
          }
        }
      }
      setRequestHeader(header, value2) {
        const { flag, properties } = this;
        if (this.readyState !== READY_STATES.OPENED || properties.send) {
          throw DOMException2.create(this._globalObject, ["The object is in an invalid state.", "InvalidStateError"]);
        }
        value2 = normalizeHeaderValue(value2);
        if (!tokenRegexp.test(header) || !fieldValueRegexp.test(value2)) {
          throw DOMException2.create(this._globalObject, [
            "The string did not match the expected pattern.",
            "SyntaxError"
          ]);
        }
        const lcHeader = header.toLowerCase();
        if (forbiddenRequestHeaders.has(lcHeader) || lcHeader.startsWith("sec-") || lcHeader.startsWith("proxy-")) {
          return;
        }
        const keys2 = Object.keys(flag.requestHeaders);
        let n6 = keys2.length;
        while (n6--) {
          const key = keys2[n6];
          if (key.toLowerCase() === lcHeader) {
            flag.requestHeaders[key] += ", " + value2;
            return;
          }
        }
        flag.requestHeaders[header] = value2;
      }
    };
    setupForSimpleEventAccessors(XMLHttpRequestImpl.prototype, ["readystatechange"]);
    function readyStateChange(xhr, readyState) {
      if (xhr.readyState === readyState) {
        return;
      }
      xhr.readyState = readyState;
      fireAnEvent("readystatechange", xhr);
    }
    function receiveResponse(xhr, response, currentURL) {
      const { flag, properties } = xhr;
      const { rawHeaders, statusCode } = response;
      let byteOffset = 0;
      const headers = {};
      const filteredResponseHeaders = [];
      const headerMap = {};
      const n6 = Number(rawHeaders.length);
      for (let i5 = 0; i5 < n6; i5 += 2) {
        const k3 = rawHeaders[i5];
        const kl = k3.toLowerCase();
        const v3 = rawHeaders[i5 + 1];
        if (uniqueResponseHeaders.has(kl)) {
          if (headerMap[kl] !== void 0) {
            delete headers[headerMap[kl]];
          }
          headers[k3] = v3;
        } else if (headerMap[kl] !== void 0) {
          headers[headerMap[kl]] += ", " + v3;
        } else {
          headers[k3] = v3;
        }
        headerMap[kl] = k3;
      }
      const destUrlObj = new URL5(currentURL);
      if (properties.origin !== destUrlObj.origin && destUrlObj.protocol !== "data:") {
        if (!xhrUtils.validCORSHeaders(xhr, response, flag, properties, properties.origin)) {
          return;
        }
        const acehStr = response.headers["access-control-expose-headers"];
        const aceh = new Set(acehStr ? acehStr.trim().toLowerCase().split(xhrUtils.headerListSeparatorRegexp) : []);
        for (const header in headers) {
          const lcHeader = header.toLowerCase();
          if (!corsSafeResponseHeaders.has(lcHeader) && !aceh.has(lcHeader)) {
            filteredResponseHeaders.push(header);
          }
        }
      }
      for (const header in headers) {
        const lcHeader = header.toLowerCase();
        if (forbiddenResponseHeaders.has(lcHeader)) {
          filteredResponseHeaders.push(header);
        }
      }
      xhr.responseURL = destUrlObj.href;
      xhr.status = statusCode;
      xhr.statusText = response.statusMessage || HTTP_STATUS_CODES[statusCode] || "";
      properties.responseHeaders = headers;
      properties.filteredResponseHeaders = filteredResponseHeaders;
      const contentLength = getResponseHeader(xhr, "content-length") || "0";
      const bufferLength = parseInt(contentLength) || 0;
      const progressObj = { lengthComputable: false };
      let lastProgressReported;
      if (bufferLength !== 0) {
        progressObj.total = bufferLength;
        progressObj.loaded = 0;
        progressObj.lengthComputable = true;
      }
      properties.responseBuffer = Buffer.alloc(properties.bufferStepSize);
      properties.responseCache = null;
      properties.responseTextCache = null;
      properties.responseXMLCache = null;
      readyStateChange(xhr, READY_STATES.HEADERS_RECEIVED);
      if (!properties.client) {
        return;
      }
      response.on("data", (chunk3) => {
        byteOffset += chunk3.length;
        progressObj.loaded = byteOffset;
      });
      properties.client.on("data", (chunk3) => {
        properties.totalReceivedChunkSize += chunk3.length;
        if (properties.totalReceivedChunkSize >= properties.bufferStepSize) {
          properties.bufferStepSize *= 2;
          while (properties.totalReceivedChunkSize >= properties.bufferStepSize) {
            properties.bufferStepSize *= 2;
          }
          const tmpBuf = Buffer.alloc(properties.bufferStepSize);
          properties.responseBuffer.copy(tmpBuf, 0, 0, properties.responseBuffer.length);
          properties.responseBuffer = tmpBuf;
        }
        chunk3.copy(properties.responseBuffer, properties.totalReceivedChunkSize - chunk3.length, 0, chunk3.length);
        properties.responseCache = null;
        properties.responseTextCache = null;
        properties.responseXMLCache = null;
        if (xhr.readyState === READY_STATES.HEADERS_RECEIVED) {
          xhr.readyState = READY_STATES.LOADING;
        }
        fireAnEvent("readystatechange", xhr);
        if (progressObj.total !== progressObj.loaded || properties.totalReceivedChunkSize === byteOffset) {
          if (lastProgressReported !== progressObj.loaded) {
            lastProgressReported = progressObj.loaded;
            fireAnEvent("progress", xhr, ProgressEvent, progressObj);
          }
        }
      });
      properties.client.on("end", () => {
        clearTimeout(properties.timeoutId);
        properties.timeoutFn = null;
        properties.timeoutStart = 0;
        properties.client = null;
        if (lastProgressReported !== progressObj.loaded) {
          fireAnEvent("progress", xhr, ProgressEvent, progressObj);
        }
        readyStateChange(xhr, READY_STATES.DONE);
        fireAnEvent("load", xhr, ProgressEvent, progressObj);
        fireAnEvent("loadend", xhr, ProgressEvent, progressObj);
      });
    }
    function setDispatchProgressEvents(xhr) {
      const { properties, upload } = xhr;
      const { client } = properties;
      let total = 0;
      let lengthComputable = false;
      const length2 = client.headers && parseInt(xhrUtils.getRequestHeader(client.headers, "content-length"));
      if (length2) {
        total = length2;
        lengthComputable = true;
      }
      const initProgress = {
        lengthComputable,
        total,
        loaded: 0
      };
      if (properties.uploadListener) {
        fireAnEvent("loadstart", upload, ProgressEvent, initProgress);
      }
      client.on("request", (req) => {
        req.on("response", () => {
          properties.uploadComplete = true;
          if (!properties.uploadListener) {
            return;
          }
          const progress = {
            lengthComputable,
            total,
            loaded: total
          };
          fireAnEvent("progress", upload, ProgressEvent, progress);
          fireAnEvent("load", upload, ProgressEvent, progress);
          fireAnEvent("loadend", upload, ProgressEvent, progress);
        });
      });
    }
    function finalMIMEType(xhr) {
      const { flag } = xhr;
      return flag.overrideMIMEType || getResponseHeader(xhr, "content-type");
    }
    function finalCharset(xhr) {
      const { flag } = xhr;
      if (flag.overrideCharset) {
        return flag.overrideCharset;
      }
      const parsedContentType = MIMEType.parse(getResponseHeader(xhr, "content-type"));
      if (parsedContentType) {
        return whatwgEncoding.labelToName(parsedContentType.parameters.get("charset"));
      }
      return null;
    }
    function getResponseHeader(xhr, lcHeader) {
      const { properties } = xhr;
      const keys2 = Object.keys(properties.responseHeaders);
      let n6 = keys2.length;
      while (n6--) {
        const key = keys2[n6];
        if (key.toLowerCase() === lcHeader) {
          return properties.responseHeaders[key];
        }
      }
      return null;
    }
    function normalizeHeaderValue(value2) {
      return value2.replace(/^[\x09\x0A\x0D\x20]+/, "").replace(/[\x09\x0A\x0D\x20]+$/, "");
    }
    function extractBody(bodyInit) {
      if (Blob2.isImpl(bodyInit)) {
        return {
          buffer: bodyInit._buffer,
          contentType: bodyInit.type === "" ? null : bodyInit.type
        };
      } else if (isArrayBuffer3(bodyInit)) {
        return {
          buffer: Buffer.from(bodyInit),
          contentType: null
        };
      } else if (ArrayBuffer.isView(bodyInit)) {
        return {
          buffer: Buffer.from(bodyInit.buffer, bodyInit.byteOffset, bodyInit.byteLength),
          contentType: null
        };
      } else if (FormData3.isImpl(bodyInit)) {
        const { boundary, outputChunks } = serializeEntryList(bodyInit._entries);
        return {
          buffer: chunksToBuffer(outputChunks),
          contentType: "multipart/form-data; boundary=" + utf8Decoder2.decode(boundary)
        };
      }
      return {
        buffer: Buffer.from(bodyInit, "utf-8"),
        contentType: "text/plain;charset=UTF-8"
      };
    }
    exports.implementation = XMLHttpRequestImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequest.js
var require_XMLHttpRequest = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequest.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Document3 = require_Document();
    var Blob2 = require_Blob();
    var FormData3 = require_FormData();
    var EventHandlerNonNull = require_EventHandlerNonNull();
    var XMLHttpRequestResponseType = require_XMLHttpRequestResponseType();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var XMLHttpRequestEventTarget = require_XMLHttpRequestEventTarget();
    var interfaceName = "XMLHttpRequest";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'XMLHttpRequest'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["XMLHttpRequest"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      XMLHttpRequestEventTarget._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "DedicatedWorker", "SharedWorker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class XMLHttpRequest2 extends globalObject.XMLHttpRequestEventTarget {
        constructor() {
          return exports.setup(Object.create(new.target.prototype), globalObject, void 0);
        }
        open(method, url3) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'open' called on an object that is not a valid instance of XMLHttpRequest.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'open' on 'XMLHttpRequest': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          switch (arguments.length) {
            case 2:
              {
                let curArg = arguments[0];
                curArg = conversions["ByteString"](curArg, {
                  context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[1];
                curArg = conversions["USVString"](curArg, {
                  context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 2",
                  globals: globalObject
                });
                args.push(curArg);
              }
              break;
            case 3:
              {
                let curArg = arguments[0];
                curArg = conversions["ByteString"](curArg, {
                  context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[1];
                curArg = conversions["USVString"](curArg, {
                  context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 2",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[2];
                curArg = conversions["boolean"](curArg, {
                  context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 3",
                  globals: globalObject
                });
                args.push(curArg);
              }
              break;
            case 4:
              {
                let curArg = arguments[0];
                curArg = conversions["ByteString"](curArg, {
                  context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[1];
                curArg = conversions["USVString"](curArg, {
                  context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 2",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[2];
                curArg = conversions["boolean"](curArg, {
                  context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 3",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[3];
                if (curArg !== void 0) {
                  if (curArg === null || curArg === void 0) {
                    curArg = null;
                  } else {
                    curArg = conversions["USVString"](curArg, {
                      context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 4",
                      globals: globalObject
                    });
                  }
                } else {
                  curArg = null;
                }
                args.push(curArg);
              }
              break;
            default:
              {
                let curArg = arguments[0];
                curArg = conversions["ByteString"](curArg, {
                  context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 1",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[1];
                curArg = conversions["USVString"](curArg, {
                  context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 2",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[2];
                curArg = conversions["boolean"](curArg, {
                  context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 3",
                  globals: globalObject
                });
                args.push(curArg);
              }
              {
                let curArg = arguments[3];
                if (curArg !== void 0) {
                  if (curArg === null || curArg === void 0) {
                    curArg = null;
                  } else {
                    curArg = conversions["USVString"](curArg, {
                      context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 4",
                      globals: globalObject
                    });
                  }
                } else {
                  curArg = null;
                }
                args.push(curArg);
              }
              {
                let curArg = arguments[4];
                if (curArg !== void 0) {
                  if (curArg === null || curArg === void 0) {
                    curArg = null;
                  } else {
                    curArg = conversions["USVString"](curArg, {
                      context: "Failed to execute 'open' on 'XMLHttpRequest': parameter 5",
                      globals: globalObject
                    });
                  }
                } else {
                  curArg = null;
                }
                args.push(curArg);
              }
          }
          return esValue[implSymbol].open(...args);
        }
        setRequestHeader(name, value2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setRequestHeader' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'setRequestHeader' on 'XMLHttpRequest': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["ByteString"](curArg, {
              context: "Failed to execute 'setRequestHeader' on 'XMLHttpRequest': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["ByteString"](curArg, {
              context: "Failed to execute 'setRequestHeader' on 'XMLHttpRequest': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setRequestHeader(...args);
        }
        send() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'send' called on an object that is not a valid instance of XMLHttpRequest.");
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              if (curArg === null || curArg === void 0) {
                curArg = null;
              } else {
                if (Document3.is(curArg) || Blob2.is(curArg) || FormData3.is(curArg)) {
                  curArg = utils2.implForWrapper(curArg);
                } else if (utils2.isArrayBuffer(curArg)) {
                } else if (ArrayBuffer.isView(curArg)) {
                } else {
                  curArg = conversions["USVString"](curArg, {
                    context: "Failed to execute 'send' on 'XMLHttpRequest': parameter 1",
                    globals: globalObject
                  });
                }
              }
            } else {
              curArg = null;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].send(...args);
        }
        abort() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'abort' called on an object that is not a valid instance of XMLHttpRequest.");
          }
          return esValue[implSymbol].abort();
        }
        getResponseHeader(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getResponseHeader' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getResponseHeader' on 'XMLHttpRequest': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["ByteString"](curArg, {
              context: "Failed to execute 'getResponseHeader' on 'XMLHttpRequest': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].getResponseHeader(...args);
        }
        getAllResponseHeaders() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'getAllResponseHeaders' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          return esValue[implSymbol].getAllResponseHeaders();
        }
        overrideMimeType(mime) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'overrideMimeType' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'overrideMimeType' on 'XMLHttpRequest': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'overrideMimeType' on 'XMLHttpRequest': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].overrideMimeType(...args);
        }
        get onreadystatechange() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onreadystatechange' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onreadystatechange"]);
        }
        set onreadystatechange(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onreadystatechange' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onreadystatechange' property on 'XMLHttpRequest': The provided value"
            });
          }
          esValue[implSymbol]["onreadystatechange"] = V;
        }
        get readyState() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get readyState' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          return esValue[implSymbol]["readyState"];
        }
        get timeout() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get timeout' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          return esValue[implSymbol]["timeout"];
        }
        set timeout(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set timeout' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          V = conversions["unsigned long"](V, {
            context: "Failed to set the 'timeout' property on 'XMLHttpRequest': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["timeout"] = V;
        }
        get withCredentials() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get withCredentials' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          return esValue[implSymbol]["withCredentials"];
        }
        set withCredentials(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set withCredentials' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          V = conversions["boolean"](V, {
            context: "Failed to set the 'withCredentials' property on 'XMLHttpRequest': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["withCredentials"] = V;
        }
        get upload() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get upload' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          return utils2.getSameObject(this, "upload", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["upload"]);
          });
        }
        get responseURL() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get responseURL' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          return esValue[implSymbol]["responseURL"];
        }
        get status() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get status' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          return esValue[implSymbol]["status"];
        }
        get statusText() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get statusText' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          return esValue[implSymbol]["statusText"];
        }
        get responseType() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get responseType' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["responseType"]);
        }
        set responseType(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set responseType' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          V = `${V}`;
          if (!XMLHttpRequestResponseType.enumerationValues.has(V)) {
            return;
          }
          esValue[implSymbol]["responseType"] = V;
        }
        get response() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get response' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          return esValue[implSymbol]["response"];
        }
        get responseText() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get responseText' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          return esValue[implSymbol]["responseText"];
        }
        get responseXML() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get responseXML' called on an object that is not a valid instance of XMLHttpRequest."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["responseXML"]);
        }
      }
      Object.defineProperties(XMLHttpRequest2.prototype, {
        open: { enumerable: true },
        setRequestHeader: { enumerable: true },
        send: { enumerable: true },
        abort: { enumerable: true },
        getResponseHeader: { enumerable: true },
        getAllResponseHeaders: { enumerable: true },
        overrideMimeType: { enumerable: true },
        onreadystatechange: { enumerable: true },
        readyState: { enumerable: true },
        timeout: { enumerable: true },
        withCredentials: { enumerable: true },
        upload: { enumerable: true },
        responseURL: { enumerable: true },
        status: { enumerable: true },
        statusText: { enumerable: true },
        responseType: { enumerable: true },
        response: { enumerable: true },
        responseText: { enumerable: true },
        responseXML: { enumerable: true },
        [Symbol.toStringTag]: { value: "XMLHttpRequest", configurable: true },
        UNSENT: { value: 0, enumerable: true },
        OPENED: { value: 1, enumerable: true },
        HEADERS_RECEIVED: { value: 2, enumerable: true },
        LOADING: { value: 3, enumerable: true },
        DONE: { value: 4, enumerable: true }
      });
      Object.defineProperties(XMLHttpRequest2, {
        UNSENT: { value: 0, enumerable: true },
        OPENED: { value: 1, enumerable: true },
        HEADERS_RECEIVED: { value: 2, enumerable: true },
        LOADING: { value: 3, enumerable: true },
        DONE: { value: 4, enumerable: true }
      });
      ctorRegistry[interfaceName] = XMLHttpRequest2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: XMLHttpRequest2
      });
    };
    var Impl = require_XMLHttpRequest_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js
var require_BinaryType = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js"(exports) {
    "use strict";
    var enumerationValues = /* @__PURE__ */ new Set(["blob", "arraybuffer"]);
    exports.enumerationValues = enumerationValues;
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      const string = `${value2}`;
      if (!enumerationValues.has(string)) {
        throw new globalObject.TypeError(`${context} '${string}' is not a valid enumeration value for BinaryType`);
      }
      return string;
    };
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/constants.js
var require_constants10 = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/constants.js"(exports, module) {
    "use strict";
    var BINARY_TYPES = ["nodebuffer", "arraybuffer", "fragments"];
    var hasBlob = typeof Blob !== "undefined";
    if (hasBlob) BINARY_TYPES.push("blob");
    module.exports = {
      BINARY_TYPES,
      CLOSE_TIMEOUT: 3e4,
      EMPTY_BUFFER: Buffer.alloc(0),
      GUID: "258EAFA5-E914-47DA-95CA-C5AB0DC85B11",
      hasBlob,
      kForOnEventAttribute: Symbol("kIsForOnEventAttribute"),
      kListener: Symbol("kListener"),
      kStatusCode: Symbol("status-code"),
      kWebSocket: Symbol("websocket"),
      NOOP: () => {
      }
    };
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/buffer-util.js
var require_buffer_util = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/buffer-util.js"(exports, module) {
    "use strict";
    var { EMPTY_BUFFER } = require_constants10();
    var FastBuffer = Buffer[Symbol.species];
    function concat2(list, totalLength) {
      if (list.length === 0) return EMPTY_BUFFER;
      if (list.length === 1) return list[0];
      const target = Buffer.allocUnsafe(totalLength);
      let offset2 = 0;
      for (let i5 = 0; i5 < list.length; i5++) {
        const buf = list[i5];
        target.set(buf, offset2);
        offset2 += buf.length;
      }
      if (offset2 < totalLength) {
        return new FastBuffer(target.buffer, target.byteOffset, offset2);
      }
      return target;
    }
    function _mask(source, mask, output, offset2, length2) {
      for (let i5 = 0; i5 < length2; i5++) {
        output[offset2 + i5] = source[i5] ^ mask[i5 & 3];
      }
    }
    function _unmask(buffer, mask) {
      for (let i5 = 0; i5 < buffer.length; i5++) {
        buffer[i5] ^= mask[i5 & 3];
      }
    }
    function toArrayBuffer(buf) {
      if (buf.length === buf.buffer.byteLength) {
        return buf.buffer;
      }
      return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.length);
    }
    function toBuffer(data2) {
      toBuffer.readOnly = true;
      if (Buffer.isBuffer(data2)) return data2;
      let buf;
      if (data2 instanceof ArrayBuffer) {
        buf = new FastBuffer(data2);
      } else if (ArrayBuffer.isView(data2)) {
        buf = new FastBuffer(data2.buffer, data2.byteOffset, data2.byteLength);
      } else {
        buf = Buffer.from(data2);
        toBuffer.readOnly = false;
      }
      return buf;
    }
    module.exports = {
      concat: concat2,
      mask: _mask,
      toArrayBuffer,
      toBuffer,
      unmask: _unmask
    };
    if (!process.env.WS_NO_BUFFER_UTIL) {
      try {
        const bufferUtil = __require("bufferutil");
        module.exports.mask = function(source, mask, output, offset2, length2) {
          if (length2 < 48) _mask(source, mask, output, offset2, length2);
          else bufferUtil.mask(source, mask, output, offset2, length2);
        };
        module.exports.unmask = function(buffer, mask) {
          if (buffer.length < 32) _unmask(buffer, mask);
          else bufferUtil.unmask(buffer, mask);
        };
      } catch (e4) {
      }
    }
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/limiter.js
var require_limiter = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/limiter.js"(exports, module) {
    "use strict";
    var kDone = Symbol("kDone");
    var kRun = Symbol("kRun");
    var Limiter = class {
      /**
       * Creates a new `Limiter`.
       *
       * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed
       *     to run concurrently
       */
      constructor(concurrency) {
        this[kDone] = () => {
          this.pending--;
          this[kRun]();
        };
        this.concurrency = concurrency || Infinity;
        this.jobs = [];
        this.pending = 0;
      }
      /**
       * Adds a job to the queue.
       *
       * @param {Function} job The job to run
       * @public
       */
      add(job) {
        this.jobs.push(job);
        this[kRun]();
      }
      /**
       * Removes a job from the queue and runs it if possible.
       *
       * @private
       */
      [kRun]() {
        if (this.pending === this.concurrency) return;
        if (this.jobs.length) {
          const job = this.jobs.shift();
          this.pending++;
          job(this[kDone]);
        }
      }
    };
    module.exports = Limiter;
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/permessage-deflate.js
var require_permessage_deflate = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/permessage-deflate.js"(exports, module) {
    "use strict";
    var zlib6 = __require("zlib");
    var bufferUtil = require_buffer_util();
    var Limiter = require_limiter();
    var { kStatusCode } = require_constants10();
    var FastBuffer = Buffer[Symbol.species];
    var TRAILER = Buffer.from([0, 0, 255, 255]);
    var kPerMessageDeflate = Symbol("permessage-deflate");
    var kTotalLength = Symbol("total-length");
    var kCallback = Symbol("callback");
    var kBuffers = Symbol("buffers");
    var kError = Symbol("error");
    var zlibLimiter;
    var PerMessageDeflate = class {
      /**
       * Creates a PerMessageDeflate instance.
       *
       * @param {Object} [options] Configuration options
       * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support
       *     for, or request, a custom client window size
       * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/
       *     acknowledge disabling of client context takeover
       * @param {Number} [options.concurrencyLimit=10] The number of concurrent
       *     calls to zlib
       * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the
       *     use of a custom server window size
       * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept
       *     disabling of server context takeover
       * @param {Number} [options.threshold=1024] Size (in bytes) below which
       *     messages should not be compressed if context takeover is disabled
       * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on
       *     deflate
       * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on
       *     inflate
       * @param {Boolean} [isServer=false] Create the instance in either server or
       *     client mode
       * @param {Number} [maxPayload=0] The maximum allowed message length
       */
      constructor(options, isServer, maxPayload) {
        this._maxPayload = maxPayload | 0;
        this._options = options || {};
        this._threshold = this._options.threshold !== void 0 ? this._options.threshold : 1024;
        this._isServer = !!isServer;
        this._deflate = null;
        this._inflate = null;
        this.params = null;
        if (!zlibLimiter) {
          const concurrency = this._options.concurrencyLimit !== void 0 ? this._options.concurrencyLimit : 10;
          zlibLimiter = new Limiter(concurrency);
        }
      }
      /**
       * @type {String}
       */
      static get extensionName() {
        return "permessage-deflate";
      }
      /**
       * Create an extension negotiation offer.
       *
       * @return {Object} Extension parameters
       * @public
       */
      offer() {
        const params = {};
        if (this._options.serverNoContextTakeover) {
          params.server_no_context_takeover = true;
        }
        if (this._options.clientNoContextTakeover) {
          params.client_no_context_takeover = true;
        }
        if (this._options.serverMaxWindowBits) {
          params.server_max_window_bits = this._options.serverMaxWindowBits;
        }
        if (this._options.clientMaxWindowBits) {
          params.client_max_window_bits = this._options.clientMaxWindowBits;
        } else if (this._options.clientMaxWindowBits == null) {
          params.client_max_window_bits = true;
        }
        return params;
      }
      /**
       * Accept an extension negotiation offer/response.
       *
       * @param {Array} configurations The extension negotiation offers/reponse
       * @return {Object} Accepted configuration
       * @public
       */
      accept(configurations) {
        configurations = this.normalizeParams(configurations);
        this.params = this._isServer ? this.acceptAsServer(configurations) : this.acceptAsClient(configurations);
        return this.params;
      }
      /**
       * Releases all resources used by the extension.
       *
       * @public
       */
      cleanup() {
        if (this._inflate) {
          this._inflate.close();
          this._inflate = null;
        }
        if (this._deflate) {
          const callback = this._deflate[kCallback];
          this._deflate.close();
          this._deflate = null;
          if (callback) {
            callback(
              new Error(
                "The deflate stream was closed while data was being processed"
              )
            );
          }
        }
      }
      /**
       *  Accept an extension negotiation offer.
       *
       * @param {Array} offers The extension negotiation offers
       * @return {Object} Accepted configuration
       * @private
       */
      acceptAsServer(offers) {
        const opts2 = this._options;
        const accepted = offers.find((params) => {
          if (opts2.serverNoContextTakeover === false && params.server_no_context_takeover || params.server_max_window_bits && (opts2.serverMaxWindowBits === false || typeof opts2.serverMaxWindowBits === "number" && opts2.serverMaxWindowBits > params.server_max_window_bits) || typeof opts2.clientMaxWindowBits === "number" && !params.client_max_window_bits) {
            return false;
          }
          return true;
        });
        if (!accepted) {
          throw new Error("None of the extension offers can be accepted");
        }
        if (opts2.serverNoContextTakeover) {
          accepted.server_no_context_takeover = true;
        }
        if (opts2.clientNoContextTakeover) {
          accepted.client_no_context_takeover = true;
        }
        if (typeof opts2.serverMaxWindowBits === "number") {
          accepted.server_max_window_bits = opts2.serverMaxWindowBits;
        }
        if (typeof opts2.clientMaxWindowBits === "number") {
          accepted.client_max_window_bits = opts2.clientMaxWindowBits;
        } else if (accepted.client_max_window_bits === true || opts2.clientMaxWindowBits === false) {
          delete accepted.client_max_window_bits;
        }
        return accepted;
      }
      /**
       * Accept the extension negotiation response.
       *
       * @param {Array} response The extension negotiation response
       * @return {Object} Accepted configuration
       * @private
       */
      acceptAsClient(response) {
        const params = response[0];
        if (this._options.clientNoContextTakeover === false && params.client_no_context_takeover) {
          throw new Error('Unexpected parameter "client_no_context_takeover"');
        }
        if (!params.client_max_window_bits) {
          if (typeof this._options.clientMaxWindowBits === "number") {
            params.client_max_window_bits = this._options.clientMaxWindowBits;
          }
        } else if (this._options.clientMaxWindowBits === false || typeof this._options.clientMaxWindowBits === "number" && params.client_max_window_bits > this._options.clientMaxWindowBits) {
          throw new Error(
            'Unexpected or invalid parameter "client_max_window_bits"'
          );
        }
        return params;
      }
      /**
       * Normalize parameters.
       *
       * @param {Array} configurations The extension negotiation offers/reponse
       * @return {Array} The offers/response with normalized parameters
       * @private
       */
      normalizeParams(configurations) {
        configurations.forEach((params) => {
          Object.keys(params).forEach((key) => {
            let value2 = params[key];
            if (value2.length > 1) {
              throw new Error(`Parameter "${key}" must have only a single value`);
            }
            value2 = value2[0];
            if (key === "client_max_window_bits") {
              if (value2 !== true) {
                const num = +value2;
                if (!Number.isInteger(num) || num < 8 || num > 15) {
                  throw new TypeError(
                    `Invalid value for parameter "${key}": ${value2}`
                  );
                }
                value2 = num;
              } else if (!this._isServer) {
                throw new TypeError(
                  `Invalid value for parameter "${key}": ${value2}`
                );
              }
            } else if (key === "server_max_window_bits") {
              const num = +value2;
              if (!Number.isInteger(num) || num < 8 || num > 15) {
                throw new TypeError(
                  `Invalid value for parameter "${key}": ${value2}`
                );
              }
              value2 = num;
            } else if (key === "client_no_context_takeover" || key === "server_no_context_takeover") {
              if (value2 !== true) {
                throw new TypeError(
                  `Invalid value for parameter "${key}": ${value2}`
                );
              }
            } else {
              throw new Error(`Unknown parameter "${key}"`);
            }
            params[key] = value2;
          });
        });
        return configurations;
      }
      /**
       * Decompress data. Concurrency limited.
       *
       * @param {Buffer} data Compressed data
       * @param {Boolean} fin Specifies whether or not this is the last fragment
       * @param {Function} callback Callback
       * @public
       */
      decompress(data2, fin, callback) {
        zlibLimiter.add((done) => {
          this._decompress(data2, fin, (err2, result) => {
            done();
            callback(err2, result);
          });
        });
      }
      /**
       * Compress data. Concurrency limited.
       *
       * @param {(Buffer|String)} data Data to compress
       * @param {Boolean} fin Specifies whether or not this is the last fragment
       * @param {Function} callback Callback
       * @public
       */
      compress(data2, fin, callback) {
        zlibLimiter.add((done) => {
          this._compress(data2, fin, (err2, result) => {
            done();
            callback(err2, result);
          });
        });
      }
      /**
       * Decompress data.
       *
       * @param {Buffer} data Compressed data
       * @param {Boolean} fin Specifies whether or not this is the last fragment
       * @param {Function} callback Callback
       * @private
       */
      _decompress(data2, fin, callback) {
        const endpoint = this._isServer ? "client" : "server";
        if (!this._inflate) {
          const key = `${endpoint}_max_window_bits`;
          const windowBits = typeof this.params[key] !== "number" ? zlib6.Z_DEFAULT_WINDOWBITS : this.params[key];
          this._inflate = zlib6.createInflateRaw({
            ...this._options.zlibInflateOptions,
            windowBits
          });
          this._inflate[kPerMessageDeflate] = this;
          this._inflate[kTotalLength] = 0;
          this._inflate[kBuffers] = [];
          this._inflate.on("error", inflateOnError);
          this._inflate.on("data", inflateOnData);
        }
        this._inflate[kCallback] = callback;
        this._inflate.write(data2);
        if (fin) this._inflate.write(TRAILER);
        this._inflate.flush(() => {
          const err2 = this._inflate[kError];
          if (err2) {
            this._inflate.close();
            this._inflate = null;
            callback(err2);
            return;
          }
          const data3 = bufferUtil.concat(
            this._inflate[kBuffers],
            this._inflate[kTotalLength]
          );
          if (this._inflate._readableState.endEmitted) {
            this._inflate.close();
            this._inflate = null;
          } else {
            this._inflate[kTotalLength] = 0;
            this._inflate[kBuffers] = [];
            if (fin && this.params[`${endpoint}_no_context_takeover`]) {
              this._inflate.reset();
            }
          }
          callback(null, data3);
        });
      }
      /**
       * Compress data.
       *
       * @param {(Buffer|String)} data Data to compress
       * @param {Boolean} fin Specifies whether or not this is the last fragment
       * @param {Function} callback Callback
       * @private
       */
      _compress(data2, fin, callback) {
        const endpoint = this._isServer ? "server" : "client";
        if (!this._deflate) {
          const key = `${endpoint}_max_window_bits`;
          const windowBits = typeof this.params[key] !== "number" ? zlib6.Z_DEFAULT_WINDOWBITS : this.params[key];
          this._deflate = zlib6.createDeflateRaw({
            ...this._options.zlibDeflateOptions,
            windowBits
          });
          this._deflate[kTotalLength] = 0;
          this._deflate[kBuffers] = [];
          this._deflate.on("data", deflateOnData);
        }
        this._deflate[kCallback] = callback;
        this._deflate.write(data2);
        this._deflate.flush(zlib6.Z_SYNC_FLUSH, () => {
          if (!this._deflate) {
            return;
          }
          let data3 = bufferUtil.concat(
            this._deflate[kBuffers],
            this._deflate[kTotalLength]
          );
          if (fin) {
            data3 = new FastBuffer(data3.buffer, data3.byteOffset, data3.length - 4);
          }
          this._deflate[kCallback] = null;
          this._deflate[kTotalLength] = 0;
          this._deflate[kBuffers] = [];
          if (fin && this.params[`${endpoint}_no_context_takeover`]) {
            this._deflate.reset();
          }
          callback(null, data3);
        });
      }
    };
    module.exports = PerMessageDeflate;
    function deflateOnData(chunk3) {
      this[kBuffers].push(chunk3);
      this[kTotalLength] += chunk3.length;
    }
    function inflateOnData(chunk3) {
      this[kTotalLength] += chunk3.length;
      if (this[kPerMessageDeflate]._maxPayload < 1 || this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload) {
        this[kBuffers].push(chunk3);
        return;
      }
      this[kError] = new RangeError("Max payload size exceeded");
      this[kError].code = "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH";
      this[kError][kStatusCode] = 1009;
      this.removeListener("data", inflateOnData);
      this.reset();
    }
    function inflateOnError(err2) {
      this[kPerMessageDeflate]._inflate = null;
      if (this[kError]) {
        this[kCallback](this[kError]);
        return;
      }
      err2[kStatusCode] = 1007;
      this[kCallback](err2);
    }
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/validation.js
var require_validation = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/validation.js"(exports, module) {
    "use strict";
    var { isUtf8 } = __require("buffer");
    var { hasBlob } = require_constants10();
    var tokenChars = [
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      // 0 - 15
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      // 16 - 31
      0,
      1,
      0,
      1,
      1,
      1,
      1,
      1,
      0,
      0,
      1,
      1,
      0,
      1,
      1,
      0,
      // 32 - 47
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      0,
      0,
      0,
      0,
      0,
      0,
      // 48 - 63
      0,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      // 64 - 79
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      0,
      0,
      0,
      1,
      1,
      // 80 - 95
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      // 96 - 111
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      0,
      1,
      0,
      1,
      0
      // 112 - 127
    ];
    function isValidStatusCode(code) {
      return code >= 1e3 && code <= 1014 && code !== 1004 && code !== 1005 && code !== 1006 || code >= 3e3 && code <= 4999;
    }
    function _isValidUTF8(buf) {
      const len = buf.length;
      let i5 = 0;
      while (i5 < len) {
        if ((buf[i5] & 128) === 0) {
          i5++;
        } else if ((buf[i5] & 224) === 192) {
          if (i5 + 1 === len || (buf[i5 + 1] & 192) !== 128 || (buf[i5] & 254) === 192) {
            return false;
          }
          i5 += 2;
        } else if ((buf[i5] & 240) === 224) {
          if (i5 + 2 >= len || (buf[i5 + 1] & 192) !== 128 || (buf[i5 + 2] & 192) !== 128 || buf[i5] === 224 && (buf[i5 + 1] & 224) === 128 || // Overlong
          buf[i5] === 237 && (buf[i5 + 1] & 224) === 160) {
            return false;
          }
          i5 += 3;
        } else if ((buf[i5] & 248) === 240) {
          if (i5 + 3 >= len || (buf[i5 + 1] & 192) !== 128 || (buf[i5 + 2] & 192) !== 128 || (buf[i5 + 3] & 192) !== 128 || buf[i5] === 240 && (buf[i5 + 1] & 240) === 128 || // Overlong
          buf[i5] === 244 && buf[i5 + 1] > 143 || buf[i5] > 244) {
            return false;
          }
          i5 += 4;
        } else {
          return false;
        }
      }
      return true;
    }
    function isBlob4(value2) {
      return hasBlob && typeof value2 === "object" && typeof value2.arrayBuffer === "function" && typeof value2.type === "string" && typeof value2.stream === "function" && (value2[Symbol.toStringTag] === "Blob" || value2[Symbol.toStringTag] === "File");
    }
    module.exports = {
      isBlob: isBlob4,
      isValidStatusCode,
      isValidUTF8: _isValidUTF8,
      tokenChars
    };
    if (isUtf8) {
      module.exports.isValidUTF8 = function(buf) {
        return buf.length < 24 ? _isValidUTF8(buf) : isUtf8(buf);
      };
    } else if (!process.env.WS_NO_UTF_8_VALIDATE) {
      try {
        const isValidUTF8 = __require("utf-8-validate");
        module.exports.isValidUTF8 = function(buf) {
          return buf.length < 32 ? _isValidUTF8(buf) : isValidUTF8(buf);
        };
      } catch (e4) {
      }
    }
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/receiver.js
var require_receiver = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/receiver.js"(exports, module) {
    "use strict";
    var { Writable } = __require("stream");
    var PerMessageDeflate = require_permessage_deflate();
    var {
      BINARY_TYPES,
      EMPTY_BUFFER,
      kStatusCode,
      kWebSocket
    } = require_constants10();
    var { concat: concat2, toArrayBuffer, unmask } = require_buffer_util();
    var { isValidStatusCode, isValidUTF8 } = require_validation();
    var FastBuffer = Buffer[Symbol.species];
    var GET_INFO = 0;
    var GET_PAYLOAD_LENGTH_16 = 1;
    var GET_PAYLOAD_LENGTH_64 = 2;
    var GET_MASK = 3;
    var GET_DATA = 4;
    var INFLATING = 5;
    var DEFER_EVENT = 6;
    var Receiver = class extends Writable {
      /**
       * Creates a Receiver instance.
       *
       * @param {Object} [options] Options object
       * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether
       *     any of the `'message'`, `'ping'`, and `'pong'` events can be emitted
       *     multiple times in the same tick
       * @param {String} [options.binaryType=nodebuffer] The type for binary data
       * @param {Object} [options.extensions] An object containing the negotiated
       *     extensions
       * @param {Boolean} [options.isServer=false] Specifies whether to operate in
       *     client or server mode
       * @param {Number} [options.maxPayload=0] The maximum allowed message length
       * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or
       *     not to skip UTF-8 validation for text and close messages
       */
      constructor(options = {}) {
        super();
        this._allowSynchronousEvents = options.allowSynchronousEvents !== void 0 ? options.allowSynchronousEvents : true;
        this._binaryType = options.binaryType || BINARY_TYPES[0];
        this._extensions = options.extensions || {};
        this._isServer = !!options.isServer;
        this._maxPayload = options.maxPayload | 0;
        this._skipUTF8Validation = !!options.skipUTF8Validation;
        this[kWebSocket] = void 0;
        this._bufferedBytes = 0;
        this._buffers = [];
        this._compressed = false;
        this._payloadLength = 0;
        this._mask = void 0;
        this._fragmented = 0;
        this._masked = false;
        this._fin = false;
        this._opcode = 0;
        this._totalPayloadLength = 0;
        this._messageLength = 0;
        this._fragments = [];
        this._errored = false;
        this._loop = false;
        this._state = GET_INFO;
      }
      /**
       * Implements `Writable.prototype._write()`.
       *
       * @param {Buffer} chunk The chunk of data to write
       * @param {String} encoding The character encoding of `chunk`
       * @param {Function} cb Callback
       * @private
       */
      _write(chunk3, encoding, cb) {
        if (this._opcode === 8 && this._state == GET_INFO) return cb();
        this._bufferedBytes += chunk3.length;
        this._buffers.push(chunk3);
        this.startLoop(cb);
      }
      /**
       * Consumes `n` bytes from the buffered data.
       *
       * @param {Number} n The number of bytes to consume
       * @return {Buffer} The consumed bytes
       * @private
       */
      consume(n6) {
        this._bufferedBytes -= n6;
        if (n6 === this._buffers[0].length) return this._buffers.shift();
        if (n6 < this._buffers[0].length) {
          const buf = this._buffers[0];
          this._buffers[0] = new FastBuffer(
            buf.buffer,
            buf.byteOffset + n6,
            buf.length - n6
          );
          return new FastBuffer(buf.buffer, buf.byteOffset, n6);
        }
        const dst = Buffer.allocUnsafe(n6);
        do {
          const buf = this._buffers[0];
          const offset2 = dst.length - n6;
          if (n6 >= buf.length) {
            dst.set(this._buffers.shift(), offset2);
          } else {
            dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n6), offset2);
            this._buffers[0] = new FastBuffer(
              buf.buffer,
              buf.byteOffset + n6,
              buf.length - n6
            );
          }
          n6 -= buf.length;
        } while (n6 > 0);
        return dst;
      }
      /**
       * Starts the parsing loop.
       *
       * @param {Function} cb Callback
       * @private
       */
      startLoop(cb) {
        this._loop = true;
        do {
          switch (this._state) {
            case GET_INFO:
              this.getInfo(cb);
              break;
            case GET_PAYLOAD_LENGTH_16:
              this.getPayloadLength16(cb);
              break;
            case GET_PAYLOAD_LENGTH_64:
              this.getPayloadLength64(cb);
              break;
            case GET_MASK:
              this.getMask();
              break;
            case GET_DATA:
              this.getData(cb);
              break;
            case INFLATING:
            case DEFER_EVENT:
              this._loop = false;
              return;
          }
        } while (this._loop);
        if (!this._errored) cb();
      }
      /**
       * Reads the first two bytes of a frame.
       *
       * @param {Function} cb Callback
       * @private
       */
      getInfo(cb) {
        if (this._bufferedBytes < 2) {
          this._loop = false;
          return;
        }
        const buf = this.consume(2);
        if ((buf[0] & 48) !== 0) {
          const error = this.createError(
            RangeError,
            "RSV2 and RSV3 must be clear",
            true,
            1002,
            "WS_ERR_UNEXPECTED_RSV_2_3"
          );
          cb(error);
          return;
        }
        const compressed = (buf[0] & 64) === 64;
        if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {
          const error = this.createError(
            RangeError,
            "RSV1 must be clear",
            true,
            1002,
            "WS_ERR_UNEXPECTED_RSV_1"
          );
          cb(error);
          return;
        }
        this._fin = (buf[0] & 128) === 128;
        this._opcode = buf[0] & 15;
        this._payloadLength = buf[1] & 127;
        if (this._opcode === 0) {
          if (compressed) {
            const error = this.createError(
              RangeError,
              "RSV1 must be clear",
              true,
              1002,
              "WS_ERR_UNEXPECTED_RSV_1"
            );
            cb(error);
            return;
          }
          if (!this._fragmented) {
            const error = this.createError(
              RangeError,
              "invalid opcode 0",
              true,
              1002,
              "WS_ERR_INVALID_OPCODE"
            );
            cb(error);
            return;
          }
          this._opcode = this._fragmented;
        } else if (this._opcode === 1 || this._opcode === 2) {
          if (this._fragmented) {
            const error = this.createError(
              RangeError,
              `invalid opcode ${this._opcode}`,
              true,
              1002,
              "WS_ERR_INVALID_OPCODE"
            );
            cb(error);
            return;
          }
          this._compressed = compressed;
        } else if (this._opcode > 7 && this._opcode < 11) {
          if (!this._fin) {
            const error = this.createError(
              RangeError,
              "FIN must be set",
              true,
              1002,
              "WS_ERR_EXPECTED_FIN"
            );
            cb(error);
            return;
          }
          if (compressed) {
            const error = this.createError(
              RangeError,
              "RSV1 must be clear",
              true,
              1002,
              "WS_ERR_UNEXPECTED_RSV_1"
            );
            cb(error);
            return;
          }
          if (this._payloadLength > 125 || this._opcode === 8 && this._payloadLength === 1) {
            const error = this.createError(
              RangeError,
              `invalid payload length ${this._payloadLength}`,
              true,
              1002,
              "WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH"
            );
            cb(error);
            return;
          }
        } else {
          const error = this.createError(
            RangeError,
            `invalid opcode ${this._opcode}`,
            true,
            1002,
            "WS_ERR_INVALID_OPCODE"
          );
          cb(error);
          return;
        }
        if (!this._fin && !this._fragmented) this._fragmented = this._opcode;
        this._masked = (buf[1] & 128) === 128;
        if (this._isServer) {
          if (!this._masked) {
            const error = this.createError(
              RangeError,
              "MASK must be set",
              true,
              1002,
              "WS_ERR_EXPECTED_MASK"
            );
            cb(error);
            return;
          }
        } else if (this._masked) {
          const error = this.createError(
            RangeError,
            "MASK must be clear",
            true,
            1002,
            "WS_ERR_UNEXPECTED_MASK"
          );
          cb(error);
          return;
        }
        if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;
        else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;
        else this.haveLength(cb);
      }
      /**
       * Gets extended payload length (7+16).
       *
       * @param {Function} cb Callback
       * @private
       */
      getPayloadLength16(cb) {
        if (this._bufferedBytes < 2) {
          this._loop = false;
          return;
        }
        this._payloadLength = this.consume(2).readUInt16BE(0);
        this.haveLength(cb);
      }
      /**
       * Gets extended payload length (7+64).
       *
       * @param {Function} cb Callback
       * @private
       */
      getPayloadLength64(cb) {
        if (this._bufferedBytes < 8) {
          this._loop = false;
          return;
        }
        const buf = this.consume(8);
        const num = buf.readUInt32BE(0);
        if (num > Math.pow(2, 53 - 32) - 1) {
          const error = this.createError(
            RangeError,
            "Unsupported WebSocket frame: payload length > 2^53 - 1",
            false,
            1009,
            "WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH"
          );
          cb(error);
          return;
        }
        this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);
        this.haveLength(cb);
      }
      /**
       * Payload length has been read.
       *
       * @param {Function} cb Callback
       * @private
       */
      haveLength(cb) {
        if (this._payloadLength && this._opcode < 8) {
          this._totalPayloadLength += this._payloadLength;
          if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {
            const error = this.createError(
              RangeError,
              "Max payload size exceeded",
              false,
              1009,
              "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"
            );
            cb(error);
            return;
          }
        }
        if (this._masked) this._state = GET_MASK;
        else this._state = GET_DATA;
      }
      /**
       * Reads mask bytes.
       *
       * @private
       */
      getMask() {
        if (this._bufferedBytes < 4) {
          this._loop = false;
          return;
        }
        this._mask = this.consume(4);
        this._state = GET_DATA;
      }
      /**
       * Reads data bytes.
       *
       * @param {Function} cb Callback
       * @private
       */
      getData(cb) {
        let data2 = EMPTY_BUFFER;
        if (this._payloadLength) {
          if (this._bufferedBytes < this._payloadLength) {
            this._loop = false;
            return;
          }
          data2 = this.consume(this._payloadLength);
          if (this._masked && (this._mask[0] | this._mask[1] | this._mask[2] | this._mask[3]) !== 0) {
            unmask(data2, this._mask);
          }
        }
        if (this._opcode > 7) {
          this.controlMessage(data2, cb);
          return;
        }
        if (this._compressed) {
          this._state = INFLATING;
          this.decompress(data2, cb);
          return;
        }
        if (data2.length) {
          this._messageLength = this._totalPayloadLength;
          this._fragments.push(data2);
        }
        this.dataMessage(cb);
      }
      /**
       * Decompresses data.
       *
       * @param {Buffer} data Compressed data
       * @param {Function} cb Callback
       * @private
       */
      decompress(data2, cb) {
        const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
        perMessageDeflate.decompress(data2, this._fin, (err2, buf) => {
          if (err2) return cb(err2);
          if (buf.length) {
            this._messageLength += buf.length;
            if (this._messageLength > this._maxPayload && this._maxPayload > 0) {
              const error = this.createError(
                RangeError,
                "Max payload size exceeded",
                false,
                1009,
                "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"
              );
              cb(error);
              return;
            }
            this._fragments.push(buf);
          }
          this.dataMessage(cb);
          if (this._state === GET_INFO) this.startLoop(cb);
        });
      }
      /**
       * Handles a data message.
       *
       * @param {Function} cb Callback
       * @private
       */
      dataMessage(cb) {
        if (!this._fin) {
          this._state = GET_INFO;
          return;
        }
        const messageLength = this._messageLength;
        const fragments = this._fragments;
        this._totalPayloadLength = 0;
        this._messageLength = 0;
        this._fragmented = 0;
        this._fragments = [];
        if (this._opcode === 2) {
          let data2;
          if (this._binaryType === "nodebuffer") {
            data2 = concat2(fragments, messageLength);
          } else if (this._binaryType === "arraybuffer") {
            data2 = toArrayBuffer(concat2(fragments, messageLength));
          } else if (this._binaryType === "blob") {
            data2 = new Blob(fragments);
          } else {
            data2 = fragments;
          }
          if (this._allowSynchronousEvents) {
            this.emit("message", data2, true);
            this._state = GET_INFO;
          } else {
            this._state = DEFER_EVENT;
            setImmediate(() => {
              this.emit("message", data2, true);
              this._state = GET_INFO;
              this.startLoop(cb);
            });
          }
        } else {
          const buf = concat2(fragments, messageLength);
          if (!this._skipUTF8Validation && !isValidUTF8(buf)) {
            const error = this.createError(
              Error,
              "invalid UTF-8 sequence",
              true,
              1007,
              "WS_ERR_INVALID_UTF8"
            );
            cb(error);
            return;
          }
          if (this._state === INFLATING || this._allowSynchronousEvents) {
            this.emit("message", buf, false);
            this._state = GET_INFO;
          } else {
            this._state = DEFER_EVENT;
            setImmediate(() => {
              this.emit("message", buf, false);
              this._state = GET_INFO;
              this.startLoop(cb);
            });
          }
        }
      }
      /**
       * Handles a control message.
       *
       * @param {Buffer} data Data to handle
       * @return {(Error|RangeError|undefined)} A possible error
       * @private
       */
      controlMessage(data2, cb) {
        if (this._opcode === 8) {
          if (data2.length === 0) {
            this._loop = false;
            this.emit("conclude", 1005, EMPTY_BUFFER);
            this.end();
          } else {
            const code = data2.readUInt16BE(0);
            if (!isValidStatusCode(code)) {
              const error = this.createError(
                RangeError,
                `invalid status code ${code}`,
                true,
                1002,
                "WS_ERR_INVALID_CLOSE_CODE"
              );
              cb(error);
              return;
            }
            const buf = new FastBuffer(
              data2.buffer,
              data2.byteOffset + 2,
              data2.length - 2
            );
            if (!this._skipUTF8Validation && !isValidUTF8(buf)) {
              const error = this.createError(
                Error,
                "invalid UTF-8 sequence",
                true,
                1007,
                "WS_ERR_INVALID_UTF8"
              );
              cb(error);
              return;
            }
            this._loop = false;
            this.emit("conclude", code, buf);
            this.end();
          }
          this._state = GET_INFO;
          return;
        }
        if (this._allowSynchronousEvents) {
          this.emit(this._opcode === 9 ? "ping" : "pong", data2);
          this._state = GET_INFO;
        } else {
          this._state = DEFER_EVENT;
          setImmediate(() => {
            this.emit(this._opcode === 9 ? "ping" : "pong", data2);
            this._state = GET_INFO;
            this.startLoop(cb);
          });
        }
      }
      /**
       * Builds an error object.
       *
       * @param {function(new:Error|RangeError)} ErrorCtor The error constructor
       * @param {String} message The error message
       * @param {Boolean} prefix Specifies whether or not to add a default prefix to
       *     `message`
       * @param {Number} statusCode The status code
       * @param {String} errorCode The exposed error code
       * @return {(Error|RangeError)} The error
       * @private
       */
      createError(ErrorCtor, message, prefix, statusCode, errorCode) {
        this._loop = false;
        this._errored = true;
        const err2 = new ErrorCtor(
          prefix ? `Invalid WebSocket frame: ${message}` : message
        );
        Error.captureStackTrace(err2, this.createError);
        err2.code = errorCode;
        err2[kStatusCode] = statusCode;
        return err2;
      }
    };
    module.exports = Receiver;
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/sender.js
var require_sender = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/sender.js"(exports, module) {
    "use strict";
    var { Duplex: Duplex2 } = __require("stream");
    var { randomFillSync } = __require("crypto");
    var PerMessageDeflate = require_permessage_deflate();
    var { EMPTY_BUFFER, kWebSocket, NOOP } = require_constants10();
    var { isBlob: isBlob4, isValidStatusCode } = require_validation();
    var { mask: applyMask, toBuffer } = require_buffer_util();
    var kByteLength = Symbol("kByteLength");
    var maskBuffer = Buffer.alloc(4);
    var RANDOM_POOL_SIZE = 8 * 1024;
    var randomPool;
    var randomPoolPointer = RANDOM_POOL_SIZE;
    var DEFAULT = 0;
    var DEFLATING = 1;
    var GET_BLOB_DATA = 2;
    var Sender = class _Sender {
      /**
       * Creates a Sender instance.
       *
       * @param {Duplex} socket The connection socket
       * @param {Object} [extensions] An object containing the negotiated extensions
       * @param {Function} [generateMask] The function used to generate the masking
       *     key
       */
      constructor(socket, extensions2, generateMask) {
        this._extensions = extensions2 || {};
        if (generateMask) {
          this._generateMask = generateMask;
          this._maskBuffer = Buffer.alloc(4);
        }
        this._socket = socket;
        this._firstFragment = true;
        this._compress = false;
        this._bufferedBytes = 0;
        this._queue = [];
        this._state = DEFAULT;
        this.onerror = NOOP;
        this[kWebSocket] = void 0;
      }
      /**
       * Frames a piece of data according to the HyBi WebSocket protocol.
       *
       * @param {(Buffer|String)} data The data to frame
       * @param {Object} options Options object
       * @param {Boolean} [options.fin=false] Specifies whether or not to set the
       *     FIN bit
       * @param {Function} [options.generateMask] The function used to generate the
       *     masking key
       * @param {Boolean} [options.mask=false] Specifies whether or not to mask
       *     `data`
       * @param {Buffer} [options.maskBuffer] The buffer used to store the masking
       *     key
       * @param {Number} options.opcode The opcode
       * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be
       *     modified
       * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the
       *     RSV1 bit
       * @return {(Buffer|String)[]} The framed data
       * @public
       */
      static frame(data2, options) {
        let mask;
        let merge3 = false;
        let offset2 = 2;
        let skipMasking = false;
        if (options.mask) {
          mask = options.maskBuffer || maskBuffer;
          if (options.generateMask) {
            options.generateMask(mask);
          } else {
            if (randomPoolPointer === RANDOM_POOL_SIZE) {
              if (randomPool === void 0) {
                randomPool = Buffer.alloc(RANDOM_POOL_SIZE);
              }
              randomFillSync(randomPool, 0, RANDOM_POOL_SIZE);
              randomPoolPointer = 0;
            }
            mask[0] = randomPool[randomPoolPointer++];
            mask[1] = randomPool[randomPoolPointer++];
            mask[2] = randomPool[randomPoolPointer++];
            mask[3] = randomPool[randomPoolPointer++];
          }
          skipMasking = (mask[0] | mask[1] | mask[2] | mask[3]) === 0;
          offset2 = 6;
        }
        let dataLength;
        if (typeof data2 === "string") {
          if ((!options.mask || skipMasking) && options[kByteLength] !== void 0) {
            dataLength = options[kByteLength];
          } else {
            data2 = Buffer.from(data2);
            dataLength = data2.length;
          }
        } else {
          dataLength = data2.length;
          merge3 = options.mask && options.readOnly && !skipMasking;
        }
        let payloadLength = dataLength;
        if (dataLength >= 65536) {
          offset2 += 8;
          payloadLength = 127;
        } else if (dataLength > 125) {
          offset2 += 2;
          payloadLength = 126;
        }
        const target = Buffer.allocUnsafe(merge3 ? dataLength + offset2 : offset2);
        target[0] = options.fin ? options.opcode | 128 : options.opcode;
        if (options.rsv1) target[0] |= 64;
        target[1] = payloadLength;
        if (payloadLength === 126) {
          target.writeUInt16BE(dataLength, 2);
        } else if (payloadLength === 127) {
          target[2] = target[3] = 0;
          target.writeUIntBE(dataLength, 4, 6);
        }
        if (!options.mask) return [target, data2];
        target[1] |= 128;
        target[offset2 - 4] = mask[0];
        target[offset2 - 3] = mask[1];
        target[offset2 - 2] = mask[2];
        target[offset2 - 1] = mask[3];
        if (skipMasking) return [target, data2];
        if (merge3) {
          applyMask(data2, mask, target, offset2, dataLength);
          return [target];
        }
        applyMask(data2, mask, data2, 0, dataLength);
        return [target, data2];
      }
      /**
       * Sends a close message to the other peer.
       *
       * @param {Number} [code] The status code component of the body
       * @param {(String|Buffer)} [data] The message component of the body
       * @param {Boolean} [mask=false] Specifies whether or not to mask the message
       * @param {Function} [cb] Callback
       * @public
       */
      close(code, data2, mask, cb) {
        let buf;
        if (code === void 0) {
          buf = EMPTY_BUFFER;
        } else if (typeof code !== "number" || !isValidStatusCode(code)) {
          throw new TypeError("First argument must be a valid error code number");
        } else if (data2 === void 0 || !data2.length) {
          buf = Buffer.allocUnsafe(2);
          buf.writeUInt16BE(code, 0);
        } else {
          const length2 = Buffer.byteLength(data2);
          if (length2 > 123) {
            throw new RangeError("The message must not be greater than 123 bytes");
          }
          buf = Buffer.allocUnsafe(2 + length2);
          buf.writeUInt16BE(code, 0);
          if (typeof data2 === "string") {
            buf.write(data2, 2);
          } else {
            buf.set(data2, 2);
          }
        }
        const options = {
          [kByteLength]: buf.length,
          fin: true,
          generateMask: this._generateMask,
          mask,
          maskBuffer: this._maskBuffer,
          opcode: 8,
          readOnly: false,
          rsv1: false
        };
        if (this._state !== DEFAULT) {
          this.enqueue([this.dispatch, buf, false, options, cb]);
        } else {
          this.sendFrame(_Sender.frame(buf, options), cb);
        }
      }
      /**
       * Sends a ping message to the other peer.
       *
       * @param {*} data The message to send
       * @param {Boolean} [mask=false] Specifies whether or not to mask `data`
       * @param {Function} [cb] Callback
       * @public
       */
      ping(data2, mask, cb) {
        let byteLength3;
        let readOnly;
        if (typeof data2 === "string") {
          byteLength3 = Buffer.byteLength(data2);
          readOnly = false;
        } else if (isBlob4(data2)) {
          byteLength3 = data2.size;
          readOnly = false;
        } else {
          data2 = toBuffer(data2);
          byteLength3 = data2.length;
          readOnly = toBuffer.readOnly;
        }
        if (byteLength3 > 125) {
          throw new RangeError("The data size must not be greater than 125 bytes");
        }
        const options = {
          [kByteLength]: byteLength3,
          fin: true,
          generateMask: this._generateMask,
          mask,
          maskBuffer: this._maskBuffer,
          opcode: 9,
          readOnly,
          rsv1: false
        };
        if (isBlob4(data2)) {
          if (this._state !== DEFAULT) {
            this.enqueue([this.getBlobData, data2, false, options, cb]);
          } else {
            this.getBlobData(data2, false, options, cb);
          }
        } else if (this._state !== DEFAULT) {
          this.enqueue([this.dispatch, data2, false, options, cb]);
        } else {
          this.sendFrame(_Sender.frame(data2, options), cb);
        }
      }
      /**
       * Sends a pong message to the other peer.
       *
       * @param {*} data The message to send
       * @param {Boolean} [mask=false] Specifies whether or not to mask `data`
       * @param {Function} [cb] Callback
       * @public
       */
      pong(data2, mask, cb) {
        let byteLength3;
        let readOnly;
        if (typeof data2 === "string") {
          byteLength3 = Buffer.byteLength(data2);
          readOnly = false;
        } else if (isBlob4(data2)) {
          byteLength3 = data2.size;
          readOnly = false;
        } else {
          data2 = toBuffer(data2);
          byteLength3 = data2.length;
          readOnly = toBuffer.readOnly;
        }
        if (byteLength3 > 125) {
          throw new RangeError("The data size must not be greater than 125 bytes");
        }
        const options = {
          [kByteLength]: byteLength3,
          fin: true,
          generateMask: this._generateMask,
          mask,
          maskBuffer: this._maskBuffer,
          opcode: 10,
          readOnly,
          rsv1: false
        };
        if (isBlob4(data2)) {
          if (this._state !== DEFAULT) {
            this.enqueue([this.getBlobData, data2, false, options, cb]);
          } else {
            this.getBlobData(data2, false, options, cb);
          }
        } else if (this._state !== DEFAULT) {
          this.enqueue([this.dispatch, data2, false, options, cb]);
        } else {
          this.sendFrame(_Sender.frame(data2, options), cb);
        }
      }
      /**
       * Sends a data message to the other peer.
       *
       * @param {*} data The message to send
       * @param {Object} options Options object
       * @param {Boolean} [options.binary=false] Specifies whether `data` is binary
       *     or text
       * @param {Boolean} [options.compress=false] Specifies whether or not to
       *     compress `data`
       * @param {Boolean} [options.fin=false] Specifies whether the fragment is the
       *     last one
       * @param {Boolean} [options.mask=false] Specifies whether or not to mask
       *     `data`
       * @param {Function} [cb] Callback
       * @public
       */
      send(data2, options, cb) {
        const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
        let opcode = options.binary ? 2 : 1;
        let rsv1 = options.compress;
        let byteLength3;
        let readOnly;
        if (typeof data2 === "string") {
          byteLength3 = Buffer.byteLength(data2);
          readOnly = false;
        } else if (isBlob4(data2)) {
          byteLength3 = data2.size;
          readOnly = false;
        } else {
          data2 = toBuffer(data2);
          byteLength3 = data2.length;
          readOnly = toBuffer.readOnly;
        }
        if (this._firstFragment) {
          this._firstFragment = false;
          if (rsv1 && perMessageDeflate && perMessageDeflate.params[perMessageDeflate._isServer ? "server_no_context_takeover" : "client_no_context_takeover"]) {
            rsv1 = byteLength3 >= perMessageDeflate._threshold;
          }
          this._compress = rsv1;
        } else {
          rsv1 = false;
          opcode = 0;
        }
        if (options.fin) this._firstFragment = true;
        const opts2 = {
          [kByteLength]: byteLength3,
          fin: options.fin,
          generateMask: this._generateMask,
          mask: options.mask,
          maskBuffer: this._maskBuffer,
          opcode,
          readOnly,
          rsv1
        };
        if (isBlob4(data2)) {
          if (this._state !== DEFAULT) {
            this.enqueue([this.getBlobData, data2, this._compress, opts2, cb]);
          } else {
            this.getBlobData(data2, this._compress, opts2, cb);
          }
        } else if (this._state !== DEFAULT) {
          this.enqueue([this.dispatch, data2, this._compress, opts2, cb]);
        } else {
          this.dispatch(data2, this._compress, opts2, cb);
        }
      }
      /**
       * Gets the contents of a blob as binary data.
       *
       * @param {Blob} blob The blob
       * @param {Boolean} [compress=false] Specifies whether or not to compress
       *     the data
       * @param {Object} options Options object
       * @param {Boolean} [options.fin=false] Specifies whether or not to set the
       *     FIN bit
       * @param {Function} [options.generateMask] The function used to generate the
       *     masking key
       * @param {Boolean} [options.mask=false] Specifies whether or not to mask
       *     `data`
       * @param {Buffer} [options.maskBuffer] The buffer used to store the masking
       *     key
       * @param {Number} options.opcode The opcode
       * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be
       *     modified
       * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the
       *     RSV1 bit
       * @param {Function} [cb] Callback
       * @private
       */
      getBlobData(blob, compress, options, cb) {
        this._bufferedBytes += options[kByteLength];
        this._state = GET_BLOB_DATA;
        blob.arrayBuffer().then((arrayBuffer) => {
          if (this._socket.destroyed) {
            const err2 = new Error(
              "The socket was closed while the blob was being read"
            );
            process.nextTick(callCallbacks, this, err2, cb);
            return;
          }
          this._bufferedBytes -= options[kByteLength];
          const data2 = toBuffer(arrayBuffer);
          if (!compress) {
            this._state = DEFAULT;
            this.sendFrame(_Sender.frame(data2, options), cb);
            this.dequeue();
          } else {
            this.dispatch(data2, compress, options, cb);
          }
        }).catch((err2) => {
          process.nextTick(onError, this, err2, cb);
        });
      }
      /**
       * Dispatches a message.
       *
       * @param {(Buffer|String)} data The message to send
       * @param {Boolean} [compress=false] Specifies whether or not to compress
       *     `data`
       * @param {Object} options Options object
       * @param {Boolean} [options.fin=false] Specifies whether or not to set the
       *     FIN bit
       * @param {Function} [options.generateMask] The function used to generate the
       *     masking key
       * @param {Boolean} [options.mask=false] Specifies whether or not to mask
       *     `data`
       * @param {Buffer} [options.maskBuffer] The buffer used to store the masking
       *     key
       * @param {Number} options.opcode The opcode
       * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be
       *     modified
       * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the
       *     RSV1 bit
       * @param {Function} [cb] Callback
       * @private
       */
      dispatch(data2, compress, options, cb) {
        if (!compress) {
          this.sendFrame(_Sender.frame(data2, options), cb);
          return;
        }
        const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
        this._bufferedBytes += options[kByteLength];
        this._state = DEFLATING;
        perMessageDeflate.compress(data2, options.fin, (_, buf) => {
          if (this._socket.destroyed) {
            const err2 = new Error(
              "The socket was closed while data was being compressed"
            );
            callCallbacks(this, err2, cb);
            return;
          }
          this._bufferedBytes -= options[kByteLength];
          this._state = DEFAULT;
          options.readOnly = false;
          this.sendFrame(_Sender.frame(buf, options), cb);
          this.dequeue();
        });
      }
      /**
       * Executes queued send operations.
       *
       * @private
       */
      dequeue() {
        while (this._state === DEFAULT && this._queue.length) {
          const params = this._queue.shift();
          this._bufferedBytes -= params[3][kByteLength];
          Reflect.apply(params[0], this, params.slice(1));
        }
      }
      /**
       * Enqueues a send operation.
       *
       * @param {Array} params Send operation parameters.
       * @private
       */
      enqueue(params) {
        this._bufferedBytes += params[3][kByteLength];
        this._queue.push(params);
      }
      /**
       * Sends a frame.
       *
       * @param {(Buffer | String)[]} list The frame to send
       * @param {Function} [cb] Callback
       * @private
       */
      sendFrame(list, cb) {
        if (list.length === 2) {
          this._socket.cork();
          this._socket.write(list[0]);
          this._socket.write(list[1], cb);
          this._socket.uncork();
        } else {
          this._socket.write(list[0], cb);
        }
      }
    };
    module.exports = Sender;
    function callCallbacks(sender, err2, cb) {
      if (typeof cb === "function") cb(err2);
      for (let i5 = 0; i5 < sender._queue.length; i5++) {
        const params = sender._queue[i5];
        const callback = params[params.length - 1];
        if (typeof callback === "function") callback(err2);
      }
    }
    function onError(sender, err2, cb) {
      callCallbacks(sender, err2, cb);
      sender.onerror(err2);
    }
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/event-target.js
var require_event_target = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/event-target.js"(exports, module) {
    "use strict";
    var { kForOnEventAttribute, kListener } = require_constants10();
    var kCode = Symbol("kCode");
    var kData = Symbol("kData");
    var kError = Symbol("kError");
    var kMessage = Symbol("kMessage");
    var kReason = Symbol("kReason");
    var kTarget = Symbol("kTarget");
    var kType = Symbol("kType");
    var kWasClean = Symbol("kWasClean");
    var Event2 = class {
      /**
       * Create a new `Event`.
       *
       * @param {String} type The name of the event
       * @throws {TypeError} If the `type` argument is not specified
       */
      constructor(type) {
        this[kTarget] = null;
        this[kType] = type;
      }
      /**
       * @type {*}
       */
      get target() {
        return this[kTarget];
      }
      /**
       * @type {String}
       */
      get type() {
        return this[kType];
      }
    };
    Object.defineProperty(Event2.prototype, "target", { enumerable: true });
    Object.defineProperty(Event2.prototype, "type", { enumerable: true });
    var CloseEvent = class extends Event2 {
      /**
       * Create a new `CloseEvent`.
       *
       * @param {String} type The name of the event
       * @param {Object} [options] A dictionary object that allows for setting
       *     attributes via object members of the same name
       * @param {Number} [options.code=0] The status code explaining why the
       *     connection was closed
       * @param {String} [options.reason=''] A human-readable string explaining why
       *     the connection was closed
       * @param {Boolean} [options.wasClean=false] Indicates whether or not the
       *     connection was cleanly closed
       */
      constructor(type, options = {}) {
        super(type);
        this[kCode] = options.code === void 0 ? 0 : options.code;
        this[kReason] = options.reason === void 0 ? "" : options.reason;
        this[kWasClean] = options.wasClean === void 0 ? false : options.wasClean;
      }
      /**
       * @type {Number}
       */
      get code() {
        return this[kCode];
      }
      /**
       * @type {String}
       */
      get reason() {
        return this[kReason];
      }
      /**
       * @type {Boolean}
       */
      get wasClean() {
        return this[kWasClean];
      }
    };
    Object.defineProperty(CloseEvent.prototype, "code", { enumerable: true });
    Object.defineProperty(CloseEvent.prototype, "reason", { enumerable: true });
    Object.defineProperty(CloseEvent.prototype, "wasClean", { enumerable: true });
    var ErrorEvent = class extends Event2 {
      /**
       * Create a new `ErrorEvent`.
       *
       * @param {String} type The name of the event
       * @param {Object} [options] A dictionary object that allows for setting
       *     attributes via object members of the same name
       * @param {*} [options.error=null] The error that generated this event
       * @param {String} [options.message=''] The error message
       */
      constructor(type, options = {}) {
        super(type);
        this[kError] = options.error === void 0 ? null : options.error;
        this[kMessage] = options.message === void 0 ? "" : options.message;
      }
      /**
       * @type {*}
       */
      get error() {
        return this[kError];
      }
      /**
       * @type {String}
       */
      get message() {
        return this[kMessage];
      }
    };
    Object.defineProperty(ErrorEvent.prototype, "error", { enumerable: true });
    Object.defineProperty(ErrorEvent.prototype, "message", { enumerable: true });
    var MessageEvent = class extends Event2 {
      /**
       * Create a new `MessageEvent`.
       *
       * @param {String} type The name of the event
       * @param {Object} [options] A dictionary object that allows for setting
       *     attributes via object members of the same name
       * @param {*} [options.data=null] The message content
       */
      constructor(type, options = {}) {
        super(type);
        this[kData] = options.data === void 0 ? null : options.data;
      }
      /**
       * @type {*}
       */
      get data() {
        return this[kData];
      }
    };
    Object.defineProperty(MessageEvent.prototype, "data", { enumerable: true });
    var EventTarget2 = {
      /**
       * Register an event listener.
       *
       * @param {String} type A string representing the event type to listen for
       * @param {(Function|Object)} handler The listener to add
       * @param {Object} [options] An options object specifies characteristics about
       *     the event listener
       * @param {Boolean} [options.once=false] A `Boolean` indicating that the
       *     listener should be invoked at most once after being added. If `true`,
       *     the listener would be automatically removed when invoked.
       * @public
       */
      addEventListener(type, handler, options = {}) {
        for (const listener of this.listeners(type)) {
          if (!options[kForOnEventAttribute] && listener[kListener] === handler && !listener[kForOnEventAttribute]) {
            return;
          }
        }
        let wrapper;
        if (type === "message") {
          wrapper = function onMessage(data2, isBinary) {
            const event = new MessageEvent("message", {
              data: isBinary ? data2 : data2.toString()
            });
            event[kTarget] = this;
            callListener(handler, this, event);
          };
        } else if (type === "close") {
          wrapper = function onClose(code, message) {
            const event = new CloseEvent("close", {
              code,
              reason: message.toString(),
              wasClean: this._closeFrameReceived && this._closeFrameSent
            });
            event[kTarget] = this;
            callListener(handler, this, event);
          };
        } else if (type === "error") {
          wrapper = function onError(error) {
            const event = new ErrorEvent("error", {
              error,
              message: error.message
            });
            event[kTarget] = this;
            callListener(handler, this, event);
          };
        } else if (type === "open") {
          wrapper = function onOpen() {
            const event = new Event2("open");
            event[kTarget] = this;
            callListener(handler, this, event);
          };
        } else {
          return;
        }
        wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute];
        wrapper[kListener] = handler;
        if (options.once) {
          this.once(type, wrapper);
        } else {
          this.on(type, wrapper);
        }
      },
      /**
       * Remove an event listener.
       *
       * @param {String} type A string representing the event type to remove
       * @param {(Function|Object)} handler The listener to remove
       * @public
       */
      removeEventListener(type, handler) {
        for (const listener of this.listeners(type)) {
          if (listener[kListener] === handler && !listener[kForOnEventAttribute]) {
            this.removeListener(type, listener);
            break;
          }
        }
      }
    };
    module.exports = {
      CloseEvent,
      ErrorEvent,
      Event: Event2,
      EventTarget: EventTarget2,
      MessageEvent
    };
    function callListener(listener, thisArg, event) {
      if (typeof listener === "object" && listener.handleEvent) {
        listener.handleEvent.call(listener, event);
      } else {
        listener.call(thisArg, event);
      }
    }
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/extension.js
var require_extension = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/extension.js"(exports, module) {
    "use strict";
    var { tokenChars } = require_validation();
    function push(dest, name, elem) {
      if (dest[name] === void 0) dest[name] = [elem];
      else dest[name].push(elem);
    }
    function parse3(header) {
      const offers = /* @__PURE__ */ Object.create(null);
      let params = /* @__PURE__ */ Object.create(null);
      let mustUnescape = false;
      let isEscaping = false;
      let inQuotes = false;
      let extensionName;
      let paramName;
      let start2 = -1;
      let code = -1;
      let end2 = -1;
      let i5 = 0;
      for (; i5 < header.length; i5++) {
        code = header.charCodeAt(i5);
        if (extensionName === void 0) {
          if (end2 === -1 && tokenChars[code] === 1) {
            if (start2 === -1) start2 = i5;
          } else if (i5 !== 0 && (code === 32 || code === 9)) {
            if (end2 === -1 && start2 !== -1) end2 = i5;
          } else if (code === 59 || code === 44) {
            if (start2 === -1) {
              throw new SyntaxError(`Unexpected character at index ${i5}`);
            }
            if (end2 === -1) end2 = i5;
            const name = header.slice(start2, end2);
            if (code === 44) {
              push(offers, name, params);
              params = /* @__PURE__ */ Object.create(null);
            } else {
              extensionName = name;
            }
            start2 = end2 = -1;
          } else {
            throw new SyntaxError(`Unexpected character at index ${i5}`);
          }
        } else if (paramName === void 0) {
          if (end2 === -1 && tokenChars[code] === 1) {
            if (start2 === -1) start2 = i5;
          } else if (code === 32 || code === 9) {
            if (end2 === -1 && start2 !== -1) end2 = i5;
          } else if (code === 59 || code === 44) {
            if (start2 === -1) {
              throw new SyntaxError(`Unexpected character at index ${i5}`);
            }
            if (end2 === -1) end2 = i5;
            push(params, header.slice(start2, end2), true);
            if (code === 44) {
              push(offers, extensionName, params);
              params = /* @__PURE__ */ Object.create(null);
              extensionName = void 0;
            }
            start2 = end2 = -1;
          } else if (code === 61 && start2 !== -1 && end2 === -1) {
            paramName = header.slice(start2, i5);
            start2 = end2 = -1;
          } else {
            throw new SyntaxError(`Unexpected character at index ${i5}`);
          }
        } else {
          if (isEscaping) {
            if (tokenChars[code] !== 1) {
              throw new SyntaxError(`Unexpected character at index ${i5}`);
            }
            if (start2 === -1) start2 = i5;
            else if (!mustUnescape) mustUnescape = true;
            isEscaping = false;
          } else if (inQuotes) {
            if (tokenChars[code] === 1) {
              if (start2 === -1) start2 = i5;
            } else if (code === 34 && start2 !== -1) {
              inQuotes = false;
              end2 = i5;
            } else if (code === 92) {
              isEscaping = true;
            } else {
              throw new SyntaxError(`Unexpected character at index ${i5}`);
            }
          } else if (code === 34 && header.charCodeAt(i5 - 1) === 61) {
            inQuotes = true;
          } else if (end2 === -1 && tokenChars[code] === 1) {
            if (start2 === -1) start2 = i5;
          } else if (start2 !== -1 && (code === 32 || code === 9)) {
            if (end2 === -1) end2 = i5;
          } else if (code === 59 || code === 44) {
            if (start2 === -1) {
              throw new SyntaxError(`Unexpected character at index ${i5}`);
            }
            if (end2 === -1) end2 = i5;
            let value2 = header.slice(start2, end2);
            if (mustUnescape) {
              value2 = value2.replace(/\\/g, "");
              mustUnescape = false;
            }
            push(params, paramName, value2);
            if (code === 44) {
              push(offers, extensionName, params);
              params = /* @__PURE__ */ Object.create(null);
              extensionName = void 0;
            }
            paramName = void 0;
            start2 = end2 = -1;
          } else {
            throw new SyntaxError(`Unexpected character at index ${i5}`);
          }
        }
      }
      if (start2 === -1 || inQuotes || code === 32 || code === 9) {
        throw new SyntaxError("Unexpected end of input");
      }
      if (end2 === -1) end2 = i5;
      const token = header.slice(start2, end2);
      if (extensionName === void 0) {
        push(offers, token, params);
      } else {
        if (paramName === void 0) {
          push(params, token, true);
        } else if (mustUnescape) {
          push(params, paramName, token.replace(/\\/g, ""));
        } else {
          push(params, paramName, token);
        }
        push(offers, extensionName, params);
      }
      return offers;
    }
    function format(extensions2) {
      return Object.keys(extensions2).map((extension) => {
        let configurations = extensions2[extension];
        if (!Array.isArray(configurations)) configurations = [configurations];
        return configurations.map((params) => {
          return [extension].concat(
            Object.keys(params).map((k3) => {
              let values = params[k3];
              if (!Array.isArray(values)) values = [values];
              return values.map((v3) => v3 === true ? k3 : `${k3}=${v3}`).join("; ");
            })
          ).join("; ");
        }).join(", ");
      }).join(", ");
    }
    module.exports = { format, parse: parse3 };
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket.js
var require_websocket = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket.js"(exports, module) {
    "use strict";
    var EventEmitter5 = __require("events");
    var https5 = __require("https");
    var http6 = __require("http");
    var net2 = __require("net");
    var tls3 = __require("tls");
    var { randomBytes, createHash: createHash2 } = __require("crypto");
    var { Duplex: Duplex2, Readable: Readable3 } = __require("stream");
    var { URL: URL5 } = __require("url");
    var PerMessageDeflate = require_permessage_deflate();
    var Receiver = require_receiver();
    var Sender = require_sender();
    var { isBlob: isBlob4 } = require_validation();
    var {
      BINARY_TYPES,
      CLOSE_TIMEOUT,
      EMPTY_BUFFER,
      GUID,
      kForOnEventAttribute,
      kListener,
      kStatusCode,
      kWebSocket,
      NOOP
    } = require_constants10();
    var {
      EventTarget: { addEventListener, removeEventListener }
    } = require_event_target();
    var { format, parse: parse3 } = require_extension();
    var { toBuffer } = require_buffer_util();
    var kAborted = Symbol("kAborted");
    var protocolVersions = [8, 13];
    var readyStates = ["CONNECTING", "OPEN", "CLOSING", "CLOSED"];
    var subprotocolRegex = /^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;
    var WebSocket = class _WebSocket extends EventEmitter5 {
      /**
       * Create a new `WebSocket`.
       *
       * @param {(String|URL)} address The URL to which to connect
       * @param {(String|String[])} [protocols] The subprotocols
       * @param {Object} [options] Connection options
       */
      constructor(address, protocols, options) {
        super();
        this._binaryType = BINARY_TYPES[0];
        this._closeCode = 1006;
        this._closeFrameReceived = false;
        this._closeFrameSent = false;
        this._closeMessage = EMPTY_BUFFER;
        this._closeTimer = null;
        this._errorEmitted = false;
        this._extensions = {};
        this._paused = false;
        this._protocol = "";
        this._readyState = _WebSocket.CONNECTING;
        this._receiver = null;
        this._sender = null;
        this._socket = null;
        if (address !== null) {
          this._bufferedAmount = 0;
          this._isServer = false;
          this._redirects = 0;
          if (protocols === void 0) {
            protocols = [];
          } else if (!Array.isArray(protocols)) {
            if (typeof protocols === "object" && protocols !== null) {
              options = protocols;
              protocols = [];
            } else {
              protocols = [protocols];
            }
          }
          initAsClient(this, address, protocols, options);
        } else {
          this._autoPong = options.autoPong;
          this._closeTimeout = options.closeTimeout;
          this._isServer = true;
        }
      }
      /**
       * For historical reasons, the custom "nodebuffer" type is used by the default
       * instead of "blob".
       *
       * @type {String}
       */
      get binaryType() {
        return this._binaryType;
      }
      set binaryType(type) {
        if (!BINARY_TYPES.includes(type)) return;
        this._binaryType = type;
        if (this._receiver) this._receiver._binaryType = type;
      }
      /**
       * @type {Number}
       */
      get bufferedAmount() {
        if (!this._socket) return this._bufferedAmount;
        return this._socket._writableState.length + this._sender._bufferedBytes;
      }
      /**
       * @type {String}
       */
      get extensions() {
        return Object.keys(this._extensions).join();
      }
      /**
       * @type {Boolean}
       */
      get isPaused() {
        return this._paused;
      }
      /**
       * @type {Function}
       */
      /* istanbul ignore next */
      get onclose() {
        return null;
      }
      /**
       * @type {Function}
       */
      /* istanbul ignore next */
      get onerror() {
        return null;
      }
      /**
       * @type {Function}
       */
      /* istanbul ignore next */
      get onopen() {
        return null;
      }
      /**
       * @type {Function}
       */
      /* istanbul ignore next */
      get onmessage() {
        return null;
      }
      /**
       * @type {String}
       */
      get protocol() {
        return this._protocol;
      }
      /**
       * @type {Number}
       */
      get readyState() {
        return this._readyState;
      }
      /**
       * @type {String}
       */
      get url() {
        return this._url;
      }
      /**
       * Set up the socket and the internal resources.
       *
       * @param {Duplex} socket The network socket between the server and client
       * @param {Buffer} head The first packet of the upgraded stream
       * @param {Object} options Options object
       * @param {Boolean} [options.allowSynchronousEvents=false] Specifies whether
       *     any of the `'message'`, `'ping'`, and `'pong'` events can be emitted
       *     multiple times in the same tick
       * @param {Function} [options.generateMask] The function used to generate the
       *     masking key
       * @param {Number} [options.maxPayload=0] The maximum allowed message size
       * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or
       *     not to skip UTF-8 validation for text and close messages
       * @private
       */
      setSocket(socket, head, options) {
        const receiver = new Receiver({
          allowSynchronousEvents: options.allowSynchronousEvents,
          binaryType: this.binaryType,
          extensions: this._extensions,
          isServer: this._isServer,
          maxPayload: options.maxPayload,
          skipUTF8Validation: options.skipUTF8Validation
        });
        const sender = new Sender(socket, this._extensions, options.generateMask);
        this._receiver = receiver;
        this._sender = sender;
        this._socket = socket;
        receiver[kWebSocket] = this;
        sender[kWebSocket] = this;
        socket[kWebSocket] = this;
        receiver.on("conclude", receiverOnConclude);
        receiver.on("drain", receiverOnDrain);
        receiver.on("error", receiverOnError);
        receiver.on("message", receiverOnMessage);
        receiver.on("ping", receiverOnPing);
        receiver.on("pong", receiverOnPong);
        sender.onerror = senderOnError;
        if (socket.setTimeout) socket.setTimeout(0);
        if (socket.setNoDelay) socket.setNoDelay();
        if (head.length > 0) socket.unshift(head);
        socket.on("close", socketOnClose);
        socket.on("data", socketOnData);
        socket.on("end", socketOnEnd);
        socket.on("error", socketOnError);
        this._readyState = _WebSocket.OPEN;
        this.emit("open");
      }
      /**
       * Emit the `'close'` event.
       *
       * @private
       */
      emitClose() {
        if (!this._socket) {
          this._readyState = _WebSocket.CLOSED;
          this.emit("close", this._closeCode, this._closeMessage);
          return;
        }
        if (this._extensions[PerMessageDeflate.extensionName]) {
          this._extensions[PerMessageDeflate.extensionName].cleanup();
        }
        this._receiver.removeAllListeners();
        this._readyState = _WebSocket.CLOSED;
        this.emit("close", this._closeCode, this._closeMessage);
      }
      /**
       * Start a closing handshake.
       *
       *          +----------+   +-----------+   +----------+
       *     - - -|ws.close()|-->|close frame|-->|ws.close()|- - -
       *    |     +----------+   +-----------+   +----------+     |
       *          +----------+   +-----------+         |
       * CLOSING  |ws.close()|<--|close frame|<--+-----+       CLOSING
       *          +----------+   +-----------+   |
       *    |           |                        |   +---+        |
       *                +------------------------+-->|fin| - - - -
       *    |         +---+                      |   +---+
       *     - - - - -|fin|<---------------------+
       *              +---+
       *
       * @param {Number} [code] Status code explaining why the connection is closing
       * @param {(String|Buffer)} [data] The reason why the connection is
       *     closing
       * @public
       */
      close(code, data2) {
        if (this.readyState === _WebSocket.CLOSED) return;
        if (this.readyState === _WebSocket.CONNECTING) {
          const msg = "WebSocket was closed before the connection was established";
          abortHandshake(this, this._req, msg);
          return;
        }
        if (this.readyState === _WebSocket.CLOSING) {
          if (this._closeFrameSent && (this._closeFrameReceived || this._receiver._writableState.errorEmitted)) {
            this._socket.end();
          }
          return;
        }
        this._readyState = _WebSocket.CLOSING;
        this._sender.close(code, data2, !this._isServer, (err2) => {
          if (err2) return;
          this._closeFrameSent = true;
          if (this._closeFrameReceived || this._receiver._writableState.errorEmitted) {
            this._socket.end();
          }
        });
        setCloseTimer(this);
      }
      /**
       * Pause the socket.
       *
       * @public
       */
      pause() {
        if (this.readyState === _WebSocket.CONNECTING || this.readyState === _WebSocket.CLOSED) {
          return;
        }
        this._paused = true;
        this._socket.pause();
      }
      /**
       * Send a ping.
       *
       * @param {*} [data] The data to send
       * @param {Boolean} [mask] Indicates whether or not to mask `data`
       * @param {Function} [cb] Callback which is executed when the ping is sent
       * @public
       */
      ping(data2, mask, cb) {
        if (this.readyState === _WebSocket.CONNECTING) {
          throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");
        }
        if (typeof data2 === "function") {
          cb = data2;
          data2 = mask = void 0;
        } else if (typeof mask === "function") {
          cb = mask;
          mask = void 0;
        }
        if (typeof data2 === "number") data2 = data2.toString();
        if (this.readyState !== _WebSocket.OPEN) {
          sendAfterClose(this, data2, cb);
          return;
        }
        if (mask === void 0) mask = !this._isServer;
        this._sender.ping(data2 || EMPTY_BUFFER, mask, cb);
      }
      /**
       * Send a pong.
       *
       * @param {*} [data] The data to send
       * @param {Boolean} [mask] Indicates whether or not to mask `data`
       * @param {Function} [cb] Callback which is executed when the pong is sent
       * @public
       */
      pong(data2, mask, cb) {
        if (this.readyState === _WebSocket.CONNECTING) {
          throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");
        }
        if (typeof data2 === "function") {
          cb = data2;
          data2 = mask = void 0;
        } else if (typeof mask === "function") {
          cb = mask;
          mask = void 0;
        }
        if (typeof data2 === "number") data2 = data2.toString();
        if (this.readyState !== _WebSocket.OPEN) {
          sendAfterClose(this, data2, cb);
          return;
        }
        if (mask === void 0) mask = !this._isServer;
        this._sender.pong(data2 || EMPTY_BUFFER, mask, cb);
      }
      /**
       * Resume the socket.
       *
       * @public
       */
      resume() {
        if (this.readyState === _WebSocket.CONNECTING || this.readyState === _WebSocket.CLOSED) {
          return;
        }
        this._paused = false;
        if (!this._receiver._writableState.needDrain) this._socket.resume();
      }
      /**
       * Send a data message.
       *
       * @param {*} data The message to send
       * @param {Object} [options] Options object
       * @param {Boolean} [options.binary] Specifies whether `data` is binary or
       *     text
       * @param {Boolean} [options.compress] Specifies whether or not to compress
       *     `data`
       * @param {Boolean} [options.fin=true] Specifies whether the fragment is the
       *     last one
       * @param {Boolean} [options.mask] Specifies whether or not to mask `data`
       * @param {Function} [cb] Callback which is executed when data is written out
       * @public
       */
      send(data2, options, cb) {
        if (this.readyState === _WebSocket.CONNECTING) {
          throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");
        }
        if (typeof options === "function") {
          cb = options;
          options = {};
        }
        if (typeof data2 === "number") data2 = data2.toString();
        if (this.readyState !== _WebSocket.OPEN) {
          sendAfterClose(this, data2, cb);
          return;
        }
        const opts2 = {
          binary: typeof data2 !== "string",
          mask: !this._isServer,
          compress: true,
          fin: true,
          ...options
        };
        if (!this._extensions[PerMessageDeflate.extensionName]) {
          opts2.compress = false;
        }
        this._sender.send(data2 || EMPTY_BUFFER, opts2, cb);
      }
      /**
       * Forcibly close the connection.
       *
       * @public
       */
      terminate() {
        if (this.readyState === _WebSocket.CLOSED) return;
        if (this.readyState === _WebSocket.CONNECTING) {
          const msg = "WebSocket was closed before the connection was established";
          abortHandshake(this, this._req, msg);
          return;
        }
        if (this._socket) {
          this._readyState = _WebSocket.CLOSING;
          this._socket.destroy();
        }
      }
    };
    Object.defineProperty(WebSocket, "CONNECTING", {
      enumerable: true,
      value: readyStates.indexOf("CONNECTING")
    });
    Object.defineProperty(WebSocket.prototype, "CONNECTING", {
      enumerable: true,
      value: readyStates.indexOf("CONNECTING")
    });
    Object.defineProperty(WebSocket, "OPEN", {
      enumerable: true,
      value: readyStates.indexOf("OPEN")
    });
    Object.defineProperty(WebSocket.prototype, "OPEN", {
      enumerable: true,
      value: readyStates.indexOf("OPEN")
    });
    Object.defineProperty(WebSocket, "CLOSING", {
      enumerable: true,
      value: readyStates.indexOf("CLOSING")
    });
    Object.defineProperty(WebSocket.prototype, "CLOSING", {
      enumerable: true,
      value: readyStates.indexOf("CLOSING")
    });
    Object.defineProperty(WebSocket, "CLOSED", {
      enumerable: true,
      value: readyStates.indexOf("CLOSED")
    });
    Object.defineProperty(WebSocket.prototype, "CLOSED", {
      enumerable: true,
      value: readyStates.indexOf("CLOSED")
    });
    [
      "binaryType",
      "bufferedAmount",
      "extensions",
      "isPaused",
      "protocol",
      "readyState",
      "url"
    ].forEach((property) => {
      Object.defineProperty(WebSocket.prototype, property, { enumerable: true });
    });
    ["open", "error", "close", "message"].forEach((method) => {
      Object.defineProperty(WebSocket.prototype, `on${method}`, {
        enumerable: true,
        get() {
          for (const listener of this.listeners(method)) {
            if (listener[kForOnEventAttribute]) return listener[kListener];
          }
          return null;
        },
        set(handler) {
          for (const listener of this.listeners(method)) {
            if (listener[kForOnEventAttribute]) {
              this.removeListener(method, listener);
              break;
            }
          }
          if (typeof handler !== "function") return;
          this.addEventListener(method, handler, {
            [kForOnEventAttribute]: true
          });
        }
      });
    });
    WebSocket.prototype.addEventListener = addEventListener;
    WebSocket.prototype.removeEventListener = removeEventListener;
    module.exports = WebSocket;
    function initAsClient(websocket, address, protocols, options) {
      const opts2 = {
        allowSynchronousEvents: true,
        autoPong: true,
        closeTimeout: CLOSE_TIMEOUT,
        protocolVersion: protocolVersions[1],
        maxPayload: 100 * 1024 * 1024,
        skipUTF8Validation: false,
        perMessageDeflate: true,
        followRedirects: false,
        maxRedirects: 10,
        ...options,
        socketPath: void 0,
        hostname: void 0,
        protocol: void 0,
        timeout: void 0,
        method: "GET",
        host: void 0,
        path: void 0,
        port: void 0
      };
      websocket._autoPong = opts2.autoPong;
      websocket._closeTimeout = opts2.closeTimeout;
      if (!protocolVersions.includes(opts2.protocolVersion)) {
        throw new RangeError(
          `Unsupported protocol version: ${opts2.protocolVersion} (supported versions: ${protocolVersions.join(", ")})`
        );
      }
      let parsedUrl;
      if (address instanceof URL5) {
        parsedUrl = address;
      } else {
        try {
          parsedUrl = new URL5(address);
        } catch (e4) {
          throw new SyntaxError(`Invalid URL: ${address}`);
        }
      }
      if (parsedUrl.protocol === "http:") {
        parsedUrl.protocol = "ws:";
      } else if (parsedUrl.protocol === "https:") {
        parsedUrl.protocol = "wss:";
      }
      websocket._url = parsedUrl.href;
      const isSecure = parsedUrl.protocol === "wss:";
      const isIpcUrl = parsedUrl.protocol === "ws+unix:";
      let invalidUrlMessage;
      if (parsedUrl.protocol !== "ws:" && !isSecure && !isIpcUrl) {
        invalidUrlMessage = `The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`;
      } else if (isIpcUrl && !parsedUrl.pathname) {
        invalidUrlMessage = "The URL's pathname is empty";
      } else if (parsedUrl.hash) {
        invalidUrlMessage = "The URL contains a fragment identifier";
      }
      if (invalidUrlMessage) {
        const err2 = new SyntaxError(invalidUrlMessage);
        if (websocket._redirects === 0) {
          throw err2;
        } else {
          emitErrorAndClose(websocket, err2);
          return;
        }
      }
      const defaultPort = isSecure ? 443 : 80;
      const key = randomBytes(16).toString("base64");
      const request = isSecure ? https5.request : http6.request;
      const protocolSet = /* @__PURE__ */ new Set();
      let perMessageDeflate;
      opts2.createConnection = opts2.createConnection || (isSecure ? tlsConnect : netConnect);
      opts2.defaultPort = opts2.defaultPort || defaultPort;
      opts2.port = parsedUrl.port || defaultPort;
      opts2.host = parsedUrl.hostname.startsWith("[") ? parsedUrl.hostname.slice(1, -1) : parsedUrl.hostname;
      opts2.headers = {
        ...opts2.headers,
        "Sec-WebSocket-Version": opts2.protocolVersion,
        "Sec-WebSocket-Key": key,
        Connection: "Upgrade",
        Upgrade: "websocket"
      };
      opts2.path = parsedUrl.pathname + parsedUrl.search;
      opts2.timeout = opts2.handshakeTimeout;
      if (opts2.perMessageDeflate) {
        perMessageDeflate = new PerMessageDeflate(
          opts2.perMessageDeflate !== true ? opts2.perMessageDeflate : {},
          false,
          opts2.maxPayload
        );
        opts2.headers["Sec-WebSocket-Extensions"] = format({
          [PerMessageDeflate.extensionName]: perMessageDeflate.offer()
        });
      }
      if (protocols.length) {
        for (const protocol of protocols) {
          if (typeof protocol !== "string" || !subprotocolRegex.test(protocol) || protocolSet.has(protocol)) {
            throw new SyntaxError(
              "An invalid or duplicated subprotocol was specified"
            );
          }
          protocolSet.add(protocol);
        }
        opts2.headers["Sec-WebSocket-Protocol"] = protocols.join(",");
      }
      if (opts2.origin) {
        if (opts2.protocolVersion < 13) {
          opts2.headers["Sec-WebSocket-Origin"] = opts2.origin;
        } else {
          opts2.headers.Origin = opts2.origin;
        }
      }
      if (parsedUrl.username || parsedUrl.password) {
        opts2.auth = `${parsedUrl.username}:${parsedUrl.password}`;
      }
      if (isIpcUrl) {
        const parts = opts2.path.split(":");
        opts2.socketPath = parts[0];
        opts2.path = parts[1];
      }
      let req;
      if (opts2.followRedirects) {
        if (websocket._redirects === 0) {
          websocket._originalIpc = isIpcUrl;
          websocket._originalSecure = isSecure;
          websocket._originalHostOrSocketPath = isIpcUrl ? opts2.socketPath : parsedUrl.host;
          const headers = options && options.headers;
          options = { ...options, headers: {} };
          if (headers) {
            for (const [key2, value2] of Object.entries(headers)) {
              options.headers[key2.toLowerCase()] = value2;
            }
          }
        } else if (websocket.listenerCount("redirect") === 0) {
          const isSameHost = isIpcUrl ? websocket._originalIpc ? opts2.socketPath === websocket._originalHostOrSocketPath : false : websocket._originalIpc ? false : parsedUrl.host === websocket._originalHostOrSocketPath;
          if (!isSameHost || websocket._originalSecure && !isSecure) {
            delete opts2.headers.authorization;
            delete opts2.headers.cookie;
            if (!isSameHost) delete opts2.headers.host;
            opts2.auth = void 0;
          }
        }
        if (opts2.auth && !options.headers.authorization) {
          options.headers.authorization = "Basic " + Buffer.from(opts2.auth).toString("base64");
        }
        req = websocket._req = request(opts2);
        if (websocket._redirects) {
          websocket.emit("redirect", websocket.url, req);
        }
      } else {
        req = websocket._req = request(opts2);
      }
      if (opts2.timeout) {
        req.on("timeout", () => {
          abortHandshake(websocket, req, "Opening handshake has timed out");
        });
      }
      req.on("error", (err2) => {
        if (req === null || req[kAborted]) return;
        req = websocket._req = null;
        emitErrorAndClose(websocket, err2);
      });
      req.on("response", (res) => {
        const location = res.headers.location;
        const statusCode = res.statusCode;
        if (location && opts2.followRedirects && statusCode >= 300 && statusCode < 400) {
          if (++websocket._redirects > opts2.maxRedirects) {
            abortHandshake(websocket, req, "Maximum redirects exceeded");
            return;
          }
          req.abort();
          let addr;
          try {
            addr = new URL5(location, address);
          } catch (e4) {
            const err2 = new SyntaxError(`Invalid URL: ${location}`);
            emitErrorAndClose(websocket, err2);
            return;
          }
          initAsClient(websocket, addr, protocols, options);
        } else if (!websocket.emit("unexpected-response", req, res)) {
          abortHandshake(
            websocket,
            req,
            `Unexpected server response: ${res.statusCode}`
          );
        }
      });
      req.on("upgrade", (res, socket, head) => {
        websocket.emit("upgrade", res);
        if (websocket.readyState !== WebSocket.CONNECTING) return;
        req = websocket._req = null;
        const upgrade = res.headers.upgrade;
        if (upgrade === void 0 || upgrade.toLowerCase() !== "websocket") {
          abortHandshake(websocket, socket, "Invalid Upgrade header");
          return;
        }
        const digest = createHash2("sha1").update(key + GUID).digest("base64");
        if (res.headers["sec-websocket-accept"] !== digest) {
          abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
          return;
        }
        const serverProt = res.headers["sec-websocket-protocol"];
        let protError;
        if (serverProt !== void 0) {
          if (!protocolSet.size) {
            protError = "Server sent a subprotocol but none was requested";
          } else if (!protocolSet.has(serverProt)) {
            protError = "Server sent an invalid subprotocol";
          }
        } else if (protocolSet.size) {
          protError = "Server sent no subprotocol";
        }
        if (protError) {
          abortHandshake(websocket, socket, protError);
          return;
        }
        if (serverProt) websocket._protocol = serverProt;
        const secWebSocketExtensions = res.headers["sec-websocket-extensions"];
        if (secWebSocketExtensions !== void 0) {
          if (!perMessageDeflate) {
            const message = "Server sent a Sec-WebSocket-Extensions header but no extension was requested";
            abortHandshake(websocket, socket, message);
            return;
          }
          let extensions2;
          try {
            extensions2 = parse3(secWebSocketExtensions);
          } catch (err2) {
            const message = "Invalid Sec-WebSocket-Extensions header";
            abortHandshake(websocket, socket, message);
            return;
          }
          const extensionNames = Object.keys(extensions2);
          if (extensionNames.length !== 1 || extensionNames[0] !== PerMessageDeflate.extensionName) {
            const message = "Server indicated an extension that was not requested";
            abortHandshake(websocket, socket, message);
            return;
          }
          try {
            perMessageDeflate.accept(extensions2[PerMessageDeflate.extensionName]);
          } catch (err2) {
            const message = "Invalid Sec-WebSocket-Extensions header";
            abortHandshake(websocket, socket, message);
            return;
          }
          websocket._extensions[PerMessageDeflate.extensionName] = perMessageDeflate;
        }
        websocket.setSocket(socket, head, {
          allowSynchronousEvents: opts2.allowSynchronousEvents,
          generateMask: opts2.generateMask,
          maxPayload: opts2.maxPayload,
          skipUTF8Validation: opts2.skipUTF8Validation
        });
      });
      if (opts2.finishRequest) {
        opts2.finishRequest(req, websocket);
      } else {
        req.end();
      }
    }
    function emitErrorAndClose(websocket, err2) {
      websocket._readyState = WebSocket.CLOSING;
      websocket._errorEmitted = true;
      websocket.emit("error", err2);
      websocket.emitClose();
    }
    function netConnect(options) {
      options.path = options.socketPath;
      return net2.connect(options);
    }
    function tlsConnect(options) {
      options.path = void 0;
      if (!options.servername && options.servername !== "") {
        options.servername = net2.isIP(options.host) ? "" : options.host;
      }
      return tls3.connect(options);
    }
    function abortHandshake(websocket, stream7, message) {
      websocket._readyState = WebSocket.CLOSING;
      const err2 = new Error(message);
      Error.captureStackTrace(err2, abortHandshake);
      if (stream7.setHeader) {
        stream7[kAborted] = true;
        stream7.abort();
        if (stream7.socket && !stream7.socket.destroyed) {
          stream7.socket.destroy();
        }
        process.nextTick(emitErrorAndClose, websocket, err2);
      } else {
        stream7.destroy(err2);
        stream7.once("error", websocket.emit.bind(websocket, "error"));
        stream7.once("close", websocket.emitClose.bind(websocket));
      }
    }
    function sendAfterClose(websocket, data2, cb) {
      if (data2) {
        const length2 = isBlob4(data2) ? data2.size : toBuffer(data2).length;
        if (websocket._socket) websocket._sender._bufferedBytes += length2;
        else websocket._bufferedAmount += length2;
      }
      if (cb) {
        const err2 = new Error(
          `WebSocket is not open: readyState ${websocket.readyState} (${readyStates[websocket.readyState]})`
        );
        process.nextTick(cb, err2);
      }
    }
    function receiverOnConclude(code, reason) {
      const websocket = this[kWebSocket];
      websocket._closeFrameReceived = true;
      websocket._closeMessage = reason;
      websocket._closeCode = code;
      if (websocket._socket[kWebSocket] === void 0) return;
      websocket._socket.removeListener("data", socketOnData);
      process.nextTick(resume, websocket._socket);
      if (code === 1005) websocket.close();
      else websocket.close(code, reason);
    }
    function receiverOnDrain() {
      const websocket = this[kWebSocket];
      if (!websocket.isPaused) websocket._socket.resume();
    }
    function receiverOnError(err2) {
      const websocket = this[kWebSocket];
      if (websocket._socket[kWebSocket] !== void 0) {
        websocket._socket.removeListener("data", socketOnData);
        process.nextTick(resume, websocket._socket);
        websocket.close(err2[kStatusCode]);
      }
      if (!websocket._errorEmitted) {
        websocket._errorEmitted = true;
        websocket.emit("error", err2);
      }
    }
    function receiverOnFinish() {
      this[kWebSocket].emitClose();
    }
    function receiverOnMessage(data2, isBinary) {
      this[kWebSocket].emit("message", data2, isBinary);
    }
    function receiverOnPing(data2) {
      const websocket = this[kWebSocket];
      if (websocket._autoPong) websocket.pong(data2, !this._isServer, NOOP);
      websocket.emit("ping", data2);
    }
    function receiverOnPong(data2) {
      this[kWebSocket].emit("pong", data2);
    }
    function resume(stream7) {
      stream7.resume();
    }
    function senderOnError(err2) {
      const websocket = this[kWebSocket];
      if (websocket.readyState === WebSocket.CLOSED) return;
      if (websocket.readyState === WebSocket.OPEN) {
        websocket._readyState = WebSocket.CLOSING;
        setCloseTimer(websocket);
      }
      this._socket.end();
      if (!websocket._errorEmitted) {
        websocket._errorEmitted = true;
        websocket.emit("error", err2);
      }
    }
    function setCloseTimer(websocket) {
      websocket._closeTimer = setTimeout(
        websocket._socket.destroy.bind(websocket._socket),
        websocket._closeTimeout
      );
    }
    function socketOnClose() {
      const websocket = this[kWebSocket];
      this.removeListener("close", socketOnClose);
      this.removeListener("data", socketOnData);
      this.removeListener("end", socketOnEnd);
      websocket._readyState = WebSocket.CLOSING;
      if (!this._readableState.endEmitted && !websocket._closeFrameReceived && !websocket._receiver._writableState.errorEmitted && this._readableState.length !== 0) {
        const chunk3 = this.read(this._readableState.length);
        websocket._receiver.write(chunk3);
      }
      websocket._receiver.end();
      this[kWebSocket] = void 0;
      clearTimeout(websocket._closeTimer);
      if (websocket._receiver._writableState.finished || websocket._receiver._writableState.errorEmitted) {
        websocket.emitClose();
      } else {
        websocket._receiver.on("error", receiverOnFinish);
        websocket._receiver.on("finish", receiverOnFinish);
      }
    }
    function socketOnData(chunk3) {
      if (!this[kWebSocket]._receiver.write(chunk3)) {
        this.pause();
      }
    }
    function socketOnEnd() {
      const websocket = this[kWebSocket];
      websocket._readyState = WebSocket.CLOSING;
      websocket._receiver.end();
      this.end();
    }
    function socketOnError() {
      const websocket = this[kWebSocket];
      this.removeListener("error", socketOnError);
      this.on("error", NOOP);
      if (websocket) {
        websocket._readyState = WebSocket.CLOSING;
        this.destroy();
      }
    }
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/stream.js
var require_stream = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/stream.js"(exports, module) {
    "use strict";
    var WebSocket = require_websocket();
    var { Duplex: Duplex2 } = __require("stream");
    function emitClose(stream7) {
      stream7.emit("close");
    }
    function duplexOnEnd() {
      if (!this.destroyed && this._writableState.finished) {
        this.destroy();
      }
    }
    function duplexOnError(err2) {
      this.removeListener("error", duplexOnError);
      this.destroy();
      if (this.listenerCount("error") === 0) {
        this.emit("error", err2);
      }
    }
    function createWebSocketStream(ws, options) {
      let terminateOnDestroy = true;
      const duplex = new Duplex2({
        ...options,
        autoDestroy: false,
        emitClose: false,
        objectMode: false,
        writableObjectMode: false
      });
      ws.on("message", function message(msg, isBinary) {
        const data2 = !isBinary && duplex._readableState.objectMode ? msg.toString() : msg;
        if (!duplex.push(data2)) ws.pause();
      });
      ws.once("error", function error(err2) {
        if (duplex.destroyed) return;
        terminateOnDestroy = false;
        duplex.destroy(err2);
      });
      ws.once("close", function close() {
        if (duplex.destroyed) return;
        duplex.push(null);
      });
      duplex._destroy = function(err2, callback) {
        if (ws.readyState === ws.CLOSED) {
          callback(err2);
          process.nextTick(emitClose, duplex);
          return;
        }
        let called = false;
        ws.once("error", function error(err3) {
          called = true;
          callback(err3);
        });
        ws.once("close", function close() {
          if (!called) callback(err2);
          process.nextTick(emitClose, duplex);
        });
        if (terminateOnDestroy) ws.terminate();
      };
      duplex._final = function(callback) {
        if (ws.readyState === ws.CONNECTING) {
          ws.once("open", function open() {
            duplex._final(callback);
          });
          return;
        }
        if (ws._socket === null) return;
        if (ws._socket._writableState.finished) {
          callback();
          if (duplex._readableState.endEmitted) duplex.destroy();
        } else {
          ws._socket.once("finish", function finish() {
            callback();
          });
          ws.close();
        }
      };
      duplex._read = function() {
        if (ws.isPaused) ws.resume();
      };
      duplex._write = function(chunk3, encoding, callback) {
        if (ws.readyState === ws.CONNECTING) {
          ws.once("open", function open() {
            duplex._write(chunk3, encoding, callback);
          });
          return;
        }
        ws.send(chunk3, callback);
      };
      duplex.on("end", duplexOnEnd);
      duplex.on("error", duplexOnError);
      return duplex;
    }
    module.exports = createWebSocketStream;
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/subprotocol.js
var require_subprotocol = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/subprotocol.js"(exports, module) {
    "use strict";
    var { tokenChars } = require_validation();
    function parse3(header) {
      const protocols = /* @__PURE__ */ new Set();
      let start2 = -1;
      let end2 = -1;
      let i5 = 0;
      for (i5; i5 < header.length; i5++) {
        const code = header.charCodeAt(i5);
        if (end2 === -1 && tokenChars[code] === 1) {
          if (start2 === -1) start2 = i5;
        } else if (i5 !== 0 && (code === 32 || code === 9)) {
          if (end2 === -1 && start2 !== -1) end2 = i5;
        } else if (code === 44) {
          if (start2 === -1) {
            throw new SyntaxError(`Unexpected character at index ${i5}`);
          }
          if (end2 === -1) end2 = i5;
          const protocol2 = header.slice(start2, end2);
          if (protocols.has(protocol2)) {
            throw new SyntaxError(`The "${protocol2}" subprotocol is duplicated`);
          }
          protocols.add(protocol2);
          start2 = end2 = -1;
        } else {
          throw new SyntaxError(`Unexpected character at index ${i5}`);
        }
      }
      if (start2 === -1 || end2 !== -1) {
        throw new SyntaxError("Unexpected end of input");
      }
      const protocol = header.slice(start2, i5);
      if (protocols.has(protocol)) {
        throw new SyntaxError(`The "${protocol}" subprotocol is duplicated`);
      }
      protocols.add(protocol);
      return protocols;
    }
    module.exports = { parse: parse3 };
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket-server.js
var require_websocket_server = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket-server.js"(exports, module) {
    "use strict";
    var EventEmitter5 = __require("events");
    var http6 = __require("http");
    var { Duplex: Duplex2 } = __require("stream");
    var { createHash: createHash2 } = __require("crypto");
    var extension = require_extension();
    var PerMessageDeflate = require_permessage_deflate();
    var subprotocol = require_subprotocol();
    var WebSocket = require_websocket();
    var { CLOSE_TIMEOUT, GUID, kWebSocket } = require_constants10();
    var keyRegex = /^[+/0-9A-Za-z]{22}==$/;
    var RUNNING = 0;
    var CLOSING = 1;
    var CLOSED = 2;
    var WebSocketServer = class extends EventEmitter5 {
      /**
       * Create a `WebSocketServer` instance.
       *
       * @param {Object} options Configuration options
       * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether
       *     any of the `'message'`, `'ping'`, and `'pong'` events can be emitted
       *     multiple times in the same tick
       * @param {Boolean} [options.autoPong=true] Specifies whether or not to
       *     automatically send a pong in response to a ping
       * @param {Number} [options.backlog=511] The maximum length of the queue of
       *     pending connections
       * @param {Boolean} [options.clientTracking=true] Specifies whether or not to
       *     track clients
       * @param {Number} [options.closeTimeout=30000] Duration in milliseconds to
       *     wait for the closing handshake to finish after `websocket.close()` is
       *     called
       * @param {Function} [options.handleProtocols] A hook to handle protocols
       * @param {String} [options.host] The hostname where to bind the server
       * @param {Number} [options.maxPayload=104857600] The maximum allowed message
       *     size
       * @param {Boolean} [options.noServer=false] Enable no server mode
       * @param {String} [options.path] Accept only connections matching this path
       * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable
       *     permessage-deflate
       * @param {Number} [options.port] The port where to bind the server
       * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S
       *     server to use
       * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or
       *     not to skip UTF-8 validation for text and close messages
       * @param {Function} [options.verifyClient] A hook to reject connections
       * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket`
       *     class to use. It must be the `WebSocket` class or class that extends it
       * @param {Function} [callback] A listener for the `listening` event
       */
      constructor(options, callback) {
        super();
        options = {
          allowSynchronousEvents: true,
          autoPong: true,
          maxPayload: 100 * 1024 * 1024,
          skipUTF8Validation: false,
          perMessageDeflate: false,
          handleProtocols: null,
          clientTracking: true,
          closeTimeout: CLOSE_TIMEOUT,
          verifyClient: null,
          noServer: false,
          backlog: null,
          // use default (511 as implemented in net.js)
          server: null,
          host: null,
          path: null,
          port: null,
          WebSocket,
          ...options
        };
        if (options.port == null && !options.server && !options.noServer || options.port != null && (options.server || options.noServer) || options.server && options.noServer) {
          throw new TypeError(
            'One and only one of the "port", "server", or "noServer" options must be specified'
          );
        }
        if (options.port != null) {
          this._server = http6.createServer((req, res) => {
            const body = http6.STATUS_CODES[426];
            res.writeHead(426, {
              "Content-Length": body.length,
              "Content-Type": "text/plain"
            });
            res.end(body);
          });
          this._server.listen(
            options.port,
            options.host,
            options.backlog,
            callback
          );
        } else if (options.server) {
          this._server = options.server;
        }
        if (this._server) {
          const emitConnection = this.emit.bind(this, "connection");
          this._removeListeners = addListeners(this._server, {
            listening: this.emit.bind(this, "listening"),
            error: this.emit.bind(this, "error"),
            upgrade: (req, socket, head) => {
              this.handleUpgrade(req, socket, head, emitConnection);
            }
          });
        }
        if (options.perMessageDeflate === true) options.perMessageDeflate = {};
        if (options.clientTracking) {
          this.clients = /* @__PURE__ */ new Set();
          this._shouldEmitClose = false;
        }
        this.options = options;
        this._state = RUNNING;
      }
      /**
       * Returns the bound address, the address family name, and port of the server
       * as reported by the operating system if listening on an IP socket.
       * If the server is listening on a pipe or UNIX domain socket, the name is
       * returned as a string.
       *
       * @return {(Object|String|null)} The address of the server
       * @public
       */
      address() {
        if (this.options.noServer) {
          throw new Error('The server is operating in "noServer" mode');
        }
        if (!this._server) return null;
        return this._server.address();
      }
      /**
       * Stop the server from accepting new connections and emit the `'close'` event
       * when all existing connections are closed.
       *
       * @param {Function} [cb] A one-time listener for the `'close'` event
       * @public
       */
      close(cb) {
        if (this._state === CLOSED) {
          if (cb) {
            this.once("close", () => {
              cb(new Error("The server is not running"));
            });
          }
          process.nextTick(emitClose, this);
          return;
        }
        if (cb) this.once("close", cb);
        if (this._state === CLOSING) return;
        this._state = CLOSING;
        if (this.options.noServer || this.options.server) {
          if (this._server) {
            this._removeListeners();
            this._removeListeners = this._server = null;
          }
          if (this.clients) {
            if (!this.clients.size) {
              process.nextTick(emitClose, this);
            } else {
              this._shouldEmitClose = true;
            }
          } else {
            process.nextTick(emitClose, this);
          }
        } else {
          const server = this._server;
          this._removeListeners();
          this._removeListeners = this._server = null;
          server.close(() => {
            emitClose(this);
          });
        }
      }
      /**
       * See if a given request should be handled by this server instance.
       *
       * @param {http.IncomingMessage} req Request object to inspect
       * @return {Boolean} `true` if the request is valid, else `false`
       * @public
       */
      shouldHandle(req) {
        if (this.options.path) {
          const index2 = req.url.indexOf("?");
          const pathname = index2 !== -1 ? req.url.slice(0, index2) : req.url;
          if (pathname !== this.options.path) return false;
        }
        return true;
      }
      /**
       * Handle a HTTP Upgrade request.
       *
       * @param {http.IncomingMessage} req The request object
       * @param {Duplex} socket The network socket between the server and client
       * @param {Buffer} head The first packet of the upgraded stream
       * @param {Function} cb Callback
       * @public
       */
      handleUpgrade(req, socket, head, cb) {
        socket.on("error", socketOnError);
        const key = req.headers["sec-websocket-key"];
        const upgrade = req.headers.upgrade;
        const version2 = +req.headers["sec-websocket-version"];
        if (req.method !== "GET") {
          const message = "Invalid HTTP method";
          abortHandshakeOrEmitwsClientError(this, req, socket, 405, message);
          return;
        }
        if (upgrade === void 0 || upgrade.toLowerCase() !== "websocket") {
          const message = "Invalid Upgrade header";
          abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
          return;
        }
        if (key === void 0 || !keyRegex.test(key)) {
          const message = "Missing or invalid Sec-WebSocket-Key header";
          abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
          return;
        }
        if (version2 !== 13 && version2 !== 8) {
          const message = "Missing or invalid Sec-WebSocket-Version header";
          abortHandshakeOrEmitwsClientError(this, req, socket, 400, message, {
            "Sec-WebSocket-Version": "13, 8"
          });
          return;
        }
        if (!this.shouldHandle(req)) {
          abortHandshake(socket, 400);
          return;
        }
        const secWebSocketProtocol = req.headers["sec-websocket-protocol"];
        let protocols = /* @__PURE__ */ new Set();
        if (secWebSocketProtocol !== void 0) {
          try {
            protocols = subprotocol.parse(secWebSocketProtocol);
          } catch (err2) {
            const message = "Invalid Sec-WebSocket-Protocol header";
            abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
            return;
          }
        }
        const secWebSocketExtensions = req.headers["sec-websocket-extensions"];
        const extensions2 = {};
        if (this.options.perMessageDeflate && secWebSocketExtensions !== void 0) {
          const perMessageDeflate = new PerMessageDeflate(
            this.options.perMessageDeflate,
            true,
            this.options.maxPayload
          );
          try {
            const offers = extension.parse(secWebSocketExtensions);
            if (offers[PerMessageDeflate.extensionName]) {
              perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);
              extensions2[PerMessageDeflate.extensionName] = perMessageDeflate;
            }
          } catch (err2) {
            const message = "Invalid or unacceptable Sec-WebSocket-Extensions header";
            abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
            return;
          }
        }
        if (this.options.verifyClient) {
          const info = {
            origin: req.headers[`${version2 === 8 ? "sec-websocket-origin" : "origin"}`],
            secure: !!(req.socket.authorized || req.socket.encrypted),
            req
          };
          if (this.options.verifyClient.length === 2) {
            this.options.verifyClient(info, (verified, code, message, headers) => {
              if (!verified) {
                return abortHandshake(socket, code || 401, message, headers);
              }
              this.completeUpgrade(
                extensions2,
                key,
                protocols,
                req,
                socket,
                head,
                cb
              );
            });
            return;
          }
          if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);
        }
        this.completeUpgrade(extensions2, key, protocols, req, socket, head, cb);
      }
      /**
       * Upgrade the connection to WebSocket.
       *
       * @param {Object} extensions The accepted extensions
       * @param {String} key The value of the `Sec-WebSocket-Key` header
       * @param {Set} protocols The subprotocols
       * @param {http.IncomingMessage} req The request object
       * @param {Duplex} socket The network socket between the server and client
       * @param {Buffer} head The first packet of the upgraded stream
       * @param {Function} cb Callback
       * @throws {Error} If called more than once with the same socket
       * @private
       */
      completeUpgrade(extensions2, key, protocols, req, socket, head, cb) {
        if (!socket.readable || !socket.writable) return socket.destroy();
        if (socket[kWebSocket]) {
          throw new Error(
            "server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration"
          );
        }
        if (this._state > RUNNING) return abortHandshake(socket, 503);
        const digest = createHash2("sha1").update(key + GUID).digest("base64");
        const headers = [
          "HTTP/1.1 101 Switching Protocols",
          "Upgrade: websocket",
          "Connection: Upgrade",
          `Sec-WebSocket-Accept: ${digest}`
        ];
        const ws = new this.options.WebSocket(null, void 0, this.options);
        if (protocols.size) {
          const protocol = this.options.handleProtocols ? this.options.handleProtocols(protocols, req) : protocols.values().next().value;
          if (protocol) {
            headers.push(`Sec-WebSocket-Protocol: ${protocol}`);
            ws._protocol = protocol;
          }
        }
        if (extensions2[PerMessageDeflate.extensionName]) {
          const params = extensions2[PerMessageDeflate.extensionName].params;
          const value2 = extension.format({
            [PerMessageDeflate.extensionName]: [params]
          });
          headers.push(`Sec-WebSocket-Extensions: ${value2}`);
          ws._extensions = extensions2;
        }
        this.emit("headers", headers, req);
        socket.write(headers.concat("\r\n").join("\r\n"));
        socket.removeListener("error", socketOnError);
        ws.setSocket(socket, head, {
          allowSynchronousEvents: this.options.allowSynchronousEvents,
          maxPayload: this.options.maxPayload,
          skipUTF8Validation: this.options.skipUTF8Validation
        });
        if (this.clients) {
          this.clients.add(ws);
          ws.on("close", () => {
            this.clients.delete(ws);
            if (this._shouldEmitClose && !this.clients.size) {
              process.nextTick(emitClose, this);
            }
          });
        }
        cb(ws, req);
      }
    };
    module.exports = WebSocketServer;
    function addListeners(server, map) {
      for (const event of Object.keys(map)) server.on(event, map[event]);
      return function removeListeners() {
        for (const event of Object.keys(map)) {
          server.removeListener(event, map[event]);
        }
      };
    }
    function emitClose(server) {
      server._state = CLOSED;
      server.emit("close");
    }
    function socketOnError() {
      this.destroy();
    }
    function abortHandshake(socket, code, message, headers) {
      message = message || http6.STATUS_CODES[code];
      headers = {
        Connection: "close",
        "Content-Type": "text/html",
        "Content-Length": Buffer.byteLength(message),
        ...headers
      };
      socket.once("finish", socket.destroy);
      socket.end(
        `HTTP/1.1 ${code} ${http6.STATUS_CODES[code]}\r
` + Object.keys(headers).map((h4) => `${h4}: ${headers[h4]}`).join("\r\n") + "\r\n\r\n" + message
      );
    }
    function abortHandshakeOrEmitwsClientError(server, req, socket, code, message, headers) {
      if (server.listenerCount("wsClientError")) {
        const err2 = new Error(message);
        Error.captureStackTrace(err2, abortHandshakeOrEmitwsClientError);
        server.emit("wsClientError", err2, socket, req);
      } else {
        abortHandshake(socket, code, message, headers);
      }
    }
  }
});

// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/index.js
var require_ws = __commonJS({
  "../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/index.js"(exports, module) {
    "use strict";
    var WebSocket = require_websocket();
    WebSocket.createWebSocketStream = require_stream();
    WebSocket.Server = require_websocket_server();
    WebSocket.Receiver = require_receiver();
    WebSocket.Sender = require_sender();
    WebSocket.WebSocket = WebSocket;
    WebSocket.WebSocketServer = WebSocket.Server;
    module.exports = WebSocket;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/websockets/WebSocket-impl.js
var require_WebSocket_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/websockets/WebSocket-impl.js"(exports) {
    "use strict";
    var nodeURL = __require("url");
    var DOMException2 = require_DOMException();
    var { parseURL, serializeURL, serializeURLOrigin } = require_whatwg_url();
    var WebSocket = require_ws();
    var { setupForSimpleEventAccessors } = require_create_event_accessor();
    var { fireAnEvent } = require_events4();
    var { isArrayBuffer: isArrayBuffer3 } = require_utils16();
    var { copyToArrayBufferInNewRealm } = require_binary_data();
    var EventTargetImpl = require_EventTarget_impl().implementation;
    var idlUtils = require_utils16();
    var Blob2 = require_Blob();
    var CloseEvent = require_CloseEvent();
    var MessageEvent = require_MessageEvent();
    var CONNECTING = 0;
    var OPEN = 1;
    var CLOSING = 2;
    var CLOSED = 3;
    var productions = {
      // https://tools.ietf.org/html/rfc7230#section-3.2.6
      token: /^[!#$%&'*+\-.^_`|~\dA-Za-z]+$/
    };
    var readyStateWSToDOM = [];
    readyStateWSToDOM[WebSocket.CONNECTING] = CONNECTING;
    readyStateWSToDOM[WebSocket.OPEN] = OPEN;
    readyStateWSToDOM[WebSocket.CLOSING] = CLOSING;
    readyStateWSToDOM[WebSocket.CLOSED] = CLOSED;
    function verifySecWebSocketProtocol(str) {
      return productions.token.test(str);
    }
    var PromiseQueues = class extends WeakMap {
      get(window2) {
        const cur = super.get(window2);
        return cur !== void 0 ? cur : Promise.resolve();
      }
    };
    var openSockets = /* @__PURE__ */ new WeakMap();
    var openingQueues = new PromiseQueues();
    var WebSocketImpl = class extends EventTargetImpl {
      constructor(globalObject, args, privateData) {
        super(globalObject, args, privateData);
        this._ownerDocument = idlUtils.implForWrapper(globalObject._document);
        const url3 = args[0];
        let protocols = args[1] !== void 0 ? args[1] : [];
        const urlRecord = parseURL(url3);
        if (urlRecord === null) {
          throw DOMException2.create(this._globalObject, [`The URL '${url3}' is invalid.`, "SyntaxError"]);
        }
        if (urlRecord.scheme !== "ws" && urlRecord.scheme !== "wss") {
          throw DOMException2.create(this._globalObject, [
            `The URL's scheme must be either 'ws' or 'wss'. '${urlRecord.scheme}' is not allowed.`,
            "SyntaxError"
          ]);
        }
        if (urlRecord.fragment !== null) {
          throw DOMException2.create(this._globalObject, [
            `The URL contains a fragment identifier ('${urlRecord.fragment}'). Fragment identifiers are not allowed in WebSocket URLs.`,
            "SyntaxError"
          ]);
        }
        if (typeof protocols === "string") {
          protocols = [protocols];
        }
        const protocolSet = /* @__PURE__ */ new Set();
        for (const protocol of protocols) {
          if (!verifySecWebSocketProtocol(protocol)) {
            throw DOMException2.create(this._globalObject, [`The subprotocol '${protocol}' is invalid.`, "SyntaxError"]);
          }
          const lowered = protocol.toLowerCase();
          if (protocolSet.has(lowered)) {
            throw DOMException2.create(this._globalObject, [
              `The subprotocol '${protocol}' is duplicated.`,
              "SyntaxError"
            ]);
          }
          protocolSet.add(lowered);
        }
        this._urlRecord = urlRecord;
        this.url = serializeURL(urlRecord);
        const nodeParsedURL = nodeURL.parse(this.url);
        this.extensions = "";
        this.binaryType = "blob";
        this._ws = null;
        this._readyState = CONNECTING;
        this._requiredToFail = false;
        this.bufferedAmount = 0;
        this._sendQueue = [];
        let openSocketsForWindow = openSockets.get(globalObject._globalProxy);
        if (openSocketsForWindow === void 0) {
          openSocketsForWindow = /* @__PURE__ */ new Set();
          openSockets.set(globalObject._globalProxy, openSocketsForWindow);
        }
        openSocketsForWindow.add(this);
        openingQueues.set(this._ownerDocument, openingQueues.get(this._ownerDocument).then(() => new Promise((resolve4) => {
          if (this._requiredToFail) {
            resolve4();
            this._readyState = CLOSED;
            this._onConnectionClosed(1006, "");
            return;
          }
          this._ws = new WebSocket(this.url, protocols, {
            headers: {
              "user-agent": globalObject.navigator.userAgent,
              "cookie": this._ownerDocument._cookieJar.getCookieStringSync(nodeParsedURL, { http: true }),
              "origin": globalObject._origin
            },
            rejectUnauthorized: globalObject._resourceLoader._strictSSL
          });
          this._ws.once("open", () => {
            resolve4();
            this._onConnectionEstablished();
          });
          this._ws.on("message", this._onMessageReceived.bind(this));
          this._ws.once("close", (...closeArgs) => {
            resolve4();
            this._onConnectionClosed(...closeArgs);
          });
          this._ws.once("upgrade", ({ headers }) => {
            if (Array.isArray(headers["set-cookie"])) {
              for (const cookie of headers["set-cookie"]) {
                this._ownerDocument._cookieJar.setCookieSync(
                  cookie,
                  nodeParsedURL,
                  { http: true, ignoreError: true }
                );
              }
            } else if (headers["set-cookie"] !== void 0) {
              this._ownerDocument._cookieJar.setCookieSync(
                headers["set-cookie"],
                nodeParsedURL,
                { http: true, ignoreError: true }
              );
            }
          });
          this._ws.once("error", () => {
            resolve4();
            this._requiredToFail = true;
          });
        })));
      }
      // https://html.spec.whatwg.org/multipage/web-sockets.html#make-disappear
      _makeDisappear() {
        this._eventListeners = /* @__PURE__ */ Object.create(null);
        this._close(1001);
      }
      static cleanUpWindow(window2) {
        const openSocketsForWindow = openSockets.get(window2._globalProxy);
        if (openSocketsForWindow !== void 0) {
          for (const ws of openSocketsForWindow) {
            ws._makeDisappear();
          }
        }
      }
      // https://html.spec.whatwg.org/multipage/web-sockets.html#feedback-from-the-protocol
      _onConnectionEstablished() {
        if (this._ws.extensions !== null) {
          this.extensions = Object.keys(this._ws.extensions).join(", ");
        }
        fireAnEvent("open", this);
      }
      _onMessageReceived(data2, isBinary) {
        if (this.readyState !== OPEN) {
          return;
        }
        let dataForEvent;
        if (!isBinary) {
          dataForEvent = data2.toString();
        } else if (this.binaryType === "arraybuffer") {
          if (isArrayBuffer3(data2)) {
            dataForEvent = data2;
          } else if (Array.isArray(data2)) {
            dataForEvent = copyToArrayBufferInNewRealm(Buffer.concat(data2), this._globalObject);
          } else {
            dataForEvent = copyToArrayBufferInNewRealm(data2, this._globalObject);
          }
        } else {
          if (!Array.isArray(data2)) {
            data2 = [data2];
          }
          dataForEvent = Blob2.create(this._globalObject, [data2, { type: "" }]);
        }
        fireAnEvent("message", this, MessageEvent, {
          data: dataForEvent,
          origin: serializeURLOrigin(this._urlRecord)
        });
      }
      _onConnectionClosed(code, reason) {
        const openSocketsForWindow = openSockets.get(this._ownerDocument._defaultView);
        openSocketsForWindow.delete(this);
        const wasClean = !this._requiredToFail;
        if (this._requiredToFail) {
          fireAnEvent("error", this);
        }
        fireAnEvent("close", this, CloseEvent, {
          wasClean,
          code,
          reason: reason.toString()
        });
      }
      get readyState() {
        if (this._ws !== null) {
          return readyStateWSToDOM[this._ws.readyState];
        }
        return this._readyState;
      }
      get protocol() {
        if (this._ws === null) {
          return "";
        }
        return this._ws.protocol;
      }
      close(code = void 0, reason = void 0) {
        if (code !== void 0 && code !== 1e3 && !(code >= 3e3 && code <= 4999)) {
          throw DOMException2.create(this._globalObject, [
            `The code must be either 1000, or between 3000 and 4999. ${code} is neither.`,
            "InvalidAccessError"
          ]);
        }
        if (reason !== void 0 && Buffer.byteLength(reason, "utf8") > 123) {
          throw DOMException2.create(this._globalObject, [
            "The message must not be greater than 123 bytes.",
            "SyntaxError"
          ]);
        }
        this._close(code, reason);
      }
      _close(code = void 0, reason = void 0) {
        if (this.readyState === CONNECTING) {
          this._requiredToFail = true;
          if (this._ws !== null) {
            this._ws.terminate();
          } else {
            this._readyState = CLOSING;
          }
        } else if (this.readyState === OPEN) {
          this._ws.close(code, reason);
        }
      }
      send(data2) {
        if (this.readyState === CONNECTING) {
          throw DOMException2.create(this._globalObject, ["Still in CONNECTING state.", "InvalidStateError"]);
        }
        if (this.readyState !== OPEN) {
          return;
        }
        if (Blob2.isImpl(data2)) {
          data2 = data2._buffer;
        }
        let length2;
        if (typeof data2 === "string") {
          length2 = Buffer.byteLength(data2, "utf8");
        } else {
          length2 = data2.byteLength;
        }
        this.bufferedAmount += length2;
        this._sendQueue.push([data2, length2]);
        this._scheduleSend();
      }
      _actuallySend() {
        for (const [data2, length2] of this._sendQueue.splice(0)) {
          this._ws.send(data2, { binary: typeof data2 !== "string" }, () => {
            this.bufferedAmount -= length2;
          });
        }
      }
      _scheduleSend() {
        if (this._dequeueScheduled) {
          return;
        }
        this._dequeueScheduled = true;
        process.nextTick(() => {
          this._dequeueScheduled = false;
          this._actuallySend();
        });
      }
    };
    setupForSimpleEventAccessors(WebSocketImpl.prototype, ["open", "message", "error", "close"]);
    exports.implementation = WebSocketImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/WebSocket.js
var require_WebSocket = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/WebSocket.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Blob2 = require_Blob();
    var EventHandlerNonNull = require_EventHandlerNonNull();
    var BinaryType = require_BinaryType();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var EventTarget2 = require_EventTarget();
    var interfaceName = "WebSocket";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'WebSocket'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["WebSocket"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      EventTarget2._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class WebSocket extends globalObject.EventTarget {
        constructor(url3) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'WebSocket': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["USVString"](curArg, {
              context: "Failed to construct 'WebSocket': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              if (utils2.isObject(curArg)) {
                if (curArg[Symbol.iterator] !== void 0) {
                  if (!utils2.isObject(curArg)) {
                    throw new globalObject.TypeError(
                      "Failed to construct 'WebSocket': parameter 2 sequence is not an iterable object."
                    );
                  } else {
                    const V = [];
                    const tmp = curArg;
                    for (let nextItem of tmp) {
                      nextItem = conversions["DOMString"](nextItem, {
                        context: "Failed to construct 'WebSocket': parameter 2 sequence's element",
                        globals: globalObject
                      });
                      V.push(nextItem);
                    }
                    curArg = V;
                  }
                } else {
                }
              } else {
                curArg = conversions["DOMString"](curArg, {
                  context: "Failed to construct 'WebSocket': parameter 2",
                  globals: globalObject
                });
              }
            } else {
              curArg = [];
            }
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        close() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'close' called on an object that is not a valid instance of WebSocket.");
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["unsigned short"](curArg, {
                context: "Failed to execute 'close' on 'WebSocket': parameter 1",
                globals: globalObject,
                clamp: true
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["USVString"](curArg, {
                context: "Failed to execute 'close' on 'WebSocket': parameter 2",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].close(...args);
        }
        send(data2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'send' called on an object that is not a valid instance of WebSocket.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'send' on 'WebSocket': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (Blob2.is(curArg)) {
              {
                let curArg2 = arguments[0];
                curArg2 = Blob2.convert(globalObject, curArg2, {
                  context: "Failed to execute 'send' on 'WebSocket': parameter 1"
                });
                args.push(curArg2);
              }
            } else if (utils2.isArrayBuffer(curArg)) {
              {
                let curArg2 = arguments[0];
                curArg2 = conversions["ArrayBuffer"](curArg2, {
                  context: "Failed to execute 'send' on 'WebSocket': parameter 1",
                  globals: globalObject
                });
                args.push(curArg2);
              }
            } else if (ArrayBuffer.isView(curArg)) {
              {
                let curArg2 = arguments[0];
                if (ArrayBuffer.isView(curArg2)) {
                } else {
                  throw new globalObject.TypeError(
                    "Failed to execute 'send' on 'WebSocket': parameter 1 is not of any supported type."
                  );
                }
                args.push(curArg2);
              }
            } else {
              {
                let curArg2 = arguments[0];
                curArg2 = conversions["USVString"](curArg2, {
                  context: "Failed to execute 'send' on 'WebSocket': parameter 1",
                  globals: globalObject
                });
                args.push(curArg2);
              }
            }
          }
          return esValue[implSymbol].send(...args);
        }
        get url() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get url' called on an object that is not a valid instance of WebSocket.");
          }
          return esValue[implSymbol]["url"];
        }
        get readyState() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get readyState' called on an object that is not a valid instance of WebSocket."
            );
          }
          return esValue[implSymbol]["readyState"];
        }
        get bufferedAmount() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get bufferedAmount' called on an object that is not a valid instance of WebSocket."
            );
          }
          return esValue[implSymbol]["bufferedAmount"];
        }
        get onopen() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get onopen' called on an object that is not a valid instance of WebSocket.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onopen"]);
        }
        set onopen(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set onopen' called on an object that is not a valid instance of WebSocket.");
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onopen' property on 'WebSocket': The provided value"
            });
          }
          esValue[implSymbol]["onopen"] = V;
        }
        get onerror() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onerror' called on an object that is not a valid instance of WebSocket."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onerror"]);
        }
        set onerror(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onerror' called on an object that is not a valid instance of WebSocket."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onerror' property on 'WebSocket': The provided value"
            });
          }
          esValue[implSymbol]["onerror"] = V;
        }
        get onclose() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onclose' called on an object that is not a valid instance of WebSocket."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onclose"]);
        }
        set onclose(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onclose' called on an object that is not a valid instance of WebSocket."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onclose' property on 'WebSocket': The provided value"
            });
          }
          esValue[implSymbol]["onclose"] = V;
        }
        get extensions() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get extensions' called on an object that is not a valid instance of WebSocket."
            );
          }
          return esValue[implSymbol]["extensions"];
        }
        get protocol() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get protocol' called on an object that is not a valid instance of WebSocket."
            );
          }
          return esValue[implSymbol]["protocol"];
        }
        get onmessage() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get onmessage' called on an object that is not a valid instance of WebSocket."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["onmessage"]);
        }
        set onmessage(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set onmessage' called on an object that is not a valid instance of WebSocket."
            );
          }
          if (!utils2.isObject(V)) {
            V = null;
          } else {
            V = EventHandlerNonNull.convert(globalObject, V, {
              context: "Failed to set the 'onmessage' property on 'WebSocket': The provided value"
            });
          }
          esValue[implSymbol]["onmessage"] = V;
        }
        get binaryType() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get binaryType' called on an object that is not a valid instance of WebSocket."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["binaryType"]);
        }
        set binaryType(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'set binaryType' called on an object that is not a valid instance of WebSocket."
            );
          }
          V = `${V}`;
          if (!BinaryType.enumerationValues.has(V)) {
            return;
          }
          esValue[implSymbol]["binaryType"] = V;
        }
      }
      Object.defineProperties(WebSocket.prototype, {
        close: { enumerable: true },
        send: { enumerable: true },
        url: { enumerable: true },
        readyState: { enumerable: true },
        bufferedAmount: { enumerable: true },
        onopen: { enumerable: true },
        onerror: { enumerable: true },
        onclose: { enumerable: true },
        extensions: { enumerable: true },
        protocol: { enumerable: true },
        onmessage: { enumerable: true },
        binaryType: { enumerable: true },
        [Symbol.toStringTag]: { value: "WebSocket", configurable: true },
        CONNECTING: { value: 0, enumerable: true },
        OPEN: { value: 1, enumerable: true },
        CLOSING: { value: 2, enumerable: true },
        CLOSED: { value: 3, enumerable: true }
      });
      Object.defineProperties(WebSocket, {
        CONNECTING: { value: 0, enumerable: true },
        OPEN: { value: 1, enumerable: true },
        CLOSING: { value: 2, enumerable: true },
        CLOSED: { value: 3, enumerable: true }
      });
      ctorRegistry[interfaceName] = WebSocket;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: WebSocket
      });
    };
    var Impl = require_WebSocket_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/StaticRangeInit.js
var require_StaticRangeInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/StaticRangeInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Node = require_Node();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      {
        const key = "endContainer";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = Node.convert(globalObject, value2, { context: context + " has member 'endContainer' that" });
          ret[key] = value2;
        } else {
          throw new globalObject.TypeError("endContainer is required in 'StaticRangeInit'");
        }
      }
      {
        const key = "endOffset";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unsigned long"](value2, {
            context: context + " has member 'endOffset' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          throw new globalObject.TypeError("endOffset is required in 'StaticRangeInit'");
        }
      }
      {
        const key = "startContainer";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = Node.convert(globalObject, value2, { context: context + " has member 'startContainer' that" });
          ret[key] = value2;
        } else {
          throw new globalObject.TypeError("startContainer is required in 'StaticRangeInit'");
        }
      }
      {
        const key = "startOffset";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unsigned long"](value2, {
            context: context + " has member 'startOffset' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          throw new globalObject.TypeError("startOffset is required in 'StaticRangeInit'");
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/range/StaticRange-impl.js
var require_StaticRange_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/range/StaticRange-impl.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var NODE_TYPE = require_node_type();
    var AbstractRangeImpl = require_AbstractRange_impl().implementation;
    var StaticRangeImpl = class extends AbstractRangeImpl {
      // https://dom.spec.whatwg.org/#dom-staticrange-staticrange
      constructor(globalObject, args) {
        const { startContainer, startOffset, endContainer, endOffset } = args[0];
        if (startContainer.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE || startContainer.nodeType === NODE_TYPE.ATTRIBUTE_NODE || endContainer.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE || endContainer.nodeType === NODE_TYPE.ATTRIBUTE_NODE) {
          throw DOMException2.create(globalObject, ["The supplied node is incorrect.", "InvalidNodeTypeError"]);
        }
        super(globalObject, [], {
          start: {
            node: startContainer,
            offset: startOffset
          },
          end: {
            node: endContainer,
            offset: endOffset
          }
        });
      }
    };
    module.exports = {
      implementation: StaticRangeImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/StaticRange.js
var require_StaticRange = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/StaticRange.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var StaticRangeInit = require_StaticRangeInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var AbstractRange = require_AbstractRange();
    var interfaceName = "StaticRange";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'StaticRange'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["StaticRange"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      AbstractRange._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class StaticRange extends globalObject.AbstractRange {
        constructor(init3) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'StaticRange': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = StaticRangeInit.convert(globalObject, curArg, {
              context: "Failed to construct 'StaticRange': parameter 1"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
      }
      Object.defineProperties(StaticRange.prototype, {
        [Symbol.toStringTag]: { value: "StaticRange", configurable: true }
      });
      ctorRegistry[interfaceName] = StaticRange;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: StaticRange
      });
    };
    var Impl = require_StaticRange_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/selection/Selection-impl.js
var require_Selection_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/selection/Selection-impl.js"(exports, module) {
    "use strict";
    var DOMException2 = require_DOMException();
    var NODE_TYPE = require_node_type();
    var { nodeLength, nodeRoot } = require_node4();
    var { domSymbolTree } = require_internal_constants();
    var { compareBoundaryPointsPosition } = require_boundary_point();
    var { setBoundaryPointStart, setBoundaryPointEnd } = require_Range_impl();
    var Range = require_Range();
    var { implForWrapper } = require_utils16();
    var { fireAnEvent } = require_events4();
    var SELECTION_DIRECTION = {
      FORWARDS: 1,
      BACKWARDS: -1,
      DIRECTIONLESS: 0
    };
    var SelectionImpl = class {
      constructor(globalObject) {
        this._range = null;
        this._direction = SELECTION_DIRECTION.DIRECTIONLESS;
        this._globalObject = globalObject;
      }
      // https://w3c.github.io/selection-api/#dom-selection-anchornode
      get anchorNode() {
        const anchor = this._anchor;
        return anchor ? anchor.node : null;
      }
      // https://w3c.github.io/selection-api/#dom-selection-anchoroffset
      get anchorOffset() {
        const anchor = this._anchor;
        return anchor ? anchor.offset : 0;
      }
      // https://w3c.github.io/selection-api/#dom-selection-focusnode
      get focusNode() {
        const focus = this._focus;
        return focus ? focus.node : null;
      }
      // https://w3c.github.io/selection-api/#dom-selection-focusoffset
      get focusOffset() {
        const focus = this._focus;
        return focus ? focus.offset : 0;
      }
      // https://w3c.github.io/selection-api/#dom-selection-iscollapsed
      get isCollapsed() {
        return this._range === null || this._range.collapsed;
      }
      // https://w3c.github.io/selection-api/#dom-selection-rangecount
      get rangeCount() {
        return this._isEmpty() ? 0 : 1;
      }
      // https://w3c.github.io/selection-api/#dom-selection-type
      get type() {
        if (this._isEmpty()) {
          return "None";
        } else if (this._range.collapsed) {
          return "Caret";
        }
        return "Range";
      }
      // https://w3c.github.io/selection-api/#dom-selection-getrangeat
      getRangeAt(index2) {
        if (index2 !== 0 || this._isEmpty()) {
          throw DOMException2.create(this._globalObject, ["Invalid range index.", "IndexSizeError"]);
        }
        return this._range;
      }
      // https://w3c.github.io/selection-api/#dom-selection-addrange
      addRange(range2) {
        if (range2._root === implForWrapper(this._globalObject._document) && this.rangeCount === 0) {
          this._associateRange(range2);
        }
      }
      // https://w3c.github.io/selection-api/#dom-selection-removerange
      removeRange(range2) {
        if (range2 !== this._range) {
          throw DOMException2.create(this._globalObject, ["Invalid range.", "NotFoundError"]);
        }
        this._associateRange(null);
      }
      // https://w3c.github.io/selection-api/#dom-selection-removeallranges
      removeAllRanges() {
        this._associateRange(null);
      }
      // https://w3c.github.io/selection-api/#dom-selection-empty
      empty() {
        this.removeAllRanges();
      }
      // https://w3c.github.io/selection-api/#dom-selection-collapse
      collapse(node, offset2) {
        if (node === null) {
          this.removeAllRanges();
          return;
        }
        if (node.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE) {
          throw DOMException2.create(this._globalObject, [
            "DocumentType Node can't be used as boundary point.",
            "InvalidNodeTypeError"
          ]);
        }
        if (offset2 > nodeLength(node)) {
          throw DOMException2.create(this._globalObject, ["Invalid range index.", "IndexSizeError"]);
        }
        if (nodeRoot(node) !== implForWrapper(this._globalObject._document)) {
          return;
        }
        const newRange = Range.createImpl(this._globalObject, [], {
          start: { node, offset: 0 },
          end: { node, offset: 0 }
        });
        setBoundaryPointStart(newRange, node, offset2);
        setBoundaryPointEnd(newRange, node, offset2);
        this._associateRange(newRange);
      }
      // https://w3c.github.io/selection-api/#dom-selection-setposition
      setPosition(node, offset2) {
        this.collapse(node, offset2);
      }
      // https://w3c.github.io/selection-api/#dom-selection-collapsetostart
      collapseToStart() {
        if (this._isEmpty()) {
          throw DOMException2.create(this._globalObject, ["There is no selection to collapse.", "InvalidStateError"]);
        }
        const { node, offset: offset2 } = this._range._start;
        const newRange = Range.createImpl(this._globalObject, [], {
          start: { node, offset: offset2 },
          end: { node, offset: offset2 }
        });
        this._associateRange(newRange);
      }
      // https://w3c.github.io/selection-api/#dom-selection-collapsetoend
      collapseToEnd() {
        if (this._isEmpty()) {
          throw DOMException2.create(this._globalObject, ["There is no selection to collapse.", "InvalidStateError"]);
        }
        const { node, offset: offset2 } = this._range._end;
        const newRange = Range.createImpl(this._globalObject, [], {
          start: { node, offset: offset2 },
          end: { node, offset: offset2 }
        });
        this._associateRange(newRange);
      }
      // https://w3c.github.io/selection-api/#dom-selection-extend
      extend(node, offset2) {
        if (nodeRoot(node) !== implForWrapper(this._globalObject._document)) {
          return;
        }
        if (this._isEmpty()) {
          throw DOMException2.create(this._globalObject, ["There is no selection to extend.", "InvalidStateError"]);
        }
        const { _anchor: oldAnchor } = this;
        const newFocus = { node, offset: offset2 };
        const newRange = Range.createImpl(this._globalObject, [], {
          start: { node, offset: 0 },
          end: { node, offset: 0 }
        });
        if (nodeRoot(node) !== this._range._root) {
          setBoundaryPointStart(newRange, newFocus.node, newFocus.offset);
          setBoundaryPointEnd(newRange, newFocus.node, newFocus.offset);
        } else if (compareBoundaryPointsPosition(oldAnchor, newFocus) <= 0) {
          setBoundaryPointStart(newRange, oldAnchor.node, oldAnchor.offset);
          setBoundaryPointEnd(newRange, newFocus.node, newFocus.offset);
        } else {
          setBoundaryPointStart(newRange, newFocus.node, newFocus.offset);
          setBoundaryPointEnd(newRange, oldAnchor.node, oldAnchor.offset);
        }
        this._associateRange(newRange);
        this._direction = compareBoundaryPointsPosition(newFocus, oldAnchor) === -1 ? SELECTION_DIRECTION.BACKWARDS : SELECTION_DIRECTION.FORWARDS;
      }
      // https://w3c.github.io/selection-api/#dom-selection-setbaseandextent
      setBaseAndExtent(anchorNode, anchorOffset, focusNode, focusOffset) {
        if (anchorOffset > nodeLength(anchorNode) || focusOffset > nodeLength(focusNode)) {
          throw DOMException2.create(this._globalObject, ["Invalid anchor or focus offset.", "IndexSizeError"]);
        }
        const document2 = implForWrapper(this._globalObject._document);
        if (document2 !== nodeRoot(anchorNode) || document2 !== nodeRoot(focusNode)) {
          return;
        }
        const anchor = { node: anchorNode, offset: anchorOffset };
        const focus = { node: focusNode, offset: focusOffset };
        let newRange;
        if (compareBoundaryPointsPosition(anchor, focus) === -1) {
          newRange = Range.createImpl(this._globalObject, [], {
            start: { node: anchor.node, offset: anchor.offset },
            end: { node: focus.node, offset: focus.offset }
          });
        } else {
          newRange = Range.createImpl(this._globalObject, [], {
            start: { node: focus.node, offset: focus.offset },
            end: { node: anchor.node, offset: anchor.offset }
          });
        }
        this._associateRange(newRange);
        this._direction = compareBoundaryPointsPosition(focus, anchor) === -1 ? SELECTION_DIRECTION.BACKWARDS : SELECTION_DIRECTION.FORWARDS;
      }
      // https://w3c.github.io/selection-api/#dom-selection-selectallchildren
      selectAllChildren(node) {
        if (node.nodeType === NODE_TYPE.DOCUMENT_TYPE_NODE) {
          throw DOMException2.create(this._globalObject, [
            "DocumentType Node can't be used as boundary point.",
            "InvalidNodeTypeError"
          ]);
        }
        const document2 = implForWrapper(this._globalObject._document);
        if (document2 !== nodeRoot(node)) {
          return;
        }
        const length2 = domSymbolTree.childrenCount(node);
        const newRange = Range.createImpl(this._globalObject, [], {
          start: { node, offset: 0 },
          end: { node, offset: 0 }
        });
        setBoundaryPointStart(newRange, node, 0);
        setBoundaryPointEnd(newRange, node, length2);
        this._associateRange(newRange);
      }
      // https://w3c.github.io/selection-api/#dom-selection-deletefromdocument
      deleteFromDocument() {
        if (!this._isEmpty()) {
          this._range.deleteContents();
        }
      }
      // https://w3c.github.io/selection-api/#dom-selection-containsnode
      containsNode(node, allowPartialContainment) {
        if (this._isEmpty() || nodeRoot(node) !== implForWrapper(this._globalObject._document)) {
          return false;
        }
        const { _start, _end } = this._range;
        const startIsBeforeNode = compareBoundaryPointsPosition(_start, { node, offset: 0 }) === -1;
        const endIsAfterNode = compareBoundaryPointsPosition(_end, { node, offset: nodeLength(node) }) === 1;
        return allowPartialContainment ? startIsBeforeNode || endIsAfterNode : startIsBeforeNode && endIsAfterNode;
      }
      // https://w3c.github.io/selection-api/#dom-selection-stringifier
      toString() {
        return this._range ? this._range.toString() : "";
      }
      // https://w3c.github.io/selection-api/#dfn-empty
      _isEmpty() {
        return this._range === null;
      }
      // https://w3c.github.io/selection-api/#dfn-anchor
      get _anchor() {
        if (!this._range) {
          return null;
        }
        return this._direction === SELECTION_DIRECTION.FORWARDS ? this._range._start : this._range._end;
      }
      // https://w3c.github.io/selection-api/#dfn-focus
      get _focus() {
        if (!this._range) {
          return null;
        }
        return this._direction === SELECTION_DIRECTION.FORWARDS ? this._range._end : this._range._start;
      }
      _associateRange(newRange) {
        const didSelectionChange = this._range !== newRange && // Change from/to null selection
        (newRange === null || this._range === null || // Change of selection range
        compareBoundaryPointsPosition(newRange._start, this._range._start) !== 0 || compareBoundaryPointsPosition(newRange._end, this._range._end) !== 0);
        this._range = newRange;
        this._direction = newRange === null ? SELECTION_DIRECTION.DIRECTIONLESS : SELECTION_DIRECTION.FORWARDS;
        if (didSelectionChange) {
          const document2 = this._globalObject._document;
          setTimeout(() => {
            fireAnEvent("selectionchange", implForWrapper(document2));
          }, 0);
        }
      }
    };
    module.exports = {
      implementation: SelectionImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Selection.js
var require_Selection = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Selection.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Range = require_Range();
    var Node = require_Node();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "Selection";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Selection'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Selection"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Selection {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        getRangeAt(index2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'getRangeAt' called on an object that is not a valid instance of Selection.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'getRangeAt' on 'Selection': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'getRangeAt' on 'Selection': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getRangeAt(...args));
        }
        addRange(range2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'addRange' called on an object that is not a valid instance of Selection.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'addRange' on 'Selection': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Range.convert(globalObject, curArg, {
              context: "Failed to execute 'addRange' on 'Selection': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].addRange(...args);
        }
        removeRange(range2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'removeRange' called on an object that is not a valid instance of Selection."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'removeRange' on 'Selection': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Range.convert(globalObject, curArg, {
              context: "Failed to execute 'removeRange' on 'Selection': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].removeRange(...args);
        }
        removeAllRanges() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'removeAllRanges' called on an object that is not a valid instance of Selection."
            );
          }
          return esValue[implSymbol].removeAllRanges();
        }
        empty() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'empty' called on an object that is not a valid instance of Selection.");
          }
          return esValue[implSymbol].empty();
        }
        collapse(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'collapse' called on an object that is not a valid instance of Selection.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'collapse' on 'Selection': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = Node.convert(globalObject, curArg, {
                context: "Failed to execute 'collapse' on 'Selection': parameter 1"
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["unsigned long"](curArg, {
                context: "Failed to execute 'collapse' on 'Selection': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].collapse(...args);
        }
        setPosition(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setPosition' called on an object that is not a valid instance of Selection."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'setPosition' on 'Selection': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg === null || curArg === void 0) {
              curArg = null;
            } else {
              curArg = Node.convert(globalObject, curArg, {
                context: "Failed to execute 'setPosition' on 'Selection': parameter 1"
              });
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["unsigned long"](curArg, {
                context: "Failed to execute 'setPosition' on 'Selection': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].setPosition(...args);
        }
        collapseToStart() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'collapseToStart' called on an object that is not a valid instance of Selection."
            );
          }
          return esValue[implSymbol].collapseToStart();
        }
        collapseToEnd() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'collapseToEnd' called on an object that is not a valid instance of Selection."
            );
          }
          return esValue[implSymbol].collapseToEnd();
        }
        extend(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'extend' called on an object that is not a valid instance of Selection.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'extend' on 'Selection': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'extend' on 'Selection': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["unsigned long"](curArg, {
                context: "Failed to execute 'extend' on 'Selection': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].extend(...args);
        }
        setBaseAndExtent(anchorNode, anchorOffset, focusNode, focusOffset) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'setBaseAndExtent' called on an object that is not a valid instance of Selection."
            );
          }
          if (arguments.length < 4) {
            throw new globalObject.TypeError(
              `Failed to execute 'setBaseAndExtent' on 'Selection': 4 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'setBaseAndExtent' on 'Selection': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'setBaseAndExtent' on 'Selection': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'setBaseAndExtent' on 'Selection': parameter 3"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[3];
            curArg = conversions["unsigned long"](curArg, {
              context: "Failed to execute 'setBaseAndExtent' on 'Selection': parameter 4",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].setBaseAndExtent(...args);
        }
        selectAllChildren(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'selectAllChildren' called on an object that is not a valid instance of Selection."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'selectAllChildren' on 'Selection': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'selectAllChildren' on 'Selection': parameter 1"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].selectAllChildren(...args);
        }
        deleteFromDocument() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'deleteFromDocument' called on an object that is not a valid instance of Selection."
            );
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].deleteFromDocument();
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        containsNode(node) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'containsNode' called on an object that is not a valid instance of Selection."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'containsNode' on 'Selection': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'containsNode' on 'Selection': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["boolean"](curArg, {
                context: "Failed to execute 'containsNode' on 'Selection': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = false;
            }
            args.push(curArg);
          }
          return esValue[implSymbol].containsNode(...args);
        }
        toString() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'toString' called on an object that is not a valid instance of Selection.");
          }
          return esValue[implSymbol].toString();
        }
        get anchorNode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get anchorNode' called on an object that is not a valid instance of Selection."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["anchorNode"]);
        }
        get anchorOffset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get anchorOffset' called on an object that is not a valid instance of Selection."
            );
          }
          return esValue[implSymbol]["anchorOffset"];
        }
        get focusNode() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get focusNode' called on an object that is not a valid instance of Selection."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol]["focusNode"]);
        }
        get focusOffset() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get focusOffset' called on an object that is not a valid instance of Selection."
            );
          }
          return esValue[implSymbol]["focusOffset"];
        }
        get isCollapsed() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get isCollapsed' called on an object that is not a valid instance of Selection."
            );
          }
          return esValue[implSymbol]["isCollapsed"];
        }
        get rangeCount() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get rangeCount' called on an object that is not a valid instance of Selection."
            );
          }
          return esValue[implSymbol]["rangeCount"];
        }
        get type() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get type' called on an object that is not a valid instance of Selection.");
          }
          return esValue[implSymbol]["type"];
        }
      }
      Object.defineProperties(Selection.prototype, {
        getRangeAt: { enumerable: true },
        addRange: { enumerable: true },
        removeRange: { enumerable: true },
        removeAllRanges: { enumerable: true },
        empty: { enumerable: true },
        collapse: { enumerable: true },
        setPosition: { enumerable: true },
        collapseToStart: { enumerable: true },
        collapseToEnd: { enumerable: true },
        extend: { enumerable: true },
        setBaseAndExtent: { enumerable: true },
        selectAllChildren: { enumerable: true },
        deleteFromDocument: { enumerable: true },
        containsNode: { enumerable: true },
        toString: { enumerable: true },
        anchorNode: { enumerable: true },
        anchorOffset: { enumerable: true },
        focusNode: { enumerable: true },
        focusOffset: { enumerable: true },
        isCollapsed: { enumerable: true },
        rangeCount: { enumerable: true },
        type: { enumerable: true },
        [Symbol.toStringTag]: { value: "Selection", configurable: true }
      });
      ctorRegistry[interfaceName] = Selection;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Selection
      });
    };
    var Impl = require_Selection_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CustomElementConstructor.js
var require_CustomElementConstructor = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CustomElementConstructor.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (typeof value2 !== "function") {
        throw new globalObject.TypeError(context + " is not a function");
      }
      function invokeTheCallbackFunction() {
        const thisArg = utils2.tryWrapperForImpl(this);
        let callResult;
        callResult = Reflect.apply(value2, thisArg, []);
        callResult = conversions["any"](callResult, { context, globals: globalObject });
        return callResult;
      }
      invokeTheCallbackFunction.construct = () => {
        let callResult = Reflect.construct(value2, []);
        callResult = conversions["any"](callResult, { context, globals: globalObject });
        return callResult;
      };
      invokeTheCallbackFunction[utils2.wrapperSymbol] = value2;
      invokeTheCallbackFunction.objectReference = value2;
      return invokeTheCallbackFunction;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js
var require_ElementDefinitionOptions = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      {
        const key = "extends";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["DOMString"](value2, {
            context: context + " has member 'extends' that",
            globals: globalObject
          });
          ret[key] = value2;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/custom-elements/CustomElementRegistry-impl.js
var require_CustomElementRegistry_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/custom-elements/CustomElementRegistry-impl.js"(exports, module) {
    "use strict";
    var webIDLConversions = require_lib20();
    var DOMException2 = require_DOMException();
    var NODE_TYPE = require_node_type();
    var { HTML_NS } = require_namespaces();
    var { getHTMLElementInterface } = require_create_element();
    var { shadowIncludingInclusiveDescendantsIterator } = require_shadow_dom();
    var { isValidCustomElementName, tryUpgradeElement, enqueueCEUpgradeReaction } = require_custom_elements();
    var idlUtils = require_utils16();
    var IDLFunction = require_Function2();
    var HTMLUnknownElement = require_HTMLUnknownElement();
    var LIFECYCLE_CALLBACKS = [
      "connectedCallback",
      "disconnectedCallback",
      "adoptedCallback",
      "attributeChangedCallback"
    ];
    function convertToSequenceDOMString(obj) {
      if (!obj || !obj[Symbol.iterator]) {
        throw new TypeError("Invalid Sequence");
      }
      return Array.from(obj, webIDLConversions.DOMString);
    }
    function isConstructor(value2) {
      if (typeof value2 !== "function") {
        return false;
      }
      try {
        const P = new Proxy(value2, {
          construct() {
            return {};
          }
        });
        new P();
        return true;
      } catch {
        return false;
      }
    }
    var CustomElementRegistryImpl = class {
      constructor(globalObject) {
        this._customElementDefinitions = [];
        this._elementDefinitionIsRunning = false;
        this._whenDefinedPromiseMap = /* @__PURE__ */ Object.create(null);
        this._globalObject = globalObject;
      }
      // https://html.spec.whatwg.org/#dom-customelementregistry-define
      define(name, constructor, options) {
        const { _globalObject } = this;
        const ctor = constructor.objectReference;
        if (!isConstructor(ctor)) {
          throw new TypeError("Constructor argument is not a constructor.");
        }
        if (!isValidCustomElementName(name)) {
          throw DOMException2.create(_globalObject, ["Name argument is not a valid custom element name.", "SyntaxError"]);
        }
        const nameAlreadyRegistered = this._customElementDefinitions.some((entry) => entry.name === name);
        if (nameAlreadyRegistered) {
          throw DOMException2.create(_globalObject, [
            "This name has already been registered in the registry.",
            "NotSupportedError"
          ]);
        }
        const ctorAlreadyRegistered = this._customElementDefinitions.some((entry) => entry.objectReference === ctor);
        if (ctorAlreadyRegistered) {
          throw DOMException2.create(_globalObject, [
            "This constructor has already been registered in the registry.",
            "NotSupportedError"
          ]);
        }
        let localName = name;
        let extendsOption = null;
        if (options !== void 0 && options.extends) {
          extendsOption = options.extends;
        }
        if (extendsOption !== null) {
          if (isValidCustomElementName(extendsOption)) {
            throw DOMException2.create(_globalObject, [
              "Option extends value can't be a valid custom element name.",
              "NotSupportedError"
            ]);
          }
          const extendsInterface = getHTMLElementInterface(extendsOption);
          if (extendsInterface === HTMLUnknownElement) {
            throw DOMException2.create(_globalObject, [
              `${extendsOption} is an HTMLUnknownElement.`,
              "NotSupportedError"
            ]);
          }
          localName = extendsOption;
        }
        if (this._elementDefinitionIsRunning) {
          throw DOMException2.create(_globalObject, [
            "Invalid nested custom element definition.",
            "NotSupportedError"
          ]);
        }
        this._elementDefinitionIsRunning = true;
        let disableInternals = false;
        let disableShadow = false;
        let observedAttributes = [];
        let formAssociated = false;
        const lifecycleCallbacks = {
          connectedCallback: null,
          disconnectedCallback: null,
          adoptedCallback: null,
          attributeChangedCallback: null
        };
        let caughtError;
        try {
          const { prototype: prototype2 } = ctor;
          if (typeof prototype2 !== "object") {
            throw new TypeError("Invalid constructor prototype.");
          }
          for (const callbackName of LIFECYCLE_CALLBACKS) {
            const callbackValue = prototype2[callbackName];
            if (callbackValue !== void 0) {
              lifecycleCallbacks[callbackName] = IDLFunction.convert(_globalObject, callbackValue, {
                context: `The lifecycle callback "${callbackName}"`
              });
            }
          }
          if (lifecycleCallbacks.attributeChangedCallback !== null) {
            const observedAttributesIterable = ctor.observedAttributes;
            if (observedAttributesIterable !== void 0) {
              observedAttributes = convertToSequenceDOMString(observedAttributesIterable);
            }
          }
          let disabledFeatures = [];
          const disabledFeaturesIterable = ctor.disabledFeatures;
          if (disabledFeaturesIterable) {
            disabledFeatures = convertToSequenceDOMString(disabledFeaturesIterable);
          }
          const formAssociatedValue = ctor.formAssociated;
          disableInternals = disabledFeatures.includes("internals");
          disableShadow = disabledFeatures.includes("shadow");
          formAssociated = webIDLConversions.boolean(formAssociatedValue);
        } catch (err2) {
          caughtError = err2;
        } finally {
          this._elementDefinitionIsRunning = false;
        }
        if (caughtError !== void 0) {
          throw caughtError;
        }
        const definition = {
          name,
          localName,
          constructor,
          objectReference: ctor,
          formAssociated,
          observedAttributes,
          lifecycleCallbacks,
          disableShadow,
          disableInternals,
          constructionStack: []
        };
        this._customElementDefinitions.push(definition);
        const document2 = idlUtils.implForWrapper(this._globalObject._document);
        const upgradeCandidates = [];
        for (const candidate of shadowIncludingInclusiveDescendantsIterator(document2)) {
          if (candidate._namespaceURI === HTML_NS && candidate._localName === localName && (extendsOption === null || candidate._isValue === name)) {
            upgradeCandidates.push(candidate);
          }
        }
        for (const upgradeCandidate of upgradeCandidates) {
          enqueueCEUpgradeReaction(upgradeCandidate, definition);
        }
        if (this._whenDefinedPromiseMap[name] !== void 0) {
          this._whenDefinedPromiseMap[name].resolve(ctor);
          delete this._whenDefinedPromiseMap[name];
        }
      }
      // https://html.spec.whatwg.org/#dom-customelementregistry-get
      get(name) {
        const definition = this._customElementDefinitions.find((entry) => entry.name === name);
        return definition && definition.objectReference;
      }
      // https://html.spec.whatwg.org/#dom-customelementregistry-whendefined
      whenDefined(name) {
        if (!isValidCustomElementName(name)) {
          return Promise.reject(DOMException2.create(
            this._globalObject,
            ["Name argument is not a valid custom element name.", "SyntaxError"]
          ));
        }
        const alreadyRegistered = this._customElementDefinitions.find((entry) => entry.name === name);
        if (alreadyRegistered) {
          return Promise.resolve(alreadyRegistered.objectReference);
        }
        if (this._whenDefinedPromiseMap[name] === void 0) {
          let resolve4;
          const promise = new Promise((r4) => {
            resolve4 = r4;
          });
          this._whenDefinedPromiseMap[name] = {
            promise,
            resolve: resolve4
          };
        }
        return this._whenDefinedPromiseMap[name].promise;
      }
      // https://html.spec.whatwg.org/#dom-customelementregistry-upgrade
      upgrade(root) {
        for (const candidate of shadowIncludingInclusiveDescendantsIterator(root)) {
          if (candidate.nodeType === NODE_TYPE.ELEMENT_NODE) {
            tryUpgradeElement(candidate);
          }
        }
      }
    };
    module.exports = {
      implementation: CustomElementRegistryImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js
var require_CustomElementRegistry = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var CustomElementConstructor = require_CustomElementConstructor();
    var ElementDefinitionOptions = require_ElementDefinitionOptions();
    var ceReactionsPreSteps_helpers_custom_elements = require_custom_elements().ceReactionsPreSteps;
    var ceReactionsPostSteps_helpers_custom_elements = require_custom_elements().ceReactionsPostSteps;
    var Node = require_Node();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "CustomElementRegistry";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'CustomElementRegistry'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["CustomElementRegistry"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class CustomElementRegistry {
        constructor() {
          throw new globalObject.TypeError("Illegal constructor");
        }
        define(name, constructor) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'define' called on an object that is not a valid instance of CustomElementRegistry."
            );
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'define' on 'CustomElementRegistry': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'define' on 'CustomElementRegistry': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = CustomElementConstructor.convert(globalObject, curArg, {
              context: "Failed to execute 'define' on 'CustomElementRegistry': parameter 2"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            curArg = ElementDefinitionOptions.convert(globalObject, curArg, {
              context: "Failed to execute 'define' on 'CustomElementRegistry': parameter 3"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].define(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
        get(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get' called on an object that is not a valid instance of CustomElementRegistry."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'get' on 'CustomElementRegistry': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["DOMString"](curArg, {
              context: "Failed to execute 'get' on 'CustomElementRegistry': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].get(...args);
        }
        whenDefined(name) {
          try {
            const esValue = this !== null && this !== void 0 ? this : globalObject;
            if (!exports.is(esValue)) {
              throw new globalObject.TypeError(
                "'whenDefined' called on an object that is not a valid instance of CustomElementRegistry."
              );
            }
            if (arguments.length < 1) {
              throw new globalObject.TypeError(
                `Failed to execute 'whenDefined' on 'CustomElementRegistry': 1 argument required, but only ${arguments.length} present.`
              );
            }
            const args = [];
            {
              let curArg = arguments[0];
              curArg = conversions["DOMString"](curArg, {
                context: "Failed to execute 'whenDefined' on 'CustomElementRegistry': parameter 1",
                globals: globalObject
              });
              args.push(curArg);
            }
            return utils2.tryWrapperForImpl(esValue[implSymbol].whenDefined(...args));
          } catch (e4) {
            return globalObject.Promise.reject(e4);
          }
        }
        upgrade(root) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'upgrade' called on an object that is not a valid instance of CustomElementRegistry."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'upgrade' on 'CustomElementRegistry': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'upgrade' on 'CustomElementRegistry': parameter 1"
            });
            args.push(curArg);
          }
          ceReactionsPreSteps_helpers_custom_elements(globalObject);
          try {
            return esValue[implSymbol].upgrade(...args);
          } finally {
            ceReactionsPostSteps_helpers_custom_elements(globalObject);
          }
        }
      }
      Object.defineProperties(CustomElementRegistry.prototype, {
        define: { enumerable: true },
        get: { enumerable: true },
        whenDefined: { enumerable: true },
        upgrade: { enumerable: true },
        [Symbol.toStringTag]: { value: "CustomElementRegistry", configurable: true }
      });
      ctorRegistry[interfaceName] = CustomElementRegistry;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: CustomElementRegistry
      });
    };
    var Impl = require_CustomElementRegistry_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MutationCallback.js
var require_MutationCallback = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MutationCallback.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (typeof value2 !== "function") {
        throw new globalObject.TypeError(context + " is not a function");
      }
      function invokeTheCallbackFunction(mutations, observer) {
        const thisArg = utils2.tryWrapperForImpl(this);
        let callResult;
        mutations = utils2.tryWrapperForImpl(mutations);
        observer = utils2.tryWrapperForImpl(observer);
        callResult = Reflect.apply(value2, thisArg, [mutations, observer]);
      }
      invokeTheCallbackFunction.construct = (mutations, observer) => {
        mutations = utils2.tryWrapperForImpl(mutations);
        observer = utils2.tryWrapperForImpl(observer);
        let callResult = Reflect.construct(value2, [mutations, observer]);
      };
      invokeTheCallbackFunction[utils2.wrapperSymbol] = value2;
      invokeTheCallbackFunction.objectReference = value2;
      return invokeTheCallbackFunction;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js
var require_MutationObserverInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      {
        const key = "attributeFilter";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          if (!utils2.isObject(value2)) {
            throw new globalObject.TypeError(
              context + " has member 'attributeFilter' that is not an iterable object."
            );
          } else {
            const V = [];
            const tmp = value2;
            for (let nextItem of tmp) {
              nextItem = conversions["DOMString"](nextItem, {
                context: context + " has member 'attributeFilter' that's element",
                globals: globalObject
              });
              V.push(nextItem);
            }
            value2 = V;
          }
          ret[key] = value2;
        }
      }
      {
        const key = "attributeOldValue";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'attributeOldValue' that",
            globals: globalObject
          });
          ret[key] = value2;
        }
      }
      {
        const key = "attributes";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'attributes' that",
            globals: globalObject
          });
          ret[key] = value2;
        }
      }
      {
        const key = "characterData";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'characterData' that",
            globals: globalObject
          });
          ret[key] = value2;
        }
      }
      {
        const key = "characterDataOldValue";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'characterDataOldValue' that",
            globals: globalObject
          });
          ret[key] = value2;
        }
      }
      {
        const key = "childList";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, {
            context: context + " has member 'childList' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
      {
        const key = "subtree";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["boolean"](value2, { context: context + " has member 'subtree' that", globals: globalObject });
          ret[key] = value2;
        } else {
          ret[key] = false;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationObserver-impl.js
var require_MutationObserver_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationObserver-impl.js"(exports, module) {
    "use strict";
    var { wrapperForImpl } = require_utils16();
    var mutationObserverId = 0;
    var MutationObserverImpl = class {
      // https://dom.spec.whatwg.org/#dom-mutationobserver-mutationobserver
      constructor(globalObject, args) {
        const [callback] = args;
        this._callback = callback;
        this._nodeList = [];
        this._recordQueue = [];
        this._id = ++mutationObserverId;
      }
      // https://dom.spec.whatwg.org/#dom-mutationobserver-observe
      observe(target, options) {
        if (("attributeOldValue" in options || "attributeFilter" in options) && !("attributes" in options)) {
          options.attributes = true;
        }
        if ("characterDataOldValue" in options & !("characterData" in options)) {
          options.characterData = true;
        }
        if (!options.childList && !options.attributes && !options.characterData) {
          throw new TypeError("The options object must set at least one of 'attributes', 'characterData', or 'childList' to true.");
        } else if (options.attributeOldValue && !options.attributes) {
          throw new TypeError("The options object may only set 'attributeOldValue' to true when 'attributes' is true or not present.");
        } else if ("attributeFilter" in options && !options.attributes) {
          throw new TypeError("The options object may only set 'attributeFilter' when 'attributes' is true or not present.");
        } else if (options.characterDataOldValue && !options.characterData) {
          throw new TypeError("The options object may only set 'characterDataOldValue' to true when 'characterData' is true or not present.");
        }
        const existingRegisteredObserver = target._registeredObserverList.find((registeredObserver) => {
          return registeredObserver.observer === this;
        });
        if (existingRegisteredObserver) {
          for (const node of this._nodeList) {
            node._registeredObserverList = node._registeredObserverList.filter((registeredObserver) => {
              return registeredObserver.source !== existingRegisteredObserver;
            });
          }
          existingRegisteredObserver.options = options;
        } else {
          target._registeredObserverList.push({
            observer: this,
            options
          });
          this._nodeList.push(target);
        }
      }
      // https://dom.spec.whatwg.org/#dom-mutationobserver-disconnect
      disconnect() {
        for (const node of this._nodeList) {
          node._registeredObserverList = node._registeredObserverList.filter((registeredObserver) => {
            return registeredObserver.observer !== this;
          });
        }
        this._recordQueue = [];
      }
      // https://dom.spec.whatwg.org/#dom-mutationobserver-takerecords
      takeRecords() {
        const records = this._recordQueue.map(wrapperForImpl);
        this._recordQueue = [];
        return records;
      }
    };
    module.exports = {
      implementation: MutationObserverImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js
var require_MutationObserver = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var MutationCallback = require_MutationCallback();
    var Node = require_Node();
    var MutationObserverInit = require_MutationObserverInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "MutationObserver";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'MutationObserver'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["MutationObserver"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class MutationObserver {
        constructor(callback) {
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to construct 'MutationObserver': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = MutationCallback.convert(globalObject, curArg, {
              context: "Failed to construct 'MutationObserver': parameter 1"
            });
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        observe(target) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'observe' called on an object that is not a valid instance of MutationObserver."
            );
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'observe' on 'MutationObserver': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = Node.convert(globalObject, curArg, {
              context: "Failed to execute 'observe' on 'MutationObserver': parameter 1"
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = MutationObserverInit.convert(globalObject, curArg, {
              context: "Failed to execute 'observe' on 'MutationObserver': parameter 2"
            });
            args.push(curArg);
          }
          return esValue[implSymbol].observe(...args);
        }
        disconnect() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'disconnect' called on an object that is not a valid instance of MutationObserver."
            );
          }
          return esValue[implSymbol].disconnect();
        }
        takeRecords() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'takeRecords' called on an object that is not a valid instance of MutationObserver."
            );
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].takeRecords());
        }
      }
      Object.defineProperties(MutationObserver.prototype, {
        observe: { enumerable: true },
        disconnect: { enumerable: true },
        takeRecords: { enumerable: true },
        [Symbol.toStringTag]: { value: "MutationObserver", configurable: true }
      });
      ctorRegistry[interfaceName] = MutationObserver;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: MutationObserver
      });
    };
    var Impl = require_MutationObserver_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/fetch/header-types.js
var require_header_types = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/fetch/header-types.js"(exports, module) {
    "use strict";
    var MIMEType = require_mime_type();
    var PRIVILEGED_NO_CORS_REQUEST = /* @__PURE__ */ new Set(["range"]);
    function isPrivilegedNoCORSRequest(name) {
      return PRIVILEGED_NO_CORS_REQUEST.has(name.toLowerCase());
    }
    var NO_CORS_SAFELISTED_REQUEST = /* @__PURE__ */ new Set([
      `accept`,
      `accept-language`,
      `content-language`,
      `content-type`
    ]);
    function isNoCORSSafelistedRequest(name) {
      return NO_CORS_SAFELISTED_REQUEST.has(name.toLowerCase());
    }
    var FORBIDDEN = /* @__PURE__ */ new Set([
      `accept-charset`,
      `accept-encoding`,
      `access-control-request-headers`,
      `access-control-request-method`,
      `connection`,
      `content-length`,
      `cookie`,
      `cookie2`,
      `date`,
      `dnt`,
      `expect`,
      `host`,
      `keep-alive`,
      `origin`,
      `referer`,
      `te`,
      `trailer`,
      `transfer-encoding`,
      `upgrade`,
      `via`
    ]);
    function isForbidden(name) {
      name = name.toLowerCase();
      return FORBIDDEN.has(name) || name.startsWith("proxy-") || name.startsWith("sec-");
    }
    var FORBIDDEN_RESPONSE = /* @__PURE__ */ new Set(["set-cookie", "set-cookie2"]);
    function isForbiddenResponse(name) {
      return FORBIDDEN_RESPONSE.has(name.toLowerCase());
    }
    var CORS_UNSAFE_BYTE = /[\x00-\x08\x0A-\x1F"():<>?@[\\\]{}\x7F]/;
    function isCORSWhitelisted(name, value2) {
      name = name.toLowerCase();
      switch (name) {
        case "accept":
          if (value2.match(CORS_UNSAFE_BYTE)) {
            return false;
          }
          break;
        case "accept-language":
        case "content-language":
          if (value2.match(/[^\x30-\x39\x41-\x5A\x61-\x7A *,\-.;=]/)) {
            return false;
          }
          break;
        case "content-type": {
          if (value2.match(CORS_UNSAFE_BYTE)) {
            return false;
          }
          const mimeType = MIMEType.parse(value2);
          if (mimeType === null) {
            return false;
          }
          if (![
            "application/x-www-form-urlencoded",
            "multipart/form-data",
            "text/plain"
          ].includes(mimeType.essence)) {
            return false;
          }
          break;
        }
        default:
          return false;
      }
      if (Buffer.from(value2).length > 128) {
        return false;
      }
      return true;
    }
    module.exports = {
      isPrivilegedNoCORSRequest,
      isNoCORSSafelistedRequest,
      isForbidden,
      isForbiddenResponse,
      isCORSWhitelisted
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/fetch/header-list.js
var require_header_list = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/fetch/header-list.js"(exports, module) {
    "use strict";
    var HeaderList = class {
      constructor() {
        this.headers = /* @__PURE__ */ new Map();
      }
      append(name, value2) {
        const existing = this.headers.get(name.toLowerCase());
        if (existing) {
          existing.push(value2);
        } else {
          this.headers.set(name.toLowerCase(), [value2]);
        }
      }
      contains(name) {
        return this.headers.has(name.toLowerCase());
      }
      get(name) {
        name = name.toLowerCase();
        const values = this.headers.get(name);
        if (!values) {
          return null;
        }
        return values;
      }
      delete(name) {
        this.headers.delete(name.toLowerCase());
      }
      set(name, value2) {
        const lowerName = name.toLowerCase();
        this.headers.delete(lowerName);
        this.headers.set(lowerName, [value2]);
      }
      sortAndCombine() {
        const names = [...this.headers.keys()].sort();
        const headers = [];
        for (const name of names) {
          if (name === "set-cookie") {
            for (const value2 of this.get(name)) {
              headers.push([name, value2]);
            }
          } else {
            headers.push([name, this.get(name).join(", ")]);
          }
        }
        return headers;
      }
    };
    module.exports = HeaderList;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/fetch/Headers-impl.js
var require_Headers_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/fetch/Headers-impl.js"(exports) {
    "use strict";
    var {
      isForbidden,
      isForbiddenResponse,
      isPrivilegedNoCORSRequest,
      isNoCORSSafelistedRequest,
      isCORSWhitelisted
    } = require_header_types();
    var HeaderList = require_header_list();
    function assertName(name) {
      if (!name.match(/^[!#$%&'*+\-.^`|~\w]+$/)) {
        throw new TypeError("name is invalid");
      }
    }
    function assertValue(value2) {
      if (value2.match(/[\0\r\n]/)) {
        throw new TypeError("value is invalid");
      }
    }
    function normalizeValue3(potentialValue) {
      return potentialValue.replace(/^[\n\r\t ]+|[\n\r\t ]+$/g, "");
    }
    var HeadersImpl = class {
      constructor(globalObject, args) {
        this.guard = "none";
        this.headersList = new HeaderList();
        if (args[0]) {
          this._fill(args[0]);
        }
      }
      _fill(init3) {
        if (Array.isArray(init3)) {
          for (const header of init3) {
            if (header.length !== 2) {
              throw new TypeError("init is invalid");
            }
            this.append(header[0], header[1]);
          }
        } else {
          for (const key of Object.keys(init3)) {
            this.append(key, init3[key]);
          }
        }
      }
      has(name) {
        assertName(name);
        return this.headersList.contains(name);
      }
      getSetCookie() {
        return this.headersList.get("Set-Cookie") || [];
      }
      get(name) {
        assertName(name);
        const r4 = this.headersList.get(name);
        if (!r4) {
          return null;
        }
        return r4.join(", ");
      }
      _removePrivilegedNoCORSHeaders() {
        this.headersList.delete("range");
      }
      append(name, value2) {
        value2 = normalizeValue3(value2);
        assertName(name);
        assertValue(value2);
        switch (this.guard) {
          case "immutable":
            throw new TypeError("Headers is immutable");
          case "request":
            if (isForbidden(name)) {
              return;
            }
            break;
          case "request-no-cors": {
            if (!isCORSWhitelisted(name, value2)) {
              return;
            }
            break;
          }
          case "response":
            if (isForbiddenResponse(name)) {
              return;
            }
            break;
        }
        this.headersList.append(name, value2);
        this._removePrivilegedNoCORSHeaders();
      }
      set(name, value2) {
        value2 = normalizeValue3(value2);
        assertName(name);
        assertValue(value2);
        switch (this.guard) {
          case "immutable":
            throw new TypeError("Headers is immutable");
          case "request":
            if (isForbidden(name)) {
              return;
            }
            break;
          case "request-no-cors": {
            if (!isCORSWhitelisted(name, value2)) {
              return;
            }
            break;
          }
          case "response":
            if (isForbiddenResponse(name)) {
              return;
            }
            break;
        }
        this.headersList.set(name, value2);
        this._removePrivilegedNoCORSHeaders();
      }
      delete(name) {
        assertName(name);
        switch (this.guard) {
          case "immutable":
            throw new TypeError("Headers is immutable");
          case "request":
            if (isForbidden(name)) {
              return;
            }
            break;
          case "request-no-cors": {
            if (!isNoCORSSafelistedRequest(name) && !isPrivilegedNoCORSRequest(name)) {
              return;
            }
            break;
          }
          case "response":
            if (isForbiddenResponse(name)) {
              return;
            }
            break;
        }
        this.headersList.delete(name);
        this._removePrivilegedNoCORSHeaders();
      }
      *[Symbol.iterator]() {
        for (const header of this.headersList.sortAndCombine()) {
          yield header;
        }
      }
    };
    exports.implementation = HeadersImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Headers.js
var require_Headers = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/Headers.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var Function2 = require_Function2();
    var newObjectInRealm = utils2.newObjectInRealm;
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "Headers";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'Headers'.`);
    };
    exports.createDefaultIterator = (globalObject, target, kind) => {
      const ctorRegistry = globalObject[ctorRegistrySymbol];
      const iteratorPrototype = ctorRegistry["Headers Iterator"];
      const iterator2 = Object.create(iteratorPrototype);
      Object.defineProperty(iterator2, utils2.iterInternalSymbol, {
        value: { target, kind, index: 0 },
        configurable: true
      });
      return iterator2;
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["Headers"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class Headers {
        constructor() {
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              if (utils2.isObject(curArg)) {
                if (curArg[Symbol.iterator] !== void 0) {
                  if (!utils2.isObject(curArg)) {
                    throw new globalObject.TypeError(
                      "Failed to construct 'Headers': parameter 1 sequence is not an iterable object."
                    );
                  } else {
                    const V = [];
                    const tmp = curArg;
                    for (let nextItem of tmp) {
                      if (!utils2.isObject(nextItem)) {
                        throw new globalObject.TypeError(
                          "Failed to construct 'Headers': parameter 1 sequence's element is not an iterable object."
                        );
                      } else {
                        const V2 = [];
                        const tmp2 = nextItem;
                        for (let nextItem2 of tmp2) {
                          nextItem2 = conversions["ByteString"](nextItem2, {
                            context: "Failed to construct 'Headers': parameter 1 sequence's element's element",
                            globals: globalObject
                          });
                          V2.push(nextItem2);
                        }
                        nextItem = V2;
                      }
                      V.push(nextItem);
                    }
                    curArg = V;
                  }
                } else {
                  if (!utils2.isObject(curArg)) {
                    throw new globalObject.TypeError(
                      "Failed to construct 'Headers': parameter 1 record is not an object."
                    );
                  } else {
                    const result = /* @__PURE__ */ Object.create(null);
                    for (const key of Reflect.ownKeys(curArg)) {
                      const desc = Object.getOwnPropertyDescriptor(curArg, key);
                      if (desc && desc.enumerable) {
                        let typedKey = key;
                        typedKey = conversions["ByteString"](typedKey, {
                          context: "Failed to construct 'Headers': parameter 1 record's key",
                          globals: globalObject
                        });
                        let typedValue = curArg[key];
                        typedValue = conversions["ByteString"](typedValue, {
                          context: "Failed to construct 'Headers': parameter 1 record's value",
                          globals: globalObject
                        });
                        result[typedKey] = typedValue;
                      }
                    }
                    curArg = result;
                  }
                }
              } else {
                throw new globalObject.TypeError(
                  "Failed to construct 'Headers': parameter 1 is not of any supported type."
                );
              }
            }
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        append(name, value2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'append' called on an object that is not a valid instance of Headers.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'append' on 'Headers': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["ByteString"](curArg, {
              context: "Failed to execute 'append' on 'Headers': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["ByteString"](curArg, {
              context: "Failed to execute 'append' on 'Headers': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].append(...args);
        }
        delete(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'delete' called on an object that is not a valid instance of Headers.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'delete' on 'Headers': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["ByteString"](curArg, {
              context: "Failed to execute 'delete' on 'Headers': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].delete(...args);
        }
        get(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get' called on an object that is not a valid instance of Headers.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'get' on 'Headers': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["ByteString"](curArg, {
              context: "Failed to execute 'get' on 'Headers': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].get(...args);
        }
        getSetCookie() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'getSetCookie' called on an object that is not a valid instance of Headers.");
          }
          return utils2.tryWrapperForImpl(esValue[implSymbol].getSetCookie());
        }
        has(name) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'has' called on an object that is not a valid instance of Headers.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              `Failed to execute 'has' on 'Headers': 1 argument required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["ByteString"](curArg, {
              context: "Failed to execute 'has' on 'Headers': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].has(...args);
        }
        set(name, value2) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set' called on an object that is not a valid instance of Headers.");
          }
          if (arguments.length < 2) {
            throw new globalObject.TypeError(
              `Failed to execute 'set' on 'Headers': 2 arguments required, but only ${arguments.length} present.`
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            curArg = conversions["ByteString"](curArg, {
              context: "Failed to execute 'set' on 'Headers': parameter 1",
              globals: globalObject
            });
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            curArg = conversions["ByteString"](curArg, {
              context: "Failed to execute 'set' on 'Headers': parameter 2",
              globals: globalObject
            });
            args.push(curArg);
          }
          return esValue[implSymbol].set(...args);
        }
        keys() {
          if (!exports.is(this)) {
            throw new globalObject.TypeError("'keys' called on an object that is not a valid instance of Headers.");
          }
          return exports.createDefaultIterator(globalObject, this, "key");
        }
        values() {
          if (!exports.is(this)) {
            throw new globalObject.TypeError("'values' called on an object that is not a valid instance of Headers.");
          }
          return exports.createDefaultIterator(globalObject, this, "value");
        }
        entries() {
          if (!exports.is(this)) {
            throw new globalObject.TypeError("'entries' called on an object that is not a valid instance of Headers.");
          }
          return exports.createDefaultIterator(globalObject, this, "key+value");
        }
        forEach(callback) {
          if (!exports.is(this)) {
            throw new globalObject.TypeError("'forEach' called on an object that is not a valid instance of Headers.");
          }
          if (arguments.length < 1) {
            throw new globalObject.TypeError(
              "Failed to execute 'forEach' on 'iterable': 1 argument required, but only 0 present."
            );
          }
          callback = Function2.convert(globalObject, callback, {
            context: "Failed to execute 'forEach' on 'iterable': The callback provided as parameter 1"
          });
          const thisArg = arguments[1];
          let pairs2 = Array.from(this[implSymbol]);
          let i5 = 0;
          while (i5 < pairs2.length) {
            const [key, value2] = pairs2[i5].map(utils2.tryWrapperForImpl);
            callback.call(thisArg, value2, key, this);
            pairs2 = Array.from(this[implSymbol]);
            i5++;
          }
        }
      }
      Object.defineProperties(Headers.prototype, {
        append: { enumerable: true },
        delete: { enumerable: true },
        get: { enumerable: true },
        getSetCookie: { enumerable: true },
        has: { enumerable: true },
        set: { enumerable: true },
        keys: { enumerable: true },
        values: { enumerable: true },
        entries: { enumerable: true },
        forEach: { enumerable: true },
        [Symbol.toStringTag]: { value: "Headers", configurable: true },
        [Symbol.iterator]: { value: Headers.prototype.entries, configurable: true, writable: true }
      });
      ctorRegistry[interfaceName] = Headers;
      ctorRegistry["Headers Iterator"] = Object.create(ctorRegistry["%IteratorPrototype%"], {
        [Symbol.toStringTag]: {
          configurable: true,
          value: "Headers Iterator"
        }
      });
      utils2.define(ctorRegistry["Headers Iterator"], {
        next() {
          const internal = this && this[utils2.iterInternalSymbol];
          if (!internal) {
            throw new globalObject.TypeError("next() called on a value that is not a Headers iterator object");
          }
          const { target, kind, index: index2 } = internal;
          const values = Array.from(target[implSymbol]);
          const len = values.length;
          if (index2 >= len) {
            return newObjectInRealm(globalObject, { value: void 0, done: true });
          }
          const pair = values[index2];
          internal.index = index2 + 1;
          return newObjectInRealm(globalObject, utils2.iteratorResult(pair.map(utils2.tryWrapperForImpl), kind));
        }
      });
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: Headers
      });
    };
    var Impl = require_Headers_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/aborting/AbortController-impl.js
var require_AbortController_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/aborting/AbortController-impl.js"(exports, module) {
    "use strict";
    var AbortSignal2 = require_AbortSignal();
    var AbortControllerImpl = class {
      constructor(globalObject) {
        this.signal = AbortSignal2.createImpl(globalObject, []);
      }
      abort(reason) {
        this.signal._signalAbort(reason);
      }
    };
    module.exports = {
      implementation: AbortControllerImpl
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js
var require_AbortController = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "AbortController";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'AbortController'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["AbortController"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class AbortController2 {
        constructor() {
          return exports.setup(Object.create(new.target.prototype), globalObject, void 0);
        }
        abort() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'abort' called on an object that is not a valid instance of AbortController."
            );
          }
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["any"](curArg, {
                context: "Failed to execute 'abort' on 'AbortController': parameter 1",
                globals: globalObject
              });
            }
            args.push(curArg);
          }
          return esValue[implSymbol].abort(...args);
        }
        get signal() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get signal' called on an object that is not a valid instance of AbortController."
            );
          }
          return utils2.getSameObject(this, "signal", () => {
            return utils2.tryWrapperForImpl(esValue[implSymbol]["signal"]);
          });
        }
      }
      Object.defineProperties(AbortController2.prototype, {
        abort: { enumerable: true },
        signal: { enumerable: true },
        [Symbol.toStringTag]: { value: "AbortController", configurable: true }
      });
      ctorRegistry[interfaceName] = AbortController2;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: AbortController2
      });
    };
    var Impl = require_AbortController_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMRectInit.js
var require_DOMRectInit = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMRectInit.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    exports._convertInherit = (globalObject, obj, ret, { context = "The provided value" } = {}) => {
      {
        const key = "height";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unrestricted double"](value2, {
            context: context + " has member 'height' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "width";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unrestricted double"](value2, {
            context: context + " has member 'width' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "x";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unrestricted double"](value2, {
            context: context + " has member 'x' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
      {
        const key = "y";
        let value2 = obj === void 0 || obj === null ? void 0 : obj[key];
        if (value2 !== void 0) {
          value2 = conversions["unrestricted double"](value2, {
            context: context + " has member 'y' that",
            globals: globalObject
          });
          ret[key] = value2;
        } else {
          ret[key] = 0;
        }
      }
    };
    exports.convert = (globalObject, obj, { context = "The provided value" } = {}) => {
      if (obj !== void 0 && typeof obj !== "object" && typeof obj !== "function") {
        throw new globalObject.TypeError(`${context} is not an object.`);
      }
      const ret = /* @__PURE__ */ Object.create(null);
      exports._convertInherit(globalObject, obj, ret, { context });
      return ret;
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/geometry/DOMRectReadOnly-impl.js
var require_DOMRectReadOnly_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/geometry/DOMRectReadOnly-impl.js"(exports) {
    "use strict";
    var DOMRectReadOnly = require_DOMRectReadOnly();
    var DOMRectReadOnlyImpl = class {
      constructor(globalObject, [x = 0, y3 = 0, width = 0, height2 = 0]) {
        this._globalObject = globalObject;
        this._x = x;
        this._y = y3;
        this._width = width;
        this._height = height2;
      }
      static fromRect(globalObject, other) {
        return DOMRectReadOnly.createImpl(globalObject, [other.x, other.y, other.width, other.height]);
      }
      get x() {
        return this._x;
      }
      get y() {
        return this._y;
      }
      get width() {
        return this._width;
      }
      get height() {
        return this._height;
      }
      get top() {
        const { height: height2, y: y3 } = this;
        return Math.min(y3, y3 + height2);
      }
      get right() {
        const { width, x } = this;
        return Math.max(x, x + width);
      }
      get bottom() {
        const { height: height2, y: y3 } = this;
        return Math.max(y3, y3 + height2);
      }
      get left() {
        const { width, x } = this;
        return Math.min(x, x + width);
      }
      // Could be removed after https://github.com/jsdom/webidl2js/issues/185 gets fixed.
      toJSON() {
        return {
          x: this.x,
          y: this.y,
          width: this.width,
          height: this.height,
          top: this.top,
          right: this.right,
          bottom: this.bottom,
          left: this.left
        };
      }
    };
    exports.implementation = DOMRectReadOnlyImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMRectReadOnly.js
var require_DOMRectReadOnly = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMRectReadOnly.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var DOMRectInit = require_DOMRectInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var interfaceName = "DOMRectReadOnly";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'DOMRectReadOnly'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["DOMRectReadOnly"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class DOMRectReadOnly {
        constructor() {
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["unrestricted double"](curArg, {
                context: "Failed to construct 'DOMRectReadOnly': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["unrestricted double"](curArg, {
                context: "Failed to construct 'DOMRectReadOnly': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["unrestricted double"](curArg, {
                context: "Failed to construct 'DOMRectReadOnly': parameter 3",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[3];
            if (curArg !== void 0) {
              curArg = conversions["unrestricted double"](curArg, {
                context: "Failed to construct 'DOMRectReadOnly': parameter 4",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        toJSON() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'toJSON' called on an object that is not a valid instance of DOMRectReadOnly."
            );
          }
          return esValue[implSymbol].toJSON();
        }
        get x() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get x' called on an object that is not a valid instance of DOMRectReadOnly."
            );
          }
          return esValue[implSymbol]["x"];
        }
        get y() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get y' called on an object that is not a valid instance of DOMRectReadOnly."
            );
          }
          return esValue[implSymbol]["y"];
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get width' called on an object that is not a valid instance of DOMRectReadOnly."
            );
          }
          return esValue[implSymbol]["width"];
        }
        get height() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get height' called on an object that is not a valid instance of DOMRectReadOnly."
            );
          }
          return esValue[implSymbol]["height"];
        }
        get top() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get top' called on an object that is not a valid instance of DOMRectReadOnly."
            );
          }
          return esValue[implSymbol]["top"];
        }
        get right() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get right' called on an object that is not a valid instance of DOMRectReadOnly."
            );
          }
          return esValue[implSymbol]["right"];
        }
        get bottom() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get bottom' called on an object that is not a valid instance of DOMRectReadOnly."
            );
          }
          return esValue[implSymbol]["bottom"];
        }
        get left() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError(
              "'get left' called on an object that is not a valid instance of DOMRectReadOnly."
            );
          }
          return esValue[implSymbol]["left"];
        }
        static fromRect() {
          const args = [];
          {
            let curArg = arguments[0];
            curArg = DOMRectInit.convert(globalObject, curArg, {
              context: "Failed to execute 'fromRect' on 'DOMRectReadOnly': parameter 1"
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(Impl.implementation.fromRect(globalObject, ...args));
        }
      }
      Object.defineProperties(DOMRectReadOnly.prototype, {
        toJSON: { enumerable: true },
        x: { enumerable: true },
        y: { enumerable: true },
        width: { enumerable: true },
        height: { enumerable: true },
        top: { enumerable: true },
        right: { enumerable: true },
        bottom: { enumerable: true },
        left: { enumerable: true },
        [Symbol.toStringTag]: { value: "DOMRectReadOnly", configurable: true }
      });
      Object.defineProperties(DOMRectReadOnly, { fromRect: { enumerable: true } });
      ctorRegistry[interfaceName] = DOMRectReadOnly;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: DOMRectReadOnly
      });
    };
    var Impl = require_DOMRectReadOnly_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/geometry/DOMRect-impl.js
var require_DOMRect_impl = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/geometry/DOMRect-impl.js"(exports) {
    "use strict";
    var DOMRectReadOnlyImpl = require_DOMRectReadOnly_impl().implementation;
    var DOMRect = require_DOMRect();
    var DOMRectImpl = class extends DOMRectReadOnlyImpl {
      static fromRect(globalObject, other) {
        return DOMRect.createImpl(globalObject, [other.x, other.y, other.width, other.height]);
      }
      get x() {
        return super.x;
      }
      set x(newX) {
        this._x = newX;
      }
      get y() {
        return super.y;
      }
      set y(newY) {
        this._y = newY;
      }
      get width() {
        return super.width;
      }
      set width(newWidth) {
        this._width = newWidth;
      }
      get height() {
        return super.height;
      }
      set height(newHeight) {
        this._height = newHeight;
      }
    };
    exports.implementation = DOMRectImpl;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMRect.js
var require_DOMRect = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/generated/DOMRect.js"(exports) {
    "use strict";
    var conversions = require_lib20();
    var utils2 = require_utils16();
    var DOMRectInit = require_DOMRectInit();
    var implSymbol = utils2.implSymbol;
    var ctorRegistrySymbol = utils2.ctorRegistrySymbol;
    var DOMRectReadOnly = require_DOMRectReadOnly();
    var interfaceName = "DOMRect";
    exports.is = (value2) => {
      return utils2.isObject(value2) && utils2.hasOwn(value2, implSymbol) && value2[implSymbol] instanceof Impl.implementation;
    };
    exports.isImpl = (value2) => {
      return utils2.isObject(value2) && value2 instanceof Impl.implementation;
    };
    exports.convert = (globalObject, value2, { context = "The provided value" } = {}) => {
      if (exports.is(value2)) {
        return utils2.implForWrapper(value2);
      }
      throw new globalObject.TypeError(`${context} is not of type 'DOMRect'.`);
    };
    function makeWrapper(globalObject, newTarget) {
      let proto;
      if (newTarget !== void 0) {
        proto = newTarget.prototype;
      }
      if (!utils2.isObject(proto)) {
        proto = globalObject[ctorRegistrySymbol]["DOMRect"].prototype;
      }
      return Object.create(proto);
    }
    exports.create = (globalObject, constructorArgs, privateData) => {
      const wrapper = makeWrapper(globalObject);
      return exports.setup(wrapper, globalObject, constructorArgs, privateData);
    };
    exports.createImpl = (globalObject, constructorArgs, privateData) => {
      const wrapper = exports.create(globalObject, constructorArgs, privateData);
      return utils2.implForWrapper(wrapper);
    };
    exports._internalSetup = (wrapper, globalObject) => {
      DOMRectReadOnly._internalSetup(wrapper, globalObject);
    };
    exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
      privateData.wrapper = wrapper;
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: new Impl.implementation(globalObject, constructorArgs, privateData),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper;
    };
    exports.new = (globalObject, newTarget) => {
      const wrapper = makeWrapper(globalObject, newTarget);
      exports._internalSetup(wrapper, globalObject);
      Object.defineProperty(wrapper, implSymbol, {
        value: Object.create(Impl.implementation.prototype),
        configurable: true
      });
      wrapper[implSymbol][utils2.wrapperSymbol] = wrapper;
      if (Impl.init) {
        Impl.init(wrapper[implSymbol]);
      }
      return wrapper[implSymbol];
    };
    var exposed = /* @__PURE__ */ new Set(["Window", "Worker"]);
    exports.install = (globalObject, globalNames) => {
      if (!globalNames.some((globalName) => exposed.has(globalName))) {
        return;
      }
      const ctorRegistry = utils2.initCtorRegistry(globalObject);
      class DOMRect extends globalObject.DOMRectReadOnly {
        constructor() {
          const args = [];
          {
            let curArg = arguments[0];
            if (curArg !== void 0) {
              curArg = conversions["unrestricted double"](curArg, {
                context: "Failed to construct 'DOMRect': parameter 1",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[1];
            if (curArg !== void 0) {
              curArg = conversions["unrestricted double"](curArg, {
                context: "Failed to construct 'DOMRect': parameter 2",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[2];
            if (curArg !== void 0) {
              curArg = conversions["unrestricted double"](curArg, {
                context: "Failed to construct 'DOMRect': parameter 3",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          {
            let curArg = arguments[3];
            if (curArg !== void 0) {
              curArg = conversions["unrestricted double"](curArg, {
                context: "Failed to construct 'DOMRect': parameter 4",
                globals: globalObject
              });
            } else {
              curArg = 0;
            }
            args.push(curArg);
          }
          return exports.setup(Object.create(new.target.prototype), globalObject, args);
        }
        get x() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get x' called on an object that is not a valid instance of DOMRect.");
          }
          return esValue[implSymbol]["x"];
        }
        set x(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set x' called on an object that is not a valid instance of DOMRect.");
          }
          V = conversions["unrestricted double"](V, {
            context: "Failed to set the 'x' property on 'DOMRect': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["x"] = V;
        }
        get y() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get y' called on an object that is not a valid instance of DOMRect.");
          }
          return esValue[implSymbol]["y"];
        }
        set y(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set y' called on an object that is not a valid instance of DOMRect.");
          }
          V = conversions["unrestricted double"](V, {
            context: "Failed to set the 'y' property on 'DOMRect': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["y"] = V;
        }
        get width() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get width' called on an object that is not a valid instance of DOMRect.");
          }
          return esValue[implSymbol]["width"];
        }
        set width(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set width' called on an object that is not a valid instance of DOMRect.");
          }
          V = conversions["unrestricted double"](V, {
            context: "Failed to set the 'width' property on 'DOMRect': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["width"] = V;
        }
        get height() {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'get height' called on an object that is not a valid instance of DOMRect.");
          }
          return esValue[implSymbol]["height"];
        }
        set height(V) {
          const esValue = this !== null && this !== void 0 ? this : globalObject;
          if (!exports.is(esValue)) {
            throw new globalObject.TypeError("'set height' called on an object that is not a valid instance of DOMRect.");
          }
          V = conversions["unrestricted double"](V, {
            context: "Failed to set the 'height' property on 'DOMRect': The provided value",
            globals: globalObject
          });
          esValue[implSymbol]["height"] = V;
        }
        static fromRect() {
          const args = [];
          {
            let curArg = arguments[0];
            curArg = DOMRectInit.convert(globalObject, curArg, {
              context: "Failed to execute 'fromRect' on 'DOMRect': parameter 1"
            });
            args.push(curArg);
          }
          return utils2.tryWrapperForImpl(Impl.implementation.fromRect(globalObject, ...args));
        }
      }
      Object.defineProperties(DOMRect.prototype, {
        x: { enumerable: true },
        y: { enumerable: true },
        width: { enumerable: true },
        height: { enumerable: true },
        [Symbol.toStringTag]: { value: "DOMRect", configurable: true }
      });
      Object.defineProperties(DOMRect, { fromRect: { enumerable: true } });
      ctorRegistry[interfaceName] = DOMRect;
      Object.defineProperty(globalObject, interfaceName, {
        configurable: true,
        writable: true,
        value: DOMRect
      });
    };
    var Impl = require_DOMRect_impl();
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/interfaces.js
var require_interfaces = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/interfaces.js"(exports) {
    "use strict";
    var style = require_style();
    var xpath = require_xpath();
    var generatedInterfaces = {
      DOMException: require_DOMException(),
      URL: require_webidl2js_wrapper().URL,
      URLSearchParams: require_webidl2js_wrapper().URLSearchParams,
      EventTarget: require_EventTarget(),
      NamedNodeMap: require_NamedNodeMap(),
      Node: require_Node(),
      Attr: require_Attr(),
      Element: require_Element(),
      DocumentFragment: require_DocumentFragment(),
      DOMImplementation: require_DOMImplementation(),
      Document: require_Document(),
      XMLDocument: require_XMLDocument(),
      CharacterData: require_CharacterData(),
      Text: require_Text(),
      CDATASection: require_CDATASection(),
      ProcessingInstruction: require_ProcessingInstruction(),
      Comment: require_Comment(),
      DocumentType: require_DocumentType(),
      NodeList: require_NodeList(),
      RadioNodeList: require_RadioNodeList(),
      HTMLCollection: require_HTMLCollection(),
      HTMLOptionsCollection: require_HTMLOptionsCollection(),
      DOMStringMap: require_DOMStringMap(),
      DOMTokenList: require_DOMTokenList(),
      StyleSheetList: require_StyleSheetList(),
      HTMLElement: require_HTMLElement(),
      HTMLHeadElement: require_HTMLHeadElement(),
      HTMLTitleElement: require_HTMLTitleElement(),
      HTMLBaseElement: require_HTMLBaseElement(),
      HTMLLinkElement: require_HTMLLinkElement(),
      HTMLMetaElement: require_HTMLMetaElement(),
      HTMLStyleElement: require_HTMLStyleElement(),
      HTMLBodyElement: require_HTMLBodyElement(),
      HTMLHeadingElement: require_HTMLHeadingElement(),
      HTMLParagraphElement: require_HTMLParagraphElement(),
      HTMLHRElement: require_HTMLHRElement(),
      HTMLPreElement: require_HTMLPreElement(),
      HTMLUListElement: require_HTMLUListElement(),
      HTMLOListElement: require_HTMLOListElement(),
      HTMLLIElement: require_HTMLLIElement(),
      HTMLMenuElement: require_HTMLMenuElement(),
      HTMLDListElement: require_HTMLDListElement(),
      HTMLDivElement: require_HTMLDivElement(),
      HTMLAnchorElement: require_HTMLAnchorElement(),
      HTMLAreaElement: require_HTMLAreaElement(),
      HTMLBRElement: require_HTMLBRElement(),
      HTMLButtonElement: require_HTMLButtonElement(),
      HTMLCanvasElement: require_HTMLCanvasElement(),
      HTMLDataElement: require_HTMLDataElement(),
      HTMLDataListElement: require_HTMLDataListElement(),
      HTMLDetailsElement: require_HTMLDetailsElement(),
      HTMLDialogElement: require_HTMLDialogElement(),
      HTMLDirectoryElement: require_HTMLDirectoryElement(),
      HTMLFieldSetElement: require_HTMLFieldSetElement(),
      HTMLFontElement: require_HTMLFontElement(),
      HTMLFormElement: require_HTMLFormElement(),
      HTMLHtmlElement: require_HTMLHtmlElement(),
      HTMLImageElement: require_HTMLImageElement(),
      HTMLInputElement: require_HTMLInputElement(),
      HTMLLabelElement: require_HTMLLabelElement(),
      HTMLLegendElement: require_HTMLLegendElement(),
      HTMLMapElement: require_HTMLMapElement(),
      HTMLMarqueeElement: require_HTMLMarqueeElement(),
      HTMLMediaElement: require_HTMLMediaElement(),
      HTMLMeterElement: require_HTMLMeterElement(),
      HTMLModElement: require_HTMLModElement(),
      HTMLOptGroupElement: require_HTMLOptGroupElement(),
      HTMLOptionElement: require_HTMLOptionElement(),
      HTMLOutputElement: require_HTMLOutputElement(),
      HTMLPictureElement: require_HTMLPictureElement(),
      HTMLProgressElement: require_HTMLProgressElement(),
      HTMLQuoteElement: require_HTMLQuoteElement(),
      HTMLScriptElement: require_HTMLScriptElement(),
      HTMLSelectElement: require_HTMLSelectElement(),
      HTMLSlotElement: require_HTMLSlotElement(),
      HTMLSourceElement: require_HTMLSourceElement(),
      HTMLSpanElement: require_HTMLSpanElement(),
      HTMLTableCaptionElement: require_HTMLTableCaptionElement(),
      HTMLTableCellElement: require_HTMLTableCellElement(),
      HTMLTableColElement: require_HTMLTableColElement(),
      HTMLTableElement: require_HTMLTableElement(),
      HTMLTimeElement: require_HTMLTimeElement(),
      HTMLTableRowElement: require_HTMLTableRowElement(),
      HTMLTableSectionElement: require_HTMLTableSectionElement(),
      HTMLTemplateElement: require_HTMLTemplateElement(),
      HTMLTextAreaElement: require_HTMLTextAreaElement(),
      HTMLUnknownElement: require_HTMLUnknownElement(),
      HTMLFrameElement: require_HTMLFrameElement(),
      HTMLFrameSetElement: require_HTMLFrameSetElement(),
      HTMLIFrameElement: require_HTMLIFrameElement(),
      HTMLEmbedElement: require_HTMLEmbedElement(),
      HTMLObjectElement: require_HTMLObjectElement(),
      HTMLParamElement: require_HTMLParamElement(),
      HTMLVideoElement: require_HTMLVideoElement(),
      HTMLAudioElement: require_HTMLAudioElement(),
      HTMLTrackElement: require_HTMLTrackElement(),
      HTMLFormControlsCollection: require_HTMLFormControlsCollection(),
      SVGElement: require_SVGElement(),
      SVGGraphicsElement: require_SVGGraphicsElement(),
      SVGSVGElement: require_SVGSVGElement(),
      SVGGElement: require_SVGGElement(),
      SVGDefsElement: require_SVGDefsElement(),
      SVGDescElement: require_SVGDescElement(),
      SVGMetadataElement: require_SVGMetadataElement(),
      SVGTitleElement: require_SVGTitleElement(),
      SVGSymbolElement: require_SVGSymbolElement(),
      SVGSwitchElement: require_SVGSwitchElement(),
      SVGAnimatedPreserveAspectRatio: require_SVGAnimatedPreserveAspectRatio(),
      SVGAnimatedRect: require_SVGAnimatedRect(),
      SVGAnimatedString: require_SVGAnimatedString(),
      SVGNumber: require_SVGNumber(),
      SVGPreserveAspectRatio: require_SVGPreserveAspectRatio(),
      SVGRect: require_SVGRect(),
      SVGStringList: require_SVGStringList(),
      Event: require_Event(),
      CloseEvent: require_CloseEvent(),
      CustomEvent: require_CustomEvent(),
      MessageEvent: require_MessageEvent(),
      ErrorEvent: require_ErrorEvent(),
      HashChangeEvent: require_HashChangeEvent(),
      PopStateEvent: require_PopStateEvent(),
      StorageEvent: require_StorageEvent(),
      ProgressEvent: require_ProgressEvent(),
      PageTransitionEvent: require_PageTransitionEvent(),
      SubmitEvent: require_SubmitEvent(),
      UIEvent: require_UIEvent(),
      FocusEvent: require_FocusEvent(),
      InputEvent: require_InputEvent(),
      MouseEvent: require_MouseEvent(),
      KeyboardEvent: require_KeyboardEvent(),
      TouchEvent: require_TouchEvent(),
      CompositionEvent: require_CompositionEvent(),
      WheelEvent: require_WheelEvent(),
      BarProp: require_BarProp(),
      External: require_External(),
      Location: require_Location(),
      History: require_History(),
      Screen: require_Screen(),
      Performance: require_Performance(),
      Navigator: require_Navigator(),
      Crypto: require_Crypto(),
      PluginArray: require_PluginArray(),
      MimeTypeArray: require_MimeTypeArray(),
      Plugin: require_Plugin(),
      MimeType: require_MimeType(),
      FileReader: require_FileReader(),
      Blob: require_Blob(),
      File: require_File(),
      FileList: require_FileList(),
      ValidityState: require_ValidityState(),
      DOMParser: require_DOMParser(),
      XMLSerializer: require_XMLSerializer(),
      FormData: require_FormData(),
      XMLHttpRequestEventTarget: require_XMLHttpRequestEventTarget(),
      XMLHttpRequestUpload: require_XMLHttpRequestUpload(),
      XMLHttpRequest: require_XMLHttpRequest(),
      WebSocket: require_WebSocket(),
      NodeFilter: require_NodeFilter(),
      NodeIterator: require_NodeIterator(),
      TreeWalker: require_TreeWalker(),
      AbstractRange: require_AbstractRange(),
      Range: require_Range(),
      StaticRange: require_StaticRange(),
      Selection: require_Selection(),
      Storage: require_Storage(),
      CustomElementRegistry: require_CustomElementRegistry(),
      ElementInternals: require_ElementInternals(),
      ShadowRoot: require_ShadowRoot(),
      MutationObserver: require_MutationObserver(),
      MutationRecord: require_MutationRecord(),
      Headers: require_Headers(),
      AbortController: require_AbortController(),
      AbortSignal: require_AbortSignal(),
      DOMRectReadOnly: require_DOMRectReadOnly(),
      DOMRect: require_DOMRect()
    };
    function install(window2, name, interfaceConstructor) {
      Object.defineProperty(window2, name, {
        configurable: true,
        writable: true,
        value: interfaceConstructor
      });
    }
    exports.installInterfaces = (window2, globalNames) => {
      for (const generatedInterface of Object.values(generatedInterfaces)) {
        generatedInterface.install(window2, globalNames);
      }
      install(window2, "HTMLDocument", window2.Document);
      Object.setPrototypeOf(window2.DOMException.prototype, window2.Error.prototype);
      style.addToCore(window2);
      xpath(window2);
    };
    exports.getInterfaceWrapper = (name) => {
      return generatedInterfaces[name];
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/page-transition-event.js
var require_page_transition_event = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/helpers/page-transition-event.js"(exports) {
    "use strict";
    var PageTransitionEvent = require_PageTransitionEvent();
    var { fireAnEvent } = require_events4();
    exports.fireAPageTransitionEvent = (eventName, window2, persisted) => {
      const attributes2 = { persisted, cancelable: true, bubbles: true };
      fireAnEvent(eventName, window2, PageTransitionEvent, attributes2, true);
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/SessionHistory.js
var require_SessionHistory = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/living/window/SessionHistory.js"(exports, module) {
    "use strict";
    var whatwgURL = require_whatwg_url();
    var HashChangeEvent = require_HashChangeEvent();
    var PopStateEvent = require_PopStateEvent();
    var notImplemented = require_not_implemented();
    var idlUtils = require_utils16();
    var { fireAnEvent } = require_events4();
    var SessionHistory = class {
      constructor(initialEntry, window2) {
        this._window = window2;
        this._windowImpl = idlUtils.implForWrapper(window2);
        this._historyTraversalQueue = /* @__PURE__ */ new Set();
        this._entries = [initialEntry];
        this._currentIndex = 0;
      }
      _queueHistoryTraversalTask(fn) {
        const timeoutId = this._window.setTimeout(() => {
          this._historyTraversalQueue.delete(timeoutId);
          fn();
        }, 0);
        this._historyTraversalQueue.add(timeoutId);
      }
      clearHistoryTraversalTasks() {
        for (const timeoutId of this._historyTraversalQueue) {
          this._window.clearTimeout(timeoutId);
        }
        this._historyTraversalQueue.clear();
      }
      get length() {
        return this._entries.length;
      }
      get currentEntry() {
        return this._entries[this._currentIndex];
      }
      // https://html.spec.whatwg.org/#dom-history-pushstate
      removeAllEntriesAfterCurrentEntry() {
        this._entries.splice(this._currentIndex + 1, Infinity);
      }
      // https://html.spec.whatwg.org/#traverse-the-history-by-a-delta
      traverseByDelta(delta) {
        this._queueHistoryTraversalTask(() => {
          const newIndex = this._currentIndex + delta;
          if (newIndex < 0 || newIndex >= this.length) {
            return;
          }
          const specifiedEntry = this._entries[newIndex];
          this._queueHistoryTraversalTask(() => {
            if (specifiedEntry.document !== this.currentEntry.document) {
              notImplemented("Traversing history in a way that would change the window", this._window);
            }
            this.traverseHistory(specifiedEntry);
          });
        });
      }
      // https://html.spec.whatwg.org/#traverse-the-history
      traverseHistory(specifiedEntry, flags = {}) {
        if (!specifiedEntry.document) {
          notImplemented("Traversing the history to an entry that no longer holds a Document object", this._window);
        }
        const nonBlockingEvents = Boolean(flags.nonBlockingEvents);
        const document2 = idlUtils.implForWrapper(this._window._document);
        const { currentEntry } = this;
        if (currentEntry.title === void 0) {
          currentEntry.title = document2.title;
        }
        if (specifiedEntry.document !== currentEntry.document) {
          notImplemented("Traversing the history to an entry with a different Document", this._window);
        }
        document2._URL = specifiedEntry.url;
        const hashChanged = specifiedEntry.url.fragment !== currentEntry.url.fragment && specifiedEntry.document === currentEntry.document;
        let oldURL, newURL;
        if (hashChanged) {
          oldURL = currentEntry.url;
          newURL = specifiedEntry.url;
        }
        if (flags.replacement) {
          this._entries.splice(this._entries.indexOf(specifiedEntry) - 1, 1);
        }
        this.updateCurrentEntry(specifiedEntry);
        const state = specifiedEntry.stateObject;
        document2._history._state = state;
        const stateChanged = specifiedEntry.document._latestEntry !== specifiedEntry;
        specifiedEntry.document._latestEntry = specifiedEntry;
        const fireEvents = () => this._fireEvents(stateChanged, hashChanged, state, oldURL, newURL);
        if (nonBlockingEvents) {
          this._window.setTimeout(fireEvents, 0);
        } else {
          fireEvents();
        }
      }
      _fireEvents(stateChanged, hashChanged, state, oldURL, newURL) {
        if (stateChanged) {
          fireAnEvent("popstate", this._windowImpl, PopStateEvent, { state });
        }
        if (hashChanged) {
          fireAnEvent("hashchange", this._windowImpl, HashChangeEvent, {
            oldURL: whatwgURL.serializeURL(oldURL),
            newURL: whatwgURL.serializeURL(newURL)
          });
        }
      }
      addEntryAfterCurrentEntry(entry) {
        this._entries.splice(this._currentIndex + 1, 0, entry);
      }
      updateCurrentEntry(entry) {
        this._currentIndex = this._entries.indexOf(entry);
      }
    };
    module.exports = SessionHistory;
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/js-globals.json
var require_js_globals = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/js-globals.json"(exports, module) {
    module.exports = {
      Object: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Function: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Array: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Number: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      parseFloat: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      parseInt: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Infinity: {
        writable: false,
        enumerable: false,
        configurable: false
      },
      NaN: {
        writable: false,
        enumerable: false,
        configurable: false
      },
      undefined: {
        writable: false,
        enumerable: false,
        configurable: false
      },
      Boolean: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      String: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Symbol: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Date: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Promise: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      RegExp: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Error: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      AggregateError: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      EvalError: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      RangeError: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      ReferenceError: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      SyntaxError: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      TypeError: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      URIError: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      globalThis: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      JSON: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Math: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Intl: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      ArrayBuffer: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Atomics: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Uint8Array: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Int8Array: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Uint16Array: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Int16Array: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Uint32Array: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Int32Array: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Float32Array: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Float64Array: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Uint8ClampedArray: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      BigUint64Array: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      BigInt64Array: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      DataView: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Map: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      BigInt: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Set: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      WeakMap: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      WeakSet: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Proxy: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Reflect: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      FinalizationRegistry: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      WeakRef: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      decodeURI: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      decodeURIComponent: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      encodeURI: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      encodeURIComponent: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      escape: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      unescape: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      eval: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      isFinite: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      isNaN: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      Iterator: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      SharedArrayBuffer: {
        writable: true,
        enumerable: false,
        configurable: true
      },
      WebAssembly: {
        writable: true,
        enumerable: false,
        configurable: true
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/Window.js
var require_Window = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/Window.js"(exports) {
    "use strict";
    var vm = __require("vm");
    var webIDLConversions = require_lib20();
    var { CSSStyleDeclaration } = require_CSSStyleDeclaration2();
    var whatwgURL = require_whatwg_url();
    var notImplemented = require_not_implemented();
    var { installInterfaces } = require_interfaces();
    var { define: define2, mixin: mixin2 } = require_utils17();
    var Element2 = require_Element();
    var EventTarget2 = require_EventTarget();
    var EventHandlerNonNull = require_EventHandlerNonNull();
    var IDLFunction = require_Function2();
    var OnBeforeUnloadEventHandlerNonNull = require_OnBeforeUnloadEventHandlerNonNull();
    var OnErrorEventHandlerNonNull = require_OnErrorEventHandlerNonNull();
    var { fireAPageTransitionEvent } = require_page_transition_event();
    var namedPropertiesWindow = require_named_properties_window();
    var DOMException2 = require_DOMException();
    var idlUtils = require_utils16();
    var WebSocketImpl = require_WebSocket_impl().implementation;
    var BarProp = require_BarProp();
    var documents = require_documents();
    var External = require_External();
    var Navigator = require_Navigator();
    var Performance = require_Performance();
    var Screen = require_Screen();
    var Crypto = require_Crypto();
    var Storage2 = require_Storage();
    var Selection = require_Selection();
    var reportException = require_runtime_script_errors();
    var { getCurrentEventHandlerValue } = require_create_event_accessor();
    var { fireAnEvent } = require_events4();
    var SessionHistory = require_SessionHistory();
    var {
      getDeclarationForElement,
      getResolvedValue,
      propertiesWithResolvedValueImplemented,
      SHADOW_DOM_PSEUDO_REGEXP
    } = require_style_rules();
    var CustomElementRegistry = require_CustomElementRegistry();
    var MessageEvent = require_MessageEvent();
    var jsGlobals = require_js_globals();
    var GlobalEventHandlersImpl = require_GlobalEventHandlers_impl().implementation;
    var WindowEventHandlersImpl = require_WindowEventHandlers_impl().implementation;
    var events2 = /* @__PURE__ */ new Set([
      // GlobalEventHandlers
      "abort",
      "autocomplete",
      "autocompleteerror",
      "blur",
      "cancel",
      "canplay",
      "canplaythrough",
      "change",
      "click",
      "close",
      "contextmenu",
      "cuechange",
      "dblclick",
      "drag",
      "dragend",
      "dragenter",
      "dragleave",
      "dragover",
      "dragstart",
      "drop",
      "durationchange",
      "emptied",
      "ended",
      "focus",
      "input",
      "invalid",
      "keydown",
      "keypress",
      "keyup",
      "load",
      "loadeddata",
      "loadedmetadata",
      "loadstart",
      "mousedown",
      "mouseenter",
      "mouseleave",
      "mousemove",
      "mouseout",
      "mouseover",
      "mouseup",
      "wheel",
      "pause",
      "play",
      "playing",
      "progress",
      "ratechange",
      "reset",
      "resize",
      "scroll",
      "securitypolicyviolation",
      "seeked",
      "seeking",
      "select",
      "sort",
      "stalled",
      "submit",
      "suspend",
      "timeupdate",
      "toggle",
      "volumechange",
      "waiting",
      // WindowEventHandlers
      "afterprint",
      "beforeprint",
      "hashchange",
      "languagechange",
      "message",
      "messageerror",
      "offline",
      "online",
      "pagehide",
      "pageshow",
      "popstate",
      "rejectionhandled",
      "storage",
      "unhandledrejection",
      "unload"
      // "error" and "beforeunload" are added separately
    ]);
    var jsGlobalEntriesToInstall = Object.entries(jsGlobals).filter(([name]) => name in global);
    exports.createWindow = (options) => {
      const makeVMContext = options.runScripts === "outside-only" || options.runScripts === "dangerously";
      const window2 = {};
      if (makeVMContext) {
        vm.createContext(window2);
        window2._globalObject = window2;
        window2._globalProxy = vm.runInContext("this", window2);
        for (const [globalName, globalPropDesc] of jsGlobalEntriesToInstall) {
          const propDesc = { ...globalPropDesc, value: vm.runInContext(globalName, window2) };
          Object.defineProperty(window2, globalName, propDesc);
        }
      } else {
        window2._globalObject = window2._globalProxy = window2;
        for (const [globalName, globalPropDesc] of jsGlobalEntriesToInstall) {
          const propDesc = { ...globalPropDesc, value: global[globalName] };
          Object.defineProperty(window2, globalName, propDesc);
        }
      }
      installInterfaces(window2, ["Window"]);
      const WindowConstructor = function Window() {
        throw new TypeError("Illegal constructor");
      };
      Object.setPrototypeOf(WindowConstructor, window2.EventTarget);
      Object.defineProperty(window2, "Window", {
        configurable: true,
        writable: true,
        value: WindowConstructor
      });
      const windowPropertiesObject = Object.create(window2.EventTarget.prototype);
      Object.defineProperties(windowPropertiesObject, {
        [Symbol.toStringTag]: {
          value: "WindowProperties",
          configurable: true
        }
      });
      namedPropertiesWindow.initializeWindow(window2, window2._globalProxy);
      const windowPrototype = Object.create(windowPropertiesObject);
      Object.defineProperties(windowPrototype, {
        constructor: {
          value: WindowConstructor,
          writable: true,
          configurable: true
        },
        [Symbol.toStringTag]: {
          value: "Window",
          configurable: true
        }
      });
      WindowConstructor.prototype = windowPrototype;
      Object.setPrototypeOf(window2, windowPrototype);
      if (makeVMContext) {
        Object.setPrototypeOf(window2._globalProxy, windowPrototype);
        Object.setPrototypeOf(window2.EventTarget.prototype, window2.Object.prototype);
      }
      EventTarget2.setup(window2, window2);
      installEventHandlers(window2);
      installOwnProperties(window2, options);
      Object.defineProperty(idlUtils.implForWrapper(window2), idlUtils.wrapperSymbol, { get: () => window2._globalProxy });
      process.nextTick(() => {
        if (!window2.document) {
          return;
        }
        if (window2.document.readyState === "complete") {
          fireAnEvent("load", window2, void 0, {}, true);
        } else {
          window2.document.addEventListener("load", () => {
            fireAnEvent("load", window2, void 0, {}, true);
            if (!window2._document) {
              return;
            }
            const documentImpl = idlUtils.implForWrapper(window2._document);
            if (!documentImpl._pageShowingFlag) {
              documentImpl._pageShowingFlag = true;
              fireAPageTransitionEvent("pageshow", window2, false);
            }
          });
        }
      });
      return window2;
    };
    function installEventHandlers(window2) {
      mixin2(window2, WindowEventHandlersImpl.prototype);
      mixin2(window2, GlobalEventHandlersImpl.prototype);
      window2._initGlobalEvents();
      Object.defineProperty(window2, "onbeforeunload", {
        configurable: true,
        enumerable: true,
        get() {
          return idlUtils.tryWrapperForImpl(getCurrentEventHandlerValue(window2, "beforeunload"));
        },
        set(V) {
          if (!idlUtils.isObject(V)) {
            V = null;
          } else {
            V = OnBeforeUnloadEventHandlerNonNull.convert(window2, V, {
              context: "Failed to set the 'onbeforeunload' property on 'Window': The provided value"
            });
          }
          window2._setEventHandlerFor("beforeunload", V);
        }
      });
      Object.defineProperty(window2, "onerror", {
        configurable: true,
        enumerable: true,
        get() {
          return idlUtils.tryWrapperForImpl(getCurrentEventHandlerValue(window2, "error"));
        },
        set(V) {
          if (!idlUtils.isObject(V)) {
            V = null;
          } else {
            V = OnErrorEventHandlerNonNull.convert(window2, V, {
              context: "Failed to set the 'onerror' property on 'Window': The provided value"
            });
          }
          window2._setEventHandlerFor("error", V);
        }
      });
      for (const event of events2) {
        Object.defineProperty(window2, `on${event}`, {
          configurable: true,
          enumerable: true,
          get() {
            return idlUtils.tryWrapperForImpl(getCurrentEventHandlerValue(window2, event));
          },
          set(V) {
            if (!idlUtils.isObject(V)) {
              V = null;
            } else {
              V = EventHandlerNonNull.convert(window2, V, {
                context: `Failed to set the 'on${event}' property on 'Window': The provided value`
              });
            }
            window2._setEventHandlerFor(event, V);
          }
        });
      }
    }
    function installOwnProperties(window2, options) {
      const windowInitialized = performance.now();
      window2._resourceLoader = options.resourceLoader;
      window2._document = documents.createWrapper(window2, {
        parsingMode: options.parsingMode,
        contentType: options.contentType,
        encoding: options.encoding,
        cookieJar: options.cookieJar,
        url: options.url,
        lastModified: options.lastModified,
        referrer: options.referrer,
        parseOptions: options.parseOptions,
        defaultView: window2._globalProxy,
        global: window2,
        parentOrigin: options.parentOrigin
      }, { alwaysUseDocumentClass: true });
      const documentOrigin = idlUtils.implForWrapper(window2._document)._origin;
      window2._origin = documentOrigin;
      window2._sessionHistory = new SessionHistory({
        document: idlUtils.implForWrapper(window2._document),
        url: idlUtils.implForWrapper(window2._document)._URL,
        stateObject: null
      }, window2);
      window2._virtualConsole = options.virtualConsole;
      window2._runScripts = options.runScripts;
      window2._parent = window2._top = window2._globalProxy;
      window2._frameElement = null;
      window2._length = 0;
      window2._currentEvent = void 0;
      window2._pretendToBeVisual = options.pretendToBeVisual;
      window2._storageQuota = options.storageQuota;
      if (options.commonForOrigin && options.commonForOrigin[documentOrigin]) {
        window2._commonForOrigin = options.commonForOrigin;
      } else {
        window2._commonForOrigin = {
          [documentOrigin]: {
            localStorageArea: /* @__PURE__ */ new Map(),
            sessionStorageArea: /* @__PURE__ */ new Map(),
            windowsInSameOrigin: [window2]
          }
        };
      }
      window2._currentOriginData = window2._commonForOrigin[documentOrigin];
      window2._localStorage = Storage2.create(window2, [], {
        associatedWindow: window2,
        storageArea: window2._currentOriginData.localStorageArea,
        type: "localStorage",
        url: window2._document.documentURI,
        storageQuota: window2._storageQuota
      });
      window2._sessionStorage = Storage2.create(window2, [], {
        associatedWindow: window2,
        storageArea: window2._currentOriginData.sessionStorageArea,
        type: "sessionStorage",
        url: window2._document.documentURI,
        storageQuota: window2._storageQuota
      });
      window2._selection = Selection.createImpl(window2);
      window2.getSelection = function() {
        return window2._selection;
      };
      const locationbar = BarProp.create(window2);
      const menubar = BarProp.create(window2);
      const personalbar = BarProp.create(window2);
      const scrollbars = BarProp.create(window2);
      const statusbar = BarProp.create(window2);
      const toolbar = BarProp.create(window2);
      const external = External.create(window2);
      const navigator2 = Navigator.create(window2, [], { userAgent: window2._resourceLoader._userAgent });
      const performanceImpl = Performance.create(window2, [], {
        timeOrigin: performance.timeOrigin + windowInitialized,
        nowAtTimeOrigin: windowInitialized
      });
      const screen = Screen.create(window2);
      const crypto5 = Crypto.create(window2);
      window2._customElementRegistry = CustomElementRegistry.create(window2);
      define2(window2, {
        get length() {
          return window2._length;
        },
        get window() {
          return window2._globalProxy;
        },
        get frameElement() {
          return idlUtils.wrapperForImpl(window2._frameElement);
        },
        get frames() {
          return window2._globalProxy;
        },
        get self() {
          return window2._globalProxy;
        },
        get parent() {
          return window2._parent;
        },
        get top() {
          return window2._top;
        },
        get document() {
          return window2._document;
        },
        get external() {
          return external;
        },
        get location() {
          return idlUtils.wrapperForImpl(idlUtils.implForWrapper(window2._document)._location);
        },
        // [PutForwards=href]:
        set location(value2) {
          Reflect.set(window2.location, "href", value2);
        },
        get history() {
          return idlUtils.wrapperForImpl(idlUtils.implForWrapper(window2._document)._history);
        },
        get navigator() {
          return navigator2;
        },
        get locationbar() {
          return locationbar;
        },
        get menubar() {
          return menubar;
        },
        get personalbar() {
          return personalbar;
        },
        get scrollbars() {
          return scrollbars;
        },
        get statusbar() {
          return statusbar;
        },
        get toolbar() {
          return toolbar;
        },
        get performance() {
          return performanceImpl;
        },
        get screen() {
          return screen;
        },
        get crypto() {
          return crypto5;
        },
        get origin() {
          return window2._origin;
        },
        get localStorage() {
          if (idlUtils.implForWrapper(window2._document)._origin === "null") {
            throw DOMException2.create(window2, [
              "localStorage is not available for opaque origins",
              "SecurityError"
            ]);
          }
          return window2._localStorage;
        },
        get sessionStorage() {
          if (idlUtils.implForWrapper(window2._document)._origin === "null") {
            throw DOMException2.create(window2, [
              "sessionStorage is not available for opaque origins",
              "SecurityError"
            ]);
          }
          return window2._sessionStorage;
        },
        get customElements() {
          return window2._customElementRegistry;
        },
        get event() {
          return window2._currentEvent ? idlUtils.wrapperForImpl(window2._currentEvent) : void 0;
        }
      });
      Object.defineProperties(window2, {
        // [Replaceable]:
        self: makeReplaceablePropertyDescriptor("self", window2),
        locationbar: makeReplaceablePropertyDescriptor("locationbar", window2),
        menubar: makeReplaceablePropertyDescriptor("menubar", window2),
        personalbar: makeReplaceablePropertyDescriptor("personalbar", window2),
        scrollbars: makeReplaceablePropertyDescriptor("scrollbars", window2),
        statusbar: makeReplaceablePropertyDescriptor("statusbar", window2),
        toolbar: makeReplaceablePropertyDescriptor("toolbar", window2),
        frames: makeReplaceablePropertyDescriptor("frames", window2),
        parent: makeReplaceablePropertyDescriptor("parent", window2),
        external: makeReplaceablePropertyDescriptor("external", window2),
        length: makeReplaceablePropertyDescriptor("length", window2),
        screen: makeReplaceablePropertyDescriptor("screen", window2),
        origin: makeReplaceablePropertyDescriptor("origin", window2),
        event: makeReplaceablePropertyDescriptor("event", window2),
        // [LegacyUnforgeable]:
        window: { configurable: false },
        document: { configurable: false },
        location: { configurable: false },
        top: { configurable: false }
      });
      const listOfActiveTimers = /* @__PURE__ */ new Map();
      let latestTimerId = 0;
      window2.setTimeout = function(handler, timeout = 0, ...args) {
        if (typeof handler !== "function") {
          handler = webIDLConversions.DOMString(handler);
        }
        timeout = webIDLConversions.long(timeout);
        return timerInitializationSteps(handler, timeout, args, { methodContext: window2, repeat: false });
      };
      window2.setInterval = function(handler, timeout = 0, ...args) {
        if (typeof handler !== "function") {
          handler = webIDLConversions.DOMString(handler);
        }
        timeout = webIDLConversions.long(timeout);
        return timerInitializationSteps(handler, timeout, args, { methodContext: window2, repeat: true });
      };
      window2.clearTimeout = function(handle = 0) {
        handle = webIDLConversions.long(handle);
        const nodejsTimer = listOfActiveTimers.get(handle);
        if (nodejsTimer) {
          clearTimeout(nodejsTimer);
          listOfActiveTimers.delete(handle);
        }
      };
      window2.clearInterval = function(handle = 0) {
        handle = webIDLConversions.long(handle);
        const nodejsTimer = listOfActiveTimers.get(handle);
        if (nodejsTimer) {
          clearTimeout(nodejsTimer);
          listOfActiveTimers.delete(handle);
        }
      };
      function timerInitializationSteps(handler, timeout, args, { methodContext, repeat: repeat2, previousHandle }) {
        if (!methodContext._document) {
          return 0;
        }
        const methodContextProxy = methodContext._globalProxy;
        const handle = previousHandle !== void 0 ? previousHandle : ++latestTimerId;
        function task() {
          if (!listOfActiveTimers.has(handle)) {
            return;
          }
          try {
            if (typeof handler === "function") {
              handler.apply(methodContextProxy, args);
            } else if (window2._runScripts === "dangerously") {
              vm.runInContext(handler, window2, { filename: window2.location.href, displayErrors: false });
            }
          } catch (e4) {
            reportException(window2, e4, window2.location.href);
          }
          if (listOfActiveTimers.has(handle)) {
            if (repeat2) {
              timerInitializationSteps(handler, timeout, args, { methodContext, repeat: true, previousHandle: handle });
            } else {
              listOfActiveTimers.delete(handle);
            }
          }
        }
        if (timeout < 0) {
          timeout = 0;
        }
        const nodejsTimer = setTimeout(task, timeout);
        listOfActiveTimers.set(handle, nodejsTimer);
        return handle;
      }
      window2.queueMicrotask = function(callback) {
        callback = IDLFunction.convert(window2, callback);
        queueMicrotask(() => {
          try {
            callback();
          } catch (e4) {
            reportException(window2, e4, window2.location.href);
          }
        });
      };
      let animationFrameCallbackId = 0;
      const mapOfAnimationFrameCallbacks = /* @__PURE__ */ new Map();
      let animationFrameNodejsInterval = null;
      let numberOfOngoingAnimationFrameCallbacks = 0;
      if (window2._pretendToBeVisual) {
        let runAnimationFrameCallbacks = function(now) {
          const callbackHandles = [...mapOfAnimationFrameCallbacks.keys()];
          for (const handle of callbackHandles) {
            if (mapOfAnimationFrameCallbacks.has(handle)) {
              const callback = mapOfAnimationFrameCallbacks.get(handle);
              removeAnimationFrameCallback(handle);
              try {
                callback(now);
              } catch (e4) {
                reportException(window2, e4, window2.location.href);
              }
            }
          }
        }, removeAnimationFrameCallback = function(handle) {
          if (mapOfAnimationFrameCallbacks.has(handle)) {
            --numberOfOngoingAnimationFrameCallbacks;
            if (numberOfOngoingAnimationFrameCallbacks === 0) {
              clearInterval(animationFrameNodejsInterval);
            }
          }
          mapOfAnimationFrameCallbacks.delete(handle);
        };
        window2.requestAnimationFrame = function(callback) {
          callback = IDLFunction.convert(window2, callback);
          const handle = ++animationFrameCallbackId;
          mapOfAnimationFrameCallbacks.set(handle, callback);
          ++numberOfOngoingAnimationFrameCallbacks;
          if (numberOfOngoingAnimationFrameCallbacks === 1) {
            animationFrameNodejsInterval = setInterval(() => {
              runAnimationFrameCallbacks(performance.now() - windowInitialized);
            }, 1e3 / 60);
          }
          return handle;
        };
        window2.cancelAnimationFrame = function(handle) {
          handle = webIDLConversions["unsigned long"](handle);
          removeAnimationFrameCallback(handle);
        };
      }
      function stopAllTimers() {
        for (const nodejsTimer of listOfActiveTimers.values()) {
          clearTimeout(nodejsTimer);
        }
        listOfActiveTimers.clear();
        clearInterval(animationFrameNodejsInterval);
      }
      function Option(text, value2, defaultSelected, selected) {
        if (text === void 0) {
          text = "";
        }
        text = webIDLConversions.DOMString(text);
        if (value2 !== void 0) {
          value2 = webIDLConversions.DOMString(value2);
        }
        defaultSelected = webIDLConversions.boolean(defaultSelected);
        selected = webIDLConversions.boolean(selected);
        const option = window2._document.createElement("option");
        const impl = idlUtils.implForWrapper(option);
        if (text !== "") {
          impl.text = text;
        }
        if (value2 !== void 0) {
          impl.setAttributeNS(null, "value", value2);
        }
        if (defaultSelected) {
          impl.setAttributeNS(null, "selected", "");
        }
        impl._selectedness = selected;
        return option;
      }
      Object.defineProperty(Option, "prototype", {
        value: window2.HTMLOptionElement.prototype,
        configurable: false,
        enumerable: false,
        writable: false
      });
      Object.defineProperty(window2, "Option", {
        value: Option,
        configurable: true,
        enumerable: false,
        writable: true
      });
      function Image2(...args) {
        const img = window2._document.createElement("img");
        const impl = idlUtils.implForWrapper(img);
        if (args.length > 0) {
          impl.setAttributeNS(null, "width", String(args[0]));
        }
        if (args.length > 1) {
          impl.setAttributeNS(null, "height", String(args[1]));
        }
        return img;
      }
      Object.defineProperty(Image2, "prototype", {
        value: window2.HTMLImageElement.prototype,
        configurable: false,
        enumerable: false,
        writable: false
      });
      Object.defineProperty(window2, "Image", {
        value: Image2,
        configurable: true,
        enumerable: false,
        writable: true
      });
      function Audio(src) {
        const audio = window2._document.createElement("audio");
        const impl = idlUtils.implForWrapper(audio);
        impl.setAttributeNS(null, "preload", "auto");
        if (src !== void 0) {
          impl.setAttributeNS(null, "src", String(src));
        }
        return audio;
      }
      Object.defineProperty(Audio, "prototype", {
        value: window2.HTMLAudioElement.prototype,
        configurable: false,
        enumerable: false,
        writable: false
      });
      Object.defineProperty(window2, "Audio", {
        value: Audio,
        configurable: true,
        enumerable: false,
        writable: true
      });
      window2.postMessage = function(message, targetOrigin) {
        if (arguments.length < 2) {
          throw new TypeError("'postMessage' requires 2 arguments: 'message' and 'targetOrigin'");
        }
        targetOrigin = webIDLConversions.DOMString(targetOrigin);
        if (targetOrigin === "/") {
          return;
        } else if (targetOrigin !== "*") {
          const parsedURL = whatwgURL.parseURL(targetOrigin);
          if (parsedURL === null) {
            throw DOMException2.create(window2, [
              "Failed to execute 'postMessage' on 'Window': Invalid target origin '" + targetOrigin + "' in a call to 'postMessage'.",
              "SyntaxError"
            ]);
          }
          targetOrigin = whatwgURL.serializeURLOrigin(parsedURL);
          if (targetOrigin !== idlUtils.implForWrapper(window2._document)._origin) {
            return;
          }
        }
        setTimeout(() => {
          fireAnEvent("message", window2, MessageEvent, { data: message });
        }, 0);
      };
      window2.atob = function(str) {
        try {
          return atob(str);
        } catch {
          throw DOMException2.create(window2, [
            "The string to be decoded contains invalid characters.",
            "InvalidCharacterError"
          ]);
        }
      };
      window2.btoa = function(str) {
        try {
          return btoa(str);
        } catch {
          throw DOMException2.create(window2, [
            "The string to be encoded contains invalid characters.",
            "InvalidCharacterError"
          ]);
        }
      };
      window2.stop = function() {
        const manager = idlUtils.implForWrapper(window2._document)._requestManager;
        if (manager) {
          manager.close();
        }
      };
      window2.close = function() {
        for (let i5 = 0; i5 < window2.length; ++i5) {
          window2[i5].close();
        }
        idlUtils.implForWrapper(window2)._eventListeners = /* @__PURE__ */ Object.create(null);
        if (window2._document) {
          if (window2._document.body) {
            window2._document.body.innerHTML = "";
          }
          if (window2._document.close) {
            idlUtils.implForWrapper(window2._document)._eventListeners = /* @__PURE__ */ Object.create(null);
            window2._document.close();
          }
          const doc = idlUtils.implForWrapper(window2._document);
          if (doc._requestManager) {
            doc._requestManager.close();
          }
          delete window2._document;
        }
        stopAllTimers();
        WebSocketImpl.cleanUpWindow(window2);
      };
      window2.getComputedStyle = function(elt, pseudoElt = void 0) {
        elt = Element2.convert(window2, elt);
        if (pseudoElt !== void 0 && pseudoElt !== null) {
          pseudoElt = webIDLConversions.DOMString(pseudoElt);
        }
        if (pseudoElt !== void 0 && pseudoElt !== null && pseudoElt !== "") {
          if (SHADOW_DOM_PSEUDO_REGEXP.test(pseudoElt)) {
            throw new TypeError("Tried to get the computed style of a Shadow DOM pseudo-element.");
          }
          notImplemented("window.getComputedStyle(elt, pseudoElt)", window2);
        }
        const declaration = new CSSStyleDeclaration();
        const { forEach: forEach2 } = Array.prototype;
        const elementDeclaration = getDeclarationForElement(elt);
        forEach2.call(elementDeclaration, (property) => {
          declaration.setProperty(
            property,
            elementDeclaration.getPropertyValue(property),
            elementDeclaration.getPropertyPriority(property)
          );
        });
        const declarations = Object.keys(propertiesWithResolvedValueImplemented);
        forEach2.call(declarations, (property) => {
          declaration.setProperty(property, getResolvedValue(elt, property));
        });
        return declaration;
      };
      window2.getSelection = function() {
        return window2._document.getSelection();
      };
      window2.captureEvents = function() {
      };
      window2.releaseEvents = function() {
      };
      function wrapConsoleMethod(method) {
        return (...args) => {
          window2._virtualConsole.emit(method, ...args);
        };
      }
      window2.console = {
        assert: wrapConsoleMethod("assert"),
        clear: wrapConsoleMethod("clear"),
        count: wrapConsoleMethod("count"),
        countReset: wrapConsoleMethod("countReset"),
        debug: wrapConsoleMethod("debug"),
        dir: wrapConsoleMethod("dir"),
        dirxml: wrapConsoleMethod("dirxml"),
        error: wrapConsoleMethod("error"),
        group: wrapConsoleMethod("group"),
        groupCollapsed: wrapConsoleMethod("groupCollapsed"),
        groupEnd: wrapConsoleMethod("groupEnd"),
        info: wrapConsoleMethod("info"),
        log: wrapConsoleMethod("log"),
        table: wrapConsoleMethod("table"),
        time: wrapConsoleMethod("time"),
        timeLog: wrapConsoleMethod("timeLog"),
        timeEnd: wrapConsoleMethod("timeEnd"),
        trace: wrapConsoleMethod("trace"),
        warn: wrapConsoleMethod("warn")
      };
      function notImplementedMethod(name) {
        return function() {
          notImplemented(name, window2);
        };
      }
      define2(window2, {
        name: "",
        status: "",
        devicePixelRatio: 1,
        innerWidth: 1024,
        innerHeight: 768,
        outerWidth: 1024,
        outerHeight: 768,
        pageXOffset: 0,
        pageYOffset: 0,
        screenX: 0,
        screenLeft: 0,
        screenY: 0,
        screenTop: 0,
        scrollX: 0,
        scrollY: 0,
        alert: notImplementedMethod("window.alert"),
        blur: notImplementedMethod("window.blur"),
        confirm: notImplementedMethod("window.confirm"),
        focus: notImplementedMethod("window.focus"),
        moveBy: notImplementedMethod("window.moveBy"),
        moveTo: notImplementedMethod("window.moveTo"),
        open: notImplementedMethod("window.open"),
        print: notImplementedMethod("window.print"),
        prompt: notImplementedMethod("window.prompt"),
        resizeBy: notImplementedMethod("window.resizeBy"),
        resizeTo: notImplementedMethod("window.resizeTo"),
        scroll: notImplementedMethod("window.scroll"),
        scrollBy: notImplementedMethod("window.scrollBy"),
        scrollTo: notImplementedMethod("window.scrollTo")
      });
    }
    function makeReplaceablePropertyDescriptor(property, window2) {
      const desc = {
        set(value2) {
          Object.defineProperty(window2, property, {
            configurable: true,
            enumerable: true,
            writable: true,
            value: value2
          });
        }
      };
      Object.defineProperty(desc.set, "name", { value: `set ${property}` });
      return desc;
    }
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/package.json
var require_package = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/package.json"(exports, module) {
    module.exports = {
      name: "jsdom",
      version: "26.1.0",
      description: "A JavaScript implementation of many web standards",
      keywords: [
        "dom",
        "html",
        "whatwg",
        "w3c"
      ],
      maintainers: [
        "Elijah Insua <tmpvar@gmail.com> (http://tmpvar.com)",
        "Domenic Denicola <d@domenic.me> (https://domenic.me/)",
        "Sebastian Mayr <sebmaster16@gmail.com> (https://blog.smayr.name/)",
        "Joris van der Wel <joris@jorisvanderwel.com>",
        "Timothy Gu <timothygu99@gmail.com> (https://timothygu.me/)",
        "Magne Andersson <code@zirro.se> (https://zirro.se/)",
        "Pierre-Marie Dartus <dartus.pierremarie@gmail.com>"
      ],
      license: "MIT",
      repository: {
        type: "git",
        url: "git+https://github.com/jsdom/jsdom.git"
      },
      dependencies: {
        cssstyle: "^4.2.1",
        "data-urls": "^5.0.0",
        "decimal.js": "^10.5.0",
        "html-encoding-sniffer": "^4.0.0",
        "http-proxy-agent": "^7.0.2",
        "https-proxy-agent": "^7.0.6",
        "is-potential-custom-element-name": "^1.0.1",
        nwsapi: "^2.2.16",
        parse5: "^7.2.1",
        "rrweb-cssom": "^0.8.0",
        saxes: "^6.0.0",
        "symbol-tree": "^3.2.4",
        "tough-cookie": "^5.1.1",
        "w3c-xmlserializer": "^5.0.0",
        "webidl-conversions": "^7.0.0",
        "whatwg-encoding": "^3.1.1",
        "whatwg-mimetype": "^4.0.0",
        "whatwg-url": "^14.1.1",
        ws: "^8.18.0",
        "xml-name-validator": "^5.0.0"
      },
      peerDependencies: {
        canvas: "^3.0.0"
      },
      peerDependenciesMeta: {
        canvas: {
          optional: true
        }
      },
      devDependencies: {
        "@domenic/eslint-config": "^4.0.1",
        benchmark: "^2.1.4",
        eslint: "^9.20.0",
        "eslint-plugin-html": "^8.1.2",
        globals: "^15.14.0",
        "js-yaml": "^4.1.0",
        minimatch: "^9.0.5",
        mocha: "^11.1.0",
        "mocha-sugar-free": "^1.4.0",
        pngjs: "^7.0.0",
        "server-destroy": "^1.0.1",
        webidl2js: "^18.0.0",
        yargs: "^17.7.2"
      },
      scripts: {
        prepare: "npm run convert-idl && npm run generate-js-globals",
        pretest: "npm run prepare && npm run init-wpt",
        "test-wpt": "mocha test/web-platform-tests/run-wpts.js",
        "test-tuwpt": "mocha test/web-platform-tests/run-tuwpts.js",
        "test-mocha": "mocha",
        "test-api": "mocha test/api",
        test: "mocha test/index.js",
        lint: "eslint --cache",
        "init-wpt": "git submodule update --init --recursive",
        "reset-wpt": "rm -rf ./test/web-platform-tests/tests && npm run init-wpt",
        "update-wpt": "git submodule update --init --recursive --remote && cd test/web-platform-tests/tests && python wpt.py manifest --path ../wpt-manifest.json",
        "update-authors": 'git log --format="%aN <%aE>" | sort -f | uniq > AUTHORS.txt',
        benchmark: "node ./benchmark/runner",
        "convert-idl": "node ./scripts/webidl/convert.js",
        "generate-js-globals": "node ./scripts/generate-js-globals.js"
      },
      main: "./lib/api.js",
      type: "commonjs",
      engines: {
        node: ">=18"
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/resources/resource-loader.js
var require_resource_loader = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/resources/resource-loader.js"(exports, module) {
    "use strict";
    var fs7 = __require("fs");
    var { fileURLToPath } = __require("url");
    var { parseURL } = require_whatwg_url();
    var dataURLFromRecord = require_parser4().fromURLRecord;
    var packageVersion = require_package().version;
    var agentFactory = require_agent_factory();
    var Request3 = require_http_request();
    var IS_BROWSER = Object.prototype.toString.call(process) !== "[object process]";
    module.exports = class ResourceLoader {
      constructor({
        strictSSL = true,
        proxy = void 0,
        userAgent = `Mozilla/5.0 (${process.platform || "unknown OS"}) AppleWebKit/537.36 (KHTML, like Gecko) jsdom/${packageVersion}`
      } = {}) {
        this._strictSSL = strictSSL;
        this._proxy = proxy;
        this._userAgent = userAgent;
      }
      _readDataURL(urlRecord) {
        const dataURL = dataURLFromRecord(urlRecord);
        let timeoutId;
        const promise = new Promise((resolve4) => {
          timeoutId = setTimeout(resolve4, 0, Buffer.from(dataURL.body));
        });
        promise.abort = () => {
          if (timeoutId !== void 0) {
            clearTimeout(timeoutId);
          }
        };
        return promise;
      }
      _readFile(filePath) {
        let readableStream, abort;
        const promise = new Promise((resolve4, reject) => {
          readableStream = fs7.createReadStream(filePath);
          let data2 = Buffer.alloc(0);
          abort = reject;
          readableStream.on("error", reject);
          readableStream.on("data", (chunk3) => {
            data2 = Buffer.concat([data2, chunk3]);
          });
          readableStream.on("end", () => {
            resolve4(data2);
          });
        });
        promise.abort = () => {
          readableStream.destroy();
          const error = new Error("request canceled by user");
          error.isAbortError = true;
          abort(error);
        };
        return promise;
      }
      fetch(urlString, { accept, cookieJar, referrer } = {}) {
        const url3 = parseURL(urlString);
        if (!url3) {
          return Promise.reject(new Error(`Tried to fetch invalid URL ${urlString}`));
        }
        switch (url3.scheme) {
          case "data": {
            return this._readDataURL(url3);
          }
          case "http":
          case "https": {
            const agents = agentFactory(this._proxy, this._strictSSL);
            const headers = {
              "User-Agent": this._userAgent,
              "Accept-Language": "en",
              "Accept-Encoding": "gzip",
              "Accept": accept || "*/*"
            };
            if (referrer && !IS_BROWSER) {
              headers.Referer = referrer;
            }
            const requestClient = new Request3(
              urlString,
              { followRedirects: true, cookieJar, agents },
              { headers }
            );
            const promise = new Promise((resolve4, reject) => {
              const accumulated = [];
              requestClient.once("response", (res) => {
                promise.response = res;
                const { statusCode } = res;
                if (statusCode < 200 || statusCode > 299) {
                  requestClient.abort();
                  reject(new Error(`Resource was not loaded. Status: ${statusCode}`));
                }
              });
              requestClient.on("data", (chunk3) => {
                accumulated.push(chunk3);
              });
              requestClient.on("end", () => resolve4(Buffer.concat(accumulated)));
              requestClient.on("error", reject);
            });
            requestClient.on("end", () => {
              promise.href = requestClient.currentURL;
            });
            promise.abort = requestClient.abort.bind(requestClient);
            promise.getHeader = (name) => headers[name] || requestClient.getHeader(name);
            requestClient.end();
            return promise;
          }
          case "file": {
            try {
              return this._readFile(fileURLToPath(urlString));
            } catch (e4) {
              return Promise.reject(e4);
            }
          }
          default: {
            return Promise.reject(new Error(`Tried to fetch URL ${urlString} with invalid scheme ${url3.scheme}`));
          }
        }
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/resources/no-op-resource-loader.js
var require_no_op_resource_loader = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/jsdom/browser/resources/no-op-resource-loader.js"(exports, module) {
    "use strict";
    var ResourceLoader = require_resource_loader();
    module.exports = class NoOpResourceLoader extends ResourceLoader {
      fetch() {
        return null;
      }
    };
  }
});

// ../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/api.js
var require_api = __commonJS({
  "../../node_modules/.pnpm/jsdom@26.1.0/node_modules/jsdom/lib/api.js"(exports) {
    "use strict";
    var path3 = __require("path");
    var fs7 = __require("fs").promises;
    var vm = __require("vm");
    var toughCookie = require_cookie2();
    var sniffHTMLEncoding = require_html_encoding_sniffer();
    var whatwgURL = require_whatwg_url();
    var whatwgEncoding = require_whatwg_encoding();
    var { URL: URL5 } = require_whatwg_url();
    var MIMEType = require_mime_type();
    var idlUtils = require_utils16();
    var VirtualConsole = require_virtual_console();
    var { createWindow } = require_Window();
    var { parseIntoDocument } = require_parser3();
    var { fragmentSerialization } = require_serialization2();
    var ResourceLoader = require_resource_loader();
    var NoOpResourceLoader = require_no_op_resource_loader();
    var CookieJar = class extends toughCookie.CookieJar {
      constructor(store, options) {
        super(store, { looseMode: true, ...options });
      }
    };
    var window2 = Symbol("window");
    var sharedFragmentDocument = null;
    var JSDOM = class _JSDOM {
      constructor(input = "", options = {}) {
        const mimeType = new MIMEType(options.contentType === void 0 ? "text/html" : options.contentType);
        const { html, encoding } = normalizeHTML(input, mimeType);
        options = transformOptions(options, encoding, mimeType);
        this[window2] = createWindow(options.windowOptions);
        const documentImpl = idlUtils.implForWrapper(this[window2]._document);
        options.beforeParse(this[window2]._globalProxy);
        parseIntoDocument(html, documentImpl);
        documentImpl.close();
      }
      get window() {
        return this[window2]._globalProxy;
      }
      get virtualConsole() {
        return this[window2]._virtualConsole;
      }
      get cookieJar() {
        return idlUtils.implForWrapper(this[window2]._document)._cookieJar;
      }
      serialize() {
        return fragmentSerialization(idlUtils.implForWrapper(this[window2]._document), { requireWellFormed: false });
      }
      nodeLocation(node) {
        if (!idlUtils.implForWrapper(this[window2]._document)._parseOptions.sourceCodeLocationInfo) {
          throw new Error("Location information was not saved for this jsdom. Use includeNodeLocations during creation.");
        }
        return idlUtils.implForWrapper(node).sourceCodeLocation;
      }
      getInternalVMContext() {
        if (!vm.isContext(this[window2])) {
          throw new TypeError("This jsdom was not configured to allow script running. Use the runScripts option during creation.");
        }
        return this[window2];
      }
      reconfigure(settings) {
        if ("windowTop" in settings) {
          this[window2]._top = settings.windowTop;
        }
        if ("url" in settings) {
          const document2 = idlUtils.implForWrapper(this[window2]._document);
          const url3 = whatwgURL.parseURL(settings.url);
          if (url3 === null) {
            throw new TypeError(`Could not parse "${settings.url}" as a URL`);
          }
          document2._URL = url3;
          document2._origin = whatwgURL.serializeURLOrigin(document2._URL);
          this[window2]._sessionHistory.currentEntry.url = url3;
        }
      }
      static fragment(string = "") {
        if (!sharedFragmentDocument) {
          sharedFragmentDocument = new _JSDOM().window.document;
        }
        const template = sharedFragmentDocument.createElement("template");
        template.innerHTML = string;
        return template.content;
      }
      static fromURL(url3, options = {}) {
        return Promise.resolve().then(() => {
          const parsedURL = new URL5(url3);
          const originalHash = parsedURL.hash;
          parsedURL.hash = "";
          url3 = parsedURL.href;
          options = normalizeFromURLOptions(options);
          const resourceLoader = resourcesToResourceLoader(options.resources);
          const resourceLoaderForInitialRequest = resourceLoader.constructor === NoOpResourceLoader ? new ResourceLoader() : resourceLoader;
          const req = resourceLoaderForInitialRequest.fetch(url3, {
            accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            cookieJar: options.cookieJar,
            referrer: options.referrer
          });
          return req.then((body) => {
            const res = req.response;
            options = Object.assign(options, {
              url: req.href + originalHash,
              contentType: res.headers["content-type"],
              referrer: req.getHeader("referer") ?? void 0
            });
            return new _JSDOM(body, options);
          });
        });
      }
      static async fromFile(filename, options = {}) {
        options = normalizeFromFileOptions(filename, options);
        const buffer = await fs7.readFile(filename);
        return new _JSDOM(buffer, options);
      }
    };
    function normalizeFromURLOptions(options) {
      if (options.url !== void 0) {
        throw new TypeError("Cannot supply a url option when using fromURL");
      }
      if (options.contentType !== void 0) {
        throw new TypeError("Cannot supply a contentType option when using fromURL");
      }
      const normalized = { ...options };
      if (options.referrer !== void 0) {
        normalized.referrer = new URL5(options.referrer).href;
      }
      if (options.cookieJar === void 0) {
        normalized.cookieJar = new CookieJar();
      }
      return normalized;
    }
    function normalizeFromFileOptions(filename, options) {
      const normalized = { ...options };
      if (normalized.contentType === void 0) {
        const extname = path3.extname(filename);
        if (extname === ".xhtml" || extname === ".xht" || extname === ".xml") {
          normalized.contentType = "application/xhtml+xml";
        }
      }
      if (normalized.url === void 0) {
        normalized.url = new URL5("file:" + path3.resolve(filename));
      }
      return normalized;
    }
    function transformOptions(options, encoding, mimeType) {
      const transformed = {
        windowOptions: {
          // Defaults
          url: "about:blank",
          referrer: "",
          contentType: "text/html",
          parsingMode: "html",
          parseOptions: {
            sourceCodeLocationInfo: false,
            scriptingEnabled: false
          },
          runScripts: void 0,
          encoding,
          pretendToBeVisual: false,
          storageQuota: 5e6,
          // Defaults filled in later
          resourceLoader: void 0,
          virtualConsole: void 0,
          cookieJar: void 0
        },
        // Defaults
        beforeParse() {
        }
      };
      if (!mimeType.isHTML() && !mimeType.isXML()) {
        throw new RangeError(`The given content type of "${options.contentType}" was not a HTML or XML content type`);
      }
      transformed.windowOptions.contentType = mimeType.essence;
      transformed.windowOptions.parsingMode = mimeType.isHTML() ? "html" : "xml";
      if (options.url !== void 0) {
        transformed.windowOptions.url = new URL5(options.url).href;
      }
      if (options.referrer !== void 0) {
        transformed.windowOptions.referrer = new URL5(options.referrer).href;
      }
      if (options.includeNodeLocations) {
        if (transformed.windowOptions.parsingMode === "xml") {
          throw new TypeError("Cannot set includeNodeLocations to true with an XML content type");
        }
        transformed.windowOptions.parseOptions = { sourceCodeLocationInfo: true };
      }
      transformed.windowOptions.cookieJar = options.cookieJar === void 0 ? new CookieJar() : options.cookieJar;
      transformed.windowOptions.virtualConsole = options.virtualConsole === void 0 ? new VirtualConsole().sendTo(console) : options.virtualConsole;
      if (!(transformed.windowOptions.virtualConsole instanceof VirtualConsole)) {
        throw new TypeError("virtualConsole must be an instance of VirtualConsole");
      }
      transformed.windowOptions.resourceLoader = resourcesToResourceLoader(options.resources);
      if (options.runScripts !== void 0) {
        transformed.windowOptions.runScripts = String(options.runScripts);
        if (transformed.windowOptions.runScripts === "dangerously") {
          transformed.windowOptions.parseOptions.scriptingEnabled = true;
        } else if (transformed.windowOptions.runScripts !== "outside-only") {
          throw new RangeError(`runScripts must be undefined, "dangerously", or "outside-only"`);
        }
      }
      if (options.beforeParse !== void 0) {
        transformed.beforeParse = options.beforeParse;
      }
      if (options.pretendToBeVisual !== void 0) {
        transformed.windowOptions.pretendToBeVisual = Boolean(options.pretendToBeVisual);
      }
      if (options.storageQuota !== void 0) {
        transformed.windowOptions.storageQuota = Number(options.storageQuota);
      }
      return transformed;
    }
    function normalizeHTML(html, mimeType) {
      let encoding = "UTF-8";
      if (ArrayBuffer.isView(html)) {
        html = Buffer.from(html.buffer, html.byteOffset, html.byteLength);
      } else if (html instanceof ArrayBuffer) {
        html = Buffer.from(html);
      }
      if (Buffer.isBuffer(html)) {
        encoding = sniffHTMLEncoding(html, {
          defaultEncoding: mimeType.isXML() ? "UTF-8" : "windows-1252",
          transportLayerEncodingLabel: mimeType.parameters.get("charset")
        });
        html = whatwgEncoding.decode(html, encoding);
      } else {
        html = String(html);
      }
      return { html, encoding };
    }
    function resourcesToResourceLoader(resources) {
      switch (resources) {
        case void 0: {
          return new NoOpResourceLoader();
        }
        case "usable": {
          return new ResourceLoader();
        }
        default: {
          if (!(resources instanceof ResourceLoader)) {
            throw new TypeError("resources must be an instance of ResourceLoader");
          }
          return resources;
        }
      }
    }
    exports.JSDOM = JSDOM;
    exports.VirtualConsole = VirtualConsole;
    exports.CookieJar = CookieJar;
    exports.ResourceLoader = ResourceLoader;
    exports.toughCookie = toughCookie;
  }
});

// ../../node_modules/.pnpm/@crawlee+jsdom@3.16.0/node_modules/@crawlee/jsdom/internals/jsdom-crawler.js
var require_jsdom_crawler = __commonJS({
  "../../node_modules/.pnpm/@crawlee+jsdom@3.16.0/node_modules/@crawlee/jsdom/internals/jsdom-crawler.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.JSDOMCrawler = void 0;
    exports.domCrawlerEnqueueLinks = domCrawlerEnqueueLinks2;
    exports.createJSDOMRouter = createJSDOMRouter2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var http_1 = require_http();
    var utils_1 = require_utils9();
    var cheerio = tslib_1.__importStar(require_lib12());
    var jsdom_1 = require_api();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var timeout_1 = require_cjs();
    var utilities_1 = require_cjs4();
    var resources = new jsdom_1.ResourceLoader({
      // Copy from /packages/browser-pool/src/abstract-classes/browser-plugin.ts:17
      // in order not to include the entire package here
      userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
    });
    var JSDOMCrawler2 = class extends http_1.HttpCrawler {
      constructor(options = {}, config) {
        const { runScripts = false, hideInternalConsole = false, ...httpOptions } = options;
        super(httpOptions, config);
        Object.defineProperty(this, "runScripts", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "hideInternalConsole", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "virtualConsole", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "jsdomErrorHandler", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: (error) => this.log.debug("JSDOM error from console", error)
        });
        this.runScripts = runScripts;
        this.hideInternalConsole = hideInternalConsole;
      }
      /**
       * Returns the currently used `VirtualConsole` instance. Can be used to listen for the JSDOM's internal console messages.
       *
       * If the `hideInternalConsole` option is set to `true`, the messages aren't logged to the console by default,
       * but the virtual console can still be listened to.
       *
       * **Example usage:**
       * ```javascript
       * const console = crawler.getVirtualConsole();
       * console.on('error', (e) => {
       *     log.error(e);
       * });
       * ```
       */
      getVirtualConsole() {
        if (this.virtualConsole) {
          return this.virtualConsole;
        }
        this.virtualConsole = new jsdom_1.VirtualConsole();
        if (!this.hideInternalConsole) {
          this.virtualConsole.sendTo(console, { omitJSDOMErrors: true });
        }
        this.virtualConsole.on("jsdomError", this.jsdomErrorHandler);
        return this.virtualConsole;
      }
      async _cleanupContext(context) {
        this.getVirtualConsole().off("jsdomError", this.jsdomErrorHandler);
        context.window?.close();
      }
      async _parseHTML(response, isXml, crawlingContext) {
        const body = await (0, utilities_1.concatStreamToBuffer)(response);
        const { window: window2 } = new jsdom_1.JSDOM(body, {
          url: response.url,
          contentType: isXml ? "text/xml" : "text/html",
          runScripts: this.runScripts ? "dangerously" : void 0,
          resources,
          virtualConsole: this.getVirtualConsole(),
          pretendToBeVisual: true
        });
        Object.defineProperty(window2, "matchMedia", {
          writable: true,
          value: (query) => ({
            matches: false,
            media: query,
            onchange: null,
            addListener: () => {
            },
            removeListener: () => {
            },
            addEventListener: () => {
            },
            removeEventListener: () => {
            },
            dispatchEvent: () => {
            }
          })
        });
        window2.document.createRange = () => {
          const range2 = new window2.Range();
          range2.getBoundingClientRect = () => ({});
          range2.getClientRects = () => ({ item: () => null, length: 0 });
          return range2;
        };
        if (this.runScripts) {
          try {
            await (0, timeout_1.addTimeoutToPromise)(async () => {
              return new Promise((resolve4) => {
                window2.addEventListener("load", () => {
                  resolve4();
                }, false);
              }).catch();
            }, 1e4, "Window.load event not fired after 10 seconds.").catch();
          } catch (e4) {
            this.log.debug(e4.message);
          }
        }
        return {
          window: window2,
          get body() {
            return window2.document.documentElement.outerHTML;
          },
          get document() {
            return window2.document;
          },
          enqueueLinks: async (enqueueOptions) => {
            return domCrawlerEnqueueLinks2({
              options: { ...enqueueOptions, limit: this.calculateEnqueuedRequestLimit(enqueueOptions?.limit) },
              window: window2,
              requestQueue: await this.getRequestQueue(),
              robotsTxtFile: await this.getRobotsTxtFileForUrl(crawlingContext.request.url),
              onSkippedRequest: this.handleSkippedRequest,
              originalRequestUrl: crawlingContext.request.url,
              finalRequestUrl: crawlingContext.request.loadedUrl
            });
          }
        };
      }
      async _runRequestHandler(context) {
        context.waitForSelector = async (selector, timeoutMs = 5e3) => {
          const $ = cheerio.load(context.body);
          if ($(selector).get().length === 0) {
            if (timeoutMs) {
              await (0, utils_1.sleep)(50);
              await context.waitForSelector(selector, Math.max(timeoutMs - 50, 0));
              return;
            }
            throw new Error(`Selector '${selector}' not found.`);
          }
        };
        context.parseWithCheerio = async (selector, _timeoutMs = 5e3) => {
          const $ = cheerio.load(context.body);
          if (selector && $(selector).get().length === 0) {
            throw new Error(`Selector '${selector}' not found.`);
          }
          return $;
        };
        await super._runRequestHandler(context);
      }
    };
    exports.JSDOMCrawler = JSDOMCrawler2;
    Object.defineProperty(JSDOMCrawler2, "optionsShape", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        ...http_1.HttpCrawler.optionsShape,
        runScripts: ow_1.default.optional.boolean,
        hideInternalConsole: ow_1.default.optional.boolean
      }
    });
    function containsEnqueueLinks(options) {
      return !!options.enqueueLinks;
    }
    async function domCrawlerEnqueueLinks2(options) {
      const { options: enqueueLinksOptions, window: window2, originalRequestUrl, finalRequestUrl } = options;
      if (!window2) {
        throw new Error("Cannot enqueue links because the JSDOM is not available.");
      }
      const baseUrl = (0, http_1.resolveBaseUrlForEnqueueLinksFiltering)({
        enqueueStrategy: enqueueLinksOptions?.strategy,
        finalRequestUrl,
        originalRequestUrl,
        userProvidedBaseUrl: enqueueLinksOptions?.baseUrl
      });
      const urls = extractUrlsFromWindow(window2, enqueueLinksOptions?.selector ?? "a", enqueueLinksOptions?.baseUrl ?? finalRequestUrl ?? originalRequestUrl);
      if (containsEnqueueLinks(options)) {
        return options.enqueueLinks({
          urls,
          baseUrl,
          ...enqueueLinksOptions
        });
      }
      return (0, http_1.enqueueLinks)({
        requestQueue: options.requestQueue,
        robotsTxtFile: options.robotsTxtFile,
        onSkippedRequest: options.onSkippedRequest,
        urls,
        baseUrl,
        ...enqueueLinksOptions
      });
    }
    function extractUrlsFromWindow(window2, selector, baseUrl) {
      return Array.from(window2.document.querySelectorAll(selector)).map((e4) => e4.href).filter((href) => href !== void 0 && href !== "").map((href) => {
        if (href === void 0) {
          return void 0;
        }
        return (0, http_1.tryAbsoluteURL)(href, baseUrl);
      }).filter((href) => href !== void 0 && href !== "");
    }
    function createJSDOMRouter2(routes) {
      return http_1.Router.create(routes);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+jsdom@3.16.0/node_modules/@crawlee/jsdom/index.js
var require_jsdom = __commonJS({
  "../../node_modules/.pnpm/@crawlee+jsdom@3.16.0/node_modules/@crawlee/jsdom/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_http(), exports);
    tslib_1.__exportStar(require_jsdom_crawler(), exports);
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/options.js
var require_options2 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/options.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.flattenOptions = flattenOptions;
    var defaultOpts = {
      _useHtmlParser2: false
    };
    function flattenOptions(options, baseOptions) {
      if (!options) {
        return baseOptions !== null && baseOptions !== void 0 ? baseOptions : defaultOpts;
      }
      const opts2 = {
        _useHtmlParser2: !!options.xmlMode,
        ...baseOptions,
        ...options
      };
      if (options.xml) {
        opts2._useHtmlParser2 = true;
        opts2.xmlMode = true;
        if (options.xml !== true) {
          Object.assign(opts2, options.xml);
        }
      } else if (options.xmlMode) {
        opts2._useHtmlParser2 = true;
      }
      return opts2;
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/static.js
var require_static2 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/static.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.html = html;
    exports.xml = xml;
    exports.text = text;
    exports.parseHTML = parseHTML;
    exports.root = root;
    exports.contains = contains;
    exports.extract = extract;
    exports.merge = merge3;
    var domutils_1 = require_lib7();
    var options_js_1 = require_options2();
    function render3(that, dom, options) {
      if (!that)
        return "";
      return that(dom !== null && dom !== void 0 ? dom : that._root.children, null, void 0, options).toString();
    }
    function isOptions(dom, options) {
      return !options && typeof dom === "object" && dom != null && !("length" in dom) && !("type" in dom);
    }
    function html(dom, options) {
      const toRender = isOptions(dom) ? (options = dom, void 0) : dom;
      const opts2 = {
        ...this === null || this === void 0 ? void 0 : this._options,
        ...(0, options_js_1.flattenOptions)(options)
      };
      return render3(this, toRender, opts2);
    }
    function xml(dom) {
      const options = { ...this._options, xmlMode: true };
      return render3(this, dom, options);
    }
    function text(elements) {
      const elems = elements !== null && elements !== void 0 ? elements : this ? this.root() : [];
      let ret = "";
      for (let i5 = 0; i5 < elems.length; i5++) {
        ret += (0, domutils_1.textContent)(elems[i5]);
      }
      return ret;
    }
    function parseHTML(data2, context, keepScripts = typeof context === "boolean" ? context : false) {
      if (!data2 || typeof data2 !== "string") {
        return null;
      }
      if (typeof context === "boolean") {
        keepScripts = context;
      }
      const parsed = this.load(data2, this._options, false);
      if (!keepScripts) {
        parsed("script").remove();
      }
      return [...parsed.root()[0].children];
    }
    function root() {
      return this(this._root);
    }
    function contains(container, contained) {
      if (contained === container) {
        return false;
      }
      let next = contained;
      while (next && next !== next.parent) {
        next = next.parent;
        if (next === container) {
          return true;
        }
      }
      return false;
    }
    function extract(map) {
      return this.root().extract(map);
    }
    function merge3(arr1, arr2) {
      if (!isArrayLike2(arr1) || !isArrayLike2(arr2)) {
        return;
      }
      let newLength = arr1.length;
      const len = +arr2.length;
      for (let i5 = 0; i5 < len; i5++) {
        arr1[newLength++] = arr2[i5];
      }
      arr1.length = newLength;
      return arr1;
    }
    function isArrayLike2(item) {
      if (Array.isArray(item)) {
        return true;
      }
      if (typeof item !== "object" || item === null || !("length" in item) || typeof item.length !== "number" || item.length < 0) {
        return false;
      }
      for (let i5 = 0; i5 < item.length; i5++) {
        if (!(i5 in item)) {
          return false;
        }
      }
      return true;
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/utils.js
var require_utils19 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.isCheerio = isCheerio;
    exports.camelCase = camelCase;
    exports.cssCase = cssCase;
    exports.domEach = domEach;
    exports.isHtml = isHtml;
    function isCheerio(maybeCheerio) {
      return maybeCheerio.cheerio != null;
    }
    function camelCase(str) {
      return str.replace(/[._-](\w|$)/g, (_, x) => x.toUpperCase());
    }
    function cssCase(str) {
      return str.replace(/[A-Z]/g, "-$&").toLowerCase();
    }
    function domEach(array, fn) {
      const len = array.length;
      for (let i5 = 0; i5 < len; i5++)
        fn(array[i5], i5);
      return array;
    }
    var CharacterCode;
    (function(CharacterCode2) {
      CharacterCode2[CharacterCode2["LowerA"] = 97] = "LowerA";
      CharacterCode2[CharacterCode2["LowerZ"] = 122] = "LowerZ";
      CharacterCode2[CharacterCode2["UpperA"] = 65] = "UpperA";
      CharacterCode2[CharacterCode2["UpperZ"] = 90] = "UpperZ";
      CharacterCode2[CharacterCode2["Exclamation"] = 33] = "Exclamation";
    })(CharacterCode || (CharacterCode = {}));
    function isHtml(str) {
      if (typeof str !== "string") {
        return false;
      }
      const tagStart = str.indexOf("<");
      if (tagStart === -1 || tagStart > str.length - 3)
        return false;
      const tagChar = str.charCodeAt(tagStart + 1);
      return (tagChar >= CharacterCode.LowerA && tagChar <= CharacterCode.LowerZ || tagChar >= CharacterCode.UpperA && tagChar <= CharacterCode.UpperZ || tagChar === CharacterCode.Exclamation) && str.includes(">", tagStart + 2);
    }
  }
});

// ../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/decode-codepoint.js
var require_decode_codepoint3 = __commonJS({
  "../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/decode-codepoint.js"(exports) {
    "use strict";
    var _a2;
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.fromCodePoint = void 0;
    exports.replaceCodePoint = replaceCodePoint;
    exports.decodeCodePoint = decodeCodePoint;
    var decodeMap = /* @__PURE__ */ new Map([
      [0, 65533],
      // C1 Unicode control character reference replacements
      [128, 8364],
      [130, 8218],
      [131, 402],
      [132, 8222],
      [133, 8230],
      [134, 8224],
      [135, 8225],
      [136, 710],
      [137, 8240],
      [138, 352],
      [139, 8249],
      [140, 338],
      [142, 381],
      [145, 8216],
      [146, 8217],
      [147, 8220],
      [148, 8221],
      [149, 8226],
      [150, 8211],
      [151, 8212],
      [152, 732],
      [153, 8482],
      [154, 353],
      [155, 8250],
      [156, 339],
      [158, 382],
      [159, 376]
    ]);
    exports.fromCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins
    (_a2 = String.fromCodePoint) !== null && _a2 !== void 0 ? _a2 : ((codePoint) => {
      let output = "";
      if (codePoint > 65535) {
        codePoint -= 65536;
        output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296);
        codePoint = 56320 | codePoint & 1023;
      }
      output += String.fromCharCode(codePoint);
      return output;
    });
    function replaceCodePoint(codePoint) {
      var _a3;
      if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
        return 65533;
      }
      return (_a3 = decodeMap.get(codePoint)) !== null && _a3 !== void 0 ? _a3 : codePoint;
    }
    function decodeCodePoint(codePoint) {
      return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));
    }
  }
});

// ../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/internal/decode-shared.js
var require_decode_shared = __commonJS({
  "../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/internal/decode-shared.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.decodeBase64 = decodeBase64;
    function decodeBase64(input) {
      const binary = (
        // eslint-disable-next-line n/no-unsupported-features/node-builtins
        typeof atob === "function" ? (
          // Browser (and Node >=16)
          // eslint-disable-next-line n/no-unsupported-features/node-builtins
          atob(input)
        ) : (
          // Older Node versions (<16)
          // eslint-disable-next-line n/no-unsupported-features/node-builtins
          typeof Buffer.from === "function" ? (
            // eslint-disable-next-line n/no-unsupported-features/node-builtins
            Buffer.from(input, "base64").toString("binary")
          ) : (
            // eslint-disable-next-line unicorn/no-new-buffer, n/no-deprecated-api
            new Buffer(input, "base64").toString("binary")
          )
        )
      );
      const evenLength = binary.length & ~1;
      const out = new Uint16Array(evenLength / 2);
      for (let index2 = 0, outIndex = 0; index2 < evenLength; index2 += 2) {
        const lo = binary.charCodeAt(index2);
        const hi = binary.charCodeAt(index2 + 1);
        out[outIndex++] = lo | hi << 8;
      }
      return out;
    }
  }
});

// ../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/generated/decode-data-html.js
var require_decode_data_html3 = __commonJS({
  "../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/generated/decode-data-html.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.htmlDecodeTree = void 0;
    var decode_shared_js_1 = require_decode_shared();
    exports.htmlDecodeTree = (0, decode_shared_js_1.decodeBase64)("[encoded data, 32200 characters]");
  }
});

// ../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/generated/decode-data-xml.js
var require_decode_data_xml3 = __commonJS({
  "../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/generated/decode-data-xml.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.xmlDecodeTree = void 0;
    var decode_shared_js_1 = require_decode_shared();
    exports.xmlDecodeTree = (0, decode_shared_js_1.decodeBase64)("AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg");
  }
});

// ../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js
var require_bin_trie_flags = __commonJS({
  "../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.BinTrieFlags = void 0;
    var BinTrieFlags;
    (function(BinTrieFlags2) {
      BinTrieFlags2[BinTrieFlags2["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
      BinTrieFlags2[BinTrieFlags2["FLAG13"] = 8192] = "FLAG13";
      BinTrieFlags2[BinTrieFlags2["BRANCH_LENGTH"] = 8064] = "BRANCH_LENGTH";
      BinTrieFlags2[BinTrieFlags2["JUMP_TABLE"] = 127] = "JUMP_TABLE";
    })(BinTrieFlags || (exports.BinTrieFlags = BinTrieFlags = {}));
  }
});

// ../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/decode.js
var require_decode3 = __commonJS({
  "../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/decode.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.xmlDecodeTree = exports.htmlDecodeTree = exports.replaceCodePoint = exports.fromCodePoint = exports.decodeCodePoint = exports.EntityDecoder = exports.DecodingMode = void 0;
    exports.determineBranch = determineBranch;
    exports.decodeHTML = decodeHTML;
    exports.decodeHTMLAttribute = decodeHTMLAttribute;
    exports.decodeHTMLStrict = decodeHTMLStrict;
    exports.decodeXML = decodeXML;
    var decode_codepoint_js_1 = require_decode_codepoint3();
    var decode_data_html_js_1 = require_decode_data_html3();
    var decode_data_xml_js_1 = require_decode_data_xml3();
    var bin_trie_flags_js_1 = require_bin_trie_flags();
    var CharCodes;
    (function(CharCodes2) {
      CharCodes2[CharCodes2["NUM"] = 35] = "NUM";
      CharCodes2[CharCodes2["SEMI"] = 59] = "SEMI";
      CharCodes2[CharCodes2["EQUALS"] = 61] = "EQUALS";
      CharCodes2[CharCodes2["ZERO"] = 48] = "ZERO";
      CharCodes2[CharCodes2["NINE"] = 57] = "NINE";
      CharCodes2[CharCodes2["LOWER_A"] = 97] = "LOWER_A";
      CharCodes2[CharCodes2["LOWER_F"] = 102] = "LOWER_F";
      CharCodes2[CharCodes2["LOWER_X"] = 120] = "LOWER_X";
      CharCodes2[CharCodes2["LOWER_Z"] = 122] = "LOWER_Z";
      CharCodes2[CharCodes2["UPPER_A"] = 65] = "UPPER_A";
      CharCodes2[CharCodes2["UPPER_F"] = 70] = "UPPER_F";
      CharCodes2[CharCodes2["UPPER_Z"] = 90] = "UPPER_Z";
    })(CharCodes || (CharCodes = {}));
    var TO_LOWER_BIT = 32;
    function isNumber5(code) {
      return code >= CharCodes.ZERO && code <= CharCodes.NINE;
    }
    function isHexadecimalCharacter(code) {
      return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F;
    }
    function isAsciiAlphaNumeric(code) {
      return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z || isNumber5(code);
    }
    function isEntityInAttributeInvalidEnd(code) {
      return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);
    }
    var EntityDecoderState;
    (function(EntityDecoderState2) {
      EntityDecoderState2[EntityDecoderState2["EntityStart"] = 0] = "EntityStart";
      EntityDecoderState2[EntityDecoderState2["NumericStart"] = 1] = "NumericStart";
      EntityDecoderState2[EntityDecoderState2["NumericDecimal"] = 2] = "NumericDecimal";
      EntityDecoderState2[EntityDecoderState2["NumericHex"] = 3] = "NumericHex";
      EntityDecoderState2[EntityDecoderState2["NamedEntity"] = 4] = "NamedEntity";
    })(EntityDecoderState || (EntityDecoderState = {}));
    var DecodingMode;
    (function(DecodingMode2) {
      DecodingMode2[DecodingMode2["Legacy"] = 0] = "Legacy";
      DecodingMode2[DecodingMode2["Strict"] = 1] = "Strict";
      DecodingMode2[DecodingMode2["Attribute"] = 2] = "Attribute";
    })(DecodingMode || (exports.DecodingMode = DecodingMode = {}));
    var EntityDecoder = class {
      constructor(decodeTree, emitCodePoint, errors) {
        this.decodeTree = decodeTree;
        this.emitCodePoint = emitCodePoint;
        this.errors = errors;
        this.state = EntityDecoderState.EntityStart;
        this.consumed = 1;
        this.result = 0;
        this.treeIndex = 0;
        this.excess = 1;
        this.decodeMode = DecodingMode.Strict;
        this.runConsumed = 0;
      }
      /** Resets the instance to make it reusable. */
      startEntity(decodeMode) {
        this.decodeMode = decodeMode;
        this.state = EntityDecoderState.EntityStart;
        this.result = 0;
        this.treeIndex = 0;
        this.excess = 1;
        this.consumed = 1;
        this.runConsumed = 0;
      }
      /**
       * Write an entity to the decoder. This can be called multiple times with partial entities.
       * If the entity is incomplete, the decoder will return -1.
       *
       * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the
       * entity is incomplete, and resume when the next string is written.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      write(input, offset2) {
        switch (this.state) {
          case EntityDecoderState.EntityStart: {
            if (input.charCodeAt(offset2) === CharCodes.NUM) {
              this.state = EntityDecoderState.NumericStart;
              this.consumed += 1;
              return this.stateNumericStart(input, offset2 + 1);
            }
            this.state = EntityDecoderState.NamedEntity;
            return this.stateNamedEntity(input, offset2);
          }
          case EntityDecoderState.NumericStart: {
            return this.stateNumericStart(input, offset2);
          }
          case EntityDecoderState.NumericDecimal: {
            return this.stateNumericDecimal(input, offset2);
          }
          case EntityDecoderState.NumericHex: {
            return this.stateNumericHex(input, offset2);
          }
          case EntityDecoderState.NamedEntity: {
            return this.stateNamedEntity(input, offset2);
          }
        }
      }
      /**
       * Switches between the numeric decimal and hexadecimal states.
       *
       * Equivalent to the `Numeric character reference state` in the HTML spec.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The current offset.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      stateNumericStart(input, offset2) {
        if (offset2 >= input.length) {
          return -1;
        }
        if ((input.charCodeAt(offset2) | TO_LOWER_BIT) === CharCodes.LOWER_X) {
          this.state = EntityDecoderState.NumericHex;
          this.consumed += 1;
          return this.stateNumericHex(input, offset2 + 1);
        }
        this.state = EntityDecoderState.NumericDecimal;
        return this.stateNumericDecimal(input, offset2);
      }
      /**
       * Parses a hexadecimal numeric entity.
       *
       * Equivalent to the `Hexademical character reference state` in the HTML spec.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The current offset.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      stateNumericHex(input, offset2) {
        while (offset2 < input.length) {
          const char = input.charCodeAt(offset2);
          if (isNumber5(char) || isHexadecimalCharacter(char)) {
            const digit = char <= CharCodes.NINE ? char - CharCodes.ZERO : (char | TO_LOWER_BIT) - CharCodes.LOWER_A + 10;
            this.result = this.result * 16 + digit;
            this.consumed++;
            offset2++;
          } else {
            return this.emitNumericEntity(char, 3);
          }
        }
        return -1;
      }
      /**
       * Parses a decimal numeric entity.
       *
       * Equivalent to the `Decimal character reference state` in the HTML spec.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The current offset.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      stateNumericDecimal(input, offset2) {
        while (offset2 < input.length) {
          const char = input.charCodeAt(offset2);
          if (isNumber5(char)) {
            this.result = this.result * 10 + (char - CharCodes.ZERO);
            this.consumed++;
            offset2++;
          } else {
            return this.emitNumericEntity(char, 2);
          }
        }
        return -1;
      }
      /**
       * Validate and emit a numeric entity.
       *
       * Implements the logic from the `Hexademical character reference start
       * state` and `Numeric character reference end state` in the HTML spec.
       *
       * @param lastCp The last code point of the entity. Used to see if the
       *               entity was terminated with a semicolon.
       * @param expectedLength The minimum number of characters that should be
       *                       consumed. Used to validate that at least one digit
       *                       was consumed.
       * @returns The number of characters that were consumed.
       */
      emitNumericEntity(lastCp, expectedLength) {
        var _a2;
        if (this.consumed <= expectedLength) {
          (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
          return 0;
        }
        if (lastCp === CharCodes.SEMI) {
          this.consumed += 1;
        } else if (this.decodeMode === DecodingMode.Strict) {
          return 0;
        }
        this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);
        if (this.errors) {
          if (lastCp !== CharCodes.SEMI) {
            this.errors.missingSemicolonAfterCharacterReference();
          }
          this.errors.validateNumericCharacterReference(this.result);
        }
        return this.consumed;
      }
      /**
       * Parses a named entity.
       *
       * Equivalent to the `Named character reference state` in the HTML spec.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The current offset.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      stateNamedEntity(input, offset2) {
        const { decodeTree } = this;
        let current = decodeTree[this.treeIndex];
        let valueLength = (current & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;
        while (offset2 < input.length) {
          if (valueLength === 0 && (current & bin_trie_flags_js_1.BinTrieFlags.FLAG13) !== 0) {
            const runLength = (current & bin_trie_flags_js_1.BinTrieFlags.BRANCH_LENGTH) >> 7;
            if (this.runConsumed === 0) {
              const firstChar = current & bin_trie_flags_js_1.BinTrieFlags.JUMP_TABLE;
              if (input.charCodeAt(offset2) !== firstChar) {
                return this.result === 0 ? 0 : this.emitNotTerminatedNamedEntity();
              }
              offset2++;
              this.excess++;
              this.runConsumed++;
            }
            while (this.runConsumed < runLength) {
              if (offset2 >= input.length) {
                return -1;
              }
              const charIndexInPacked = this.runConsumed - 1;
              const packedWord = decodeTree[this.treeIndex + 1 + (charIndexInPacked >> 1)];
              const expectedChar = charIndexInPacked % 2 === 0 ? packedWord & 255 : packedWord >> 8 & 255;
              if (input.charCodeAt(offset2) !== expectedChar) {
                this.runConsumed = 0;
                return this.result === 0 ? 0 : this.emitNotTerminatedNamedEntity();
              }
              offset2++;
              this.excess++;
              this.runConsumed++;
            }
            this.runConsumed = 0;
            this.treeIndex += 1 + (runLength >> 1);
            current = decodeTree[this.treeIndex];
            valueLength = (current & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;
          }
          if (offset2 >= input.length)
            break;
          const char = input.charCodeAt(offset2);
          if (char === CharCodes.SEMI && valueLength !== 0 && (current & bin_trie_flags_js_1.BinTrieFlags.FLAG13) !== 0) {
            return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
          }
          this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);
          if (this.treeIndex < 0) {
            return this.result === 0 || // If we are parsing an attribute
            this.decodeMode === DecodingMode.Attribute && // We shouldn't have consumed any characters after the entity,
            (valueLength === 0 || // And there should be no invalid characters.
            isEntityInAttributeInvalidEnd(char)) ? 0 : this.emitNotTerminatedNamedEntity();
          }
          current = decodeTree[this.treeIndex];
          valueLength = (current & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;
          if (valueLength !== 0) {
            if (char === CharCodes.SEMI) {
              return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
            }
            if (this.decodeMode !== DecodingMode.Strict && (current & bin_trie_flags_js_1.BinTrieFlags.FLAG13) === 0) {
              this.result = this.treeIndex;
              this.consumed += this.excess;
              this.excess = 0;
            }
          }
          offset2++;
          this.excess++;
        }
        return -1;
      }
      /**
       * Emit a named entity that was not terminated with a semicolon.
       *
       * @returns The number of characters consumed.
       */
      emitNotTerminatedNamedEntity() {
        var _a2;
        const { result, decodeTree } = this;
        const valueLength = (decodeTree[result] & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;
        this.emitNamedEntityData(result, valueLength, this.consumed);
        (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.missingSemicolonAfterCharacterReference();
        return this.consumed;
      }
      /**
       * Emit a named entity.
       *
       * @param result The index of the entity in the decode tree.
       * @param valueLength The number of bytes in the entity.
       * @param consumed The number of characters consumed.
       *
       * @returns The number of characters consumed.
       */
      emitNamedEntityData(result, valueLength, consumed) {
        const { decodeTree } = this;
        this.emitCodePoint(valueLength === 1 ? decodeTree[result] & ~(bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH | bin_trie_flags_js_1.BinTrieFlags.FLAG13) : decodeTree[result + 1], consumed);
        if (valueLength === 3) {
          this.emitCodePoint(decodeTree[result + 2], consumed);
        }
        return consumed;
      }
      /**
       * Signal to the parser that the end of the input was reached.
       *
       * Remaining data will be emitted and relevant errors will be produced.
       *
       * @returns The number of characters consumed.
       */
      end() {
        var _a2;
        switch (this.state) {
          case EntityDecoderState.NamedEntity: {
            return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
          }
          // Otherwise, emit a numeric entity if we have one.
          case EntityDecoderState.NumericDecimal: {
            return this.emitNumericEntity(0, 2);
          }
          case EntityDecoderState.NumericHex: {
            return this.emitNumericEntity(0, 3);
          }
          case EntityDecoderState.NumericStart: {
            (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
            return 0;
          }
          case EntityDecoderState.EntityStart: {
            return 0;
          }
        }
      }
    };
    exports.EntityDecoder = EntityDecoder;
    function getDecoder(decodeTree) {
      let returnValue = "";
      const decoder2 = new EntityDecoder(decodeTree, (data2) => returnValue += (0, decode_codepoint_js_1.fromCodePoint)(data2));
      return function decodeWithTrie(input, decodeMode) {
        let lastIndex = 0;
        let offset2 = 0;
        while ((offset2 = input.indexOf("&", offset2)) >= 0) {
          returnValue += input.slice(lastIndex, offset2);
          decoder2.startEntity(decodeMode);
          const length2 = decoder2.write(
            input,
            // Skip the "&"
            offset2 + 1
          );
          if (length2 < 0) {
            lastIndex = offset2 + decoder2.end();
            break;
          }
          lastIndex = offset2 + length2;
          offset2 = length2 === 0 ? lastIndex + 1 : lastIndex;
        }
        const result = returnValue + input.slice(lastIndex);
        returnValue = "";
        return result;
      };
    }
    function determineBranch(decodeTree, current, nodeIndex, char) {
      const branchCount = (current & bin_trie_flags_js_1.BinTrieFlags.BRANCH_LENGTH) >> 7;
      const jumpOffset = current & bin_trie_flags_js_1.BinTrieFlags.JUMP_TABLE;
      if (branchCount === 0) {
        return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;
      }
      if (jumpOffset) {
        const value2 = char - jumpOffset;
        return value2 < 0 || value2 >= branchCount ? -1 : decodeTree[nodeIndex + value2] - 1;
      }
      const packedKeySlots = branchCount + 1 >> 1;
      let lo = 0;
      let hi = branchCount - 1;
      while (lo <= hi) {
        const mid = lo + hi >>> 1;
        const slot = mid >> 1;
        const packed = decodeTree[nodeIndex + slot];
        const midKey = packed >> (mid & 1) * 8 & 255;
        if (midKey < char) {
          lo = mid + 1;
        } else if (midKey > char) {
          hi = mid - 1;
        } else {
          return decodeTree[nodeIndex + packedKeySlots + mid];
        }
      }
      return -1;
    }
    var htmlDecoder = /* @__PURE__ */ getDecoder(decode_data_html_js_1.htmlDecodeTree);
    var xmlDecoder = /* @__PURE__ */ getDecoder(decode_data_xml_js_1.xmlDecodeTree);
    function decodeHTML(htmlString, mode = DecodingMode.Legacy) {
      return htmlDecoder(htmlString, mode);
    }
    function decodeHTMLAttribute(htmlAttribute) {
      return htmlDecoder(htmlAttribute, DecodingMode.Attribute);
    }
    function decodeHTMLStrict(htmlString) {
      return htmlDecoder(htmlString, DecodingMode.Strict);
    }
    function decodeXML(xmlString) {
      return xmlDecoder(xmlString, DecodingMode.Strict);
    }
    var decode_codepoint_js_2 = require_decode_codepoint3();
    Object.defineProperty(exports, "decodeCodePoint", { enumerable: true, get: function() {
      return decode_codepoint_js_2.decodeCodePoint;
    } });
    Object.defineProperty(exports, "fromCodePoint", { enumerable: true, get: function() {
      return decode_codepoint_js_2.fromCodePoint;
    } });
    Object.defineProperty(exports, "replaceCodePoint", { enumerable: true, get: function() {
      return decode_codepoint_js_2.replaceCodePoint;
    } });
    var decode_data_html_js_2 = require_decode_data_html3();
    Object.defineProperty(exports, "htmlDecodeTree", { enumerable: true, get: function() {
      return decode_data_html_js_2.htmlDecodeTree;
    } });
    var decode_data_xml_js_2 = require_decode_data_xml3();
    Object.defineProperty(exports, "xmlDecodeTree", { enumerable: true, get: function() {
      return decode_data_xml_js_2.xmlDecodeTree;
    } });
  }
});

// ../../node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/commonjs/Tokenizer.js
var require_Tokenizer2 = __commonJS({
  "../../node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/commonjs/Tokenizer.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.QuoteType = void 0;
    var decode_1 = require_decode3();
    var CharCodes;
    (function(CharCodes2) {
      CharCodes2[CharCodes2["Tab"] = 9] = "Tab";
      CharCodes2[CharCodes2["NewLine"] = 10] = "NewLine";
      CharCodes2[CharCodes2["FormFeed"] = 12] = "FormFeed";
      CharCodes2[CharCodes2["CarriageReturn"] = 13] = "CarriageReturn";
      CharCodes2[CharCodes2["Space"] = 32] = "Space";
      CharCodes2[CharCodes2["ExclamationMark"] = 33] = "ExclamationMark";
      CharCodes2[CharCodes2["Number"] = 35] = "Number";
      CharCodes2[CharCodes2["Amp"] = 38] = "Amp";
      CharCodes2[CharCodes2["SingleQuote"] = 39] = "SingleQuote";
      CharCodes2[CharCodes2["DoubleQuote"] = 34] = "DoubleQuote";
      CharCodes2[CharCodes2["Dash"] = 45] = "Dash";
      CharCodes2[CharCodes2["Slash"] = 47] = "Slash";
      CharCodes2[CharCodes2["Zero"] = 48] = "Zero";
      CharCodes2[CharCodes2["Nine"] = 57] = "Nine";
      CharCodes2[CharCodes2["Semi"] = 59] = "Semi";
      CharCodes2[CharCodes2["Lt"] = 60] = "Lt";
      CharCodes2[CharCodes2["Eq"] = 61] = "Eq";
      CharCodes2[CharCodes2["Gt"] = 62] = "Gt";
      CharCodes2[CharCodes2["Questionmark"] = 63] = "Questionmark";
      CharCodes2[CharCodes2["UpperA"] = 65] = "UpperA";
      CharCodes2[CharCodes2["LowerA"] = 97] = "LowerA";
      CharCodes2[CharCodes2["UpperF"] = 70] = "UpperF";
      CharCodes2[CharCodes2["LowerF"] = 102] = "LowerF";
      CharCodes2[CharCodes2["UpperZ"] = 90] = "UpperZ";
      CharCodes2[CharCodes2["LowerZ"] = 122] = "LowerZ";
      CharCodes2[CharCodes2["LowerX"] = 120] = "LowerX";
      CharCodes2[CharCodes2["OpeningSquareBracket"] = 91] = "OpeningSquareBracket";
    })(CharCodes || (CharCodes = {}));
    var State;
    (function(State2) {
      State2[State2["Text"] = 1] = "Text";
      State2[State2["BeforeTagName"] = 2] = "BeforeTagName";
      State2[State2["InTagName"] = 3] = "InTagName";
      State2[State2["InSelfClosingTag"] = 4] = "InSelfClosingTag";
      State2[State2["BeforeClosingTagName"] = 5] = "BeforeClosingTagName";
      State2[State2["InClosingTagName"] = 6] = "InClosingTagName";
      State2[State2["AfterClosingTagName"] = 7] = "AfterClosingTagName";
      State2[State2["BeforeAttributeName"] = 8] = "BeforeAttributeName";
      State2[State2["InAttributeName"] = 9] = "InAttributeName";
      State2[State2["AfterAttributeName"] = 10] = "AfterAttributeName";
      State2[State2["BeforeAttributeValue"] = 11] = "BeforeAttributeValue";
      State2[State2["InAttributeValueDq"] = 12] = "InAttributeValueDq";
      State2[State2["InAttributeValueSq"] = 13] = "InAttributeValueSq";
      State2[State2["InAttributeValueNq"] = 14] = "InAttributeValueNq";
      State2[State2["BeforeDeclaration"] = 15] = "BeforeDeclaration";
      State2[State2["InDeclaration"] = 16] = "InDeclaration";
      State2[State2["InProcessingInstruction"] = 17] = "InProcessingInstruction";
      State2[State2["BeforeComment"] = 18] = "BeforeComment";
      State2[State2["CDATASequence"] = 19] = "CDATASequence";
      State2[State2["InSpecialComment"] = 20] = "InSpecialComment";
      State2[State2["InCommentLike"] = 21] = "InCommentLike";
      State2[State2["BeforeSpecialS"] = 22] = "BeforeSpecialS";
      State2[State2["BeforeSpecialT"] = 23] = "BeforeSpecialT";
      State2[State2["SpecialStartSequence"] = 24] = "SpecialStartSequence";
      State2[State2["InSpecialTag"] = 25] = "InSpecialTag";
      State2[State2["InEntity"] = 26] = "InEntity";
    })(State || (State = {}));
    function isWhitespace(c6) {
      return c6 === CharCodes.Space || c6 === CharCodes.NewLine || c6 === CharCodes.Tab || c6 === CharCodes.FormFeed || c6 === CharCodes.CarriageReturn;
    }
    function isEndOfTagSection(c6) {
      return c6 === CharCodes.Slash || c6 === CharCodes.Gt || isWhitespace(c6);
    }
    function isASCIIAlpha(c6) {
      return c6 >= CharCodes.LowerA && c6 <= CharCodes.LowerZ || c6 >= CharCodes.UpperA && c6 <= CharCodes.UpperZ;
    }
    var QuoteType;
    (function(QuoteType2) {
      QuoteType2[QuoteType2["NoValue"] = 0] = "NoValue";
      QuoteType2[QuoteType2["Unquoted"] = 1] = "Unquoted";
      QuoteType2[QuoteType2["Single"] = 2] = "Single";
      QuoteType2[QuoteType2["Double"] = 3] = "Double";
    })(QuoteType || (exports.QuoteType = QuoteType = {}));
    var Sequences = {
      Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),
      // CDATA[
      CdataEnd: new Uint8Array([93, 93, 62]),
      // ]]>
      CommentEnd: new Uint8Array([45, 45, 62]),
      // `-->`
      ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),
      // `</script`
      StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),
      // `</style`
      TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]),
      // `</title`
      TextareaEnd: new Uint8Array([
        60,
        47,
        116,
        101,
        120,
        116,
        97,
        114,
        101,
        97
      ]),
      // `</textarea`
      XmpEnd: new Uint8Array([60, 47, 120, 109, 112])
      // `</xmp`
    };
    var Tokenizer = class {
      constructor({ xmlMode = false, decodeEntities = true }, cbs) {
        this.cbs = cbs;
        this.state = State.Text;
        this.buffer = "";
        this.sectionStart = 0;
        this.index = 0;
        this.entityStart = 0;
        this.baseState = State.Text;
        this.isSpecial = false;
        this.running = true;
        this.offset = 0;
        this.currentSequence = void 0;
        this.sequenceIndex = 0;
        this.xmlMode = xmlMode;
        this.decodeEntities = decodeEntities;
        this.entityDecoder = new decode_1.EntityDecoder(xmlMode ? decode_1.xmlDecodeTree : decode_1.htmlDecodeTree, (cp, consumed) => this.emitCodePoint(cp, consumed));
      }
      reset() {
        this.state = State.Text;
        this.buffer = "";
        this.sectionStart = 0;
        this.index = 0;
        this.baseState = State.Text;
        this.currentSequence = void 0;
        this.running = true;
        this.offset = 0;
      }
      write(chunk3) {
        this.offset += this.buffer.length;
        this.buffer = chunk3;
        this.parse();
      }
      end() {
        if (this.running)
          this.finish();
      }
      pause() {
        this.running = false;
      }
      resume() {
        this.running = true;
        if (this.index < this.buffer.length + this.offset) {
          this.parse();
        }
      }
      stateText(c6) {
        if (c6 === CharCodes.Lt || !this.decodeEntities && this.fastForwardTo(CharCodes.Lt)) {
          if (this.index > this.sectionStart) {
            this.cbs.ontext(this.sectionStart, this.index);
          }
          this.state = State.BeforeTagName;
          this.sectionStart = this.index;
        } else if (this.decodeEntities && c6 === CharCodes.Amp) {
          this.startEntity();
        }
      }
      stateSpecialStartSequence(c6) {
        const isEnd = this.sequenceIndex === this.currentSequence.length;
        const isMatch = isEnd ? (
          // If we are at the end of the sequence, make sure the tag name has ended
          isEndOfTagSection(c6)
        ) : (
          // Otherwise, do a case-insensitive comparison
          (c6 | 32) === this.currentSequence[this.sequenceIndex]
        );
        if (!isMatch) {
          this.isSpecial = false;
        } else if (!isEnd) {
          this.sequenceIndex++;
          return;
        }
        this.sequenceIndex = 0;
        this.state = State.InTagName;
        this.stateInTagName(c6);
      }
      /** Look for an end tag. For <title> tags, also decode entities. */
      stateInSpecialTag(c6) {
        if (this.sequenceIndex === this.currentSequence.length) {
          if (c6 === CharCodes.Gt || isWhitespace(c6)) {
            const endOfText = this.index - this.currentSequence.length;
            if (this.sectionStart < endOfText) {
              const actualIndex = this.index;
              this.index = endOfText;
              this.cbs.ontext(this.sectionStart, endOfText);
              this.index = actualIndex;
            }
            this.isSpecial = false;
            this.sectionStart = endOfText + 2;
            this.stateInClosingTagName(c6);
            return;
          }
          this.sequenceIndex = 0;
        }
        if ((c6 | 32) === this.currentSequence[this.sequenceIndex]) {
          this.sequenceIndex += 1;
        } else if (this.sequenceIndex === 0) {
          if (this.currentSequence === Sequences.TitleEnd) {
            if (this.decodeEntities && c6 === CharCodes.Amp) {
              this.startEntity();
            }
          } else if (this.fastForwardTo(CharCodes.Lt)) {
            this.sequenceIndex = 1;
          }
        } else {
          this.sequenceIndex = Number(c6 === CharCodes.Lt);
        }
      }
      stateCDATASequence(c6) {
        if (c6 === Sequences.Cdata[this.sequenceIndex]) {
          if (++this.sequenceIndex === Sequences.Cdata.length) {
            this.state = State.InCommentLike;
            this.currentSequence = Sequences.CdataEnd;
            this.sequenceIndex = 0;
            this.sectionStart = this.index + 1;
          }
        } else {
          this.sequenceIndex = 0;
          this.state = State.InDeclaration;
          this.stateInDeclaration(c6);
        }
      }
      /**
       * When we wait for one specific character, we can speed things up
       * by skipping through the buffer until we find it.
       *
       * @returns Whether the character was found.
       */
      fastForwardTo(c6) {
        while (++this.index < this.buffer.length + this.offset) {
          if (this.buffer.charCodeAt(this.index - this.offset) === c6) {
            return true;
          }
        }
        this.index = this.buffer.length + this.offset - 1;
        return false;
      }
      /**
       * Comments and CDATA end with `-->` and `]]>`.
       *
       * Their common qualities are:
       * - Their end sequences have a distinct character they start with.
       * - That character is then repeated, so we have to check multiple repeats.
       * - All characters but the start character of the sequence can be skipped.
       */
      stateInCommentLike(c6) {
        if (c6 === this.currentSequence[this.sequenceIndex]) {
          if (++this.sequenceIndex === this.currentSequence.length) {
            if (this.currentSequence === Sequences.CdataEnd) {
              this.cbs.oncdata(this.sectionStart, this.index, 2);
            } else {
              this.cbs.oncomment(this.sectionStart, this.index, 2);
            }
            this.sequenceIndex = 0;
            this.sectionStart = this.index + 1;
            this.state = State.Text;
          }
        } else if (this.sequenceIndex === 0) {
          if (this.fastForwardTo(this.currentSequence[0])) {
            this.sequenceIndex = 1;
          }
        } else if (c6 !== this.currentSequence[this.sequenceIndex - 1]) {
          this.sequenceIndex = 0;
        }
      }
      /**
       * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.
       *
       * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).
       * We allow anything that wouldn't end the tag.
       */
      isTagStartChar(c6) {
        return this.xmlMode ? !isEndOfTagSection(c6) : isASCIIAlpha(c6);
      }
      startSpecial(sequence, offset2) {
        this.isSpecial = true;
        this.currentSequence = sequence;
        this.sequenceIndex = offset2;
        this.state = State.SpecialStartSequence;
      }
      stateBeforeTagName(c6) {
        if (c6 === CharCodes.ExclamationMark) {
          this.state = State.BeforeDeclaration;
          this.sectionStart = this.index + 1;
        } else if (c6 === CharCodes.Questionmark) {
          this.state = State.InProcessingInstruction;
          this.sectionStart = this.index + 1;
        } else if (this.isTagStartChar(c6)) {
          const lower = c6 | 32;
          this.sectionStart = this.index;
          if (this.xmlMode) {
            this.state = State.InTagName;
          } else if (lower === Sequences.ScriptEnd[2]) {
            this.state = State.BeforeSpecialS;
          } else if (lower === Sequences.TitleEnd[2] || lower === Sequences.XmpEnd[2]) {
            this.state = State.BeforeSpecialT;
          } else {
            this.state = State.InTagName;
          }
        } else if (c6 === CharCodes.Slash) {
          this.state = State.BeforeClosingTagName;
        } else {
          this.state = State.Text;
          this.stateText(c6);
        }
      }
      stateInTagName(c6) {
        if (isEndOfTagSection(c6)) {
          this.cbs.onopentagname(this.sectionStart, this.index);
          this.sectionStart = -1;
          this.state = State.BeforeAttributeName;
          this.stateBeforeAttributeName(c6);
        }
      }
      stateBeforeClosingTagName(c6) {
        if (isWhitespace(c6)) {
        } else if (c6 === CharCodes.Gt) {
          this.state = State.Text;
        } else {
          this.state = this.isTagStartChar(c6) ? State.InClosingTagName : State.InSpecialComment;
          this.sectionStart = this.index;
        }
      }
      stateInClosingTagName(c6) {
        if (c6 === CharCodes.Gt || isWhitespace(c6)) {
          this.cbs.onclosetag(this.sectionStart, this.index);
          this.sectionStart = -1;
          this.state = State.AfterClosingTagName;
          this.stateAfterClosingTagName(c6);
        }
      }
      stateAfterClosingTagName(c6) {
        if (c6 === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
          this.state = State.Text;
          this.sectionStart = this.index + 1;
        }
      }
      stateBeforeAttributeName(c6) {
        if (c6 === CharCodes.Gt) {
          this.cbs.onopentagend(this.index);
          if (this.isSpecial) {
            this.state = State.InSpecialTag;
            this.sequenceIndex = 0;
          } else {
            this.state = State.Text;
          }
          this.sectionStart = this.index + 1;
        } else if (c6 === CharCodes.Slash) {
          this.state = State.InSelfClosingTag;
        } else if (!isWhitespace(c6)) {
          this.state = State.InAttributeName;
          this.sectionStart = this.index;
        }
      }
      stateInSelfClosingTag(c6) {
        if (c6 === CharCodes.Gt) {
          this.cbs.onselfclosingtag(this.index);
          this.state = State.Text;
          this.sectionStart = this.index + 1;
          this.isSpecial = false;
        } else if (!isWhitespace(c6)) {
          this.state = State.BeforeAttributeName;
          this.stateBeforeAttributeName(c6);
        }
      }
      stateInAttributeName(c6) {
        if (c6 === CharCodes.Eq || isEndOfTagSection(c6)) {
          this.cbs.onattribname(this.sectionStart, this.index);
          this.sectionStart = this.index;
          this.state = State.AfterAttributeName;
          this.stateAfterAttributeName(c6);
        }
      }
      stateAfterAttributeName(c6) {
        if (c6 === CharCodes.Eq) {
          this.state = State.BeforeAttributeValue;
        } else if (c6 === CharCodes.Slash || c6 === CharCodes.Gt) {
          this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);
          this.sectionStart = -1;
          this.state = State.BeforeAttributeName;
          this.stateBeforeAttributeName(c6);
        } else if (!isWhitespace(c6)) {
          this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);
          this.state = State.InAttributeName;
          this.sectionStart = this.index;
        }
      }
      stateBeforeAttributeValue(c6) {
        if (c6 === CharCodes.DoubleQuote) {
          this.state = State.InAttributeValueDq;
          this.sectionStart = this.index + 1;
        } else if (c6 === CharCodes.SingleQuote) {
          this.state = State.InAttributeValueSq;
          this.sectionStart = this.index + 1;
        } else if (!isWhitespace(c6)) {
          this.sectionStart = this.index;
          this.state = State.InAttributeValueNq;
          this.stateInAttributeValueNoQuotes(c6);
        }
      }
      handleInAttributeValue(c6, quote) {
        if (c6 === quote || !this.decodeEntities && this.fastForwardTo(quote)) {
          this.cbs.onattribdata(this.sectionStart, this.index);
          this.sectionStart = -1;
          this.cbs.onattribend(quote === CharCodes.DoubleQuote ? QuoteType.Double : QuoteType.Single, this.index + 1);
          this.state = State.BeforeAttributeName;
        } else if (this.decodeEntities && c6 === CharCodes.Amp) {
          this.startEntity();
        }
      }
      stateInAttributeValueDoubleQuotes(c6) {
        this.handleInAttributeValue(c6, CharCodes.DoubleQuote);
      }
      stateInAttributeValueSingleQuotes(c6) {
        this.handleInAttributeValue(c6, CharCodes.SingleQuote);
      }
      stateInAttributeValueNoQuotes(c6) {
        if (isWhitespace(c6) || c6 === CharCodes.Gt) {
          this.cbs.onattribdata(this.sectionStart, this.index);
          this.sectionStart = -1;
          this.cbs.onattribend(QuoteType.Unquoted, this.index);
          this.state = State.BeforeAttributeName;
          this.stateBeforeAttributeName(c6);
        } else if (this.decodeEntities && c6 === CharCodes.Amp) {
          this.startEntity();
        }
      }
      stateBeforeDeclaration(c6) {
        if (c6 === CharCodes.OpeningSquareBracket) {
          this.state = State.CDATASequence;
          this.sequenceIndex = 0;
        } else {
          this.state = c6 === CharCodes.Dash ? State.BeforeComment : State.InDeclaration;
        }
      }
      stateInDeclaration(c6) {
        if (c6 === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
          this.cbs.ondeclaration(this.sectionStart, this.index);
          this.state = State.Text;
          this.sectionStart = this.index + 1;
        }
      }
      stateInProcessingInstruction(c6) {
        if (c6 === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
          this.cbs.onprocessinginstruction(this.sectionStart, this.index);
          this.state = State.Text;
          this.sectionStart = this.index + 1;
        }
      }
      stateBeforeComment(c6) {
        if (c6 === CharCodes.Dash) {
          this.state = State.InCommentLike;
          this.currentSequence = Sequences.CommentEnd;
          this.sequenceIndex = 2;
          this.sectionStart = this.index + 1;
        } else {
          this.state = State.InDeclaration;
        }
      }
      stateInSpecialComment(c6) {
        if (c6 === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
          this.cbs.oncomment(this.sectionStart, this.index, 0);
          this.state = State.Text;
          this.sectionStart = this.index + 1;
        }
      }
      stateBeforeSpecialS(c6) {
        const lower = c6 | 32;
        if (lower === Sequences.ScriptEnd[3]) {
          this.startSpecial(Sequences.ScriptEnd, 4);
        } else if (lower === Sequences.StyleEnd[3]) {
          this.startSpecial(Sequences.StyleEnd, 4);
        } else {
          this.state = State.InTagName;
          this.stateInTagName(c6);
        }
      }
      stateBeforeSpecialT(c6) {
        const lower = c6 | 32;
        switch (lower) {
          case Sequences.TitleEnd[3]: {
            this.startSpecial(Sequences.TitleEnd, 4);
            break;
          }
          case Sequences.TextareaEnd[3]: {
            this.startSpecial(Sequences.TextareaEnd, 4);
            break;
          }
          case Sequences.XmpEnd[3]: {
            this.startSpecial(Sequences.XmpEnd, 4);
            break;
          }
          default: {
            this.state = State.InTagName;
            this.stateInTagName(c6);
          }
        }
      }
      startEntity() {
        this.baseState = this.state;
        this.state = State.InEntity;
        this.entityStart = this.index;
        this.entityDecoder.startEntity(this.xmlMode ? decode_1.DecodingMode.Strict : this.baseState === State.Text || this.baseState === State.InSpecialTag ? decode_1.DecodingMode.Legacy : decode_1.DecodingMode.Attribute);
      }
      stateInEntity() {
        const indexInBuffer = this.index - this.offset;
        const length2 = this.entityDecoder.write(this.buffer, indexInBuffer);
        if (length2 >= 0) {
          this.state = this.baseState;
          if (length2 === 0) {
            this.index -= 1;
          }
        } else {
          if (indexInBuffer < this.buffer.length && this.buffer.charCodeAt(indexInBuffer) === CharCodes.Amp) {
            this.state = this.baseState;
            this.index -= 1;
            return;
          }
          this.index = this.offset + this.buffer.length - 1;
        }
      }
      /**
       * Remove data that has already been consumed from the buffer.
       */
      cleanup() {
        if (this.running && this.sectionStart !== this.index) {
          if (this.state === State.Text || this.state === State.InSpecialTag && this.sequenceIndex === 0) {
            this.cbs.ontext(this.sectionStart, this.index);
            this.sectionStart = this.index;
          } else if (this.state === State.InAttributeValueDq || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueNq) {
            this.cbs.onattribdata(this.sectionStart, this.index);
            this.sectionStart = this.index;
          }
        }
      }
      shouldContinue() {
        return this.index < this.buffer.length + this.offset && this.running;
      }
      /**
       * Iterates through the buffer, calling the function corresponding to the current state.
       *
       * States that are more likely to be hit are higher up, as a performance improvement.
       */
      parse() {
        while (this.shouldContinue()) {
          const c6 = this.buffer.charCodeAt(this.index - this.offset);
          switch (this.state) {
            case State.Text: {
              this.stateText(c6);
              break;
            }
            case State.SpecialStartSequence: {
              this.stateSpecialStartSequence(c6);
              break;
            }
            case State.InSpecialTag: {
              this.stateInSpecialTag(c6);
              break;
            }
            case State.CDATASequence: {
              this.stateCDATASequence(c6);
              break;
            }
            case State.InAttributeValueDq: {
              this.stateInAttributeValueDoubleQuotes(c6);
              break;
            }
            case State.InAttributeName: {
              this.stateInAttributeName(c6);
              break;
            }
            case State.InCommentLike: {
              this.stateInCommentLike(c6);
              break;
            }
            case State.InSpecialComment: {
              this.stateInSpecialComment(c6);
              break;
            }
            case State.BeforeAttributeName: {
              this.stateBeforeAttributeName(c6);
              break;
            }
            case State.InTagName: {
              this.stateInTagName(c6);
              break;
            }
            case State.InClosingTagName: {
              this.stateInClosingTagName(c6);
              break;
            }
            case State.BeforeTagName: {
              this.stateBeforeTagName(c6);
              break;
            }
            case State.AfterAttributeName: {
              this.stateAfterAttributeName(c6);
              break;
            }
            case State.InAttributeValueSq: {
              this.stateInAttributeValueSingleQuotes(c6);
              break;
            }
            case State.BeforeAttributeValue: {
              this.stateBeforeAttributeValue(c6);
              break;
            }
            case State.BeforeClosingTagName: {
              this.stateBeforeClosingTagName(c6);
              break;
            }
            case State.AfterClosingTagName: {
              this.stateAfterClosingTagName(c6);
              break;
            }
            case State.BeforeSpecialS: {
              this.stateBeforeSpecialS(c6);
              break;
            }
            case State.BeforeSpecialT: {
              this.stateBeforeSpecialT(c6);
              break;
            }
            case State.InAttributeValueNq: {
              this.stateInAttributeValueNoQuotes(c6);
              break;
            }
            case State.InSelfClosingTag: {
              this.stateInSelfClosingTag(c6);
              break;
            }
            case State.InDeclaration: {
              this.stateInDeclaration(c6);
              break;
            }
            case State.BeforeDeclaration: {
              this.stateBeforeDeclaration(c6);
              break;
            }
            case State.BeforeComment: {
              this.stateBeforeComment(c6);
              break;
            }
            case State.InProcessingInstruction: {
              this.stateInProcessingInstruction(c6);
              break;
            }
            case State.InEntity: {
              this.stateInEntity();
              break;
            }
          }
          this.index++;
        }
        this.cleanup();
      }
      finish() {
        if (this.state === State.InEntity) {
          this.entityDecoder.end();
          this.state = this.baseState;
        }
        this.handleTrailingData();
        this.cbs.onend();
      }
      /** Handle any trailing data. */
      handleTrailingData() {
        const endIndex = this.buffer.length + this.offset;
        if (this.sectionStart >= endIndex) {
          return;
        }
        if (this.state === State.InCommentLike) {
          if (this.currentSequence === Sequences.CdataEnd) {
            this.cbs.oncdata(this.sectionStart, endIndex, 0);
          } else {
            this.cbs.oncomment(this.sectionStart, endIndex, 0);
          }
        } else if (this.state === State.InTagName || this.state === State.BeforeAttributeName || this.state === State.BeforeAttributeValue || this.state === State.AfterAttributeName || this.state === State.InAttributeName || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueDq || this.state === State.InAttributeValueNq || this.state === State.InClosingTagName) {
        } else {
          this.cbs.ontext(this.sectionStart, endIndex);
        }
      }
      emitCodePoint(cp, consumed) {
        if (this.baseState !== State.Text && this.baseState !== State.InSpecialTag) {
          if (this.sectionStart < this.entityStart) {
            this.cbs.onattribdata(this.sectionStart, this.entityStart);
          }
          this.sectionStart = this.entityStart + consumed;
          this.index = this.sectionStart - 1;
          this.cbs.onattribentity(cp);
        } else {
          if (this.sectionStart < this.entityStart) {
            this.cbs.ontext(this.sectionStart, this.entityStart);
          }
          this.sectionStart = this.entityStart + consumed;
          this.index = this.sectionStart - 1;
          this.cbs.ontextentity(cp, this.sectionStart);
        }
      }
    };
    exports.default = Tokenizer;
  }
});

// ../../node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/commonjs/Parser.js
var require_Parser3 = __commonJS({
  "../../node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/commonjs/Parser.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || /* @__PURE__ */ (function() {
      var ownKeys2 = function(o5) {
        ownKeys2 = Object.getOwnPropertyNames || function(o6) {
          var ar = [];
          for (var k3 in o6) if (Object.prototype.hasOwnProperty.call(o6, k3)) ar[ar.length] = k3;
          return ar;
        };
        return ownKeys2(o5);
      };
      return function(mod3) {
        if (mod3 && mod3.__esModule) return mod3;
        var result = {};
        if (mod3 != null) {
          for (var k3 = ownKeys2(mod3), i5 = 0; i5 < k3.length; i5++) if (k3[i5] !== "default") __createBinding2(result, mod3, k3[i5]);
        }
        __setModuleDefault2(result, mod3);
        return result;
      };
    })();
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Parser = void 0;
    var Tokenizer_js_1 = __importStar2(require_Tokenizer2());
    var decode_1 = require_decode3();
    var formTags = /* @__PURE__ */ new Set([
      "input",
      "option",
      "optgroup",
      "select",
      "button",
      "datalist",
      "textarea"
    ]);
    var pTag = /* @__PURE__ */ new Set(["p"]);
    var tableSectionTags = /* @__PURE__ */ new Set(["thead", "tbody"]);
    var ddtTags = /* @__PURE__ */ new Set(["dd", "dt"]);
    var rtpTags = /* @__PURE__ */ new Set(["rt", "rp"]);
    var openImpliesClose = /* @__PURE__ */ new Map([
      ["tr", /* @__PURE__ */ new Set(["tr", "th", "td"])],
      ["th", /* @__PURE__ */ new Set(["th"])],
      ["td", /* @__PURE__ */ new Set(["thead", "th", "td"])],
      ["body", /* @__PURE__ */ new Set(["head", "link", "script"])],
      ["li", /* @__PURE__ */ new Set(["li"])],
      ["p", pTag],
      ["h1", pTag],
      ["h2", pTag],
      ["h3", pTag],
      ["h4", pTag],
      ["h5", pTag],
      ["h6", pTag],
      ["select", formTags],
      ["input", formTags],
      ["output", formTags],
      ["button", formTags],
      ["datalist", formTags],
      ["textarea", formTags],
      ["option", /* @__PURE__ */ new Set(["option"])],
      ["optgroup", /* @__PURE__ */ new Set(["optgroup", "option"])],
      ["dd", ddtTags],
      ["dt", ddtTags],
      ["address", pTag],
      ["article", pTag],
      ["aside", pTag],
      ["blockquote", pTag],
      ["details", pTag],
      ["div", pTag],
      ["dl", pTag],
      ["fieldset", pTag],
      ["figcaption", pTag],
      ["figure", pTag],
      ["footer", pTag],
      ["form", pTag],
      ["header", pTag],
      ["hr", pTag],
      ["main", pTag],
      ["nav", pTag],
      ["ol", pTag],
      ["pre", pTag],
      ["section", pTag],
      ["table", pTag],
      ["ul", pTag],
      ["rt", rtpTags],
      ["rp", rtpTags],
      ["tbody", tableSectionTags],
      ["tfoot", tableSectionTags]
    ]);
    var voidElements = /* @__PURE__ */ new Set([
      "area",
      "base",
      "basefont",
      "br",
      "col",
      "command",
      "embed",
      "frame",
      "hr",
      "img",
      "input",
      "isindex",
      "keygen",
      "link",
      "meta",
      "param",
      "source",
      "track",
      "wbr"
    ]);
    var foreignContextElements = /* @__PURE__ */ new Set(["math", "svg"]);
    var htmlIntegrationElements = /* @__PURE__ */ new Set([
      "mi",
      "mo",
      "mn",
      "ms",
      "mtext",
      "annotation-xml",
      "foreignobject",
      "desc",
      "title"
    ]);
    var reNameEnd = /\s|\//;
    var Parser = class {
      constructor(cbs, options = {}) {
        var _a2, _b2, _c, _d, _e, _f;
        this.options = options;
        this.startIndex = 0;
        this.endIndex = 0;
        this.openTagStart = 0;
        this.tagname = "";
        this.attribname = "";
        this.attribvalue = "";
        this.attribs = null;
        this.stack = [];
        this.buffers = [];
        this.bufferOffset = 0;
        this.writeIndex = 0;
        this.ended = false;
        this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};
        this.htmlMode = !this.options.xmlMode;
        this.lowerCaseTagNames = (_a2 = options.lowerCaseTags) !== null && _a2 !== void 0 ? _a2 : this.htmlMode;
        this.lowerCaseAttributeNames = (_b2 = options.lowerCaseAttributeNames) !== null && _b2 !== void 0 ? _b2 : this.htmlMode;
        this.recognizeSelfClosing = (_c = options.recognizeSelfClosing) !== null && _c !== void 0 ? _c : !this.htmlMode;
        this.tokenizer = new ((_d = options.Tokenizer) !== null && _d !== void 0 ? _d : Tokenizer_js_1.default)(this.options, this);
        this.foreignContext = [!this.htmlMode];
        (_f = (_e = this.cbs).onparserinit) === null || _f === void 0 ? void 0 : _f.call(_e, this);
      }
      // Tokenizer event handlers
      /** @internal */
      ontext(start2, endIndex) {
        var _a2, _b2;
        const data2 = this.getSlice(start2, endIndex);
        this.endIndex = endIndex - 1;
        (_b2 = (_a2 = this.cbs).ontext) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, data2);
        this.startIndex = endIndex;
      }
      /** @internal */
      ontextentity(cp, endIndex) {
        var _a2, _b2;
        this.endIndex = endIndex - 1;
        (_b2 = (_a2 = this.cbs).ontext) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, (0, decode_1.fromCodePoint)(cp));
        this.startIndex = endIndex;
      }
      /**
       * Checks if the current tag is a void element. Override this if you want
       * to specify your own additional void elements.
       */
      isVoidElement(name) {
        return this.htmlMode && voidElements.has(name);
      }
      /** @internal */
      onopentagname(start2, endIndex) {
        this.endIndex = endIndex;
        let name = this.getSlice(start2, endIndex);
        if (this.lowerCaseTagNames) {
          name = name.toLowerCase();
        }
        this.emitOpenTag(name);
      }
      emitOpenTag(name) {
        var _a2, _b2, _c, _d;
        this.openTagStart = this.startIndex;
        this.tagname = name;
        const impliesClose = this.htmlMode && openImpliesClose.get(name);
        if (impliesClose) {
          while (this.stack.length > 0 && impliesClose.has(this.stack[0])) {
            const element = this.stack.shift();
            (_b2 = (_a2 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, element, true);
          }
        }
        if (!this.isVoidElement(name)) {
          this.stack.unshift(name);
          if (this.htmlMode) {
            if (foreignContextElements.has(name)) {
              this.foreignContext.unshift(true);
            } else if (htmlIntegrationElements.has(name)) {
              this.foreignContext.unshift(false);
            }
          }
        }
        (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);
        if (this.cbs.onopentag)
          this.attribs = {};
      }
      endOpenTag(isImplied) {
        var _a2, _b2;
        this.startIndex = this.openTagStart;
        if (this.attribs) {
          (_b2 = (_a2 = this.cbs).onopentag) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, this.tagname, this.attribs, isImplied);
          this.attribs = null;
        }
        if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {
          this.cbs.onclosetag(this.tagname, true);
        }
        this.tagname = "";
      }
      /** @internal */
      onopentagend(endIndex) {
        this.endIndex = endIndex;
        this.endOpenTag(false);
        this.startIndex = endIndex + 1;
      }
      /** @internal */
      onclosetag(start2, endIndex) {
        var _a2, _b2, _c, _d, _e, _f, _g, _h;
        this.endIndex = endIndex;
        let name = this.getSlice(start2, endIndex);
        if (this.lowerCaseTagNames) {
          name = name.toLowerCase();
        }
        if (this.htmlMode && (foreignContextElements.has(name) || htmlIntegrationElements.has(name))) {
          this.foreignContext.shift();
        }
        if (!this.isVoidElement(name)) {
          const pos = this.stack.indexOf(name);
          if (pos !== -1) {
            for (let index2 = 0; index2 <= pos; index2++) {
              const element = this.stack.shift();
              (_b2 = (_a2 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, element, index2 !== pos);
            }
          } else if (this.htmlMode && name === "p") {
            this.emitOpenTag("p");
            this.closeCurrentTag(true);
          }
        } else if (this.htmlMode && name === "br") {
          (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, "br");
          (_f = (_e = this.cbs).onopentag) === null || _f === void 0 ? void 0 : _f.call(_e, "br", {}, true);
          (_h = (_g = this.cbs).onclosetag) === null || _h === void 0 ? void 0 : _h.call(_g, "br", false);
        }
        this.startIndex = endIndex + 1;
      }
      /** @internal */
      onselfclosingtag(endIndex) {
        this.endIndex = endIndex;
        if (this.recognizeSelfClosing || this.foreignContext[0]) {
          this.closeCurrentTag(false);
          this.startIndex = endIndex + 1;
        } else {
          this.onopentagend(endIndex);
        }
      }
      closeCurrentTag(isOpenImplied) {
        var _a2, _b2;
        const name = this.tagname;
        this.endOpenTag(isOpenImplied);
        if (this.stack[0] === name) {
          (_b2 = (_a2 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, name, !isOpenImplied);
          this.stack.shift();
        }
      }
      /** @internal */
      onattribname(start2, endIndex) {
        this.startIndex = start2;
        const name = this.getSlice(start2, endIndex);
        this.attribname = this.lowerCaseAttributeNames ? name.toLowerCase() : name;
      }
      /** @internal */
      onattribdata(start2, endIndex) {
        this.attribvalue += this.getSlice(start2, endIndex);
      }
      /** @internal */
      onattribentity(cp) {
        this.attribvalue += (0, decode_1.fromCodePoint)(cp);
      }
      /** @internal */
      onattribend(quote, endIndex) {
        var _a2, _b2;
        this.endIndex = endIndex;
        (_b2 = (_a2 = this.cbs).onattribute) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double ? '"' : quote === Tokenizer_js_1.QuoteType.Single ? "'" : quote === Tokenizer_js_1.QuoteType.NoValue ? void 0 : null);
        if (this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {
          this.attribs[this.attribname] = this.attribvalue;
        }
        this.attribvalue = "";
      }
      getInstructionName(value2) {
        const index2 = value2.search(reNameEnd);
        let name = index2 < 0 ? value2 : value2.substr(0, index2);
        if (this.lowerCaseTagNames) {
          name = name.toLowerCase();
        }
        return name;
      }
      /** @internal */
      ondeclaration(start2, endIndex) {
        this.endIndex = endIndex;
        const value2 = this.getSlice(start2, endIndex);
        if (this.cbs.onprocessinginstruction) {
          const name = this.getInstructionName(value2);
          this.cbs.onprocessinginstruction(`!${name}`, `!${value2}`);
        }
        this.startIndex = endIndex + 1;
      }
      /** @internal */
      onprocessinginstruction(start2, endIndex) {
        this.endIndex = endIndex;
        const value2 = this.getSlice(start2, endIndex);
        if (this.cbs.onprocessinginstruction) {
          const name = this.getInstructionName(value2);
          this.cbs.onprocessinginstruction(`?${name}`, `?${value2}`);
        }
        this.startIndex = endIndex + 1;
      }
      /** @internal */
      oncomment(start2, endIndex, offset2) {
        var _a2, _b2, _c, _d;
        this.endIndex = endIndex;
        (_b2 = (_a2 = this.cbs).oncomment) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, this.getSlice(start2, endIndex - offset2));
        (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);
        this.startIndex = endIndex + 1;
      }
      /** @internal */
      oncdata(start2, endIndex, offset2) {
        var _a2, _b2, _c, _d, _e, _f, _g, _h, _j, _k;
        this.endIndex = endIndex;
        const value2 = this.getSlice(start2, endIndex - offset2);
        if (!this.htmlMode || this.options.recognizeCDATA) {
          (_b2 = (_a2 = this.cbs).oncdatastart) === null || _b2 === void 0 ? void 0 : _b2.call(_a2);
          (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value2);
          (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);
        } else {
          (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value2}]]`);
          (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);
        }
        this.startIndex = endIndex + 1;
      }
      /** @internal */
      onend() {
        var _a2, _b2;
        if (this.cbs.onclosetag) {
          this.endIndex = this.startIndex;
          for (let index2 = 0; index2 < this.stack.length; index2++) {
            this.cbs.onclosetag(this.stack[index2], true);
          }
        }
        (_b2 = (_a2 = this.cbs).onend) === null || _b2 === void 0 ? void 0 : _b2.call(_a2);
      }
      /**
       * Resets the parser to a blank state, ready to parse a new HTML document
       */
      reset() {
        var _a2, _b2, _c, _d;
        (_b2 = (_a2 = this.cbs).onreset) === null || _b2 === void 0 ? void 0 : _b2.call(_a2);
        this.tokenizer.reset();
        this.tagname = "";
        this.attribname = "";
        this.attribs = null;
        this.stack.length = 0;
        this.startIndex = 0;
        this.endIndex = 0;
        (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);
        this.buffers.length = 0;
        this.foreignContext.length = 0;
        this.foreignContext.unshift(!this.htmlMode);
        this.bufferOffset = 0;
        this.writeIndex = 0;
        this.ended = false;
      }
      /**
       * Resets the parser, then parses a complete document and
       * pushes it to the handler.
       *
       * @param data Document to parse.
       */
      parseComplete(data2) {
        this.reset();
        this.end(data2);
      }
      getSlice(start2, end2) {
        while (start2 - this.bufferOffset >= this.buffers[0].length) {
          this.shiftBuffer();
        }
        let slice2 = this.buffers[0].slice(start2 - this.bufferOffset, end2 - this.bufferOffset);
        while (end2 - this.bufferOffset > this.buffers[0].length) {
          this.shiftBuffer();
          slice2 += this.buffers[0].slice(0, end2 - this.bufferOffset);
        }
        return slice2;
      }
      shiftBuffer() {
        this.bufferOffset += this.buffers[0].length;
        this.writeIndex--;
        this.buffers.shift();
      }
      /**
       * Parses a chunk of data and calls the corresponding callbacks.
       *
       * @param chunk Chunk to parse.
       */
      write(chunk3) {
        var _a2, _b2;
        if (this.ended) {
          (_b2 = (_a2 = this.cbs).onerror) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, new Error(".write() after done!"));
          return;
        }
        this.buffers.push(chunk3);
        if (this.tokenizer.running) {
          this.tokenizer.write(chunk3);
          this.writeIndex++;
        }
      }
      /**
       * Parses the end of the buffer and clears the stack, calls onend.
       *
       * @param chunk Optional final chunk to parse.
       */
      end(chunk3) {
        var _a2, _b2;
        if (this.ended) {
          (_b2 = (_a2 = this.cbs).onerror) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, new Error(".end() after done!"));
          return;
        }
        if (chunk3)
          this.write(chunk3);
        this.ended = true;
        this.tokenizer.end();
      }
      /**
       * Pauses parsing. The parser won't emit events until `resume` is called.
       */
      pause() {
        this.tokenizer.pause();
      }
      /**
       * Resumes parsing after `pause` was called.
       */
      resume() {
        this.tokenizer.resume();
        while (this.tokenizer.running && this.writeIndex < this.buffers.length) {
          this.tokenizer.write(this.buffers[this.writeIndex++]);
        }
        if (this.ended)
          this.tokenizer.end();
      }
      /**
       * Alias of `write`, for backwards compatibility.
       *
       * @param chunk Chunk to parse.
       * @deprecated
       */
      parseChunk(chunk3) {
        this.write(chunk3);
      }
      /**
       * Alias of `end`, for backwards compatibility.
       *
       * @param chunk Optional final chunk to parse.
       * @deprecated
       */
      done(chunk3) {
        this.end(chunk3);
      }
    };
    exports.Parser = Parser;
  }
});

// ../../node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/commonjs/index.js
var require_commonjs4 = __commonJS({
  "../../node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/commonjs/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || /* @__PURE__ */ (function() {
      var ownKeys2 = function(o5) {
        ownKeys2 = Object.getOwnPropertyNames || function(o6) {
          var ar = [];
          for (var k3 in o6) if (Object.prototype.hasOwnProperty.call(o6, k3)) ar[ar.length] = k3;
          return ar;
        };
        return ownKeys2(o5);
      };
      return function(mod3) {
        if (mod3 && mod3.__esModule) return mod3;
        var result = {};
        if (mod3 != null) {
          for (var k3 = ownKeys2(mod3), i5 = 0; i5 < k3.length; i5++) if (k3[i5] !== "default") __createBinding2(result, mod3, k3[i5]);
        }
        __setModuleDefault2(result, mod3);
        return result;
      };
    })();
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DomUtils = exports.getFeed = exports.ElementType = exports.QuoteType = exports.Tokenizer = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;
    exports.parseDocument = parseDocument;
    exports.parseDOM = parseDOM;
    exports.createDocumentStream = createDocumentStream;
    exports.createDomStream = createDomStream;
    exports.parseFeed = parseFeed;
    var Parser_js_1 = require_Parser3();
    var Parser_js_2 = require_Parser3();
    Object.defineProperty(exports, "Parser", { enumerable: true, get: function() {
      return Parser_js_2.Parser;
    } });
    var domhandler_1 = require_lib4();
    var domhandler_2 = require_lib4();
    Object.defineProperty(exports, "DomHandler", { enumerable: true, get: function() {
      return domhandler_2.DomHandler;
    } });
    Object.defineProperty(exports, "DefaultHandler", { enumerable: true, get: function() {
      return domhandler_2.DomHandler;
    } });
    function parseDocument(data2, options) {
      const handler = new domhandler_1.DomHandler(void 0, options);
      new Parser_js_1.Parser(handler, options).end(data2);
      return handler.root;
    }
    function parseDOM(data2, options) {
      return parseDocument(data2, options).children;
    }
    function createDocumentStream(callback, options, elementCallback) {
      const handler = new domhandler_1.DomHandler((error) => callback(error, handler.root), options, elementCallback);
      return new Parser_js_1.Parser(handler, options);
    }
    function createDomStream(callback, options, elementCallback) {
      const handler = new domhandler_1.DomHandler(callback, options, elementCallback);
      return new Parser_js_1.Parser(handler, options);
    }
    var Tokenizer_js_1 = require_Tokenizer2();
    Object.defineProperty(exports, "Tokenizer", { enumerable: true, get: function() {
      return __importDefault2(Tokenizer_js_1).default;
    } });
    Object.defineProperty(exports, "QuoteType", { enumerable: true, get: function() {
      return Tokenizer_js_1.QuoteType;
    } });
    exports.ElementType = __importStar2(require_lib3());
    var domutils_1 = require_lib7();
    var domutils_2 = require_lib7();
    Object.defineProperty(exports, "getFeed", { enumerable: true, get: function() {
      return domutils_2.getFeed;
    } });
    var parseFeedDefaultOptions = { xmlMode: true };
    function parseFeed(feed, options = parseFeedDefaultOptions) {
      return (0, domutils_1.getFeed)(parseDOM(feed, options));
    }
    exports.DomUtils = __importStar2(require_lib7());
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/api/attributes.js
var require_attributes5 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/api/attributes.js"(exports) {
    "use strict";
    var _a2;
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.attr = attr;
    exports.prop = prop;
    exports.data = data2;
    exports.val = val;
    exports.removeAttr = removeAttr;
    exports.hasClass = hasClass;
    exports.addClass = addClass;
    exports.removeClass = removeClass;
    exports.toggleClass = toggleClass;
    var static_js_1 = require_static2();
    var utils_js_1 = require_utils19();
    var domhandler_1 = require_lib4();
    var domutils_1 = require_lib7();
    var htmlparser2_1 = require_commonjs4();
    var hasOwn = (
      // @ts-expect-error `hasOwn` is a standard object method
      (_a2 = Object.hasOwn) !== null && _a2 !== void 0 ? _a2 : ((object, prop2) => Object.prototype.hasOwnProperty.call(object, prop2))
    );
    var rspace = /\s+/;
    var dataAttrPrefix = "data-";
    var rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i;
    var rbrace = /^{[^]*}$|^\[[^]*]$/;
    function getAttr(elem, name, xmlMode) {
      var _a3;
      if (!elem || !(0, domhandler_1.isTag)(elem))
        return void 0;
      (_a3 = elem.attribs) !== null && _a3 !== void 0 ? _a3 : elem.attribs = {};
      if (!name) {
        return elem.attribs;
      }
      if (hasOwn(elem.attribs, name)) {
        return !xmlMode && rboolean.test(name) ? name : elem.attribs[name];
      }
      if (elem.name === "option" && name === "value") {
        return (0, static_js_1.text)(elem.children);
      }
      if (elem.name === "input" && (elem.attribs["type"] === "radio" || elem.attribs["type"] === "checkbox") && name === "value") {
        return "on";
      }
      return void 0;
    }
    function setAttr(el, name, value2) {
      if (value2 === null) {
        removeAttribute(el, name);
      } else {
        el.attribs[name] = `${value2}`;
      }
    }
    function attr(name, value2) {
      if (typeof name === "object" || value2 !== void 0) {
        if (typeof value2 === "function") {
          if (typeof name !== "string") {
            {
              throw new Error("Bad combination of arguments.");
            }
          }
          return (0, utils_js_1.domEach)(this, (el, i5) => {
            if ((0, domhandler_1.isTag)(el))
              setAttr(el, name, value2.call(el, i5, el.attribs[name]));
          });
        }
        return (0, utils_js_1.domEach)(this, (el) => {
          if (!(0, domhandler_1.isTag)(el))
            return;
          if (typeof name === "object") {
            for (const objName of Object.keys(name)) {
              const objValue = name[objName];
              setAttr(el, objName, objValue);
            }
          } else {
            setAttr(el, name, value2);
          }
        });
      }
      return arguments.length > 1 ? this : getAttr(this[0], name, this.options.xmlMode);
    }
    function getProp(el, name, xmlMode) {
      return name in el ? (
        // @ts-expect-error TS doesn't like us accessing the value directly here.
        el[name]
      ) : !xmlMode && rboolean.test(name) ? getAttr(el, name, false) !== void 0 : getAttr(el, name, xmlMode);
    }
    function setProp(el, name, value2, xmlMode) {
      if (name in el) {
        el[name] = value2;
      } else {
        setAttr(el, name, !xmlMode && rboolean.test(name) ? value2 ? "" : null : `${value2}`);
      }
    }
    function prop(name, value2) {
      var _a3;
      if (typeof name === "string" && value2 === void 0) {
        const el = this[0];
        if (!el)
          return void 0;
        switch (name) {
          case "style": {
            const property = this.css();
            const keys2 = Object.keys(property);
            for (let i5 = 0; i5 < keys2.length; i5++) {
              property[i5] = keys2[i5];
            }
            property.length = keys2.length;
            return property;
          }
          case "tagName":
          case "nodeName": {
            if (!(0, domhandler_1.isTag)(el))
              return void 0;
            return el.name.toUpperCase();
          }
          case "href":
          case "src": {
            if (!(0, domhandler_1.isTag)(el))
              return void 0;
            const prop2 = (_a3 = el.attribs) === null || _a3 === void 0 ? void 0 : _a3[name];
            if (typeof URL !== "undefined" && (name === "href" && (el.tagName === "a" || el.tagName === "link") || name === "src" && (el.tagName === "img" || el.tagName === "iframe" || el.tagName === "audio" || el.tagName === "video" || el.tagName === "source")) && prop2 !== void 0 && this.options.baseURI) {
              return new URL(prop2, this.options.baseURI).href;
            }
            return prop2;
          }
          case "innerText": {
            return (0, domutils_1.innerText)(el);
          }
          case "textContent": {
            return (0, domutils_1.textContent)(el);
          }
          case "outerHTML": {
            if (el.type === htmlparser2_1.ElementType.Root)
              return this.html();
            return this.clone().wrap("<container />").parent().html();
          }
          case "innerHTML": {
            return this.html();
          }
          default: {
            if (!(0, domhandler_1.isTag)(el))
              return void 0;
            return getProp(el, name, this.options.xmlMode);
          }
        }
      }
      if (typeof name === "object" || value2 !== void 0) {
        if (typeof value2 === "function") {
          if (typeof name === "object") {
            throw new TypeError("Bad combination of arguments.");
          }
          return (0, utils_js_1.domEach)(this, (el, i5) => {
            if ((0, domhandler_1.isTag)(el)) {
              setProp(el, name, value2.call(el, i5, getProp(el, name, this.options.xmlMode)), this.options.xmlMode);
            }
          });
        }
        return (0, utils_js_1.domEach)(this, (el) => {
          if (!(0, domhandler_1.isTag)(el))
            return;
          if (typeof name === "object") {
            for (const key of Object.keys(name)) {
              const val2 = name[key];
              setProp(el, key, val2, this.options.xmlMode);
            }
          } else {
            setProp(el, name, value2, this.options.xmlMode);
          }
        });
      }
      return void 0;
    }
    function setData(elem, name, value2) {
      var _a3;
      (_a3 = elem.data) !== null && _a3 !== void 0 ? _a3 : elem.data = {};
      if (typeof name === "object")
        Object.assign(elem.data, name);
      else if (typeof name === "string" && value2 !== void 0) {
        elem.data[name] = value2;
      }
    }
    function readAllData(el) {
      for (const domName of Object.keys(el.attribs)) {
        if (!domName.startsWith(dataAttrPrefix)) {
          continue;
        }
        const jsName = (0, utils_js_1.camelCase)(domName.slice(dataAttrPrefix.length));
        if (!hasOwn(el.data, jsName)) {
          el.data[jsName] = parseDataValue(el.attribs[domName]);
        }
      }
      return el.data;
    }
    function readData(el, name) {
      const domName = dataAttrPrefix + (0, utils_js_1.cssCase)(name);
      const data3 = el.data;
      if (hasOwn(data3, name)) {
        return data3[name];
      }
      if (hasOwn(el.attribs, domName)) {
        return data3[name] = parseDataValue(el.attribs[domName]);
      }
      return void 0;
    }
    function parseDataValue(value2) {
      if (value2 === "null")
        return null;
      if (value2 === "true")
        return true;
      if (value2 === "false")
        return false;
      const num = Number(value2);
      if (value2 === String(num))
        return num;
      if (rbrace.test(value2)) {
        try {
          return JSON.parse(value2);
        } catch {
        }
      }
      return value2;
    }
    function data2(name, value2) {
      var _a3;
      const elem = this[0];
      if (!elem || !(0, domhandler_1.isTag)(elem))
        return;
      const dataEl = elem;
      (_a3 = dataEl.data) !== null && _a3 !== void 0 ? _a3 : dataEl.data = {};
      if (name == null) {
        return readAllData(dataEl);
      }
      if (typeof name === "object" || value2 !== void 0) {
        (0, utils_js_1.domEach)(this, (el) => {
          if ((0, domhandler_1.isTag)(el)) {
            if (typeof name === "object")
              setData(el, name);
            else
              setData(el, name, value2);
          }
        });
        return this;
      }
      return readData(dataEl, name);
    }
    function val(value2) {
      const querying = arguments.length === 0;
      const element = this[0];
      if (!element || !(0, domhandler_1.isTag)(element))
        return querying ? void 0 : this;
      switch (element.name) {
        case "textarea": {
          return this.text(value2);
        }
        case "select": {
          const option = this.find("option:selected");
          if (!querying) {
            if (this.attr("multiple") == null && typeof value2 === "object") {
              return this;
            }
            this.find("option").removeAttr("selected");
            const values = typeof value2 === "object" ? value2 : [value2];
            for (const val2 of values) {
              this.find(`option[value="${val2}"]`).attr("selected", "");
            }
            return this;
          }
          return this.attr("multiple") ? option.toArray().map((el) => (0, static_js_1.text)(el.children)) : option.attr("value");
        }
        case "button":
        case "input":
        case "option": {
          return querying ? this.attr("value") : this.attr("value", value2);
        }
      }
      return void 0;
    }
    function removeAttribute(elem, name) {
      if (!elem.attribs || !hasOwn(elem.attribs, name))
        return;
      delete elem.attribs[name];
    }
    function splitNames(names) {
      return names ? names.trim().split(rspace) : [];
    }
    function removeAttr(name) {
      const attrNames = splitNames(name);
      for (const attrName of attrNames) {
        (0, utils_js_1.domEach)(this, (elem) => {
          if ((0, domhandler_1.isTag)(elem))
            removeAttribute(elem, attrName);
        });
      }
      return this;
    }
    function hasClass(className) {
      return this.toArray().some((elem) => {
        const clazz = (0, domhandler_1.isTag)(elem) && elem.attribs["class"];
        let idx = -1;
        if (clazz && className.length > 0) {
          while ((idx = clazz.indexOf(className, idx + 1)) > -1) {
            const end2 = idx + className.length;
            if ((idx === 0 || rspace.test(clazz[idx - 1])) && (end2 === clazz.length || rspace.test(clazz[end2]))) {
              return true;
            }
          }
        }
        return false;
      });
    }
    function addClass(value2) {
      if (typeof value2 === "function") {
        return (0, utils_js_1.domEach)(this, (el, i5) => {
          if ((0, domhandler_1.isTag)(el)) {
            const className = el.attribs["class"] || "";
            addClass.call([el], value2.call(el, i5, className));
          }
        });
      }
      if (!value2 || typeof value2 !== "string")
        return this;
      const classNames = value2.split(rspace);
      const numElements = this.length;
      for (let i5 = 0; i5 < numElements; i5++) {
        const el = this[i5];
        if (!(0, domhandler_1.isTag)(el))
          continue;
        const className = getAttr(el, "class", false);
        if (className) {
          let setClass = ` ${className} `;
          for (const cn of classNames) {
            const appendClass = `${cn} `;
            if (!setClass.includes(` ${appendClass}`))
              setClass += appendClass;
          }
          setAttr(el, "class", setClass.trim());
        } else {
          setAttr(el, "class", classNames.join(" ").trim());
        }
      }
      return this;
    }
    function removeClass(name) {
      if (typeof name === "function") {
        return (0, utils_js_1.domEach)(this, (el, i5) => {
          if ((0, domhandler_1.isTag)(el)) {
            removeClass.call([el], name.call(el, i5, el.attribs["class"] || ""));
          }
        });
      }
      const classes = splitNames(name);
      const numClasses = classes.length;
      const removeAll = arguments.length === 0;
      return (0, utils_js_1.domEach)(this, (el) => {
        if (!(0, domhandler_1.isTag)(el))
          return;
        if (removeAll) {
          el.attribs["class"] = "";
        } else {
          const elClasses = splitNames(el.attribs["class"]);
          let changed = false;
          for (let j = 0; j < numClasses; j++) {
            const index2 = elClasses.indexOf(classes[j]);
            if (index2 !== -1) {
              elClasses.splice(index2, 1);
              changed = true;
              j--;
            }
          }
          if (changed) {
            el.attribs["class"] = elClasses.join(" ");
          }
        }
      });
    }
    function toggleClass(value2, stateVal) {
      if (typeof value2 === "function") {
        return (0, utils_js_1.domEach)(this, (el, i5) => {
          if ((0, domhandler_1.isTag)(el)) {
            toggleClass.call([el], value2.call(el, i5, el.attribs["class"] || "", stateVal), stateVal);
          }
        });
      }
      if (!value2 || typeof value2 !== "string")
        return this;
      const classNames = value2.split(rspace);
      const numClasses = classNames.length;
      const state = typeof stateVal === "boolean" ? stateVal ? 1 : -1 : 0;
      const numElements = this.length;
      for (let i5 = 0; i5 < numElements; i5++) {
        const el = this[i5];
        if (!(0, domhandler_1.isTag)(el))
          continue;
        const elementClasses = splitNames(el.attribs["class"]);
        for (let j = 0; j < numClasses; j++) {
          const index2 = elementClasses.indexOf(classNames[j]);
          if (state >= 0 && index2 === -1) {
            elementClasses.push(classNames[j]);
          } else if (state <= 0 && index2 !== -1) {
            elementClasses.splice(index2, 1);
          }
        }
        el.attribs["class"] = elementClasses.join(" ");
      }
      return this;
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/api/traversing.js
var require_traversing2 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/api/traversing.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || /* @__PURE__ */ (function() {
      var ownKeys2 = function(o5) {
        ownKeys2 = Object.getOwnPropertyNames || function(o6) {
          var ar = [];
          for (var k3 in o6) if (Object.prototype.hasOwnProperty.call(o6, k3)) ar[ar.length] = k3;
          return ar;
        };
        return ownKeys2(o5);
      };
      return function(mod3) {
        if (mod3 && mod3.__esModule) return mod3;
        var result = {};
        if (mod3 != null) {
          for (var k3 = ownKeys2(mod3), i5 = 0; i5 < k3.length; i5++) if (k3[i5] !== "default") __createBinding2(result, mod3, k3[i5]);
        }
        __setModuleDefault2(result, mod3);
        return result;
      };
    })();
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.children = exports.siblings = exports.prevUntil = exports.prevAll = exports.prev = exports.nextUntil = exports.nextAll = exports.next = exports.parentsUntil = exports.parents = exports.parent = void 0;
    exports.find = find;
    exports._findBySelector = _findBySelector;
    exports.closest = closest;
    exports.contents = contents;
    exports.each = each;
    exports.map = map;
    exports.filter = filter3;
    exports.filterArray = filterArray;
    exports.is = is3;
    exports.not = not2;
    exports.has = has;
    exports.first = first;
    exports.last = last2;
    exports.eq = eq;
    exports.get = get;
    exports.toArray = toArray2;
    exports.index = index2;
    exports.slice = slice2;
    exports.end = end2;
    exports.add = add2;
    exports.addBack = addBack;
    var domhandler_1 = require_lib4();
    var select = __importStar2(require_lib10());
    var utils_js_1 = require_utils19();
    var static_js_1 = require_static2();
    var domutils_1 = require_lib7();
    var reContextSelector = /^\s*(?:[+~]|:scope\b)/;
    function find(selectorOrHaystack) {
      if (!selectorOrHaystack) {
        return this._make([]);
      }
      if (typeof selectorOrHaystack !== "string") {
        const haystack = (0, utils_js_1.isCheerio)(selectorOrHaystack) ? selectorOrHaystack.toArray() : [selectorOrHaystack];
        const context = this.toArray();
        return this._make(haystack.filter((elem) => context.some((node) => (0, static_js_1.contains)(node, elem))));
      }
      return this._findBySelector(selectorOrHaystack, Number.POSITIVE_INFINITY);
    }
    function _findBySelector(selector, limit) {
      var _a2;
      const context = this.toArray();
      const elems = reContextSelector.test(selector) ? context : this.children().toArray();
      const options = {
        context,
        root: (_a2 = this._root) === null || _a2 === void 0 ? void 0 : _a2[0],
        // Pass options that are recognized by `cheerio-select`
        xmlMode: this.options.xmlMode,
        lowerCaseTags: this.options.lowerCaseTags,
        lowerCaseAttributeNames: this.options.lowerCaseAttributeNames,
        pseudos: this.options.pseudos,
        quirksMode: this.options.quirksMode
      };
      return this._make(select.select(selector, elems, options, limit));
    }
    function _getMatcher(matchMap) {
      return function(fn, ...postFns) {
        return function(selector) {
          var _a2;
          let matched = matchMap(fn, this);
          if (selector) {
            matched = filterArray(matched, selector, this.options.xmlMode, (_a2 = this._root) === null || _a2 === void 0 ? void 0 : _a2[0]);
          }
          return this._make(
            // Post processing is only necessary if there is more than one element.
            this.length > 1 && matched.length > 1 ? postFns.reduce((elems, fn2) => fn2(elems), matched) : matched
          );
        };
      };
    }
    var _matcher = _getMatcher((fn, elems) => {
      let ret = [];
      for (let i5 = 0; i5 < elems.length; i5++) {
        const value2 = fn(elems[i5]);
        if (value2.length > 0)
          ret = ret.concat(value2);
      }
      return ret;
    });
    var _singleMatcher = _getMatcher((fn, elems) => {
      const ret = [];
      for (let i5 = 0; i5 < elems.length; i5++) {
        const value2 = fn(elems[i5]);
        if (value2 !== null) {
          ret.push(value2);
        }
      }
      return ret;
    });
    function _matchUntil(nextElem, ...postFns) {
      let matches = null;
      const innerMatcher = _getMatcher((nextElem2, elems) => {
        const matched = [];
        (0, utils_js_1.domEach)(elems, (elem) => {
          for (let next; next = nextElem2(elem); elem = next) {
            if (matches === null || matches === void 0 ? void 0 : matches(next, matched.length))
              break;
            matched.push(next);
          }
        });
        return matched;
      })(nextElem, ...postFns);
      return function(selector, filterSelector) {
        matches = typeof selector === "string" ? (elem) => select.is(elem, selector, this.options) : selector ? getFilterFn(selector) : null;
        const ret = innerMatcher.call(this, filterSelector);
        matches = null;
        return ret;
      };
    }
    function _removeDuplicates(elems) {
      return elems.length > 1 ? Array.from(new Set(elems)) : elems;
    }
    exports.parent = _singleMatcher(({ parent }) => parent && !(0, domhandler_1.isDocument)(parent) ? parent : null, _removeDuplicates);
    exports.parents = _matcher(
      (elem) => {
        const matched = [];
        while (elem.parent && !(0, domhandler_1.isDocument)(elem.parent)) {
          matched.push(elem.parent);
          elem = elem.parent;
        }
        return matched;
      },
      domutils_1.uniqueSort,
      // eslint-disable-next-line unicorn/no-array-reverse
      (elems) => elems.reverse()
    );
    exports.parentsUntil = _matchUntil(
      ({ parent }) => parent && !(0, domhandler_1.isDocument)(parent) ? parent : null,
      domutils_1.uniqueSort,
      // eslint-disable-next-line unicorn/no-array-reverse
      (elems) => elems.reverse()
    );
    function closest(selector) {
      var _a2;
      const set = [];
      if (!selector) {
        return this._make(set);
      }
      const selectOpts = {
        xmlMode: this.options.xmlMode,
        root: (_a2 = this._root) === null || _a2 === void 0 ? void 0 : _a2[0]
      };
      const selectFn = typeof selector === "string" ? (elem) => select.is(elem, selector, selectOpts) : getFilterFn(selector);
      (0, utils_js_1.domEach)(this, (elem) => {
        if (elem && !(0, domhandler_1.isDocument)(elem) && !(0, domhandler_1.isTag)(elem)) {
          elem = elem.parent;
        }
        while (elem && (0, domhandler_1.isTag)(elem)) {
          if (selectFn(elem, 0)) {
            if (!set.includes(elem)) {
              set.push(elem);
            }
            break;
          }
          elem = elem.parent;
        }
      });
      return this._make(set);
    }
    exports.next = _singleMatcher((elem) => (0, domutils_1.nextElementSibling)(elem));
    exports.nextAll = _matcher((elem) => {
      const matched = [];
      while (elem.next) {
        elem = elem.next;
        if ((0, domhandler_1.isTag)(elem))
          matched.push(elem);
      }
      return matched;
    }, _removeDuplicates);
    exports.nextUntil = _matchUntil((el) => (0, domutils_1.nextElementSibling)(el), _removeDuplicates);
    exports.prev = _singleMatcher((elem) => (0, domutils_1.prevElementSibling)(elem));
    exports.prevAll = _matcher((elem) => {
      const matched = [];
      while (elem.prev) {
        elem = elem.prev;
        if ((0, domhandler_1.isTag)(elem))
          matched.push(elem);
      }
      return matched;
    }, _removeDuplicates);
    exports.prevUntil = _matchUntil((el) => (0, domutils_1.prevElementSibling)(el), _removeDuplicates);
    exports.siblings = _matcher((elem) => (0, domutils_1.getSiblings)(elem).filter((el) => (0, domhandler_1.isTag)(el) && el !== elem), domutils_1.uniqueSort);
    exports.children = _matcher((elem) => (0, domutils_1.getChildren)(elem).filter(domhandler_1.isTag), _removeDuplicates);
    function contents() {
      const elems = this.toArray().reduce((newElems, elem) => (0, domhandler_1.hasChildren)(elem) ? newElems.concat(elem.children) : newElems, []);
      return this._make(elems);
    }
    function each(fn) {
      let i5 = 0;
      const len = this.length;
      while (i5 < len && fn.call(this[i5], i5, this[i5]) !== false)
        ++i5;
      return this;
    }
    function map(fn) {
      let elems = [];
      for (let i5 = 0; i5 < this.length; i5++) {
        const el = this[i5];
        const val = fn.call(el, i5, el);
        if (val != null) {
          elems = elems.concat(val);
        }
      }
      return this._make(elems);
    }
    function getFilterFn(match) {
      if (typeof match === "function") {
        return (el, i5) => match.call(el, i5, el);
      }
      if ((0, utils_js_1.isCheerio)(match)) {
        return (el) => Array.prototype.includes.call(match, el);
      }
      return function(el) {
        return match === el;
      };
    }
    function filter3(match) {
      var _a2;
      return this._make(filterArray(this.toArray(), match, this.options.xmlMode, (_a2 = this._root) === null || _a2 === void 0 ? void 0 : _a2[0]));
    }
    function filterArray(nodes, match, xmlMode, root) {
      return typeof match === "string" ? select.filter(match, nodes, { xmlMode, root }) : nodes.filter(getFilterFn(match));
    }
    function is3(selector) {
      const nodes = this.toArray();
      return typeof selector === "string" ? select.some(nodes.filter(domhandler_1.isTag), selector, this.options) : selector ? nodes.some(getFilterFn(selector)) : false;
    }
    function not2(match) {
      let nodes = this.toArray();
      if (typeof match === "string") {
        const matches = new Set(select.filter(match, nodes, this.options));
        nodes = nodes.filter((el) => !matches.has(el));
      } else {
        const filterFn = getFilterFn(match);
        nodes = nodes.filter((el, i5) => !filterFn(el, i5));
      }
      return this._make(nodes);
    }
    function has(selectorOrHaystack) {
      return this.filter(typeof selectorOrHaystack === "string" ? (
        // Using the `:has` selector here short-circuits searches.
        `:has(${selectorOrHaystack})`
      ) : (_, el) => this._make(el).find(selectorOrHaystack).length > 0);
    }
    function first() {
      return this.length > 1 ? this._make(this[0]) : this;
    }
    function last2() {
      return this.length > 0 ? this._make(this[this.length - 1]) : this;
    }
    function eq(i5) {
      var _a2;
      i5 = +i5;
      if (i5 === 0 && this.length <= 1)
        return this;
      if (i5 < 0)
        i5 = this.length + i5;
      return this._make((_a2 = this[i5]) !== null && _a2 !== void 0 ? _a2 : []);
    }
    function get(i5) {
      if (i5 == null) {
        return this.toArray();
      }
      return this[i5 < 0 ? this.length + i5 : i5];
    }
    function toArray2() {
      return Array.prototype.slice.call(this);
    }
    function index2(selectorOrNeedle) {
      let $haystack;
      let needle;
      if (selectorOrNeedle == null) {
        $haystack = this.parent().children();
        needle = this[0];
      } else if (typeof selectorOrNeedle === "string") {
        $haystack = this._make(selectorOrNeedle);
        needle = this[0];
      } else {
        $haystack = this;
        needle = (0, utils_js_1.isCheerio)(selectorOrNeedle) ? selectorOrNeedle[0] : selectorOrNeedle;
      }
      return Array.prototype.indexOf.call($haystack, needle);
    }
    function slice2(start2, end3) {
      return this._make(Array.prototype.slice.call(this, start2, end3));
    }
    function end2() {
      var _a2;
      return (_a2 = this.prevObject) !== null && _a2 !== void 0 ? _a2 : this._make([]);
    }
    function add2(other, context) {
      const selection = this._make(other, context);
      const contents2 = (0, domutils_1.uniqueSort)([...this.get(), ...selection.get()]);
      return this._make(contents2);
    }
    function addBack(selector) {
      return this.prevObject ? this.add(selector ? this.prevObject.filter(selector) : this.prevObject) : this;
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/parse.js
var require_parse7 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/parse.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getParse = getParse;
    exports.update = update;
    var domutils_1 = require_lib7();
    var domhandler_1 = require_lib4();
    function getParse(parser) {
      return function parse3(content, options, isDocument, context) {
        if (typeof Buffer !== "undefined" && Buffer.isBuffer(content)) {
          content = content.toString();
        }
        if (typeof content === "string") {
          return parser(content, options, isDocument, context);
        }
        const doc = content;
        if (!Array.isArray(doc) && (0, domhandler_1.isDocument)(doc)) {
          return doc;
        }
        const root = new domhandler_1.Document([]);
        update(doc, root);
        return root;
      };
    }
    function update(newChilds, parent) {
      const arr = Array.isArray(newChilds) ? newChilds : [newChilds];
      if (parent) {
        parent.children = arr;
      } else {
        parent = null;
      }
      for (let i5 = 0; i5 < arr.length; i5++) {
        const node = arr[i5];
        if (node.parent && node.parent.children !== arr) {
          (0, domutils_1.removeElement)(node);
        }
        if (parent) {
          node.prev = arr[i5 - 1] || null;
          node.next = arr[i5 + 1] || null;
        } else {
          node.prev = node.next = null;
        }
        node.parent = parent;
      }
      return parent;
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/api/manipulation.js
var require_manipulation3 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/api/manipulation.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.wrapInner = exports.wrap = exports.prepend = exports.append = void 0;
    exports._makeDomArray = _makeDomArray;
    exports.appendTo = appendTo;
    exports.prependTo = prependTo;
    exports.unwrap = unwrap;
    exports.wrapAll = wrapAll;
    exports.after = after;
    exports.insertAfter = insertAfter;
    exports.before = before;
    exports.insertBefore = insertBefore2;
    exports.remove = remove;
    exports.replaceWith = replaceWith;
    exports.empty = empty2;
    exports.html = html;
    exports.toString = toString5;
    exports.text = text;
    exports.clone = clone;
    var domhandler_1 = require_lib4();
    var parse_js_1 = require_parse7();
    var static_js_1 = require_static2();
    var utils_js_1 = require_utils19();
    var domutils_1 = require_lib7();
    var htmlparser2_1 = require_commonjs4();
    function _makeDomArray(elem, clone2) {
      if (elem == null) {
        return [];
      }
      if (typeof elem === "string") {
        return this._parse(elem, this.options, false, null).children.slice(0);
      }
      if ("length" in elem) {
        if (elem.length === 1) {
          return this._makeDomArray(elem[0], clone2);
        }
        const result = [];
        for (let i5 = 0; i5 < elem.length; i5++) {
          const el = elem[i5];
          if (typeof el === "object") {
            if (el == null) {
              continue;
            }
            if (!("length" in el)) {
              result.push(clone2 ? (0, domhandler_1.cloneNode)(el, true) : el);
              continue;
            }
          }
          result.push(...this._makeDomArray(el, clone2));
        }
        return result;
      }
      return [clone2 ? (0, domhandler_1.cloneNode)(elem, true) : elem];
    }
    function _insert(concatenator) {
      return function(...elems) {
        const lastIdx = this.length - 1;
        return (0, utils_js_1.domEach)(this, (el, i5) => {
          if (!(0, domhandler_1.hasChildren)(el))
            return;
          const domSrc = typeof elems[0] === "function" ? elems[0].call(el, i5, this._render(el.children)) : elems;
          const dom = this._makeDomArray(domSrc, i5 < lastIdx);
          concatenator(dom, el.children, el);
        });
      };
    }
    function uniqueSplice(array, spliceIdx, spliceCount, newElems, parent) {
      var _a2, _b2;
      const spliceArgs = [
        spliceIdx,
        spliceCount,
        ...newElems
      ];
      const prev = spliceIdx === 0 ? null : array[spliceIdx - 1];
      const next = spliceIdx + spliceCount >= array.length ? null : array[spliceIdx + spliceCount];
      for (let idx = 0; idx < newElems.length; ++idx) {
        const node = newElems[idx];
        const oldParent = node.parent;
        if (oldParent) {
          const oldSiblings = oldParent.children;
          const prevIdx = oldSiblings.indexOf(node);
          if (prevIdx !== -1) {
            oldParent.children.splice(prevIdx, 1);
            if (parent === oldParent && spliceIdx > prevIdx) {
              spliceArgs[0]--;
            }
          }
        }
        node.parent = parent;
        if (node.prev) {
          node.prev.next = (_a2 = node.next) !== null && _a2 !== void 0 ? _a2 : null;
        }
        if (node.next) {
          node.next.prev = (_b2 = node.prev) !== null && _b2 !== void 0 ? _b2 : null;
        }
        node.prev = idx === 0 ? prev : newElems[idx - 1];
        node.next = idx === newElems.length - 1 ? next : newElems[idx + 1];
      }
      if (prev) {
        prev.next = newElems[0];
      }
      if (next) {
        next.prev = newElems[newElems.length - 1];
      }
      return array.splice(...spliceArgs);
    }
    function appendTo(target) {
      const appendTarget = (0, utils_js_1.isCheerio)(target) ? target : this._make(target);
      appendTarget.append(this);
      return this;
    }
    function prependTo(target) {
      const prependTarget = (0, utils_js_1.isCheerio)(target) ? target : this._make(target);
      prependTarget.prepend(this);
      return this;
    }
    exports.append = _insert((dom, children, parent) => {
      uniqueSplice(children, children.length, 0, dom, parent);
    });
    exports.prepend = _insert((dom, children, parent) => {
      uniqueSplice(children, 0, 0, dom, parent);
    });
    function _wrap(insert2) {
      return function(wrapper) {
        const lastIdx = this.length - 1;
        const lastParent = this.parents().last();
        for (let i5 = 0; i5 < this.length; i5++) {
          const el = this[i5];
          const wrap = typeof wrapper === "function" ? wrapper.call(el, i5, el) : typeof wrapper === "string" && !(0, utils_js_1.isHtml)(wrapper) ? lastParent.find(wrapper).clone() : wrapper;
          const [wrapperDom] = this._makeDomArray(wrap, i5 < lastIdx);
          if (!wrapperDom || !(0, domhandler_1.hasChildren)(wrapperDom))
            continue;
          let elInsertLocation = wrapperDom;
          let j = 0;
          while (j < elInsertLocation.children.length) {
            const child = elInsertLocation.children[j];
            if ((0, domhandler_1.isTag)(child)) {
              elInsertLocation = child;
              j = 0;
            } else {
              j++;
            }
          }
          insert2(el, elInsertLocation, [wrapperDom]);
        }
        return this;
      };
    }
    exports.wrap = _wrap((el, elInsertLocation, wrapperDom) => {
      const { parent } = el;
      if (!parent)
        return;
      const siblings = parent.children;
      const index2 = siblings.indexOf(el);
      (0, parse_js_1.update)([el], elInsertLocation);
      uniqueSplice(siblings, index2, 0, wrapperDom, parent);
    });
    exports.wrapInner = _wrap((el, elInsertLocation, wrapperDom) => {
      if (!(0, domhandler_1.hasChildren)(el))
        return;
      (0, parse_js_1.update)(el.children, elInsertLocation);
      (0, parse_js_1.update)(wrapperDom, el);
    });
    function unwrap(selector) {
      this.parent(selector).not("body").each((_, el) => {
        this._make(el).replaceWith(el.children);
      });
      return this;
    }
    function wrapAll(wrapper) {
      const el = this[0];
      if (el) {
        const wrap = this._make(typeof wrapper === "function" ? wrapper.call(el, 0, el) : wrapper).insertBefore(el);
        let elInsertLocation;
        for (let i5 = 0; i5 < wrap.length; i5++) {
          if (wrap[i5].type === htmlparser2_1.ElementType.Tag) {
            elInsertLocation = wrap[i5];
          }
        }
        let j = 0;
        while (elInsertLocation && j < elInsertLocation.children.length) {
          const child = elInsertLocation.children[j];
          if (child.type === htmlparser2_1.ElementType.Tag) {
            elInsertLocation = child;
            j = 0;
          } else {
            j++;
          }
        }
        if (elInsertLocation)
          this._make(elInsertLocation).append(this);
      }
      return this;
    }
    function after(...elems) {
      const lastIdx = this.length - 1;
      return (0, utils_js_1.domEach)(this, (el, i5) => {
        if (!(0, domhandler_1.hasChildren)(el) || !el.parent) {
          return;
        }
        const siblings = el.parent.children;
        const index2 = siblings.indexOf(el);
        if (index2 === -1)
          return;
        const domSrc = typeof elems[0] === "function" ? elems[0].call(el, i5, this._render(el.children)) : elems;
        const dom = this._makeDomArray(domSrc, i5 < lastIdx);
        uniqueSplice(siblings, index2 + 1, 0, dom, el.parent);
      });
    }
    function insertAfter(target) {
      if (typeof target === "string") {
        target = this._make(target);
      }
      this.remove();
      const clones = [];
      for (const el of this._makeDomArray(target)) {
        const clonedSelf = this.clone().toArray();
        const { parent } = el;
        if (!parent) {
          continue;
        }
        const siblings = parent.children;
        const index2 = siblings.indexOf(el);
        if (index2 === -1)
          continue;
        uniqueSplice(siblings, index2 + 1, 0, clonedSelf, parent);
        clones.push(...clonedSelf);
      }
      return this._make(clones);
    }
    function before(...elems) {
      const lastIdx = this.length - 1;
      return (0, utils_js_1.domEach)(this, (el, i5) => {
        if (!(0, domhandler_1.hasChildren)(el) || !el.parent) {
          return;
        }
        const siblings = el.parent.children;
        const index2 = siblings.indexOf(el);
        if (index2 === -1)
          return;
        const domSrc = typeof elems[0] === "function" ? elems[0].call(el, i5, this._render(el.children)) : elems;
        const dom = this._makeDomArray(domSrc, i5 < lastIdx);
        uniqueSplice(siblings, index2, 0, dom, el.parent);
      });
    }
    function insertBefore2(target) {
      const targetArr = this._make(target);
      this.remove();
      const clones = [];
      (0, utils_js_1.domEach)(targetArr, (el) => {
        const clonedSelf = this.clone().toArray();
        const { parent } = el;
        if (!parent) {
          return;
        }
        const siblings = parent.children;
        const index2 = siblings.indexOf(el);
        if (index2 === -1)
          return;
        uniqueSplice(siblings, index2, 0, clonedSelf, parent);
        clones.push(...clonedSelf);
      });
      return this._make(clones);
    }
    function remove(selector) {
      const elems = selector ? this.filter(selector) : this;
      (0, utils_js_1.domEach)(elems, (el) => {
        (0, domutils_1.removeElement)(el);
        el.prev = el.next = el.parent = null;
      });
      return this;
    }
    function replaceWith(content) {
      return (0, utils_js_1.domEach)(this, (el, i5) => {
        const { parent } = el;
        if (!parent) {
          return;
        }
        const siblings = parent.children;
        const cont = typeof content === "function" ? content.call(el, i5, el) : content;
        const dom = this._makeDomArray(cont);
        (0, parse_js_1.update)(dom, null);
        const index2 = siblings.indexOf(el);
        uniqueSplice(siblings, index2, 1, dom, parent);
        if (!dom.includes(el)) {
          el.parent = el.prev = el.next = null;
        }
      });
    }
    function empty2() {
      return (0, utils_js_1.domEach)(this, (el) => {
        if (!(0, domhandler_1.hasChildren)(el))
          return;
        for (const child of el.children) {
          child.next = child.prev = child.parent = null;
        }
        el.children.length = 0;
      });
    }
    function html(str) {
      if (str === void 0) {
        const el = this[0];
        if (!el || !(0, domhandler_1.hasChildren)(el))
          return null;
        return this._render(el.children);
      }
      return (0, utils_js_1.domEach)(this, (el) => {
        if (!(0, domhandler_1.hasChildren)(el))
          return;
        for (const child of el.children) {
          child.next = child.prev = child.parent = null;
        }
        const content = (0, utils_js_1.isCheerio)(str) ? str.toArray() : this._parse(`${str}`, this.options, false, el).children;
        (0, parse_js_1.update)(content, el);
      });
    }
    function toString5() {
      return this._render(this);
    }
    function text(str) {
      if (str === void 0) {
        return (0, static_js_1.text)(this);
      }
      if (typeof str === "function") {
        return (0, utils_js_1.domEach)(this, (el, i5) => this._make(el).text(str.call(el, i5, (0, static_js_1.text)([el]))));
      }
      return (0, utils_js_1.domEach)(this, (el) => {
        if (!(0, domhandler_1.hasChildren)(el))
          return;
        for (const child of el.children) {
          child.next = child.prev = child.parent = null;
        }
        const textNode = new domhandler_1.Text(`${str}`);
        (0, parse_js_1.update)(textNode, el);
      });
    }
    function clone() {
      const clone2 = Array.prototype.map.call(this.get(), (el) => (0, domhandler_1.cloneNode)(el, true));
      const root = new domhandler_1.Document(clone2);
      for (const node of clone2) {
        node.parent = root;
      }
      return this._make(clone2);
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/api/css.js
var require_css2 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/api/css.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.css = css;
    var utils_js_1 = require_utils19();
    var domhandler_1 = require_lib4();
    function css(prop, val) {
      if (prop != null && val != null || // When `prop` is a "plain" object
      typeof prop === "object" && !Array.isArray(prop)) {
        return (0, utils_js_1.domEach)(this, (el, i5) => {
          if ((0, domhandler_1.isTag)(el)) {
            setCss(el, prop, val, i5);
          }
        });
      }
      if (this.length === 0) {
        return void 0;
      }
      return getCss(this[0], prop);
    }
    function setCss(el, prop, value2, idx) {
      if (typeof prop === "string") {
        const styles7 = getCss(el);
        const val = typeof value2 === "function" ? value2.call(el, idx, styles7[prop]) : value2;
        if (val === "") {
          delete styles7[prop];
        } else if (val != null) {
          styles7[prop] = val;
        }
        el.attribs["style"] = stringify(styles7);
      } else if (typeof prop === "object") {
        const keys2 = Object.keys(prop);
        for (let i5 = 0; i5 < keys2.length; i5++) {
          const k3 = keys2[i5];
          setCss(el, k3, prop[k3], i5);
        }
      }
    }
    function getCss(el, prop) {
      if (!el || !(0, domhandler_1.isTag)(el))
        return;
      const styles7 = parse3(el.attribs["style"]);
      if (typeof prop === "string") {
        return styles7[prop];
      }
      if (Array.isArray(prop)) {
        const newStyles = {};
        for (const item of prop) {
          if (styles7[item] != null) {
            newStyles[item] = styles7[item];
          }
        }
        return newStyles;
      }
      return styles7;
    }
    function stringify(obj) {
      return Object.keys(obj).reduce((str, prop) => `${str}${str ? " " : ""}${prop}: ${obj[prop]};`, "");
    }
    function parse3(styles7) {
      styles7 = (styles7 || "").trim();
      if (!styles7)
        return {};
      const obj = {};
      let key;
      for (const str of styles7.split(";")) {
        const n6 = str.indexOf(":");
        if (n6 < 1 || n6 === str.length - 1) {
          const trimmed = str.trimEnd();
          if (trimmed.length > 0 && key !== void 0) {
            obj[key] += `;${trimmed}`;
          }
        } else {
          key = str.slice(0, n6).trim();
          obj[key] = str.slice(n6 + 1).trim();
        }
      }
      return obj;
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/api/forms.js
var require_forms2 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/api/forms.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.serialize = serialize;
    exports.serializeArray = serializeArray2;
    var domhandler_1 = require_lib4();
    var submittableSelector = "input,select,textarea,keygen";
    var r20 = /%20/g;
    var rCRLF = /\r?\n/g;
    function serialize() {
      const arr = this.serializeArray();
      const retArr = arr.map((data2) => `${encodeURIComponent(data2.name)}=${encodeURIComponent(data2.value)}`);
      return retArr.join("&").replace(r20, "+");
    }
    function serializeArray2() {
      return this.map((_, elem) => {
        const $elem = this._make(elem);
        if ((0, domhandler_1.isTag)(elem) && elem.name === "form") {
          return $elem.find(submittableSelector).toArray();
        }
        return $elem.filter(submittableSelector).toArray();
      }).filter(
        // Verify elements have a name (`attr.name`) and are not disabled (`:enabled`)
        '[name!=""]:enabled:not(:submit, :button, :image, :reset, :file):matches([checked], :not(:checkbox, :radio))'
      ).map((_, elem) => {
        var _a2;
        const $elem = this._make(elem);
        const name = $elem.attr("name");
        const value2 = (_a2 = $elem.val()) !== null && _a2 !== void 0 ? _a2 : "";
        if (Array.isArray(value2)) {
          return value2.map((val) => (
            /*
             * We trim replace any line endings (e.g. `\r` or `\r\n` with `\r\n`) to guarantee consistency across platforms
             * These can occur inside of `<textarea>'s`
             */
            { name, value: val.replace(rCRLF, "\r\n") }
          ));
        }
        return { name, value: value2.replace(rCRLF, "\r\n") };
      }).toArray();
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/api/extract.js
var require_extract = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/api/extract.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.extract = extract;
    function getExtractDescr(descr) {
      var _a2;
      if (typeof descr === "string") {
        return { selector: descr, value: "textContent" };
      }
      return {
        selector: descr.selector,
        value: (_a2 = descr.value) !== null && _a2 !== void 0 ? _a2 : "textContent"
      };
    }
    function extract(map) {
      const ret = {};
      for (const key in map) {
        const descr = map[key];
        const isArray3 = Array.isArray(descr);
        const { selector, value: value2 } = getExtractDescr(isArray3 ? descr[0] : descr);
        const fn = typeof value2 === "function" ? value2 : typeof value2 === "string" ? (el) => this._make(el).prop(value2) : (el) => this._make(el).extract(value2);
        if (isArray3) {
          ret[key] = this._findBySelector(selector, Number.POSITIVE_INFINITY).map((_, el) => fn(el, key, ret)).get();
        } else {
          const $ = this._findBySelector(selector, 1);
          ret[key] = $.length > 0 ? fn($[0], key, ret) : void 0;
        }
      }
      return ret;
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/cheerio.js
var require_cheerio3 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/cheerio.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || /* @__PURE__ */ (function() {
      var ownKeys2 = function(o5) {
        ownKeys2 = Object.getOwnPropertyNames || function(o6) {
          var ar = [];
          for (var k3 in o6) if (Object.prototype.hasOwnProperty.call(o6, k3)) ar[ar.length] = k3;
          return ar;
        };
        return ownKeys2(o5);
      };
      return function(mod3) {
        if (mod3 && mod3.__esModule) return mod3;
        var result = {};
        if (mod3 != null) {
          for (var k3 = ownKeys2(mod3), i5 = 0; i5 < k3.length; i5++) if (k3[i5] !== "default") __createBinding2(result, mod3, k3[i5]);
        }
        __setModuleDefault2(result, mod3);
        return result;
      };
    })();
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Cheerio = void 0;
    var Attributes = __importStar2(require_attributes5());
    var Traversing = __importStar2(require_traversing2());
    var Manipulation = __importStar2(require_manipulation3());
    var Css = __importStar2(require_css2());
    var Forms = __importStar2(require_forms2());
    var Extract = __importStar2(require_extract());
    var Cheerio = class {
      /**
       * Instance of cheerio. Methods are specified in the modules. Usage of this
       * constructor is not recommended. Please use `$.load` instead.
       *
       * @private
       * @param elements - The new selection.
       * @param root - Sets the root node.
       * @param options - Options for the instance.
       */
      constructor(elements, root, options) {
        this.length = 0;
        this.options = options;
        this._root = root;
        if (elements) {
          for (let idx = 0; idx < elements.length; idx++) {
            this[idx] = elements[idx];
          }
          this.length = elements.length;
        }
      }
    };
    exports.Cheerio = Cheerio;
    Cheerio.prototype.cheerio = "[cheerio object]";
    Cheerio.prototype.splice = Array.prototype.splice;
    Cheerio.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];
    Object.assign(Cheerio.prototype, Attributes, Traversing, Manipulation, Css, Forms, Extract);
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/load.js
var require_load2 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/load.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || /* @__PURE__ */ (function() {
      var ownKeys2 = function(o5) {
        ownKeys2 = Object.getOwnPropertyNames || function(o6) {
          var ar = [];
          for (var k3 in o6) if (Object.prototype.hasOwnProperty.call(o6, k3)) ar[ar.length] = k3;
          return ar;
        };
        return ownKeys2(o5);
      };
      return function(mod3) {
        if (mod3 && mod3.__esModule) return mod3;
        var result = {};
        if (mod3 != null) {
          for (var k3 = ownKeys2(mod3), i5 = 0; i5 < k3.length; i5++) if (k3[i5] !== "default") __createBinding2(result, mod3, k3[i5]);
        }
        __setModuleDefault2(result, mod3);
        return result;
      };
    })();
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getLoad = getLoad;
    var options_js_1 = require_options2();
    var staticMethods = __importStar2(require_static2());
    var cheerio_js_1 = require_cheerio3();
    var utils_js_1 = require_utils19();
    var htmlparser2_1 = require_commonjs4();
    function getLoad(parse3, render3) {
      return function load(content, options, isDocument = true) {
        if (content == null) {
          throw new Error("cheerio.load() expects a string");
        }
        const internalOpts = (0, options_js_1.flattenOptions)(options);
        const initialRoot = parse3(content, internalOpts, isDocument, null);
        class LoadedCheerio extends cheerio_js_1.Cheerio {
          _make(selector, context) {
            const cheerio = initialize2(selector, context);
            cheerio.prevObject = this;
            return cheerio;
          }
          _parse(content2, options2, isDocument2, context) {
            return parse3(content2, options2, isDocument2, context);
          }
          _render(dom) {
            return render3(dom, this.options);
          }
        }
        function initialize2(selector, context, root = initialRoot, opts2) {
          if (selector && (0, utils_js_1.isCheerio)(selector))
            return selector;
          const options2 = (0, options_js_1.flattenOptions)(opts2, internalOpts);
          const r4 = typeof root === "string" ? [parse3(root, options2, false, null)] : "length" in root ? root : [root];
          const rootInstance = (0, utils_js_1.isCheerio)(r4) ? r4 : new LoadedCheerio(r4, null, options2);
          rootInstance._root = rootInstance;
          if (!selector) {
            return new LoadedCheerio(void 0, rootInstance, options2);
          }
          const elements = typeof selector === "string" && (0, utils_js_1.isHtml)(selector) ? (
            // $(<html>)
            parse3(selector, options2, false, null).children
          ) : isNode(selector) ? (
            // $(dom)
            [selector]
          ) : Array.isArray(selector) ? (
            // $([dom])
            selector
          ) : void 0;
          const instance = new LoadedCheerio(elements, rootInstance, options2);
          if (elements) {
            return instance;
          }
          if (typeof selector !== "string") {
            throw new TypeError("Unexpected type of selector");
          }
          let search = selector;
          const searchContext = context ? (
            // If we don't have a context, maybe we have a root, from loading
            typeof context === "string" ? (0, utils_js_1.isHtml)(context) ? (
              // $('li', '<ul>...</ul>')
              new LoadedCheerio([parse3(context, options2, false, null)], rootInstance, options2)
            ) : (
              // $('li', 'ul')
              (search = `${context} ${search}`, rootInstance)
            ) : (0, utils_js_1.isCheerio)(context) ? (
              // $('li', $)
              context
            ) : (
              // $('li', node), $('li', [nodes])
              new LoadedCheerio(Array.isArray(context) ? context : [context], rootInstance, options2)
            )
          ) : rootInstance;
          if (!searchContext)
            return instance;
          return searchContext.find(search);
        }
        Object.assign(initialize2, staticMethods, {
          load,
          // `_root` and `_options` are used in static methods.
          _root: initialRoot,
          _options: internalOpts,
          // Add `fn` for plugins
          fn: LoadedCheerio.prototype,
          // Add the prototype here to maintain `instanceof` behavior.
          prototype: LoadedCheerio.prototype
        });
        return initialize2;
      };
    }
    function isNode(obj) {
      return (
        // @ts-expect-error: TS doesn't know about the `name` property.
        !!obj.name || // @ts-expect-error: TS doesn't know about the `type` property.
        obj.type === htmlparser2_1.ElementType.Root || // @ts-expect-error: TS doesn't know about the `type` property.
        obj.type === htmlparser2_1.ElementType.Text || // @ts-expect-error: TS doesn't know about the `type` property.
        obj.type === htmlparser2_1.ElementType.Comment
      );
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/parsers/parse5-adapter.js
var require_parse5_adapter2 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/parsers/parse5-adapter.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.parseWithParse5 = parseWithParse5;
    exports.renderWithParse5 = renderWithParse5;
    var domhandler_1 = require_lib4();
    var parse5_1 = require_cjs7();
    var parse5_htmlparser2_tree_adapter_1 = require_cjs8();
    function parseWithParse5(content, options, isDocument, context) {
      var _a2;
      (_a2 = options.treeAdapter) !== null && _a2 !== void 0 ? _a2 : options.treeAdapter = parse5_htmlparser2_tree_adapter_1.adapter;
      if (options.scriptingEnabled !== false) {
        options.scriptingEnabled = true;
      }
      return isDocument ? (0, parse5_1.parse)(content, options) : (0, parse5_1.parseFragment)(context, content, options);
    }
    var renderOpts = { treeAdapter: parse5_htmlparser2_tree_adapter_1.adapter };
    function renderWithParse5(dom) {
      const nodes = "length" in dom ? dom : [dom];
      for (let index2 = 0; index2 < nodes.length; index2 += 1) {
        const node = nodes[index2];
        if ((0, domhandler_1.isDocument)(node)) {
          Array.prototype.splice.call(nodes, index2, 1, ...node.children);
        }
      }
      let result = "";
      for (let index2 = 0; index2 < nodes.length; index2 += 1) {
        const node = nodes[index2];
        result += (0, parse5_1.serializeOuter)(node, renderOpts);
      }
      return result;
    }
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/load-parse.js
var require_load_parse = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/load-parse.js"(exports) {
    "use strict";
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.load = void 0;
    var load_js_1 = require_load2();
    var parse_js_1 = require_parse7();
    var parse5_adapter_js_1 = require_parse5_adapter2();
    var dom_serializer_1 = __importDefault2(require_lib6());
    var htmlparser2_1 = require_commonjs4();
    var parse3 = (0, parse_js_1.getParse)((content, options, isDocument, context) => options._useHtmlParser2 ? (0, htmlparser2_1.parseDocument)(content, options) : (0, parse5_adapter_js_1.parseWithParse5)(content, options, isDocument, context));
    exports.load = (0, load_js_1.getLoad)(parse3, (dom, options) => options._useHtmlParser2 ? (0, dom_serializer_1.default)(dom, options) : (0, parse5_adapter_js_1.renderWithParse5)(dom));
  }
});

// ../../node_modules/.pnpm/parse5-parser-stream@7.1.2/node_modules/parse5-parser-stream/dist/cjs/index.js
var require_cjs14 = __commonJS({
  "../../node_modules/.pnpm/parse5-parser-stream@7.1.2/node_modules/parse5-parser-stream/dist/cjs/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.ParserStream = void 0;
    var node_stream_1 = __require("node:stream");
    var parse5_1 = require_cjs7();
    var ParserStream = class _ParserStream extends node_stream_1.Writable {
      static getFragmentStream(fragmentContext, options) {
        const parser = parse5_1.Parser.getFragmentParser(fragmentContext, options);
        const stream7 = new _ParserStream(options, parser);
        return stream7;
      }
      /** The resulting document node. */
      get document() {
        return this.parser.document;
      }
      getFragment() {
        return this.parser.getFragment();
      }
      /**
       * @param options Parsing options.
       */
      constructor(options, parser = new parse5_1.Parser(options)) {
        super({ decodeStrings: false });
        this.parser = parser;
        this.lastChunkWritten = false;
        this.writeCallback = void 0;
        this.pendingHtmlInsertions = [];
        const resume = () => {
          for (let i5 = this.pendingHtmlInsertions.length - 1; i5 >= 0; i5--) {
            this.parser.tokenizer.insertHtmlAtCurrentPos(this.pendingHtmlInsertions[i5]);
          }
          this.pendingHtmlInsertions.length = 0;
          this.parser.tokenizer.resume(this.writeCallback);
        };
        const documentWrite = (html) => {
          if (!this.parser.stopped) {
            this.pendingHtmlInsertions.push(html);
          }
        };
        const scriptHandler = (scriptElement) => {
          if (this.listenerCount("script") > 0) {
            this.parser.tokenizer.pause();
            this.emit("script", scriptElement, documentWrite, resume);
          }
        };
        this.parser.scriptHandler = scriptHandler;
      }
      //WritableStream implementation
      _write(chunk3, _encoding, callback) {
        if (typeof chunk3 !== "string") {
          throw new TypeError("Parser can work only with string streams.");
        }
        this.writeCallback = callback;
        this.parser.tokenizer.write(chunk3, this.lastChunkWritten, this.writeCallback);
      }
      // TODO [engine:node@>=16]: Due to issues with Node < 16, we are overriding `end` instead of `_final`.
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      end(chunk3, encoding, callback) {
        this.lastChunkWritten = true;
        super.end(chunk3 || "", encoding, callback);
      }
    };
    exports.ParserStream = ParserStream;
  }
});

// ../../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/dist/commonjs/sniffer.js
var require_sniffer = __commonJS({
  "../../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/dist/commonjs/sniffer.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Sniffer = exports.STRINGS = exports.ResultType = void 0;
    exports.getEncoding = getEncoding;
    var whatwg_encoding_1 = require_whatwg_encoding();
    var State;
    (function(State2) {
      State2[State2["Begin"] = 0] = "Begin";
      State2[State2["BOM16BE"] = 1] = "BOM16BE";
      State2[State2["BOM16LE"] = 2] = "BOM16LE";
      State2[State2["BOM8"] = 3] = "BOM8";
      State2[State2["UTF16LE_XML_PREFIX"] = 4] = "UTF16LE_XML_PREFIX";
      State2[State2["BeginLT"] = 5] = "BeginLT";
      State2[State2["UTF16BE_XML_PREFIX"] = 6] = "UTF16BE_XML_PREFIX";
      State2[State2["BeforeTag"] = 7] = "BeforeTag";
      State2[State2["BeforeTagName"] = 8] = "BeforeTagName";
      State2[State2["BeforeCloseTagName"] = 9] = "BeforeCloseTagName";
      State2[State2["CommentStart"] = 10] = "CommentStart";
      State2[State2["CommentEnd"] = 11] = "CommentEnd";
      State2[State2["TagNameMeta"] = 12] = "TagNameMeta";
      State2[State2["TagNameOther"] = 13] = "TagNameOther";
      State2[State2["XMLDeclaration"] = 14] = "XMLDeclaration";
      State2[State2["XMLDeclarationBeforeEncoding"] = 15] = "XMLDeclarationBeforeEncoding";
      State2[State2["XMLDeclarationAfterEncoding"] = 16] = "XMLDeclarationAfterEncoding";
      State2[State2["XMLDeclarationBeforeValue"] = 17] = "XMLDeclarationBeforeValue";
      State2[State2["XMLDeclarationValue"] = 18] = "XMLDeclarationValue";
      State2[State2["WeirdTag"] = 19] = "WeirdTag";
      State2[State2["BeforeAttribute"] = 20] = "BeforeAttribute";
      State2[State2["MetaAttribHttpEquiv"] = 21] = "MetaAttribHttpEquiv";
      State2[State2["MetaAttribHttpEquivValue"] = 22] = "MetaAttribHttpEquivValue";
      State2[State2["MetaAttribC"] = 23] = "MetaAttribC";
      State2[State2["MetaAttribContent"] = 24] = "MetaAttribContent";
      State2[State2["MetaAttribCharset"] = 25] = "MetaAttribCharset";
      State2[State2["MetaAttribAfterName"] = 26] = "MetaAttribAfterName";
      State2[State2["MetaContentValueQuotedBeforeEncoding"] = 27] = "MetaContentValueQuotedBeforeEncoding";
      State2[State2["MetaContentValueQuotedAfterEncoding"] = 28] = "MetaContentValueQuotedAfterEncoding";
      State2[State2["MetaContentValueQuotedBeforeValue"] = 29] = "MetaContentValueQuotedBeforeValue";
      State2[State2["MetaContentValueQuotedValueQuoted"] = 30] = "MetaContentValueQuotedValueQuoted";
      State2[State2["MetaContentValueQuotedValueUnquoted"] = 31] = "MetaContentValueQuotedValueUnquoted";
      State2[State2["MetaContentValueUnquotedBeforeEncoding"] = 32] = "MetaContentValueUnquotedBeforeEncoding";
      State2[State2["MetaContentValueUnquotedBeforeValue"] = 33] = "MetaContentValueUnquotedBeforeValue";
      State2[State2["MetaContentValueUnquotedValueQuoted"] = 34] = "MetaContentValueUnquotedValueQuoted";
      State2[State2["MetaContentValueUnquotedValueUnquoted"] = 35] = "MetaContentValueUnquotedValueUnquoted";
      State2[State2["AnyAttribName"] = 36] = "AnyAttribName";
      State2[State2["AfterAttributeName"] = 37] = "AfterAttributeName";
      State2[State2["BeforeAttributeValue"] = 38] = "BeforeAttributeValue";
      State2[State2["AttributeValueQuoted"] = 39] = "AttributeValueQuoted";
      State2[State2["AttributeValueUnquoted"] = 40] = "AttributeValueUnquoted";
    })(State || (State = {}));
    var ResultType;
    (function(ResultType2) {
      ResultType2[ResultType2["BOM"] = 0] = "BOM";
      ResultType2[ResultType2["PASSED"] = 1] = "PASSED";
      ResultType2[ResultType2["XML_PREFIX"] = 2] = "XML_PREFIX";
      ResultType2[ResultType2["META_TAG"] = 3] = "META_TAG";
      ResultType2[ResultType2["XML_ENCODING"] = 4] = "XML_ENCODING";
      ResultType2[ResultType2["DEFAULT"] = 5] = "DEFAULT";
    })(ResultType || (exports.ResultType = ResultType = {}));
    var AttribType;
    (function(AttribType2) {
      AttribType2[AttribType2["None"] = 0] = "None";
      AttribType2[AttribType2["HttpEquiv"] = 1] = "HttpEquiv";
      AttribType2[AttribType2["Content"] = 2] = "Content";
      AttribType2[AttribType2["Charset"] = 3] = "Charset";
    })(AttribType || (AttribType = {}));
    var Chars;
    (function(Chars2) {
      Chars2[Chars2["NIL"] = 0] = "NIL";
      Chars2[Chars2["TAB"] = 9] = "TAB";
      Chars2[Chars2["LF"] = 10] = "LF";
      Chars2[Chars2["CR"] = 13] = "CR";
      Chars2[Chars2["SPACE"] = 32] = "SPACE";
      Chars2[Chars2["EXCLAMATION"] = 33] = "EXCLAMATION";
      Chars2[Chars2["DQUOTE"] = 34] = "DQUOTE";
      Chars2[Chars2["SQUOTE"] = 39] = "SQUOTE";
      Chars2[Chars2["DASH"] = 45] = "DASH";
      Chars2[Chars2["SLASH"] = 47] = "SLASH";
      Chars2[Chars2["SEMICOLON"] = 59] = "SEMICOLON";
      Chars2[Chars2["LT"] = 60] = "LT";
      Chars2[Chars2["EQUALS"] = 61] = "EQUALS";
      Chars2[Chars2["GT"] = 62] = "GT";
      Chars2[Chars2["QUESTION"] = 63] = "QUESTION";
      Chars2[Chars2["UpperA"] = 65] = "UpperA";
      Chars2[Chars2["UpperZ"] = 90] = "UpperZ";
      Chars2[Chars2["LowerA"] = 97] = "LowerA";
      Chars2[Chars2["LowerZ"] = 122] = "LowerZ";
    })(Chars || (Chars = {}));
    var SPACE_CHARACTERS = /* @__PURE__ */ new Set([Chars.SPACE, Chars.LF, Chars.CR, Chars.TAB]);
    var END_OF_UNQUOTED_ATTRIBUTE_VALUE = /* @__PURE__ */ new Set([
      Chars.SPACE,
      Chars.LF,
      Chars.CR,
      Chars.TAB,
      Chars.GT
    ]);
    function toUint8Array(str) {
      const arr = new Uint8Array(str.length);
      for (let i5 = 0; i5 < str.length; i5++) {
        arr[i5] = str.charCodeAt(i5);
      }
      return arr;
    }
    exports.STRINGS = {
      UTF8_BOM: new Uint8Array([239, 187, 191]),
      UTF16LE_BOM: new Uint8Array([255, 254]),
      UTF16BE_BOM: new Uint8Array([254, 255]),
      UTF16LE_XML_PREFIX: new Uint8Array([60, 0, 63, 0, 120, 0]),
      UTF16BE_XML_PREFIX: new Uint8Array([0, 60, 0, 63, 0, 120]),
      XML_DECLARATION: toUint8Array("<?xml"),
      ENCODING: toUint8Array("encoding"),
      META: toUint8Array("meta"),
      HTTP_EQUIV: toUint8Array("http-equiv"),
      CONTENT: toUint8Array("content"),
      CONTENT_TYPE: toUint8Array("content-type"),
      CHARSET: toUint8Array("charset"),
      COMMENT_START: toUint8Array("<!--"),
      COMMENT_END: toUint8Array("-->")
    };
    function isAsciiAlpha(c6) {
      return c6 >= Chars.UpperA && c6 <= Chars.UpperZ || c6 >= Chars.LowerA && c6 <= Chars.LowerZ;
    }
    function isQuote(c6) {
      return c6 === Chars.DQUOTE || c6 === Chars.SQUOTE;
    }
    var Sniffer = class {
      setResult(label, type) {
        if (this.resultType === ResultType.DEFAULT || this.resultType > type) {
          const encoding = (0, whatwg_encoding_1.labelToName)(label);
          if (encoding) {
            this.encoding = // Check if we are in a meta tag and the encoding is `x-user-defined`
            type === ResultType.META_TAG && encoding === "x-user-defined" ? "windows-1252" : (
              // Check if we are in a meta tag or xml declaration, and the encoding is UTF-16
              (type === ResultType.META_TAG || type === ResultType.XML_ENCODING) && (encoding === "UTF-16LE" || encoding === "UTF-16BE") ? "UTF-8" : encoding
            );
            this.resultType = type;
          }
        }
      }
      constructor({ maxBytes = 1024, userEncoding, transportLayerEncodingLabel, defaultEncoding } = {}) {
        this.offset = 0;
        this.state = State.Begin;
        this.sectionIndex = 0;
        this.attribType = AttribType.None;
        this.gotPragma = null;
        this.needsPragma = null;
        this.inMetaTag = false;
        this.encoding = "windows-1252";
        this.resultType = ResultType.DEFAULT;
        this.quoteCharacter = 0;
        this.attributeValue = [];
        this.maxBytes = maxBytes;
        if (userEncoding) {
          this.setResult(userEncoding, ResultType.PASSED);
        }
        if (transportLayerEncodingLabel) {
          this.setResult(transportLayerEncodingLabel, ResultType.PASSED);
        }
        if (defaultEncoding) {
          this.setResult(defaultEncoding, ResultType.DEFAULT);
        }
      }
      stateBegin(c6) {
        switch (c6) {
          case exports.STRINGS.UTF16BE_BOM[0]: {
            this.state = State.BOM16BE;
            break;
          }
          case exports.STRINGS.UTF16LE_BOM[0]: {
            this.state = State.BOM16LE;
            break;
          }
          case exports.STRINGS.UTF8_BOM[0]: {
            this.sectionIndex = 1;
            this.state = State.BOM8;
            break;
          }
          case Chars.NIL: {
            this.state = State.UTF16BE_XML_PREFIX;
            this.sectionIndex = 1;
            break;
          }
          case Chars.LT: {
            this.state = State.BeginLT;
            break;
          }
          default: {
            this.state = State.BeforeTag;
          }
        }
      }
      stateBeginLT(c6) {
        if (c6 === Chars.NIL) {
          this.state = State.UTF16LE_XML_PREFIX;
          this.sectionIndex = 2;
        } else if (c6 === Chars.QUESTION) {
          this.state = State.XMLDeclaration;
          this.sectionIndex = 2;
        } else {
          this.state = State.BeforeTagName;
          this.stateBeforeTagName(c6);
        }
      }
      stateUTF16BE_XML_PREFIX(c6) {
        if (this.advanceSection(exports.STRINGS.UTF16BE_XML_PREFIX, c6)) {
          if (this.sectionIndex === exports.STRINGS.UTF16BE_XML_PREFIX.length) {
            this.setResult("utf-16be", ResultType.XML_PREFIX);
          }
        } else {
          this.state = State.BeforeTag;
          this.stateBeforeTag(c6);
        }
      }
      stateUTF16LE_XML_PREFIX(c6) {
        if (this.advanceSection(exports.STRINGS.UTF16LE_XML_PREFIX, c6)) {
          if (this.sectionIndex === exports.STRINGS.UTF16LE_XML_PREFIX.length) {
            this.setResult("utf-16le", ResultType.XML_PREFIX);
          }
        } else {
          this.state = State.BeforeTag;
          this.stateBeforeTag(c6);
        }
      }
      stateBOM16LE(c6) {
        if (c6 === exports.STRINGS.UTF16LE_BOM[1]) {
          this.setResult("utf-16le", ResultType.BOM);
        } else {
          this.state = State.BeforeTag;
          this.stateBeforeTag(c6);
        }
      }
      stateBOM16BE(c6) {
        if (c6 === exports.STRINGS.UTF16BE_BOM[1]) {
          this.setResult("utf-16be", ResultType.BOM);
        } else {
          this.state = State.BeforeTag;
          this.stateBeforeTag(c6);
        }
      }
      stateBOM8(c6) {
        if (this.advanceSection(exports.STRINGS.UTF8_BOM, c6) && this.sectionIndex === exports.STRINGS.UTF8_BOM.length) {
          this.setResult("utf-8", ResultType.BOM);
        }
      }
      stateBeforeTag(c6) {
        if (c6 === Chars.LT) {
          this.state = State.BeforeTagName;
          this.inMetaTag = false;
        }
      }
      /**
       * We have seen a `<`, and now have to figure out what to do.
       *
       * Options:
       *  - `<meta`
       *  - Any other tag
       *  - A closing tag
       *  - `<!--`
       *  - An XML declaration
       *
       */
      stateBeforeTagName(c6) {
        if (isAsciiAlpha(c6)) {
          if ((c6 | 32) === exports.STRINGS.META[0]) {
            this.sectionIndex = 1;
            this.state = State.TagNameMeta;
          } else {
            this.state = State.TagNameOther;
          }
        } else
          switch (c6) {
            case Chars.SLASH: {
              this.state = State.BeforeCloseTagName;
              break;
            }
            case Chars.EXCLAMATION: {
              this.state = State.CommentStart;
              this.sectionIndex = 2;
              break;
            }
            case Chars.QUESTION: {
              this.state = State.WeirdTag;
              break;
            }
            default: {
              this.state = State.BeforeTag;
              this.stateBeforeTag(c6);
            }
          }
      }
      stateBeforeCloseTagName(c6) {
        this.state = isAsciiAlpha(c6) ? (
          // Switch to `TagNameOther`; the HTML spec allows attributes here as well.
          State.TagNameOther
        ) : State.WeirdTag;
      }
      stateCommentStart(c6) {
        if (this.advanceSection(exports.STRINGS.COMMENT_START, c6)) {
          if (this.sectionIndex === exports.STRINGS.COMMENT_START.length) {
            this.state = State.CommentEnd;
            this.sectionIndex = 2;
          }
        } else {
          this.state = State.WeirdTag;
          this.stateWeirdTag(c6);
        }
      }
      stateCommentEnd(c6) {
        if (this.advanceSection(exports.STRINGS.COMMENT_END, c6)) {
          if (this.sectionIndex === exports.STRINGS.COMMENT_END.length) {
            this.state = State.BeforeTag;
          }
        } else if (c6 === Chars.DASH) {
          this.sectionIndex = 2;
        }
      }
      /**
       * Any section starting with `<!`, `<?`, `</`, without being a closing tag or comment.
       */
      stateWeirdTag(c6) {
        if (c6 === Chars.GT) {
          this.state = State.BeforeTag;
        }
      }
      /**
       * Advances the section, ignoring upper/lower case.
       *
       * Make sure the section has left-over characters before calling.
       *
       * @returns `false` if we did not match the section.
       */
      advanceSectionIC(section, c6) {
        return this.advanceSection(section, c6 | 32);
      }
      /**
       * Advances the section.
       *
       * Make sure the section has left-over characters before calling.
       *
       * @returns `false` if we did not match the section.
       */
      advanceSection(section, c6) {
        if (section[this.sectionIndex] === c6) {
          this.sectionIndex++;
          return true;
        }
        this.sectionIndex = 0;
        return false;
      }
      stateTagNameMeta(c6) {
        if (this.sectionIndex < exports.STRINGS.META.length) {
          if (this.advanceSectionIC(exports.STRINGS.META, c6)) {
            return;
          }
        } else if (SPACE_CHARACTERS.has(c6)) {
          this.inMetaTag = true;
          this.gotPragma = null;
          this.needsPragma = null;
          this.state = State.BeforeAttribute;
          return;
        }
        this.state = State.TagNameOther;
        this.stateTagNameOther(c6);
      }
      stateTagNameOther(c6) {
        if (SPACE_CHARACTERS.has(c6)) {
          this.state = State.BeforeAttribute;
        } else if (c6 === Chars.GT) {
          this.state = State.BeforeTag;
        }
      }
      stateBeforeAttribute(c6) {
        if (SPACE_CHARACTERS.has(c6))
          return;
        if (this.inMetaTag) {
          const lower = c6 | 32;
          if (lower === exports.STRINGS.HTTP_EQUIV[0]) {
            this.sectionIndex = 1;
            this.state = State.MetaAttribHttpEquiv;
            return;
          } else if (lower === exports.STRINGS.CHARSET[0]) {
            this.sectionIndex = 1;
            this.state = State.MetaAttribC;
            return;
          }
        }
        this.state = c6 === Chars.SLASH || c6 === Chars.GT ? State.BeforeTag : State.AnyAttribName;
      }
      handleMetaAttrib(c6, section, type) {
        if (this.advanceSectionIC(section, c6)) {
          if (this.sectionIndex === section.length) {
            this.attribType = type;
            this.state = State.MetaAttribAfterName;
          }
        } else {
          this.state = State.AnyAttribName;
          this.stateAnyAttribName(c6);
        }
      }
      stateMetaAttribHttpEquiv(c6) {
        this.handleMetaAttrib(c6, exports.STRINGS.HTTP_EQUIV, AttribType.HttpEquiv);
      }
      stateMetaAttribC(c6) {
        const lower = c6 | 32;
        if (lower === exports.STRINGS.CHARSET[1]) {
          this.sectionIndex = 2;
          this.state = State.MetaAttribCharset;
        } else if (lower === exports.STRINGS.CONTENT[1]) {
          this.sectionIndex = 2;
          this.state = State.MetaAttribContent;
        } else {
          this.state = State.AnyAttribName;
          this.stateAnyAttribName(c6);
        }
      }
      stateMetaAttribCharset(c6) {
        this.handleMetaAttrib(c6, exports.STRINGS.CHARSET, AttribType.Charset);
      }
      stateMetaAttribContent(c6) {
        this.handleMetaAttrib(c6, exports.STRINGS.CONTENT, AttribType.Content);
      }
      stateMetaAttribAfterName(c6) {
        if (SPACE_CHARACTERS.has(c6) || c6 === Chars.EQUALS) {
          this.state = State.AfterAttributeName;
          this.stateAfterAttributeName(c6);
        } else {
          this.state = State.AnyAttribName;
          this.stateAnyAttribName(c6);
        }
      }
      stateAnyAttribName(c6) {
        if (SPACE_CHARACTERS.has(c6)) {
          this.attribType = AttribType.None;
          this.state = State.AfterAttributeName;
        } else if (c6 === Chars.SLASH || c6 === Chars.GT) {
          this.state = State.BeforeTag;
        } else if (c6 === Chars.EQUALS) {
          this.state = State.BeforeAttributeValue;
        }
      }
      stateAfterAttributeName(c6) {
        if (SPACE_CHARACTERS.has(c6))
          return;
        if (c6 === Chars.EQUALS) {
          this.state = State.BeforeAttributeValue;
        } else {
          this.state = State.BeforeAttribute;
          this.stateBeforeAttribute(c6);
        }
      }
      stateBeforeAttributeValue(c6) {
        if (SPACE_CHARACTERS.has(c6))
          return;
        this.attributeValue.length = 0;
        this.sectionIndex = 0;
        if (isQuote(c6)) {
          this.quoteCharacter = c6;
          this.state = this.attribType === AttribType.Content ? State.MetaContentValueQuotedBeforeEncoding : this.attribType === AttribType.HttpEquiv ? State.MetaAttribHttpEquivValue : State.AttributeValueQuoted;
        } else if (this.attribType === AttribType.Content) {
          this.state = State.MetaContentValueUnquotedBeforeEncoding;
          this.stateMetaContentValueUnquotedBeforeEncoding(c6);
        } else if (this.attribType === AttribType.HttpEquiv) {
          this.quoteCharacter = 0;
          this.sectionIndex = 0;
          this.state = State.MetaAttribHttpEquivValue;
          this.stateMetaAttribHttpEquivValue(c6);
        } else {
          this.state = State.AttributeValueUnquoted;
          this.stateAttributeValueUnquoted(c6);
        }
      }
      // The value has to be `content-type`
      stateMetaAttribHttpEquivValue(c6) {
        if (this.sectionIndex === exports.STRINGS.CONTENT_TYPE.length) {
          if (this.quoteCharacter === 0 ? END_OF_UNQUOTED_ATTRIBUTE_VALUE.has(c6) : c6 === this.quoteCharacter) {
            if (this.needsPragma !== null) {
              this.setResult(this.needsPragma, ResultType.META_TAG);
            } else if (this.gotPragma === null) {
              this.gotPragma = true;
            }
            this.state = State.BeforeAttribute;
            return;
          }
        } else if (this.advanceSectionIC(exports.STRINGS.CONTENT_TYPE, c6)) {
          return;
        }
        this.gotPragma = false;
        if (this.quoteCharacter === 0) {
          this.state = State.AttributeValueUnquoted;
          this.stateAttributeValueUnquoted(c6);
        } else {
          this.state = State.AttributeValueQuoted;
          this.stateAttributeValueQuoted(c6);
        }
      }
      handleMetaContentValue() {
        if (this.attributeValue.length === 0)
          return;
        const encoding = String.fromCharCode(...this.attributeValue);
        if (this.gotPragma) {
          this.setResult(encoding, ResultType.META_TAG);
        } else if (this.needsPragma === null) {
          this.needsPragma = encoding;
        }
        this.attributeValue.length = 0;
      }
      handleAttributeValue() {
        if (this.attribType === AttribType.Charset) {
          this.setResult(String.fromCharCode(...this.attributeValue), ResultType.META_TAG);
        }
      }
      stateAttributeValueUnquoted(c6) {
        if (SPACE_CHARACTERS.has(c6)) {
          this.handleAttributeValue();
          this.state = State.BeforeAttribute;
        } else if (c6 === Chars.SLASH || c6 === Chars.GT) {
          this.handleAttributeValue();
          this.state = State.BeforeTag;
        } else if (this.attribType === AttribType.Charset) {
          this.attributeValue.push(c6 | (c6 >= 65 && c6 <= 90 ? 32 : 0));
        }
      }
      findMetaContentEncoding(c6) {
        if (this.advanceSectionIC(exports.STRINGS.CHARSET, c6)) {
          if (this.sectionIndex === exports.STRINGS.CHARSET.length) {
            return true;
          }
        } else {
          this.sectionIndex = Number(c6 === exports.STRINGS.CHARSET[0]);
        }
        return false;
      }
      stateMetaContentValueUnquotedBeforeEncoding(c6) {
        if (END_OF_UNQUOTED_ATTRIBUTE_VALUE.has(c6)) {
          this.stateAttributeValueUnquoted(c6);
        } else if (this.sectionIndex === exports.STRINGS.CHARSET.length) {
          if (c6 === Chars.EQUALS) {
            this.state = State.MetaContentValueUnquotedBeforeValue;
          }
        } else {
          this.findMetaContentEncoding(c6);
        }
      }
      stateMetaContentValueUnquotedBeforeValue(c6) {
        if (isQuote(c6)) {
          this.quoteCharacter = c6;
          this.state = State.MetaContentValueUnquotedValueQuoted;
        } else if (END_OF_UNQUOTED_ATTRIBUTE_VALUE.has(c6)) {
          this.stateAttributeValueUnquoted(c6);
        } else {
          this.state = State.MetaContentValueUnquotedValueUnquoted;
          this.stateMetaContentValueUnquotedValueUnquoted(c6);
        }
      }
      stateMetaContentValueUnquotedValueQuoted(c6) {
        if (END_OF_UNQUOTED_ATTRIBUTE_VALUE.has(c6)) {
          this.stateAttributeValueUnquoted(c6);
        } else if (c6 === this.quoteCharacter) {
          this.handleMetaContentValue();
          this.state = State.AttributeValueUnquoted;
        } else {
          this.attributeValue.push(c6 | (c6 >= 65 && c6 <= 90 ? 32 : 0));
        }
      }
      stateMetaContentValueUnquotedValueUnquoted(c6) {
        if (END_OF_UNQUOTED_ATTRIBUTE_VALUE.has(c6) || c6 === Chars.SEMICOLON) {
          this.handleMetaContentValue();
          this.state = State.AttributeValueUnquoted;
          this.stateAttributeValueUnquoted(c6);
        } else {
          this.attributeValue.push(c6 | (c6 >= 65 && c6 <= 90 ? 32 : 0));
        }
      }
      stateMetaContentValueQuotedValueUnquoted(c6) {
        if (isQuote(c6) || SPACE_CHARACTERS.has(c6) || c6 === Chars.SEMICOLON) {
          this.handleMetaContentValue();
          this.state = State.AttributeValueQuoted;
          this.stateAttributeValueQuoted(c6);
        } else {
          this.attributeValue.push(c6 | (c6 >= 65 && c6 <= 90 ? 32 : 0));
        }
      }
      stateMetaContentValueQuotedValueQuoted(c6) {
        if (isQuote(c6)) {
          if (c6 !== this.quoteCharacter) {
            this.handleMetaContentValue();
          }
          this.state = State.AttributeValueQuoted;
          this.stateAttributeValueQuoted(c6);
        } else {
          this.attributeValue.push(c6 | (c6 >= 65 && c6 <= 90 ? 32 : 0));
        }
      }
      stateMetaContentValueQuotedBeforeEncoding(c6) {
        if (c6 === this.quoteCharacter) {
          this.stateAttributeValueQuoted(c6);
        } else if (this.findMetaContentEncoding(c6)) {
          this.state = State.MetaContentValueQuotedAfterEncoding;
        }
      }
      stateMetaContentValueQuotedAfterEncoding(c6) {
        if (c6 === Chars.EQUALS) {
          this.state = State.MetaContentValueQuotedBeforeValue;
        } else if (!SPACE_CHARACTERS.has(c6)) {
          this.state = State.MetaContentValueQuotedBeforeEncoding;
          this.stateMetaContentValueQuotedBeforeEncoding(c6);
        }
      }
      stateMetaContentValueQuotedBeforeValue(c6) {
        if (c6 === this.quoteCharacter) {
          this.stateAttributeValueQuoted(c6);
        } else if (isQuote(c6)) {
          this.state = State.MetaContentValueQuotedValueQuoted;
        } else if (!SPACE_CHARACTERS.has(c6)) {
          this.state = State.MetaContentValueQuotedValueUnquoted;
          this.stateMetaContentValueQuotedValueUnquoted(c6);
        }
      }
      stateAttributeValueQuoted(c6) {
        if (c6 === this.quoteCharacter) {
          this.handleAttributeValue();
          this.state = State.BeforeAttribute;
        } else if (this.attribType === AttribType.Charset) {
          this.attributeValue.push(c6 | (c6 >= 65 && c6 <= 90 ? 32 : 0));
        }
      }
      // Read STRINGS.XML_DECLARATION
      stateXMLDeclaration(c6) {
        if (this.advanceSection(exports.STRINGS.XML_DECLARATION, c6)) {
          if (this.sectionIndex === exports.STRINGS.XML_DECLARATION.length) {
            this.sectionIndex = 0;
            this.state = State.XMLDeclarationBeforeEncoding;
          }
        } else {
          this.state = State.WeirdTag;
        }
      }
      stateXMLDeclarationBeforeEncoding(c6) {
        if (this.advanceSection(exports.STRINGS.ENCODING, c6)) {
          if (this.sectionIndex === exports.STRINGS.ENCODING.length) {
            this.state = State.XMLDeclarationAfterEncoding;
          }
        } else if (c6 === Chars.GT) {
          this.state = State.BeforeTag;
        } else {
          this.sectionIndex = Number(c6 === exports.STRINGS.ENCODING[0]);
        }
      }
      stateXMLDeclarationAfterEncoding(c6) {
        if (c6 === Chars.EQUALS) {
          this.state = State.XMLDeclarationBeforeValue;
        } else if (c6 > Chars.SPACE) {
          this.state = State.WeirdTag;
          this.stateWeirdTag(c6);
        }
      }
      stateXMLDeclarationBeforeValue(c6) {
        if (isQuote(c6)) {
          this.attributeValue.length = 0;
          this.state = State.XMLDeclarationValue;
        } else if (c6 > Chars.SPACE) {
          this.state = State.WeirdTag;
          this.stateWeirdTag(c6);
        }
      }
      stateXMLDeclarationValue(c6) {
        if (isQuote(c6)) {
          this.setResult(String.fromCharCode(...this.attributeValue), ResultType.XML_ENCODING);
          this.state = State.WeirdTag;
        } else if (c6 === Chars.GT) {
          this.state = State.BeforeTag;
        } else if (c6 <= Chars.SPACE) {
          this.state = State.WeirdTag;
        } else {
          this.attributeValue.push(c6 | (c6 >= 65 && c6 <= 90 ? 32 : 0));
        }
      }
      write(buffer) {
        let index2 = 0;
        for (; index2 < buffer.length && this.offset + index2 < this.maxBytes; index2++) {
          const c6 = buffer[index2];
          switch (this.state) {
            case State.Begin: {
              this.stateBegin(c6);
              break;
            }
            case State.BOM16BE: {
              this.stateBOM16BE(c6);
              break;
            }
            case State.BOM16LE: {
              this.stateBOM16LE(c6);
              break;
            }
            case State.BOM8: {
              this.stateBOM8(c6);
              break;
            }
            case State.UTF16LE_XML_PREFIX: {
              this.stateUTF16LE_XML_PREFIX(c6);
              break;
            }
            case State.BeginLT: {
              this.stateBeginLT(c6);
              break;
            }
            case State.UTF16BE_XML_PREFIX: {
              this.stateUTF16BE_XML_PREFIX(c6);
              break;
            }
            case State.BeforeTag: {
              const idx = buffer.indexOf(Chars.LT, index2);
              if (idx === -1) {
                index2 = buffer.length;
              } else {
                index2 = idx;
                this.stateBeforeTag(Chars.LT);
              }
              break;
            }
            case State.BeforeTagName: {
              this.stateBeforeTagName(c6);
              break;
            }
            case State.BeforeCloseTagName: {
              this.stateBeforeCloseTagName(c6);
              break;
            }
            case State.CommentStart: {
              this.stateCommentStart(c6);
              break;
            }
            case State.CommentEnd: {
              this.stateCommentEnd(c6);
              break;
            }
            case State.TagNameMeta: {
              this.stateTagNameMeta(c6);
              break;
            }
            case State.TagNameOther: {
              this.stateTagNameOther(c6);
              break;
            }
            case State.XMLDeclaration: {
              this.stateXMLDeclaration(c6);
              break;
            }
            case State.XMLDeclarationBeforeEncoding: {
              this.stateXMLDeclarationBeforeEncoding(c6);
              break;
            }
            case State.XMLDeclarationAfterEncoding: {
              this.stateXMLDeclarationAfterEncoding(c6);
              break;
            }
            case State.XMLDeclarationBeforeValue: {
              this.stateXMLDeclarationBeforeValue(c6);
              break;
            }
            case State.XMLDeclarationValue: {
              this.stateXMLDeclarationValue(c6);
              break;
            }
            case State.WeirdTag: {
              this.stateWeirdTag(c6);
              break;
            }
            case State.BeforeAttribute: {
              this.stateBeforeAttribute(c6);
              break;
            }
            case State.MetaAttribHttpEquiv: {
              this.stateMetaAttribHttpEquiv(c6);
              break;
            }
            case State.MetaAttribHttpEquivValue: {
              this.stateMetaAttribHttpEquivValue(c6);
              break;
            }
            case State.MetaAttribC: {
              this.stateMetaAttribC(c6);
              break;
            }
            case State.MetaAttribContent: {
              this.stateMetaAttribContent(c6);
              break;
            }
            case State.MetaAttribCharset: {
              this.stateMetaAttribCharset(c6);
              break;
            }
            case State.MetaAttribAfterName: {
              this.stateMetaAttribAfterName(c6);
              break;
            }
            case State.MetaContentValueQuotedBeforeEncoding: {
              this.stateMetaContentValueQuotedBeforeEncoding(c6);
              break;
            }
            case State.MetaContentValueQuotedAfterEncoding: {
              this.stateMetaContentValueQuotedAfterEncoding(c6);
              break;
            }
            case State.MetaContentValueQuotedBeforeValue: {
              this.stateMetaContentValueQuotedBeforeValue(c6);
              break;
            }
            case State.MetaContentValueQuotedValueQuoted: {
              this.stateMetaContentValueQuotedValueQuoted(c6);
              break;
            }
            case State.MetaContentValueQuotedValueUnquoted: {
              this.stateMetaContentValueQuotedValueUnquoted(c6);
              break;
            }
            case State.MetaContentValueUnquotedBeforeEncoding: {
              this.stateMetaContentValueUnquotedBeforeEncoding(c6);
              break;
            }
            case State.MetaContentValueUnquotedBeforeValue: {
              this.stateMetaContentValueUnquotedBeforeValue(c6);
              break;
            }
            case State.MetaContentValueUnquotedValueQuoted: {
              this.stateMetaContentValueUnquotedValueQuoted(c6);
              break;
            }
            case State.MetaContentValueUnquotedValueUnquoted: {
              this.stateMetaContentValueUnquotedValueUnquoted(c6);
              break;
            }
            case State.AnyAttribName: {
              this.stateAnyAttribName(c6);
              break;
            }
            case State.AfterAttributeName: {
              this.stateAfterAttributeName(c6);
              break;
            }
            case State.BeforeAttributeValue: {
              this.stateBeforeAttributeValue(c6);
              break;
            }
            case State.AttributeValueQuoted: {
              this.stateAttributeValueQuoted(c6);
              break;
            }
            case State.AttributeValueUnquoted: {
              this.stateAttributeValueUnquoted(c6);
              break;
            }
          }
        }
        this.offset += index2;
      }
    };
    exports.Sniffer = Sniffer;
    function getEncoding(buffer, options) {
      const sniffer = new Sniffer(options);
      sniffer.write(buffer);
      return sniffer.encoding;
    }
  }
});

// ../../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/dist/commonjs/index.js
var require_commonjs5 = __commonJS({
  "../../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/dist/commonjs/index.js"(exports) {
    "use strict";
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.getEncoding = exports.DecodeStream = void 0;
    exports.decodeBuffer = decodeBuffer;
    var node_stream_1 = __require("node:stream");
    var iconv_lite_1 = __importDefault2(require_lib19());
    var sniffer_js_1 = require_sniffer();
    function decodeBuffer(buffer, options = {}) {
      return iconv_lite_1.default.decode(buffer, (0, sniffer_js_1.getEncoding)(buffer, options));
    }
    var DecodeStream2 = class extends node_stream_1.Transform {
      constructor(options) {
        var _a2;
        super({ decodeStrings: false, encoding: "utf-8" });
        this.buffers = [];
        this.iconv = null;
        this.readBytes = 0;
        this.sniffer = new sniffer_js_1.Sniffer(options);
        this.maxBytes = (_a2 = options === null || options === void 0 ? void 0 : options.maxBytes) !== null && _a2 !== void 0 ? _a2 : 1024;
      }
      _transform(chunk3, _encoding, callback) {
        if (this.readBytes < this.maxBytes) {
          this.sniffer.write(chunk3);
          this.readBytes += chunk3.length;
          if (this.readBytes < this.maxBytes) {
            this.buffers.push(chunk3);
            callback();
            return;
          }
        }
        this.getIconvStream().write(chunk3, callback);
      }
      getIconvStream() {
        if (this.iconv) {
          return this.iconv;
        }
        const stream7 = iconv_lite_1.default.decodeStream(this.sniffer.encoding);
        stream7.on("data", (chunk3) => this.push(chunk3, "utf-8"));
        stream7.on("end", () => this.push(null));
        this.iconv = stream7;
        for (const buffer of this.buffers) {
          stream7.write(buffer);
        }
        this.buffers.length = 0;
        return stream7;
      }
      _flush(callback) {
        this.getIconvStream().end(callback);
      }
    };
    exports.DecodeStream = DecodeStream2;
    var sniffer_js_2 = require_sniffer();
    Object.defineProperty(exports, "getEncoding", { enumerable: true, get: function() {
      return sniffer_js_2.getEncoding;
    } });
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/symbols.js
var require_symbols2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/symbols.js"(exports, module) {
    "use strict";
    module.exports = {
      kClose: Symbol("close"),
      kDestroy: Symbol("destroy"),
      kDispatch: Symbol("dispatch"),
      kUrl: Symbol("url"),
      kWriting: Symbol("writing"),
      kResuming: Symbol("resuming"),
      kQueue: Symbol("queue"),
      kConnect: Symbol("connect"),
      kConnecting: Symbol("connecting"),
      kKeepAliveDefaultTimeout: Symbol("default keep alive timeout"),
      kKeepAliveMaxTimeout: Symbol("max keep alive timeout"),
      kKeepAliveTimeoutThreshold: Symbol("keep alive timeout threshold"),
      kKeepAliveTimeoutValue: Symbol("keep alive timeout"),
      kKeepAlive: Symbol("keep alive"),
      kHeadersTimeout: Symbol("headers timeout"),
      kBodyTimeout: Symbol("body timeout"),
      kServerName: Symbol("server name"),
      kLocalAddress: Symbol("local address"),
      kHost: Symbol("host"),
      kNoRef: Symbol("no ref"),
      kBodyUsed: Symbol("used"),
      kBody: Symbol("abstracted request body"),
      kRunning: Symbol("running"),
      kBlocking: Symbol("blocking"),
      kPending: Symbol("pending"),
      kSize: Symbol("size"),
      kBusy: Symbol("busy"),
      kQueued: Symbol("queued"),
      kFree: Symbol("free"),
      kConnected: Symbol("connected"),
      kClosed: Symbol("closed"),
      kNeedDrain: Symbol("need drain"),
      kReset: Symbol("reset"),
      kDestroyed: Symbol.for("nodejs.stream.destroyed"),
      kResume: Symbol("resume"),
      kOnError: Symbol("on error"),
      kMaxHeadersSize: Symbol("max headers size"),
      kRunningIdx: Symbol("running index"),
      kPendingIdx: Symbol("pending index"),
      kError: Symbol("error"),
      kClients: Symbol("clients"),
      kClient: Symbol("client"),
      kParser: Symbol("parser"),
      kOnDestroyed: Symbol("destroy callbacks"),
      kPipelining: Symbol("pipelining"),
      kSocket: Symbol("socket"),
      kHostHeader: Symbol("host header"),
      kConnector: Symbol("connector"),
      kStrictContentLength: Symbol("strict content length"),
      kMaxRedirections: Symbol("maxRedirections"),
      kMaxRequests: Symbol("maxRequestsPerClient"),
      kProxy: Symbol("proxy agent options"),
      kCounter: Symbol("socket request counter"),
      kMaxResponseSize: Symbol("max response size"),
      kHTTP2Session: Symbol("http2Session"),
      kHTTP2SessionState: Symbol("http2Session state"),
      kRetryHandlerDefaultRetry: Symbol("retry agent default retry"),
      kConstruct: Symbol("constructable"),
      kListeners: Symbol("listeners"),
      kHTTPContext: Symbol("http context"),
      kMaxConcurrentStreams: Symbol("max concurrent streams"),
      kHTTP2InitialWindowSize: Symbol("http2 initial window size"),
      kHTTP2ConnectionWindowSize: Symbol("http2 connection window size"),
      kEnableConnectProtocol: Symbol("http2session connect protocol"),
      kRemoteSettings: Symbol("http2session remote settings"),
      kHTTP2Stream: Symbol("http2session client stream"),
      kPingInterval: Symbol("ping interval"),
      kNoProxyAgent: Symbol("no proxy agent"),
      kHttpProxyAgent: Symbol("http proxy agent"),
      kHttpsProxyAgent: Symbol("https proxy agent")
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/util/timers.js
var require_timers = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/util/timers.js"(exports, module) {
    "use strict";
    var fastNow = 0;
    var RESOLUTION_MS = 1e3;
    var TICK_MS = (RESOLUTION_MS >> 1) - 1;
    var fastNowTimeout;
    var kFastTimer = Symbol("kFastTimer");
    var fastTimers = [];
    var NOT_IN_LIST = -2;
    var TO_BE_CLEARED = -1;
    var PENDING = 0;
    var ACTIVE = 1;
    function onTick() {
      fastNow += TICK_MS;
      let idx = 0;
      let len = fastTimers.length;
      while (idx < len) {
        const timer2 = fastTimers[idx];
        if (timer2._state === PENDING) {
          timer2._idleStart = fastNow - TICK_MS;
          timer2._state = ACTIVE;
        } else if (timer2._state === ACTIVE && fastNow >= timer2._idleStart + timer2._idleTimeout) {
          timer2._state = TO_BE_CLEARED;
          timer2._idleStart = -1;
          timer2._onTimeout(timer2._timerArg);
        }
        if (timer2._state === TO_BE_CLEARED) {
          timer2._state = NOT_IN_LIST;
          if (--len !== 0) {
            fastTimers[idx] = fastTimers[len];
          }
        } else {
          ++idx;
        }
      }
      fastTimers.length = len;
      if (fastTimers.length !== 0) {
        refreshTimeout();
      }
    }
    function refreshTimeout() {
      if (fastNowTimeout?.refresh) {
        fastNowTimeout.refresh();
      } else {
        clearTimeout(fastNowTimeout);
        fastNowTimeout = setTimeout(onTick, TICK_MS);
        fastNowTimeout?.unref();
      }
    }
    var FastTimer = class {
      [kFastTimer] = true;
      /**
       * The state of the timer, which can be one of the following:
       * - NOT_IN_LIST (-2)
       * - TO_BE_CLEARED (-1)
       * - PENDING (0)
       * - ACTIVE (1)
       *
       * @type {-2|-1|0|1}
       * @private
       */
      _state = NOT_IN_LIST;
      /**
       * The number of milliseconds to wait before calling the callback.
       *
       * @type {number}
       * @private
       */
      _idleTimeout = -1;
      /**
       * The time in milliseconds when the timer was started. This value is used to
       * calculate when the timer should expire.
       *
       * @type {number}
       * @default -1
       * @private
       */
      _idleStart = -1;
      /**
       * The function to be executed when the timer expires.
       * @type {Function}
       * @private
       */
      _onTimeout;
      /**
       * The argument to be passed to the callback when the timer expires.
       *
       * @type {*}
       * @private
       */
      _timerArg;
      /**
       * @constructor
       * @param {Function} callback A function to be executed after the timer
       * expires.
       * @param {number} delay The time, in milliseconds that the timer should wait
       * before the specified function or code is executed.
       * @param {*} arg
       */
      constructor(callback, delay2, arg) {
        this._onTimeout = callback;
        this._idleTimeout = delay2;
        this._timerArg = arg;
        this.refresh();
      }
      /**
       * Sets the timer's start time to the current time, and reschedules the timer
       * to call its callback at the previously specified duration adjusted to the
       * current time.
       * Using this on a timer that has already called its callback will reactivate
       * the timer.
       *
       * @returns {void}
       */
      refresh() {
        if (this._state === NOT_IN_LIST) {
          fastTimers.push(this);
        }
        if (!fastNowTimeout || fastTimers.length === 1) {
          refreshTimeout();
        }
        this._state = PENDING;
      }
      /**
       * The `clear` method cancels the timer, preventing it from executing.
       *
       * @returns {void}
       * @private
       */
      clear() {
        this._state = TO_BE_CLEARED;
        this._idleStart = -1;
      }
    };
    module.exports = {
      /**
       * The setTimeout() method sets a timer which executes a function once the
       * timer expires.
       * @param {Function} callback A function to be executed after the timer
       * expires.
       * @param {number} delay The time, in milliseconds that the timer should
       * wait before the specified function or code is executed.
       * @param {*} [arg] An optional argument to be passed to the callback function
       * when the timer expires.
       * @returns {NodeJS.Timeout|FastTimer}
       */
      setTimeout(callback, delay2, arg) {
        return delay2 <= RESOLUTION_MS ? setTimeout(callback, delay2, arg) : new FastTimer(callback, delay2, arg);
      },
      /**
       * The clearTimeout method cancels an instantiated Timer previously created
       * by calling setTimeout.
       *
       * @param {NodeJS.Timeout|FastTimer} timeout
       */
      clearTimeout(timeout) {
        if (timeout[kFastTimer]) {
          timeout.clear();
        } else {
          clearTimeout(timeout);
        }
      },
      /**
       * The setFastTimeout() method sets a fastTimer which executes a function once
       * the timer expires.
       * @param {Function} callback A function to be executed after the timer
       * expires.
       * @param {number} delay The time, in milliseconds that the timer should
       * wait before the specified function or code is executed.
       * @param {*} [arg] An optional argument to be passed to the callback function
       * when the timer expires.
       * @returns {FastTimer}
       */
      setFastTimeout(callback, delay2, arg) {
        return new FastTimer(callback, delay2, arg);
      },
      /**
       * The clearTimeout method cancels an instantiated FastTimer previously
       * created by calling setFastTimeout.
       *
       * @param {FastTimer} timeout
       */
      clearFastTimeout(timeout) {
        timeout.clear();
      },
      /**
       * The now method returns the value of the internal fast timer clock.
       *
       * @returns {number}
       */
      now() {
        return fastNow;
      },
      /**
       * Trigger the onTick function to process the fastTimers array.
       * Exported for testing purposes only.
       * Marking as deprecated to discourage any use outside of testing.
       * @deprecated
       * @param {number} [delay=0] The delay in milliseconds to add to the now value.
       */
      tick(delay2 = 0) {
        fastNow += delay2 - RESOLUTION_MS + 1;
        onTick();
        onTick();
      },
      /**
       * Reset FastTimers.
       * Exported for testing purposes only.
       * Marking as deprecated to discourage any use outside of testing.
       * @deprecated
       */
      reset() {
        fastNow = 0;
        fastTimers.length = 0;
        clearTimeout(fastNowTimeout);
        fastNowTimeout = null;
      },
      /**
       * Exporting for testing purposes only.
       * Marking as deprecated to discourage any use outside of testing.
       * @deprecated
       */
      kFastTimer
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/errors.js
var require_errors5 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/errors.js"(exports, module) {
    "use strict";
    var kUndiciError = Symbol.for("undici.error.UND_ERR");
    var UndiciError = class extends Error {
      constructor(message, options) {
        super(message, options);
        this.name = "UndiciError";
        this.code = "UND_ERR";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kUndiciError] === true;
      }
      get [kUndiciError]() {
        return true;
      }
    };
    var kConnectTimeoutError = Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT");
    var ConnectTimeoutError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "ConnectTimeoutError";
        this.message = message || "Connect Timeout Error";
        this.code = "UND_ERR_CONNECT_TIMEOUT";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kConnectTimeoutError] === true;
      }
      get [kConnectTimeoutError]() {
        return true;
      }
    };
    var kHeadersTimeoutError = Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT");
    var HeadersTimeoutError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "HeadersTimeoutError";
        this.message = message || "Headers Timeout Error";
        this.code = "UND_ERR_HEADERS_TIMEOUT";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kHeadersTimeoutError] === true;
      }
      get [kHeadersTimeoutError]() {
        return true;
      }
    };
    var kHeadersOverflowError = Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW");
    var HeadersOverflowError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "HeadersOverflowError";
        this.message = message || "Headers Overflow Error";
        this.code = "UND_ERR_HEADERS_OVERFLOW";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kHeadersOverflowError] === true;
      }
      get [kHeadersOverflowError]() {
        return true;
      }
    };
    var kBodyTimeoutError = Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT");
    var BodyTimeoutError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "BodyTimeoutError";
        this.message = message || "Body Timeout Error";
        this.code = "UND_ERR_BODY_TIMEOUT";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kBodyTimeoutError] === true;
      }
      get [kBodyTimeoutError]() {
        return true;
      }
    };
    var kInvalidArgumentError = Symbol.for("undici.error.UND_ERR_INVALID_ARG");
    var InvalidArgumentError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "InvalidArgumentError";
        this.message = message || "Invalid Argument Error";
        this.code = "UND_ERR_INVALID_ARG";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kInvalidArgumentError] === true;
      }
      get [kInvalidArgumentError]() {
        return true;
      }
    };
    var kInvalidReturnValueError = Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE");
    var InvalidReturnValueError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "InvalidReturnValueError";
        this.message = message || "Invalid Return Value Error";
        this.code = "UND_ERR_INVALID_RETURN_VALUE";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kInvalidReturnValueError] === true;
      }
      get [kInvalidReturnValueError]() {
        return true;
      }
    };
    var kAbortError = Symbol.for("undici.error.UND_ERR_ABORT");
    var AbortError3 = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "AbortError";
        this.message = message || "The operation was aborted";
        this.code = "UND_ERR_ABORT";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kAbortError] === true;
      }
      get [kAbortError]() {
        return true;
      }
    };
    var kRequestAbortedError = Symbol.for("undici.error.UND_ERR_ABORTED");
    var RequestAbortedError = class extends AbortError3 {
      constructor(message) {
        super(message);
        this.name = "AbortError";
        this.message = message || "Request aborted";
        this.code = "UND_ERR_ABORTED";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kRequestAbortedError] === true;
      }
      get [kRequestAbortedError]() {
        return true;
      }
    };
    var kInformationalError = Symbol.for("undici.error.UND_ERR_INFO");
    var InformationalError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "InformationalError";
        this.message = message || "Request information";
        this.code = "UND_ERR_INFO";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kInformationalError] === true;
      }
      get [kInformationalError]() {
        return true;
      }
    };
    var kRequestContentLengthMismatchError = Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH");
    var RequestContentLengthMismatchError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "RequestContentLengthMismatchError";
        this.message = message || "Request body length does not match content-length header";
        this.code = "UND_ERR_REQ_CONTENT_LENGTH_MISMATCH";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kRequestContentLengthMismatchError] === true;
      }
      get [kRequestContentLengthMismatchError]() {
        return true;
      }
    };
    var kResponseContentLengthMismatchError = Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH");
    var ResponseContentLengthMismatchError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "ResponseContentLengthMismatchError";
        this.message = message || "Response body length does not match content-length header";
        this.code = "UND_ERR_RES_CONTENT_LENGTH_MISMATCH";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kResponseContentLengthMismatchError] === true;
      }
      get [kResponseContentLengthMismatchError]() {
        return true;
      }
    };
    var kClientDestroyedError = Symbol.for("undici.error.UND_ERR_DESTROYED");
    var ClientDestroyedError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "ClientDestroyedError";
        this.message = message || "The client is destroyed";
        this.code = "UND_ERR_DESTROYED";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kClientDestroyedError] === true;
      }
      get [kClientDestroyedError]() {
        return true;
      }
    };
    var kClientClosedError = Symbol.for("undici.error.UND_ERR_CLOSED");
    var ClientClosedError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "ClientClosedError";
        this.message = message || "The client is closed";
        this.code = "UND_ERR_CLOSED";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kClientClosedError] === true;
      }
      get [kClientClosedError]() {
        return true;
      }
    };
    var kSocketError = Symbol.for("undici.error.UND_ERR_SOCKET");
    var SocketError = class extends UndiciError {
      constructor(message, socket) {
        super(message);
        this.name = "SocketError";
        this.message = message || "Socket error";
        this.code = "UND_ERR_SOCKET";
        this.socket = socket;
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kSocketError] === true;
      }
      get [kSocketError]() {
        return true;
      }
    };
    var kNotSupportedError = Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED");
    var NotSupportedError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "NotSupportedError";
        this.message = message || "Not supported error";
        this.code = "UND_ERR_NOT_SUPPORTED";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kNotSupportedError] === true;
      }
      get [kNotSupportedError]() {
        return true;
      }
    };
    var kBalancedPoolMissingUpstreamError = Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM");
    var BalancedPoolMissingUpstreamError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "MissingUpstreamError";
        this.message = message || "No upstream has been added to the BalancedPool";
        this.code = "UND_ERR_BPL_MISSING_UPSTREAM";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kBalancedPoolMissingUpstreamError] === true;
      }
      get [kBalancedPoolMissingUpstreamError]() {
        return true;
      }
    };
    var kHTTPParserError = Symbol.for("undici.error.UND_ERR_HTTP_PARSER");
    var HTTPParserError = class extends Error {
      constructor(message, code, data2) {
        super(message);
        this.name = "HTTPParserError";
        this.code = code ? `HPE_${code}` : void 0;
        this.data = data2 ? data2.toString() : void 0;
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kHTTPParserError] === true;
      }
      get [kHTTPParserError]() {
        return true;
      }
    };
    var kResponseExceededMaxSizeError = Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE");
    var ResponseExceededMaxSizeError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "ResponseExceededMaxSizeError";
        this.message = message || "Response content exceeded max size";
        this.code = "UND_ERR_RES_EXCEEDED_MAX_SIZE";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kResponseExceededMaxSizeError] === true;
      }
      get [kResponseExceededMaxSizeError]() {
        return true;
      }
    };
    var kRequestRetryError = Symbol.for("undici.error.UND_ERR_REQ_RETRY");
    var RequestRetryError = class extends UndiciError {
      constructor(message, code, { headers, data: data2 }) {
        super(message);
        this.name = "RequestRetryError";
        this.message = message || "Request retry error";
        this.code = "UND_ERR_REQ_RETRY";
        this.statusCode = code;
        this.data = data2;
        this.headers = headers;
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kRequestRetryError] === true;
      }
      get [kRequestRetryError]() {
        return true;
      }
    };
    var kResponseError = Symbol.for("undici.error.UND_ERR_RESPONSE");
    var ResponseError = class extends UndiciError {
      constructor(message, code, { headers, body }) {
        super(message);
        this.name = "ResponseError";
        this.message = message || "Response error";
        this.code = "UND_ERR_RESPONSE";
        this.statusCode = code;
        this.body = body;
        this.headers = headers;
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kResponseError] === true;
      }
      get [kResponseError]() {
        return true;
      }
    };
    var kSecureProxyConnectionError = Symbol.for("undici.error.UND_ERR_PRX_TLS");
    var SecureProxyConnectionError = class extends UndiciError {
      constructor(cause, message, options = {}) {
        super(message, { cause, ...options });
        this.name = "SecureProxyConnectionError";
        this.message = message || "Secure Proxy Connection failed";
        this.code = "UND_ERR_PRX_TLS";
        this.cause = cause;
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kSecureProxyConnectionError] === true;
      }
      get [kSecureProxyConnectionError]() {
        return true;
      }
    };
    var kMaxOriginsReachedError = Symbol.for("undici.error.UND_ERR_MAX_ORIGINS_REACHED");
    var MaxOriginsReachedError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "MaxOriginsReachedError";
        this.message = message || "Maximum allowed origins reached";
        this.code = "UND_ERR_MAX_ORIGINS_REACHED";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kMaxOriginsReachedError] === true;
      }
      get [kMaxOriginsReachedError]() {
        return true;
      }
    };
    module.exports = {
      AbortError: AbortError3,
      HTTPParserError,
      UndiciError,
      HeadersTimeoutError,
      HeadersOverflowError,
      BodyTimeoutError,
      RequestContentLengthMismatchError,
      ConnectTimeoutError,
      InvalidArgumentError,
      InvalidReturnValueError,
      RequestAbortedError,
      ClientDestroyedError,
      ClientClosedError,
      InformationalError,
      SocketError,
      NotSupportedError,
      ResponseContentLengthMismatchError,
      BalancedPoolMissingUpstreamError,
      ResponseExceededMaxSizeError,
      RequestRetryError,
      ResponseError,
      SecureProxyConnectionError,
      MaxOriginsReachedError
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/constants.js
var require_constants11 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/constants.js"(exports, module) {
    "use strict";
    var wellknownHeaderNames = (
      /** @type {const} */
      [
        "Accept",
        "Accept-Encoding",
        "Accept-Language",
        "Accept-Ranges",
        "Access-Control-Allow-Credentials",
        "Access-Control-Allow-Headers",
        "Access-Control-Allow-Methods",
        "Access-Control-Allow-Origin",
        "Access-Control-Expose-Headers",
        "Access-Control-Max-Age",
        "Access-Control-Request-Headers",
        "Access-Control-Request-Method",
        "Age",
        "Allow",
        "Alt-Svc",
        "Alt-Used",
        "Authorization",
        "Cache-Control",
        "Clear-Site-Data",
        "Connection",
        "Content-Disposition",
        "Content-Encoding",
        "Content-Language",
        "Content-Length",
        "Content-Location",
        "Content-Range",
        "Content-Security-Policy",
        "Content-Security-Policy-Report-Only",
        "Content-Type",
        "Cookie",
        "Cross-Origin-Embedder-Policy",
        "Cross-Origin-Opener-Policy",
        "Cross-Origin-Resource-Policy",
        "Date",
        "Device-Memory",
        "Downlink",
        "ECT",
        "ETag",
        "Expect",
        "Expect-CT",
        "Expires",
        "Forwarded",
        "From",
        "Host",
        "If-Match",
        "If-Modified-Since",
        "If-None-Match",
        "If-Range",
        "If-Unmodified-Since",
        "Keep-Alive",
        "Last-Modified",
        "Link",
        "Location",
        "Max-Forwards",
        "Origin",
        "Permissions-Policy",
        "Pragma",
        "Proxy-Authenticate",
        "Proxy-Authorization",
        "RTT",
        "Range",
        "Referer",
        "Referrer-Policy",
        "Refresh",
        "Retry-After",
        "Sec-WebSocket-Accept",
        "Sec-WebSocket-Extensions",
        "Sec-WebSocket-Key",
        "Sec-WebSocket-Protocol",
        "Sec-WebSocket-Version",
        "Server",
        "Server-Timing",
        "Service-Worker-Allowed",
        "Service-Worker-Navigation-Preload",
        "Set-Cookie",
        "SourceMap",
        "Strict-Transport-Security",
        "Supports-Loading-Mode",
        "TE",
        "Timing-Allow-Origin",
        "Trailer",
        "Transfer-Encoding",
        "Upgrade",
        "Upgrade-Insecure-Requests",
        "User-Agent",
        "Vary",
        "Via",
        "WWW-Authenticate",
        "X-Content-Type-Options",
        "X-DNS-Prefetch-Control",
        "X-Frame-Options",
        "X-Permitted-Cross-Domain-Policies",
        "X-Powered-By",
        "X-Requested-With",
        "X-XSS-Protection"
      ]
    );
    var headerNameLowerCasedRecord = {};
    Object.setPrototypeOf(headerNameLowerCasedRecord, null);
    var wellknownHeaderNameBuffers = {};
    Object.setPrototypeOf(wellknownHeaderNameBuffers, null);
    function getHeaderNameAsBuffer(header) {
      let buffer = wellknownHeaderNameBuffers[header];
      if (buffer === void 0) {
        buffer = Buffer.from(header);
      }
      return buffer;
    }
    for (let i5 = 0; i5 < wellknownHeaderNames.length; ++i5) {
      const key = wellknownHeaderNames[i5];
      const lowerCasedKey = key.toLowerCase();
      headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = lowerCasedKey;
    }
    module.exports = {
      wellknownHeaderNames,
      headerNameLowerCasedRecord,
      getHeaderNameAsBuffer
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/tree.js
var require_tree = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/tree.js"(exports, module) {
    "use strict";
    var {
      wellknownHeaderNames,
      headerNameLowerCasedRecord
    } = require_constants11();
    var TstNode = class _TstNode {
      /** @type {any} */
      value = null;
      /** @type {null | TstNode} */
      left = null;
      /** @type {null | TstNode} */
      middle = null;
      /** @type {null | TstNode} */
      right = null;
      /** @type {number} */
      code;
      /**
       * @param {string} key
       * @param {any} value
       * @param {number} index
       */
      constructor(key, value2, index2) {
        if (index2 === void 0 || index2 >= key.length) {
          throw new TypeError("Unreachable");
        }
        const code = this.code = key.charCodeAt(index2);
        if (code > 127) {
          throw new TypeError("key must be ascii string");
        }
        if (key.length !== ++index2) {
          this.middle = new _TstNode(key, value2, index2);
        } else {
          this.value = value2;
        }
      }
      /**
       * @param {string} key
       * @param {any} value
       * @returns {void}
       */
      add(key, value2) {
        const length2 = key.length;
        if (length2 === 0) {
          throw new TypeError("Unreachable");
        }
        let index2 = 0;
        let node = this;
        while (true) {
          const code = key.charCodeAt(index2);
          if (code > 127) {
            throw new TypeError("key must be ascii string");
          }
          if (node.code === code) {
            if (length2 === ++index2) {
              node.value = value2;
              break;
            } else if (node.middle !== null) {
              node = node.middle;
            } else {
              node.middle = new _TstNode(key, value2, index2);
              break;
            }
          } else if (node.code < code) {
            if (node.left !== null) {
              node = node.left;
            } else {
              node.left = new _TstNode(key, value2, index2);
              break;
            }
          } else if (node.right !== null) {
            node = node.right;
          } else {
            node.right = new _TstNode(key, value2, index2);
            break;
          }
        }
      }
      /**
       * @param {Uint8Array} key
       * @returns {TstNode | null}
       */
      search(key) {
        const keylength = key.length;
        let index2 = 0;
        let node = this;
        while (node !== null && index2 < keylength) {
          let code = key[index2];
          if (code <= 90 && code >= 65) {
            code |= 32;
          }
          while (node !== null) {
            if (code === node.code) {
              if (keylength === ++index2) {
                return node;
              }
              node = node.middle;
              break;
            }
            node = node.code < code ? node.left : node.right;
          }
        }
        return null;
      }
    };
    var TernarySearchTree = class {
      /** @type {TstNode | null} */
      node = null;
      /**
       * @param {string} key
       * @param {any} value
       * @returns {void}
       * */
      insert(key, value2) {
        if (this.node === null) {
          this.node = new TstNode(key, value2, 0);
        } else {
          this.node.add(key, value2);
        }
      }
      /**
       * @param {Uint8Array} key
       * @returns {any}
       */
      lookup(key) {
        return this.node?.search(key)?.value ?? null;
      }
    };
    var tree = new TernarySearchTree();
    for (let i5 = 0; i5 < wellknownHeaderNames.length; ++i5) {
      const key = headerNameLowerCasedRecord[wellknownHeaderNames[i5]];
      tree.insert(key, key);
    }
    module.exports = {
      TernarySearchTree,
      tree
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/util.js
var require_util4 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/util.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { kDestroyed, kBodyUsed, kListeners, kBody } = require_symbols2();
    var { IncomingMessage } = __require("node:http");
    var stream7 = __require("node:stream");
    var net2 = __require("node:net");
    var { stringify } = __require("node:querystring");
    var { EventEmitter: EE } = __require("node:events");
    var timers = require_timers();
    var { InvalidArgumentError, ConnectTimeoutError } = require_errors5();
    var { headerNameLowerCasedRecord } = require_constants11();
    var { tree } = require_tree();
    var [nodeMajor, nodeMinor] = process.versions.node.split(".", 2).map((v3) => Number(v3));
    var BodyAsyncIterable = class {
      constructor(body) {
        this[kBody] = body;
        this[kBodyUsed] = false;
      }
      async *[Symbol.asyncIterator]() {
        assert3(!this[kBodyUsed], "disturbed");
        this[kBodyUsed] = true;
        yield* this[kBody];
      }
    };
    function noop6() {
    }
    function wrapRequestBody(body) {
      if (isStream3(body)) {
        if (bodyLength(body) === 0) {
          body.on("data", function() {
            assert3(false);
          });
        }
        if (typeof body.readableDidRead !== "boolean") {
          body[kBodyUsed] = false;
          EE.prototype.on.call(body, "data", function() {
            this[kBodyUsed] = true;
          });
        }
        return body;
      } else if (body && typeof body.pipeTo === "function") {
        return new BodyAsyncIterable(body);
      } else if (body && isFormDataLike(body)) {
        return body;
      } else if (body && typeof body !== "string" && !ArrayBuffer.isView(body) && isIterable5(body)) {
        return new BodyAsyncIterable(body);
      } else {
        return body;
      }
    }
    function isStream3(obj) {
      return obj && typeof obj === "object" && typeof obj.pipe === "function" && typeof obj.on === "function";
    }
    function isBlobLike(object) {
      if (object === null) {
        return false;
      } else if (object instanceof Blob) {
        return true;
      } else if (typeof object !== "object") {
        return false;
      } else {
        const sTag = object[Symbol.toStringTag];
        return (sTag === "Blob" || sTag === "File") && ("stream" in object && typeof object.stream === "function" || "arrayBuffer" in object && typeof object.arrayBuffer === "function");
      }
    }
    function pathHasQueryOrFragment(url3) {
      return url3.includes("?") || url3.includes("#");
    }
    function serializePathWithQuery(url3, queryParams) {
      if (pathHasQueryOrFragment(url3)) {
        throw new Error('Query params cannot be passed when url already contains "?" or "#".');
      }
      const stringified = stringify(queryParams);
      if (stringified) {
        url3 += "?" + stringified;
      }
      return url3;
    }
    function isValidPort(port) {
      const value2 = parseInt(port, 10);
      return value2 === Number(port) && value2 >= 0 && value2 <= 65535;
    }
    function isHttpOrHttpsPrefixed(value2) {
      return value2 != null && value2[0] === "h" && value2[1] === "t" && value2[2] === "t" && value2[3] === "p" && (value2[4] === ":" || value2[4] === "s" && value2[5] === ":");
    }
    function parseURL(url3) {
      if (typeof url3 === "string") {
        url3 = new URL(url3);
        if (!isHttpOrHttpsPrefixed(url3.origin || url3.protocol)) {
          throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");
        }
        return url3;
      }
      if (!url3 || typeof url3 !== "object") {
        throw new InvalidArgumentError("Invalid URL: The URL argument must be a non-null object.");
      }
      if (!(url3 instanceof URL)) {
        if (url3.port != null && url3.port !== "" && isValidPort(url3.port) === false) {
          throw new InvalidArgumentError("Invalid URL: port must be a valid integer or a string representation of an integer.");
        }
        if (url3.path != null && typeof url3.path !== "string") {
          throw new InvalidArgumentError("Invalid URL path: the path must be a string or null/undefined.");
        }
        if (url3.pathname != null && typeof url3.pathname !== "string") {
          throw new InvalidArgumentError("Invalid URL pathname: the pathname must be a string or null/undefined.");
        }
        if (url3.hostname != null && typeof url3.hostname !== "string") {
          throw new InvalidArgumentError("Invalid URL hostname: the hostname must be a string or null/undefined.");
        }
        if (url3.origin != null && typeof url3.origin !== "string") {
          throw new InvalidArgumentError("Invalid URL origin: the origin must be a string or null/undefined.");
        }
        if (!isHttpOrHttpsPrefixed(url3.origin || url3.protocol)) {
          throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");
        }
        const port = url3.port != null ? url3.port : url3.protocol === "https:" ? 443 : 80;
        let origin2 = url3.origin != null ? url3.origin : `${url3.protocol || ""}//${url3.hostname || ""}:${port}`;
        let path3 = url3.path != null ? url3.path : `${url3.pathname || ""}${url3.search || ""}`;
        if (origin2[origin2.length - 1] === "/") {
          origin2 = origin2.slice(0, origin2.length - 1);
        }
        if (path3 && path3[0] !== "/") {
          path3 = `/${path3}`;
        }
        return new URL(`${origin2}${path3}`);
      }
      if (!isHttpOrHttpsPrefixed(url3.origin || url3.protocol)) {
        throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");
      }
      return url3;
    }
    function parseOrigin(url3) {
      url3 = parseURL(url3);
      if (url3.pathname !== "/" || url3.search || url3.hash) {
        throw new InvalidArgumentError("invalid url");
      }
      return url3;
    }
    function getHostname(host) {
      if (host[0] === "[") {
        const idx2 = host.indexOf("]");
        assert3(idx2 !== -1);
        return host.substring(1, idx2);
      }
      const idx = host.indexOf(":");
      if (idx === -1) return host;
      return host.substring(0, idx);
    }
    function getServerName(host) {
      if (!host) {
        return null;
      }
      assert3(typeof host === "string");
      const servername = getHostname(host);
      if (net2.isIP(servername)) {
        return "";
      }
      return servername;
    }
    function deepClone(obj) {
      return JSON.parse(JSON.stringify(obj));
    }
    function isAsyncIterable4(obj) {
      return !!(obj != null && typeof obj[Symbol.asyncIterator] === "function");
    }
    function isIterable5(obj) {
      return !!(obj != null && (typeof obj[Symbol.iterator] === "function" || typeof obj[Symbol.asyncIterator] === "function"));
    }
    function bodyLength(body) {
      if (body == null) {
        return 0;
      } else if (isStream3(body)) {
        const state = body._readableState;
        return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length) ? state.length : null;
      } else if (isBlobLike(body)) {
        return body.size != null ? body.size : null;
      } else if (isBuffer4(body)) {
        return body.byteLength;
      }
      return null;
    }
    function isDestroyed(body) {
      return body && !!(body.destroyed || body[kDestroyed] || stream7.isDestroyed?.(body));
    }
    function destroy(stream8, err2) {
      if (stream8 == null || !isStream3(stream8) || isDestroyed(stream8)) {
        return;
      }
      if (typeof stream8.destroy === "function") {
        if (Object.getPrototypeOf(stream8).constructor === IncomingMessage) {
          stream8.socket = null;
        }
        stream8.destroy(err2);
      } else if (err2) {
        queueMicrotask(() => {
          stream8.emit("error", err2);
        });
      }
      if (stream8.destroyed !== true) {
        stream8[kDestroyed] = true;
      }
    }
    var KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/;
    function parseKeepAliveTimeout(val) {
      const m3 = val.match(KEEPALIVE_TIMEOUT_EXPR);
      return m3 ? parseInt(m3[1], 10) * 1e3 : null;
    }
    function headerNameToString(value2) {
      return typeof value2 === "string" ? headerNameLowerCasedRecord[value2] ?? value2.toLowerCase() : tree.lookup(value2) ?? value2.toString("latin1").toLowerCase();
    }
    function bufferToLowerCasedHeaderName(value2) {
      return tree.lookup(value2) ?? value2.toString("latin1").toLowerCase();
    }
    function parseHeaders(headers, obj) {
      if (obj === void 0) obj = {};
      for (let i5 = 0; i5 < headers.length; i5 += 2) {
        const key = headerNameToString(headers[i5]);
        let val = obj[key];
        if (val) {
          if (typeof val === "string") {
            val = [val];
            obj[key] = val;
          }
          val.push(headers[i5 + 1].toString("latin1"));
        } else {
          const headersValue = headers[i5 + 1];
          if (typeof headersValue === "string") {
            obj[key] = headersValue;
          } else {
            obj[key] = Array.isArray(headersValue) ? headersValue.map((x) => x.toString("latin1")) : headersValue.toString("latin1");
          }
        }
      }
      return obj;
    }
    function parseRawHeaders(headers) {
      const headersLength = headers.length;
      const ret = new Array(headersLength);
      let key;
      let val;
      for (let n6 = 0; n6 < headersLength; n6 += 2) {
        key = headers[n6];
        val = headers[n6 + 1];
        typeof key !== "string" && (key = key.toString());
        typeof val !== "string" && (val = val.toString("latin1"));
        ret[n6] = key;
        ret[n6 + 1] = val;
      }
      return ret;
    }
    function encodeRawHeaders(headers) {
      if (!Array.isArray(headers)) {
        throw new TypeError("expected headers to be an array");
      }
      return headers.map((x) => Buffer.from(x));
    }
    function isBuffer4(buffer) {
      return buffer instanceof Uint8Array || Buffer.isBuffer(buffer);
    }
    function assertRequestHandler(handler, method, upgrade) {
      if (!handler || typeof handler !== "object") {
        throw new InvalidArgumentError("handler must be an object");
      }
      if (typeof handler.onRequestStart === "function") {
        return;
      }
      if (typeof handler.onConnect !== "function") {
        throw new InvalidArgumentError("invalid onConnect method");
      }
      if (typeof handler.onError !== "function") {
        throw new InvalidArgumentError("invalid onError method");
      }
      if (typeof handler.onBodySent !== "function" && handler.onBodySent !== void 0) {
        throw new InvalidArgumentError("invalid onBodySent method");
      }
      if (upgrade || method === "CONNECT") {
        if (typeof handler.onUpgrade !== "function") {
          throw new InvalidArgumentError("invalid onUpgrade method");
        }
      } else {
        if (typeof handler.onHeaders !== "function") {
          throw new InvalidArgumentError("invalid onHeaders method");
        }
        if (typeof handler.onData !== "function") {
          throw new InvalidArgumentError("invalid onData method");
        }
        if (typeof handler.onComplete !== "function") {
          throw new InvalidArgumentError("invalid onComplete method");
        }
      }
    }
    function isDisturbed(body) {
      return !!(body && (stream7.isDisturbed(body) || body[kBodyUsed]));
    }
    function getSocketInfo(socket) {
      return {
        localAddress: socket.localAddress,
        localPort: socket.localPort,
        remoteAddress: socket.remoteAddress,
        remotePort: socket.remotePort,
        remoteFamily: socket.remoteFamily,
        timeout: socket.timeout,
        bytesWritten: socket.bytesWritten,
        bytesRead: socket.bytesRead
      };
    }
    function ReadableStreamFrom(iterable) {
      let iterator2;
      return new ReadableStream(
        {
          start() {
            iterator2 = iterable[Symbol.asyncIterator]();
          },
          pull(controller) {
            return iterator2.next().then(({ done, value: value2 }) => {
              if (done) {
                return queueMicrotask(() => {
                  controller.close();
                  controller.byobRequest?.respond(0);
                });
              } else {
                const buf = Buffer.isBuffer(value2) ? value2 : Buffer.from(value2);
                if (buf.byteLength) {
                  return controller.enqueue(new Uint8Array(buf));
                } else {
                  return this.pull(controller);
                }
              }
            });
          },
          cancel() {
            return iterator2.return();
          },
          type: "bytes"
        }
      );
    }
    function isFormDataLike(object) {
      return object && typeof object === "object" && typeof object.append === "function" && typeof object.delete === "function" && typeof object.get === "function" && typeof object.getAll === "function" && typeof object.has === "function" && typeof object.set === "function" && object[Symbol.toStringTag] === "FormData";
    }
    function addAbortListener(signal, listener) {
      if ("addEventListener" in signal) {
        signal.addEventListener("abort", listener, { once: true });
        return () => signal.removeEventListener("abort", listener);
      }
      signal.once("abort", listener);
      return () => signal.removeListener("abort", listener);
    }
    var validTokenChars = new Uint8Array([
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      // 0-15
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      // 16-31
      0,
      1,
      0,
      1,
      1,
      1,
      1,
      1,
      0,
      0,
      1,
      1,
      0,
      1,
      1,
      0,
      // 32-47 (!"#$%&'()*+,-./)
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      0,
      0,
      0,
      0,
      0,
      0,
      // 48-63 (0-9:;<=>?)
      0,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      // 64-79 (@A-O)
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      0,
      0,
      0,
      1,
      1,
      // 80-95 (P-Z[\]^_)
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      // 96-111 (`a-o)
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      0,
      1,
      0,
      1,
      0,
      // 112-127 (p-z{|}~)
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      // 128-143
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      // 144-159
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      // 160-175
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      // 176-191
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      // 192-207
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      // 208-223
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      // 224-239
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0
      // 240-255
    ]);
    function isTokenCharCode(c6) {
      return validTokenChars[c6] === 1;
    }
    var tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;
    function isValidHTTPToken(characters2) {
      if (characters2.length >= 12) return tokenRegExp.test(characters2);
      if (characters2.length === 0) return false;
      for (let i5 = 0; i5 < characters2.length; i5++) {
        if (validTokenChars[characters2.charCodeAt(i5)] !== 1) {
          return false;
        }
      }
      return true;
    }
    var headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/;
    function isValidHeaderValue(characters2) {
      return !headerCharRegex.test(characters2);
    }
    var rangeHeaderRegex = /^bytes (\d+)-(\d+)\/(\d+)?$/;
    function parseRangeHeader(range2) {
      if (range2 == null || range2 === "") return { start: 0, end: null, size: null };
      const m3 = range2 ? range2.match(rangeHeaderRegex) : null;
      return m3 ? {
        start: parseInt(m3[1]),
        end: m3[2] ? parseInt(m3[2]) : null,
        size: m3[3] ? parseInt(m3[3]) : null
      } : null;
    }
    function addListener(obj, name, listener) {
      const listeners = obj[kListeners] ??= [];
      listeners.push([name, listener]);
      obj.on(name, listener);
      return obj;
    }
    function removeAllListeners(obj) {
      if (obj[kListeners] != null) {
        for (const [name, listener] of obj[kListeners]) {
          obj.removeListener(name, listener);
        }
        obj[kListeners] = null;
      }
      return obj;
    }
    function errorRequest(client, request, err2) {
      try {
        request.onError(err2);
        assert3(request.aborted);
      } catch (err3) {
        client.emit("error", err3);
      }
    }
    var setupConnectTimeout = process.platform === "win32" ? (socketWeakRef, opts2) => {
      if (!opts2.timeout) {
        return noop6;
      }
      let s1 = null;
      let s22 = null;
      const fastTimer = timers.setFastTimeout(() => {
        s1 = setImmediate(() => {
          s22 = setImmediate(() => onConnectTimeout(socketWeakRef.deref(), opts2));
        });
      }, opts2.timeout);
      return () => {
        timers.clearFastTimeout(fastTimer);
        clearImmediate(s1);
        clearImmediate(s22);
      };
    } : (socketWeakRef, opts2) => {
      if (!opts2.timeout) {
        return noop6;
      }
      let s1 = null;
      const fastTimer = timers.setFastTimeout(() => {
        s1 = setImmediate(() => {
          onConnectTimeout(socketWeakRef.deref(), opts2);
        });
      }, opts2.timeout);
      return () => {
        timers.clearFastTimeout(fastTimer);
        clearImmediate(s1);
      };
    };
    function onConnectTimeout(socket, opts2) {
      if (socket == null) {
        return;
      }
      let message = "Connect Timeout Error";
      if (Array.isArray(socket.autoSelectFamilyAttemptedAddresses)) {
        message += ` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},`;
      } else {
        message += ` (attempted address: ${opts2.hostname}:${opts2.port},`;
      }
      message += ` timeout: ${opts2.timeout}ms)`;
      destroy(socket, new ConnectTimeoutError(message));
    }
    function getProtocolFromUrlString(urlString) {
      if (urlString[0] === "h" && urlString[1] === "t" && urlString[2] === "t" && urlString[3] === "p") {
        switch (urlString[4]) {
          case ":":
            return "http:";
          case "s":
            if (urlString[5] === ":") {
              return "https:";
            }
        }
      }
      return urlString.slice(0, urlString.indexOf(":") + 1);
    }
    var kEnumerableProperty = /* @__PURE__ */ Object.create(null);
    kEnumerableProperty.enumerable = true;
    var normalizedMethodRecordsBase = {
      delete: "DELETE",
      DELETE: "DELETE",
      get: "GET",
      GET: "GET",
      head: "HEAD",
      HEAD: "HEAD",
      options: "OPTIONS",
      OPTIONS: "OPTIONS",
      post: "POST",
      POST: "POST",
      put: "PUT",
      PUT: "PUT"
    };
    var normalizedMethodRecords = {
      ...normalizedMethodRecordsBase,
      patch: "patch",
      PATCH: "PATCH"
    };
    Object.setPrototypeOf(normalizedMethodRecordsBase, null);
    Object.setPrototypeOf(normalizedMethodRecords, null);
    module.exports = {
      kEnumerableProperty,
      isDisturbed,
      isBlobLike,
      parseOrigin,
      parseURL,
      getServerName,
      isStream: isStream3,
      isIterable: isIterable5,
      isAsyncIterable: isAsyncIterable4,
      isDestroyed,
      headerNameToString,
      bufferToLowerCasedHeaderName,
      addListener,
      removeAllListeners,
      errorRequest,
      parseRawHeaders,
      encodeRawHeaders,
      parseHeaders,
      parseKeepAliveTimeout,
      destroy,
      bodyLength,
      deepClone,
      ReadableStreamFrom,
      isBuffer: isBuffer4,
      assertRequestHandler,
      getSocketInfo,
      isFormDataLike,
      pathHasQueryOrFragment,
      serializePathWithQuery,
      addAbortListener,
      isValidHTTPToken,
      isValidHeaderValue,
      isTokenCharCode,
      parseRangeHeader,
      normalizedMethodRecordsBase,
      normalizedMethodRecords,
      isValidPort,
      isHttpOrHttpsPrefixed,
      nodeMajor,
      nodeMinor,
      safeHTTPMethods: Object.freeze(["GET", "HEAD", "OPTIONS", "TRACE"]),
      wrapRequestBody,
      setupConnectTimeout,
      getProtocolFromUrlString
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/util/stats.js
var require_stats = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/util/stats.js"(exports, module) {
    "use strict";
    var {
      kConnected,
      kPending,
      kRunning,
      kSize,
      kFree,
      kQueued
    } = require_symbols2();
    var ClientStats = class {
      constructor(client) {
        this.connected = client[kConnected];
        this.pending = client[kPending];
        this.running = client[kRunning];
        this.size = client[kSize];
      }
    };
    var PoolStats = class {
      constructor(pool) {
        this.connected = pool[kConnected];
        this.free = pool[kFree];
        this.pending = pool[kPending];
        this.queued = pool[kQueued];
        this.running = pool[kRunning];
        this.size = pool[kSize];
      }
    };
    module.exports = { ClientStats, PoolStats };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/diagnostics.js
var require_diagnostics = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/diagnostics.js"(exports, module) {
    "use strict";
    var diagnosticsChannel2 = __require("node:diagnostics_channel");
    var util3 = __require("node:util");
    var undiciDebugLog = util3.debuglog("undici");
    var fetchDebuglog = util3.debuglog("fetch");
    var websocketDebuglog = util3.debuglog("websocket");
    var channels2 = {
      // Client
      beforeConnect: diagnosticsChannel2.channel("undici:client:beforeConnect"),
      connected: diagnosticsChannel2.channel("undici:client:connected"),
      connectError: diagnosticsChannel2.channel("undici:client:connectError"),
      sendHeaders: diagnosticsChannel2.channel("undici:client:sendHeaders"),
      // Request
      create: diagnosticsChannel2.channel("undici:request:create"),
      bodySent: diagnosticsChannel2.channel("undici:request:bodySent"),
      bodyChunkSent: diagnosticsChannel2.channel("undici:request:bodyChunkSent"),
      bodyChunkReceived: diagnosticsChannel2.channel("undici:request:bodyChunkReceived"),
      headers: diagnosticsChannel2.channel("undici:request:headers"),
      trailers: diagnosticsChannel2.channel("undici:request:trailers"),
      error: diagnosticsChannel2.channel("undici:request:error"),
      // WebSocket
      open: diagnosticsChannel2.channel("undici:websocket:open"),
      close: diagnosticsChannel2.channel("undici:websocket:close"),
      socketError: diagnosticsChannel2.channel("undici:websocket:socket_error"),
      ping: diagnosticsChannel2.channel("undici:websocket:ping"),
      pong: diagnosticsChannel2.channel("undici:websocket:pong"),
      // ProxyAgent
      proxyConnected: diagnosticsChannel2.channel("undici:proxy:connected")
    };
    var isTrackingClientEvents = false;
    function trackClientEvents(debugLog = undiciDebugLog) {
      if (isTrackingClientEvents) {
        return;
      }
      if (channels2.beforeConnect.hasSubscribers || channels2.connected.hasSubscribers || channels2.connectError.hasSubscribers || channels2.sendHeaders.hasSubscribers) {
        isTrackingClientEvents = true;
        return;
      }
      isTrackingClientEvents = true;
      diagnosticsChannel2.subscribe(
        "undici:client:beforeConnect",
        (evt) => {
          const {
            connectParams: { version: version2, protocol, port, host }
          } = evt;
          debugLog(
            "connecting to %s%s using %s%s",
            host,
            port ? `:${port}` : "",
            protocol,
            version2
          );
        }
      );
      diagnosticsChannel2.subscribe(
        "undici:client:connected",
        (evt) => {
          const {
            connectParams: { version: version2, protocol, port, host }
          } = evt;
          debugLog(
            "connected to %s%s using %s%s",
            host,
            port ? `:${port}` : "",
            protocol,
            version2
          );
        }
      );
      diagnosticsChannel2.subscribe(
        "undici:client:connectError",
        (evt) => {
          const {
            connectParams: { version: version2, protocol, port, host },
            error
          } = evt;
          debugLog(
            "connection to %s%s using %s%s errored - %s",
            host,
            port ? `:${port}` : "",
            protocol,
            version2,
            error.message
          );
        }
      );
      diagnosticsChannel2.subscribe(
        "undici:client:sendHeaders",
        (evt) => {
          const {
            request: { method, path: path3, origin: origin2 }
          } = evt;
          debugLog("sending request to %s %s%s", method, origin2, path3);
        }
      );
    }
    var isTrackingRequestEvents = false;
    function trackRequestEvents(debugLog = undiciDebugLog) {
      if (isTrackingRequestEvents) {
        return;
      }
      if (channels2.headers.hasSubscribers || channels2.trailers.hasSubscribers || channels2.error.hasSubscribers) {
        isTrackingRequestEvents = true;
        return;
      }
      isTrackingRequestEvents = true;
      diagnosticsChannel2.subscribe(
        "undici:request:headers",
        (evt) => {
          const {
            request: { method, path: path3, origin: origin2 },
            response: { statusCode }
          } = evt;
          debugLog(
            "received response to %s %s%s - HTTP %d",
            method,
            origin2,
            path3,
            statusCode
          );
        }
      );
      diagnosticsChannel2.subscribe(
        "undici:request:trailers",
        (evt) => {
          const {
            request: { method, path: path3, origin: origin2 }
          } = evt;
          debugLog("trailers received from %s %s%s", method, origin2, path3);
        }
      );
      diagnosticsChannel2.subscribe(
        "undici:request:error",
        (evt) => {
          const {
            request: { method, path: path3, origin: origin2 },
            error
          } = evt;
          debugLog(
            "request to %s %s%s errored - %s",
            method,
            origin2,
            path3,
            error.message
          );
        }
      );
    }
    var isTrackingWebSocketEvents = false;
    function trackWebSocketEvents(debugLog = websocketDebuglog) {
      if (isTrackingWebSocketEvents) {
        return;
      }
      if (channels2.open.hasSubscribers || channels2.close.hasSubscribers || channels2.socketError.hasSubscribers || channels2.ping.hasSubscribers || channels2.pong.hasSubscribers) {
        isTrackingWebSocketEvents = true;
        return;
      }
      isTrackingWebSocketEvents = true;
      diagnosticsChannel2.subscribe(
        "undici:websocket:open",
        (evt) => {
          const {
            address: { address, port }
          } = evt;
          debugLog("connection opened %s%s", address, port ? `:${port}` : "");
        }
      );
      diagnosticsChannel2.subscribe(
        "undici:websocket:close",
        (evt) => {
          const { websocket, code, reason } = evt;
          debugLog(
            "closed connection to %s - %s %s",
            websocket.url,
            code,
            reason
          );
        }
      );
      diagnosticsChannel2.subscribe(
        "undici:websocket:socket_error",
        (err2) => {
          debugLog("connection errored - %s", err2.message);
        }
      );
      diagnosticsChannel2.subscribe(
        "undici:websocket:ping",
        (evt) => {
          debugLog("ping received");
        }
      );
      diagnosticsChannel2.subscribe(
        "undici:websocket:pong",
        (evt) => {
          debugLog("pong received");
        }
      );
    }
    if (undiciDebugLog.enabled || fetchDebuglog.enabled) {
      trackClientEvents(fetchDebuglog.enabled ? fetchDebuglog : undiciDebugLog);
      trackRequestEvents(fetchDebuglog.enabled ? fetchDebuglog : undiciDebugLog);
    }
    if (websocketDebuglog.enabled) {
      trackClientEvents(undiciDebugLog.enabled ? undiciDebugLog : websocketDebuglog);
      trackWebSocketEvents(websocketDebuglog);
    }
    module.exports = {
      channels: channels2
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/request.js
var require_request2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/request.js"(exports, module) {
    "use strict";
    var {
      InvalidArgumentError,
      NotSupportedError
    } = require_errors5();
    var assert3 = __require("node:assert");
    var {
      isValidHTTPToken,
      isValidHeaderValue,
      isStream: isStream3,
      destroy,
      isBuffer: isBuffer4,
      isFormDataLike,
      isIterable: isIterable5,
      isBlobLike,
      serializePathWithQuery,
      assertRequestHandler,
      getServerName,
      normalizedMethodRecords,
      getProtocolFromUrlString
    } = require_util4();
    var { channels: channels2 } = require_diagnostics();
    var { headerNameLowerCasedRecord } = require_constants11();
    var invalidPathRegex = /[^\u0021-\u00ff]/;
    var kHandler = Symbol("handler");
    var Request3 = class {
      constructor(origin2, {
        path: path3,
        method,
        body,
        headers,
        query,
        idempotent,
        blocking,
        upgrade,
        headersTimeout,
        bodyTimeout,
        reset,
        expectContinue,
        servername,
        throwOnError,
        maxRedirections
      }, handler) {
        if (typeof path3 !== "string") {
          throw new InvalidArgumentError("path must be a string");
        } else if (path3[0] !== "/" && !(path3.startsWith("http://") || path3.startsWith("https://")) && method !== "CONNECT") {
          throw new InvalidArgumentError("path must be an absolute URL or start with a slash");
        } else if (invalidPathRegex.test(path3)) {
          throw new InvalidArgumentError("invalid request path");
        }
        if (typeof method !== "string") {
          throw new InvalidArgumentError("method must be a string");
        } else if (normalizedMethodRecords[method] === void 0 && !isValidHTTPToken(method)) {
          throw new InvalidArgumentError("invalid request method");
        }
        if (upgrade && typeof upgrade !== "string") {
          throw new InvalidArgumentError("upgrade must be a string");
        }
        if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {
          throw new InvalidArgumentError("invalid headersTimeout");
        }
        if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {
          throw new InvalidArgumentError("invalid bodyTimeout");
        }
        if (reset != null && typeof reset !== "boolean") {
          throw new InvalidArgumentError("invalid reset");
        }
        if (expectContinue != null && typeof expectContinue !== "boolean") {
          throw new InvalidArgumentError("invalid expectContinue");
        }
        if (throwOnError != null) {
          throw new InvalidArgumentError("invalid throwOnError");
        }
        if (maxRedirections != null && maxRedirections !== 0) {
          throw new InvalidArgumentError("maxRedirections is not supported, use the redirect interceptor");
        }
        this.headersTimeout = headersTimeout;
        this.bodyTimeout = bodyTimeout;
        this.method = method;
        this.abort = null;
        if (body == null) {
          this.body = null;
        } else if (isStream3(body)) {
          this.body = body;
          const rState = this.body._readableState;
          if (!rState || !rState.autoDestroy) {
            this.endHandler = function autoDestroy() {
              destroy(this);
            };
            this.body.on("end", this.endHandler);
          }
          this.errorHandler = (err2) => {
            if (this.abort) {
              this.abort(err2);
            } else {
              this.error = err2;
            }
          };
          this.body.on("error", this.errorHandler);
        } else if (isBuffer4(body)) {
          this.body = body.byteLength ? body : null;
        } else if (ArrayBuffer.isView(body)) {
          this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null;
        } else if (body instanceof ArrayBuffer) {
          this.body = body.byteLength ? Buffer.from(body) : null;
        } else if (typeof body === "string") {
          this.body = body.length ? Buffer.from(body) : null;
        } else if (isFormDataLike(body) || isIterable5(body) || isBlobLike(body)) {
          this.body = body;
        } else {
          throw new InvalidArgumentError("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");
        }
        this.completed = false;
        this.aborted = false;
        this.upgrade = upgrade || null;
        this.path = query ? serializePathWithQuery(path3, query) : path3;
        this.origin = origin2;
        this.protocol = getProtocolFromUrlString(origin2);
        this.idempotent = idempotent == null ? method === "HEAD" || method === "GET" : idempotent;
        this.blocking = blocking ?? this.method !== "HEAD";
        this.reset = reset == null ? null : reset;
        this.host = null;
        this.contentLength = null;
        this.contentType = null;
        this.headers = [];
        this.expectContinue = expectContinue != null ? expectContinue : false;
        if (Array.isArray(headers)) {
          if (headers.length % 2 !== 0) {
            throw new InvalidArgumentError("headers array must be even");
          }
          for (let i5 = 0; i5 < headers.length; i5 += 2) {
            processHeader(this, headers[i5], headers[i5 + 1]);
          }
        } else if (headers && typeof headers === "object") {
          if (headers[Symbol.iterator]) {
            for (const header of headers) {
              if (!Array.isArray(header) || header.length !== 2) {
                throw new InvalidArgumentError("headers must be in key-value pair format");
              }
              processHeader(this, header[0], header[1]);
            }
          } else {
            const keys2 = Object.keys(headers);
            for (let i5 = 0; i5 < keys2.length; ++i5) {
              processHeader(this, keys2[i5], headers[keys2[i5]]);
            }
          }
        } else if (headers != null) {
          throw new InvalidArgumentError("headers must be an object or an array");
        }
        assertRequestHandler(handler, method, upgrade);
        this.servername = servername || getServerName(this.host) || null;
        this[kHandler] = handler;
        if (channels2.create.hasSubscribers) {
          channels2.create.publish({ request: this });
        }
      }
      onBodySent(chunk3) {
        if (channels2.bodyChunkSent.hasSubscribers) {
          channels2.bodyChunkSent.publish({ request: this, chunk: chunk3 });
        }
        if (this[kHandler].onBodySent) {
          try {
            return this[kHandler].onBodySent(chunk3);
          } catch (err2) {
            this.abort(err2);
          }
        }
      }
      onRequestSent() {
        if (channels2.bodySent.hasSubscribers) {
          channels2.bodySent.publish({ request: this });
        }
        if (this[kHandler].onRequestSent) {
          try {
            return this[kHandler].onRequestSent();
          } catch (err2) {
            this.abort(err2);
          }
        }
      }
      onConnect(abort) {
        assert3(!this.aborted);
        assert3(!this.completed);
        if (this.error) {
          abort(this.error);
        } else {
          this.abort = abort;
          return this[kHandler].onConnect(abort);
        }
      }
      onResponseStarted() {
        return this[kHandler].onResponseStarted?.();
      }
      onHeaders(statusCode, headers, resume, statusText) {
        assert3(!this.aborted);
        assert3(!this.completed);
        if (channels2.headers.hasSubscribers) {
          channels2.headers.publish({ request: this, response: { statusCode, headers, statusText } });
        }
        try {
          return this[kHandler].onHeaders(statusCode, headers, resume, statusText);
        } catch (err2) {
          this.abort(err2);
        }
      }
      onData(chunk3) {
        assert3(!this.aborted);
        assert3(!this.completed);
        if (channels2.bodyChunkReceived.hasSubscribers) {
          channels2.bodyChunkReceived.publish({ request: this, chunk: chunk3 });
        }
        try {
          return this[kHandler].onData(chunk3);
        } catch (err2) {
          this.abort(err2);
          return false;
        }
      }
      onUpgrade(statusCode, headers, socket) {
        assert3(!this.aborted);
        assert3(!this.completed);
        return this[kHandler].onUpgrade(statusCode, headers, socket);
      }
      onComplete(trailers) {
        this.onFinally();
        assert3(!this.aborted);
        assert3(!this.completed);
        this.completed = true;
        if (channels2.trailers.hasSubscribers) {
          channels2.trailers.publish({ request: this, trailers });
        }
        try {
          return this[kHandler].onComplete(trailers);
        } catch (err2) {
          this.onError(err2);
        }
      }
      onError(error) {
        this.onFinally();
        if (channels2.error.hasSubscribers) {
          channels2.error.publish({ request: this, error });
        }
        if (this.aborted) {
          return;
        }
        this.aborted = true;
        return this[kHandler].onError(error);
      }
      onFinally() {
        if (this.errorHandler) {
          this.body.off("error", this.errorHandler);
          this.errorHandler = null;
        }
        if (this.endHandler) {
          this.body.off("end", this.endHandler);
          this.endHandler = null;
        }
      }
      addHeader(key, value2) {
        processHeader(this, key, value2);
        return this;
      }
    };
    function processHeader(request, key, val) {
      if (val && (typeof val === "object" && !Array.isArray(val))) {
        throw new InvalidArgumentError(`invalid ${key} header`);
      } else if (val === void 0) {
        return;
      }
      let headerName = headerNameLowerCasedRecord[key];
      if (headerName === void 0) {
        headerName = key.toLowerCase();
        if (headerNameLowerCasedRecord[headerName] === void 0 && !isValidHTTPToken(headerName)) {
          throw new InvalidArgumentError("invalid header key");
        }
      }
      if (Array.isArray(val)) {
        const arr = [];
        for (let i5 = 0; i5 < val.length; i5++) {
          if (typeof val[i5] === "string") {
            if (!isValidHeaderValue(val[i5])) {
              throw new InvalidArgumentError(`invalid ${key} header`);
            }
            arr.push(val[i5]);
          } else if (val[i5] === null) {
            arr.push("");
          } else if (typeof val[i5] === "object") {
            throw new InvalidArgumentError(`invalid ${key} header`);
          } else {
            arr.push(`${val[i5]}`);
          }
        }
        val = arr;
      } else if (typeof val === "string") {
        if (!isValidHeaderValue(val)) {
          throw new InvalidArgumentError(`invalid ${key} header`);
        }
      } else if (val === null) {
        val = "";
      } else {
        val = `${val}`;
      }
      if (request.host === null && headerName === "host") {
        if (typeof val !== "string") {
          throw new InvalidArgumentError("invalid host header");
        }
        request.host = val;
      } else if (request.contentLength === null && headerName === "content-length") {
        request.contentLength = parseInt(val, 10);
        if (!Number.isFinite(request.contentLength)) {
          throw new InvalidArgumentError("invalid content-length header");
        }
      } else if (request.contentType === null && headerName === "content-type") {
        request.contentType = val;
        request.headers.push(key, val);
      } else if (headerName === "transfer-encoding" || headerName === "keep-alive" || headerName === "upgrade") {
        throw new InvalidArgumentError(`invalid ${headerName} header`);
      } else if (headerName === "connection") {
        const value2 = typeof val === "string" ? val.toLowerCase() : null;
        if (value2 !== "close" && value2 !== "keep-alive") {
          throw new InvalidArgumentError("invalid connection header");
        }
        if (value2 === "close") {
          request.reset = true;
        }
      } else if (headerName === "expect") {
        throw new NotSupportedError("expect header not supported");
      } else {
        request.headers.push(key, val);
      }
    }
    module.exports = Request3;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/wrap-handler.js
var require_wrap_handler = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/wrap-handler.js"(exports, module) {
    "use strict";
    var { InvalidArgumentError } = require_errors5();
    module.exports = class WrapHandler {
      #handler;
      constructor(handler) {
        this.#handler = handler;
      }
      static wrap(handler) {
        return handler.onRequestStart ? handler : new WrapHandler(handler);
      }
      // Unwrap Interface
      onConnect(abort, context) {
        return this.#handler.onConnect?.(abort, context);
      }
      onHeaders(statusCode, rawHeaders, resume, statusMessage) {
        return this.#handler.onHeaders?.(statusCode, rawHeaders, resume, statusMessage);
      }
      onUpgrade(statusCode, rawHeaders, socket) {
        return this.#handler.onUpgrade?.(statusCode, rawHeaders, socket);
      }
      onData(data2) {
        return this.#handler.onData?.(data2);
      }
      onComplete(trailers) {
        return this.#handler.onComplete?.(trailers);
      }
      onError(err2) {
        if (!this.#handler.onError) {
          throw err2;
        }
        return this.#handler.onError?.(err2);
      }
      // Wrap Interface
      onRequestStart(controller, context) {
        this.#handler.onConnect?.((reason) => controller.abort(reason), context);
      }
      onRequestUpgrade(controller, statusCode, headers, socket) {
        const rawHeaders = [];
        for (const [key, val] of Object.entries(headers)) {
          rawHeaders.push(Buffer.from(key), Array.isArray(val) ? val.map((v3) => Buffer.from(v3)) : Buffer.from(val));
        }
        this.#handler.onUpgrade?.(statusCode, rawHeaders, socket);
      }
      onResponseStart(controller, statusCode, headers, statusMessage) {
        const rawHeaders = [];
        for (const [key, val] of Object.entries(headers)) {
          rawHeaders.push(Buffer.from(key), Array.isArray(val) ? val.map((v3) => Buffer.from(v3)) : Buffer.from(val));
        }
        if (this.#handler.onHeaders?.(statusCode, rawHeaders, () => controller.resume(), statusMessage) === false) {
          controller.pause();
        }
      }
      onResponseData(controller, data2) {
        if (this.#handler.onData?.(data2) === false) {
          controller.pause();
        }
      }
      onResponseEnd(controller, trailers) {
        const rawTrailers = [];
        for (const [key, val] of Object.entries(trailers)) {
          rawTrailers.push(Buffer.from(key), Array.isArray(val) ? val.map((v3) => Buffer.from(v3)) : Buffer.from(val));
        }
        this.#handler.onComplete?.(rawTrailers);
      }
      onResponseError(controller, err2) {
        if (!this.#handler.onError) {
          throw new InvalidArgumentError("invalid onError method");
        }
        this.#handler.onError?.(err2);
      }
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/dispatcher.js
var require_dispatcher = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/dispatcher.js"(exports, module) {
    "use strict";
    var EventEmitter5 = __require("node:events");
    var WrapHandler = require_wrap_handler();
    var wrapInterceptor = (dispatch) => (opts2, handler) => dispatch(opts2, WrapHandler.wrap(handler));
    var Dispatcher = class extends EventEmitter5 {
      dispatch() {
        throw new Error("not implemented");
      }
      close() {
        throw new Error("not implemented");
      }
      destroy() {
        throw new Error("not implemented");
      }
      compose(...args) {
        const interceptors = Array.isArray(args[0]) ? args[0] : args;
        let dispatch = this.dispatch.bind(this);
        for (const interceptor of interceptors) {
          if (interceptor == null) {
            continue;
          }
          if (typeof interceptor !== "function") {
            throw new TypeError(`invalid interceptor, expected function received ${typeof interceptor}`);
          }
          dispatch = interceptor(dispatch);
          dispatch = wrapInterceptor(dispatch);
          if (dispatch == null || typeof dispatch !== "function" || dispatch.length !== 2) {
            throw new TypeError("invalid interceptor");
          }
        }
        return new Proxy(this, {
          get: (target, key) => key === "dispatch" ? dispatch : target[key]
        });
      }
    };
    module.exports = Dispatcher;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/unwrap-handler.js
var require_unwrap_handler = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/unwrap-handler.js"(exports, module) {
    "use strict";
    var { parseHeaders } = require_util4();
    var { InvalidArgumentError } = require_errors5();
    var kResume = Symbol("resume");
    var UnwrapController = class {
      #paused = false;
      #reason = null;
      #aborted = false;
      #abort;
      [kResume] = null;
      constructor(abort) {
        this.#abort = abort;
      }
      pause() {
        this.#paused = true;
      }
      resume() {
        if (this.#paused) {
          this.#paused = false;
          this[kResume]?.();
        }
      }
      abort(reason) {
        if (!this.#aborted) {
          this.#aborted = true;
          this.#reason = reason;
          this.#abort(reason);
        }
      }
      get aborted() {
        return this.#aborted;
      }
      get reason() {
        return this.#reason;
      }
      get paused() {
        return this.#paused;
      }
    };
    module.exports = class UnwrapHandler {
      #handler;
      #controller;
      constructor(handler) {
        this.#handler = handler;
      }
      static unwrap(handler) {
        return !handler.onRequestStart ? handler : new UnwrapHandler(handler);
      }
      onConnect(abort, context) {
        this.#controller = new UnwrapController(abort);
        this.#handler.onRequestStart?.(this.#controller, context);
      }
      onUpgrade(statusCode, rawHeaders, socket) {
        this.#handler.onRequestUpgrade?.(this.#controller, statusCode, parseHeaders(rawHeaders), socket);
      }
      onHeaders(statusCode, rawHeaders, resume, statusMessage) {
        this.#controller[kResume] = resume;
        this.#handler.onResponseStart?.(this.#controller, statusCode, parseHeaders(rawHeaders), statusMessage);
        return !this.#controller.paused;
      }
      onData(data2) {
        this.#handler.onResponseData?.(this.#controller, data2);
        return !this.#controller.paused;
      }
      onComplete(rawTrailers) {
        this.#handler.onResponseEnd?.(this.#controller, parseHeaders(rawTrailers));
      }
      onError(err2) {
        if (!this.#handler.onResponseError) {
          throw new InvalidArgumentError("invalid onError method");
        }
        this.#handler.onResponseError?.(this.#controller, err2);
      }
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/dispatcher-base.js
var require_dispatcher_base = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/dispatcher-base.js"(exports, module) {
    "use strict";
    var Dispatcher = require_dispatcher();
    var UnwrapHandler = require_unwrap_handler();
    var {
      ClientDestroyedError,
      ClientClosedError,
      InvalidArgumentError
    } = require_errors5();
    var { kDestroy, kClose, kClosed, kDestroyed, kDispatch } = require_symbols2();
    var kOnDestroyed = Symbol("onDestroyed");
    var kOnClosed = Symbol("onClosed");
    var DispatcherBase = class extends Dispatcher {
      /** @type {boolean} */
      [kDestroyed] = false;
      /** @type {Array<Function|null} */
      [kOnDestroyed] = null;
      /** @type {boolean} */
      [kClosed] = false;
      /** @type {Array<Function>|null} */
      [kOnClosed] = null;
      /** @returns {boolean} */
      get destroyed() {
        return this[kDestroyed];
      }
      /** @returns {boolean} */
      get closed() {
        return this[kClosed];
      }
      close(callback) {
        if (callback === void 0) {
          return new Promise((resolve4, reject) => {
            this.close((err2, data2) => {
              return err2 ? reject(err2) : resolve4(data2);
            });
          });
        }
        if (typeof callback !== "function") {
          throw new InvalidArgumentError("invalid callback");
        }
        if (this[kDestroyed]) {
          const err2 = new ClientDestroyedError();
          queueMicrotask(() => callback(err2, null));
          return;
        }
        if (this[kClosed]) {
          if (this[kOnClosed]) {
            this[kOnClosed].push(callback);
          } else {
            queueMicrotask(() => callback(null, null));
          }
          return;
        }
        this[kClosed] = true;
        this[kOnClosed] ??= [];
        this[kOnClosed].push(callback);
        const onClosed = () => {
          const callbacks = this[kOnClosed];
          this[kOnClosed] = null;
          for (let i5 = 0; i5 < callbacks.length; i5++) {
            callbacks[i5](null, null);
          }
        };
        this[kClose]().then(() => this.destroy()).then(() => queueMicrotask(onClosed));
      }
      destroy(err2, callback) {
        if (typeof err2 === "function") {
          callback = err2;
          err2 = null;
        }
        if (callback === void 0) {
          return new Promise((resolve4, reject) => {
            this.destroy(err2, (err3, data2) => {
              return err3 ? reject(err3) : resolve4(data2);
            });
          });
        }
        if (typeof callback !== "function") {
          throw new InvalidArgumentError("invalid callback");
        }
        if (this[kDestroyed]) {
          if (this[kOnDestroyed]) {
            this[kOnDestroyed].push(callback);
          } else {
            queueMicrotask(() => callback(null, null));
          }
          return;
        }
        if (!err2) {
          err2 = new ClientDestroyedError();
        }
        this[kDestroyed] = true;
        this[kOnDestroyed] ??= [];
        this[kOnDestroyed].push(callback);
        const onDestroyed = () => {
          const callbacks = this[kOnDestroyed];
          this[kOnDestroyed] = null;
          for (let i5 = 0; i5 < callbacks.length; i5++) {
            callbacks[i5](null, null);
          }
        };
        this[kDestroy](err2).then(() => queueMicrotask(onDestroyed));
      }
      dispatch(opts2, handler) {
        if (!handler || typeof handler !== "object") {
          throw new InvalidArgumentError("handler must be an object");
        }
        handler = UnwrapHandler.unwrap(handler);
        try {
          if (!opts2 || typeof opts2 !== "object") {
            throw new InvalidArgumentError("opts must be an object.");
          }
          if (this[kDestroyed] || this[kOnDestroyed]) {
            throw new ClientDestroyedError();
          }
          if (this[kClosed]) {
            throw new ClientClosedError();
          }
          return this[kDispatch](opts2, handler);
        } catch (err2) {
          if (typeof handler.onError !== "function") {
            throw err2;
          }
          handler.onError(err2);
          return false;
        }
      }
    };
    module.exports = DispatcherBase;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/connect.js
var require_connect = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/core/connect.js"(exports, module) {
    "use strict";
    var net2 = __require("node:net");
    var assert3 = __require("node:assert");
    var util3 = require_util4();
    var { InvalidArgumentError } = require_errors5();
    var tls3;
    var SessionCache = class WeakSessionCache {
      constructor(maxCachedSessions) {
        this._maxCachedSessions = maxCachedSessions;
        this._sessionCache = /* @__PURE__ */ new Map();
        this._sessionRegistry = new FinalizationRegistry((key) => {
          if (this._sessionCache.size < this._maxCachedSessions) {
            return;
          }
          const ref = this._sessionCache.get(key);
          if (ref !== void 0 && ref.deref() === void 0) {
            this._sessionCache.delete(key);
          }
        });
      }
      get(sessionKey) {
        const ref = this._sessionCache.get(sessionKey);
        return ref ? ref.deref() : null;
      }
      set(sessionKey, session) {
        if (this._maxCachedSessions === 0) {
          return;
        }
        this._sessionCache.set(sessionKey, new WeakRef(session));
        this._sessionRegistry.register(session, sessionKey);
      }
    };
    function buildConnector({ allowH2, useH2c, maxCachedSessions, socketPath, timeout, session: customSession, ...opts2 }) {
      if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {
        throw new InvalidArgumentError("maxCachedSessions must be a positive integer or zero");
      }
      const options = { path: socketPath, ...opts2 };
      const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions);
      timeout = timeout == null ? 1e4 : timeout;
      allowH2 = allowH2 != null ? allowH2 : false;
      return function connect2({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {
        let socket;
        if (protocol === "https:") {
          if (!tls3) {
            tls3 = __require("node:tls");
          }
          servername = servername || options.servername || util3.getServerName(host) || null;
          const sessionKey = servername || hostname;
          assert3(sessionKey);
          const session = customSession || sessionCache.get(sessionKey) || null;
          port = port || 443;
          socket = tls3.connect({
            highWaterMark: 16384,
            // TLS in node can't have bigger HWM anyway...
            ...options,
            servername,
            session,
            localAddress,
            ALPNProtocols: allowH2 ? ["http/1.1", "h2"] : ["http/1.1"],
            socket: httpSocket,
            // upgrade socket connection
            port,
            host: hostname
          });
          socket.on("session", function(session2) {
            sessionCache.set(sessionKey, session2);
          });
        } else {
          assert3(!httpSocket, "httpSocket can only be sent on TLS update");
          port = port || 80;
          socket = net2.connect({
            highWaterMark: 64 * 1024,
            // Same as nodejs fs streams.
            ...options,
            localAddress,
            port,
            host: hostname
          });
          if (useH2c === true) {
            socket.alpnProtocol = "h2";
          }
        }
        if (options.keepAlive == null || options.keepAlive) {
          const keepAliveInitialDelay = options.keepAliveInitialDelay === void 0 ? 6e4 : options.keepAliveInitialDelay;
          socket.setKeepAlive(true, keepAliveInitialDelay);
        }
        const clearConnectTimeout = util3.setupConnectTimeout(new WeakRef(socket), { timeout, hostname, port });
        socket.setNoDelay(true).once(protocol === "https:" ? "secureConnect" : "connect", function() {
          queueMicrotask(clearConnectTimeout);
          if (callback) {
            const cb = callback;
            callback = null;
            cb(null, this);
          }
        }).on("error", function(err2) {
          queueMicrotask(clearConnectTimeout);
          if (callback) {
            const cb = callback;
            callback = null;
            cb(err2);
          }
        });
        return socket;
      };
    }
    module.exports = buildConnector;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/llhttp/utils.js
var require_utils20 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/llhttp/utils.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.enumToMap = enumToMap;
    function enumToMap(obj, filter3 = [], exceptions = []) {
      const emptyFilter = (filter3?.length ?? 0) === 0;
      const emptyExceptions = (exceptions?.length ?? 0) === 0;
      return Object.fromEntries(Object.entries(obj).filter(([, value2]) => {
        return typeof value2 === "number" && (emptyFilter || filter3.includes(value2)) && (emptyExceptions || !exceptions.includes(value2));
      }));
    }
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/llhttp/constants.js
var require_constants12 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/llhttp/constants.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.SPECIAL_HEADERS = exports.MINOR = exports.MAJOR = exports.HTAB_SP_VCHAR_OBS_TEXT = exports.QUOTED_STRING = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.HEX = exports.URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.STATUSES_HTTP = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.HEADER_STATE = exports.FINISH = exports.STATUSES = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0;
    var utils_1 = require_utils20();
    exports.ERROR = {
      OK: 0,
      INTERNAL: 1,
      STRICT: 2,
      CR_EXPECTED: 25,
      LF_EXPECTED: 3,
      UNEXPECTED_CONTENT_LENGTH: 4,
      UNEXPECTED_SPACE: 30,
      CLOSED_CONNECTION: 5,
      INVALID_METHOD: 6,
      INVALID_URL: 7,
      INVALID_CONSTANT: 8,
      INVALID_VERSION: 9,
      INVALID_HEADER_TOKEN: 10,
      INVALID_CONTENT_LENGTH: 11,
      INVALID_CHUNK_SIZE: 12,
      INVALID_STATUS: 13,
      INVALID_EOF_STATE: 14,
      INVALID_TRANSFER_ENCODING: 15,
      CB_MESSAGE_BEGIN: 16,
      CB_HEADERS_COMPLETE: 17,
      CB_MESSAGE_COMPLETE: 18,
      CB_CHUNK_HEADER: 19,
      CB_CHUNK_COMPLETE: 20,
      PAUSED: 21,
      PAUSED_UPGRADE: 22,
      PAUSED_H2_UPGRADE: 23,
      USER: 24,
      CB_URL_COMPLETE: 26,
      CB_STATUS_COMPLETE: 27,
      CB_METHOD_COMPLETE: 32,
      CB_VERSION_COMPLETE: 33,
      CB_HEADER_FIELD_COMPLETE: 28,
      CB_HEADER_VALUE_COMPLETE: 29,
      CB_CHUNK_EXTENSION_NAME_COMPLETE: 34,
      CB_CHUNK_EXTENSION_VALUE_COMPLETE: 35,
      CB_RESET: 31,
      CB_PROTOCOL_COMPLETE: 38
    };
    exports.TYPE = {
      BOTH: 0,
      // default
      REQUEST: 1,
      RESPONSE: 2
    };
    exports.FLAGS = {
      CONNECTION_KEEP_ALIVE: 1 << 0,
      CONNECTION_CLOSE: 1 << 1,
      CONNECTION_UPGRADE: 1 << 2,
      CHUNKED: 1 << 3,
      UPGRADE: 1 << 4,
      CONTENT_LENGTH: 1 << 5,
      SKIPBODY: 1 << 6,
      TRAILING: 1 << 7,
      // 1 << 8 is unused
      TRANSFER_ENCODING: 1 << 9
    };
    exports.LENIENT_FLAGS = {
      HEADERS: 1 << 0,
      CHUNKED_LENGTH: 1 << 1,
      KEEP_ALIVE: 1 << 2,
      TRANSFER_ENCODING: 1 << 3,
      VERSION: 1 << 4,
      DATA_AFTER_CLOSE: 1 << 5,
      OPTIONAL_LF_AFTER_CR: 1 << 6,
      OPTIONAL_CRLF_AFTER_CHUNK: 1 << 7,
      OPTIONAL_CR_BEFORE_LF: 1 << 8,
      SPACES_AFTER_CHUNK_SIZE: 1 << 9
    };
    exports.METHODS = {
      "DELETE": 0,
      "GET": 1,
      "HEAD": 2,
      "POST": 3,
      "PUT": 4,
      /* pathological */
      "CONNECT": 5,
      "OPTIONS": 6,
      "TRACE": 7,
      /* WebDAV */
      "COPY": 8,
      "LOCK": 9,
      "MKCOL": 10,
      "MOVE": 11,
      "PROPFIND": 12,
      "PROPPATCH": 13,
      "SEARCH": 14,
      "UNLOCK": 15,
      "BIND": 16,
      "REBIND": 17,
      "UNBIND": 18,
      "ACL": 19,
      /* subversion */
      "REPORT": 20,
      "MKACTIVITY": 21,
      "CHECKOUT": 22,
      "MERGE": 23,
      /* upnp */
      "M-SEARCH": 24,
      "NOTIFY": 25,
      "SUBSCRIBE": 26,
      "UNSUBSCRIBE": 27,
      /* RFC-5789 */
      "PATCH": 28,
      "PURGE": 29,
      /* CalDAV */
      "MKCALENDAR": 30,
      /* RFC-2068, section 19.6.1.2 */
      "LINK": 31,
      "UNLINK": 32,
      /* icecast */
      "SOURCE": 33,
      /* RFC-7540, section 11.6 */
      "PRI": 34,
      /* RFC-2326 RTSP */
      "DESCRIBE": 35,
      "ANNOUNCE": 36,
      "SETUP": 37,
      "PLAY": 38,
      "PAUSE": 39,
      "TEARDOWN": 40,
      "GET_PARAMETER": 41,
      "SET_PARAMETER": 42,
      "REDIRECT": 43,
      "RECORD": 44,
      /* RAOP */
      "FLUSH": 45,
      /* DRAFT https://www.ietf.org/archive/id/draft-ietf-httpbis-safe-method-w-body-02.html */
      "QUERY": 46
    };
    exports.STATUSES = {
      CONTINUE: 100,
      SWITCHING_PROTOCOLS: 101,
      PROCESSING: 102,
      EARLY_HINTS: 103,
      RESPONSE_IS_STALE: 110,
      // Unofficial
      REVALIDATION_FAILED: 111,
      // Unofficial
      DISCONNECTED_OPERATION: 112,
      // Unofficial
      HEURISTIC_EXPIRATION: 113,
      // Unofficial
      MISCELLANEOUS_WARNING: 199,
      // Unofficial
      OK: 200,
      CREATED: 201,
      ACCEPTED: 202,
      NON_AUTHORITATIVE_INFORMATION: 203,
      NO_CONTENT: 204,
      RESET_CONTENT: 205,
      PARTIAL_CONTENT: 206,
      MULTI_STATUS: 207,
      ALREADY_REPORTED: 208,
      TRANSFORMATION_APPLIED: 214,
      // Unofficial
      IM_USED: 226,
      MISCELLANEOUS_PERSISTENT_WARNING: 299,
      // Unofficial
      MULTIPLE_CHOICES: 300,
      MOVED_PERMANENTLY: 301,
      FOUND: 302,
      SEE_OTHER: 303,
      NOT_MODIFIED: 304,
      USE_PROXY: 305,
      SWITCH_PROXY: 306,
      // No longer used
      TEMPORARY_REDIRECT: 307,
      PERMANENT_REDIRECT: 308,
      BAD_REQUEST: 400,
      UNAUTHORIZED: 401,
      PAYMENT_REQUIRED: 402,
      FORBIDDEN: 403,
      NOT_FOUND: 404,
      METHOD_NOT_ALLOWED: 405,
      NOT_ACCEPTABLE: 406,
      PROXY_AUTHENTICATION_REQUIRED: 407,
      REQUEST_TIMEOUT: 408,
      CONFLICT: 409,
      GONE: 410,
      LENGTH_REQUIRED: 411,
      PRECONDITION_FAILED: 412,
      PAYLOAD_TOO_LARGE: 413,
      URI_TOO_LONG: 414,
      UNSUPPORTED_MEDIA_TYPE: 415,
      RANGE_NOT_SATISFIABLE: 416,
      EXPECTATION_FAILED: 417,
      IM_A_TEAPOT: 418,
      PAGE_EXPIRED: 419,
      // Unofficial
      ENHANCE_YOUR_CALM: 420,
      // Unofficial
      MISDIRECTED_REQUEST: 421,
      UNPROCESSABLE_ENTITY: 422,
      LOCKED: 423,
      FAILED_DEPENDENCY: 424,
      TOO_EARLY: 425,
      UPGRADE_REQUIRED: 426,
      PRECONDITION_REQUIRED: 428,
      TOO_MANY_REQUESTS: 429,
      REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL: 430,
      // Unofficial
      REQUEST_HEADER_FIELDS_TOO_LARGE: 431,
      LOGIN_TIMEOUT: 440,
      // Unofficial
      NO_RESPONSE: 444,
      // Unofficial
      RETRY_WITH: 449,
      // Unofficial
      BLOCKED_BY_PARENTAL_CONTROL: 450,
      // Unofficial
      UNAVAILABLE_FOR_LEGAL_REASONS: 451,
      CLIENT_CLOSED_LOAD_BALANCED_REQUEST: 460,
      // Unofficial
      INVALID_X_FORWARDED_FOR: 463,
      // Unofficial
      REQUEST_HEADER_TOO_LARGE: 494,
      // Unofficial
      SSL_CERTIFICATE_ERROR: 495,
      // Unofficial
      SSL_CERTIFICATE_REQUIRED: 496,
      // Unofficial
      HTTP_REQUEST_SENT_TO_HTTPS_PORT: 497,
      // Unofficial
      INVALID_TOKEN: 498,
      // Unofficial
      CLIENT_CLOSED_REQUEST: 499,
      // Unofficial
      INTERNAL_SERVER_ERROR: 500,
      NOT_IMPLEMENTED: 501,
      BAD_GATEWAY: 502,
      SERVICE_UNAVAILABLE: 503,
      GATEWAY_TIMEOUT: 504,
      HTTP_VERSION_NOT_SUPPORTED: 505,
      VARIANT_ALSO_NEGOTIATES: 506,
      INSUFFICIENT_STORAGE: 507,
      LOOP_DETECTED: 508,
      BANDWIDTH_LIMIT_EXCEEDED: 509,
      NOT_EXTENDED: 510,
      NETWORK_AUTHENTICATION_REQUIRED: 511,
      WEB_SERVER_UNKNOWN_ERROR: 520,
      // Unofficial
      WEB_SERVER_IS_DOWN: 521,
      // Unofficial
      CONNECTION_TIMEOUT: 522,
      // Unofficial
      ORIGIN_IS_UNREACHABLE: 523,
      // Unofficial
      TIMEOUT_OCCURED: 524,
      // Unofficial
      SSL_HANDSHAKE_FAILED: 525,
      // Unofficial
      INVALID_SSL_CERTIFICATE: 526,
      // Unofficial
      RAILGUN_ERROR: 527,
      // Unofficial
      SITE_IS_OVERLOADED: 529,
      // Unofficial
      SITE_IS_FROZEN: 530,
      // Unofficial
      IDENTITY_PROVIDER_AUTHENTICATION_ERROR: 561,
      // Unofficial
      NETWORK_READ_TIMEOUT: 598,
      // Unofficial
      NETWORK_CONNECT_TIMEOUT: 599
      // Unofficial
    };
    exports.FINISH = {
      SAFE: 0,
      SAFE_WITH_CB: 1,
      UNSAFE: 2
    };
    exports.HEADER_STATE = {
      GENERAL: 0,
      CONNECTION: 1,
      CONTENT_LENGTH: 2,
      TRANSFER_ENCODING: 3,
      UPGRADE: 4,
      CONNECTION_KEEP_ALIVE: 5,
      CONNECTION_CLOSE: 6,
      CONNECTION_UPGRADE: 7,
      TRANSFER_ENCODING_CHUNKED: 8
    };
    exports.METHODS_HTTP = [
      exports.METHODS.DELETE,
      exports.METHODS.GET,
      exports.METHODS.HEAD,
      exports.METHODS.POST,
      exports.METHODS.PUT,
      exports.METHODS.CONNECT,
      exports.METHODS.OPTIONS,
      exports.METHODS.TRACE,
      exports.METHODS.COPY,
      exports.METHODS.LOCK,
      exports.METHODS.MKCOL,
      exports.METHODS.MOVE,
      exports.METHODS.PROPFIND,
      exports.METHODS.PROPPATCH,
      exports.METHODS.SEARCH,
      exports.METHODS.UNLOCK,
      exports.METHODS.BIND,
      exports.METHODS.REBIND,
      exports.METHODS.UNBIND,
      exports.METHODS.ACL,
      exports.METHODS.REPORT,
      exports.METHODS.MKACTIVITY,
      exports.METHODS.CHECKOUT,
      exports.METHODS.MERGE,
      exports.METHODS["M-SEARCH"],
      exports.METHODS.NOTIFY,
      exports.METHODS.SUBSCRIBE,
      exports.METHODS.UNSUBSCRIBE,
      exports.METHODS.PATCH,
      exports.METHODS.PURGE,
      exports.METHODS.MKCALENDAR,
      exports.METHODS.LINK,
      exports.METHODS.UNLINK,
      exports.METHODS.PRI,
      // TODO(indutny): should we allow it with HTTP?
      exports.METHODS.SOURCE,
      exports.METHODS.QUERY
    ];
    exports.METHODS_ICE = [
      exports.METHODS.SOURCE
    ];
    exports.METHODS_RTSP = [
      exports.METHODS.OPTIONS,
      exports.METHODS.DESCRIBE,
      exports.METHODS.ANNOUNCE,
      exports.METHODS.SETUP,
      exports.METHODS.PLAY,
      exports.METHODS.PAUSE,
      exports.METHODS.TEARDOWN,
      exports.METHODS.GET_PARAMETER,
      exports.METHODS.SET_PARAMETER,
      exports.METHODS.REDIRECT,
      exports.METHODS.RECORD,
      exports.METHODS.FLUSH,
      // For AirPlay
      exports.METHODS.GET,
      exports.METHODS.POST
    ];
    exports.METHOD_MAP = (0, utils_1.enumToMap)(exports.METHODS);
    exports.H_METHOD_MAP = Object.fromEntries(Object.entries(exports.METHODS).filter(([k3]) => k3.startsWith("H")));
    exports.STATUSES_HTTP = [
      exports.STATUSES.CONTINUE,
      exports.STATUSES.SWITCHING_PROTOCOLS,
      exports.STATUSES.PROCESSING,
      exports.STATUSES.EARLY_HINTS,
      exports.STATUSES.RESPONSE_IS_STALE,
      exports.STATUSES.REVALIDATION_FAILED,
      exports.STATUSES.DISCONNECTED_OPERATION,
      exports.STATUSES.HEURISTIC_EXPIRATION,
      exports.STATUSES.MISCELLANEOUS_WARNING,
      exports.STATUSES.OK,
      exports.STATUSES.CREATED,
      exports.STATUSES.ACCEPTED,
      exports.STATUSES.NON_AUTHORITATIVE_INFORMATION,
      exports.STATUSES.NO_CONTENT,
      exports.STATUSES.RESET_CONTENT,
      exports.STATUSES.PARTIAL_CONTENT,
      exports.STATUSES.MULTI_STATUS,
      exports.STATUSES.ALREADY_REPORTED,
      exports.STATUSES.TRANSFORMATION_APPLIED,
      exports.STATUSES.IM_USED,
      exports.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING,
      exports.STATUSES.MULTIPLE_CHOICES,
      exports.STATUSES.MOVED_PERMANENTLY,
      exports.STATUSES.FOUND,
      exports.STATUSES.SEE_OTHER,
      exports.STATUSES.NOT_MODIFIED,
      exports.STATUSES.USE_PROXY,
      exports.STATUSES.SWITCH_PROXY,
      exports.STATUSES.TEMPORARY_REDIRECT,
      exports.STATUSES.PERMANENT_REDIRECT,
      exports.STATUSES.BAD_REQUEST,
      exports.STATUSES.UNAUTHORIZED,
      exports.STATUSES.PAYMENT_REQUIRED,
      exports.STATUSES.FORBIDDEN,
      exports.STATUSES.NOT_FOUND,
      exports.STATUSES.METHOD_NOT_ALLOWED,
      exports.STATUSES.NOT_ACCEPTABLE,
      exports.STATUSES.PROXY_AUTHENTICATION_REQUIRED,
      exports.STATUSES.REQUEST_TIMEOUT,
      exports.STATUSES.CONFLICT,
      exports.STATUSES.GONE,
      exports.STATUSES.LENGTH_REQUIRED,
      exports.STATUSES.PRECONDITION_FAILED,
      exports.STATUSES.PAYLOAD_TOO_LARGE,
      exports.STATUSES.URI_TOO_LONG,
      exports.STATUSES.UNSUPPORTED_MEDIA_TYPE,
      exports.STATUSES.RANGE_NOT_SATISFIABLE,
      exports.STATUSES.EXPECTATION_FAILED,
      exports.STATUSES.IM_A_TEAPOT,
      exports.STATUSES.PAGE_EXPIRED,
      exports.STATUSES.ENHANCE_YOUR_CALM,
      exports.STATUSES.MISDIRECTED_REQUEST,
      exports.STATUSES.UNPROCESSABLE_ENTITY,
      exports.STATUSES.LOCKED,
      exports.STATUSES.FAILED_DEPENDENCY,
      exports.STATUSES.TOO_EARLY,
      exports.STATUSES.UPGRADE_REQUIRED,
      exports.STATUSES.PRECONDITION_REQUIRED,
      exports.STATUSES.TOO_MANY_REQUESTS,
      exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL,
      exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE,
      exports.STATUSES.LOGIN_TIMEOUT,
      exports.STATUSES.NO_RESPONSE,
      exports.STATUSES.RETRY_WITH,
      exports.STATUSES.BLOCKED_BY_PARENTAL_CONTROL,
      exports.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS,
      exports.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST,
      exports.STATUSES.INVALID_X_FORWARDED_FOR,
      exports.STATUSES.REQUEST_HEADER_TOO_LARGE,
      exports.STATUSES.SSL_CERTIFICATE_ERROR,
      exports.STATUSES.SSL_CERTIFICATE_REQUIRED,
      exports.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT,
      exports.STATUSES.INVALID_TOKEN,
      exports.STATUSES.CLIENT_CLOSED_REQUEST,
      exports.STATUSES.INTERNAL_SERVER_ERROR,
      exports.STATUSES.NOT_IMPLEMENTED,
      exports.STATUSES.BAD_GATEWAY,
      exports.STATUSES.SERVICE_UNAVAILABLE,
      exports.STATUSES.GATEWAY_TIMEOUT,
      exports.STATUSES.HTTP_VERSION_NOT_SUPPORTED,
      exports.STATUSES.VARIANT_ALSO_NEGOTIATES,
      exports.STATUSES.INSUFFICIENT_STORAGE,
      exports.STATUSES.LOOP_DETECTED,
      exports.STATUSES.BANDWIDTH_LIMIT_EXCEEDED,
      exports.STATUSES.NOT_EXTENDED,
      exports.STATUSES.NETWORK_AUTHENTICATION_REQUIRED,
      exports.STATUSES.WEB_SERVER_UNKNOWN_ERROR,
      exports.STATUSES.WEB_SERVER_IS_DOWN,
      exports.STATUSES.CONNECTION_TIMEOUT,
      exports.STATUSES.ORIGIN_IS_UNREACHABLE,
      exports.STATUSES.TIMEOUT_OCCURED,
      exports.STATUSES.SSL_HANDSHAKE_FAILED,
      exports.STATUSES.INVALID_SSL_CERTIFICATE,
      exports.STATUSES.RAILGUN_ERROR,
      exports.STATUSES.SITE_IS_OVERLOADED,
      exports.STATUSES.SITE_IS_FROZEN,
      exports.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR,
      exports.STATUSES.NETWORK_READ_TIMEOUT,
      exports.STATUSES.NETWORK_CONNECT_TIMEOUT
    ];
    exports.ALPHA = [];
    for (let i5 = "A".charCodeAt(0); i5 <= "Z".charCodeAt(0); i5++) {
      exports.ALPHA.push(String.fromCharCode(i5));
      exports.ALPHA.push(String.fromCharCode(i5 + 32));
    }
    exports.NUM_MAP = {
      0: 0,
      1: 1,
      2: 2,
      3: 3,
      4: 4,
      5: 5,
      6: 6,
      7: 7,
      8: 8,
      9: 9
    };
    exports.HEX_MAP = {
      0: 0,
      1: 1,
      2: 2,
      3: 3,
      4: 4,
      5: 5,
      6: 6,
      7: 7,
      8: 8,
      9: 9,
      A: 10,
      B: 11,
      C: 12,
      D: 13,
      E: 14,
      F: 15,
      a: 10,
      b: 11,
      c: 12,
      d: 13,
      e: 14,
      f: 15
    };
    exports.NUM = [
      "0",
      "1",
      "2",
      "3",
      "4",
      "5",
      "6",
      "7",
      "8",
      "9"
    ];
    exports.ALPHANUM = exports.ALPHA.concat(exports.NUM);
    exports.MARK = ["-", "_", ".", "!", "~", "*", "'", "(", ")"];
    exports.USERINFO_CHARS = exports.ALPHANUM.concat(exports.MARK).concat(["%", ";", ":", "&", "=", "+", "$", ","]);
    exports.URL_CHAR = [
      "!",
      '"',
      "$",
      "%",
      "&",
      "'",
      "(",
      ")",
      "*",
      "+",
      ",",
      "-",
      ".",
      "/",
      ":",
      ";",
      "<",
      "=",
      ">",
      "@",
      "[",
      "\\",
      "]",
      "^",
      "_",
      "`",
      "{",
      "|",
      "}",
      "~"
    ].concat(exports.ALPHANUM);
    exports.HEX = exports.NUM.concat(["a", "b", "c", "d", "e", "f", "A", "B", "C", "D", "E", "F"]);
    exports.TOKEN = [
      "!",
      "#",
      "$",
      "%",
      "&",
      "'",
      "*",
      "+",
      "-",
      ".",
      "^",
      "_",
      "`",
      "|",
      "~"
    ].concat(exports.ALPHANUM);
    exports.HEADER_CHARS = ["	"];
    for (let i5 = 32; i5 <= 255; i5++) {
      if (i5 !== 127) {
        exports.HEADER_CHARS.push(i5);
      }
    }
    exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c6) => c6 !== 44);
    exports.QUOTED_STRING = ["	", " "];
    for (let i5 = 33; i5 <= 255; i5++) {
      if (i5 !== 34 && i5 !== 92) {
        exports.QUOTED_STRING.push(i5);
      }
    }
    exports.HTAB_SP_VCHAR_OBS_TEXT = ["	", " "];
    for (let i5 = 33; i5 <= 126; i5++) {
      exports.HTAB_SP_VCHAR_OBS_TEXT.push(i5);
    }
    for (let i5 = 128; i5 <= 255; i5++) {
      exports.HTAB_SP_VCHAR_OBS_TEXT.push(i5);
    }
    exports.MAJOR = exports.NUM_MAP;
    exports.MINOR = exports.MAJOR;
    exports.SPECIAL_HEADERS = {
      "connection": exports.HEADER_STATE.CONNECTION,
      "content-length": exports.HEADER_STATE.CONTENT_LENGTH,
      "proxy-connection": exports.HEADER_STATE.CONNECTION,
      "transfer-encoding": exports.HEADER_STATE.TRANSFER_ENCODING,
      "upgrade": exports.HEADER_STATE.UPGRADE
    };
    exports.default = {
      ERROR: exports.ERROR,
      TYPE: exports.TYPE,
      FLAGS: exports.FLAGS,
      LENIENT_FLAGS: exports.LENIENT_FLAGS,
      METHODS: exports.METHODS,
      STATUSES: exports.STATUSES,
      FINISH: exports.FINISH,
      HEADER_STATE: exports.HEADER_STATE,
      ALPHA: exports.ALPHA,
      NUM_MAP: exports.NUM_MAP,
      HEX_MAP: exports.HEX_MAP,
      NUM: exports.NUM,
      ALPHANUM: exports.ALPHANUM,
      MARK: exports.MARK,
      USERINFO_CHARS: exports.USERINFO_CHARS,
      URL_CHAR: exports.URL_CHAR,
      HEX: exports.HEX,
      TOKEN: exports.TOKEN,
      HEADER_CHARS: exports.HEADER_CHARS,
      CONNECTION_TOKEN_CHARS: exports.CONNECTION_TOKEN_CHARS,
      QUOTED_STRING: exports.QUOTED_STRING,
      HTAB_SP_VCHAR_OBS_TEXT: exports.HTAB_SP_VCHAR_OBS_TEXT,
      MAJOR: exports.MAJOR,
      MINOR: exports.MINOR,
      SPECIAL_HEADERS: exports.SPECIAL_HEADERS,
      METHODS_HTTP: exports.METHODS_HTTP,
      METHODS_ICE: exports.METHODS_ICE,
      METHODS_RTSP: exports.METHODS_RTSP,
      METHOD_MAP: exports.METHOD_MAP,
      H_METHOD_MAP: exports.H_METHOD_MAP,
      STATUSES_HTTP: exports.STATUSES_HTTP
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/llhttp/llhttp-wasm.js
var require_llhttp_wasm = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports, module) {
    "use strict";
    var { Buffer: Buffer5 } = __require("node:buffer");
    var wasmBase64 = "[encoded data, 72020 characters]";
    var wasmBuffer;
    Object.defineProperty(module, "exports", {
      get: () => {
        return wasmBuffer ? wasmBuffer : wasmBuffer = Buffer5.from(wasmBase64, "base64");
      }
    });
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js
var require_llhttp_simd_wasm = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports, module) {
    "use strict";
    var { Buffer: Buffer5 } = __require("node:buffer");
    var wasmBase64 = "[encoded data, 72272 characters]";
    var wasmBuffer;
    Object.defineProperty(module, "exports", {
      get: () => {
        return wasmBuffer ? wasmBuffer : wasmBuffer = Buffer5.from(wasmBase64, "base64");
      }
    });
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/constants.js
var require_constants13 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/constants.js"(exports, module) {
    "use strict";
    var corsSafeListedMethods = (
      /** @type {const} */
      ["GET", "HEAD", "POST"]
    );
    var corsSafeListedMethodsSet = new Set(corsSafeListedMethods);
    var nullBodyStatus = (
      /** @type {const} */
      [101, 204, 205, 304]
    );
    var redirectStatus = (
      /** @type {const} */
      [301, 302, 303, 307, 308]
    );
    var redirectStatusSet = new Set(redirectStatus);
    var badPorts = (
      /** @type {const} */
      [
        "1",
        "7",
        "9",
        "11",
        "13",
        "15",
        "17",
        "19",
        "20",
        "21",
        "22",
        "23",
        "25",
        "37",
        "42",
        "43",
        "53",
        "69",
        "77",
        "79",
        "87",
        "95",
        "101",
        "102",
        "103",
        "104",
        "109",
        "110",
        "111",
        "113",
        "115",
        "117",
        "119",
        "123",
        "135",
        "137",
        "139",
        "143",
        "161",
        "179",
        "389",
        "427",
        "465",
        "512",
        "513",
        "514",
        "515",
        "526",
        "530",
        "531",
        "532",
        "540",
        "548",
        "554",
        "556",
        "563",
        "587",
        "601",
        "636",
        "989",
        "990",
        "993",
        "995",
        "1719",
        "1720",
        "1723",
        "2049",
        "3659",
        "4045",
        "4190",
        "5060",
        "5061",
        "6000",
        "6566",
        "6665",
        "6666",
        "6667",
        "6668",
        "6669",
        "6679",
        "6697",
        "10080"
      ]
    );
    var badPortsSet = new Set(badPorts);
    var referrerPolicyTokens = (
      /** @type {const} */
      [
        "no-referrer",
        "no-referrer-when-downgrade",
        "same-origin",
        "origin",
        "strict-origin",
        "origin-when-cross-origin",
        "strict-origin-when-cross-origin",
        "unsafe-url"
      ]
    );
    var referrerPolicy = (
      /** @type {const} */
      [
        "",
        ...referrerPolicyTokens
      ]
    );
    var referrerPolicyTokensSet = new Set(referrerPolicyTokens);
    var requestRedirect = (
      /** @type {const} */
      ["follow", "manual", "error"]
    );
    var safeMethods = (
      /** @type {const} */
      ["GET", "HEAD", "OPTIONS", "TRACE"]
    );
    var safeMethodsSet = new Set(safeMethods);
    var requestMode = (
      /** @type {const} */
      ["navigate", "same-origin", "no-cors", "cors"]
    );
    var requestCredentials = (
      /** @type {const} */
      ["omit", "same-origin", "include"]
    );
    var requestCache = (
      /** @type {const} */
      [
        "default",
        "no-store",
        "reload",
        "no-cache",
        "force-cache",
        "only-if-cached"
      ]
    );
    var requestBodyHeader = (
      /** @type {const} */
      [
        "content-encoding",
        "content-language",
        "content-location",
        "content-type",
        // See https://github.com/nodejs/undici/issues/2021
        // 'Content-Length' is a forbidden header name, which is typically
        // removed in the Headers implementation. However, undici doesn't
        // filter out headers, so we add it here.
        "content-length"
      ]
    );
    var requestDuplex = (
      /** @type {const} */
      [
        "half"
      ]
    );
    var forbiddenMethods = (
      /** @type {const} */
      ["CONNECT", "TRACE", "TRACK"]
    );
    var forbiddenMethodsSet = new Set(forbiddenMethods);
    var subresource = (
      /** @type {const} */
      [
        "audio",
        "audioworklet",
        "font",
        "image",
        "manifest",
        "paintworklet",
        "script",
        "style",
        "track",
        "video",
        "xslt",
        ""
      ]
    );
    var subresourceSet = new Set(subresource);
    module.exports = {
      subresource,
      forbiddenMethods,
      requestBodyHeader,
      referrerPolicy,
      requestRedirect,
      requestMode,
      requestCredentials,
      requestCache,
      redirectStatus,
      corsSafeListedMethods,
      nullBodyStatus,
      safeMethods,
      badPorts,
      requestDuplex,
      subresourceSet,
      badPortsSet,
      redirectStatusSet,
      corsSafeListedMethodsSet,
      safeMethodsSet,
      forbiddenMethodsSet,
      referrerPolicyTokens: referrerPolicyTokensSet
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/global.js
var require_global = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/global.js"(exports, module) {
    "use strict";
    var globalOrigin = Symbol.for("undici.globalOrigin.1");
    function getGlobalOrigin() {
      return globalThis[globalOrigin];
    }
    function setGlobalOrigin(newOrigin) {
      if (newOrigin === void 0) {
        Object.defineProperty(globalThis, globalOrigin, {
          value: void 0,
          writable: true,
          enumerable: false,
          configurable: false
        });
        return;
      }
      const parsedURL = new URL(newOrigin);
      if (parsedURL.protocol !== "http:" && parsedURL.protocol !== "https:") {
        throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`);
      }
      Object.defineProperty(globalThis, globalOrigin, {
        value: parsedURL,
        writable: true,
        enumerable: false,
        configurable: false
      });
    }
    module.exports = {
      getGlobalOrigin,
      setGlobalOrigin
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/encoding/index.js
var require_encoding2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/encoding/index.js"(exports, module) {
    "use strict";
    var textDecoder = new TextDecoder();
    function utf8DecodeBytes(buffer) {
      if (buffer.length === 0) {
        return "";
      }
      if (buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191) {
        buffer = buffer.subarray(3);
      }
      const output = textDecoder.decode(buffer);
      return output;
    }
    module.exports = {
      utf8DecodeBytes
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/infra/index.js
var require_infra2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/infra/index.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { utf8DecodeBytes } = require_encoding2();
    function collectASequenceOfCodePoints(condition, input, position) {
      let result = "";
      while (position.position < input.length && condition(input[position.position])) {
        result += input[position.position];
        position.position++;
      }
      return result;
    }
    function collectASequenceOfCodePointsFast(char, input, position) {
      const idx = input.indexOf(char, position.position);
      const start2 = position.position;
      if (idx === -1) {
        position.position = input.length;
        return input.slice(start2);
      }
      position.position = idx;
      return input.slice(start2, position.position);
    }
    var ASCII_WHITESPACE_REPLACE_REGEX = /[\u0009\u000A\u000C\u000D\u0020]/g;
    function forgivingBase64(data2) {
      data2 = data2.replace(ASCII_WHITESPACE_REPLACE_REGEX, "");
      let dataLength = data2.length;
      if (dataLength % 4 === 0) {
        if (data2.charCodeAt(dataLength - 1) === 61) {
          --dataLength;
          if (data2.charCodeAt(dataLength - 1) === 61) {
            --dataLength;
          }
        }
      }
      if (dataLength % 4 === 1) {
        return "failure";
      }
      if (/[^+/0-9A-Za-z]/.test(data2.length === dataLength ? data2 : data2.substring(0, dataLength))) {
        return "failure";
      }
      const buffer = Buffer.from(data2, "base64");
      return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
    }
    function isASCIIWhitespace(char) {
      return char === 9 || // \t
      char === 10 || // \n
      char === 12 || // \f
      char === 13 || // \r
      char === 32;
    }
    function isomorphicDecode(input) {
      const length2 = input.length;
      if ((2 << 15) - 1 > length2) {
        return String.fromCharCode.apply(null, input);
      }
      let result = "";
      let i5 = 0;
      let addition = (2 << 15) - 1;
      while (i5 < length2) {
        if (i5 + addition > length2) {
          addition = length2 - i5;
        }
        result += String.fromCharCode.apply(null, input.subarray(i5, i5 += addition));
      }
      return result;
    }
    var invalidIsomorphicEncodeValueRegex = /[^\x00-\xFF]/;
    function isomorphicEncode(input) {
      assert3(!invalidIsomorphicEncodeValueRegex.test(input));
      return input;
    }
    function parseJSONFromBytes(bytes) {
      return JSON.parse(utf8DecodeBytes(bytes));
    }
    function removeASCIIWhitespace(str, leading = true, trailing = true) {
      return removeChars(str, leading, trailing, isASCIIWhitespace);
    }
    function removeChars(str, leading, trailing, predicate) {
      let lead = 0;
      let trail = str.length - 1;
      if (leading) {
        while (lead < str.length && predicate(str.charCodeAt(lead))) lead++;
      }
      if (trailing) {
        while (trail > 0 && predicate(str.charCodeAt(trail))) trail--;
      }
      return lead === 0 && trail === str.length - 1 ? str : str.slice(lead, trail + 1);
    }
    function serializeJavascriptValueToJSONString(value2) {
      const result = JSON.stringify(value2);
      if (result === void 0) {
        throw new TypeError("Value is not JSON serializable");
      }
      assert3(typeof result === "string");
      return result;
    }
    module.exports = {
      collectASequenceOfCodePoints,
      collectASequenceOfCodePointsFast,
      forgivingBase64,
      isASCIIWhitespace,
      isomorphicDecode,
      isomorphicEncode,
      parseJSONFromBytes,
      removeASCIIWhitespace,
      removeChars,
      serializeJavascriptValueToJSONString
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/data-url.js
var require_data_url = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/data-url.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { forgivingBase64, collectASequenceOfCodePoints, collectASequenceOfCodePointsFast, isomorphicDecode, removeASCIIWhitespace, removeChars } = require_infra2();
    var encoder = new TextEncoder();
    var HTTP_TOKEN_CODEPOINTS = /^[-!#$%&'*+.^_|~A-Za-z0-9]+$/u;
    var HTTP_WHITESPACE_REGEX = /[\u000A\u000D\u0009\u0020]/u;
    var HTTP_QUOTED_STRING_TOKENS = /^[\u0009\u0020-\u007E\u0080-\u00FF]+$/u;
    function dataURLProcessor(dataURL) {
      assert3(dataURL.protocol === "data:");
      let input = URLSerializer(dataURL, true);
      input = input.slice(5);
      const position = { position: 0 };
      let mimeType = collectASequenceOfCodePointsFast(
        ",",
        input,
        position
      );
      const mimeTypeLength = mimeType.length;
      mimeType = removeASCIIWhitespace(mimeType, true, true);
      if (position.position >= input.length) {
        return "failure";
      }
      position.position++;
      const encodedBody = input.slice(mimeTypeLength + 1);
      let body = stringPercentDecode(encodedBody);
      if (/;(?:\u0020*)base64$/ui.test(mimeType)) {
        const stringBody = isomorphicDecode(body);
        body = forgivingBase64(stringBody);
        if (body === "failure") {
          return "failure";
        }
        mimeType = mimeType.slice(0, -6);
        mimeType = mimeType.replace(/(\u0020+)$/u, "");
        mimeType = mimeType.slice(0, -1);
      }
      if (mimeType.startsWith(";")) {
        mimeType = "text/plain" + mimeType;
      }
      let mimeTypeRecord = parseMIMEType(mimeType);
      if (mimeTypeRecord === "failure") {
        mimeTypeRecord = parseMIMEType("text/plain;charset=US-ASCII");
      }
      return { mimeType: mimeTypeRecord, body };
    }
    function URLSerializer(url3, excludeFragment = false) {
      if (!excludeFragment) {
        return url3.href;
      }
      const href = url3.href;
      const hashLength = url3.hash.length;
      const serialized = hashLength === 0 ? href : href.substring(0, href.length - hashLength);
      if (!hashLength && href.endsWith("#")) {
        return serialized.slice(0, -1);
      }
      return serialized;
    }
    function stringPercentDecode(input) {
      const bytes = encoder.encode(input);
      return percentDecode(bytes);
    }
    function isHexCharByte(byte) {
      return byte >= 48 && byte <= 57 || byte >= 65 && byte <= 70 || byte >= 97 && byte <= 102;
    }
    function hexByteToNumber(byte) {
      return (
        // 0-9
        byte >= 48 && byte <= 57 ? byte - 48 : (byte & 223) - 55
      );
    }
    function percentDecode(input) {
      const length2 = input.length;
      const output = new Uint8Array(length2);
      let j = 0;
      let i5 = 0;
      while (i5 < length2) {
        const byte = input[i5];
        if (byte !== 37) {
          output[j++] = byte;
        } else if (byte === 37 && !(isHexCharByte(input[i5 + 1]) && isHexCharByte(input[i5 + 2]))) {
          output[j++] = 37;
        } else {
          output[j++] = hexByteToNumber(input[i5 + 1]) << 4 | hexByteToNumber(input[i5 + 2]);
          i5 += 2;
        }
        ++i5;
      }
      return length2 === j ? output : output.subarray(0, j);
    }
    function parseMIMEType(input) {
      input = removeHTTPWhitespace(input, true, true);
      const position = { position: 0 };
      const type = collectASequenceOfCodePointsFast(
        "/",
        input,
        position
      );
      if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {
        return "failure";
      }
      if (position.position >= input.length) {
        return "failure";
      }
      position.position++;
      let subtype = collectASequenceOfCodePointsFast(
        ";",
        input,
        position
      );
      subtype = removeHTTPWhitespace(subtype, false, true);
      if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {
        return "failure";
      }
      const typeLowercase = type.toLowerCase();
      const subtypeLowercase = subtype.toLowerCase();
      const mimeType = {
        type: typeLowercase,
        subtype: subtypeLowercase,
        /** @type {Map<string, string>} */
        parameters: /* @__PURE__ */ new Map(),
        // https://mimesniff.spec.whatwg.org/#mime-type-essence
        essence: `${typeLowercase}/${subtypeLowercase}`
      };
      while (position.position < input.length) {
        position.position++;
        collectASequenceOfCodePoints(
          // https://fetch.spec.whatwg.org/#http-whitespace
          (char) => HTTP_WHITESPACE_REGEX.test(char),
          input,
          position
        );
        let parameterName = collectASequenceOfCodePoints(
          (char) => char !== ";" && char !== "=",
          input,
          position
        );
        parameterName = parameterName.toLowerCase();
        if (position.position < input.length) {
          if (input[position.position] === ";") {
            continue;
          }
          position.position++;
        }
        if (position.position >= input.length) {
          break;
        }
        let parameterValue = null;
        if (input[position.position] === '"') {
          parameterValue = collectAnHTTPQuotedString(input, position, true);
          collectASequenceOfCodePointsFast(
            ";",
            input,
            position
          );
        } else {
          parameterValue = collectASequenceOfCodePointsFast(
            ";",
            input,
            position
          );
          parameterValue = removeHTTPWhitespace(parameterValue, false, true);
          if (parameterValue.length === 0) {
            continue;
          }
        }
        if (parameterName.length !== 0 && HTTP_TOKEN_CODEPOINTS.test(parameterName) && (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && !mimeType.parameters.has(parameterName)) {
          mimeType.parameters.set(parameterName, parameterValue);
        }
      }
      return mimeType;
    }
    function collectAnHTTPQuotedString(input, position, extractValue = false) {
      const positionStart = position.position;
      let value2 = "";
      assert3(input[position.position] === '"');
      position.position++;
      while (true) {
        value2 += collectASequenceOfCodePoints(
          (char) => char !== '"' && char !== "\\",
          input,
          position
        );
        if (position.position >= input.length) {
          break;
        }
        const quoteOrBackslash = input[position.position];
        position.position++;
        if (quoteOrBackslash === "\\") {
          if (position.position >= input.length) {
            value2 += "\\";
            break;
          }
          value2 += input[position.position];
          position.position++;
        } else {
          assert3(quoteOrBackslash === '"');
          break;
        }
      }
      if (extractValue) {
        return value2;
      }
      return input.slice(positionStart, position.position);
    }
    function serializeAMimeType(mimeType) {
      assert3(mimeType !== "failure");
      const { parameters, essence } = mimeType;
      let serialization = essence;
      for (let [name, value2] of parameters.entries()) {
        serialization += ";";
        serialization += name;
        serialization += "=";
        if (!HTTP_TOKEN_CODEPOINTS.test(value2)) {
          value2 = value2.replace(/[\\"]/ug, "\\$&");
          value2 = '"' + value2;
          value2 += '"';
        }
        serialization += value2;
      }
      return serialization;
    }
    function isHTTPWhiteSpace(char) {
      return char === 13 || char === 10 || char === 9 || char === 32;
    }
    function removeHTTPWhitespace(str, leading = true, trailing = true) {
      return removeChars(str, leading, trailing, isHTTPWhiteSpace);
    }
    function minimizeSupportedMimeType(mimeType) {
      switch (mimeType.essence) {
        case "application/ecmascript":
        case "application/javascript":
        case "application/x-ecmascript":
        case "application/x-javascript":
        case "text/ecmascript":
        case "text/javascript":
        case "text/javascript1.0":
        case "text/javascript1.1":
        case "text/javascript1.2":
        case "text/javascript1.3":
        case "text/javascript1.4":
        case "text/javascript1.5":
        case "text/jscript":
        case "text/livescript":
        case "text/x-ecmascript":
        case "text/x-javascript":
          return "text/javascript";
        case "application/json":
        case "text/json":
          return "application/json";
        case "image/svg+xml":
          return "image/svg+xml";
        case "text/xml":
        case "application/xml":
          return "application/xml";
      }
      if (mimeType.subtype.endsWith("+json")) {
        return "application/json";
      }
      if (mimeType.subtype.endsWith("+xml")) {
        return "application/xml";
      }
      return "";
    }
    module.exports = {
      dataURLProcessor,
      URLSerializer,
      stringPercentDecode,
      parseMIMEType,
      collectAnHTTPQuotedString,
      serializeAMimeType,
      removeHTTPWhitespace,
      minimizeSupportedMimeType,
      HTTP_TOKEN_CODEPOINTS
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/util/runtime-features.js
var require_runtime_features = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/util/runtime-features.js"(exports, module) {
    "use strict";
    var lazyLoaders = {
      __proto__: null,
      "node:crypto": () => __require("node:crypto"),
      "node:sqlite": () => __require("node:sqlite"),
      "node:worker_threads": () => __require("node:worker_threads"),
      "node:zlib": () => __require("node:zlib")
    };
    function detectRuntimeFeatureByNodeModule(moduleName) {
      try {
        lazyLoaders[moduleName]();
        return true;
      } catch (err2) {
        if (err2.code !== "ERR_UNKNOWN_BUILTIN_MODULE" && err2.code !== "ERR_NO_CRYPTO") {
          throw err2;
        }
        return false;
      }
    }
    function detectRuntimeFeatureByExportedProperty(moduleName, property) {
      const module2 = lazyLoaders[moduleName]();
      return typeof module2[property] !== "undefined";
    }
    var runtimeFeaturesByExportedProperty = (
      /** @type {const} */
      ["markAsUncloneable", "zstd"]
    );
    var exportedPropertyLookup = {
      markAsUncloneable: ["node:worker_threads", "markAsUncloneable"],
      zstd: ["node:zlib", "createZstdDecompress"]
    };
    var runtimeFeaturesAsNodeModule = (
      /** @type {const} */
      ["crypto", "sqlite"]
    );
    var features = (
      /** @type {const} */
      [
        ...runtimeFeaturesAsNodeModule,
        ...runtimeFeaturesByExportedProperty
      ]
    );
    function detectRuntimeFeature(feature) {
      if (runtimeFeaturesAsNodeModule.includes(
        /** @type {RuntimeFeatureByNodeModule} */
        feature
      )) {
        return detectRuntimeFeatureByNodeModule(`node:${feature}`);
      } else if (runtimeFeaturesByExportedProperty.includes(
        /** @type {RuntimeFeatureByExportedProperty} */
        feature
      )) {
        const [moduleName, property] = exportedPropertyLookup[feature];
        return detectRuntimeFeatureByExportedProperty(moduleName, property);
      }
      throw new TypeError(`unknown feature: ${feature}`);
    }
    var RuntimeFeatures = class {
      /** @type {Map<Feature, boolean>} */
      #map = /* @__PURE__ */ new Map();
      /**
       * Clears all cached feature detections.
       */
      clear() {
        this.#map.clear();
      }
      /**
       * @param {Feature} feature
       * @returns {boolean}
       */
      has(feature) {
        return this.#map.get(feature) ?? this.#detectRuntimeFeature(feature);
      }
      /**
       * @param {Feature} feature
       * @param {boolean} value
       */
      set(feature, value2) {
        if (features.includes(feature) === false) {
          throw new TypeError(`unknown feature: ${feature}`);
        }
        this.#map.set(feature, value2);
      }
      /**
       * @param {Feature} feature
       * @returns {boolean}
       */
      #detectRuntimeFeature(feature) {
        const result = detectRuntimeFeature(feature);
        this.#map.set(feature, result);
        return result;
      }
    };
    var instance = new RuntimeFeatures();
    module.exports.runtimeFeatures = instance;
    module.exports.default = instance;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/webidl/index.js
var require_webidl = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/webidl/index.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { types: types2, inspect: inspect2 } = __require("node:util");
    var { runtimeFeatures } = require_runtime_features();
    var UNDEFINED = 1;
    var BOOLEAN = 2;
    var STRING = 3;
    var SYMBOL = 4;
    var NUMBER = 5;
    var BIGINT = 6;
    var NULL = 7;
    var OBJECT = 8;
    var FunctionPrototypeSymbolHasInstance = Function.call.bind(Function.prototype[Symbol.hasInstance]);
    var webidl = {
      converters: {},
      util: {},
      errors: {},
      is: {}
    };
    webidl.errors.exception = function(message) {
      return new TypeError(`${message.header}: ${message.message}`);
    };
    webidl.errors.conversionFailed = function(opts2) {
      const plural = opts2.types.length === 1 ? "" : " one of";
      const message = `${opts2.argument} could not be converted to${plural}: ${opts2.types.join(", ")}.`;
      return webidl.errors.exception({
        header: opts2.prefix,
        message
      });
    };
    webidl.errors.invalidArgument = function(context) {
      return webidl.errors.exception({
        header: context.prefix,
        message: `"${context.value}" is an invalid ${context.type}.`
      });
    };
    webidl.brandCheck = function(V, I) {
      if (!FunctionPrototypeSymbolHasInstance(I, V)) {
        const err2 = new TypeError("Illegal invocation");
        err2.code = "ERR_INVALID_THIS";
        throw err2;
      }
    };
    webidl.brandCheckMultiple = function(List2) {
      const prototypes = List2.map((c6) => webidl.util.MakeTypeAssertion(c6));
      return (V) => {
        if (prototypes.every((typeCheck) => !typeCheck(V))) {
          const err2 = new TypeError("Illegal invocation");
          err2.code = "ERR_INVALID_THIS";
          throw err2;
        }
      };
    };
    webidl.argumentLengthCheck = function({ length: length2 }, min2, ctx) {
      if (length2 < min2) {
        throw webidl.errors.exception({
          message: `${min2} argument${min2 !== 1 ? "s" : ""} required, but${length2 ? " only" : ""} ${length2} found.`,
          header: ctx
        });
      }
    };
    webidl.illegalConstructor = function() {
      throw webidl.errors.exception({
        header: "TypeError",
        message: "Illegal constructor"
      });
    };
    webidl.util.MakeTypeAssertion = function(I) {
      return (O) => FunctionPrototypeSymbolHasInstance(I, O);
    };
    webidl.util.Type = function(V) {
      switch (typeof V) {
        case "undefined":
          return UNDEFINED;
        case "boolean":
          return BOOLEAN;
        case "string":
          return STRING;
        case "symbol":
          return SYMBOL;
        case "number":
          return NUMBER;
        case "bigint":
          return BIGINT;
        case "function":
        case "object": {
          if (V === null) {
            return NULL;
          }
          return OBJECT;
        }
      }
    };
    webidl.util.Types = {
      UNDEFINED,
      BOOLEAN,
      STRING,
      SYMBOL,
      NUMBER,
      BIGINT,
      NULL,
      OBJECT
    };
    webidl.util.TypeValueToString = function(o5) {
      switch (webidl.util.Type(o5)) {
        case UNDEFINED:
          return "Undefined";
        case BOOLEAN:
          return "Boolean";
        case STRING:
          return "String";
        case SYMBOL:
          return "Symbol";
        case NUMBER:
          return "Number";
        case BIGINT:
          return "BigInt";
        case NULL:
          return "Null";
        case OBJECT:
          return "Object";
      }
    };
    webidl.util.markAsUncloneable = runtimeFeatures.has("markAsUncloneable") ? __require("node:worker_threads").markAsUncloneable : () => {
    };
    webidl.util.ConvertToInt = function(V, bitLength, signedness, flags) {
      let upperBound;
      let lowerBound;
      if (bitLength === 64) {
        upperBound = Math.pow(2, 53) - 1;
        if (signedness === "unsigned") {
          lowerBound = 0;
        } else {
          lowerBound = Math.pow(-2, 53) + 1;
        }
      } else if (signedness === "unsigned") {
        lowerBound = 0;
        upperBound = Math.pow(2, bitLength) - 1;
      } else {
        lowerBound = Math.pow(-2, bitLength) - 1;
        upperBound = Math.pow(2, bitLength - 1) - 1;
      }
      let x = Number(V);
      if (x === 0) {
        x = 0;
      }
      if (webidl.util.HasFlag(flags, webidl.attributes.EnforceRange)) {
        if (Number.isNaN(x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) {
          throw webidl.errors.exception({
            header: "Integer conversion",
            message: `Could not convert ${webidl.util.Stringify(V)} to an integer.`
          });
        }
        x = webidl.util.IntegerPart(x);
        if (x < lowerBound || x > upperBound) {
          throw webidl.errors.exception({
            header: "Integer conversion",
            message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`
          });
        }
        return x;
      }
      if (!Number.isNaN(x) && webidl.util.HasFlag(flags, webidl.attributes.Clamp)) {
        x = Math.min(Math.max(x, lowerBound), upperBound);
        if (Math.floor(x) % 2 === 0) {
          x = Math.floor(x);
        } else {
          x = Math.ceil(x);
        }
        return x;
      }
      if (Number.isNaN(x) || x === 0 && Object.is(0, x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) {
        return 0;
      }
      x = webidl.util.IntegerPart(x);
      x = x % Math.pow(2, bitLength);
      if (signedness === "signed" && x >= Math.pow(2, bitLength) - 1) {
        return x - Math.pow(2, bitLength);
      }
      return x;
    };
    webidl.util.IntegerPart = function(n6) {
      const r4 = Math.floor(Math.abs(n6));
      if (n6 < 0) {
        return -1 * r4;
      }
      return r4;
    };
    webidl.util.Stringify = function(V) {
      const type = webidl.util.Type(V);
      switch (type) {
        case SYMBOL:
          return `Symbol(${V.description})`;
        case OBJECT:
          return inspect2(V);
        case STRING:
          return `"${V}"`;
        case BIGINT:
          return `${V}n`;
        default:
          return `${V}`;
      }
    };
    webidl.util.IsResizableArrayBuffer = function(V) {
      if (types2.isArrayBuffer(V)) {
        return V.resizable;
      }
      if (types2.isSharedArrayBuffer(V)) {
        return V.growable;
      }
      throw webidl.errors.exception({
        header: "IsResizableArrayBuffer",
        message: `"${webidl.util.Stringify(V)}" is not an array buffer.`
      });
    };
    webidl.util.HasFlag = function(flags, attributes2) {
      return typeof flags === "number" && (flags & attributes2) === attributes2;
    };
    webidl.sequenceConverter = function(converter) {
      return (V, prefix, argument, Iterable) => {
        if (webidl.util.Type(V) !== OBJECT) {
          throw webidl.errors.exception({
            header: prefix,
            message: `${argument} (${webidl.util.Stringify(V)}) is not iterable.`
          });
        }
        const method = typeof Iterable === "function" ? Iterable() : V?.[Symbol.iterator]?.();
        const seq = [];
        let index2 = 0;
        if (method === void 0 || typeof method.next !== "function") {
          throw webidl.errors.exception({
            header: prefix,
            message: `${argument} is not iterable.`
          });
        }
        while (true) {
          const { done, value: value2 } = method.next();
          if (done) {
            break;
          }
          seq.push(converter(value2, prefix, `${argument}[${index2++}]`));
        }
        return seq;
      };
    };
    webidl.recordConverter = function(keyConverter, valueConverter) {
      return (O, prefix, argument) => {
        if (webidl.util.Type(O) !== OBJECT) {
          throw webidl.errors.exception({
            header: prefix,
            message: `${argument} ("${webidl.util.TypeValueToString(O)}") is not an Object.`
          });
        }
        const result = {};
        if (!types2.isProxy(O)) {
          const keys3 = [...Object.getOwnPropertyNames(O), ...Object.getOwnPropertySymbols(O)];
          for (const key of keys3) {
            const keyName = webidl.util.Stringify(key);
            const typedKey = keyConverter(key, prefix, `Key ${keyName} in ${argument}`);
            const typedValue = valueConverter(O[key], prefix, `${argument}[${keyName}]`);
            result[typedKey] = typedValue;
          }
          return result;
        }
        const keys2 = Reflect.ownKeys(O);
        for (const key of keys2) {
          const desc = Reflect.getOwnPropertyDescriptor(O, key);
          if (desc?.enumerable) {
            const typedKey = keyConverter(key, prefix, argument);
            const typedValue = valueConverter(O[key], prefix, argument);
            result[typedKey] = typedValue;
          }
        }
        return result;
      };
    };
    webidl.interfaceConverter = function(TypeCheck, name) {
      return (V, prefix, argument) => {
        if (!TypeCheck(V)) {
          throw webidl.errors.exception({
            header: prefix,
            message: `Expected ${argument} ("${webidl.util.Stringify(V)}") to be an instance of ${name}.`
          });
        }
        return V;
      };
    };
    webidl.dictionaryConverter = function(converters) {
      return (dictionary, prefix, argument) => {
        const dict = {};
        if (dictionary != null && webidl.util.Type(dictionary) !== OBJECT) {
          throw webidl.errors.exception({
            header: prefix,
            message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`
          });
        }
        for (const options of converters) {
          const { key, defaultValue, required, converter } = options;
          if (required === true) {
            if (dictionary == null || !Object.hasOwn(dictionary, key)) {
              throw webidl.errors.exception({
                header: prefix,
                message: `Missing required key "${key}".`
              });
            }
          }
          let value2 = dictionary?.[key];
          const hasDefault = defaultValue !== void 0;
          if (hasDefault && value2 === void 0) {
            value2 = defaultValue();
          }
          if (required || hasDefault || value2 !== void 0) {
            value2 = converter(value2, prefix, `${argument}.${key}`);
            if (options.allowedValues && !options.allowedValues.includes(value2)) {
              throw webidl.errors.exception({
                header: prefix,
                message: `${value2} is not an accepted type. Expected one of ${options.allowedValues.join(", ")}.`
              });
            }
            dict[key] = value2;
          }
        }
        return dict;
      };
    };
    webidl.nullableConverter = function(converter) {
      return (V, prefix, argument) => {
        if (V === null) {
          return V;
        }
        return converter(V, prefix, argument);
      };
    };
    webidl.is.USVString = function(value2) {
      return typeof value2 === "string" && value2.isWellFormed();
    };
    webidl.is.ReadableStream = webidl.util.MakeTypeAssertion(ReadableStream);
    webidl.is.Blob = webidl.util.MakeTypeAssertion(Blob);
    webidl.is.URLSearchParams = webidl.util.MakeTypeAssertion(URLSearchParams);
    webidl.is.File = webidl.util.MakeTypeAssertion(File);
    webidl.is.URL = webidl.util.MakeTypeAssertion(URL);
    webidl.is.AbortSignal = webidl.util.MakeTypeAssertion(AbortSignal);
    webidl.is.MessagePort = webidl.util.MakeTypeAssertion(MessagePort);
    webidl.is.BufferSource = function(V) {
      return types2.isArrayBuffer(V) || ArrayBuffer.isView(V) && types2.isArrayBuffer(V.buffer);
    };
    webidl.util.getCopyOfBytesHeldByBufferSource = function(bufferSource) {
      const jsBufferSource = bufferSource;
      let jsArrayBuffer = jsBufferSource;
      let offset2 = 0;
      let length2 = 0;
      if (types2.isTypedArray(jsBufferSource) || types2.isDataView(jsBufferSource)) {
        jsArrayBuffer = jsBufferSource.buffer;
        offset2 = jsBufferSource.byteOffset;
        length2 = jsBufferSource.byteLength;
      } else {
        assert3(types2.isAnyArrayBuffer(jsBufferSource));
        length2 = jsBufferSource.byteLength;
      }
      if (jsArrayBuffer.detached) {
        return new Uint8Array(0);
      }
      const bytes = new Uint8Array(length2);
      const view = new Uint8Array(jsArrayBuffer, offset2, length2);
      bytes.set(view);
      return bytes;
    };
    webidl.converters.DOMString = function(V, prefix, argument, flags) {
      if (V === null && webidl.util.HasFlag(flags, webidl.attributes.LegacyNullToEmptyString)) {
        return "";
      }
      if (typeof V === "symbol") {
        throw webidl.errors.exception({
          header: prefix,
          message: `${argument} is a symbol, which cannot be converted to a DOMString.`
        });
      }
      return String(V);
    };
    webidl.converters.ByteString = function(V, prefix, argument) {
      if (typeof V === "symbol") {
        throw webidl.errors.exception({
          header: prefix,
          message: `${argument} is a symbol, which cannot be converted to a ByteString.`
        });
      }
      const x = String(V);
      for (let index2 = 0; index2 < x.length; index2++) {
        if (x.charCodeAt(index2) > 255) {
          throw new TypeError(
            `Cannot convert argument to a ByteString because the character at index ${index2} has a value of ${x.charCodeAt(index2)} which is greater than 255.`
          );
        }
      }
      return x;
    };
    webidl.converters.USVString = function(value2) {
      if (typeof value2 === "string") {
        return value2.toWellFormed();
      }
      return `${value2}`.toWellFormed();
    };
    webidl.converters.boolean = function(V) {
      const x = Boolean(V);
      return x;
    };
    webidl.converters.any = function(V) {
      return V;
    };
    webidl.converters["long long"] = function(V, prefix, argument) {
      const x = webidl.util.ConvertToInt(V, 64, "signed", 0, prefix, argument);
      return x;
    };
    webidl.converters["unsigned long long"] = function(V, prefix, argument) {
      const x = webidl.util.ConvertToInt(V, 64, "unsigned", 0, prefix, argument);
      return x;
    };
    webidl.converters["unsigned long"] = function(V, prefix, argument) {
      const x = webidl.util.ConvertToInt(V, 32, "unsigned", 0, prefix, argument);
      return x;
    };
    webidl.converters["unsigned short"] = function(V, prefix, argument, flags) {
      const x = webidl.util.ConvertToInt(V, 16, "unsigned", flags, prefix, argument);
      return x;
    };
    webidl.converters.ArrayBuffer = function(V, prefix, argument, flags) {
      if (webidl.util.Type(V) !== OBJECT || !types2.isArrayBuffer(V)) {
        throw webidl.errors.conversionFailed({
          prefix,
          argument: `${argument} ("${webidl.util.Stringify(V)}")`,
          types: ["ArrayBuffer"]
        });
      }
      if (!webidl.util.HasFlag(flags, webidl.attributes.AllowResizable) && webidl.util.IsResizableArrayBuffer(V)) {
        throw webidl.errors.exception({
          header: prefix,
          message: `${argument} cannot be a resizable ArrayBuffer.`
        });
      }
      return V;
    };
    webidl.converters.SharedArrayBuffer = function(V, prefix, argument, flags) {
      if (webidl.util.Type(V) !== OBJECT || !types2.isSharedArrayBuffer(V)) {
        throw webidl.errors.conversionFailed({
          prefix,
          argument: `${argument} ("${webidl.util.Stringify(V)}")`,
          types: ["SharedArrayBuffer"]
        });
      }
      if (!webidl.util.HasFlag(flags, webidl.attributes.AllowResizable) && webidl.util.IsResizableArrayBuffer(V)) {
        throw webidl.errors.exception({
          header: prefix,
          message: `${argument} cannot be a resizable SharedArrayBuffer.`
        });
      }
      return V;
    };
    webidl.converters.TypedArray = function(V, T, prefix, argument, flags) {
      if (webidl.util.Type(V) !== OBJECT || !types2.isTypedArray(V) || V.constructor.name !== T.name) {
        throw webidl.errors.conversionFailed({
          prefix,
          argument: `${argument} ("${webidl.util.Stringify(V)}")`,
          types: [T.name]
        });
      }
      if (!webidl.util.HasFlag(flags, webidl.attributes.AllowShared) && types2.isSharedArrayBuffer(V.buffer)) {
        throw webidl.errors.exception({
          header: prefix,
          message: `${argument} cannot be a view on a shared array buffer.`
        });
      }
      if (!webidl.util.HasFlag(flags, webidl.attributes.AllowResizable) && webidl.util.IsResizableArrayBuffer(V.buffer)) {
        throw webidl.errors.exception({
          header: prefix,
          message: `${argument} cannot be a view on a resizable array buffer.`
        });
      }
      return V;
    };
    webidl.converters.DataView = function(V, prefix, argument, flags) {
      if (webidl.util.Type(V) !== OBJECT || !types2.isDataView(V)) {
        throw webidl.errors.conversionFailed({
          prefix,
          argument: `${argument} ("${webidl.util.Stringify(V)}")`,
          types: ["DataView"]
        });
      }
      if (!webidl.util.HasFlag(flags, webidl.attributes.AllowShared) && types2.isSharedArrayBuffer(V.buffer)) {
        throw webidl.errors.exception({
          header: prefix,
          message: `${argument} cannot be a view on a shared array buffer.`
        });
      }
      if (!webidl.util.HasFlag(flags, webidl.attributes.AllowResizable) && webidl.util.IsResizableArrayBuffer(V.buffer)) {
        throw webidl.errors.exception({
          header: prefix,
          message: `${argument} cannot be a view on a resizable array buffer.`
        });
      }
      return V;
    };
    webidl.converters.ArrayBufferView = function(V, prefix, argument, flags) {
      if (webidl.util.Type(V) !== OBJECT || !types2.isArrayBufferView(V)) {
        throw webidl.errors.conversionFailed({
          prefix,
          argument: `${argument} ("${webidl.util.Stringify(V)}")`,
          types: ["ArrayBufferView"]
        });
      }
      if (!webidl.util.HasFlag(flags, webidl.attributes.AllowShared) && types2.isSharedArrayBuffer(V.buffer)) {
        throw webidl.errors.exception({
          header: prefix,
          message: `${argument} cannot be a view on a shared array buffer.`
        });
      }
      if (!webidl.util.HasFlag(flags, webidl.attributes.AllowResizable) && webidl.util.IsResizableArrayBuffer(V.buffer)) {
        throw webidl.errors.exception({
          header: prefix,
          message: `${argument} cannot be a view on a resizable array buffer.`
        });
      }
      return V;
    };
    webidl.converters.BufferSource = function(V, prefix, argument, flags) {
      if (types2.isArrayBuffer(V)) {
        return webidl.converters.ArrayBuffer(V, prefix, argument, flags);
      }
      if (types2.isArrayBufferView(V)) {
        flags &= ~webidl.attributes.AllowShared;
        return webidl.converters.ArrayBufferView(V, prefix, argument, flags);
      }
      if (types2.isSharedArrayBuffer(V)) {
        throw webidl.errors.exception({
          header: prefix,
          message: `${argument} cannot be a SharedArrayBuffer.`
        });
      }
      throw webidl.errors.conversionFailed({
        prefix,
        argument: `${argument} ("${webidl.util.Stringify(V)}")`,
        types: ["ArrayBuffer", "ArrayBufferView"]
      });
    };
    webidl.converters.AllowSharedBufferSource = function(V, prefix, argument, flags) {
      if (types2.isArrayBuffer(V)) {
        return webidl.converters.ArrayBuffer(V, prefix, argument, flags);
      }
      if (types2.isSharedArrayBuffer(V)) {
        return webidl.converters.SharedArrayBuffer(V, prefix, argument, flags);
      }
      if (types2.isArrayBufferView(V)) {
        flags |= webidl.attributes.AllowShared;
        return webidl.converters.ArrayBufferView(V, prefix, argument, flags);
      }
      throw webidl.errors.conversionFailed({
        prefix,
        argument: `${argument} ("${webidl.util.Stringify(V)}")`,
        types: ["ArrayBuffer", "SharedArrayBuffer", "ArrayBufferView"]
      });
    };
    webidl.converters["sequence<ByteString>"] = webidl.sequenceConverter(
      webidl.converters.ByteString
    );
    webidl.converters["sequence<sequence<ByteString>>"] = webidl.sequenceConverter(
      webidl.converters["sequence<ByteString>"]
    );
    webidl.converters["record<ByteString, ByteString>"] = webidl.recordConverter(
      webidl.converters.ByteString,
      webidl.converters.ByteString
    );
    webidl.converters.Blob = webidl.interfaceConverter(webidl.is.Blob, "Blob");
    webidl.converters.AbortSignal = webidl.interfaceConverter(
      webidl.is.AbortSignal,
      "AbortSignal"
    );
    webidl.converters.EventHandlerNonNull = function(V) {
      if (webidl.util.Type(V) !== OBJECT) {
        return null;
      }
      if (typeof V === "function") {
        return V;
      }
      return () => {
      };
    };
    webidl.attributes = {
      Clamp: 1 << 0,
      EnforceRange: 1 << 1,
      AllowShared: 1 << 2,
      AllowResizable: 1 << 3,
      LegacyNullToEmptyString: 1 << 4
    };
    module.exports = {
      webidl
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/util.js
var require_util5 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/util.js"(exports, module) {
    "use strict";
    var { Transform } = __require("node:stream");
    var zlib6 = __require("node:zlib");
    var { redirectStatusSet, referrerPolicyTokens, badPortsSet } = require_constants13();
    var { getGlobalOrigin } = require_global();
    var { collectAnHTTPQuotedString, parseMIMEType } = require_data_url();
    var { performance: performance2 } = __require("node:perf_hooks");
    var { ReadableStreamFrom, isValidHTTPToken, normalizedMethodRecordsBase } = require_util4();
    var assert3 = __require("node:assert");
    var { isUint8Array: isUint8Array2 } = __require("node:util/types");
    var { webidl } = require_webidl();
    var { isomorphicEncode, collectASequenceOfCodePoints, removeChars } = require_infra2();
    function responseURL(response) {
      const urlList = response.urlList;
      const length2 = urlList.length;
      return length2 === 0 ? null : urlList[length2 - 1].toString();
    }
    function responseLocationURL(response, requestFragment) {
      if (!redirectStatusSet.has(response.status)) {
        return null;
      }
      let location = response.headersList.get("location", true);
      if (location !== null && isValidHeaderValue(location)) {
        if (!isValidEncodedURL(location)) {
          location = normalizeBinaryStringToUtf8(location);
        }
        location = new URL(location, responseURL(response));
      }
      if (location && !location.hash) {
        location.hash = requestFragment;
      }
      return location;
    }
    function isValidEncodedURL(url3) {
      for (let i5 = 0; i5 < url3.length; ++i5) {
        const code = url3.charCodeAt(i5);
        if (code > 126 || // Non-US-ASCII + DEL
        code < 32) {
          return false;
        }
      }
      return true;
    }
    function normalizeBinaryStringToUtf8(value2) {
      return Buffer.from(value2, "binary").toString("utf8");
    }
    function requestCurrentURL(request) {
      return request.urlList[request.urlList.length - 1];
    }
    function requestBadPort(request) {
      const url3 = requestCurrentURL(request);
      if (urlIsHttpHttpsScheme(url3) && badPortsSet.has(url3.port)) {
        return "blocked";
      }
      return "allowed";
    }
    function isErrorLike(object) {
      return object instanceof Error || (object?.constructor?.name === "Error" || object?.constructor?.name === "DOMException");
    }
    function isValidReasonPhrase(statusText) {
      for (let i5 = 0; i5 < statusText.length; ++i5) {
        const c6 = statusText.charCodeAt(i5);
        if (!(c6 === 9 || // HTAB
        c6 >= 32 && c6 <= 126 || // SP / VCHAR
        c6 >= 128 && c6 <= 255)) {
          return false;
        }
      }
      return true;
    }
    var isValidHeaderName2 = isValidHTTPToken;
    function isValidHeaderValue(potentialValue) {
      return (potentialValue[0] === "	" || potentialValue[0] === " " || potentialValue[potentialValue.length - 1] === "	" || potentialValue[potentialValue.length - 1] === " " || potentialValue.includes("\n") || potentialValue.includes("\r") || potentialValue.includes("\0")) === false;
    }
    function parseReferrerPolicy(actualResponse) {
      const policyHeader = (actualResponse.headersList.get("referrer-policy", true) ?? "").split(",");
      let policy = "";
      if (policyHeader.length) {
        for (let i5 = policyHeader.length; i5 !== 0; i5--) {
          const token = policyHeader[i5 - 1].trim();
          if (referrerPolicyTokens.has(token)) {
            policy = token;
            break;
          }
        }
      }
      return policy;
    }
    function setRequestReferrerPolicyOnRedirect(request, actualResponse) {
      const policy = parseReferrerPolicy(actualResponse);
      if (policy !== "") {
        request.referrerPolicy = policy;
      }
    }
    function crossOriginResourcePolicyCheck() {
      return "allowed";
    }
    function corsCheck() {
      return "success";
    }
    function TAOCheck() {
      return "success";
    }
    function appendFetchMetadata(httpRequest) {
      let header = null;
      header = httpRequest.mode;
      httpRequest.headersList.set("sec-fetch-mode", header, true);
    }
    function appendRequestOriginHeader(request) {
      let serializedOrigin = request.origin;
      if (serializedOrigin === "client" || serializedOrigin === void 0) {
        return;
      }
      if (request.responseTainting === "cors" || request.mode === "websocket") {
        request.headersList.append("origin", serializedOrigin, true);
      } else if (request.method !== "GET" && request.method !== "HEAD") {
        switch (request.referrerPolicy) {
          case "no-referrer":
            serializedOrigin = null;
            break;
          case "no-referrer-when-downgrade":
          case "strict-origin":
          case "strict-origin-when-cross-origin":
            if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {
              serializedOrigin = null;
            }
            break;
          case "same-origin":
            if (!sameOrigin(request, requestCurrentURL(request))) {
              serializedOrigin = null;
            }
            break;
          default:
        }
        request.headersList.append("origin", serializedOrigin, true);
      }
    }
    function coarsenTime(timestamp, crossOriginIsolatedCapability) {
      return timestamp;
    }
    function clampAndCoarsenConnectionTimingInfo(connectionTimingInfo, defaultStartTime, crossOriginIsolatedCapability) {
      if (!connectionTimingInfo?.startTime || connectionTimingInfo.startTime < defaultStartTime) {
        return {
          domainLookupStartTime: defaultStartTime,
          domainLookupEndTime: defaultStartTime,
          connectionStartTime: defaultStartTime,
          connectionEndTime: defaultStartTime,
          secureConnectionStartTime: defaultStartTime,
          ALPNNegotiatedProtocol: connectionTimingInfo?.ALPNNegotiatedProtocol
        };
      }
      return {
        domainLookupStartTime: coarsenTime(connectionTimingInfo.domainLookupStartTime, crossOriginIsolatedCapability),
        domainLookupEndTime: coarsenTime(connectionTimingInfo.domainLookupEndTime, crossOriginIsolatedCapability),
        connectionStartTime: coarsenTime(connectionTimingInfo.connectionStartTime, crossOriginIsolatedCapability),
        connectionEndTime: coarsenTime(connectionTimingInfo.connectionEndTime, crossOriginIsolatedCapability),
        secureConnectionStartTime: coarsenTime(connectionTimingInfo.secureConnectionStartTime, crossOriginIsolatedCapability),
        ALPNNegotiatedProtocol: connectionTimingInfo.ALPNNegotiatedProtocol
      };
    }
    function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) {
      return coarsenTime(performance2.now(), crossOriginIsolatedCapability);
    }
    function createOpaqueTimingInfo(timingInfo) {
      return {
        startTime: timingInfo.startTime ?? 0,
        redirectStartTime: 0,
        redirectEndTime: 0,
        postRedirectStartTime: timingInfo.startTime ?? 0,
        finalServiceWorkerStartTime: 0,
        finalNetworkResponseStartTime: 0,
        finalNetworkRequestStartTime: 0,
        endTime: 0,
        encodedBodySize: 0,
        decodedBodySize: 0,
        finalConnectionTimingInfo: null
      };
    }
    function makePolicyContainer() {
      return {
        referrerPolicy: "strict-origin-when-cross-origin"
      };
    }
    function clonePolicyContainer(policyContainer) {
      return {
        referrerPolicy: policyContainer.referrerPolicy
      };
    }
    function determineRequestsReferrer(request) {
      const policy = request.referrerPolicy;
      assert3(policy);
      let referrerSource = null;
      if (request.referrer === "client") {
        const globalOrigin = getGlobalOrigin();
        if (!globalOrigin || globalOrigin.origin === "null") {
          return "no-referrer";
        }
        referrerSource = new URL(globalOrigin);
      } else if (webidl.is.URL(request.referrer)) {
        referrerSource = request.referrer;
      }
      let referrerURL = stripURLForReferrer(referrerSource);
      const referrerOrigin = stripURLForReferrer(referrerSource, true);
      if (referrerURL.toString().length > 4096) {
        referrerURL = referrerOrigin;
      }
      switch (policy) {
        case "no-referrer":
          return "no-referrer";
        case "origin":
          if (referrerOrigin != null) {
            return referrerOrigin;
          }
          return stripURLForReferrer(referrerSource, true);
        case "unsafe-url":
          return referrerURL;
        case "strict-origin": {
          const currentURL = requestCurrentURL(request);
          if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {
            return "no-referrer";
          }
          return referrerOrigin;
        }
        case "strict-origin-when-cross-origin": {
          const currentURL = requestCurrentURL(request);
          if (sameOrigin(referrerURL, currentURL)) {
            return referrerURL;
          }
          if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {
            return "no-referrer";
          }
          return referrerOrigin;
        }
        case "same-origin":
          if (sameOrigin(request, referrerURL)) {
            return referrerURL;
          }
          return "no-referrer";
        case "origin-when-cross-origin":
          if (sameOrigin(request, referrerURL)) {
            return referrerURL;
          }
          return referrerOrigin;
        case "no-referrer-when-downgrade": {
          const currentURL = requestCurrentURL(request);
          if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {
            return "no-referrer";
          }
          return referrerURL;
        }
      }
    }
    function stripURLForReferrer(url3, originOnly = false) {
      assert3(webidl.is.URL(url3));
      url3 = new URL(url3);
      if (urlIsLocal(url3)) {
        return "no-referrer";
      }
      url3.username = "";
      url3.password = "";
      url3.hash = "";
      if (originOnly === true) {
        url3.pathname = "";
        url3.search = "";
      }
      return url3;
    }
    var isPotentialleTrustworthyIPv4 = RegExp.prototype.test.bind(/^127\.(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){2}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$/);
    var isPotentiallyTrustworthyIPv6 = RegExp.prototype.test.bind(/^(?:(?:0{1,4}:){7}|(?:0{1,4}:){1,6}:|::)0{0,3}1$/);
    function isOriginIPPotentiallyTrustworthy(origin2) {
      if (origin2.includes(":")) {
        if (origin2[0] === "[" && origin2[origin2.length - 1] === "]") {
          origin2 = origin2.slice(1, -1);
        }
        return isPotentiallyTrustworthyIPv6(origin2);
      }
      return isPotentialleTrustworthyIPv4(origin2);
    }
    function isOriginPotentiallyTrustworthy(origin2) {
      if (origin2 == null || origin2 === "null") {
        return false;
      }
      origin2 = new URL(origin2);
      if (origin2.protocol === "https:" || origin2.protocol === "wss:") {
        return true;
      }
      if (isOriginIPPotentiallyTrustworthy(origin2.hostname)) {
        return true;
      }
      if (origin2.hostname === "localhost" || origin2.hostname === "localhost.") {
        return true;
      }
      if (origin2.hostname.endsWith(".localhost") || origin2.hostname.endsWith(".localhost.")) {
        return true;
      }
      if (origin2.protocol === "file:") {
        return true;
      }
      return false;
    }
    function isURLPotentiallyTrustworthy(url3) {
      if (!webidl.is.URL(url3)) {
        return false;
      }
      if (url3.href === "about:blank" || url3.href === "about:srcdoc") {
        return true;
      }
      if (url3.protocol === "data:") return true;
      if (url3.protocol === "blob:") return true;
      return isOriginPotentiallyTrustworthy(url3.origin);
    }
    function tryUpgradeRequestToAPotentiallyTrustworthyURL(request) {
    }
    function sameOrigin(A, B) {
      if (A.origin === B.origin && A.origin === "null") {
        return true;
      }
      if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {
        return true;
      }
      return false;
    }
    function isAborted(fetchParams) {
      return fetchParams.controller.state === "aborted";
    }
    function isCancelled(fetchParams) {
      return fetchParams.controller.state === "aborted" || fetchParams.controller.state === "terminated";
    }
    function normalizeMethod(method) {
      return normalizedMethodRecordsBase[method.toLowerCase()] ?? method;
    }
    var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));
    function createIterator(name, kInternalIterator, keyIndex = 0, valueIndex = 1) {
      class FastIterableIterator {
        /** @type {any} */
        #target;
        /** @type {'key' | 'value' | 'key+value'} */
        #kind;
        /** @type {number} */
        #index;
        /**
         * @see https://webidl.spec.whatwg.org/#dfn-default-iterator-object
         * @param {unknown} target
         * @param {'key' | 'value' | 'key+value'} kind
         */
        constructor(target, kind) {
          this.#target = target;
          this.#kind = kind;
          this.#index = 0;
        }
        next() {
          if (typeof this !== "object" || this === null || !(#target in this)) {
            throw new TypeError(
              `'next' called on an object that does not implement interface ${name} Iterator.`
            );
          }
          const index2 = this.#index;
          const values = kInternalIterator(this.#target);
          const len = values.length;
          if (index2 >= len) {
            return {
              value: void 0,
              done: true
            };
          }
          const { [keyIndex]: key, [valueIndex]: value2 } = values[index2];
          this.#index = index2 + 1;
          let result;
          switch (this.#kind) {
            case "key":
              result = key;
              break;
            case "value":
              result = value2;
              break;
            case "key+value":
              result = [key, value2];
              break;
          }
          return {
            value: result,
            done: false
          };
        }
      }
      delete FastIterableIterator.prototype.constructor;
      Object.setPrototypeOf(FastIterableIterator.prototype, esIteratorPrototype);
      Object.defineProperties(FastIterableIterator.prototype, {
        [Symbol.toStringTag]: {
          writable: false,
          enumerable: false,
          configurable: true,
          value: `${name} Iterator`
        },
        next: { writable: true, enumerable: true, configurable: true }
      });
      return function(target, kind) {
        return new FastIterableIterator(target, kind);
      };
    }
    function iteratorMixin(name, object, kInternalIterator, keyIndex = 0, valueIndex = 1) {
      const makeIterator = createIterator(name, kInternalIterator, keyIndex, valueIndex);
      const properties = {
        keys: {
          writable: true,
          enumerable: true,
          configurable: true,
          value: function keys2() {
            webidl.brandCheck(this, object);
            return makeIterator(this, "key");
          }
        },
        values: {
          writable: true,
          enumerable: true,
          configurable: true,
          value: function values() {
            webidl.brandCheck(this, object);
            return makeIterator(this, "value");
          }
        },
        entries: {
          writable: true,
          enumerable: true,
          configurable: true,
          value: function entries3() {
            webidl.brandCheck(this, object);
            return makeIterator(this, "key+value");
          }
        },
        forEach: {
          writable: true,
          enumerable: true,
          configurable: true,
          value: function forEach2(callbackfn, thisArg = globalThis) {
            webidl.brandCheck(this, object);
            webidl.argumentLengthCheck(arguments, 1, `${name}.forEach`);
            if (typeof callbackfn !== "function") {
              throw new TypeError(
                `Failed to execute 'forEach' on '${name}': parameter 1 is not of type 'Function'.`
              );
            }
            for (const { 0: key, 1: value2 } of makeIterator(this, "key+value")) {
              callbackfn.call(thisArg, value2, key, this);
            }
          }
        }
      };
      return Object.defineProperties(object.prototype, {
        ...properties,
        [Symbol.iterator]: {
          writable: true,
          enumerable: false,
          configurable: true,
          value: properties.entries.value
        }
      });
    }
    function fullyReadBody(body, processBody, processBodyError) {
      const successSteps = processBody;
      const errorSteps = processBodyError;
      try {
        const reader = body.stream.getReader();
        readAllBytes(reader, successSteps, errorSteps);
      } catch (e4) {
        errorSteps(e4);
      }
    }
    function readableStreamClose(controller) {
      try {
        controller.close();
        controller.byobRequest?.respond(0);
      } catch (err2) {
        if (!err2.message.includes("Controller is already closed") && !err2.message.includes("ReadableStream is already closed")) {
          throw err2;
        }
      }
    }
    async function readAllBytes(reader, successSteps, failureSteps) {
      try {
        const bytes = [];
        let byteLength3 = 0;
        do {
          const { done, value: chunk3 } = await reader.read();
          if (done) {
            successSteps(Buffer.concat(bytes, byteLength3));
            return;
          }
          if (!isUint8Array2(chunk3)) {
            failureSteps(new TypeError("Received non-Uint8Array chunk"));
            return;
          }
          bytes.push(chunk3);
          byteLength3 += chunk3.length;
        } while (true);
      } catch (e4) {
        failureSteps(e4);
      }
    }
    function urlIsLocal(url3) {
      assert3("protocol" in url3);
      const protocol = url3.protocol;
      return protocol === "about:" || protocol === "blob:" || protocol === "data:";
    }
    function urlHasHttpsScheme(url3) {
      return typeof url3 === "string" && url3[5] === ":" && url3[0] === "h" && url3[1] === "t" && url3[2] === "t" && url3[3] === "p" && url3[4] === "s" || url3.protocol === "https:";
    }
    function urlIsHttpHttpsScheme(url3) {
      assert3("protocol" in url3);
      const protocol = url3.protocol;
      return protocol === "http:" || protocol === "https:";
    }
    function simpleRangeHeaderValue(value2, allowWhitespace) {
      const data2 = value2;
      if (!data2.startsWith("bytes")) {
        return "failure";
      }
      const position = { position: 5 };
      if (allowWhitespace) {
        collectASequenceOfCodePoints(
          (char) => char === "	" || char === " ",
          data2,
          position
        );
      }
      if (data2.charCodeAt(position.position) !== 61) {
        return "failure";
      }
      position.position++;
      if (allowWhitespace) {
        collectASequenceOfCodePoints(
          (char) => char === "	" || char === " ",
          data2,
          position
        );
      }
      const rangeStart = collectASequenceOfCodePoints(
        (char) => {
          const code = char.charCodeAt(0);
          return code >= 48 && code <= 57;
        },
        data2,
        position
      );
      const rangeStartValue = rangeStart.length ? Number(rangeStart) : null;
      if (allowWhitespace) {
        collectASequenceOfCodePoints(
          (char) => char === "	" || char === " ",
          data2,
          position
        );
      }
      if (data2.charCodeAt(position.position) !== 45) {
        return "failure";
      }
      position.position++;
      if (allowWhitespace) {
        collectASequenceOfCodePoints(
          (char) => char === "	" || char === " ",
          data2,
          position
        );
      }
      const rangeEnd = collectASequenceOfCodePoints(
        (char) => {
          const code = char.charCodeAt(0);
          return code >= 48 && code <= 57;
        },
        data2,
        position
      );
      const rangeEndValue = rangeEnd.length ? Number(rangeEnd) : null;
      if (position.position < data2.length) {
        return "failure";
      }
      if (rangeEndValue === null && rangeStartValue === null) {
        return "failure";
      }
      if (rangeStartValue > rangeEndValue) {
        return "failure";
      }
      return { rangeStartValue, rangeEndValue };
    }
    function buildContentRange(rangeStart, rangeEnd, fullLength) {
      let contentRange = "bytes ";
      contentRange += isomorphicEncode(`${rangeStart}`);
      contentRange += "-";
      contentRange += isomorphicEncode(`${rangeEnd}`);
      contentRange += "/";
      contentRange += isomorphicEncode(`${fullLength}`);
      return contentRange;
    }
    var InflateStream = class extends Transform {
      #zlibOptions;
      /** @param {zlib.ZlibOptions} [zlibOptions] */
      constructor(zlibOptions2) {
        super();
        this.#zlibOptions = zlibOptions2;
      }
      _transform(chunk3, encoding, callback) {
        if (!this._inflateStream) {
          if (chunk3.length === 0) {
            callback();
            return;
          }
          this._inflateStream = (chunk3[0] & 15) === 8 ? zlib6.createInflate(this.#zlibOptions) : zlib6.createInflateRaw(this.#zlibOptions);
          this._inflateStream.on("data", this.push.bind(this));
          this._inflateStream.on("end", () => this.push(null));
          this._inflateStream.on("error", (err2) => this.destroy(err2));
        }
        this._inflateStream.write(chunk3, encoding, callback);
      }
      _final(callback) {
        if (this._inflateStream) {
          this._inflateStream.end();
          this._inflateStream = null;
        }
        callback();
      }
    };
    function createInflate(zlibOptions2) {
      return new InflateStream(zlibOptions2);
    }
    function extractMimeType(headers) {
      let charset = null;
      let essence = null;
      let mimeType = null;
      const values = getDecodeSplit("content-type", headers);
      if (values === null) {
        return "failure";
      }
      for (const value2 of values) {
        const temporaryMimeType = parseMIMEType(value2);
        if (temporaryMimeType === "failure" || temporaryMimeType.essence === "*/*") {
          continue;
        }
        mimeType = temporaryMimeType;
        if (mimeType.essence !== essence) {
          charset = null;
          if (mimeType.parameters.has("charset")) {
            charset = mimeType.parameters.get("charset");
          }
          essence = mimeType.essence;
        } else if (!mimeType.parameters.has("charset") && charset !== null) {
          mimeType.parameters.set("charset", charset);
        }
      }
      if (mimeType == null) {
        return "failure";
      }
      return mimeType;
    }
    function gettingDecodingSplitting(value2) {
      const input = value2;
      const position = { position: 0 };
      const values = [];
      let temporaryValue = "";
      while (position.position < input.length) {
        temporaryValue += collectASequenceOfCodePoints(
          (char) => char !== '"' && char !== ",",
          input,
          position
        );
        if (position.position < input.length) {
          if (input.charCodeAt(position.position) === 34) {
            temporaryValue += collectAnHTTPQuotedString(
              input,
              position
            );
            if (position.position < input.length) {
              continue;
            }
          } else {
            assert3(input.charCodeAt(position.position) === 44);
            position.position++;
          }
        }
        temporaryValue = removeChars(temporaryValue, true, true, (char) => char === 9 || char === 32);
        values.push(temporaryValue);
        temporaryValue = "";
      }
      return values;
    }
    function getDecodeSplit(name, list) {
      const value2 = list.get(name, true);
      if (value2 === null) {
        return null;
      }
      return gettingDecodingSplitting(value2);
    }
    function hasAuthenticationEntry(request) {
      return false;
    }
    function includesCredentials(url3) {
      return !!(url3.username && url3.password);
    }
    function isTraversableNavigable(navigable) {
      return true;
    }
    var EnvironmentSettingsObjectBase = class {
      get baseUrl() {
        return getGlobalOrigin();
      }
      get origin() {
        return this.baseUrl?.origin;
      }
      policyContainer = makePolicyContainer();
    };
    var EnvironmentSettingsObject = class {
      settingsObject = new EnvironmentSettingsObjectBase();
    };
    var environmentSettingsObject = new EnvironmentSettingsObject();
    module.exports = {
      isAborted,
      isCancelled,
      isValidEncodedURL,
      ReadableStreamFrom,
      tryUpgradeRequestToAPotentiallyTrustworthyURL,
      clampAndCoarsenConnectionTimingInfo,
      coarsenedSharedCurrentTime,
      determineRequestsReferrer,
      makePolicyContainer,
      clonePolicyContainer,
      appendFetchMetadata,
      appendRequestOriginHeader,
      TAOCheck,
      corsCheck,
      crossOriginResourcePolicyCheck,
      createOpaqueTimingInfo,
      setRequestReferrerPolicyOnRedirect,
      isValidHTTPToken,
      requestBadPort,
      requestCurrentURL,
      responseURL,
      responseLocationURL,
      isURLPotentiallyTrustworthy,
      isValidReasonPhrase,
      sameOrigin,
      normalizeMethod,
      iteratorMixin,
      createIterator,
      isValidHeaderName: isValidHeaderName2,
      isValidHeaderValue,
      isErrorLike,
      fullyReadBody,
      readableStreamClose,
      urlIsLocal,
      urlHasHttpsScheme,
      urlIsHttpHttpsScheme,
      readAllBytes,
      simpleRangeHeaderValue,
      buildContentRange,
      createInflate,
      extractMimeType,
      getDecodeSplit,
      environmentSettingsObject,
      isOriginIPPotentiallyTrustworthy,
      hasAuthenticationEntry,
      includesCredentials,
      isTraversableNavigable
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/formdata.js
var require_formdata = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/formdata.js"(exports, module) {
    "use strict";
    var { iteratorMixin } = require_util5();
    var { kEnumerableProperty } = require_util4();
    var { webidl } = require_webidl();
    var nodeUtil = __require("node:util");
    var FormData3 = class _FormData {
      #state = [];
      constructor(form = void 0) {
        webidl.util.markAsUncloneable(this);
        if (form !== void 0) {
          throw webidl.errors.conversionFailed({
            prefix: "FormData constructor",
            argument: "Argument 1",
            types: ["undefined"]
          });
        }
      }
      append(name, value2, filename = void 0) {
        webidl.brandCheck(this, _FormData);
        const prefix = "FormData.append";
        webidl.argumentLengthCheck(arguments, 2, prefix);
        name = webidl.converters.USVString(name);
        if (arguments.length === 3 || webidl.is.Blob(value2)) {
          value2 = webidl.converters.Blob(value2, prefix, "value");
          if (filename !== void 0) {
            filename = webidl.converters.USVString(filename);
          }
        } else {
          value2 = webidl.converters.USVString(value2);
        }
        const entry = makeEntry(name, value2, filename);
        this.#state.push(entry);
      }
      delete(name) {
        webidl.brandCheck(this, _FormData);
        const prefix = "FormData.delete";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        name = webidl.converters.USVString(name);
        this.#state = this.#state.filter((entry) => entry.name !== name);
      }
      get(name) {
        webidl.brandCheck(this, _FormData);
        const prefix = "FormData.get";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        name = webidl.converters.USVString(name);
        const idx = this.#state.findIndex((entry) => entry.name === name);
        if (idx === -1) {
          return null;
        }
        return this.#state[idx].value;
      }
      getAll(name) {
        webidl.brandCheck(this, _FormData);
        const prefix = "FormData.getAll";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        name = webidl.converters.USVString(name);
        return this.#state.filter((entry) => entry.name === name).map((entry) => entry.value);
      }
      has(name) {
        webidl.brandCheck(this, _FormData);
        const prefix = "FormData.has";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        name = webidl.converters.USVString(name);
        return this.#state.findIndex((entry) => entry.name === name) !== -1;
      }
      set(name, value2, filename = void 0) {
        webidl.brandCheck(this, _FormData);
        const prefix = "FormData.set";
        webidl.argumentLengthCheck(arguments, 2, prefix);
        name = webidl.converters.USVString(name);
        if (arguments.length === 3 || webidl.is.Blob(value2)) {
          value2 = webidl.converters.Blob(value2, prefix, "value");
          if (filename !== void 0) {
            filename = webidl.converters.USVString(filename);
          }
        } else {
          value2 = webidl.converters.USVString(value2);
        }
        const entry = makeEntry(name, value2, filename);
        const idx = this.#state.findIndex((entry2) => entry2.name === name);
        if (idx !== -1) {
          this.#state = [
            ...this.#state.slice(0, idx),
            entry,
            ...this.#state.slice(idx + 1).filter((entry2) => entry2.name !== name)
          ];
        } else {
          this.#state.push(entry);
        }
      }
      [nodeUtil.inspect.custom](depth, options) {
        const state = this.#state.reduce((a5, b3) => {
          if (a5[b3.name]) {
            if (Array.isArray(a5[b3.name])) {
              a5[b3.name].push(b3.value);
            } else {
              a5[b3.name] = [a5[b3.name], b3.value];
            }
          } else {
            a5[b3.name] = b3.value;
          }
          return a5;
        }, { __proto__: null });
        options.depth ??= depth;
        options.colors ??= true;
        const output = nodeUtil.formatWithOptions(options, state);
        return `FormData ${output.slice(output.indexOf("]") + 2)}`;
      }
      /**
       * @param {FormData} formData
       */
      static getFormDataState(formData) {
        return formData.#state;
      }
      /**
       * @param {FormData} formData
       * @param {any[]} newState
       */
      static setFormDataState(formData, newState) {
        formData.#state = newState;
      }
    };
    var { getFormDataState, setFormDataState } = FormData3;
    Reflect.deleteProperty(FormData3, "getFormDataState");
    Reflect.deleteProperty(FormData3, "setFormDataState");
    iteratorMixin("FormData", FormData3, getFormDataState, "name", "value");
    Object.defineProperties(FormData3.prototype, {
      append: kEnumerableProperty,
      delete: kEnumerableProperty,
      get: kEnumerableProperty,
      getAll: kEnumerableProperty,
      has: kEnumerableProperty,
      set: kEnumerableProperty,
      [Symbol.toStringTag]: {
        value: "FormData",
        configurable: true
      }
    });
    function makeEntry(name, value2, filename) {
      if (typeof value2 === "string") {
      } else {
        if (!webidl.is.File(value2)) {
          value2 = new File([value2], "blob", { type: value2.type });
        }
        if (filename !== void 0) {
          const options = {
            type: value2.type,
            lastModified: value2.lastModified
          };
          value2 = new File([value2], filename, options);
        }
      }
      return { name, value: value2 };
    }
    webidl.is.FormData = webidl.util.MakeTypeAssertion(FormData3);
    module.exports = { FormData: FormData3, makeEntry, setFormDataState };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/formdata-parser.js
var require_formdata_parser = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/formdata-parser.js"(exports, module) {
    "use strict";
    var { bufferToLowerCasedHeaderName } = require_util4();
    var { HTTP_TOKEN_CODEPOINTS } = require_data_url();
    var { makeEntry } = require_formdata();
    var { webidl } = require_webidl();
    var assert3 = __require("node:assert");
    var { isomorphicDecode } = require_infra2();
    var { utf8DecodeBytes } = require_encoding2();
    var dd = Buffer.from("--");
    var decoder2 = new TextDecoder();
    function isAsciiString(chars) {
      for (let i5 = 0; i5 < chars.length; ++i5) {
        if ((chars.charCodeAt(i5) & ~127) !== 0) {
          return false;
        }
      }
      return true;
    }
    function validateBoundary(boundary) {
      const length2 = boundary.length;
      if (length2 < 27 || length2 > 70) {
        return false;
      }
      for (let i5 = 0; i5 < length2; ++i5) {
        const cp = boundary.charCodeAt(i5);
        if (!(cp >= 48 && cp <= 57 || cp >= 65 && cp <= 90 || cp >= 97 && cp <= 122 || cp === 39 || cp === 45 || cp === 95)) {
          return false;
        }
      }
      return true;
    }
    function multipartFormDataParser(input, mimeType) {
      assert3(mimeType !== "failure" && mimeType.essence === "multipart/form-data");
      const boundaryString = mimeType.parameters.get("boundary");
      if (boundaryString === void 0) {
        throw parsingError("missing boundary in content-type header");
      }
      const boundary = Buffer.from(`--${boundaryString}`, "utf8");
      const entryList = [];
      const position = { position: 0 };
      const firstBoundaryIndex = input.indexOf(boundary);
      if (firstBoundaryIndex === -1) {
        throw parsingError("no boundary found in multipart body");
      }
      position.position = firstBoundaryIndex;
      while (true) {
        if (input.subarray(position.position, position.position + boundary.length).equals(boundary)) {
          position.position += boundary.length;
        } else {
          throw parsingError("expected a value starting with -- and the boundary");
        }
        if (bufferStartsWith(input, dd, position)) {
          return entryList;
        }
        if (input[position.position] !== 13 || input[position.position + 1] !== 10) {
          throw parsingError("expected CRLF");
        }
        position.position += 2;
        const result = parseMultipartFormDataHeaders(input, position);
        let { name, filename, contentType, encoding } = result;
        position.position += 2;
        let body;
        {
          const boundaryIndex = input.indexOf(boundary.subarray(2), position.position);
          if (boundaryIndex === -1) {
            throw parsingError("expected boundary after body");
          }
          body = input.subarray(position.position, boundaryIndex - 4);
          position.position += body.length;
          if (encoding === "base64") {
            body = Buffer.from(body.toString(), "base64");
          }
        }
        if (input[position.position] !== 13 || input[position.position + 1] !== 10) {
          throw parsingError("expected CRLF");
        } else {
          position.position += 2;
        }
        let value2;
        if (filename !== null) {
          contentType ??= "text/plain";
          if (!isAsciiString(contentType)) {
            contentType = "";
          }
          value2 = new File([body], filename, { type: contentType });
        } else {
          value2 = utf8DecodeBytes(Buffer.from(body));
        }
        assert3(webidl.is.USVString(name));
        assert3(typeof value2 === "string" && webidl.is.USVString(value2) || webidl.is.File(value2));
        entryList.push(makeEntry(name, value2, filename));
      }
    }
    function parseContentDispositionAttribute(input, position) {
      if (input[position.position] === 59) {
        position.position++;
      }
      collectASequenceOfBytes(
        (char) => char === 32 || char === 9,
        input,
        position
      );
      const attributeName = collectASequenceOfBytes(
        (char) => isToken(char) && char !== 61 && char !== 42,
        // not = or *
        input,
        position
      );
      if (attributeName.length === 0) {
        return null;
      }
      const attrNameStr = attributeName.toString("ascii").toLowerCase();
      const isExtended = input[position.position] === 42;
      if (isExtended) {
        position.position++;
      }
      if (input[position.position] !== 61) {
        return null;
      }
      position.position++;
      collectASequenceOfBytes(
        (char) => char === 32 || char === 9,
        input,
        position
      );
      let value2;
      if (isExtended) {
        const headerValue = collectASequenceOfBytes(
          (char) => char !== 32 && char !== 13 && char !== 10 && char !== 59,
          // not space, CRLF, or ;
          input,
          position
        );
        if (headerValue[0] !== 117 && headerValue[0] !== 85 || // u or U
        headerValue[1] !== 116 && headerValue[1] !== 84 || // t or T
        headerValue[2] !== 102 && headerValue[2] !== 70 || // f or F
        headerValue[3] !== 45 || // -
        headerValue[4] !== 56) {
          throw parsingError("unknown encoding, expected utf-8''");
        }
        value2 = decodeURIComponent(decoder2.decode(headerValue.subarray(7)));
      } else if (input[position.position] === 34) {
        position.position++;
        const quotedValue = collectASequenceOfBytes(
          (char) => char !== 10 && char !== 13 && char !== 34,
          // not LF, CR, or "
          input,
          position
        );
        if (input[position.position] !== 34) {
          throw parsingError("Closing quote not found");
        }
        position.position++;
        value2 = decoder2.decode(quotedValue).replace(/%0A/ig, "\n").replace(/%0D/ig, "\r").replace(/%22/g, '"');
      } else {
        const tokenValue = collectASequenceOfBytes(
          (char) => isToken(char) && char !== 59,
          // not ;
          input,
          position
        );
        value2 = decoder2.decode(tokenValue);
      }
      return { name: attrNameStr, value: value2 };
    }
    function parseMultipartFormDataHeaders(input, position) {
      let name = null;
      let filename = null;
      let contentType = null;
      let encoding = null;
      while (true) {
        if (input[position.position] === 13 && input[position.position + 1] === 10) {
          if (name === null) {
            throw parsingError("header name is null");
          }
          return { name, filename, contentType, encoding };
        }
        let headerName = collectASequenceOfBytes(
          (char) => char !== 10 && char !== 13 && char !== 58,
          input,
          position
        );
        headerName = removeChars(headerName, true, true, (char) => char === 9 || char === 32);
        if (!HTTP_TOKEN_CODEPOINTS.test(headerName.toString())) {
          throw parsingError("header name does not match the field-name token production");
        }
        if (input[position.position] !== 58) {
          throw parsingError("expected :");
        }
        position.position++;
        collectASequenceOfBytes(
          (char) => char === 32 || char === 9,
          input,
          position
        );
        switch (bufferToLowerCasedHeaderName(headerName)) {
          case "content-disposition": {
            name = filename = null;
            const dispositionType = collectASequenceOfBytes(
              (char) => isToken(char),
              input,
              position
            );
            if (dispositionType.toString("ascii").toLowerCase() !== "form-data") {
              throw parsingError("expected form-data for content-disposition header");
            }
            while (position.position < input.length && input[position.position] !== 13 && input[position.position + 1] !== 10) {
              const attribute = parseContentDispositionAttribute(input, position);
              if (!attribute) {
                break;
              }
              if (attribute.name === "name") {
                name = attribute.value;
              } else if (attribute.name === "filename") {
                filename = attribute.value;
              }
            }
            if (name === null) {
              throw parsingError("name attribute is required in content-disposition header");
            }
            break;
          }
          case "content-type": {
            let headerValue = collectASequenceOfBytes(
              (char) => char !== 10 && char !== 13,
              input,
              position
            );
            headerValue = removeChars(headerValue, false, true, (char) => char === 9 || char === 32);
            contentType = isomorphicDecode(headerValue);
            break;
          }
          case "content-transfer-encoding": {
            let headerValue = collectASequenceOfBytes(
              (char) => char !== 10 && char !== 13,
              input,
              position
            );
            headerValue = removeChars(headerValue, false, true, (char) => char === 9 || char === 32);
            encoding = isomorphicDecode(headerValue);
            break;
          }
          default: {
            collectASequenceOfBytes(
              (char) => char !== 10 && char !== 13,
              input,
              position
            );
          }
        }
        if (input[position.position] !== 13 && input[position.position + 1] !== 10) {
          throw parsingError("expected CRLF");
        } else {
          position.position += 2;
        }
      }
    }
    function collectASequenceOfBytes(condition, input, position) {
      let start2 = position.position;
      while (start2 < input.length && condition(input[start2])) {
        ++start2;
      }
      return input.subarray(position.position, position.position = start2);
    }
    function removeChars(buf, leading, trailing, predicate) {
      let lead = 0;
      let trail = buf.length - 1;
      if (leading) {
        while (lead < buf.length && predicate(buf[lead])) lead++;
      }
      if (trailing) {
        while (trail > 0 && predicate(buf[trail])) trail--;
      }
      return lead === 0 && trail === buf.length - 1 ? buf : buf.subarray(lead, trail + 1);
    }
    function bufferStartsWith(buffer, start2, position) {
      if (buffer.length < start2.length) {
        return false;
      }
      for (let i5 = 0; i5 < start2.length; i5++) {
        if (start2[i5] !== buffer[position.position + i5]) {
          return false;
        }
      }
      return true;
    }
    function parsingError(cause) {
      return new TypeError("Failed to parse body as FormData.", { cause: new TypeError(cause) });
    }
    function isCTL(char) {
      return char <= 31 || char === 127;
    }
    function isTSpecial(char) {
      return char === 40 || // (
      char === 41 || // )
      char === 60 || // <
      char === 62 || // >
      char === 64 || // @
      char === 44 || // ,
      char === 59 || // ;
      char === 58 || // :
      char === 92 || // \
      char === 34 || // "
      char === 47 || // /
      char === 91 || // [
      char === 93 || // ]
      char === 63 || // ?
      char === 61;
    }
    function isToken(char) {
      return char <= 127 && // ascii
      char !== 32 && // space
      char !== 9 && !isCTL(char) && !isTSpecial(char);
    }
    module.exports = {
      multipartFormDataParser,
      validateBoundary
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/util/promise.js
var require_promise = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/util/promise.js"(exports, module) {
    "use strict";
    function createDeferredPromise() {
      let res;
      let rej;
      const promise = new Promise((resolve4, reject) => {
        res = resolve4;
        rej = reject;
      });
      return { promise, resolve: res, reject: rej };
    }
    module.exports = {
      createDeferredPromise
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/body.js
var require_body = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/body.js"(exports, module) {
    "use strict";
    var util3 = require_util4();
    var {
      ReadableStreamFrom,
      readableStreamClose,
      fullyReadBody,
      extractMimeType
    } = require_util5();
    var { FormData: FormData3, setFormDataState } = require_formdata();
    var { webidl } = require_webidl();
    var assert3 = __require("node:assert");
    var { isErrored, isDisturbed } = __require("node:stream");
    var { isUint8Array: isUint8Array2 } = __require("node:util/types");
    var { serializeAMimeType } = require_data_url();
    var { multipartFormDataParser } = require_formdata_parser();
    var { createDeferredPromise } = require_promise();
    var { parseJSONFromBytes } = require_infra2();
    var { utf8DecodeBytes } = require_encoding2();
    var { runtimeFeatures } = require_runtime_features();
    var random = runtimeFeatures.has("crypto") ? __require("node:crypto").randomInt : (max3) => Math.floor(Math.random() * max3);
    var textEncoder5 = new TextEncoder();
    function noop6() {
    }
    var streamRegistry = new FinalizationRegistry((weakRef) => {
      const stream7 = weakRef.deref();
      if (stream7 && !stream7.locked && !isDisturbed(stream7) && !isErrored(stream7)) {
        stream7.cancel("Response object has been garbage collected").catch(noop6);
      }
    });
    function extractBody(object, keepalive = false) {
      let stream7 = null;
      let controller = null;
      if (webidl.is.ReadableStream(object)) {
        stream7 = object;
      } else if (webidl.is.Blob(object)) {
        stream7 = object.stream();
      } else {
        stream7 = new ReadableStream({
          pull() {
          },
          start(c6) {
            controller = c6;
          },
          cancel() {
          },
          type: "bytes"
        });
      }
      assert3(webidl.is.ReadableStream(stream7));
      let action = null;
      let source = null;
      let length2 = null;
      let type = null;
      if (typeof object === "string") {
        source = object;
        type = "text/plain;charset=UTF-8";
      } else if (webidl.is.URLSearchParams(object)) {
        source = object.toString();
        type = "application/x-www-form-urlencoded;charset=UTF-8";
      } else if (webidl.is.BufferSource(object)) {
        source = webidl.util.getCopyOfBytesHeldByBufferSource(object);
      } else if (webidl.is.FormData(object)) {
        const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, "0")}`;
        const prefix = `--${boundary}\r
Content-Disposition: form-data`;
        const formdataEscape = (str) => str.replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22");
        const normalizeLinefeeds = (value2) => value2.replace(/\r?\n|\r/g, "\r\n");
        const blobParts = [];
        const rn = new Uint8Array([13, 10]);
        length2 = 0;
        let hasUnknownSizeValue = false;
        for (const [name, value2] of object) {
          if (typeof value2 === "string") {
            const chunk4 = textEncoder5.encode(prefix + `; name="${formdataEscape(normalizeLinefeeds(name))}"\r
\r
${normalizeLinefeeds(value2)}\r
`);
            blobParts.push(chunk4);
            length2 += chunk4.byteLength;
          } else {
            const chunk4 = textEncoder5.encode(`${prefix}; name="${formdataEscape(normalizeLinefeeds(name))}"` + (value2.name ? `; filename="${formdataEscape(value2.name)}"` : "") + `\r
Content-Type: ${value2.type || "application/octet-stream"}\r
\r
`);
            blobParts.push(chunk4, value2, rn);
            if (typeof value2.size === "number") {
              length2 += chunk4.byteLength + value2.size + rn.byteLength;
            } else {
              hasUnknownSizeValue = true;
            }
          }
        }
        const chunk3 = textEncoder5.encode(`--${boundary}--\r
`);
        blobParts.push(chunk3);
        length2 += chunk3.byteLength;
        if (hasUnknownSizeValue) {
          length2 = null;
        }
        source = object;
        action = async function* () {
          for (const part of blobParts) {
            if (part.stream) {
              yield* part.stream();
            } else {
              yield part;
            }
          }
        };
        type = `multipart/form-data; boundary=${boundary}`;
      } else if (webidl.is.Blob(object)) {
        source = object;
        length2 = object.size;
        if (object.type) {
          type = object.type;
        }
      } else if (typeof object[Symbol.asyncIterator] === "function") {
        if (keepalive) {
          throw new TypeError("keepalive");
        }
        if (util3.isDisturbed(object) || object.locked) {
          throw new TypeError(
            "Response body object should not be disturbed or locked"
          );
        }
        stream7 = webidl.is.ReadableStream(object) ? object : ReadableStreamFrom(object);
      }
      if (typeof source === "string" || isUint8Array2(source)) {
        action = () => {
          length2 = typeof source === "string" ? Buffer.byteLength(source) : source.length;
          return source;
        };
      }
      if (action != null) {
        ;
        (async () => {
          const result = action();
          const iterator2 = result?.[Symbol.asyncIterator]?.();
          if (iterator2) {
            for await (const bytes of iterator2) {
              if (isErrored(stream7)) break;
              if (bytes.length) {
                controller.enqueue(new Uint8Array(bytes));
              }
            }
          } else if (result?.length && !isErrored(stream7)) {
            controller.enqueue(typeof result === "string" ? textEncoder5.encode(result) : new Uint8Array(result));
          }
          queueMicrotask(() => readableStreamClose(controller));
        })();
      }
      const body = { stream: stream7, source, length: length2 };
      return [body, type];
    }
    function safelyExtractBody(object, keepalive = false) {
      if (webidl.is.ReadableStream(object)) {
        assert3(!util3.isDisturbed(object), "The body has already been consumed.");
        assert3(!object.locked, "The stream is locked.");
      }
      return extractBody(object, keepalive);
    }
    function cloneBody(body) {
      const { 0: out1, 1: out2 } = body.stream.tee();
      body.stream = out1;
      return {
        stream: out2,
        length: body.length,
        source: body.source
      };
    }
    function bodyMixinMethods(instance, getInternalState) {
      const methods = {
        blob() {
          return consumeBody(this, (bytes) => {
            let mimeType = bodyMimeType(getInternalState(this));
            if (mimeType === null) {
              mimeType = "";
            } else if (mimeType) {
              mimeType = serializeAMimeType(mimeType);
            }
            return new Blob([bytes], { type: mimeType });
          }, instance, getInternalState);
        },
        arrayBuffer() {
          return consumeBody(this, (bytes) => {
            return new Uint8Array(bytes).buffer;
          }, instance, getInternalState);
        },
        text() {
          return consumeBody(this, utf8DecodeBytes, instance, getInternalState);
        },
        json() {
          return consumeBody(this, parseJSONFromBytes, instance, getInternalState);
        },
        formData() {
          return consumeBody(this, (value2) => {
            const mimeType = bodyMimeType(getInternalState(this));
            if (mimeType !== null) {
              switch (mimeType.essence) {
                case "multipart/form-data": {
                  const parsed = multipartFormDataParser(value2, mimeType);
                  const fd2 = new FormData3();
                  setFormDataState(fd2, parsed);
                  return fd2;
                }
                case "application/x-www-form-urlencoded": {
                  const entries3 = new URLSearchParams(value2.toString());
                  const fd2 = new FormData3();
                  for (const [name, value3] of entries3) {
                    fd2.append(name, value3);
                  }
                  return fd2;
                }
              }
            }
            throw new TypeError(
              'Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".'
            );
          }, instance, getInternalState);
        },
        bytes() {
          return consumeBody(this, (bytes) => {
            return new Uint8Array(bytes);
          }, instance, getInternalState);
        }
      };
      return methods;
    }
    function mixinBody(prototype2, getInternalState) {
      Object.assign(prototype2.prototype, bodyMixinMethods(prototype2, getInternalState));
    }
    function consumeBody(object, convertBytesToJSValue, instance, getInternalState) {
      try {
        webidl.brandCheck(object, instance);
      } catch (e4) {
        return Promise.reject(e4);
      }
      object = getInternalState(object);
      if (bodyUnusable(object)) {
        return Promise.reject(new TypeError("Body is unusable: Body has already been read"));
      }
      const promise = createDeferredPromise();
      const errorSteps = promise.reject;
      const successSteps = (data2) => {
        try {
          promise.resolve(convertBytesToJSValue(data2));
        } catch (e4) {
          errorSteps(e4);
        }
      };
      if (object.body == null) {
        successSteps(Buffer.allocUnsafe(0));
        return promise.promise;
      }
      fullyReadBody(object.body, successSteps, errorSteps);
      return promise.promise;
    }
    function bodyUnusable(object) {
      const body = object.body;
      return body != null && (body.stream.locked || util3.isDisturbed(body.stream));
    }
    function bodyMimeType(requestOrResponse) {
      const headers = requestOrResponse.headersList;
      const mimeType = extractMimeType(headers);
      if (mimeType === "failure") {
        return null;
      }
      return mimeType;
    }
    module.exports = {
      extractBody,
      safelyExtractBody,
      cloneBody,
      mixinBody,
      streamRegistry,
      bodyUnusable
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/client-h1.js
var require_client_h1 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/client-h1.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var util3 = require_util4();
    var { channels: channels2 } = require_diagnostics();
    var timers = require_timers();
    var {
      RequestContentLengthMismatchError,
      ResponseContentLengthMismatchError,
      RequestAbortedError,
      HeadersTimeoutError,
      HeadersOverflowError,
      SocketError,
      InformationalError,
      BodyTimeoutError,
      HTTPParserError,
      ResponseExceededMaxSizeError
    } = require_errors5();
    var {
      kUrl,
      kReset,
      kClient,
      kParser,
      kBlocking,
      kRunning,
      kPending,
      kSize,
      kWriting,
      kQueue,
      kNoRef,
      kKeepAliveDefaultTimeout,
      kHostHeader,
      kPendingIdx,
      kRunningIdx,
      kError,
      kPipelining,
      kSocket,
      kKeepAliveTimeoutValue,
      kMaxHeadersSize,
      kKeepAliveMaxTimeout,
      kKeepAliveTimeoutThreshold,
      kHeadersTimeout,
      kBodyTimeout,
      kStrictContentLength,
      kMaxRequests,
      kCounter,
      kMaxResponseSize,
      kOnError,
      kResume,
      kHTTPContext,
      kClosed
    } = require_symbols2();
    var constants2 = require_constants12();
    var EMPTY_BUF = Buffer.alloc(0);
    var FastBuffer = Buffer[Symbol.species];
    var removeAllListeners = util3.removeAllListeners;
    var extractBody;
    function lazyllhttp() {
      const llhttpWasmData = process.env.JEST_WORKER_ID ? require_llhttp_wasm() : void 0;
      let mod3;
      let useWasmSIMD = process.arch !== "ppc64";
      if (process.env.UNDICI_NO_WASM_SIMD === "1") {
        useWasmSIMD = true;
      } else if (process.env.UNDICI_NO_WASM_SIMD === "0") {
        useWasmSIMD = false;
      }
      if (useWasmSIMD) {
        try {
          mod3 = new WebAssembly.Module(require_llhttp_simd_wasm());
        } catch {
        }
      }
      if (!mod3) {
        mod3 = new WebAssembly.Module(llhttpWasmData || require_llhttp_wasm());
      }
      return new WebAssembly.Instance(mod3, {
        env: {
          /**
           * @param {number} p
           * @param {number} at
           * @param {number} len
           * @returns {number}
           */
          wasm_on_url: (p3, at, len) => {
            return 0;
          },
          /**
           * @param {number} p
           * @param {number} at
           * @param {number} len
           * @returns {number}
           */
          wasm_on_status: (p3, at, len) => {
            assert3(currentParser.ptr === p3);
            const start2 = at - currentBufferPtr + currentBufferRef.byteOffset;
            return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start2, len));
          },
          /**
           * @param {number} p
           * @returns {number}
           */
          wasm_on_message_begin: (p3) => {
            assert3(currentParser.ptr === p3);
            return currentParser.onMessageBegin();
          },
          /**
           * @param {number} p
           * @param {number} at
           * @param {number} len
           * @returns {number}
           */
          wasm_on_header_field: (p3, at, len) => {
            assert3(currentParser.ptr === p3);
            const start2 = at - currentBufferPtr + currentBufferRef.byteOffset;
            return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start2, len));
          },
          /**
           * @param {number} p
           * @param {number} at
           * @param {number} len
           * @returns {number}
           */
          wasm_on_header_value: (p3, at, len) => {
            assert3(currentParser.ptr === p3);
            const start2 = at - currentBufferPtr + currentBufferRef.byteOffset;
            return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start2, len));
          },
          /**
           * @param {number} p
           * @param {number} statusCode
           * @param {0|1} upgrade
           * @param {0|1} shouldKeepAlive
           * @returns {number}
           */
          wasm_on_headers_complete: (p3, statusCode, upgrade, shouldKeepAlive) => {
            assert3(currentParser.ptr === p3);
            return currentParser.onHeadersComplete(statusCode, upgrade === 1, shouldKeepAlive === 1);
          },
          /**
           * @param {number} p
           * @param {number} at
           * @param {number} len
           * @returns {number}
           */
          wasm_on_body: (p3, at, len) => {
            assert3(currentParser.ptr === p3);
            const start2 = at - currentBufferPtr + currentBufferRef.byteOffset;
            return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start2, len));
          },
          /**
           * @param {number} p
           * @returns {number}
           */
          wasm_on_message_complete: (p3) => {
            assert3(currentParser.ptr === p3);
            return currentParser.onMessageComplete();
          }
        }
      });
    }
    var llhttpInstance = null;
    var currentParser = null;
    var currentBufferRef = null;
    var currentBufferSize = 0;
    var currentBufferPtr = null;
    var USE_NATIVE_TIMER = 0;
    var USE_FAST_TIMER = 1;
    var TIMEOUT_HEADERS = 2 | USE_FAST_TIMER;
    var TIMEOUT_BODY = 4 | USE_FAST_TIMER;
    var TIMEOUT_KEEP_ALIVE = 8 | USE_NATIVE_TIMER;
    var Parser = class {
      /**
         * @param {import('./client.js')} client
         * @param {import('net').Socket} socket
         * @param {*} llhttp
         */
      constructor(client, socket, { exports: exports2 }) {
        this.llhttp = exports2;
        this.ptr = this.llhttp.llhttp_alloc(constants2.TYPE.RESPONSE);
        this.client = client;
        this.socket = socket;
        this.timeout = null;
        this.timeoutValue = null;
        this.timeoutType = null;
        this.statusCode = 0;
        this.statusText = "";
        this.upgrade = false;
        this.headers = [];
        this.headersSize = 0;
        this.headersMaxSize = client[kMaxHeadersSize];
        this.shouldKeepAlive = false;
        this.paused = false;
        this.resume = this.resume.bind(this);
        this.bytesRead = 0;
        this.keepAlive = "";
        this.contentLength = "";
        this.connection = "";
        this.maxResponseSize = client[kMaxResponseSize];
      }
      setTimeout(delay2, type) {
        if (delay2 !== this.timeoutValue || type & USE_FAST_TIMER ^ this.timeoutType & USE_FAST_TIMER) {
          if (this.timeout) {
            timers.clearTimeout(this.timeout);
            this.timeout = null;
          }
          if (delay2) {
            if (type & USE_FAST_TIMER) {
              this.timeout = timers.setFastTimeout(onParserTimeout, delay2, new WeakRef(this));
            } else {
              this.timeout = setTimeout(onParserTimeout, delay2, new WeakRef(this));
              this.timeout?.unref();
            }
          }
          this.timeoutValue = delay2;
        } else if (this.timeout) {
          if (this.timeout.refresh) {
            this.timeout.refresh();
          }
        }
        this.timeoutType = type;
      }
      resume() {
        if (this.socket.destroyed || !this.paused) {
          return;
        }
        assert3(this.ptr != null);
        assert3(currentParser === null);
        this.llhttp.llhttp_resume(this.ptr);
        assert3(this.timeoutType === TIMEOUT_BODY);
        if (this.timeout) {
          if (this.timeout.refresh) {
            this.timeout.refresh();
          }
        }
        this.paused = false;
        this.execute(this.socket.read() || EMPTY_BUF);
        this.readMore();
      }
      readMore() {
        while (!this.paused && this.ptr) {
          const chunk3 = this.socket.read();
          if (chunk3 === null) {
            break;
          }
          this.execute(chunk3);
        }
      }
      /**
       * @param {Buffer} chunk
       */
      execute(chunk3) {
        assert3(currentParser === null);
        assert3(this.ptr != null);
        assert3(!this.paused);
        const { socket, llhttp } = this;
        if (chunk3.length > currentBufferSize) {
          if (currentBufferPtr) {
            llhttp.free(currentBufferPtr);
          }
          currentBufferSize = Math.ceil(chunk3.length / 4096) * 4096;
          currentBufferPtr = llhttp.malloc(currentBufferSize);
        }
        new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(chunk3);
        try {
          let ret;
          try {
            currentBufferRef = chunk3;
            currentParser = this;
            ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, chunk3.length);
          } finally {
            currentParser = null;
            currentBufferRef = null;
          }
          if (ret !== constants2.ERROR.OK) {
            const data2 = chunk3.subarray(llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr);
            if (ret === constants2.ERROR.PAUSED_UPGRADE) {
              this.onUpgrade(data2);
            } else if (ret === constants2.ERROR.PAUSED) {
              this.paused = true;
              socket.unshift(data2);
            } else {
              const ptr = llhttp.llhttp_get_error_reason(this.ptr);
              let message = "";
              if (ptr) {
                const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0);
                message = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")";
              }
              throw new HTTPParserError(message, constants2.ERROR[ret], data2);
            }
          }
        } catch (err2) {
          util3.destroy(socket, err2);
        }
      }
      destroy() {
        assert3(currentParser === null);
        assert3(this.ptr != null);
        this.llhttp.llhttp_free(this.ptr);
        this.ptr = null;
        this.timeout && timers.clearTimeout(this.timeout);
        this.timeout = null;
        this.timeoutValue = null;
        this.timeoutType = null;
        this.paused = false;
      }
      /**
       * @param {Buffer} buf
       * @returns {0}
       */
      onStatus(buf) {
        this.statusText = buf.toString();
        return 0;
      }
      /**
       * @returns {0|-1}
       */
      onMessageBegin() {
        const { socket, client } = this;
        if (socket.destroyed) {
          return -1;
        }
        const request = client[kQueue][client[kRunningIdx]];
        if (!request) {
          return -1;
        }
        request.onResponseStarted();
        return 0;
      }
      /**
       * @param {Buffer} buf
       * @returns {number}
       */
      onHeaderField(buf) {
        const len = this.headers.length;
        if ((len & 1) === 0) {
          this.headers.push(buf);
        } else {
          this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]);
        }
        this.trackHeader(buf.length);
        return 0;
      }
      /**
       * @param {Buffer} buf
       * @returns {number}
       */
      onHeaderValue(buf) {
        let len = this.headers.length;
        if ((len & 1) === 1) {
          this.headers.push(buf);
          len += 1;
        } else {
          this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]);
        }
        const key = this.headers[len - 2];
        if (key.length === 10) {
          const headerName = util3.bufferToLowerCasedHeaderName(key);
          if (headerName === "keep-alive") {
            this.keepAlive += buf.toString();
          } else if (headerName === "connection") {
            this.connection += buf.toString();
          }
        } else if (key.length === 14 && util3.bufferToLowerCasedHeaderName(key) === "content-length") {
          this.contentLength += buf.toString();
        }
        this.trackHeader(buf.length);
        return 0;
      }
      /**
       * @param {number} len
       */
      trackHeader(len) {
        this.headersSize += len;
        if (this.headersSize >= this.headersMaxSize) {
          util3.destroy(this.socket, new HeadersOverflowError());
        }
      }
      /**
       * @param {Buffer} head
       */
      onUpgrade(head) {
        const { upgrade, client, socket, headers, statusCode } = this;
        assert3(upgrade);
        assert3(client[kSocket] === socket);
        assert3(!socket.destroyed);
        assert3(!this.paused);
        assert3((headers.length & 1) === 0);
        const request = client[kQueue][client[kRunningIdx]];
        assert3(request);
        assert3(request.upgrade || request.method === "CONNECT");
        this.statusCode = 0;
        this.statusText = "";
        this.shouldKeepAlive = false;
        this.headers = [];
        this.headersSize = 0;
        socket.unshift(head);
        socket[kParser].destroy();
        socket[kParser] = null;
        socket[kClient] = null;
        socket[kError] = null;
        removeAllListeners(socket);
        client[kSocket] = null;
        client[kHTTPContext] = null;
        client[kQueue][client[kRunningIdx]++] = null;
        client.emit("disconnect", client[kUrl], [client], new InformationalError("upgrade"));
        try {
          request.onUpgrade(statusCode, headers, socket);
        } catch (err2) {
          util3.destroy(socket, err2);
        }
        client[kResume]();
      }
      /**
       * @param {number} statusCode
       * @param {boolean} upgrade
       * @param {boolean} shouldKeepAlive
       * @returns {number}
       */
      onHeadersComplete(statusCode, upgrade, shouldKeepAlive) {
        const { client, socket, headers, statusText } = this;
        if (socket.destroyed) {
          return -1;
        }
        const request = client[kQueue][client[kRunningIdx]];
        if (!request) {
          return -1;
        }
        assert3(!this.upgrade);
        assert3(this.statusCode < 200);
        if (statusCode === 100) {
          util3.destroy(socket, new SocketError("bad response", util3.getSocketInfo(socket)));
          return -1;
        }
        if (upgrade && !request.upgrade) {
          util3.destroy(socket, new SocketError("bad upgrade", util3.getSocketInfo(socket)));
          return -1;
        }
        assert3(this.timeoutType === TIMEOUT_HEADERS);
        this.statusCode = statusCode;
        this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD.
        request.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive";
        if (this.statusCode >= 200) {
          const bodyTimeout = request.bodyTimeout != null ? request.bodyTimeout : client[kBodyTimeout];
          this.setTimeout(bodyTimeout, TIMEOUT_BODY);
        } else if (this.timeout) {
          if (this.timeout.refresh) {
            this.timeout.refresh();
          }
        }
        if (request.method === "CONNECT") {
          assert3(client[kRunning] === 1);
          this.upgrade = true;
          return 2;
        }
        if (upgrade) {
          assert3(client[kRunning] === 1);
          this.upgrade = true;
          return 2;
        }
        assert3((this.headers.length & 1) === 0);
        this.headers = [];
        this.headersSize = 0;
        if (this.shouldKeepAlive && client[kPipelining]) {
          const keepAliveTimeout = this.keepAlive ? util3.parseKeepAliveTimeout(this.keepAlive) : null;
          if (keepAliveTimeout != null) {
            const timeout = Math.min(
              keepAliveTimeout - client[kKeepAliveTimeoutThreshold],
              client[kKeepAliveMaxTimeout]
            );
            if (timeout <= 0) {
              socket[kReset] = true;
            } else {
              client[kKeepAliveTimeoutValue] = timeout;
            }
          } else {
            client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout];
          }
        } else {
          socket[kReset] = true;
        }
        const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false;
        if (request.aborted) {
          return -1;
        }
        if (request.method === "HEAD") {
          return 1;
        }
        if (statusCode < 200) {
          return 1;
        }
        if (socket[kBlocking]) {
          socket[kBlocking] = false;
          client[kResume]();
        }
        return pause ? constants2.ERROR.PAUSED : 0;
      }
      /**
       * @param {Buffer} buf
       * @returns {number}
       */
      onBody(buf) {
        const { client, socket, statusCode, maxResponseSize } = this;
        if (socket.destroyed) {
          return -1;
        }
        const request = client[kQueue][client[kRunningIdx]];
        assert3(request);
        assert3(this.timeoutType === TIMEOUT_BODY);
        if (this.timeout) {
          if (this.timeout.refresh) {
            this.timeout.refresh();
          }
        }
        assert3(statusCode >= 200);
        if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {
          util3.destroy(socket, new ResponseExceededMaxSizeError());
          return -1;
        }
        this.bytesRead += buf.length;
        if (request.onData(buf) === false) {
          return constants2.ERROR.PAUSED;
        }
        return 0;
      }
      /**
       * @returns {number}
       */
      onMessageComplete() {
        const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this;
        if (socket.destroyed && (!statusCode || shouldKeepAlive)) {
          return -1;
        }
        if (upgrade) {
          return 0;
        }
        assert3(statusCode >= 100);
        assert3((this.headers.length & 1) === 0);
        const request = client[kQueue][client[kRunningIdx]];
        assert3(request);
        this.statusCode = 0;
        this.statusText = "";
        this.bytesRead = 0;
        this.contentLength = "";
        this.keepAlive = "";
        this.connection = "";
        this.headers = [];
        this.headersSize = 0;
        if (statusCode < 200) {
          return 0;
        }
        if (request.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) {
          util3.destroy(socket, new ResponseContentLengthMismatchError());
          return -1;
        }
        request.onComplete(headers);
        client[kQueue][client[kRunningIdx]++] = null;
        if (socket[kWriting]) {
          assert3(client[kRunning] === 0);
          util3.destroy(socket, new InformationalError("reset"));
          return constants2.ERROR.PAUSED;
        } else if (!shouldKeepAlive) {
          util3.destroy(socket, new InformationalError("reset"));
          return constants2.ERROR.PAUSED;
        } else if (socket[kReset] && client[kRunning] === 0) {
          util3.destroy(socket, new InformationalError("reset"));
          return constants2.ERROR.PAUSED;
        } else if (client[kPipelining] == null || client[kPipelining] === 1) {
          setImmediate(client[kResume]);
        } else {
          client[kResume]();
        }
        return 0;
      }
    };
    function onParserTimeout(parserWeakRef) {
      const parser = parserWeakRef.deref();
      if (!parser) {
        return;
      }
      const { socket, timeoutType, client, paused } = parser;
      if (timeoutType === TIMEOUT_HEADERS) {
        if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {
          assert3(!paused, "cannot be paused while waiting for headers");
          util3.destroy(socket, new HeadersTimeoutError());
        }
      } else if (timeoutType === TIMEOUT_BODY) {
        if (!paused) {
          util3.destroy(socket, new BodyTimeoutError());
        }
      } else if (timeoutType === TIMEOUT_KEEP_ALIVE) {
        assert3(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]);
        util3.destroy(socket, new InformationalError("socket idle timeout"));
      }
    }
    function connectH1(client, socket) {
      client[kSocket] = socket;
      if (!llhttpInstance) {
        llhttpInstance = lazyllhttp();
      }
      if (socket.errored) {
        throw socket.errored;
      }
      if (socket.destroyed) {
        throw new SocketError("destroyed");
      }
      socket[kNoRef] = false;
      socket[kWriting] = false;
      socket[kReset] = false;
      socket[kBlocking] = false;
      socket[kParser] = new Parser(client, socket, llhttpInstance);
      util3.addListener(socket, "error", onHttpSocketError);
      util3.addListener(socket, "readable", onHttpSocketReadable);
      util3.addListener(socket, "end", onHttpSocketEnd);
      util3.addListener(socket, "close", onHttpSocketClose);
      socket[kClosed] = false;
      socket.on("close", onSocketClose);
      return {
        version: "h1",
        defaultPipelining: 1,
        write(request) {
          return writeH1(client, request);
        },
        resume() {
          resumeH1(client);
        },
        /**
         * @param {Error|undefined} err
         * @param {() => void} callback
         */
        destroy(err2, callback) {
          if (socket[kClosed]) {
            queueMicrotask(callback);
          } else {
            socket.on("close", callback);
            socket.destroy(err2);
          }
        },
        /**
         * @returns {boolean}
         */
        get destroyed() {
          return socket.destroyed;
        },
        /**
         * @param {import('../core/request.js')} request
         * @returns {boolean}
         */
        busy(request) {
          if (socket[kWriting] || socket[kReset] || socket[kBlocking]) {
            return true;
          }
          if (request) {
            if (client[kRunning] > 0 && !request.idempotent) {
              return true;
            }
            if (client[kRunning] > 0 && (request.upgrade || request.method === "CONNECT")) {
              return true;
            }
            if (client[kRunning] > 0 && util3.bodyLength(request.body) !== 0 && (util3.isStream(request.body) || util3.isAsyncIterable(request.body) || util3.isFormDataLike(request.body))) {
              return true;
            }
          }
          return false;
        }
      };
    }
    function onHttpSocketError(err2) {
      assert3(err2.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
      const parser = this[kParser];
      if (err2.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) {
        parser.onMessageComplete();
        return;
      }
      this[kError] = err2;
      this[kClient][kOnError](err2);
    }
    function onHttpSocketReadable() {
      this[kParser]?.readMore();
    }
    function onHttpSocketEnd() {
      const parser = this[kParser];
      if (parser.statusCode && !parser.shouldKeepAlive) {
        parser.onMessageComplete();
        return;
      }
      util3.destroy(this, new SocketError("other side closed", util3.getSocketInfo(this)));
    }
    function onHttpSocketClose() {
      const parser = this[kParser];
      if (parser) {
        if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) {
          parser.onMessageComplete();
        }
        this[kParser].destroy();
        this[kParser] = null;
      }
      const err2 = this[kError] || new SocketError("closed", util3.getSocketInfo(this));
      const client = this[kClient];
      client[kSocket] = null;
      client[kHTTPContext] = null;
      if (client.destroyed) {
        assert3(client[kPending] === 0);
        const requests = client[kQueue].splice(client[kRunningIdx]);
        for (let i5 = 0; i5 < requests.length; i5++) {
          const request = requests[i5];
          util3.errorRequest(client, request, err2);
        }
      } else if (client[kRunning] > 0 && err2.code !== "UND_ERR_INFO") {
        const request = client[kQueue][client[kRunningIdx]];
        client[kQueue][client[kRunningIdx]++] = null;
        util3.errorRequest(client, request, err2);
      }
      client[kPendingIdx] = client[kRunningIdx];
      assert3(client[kRunning] === 0);
      client.emit("disconnect", client[kUrl], [client], err2);
      client[kResume]();
    }
    function onSocketClose() {
      this[kClosed] = true;
    }
    function resumeH1(client) {
      const socket = client[kSocket];
      if (socket && !socket.destroyed) {
        if (client[kSize] === 0) {
          if (!socket[kNoRef] && socket.unref) {
            socket.unref();
            socket[kNoRef] = true;
          }
        } else if (socket[kNoRef] && socket.ref) {
          socket.ref();
          socket[kNoRef] = false;
        }
        if (client[kSize] === 0) {
          if (socket[kParser].timeoutType !== TIMEOUT_KEEP_ALIVE) {
            socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_KEEP_ALIVE);
          }
        } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {
          if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {
            const request = client[kQueue][client[kRunningIdx]];
            const headersTimeout = request.headersTimeout != null ? request.headersTimeout : client[kHeadersTimeout];
            socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS);
          }
        }
      }
    }
    function shouldSendContentLength(method) {
      return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT";
    }
    function writeH1(client, request) {
      const { method, path: path3, host, upgrade, blocking, reset } = request;
      let { body, headers, contentLength } = request;
      const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH" || method === "QUERY" || method === "PROPFIND" || method === "PROPPATCH";
      if (util3.isFormDataLike(body)) {
        if (!extractBody) {
          extractBody = require_body().extractBody;
        }
        const [bodyStream, contentType] = extractBody(body);
        if (request.contentType == null) {
          headers.push("content-type", contentType);
        }
        body = bodyStream.stream;
        contentLength = bodyStream.length;
      } else if (util3.isBlobLike(body) && request.contentType == null && body.type) {
        headers.push("content-type", body.type);
      }
      if (body && typeof body.read === "function") {
        body.read(0);
      }
      const bodyLength = util3.bodyLength(body);
      contentLength = bodyLength ?? contentLength;
      if (contentLength === null) {
        contentLength = request.contentLength;
      }
      if (contentLength === 0 && !expectsPayload) {
        contentLength = null;
      }
      if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) {
        if (client[kStrictContentLength]) {
          util3.errorRequest(client, request, new RequestContentLengthMismatchError());
          return false;
        }
        process.emitWarning(new RequestContentLengthMismatchError());
      }
      const socket = client[kSocket];
      const abort = (err2) => {
        if (request.aborted || request.completed) {
          return;
        }
        util3.errorRequest(client, request, err2 || new RequestAbortedError());
        util3.destroy(body);
        util3.destroy(socket, new InformationalError("aborted"));
      };
      try {
        request.onConnect(abort);
      } catch (err2) {
        util3.errorRequest(client, request, err2);
      }
      if (request.aborted) {
        return false;
      }
      if (method === "HEAD") {
        socket[kReset] = true;
      }
      if (upgrade || method === "CONNECT") {
        socket[kReset] = true;
      }
      if (reset != null) {
        socket[kReset] = reset;
      }
      if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {
        socket[kReset] = true;
      }
      if (blocking) {
        socket[kBlocking] = true;
      }
      let header = `${method} ${path3} HTTP/1.1\r
`;
      if (typeof host === "string") {
        header += `host: ${host}\r
`;
      } else {
        header += client[kHostHeader];
      }
      if (upgrade) {
        header += `connection: upgrade\r
upgrade: ${upgrade}\r
`;
      } else if (client[kPipelining] && !socket[kReset]) {
        header += "connection: keep-alive\r\n";
      } else {
        header += "connection: close\r\n";
      }
      if (Array.isArray(headers)) {
        for (let n6 = 0; n6 < headers.length; n6 += 2) {
          const key = headers[n6 + 0];
          const val = headers[n6 + 1];
          if (Array.isArray(val)) {
            for (let i5 = 0; i5 < val.length; i5++) {
              header += `${key}: ${val[i5]}\r
`;
            }
          } else {
            header += `${key}: ${val}\r
`;
          }
        }
      }
      if (channels2.sendHeaders.hasSubscribers) {
        channels2.sendHeaders.publish({ request, headers: header, socket });
      }
      if (!body || bodyLength === 0) {
        writeBuffer(abort, null, client, request, socket, contentLength, header, expectsPayload);
      } else if (util3.isBuffer(body)) {
        writeBuffer(abort, body, client, request, socket, contentLength, header, expectsPayload);
      } else if (util3.isBlobLike(body)) {
        if (typeof body.stream === "function") {
          writeIterable(abort, body.stream(), client, request, socket, contentLength, header, expectsPayload);
        } else {
          writeBlob(abort, body, client, request, socket, contentLength, header, expectsPayload);
        }
      } else if (util3.isStream(body)) {
        writeStream(abort, body, client, request, socket, contentLength, header, expectsPayload);
      } else if (util3.isIterable(body)) {
        writeIterable(abort, body, client, request, socket, contentLength, header, expectsPayload);
      } else {
        assert3(false);
      }
      return true;
    }
    function writeStream(abort, body, client, request, socket, contentLength, header, expectsPayload) {
      assert3(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined");
      let finished2 = false;
      const writer = new AsyncWriter({ abort, socket, request, contentLength, client, expectsPayload, header });
      const onData = function(chunk3) {
        if (finished2) {
          return;
        }
        try {
          if (!writer.write(chunk3) && this.pause) {
            this.pause();
          }
        } catch (err2) {
          util3.destroy(this, err2);
        }
      };
      const onDrain = function() {
        if (finished2) {
          return;
        }
        if (body.resume) {
          body.resume();
        }
      };
      const onClose = function() {
        queueMicrotask(() => {
          body.removeListener("error", onFinished);
        });
        if (!finished2) {
          const err2 = new RequestAbortedError();
          queueMicrotask(() => onFinished(err2));
        }
      };
      const onFinished = function(err2) {
        if (finished2) {
          return;
        }
        finished2 = true;
        assert3(socket.destroyed || socket[kWriting] && client[kRunning] <= 1);
        socket.off("drain", onDrain).off("error", onFinished);
        body.removeListener("data", onData).removeListener("end", onFinished).removeListener("close", onClose);
        if (!err2) {
          try {
            writer.end();
          } catch (er) {
            err2 = er;
          }
        }
        writer.destroy(err2);
        if (err2 && (err2.code !== "UND_ERR_INFO" || err2.message !== "reset")) {
          util3.destroy(body, err2);
        } else {
          util3.destroy(body);
        }
      };
      body.on("data", onData).on("end", onFinished).on("error", onFinished).on("close", onClose);
      if (body.resume) {
        body.resume();
      }
      socket.on("drain", onDrain).on("error", onFinished);
      if (body.errorEmitted ?? body.errored) {
        setImmediate(onFinished, body.errored);
      } else if (body.endEmitted ?? body.readableEnded) {
        setImmediate(onFinished, null);
      }
      if (body.closeEmitted ?? body.closed) {
        setImmediate(onClose);
      }
    }
    function writeBuffer(abort, body, client, request, socket, contentLength, header, expectsPayload) {
      try {
        if (!body) {
          if (contentLength === 0) {
            socket.write(`${header}content-length: 0\r
\r
`, "latin1");
          } else {
            assert3(contentLength === null, "no body must not have content length");
            socket.write(`${header}\r
`, "latin1");
          }
        } else if (util3.isBuffer(body)) {
          assert3(contentLength === body.byteLength, "buffer body must have content length");
          socket.cork();
          socket.write(`${header}content-length: ${contentLength}\r
\r
`, "latin1");
          socket.write(body);
          socket.uncork();
          request.onBodySent(body);
          if (!expectsPayload && request.reset !== false) {
            socket[kReset] = true;
          }
        }
        request.onRequestSent();
        client[kResume]();
      } catch (err2) {
        abort(err2);
      }
    }
    async function writeBlob(abort, body, client, request, socket, contentLength, header, expectsPayload) {
      assert3(contentLength === body.size, "blob body must have content length");
      try {
        if (contentLength != null && contentLength !== body.size) {
          throw new RequestContentLengthMismatchError();
        }
        const buffer = Buffer.from(await body.arrayBuffer());
        socket.cork();
        socket.write(`${header}content-length: ${contentLength}\r
\r
`, "latin1");
        socket.write(buffer);
        socket.uncork();
        request.onBodySent(buffer);
        request.onRequestSent();
        if (!expectsPayload && request.reset !== false) {
          socket[kReset] = true;
        }
        client[kResume]();
      } catch (err2) {
        abort(err2);
      }
    }
    async function writeIterable(abort, body, client, request, socket, contentLength, header, expectsPayload) {
      assert3(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined");
      let callback = null;
      function onDrain() {
        if (callback) {
          const cb = callback;
          callback = null;
          cb();
        }
      }
      const waitForDrain = () => new Promise((resolve4, reject) => {
        assert3(callback === null);
        if (socket[kError]) {
          reject(socket[kError]);
        } else {
          callback = resolve4;
        }
      });
      socket.on("close", onDrain).on("drain", onDrain);
      const writer = new AsyncWriter({ abort, socket, request, contentLength, client, expectsPayload, header });
      try {
        for await (const chunk3 of body) {
          if (socket[kError]) {
            throw socket[kError];
          }
          if (!writer.write(chunk3)) {
            await waitForDrain();
          }
        }
        writer.end();
      } catch (err2) {
        writer.destroy(err2);
      } finally {
        socket.off("close", onDrain).off("drain", onDrain);
      }
    }
    var AsyncWriter = class {
      /**
       *
       * @param {object} arg
       * @param {AbortCallback} arg.abort
       * @param {import('net').Socket} arg.socket
       * @param {import('../core/request.js')} arg.request
       * @param {number} arg.contentLength
       * @param {import('./client.js')} arg.client
       * @param {boolean} arg.expectsPayload
       * @param {string} arg.header
       */
      constructor({ abort, socket, request, contentLength, client, expectsPayload, header }) {
        this.socket = socket;
        this.request = request;
        this.contentLength = contentLength;
        this.client = client;
        this.bytesWritten = 0;
        this.expectsPayload = expectsPayload;
        this.header = header;
        this.abort = abort;
        socket[kWriting] = true;
      }
      /**
       * @param {Buffer} chunk
       * @returns
       */
      write(chunk3) {
        const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this;
        if (socket[kError]) {
          throw socket[kError];
        }
        if (socket.destroyed) {
          return false;
        }
        const len = Buffer.byteLength(chunk3);
        if (!len) {
          return true;
        }
        if (contentLength !== null && bytesWritten + len > contentLength) {
          if (client[kStrictContentLength]) {
            throw new RequestContentLengthMismatchError();
          }
          process.emitWarning(new RequestContentLengthMismatchError());
        }
        socket.cork();
        if (bytesWritten === 0) {
          if (!expectsPayload && request.reset !== false) {
            socket[kReset] = true;
          }
          if (contentLength === null) {
            socket.write(`${header}transfer-encoding: chunked\r
`, "latin1");
          } else {
            socket.write(`${header}content-length: ${contentLength}\r
\r
`, "latin1");
          }
        }
        if (contentLength === null) {
          socket.write(`\r
${len.toString(16)}\r
`, "latin1");
        }
        this.bytesWritten += len;
        const ret = socket.write(chunk3);
        socket.uncork();
        request.onBodySent(chunk3);
        if (!ret) {
          if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {
            if (socket[kParser].timeout.refresh) {
              socket[kParser].timeout.refresh();
            }
          }
        }
        return ret;
      }
      /**
       * @returns {void}
       */
      end() {
        const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this;
        request.onRequestSent();
        socket[kWriting] = false;
        if (socket[kError]) {
          throw socket[kError];
        }
        if (socket.destroyed) {
          return;
        }
        if (bytesWritten === 0) {
          if (expectsPayload) {
            socket.write(`${header}content-length: 0\r
\r
`, "latin1");
          } else {
            socket.write(`${header}\r
`, "latin1");
          }
        } else if (contentLength === null) {
          socket.write("\r\n0\r\n\r\n", "latin1");
        }
        if (contentLength !== null && bytesWritten !== contentLength) {
          if (client[kStrictContentLength]) {
            throw new RequestContentLengthMismatchError();
          } else {
            process.emitWarning(new RequestContentLengthMismatchError());
          }
        }
        if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {
          if (socket[kParser].timeout.refresh) {
            socket[kParser].timeout.refresh();
          }
        }
        client[kResume]();
      }
      /**
       * @param {Error} [err]
       * @returns {void}
       */
      destroy(err2) {
        const { socket, client, abort } = this;
        socket[kWriting] = false;
        if (err2) {
          assert3(client[kRunning] <= 1, "pipeline should only contain this request");
          abort(err2);
        }
      }
    };
    module.exports = connectH1;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/client-h2.js
var require_client_h2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/client-h2.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { pipeline: pipeline2 } = __require("node:stream");
    var util3 = require_util4();
    var {
      RequestContentLengthMismatchError,
      RequestAbortedError,
      SocketError,
      InformationalError,
      InvalidArgumentError
    } = require_errors5();
    var {
      kUrl,
      kReset,
      kClient,
      kRunning,
      kPending,
      kQueue,
      kPendingIdx,
      kRunningIdx,
      kError,
      kSocket,
      kStrictContentLength,
      kOnError,
      kMaxConcurrentStreams,
      kPingInterval,
      kHTTP2Session,
      kHTTP2InitialWindowSize,
      kHTTP2ConnectionWindowSize,
      kResume,
      kSize,
      kHTTPContext,
      kClosed,
      kBodyTimeout,
      kEnableConnectProtocol,
      kRemoteSettings,
      kHTTP2Stream,
      kHTTP2SessionState
    } = require_symbols2();
    var { channels: channels2 } = require_diagnostics();
    var kOpenStreams = Symbol("open streams");
    var extractBody;
    var http25;
    try {
      http25 = __require("node:http2");
    } catch {
      http25 = { constants: {} };
    }
    var {
      constants: {
        HTTP2_HEADER_AUTHORITY,
        HTTP2_HEADER_METHOD,
        HTTP2_HEADER_PATH,
        HTTP2_HEADER_SCHEME,
        HTTP2_HEADER_CONTENT_LENGTH,
        HTTP2_HEADER_EXPECT,
        HTTP2_HEADER_STATUS,
        HTTP2_HEADER_PROTOCOL,
        NGHTTP2_REFUSED_STREAM,
        NGHTTP2_CANCEL
      }
    } = http25;
    function parseH2Headers(headers) {
      const result = [];
      for (const [name, value2] of Object.entries(headers)) {
        if (Array.isArray(value2)) {
          for (const subvalue of value2) {
            result.push(Buffer.from(name), Buffer.from(subvalue));
          }
        } else {
          result.push(Buffer.from(name), Buffer.from(value2));
        }
      }
      return result;
    }
    function connectH2(client, socket) {
      client[kSocket] = socket;
      const http2InitialWindowSize = client[kHTTP2InitialWindowSize];
      const http2ConnectionWindowSize = client[kHTTP2ConnectionWindowSize];
      const session = http25.connect(client[kUrl], {
        createConnection: () => socket,
        peerMaxConcurrentStreams: client[kMaxConcurrentStreams],
        settings: {
          // TODO(metcoder95): add support for PUSH
          enablePush: false,
          ...http2InitialWindowSize != null ? { initialWindowSize: http2InitialWindowSize } : null
        }
      });
      client[kSocket] = socket;
      session[kOpenStreams] = 0;
      session[kClient] = client;
      session[kSocket] = socket;
      session[kHTTP2SessionState] = {
        ping: {
          interval: client[kPingInterval] === 0 ? null : setInterval(onHttp2SendPing, client[kPingInterval], session).unref()
        }
      };
      session[kEnableConnectProtocol] = false;
      session[kRemoteSettings] = false;
      if (http2ConnectionWindowSize) {
        util3.addListener(session, "connect", applyConnectionWindowSize.bind(session, http2ConnectionWindowSize));
      }
      util3.addListener(session, "error", onHttp2SessionError);
      util3.addListener(session, "frameError", onHttp2FrameError);
      util3.addListener(session, "end", onHttp2SessionEnd);
      util3.addListener(session, "goaway", onHttp2SessionGoAway);
      util3.addListener(session, "close", onHttp2SessionClose);
      util3.addListener(session, "remoteSettings", onHttp2RemoteSettings);
      session.unref();
      client[kHTTP2Session] = session;
      socket[kHTTP2Session] = session;
      util3.addListener(socket, "error", onHttp2SocketError);
      util3.addListener(socket, "end", onHttp2SocketEnd);
      util3.addListener(socket, "close", onHttp2SocketClose);
      socket[kClosed] = false;
      socket.on("close", onSocketClose);
      return {
        version: "h2",
        defaultPipelining: Infinity,
        /**
         * @param {import('../core/request.js')} request
         * @returns {boolean}
        */
        write(request) {
          return writeH2(client, request);
        },
        /**
         * @returns {void}
         */
        resume() {
          resumeH2(client);
        },
        /**
         * @param {Error | null} err
         * @param {() => void} callback
         */
        destroy(err2, callback) {
          if (socket[kClosed]) {
            queueMicrotask(callback);
          } else {
            socket.destroy(err2).on("close", callback);
          }
        },
        /**
         * @type {boolean}
         */
        get destroyed() {
          return socket.destroyed;
        },
        /**
         * @param {import('../core/request.js')} request
         * @returns {boolean}
        */
        busy(request) {
          if (request != null) {
            if (client[kRunning] > 0) {
              if (request.idempotent === false) return true;
              if ((request.upgrade === "websocket" || request.method === "CONNECT") && session[kRemoteSettings] === false) return true;
              if (util3.bodyLength(request.body) !== 0 && (util3.isStream(request.body) || util3.isAsyncIterable(request.body) || util3.isFormDataLike(request.body))) return true;
            } else {
              return (request.upgrade === "websocket" || request.method === "CONNECT") && session[kRemoteSettings] === false;
            }
          }
          return false;
        }
      };
    }
    function resumeH2(client) {
      const socket = client[kSocket];
      if (socket?.destroyed === false) {
        if (client[kSize] === 0 || client[kMaxConcurrentStreams] === 0) {
          socket.unref();
          client[kHTTP2Session].unref();
        } else {
          socket.ref();
          client[kHTTP2Session].ref();
        }
      }
    }
    function applyConnectionWindowSize(connectionWindowSize) {
      try {
        if (typeof this.setLocalWindowSize === "function") {
          this.setLocalWindowSize(connectionWindowSize);
        }
      } catch {
      }
    }
    function onHttp2RemoteSettings(settings) {
      this[kClient][kMaxConcurrentStreams] = settings.maxConcurrentStreams ?? this[kClient][kMaxConcurrentStreams];
      if (this[kRemoteSettings] === true && this[kEnableConnectProtocol] === true && settings.enableConnectProtocol === false) {
        const err2 = new InformationalError("HTTP/2: Server disabled extended CONNECT protocol against RFC-8441");
        this[kSocket][kError] = err2;
        this[kClient][kOnError](err2);
        return;
      }
      this[kEnableConnectProtocol] = settings.enableConnectProtocol ?? this[kEnableConnectProtocol];
      this[kRemoteSettings] = true;
      this[kClient][kResume]();
    }
    function onHttp2SendPing(session) {
      const state = session[kHTTP2SessionState];
      if ((session.closed || session.destroyed) && state.ping.interval != null) {
        clearInterval(state.ping.interval);
        state.ping.interval = null;
        return;
      }
      session.ping(onPing.bind(session));
      function onPing(err2, duration) {
        const client = this[kClient];
        const socket = this[kClient];
        if (err2 != null) {
          const error = new InformationalError(`HTTP/2: "PING" errored - type ${err2.message}`);
          socket[kError] = error;
          client[kOnError](error);
        } else {
          client.emit("ping", duration);
        }
      }
    }
    function onHttp2SessionError(err2) {
      assert3(err2.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
      this[kSocket][kError] = err2;
      this[kClient][kOnError](err2);
    }
    function onHttp2FrameError(type, code, id) {
      if (id === 0) {
        const err2 = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`);
        this[kSocket][kError] = err2;
        this[kClient][kOnError](err2);
      }
    }
    function onHttp2SessionEnd() {
      const err2 = new SocketError("other side closed", util3.getSocketInfo(this[kSocket]));
      this.destroy(err2);
      util3.destroy(this[kSocket], err2);
    }
    function onHttp2SessionGoAway(errorCode) {
      const err2 = this[kError] || new SocketError(`HTTP/2: "GOAWAY" frame received with code ${errorCode}`, util3.getSocketInfo(this[kSocket]));
      const client = this[kClient];
      client[kSocket] = null;
      client[kHTTPContext] = null;
      this.close();
      this[kHTTP2Session] = null;
      util3.destroy(this[kSocket], err2);
      if (client[kRunningIdx] < client[kQueue].length) {
        const request = client[kQueue][client[kRunningIdx]];
        client[kQueue][client[kRunningIdx]++] = null;
        util3.errorRequest(client, request, err2);
        client[kPendingIdx] = client[kRunningIdx];
      }
      assert3(client[kRunning] === 0);
      client.emit("disconnect", client[kUrl], [client], err2);
      client.emit("connectionError", client[kUrl], [client], err2);
      client[kResume]();
    }
    function onHttp2SessionClose() {
      const { [kClient]: client, [kHTTP2SessionState]: state } = this;
      const { [kSocket]: socket } = client;
      const err2 = this[kSocket][kError] || this[kError] || new SocketError("closed", util3.getSocketInfo(socket));
      client[kSocket] = null;
      client[kHTTPContext] = null;
      if (state.ping.interval != null) {
        clearInterval(state.ping.interval);
        state.ping.interval = null;
      }
      if (client.destroyed) {
        assert3(client[kPending] === 0);
        const requests = client[kQueue].splice(client[kRunningIdx]);
        for (let i5 = 0; i5 < requests.length; i5++) {
          const request = requests[i5];
          util3.errorRequest(client, request, err2);
        }
      }
    }
    function onHttp2SocketClose() {
      const err2 = this[kError] || new SocketError("closed", util3.getSocketInfo(this));
      const client = this[kHTTP2Session][kClient];
      client[kSocket] = null;
      client[kHTTPContext] = null;
      if (this[kHTTP2Session] !== null) {
        this[kHTTP2Session].destroy(err2);
      }
      client[kPendingIdx] = client[kRunningIdx];
      assert3(client[kRunning] === 0);
      client.emit("disconnect", client[kUrl], [client], err2);
      client[kResume]();
    }
    function onHttp2SocketError(err2) {
      assert3(err2.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
      this[kError] = err2;
      this[kClient][kOnError](err2);
    }
    function onHttp2SocketEnd() {
      util3.destroy(this, new SocketError("other side closed", util3.getSocketInfo(this)));
    }
    function onSocketClose() {
      this[kClosed] = true;
    }
    function shouldSendContentLength(method) {
      return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT";
    }
    function writeH2(client, request) {
      const requestTimeout = request.bodyTimeout ?? client[kBodyTimeout];
      const session = client[kHTTP2Session];
      const { method, path: path3, host, upgrade, expectContinue, signal, protocol, headers: reqHeaders } = request;
      let { body } = request;
      if (upgrade != null && upgrade !== "websocket") {
        util3.errorRequest(client, request, new InvalidArgumentError(`Custom upgrade "${upgrade}" not supported over HTTP/2`));
        return false;
      }
      const headers = {};
      for (let n6 = 0; n6 < reqHeaders.length; n6 += 2) {
        const key = reqHeaders[n6 + 0];
        const val = reqHeaders[n6 + 1];
        if (key === "cookie") {
          if (headers[key] != null) {
            headers[key] = Array.isArray(headers[key]) ? (headers[key].push(val), headers[key]) : [headers[key], val];
          } else {
            headers[key] = val;
          }
          continue;
        }
        if (Array.isArray(val)) {
          for (let i5 = 0; i5 < val.length; i5++) {
            if (headers[key]) {
              headers[key] += `, ${val[i5]}`;
            } else {
              headers[key] = val[i5];
            }
          }
        } else if (headers[key]) {
          headers[key] += `, ${val}`;
        } else {
          headers[key] = val;
        }
      }
      let stream7 = null;
      const { hostname, port } = client[kUrl];
      headers[HTTP2_HEADER_AUTHORITY] = host || `${hostname}${port ? `:${port}` : ""}`;
      headers[HTTP2_HEADER_METHOD] = method;
      const abort = (err2) => {
        if (request.aborted || request.completed) {
          return;
        }
        err2 = err2 || new RequestAbortedError();
        util3.errorRequest(client, request, err2);
        if (stream7 != null) {
          stream7.removeAllListeners("data");
          stream7.close();
          client[kOnError](err2);
          client[kResume]();
        }
        util3.destroy(body, err2);
      };
      try {
        request.onConnect(abort);
      } catch (err2) {
        util3.errorRequest(client, request, err2);
      }
      if (request.aborted) {
        return false;
      }
      if (upgrade || method === "CONNECT") {
        session.ref();
        if (upgrade === "websocket") {
          if (session[kEnableConnectProtocol] === false) {
            util3.errorRequest(client, request, new InformationalError("HTTP/2: Extended CONNECT protocol not supported by server"));
            session.unref();
            return false;
          }
          headers[HTTP2_HEADER_METHOD] = "CONNECT";
          headers[HTTP2_HEADER_PROTOCOL] = "websocket";
          headers[HTTP2_HEADER_PATH] = path3;
          if (protocol === "ws:" || protocol === "wss:") {
            headers[HTTP2_HEADER_SCHEME] = protocol === "ws:" ? "http" : "https";
          } else {
            headers[HTTP2_HEADER_SCHEME] = protocol === "http:" ? "http" : "https";
          }
          stream7 = session.request(headers, { endStream: false, signal });
          stream7[kHTTP2Stream] = true;
          stream7.once("response", (headers2, _flags) => {
            const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2;
            request.onUpgrade(statusCode, parseH2Headers(realHeaders), stream7);
            ++session[kOpenStreams];
            client[kQueue][client[kRunningIdx]++] = null;
          });
          stream7.on("error", () => {
            if (stream7.rstCode === NGHTTP2_REFUSED_STREAM || stream7.rstCode === NGHTTP2_CANCEL) {
              abort(new InformationalError(`HTTP/2: "stream error" received - code ${stream7.rstCode}`));
            }
          });
          stream7.once("close", () => {
            session[kOpenStreams] -= 1;
            if (session[kOpenStreams] === 0) session.unref();
          });
          stream7.setTimeout(requestTimeout);
          return true;
        }
        stream7 = session.request(headers, { endStream: false, signal });
        stream7[kHTTP2Stream] = true;
        stream7.on("response", (headers2) => {
          const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2;
          request.onUpgrade(statusCode, parseH2Headers(realHeaders), stream7);
          ++session[kOpenStreams];
          client[kQueue][client[kRunningIdx]++] = null;
        });
        stream7.once("close", () => {
          session[kOpenStreams] -= 1;
          if (session[kOpenStreams] === 0) session.unref();
        });
        stream7.setTimeout(requestTimeout);
        return true;
      }
      headers[HTTP2_HEADER_PATH] = path3;
      headers[HTTP2_HEADER_SCHEME] = protocol === "http:" ? "http" : "https";
      const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH";
      if (body && typeof body.read === "function") {
        body.read(0);
      }
      let contentLength = util3.bodyLength(body);
      if (util3.isFormDataLike(body)) {
        extractBody ??= require_body().extractBody;
        const [bodyStream, contentType] = extractBody(body);
        headers["content-type"] = contentType;
        body = bodyStream.stream;
        contentLength = bodyStream.length;
      }
      if (contentLength == null) {
        contentLength = request.contentLength;
      }
      if (!expectsPayload) {
        contentLength = null;
      }
      if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) {
        if (client[kStrictContentLength]) {
          util3.errorRequest(client, request, new RequestContentLengthMismatchError());
          return false;
        }
        process.emitWarning(new RequestContentLengthMismatchError());
      }
      if (contentLength != null) {
        assert3(body || contentLength === 0, "no body must not have content length");
        headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`;
      }
      session.ref();
      if (channels2.sendHeaders.hasSubscribers) {
        let header = "";
        for (const key in headers) {
          header += `${key}: ${headers[key]}\r
`;
        }
        channels2.sendHeaders.publish({ request, headers: header, socket: session[kSocket] });
      }
      const shouldEndStream = method === "GET" || method === "HEAD" || body === null;
      if (expectContinue) {
        headers[HTTP2_HEADER_EXPECT] = "100-continue";
        stream7 = session.request(headers, { endStream: shouldEndStream, signal });
        stream7[kHTTP2Stream] = true;
        stream7.once("continue", writeBodyH2);
      } else {
        stream7 = session.request(headers, {
          endStream: shouldEndStream,
          signal
        });
        stream7[kHTTP2Stream] = true;
        writeBodyH2();
      }
      ++session[kOpenStreams];
      stream7.setTimeout(requestTimeout);
      let responseReceived = false;
      stream7.once("response", (headers2) => {
        const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2;
        request.onResponseStarted();
        responseReceived = true;
        if (request.aborted) {
          stream7.removeAllListeners("data");
          return;
        }
        if (request.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream7.resume.bind(stream7), "") === false) {
          stream7.pause();
        }
      });
      stream7.on("data", (chunk3) => {
        if (request.onData(chunk3) === false) {
          stream7.pause();
        }
      });
      stream7.once("end", () => {
        stream7.removeAllListeners("data");
        if (responseReceived) {
          if (!request.aborted && !request.completed) {
            request.onComplete({});
          }
          client[kQueue][client[kRunningIdx]++] = null;
          client[kResume]();
        } else {
          abort(new InformationalError("HTTP/2: stream half-closed (remote)"));
          client[kQueue][client[kRunningIdx]++] = null;
          client[kPendingIdx] = client[kRunningIdx];
          client[kResume]();
        }
      });
      stream7.once("close", () => {
        stream7.removeAllListeners("data");
        session[kOpenStreams] -= 1;
        if (session[kOpenStreams] === 0) {
          session.unref();
        }
      });
      stream7.once("error", function(err2) {
        stream7.removeAllListeners("data");
        abort(err2);
      });
      stream7.once("frameError", (type, code) => {
        stream7.removeAllListeners("data");
        abort(new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`));
      });
      stream7.on("aborted", () => {
        stream7.removeAllListeners("data");
      });
      stream7.on("timeout", () => {
        const err2 = new InformationalError(`HTTP/2: "stream timeout after ${requestTimeout}"`);
        stream7.removeAllListeners("data");
        session[kOpenStreams] -= 1;
        if (session[kOpenStreams] === 0) {
          session.unref();
        }
        abort(err2);
      });
      stream7.once("trailers", (trailers) => {
        if (request.aborted || request.completed) {
          return;
        }
        request.onComplete(trailers);
      });
      return true;
      function writeBodyH2() {
        if (!body || contentLength === 0) {
          writeBuffer(
            abort,
            stream7,
            null,
            client,
            request,
            client[kSocket],
            contentLength,
            expectsPayload
          );
        } else if (util3.isBuffer(body)) {
          writeBuffer(
            abort,
            stream7,
            body,
            client,
            request,
            client[kSocket],
            contentLength,
            expectsPayload
          );
        } else if (util3.isBlobLike(body)) {
          if (typeof body.stream === "function") {
            writeIterable(
              abort,
              stream7,
              body.stream(),
              client,
              request,
              client[kSocket],
              contentLength,
              expectsPayload
            );
          } else {
            writeBlob(
              abort,
              stream7,
              body,
              client,
              request,
              client[kSocket],
              contentLength,
              expectsPayload
            );
          }
        } else if (util3.isStream(body)) {
          writeStream(
            abort,
            client[kSocket],
            expectsPayload,
            stream7,
            body,
            client,
            request,
            contentLength
          );
        } else if (util3.isIterable(body)) {
          writeIterable(
            abort,
            stream7,
            body,
            client,
            request,
            client[kSocket],
            contentLength,
            expectsPayload
          );
        } else {
          assert3(false);
        }
      }
    }
    function writeBuffer(abort, h2stream, body, client, request, socket, contentLength, expectsPayload) {
      try {
        if (body != null && util3.isBuffer(body)) {
          assert3(contentLength === body.byteLength, "buffer body must have content length");
          h2stream.cork();
          h2stream.write(body);
          h2stream.uncork();
          h2stream.end();
          request.onBodySent(body);
        }
        if (!expectsPayload) {
          socket[kReset] = true;
        }
        request.onRequestSent();
        client[kResume]();
      } catch (error) {
        abort(error);
      }
    }
    function writeStream(abort, socket, expectsPayload, h2stream, body, client, request, contentLength) {
      assert3(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined");
      const pipe = pipeline2(
        body,
        h2stream,
        (err2) => {
          if (err2) {
            util3.destroy(pipe, err2);
            abort(err2);
          } else {
            util3.removeAllListeners(pipe);
            request.onRequestSent();
            if (!expectsPayload) {
              socket[kReset] = true;
            }
            client[kResume]();
          }
        }
      );
      util3.addListener(pipe, "data", onPipeData);
      function onPipeData(chunk3) {
        request.onBodySent(chunk3);
      }
    }
    async function writeBlob(abort, h2stream, body, client, request, socket, contentLength, expectsPayload) {
      assert3(contentLength === body.size, "blob body must have content length");
      try {
        if (contentLength != null && contentLength !== body.size) {
          throw new RequestContentLengthMismatchError();
        }
        const buffer = Buffer.from(await body.arrayBuffer());
        h2stream.cork();
        h2stream.write(buffer);
        h2stream.uncork();
        h2stream.end();
        request.onBodySent(buffer);
        request.onRequestSent();
        if (!expectsPayload) {
          socket[kReset] = true;
        }
        client[kResume]();
      } catch (err2) {
        abort(err2);
      }
    }
    async function writeIterable(abort, h2stream, body, client, request, socket, contentLength, expectsPayload) {
      assert3(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined");
      let callback = null;
      function onDrain() {
        if (callback) {
          const cb = callback;
          callback = null;
          cb();
        }
      }
      const waitForDrain = () => new Promise((resolve4, reject) => {
        assert3(callback === null);
        if (socket[kError]) {
          reject(socket[kError]);
        } else {
          callback = resolve4;
        }
      });
      h2stream.on("close", onDrain).on("drain", onDrain);
      try {
        for await (const chunk3 of body) {
          if (socket[kError]) {
            throw socket[kError];
          }
          const res = h2stream.write(chunk3);
          request.onBodySent(chunk3);
          if (!res) {
            await waitForDrain();
          }
        }
        h2stream.end();
        request.onRequestSent();
        if (!expectsPayload) {
          socket[kReset] = true;
        }
        client[kResume]();
      } catch (err2) {
        abort(err2);
      } finally {
        h2stream.off("close", onDrain).off("drain", onDrain);
      }
    }
    module.exports = connectH2;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/client.js
var require_client = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/client.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var net2 = __require("node:net");
    var http6 = __require("node:http");
    var util3 = require_util4();
    var { ClientStats } = require_stats();
    var { channels: channels2 } = require_diagnostics();
    var Request3 = require_request2();
    var DispatcherBase = require_dispatcher_base();
    var {
      InvalidArgumentError,
      InformationalError,
      ClientDestroyedError
    } = require_errors5();
    var buildConnector = require_connect();
    var {
      kUrl,
      kServerName,
      kClient,
      kBusy,
      kConnect,
      kResuming,
      kRunning,
      kPending,
      kSize,
      kQueue,
      kConnected,
      kConnecting,
      kNeedDrain,
      kKeepAliveDefaultTimeout,
      kHostHeader,
      kPendingIdx,
      kRunningIdx,
      kError,
      kPipelining,
      kKeepAliveTimeoutValue,
      kMaxHeadersSize,
      kKeepAliveMaxTimeout,
      kKeepAliveTimeoutThreshold,
      kHeadersTimeout,
      kBodyTimeout,
      kStrictContentLength,
      kConnector,
      kMaxRequests,
      kCounter,
      kClose,
      kDestroy,
      kDispatch,
      kLocalAddress,
      kMaxResponseSize,
      kOnError,
      kHTTPContext,
      kMaxConcurrentStreams,
      kHTTP2InitialWindowSize,
      kHTTP2ConnectionWindowSize,
      kResume,
      kPingInterval
    } = require_symbols2();
    var connectH1 = require_client_h1();
    var connectH2 = require_client_h2();
    var kClosedResolve = Symbol("kClosedResolve");
    var getDefaultNodeMaxHeaderSize = http6 && http6.maxHeaderSize && Number.isInteger(http6.maxHeaderSize) && http6.maxHeaderSize > 0 ? () => http6.maxHeaderSize : () => {
      throw new InvalidArgumentError("http module not available or http.maxHeaderSize invalid");
    };
    var noop6 = () => {
    };
    function getPipelining(client) {
      return client[kPipelining] ?? client[kHTTPContext]?.defaultPipelining ?? 1;
    }
    var Client = class extends DispatcherBase {
      /**
       *
       * @param {string|URL} url
       * @param {import('../../types/client.js').Client.Options} options
       */
      constructor(url3, {
        maxHeaderSize,
        headersTimeout,
        socketTimeout,
        requestTimeout,
        connectTimeout,
        bodyTimeout,
        idleTimeout,
        keepAlive,
        keepAliveTimeout,
        maxKeepAliveTimeout,
        keepAliveMaxTimeout,
        keepAliveTimeoutThreshold,
        socketPath,
        pipelining,
        tls: tls3,
        strictContentLength,
        maxCachedSessions,
        connect: connect3,
        maxRequestsPerClient,
        localAddress,
        maxResponseSize,
        autoSelectFamily,
        autoSelectFamilyAttemptTimeout,
        // h2
        maxConcurrentStreams,
        allowH2,
        useH2c,
        initialWindowSize,
        connectionWindowSize,
        pingInterval
      } = {}) {
        if (keepAlive !== void 0) {
          throw new InvalidArgumentError("unsupported keepAlive, use pipelining=0 instead");
        }
        if (socketTimeout !== void 0) {
          throw new InvalidArgumentError("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");
        }
        if (requestTimeout !== void 0) {
          throw new InvalidArgumentError("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");
        }
        if (idleTimeout !== void 0) {
          throw new InvalidArgumentError("unsupported idleTimeout, use keepAliveTimeout instead");
        }
        if (maxKeepAliveTimeout !== void 0) {
          throw new InvalidArgumentError("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");
        }
        if (maxHeaderSize != null) {
          if (!Number.isInteger(maxHeaderSize) || maxHeaderSize < 1) {
            throw new InvalidArgumentError("invalid maxHeaderSize");
          }
        } else {
          maxHeaderSize = getDefaultNodeMaxHeaderSize();
        }
        if (socketPath != null && typeof socketPath !== "string") {
          throw new InvalidArgumentError("invalid socketPath");
        }
        if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {
          throw new InvalidArgumentError("invalid connectTimeout");
        }
        if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {
          throw new InvalidArgumentError("invalid keepAliveTimeout");
        }
        if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {
          throw new InvalidArgumentError("invalid keepAliveMaxTimeout");
        }
        if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {
          throw new InvalidArgumentError("invalid keepAliveTimeoutThreshold");
        }
        if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {
          throw new InvalidArgumentError("headersTimeout must be a positive integer or zero");
        }
        if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {
          throw new InvalidArgumentError("bodyTimeout must be a positive integer or zero");
        }
        if (connect3 != null && typeof connect3 !== "function" && typeof connect3 !== "object") {
          throw new InvalidArgumentError("connect must be a function or an object");
        }
        if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {
          throw new InvalidArgumentError("maxRequestsPerClient must be a positive number");
        }
        if (localAddress != null && (typeof localAddress !== "string" || net2.isIP(localAddress) === 0)) {
          throw new InvalidArgumentError("localAddress must be valid string IP address");
        }
        if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {
          throw new InvalidArgumentError("maxResponseSize must be a positive number");
        }
        if (autoSelectFamilyAttemptTimeout != null && (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)) {
          throw new InvalidArgumentError("autoSelectFamilyAttemptTimeout must be a positive number");
        }
        if (allowH2 != null && typeof allowH2 !== "boolean") {
          throw new InvalidArgumentError("allowH2 must be a valid boolean value");
        }
        if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== "number" || maxConcurrentStreams < 1)) {
          throw new InvalidArgumentError("maxConcurrentStreams must be a positive integer, greater than 0");
        }
        if (useH2c != null && typeof useH2c !== "boolean") {
          throw new InvalidArgumentError("useH2c must be a valid boolean value");
        }
        if (initialWindowSize != null && (!Number.isInteger(initialWindowSize) || initialWindowSize < 1)) {
          throw new InvalidArgumentError("initialWindowSize must be a positive integer, greater than 0");
        }
        if (connectionWindowSize != null && (!Number.isInteger(connectionWindowSize) || connectionWindowSize < 1)) {
          throw new InvalidArgumentError("connectionWindowSize must be a positive integer, greater than 0");
        }
        if (pingInterval != null && (typeof pingInterval !== "number" || !Number.isInteger(pingInterval) || pingInterval < 0)) {
          throw new InvalidArgumentError("pingInterval must be a positive integer, greater or equal to 0");
        }
        super();
        if (typeof connect3 !== "function") {
          connect3 = buildConnector({
            ...tls3,
            maxCachedSessions,
            allowH2,
            useH2c,
            socketPath,
            timeout: connectTimeout,
            ...typeof autoSelectFamily === "boolean" ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0,
            ...connect3
          });
        }
        this[kUrl] = util3.parseOrigin(url3);
        this[kConnector] = connect3;
        this[kPipelining] = pipelining != null ? pipelining : 1;
        this[kMaxHeadersSize] = maxHeaderSize;
        this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout;
        this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 6e5 : keepAliveMaxTimeout;
        this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 2e3 : keepAliveTimeoutThreshold;
        this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout];
        this[kServerName] = null;
        this[kLocalAddress] = localAddress != null ? localAddress : null;
        this[kResuming] = 0;
        this[kNeedDrain] = 0;
        this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ""}\r
`;
        this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 3e5;
        this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 3e5;
        this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength;
        this[kMaxRequests] = maxRequestsPerClient;
        this[kClosedResolve] = null;
        this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1;
        this[kHTTPContext] = null;
        this[kMaxConcurrentStreams] = maxConcurrentStreams != null ? maxConcurrentStreams : 100;
        this[kHTTP2InitialWindowSize] = initialWindowSize != null ? initialWindowSize : 262144;
        this[kHTTP2ConnectionWindowSize] = connectionWindowSize != null ? connectionWindowSize : 524288;
        this[kPingInterval] = pingInterval != null ? pingInterval : 6e4;
        this[kQueue] = [];
        this[kRunningIdx] = 0;
        this[kPendingIdx] = 0;
        this[kResume] = (sync) => resume(this, sync);
        this[kOnError] = (err2) => onError(this, err2);
      }
      get pipelining() {
        return this[kPipelining];
      }
      set pipelining(value2) {
        this[kPipelining] = value2;
        this[kResume](true);
      }
      get stats() {
        return new ClientStats(this);
      }
      get [kPending]() {
        return this[kQueue].length - this[kPendingIdx];
      }
      get [kRunning]() {
        return this[kPendingIdx] - this[kRunningIdx];
      }
      get [kSize]() {
        return this[kQueue].length - this[kRunningIdx];
      }
      get [kConnected]() {
        return !!this[kHTTPContext] && !this[kConnecting] && !this[kHTTPContext].destroyed;
      }
      get [kBusy]() {
        return Boolean(
          this[kHTTPContext]?.busy(null) || this[kSize] >= (getPipelining(this) || 1) || this[kPending] > 0
        );
      }
      [kConnect](cb) {
        connect2(this);
        this.once("connect", cb);
      }
      [kDispatch](opts2, handler) {
        const request = new Request3(this[kUrl].origin, opts2, handler);
        this[kQueue].push(request);
        if (this[kResuming]) {
        } else if (util3.bodyLength(request.body) == null && util3.isIterable(request.body)) {
          this[kResuming] = 1;
          queueMicrotask(() => resume(this));
        } else {
          this[kResume](true);
        }
        if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {
          this[kNeedDrain] = 2;
        }
        return this[kNeedDrain] < 2;
      }
      [kClose]() {
        return new Promise((resolve4) => {
          if (this[kSize]) {
            this[kClosedResolve] = resolve4;
          } else {
            resolve4(null);
          }
        });
      }
      [kDestroy](err2) {
        return new Promise((resolve4) => {
          const requests = this[kQueue].splice(this[kPendingIdx]);
          for (let i5 = 0; i5 < requests.length; i5++) {
            const request = requests[i5];
            util3.errorRequest(this, request, err2);
          }
          const callback = () => {
            if (this[kClosedResolve]) {
              this[kClosedResolve]();
              this[kClosedResolve] = null;
            }
            resolve4(null);
          };
          if (this[kHTTPContext]) {
            this[kHTTPContext].destroy(err2, callback);
            this[kHTTPContext] = null;
          } else {
            queueMicrotask(callback);
          }
          this[kResume]();
        });
      }
    };
    function onError(client, err2) {
      if (client[kRunning] === 0 && err2.code !== "UND_ERR_INFO" && err2.code !== "UND_ERR_SOCKET") {
        assert3(client[kPendingIdx] === client[kRunningIdx]);
        const requests = client[kQueue].splice(client[kRunningIdx]);
        for (let i5 = 0; i5 < requests.length; i5++) {
          const request = requests[i5];
          util3.errorRequest(client, request, err2);
        }
        assert3(client[kSize] === 0);
      }
    }
    function connect2(client) {
      assert3(!client[kConnecting]);
      assert3(!client[kHTTPContext]);
      let { host, hostname, protocol, port } = client[kUrl];
      if (hostname[0] === "[") {
        const idx = hostname.indexOf("]");
        assert3(idx !== -1);
        const ip = hostname.substring(1, idx);
        assert3(net2.isIPv6(ip));
        hostname = ip;
      }
      client[kConnecting] = true;
      if (channels2.beforeConnect.hasSubscribers) {
        channels2.beforeConnect.publish({
          connectParams: {
            host,
            hostname,
            protocol,
            port,
            version: client[kHTTPContext]?.version,
            servername: client[kServerName],
            localAddress: client[kLocalAddress]
          },
          connector: client[kConnector]
        });
      }
      client[kConnector]({
        host,
        hostname,
        protocol,
        port,
        servername: client[kServerName],
        localAddress: client[kLocalAddress]
      }, (err2, socket) => {
        if (err2) {
          handleConnectError(client, err2, { host, hostname, protocol, port });
          client[kResume]();
          return;
        }
        if (client.destroyed) {
          util3.destroy(socket.on("error", noop6), new ClientDestroyedError());
          client[kResume]();
          return;
        }
        assert3(socket);
        try {
          client[kHTTPContext] = socket.alpnProtocol === "h2" ? connectH2(client, socket) : connectH1(client, socket);
        } catch (err3) {
          socket.destroy().on("error", noop6);
          handleConnectError(client, err3, { host, hostname, protocol, port });
          client[kResume]();
          return;
        }
        client[kConnecting] = false;
        socket[kCounter] = 0;
        socket[kMaxRequests] = client[kMaxRequests];
        socket[kClient] = client;
        socket[kError] = null;
        if (channels2.connected.hasSubscribers) {
          channels2.connected.publish({
            connectParams: {
              host,
              hostname,
              protocol,
              port,
              version: client[kHTTPContext]?.version,
              servername: client[kServerName],
              localAddress: client[kLocalAddress]
            },
            connector: client[kConnector],
            socket
          });
        }
        client.emit("connect", client[kUrl], [client]);
        client[kResume]();
      });
    }
    function handleConnectError(client, err2, { host, hostname, protocol, port }) {
      if (client.destroyed) {
        return;
      }
      client[kConnecting] = false;
      if (channels2.connectError.hasSubscribers) {
        channels2.connectError.publish({
          connectParams: {
            host,
            hostname,
            protocol,
            port,
            version: client[kHTTPContext]?.version,
            servername: client[kServerName],
            localAddress: client[kLocalAddress]
          },
          connector: client[kConnector],
          error: err2
        });
      }
      if (err2.code === "ERR_TLS_CERT_ALTNAME_INVALID") {
        assert3(client[kRunning] === 0);
        while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {
          const request = client[kQueue][client[kPendingIdx]++];
          util3.errorRequest(client, request, err2);
        }
      } else {
        onError(client, err2);
      }
      client.emit("connectionError", client[kUrl], [client], err2);
    }
    function emitDrain(client) {
      client[kNeedDrain] = 0;
      client.emit("drain", client[kUrl], [client]);
    }
    function resume(client, sync) {
      if (client[kResuming] === 2) {
        return;
      }
      client[kResuming] = 2;
      _resume(client, sync);
      client[kResuming] = 0;
      if (client[kRunningIdx] > 256) {
        client[kQueue].splice(0, client[kRunningIdx]);
        client[kPendingIdx] -= client[kRunningIdx];
        client[kRunningIdx] = 0;
      }
    }
    function _resume(client, sync) {
      while (true) {
        if (client.destroyed) {
          assert3(client[kPending] === 0);
          return;
        }
        if (client[kClosedResolve] && !client[kSize]) {
          client[kClosedResolve]();
          client[kClosedResolve] = null;
          return;
        }
        if (client[kHTTPContext]) {
          client[kHTTPContext].resume();
        }
        if (client[kBusy]) {
          client[kNeedDrain] = 2;
        } else if (client[kNeedDrain] === 2) {
          if (sync) {
            client[kNeedDrain] = 1;
            queueMicrotask(() => emitDrain(client));
          } else {
            emitDrain(client);
          }
          continue;
        }
        if (client[kPending] === 0) {
          return;
        }
        if (client[kRunning] >= (getPipelining(client) || 1)) {
          return;
        }
        const request = client[kQueue][client[kPendingIdx]];
        if (client[kUrl].protocol === "https:" && client[kServerName] !== request.servername) {
          if (client[kRunning] > 0) {
            return;
          }
          client[kServerName] = request.servername;
          client[kHTTPContext]?.destroy(new InformationalError("servername changed"), () => {
            client[kHTTPContext] = null;
            resume(client);
          });
        }
        if (client[kConnecting]) {
          return;
        }
        if (!client[kHTTPContext]) {
          connect2(client);
          return;
        }
        if (client[kHTTPContext].destroyed) {
          return;
        }
        if (client[kHTTPContext].busy(request)) {
          return;
        }
        if (!request.aborted && client[kHTTPContext].write(request)) {
          client[kPendingIdx]++;
        } else {
          client[kQueue].splice(client[kPendingIdx], 1);
        }
      }
    }
    module.exports = Client;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/fixed-queue.js
var require_fixed_queue = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/fixed-queue.js"(exports, module) {
    "use strict";
    var kSize = 2048;
    var kMask = kSize - 1;
    var FixedCircularBuffer = class {
      /** @type {number} */
      bottom = 0;
      /** @type {number} */
      top = 0;
      /** @type {Array<T|undefined>} */
      list = new Array(kSize).fill(void 0);
      /** @type {T|null} */
      next = null;
      /** @returns {boolean} */
      isEmpty() {
        return this.top === this.bottom;
      }
      /** @returns {boolean} */
      isFull() {
        return (this.top + 1 & kMask) === this.bottom;
      }
      /**
       * @param {T} data
       * @returns {void}
       */
      push(data2) {
        this.list[this.top] = data2;
        this.top = this.top + 1 & kMask;
      }
      /** @returns {T|null} */
      shift() {
        const nextItem = this.list[this.bottom];
        if (nextItem === void 0) {
          return null;
        }
        this.list[this.bottom] = void 0;
        this.bottom = this.bottom + 1 & kMask;
        return nextItem;
      }
    };
    module.exports = class FixedQueue {
      constructor() {
        this.head = this.tail = new FixedCircularBuffer();
      }
      /** @returns {boolean} */
      isEmpty() {
        return this.head.isEmpty();
      }
      /** @param {T} data */
      push(data2) {
        if (this.head.isFull()) {
          this.head = this.head.next = new FixedCircularBuffer();
        }
        this.head.push(data2);
      }
      /** @returns {T|null} */
      shift() {
        const tail = this.tail;
        const next = tail.shift();
        if (tail.isEmpty() && tail.next !== null) {
          this.tail = tail.next;
          tail.next = null;
        }
        return next;
      }
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/pool-base.js
var require_pool_base = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/pool-base.js"(exports, module) {
    "use strict";
    var { PoolStats } = require_stats();
    var DispatcherBase = require_dispatcher_base();
    var FixedQueue = require_fixed_queue();
    var { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require_symbols2();
    var kClients = Symbol("clients");
    var kNeedDrain = Symbol("needDrain");
    var kQueue = Symbol("queue");
    var kClosedResolve = Symbol("closed resolve");
    var kOnDrain = Symbol("onDrain");
    var kOnConnect = Symbol("onConnect");
    var kOnDisconnect = Symbol("onDisconnect");
    var kOnConnectionError = Symbol("onConnectionError");
    var kGetDispatcher = Symbol("get dispatcher");
    var kAddClient = Symbol("add client");
    var kRemoveClient = Symbol("remove client");
    var PoolBase = class extends DispatcherBase {
      [kQueue] = new FixedQueue();
      [kQueued] = 0;
      [kClients] = [];
      [kNeedDrain] = false;
      [kOnDrain](client, origin2, targets) {
        const queue = this[kQueue];
        let needDrain = false;
        while (!needDrain) {
          const item = queue.shift();
          if (!item) {
            break;
          }
          this[kQueued]--;
          needDrain = !client.dispatch(item.opts, item.handler);
        }
        client[kNeedDrain] = needDrain;
        if (!needDrain && this[kNeedDrain]) {
          this[kNeedDrain] = false;
          this.emit("drain", origin2, [this, ...targets]);
        }
        if (this[kClosedResolve] && queue.isEmpty()) {
          const closeAll = [];
          for (let i5 = 0; i5 < this[kClients].length; i5++) {
            const client2 = this[kClients][i5];
            if (!client2.destroyed) {
              closeAll.push(client2.close());
            }
          }
          return Promise.all(closeAll).then(this[kClosedResolve]);
        }
      }
      [kOnConnect] = (origin2, targets) => {
        this.emit("connect", origin2, [this, ...targets]);
      };
      [kOnDisconnect] = (origin2, targets, err2) => {
        this.emit("disconnect", origin2, [this, ...targets], err2);
      };
      [kOnConnectionError] = (origin2, targets, err2) => {
        this.emit("connectionError", origin2, [this, ...targets], err2);
      };
      get [kBusy]() {
        return this[kNeedDrain];
      }
      get [kConnected]() {
        let ret = 0;
        for (const { [kConnected]: connected } of this[kClients]) {
          ret += connected;
        }
        return ret;
      }
      get [kFree]() {
        let ret = 0;
        for (const { [kConnected]: connected, [kNeedDrain]: needDrain } of this[kClients]) {
          ret += connected && !needDrain;
        }
        return ret;
      }
      get [kPending]() {
        let ret = this[kQueued];
        for (const { [kPending]: pending } of this[kClients]) {
          ret += pending;
        }
        return ret;
      }
      get [kRunning]() {
        let ret = 0;
        for (const { [kRunning]: running } of this[kClients]) {
          ret += running;
        }
        return ret;
      }
      get [kSize]() {
        let ret = this[kQueued];
        for (const { [kSize]: size } of this[kClients]) {
          ret += size;
        }
        return ret;
      }
      get stats() {
        return new PoolStats(this);
      }
      [kClose]() {
        if (this[kQueue].isEmpty()) {
          const closeAll = [];
          for (let i5 = 0; i5 < this[kClients].length; i5++) {
            const client = this[kClients][i5];
            if (!client.destroyed) {
              closeAll.push(client.close());
            }
          }
          return Promise.all(closeAll);
        } else {
          return new Promise((resolve4) => {
            this[kClosedResolve] = resolve4;
          });
        }
      }
      [kDestroy](err2) {
        while (true) {
          const item = this[kQueue].shift();
          if (!item) {
            break;
          }
          item.handler.onError(err2);
        }
        const destroyAll = new Array(this[kClients].length);
        for (let i5 = 0; i5 < this[kClients].length; i5++) {
          destroyAll[i5] = this[kClients][i5].destroy(err2);
        }
        return Promise.all(destroyAll);
      }
      [kDispatch](opts2, handler) {
        const dispatcher = this[kGetDispatcher]();
        if (!dispatcher) {
          this[kNeedDrain] = true;
          this[kQueue].push({ opts: opts2, handler });
          this[kQueued]++;
        } else if (!dispatcher.dispatch(opts2, handler)) {
          dispatcher[kNeedDrain] = true;
          this[kNeedDrain] = !this[kGetDispatcher]();
        }
        return !this[kNeedDrain];
      }
      [kAddClient](client) {
        client.on("drain", this[kOnDrain].bind(this, client)).on("connect", this[kOnConnect]).on("disconnect", this[kOnDisconnect]).on("connectionError", this[kOnConnectionError]);
        this[kClients].push(client);
        if (this[kNeedDrain]) {
          queueMicrotask(() => {
            if (this[kNeedDrain]) {
              this[kOnDrain](client, client[kUrl], [client, this]);
            }
          });
        }
        return this;
      }
      [kRemoveClient](client) {
        client.close(() => {
          const idx = this[kClients].indexOf(client);
          if (idx !== -1) {
            this[kClients].splice(idx, 1);
          }
        });
        this[kNeedDrain] = this[kClients].some((dispatcher) => !dispatcher[kNeedDrain] && dispatcher.closed !== true && dispatcher.destroyed !== true);
      }
    };
    module.exports = {
      PoolBase,
      kClients,
      kNeedDrain,
      kAddClient,
      kRemoveClient,
      kGetDispatcher
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/pool.js
var require_pool = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/pool.js"(exports, module) {
    "use strict";
    var {
      PoolBase,
      kClients,
      kNeedDrain,
      kAddClient,
      kGetDispatcher,
      kRemoveClient
    } = require_pool_base();
    var Client = require_client();
    var {
      InvalidArgumentError
    } = require_errors5();
    var util3 = require_util4();
    var { kUrl } = require_symbols2();
    var buildConnector = require_connect();
    var kOptions = Symbol("options");
    var kConnections = Symbol("connections");
    var kFactory = Symbol("factory");
    function defaultFactory(origin2, opts2) {
      return new Client(origin2, opts2);
    }
    var Pool = class extends PoolBase {
      constructor(origin2, {
        connections,
        factory: factory2 = defaultFactory,
        connect: connect2,
        connectTimeout,
        tls: tls3,
        maxCachedSessions,
        socketPath,
        autoSelectFamily,
        autoSelectFamilyAttemptTimeout,
        allowH2,
        clientTtl,
        ...options
      } = {}) {
        if (connections != null && (!Number.isFinite(connections) || connections < 0)) {
          throw new InvalidArgumentError("invalid connections");
        }
        if (typeof factory2 !== "function") {
          throw new InvalidArgumentError("factory must be a function.");
        }
        if (connect2 != null && typeof connect2 !== "function" && typeof connect2 !== "object") {
          throw new InvalidArgumentError("connect must be a function or an object");
        }
        if (typeof connect2 !== "function") {
          connect2 = buildConnector({
            ...tls3,
            maxCachedSessions,
            allowH2,
            socketPath,
            timeout: connectTimeout,
            ...typeof autoSelectFamily === "boolean" ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0,
            ...connect2
          });
        }
        super();
        this[kConnections] = connections || null;
        this[kUrl] = util3.parseOrigin(origin2);
        this[kOptions] = { ...util3.deepClone(options), connect: connect2, allowH2, clientTtl };
        this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0;
        this[kFactory] = factory2;
        this.on("connect", (origin3, targets) => {
          if (clientTtl != null && clientTtl > 0) {
            for (const target of targets) {
              Object.assign(target, { ttl: Date.now() });
            }
          }
        });
        this.on("connectionError", (origin3, targets, error) => {
          for (const target of targets) {
            const idx = this[kClients].indexOf(target);
            if (idx !== -1) {
              this[kClients].splice(idx, 1);
            }
          }
        });
      }
      [kGetDispatcher]() {
        const clientTtlOption = this[kOptions].clientTtl;
        for (const client of this[kClients]) {
          if (clientTtlOption != null && clientTtlOption > 0 && client.ttl && Date.now() - client.ttl > clientTtlOption) {
            this[kRemoveClient](client);
          } else if (!client[kNeedDrain]) {
            return client;
          }
        }
        if (!this[kConnections] || this[kClients].length < this[kConnections]) {
          const dispatcher = this[kFactory](this[kUrl], this[kOptions]);
          this[kAddClient](dispatcher);
          return dispatcher;
        }
      }
    };
    module.exports = Pool;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/balanced-pool.js
var require_balanced_pool = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/balanced-pool.js"(exports, module) {
    "use strict";
    var {
      BalancedPoolMissingUpstreamError,
      InvalidArgumentError
    } = require_errors5();
    var {
      PoolBase,
      kClients,
      kNeedDrain,
      kAddClient,
      kRemoveClient,
      kGetDispatcher
    } = require_pool_base();
    var Pool = require_pool();
    var { kUrl } = require_symbols2();
    var { parseOrigin } = require_util4();
    var kFactory = Symbol("factory");
    var kOptions = Symbol("options");
    var kGreatestCommonDivisor = Symbol("kGreatestCommonDivisor");
    var kCurrentWeight = Symbol("kCurrentWeight");
    var kIndex = Symbol("kIndex");
    var kWeight = Symbol("kWeight");
    var kMaxWeightPerServer = Symbol("kMaxWeightPerServer");
    var kErrorPenalty = Symbol("kErrorPenalty");
    function getGreatestCommonDivisor(a5, b3) {
      if (a5 === 0) return b3;
      while (b3 !== 0) {
        const t4 = b3;
        b3 = a5 % b3;
        a5 = t4;
      }
      return a5;
    }
    function defaultFactory(origin2, opts2) {
      return new Pool(origin2, opts2);
    }
    var BalancedPool = class extends PoolBase {
      constructor(upstreams = [], { factory: factory2 = defaultFactory, ...opts2 } = {}) {
        if (typeof factory2 !== "function") {
          throw new InvalidArgumentError("factory must be a function.");
        }
        super();
        this[kOptions] = opts2;
        this[kIndex] = -1;
        this[kCurrentWeight] = 0;
        this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100;
        this[kErrorPenalty] = this[kOptions].errorPenalty || 15;
        if (!Array.isArray(upstreams)) {
          upstreams = [upstreams];
        }
        this[kFactory] = factory2;
        for (const upstream of upstreams) {
          this.addUpstream(upstream);
        }
        this._updateBalancedPoolStats();
      }
      addUpstream(upstream) {
        const upstreamOrigin = parseOrigin(upstream).origin;
        if (this[kClients].find((pool2) => pool2[kUrl].origin === upstreamOrigin && pool2.closed !== true && pool2.destroyed !== true)) {
          return this;
        }
        const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]));
        this[kAddClient](pool);
        pool.on("connect", () => {
          pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty]);
        });
        pool.on("connectionError", () => {
          pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]);
          this._updateBalancedPoolStats();
        });
        pool.on("disconnect", (...args) => {
          const err2 = args[2];
          if (err2 && err2.code === "UND_ERR_SOCKET") {
            pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]);
            this._updateBalancedPoolStats();
          }
        });
        for (const client of this[kClients]) {
          client[kWeight] = this[kMaxWeightPerServer];
        }
        this._updateBalancedPoolStats();
        return this;
      }
      _updateBalancedPoolStats() {
        let result = 0;
        for (let i5 = 0; i5 < this[kClients].length; i5++) {
          result = getGreatestCommonDivisor(this[kClients][i5][kWeight], result);
        }
        this[kGreatestCommonDivisor] = result;
      }
      removeUpstream(upstream) {
        const upstreamOrigin = parseOrigin(upstream).origin;
        const pool = this[kClients].find((pool2) => pool2[kUrl].origin === upstreamOrigin && pool2.closed !== true && pool2.destroyed !== true);
        if (pool) {
          this[kRemoveClient](pool);
        }
        return this;
      }
      getUpstream(upstream) {
        const upstreamOrigin = parseOrigin(upstream).origin;
        return this[kClients].find((pool) => pool[kUrl].origin === upstreamOrigin && pool.closed !== true && pool.destroyed !== true);
      }
      get upstreams() {
        return this[kClients].filter((dispatcher) => dispatcher.closed !== true && dispatcher.destroyed !== true).map((p3) => p3[kUrl].origin);
      }
      [kGetDispatcher]() {
        if (this[kClients].length === 0) {
          throw new BalancedPoolMissingUpstreamError();
        }
        const dispatcher = this[kClients].find((dispatcher2) => !dispatcher2[kNeedDrain] && dispatcher2.closed !== true && dispatcher2.destroyed !== true);
        if (!dispatcher) {
          return;
        }
        const allClientsBusy = this[kClients].map((pool) => pool[kNeedDrain]).reduce((a5, b3) => a5 && b3, true);
        if (allClientsBusy) {
          return;
        }
        let counter = 0;
        let maxWeightIndex = this[kClients].findIndex((pool) => !pool[kNeedDrain]);
        while (counter++ < this[kClients].length) {
          this[kIndex] = (this[kIndex] + 1) % this[kClients].length;
          const pool = this[kClients][this[kIndex]];
          if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {
            maxWeightIndex = this[kIndex];
          }
          if (this[kIndex] === 0) {
            this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor];
            if (this[kCurrentWeight] <= 0) {
              this[kCurrentWeight] = this[kMaxWeightPerServer];
            }
          }
          if (pool[kWeight] >= this[kCurrentWeight] && !pool[kNeedDrain]) {
            return pool;
          }
        }
        this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight];
        this[kIndex] = maxWeightIndex;
        return this[kClients][maxWeightIndex];
      }
    };
    module.exports = BalancedPool;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/round-robin-pool.js
var require_round_robin_pool = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/round-robin-pool.js"(exports, module) {
    "use strict";
    var {
      PoolBase,
      kClients,
      kNeedDrain,
      kAddClient,
      kGetDispatcher,
      kRemoveClient
    } = require_pool_base();
    var Client = require_client();
    var {
      InvalidArgumentError
    } = require_errors5();
    var util3 = require_util4();
    var { kUrl } = require_symbols2();
    var buildConnector = require_connect();
    var kOptions = Symbol("options");
    var kConnections = Symbol("connections");
    var kFactory = Symbol("factory");
    var kIndex = Symbol("index");
    function defaultFactory(origin2, opts2) {
      return new Client(origin2, opts2);
    }
    var RoundRobinPool = class extends PoolBase {
      constructor(origin2, {
        connections,
        factory: factory2 = defaultFactory,
        connect: connect2,
        connectTimeout,
        tls: tls3,
        maxCachedSessions,
        socketPath,
        autoSelectFamily,
        autoSelectFamilyAttemptTimeout,
        allowH2,
        clientTtl,
        ...options
      } = {}) {
        if (connections != null && (!Number.isFinite(connections) || connections < 0)) {
          throw new InvalidArgumentError("invalid connections");
        }
        if (typeof factory2 !== "function") {
          throw new InvalidArgumentError("factory must be a function.");
        }
        if (connect2 != null && typeof connect2 !== "function" && typeof connect2 !== "object") {
          throw new InvalidArgumentError("connect must be a function or an object");
        }
        if (typeof connect2 !== "function") {
          connect2 = buildConnector({
            ...tls3,
            maxCachedSessions,
            allowH2,
            socketPath,
            timeout: connectTimeout,
            ...typeof autoSelectFamily === "boolean" ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0,
            ...connect2
          });
        }
        super();
        this[kConnections] = connections || null;
        this[kUrl] = util3.parseOrigin(origin2);
        this[kOptions] = { ...util3.deepClone(options), connect: connect2, allowH2, clientTtl };
        this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0;
        this[kFactory] = factory2;
        this[kIndex] = -1;
        this.on("connect", (origin3, targets) => {
          if (clientTtl != null && clientTtl > 0) {
            for (const target of targets) {
              Object.assign(target, { ttl: Date.now() });
            }
          }
        });
        this.on("connectionError", (origin3, targets, error) => {
          for (const target of targets) {
            const idx = this[kClients].indexOf(target);
            if (idx !== -1) {
              this[kClients].splice(idx, 1);
            }
          }
        });
      }
      [kGetDispatcher]() {
        const clientTtlOption = this[kOptions].clientTtl;
        const clientsLength = this[kClients].length;
        if (clientsLength === 0) {
          const dispatcher = this[kFactory](this[kUrl], this[kOptions]);
          this[kAddClient](dispatcher);
          return dispatcher;
        }
        let checked = 0;
        while (checked < clientsLength) {
          this[kIndex] = (this[kIndex] + 1) % clientsLength;
          const client = this[kClients][this[kIndex]];
          if (clientTtlOption != null && clientTtlOption > 0 && client.ttl && Date.now() - client.ttl > clientTtlOption) {
            this[kRemoveClient](client);
            checked++;
            continue;
          }
          if (!client[kNeedDrain]) {
            return client;
          }
          checked++;
        }
        if (!this[kConnections] || clientsLength < this[kConnections]) {
          const dispatcher = this[kFactory](this[kUrl], this[kOptions]);
          this[kAddClient](dispatcher);
          return dispatcher;
        }
      }
    };
    module.exports = RoundRobinPool;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/agent.js
var require_agent2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/agent.js"(exports, module) {
    "use strict";
    var { InvalidArgumentError, MaxOriginsReachedError } = require_errors5();
    var { kClients, kRunning, kClose, kDestroy, kDispatch, kUrl } = require_symbols2();
    var DispatcherBase = require_dispatcher_base();
    var Pool = require_pool();
    var Client = require_client();
    var util3 = require_util4();
    var kOnConnect = Symbol("onConnect");
    var kOnDisconnect = Symbol("onDisconnect");
    var kOnConnectionError = Symbol("onConnectionError");
    var kOnDrain = Symbol("onDrain");
    var kFactory = Symbol("factory");
    var kOptions = Symbol("options");
    var kOrigins = Symbol("origins");
    function defaultFactory(origin2, opts2) {
      return opts2 && opts2.connections === 1 ? new Client(origin2, opts2) : new Pool(origin2, opts2);
    }
    var Agent = class extends DispatcherBase {
      constructor({ factory: factory2 = defaultFactory, maxOrigins = Infinity, connect: connect2, ...options } = {}) {
        if (typeof factory2 !== "function") {
          throw new InvalidArgumentError("factory must be a function.");
        }
        if (connect2 != null && typeof connect2 !== "function" && typeof connect2 !== "object") {
          throw new InvalidArgumentError("connect must be a function or an object");
        }
        if (typeof maxOrigins !== "number" || Number.isNaN(maxOrigins) || maxOrigins <= 0) {
          throw new InvalidArgumentError("maxOrigins must be a number greater than 0");
        }
        super();
        if (connect2 && typeof connect2 !== "function") {
          connect2 = { ...connect2 };
        }
        this[kOptions] = { ...util3.deepClone(options), maxOrigins, connect: connect2 };
        this[kFactory] = factory2;
        this[kClients] = /* @__PURE__ */ new Map();
        this[kOrigins] = /* @__PURE__ */ new Set();
        this[kOnDrain] = (origin2, targets) => {
          this.emit("drain", origin2, [this, ...targets]);
        };
        this[kOnConnect] = (origin2, targets) => {
          this.emit("connect", origin2, [this, ...targets]);
        };
        this[kOnDisconnect] = (origin2, targets, err2) => {
          this.emit("disconnect", origin2, [this, ...targets], err2);
        };
        this[kOnConnectionError] = (origin2, targets, err2) => {
          this.emit("connectionError", origin2, [this, ...targets], err2);
        };
      }
      get [kRunning]() {
        let ret = 0;
        for (const { dispatcher } of this[kClients].values()) {
          ret += dispatcher[kRunning];
        }
        return ret;
      }
      [kDispatch](opts2, handler) {
        let key;
        if (opts2.origin && (typeof opts2.origin === "string" || opts2.origin instanceof URL)) {
          key = String(opts2.origin);
        } else {
          throw new InvalidArgumentError("opts.origin must be a non-empty string or URL.");
        }
        if (this[kOrigins].size >= this[kOptions].maxOrigins && !this[kOrigins].has(key)) {
          throw new MaxOriginsReachedError();
        }
        const result = this[kClients].get(key);
        let dispatcher = result && result.dispatcher;
        if (!dispatcher) {
          const closeClientIfUnused = (connected) => {
            const result2 = this[kClients].get(key);
            if (result2) {
              if (connected) result2.count -= 1;
              if (result2.count <= 0) {
                this[kClients].delete(key);
                if (!result2.dispatcher.destroyed) {
                  result2.dispatcher.close();
                }
              }
              this[kOrigins].delete(key);
            }
          };
          dispatcher = this[kFactory](opts2.origin, this[kOptions]).on("drain", this[kOnDrain]).on("connect", (origin2, targets) => {
            const result2 = this[kClients].get(key);
            if (result2) {
              result2.count += 1;
            }
            this[kOnConnect](origin2, targets);
          }).on("disconnect", (origin2, targets, err2) => {
            closeClientIfUnused(true);
            this[kOnDisconnect](origin2, targets, err2);
          }).on("connectionError", (origin2, targets, err2) => {
            closeClientIfUnused(false);
            this[kOnConnectionError](origin2, targets, err2);
          });
          this[kClients].set(key, { count: 0, dispatcher });
          this[kOrigins].add(key);
        }
        return dispatcher.dispatch(opts2, handler);
      }
      [kClose]() {
        const closePromises = [];
        for (const { dispatcher } of this[kClients].values()) {
          closePromises.push(dispatcher.close());
        }
        this[kClients].clear();
        return Promise.all(closePromises);
      }
      [kDestroy](err2) {
        const destroyPromises = [];
        for (const { dispatcher } of this[kClients].values()) {
          destroyPromises.push(dispatcher.destroy(err2));
        }
        this[kClients].clear();
        return Promise.all(destroyPromises);
      }
      get stats() {
        const allClientStats = {};
        for (const { dispatcher } of this[kClients].values()) {
          if (dispatcher.stats) {
            allClientStats[dispatcher[kUrl].origin] = dispatcher.stats;
          }
        }
        return allClientStats;
      }
    };
    module.exports = Agent;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/proxy-agent.js
var require_proxy_agent = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/proxy-agent.js"(exports, module) {
    "use strict";
    var { kProxy, kClose, kDestroy, kDispatch } = require_symbols2();
    var Agent = require_agent2();
    var Pool = require_pool();
    var DispatcherBase = require_dispatcher_base();
    var { InvalidArgumentError, RequestAbortedError, SecureProxyConnectionError } = require_errors5();
    var buildConnector = require_connect();
    var Client = require_client();
    var { channels: channels2 } = require_diagnostics();
    var kAgent = Symbol("proxy agent");
    var kClient = Symbol("proxy client");
    var kProxyHeaders = Symbol("proxy headers");
    var kRequestTls = Symbol("request tls settings");
    var kProxyTls = Symbol("proxy tls settings");
    var kConnectEndpoint = Symbol("connect endpoint function");
    var kTunnelProxy = Symbol("tunnel proxy");
    function defaultProtocolPort(protocol) {
      return protocol === "https:" ? 443 : 80;
    }
    function defaultFactory(origin2, opts2) {
      return new Pool(origin2, opts2);
    }
    var noop6 = () => {
    };
    function defaultAgentFactory(origin2, opts2) {
      if (opts2.connections === 1) {
        return new Client(origin2, opts2);
      }
      return new Pool(origin2, opts2);
    }
    var Http1ProxyWrapper = class extends DispatcherBase {
      #client;
      constructor(proxyUrl, { headers = {}, connect: connect2, factory: factory2 }) {
        if (!proxyUrl) {
          throw new InvalidArgumentError("Proxy URL is mandatory");
        }
        super();
        this[kProxyHeaders] = headers;
        if (factory2) {
          this.#client = factory2(proxyUrl, { connect: connect2 });
        } else {
          this.#client = new Client(proxyUrl, { connect: connect2 });
        }
      }
      [kDispatch](opts2, handler) {
        const onHeaders = handler.onHeaders;
        handler.onHeaders = function(statusCode, data2, resume) {
          if (statusCode === 407) {
            if (typeof handler.onError === "function") {
              handler.onError(new InvalidArgumentError("Proxy Authentication Required (407)"));
            }
            return;
          }
          if (onHeaders) onHeaders.call(this, statusCode, data2, resume);
        };
        const {
          origin: origin2,
          path: path3 = "/",
          headers = {}
        } = opts2;
        opts2.path = origin2 + path3;
        if (!("host" in headers) && !("Host" in headers)) {
          const { host } = new URL(origin2);
          headers.host = host;
        }
        opts2.headers = { ...this[kProxyHeaders], ...headers };
        return this.#client[kDispatch](opts2, handler);
      }
      [kClose]() {
        return this.#client.close();
      }
      [kDestroy](err2) {
        return this.#client.destroy(err2);
      }
    };
    var ProxyAgent = class extends DispatcherBase {
      constructor(opts2) {
        if (!opts2 || typeof opts2 === "object" && !(opts2 instanceof URL) && !opts2.uri) {
          throw new InvalidArgumentError("Proxy uri is mandatory");
        }
        const { clientFactory = defaultFactory } = opts2;
        if (typeof clientFactory !== "function") {
          throw new InvalidArgumentError("Proxy opts.clientFactory must be a function.");
        }
        const { proxyTunnel = true } = opts2;
        super();
        const url3 = this.#getUrl(opts2);
        const { href, origin: origin2, port, protocol, username, password, hostname: proxyHostname } = url3;
        this[kProxy] = { uri: href, protocol };
        this[kRequestTls] = opts2.requestTls;
        this[kProxyTls] = opts2.proxyTls;
        this[kProxyHeaders] = opts2.headers || {};
        this[kTunnelProxy] = proxyTunnel;
        if (opts2.auth && opts2.token) {
          throw new InvalidArgumentError("opts.auth cannot be used in combination with opts.token");
        } else if (opts2.auth) {
          this[kProxyHeaders]["proxy-authorization"] = `Basic ${opts2.auth}`;
        } else if (opts2.token) {
          this[kProxyHeaders]["proxy-authorization"] = opts2.token;
        } else if (username && password) {
          this[kProxyHeaders]["proxy-authorization"] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString("base64")}`;
        }
        const connect2 = buildConnector({ ...opts2.proxyTls });
        this[kConnectEndpoint] = buildConnector({ ...opts2.requestTls });
        const agentFactory = opts2.factory || defaultAgentFactory;
        const factory2 = (origin3, options) => {
          const { protocol: protocol2 } = new URL(origin3);
          if (!this[kTunnelProxy] && protocol2 === "http:" && this[kProxy].protocol === "http:") {
            return new Http1ProxyWrapper(this[kProxy].uri, {
              headers: this[kProxyHeaders],
              connect: connect2,
              factory: agentFactory
            });
          }
          return agentFactory(origin3, options);
        };
        this[kClient] = clientFactory(url3, { connect: connect2 });
        this[kAgent] = new Agent({
          ...opts2,
          factory: factory2,
          connect: async (opts3, callback) => {
            let requestedPath = opts3.host;
            if (!opts3.port) {
              requestedPath += `:${defaultProtocolPort(opts3.protocol)}`;
            }
            try {
              const connectParams = {
                origin: origin2,
                port,
                path: requestedPath,
                signal: opts3.signal,
                headers: {
                  ...this[kProxyHeaders],
                  host: opts3.host,
                  ...opts3.connections == null || opts3.connections > 0 ? { "proxy-connection": "keep-alive" } : {}
                },
                servername: this[kProxyTls]?.servername || proxyHostname
              };
              const { socket, statusCode } = await this[kClient].connect(connectParams);
              if (statusCode !== 200) {
                socket.on("error", noop6).destroy();
                callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`));
                return;
              }
              if (channels2.proxyConnected.hasSubscribers) {
                channels2.proxyConnected.publish({
                  socket,
                  connectParams
                });
              }
              if (opts3.protocol !== "https:") {
                callback(null, socket);
                return;
              }
              let servername;
              if (this[kRequestTls]) {
                servername = this[kRequestTls].servername;
              } else {
                servername = opts3.servername;
              }
              this[kConnectEndpoint]({ ...opts3, servername, httpSocket: socket }, callback);
            } catch (err2) {
              if (err2.code === "ERR_TLS_CERT_ALTNAME_INVALID") {
                callback(new SecureProxyConnectionError(err2));
              } else {
                callback(err2);
              }
            }
          }
        });
      }
      dispatch(opts2, handler) {
        const headers = buildHeaders(opts2.headers);
        throwIfProxyAuthIsSent(headers);
        if (headers && !("host" in headers) && !("Host" in headers)) {
          const { host } = new URL(opts2.origin);
          headers.host = host;
        }
        return this[kAgent].dispatch(
          {
            ...opts2,
            headers
          },
          handler
        );
      }
      /**
       * @param {import('../../types/proxy-agent').ProxyAgent.Options | string | URL} opts
       * @returns {URL}
       */
      #getUrl(opts2) {
        if (typeof opts2 === "string") {
          return new URL(opts2);
        } else if (opts2 instanceof URL) {
          return opts2;
        } else {
          return new URL(opts2.uri);
        }
      }
      [kClose]() {
        return Promise.all([
          this[kAgent].close(),
          this[kClient].close()
        ]);
      }
      [kDestroy]() {
        return Promise.all([
          this[kAgent].destroy(),
          this[kClient].destroy()
        ]);
      }
    };
    function buildHeaders(headers) {
      if (Array.isArray(headers)) {
        const headersPair = {};
        for (let i5 = 0; i5 < headers.length; i5 += 2) {
          headersPair[headers[i5]] = headers[i5 + 1];
        }
        return headersPair;
      }
      return headers;
    }
    function throwIfProxyAuthIsSent(headers) {
      const existProxyAuth = headers && Object.keys(headers).find((key) => key.toLowerCase() === "proxy-authorization");
      if (existProxyAuth) {
        throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor");
      }
    }
    module.exports = ProxyAgent;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js
var require_env_http_proxy_agent = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"(exports, module) {
    "use strict";
    var DispatcherBase = require_dispatcher_base();
    var { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols2();
    var ProxyAgent = require_proxy_agent();
    var Agent = require_agent2();
    var DEFAULT_PORTS = {
      "http:": 80,
      "https:": 443
    };
    var EnvHttpProxyAgent = class extends DispatcherBase {
      #noProxyValue = null;
      #noProxyEntries = null;
      #opts = null;
      constructor(opts2 = {}) {
        super();
        this.#opts = opts2;
        const { httpProxy, httpsProxy, noProxy, ...agentOpts } = opts2;
        this[kNoProxyAgent] = new Agent(agentOpts);
        const HTTP_PROXY = httpProxy ?? process.env.http_proxy ?? process.env.HTTP_PROXY;
        if (HTTP_PROXY) {
          this[kHttpProxyAgent] = new ProxyAgent({ ...agentOpts, uri: HTTP_PROXY });
        } else {
          this[kHttpProxyAgent] = this[kNoProxyAgent];
        }
        const HTTPS_PROXY = httpsProxy ?? process.env.https_proxy ?? process.env.HTTPS_PROXY;
        if (HTTPS_PROXY) {
          this[kHttpsProxyAgent] = new ProxyAgent({ ...agentOpts, uri: HTTPS_PROXY });
        } else {
          this[kHttpsProxyAgent] = this[kHttpProxyAgent];
        }
        this.#parseNoProxy();
      }
      [kDispatch](opts2, handler) {
        const url3 = new URL(opts2.origin);
        const agent = this.#getProxyAgentForUrl(url3);
        return agent.dispatch(opts2, handler);
      }
      [kClose]() {
        return Promise.all([
          this[kNoProxyAgent].close(),
          !this[kHttpProxyAgent][kClosed] && this[kHttpProxyAgent].close(),
          !this[kHttpsProxyAgent][kClosed] && this[kHttpsProxyAgent].close()
        ]);
      }
      [kDestroy](err2) {
        return Promise.all([
          this[kNoProxyAgent].destroy(err2),
          !this[kHttpProxyAgent][kDestroyed] && this[kHttpProxyAgent].destroy(err2),
          !this[kHttpsProxyAgent][kDestroyed] && this[kHttpsProxyAgent].destroy(err2)
        ]);
      }
      #getProxyAgentForUrl(url3) {
        let { protocol, host: hostname, port } = url3;
        hostname = hostname.replace(/:\d*$/, "").toLowerCase();
        port = Number.parseInt(port, 10) || DEFAULT_PORTS[protocol] || 0;
        if (!this.#shouldProxy(hostname, port)) {
          return this[kNoProxyAgent];
        }
        if (protocol === "https:") {
          return this[kHttpsProxyAgent];
        }
        return this[kHttpProxyAgent];
      }
      #shouldProxy(hostname, port) {
        if (this.#noProxyChanged) {
          this.#parseNoProxy();
        }
        if (this.#noProxyEntries.length === 0) {
          return true;
        }
        if (this.#noProxyValue === "*") {
          return false;
        }
        for (let i5 = 0; i5 < this.#noProxyEntries.length; i5++) {
          const entry = this.#noProxyEntries[i5];
          if (entry.port && entry.port !== port) {
            continue;
          }
          if (!/^[.*]/.test(entry.hostname)) {
            if (hostname === entry.hostname) {
              return false;
            }
          } else {
            if (hostname.endsWith(entry.hostname.replace(/^\*/, ""))) {
              return false;
            }
          }
        }
        return true;
      }
      #parseNoProxy() {
        const noProxyValue = this.#opts.noProxy ?? this.#noProxyEnv;
        const noProxySplit = noProxyValue.split(/[,\s]/);
        const noProxyEntries = [];
        for (let i5 = 0; i5 < noProxySplit.length; i5++) {
          const entry = noProxySplit[i5];
          if (!entry) {
            continue;
          }
          const parsed = entry.match(/^(.+):(\d+)$/);
          noProxyEntries.push({
            hostname: (parsed ? parsed[1] : entry).toLowerCase(),
            port: parsed ? Number.parseInt(parsed[2], 10) : 0
          });
        }
        this.#noProxyValue = noProxyValue;
        this.#noProxyEntries = noProxyEntries;
      }
      get #noProxyChanged() {
        if (this.#opts.noProxy !== void 0) {
          return false;
        }
        return this.#noProxyValue !== this.#noProxyEnv;
      }
      get #noProxyEnv() {
        return process.env.no_proxy ?? process.env.NO_PROXY ?? "";
      }
    };
    module.exports = EnvHttpProxyAgent;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/retry-handler.js
var require_retry_handler = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/retry-handler.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { kRetryHandlerDefaultRetry } = require_symbols2();
    var { RequestRetryError } = require_errors5();
    var WrapHandler = require_wrap_handler();
    var {
      isDisturbed,
      parseRangeHeader,
      wrapRequestBody
    } = require_util4();
    function calculateRetryAfterHeader(retryAfter) {
      const retryTime = new Date(retryAfter).getTime();
      return isNaN(retryTime) ? 0 : retryTime - Date.now();
    }
    var RetryHandler = class _RetryHandler {
      constructor(opts2, { dispatch, handler }) {
        const { retryOptions, ...dispatchOpts } = opts2;
        const {
          // Retry scoped
          retry: retryFn,
          maxRetries,
          maxTimeout,
          minTimeout,
          timeoutFactor,
          // Response scoped
          methods,
          errorCodes,
          retryAfter,
          statusCodes,
          throwOnError
        } = retryOptions ?? {};
        this.error = null;
        this.dispatch = dispatch;
        this.handler = WrapHandler.wrap(handler);
        this.opts = { ...dispatchOpts, body: wrapRequestBody(opts2.body) };
        this.retryOpts = {
          throwOnError: throwOnError ?? true,
          retry: retryFn ?? _RetryHandler[kRetryHandlerDefaultRetry],
          retryAfter: retryAfter ?? true,
          maxTimeout: maxTimeout ?? 30 * 1e3,
          // 30s,
          minTimeout: minTimeout ?? 500,
          // .5s
          timeoutFactor: timeoutFactor ?? 2,
          maxRetries: maxRetries ?? 5,
          // What errors we should retry
          methods: methods ?? ["GET", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE"],
          // Indicates which errors to retry
          statusCodes: statusCodes ?? [500, 502, 503, 504, 429],
          // List of errors to retry
          errorCodes: errorCodes ?? [
            "ECONNRESET",
            "ECONNREFUSED",
            "ENOTFOUND",
            "ENETDOWN",
            "ENETUNREACH",
            "EHOSTDOWN",
            "EHOSTUNREACH",
            "EPIPE",
            "UND_ERR_SOCKET"
          ]
        };
        this.retryCount = 0;
        this.retryCountCheckpoint = 0;
        this.headersSent = false;
        this.start = 0;
        this.end = null;
        this.etag = null;
      }
      onResponseStartWithRetry(controller, statusCode, headers, statusMessage, err2) {
        if (this.retryOpts.throwOnError) {
          if (this.retryOpts.statusCodes.includes(statusCode) === false) {
            this.headersSent = true;
            this.handler.onResponseStart?.(controller, statusCode, headers, statusMessage);
          } else {
            this.error = err2;
          }
          return;
        }
        if (isDisturbed(this.opts.body)) {
          this.headersSent = true;
          this.handler.onResponseStart?.(controller, statusCode, headers, statusMessage);
          return;
        }
        function shouldRetry(passedErr) {
          if (passedErr) {
            this.headersSent = true;
            this.handler.onResponseStart?.(controller, statusCode, headers, statusMessage);
            controller.resume();
            return;
          }
          this.error = err2;
          controller.resume();
        }
        controller.pause();
        this.retryOpts.retry(
          err2,
          {
            state: { counter: this.retryCount },
            opts: { retryOptions: this.retryOpts, ...this.opts }
          },
          shouldRetry.bind(this)
        );
      }
      onRequestStart(controller, context) {
        if (!this.headersSent) {
          this.handler.onRequestStart?.(controller, context);
        }
      }
      onRequestUpgrade(controller, statusCode, headers, socket) {
        this.handler.onRequestUpgrade?.(controller, statusCode, headers, socket);
      }
      static [kRetryHandlerDefaultRetry](err2, { state, opts: opts2 }, cb) {
        const { statusCode, code, headers } = err2;
        const { method, retryOptions } = opts2;
        const {
          maxRetries,
          minTimeout,
          maxTimeout,
          timeoutFactor,
          statusCodes,
          errorCodes,
          methods
        } = retryOptions;
        const { counter } = state;
        if (code && code !== "UND_ERR_REQ_RETRY" && !errorCodes.includes(code)) {
          cb(err2);
          return;
        }
        if (Array.isArray(methods) && !methods.includes(method)) {
          cb(err2);
          return;
        }
        if (statusCode != null && Array.isArray(statusCodes) && !statusCodes.includes(statusCode)) {
          cb(err2);
          return;
        }
        if (counter > maxRetries) {
          cb(err2);
          return;
        }
        let retryAfterHeader = headers?.["retry-after"];
        if (retryAfterHeader) {
          retryAfterHeader = Number(retryAfterHeader);
          retryAfterHeader = Number.isNaN(retryAfterHeader) ? calculateRetryAfterHeader(headers["retry-after"]) : retryAfterHeader * 1e3;
        }
        const retryTimeout = retryAfterHeader > 0 ? Math.min(retryAfterHeader, maxTimeout) : Math.min(minTimeout * timeoutFactor ** (counter - 1), maxTimeout);
        setTimeout(() => cb(null), retryTimeout);
      }
      onResponseStart(controller, statusCode, headers, statusMessage) {
        this.error = null;
        this.retryCount += 1;
        if (statusCode >= 300) {
          const err2 = new RequestRetryError("Request failed", statusCode, {
            headers,
            data: {
              count: this.retryCount
            }
          });
          this.onResponseStartWithRetry(controller, statusCode, headers, statusMessage, err2);
          return;
        }
        if (this.headersSent) {
          if (statusCode !== 206 && (this.start > 0 || statusCode !== 200)) {
            throw new RequestRetryError("server does not support the range header and the payload was partially consumed", statusCode, {
              headers,
              data: { count: this.retryCount }
            });
          }
          const contentRange = parseRangeHeader(headers["content-range"]);
          if (!contentRange) {
            throw new RequestRetryError("Content-Range mismatch", statusCode, {
              headers,
              data: { count: this.retryCount }
            });
          }
          if (this.etag != null && this.etag !== headers.etag) {
            throw new RequestRetryError("ETag mismatch", statusCode, {
              headers,
              data: { count: this.retryCount }
            });
          }
          const { start: start2, size, end: end2 = size ? size - 1 : null } = contentRange;
          assert3(this.start === start2, "content-range mismatch");
          assert3(this.end == null || this.end === end2, "content-range mismatch");
          return;
        }
        if (this.end == null) {
          if (statusCode === 206) {
            const range2 = parseRangeHeader(headers["content-range"]);
            if (range2 == null) {
              this.headersSent = true;
              this.handler.onResponseStart?.(
                controller,
                statusCode,
                headers,
                statusMessage
              );
              return;
            }
            const { start: start2, size, end: end2 = size ? size - 1 : null } = range2;
            assert3(
              start2 != null && Number.isFinite(start2),
              "content-range mismatch"
            );
            assert3(end2 != null && Number.isFinite(end2), "invalid content-length");
            this.start = start2;
            this.end = end2;
          }
          if (this.end == null) {
            const contentLength = headers["content-length"];
            this.end = contentLength != null ? Number(contentLength) - 1 : null;
          }
          assert3(Number.isFinite(this.start));
          assert3(
            this.end == null || Number.isFinite(this.end),
            "invalid content-length"
          );
          this.resume = true;
          this.etag = headers.etag != null ? headers.etag : null;
          if (this.etag != null && this.etag[0] === "W" && this.etag[1] === "/") {
            this.etag = null;
          }
          this.headersSent = true;
          this.handler.onResponseStart?.(
            controller,
            statusCode,
            headers,
            statusMessage
          );
        } else {
          throw new RequestRetryError("Request failed", statusCode, {
            headers,
            data: { count: this.retryCount }
          });
        }
      }
      onResponseData(controller, chunk3) {
        if (this.error) {
          return;
        }
        this.start += chunk3.length;
        this.handler.onResponseData?.(controller, chunk3);
      }
      onResponseEnd(controller, trailers) {
        if (this.error && this.retryOpts.throwOnError) {
          throw this.error;
        }
        if (!this.error) {
          this.retryCount = 0;
          return this.handler.onResponseEnd?.(controller, trailers);
        }
        this.retry(controller);
      }
      retry(controller) {
        if (this.start !== 0) {
          const headers = { range: `bytes=${this.start}-${this.end ?? ""}` };
          if (this.etag != null) {
            headers["if-match"] = this.etag;
          }
          this.opts = {
            ...this.opts,
            headers: {
              ...this.opts.headers,
              ...headers
            }
          };
        }
        try {
          this.retryCountCheckpoint = this.retryCount;
          this.dispatch(this.opts, this);
        } catch (err2) {
          this.handler.onResponseError?.(controller, err2);
        }
      }
      onResponseError(controller, err2) {
        if (controller?.aborted || isDisturbed(this.opts.body)) {
          this.handler.onResponseError?.(controller, err2);
          return;
        }
        function shouldRetry(returnedErr) {
          if (!returnedErr) {
            this.retry(controller);
            return;
          }
          this.handler?.onResponseError?.(controller, returnedErr);
        }
        if (this.retryCount - this.retryCountCheckpoint > 0) {
          this.retryCount = this.retryCountCheckpoint + (this.retryCount - this.retryCountCheckpoint);
        } else {
          this.retryCount += 1;
        }
        this.retryOpts.retry(
          err2,
          {
            state: { counter: this.retryCount },
            opts: { retryOptions: this.retryOpts, ...this.opts }
          },
          shouldRetry.bind(this)
        );
      }
    };
    module.exports = RetryHandler;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/retry-agent.js
var require_retry_agent = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/retry-agent.js"(exports, module) {
    "use strict";
    var Dispatcher = require_dispatcher();
    var RetryHandler = require_retry_handler();
    var RetryAgent = class extends Dispatcher {
      #agent = null;
      #options = null;
      constructor(agent, options = {}) {
        super(options);
        this.#agent = agent;
        this.#options = options;
      }
      dispatch(opts2, handler) {
        const retry = new RetryHandler({
          ...opts2,
          retryOptions: this.#options
        }, {
          dispatch: this.#agent.dispatch.bind(this.#agent),
          handler
        });
        return this.#agent.dispatch(opts2, retry);
      }
      close() {
        return this.#agent.close();
      }
      destroy() {
        return this.#agent.destroy();
      }
    };
    module.exports = RetryAgent;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/h2c-client.js
var require_h2c_client = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/dispatcher/h2c-client.js"(exports, module) {
    "use strict";
    var { InvalidArgumentError } = require_errors5();
    var Client = require_client();
    var H2CClient = class extends Client {
      constructor(origin2, clientOpts) {
        if (typeof origin2 === "string") {
          origin2 = new URL(origin2);
        }
        if (origin2.protocol !== "http:") {
          throw new InvalidArgumentError(
            "h2c-client: Only h2c protocol is supported"
          );
        }
        const { connect: connect2, maxConcurrentStreams, pipelining, ...opts2 } = clientOpts ?? {};
        let defaultMaxConcurrentStreams = 100;
        let defaultPipelining = 100;
        if (maxConcurrentStreams != null && Number.isInteger(maxConcurrentStreams) && maxConcurrentStreams > 0) {
          defaultMaxConcurrentStreams = maxConcurrentStreams;
        }
        if (pipelining != null && Number.isInteger(pipelining) && pipelining > 0) {
          defaultPipelining = pipelining;
        }
        if (defaultPipelining > defaultMaxConcurrentStreams) {
          throw new InvalidArgumentError(
            "h2c-client: pipelining cannot be greater than maxConcurrentStreams"
          );
        }
        super(origin2, {
          ...opts2,
          maxConcurrentStreams: defaultMaxConcurrentStreams,
          pipelining: defaultPipelining,
          allowH2: true,
          useH2c: true
        });
      }
    };
    module.exports = H2CClient;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/readable.js
var require_readable = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/readable.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { Readable: Readable3 } = __require("node:stream");
    var { RequestAbortedError, NotSupportedError, InvalidArgumentError, AbortError: AbortError3 } = require_errors5();
    var util3 = require_util4();
    var { ReadableStreamFrom } = require_util4();
    var kConsume = Symbol("kConsume");
    var kReading = Symbol("kReading");
    var kBody = Symbol("kBody");
    var kAbort = Symbol("kAbort");
    var kContentType = Symbol("kContentType");
    var kContentLength = Symbol("kContentLength");
    var kUsed = Symbol("kUsed");
    var kBytesRead = Symbol("kBytesRead");
    var noop6 = () => {
    };
    var BodyReadable = class extends Readable3 {
      /**
       * @param {object} opts
       * @param {(this: Readable, size: number) => void} opts.resume
       * @param {() => (void | null)} opts.abort
       * @param {string} [opts.contentType = '']
       * @param {number} [opts.contentLength]
       * @param {number} [opts.highWaterMark = 64 * 1024]
       */
      constructor({
        resume,
        abort,
        contentType = "",
        contentLength,
        highWaterMark = 64 * 1024
        // Same as nodejs fs streams.
      }) {
        super({
          autoDestroy: true,
          read: resume,
          highWaterMark
        });
        this._readableState.dataEmitted = false;
        this[kAbort] = abort;
        this[kConsume] = null;
        this[kBytesRead] = 0;
        this[kBody] = null;
        this[kUsed] = false;
        this[kContentType] = contentType;
        this[kContentLength] = Number.isFinite(contentLength) ? contentLength : null;
        this[kReading] = false;
      }
      /**
       * @param {Error|null} err
       * @param {(error:(Error|null)) => void} callback
       * @returns {void}
       */
      _destroy(err2, callback) {
        if (!err2 && !this._readableState.endEmitted) {
          err2 = new RequestAbortedError();
        }
        if (err2) {
          this[kAbort]();
        }
        if (!this[kUsed]) {
          setImmediate(callback, err2);
        } else {
          callback(err2);
        }
      }
      /**
       * @param {string|symbol} event
       * @param {(...args: any[]) => void} listener
       * @returns {this}
       */
      on(event, listener) {
        if (event === "data" || event === "readable") {
          this[kReading] = true;
          this[kUsed] = true;
        }
        return super.on(event, listener);
      }
      /**
       * @param {string|symbol} event
       * @param {(...args: any[]) => void} listener
       * @returns {this}
       */
      addListener(event, listener) {
        return this.on(event, listener);
      }
      /**
       * @param {string|symbol} event
       * @param {(...args: any[]) => void} listener
       * @returns {this}
       */
      off(event, listener) {
        const ret = super.off(event, listener);
        if (event === "data" || event === "readable") {
          this[kReading] = this.listenerCount("data") > 0 || this.listenerCount("readable") > 0;
        }
        return ret;
      }
      /**
       * @param {string|symbol} event
       * @param {(...args: any[]) => void} listener
       * @returns {this}
       */
      removeListener(event, listener) {
        return this.off(event, listener);
      }
      /**
       * @param {Buffer|null} chunk
       * @returns {boolean}
       */
      push(chunk3) {
        if (chunk3) {
          this[kBytesRead] += chunk3.length;
          if (this[kConsume]) {
            consumePush(this[kConsume], chunk3);
            return this[kReading] ? super.push(chunk3) : true;
          }
        }
        return super.push(chunk3);
      }
      /**
       * Consumes and returns the body as a string.
       *
       * @see https://fetch.spec.whatwg.org/#dom-body-text
       * @returns {Promise<string>}
       */
      text() {
        return consume(this, "text");
      }
      /**
       * Consumes and returns the body as a JavaScript Object.
       *
       * @see https://fetch.spec.whatwg.org/#dom-body-json
       * @returns {Promise<unknown>}
       */
      json() {
        return consume(this, "json");
      }
      /**
       * Consumes and returns the body as a Blob
       *
       * @see https://fetch.spec.whatwg.org/#dom-body-blob
       * @returns {Promise<Blob>}
       */
      blob() {
        return consume(this, "blob");
      }
      /**
       * Consumes and returns the body as an Uint8Array.
       *
       * @see https://fetch.spec.whatwg.org/#dom-body-bytes
       * @returns {Promise<Uint8Array>}
       */
      bytes() {
        return consume(this, "bytes");
      }
      /**
       * Consumes and returns the body as an ArrayBuffer.
       *
       * @see https://fetch.spec.whatwg.org/#dom-body-arraybuffer
       * @returns {Promise<ArrayBuffer>}
       */
      arrayBuffer() {
        return consume(this, "arrayBuffer");
      }
      /**
       * Not implemented
       *
       * @see https://fetch.spec.whatwg.org/#dom-body-formdata
       * @throws {NotSupportedError}
       */
      async formData() {
        throw new NotSupportedError();
      }
      /**
       * Returns true if the body is not null and the body has been consumed.
       * Otherwise, returns false.
       *
       * @see https://fetch.spec.whatwg.org/#dom-body-bodyused
       * @readonly
       * @returns {boolean}
       */
      get bodyUsed() {
        return util3.isDisturbed(this);
      }
      /**
       * @see https://fetch.spec.whatwg.org/#dom-body-body
       * @readonly
       * @returns {ReadableStream}
       */
      get body() {
        if (!this[kBody]) {
          this[kBody] = ReadableStreamFrom(this);
          if (this[kConsume]) {
            this[kBody].getReader();
            assert3(this[kBody].locked);
          }
        }
        return this[kBody];
      }
      /**
       * Dumps the response body by reading `limit` number of bytes.
       * @param {object} opts
       * @param {number} [opts.limit = 131072] Number of bytes to read.
       * @param {AbortSignal} [opts.signal] An AbortSignal to cancel the dump.
       * @returns {Promise<null>}
       */
      dump(opts2) {
        const signal = opts2?.signal;
        if (signal != null && (typeof signal !== "object" || !("aborted" in signal))) {
          return Promise.reject(new InvalidArgumentError("signal must be an AbortSignal"));
        }
        const limit = opts2?.limit && Number.isFinite(opts2.limit) ? opts2.limit : 128 * 1024;
        if (signal?.aborted) {
          return Promise.reject(signal.reason ?? new AbortError3());
        }
        if (this._readableState.closeEmitted) {
          return Promise.resolve(null);
        }
        return new Promise((resolve4, reject) => {
          if (this[kContentLength] && this[kContentLength] > limit || this[kBytesRead] > limit) {
            this.destroy(new AbortError3());
          }
          if (signal) {
            const onAbort = () => {
              this.destroy(signal.reason ?? new AbortError3());
            };
            signal.addEventListener("abort", onAbort);
            this.on("close", function() {
              signal.removeEventListener("abort", onAbort);
              if (signal.aborted) {
                reject(signal.reason ?? new AbortError3());
              } else {
                resolve4(null);
              }
            });
          } else {
            this.on("close", resolve4);
          }
          this.on("error", noop6).on("data", () => {
            if (this[kBytesRead] > limit) {
              this.destroy();
            }
          }).resume();
        });
      }
      /**
       * @param {BufferEncoding} encoding
       * @returns {this}
       */
      setEncoding(encoding) {
        if (Buffer.isEncoding(encoding)) {
          this._readableState.encoding = encoding;
        }
        return this;
      }
    };
    function isLocked(bodyReadable) {
      return bodyReadable[kBody]?.locked === true || bodyReadable[kConsume] !== null;
    }
    function isUnusable(bodyReadable) {
      return util3.isDisturbed(bodyReadable) || isLocked(bodyReadable);
    }
    function consume(stream7, type) {
      assert3(!stream7[kConsume]);
      return new Promise((resolve4, reject) => {
        if (isUnusable(stream7)) {
          const rState = stream7._readableState;
          if (rState.destroyed && rState.closeEmitted === false) {
            stream7.on("error", reject).on("close", () => {
              reject(new TypeError("unusable"));
            });
          } else {
            reject(rState.errored ?? new TypeError("unusable"));
          }
        } else {
          queueMicrotask(() => {
            stream7[kConsume] = {
              type,
              stream: stream7,
              resolve: resolve4,
              reject,
              length: 0,
              body: []
            };
            stream7.on("error", function(err2) {
              consumeFinish(this[kConsume], err2);
            }).on("close", function() {
              if (this[kConsume].body !== null) {
                consumeFinish(this[kConsume], new RequestAbortedError());
              }
            });
            consumeStart(stream7[kConsume]);
          });
        }
      });
    }
    function consumeStart(consume2) {
      if (consume2.body === null) {
        return;
      }
      const { _readableState: state } = consume2.stream;
      if (state.bufferIndex) {
        const start2 = state.bufferIndex;
        const end2 = state.buffer.length;
        for (let n6 = start2; n6 < end2; n6++) {
          consumePush(consume2, state.buffer[n6]);
        }
      } else {
        for (const chunk3 of state.buffer) {
          consumePush(consume2, chunk3);
        }
      }
      if (state.endEmitted) {
        consumeEnd(this[kConsume], this._readableState.encoding);
      } else {
        consume2.stream.on("end", function() {
          consumeEnd(this[kConsume], this._readableState.encoding);
        });
      }
      consume2.stream.resume();
      while (consume2.stream.read() != null) {
      }
    }
    function chunksDecode(chunks, length2, encoding) {
      if (chunks.length === 0 || length2 === 0) {
        return "";
      }
      const buffer = chunks.length === 1 ? chunks[0] : Buffer.concat(chunks, length2);
      const bufferLength = buffer.length;
      const start2 = bufferLength > 2 && buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191 ? 3 : 0;
      if (!encoding || encoding === "utf8" || encoding === "utf-8") {
        return buffer.utf8Slice(start2, bufferLength);
      } else {
        return buffer.subarray(start2, bufferLength).toString(encoding);
      }
    }
    function chunksConcat(chunks, length2) {
      if (chunks.length === 0 || length2 === 0) {
        return new Uint8Array(0);
      }
      if (chunks.length === 1) {
        return new Uint8Array(chunks[0]);
      }
      const buffer = new Uint8Array(Buffer.allocUnsafeSlow(length2).buffer);
      let offset2 = 0;
      for (let i5 = 0; i5 < chunks.length; ++i5) {
        const chunk3 = chunks[i5];
        buffer.set(chunk3, offset2);
        offset2 += chunk3.length;
      }
      return buffer;
    }
    function consumeEnd(consume2, encoding) {
      const { type, body, resolve: resolve4, stream: stream7, length: length2 } = consume2;
      try {
        if (type === "text") {
          resolve4(chunksDecode(body, length2, encoding));
        } else if (type === "json") {
          resolve4(JSON.parse(chunksDecode(body, length2, encoding)));
        } else if (type === "arrayBuffer") {
          resolve4(chunksConcat(body, length2).buffer);
        } else if (type === "blob") {
          resolve4(new Blob(body, { type: stream7[kContentType] }));
        } else if (type === "bytes") {
          resolve4(chunksConcat(body, length2));
        }
        consumeFinish(consume2);
      } catch (err2) {
        stream7.destroy(err2);
      }
    }
    function consumePush(consume2, chunk3) {
      consume2.length += chunk3.length;
      consume2.body.push(chunk3);
    }
    function consumeFinish(consume2, err2) {
      if (consume2.body === null) {
        return;
      }
      if (err2) {
        consume2.reject(err2);
      } else {
        consume2.resolve();
      }
      consume2.type = null;
      consume2.stream = null;
      consume2.resolve = null;
      consume2.reject = null;
      consume2.length = 0;
      consume2.body = null;
    }
    module.exports = {
      Readable: BodyReadable,
      chunksDecode
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/api-request.js
var require_api_request = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/api-request.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { AsyncResource } = __require("node:async_hooks");
    var { Readable: Readable3 } = require_readable();
    var { InvalidArgumentError, RequestAbortedError } = require_errors5();
    var util3 = require_util4();
    function noop6() {
    }
    var RequestHandler = class extends AsyncResource {
      constructor(opts2, callback) {
        if (!opts2 || typeof opts2 !== "object") {
          throw new InvalidArgumentError("invalid opts");
        }
        const { signal, method, opaque, body, onInfo, responseHeaders, highWaterMark } = opts2;
        try {
          if (typeof callback !== "function") {
            throw new InvalidArgumentError("invalid callback");
          }
          if (highWaterMark && (typeof highWaterMark !== "number" || highWaterMark < 0)) {
            throw new InvalidArgumentError("invalid highWaterMark");
          }
          if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") {
            throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");
          }
          if (method === "CONNECT") {
            throw new InvalidArgumentError("invalid method");
          }
          if (onInfo && typeof onInfo !== "function") {
            throw new InvalidArgumentError("invalid onInfo callback");
          }
          super("UNDICI_REQUEST");
        } catch (err2) {
          if (util3.isStream(body)) {
            util3.destroy(body.on("error", noop6), err2);
          }
          throw err2;
        }
        this.method = method;
        this.responseHeaders = responseHeaders || null;
        this.opaque = opaque || null;
        this.callback = callback;
        this.res = null;
        this.abort = null;
        this.body = body;
        this.trailers = {};
        this.context = null;
        this.onInfo = onInfo || null;
        this.highWaterMark = highWaterMark;
        this.reason = null;
        this.removeAbortListener = null;
        if (signal?.aborted) {
          this.reason = signal.reason ?? new RequestAbortedError();
        } else if (signal) {
          this.removeAbortListener = util3.addAbortListener(signal, () => {
            this.reason = signal.reason ?? new RequestAbortedError();
            if (this.res) {
              util3.destroy(this.res.on("error", noop6), this.reason);
            } else if (this.abort) {
              this.abort(this.reason);
            }
          });
        }
      }
      onConnect(abort, context) {
        if (this.reason) {
          abort(this.reason);
          return;
        }
        assert3(this.callback);
        this.abort = abort;
        this.context = context;
      }
      onHeaders(statusCode, rawHeaders, resume, statusMessage) {
        const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this;
        const headers = responseHeaders === "raw" ? util3.parseRawHeaders(rawHeaders) : util3.parseHeaders(rawHeaders);
        if (statusCode < 200) {
          if (this.onInfo) {
            this.onInfo({ statusCode, headers });
          }
          return;
        }
        const parsedHeaders = responseHeaders === "raw" ? util3.parseHeaders(rawHeaders) : headers;
        const contentType = parsedHeaders["content-type"];
        const contentLength = parsedHeaders["content-length"];
        const res = new Readable3({
          resume,
          abort,
          contentType,
          contentLength: this.method !== "HEAD" && contentLength ? Number(contentLength) : null,
          highWaterMark
        });
        if (this.removeAbortListener) {
          res.on("close", this.removeAbortListener);
          this.removeAbortListener = null;
        }
        this.callback = null;
        this.res = res;
        if (callback !== null) {
          try {
            this.runInAsyncScope(callback, null, null, {
              statusCode,
              statusText: statusMessage,
              headers,
              trailers: this.trailers,
              opaque,
              body: res,
              context
            });
          } catch (err2) {
            this.res = null;
            util3.destroy(res.on("error", noop6), err2);
            queueMicrotask(() => {
              throw err2;
            });
          }
        }
      }
      onData(chunk3) {
        return this.res.push(chunk3);
      }
      onComplete(trailers) {
        util3.parseHeaders(trailers, this.trailers);
        this.res.push(null);
      }
      onError(err2) {
        const { res, callback, body, opaque } = this;
        if (callback) {
          this.callback = null;
          queueMicrotask(() => {
            this.runInAsyncScope(callback, null, err2, { opaque });
          });
        }
        if (res) {
          this.res = null;
          queueMicrotask(() => {
            util3.destroy(res.on("error", noop6), err2);
          });
        }
        if (body) {
          this.body = null;
          if (util3.isStream(body)) {
            body.on("error", noop6);
            util3.destroy(body, err2);
          }
        }
        if (this.removeAbortListener) {
          this.removeAbortListener();
          this.removeAbortListener = null;
        }
      }
    };
    function request(opts2, callback) {
      if (callback === void 0) {
        return new Promise((resolve4, reject) => {
          request.call(this, opts2, (err2, data2) => {
            return err2 ? reject(err2) : resolve4(data2);
          });
        });
      }
      try {
        const handler = new RequestHandler(opts2, callback);
        this.dispatch(opts2, handler);
      } catch (err2) {
        if (typeof callback !== "function") {
          throw err2;
        }
        const opaque = opts2?.opaque;
        queueMicrotask(() => callback(err2, { opaque }));
      }
    }
    module.exports = request;
    module.exports.RequestHandler = RequestHandler;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/abort-signal.js
var require_abort_signal = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/abort-signal.js"(exports, module) {
    "use strict";
    var { addAbortListener } = require_util4();
    var { RequestAbortedError } = require_errors5();
    var kListener = Symbol("kListener");
    var kSignal = Symbol("kSignal");
    function abort(self2) {
      if (self2.abort) {
        self2.abort(self2[kSignal]?.reason);
      } else {
        self2.reason = self2[kSignal]?.reason ?? new RequestAbortedError();
      }
      removeSignal(self2);
    }
    function addSignal(self2, signal) {
      self2.reason = null;
      self2[kSignal] = null;
      self2[kListener] = null;
      if (!signal) {
        return;
      }
      if (signal.aborted) {
        abort(self2);
        return;
      }
      self2[kSignal] = signal;
      self2[kListener] = () => {
        abort(self2);
      };
      addAbortListener(self2[kSignal], self2[kListener]);
    }
    function removeSignal(self2) {
      if (!self2[kSignal]) {
        return;
      }
      if ("removeEventListener" in self2[kSignal]) {
        self2[kSignal].removeEventListener("abort", self2[kListener]);
      } else {
        self2[kSignal].removeListener("abort", self2[kListener]);
      }
      self2[kSignal] = null;
      self2[kListener] = null;
    }
    module.exports = {
      addSignal,
      removeSignal
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/api-stream.js
var require_api_stream = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/api-stream.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { finished: finished2 } = __require("node:stream");
    var { AsyncResource } = __require("node:async_hooks");
    var { InvalidArgumentError, InvalidReturnValueError } = require_errors5();
    var util3 = require_util4();
    var { addSignal, removeSignal } = require_abort_signal();
    function noop6() {
    }
    var StreamHandler = class extends AsyncResource {
      constructor(opts2, factory2, callback) {
        if (!opts2 || typeof opts2 !== "object") {
          throw new InvalidArgumentError("invalid opts");
        }
        const { signal, method, opaque, body, onInfo, responseHeaders } = opts2;
        try {
          if (typeof callback !== "function") {
            throw new InvalidArgumentError("invalid callback");
          }
          if (typeof factory2 !== "function") {
            throw new InvalidArgumentError("invalid factory");
          }
          if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") {
            throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");
          }
          if (method === "CONNECT") {
            throw new InvalidArgumentError("invalid method");
          }
          if (onInfo && typeof onInfo !== "function") {
            throw new InvalidArgumentError("invalid onInfo callback");
          }
          super("UNDICI_STREAM");
        } catch (err2) {
          if (util3.isStream(body)) {
            util3.destroy(body.on("error", noop6), err2);
          }
          throw err2;
        }
        this.responseHeaders = responseHeaders || null;
        this.opaque = opaque || null;
        this.factory = factory2;
        this.callback = callback;
        this.res = null;
        this.abort = null;
        this.context = null;
        this.trailers = null;
        this.body = body;
        this.onInfo = onInfo || null;
        if (util3.isStream(body)) {
          body.on("error", (err2) => {
            this.onError(err2);
          });
        }
        addSignal(this, signal);
      }
      onConnect(abort, context) {
        if (this.reason) {
          abort(this.reason);
          return;
        }
        assert3(this.callback);
        this.abort = abort;
        this.context = context;
      }
      onHeaders(statusCode, rawHeaders, resume, statusMessage) {
        const { factory: factory2, opaque, context, responseHeaders } = this;
        const headers = responseHeaders === "raw" ? util3.parseRawHeaders(rawHeaders) : util3.parseHeaders(rawHeaders);
        if (statusCode < 200) {
          if (this.onInfo) {
            this.onInfo({ statusCode, headers });
          }
          return;
        }
        this.factory = null;
        if (factory2 === null) {
          return;
        }
        const res = this.runInAsyncScope(factory2, null, {
          statusCode,
          headers,
          opaque,
          context
        });
        if (!res || typeof res.write !== "function" || typeof res.end !== "function" || typeof res.on !== "function") {
          throw new InvalidReturnValueError("expected Writable");
        }
        finished2(res, { readable: false }, (err2) => {
          const { callback, res: res2, opaque: opaque2, trailers, abort } = this;
          this.res = null;
          if (err2 || !res2?.readable) {
            util3.destroy(res2, err2);
          }
          this.callback = null;
          this.runInAsyncScope(callback, null, err2 || null, { opaque: opaque2, trailers });
          if (err2) {
            abort();
          }
        });
        res.on("drain", resume);
        this.res = res;
        const needDrain = res.writableNeedDrain !== void 0 ? res.writableNeedDrain : res._writableState?.needDrain;
        return needDrain !== true;
      }
      onData(chunk3) {
        const { res } = this;
        return res ? res.write(chunk3) : true;
      }
      onComplete(trailers) {
        const { res } = this;
        removeSignal(this);
        if (!res) {
          return;
        }
        this.trailers = util3.parseHeaders(trailers);
        res.end();
      }
      onError(err2) {
        const { res, callback, opaque, body } = this;
        removeSignal(this);
        this.factory = null;
        if (res) {
          this.res = null;
          util3.destroy(res, err2);
        } else if (callback) {
          this.callback = null;
          queueMicrotask(() => {
            this.runInAsyncScope(callback, null, err2, { opaque });
          });
        }
        if (body) {
          this.body = null;
          util3.destroy(body, err2);
        }
      }
    };
    function stream7(opts2, factory2, callback) {
      if (callback === void 0) {
        return new Promise((resolve4, reject) => {
          stream7.call(this, opts2, factory2, (err2, data2) => {
            return err2 ? reject(err2) : resolve4(data2);
          });
        });
      }
      try {
        const handler = new StreamHandler(opts2, factory2, callback);
        this.dispatch(opts2, handler);
      } catch (err2) {
        if (typeof callback !== "function") {
          throw err2;
        }
        const opaque = opts2?.opaque;
        queueMicrotask(() => callback(err2, { opaque }));
      }
    }
    module.exports = stream7;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/api-pipeline.js
var require_api_pipeline = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/api-pipeline.js"(exports, module) {
    "use strict";
    var {
      Readable: Readable3,
      Duplex: Duplex2,
      PassThrough: PassThrough3
    } = __require("node:stream");
    var assert3 = __require("node:assert");
    var { AsyncResource } = __require("node:async_hooks");
    var {
      InvalidArgumentError,
      InvalidReturnValueError,
      RequestAbortedError
    } = require_errors5();
    var util3 = require_util4();
    var { addSignal, removeSignal } = require_abort_signal();
    function noop6() {
    }
    var kResume = Symbol("resume");
    var PipelineRequest = class extends Readable3 {
      constructor() {
        super({ autoDestroy: true });
        this[kResume] = null;
      }
      _read() {
        const { [kResume]: resume } = this;
        if (resume) {
          this[kResume] = null;
          resume();
        }
      }
      _destroy(err2, callback) {
        this._read();
        callback(err2);
      }
    };
    var PipelineResponse = class extends Readable3 {
      constructor(resume) {
        super({ autoDestroy: true });
        this[kResume] = resume;
      }
      _read() {
        this[kResume]();
      }
      _destroy(err2, callback) {
        if (!err2 && !this._readableState.endEmitted) {
          err2 = new RequestAbortedError();
        }
        callback(err2);
      }
    };
    var PipelineHandler = class extends AsyncResource {
      constructor(opts2, handler) {
        if (!opts2 || typeof opts2 !== "object") {
          throw new InvalidArgumentError("invalid opts");
        }
        if (typeof handler !== "function") {
          throw new InvalidArgumentError("invalid handler");
        }
        const { signal, method, opaque, onInfo, responseHeaders } = opts2;
        if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") {
          throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");
        }
        if (method === "CONNECT") {
          throw new InvalidArgumentError("invalid method");
        }
        if (onInfo && typeof onInfo !== "function") {
          throw new InvalidArgumentError("invalid onInfo callback");
        }
        super("UNDICI_PIPELINE");
        this.opaque = opaque || null;
        this.responseHeaders = responseHeaders || null;
        this.handler = handler;
        this.abort = null;
        this.context = null;
        this.onInfo = onInfo || null;
        this.req = new PipelineRequest().on("error", noop6);
        this.ret = new Duplex2({
          readableObjectMode: opts2.objectMode,
          autoDestroy: true,
          read: () => {
            const { body } = this;
            if (body?.resume) {
              body.resume();
            }
          },
          write: (chunk3, encoding, callback) => {
            const { req } = this;
            if (req.push(chunk3, encoding) || req._readableState.destroyed) {
              callback();
            } else {
              req[kResume] = callback;
            }
          },
          destroy: (err2, callback) => {
            const { body, req, res, ret, abort } = this;
            if (!err2 && !ret._readableState.endEmitted) {
              err2 = new RequestAbortedError();
            }
            if (abort && err2) {
              abort();
            }
            util3.destroy(body, err2);
            util3.destroy(req, err2);
            util3.destroy(res, err2);
            removeSignal(this);
            callback(err2);
          }
        }).on("prefinish", () => {
          const { req } = this;
          req.push(null);
        });
        this.res = null;
        addSignal(this, signal);
      }
      onConnect(abort, context) {
        const { res } = this;
        if (this.reason) {
          abort(this.reason);
          return;
        }
        assert3(!res, "pipeline cannot be retried");
        this.abort = abort;
        this.context = context;
      }
      onHeaders(statusCode, rawHeaders, resume) {
        const { opaque, handler, context } = this;
        if (statusCode < 200) {
          if (this.onInfo) {
            const headers = this.responseHeaders === "raw" ? util3.parseRawHeaders(rawHeaders) : util3.parseHeaders(rawHeaders);
            this.onInfo({ statusCode, headers });
          }
          return;
        }
        this.res = new PipelineResponse(resume);
        let body;
        try {
          this.handler = null;
          const headers = this.responseHeaders === "raw" ? util3.parseRawHeaders(rawHeaders) : util3.parseHeaders(rawHeaders);
          body = this.runInAsyncScope(handler, null, {
            statusCode,
            headers,
            opaque,
            body: this.res,
            context
          });
        } catch (err2) {
          this.res.on("error", noop6);
          throw err2;
        }
        if (!body || typeof body.on !== "function") {
          throw new InvalidReturnValueError("expected Readable");
        }
        body.on("data", (chunk3) => {
          const { ret, body: body2 } = this;
          if (!ret.push(chunk3) && body2.pause) {
            body2.pause();
          }
        }).on("error", (err2) => {
          const { ret } = this;
          util3.destroy(ret, err2);
        }).on("end", () => {
          const { ret } = this;
          ret.push(null);
        }).on("close", () => {
          const { ret } = this;
          if (!ret._readableState.ended) {
            util3.destroy(ret, new RequestAbortedError());
          }
        });
        this.body = body;
      }
      onData(chunk3) {
        const { res } = this;
        return res.push(chunk3);
      }
      onComplete(trailers) {
        const { res } = this;
        res.push(null);
      }
      onError(err2) {
        const { ret } = this;
        this.handler = null;
        util3.destroy(ret, err2);
      }
    };
    function pipeline2(opts2, handler) {
      try {
        const pipelineHandler = new PipelineHandler(opts2, handler);
        this.dispatch({ ...opts2, body: pipelineHandler.req }, pipelineHandler);
        return pipelineHandler.ret;
      } catch (err2) {
        return new PassThrough3().destroy(err2);
      }
    }
    module.exports = pipeline2;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/api-upgrade.js
var require_api_upgrade = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/api-upgrade.js"(exports, module) {
    "use strict";
    var { InvalidArgumentError, SocketError } = require_errors5();
    var { AsyncResource } = __require("node:async_hooks");
    var assert3 = __require("node:assert");
    var util3 = require_util4();
    var { kHTTP2Stream } = require_symbols2();
    var { addSignal, removeSignal } = require_abort_signal();
    var UpgradeHandler = class extends AsyncResource {
      constructor(opts2, callback) {
        if (!opts2 || typeof opts2 !== "object") {
          throw new InvalidArgumentError("invalid opts");
        }
        if (typeof callback !== "function") {
          throw new InvalidArgumentError("invalid callback");
        }
        const { signal, opaque, responseHeaders } = opts2;
        if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") {
          throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");
        }
        super("UNDICI_UPGRADE");
        this.responseHeaders = responseHeaders || null;
        this.opaque = opaque || null;
        this.callback = callback;
        this.abort = null;
        this.context = null;
        addSignal(this, signal);
      }
      onConnect(abort, context) {
        if (this.reason) {
          abort(this.reason);
          return;
        }
        assert3(this.callback);
        this.abort = abort;
        this.context = null;
      }
      onHeaders() {
        throw new SocketError("bad upgrade", null);
      }
      onUpgrade(statusCode, rawHeaders, socket) {
        assert3(socket[kHTTP2Stream] === true ? statusCode === 200 : statusCode === 101);
        const { callback, opaque, context } = this;
        removeSignal(this);
        this.callback = null;
        const headers = this.responseHeaders === "raw" ? util3.parseRawHeaders(rawHeaders) : util3.parseHeaders(rawHeaders);
        this.runInAsyncScope(callback, null, null, {
          headers,
          socket,
          opaque,
          context
        });
      }
      onError(err2) {
        const { callback, opaque } = this;
        removeSignal(this);
        if (callback) {
          this.callback = null;
          queueMicrotask(() => {
            this.runInAsyncScope(callback, null, err2, { opaque });
          });
        }
      }
    };
    function upgrade(opts2, callback) {
      if (callback === void 0) {
        return new Promise((resolve4, reject) => {
          upgrade.call(this, opts2, (err2, data2) => {
            return err2 ? reject(err2) : resolve4(data2);
          });
        });
      }
      try {
        const upgradeHandler = new UpgradeHandler(opts2, callback);
        const upgradeOpts = {
          ...opts2,
          method: opts2.method || "GET",
          upgrade: opts2.protocol || "Websocket"
        };
        this.dispatch(upgradeOpts, upgradeHandler);
      } catch (err2) {
        if (typeof callback !== "function") {
          throw err2;
        }
        const opaque = opts2?.opaque;
        queueMicrotask(() => callback(err2, { opaque }));
      }
    }
    module.exports = upgrade;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/api-connect.js
var require_api_connect = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/api-connect.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { AsyncResource } = __require("node:async_hooks");
    var { InvalidArgumentError, SocketError } = require_errors5();
    var util3 = require_util4();
    var { addSignal, removeSignal } = require_abort_signal();
    var ConnectHandler = class extends AsyncResource {
      constructor(opts2, callback) {
        if (!opts2 || typeof opts2 !== "object") {
          throw new InvalidArgumentError("invalid opts");
        }
        if (typeof callback !== "function") {
          throw new InvalidArgumentError("invalid callback");
        }
        const { signal, opaque, responseHeaders } = opts2;
        if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") {
          throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");
        }
        super("UNDICI_CONNECT");
        this.opaque = opaque || null;
        this.responseHeaders = responseHeaders || null;
        this.callback = callback;
        this.abort = null;
        addSignal(this, signal);
      }
      onConnect(abort, context) {
        if (this.reason) {
          abort(this.reason);
          return;
        }
        assert3(this.callback);
        this.abort = abort;
        this.context = context;
      }
      onHeaders() {
        throw new SocketError("bad connect", null);
      }
      onUpgrade(statusCode, rawHeaders, socket) {
        const { callback, opaque, context } = this;
        removeSignal(this);
        this.callback = null;
        let headers = rawHeaders;
        if (headers != null) {
          headers = this.responseHeaders === "raw" ? util3.parseRawHeaders(rawHeaders) : util3.parseHeaders(rawHeaders);
        }
        this.runInAsyncScope(callback, null, null, {
          statusCode,
          headers,
          socket,
          opaque,
          context
        });
      }
      onError(err2) {
        const { callback, opaque } = this;
        removeSignal(this);
        if (callback) {
          this.callback = null;
          queueMicrotask(() => {
            this.runInAsyncScope(callback, null, err2, { opaque });
          });
        }
      }
    };
    function connect2(opts2, callback) {
      if (callback === void 0) {
        return new Promise((resolve4, reject) => {
          connect2.call(this, opts2, (err2, data2) => {
            return err2 ? reject(err2) : resolve4(data2);
          });
        });
      }
      try {
        const connectHandler = new ConnectHandler(opts2, callback);
        const connectOptions = { ...opts2, method: "CONNECT" };
        this.dispatch(connectOptions, connectHandler);
      } catch (err2) {
        if (typeof callback !== "function") {
          throw err2;
        }
        const opaque = opts2?.opaque;
        queueMicrotask(() => callback(err2, { opaque }));
      }
    }
    module.exports = connect2;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/index.js
var require_api2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/api/index.js"(exports, module) {
    "use strict";
    module.exports.request = require_api_request();
    module.exports.stream = require_api_stream();
    module.exports.pipeline = require_api_pipeline();
    module.exports.upgrade = require_api_upgrade();
    module.exports.connect = require_api_connect();
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-errors.js
var require_mock_errors = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-errors.js"(exports, module) {
    "use strict";
    var { UndiciError } = require_errors5();
    var kMockNotMatchedError = Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED");
    var MockNotMatchedError = class extends UndiciError {
      constructor(message) {
        super(message);
        this.name = "MockNotMatchedError";
        this.message = message || "The request does not match any registered mock dispatches";
        this.code = "UND_MOCK_ERR_MOCK_NOT_MATCHED";
      }
      static [Symbol.hasInstance](instance) {
        return instance && instance[kMockNotMatchedError] === true;
      }
      get [kMockNotMatchedError]() {
        return true;
      }
    };
    module.exports = {
      MockNotMatchedError
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-symbols.js
var require_mock_symbols = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-symbols.js"(exports, module) {
    "use strict";
    module.exports = {
      kAgent: Symbol("agent"),
      kOptions: Symbol("options"),
      kFactory: Symbol("factory"),
      kDispatches: Symbol("dispatches"),
      kDispatchKey: Symbol("dispatch key"),
      kDefaultHeaders: Symbol("default headers"),
      kDefaultTrailers: Symbol("default trailers"),
      kContentLength: Symbol("content length"),
      kMockAgent: Symbol("mock agent"),
      kMockAgentSet: Symbol("mock agent set"),
      kMockAgentGet: Symbol("mock agent get"),
      kMockDispatch: Symbol("mock dispatch"),
      kClose: Symbol("close"),
      kOriginalClose: Symbol("original agent close"),
      kOriginalDispatch: Symbol("original dispatch"),
      kOrigin: Symbol("origin"),
      kIsMockActive: Symbol("is mock active"),
      kNetConnect: Symbol("net connect"),
      kGetNetConnect: Symbol("get net connect"),
      kConnected: Symbol("connected"),
      kIgnoreTrailingSlash: Symbol("ignore trailing slash"),
      kMockAgentMockCallHistoryInstance: Symbol("mock agent mock call history name"),
      kMockAgentRegisterCallHistory: Symbol("mock agent register mock call history"),
      kMockAgentAddCallHistoryLog: Symbol("mock agent add call history log"),
      kMockAgentIsCallHistoryEnabled: Symbol("mock agent is call history enabled"),
      kMockAgentAcceptsNonStandardSearchParameters: Symbol("mock agent accepts non standard search parameters"),
      kMockCallHistoryAddLog: Symbol("mock call history add log")
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-utils.js
var require_mock_utils = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-utils.js"(exports, module) {
    "use strict";
    var { MockNotMatchedError } = require_mock_errors();
    var {
      kDispatches,
      kMockAgent,
      kOriginalDispatch,
      kOrigin,
      kGetNetConnect
    } = require_mock_symbols();
    var { serializePathWithQuery } = require_util4();
    var { STATUS_CODES } = __require("node:http");
    var {
      types: {
        isPromise: isPromise2
      }
    } = __require("node:util");
    var { InvalidArgumentError } = require_errors5();
    function matchValue(match, value2) {
      if (typeof match === "string") {
        return match === value2;
      }
      if (match instanceof RegExp) {
        return match.test(value2);
      }
      if (typeof match === "function") {
        return match(value2) === true;
      }
      return false;
    }
    function lowerCaseEntries(headers) {
      return Object.fromEntries(
        Object.entries(headers).map(([headerName, headerValue]) => {
          return [headerName.toLocaleLowerCase(), headerValue];
        })
      );
    }
    function getHeaderByName(headers, key) {
      if (Array.isArray(headers)) {
        for (let i5 = 0; i5 < headers.length; i5 += 2) {
          if (headers[i5].toLocaleLowerCase() === key.toLocaleLowerCase()) {
            return headers[i5 + 1];
          }
        }
        return void 0;
      } else if (typeof headers.get === "function") {
        return headers.get(key);
      } else {
        return lowerCaseEntries(headers)[key.toLocaleLowerCase()];
      }
    }
    function buildHeadersFromArray(headers) {
      const clone = headers.slice();
      const entries3 = [];
      for (let index2 = 0; index2 < clone.length; index2 += 2) {
        entries3.push([clone[index2], clone[index2 + 1]]);
      }
      return Object.fromEntries(entries3);
    }
    function matchHeaders(mockDispatch2, headers) {
      if (typeof mockDispatch2.headers === "function") {
        if (Array.isArray(headers)) {
          headers = buildHeadersFromArray(headers);
        }
        return mockDispatch2.headers(headers ? lowerCaseEntries(headers) : {});
      }
      if (typeof mockDispatch2.headers === "undefined") {
        return true;
      }
      if (typeof headers !== "object" || typeof mockDispatch2.headers !== "object") {
        return false;
      }
      for (const [matchHeaderName, matchHeaderValue2] of Object.entries(mockDispatch2.headers)) {
        const headerValue = getHeaderByName(headers, matchHeaderName);
        if (!matchValue(matchHeaderValue2, headerValue)) {
          return false;
        }
      }
      return true;
    }
    function normalizeSearchParams(query) {
      if (typeof query !== "string") {
        return query;
      }
      const originalQp = new URLSearchParams(query);
      const normalizedQp = new URLSearchParams();
      for (let [key, value2] of originalQp.entries()) {
        key = key.replace("[]", "");
        const valueRepresentsString = /^(['"]).*\1$/.test(value2);
        if (valueRepresentsString) {
          normalizedQp.append(key, value2);
          continue;
        }
        if (value2.includes(",")) {
          const values = value2.split(",");
          for (const v3 of values) {
            normalizedQp.append(key, v3);
          }
          continue;
        }
        normalizedQp.append(key, value2);
      }
      return normalizedQp;
    }
    function safeUrl(path3) {
      if (typeof path3 !== "string") {
        return path3;
      }
      const pathSegments = path3.split("?", 3);
      if (pathSegments.length !== 2) {
        return path3;
      }
      const qp = new URLSearchParams(pathSegments.pop());
      qp.sort();
      return [...pathSegments, qp.toString()].join("?");
    }
    function matchKey(mockDispatch2, { path: path3, method, body, headers }) {
      const pathMatch = matchValue(mockDispatch2.path, path3);
      const methodMatch = matchValue(mockDispatch2.method, method);
      const bodyMatch = typeof mockDispatch2.body !== "undefined" ? matchValue(mockDispatch2.body, body) : true;
      const headersMatch = matchHeaders(mockDispatch2, headers);
      return pathMatch && methodMatch && bodyMatch && headersMatch;
    }
    function getResponseData(data2) {
      if (Buffer.isBuffer(data2)) {
        return data2;
      } else if (data2 instanceof Uint8Array) {
        return data2;
      } else if (data2 instanceof ArrayBuffer) {
        return data2;
      } else if (typeof data2 === "object") {
        return JSON.stringify(data2);
      } else if (data2) {
        return data2.toString();
      } else {
        return "";
      }
    }
    function getMockDispatch(mockDispatches, key) {
      const basePath = key.query ? serializePathWithQuery(key.path, key.query) : key.path;
      const resolvedPath = typeof basePath === "string" ? safeUrl(basePath) : basePath;
      const resolvedPathWithoutTrailingSlash = removeTrailingSlash(resolvedPath);
      let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path: path3, ignoreTrailingSlash }) => {
        return ignoreTrailingSlash ? matchValue(removeTrailingSlash(safeUrl(path3)), resolvedPathWithoutTrailingSlash) : matchValue(safeUrl(path3), resolvedPath);
      });
      if (matchedMockDispatches.length === 0) {
        throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`);
      }
      matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method));
      if (matchedMockDispatches.length === 0) {
        throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}' on path '${resolvedPath}'`);
      }
      matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== "undefined" ? matchValue(body, key.body) : true);
      if (matchedMockDispatches.length === 0) {
        throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}' on path '${resolvedPath}'`);
      }
      matchedMockDispatches = matchedMockDispatches.filter((mockDispatch2) => matchHeaders(mockDispatch2, key.headers));
      if (matchedMockDispatches.length === 0) {
        const headers = typeof key.headers === "object" ? JSON.stringify(key.headers) : key.headers;
        throw new MockNotMatchedError(`Mock dispatch not matched for headers '${headers}' on path '${resolvedPath}'`);
      }
      return matchedMockDispatches[0];
    }
    function addMockDispatch(mockDispatches, key, data2, opts2) {
      const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false, ...opts2 };
      const replyData = typeof data2 === "function" ? { callback: data2 } : { ...data2 };
      const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } };
      mockDispatches.push(newMockDispatch);
      return newMockDispatch;
    }
    function deleteMockDispatch(mockDispatches, key) {
      const index2 = mockDispatches.findIndex((dispatch) => {
        if (!dispatch.consumed) {
          return false;
        }
        return matchKey(dispatch, key);
      });
      if (index2 !== -1) {
        mockDispatches.splice(index2, 1);
      }
    }
    function removeTrailingSlash(path3) {
      while (path3.endsWith("/")) {
        path3 = path3.slice(0, -1);
      }
      if (path3.length === 0) {
        path3 = "/";
      }
      return path3;
    }
    function buildKey(opts2) {
      const { path: path3, method, body, headers, query } = opts2;
      return {
        path: path3,
        method,
        body,
        headers,
        query
      };
    }
    function generateKeyValues(data2) {
      const keys2 = Object.keys(data2);
      const result = [];
      for (let i5 = 0; i5 < keys2.length; ++i5) {
        const key = keys2[i5];
        const value2 = data2[key];
        const name = Buffer.from(`${key}`);
        if (Array.isArray(value2)) {
          for (let j = 0; j < value2.length; ++j) {
            result.push(name, Buffer.from(`${value2[j]}`));
          }
        } else {
          result.push(name, Buffer.from(`${value2}`));
        }
      }
      return result;
    }
    function getStatusText(statusCode) {
      return STATUS_CODES[statusCode] || "unknown";
    }
    async function getResponse(body) {
      const buffers = [];
      for await (const data2 of body) {
        buffers.push(data2);
      }
      return Buffer.concat(buffers).toString("utf8");
    }
    function mockDispatch(opts2, handler) {
      const key = buildKey(opts2);
      const mockDispatch2 = getMockDispatch(this[kDispatches], key);
      mockDispatch2.timesInvoked++;
      if (mockDispatch2.data.callback) {
        mockDispatch2.data = { ...mockDispatch2.data, ...mockDispatch2.data.callback(opts2) };
      }
      const { data: { statusCode, data: data2, headers, trailers, error }, delay: delay2, persist } = mockDispatch2;
      const { timesInvoked, times } = mockDispatch2;
      mockDispatch2.consumed = !persist && timesInvoked >= times;
      mockDispatch2.pending = timesInvoked < times;
      if (error !== null) {
        deleteMockDispatch(this[kDispatches], key);
        handler.onError(error);
        return true;
      }
      let aborted = false;
      let timer2 = null;
      function abort(err2) {
        if (aborted) {
          return;
        }
        aborted = true;
        if (timer2 !== null) {
          clearTimeout(timer2);
          timer2 = null;
        }
        handler.onError(err2);
      }
      handler.onConnect?.(abort, null);
      if (typeof delay2 === "number" && delay2 > 0) {
        timer2 = setTimeout(() => {
          timer2 = null;
          handleReply(this[kDispatches]);
        }, delay2);
      } else {
        handleReply(this[kDispatches]);
      }
      function handleReply(mockDispatches, _data = data2) {
        if (aborted) {
          return;
        }
        const optsHeaders = Array.isArray(opts2.headers) ? buildHeadersFromArray(opts2.headers) : opts2.headers;
        const body = typeof _data === "function" ? _data({ ...opts2, headers: optsHeaders }) : _data;
        if (isPromise2(body)) {
          return body.then((newData) => handleReply(mockDispatches, newData));
        }
        if (aborted) {
          return;
        }
        const responseData = getResponseData(body);
        const responseHeaders = generateKeyValues(headers);
        const responseTrailers = generateKeyValues(trailers);
        handler.onHeaders?.(statusCode, responseHeaders, resume, getStatusText(statusCode));
        handler.onData?.(Buffer.from(responseData));
        handler.onComplete?.(responseTrailers);
        deleteMockDispatch(mockDispatches, key);
      }
      function resume() {
      }
      return true;
    }
    function buildMockDispatch() {
      const agent = this[kMockAgent];
      const origin2 = this[kOrigin];
      const originalDispatch = this[kOriginalDispatch];
      return function dispatch(opts2, handler) {
        if (agent.isMockActive) {
          try {
            mockDispatch.call(this, opts2, handler);
          } catch (error) {
            if (error.code === "UND_MOCK_ERR_MOCK_NOT_MATCHED") {
              const netConnect = agent[kGetNetConnect]();
              if (netConnect === false) {
                throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin2} was not allowed (net.connect disabled)`);
              }
              if (checkNetConnect(netConnect, origin2)) {
                originalDispatch.call(this, opts2, handler);
              } else {
                throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin2} was not allowed (net.connect is not enabled for this origin)`);
              }
            } else {
              throw error;
            }
          }
        } else {
          originalDispatch.call(this, opts2, handler);
        }
      };
    }
    function checkNetConnect(netConnect, origin2) {
      const url3 = new URL(origin2);
      if (netConnect === true) {
        return true;
      } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url3.host))) {
        return true;
      }
      return false;
    }
    function normalizeOrigin(origin2) {
      if (typeof origin2 !== "string" && !(origin2 instanceof URL)) {
        return origin2;
      }
      if (origin2 instanceof URL) {
        return origin2.origin;
      }
      return origin2.toLowerCase();
    }
    function buildAndValidateMockOptions(opts2) {
      const { agent, ...mockOptions } = opts2;
      if ("enableCallHistory" in mockOptions && typeof mockOptions.enableCallHistory !== "boolean") {
        throw new InvalidArgumentError("options.enableCallHistory must to be a boolean");
      }
      if ("acceptNonStandardSearchParameters" in mockOptions && typeof mockOptions.acceptNonStandardSearchParameters !== "boolean") {
        throw new InvalidArgumentError("options.acceptNonStandardSearchParameters must to be a boolean");
      }
      if ("ignoreTrailingSlash" in mockOptions && typeof mockOptions.ignoreTrailingSlash !== "boolean") {
        throw new InvalidArgumentError("options.ignoreTrailingSlash must to be a boolean");
      }
      return mockOptions;
    }
    module.exports = {
      getResponseData,
      getMockDispatch,
      addMockDispatch,
      deleteMockDispatch,
      buildKey,
      generateKeyValues,
      matchValue,
      getResponse,
      getStatusText,
      mockDispatch,
      buildMockDispatch,
      checkNetConnect,
      buildAndValidateMockOptions,
      getHeaderByName,
      buildHeadersFromArray,
      normalizeSearchParams,
      normalizeOrigin
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-interceptor.js
var require_mock_interceptor = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-interceptor.js"(exports, module) {
    "use strict";
    var { getResponseData, buildKey, addMockDispatch } = require_mock_utils();
    var {
      kDispatches,
      kDispatchKey,
      kDefaultHeaders,
      kDefaultTrailers,
      kContentLength,
      kMockDispatch,
      kIgnoreTrailingSlash
    } = require_mock_symbols();
    var { InvalidArgumentError } = require_errors5();
    var { serializePathWithQuery } = require_util4();
    var MockScope = class {
      constructor(mockDispatch) {
        this[kMockDispatch] = mockDispatch;
      }
      /**
       * Delay a reply by a set amount in ms.
       */
      delay(waitInMs) {
        if (typeof waitInMs !== "number" || !Number.isInteger(waitInMs) || waitInMs <= 0) {
          throw new InvalidArgumentError("waitInMs must be a valid integer > 0");
        }
        this[kMockDispatch].delay = waitInMs;
        return this;
      }
      /**
       * For a defined reply, never mark as consumed.
       */
      persist() {
        this[kMockDispatch].persist = true;
        return this;
      }
      /**
       * Allow one to define a reply for a set amount of matching requests.
       */
      times(repeatTimes) {
        if (typeof repeatTimes !== "number" || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {
          throw new InvalidArgumentError("repeatTimes must be a valid integer > 0");
        }
        this[kMockDispatch].times = repeatTimes;
        return this;
      }
    };
    var MockInterceptor = class {
      constructor(opts2, mockDispatches) {
        if (typeof opts2 !== "object") {
          throw new InvalidArgumentError("opts must be an object");
        }
        if (typeof opts2.path === "undefined") {
          throw new InvalidArgumentError("opts.path must be defined");
        }
        if (typeof opts2.method === "undefined") {
          opts2.method = "GET";
        }
        if (typeof opts2.path === "string") {
          if (opts2.query) {
            opts2.path = serializePathWithQuery(opts2.path, opts2.query);
          } else {
            const parsedURL = new URL(opts2.path, "data://");
            opts2.path = parsedURL.pathname + parsedURL.search;
          }
        }
        if (typeof opts2.method === "string") {
          opts2.method = opts2.method.toUpperCase();
        }
        this[kDispatchKey] = buildKey(opts2);
        this[kDispatches] = mockDispatches;
        this[kIgnoreTrailingSlash] = opts2.ignoreTrailingSlash ?? false;
        this[kDefaultHeaders] = {};
        this[kDefaultTrailers] = {};
        this[kContentLength] = false;
      }
      createMockScopeDispatchData({ statusCode, data: data2, responseOptions }) {
        const responseData = getResponseData(data2);
        const contentLength = this[kContentLength] ? { "content-length": responseData.length } : {};
        const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers };
        const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers };
        return { statusCode, data: data2, headers, trailers };
      }
      validateReplyParameters(replyParameters) {
        if (typeof replyParameters.statusCode === "undefined") {
          throw new InvalidArgumentError("statusCode must be defined");
        }
        if (typeof replyParameters.responseOptions !== "object" || replyParameters.responseOptions === null) {
          throw new InvalidArgumentError("responseOptions must be an object");
        }
      }
      /**
       * Mock an undici request with a defined reply.
       */
      reply(replyOptionsCallbackOrStatusCode) {
        if (typeof replyOptionsCallbackOrStatusCode === "function") {
          const wrappedDefaultsCallback = (opts2) => {
            const resolvedData = replyOptionsCallbackOrStatusCode(opts2);
            if (typeof resolvedData !== "object" || resolvedData === null) {
              throw new InvalidArgumentError("reply options callback must return an object");
            }
            const replyParameters2 = { data: "", responseOptions: {}, ...resolvedData };
            this.validateReplyParameters(replyParameters2);
            return {
              ...this.createMockScopeDispatchData(replyParameters2)
            };
          };
          const newMockDispatch2 = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback, { ignoreTrailingSlash: this[kIgnoreTrailingSlash] });
          return new MockScope(newMockDispatch2);
        }
        const replyParameters = {
          statusCode: replyOptionsCallbackOrStatusCode,
          data: arguments[1] === void 0 ? "" : arguments[1],
          responseOptions: arguments[2] === void 0 ? {} : arguments[2]
        };
        this.validateReplyParameters(replyParameters);
        const dispatchData = this.createMockScopeDispatchData(replyParameters);
        const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData, { ignoreTrailingSlash: this[kIgnoreTrailingSlash] });
        return new MockScope(newMockDispatch);
      }
      /**
       * Mock an undici request with a defined error.
       */
      replyWithError(error) {
        if (typeof error === "undefined") {
          throw new InvalidArgumentError("error must be defined");
        }
        const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error }, { ignoreTrailingSlash: this[kIgnoreTrailingSlash] });
        return new MockScope(newMockDispatch);
      }
      /**
       * Set default reply headers on the interceptor for subsequent replies
       */
      defaultReplyHeaders(headers) {
        if (typeof headers === "undefined") {
          throw new InvalidArgumentError("headers must be defined");
        }
        this[kDefaultHeaders] = headers;
        return this;
      }
      /**
       * Set default reply trailers on the interceptor for subsequent replies
       */
      defaultReplyTrailers(trailers) {
        if (typeof trailers === "undefined") {
          throw new InvalidArgumentError("trailers must be defined");
        }
        this[kDefaultTrailers] = trailers;
        return this;
      }
      /**
       * Set reply content length header for replies on the interceptor
       */
      replyContentLength() {
        this[kContentLength] = true;
        return this;
      }
    };
    module.exports.MockInterceptor = MockInterceptor;
    module.exports.MockScope = MockScope;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-client.js
var require_mock_client = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-client.js"(exports, module) {
    "use strict";
    var { promisify: promisify4 } = __require("node:util");
    var Client = require_client();
    var { buildMockDispatch } = require_mock_utils();
    var {
      kDispatches,
      kMockAgent,
      kClose,
      kOriginalClose,
      kOrigin,
      kOriginalDispatch,
      kConnected,
      kIgnoreTrailingSlash
    } = require_mock_symbols();
    var { MockInterceptor } = require_mock_interceptor();
    var Symbols = require_symbols2();
    var { InvalidArgumentError } = require_errors5();
    var MockClient = class extends Client {
      constructor(origin2, opts2) {
        if (!opts2 || !opts2.agent || typeof opts2.agent.dispatch !== "function") {
          throw new InvalidArgumentError("Argument opts.agent must implement Agent");
        }
        super(origin2, opts2);
        this[kMockAgent] = opts2.agent;
        this[kOrigin] = origin2;
        this[kIgnoreTrailingSlash] = opts2.ignoreTrailingSlash ?? false;
        this[kDispatches] = [];
        this[kConnected] = 1;
        this[kOriginalDispatch] = this.dispatch;
        this[kOriginalClose] = this.close.bind(this);
        this.dispatch = buildMockDispatch.call(this);
        this.close = this[kClose];
      }
      get [Symbols.kConnected]() {
        return this[kConnected];
      }
      /**
       * Sets up the base interceptor for mocking replies from undici.
       */
      intercept(opts2) {
        return new MockInterceptor(
          opts2 && { ignoreTrailingSlash: this[kIgnoreTrailingSlash], ...opts2 },
          this[kDispatches]
        );
      }
      cleanMocks() {
        this[kDispatches] = [];
      }
      async [kClose]() {
        await promisify4(this[kOriginalClose])();
        this[kConnected] = 0;
        this[kMockAgent][Symbols.kClients].delete(this[kOrigin]);
      }
    };
    module.exports = MockClient;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-call-history.js
var require_mock_call_history = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-call-history.js"(exports, module) {
    "use strict";
    var { kMockCallHistoryAddLog } = require_mock_symbols();
    var { InvalidArgumentError } = require_errors5();
    function handleFilterCallsWithOptions(criteria, options, handler, store) {
      switch (options.operator) {
        case "OR":
          store.push(...handler(criteria));
          return store;
        case "AND":
          return handler.call({ logs: store }, criteria);
        default:
          throw new InvalidArgumentError("options.operator must to be a case insensitive string equal to 'OR' or 'AND'");
      }
    }
    function buildAndValidateFilterCallsOptions(options = {}) {
      const finalOptions = {};
      if ("operator" in options) {
        if (typeof options.operator !== "string" || options.operator.toUpperCase() !== "OR" && options.operator.toUpperCase() !== "AND") {
          throw new InvalidArgumentError("options.operator must to be a case insensitive string equal to 'OR' or 'AND'");
        }
        return {
          ...finalOptions,
          operator: options.operator.toUpperCase()
        };
      }
      return finalOptions;
    }
    function makeFilterCalls(parameterName) {
      return (parameterValue) => {
        if (typeof parameterValue === "string" || parameterValue == null) {
          return this.logs.filter((log2) => {
            return log2[parameterName] === parameterValue;
          });
        }
        if (parameterValue instanceof RegExp) {
          return this.logs.filter((log2) => {
            return parameterValue.test(log2[parameterName]);
          });
        }
        throw new InvalidArgumentError(`${parameterName} parameter should be one of string, regexp, undefined or null`);
      };
    }
    function computeUrlWithMaybeSearchParameters(requestInit) {
      try {
        const url3 = new URL(requestInit.path, requestInit.origin);
        if (url3.search.length !== 0) {
          return url3;
        }
        url3.search = new URLSearchParams(requestInit.query).toString();
        return url3;
      } catch (error) {
        throw new InvalidArgumentError("An error occurred when computing MockCallHistoryLog.url", { cause: error });
      }
    }
    var MockCallHistoryLog = class {
      constructor(requestInit = {}) {
        this.body = requestInit.body;
        this.headers = requestInit.headers;
        this.method = requestInit.method;
        const url3 = computeUrlWithMaybeSearchParameters(requestInit);
        this.fullUrl = url3.toString();
        this.origin = url3.origin;
        this.path = url3.pathname;
        this.searchParams = Object.fromEntries(url3.searchParams);
        this.protocol = url3.protocol;
        this.host = url3.host;
        this.port = url3.port;
        this.hash = url3.hash;
      }
      toMap() {
        return /* @__PURE__ */ new Map(
          [
            ["protocol", this.protocol],
            ["host", this.host],
            ["port", this.port],
            ["origin", this.origin],
            ["path", this.path],
            ["hash", this.hash],
            ["searchParams", this.searchParams],
            ["fullUrl", this.fullUrl],
            ["method", this.method],
            ["body", this.body],
            ["headers", this.headers]
          ]
        );
      }
      toString() {
        const options = { betweenKeyValueSeparator: "->", betweenPairSeparator: "|" };
        let result = "";
        this.toMap().forEach((value2, key) => {
          if (typeof value2 === "string" || value2 === void 0 || value2 === null) {
            result = `${result}${key}${options.betweenKeyValueSeparator}${value2}${options.betweenPairSeparator}`;
          }
          if (typeof value2 === "object" && value2 !== null || Array.isArray(value2)) {
            result = `${result}${key}${options.betweenKeyValueSeparator}${JSON.stringify(value2)}${options.betweenPairSeparator}`;
          }
        });
        return result.slice(0, -1);
      }
    };
    var MockCallHistory = class {
      logs = [];
      calls() {
        return this.logs;
      }
      firstCall() {
        return this.logs.at(0);
      }
      lastCall() {
        return this.logs.at(-1);
      }
      nthCall(number3) {
        if (typeof number3 !== "number") {
          throw new InvalidArgumentError("nthCall must be called with a number");
        }
        if (!Number.isInteger(number3)) {
          throw new InvalidArgumentError("nthCall must be called with an integer");
        }
        if (Math.sign(number3) !== 1) {
          throw new InvalidArgumentError("nthCall must be called with a positive value. use firstCall or lastCall instead");
        }
        return this.logs.at(number3 - 1);
      }
      filterCalls(criteria, options) {
        if (this.logs.length === 0) {
          return this.logs;
        }
        if (typeof criteria === "function") {
          return this.logs.filter(criteria);
        }
        if (criteria instanceof RegExp) {
          return this.logs.filter((log2) => {
            return criteria.test(log2.toString());
          });
        }
        if (typeof criteria === "object" && criteria !== null) {
          if (Object.keys(criteria).length === 0) {
            return this.logs;
          }
          const finalOptions = { operator: "OR", ...buildAndValidateFilterCallsOptions(options) };
          let maybeDuplicatedLogsFiltered = [];
          if ("protocol" in criteria) {
            maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.protocol, finalOptions, this.filterCallsByProtocol, maybeDuplicatedLogsFiltered);
          }
          if ("host" in criteria) {
            maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.host, finalOptions, this.filterCallsByHost, maybeDuplicatedLogsFiltered);
          }
          if ("port" in criteria) {
            maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.port, finalOptions, this.filterCallsByPort, maybeDuplicatedLogsFiltered);
          }
          if ("origin" in criteria) {
            maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.origin, finalOptions, this.filterCallsByOrigin, maybeDuplicatedLogsFiltered);
          }
          if ("path" in criteria) {
            maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.path, finalOptions, this.filterCallsByPath, maybeDuplicatedLogsFiltered);
          }
          if ("hash" in criteria) {
            maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.hash, finalOptions, this.filterCallsByHash, maybeDuplicatedLogsFiltered);
          }
          if ("fullUrl" in criteria) {
            maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.fullUrl, finalOptions, this.filterCallsByFullUrl, maybeDuplicatedLogsFiltered);
          }
          if ("method" in criteria) {
            maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.method, finalOptions, this.filterCallsByMethod, maybeDuplicatedLogsFiltered);
          }
          const uniqLogsFiltered = [...new Set(maybeDuplicatedLogsFiltered)];
          return uniqLogsFiltered;
        }
        throw new InvalidArgumentError("criteria parameter should be one of function, regexp, or object");
      }
      filterCallsByProtocol = makeFilterCalls.call(this, "protocol");
      filterCallsByHost = makeFilterCalls.call(this, "host");
      filterCallsByPort = makeFilterCalls.call(this, "port");
      filterCallsByOrigin = makeFilterCalls.call(this, "origin");
      filterCallsByPath = makeFilterCalls.call(this, "path");
      filterCallsByHash = makeFilterCalls.call(this, "hash");
      filterCallsByFullUrl = makeFilterCalls.call(this, "fullUrl");
      filterCallsByMethod = makeFilterCalls.call(this, "method");
      clear() {
        this.logs = [];
      }
      [kMockCallHistoryAddLog](requestInit) {
        const log2 = new MockCallHistoryLog(requestInit);
        this.logs.push(log2);
        return log2;
      }
      *[Symbol.iterator]() {
        for (const log2 of this.calls()) {
          yield log2;
        }
      }
    };
    module.exports.MockCallHistory = MockCallHistory;
    module.exports.MockCallHistoryLog = MockCallHistoryLog;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-pool.js
var require_mock_pool = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-pool.js"(exports, module) {
    "use strict";
    var { promisify: promisify4 } = __require("node:util");
    var Pool = require_pool();
    var { buildMockDispatch } = require_mock_utils();
    var {
      kDispatches,
      kMockAgent,
      kClose,
      kOriginalClose,
      kOrigin,
      kOriginalDispatch,
      kConnected,
      kIgnoreTrailingSlash
    } = require_mock_symbols();
    var { MockInterceptor } = require_mock_interceptor();
    var Symbols = require_symbols2();
    var { InvalidArgumentError } = require_errors5();
    var MockPool = class extends Pool {
      constructor(origin2, opts2) {
        if (!opts2 || !opts2.agent || typeof opts2.agent.dispatch !== "function") {
          throw new InvalidArgumentError("Argument opts.agent must implement Agent");
        }
        super(origin2, opts2);
        this[kMockAgent] = opts2.agent;
        this[kOrigin] = origin2;
        this[kIgnoreTrailingSlash] = opts2.ignoreTrailingSlash ?? false;
        this[kDispatches] = [];
        this[kConnected] = 1;
        this[kOriginalDispatch] = this.dispatch;
        this[kOriginalClose] = this.close.bind(this);
        this.dispatch = buildMockDispatch.call(this);
        this.close = this[kClose];
      }
      get [Symbols.kConnected]() {
        return this[kConnected];
      }
      /**
       * Sets up the base interceptor for mocking replies from undici.
       */
      intercept(opts2) {
        return new MockInterceptor(
          opts2 && { ignoreTrailingSlash: this[kIgnoreTrailingSlash], ...opts2 },
          this[kDispatches]
        );
      }
      cleanMocks() {
        this[kDispatches] = [];
      }
      async [kClose]() {
        await promisify4(this[kOriginalClose])();
        this[kConnected] = 0;
        this[kMockAgent][Symbols.kClients].delete(this[kOrigin]);
      }
    };
    module.exports = MockPool;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js
var require_pending_interceptors_formatter = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports, module) {
    "use strict";
    var { Transform } = __require("node:stream");
    var { Console } = __require("node:console");
    var PERSISTENT = process.versions.icu ? "\u2705" : "Y ";
    var NOT_PERSISTENT = process.versions.icu ? "\u274C" : "N ";
    module.exports = class PendingInterceptorsFormatter {
      constructor({ disableColors } = {}) {
        this.transform = new Transform({
          transform(chunk3, _enc, cb) {
            cb(null, chunk3);
          }
        });
        this.logger = new Console({
          stdout: this.transform,
          inspectOptions: {
            colors: !disableColors && !process.env.CI
          }
        });
      }
      format(pendingInterceptors) {
        const withPrettyHeaders = pendingInterceptors.map(
          ({ method, path: path3, data: { statusCode }, persist, times, timesInvoked, origin: origin2 }) => ({
            Method: method,
            Origin: origin2,
            Path: path3,
            "Status code": statusCode,
            Persistent: persist ? PERSISTENT : NOT_PERSISTENT,
            Invocations: timesInvoked,
            Remaining: persist ? Infinity : times - timesInvoked
          })
        );
        this.logger.table(withPrettyHeaders);
        return this.transform.read().toString();
      }
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-agent.js
var require_mock_agent = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/mock-agent.js"(exports, module) {
    "use strict";
    var { kClients } = require_symbols2();
    var Agent = require_agent2();
    var {
      kAgent,
      kMockAgentSet,
      kMockAgentGet,
      kDispatches,
      kIsMockActive,
      kNetConnect,
      kGetNetConnect,
      kOptions,
      kFactory,
      kMockAgentRegisterCallHistory,
      kMockAgentIsCallHistoryEnabled,
      kMockAgentAddCallHistoryLog,
      kMockAgentMockCallHistoryInstance,
      kMockAgentAcceptsNonStandardSearchParameters,
      kMockCallHistoryAddLog,
      kIgnoreTrailingSlash
    } = require_mock_symbols();
    var MockClient = require_mock_client();
    var MockPool = require_mock_pool();
    var { matchValue, normalizeSearchParams, buildAndValidateMockOptions, normalizeOrigin } = require_mock_utils();
    var { InvalidArgumentError, UndiciError } = require_errors5();
    var Dispatcher = require_dispatcher();
    var PendingInterceptorsFormatter = require_pending_interceptors_formatter();
    var { MockCallHistory } = require_mock_call_history();
    var MockAgent = class extends Dispatcher {
      constructor(opts2 = {}) {
        super(opts2);
        const mockOptions = buildAndValidateMockOptions(opts2);
        this[kNetConnect] = true;
        this[kIsMockActive] = true;
        this[kMockAgentIsCallHistoryEnabled] = mockOptions.enableCallHistory ?? false;
        this[kMockAgentAcceptsNonStandardSearchParameters] = mockOptions.acceptNonStandardSearchParameters ?? false;
        this[kIgnoreTrailingSlash] = mockOptions.ignoreTrailingSlash ?? false;
        if (opts2?.agent && typeof opts2.agent.dispatch !== "function") {
          throw new InvalidArgumentError("Argument opts.agent must implement Agent");
        }
        const agent = opts2?.agent ? opts2.agent : new Agent(opts2);
        this[kAgent] = agent;
        this[kClients] = agent[kClients];
        this[kOptions] = mockOptions;
        if (this[kMockAgentIsCallHistoryEnabled]) {
          this[kMockAgentRegisterCallHistory]();
        }
      }
      get(origin2) {
        const normalizedOrigin = normalizeOrigin(origin2);
        const originKey = this[kIgnoreTrailingSlash] ? normalizedOrigin.replace(/\/$/, "") : normalizedOrigin;
        let dispatcher = this[kMockAgentGet](originKey);
        if (!dispatcher) {
          dispatcher = this[kFactory](originKey);
          this[kMockAgentSet](originKey, dispatcher);
        }
        return dispatcher;
      }
      dispatch(opts2, handler) {
        opts2.origin = normalizeOrigin(opts2.origin);
        this.get(opts2.origin);
        this[kMockAgentAddCallHistoryLog](opts2);
        const acceptNonStandardSearchParameters = this[kMockAgentAcceptsNonStandardSearchParameters];
        const dispatchOpts = { ...opts2 };
        if (acceptNonStandardSearchParameters && dispatchOpts.path) {
          const [path3, searchParams] = dispatchOpts.path.split("?");
          const normalizedSearchParams = normalizeSearchParams(searchParams, acceptNonStandardSearchParameters);
          dispatchOpts.path = `${path3}?${normalizedSearchParams}`;
        }
        return this[kAgent].dispatch(dispatchOpts, handler);
      }
      async close() {
        this.clearCallHistory();
        await this[kAgent].close();
        this[kClients].clear();
      }
      deactivate() {
        this[kIsMockActive] = false;
      }
      activate() {
        this[kIsMockActive] = true;
      }
      enableNetConnect(matcher) {
        if (typeof matcher === "string" || typeof matcher === "function" || matcher instanceof RegExp) {
          if (Array.isArray(this[kNetConnect])) {
            this[kNetConnect].push(matcher);
          } else {
            this[kNetConnect] = [matcher];
          }
        } else if (typeof matcher === "undefined") {
          this[kNetConnect] = true;
        } else {
          throw new InvalidArgumentError("Unsupported matcher. Must be one of String|Function|RegExp.");
        }
      }
      disableNetConnect() {
        this[kNetConnect] = false;
      }
      enableCallHistory() {
        this[kMockAgentIsCallHistoryEnabled] = true;
        return this;
      }
      disableCallHistory() {
        this[kMockAgentIsCallHistoryEnabled] = false;
        return this;
      }
      getCallHistory() {
        return this[kMockAgentMockCallHistoryInstance];
      }
      clearCallHistory() {
        if (this[kMockAgentMockCallHistoryInstance] !== void 0) {
          this[kMockAgentMockCallHistoryInstance].clear();
        }
      }
      // This is required to bypass issues caused by using global symbols - see:
      // https://github.com/nodejs/undici/issues/1447
      get isMockActive() {
        return this[kIsMockActive];
      }
      [kMockAgentRegisterCallHistory]() {
        if (this[kMockAgentMockCallHistoryInstance] === void 0) {
          this[kMockAgentMockCallHistoryInstance] = new MockCallHistory();
        }
      }
      [kMockAgentAddCallHistoryLog](opts2) {
        if (this[kMockAgentIsCallHistoryEnabled]) {
          this[kMockAgentRegisterCallHistory]();
          this[kMockAgentMockCallHistoryInstance][kMockCallHistoryAddLog](opts2);
        }
      }
      [kMockAgentSet](origin2, dispatcher) {
        this[kClients].set(origin2, { count: 0, dispatcher });
      }
      [kFactory](origin2) {
        const mockOptions = Object.assign({ agent: this }, this[kOptions]);
        return this[kOptions] && this[kOptions].connections === 1 ? new MockClient(origin2, mockOptions) : new MockPool(origin2, mockOptions);
      }
      [kMockAgentGet](origin2) {
        const result = this[kClients].get(origin2);
        if (result?.dispatcher) {
          return result.dispatcher;
        }
        if (typeof origin2 !== "string") {
          const dispatcher = this[kFactory]("http://localhost:9999");
          this[kMockAgentSet](origin2, dispatcher);
          return dispatcher;
        }
        for (const [keyMatcher, result2] of Array.from(this[kClients])) {
          if (result2 && typeof keyMatcher !== "string" && matchValue(keyMatcher, origin2)) {
            const dispatcher = this[kFactory](origin2);
            this[kMockAgentSet](origin2, dispatcher);
            dispatcher[kDispatches] = result2.dispatcher[kDispatches];
            return dispatcher;
          }
        }
      }
      [kGetNetConnect]() {
        return this[kNetConnect];
      }
      pendingInterceptors() {
        const mockAgentClients = this[kClients];
        return Array.from(mockAgentClients.entries()).flatMap(([origin2, result]) => result.dispatcher[kDispatches].map((dispatch) => ({ ...dispatch, origin: origin2 }))).filter(({ pending }) => pending);
      }
      assertNoPendingInterceptors({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {
        const pending = this.pendingInterceptors();
        if (pending.length === 0) {
          return;
        }
        throw new UndiciError(
          pending.length === 1 ? `1 interceptor is pending:

${pendingInterceptorsFormatter.format(pending)}`.trim() : `${pending.length} interceptors are pending:

${pendingInterceptorsFormatter.format(pending)}`.trim()
        );
      }
    };
    module.exports = MockAgent;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/snapshot-utils.js
var require_snapshot_utils = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/snapshot-utils.js"(exports, module) {
    "use strict";
    var { InvalidArgumentError } = require_errors5();
    var { runtimeFeatures } = require_runtime_features();
    function createHeaderFilters(matchOptions = {}) {
      const { ignoreHeaders = [], excludeHeaders = [], matchHeaders = [], caseSensitive = false } = matchOptions;
      return {
        ignore: new Set(ignoreHeaders.map((header) => caseSensitive ? header : header.toLowerCase())),
        exclude: new Set(excludeHeaders.map((header) => caseSensitive ? header : header.toLowerCase())),
        match: new Set(matchHeaders.map((header) => caseSensitive ? header : header.toLowerCase()))
      };
    }
    var crypto5 = runtimeFeatures.has("crypto") ? __require("node:crypto") : null;
    var hashId = crypto5?.hash ? (value2) => crypto5.hash("sha256", value2, "base64url") : (value2) => Buffer.from(value2).toString("base64url");
    function isUndiciHeaders(headers) {
      return Array.isArray(headers) && (headers.length & 1) === 0;
    }
    function isUrlExcludedFactory(excludePatterns = []) {
      if (excludePatterns.length === 0) {
        return () => false;
      }
      return function isUrlExcluded(url3) {
        let urlLowerCased;
        for (const pattern3 of excludePatterns) {
          if (typeof pattern3 === "string") {
            if (!urlLowerCased) {
              urlLowerCased = url3.toLowerCase();
            }
            if (urlLowerCased.includes(pattern3.toLowerCase())) {
              return true;
            }
          } else if (pattern3 instanceof RegExp) {
            if (pattern3.test(url3)) {
              return true;
            }
          }
        }
        return false;
      };
    }
    function normalizeHeaders(headers) {
      const normalizedHeaders = {};
      if (!headers) return normalizedHeaders;
      if (isUndiciHeaders(headers)) {
        for (let i5 = 0; i5 < headers.length; i5 += 2) {
          const key = headers[i5];
          const value2 = headers[i5 + 1];
          if (key && value2 !== void 0) {
            const keyStr = Buffer.isBuffer(key) ? key.toString() : key;
            const valueStr = Buffer.isBuffer(value2) ? value2.toString() : value2;
            normalizedHeaders[keyStr.toLowerCase()] = valueStr;
          }
        }
        return normalizedHeaders;
      }
      if (headers && typeof headers === "object") {
        for (const [key, value2] of Object.entries(headers)) {
          if (key && typeof key === "string") {
            normalizedHeaders[key.toLowerCase()] = Array.isArray(value2) ? value2.join(", ") : String(value2);
          }
        }
      }
      return normalizedHeaders;
    }
    var validSnapshotModes = (
      /** @type {const} */
      ["record", "playback", "update"]
    );
    function validateSnapshotMode(mode) {
      if (!validSnapshotModes.includes(mode)) {
        throw new InvalidArgumentError(`Invalid snapshot mode: ${mode}. Must be one of: ${validSnapshotModes.join(", ")}`);
      }
    }
    module.exports = {
      createHeaderFilters,
      hashId,
      isUndiciHeaders,
      normalizeHeaders,
      isUrlExcludedFactory,
      validateSnapshotMode
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/snapshot-recorder.js
var require_snapshot_recorder = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/snapshot-recorder.js"(exports, module) {
    "use strict";
    var { writeFile: writeFile2, readFile: readFile2, mkdir: mkdir2 } = __require("node:fs/promises");
    var { dirname, resolve: resolve4 } = __require("node:path");
    var { setTimeout: setTimeout2, clearTimeout: clearTimeout2 } = __require("node:timers");
    var { InvalidArgumentError, UndiciError } = require_errors5();
    var { hashId, isUrlExcludedFactory, normalizeHeaders, createHeaderFilters } = require_snapshot_utils();
    function formatRequestKey(opts2, headerFilters, matchOptions = {}) {
      const url3 = new URL(opts2.path, opts2.origin);
      const normalized = opts2._normalizedHeaders || normalizeHeaders(opts2.headers);
      if (!opts2._normalizedHeaders) {
        opts2._normalizedHeaders = normalized;
      }
      return {
        method: opts2.method || "GET",
        url: matchOptions.matchQuery !== false ? url3.toString() : `${url3.origin}${url3.pathname}`,
        headers: filterHeadersForMatching(normalized, headerFilters, matchOptions),
        body: matchOptions.matchBody !== false && opts2.body ? String(opts2.body) : ""
      };
    }
    function filterHeadersForMatching(headers, headerFilters, matchOptions = {}) {
      if (!headers || typeof headers !== "object") return {};
      const {
        caseSensitive = false
      } = matchOptions;
      const filtered = {};
      const { ignore, exclude, match } = headerFilters;
      for (const [key, value2] of Object.entries(headers)) {
        const headerKey = caseSensitive ? key : key.toLowerCase();
        if (exclude.has(headerKey)) continue;
        if (ignore.has(headerKey)) continue;
        if (match.size !== 0) {
          if (!match.has(headerKey)) continue;
        }
        filtered[headerKey] = value2;
      }
      return filtered;
    }
    function filterHeadersForStorage(headers, headerFilters, matchOptions = {}) {
      if (!headers || typeof headers !== "object") return {};
      const {
        caseSensitive = false
      } = matchOptions;
      const filtered = {};
      const { exclude: excludeSet } = headerFilters;
      for (const [key, value2] of Object.entries(headers)) {
        const headerKey = caseSensitive ? key : key.toLowerCase();
        if (excludeSet.has(headerKey)) continue;
        filtered[headerKey] = value2;
      }
      return filtered;
    }
    function createRequestHash(formattedRequest) {
      const parts = [
        formattedRequest.method,
        formattedRequest.url
      ];
      if (formattedRequest.headers && typeof formattedRequest.headers === "object") {
        const headerKeys = Object.keys(formattedRequest.headers).sort();
        for (const key of headerKeys) {
          const values = Array.isArray(formattedRequest.headers[key]) ? formattedRequest.headers[key] : [formattedRequest.headers[key]];
          parts.push(key);
          for (const value2 of values.sort()) {
            parts.push(String(value2));
          }
        }
      }
      parts.push(formattedRequest.body);
      const content = parts.join("|");
      return hashId(content);
    }
    var SnapshotRecorder = class {
      /** @type {NodeJS.Timeout | null} */
      #flushTimeout;
      /** @type {import('./snapshot-utils').IsUrlExcluded} */
      #isUrlExcluded;
      /** @type {Map<string, SnapshotEntry>} */
      #snapshots = /* @__PURE__ */ new Map();
      /** @type {string|undefined} */
      #snapshotPath;
      /** @type {number} */
      #maxSnapshots = Infinity;
      /** @type {boolean} */
      #autoFlush = false;
      /** @type {import('./snapshot-utils').HeaderFilters} */
      #headerFilters;
      /**
       * Creates a new SnapshotRecorder instance
       * @param {SnapshotRecorderOptions&SnapshotRecorderMatchOptions} [options={}] - Configuration options for the recorder
       */
      constructor(options = {}) {
        this.#snapshotPath = options.snapshotPath;
        this.#maxSnapshots = options.maxSnapshots || Infinity;
        this.#autoFlush = options.autoFlush || false;
        this.flushInterval = options.flushInterval || 3e4;
        this._flushTimer = null;
        this.matchOptions = {
          matchHeaders: options.matchHeaders || [],
          // empty means match all headers
          ignoreHeaders: options.ignoreHeaders || [],
          excludeHeaders: options.excludeHeaders || [],
          matchBody: options.matchBody !== false,
          // default: true
          matchQuery: options.matchQuery !== false,
          // default: true
          caseSensitive: options.caseSensitive || false
        };
        this.#headerFilters = createHeaderFilters(this.matchOptions);
        this.shouldRecord = options.shouldRecord || (() => true);
        this.shouldPlayback = options.shouldPlayback || (() => true);
        this.#isUrlExcluded = isUrlExcludedFactory(options.excludeUrls);
        if (this.#autoFlush && this.#snapshotPath) {
          this.#startAutoFlush();
        }
      }
      /**
       * Records a request-response interaction
       * @param {SnapshotRequestOptions} requestOpts - Request options
       * @param {SnapshotEntryResponse} response - Response data to record
       * @return {Promise<void>} - Resolves when the recording is complete
       */
      async record(requestOpts, response) {
        if (!this.shouldRecord(requestOpts)) {
          return;
        }
        if (this.isUrlExcluded(requestOpts)) {
          return;
        }
        const request = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
        const hash = createRequestHash(request);
        const normalizedHeaders = normalizeHeaders(response.headers);
        const responseData = {
          statusCode: response.statusCode,
          headers: filterHeadersForStorage(normalizedHeaders, this.#headerFilters, this.matchOptions),
          body: Buffer.isBuffer(response.body) ? response.body.toString("base64") : Buffer.from(String(response.body || "")).toString("base64"),
          trailers: response.trailers
        };
        if (this.#snapshots.size >= this.#maxSnapshots && !this.#snapshots.has(hash)) {
          const oldestKey = this.#snapshots.keys().next().value;
          this.#snapshots.delete(oldestKey);
        }
        const existingSnapshot = this.#snapshots.get(hash);
        if (existingSnapshot && existingSnapshot.responses) {
          existingSnapshot.responses.push(responseData);
          existingSnapshot.timestamp = (/* @__PURE__ */ new Date()).toISOString();
        } else {
          this.#snapshots.set(hash, {
            request,
            responses: [responseData],
            // Always store as array for consistency
            callCount: 0,
            timestamp: (/* @__PURE__ */ new Date()).toISOString()
          });
        }
        if (this.#autoFlush && this.#snapshotPath) {
          this.#scheduleFlush();
        }
      }
      /**
       * Checks if a URL should be excluded from recording/playback
       * @param {SnapshotRequestOptions} requestOpts - Request options to check
       * @returns {boolean} - True if URL is excluded
       */
      isUrlExcluded(requestOpts) {
        const url3 = new URL(requestOpts.path, requestOpts.origin).toString();
        return this.#isUrlExcluded(url3);
      }
      /**
       * Finds a matching snapshot for the given request
       * Returns the appropriate response based on call count for sequential responses
       *
       * @param {SnapshotRequestOptions} requestOpts - Request options to match
       * @returns {SnapshotEntry&Record<'response', SnapshotEntryResponse>|undefined} - Matching snapshot response or undefined if not found
       */
      findSnapshot(requestOpts) {
        if (!this.shouldPlayback(requestOpts)) {
          return void 0;
        }
        if (this.isUrlExcluded(requestOpts)) {
          return void 0;
        }
        const request = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
        const hash = createRequestHash(request);
        const snapshot = this.#snapshots.get(hash);
        if (!snapshot) return void 0;
        const currentCallCount = snapshot.callCount || 0;
        const responseIndex = Math.min(currentCallCount, snapshot.responses.length - 1);
        snapshot.callCount = currentCallCount + 1;
        return {
          ...snapshot,
          response: snapshot.responses[responseIndex]
        };
      }
      /**
       * Loads snapshots from file
       * @param {string} [filePath] - Optional file path to load snapshots from
       * @return {Promise<void>} - Resolves when snapshots are loaded
       */
      async loadSnapshots(filePath) {
        const path3 = filePath || this.#snapshotPath;
        if (!path3) {
          throw new InvalidArgumentError("Snapshot path is required");
        }
        try {
          const data2 = await readFile2(resolve4(path3), "utf8");
          const parsed = JSON.parse(data2);
          if (Array.isArray(parsed)) {
            this.#snapshots.clear();
            for (const { hash, snapshot } of parsed) {
              this.#snapshots.set(hash, snapshot);
            }
          } else {
            this.#snapshots = new Map(Object.entries(parsed));
          }
        } catch (error) {
          if (error.code === "ENOENT") {
            this.#snapshots.clear();
          } else {
            throw new UndiciError(`Failed to load snapshots from ${path3}`, { cause: error });
          }
        }
      }
      /**
       * Saves snapshots to file
       *
       * @param {string} [filePath] - Optional file path to save snapshots
       * @returns {Promise<void>} - Resolves when snapshots are saved
       */
      async saveSnapshots(filePath) {
        const path3 = filePath || this.#snapshotPath;
        if (!path3) {
          throw new InvalidArgumentError("Snapshot path is required");
        }
        const resolvedPath = resolve4(path3);
        await mkdir2(dirname(resolvedPath), { recursive: true });
        const data2 = Array.from(this.#snapshots.entries()).map(([hash, snapshot]) => ({
          hash,
          snapshot
        }));
        await writeFile2(resolvedPath, JSON.stringify(data2, null, 2), { flush: true });
      }
      /**
       * Clears all recorded snapshots
       * @returns {void}
       */
      clear() {
        this.#snapshots.clear();
      }
      /**
       * Gets all recorded snapshots
       * @return {Array<SnapshotEntry>} - Array of all recorded snapshots
       */
      getSnapshots() {
        return Array.from(this.#snapshots.values());
      }
      /**
       * Gets snapshot count
       * @return {number} - Number of recorded snapshots
       */
      size() {
        return this.#snapshots.size;
      }
      /**
       * Resets call counts for all snapshots (useful for test cleanup)
       * @returns {void}
       */
      resetCallCounts() {
        for (const snapshot of this.#snapshots.values()) {
          snapshot.callCount = 0;
        }
      }
      /**
       * Deletes a specific snapshot by request options
       * @param {SnapshotRequestOptions} requestOpts - Request options to match
       * @returns {boolean} - True if snapshot was deleted, false if not found
       */
      deleteSnapshot(requestOpts) {
        const request = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
        const hash = createRequestHash(request);
        return this.#snapshots.delete(hash);
      }
      /**
       * Gets information about a specific snapshot
       * @param {SnapshotRequestOptions} requestOpts - Request options to match
       * @returns {SnapshotInfo|null} - Snapshot information or null if not found
       */
      getSnapshotInfo(requestOpts) {
        const request = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
        const hash = createRequestHash(request);
        const snapshot = this.#snapshots.get(hash);
        if (!snapshot) return null;
        return {
          hash,
          request: snapshot.request,
          responseCount: snapshot.responses ? snapshot.responses.length : snapshot.response ? 1 : 0,
          // .response for legacy snapshots
          callCount: snapshot.callCount || 0,
          timestamp: snapshot.timestamp
        };
      }
      /**
       * Replaces all snapshots with new data (full replacement)
       * @param {Array<{hash: string; snapshot: SnapshotEntry}>|Record<string, SnapshotEntry>} snapshotData - New snapshot data to replace existing ones
       * @returns {void}
       */
      replaceSnapshots(snapshotData) {
        this.#snapshots.clear();
        if (Array.isArray(snapshotData)) {
          for (const { hash, snapshot } of snapshotData) {
            this.#snapshots.set(hash, snapshot);
          }
        } else if (snapshotData && typeof snapshotData === "object") {
          this.#snapshots = new Map(Object.entries(snapshotData));
        }
      }
      /**
       * Starts the auto-flush timer
       * @returns {void}
       */
      #startAutoFlush() {
        return this.#scheduleFlush();
      }
      /**
       * Stops the auto-flush timer
       * @returns {void}
       */
      #stopAutoFlush() {
        if (this.#flushTimeout) {
          clearTimeout2(this.#flushTimeout);
          this.saveSnapshots().catch(() => {
          });
          this.#flushTimeout = null;
        }
      }
      /**
       * Schedules a flush (debounced to avoid excessive writes)
       */
      #scheduleFlush() {
        this.#flushTimeout = setTimeout2(() => {
          this.saveSnapshots().catch(() => {
          });
          if (this.#autoFlush) {
            this.#flushTimeout?.refresh();
          } else {
            this.#flushTimeout = null;
          }
        }, 1e3);
      }
      /**
       * Cleanup method to stop timers
       * @returns {void}
       */
      destroy() {
        this.#stopAutoFlush();
        if (this.#flushTimeout) {
          clearTimeout2(this.#flushTimeout);
          this.#flushTimeout = null;
        }
      }
      /**
       * Async close method that saves all recordings and performs cleanup
       * @returns {Promise<void>}
       */
      async close() {
        if (this.#snapshotPath && this.#snapshots.size !== 0) {
          await this.saveSnapshots();
        }
        this.destroy();
      }
    };
    module.exports = { SnapshotRecorder, formatRequestKey, createRequestHash, filterHeadersForMatching, filterHeadersForStorage, createHeaderFilters };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/snapshot-agent.js
var require_snapshot_agent = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/mock/snapshot-agent.js"(exports, module) {
    "use strict";
    var Agent = require_agent2();
    var MockAgent = require_mock_agent();
    var { SnapshotRecorder } = require_snapshot_recorder();
    var WrapHandler = require_wrap_handler();
    var { InvalidArgumentError, UndiciError } = require_errors5();
    var { validateSnapshotMode } = require_snapshot_utils();
    var kSnapshotRecorder = Symbol("kSnapshotRecorder");
    var kSnapshotMode = Symbol("kSnapshotMode");
    var kSnapshotPath = Symbol("kSnapshotPath");
    var kSnapshotLoaded = Symbol("kSnapshotLoaded");
    var kRealAgent = Symbol("kRealAgent");
    var warningEmitted = false;
    var SnapshotAgent = class extends MockAgent {
      constructor(opts2 = {}) {
        if (!warningEmitted) {
          process.emitWarning(
            "SnapshotAgent is experimental and subject to change",
            "ExperimentalWarning"
          );
          warningEmitted = true;
        }
        const {
          mode = "record",
          snapshotPath = null,
          ...mockAgentOpts
        } = opts2;
        super(mockAgentOpts);
        validateSnapshotMode(mode);
        if ((mode === "playback" || mode === "update") && !snapshotPath) {
          throw new InvalidArgumentError(`snapshotPath is required when mode is '${mode}'`);
        }
        this[kSnapshotMode] = mode;
        this[kSnapshotPath] = snapshotPath;
        this[kSnapshotRecorder] = new SnapshotRecorder({
          snapshotPath: this[kSnapshotPath],
          mode: this[kSnapshotMode],
          maxSnapshots: opts2.maxSnapshots,
          autoFlush: opts2.autoFlush,
          flushInterval: opts2.flushInterval,
          matchHeaders: opts2.matchHeaders,
          ignoreHeaders: opts2.ignoreHeaders,
          excludeHeaders: opts2.excludeHeaders,
          matchBody: opts2.matchBody,
          matchQuery: opts2.matchQuery,
          caseSensitive: opts2.caseSensitive,
          shouldRecord: opts2.shouldRecord,
          shouldPlayback: opts2.shouldPlayback,
          excludeUrls: opts2.excludeUrls
        });
        this[kSnapshotLoaded] = false;
        if (this[kSnapshotMode] === "record" || this[kSnapshotMode] === "update" || this[kSnapshotMode] === "playback" && opts2.excludeUrls && opts2.excludeUrls.length > 0) {
          this[kRealAgent] = new Agent(opts2);
        }
        if ((this[kSnapshotMode] === "playback" || this[kSnapshotMode] === "update") && this[kSnapshotPath]) {
          this.loadSnapshots().catch(() => {
          });
        }
      }
      dispatch(opts2, handler) {
        handler = WrapHandler.wrap(handler);
        const mode = this[kSnapshotMode];
        if (this[kSnapshotRecorder].isUrlExcluded(opts2)) {
          return this[kRealAgent].dispatch(opts2, handler);
        }
        if (mode === "playback" || mode === "update") {
          if (!this[kSnapshotLoaded]) {
            return this.#asyncDispatch(opts2, handler);
          }
          const snapshot = this[kSnapshotRecorder].findSnapshot(opts2);
          if (snapshot) {
            return this.#replaySnapshot(snapshot, handler);
          } else if (mode === "update") {
            return this.#recordAndReplay(opts2, handler);
          } else {
            const error = new UndiciError(`No snapshot found for ${opts2.method || "GET"} ${opts2.path}`);
            if (handler.onError) {
              handler.onError(error);
              return;
            }
            throw error;
          }
        } else if (mode === "record") {
          return this.#recordAndReplay(opts2, handler);
        }
      }
      /**
       * Async version of dispatch for when we need to load snapshots first
       */
      async #asyncDispatch(opts2, handler) {
        await this.loadSnapshots();
        return this.dispatch(opts2, handler);
      }
      /**
       * Records a real request and replays the response
       */
      #recordAndReplay(opts2, handler) {
        const responseData = {
          statusCode: null,
          headers: {},
          trailers: {},
          body: []
        };
        const self2 = this;
        const recordingHandler = {
          onRequestStart(controller, context) {
            return handler.onRequestStart(controller, { ...context, history: this.history });
          },
          onRequestUpgrade(controller, statusCode, headers, socket) {
            return handler.onRequestUpgrade(controller, statusCode, headers, socket);
          },
          onResponseStart(controller, statusCode, headers, statusMessage) {
            responseData.statusCode = statusCode;
            responseData.headers = headers;
            return handler.onResponseStart(controller, statusCode, headers, statusMessage);
          },
          onResponseData(controller, chunk3) {
            responseData.body.push(chunk3);
            return handler.onResponseData(controller, chunk3);
          },
          onResponseEnd(controller, trailers) {
            responseData.trailers = trailers;
            const responseBody = Buffer.concat(responseData.body);
            self2[kSnapshotRecorder].record(opts2, {
              statusCode: responseData.statusCode,
              headers: responseData.headers,
              body: responseBody,
              trailers: responseData.trailers
            }).then(() => handler.onResponseEnd(controller, trailers)).catch((error) => handler.onResponseError(controller, error));
          }
        };
        const agent = this[kRealAgent];
        return agent.dispatch(opts2, recordingHandler);
      }
      /**
       * Replays a recorded response
       *
       * @param {Object} snapshot - The recorded snapshot to replay.
       * @param {Object} handler - The handler to call with the response data.
       * @returns {void}
       */
      #replaySnapshot(snapshot, handler) {
        try {
          const { response } = snapshot;
          const controller = {
            pause() {
            },
            resume() {
            },
            abort(reason) {
              this.aborted = true;
              this.reason = reason;
            },
            aborted: false,
            paused: false
          };
          handler.onRequestStart(controller);
          handler.onResponseStart(controller, response.statusCode, response.headers);
          const body = Buffer.from(response.body, "base64");
          handler.onResponseData(controller, body);
          handler.onResponseEnd(controller, response.trailers);
        } catch (error) {
          handler.onError?.(error);
        }
      }
      /**
       * Loads snapshots from file
       *
       * @param {string} [filePath] - Optional file path to load snapshots from.
       * @returns {Promise<void>} - Resolves when snapshots are loaded.
       */
      async loadSnapshots(filePath) {
        await this[kSnapshotRecorder].loadSnapshots(filePath || this[kSnapshotPath]);
        this[kSnapshotLoaded] = true;
        if (this[kSnapshotMode] === "playback") {
          this.#setupMockInterceptors();
        }
      }
      /**
       * Saves snapshots to file
       *
       * @param {string} [filePath] - Optional file path to save snapshots to.
       * @returns {Promise<void>} - Resolves when snapshots are saved.
       */
      async saveSnapshots(filePath) {
        return this[kSnapshotRecorder].saveSnapshots(filePath || this[kSnapshotPath]);
      }
      /**
       * Sets up MockAgent interceptors based on recorded snapshots.
       *
       * This method creates MockAgent interceptors for each recorded snapshot,
       * allowing the SnapshotAgent to fall back to MockAgent's standard intercept
       * mechanism in playback mode. Each interceptor is configured to persist
       * (remain active for multiple requests) and responds with the recorded
       * response data.
       *
       * Called automatically when loading snapshots in playback mode.
       *
       * @returns {void}
       */
      #setupMockInterceptors() {
        for (const snapshot of this[kSnapshotRecorder].getSnapshots()) {
          const { request, responses, response } = snapshot;
          const url3 = new URL(request.url);
          const mockPool = this.get(url3.origin);
          const responseData = responses ? responses[0] : response;
          if (!responseData) continue;
          mockPool.intercept({
            path: url3.pathname + url3.search,
            method: request.method,
            headers: request.headers,
            body: request.body
          }).reply(responseData.statusCode, responseData.body, {
            headers: responseData.headers,
            trailers: responseData.trailers
          }).persist();
        }
      }
      /**
       * Gets the snapshot recorder
       * @return {SnapshotRecorder} - The snapshot recorder instance
       */
      getRecorder() {
        return this[kSnapshotRecorder];
      }
      /**
       * Gets the current mode
       * @return {import('./snapshot-utils').SnapshotMode} - The current snapshot mode
       */
      getMode() {
        return this[kSnapshotMode];
      }
      /**
       * Clears all snapshots
       * @returns {void}
       */
      clearSnapshots() {
        this[kSnapshotRecorder].clear();
      }
      /**
       * Resets call counts for all snapshots (useful for test cleanup)
       * @returns {void}
       */
      resetCallCounts() {
        this[kSnapshotRecorder].resetCallCounts();
      }
      /**
       * Deletes a specific snapshot by request options
       * @param {import('./snapshot-recorder').SnapshotRequestOptions} requestOpts - Request options to identify the snapshot
       * @return {Promise<boolean>} - Returns true if the snapshot was deleted, false if not found
       */
      deleteSnapshot(requestOpts) {
        return this[kSnapshotRecorder].deleteSnapshot(requestOpts);
      }
      /**
       * Gets information about a specific snapshot
       * @returns {import('./snapshot-recorder').SnapshotInfo|null} - Snapshot information or null if not found
       */
      getSnapshotInfo(requestOpts) {
        return this[kSnapshotRecorder].getSnapshotInfo(requestOpts);
      }
      /**
       * Replaces all snapshots with new data (full replacement)
       * @param {Array<{hash: string; snapshot: import('./snapshot-recorder').SnapshotEntryshotEntry}>|Record<string, import('./snapshot-recorder').SnapshotEntry>} snapshotData - New snapshot data to replace existing snapshots
       * @returns {void}
       */
      replaceSnapshots(snapshotData) {
        this[kSnapshotRecorder].replaceSnapshots(snapshotData);
      }
      /**
       * Closes the agent, saving snapshots and cleaning up resources.
       *
       * @returns {Promise<void>}
       */
      async close() {
        await this[kSnapshotRecorder].close();
        await this[kRealAgent]?.close();
        await super.close();
      }
    };
    module.exports = SnapshotAgent;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/global.js
var require_global2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/global.js"(exports, module) {
    "use strict";
    var globalDispatcher = Symbol.for("undici.globalDispatcher.1");
    var { InvalidArgumentError } = require_errors5();
    var Agent = require_agent2();
    if (getGlobalDispatcher() === void 0) {
      setGlobalDispatcher(new Agent());
    }
    function setGlobalDispatcher(agent) {
      if (!agent || typeof agent.dispatch !== "function") {
        throw new InvalidArgumentError("Argument agent must implement Agent");
      }
      Object.defineProperty(globalThis, globalDispatcher, {
        value: agent,
        writable: true,
        enumerable: false,
        configurable: false
      });
    }
    function getGlobalDispatcher() {
      return globalThis[globalDispatcher];
    }
    var installedExports = (
      /** @type {const} */
      [
        "fetch",
        "Headers",
        "Response",
        "Request",
        "FormData",
        "WebSocket",
        "CloseEvent",
        "ErrorEvent",
        "MessageEvent",
        "EventSource"
      ]
    );
    module.exports = {
      setGlobalDispatcher,
      getGlobalDispatcher,
      installedExports
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/decorator-handler.js
var require_decorator_handler = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/decorator-handler.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var WrapHandler = require_wrap_handler();
    module.exports = class DecoratorHandler {
      #handler;
      #onCompleteCalled = false;
      #onErrorCalled = false;
      #onResponseStartCalled = false;
      constructor(handler) {
        if (typeof handler !== "object" || handler === null) {
          throw new TypeError("handler must be an object");
        }
        this.#handler = WrapHandler.wrap(handler);
      }
      onRequestStart(...args) {
        this.#handler.onRequestStart?.(...args);
      }
      onRequestUpgrade(...args) {
        assert3(!this.#onCompleteCalled);
        assert3(!this.#onErrorCalled);
        return this.#handler.onRequestUpgrade?.(...args);
      }
      onResponseStart(...args) {
        assert3(!this.#onCompleteCalled);
        assert3(!this.#onErrorCalled);
        assert3(!this.#onResponseStartCalled);
        this.#onResponseStartCalled = true;
        return this.#handler.onResponseStart?.(...args);
      }
      onResponseData(...args) {
        assert3(!this.#onCompleteCalled);
        assert3(!this.#onErrorCalled);
        return this.#handler.onResponseData?.(...args);
      }
      onResponseEnd(...args) {
        assert3(!this.#onCompleteCalled);
        assert3(!this.#onErrorCalled);
        this.#onCompleteCalled = true;
        return this.#handler.onResponseEnd?.(...args);
      }
      onResponseError(...args) {
        this.#onErrorCalled = true;
        return this.#handler.onResponseError?.(...args);
      }
      /**
       * @deprecated
       */
      onBodySent() {
      }
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/redirect-handler.js
var require_redirect_handler = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/redirect-handler.js"(exports, module) {
    "use strict";
    var util3 = require_util4();
    var { kBodyUsed } = require_symbols2();
    var assert3 = __require("node:assert");
    var { InvalidArgumentError } = require_errors5();
    var EE = __require("node:events");
    var redirectableStatusCodes = [300, 301, 302, 303, 307, 308];
    var kBody = Symbol("body");
    var noop6 = () => {
    };
    var BodyAsyncIterable = class {
      constructor(body) {
        this[kBody] = body;
        this[kBodyUsed] = false;
      }
      async *[Symbol.asyncIterator]() {
        assert3(!this[kBodyUsed], "disturbed");
        this[kBodyUsed] = true;
        yield* this[kBody];
      }
    };
    var RedirectHandler = class _RedirectHandler {
      static buildDispatch(dispatcher, maxRedirections) {
        if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {
          throw new InvalidArgumentError("maxRedirections must be a positive number");
        }
        const dispatch = dispatcher.dispatch.bind(dispatcher);
        return (opts2, originalHandler) => dispatch(opts2, new _RedirectHandler(dispatch, maxRedirections, opts2, originalHandler));
      }
      constructor(dispatch, maxRedirections, opts2, handler) {
        if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {
          throw new InvalidArgumentError("maxRedirections must be a positive number");
        }
        this.dispatch = dispatch;
        this.location = null;
        const { maxRedirections: _, ...cleanOpts } = opts2;
        this.opts = cleanOpts;
        this.maxRedirections = maxRedirections;
        this.handler = handler;
        this.history = [];
        if (util3.isStream(this.opts.body)) {
          if (util3.bodyLength(this.opts.body) === 0) {
            this.opts.body.on("data", function() {
              assert3(false);
            });
          }
          if (typeof this.opts.body.readableDidRead !== "boolean") {
            this.opts.body[kBodyUsed] = false;
            EE.prototype.on.call(this.opts.body, "data", function() {
              this[kBodyUsed] = true;
            });
          }
        } else if (this.opts.body && typeof this.opts.body.pipeTo === "function") {
          this.opts.body = new BodyAsyncIterable(this.opts.body);
        } else if (this.opts.body && typeof this.opts.body !== "string" && !ArrayBuffer.isView(this.opts.body) && util3.isIterable(this.opts.body) && !util3.isFormDataLike(this.opts.body)) {
          this.opts.body = new BodyAsyncIterable(this.opts.body);
        }
      }
      onRequestStart(controller, context) {
        this.handler.onRequestStart?.(controller, { ...context, history: this.history });
      }
      onRequestUpgrade(controller, statusCode, headers, socket) {
        this.handler.onRequestUpgrade?.(controller, statusCode, headers, socket);
      }
      onResponseStart(controller, statusCode, headers, statusMessage) {
        if (this.opts.throwOnMaxRedirect && this.history.length >= this.maxRedirections) {
          throw new Error("max redirects");
        }
        if ((statusCode === 301 || statusCode === 302) && this.opts.method === "POST") {
          this.opts.method = "GET";
          if (util3.isStream(this.opts.body)) {
            util3.destroy(this.opts.body.on("error", noop6));
          }
          this.opts.body = null;
        }
        if (statusCode === 303 && this.opts.method !== "HEAD") {
          this.opts.method = "GET";
          if (util3.isStream(this.opts.body)) {
            util3.destroy(this.opts.body.on("error", noop6));
          }
          this.opts.body = null;
        }
        this.location = this.history.length >= this.maxRedirections || util3.isDisturbed(this.opts.body) || redirectableStatusCodes.indexOf(statusCode) === -1 ? null : headers.location;
        if (this.opts.origin) {
          this.history.push(new URL(this.opts.path, this.opts.origin));
        }
        if (!this.location) {
          this.handler.onResponseStart?.(controller, statusCode, headers, statusMessage);
          return;
        }
        const { origin: origin2, pathname, search } = util3.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)));
        const path3 = search ? `${pathname}${search}` : pathname;
        const redirectUrlString = `${origin2}${path3}`;
        for (const historyUrl of this.history) {
          if (historyUrl.toString() === redirectUrlString) {
            throw new InvalidArgumentError(`Redirect loop detected. Cannot redirect to ${origin2}. This typically happens when using a Client or Pool with cross-origin redirects. Use an Agent for cross-origin redirects.`);
          }
        }
        this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin2);
        this.opts.path = path3;
        this.opts.origin = origin2;
        this.opts.query = null;
      }
      onResponseData(controller, chunk3) {
        if (this.location) {
        } else {
          this.handler.onResponseData?.(controller, chunk3);
        }
      }
      onResponseEnd(controller, trailers) {
        if (this.location) {
          this.dispatch(this.opts, this);
        } else {
          this.handler.onResponseEnd(controller, trailers);
        }
      }
      onResponseError(controller, error) {
        this.handler.onResponseError?.(controller, error);
      }
    };
    function shouldRemoveHeader(header, removeContent, unknownOrigin) {
      if (header.length === 4) {
        return util3.headerNameToString(header) === "host";
      }
      if (removeContent && util3.headerNameToString(header).startsWith("content-")) {
        return true;
      }
      if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) {
        const name = util3.headerNameToString(header);
        return name === "authorization" || name === "cookie" || name === "proxy-authorization";
      }
      return false;
    }
    function cleanRequestHeaders(headers, removeContent, unknownOrigin) {
      const ret = [];
      if (Array.isArray(headers)) {
        for (let i5 = 0; i5 < headers.length; i5 += 2) {
          if (!shouldRemoveHeader(headers[i5], removeContent, unknownOrigin)) {
            ret.push(headers[i5], headers[i5 + 1]);
          }
        }
      } else if (headers && typeof headers === "object") {
        const entries3 = typeof headers[Symbol.iterator] === "function" ? headers : Object.entries(headers);
        for (const [key, value2] of entries3) {
          if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {
            ret.push(key, value2);
          }
        }
      } else {
        assert3(headers == null, "headers must be an object or an array");
      }
      return ret;
    }
    module.exports = RedirectHandler;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/redirect.js
var require_redirect = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/redirect.js"(exports, module) {
    "use strict";
    var RedirectHandler = require_redirect_handler();
    function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections } = {}) {
      return (dispatch) => {
        return function Intercept(opts2, handler) {
          const { maxRedirections = defaultMaxRedirections, ...rest } = opts2;
          if (maxRedirections == null || maxRedirections === 0) {
            return dispatch(opts2, handler);
          }
          const dispatchOpts = { ...rest };
          const redirectHandler = new RedirectHandler(dispatch, maxRedirections, dispatchOpts, handler);
          return dispatch(dispatchOpts, redirectHandler);
        };
      };
    }
    module.exports = createRedirectInterceptor;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/response-error.js
var require_response_error = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/response-error.js"(exports, module) {
    "use strict";
    var DecoratorHandler = require_decorator_handler();
    var { ResponseError } = require_errors5();
    var ResponseErrorHandler = class extends DecoratorHandler {
      #statusCode;
      #contentType;
      #decoder;
      #headers;
      #body;
      constructor(_opts, { handler }) {
        super(handler);
      }
      #checkContentType(contentType) {
        return (this.#contentType ?? "").indexOf(contentType) === 0;
      }
      onRequestStart(controller, context) {
        this.#statusCode = 0;
        this.#contentType = null;
        this.#decoder = null;
        this.#headers = null;
        this.#body = "";
        return super.onRequestStart(controller, context);
      }
      onResponseStart(controller, statusCode, headers, statusMessage) {
        this.#statusCode = statusCode;
        this.#headers = headers;
        this.#contentType = headers["content-type"];
        if (this.#statusCode < 400) {
          return super.onResponseStart(controller, statusCode, headers, statusMessage);
        }
        if (this.#checkContentType("application/json") || this.#checkContentType("text/plain")) {
          this.#decoder = new TextDecoder("utf-8");
        }
      }
      onResponseData(controller, chunk3) {
        if (this.#statusCode < 400) {
          return super.onResponseData(controller, chunk3);
        }
        this.#body += this.#decoder?.decode(chunk3, { stream: true }) ?? "";
      }
      onResponseEnd(controller, trailers) {
        if (this.#statusCode >= 400) {
          this.#body += this.#decoder?.decode(void 0, { stream: false }) ?? "";
          if (this.#checkContentType("application/json")) {
            try {
              this.#body = JSON.parse(this.#body);
            } catch {
            }
          }
          let err2;
          const stackTraceLimit = Error.stackTraceLimit;
          Error.stackTraceLimit = 0;
          try {
            err2 = new ResponseError("Response Error", this.#statusCode, {
              body: this.#body,
              headers: this.#headers
            });
          } finally {
            Error.stackTraceLimit = stackTraceLimit;
          }
          super.onResponseError(controller, err2);
        } else {
          super.onResponseEnd(controller, trailers);
        }
      }
      onResponseError(controller, err2) {
        super.onResponseError(controller, err2);
      }
    };
    module.exports = () => {
      return (dispatch) => {
        return function Intercept(opts2, handler) {
          return dispatch(opts2, new ResponseErrorHandler(opts2, { handler }));
        };
      };
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/retry.js
var require_retry3 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/retry.js"(exports, module) {
    "use strict";
    var RetryHandler = require_retry_handler();
    module.exports = (globalOpts) => {
      return (dispatch) => {
        return function retryInterceptor(opts2, handler) {
          return dispatch(
            opts2,
            new RetryHandler(
              { ...opts2, retryOptions: { ...globalOpts, ...opts2.retryOptions } },
              {
                handler,
                dispatch
              }
            )
          );
        };
      };
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/dump.js
var require_dump = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/dump.js"(exports, module) {
    "use strict";
    var { InvalidArgumentError, RequestAbortedError } = require_errors5();
    var DecoratorHandler = require_decorator_handler();
    var DumpHandler = class extends DecoratorHandler {
      #maxSize = 1024 * 1024;
      #dumped = false;
      #size = 0;
      #controller = null;
      aborted = false;
      reason = false;
      constructor({ maxSize, signal }, handler) {
        if (maxSize != null && (!Number.isFinite(maxSize) || maxSize < 1)) {
          throw new InvalidArgumentError("maxSize must be a number greater than 0");
        }
        super(handler);
        this.#maxSize = maxSize ?? this.#maxSize;
      }
      #abort(reason) {
        this.aborted = true;
        this.reason = reason;
      }
      onRequestStart(controller, context) {
        controller.abort = this.#abort.bind(this);
        this.#controller = controller;
        return super.onRequestStart(controller, context);
      }
      onResponseStart(controller, statusCode, headers, statusMessage) {
        const contentLength = headers["content-length"];
        if (contentLength != null && contentLength > this.#maxSize) {
          throw new RequestAbortedError(
            `Response size (${contentLength}) larger than maxSize (${this.#maxSize})`
          );
        }
        if (this.aborted === true) {
          return true;
        }
        return super.onResponseStart(controller, statusCode, headers, statusMessage);
      }
      onResponseError(controller, err2) {
        if (this.#dumped) {
          return;
        }
        err2 = this.#controller?.reason ?? err2;
        super.onResponseError(controller, err2);
      }
      onResponseData(controller, chunk3) {
        this.#size = this.#size + chunk3.length;
        if (this.#size >= this.#maxSize) {
          this.#dumped = true;
          if (this.aborted === true) {
            super.onResponseError(controller, this.reason);
          } else {
            super.onResponseEnd(controller, {});
          }
        }
        return true;
      }
      onResponseEnd(controller, trailers) {
        if (this.#dumped) {
          return;
        }
        if (this.#controller.aborted === true) {
          super.onResponseError(controller, this.reason);
          return;
        }
        super.onResponseEnd(controller, trailers);
      }
    };
    function createDumpInterceptor({ maxSize: defaultMaxSize } = {
      maxSize: 1024 * 1024
    }) {
      return (dispatch) => {
        return function Intercept(opts2, handler) {
          const { dumpMaxSize = defaultMaxSize } = opts2;
          const dumpHandler = new DumpHandler({ maxSize: dumpMaxSize, signal: opts2.signal }, handler);
          return dispatch(opts2, dumpHandler);
        };
      };
    }
    module.exports = createDumpInterceptor;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/dns.js
var require_dns = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/dns.js"(exports, module) {
    "use strict";
    var { isIP } = __require("node:net");
    var { lookup } = __require("node:dns");
    var DecoratorHandler = require_decorator_handler();
    var { InvalidArgumentError, InformationalError } = require_errors5();
    var maxInt = Math.pow(2, 31) - 1;
    var DNSStorage = class {
      #maxItems = 0;
      #records = /* @__PURE__ */ new Map();
      constructor(opts2) {
        this.#maxItems = opts2.maxItems;
      }
      get size() {
        return this.#records.size;
      }
      get(hostname) {
        return this.#records.get(hostname) ?? null;
      }
      set(hostname, records) {
        this.#records.set(hostname, records);
      }
      delete(hostname) {
        this.#records.delete(hostname);
      }
      // Delegate to storage decide can we do more lookups or not
      full() {
        return this.size >= this.#maxItems;
      }
    };
    var DNSInstance = class {
      #maxTTL = 0;
      #maxItems = 0;
      dualStack = true;
      affinity = null;
      lookup = null;
      pick = null;
      storage = null;
      constructor(opts2) {
        this.#maxTTL = opts2.maxTTL;
        this.#maxItems = opts2.maxItems;
        this.dualStack = opts2.dualStack;
        this.affinity = opts2.affinity;
        this.lookup = opts2.lookup ?? this.#defaultLookup;
        this.pick = opts2.pick ?? this.#defaultPick;
        this.storage = opts2.storage ?? new DNSStorage(opts2);
      }
      runLookup(origin2, opts2, cb) {
        const ips = this.storage.get(origin2.hostname);
        if (ips == null && this.storage.full()) {
          cb(null, origin2);
          return;
        }
        const newOpts = {
          affinity: this.affinity,
          dualStack: this.dualStack,
          lookup: this.lookup,
          pick: this.pick,
          ...opts2.dns,
          maxTTL: this.#maxTTL,
          maxItems: this.#maxItems
        };
        if (ips == null) {
          this.lookup(origin2, newOpts, (err2, addresses) => {
            if (err2 || addresses == null || addresses.length === 0) {
              cb(err2 ?? new InformationalError("No DNS entries found"));
              return;
            }
            this.setRecords(origin2, addresses);
            const records = this.storage.get(origin2.hostname);
            const ip = this.pick(
              origin2,
              records,
              newOpts.affinity
            );
            let port;
            if (typeof ip.port === "number") {
              port = `:${ip.port}`;
            } else if (origin2.port !== "") {
              port = `:${origin2.port}`;
            } else {
              port = "";
            }
            cb(
              null,
              new URL(`${origin2.protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}`)
            );
          });
        } else {
          const ip = this.pick(
            origin2,
            ips,
            newOpts.affinity
          );
          if (ip == null) {
            this.storage.delete(origin2.hostname);
            this.runLookup(origin2, opts2, cb);
            return;
          }
          let port;
          if (typeof ip.port === "number") {
            port = `:${ip.port}`;
          } else if (origin2.port !== "") {
            port = `:${origin2.port}`;
          } else {
            port = "";
          }
          cb(
            null,
            new URL(`${origin2.protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}`)
          );
        }
      }
      #defaultLookup(origin2, opts2, cb) {
        lookup(
          origin2.hostname,
          {
            all: true,
            family: this.dualStack === false ? this.affinity : 0,
            order: "ipv4first"
          },
          (err2, addresses) => {
            if (err2) {
              return cb(err2);
            }
            const results = /* @__PURE__ */ new Map();
            for (const addr of addresses) {
              results.set(`${addr.address}:${addr.family}`, addr);
            }
            cb(null, results.values());
          }
        );
      }
      #defaultPick(origin2, hostnameRecords, affinity) {
        let ip = null;
        const { records, offset: offset2 } = hostnameRecords;
        let family;
        if (this.dualStack) {
          if (affinity == null) {
            if (offset2 == null || offset2 === maxInt) {
              hostnameRecords.offset = 0;
              affinity = 4;
            } else {
              hostnameRecords.offset++;
              affinity = (hostnameRecords.offset & 1) === 1 ? 6 : 4;
            }
          }
          if (records[affinity] != null && records[affinity].ips.length > 0) {
            family = records[affinity];
          } else {
            family = records[affinity === 4 ? 6 : 4];
          }
        } else {
          family = records[affinity];
        }
        if (family == null || family.ips.length === 0) {
          return ip;
        }
        if (family.offset == null || family.offset === maxInt) {
          family.offset = 0;
        } else {
          family.offset++;
        }
        const position = family.offset % family.ips.length;
        ip = family.ips[position] ?? null;
        if (ip == null) {
          return ip;
        }
        if (Date.now() - ip.timestamp > ip.ttl) {
          family.ips.splice(position, 1);
          return this.pick(origin2, hostnameRecords, affinity);
        }
        return ip;
      }
      pickFamily(origin2, ipFamily) {
        const records = this.storage.get(origin2.hostname)?.records;
        if (!records) {
          return null;
        }
        const family = records[ipFamily];
        if (!family) {
          return null;
        }
        if (family.offset == null || family.offset === maxInt) {
          family.offset = 0;
        } else {
          family.offset++;
        }
        const position = family.offset % family.ips.length;
        const ip = family.ips[position] ?? null;
        if (ip == null) {
          return ip;
        }
        if (Date.now() - ip.timestamp > ip.ttl) {
          family.ips.splice(position, 1);
        }
        return ip;
      }
      setRecords(origin2, addresses) {
        const timestamp = Date.now();
        const records = { records: { 4: null, 6: null } };
        let minTTL = this.#maxTTL;
        for (const record of addresses) {
          record.timestamp = timestamp;
          if (typeof record.ttl === "number") {
            record.ttl = Math.min(record.ttl, this.#maxTTL);
            minTTL = Math.min(minTTL, record.ttl);
          } else {
            record.ttl = this.#maxTTL;
          }
          const familyRecords = records.records[record.family] ?? { ips: [] };
          familyRecords.ips.push(record);
          records.records[record.family] = familyRecords;
        }
        this.storage.set(origin2.hostname, records, { ttl: minTTL });
      }
      deleteRecords(origin2) {
        this.storage.delete(origin2.hostname);
      }
      getHandler(meta, opts2) {
        return new DNSDispatchHandler(this, meta, opts2);
      }
    };
    var DNSDispatchHandler = class extends DecoratorHandler {
      #state = null;
      #opts = null;
      #dispatch = null;
      #origin = null;
      #controller = null;
      #newOrigin = null;
      #firstTry = true;
      constructor(state, { origin: origin2, handler, dispatch, newOrigin }, opts2) {
        super(handler);
        this.#origin = origin2;
        this.#newOrigin = newOrigin;
        this.#opts = { ...opts2 };
        this.#state = state;
        this.#dispatch = dispatch;
      }
      onResponseError(controller, err2) {
        switch (err2.code) {
          case "ETIMEDOUT":
          case "ECONNREFUSED": {
            if (this.#state.dualStack) {
              if (!this.#firstTry) {
                super.onResponseError(controller, err2);
                return;
              }
              this.#firstTry = false;
              const otherFamily = this.#newOrigin.hostname[0] === "[" ? 4 : 6;
              const ip = this.#state.pickFamily(this.#origin, otherFamily);
              if (ip == null) {
                super.onResponseError(controller, err2);
                return;
              }
              let port;
              if (typeof ip.port === "number") {
                port = `:${ip.port}`;
              } else if (this.#origin.port !== "") {
                port = `:${this.#origin.port}`;
              } else {
                port = "";
              }
              const dispatchOpts = {
                ...this.#opts,
                origin: `${this.#origin.protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}`
              };
              this.#dispatch(dispatchOpts, this);
              return;
            }
            super.onResponseError(controller, err2);
            break;
          }
          case "ENOTFOUND":
            this.#state.deleteRecords(this.#origin);
            super.onResponseError(controller, err2);
            break;
          default:
            super.onResponseError(controller, err2);
            break;
        }
      }
    };
    module.exports = (interceptorOpts) => {
      if (interceptorOpts?.maxTTL != null && (typeof interceptorOpts?.maxTTL !== "number" || interceptorOpts?.maxTTL < 0)) {
        throw new InvalidArgumentError("Invalid maxTTL. Must be a positive number");
      }
      if (interceptorOpts?.maxItems != null && (typeof interceptorOpts?.maxItems !== "number" || interceptorOpts?.maxItems < 1)) {
        throw new InvalidArgumentError(
          "Invalid maxItems. Must be a positive number and greater than zero"
        );
      }
      if (interceptorOpts?.affinity != null && interceptorOpts?.affinity !== 4 && interceptorOpts?.affinity !== 6) {
        throw new InvalidArgumentError("Invalid affinity. Must be either 4 or 6");
      }
      if (interceptorOpts?.dualStack != null && typeof interceptorOpts?.dualStack !== "boolean") {
        throw new InvalidArgumentError("Invalid dualStack. Must be a boolean");
      }
      if (interceptorOpts?.lookup != null && typeof interceptorOpts?.lookup !== "function") {
        throw new InvalidArgumentError("Invalid lookup. Must be a function");
      }
      if (interceptorOpts?.pick != null && typeof interceptorOpts?.pick !== "function") {
        throw new InvalidArgumentError("Invalid pick. Must be a function");
      }
      if (interceptorOpts?.storage != null && (typeof interceptorOpts?.storage?.get !== "function" || typeof interceptorOpts?.storage?.set !== "function" || typeof interceptorOpts?.storage?.full !== "function" || typeof interceptorOpts?.storage?.delete !== "function")) {
        throw new InvalidArgumentError("Invalid storage. Must be a object with methods: { get, set, full, delete }");
      }
      const dualStack = interceptorOpts?.dualStack ?? true;
      let affinity;
      if (dualStack) {
        affinity = interceptorOpts?.affinity ?? null;
      } else {
        affinity = interceptorOpts?.affinity ?? 4;
      }
      const opts2 = {
        maxTTL: interceptorOpts?.maxTTL ?? 1e4,
        // Expressed in ms
        lookup: interceptorOpts?.lookup ?? null,
        pick: interceptorOpts?.pick ?? null,
        dualStack,
        affinity,
        maxItems: interceptorOpts?.maxItems ?? Infinity,
        storage: interceptorOpts?.storage
      };
      const instance = new DNSInstance(opts2);
      return (dispatch) => {
        return function dnsInterceptor(origDispatchOpts, handler) {
          const origin2 = origDispatchOpts.origin.constructor === URL ? origDispatchOpts.origin : new URL(origDispatchOpts.origin);
          if (isIP(origin2.hostname) !== 0) {
            return dispatch(origDispatchOpts, handler);
          }
          instance.runLookup(origin2, origDispatchOpts, (err2, newOrigin) => {
            if (err2) {
              return handler.onResponseError(null, err2);
            }
            const dispatchOpts = {
              ...origDispatchOpts,
              servername: origin2.hostname,
              // For SNI on TLS
              origin: newOrigin.origin,
              headers: {
                host: origin2.host,
                ...origDispatchOpts.headers
              }
            };
            dispatch(
              dispatchOpts,
              instance.getHandler(
                { origin: origin2, dispatch, handler, newOrigin },
                origDispatchOpts
              )
            );
          });
          return true;
        };
      };
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/util/cache.js
var require_cache = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/util/cache.js"(exports, module) {
    "use strict";
    var {
      safeHTTPMethods,
      pathHasQueryOrFragment
    } = require_util4();
    var { serializePathWithQuery } = require_util4();
    function makeCacheKey(opts2) {
      if (!opts2.origin) {
        throw new Error("opts.origin is undefined");
      }
      let fullPath = opts2.path || "/";
      if (opts2.query && !pathHasQueryOrFragment(opts2.path)) {
        fullPath = serializePathWithQuery(fullPath, opts2.query);
      }
      return {
        origin: opts2.origin.toString(),
        method: opts2.method,
        path: fullPath,
        headers: opts2.headers
      };
    }
    function normalizeHeaders(opts2) {
      let headers;
      if (opts2.headers == null) {
        headers = {};
      } else if (typeof opts2.headers[Symbol.iterator] === "function") {
        headers = {};
        for (const x of opts2.headers) {
          if (!Array.isArray(x)) {
            throw new Error("opts.headers is not a valid header map");
          }
          const [key, val] = x;
          if (typeof key !== "string" || typeof val !== "string") {
            throw new Error("opts.headers is not a valid header map");
          }
          headers[key.toLowerCase()] = val;
        }
      } else if (typeof opts2.headers === "object") {
        headers = {};
        for (const key of Object.keys(opts2.headers)) {
          headers[key.toLowerCase()] = opts2.headers[key];
        }
      } else {
        throw new Error("opts.headers is not an object");
      }
      return headers;
    }
    function assertCacheKey(key) {
      if (typeof key !== "object") {
        throw new TypeError(`expected key to be object, got ${typeof key}`);
      }
      for (const property of ["origin", "method", "path"]) {
        if (typeof key[property] !== "string") {
          throw new TypeError(`expected key.${property} to be string, got ${typeof key[property]}`);
        }
      }
      if (key.headers !== void 0 && typeof key.headers !== "object") {
        throw new TypeError(`expected headers to be object, got ${typeof key}`);
      }
    }
    function assertCacheValue(value2) {
      if (typeof value2 !== "object") {
        throw new TypeError(`expected value to be object, got ${typeof value2}`);
      }
      for (const property of ["statusCode", "cachedAt", "staleAt", "deleteAt"]) {
        if (typeof value2[property] !== "number") {
          throw new TypeError(`expected value.${property} to be number, got ${typeof value2[property]}`);
        }
      }
      if (typeof value2.statusMessage !== "string") {
        throw new TypeError(`expected value.statusMessage to be string, got ${typeof value2.statusMessage}`);
      }
      if (value2.headers != null && typeof value2.headers !== "object") {
        throw new TypeError(`expected value.rawHeaders to be object, got ${typeof value2.headers}`);
      }
      if (value2.vary !== void 0 && typeof value2.vary !== "object") {
        throw new TypeError(`expected value.vary to be object, got ${typeof value2.vary}`);
      }
      if (value2.etag !== void 0 && typeof value2.etag !== "string") {
        throw new TypeError(`expected value.etag to be string, got ${typeof value2.etag}`);
      }
    }
    function parseCacheControlHeader(header) {
      const output = {};
      let directives;
      if (Array.isArray(header)) {
        directives = [];
        for (const directive of header) {
          directives.push(...directive.split(","));
        }
      } else {
        directives = header.split(",");
      }
      for (let i5 = 0; i5 < directives.length; i5++) {
        const directive = directives[i5].toLowerCase();
        const keyValueDelimiter = directive.indexOf("=");
        let key;
        let value2;
        if (keyValueDelimiter !== -1) {
          key = directive.substring(0, keyValueDelimiter).trimStart();
          value2 = directive.substring(keyValueDelimiter + 1);
        } else {
          key = directive.trim();
        }
        switch (key) {
          case "min-fresh":
          case "max-stale":
          case "max-age":
          case "s-maxage":
          case "stale-while-revalidate":
          case "stale-if-error": {
            if (value2 === void 0 || value2[0] === " ") {
              continue;
            }
            if (value2.length >= 2 && value2[0] === '"' && value2[value2.length - 1] === '"') {
              value2 = value2.substring(1, value2.length - 1);
            }
            const parsedValue = parseInt(value2, 10);
            if (parsedValue !== parsedValue) {
              continue;
            }
            if (key === "max-age" && key in output && output[key] >= parsedValue) {
              continue;
            }
            output[key] = parsedValue;
            break;
          }
          case "private":
          case "no-cache": {
            if (value2) {
              if (value2[0] === '"') {
                const headers = [value2.substring(1)];
                let foundEndingQuote = value2[value2.length - 1] === '"';
                if (!foundEndingQuote) {
                  for (let j = i5 + 1; j < directives.length; j++) {
                    const nextPart = directives[j];
                    const nextPartLength = nextPart.length;
                    headers.push(nextPart.trim());
                    if (nextPartLength !== 0 && nextPart[nextPartLength - 1] === '"') {
                      foundEndingQuote = true;
                      break;
                    }
                  }
                }
                if (foundEndingQuote) {
                  let lastHeader = headers[headers.length - 1];
                  if (lastHeader[lastHeader.length - 1] === '"') {
                    lastHeader = lastHeader.substring(0, lastHeader.length - 1);
                    headers[headers.length - 1] = lastHeader;
                  }
                  if (key in output) {
                    output[key] = output[key].concat(headers);
                  } else {
                    output[key] = headers;
                  }
                }
              } else {
                if (key in output) {
                  output[key] = output[key].concat(value2);
                } else {
                  output[key] = [value2];
                }
              }
              break;
            }
          }
          // eslint-disable-next-line no-fallthrough
          case "public":
          case "no-store":
          case "must-revalidate":
          case "proxy-revalidate":
          case "immutable":
          case "no-transform":
          case "must-understand":
          case "only-if-cached":
            if (value2) {
              continue;
            }
            output[key] = true;
            break;
          default:
            continue;
        }
      }
      return output;
    }
    function parseVaryHeader(varyHeader, headers) {
      if (typeof varyHeader === "string" && varyHeader.includes("*")) {
        return headers;
      }
      const output = (
        /** @type {Record<string, string | string[] | null>} */
        {}
      );
      const varyingHeaders = typeof varyHeader === "string" ? varyHeader.split(",") : varyHeader;
      for (const header of varyingHeaders) {
        const trimmedHeader = header.trim().toLowerCase();
        output[trimmedHeader] = headers[trimmedHeader] ?? null;
      }
      return output;
    }
    function isEtagUsable(etag) {
      if (etag.length <= 2) {
        return false;
      }
      if (etag[0] === '"' && etag[etag.length - 1] === '"') {
        return !(etag[1] === '"' || etag.startsWith('"W/'));
      }
      if (etag.startsWith('W/"') && etag[etag.length - 1] === '"') {
        return etag.length !== 4;
      }
      return false;
    }
    function assertCacheStore(store, name = "CacheStore") {
      if (typeof store !== "object" || store === null) {
        throw new TypeError(`expected type of ${name} to be a CacheStore, got ${store === null ? "null" : typeof store}`);
      }
      for (const fn of ["get", "createWriteStream", "delete"]) {
        if (typeof store[fn] !== "function") {
          throw new TypeError(`${name} needs to have a \`${fn}()\` function`);
        }
      }
    }
    function assertCacheMethods(methods, name = "CacheMethods") {
      if (!Array.isArray(methods)) {
        throw new TypeError(`expected type of ${name} needs to be an array, got ${methods === null ? "null" : typeof methods}`);
      }
      if (methods.length === 0) {
        throw new TypeError(`${name} needs to have at least one method`);
      }
      for (const method of methods) {
        if (!safeHTTPMethods.includes(method)) {
          throw new TypeError(`element of ${name}-array needs to be one of following values: ${safeHTTPMethods.join(", ")}, got ${method}`);
        }
      }
    }
    function makeDeduplicationKey(cacheKey, excludeHeaders) {
      let key = `${cacheKey.origin}:${cacheKey.method}:${cacheKey.path}`;
      if (cacheKey.headers) {
        const sortedHeaders = Object.keys(cacheKey.headers).sort();
        for (const header of sortedHeaders) {
          if (excludeHeaders?.has(header.toLowerCase())) {
            continue;
          }
          const value2 = cacheKey.headers[header];
          key += `:${header}=${Array.isArray(value2) ? value2.join(",") : value2}`;
        }
      }
      return key;
    }
    module.exports = {
      makeCacheKey,
      normalizeHeaders,
      assertCacheKey,
      assertCacheValue,
      parseCacheControlHeader,
      parseVaryHeader,
      isEtagUsable,
      assertCacheMethods,
      assertCacheStore,
      makeDeduplicationKey
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/util/date.js
var require_date2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/util/date.js"(exports, module) {
    "use strict";
    function parseHttpDate(date) {
      switch (date[3]) {
        case ",":
          return parseImfDate(date);
        case " ":
          return parseAscTimeDate(date);
        default:
          return parseRfc850Date(date);
      }
    }
    function parseImfDate(date) {
      if (date.length !== 29 || date[4] !== " " || date[7] !== " " || date[11] !== " " || date[16] !== " " || date[19] !== ":" || date[22] !== ":" || date[25] !== " " || date[26] !== "G" || date[27] !== "M" || date[28] !== "T") {
        return void 0;
      }
      let weekday = -1;
      if (date[0] === "S" && date[1] === "u" && date[2] === "n") {
        weekday = 0;
      } else if (date[0] === "M" && date[1] === "o" && date[2] === "n") {
        weekday = 1;
      } else if (date[0] === "T" && date[1] === "u" && date[2] === "e") {
        weekday = 2;
      } else if (date[0] === "W" && date[1] === "e" && date[2] === "d") {
        weekday = 3;
      } else if (date[0] === "T" && date[1] === "h" && date[2] === "u") {
        weekday = 4;
      } else if (date[0] === "F" && date[1] === "r" && date[2] === "i") {
        weekday = 5;
      } else if (date[0] === "S" && date[1] === "a" && date[2] === "t") {
        weekday = 6;
      } else {
        return void 0;
      }
      let day = 0;
      if (date[5] === "0") {
        const code = date.charCodeAt(6);
        if (code < 49 || code > 57) {
          return void 0;
        }
        day = code - 48;
      } else {
        const code1 = date.charCodeAt(5);
        if (code1 < 49 || code1 > 51) {
          return void 0;
        }
        const code2 = date.charCodeAt(6);
        if (code2 < 48 || code2 > 57) {
          return void 0;
        }
        day = (code1 - 48) * 10 + (code2 - 48);
      }
      let monthIdx = -1;
      if (date[8] === "J" && date[9] === "a" && date[10] === "n") {
        monthIdx = 0;
      } else if (date[8] === "F" && date[9] === "e" && date[10] === "b") {
        monthIdx = 1;
      } else if (date[8] === "M" && date[9] === "a") {
        if (date[10] === "r") {
          monthIdx = 2;
        } else if (date[10] === "y") {
          monthIdx = 4;
        } else {
          return void 0;
        }
      } else if (date[8] === "J") {
        if (date[9] === "a" && date[10] === "n") {
          monthIdx = 0;
        } else if (date[9] === "u") {
          if (date[10] === "n") {
            monthIdx = 5;
          } else if (date[10] === "l") {
            monthIdx = 6;
          } else {
            return void 0;
          }
        } else {
          return void 0;
        }
      } else if (date[8] === "A") {
        if (date[9] === "p" && date[10] === "r") {
          monthIdx = 3;
        } else if (date[9] === "u" && date[10] === "g") {
          monthIdx = 7;
        } else {
          return void 0;
        }
      } else if (date[8] === "S" && date[9] === "e" && date[10] === "p") {
        monthIdx = 8;
      } else if (date[8] === "O" && date[9] === "c" && date[10] === "t") {
        monthIdx = 9;
      } else if (date[8] === "N" && date[9] === "o" && date[10] === "v") {
        monthIdx = 10;
      } else if (date[8] === "D" && date[9] === "e" && date[10] === "c") {
        monthIdx = 11;
      } else {
        return void 0;
      }
      const yearDigit1 = date.charCodeAt(12);
      if (yearDigit1 < 48 || yearDigit1 > 57) {
        return void 0;
      }
      const yearDigit2 = date.charCodeAt(13);
      if (yearDigit2 < 48 || yearDigit2 > 57) {
        return void 0;
      }
      const yearDigit3 = date.charCodeAt(14);
      if (yearDigit3 < 48 || yearDigit3 > 57) {
        return void 0;
      }
      const yearDigit4 = date.charCodeAt(15);
      if (yearDigit4 < 48 || yearDigit4 > 57) {
        return void 0;
      }
      const year = (yearDigit1 - 48) * 1e3 + (yearDigit2 - 48) * 100 + (yearDigit3 - 48) * 10 + (yearDigit4 - 48);
      let hour = 0;
      if (date[17] === "0") {
        const code = date.charCodeAt(18);
        if (code < 48 || code > 57) {
          return void 0;
        }
        hour = code - 48;
      } else {
        const code1 = date.charCodeAt(17);
        if (code1 < 48 || code1 > 50) {
          return void 0;
        }
        const code2 = date.charCodeAt(18);
        if (code2 < 48 || code2 > 57) {
          return void 0;
        }
        if (code1 === 50 && code2 > 51) {
          return void 0;
        }
        hour = (code1 - 48) * 10 + (code2 - 48);
      }
      let minute = 0;
      if (date[20] === "0") {
        const code = date.charCodeAt(21);
        if (code < 48 || code > 57) {
          return void 0;
        }
        minute = code - 48;
      } else {
        const code1 = date.charCodeAt(20);
        if (code1 < 48 || code1 > 53) {
          return void 0;
        }
        const code2 = date.charCodeAt(21);
        if (code2 < 48 || code2 > 57) {
          return void 0;
        }
        minute = (code1 - 48) * 10 + (code2 - 48);
      }
      let second = 0;
      if (date[23] === "0") {
        const code = date.charCodeAt(24);
        if (code < 48 || code > 57) {
          return void 0;
        }
        second = code - 48;
      } else {
        const code1 = date.charCodeAt(23);
        if (code1 < 48 || code1 > 53) {
          return void 0;
        }
        const code2 = date.charCodeAt(24);
        if (code2 < 48 || code2 > 57) {
          return void 0;
        }
        second = (code1 - 48) * 10 + (code2 - 48);
      }
      const result = new Date(Date.UTC(year, monthIdx, day, hour, minute, second));
      return result.getUTCDay() === weekday ? result : void 0;
    }
    function parseAscTimeDate(date) {
      if (date.length !== 24 || date[7] !== " " || date[10] !== " " || date[19] !== " ") {
        return void 0;
      }
      let weekday = -1;
      if (date[0] === "S" && date[1] === "u" && date[2] === "n") {
        weekday = 0;
      } else if (date[0] === "M" && date[1] === "o" && date[2] === "n") {
        weekday = 1;
      } else if (date[0] === "T" && date[1] === "u" && date[2] === "e") {
        weekday = 2;
      } else if (date[0] === "W" && date[1] === "e" && date[2] === "d") {
        weekday = 3;
      } else if (date[0] === "T" && date[1] === "h" && date[2] === "u") {
        weekday = 4;
      } else if (date[0] === "F" && date[1] === "r" && date[2] === "i") {
        weekday = 5;
      } else if (date[0] === "S" && date[1] === "a" && date[2] === "t") {
        weekday = 6;
      } else {
        return void 0;
      }
      let monthIdx = -1;
      if (date[4] === "J" && date[5] === "a" && date[6] === "n") {
        monthIdx = 0;
      } else if (date[4] === "F" && date[5] === "e" && date[6] === "b") {
        monthIdx = 1;
      } else if (date[4] === "M" && date[5] === "a") {
        if (date[6] === "r") {
          monthIdx = 2;
        } else if (date[6] === "y") {
          monthIdx = 4;
        } else {
          return void 0;
        }
      } else if (date[4] === "J") {
        if (date[5] === "a" && date[6] === "n") {
          monthIdx = 0;
        } else if (date[5] === "u") {
          if (date[6] === "n") {
            monthIdx = 5;
          } else if (date[6] === "l") {
            monthIdx = 6;
          } else {
            return void 0;
          }
        } else {
          return void 0;
        }
      } else if (date[4] === "A") {
        if (date[5] === "p" && date[6] === "r") {
          monthIdx = 3;
        } else if (date[5] === "u" && date[6] === "g") {
          monthIdx = 7;
        } else {
          return void 0;
        }
      } else if (date[4] === "S" && date[5] === "e" && date[6] === "p") {
        monthIdx = 8;
      } else if (date[4] === "O" && date[5] === "c" && date[6] === "t") {
        monthIdx = 9;
      } else if (date[4] === "N" && date[5] === "o" && date[6] === "v") {
        monthIdx = 10;
      } else if (date[4] === "D" && date[5] === "e" && date[6] === "c") {
        monthIdx = 11;
      } else {
        return void 0;
      }
      let day = 0;
      if (date[8] === " ") {
        const code = date.charCodeAt(9);
        if (code < 49 || code > 57) {
          return void 0;
        }
        day = code - 48;
      } else {
        const code1 = date.charCodeAt(8);
        if (code1 < 49 || code1 > 51) {
          return void 0;
        }
        const code2 = date.charCodeAt(9);
        if (code2 < 48 || code2 > 57) {
          return void 0;
        }
        day = (code1 - 48) * 10 + (code2 - 48);
      }
      let hour = 0;
      if (date[11] === "0") {
        const code = date.charCodeAt(12);
        if (code < 48 || code > 57) {
          return void 0;
        }
        hour = code - 48;
      } else {
        const code1 = date.charCodeAt(11);
        if (code1 < 48 || code1 > 50) {
          return void 0;
        }
        const code2 = date.charCodeAt(12);
        if (code2 < 48 || code2 > 57) {
          return void 0;
        }
        if (code1 === 50 && code2 > 51) {
          return void 0;
        }
        hour = (code1 - 48) * 10 + (code2 - 48);
      }
      let minute = 0;
      if (date[14] === "0") {
        const code = date.charCodeAt(15);
        if (code < 48 || code > 57) {
          return void 0;
        }
        minute = code - 48;
      } else {
        const code1 = date.charCodeAt(14);
        if (code1 < 48 || code1 > 53) {
          return void 0;
        }
        const code2 = date.charCodeAt(15);
        if (code2 < 48 || code2 > 57) {
          return void 0;
        }
        minute = (code1 - 48) * 10 + (code2 - 48);
      }
      let second = 0;
      if (date[17] === "0") {
        const code = date.charCodeAt(18);
        if (code < 48 || code > 57) {
          return void 0;
        }
        second = code - 48;
      } else {
        const code1 = date.charCodeAt(17);
        if (code1 < 48 || code1 > 53) {
          return void 0;
        }
        const code2 = date.charCodeAt(18);
        if (code2 < 48 || code2 > 57) {
          return void 0;
        }
        second = (code1 - 48) * 10 + (code2 - 48);
      }
      const yearDigit1 = date.charCodeAt(20);
      if (yearDigit1 < 48 || yearDigit1 > 57) {
        return void 0;
      }
      const yearDigit2 = date.charCodeAt(21);
      if (yearDigit2 < 48 || yearDigit2 > 57) {
        return void 0;
      }
      const yearDigit3 = date.charCodeAt(22);
      if (yearDigit3 < 48 || yearDigit3 > 57) {
        return void 0;
      }
      const yearDigit4 = date.charCodeAt(23);
      if (yearDigit4 < 48 || yearDigit4 > 57) {
        return void 0;
      }
      const year = (yearDigit1 - 48) * 1e3 + (yearDigit2 - 48) * 100 + (yearDigit3 - 48) * 10 + (yearDigit4 - 48);
      const result = new Date(Date.UTC(year, monthIdx, day, hour, minute, second));
      return result.getUTCDay() === weekday ? result : void 0;
    }
    function parseRfc850Date(date) {
      let commaIndex = -1;
      let weekday = -1;
      if (date[0] === "S") {
        if (date[1] === "u" && date[2] === "n" && date[3] === "d" && date[4] === "a" && date[5] === "y") {
          weekday = 0;
          commaIndex = 6;
        } else if (date[1] === "a" && date[2] === "t" && date[3] === "u" && date[4] === "r" && date[5] === "d" && date[6] === "a" && date[7] === "y") {
          weekday = 6;
          commaIndex = 8;
        }
      } else if (date[0] === "M" && date[1] === "o" && date[2] === "n" && date[3] === "d" && date[4] === "a" && date[5] === "y") {
        weekday = 1;
        commaIndex = 6;
      } else if (date[0] === "T") {
        if (date[1] === "u" && date[2] === "e" && date[3] === "s" && date[4] === "d" && date[5] === "a" && date[6] === "y") {
          weekday = 2;
          commaIndex = 7;
        } else if (date[1] === "h" && date[2] === "u" && date[3] === "r" && date[4] === "s" && date[5] === "d" && date[6] === "a" && date[7] === "y") {
          weekday = 4;
          commaIndex = 8;
        }
      } else if (date[0] === "W" && date[1] === "e" && date[2] === "d" && date[3] === "n" && date[4] === "e" && date[5] === "s" && date[6] === "d" && date[7] === "a" && date[8] === "y") {
        weekday = 3;
        commaIndex = 9;
      } else if (date[0] === "F" && date[1] === "r" && date[2] === "i" && date[3] === "d" && date[4] === "a" && date[5] === "y") {
        weekday = 5;
        commaIndex = 6;
      } else {
        return void 0;
      }
      if (date[commaIndex] !== "," || date.length - commaIndex - 1 !== 23 || date[commaIndex + 1] !== " " || date[commaIndex + 4] !== "-" || date[commaIndex + 8] !== "-" || date[commaIndex + 11] !== " " || date[commaIndex + 14] !== ":" || date[commaIndex + 17] !== ":" || date[commaIndex + 20] !== " " || date[commaIndex + 21] !== "G" || date[commaIndex + 22] !== "M" || date[commaIndex + 23] !== "T") {
        return void 0;
      }
      let day = 0;
      if (date[commaIndex + 2] === "0") {
        const code = date.charCodeAt(commaIndex + 3);
        if (code < 49 || code > 57) {
          return void 0;
        }
        day = code - 48;
      } else {
        const code1 = date.charCodeAt(commaIndex + 2);
        if (code1 < 49 || code1 > 51) {
          return void 0;
        }
        const code2 = date.charCodeAt(commaIndex + 3);
        if (code2 < 48 || code2 > 57) {
          return void 0;
        }
        day = (code1 - 48) * 10 + (code2 - 48);
      }
      let monthIdx = -1;
      if (date[commaIndex + 5] === "J" && date[commaIndex + 6] === "a" && date[commaIndex + 7] === "n") {
        monthIdx = 0;
      } else if (date[commaIndex + 5] === "F" && date[commaIndex + 6] === "e" && date[commaIndex + 7] === "b") {
        monthIdx = 1;
      } else if (date[commaIndex + 5] === "M" && date[commaIndex + 6] === "a" && date[commaIndex + 7] === "r") {
        monthIdx = 2;
      } else if (date[commaIndex + 5] === "A" && date[commaIndex + 6] === "p" && date[commaIndex + 7] === "r") {
        monthIdx = 3;
      } else if (date[commaIndex + 5] === "M" && date[commaIndex + 6] === "a" && date[commaIndex + 7] === "y") {
        monthIdx = 4;
      } else if (date[commaIndex + 5] === "J" && date[commaIndex + 6] === "u" && date[commaIndex + 7] === "n") {
        monthIdx = 5;
      } else if (date[commaIndex + 5] === "J" && date[commaIndex + 6] === "u" && date[commaIndex + 7] === "l") {
        monthIdx = 6;
      } else if (date[commaIndex + 5] === "A" && date[commaIndex + 6] === "u" && date[commaIndex + 7] === "g") {
        monthIdx = 7;
      } else if (date[commaIndex + 5] === "S" && date[commaIndex + 6] === "e" && date[commaIndex + 7] === "p") {
        monthIdx = 8;
      } else if (date[commaIndex + 5] === "O" && date[commaIndex + 6] === "c" && date[commaIndex + 7] === "t") {
        monthIdx = 9;
      } else if (date[commaIndex + 5] === "N" && date[commaIndex + 6] === "o" && date[commaIndex + 7] === "v") {
        monthIdx = 10;
      } else if (date[commaIndex + 5] === "D" && date[commaIndex + 6] === "e" && date[commaIndex + 7] === "c") {
        monthIdx = 11;
      } else {
        return void 0;
      }
      const yearDigit1 = date.charCodeAt(commaIndex + 9);
      if (yearDigit1 < 48 || yearDigit1 > 57) {
        return void 0;
      }
      const yearDigit2 = date.charCodeAt(commaIndex + 10);
      if (yearDigit2 < 48 || yearDigit2 > 57) {
        return void 0;
      }
      let year = (yearDigit1 - 48) * 10 + (yearDigit2 - 48);
      year += year < 70 ? 2e3 : 1900;
      let hour = 0;
      if (date[commaIndex + 12] === "0") {
        const code = date.charCodeAt(commaIndex + 13);
        if (code < 48 || code > 57) {
          return void 0;
        }
        hour = code - 48;
      } else {
        const code1 = date.charCodeAt(commaIndex + 12);
        if (code1 < 48 || code1 > 50) {
          return void 0;
        }
        const code2 = date.charCodeAt(commaIndex + 13);
        if (code2 < 48 || code2 > 57) {
          return void 0;
        }
        if (code1 === 50 && code2 > 51) {
          return void 0;
        }
        hour = (code1 - 48) * 10 + (code2 - 48);
      }
      let minute = 0;
      if (date[commaIndex + 15] === "0") {
        const code = date.charCodeAt(commaIndex + 16);
        if (code < 48 || code > 57) {
          return void 0;
        }
        minute = code - 48;
      } else {
        const code1 = date.charCodeAt(commaIndex + 15);
        if (code1 < 48 || code1 > 53) {
          return void 0;
        }
        const code2 = date.charCodeAt(commaIndex + 16);
        if (code2 < 48 || code2 > 57) {
          return void 0;
        }
        minute = (code1 - 48) * 10 + (code2 - 48);
      }
      let second = 0;
      if (date[commaIndex + 18] === "0") {
        const code = date.charCodeAt(commaIndex + 19);
        if (code < 48 || code > 57) {
          return void 0;
        }
        second = code - 48;
      } else {
        const code1 = date.charCodeAt(commaIndex + 18);
        if (code1 < 48 || code1 > 53) {
          return void 0;
        }
        const code2 = date.charCodeAt(commaIndex + 19);
        if (code2 < 48 || code2 > 57) {
          return void 0;
        }
        second = (code1 - 48) * 10 + (code2 - 48);
      }
      const result = new Date(Date.UTC(year, monthIdx, day, hour, minute, second));
      return result.getUTCDay() === weekday ? result : void 0;
    }
    module.exports = {
      parseHttpDate
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/cache-handler.js
var require_cache_handler = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/cache-handler.js"(exports, module) {
    "use strict";
    var util3 = require_util4();
    var {
      parseCacheControlHeader,
      parseVaryHeader,
      isEtagUsable
    } = require_cache();
    var { parseHttpDate } = require_date2();
    function noop6() {
    }
    var HEURISTICALLY_CACHEABLE_STATUS_CODES = [
      200,
      203,
      204,
      206,
      300,
      301,
      308,
      404,
      405,
      410,
      414,
      501
    ];
    var NOT_UNDERSTOOD_STATUS_CODES = [
      206
    ];
    var MAX_RESPONSE_AGE = 2147483647e3;
    var CacheHandler = class {
      /**
       * @type {import('../../types/cache-interceptor.d.ts').default.CacheKey}
       */
      #cacheKey;
      /**
       * @type {import('../../types/cache-interceptor.d.ts').default.CacheHandlerOptions['type']}
       */
      #cacheType;
      /**
       * @type {number | undefined}
       */
      #cacheByDefault;
      /**
       * @type {import('../../types/cache-interceptor.d.ts').default.CacheStore}
       */
      #store;
      /**
       * @type {import('../../types/dispatcher.d.ts').default.DispatchHandler}
       */
      #handler;
      /**
       * @type {import('node:stream').Writable | undefined}
       */
      #writeStream;
      /**
       * @param {import('../../types/cache-interceptor.d.ts').default.CacheHandlerOptions} opts
       * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} cacheKey
       * @param {import('../../types/dispatcher.d.ts').default.DispatchHandler} handler
       */
      constructor({ store, type, cacheByDefault }, cacheKey, handler) {
        this.#store = store;
        this.#cacheType = type;
        this.#cacheByDefault = cacheByDefault;
        this.#cacheKey = cacheKey;
        this.#handler = handler;
      }
      onRequestStart(controller, context) {
        this.#writeStream?.destroy();
        this.#writeStream = void 0;
        this.#handler.onRequestStart?.(controller, context);
      }
      onRequestUpgrade(controller, statusCode, headers, socket) {
        this.#handler.onRequestUpgrade?.(controller, statusCode, headers, socket);
      }
      /**
       * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
       * @param {number} statusCode
       * @param {import('../../types/header.d.ts').IncomingHttpHeaders} resHeaders
       * @param {string} statusMessage
       */
      onResponseStart(controller, statusCode, resHeaders, statusMessage) {
        const downstreamOnHeaders = () => this.#handler.onResponseStart?.(
          controller,
          statusCode,
          resHeaders,
          statusMessage
        );
        const handler = this;
        if (!util3.safeHTTPMethods.includes(this.#cacheKey.method) && statusCode >= 200 && statusCode <= 399) {
          try {
            this.#store.delete(this.#cacheKey)?.catch?.(noop6);
          } catch {
          }
          return downstreamOnHeaders();
        }
        const cacheControlHeader = resHeaders["cache-control"];
        const heuristicallyCacheable = resHeaders["last-modified"] && HEURISTICALLY_CACHEABLE_STATUS_CODES.includes(statusCode);
        if (!cacheControlHeader && !resHeaders["expires"] && !heuristicallyCacheable && !this.#cacheByDefault) {
          return downstreamOnHeaders();
        }
        const cacheControlDirectives = cacheControlHeader ? parseCacheControlHeader(cacheControlHeader) : {};
        if (!canCacheResponse(this.#cacheType, statusCode, resHeaders, cacheControlDirectives)) {
          return downstreamOnHeaders();
        }
        const now = Date.now();
        const resAge = resHeaders.age ? getAge(resHeaders.age) : void 0;
        if (resAge && resAge >= MAX_RESPONSE_AGE) {
          return downstreamOnHeaders();
        }
        const resDate = typeof resHeaders.date === "string" ? parseHttpDate(resHeaders.date) : void 0;
        const staleAt = determineStaleAt(this.#cacheType, now, resAge, resHeaders, resDate, cacheControlDirectives) ?? this.#cacheByDefault;
        if (staleAt === void 0 || resAge && resAge > staleAt) {
          return downstreamOnHeaders();
        }
        const baseTime = resDate ? resDate.getTime() : now;
        const absoluteStaleAt = staleAt + baseTime;
        if (now >= absoluteStaleAt) {
          return downstreamOnHeaders();
        }
        let varyDirectives;
        if (this.#cacheKey.headers && resHeaders.vary) {
          varyDirectives = parseVaryHeader(resHeaders.vary, this.#cacheKey.headers);
          if (!varyDirectives) {
            return downstreamOnHeaders();
          }
        }
        const deleteAt = determineDeleteAt(baseTime, cacheControlDirectives, absoluteStaleAt);
        const strippedHeaders = stripNecessaryHeaders(resHeaders, cacheControlDirectives);
        const value2 = {
          statusCode,
          statusMessage,
          headers: strippedHeaders,
          vary: varyDirectives,
          cacheControlDirectives,
          cachedAt: resAge ? now - resAge : now,
          staleAt: absoluteStaleAt,
          deleteAt
        };
        if (statusCode === 304) {
          const cachedValue = this.#store.get(this.#cacheKey);
          if (!cachedValue) {
            return downstreamOnHeaders();
          }
          value2.statusCode = cachedValue.statusCode;
          value2.statusMessage = cachedValue.statusMessage;
          value2.etag = cachedValue.etag;
          value2.headers = { ...cachedValue.headers, ...strippedHeaders };
          downstreamOnHeaders();
          this.#writeStream = this.#store.createWriteStream(this.#cacheKey, value2);
          if (!this.#writeStream || !cachedValue?.body) {
            return;
          }
          const bodyIterator = cachedValue.body.values();
          const streamCachedBody = () => {
            for (const chunk3 of bodyIterator) {
              const full = this.#writeStream.write(chunk3) === false;
              this.#handler.onResponseData?.(controller, chunk3);
              if (full) {
                break;
              }
            }
          };
          this.#writeStream.on("error", function() {
            handler.#writeStream = void 0;
            handler.#store.delete(handler.#cacheKey);
          }).on("drain", () => {
            streamCachedBody();
          }).on("close", function() {
            if (handler.#writeStream === this) {
              handler.#writeStream = void 0;
            }
          });
          streamCachedBody();
        } else {
          if (typeof resHeaders.etag === "string" && isEtagUsable(resHeaders.etag)) {
            value2.etag = resHeaders.etag;
          }
          this.#writeStream = this.#store.createWriteStream(this.#cacheKey, value2);
          if (!this.#writeStream) {
            return downstreamOnHeaders();
          }
          this.#writeStream.on("drain", () => controller.resume()).on("error", function() {
            handler.#writeStream = void 0;
            handler.#store.delete(handler.#cacheKey);
          }).on("close", function() {
            if (handler.#writeStream === this) {
              handler.#writeStream = void 0;
            }
            controller.resume();
          });
          downstreamOnHeaders();
        }
      }
      onResponseData(controller, chunk3) {
        if (this.#writeStream?.write(chunk3) === false) {
          controller.pause();
        }
        this.#handler.onResponseData?.(controller, chunk3);
      }
      onResponseEnd(controller, trailers) {
        this.#writeStream?.end();
        this.#handler.onResponseEnd?.(controller, trailers);
      }
      onResponseError(controller, err2) {
        this.#writeStream?.destroy(err2);
        this.#writeStream = void 0;
        this.#handler.onResponseError?.(controller, err2);
      }
    };
    function canCacheResponse(cacheType, statusCode, resHeaders, cacheControlDirectives) {
      if (statusCode < 200 || NOT_UNDERSTOOD_STATUS_CODES.includes(statusCode)) {
        return false;
      }
      if (!HEURISTICALLY_CACHEABLE_STATUS_CODES.includes(statusCode) && !resHeaders["expires"] && !cacheControlDirectives.public && cacheControlDirectives["max-age"] === void 0 && // RFC 9111: a private response directive, if the cache is not shared
      !(cacheControlDirectives.private && cacheType === "private") && !(cacheControlDirectives["s-maxage"] !== void 0 && cacheType === "shared")) {
        return false;
      }
      if (cacheControlDirectives["no-store"]) {
        return false;
      }
      if (cacheType === "shared" && cacheControlDirectives.private === true) {
        return false;
      }
      if (resHeaders.vary?.includes("*")) {
        return false;
      }
      if (resHeaders.authorization) {
        if (!cacheControlDirectives.public || typeof resHeaders.authorization !== "string") {
          return false;
        }
        if (Array.isArray(cacheControlDirectives["no-cache"]) && cacheControlDirectives["no-cache"].includes("authorization")) {
          return false;
        }
        if (Array.isArray(cacheControlDirectives["private"]) && cacheControlDirectives["private"].includes("authorization")) {
          return false;
        }
      }
      return true;
    }
    function getAge(ageHeader) {
      const age = parseInt(Array.isArray(ageHeader) ? ageHeader[0] : ageHeader);
      return isNaN(age) ? void 0 : age * 1e3;
    }
    function determineStaleAt(cacheType, now, age, resHeaders, responseDate, cacheControlDirectives) {
      if (cacheType === "shared") {
        const sMaxAge = cacheControlDirectives["s-maxage"];
        if (sMaxAge !== void 0) {
          return sMaxAge > 0 ? sMaxAge * 1e3 : void 0;
        }
      }
      const maxAge = cacheControlDirectives["max-age"];
      if (maxAge !== void 0) {
        return maxAge > 0 ? maxAge * 1e3 : void 0;
      }
      if (typeof resHeaders.expires === "string") {
        const expiresDate = parseHttpDate(resHeaders.expires);
        if (expiresDate) {
          if (now >= expiresDate.getTime()) {
            return void 0;
          }
          if (responseDate) {
            if (responseDate >= expiresDate) {
              return void 0;
            }
            if (age !== void 0 && age > expiresDate - responseDate) {
              return void 0;
            }
          }
          return expiresDate.getTime() - now;
        }
      }
      if (typeof resHeaders["last-modified"] === "string") {
        const lastModified = new Date(resHeaders["last-modified"]);
        if (isValidDate2(lastModified)) {
          if (lastModified.getTime() >= now) {
            return void 0;
          }
          const responseAge = now - lastModified.getTime();
          return responseAge * 0.1;
        }
      }
      if (cacheControlDirectives.immutable) {
        return 31536e3;
      }
      return void 0;
    }
    function determineDeleteAt(now, cacheControlDirectives, staleAt) {
      let staleWhileRevalidate = -Infinity;
      let staleIfError = -Infinity;
      let immutable = -Infinity;
      if (cacheControlDirectives["stale-while-revalidate"]) {
        staleWhileRevalidate = staleAt + cacheControlDirectives["stale-while-revalidate"] * 1e3;
      }
      if (cacheControlDirectives["stale-if-error"]) {
        staleIfError = staleAt + cacheControlDirectives["stale-if-error"] * 1e3;
      }
      if (staleWhileRevalidate === -Infinity && staleIfError === -Infinity) {
        immutable = now + 31536e6;
      }
      return Math.max(staleAt, staleWhileRevalidate, staleIfError, immutable);
    }
    function stripNecessaryHeaders(resHeaders, cacheControlDirectives) {
      const headersToRemove = [
        "connection",
        "proxy-authenticate",
        "proxy-authentication-info",
        "proxy-authorization",
        "proxy-connection",
        "te",
        "transfer-encoding",
        "upgrade",
        // We'll add age back when serving it
        "age"
      ];
      if (resHeaders["connection"]) {
        if (Array.isArray(resHeaders["connection"])) {
          headersToRemove.push(...resHeaders["connection"].map((header) => header.trim()));
        } else {
          headersToRemove.push(...resHeaders["connection"].split(",").map((header) => header.trim()));
        }
      }
      if (Array.isArray(cacheControlDirectives["no-cache"])) {
        headersToRemove.push(...cacheControlDirectives["no-cache"]);
      }
      if (Array.isArray(cacheControlDirectives["private"])) {
        headersToRemove.push(...cacheControlDirectives["private"]);
      }
      let strippedHeaders;
      for (const headerName of headersToRemove) {
        if (resHeaders[headerName]) {
          strippedHeaders ??= { ...resHeaders };
          delete strippedHeaders[headerName];
        }
      }
      return strippedHeaders ?? resHeaders;
    }
    function isValidDate2(date) {
      return date instanceof Date && Number.isFinite(date.valueOf());
    }
    module.exports = CacheHandler;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/cache/memory-cache-store.js
var require_memory_cache_store = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/cache/memory-cache-store.js"(exports, module) {
    "use strict";
    var { Writable } = __require("node:stream");
    var { EventEmitter: EventEmitter5 } = __require("node:events");
    var { assertCacheKey, assertCacheValue } = require_cache();
    var MemoryCacheStore = class extends EventEmitter5 {
      #maxCount = 1024;
      #maxSize = 104857600;
      // 100MB
      #maxEntrySize = 5242880;
      // 5MB
      #size = 0;
      #count = 0;
      #entries = /* @__PURE__ */ new Map();
      #hasEmittedMaxSizeEvent = false;
      /**
       * @param {import('../../types/cache-interceptor.d.ts').default.MemoryCacheStoreOpts | undefined} [opts]
       */
      constructor(opts2) {
        super();
        if (opts2) {
          if (typeof opts2 !== "object") {
            throw new TypeError("MemoryCacheStore options must be an object");
          }
          if (opts2.maxCount !== void 0) {
            if (typeof opts2.maxCount !== "number" || !Number.isInteger(opts2.maxCount) || opts2.maxCount < 0) {
              throw new TypeError("MemoryCacheStore options.maxCount must be a non-negative integer");
            }
            this.#maxCount = opts2.maxCount;
          }
          if (opts2.maxSize !== void 0) {
            if (typeof opts2.maxSize !== "number" || !Number.isInteger(opts2.maxSize) || opts2.maxSize < 0) {
              throw new TypeError("MemoryCacheStore options.maxSize must be a non-negative integer");
            }
            this.#maxSize = opts2.maxSize;
          }
          if (opts2.maxEntrySize !== void 0) {
            if (typeof opts2.maxEntrySize !== "number" || !Number.isInteger(opts2.maxEntrySize) || opts2.maxEntrySize < 0) {
              throw new TypeError("MemoryCacheStore options.maxEntrySize must be a non-negative integer");
            }
            this.#maxEntrySize = opts2.maxEntrySize;
          }
        }
      }
      /**
       * Get the current size of the cache in bytes
       * @returns {number} The current size of the cache in bytes
       */
      get size() {
        return this.#size;
      }
      /**
       * Check if the cache is full (either max size or max count reached)
       * @returns {boolean} True if the cache is full, false otherwise
       */
      isFull() {
        return this.#size >= this.#maxSize || this.#count >= this.#maxCount;
      }
      /**
       * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} req
       * @returns {import('../../types/cache-interceptor.d.ts').default.GetResult | undefined}
       */
      get(key) {
        assertCacheKey(key);
        const topLevelKey = `${key.origin}:${key.path}`;
        const now = Date.now();
        const entries3 = this.#entries.get(topLevelKey);
        const entry = entries3 ? findEntry(key, entries3, now) : null;
        return entry == null ? void 0 : {
          statusMessage: entry.statusMessage,
          statusCode: entry.statusCode,
          headers: entry.headers,
          body: entry.body,
          vary: entry.vary ? entry.vary : void 0,
          etag: entry.etag,
          cacheControlDirectives: entry.cacheControlDirectives,
          cachedAt: entry.cachedAt,
          staleAt: entry.staleAt,
          deleteAt: entry.deleteAt
        };
      }
      /**
       * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key
       * @param {import('../../types/cache-interceptor.d.ts').default.CacheValue} val
       * @returns {Writable | undefined}
       */
      createWriteStream(key, val) {
        assertCacheKey(key);
        assertCacheValue(val);
        const topLevelKey = `${key.origin}:${key.path}`;
        const store = this;
        const entry = { ...key, ...val, body: [], size: 0 };
        return new Writable({
          write(chunk3, encoding, callback) {
            if (typeof chunk3 === "string") {
              chunk3 = Buffer.from(chunk3, encoding);
            }
            entry.size += chunk3.byteLength;
            if (entry.size >= store.#maxEntrySize) {
              this.destroy();
            } else {
              entry.body.push(chunk3);
            }
            callback(null);
          },
          final(callback) {
            let entries3 = store.#entries.get(topLevelKey);
            if (!entries3) {
              entries3 = [];
              store.#entries.set(topLevelKey, entries3);
            }
            const previousEntry = findEntry(key, entries3, Date.now());
            if (previousEntry) {
              const index2 = entries3.indexOf(previousEntry);
              entries3.splice(index2, 1, entry);
              store.#size -= previousEntry.size;
            } else {
              entries3.push(entry);
              store.#count += 1;
            }
            store.#size += entry.size;
            if (store.#size > store.#maxSize || store.#count > store.#maxCount) {
              if (!store.#hasEmittedMaxSizeEvent) {
                store.emit("maxSizeExceeded", {
                  size: store.#size,
                  maxSize: store.#maxSize,
                  count: store.#count,
                  maxCount: store.#maxCount
                });
                store.#hasEmittedMaxSizeEvent = true;
              }
              for (const [key2, entries4] of store.#entries) {
                for (const entry2 of entries4.splice(0, entries4.length / 2)) {
                  store.#size -= entry2.size;
                  store.#count -= 1;
                }
                if (entries4.length === 0) {
                  store.#entries.delete(key2);
                }
              }
              if (store.#size < store.#maxSize && store.#count < store.#maxCount) {
                store.#hasEmittedMaxSizeEvent = false;
              }
            }
            callback(null);
          }
        });
      }
      /**
       * @param {CacheKey} key
       */
      delete(key) {
        if (typeof key !== "object") {
          throw new TypeError(`expected key to be object, got ${typeof key}`);
        }
        const topLevelKey = `${key.origin}:${key.path}`;
        for (const entry of this.#entries.get(topLevelKey) ?? []) {
          this.#size -= entry.size;
          this.#count -= 1;
        }
        this.#entries.delete(topLevelKey);
      }
    };
    function findEntry(key, entries3, now) {
      return entries3.find((entry) => entry.deleteAt > now && entry.method === key.method && (entry.vary == null || Object.keys(entry.vary).every((headerName) => {
        if (entry.vary[headerName] === null) {
          return key.headers[headerName] === void 0;
        }
        return entry.vary[headerName] === key.headers[headerName];
      })));
    }
    module.exports = MemoryCacheStore;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/cache-revalidation-handler.js
var require_cache_revalidation_handler = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/cache-revalidation-handler.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var CacheRevalidationHandler = class {
      #successful = false;
      /**
       * @type {((boolean, any) => void) | null}
       */
      #callback;
      /**
       * @type {(import('../../types/dispatcher.d.ts').default.DispatchHandler)}
       */
      #handler;
      #context;
      /**
       * @type {boolean}
       */
      #allowErrorStatusCodes;
      /**
       * @param {(boolean) => void} callback Function to call if the cached value is valid
       * @param {import('../../types/dispatcher.d.ts').default.DispatchHandlers} handler
       * @param {boolean} allowErrorStatusCodes
       */
      constructor(callback, handler, allowErrorStatusCodes) {
        if (typeof callback !== "function") {
          throw new TypeError("callback must be a function");
        }
        this.#callback = callback;
        this.#handler = handler;
        this.#allowErrorStatusCodes = allowErrorStatusCodes;
      }
      onRequestStart(_, context) {
        this.#successful = false;
        this.#context = context;
      }
      onRequestUpgrade(controller, statusCode, headers, socket) {
        this.#handler.onRequestUpgrade?.(controller, statusCode, headers, socket);
      }
      onResponseStart(controller, statusCode, headers, statusMessage) {
        assert3(this.#callback != null);
        this.#successful = statusCode === 304 || this.#allowErrorStatusCodes && statusCode >= 500 && statusCode <= 504;
        this.#callback(this.#successful, this.#context);
        this.#callback = null;
        if (this.#successful) {
          return true;
        }
        this.#handler.onRequestStart?.(controller, this.#context);
        this.#handler.onResponseStart?.(
          controller,
          statusCode,
          headers,
          statusMessage
        );
      }
      onResponseData(controller, chunk3) {
        if (this.#successful) {
          return;
        }
        return this.#handler.onResponseData?.(controller, chunk3);
      }
      onResponseEnd(controller, trailers) {
        if (this.#successful) {
          return;
        }
        this.#handler.onResponseEnd?.(controller, trailers);
      }
      onResponseError(controller, err2) {
        if (this.#successful) {
          return;
        }
        if (this.#callback) {
          this.#callback(false);
          this.#callback = null;
        }
        if (typeof this.#handler.onResponseError === "function") {
          this.#handler.onResponseError(controller, err2);
        } else {
          throw err2;
        }
      }
    };
    module.exports = CacheRevalidationHandler;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/cache.js
var require_cache2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/cache.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { Readable: Readable3 } = __require("node:stream");
    var util3 = require_util4();
    var CacheHandler = require_cache_handler();
    var MemoryCacheStore = require_memory_cache_store();
    var CacheRevalidationHandler = require_cache_revalidation_handler();
    var { assertCacheStore, assertCacheMethods, makeCacheKey, normalizeHeaders, parseCacheControlHeader } = require_cache();
    var { AbortError: AbortError3 } = require_errors5();
    function assertCacheOrigins(origins, name) {
      if (origins === void 0) return;
      if (!Array.isArray(origins)) {
        throw new TypeError(`expected ${name} to be an array or undefined, got ${typeof origins}`);
      }
      for (let i5 = 0; i5 < origins.length; i5++) {
        const origin2 = origins[i5];
        if (typeof origin2 !== "string" && !(origin2 instanceof RegExp)) {
          throw new TypeError(`expected ${name}[${i5}] to be a string or RegExp, got ${typeof origin2}`);
        }
      }
    }
    var nop = () => {
    };
    function needsRevalidation(result, cacheControlDirectives, { headers = {} }) {
      if (cacheControlDirectives?.["no-cache"]) {
        return true;
      }
      if (result.cacheControlDirectives?.["no-cache"] && !Array.isArray(result.cacheControlDirectives["no-cache"])) {
        return true;
      }
      if (headers["if-modified-since"] || headers["if-none-match"]) {
        return true;
      }
      return false;
    }
    function isStale(result, cacheControlDirectives) {
      const now = Date.now();
      if (now > result.staleAt) {
        if (cacheControlDirectives?.["max-stale"]) {
          const gracePeriod = result.staleAt + cacheControlDirectives["max-stale"] * 1e3;
          return now > gracePeriod;
        }
        return true;
      }
      if (cacheControlDirectives?.["min-fresh"]) {
        const timeLeftTillStale = result.staleAt - now;
        const threshold = cacheControlDirectives["min-fresh"] * 1e3;
        return timeLeftTillStale <= threshold;
      }
      return false;
    }
    function withinStaleWhileRevalidateWindow(result) {
      const staleWhileRevalidate = result.cacheControlDirectives?.["stale-while-revalidate"];
      if (!staleWhileRevalidate) {
        return false;
      }
      const now = Date.now();
      const staleWhileRevalidateExpiry = result.staleAt + staleWhileRevalidate * 1e3;
      return now <= staleWhileRevalidateExpiry;
    }
    function handleUncachedResponse(dispatch, globalOpts, cacheKey, handler, opts2, reqCacheControl) {
      if (reqCacheControl?.["only-if-cached"]) {
        let aborted = false;
        try {
          if (typeof handler.onConnect === "function") {
            handler.onConnect(() => {
              aborted = true;
            });
            if (aborted) {
              return;
            }
          }
          if (typeof handler.onHeaders === "function") {
            handler.onHeaders(504, [], nop, "Gateway Timeout");
            if (aborted) {
              return;
            }
          }
          if (typeof handler.onComplete === "function") {
            handler.onComplete([]);
          }
        } catch (err2) {
          if (typeof handler.onError === "function") {
            handler.onError(err2);
          }
        }
        return true;
      }
      return dispatch(opts2, new CacheHandler(globalOpts, cacheKey, handler));
    }
    function sendCachedValue(handler, opts2, result, age, context, isStale2) {
      const stream7 = util3.isStream(result.body) ? result.body : Readable3.from(result.body ?? []);
      assert3(!stream7.destroyed, "stream should not be destroyed");
      assert3(!stream7.readableDidRead, "stream should not be readableDidRead");
      const controller = {
        resume() {
          stream7.resume();
        },
        pause() {
          stream7.pause();
        },
        get paused() {
          return stream7.isPaused();
        },
        get aborted() {
          return stream7.destroyed;
        },
        get reason() {
          return stream7.errored;
        },
        abort(reason) {
          stream7.destroy(reason ?? new AbortError3());
        }
      };
      stream7.on("error", function(err2) {
        if (!this.readableEnded) {
          if (typeof handler.onResponseError === "function") {
            handler.onResponseError(controller, err2);
          } else {
            throw err2;
          }
        }
      }).on("close", function() {
        if (!this.errored) {
          handler.onResponseEnd?.(controller, {});
        }
      });
      handler.onRequestStart?.(controller, context);
      if (stream7.destroyed) {
        return;
      }
      const headers = { ...result.headers, age: String(age) };
      if (isStale2) {
        headers.warning = '110 - "response is stale"';
      }
      handler.onResponseStart?.(controller, result.statusCode, headers, result.statusMessage);
      if (opts2.method === "HEAD") {
        stream7.destroy();
      } else {
        stream7.on("data", function(chunk3) {
          handler.onResponseData?.(controller, chunk3);
        });
      }
    }
    function handleResult(dispatch, globalOpts, cacheKey, handler, opts2, reqCacheControl, result) {
      if (!result) {
        return handleUncachedResponse(dispatch, globalOpts, cacheKey, handler, opts2, reqCacheControl);
      }
      const now = Date.now();
      if (now > result.deleteAt) {
        return dispatch(opts2, new CacheHandler(globalOpts, cacheKey, handler));
      }
      const age = Math.round((now - result.cachedAt) / 1e3);
      if (reqCacheControl?.["max-age"] && age >= reqCacheControl["max-age"]) {
        return dispatch(opts2, handler);
      }
      const stale = isStale(result, reqCacheControl);
      const revalidate = needsRevalidation(result, reqCacheControl, opts2);
      if (stale || revalidate) {
        if (util3.isStream(opts2.body) && util3.bodyLength(opts2.body) !== 0) {
          return dispatch(opts2, new CacheHandler(globalOpts, cacheKey, handler));
        }
        if (!revalidate && withinStaleWhileRevalidateWindow(result)) {
          sendCachedValue(handler, opts2, result, age, null, true);
          queueMicrotask(() => {
            let headers2 = {
              ...opts2.headers,
              "if-modified-since": new Date(result.cachedAt).toUTCString()
            };
            if (result.etag) {
              headers2["if-none-match"] = result.etag;
            }
            if (result.vary) {
              headers2 = {
                ...headers2,
                ...result.vary
              };
            }
            dispatch(
              {
                ...opts2,
                headers: headers2
              },
              new CacheHandler(globalOpts, cacheKey, {
                // Silent handler that just updates the cache
                onRequestStart() {
                },
                onRequestUpgrade() {
                },
                onResponseStart() {
                },
                onResponseData() {
                },
                onResponseEnd() {
                },
                onResponseError() {
                }
              })
            );
          });
          return true;
        }
        let withinStaleIfErrorThreshold = false;
        const staleIfErrorExpiry = result.cacheControlDirectives["stale-if-error"] ?? reqCacheControl?.["stale-if-error"];
        if (staleIfErrorExpiry) {
          withinStaleIfErrorThreshold = now < result.staleAt + staleIfErrorExpiry * 1e3;
        }
        let headers = {
          ...opts2.headers,
          "if-modified-since": new Date(result.cachedAt).toUTCString()
        };
        if (result.etag) {
          headers["if-none-match"] = result.etag;
        }
        if (result.vary) {
          headers = {
            ...headers,
            ...result.vary
          };
        }
        return dispatch(
          {
            ...opts2,
            headers
          },
          new CacheRevalidationHandler(
            (success, context) => {
              if (success) {
                sendCachedValue(handler, opts2, result, age, context, stale);
              } else if (util3.isStream(result.body)) {
                result.body.on("error", nop).destroy();
              }
            },
            new CacheHandler(globalOpts, cacheKey, handler),
            withinStaleIfErrorThreshold
          )
        );
      }
      if (util3.isStream(opts2.body)) {
        opts2.body.on("error", nop).destroy();
      }
      sendCachedValue(handler, opts2, result, age, null, false);
    }
    module.exports = (opts2 = {}) => {
      const {
        store = new MemoryCacheStore(),
        methods = ["GET"],
        cacheByDefault = void 0,
        type = "shared",
        origins = void 0
      } = opts2;
      if (typeof opts2 !== "object" || opts2 === null) {
        throw new TypeError(`expected type of opts to be an Object, got ${opts2 === null ? "null" : typeof opts2}`);
      }
      assertCacheStore(store, "opts.store");
      assertCacheMethods(methods, "opts.methods");
      assertCacheOrigins(origins, "opts.origins");
      if (typeof cacheByDefault !== "undefined" && typeof cacheByDefault !== "number") {
        throw new TypeError(`expected opts.cacheByDefault to be number or undefined, got ${typeof cacheByDefault}`);
      }
      if (typeof type !== "undefined" && type !== "shared" && type !== "private") {
        throw new TypeError(`expected opts.type to be shared, private, or undefined, got ${typeof type}`);
      }
      const globalOpts = {
        store,
        methods,
        cacheByDefault,
        type
      };
      const safeMethodsToNotCache = util3.safeHTTPMethods.filter((method) => methods.includes(method) === false);
      return (dispatch) => {
        return (opts3, handler) => {
          if (!opts3.origin || safeMethodsToNotCache.includes(opts3.method)) {
            return dispatch(opts3, handler);
          }
          if (origins !== void 0) {
            const requestOrigin = opts3.origin.toString().toLowerCase();
            let isAllowed = false;
            for (let i5 = 0; i5 < origins.length; i5++) {
              const allowed = origins[i5];
              if (typeof allowed === "string") {
                if (allowed.toLowerCase() === requestOrigin) {
                  isAllowed = true;
                  break;
                }
              } else if (allowed.test(requestOrigin)) {
                isAllowed = true;
                break;
              }
            }
            if (!isAllowed) {
              return dispatch(opts3, handler);
            }
          }
          opts3 = {
            ...opts3,
            headers: normalizeHeaders(opts3)
          };
          const reqCacheControl = opts3.headers?.["cache-control"] ? parseCacheControlHeader(opts3.headers["cache-control"]) : void 0;
          if (reqCacheControl?.["no-store"]) {
            return dispatch(opts3, handler);
          }
          const cacheKey = makeCacheKey(opts3);
          const result = store.get(cacheKey);
          if (result && typeof result.then === "function") {
            return result.then((result2) => handleResult(
              dispatch,
              globalOpts,
              cacheKey,
              handler,
              opts3,
              reqCacheControl,
              result2
            ));
          } else {
            return handleResult(
              dispatch,
              globalOpts,
              cacheKey,
              handler,
              opts3,
              reqCacheControl,
              result
            );
          }
        };
      };
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/decompress.js
var require_decompress = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/decompress.js"(exports, module) {
    "use strict";
    var { createInflate, createGunzip, createBrotliDecompress, createZstdDecompress } = __require("node:zlib");
    var { pipeline: pipeline2 } = __require("node:stream");
    var DecoratorHandler = require_decorator_handler();
    var { runtimeFeatures } = require_runtime_features();
    var supportedEncodings = {
      gzip: createGunzip,
      "x-gzip": createGunzip,
      br: createBrotliDecompress,
      deflate: createInflate,
      compress: createInflate,
      "x-compress": createInflate,
      ...runtimeFeatures.has("zstd") ? { zstd: createZstdDecompress } : {}
    };
    var defaultSkipStatusCodes = (
      /** @type {const} */
      [204, 304]
    );
    var warningEmitted = (
      /** @type {boolean} */
      false
    );
    var DecompressHandler = class extends DecoratorHandler {
      /** @type {Transform[]} */
      #decompressors = [];
      /** @type {Readonly<number[]>} */
      #skipStatusCodes;
      /** @type {boolean} */
      #skipErrorResponses;
      constructor(handler, { skipStatusCodes = defaultSkipStatusCodes, skipErrorResponses = true } = {}) {
        super(handler);
        this.#skipStatusCodes = skipStatusCodes;
        this.#skipErrorResponses = skipErrorResponses;
      }
      /**
       * Determines if decompression should be skipped based on encoding and status code
       * @param {string} contentEncoding - Content-Encoding header value
       * @param {number} statusCode - HTTP status code of the response
       * @returns {boolean} - True if decompression should be skipped
       */
      #shouldSkipDecompression(contentEncoding, statusCode) {
        if (!contentEncoding || statusCode < 200) return true;
        if (this.#skipStatusCodes.includes(statusCode)) return true;
        if (this.#skipErrorResponses && statusCode >= 400) return true;
        return false;
      }
      /**
       * Creates a chain of decompressors for multiple content encodings
       *
       * @param {string} encodings - Comma-separated list of content encodings
       * @returns {Array<DecompressorStream>} - Array of decompressor streams
       * @throws {Error} - If the number of content-encodings exceeds the maximum allowed
       */
      #createDecompressionChain(encodings) {
        const parts = encodings.split(",");
        const maxContentEncodings = 5;
        if (parts.length > maxContentEncodings) {
          throw new Error(`too many content-encodings in response: ${parts.length}, maximum allowed is ${maxContentEncodings}`);
        }
        const decompressors = [];
        for (let i5 = parts.length - 1; i5 >= 0; i5--) {
          const encoding = parts[i5].trim();
          if (!encoding) continue;
          if (!supportedEncodings[encoding]) {
            decompressors.length = 0;
            return decompressors;
          }
          decompressors.push(supportedEncodings[encoding]());
        }
        return decompressors;
      }
      /**
       * Sets up event handlers for a decompressor stream using readable events
       * @param {DecompressorStream} decompressor - The decompressor stream
       * @param {Controller} controller - The controller to coordinate with
       * @returns {void}
       */
      #setupDecompressorEvents(decompressor, controller) {
        decompressor.on("readable", () => {
          let chunk3;
          while ((chunk3 = decompressor.read()) !== null) {
            const result = super.onResponseData(controller, chunk3);
            if (result === false) {
              break;
            }
          }
        });
        decompressor.on("error", (error) => {
          super.onResponseError(controller, error);
        });
      }
      /**
       * Sets up event handling for a single decompressor
       * @param {Controller} controller - The controller to handle events
       * @returns {void}
       */
      #setupSingleDecompressor(controller) {
        const decompressor = this.#decompressors[0];
        this.#setupDecompressorEvents(decompressor, controller);
        decompressor.on("end", () => {
          super.onResponseEnd(controller, {});
        });
      }
      /**
       * Sets up event handling for multiple chained decompressors using pipeline
       * @param {Controller} controller - The controller to handle events
       * @returns {void}
       */
      #setupMultipleDecompressors(controller) {
        const lastDecompressor = this.#decompressors[this.#decompressors.length - 1];
        this.#setupDecompressorEvents(lastDecompressor, controller);
        pipeline2(this.#decompressors, (err2) => {
          if (err2) {
            super.onResponseError(controller, err2);
            return;
          }
          super.onResponseEnd(controller, {});
        });
      }
      /**
       * Cleans up decompressor references to prevent memory leaks
       * @returns {void}
       */
      #cleanupDecompressors() {
        this.#decompressors.length = 0;
      }
      /**
       * @param {Controller} controller
       * @param {number} statusCode
       * @param {Record<string, string | string[] | undefined>} headers
       * @param {string} statusMessage
       * @returns {void}
       */
      onResponseStart(controller, statusCode, headers, statusMessage) {
        const contentEncoding = headers["content-encoding"];
        if (this.#shouldSkipDecompression(contentEncoding, statusCode)) {
          return super.onResponseStart(controller, statusCode, headers, statusMessage);
        }
        const decompressors = this.#createDecompressionChain(contentEncoding.toLowerCase());
        if (decompressors.length === 0) {
          this.#cleanupDecompressors();
          return super.onResponseStart(controller, statusCode, headers, statusMessage);
        }
        this.#decompressors = decompressors;
        const { "content-encoding": _, "content-length": __, ...newHeaders } = headers;
        if (this.#decompressors.length === 1) {
          this.#setupSingleDecompressor(controller);
        } else {
          this.#setupMultipleDecompressors(controller);
        }
        return super.onResponseStart(controller, statusCode, newHeaders, statusMessage);
      }
      /**
       * @param {Controller} controller
       * @param {Buffer} chunk
       * @returns {void}
       */
      onResponseData(controller, chunk3) {
        if (this.#decompressors.length > 0) {
          this.#decompressors[0].write(chunk3);
          return;
        }
        super.onResponseData(controller, chunk3);
      }
      /**
       * @param {Controller} controller
       * @param {Record<string, string | string[]> | undefined} trailers
       * @returns {void}
       */
      onResponseEnd(controller, trailers) {
        if (this.#decompressors.length > 0) {
          this.#decompressors[0].end();
          this.#cleanupDecompressors();
          return;
        }
        super.onResponseEnd(controller, trailers);
      }
      /**
       * @param {Controller} controller
       * @param {Error} err
       * @returns {void}
       */
      onResponseError(controller, err2) {
        if (this.#decompressors.length > 0) {
          for (const decompressor of this.#decompressors) {
            decompressor.destroy(err2);
          }
          this.#cleanupDecompressors();
        }
        super.onResponseError(controller, err2);
      }
    };
    function createDecompressInterceptor(options = {}) {
      if (!warningEmitted) {
        process.emitWarning(
          "DecompressInterceptor is experimental and subject to change",
          "ExperimentalWarning"
        );
        warningEmitted = true;
      }
      return (dispatch) => {
        return (opts2, handler) => {
          const decompressHandler = new DecompressHandler(handler, options);
          return dispatch(opts2, decompressHandler);
        };
      };
    }
    module.exports = createDecompressInterceptor;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/deduplication-handler.js
var require_deduplication_handler = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/handler/deduplication-handler.js"(exports, module) {
    "use strict";
    var DeduplicationHandler = class {
      /**
       * @type {DispatchHandler}
       */
      #primaryHandler;
      /**
       * @type {DispatchHandler[]}
       */
      #waitingHandlers = [];
      /**
       * @type {Buffer[]}
       */
      #chunks = [];
      /**
       * @type {number}
       */
      #statusCode = 0;
      /**
       * @type {Record<string, string | string[]>}
       */
      #headers = {};
      /**
       * @type {string}
       */
      #statusMessage = "";
      /**
       * @type {boolean}
       */
      #aborted = false;
      /**
       * @type {import('../../types/dispatcher.d.ts').default.DispatchController | null}
       */
      #controller = null;
      /**
       * @type {(() => void) | null}
       */
      #onComplete = null;
      /**
       * @param {DispatchHandler} primaryHandler The primary handler
       * @param {() => void} onComplete Callback when request completes
       */
      constructor(primaryHandler, onComplete) {
        this.#primaryHandler = primaryHandler;
        this.#onComplete = onComplete;
      }
      /**
       * Add a waiting handler that will receive the buffered response
       * @param {DispatchHandler} handler
       */
      addWaitingHandler(handler) {
        this.#waitingHandlers.push(handler);
      }
      /**
       * @param {() => void} abort
       * @param {any} context
       */
      onRequestStart(controller, context) {
        this.#controller = controller;
        this.#primaryHandler.onRequestStart?.(controller, context);
      }
      /**
       * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
       * @param {number} statusCode
       * @param {import('../../types/header.d.ts').IncomingHttpHeaders} headers
       * @param {Socket} socket
       */
      onRequestUpgrade(controller, statusCode, headers, socket) {
        this.#primaryHandler.onRequestUpgrade?.(controller, statusCode, headers, socket);
      }
      /**
       * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
       * @param {number} statusCode
       * @param {Record<string, string | string[]>} headers
       * @param {string} statusMessage
       */
      onResponseStart(controller, statusCode, headers, statusMessage) {
        this.#statusCode = statusCode;
        this.#headers = headers;
        this.#statusMessage = statusMessage;
        this.#primaryHandler.onResponseStart?.(controller, statusCode, headers, statusMessage);
      }
      /**
       * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
       * @param {Buffer} chunk
       */
      onResponseData(controller, chunk3) {
        this.#chunks.push(Buffer.from(chunk3));
        this.#primaryHandler.onResponseData?.(controller, chunk3);
      }
      /**
       * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
       * @param {object} trailers
       */
      onResponseEnd(controller, trailers) {
        this.#primaryHandler.onResponseEnd?.(controller, trailers);
        this.#notifyWaitingHandlers();
        this.#onComplete?.();
      }
      /**
       * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
       * @param {Error} err
       */
      onResponseError(controller, err2) {
        this.#aborted = true;
        this.#primaryHandler.onResponseError?.(controller, err2);
        this.#notifyWaitingHandlersError(err2);
        this.#onComplete?.();
      }
      /**
       * Notify all waiting handlers with the buffered response
       */
      #notifyWaitingHandlers() {
        const body = Buffer.concat(this.#chunks);
        for (const handler of this.#waitingHandlers) {
          const waitingController = {
            resume() {
            },
            pause() {
            },
            get paused() {
              return false;
            },
            get aborted() {
              return false;
            },
            get reason() {
              return null;
            },
            abort() {
            }
          };
          try {
            handler.onRequestStart?.(waitingController, null);
            if (waitingController.aborted) {
              continue;
            }
            handler.onResponseStart?.(
              waitingController,
              this.#statusCode,
              this.#headers,
              this.#statusMessage
            );
            if (waitingController.aborted) {
              continue;
            }
            if (body.length > 0) {
              handler.onResponseData?.(waitingController, body);
            }
            handler.onResponseEnd?.(waitingController, {});
          } catch {
          }
        }
        this.#waitingHandlers = [];
        this.#chunks = [];
      }
      /**
       * Notify all waiting handlers of an error
       * @param {Error} err
       */
      #notifyWaitingHandlersError(err2) {
        for (const handler of this.#waitingHandlers) {
          const waitingController = {
            resume() {
            },
            pause() {
            },
            get paused() {
              return false;
            },
            get aborted() {
              return true;
            },
            get reason() {
              return err2;
            },
            abort() {
            }
          };
          try {
            handler.onRequestStart?.(waitingController, null);
            handler.onResponseError?.(waitingController, err2);
          } catch {
          }
        }
        this.#waitingHandlers = [];
        this.#chunks = [];
      }
    };
    module.exports = DeduplicationHandler;
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/deduplicate.js
var require_deduplicate = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/interceptor/deduplicate.js"(exports, module) {
    "use strict";
    var diagnosticsChannel2 = __require("node:diagnostics_channel");
    var util3 = require_util4();
    var DeduplicationHandler = require_deduplication_handler();
    var { normalizeHeaders, makeCacheKey, makeDeduplicationKey } = require_cache();
    var pendingRequestsChannel = diagnosticsChannel2.channel("undici:request:pending-requests");
    module.exports = (opts2 = {}) => {
      const {
        methods = ["GET"],
        skipHeaderNames = [],
        excludeHeaderNames = []
      } = opts2;
      if (typeof opts2 !== "object" || opts2 === null) {
        throw new TypeError(`expected type of opts to be an Object, got ${opts2 === null ? "null" : typeof opts2}`);
      }
      if (!Array.isArray(methods)) {
        throw new TypeError(`expected opts.methods to be an array, got ${typeof methods}`);
      }
      for (const method of methods) {
        if (!util3.safeHTTPMethods.includes(method)) {
          throw new TypeError(`expected opts.methods to only contain safe HTTP methods, got ${method}`);
        }
      }
      if (!Array.isArray(skipHeaderNames)) {
        throw new TypeError(`expected opts.skipHeaderNames to be an array, got ${typeof skipHeaderNames}`);
      }
      if (!Array.isArray(excludeHeaderNames)) {
        throw new TypeError(`expected opts.excludeHeaderNames to be an array, got ${typeof excludeHeaderNames}`);
      }
      const skipHeaderNamesSet = new Set(skipHeaderNames.map((name) => name.toLowerCase()));
      const excludeHeaderNamesSet = new Set(excludeHeaderNames.map((name) => name.toLowerCase()));
      const safeMethodsToNotDeduplicate = util3.safeHTTPMethods.filter((method) => methods.includes(method) === false);
      const pendingRequests = /* @__PURE__ */ new Map();
      return (dispatch) => {
        return (opts3, handler) => {
          if (!opts3.origin || safeMethodsToNotDeduplicate.includes(opts3.method)) {
            return dispatch(opts3, handler);
          }
          opts3 = {
            ...opts3,
            headers: normalizeHeaders(opts3)
          };
          if (skipHeaderNamesSet.size > 0) {
            for (const headerName of Object.keys(opts3.headers)) {
              if (skipHeaderNamesSet.has(headerName.toLowerCase())) {
                return dispatch(opts3, handler);
              }
            }
          }
          const cacheKey = makeCacheKey(opts3);
          const dedupeKey = makeDeduplicationKey(cacheKey, excludeHeaderNamesSet);
          const pendingHandler = pendingRequests.get(dedupeKey);
          if (pendingHandler) {
            pendingHandler.addWaitingHandler(handler);
            return true;
          }
          const deduplicationHandler = new DeduplicationHandler(
            handler,
            () => {
              pendingRequests.delete(dedupeKey);
              if (pendingRequestsChannel.hasSubscribers) {
                pendingRequestsChannel.publish({ size: pendingRequests.size, key: dedupeKey, type: "removed" });
              }
            }
          );
          pendingRequests.set(dedupeKey, deduplicationHandler);
          if (pendingRequestsChannel.hasSubscribers) {
            pendingRequestsChannel.publish({ size: pendingRequests.size, key: dedupeKey, type: "added" });
          }
          return dispatch(opts3, deduplicationHandler);
        };
      };
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/cache/sqlite-cache-store.js
var require_sqlite_cache_store = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/cache/sqlite-cache-store.js"(exports, module) {
    "use strict";
    var { Writable } = __require("node:stream");
    var { assertCacheKey, assertCacheValue } = require_cache();
    var DatabaseSync;
    var VERSION3 = 3;
    var MAX_ENTRY_SIZE = 2 * 1e3 * 1e3 * 1e3;
    module.exports = class SqliteCacheStore {
      #maxEntrySize = MAX_ENTRY_SIZE;
      #maxCount = Infinity;
      /**
       * @type {import('node:sqlite').DatabaseSync}
       */
      #db;
      /**
       * @type {import('node:sqlite').StatementSync}
       */
      #getValuesQuery;
      /**
       * @type {import('node:sqlite').StatementSync}
       */
      #updateValueQuery;
      /**
       * @type {import('node:sqlite').StatementSync}
       */
      #insertValueQuery;
      /**
       * @type {import('node:sqlite').StatementSync}
       */
      #deleteExpiredValuesQuery;
      /**
       * @type {import('node:sqlite').StatementSync}
       */
      #deleteByUrlQuery;
      /**
       * @type {import('node:sqlite').StatementSync}
       */
      #countEntriesQuery;
      /**
       * @type {import('node:sqlite').StatementSync | null}
       */
      #deleteOldValuesQuery;
      /**
       * @param {import('../../types/cache-interceptor.d.ts').default.SqliteCacheStoreOpts | undefined} opts
       */
      constructor(opts2) {
        if (opts2) {
          if (typeof opts2 !== "object") {
            throw new TypeError("SqliteCacheStore options must be an object");
          }
          if (opts2.maxEntrySize !== void 0) {
            if (typeof opts2.maxEntrySize !== "number" || !Number.isInteger(opts2.maxEntrySize) || opts2.maxEntrySize < 0) {
              throw new TypeError("SqliteCacheStore options.maxEntrySize must be a non-negative integer");
            }
            if (opts2.maxEntrySize > MAX_ENTRY_SIZE) {
              throw new TypeError("SqliteCacheStore options.maxEntrySize must be less than 2gb");
            }
            this.#maxEntrySize = opts2.maxEntrySize;
          }
          if (opts2.maxCount !== void 0) {
            if (typeof opts2.maxCount !== "number" || !Number.isInteger(opts2.maxCount) || opts2.maxCount < 0) {
              throw new TypeError("SqliteCacheStore options.maxCount must be a non-negative integer");
            }
            this.#maxCount = opts2.maxCount;
          }
        }
        if (!DatabaseSync) {
          DatabaseSync = __require("node:sqlite").DatabaseSync;
        }
        this.#db = new DatabaseSync(opts2?.location ?? ":memory:");
        this.#db.exec(`
      PRAGMA journal_mode = WAL;
      PRAGMA synchronous = NORMAL;
      PRAGMA temp_store = memory;
      PRAGMA optimize;

      CREATE TABLE IF NOT EXISTS cacheInterceptorV${VERSION3} (
        -- Data specific to us
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        url TEXT NOT NULL,
        method TEXT NOT NULL,

        -- Data returned to the interceptor
        body BUF NULL,
        deleteAt INTEGER NOT NULL,
        statusCode INTEGER NOT NULL,
        statusMessage TEXT NOT NULL,
        headers TEXT NULL,
        cacheControlDirectives TEXT NULL,
        etag TEXT NULL,
        vary TEXT NULL,
        cachedAt INTEGER NOT NULL,
        staleAt INTEGER NOT NULL
      );

      CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION3}_getValuesQuery ON cacheInterceptorV${VERSION3}(url, method, deleteAt);
      CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION3}_deleteByUrlQuery ON cacheInterceptorV${VERSION3}(deleteAt);
    `);
        this.#getValuesQuery = this.#db.prepare(`
      SELECT
        id,
        body,
        deleteAt,
        statusCode,
        statusMessage,
        headers,
        etag,
        cacheControlDirectives,
        vary,
        cachedAt,
        staleAt
      FROM cacheInterceptorV${VERSION3}
      WHERE
        url = ?
        AND method = ?
      ORDER BY
        deleteAt ASC
    `);
        this.#updateValueQuery = this.#db.prepare(`
      UPDATE cacheInterceptorV${VERSION3} SET
        body = ?,
        deleteAt = ?,
        statusCode = ?,
        statusMessage = ?,
        headers = ?,
        etag = ?,
        cacheControlDirectives = ?,
        cachedAt = ?,
        staleAt = ?
      WHERE
        id = ?
    `);
        this.#insertValueQuery = this.#db.prepare(`
      INSERT INTO cacheInterceptorV${VERSION3} (
        url,
        method,
        body,
        deleteAt,
        statusCode,
        statusMessage,
        headers,
        etag,
        cacheControlDirectives,
        vary,
        cachedAt,
        staleAt
      ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
    `);
        this.#deleteByUrlQuery = this.#db.prepare(
          `DELETE FROM cacheInterceptorV${VERSION3} WHERE url = ?`
        );
        this.#countEntriesQuery = this.#db.prepare(
          `SELECT COUNT(*) AS total FROM cacheInterceptorV${VERSION3}`
        );
        this.#deleteExpiredValuesQuery = this.#db.prepare(
          `DELETE FROM cacheInterceptorV${VERSION3} WHERE deleteAt <= ?`
        );
        this.#deleteOldValuesQuery = this.#maxCount === Infinity ? null : this.#db.prepare(`
        DELETE FROM cacheInterceptorV${VERSION3}
        WHERE id IN (
          SELECT
            id
          FROM cacheInterceptorV${VERSION3}
          ORDER BY cachedAt DESC
          LIMIT ?
        )
      `);
      }
      close() {
        this.#db.close();
      }
      /**
       * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key
       * @returns {(import('../../types/cache-interceptor.d.ts').default.GetResult & { body?: Buffer }) | undefined}
       */
      get(key) {
        assertCacheKey(key);
        const value2 = this.#findValue(key);
        return value2 ? {
          body: value2.body ? Buffer.from(value2.body.buffer, value2.body.byteOffset, value2.body.byteLength) : void 0,
          statusCode: value2.statusCode,
          statusMessage: value2.statusMessage,
          headers: value2.headers ? JSON.parse(value2.headers) : void 0,
          etag: value2.etag ? value2.etag : void 0,
          vary: value2.vary ? JSON.parse(value2.vary) : void 0,
          cacheControlDirectives: value2.cacheControlDirectives ? JSON.parse(value2.cacheControlDirectives) : void 0,
          cachedAt: value2.cachedAt,
          staleAt: value2.staleAt,
          deleteAt: value2.deleteAt
        } : void 0;
      }
      /**
       * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key
       * @param {import('../../types/cache-interceptor.d.ts').default.CacheValue & { body: null | Buffer | Array<Buffer>}} value
       */
      set(key, value2) {
        assertCacheKey(key);
        const url3 = this.#makeValueUrl(key);
        const body = Array.isArray(value2.body) ? Buffer.concat(value2.body) : value2.body;
        const size = body?.byteLength;
        if (size && size > this.#maxEntrySize) {
          return;
        }
        const existingValue = this.#findValue(key, true);
        if (existingValue) {
          this.#updateValueQuery.run(
            body,
            value2.deleteAt,
            value2.statusCode,
            value2.statusMessage,
            value2.headers ? JSON.stringify(value2.headers) : null,
            value2.etag ? value2.etag : null,
            value2.cacheControlDirectives ? JSON.stringify(value2.cacheControlDirectives) : null,
            value2.cachedAt,
            value2.staleAt,
            existingValue.id
          );
        } else {
          this.#prune();
          this.#insertValueQuery.run(
            url3,
            key.method,
            body,
            value2.deleteAt,
            value2.statusCode,
            value2.statusMessage,
            value2.headers ? JSON.stringify(value2.headers) : null,
            value2.etag ? value2.etag : null,
            value2.cacheControlDirectives ? JSON.stringify(value2.cacheControlDirectives) : null,
            value2.vary ? JSON.stringify(value2.vary) : null,
            value2.cachedAt,
            value2.staleAt
          );
        }
      }
      /**
       * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key
       * @param {import('../../types/cache-interceptor.d.ts').default.CacheValue} value
       * @returns {Writable | undefined}
       */
      createWriteStream(key, value2) {
        assertCacheKey(key);
        assertCacheValue(value2);
        let size = 0;
        const body = [];
        const store = this;
        return new Writable({
          decodeStrings: true,
          write(chunk3, encoding, callback) {
            size += chunk3.byteLength;
            if (size < store.#maxEntrySize) {
              body.push(chunk3);
            } else {
              this.destroy();
            }
            callback();
          },
          final(callback) {
            store.set(key, { ...value2, body });
            callback();
          }
        });
      }
      /**
       * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key
       */
      delete(key) {
        if (typeof key !== "object") {
          throw new TypeError(`expected key to be object, got ${typeof key}`);
        }
        this.#deleteByUrlQuery.run(this.#makeValueUrl(key));
      }
      #prune() {
        if (Number.isFinite(this.#maxCount) && this.size <= this.#maxCount) {
          return 0;
        }
        {
          const removed = this.#deleteExpiredValuesQuery.run(Date.now()).changes;
          if (removed) {
            return removed;
          }
        }
        {
          const removed = this.#deleteOldValuesQuery?.run(Math.max(Math.floor(this.#maxCount * 0.1), 1)).changes;
          if (removed) {
            return removed;
          }
        }
        return 0;
      }
      /**
       * Counts the number of rows in the cache
       * @returns {Number}
       */
      get size() {
        const { total } = this.#countEntriesQuery.get();
        return total;
      }
      /**
       * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key
       * @returns {string}
       */
      #makeValueUrl(key) {
        return `${key.origin}/${key.path}`;
      }
      /**
       * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key
       * @param {boolean} [canBeExpired=false]
       * @returns {SqliteStoreValue | undefined}
       */
      #findValue(key, canBeExpired = false) {
        const url3 = this.#makeValueUrl(key);
        const { headers, method } = key;
        const values = this.#getValuesQuery.all(url3, method);
        if (values.length === 0) {
          return void 0;
        }
        const now = Date.now();
        for (const value2 of values) {
          if (now >= value2.deleteAt && !canBeExpired) {
            return void 0;
          }
          let matches = true;
          if (value2.vary) {
            const vary = JSON.parse(value2.vary);
            for (const header in vary) {
              if (!headerValueEquals(headers[header], vary[header])) {
                matches = false;
                break;
              }
            }
          }
          if (matches) {
            return value2;
          }
        }
        return void 0;
      }
    };
    function headerValueEquals(lhs, rhs) {
      if (lhs == null && rhs == null) {
        return true;
      }
      if (lhs == null && rhs != null || lhs != null && rhs == null) {
        return false;
      }
      if (Array.isArray(lhs) && Array.isArray(rhs)) {
        if (lhs.length !== rhs.length) {
          return false;
        }
        return lhs.every((x, i5) => x === rhs[i5]);
      }
      return lhs === rhs;
    }
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/headers.js
var require_headers2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/headers.js"(exports, module) {
    "use strict";
    var { kConstruct } = require_symbols2();
    var { kEnumerableProperty } = require_util4();
    var {
      iteratorMixin,
      isValidHeaderName: isValidHeaderName2,
      isValidHeaderValue
    } = require_util5();
    var { webidl } = require_webidl();
    var assert3 = __require("node:assert");
    var util3 = __require("node:util");
    function isHTTPWhiteSpaceCharCode(code) {
      return code === 10 || code === 13 || code === 9 || code === 32;
    }
    function headerValueNormalize(potentialValue) {
      let i5 = 0;
      let j = potentialValue.length;
      while (j > i5 && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j;
      while (j > i5 && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i5))) ++i5;
      return i5 === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i5, j);
    }
    function fill(headers, object) {
      if (Array.isArray(object)) {
        for (let i5 = 0; i5 < object.length; ++i5) {
          const header = object[i5];
          if (header.length !== 2) {
            throw webidl.errors.exception({
              header: "Headers constructor",
              message: `expected name/value pair to be length 2, found ${header.length}.`
            });
          }
          appendHeader(headers, header[0], header[1]);
        }
      } else if (typeof object === "object" && object !== null) {
        const keys2 = Object.keys(object);
        for (let i5 = 0; i5 < keys2.length; ++i5) {
          appendHeader(headers, keys2[i5], object[keys2[i5]]);
        }
      } else {
        throw webidl.errors.conversionFailed({
          prefix: "Headers constructor",
          argument: "Argument 1",
          types: ["sequence<sequence<ByteString>>", "record<ByteString, ByteString>"]
        });
      }
    }
    function appendHeader(headers, name, value2) {
      value2 = headerValueNormalize(value2);
      if (!isValidHeaderName2(name)) {
        throw webidl.errors.invalidArgument({
          prefix: "Headers.append",
          value: name,
          type: "header name"
        });
      } else if (!isValidHeaderValue(value2)) {
        throw webidl.errors.invalidArgument({
          prefix: "Headers.append",
          value: value2,
          type: "header value"
        });
      }
      if (getHeadersGuard(headers) === "immutable") {
        throw new TypeError("immutable");
      }
      return getHeadersList(headers).append(name, value2, false);
    }
    function headersListSortAndCombine(target) {
      const headersList = getHeadersList(target);
      if (!headersList) {
        return [];
      }
      if (headersList.sortedMap) {
        return headersList.sortedMap;
      }
      const headers = [];
      const names = headersList.toSortedArray();
      const cookies = headersList.cookies;
      if (cookies === null || cookies.length === 1) {
        return headersList.sortedMap = names;
      }
      for (let i5 = 0; i5 < names.length; ++i5) {
        const { 0: name, 1: value2 } = names[i5];
        if (name === "set-cookie") {
          for (let j = 0; j < cookies.length; ++j) {
            headers.push([name, cookies[j]]);
          }
        } else {
          headers.push([name, value2]);
        }
      }
      return headersList.sortedMap = headers;
    }
    function compareHeaderName(a5, b3) {
      return a5[0] < b3[0] ? -1 : 1;
    }
    var HeadersList = class _HeadersList {
      /** @type {[string, string][]|null} */
      cookies = null;
      sortedMap;
      headersMap;
      constructor(init3) {
        if (init3 instanceof _HeadersList) {
          this.headersMap = new Map(init3.headersMap);
          this.sortedMap = init3.sortedMap;
          this.cookies = init3.cookies === null ? null : [...init3.cookies];
        } else {
          this.headersMap = new Map(init3);
          this.sortedMap = null;
        }
      }
      /**
       * @see https://fetch.spec.whatwg.org/#header-list-contains
       * @param {string} name
       * @param {boolean} isLowerCase
       */
      contains(name, isLowerCase) {
        return this.headersMap.has(isLowerCase ? name : name.toLowerCase());
      }
      clear() {
        this.headersMap.clear();
        this.sortedMap = null;
        this.cookies = null;
      }
      /**
       * @see https://fetch.spec.whatwg.org/#concept-header-list-append
       * @param {string} name
       * @param {string} value
       * @param {boolean} isLowerCase
       */
      append(name, value2, isLowerCase) {
        this.sortedMap = null;
        const lowercaseName = isLowerCase ? name : name.toLowerCase();
        const exists = this.headersMap.get(lowercaseName);
        if (exists) {
          const delimiter = lowercaseName === "cookie" ? "; " : ", ";
          this.headersMap.set(lowercaseName, {
            name: exists.name,
            value: `${exists.value}${delimiter}${value2}`
          });
        } else {
          this.headersMap.set(lowercaseName, { name, value: value2 });
        }
        if (lowercaseName === "set-cookie") {
          (this.cookies ??= []).push(value2);
        }
      }
      /**
       * @see https://fetch.spec.whatwg.org/#concept-header-list-set
       * @param {string} name
       * @param {string} value
       * @param {boolean} isLowerCase
       */
      set(name, value2, isLowerCase) {
        this.sortedMap = null;
        const lowercaseName = isLowerCase ? name : name.toLowerCase();
        if (lowercaseName === "set-cookie") {
          this.cookies = [value2];
        }
        this.headersMap.set(lowercaseName, { name, value: value2 });
      }
      /**
       * @see https://fetch.spec.whatwg.org/#concept-header-list-delete
       * @param {string} name
       * @param {boolean} isLowerCase
       */
      delete(name, isLowerCase) {
        this.sortedMap = null;
        if (!isLowerCase) name = name.toLowerCase();
        if (name === "set-cookie") {
          this.cookies = null;
        }
        this.headersMap.delete(name);
      }
      /**
       * @see https://fetch.spec.whatwg.org/#concept-header-list-get
       * @param {string} name
       * @param {boolean} isLowerCase
       * @returns {string | null}
       */
      get(name, isLowerCase) {
        return this.headersMap.get(isLowerCase ? name : name.toLowerCase())?.value ?? null;
      }
      *[Symbol.iterator]() {
        for (const { 0: name, 1: { value: value2 } } of this.headersMap) {
          yield [name, value2];
        }
      }
      get entries() {
        const headers = {};
        if (this.headersMap.size !== 0) {
          for (const { name, value: value2 } of this.headersMap.values()) {
            headers[name] = value2;
          }
        }
        return headers;
      }
      rawValues() {
        return this.headersMap.values();
      }
      get entriesList() {
        const headers = [];
        if (this.headersMap.size !== 0) {
          for (const { 0: lowerName, 1: { name, value: value2 } } of this.headersMap) {
            if (lowerName === "set-cookie") {
              for (const cookie of this.cookies) {
                headers.push([name, cookie]);
              }
            } else {
              headers.push([name, value2]);
            }
          }
        }
        return headers;
      }
      // https://fetch.spec.whatwg.org/#convert-header-names-to-a-sorted-lowercase-set
      toSortedArray() {
        const size = this.headersMap.size;
        const array = new Array(size);
        if (size <= 32) {
          if (size === 0) {
            return array;
          }
          const iterator2 = this.headersMap[Symbol.iterator]();
          const firstValue = iterator2.next().value;
          array[0] = [firstValue[0], firstValue[1].value];
          assert3(firstValue[1].value !== null);
          for (let i5 = 1, j = 0, right = 0, left = 0, pivot = 0, x, value2; i5 < size; ++i5) {
            value2 = iterator2.next().value;
            x = array[i5] = [value2[0], value2[1].value];
            assert3(x[1] !== null);
            left = 0;
            right = i5;
            while (left < right) {
              pivot = left + (right - left >> 1);
              if (array[pivot][0] <= x[0]) {
                left = pivot + 1;
              } else {
                right = pivot;
              }
            }
            if (i5 !== pivot) {
              j = i5;
              while (j > left) {
                array[j] = array[--j];
              }
              array[left] = x;
            }
          }
          if (!iterator2.next().done) {
            throw new TypeError("Unreachable");
          }
          return array;
        } else {
          let i5 = 0;
          for (const { 0: name, 1: { value: value2 } } of this.headersMap) {
            array[i5++] = [name, value2];
            assert3(value2 !== null);
          }
          return array.sort(compareHeaderName);
        }
      }
    };
    var Headers = class _Headers {
      #guard;
      /**
       * @type {HeadersList}
       */
      #headersList;
      /**
       * @param {HeadersInit|Symbol} [init]
       * @returns
       */
      constructor(init3 = void 0) {
        webidl.util.markAsUncloneable(this);
        if (init3 === kConstruct) {
          return;
        }
        this.#headersList = new HeadersList();
        this.#guard = "none";
        if (init3 !== void 0) {
          init3 = webidl.converters.HeadersInit(init3, "Headers constructor", "init");
          fill(this, init3);
        }
      }
      // https://fetch.spec.whatwg.org/#dom-headers-append
      append(name, value2) {
        webidl.brandCheck(this, _Headers);
        webidl.argumentLengthCheck(arguments, 2, "Headers.append");
        const prefix = "Headers.append";
        name = webidl.converters.ByteString(name, prefix, "name");
        value2 = webidl.converters.ByteString(value2, prefix, "value");
        return appendHeader(this, name, value2);
      }
      // https://fetch.spec.whatwg.org/#dom-headers-delete
      delete(name) {
        webidl.brandCheck(this, _Headers);
        webidl.argumentLengthCheck(arguments, 1, "Headers.delete");
        const prefix = "Headers.delete";
        name = webidl.converters.ByteString(name, prefix, "name");
        if (!isValidHeaderName2(name)) {
          throw webidl.errors.invalidArgument({
            prefix: "Headers.delete",
            value: name,
            type: "header name"
          });
        }
        if (this.#guard === "immutable") {
          throw new TypeError("immutable");
        }
        if (!this.#headersList.contains(name, false)) {
          return;
        }
        this.#headersList.delete(name, false);
      }
      // https://fetch.spec.whatwg.org/#dom-headers-get
      get(name) {
        webidl.brandCheck(this, _Headers);
        webidl.argumentLengthCheck(arguments, 1, "Headers.get");
        const prefix = "Headers.get";
        name = webidl.converters.ByteString(name, prefix, "name");
        if (!isValidHeaderName2(name)) {
          throw webidl.errors.invalidArgument({
            prefix,
            value: name,
            type: "header name"
          });
        }
        return this.#headersList.get(name, false);
      }
      // https://fetch.spec.whatwg.org/#dom-headers-has
      has(name) {
        webidl.brandCheck(this, _Headers);
        webidl.argumentLengthCheck(arguments, 1, "Headers.has");
        const prefix = "Headers.has";
        name = webidl.converters.ByteString(name, prefix, "name");
        if (!isValidHeaderName2(name)) {
          throw webidl.errors.invalidArgument({
            prefix,
            value: name,
            type: "header name"
          });
        }
        return this.#headersList.contains(name, false);
      }
      // https://fetch.spec.whatwg.org/#dom-headers-set
      set(name, value2) {
        webidl.brandCheck(this, _Headers);
        webidl.argumentLengthCheck(arguments, 2, "Headers.set");
        const prefix = "Headers.set";
        name = webidl.converters.ByteString(name, prefix, "name");
        value2 = webidl.converters.ByteString(value2, prefix, "value");
        value2 = headerValueNormalize(value2);
        if (!isValidHeaderName2(name)) {
          throw webidl.errors.invalidArgument({
            prefix,
            value: name,
            type: "header name"
          });
        } else if (!isValidHeaderValue(value2)) {
          throw webidl.errors.invalidArgument({
            prefix,
            value: value2,
            type: "header value"
          });
        }
        if (this.#guard === "immutable") {
          throw new TypeError("immutable");
        }
        this.#headersList.set(name, value2, false);
      }
      // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie
      getSetCookie() {
        webidl.brandCheck(this, _Headers);
        const list = this.#headersList.cookies;
        if (list) {
          return [...list];
        }
        return [];
      }
      [util3.inspect.custom](depth, options) {
        options.depth ??= depth;
        return `Headers ${util3.formatWithOptions(options, this.#headersList.entries)}`;
      }
      static getHeadersGuard(o5) {
        return o5.#guard;
      }
      static setHeadersGuard(o5, guard) {
        o5.#guard = guard;
      }
      /**
       * @param {Headers} o
       */
      static getHeadersList(o5) {
        return o5.#headersList;
      }
      /**
       * @param {Headers} target
       * @param {HeadersList} list
       */
      static setHeadersList(target, list) {
        target.#headersList = list;
      }
    };
    var { getHeadersGuard, setHeadersGuard, getHeadersList, setHeadersList } = Headers;
    Reflect.deleteProperty(Headers, "getHeadersGuard");
    Reflect.deleteProperty(Headers, "setHeadersGuard");
    Reflect.deleteProperty(Headers, "getHeadersList");
    Reflect.deleteProperty(Headers, "setHeadersList");
    iteratorMixin("Headers", Headers, headersListSortAndCombine, 0, 1);
    Object.defineProperties(Headers.prototype, {
      append: kEnumerableProperty,
      delete: kEnumerableProperty,
      get: kEnumerableProperty,
      has: kEnumerableProperty,
      set: kEnumerableProperty,
      getSetCookie: kEnumerableProperty,
      [Symbol.toStringTag]: {
        value: "Headers",
        configurable: true
      },
      [util3.inspect.custom]: {
        enumerable: false
      }
    });
    webidl.converters.HeadersInit = function(V, prefix, argument) {
      if (webidl.util.Type(V) === webidl.util.Types.OBJECT) {
        const iterator2 = Reflect.get(V, Symbol.iterator);
        if (!util3.types.isProxy(V) && iterator2 === Headers.prototype.entries) {
          try {
            return getHeadersList(V).entriesList;
          } catch {
          }
        }
        if (typeof iterator2 === "function") {
          return webidl.converters["sequence<sequence<ByteString>>"](V, prefix, argument, iterator2.bind(V));
        }
        return webidl.converters["record<ByteString, ByteString>"](V, prefix, argument);
      }
      throw webidl.errors.conversionFailed({
        prefix: "Headers constructor",
        argument: "Argument 1",
        types: ["sequence<sequence<ByteString>>", "record<ByteString, ByteString>"]
      });
    };
    module.exports = {
      fill,
      // for test.
      compareHeaderName,
      Headers,
      HeadersList,
      getHeadersGuard,
      setHeadersGuard,
      setHeadersList,
      getHeadersList
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/response.js
var require_response = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/response.js"(exports, module) {
    "use strict";
    var { Headers, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = require_headers2();
    var { extractBody, cloneBody, mixinBody, streamRegistry, bodyUnusable } = require_body();
    var util3 = require_util4();
    var nodeUtil = __require("node:util");
    var { kEnumerableProperty } = util3;
    var {
      isValidReasonPhrase,
      isCancelled,
      isAborted,
      isErrorLike,
      environmentSettingsObject: relevantRealm
    } = require_util5();
    var {
      redirectStatusSet,
      nullBodyStatus
    } = require_constants13();
    var { webidl } = require_webidl();
    var { URLSerializer } = require_data_url();
    var { kConstruct } = require_symbols2();
    var assert3 = __require("node:assert");
    var { isomorphicEncode, serializeJavascriptValueToJSONString } = require_infra2();
    var textEncoder5 = new TextEncoder("utf-8");
    var Response2 = class _Response {
      /** @type {Headers} */
      #headers;
      #state;
      // Creates network error Response.
      static error() {
        const responseObject = fromInnerResponse(makeNetworkError(), "immutable");
        return responseObject;
      }
      // https://fetch.spec.whatwg.org/#dom-response-json
      static json(data2, init3 = void 0) {
        webidl.argumentLengthCheck(arguments, 1, "Response.json");
        if (init3 !== null) {
          init3 = webidl.converters.ResponseInit(init3);
        }
        const bytes = textEncoder5.encode(
          serializeJavascriptValueToJSONString(data2)
        );
        const body = extractBody(bytes);
        const responseObject = fromInnerResponse(makeResponse({}), "response");
        initializeResponse(responseObject, init3, { body: body[0], type: "application/json" });
        return responseObject;
      }
      // Creates a redirect Response that redirects to url with status status.
      static redirect(url3, status = 302) {
        webidl.argumentLengthCheck(arguments, 1, "Response.redirect");
        url3 = webidl.converters.USVString(url3);
        status = webidl.converters["unsigned short"](status);
        let parsedURL;
        try {
          parsedURL = new URL(url3, relevantRealm.settingsObject.baseUrl);
        } catch (err2) {
          throw new TypeError(`Failed to parse URL from ${url3}`, { cause: err2 });
        }
        if (!redirectStatusSet.has(status)) {
          throw new RangeError(`Invalid status code ${status}`);
        }
        const responseObject = fromInnerResponse(makeResponse({}), "immutable");
        responseObject.#state.status = status;
        const value2 = isomorphicEncode(URLSerializer(parsedURL));
        responseObject.#state.headersList.append("location", value2, true);
        return responseObject;
      }
      // https://fetch.spec.whatwg.org/#dom-response
      constructor(body = null, init3 = void 0) {
        webidl.util.markAsUncloneable(this);
        if (body === kConstruct) {
          return;
        }
        if (body !== null) {
          body = webidl.converters.BodyInit(body, "Response", "body");
        }
        init3 = webidl.converters.ResponseInit(init3);
        this.#state = makeResponse({});
        this.#headers = new Headers(kConstruct);
        setHeadersGuard(this.#headers, "response");
        setHeadersList(this.#headers, this.#state.headersList);
        let bodyWithType = null;
        if (body != null) {
          const [extractedBody, type] = extractBody(body);
          bodyWithType = { body: extractedBody, type };
        }
        initializeResponse(this, init3, bodyWithType);
      }
      // Returns response’s type, e.g., "cors".
      get type() {
        webidl.brandCheck(this, _Response);
        return this.#state.type;
      }
      // Returns response’s URL, if it has one; otherwise the empty string.
      get url() {
        webidl.brandCheck(this, _Response);
        const urlList = this.#state.urlList;
        const url3 = urlList[urlList.length - 1] ?? null;
        if (url3 === null) {
          return "";
        }
        return URLSerializer(url3, true);
      }
      // Returns whether response was obtained through a redirect.
      get redirected() {
        webidl.brandCheck(this, _Response);
        return this.#state.urlList.length > 1;
      }
      // Returns response’s status.
      get status() {
        webidl.brandCheck(this, _Response);
        return this.#state.status;
      }
      // Returns whether response’s status is an ok status.
      get ok() {
        webidl.brandCheck(this, _Response);
        return this.#state.status >= 200 && this.#state.status <= 299;
      }
      // Returns response’s status message.
      get statusText() {
        webidl.brandCheck(this, _Response);
        return this.#state.statusText;
      }
      // Returns response’s headers as Headers.
      get headers() {
        webidl.brandCheck(this, _Response);
        return this.#headers;
      }
      get body() {
        webidl.brandCheck(this, _Response);
        return this.#state.body ? this.#state.body.stream : null;
      }
      get bodyUsed() {
        webidl.brandCheck(this, _Response);
        return !!this.#state.body && util3.isDisturbed(this.#state.body.stream);
      }
      // Returns a clone of response.
      clone() {
        webidl.brandCheck(this, _Response);
        if (bodyUnusable(this.#state)) {
          throw webidl.errors.exception({
            header: "Response.clone",
            message: "Body has already been consumed."
          });
        }
        const clonedResponse = cloneResponse2(this.#state);
        if (this.#state.urlList.length !== 0 && this.#state.body?.stream) {
          streamRegistry.register(this, new WeakRef(this.#state.body.stream));
        }
        return fromInnerResponse(clonedResponse, getHeadersGuard(this.#headers));
      }
      [nodeUtil.inspect.custom](depth, options) {
        if (options.depth === null) {
          options.depth = 2;
        }
        options.colors ??= true;
        const properties = {
          status: this.status,
          statusText: this.statusText,
          headers: this.headers,
          body: this.body,
          bodyUsed: this.bodyUsed,
          ok: this.ok,
          redirected: this.redirected,
          type: this.type,
          url: this.url
        };
        return `Response ${nodeUtil.formatWithOptions(options, properties)}`;
      }
      /**
       * @param {Response} response
       */
      static getResponseHeaders(response) {
        return response.#headers;
      }
      /**
       * @param {Response} response
       * @param {Headers} newHeaders
       */
      static setResponseHeaders(response, newHeaders) {
        response.#headers = newHeaders;
      }
      /**
       * @param {Response} response
       */
      static getResponseState(response) {
        return response.#state;
      }
      /**
       * @param {Response} response
       * @param {any} newState
       */
      static setResponseState(response, newState) {
        response.#state = newState;
      }
    };
    var { getResponseHeaders, setResponseHeaders, getResponseState, setResponseState } = Response2;
    Reflect.deleteProperty(Response2, "getResponseHeaders");
    Reflect.deleteProperty(Response2, "setResponseHeaders");
    Reflect.deleteProperty(Response2, "getResponseState");
    Reflect.deleteProperty(Response2, "setResponseState");
    mixinBody(Response2, getResponseState);
    Object.defineProperties(Response2.prototype, {
      type: kEnumerableProperty,
      url: kEnumerableProperty,
      status: kEnumerableProperty,
      ok: kEnumerableProperty,
      redirected: kEnumerableProperty,
      statusText: kEnumerableProperty,
      headers: kEnumerableProperty,
      clone: kEnumerableProperty,
      body: kEnumerableProperty,
      bodyUsed: kEnumerableProperty,
      [Symbol.toStringTag]: {
        value: "Response",
        configurable: true
      }
    });
    Object.defineProperties(Response2, {
      json: kEnumerableProperty,
      redirect: kEnumerableProperty,
      error: kEnumerableProperty
    });
    function cloneResponse2(response) {
      if (response.internalResponse) {
        return filterResponse(
          cloneResponse2(response.internalResponse),
          response.type
        );
      }
      const newResponse = makeResponse({ ...response, body: null });
      if (response.body != null) {
        newResponse.body = cloneBody(response.body);
      }
      return newResponse;
    }
    function makeResponse(init3) {
      return {
        aborted: false,
        rangeRequested: false,
        timingAllowPassed: false,
        requestIncludesCredentials: false,
        type: "default",
        status: 200,
        timingInfo: null,
        cacheState: "",
        statusText: "",
        ...init3,
        headersList: init3?.headersList ? new HeadersList(init3?.headersList) : new HeadersList(),
        urlList: init3?.urlList ? [...init3.urlList] : []
      };
    }
    function makeNetworkError(reason) {
      const isError2 = isErrorLike(reason);
      return makeResponse({
        type: "error",
        status: 0,
        error: isError2 ? reason : new Error(reason ? String(reason) : reason),
        aborted: reason && reason.name === "AbortError"
      });
    }
    function isNetworkError(response) {
      return (
        // A network error is a response whose type is "error",
        response.type === "error" && // status is 0
        response.status === 0
      );
    }
    function makeFilteredResponse(response, state) {
      state = {
        internalResponse: response,
        ...state
      };
      return new Proxy(response, {
        get(target, p3) {
          return p3 in state ? state[p3] : target[p3];
        },
        set(target, p3, value2) {
          assert3(!(p3 in state));
          target[p3] = value2;
          return true;
        }
      });
    }
    function filterResponse(response, type) {
      if (type === "basic") {
        return makeFilteredResponse(response, {
          type: "basic",
          headersList: response.headersList
        });
      } else if (type === "cors") {
        return makeFilteredResponse(response, {
          type: "cors",
          headersList: response.headersList
        });
      } else if (type === "opaque") {
        return makeFilteredResponse(response, {
          type: "opaque",
          urlList: [],
          status: 0,
          statusText: "",
          body: null
        });
      } else if (type === "opaqueredirect") {
        return makeFilteredResponse(response, {
          type: "opaqueredirect",
          status: 0,
          statusText: "",
          headersList: [],
          body: null
        });
      } else {
        assert3(false);
      }
    }
    function makeAppropriateNetworkError(fetchParams, err2 = null) {
      assert3(isCancelled(fetchParams));
      return isAborted(fetchParams) ? makeNetworkError(Object.assign(new DOMException("The operation was aborted.", "AbortError"), { cause: err2 })) : makeNetworkError(Object.assign(new DOMException("Request was cancelled."), { cause: err2 }));
    }
    function initializeResponse(response, init3, body) {
      if (init3.status !== null && (init3.status < 200 || init3.status > 599)) {
        throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');
      }
      if ("statusText" in init3 && init3.statusText != null) {
        if (!isValidReasonPhrase(String(init3.statusText))) {
          throw new TypeError("Invalid statusText");
        }
      }
      if ("status" in init3 && init3.status != null) {
        getResponseState(response).status = init3.status;
      }
      if ("statusText" in init3 && init3.statusText != null) {
        getResponseState(response).statusText = init3.statusText;
      }
      if ("headers" in init3 && init3.headers != null) {
        fill(getResponseHeaders(response), init3.headers);
      }
      if (body) {
        if (nullBodyStatus.includes(response.status)) {
          throw webidl.errors.exception({
            header: "Response constructor",
            message: `Invalid response status code ${response.status}`
          });
        }
        getResponseState(response).body = body.body;
        if (body.type != null && !getResponseState(response).headersList.contains("content-type", true)) {
          getResponseState(response).headersList.append("content-type", body.type, true);
        }
      }
    }
    function fromInnerResponse(innerResponse, guard) {
      const response = new Response2(kConstruct);
      setResponseState(response, innerResponse);
      const headers = new Headers(kConstruct);
      setResponseHeaders(response, headers);
      setHeadersList(headers, innerResponse.headersList);
      setHeadersGuard(headers, guard);
      if (innerResponse.urlList.length !== 0 && innerResponse.body?.stream) {
        streamRegistry.register(response, new WeakRef(innerResponse.body.stream));
      }
      return response;
    }
    webidl.converters.XMLHttpRequestBodyInit = function(V, prefix, name) {
      if (typeof V === "string") {
        return webidl.converters.USVString(V, prefix, name);
      }
      if (webidl.is.Blob(V)) {
        return V;
      }
      if (webidl.is.BufferSource(V)) {
        return V;
      }
      if (webidl.is.FormData(V)) {
        return V;
      }
      if (webidl.is.URLSearchParams(V)) {
        return V;
      }
      return webidl.converters.DOMString(V, prefix, name);
    };
    webidl.converters.BodyInit = function(V, prefix, argument) {
      if (webidl.is.ReadableStream(V)) {
        return V;
      }
      if (V?.[Symbol.asyncIterator]) {
        return V;
      }
      return webidl.converters.XMLHttpRequestBodyInit(V, prefix, argument);
    };
    webidl.converters.ResponseInit = webidl.dictionaryConverter([
      {
        key: "status",
        converter: webidl.converters["unsigned short"],
        defaultValue: () => 200
      },
      {
        key: "statusText",
        converter: webidl.converters.ByteString,
        defaultValue: () => ""
      },
      {
        key: "headers",
        converter: webidl.converters.HeadersInit
      }
    ]);
    webidl.is.Response = webidl.util.MakeTypeAssertion(Response2);
    module.exports = {
      isNetworkError,
      makeNetworkError,
      makeResponse,
      makeAppropriateNetworkError,
      filterResponse,
      Response: Response2,
      cloneResponse: cloneResponse2,
      fromInnerResponse,
      getResponseState
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/request.js
var require_request3 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/request.js"(exports, module) {
    "use strict";
    var { extractBody, mixinBody, cloneBody, bodyUnusable } = require_body();
    var { Headers, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = require_headers2();
    var util3 = require_util4();
    var nodeUtil = __require("node:util");
    var {
      isValidHTTPToken,
      sameOrigin,
      environmentSettingsObject
    } = require_util5();
    var {
      forbiddenMethodsSet,
      corsSafeListedMethodsSet,
      referrerPolicy,
      requestRedirect,
      requestMode,
      requestCredentials,
      requestCache,
      requestDuplex
    } = require_constants13();
    var { kEnumerableProperty, normalizedMethodRecordsBase, normalizedMethodRecords } = util3;
    var { webidl } = require_webidl();
    var { URLSerializer } = require_data_url();
    var { kConstruct } = require_symbols2();
    var assert3 = __require("node:assert");
    var { getMaxListeners, setMaxListeners, defaultMaxListeners } = __require("node:events");
    var kAbortController = Symbol("abortController");
    var requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {
      signal.removeEventListener("abort", abort);
    });
    var dependentControllerMap = /* @__PURE__ */ new WeakMap();
    var abortSignalHasEventHandlerLeakWarning;
    try {
      abortSignalHasEventHandlerLeakWarning = getMaxListeners(new AbortController().signal) > 0;
    } catch {
      abortSignalHasEventHandlerLeakWarning = false;
    }
    function buildAbort(acRef) {
      return abort;
      function abort() {
        const ac = acRef.deref();
        if (ac !== void 0) {
          requestFinalizer.unregister(abort);
          this.removeEventListener("abort", abort);
          ac.abort(this.reason);
          const controllerList = dependentControllerMap.get(ac.signal);
          if (controllerList !== void 0) {
            if (controllerList.size !== 0) {
              for (const ref of controllerList) {
                const ctrl = ref.deref();
                if (ctrl !== void 0) {
                  ctrl.abort(this.reason);
                }
              }
              controllerList.clear();
            }
            dependentControllerMap.delete(ac.signal);
          }
        }
      }
    }
    var patchMethodWarning = false;
    var Request3 = class _Request {
      /** @type {AbortSignal} */
      #signal;
      /** @type {import('../../dispatcher/dispatcher')} */
      #dispatcher;
      /** @type {Headers} */
      #headers;
      #state;
      // https://fetch.spec.whatwg.org/#dom-request
      constructor(input, init3 = void 0) {
        webidl.util.markAsUncloneable(this);
        if (input === kConstruct) {
          return;
        }
        const prefix = "Request constructor";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        input = webidl.converters.RequestInfo(input);
        init3 = webidl.converters.RequestInit(init3);
        let request = null;
        let fallbackMode = null;
        const baseUrl = environmentSettingsObject.settingsObject.baseUrl;
        let signal = null;
        if (typeof input === "string") {
          this.#dispatcher = init3.dispatcher;
          let parsedURL;
          try {
            parsedURL = new URL(input, baseUrl);
          } catch (err2) {
            throw new TypeError("Failed to parse URL from " + input, { cause: err2 });
          }
          if (parsedURL.username || parsedURL.password) {
            throw new TypeError(
              "Request cannot be constructed from a URL that includes credentials: " + input
            );
          }
          request = makeRequest({ urlList: [parsedURL] });
          fallbackMode = "cors";
        } else {
          assert3(webidl.is.Request(input));
          request = input.#state;
          signal = input.#signal;
          this.#dispatcher = init3.dispatcher || input.#dispatcher;
        }
        const origin2 = environmentSettingsObject.settingsObject.origin;
        let window2 = "client";
        if (request.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request.window, origin2)) {
          window2 = request.window;
        }
        if (init3.window != null) {
          throw new TypeError(`'window' option '${window2}' must be null`);
        }
        if ("window" in init3) {
          window2 = "no-window";
        }
        request = makeRequest({
          // URL request’s URL.
          // undici implementation note: this is set as the first item in request's urlList in makeRequest
          // method request’s method.
          method: request.method,
          // header list A copy of request’s header list.
          // undici implementation note: headersList is cloned in makeRequest
          headersList: request.headersList,
          // unsafe-request flag Set.
          unsafeRequest: request.unsafeRequest,
          // client This’s relevant settings object.
          client: environmentSettingsObject.settingsObject,
          // window window.
          window: window2,
          // priority request’s priority.
          priority: request.priority,
          // origin request’s origin. The propagation of the origin is only significant for navigation requests
          // being handled by a service worker. In this scenario a request can have an origin that is different
          // from the current client.
          origin: request.origin,
          // referrer request’s referrer.
          referrer: request.referrer,
          // referrer policy request’s referrer policy.
          referrerPolicy: request.referrerPolicy,
          // mode request’s mode.
          mode: request.mode,
          // credentials mode request’s credentials mode.
          credentials: request.credentials,
          // cache mode request’s cache mode.
          cache: request.cache,
          // redirect mode request’s redirect mode.
          redirect: request.redirect,
          // integrity metadata request’s integrity metadata.
          integrity: request.integrity,
          // keepalive request’s keepalive.
          keepalive: request.keepalive,
          // reload-navigation flag request’s reload-navigation flag.
          reloadNavigation: request.reloadNavigation,
          // history-navigation flag request’s history-navigation flag.
          historyNavigation: request.historyNavigation,
          // URL list A clone of request’s URL list.
          urlList: [...request.urlList]
        });
        const initHasKey = Object.keys(init3).length !== 0;
        if (initHasKey) {
          if (request.mode === "navigate") {
            request.mode = "same-origin";
          }
          request.reloadNavigation = false;
          request.historyNavigation = false;
          request.origin = "client";
          request.referrer = "client";
          request.referrerPolicy = "";
          request.url = request.urlList[request.urlList.length - 1];
          request.urlList = [request.url];
        }
        if (init3.referrer !== void 0) {
          const referrer = init3.referrer;
          if (referrer === "") {
            request.referrer = "no-referrer";
          } else {
            let parsedReferrer;
            try {
              parsedReferrer = new URL(referrer, baseUrl);
            } catch (err2) {
              throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err2 });
            }
            if (parsedReferrer.protocol === "about:" && parsedReferrer.hostname === "client" || origin2 && !sameOrigin(parsedReferrer, environmentSettingsObject.settingsObject.baseUrl)) {
              request.referrer = "client";
            } else {
              request.referrer = parsedReferrer;
            }
          }
        }
        if (init3.referrerPolicy !== void 0) {
          request.referrerPolicy = init3.referrerPolicy;
        }
        let mode;
        if (init3.mode !== void 0) {
          mode = init3.mode;
        } else {
          mode = fallbackMode;
        }
        if (mode === "navigate") {
          throw webidl.errors.exception({
            header: "Request constructor",
            message: "invalid request mode navigate."
          });
        }
        if (mode != null) {
          request.mode = mode;
        }
        if (init3.credentials !== void 0) {
          request.credentials = init3.credentials;
        }
        if (init3.cache !== void 0) {
          request.cache = init3.cache;
        }
        if (request.cache === "only-if-cached" && request.mode !== "same-origin") {
          throw new TypeError(
            "'only-if-cached' can be set only with 'same-origin' mode"
          );
        }
        if (init3.redirect !== void 0) {
          request.redirect = init3.redirect;
        }
        if (init3.integrity != null) {
          request.integrity = String(init3.integrity);
        }
        if (init3.keepalive !== void 0) {
          request.keepalive = Boolean(init3.keepalive);
        }
        if (init3.method !== void 0) {
          let method = init3.method;
          const mayBeNormalized = normalizedMethodRecords[method];
          if (mayBeNormalized !== void 0) {
            request.method = mayBeNormalized;
          } else {
            if (!isValidHTTPToken(method)) {
              throw new TypeError(`'${method}' is not a valid HTTP method.`);
            }
            const upperCase = method.toUpperCase();
            if (forbiddenMethodsSet.has(upperCase)) {
              throw new TypeError(`'${method}' HTTP method is unsupported.`);
            }
            method = normalizedMethodRecordsBase[upperCase] ?? method;
            request.method = method;
          }
          if (!patchMethodWarning && request.method === "patch") {
            process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.", {
              code: "UNDICI-FETCH-patch"
            });
            patchMethodWarning = true;
          }
        }
        if (init3.signal !== void 0) {
          signal = init3.signal;
        }
        this.#state = request;
        const ac = new AbortController();
        this.#signal = ac.signal;
        if (signal != null) {
          if (signal.aborted) {
            ac.abort(signal.reason);
          } else {
            this[kAbortController] = ac;
            const acRef = new WeakRef(ac);
            const abort = buildAbort(acRef);
            if (abortSignalHasEventHandlerLeakWarning && getMaxListeners(signal) === defaultMaxListeners) {
              setMaxListeners(1500, signal);
            }
            util3.addAbortListener(signal, abort);
            requestFinalizer.register(ac, { signal, abort }, abort);
          }
        }
        this.#headers = new Headers(kConstruct);
        setHeadersList(this.#headers, request.headersList);
        setHeadersGuard(this.#headers, "request");
        if (mode === "no-cors") {
          if (!corsSafeListedMethodsSet.has(request.method)) {
            throw new TypeError(
              `'${request.method} is unsupported in no-cors mode.`
            );
          }
          setHeadersGuard(this.#headers, "request-no-cors");
        }
        if (initHasKey) {
          const headersList = getHeadersList(this.#headers);
          const headers = init3.headers !== void 0 ? init3.headers : new HeadersList(headersList);
          headersList.clear();
          if (headers instanceof HeadersList) {
            for (const { name, value: value2 } of headers.rawValues()) {
              headersList.append(name, value2, false);
            }
            headersList.cookies = headers.cookies;
          } else {
            fillHeaders(this.#headers, headers);
          }
        }
        const inputBody = webidl.is.Request(input) ? input.#state.body : null;
        if ((init3.body != null || inputBody != null) && (request.method === "GET" || request.method === "HEAD")) {
          throw new TypeError("Request with GET/HEAD method cannot have body.");
        }
        let initBody = null;
        if (init3.body != null) {
          const [extractedBody, contentType] = extractBody(
            init3.body,
            request.keepalive
          );
          initBody = extractedBody;
          if (contentType && !getHeadersList(this.#headers).contains("content-type", true)) {
            this.#headers.append("content-type", contentType, true);
          }
        }
        const inputOrInitBody = initBody ?? inputBody;
        if (inputOrInitBody != null && inputOrInitBody.source == null) {
          if (initBody != null && init3.duplex == null) {
            throw new TypeError("RequestInit: duplex option is required when sending a body.");
          }
          if (request.mode !== "same-origin" && request.mode !== "cors") {
            throw new TypeError(
              'If request is made from ReadableStream, mode should be "same-origin" or "cors"'
            );
          }
          request.useCORSPreflightFlag = true;
        }
        let finalBody = inputOrInitBody;
        if (initBody == null && inputBody != null) {
          if (bodyUnusable(input.#state)) {
            throw new TypeError(
              "Cannot construct a Request with a Request object that has already been used."
            );
          }
          const identityTransform = new TransformStream();
          inputBody.stream.pipeThrough(identityTransform);
          finalBody = {
            source: inputBody.source,
            length: inputBody.length,
            stream: identityTransform.readable
          };
        }
        this.#state.body = finalBody;
      }
      // Returns request’s HTTP method, which is "GET" by default.
      get method() {
        webidl.brandCheck(this, _Request);
        return this.#state.method;
      }
      // Returns the URL of request as a string.
      get url() {
        webidl.brandCheck(this, _Request);
        return URLSerializer(this.#state.url);
      }
      // Returns a Headers object consisting of the headers associated with request.
      // Note that headers added in the network layer by the user agent will not
      // be accounted for in this object, e.g., the "Host" header.
      get headers() {
        webidl.brandCheck(this, _Request);
        return this.#headers;
      }
      // Returns the kind of resource requested by request, e.g., "document"
      // or "script".
      get destination() {
        webidl.brandCheck(this, _Request);
        return this.#state.destination;
      }
      // Returns the referrer of request. Its value can be a same-origin URL if
      // explicitly set in init, the empty string to indicate no referrer, and
      // "about:client" when defaulting to the global’s default. This is used
      // during fetching to determine the value of the `Referer` header of the
      // request being made.
      get referrer() {
        webidl.brandCheck(this, _Request);
        if (this.#state.referrer === "no-referrer") {
          return "";
        }
        if (this.#state.referrer === "client") {
          return "about:client";
        }
        return this.#state.referrer.toString();
      }
      // Returns the referrer policy associated with request.
      // This is used during fetching to compute the value of the request’s
      // referrer.
      get referrerPolicy() {
        webidl.brandCheck(this, _Request);
        return this.#state.referrerPolicy;
      }
      // Returns the mode associated with request, which is a string indicating
      // whether the request will use CORS, or will be restricted to same-origin
      // URLs.
      get mode() {
        webidl.brandCheck(this, _Request);
        return this.#state.mode;
      }
      // Returns the credentials mode associated with request,
      // which is a string indicating whether credentials will be sent with the
      // request always, never, or only when sent to a same-origin URL.
      get credentials() {
        webidl.brandCheck(this, _Request);
        return this.#state.credentials;
      }
      // Returns the cache mode associated with request,
      // which is a string indicating how the request will
      // interact with the browser’s cache when fetching.
      get cache() {
        webidl.brandCheck(this, _Request);
        return this.#state.cache;
      }
      // Returns the redirect mode associated with request,
      // which is a string indicating how redirects for the
      // request will be handled during fetching. A request
      // will follow redirects by default.
      get redirect() {
        webidl.brandCheck(this, _Request);
        return this.#state.redirect;
      }
      // Returns request’s subresource integrity metadata, which is a
      // cryptographic hash of the resource being fetched. Its value
      // consists of multiple hashes separated by whitespace. [SRI]
      get integrity() {
        webidl.brandCheck(this, _Request);
        return this.#state.integrity;
      }
      // Returns a boolean indicating whether or not request can outlive the
      // global in which it was created.
      get keepalive() {
        webidl.brandCheck(this, _Request);
        return this.#state.keepalive;
      }
      // Returns a boolean indicating whether or not request is for a reload
      // navigation.
      get isReloadNavigation() {
        webidl.brandCheck(this, _Request);
        return this.#state.reloadNavigation;
      }
      // Returns a boolean indicating whether or not request is for a history
      // navigation (a.k.a. back-forward navigation).
      get isHistoryNavigation() {
        webidl.brandCheck(this, _Request);
        return this.#state.historyNavigation;
      }
      // Returns the signal associated with request, which is an AbortSignal
      // object indicating whether or not request has been aborted, and its
      // abort event handler.
      get signal() {
        webidl.brandCheck(this, _Request);
        return this.#signal;
      }
      get body() {
        webidl.brandCheck(this, _Request);
        return this.#state.body ? this.#state.body.stream : null;
      }
      get bodyUsed() {
        webidl.brandCheck(this, _Request);
        return !!this.#state.body && util3.isDisturbed(this.#state.body.stream);
      }
      get duplex() {
        webidl.brandCheck(this, _Request);
        return "half";
      }
      // Returns a clone of request.
      clone() {
        webidl.brandCheck(this, _Request);
        if (bodyUnusable(this.#state)) {
          throw new TypeError("unusable");
        }
        const clonedRequest = cloneRequest(this.#state);
        const ac = new AbortController();
        if (this.signal.aborted) {
          ac.abort(this.signal.reason);
        } else {
          let list = dependentControllerMap.get(this.signal);
          if (list === void 0) {
            list = /* @__PURE__ */ new Set();
            dependentControllerMap.set(this.signal, list);
          }
          const acRef = new WeakRef(ac);
          list.add(acRef);
          util3.addAbortListener(
            ac.signal,
            buildAbort(acRef)
          );
        }
        return fromInnerRequest(clonedRequest, this.#dispatcher, ac.signal, getHeadersGuard(this.#headers));
      }
      [nodeUtil.inspect.custom](depth, options) {
        if (options.depth === null) {
          options.depth = 2;
        }
        options.colors ??= true;
        const properties = {
          method: this.method,
          url: this.url,
          headers: this.headers,
          destination: this.destination,
          referrer: this.referrer,
          referrerPolicy: this.referrerPolicy,
          mode: this.mode,
          credentials: this.credentials,
          cache: this.cache,
          redirect: this.redirect,
          integrity: this.integrity,
          keepalive: this.keepalive,
          isReloadNavigation: this.isReloadNavigation,
          isHistoryNavigation: this.isHistoryNavigation,
          signal: this.signal
        };
        return `Request ${nodeUtil.formatWithOptions(options, properties)}`;
      }
      /**
       * @param {Request} request
       * @param {AbortSignal} newSignal
       */
      static setRequestSignal(request, newSignal) {
        request.#signal = newSignal;
        return request;
      }
      /**
       * @param {Request} request
       */
      static getRequestDispatcher(request) {
        return request.#dispatcher;
      }
      /**
       * @param {Request} request
       * @param {import('../../dispatcher/dispatcher')} newDispatcher
       */
      static setRequestDispatcher(request, newDispatcher) {
        request.#dispatcher = newDispatcher;
      }
      /**
       * @param {Request} request
       * @param {Headers} newHeaders
       */
      static setRequestHeaders(request, newHeaders) {
        request.#headers = newHeaders;
      }
      /**
       * @param {Request} request
       */
      static getRequestState(request) {
        return request.#state;
      }
      /**
       * @param {Request} request
       * @param {any} newState
       */
      static setRequestState(request, newState) {
        request.#state = newState;
      }
    };
    var { setRequestSignal, getRequestDispatcher, setRequestDispatcher, setRequestHeaders, getRequestState, setRequestState } = Request3;
    Reflect.deleteProperty(Request3, "setRequestSignal");
    Reflect.deleteProperty(Request3, "getRequestDispatcher");
    Reflect.deleteProperty(Request3, "setRequestDispatcher");
    Reflect.deleteProperty(Request3, "setRequestHeaders");
    Reflect.deleteProperty(Request3, "getRequestState");
    Reflect.deleteProperty(Request3, "setRequestState");
    mixinBody(Request3, getRequestState);
    function makeRequest(init3) {
      return {
        method: init3.method ?? "GET",
        localURLsOnly: init3.localURLsOnly ?? false,
        unsafeRequest: init3.unsafeRequest ?? false,
        body: init3.body ?? null,
        client: init3.client ?? null,
        reservedClient: init3.reservedClient ?? null,
        replacesClientId: init3.replacesClientId ?? "",
        window: init3.window ?? "client",
        keepalive: init3.keepalive ?? false,
        serviceWorkers: init3.serviceWorkers ?? "all",
        initiator: init3.initiator ?? "",
        destination: init3.destination ?? "",
        priority: init3.priority ?? null,
        origin: init3.origin ?? "client",
        policyContainer: init3.policyContainer ?? "client",
        referrer: init3.referrer ?? "client",
        referrerPolicy: init3.referrerPolicy ?? "",
        mode: init3.mode ?? "no-cors",
        useCORSPreflightFlag: init3.useCORSPreflightFlag ?? false,
        credentials: init3.credentials ?? "same-origin",
        useCredentials: init3.useCredentials ?? false,
        cache: init3.cache ?? "default",
        redirect: init3.redirect ?? "follow",
        integrity: init3.integrity ?? "",
        cryptoGraphicsNonceMetadata: init3.cryptoGraphicsNonceMetadata ?? "",
        parserMetadata: init3.parserMetadata ?? "",
        reloadNavigation: init3.reloadNavigation ?? false,
        historyNavigation: init3.historyNavigation ?? false,
        userActivation: init3.userActivation ?? false,
        taintedOrigin: init3.taintedOrigin ?? false,
        redirectCount: init3.redirectCount ?? 0,
        responseTainting: init3.responseTainting ?? "basic",
        preventNoCacheCacheControlHeaderModification: init3.preventNoCacheCacheControlHeaderModification ?? false,
        done: init3.done ?? false,
        timingAllowFailed: init3.timingAllowFailed ?? false,
        useURLCredentials: init3.useURLCredentials ?? void 0,
        traversableForUserPrompts: init3.traversableForUserPrompts ?? "client",
        urlList: init3.urlList,
        url: init3.urlList[0],
        headersList: init3.headersList ? new HeadersList(init3.headersList) : new HeadersList()
      };
    }
    function cloneRequest(request) {
      const newRequest = makeRequest({ ...request, body: null });
      if (request.body != null) {
        newRequest.body = cloneBody(request.body);
      }
      return newRequest;
    }
    function fromInnerRequest(innerRequest, dispatcher, signal, guard) {
      const request = new Request3(kConstruct);
      setRequestState(request, innerRequest);
      setRequestDispatcher(request, dispatcher);
      setRequestSignal(request, signal);
      const headers = new Headers(kConstruct);
      setRequestHeaders(request, headers);
      setHeadersList(headers, innerRequest.headersList);
      setHeadersGuard(headers, guard);
      return request;
    }
    Object.defineProperties(Request3.prototype, {
      method: kEnumerableProperty,
      url: kEnumerableProperty,
      headers: kEnumerableProperty,
      redirect: kEnumerableProperty,
      clone: kEnumerableProperty,
      signal: kEnumerableProperty,
      duplex: kEnumerableProperty,
      destination: kEnumerableProperty,
      body: kEnumerableProperty,
      bodyUsed: kEnumerableProperty,
      isHistoryNavigation: kEnumerableProperty,
      isReloadNavigation: kEnumerableProperty,
      keepalive: kEnumerableProperty,
      integrity: kEnumerableProperty,
      cache: kEnumerableProperty,
      credentials: kEnumerableProperty,
      attribute: kEnumerableProperty,
      referrerPolicy: kEnumerableProperty,
      referrer: kEnumerableProperty,
      mode: kEnumerableProperty,
      [Symbol.toStringTag]: {
        value: "Request",
        configurable: true
      }
    });
    webidl.is.Request = webidl.util.MakeTypeAssertion(Request3);
    webidl.converters.RequestInfo = function(V) {
      if (typeof V === "string") {
        return webidl.converters.USVString(V);
      }
      if (webidl.is.Request(V)) {
        return V;
      }
      return webidl.converters.USVString(V);
    };
    webidl.converters.RequestInit = webidl.dictionaryConverter([
      {
        key: "method",
        converter: webidl.converters.ByteString
      },
      {
        key: "headers",
        converter: webidl.converters.HeadersInit
      },
      {
        key: "body",
        converter: webidl.nullableConverter(
          webidl.converters.BodyInit
        )
      },
      {
        key: "referrer",
        converter: webidl.converters.USVString
      },
      {
        key: "referrerPolicy",
        converter: webidl.converters.DOMString,
        // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy
        allowedValues: referrerPolicy
      },
      {
        key: "mode",
        converter: webidl.converters.DOMString,
        // https://fetch.spec.whatwg.org/#concept-request-mode
        allowedValues: requestMode
      },
      {
        key: "credentials",
        converter: webidl.converters.DOMString,
        // https://fetch.spec.whatwg.org/#requestcredentials
        allowedValues: requestCredentials
      },
      {
        key: "cache",
        converter: webidl.converters.DOMString,
        // https://fetch.spec.whatwg.org/#requestcache
        allowedValues: requestCache
      },
      {
        key: "redirect",
        converter: webidl.converters.DOMString,
        // https://fetch.spec.whatwg.org/#requestredirect
        allowedValues: requestRedirect
      },
      {
        key: "integrity",
        converter: webidl.converters.DOMString
      },
      {
        key: "keepalive",
        converter: webidl.converters.boolean
      },
      {
        key: "signal",
        converter: webidl.nullableConverter(
          (signal) => webidl.converters.AbortSignal(
            signal,
            "RequestInit",
            "signal"
          )
        )
      },
      {
        key: "window",
        converter: webidl.converters.any
      },
      {
        key: "duplex",
        converter: webidl.converters.DOMString,
        allowedValues: requestDuplex
      },
      {
        key: "dispatcher",
        // undici specific option
        converter: webidl.converters.any
      },
      {
        key: "priority",
        converter: webidl.converters.DOMString,
        allowedValues: ["high", "low", "auto"],
        defaultValue: () => "auto"
      }
    ]);
    module.exports = {
      Request: Request3,
      makeRequest,
      fromInnerRequest,
      cloneRequest,
      getRequestDispatcher,
      getRequestState
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js
var require_subresource_integrity = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { runtimeFeatures } = require_runtime_features();
    var validSRIHashAlgorithmTokenSet = /* @__PURE__ */ new Map([["sha256", 0], ["sha384", 1], ["sha512", 2]]);
    var crypto5;
    if (runtimeFeatures.has("crypto")) {
      crypto5 = __require("node:crypto");
      const cryptoHashes = crypto5.getHashes();
      if (cryptoHashes.length === 0) {
        validSRIHashAlgorithmTokenSet.clear();
      }
      for (const algorithm of validSRIHashAlgorithmTokenSet.keys()) {
        if (cryptoHashes.includes(algorithm) === false) {
          validSRIHashAlgorithmTokenSet.delete(algorithm);
        }
      }
    } else {
      validSRIHashAlgorithmTokenSet.clear();
    }
    var getSRIHashAlgorithmIndex = (
      /** @type {GetSRIHashAlgorithmIndex} */
      Map.prototype.get.bind(
        validSRIHashAlgorithmTokenSet
      )
    );
    var isValidSRIHashAlgorithm = (
      /** @type {IsValidSRIHashAlgorithm} */
      Map.prototype.has.bind(validSRIHashAlgorithmTokenSet)
    );
    var bytesMatch = runtimeFeatures.has("crypto") === false || validSRIHashAlgorithmTokenSet.size === 0 ? () => true : (bytes, metadataList) => {
      const parsedMetadata = parseMetadata(metadataList);
      if (parsedMetadata.length === 0) {
        return true;
      }
      const metadata = getStrongestMetadata(parsedMetadata);
      for (const item of metadata) {
        const algorithm = item.alg;
        const expectedValue = item.val;
        const actualValue = applyAlgorithmToBytes(algorithm, bytes);
        if (caseSensitiveMatch(actualValue, expectedValue)) {
          return true;
        }
      }
      return false;
    };
    function getStrongestMetadata(metadataList) {
      const result = [];
      let strongest = null;
      for (const item of metadataList) {
        assert3(isValidSRIHashAlgorithm(item.alg), "Invalid SRI hash algorithm token");
        if (result.length === 0) {
          result.push(item);
          strongest = item;
          continue;
        }
        const currentAlgorithm = (
          /** @type {Metadata} */
          strongest.alg
        );
        const currentAlgorithmIndex = getSRIHashAlgorithmIndex(currentAlgorithm);
        const newAlgorithm = item.alg;
        const newAlgorithmIndex = getSRIHashAlgorithmIndex(newAlgorithm);
        if (newAlgorithmIndex < currentAlgorithmIndex) {
          continue;
        } else if (newAlgorithmIndex > currentAlgorithmIndex) {
          strongest = item;
          result[0] = item;
          result.length = 1;
        } else {
          result.push(item);
        }
      }
      return result;
    }
    function parseMetadata(metadata) {
      const result = [];
      for (const item of metadata.split(" ")) {
        const expressionAndOptions = item.split("?", 1);
        const algorithmExpression = expressionAndOptions[0];
        let base64Value = "";
        const algorithmAndValue = [algorithmExpression.slice(0, 6), algorithmExpression.slice(7)];
        const algorithm = algorithmAndValue[0];
        if (!isValidSRIHashAlgorithm(algorithm)) {
          continue;
        }
        if (algorithmAndValue[1]) {
          base64Value = algorithmAndValue[1];
        }
        const metadata2 = {
          alg: algorithm,
          val: base64Value
        };
        result.push(metadata2);
      }
      return result;
    }
    var applyAlgorithmToBytes = (algorithm, bytes) => {
      return crypto5.hash(algorithm, bytes, "base64");
    };
    function caseSensitiveMatch(actualValue, expectedValue) {
      let actualValueLength = actualValue.length;
      if (actualValueLength !== 0 && actualValue[actualValueLength - 1] === "=") {
        actualValueLength -= 1;
      }
      if (actualValueLength !== 0 && actualValue[actualValueLength - 1] === "=") {
        actualValueLength -= 1;
      }
      let expectedValueLength = expectedValue.length;
      if (expectedValueLength !== 0 && expectedValue[expectedValueLength - 1] === "=") {
        expectedValueLength -= 1;
      }
      if (expectedValueLength !== 0 && expectedValue[expectedValueLength - 1] === "=") {
        expectedValueLength -= 1;
      }
      if (actualValueLength !== expectedValueLength) {
        return false;
      }
      for (let i5 = 0; i5 < actualValueLength; ++i5) {
        if (actualValue[i5] === expectedValue[i5] || actualValue[i5] === "+" && expectedValue[i5] === "-" || actualValue[i5] === "/" && expectedValue[i5] === "_") {
          continue;
        }
        return false;
      }
      return true;
    }
    module.exports = {
      applyAlgorithmToBytes,
      bytesMatch,
      caseSensitiveMatch,
      isValidSRIHashAlgorithm,
      getStrongestMetadata,
      parseMetadata
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/index.js
var require_fetch = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/fetch/index.js"(exports, module) {
    "use strict";
    var {
      makeNetworkError,
      makeAppropriateNetworkError,
      filterResponse,
      makeResponse,
      fromInnerResponse,
      getResponseState
    } = require_response();
    var { HeadersList } = require_headers2();
    var { Request: Request3, cloneRequest, getRequestDispatcher, getRequestState } = require_request3();
    var zlib6 = __require("node:zlib");
    var {
      makePolicyContainer,
      clonePolicyContainer,
      requestBadPort,
      TAOCheck,
      appendRequestOriginHeader,
      responseLocationURL,
      requestCurrentURL,
      setRequestReferrerPolicyOnRedirect,
      tryUpgradeRequestToAPotentiallyTrustworthyURL,
      createOpaqueTimingInfo,
      appendFetchMetadata,
      corsCheck,
      crossOriginResourcePolicyCheck,
      determineRequestsReferrer,
      coarsenedSharedCurrentTime,
      sameOrigin,
      isCancelled,
      isAborted,
      isErrorLike,
      fullyReadBody,
      readableStreamClose,
      urlIsLocal,
      urlIsHttpHttpsScheme,
      urlHasHttpsScheme,
      clampAndCoarsenConnectionTimingInfo,
      simpleRangeHeaderValue,
      buildContentRange,
      createInflate,
      extractMimeType,
      hasAuthenticationEntry,
      includesCredentials,
      isTraversableNavigable
    } = require_util5();
    var assert3 = __require("node:assert");
    var { safelyExtractBody, extractBody } = require_body();
    var {
      redirectStatusSet,
      nullBodyStatus,
      safeMethodsSet,
      requestBodyHeader,
      subresourceSet
    } = require_constants13();
    var EE = __require("node:events");
    var { Readable: Readable3, pipeline: pipeline2, finished: finished2, isErrored, isReadable } = __require("node:stream");
    var { addAbortListener, bufferToLowerCasedHeaderName } = require_util4();
    var { dataURLProcessor, serializeAMimeType, minimizeSupportedMimeType } = require_data_url();
    var { getGlobalDispatcher } = require_global2();
    var { webidl } = require_webidl();
    var { STATUS_CODES } = __require("node:http");
    var { bytesMatch } = require_subresource_integrity();
    var { createDeferredPromise } = require_promise();
    var { isomorphicEncode } = require_infra2();
    var { runtimeFeatures } = require_runtime_features();
    var hasZstd = runtimeFeatures.has("zstd");
    var GET_OR_HEAD = ["GET", "HEAD"];
    var defaultUserAgent = typeof __UNDICI_IS_NODE__ !== "undefined" || typeof esbuildDetection !== "undefined" ? "node" : "undici";
    var resolveObjectURL;
    var Fetch = class extends EE {
      constructor(dispatcher) {
        super();
        this.dispatcher = dispatcher;
        this.connection = null;
        this.dump = false;
        this.state = "ongoing";
      }
      terminate(reason) {
        if (this.state !== "ongoing") {
          return;
        }
        this.state = "terminated";
        this.connection?.destroy(reason);
        this.emit("terminated", reason);
      }
      // https://fetch.spec.whatwg.org/#fetch-controller-abort
      abort(error) {
        if (this.state !== "ongoing") {
          return;
        }
        this.state = "aborted";
        if (!error) {
          error = new DOMException("The operation was aborted.", "AbortError");
        }
        this.serializedAbortReason = error;
        this.connection?.destroy(error);
        this.emit("terminated", error);
      }
    };
    function handleFetchDone(response) {
      finalizeAndReportTiming(response, "fetch");
    }
    function fetch2(input, init3 = void 0) {
      webidl.argumentLengthCheck(arguments, 1, "globalThis.fetch");
      let p3 = createDeferredPromise();
      let requestObject;
      try {
        requestObject = new Request3(input, init3);
      } catch (e4) {
        p3.reject(e4);
        return p3.promise;
      }
      const request = getRequestState(requestObject);
      if (requestObject.signal.aborted) {
        abortFetch(p3, request, null, requestObject.signal.reason, null);
        return p3.promise;
      }
      const globalObject = request.client.globalObject;
      if (globalObject?.constructor?.name === "ServiceWorkerGlobalScope") {
        request.serviceWorkers = "none";
      }
      let responseObject = null;
      let locallyAborted = false;
      let controller = null;
      addAbortListener(
        requestObject.signal,
        () => {
          locallyAborted = true;
          assert3(controller != null);
          controller.abort(requestObject.signal.reason);
          const realResponse = responseObject?.deref();
          abortFetch(p3, request, realResponse, requestObject.signal.reason, controller.controller);
        }
      );
      const processResponse = (response) => {
        if (locallyAborted) {
          return;
        }
        if (response.aborted) {
          abortFetch(p3, request, responseObject, controller.serializedAbortReason, controller.controller);
          return;
        }
        if (response.type === "error") {
          p3.reject(new TypeError("fetch failed", { cause: response.error }));
          return;
        }
        responseObject = new WeakRef(fromInnerResponse(response, "immutable"));
        p3.resolve(responseObject.deref());
        p3 = null;
      };
      controller = fetching({
        request,
        processResponseEndOfBody: handleFetchDone,
        processResponse,
        dispatcher: getRequestDispatcher(requestObject)
        // undici
      });
      return p3.promise;
    }
    function finalizeAndReportTiming(response, initiatorType = "other") {
      if (response.type === "error" && response.aborted) {
        return;
      }
      if (!response.urlList?.length) {
        return;
      }
      const originalURL = response.urlList[0];
      let timingInfo = response.timingInfo;
      let cacheState = response.cacheState;
      if (!urlIsHttpHttpsScheme(originalURL)) {
        return;
      }
      if (timingInfo === null) {
        return;
      }
      if (!response.timingAllowPassed) {
        timingInfo = createOpaqueTimingInfo({
          startTime: timingInfo.startTime
        });
        cacheState = "";
      }
      timingInfo.endTime = coarsenedSharedCurrentTime();
      response.timingInfo = timingInfo;
      markResourceTiming(
        timingInfo,
        originalURL.href,
        initiatorType,
        globalThis,
        cacheState,
        "",
        // bodyType
        response.status
      );
    }
    var markResourceTiming = performance.markResourceTiming;
    function abortFetch(p3, request, responseObject, error, controller) {
      if (p3) {
        p3.reject(error);
      }
      if (request.body?.stream != null && isReadable(request.body.stream)) {
        request.body.stream.cancel(error).catch((err2) => {
          if (err2.code === "ERR_INVALID_STATE") {
            return;
          }
          throw err2;
        });
      }
      if (responseObject == null) {
        return;
      }
      const response = getResponseState(responseObject);
      if (response.body?.stream != null && isReadable(response.body.stream)) {
        controller.error(error);
      }
    }
    function fetching({
      request,
      processRequestBodyChunkLength,
      processRequestEndOfBody,
      processResponse,
      processResponseEndOfBody,
      processResponseConsumeBody,
      useParallelQueue = false,
      dispatcher = getGlobalDispatcher()
      // undici
    }) {
      assert3(dispatcher);
      let taskDestination = null;
      let crossOriginIsolatedCapability = false;
      if (request.client != null) {
        taskDestination = request.client.globalObject;
        crossOriginIsolatedCapability = request.client.crossOriginIsolatedCapability;
      }
      const currentTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability);
      const timingInfo = createOpaqueTimingInfo({
        startTime: currentTime
      });
      const fetchParams = {
        controller: new Fetch(dispatcher),
        request,
        timingInfo,
        processRequestBodyChunkLength,
        processRequestEndOfBody,
        processResponse,
        processResponseConsumeBody,
        processResponseEndOfBody,
        taskDestination,
        crossOriginIsolatedCapability
      };
      assert3(!request.body || request.body.stream);
      if (request.window === "client") {
        request.window = request.client?.globalObject?.constructor?.name === "Window" ? request.client : "no-window";
      }
      if (request.origin === "client") {
        request.origin = request.client.origin;
      }
      if (request.policyContainer === "client") {
        if (request.client != null) {
          request.policyContainer = clonePolicyContainer(
            request.client.policyContainer
          );
        } else {
          request.policyContainer = makePolicyContainer();
        }
      }
      if (!request.headersList.contains("accept", true)) {
        const value2 = "*/*";
        request.headersList.append("accept", value2, true);
      }
      if (!request.headersList.contains("accept-language", true)) {
        request.headersList.append("accept-language", "*", true);
      }
      if (request.priority === null) {
      }
      if (subresourceSet.has(request.destination)) {
      }
      mainFetch(fetchParams, false);
      return fetchParams.controller;
    }
    async function mainFetch(fetchParams, recursive) {
      try {
        const request = fetchParams.request;
        let response = null;
        if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {
          response = makeNetworkError("local URLs only");
        }
        tryUpgradeRequestToAPotentiallyTrustworthyURL(request);
        if (requestBadPort(request) === "blocked") {
          response = makeNetworkError("bad port");
        }
        if (request.referrerPolicy === "") {
          request.referrerPolicy = request.policyContainer.referrerPolicy;
        }
        if (request.referrer !== "no-referrer") {
          request.referrer = determineRequestsReferrer(request);
        }
        if (response === null) {
          const currentURL = requestCurrentURL(request);
          if (
            // - request’s current URL’s origin is same origin with request’s origin,
            //   and request’s response tainting is "basic"
            sameOrigin(currentURL, request.url) && request.responseTainting === "basic" || // request’s current URL’s scheme is "data"
            currentURL.protocol === "data:" || // - request’s mode is "navigate" or "websocket"
            (request.mode === "navigate" || request.mode === "websocket")
          ) {
            request.responseTainting = "basic";
            response = await schemeFetch(fetchParams);
          } else if (request.mode === "same-origin") {
            response = makeNetworkError('request mode cannot be "same-origin"');
          } else if (request.mode === "no-cors") {
            if (request.redirect !== "follow") {
              response = makeNetworkError(
                'redirect mode cannot be "follow" for "no-cors" request'
              );
            } else {
              request.responseTainting = "opaque";
              response = await schemeFetch(fetchParams);
            }
          } else if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {
            response = makeNetworkError("URL scheme must be a HTTP(S) scheme");
          } else {
            request.responseTainting = "cors";
            response = await httpFetch(fetchParams);
          }
        }
        if (recursive) {
          return response;
        }
        if (response.status !== 0 && !response.internalResponse) {
          if (request.responseTainting === "cors") {
          }
          if (request.responseTainting === "basic") {
            response = filterResponse(response, "basic");
          } else if (request.responseTainting === "cors") {
            response = filterResponse(response, "cors");
          } else if (request.responseTainting === "opaque") {
            response = filterResponse(response, "opaque");
          } else {
            assert3(false);
          }
        }
        let internalResponse = response.status === 0 ? response : response.internalResponse;
        if (internalResponse.urlList.length === 0) {
          internalResponse.urlList.push(...request.urlList);
        }
        if (!request.timingAllowFailed) {
          response.timingAllowPassed = true;
        }
        if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request.headers.contains("range", true)) {
          response = internalResponse = makeNetworkError();
        }
        if (response.status !== 0 && (request.method === "HEAD" || request.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) {
          internalResponse.body = null;
          fetchParams.controller.dump = true;
        }
        if (request.integrity) {
          const processBodyError = (reason) => fetchFinale(fetchParams, makeNetworkError(reason));
          if (request.responseTainting === "opaque" || response.body == null) {
            processBodyError(response.error);
            return;
          }
          const processBody = (bytes) => {
            if (!bytesMatch(bytes, request.integrity)) {
              processBodyError("integrity mismatch");
              return;
            }
            response.body = safelyExtractBody(bytes)[0];
            fetchFinale(fetchParams, response);
          };
          fullyReadBody(response.body, processBody, processBodyError);
        } else {
          fetchFinale(fetchParams, response);
        }
      } catch (err2) {
        fetchParams.controller.terminate(err2);
      }
    }
    function schemeFetch(fetchParams) {
      if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {
        return Promise.resolve(makeAppropriateNetworkError(fetchParams));
      }
      const { request } = fetchParams;
      const { protocol: scheme } = requestCurrentURL(request);
      switch (scheme) {
        case "about:": {
          return Promise.resolve(makeNetworkError("about scheme is not supported"));
        }
        case "blob:": {
          if (!resolveObjectURL) {
            resolveObjectURL = __require("node:buffer").resolveObjectURL;
          }
          const blobURLEntry = requestCurrentURL(request);
          if (blobURLEntry.search.length !== 0) {
            return Promise.resolve(makeNetworkError("NetworkError when attempting to fetch resource."));
          }
          const blob = resolveObjectURL(blobURLEntry.toString());
          if (request.method !== "GET" || !webidl.is.Blob(blob)) {
            return Promise.resolve(makeNetworkError("invalid method"));
          }
          const response = makeResponse();
          const fullLength = blob.size;
          const serializedFullLength = isomorphicEncode(`${fullLength}`);
          const type = blob.type;
          if (!request.headersList.contains("range", true)) {
            const bodyWithType = extractBody(blob);
            response.statusText = "OK";
            response.body = bodyWithType[0];
            response.headersList.set("content-length", serializedFullLength, true);
            response.headersList.set("content-type", type, true);
          } else {
            response.rangeRequested = true;
            const rangeHeader = request.headersList.get("range", true);
            const rangeValue = simpleRangeHeaderValue(rangeHeader, true);
            if (rangeValue === "failure") {
              return Promise.resolve(makeNetworkError("failed to fetch the data URL"));
            }
            let { rangeStartValue: rangeStart, rangeEndValue: rangeEnd } = rangeValue;
            if (rangeStart === null) {
              rangeStart = fullLength - rangeEnd;
              rangeEnd = rangeStart + rangeEnd - 1;
            } else {
              if (rangeStart >= fullLength) {
                return Promise.resolve(makeNetworkError("Range start is greater than the blob's size."));
              }
              if (rangeEnd === null || rangeEnd >= fullLength) {
                rangeEnd = fullLength - 1;
              }
            }
            const slicedBlob = blob.slice(rangeStart, rangeEnd + 1, type);
            const slicedBodyWithType = extractBody(slicedBlob);
            response.body = slicedBodyWithType[0];
            const serializedSlicedLength = isomorphicEncode(`${slicedBlob.size}`);
            const contentRange = buildContentRange(rangeStart, rangeEnd, fullLength);
            response.status = 206;
            response.statusText = "Partial Content";
            response.headersList.set("content-length", serializedSlicedLength, true);
            response.headersList.set("content-type", type, true);
            response.headersList.set("content-range", contentRange, true);
          }
          return Promise.resolve(response);
        }
        case "data:": {
          const currentURL = requestCurrentURL(request);
          const dataURLStruct = dataURLProcessor(currentURL);
          if (dataURLStruct === "failure") {
            return Promise.resolve(makeNetworkError("failed to fetch the data URL"));
          }
          const mimeType = serializeAMimeType(dataURLStruct.mimeType);
          return Promise.resolve(makeResponse({
            statusText: "OK",
            headersList: [
              ["content-type", { name: "Content-Type", value: mimeType }]
            ],
            body: safelyExtractBody(dataURLStruct.body)[0]
          }));
        }
        case "file:": {
          return Promise.resolve(makeNetworkError("not implemented... yet..."));
        }
        case "http:":
        case "https:": {
          return httpFetch(fetchParams).catch((err2) => makeNetworkError(err2));
        }
        default: {
          return Promise.resolve(makeNetworkError("unknown scheme"));
        }
      }
    }
    function finalizeResponse(fetchParams, response) {
      fetchParams.request.done = true;
      if (fetchParams.processResponseDone != null) {
        queueMicrotask(() => fetchParams.processResponseDone(response));
      }
    }
    function fetchFinale(fetchParams, response) {
      let timingInfo = fetchParams.timingInfo;
      const processResponseEndOfBody = () => {
        const unsafeEndTime = Date.now();
        if (fetchParams.request.destination === "document") {
          fetchParams.controller.fullTimingInfo = timingInfo;
        }
        fetchParams.controller.reportTimingSteps = () => {
          if (!urlIsHttpHttpsScheme(fetchParams.request.url)) {
            return;
          }
          timingInfo.endTime = unsafeEndTime;
          let cacheState = response.cacheState;
          const bodyInfo = response.bodyInfo;
          if (!response.timingAllowPassed) {
            timingInfo = createOpaqueTimingInfo(timingInfo);
            cacheState = "";
          }
          let responseStatus = 0;
          if (fetchParams.request.mode !== "navigator" || !response.hasCrossOriginRedirects) {
            responseStatus = response.status;
            const mimeType = extractMimeType(response.headersList);
            if (mimeType !== "failure") {
              bodyInfo.contentType = minimizeSupportedMimeType(mimeType);
            }
          }
          if (fetchParams.request.initiatorType != null) {
            markResourceTiming(timingInfo, fetchParams.request.url.href, fetchParams.request.initiatorType, globalThis, cacheState, bodyInfo, responseStatus);
          }
        };
        const processResponseEndOfBodyTask = () => {
          fetchParams.request.done = true;
          if (fetchParams.processResponseEndOfBody != null) {
            queueMicrotask(() => fetchParams.processResponseEndOfBody(response));
          }
          if (fetchParams.request.initiatorType != null) {
            fetchParams.controller.reportTimingSteps();
          }
        };
        queueMicrotask(() => processResponseEndOfBodyTask());
      };
      if (fetchParams.processResponse != null) {
        queueMicrotask(() => {
          fetchParams.processResponse(response);
          fetchParams.processResponse = null;
        });
      }
      const internalResponse = response.type === "error" ? response : response.internalResponse ?? response;
      if (internalResponse.body == null) {
        processResponseEndOfBody();
      } else {
        finished2(internalResponse.body.stream, () => {
          processResponseEndOfBody();
        });
      }
    }
    async function httpFetch(fetchParams) {
      const request = fetchParams.request;
      let response = null;
      let actualResponse = null;
      const timingInfo = fetchParams.timingInfo;
      if (request.serviceWorkers === "all") {
      }
      if (response === null) {
        if (request.redirect === "follow") {
          request.serviceWorkers = "none";
        }
        actualResponse = response = await httpNetworkOrCacheFetch(fetchParams);
        if (request.responseTainting === "cors" && corsCheck(request, response) === "failure") {
          return makeNetworkError("cors failure");
        }
        if (TAOCheck(request, response) === "failure") {
          request.timingAllowFailed = true;
        }
      }
      if ((request.responseTainting === "opaque" || response.type === "opaque") && crossOriginResourcePolicyCheck(
        request.origin,
        request.client,
        request.destination,
        actualResponse
      ) === "blocked") {
        return makeNetworkError("blocked");
      }
      if (redirectStatusSet.has(actualResponse.status)) {
        if (request.redirect !== "manual") {
          fetchParams.controller.connection.destroy(void 0, false);
        }
        if (request.redirect === "error") {
          response = makeNetworkError("unexpected redirect");
        } else if (request.redirect === "manual") {
          response = actualResponse;
        } else if (request.redirect === "follow") {
          response = await httpRedirectFetch(fetchParams, response);
        } else {
          assert3(false);
        }
      }
      response.timingInfo = timingInfo;
      return response;
    }
    function httpRedirectFetch(fetchParams, response) {
      const request = fetchParams.request;
      const actualResponse = response.internalResponse ? response.internalResponse : response;
      let locationURL;
      try {
        locationURL = responseLocationURL(
          actualResponse,
          requestCurrentURL(request).hash
        );
        if (locationURL == null) {
          return response;
        }
      } catch (err2) {
        return Promise.resolve(makeNetworkError(err2));
      }
      if (!urlIsHttpHttpsScheme(locationURL)) {
        return Promise.resolve(makeNetworkError("URL scheme must be a HTTP(S) scheme"));
      }
      if (request.redirectCount === 20) {
        return Promise.resolve(makeNetworkError("redirect count exceeded"));
      }
      request.redirectCount += 1;
      if (request.mode === "cors" && (locationURL.username || locationURL.password) && !sameOrigin(request, locationURL)) {
        return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"'));
      }
      if (request.responseTainting === "cors" && (locationURL.username || locationURL.password)) {
        return Promise.resolve(makeNetworkError(
          'URL cannot contain credentials for request mode "cors"'
        ));
      }
      if (actualResponse.status !== 303 && request.body != null && request.body.source == null) {
        return Promise.resolve(makeNetworkError());
      }
      if ([301, 302].includes(actualResponse.status) && request.method === "POST" || actualResponse.status === 303 && !GET_OR_HEAD.includes(request.method)) {
        request.method = "GET";
        request.body = null;
        for (const headerName of requestBodyHeader) {
          request.headersList.delete(headerName);
        }
      }
      if (!sameOrigin(requestCurrentURL(request), locationURL)) {
        request.headersList.delete("authorization", true);
        request.headersList.delete("proxy-authorization", true);
        request.headersList.delete("cookie", true);
        request.headersList.delete("host", true);
      }
      if (request.body != null) {
        assert3(request.body.source != null);
        request.body = safelyExtractBody(request.body.source)[0];
      }
      const timingInfo = fetchParams.timingInfo;
      timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability);
      if (timingInfo.redirectStartTime === 0) {
        timingInfo.redirectStartTime = timingInfo.startTime;
      }
      request.urlList.push(locationURL);
      setRequestReferrerPolicyOnRedirect(request, actualResponse);
      return mainFetch(fetchParams, true);
    }
    async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = false, isNewConnectionFetch = false) {
      const request = fetchParams.request;
      let httpFetchParams = null;
      let httpRequest = null;
      let response = null;
      const httpCache = null;
      const revalidatingFlag = false;
      if (request.window === "no-window" && request.redirect === "error") {
        httpFetchParams = fetchParams;
        httpRequest = request;
      } else {
        httpRequest = cloneRequest(request);
        httpFetchParams = { ...fetchParams };
        httpFetchParams.request = httpRequest;
      }
      const includeCredentials = request.credentials === "include" || request.credentials === "same-origin" && request.responseTainting === "basic";
      const contentLength = httpRequest.body ? httpRequest.body.length : null;
      let contentLengthHeaderValue = null;
      if (httpRequest.body == null && ["POST", "PUT"].includes(httpRequest.method)) {
        contentLengthHeaderValue = "0";
      }
      if (contentLength != null) {
        contentLengthHeaderValue = isomorphicEncode(`${contentLength}`);
      }
      if (contentLengthHeaderValue != null) {
        httpRequest.headersList.append("content-length", contentLengthHeaderValue, true);
      }
      if (contentLength != null && httpRequest.keepalive) {
      }
      if (webidl.is.URL(httpRequest.referrer)) {
        httpRequest.headersList.append("referer", isomorphicEncode(httpRequest.referrer.href), true);
      }
      appendRequestOriginHeader(httpRequest);
      appendFetchMetadata(httpRequest);
      if (!httpRequest.headersList.contains("user-agent", true)) {
        httpRequest.headersList.append("user-agent", defaultUserAgent, true);
      }
      if (httpRequest.cache === "default" && (httpRequest.headersList.contains("if-modified-since", true) || httpRequest.headersList.contains("if-none-match", true) || httpRequest.headersList.contains("if-unmodified-since", true) || httpRequest.headersList.contains("if-match", true) || httpRequest.headersList.contains("if-range", true))) {
        httpRequest.cache = "no-store";
      }
      if (httpRequest.cache === "no-cache" && !httpRequest.preventNoCacheCacheControlHeaderModification && !httpRequest.headersList.contains("cache-control", true)) {
        httpRequest.headersList.append("cache-control", "max-age=0", true);
      }
      if (httpRequest.cache === "no-store" || httpRequest.cache === "reload") {
        if (!httpRequest.headersList.contains("pragma", true)) {
          httpRequest.headersList.append("pragma", "no-cache", true);
        }
        if (!httpRequest.headersList.contains("cache-control", true)) {
          httpRequest.headersList.append("cache-control", "no-cache", true);
        }
      }
      if (httpRequest.headersList.contains("range", true)) {
        httpRequest.headersList.append("accept-encoding", "identity", true);
      }
      if (!httpRequest.headersList.contains("accept-encoding", true)) {
        if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {
          httpRequest.headersList.append("accept-encoding", "br, gzip, deflate", true);
        } else {
          httpRequest.headersList.append("accept-encoding", "gzip, deflate", true);
        }
      }
      httpRequest.headersList.delete("host", true);
      if (includeCredentials) {
        if (!httpRequest.headersList.contains("authorization", true)) {
          let authorizationValue = null;
          if (hasAuthenticationEntry(httpRequest) && (httpRequest.useURLCredentials === void 0 || !includesCredentials(requestCurrentURL(httpRequest)))) {
          } else if (includesCredentials(requestCurrentURL(httpRequest)) && isAuthenticationFetch) {
            const { username, password } = requestCurrentURL(httpRequest);
            authorizationValue = `Basic ${Buffer.from(`${username}:${password}`).toString("base64")}`;
          }
          if (authorizationValue !== null) {
            httpRequest.headersList.append("Authorization", authorizationValue, false);
          }
        }
      }
      if (httpCache == null) {
        httpRequest.cache = "no-store";
      }
      if (httpRequest.cache !== "no-store" && httpRequest.cache !== "reload") {
      }
      if (response == null) {
        if (httpRequest.cache === "only-if-cached") {
          return makeNetworkError("only if cached");
        }
        const forwardResponse = await httpNetworkFetch(
          httpFetchParams,
          includeCredentials,
          isNewConnectionFetch
        );
        if (!safeMethodsSet.has(httpRequest.method) && forwardResponse.status >= 200 && forwardResponse.status <= 399) {
        }
        if (revalidatingFlag && forwardResponse.status === 304) {
        }
        if (response == null) {
          response = forwardResponse;
        }
      }
      response.urlList = [...httpRequest.urlList];
      if (httpRequest.headersList.contains("range", true)) {
        response.rangeRequested = true;
      }
      response.requestIncludesCredentials = includeCredentials;
      if (response.status === 401 && httpRequest.responseTainting !== "cors" && includeCredentials && isTraversableNavigable(request.traversableForUserPrompts)) {
        if (request.body != null) {
          if (request.body.source == null) {
            return makeNetworkError("expected non-null body source");
          }
          request.body = safelyExtractBody(request.body.source)[0];
        }
        if (request.useURLCredentials === void 0 || isAuthenticationFetch) {
          if (isCancelled(fetchParams)) {
            return makeAppropriateNetworkError(fetchParams);
          }
          return response;
        }
        fetchParams.controller.connection.destroy();
        response = await httpNetworkOrCacheFetch(fetchParams, true);
      }
      if (response.status === 407) {
        if (request.window === "no-window") {
          return makeNetworkError();
        }
        if (isCancelled(fetchParams)) {
          return makeAppropriateNetworkError(fetchParams);
        }
        return makeNetworkError("proxy authentication required");
      }
      if (
        // response’s status is 421
        response.status === 421 && // isNewConnectionFetch is false
        !isNewConnectionFetch && // request’s body is null, or request’s body is non-null and request’s body’s source is non-null
        (request.body == null || request.body.source != null)
      ) {
        if (isCancelled(fetchParams)) {
          return makeAppropriateNetworkError(fetchParams);
        }
        fetchParams.controller.connection.destroy();
        response = await httpNetworkOrCacheFetch(
          fetchParams,
          isAuthenticationFetch,
          true
        );
      }
      if (isAuthenticationFetch) {
      }
      return response;
    }
    async function httpNetworkFetch(fetchParams, includeCredentials = false, forceNewConnection = false) {
      assert3(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed);
      fetchParams.controller.connection = {
        abort: null,
        destroyed: false,
        destroy(err2, abort = true) {
          if (!this.destroyed) {
            this.destroyed = true;
            if (abort) {
              this.abort?.(err2 ?? new DOMException("The operation was aborted.", "AbortError"));
            }
          }
        }
      };
      const request = fetchParams.request;
      let response = null;
      const timingInfo = fetchParams.timingInfo;
      const httpCache = null;
      if (httpCache == null) {
        request.cache = "no-store";
      }
      const newConnection = forceNewConnection ? "yes" : "no";
      if (request.mode === "websocket") {
      } else {
      }
      let requestBody = null;
      if (request.body == null && fetchParams.processRequestEndOfBody) {
        queueMicrotask(() => fetchParams.processRequestEndOfBody());
      } else if (request.body != null) {
        const processBodyChunk = async function* (bytes) {
          if (isCancelled(fetchParams)) {
            return;
          }
          yield bytes;
          fetchParams.processRequestBodyChunkLength?.(bytes.byteLength);
        };
        const processEndOfBody = () => {
          if (isCancelled(fetchParams)) {
            return;
          }
          if (fetchParams.processRequestEndOfBody) {
            fetchParams.processRequestEndOfBody();
          }
        };
        const processBodyError = (e4) => {
          if (isCancelled(fetchParams)) {
            return;
          }
          if (e4.name === "AbortError") {
            fetchParams.controller.abort();
          } else {
            fetchParams.controller.terminate(e4);
          }
        };
        requestBody = (async function* () {
          try {
            for await (const bytes of request.body.stream) {
              yield* processBodyChunk(bytes);
            }
            processEndOfBody();
          } catch (err2) {
            processBodyError(err2);
          }
        })();
      }
      try {
        const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody });
        if (socket) {
          response = makeResponse({ status, statusText, headersList, socket });
        } else {
          const iterator2 = body[Symbol.asyncIterator]();
          fetchParams.controller.next = () => iterator2.next();
          response = makeResponse({ status, statusText, headersList });
        }
      } catch (err2) {
        if (err2.name === "AbortError") {
          fetchParams.controller.connection.destroy();
          return makeAppropriateNetworkError(fetchParams, err2);
        }
        return makeNetworkError(err2);
      }
      const pullAlgorithm = () => {
        return fetchParams.controller.resume();
      };
      const cancelAlgorithm = (reason) => {
        if (!isCancelled(fetchParams)) {
          fetchParams.controller.abort(reason);
        }
      };
      const stream7 = new ReadableStream(
        {
          start(controller) {
            fetchParams.controller.controller = controller;
          },
          pull: pullAlgorithm,
          cancel: cancelAlgorithm,
          type: "bytes"
        }
      );
      response.body = { stream: stream7, source: null, length: null };
      if (!fetchParams.controller.resume) {
        fetchParams.controller.on("terminated", onAborted);
      }
      fetchParams.controller.resume = async () => {
        while (true) {
          let bytes;
          let isFailure;
          try {
            const { done, value: value2 } = await fetchParams.controller.next();
            if (isAborted(fetchParams)) {
              break;
            }
            bytes = done ? void 0 : value2;
          } catch (err2) {
            if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {
              bytes = void 0;
            } else {
              bytes = err2;
              isFailure = true;
            }
          }
          if (bytes === void 0) {
            readableStreamClose(fetchParams.controller.controller);
            finalizeResponse(fetchParams, response);
            return;
          }
          timingInfo.decodedBodySize += bytes?.byteLength ?? 0;
          if (isFailure) {
            fetchParams.controller.terminate(bytes);
            return;
          }
          const buffer = new Uint8Array(bytes);
          if (buffer.byteLength) {
            fetchParams.controller.controller.enqueue(buffer);
          }
          if (isErrored(stream7)) {
            fetchParams.controller.terminate();
            return;
          }
          if (fetchParams.controller.controller.desiredSize <= 0) {
            return;
          }
        }
      };
      function onAborted(reason) {
        if (isAborted(fetchParams)) {
          response.aborted = true;
          if (isReadable(stream7)) {
            fetchParams.controller.controller.error(
              fetchParams.controller.serializedAbortReason
            );
          }
        } else {
          if (isReadable(stream7)) {
            fetchParams.controller.controller.error(new TypeError("terminated", {
              cause: isErrorLike(reason) ? reason : void 0
            }));
          }
        }
        fetchParams.controller.connection.destroy();
      }
      return response;
      function dispatch({ body }) {
        const url3 = requestCurrentURL(request);
        const agent = fetchParams.controller.dispatcher;
        return new Promise((resolve4, reject) => agent.dispatch(
          {
            path: url3.pathname + url3.search,
            origin: url3.origin,
            method: request.method,
            body: agent.isMockActive ? request.body && (request.body.source || request.body.stream) : body,
            headers: request.headersList.entries,
            maxRedirections: 0,
            upgrade: request.mode === "websocket" ? "websocket" : void 0
          },
          {
            body: null,
            abort: null,
            onConnect(abort) {
              const { connection } = fetchParams.controller;
              timingInfo.finalConnectionTimingInfo = clampAndCoarsenConnectionTimingInfo(void 0, timingInfo.postRedirectStartTime, fetchParams.crossOriginIsolatedCapability);
              if (connection.destroyed) {
                abort(new DOMException("The operation was aborted.", "AbortError"));
              } else {
                fetchParams.controller.on("terminated", abort);
                this.abort = connection.abort = abort;
              }
              timingInfo.finalNetworkRequestStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability);
            },
            onResponseStarted() {
              timingInfo.finalNetworkResponseStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability);
            },
            onHeaders(status, rawHeaders, resume, statusText) {
              if (status < 200) {
                return false;
              }
              const headersList = new HeadersList();
              for (let i5 = 0; i5 < rawHeaders.length; i5 += 2) {
                headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i5]), rawHeaders[i5 + 1].toString("latin1"), true);
              }
              const location = headersList.get("location", true);
              this.body = new Readable3({ read: resume });
              const willFollow = location && request.redirect === "follow" && redirectStatusSet.has(status);
              const decoders = [];
              if (request.method !== "HEAD" && request.method !== "CONNECT" && !nullBodyStatus.includes(status) && !willFollow) {
                const contentEncoding = headersList.get("content-encoding", true);
                const codings = contentEncoding ? contentEncoding.toLowerCase().split(",") : [];
                const maxContentEncodings = 5;
                if (codings.length > maxContentEncodings) {
                  reject(new Error(`too many content-encodings in response: ${codings.length}, maximum allowed is ${maxContentEncodings}`));
                  return true;
                }
                for (let i5 = codings.length - 1; i5 >= 0; --i5) {
                  const coding = codings[i5].trim();
                  if (coding === "x-gzip" || coding === "gzip") {
                    decoders.push(zlib6.createGunzip({
                      // Be less strict when decoding compressed responses, since sometimes
                      // servers send slightly invalid responses that are still accepted
                      // by common browsers.
                      // Always using Z_SYNC_FLUSH is what cURL does.
                      flush: zlib6.constants.Z_SYNC_FLUSH,
                      finishFlush: zlib6.constants.Z_SYNC_FLUSH
                    }));
                  } else if (coding === "deflate") {
                    decoders.push(createInflate({
                      flush: zlib6.constants.Z_SYNC_FLUSH,
                      finishFlush: zlib6.constants.Z_SYNC_FLUSH
                    }));
                  } else if (coding === "br") {
                    decoders.push(zlib6.createBrotliDecompress({
                      flush: zlib6.constants.BROTLI_OPERATION_FLUSH,
                      finishFlush: zlib6.constants.BROTLI_OPERATION_FLUSH
                    }));
                  } else if (coding === "zstd" && hasZstd) {
                    decoders.push(zlib6.createZstdDecompress({
                      flush: zlib6.constants.ZSTD_e_continue,
                      finishFlush: zlib6.constants.ZSTD_e_end
                    }));
                  } else {
                    decoders.length = 0;
                    break;
                  }
                }
              }
              const onError = this.onError.bind(this);
              resolve4({
                status,
                statusText,
                headersList,
                body: decoders.length ? pipeline2(this.body, ...decoders, (err2) => {
                  if (err2) {
                    this.onError(err2);
                  }
                }).on("error", onError) : this.body.on("error", onError)
              });
              return true;
            },
            onData(chunk3) {
              if (fetchParams.controller.dump) {
                return;
              }
              const bytes = chunk3;
              timingInfo.encodedBodySize += bytes.byteLength;
              return this.body.push(bytes);
            },
            onComplete() {
              if (this.abort) {
                fetchParams.controller.off("terminated", this.abort);
              }
              fetchParams.controller.ended = true;
              this.body.push(null);
            },
            onError(error) {
              if (this.abort) {
                fetchParams.controller.off("terminated", this.abort);
              }
              this.body?.destroy(error);
              fetchParams.controller.terminate(error);
              reject(error);
            },
            onUpgrade(status, rawHeaders, socket) {
              if (socket.session != null && status !== 200 || socket.session == null && status !== 101) {
                return false;
              }
              const headersList = new HeadersList();
              for (let i5 = 0; i5 < rawHeaders.length; i5 += 2) {
                headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i5]), rawHeaders[i5 + 1].toString("latin1"), true);
              }
              resolve4({
                status,
                statusText: STATUS_CODES[status],
                headersList,
                socket
              });
              return true;
            }
          }
        ));
      }
    }
    module.exports = {
      fetch: fetch2,
      Fetch,
      fetching,
      finalizeAndReportTiming
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cache/util.js
var require_util6 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cache/util.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { URLSerializer } = require_data_url();
    var { isValidHeaderName: isValidHeaderName2 } = require_util5();
    function urlEquals(A, B, excludeFragment = false) {
      const serializedA = URLSerializer(A, excludeFragment);
      const serializedB = URLSerializer(B, excludeFragment);
      return serializedA === serializedB;
    }
    function getFieldValues(header) {
      assert3(header !== null);
      const values = [];
      for (let value2 of header.split(",")) {
        value2 = value2.trim();
        if (isValidHeaderName2(value2)) {
          values.push(value2);
        }
      }
      return values;
    }
    module.exports = {
      urlEquals,
      getFieldValues
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cache/cache.js
var require_cache3 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cache/cache.js"(exports, module) {
    "use strict";
    var assert3 = __require("node:assert");
    var { kConstruct } = require_symbols2();
    var { urlEquals, getFieldValues } = require_util6();
    var { kEnumerableProperty, isDisturbed } = require_util4();
    var { webidl } = require_webidl();
    var { cloneResponse: cloneResponse2, fromInnerResponse, getResponseState } = require_response();
    var { Request: Request3, fromInnerRequest, getRequestState } = require_request3();
    var { fetching } = require_fetch();
    var { urlIsHttpHttpsScheme, readAllBytes } = require_util5();
    var { createDeferredPromise } = require_promise();
    var Cache = class _Cache {
      /**
       * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list
       * @type {requestResponseList}
       */
      #relevantRequestResponseList;
      constructor() {
        if (arguments[0] !== kConstruct) {
          webidl.illegalConstructor();
        }
        webidl.util.markAsUncloneable(this);
        this.#relevantRequestResponseList = arguments[1];
      }
      async match(request, options = {}) {
        webidl.brandCheck(this, _Cache);
        const prefix = "Cache.match";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        request = webidl.converters.RequestInfo(request);
        options = webidl.converters.CacheQueryOptions(options, prefix, "options");
        const p3 = this.#internalMatchAll(request, options, 1);
        if (p3.length === 0) {
          return;
        }
        return p3[0];
      }
      async matchAll(request = void 0, options = {}) {
        webidl.brandCheck(this, _Cache);
        const prefix = "Cache.matchAll";
        if (request !== void 0) request = webidl.converters.RequestInfo(request);
        options = webidl.converters.CacheQueryOptions(options, prefix, "options");
        return this.#internalMatchAll(request, options);
      }
      async add(request) {
        webidl.brandCheck(this, _Cache);
        const prefix = "Cache.add";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        request = webidl.converters.RequestInfo(request);
        const requests = [request];
        const responseArrayPromise = this.addAll(requests);
        return await responseArrayPromise;
      }
      async addAll(requests) {
        webidl.brandCheck(this, _Cache);
        const prefix = "Cache.addAll";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        const responsePromises = [];
        const requestList = [];
        for (let request of requests) {
          if (request === void 0) {
            throw webidl.errors.conversionFailed({
              prefix,
              argument: "Argument 1",
              types: ["undefined is not allowed"]
            });
          }
          request = webidl.converters.RequestInfo(request);
          if (typeof request === "string") {
            continue;
          }
          const r4 = getRequestState(request);
          if (!urlIsHttpHttpsScheme(r4.url) || r4.method !== "GET") {
            throw webidl.errors.exception({
              header: prefix,
              message: "Expected http/s scheme when method is not GET."
            });
          }
        }
        const fetchControllers = [];
        for (const request of requests) {
          const r4 = getRequestState(new Request3(request));
          if (!urlIsHttpHttpsScheme(r4.url)) {
            throw webidl.errors.exception({
              header: prefix,
              message: "Expected http/s scheme."
            });
          }
          r4.initiator = "fetch";
          r4.destination = "subresource";
          requestList.push(r4);
          const responsePromise = createDeferredPromise();
          fetchControllers.push(fetching({
            request: r4,
            processResponse(response) {
              if (response.type === "error" || response.status === 206 || response.status < 200 || response.status > 299) {
                responsePromise.reject(webidl.errors.exception({
                  header: "Cache.addAll",
                  message: "Received an invalid status code or the request failed."
                }));
              } else if (response.headersList.contains("vary")) {
                const fieldValues = getFieldValues(response.headersList.get("vary"));
                for (const fieldValue of fieldValues) {
                  if (fieldValue === "*") {
                    responsePromise.reject(webidl.errors.exception({
                      header: "Cache.addAll",
                      message: "invalid vary field value"
                    }));
                    for (const controller of fetchControllers) {
                      controller.abort();
                    }
                    return;
                  }
                }
              }
            },
            processResponseEndOfBody(response) {
              if (response.aborted) {
                responsePromise.reject(new DOMException("aborted", "AbortError"));
                return;
              }
              responsePromise.resolve(response);
            }
          }));
          responsePromises.push(responsePromise.promise);
        }
        const p3 = Promise.all(responsePromises);
        const responses = await p3;
        const operations = [];
        let index2 = 0;
        for (const response of responses) {
          const operation = {
            type: "put",
            // 7.3.2
            request: requestList[index2],
            // 7.3.3
            response
            // 7.3.4
          };
          operations.push(operation);
          index2++;
        }
        const cacheJobPromise = createDeferredPromise();
        let errorData = null;
        try {
          this.#batchCacheOperations(operations);
        } catch (e4) {
          errorData = e4;
        }
        queueMicrotask(() => {
          if (errorData === null) {
            cacheJobPromise.resolve(void 0);
          } else {
            cacheJobPromise.reject(errorData);
          }
        });
        return cacheJobPromise.promise;
      }
      async put(request, response) {
        webidl.brandCheck(this, _Cache);
        const prefix = "Cache.put";
        webidl.argumentLengthCheck(arguments, 2, prefix);
        request = webidl.converters.RequestInfo(request);
        response = webidl.converters.Response(response, prefix, "response");
        let innerRequest = null;
        if (webidl.is.Request(request)) {
          innerRequest = getRequestState(request);
        } else {
          innerRequest = getRequestState(new Request3(request));
        }
        if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== "GET") {
          throw webidl.errors.exception({
            header: prefix,
            message: "Expected an http/s scheme when method is not GET"
          });
        }
        const innerResponse = getResponseState(response);
        if (innerResponse.status === 206) {
          throw webidl.errors.exception({
            header: prefix,
            message: "Got 206 status"
          });
        }
        if (innerResponse.headersList.contains("vary")) {
          const fieldValues = getFieldValues(innerResponse.headersList.get("vary"));
          for (const fieldValue of fieldValues) {
            if (fieldValue === "*") {
              throw webidl.errors.exception({
                header: prefix,
                message: "Got * vary field value"
              });
            }
          }
        }
        if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {
          throw webidl.errors.exception({
            header: prefix,
            message: "Response body is locked or disturbed"
          });
        }
        const clonedResponse = cloneResponse2(innerResponse);
        const bodyReadPromise = createDeferredPromise();
        if (innerResponse.body != null) {
          const stream7 = innerResponse.body.stream;
          const reader = stream7.getReader();
          readAllBytes(reader, bodyReadPromise.resolve, bodyReadPromise.reject);
        } else {
          bodyReadPromise.resolve(void 0);
        }
        const operations = [];
        const operation = {
          type: "put",
          // 14.
          request: innerRequest,
          // 15.
          response: clonedResponse
          // 16.
        };
        operations.push(operation);
        const bytes = await bodyReadPromise.promise;
        if (clonedResponse.body != null) {
          clonedResponse.body.source = bytes;
        }
        const cacheJobPromise = createDeferredPromise();
        let errorData = null;
        try {
          this.#batchCacheOperations(operations);
        } catch (e4) {
          errorData = e4;
        }
        queueMicrotask(() => {
          if (errorData === null) {
            cacheJobPromise.resolve();
          } else {
            cacheJobPromise.reject(errorData);
          }
        });
        return cacheJobPromise.promise;
      }
      async delete(request, options = {}) {
        webidl.brandCheck(this, _Cache);
        const prefix = "Cache.delete";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        request = webidl.converters.RequestInfo(request);
        options = webidl.converters.CacheQueryOptions(options, prefix, "options");
        let r4 = null;
        if (webidl.is.Request(request)) {
          r4 = getRequestState(request);
          if (r4.method !== "GET" && !options.ignoreMethod) {
            return false;
          }
        } else {
          assert3(typeof request === "string");
          r4 = getRequestState(new Request3(request));
        }
        const operations = [];
        const operation = {
          type: "delete",
          request: r4,
          options
        };
        operations.push(operation);
        const cacheJobPromise = createDeferredPromise();
        let errorData = null;
        let requestResponses;
        try {
          requestResponses = this.#batchCacheOperations(operations);
        } catch (e4) {
          errorData = e4;
        }
        queueMicrotask(() => {
          if (errorData === null) {
            cacheJobPromise.resolve(!!requestResponses?.length);
          } else {
            cacheJobPromise.reject(errorData);
          }
        });
        return cacheJobPromise.promise;
      }
      /**
       * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys
       * @param {any} request
       * @param {import('../../../types/cache').CacheQueryOptions} options
       * @returns {Promise<readonly Request[]>}
       */
      async keys(request = void 0, options = {}) {
        webidl.brandCheck(this, _Cache);
        const prefix = "Cache.keys";
        if (request !== void 0) request = webidl.converters.RequestInfo(request);
        options = webidl.converters.CacheQueryOptions(options, prefix, "options");
        let r4 = null;
        if (request !== void 0) {
          if (webidl.is.Request(request)) {
            r4 = getRequestState(request);
            if (r4.method !== "GET" && !options.ignoreMethod) {
              return [];
            }
          } else if (typeof request === "string") {
            r4 = getRequestState(new Request3(request));
          }
        }
        const promise = createDeferredPromise();
        const requests = [];
        if (request === void 0) {
          for (const requestResponse of this.#relevantRequestResponseList) {
            requests.push(requestResponse[0]);
          }
        } else {
          const requestResponses = this.#queryCache(r4, options);
          for (const requestResponse of requestResponses) {
            requests.push(requestResponse[0]);
          }
        }
        queueMicrotask(() => {
          const requestList = [];
          for (const request2 of requests) {
            const requestObject = fromInnerRequest(
              request2,
              void 0,
              new AbortController().signal,
              "immutable"
            );
            requestList.push(requestObject);
          }
          promise.resolve(Object.freeze(requestList));
        });
        return promise.promise;
      }
      /**
       * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm
       * @param {CacheBatchOperation[]} operations
       * @returns {requestResponseList}
       */
      #batchCacheOperations(operations) {
        const cache2 = this.#relevantRequestResponseList;
        const backupCache = [...cache2];
        const addedItems = [];
        const resultList = [];
        try {
          for (const operation of operations) {
            if (operation.type !== "delete" && operation.type !== "put") {
              throw webidl.errors.exception({
                header: "Cache.#batchCacheOperations",
                message: 'operation type does not match "delete" or "put"'
              });
            }
            if (operation.type === "delete" && operation.response != null) {
              throw webidl.errors.exception({
                header: "Cache.#batchCacheOperations",
                message: "delete operation should not have an associated response"
              });
            }
            if (this.#queryCache(operation.request, operation.options, addedItems).length) {
              throw new DOMException("???", "InvalidStateError");
            }
            let requestResponses;
            if (operation.type === "delete") {
              requestResponses = this.#queryCache(operation.request, operation.options);
              if (requestResponses.length === 0) {
                return [];
              }
              for (const requestResponse of requestResponses) {
                const idx = cache2.indexOf(requestResponse);
                assert3(idx !== -1);
                cache2.splice(idx, 1);
              }
            } else if (operation.type === "put") {
              if (operation.response == null) {
                throw webidl.errors.exception({
                  header: "Cache.#batchCacheOperations",
                  message: "put operation should have an associated response"
                });
              }
              const r4 = operation.request;
              if (!urlIsHttpHttpsScheme(r4.url)) {
                throw webidl.errors.exception({
                  header: "Cache.#batchCacheOperations",
                  message: "expected http or https scheme"
                });
              }
              if (r4.method !== "GET") {
                throw webidl.errors.exception({
                  header: "Cache.#batchCacheOperations",
                  message: "not get method"
                });
              }
              if (operation.options != null) {
                throw webidl.errors.exception({
                  header: "Cache.#batchCacheOperations",
                  message: "options must not be defined"
                });
              }
              requestResponses = this.#queryCache(operation.request);
              for (const requestResponse of requestResponses) {
                const idx = cache2.indexOf(requestResponse);
                assert3(idx !== -1);
                cache2.splice(idx, 1);
              }
              cache2.push([operation.request, operation.response]);
              addedItems.push([operation.request, operation.response]);
            }
            resultList.push([operation.request, operation.response]);
          }
          return resultList;
        } catch (e4) {
          this.#relevantRequestResponseList.length = 0;
          this.#relevantRequestResponseList = backupCache;
          throw e4;
        }
      }
      /**
       * @see https://w3c.github.io/ServiceWorker/#query-cache
       * @param {any} requestQuery
       * @param {import('../../../types/cache').CacheQueryOptions} options
       * @param {requestResponseList} targetStorage
       * @returns {requestResponseList}
       */
      #queryCache(requestQuery, options, targetStorage) {
        const resultList = [];
        const storage2 = targetStorage ?? this.#relevantRequestResponseList;
        for (const requestResponse of storage2) {
          const [cachedRequest, cachedResponse] = requestResponse;
          if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {
            resultList.push(requestResponse);
          }
        }
        return resultList;
      }
      /**
       * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm
       * @param {any} requestQuery
       * @param {any} request
       * @param {any | null} response
       * @param {import('../../../types/cache').CacheQueryOptions | undefined} options
       * @returns {boolean}
       */
      #requestMatchesCachedItem(requestQuery, request, response = null, options) {
        const queryURL = new URL(requestQuery.url);
        const cachedURL = new URL(request.url);
        if (options?.ignoreSearch) {
          cachedURL.search = "";
          queryURL.search = "";
        }
        if (!urlEquals(queryURL, cachedURL, true)) {
          return false;
        }
        if (response == null || options?.ignoreVary || !response.headersList.contains("vary")) {
          return true;
        }
        const fieldValues = getFieldValues(response.headersList.get("vary"));
        for (const fieldValue of fieldValues) {
          if (fieldValue === "*") {
            return false;
          }
          const requestValue = request.headersList.get(fieldValue);
          const queryValue = requestQuery.headersList.get(fieldValue);
          if (requestValue !== queryValue) {
            return false;
          }
        }
        return true;
      }
      #internalMatchAll(request, options, maxResponses = Infinity) {
        let r4 = null;
        if (request !== void 0) {
          if (webidl.is.Request(request)) {
            r4 = getRequestState(request);
            if (r4.method !== "GET" && !options.ignoreMethod) {
              return [];
            }
          } else if (typeof request === "string") {
            r4 = getRequestState(new Request3(request));
          }
        }
        const responses = [];
        if (request === void 0) {
          for (const requestResponse of this.#relevantRequestResponseList) {
            responses.push(requestResponse[1]);
          }
        } else {
          const requestResponses = this.#queryCache(r4, options);
          for (const requestResponse of requestResponses) {
            responses.push(requestResponse[1]);
          }
        }
        const responseList = [];
        for (const response of responses) {
          const responseObject = fromInnerResponse(cloneResponse2(response), "immutable");
          responseList.push(responseObject);
          if (responseList.length >= maxResponses) {
            break;
          }
        }
        return Object.freeze(responseList);
      }
    };
    Object.defineProperties(Cache.prototype, {
      [Symbol.toStringTag]: {
        value: "Cache",
        configurable: true
      },
      match: kEnumerableProperty,
      matchAll: kEnumerableProperty,
      add: kEnumerableProperty,
      addAll: kEnumerableProperty,
      put: kEnumerableProperty,
      delete: kEnumerableProperty,
      keys: kEnumerableProperty
    });
    var cacheQueryOptionConverters = [
      {
        key: "ignoreSearch",
        converter: webidl.converters.boolean,
        defaultValue: () => false
      },
      {
        key: "ignoreMethod",
        converter: webidl.converters.boolean,
        defaultValue: () => false
      },
      {
        key: "ignoreVary",
        converter: webidl.converters.boolean,
        defaultValue: () => false
      }
    ];
    webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters);
    webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([
      ...cacheQueryOptionConverters,
      {
        key: "cacheName",
        converter: webidl.converters.DOMString
      }
    ]);
    webidl.converters.Response = webidl.interfaceConverter(
      webidl.is.Response,
      "Response"
    );
    webidl.converters["sequence<RequestInfo>"] = webidl.sequenceConverter(
      webidl.converters.RequestInfo
    );
    module.exports = {
      Cache
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cache/cachestorage.js
var require_cachestorage = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cache/cachestorage.js"(exports, module) {
    "use strict";
    var { Cache } = require_cache3();
    var { webidl } = require_webidl();
    var { kEnumerableProperty } = require_util4();
    var { kConstruct } = require_symbols2();
    var CacheStorage = class _CacheStorage {
      /**
       * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map
       * @type {Map<string, import('./cache').requestResponseList}
       */
      #caches = /* @__PURE__ */ new Map();
      constructor() {
        if (arguments[0] !== kConstruct) {
          webidl.illegalConstructor();
        }
        webidl.util.markAsUncloneable(this);
      }
      async match(request, options = {}) {
        webidl.brandCheck(this, _CacheStorage);
        webidl.argumentLengthCheck(arguments, 1, "CacheStorage.match");
        request = webidl.converters.RequestInfo(request);
        options = webidl.converters.MultiCacheQueryOptions(options);
        if (options.cacheName != null) {
          if (this.#caches.has(options.cacheName)) {
            const cacheList = this.#caches.get(options.cacheName);
            const cache2 = new Cache(kConstruct, cacheList);
            return await cache2.match(request, options);
          }
        } else {
          for (const cacheList of this.#caches.values()) {
            const cache2 = new Cache(kConstruct, cacheList);
            const response = await cache2.match(request, options);
            if (response !== void 0) {
              return response;
            }
          }
        }
      }
      /**
       * @see https://w3c.github.io/ServiceWorker/#cache-storage-has
       * @param {string} cacheName
       * @returns {Promise<boolean>}
       */
      async has(cacheName) {
        webidl.brandCheck(this, _CacheStorage);
        const prefix = "CacheStorage.has";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName");
        return this.#caches.has(cacheName);
      }
      /**
       * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open
       * @param {string} cacheName
       * @returns {Promise<Cache>}
       */
      async open(cacheName) {
        webidl.brandCheck(this, _CacheStorage);
        const prefix = "CacheStorage.open";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName");
        if (this.#caches.has(cacheName)) {
          const cache3 = this.#caches.get(cacheName);
          return new Cache(kConstruct, cache3);
        }
        const cache2 = [];
        this.#caches.set(cacheName, cache2);
        return new Cache(kConstruct, cache2);
      }
      /**
       * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete
       * @param {string} cacheName
       * @returns {Promise<boolean>}
       */
      async delete(cacheName) {
        webidl.brandCheck(this, _CacheStorage);
        const prefix = "CacheStorage.delete";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName");
        return this.#caches.delete(cacheName);
      }
      /**
       * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys
       * @returns {Promise<string[]>}
       */
      async keys() {
        webidl.brandCheck(this, _CacheStorage);
        const keys2 = this.#caches.keys();
        return [...keys2];
      }
    };
    Object.defineProperties(CacheStorage.prototype, {
      [Symbol.toStringTag]: {
        value: "CacheStorage",
        configurable: true
      },
      match: kEnumerableProperty,
      has: kEnumerableProperty,
      open: kEnumerableProperty,
      delete: kEnumerableProperty,
      keys: kEnumerableProperty
    });
    module.exports = {
      CacheStorage
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cookies/constants.js
var require_constants14 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cookies/constants.js"(exports, module) {
    "use strict";
    var maxAttributeValueSize = 1024;
    var maxNameValuePairSize = 4096;
    module.exports = {
      maxAttributeValueSize,
      maxNameValuePairSize
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cookies/util.js
var require_util7 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cookies/util.js"(exports, module) {
    "use strict";
    function isCTLExcludingHtab(value2) {
      for (let i5 = 0; i5 < value2.length; ++i5) {
        const code = value2.charCodeAt(i5);
        if (code >= 0 && code <= 8 || code >= 10 && code <= 31 || code === 127) {
          return true;
        }
      }
      return false;
    }
    function validateCookieName(name) {
      for (let i5 = 0; i5 < name.length; ++i5) {
        const code = name.charCodeAt(i5);
        if (code < 33 || // exclude CTLs (0-31), SP and HT
        code > 126 || // exclude non-ascii and DEL
        code === 34 || // "
        code === 40 || // (
        code === 41 || // )
        code === 60 || // <
        code === 62 || // >
        code === 64 || // @
        code === 44 || // ,
        code === 59 || // ;
        code === 58 || // :
        code === 92 || // \
        code === 47 || // /
        code === 91 || // [
        code === 93 || // ]
        code === 63 || // ?
        code === 61 || // =
        code === 123 || // {
        code === 125) {
          throw new Error("Invalid cookie name");
        }
      }
    }
    function validateCookieValue(value2) {
      let len = value2.length;
      let i5 = 0;
      if (value2[0] === '"') {
        if (len === 1 || value2[len - 1] !== '"') {
          throw new Error("Invalid cookie value");
        }
        --len;
        ++i5;
      }
      while (i5 < len) {
        const code = value2.charCodeAt(i5++);
        if (code < 33 || // exclude CTLs (0-31)
        code > 126 || // non-ascii and DEL (127)
        code === 34 || // "
        code === 44 || // ,
        code === 59 || // ;
        code === 92) {
          throw new Error("Invalid cookie value");
        }
      }
    }
    function validateCookiePath(path3) {
      for (let i5 = 0; i5 < path3.length; ++i5) {
        const code = path3.charCodeAt(i5);
        if (code < 32 || // exclude CTLs (0-31)
        code === 127 || // DEL
        code === 59) {
          throw new Error("Invalid cookie path");
        }
      }
    }
    function validateCookieDomain(domain) {
      if (domain.startsWith("-") || domain.endsWith(".") || domain.endsWith("-")) {
        throw new Error("Invalid cookie domain");
      }
    }
    var IMFDays = [
      "Sun",
      "Mon",
      "Tue",
      "Wed",
      "Thu",
      "Fri",
      "Sat"
    ];
    var IMFMonths = [
      "Jan",
      "Feb",
      "Mar",
      "Apr",
      "May",
      "Jun",
      "Jul",
      "Aug",
      "Sep",
      "Oct",
      "Nov",
      "Dec"
    ];
    var IMFPaddedNumbers = Array(61).fill(0).map((_, i5) => i5.toString().padStart(2, "0"));
    function toIMFDate(date) {
      if (typeof date === "number") {
        date = new Date(date);
      }
      return `${IMFDays[date.getUTCDay()]}, ${IMFPaddedNumbers[date.getUTCDate()]} ${IMFMonths[date.getUTCMonth()]} ${date.getUTCFullYear()} ${IMFPaddedNumbers[date.getUTCHours()]}:${IMFPaddedNumbers[date.getUTCMinutes()]}:${IMFPaddedNumbers[date.getUTCSeconds()]} GMT`;
    }
    function validateCookieMaxAge(maxAge) {
      if (maxAge < 0) {
        throw new Error("Invalid cookie max-age");
      }
    }
    function stringify(cookie) {
      if (cookie.name.length === 0) {
        return null;
      }
      validateCookieName(cookie.name);
      validateCookieValue(cookie.value);
      const out = [`${cookie.name}=${cookie.value}`];
      if (cookie.name.startsWith("__Secure-")) {
        cookie.secure = true;
      }
      if (cookie.name.startsWith("__Host-")) {
        cookie.secure = true;
        cookie.domain = null;
        cookie.path = "/";
      }
      if (cookie.secure) {
        out.push("Secure");
      }
      if (cookie.httpOnly) {
        out.push("HttpOnly");
      }
      if (typeof cookie.maxAge === "number") {
        validateCookieMaxAge(cookie.maxAge);
        out.push(`Max-Age=${cookie.maxAge}`);
      }
      if (cookie.domain) {
        validateCookieDomain(cookie.domain);
        out.push(`Domain=${cookie.domain}`);
      }
      if (cookie.path) {
        validateCookiePath(cookie.path);
        out.push(`Path=${cookie.path}`);
      }
      if (cookie.expires && cookie.expires.toString() !== "Invalid Date") {
        out.push(`Expires=${toIMFDate(cookie.expires)}`);
      }
      if (cookie.sameSite) {
        out.push(`SameSite=${cookie.sameSite}`);
      }
      for (const part of cookie.unparsed) {
        if (!part.includes("=")) {
          throw new Error("Invalid unparsed");
        }
        const [key, ...value2] = part.split("=");
        out.push(`${key.trim()}=${value2.join("=")}`);
      }
      return out.join("; ");
    }
    module.exports = {
      isCTLExcludingHtab,
      validateCookieName,
      validateCookiePath,
      validateCookieValue,
      toIMFDate,
      stringify
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cookies/parse.js
var require_parse8 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cookies/parse.js"(exports, module) {
    "use strict";
    var { collectASequenceOfCodePointsFast } = require_infra2();
    var { maxNameValuePairSize, maxAttributeValueSize } = require_constants14();
    var { isCTLExcludingHtab } = require_util7();
    var assert3 = __require("node:assert");
    var { unescape: qsUnescape } = __require("node:querystring");
    function parseSetCookie(header) {
      if (isCTLExcludingHtab(header)) {
        return null;
      }
      let nameValuePair = "";
      let unparsedAttributes = "";
      let name = "";
      let value2 = "";
      if (header.includes(";")) {
        const position = { position: 0 };
        nameValuePair = collectASequenceOfCodePointsFast(";", header, position);
        unparsedAttributes = header.slice(position.position);
      } else {
        nameValuePair = header;
      }
      if (!nameValuePair.includes("=")) {
        value2 = nameValuePair;
      } else {
        const position = { position: 0 };
        name = collectASequenceOfCodePointsFast(
          "=",
          nameValuePair,
          position
        );
        value2 = nameValuePair.slice(position.position + 1);
      }
      name = name.trim();
      value2 = value2.trim();
      if (name.length + value2.length > maxNameValuePairSize) {
        return null;
      }
      return {
        name,
        value: qsUnescape(value2),
        ...parseUnparsedAttributes(unparsedAttributes)
      };
    }
    function parseUnparsedAttributes(unparsedAttributes, cookieAttributeList = {}) {
      if (unparsedAttributes.length === 0) {
        return cookieAttributeList;
      }
      assert3(unparsedAttributes[0] === ";");
      unparsedAttributes = unparsedAttributes.slice(1);
      let cookieAv = "";
      if (unparsedAttributes.includes(";")) {
        cookieAv = collectASequenceOfCodePointsFast(
          ";",
          unparsedAttributes,
          { position: 0 }
        );
        unparsedAttributes = unparsedAttributes.slice(cookieAv.length);
      } else {
        cookieAv = unparsedAttributes;
        unparsedAttributes = "";
      }
      let attributeName = "";
      let attributeValue = "";
      if (cookieAv.includes("=")) {
        const position = { position: 0 };
        attributeName = collectASequenceOfCodePointsFast(
          "=",
          cookieAv,
          position
        );
        attributeValue = cookieAv.slice(position.position + 1);
      } else {
        attributeName = cookieAv;
      }
      attributeName = attributeName.trim();
      attributeValue = attributeValue.trim();
      if (attributeValue.length > maxAttributeValueSize) {
        return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList);
      }
      const attributeNameLowercase = attributeName.toLowerCase();
      if (attributeNameLowercase === "expires") {
        const expiryTime = new Date(attributeValue);
        cookieAttributeList.expires = expiryTime;
      } else if (attributeNameLowercase === "max-age") {
        const charCode = attributeValue.charCodeAt(0);
        if ((charCode < 48 || charCode > 57) && attributeValue[0] !== "-") {
          return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList);
        }
        if (!/^\d+$/.test(attributeValue)) {
          return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList);
        }
        const deltaSeconds = Number(attributeValue);
        cookieAttributeList.maxAge = deltaSeconds;
      } else if (attributeNameLowercase === "domain") {
        let cookieDomain = attributeValue;
        if (cookieDomain[0] === ".") {
          cookieDomain = cookieDomain.slice(1);
        }
        cookieDomain = cookieDomain.toLowerCase();
        cookieAttributeList.domain = cookieDomain;
      } else if (attributeNameLowercase === "path") {
        let cookiePath = "";
        if (attributeValue.length === 0 || attributeValue[0] !== "/") {
          cookiePath = "/";
        } else {
          cookiePath = attributeValue;
        }
        cookieAttributeList.path = cookiePath;
      } else if (attributeNameLowercase === "secure") {
        cookieAttributeList.secure = true;
      } else if (attributeNameLowercase === "httponly") {
        cookieAttributeList.httpOnly = true;
      } else if (attributeNameLowercase === "samesite") {
        let enforcement = "Default";
        const attributeValueLowercase = attributeValue.toLowerCase();
        if (attributeValueLowercase.includes("none")) {
          enforcement = "None";
        }
        if (attributeValueLowercase.includes("strict")) {
          enforcement = "Strict";
        }
        if (attributeValueLowercase.includes("lax")) {
          enforcement = "Lax";
        }
        cookieAttributeList.sameSite = enforcement;
      } else {
        cookieAttributeList.unparsed ??= [];
        cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`);
      }
      return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList);
    }
    module.exports = {
      parseSetCookie,
      parseUnparsedAttributes
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cookies/index.js
var require_cookies = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/cookies/index.js"(exports, module) {
    "use strict";
    var { parseSetCookie } = require_parse8();
    var { stringify } = require_util7();
    var { webidl } = require_webidl();
    var { Headers } = require_headers2();
    var brandChecks = webidl.brandCheckMultiple([Headers, globalThis.Headers].filter(Boolean));
    function getCookies(headers) {
      webidl.argumentLengthCheck(arguments, 1, "getCookies");
      brandChecks(headers);
      const cookie = headers.get("cookie");
      const out = {};
      if (!cookie) {
        return out;
      }
      for (const piece of cookie.split(";")) {
        const [name, ...value2] = piece.split("=");
        out[name.trim()] = value2.join("=");
      }
      return out;
    }
    function deleteCookie(headers, name, attributes2) {
      brandChecks(headers);
      const prefix = "deleteCookie";
      webidl.argumentLengthCheck(arguments, 2, prefix);
      name = webidl.converters.DOMString(name, prefix, "name");
      attributes2 = webidl.converters.DeleteCookieAttributes(attributes2);
      setCookie(headers, {
        name,
        value: "",
        expires: /* @__PURE__ */ new Date(0),
        ...attributes2
      });
    }
    function getSetCookies(headers) {
      webidl.argumentLengthCheck(arguments, 1, "getSetCookies");
      brandChecks(headers);
      const cookies = headers.getSetCookie();
      if (!cookies) {
        return [];
      }
      return cookies.map((pair) => parseSetCookie(pair));
    }
    function parseCookie(cookie) {
      cookie = webidl.converters.DOMString(cookie);
      return parseSetCookie(cookie);
    }
    function setCookie(headers, cookie) {
      webidl.argumentLengthCheck(arguments, 2, "setCookie");
      brandChecks(headers);
      cookie = webidl.converters.Cookie(cookie);
      const str = stringify(cookie);
      if (str) {
        headers.append("set-cookie", str, true);
      }
    }
    webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([
      {
        converter: webidl.nullableConverter(webidl.converters.DOMString),
        key: "path",
        defaultValue: () => null
      },
      {
        converter: webidl.nullableConverter(webidl.converters.DOMString),
        key: "domain",
        defaultValue: () => null
      }
    ]);
    webidl.converters.Cookie = webidl.dictionaryConverter([
      {
        converter: webidl.converters.DOMString,
        key: "name"
      },
      {
        converter: webidl.converters.DOMString,
        key: "value"
      },
      {
        converter: webidl.nullableConverter((value2) => {
          if (typeof value2 === "number") {
            return webidl.converters["unsigned long long"](value2);
          }
          return new Date(value2);
        }),
        key: "expires",
        defaultValue: () => null
      },
      {
        converter: webidl.nullableConverter(webidl.converters["long long"]),
        key: "maxAge",
        defaultValue: () => null
      },
      {
        converter: webidl.nullableConverter(webidl.converters.DOMString),
        key: "domain",
        defaultValue: () => null
      },
      {
        converter: webidl.nullableConverter(webidl.converters.DOMString),
        key: "path",
        defaultValue: () => null
      },
      {
        converter: webidl.nullableConverter(webidl.converters.boolean),
        key: "secure",
        defaultValue: () => null
      },
      {
        converter: webidl.nullableConverter(webidl.converters.boolean),
        key: "httpOnly",
        defaultValue: () => null
      },
      {
        converter: webidl.converters.USVString,
        key: "sameSite",
        allowedValues: ["Strict", "Lax", "None"]
      },
      {
        converter: webidl.sequenceConverter(webidl.converters.DOMString),
        key: "unparsed",
        defaultValue: () => []
      }
    ]);
    module.exports = {
      getCookies,
      deleteCookie,
      getSetCookies,
      setCookie,
      parseCookie
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/events.js
var require_events5 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/events.js"(exports, module) {
    "use strict";
    var { webidl } = require_webidl();
    var { kEnumerableProperty } = require_util4();
    var { kConstruct } = require_symbols2();
    var MessageEvent = class _MessageEvent extends Event {
      #eventInit;
      constructor(type, eventInitDict = {}) {
        if (type === kConstruct) {
          super(arguments[1], arguments[2]);
          webidl.util.markAsUncloneable(this);
          return;
        }
        const prefix = "MessageEvent constructor";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        type = webidl.converters.DOMString(type, prefix, "type");
        eventInitDict = webidl.converters.MessageEventInit(eventInitDict, prefix, "eventInitDict");
        super(type, eventInitDict);
        this.#eventInit = eventInitDict;
        webidl.util.markAsUncloneable(this);
      }
      get data() {
        webidl.brandCheck(this, _MessageEvent);
        return this.#eventInit.data;
      }
      get origin() {
        webidl.brandCheck(this, _MessageEvent);
        return this.#eventInit.origin;
      }
      get lastEventId() {
        webidl.brandCheck(this, _MessageEvent);
        return this.#eventInit.lastEventId;
      }
      get source() {
        webidl.brandCheck(this, _MessageEvent);
        return this.#eventInit.source;
      }
      get ports() {
        webidl.brandCheck(this, _MessageEvent);
        if (!Object.isFrozen(this.#eventInit.ports)) {
          Object.freeze(this.#eventInit.ports);
        }
        return this.#eventInit.ports;
      }
      initMessageEvent(type, bubbles = false, cancelable = false, data2 = null, origin2 = "", lastEventId = "", source = null, ports = []) {
        webidl.brandCheck(this, _MessageEvent);
        webidl.argumentLengthCheck(arguments, 1, "MessageEvent.initMessageEvent");
        return new _MessageEvent(type, {
          bubbles,
          cancelable,
          data: data2,
          origin: origin2,
          lastEventId,
          source,
          ports
        });
      }
      static createFastMessageEvent(type, init3) {
        const messageEvent = new _MessageEvent(kConstruct, type, init3);
        messageEvent.#eventInit = init3;
        messageEvent.#eventInit.data ??= null;
        messageEvent.#eventInit.origin ??= "";
        messageEvent.#eventInit.lastEventId ??= "";
        messageEvent.#eventInit.source ??= null;
        messageEvent.#eventInit.ports ??= [];
        return messageEvent;
      }
    };
    var { createFastMessageEvent } = MessageEvent;
    delete MessageEvent.createFastMessageEvent;
    var CloseEvent = class _CloseEvent extends Event {
      #eventInit;
      constructor(type, eventInitDict = {}) {
        const prefix = "CloseEvent constructor";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        type = webidl.converters.DOMString(type, prefix, "type");
        eventInitDict = webidl.converters.CloseEventInit(eventInitDict);
        super(type, eventInitDict);
        this.#eventInit = eventInitDict;
        webidl.util.markAsUncloneable(this);
      }
      get wasClean() {
        webidl.brandCheck(this, _CloseEvent);
        return this.#eventInit.wasClean;
      }
      get code() {
        webidl.brandCheck(this, _CloseEvent);
        return this.#eventInit.code;
      }
      get reason() {
        webidl.brandCheck(this, _CloseEvent);
        return this.#eventInit.reason;
      }
    };
    var ErrorEvent = class _ErrorEvent extends Event {
      #eventInit;
      constructor(type, eventInitDict) {
        const prefix = "ErrorEvent constructor";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        super(type, eventInitDict);
        webidl.util.markAsUncloneable(this);
        type = webidl.converters.DOMString(type, prefix, "type");
        eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {});
        this.#eventInit = eventInitDict;
      }
      get message() {
        webidl.brandCheck(this, _ErrorEvent);
        return this.#eventInit.message;
      }
      get filename() {
        webidl.brandCheck(this, _ErrorEvent);
        return this.#eventInit.filename;
      }
      get lineno() {
        webidl.brandCheck(this, _ErrorEvent);
        return this.#eventInit.lineno;
      }
      get colno() {
        webidl.brandCheck(this, _ErrorEvent);
        return this.#eventInit.colno;
      }
      get error() {
        webidl.brandCheck(this, _ErrorEvent);
        return this.#eventInit.error;
      }
    };
    Object.defineProperties(MessageEvent.prototype, {
      [Symbol.toStringTag]: {
        value: "MessageEvent",
        configurable: true
      },
      data: kEnumerableProperty,
      origin: kEnumerableProperty,
      lastEventId: kEnumerableProperty,
      source: kEnumerableProperty,
      ports: kEnumerableProperty,
      initMessageEvent: kEnumerableProperty
    });
    Object.defineProperties(CloseEvent.prototype, {
      [Symbol.toStringTag]: {
        value: "CloseEvent",
        configurable: true
      },
      reason: kEnumerableProperty,
      code: kEnumerableProperty,
      wasClean: kEnumerableProperty
    });
    Object.defineProperties(ErrorEvent.prototype, {
      [Symbol.toStringTag]: {
        value: "ErrorEvent",
        configurable: true
      },
      message: kEnumerableProperty,
      filename: kEnumerableProperty,
      lineno: kEnumerableProperty,
      colno: kEnumerableProperty,
      error: kEnumerableProperty
    });
    webidl.converters.MessagePort = webidl.interfaceConverter(
      webidl.is.MessagePort,
      "MessagePort"
    );
    webidl.converters["sequence<MessagePort>"] = webidl.sequenceConverter(
      webidl.converters.MessagePort
    );
    var eventInit = [
      {
        key: "bubbles",
        converter: webidl.converters.boolean,
        defaultValue: () => false
      },
      {
        key: "cancelable",
        converter: webidl.converters.boolean,
        defaultValue: () => false
      },
      {
        key: "composed",
        converter: webidl.converters.boolean,
        defaultValue: () => false
      }
    ];
    webidl.converters.MessageEventInit = webidl.dictionaryConverter([
      ...eventInit,
      {
        key: "data",
        converter: webidl.converters.any,
        defaultValue: () => null
      },
      {
        key: "origin",
        converter: webidl.converters.USVString,
        defaultValue: () => ""
      },
      {
        key: "lastEventId",
        converter: webidl.converters.DOMString,
        defaultValue: () => ""
      },
      {
        key: "source",
        // Node doesn't implement WindowProxy or ServiceWorker, so the only
        // valid value for source is a MessagePort.
        converter: webidl.nullableConverter(webidl.converters.MessagePort),
        defaultValue: () => null
      },
      {
        key: "ports",
        converter: webidl.converters["sequence<MessagePort>"],
        defaultValue: () => []
      }
    ]);
    webidl.converters.CloseEventInit = webidl.dictionaryConverter([
      ...eventInit,
      {
        key: "wasClean",
        converter: webidl.converters.boolean,
        defaultValue: () => false
      },
      {
        key: "code",
        converter: webidl.converters["unsigned short"],
        defaultValue: () => 0
      },
      {
        key: "reason",
        converter: webidl.converters.USVString,
        defaultValue: () => ""
      }
    ]);
    webidl.converters.ErrorEventInit = webidl.dictionaryConverter([
      ...eventInit,
      {
        key: "message",
        converter: webidl.converters.DOMString,
        defaultValue: () => ""
      },
      {
        key: "filename",
        converter: webidl.converters.USVString,
        defaultValue: () => ""
      },
      {
        key: "lineno",
        converter: webidl.converters["unsigned long"],
        defaultValue: () => 0
      },
      {
        key: "colno",
        converter: webidl.converters["unsigned long"],
        defaultValue: () => 0
      },
      {
        key: "error",
        converter: webidl.converters.any
      }
    ]);
    module.exports = {
      MessageEvent,
      CloseEvent,
      ErrorEvent,
      createFastMessageEvent
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/constants.js
var require_constants15 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/constants.js"(exports, module) {
    "use strict";
    var uid = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
    var staticPropertyDescriptors = {
      enumerable: true,
      writable: false,
      configurable: false
    };
    var states = {
      CONNECTING: 0,
      OPEN: 1,
      CLOSING: 2,
      CLOSED: 3
    };
    var sentCloseFrameState = {
      SENT: 1,
      RECEIVED: 2
    };
    var opcodes = {
      CONTINUATION: 0,
      TEXT: 1,
      BINARY: 2,
      CLOSE: 8,
      PING: 9,
      PONG: 10
    };
    var maxUnsigned16Bit = 65535;
    var parserStates = {
      INFO: 0,
      PAYLOADLENGTH_16: 2,
      PAYLOADLENGTH_64: 3,
      READ_DATA: 4
    };
    var emptyBuffer = Buffer.allocUnsafe(0);
    var sendHints = {
      text: 1,
      typedArray: 2,
      arrayBuffer: 3,
      blob: 4
    };
    module.exports = {
      uid,
      sentCloseFrameState,
      staticPropertyDescriptors,
      states,
      opcodes,
      maxUnsigned16Bit,
      parserStates,
      emptyBuffer,
      sendHints
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/util.js
var require_util8 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/util.js"(exports, module) {
    "use strict";
    var { states, opcodes } = require_constants15();
    var { isUtf8 } = __require("node:buffer");
    var { removeHTTPWhitespace } = require_data_url();
    var { collectASequenceOfCodePointsFast } = require_infra2();
    function isConnecting(readyState) {
      return readyState === states.CONNECTING;
    }
    function isEstablished(readyState) {
      return readyState === states.OPEN;
    }
    function isClosing(readyState) {
      return readyState === states.CLOSING;
    }
    function isClosed(readyState) {
      return readyState === states.CLOSED;
    }
    function fireEvent(e4, target, eventFactory = (type, init3) => new Event(type, init3), eventInitDict = {}) {
      const event = eventFactory(e4, eventInitDict);
      target.dispatchEvent(event);
    }
    function websocketMessageReceived(handler, type, data2) {
      handler.onMessage(type, data2);
    }
    function toArrayBuffer(buffer) {
      if (buffer.byteLength === buffer.buffer.byteLength) {
        return buffer.buffer;
      }
      return new Uint8Array(buffer).buffer;
    }
    function isValidSubprotocol(protocol) {
      if (protocol.length === 0) {
        return false;
      }
      for (let i5 = 0; i5 < protocol.length; ++i5) {
        const code = protocol.charCodeAt(i5);
        if (code < 33 || // CTL, contains SP (0x20) and HT (0x09)
        code > 126 || code === 34 || // "
        code === 40 || // (
        code === 41 || // )
        code === 44 || // ,
        code === 47 || // /
        code === 58 || // :
        code === 59 || // ;
        code === 60 || // <
        code === 61 || // =
        code === 62 || // >
        code === 63 || // ?
        code === 64 || // @
        code === 91 || // [
        code === 92 || // \
        code === 93 || // ]
        code === 123 || // {
        code === 125) {
          return false;
        }
      }
      return true;
    }
    function isValidStatusCode(code) {
      if (code >= 1e3 && code < 1015) {
        return code !== 1004 && // reserved
        code !== 1005 && // "MUST NOT be set as a status code"
        code !== 1006;
      }
      return code >= 3e3 && code <= 4999;
    }
    function isControlFrame(opcode) {
      return opcode === opcodes.CLOSE || opcode === opcodes.PING || opcode === opcodes.PONG;
    }
    function isContinuationFrame(opcode) {
      return opcode === opcodes.CONTINUATION;
    }
    function isTextBinaryFrame(opcode) {
      return opcode === opcodes.TEXT || opcode === opcodes.BINARY;
    }
    function isValidOpcode(opcode) {
      return isTextBinaryFrame(opcode) || isContinuationFrame(opcode) || isControlFrame(opcode);
    }
    function parseExtensions(extensions2) {
      const position = { position: 0 };
      const extensionList = /* @__PURE__ */ new Map();
      while (position.position < extensions2.length) {
        const pair = collectASequenceOfCodePointsFast(";", extensions2, position);
        const [name, value2 = ""] = pair.split("=", 2);
        extensionList.set(
          removeHTTPWhitespace(name, true, false),
          removeHTTPWhitespace(value2, false, true)
        );
        position.position++;
      }
      return extensionList;
    }
    function isValidClientWindowBits(value2) {
      for (let i5 = 0; i5 < value2.length; i5++) {
        const byte = value2.charCodeAt(i5);
        if (byte < 48 || byte > 57) {
          return false;
        }
      }
      return true;
    }
    function getURLRecord(url3, baseURL) {
      let urlRecord;
      try {
        urlRecord = new URL(url3, baseURL);
      } catch (e4) {
        throw new DOMException(e4, "SyntaxError");
      }
      if (urlRecord.protocol === "http:") {
        urlRecord.protocol = "ws:";
      } else if (urlRecord.protocol === "https:") {
        urlRecord.protocol = "wss:";
      }
      if (urlRecord.protocol !== "ws:" && urlRecord.protocol !== "wss:") {
        throw new DOMException("expected a ws: or wss: url", "SyntaxError");
      }
      if (urlRecord.hash.length || urlRecord.href.endsWith("#")) {
        throw new DOMException("hash", "SyntaxError");
      }
      return urlRecord;
    }
    function validateCloseCodeAndReason(code, reason) {
      if (code !== null) {
        if (code !== 1e3 && (code < 3e3 || code > 4999)) {
          throw new DOMException("invalid code", "InvalidAccessError");
        }
      }
      if (reason !== null) {
        const reasonBytesLength = Buffer.byteLength(reason);
        if (reasonBytesLength > 123) {
          throw new DOMException(`Reason must be less than 123 bytes; received ${reasonBytesLength}`, "SyntaxError");
        }
      }
    }
    var utf8Decode = (() => {
      if (typeof process.versions.icu === "string") {
        const fatalDecoder = new TextDecoder("utf-8", { fatal: true });
        return fatalDecoder.decode.bind(fatalDecoder);
      }
      return function(buffer) {
        if (isUtf8(buffer)) {
          return buffer.toString("utf-8");
        }
        throw new TypeError("Invalid utf-8 received.");
      };
    })();
    module.exports = {
      isConnecting,
      isEstablished,
      isClosing,
      isClosed,
      fireEvent,
      isValidSubprotocol,
      isValidStatusCode,
      websocketMessageReceived,
      utf8Decode,
      isControlFrame,
      isContinuationFrame,
      isTextBinaryFrame,
      isValidOpcode,
      parseExtensions,
      isValidClientWindowBits,
      toArrayBuffer,
      getURLRecord,
      validateCloseCodeAndReason
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/frame.js
var require_frame = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/frame.js"(exports, module) {
    "use strict";
    var { runtimeFeatures } = require_runtime_features();
    var { maxUnsigned16Bit, opcodes } = require_constants15();
    var BUFFER_SIZE = 8 * 1024;
    var buffer = null;
    var bufIdx = BUFFER_SIZE;
    var randomFillSync = runtimeFeatures.has("crypto") ? __require("node:crypto").randomFillSync : function randomFillSync2(buffer2, _offset, _size) {
      for (let i5 = 0; i5 < buffer2.length; ++i5) {
        buffer2[i5] = Math.random() * 255 | 0;
      }
      return buffer2;
    };
    function generateMask() {
      if (bufIdx === BUFFER_SIZE) {
        bufIdx = 0;
        randomFillSync(buffer ??= Buffer.allocUnsafeSlow(BUFFER_SIZE), 0, BUFFER_SIZE);
      }
      return [buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++]];
    }
    var WebsocketFrameSend = class {
      /**
       * @param {Buffer|undefined} data
       */
      constructor(data2) {
        this.frameData = data2;
      }
      createFrame(opcode) {
        const frameData = this.frameData;
        const maskKey = generateMask();
        const bodyLength = frameData?.byteLength ?? 0;
        let payloadLength = bodyLength;
        let offset2 = 6;
        if (bodyLength > maxUnsigned16Bit) {
          offset2 += 8;
          payloadLength = 127;
        } else if (bodyLength > 125) {
          offset2 += 2;
          payloadLength = 126;
        }
        const buffer2 = Buffer.allocUnsafe(bodyLength + offset2);
        buffer2[0] = buffer2[1] = 0;
        buffer2[0] |= 128;
        buffer2[0] = (buffer2[0] & 240) + opcode;
        buffer2[offset2 - 4] = maskKey[0];
        buffer2[offset2 - 3] = maskKey[1];
        buffer2[offset2 - 2] = maskKey[2];
        buffer2[offset2 - 1] = maskKey[3];
        buffer2[1] = payloadLength;
        if (payloadLength === 126) {
          buffer2.writeUInt16BE(bodyLength, 2);
        } else if (payloadLength === 127) {
          buffer2[2] = buffer2[3] = 0;
          buffer2.writeUIntBE(bodyLength, 4, 6);
        }
        buffer2[1] |= 128;
        for (let i5 = 0; i5 < bodyLength; ++i5) {
          buffer2[offset2 + i5] = frameData[i5] ^ maskKey[i5 & 3];
        }
        return buffer2;
      }
      /**
       * @param {Uint8Array} buffer
       */
      static createFastTextFrame(buffer2) {
        const maskKey = generateMask();
        const bodyLength = buffer2.length;
        for (let i5 = 0; i5 < bodyLength; ++i5) {
          buffer2[i5] ^= maskKey[i5 & 3];
        }
        let payloadLength = bodyLength;
        let offset2 = 6;
        if (bodyLength > maxUnsigned16Bit) {
          offset2 += 8;
          payloadLength = 127;
        } else if (bodyLength > 125) {
          offset2 += 2;
          payloadLength = 126;
        }
        const head = Buffer.allocUnsafeSlow(offset2);
        head[0] = 128 | opcodes.TEXT;
        head[1] = payloadLength | 128;
        head[offset2 - 4] = maskKey[0];
        head[offset2 - 3] = maskKey[1];
        head[offset2 - 2] = maskKey[2];
        head[offset2 - 1] = maskKey[3];
        if (payloadLength === 126) {
          head.writeUInt16BE(bodyLength, 2);
        } else if (payloadLength === 127) {
          head[2] = head[3] = 0;
          head.writeUIntBE(bodyLength, 4, 6);
        }
        return [head, buffer2];
      }
    };
    module.exports = {
      WebsocketFrameSend,
      generateMask
      // for benchmark
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/connection.js
var require_connection = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/connection.js"(exports, module) {
    "use strict";
    var { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = require_constants15();
    var { parseExtensions, isClosed, isClosing, isEstablished, isConnecting, validateCloseCodeAndReason } = require_util8();
    var { makeRequest } = require_request3();
    var { fetching } = require_fetch();
    var { Headers, getHeadersList } = require_headers2();
    var { getDecodeSplit } = require_util5();
    var { WebsocketFrameSend } = require_frame();
    var assert3 = __require("node:assert");
    var { runtimeFeatures } = require_runtime_features();
    var crypto5 = runtimeFeatures.has("crypto") ? __require("node:crypto") : null;
    var warningEmitted = false;
    function establishWebSocketConnection(url3, protocols, client, handler, options) {
      const requestURL = url3;
      requestURL.protocol = url3.protocol === "ws:" ? "http:" : "https:";
      const request = makeRequest({
        urlList: [requestURL],
        client,
        serviceWorkers: "none",
        referrer: "no-referrer",
        mode: "websocket",
        credentials: "include",
        cache: "no-store",
        redirect: "error",
        useURLCredentials: true
      });
      if (options.headers) {
        const headersList = getHeadersList(new Headers(options.headers));
        request.headersList = headersList;
      }
      const keyValue = crypto5.randomBytes(16).toString("base64");
      request.headersList.append("sec-websocket-key", keyValue, true);
      request.headersList.append("sec-websocket-version", "13", true);
      for (const protocol of protocols) {
        request.headersList.append("sec-websocket-protocol", protocol, true);
      }
      const permessageDeflate = "permessage-deflate; client_max_window_bits";
      request.headersList.append("sec-websocket-extensions", permessageDeflate, true);
      const controller = fetching({
        request,
        useParallelQueue: true,
        dispatcher: options.dispatcher,
        processResponse(response) {
          if (response.type === "error" || response.status !== 101) {
            if (response.socket?.session == null) {
              failWebsocketConnection(handler, 1002, "Received network error or non-101 status code.", response.error);
              return;
            }
            if (response.status !== 200) {
              failWebsocketConnection(handler, 1002, "Received network error or non-200 status code.", response.error);
              return;
            }
          }
          if (warningEmitted === false && response.socket?.session != null) {
            process.emitWarning("WebSocket over HTTP2 is experimental, and subject to change.", "ExperimentalWarning");
            warningEmitted = true;
          }
          if (protocols.length !== 0 && !response.headersList.get("Sec-WebSocket-Protocol")) {
            failWebsocketConnection(handler, 1002, "Server did not respond with sent protocols.");
            return;
          }
          if (response.socket.session == null && response.headersList.get("Upgrade")?.toLowerCase() !== "websocket") {
            failWebsocketConnection(handler, 1002, 'Server did not set Upgrade header to "websocket".');
            return;
          }
          if (response.socket.session == null && response.headersList.get("Connection")?.toLowerCase() !== "upgrade") {
            failWebsocketConnection(handler, 1002, 'Server did not set Connection header to "upgrade".');
            return;
          }
          const secWSAccept = response.headersList.get("Sec-WebSocket-Accept");
          const digest = crypto5.hash("sha1", keyValue + uid, "base64");
          if (secWSAccept !== digest) {
            failWebsocketConnection(handler, 1002, "Incorrect hash received in Sec-WebSocket-Accept header.");
            return;
          }
          const secExtension = response.headersList.get("Sec-WebSocket-Extensions");
          let extensions2;
          if (secExtension !== null) {
            extensions2 = parseExtensions(secExtension);
            if (!extensions2.has("permessage-deflate")) {
              failWebsocketConnection(handler, 1002, "Sec-WebSocket-Extensions header does not match.");
              return;
            }
          }
          const secProtocol = response.headersList.get("Sec-WebSocket-Protocol");
          if (secProtocol !== null) {
            const requestProtocols = getDecodeSplit("sec-websocket-protocol", request.headersList);
            if (!requestProtocols.includes(secProtocol)) {
              failWebsocketConnection(handler, 1002, "Protocol was not set in the opening handshake.");
              return;
            }
          }
          response.socket.on("data", handler.onSocketData);
          response.socket.on("close", handler.onSocketClose);
          response.socket.on("error", handler.onSocketError);
          handler.wasEverConnected = true;
          handler.onConnectionEstablished(response, extensions2);
        }
      });
      return controller;
    }
    function closeWebSocketConnection(object, code, reason, validate = false) {
      code ??= null;
      reason ??= "";
      if (validate) validateCloseCodeAndReason(code, reason);
      if (isClosed(object.readyState) || isClosing(object.readyState)) {
      } else if (!isEstablished(object.readyState)) {
        failWebsocketConnection(object);
        object.readyState = states.CLOSING;
      } else if (!object.closeState.has(sentCloseFrameState.SENT) && !object.closeState.has(sentCloseFrameState.RECEIVED)) {
        const frame = new WebsocketFrameSend();
        if (reason.length !== 0 && code === null) {
          code = 1e3;
        }
        assert3(code === null || Number.isInteger(code));
        if (code === null && reason.length === 0) {
          frame.frameData = emptyBuffer;
        } else if (code !== null && reason === null) {
          frame.frameData = Buffer.allocUnsafe(2);
          frame.frameData.writeUInt16BE(code, 0);
        } else if (code !== null && reason !== null) {
          frame.frameData = Buffer.allocUnsafe(2 + Buffer.byteLength(reason));
          frame.frameData.writeUInt16BE(code, 0);
          frame.frameData.write(reason, 2, "utf-8");
        } else {
          frame.frameData = emptyBuffer;
        }
        object.socket.write(frame.createFrame(opcodes.CLOSE));
        object.closeState.add(sentCloseFrameState.SENT);
        object.readyState = states.CLOSING;
      } else {
        object.readyState = states.CLOSING;
      }
    }
    function failWebsocketConnection(handler, code, reason, cause) {
      if (isEstablished(handler.readyState)) {
        closeWebSocketConnection(handler, code, reason, false);
      }
      handler.controller.abort();
      if (isConnecting(handler.readyState)) {
        handler.onSocketClose();
      } else if (handler.socket?.destroyed === false) {
        handler.socket.destroy();
      }
    }
    module.exports = {
      establishWebSocketConnection,
      failWebsocketConnection,
      closeWebSocketConnection
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/permessage-deflate.js
var require_permessage_deflate2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/permessage-deflate.js"(exports, module) {
    "use strict";
    var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = __require("node:zlib");
    var { isValidClientWindowBits } = require_util8();
    var tail = Buffer.from([0, 0, 255, 255]);
    var kBuffer = Symbol("kBuffer");
    var kLength = Symbol("kLength");
    var PerMessageDeflate = class {
      /** @type {import('node:zlib').InflateRaw} */
      #inflate;
      #options = {};
      constructor(extensions2) {
        this.#options.serverNoContextTakeover = extensions2.has("server_no_context_takeover");
        this.#options.serverMaxWindowBits = extensions2.get("server_max_window_bits");
      }
      decompress(chunk3, fin, callback) {
        if (!this.#inflate) {
          let windowBits = Z_DEFAULT_WINDOWBITS;
          if (this.#options.serverMaxWindowBits) {
            if (!isValidClientWindowBits(this.#options.serverMaxWindowBits)) {
              callback(new Error("Invalid server_max_window_bits"));
              return;
            }
            windowBits = Number.parseInt(this.#options.serverMaxWindowBits);
          }
          this.#inflate = createInflateRaw({ windowBits });
          this.#inflate[kBuffer] = [];
          this.#inflate[kLength] = 0;
          this.#inflate.on("data", (data2) => {
            this.#inflate[kBuffer].push(data2);
            this.#inflate[kLength] += data2.length;
          });
          this.#inflate.on("error", (err2) => {
            this.#inflate = null;
            callback(err2);
          });
        }
        this.#inflate.write(chunk3);
        if (fin) {
          this.#inflate.write(tail);
        }
        this.#inflate.flush(() => {
          const full = Buffer.concat(this.#inflate[kBuffer], this.#inflate[kLength]);
          this.#inflate[kBuffer].length = 0;
          this.#inflate[kLength] = 0;
          callback(null, full);
        });
      }
    };
    module.exports = { PerMessageDeflate };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/receiver.js
var require_receiver2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/receiver.js"(exports, module) {
    "use strict";
    var { Writable } = __require("node:stream");
    var assert3 = __require("node:assert");
    var { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = require_constants15();
    var {
      isValidStatusCode,
      isValidOpcode,
      websocketMessageReceived,
      utf8Decode,
      isControlFrame,
      isTextBinaryFrame,
      isContinuationFrame
    } = require_util8();
    var { failWebsocketConnection } = require_connection();
    var { WebsocketFrameSend } = require_frame();
    var { PerMessageDeflate } = require_permessage_deflate2();
    var ByteParser = class extends Writable {
      #buffers = [];
      #fragmentsBytes = 0;
      #byteOffset = 0;
      #loop = false;
      #state = parserStates.INFO;
      #info = {};
      #fragments = [];
      /** @type {Map<string, PerMessageDeflate>} */
      #extensions;
      /** @type {import('./websocket').Handler} */
      #handler;
      constructor(handler, extensions2) {
        super();
        this.#handler = handler;
        this.#extensions = extensions2 == null ? /* @__PURE__ */ new Map() : extensions2;
        if (this.#extensions.has("permessage-deflate")) {
          this.#extensions.set("permessage-deflate", new PerMessageDeflate(extensions2));
        }
      }
      /**
       * @param {Buffer} chunk
       * @param {() => void} callback
       */
      _write(chunk3, _, callback) {
        this.#buffers.push(chunk3);
        this.#byteOffset += chunk3.length;
        this.#loop = true;
        this.run(callback);
      }
      /**
       * Runs whenever a new chunk is received.
       * Callback is called whenever there are no more chunks buffering,
       * or not enough bytes are buffered to parse.
       */
      run(callback) {
        while (this.#loop) {
          if (this.#state === parserStates.INFO) {
            if (this.#byteOffset < 2) {
              return callback();
            }
            const buffer = this.consume(2);
            const fin = (buffer[0] & 128) !== 0;
            const opcode = buffer[0] & 15;
            const masked = (buffer[1] & 128) === 128;
            const fragmented = !fin && opcode !== opcodes.CONTINUATION;
            const payloadLength = buffer[1] & 127;
            const rsv1 = buffer[0] & 64;
            const rsv2 = buffer[0] & 32;
            const rsv3 = buffer[0] & 16;
            if (!isValidOpcode(opcode)) {
              failWebsocketConnection(this.#handler, 1002, "Invalid opcode received");
              return callback();
            }
            if (masked) {
              failWebsocketConnection(this.#handler, 1002, "Frame cannot be masked");
              return callback();
            }
            if (rsv1 !== 0 && !this.#extensions.has("permessage-deflate")) {
              failWebsocketConnection(this.#handler, 1002, "Expected RSV1 to be clear.");
              return;
            }
            if (rsv2 !== 0 || rsv3 !== 0) {
              failWebsocketConnection(this.#handler, 1002, "RSV1, RSV2, RSV3 must be clear");
              return;
            }
            if (fragmented && !isTextBinaryFrame(opcode)) {
              failWebsocketConnection(this.#handler, 1002, "Invalid frame type was fragmented.");
              return;
            }
            if (isTextBinaryFrame(opcode) && this.#fragments.length > 0) {
              failWebsocketConnection(this.#handler, 1002, "Expected continuation frame");
              return;
            }
            if (this.#info.fragmented && fragmented) {
              failWebsocketConnection(this.#handler, 1002, "Fragmented frame exceeded 125 bytes.");
              return;
            }
            if ((payloadLength > 125 || fragmented) && isControlFrame(opcode)) {
              failWebsocketConnection(this.#handler, 1002, "Control frame either too large or fragmented");
              return;
            }
            if (isContinuationFrame(opcode) && this.#fragments.length === 0 && !this.#info.compressed) {
              failWebsocketConnection(this.#handler, 1002, "Unexpected continuation frame");
              return;
            }
            if (payloadLength <= 125) {
              this.#info.payloadLength = payloadLength;
              this.#state = parserStates.READ_DATA;
            } else if (payloadLength === 126) {
              this.#state = parserStates.PAYLOADLENGTH_16;
            } else if (payloadLength === 127) {
              this.#state = parserStates.PAYLOADLENGTH_64;
            }
            if (isTextBinaryFrame(opcode)) {
              this.#info.binaryType = opcode;
              this.#info.compressed = rsv1 !== 0;
            }
            this.#info.opcode = opcode;
            this.#info.masked = masked;
            this.#info.fin = fin;
            this.#info.fragmented = fragmented;
          } else if (this.#state === parserStates.PAYLOADLENGTH_16) {
            if (this.#byteOffset < 2) {
              return callback();
            }
            const buffer = this.consume(2);
            this.#info.payloadLength = buffer.readUInt16BE(0);
            this.#state = parserStates.READ_DATA;
          } else if (this.#state === parserStates.PAYLOADLENGTH_64) {
            if (this.#byteOffset < 8) {
              return callback();
            }
            const buffer = this.consume(8);
            const upper = buffer.readUInt32BE(0);
            if (upper > 2 ** 31 - 1) {
              failWebsocketConnection(this.#handler, 1009, "Received payload length > 2^31 bytes.");
              return;
            }
            const lower = buffer.readUInt32BE(4);
            this.#info.payloadLength = (upper << 8) + lower;
            this.#state = parserStates.READ_DATA;
          } else if (this.#state === parserStates.READ_DATA) {
            if (this.#byteOffset < this.#info.payloadLength) {
              return callback();
            }
            const body = this.consume(this.#info.payloadLength);
            if (isControlFrame(this.#info.opcode)) {
              this.#loop = this.parseControlFrame(body);
              this.#state = parserStates.INFO;
            } else {
              if (!this.#info.compressed) {
                this.writeFragments(body);
                if (!this.#info.fragmented && this.#info.fin) {
                  websocketMessageReceived(this.#handler, this.#info.binaryType, this.consumeFragments());
                }
                this.#state = parserStates.INFO;
              } else {
                this.#extensions.get("permessage-deflate").decompress(body, this.#info.fin, (error, data2) => {
                  if (error) {
                    failWebsocketConnection(this.#handler, 1007, error.message);
                    return;
                  }
                  this.writeFragments(data2);
                  if (!this.#info.fin) {
                    this.#state = parserStates.INFO;
                    this.#loop = true;
                    this.run(callback);
                    return;
                  }
                  websocketMessageReceived(this.#handler, this.#info.binaryType, this.consumeFragments());
                  this.#loop = true;
                  this.#state = parserStates.INFO;
                  this.run(callback);
                });
                this.#loop = false;
                break;
              }
            }
          }
        }
      }
      /**
       * Take n bytes from the buffered Buffers
       * @param {number} n
       * @returns {Buffer}
       */
      consume(n6) {
        if (n6 > this.#byteOffset) {
          throw new Error("Called consume() before buffers satiated.");
        } else if (n6 === 0) {
          return emptyBuffer;
        }
        this.#byteOffset -= n6;
        const first = this.#buffers[0];
        if (first.length > n6) {
          this.#buffers[0] = first.subarray(n6, first.length);
          return first.subarray(0, n6);
        } else if (first.length === n6) {
          return this.#buffers.shift();
        } else {
          let offset2 = 0;
          const buffer = Buffer.allocUnsafeSlow(n6);
          while (offset2 !== n6) {
            const next = this.#buffers[0];
            const length2 = next.length;
            if (length2 + offset2 === n6) {
              buffer.set(this.#buffers.shift(), offset2);
              break;
            } else if (length2 + offset2 > n6) {
              buffer.set(next.subarray(0, n6 - offset2), offset2);
              this.#buffers[0] = next.subarray(n6 - offset2);
              break;
            } else {
              buffer.set(this.#buffers.shift(), offset2);
              offset2 += length2;
            }
          }
          return buffer;
        }
      }
      writeFragments(fragment) {
        this.#fragmentsBytes += fragment.length;
        this.#fragments.push(fragment);
      }
      consumeFragments() {
        const fragments = this.#fragments;
        if (fragments.length === 1) {
          this.#fragmentsBytes = 0;
          return fragments.shift();
        }
        let offset2 = 0;
        const output = Buffer.allocUnsafeSlow(this.#fragmentsBytes);
        for (let i5 = 0; i5 < fragments.length; ++i5) {
          const buffer = fragments[i5];
          output.set(buffer, offset2);
          offset2 += buffer.length;
        }
        this.#fragments = [];
        this.#fragmentsBytes = 0;
        return output;
      }
      parseCloseBody(data2) {
        assert3(data2.length !== 1);
        let code;
        if (data2.length >= 2) {
          code = data2.readUInt16BE(0);
        }
        if (code !== void 0 && !isValidStatusCode(code)) {
          return { code: 1002, reason: "Invalid status code", error: true };
        }
        let reason = data2.subarray(2);
        if (reason[0] === 239 && reason[1] === 187 && reason[2] === 191) {
          reason = reason.subarray(3);
        }
        try {
          reason = utf8Decode(reason);
        } catch {
          return { code: 1007, reason: "Invalid UTF-8", error: true };
        }
        return { code, reason, error: false };
      }
      /**
       * Parses control frames.
       * @param {Buffer} body
       */
      parseControlFrame(body) {
        const { opcode, payloadLength } = this.#info;
        if (opcode === opcodes.CLOSE) {
          if (payloadLength === 1) {
            failWebsocketConnection(this.#handler, 1002, "Received close frame with a 1-byte body.");
            return false;
          }
          this.#info.closeInfo = this.parseCloseBody(body);
          if (this.#info.closeInfo.error) {
            const { code, reason } = this.#info.closeInfo;
            failWebsocketConnection(this.#handler, code, reason);
            return false;
          }
          if (!this.#handler.closeState.has(sentCloseFrameState.SENT) && !this.#handler.closeState.has(sentCloseFrameState.RECEIVED)) {
            let body2 = emptyBuffer;
            if (this.#info.closeInfo.code) {
              body2 = Buffer.allocUnsafe(2);
              body2.writeUInt16BE(this.#info.closeInfo.code, 0);
            }
            const closeFrame = new WebsocketFrameSend(body2);
            this.#handler.socket.write(closeFrame.createFrame(opcodes.CLOSE));
            this.#handler.closeState.add(sentCloseFrameState.SENT);
          }
          this.#handler.readyState = states.CLOSING;
          this.#handler.closeState.add(sentCloseFrameState.RECEIVED);
          return false;
        } else if (opcode === opcodes.PING) {
          if (!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)) {
            const frame = new WebsocketFrameSend(body);
            this.#handler.socket.write(frame.createFrame(opcodes.PONG));
            this.#handler.onPing(body);
          }
        } else if (opcode === opcodes.PONG) {
          this.#handler.onPong(body);
        }
        return true;
      }
      get closingInfo() {
        return this.#info.closeInfo;
      }
    };
    module.exports = {
      ByteParser
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/sender.js
var require_sender2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/sender.js"(exports, module) {
    "use strict";
    var { WebsocketFrameSend } = require_frame();
    var { opcodes, sendHints } = require_constants15();
    var FixedQueue = require_fixed_queue();
    var SendQueue = class {
      /**
       * @type {FixedQueue}
       */
      #queue = new FixedQueue();
      /**
       * @type {boolean}
       */
      #running = false;
      /** @type {import('node:net').Socket} */
      #socket;
      constructor(socket) {
        this.#socket = socket;
      }
      add(item, cb, hint) {
        if (hint !== sendHints.blob) {
          if (!this.#running) {
            if (hint === sendHints.text) {
              const { 0: head, 1: body } = WebsocketFrameSend.createFastTextFrame(item);
              this.#socket.cork();
              this.#socket.write(head);
              this.#socket.write(body, cb);
              this.#socket.uncork();
            } else {
              this.#socket.write(createFrame(item, hint), cb);
            }
          } else {
            const node2 = {
              promise: null,
              callback: cb,
              frame: createFrame(item, hint)
            };
            this.#queue.push(node2);
          }
          return;
        }
        const node = {
          promise: item.arrayBuffer().then((ab) => {
            node.promise = null;
            node.frame = createFrame(ab, hint);
          }),
          callback: cb,
          frame: null
        };
        this.#queue.push(node);
        if (!this.#running) {
          this.#run();
        }
      }
      async #run() {
        this.#running = true;
        const queue = this.#queue;
        while (!queue.isEmpty()) {
          const node = queue.shift();
          if (node.promise !== null) {
            await node.promise;
          }
          this.#socket.write(node.frame, node.callback);
          node.callback = node.frame = null;
        }
        this.#running = false;
      }
    };
    function createFrame(data2, hint) {
      return new WebsocketFrameSend(toBuffer(data2, hint)).createFrame(hint === sendHints.text ? opcodes.TEXT : opcodes.BINARY);
    }
    function toBuffer(data2, hint) {
      switch (hint) {
        case sendHints.text:
        case sendHints.typedArray:
          return new Uint8Array(data2.buffer, data2.byteOffset, data2.byteLength);
        case sendHints.arrayBuffer:
        case sendHints.blob:
          return new Uint8Array(data2);
      }
    }
    module.exports = { SendQueue };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/websocket.js
var require_websocket2 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/websocket.js"(exports, module) {
    "use strict";
    var { isArrayBuffer: isArrayBuffer3 } = __require("node:util/types");
    var { webidl } = require_webidl();
    var { URLSerializer } = require_data_url();
    var { environmentSettingsObject } = require_util5();
    var { staticPropertyDescriptors, states, sentCloseFrameState, sendHints, opcodes } = require_constants15();
    var {
      isConnecting,
      isEstablished,
      isClosing,
      isClosed,
      isValidSubprotocol,
      fireEvent,
      utf8Decode,
      toArrayBuffer,
      getURLRecord
    } = require_util8();
    var { establishWebSocketConnection, closeWebSocketConnection, failWebsocketConnection } = require_connection();
    var { ByteParser } = require_receiver2();
    var { kEnumerableProperty } = require_util4();
    var { getGlobalDispatcher } = require_global2();
    var { ErrorEvent, CloseEvent, createFastMessageEvent } = require_events5();
    var { SendQueue } = require_sender2();
    var { WebsocketFrameSend } = require_frame();
    var { channels: channels2 } = require_diagnostics();
    var WebSocket = class _WebSocket extends EventTarget {
      #events = {
        open: null,
        error: null,
        close: null,
        message: null
      };
      #bufferedAmount = 0;
      #protocol = "";
      #extensions = "";
      /** @type {SendQueue} */
      #sendQueue;
      /** @type {Handler} */
      #handler = {
        onConnectionEstablished: (response, extensions2) => this.#onConnectionEstablished(response, extensions2),
        onMessage: (opcode, data2) => this.#onMessage(opcode, data2),
        onParserError: (err2) => failWebsocketConnection(this.#handler, null, err2.message),
        onParserDrain: () => this.#onParserDrain(),
        onSocketData: (chunk3) => {
          if (!this.#parser.write(chunk3)) {
            this.#handler.socket.pause();
          }
        },
        onSocketError: (err2) => {
          this.#handler.readyState = states.CLOSING;
          if (channels2.socketError.hasSubscribers) {
            channels2.socketError.publish(err2);
          }
          this.#handler.socket.destroy();
        },
        onSocketClose: () => this.#onSocketClose(),
        onPing: (body) => {
          if (channels2.ping.hasSubscribers) {
            channels2.ping.publish({
              payload: body,
              websocket: this
            });
          }
        },
        onPong: (body) => {
          if (channels2.pong.hasSubscribers) {
            channels2.pong.publish({
              payload: body,
              websocket: this
            });
          }
        },
        readyState: states.CONNECTING,
        socket: null,
        closeState: /* @__PURE__ */ new Set(),
        controller: null,
        wasEverConnected: false
      };
      #url;
      #binaryType;
      /** @type {import('./receiver').ByteParser} */
      #parser;
      /**
       * @param {string} url
       * @param {string|string[]} protocols
       */
      constructor(url3, protocols = []) {
        super();
        webidl.util.markAsUncloneable(this);
        const prefix = "WebSocket constructor";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        const options = webidl.converters["DOMString or sequence<DOMString> or WebSocketInit"](protocols, prefix, "options");
        url3 = webidl.converters.USVString(url3);
        protocols = options.protocols;
        const baseURL = environmentSettingsObject.settingsObject.baseUrl;
        const urlRecord = getURLRecord(url3, baseURL);
        if (typeof protocols === "string") {
          protocols = [protocols];
        }
        if (protocols.length !== new Set(protocols.map((p3) => p3.toLowerCase())).size) {
          throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError");
        }
        if (protocols.length > 0 && !protocols.every((p3) => isValidSubprotocol(p3))) {
          throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError");
        }
        this.#url = new URL(urlRecord.href);
        const client = environmentSettingsObject.settingsObject;
        this.#handler.controller = establishWebSocketConnection(
          urlRecord,
          protocols,
          client,
          this.#handler,
          options
        );
        this.#handler.readyState = _WebSocket.CONNECTING;
        this.#binaryType = "blob";
      }
      /**
       * @see https://websockets.spec.whatwg.org/#dom-websocket-close
       * @param {number|undefined} code
       * @param {string|undefined} reason
       */
      close(code = void 0, reason = void 0) {
        webidl.brandCheck(this, _WebSocket);
        const prefix = "WebSocket.close";
        if (code !== void 0) {
          code = webidl.converters["unsigned short"](code, prefix, "code", webidl.attributes.Clamp);
        }
        if (reason !== void 0) {
          reason = webidl.converters.USVString(reason);
        }
        code ??= null;
        reason ??= "";
        closeWebSocketConnection(this.#handler, code, reason, true);
      }
      /**
       * @see https://websockets.spec.whatwg.org/#dom-websocket-send
       * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data
       */
      send(data2) {
        webidl.brandCheck(this, _WebSocket);
        const prefix = "WebSocket.send";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        data2 = webidl.converters.WebSocketSendData(data2, prefix, "data");
        if (isConnecting(this.#handler.readyState)) {
          throw new DOMException("Sent before connected.", "InvalidStateError");
        }
        if (!isEstablished(this.#handler.readyState) || isClosing(this.#handler.readyState)) {
          return;
        }
        if (typeof data2 === "string") {
          const buffer = Buffer.from(data2);
          this.#bufferedAmount += buffer.byteLength;
          this.#sendQueue.add(buffer, () => {
            this.#bufferedAmount -= buffer.byteLength;
          }, sendHints.text);
        } else if (isArrayBuffer3(data2)) {
          this.#bufferedAmount += data2.byteLength;
          this.#sendQueue.add(data2, () => {
            this.#bufferedAmount -= data2.byteLength;
          }, sendHints.arrayBuffer);
        } else if (ArrayBuffer.isView(data2)) {
          this.#bufferedAmount += data2.byteLength;
          this.#sendQueue.add(data2, () => {
            this.#bufferedAmount -= data2.byteLength;
          }, sendHints.typedArray);
        } else if (webidl.is.Blob(data2)) {
          this.#bufferedAmount += data2.size;
          this.#sendQueue.add(data2, () => {
            this.#bufferedAmount -= data2.size;
          }, sendHints.blob);
        }
      }
      get readyState() {
        webidl.brandCheck(this, _WebSocket);
        return this.#handler.readyState;
      }
      get bufferedAmount() {
        webidl.brandCheck(this, _WebSocket);
        return this.#bufferedAmount;
      }
      get url() {
        webidl.brandCheck(this, _WebSocket);
        return URLSerializer(this.#url);
      }
      get extensions() {
        webidl.brandCheck(this, _WebSocket);
        return this.#extensions;
      }
      get protocol() {
        webidl.brandCheck(this, _WebSocket);
        return this.#protocol;
      }
      get onopen() {
        webidl.brandCheck(this, _WebSocket);
        return this.#events.open;
      }
      set onopen(fn) {
        webidl.brandCheck(this, _WebSocket);
        if (this.#events.open) {
          this.removeEventListener("open", this.#events.open);
        }
        const listener = webidl.converters.EventHandlerNonNull(fn);
        if (listener !== null) {
          this.addEventListener("open", listener);
          this.#events.open = fn;
        } else {
          this.#events.open = null;
        }
      }
      get onerror() {
        webidl.brandCheck(this, _WebSocket);
        return this.#events.error;
      }
      set onerror(fn) {
        webidl.brandCheck(this, _WebSocket);
        if (this.#events.error) {
          this.removeEventListener("error", this.#events.error);
        }
        const listener = webidl.converters.EventHandlerNonNull(fn);
        if (listener !== null) {
          this.addEventListener("error", listener);
          this.#events.error = fn;
        } else {
          this.#events.error = null;
        }
      }
      get onclose() {
        webidl.brandCheck(this, _WebSocket);
        return this.#events.close;
      }
      set onclose(fn) {
        webidl.brandCheck(this, _WebSocket);
        if (this.#events.close) {
          this.removeEventListener("close", this.#events.close);
        }
        const listener = webidl.converters.EventHandlerNonNull(fn);
        if (listener !== null) {
          this.addEventListener("close", listener);
          this.#events.close = fn;
        } else {
          this.#events.close = null;
        }
      }
      get onmessage() {
        webidl.brandCheck(this, _WebSocket);
        return this.#events.message;
      }
      set onmessage(fn) {
        webidl.brandCheck(this, _WebSocket);
        if (this.#events.message) {
          this.removeEventListener("message", this.#events.message);
        }
        const listener = webidl.converters.EventHandlerNonNull(fn);
        if (listener !== null) {
          this.addEventListener("message", listener);
          this.#events.message = fn;
        } else {
          this.#events.message = null;
        }
      }
      get binaryType() {
        webidl.brandCheck(this, _WebSocket);
        return this.#binaryType;
      }
      set binaryType(type) {
        webidl.brandCheck(this, _WebSocket);
        if (type !== "blob" && type !== "arraybuffer") {
          this.#binaryType = "blob";
        } else {
          this.#binaryType = type;
        }
      }
      /**
       * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol
       */
      #onConnectionEstablished(response, parsedExtensions) {
        this.#handler.socket = response.socket;
        const parser = new ByteParser(this.#handler, parsedExtensions);
        parser.on("drain", () => this.#handler.onParserDrain());
        parser.on("error", (err2) => this.#handler.onParserError(err2));
        this.#parser = parser;
        this.#sendQueue = new SendQueue(response.socket);
        this.#handler.readyState = states.OPEN;
        const extensions2 = response.headersList.get("sec-websocket-extensions");
        if (extensions2 !== null) {
          this.#extensions = extensions2;
        }
        const protocol = response.headersList.get("sec-websocket-protocol");
        if (protocol !== null) {
          this.#protocol = protocol;
        }
        fireEvent("open", this);
        if (channels2.open.hasSubscribers) {
          const headers = response.headersList.entries;
          channels2.open.publish({
            address: response.socket.address(),
            protocol: this.#protocol,
            extensions: this.#extensions,
            websocket: this,
            handshakeResponse: {
              status: response.status,
              statusText: response.statusText,
              headers
            }
          });
        }
      }
      #onMessage(type, data2) {
        if (this.#handler.readyState !== states.OPEN) {
          return;
        }
        let dataForEvent;
        if (type === opcodes.TEXT) {
          try {
            dataForEvent = utf8Decode(data2);
          } catch {
            failWebsocketConnection(this.#handler, 1007, "Received invalid UTF-8 in text frame.");
            return;
          }
        } else if (type === opcodes.BINARY) {
          if (this.#binaryType === "blob") {
            dataForEvent = new Blob([data2]);
          } else {
            dataForEvent = toArrayBuffer(data2);
          }
        }
        fireEvent("message", this, createFastMessageEvent, {
          origin: this.#url.origin,
          data: dataForEvent
        });
      }
      #onParserDrain() {
        this.#handler.socket.resume();
      }
      /**
       * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol
       * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4
       */
      #onSocketClose() {
        const wasClean = this.#handler.closeState.has(sentCloseFrameState.SENT) && this.#handler.closeState.has(sentCloseFrameState.RECEIVED);
        let code = 1005;
        let reason = "";
        const result = this.#parser?.closingInfo;
        if (result && !result.error) {
          code = result.code ?? 1005;
          reason = result.reason;
        }
        this.#handler.readyState = states.CLOSED;
        if (!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)) {
          code = 1006;
          fireEvent("error", this, (type, init3) => new ErrorEvent(type, init3), {
            error: new TypeError(reason)
          });
        }
        fireEvent("close", this, (type, init3) => new CloseEvent(type, init3), {
          wasClean,
          code,
          reason
        });
        if (channels2.close.hasSubscribers) {
          channels2.close.publish({
            websocket: this,
            code,
            reason
          });
        }
      }
      /**
       * @param {WebSocket} ws
       * @param {Buffer|undefined} buffer
       */
      static ping(ws, buffer) {
        if (Buffer.isBuffer(buffer)) {
          if (buffer.length > 125) {
            throw new TypeError("A PING frame cannot have a body larger than 125 bytes.");
          }
        } else if (buffer !== void 0) {
          throw new TypeError("Expected buffer payload");
        }
        const readyState = ws.#handler.readyState;
        if (isEstablished(readyState) && !isClosing(readyState) && !isClosed(readyState)) {
          const frame = new WebsocketFrameSend(buffer);
          ws.#handler.socket.write(frame.createFrame(opcodes.PING));
        }
      }
    };
    var { ping } = WebSocket;
    Reflect.deleteProperty(WebSocket, "ping");
    WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING;
    WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN;
    WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING;
    WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED;
    Object.defineProperties(WebSocket.prototype, {
      CONNECTING: staticPropertyDescriptors,
      OPEN: staticPropertyDescriptors,
      CLOSING: staticPropertyDescriptors,
      CLOSED: staticPropertyDescriptors,
      url: kEnumerableProperty,
      readyState: kEnumerableProperty,
      bufferedAmount: kEnumerableProperty,
      onopen: kEnumerableProperty,
      onerror: kEnumerableProperty,
      onclose: kEnumerableProperty,
      close: kEnumerableProperty,
      onmessage: kEnumerableProperty,
      binaryType: kEnumerableProperty,
      send: kEnumerableProperty,
      extensions: kEnumerableProperty,
      protocol: kEnumerableProperty,
      [Symbol.toStringTag]: {
        value: "WebSocket",
        writable: false,
        enumerable: false,
        configurable: true
      }
    });
    Object.defineProperties(WebSocket, {
      CONNECTING: staticPropertyDescriptors,
      OPEN: staticPropertyDescriptors,
      CLOSING: staticPropertyDescriptors,
      CLOSED: staticPropertyDescriptors
    });
    webidl.converters["sequence<DOMString>"] = webidl.sequenceConverter(
      webidl.converters.DOMString
    );
    webidl.converters["DOMString or sequence<DOMString>"] = function(V, prefix, argument) {
      if (webidl.util.Type(V) === webidl.util.Types.OBJECT && Symbol.iterator in V) {
        return webidl.converters["sequence<DOMString>"](V);
      }
      return webidl.converters.DOMString(V, prefix, argument);
    };
    webidl.converters.WebSocketInit = webidl.dictionaryConverter([
      {
        key: "protocols",
        converter: webidl.converters["DOMString or sequence<DOMString>"],
        defaultValue: () => []
      },
      {
        key: "dispatcher",
        converter: webidl.converters.any,
        defaultValue: () => getGlobalDispatcher()
      },
      {
        key: "headers",
        converter: webidl.nullableConverter(webidl.converters.HeadersInit)
      }
    ]);
    webidl.converters["DOMString or sequence<DOMString> or WebSocketInit"] = function(V) {
      if (webidl.util.Type(V) === webidl.util.Types.OBJECT && !(Symbol.iterator in V)) {
        return webidl.converters.WebSocketInit(V);
      }
      return { protocols: webidl.converters["DOMString or sequence<DOMString>"](V) };
    };
    webidl.converters.WebSocketSendData = function(V) {
      if (webidl.util.Type(V) === webidl.util.Types.OBJECT) {
        if (webidl.is.Blob(V)) {
          return V;
        }
        if (webidl.is.BufferSource(V)) {
          return V;
        }
      }
      return webidl.converters.USVString(V);
    };
    module.exports = {
      WebSocket,
      ping
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/stream/websocketerror.js
var require_websocketerror = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/stream/websocketerror.js"(exports, module) {
    "use strict";
    var { webidl } = require_webidl();
    var { validateCloseCodeAndReason } = require_util8();
    var { kConstruct } = require_symbols2();
    var { kEnumerableProperty } = require_util4();
    function createInheritableDOMException() {
      class Test extends DOMException {
        get reason() {
          return "";
        }
      }
      if (new Test().reason !== void 0) {
        return DOMException;
      }
      return new Proxy(DOMException, {
        construct(target, args, newTarget) {
          const instance = Reflect.construct(target, args, target);
          Object.setPrototypeOf(instance, newTarget.prototype);
          return instance;
        }
      });
    }
    var WebSocketError = class _WebSocketError extends createInheritableDOMException() {
      #closeCode;
      #reason;
      constructor(message = "", init3 = void 0) {
        message = webidl.converters.DOMString(message, "WebSocketError", "message");
        super(message, "WebSocketError");
        if (init3 === kConstruct) {
          return;
        } else if (init3 !== null) {
          init3 = webidl.converters.WebSocketCloseInfo(init3);
        }
        let code = init3.closeCode ?? null;
        const reason = init3.reason ?? "";
        validateCloseCodeAndReason(code, reason);
        if (reason.length !== 0 && code === null) {
          code = 1e3;
        }
        this.#closeCode = code;
        this.#reason = reason;
      }
      get closeCode() {
        return this.#closeCode;
      }
      get reason() {
        return this.#reason;
      }
      /**
       * @param {string} message
       * @param {number|null} code
       * @param {string} reason
       */
      static createUnvalidatedWebSocketError(message, code, reason) {
        const error = new _WebSocketError(message, kConstruct);
        error.#closeCode = code;
        error.#reason = reason;
        return error;
      }
    };
    var { createUnvalidatedWebSocketError } = WebSocketError;
    delete WebSocketError.createUnvalidatedWebSocketError;
    Object.defineProperties(WebSocketError.prototype, {
      closeCode: kEnumerableProperty,
      reason: kEnumerableProperty,
      [Symbol.toStringTag]: {
        value: "WebSocketError",
        writable: false,
        enumerable: false,
        configurable: true
      }
    });
    webidl.is.WebSocketError = webidl.util.MakeTypeAssertion(WebSocketError);
    module.exports = { WebSocketError, createUnvalidatedWebSocketError };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/stream/websocketstream.js
var require_websocketstream = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/websocket/stream/websocketstream.js"(exports, module) {
    "use strict";
    var { createDeferredPromise } = require_promise();
    var { environmentSettingsObject } = require_util5();
    var { states, opcodes, sentCloseFrameState } = require_constants15();
    var { webidl } = require_webidl();
    var { getURLRecord, isValidSubprotocol, isEstablished, utf8Decode } = require_util8();
    var { establishWebSocketConnection, failWebsocketConnection, closeWebSocketConnection } = require_connection();
    var { channels: channels2 } = require_diagnostics();
    var { WebsocketFrameSend } = require_frame();
    var { ByteParser } = require_receiver2();
    var { WebSocketError, createUnvalidatedWebSocketError } = require_websocketerror();
    var { kEnumerableProperty } = require_util4();
    var { utf8DecodeBytes } = require_encoding2();
    var emittedExperimentalWarning = false;
    var WebSocketStream = class {
      // Each WebSocketStream object has an associated url , which is a URL record .
      /** @type {URL} */
      #url;
      // Each WebSocketStream object has an associated opened promise , which is a promise.
      /** @type {import('../../../util/promise').DeferredPromise} */
      #openedPromise;
      // Each WebSocketStream object has an associated closed promise , which is a promise.
      /** @type {import('../../../util/promise').DeferredPromise} */
      #closedPromise;
      // Each WebSocketStream object has an associated readable stream , which is a ReadableStream .
      /** @type {ReadableStream} */
      #readableStream;
      /** @type {ReadableStreamDefaultController} */
      #readableStreamController;
      // Each WebSocketStream object has an associated writable stream , which is a WritableStream .
      /** @type {WritableStream} */
      #writableStream;
      // Each WebSocketStream object has an associated boolean handshake aborted , which is initially false.
      #handshakeAborted = false;
      /** @type {import('../websocket').Handler} */
      #handler = {
        // https://whatpr.org/websockets/48/7b748d3...d5570f3.html#feedback-to-websocket-stream-from-the-protocol
        onConnectionEstablished: (response, extensions2) => this.#onConnectionEstablished(response, extensions2),
        onMessage: (opcode, data2) => this.#onMessage(opcode, data2),
        onParserError: (err2) => failWebsocketConnection(this.#handler, null, err2.message),
        onParserDrain: () => this.#handler.socket.resume(),
        onSocketData: (chunk3) => {
          if (!this.#parser.write(chunk3)) {
            this.#handler.socket.pause();
          }
        },
        onSocketError: (err2) => {
          this.#handler.readyState = states.CLOSING;
          if (channels2.socketError.hasSubscribers) {
            channels2.socketError.publish(err2);
          }
          this.#handler.socket.destroy();
        },
        onSocketClose: () => this.#onSocketClose(),
        onPing: () => {
        },
        onPong: () => {
        },
        readyState: states.CONNECTING,
        socket: null,
        closeState: /* @__PURE__ */ new Set(),
        controller: null,
        wasEverConnected: false
      };
      /** @type {import('../receiver').ByteParser} */
      #parser;
      constructor(url3, options = void 0) {
        if (!emittedExperimentalWarning) {
          process.emitWarning("WebSocketStream is experimental! Expect it to change at any time.", {
            code: "UNDICI-WSS"
          });
          emittedExperimentalWarning = true;
        }
        webidl.argumentLengthCheck(arguments, 1, "WebSocket");
        url3 = webidl.converters.USVString(url3);
        if (options !== null) {
          options = webidl.converters.WebSocketStreamOptions(options);
        }
        const baseURL = environmentSettingsObject.settingsObject.baseUrl;
        const urlRecord = getURLRecord(url3, baseURL);
        const protocols = options.protocols;
        if (protocols.length !== new Set(protocols.map((p3) => p3.toLowerCase())).size) {
          throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError");
        }
        if (protocols.length > 0 && !protocols.every((p3) => isValidSubprotocol(p3))) {
          throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError");
        }
        this.#url = urlRecord.toString();
        this.#openedPromise = createDeferredPromise();
        this.#closedPromise = createDeferredPromise();
        if (options.signal != null) {
          const signal = options.signal;
          if (signal.aborted) {
            this.#openedPromise.reject(signal.reason);
            this.#closedPromise.reject(signal.reason);
            return;
          }
          signal.addEventListener("abort", () => {
            if (!isEstablished(this.#handler.readyState)) {
              failWebsocketConnection(this.#handler);
              this.#handler.readyState = states.CLOSING;
              this.#openedPromise.reject(signal.reason);
              this.#closedPromise.reject(signal.reason);
              this.#handshakeAborted = true;
            }
          }, { once: true });
        }
        const client = environmentSettingsObject.settingsObject;
        this.#handler.controller = establishWebSocketConnection(
          urlRecord,
          protocols,
          client,
          this.#handler,
          options
        );
      }
      // The url getter steps are to return this 's url , serialized .
      get url() {
        return this.#url.toString();
      }
      // The opened getter steps are to return this 's opened promise .
      get opened() {
        return this.#openedPromise.promise;
      }
      // The closed getter steps are to return this 's closed promise .
      get closed() {
        return this.#closedPromise.promise;
      }
      // The close( closeInfo ) method steps are:
      close(closeInfo = void 0) {
        if (closeInfo !== null) {
          closeInfo = webidl.converters.WebSocketCloseInfo(closeInfo);
        }
        const code = closeInfo.closeCode ?? null;
        const reason = closeInfo.reason;
        closeWebSocketConnection(this.#handler, code, reason, true);
      }
      #write(chunk3) {
        chunk3 = webidl.converters.WebSocketStreamWrite(chunk3);
        const promise = createDeferredPromise();
        let data2 = null;
        let opcode = null;
        if (webidl.is.BufferSource(chunk3)) {
          data2 = new Uint8Array(ArrayBuffer.isView(chunk3) ? new Uint8Array(chunk3.buffer, chunk3.byteOffset, chunk3.byteLength) : chunk3.slice());
          opcode = opcodes.BINARY;
        } else {
          let string;
          try {
            string = webidl.converters.DOMString(chunk3);
          } catch (e4) {
            promise.reject(e4);
            return promise.promise;
          }
          data2 = new TextEncoder().encode(string);
          opcode = opcodes.TEXT;
        }
        if (!this.#handler.closeState.has(sentCloseFrameState.SENT) && !this.#handler.closeState.has(sentCloseFrameState.RECEIVED)) {
          const frame = new WebsocketFrameSend(data2);
          this.#handler.socket.write(frame.createFrame(opcode), () => {
            promise.resolve(void 0);
          });
        }
        return promise.promise;
      }
      /** @type {import('../websocket').Handler['onConnectionEstablished']} */
      #onConnectionEstablished(response, parsedExtensions) {
        this.#handler.socket = response.socket;
        const parser = new ByteParser(this.#handler, parsedExtensions);
        parser.on("drain", () => this.#handler.onParserDrain());
        parser.on("error", (err2) => this.#handler.onParserError(err2));
        this.#parser = parser;
        this.#handler.readyState = states.OPEN;
        const extensions2 = parsedExtensions ?? "";
        const protocol = response.headersList.get("sec-websocket-protocol") ?? "";
        const readable = new ReadableStream({
          start: (controller) => {
            this.#readableStreamController = controller;
          },
          pull(controller) {
            let chunk3;
            while (controller.desiredSize > 0 && (chunk3 = response.socket.read()) !== null) {
              controller.enqueue(chunk3);
            }
          },
          cancel: (reason) => this.#cancel(reason)
        });
        const writable = new WritableStream({
          write: (chunk3) => this.#write(chunk3),
          close: () => closeWebSocketConnection(this.#handler, null, null),
          abort: (reason) => this.#closeUsingReason(reason)
        });
        this.#readableStream = readable;
        this.#writableStream = writable;
        this.#openedPromise.resolve({
          extensions: extensions2,
          protocol,
          readable,
          writable
        });
      }
      /** @type {import('../websocket').Handler['onMessage']} */
      #onMessage(type, data2) {
        if (this.#handler.readyState !== states.OPEN) {
          return;
        }
        let chunk3;
        if (type === opcodes.TEXT) {
          try {
            chunk3 = utf8Decode(data2);
          } catch {
            failWebsocketConnection(this.#handler, "Received invalid UTF-8 in text frame.");
            return;
          }
        } else if (type === opcodes.BINARY) {
          chunk3 = new Uint8Array(data2.buffer, data2.byteOffset, data2.byteLength);
        }
        this.#readableStreamController.enqueue(chunk3);
      }
      /** @type {import('../websocket').Handler['onSocketClose']} */
      #onSocketClose() {
        const wasClean = this.#handler.closeState.has(sentCloseFrameState.SENT) && this.#handler.closeState.has(sentCloseFrameState.RECEIVED);
        this.#handler.readyState = states.CLOSED;
        if (this.#handshakeAborted) {
          return;
        }
        if (!this.#handler.wasEverConnected) {
          this.#openedPromise.reject(new WebSocketError("Socket never opened"));
        }
        const result = this.#parser?.closingInfo;
        let code = result?.code ?? 1005;
        if (!this.#handler.closeState.has(sentCloseFrameState.SENT) && !this.#handler.closeState.has(sentCloseFrameState.RECEIVED)) {
          code = 1006;
        }
        const reason = result?.reason == null ? "" : utf8DecodeBytes(Buffer.from(result.reason));
        if (wasClean) {
          this.#readableStreamController.close();
          if (!this.#writableStream.locked) {
            this.#writableStream.abort(new DOMException("A closed WebSocketStream cannot be written to", "InvalidStateError"));
          }
          this.#closedPromise.resolve({
            closeCode: code,
            reason
          });
        } else {
          const error = createUnvalidatedWebSocketError("unclean close", code, reason);
          this.#readableStreamController?.error(error);
          this.#writableStream?.abort(error);
          this.#closedPromise.reject(error);
        }
      }
      #closeUsingReason(reason) {
        let code = null;
        let reasonString = "";
        if (webidl.is.WebSocketError(reason)) {
          code = reason.closeCode;
          reasonString = reason.reason;
        }
        closeWebSocketConnection(this.#handler, code, reasonString);
      }
      //  To cancel a WebSocketStream stream given reason , close using reason giving stream and reason .
      #cancel(reason) {
        this.#closeUsingReason(reason);
      }
    };
    Object.defineProperties(WebSocketStream.prototype, {
      url: kEnumerableProperty,
      opened: kEnumerableProperty,
      closed: kEnumerableProperty,
      close: kEnumerableProperty,
      [Symbol.toStringTag]: {
        value: "WebSocketStream",
        writable: false,
        enumerable: false,
        configurable: true
      }
    });
    webidl.converters.WebSocketStreamOptions = webidl.dictionaryConverter([
      {
        key: "protocols",
        converter: webidl.sequenceConverter(webidl.converters.USVString),
        defaultValue: () => []
      },
      {
        key: "signal",
        converter: webidl.nullableConverter(webidl.converters.AbortSignal),
        defaultValue: () => null
      }
    ]);
    webidl.converters.WebSocketCloseInfo = webidl.dictionaryConverter([
      {
        key: "closeCode",
        converter: (V) => webidl.converters["unsigned short"](V, webidl.attributes.EnforceRange)
      },
      {
        key: "reason",
        converter: webidl.converters.USVString,
        defaultValue: () => ""
      }
    ]);
    webidl.converters.WebSocketStreamWrite = function(V) {
      if (typeof V === "string") {
        return webidl.converters.USVString(V);
      }
      return webidl.converters.BufferSource(V);
    };
    module.exports = { WebSocketStream };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/eventsource/util.js
var require_util9 = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/eventsource/util.js"(exports, module) {
    "use strict";
    function isValidLastEventId(value2) {
      return value2.indexOf("\0") === -1;
    }
    function isASCIINumber(value2) {
      if (value2.length === 0) return false;
      for (let i5 = 0; i5 < value2.length; i5++) {
        if (value2.charCodeAt(i5) < 48 || value2.charCodeAt(i5) > 57) return false;
      }
      return true;
    }
    module.exports = {
      isValidLastEventId,
      isASCIINumber
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/eventsource/eventsource-stream.js
var require_eventsource_stream = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports, module) {
    "use strict";
    var { Transform } = __require("node:stream");
    var { isASCIINumber, isValidLastEventId } = require_util9();
    var BOM = [239, 187, 191];
    var LF = 10;
    var CR = 13;
    var COLON = 58;
    var SPACE = 32;
    var EventSourceStream = class extends Transform {
      /**
       * @type {eventSourceSettings}
       */
      state;
      /**
       * Leading byte-order-mark check.
       * @type {boolean}
       */
      checkBOM = true;
      /**
       * @type {boolean}
       */
      crlfCheck = false;
      /**
       * @type {boolean}
       */
      eventEndCheck = false;
      /**
       * @type {Buffer|null}
       */
      buffer = null;
      pos = 0;
      event = {
        data: void 0,
        event: void 0,
        id: void 0,
        retry: void 0
      };
      /**
       * @param {object} options
       * @param {boolean} [options.readableObjectMode]
       * @param {eventSourceSettings} [options.eventSourceSettings]
       * @param {(chunk: any, encoding?: BufferEncoding | undefined) => boolean} [options.push]
       */
      constructor(options = {}) {
        options.readableObjectMode = true;
        super(options);
        this.state = options.eventSourceSettings || {};
        if (options.push) {
          this.push = options.push;
        }
      }
      /**
       * @param {Buffer} chunk
       * @param {string} _encoding
       * @param {Function} callback
       * @returns {void}
       */
      _transform(chunk3, _encoding, callback) {
        if (chunk3.length === 0) {
          callback();
          return;
        }
        if (this.buffer) {
          this.buffer = Buffer.concat([this.buffer, chunk3]);
        } else {
          this.buffer = chunk3;
        }
        if (this.checkBOM) {
          switch (this.buffer.length) {
            case 1:
              if (this.buffer[0] === BOM[0]) {
                callback();
                return;
              }
              this.checkBOM = false;
              callback();
              return;
            case 2:
              if (this.buffer[0] === BOM[0] && this.buffer[1] === BOM[1]) {
                callback();
                return;
              }
              this.checkBOM = false;
              break;
            case 3:
              if (this.buffer[0] === BOM[0] && this.buffer[1] === BOM[1] && this.buffer[2] === BOM[2]) {
                this.buffer = Buffer.alloc(0);
                this.checkBOM = false;
                callback();
                return;
              }
              this.checkBOM = false;
              break;
            default:
              if (this.buffer[0] === BOM[0] && this.buffer[1] === BOM[1] && this.buffer[2] === BOM[2]) {
                this.buffer = this.buffer.subarray(3);
              }
              this.checkBOM = false;
              break;
          }
        }
        while (this.pos < this.buffer.length) {
          if (this.eventEndCheck) {
            if (this.crlfCheck) {
              if (this.buffer[this.pos] === LF) {
                this.buffer = this.buffer.subarray(this.pos + 1);
                this.pos = 0;
                this.crlfCheck = false;
                continue;
              }
              this.crlfCheck = false;
            }
            if (this.buffer[this.pos] === LF || this.buffer[this.pos] === CR) {
              if (this.buffer[this.pos] === CR) {
                this.crlfCheck = true;
              }
              this.buffer = this.buffer.subarray(this.pos + 1);
              this.pos = 0;
              if (this.event.data !== void 0 || this.event.event || this.event.id !== void 0 || this.event.retry) {
                this.processEvent(this.event);
              }
              this.clearEvent();
              continue;
            }
            this.eventEndCheck = false;
            continue;
          }
          if (this.buffer[this.pos] === LF || this.buffer[this.pos] === CR) {
            if (this.buffer[this.pos] === CR) {
              this.crlfCheck = true;
            }
            this.parseLine(this.buffer.subarray(0, this.pos), this.event);
            this.buffer = this.buffer.subarray(this.pos + 1);
            this.pos = 0;
            this.eventEndCheck = true;
            continue;
          }
          this.pos++;
        }
        callback();
      }
      /**
       * @param {Buffer} line
       * @param {EventSourceStreamEvent} event
       */
      parseLine(line2, event) {
        if (line2.length === 0) {
          return;
        }
        const colonPosition = line2.indexOf(COLON);
        if (colonPosition === 0) {
          return;
        }
        let field = "";
        let value2 = "";
        if (colonPosition !== -1) {
          field = line2.subarray(0, colonPosition).toString("utf8");
          let valueStart = colonPosition + 1;
          if (line2[valueStart] === SPACE) {
            ++valueStart;
          }
          value2 = line2.subarray(valueStart).toString("utf8");
        } else {
          field = line2.toString("utf8");
          value2 = "";
        }
        switch (field) {
          case "data":
            if (event[field] === void 0) {
              event[field] = value2;
            } else {
              event[field] += `
${value2}`;
            }
            break;
          case "retry":
            if (isASCIINumber(value2)) {
              event[field] = value2;
            }
            break;
          case "id":
            if (isValidLastEventId(value2)) {
              event[field] = value2;
            }
            break;
          case "event":
            if (value2.length > 0) {
              event[field] = value2;
            }
            break;
        }
      }
      /**
       * @param {EventSourceStreamEvent} event
       */
      processEvent(event) {
        if (event.retry && isASCIINumber(event.retry)) {
          this.state.reconnectionTime = parseInt(event.retry, 10);
        }
        if (event.id !== void 0 && isValidLastEventId(event.id)) {
          this.state.lastEventId = event.id;
        }
        if (event.data !== void 0) {
          this.push({
            type: event.event || "message",
            options: {
              data: event.data,
              lastEventId: this.state.lastEventId,
              origin: this.state.origin
            }
          });
        }
      }
      clearEvent() {
        this.event = {
          data: void 0,
          event: void 0,
          id: void 0,
          retry: void 0
        };
      }
    };
    module.exports = {
      EventSourceStream
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/eventsource/eventsource.js
var require_eventsource = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/lib/web/eventsource/eventsource.js"(exports, module) {
    "use strict";
    var { pipeline: pipeline2 } = __require("node:stream");
    var { fetching } = require_fetch();
    var { makeRequest } = require_request3();
    var { webidl } = require_webidl();
    var { EventSourceStream } = require_eventsource_stream();
    var { parseMIMEType } = require_data_url();
    var { createFastMessageEvent } = require_events5();
    var { isNetworkError } = require_response();
    var { kEnumerableProperty } = require_util4();
    var { environmentSettingsObject } = require_util5();
    var experimentalWarned = false;
    var defaultReconnectionTime = 3e3;
    var CONNECTING = 0;
    var OPEN = 1;
    var CLOSED = 2;
    var ANONYMOUS = "anonymous";
    var USE_CREDENTIALS = "use-credentials";
    var EventSource = class _EventSource extends EventTarget {
      #events = {
        open: null,
        error: null,
        message: null
      };
      #url;
      #withCredentials = false;
      /**
       * @type {ReadyState}
       */
      #readyState = CONNECTING;
      #request = null;
      #controller = null;
      #dispatcher;
      /**
       * @type {import('./eventsource-stream').eventSourceSettings}
       */
      #state;
      /**
       * Creates a new EventSource object.
       * @param {string} url
       * @param {EventSourceInit} [eventSourceInitDict={}]
       * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface
       */
      constructor(url3, eventSourceInitDict = {}) {
        super();
        webidl.util.markAsUncloneable(this);
        const prefix = "EventSource constructor";
        webidl.argumentLengthCheck(arguments, 1, prefix);
        if (!experimentalWarned) {
          experimentalWarned = true;
          process.emitWarning("EventSource is experimental, expect them to change at any time.", {
            code: "UNDICI-ES"
          });
        }
        url3 = webidl.converters.USVString(url3);
        eventSourceInitDict = webidl.converters.EventSourceInitDict(eventSourceInitDict, prefix, "eventSourceInitDict");
        this.#dispatcher = eventSourceInitDict.node.dispatcher || eventSourceInitDict.dispatcher;
        this.#state = {
          lastEventId: "",
          reconnectionTime: eventSourceInitDict.node.reconnectionTime
        };
        const settings = environmentSettingsObject;
        let urlRecord;
        try {
          urlRecord = new URL(url3, settings.settingsObject.baseUrl);
          this.#state.origin = urlRecord.origin;
        } catch (e4) {
          throw new DOMException(e4, "SyntaxError");
        }
        this.#url = urlRecord.href;
        let corsAttributeState = ANONYMOUS;
        if (eventSourceInitDict.withCredentials === true) {
          corsAttributeState = USE_CREDENTIALS;
          this.#withCredentials = true;
        }
        const initRequest = {
          redirect: "follow",
          keepalive: true,
          // @see https://html.spec.whatwg.org/multipage/urls-and-fetching.html#cors-settings-attributes
          mode: "cors",
          credentials: corsAttributeState === "anonymous" ? "same-origin" : "omit",
          referrer: "no-referrer"
        };
        initRequest.client = environmentSettingsObject.settingsObject;
        initRequest.headersList = [["accept", { name: "accept", value: "text/event-stream" }]];
        initRequest.cache = "no-store";
        initRequest.initiator = "other";
        initRequest.urlList = [new URL(this.#url)];
        this.#request = makeRequest(initRequest);
        this.#connect();
      }
      /**
       * Returns the state of this EventSource object's connection. It can have the
       * values described below.
       * @returns {ReadyState}
       * @readonly
       */
      get readyState() {
        return this.#readyState;
      }
      /**
       * Returns the URL providing the event stream.
       * @readonly
       * @returns {string}
       */
      get url() {
        return this.#url;
      }
      /**
       * Returns a boolean indicating whether the EventSource object was
       * instantiated with CORS credentials set (true), or not (false, the default).
       */
      get withCredentials() {
        return this.#withCredentials;
      }
      #connect() {
        if (this.#readyState === CLOSED) return;
        this.#readyState = CONNECTING;
        const fetchParams = {
          request: this.#request,
          dispatcher: this.#dispatcher
        };
        const processEventSourceEndOfBody = (response) => {
          if (!isNetworkError(response)) {
            return this.#reconnect();
          }
        };
        fetchParams.processResponseEndOfBody = processEventSourceEndOfBody;
        fetchParams.processResponse = (response) => {
          if (isNetworkError(response)) {
            if (response.aborted) {
              this.close();
              this.dispatchEvent(new Event("error"));
              return;
            } else {
              this.#reconnect();
              return;
            }
          }
          const contentType = response.headersList.get("content-type", true);
          const mimeType = contentType !== null ? parseMIMEType(contentType) : "failure";
          const contentTypeValid = mimeType !== "failure" && mimeType.essence === "text/event-stream";
          if (response.status !== 200 || contentTypeValid === false) {
            this.close();
            this.dispatchEvent(new Event("error"));
            return;
          }
          this.#readyState = OPEN;
          this.dispatchEvent(new Event("open"));
          this.#state.origin = response.urlList[response.urlList.length - 1].origin;
          const eventSourceStream = new EventSourceStream({
            eventSourceSettings: this.#state,
            push: (event) => {
              this.dispatchEvent(createFastMessageEvent(
                event.type,
                event.options
              ));
            }
          });
          pipeline2(
            response.body.stream,
            eventSourceStream,
            (error) => {
              if (error?.aborted === false) {
                this.close();
                this.dispatchEvent(new Event("error"));
              }
            }
          );
        };
        this.#controller = fetching(fetchParams);
      }
      /**
       * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#sse-processing-model
       * @returns {void}
       */
      #reconnect() {
        if (this.#readyState === CLOSED) return;
        this.#readyState = CONNECTING;
        this.dispatchEvent(new Event("error"));
        setTimeout(() => {
          if (this.#readyState !== CONNECTING) return;
          if (this.#state.lastEventId.length) {
            this.#request.headersList.set("last-event-id", this.#state.lastEventId, true);
          }
          this.#connect();
        }, this.#state.reconnectionTime)?.unref();
      }
      /**
       * Closes the connection, if any, and sets the readyState attribute to
       * CLOSED.
       */
      close() {
        webidl.brandCheck(this, _EventSource);
        if (this.#readyState === CLOSED) return;
        this.#readyState = CLOSED;
        this.#controller.abort();
        this.#request = null;
      }
      get onopen() {
        return this.#events.open;
      }
      set onopen(fn) {
        if (this.#events.open) {
          this.removeEventListener("open", this.#events.open);
        }
        const listener = webidl.converters.EventHandlerNonNull(fn);
        if (listener !== null) {
          this.addEventListener("open", listener);
          this.#events.open = fn;
        } else {
          this.#events.open = null;
        }
      }
      get onmessage() {
        return this.#events.message;
      }
      set onmessage(fn) {
        if (this.#events.message) {
          this.removeEventListener("message", this.#events.message);
        }
        const listener = webidl.converters.EventHandlerNonNull(fn);
        if (listener !== null) {
          this.addEventListener("message", listener);
          this.#events.message = fn;
        } else {
          this.#events.message = null;
        }
      }
      get onerror() {
        return this.#events.error;
      }
      set onerror(fn) {
        if (this.#events.error) {
          this.removeEventListener("error", this.#events.error);
        }
        const listener = webidl.converters.EventHandlerNonNull(fn);
        if (listener !== null) {
          this.addEventListener("error", listener);
          this.#events.error = fn;
        } else {
          this.#events.error = null;
        }
      }
    };
    var constantsPropertyDescriptors = {
      CONNECTING: {
        __proto__: null,
        configurable: false,
        enumerable: true,
        value: CONNECTING,
        writable: false
      },
      OPEN: {
        __proto__: null,
        configurable: false,
        enumerable: true,
        value: OPEN,
        writable: false
      },
      CLOSED: {
        __proto__: null,
        configurable: false,
        enumerable: true,
        value: CLOSED,
        writable: false
      }
    };
    Object.defineProperties(EventSource, constantsPropertyDescriptors);
    Object.defineProperties(EventSource.prototype, constantsPropertyDescriptors);
    Object.defineProperties(EventSource.prototype, {
      close: kEnumerableProperty,
      onerror: kEnumerableProperty,
      onmessage: kEnumerableProperty,
      onopen: kEnumerableProperty,
      readyState: kEnumerableProperty,
      url: kEnumerableProperty,
      withCredentials: kEnumerableProperty
    });
    webidl.converters.EventSourceInitDict = webidl.dictionaryConverter([
      {
        key: "withCredentials",
        converter: webidl.converters.boolean,
        defaultValue: () => false
      },
      {
        key: "dispatcher",
        // undici only
        converter: webidl.converters.any
      },
      {
        key: "node",
        // undici only
        converter: webidl.dictionaryConverter([
          {
            key: "reconnectionTime",
            converter: webidl.converters["unsigned long"],
            defaultValue: () => defaultReconnectionTime
          },
          {
            key: "dispatcher",
            converter: webidl.converters.any
          }
        ]),
        defaultValue: () => ({})
      }
    ]);
    module.exports = {
      EventSource,
      defaultReconnectionTime
    };
  }
});

// ../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/index.js
var require_undici = __commonJS({
  "../../node_modules/.pnpm/undici@7.21.0/node_modules/undici/index.js"(exports, module) {
    "use strict";
    var Client = require_client();
    var Dispatcher = require_dispatcher();
    var Pool = require_pool();
    var BalancedPool = require_balanced_pool();
    var RoundRobinPool = require_round_robin_pool();
    var Agent = require_agent2();
    var ProxyAgent = require_proxy_agent();
    var EnvHttpProxyAgent = require_env_http_proxy_agent();
    var RetryAgent = require_retry_agent();
    var H2CClient = require_h2c_client();
    var errors = require_errors5();
    var util3 = require_util4();
    var { InvalidArgumentError } = errors;
    var api = require_api2();
    var buildConnector = require_connect();
    var MockClient = require_mock_client();
    var { MockCallHistory, MockCallHistoryLog } = require_mock_call_history();
    var MockAgent = require_mock_agent();
    var MockPool = require_mock_pool();
    var SnapshotAgent = require_snapshot_agent();
    var mockErrors = require_mock_errors();
    var RetryHandler = require_retry_handler();
    var { getGlobalDispatcher, setGlobalDispatcher } = require_global2();
    var DecoratorHandler = require_decorator_handler();
    var RedirectHandler = require_redirect_handler();
    Object.assign(Dispatcher.prototype, api);
    module.exports.Dispatcher = Dispatcher;
    module.exports.Client = Client;
    module.exports.Pool = Pool;
    module.exports.BalancedPool = BalancedPool;
    module.exports.RoundRobinPool = RoundRobinPool;
    module.exports.Agent = Agent;
    module.exports.ProxyAgent = ProxyAgent;
    module.exports.EnvHttpProxyAgent = EnvHttpProxyAgent;
    module.exports.RetryAgent = RetryAgent;
    module.exports.H2CClient = H2CClient;
    module.exports.RetryHandler = RetryHandler;
    module.exports.DecoratorHandler = DecoratorHandler;
    module.exports.RedirectHandler = RedirectHandler;
    module.exports.interceptors = {
      redirect: require_redirect(),
      responseError: require_response_error(),
      retry: require_retry3(),
      dump: require_dump(),
      dns: require_dns(),
      cache: require_cache2(),
      decompress: require_decompress(),
      deduplicate: require_deduplicate()
    };
    module.exports.cacheStores = {
      MemoryCacheStore: require_memory_cache_store()
    };
    var SqliteCacheStore = require_sqlite_cache_store();
    module.exports.cacheStores.SqliteCacheStore = SqliteCacheStore;
    module.exports.buildConnector = buildConnector;
    module.exports.errors = errors;
    module.exports.util = {
      parseHeaders: util3.parseHeaders,
      headerNameToString: util3.headerNameToString
    };
    function makeDispatcher(fn) {
      return (url3, opts2, handler) => {
        if (typeof opts2 === "function") {
          handler = opts2;
          opts2 = null;
        }
        if (!url3 || typeof url3 !== "string" && typeof url3 !== "object" && !(url3 instanceof URL)) {
          throw new InvalidArgumentError("invalid url");
        }
        if (opts2 != null && typeof opts2 !== "object") {
          throw new InvalidArgumentError("invalid opts");
        }
        if (opts2 && opts2.path != null) {
          if (typeof opts2.path !== "string") {
            throw new InvalidArgumentError("invalid opts.path");
          }
          let path3 = opts2.path;
          if (!opts2.path.startsWith("/")) {
            path3 = `/${path3}`;
          }
          url3 = new URL(util3.parseOrigin(url3).origin + path3);
        } else {
          if (!opts2) {
            opts2 = typeof url3 === "object" ? url3 : {};
          }
          url3 = util3.parseURL(url3);
        }
        const { agent, dispatcher = getGlobalDispatcher() } = opts2;
        if (agent) {
          throw new InvalidArgumentError("unsupported opts.agent. Did you mean opts.client?");
        }
        return fn.call(dispatcher, {
          ...opts2,
          origin: url3.origin,
          path: url3.search ? `${url3.pathname}${url3.search}` : url3.pathname,
          method: opts2.method || (opts2.body ? "PUT" : "GET")
        }, handler);
      };
    }
    module.exports.setGlobalDispatcher = setGlobalDispatcher;
    module.exports.getGlobalDispatcher = getGlobalDispatcher;
    var fetchImpl = require_fetch().fetch;
    var currentFilename = typeof __filename !== "undefined" ? __filename : void 0;
    function appendFetchStackTrace(err2, filename) {
      if (!err2 || typeof err2 !== "object") {
        return;
      }
      const stack = typeof err2.stack === "string" ? err2.stack : "";
      const normalizedFilename = filename.replace(/\\/g, "/");
      if (stack && (stack.includes(filename) || stack.includes(normalizedFilename))) {
        return;
      }
      const capture = {};
      Error.captureStackTrace(capture, appendFetchStackTrace);
      if (!capture.stack) {
        return;
      }
      const captureLines = capture.stack.split("\n").slice(1).join("\n");
      err2.stack = stack ? `${stack}
${captureLines}` : capture.stack;
    }
    module.exports.fetch = function fetch2(init3, options = void 0) {
      return fetchImpl(init3, options).catch((err2) => {
        if (currentFilename) {
          appendFetchStackTrace(err2, currentFilename);
        } else if (err2 && typeof err2 === "object") {
          Error.captureStackTrace(err2, module.exports.fetch);
        }
        throw err2;
      });
    };
    module.exports.Headers = require_headers2().Headers;
    module.exports.Response = require_response().Response;
    module.exports.Request = require_request3().Request;
    module.exports.FormData = require_formdata().FormData;
    var { setGlobalOrigin, getGlobalOrigin } = require_global();
    module.exports.setGlobalOrigin = setGlobalOrigin;
    module.exports.getGlobalOrigin = getGlobalOrigin;
    var { CacheStorage } = require_cachestorage();
    var { kConstruct } = require_symbols2();
    module.exports.caches = new CacheStorage(kConstruct);
    var { deleteCookie, getCookies, getSetCookies, setCookie, parseCookie } = require_cookies();
    module.exports.deleteCookie = deleteCookie;
    module.exports.getCookies = getCookies;
    module.exports.getSetCookies = getSetCookies;
    module.exports.setCookie = setCookie;
    module.exports.parseCookie = parseCookie;
    var { parseMIMEType, serializeAMimeType } = require_data_url();
    module.exports.parseMIMEType = parseMIMEType;
    module.exports.serializeAMimeType = serializeAMimeType;
    var { CloseEvent, ErrorEvent, MessageEvent } = require_events5();
    var { WebSocket, ping } = require_websocket2();
    module.exports.WebSocket = WebSocket;
    module.exports.CloseEvent = CloseEvent;
    module.exports.ErrorEvent = ErrorEvent;
    module.exports.MessageEvent = MessageEvent;
    module.exports.ping = ping;
    module.exports.WebSocketStream = require_websocketstream().WebSocketStream;
    module.exports.WebSocketError = require_websocketerror().WebSocketError;
    module.exports.request = makeDispatcher(api.request);
    module.exports.stream = makeDispatcher(api.stream);
    module.exports.pipeline = makeDispatcher(api.pipeline);
    module.exports.connect = makeDispatcher(api.connect);
    module.exports.upgrade = makeDispatcher(api.upgrade);
    module.exports.MockClient = MockClient;
    module.exports.MockCallHistory = MockCallHistory;
    module.exports.MockCallHistoryLog = MockCallHistoryLog;
    module.exports.MockPool = MockPool;
    module.exports.MockAgent = MockAgent;
    module.exports.SnapshotAgent = SnapshotAgent;
    module.exports.mockErrors = mockErrors;
    var { EventSource } = require_eventsource();
    module.exports.EventSource = EventSource;
    function install() {
      globalThis.fetch = module.exports.fetch;
      globalThis.Headers = module.exports.Headers;
      globalThis.Response = module.exports.Response;
      globalThis.Request = module.exports.Request;
      globalThis.FormData = module.exports.FormData;
      globalThis.WebSocket = module.exports.WebSocket;
      globalThis.CloseEvent = module.exports.CloseEvent;
      globalThis.ErrorEvent = module.exports.ErrorEvent;
      globalThis.MessageEvent = module.exports.MessageEvent;
      globalThis.EventSource = module.exports.EventSource;
    }
    module.exports.install = install;
  }
});

// ../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/index.js
var require_commonjs6 = __commonJS({
  "../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/commonjs/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __exportStar2 = exports && exports.__exportStar || function(m3, exports2) {
      for (var p3 in m3) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p3)) __createBinding2(exports2, m3, p3);
    };
    var __importStar2 = exports && exports.__importStar || /* @__PURE__ */ (function() {
      var ownKeys2 = function(o5) {
        ownKeys2 = Object.getOwnPropertyNames || function(o6) {
          var ar = [];
          for (var k3 in o6) if (Object.prototype.hasOwnProperty.call(o6, k3)) ar[ar.length] = k3;
          return ar;
        };
        return ownKeys2(o5);
      };
      return function(mod3) {
        if (mod3 && mod3.__esModule) return mod3;
        var result = {};
        if (mod3 != null) {
          for (var k3 = ownKeys2(mod3), i5 = 0; i5 < k3.length; i5++) if (k3[i5] !== "default") __createBinding2(result, mod3, k3[i5]);
        }
        __setModuleDefault2(result, mod3);
        return result;
      };
    })();
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.merge = exports.contains = void 0;
    exports.loadBuffer = loadBuffer;
    exports.stringStream = stringStream;
    exports.decodeStream = decodeStream;
    exports.fromURL = fromURL;
    __exportStar2(require_load_parse(), exports);
    var static_js_1 = require_static2();
    Object.defineProperty(exports, "contains", { enumerable: true, get: function() {
      return static_js_1.contains;
    } });
    Object.defineProperty(exports, "merge", { enumerable: true, get: function() {
      return static_js_1.merge;
    } });
    var parse5_htmlparser2_tree_adapter_1 = require_cjs8();
    var htmlparser2 = __importStar2(require_commonjs4());
    var parse5_parser_stream_1 = require_cjs14();
    var encoding_sniffer_1 = require_commonjs5();
    var undici = __importStar2(require_undici());
    var whatwg_mimetype_1 = __importDefault2(require_mime_type());
    var node_stream_1 = __require("node:stream");
    var options_js_1 = require_options2();
    var load_parse_js_1 = require_load_parse();
    function loadBuffer(buffer, options = {}) {
      const opts2 = (0, options_js_1.flattenOptions)(options);
      const str = (0, encoding_sniffer_1.decodeBuffer)(buffer, {
        defaultEncoding: (opts2 === null || opts2 === void 0 ? void 0 : opts2.xmlMode) ? "utf8" : "windows-1252",
        ...options.encoding
      });
      return (0, load_parse_js_1.load)(str, opts2);
    }
    function _stringStream(options, cb) {
      var _a2;
      if (options === null || options === void 0 ? void 0 : options._useHtmlParser2) {
        const parser = htmlparser2.createDocumentStream((err2, document2) => cb(err2, (0, load_parse_js_1.load)(document2, options)), options);
        return new node_stream_1.Writable({
          decodeStrings: false,
          write(chunk3, _encoding, callback) {
            if (typeof chunk3 !== "string") {
              throw new TypeError("Expected a string");
            }
            parser.write(chunk3);
            callback();
          },
          final(callback) {
            parser.end();
            callback();
          }
        });
      }
      options !== null && options !== void 0 ? options : options = {};
      (_a2 = options.treeAdapter) !== null && _a2 !== void 0 ? _a2 : options.treeAdapter = parse5_htmlparser2_tree_adapter_1.adapter;
      if (options.scriptingEnabled !== false) {
        options.scriptingEnabled = true;
      }
      const stream7 = new parse5_parser_stream_1.ParserStream(options);
      (0, node_stream_1.finished)(stream7, (err2) => cb(err2, (0, load_parse_js_1.load)(stream7.document, options)));
      return stream7;
    }
    function stringStream(options, cb) {
      return _stringStream((0, options_js_1.flattenOptions)(options), cb);
    }
    function decodeStream(options, cb) {
      var _a2;
      const { encoding = {}, ...cheerioOptions } = options;
      const opts2 = (0, options_js_1.flattenOptions)(cheerioOptions);
      (_a2 = encoding.defaultEncoding) !== null && _a2 !== void 0 ? _a2 : encoding.defaultEncoding = (opts2 === null || opts2 === void 0 ? void 0 : opts2.xmlMode) ? "utf8" : "windows-1252";
      const decodeStream2 = new encoding_sniffer_1.DecodeStream(encoding);
      const loadStream = _stringStream(opts2, cb);
      decodeStream2.pipe(loadStream);
      return decodeStream2;
    }
    var defaultRequestOptions = {
      method: "GET",
      // Set an Accept header
      headers: {
        accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      }
    };
    async function fromURL(url3, options = {}) {
      const { requestOptions = defaultRequestOptions, encoding = {}, ...cheerioOptions } = options;
      let undiciStream;
      const urlObject = typeof url3 === "string" ? new URL(url3) : url3;
      const streamOptions = {
        headers: defaultRequestOptions.headers,
        path: urlObject.pathname + urlObject.search,
        ...requestOptions
      };
      const promise = new Promise((resolve4, reject) => {
        undiciStream = new undici.Client(urlObject.origin).compose(undici.interceptors.redirect({ maxRedirections: 5 })).stream(streamOptions, (res) => {
          var _a2, _b2;
          if (res.statusCode < 200 || res.statusCode >= 300) {
            throw new undici.errors.ResponseError("Response Error", res.statusCode, {
              headers: res.headers
            });
          }
          const contentTypeHeader = (_a2 = res.headers["content-type"]) !== null && _a2 !== void 0 ? _a2 : "text/html";
          const mimeType = new whatwg_mimetype_1.default(Array.isArray(contentTypeHeader) ? contentTypeHeader[0] : contentTypeHeader);
          if (!mimeType.isHTML() && !mimeType.isXML()) {
            throw new RangeError(`The content-type "${mimeType.essence}" is neither HTML nor XML.`);
          }
          encoding.transportLayerEncodingLabel = mimeType.parameters.get("charset");
          const history = (_b2 = res.context) === null || _b2 === void 0 ? void 0 : _b2.history;
          const baseURI = history ? history[history.length - 1] : urlObject;
          const opts2 = {
            encoding,
            // Set XML mode based on the MIME type.
            xmlMode: mimeType.isXML(),
            baseURI,
            ...cheerioOptions
          };
          return decodeStream(opts2, (err2, $) => err2 ? reject(err2) : resolve4($));
        });
      });
      await undiciStream;
      return promise;
    }
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/constants.js
var require_constants16 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/constants.js"(exports) {
    "use strict";
    var NODE_END = -1;
    exports.NODE_END = NODE_END;
    var ELEMENT_NODE = 1;
    exports.ELEMENT_NODE = ELEMENT_NODE;
    var ATTRIBUTE_NODE = 2;
    exports.ATTRIBUTE_NODE = ATTRIBUTE_NODE;
    var TEXT_NODE = 3;
    exports.TEXT_NODE = TEXT_NODE;
    var CDATA_SECTION_NODE = 4;
    exports.CDATA_SECTION_NODE = CDATA_SECTION_NODE;
    var COMMENT_NODE = 8;
    exports.COMMENT_NODE = COMMENT_NODE;
    var DOCUMENT_NODE = 9;
    exports.DOCUMENT_NODE = DOCUMENT_NODE;
    var DOCUMENT_TYPE_NODE = 10;
    exports.DOCUMENT_TYPE_NODE = DOCUMENT_TYPE_NODE;
    var DOCUMENT_FRAGMENT_NODE = 11;
    exports.DOCUMENT_FRAGMENT_NODE = DOCUMENT_FRAGMENT_NODE;
    var BLOCK_ELEMENTS = /* @__PURE__ */ new Set(["ARTICLE", "ASIDE", "BLOCKQUOTE", "BODY", "BR", "BUTTON", "CANVAS", "CAPTION", "COL", "COLGROUP", "DD", "DIV", "DL", "DT", "EMBED", "FIELDSET", "FIGCAPTION", "FIGURE", "FOOTER", "FORM", "H1", "H2", "H3", "H4", "H5", "H6", "LI", "UL", "OL", "P"]);
    exports.BLOCK_ELEMENTS = BLOCK_ELEMENTS;
    var SHOW_ALL = -1;
    exports.SHOW_ALL = SHOW_ALL;
    var SHOW_ELEMENT = 1;
    exports.SHOW_ELEMENT = SHOW_ELEMENT;
    var SHOW_TEXT = 4;
    exports.SHOW_TEXT = SHOW_TEXT;
    var SHOW_CDATA_SECTION = 8;
    exports.SHOW_CDATA_SECTION = SHOW_CDATA_SECTION;
    var SHOW_COMMENT = 128;
    exports.SHOW_COMMENT = SHOW_COMMENT;
    var DOCUMENT_POSITION_DISCONNECTED = 1;
    exports.DOCUMENT_POSITION_DISCONNECTED = DOCUMENT_POSITION_DISCONNECTED;
    var DOCUMENT_POSITION_PRECEDING = 2;
    exports.DOCUMENT_POSITION_PRECEDING = DOCUMENT_POSITION_PRECEDING;
    var DOCUMENT_POSITION_FOLLOWING = 4;
    exports.DOCUMENT_POSITION_FOLLOWING = DOCUMENT_POSITION_FOLLOWING;
    var DOCUMENT_POSITION_CONTAINS = 8;
    exports.DOCUMENT_POSITION_CONTAINS = DOCUMENT_POSITION_CONTAINS;
    var DOCUMENT_POSITION_CONTAINED_BY = 16;
    exports.DOCUMENT_POSITION_CONTAINED_BY = DOCUMENT_POSITION_CONTAINED_BY;
    var DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32;
    exports.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC;
    var SVG_NAMESPACE = "http://www.w3.org/2000/svg";
    exports.SVG_NAMESPACE = SVG_NAMESPACE;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/object.js
var require_object2 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/object.js"(exports) {
    "use strict";
    var {
      assign,
      create: create2,
      defineProperties,
      entries: entries3,
      getOwnPropertyDescriptors,
      keys: keys2,
      setPrototypeOf
    } = Object;
    exports.assign = assign;
    exports.create = create2;
    exports.defineProperties = defineProperties;
    exports.entries = entries3;
    exports.getOwnPropertyDescriptors = getOwnPropertyDescriptors;
    exports.keys = keys2;
    exports.setPrototypeOf = setPrototypeOf;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/symbols.js
var require_symbols3 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/symbols.js"(exports) {
    "use strict";
    var CHANGED = Symbol("changed");
    exports.CHANGED = CHANGED;
    var CLASS_LIST = Symbol("classList");
    exports.CLASS_LIST = CLASS_LIST;
    var CUSTOM_ELEMENTS = Symbol("CustomElements");
    exports.CUSTOM_ELEMENTS = CUSTOM_ELEMENTS;
    var CONTENT = Symbol("content");
    exports.CONTENT = CONTENT;
    var DATASET = Symbol("dataset");
    exports.DATASET = DATASET;
    var DOCTYPE = Symbol("doctype");
    exports.DOCTYPE = DOCTYPE;
    var DOM_PARSER = Symbol("DOMParser");
    exports.DOM_PARSER = DOM_PARSER;
    var END = Symbol("end");
    exports.END = END;
    var EVENT_TARGET = Symbol("EventTarget");
    exports.EVENT_TARGET = EVENT_TARGET;
    var GLOBALS = Symbol("globals");
    exports.GLOBALS = GLOBALS;
    var IMAGE = Symbol("image");
    exports.IMAGE = IMAGE;
    var MIME = Symbol("mime");
    exports.MIME = MIME;
    var MUTATION_OBSERVER = Symbol("MutationObserver");
    exports.MUTATION_OBSERVER = MUTATION_OBSERVER;
    var NEXT = Symbol("next");
    exports.NEXT = NEXT;
    var OWNER_ELEMENT = Symbol("ownerElement");
    exports.OWNER_ELEMENT = OWNER_ELEMENT;
    var PREV = Symbol("prev");
    exports.PREV = PREV;
    var PRIVATE = Symbol("private");
    exports.PRIVATE = PRIVATE;
    var SHEET = Symbol("sheet");
    exports.SHEET = SHEET;
    var START = Symbol("start");
    exports.START = START;
    var STYLE = Symbol("style");
    exports.STYLE = STYLE;
    var UPGRADE = Symbol("upgrade");
    exports.UPGRADE = UPGRADE;
    var VALUE = Symbol("value");
    exports.VALUE = VALUE;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/utils.js
var require_utils21 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/utils.js"(exports) {
    "use strict";
    var { ELEMENT_NODE } = require_constants16();
    var { END, MIME, NEXT, PREV } = require_symbols3();
    var $String = String;
    exports.String = $String;
    var getEnd = (node) => node.nodeType === ELEMENT_NODE ? node[END] : node;
    exports.getEnd = getEnd;
    var ignoreCase = ({ ownerDocument }) => ownerDocument[MIME].ignoreCase;
    exports.ignoreCase = ignoreCase;
    var knownAdjacent = (prev, next) => {
      prev[NEXT] = next;
      next[PREV] = prev;
    };
    exports.knownAdjacent = knownAdjacent;
    var knownBoundaries = (prev, current, next) => {
      knownAdjacent(prev, current);
      knownAdjacent(getEnd(current), next);
    };
    exports.knownBoundaries = knownBoundaries;
    var knownSegment = (prev, start2, end2, next) => {
      knownAdjacent(prev, start2);
      knownAdjacent(getEnd(end2), next);
    };
    exports.knownSegment = knownSegment;
    var knownSiblings = (prev, current, next) => {
      knownAdjacent(prev, current);
      knownAdjacent(current, next);
    };
    exports.knownSiblings = knownSiblings;
    var localCase = ({ localName, ownerDocument }) => {
      return ownerDocument[MIME].ignoreCase ? localName.toUpperCase() : localName;
    };
    exports.localCase = localCase;
    var setAdjacent = (prev, next) => {
      if (prev)
        prev[NEXT] = next;
      if (next)
        next[PREV] = prev;
    };
    exports.setAdjacent = setAdjacent;
    var htmlToFragment = (ownerDocument, html) => {
      const fragment = ownerDocument.createDocumentFragment();
      const elem = ownerDocument.createElement("");
      elem.innerHTML = html;
      const { firstChild, lastChild } = elem;
      if (firstChild) {
        knownSegment(fragment, firstChild, lastChild, fragment[END]);
        let child = firstChild;
        do {
          child.parentNode = fragment;
        } while (child !== lastChild && (child = getEnd(child)[NEXT]));
      }
      return fragment;
    };
    exports.htmlToFragment = htmlToFragment;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/jsdon.js
var require_jsdon = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/jsdon.js"(exports) {
    "use strict";
    var {
      NODE_END,
      ATTRIBUTE_NODE,
      CDATA_SECTION_NODE,
      COMMENT_NODE,
      DOCUMENT_TYPE_NODE,
      ELEMENT_NODE,
      TEXT_NODE
    } = require_constants16();
    var { END, NEXT, VALUE } = require_symbols3();
    var { getEnd } = require_utils21();
    var loopSegment = ({ [NEXT]: next, [END]: end2 }, json) => {
      while (next !== end2) {
        switch (next.nodeType) {
          case ATTRIBUTE_NODE:
            attrAsJSON(next, json);
            break;
          case TEXT_NODE:
          case COMMENT_NODE:
          case CDATA_SECTION_NODE:
            characterDataAsJSON(next, json);
            break;
          case ELEMENT_NODE:
            elementAsJSON(next, json);
            next = getEnd(next);
            break;
          case DOCUMENT_TYPE_NODE:
            documentTypeAsJSON(next, json);
            break;
        }
        next = next[NEXT];
      }
      const last2 = json.length - 1;
      const value2 = json[last2];
      if (typeof value2 === "number" && value2 < 0)
        json[last2] += NODE_END;
      else
        json.push(NODE_END);
    };
    var attrAsJSON = (attr, json) => {
      json.push(ATTRIBUTE_NODE, attr.name);
      const value2 = attr[VALUE].trim();
      if (value2)
        json.push(value2);
    };
    exports.attrAsJSON = attrAsJSON;
    var characterDataAsJSON = (node, json) => {
      const value2 = node[VALUE];
      if (value2.trim())
        json.push(node.nodeType, value2);
    };
    exports.characterDataAsJSON = characterDataAsJSON;
    var nonElementAsJSON = (node, json) => {
      json.push(node.nodeType);
      loopSegment(node, json);
    };
    exports.nonElementAsJSON = nonElementAsJSON;
    var documentTypeAsJSON = ({ name, publicId, systemId }, json) => {
      json.push(DOCUMENT_TYPE_NODE, name);
      if (publicId)
        json.push(publicId);
      if (systemId)
        json.push(systemId);
    };
    exports.documentTypeAsJSON = documentTypeAsJSON;
    var elementAsJSON = (element, json) => {
      json.push(ELEMENT_NODE, element.localName);
      loopSegment(element, json);
    };
    exports.elementAsJSON = elementAsJSON;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/shadow-roots.js
var require_shadow_roots = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/shadow-roots.js"(exports) {
    "use strict";
    var shadowRoots = /* @__PURE__ */ new WeakMap();
    exports.shadowRoots = shadowRoots;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/custom-element-registry.js
var require_custom_element_registry = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/custom-element-registry.js"(exports) {
    "use strict";
    var { ELEMENT_NODE } = require_constants16();
    var { END, NEXT, UPGRADE } = require_symbols3();
    var { entries: entries3, setPrototypeOf } = require_object2();
    var { shadowRoots } = require_shadow_roots();
    var reactive = false;
    var Classes = /* @__PURE__ */ new WeakMap();
    exports.Classes = Classes;
    var customElements = /* @__PURE__ */ new WeakMap();
    exports.customElements = customElements;
    var attributeChangedCallback = (element, attributeName, oldValue, newValue) => {
      if (reactive && customElements.has(element) && element.attributeChangedCallback && element.constructor.observedAttributes.includes(attributeName)) {
        element.attributeChangedCallback(attributeName, oldValue, newValue);
      }
    };
    exports.attributeChangedCallback = attributeChangedCallback;
    var createTrigger = (method, isConnected) => (element) => {
      if (customElements.has(element)) {
        const info = customElements.get(element);
        if (info.connected !== isConnected && element.isConnected === isConnected) {
          info.connected = isConnected;
          if (method in element)
            element[method]();
        }
      }
    };
    var triggerConnected = createTrigger("connectedCallback", true);
    var connectedCallback = (element) => {
      if (reactive) {
        triggerConnected(element);
        if (shadowRoots.has(element))
          element = shadowRoots.get(element).shadowRoot;
        let { [NEXT]: next, [END]: end2 } = element;
        while (next !== end2) {
          if (next.nodeType === ELEMENT_NODE)
            triggerConnected(next);
          next = next[NEXT];
        }
      }
    };
    exports.connectedCallback = connectedCallback;
    var triggerDisconnected = createTrigger("disconnectedCallback", false);
    var disconnectedCallback = (element) => {
      if (reactive) {
        triggerDisconnected(element);
        if (shadowRoots.has(element))
          element = shadowRoots.get(element).shadowRoot;
        let { [NEXT]: next, [END]: end2 } = element;
        while (next !== end2) {
          if (next.nodeType === ELEMENT_NODE)
            triggerDisconnected(next);
          next = next[NEXT];
        }
      }
    };
    exports.disconnectedCallback = disconnectedCallback;
    var CustomElementRegistry = class {
      /**
       * @param {Document} ownerDocument
       */
      constructor(ownerDocument) {
        this.ownerDocument = ownerDocument;
        this.registry = /* @__PURE__ */ new Map();
        this.waiting = /* @__PURE__ */ new Map();
        this.active = false;
      }
      /**
       * @param {string} localName the custom element definition name
       * @param {Function} Class the custom element **Class** definition
       * @param {object?} options the optional object with an `extends` property
       */
      define(localName, Class, options = {}) {
        const { ownerDocument, registry, waiting } = this;
        if (registry.has(localName))
          throw new Error("unable to redefine " + localName);
        if (Classes.has(Class))
          throw new Error("unable to redefine the same class: " + Class);
        this.active = reactive = true;
        const { extends: extend2 } = options;
        Classes.set(Class, {
          ownerDocument,
          options: { is: extend2 ? localName : "" },
          localName: extend2 || localName
        });
        const check = extend2 ? (element) => {
          return element.localName === extend2 && element.getAttribute("is") === localName;
        } : (element) => element.localName === localName;
        registry.set(localName, { Class, check });
        if (waiting.has(localName)) {
          for (const resolve4 of waiting.get(localName))
            resolve4(Class);
          waiting.delete(localName);
        }
        ownerDocument.querySelectorAll(
          extend2 ? `${extend2}[is="${localName}"]` : localName
        ).forEach(this.upgrade, this);
      }
      /**
       * @param {Element} element
       */
      upgrade(element) {
        if (customElements.has(element))
          return;
        const { ownerDocument, registry } = this;
        const ce = element.getAttribute("is") || element.localName;
        if (registry.has(ce)) {
          const { Class, check } = registry.get(ce);
          if (check(element)) {
            const { attributes: attributes2, isConnected } = element;
            for (const attr of attributes2)
              element.removeAttributeNode(attr);
            const values = entries3(element);
            for (const [key] of values)
              delete element[key];
            setPrototypeOf(element, Class.prototype);
            ownerDocument[UPGRADE] = { element, values };
            new Class(ownerDocument, ce);
            customElements.set(element, { connected: isConnected });
            for (const attr of attributes2)
              element.setAttributeNode(attr);
            if (isConnected && element.connectedCallback)
              element.connectedCallback();
          }
        }
      }
      /**
       * @param {string} localName the custom element definition name
       */
      whenDefined(localName) {
        const { registry, waiting } = this;
        return new Promise((resolve4) => {
          if (registry.has(localName))
            resolve4(registry.get(localName).Class);
          else {
            if (!waiting.has(localName))
              waiting.set(localName, []);
            waiting.get(localName).push(resolve4);
          }
        });
      }
      /**
       * @param {string} localName the custom element definition name
       * @returns {Function?} the custom element **Class**, if any
       */
      get(localName) {
        const info = this.registry.get(localName);
        return info && info.Class;
      }
      /**
       * @param {Function} Class **Class** of custom element
       * @returns {string?} found tag name or null
       */
      getName(Class) {
        if (Classes.has(Class)) {
          const { localName } = Classes.get(Class);
          return localName;
        }
        return null;
      }
    };
    exports.CustomElementRegistry = CustomElementRegistry;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/mutation-observer.js
var require_mutation_observer = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/mutation-observer.js"(exports) {
    "use strict";
    var { MUTATION_OBSERVER } = require_symbols3();
    var createRecord = (type, target, element, addedNodes, removedNodes, attributeName, oldValue) => ({
      type,
      target,
      addedNodes,
      removedNodes,
      attributeName,
      oldValue,
      previousSibling: element?.previousSibling || null,
      nextSibling: element?.nextSibling || null
    });
    var queueAttribute = (observer, target, attributeName, attributeFilter, attributeOldValue, oldValue) => {
      if (!attributeFilter || attributeFilter.includes(attributeName)) {
        const { callback, records, scheduled } = observer;
        records.push(createRecord(
          "attributes",
          target,
          null,
          [],
          [],
          attributeName,
          attributeOldValue ? oldValue : void 0
        ));
        if (!scheduled) {
          observer.scheduled = true;
          Promise.resolve().then(() => {
            observer.scheduled = false;
            callback(records.splice(0), observer);
          });
        }
      }
    };
    var attributeChangedCallback = (element, attributeName, oldValue) => {
      const { ownerDocument } = element;
      const { active, observers } = ownerDocument[MUTATION_OBSERVER];
      if (active) {
        for (const observer of observers) {
          for (const [
            target,
            {
              childList,
              subtree,
              attributes: attributes2,
              attributeFilter,
              attributeOldValue
            }
          ] of observer.nodes) {
            if (childList) {
              if (subtree && (target === ownerDocument || target.contains(element)) || !subtree && target.children.includes(element)) {
                queueAttribute(
                  observer,
                  element,
                  attributeName,
                  attributeFilter,
                  attributeOldValue,
                  oldValue
                );
                break;
              }
            } else if (attributes2 && target === element) {
              queueAttribute(
                observer,
                element,
                attributeName,
                attributeFilter,
                attributeOldValue,
                oldValue
              );
              break;
            }
          }
        }
      }
    };
    exports.attributeChangedCallback = attributeChangedCallback;
    var moCallback = (element, parentNode) => {
      const { ownerDocument } = element;
      const { active, observers } = ownerDocument[MUTATION_OBSERVER];
      if (active) {
        for (const observer of observers) {
          for (const [target, { subtree, childList, characterData }] of observer.nodes) {
            if (childList) {
              if (parentNode && (target === parentNode || /* c8 ignore next */
              subtree && target.contains(parentNode)) || !parentNode && (subtree && (target === ownerDocument || /* c8 ignore next */
              target.contains(element)) || !subtree && target[characterData ? "childNodes" : "children"].includes(element))) {
                const { callback, records, scheduled } = observer;
                records.push(createRecord(
                  "childList",
                  target,
                  element,
                  parentNode ? [] : [element],
                  parentNode ? [element] : []
                ));
                if (!scheduled) {
                  observer.scheduled = true;
                  Promise.resolve().then(() => {
                    observer.scheduled = false;
                    callback(records.splice(0), observer);
                  });
                }
                break;
              }
            }
          }
        }
      }
    };
    exports.moCallback = moCallback;
    var MutationObserverClass = class {
      constructor(ownerDocument) {
        const observers = /* @__PURE__ */ new Set();
        this.observers = observers;
        this.active = false;
        this.class = class MutationObserver {
          constructor(callback) {
            this.callback = callback;
            this.nodes = /* @__PURE__ */ new Map();
            this.records = [];
            this.scheduled = false;
          }
          disconnect() {
            this.records.splice(0);
            this.nodes.clear();
            observers.delete(this);
            ownerDocument[MUTATION_OBSERVER].active = !!observers.size;
          }
          /**
           * @param {Element} target
           * @param {MutationObserverInit} options
           */
          observe(target, options = {
            subtree: false,
            childList: false,
            attributes: false,
            attributeFilter: null,
            attributeOldValue: false,
            characterData: false
            // TODO: not implemented yet
            // characterDataOldValue: false
          }) {
            if ("attributeOldValue" in options || "attributeFilter" in options)
              options.attributes = true;
            options.childList = !!options.childList;
            options.subtree = !!options.subtree;
            this.nodes.set(target, options);
            observers.add(this);
            ownerDocument[MUTATION_OBSERVER].active = true;
          }
          /**
           * @returns {MutationRecord[]}
           */
          takeRecords() {
            return this.records.splice(0);
          }
        };
      }
    };
    exports.MutationObserverClass = MutationObserverClass;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/attributes.js
var require_attributes6 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/attributes.js"(exports) {
    "use strict";
    var { CLASS_LIST, NEXT, PREV, VALUE } = require_symbols3();
    var { knownAdjacent, knownSiblings } = require_utils21();
    var { attributeChangedCallback: ceAttributes } = require_custom_element_registry();
    var { attributeChangedCallback: moAttributes } = require_mutation_observer();
    var emptyAttributes = /* @__PURE__ */ new Set([
      "allowfullscreen",
      "allowpaymentrequest",
      "async",
      "autofocus",
      "autoplay",
      "checked",
      "class",
      "contenteditable",
      "controls",
      "default",
      "defer",
      "disabled",
      "draggable",
      "formnovalidate",
      "hidden",
      "id",
      "ismap",
      "itemscope",
      "loop",
      "multiple",
      "muted",
      "nomodule",
      "novalidate",
      "open",
      "playsinline",
      "readonly",
      "required",
      "reversed",
      "selected",
      "style",
      "truespeed"
    ]);
    exports.emptyAttributes = emptyAttributes;
    var setAttribute = (element, attribute) => {
      const { [VALUE]: value2, name } = attribute;
      attribute.ownerElement = element;
      knownSiblings(element, attribute, element[NEXT]);
      if (name === "class")
        element.className = value2;
      moAttributes(element, name, null);
      ceAttributes(element, name, null, value2);
    };
    exports.setAttribute = setAttribute;
    var removeAttribute = (element, attribute) => {
      const { [VALUE]: value2, name } = attribute;
      knownAdjacent(attribute[PREV], attribute[NEXT]);
      attribute.ownerElement = attribute[PREV] = attribute[NEXT] = null;
      if (name === "class")
        element[CLASS_LIST] = null;
      moAttributes(element, name, value2);
      ceAttributes(element, name, value2, null);
    };
    exports.removeAttribute = removeAttribute;
    var booleanAttribute = {
      get(element, name) {
        return element.hasAttribute(name);
      },
      set(element, name, value2) {
        if (value2)
          element.setAttribute(name, "");
        else
          element.removeAttribute(name);
      }
    };
    exports.booleanAttribute = booleanAttribute;
    var numericAttribute = {
      get(element, name) {
        return parseFloat(element.getAttribute(name) || 0);
      },
      set(element, name, value2) {
        element.setAttribute(name, value2);
      }
    };
    exports.numericAttribute = numericAttribute;
    var stringAttribute = {
      get(element, name) {
        return element.getAttribute(name) || "";
      },
      set(element, name, value2) {
        element.setAttribute(name, value2);
      }
    };
    exports.stringAttribute = stringAttribute;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/event-target.js
var require_event_target2 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/event-target.js"(exports) {
    "use strict";
    var wm = /* @__PURE__ */ new WeakMap();
    function dispatch(event, listener) {
      if (typeof listener === "function")
        listener.call(event.target, event);
      else
        listener.handleEvent(event);
      return event._stopImmediatePropagationFlag;
    }
    function invokeListeners({ currentTarget, target }) {
      const map = wm.get(currentTarget);
      if (map && map.has(this.type)) {
        const listeners = map.get(this.type);
        if (currentTarget === target) {
          this.eventPhase = this.AT_TARGET;
        } else {
          this.eventPhase = this.BUBBLING_PHASE;
        }
        this.currentTarget = currentTarget;
        this.target = target;
        for (const [listener, options] of listeners) {
          if (options && options.once)
            listeners.delete(listener);
          if (dispatch(this, listener))
            break;
        }
        delete this.currentTarget;
        delete this.target;
        return this.cancelBubble;
      }
    }
    var DOMEventTarget = class {
      constructor() {
        wm.set(this, /* @__PURE__ */ new Map());
      }
      /**
       * @protected
       */
      _getParent() {
        return null;
      }
      addEventListener(type, listener, options) {
        const map = wm.get(this);
        if (!map.has(type))
          map.set(type, /* @__PURE__ */ new Map());
        map.get(type).set(listener, options);
      }
      removeEventListener(type, listener) {
        const map = wm.get(this);
        if (map.has(type)) {
          const listeners = map.get(type);
          if (listeners.delete(listener) && !listeners.size)
            map.delete(type);
        }
      }
      dispatchEvent(event) {
        let node = this;
        event.eventPhase = event.CAPTURING_PHASE;
        while (node) {
          if (node.dispatchEvent)
            event._path.push({ currentTarget: node, target: this });
          node = event.bubbles && node._getParent && node._getParent();
        }
        event._path.some(invokeListeners, event);
        event._path = [];
        event.eventPhase = event.NONE;
        return !event.defaultPrevented;
      }
    };
    exports.EventTarget = DOMEventTarget;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/node-list.js
var require_node_list = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/node-list.js"(exports) {
    "use strict";
    var NodeList = class extends Array {
      item(i5) {
        return i5 < this.length ? this[i5] : null;
      }
    };
    exports.NodeList = NodeList;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/node.js
var require_node6 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/node.js"(exports) {
    "use strict";
    var {
      ELEMENT_NODE,
      ATTRIBUTE_NODE,
      TEXT_NODE,
      CDATA_SECTION_NODE,
      COMMENT_NODE,
      DOCUMENT_NODE,
      DOCUMENT_FRAGMENT_NODE,
      DOCUMENT_TYPE_NODE,
      DOCUMENT_POSITION_DISCONNECTED,
      DOCUMENT_POSITION_PRECEDING,
      DOCUMENT_POSITION_FOLLOWING,
      DOCUMENT_POSITION_CONTAINS,
      DOCUMENT_POSITION_CONTAINED_BY,
      DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
    } = require_constants16();
    var { NEXT, PREV } = require_symbols3();
    var { EventTarget: EventTarget2 } = require_event_target2();
    var { NodeList } = require_node_list();
    var getParentNodeCount = ({ parentNode }) => {
      let count = 0;
      while (parentNode) {
        count++;
        parentNode = parentNode.parentNode;
      }
      return count;
    };
    var Node = class extends EventTarget2 {
      static get ELEMENT_NODE() {
        return ELEMENT_NODE;
      }
      static get ATTRIBUTE_NODE() {
        return ATTRIBUTE_NODE;
      }
      static get TEXT_NODE() {
        return TEXT_NODE;
      }
      static get CDATA_SECTION_NODE() {
        return CDATA_SECTION_NODE;
      }
      static get COMMENT_NODE() {
        return COMMENT_NODE;
      }
      static get DOCUMENT_NODE() {
        return DOCUMENT_NODE;
      }
      static get DOCUMENT_FRAGMENT_NODE() {
        return DOCUMENT_FRAGMENT_NODE;
      }
      static get DOCUMENT_TYPE_NODE() {
        return DOCUMENT_TYPE_NODE;
      }
      constructor(ownerDocument, localName, nodeType) {
        super();
        this.ownerDocument = ownerDocument;
        this.localName = localName;
        this.nodeType = nodeType;
        this.parentNode = null;
        this[NEXT] = null;
        this[PREV] = null;
      }
      get ELEMENT_NODE() {
        return ELEMENT_NODE;
      }
      get ATTRIBUTE_NODE() {
        return ATTRIBUTE_NODE;
      }
      get TEXT_NODE() {
        return TEXT_NODE;
      }
      get CDATA_SECTION_NODE() {
        return CDATA_SECTION_NODE;
      }
      get COMMENT_NODE() {
        return COMMENT_NODE;
      }
      get DOCUMENT_NODE() {
        return DOCUMENT_NODE;
      }
      get DOCUMENT_FRAGMENT_NODE() {
        return DOCUMENT_FRAGMENT_NODE;
      }
      get DOCUMENT_TYPE_NODE() {
        return DOCUMENT_TYPE_NODE;
      }
      get baseURI() {
        const ownerDocument = this.nodeType === DOCUMENT_NODE ? this : this.ownerDocument;
        if (ownerDocument) {
          const base = ownerDocument.querySelector("base");
          if (base)
            return base.getAttribute("href");
          const { location } = ownerDocument.defaultView;
          if (location)
            return location.href;
        }
        return null;
      }
      /* c8 ignore start */
      // mixin: node
      get isConnected() {
        return false;
      }
      get nodeName() {
        return this.localName;
      }
      get parentElement() {
        return null;
      }
      get previousSibling() {
        return null;
      }
      get previousElementSibling() {
        return null;
      }
      get nextSibling() {
        return null;
      }
      get nextElementSibling() {
        return null;
      }
      get childNodes() {
        return new NodeList();
      }
      get firstChild() {
        return null;
      }
      get lastChild() {
        return null;
      }
      // default values
      get nodeValue() {
        return null;
      }
      set nodeValue(value2) {
      }
      get textContent() {
        return null;
      }
      set textContent(value2) {
      }
      normalize() {
      }
      cloneNode() {
        return null;
      }
      contains() {
        return false;
      }
      /**
       * Inserts a node before a reference node as a child of this parent node.
       * @param {Node} newNode The node to be inserted.
       * @param {Node} referenceNode The node before which newNode is inserted. If this is null, then newNode is inserted at the end of node's child nodes.
       * @returns The added child
       */
      // eslint-disable-next-line no-unused-vars
      insertBefore(newNode, referenceNode) {
        return newNode;
      }
      /**
       * Adds a node to the end of the list of children of this node.
       * @param {Node} child The node to append to the given parent node.
       * @returns The appended child.
       */
      appendChild(child) {
        return child;
      }
      /**
       * Replaces a child node within this node
       * @param {Node} newChild The new node to replace oldChild.
       * @param {Node} oldChild The child to be replaced.
       * @returns The replaced Node. This is the same node as oldChild.
       */
      replaceChild(newChild, oldChild) {
        return oldChild;
      }
      /**
       * Removes a child node from the DOM.
       * @param {Node} child A Node that is the child node to be removed from the DOM.
       * @returns The removed node.
       */
      removeChild(child) {
        return child;
      }
      toString() {
        return "";
      }
      /* c8 ignore stop */
      hasChildNodes() {
        return !!this.lastChild;
      }
      isSameNode(node) {
        return this === node;
      }
      // TODO: attributes?
      compareDocumentPosition(target) {
        let result = 0;
        if (this !== target) {
          let self2 = getParentNodeCount(this);
          let other = getParentNodeCount(target);
          if (self2 < other) {
            result += DOCUMENT_POSITION_FOLLOWING;
            if (this.contains(target))
              result += DOCUMENT_POSITION_CONTAINED_BY;
          } else if (other < self2) {
            result += DOCUMENT_POSITION_PRECEDING;
            if (target.contains(this))
              result += DOCUMENT_POSITION_CONTAINS;
          } else if (self2 && other) {
            const { childNodes } = this.parentNode;
            if (childNodes.indexOf(this) < childNodes.indexOf(target))
              result += DOCUMENT_POSITION_FOLLOWING;
            else
              result += DOCUMENT_POSITION_PRECEDING;
          }
          if (!self2 || !other) {
            result += DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC;
            result += DOCUMENT_POSITION_DISCONNECTED;
          }
        }
        return result;
      }
      isEqualNode(node) {
        if (this === node)
          return true;
        if (this.nodeType === node.nodeType) {
          switch (this.nodeType) {
            case DOCUMENT_NODE:
            case DOCUMENT_FRAGMENT_NODE: {
              const aNodes = this.childNodes;
              const bNodes = node.childNodes;
              return aNodes.length === bNodes.length && aNodes.every((node2, i5) => node2.isEqualNode(bNodes[i5]));
            }
          }
          return this.toString() === node.toString();
        }
        return false;
      }
      /**
       * @protected
       */
      _getParent() {
        return this.parentNode;
      }
      /**
       * Calling it on an element inside a standard web page will return an HTMLDocument object representing the entire page (or <iframe>).
       * Calling it on an element inside a shadow DOM will return the associated ShadowRoot.
       * @return {ShadowRoot | HTMLDocument}
       */
      getRootNode() {
        let root = this;
        while (root.parentNode)
          root = root.parentNode;
        return root;
      }
    };
    exports.Node = Node;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/text-escaper.js
var require_text_escaper = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/text-escaper.js"(exports) {
    "use strict";
    var { replace } = "";
    var ca = /[<>&\xA0]/g;
    var esca = {
      "\xA0": "&#160;",
      "&": "&amp;",
      "<": "&lt;",
      ">": "&gt;"
    };
    var pe = (m3) => esca[m3];
    var escape2 = (es) => replace.call(es, ca, pe);
    exports.escape = escape2;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/attr.js
var require_attr = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/attr.js"(exports) {
    "use strict";
    var { ATTRIBUTE_NODE } = require_constants16();
    var { CHANGED, VALUE } = require_symbols3();
    var { String: String2, ignoreCase } = require_utils21();
    var { attrAsJSON } = require_jsdon();
    var { emptyAttributes } = require_attributes6();
    var { attributeChangedCallback: moAttributes } = require_mutation_observer();
    var { attributeChangedCallback: ceAttributes } = require_custom_element_registry();
    var { Node } = require_node6();
    var { escape: escape2 } = require_text_escaper();
    var QUOTE = /"/g;
    var Attr = class _Attr extends Node {
      constructor(ownerDocument, name, value2 = "") {
        super(ownerDocument, name, ATTRIBUTE_NODE);
        this.ownerElement = null;
        this.name = String2(name);
        this[VALUE] = String2(value2);
        this[CHANGED] = false;
      }
      get value() {
        return this[VALUE];
      }
      set value(newValue) {
        const { [VALUE]: oldValue, name, ownerElement } = this;
        this[VALUE] = String2(newValue);
        this[CHANGED] = true;
        if (ownerElement) {
          moAttributes(ownerElement, name, oldValue);
          ceAttributes(ownerElement, name, oldValue, this[VALUE]);
        }
      }
      cloneNode() {
        const { ownerDocument, name, [VALUE]: value2 } = this;
        return new _Attr(ownerDocument, name, value2);
      }
      toString() {
        const { name, [VALUE]: value2 } = this;
        if (emptyAttributes.has(name) && !value2) {
          return ignoreCase(this) ? name : `${name}=""`;
        }
        const escapedValue = (ignoreCase(this) ? value2 : escape2(value2)).replace(QUOTE, "&quot;");
        return `${name}="${escapedValue}"`;
      }
      toJSON() {
        const json = [];
        attrAsJSON(this, json);
        return json;
      }
    };
    exports.Attr = Attr;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/node.js
var require_node7 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/node.js"(exports) {
    "use strict";
    var {
      CDATA_SECTION_NODE,
      COMMENT_NODE,
      DOCUMENT_NODE,
      DOCUMENT_FRAGMENT_NODE,
      TEXT_NODE,
      NODE_END
    } = require_constants16();
    var { START, NEXT, PREV } = require_symbols3();
    var { getEnd } = require_utils21();
    var isConnected = ({ ownerDocument, parentNode }) => {
      while (parentNode) {
        if (parentNode === ownerDocument)
          return true;
        parentNode = parentNode.parentNode || parentNode.host;
      }
      return false;
    };
    exports.isConnected = isConnected;
    var parentElement = ({ parentNode }) => {
      if (parentNode) {
        switch (parentNode.nodeType) {
          case DOCUMENT_NODE:
          case DOCUMENT_FRAGMENT_NODE:
            return null;
        }
      }
      return parentNode;
    };
    exports.parentElement = parentElement;
    var previousSibling = ({ [PREV]: prev }) => {
      switch (prev ? prev.nodeType : 0) {
        case NODE_END:
          return prev[START];
        case TEXT_NODE:
        case COMMENT_NODE:
        case CDATA_SECTION_NODE:
          return prev;
      }
      return null;
    };
    exports.previousSibling = previousSibling;
    var nextSibling = (node) => {
      const next = getEnd(node)[NEXT];
      return next && (next.nodeType === NODE_END ? null : next);
    };
    exports.nextSibling = nextSibling;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/mixin/non-document-type-child-node.js
var require_non_document_type_child_node = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/mixin/non-document-type-child-node.js"(exports) {
    "use strict";
    var { ELEMENT_NODE } = require_constants16();
    var { nextSibling, previousSibling } = require_node7();
    var nextElementSibling = (node) => {
      let next = nextSibling(node);
      while (next && next.nodeType !== ELEMENT_NODE)
        next = nextSibling(next);
      return next;
    };
    exports.nextElementSibling = nextElementSibling;
    var previousElementSibling = (node) => {
      let prev = previousSibling(node);
      while (prev && prev.nodeType !== ELEMENT_NODE)
        prev = previousSibling(prev);
      return prev;
    };
    exports.previousElementSibling = previousElementSibling;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/mixin/child-node.js
var require_child_node = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/mixin/child-node.js"(exports) {
    "use strict";
    var { ELEMENT_NODE } = require_constants16();
    var { NEXT, PREV } = require_symbols3();
    var { getEnd, setAdjacent } = require_utils21();
    var { moCallback } = require_mutation_observer();
    var { disconnectedCallback } = require_custom_element_registry();
    var asFragment = (ownerDocument, nodes) => {
      const fragment = ownerDocument.createDocumentFragment();
      fragment.append(...nodes);
      return fragment;
    };
    var before = (node, nodes) => {
      const { ownerDocument, parentNode } = node;
      if (parentNode)
        parentNode.insertBefore(
          asFragment(ownerDocument, nodes),
          node
        );
    };
    exports.before = before;
    var after = (node, nodes) => {
      const { ownerDocument, parentNode } = node;
      if (parentNode)
        parentNode.insertBefore(
          asFragment(ownerDocument, nodes),
          getEnd(node)[NEXT]
        );
    };
    exports.after = after;
    var replaceWith = (node, nodes) => {
      const { ownerDocument, parentNode } = node;
      if (parentNode) {
        if (nodes.includes(node))
          replaceWith(node, [node = node.cloneNode()]);
        parentNode.insertBefore(
          asFragment(ownerDocument, nodes),
          node
        );
        node.remove();
      }
    };
    exports.replaceWith = replaceWith;
    var remove = (prev, current, next) => {
      const { parentNode, nodeType } = current;
      if (prev || next) {
        setAdjacent(prev, next);
        current[PREV] = null;
        getEnd(current)[NEXT] = null;
      }
      if (parentNode) {
        current.parentNode = null;
        moCallback(current, parentNode);
        if (nodeType === ELEMENT_NODE)
          disconnectedCallback(current);
      }
    };
    exports.remove = remove;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/character-data.js
var require_character_data = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/character-data.js"(exports) {
    "use strict";
    var { NEXT, PREV, VALUE } = require_symbols3();
    var { String: String2 } = require_utils21();
    var { isConnected, parentElement, previousSibling, nextSibling } = require_node7();
    var { characterDataAsJSON } = require_jsdon();
    var { previousElementSibling, nextElementSibling } = require_non_document_type_child_node();
    var { before, after, replaceWith, remove } = require_child_node();
    var { Node } = require_node6();
    var { moCallback } = require_mutation_observer();
    var CharacterData = class extends Node {
      constructor(ownerDocument, localName, nodeType, data2) {
        super(ownerDocument, localName, nodeType);
        this[VALUE] = String2(data2);
      }
      // <Mixins>
      get isConnected() {
        return isConnected(this);
      }
      get parentElement() {
        return parentElement(this);
      }
      get previousSibling() {
        return previousSibling(this);
      }
      get nextSibling() {
        return nextSibling(this);
      }
      get previousElementSibling() {
        return previousElementSibling(this);
      }
      get nextElementSibling() {
        return nextElementSibling(this);
      }
      before(...nodes) {
        before(this, nodes);
      }
      after(...nodes) {
        after(this, nodes);
      }
      replaceWith(...nodes) {
        replaceWith(this, nodes);
      }
      remove() {
        remove(this[PREV], this, this[NEXT]);
      }
      // </Mixins>
      // CharacterData only
      /* c8 ignore start */
      get data() {
        return this[VALUE];
      }
      set data(value2) {
        this[VALUE] = String2(value2);
        moCallback(this, this.parentNode);
      }
      get nodeValue() {
        return this.data;
      }
      set nodeValue(value2) {
        this.data = value2;
      }
      get textContent() {
        return this.data;
      }
      set textContent(value2) {
        this.data = value2;
      }
      get length() {
        return this.data.length;
      }
      substringData(offset2, count) {
        return this.data.substr(offset2, count);
      }
      appendData(data2) {
        this.data += data2;
      }
      insertData(offset2, data2) {
        const { data: t4 } = this;
        this.data = t4.slice(0, offset2) + data2 + t4.slice(offset2);
      }
      deleteData(offset2, count) {
        const { data: t4 } = this;
        this.data = t4.slice(0, offset2) + t4.slice(offset2 + count);
      }
      replaceData(offset2, count, data2) {
        const { data: t4 } = this;
        this.data = t4.slice(0, offset2) + data2 + t4.slice(offset2 + count);
      }
      /* c8 ignore stop */
      toJSON() {
        const json = [];
        characterDataAsJSON(this, json);
        return json;
      }
    };
    exports.CharacterData = CharacterData;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/matches.js
var require_matches = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/matches.js"(exports) {
    "use strict";
    var CSSselect = require_lib9();
    var { ELEMENT_NODE, TEXT_NODE } = require_constants16();
    var { ignoreCase } = require_utils21();
    var { isArray: isArray3 } = Array;
    var isTag = ({ nodeType }) => nodeType === ELEMENT_NODE;
    var existsOne = (test3, elements) => elements.some(
      (element) => isTag(element) && (test3(element) || existsOne(test3, getChildren(element)))
    );
    var getAttributeValue = (element, name) => name === "class" ? element.classList.value : element.getAttribute(name);
    var getChildren = ({ childNodes }) => childNodes;
    var getName = (element) => {
      const { localName } = element;
      return ignoreCase(element) ? localName.toLowerCase() : localName;
    };
    var getParent = ({ parentNode }) => parentNode;
    var getSiblings = (element) => {
      const { parentNode } = element;
      return parentNode ? getChildren(parentNode) : element;
    };
    var getText = (node) => {
      if (isArray3(node))
        return node.map(getText).join("");
      if (isTag(node))
        return getText(getChildren(node));
      if (node.nodeType === TEXT_NODE)
        return node.data;
      return "";
    };
    var hasAttrib = (element, name) => element.hasAttribute(name);
    var removeSubsets = (nodes) => {
      let { length: length2 } = nodes;
      while (length2--) {
        const node = nodes[length2];
        if (length2 && -1 < nodes.lastIndexOf(node, length2 - 1)) {
          nodes.splice(length2, 1);
          continue;
        }
        for (let { parentNode } = node; parentNode; parentNode = parentNode.parentNode) {
          if (nodes.includes(parentNode)) {
            nodes.splice(length2, 1);
            break;
          }
        }
      }
      return nodes;
    };
    var findAll = (test3, nodes) => {
      const matches2 = [];
      for (const node of nodes) {
        if (isTag(node)) {
          if (test3(node))
            matches2.push(node);
          matches2.push(...findAll(test3, getChildren(node)));
        }
      }
      return matches2;
    };
    var findOne = (test3, nodes) => {
      for (let node of nodes)
        if (test3(node) || (node = findOne(test3, getChildren(node))))
          return node;
      return null;
    };
    var adapter2 = {
      isTag,
      existsOne,
      getAttributeValue,
      getChildren,
      getName,
      getParent,
      getSiblings,
      getText,
      hasAttrib,
      removeSubsets,
      findAll,
      findOne
    };
    var prepareMatch = (element, selectors) => CSSselect.compile(
      selectors,
      {
        context: selectors.includes(":scope") ? element : void 0,
        xmlMode: !ignoreCase(element),
        adapter: adapter2
      }
    );
    exports.prepareMatch = prepareMatch;
    var matches = (element, selectors) => CSSselect.is(
      element,
      selectors,
      {
        strict: true,
        context: selectors.includes(":scope") ? element : void 0,
        xmlMode: !ignoreCase(element),
        adapter: adapter2
      }
    );
    exports.matches = matches;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/parse-from-string.js
var require_parse_from_string = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/parse-from-string.js"(exports) {
    "use strict";
    var HTMLParser2 = require_commonjs4();
    var { ELEMENT_NODE, SVG_NAMESPACE } = require_constants16();
    var { CUSTOM_ELEMENTS, PREV, END, VALUE } = require_symbols3();
    var { keys: keys2 } = require_object2();
    var { knownBoundaries, knownSiblings } = require_utils21();
    var { attributeChangedCallback, connectedCallback } = require_custom_element_registry();
    var { Parser } = HTMLParser2;
    var notParsing = true;
    var append3 = (self2, node, active) => {
      const end2 = self2[END];
      node.parentNode = self2;
      knownBoundaries(end2[PREV], node, end2);
      if (active && node.nodeType === ELEMENT_NODE)
        connectedCallback(node);
      return node;
    };
    var attribute = (element, end2, attribute2, value2, active) => {
      attribute2[VALUE] = value2;
      attribute2.ownerElement = element;
      knownSiblings(end2[PREV], attribute2, end2);
      if (attribute2.name === "class")
        element.className = value2;
      if (active)
        attributeChangedCallback(element, attribute2.name, null, value2);
    };
    var isNotParsing = () => notParsing;
    exports.isNotParsing = isNotParsing;
    var parseFromString = (document2, isHTML, markupLanguage) => {
      const { active, registry } = document2[CUSTOM_ELEMENTS];
      let node = document2;
      let ownerSVGElement = null;
      let parsingCData = false;
      notParsing = false;
      const content = new Parser({
        // <!DOCTYPE ...>
        onprocessinginstruction(name, data2) {
          if (name.toLowerCase() === "!doctype")
            document2.doctype = data2.slice(name.length).trim();
        },
        // <tagName>
        onopentag(name, attributes2) {
          let create2 = true;
          if (isHTML) {
            if (ownerSVGElement) {
              node = append3(node, document2.createElementNS(SVG_NAMESPACE, name), active);
              node.ownerSVGElement = ownerSVGElement;
              create2 = false;
            } else if (name === "svg" || name === "SVG") {
              ownerSVGElement = document2.createElementNS(SVG_NAMESPACE, name);
              node = append3(node, ownerSVGElement, active);
              create2 = false;
            } else if (active) {
              const ce = name.includes("-") ? name : attributes2.is || "";
              if (ce && registry.has(ce)) {
                const { Class } = registry.get(ce);
                node = append3(node, new Class(), active);
                delete attributes2.is;
                create2 = false;
              }
            }
          }
          if (create2)
            node = append3(node, document2.createElement(name), false);
          let end2 = node[END];
          for (const name2 of keys2(attributes2))
            attribute(node, end2, document2.createAttribute(name2), attributes2[name2], active);
        },
        // #text, #comment
        oncomment(data2) {
          append3(node, document2.createComment(data2), active);
        },
        ontext(text) {
          if (parsingCData) {
            append3(node, document2.createCDATASection(text), active);
          } else {
            append3(node, document2.createTextNode(text), active);
          }
        },
        // #cdata
        oncdatastart() {
          parsingCData = true;
        },
        oncdataend() {
          parsingCData = false;
        },
        // </tagName>
        onclosetag() {
          if (isHTML && node === ownerSVGElement)
            ownerSVGElement = null;
          node = node.parentNode;
        }
      }, {
        lowerCaseAttributeNames: false,
        decodeEntities: true,
        xmlMode: !isHTML
      });
      content.write(markupLanguage);
      content.end();
      notParsing = true;
      return document2;
    };
    exports.parseFromString = parseFromString;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/mixin/inner-html.js
var require_inner_html = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/mixin/inner-html.js"(exports) {
    "use strict";
    var { ELEMENT_NODE, DOCUMENT_FRAGMENT_NODE } = require_constants16();
    var { CUSTOM_ELEMENTS } = require_symbols3();
    var { parseFromString } = require_parse_from_string();
    var { ignoreCase } = require_utils21();
    var getInnerHtml = (node) => node.childNodes.join("");
    exports.getInnerHtml = getInnerHtml;
    var setInnerHtml = (node, html) => {
      const { ownerDocument } = node;
      const { constructor } = ownerDocument;
      const document2 = new constructor();
      document2[CUSTOM_ELEMENTS] = ownerDocument[CUSTOM_ELEMENTS];
      const { childNodes } = parseFromString(document2, ignoreCase(node), html);
      node.replaceChildren(...childNodes.map(setOwnerDocument, ownerDocument));
    };
    exports.setInnerHtml = setInnerHtml;
    function setOwnerDocument(node) {
      node.ownerDocument = this;
      switch (node.nodeType) {
        case ELEMENT_NODE:
        case DOCUMENT_FRAGMENT_NODE:
          node.childNodes.forEach(setOwnerDocument, this);
          break;
      }
      return node;
    }
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/text.js
var require_text2 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/text.js"(exports) {
    "use strict";
    var { TEXT_NODE } = require_constants16();
    var { VALUE } = require_symbols3();
    var { escape: escape2 } = require_text_escaper();
    var { CharacterData } = require_character_data();
    var Text2 = class _Text extends CharacterData {
      constructor(ownerDocument, data2 = "") {
        super(ownerDocument, "#text", TEXT_NODE, data2);
      }
      get wholeText() {
        const text = [];
        let { previousSibling, nextSibling } = this;
        while (previousSibling) {
          if (previousSibling.nodeType === TEXT_NODE)
            text.unshift(previousSibling[VALUE]);
          else
            break;
          previousSibling = previousSibling.previousSibling;
        }
        text.push(this[VALUE]);
        while (nextSibling) {
          if (nextSibling.nodeType === TEXT_NODE)
            text.push(nextSibling[VALUE]);
          else
            break;
          nextSibling = nextSibling.nextSibling;
        }
        return text.join("");
      }
      cloneNode() {
        const { ownerDocument, [VALUE]: data2 } = this;
        return new _Text(ownerDocument, data2);
      }
      toString() {
        return escape2(this[VALUE]);
      }
    };
    exports.Text = Text2;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/mixin/parent-node.js
var require_parent_node = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/mixin/parent-node.js"(exports) {
    "use strict";
    var {
      ATTRIBUTE_NODE,
      DOCUMENT_FRAGMENT_NODE,
      ELEMENT_NODE,
      TEXT_NODE,
      NODE_END,
      CDATA_SECTION_NODE,
      COMMENT_NODE
    } = require_constants16();
    var { PRIVATE, END, NEXT, PREV, START, VALUE } = require_symbols3();
    var { prepareMatch } = require_matches();
    var { previousSibling, nextSibling } = require_node7();
    var { getEnd, knownAdjacent, knownBoundaries, knownSegment, knownSiblings, localCase } = require_utils21();
    var { Node } = require_node6();
    var { Text: Text2 } = require_text2();
    var { NodeList } = require_node_list();
    var { moCallback } = require_mutation_observer();
    var { connectedCallback } = require_custom_element_registry();
    var { nextElementSibling } = require_non_document_type_child_node();
    var isNode = (node) => node instanceof Node;
    var insert2 = (parentNode, child, nodes) => {
      const { ownerDocument } = parentNode;
      for (const node of nodes)
        parentNode.insertBefore(
          isNode(node) ? node : new Text2(ownerDocument, node),
          child
        );
    };
    var ParentNode = class extends Node {
      constructor(ownerDocument, localName, nodeType) {
        super(ownerDocument, localName, nodeType);
        this[PRIVATE] = null;
        this[NEXT] = this[END] = {
          [NEXT]: null,
          [PREV]: this,
          [START]: this,
          nodeType: NODE_END,
          ownerDocument: this.ownerDocument,
          parentNode: null
        };
      }
      get childNodes() {
        const childNodes = new NodeList();
        let { firstChild } = this;
        while (firstChild) {
          childNodes.push(firstChild);
          firstChild = nextSibling(firstChild);
        }
        return childNodes;
      }
      get children() {
        const children = new NodeList();
        let { firstElementChild } = this;
        while (firstElementChild) {
          children.push(firstElementChild);
          firstElementChild = nextElementSibling(firstElementChild);
        }
        return children;
      }
      /**
       * @returns {NodeStruct | null}
       */
      get firstChild() {
        let { [NEXT]: next, [END]: end2 } = this;
        while (next.nodeType === ATTRIBUTE_NODE)
          next = next[NEXT];
        return next === end2 ? null : next;
      }
      /**
       * @returns {NodeStruct | null}
       */
      get firstElementChild() {
        let { firstChild } = this;
        while (firstChild) {
          if (firstChild.nodeType === ELEMENT_NODE)
            return firstChild;
          firstChild = nextSibling(firstChild);
        }
        return null;
      }
      get lastChild() {
        const prev = this[END][PREV];
        switch (prev.nodeType) {
          case NODE_END:
            return prev[START];
          case ATTRIBUTE_NODE:
            return null;
        }
        return prev === this ? null : prev;
      }
      get lastElementChild() {
        let { lastChild } = this;
        while (lastChild) {
          if (lastChild.nodeType === ELEMENT_NODE)
            return lastChild;
          lastChild = previousSibling(lastChild);
        }
        return null;
      }
      get childElementCount() {
        return this.children.length;
      }
      prepend(...nodes) {
        insert2(this, this.firstChild, nodes);
      }
      append(...nodes) {
        insert2(this, this[END], nodes);
      }
      replaceChildren(...nodes) {
        let { [NEXT]: next, [END]: end2 } = this;
        while (next !== end2 && next.nodeType === ATTRIBUTE_NODE)
          next = next[NEXT];
        while (next !== end2) {
          const after = getEnd(next)[NEXT];
          next.remove();
          next = after;
        }
        if (nodes.length)
          insert2(this, end2, nodes);
      }
      getElementsByClassName(className) {
        const elements = new NodeList();
        let { [NEXT]: next, [END]: end2 } = this;
        while (next !== end2) {
          if (next.nodeType === ELEMENT_NODE && next.hasAttribute("class") && next.classList.has(className))
            elements.push(next);
          next = next[NEXT];
        }
        return elements;
      }
      getElementsByTagName(tagName) {
        const elements = new NodeList();
        let { [NEXT]: next, [END]: end2 } = this;
        while (next !== end2) {
          if (next.nodeType === ELEMENT_NODE && (next.localName === tagName || localCase(next) === tagName))
            elements.push(next);
          next = next[NEXT];
        }
        return elements;
      }
      querySelector(selectors) {
        const matches = prepareMatch(this, selectors);
        let { [NEXT]: next, [END]: end2 } = this;
        while (next !== end2) {
          if (next.nodeType === ELEMENT_NODE && matches(next))
            return next;
          next = next.nodeType === ELEMENT_NODE && next.localName === "template" ? next[END] : next[NEXT];
        }
        return null;
      }
      querySelectorAll(selectors) {
        const matches = prepareMatch(this, selectors);
        const elements = new NodeList();
        let { [NEXT]: next, [END]: end2 } = this;
        while (next !== end2) {
          if (next.nodeType === ELEMENT_NODE && matches(next))
            elements.push(next);
          next = next.nodeType === ELEMENT_NODE && next.localName === "template" ? next[END] : next[NEXT];
        }
        return elements;
      }
      appendChild(node) {
        return this.insertBefore(node, this[END]);
      }
      contains(node) {
        let parentNode = node;
        while (parentNode && parentNode !== this)
          parentNode = parentNode.parentNode;
        return parentNode === this;
      }
      insertBefore(node, before = null) {
        if (node === before)
          return node;
        if (node === this)
          throw new Error("unable to append a node to itself");
        const next = before || this[END];
        switch (node.nodeType) {
          case ELEMENT_NODE:
            node.remove();
            node.parentNode = this;
            knownBoundaries(next[PREV], node, next);
            moCallback(node, null);
            connectedCallback(node);
            break;
          case DOCUMENT_FRAGMENT_NODE: {
            let { [PRIVATE]: parentNode, firstChild, lastChild } = node;
            if (firstChild) {
              knownSegment(next[PREV], firstChild, lastChild, next);
              knownAdjacent(node, node[END]);
              if (parentNode)
                parentNode.replaceChildren();
              do {
                firstChild.parentNode = this;
                moCallback(firstChild, null);
                if (firstChild.nodeType === ELEMENT_NODE)
                  connectedCallback(firstChild);
              } while (firstChild !== lastChild && (firstChild = nextSibling(firstChild)));
            }
            break;
          }
          case TEXT_NODE:
          case COMMENT_NODE:
          case CDATA_SECTION_NODE:
            node.remove();
          /* eslint no-fallthrough:0 */
          // this covers DOCUMENT_TYPE_NODE too
          default:
            node.parentNode = this;
            knownSiblings(next[PREV], node, next);
            moCallback(node, null);
            break;
        }
        return node;
      }
      normalize() {
        let { [NEXT]: next, [END]: end2 } = this;
        while (next !== end2) {
          const { [NEXT]: $next, [PREV]: $prev, nodeType } = next;
          if (nodeType === TEXT_NODE) {
            if (!next[VALUE])
              next.remove();
            else if ($prev && $prev.nodeType === TEXT_NODE) {
              $prev.textContent += next.textContent;
              next.remove();
            }
          }
          next = $next;
        }
      }
      removeChild(node) {
        if (node.parentNode !== this)
          throw new Error("node is not a child");
        node.remove();
        return node;
      }
      replaceChild(node, replaced) {
        const next = getEnd(replaced)[NEXT];
        replaced.remove();
        this.insertBefore(node, next);
        return replaced;
      }
    };
    exports.ParentNode = ParentNode;
  }
});

// ../../node_modules/.pnpm/uhyphen@0.2.0/node_modules/uhyphen/cjs/index.js
var require_cjs15 = __commonJS({
  "../../node_modules/.pnpm/uhyphen@0.2.0/node_modules/uhyphen/cjs/index.js"(exports, module) {
    "use strict";
    module.exports = (camel) => camel.replace(/(([A-Z0-9])([A-Z0-9][a-z]))|(([a-z0-9]+)([A-Z]))/g, "$2$5-$3$6").toLowerCase();
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/dom/string-map.js
var require_string_map = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/dom/string-map.js"(exports) {
    "use strict";
    var uhyphen = ((m3) => (
      /* c8 ignore start */
      m3.__esModule ? m3.default : m3
    ))(require_cjs15());
    var { setPrototypeOf } = require_object2();
    var refs = /* @__PURE__ */ new WeakMap();
    var key = (name) => `data-${uhyphen(name)}`;
    var prop = (name) => name.slice(5).replace(/-([a-z])/g, (_, $1) => $1.toUpperCase());
    var handler = {
      get(dataset, name) {
        if (name in dataset)
          return refs.get(dataset).getAttribute(key(name));
      },
      set(dataset, name, value2) {
        dataset[name] = value2;
        refs.get(dataset).setAttribute(key(name), value2);
        return true;
      },
      deleteProperty(dataset, name) {
        if (name in dataset)
          refs.get(dataset).removeAttribute(key(name));
        return delete dataset[name];
      }
    };
    var DOMStringMap = class {
      /**
       * @param {Element} ref
       */
      constructor(ref) {
        for (const { name, value: value2 } of ref.attributes) {
          if (/^data-/.test(name))
            this[prop(name)] = value2;
        }
        refs.set(this, ref);
        return new Proxy(this, handler);
      }
    };
    exports.DOMStringMap = DOMStringMap;
    setPrototypeOf(DOMStringMap.prototype, null);
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/dom/token-list.js
var require_token_list = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/dom/token-list.js"(exports) {
    "use strict";
    var { OWNER_ELEMENT } = require_symbols3();
    var { setAttribute } = require_attributes6();
    var { Attr } = require_attr();
    var { add: add2 } = Set.prototype;
    var addTokens = (self2, tokens) => {
      for (const token of tokens) {
        if (token)
          add2.call(self2, token);
      }
    };
    var update = ({ [OWNER_ELEMENT]: ownerElement, value: value2 }) => {
      const attribute = ownerElement.getAttributeNode("class");
      if (attribute)
        attribute.value = value2;
      else
        setAttribute(
          ownerElement,
          new Attr(ownerElement.ownerDocument, "class", value2)
        );
    };
    var DOMTokenList = class extends Set {
      constructor(ownerElement) {
        super();
        this[OWNER_ELEMENT] = ownerElement;
        const attribute = ownerElement.getAttributeNode("class");
        if (attribute)
          addTokens(this, attribute.value.split(/\s+/));
      }
      get length() {
        return this.size;
      }
      get value() {
        return [...this].join(" ");
      }
      /**
       * @param  {...string} tokens
       */
      add(...tokens) {
        addTokens(this, tokens);
        update(this);
      }
      /**
       * @param {string} token
       */
      contains(token) {
        return this.has(token);
      }
      /**
       * @param  {...string} tokens
       */
      remove(...tokens) {
        for (const token of tokens)
          this.delete(token);
        update(this);
      }
      /**
       * @param {string} token
       * @param {boolean?} force
       */
      toggle(token, force) {
        if (this.has(token)) {
          if (force)
            return true;
          this.delete(token);
          update(this);
        } else if (force || arguments.length === 1) {
          super.add(token);
          update(this);
          return true;
        }
        return false;
      }
      /**
       * @param {string} token
       * @param {string} newToken
       */
      replace(token, newToken) {
        if (this.has(token)) {
          this.delete(token);
          super.add(newToken);
          update(this);
          return true;
        }
        return false;
      }
      /**
       * @param {string} token
       */
      supports() {
        return true;
      }
    };
    exports.DOMTokenList = DOMTokenList;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/css-style-declaration.js
var require_css_style_declaration = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/css-style-declaration.js"(exports) {
    "use strict";
    var uhyphen = ((m3) => (
      /* c8 ignore start */
      m3.__esModule ? m3.default : m3
    ))(require_cjs15());
    var { CHANGED, PRIVATE, VALUE } = require_symbols3();
    var refs = /* @__PURE__ */ new WeakMap();
    var getKeys = (style) => [...style.keys()].filter((key) => key !== PRIVATE);
    var updateKeys = (style) => {
      const attr = refs.get(style).getAttributeNode("style");
      if (!attr || attr[CHANGED] || style.get(PRIVATE) !== attr) {
        style.clear();
        if (attr) {
          style.set(PRIVATE, attr);
          for (const rule of attr[VALUE].split(/\s*;\s*/)) {
            let [key, ...rest] = rule.split(":");
            if (rest.length > 0) {
              key = key.trim();
              const value2 = rest.join(":").trim();
              if (key && value2)
                style.set(key, value2);
            }
          }
        }
      }
      return attr;
    };
    var handler = {
      get(style, name) {
        if (name in prototype2)
          return style[name];
        updateKeys(style);
        if (name === "length")
          return getKeys(style).length;
        if (/^\d+$/.test(name))
          return getKeys(style)[name];
        return style.get(uhyphen(name));
      },
      set(style, name, value2) {
        if (name === "cssText")
          style[name] = value2;
        else {
          let attr = updateKeys(style);
          if (value2 == null)
            style.delete(uhyphen(name));
          else
            style.set(uhyphen(name), value2);
          if (!attr) {
            const element = refs.get(style);
            attr = element.ownerDocument.createAttribute("style");
            element.setAttributeNode(attr);
            style.set(PRIVATE, attr);
          }
          attr[CHANGED] = false;
          attr[VALUE] = style.toString();
        }
        return true;
      }
    };
    var CSSStyleDeclaration = class extends Map {
      constructor(element) {
        super();
        refs.set(this, element);
        return new Proxy(this, handler);
      }
      get cssText() {
        return this.toString();
      }
      set cssText(value2) {
        refs.get(this).setAttribute("style", value2);
      }
      getPropertyValue(name) {
        const self2 = this[PRIVATE];
        return handler.get(self2, name);
      }
      setProperty(name, value2) {
        const self2 = this[PRIVATE];
        handler.set(self2, name, value2);
      }
      removeProperty(name) {
        const self2 = this[PRIVATE];
        handler.set(self2, name, null);
      }
      [Symbol.iterator]() {
        const self2 = this[PRIVATE];
        updateKeys(self2);
        const keys2 = getKeys(self2);
        const { length: length2 } = keys2;
        let i5 = 0;
        return {
          next() {
            const done = i5 === length2;
            return { done, value: done ? null : keys2[i5++] };
          }
        };
      }
      get [PRIVATE]() {
        return this;
      }
      toString() {
        const self2 = this[PRIVATE];
        updateKeys(self2);
        const cssText = [];
        self2.forEach(push, cssText);
        return cssText.join(";");
      }
    };
    exports.CSSStyleDeclaration = CSSStyleDeclaration;
    var { prototype: prototype2 } = CSSStyleDeclaration;
    function push(value2, key) {
      if (key !== PRIVATE)
        this.push(`${key}:${value2}`);
    }
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/event.js
var require_event = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/event.js"(exports) {
    "use strict";
    var BUBBLING_PHASE = 3;
    var AT_TARGET = 2;
    var CAPTURING_PHASE = 1;
    var NONE = 0;
    function getCurrentTarget(ev) {
      return ev.currentTarget;
    }
    var GlobalEvent = class {
      static get BUBBLING_PHASE() {
        return BUBBLING_PHASE;
      }
      static get AT_TARGET() {
        return AT_TARGET;
      }
      static get CAPTURING_PHASE() {
        return CAPTURING_PHASE;
      }
      static get NONE() {
        return NONE;
      }
      constructor(type, eventInitDict = {}) {
        this.type = type;
        this.bubbles = !!eventInitDict.bubbles;
        this.cancelBubble = false;
        this._stopImmediatePropagationFlag = false;
        this.cancelable = !!eventInitDict.cancelable;
        this.eventPhase = this.NONE;
        this.timeStamp = Date.now();
        this.defaultPrevented = false;
        this.originalTarget = null;
        this.returnValue = null;
        this.srcElement = null;
        this.target = null;
        this._path = [];
      }
      get BUBBLING_PHASE() {
        return BUBBLING_PHASE;
      }
      get AT_TARGET() {
        return AT_TARGET;
      }
      get CAPTURING_PHASE() {
        return CAPTURING_PHASE;
      }
      get NONE() {
        return NONE;
      }
      preventDefault() {
        this.defaultPrevented = true;
      }
      // simplified implementation, should be https://dom.spec.whatwg.org/#dom-event-composedpath
      composedPath() {
        return this._path.map(getCurrentTarget);
      }
      stopPropagation() {
        this.cancelBubble = true;
      }
      stopImmediatePropagation() {
        this.stopPropagation();
        this._stopImmediatePropagationFlag = true;
      }
    };
    exports.Event = GlobalEvent;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/named-node-map.js
var require_named_node_map = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/named-node-map.js"(exports) {
    "use strict";
    var NamedNodeMap = class extends Array {
      constructor(ownerElement) {
        super();
        this.ownerElement = ownerElement;
      }
      getNamedItem(name) {
        return this.ownerElement.getAttributeNode(name);
      }
      setNamedItem(attr) {
        this.ownerElement.setAttributeNode(attr);
        this.unshift(attr);
      }
      removeNamedItem(name) {
        const item = this.getNamedItem(name);
        this.ownerElement.removeAttribute(name);
        this.splice(this.indexOf(item), 1);
      }
      item(index2) {
        return index2 < this.length ? this[index2] : null;
      }
      /* c8 ignore start */
      getNamedItemNS(_, name) {
        return this.getNamedItem(name);
      }
      setNamedItemNS(_, attr) {
        return this.setNamedItem(attr);
      }
      removeNamedItemNS(_, name) {
        return this.removeNamedItem(name);
      }
      /* c8 ignore stop */
    };
    exports.NamedNodeMap = NamedNodeMap;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/mixin/non-element-parent-node.js
var require_non_element_parent_node = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/mixin/non-element-parent-node.js"(exports) {
    "use strict";
    var { ELEMENT_NODE } = require_constants16();
    var { END, NEXT } = require_symbols3();
    var { nonElementAsJSON } = require_jsdon();
    var { ParentNode } = require_parent_node();
    var NonElementParentNode = class extends ParentNode {
      getElementById(id) {
        let { [NEXT]: next, [END]: end2 } = this;
        while (next !== end2) {
          if (next.nodeType === ELEMENT_NODE && next.id === id)
            return next;
          next = next[NEXT];
        }
        return null;
      }
      cloneNode(deep) {
        const { ownerDocument, constructor } = this;
        const nonEPN = new constructor(ownerDocument);
        if (deep) {
          const { [END]: end2 } = nonEPN;
          for (const node of this.childNodes)
            nonEPN.insertBefore(node.cloneNode(deep), end2);
        }
        return nonEPN;
      }
      toString() {
        const { childNodes, localName } = this;
        return `<${localName}>${childNodes.join("")}</${localName}>`;
      }
      toJSON() {
        const json = [];
        nonElementAsJSON(this, json);
        return json;
      }
    };
    exports.NonElementParentNode = NonElementParentNode;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/shadow-root.js
var require_shadow_root = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/shadow-root.js"(exports) {
    "use strict";
    var { DOCUMENT_FRAGMENT_NODE } = require_constants16();
    var { getInnerHtml, setInnerHtml } = require_inner_html();
    var { NonElementParentNode } = require_non_element_parent_node();
    var ShadowRoot = class extends NonElementParentNode {
      constructor(host) {
        super(host.ownerDocument, "#shadow-root", DOCUMENT_FRAGMENT_NODE);
        this.host = host;
      }
      get innerHTML() {
        return getInnerHtml(this);
      }
      set innerHTML(html) {
        setInnerHtml(this, html);
      }
    };
    exports.ShadowRoot = ShadowRoot;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/element.js
var require_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/element.js"(exports) {
    "use strict";
    var {
      ATTRIBUTE_NODE,
      BLOCK_ELEMENTS,
      CDATA_SECTION_NODE,
      COMMENT_NODE,
      ELEMENT_NODE,
      NODE_END,
      TEXT_NODE,
      SVG_NAMESPACE
    } = require_constants16();
    var {
      setAttribute,
      removeAttribute,
      numericAttribute,
      stringAttribute
    } = require_attributes6();
    var {
      CLASS_LIST,
      DATASET,
      STYLE,
      END,
      NEXT,
      PREV,
      START,
      MIME
    } = require_symbols3();
    var {
      htmlToFragment,
      ignoreCase,
      knownAdjacent,
      localCase,
      String: String2
    } = require_utils21();
    var { elementAsJSON } = require_jsdon();
    var { matches, prepareMatch } = require_matches();
    var { shadowRoots } = require_shadow_roots();
    var { isConnected, parentElement, previousSibling, nextSibling } = require_node7();
    var { previousElementSibling, nextElementSibling } = require_non_document_type_child_node();
    var { before, after, replaceWith, remove } = require_child_node();
    var { getInnerHtml, setInnerHtml } = require_inner_html();
    var { ParentNode } = require_parent_node();
    var { DOMStringMap } = require_string_map();
    var { DOMTokenList } = require_token_list();
    var { CSSStyleDeclaration } = require_css_style_declaration();
    var { Event: Event2 } = require_event();
    var { NamedNodeMap } = require_named_node_map();
    var { ShadowRoot } = require_shadow_root();
    var { NodeList } = require_node_list();
    var { Attr } = require_attr();
    var { Text: Text2 } = require_text2();
    var { escape: escape2 } = require_text_escaper();
    var attributesHandler = {
      get(target, key) {
        return key in target ? target[key] : target.find(({ name }) => name === key);
      }
    };
    var create2 = (ownerDocument, element, localName) => {
      if ("ownerSVGElement" in element) {
        const svg = ownerDocument.createElementNS(SVG_NAMESPACE, localName);
        svg.ownerSVGElement = element.ownerSVGElement;
        return svg;
      }
      return ownerDocument.createElement(localName);
    };
    var isVoid = ({ localName, ownerDocument }) => {
      return ownerDocument[MIME].voidElements.test(localName);
    };
    var Element2 = class extends ParentNode {
      constructor(ownerDocument, localName) {
        super(ownerDocument, localName, ELEMENT_NODE);
        this[CLASS_LIST] = null;
        this[DATASET] = null;
        this[STYLE] = null;
      }
      // <Mixins>
      get isConnected() {
        return isConnected(this);
      }
      get parentElement() {
        return parentElement(this);
      }
      get previousSibling() {
        return previousSibling(this);
      }
      get nextSibling() {
        return nextSibling(this);
      }
      get namespaceURI() {
        return "http://www.w3.org/1999/xhtml";
      }
      get previousElementSibling() {
        return previousElementSibling(this);
      }
      get nextElementSibling() {
        return nextElementSibling(this);
      }
      before(...nodes) {
        before(this, nodes);
      }
      after(...nodes) {
        after(this, nodes);
      }
      replaceWith(...nodes) {
        replaceWith(this, nodes);
      }
      remove() {
        remove(this[PREV], this, this[END][NEXT]);
      }
      // </Mixins>
      // <specialGetters>
      get id() {
        return stringAttribute.get(this, "id");
      }
      set id(value2) {
        stringAttribute.set(this, "id", value2);
      }
      get className() {
        return this.classList.value;
      }
      set className(value2) {
        const { classList } = this;
        classList.clear();
        classList.add(...String2(value2).split(/\s+/));
      }
      get nodeName() {
        return localCase(this);
      }
      get tagName() {
        return localCase(this);
      }
      get classList() {
        return this[CLASS_LIST] || (this[CLASS_LIST] = new DOMTokenList(this));
      }
      get dataset() {
        return this[DATASET] || (this[DATASET] = new DOMStringMap(this));
      }
      getBoundingClientRect() {
        return {
          x: 0,
          y: 0,
          bottom: 0,
          height: 0,
          left: 0,
          right: 0,
          top: 0,
          width: 0
        };
      }
      get nonce() {
        return stringAttribute.get(this, "nonce");
      }
      set nonce(value2) {
        stringAttribute.set(this, "nonce", value2);
      }
      get style() {
        return this[STYLE] || (this[STYLE] = new CSSStyleDeclaration(this));
      }
      get tabIndex() {
        return numericAttribute.get(this, "tabindex") || -1;
      }
      set tabIndex(value2) {
        numericAttribute.set(this, "tabindex", value2);
      }
      get slot() {
        return stringAttribute.get(this, "slot");
      }
      set slot(value2) {
        stringAttribute.set(this, "slot", value2);
      }
      // </specialGetters>
      // <contentRelated>
      get innerText() {
        const text = [];
        let { [NEXT]: next, [END]: end2 } = this;
        while (next !== end2) {
          if (next.nodeType === TEXT_NODE) {
            text.push(next.textContent.replace(/\s+/g, " "));
          } else if (text.length && next[NEXT] != end2 && BLOCK_ELEMENTS.has(next.tagName)) {
            text.push("\n");
          }
          next = next[NEXT];
        }
        return text.join("");
      }
      /**
       * @returns {String}
       */
      get textContent() {
        const text = [];
        let { [NEXT]: next, [END]: end2 } = this;
        while (next !== end2) {
          const nodeType = next.nodeType;
          if (nodeType === TEXT_NODE || nodeType === CDATA_SECTION_NODE)
            text.push(next.textContent);
          next = next[NEXT];
        }
        return text.join("");
      }
      set textContent(text) {
        this.replaceChildren();
        if (text != null && text !== "")
          this.appendChild(new Text2(this.ownerDocument, text));
      }
      get innerHTML() {
        return getInnerHtml(this);
      }
      set innerHTML(html) {
        setInnerHtml(this, html);
      }
      get outerHTML() {
        return this.toString();
      }
      set outerHTML(html) {
        const template = this.ownerDocument.createElement("");
        template.innerHTML = html;
        this.replaceWith(...template.childNodes);
      }
      // </contentRelated>
      // <attributes>
      get attributes() {
        const attributes2 = new NamedNodeMap(this);
        let next = this[NEXT];
        while (next.nodeType === ATTRIBUTE_NODE) {
          attributes2.push(next);
          next = next[NEXT];
        }
        return new Proxy(attributes2, attributesHandler);
      }
      focus() {
        this.dispatchEvent(new Event2("focus"));
      }
      getAttribute(name) {
        if (name === "class")
          return this.className;
        const attribute = this.getAttributeNode(name);
        return attribute && (ignoreCase(this) ? attribute.value : escape2(attribute.value));
      }
      getAttributeNode(name) {
        let next = this[NEXT];
        while (next.nodeType === ATTRIBUTE_NODE) {
          if (next.name === name)
            return next;
          next = next[NEXT];
        }
        return null;
      }
      getAttributeNames() {
        const attributes2 = new NodeList();
        let next = this[NEXT];
        while (next.nodeType === ATTRIBUTE_NODE) {
          attributes2.push(next.name);
          next = next[NEXT];
        }
        return attributes2;
      }
      hasAttribute(name) {
        return !!this.getAttributeNode(name);
      }
      hasAttributes() {
        return this[NEXT].nodeType === ATTRIBUTE_NODE;
      }
      removeAttribute(name) {
        if (name === "class" && this[CLASS_LIST])
          this[CLASS_LIST].clear();
        let next = this[NEXT];
        while (next.nodeType === ATTRIBUTE_NODE) {
          if (next.name === name) {
            removeAttribute(this, next);
            return;
          }
          next = next[NEXT];
        }
      }
      removeAttributeNode(attribute) {
        let next = this[NEXT];
        while (next.nodeType === ATTRIBUTE_NODE) {
          if (next === attribute) {
            removeAttribute(this, next);
            return;
          }
          next = next[NEXT];
        }
      }
      setAttribute(name, value2) {
        if (name === "class")
          this.className = value2;
        else {
          const attribute = this.getAttributeNode(name);
          if (attribute)
            attribute.value = value2;
          else
            setAttribute(this, new Attr(this.ownerDocument, name, value2));
        }
      }
      setAttributeNode(attribute) {
        const { name } = attribute;
        const previously = this.getAttributeNode(name);
        if (previously !== attribute) {
          if (previously)
            this.removeAttributeNode(previously);
          const { ownerElement } = attribute;
          if (ownerElement)
            ownerElement.removeAttributeNode(attribute);
          setAttribute(this, attribute);
        }
        return previously;
      }
      toggleAttribute(name, force) {
        if (this.hasAttribute(name)) {
          if (!force) {
            this.removeAttribute(name);
            return false;
          }
          return true;
        } else if (force || arguments.length === 1) {
          this.setAttribute(name, "");
          return true;
        }
        return false;
      }
      // </attributes>
      // <ShadowDOM>
      get shadowRoot() {
        if (shadowRoots.has(this)) {
          const { mode, shadowRoot } = shadowRoots.get(this);
          if (mode === "open")
            return shadowRoot;
        }
        return null;
      }
      attachShadow(init3) {
        if (shadowRoots.has(this))
          throw new Error("operation not supported");
        const shadowRoot = new ShadowRoot(this);
        shadowRoots.set(this, {
          mode: init3.mode,
          shadowRoot
        });
        return shadowRoot;
      }
      // </ShadowDOM>
      // <selectors>
      matches(selectors) {
        return matches(this, selectors);
      }
      closest(selectors) {
        let parentElement2 = this;
        const matches2 = prepareMatch(parentElement2, selectors);
        while (parentElement2 && !matches2(parentElement2))
          parentElement2 = parentElement2.parentElement;
        return parentElement2;
      }
      // </selectors>
      // <insertAdjacent>
      insertAdjacentElement(position, element) {
        const { parentElement: parentElement2 } = this;
        switch (position) {
          case "beforebegin":
            if (parentElement2) {
              parentElement2.insertBefore(element, this);
              break;
            }
            return null;
          case "afterbegin":
            this.insertBefore(element, this.firstChild);
            break;
          case "beforeend":
            this.insertBefore(element, null);
            break;
          case "afterend":
            if (parentElement2) {
              parentElement2.insertBefore(element, this.nextSibling);
              break;
            }
            return null;
        }
        return element;
      }
      insertAdjacentHTML(position, html) {
        this.insertAdjacentElement(position, htmlToFragment(this.ownerDocument, html));
      }
      insertAdjacentText(position, text) {
        const node = this.ownerDocument.createTextNode(text);
        this.insertAdjacentElement(position, node);
      }
      // </insertAdjacent>
      cloneNode(deep = false) {
        const { ownerDocument, localName } = this;
        const addNext = (next2) => {
          next2.parentNode = parentNode;
          knownAdjacent($next, next2);
          $next = next2;
        };
        const clone = create2(ownerDocument, this, localName);
        let parentNode = clone, $next = clone;
        let { [NEXT]: next, [END]: prev } = this;
        while (next !== prev && (deep || next.nodeType === ATTRIBUTE_NODE)) {
          switch (next.nodeType) {
            case NODE_END:
              knownAdjacent($next, parentNode[END]);
              $next = parentNode[END];
              parentNode = parentNode.parentNode;
              break;
            case ELEMENT_NODE: {
              const node = create2(ownerDocument, next, next.localName);
              addNext(node);
              parentNode = node;
              break;
            }
            case ATTRIBUTE_NODE: {
              const attr = next.cloneNode(deep);
              attr.ownerElement = parentNode;
              addNext(attr);
              break;
            }
            case TEXT_NODE:
            case COMMENT_NODE:
            case CDATA_SECTION_NODE:
              addNext(next.cloneNode(deep));
              break;
          }
          next = next[NEXT];
        }
        knownAdjacent($next, clone[END]);
        return clone;
      }
      // <custom>
      toString() {
        const out = [];
        const { [END]: end2 } = this;
        let next = { [NEXT]: this };
        let isOpened = false;
        do {
          next = next[NEXT];
          switch (next.nodeType) {
            case ATTRIBUTE_NODE: {
              const attr = " " + next;
              switch (attr) {
                case " id":
                case " class":
                case " style":
                  break;
                default:
                  out.push(attr);
              }
              break;
            }
            case NODE_END: {
              const start2 = next[START];
              if (isOpened) {
                if ("ownerSVGElement" in start2)
                  out.push(" />");
                else if (isVoid(start2))
                  out.push(ignoreCase(start2) ? ">" : " />");
                else
                  out.push(`></${start2.localName}>`);
                isOpened = false;
              } else
                out.push(`</${start2.localName}>`);
              break;
            }
            case ELEMENT_NODE:
              if (isOpened)
                out.push(">");
              if (next.toString !== this.toString) {
                out.push(next.toString());
                next = next[END];
                isOpened = false;
              } else {
                out.push(`<${next.localName}`);
                isOpened = true;
              }
              break;
            case TEXT_NODE:
            case COMMENT_NODE:
            case CDATA_SECTION_NODE:
              out.push((isOpened ? ">" : "") + next);
              isOpened = false;
              break;
          }
        } while (next !== end2);
        return out.join("");
      }
      toJSON() {
        const json = [];
        elementAsJSON(this, json);
        return json;
      }
      // </custom>
      /* c8 ignore start */
      getAttributeNS(_, name) {
        return this.getAttribute(name);
      }
      getElementsByTagNameNS(_, name) {
        return this.getElementsByTagName(name);
      }
      hasAttributeNS(_, name) {
        return this.hasAttribute(name);
      }
      removeAttributeNS(_, name) {
        this.removeAttribute(name);
      }
      setAttributeNS(_, name, value2) {
        this.setAttribute(name, value2);
      }
      setAttributeNodeNS(attr) {
        return this.setAttributeNode(attr);
      }
      /* c8 ignore stop */
    };
    exports.Element = Element2;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/register-html-class.js
var require_register_html_class = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/register-html-class.js"(exports) {
    "use strict";
    var htmlClasses = /* @__PURE__ */ new Map();
    exports.htmlClasses = htmlClasses;
    var registerHTMLClass = (names, Class) => {
      for (const name of [].concat(names)) {
        htmlClasses.set(name, Class);
        htmlClasses.set(name.toUpperCase(), Class);
      }
    };
    exports.registerHTMLClass = registerHTMLClass;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/cdata-section.js
var require_cdata_section = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/cdata-section.js"(exports) {
    "use strict";
    var { CDATA_SECTION_NODE } = require_constants16();
    var { VALUE } = require_symbols3();
    var { CharacterData } = require_character_data();
    var CDATASection = class _CDATASection extends CharacterData {
      constructor(ownerDocument, data2 = "") {
        super(ownerDocument, "#cdatasection", CDATA_SECTION_NODE, data2);
      }
      cloneNode() {
        const { ownerDocument, [VALUE]: data2 } = this;
        return new _CDATASection(ownerDocument, data2);
      }
      toString() {
        return `<![CDATA[${this[VALUE]}]]>`;
      }
    };
    exports.CDATASection = CDATASection;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/comment.js
var require_comment = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/comment.js"(exports) {
    "use strict";
    var { COMMENT_NODE } = require_constants16();
    var { VALUE } = require_symbols3();
    var { CharacterData } = require_character_data();
    var Comment = class _Comment extends CharacterData {
      constructor(ownerDocument, data2 = "") {
        super(ownerDocument, "#comment", COMMENT_NODE, data2);
      }
      cloneNode() {
        const { ownerDocument, [VALUE]: data2 } = this;
        return new _Comment(ownerDocument, data2);
      }
      toString() {
        return `<!--${this[VALUE]}-->`;
      }
    };
    exports.Comment = Comment;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/document-fragment.js
var require_document_fragment = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/document-fragment.js"(exports) {
    "use strict";
    var { DOCUMENT_FRAGMENT_NODE } = require_constants16();
    var { NonElementParentNode } = require_non_element_parent_node();
    var DocumentFragment2 = class extends NonElementParentNode {
      constructor(ownerDocument) {
        super(ownerDocument, "#document-fragment", DOCUMENT_FRAGMENT_NODE);
      }
    };
    exports.DocumentFragment = DocumentFragment2;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/document-type.js
var require_document_type = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/document-type.js"(exports) {
    "use strict";
    var { DOCUMENT_TYPE_NODE } = require_constants16();
    var { documentTypeAsJSON } = require_jsdon();
    var { Node } = require_node6();
    var DocumentType = class _DocumentType extends Node {
      constructor(ownerDocument, name, publicId = "", systemId = "") {
        super(ownerDocument, "#document-type", DOCUMENT_TYPE_NODE);
        this.name = name;
        this.publicId = publicId;
        this.systemId = systemId;
      }
      cloneNode() {
        const { ownerDocument, name, publicId, systemId } = this;
        return new _DocumentType(ownerDocument, name, publicId, systemId);
      }
      toString() {
        const { name, publicId, systemId } = this;
        const hasPublic = 0 < publicId.length;
        const str = [name];
        if (hasPublic)
          str.push("PUBLIC", `"${publicId}"`);
        if (systemId.length) {
          if (!hasPublic)
            str.push("SYSTEM");
          str.push(`"${systemId}"`);
        }
        return `<!DOCTYPE ${str.join(" ")}>`;
      }
      toJSON() {
        const json = [];
        documentTypeAsJSON(this, json);
        return json;
      }
    };
    exports.DocumentType = DocumentType;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/svg/element.js
var require_element2 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/svg/element.js"(exports) {
    "use strict";
    var { Element: Element2 } = require_element();
    var { String: String2 } = require_utils21();
    var classNames = /* @__PURE__ */ new WeakMap();
    var handler = {
      get(target, name) {
        return target[name];
      },
      set(target, name, value2) {
        target[name] = value2;
        return true;
      }
    };
    var SVGElement = class extends Element2 {
      constructor(ownerDocument, localName, ownerSVGElement = null) {
        super(ownerDocument, localName);
        this.ownerSVGElement = ownerSVGElement;
      }
      get className() {
        if (!classNames.has(this))
          classNames.set(this, new Proxy({ baseVal: "", animVal: "" }, handler));
        return classNames.get(this);
      }
      /* c8 ignore start */
      set className(value2) {
        const { classList } = this;
        classList.clear();
        classList.add(...String2(value2).split(/\s+/));
      }
      /* c8 ignore stop */
      get namespaceURI() {
        return "http://www.w3.org/2000/svg";
      }
      getAttribute(name) {
        return name === "class" ? [...this.classList].join(" ") : super.getAttribute(name);
      }
      setAttribute(name, value2) {
        if (name === "class")
          this.className = value2;
        else if (name === "style") {
          const { className } = this;
          className.baseVal = className.animVal = value2;
        }
        super.setAttribute(name, value2);
      }
    };
    exports.SVGElement = SVGElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/facades.js
var require_facades = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/facades.js"(exports) {
    "use strict";
    var { Attr: _Attr } = require_attr();
    var { CharacterData: _CharacterData } = require_character_data();
    var { CDATASection: _CDATASection } = require_cdata_section();
    var { Comment: _Comment } = require_comment();
    var { DocumentFragment: _DocumentFragment } = require_document_fragment();
    var { DocumentType: _DocumentType } = require_document_type();
    var { Element: _Element } = require_element();
    var { Node: _Node } = require_node6();
    var { ShadowRoot: _ShadowRoot } = require_shadow_root();
    var { Text: _Text } = require_text2();
    var { SVGElement: _SVGElement } = require_element2();
    var { setPrototypeOf } = require_object2();
    var illegalConstructor = () => {
      throw new TypeError("Illegal constructor");
    };
    exports.illegalConstructor = illegalConstructor;
    function Attr() {
      illegalConstructor();
    }
    exports.Attr = Attr;
    setPrototypeOf(Attr, _Attr);
    Attr.prototype = _Attr.prototype;
    function CDATASection() {
      illegalConstructor();
    }
    exports.CDATASection = CDATASection;
    setPrototypeOf(CDATASection, _CDATASection);
    CDATASection.prototype = _CDATASection.prototype;
    function CharacterData() {
      illegalConstructor();
    }
    exports.CharacterData = CharacterData;
    setPrototypeOf(CharacterData, _CharacterData);
    CharacterData.prototype = _CharacterData.prototype;
    function Comment() {
      illegalConstructor();
    }
    exports.Comment = Comment;
    setPrototypeOf(Comment, _Comment);
    Comment.prototype = _Comment.prototype;
    function DocumentFragment2() {
      illegalConstructor();
    }
    exports.DocumentFragment = DocumentFragment2;
    setPrototypeOf(DocumentFragment2, _DocumentFragment);
    DocumentFragment2.prototype = _DocumentFragment.prototype;
    function DocumentType() {
      illegalConstructor();
    }
    exports.DocumentType = DocumentType;
    setPrototypeOf(DocumentType, _DocumentType);
    DocumentType.prototype = _DocumentType.prototype;
    function Element2() {
      illegalConstructor();
    }
    exports.Element = Element2;
    setPrototypeOf(Element2, _Element);
    Element2.prototype = _Element.prototype;
    function Node() {
      illegalConstructor();
    }
    exports.Node = Node;
    setPrototypeOf(Node, _Node);
    Node.prototype = _Node.prototype;
    function ShadowRoot() {
      illegalConstructor();
    }
    exports.ShadowRoot = ShadowRoot;
    setPrototypeOf(ShadowRoot, _ShadowRoot);
    ShadowRoot.prototype = _ShadowRoot.prototype;
    function Text2() {
      illegalConstructor();
    }
    exports.Text = Text2;
    setPrototypeOf(Text2, _Text);
    Text2.prototype = _Text.prototype;
    function SVGElement() {
      illegalConstructor();
    }
    exports.SVGElement = SVGElement;
    setPrototypeOf(SVGElement, _SVGElement);
    SVGElement.prototype = _SVGElement.prototype;
    var Facades = {
      Attr,
      CDATASection,
      CharacterData,
      Comment,
      DocumentFragment: DocumentFragment2,
      DocumentType,
      Element: Element2,
      Node,
      ShadowRoot,
      Text: Text2,
      SVGElement
    };
    exports.Facades = Facades;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/element.js
var require_element3 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/element.js"(exports) {
    "use strict";
    var { END, UPGRADE } = require_symbols3();
    var { booleanAttribute, stringAttribute } = require_attributes6();
    var { Event: Event2 } = require_event();
    var { Element: Element2 } = require_element();
    var { Classes, customElements } = require_custom_element_registry();
    var Level0 = /* @__PURE__ */ new WeakMap();
    var level0 = {
      get(element, name) {
        return Level0.has(element) && Level0.get(element)[name] || null;
      },
      set(element, name, value2) {
        if (!Level0.has(element))
          Level0.set(element, {});
        const handlers3 = Level0.get(element);
        const type = name.slice(2);
        if (handlers3[name])
          element.removeEventListener(type, handlers3[name], false);
        if (handlers3[name] = value2)
          element.addEventListener(type, value2, false);
      }
    };
    var HTMLElement2 = class extends Element2 {
      static get observedAttributes() {
        return [];
      }
      constructor(ownerDocument = null, localName = "") {
        super(ownerDocument, localName);
        const ownerLess = !ownerDocument;
        let options;
        if (ownerLess) {
          const { constructor: Class } = this;
          if (!Classes.has(Class))
            throw new Error("unable to initialize this Custom Element");
          ({ ownerDocument, localName, options } = Classes.get(Class));
        }
        if (ownerDocument[UPGRADE]) {
          const { element, values } = ownerDocument[UPGRADE];
          ownerDocument[UPGRADE] = null;
          for (const [key, value2] of values)
            element[key] = value2;
          return element;
        }
        if (ownerLess) {
          this.ownerDocument = this[END].ownerDocument = ownerDocument;
          this.localName = localName;
          customElements.set(this, { connected: false });
          if (options.is)
            this.setAttribute("is", options.is);
        }
      }
      /* c8 ignore start */
      /* TODO: what about these?
      offsetHeight
      offsetLeft
      offsetParent
      offsetTop
      offsetWidth
      */
      blur() {
        this.dispatchEvent(new Event2("blur"));
      }
      click() {
        const clickEvent = new Event2("click", { bubbles: true, cancelable: true });
        clickEvent.button = 0;
        this.dispatchEvent(clickEvent);
      }
      // Boolean getters
      get accessKeyLabel() {
        const { accessKey } = this;
        return accessKey && `Alt+Shift+${accessKey}`;
      }
      get isContentEditable() {
        return this.hasAttribute("contenteditable");
      }
      // Boolean Accessors
      get contentEditable() {
        return booleanAttribute.get(this, "contenteditable");
      }
      set contentEditable(value2) {
        booleanAttribute.set(this, "contenteditable", value2);
      }
      get draggable() {
        return booleanAttribute.get(this, "draggable");
      }
      set draggable(value2) {
        booleanAttribute.set(this, "draggable", value2);
      }
      get hidden() {
        return booleanAttribute.get(this, "hidden");
      }
      set hidden(value2) {
        booleanAttribute.set(this, "hidden", value2);
      }
      get spellcheck() {
        return booleanAttribute.get(this, "spellcheck");
      }
      set spellcheck(value2) {
        booleanAttribute.set(this, "spellcheck", value2);
      }
      // String Accessors
      get accessKey() {
        return stringAttribute.get(this, "accesskey");
      }
      set accessKey(value2) {
        stringAttribute.set(this, "accesskey", value2);
      }
      get dir() {
        return stringAttribute.get(this, "dir");
      }
      set dir(value2) {
        stringAttribute.set(this, "dir", value2);
      }
      get lang() {
        return stringAttribute.get(this, "lang");
      }
      set lang(value2) {
        stringAttribute.set(this, "lang", value2);
      }
      get title() {
        return stringAttribute.get(this, "title");
      }
      set title(value2) {
        stringAttribute.set(this, "title", value2);
      }
      // DOM Level 0
      get onabort() {
        return level0.get(this, "onabort");
      }
      set onabort(value2) {
        level0.set(this, "onabort", value2);
      }
      get onblur() {
        return level0.get(this, "onblur");
      }
      set onblur(value2) {
        level0.set(this, "onblur", value2);
      }
      get oncancel() {
        return level0.get(this, "oncancel");
      }
      set oncancel(value2) {
        level0.set(this, "oncancel", value2);
      }
      get oncanplay() {
        return level0.get(this, "oncanplay");
      }
      set oncanplay(value2) {
        level0.set(this, "oncanplay", value2);
      }
      get oncanplaythrough() {
        return level0.get(this, "oncanplaythrough");
      }
      set oncanplaythrough(value2) {
        level0.set(this, "oncanplaythrough", value2);
      }
      get onchange() {
        return level0.get(this, "onchange");
      }
      set onchange(value2) {
        level0.set(this, "onchange", value2);
      }
      get onclick() {
        return level0.get(this, "onclick");
      }
      set onclick(value2) {
        level0.set(this, "onclick", value2);
      }
      get onclose() {
        return level0.get(this, "onclose");
      }
      set onclose(value2) {
        level0.set(this, "onclose", value2);
      }
      get oncontextmenu() {
        return level0.get(this, "oncontextmenu");
      }
      set oncontextmenu(value2) {
        level0.set(this, "oncontextmenu", value2);
      }
      get oncuechange() {
        return level0.get(this, "oncuechange");
      }
      set oncuechange(value2) {
        level0.set(this, "oncuechange", value2);
      }
      get ondblclick() {
        return level0.get(this, "ondblclick");
      }
      set ondblclick(value2) {
        level0.set(this, "ondblclick", value2);
      }
      get ondrag() {
        return level0.get(this, "ondrag");
      }
      set ondrag(value2) {
        level0.set(this, "ondrag", value2);
      }
      get ondragend() {
        return level0.get(this, "ondragend");
      }
      set ondragend(value2) {
        level0.set(this, "ondragend", value2);
      }
      get ondragenter() {
        return level0.get(this, "ondragenter");
      }
      set ondragenter(value2) {
        level0.set(this, "ondragenter", value2);
      }
      get ondragleave() {
        return level0.get(this, "ondragleave");
      }
      set ondragleave(value2) {
        level0.set(this, "ondragleave", value2);
      }
      get ondragover() {
        return level0.get(this, "ondragover");
      }
      set ondragover(value2) {
        level0.set(this, "ondragover", value2);
      }
      get ondragstart() {
        return level0.get(this, "ondragstart");
      }
      set ondragstart(value2) {
        level0.set(this, "ondragstart", value2);
      }
      get ondrop() {
        return level0.get(this, "ondrop");
      }
      set ondrop(value2) {
        level0.set(this, "ondrop", value2);
      }
      get ondurationchange() {
        return level0.get(this, "ondurationchange");
      }
      set ondurationchange(value2) {
        level0.set(this, "ondurationchange", value2);
      }
      get onemptied() {
        return level0.get(this, "onemptied");
      }
      set onemptied(value2) {
        level0.set(this, "onemptied", value2);
      }
      get onended() {
        return level0.get(this, "onended");
      }
      set onended(value2) {
        level0.set(this, "onended", value2);
      }
      get onerror() {
        return level0.get(this, "onerror");
      }
      set onerror(value2) {
        level0.set(this, "onerror", value2);
      }
      get onfocus() {
        return level0.get(this, "onfocus");
      }
      set onfocus(value2) {
        level0.set(this, "onfocus", value2);
      }
      get oninput() {
        return level0.get(this, "oninput");
      }
      set oninput(value2) {
        level0.set(this, "oninput", value2);
      }
      get oninvalid() {
        return level0.get(this, "oninvalid");
      }
      set oninvalid(value2) {
        level0.set(this, "oninvalid", value2);
      }
      get onkeydown() {
        return level0.get(this, "onkeydown");
      }
      set onkeydown(value2) {
        level0.set(this, "onkeydown", value2);
      }
      get onkeypress() {
        return level0.get(this, "onkeypress");
      }
      set onkeypress(value2) {
        level0.set(this, "onkeypress", value2);
      }
      get onkeyup() {
        return level0.get(this, "onkeyup");
      }
      set onkeyup(value2) {
        level0.set(this, "onkeyup", value2);
      }
      get onload() {
        return level0.get(this, "onload");
      }
      set onload(value2) {
        level0.set(this, "onload", value2);
      }
      get onloadeddata() {
        return level0.get(this, "onloadeddata");
      }
      set onloadeddata(value2) {
        level0.set(this, "onloadeddata", value2);
      }
      get onloadedmetadata() {
        return level0.get(this, "onloadedmetadata");
      }
      set onloadedmetadata(value2) {
        level0.set(this, "onloadedmetadata", value2);
      }
      get onloadstart() {
        return level0.get(this, "onloadstart");
      }
      set onloadstart(value2) {
        level0.set(this, "onloadstart", value2);
      }
      get onmousedown() {
        return level0.get(this, "onmousedown");
      }
      set onmousedown(value2) {
        level0.set(this, "onmousedown", value2);
      }
      get onmouseenter() {
        return level0.get(this, "onmouseenter");
      }
      set onmouseenter(value2) {
        level0.set(this, "onmouseenter", value2);
      }
      get onmouseleave() {
        return level0.get(this, "onmouseleave");
      }
      set onmouseleave(value2) {
        level0.set(this, "onmouseleave", value2);
      }
      get onmousemove() {
        return level0.get(this, "onmousemove");
      }
      set onmousemove(value2) {
        level0.set(this, "onmousemove", value2);
      }
      get onmouseout() {
        return level0.get(this, "onmouseout");
      }
      set onmouseout(value2) {
        level0.set(this, "onmouseout", value2);
      }
      get onmouseover() {
        return level0.get(this, "onmouseover");
      }
      set onmouseover(value2) {
        level0.set(this, "onmouseover", value2);
      }
      get onmouseup() {
        return level0.get(this, "onmouseup");
      }
      set onmouseup(value2) {
        level0.set(this, "onmouseup", value2);
      }
      get onmousewheel() {
        return level0.get(this, "onmousewheel");
      }
      set onmousewheel(value2) {
        level0.set(this, "onmousewheel", value2);
      }
      get onpause() {
        return level0.get(this, "onpause");
      }
      set onpause(value2) {
        level0.set(this, "onpause", value2);
      }
      get onplay() {
        return level0.get(this, "onplay");
      }
      set onplay(value2) {
        level0.set(this, "onplay", value2);
      }
      get onplaying() {
        return level0.get(this, "onplaying");
      }
      set onplaying(value2) {
        level0.set(this, "onplaying", value2);
      }
      get onprogress() {
        return level0.get(this, "onprogress");
      }
      set onprogress(value2) {
        level0.set(this, "onprogress", value2);
      }
      get onratechange() {
        return level0.get(this, "onratechange");
      }
      set onratechange(value2) {
        level0.set(this, "onratechange", value2);
      }
      get onreset() {
        return level0.get(this, "onreset");
      }
      set onreset(value2) {
        level0.set(this, "onreset", value2);
      }
      get onresize() {
        return level0.get(this, "onresize");
      }
      set onresize(value2) {
        level0.set(this, "onresize", value2);
      }
      get onscroll() {
        return level0.get(this, "onscroll");
      }
      set onscroll(value2) {
        level0.set(this, "onscroll", value2);
      }
      get onseeked() {
        return level0.get(this, "onseeked");
      }
      set onseeked(value2) {
        level0.set(this, "onseeked", value2);
      }
      get onseeking() {
        return level0.get(this, "onseeking");
      }
      set onseeking(value2) {
        level0.set(this, "onseeking", value2);
      }
      get onselect() {
        return level0.get(this, "onselect");
      }
      set onselect(value2) {
        level0.set(this, "onselect", value2);
      }
      get onshow() {
        return level0.get(this, "onshow");
      }
      set onshow(value2) {
        level0.set(this, "onshow", value2);
      }
      get onstalled() {
        return level0.get(this, "onstalled");
      }
      set onstalled(value2) {
        level0.set(this, "onstalled", value2);
      }
      get onsubmit() {
        return level0.get(this, "onsubmit");
      }
      set onsubmit(value2) {
        level0.set(this, "onsubmit", value2);
      }
      get onsuspend() {
        return level0.get(this, "onsuspend");
      }
      set onsuspend(value2) {
        level0.set(this, "onsuspend", value2);
      }
      get ontimeupdate() {
        return level0.get(this, "ontimeupdate");
      }
      set ontimeupdate(value2) {
        level0.set(this, "ontimeupdate", value2);
      }
      get ontoggle() {
        return level0.get(this, "ontoggle");
      }
      set ontoggle(value2) {
        level0.set(this, "ontoggle", value2);
      }
      get onvolumechange() {
        return level0.get(this, "onvolumechange");
      }
      set onvolumechange(value2) {
        level0.set(this, "onvolumechange", value2);
      }
      get onwaiting() {
        return level0.get(this, "onwaiting");
      }
      set onwaiting(value2) {
        level0.set(this, "onwaiting", value2);
      }
      get onauxclick() {
        return level0.get(this, "onauxclick");
      }
      set onauxclick(value2) {
        level0.set(this, "onauxclick", value2);
      }
      get ongotpointercapture() {
        return level0.get(this, "ongotpointercapture");
      }
      set ongotpointercapture(value2) {
        level0.set(this, "ongotpointercapture", value2);
      }
      get onlostpointercapture() {
        return level0.get(this, "onlostpointercapture");
      }
      set onlostpointercapture(value2) {
        level0.set(this, "onlostpointercapture", value2);
      }
      get onpointercancel() {
        return level0.get(this, "onpointercancel");
      }
      set onpointercancel(value2) {
        level0.set(this, "onpointercancel", value2);
      }
      get onpointerdown() {
        return level0.get(this, "onpointerdown");
      }
      set onpointerdown(value2) {
        level0.set(this, "onpointerdown", value2);
      }
      get onpointerenter() {
        return level0.get(this, "onpointerenter");
      }
      set onpointerenter(value2) {
        level0.set(this, "onpointerenter", value2);
      }
      get onpointerleave() {
        return level0.get(this, "onpointerleave");
      }
      set onpointerleave(value2) {
        level0.set(this, "onpointerleave", value2);
      }
      get onpointermove() {
        return level0.get(this, "onpointermove");
      }
      set onpointermove(value2) {
        level0.set(this, "onpointermove", value2);
      }
      get onpointerout() {
        return level0.get(this, "onpointerout");
      }
      set onpointerout(value2) {
        level0.set(this, "onpointerout", value2);
      }
      get onpointerover() {
        return level0.get(this, "onpointerover");
      }
      set onpointerover(value2) {
        level0.set(this, "onpointerover", value2);
      }
      get onpointerup() {
        return level0.get(this, "onpointerup");
      }
      set onpointerup(value2) {
        level0.set(this, "onpointerup", value2);
      }
      /* c8 ignore stop */
    };
    exports.HTMLElement = HTMLElement2;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/template-element.js
var require_template_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/template-element.js"(exports) {
    "use strict";
    var { CONTENT, PRIVATE } = require_symbols3();
    var { registerHTMLClass } = require_register_html_class();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var tagName = "template";
    var HTMLTemplateElement = class extends HTMLElement2 {
      constructor(ownerDocument) {
        super(ownerDocument, tagName);
        const content = this.ownerDocument.createDocumentFragment();
        (this[CONTENT] = content)[PRIVATE] = this;
      }
      get content() {
        if (this.hasChildNodes() && !this[CONTENT].hasChildNodes()) {
          for (const node of this.childNodes)
            this[CONTENT].appendChild(node.cloneNode(true));
        }
        return this[CONTENT];
      }
    };
    registerHTMLClass(tagName, HTMLTemplateElement);
    exports.HTMLTemplateElement = HTMLTemplateElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/html-element.js
var require_html_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/html-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLHtmlElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "html") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLHtmlElement = HTMLHtmlElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/text-element.js
var require_text_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/text-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var { toString: toString5 } = HTMLElement2.prototype;
    var TextElement = class extends HTMLElement2 {
      get innerHTML() {
        return this.textContent;
      }
      set innerHTML(html) {
        this.textContent = html;
      }
      toString() {
        const outerHTML = toString5.call(this.cloneNode());
        return outerHTML.replace("><", () => `>${this.textContent}<`);
      }
    };
    exports.TextElement = TextElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/script-element.js
var require_script_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/script-element.js"(exports) {
    "use strict";
    var { booleanAttribute, stringAttribute } = require_attributes6();
    var { registerHTMLClass } = require_register_html_class();
    var { TextElement } = require_text_element();
    var tagName = "script";
    var HTMLScriptElement = class extends TextElement {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
      get type() {
        return stringAttribute.get(this, "type");
      }
      set type(value2) {
        stringAttribute.set(this, "type", value2);
      }
      get src() {
        return stringAttribute.get(this, "src");
      }
      set src(value2) {
        stringAttribute.set(this, "src", value2);
      }
      get defer() {
        return booleanAttribute.get(this, "defer");
      }
      set defer(value2) {
        booleanAttribute.set(this, "defer", value2);
      }
      get crossOrigin() {
        return stringAttribute.get(this, "crossorigin");
      }
      set crossOrigin(value2) {
        stringAttribute.set(this, "crossorigin", value2);
      }
      get nomodule() {
        return booleanAttribute.get(this, "nomodule");
      }
      set nomodule(value2) {
        booleanAttribute.set(this, "nomodule", value2);
      }
      get referrerPolicy() {
        return stringAttribute.get(this, "referrerpolicy");
      }
      set referrerPolicy(value2) {
        stringAttribute.set(this, "referrerpolicy", value2);
      }
      get nonce() {
        return stringAttribute.get(this, "nonce");
      }
      set nonce(value2) {
        stringAttribute.set(this, "nonce", value2);
      }
      get async() {
        return booleanAttribute.get(this, "async");
      }
      set async(value2) {
        booleanAttribute.set(this, "async", value2);
      }
      get text() {
        return this.textContent;
      }
      set text(content) {
        this.textContent = content;
      }
    };
    registerHTMLClass(tagName, HTMLScriptElement);
    exports.HTMLScriptElement = HTMLScriptElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/frame-element.js
var require_frame_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/frame-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLFrameElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "frame") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLFrameElement = HTMLFrameElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/i-frame-element.js
var require_i_frame_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/i-frame-element.js"(exports) {
    "use strict";
    var { registerHTMLClass } = require_register_html_class();
    var { booleanAttribute, stringAttribute } = require_attributes6();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var tagName = "iframe";
    var HTMLIFrameElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
      /* c8 ignore start */
      get src() {
        return stringAttribute.get(this, "src");
      }
      set src(value2) {
        stringAttribute.set(this, "src", value2);
      }
      get srcdoc() {
        return stringAttribute.get(this, "srcdoc");
      }
      set srcdoc(value2) {
        stringAttribute.set(this, "srcdoc", value2);
      }
      get name() {
        return stringAttribute.get(this, "name");
      }
      set name(value2) {
        stringAttribute.set(this, "name", value2);
      }
      get allow() {
        return stringAttribute.get(this, "allow");
      }
      set allow(value2) {
        stringAttribute.set(this, "allow", value2);
      }
      get allowFullscreen() {
        return booleanAttribute.get(this, "allowfullscreen");
      }
      set allowFullscreen(value2) {
        booleanAttribute.set(this, "allowfullscreen", value2);
      }
      get referrerPolicy() {
        return stringAttribute.get(this, "referrerpolicy");
      }
      set referrerPolicy(value2) {
        stringAttribute.set(this, "referrerpolicy", value2);
      }
      get loading() {
        return stringAttribute.get(this, "loading");
      }
      set loading(value2) {
        stringAttribute.set(this, "loading", value2);
      }
      /* c8 ignore stop */
    };
    registerHTMLClass(tagName, HTMLIFrameElement);
    exports.HTMLIFrameElement = HTMLIFrameElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/object-element.js
var require_object_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/object-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLObjectElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "object") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLObjectElement = HTMLObjectElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/head-element.js
var require_head_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/head-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLHeadElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "head") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLHeadElement = HTMLHeadElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/body-element.js
var require_body_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/body-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLBodyElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "body") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLBodyElement = HTMLBodyElement;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/StyleSheet.js
var require_StyleSheet2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/StyleSheet.js"(exports) {
    var CSSOM = {};
    CSSOM.StyleSheet = function StyleSheet2() {
      this.parentStyleSheet = null;
    };
    exports.StyleSheet = CSSOM.StyleSheet;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSRule.js
var require_CSSRule2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSRule.js"(exports) {
    var CSSOM = {};
    CSSOM.CSSRule = function CSSRule() {
      this.parentRule = null;
      this.parentStyleSheet = null;
    };
    CSSOM.CSSRule.UNKNOWN_RULE = 0;
    CSSOM.CSSRule.STYLE_RULE = 1;
    CSSOM.CSSRule.CHARSET_RULE = 2;
    CSSOM.CSSRule.IMPORT_RULE = 3;
    CSSOM.CSSRule.MEDIA_RULE = 4;
    CSSOM.CSSRule.FONT_FACE_RULE = 5;
    CSSOM.CSSRule.PAGE_RULE = 6;
    CSSOM.CSSRule.KEYFRAMES_RULE = 7;
    CSSOM.CSSRule.KEYFRAME_RULE = 8;
    CSSOM.CSSRule.MARGIN_RULE = 9;
    CSSOM.CSSRule.NAMESPACE_RULE = 10;
    CSSOM.CSSRule.COUNTER_STYLE_RULE = 11;
    CSSOM.CSSRule.SUPPORTS_RULE = 12;
    CSSOM.CSSRule.DOCUMENT_RULE = 13;
    CSSOM.CSSRule.FONT_FEATURE_VALUES_RULE = 14;
    CSSOM.CSSRule.VIEWPORT_RULE = 15;
    CSSOM.CSSRule.REGION_STYLE_RULE = 16;
    CSSOM.CSSRule.prototype = {
      constructor: CSSOM.CSSRule
      //FIXME
    };
    exports.CSSRule = CSSOM.CSSRule;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSStyleRule.js
var require_CSSStyleRule2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSStyleRule.js"(exports) {
    var CSSOM = {
      CSSStyleDeclaration: require_CSSStyleDeclaration3().CSSStyleDeclaration,
      CSSRule: require_CSSRule2().CSSRule
    };
    CSSOM.CSSStyleRule = function CSSStyleRule() {
      CSSOM.CSSRule.call(this);
      this.selectorText = "";
      this.style = new CSSOM.CSSStyleDeclaration();
      this.style.parentRule = this;
    };
    CSSOM.CSSStyleRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSStyleRule.prototype.constructor = CSSOM.CSSStyleRule;
    CSSOM.CSSStyleRule.prototype.type = 1;
    Object.defineProperty(CSSOM.CSSStyleRule.prototype, "cssText", {
      get: function() {
        var text;
        if (this.selectorText) {
          text = this.selectorText + " {" + this.style.cssText + "}";
        } else {
          text = "";
        }
        return text;
      },
      set: function(cssText) {
        var rule = CSSOM.CSSStyleRule.parse(cssText);
        this.style = rule.style;
        this.selectorText = rule.selectorText;
      }
    });
    CSSOM.CSSStyleRule.parse = function(ruleText) {
      var i5 = 0;
      var state = "selector";
      var index2;
      var j = i5;
      var buffer = "";
      var SIGNIFICANT_WHITESPACE = {
        "selector": true,
        "value": true
      };
      var styleRule = new CSSOM.CSSStyleRule();
      var name, priority = "";
      for (var character; character = ruleText.charAt(i5); i5++) {
        switch (character) {
          case " ":
          case "	":
          case "\r":
          case "\n":
          case "\f":
            if (SIGNIFICANT_WHITESPACE[state]) {
              switch (ruleText.charAt(i5 - 1)) {
                case " ":
                case "	":
                case "\r":
                case "\n":
                case "\f":
                  break;
                default:
                  buffer += " ";
                  break;
              }
            }
            break;
          // String
          case '"':
            j = i5 + 1;
            index2 = ruleText.indexOf('"', j) + 1;
            if (!index2) {
              throw '" is missing';
            }
            buffer += ruleText.slice(i5, index2);
            i5 = index2 - 1;
            break;
          case "'":
            j = i5 + 1;
            index2 = ruleText.indexOf("'", j) + 1;
            if (!index2) {
              throw "' is missing";
            }
            buffer += ruleText.slice(i5, index2);
            i5 = index2 - 1;
            break;
          // Comment
          case "/":
            if (ruleText.charAt(i5 + 1) === "*") {
              i5 += 2;
              index2 = ruleText.indexOf("*/", i5);
              if (index2 === -1) {
                throw new SyntaxError("Missing */");
              } else {
                i5 = index2 + 1;
              }
            } else {
              buffer += character;
            }
            break;
          case "{":
            if (state === "selector") {
              styleRule.selectorText = buffer.trim();
              buffer = "";
              state = "name";
            }
            break;
          case ":":
            if (state === "name") {
              name = buffer.trim();
              buffer = "";
              state = "value";
            } else {
              buffer += character;
            }
            break;
          case "!":
            if (state === "value" && ruleText.indexOf("!important", i5) === i5) {
              priority = "important";
              i5 += "important".length;
            } else {
              buffer += character;
            }
            break;
          case ";":
            if (state === "value") {
              styleRule.style.setProperty(name, buffer.trim(), priority);
              priority = "";
              buffer = "";
              state = "name";
            } else {
              buffer += character;
            }
            break;
          case "}":
            if (state === "value") {
              styleRule.style.setProperty(name, buffer.trim(), priority);
              priority = "";
              buffer = "";
            } else if (state === "name") {
              break;
            } else {
              buffer += character;
            }
            state = "selector";
            break;
          default:
            buffer += character;
            break;
        }
      }
      return styleRule;
    };
    exports.CSSStyleRule = CSSOM.CSSStyleRule;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSStyleSheet.js
var require_CSSStyleSheet2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSStyleSheet.js"(exports) {
    var CSSOM = {
      StyleSheet: require_StyleSheet2().StyleSheet,
      CSSStyleRule: require_CSSStyleRule2().CSSStyleRule
    };
    CSSOM.CSSStyleSheet = function CSSStyleSheet() {
      CSSOM.StyleSheet.call(this);
      this.cssRules = [];
    };
    CSSOM.CSSStyleSheet.prototype = new CSSOM.StyleSheet();
    CSSOM.CSSStyleSheet.prototype.constructor = CSSOM.CSSStyleSheet;
    CSSOM.CSSStyleSheet.prototype.insertRule = function(rule, index2) {
      if (index2 < 0 || index2 > this.cssRules.length) {
        throw new RangeError("INDEX_SIZE_ERR");
      }
      var cssRule = CSSOM.parse(rule).cssRules[0];
      cssRule.parentStyleSheet = this;
      this.cssRules.splice(index2, 0, cssRule);
      return index2;
    };
    CSSOM.CSSStyleSheet.prototype.deleteRule = function(index2) {
      if (index2 < 0 || index2 >= this.cssRules.length) {
        throw new RangeError("INDEX_SIZE_ERR");
      }
      this.cssRules.splice(index2, 1);
    };
    CSSOM.CSSStyleSheet.prototype.toString = function() {
      var result = "";
      var rules = this.cssRules;
      for (var i5 = 0; i5 < rules.length; i5++) {
        result += rules[i5].cssText + "\n";
      }
      return result;
    };
    exports.CSSStyleSheet = CSSOM.CSSStyleSheet;
    CSSOM.parse = require_parse9().parse;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/MediaList.js
var require_MediaList2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/MediaList.js"(exports) {
    var CSSOM = {};
    CSSOM.MediaList = function MediaList() {
      this.length = 0;
    };
    CSSOM.MediaList.prototype = {
      constructor: CSSOM.MediaList,
      /**
       * @return {string}
       */
      get mediaText() {
        return Array.prototype.join.call(this, ", ");
      },
      /**
       * @param {string} value
       */
      set mediaText(value2) {
        var values = value2.split(",");
        var length2 = this.length = values.length;
        for (var i5 = 0; i5 < length2; i5++) {
          this[i5] = values[i5].trim();
        }
      },
      /**
       * @param {string} medium
       */
      appendMedium: function(medium) {
        if (Array.prototype.indexOf.call(this, medium) === -1) {
          this[this.length] = medium;
          this.length++;
        }
      },
      /**
       * @param {string} medium
       */
      deleteMedium: function(medium) {
        var index2 = Array.prototype.indexOf.call(this, medium);
        if (index2 !== -1) {
          Array.prototype.splice.call(this, index2, 1);
        }
      }
    };
    exports.MediaList = CSSOM.MediaList;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSImportRule.js
var require_CSSImportRule2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSImportRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule2().CSSRule,
      CSSStyleSheet: require_CSSStyleSheet2().CSSStyleSheet,
      MediaList: require_MediaList2().MediaList
    };
    CSSOM.CSSImportRule = function CSSImportRule() {
      CSSOM.CSSRule.call(this);
      this.href = "";
      this.media = new CSSOM.MediaList();
      this.styleSheet = new CSSOM.CSSStyleSheet();
    };
    CSSOM.CSSImportRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSImportRule.prototype.constructor = CSSOM.CSSImportRule;
    CSSOM.CSSImportRule.prototype.type = 3;
    Object.defineProperty(CSSOM.CSSImportRule.prototype, "cssText", {
      get: function() {
        var mediaText = this.media.mediaText;
        return "@import url(" + this.href + ")" + (mediaText ? " " + mediaText : "") + ";";
      },
      set: function(cssText) {
        var i5 = 0;
        var state = "";
        var buffer = "";
        var index2;
        for (var character; character = cssText.charAt(i5); i5++) {
          switch (character) {
            case " ":
            case "	":
            case "\r":
            case "\n":
            case "\f":
              if (state === "after-import") {
                state = "url";
              } else {
                buffer += character;
              }
              break;
            case "@":
              if (!state && cssText.indexOf("@import", i5) === i5) {
                state = "after-import";
                i5 += "import".length;
                buffer = "";
              }
              break;
            case "u":
              if (state === "url" && cssText.indexOf("url(", i5) === i5) {
                index2 = cssText.indexOf(")", i5 + 1);
                if (index2 === -1) {
                  throw i5 + ': ")" not found';
                }
                i5 += "url(".length;
                var url3 = cssText.slice(i5, index2);
                if (url3[0] === url3[url3.length - 1]) {
                  if (url3[0] === '"' || url3[0] === "'") {
                    url3 = url3.slice(1, -1);
                  }
                }
                this.href = url3;
                i5 = index2;
                state = "media";
              }
              break;
            case '"':
              if (state === "url") {
                index2 = cssText.indexOf('"', i5 + 1);
                if (!index2) {
                  throw i5 + `: '"' not found`;
                }
                this.href = cssText.slice(i5 + 1, index2);
                i5 = index2;
                state = "media";
              }
              break;
            case "'":
              if (state === "url") {
                index2 = cssText.indexOf("'", i5 + 1);
                if (!index2) {
                  throw i5 + `: "'" not found`;
                }
                this.href = cssText.slice(i5 + 1, index2);
                i5 = index2;
                state = "media";
              }
              break;
            case ";":
              if (state === "media") {
                if (buffer) {
                  this.media.mediaText = buffer.trim();
                }
              }
              break;
            default:
              if (state === "media") {
                buffer += character;
              }
              break;
          }
        }
      }
    });
    exports.CSSImportRule = CSSOM.CSSImportRule;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSGroupingRule.js
var require_CSSGroupingRule2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSGroupingRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule2().CSSRule
    };
    CSSOM.CSSGroupingRule = function CSSGroupingRule() {
      CSSOM.CSSRule.call(this);
      this.cssRules = [];
    };
    CSSOM.CSSGroupingRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSGroupingRule.prototype.constructor = CSSOM.CSSGroupingRule;
    CSSOM.CSSGroupingRule.prototype.insertRule = function insertRule(rule, index2) {
      if (index2 < 0 || index2 > this.cssRules.length) {
        throw new RangeError("INDEX_SIZE_ERR");
      }
      var cssRule = CSSOM.parse(rule).cssRules[0];
      cssRule.parentRule = this;
      this.cssRules.splice(index2, 0, cssRule);
      return index2;
    };
    CSSOM.CSSGroupingRule.prototype.deleteRule = function deleteRule(index2) {
      if (index2 < 0 || index2 >= this.cssRules.length) {
        throw new RangeError("INDEX_SIZE_ERR");
      }
      this.cssRules.splice(index2, 1)[0].parentRule = null;
    };
    exports.CSSGroupingRule = CSSOM.CSSGroupingRule;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSConditionRule.js
var require_CSSConditionRule2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSConditionRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule2().CSSRule,
      CSSGroupingRule: require_CSSGroupingRule2().CSSGroupingRule
    };
    CSSOM.CSSConditionRule = function CSSConditionRule() {
      CSSOM.CSSGroupingRule.call(this);
      this.cssRules = [];
    };
    CSSOM.CSSConditionRule.prototype = new CSSOM.CSSGroupingRule();
    CSSOM.CSSConditionRule.prototype.constructor = CSSOM.CSSConditionRule;
    CSSOM.CSSConditionRule.prototype.conditionText = "";
    CSSOM.CSSConditionRule.prototype.cssText = "";
    exports.CSSConditionRule = CSSOM.CSSConditionRule;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSMediaRule.js
var require_CSSMediaRule2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSMediaRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule2().CSSRule,
      CSSGroupingRule: require_CSSGroupingRule2().CSSGroupingRule,
      CSSConditionRule: require_CSSConditionRule2().CSSConditionRule,
      MediaList: require_MediaList2().MediaList
    };
    CSSOM.CSSMediaRule = function CSSMediaRule() {
      CSSOM.CSSConditionRule.call(this);
      this.media = new CSSOM.MediaList();
    };
    CSSOM.CSSMediaRule.prototype = new CSSOM.CSSConditionRule();
    CSSOM.CSSMediaRule.prototype.constructor = CSSOM.CSSMediaRule;
    CSSOM.CSSMediaRule.prototype.type = 4;
    Object.defineProperties(CSSOM.CSSMediaRule.prototype, {
      "conditionText": {
        get: function() {
          return this.media.mediaText;
        },
        set: function(value2) {
          this.media.mediaText = value2;
        },
        configurable: true,
        enumerable: true
      },
      "cssText": {
        get: function() {
          var cssTexts = [];
          for (var i5 = 0, length2 = this.cssRules.length; i5 < length2; i5++) {
            cssTexts.push(this.cssRules[i5].cssText);
          }
          return "@media " + this.media.mediaText + " {" + cssTexts.join("") + "}";
        },
        configurable: true,
        enumerable: true
      }
    });
    exports.CSSMediaRule = CSSOM.CSSMediaRule;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSSupportsRule.js
var require_CSSSupportsRule2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSSupportsRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule2().CSSRule,
      CSSGroupingRule: require_CSSGroupingRule2().CSSGroupingRule,
      CSSConditionRule: require_CSSConditionRule2().CSSConditionRule
    };
    CSSOM.CSSSupportsRule = function CSSSupportsRule() {
      CSSOM.CSSConditionRule.call(this);
    };
    CSSOM.CSSSupportsRule.prototype = new CSSOM.CSSConditionRule();
    CSSOM.CSSSupportsRule.prototype.constructor = CSSOM.CSSSupportsRule;
    CSSOM.CSSSupportsRule.prototype.type = 12;
    Object.defineProperty(CSSOM.CSSSupportsRule.prototype, "cssText", {
      get: function() {
        var cssTexts = [];
        for (var i5 = 0, length2 = this.cssRules.length; i5 < length2; i5++) {
          cssTexts.push(this.cssRules[i5].cssText);
        }
        return "@supports " + this.conditionText + " {" + cssTexts.join("") + "}";
      }
    });
    exports.CSSSupportsRule = CSSOM.CSSSupportsRule;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSFontFaceRule.js
var require_CSSFontFaceRule2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSFontFaceRule.js"(exports) {
    var CSSOM = {
      CSSStyleDeclaration: require_CSSStyleDeclaration3().CSSStyleDeclaration,
      CSSRule: require_CSSRule2().CSSRule
    };
    CSSOM.CSSFontFaceRule = function CSSFontFaceRule() {
      CSSOM.CSSRule.call(this);
      this.style = new CSSOM.CSSStyleDeclaration();
      this.style.parentRule = this;
    };
    CSSOM.CSSFontFaceRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSFontFaceRule.prototype.constructor = CSSOM.CSSFontFaceRule;
    CSSOM.CSSFontFaceRule.prototype.type = 5;
    Object.defineProperty(CSSOM.CSSFontFaceRule.prototype, "cssText", {
      get: function() {
        return "@font-face {" + this.style.cssText + "}";
      }
    });
    exports.CSSFontFaceRule = CSSOM.CSSFontFaceRule;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSHostRule.js
var require_CSSHostRule2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSHostRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule2().CSSRule
    };
    CSSOM.CSSHostRule = function CSSHostRule() {
      CSSOM.CSSRule.call(this);
      this.cssRules = [];
    };
    CSSOM.CSSHostRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSHostRule.prototype.constructor = CSSOM.CSSHostRule;
    CSSOM.CSSHostRule.prototype.type = 1001;
    Object.defineProperty(CSSOM.CSSHostRule.prototype, "cssText", {
      get: function() {
        var cssTexts = [];
        for (var i5 = 0, length2 = this.cssRules.length; i5 < length2; i5++) {
          cssTexts.push(this.cssRules[i5].cssText);
        }
        return "@host {" + cssTexts.join("") + "}";
      }
    });
    exports.CSSHostRule = CSSOM.CSSHostRule;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSKeyframeRule.js
var require_CSSKeyframeRule2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSKeyframeRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule2().CSSRule,
      CSSStyleDeclaration: require_CSSStyleDeclaration3().CSSStyleDeclaration
    };
    CSSOM.CSSKeyframeRule = function CSSKeyframeRule() {
      CSSOM.CSSRule.call(this);
      this.keyText = "";
      this.style = new CSSOM.CSSStyleDeclaration();
      this.style.parentRule = this;
    };
    CSSOM.CSSKeyframeRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSKeyframeRule.prototype.constructor = CSSOM.CSSKeyframeRule;
    CSSOM.CSSKeyframeRule.prototype.type = 8;
    Object.defineProperty(CSSOM.CSSKeyframeRule.prototype, "cssText", {
      get: function() {
        return this.keyText + " {" + this.style.cssText + "} ";
      }
    });
    exports.CSSKeyframeRule = CSSOM.CSSKeyframeRule;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSKeyframesRule.js
var require_CSSKeyframesRule2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSKeyframesRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule2().CSSRule
    };
    CSSOM.CSSKeyframesRule = function CSSKeyframesRule() {
      CSSOM.CSSRule.call(this);
      this.name = "";
      this.cssRules = [];
    };
    CSSOM.CSSKeyframesRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSKeyframesRule.prototype.constructor = CSSOM.CSSKeyframesRule;
    CSSOM.CSSKeyframesRule.prototype.type = 7;
    Object.defineProperty(CSSOM.CSSKeyframesRule.prototype, "cssText", {
      get: function() {
        var cssTexts = [];
        for (var i5 = 0, length2 = this.cssRules.length; i5 < length2; i5++) {
          cssTexts.push("  " + this.cssRules[i5].cssText);
        }
        return "@" + (this._vendorPrefix || "") + "keyframes " + this.name + " { \n" + cssTexts.join("\n") + "\n}";
      }
    });
    exports.CSSKeyframesRule = CSSOM.CSSKeyframesRule;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSValue.js
var require_CSSValue2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSValue.js"(exports) {
    var CSSOM = {};
    CSSOM.CSSValue = function CSSValue() {
    };
    CSSOM.CSSValue.prototype = {
      constructor: CSSOM.CSSValue,
      // @see: http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue
      set cssText(text) {
        var name = this._getConstructorName();
        throw new Error('DOMException: property "cssText" of "' + name + '" is readonly and can not be replaced with "' + text + '"!');
      },
      get cssText() {
        var name = this._getConstructorName();
        throw new Error('getter "cssText" of "' + name + '" is not implemented!');
      },
      _getConstructorName: function() {
        var s4 = this.constructor.toString(), c6 = s4.match(/function\s([^\(]+)/), name = c6[1];
        return name;
      }
    };
    exports.CSSValue = CSSOM.CSSValue;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSValueExpression.js
var require_CSSValueExpression2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSValueExpression.js"(exports) {
    var CSSOM = {
      CSSValue: require_CSSValue2().CSSValue
    };
    CSSOM.CSSValueExpression = function CSSValueExpression(token, idx) {
      this._token = token;
      this._idx = idx;
    };
    CSSOM.CSSValueExpression.prototype = new CSSOM.CSSValue();
    CSSOM.CSSValueExpression.prototype.constructor = CSSOM.CSSValueExpression;
    CSSOM.CSSValueExpression.prototype.parse = function() {
      var token = this._token, idx = this._idx;
      var character = "", expression = "", error = "", info, paren = [];
      for (; ; ++idx) {
        character = token.charAt(idx);
        if (character === "") {
          error = "css expression error: unfinished expression!";
          break;
        }
        switch (character) {
          case "(":
            paren.push(character);
            expression += character;
            break;
          case ")":
            paren.pop(character);
            expression += character;
            break;
          case "/":
            if (info = this._parseJSComment(token, idx)) {
              if (info.error) {
                error = "css expression error: unfinished comment in expression!";
              } else {
                idx = info.idx;
              }
            } else if (info = this._parseJSRexExp(token, idx)) {
              idx = info.idx;
              expression += info.text;
            } else {
              expression += character;
            }
            break;
          case "'":
          case '"':
            info = this._parseJSString(token, idx, character);
            if (info) {
              idx = info.idx;
              expression += info.text;
            } else {
              expression += character;
            }
            break;
          default:
            expression += character;
            break;
        }
        if (error) {
          break;
        }
        if (paren.length === 0) {
          break;
        }
      }
      var ret;
      if (error) {
        ret = {
          error
        };
      } else {
        ret = {
          idx,
          expression
        };
      }
      return ret;
    };
    CSSOM.CSSValueExpression.prototype._parseJSComment = function(token, idx) {
      var nextChar = token.charAt(idx + 1), text;
      if (nextChar === "/" || nextChar === "*") {
        var startIdx = idx, endIdx, commentEndChar;
        if (nextChar === "/") {
          commentEndChar = "\n";
        } else if (nextChar === "*") {
          commentEndChar = "*/";
        }
        endIdx = token.indexOf(commentEndChar, startIdx + 1 + 1);
        if (endIdx !== -1) {
          endIdx = endIdx + commentEndChar.length - 1;
          text = token.substring(idx, endIdx + 1);
          return {
            idx: endIdx,
            text
          };
        } else {
          var error = "css expression error: unfinished comment in expression!";
          return {
            error
          };
        }
      } else {
        return false;
      }
    };
    CSSOM.CSSValueExpression.prototype._parseJSString = function(token, idx, sep) {
      var endIdx = this._findMatchedIdx(token, idx, sep), text;
      if (endIdx === -1) {
        return false;
      } else {
        text = token.substring(idx, endIdx + sep.length);
        return {
          idx: endIdx,
          text
        };
      }
    };
    CSSOM.CSSValueExpression.prototype._parseJSRexExp = function(token, idx) {
      var before = token.substring(0, idx).replace(/\s+$/, ""), legalRegx = [
        /^$/,
        /\($/,
        /\[$/,
        /\!$/,
        /\+$/,
        /\-$/,
        /\*$/,
        /\/\s+/,
        /\%$/,
        /\=$/,
        /\>$/,
        /<$/,
        /\&$/,
        /\|$/,
        /\^$/,
        /\~$/,
        /\?$/,
        /\,$/,
        /delete$/,
        /in$/,
        /instanceof$/,
        /new$/,
        /typeof$/,
        /void$/
      ];
      var isLegal = legalRegx.some(function(reg) {
        return reg.test(before);
      });
      if (!isLegal) {
        return false;
      } else {
        var sep = "/";
        return this._parseJSString(token, idx, sep);
      }
    };
    CSSOM.CSSValueExpression.prototype._findMatchedIdx = function(token, idx, sep) {
      var startIdx = idx, endIdx;
      var NOT_FOUND = -1;
      while (true) {
        endIdx = token.indexOf(sep, startIdx + 1);
        if (endIdx === -1) {
          endIdx = NOT_FOUND;
          break;
        } else {
          var text = token.substring(idx + 1, endIdx), matched = text.match(/\\+$/);
          if (!matched || matched[0] % 2 === 0) {
            break;
          } else {
            startIdx = endIdx;
          }
        }
      }
      var nextNewLineIdx = token.indexOf("\n", idx + 1);
      if (nextNewLineIdx < endIdx) {
        endIdx = NOT_FOUND;
      }
      return endIdx;
    };
    exports.CSSValueExpression = CSSOM.CSSValueExpression;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/MatcherList.js
var require_MatcherList2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/MatcherList.js"(exports) {
    var CSSOM = {};
    CSSOM.MatcherList = function MatcherList() {
      this.length = 0;
    };
    CSSOM.MatcherList.prototype = {
      constructor: CSSOM.MatcherList,
      /**
       * @return {string}
       */
      get matcherText() {
        return Array.prototype.join.call(this, ", ");
      },
      /**
       * @param {string} value
       */
      set matcherText(value2) {
        var values = value2.split(",");
        var length2 = this.length = values.length;
        for (var i5 = 0; i5 < length2; i5++) {
          this[i5] = values[i5].trim();
        }
      },
      /**
       * @param {string} matcher
       */
      appendMatcher: function(matcher) {
        if (Array.prototype.indexOf.call(this, matcher) === -1) {
          this[this.length] = matcher;
          this.length++;
        }
      },
      /**
       * @param {string} matcher
       */
      deleteMatcher: function(matcher) {
        var index2 = Array.prototype.indexOf.call(this, matcher);
        if (index2 !== -1) {
          Array.prototype.splice.call(this, index2, 1);
        }
      }
    };
    exports.MatcherList = CSSOM.MatcherList;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSDocumentRule.js
var require_CSSDocumentRule2 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSDocumentRule.js"(exports) {
    var CSSOM = {
      CSSRule: require_CSSRule2().CSSRule,
      MatcherList: require_MatcherList2().MatcherList
    };
    CSSOM.CSSDocumentRule = function CSSDocumentRule() {
      CSSOM.CSSRule.call(this);
      this.matcher = new CSSOM.MatcherList();
      this.cssRules = [];
    };
    CSSOM.CSSDocumentRule.prototype = new CSSOM.CSSRule();
    CSSOM.CSSDocumentRule.prototype.constructor = CSSOM.CSSDocumentRule;
    CSSOM.CSSDocumentRule.prototype.type = 10;
    Object.defineProperty(CSSOM.CSSDocumentRule.prototype, "cssText", {
      get: function() {
        var cssTexts = [];
        for (var i5 = 0, length2 = this.cssRules.length; i5 < length2; i5++) {
          cssTexts.push(this.cssRules[i5].cssText);
        }
        return "@-moz-document " + this.matcher.matcherText + " {" + cssTexts.join("") + "}";
      }
    });
    exports.CSSDocumentRule = CSSOM.CSSDocumentRule;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/parse.js
var require_parse9 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/parse.js"(exports) {
    var CSSOM = {};
    CSSOM.parse = function parse3(token) {
      var i5 = 0;
      var state = "before-selector";
      var index2;
      var buffer = "";
      var valueParenthesisDepth = 0;
      var SIGNIFICANT_WHITESPACE = {
        "selector": true,
        "value": true,
        "value-parenthesis": true,
        "atRule": true,
        "importRule-begin": true,
        "importRule": true,
        "atBlock": true,
        "conditionBlock": true,
        "documentRule-begin": true
      };
      var styleSheet = new CSSOM.CSSStyleSheet();
      var currentScope = styleSheet;
      var parentRule;
      var ancestorRules = [];
      var hasAncestors = false;
      var prevScope;
      var name, priority = "", styleRule, mediaRule, supportsRule, importRule, fontFaceRule, keyframesRule, documentRule, hostRule;
      var atKeyframesRegExp = /@(-(?:\w+-)+)?keyframes/g;
      var parseError = function(message) {
        var lines = token.substring(0, i5).split("\n");
        var lineCount = lines.length;
        var charCount = lines.pop().length + 1;
        var error = new Error(message + " (line " + lineCount + ", char " + charCount + ")");
        error.line = lineCount;
        error["char"] = charCount;
        error.styleSheet = styleSheet;
        throw error;
      };
      for (var character; character = token.charAt(i5); i5++) {
        switch (character) {
          case " ":
          case "	":
          case "\r":
          case "\n":
          case "\f":
            if (SIGNIFICANT_WHITESPACE[state]) {
              buffer += character;
            }
            break;
          // String
          case '"':
            index2 = i5 + 1;
            do {
              index2 = token.indexOf('"', index2) + 1;
              if (!index2) {
                parseError('Unmatched "');
              }
            } while (token[index2 - 2] === "\\");
            buffer += token.slice(i5, index2);
            i5 = index2 - 1;
            switch (state) {
              case "before-value":
                state = "value";
                break;
              case "importRule-begin":
                state = "importRule";
                break;
            }
            break;
          case "'":
            index2 = i5 + 1;
            do {
              index2 = token.indexOf("'", index2) + 1;
              if (!index2) {
                parseError("Unmatched '");
              }
            } while (token[index2 - 2] === "\\");
            buffer += token.slice(i5, index2);
            i5 = index2 - 1;
            switch (state) {
              case "before-value":
                state = "value";
                break;
              case "importRule-begin":
                state = "importRule";
                break;
            }
            break;
          // Comment
          case "/":
            if (token.charAt(i5 + 1) === "*") {
              i5 += 2;
              index2 = token.indexOf("*/", i5);
              if (index2 === -1) {
                parseError("Missing */");
              } else {
                i5 = index2 + 1;
              }
            } else {
              buffer += character;
            }
            if (state === "importRule-begin") {
              buffer += " ";
              state = "importRule";
            }
            break;
          // At-rule
          case "@":
            if (token.indexOf("@-moz-document", i5) === i5) {
              state = "documentRule-begin";
              documentRule = new CSSOM.CSSDocumentRule();
              documentRule.__starts = i5;
              i5 += "-moz-document".length;
              buffer = "";
              break;
            } else if (token.indexOf("@media", i5) === i5) {
              state = "atBlock";
              mediaRule = new CSSOM.CSSMediaRule();
              mediaRule.__starts = i5;
              i5 += "media".length;
              buffer = "";
              break;
            } else if (token.indexOf("@supports", i5) === i5) {
              state = "conditionBlock";
              supportsRule = new CSSOM.CSSSupportsRule();
              supportsRule.__starts = i5;
              i5 += "supports".length;
              buffer = "";
              break;
            } else if (token.indexOf("@host", i5) === i5) {
              state = "hostRule-begin";
              i5 += "host".length;
              hostRule = new CSSOM.CSSHostRule();
              hostRule.__starts = i5;
              buffer = "";
              break;
            } else if (token.indexOf("@import", i5) === i5) {
              state = "importRule-begin";
              i5 += "import".length;
              buffer += "@import";
              break;
            } else if (token.indexOf("@font-face", i5) === i5) {
              state = "fontFaceRule-begin";
              i5 += "font-face".length;
              fontFaceRule = new CSSOM.CSSFontFaceRule();
              fontFaceRule.__starts = i5;
              buffer = "";
              break;
            } else {
              atKeyframesRegExp.lastIndex = i5;
              var matchKeyframes = atKeyframesRegExp.exec(token);
              if (matchKeyframes && matchKeyframes.index === i5) {
                state = "keyframesRule-begin";
                keyframesRule = new CSSOM.CSSKeyframesRule();
                keyframesRule.__starts = i5;
                keyframesRule._vendorPrefix = matchKeyframes[1];
                i5 += matchKeyframes[0].length - 1;
                buffer = "";
                break;
              } else if (state === "selector") {
                state = "atRule";
              }
            }
            buffer += character;
            break;
          case "{":
            if (state === "selector" || state === "atRule") {
              styleRule.selectorText = buffer.trim();
              styleRule.style.__starts = i5;
              buffer = "";
              state = "before-name";
            } else if (state === "atBlock") {
              mediaRule.media.mediaText = buffer.trim();
              if (parentRule) {
                ancestorRules.push(parentRule);
              }
              currentScope = parentRule = mediaRule;
              mediaRule.parentStyleSheet = styleSheet;
              buffer = "";
              state = "before-selector";
            } else if (state === "conditionBlock") {
              supportsRule.conditionText = buffer.trim();
              if (parentRule) {
                ancestorRules.push(parentRule);
              }
              currentScope = parentRule = supportsRule;
              supportsRule.parentStyleSheet = styleSheet;
              buffer = "";
              state = "before-selector";
            } else if (state === "hostRule-begin") {
              if (parentRule) {
                ancestorRules.push(parentRule);
              }
              currentScope = parentRule = hostRule;
              hostRule.parentStyleSheet = styleSheet;
              buffer = "";
              state = "before-selector";
            } else if (state === "fontFaceRule-begin") {
              if (parentRule) {
                fontFaceRule.parentRule = parentRule;
              }
              fontFaceRule.parentStyleSheet = styleSheet;
              styleRule = fontFaceRule;
              buffer = "";
              state = "before-name";
            } else if (state === "keyframesRule-begin") {
              keyframesRule.name = buffer.trim();
              if (parentRule) {
                ancestorRules.push(parentRule);
                keyframesRule.parentRule = parentRule;
              }
              keyframesRule.parentStyleSheet = styleSheet;
              currentScope = parentRule = keyframesRule;
              buffer = "";
              state = "keyframeRule-begin";
            } else if (state === "keyframeRule-begin") {
              styleRule = new CSSOM.CSSKeyframeRule();
              styleRule.keyText = buffer.trim();
              styleRule.__starts = i5;
              buffer = "";
              state = "before-name";
            } else if (state === "documentRule-begin") {
              documentRule.matcher.matcherText = buffer.trim();
              if (parentRule) {
                ancestorRules.push(parentRule);
                documentRule.parentRule = parentRule;
              }
              currentScope = parentRule = documentRule;
              documentRule.parentStyleSheet = styleSheet;
              buffer = "";
              state = "before-selector";
            }
            break;
          case ":":
            if (state === "name") {
              name = buffer.trim();
              buffer = "";
              state = "before-value";
            } else {
              buffer += character;
            }
            break;
          case "(":
            if (state === "value") {
              if (buffer.trim() === "expression") {
                var info = new CSSOM.CSSValueExpression(token, i5).parse();
                if (info.error) {
                  parseError(info.error);
                } else {
                  buffer += info.expression;
                  i5 = info.idx;
                }
              } else {
                state = "value-parenthesis";
                valueParenthesisDepth = 1;
                buffer += character;
              }
            } else if (state === "value-parenthesis") {
              valueParenthesisDepth++;
              buffer += character;
            } else {
              buffer += character;
            }
            break;
          case ")":
            if (state === "value-parenthesis") {
              valueParenthesisDepth--;
              if (valueParenthesisDepth === 0) state = "value";
            }
            buffer += character;
            break;
          case "!":
            if (state === "value" && token.indexOf("!important", i5) === i5) {
              priority = "important";
              i5 += "important".length;
            } else {
              buffer += character;
            }
            break;
          case ";":
            switch (state) {
              case "value":
                styleRule.style.setProperty(name, buffer.trim(), priority);
                priority = "";
                buffer = "";
                state = "before-name";
                break;
              case "atRule":
                buffer = "";
                state = "before-selector";
                break;
              case "importRule":
                importRule = new CSSOM.CSSImportRule();
                importRule.parentStyleSheet = importRule.styleSheet.parentStyleSheet = styleSheet;
                importRule.cssText = buffer + character;
                styleSheet.cssRules.push(importRule);
                buffer = "";
                state = "before-selector";
                break;
              default:
                buffer += character;
                break;
            }
            break;
          case "}":
            switch (state) {
              case "value":
                styleRule.style.setProperty(name, buffer.trim(), priority);
                priority = "";
              /* falls through */
              case "before-name":
              case "name":
                styleRule.__ends = i5 + 1;
                if (parentRule) {
                  styleRule.parentRule = parentRule;
                }
                styleRule.parentStyleSheet = styleSheet;
                currentScope.cssRules.push(styleRule);
                buffer = "";
                if (currentScope.constructor === CSSOM.CSSKeyframesRule) {
                  state = "keyframeRule-begin";
                } else {
                  state = "before-selector";
                }
                break;
              case "keyframeRule-begin":
              case "before-selector":
              case "selector":
                if (!parentRule) {
                  parseError("Unexpected }");
                }
                hasAncestors = ancestorRules.length > 0;
                while (ancestorRules.length > 0) {
                  parentRule = ancestorRules.pop();
                  if (parentRule.constructor.name === "CSSMediaRule" || parentRule.constructor.name === "CSSSupportsRule") {
                    prevScope = currentScope;
                    currentScope = parentRule;
                    currentScope.cssRules.push(prevScope);
                    break;
                  }
                  if (ancestorRules.length === 0) {
                    hasAncestors = false;
                  }
                }
                if (!hasAncestors) {
                  currentScope.__ends = i5 + 1;
                  styleSheet.cssRules.push(currentScope);
                  currentScope = styleSheet;
                  parentRule = null;
                }
                buffer = "";
                state = "before-selector";
                break;
            }
            break;
          default:
            switch (state) {
              case "before-selector":
                state = "selector";
                styleRule = new CSSOM.CSSStyleRule();
                styleRule.__starts = i5;
                break;
              case "before-name":
                state = "name";
                break;
              case "before-value":
                state = "value";
                break;
              case "importRule-begin":
                state = "importRule";
                break;
            }
            buffer += character;
            break;
        }
      }
      return styleSheet;
    };
    exports.parse = CSSOM.parse;
    CSSOM.CSSStyleSheet = require_CSSStyleSheet2().CSSStyleSheet;
    CSSOM.CSSStyleRule = require_CSSStyleRule2().CSSStyleRule;
    CSSOM.CSSImportRule = require_CSSImportRule2().CSSImportRule;
    CSSOM.CSSGroupingRule = require_CSSGroupingRule2().CSSGroupingRule;
    CSSOM.CSSMediaRule = require_CSSMediaRule2().CSSMediaRule;
    CSSOM.CSSConditionRule = require_CSSConditionRule2().CSSConditionRule;
    CSSOM.CSSSupportsRule = require_CSSSupportsRule2().CSSSupportsRule;
    CSSOM.CSSFontFaceRule = require_CSSFontFaceRule2().CSSFontFaceRule;
    CSSOM.CSSHostRule = require_CSSHostRule2().CSSHostRule;
    CSSOM.CSSStyleDeclaration = require_CSSStyleDeclaration3().CSSStyleDeclaration;
    CSSOM.CSSKeyframeRule = require_CSSKeyframeRule2().CSSKeyframeRule;
    CSSOM.CSSKeyframesRule = require_CSSKeyframesRule2().CSSKeyframesRule;
    CSSOM.CSSValueExpression = require_CSSValueExpression2().CSSValueExpression;
    CSSOM.CSSDocumentRule = require_CSSDocumentRule2().CSSDocumentRule;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSStyleDeclaration.js
var require_CSSStyleDeclaration3 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/CSSStyleDeclaration.js"(exports) {
    var CSSOM = {};
    CSSOM.CSSStyleDeclaration = function CSSStyleDeclaration() {
      this.length = 0;
      this.parentRule = null;
      this._importants = {};
    };
    CSSOM.CSSStyleDeclaration.prototype = {
      constructor: CSSOM.CSSStyleDeclaration,
      /**
       *
       * @param {string} name
       * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-getPropertyValue
       * @return {string} the value of the property if it has been explicitly set for this declaration block.
       * Returns the empty string if the property has not been set.
       */
      getPropertyValue: function(name) {
        return this[name] || "";
      },
      /**
       *
       * @param {string} name
       * @param {string} value
       * @param {string} [priority=null] "important" or null
       * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-setProperty
       */
      setProperty: function(name, value2, priority) {
        if (this[name]) {
          var index2 = Array.prototype.indexOf.call(this, name);
          if (index2 < 0) {
            this[this.length] = name;
            this.length++;
          }
        } else {
          this[this.length] = name;
          this.length++;
        }
        this[name] = value2 + "";
        this._importants[name] = priority;
      },
      /**
       *
       * @param {string} name
       * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-removeProperty
       * @return {string} the value of the property if it has been explicitly set for this declaration block.
       * Returns the empty string if the property has not been set or the property name does not correspond to a known CSS property.
       */
      removeProperty: function(name) {
        if (!(name in this)) {
          return "";
        }
        var index2 = Array.prototype.indexOf.call(this, name);
        if (index2 < 0) {
          return "";
        }
        var prevValue = this[name];
        this[name] = "";
        Array.prototype.splice.call(this, index2, 1);
        return prevValue;
      },
      getPropertyCSSValue: function() {
      },
      /**
       *
       * @param {String} name
       */
      getPropertyPriority: function(name) {
        return this._importants[name] || "";
      },
      /**
       *   element.style.overflow = "auto"
       *   element.style.getPropertyShorthand("overflow-x")
       *   -> "overflow"
       */
      getPropertyShorthand: function() {
      },
      isPropertyImplicit: function() {
      },
      // Doesn't work in IE < 9
      get cssText() {
        var properties = [];
        for (var i5 = 0, length2 = this.length; i5 < length2; ++i5) {
          var name = this[i5];
          var value2 = this.getPropertyValue(name);
          var priority = this.getPropertyPriority(name);
          if (priority) {
            priority = " !" + priority;
          }
          properties[i5] = name + ": " + value2 + priority + ";";
        }
        return properties.join(" ");
      },
      set cssText(text) {
        var i5, name;
        for (i5 = this.length; i5--; ) {
          name = this[i5];
          this[name] = "";
        }
        Array.prototype.splice.call(this, 0, this.length);
        this._importants = {};
        var dummyRule = CSSOM.parse("#bogus{" + text + "}").cssRules[0].style;
        var length2 = dummyRule.length;
        for (i5 = 0; i5 < length2; ++i5) {
          name = dummyRule[i5];
          this.setProperty(dummyRule[i5], dummyRule.getPropertyValue(name), dummyRule.getPropertyPriority(name));
        }
      }
    };
    exports.CSSStyleDeclaration = CSSOM.CSSStyleDeclaration;
    CSSOM.parse = require_parse9().parse;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/clone.js
var require_clone3 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/clone.js"(exports) {
    var CSSOM = {
      CSSStyleSheet: require_CSSStyleSheet2().CSSStyleSheet,
      CSSRule: require_CSSRule2().CSSRule,
      CSSStyleRule: require_CSSStyleRule2().CSSStyleRule,
      CSSGroupingRule: require_CSSGroupingRule2().CSSGroupingRule,
      CSSConditionRule: require_CSSConditionRule2().CSSConditionRule,
      CSSMediaRule: require_CSSMediaRule2().CSSMediaRule,
      CSSSupportsRule: require_CSSSupportsRule2().CSSSupportsRule,
      CSSStyleDeclaration: require_CSSStyleDeclaration3().CSSStyleDeclaration,
      CSSKeyframeRule: require_CSSKeyframeRule2().CSSKeyframeRule,
      CSSKeyframesRule: require_CSSKeyframesRule2().CSSKeyframesRule
    };
    CSSOM.clone = function clone(stylesheet) {
      var cloned = new CSSOM.CSSStyleSheet();
      var rules = stylesheet.cssRules;
      if (!rules) {
        return cloned;
      }
      for (var i5 = 0, rulesLength = rules.length; i5 < rulesLength; i5++) {
        var rule = rules[i5];
        var ruleClone = cloned.cssRules[i5] = new rule.constructor();
        var style = rule.style;
        if (style) {
          var styleClone = ruleClone.style = new CSSOM.CSSStyleDeclaration();
          for (var j = 0, styleLength = style.length; j < styleLength; j++) {
            var name = styleClone[j] = style[j];
            styleClone[name] = style[name];
            styleClone._importants[name] = style.getPropertyPriority(name);
          }
          styleClone.length = style.length;
        }
        if (rule.hasOwnProperty("keyText")) {
          ruleClone.keyText = rule.keyText;
        }
        if (rule.hasOwnProperty("selectorText")) {
          ruleClone.selectorText = rule.selectorText;
        }
        if (rule.hasOwnProperty("mediaText")) {
          ruleClone.mediaText = rule.mediaText;
        }
        if (rule.hasOwnProperty("conditionText")) {
          ruleClone.conditionText = rule.conditionText;
        }
        if (rule.hasOwnProperty("cssRules")) {
          ruleClone.cssRules = clone(rule).cssRules;
        }
      }
      return cloned;
    };
    exports.clone = CSSOM.clone;
  }
});

// ../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/index.js
var require_lib22 = __commonJS({
  "../../node_modules/.pnpm/cssom@0.5.0/node_modules/cssom/lib/index.js"(exports) {
    "use strict";
    exports.CSSStyleDeclaration = require_CSSStyleDeclaration3().CSSStyleDeclaration;
    exports.CSSRule = require_CSSRule2().CSSRule;
    exports.CSSGroupingRule = require_CSSGroupingRule2().CSSGroupingRule;
    exports.CSSConditionRule = require_CSSConditionRule2().CSSConditionRule;
    exports.CSSStyleRule = require_CSSStyleRule2().CSSStyleRule;
    exports.MediaList = require_MediaList2().MediaList;
    exports.CSSMediaRule = require_CSSMediaRule2().CSSMediaRule;
    exports.CSSSupportsRule = require_CSSSupportsRule2().CSSSupportsRule;
    exports.CSSImportRule = require_CSSImportRule2().CSSImportRule;
    exports.CSSFontFaceRule = require_CSSFontFaceRule2().CSSFontFaceRule;
    exports.CSSHostRule = require_CSSHostRule2().CSSHostRule;
    exports.StyleSheet = require_StyleSheet2().StyleSheet;
    exports.CSSStyleSheet = require_CSSStyleSheet2().CSSStyleSheet;
    exports.CSSKeyframesRule = require_CSSKeyframesRule2().CSSKeyframesRule;
    exports.CSSKeyframeRule = require_CSSKeyframeRule2().CSSKeyframeRule;
    exports.MatcherList = require_MatcherList2().MatcherList;
    exports.CSSDocumentRule = require_CSSDocumentRule2().CSSDocumentRule;
    exports.CSSValue = require_CSSValue2().CSSValue;
    exports.CSSValueExpression = require_CSSValueExpression2().CSSValueExpression;
    exports.parse = require_parse9().parse;
    exports.clone = require_clone3().clone;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/style-element.js
var require_style_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/style-element.js"(exports) {
    "use strict";
    var { parse: parse3 } = require_lib22();
    var { registerHTMLClass } = require_register_html_class();
    var { SHEET } = require_symbols3();
    var { TextElement } = require_text_element();
    var tagName = "style";
    var HTMLStyleElement = class extends TextElement {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
        this[SHEET] = null;
      }
      get sheet() {
        const sheet = this[SHEET];
        if (sheet !== null) {
          return sheet;
        }
        return this[SHEET] = parse3(this.textContent);
      }
      get innerHTML() {
        return super.innerHTML || "";
      }
      set innerHTML(value2) {
        super.textContent = value2;
        this[SHEET] = null;
      }
      get innerText() {
        return super.innerText || "";
      }
      set innerText(value2) {
        super.textContent = value2;
        this[SHEET] = null;
      }
      get textContent() {
        return super.textContent || "";
      }
      set textContent(value2) {
        super.textContent = value2;
        this[SHEET] = null;
      }
    };
    registerHTMLClass(tagName, HTMLStyleElement);
    exports.HTMLStyleElement = HTMLStyleElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/time-element.js
var require_time_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/time-element.js"(exports) {
    "use strict";
    var { stringAttribute } = require_attributes6();
    var { registerHTMLClass } = require_register_html_class();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLTimeElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "time") {
        super(ownerDocument, localName);
      }
      /**
       * @type {string}
       */
      get dateTime() {
        return stringAttribute.get(this, "datetime");
      }
      set dateTime(value2) {
        stringAttribute.set(this, "datetime", value2);
      }
    };
    registerHTMLClass("time", HTMLTimeElement);
    exports.HTMLTimeElement = HTMLTimeElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/field-set-element.js
var require_field_set_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/field-set-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLFieldSetElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "fieldset") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLFieldSetElement = HTMLFieldSetElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/embed-element.js
var require_embed_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/embed-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLEmbedElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "embed") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLEmbedElement = HTMLEmbedElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/hr-element.js
var require_hr_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/hr-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLHRElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "hr") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLHRElement = HTMLHRElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/progress-element.js
var require_progress_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/progress-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLProgressElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "progress") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLProgressElement = HTMLProgressElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/paragraph-element.js
var require_paragraph_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/paragraph-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLParagraphElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "p") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLParagraphElement = HTMLParagraphElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/table-element.js
var require_table_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/table-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLTableElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "table") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLTableElement = HTMLTableElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/frame-set-element.js
var require_frame_set_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/frame-set-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLFrameSetElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "frameset") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLFrameSetElement = HTMLFrameSetElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/li-element.js
var require_li_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/li-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLLIElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "li") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLLIElement = HTMLLIElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/base-element.js
var require_base_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/base-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLBaseElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "base") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLBaseElement = HTMLBaseElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/data-list-element.js
var require_data_list_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/data-list-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLDataListElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "datalist") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLDataListElement = HTMLDataListElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/input-element.js
var require_input_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/input-element.js"(exports) {
    "use strict";
    var { registerHTMLClass } = require_register_html_class();
    var { booleanAttribute, stringAttribute } = require_attributes6();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var tagName = "input";
    var HTMLInputElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
      /* c8 ignore start */
      get autofocus() {
        return booleanAttribute.get(this, "autofocus") || -1;
      }
      set autofocus(value2) {
        booleanAttribute.set(this, "autofocus", value2);
      }
      get disabled() {
        return booleanAttribute.get(this, "disabled");
      }
      set disabled(value2) {
        booleanAttribute.set(this, "disabled", value2);
      }
      get name() {
        return this.getAttribute("name");
      }
      set name(value2) {
        this.setAttribute("name", value2);
      }
      get placeholder() {
        return this.getAttribute("placeholder");
      }
      set placeholder(value2) {
        this.setAttribute("placeholder", value2);
      }
      get type() {
        return this.getAttribute("type");
      }
      set type(value2) {
        this.setAttribute("type", value2);
      }
      get value() {
        return stringAttribute.get(this, "value");
      }
      set value(value2) {
        stringAttribute.set(this, "value", value2);
      }
      /* c8 ignore stop */
    };
    registerHTMLClass(tagName, HTMLInputElement);
    exports.HTMLInputElement = HTMLInputElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/param-element.js
var require_param_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/param-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLParamElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "param") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLParamElement = HTMLParamElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/media-element.js
var require_media_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/media-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLMediaElement2 = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "media") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLMediaElement = HTMLMediaElement2;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/audio-element.js
var require_audio_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/audio-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLAudioElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "audio") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLAudioElement = HTMLAudioElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/heading-element.js
var require_heading_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/heading-element.js"(exports) {
    "use strict";
    var { registerHTMLClass } = require_register_html_class();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var tagName = "h1";
    var HTMLHeadingElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
    };
    registerHTMLClass([tagName, "h2", "h3", "h4", "h5", "h6"], HTMLHeadingElement);
    exports.HTMLHeadingElement = HTMLHeadingElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/directory-element.js
var require_directory_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/directory-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLDirectoryElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "dir") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLDirectoryElement = HTMLDirectoryElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/quote-element.js
var require_quote_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/quote-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLQuoteElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "quote") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLQuoteElement = HTMLQuoteElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/commonjs/canvas-shim.cjs
var require_canvas_shim = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/commonjs/canvas-shim.cjs"(exports, module) {
    var Canvas2 = class {
      constructor(width, height2) {
        this.width = width;
        this.height = height2;
      }
      getContext() {
        return null;
      }
      toDataURL() {
        return "";
      }
    };
    module.exports = {
      createCanvas: (width, height2) => new Canvas2(width, height2)
    };
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/commonjs/canvas.cjs
var require_canvas = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/commonjs/canvas.cjs"(exports, module) {
    try {
      module.exports = (init_canvas(), __toCommonJS(canvas_exports));
    } catch (fallback) {
      module.exports = require_canvas_shim();
    }
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/canvas-element.js
var require_canvas_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/canvas-element.js"(exports) {
    "use strict";
    var { IMAGE } = require_symbols3();
    var { registerHTMLClass } = require_register_html_class();
    var { numericAttribute } = require_attributes6();
    var Canvas2 = require_canvas();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var { createCanvas } = Canvas2;
    var tagName = "canvas";
    var HTMLCanvasElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
        this[IMAGE] = createCanvas(300, 150);
      }
      get width() {
        return this[IMAGE].width;
      }
      set width(value2) {
        numericAttribute.set(this, "width", value2);
        this[IMAGE].width = value2;
      }
      get height() {
        return this[IMAGE].height;
      }
      set height(value2) {
        numericAttribute.set(this, "height", value2);
        this[IMAGE].height = value2;
      }
      getContext(type) {
        return this[IMAGE].getContext(type);
      }
      toDataURL(...args) {
        return this[IMAGE].toDataURL(...args);
      }
    };
    registerHTMLClass(tagName, HTMLCanvasElement);
    exports.HTMLCanvasElement = HTMLCanvasElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/legend-element.js
var require_legend_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/legend-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLLegendElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "legend") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLLegendElement = HTMLLegendElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/option-element.js
var require_option_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/option-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var { booleanAttribute, stringAttribute } = require_attributes6();
    var { registerHTMLClass } = require_register_html_class();
    var tagName = "option";
    var HTMLOptionElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
      /* c8 ignore start */
      get value() {
        return stringAttribute.get(this, "value");
      }
      set value(value2) {
        stringAttribute.set(this, "value", value2);
      }
      /* c8 ignore stop */
      get selected() {
        return booleanAttribute.get(this, "selected");
      }
      set selected(value2) {
        const option = this.parentElement?.querySelector("option[selected]");
        if (option && option !== this)
          option.selected = false;
        booleanAttribute.set(this, "selected", value2);
      }
    };
    registerHTMLClass(tagName, HTMLOptionElement);
    exports.HTMLOptionElement = HTMLOptionElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/span-element.js
var require_span_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/span-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLSpanElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "span") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLSpanElement = HTMLSpanElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/meter-element.js
var require_meter_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/meter-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLMeterElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "meter") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLMeterElement = HTMLMeterElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/video-element.js
var require_video_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/video-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLVideoElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "video") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLVideoElement = HTMLVideoElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/table-cell-element.js
var require_table_cell_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/table-cell-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLTableCellElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "td") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLTableCellElement = HTMLTableCellElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/title-element.js
var require_title_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/title-element.js"(exports) {
    "use strict";
    var { registerHTMLClass } = require_register_html_class();
    var { TextElement } = require_text_element();
    var tagName = "title";
    var HTMLTitleElement = class extends TextElement {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
    };
    registerHTMLClass(tagName, HTMLTitleElement);
    exports.HTMLTitleElement = HTMLTitleElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/output-element.js
var require_output_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/output-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLOutputElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "output") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLOutputElement = HTMLOutputElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/table-row-element.js
var require_table_row_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/table-row-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLTableRowElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "tr") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLTableRowElement = HTMLTableRowElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/data-element.js
var require_data_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/data-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLDataElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "data") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLDataElement = HTMLDataElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/menu-element.js
var require_menu_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/menu-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLMenuElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "menu") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLMenuElement = HTMLMenuElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/select-element.js
var require_select_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/select-element.js"(exports) {
    "use strict";
    var { registerHTMLClass } = require_register_html_class();
    var { booleanAttribute } = require_attributes6();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var { NodeList } = require_node_list();
    var tagName = "select";
    var HTMLSelectElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
      get options() {
        let children = new NodeList();
        let { firstElementChild } = this;
        while (firstElementChild) {
          if (firstElementChild.tagName === "OPTGROUP")
            children.push(...firstElementChild.children);
          else
            children.push(firstElementChild);
          firstElementChild = firstElementChild.nextElementSibling;
        }
        return children;
      }
      /* c8 ignore start */
      get disabled() {
        return booleanAttribute.get(this, "disabled");
      }
      set disabled(value2) {
        booleanAttribute.set(this, "disabled", value2);
      }
      get name() {
        return this.getAttribute("name");
      }
      set name(value2) {
        this.setAttribute("name", value2);
      }
      /* c8 ignore stop */
      get value() {
        return this.querySelector("option[selected]")?.value;
      }
    };
    registerHTMLClass(tagName, HTMLSelectElement);
    exports.HTMLSelectElement = HTMLSelectElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/br-element.js
var require_br_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/br-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLBRElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "br") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLBRElement = HTMLBRElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/button-element.js
var require_button_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/button-element.js"(exports) {
    "use strict";
    var { registerHTMLClass } = require_register_html_class();
    var { booleanAttribute } = require_attributes6();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var tagName = "button";
    var HTMLButtonElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
      /* c8 ignore start */
      get disabled() {
        return booleanAttribute.get(this, "disabled");
      }
      set disabled(value2) {
        booleanAttribute.set(this, "disabled", value2);
      }
      get name() {
        return this.getAttribute("name");
      }
      set name(value2) {
        this.setAttribute("name", value2);
      }
      get type() {
        return this.getAttribute("type");
      }
      set type(value2) {
        this.setAttribute("type", value2);
      }
      /* c8 ignore stop */
    };
    registerHTMLClass(tagName, HTMLButtonElement);
    exports.HTMLButtonElement = HTMLButtonElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/map-element.js
var require_map_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/map-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLMapElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "map") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLMapElement = HTMLMapElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/opt-group-element.js
var require_opt_group_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/opt-group-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLOptGroupElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "optgroup") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLOptGroupElement = HTMLOptGroupElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/d-list-element.js
var require_d_list_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/d-list-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLDListElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "dl") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLDListElement = HTMLDListElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/text-area-element.js
var require_text_area_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/text-area-element.js"(exports) {
    "use strict";
    var { registerHTMLClass } = require_register_html_class();
    var { booleanAttribute } = require_attributes6();
    var { TextElement } = require_text_element();
    var tagName = "textarea";
    var HTMLTextAreaElement = class extends TextElement {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
      /* c8 ignore start */
      get disabled() {
        return booleanAttribute.get(this, "disabled");
      }
      set disabled(value2) {
        booleanAttribute.set(this, "disabled", value2);
      }
      get name() {
        return this.getAttribute("name");
      }
      set name(value2) {
        this.setAttribute("name", value2);
      }
      get placeholder() {
        return this.getAttribute("placeholder");
      }
      set placeholder(value2) {
        this.setAttribute("placeholder", value2);
      }
      get type() {
        return this.getAttribute("type");
      }
      set type(value2) {
        this.setAttribute("type", value2);
      }
      get value() {
        return this.textContent;
      }
      set value(content) {
        this.textContent = content;
      }
      /* c8 ignore stop */
    };
    registerHTMLClass(tagName, HTMLTextAreaElement);
    exports.HTMLTextAreaElement = HTMLTextAreaElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/font-element.js
var require_font_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/font-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLFontElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "font") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLFontElement = HTMLFontElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/div-element.js
var require_div_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/div-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLDivElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "div") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLDivElement = HTMLDivElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/link-element.js
var require_link_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/link-element.js"(exports) {
    "use strict";
    var { registerHTMLClass } = require_register_html_class();
    var { booleanAttribute, stringAttribute } = require_attributes6();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var tagName = "link";
    var HTMLLinkElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
      /* c8 ignore start */
      // copy paste from img.src, already covered
      get disabled() {
        return booleanAttribute.get(this, "disabled");
      }
      set disabled(value2) {
        booleanAttribute.set(this, "disabled", value2);
      }
      get href() {
        return stringAttribute.get(this, "href").trim();
      }
      set href(value2) {
        stringAttribute.set(this, "href", value2);
      }
      get hreflang() {
        return stringAttribute.get(this, "hreflang");
      }
      set hreflang(value2) {
        stringAttribute.set(this, "hreflang", value2);
      }
      get media() {
        return stringAttribute.get(this, "media");
      }
      set media(value2) {
        stringAttribute.set(this, "media", value2);
      }
      get rel() {
        return stringAttribute.get(this, "rel");
      }
      set rel(value2) {
        stringAttribute.set(this, "rel", value2);
      }
      get type() {
        return stringAttribute.get(this, "type");
      }
      set type(value2) {
        stringAttribute.set(this, "type", value2);
      }
      /* c8 ignore stop */
    };
    registerHTMLClass(tagName, HTMLLinkElement);
    exports.HTMLLinkElement = HTMLLinkElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/slot-element.js
var require_slot_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/slot-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var { registerHTMLClass } = require_register_html_class();
    var tagName = "slot";
    var HTMLSlotElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
      /* c8 ignore start */
      get name() {
        return this.getAttribute("name");
      }
      set name(value2) {
        this.setAttribute("name", value2);
      }
      assign() {
      }
      assignedNodes(options) {
        const isNamedSlot = !!this.name;
        const hostChildNodes = this.getRootNode().host?.childNodes ?? [];
        let slottables;
        if (isNamedSlot) {
          slottables = [...hostChildNodes].filter((node) => node.slot === this.name);
        } else {
          slottables = [...hostChildNodes].filter((node) => !node.slot);
        }
        if (options?.flatten) {
          const result = [];
          for (let slottable of slottables) {
            if (slottable.localName === "slot") {
              result.push(...slottable.assignedNodes({ flatten: true }));
            } else {
              result.push(slottable);
            }
          }
          slottables = result;
        }
        return slottables.length ? slottables : [...this.childNodes];
      }
      assignedElements(options) {
        const slottables = this.assignedNodes(options).filter((n6) => n6.nodeType === 1);
        return slottables.length ? slottables : [...this.children];
      }
      /* c8 ignore stop */
    };
    registerHTMLClass(tagName, HTMLSlotElement);
    exports.HTMLSlotElement = HTMLSlotElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/form-element.js
var require_form_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/form-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLFormElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "form") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLFormElement = HTMLFormElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/image-element.js
var require_image_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/image-element.js"(exports) {
    "use strict";
    var { registerHTMLClass } = require_register_html_class();
    var { numericAttribute, stringAttribute } = require_attributes6();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var tagName = "img";
    var HTMLImageElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
      /* c8 ignore start */
      get alt() {
        return stringAttribute.get(this, "alt");
      }
      set alt(value2) {
        stringAttribute.set(this, "alt", value2);
      }
      get sizes() {
        return stringAttribute.get(this, "sizes");
      }
      set sizes(value2) {
        stringAttribute.set(this, "sizes", value2);
      }
      get src() {
        return stringAttribute.get(this, "src");
      }
      set src(value2) {
        stringAttribute.set(this, "src", value2);
      }
      get srcset() {
        return stringAttribute.get(this, "srcset");
      }
      set srcset(value2) {
        stringAttribute.set(this, "srcset", value2);
      }
      get title() {
        return stringAttribute.get(this, "title");
      }
      set title(value2) {
        stringAttribute.set(this, "title", value2);
      }
      get width() {
        return numericAttribute.get(this, "width");
      }
      set width(value2) {
        numericAttribute.set(this, "width", value2);
      }
      get height() {
        return numericAttribute.get(this, "height");
      }
      set height(value2) {
        numericAttribute.set(this, "height", value2);
      }
      /* c8 ignore stop */
    };
    registerHTMLClass(tagName, HTMLImageElement);
    exports.HTMLImageElement = HTMLImageElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/pre-element.js
var require_pre_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/pre-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLPreElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "pre") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLPreElement = HTMLPreElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/u-list-element.js
var require_u_list_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/u-list-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLUListElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "ul") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLUListElement = HTMLUListElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/meta-element.js
var require_meta_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/meta-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var { registerHTMLClass } = require_register_html_class();
    var { stringAttribute } = require_attributes6();
    var tagName = "meta";
    var HTMLMetaElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
      /* c8 ignore start */
      get name() {
        return stringAttribute.get(this, "name");
      }
      set name(value2) {
        stringAttribute.set(this, "name", value2);
      }
      get httpEquiv() {
        return stringAttribute.get(this, "http-equiv");
      }
      set httpEquiv(value2) {
        stringAttribute.set(this, "http-equiv", value2);
      }
      get content() {
        return stringAttribute.get(this, "content");
      }
      set content(value2) {
        stringAttribute.set(this, "content", value2);
      }
      get charset() {
        return stringAttribute.get(this, "charset");
      }
      set charset(value2) {
        stringAttribute.set(this, "charset", value2);
      }
      get media() {
        return stringAttribute.get(this, "media");
      }
      set media(value2) {
        stringAttribute.set(this, "media", value2);
      }
      /* c8 ignore stop */
    };
    exports.HTMLMetaElement = HTMLMetaElement;
    registerHTMLClass(tagName, HTMLMetaElement);
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/picture-element.js
var require_picture_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/picture-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLPictureElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "picture") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLPictureElement = HTMLPictureElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/area-element.js
var require_area_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/area-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLAreaElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "area") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLAreaElement = HTMLAreaElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/o-list-element.js
var require_o_list_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/o-list-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLOListElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "ol") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLOListElement = HTMLOListElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/table-caption-element.js
var require_table_caption_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/table-caption-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLTableCaptionElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "caption") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLTableCaptionElement = HTMLTableCaptionElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/anchor-element.js
var require_anchor_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/anchor-element.js"(exports) {
    "use strict";
    var { registerHTMLClass } = require_register_html_class();
    var { stringAttribute } = require_attributes6();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var tagName = "a";
    var HTMLAnchorElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
      /* c8 ignore start */
      // copy paste from img.src, already covered
      get href() {
        return encodeURI(decodeURI(stringAttribute.get(this, "href"))).trim();
      }
      set href(value2) {
        stringAttribute.set(this, "href", decodeURI(value2));
      }
      get download() {
        return encodeURI(decodeURI(stringAttribute.get(this, "download")));
      }
      set download(value2) {
        stringAttribute.set(this, "download", decodeURI(value2));
      }
      get target() {
        return stringAttribute.get(this, "target");
      }
      set target(value2) {
        stringAttribute.set(this, "target", value2);
      }
      get type() {
        return stringAttribute.get(this, "type");
      }
      set type(value2) {
        stringAttribute.set(this, "type", value2);
      }
      get rel() {
        return stringAttribute.get(this, "rel");
      }
      set rel(value2) {
        stringAttribute.set(this, "rel", value2);
      }
      /* c8 ignore stop */
    };
    registerHTMLClass(tagName, HTMLAnchorElement);
    exports.HTMLAnchorElement = HTMLAnchorElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/label-element.js
var require_label_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/label-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLLabelElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "label") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLLabelElement = HTMLLabelElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/unknown-element.js
var require_unknown_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/unknown-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLUnknownElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "unknown") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLUnknownElement = HTMLUnknownElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/mod-element.js
var require_mod_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/mod-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLModElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "mod") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLModElement = HTMLModElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/details-element.js
var require_details_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/details-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLDetailsElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "details") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLDetailsElement = HTMLDetailsElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/source-element.js
var require_source_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/source-element.js"(exports) {
    "use strict";
    var { registerHTMLClass } = require_register_html_class();
    var { stringAttribute } = require_attributes6();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var tagName = "source";
    var HTMLSourceElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = tagName) {
        super(ownerDocument, localName);
      }
      /* c8 ignore start */
      get src() {
        return stringAttribute.get(this, "src");
      }
      set src(value2) {
        stringAttribute.set(this, "src", value2);
      }
      get srcset() {
        return stringAttribute.get(this, "srcset");
      }
      set srcset(value2) {
        stringAttribute.set(this, "srcset", value2);
      }
      get sizes() {
        return stringAttribute.get(this, "sizes");
      }
      set sizes(value2) {
        stringAttribute.set(this, "sizes", value2);
      }
      get type() {
        return stringAttribute.get(this, "type");
      }
      set type(value2) {
        stringAttribute.set(this, "type", value2);
      }
      /* c8 ignore stop */
    };
    registerHTMLClass(tagName, HTMLSourceElement);
    exports.HTMLSourceElement = HTMLSourceElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/track-element.js
var require_track_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/track-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLTrackElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "track") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLTrackElement = HTMLTrackElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/marquee-element.js
var require_marquee_element = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/marquee-element.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var HTMLMarqueeElement = class extends HTMLElement2 {
      constructor(ownerDocument, localName = "marquee") {
        super(ownerDocument, localName);
      }
    };
    exports.HTMLMarqueeElement = HTMLMarqueeElement;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/html-classes.js
var require_html_classes = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/html-classes.js"(exports) {
    "use strict";
    var { HTMLElement: HTMLElement2 } = require_element3();
    var { HTMLTemplateElement } = require_template_element();
    var { HTMLHtmlElement } = require_html_element();
    var { HTMLScriptElement } = require_script_element();
    var { HTMLFrameElement } = require_frame_element();
    var { HTMLIFrameElement } = require_i_frame_element();
    var { HTMLObjectElement } = require_object_element();
    var { HTMLHeadElement } = require_head_element();
    var { HTMLBodyElement } = require_body_element();
    var { HTMLStyleElement } = require_style_element();
    var { HTMLTimeElement } = require_time_element();
    var { HTMLFieldSetElement } = require_field_set_element();
    var { HTMLEmbedElement } = require_embed_element();
    var { HTMLHRElement } = require_hr_element();
    var { HTMLProgressElement } = require_progress_element();
    var { HTMLParagraphElement } = require_paragraph_element();
    var { HTMLTableElement } = require_table_element();
    var { HTMLFrameSetElement } = require_frame_set_element();
    var { HTMLLIElement } = require_li_element();
    var { HTMLBaseElement } = require_base_element();
    var { HTMLDataListElement } = require_data_list_element();
    var { HTMLInputElement } = require_input_element();
    var { HTMLParamElement } = require_param_element();
    var { HTMLMediaElement: HTMLMediaElement2 } = require_media_element();
    var { HTMLAudioElement } = require_audio_element();
    var { HTMLHeadingElement } = require_heading_element();
    var { HTMLDirectoryElement } = require_directory_element();
    var { HTMLQuoteElement } = require_quote_element();
    var { HTMLCanvasElement } = require_canvas_element();
    var { HTMLLegendElement } = require_legend_element();
    var { HTMLOptionElement } = require_option_element();
    var { HTMLSpanElement } = require_span_element();
    var { HTMLMeterElement } = require_meter_element();
    var { HTMLVideoElement } = require_video_element();
    var { HTMLTableCellElement } = require_table_cell_element();
    var { HTMLTitleElement } = require_title_element();
    var { HTMLOutputElement } = require_output_element();
    var { HTMLTableRowElement } = require_table_row_element();
    var { HTMLDataElement } = require_data_element();
    var { HTMLMenuElement } = require_menu_element();
    var { HTMLSelectElement } = require_select_element();
    var { HTMLBRElement } = require_br_element();
    var { HTMLButtonElement } = require_button_element();
    var { HTMLMapElement } = require_map_element();
    var { HTMLOptGroupElement } = require_opt_group_element();
    var { HTMLDListElement } = require_d_list_element();
    var { HTMLTextAreaElement } = require_text_area_element();
    var { HTMLFontElement } = require_font_element();
    var { HTMLDivElement } = require_div_element();
    var { HTMLLinkElement } = require_link_element();
    var { HTMLSlotElement } = require_slot_element();
    var { HTMLFormElement } = require_form_element();
    var { HTMLImageElement } = require_image_element();
    var { HTMLPreElement } = require_pre_element();
    var { HTMLUListElement } = require_u_list_element();
    var { HTMLMetaElement } = require_meta_element();
    var { HTMLPictureElement } = require_picture_element();
    var { HTMLAreaElement } = require_area_element();
    var { HTMLOListElement } = require_o_list_element();
    var { HTMLTableCaptionElement } = require_table_caption_element();
    var { HTMLAnchorElement } = require_anchor_element();
    var { HTMLLabelElement } = require_label_element();
    var { HTMLUnknownElement } = require_unknown_element();
    var { HTMLModElement } = require_mod_element();
    var { HTMLDetailsElement } = require_details_element();
    var { HTMLSourceElement } = require_source_element();
    var { HTMLTrackElement } = require_track_element();
    var { HTMLMarqueeElement } = require_marquee_element();
    exports.HTMLElement = HTMLElement2;
    exports.HTMLTemplateElement = HTMLTemplateElement;
    exports.HTMLHtmlElement = HTMLHtmlElement;
    exports.HTMLScriptElement = HTMLScriptElement;
    exports.HTMLFrameElement = HTMLFrameElement;
    exports.HTMLIFrameElement = HTMLIFrameElement;
    exports.HTMLObjectElement = HTMLObjectElement;
    exports.HTMLHeadElement = HTMLHeadElement;
    exports.HTMLBodyElement = HTMLBodyElement;
    exports.HTMLStyleElement = HTMLStyleElement;
    exports.HTMLTimeElement = HTMLTimeElement;
    exports.HTMLFieldSetElement = HTMLFieldSetElement;
    exports.HTMLEmbedElement = HTMLEmbedElement;
    exports.HTMLHRElement = HTMLHRElement;
    exports.HTMLProgressElement = HTMLProgressElement;
    exports.HTMLParagraphElement = HTMLParagraphElement;
    exports.HTMLTableElement = HTMLTableElement;
    exports.HTMLFrameSetElement = HTMLFrameSetElement;
    exports.HTMLLIElement = HTMLLIElement;
    exports.HTMLBaseElement = HTMLBaseElement;
    exports.HTMLDataListElement = HTMLDataListElement;
    exports.HTMLInputElement = HTMLInputElement;
    exports.HTMLParamElement = HTMLParamElement;
    exports.HTMLMediaElement = HTMLMediaElement2;
    exports.HTMLAudioElement = HTMLAudioElement;
    exports.HTMLHeadingElement = HTMLHeadingElement;
    exports.HTMLDirectoryElement = HTMLDirectoryElement;
    exports.HTMLQuoteElement = HTMLQuoteElement;
    exports.HTMLCanvasElement = HTMLCanvasElement;
    exports.HTMLLegendElement = HTMLLegendElement;
    exports.HTMLOptionElement = HTMLOptionElement;
    exports.HTMLSpanElement = HTMLSpanElement;
    exports.HTMLMeterElement = HTMLMeterElement;
    exports.HTMLVideoElement = HTMLVideoElement;
    exports.HTMLTableCellElement = HTMLTableCellElement;
    exports.HTMLTitleElement = HTMLTitleElement;
    exports.HTMLOutputElement = HTMLOutputElement;
    exports.HTMLTableRowElement = HTMLTableRowElement;
    exports.HTMLDataElement = HTMLDataElement;
    exports.HTMLMenuElement = HTMLMenuElement;
    exports.HTMLSelectElement = HTMLSelectElement;
    exports.HTMLBRElement = HTMLBRElement;
    exports.HTMLButtonElement = HTMLButtonElement;
    exports.HTMLMapElement = HTMLMapElement;
    exports.HTMLOptGroupElement = HTMLOptGroupElement;
    exports.HTMLDListElement = HTMLDListElement;
    exports.HTMLTextAreaElement = HTMLTextAreaElement;
    exports.HTMLFontElement = HTMLFontElement;
    exports.HTMLDivElement = HTMLDivElement;
    exports.HTMLLinkElement = HTMLLinkElement;
    exports.HTMLSlotElement = HTMLSlotElement;
    exports.HTMLFormElement = HTMLFormElement;
    exports.HTMLImageElement = HTMLImageElement;
    exports.HTMLPreElement = HTMLPreElement;
    exports.HTMLUListElement = HTMLUListElement;
    exports.HTMLMetaElement = HTMLMetaElement;
    exports.HTMLPictureElement = HTMLPictureElement;
    exports.HTMLAreaElement = HTMLAreaElement;
    exports.HTMLOListElement = HTMLOListElement;
    exports.HTMLTableCaptionElement = HTMLTableCaptionElement;
    exports.HTMLAnchorElement = HTMLAnchorElement;
    exports.HTMLLabelElement = HTMLLabelElement;
    exports.HTMLUnknownElement = HTMLUnknownElement;
    exports.HTMLModElement = HTMLModElement;
    exports.HTMLDetailsElement = HTMLDetailsElement;
    exports.HTMLSourceElement = HTMLSourceElement;
    exports.HTMLTrackElement = HTMLTrackElement;
    exports.HTMLMarqueeElement = HTMLMarqueeElement;
    var HTMLClasses = {
      HTMLElement: HTMLElement2,
      HTMLTemplateElement,
      HTMLHtmlElement,
      HTMLScriptElement,
      HTMLFrameElement,
      HTMLIFrameElement,
      HTMLObjectElement,
      HTMLHeadElement,
      HTMLBodyElement,
      HTMLStyleElement,
      HTMLTimeElement,
      HTMLFieldSetElement,
      HTMLEmbedElement,
      HTMLHRElement,
      HTMLProgressElement,
      HTMLParagraphElement,
      HTMLTableElement,
      HTMLFrameSetElement,
      HTMLLIElement,
      HTMLBaseElement,
      HTMLDataListElement,
      HTMLInputElement,
      HTMLParamElement,
      HTMLMediaElement: HTMLMediaElement2,
      HTMLAudioElement,
      HTMLHeadingElement,
      HTMLDirectoryElement,
      HTMLQuoteElement,
      HTMLCanvasElement,
      HTMLLegendElement,
      HTMLOptionElement,
      HTMLSpanElement,
      HTMLMeterElement,
      HTMLVideoElement,
      HTMLTableCellElement,
      HTMLTitleElement,
      HTMLOutputElement,
      HTMLTableRowElement,
      HTMLDataElement,
      HTMLMenuElement,
      HTMLSelectElement,
      HTMLBRElement,
      HTMLButtonElement,
      HTMLMapElement,
      HTMLOptGroupElement,
      HTMLDListElement,
      HTMLTextAreaElement,
      HTMLFontElement,
      HTMLDivElement,
      HTMLLinkElement,
      HTMLSlotElement,
      HTMLFormElement,
      HTMLImageElement,
      HTMLPreElement,
      HTMLUListElement,
      HTMLMetaElement,
      HTMLPictureElement,
      HTMLAreaElement,
      HTMLOListElement,
      HTMLTableCaptionElement,
      HTMLAnchorElement,
      HTMLLabelElement,
      HTMLUnknownElement,
      HTMLModElement,
      HTMLDetailsElement,
      HTMLSourceElement,
      HTMLTrackElement,
      HTMLMarqueeElement
    };
    exports.HTMLClasses = HTMLClasses;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/mime.js
var require_mime = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/mime.js"(exports) {
    "use strict";
    var voidElements = { test: () => true };
    var Mime = {
      "text/html": {
        docType: "<!DOCTYPE html>",
        ignoreCase: true,
        voidElements: /^(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i
      },
      "image/svg+xml": {
        docType: '<?xml version="1.0" encoding="utf-8"?>',
        ignoreCase: false,
        voidElements
      },
      "text/xml": {
        docType: '<?xml version="1.0" encoding="utf-8"?>',
        ignoreCase: false,
        voidElements
      },
      "application/xml": {
        docType: '<?xml version="1.0" encoding="utf-8"?>',
        ignoreCase: false,
        voidElements
      },
      "application/xhtml+xml": {
        docType: '<?xml version="1.0" encoding="utf-8"?>',
        ignoreCase: false,
        voidElements
      }
    };
    exports.Mime = Mime;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/custom-event.js
var require_custom_event = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/custom-event.js"(exports) {
    "use strict";
    var { Event: Event2 } = require_event();
    var CustomEvent = class extends Event2 {
      constructor(type, eventInitDict = {}) {
        super(type, eventInitDict);
        this.detail = eventInitDict.detail;
      }
    };
    exports.CustomEvent = CustomEvent;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/input-event.js
var require_input_event = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/input-event.js"(exports) {
    "use strict";
    var { Event: Event2 } = require_event();
    var InputEvent = class extends Event2 {
      constructor(type, inputEventInit = {}) {
        super(type, inputEventInit);
        this.inputType = inputEventInit.inputType;
        this.data = inputEventInit.data;
        this.dataTransfer = inputEventInit.dataTransfer;
        this.isComposing = inputEventInit.isComposing || false;
        this.ranges = inputEventInit.ranges;
      }
    };
    exports.InputEvent = InputEvent;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/image.js
var require_image = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/image.js"(exports) {
    "use strict";
    var { HTMLImageElement } = require_image_element();
    var ImageClass = (ownerDocument) => (
      /**
       * @implements globalThis.Image
       */
      class Image extends HTMLImageElement {
        constructor(width, height2) {
          super(ownerDocument);
          switch (arguments.length) {
            case 1:
              this.height = width;
              this.width = width;
              break;
            case 2:
              this.height = height2;
              this.width = width;
              break;
          }
        }
      }
    );
    exports.ImageClass = ImageClass;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/range.js
var require_range = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/range.js"(exports) {
    "use strict";
    var { END, NEXT, PREV, START } = require_symbols3();
    var { SVGElement } = require_element2();
    var { getEnd, htmlToFragment, setAdjacent } = require_utils21();
    var deleteContents = ({ [START]: start2, [END]: end2 }, fragment = null) => {
      setAdjacent(start2[PREV], end2[NEXT]);
      do {
        const after = getEnd(start2);
        const next = after === end2 ? after : after[NEXT];
        if (fragment)
          fragment.insertBefore(start2, fragment[END]);
        else
          start2.remove();
        start2 = next;
      } while (start2 !== end2);
    };
    var Range = class _Range {
      constructor() {
        this[START] = null;
        this[END] = null;
        this.commonAncestorContainer = null;
      }
      /* TODO: this is more complicated than it looks
        setStart(node, offset) {
          this[START] = node.childNodes[offset];
        }
      
        setEnd(node, offset) {
          this[END] = getEnd(node.childNodes[offset]);
        }
        //*/
      insertNode(newNode) {
        this[END].parentNode.insertBefore(newNode, this[START]);
      }
      selectNode(node) {
        this[START] = node;
        this[END] = getEnd(node);
      }
      // TODO: SVG elements should then create contextual fragments
      //       that return SVG nodes
      selectNodeContents(node) {
        this.selectNode(node);
        this.commonAncestorContainer = node;
      }
      surroundContents(parentNode) {
        parentNode.replaceChildren(this.extractContents());
      }
      setStartBefore(node) {
        this[START] = node;
      }
      setStartAfter(node) {
        this[START] = node.nextSibling;
      }
      setEndBefore(node) {
        this[END] = getEnd(node.previousSibling);
      }
      setEndAfter(node) {
        this[END] = getEnd(node);
      }
      cloneContents() {
        let { [START]: start2, [END]: end2 } = this;
        const fragment = start2.ownerDocument.createDocumentFragment();
        while (start2 !== end2) {
          fragment.insertBefore(start2.cloneNode(true), fragment[END]);
          start2 = getEnd(start2);
          if (start2 !== end2)
            start2 = start2[NEXT];
        }
        return fragment;
      }
      deleteContents() {
        deleteContents(this);
      }
      extractContents() {
        const fragment = this[START].ownerDocument.createDocumentFragment();
        deleteContents(this, fragment);
        return fragment;
      }
      createContextualFragment(html) {
        const { commonAncestorContainer: doc } = this;
        const isSVG = "ownerSVGElement" in doc;
        const document2 = isSVG ? doc.ownerDocument : doc;
        let content = htmlToFragment(document2, html);
        if (isSVG) {
          const childNodes = [...content.childNodes];
          content = document2.createDocumentFragment();
          Object.setPrototypeOf(content, SVGElement.prototype);
          content.ownerSVGElement = document2;
          for (const child of childNodes) {
            Object.setPrototypeOf(child, SVGElement.prototype);
            child.ownerSVGElement = document2;
            content.appendChild(child);
          }
        } else
          this.selectNode(content);
        return content;
      }
      cloneRange() {
        const range2 = new _Range();
        range2[START] = this[START];
        range2[END] = this[END];
        return range2;
      }
    };
    exports.Range = Range;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/tree-walker.js
var require_tree_walker = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/tree-walker.js"(exports) {
    "use strict";
    var {
      DOCUMENT_NODE,
      ELEMENT_NODE,
      TEXT_NODE,
      CDATA_SECTION_NODE,
      COMMENT_NODE,
      SHOW_ALL,
      SHOW_ELEMENT,
      SHOW_CDATA_SECTION,
      SHOW_COMMENT,
      SHOW_TEXT
    } = require_constants16();
    var { PRIVATE, END, NEXT } = require_symbols3();
    var isOK = ({ nodeType }, mask) => {
      switch (nodeType) {
        case ELEMENT_NODE:
          return mask & SHOW_ELEMENT;
        case TEXT_NODE:
          return mask & SHOW_TEXT;
        case COMMENT_NODE:
          return mask & SHOW_COMMENT;
        case CDATA_SECTION_NODE:
          return mask & SHOW_CDATA_SECTION;
      }
      return 0;
    };
    var TreeWalker = class {
      constructor(root, whatToShow = SHOW_ALL) {
        this.root = root;
        this.currentNode = root;
        this.whatToShow = whatToShow;
        let { [NEXT]: next, [END]: end2 } = root;
        if (root.nodeType === DOCUMENT_NODE) {
          const { documentElement } = root;
          next = documentElement;
          end2 = documentElement[END];
        }
        const nodes = [];
        while (next && next !== end2) {
          if (isOK(next, whatToShow))
            nodes.push(next);
          next = next[NEXT];
        }
        this[PRIVATE] = { i: 0, nodes };
      }
      nextNode() {
        const $ = this[PRIVATE];
        this.currentNode = $.i < $.nodes.length ? $.nodes[$.i++] : null;
        return this.currentNode;
      }
    };
    exports.TreeWalker = TreeWalker;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/document.js
var require_document = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/document.js"(exports) {
    "use strict";
    var { DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, SVG_NAMESPACE } = require_constants16();
    var {
      CUSTOM_ELEMENTS,
      DOM_PARSER,
      GLOBALS,
      IMAGE,
      MUTATION_OBSERVER,
      DOCTYPE,
      END,
      NEXT,
      MIME,
      EVENT_TARGET,
      UPGRADE
    } = require_symbols3();
    var { Facades, illegalConstructor } = require_facades();
    var { HTMLClasses } = require_html_classes();
    var { Mime } = require_mime();
    var { knownSiblings } = require_utils21();
    var { assign, create: create2, defineProperties, setPrototypeOf } = require_object2();
    var { NonElementParentNode } = require_non_element_parent_node();
    var { SVGElement } = require_element2();
    var { Attr } = require_attr();
    var { CDATASection } = require_cdata_section();
    var { Comment } = require_comment();
    var { CustomElementRegistry } = require_custom_element_registry();
    var { CustomEvent } = require_custom_event();
    var { DocumentFragment: DocumentFragment2 } = require_document_fragment();
    var { DocumentType } = require_document_type();
    var { Element: Element2 } = require_element();
    var { Event: Event2 } = require_event();
    var { EventTarget: EventTarget2 } = require_event_target2();
    var { InputEvent } = require_input_event();
    var { ImageClass } = require_image();
    var { MutationObserverClass } = require_mutation_observer();
    var { NamedNodeMap } = require_named_node_map();
    var { NodeList } = require_node_list();
    var { Range } = require_range();
    var { Text: Text2 } = require_text2();
    var { TreeWalker } = require_tree_walker();
    var query = (method, ownerDocument, selectors) => {
      let { [NEXT]: next, [END]: end2 } = ownerDocument;
      return method.call({ ownerDocument, [NEXT]: next, [END]: end2 }, selectors);
    };
    var globalExports = assign(
      {},
      Facades,
      HTMLClasses,
      {
        CustomEvent,
        Event: Event2,
        EventTarget: EventTarget2,
        InputEvent,
        NamedNodeMap,
        NodeList
      }
    );
    var window2 = /* @__PURE__ */ new WeakMap();
    var Document3 = class extends NonElementParentNode {
      constructor(type) {
        super(null, "#document", DOCUMENT_NODE);
        this[CUSTOM_ELEMENTS] = { active: false, registry: null };
        this[MUTATION_OBSERVER] = { active: false, class: null };
        this[MIME] = Mime[type];
        this[DOCTYPE] = null;
        this[DOM_PARSER] = null;
        this[GLOBALS] = null;
        this[IMAGE] = null;
        this[UPGRADE] = null;
      }
      /**
       * @type {globalThis.Document['defaultView']}
       */
      get defaultView() {
        if (!window2.has(this))
          window2.set(this, new Proxy(globalThis, {
            set: (target, name, value2) => {
              switch (name) {
                case "addEventListener":
                case "removeEventListener":
                case "dispatchEvent":
                  this[EVENT_TARGET][name] = value2;
                  break;
                default:
                  target[name] = value2;
                  break;
              }
              return true;
            },
            get: (globalThis2, name) => {
              switch (name) {
                case "addEventListener":
                case "removeEventListener":
                case "dispatchEvent":
                  if (!this[EVENT_TARGET]) {
                    const et2 = this[EVENT_TARGET] = new EventTarget2();
                    et2.dispatchEvent = et2.dispatchEvent.bind(et2);
                    et2.addEventListener = et2.addEventListener.bind(et2);
                    et2.removeEventListener = et2.removeEventListener.bind(et2);
                  }
                  return this[EVENT_TARGET][name];
                case "document":
                  return this;
                /* c8 ignore start */
                case "navigator":
                  return {
                    userAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"
                  };
                /* c8 ignore stop */
                case "window":
                  return window2.get(this);
                case "customElements":
                  if (!this[CUSTOM_ELEMENTS].registry)
                    this[CUSTOM_ELEMENTS] = new CustomElementRegistry(this);
                  return this[CUSTOM_ELEMENTS];
                case "performance":
                  return globalThis2.performance;
                case "DOMParser":
                  return this[DOM_PARSER];
                case "Image":
                  if (!this[IMAGE])
                    this[IMAGE] = ImageClass(this);
                  return this[IMAGE];
                case "MutationObserver":
                  if (!this[MUTATION_OBSERVER].class)
                    this[MUTATION_OBSERVER] = new MutationObserverClass(this);
                  return this[MUTATION_OBSERVER].class;
              }
              return this[GLOBALS] && this[GLOBALS][name] || globalExports[name] || globalThis2[name];
            }
          }));
        return window2.get(this);
      }
      get doctype() {
        const docType = this[DOCTYPE];
        if (docType)
          return docType;
        const { firstChild } = this;
        if (firstChild && firstChild.nodeType === DOCUMENT_TYPE_NODE)
          return this[DOCTYPE] = firstChild;
        return null;
      }
      set doctype(value2) {
        if (/^([a-z:]+)(\s+system|\s+public(\s+"([^"]+)")?)?(\s+"([^"]+)")?/i.test(value2)) {
          const { $1: name, $4: publicId, $6: systemId } = RegExp;
          this[DOCTYPE] = new DocumentType(this, name, publicId, systemId);
          knownSiblings(this, this[DOCTYPE], this[NEXT]);
        }
      }
      get documentElement() {
        return this.firstElementChild;
      }
      get isConnected() {
        return true;
      }
      /**
       * @protected
       */
      _getParent() {
        return this[EVENT_TARGET];
      }
      createAttribute(name) {
        return new Attr(this, name);
      }
      createCDATASection(data2) {
        return new CDATASection(this, data2);
      }
      createComment(textContent) {
        return new Comment(this, textContent);
      }
      createDocumentFragment() {
        return new DocumentFragment2(this);
      }
      createDocumentType(name, publicId, systemId) {
        return new DocumentType(this, name, publicId, systemId);
      }
      createElement(localName) {
        return new Element2(this, localName);
      }
      createRange() {
        const range2 = new Range();
        range2.commonAncestorContainer = this;
        return range2;
      }
      createTextNode(textContent) {
        return new Text2(this, textContent);
      }
      createTreeWalker(root, whatToShow = -1) {
        return new TreeWalker(root, whatToShow);
      }
      createNodeIterator(root, whatToShow = -1) {
        return this.createTreeWalker(root, whatToShow);
      }
      createEvent(name) {
        const event = create2(name === "Event" ? new Event2("") : new CustomEvent(""));
        event.initEvent = event.initCustomEvent = (type, canBubble = false, cancelable = false, detail) => {
          event.bubbles = !!canBubble;
          defineProperties(event, {
            type: { value: type },
            canBubble: { value: canBubble },
            cancelable: { value: cancelable },
            detail: { value: detail }
          });
        };
        return event;
      }
      cloneNode(deep = false) {
        const {
          constructor,
          [CUSTOM_ELEMENTS]: customElements,
          [DOCTYPE]: doctype
        } = this;
        const document2 = new constructor();
        document2[CUSTOM_ELEMENTS] = customElements;
        if (deep) {
          const end2 = document2[END];
          const { childNodes } = this;
          for (let { length: length2 } = childNodes, i5 = 0; i5 < length2; i5++)
            document2.insertBefore(childNodes[i5].cloneNode(true), end2);
          if (doctype)
            document2[DOCTYPE] = childNodes[0];
        }
        return document2;
      }
      importNode(externalNode) {
        const deep = 1 < arguments.length && !!arguments[1];
        const node = externalNode.cloneNode(deep);
        const { [CUSTOM_ELEMENTS]: customElements } = this;
        const { active } = customElements;
        const upgrade = (element) => {
          const { ownerDocument, nodeType } = element;
          element.ownerDocument = this;
          if (active && ownerDocument !== this && nodeType === ELEMENT_NODE)
            customElements.upgrade(element);
        };
        upgrade(node);
        if (deep) {
          switch (node.nodeType) {
            case ELEMENT_NODE:
            case DOCUMENT_FRAGMENT_NODE: {
              let { [NEXT]: next, [END]: end2 } = node;
              while (next !== end2) {
                if (next.nodeType === ELEMENT_NODE)
                  upgrade(next);
                next = next[NEXT];
              }
              break;
            }
          }
        }
        return node;
      }
      toString() {
        return this.childNodes.join("");
      }
      querySelector(selectors) {
        return query(super.querySelector, this, selectors);
      }
      querySelectorAll(selectors) {
        return query(super.querySelectorAll, this, selectors);
      }
      /* c8 ignore start */
      getElementsByTagNameNS(_, name) {
        return this.getElementsByTagName(name);
      }
      createAttributeNS(_, name) {
        return this.createAttribute(name);
      }
      createElementNS(nsp, localName, options) {
        return nsp === SVG_NAMESPACE ? new SVGElement(this, localName, null) : this.createElement(localName, options);
      }
      /* c8 ignore stop */
    };
    exports.Document = Document3;
    setPrototypeOf(
      globalExports.Document = function Document4() {
        illegalConstructor();
      },
      Document3
    ).prototype = Document3.prototype;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/document.js
var require_document2 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/html/document.js"(exports) {
    "use strict";
    var { ELEMENT_NODE } = require_constants16();
    var { CUSTOM_ELEMENTS, END, NEXT } = require_symbols3();
    var { htmlClasses } = require_register_html_class();
    var { Document: Document3 } = require_document();
    var { NodeList } = require_node_list();
    var { customElements } = require_custom_element_registry();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var createHTMLElement = (ownerDocument, builtin, localName, options) => {
      if (!builtin && htmlClasses.has(localName)) {
        const Class = htmlClasses.get(localName);
        return new Class(ownerDocument, localName);
      }
      const { [CUSTOM_ELEMENTS]: { active, registry } } = ownerDocument;
      if (active) {
        const ce = builtin ? options.is : localName;
        if (registry.has(ce)) {
          const { Class } = registry.get(ce);
          const element = new Class(ownerDocument, localName);
          customElements.set(element, { connected: false });
          return element;
        }
      }
      return new HTMLElement2(ownerDocument, localName);
    };
    var HTMLDocument = class extends Document3 {
      constructor() {
        super("text/html");
      }
      get all() {
        const nodeList = new NodeList();
        let { [NEXT]: next, [END]: end2 } = this;
        while (next !== end2) {
          switch (next.nodeType) {
            case ELEMENT_NODE:
              nodeList.push(next);
              break;
          }
          next = next[NEXT];
        }
        return nodeList;
      }
      /**
       * @type HTMLHeadElement
       */
      get head() {
        const { documentElement } = this;
        let { firstElementChild } = documentElement;
        if (!firstElementChild || firstElementChild.tagName !== "HEAD") {
          firstElementChild = this.createElement("head");
          documentElement.prepend(firstElementChild);
        }
        return firstElementChild;
      }
      /**
       * @type HTMLBodyElement
       */
      get body() {
        const { head } = this;
        let { nextElementSibling } = head;
        if (!nextElementSibling || nextElementSibling.tagName !== "BODY") {
          nextElementSibling = this.createElement("body");
          head.after(nextElementSibling);
        }
        return nextElementSibling;
      }
      /**
       * @type HTMLTitleElement
       */
      get title() {
        const { head } = this;
        return head.getElementsByTagName("title").at(0)?.textContent || "";
      }
      set title(textContent) {
        const { head } = this;
        let title = head.getElementsByTagName("title").at(0);
        if (title)
          title.textContent = textContent;
        else {
          head.insertBefore(
            this.createElement("title"),
            head.firstChild
          ).textContent = textContent;
        }
      }
      createElement(localName, options) {
        const builtin = !!(options && options.is);
        const element = createHTMLElement(this, builtin, localName, options);
        if (builtin)
          element.setAttribute("is", options.is);
        return element;
      }
    };
    exports.HTMLDocument = HTMLDocument;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/cache.js
var require_cache4 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/cache.js"(exports) {
    "use strict";
    var { isNotParsing } = require_parse_from_string();
    var childNodesWM = /* @__PURE__ */ new WeakMap();
    exports.childNodesWM = childNodesWM;
    var childrenWM = /* @__PURE__ */ new WeakMap();
    exports.childrenWM = childrenWM;
    var querySelectorWM = /* @__PURE__ */ new WeakMap();
    exports.querySelectorWM = querySelectorWM;
    var querySelectorAllWM = /* @__PURE__ */ new WeakMap();
    exports.querySelectorAllWM = querySelectorAllWM;
    var get = (wm, self2, method) => {
      if (wm.has(self2))
        return wm.get(self2);
      const value2 = method.call(self2);
      wm.set(self2, value2);
      return value2;
    };
    exports.get = get;
    var reset = (parentNode) => {
      if (isNotParsing()) {
        while (parentNode) {
          childNodesWM.delete(parentNode);
          childrenWM.delete(parentNode);
          querySelectorWM.delete(parentNode);
          querySelectorAllWM.delete(parentNode);
          parentNode = parentNode.parentNode;
        }
      }
    };
    exports.reset = reset;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/svg/document.js
var require_document3 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/svg/document.js"(exports) {
    "use strict";
    var { MIME } = require_symbols3();
    var { Document: Document3 } = require_document();
    var SVGDocument = class extends Document3 {
      constructor() {
        super("image/svg+xml");
      }
      toString() {
        return this[MIME].docType + super.toString();
      }
    };
    exports.SVGDocument = SVGDocument;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/xml/document.js
var require_document4 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/xml/document.js"(exports) {
    "use strict";
    var { MIME } = require_symbols3();
    var { Document: Document3 } = require_document();
    var XMLDocument = class extends Document3 {
      constructor() {
        super("text/xml");
      }
      toString() {
        return this[MIME].docType + super.toString();
      }
    };
    exports.XMLDocument = XMLDocument;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/dom/parser.js
var require_parser5 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/dom/parser.js"(exports) {
    "use strict";
    var { DOM_PARSER, GLOBALS } = require_symbols3();
    var { parseFromString } = require_parse_from_string();
    var { HTMLDocument } = require_document2();
    var { SVGDocument } = require_document3();
    var { XMLDocument } = require_document4();
    var DOMParser = class _DOMParser {
      /** @typedef {{ "text/html": HTMLDocument, "image/svg+xml": SVGDocument, "text/xml": XMLDocument }} MimeToDoc */
      /**
       * @template {keyof MimeToDoc} MIME
       * @param {string} markupLanguage
       * @param {MIME} mimeType
       * @returns {MimeToDoc[MIME]}
       */
      parseFromString(markupLanguage, mimeType, globals = null) {
        let isHTML = false, document2;
        if (mimeType === "text/html") {
          isHTML = true;
          document2 = new HTMLDocument();
        } else if (mimeType === "image/svg+xml")
          document2 = new SVGDocument();
        else
          document2 = new XMLDocument();
        document2[DOM_PARSER] = _DOMParser;
        if (globals)
          document2[GLOBALS] = globals;
        if (isHTML && markupLanguage === "...")
          markupLanguage = "<!doctype html><html><head></head><body></body></html>";
        return markupLanguage ? parseFromString(document2, isHTML, markupLanguage) : document2;
      }
    };
    exports.DOMParser = DOMParser;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/parse-json.js
var require_parse_json = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/shared/parse-json.js"(exports) {
    "use strict";
    var {
      NODE_END,
      ELEMENT_NODE,
      ATTRIBUTE_NODE,
      TEXT_NODE,
      CDATA_SECTION_NODE,
      COMMENT_NODE,
      DOCUMENT_NODE,
      DOCUMENT_TYPE_NODE,
      DOCUMENT_FRAGMENT_NODE
    } = require_constants16();
    var { END, PREV } = require_symbols3();
    var { htmlClasses } = require_register_html_class();
    var { knownBoundaries, knownSiblings } = require_utils21();
    var { Attr } = require_attr();
    var { CDATASection } = require_cdata_section();
    var { Comment } = require_comment();
    var { DocumentType } = require_document_type();
    var { Text: Text2 } = require_text2();
    var { HTMLDocument } = require_document2();
    var { HTMLElement: HTMLElement2 } = require_element3();
    var { SVGElement } = require_element2();
    var { parse: parse3 } = JSON;
    var append3 = (parentNode, node, end2) => {
      node.parentNode = parentNode;
      knownSiblings(end2[PREV], node, end2);
    };
    var createHTMLElement = (ownerDocument, localName) => {
      if (htmlClasses.has(localName)) {
        const Class = htmlClasses.get(localName);
        return new Class(ownerDocument, localName);
      }
      return new HTMLElement2(ownerDocument, localName);
    };
    var parseJSON = (value2) => {
      const array = typeof value2 === "string" ? parse3(value2) : value2;
      const { length: length2 } = array;
      const document2 = new HTMLDocument();
      let parentNode = document2, end2 = parentNode[END], svg = false, i5 = 0;
      while (i5 < length2) {
        let nodeType = array[i5++];
        switch (nodeType) {
          case ELEMENT_NODE: {
            const localName = array[i5++];
            const isSVG = svg || localName === "svg" || localName === "SVG";
            const element = isSVG ? new SVGElement(document2, localName, parentNode.ownerSVGElement || null) : createHTMLElement(document2, localName);
            knownBoundaries(end2[PREV], element, end2);
            element.parentNode = parentNode;
            parentNode = element;
            end2 = parentNode[END];
            svg = isSVG;
            break;
          }
          case ATTRIBUTE_NODE: {
            const name = array[i5++];
            const value3 = typeof array[i5] === "string" ? array[i5++] : "";
            const attr = new Attr(document2, name, value3);
            attr.ownerElement = parentNode;
            knownSiblings(end2[PREV], attr, end2);
            break;
          }
          case TEXT_NODE:
            append3(parentNode, new Text2(document2, array[i5++]), end2);
            break;
          case COMMENT_NODE:
            append3(parentNode, new Comment(document2, array[i5++]), end2);
            break;
          case CDATA_SECTION_NODE:
            append3(parentNode, new CDATASection(document2, array[i5++]), end2);
            break;
          case DOCUMENT_TYPE_NODE: {
            const args = [document2];
            while (typeof array[i5] === "string")
              args.push(array[i5++]);
            if (args.length === 3 && /\.dtd$/i.test(args[2]))
              args.splice(2, 0, "");
            append3(parentNode, new DocumentType(...args), end2);
            break;
          }
          case DOCUMENT_FRAGMENT_NODE:
            parentNode = document2.createDocumentFragment();
            end2 = parentNode[END];
          /* eslint no-fallthrough:0 */
          case DOCUMENT_NODE:
            break;
          default:
            do {
              nodeType -= NODE_END;
              if (svg && !parentNode.ownerSVGElement)
                svg = false;
              parentNode = parentNode.parentNode || parentNode;
            } while (nodeType < 0);
            end2 = parentNode[END];
            break;
        }
      }
      switch (i5 && array[0]) {
        case ELEMENT_NODE:
          return document2.firstElementChild;
        case DOCUMENT_FRAGMENT_NODE:
          return parentNode;
      }
      return document2;
    };
    exports.parseJSON = parseJSON;
    var toJSON = (node) => node.toJSON();
    exports.toJSON = toJSON;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/node-filter.js
var require_node_filter = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/interface/node-filter.js"(exports) {
    "use strict";
    var {
      SHOW_ALL,
      SHOW_ELEMENT,
      SHOW_COMMENT,
      SHOW_CDATA_SECTION,
      SHOW_TEXT
    } = require_constants16();
    var NodeFilter = class {
      static get SHOW_ALL() {
        return SHOW_ALL;
      }
      static get SHOW_ELEMENT() {
        return SHOW_ELEMENT;
      }
      static get SHOW_COMMENT() {
        return SHOW_COMMENT;
      }
      static get SHOW_CDATA_SECTION() {
        return SHOW_CDATA_SECTION;
      }
      static get SHOW_TEXT() {
        return SHOW_TEXT;
      }
    };
    exports.NodeFilter = NodeFilter;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/index.js
var require_cjs16 = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/index.js"(exports) {
    "use strict";
    var { DOMParser } = require_parser5();
    var { Document: _Document } = require_document();
    var { illegalConstructor } = require_facades();
    var { setPrototypeOf } = require_object2();
    ((m3) => {
      exports.parseJSON = m3.parseJSON;
      exports.toJSON = m3.toJSON;
    })(require_parse_json());
    ((m3) => Object.keys(m3).map((k3) => k3 !== "default" && (exports[k3] = m3[k3])))(require_facades());
    ((m3) => Object.keys(m3).map((k3) => k3 !== "default" && (exports[k3] = m3[k3])))(require_html_classes());
    exports.DOMParser = DOMParser;
    ((m3) => {
      exports.CustomEvent = m3.CustomEvent;
    })(require_custom_event());
    ((m3) => {
      exports.Event = m3.Event;
    })(require_event());
    ((m3) => {
      exports.EventTarget = m3.EventTarget;
    })(require_event_target2());
    ((m3) => {
      exports.InputEvent = m3.InputEvent;
    })(require_input_event());
    ((m3) => {
      exports.NodeList = m3.NodeList;
    })(require_node_list());
    ((m3) => {
      exports.NodeFilter = m3.NodeFilter;
    })(require_node_filter());
    var parseHTML = (html, globals = null) => new DOMParser().parseFromString(
      html,
      "text/html",
      globals
    ).defaultView;
    exports.parseHTML = parseHTML;
    function Document3() {
      illegalConstructor();
    }
    exports.Document = Document3;
    setPrototypeOf(Document3, _Document).prototype = _Document.prototype;
  }
});

// ../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/cached.js
var require_cached = __commonJS({
  "../../node_modules/.pnpm/linkedom@0.18.12/node_modules/linkedom/cjs/cached.js"(exports) {
    "use strict";
    var { DOCUMENT_FRAGMENT_NODE } = require_constants16();
    var { defineProperties, getOwnPropertyDescriptors } = require_object2();
    var { Attr } = require_attr();
    var { CharacterData } = require_character_data();
    var { Element: Element2 } = require_element();
    var { ParentNode } = require_parent_node();
    var { NonElementParentNode } = require_non_element_parent_node();
    var { HTMLDocument } = require_document2();
    var {
      childNodesWM,
      childrenWM,
      querySelectorWM,
      querySelectorAllWM,
      get,
      reset
    } = require_cache4();
    var { value: {
      get: getAttributeValue,
      set: setAttributeValue
    } } = getOwnPropertyDescriptors(Attr.prototype);
    defineProperties(Attr.prototype, {
      value: {
        get: getAttributeValue,
        set(value2) {
          reset(this.ownerElement);
          setAttributeValue.call(this, value2);
        }
      }
    });
    var { remove: removeCharacterData } = CharacterData.prototype;
    defineProperties(CharacterData.prototype, {
      remove: { value() {
        reset(this.parentNode);
        removeCharacterData.call(this);
      } }
    });
    var elementProtoDescriptors = {};
    for (const name of [
      "remove",
      "setAttribute",
      "setAttributeNS",
      "setAttributeNode",
      "setAttributeNodeNS",
      "removeAttribute",
      "removeAttributeNS",
      "removeAttributeNode"
    ]) {
      const method = Element2.prototype[name];
      elementProtoDescriptors[name] = {
        value() {
          reset(this.parentNode);
          return method.apply(this, arguments);
        }
      };
    }
    defineProperties(Element2.prototype, elementProtoDescriptors);
    var {
      childNodes: { get: getChildNodes },
      children: { get: getChildren }
    } = getOwnPropertyDescriptors(ParentNode.prototype);
    defineProperties(ParentNode.prototype, {
      childNodes: { get() {
        return get(childNodesWM, this, getChildNodes);
      } },
      children: { get() {
        return get(childrenWM, this, getChildren);
      } }
    });
    var {
      insertBefore: insertBefore2,
      querySelector,
      querySelectorAll
    } = ParentNode.prototype;
    var query = (wm, method, self2, selectors) => {
      if (!wm.has(self2))
        wm.set(self2, /* @__PURE__ */ new Map());
      const map = wm.get(self2);
      if (map.has(selectors))
        return map.get(selectors);
      const result = method.call(self2, selectors);
      map.set(selectors, result);
      return result;
    };
    defineProperties(ParentNode.prototype, {
      insertBefore: { value(node, before) {
        reset(this);
        if (node.nodeType === DOCUMENT_FRAGMENT_NODE)
          reset(node);
        return insertBefore2.call(this, node, before);
      } },
      getElementsByClassName: { value(className) {
        return this.querySelectorAll("." + className);
      } },
      getElementsByTagName: { value(tagName) {
        return this.querySelectorAll(tagName);
      } },
      querySelector: { value(selectors) {
        return query(querySelectorWM, querySelector, this, selectors);
      } },
      querySelectorAll: { value(selectors) {
        return query(querySelectorAllWM, querySelectorAll, this, selectors);
      } }
    });
    defineProperties(NonElementParentNode.prototype, {
      getElementById: { value(id) {
        return this.querySelector("#" + id);
      } }
    });
    var { title: {
      get: getTitle,
      set: setTitle
    } } = getOwnPropertyDescriptors(HTMLDocument.prototype);
    defineProperties(HTMLDocument.prototype, {
      title: {
        get: getTitle,
        set(value2) {
          reset(this.head);
          setTitle.call(this, value2);
        }
      }
    });
    ((m3) => Object.keys(m3).map((k3) => k3 !== "default" && (exports[k3] = m3[k3])))(require_cjs16());
  }
});

// ../../node_modules/.pnpm/@crawlee+linkedom@3.16.0/node_modules/@crawlee/linkedom/internals/linkedom-crawler.js
var require_linkedom_crawler = __commonJS({
  "../../node_modules/.pnpm/@crawlee+linkedom@3.16.0/node_modules/@crawlee/linkedom/internals/linkedom-crawler.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.LinkeDOMCrawler = void 0;
    exports.linkedomCrawlerEnqueueLinks = linkedomCrawlerEnqueueLinks2;
    exports.createLinkeDOMRouter = createLinkeDOMRouter2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var http_1 = require_http();
    var utils_1 = require_utils9();
    var cheerio = tslib_1.__importStar(require_commonjs6());
    var cached_1 = require_cached();
    var utilities_1 = require_cjs4();
    var LinkeDOMCrawler2 = class _LinkeDOMCrawler extends http_1.HttpCrawler {
      async _parseHTML(response, isXml, crawlingContext) {
        const body = await (0, utilities_1.concatStreamToBuffer)(response);
        const document2 = _LinkeDOMCrawler.parser.parseFromString(body.toString(), isXml ? "text/xml" : "text/html");
        return {
          window: document2.defaultView,
          get body() {
            return document2.documentElement.outerHTML;
          },
          get document() {
            return document2;
          },
          enqueueLinks: async (enqueueOptions) => {
            return linkedomCrawlerEnqueueLinks2({
              options: { ...enqueueOptions, limit: this.calculateEnqueuedRequestLimit(enqueueOptions?.limit) },
              window: document2.defaultView,
              requestQueue: await this.getRequestQueue(),
              robotsTxtFile: await this.getRobotsTxtFileForUrl(crawlingContext.request.url),
              onSkippedRequest: this.handleSkippedRequest,
              originalRequestUrl: crawlingContext.request.url,
              finalRequestUrl: crawlingContext.request.loadedUrl
            });
          }
        };
      }
      async _runRequestHandler(context) {
        context.waitForSelector = async (selector, timeoutMs = 5e3) => {
          const $ = cheerio.load(context.body);
          if ($(selector).get().length === 0) {
            if (timeoutMs) {
              await (0, utils_1.sleep)(50);
              await context.waitForSelector(selector, Math.max(timeoutMs - 50, 0));
              return;
            }
            throw new Error(`Selector '${selector}' not found.`);
          }
        };
        context.parseWithCheerio = async (selector, _timeoutMs = 5e3) => {
          const $ = cheerio.load(context.body);
          if (selector && $(selector).get().length === 0) {
            throw new Error(`Selector '${selector}' not found.`);
          }
          return $;
        };
        await super._runRequestHandler(context);
      }
    };
    exports.LinkeDOMCrawler = LinkeDOMCrawler2;
    Object.defineProperty(LinkeDOMCrawler2, "parser", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: new cached_1.DOMParser()
    });
    function containsEnqueueLinks(options) {
      return !!options.enqueueLinks;
    }
    async function linkedomCrawlerEnqueueLinks2(options) {
      const { options: enqueueLinksOptions, window: window2, originalRequestUrl, finalRequestUrl } = options;
      if (!window2) {
        throw new Error("Cannot enqueue links because the DOM is not available.");
      }
      const baseUrl = (0, http_1.resolveBaseUrlForEnqueueLinksFiltering)({
        enqueueStrategy: enqueueLinksOptions?.strategy,
        finalRequestUrl,
        originalRequestUrl,
        userProvidedBaseUrl: enqueueLinksOptions?.baseUrl
      });
      const urls = extractUrlsFromWindow(window2, enqueueLinksOptions?.selector ?? "a", enqueueLinksOptions?.baseUrl ?? finalRequestUrl ?? originalRequestUrl);
      if (containsEnqueueLinks(options)) {
        return options.enqueueLinks({
          urls,
          baseUrl,
          ...enqueueLinksOptions
        });
      }
      return (0, http_1.enqueueLinks)({
        requestQueue: options.requestQueue,
        robotsTxtFile: options.robotsTxtFile,
        onSkippedRequest: options.onSkippedRequest,
        urls,
        baseUrl,
        ...enqueueLinksOptions
      });
    }
    function extractUrlsFromWindow(window2, selector, baseUrl) {
      return Array.from(window2.document.querySelectorAll(selector)).map((e4) => e4.href).filter((href) => href !== void 0 && href !== "").map((href) => {
        if (href === void 0) {
          return void 0;
        }
        return (0, http_1.tryAbsoluteURL)(href, baseUrl);
      }).filter((href) => href !== void 0 && href !== "");
    }
    function createLinkeDOMRouter2(routes) {
      return http_1.Router.create(routes);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+linkedom@3.16.0/node_modules/@crawlee/linkedom/index.js
var require_linkedom = __commonJS({
  "../../node_modules/.pnpm/@crawlee+linkedom@3.16.0/node_modules/@crawlee/linkedom/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_http(), exports);
    tslib_1.__exportStar(require_linkedom_crawler(), exports);
  }
});

// ../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/Tokenizer.js
var require_Tokenizer3 = __commonJS({
  "../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/Tokenizer.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.QuoteType = void 0;
    var decode_js_1 = require_decode();
    var CharCodes;
    (function(CharCodes2) {
      CharCodes2[CharCodes2["Tab"] = 9] = "Tab";
      CharCodes2[CharCodes2["NewLine"] = 10] = "NewLine";
      CharCodes2[CharCodes2["FormFeed"] = 12] = "FormFeed";
      CharCodes2[CharCodes2["CarriageReturn"] = 13] = "CarriageReturn";
      CharCodes2[CharCodes2["Space"] = 32] = "Space";
      CharCodes2[CharCodes2["ExclamationMark"] = 33] = "ExclamationMark";
      CharCodes2[CharCodes2["Number"] = 35] = "Number";
      CharCodes2[CharCodes2["Amp"] = 38] = "Amp";
      CharCodes2[CharCodes2["SingleQuote"] = 39] = "SingleQuote";
      CharCodes2[CharCodes2["DoubleQuote"] = 34] = "DoubleQuote";
      CharCodes2[CharCodes2["Dash"] = 45] = "Dash";
      CharCodes2[CharCodes2["Slash"] = 47] = "Slash";
      CharCodes2[CharCodes2["Zero"] = 48] = "Zero";
      CharCodes2[CharCodes2["Nine"] = 57] = "Nine";
      CharCodes2[CharCodes2["Semi"] = 59] = "Semi";
      CharCodes2[CharCodes2["Lt"] = 60] = "Lt";
      CharCodes2[CharCodes2["Eq"] = 61] = "Eq";
      CharCodes2[CharCodes2["Gt"] = 62] = "Gt";
      CharCodes2[CharCodes2["Questionmark"] = 63] = "Questionmark";
      CharCodes2[CharCodes2["UpperA"] = 65] = "UpperA";
      CharCodes2[CharCodes2["LowerA"] = 97] = "LowerA";
      CharCodes2[CharCodes2["UpperF"] = 70] = "UpperF";
      CharCodes2[CharCodes2["LowerF"] = 102] = "LowerF";
      CharCodes2[CharCodes2["UpperZ"] = 90] = "UpperZ";
      CharCodes2[CharCodes2["LowerZ"] = 122] = "LowerZ";
      CharCodes2[CharCodes2["LowerX"] = 120] = "LowerX";
      CharCodes2[CharCodes2["OpeningSquareBracket"] = 91] = "OpeningSquareBracket";
    })(CharCodes || (CharCodes = {}));
    var State;
    (function(State2) {
      State2[State2["Text"] = 1] = "Text";
      State2[State2["BeforeTagName"] = 2] = "BeforeTagName";
      State2[State2["InTagName"] = 3] = "InTagName";
      State2[State2["InSelfClosingTag"] = 4] = "InSelfClosingTag";
      State2[State2["BeforeClosingTagName"] = 5] = "BeforeClosingTagName";
      State2[State2["InClosingTagName"] = 6] = "InClosingTagName";
      State2[State2["AfterClosingTagName"] = 7] = "AfterClosingTagName";
      State2[State2["BeforeAttributeName"] = 8] = "BeforeAttributeName";
      State2[State2["InAttributeName"] = 9] = "InAttributeName";
      State2[State2["AfterAttributeName"] = 10] = "AfterAttributeName";
      State2[State2["BeforeAttributeValue"] = 11] = "BeforeAttributeValue";
      State2[State2["InAttributeValueDq"] = 12] = "InAttributeValueDq";
      State2[State2["InAttributeValueSq"] = 13] = "InAttributeValueSq";
      State2[State2["InAttributeValueNq"] = 14] = "InAttributeValueNq";
      State2[State2["BeforeDeclaration"] = 15] = "BeforeDeclaration";
      State2[State2["InDeclaration"] = 16] = "InDeclaration";
      State2[State2["InProcessingInstruction"] = 17] = "InProcessingInstruction";
      State2[State2["BeforeComment"] = 18] = "BeforeComment";
      State2[State2["CDATASequence"] = 19] = "CDATASequence";
      State2[State2["InSpecialComment"] = 20] = "InSpecialComment";
      State2[State2["InCommentLike"] = 21] = "InCommentLike";
      State2[State2["BeforeSpecialS"] = 22] = "BeforeSpecialS";
      State2[State2["BeforeSpecialT"] = 23] = "BeforeSpecialT";
      State2[State2["SpecialStartSequence"] = 24] = "SpecialStartSequence";
      State2[State2["InSpecialTag"] = 25] = "InSpecialTag";
      State2[State2["InEntity"] = 26] = "InEntity";
    })(State || (State = {}));
    function isWhitespace(c6) {
      return c6 === CharCodes.Space || c6 === CharCodes.NewLine || c6 === CharCodes.Tab || c6 === CharCodes.FormFeed || c6 === CharCodes.CarriageReturn;
    }
    function isEndOfTagSection(c6) {
      return c6 === CharCodes.Slash || c6 === CharCodes.Gt || isWhitespace(c6);
    }
    function isASCIIAlpha(c6) {
      return c6 >= CharCodes.LowerA && c6 <= CharCodes.LowerZ || c6 >= CharCodes.UpperA && c6 <= CharCodes.UpperZ;
    }
    var QuoteType;
    (function(QuoteType2) {
      QuoteType2[QuoteType2["NoValue"] = 0] = "NoValue";
      QuoteType2[QuoteType2["Unquoted"] = 1] = "Unquoted";
      QuoteType2[QuoteType2["Single"] = 2] = "Single";
      QuoteType2[QuoteType2["Double"] = 3] = "Double";
    })(QuoteType || (exports.QuoteType = QuoteType = {}));
    var Sequences = {
      Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),
      // CDATA[
      CdataEnd: new Uint8Array([93, 93, 62]),
      // ]]>
      CommentEnd: new Uint8Array([45, 45, 62]),
      // `-->`
      ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),
      // `</script`
      StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),
      // `</style`
      TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]),
      // `</title`
      TextareaEnd: new Uint8Array([
        60,
        47,
        116,
        101,
        120,
        116,
        97,
        114,
        101,
        97
      ])
      // `</textarea`
    };
    var Tokenizer = (
      /** @class */
      (function() {
        function Tokenizer2(_a2, cbs) {
          var _b2 = _a2.xmlMode, xmlMode = _b2 === void 0 ? false : _b2, _c = _a2.decodeEntities, decodeEntities = _c === void 0 ? true : _c;
          var _this = this;
          this.cbs = cbs;
          this.state = State.Text;
          this.buffer = "";
          this.sectionStart = 0;
          this.index = 0;
          this.entityStart = 0;
          this.baseState = State.Text;
          this.isSpecial = false;
          this.running = true;
          this.offset = 0;
          this.currentSequence = void 0;
          this.sequenceIndex = 0;
          this.xmlMode = xmlMode;
          this.decodeEntities = decodeEntities;
          this.entityDecoder = new decode_js_1.EntityDecoder(xmlMode ? decode_js_1.xmlDecodeTree : decode_js_1.htmlDecodeTree, function(cp, consumed) {
            return _this.emitCodePoint(cp, consumed);
          });
        }
        Tokenizer2.prototype.reset = function() {
          this.state = State.Text;
          this.buffer = "";
          this.sectionStart = 0;
          this.index = 0;
          this.baseState = State.Text;
          this.currentSequence = void 0;
          this.running = true;
          this.offset = 0;
        };
        Tokenizer2.prototype.write = function(chunk3) {
          this.offset += this.buffer.length;
          this.buffer = chunk3;
          this.parse();
        };
        Tokenizer2.prototype.end = function() {
          if (this.running)
            this.finish();
        };
        Tokenizer2.prototype.pause = function() {
          this.running = false;
        };
        Tokenizer2.prototype.resume = function() {
          this.running = true;
          if (this.index < this.buffer.length + this.offset) {
            this.parse();
          }
        };
        Tokenizer2.prototype.stateText = function(c6) {
          if (c6 === CharCodes.Lt || !this.decodeEntities && this.fastForwardTo(CharCodes.Lt)) {
            if (this.index > this.sectionStart) {
              this.cbs.ontext(this.sectionStart, this.index);
            }
            this.state = State.BeforeTagName;
            this.sectionStart = this.index;
          } else if (this.decodeEntities && c6 === CharCodes.Amp) {
            this.startEntity();
          }
        };
        Tokenizer2.prototype.stateSpecialStartSequence = function(c6) {
          var isEnd = this.sequenceIndex === this.currentSequence.length;
          var isMatch = isEnd ? (
            // If we are at the end of the sequence, make sure the tag name has ended
            isEndOfTagSection(c6)
          ) : (
            // Otherwise, do a case-insensitive comparison
            (c6 | 32) === this.currentSequence[this.sequenceIndex]
          );
          if (!isMatch) {
            this.isSpecial = false;
          } else if (!isEnd) {
            this.sequenceIndex++;
            return;
          }
          this.sequenceIndex = 0;
          this.state = State.InTagName;
          this.stateInTagName(c6);
        };
        Tokenizer2.prototype.stateInSpecialTag = function(c6) {
          if (this.sequenceIndex === this.currentSequence.length) {
            if (c6 === CharCodes.Gt || isWhitespace(c6)) {
              var endOfText = this.index - this.currentSequence.length;
              if (this.sectionStart < endOfText) {
                var actualIndex = this.index;
                this.index = endOfText;
                this.cbs.ontext(this.sectionStart, endOfText);
                this.index = actualIndex;
              }
              this.isSpecial = false;
              this.sectionStart = endOfText + 2;
              this.stateInClosingTagName(c6);
              return;
            }
            this.sequenceIndex = 0;
          }
          if ((c6 | 32) === this.currentSequence[this.sequenceIndex]) {
            this.sequenceIndex += 1;
          } else if (this.sequenceIndex === 0) {
            if (this.currentSequence === Sequences.TitleEnd) {
              if (this.decodeEntities && c6 === CharCodes.Amp) {
                this.startEntity();
              }
            } else if (this.fastForwardTo(CharCodes.Lt)) {
              this.sequenceIndex = 1;
            }
          } else {
            this.sequenceIndex = Number(c6 === CharCodes.Lt);
          }
        };
        Tokenizer2.prototype.stateCDATASequence = function(c6) {
          if (c6 === Sequences.Cdata[this.sequenceIndex]) {
            if (++this.sequenceIndex === Sequences.Cdata.length) {
              this.state = State.InCommentLike;
              this.currentSequence = Sequences.CdataEnd;
              this.sequenceIndex = 0;
              this.sectionStart = this.index + 1;
            }
          } else {
            this.sequenceIndex = 0;
            this.state = State.InDeclaration;
            this.stateInDeclaration(c6);
          }
        };
        Tokenizer2.prototype.fastForwardTo = function(c6) {
          while (++this.index < this.buffer.length + this.offset) {
            if (this.buffer.charCodeAt(this.index - this.offset) === c6) {
              return true;
            }
          }
          this.index = this.buffer.length + this.offset - 1;
          return false;
        };
        Tokenizer2.prototype.stateInCommentLike = function(c6) {
          if (c6 === this.currentSequence[this.sequenceIndex]) {
            if (++this.sequenceIndex === this.currentSequence.length) {
              if (this.currentSequence === Sequences.CdataEnd) {
                this.cbs.oncdata(this.sectionStart, this.index, 2);
              } else {
                this.cbs.oncomment(this.sectionStart, this.index, 2);
              }
              this.sequenceIndex = 0;
              this.sectionStart = this.index + 1;
              this.state = State.Text;
            }
          } else if (this.sequenceIndex === 0) {
            if (this.fastForwardTo(this.currentSequence[0])) {
              this.sequenceIndex = 1;
            }
          } else if (c6 !== this.currentSequence[this.sequenceIndex - 1]) {
            this.sequenceIndex = 0;
          }
        };
        Tokenizer2.prototype.isTagStartChar = function(c6) {
          return this.xmlMode ? !isEndOfTagSection(c6) : isASCIIAlpha(c6);
        };
        Tokenizer2.prototype.startSpecial = function(sequence, offset2) {
          this.isSpecial = true;
          this.currentSequence = sequence;
          this.sequenceIndex = offset2;
          this.state = State.SpecialStartSequence;
        };
        Tokenizer2.prototype.stateBeforeTagName = function(c6) {
          if (c6 === CharCodes.ExclamationMark) {
            this.state = State.BeforeDeclaration;
            this.sectionStart = this.index + 1;
          } else if (c6 === CharCodes.Questionmark) {
            this.state = State.InProcessingInstruction;
            this.sectionStart = this.index + 1;
          } else if (this.isTagStartChar(c6)) {
            var lower = c6 | 32;
            this.sectionStart = this.index;
            if (this.xmlMode) {
              this.state = State.InTagName;
            } else if (lower === Sequences.ScriptEnd[2]) {
              this.state = State.BeforeSpecialS;
            } else if (lower === Sequences.TitleEnd[2]) {
              this.state = State.BeforeSpecialT;
            } else {
              this.state = State.InTagName;
            }
          } else if (c6 === CharCodes.Slash) {
            this.state = State.BeforeClosingTagName;
          } else {
            this.state = State.Text;
            this.stateText(c6);
          }
        };
        Tokenizer2.prototype.stateInTagName = function(c6) {
          if (isEndOfTagSection(c6)) {
            this.cbs.onopentagname(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.state = State.BeforeAttributeName;
            this.stateBeforeAttributeName(c6);
          }
        };
        Tokenizer2.prototype.stateBeforeClosingTagName = function(c6) {
          if (isWhitespace(c6)) {
          } else if (c6 === CharCodes.Gt) {
            this.state = State.Text;
          } else {
            this.state = this.isTagStartChar(c6) ? State.InClosingTagName : State.InSpecialComment;
            this.sectionStart = this.index;
          }
        };
        Tokenizer2.prototype.stateInClosingTagName = function(c6) {
          if (c6 === CharCodes.Gt || isWhitespace(c6)) {
            this.cbs.onclosetag(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.state = State.AfterClosingTagName;
            this.stateAfterClosingTagName(c6);
          }
        };
        Tokenizer2.prototype.stateAfterClosingTagName = function(c6) {
          if (c6 === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
            this.state = State.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer2.prototype.stateBeforeAttributeName = function(c6) {
          if (c6 === CharCodes.Gt) {
            this.cbs.onopentagend(this.index);
            if (this.isSpecial) {
              this.state = State.InSpecialTag;
              this.sequenceIndex = 0;
            } else {
              this.state = State.Text;
            }
            this.sectionStart = this.index + 1;
          } else if (c6 === CharCodes.Slash) {
            this.state = State.InSelfClosingTag;
          } else if (!isWhitespace(c6)) {
            this.state = State.InAttributeName;
            this.sectionStart = this.index;
          }
        };
        Tokenizer2.prototype.stateInSelfClosingTag = function(c6) {
          if (c6 === CharCodes.Gt) {
            this.cbs.onselfclosingtag(this.index);
            this.state = State.Text;
            this.sectionStart = this.index + 1;
            this.isSpecial = false;
          } else if (!isWhitespace(c6)) {
            this.state = State.BeforeAttributeName;
            this.stateBeforeAttributeName(c6);
          }
        };
        Tokenizer2.prototype.stateInAttributeName = function(c6) {
          if (c6 === CharCodes.Eq || isEndOfTagSection(c6)) {
            this.cbs.onattribname(this.sectionStart, this.index);
            this.sectionStart = this.index;
            this.state = State.AfterAttributeName;
            this.stateAfterAttributeName(c6);
          }
        };
        Tokenizer2.prototype.stateAfterAttributeName = function(c6) {
          if (c6 === CharCodes.Eq) {
            this.state = State.BeforeAttributeValue;
          } else if (c6 === CharCodes.Slash || c6 === CharCodes.Gt) {
            this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);
            this.sectionStart = -1;
            this.state = State.BeforeAttributeName;
            this.stateBeforeAttributeName(c6);
          } else if (!isWhitespace(c6)) {
            this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);
            this.state = State.InAttributeName;
            this.sectionStart = this.index;
          }
        };
        Tokenizer2.prototype.stateBeforeAttributeValue = function(c6) {
          if (c6 === CharCodes.DoubleQuote) {
            this.state = State.InAttributeValueDq;
            this.sectionStart = this.index + 1;
          } else if (c6 === CharCodes.SingleQuote) {
            this.state = State.InAttributeValueSq;
            this.sectionStart = this.index + 1;
          } else if (!isWhitespace(c6)) {
            this.sectionStart = this.index;
            this.state = State.InAttributeValueNq;
            this.stateInAttributeValueNoQuotes(c6);
          }
        };
        Tokenizer2.prototype.handleInAttributeValue = function(c6, quote) {
          if (c6 === quote || !this.decodeEntities && this.fastForwardTo(quote)) {
            this.cbs.onattribdata(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.cbs.onattribend(quote === CharCodes.DoubleQuote ? QuoteType.Double : QuoteType.Single, this.index + 1);
            this.state = State.BeforeAttributeName;
          } else if (this.decodeEntities && c6 === CharCodes.Amp) {
            this.startEntity();
          }
        };
        Tokenizer2.prototype.stateInAttributeValueDoubleQuotes = function(c6) {
          this.handleInAttributeValue(c6, CharCodes.DoubleQuote);
        };
        Tokenizer2.prototype.stateInAttributeValueSingleQuotes = function(c6) {
          this.handleInAttributeValue(c6, CharCodes.SingleQuote);
        };
        Tokenizer2.prototype.stateInAttributeValueNoQuotes = function(c6) {
          if (isWhitespace(c6) || c6 === CharCodes.Gt) {
            this.cbs.onattribdata(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.cbs.onattribend(QuoteType.Unquoted, this.index);
            this.state = State.BeforeAttributeName;
            this.stateBeforeAttributeName(c6);
          } else if (this.decodeEntities && c6 === CharCodes.Amp) {
            this.startEntity();
          }
        };
        Tokenizer2.prototype.stateBeforeDeclaration = function(c6) {
          if (c6 === CharCodes.OpeningSquareBracket) {
            this.state = State.CDATASequence;
            this.sequenceIndex = 0;
          } else {
            this.state = c6 === CharCodes.Dash ? State.BeforeComment : State.InDeclaration;
          }
        };
        Tokenizer2.prototype.stateInDeclaration = function(c6) {
          if (c6 === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
            this.cbs.ondeclaration(this.sectionStart, this.index);
            this.state = State.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer2.prototype.stateInProcessingInstruction = function(c6) {
          if (c6 === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
            this.cbs.onprocessinginstruction(this.sectionStart, this.index);
            this.state = State.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer2.prototype.stateBeforeComment = function(c6) {
          if (c6 === CharCodes.Dash) {
            this.state = State.InCommentLike;
            this.currentSequence = Sequences.CommentEnd;
            this.sequenceIndex = 2;
            this.sectionStart = this.index + 1;
          } else {
            this.state = State.InDeclaration;
          }
        };
        Tokenizer2.prototype.stateInSpecialComment = function(c6) {
          if (c6 === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
            this.cbs.oncomment(this.sectionStart, this.index, 0);
            this.state = State.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer2.prototype.stateBeforeSpecialS = function(c6) {
          var lower = c6 | 32;
          if (lower === Sequences.ScriptEnd[3]) {
            this.startSpecial(Sequences.ScriptEnd, 4);
          } else if (lower === Sequences.StyleEnd[3]) {
            this.startSpecial(Sequences.StyleEnd, 4);
          } else {
            this.state = State.InTagName;
            this.stateInTagName(c6);
          }
        };
        Tokenizer2.prototype.stateBeforeSpecialT = function(c6) {
          var lower = c6 | 32;
          if (lower === Sequences.TitleEnd[3]) {
            this.startSpecial(Sequences.TitleEnd, 4);
          } else if (lower === Sequences.TextareaEnd[3]) {
            this.startSpecial(Sequences.TextareaEnd, 4);
          } else {
            this.state = State.InTagName;
            this.stateInTagName(c6);
          }
        };
        Tokenizer2.prototype.startEntity = function() {
          this.baseState = this.state;
          this.state = State.InEntity;
          this.entityStart = this.index;
          this.entityDecoder.startEntity(this.xmlMode ? decode_js_1.DecodingMode.Strict : this.baseState === State.Text || this.baseState === State.InSpecialTag ? decode_js_1.DecodingMode.Legacy : decode_js_1.DecodingMode.Attribute);
        };
        Tokenizer2.prototype.stateInEntity = function() {
          var length2 = this.entityDecoder.write(this.buffer, this.index - this.offset);
          if (length2 >= 0) {
            this.state = this.baseState;
            if (length2 === 0) {
              this.index = this.entityStart;
            }
          } else {
            this.index = this.offset + this.buffer.length - 1;
          }
        };
        Tokenizer2.prototype.cleanup = function() {
          if (this.running && this.sectionStart !== this.index) {
            if (this.state === State.Text || this.state === State.InSpecialTag && this.sequenceIndex === 0) {
              this.cbs.ontext(this.sectionStart, this.index);
              this.sectionStart = this.index;
            } else if (this.state === State.InAttributeValueDq || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueNq) {
              this.cbs.onattribdata(this.sectionStart, this.index);
              this.sectionStart = this.index;
            }
          }
        };
        Tokenizer2.prototype.shouldContinue = function() {
          return this.index < this.buffer.length + this.offset && this.running;
        };
        Tokenizer2.prototype.parse = function() {
          while (this.shouldContinue()) {
            var c6 = this.buffer.charCodeAt(this.index - this.offset);
            switch (this.state) {
              case State.Text: {
                this.stateText(c6);
                break;
              }
              case State.SpecialStartSequence: {
                this.stateSpecialStartSequence(c6);
                break;
              }
              case State.InSpecialTag: {
                this.stateInSpecialTag(c6);
                break;
              }
              case State.CDATASequence: {
                this.stateCDATASequence(c6);
                break;
              }
              case State.InAttributeValueDq: {
                this.stateInAttributeValueDoubleQuotes(c6);
                break;
              }
              case State.InAttributeName: {
                this.stateInAttributeName(c6);
                break;
              }
              case State.InCommentLike: {
                this.stateInCommentLike(c6);
                break;
              }
              case State.InSpecialComment: {
                this.stateInSpecialComment(c6);
                break;
              }
              case State.BeforeAttributeName: {
                this.stateBeforeAttributeName(c6);
                break;
              }
              case State.InTagName: {
                this.stateInTagName(c6);
                break;
              }
              case State.InClosingTagName: {
                this.stateInClosingTagName(c6);
                break;
              }
              case State.BeforeTagName: {
                this.stateBeforeTagName(c6);
                break;
              }
              case State.AfterAttributeName: {
                this.stateAfterAttributeName(c6);
                break;
              }
              case State.InAttributeValueSq: {
                this.stateInAttributeValueSingleQuotes(c6);
                break;
              }
              case State.BeforeAttributeValue: {
                this.stateBeforeAttributeValue(c6);
                break;
              }
              case State.BeforeClosingTagName: {
                this.stateBeforeClosingTagName(c6);
                break;
              }
              case State.AfterClosingTagName: {
                this.stateAfterClosingTagName(c6);
                break;
              }
              case State.BeforeSpecialS: {
                this.stateBeforeSpecialS(c6);
                break;
              }
              case State.BeforeSpecialT: {
                this.stateBeforeSpecialT(c6);
                break;
              }
              case State.InAttributeValueNq: {
                this.stateInAttributeValueNoQuotes(c6);
                break;
              }
              case State.InSelfClosingTag: {
                this.stateInSelfClosingTag(c6);
                break;
              }
              case State.InDeclaration: {
                this.stateInDeclaration(c6);
                break;
              }
              case State.BeforeDeclaration: {
                this.stateBeforeDeclaration(c6);
                break;
              }
              case State.BeforeComment: {
                this.stateBeforeComment(c6);
                break;
              }
              case State.InProcessingInstruction: {
                this.stateInProcessingInstruction(c6);
                break;
              }
              case State.InEntity: {
                this.stateInEntity();
                break;
              }
            }
            this.index++;
          }
          this.cleanup();
        };
        Tokenizer2.prototype.finish = function() {
          if (this.state === State.InEntity) {
            this.entityDecoder.end();
            this.state = this.baseState;
          }
          this.handleTrailingData();
          this.cbs.onend();
        };
        Tokenizer2.prototype.handleTrailingData = function() {
          var endIndex = this.buffer.length + this.offset;
          if (this.sectionStart >= endIndex) {
            return;
          }
          if (this.state === State.InCommentLike) {
            if (this.currentSequence === Sequences.CdataEnd) {
              this.cbs.oncdata(this.sectionStart, endIndex, 0);
            } else {
              this.cbs.oncomment(this.sectionStart, endIndex, 0);
            }
          } else if (this.state === State.InTagName || this.state === State.BeforeAttributeName || this.state === State.BeforeAttributeValue || this.state === State.AfterAttributeName || this.state === State.InAttributeName || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueDq || this.state === State.InAttributeValueNq || this.state === State.InClosingTagName) {
          } else {
            this.cbs.ontext(this.sectionStart, endIndex);
          }
        };
        Tokenizer2.prototype.emitCodePoint = function(cp, consumed) {
          if (this.baseState !== State.Text && this.baseState !== State.InSpecialTag) {
            if (this.sectionStart < this.entityStart) {
              this.cbs.onattribdata(this.sectionStart, this.entityStart);
            }
            this.sectionStart = this.entityStart + consumed;
            this.index = this.sectionStart - 1;
            this.cbs.onattribentity(cp);
          } else {
            if (this.sectionStart < this.entityStart) {
              this.cbs.ontext(this.sectionStart, this.entityStart);
            }
            this.sectionStart = this.entityStart + consumed;
            this.index = this.sectionStart - 1;
            this.cbs.ontextentity(cp, this.sectionStart);
          }
        };
        return Tokenizer2;
      })()
    );
    exports.default = Tokenizer;
  }
});

// ../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/Parser.js
var require_Parser4 = __commonJS({
  "../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/Parser.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.Parser = void 0;
    var Tokenizer_js_1 = __importStar2(require_Tokenizer3());
    var decode_js_1 = require_decode();
    var formTags = /* @__PURE__ */ new Set([
      "input",
      "option",
      "optgroup",
      "select",
      "button",
      "datalist",
      "textarea"
    ]);
    var pTag = /* @__PURE__ */ new Set(["p"]);
    var tableSectionTags = /* @__PURE__ */ new Set(["thead", "tbody"]);
    var ddtTags = /* @__PURE__ */ new Set(["dd", "dt"]);
    var rtpTags = /* @__PURE__ */ new Set(["rt", "rp"]);
    var openImpliesClose = /* @__PURE__ */ new Map([
      ["tr", /* @__PURE__ */ new Set(["tr", "th", "td"])],
      ["th", /* @__PURE__ */ new Set(["th"])],
      ["td", /* @__PURE__ */ new Set(["thead", "th", "td"])],
      ["body", /* @__PURE__ */ new Set(["head", "link", "script"])],
      ["li", /* @__PURE__ */ new Set(["li"])],
      ["p", pTag],
      ["h1", pTag],
      ["h2", pTag],
      ["h3", pTag],
      ["h4", pTag],
      ["h5", pTag],
      ["h6", pTag],
      ["select", formTags],
      ["input", formTags],
      ["output", formTags],
      ["button", formTags],
      ["datalist", formTags],
      ["textarea", formTags],
      ["option", /* @__PURE__ */ new Set(["option"])],
      ["optgroup", /* @__PURE__ */ new Set(["optgroup", "option"])],
      ["dd", ddtTags],
      ["dt", ddtTags],
      ["address", pTag],
      ["article", pTag],
      ["aside", pTag],
      ["blockquote", pTag],
      ["details", pTag],
      ["div", pTag],
      ["dl", pTag],
      ["fieldset", pTag],
      ["figcaption", pTag],
      ["figure", pTag],
      ["footer", pTag],
      ["form", pTag],
      ["header", pTag],
      ["hr", pTag],
      ["main", pTag],
      ["nav", pTag],
      ["ol", pTag],
      ["pre", pTag],
      ["section", pTag],
      ["table", pTag],
      ["ul", pTag],
      ["rt", rtpTags],
      ["rp", rtpTags],
      ["tbody", tableSectionTags],
      ["tfoot", tableSectionTags]
    ]);
    var voidElements = /* @__PURE__ */ new Set([
      "area",
      "base",
      "basefont",
      "br",
      "col",
      "command",
      "embed",
      "frame",
      "hr",
      "img",
      "input",
      "isindex",
      "keygen",
      "link",
      "meta",
      "param",
      "source",
      "track",
      "wbr"
    ]);
    var foreignContextElements = /* @__PURE__ */ new Set(["math", "svg"]);
    var htmlIntegrationElements = /* @__PURE__ */ new Set([
      "mi",
      "mo",
      "mn",
      "ms",
      "mtext",
      "annotation-xml",
      "foreignobject",
      "desc",
      "title"
    ]);
    var reNameEnd = /\s|\//;
    var Parser = (
      /** @class */
      (function() {
        function Parser2(cbs, options) {
          if (options === void 0) {
            options = {};
          }
          var _a2, _b2, _c, _d, _e, _f;
          this.options = options;
          this.startIndex = 0;
          this.endIndex = 0;
          this.openTagStart = 0;
          this.tagname = "";
          this.attribname = "";
          this.attribvalue = "";
          this.attribs = null;
          this.stack = [];
          this.buffers = [];
          this.bufferOffset = 0;
          this.writeIndex = 0;
          this.ended = false;
          this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};
          this.htmlMode = !this.options.xmlMode;
          this.lowerCaseTagNames = (_a2 = options.lowerCaseTags) !== null && _a2 !== void 0 ? _a2 : this.htmlMode;
          this.lowerCaseAttributeNames = (_b2 = options.lowerCaseAttributeNames) !== null && _b2 !== void 0 ? _b2 : this.htmlMode;
          this.recognizeSelfClosing = (_c = options.recognizeSelfClosing) !== null && _c !== void 0 ? _c : !this.htmlMode;
          this.tokenizer = new ((_d = options.Tokenizer) !== null && _d !== void 0 ? _d : Tokenizer_js_1.default)(this.options, this);
          this.foreignContext = [!this.htmlMode];
          (_f = (_e = this.cbs).onparserinit) === null || _f === void 0 ? void 0 : _f.call(_e, this);
        }
        Parser2.prototype.ontext = function(start2, endIndex) {
          var _a2, _b2;
          var data2 = this.getSlice(start2, endIndex);
          this.endIndex = endIndex - 1;
          (_b2 = (_a2 = this.cbs).ontext) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, data2);
          this.startIndex = endIndex;
        };
        Parser2.prototype.ontextentity = function(cp, endIndex) {
          var _a2, _b2;
          this.endIndex = endIndex - 1;
          (_b2 = (_a2 = this.cbs).ontext) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, (0, decode_js_1.fromCodePoint)(cp));
          this.startIndex = endIndex;
        };
        Parser2.prototype.isVoidElement = function(name) {
          return this.htmlMode && voidElements.has(name);
        };
        Parser2.prototype.onopentagname = function(start2, endIndex) {
          this.endIndex = endIndex;
          var name = this.getSlice(start2, endIndex);
          if (this.lowerCaseTagNames) {
            name = name.toLowerCase();
          }
          this.emitOpenTag(name);
        };
        Parser2.prototype.emitOpenTag = function(name) {
          var _a2, _b2, _c, _d;
          this.openTagStart = this.startIndex;
          this.tagname = name;
          var impliesClose = this.htmlMode && openImpliesClose.get(name);
          if (impliesClose) {
            while (this.stack.length > 0 && impliesClose.has(this.stack[0])) {
              var element = this.stack.shift();
              (_b2 = (_a2 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, element, true);
            }
          }
          if (!this.isVoidElement(name)) {
            this.stack.unshift(name);
            if (this.htmlMode) {
              if (foreignContextElements.has(name)) {
                this.foreignContext.unshift(true);
              } else if (htmlIntegrationElements.has(name)) {
                this.foreignContext.unshift(false);
              }
            }
          }
          (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);
          if (this.cbs.onopentag)
            this.attribs = {};
        };
        Parser2.prototype.endOpenTag = function(isImplied) {
          var _a2, _b2;
          this.startIndex = this.openTagStart;
          if (this.attribs) {
            (_b2 = (_a2 = this.cbs).onopentag) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, this.tagname, this.attribs, isImplied);
            this.attribs = null;
          }
          if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {
            this.cbs.onclosetag(this.tagname, true);
          }
          this.tagname = "";
        };
        Parser2.prototype.onopentagend = function(endIndex) {
          this.endIndex = endIndex;
          this.endOpenTag(false);
          this.startIndex = endIndex + 1;
        };
        Parser2.prototype.onclosetag = function(start2, endIndex) {
          var _a2, _b2, _c, _d, _e, _f, _g, _h;
          this.endIndex = endIndex;
          var name = this.getSlice(start2, endIndex);
          if (this.lowerCaseTagNames) {
            name = name.toLowerCase();
          }
          if (this.htmlMode && (foreignContextElements.has(name) || htmlIntegrationElements.has(name))) {
            this.foreignContext.shift();
          }
          if (!this.isVoidElement(name)) {
            var pos = this.stack.indexOf(name);
            if (pos !== -1) {
              for (var index2 = 0; index2 <= pos; index2++) {
                var element = this.stack.shift();
                (_b2 = (_a2 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, element, index2 !== pos);
              }
            } else if (this.htmlMode && name === "p") {
              this.emitOpenTag("p");
              this.closeCurrentTag(true);
            }
          } else if (this.htmlMode && name === "br") {
            (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, "br");
            (_f = (_e = this.cbs).onopentag) === null || _f === void 0 ? void 0 : _f.call(_e, "br", {}, true);
            (_h = (_g = this.cbs).onclosetag) === null || _h === void 0 ? void 0 : _h.call(_g, "br", false);
          }
          this.startIndex = endIndex + 1;
        };
        Parser2.prototype.onselfclosingtag = function(endIndex) {
          this.endIndex = endIndex;
          if (this.recognizeSelfClosing || this.foreignContext[0]) {
            this.closeCurrentTag(false);
            this.startIndex = endIndex + 1;
          } else {
            this.onopentagend(endIndex);
          }
        };
        Parser2.prototype.closeCurrentTag = function(isOpenImplied) {
          var _a2, _b2;
          var name = this.tagname;
          this.endOpenTag(isOpenImplied);
          if (this.stack[0] === name) {
            (_b2 = (_a2 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, name, !isOpenImplied);
            this.stack.shift();
          }
        };
        Parser2.prototype.onattribname = function(start2, endIndex) {
          this.startIndex = start2;
          var name = this.getSlice(start2, endIndex);
          this.attribname = this.lowerCaseAttributeNames ? name.toLowerCase() : name;
        };
        Parser2.prototype.onattribdata = function(start2, endIndex) {
          this.attribvalue += this.getSlice(start2, endIndex);
        };
        Parser2.prototype.onattribentity = function(cp) {
          this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);
        };
        Parser2.prototype.onattribend = function(quote, endIndex) {
          var _a2, _b2;
          this.endIndex = endIndex;
          (_b2 = (_a2 = this.cbs).onattribute) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double ? '"' : quote === Tokenizer_js_1.QuoteType.Single ? "'" : quote === Tokenizer_js_1.QuoteType.NoValue ? void 0 : null);
          if (this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {
            this.attribs[this.attribname] = this.attribvalue;
          }
          this.attribvalue = "";
        };
        Parser2.prototype.getInstructionName = function(value2) {
          var index2 = value2.search(reNameEnd);
          var name = index2 < 0 ? value2 : value2.substr(0, index2);
          if (this.lowerCaseTagNames) {
            name = name.toLowerCase();
          }
          return name;
        };
        Parser2.prototype.ondeclaration = function(start2, endIndex) {
          this.endIndex = endIndex;
          var value2 = this.getSlice(start2, endIndex);
          if (this.cbs.onprocessinginstruction) {
            var name = this.getInstructionName(value2);
            this.cbs.onprocessinginstruction("!".concat(name), "!".concat(value2));
          }
          this.startIndex = endIndex + 1;
        };
        Parser2.prototype.onprocessinginstruction = function(start2, endIndex) {
          this.endIndex = endIndex;
          var value2 = this.getSlice(start2, endIndex);
          if (this.cbs.onprocessinginstruction) {
            var name = this.getInstructionName(value2);
            this.cbs.onprocessinginstruction("?".concat(name), "?".concat(value2));
          }
          this.startIndex = endIndex + 1;
        };
        Parser2.prototype.oncomment = function(start2, endIndex, offset2) {
          var _a2, _b2, _c, _d;
          this.endIndex = endIndex;
          (_b2 = (_a2 = this.cbs).oncomment) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, this.getSlice(start2, endIndex - offset2));
          (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);
          this.startIndex = endIndex + 1;
        };
        Parser2.prototype.oncdata = function(start2, endIndex, offset2) {
          var _a2, _b2, _c, _d, _e, _f, _g, _h, _j, _k;
          this.endIndex = endIndex;
          var value2 = this.getSlice(start2, endIndex - offset2);
          if (!this.htmlMode || this.options.recognizeCDATA) {
            (_b2 = (_a2 = this.cbs).oncdatastart) === null || _b2 === void 0 ? void 0 : _b2.call(_a2);
            (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value2);
            (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);
          } else {
            (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, "[CDATA[".concat(value2, "]]"));
            (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);
          }
          this.startIndex = endIndex + 1;
        };
        Parser2.prototype.onend = function() {
          var _a2, _b2;
          if (this.cbs.onclosetag) {
            this.endIndex = this.startIndex;
            for (var index2 = 0; index2 < this.stack.length; index2++) {
              this.cbs.onclosetag(this.stack[index2], true);
            }
          }
          (_b2 = (_a2 = this.cbs).onend) === null || _b2 === void 0 ? void 0 : _b2.call(_a2);
        };
        Parser2.prototype.reset = function() {
          var _a2, _b2, _c, _d;
          (_b2 = (_a2 = this.cbs).onreset) === null || _b2 === void 0 ? void 0 : _b2.call(_a2);
          this.tokenizer.reset();
          this.tagname = "";
          this.attribname = "";
          this.attribs = null;
          this.stack.length = 0;
          this.startIndex = 0;
          this.endIndex = 0;
          (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);
          this.buffers.length = 0;
          this.foreignContext.length = 0;
          this.foreignContext.unshift(!this.htmlMode);
          this.bufferOffset = 0;
          this.writeIndex = 0;
          this.ended = false;
        };
        Parser2.prototype.parseComplete = function(data2) {
          this.reset();
          this.end(data2);
        };
        Parser2.prototype.getSlice = function(start2, end2) {
          while (start2 - this.bufferOffset >= this.buffers[0].length) {
            this.shiftBuffer();
          }
          var slice2 = this.buffers[0].slice(start2 - this.bufferOffset, end2 - this.bufferOffset);
          while (end2 - this.bufferOffset > this.buffers[0].length) {
            this.shiftBuffer();
            slice2 += this.buffers[0].slice(0, end2 - this.bufferOffset);
          }
          return slice2;
        };
        Parser2.prototype.shiftBuffer = function() {
          this.bufferOffset += this.buffers[0].length;
          this.writeIndex--;
          this.buffers.shift();
        };
        Parser2.prototype.write = function(chunk3) {
          var _a2, _b2;
          if (this.ended) {
            (_b2 = (_a2 = this.cbs).onerror) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, new Error(".write() after done!"));
            return;
          }
          this.buffers.push(chunk3);
          if (this.tokenizer.running) {
            this.tokenizer.write(chunk3);
            this.writeIndex++;
          }
        };
        Parser2.prototype.end = function(chunk3) {
          var _a2, _b2;
          if (this.ended) {
            (_b2 = (_a2 = this.cbs).onerror) === null || _b2 === void 0 ? void 0 : _b2.call(_a2, new Error(".end() after done!"));
            return;
          }
          if (chunk3)
            this.write(chunk3);
          this.ended = true;
          this.tokenizer.end();
        };
        Parser2.prototype.pause = function() {
          this.tokenizer.pause();
        };
        Parser2.prototype.resume = function() {
          this.tokenizer.resume();
          while (this.tokenizer.running && this.writeIndex < this.buffers.length) {
            this.tokenizer.write(this.buffers[this.writeIndex++]);
          }
          if (this.ended)
            this.tokenizer.end();
        };
        Parser2.prototype.parseChunk = function(chunk3) {
          this.write(chunk3);
        };
        Parser2.prototype.done = function(chunk3) {
          this.end(chunk3);
        };
        return Parser2;
      })()
    );
    exports.Parser = Parser;
  }
});

// ../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/index.js
var require_lib23 = __commonJS({
  "../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/index.js"(exports) {
    "use strict";
    var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m3, k3);
      if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m3[k3];
        } };
      }
      Object.defineProperty(o5, k22, desc);
    }) : (function(o5, m3, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o5[k22] = m3[k3];
    }));
    var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o5, v3) {
      Object.defineProperty(o5, "default", { enumerable: true, value: v3 });
    }) : function(o5, v3) {
      o5["default"] = v3;
    });
    var __importStar2 = exports && exports.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports && exports.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.QuoteType = exports.Tokenizer = exports.createDomStream = exports.createDocumentStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;
    var Parser_js_1 = require_Parser4();
    var Parser_js_2 = require_Parser4();
    Object.defineProperty(exports, "Parser", { enumerable: true, get: function() {
      return Parser_js_2.Parser;
    } });
    var domhandler_1 = require_lib4();
    var domhandler_2 = require_lib4();
    Object.defineProperty(exports, "DomHandler", { enumerable: true, get: function() {
      return domhandler_2.DomHandler;
    } });
    Object.defineProperty(exports, "DefaultHandler", { enumerable: true, get: function() {
      return domhandler_2.DomHandler;
    } });
    function parseDocument(data2, options) {
      var handler = new domhandler_1.DomHandler(void 0, options);
      new Parser_js_1.Parser(handler, options).end(data2);
      return handler.root;
    }
    exports.parseDocument = parseDocument;
    function parseDOM(data2, options) {
      return parseDocument(data2, options).children;
    }
    exports.parseDOM = parseDOM;
    function createDocumentStream(callback, options, elementCallback) {
      var handler = new domhandler_1.DomHandler(function(error) {
        return callback(error, handler.root);
      }, options, elementCallback);
      return new Parser_js_1.Parser(handler, options);
    }
    exports.createDocumentStream = createDocumentStream;
    function createDomStream(callback, options, elementCallback) {
      var handler = new domhandler_1.DomHandler(callback, options, elementCallback);
      return new Parser_js_1.Parser(handler, options);
    }
    exports.createDomStream = createDomStream;
    var Tokenizer_js_1 = require_Tokenizer3();
    Object.defineProperty(exports, "Tokenizer", { enumerable: true, get: function() {
      return __importDefault2(Tokenizer_js_1).default;
    } });
    Object.defineProperty(exports, "QuoteType", { enumerable: true, get: function() {
      return Tokenizer_js_1.QuoteType;
    } });
    exports.ElementType = __importStar2(require_lib3());
    var domutils_1 = require_lib7();
    var domutils_2 = require_lib7();
    Object.defineProperty(exports, "getFeed", { enumerable: true, get: function() {
      return domutils_2.getFeed;
    } });
    var parseFeedDefaultOptions = { xmlMode: true };
    function parseFeed(feed, options) {
      if (options === void 0) {
        options = parseFeedDefaultOptions;
      }
      return (0, domutils_1.getFeed)(parseDOM(feed, options));
    }
    exports.parseFeed = parseFeed;
    exports.DomUtils = __importStar2(require_lib7());
  }
});

// ../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/WritableStream.js
var require_WritableStream = __commonJS({
  "../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/WritableStream.js"(exports) {
    "use strict";
    var __extends2 = exports && exports.__extends || /* @__PURE__ */ (function() {
      var extendStatics2 = function(d3, b3) {
        extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d4, b4) {
          d4.__proto__ = b4;
        } || function(d4, b4) {
          for (var p3 in b4) if (Object.prototype.hasOwnProperty.call(b4, p3)) d4[p3] = b4[p3];
        };
        return extendStatics2(d3, b3);
      };
      return function(d3, b3) {
        if (typeof b3 !== "function" && b3 !== null)
          throw new TypeError("Class extends value " + String(b3) + " is not a constructor or null");
        extendStatics2(d3, b3);
        function __() {
          this.constructor = d3;
        }
        d3.prototype = b3 === null ? Object.create(b3) : (__.prototype = b3.prototype, new __());
      };
    })();
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.WritableStream = void 0;
    var Parser_js_1 = require_Parser4();
    var node_stream_1 = __require("node:stream");
    var node_string_decoder_1 = __require("node:string_decoder");
    function isBuffer4(_chunk, encoding) {
      return encoding === "buffer";
    }
    var WritableStream2 = (
      /** @class */
      (function(_super) {
        __extends2(WritableStream3, _super);
        function WritableStream3(cbs, options) {
          var _this = _super.call(this, { decodeStrings: false }) || this;
          _this._decoder = new node_string_decoder_1.StringDecoder();
          _this._parser = new Parser_js_1.Parser(cbs, options);
          return _this;
        }
        WritableStream3.prototype._write = function(chunk3, encoding, callback) {
          this._parser.write(isBuffer4(chunk3, encoding) ? this._decoder.write(chunk3) : chunk3);
          callback();
        };
        WritableStream3.prototype._final = function(callback) {
          this._parser.end(this._decoder.end());
          callback();
        };
        return WritableStream3;
      })(node_stream_1.Writable)
    );
    exports.WritableStream = WritableStream2;
  }
});

// ../../node_modules/.pnpm/@crawlee+cheerio@3.16.0/node_modules/@crawlee/cheerio/internals/cheerio-crawler.js
var require_cheerio_crawler = __commonJS({
  "../../node_modules/.pnpm/@crawlee+cheerio@3.16.0/node_modules/@crawlee/cheerio/internals/cheerio-crawler.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.CheerioCrawler = void 0;
    exports.cheerioCrawlerEnqueueLinks = cheerioCrawlerEnqueueLinks2;
    exports.createCheerioRouter = createCheerioRouter2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var consumers_1 = __require("node:stream/consumers");
    var http_1 = require_http();
    var utils_1 = require_utils9();
    var cheerio = tslib_1.__importStar(require_lib12());
    var htmlparser2_1 = require_lib23();
    var WritableStream_1 = require_WritableStream();
    var CheerioCrawler2 = class extends http_1.HttpCrawler {
      /**
       * All `CheerioCrawler` parameters are passed via an options object.
       */
      // eslint-disable-next-line @typescript-eslint/no-useless-constructor
      constructor(options, config) {
        super(options, config);
      }
      async _parseHTML(response, isXml, crawlingContext) {
        const body = await (0, consumers_1.text)(response);
        const dom = (0, htmlparser2_1.parseDocument)(body, { decodeEntities: true, xmlMode: isXml });
        const $ = cheerio.load(body, {
          xmlMode: isXml,
          // Recent versions of cheerio use parse5 as the HTML parser/serializer. It's more strict than htmlparser2
          // and not good for scraping. It also does not have a great streaming interface.
          // Here we tell cheerio to use htmlparser2 for serialization, otherwise the conflict produces weird errors.
          _useHtmlParser2: true
        });
        const originalEnqueueLinks = crawlingContext.enqueueLinks;
        return {
          dom,
          $,
          body,
          enqueueLinks: async (enqueueOptions) => {
            return cheerioCrawlerEnqueueLinks2({
              options: { ...enqueueOptions, limit: this.calculateEnqueuedRequestLimit(enqueueOptions?.limit) },
              $,
              requestQueue: await this.getRequestQueue(),
              robotsTxtFile: await this.getRobotsTxtFileForUrl(crawlingContext.request.url),
              onSkippedRequest: this.handleSkippedRequest,
              originalRequestUrl: crawlingContext.request.url,
              finalRequestUrl: crawlingContext.request.loadedUrl,
              enqueueLinks: originalEnqueueLinks
            });
          }
        };
      }
      // TODO: unused code - remove in 4.0
      async _parseHtmlToDom(response, isXml) {
        return new Promise((resolve4, reject) => {
          const domHandler = new htmlparser2_1.DomHandler((err2, dom) => {
            if (err2)
              reject(err2);
            else
              resolve4(dom);
          }, { xmlMode: isXml });
          const parser = new WritableStream_1.WritableStream(domHandler, { decodeEntities: true, xmlMode: isXml });
          parser.on("error", reject);
          response.on("error", reject).pipe(parser);
        });
      }
      async _runRequestHandler(context) {
        context.waitForSelector = async (selector, _timeoutMs) => {
          if (context.$(selector).get().length === 0) {
            throw new Error(`Selector '${selector}' not found.`);
          }
        };
        context.parseWithCheerio = async (selector, timeoutMs) => {
          if (selector) {
            await context.waitForSelector(selector, timeoutMs);
          }
          return context.$;
        };
        await super._runRequestHandler(context);
      }
    };
    exports.CheerioCrawler = CheerioCrawler2;
    function containsEnqueueLinks(options) {
      return !!options.enqueueLinks;
    }
    async function cheerioCrawlerEnqueueLinks2(options) {
      const { options: enqueueLinksOptions, $, originalRequestUrl, finalRequestUrl } = options;
      if (!$) {
        throw new Error("Cannot enqueue links because the DOM is not available.");
      }
      const baseUrl = (0, http_1.resolveBaseUrlForEnqueueLinksFiltering)({
        enqueueStrategy: enqueueLinksOptions?.strategy,
        finalRequestUrl,
        originalRequestUrl,
        userProvidedBaseUrl: enqueueLinksOptions?.baseUrl
      });
      const urls = (0, utils_1.extractUrlsFromCheerio)($, enqueueLinksOptions?.selector ?? "a", enqueueLinksOptions?.baseUrl ?? finalRequestUrl ?? originalRequestUrl);
      if (containsEnqueueLinks(options)) {
        return options.enqueueLinks({
          urls,
          baseUrl,
          ...enqueueLinksOptions
        });
      }
      return (0, http_1.enqueueLinks)({
        requestQueue: options.requestQueue,
        robotsTxtFile: options.robotsTxtFile,
        onSkippedRequest: options.onSkippedRequest,
        urls,
        baseUrl,
        ...enqueueLinksOptions
      });
    }
    function createCheerioRouter2(routes) {
      return http_1.Router.create(routes);
    }
  }
});

// ../../node_modules/.pnpm/@crawlee+cheerio@3.16.0/node_modules/@crawlee/cheerio/index.js
var require_cheerio4 = __commonJS({
  "../../node_modules/.pnpm/@crawlee+cheerio@3.16.0/node_modules/@crawlee/cheerio/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    tslib_1.__exportStar(require_http(), exports);
    tslib_1.__exportStar(require_cheerio_crawler(), exports);
  }
});

// ../../node_modules/.pnpm/crawlee@3.16.0_@types+node@20.19.33/node_modules/crawlee/index.js
var require_crawlee = __commonJS({
  "../../node_modules/.pnpm/crawlee@3.16.0_@types+node@20.19.33/node_modules/crawlee/index.js"(exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.utils = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
    var core_1 = require_core();
    var playwright_1 = require_playwright();
    var puppeteer_1 = require_puppeteer();
    var utils_1 = require_utils9();
    tslib_1.__exportStar(require_core(), exports);
    tslib_1.__exportStar(require_utils9(), exports);
    tslib_1.__exportStar(require_basic(), exports);
    tslib_1.__exportStar(require_browser2(), exports);
    tslib_1.__exportStar(require_http(), exports);
    tslib_1.__exportStar(require_jsdom(), exports);
    tslib_1.__exportStar(require_linkedom(), exports);
    tslib_1.__exportStar(require_cheerio4(), exports);
    tslib_1.__exportStar(require_puppeteer(), exports);
    tslib_1.__exportStar(require_playwright(), exports);
    tslib_1.__exportStar(require_browser_pool2(), exports);
    tslib_1.__exportStar(require_memory_storage2(), exports);
    exports.utils = {
      puppeteer: puppeteer_1.puppeteerUtils,
      playwright: playwright_1.playwrightUtils,
      log: core_1.log,
      enqueueLinks: core_1.enqueueLinks,
      social: utils_1.social,
      sleep: utils_1.sleep,
      downloadListOfUrls: utils_1.downloadListOfUrls,
      parseOpenGraph: utils_1.parseOpenGraph
    };
  }
});

// ../../node_modules/.pnpm/delayed-stream@1.0.0/node_modules/delayed-stream/lib/delayed_stream.js
var require_delayed_stream = __commonJS({
  "../../node_modules/.pnpm/delayed-stream@1.0.0/node_modules/delayed-stream/lib/delayed_stream.js"(exports, module) {
    var Stream = __require("stream").Stream;
    var util3 = __require("util");
    module.exports = DelayedStream;
    function DelayedStream() {
      this.source = null;
      this.dataSize = 0;
      this.maxDataSize = 1024 * 1024;
      this.pauseStream = true;
      this._maxDataSizeExceeded = false;
      this._released = false;
      this._bufferedEvents = [];
    }
    util3.inherits(DelayedStream, Stream);
    DelayedStream.create = function(source, options) {
      var delayedStream = new this();
      options = options || {};
      for (var option in options) {
        delayedStream[option] = options[option];
      }
      delayedStream.source = source;
      var realEmit = source.emit;
      source.emit = function() {
        delayedStream._handleEmit(arguments);
        return realEmit.apply(source, arguments);
      };
      source.on("error", function() {
      });
      if (delayedStream.pauseStream) {
        source.pause();
      }
      return delayedStream;
    };
    Object.defineProperty(DelayedStream.prototype, "readable", {
      configurable: true,
      enumerable: true,
      get: function() {
        return this.source.readable;
      }
    });
    DelayedStream.prototype.setEncoding = function() {
      return this.source.setEncoding.apply(this.source, arguments);
    };
    DelayedStream.prototype.resume = function() {
      if (!this._released) {
        this.release();
      }
      this.source.resume();
    };
    DelayedStream.prototype.pause = function() {
      this.source.pause();
    };
    DelayedStream.prototype.release = function() {
      this._released = true;
      this._bufferedEvents.forEach(function(args) {
        this.emit.apply(this, args);
      }.bind(this));
      this._bufferedEvents = [];
    };
    DelayedStream.prototype.pipe = function() {
      var r4 = Stream.prototype.pipe.apply(this, arguments);
      this.resume();
      return r4;
    };
    DelayedStream.prototype._handleEmit = function(args) {
      if (this._released) {
        this.emit.apply(this, args);
        return;
      }
      if (args[0] === "data") {
        this.dataSize += args[1].length;
        this._checkIfMaxDataSizeExceeded();
      }
      this._bufferedEvents.push(args);
    };
    DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {
      if (this._maxDataSizeExceeded) {
        return;
      }
      if (this.dataSize <= this.maxDataSize) {
        return;
      }
      this._maxDataSizeExceeded = true;
      var message = "DelayedStream#maxDataSize of " + this.maxDataSize + " bytes exceeded.";
      this.emit("error", new Error(message));
    };
  }
});

// ../../node_modules/.pnpm/combined-stream@1.0.8/node_modules/combined-stream/lib/combined_stream.js
var require_combined_stream = __commonJS({
  "../../node_modules/.pnpm/combined-stream@1.0.8/node_modules/combined-stream/lib/combined_stream.js"(exports, module) {
    var util3 = __require("util");
    var Stream = __require("stream").Stream;
    var DelayedStream = require_delayed_stream();
    module.exports = CombinedStream;
    function CombinedStream() {
      this.writable = false;
      this.readable = true;
      this.dataSize = 0;
      this.maxDataSize = 2 * 1024 * 1024;
      this.pauseStreams = true;
      this._released = false;
      this._streams = [];
      this._currentStream = null;
      this._insideLoop = false;
      this._pendingNext = false;
    }
    util3.inherits(CombinedStream, Stream);
    CombinedStream.create = function(options) {
      var combinedStream = new this();
      options = options || {};
      for (var option in options) {
        combinedStream[option] = options[option];
      }
      return combinedStream;
    };
    CombinedStream.isStreamLike = function(stream7) {
      return typeof stream7 !== "function" && typeof stream7 !== "string" && typeof stream7 !== "boolean" && typeof stream7 !== "number" && !Buffer.isBuffer(stream7);
    };
    CombinedStream.prototype.append = function(stream7) {
      var isStreamLike = CombinedStream.isStreamLike(stream7);
      if (isStreamLike) {
        if (!(stream7 instanceof DelayedStream)) {
          var newStream = DelayedStream.create(stream7, {
            maxDataSize: Infinity,
            pauseStream: this.pauseStreams
          });
          stream7.on("data", this._checkDataSize.bind(this));
          stream7 = newStream;
        }
        this._handleErrors(stream7);
        if (this.pauseStreams) {
          stream7.pause();
        }
      }
      this._streams.push(stream7);
      return this;
    };
    CombinedStream.prototype.pipe = function(dest, options) {
      Stream.prototype.pipe.call(this, dest, options);
      this.resume();
      return dest;
    };
    CombinedStream.prototype._getNext = function() {
      this._currentStream = null;
      if (this._insideLoop) {
        this._pendingNext = true;
        return;
      }
      this._insideLoop = true;
      try {
        do {
          this._pendingNext = false;
          this._realGetNext();
        } while (this._pendingNext);
      } finally {
        this._insideLoop = false;
      }
    };
    CombinedStream.prototype._realGetNext = function() {
      var stream7 = this._streams.shift();
      if (typeof stream7 == "undefined") {
        this.end();
        return;
      }
      if (typeof stream7 !== "function") {
        this._pipeNext(stream7);
        return;
      }
      var getStream = stream7;
      getStream(function(stream8) {
        var isStreamLike = CombinedStream.isStreamLike(stream8);
        if (isStreamLike) {
          stream8.on("data", this._checkDataSize.bind(this));
          this._handleErrors(stream8);
        }
        this._pipeNext(stream8);
      }.bind(this));
    };
    CombinedStream.prototype._pipeNext = function(stream7) {
      this._currentStream = stream7;
      var isStreamLike = CombinedStream.isStreamLike(stream7);
      if (isStreamLike) {
        stream7.on("end", this._getNext.bind(this));
        stream7.pipe(this, { end: false });
        return;
      }
      var value2 = stream7;
      this.write(value2);
      this._getNext();
    };
    CombinedStream.prototype._handleErrors = function(stream7) {
      var self2 = this;
      stream7.on("error", function(err2) {
        self2._emitError(err2);
      });
    };
    CombinedStream.prototype.write = function(data2) {
      this.emit("data", data2);
    };
    CombinedStream.prototype.pause = function() {
      if (!this.pauseStreams) {
        return;
      }
      if (this.pauseStreams && this._currentStream && typeof this._currentStream.pause == "function") this._currentStream.pause();
      this.emit("pause");
    };
    CombinedStream.prototype.resume = function() {
      if (!this._released) {
        this._released = true;
        this.writable = true;
        this._getNext();
      }
      if (this.pauseStreams && this._currentStream && typeof this._currentStream.resume == "function") this._currentStream.resume();
      this.emit("resume");
    };
    CombinedStream.prototype.end = function() {
      this._reset();
      this.emit("end");
    };
    CombinedStream.prototype.destroy = function() {
      this._reset();
      this.emit("close");
    };
    CombinedStream.prototype._reset = function() {
      this.writable = false;
      this._streams = [];
      this._currentStream = null;
    };
    CombinedStream.prototype._checkDataSize = function() {
      this._updateDataSize();
      if (this.dataSize <= this.maxDataSize) {
        return;
      }
      var message = "DelayedStream#maxDataSize of " + this.maxDataSize + " bytes exceeded.";
      this._emitError(new Error(message));
    };
    CombinedStream.prototype._updateDataSize = function() {
      this.dataSize = 0;
      var self2 = this;
      this._streams.forEach(function(stream7) {
        if (!stream7.dataSize) {
          return;
        }
        self2.dataSize += stream7.dataSize;
      });
      if (this._currentStream && this._currentStream.dataSize) {
        this.dataSize += this._currentStream.dataSize;
      }
    };
    CombinedStream.prototype._emitError = function(err2) {
      this._reset();
      this.emit("error", err2);
    };
  }
});

// ../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/defer.js
var require_defer = __commonJS({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/defer.js"(exports, module) {
    module.exports = defer;
    function defer(fn) {
      var nextTick = typeof setImmediate == "function" ? setImmediate : typeof process == "object" && typeof process.nextTick == "function" ? process.nextTick : null;
      if (nextTick) {
        nextTick(fn);
      } else {
        setTimeout(fn, 0);
      }
    }
  }
});

// ../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/async.js
var require_async2 = __commonJS({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/async.js"(exports, module) {
    var defer = require_defer();
    module.exports = async;
    function async(callback) {
      var isAsync = false;
      defer(function() {
        isAsync = true;
      });
      return function async_callback(err2, result) {
        if (isAsync) {
          callback(err2, result);
        } else {
          defer(function nextTick_callback() {
            callback(err2, result);
          });
        }
      };
    }
  }
});

// ../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/abort.js
var require_abort = __commonJS({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/abort.js"(exports, module) {
    module.exports = abort;
    function abort(state) {
      Object.keys(state.jobs).forEach(clean2.bind(state));
      state.jobs = {};
    }
    function clean2(key) {
      if (typeof this.jobs[key] == "function") {
        this.jobs[key]();
      }
    }
  }
});

// ../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/iterate.js
var require_iterate = __commonJS({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/iterate.js"(exports, module) {
    var async = require_async2();
    var abort = require_abort();
    module.exports = iterate;
    function iterate(list, iterator2, state, callback) {
      var key = state["keyedList"] ? state["keyedList"][state.index] : state.index;
      state.jobs[key] = runJob(iterator2, key, list[key], function(error, output) {
        if (!(key in state.jobs)) {
          return;
        }
        delete state.jobs[key];
        if (error) {
          abort(state);
        } else {
          state.results[key] = output;
        }
        callback(error, state.results);
      });
    }
    function runJob(iterator2, key, item, callback) {
      var aborter;
      if (iterator2.length == 2) {
        aborter = iterator2(item, async(callback));
      } else {
        aborter = iterator2(item, key, async(callback));
      }
      return aborter;
    }
  }
});

// ../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/state.js
var require_state = __commonJS({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/state.js"(exports, module) {
    module.exports = state;
    function state(list, sortMethod) {
      var isNamedList = !Array.isArray(list), initState = {
        index: 0,
        keyedList: isNamedList || sortMethod ? Object.keys(list) : null,
        jobs: {},
        results: isNamedList ? {} : [],
        size: isNamedList ? Object.keys(list).length : list.length
      };
      if (sortMethod) {
        initState.keyedList.sort(isNamedList ? sortMethod : function(a5, b3) {
          return sortMethod(list[a5], list[b3]);
        });
      }
      return initState;
    }
  }
});

// ../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/terminator.js
var require_terminator = __commonJS({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/terminator.js"(exports, module) {
    var abort = require_abort();
    var async = require_async2();
    module.exports = terminator;
    function terminator(callback) {
      if (!Object.keys(this.jobs).length) {
        return;
      }
      this.index = this.size;
      abort(this);
      async(callback)(null, this.results);
    }
  }
});

// ../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/parallel.js
var require_parallel = __commonJS({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/parallel.js"(exports, module) {
    var iterate = require_iterate();
    var initState = require_state();
    var terminator = require_terminator();
    module.exports = parallel;
    function parallel(list, iterator2, callback) {
      var state = initState(list);
      while (state.index < (state["keyedList"] || list).length) {
        iterate(list, iterator2, state, function(error, result) {
          if (error) {
            callback(error, result);
            return;
          }
          if (Object.keys(state.jobs).length === 0) {
            callback(null, state.results);
            return;
          }
        });
        state.index++;
      }
      return terminator.bind(state, callback);
    }
  }
});

// ../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serialOrdered.js
var require_serialOrdered = __commonJS({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serialOrdered.js"(exports, module) {
    var iterate = require_iterate();
    var initState = require_state();
    var terminator = require_terminator();
    module.exports = serialOrdered;
    module.exports.ascending = ascending;
    module.exports.descending = descending;
    function serialOrdered(list, iterator2, sortMethod, callback) {
      var state = initState(list, sortMethod);
      iterate(list, iterator2, state, function iteratorHandler(error, result) {
        if (error) {
          callback(error, result);
          return;
        }
        state.index++;
        if (state.index < (state["keyedList"] || list).length) {
          iterate(list, iterator2, state, iteratorHandler);
          return;
        }
        callback(null, state.results);
      });
      return terminator.bind(state, callback);
    }
    function ascending(a5, b3) {
      return a5 < b3 ? -1 : a5 > b3 ? 1 : 0;
    }
    function descending(a5, b3) {
      return -1 * ascending(a5, b3);
    }
  }
});

// ../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serial.js
var require_serial = __commonJS({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serial.js"(exports, module) {
    var serialOrdered = require_serialOrdered();
    module.exports = serial;
    function serial(list, iterator2, callback) {
      return serialOrdered(list, iterator2, null, callback);
    }
  }
});

// ../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/index.js
var require_asynckit = __commonJS({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/index.js"(exports, module) {
    module.exports = {
      parallel: require_parallel(),
      serial: require_serial(),
      serialOrdered: require_serialOrdered()
    };
  }
});

// ../../node_modules/.pnpm/es-object-atoms@1.1.1/node_modules/es-object-atoms/index.js
var require_es_object_atoms = __commonJS({
  "../../node_modules/.pnpm/es-object-atoms@1.1.1/node_modules/es-object-atoms/index.js"(exports, module) {
    "use strict";
    module.exports = Object;
  }
});

// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js
var require_es_errors = __commonJS({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js"(exports, module) {
    "use strict";
    module.exports = Error;
  }
});

// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js
var require_eval = __commonJS({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js"(exports, module) {
    "use strict";
    module.exports = EvalError;
  }
});

// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js
var require_range2 = __commonJS({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js"(exports, module) {
    "use strict";
    module.exports = RangeError;
  }
});

// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js
var require_ref = __commonJS({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js"(exports, module) {
    "use strict";
    module.exports = ReferenceError;
  }
});

// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js
var require_syntax = __commonJS({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js"(exports, module) {
    "use strict";
    module.exports = SyntaxError;
  }
});

// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js
var require_type = __commonJS({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js"(exports, module) {
    "use strict";
    module.exports = TypeError;
  }
});

// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js
var require_uri = __commonJS({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js"(exports, module) {
    "use strict";
    module.exports = URIError;
  }
});

// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js
var require_abs = __commonJS({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js"(exports, module) {
    "use strict";
    module.exports = Math.abs;
  }
});

// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js
var require_floor = __commonJS({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js"(exports, module) {
    "use strict";
    module.exports = Math.floor;
  }
});

// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js
var require_max = __commonJS({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js"(exports, module) {
    "use strict";
    module.exports = Math.max;
  }
});

// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js
var require_min = __commonJS({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js"(exports, module) {
    "use strict";
    module.exports = Math.min;
  }
});

// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js
var require_pow = __commonJS({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js"(exports, module) {
    "use strict";
    module.exports = Math.pow;
  }
});

// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js
var require_round = __commonJS({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js"(exports, module) {
    "use strict";
    module.exports = Math.round;
  }
});

// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js
var require_isNaN = __commonJS({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js"(exports, module) {
    "use strict";
    module.exports = Number.isNaN || function isNaN2(a5) {
      return a5 !== a5;
    };
  }
});

// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js
var require_sign = __commonJS({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js"(exports, module) {
    "use strict";
    var $isNaN = require_isNaN();
    module.exports = function sign(number3) {
      if ($isNaN(number3) || number3 === 0) {
        return number3;
      }
      return number3 < 0 ? -1 : 1;
    };
  }
});

// ../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js
var require_gOPD = __commonJS({
  "../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js"(exports, module) {
    "use strict";
    module.exports = Object.getOwnPropertyDescriptor;
  }
});

// ../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js
var require_gopd = __commonJS({
  "../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js"(exports, module) {
    "use strict";
    var $gOPD = require_gOPD();
    if ($gOPD) {
      try {
        $gOPD([], "length");
      } catch (e4) {
        $gOPD = null;
      }
    }
    module.exports = $gOPD;
  }
});

// ../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js
var require_es_define_property = __commonJS({
  "../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js"(exports, module) {
    "use strict";
    var $defineProperty = Object.defineProperty || false;
    if ($defineProperty) {
      try {
        $defineProperty({}, "a", { value: 1 });
      } catch (e4) {
        $defineProperty = false;
      }
    }
    module.exports = $defineProperty;
  }
});

// ../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/shams.js
var require_shams = __commonJS({
  "../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/shams.js"(exports, module) {
    "use strict";
    module.exports = function hasSymbols() {
      if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") {
        return false;
      }
      if (typeof Symbol.iterator === "symbol") {
        return true;
      }
      var obj = {};
      var sym = Symbol("test");
      var symObj = Object(sym);
      if (typeof sym === "string") {
        return false;
      }
      if (Object.prototype.toString.call(sym) !== "[object Symbol]") {
        return false;
      }
      if (Object.prototype.toString.call(symObj) !== "[object Symbol]") {
        return false;
      }
      var symVal = 42;
      obj[sym] = symVal;
      for (var _ in obj) {
        return false;
      }
      if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) {
        return false;
      }
      if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) {
        return false;
      }
      var syms = Object.getOwnPropertySymbols(obj);
      if (syms.length !== 1 || syms[0] !== sym) {
        return false;
      }
      if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {
        return false;
      }
      if (typeof Object.getOwnPropertyDescriptor === "function") {
        var descriptor = (
          /** @type {PropertyDescriptor} */
          Object.getOwnPropertyDescriptor(obj, sym)
        );
        if (descriptor.value !== symVal || descriptor.enumerable !== true) {
          return false;
        }
      }
      return true;
    };
  }
});

// ../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/index.js
var require_has_symbols = __commonJS({
  "../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/index.js"(exports, module) {
    "use strict";
    var origSymbol = typeof Symbol !== "undefined" && Symbol;
    var hasSymbolSham = require_shams();
    module.exports = function hasNativeSymbols() {
      if (typeof origSymbol !== "function") {
        return false;
      }
      if (typeof Symbol !== "function") {
        return false;
      }
      if (typeof origSymbol("foo") !== "symbol") {
        return false;
      }
      if (typeof Symbol("bar") !== "symbol") {
        return false;
      }
      return hasSymbolSham();
    };
  }
});

// ../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js
var require_Reflect_getPrototypeOf = __commonJS({
  "../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js"(exports, module) {
    "use strict";
    module.exports = typeof Reflect !== "undefined" && Reflect.getPrototypeOf || null;
  }
});

// ../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js
var require_Object_getPrototypeOf = __commonJS({
  "../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js"(exports, module) {
    "use strict";
    var $Object = require_es_object_atoms();
    module.exports = $Object.getPrototypeOf || null;
  }
});

// ../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js
var require_implementation = __commonJS({
  "../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js"(exports, module) {
    "use strict";
    var ERROR_MESSAGE = "Function.prototype.bind called on incompatible ";
    var toStr = Object.prototype.toString;
    var max3 = Math.max;
    var funcType = "[object Function]";
    var concatty = function concatty2(a5, b3) {
      var arr = [];
      for (var i5 = 0; i5 < a5.length; i5 += 1) {
        arr[i5] = a5[i5];
      }
      for (var j = 0; j < b3.length; j += 1) {
        arr[j + a5.length] = b3[j];
      }
      return arr;
    };
    var slicy = function slicy2(arrLike, offset2) {
      var arr = [];
      for (var i5 = offset2 || 0, j = 0; i5 < arrLike.length; i5 += 1, j += 1) {
        arr[j] = arrLike[i5];
      }
      return arr;
    };
    var joiny = function(arr, joiner) {
      var str = "";
      for (var i5 = 0; i5 < arr.length; i5 += 1) {
        str += arr[i5];
        if (i5 + 1 < arr.length) {
          str += joiner;
        }
      }
      return str;
    };
    module.exports = function bind2(that) {
      var target = this;
      if (typeof target !== "function" || toStr.apply(target) !== funcType) {
        throw new TypeError(ERROR_MESSAGE + target);
      }
      var args = slicy(arguments, 1);
      var bound;
      var binder = function() {
        if (this instanceof bound) {
          var result = target.apply(
            this,
            concatty(args, arguments)
          );
          if (Object(result) === result) {
            return result;
          }
          return this;
        }
        return target.apply(
          that,
          concatty(args, arguments)
        );
      };
      var boundLength = max3(0, target.length - args.length);
      var boundArgs = [];
      for (var i5 = 0; i5 < boundLength; i5++) {
        boundArgs[i5] = "$" + i5;
      }
      bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder);
      if (target.prototype) {
        var Empty = function Empty2() {
        };
        Empty.prototype = target.prototype;
        bound.prototype = new Empty();
        Empty.prototype = null;
      }
      return bound;
    };
  }
});

// ../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js
var require_function_bind = __commonJS({
  "../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js"(exports, module) {
    "use strict";
    var implementation = require_implementation();
    module.exports = Function.prototype.bind || implementation;
  }
});

// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js
var require_functionCall = __commonJS({
  "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js"(exports, module) {
    "use strict";
    module.exports = Function.prototype.call;
  }
});

// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionApply.js
var require_functionApply = __commonJS({
  "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionApply.js"(exports, module) {
    "use strict";
    module.exports = Function.prototype.apply;
  }
});

// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/reflectApply.js
var require_reflectApply = __commonJS({
  "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/reflectApply.js"(exports, module) {
    "use strict";
    module.exports = typeof Reflect !== "undefined" && Reflect && Reflect.apply;
  }
});

// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js
var require_actualApply = __commonJS({
  "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js"(exports, module) {
    "use strict";
    var bind2 = require_function_bind();
    var $apply = require_functionApply();
    var $call = require_functionCall();
    var $reflectApply = require_reflectApply();
    module.exports = $reflectApply || bind2.call($call, $apply);
  }
});

// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js
var require_call_bind_apply_helpers = __commonJS({
  "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js"(exports, module) {
    "use strict";
    var bind2 = require_function_bind();
    var $TypeError = require_type();
    var $call = require_functionCall();
    var $actualApply = require_actualApply();
    module.exports = function callBindBasic(args) {
      if (args.length < 1 || typeof args[0] !== "function") {
        throw new $TypeError("a function is required");
      }
      return $actualApply(bind2, $call, args);
    };
  }
});

// ../../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js
var require_get2 = __commonJS({
  "../../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js"(exports, module) {
    "use strict";
    var callBind = require_call_bind_apply_helpers();
    var gOPD = require_gopd();
    var hasProtoAccessor;
    try {
      hasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */
      [].__proto__ === Array.prototype;
    } catch (e4) {
      if (!e4 || typeof e4 !== "object" || !("code" in e4) || e4.code !== "ERR_PROTO_ACCESS") {
        throw e4;
      }
    }
    var desc = !!hasProtoAccessor && gOPD && gOPD(
      Object.prototype,
      /** @type {keyof typeof Object.prototype} */
      "__proto__"
    );
    var $Object = Object;
    var $getPrototypeOf = $Object.getPrototypeOf;
    module.exports = desc && typeof desc.get === "function" ? callBind([desc.get]) : typeof $getPrototypeOf === "function" ? (
      /** @type {import('./get')} */
      function getDunder(value2) {
        return $getPrototypeOf(value2 == null ? value2 : $Object(value2));
      }
    ) : false;
  }
});

// ../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js
var require_get_proto = __commonJS({
  "../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js"(exports, module) {
    "use strict";
    var reflectGetProto = require_Reflect_getPrototypeOf();
    var originalGetProto = require_Object_getPrototypeOf();
    var getDunderProto = require_get2();
    module.exports = reflectGetProto ? function getProto(O) {
      return reflectGetProto(O);
    } : originalGetProto ? function getProto(O) {
      if (!O || typeof O !== "object" && typeof O !== "function") {
        throw new TypeError("getProto: not an object");
      }
      return originalGetProto(O);
    } : getDunderProto ? function getProto(O) {
      return getDunderProto(O);
    } : null;
  }
});

// ../../node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js
var require_hasown = __commonJS({
  "../../node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js"(exports, module) {
    "use strict";
    var call = Function.prototype.call;
    var $hasOwn = Object.prototype.hasOwnProperty;
    var bind2 = require_function_bind();
    module.exports = bind2.call(call, $hasOwn);
  }
});

// ../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js
var require_get_intrinsic = __commonJS({
  "../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js"(exports, module) {
    "use strict";
    var undefined2;
    var $Object = require_es_object_atoms();
    var $Error = require_es_errors();
    var $EvalError = require_eval();
    var $RangeError = require_range2();
    var $ReferenceError = require_ref();
    var $SyntaxError = require_syntax();
    var $TypeError = require_type();
    var $URIError = require_uri();
    var abs = require_abs();
    var floor = require_floor();
    var max3 = require_max();
    var min2 = require_min();
    var pow = require_pow();
    var round = require_round();
    var sign = require_sign();
    var $Function = Function;
    var getEvalledConstructor = function(expressionSyntax) {
      try {
        return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")();
      } catch (e4) {
      }
    };
    var $gOPD = require_gopd();
    var $defineProperty = require_es_define_property();
    var throwTypeError = function() {
      throw new $TypeError();
    };
    var ThrowTypeError = $gOPD ? (function() {
      try {
        arguments.callee;
        return throwTypeError;
      } catch (calleeThrows) {
        try {
          return $gOPD(arguments, "callee").get;
        } catch (gOPDthrows) {
          return throwTypeError;
        }
      }
    })() : throwTypeError;
    var hasSymbols = require_has_symbols()();
    var getProto = require_get_proto();
    var $ObjectGPO = require_Object_getPrototypeOf();
    var $ReflectGPO = require_Reflect_getPrototypeOf();
    var $apply = require_functionApply();
    var $call = require_functionCall();
    var needsEval = {};
    var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined2 : getProto(Uint8Array);
    var INTRINSICS = {
      __proto__: null,
      "%AggregateError%": typeof AggregateError === "undefined" ? undefined2 : AggregateError,
      "%Array%": Array,
      "%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined2 : ArrayBuffer,
      "%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2,
      "%AsyncFromSyncIteratorPrototype%": undefined2,
      "%AsyncFunction%": needsEval,
      "%AsyncGenerator%": needsEval,
      "%AsyncGeneratorFunction%": needsEval,
      "%AsyncIteratorPrototype%": needsEval,
      "%Atomics%": typeof Atomics === "undefined" ? undefined2 : Atomics,
      "%BigInt%": typeof BigInt === "undefined" ? undefined2 : BigInt,
      "%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined2 : BigInt64Array,
      "%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined2 : BigUint64Array,
      "%Boolean%": Boolean,
      "%DataView%": typeof DataView === "undefined" ? undefined2 : DataView,
      "%Date%": Date,
      "%decodeURI%": decodeURI,
      "%decodeURIComponent%": decodeURIComponent,
      "%encodeURI%": encodeURI,
      "%encodeURIComponent%": encodeURIComponent,
      "%Error%": $Error,
      "%eval%": eval,
      // eslint-disable-line no-eval
      "%EvalError%": $EvalError,
      "%Float16Array%": typeof Float16Array === "undefined" ? undefined2 : Float16Array,
      "%Float32Array%": typeof Float32Array === "undefined" ? undefined2 : Float32Array,
      "%Float64Array%": typeof Float64Array === "undefined" ? undefined2 : Float64Array,
      "%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined2 : FinalizationRegistry,
      "%Function%": $Function,
      "%GeneratorFunction%": needsEval,
      "%Int8Array%": typeof Int8Array === "undefined" ? undefined2 : Int8Array,
      "%Int16Array%": typeof Int16Array === "undefined" ? undefined2 : Int16Array,
      "%Int32Array%": typeof Int32Array === "undefined" ? undefined2 : Int32Array,
      "%isFinite%": isFinite,
      "%isNaN%": isNaN,
      "%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2,
      "%JSON%": typeof JSON === "object" ? JSON : undefined2,
      "%Map%": typeof Map === "undefined" ? undefined2 : Map,
      "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()),
      "%Math%": Math,
      "%Number%": Number,
      "%Object%": $Object,
      "%Object.getOwnPropertyDescriptor%": $gOPD,
      "%parseFloat%": parseFloat,
      "%parseInt%": parseInt,
      "%Promise%": typeof Promise === "undefined" ? undefined2 : Promise,
      "%Proxy%": typeof Proxy === "undefined" ? undefined2 : Proxy,
      "%RangeError%": $RangeError,
      "%ReferenceError%": $ReferenceError,
      "%Reflect%": typeof Reflect === "undefined" ? undefined2 : Reflect,
      "%RegExp%": RegExp,
      "%Set%": typeof Set === "undefined" ? undefined2 : Set,
      "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()),
      "%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined2 : SharedArrayBuffer,
      "%String%": String,
      "%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined2,
      "%Symbol%": hasSymbols ? Symbol : undefined2,
      "%SyntaxError%": $SyntaxError,
      "%ThrowTypeError%": ThrowTypeError,
      "%TypedArray%": TypedArray,
      "%TypeError%": $TypeError,
      "%Uint8Array%": typeof Uint8Array === "undefined" ? undefined2 : Uint8Array,
      "%Uint8ClampedArray%": typeof Uint8ClampedArray === "undefined" ? undefined2 : Uint8ClampedArray,
      "%Uint16Array%": typeof Uint16Array === "undefined" ? undefined2 : Uint16Array,
      "%Uint32Array%": typeof Uint32Array === "undefined" ? undefined2 : Uint32Array,
      "%URIError%": $URIError,
      "%WeakMap%": typeof WeakMap === "undefined" ? undefined2 : WeakMap,
      "%WeakRef%": typeof WeakRef === "undefined" ? undefined2 : WeakRef,
      "%WeakSet%": typeof WeakSet === "undefined" ? undefined2 : WeakSet,
      "%Function.prototype.call%": $call,
      "%Function.prototype.apply%": $apply,
      "%Object.defineProperty%": $defineProperty,
      "%Object.getPrototypeOf%": $ObjectGPO,
      "%Math.abs%": abs,
      "%Math.floor%": floor,
      "%Math.max%": max3,
      "%Math.min%": min2,
      "%Math.pow%": pow,
      "%Math.round%": round,
      "%Math.sign%": sign,
      "%Reflect.getPrototypeOf%": $ReflectGPO
    };
    if (getProto) {
      try {
        null.error;
      } catch (e4) {
        errorProto = getProto(getProto(e4));
        INTRINSICS["%Error.prototype%"] = errorProto;
      }
    }
    var errorProto;
    var doEval = function doEval2(name) {
      var value2;
      if (name === "%AsyncFunction%") {
        value2 = getEvalledConstructor("async function () {}");
      } else if (name === "%GeneratorFunction%") {
        value2 = getEvalledConstructor("function* () {}");
      } else if (name === "%AsyncGeneratorFunction%") {
        value2 = getEvalledConstructor("async function* () {}");
      } else if (name === "%AsyncGenerator%") {
        var fn = doEval2("%AsyncGeneratorFunction%");
        if (fn) {
          value2 = fn.prototype;
        }
      } else if (name === "%AsyncIteratorPrototype%") {
        var gen = doEval2("%AsyncGenerator%");
        if (gen && getProto) {
          value2 = getProto(gen.prototype);
        }
      }
      INTRINSICS[name] = value2;
      return value2;
    };
    var LEGACY_ALIASES = {
      __proto__: null,
      "%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"],
      "%ArrayPrototype%": ["Array", "prototype"],
      "%ArrayProto_entries%": ["Array", "prototype", "entries"],
      "%ArrayProto_forEach%": ["Array", "prototype", "forEach"],
      "%ArrayProto_keys%": ["Array", "prototype", "keys"],
      "%ArrayProto_values%": ["Array", "prototype", "values"],
      "%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"],
      "%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"],
      "%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype", "prototype"],
      "%BooleanPrototype%": ["Boolean", "prototype"],
      "%DataViewPrototype%": ["DataView", "prototype"],
      "%DatePrototype%": ["Date", "prototype"],
      "%ErrorPrototype%": ["Error", "prototype"],
      "%EvalErrorPrototype%": ["EvalError", "prototype"],
      "%Float32ArrayPrototype%": ["Float32Array", "prototype"],
      "%Float64ArrayPrototype%": ["Float64Array", "prototype"],
      "%FunctionPrototype%": ["Function", "prototype"],
      "%Generator%": ["GeneratorFunction", "prototype"],
      "%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"],
      "%Int8ArrayPrototype%": ["Int8Array", "prototype"],
      "%Int16ArrayPrototype%": ["Int16Array", "prototype"],
      "%Int32ArrayPrototype%": ["Int32Array", "prototype"],
      "%JSONParse%": ["JSON", "parse"],
      "%JSONStringify%": ["JSON", "stringify"],
      "%MapPrototype%": ["Map", "prototype"],
      "%NumberPrototype%": ["Number", "prototype"],
      "%ObjectPrototype%": ["Object", "prototype"],
      "%ObjProto_toString%": ["Object", "prototype", "toString"],
      "%ObjProto_valueOf%": ["Object", "prototype", "valueOf"],
      "%PromisePrototype%": ["Promise", "prototype"],
      "%PromiseProto_then%": ["Promise", "prototype", "then"],
      "%Promise_all%": ["Promise", "all"],
      "%Promise_reject%": ["Promise", "reject"],
      "%Promise_resolve%": ["Promise", "resolve"],
      "%RangeErrorPrototype%": ["RangeError", "prototype"],
      "%ReferenceErrorPrototype%": ["ReferenceError", "prototype"],
      "%RegExpPrototype%": ["RegExp", "prototype"],
      "%SetPrototype%": ["Set", "prototype"],
      "%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"],
      "%StringPrototype%": ["String", "prototype"],
      "%SymbolPrototype%": ["Symbol", "prototype"],
      "%SyntaxErrorPrototype%": ["SyntaxError", "prototype"],
      "%TypedArrayPrototype%": ["TypedArray", "prototype"],
      "%TypeErrorPrototype%": ["TypeError", "prototype"],
      "%Uint8ArrayPrototype%": ["Uint8Array", "prototype"],
      "%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"],
      "%Uint16ArrayPrototype%": ["Uint16Array", "prototype"],
      "%Uint32ArrayPrototype%": ["Uint32Array", "prototype"],
      "%URIErrorPrototype%": ["URIError", "prototype"],
      "%WeakMapPrototype%": ["WeakMap", "prototype"],
      "%WeakSetPrototype%": ["WeakSet", "prototype"]
    };
    var bind2 = require_function_bind();
    var hasOwn = require_hasown();
    var $concat = bind2.call($call, Array.prototype.concat);
    var $spliceApply = bind2.call($apply, Array.prototype.splice);
    var $replace = bind2.call($call, String.prototype.replace);
    var $strSlice = bind2.call($call, String.prototype.slice);
    var $exec = bind2.call($call, RegExp.prototype.exec);
    var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
    var reEscapeChar = /\\(\\)?/g;
    var stringToPath = function stringToPath2(string) {
      var first = $strSlice(string, 0, 1);
      var last2 = $strSlice(string, -1);
      if (first === "%" && last2 !== "%") {
        throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`");
      } else if (last2 === "%" && first !== "%") {
        throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`");
      }
      var result = [];
      $replace(string, rePropName, function(match, number3, quote, subString) {
        result[result.length] = quote ? $replace(subString, reEscapeChar, "$1") : number3 || match;
      });
      return result;
    };
    var getBaseIntrinsic = function getBaseIntrinsic2(name, allowMissing) {
      var intrinsicName = name;
      var alias;
      if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
        alias = LEGACY_ALIASES[intrinsicName];
        intrinsicName = "%" + alias[0] + "%";
      }
      if (hasOwn(INTRINSICS, intrinsicName)) {
        var value2 = INTRINSICS[intrinsicName];
        if (value2 === needsEval) {
          value2 = doEval(intrinsicName);
        }
        if (typeof value2 === "undefined" && !allowMissing) {
          throw new $TypeError("intrinsic " + name + " exists, but is not available. Please file an issue!");
        }
        return {
          alias,
          name: intrinsicName,
          value: value2
        };
      }
      throw new $SyntaxError("intrinsic " + name + " does not exist!");
    };
    module.exports = function GetIntrinsic(name, allowMissing) {
      if (typeof name !== "string" || name.length === 0) {
        throw new $TypeError("intrinsic name must be a non-empty string");
      }
      if (arguments.length > 1 && typeof allowMissing !== "boolean") {
        throw new $TypeError('"allowMissing" argument must be a boolean');
      }
      if ($exec(/^%?[^%]*%?$/, name) === null) {
        throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
      }
      var parts = stringToPath(name);
      var intrinsicBaseName = parts.length > 0 ? parts[0] : "";
      var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing);
      var intrinsicRealName = intrinsic.name;
      var value2 = intrinsic.value;
      var skipFurtherCaching = false;
      var alias = intrinsic.alias;
      if (alias) {
        intrinsicBaseName = alias[0];
        $spliceApply(parts, $concat([0, 1], alias));
      }
      for (var i5 = 1, isOwn = true; i5 < parts.length; i5 += 1) {
        var part = parts[i5];
        var first = $strSlice(part, 0, 1);
        var last2 = $strSlice(part, -1);
        if ((first === '"' || first === "'" || first === "`" || (last2 === '"' || last2 === "'" || last2 === "`")) && first !== last2) {
          throw new $SyntaxError("property names with quotes must have matching quotes");
        }
        if (part === "constructor" || !isOwn) {
          skipFurtherCaching = true;
        }
        intrinsicBaseName += "." + part;
        intrinsicRealName = "%" + intrinsicBaseName + "%";
        if (hasOwn(INTRINSICS, intrinsicRealName)) {
          value2 = INTRINSICS[intrinsicRealName];
        } else if (value2 != null) {
          if (!(part in value2)) {
            if (!allowMissing) {
              throw new $TypeError("base intrinsic for " + name + " exists, but the property is not available.");
            }
            return void undefined2;
          }
          if ($gOPD && i5 + 1 >= parts.length) {
            var desc = $gOPD(value2, part);
            isOwn = !!desc;
            if (isOwn && "get" in desc && !("originalValue" in desc.get)) {
              value2 = desc.get;
            } else {
              value2 = value2[part];
            }
          } else {
            isOwn = hasOwn(value2, part);
            value2 = value2[part];
          }
          if (isOwn && !skipFurtherCaching) {
            INTRINSICS[intrinsicRealName] = value2;
          }
        }
      }
      return value2;
    };
  }
});

// ../../node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.js
var require_shams2 = __commonJS({
  "../../node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.js"(exports, module) {
    "use strict";
    var hasSymbols = require_shams();
    module.exports = function hasToStringTagShams() {
      return hasSymbols() && !!Symbol.toStringTag;
    };
  }
});

// ../../node_modules/.pnpm/es-set-tostringtag@2.1.0/node_modules/es-set-tostringtag/index.js
var require_es_set_tostringtag = __commonJS({
  "../../node_modules/.pnpm/es-set-tostringtag@2.1.0/node_modules/es-set-tostringtag/index.js"(exports, module) {
    "use strict";
    var GetIntrinsic = require_get_intrinsic();
    var $defineProperty = GetIntrinsic("%Object.defineProperty%", true);
    var hasToStringTag = require_shams2()();
    var hasOwn = require_hasown();
    var $TypeError = require_type();
    var toStringTag2 = hasToStringTag ? Symbol.toStringTag : null;
    module.exports = function setToStringTag(object, value2) {
      var overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force;
      var nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable;
      if (typeof overrideIfSet !== "undefined" && typeof overrideIfSet !== "boolean" || typeof nonConfigurable !== "undefined" && typeof nonConfigurable !== "boolean") {
        throw new $TypeError("if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans");
      }
      if (toStringTag2 && (overrideIfSet || !hasOwn(object, toStringTag2))) {
        if ($defineProperty) {
          $defineProperty(object, toStringTag2, {
            configurable: !nonConfigurable,
            enumerable: false,
            value: value2,
            writable: false
          });
        } else {
          object[toStringTag2] = value2;
        }
      }
    };
  }
});

// ../../node_modules/.pnpm/form-data@4.0.5/node_modules/form-data/lib/populate.js
var require_populate = __commonJS({
  "../../node_modules/.pnpm/form-data@4.0.5/node_modules/form-data/lib/populate.js"(exports, module) {
    "use strict";
    module.exports = function(dst, src) {
      Object.keys(src).forEach(function(prop) {
        dst[prop] = dst[prop] || src[prop];
      });
      return dst;
    };
  }
});

// ../../node_modules/.pnpm/form-data@4.0.5/node_modules/form-data/lib/form_data.js
var require_form_data = __commonJS({
  "../../node_modules/.pnpm/form-data@4.0.5/node_modules/form-data/lib/form_data.js"(exports, module) {
    "use strict";
    var CombinedStream = require_combined_stream();
    var util3 = __require("util");
    var path3 = __require("path");
    var http6 = __require("http");
    var https5 = __require("https");
    var parseUrl = __require("url").parse;
    var fs7 = __require("fs");
    var Stream = __require("stream").Stream;
    var crypto5 = __require("crypto");
    var mime = require_mime_types();
    var asynckit = require_asynckit();
    var setToStringTag = require_es_set_tostringtag();
    var hasOwn = require_hasown();
    var populate = require_populate();
    function FormData3(options) {
      if (!(this instanceof FormData3)) {
        return new FormData3(options);
      }
      this._overheadLength = 0;
      this._valueLength = 0;
      this._valuesToMeasure = [];
      CombinedStream.call(this);
      options = options || {};
      for (var option in options) {
        this[option] = options[option];
      }
    }
    util3.inherits(FormData3, CombinedStream);
    FormData3.LINE_BREAK = "\r\n";
    FormData3.DEFAULT_CONTENT_TYPE = "application/octet-stream";
    FormData3.prototype.append = function(field, value2, options) {
      options = options || {};
      if (typeof options === "string") {
        options = { filename: options };
      }
      var append3 = CombinedStream.prototype.append.bind(this);
      if (typeof value2 === "number" || value2 == null) {
        value2 = String(value2);
      }
      if (Array.isArray(value2)) {
        this._error(new Error("Arrays are not supported."));
        return;
      }
      var header = this._multiPartHeader(field, value2, options);
      var footer = this._multiPartFooter();
      append3(header);
      append3(value2);
      append3(footer);
      this._trackLength(header, value2, options);
    };
    FormData3.prototype._trackLength = function(header, value2, options) {
      var valueLength = 0;
      if (options.knownLength != null) {
        valueLength += Number(options.knownLength);
      } else if (Buffer.isBuffer(value2)) {
        valueLength = value2.length;
      } else if (typeof value2 === "string") {
        valueLength = Buffer.byteLength(value2);
      }
      this._valueLength += valueLength;
      this._overheadLength += Buffer.byteLength(header) + FormData3.LINE_BREAK.length;
      if (!value2 || !value2.path && !(value2.readable && hasOwn(value2, "httpVersion")) && !(value2 instanceof Stream)) {
        return;
      }
      if (!options.knownLength) {
        this._valuesToMeasure.push(value2);
      }
    };
    FormData3.prototype._lengthRetriever = function(value2, callback) {
      if (hasOwn(value2, "fd")) {
        if (value2.end != void 0 && value2.end != Infinity && value2.start != void 0) {
          callback(null, value2.end + 1 - (value2.start ? value2.start : 0));
        } else {
          fs7.stat(value2.path, function(err2, stat) {
            if (err2) {
              callback(err2);
              return;
            }
            var fileSize = stat.size - (value2.start ? value2.start : 0);
            callback(null, fileSize);
          });
        }
      } else if (hasOwn(value2, "httpVersion")) {
        callback(null, Number(value2.headers["content-length"]));
      } else if (hasOwn(value2, "httpModule")) {
        value2.on("response", function(response) {
          value2.pause();
          callback(null, Number(response.headers["content-length"]));
        });
        value2.resume();
      } else {
        callback("Unknown stream");
      }
    };
    FormData3.prototype._multiPartHeader = function(field, value2, options) {
      if (typeof options.header === "string") {
        return options.header;
      }
      var contentDisposition = this._getContentDisposition(value2, options);
      var contentType = this._getContentType(value2, options);
      var contents = "";
      var headers = {
        // add custom disposition as third element or keep it two elements if not
        "Content-Disposition": ["form-data", 'name="' + field + '"'].concat(contentDisposition || []),
        // if no content type. allow it to be empty array
        "Content-Type": [].concat(contentType || [])
      };
      if (typeof options.header === "object") {
        populate(headers, options.header);
      }
      var header;
      for (var prop in headers) {
        if (hasOwn(headers, prop)) {
          header = headers[prop];
          if (header == null) {
            continue;
          }
          if (!Array.isArray(header)) {
            header = [header];
          }
          if (header.length) {
            contents += prop + ": " + header.join("; ") + FormData3.LINE_BREAK;
          }
        }
      }
      return "--" + this.getBoundary() + FormData3.LINE_BREAK + contents + FormData3.LINE_BREAK;
    };
    FormData3.prototype._getContentDisposition = function(value2, options) {
      var filename;
      if (typeof options.filepath === "string") {
        filename = path3.normalize(options.filepath).replace(/\\/g, "/");
      } else if (options.filename || value2 && (value2.name || value2.path)) {
        filename = path3.basename(options.filename || value2 && (value2.name || value2.path));
      } else if (value2 && value2.readable && hasOwn(value2, "httpVersion")) {
        filename = path3.basename(value2.client._httpMessage.path || "");
      }
      if (filename) {
        return 'filename="' + filename + '"';
      }
    };
    FormData3.prototype._getContentType = function(value2, options) {
      var contentType = options.contentType;
      if (!contentType && value2 && value2.name) {
        contentType = mime.lookup(value2.name);
      }
      if (!contentType && value2 && value2.path) {
        contentType = mime.lookup(value2.path);
      }
      if (!contentType && value2 && value2.readable && hasOwn(value2, "httpVersion")) {
        contentType = value2.headers["content-type"];
      }
      if (!contentType && (options.filepath || options.filename)) {
        contentType = mime.lookup(options.filepath || options.filename);
      }
      if (!contentType && value2 && typeof value2 === "object") {
        contentType = FormData3.DEFAULT_CONTENT_TYPE;
      }
      return contentType;
    };
    FormData3.prototype._multiPartFooter = function() {
      return function(next) {
        var footer = FormData3.LINE_BREAK;
        var lastPart = this._streams.length === 0;
        if (lastPart) {
          footer += this._lastBoundary();
        }
        next(footer);
      }.bind(this);
    };
    FormData3.prototype._lastBoundary = function() {
      return "--" + this.getBoundary() + "--" + FormData3.LINE_BREAK;
    };
    FormData3.prototype.getHeaders = function(userHeaders) {
      var header;
      var formHeaders = {
        "content-type": "multipart/form-data; boundary=" + this.getBoundary()
      };
      for (header in userHeaders) {
        if (hasOwn(userHeaders, header)) {
          formHeaders[header.toLowerCase()] = userHeaders[header];
        }
      }
      return formHeaders;
    };
    FormData3.prototype.setBoundary = function(boundary) {
      if (typeof boundary !== "string") {
        throw new TypeError("FormData boundary must be a string");
      }
      this._boundary = boundary;
    };
    FormData3.prototype.getBoundary = function() {
      if (!this._boundary) {
        this._generateBoundary();
      }
      return this._boundary;
    };
    FormData3.prototype.getBuffer = function() {
      var dataBuffer = new Buffer.alloc(0);
      var boundary = this.getBoundary();
      for (var i5 = 0, len = this._streams.length; i5 < len; i5++) {
        if (typeof this._streams[i5] !== "function") {
          if (Buffer.isBuffer(this._streams[i5])) {
            dataBuffer = Buffer.concat([dataBuffer, this._streams[i5]]);
          } else {
            dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i5])]);
          }
          if (typeof this._streams[i5] !== "string" || this._streams[i5].substring(2, boundary.length + 2) !== boundary) {
            dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData3.LINE_BREAK)]);
          }
        }
      }
      return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]);
    };
    FormData3.prototype._generateBoundary = function() {
      this._boundary = "--------------------------" + crypto5.randomBytes(12).toString("hex");
    };
    FormData3.prototype.getLengthSync = function() {
      var knownLength = this._overheadLength + this._valueLength;
      if (this._streams.length) {
        knownLength += this._lastBoundary().length;
      }
      if (!this.hasKnownLength()) {
        this._error(new Error("Cannot calculate proper length in synchronous way."));
      }
      return knownLength;
    };
    FormData3.prototype.hasKnownLength = function() {
      var hasKnownLength = true;
      if (this._valuesToMeasure.length) {
        hasKnownLength = false;
      }
      return hasKnownLength;
    };
    FormData3.prototype.getLength = function(cb) {
      var knownLength = this._overheadLength + this._valueLength;
      if (this._streams.length) {
        knownLength += this._lastBoundary().length;
      }
      if (!this._valuesToMeasure.length) {
        process.nextTick(cb.bind(this, null, knownLength));
        return;
      }
      asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err2, values) {
        if (err2) {
          cb(err2);
          return;
        }
        values.forEach(function(length2) {
          knownLength += length2;
        });
        cb(null, knownLength);
      });
    };
    FormData3.prototype.submit = function(params, cb) {
      var request;
      var options;
      var defaults4 = { method: "post" };
      if (typeof params === "string") {
        params = parseUrl(params);
        options = populate({
          port: params.port,
          path: params.pathname,
          host: params.hostname,
          protocol: params.protocol
        }, defaults4);
      } else {
        options = populate(params, defaults4);
        if (!options.port) {
          options.port = options.protocol === "https:" ? 443 : 80;
        }
      }
      options.headers = this.getHeaders(params.headers);
      if (options.protocol === "https:") {
        request = https5.request(options);
      } else {
        request = http6.request(options);
      }
      this.getLength(function(err2, length2) {
        if (err2 && err2 !== "Unknown stream") {
          this._error(err2);
          return;
        }
        if (length2) {
          request.setHeader("Content-Length", length2);
        }
        this.pipe(request);
        if (cb) {
          var onResponse2;
          var callback = function(error, responce) {
            request.removeListener("error", callback);
            request.removeListener("response", onResponse2);
            return cb.call(this, error, responce);
          };
          onResponse2 = callback.bind(this, null);
          request.on("error", callback);
          request.on("response", onResponse2);
        }
      }.bind(this));
      return request;
    };
    FormData3.prototype._error = function(err2) {
      if (!this.error) {
        this.error = err2;
        this.pause();
        this.emit("error", err2);
      }
    };
    FormData3.prototype.toString = function() {
      return "[object FormData]";
    };
    setToStringTag(FormData3.prototype, "FormData");
    module.exports = FormData3;
  }
});

// ../../node_modules/.pnpm/proxy-from-env@1.1.0/node_modules/proxy-from-env/index.js
var require_proxy_from_env = __commonJS({
  "../../node_modules/.pnpm/proxy-from-env@1.1.0/node_modules/proxy-from-env/index.js"(exports) {
    "use strict";
    var parseUrl = __require("url").parse;
    var DEFAULT_PORTS = {
      ftp: 21,
      gopher: 70,
      http: 80,
      https: 443,
      ws: 80,
      wss: 443
    };
    var stringEndsWith = String.prototype.endsWith || function(s4) {
      return s4.length <= this.length && this.indexOf(s4, this.length - s4.length) !== -1;
    };
    function getProxyForUrl(url3) {
      var parsedUrl = typeof url3 === "string" ? parseUrl(url3) : url3 || {};
      var proto = parsedUrl.protocol;
      var hostname = parsedUrl.host;
      var port = parsedUrl.port;
      if (typeof hostname !== "string" || !hostname || typeof proto !== "string") {
        return "";
      }
      proto = proto.split(":", 1)[0];
      hostname = hostname.replace(/:\d*$/, "");
      port = parseInt(port) || DEFAULT_PORTS[proto] || 0;
      if (!shouldProxy(hostname, port)) {
        return "";
      }
      var proxy = getEnv("npm_config_" + proto + "_proxy") || getEnv(proto + "_proxy") || getEnv("npm_config_proxy") || getEnv("all_proxy");
      if (proxy && proxy.indexOf("://") === -1) {
        proxy = proto + "://" + proxy;
      }
      return proxy;
    }
    function shouldProxy(hostname, port) {
      var NO_PROXY = (getEnv("npm_config_no_proxy") || getEnv("no_proxy")).toLowerCase();
      if (!NO_PROXY) {
        return true;
      }
      if (NO_PROXY === "*") {
        return false;
      }
      return NO_PROXY.split(/[,\s]/).every(function(proxy) {
        if (!proxy) {
          return true;
        }
        var parsedProxy = proxy.match(/^(.+):(\d+)$/);
        var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;
        var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;
        if (parsedProxyPort && parsedProxyPort !== port) {
          return true;
        }
        if (!/^[.*]/.test(parsedProxyHostname)) {
          return hostname !== parsedProxyHostname;
        }
        if (parsedProxyHostname.charAt(0) === "*") {
          parsedProxyHostname = parsedProxyHostname.slice(1);
        }
        return !stringEndsWith.call(hostname, parsedProxyHostname);
      });
    }
    function getEnv(key) {
      return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || "";
    }
    exports.getProxyForUrl = getProxyForUrl;
  }
});

// ../../node_modules/.pnpm/follow-redirects@1.15.11/node_modules/follow-redirects/debug.js
var require_debug2 = __commonJS({
  "../../node_modules/.pnpm/follow-redirects@1.15.11/node_modules/follow-redirects/debug.js"(exports, module) {
    var debug2;
    module.exports = function() {
      if (!debug2) {
        try {
          debug2 = require_src()("follow-redirects");
        } catch (error) {
        }
        if (typeof debug2 !== "function") {
          debug2 = function() {
          };
        }
      }
      debug2.apply(null, arguments);
    };
  }
});

// ../../node_modules/.pnpm/follow-redirects@1.15.11/node_modules/follow-redirects/index.js
var require_follow_redirects = __commonJS({
  "../../node_modules/.pnpm/follow-redirects@1.15.11/node_modules/follow-redirects/index.js"(exports, module) {
    var url3 = __require("url");
    var URL5 = url3.URL;
    var http6 = __require("http");
    var https5 = __require("https");
    var Writable = __require("stream").Writable;
    var assert3 = __require("assert");
    var debug2 = require_debug2();
    (function detectUnsupportedEnvironment() {
      var looksLikeNode = typeof process !== "undefined";
      var looksLikeBrowser = typeof window !== "undefined" && typeof document !== "undefined";
      var looksLikeV8 = isFunction5(Error.captureStackTrace);
      if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {
        console.warn("The follow-redirects package should be excluded from browser builds.");
      }
    })();
    var useNativeURL = false;
    try {
      assert3(new URL5(""));
    } catch (error) {
      useNativeURL = error.code === "ERR_INVALID_URL";
    }
    var preservedUrlFields = [
      "auth",
      "host",
      "hostname",
      "href",
      "path",
      "pathname",
      "port",
      "protocol",
      "query",
      "search",
      "hash"
    ];
    var events2 = ["abort", "aborted", "connect", "error", "socket", "timeout"];
    var eventHandlers = /* @__PURE__ */ Object.create(null);
    events2.forEach(function(event) {
      eventHandlers[event] = function(arg1, arg2, arg3) {
        this._redirectable.emit(event, arg1, arg2, arg3);
      };
    });
    var InvalidUrlError = createErrorType(
      "ERR_INVALID_URL",
      "Invalid URL",
      TypeError
    );
    var RedirectionError = createErrorType(
      "ERR_FR_REDIRECTION_FAILURE",
      "Redirected request failed"
    );
    var TooManyRedirectsError = createErrorType(
      "ERR_FR_TOO_MANY_REDIRECTS",
      "Maximum number of redirects exceeded",
      RedirectionError
    );
    var MaxBodyLengthExceededError = createErrorType(
      "ERR_FR_MAX_BODY_LENGTH_EXCEEDED",
      "Request body larger than maxBodyLength limit"
    );
    var WriteAfterEndError = createErrorType(
      "ERR_STREAM_WRITE_AFTER_END",
      "write after end"
    );
    var destroy = Writable.prototype.destroy || noop6;
    function RedirectableRequest(options, responseCallback) {
      Writable.call(this);
      this._sanitizeOptions(options);
      this._options = options;
      this._ended = false;
      this._ending = false;
      this._redirectCount = 0;
      this._redirects = [];
      this._requestBodyLength = 0;
      this._requestBodyBuffers = [];
      if (responseCallback) {
        this.on("response", responseCallback);
      }
      var self2 = this;
      this._onNativeResponse = function(response) {
        try {
          self2._processResponse(response);
        } catch (cause) {
          self2.emit("error", cause instanceof RedirectionError ? cause : new RedirectionError({ cause }));
        }
      };
      this._performRequest();
    }
    RedirectableRequest.prototype = Object.create(Writable.prototype);
    RedirectableRequest.prototype.abort = function() {
      destroyRequest(this._currentRequest);
      this._currentRequest.abort();
      this.emit("abort");
    };
    RedirectableRequest.prototype.destroy = function(error) {
      destroyRequest(this._currentRequest, error);
      destroy.call(this, error);
      return this;
    };
    RedirectableRequest.prototype.write = function(data2, encoding, callback) {
      if (this._ending) {
        throw new WriteAfterEndError();
      }
      if (!isString5(data2) && !isBuffer4(data2)) {
        throw new TypeError("data should be a string, Buffer or Uint8Array");
      }
      if (isFunction5(encoding)) {
        callback = encoding;
        encoding = null;
      }
      if (data2.length === 0) {
        if (callback) {
          callback();
        }
        return;
      }
      if (this._requestBodyLength + data2.length <= this._options.maxBodyLength) {
        this._requestBodyLength += data2.length;
        this._requestBodyBuffers.push({ data: data2, encoding });
        this._currentRequest.write(data2, encoding, callback);
      } else {
        this.emit("error", new MaxBodyLengthExceededError());
        this.abort();
      }
    };
    RedirectableRequest.prototype.end = function(data2, encoding, callback) {
      if (isFunction5(data2)) {
        callback = data2;
        data2 = encoding = null;
      } else if (isFunction5(encoding)) {
        callback = encoding;
        encoding = null;
      }
      if (!data2) {
        this._ended = this._ending = true;
        this._currentRequest.end(null, null, callback);
      } else {
        var self2 = this;
        var currentRequest = this._currentRequest;
        this.write(data2, encoding, function() {
          self2._ended = true;
          currentRequest.end(null, null, callback);
        });
        this._ending = true;
      }
    };
    RedirectableRequest.prototype.setHeader = function(name, value2) {
      this._options.headers[name] = value2;
      this._currentRequest.setHeader(name, value2);
    };
    RedirectableRequest.prototype.removeHeader = function(name) {
      delete this._options.headers[name];
      this._currentRequest.removeHeader(name);
    };
    RedirectableRequest.prototype.setTimeout = function(msecs, callback) {
      var self2 = this;
      function destroyOnTimeout(socket) {
        socket.setTimeout(msecs);
        socket.removeListener("timeout", socket.destroy);
        socket.addListener("timeout", socket.destroy);
      }
      function startTimer(socket) {
        if (self2._timeout) {
          clearTimeout(self2._timeout);
        }
        self2._timeout = setTimeout(function() {
          self2.emit("timeout");
          clearTimer();
        }, msecs);
        destroyOnTimeout(socket);
      }
      function clearTimer() {
        if (self2._timeout) {
          clearTimeout(self2._timeout);
          self2._timeout = null;
        }
        self2.removeListener("abort", clearTimer);
        self2.removeListener("error", clearTimer);
        self2.removeListener("response", clearTimer);
        self2.removeListener("close", clearTimer);
        if (callback) {
          self2.removeListener("timeout", callback);
        }
        if (!self2.socket) {
          self2._currentRequest.removeListener("socket", startTimer);
        }
      }
      if (callback) {
        this.on("timeout", callback);
      }
      if (this.socket) {
        startTimer(this.socket);
      } else {
        this._currentRequest.once("socket", startTimer);
      }
      this.on("socket", destroyOnTimeout);
      this.on("abort", clearTimer);
      this.on("error", clearTimer);
      this.on("response", clearTimer);
      this.on("close", clearTimer);
      return this;
    };
    [
      "flushHeaders",
      "getHeader",
      "setNoDelay",
      "setSocketKeepAlive"
    ].forEach(function(method) {
      RedirectableRequest.prototype[method] = function(a5, b3) {
        return this._currentRequest[method](a5, b3);
      };
    });
    ["aborted", "connection", "socket"].forEach(function(property) {
      Object.defineProperty(RedirectableRequest.prototype, property, {
        get: function() {
          return this._currentRequest[property];
        }
      });
    });
    RedirectableRequest.prototype._sanitizeOptions = function(options) {
      if (!options.headers) {
        options.headers = {};
      }
      if (options.host) {
        if (!options.hostname) {
          options.hostname = options.host;
        }
        delete options.host;
      }
      if (!options.pathname && options.path) {
        var searchPos = options.path.indexOf("?");
        if (searchPos < 0) {
          options.pathname = options.path;
        } else {
          options.pathname = options.path.substring(0, searchPos);
          options.search = options.path.substring(searchPos);
        }
      }
    };
    RedirectableRequest.prototype._performRequest = function() {
      var protocol = this._options.protocol;
      var nativeProtocol = this._options.nativeProtocols[protocol];
      if (!nativeProtocol) {
        throw new TypeError("Unsupported protocol " + protocol);
      }
      if (this._options.agents) {
        var scheme = protocol.slice(0, -1);
        this._options.agent = this._options.agents[scheme];
      }
      var request = this._currentRequest = nativeProtocol.request(this._options, this._onNativeResponse);
      request._redirectable = this;
      for (var event of events2) {
        request.on(event, eventHandlers[event]);
      }
      this._currentUrl = /^\//.test(this._options.path) ? url3.format(this._options) : (
        // When making a request to a proxy, […]
        // a client MUST send the target URI in absolute-form […].
        this._options.path
      );
      if (this._isRedirect) {
        var i5 = 0;
        var self2 = this;
        var buffers = this._requestBodyBuffers;
        (function writeNext(error) {
          if (request === self2._currentRequest) {
            if (error) {
              self2.emit("error", error);
            } else if (i5 < buffers.length) {
              var buffer = buffers[i5++];
              if (!request.finished) {
                request.write(buffer.data, buffer.encoding, writeNext);
              }
            } else if (self2._ended) {
              request.end();
            }
          }
        })();
      }
    };
    RedirectableRequest.prototype._processResponse = function(response) {
      var statusCode = response.statusCode;
      if (this._options.trackRedirects) {
        this._redirects.push({
          url: this._currentUrl,
          headers: response.headers,
          statusCode
        });
      }
      var location = response.headers.location;
      if (!location || this._options.followRedirects === false || statusCode < 300 || statusCode >= 400) {
        response.responseUrl = this._currentUrl;
        response.redirects = this._redirects;
        this.emit("response", response);
        this._requestBodyBuffers = [];
        return;
      }
      destroyRequest(this._currentRequest);
      response.destroy();
      if (++this._redirectCount > this._options.maxRedirects) {
        throw new TooManyRedirectsError();
      }
      var requestHeaders;
      var beforeRedirect2 = this._options.beforeRedirect;
      if (beforeRedirect2) {
        requestHeaders = Object.assign({
          // The Host header was set by nativeProtocol.request
          Host: response.req.getHeader("host")
        }, this._options.headers);
      }
      var method = this._options.method;
      if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" || // RFC7231§6.4.4: The 303 (See Other) status code indicates that
      // the server is redirecting the user agent to a different resource […]
      // A user agent can perform a retrieval request targeting that URI
      // (a GET or HEAD request if using HTTP) […]
      statusCode === 303 && !/^(?:GET|HEAD)$/.test(this._options.method)) {
        this._options.method = "GET";
        this._requestBodyBuffers = [];
        removeMatchingHeaders(/^content-/i, this._options.headers);
      }
      var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);
      var currentUrlParts = parseUrl(this._currentUrl);
      var currentHost = currentHostHeader || currentUrlParts.host;
      var currentUrl = /^\w+:/.test(location) ? this._currentUrl : url3.format(Object.assign(currentUrlParts, { host: currentHost }));
      var redirectUrl = resolveUrl(location, currentUrl);
      debug2("redirecting to", redirectUrl.href);
      this._isRedirect = true;
      spreadUrlObject(redirectUrl, this._options);
      if (redirectUrl.protocol !== currentUrlParts.protocol && redirectUrl.protocol !== "https:" || redirectUrl.host !== currentHost && !isSubdomain(redirectUrl.host, currentHost)) {
        removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);
      }
      if (isFunction5(beforeRedirect2)) {
        var responseDetails = {
          headers: response.headers,
          statusCode
        };
        var requestDetails = {
          url: currentUrl,
          method,
          headers: requestHeaders
        };
        beforeRedirect2(this._options, responseDetails, requestDetails);
        this._sanitizeOptions(this._options);
      }
      this._performRequest();
    };
    function wrap(protocols) {
      var exports2 = {
        maxRedirects: 21,
        maxBodyLength: 10 * 1024 * 1024
      };
      var nativeProtocols = {};
      Object.keys(protocols).forEach(function(scheme) {
        var protocol = scheme + ":";
        var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];
        var wrappedProtocol = exports2[scheme] = Object.create(nativeProtocol);
        function request(input, options, callback) {
          if (isURL(input)) {
            input = spreadUrlObject(input);
          } else if (isString5(input)) {
            input = spreadUrlObject(parseUrl(input));
          } else {
            callback = options;
            options = validateUrl(input);
            input = { protocol };
          }
          if (isFunction5(options)) {
            callback = options;
            options = null;
          }
          options = Object.assign({
            maxRedirects: exports2.maxRedirects,
            maxBodyLength: exports2.maxBodyLength
          }, input, options);
          options.nativeProtocols = nativeProtocols;
          if (!isString5(options.host) && !isString5(options.hostname)) {
            options.hostname = "::1";
          }
          assert3.equal(options.protocol, protocol, "protocol mismatch");
          debug2("options", options);
          return new RedirectableRequest(options, callback);
        }
        function get(input, options, callback) {
          var wrappedRequest = wrappedProtocol.request(input, options, callback);
          wrappedRequest.end();
          return wrappedRequest;
        }
        Object.defineProperties(wrappedProtocol, {
          request: { value: request, configurable: true, enumerable: true, writable: true },
          get: { value: get, configurable: true, enumerable: true, writable: true }
        });
      });
      return exports2;
    }
    function noop6() {
    }
    function parseUrl(input) {
      var parsed;
      if (useNativeURL) {
        parsed = new URL5(input);
      } else {
        parsed = validateUrl(url3.parse(input));
        if (!isString5(parsed.protocol)) {
          throw new InvalidUrlError({ input });
        }
      }
      return parsed;
    }
    function resolveUrl(relative, base) {
      return useNativeURL ? new URL5(relative, base) : parseUrl(url3.resolve(base, relative));
    }
    function validateUrl(input) {
      if (/^\[/.test(input.hostname) && !/^\[[:0-9a-f]+\]$/i.test(input.hostname)) {
        throw new InvalidUrlError({ input: input.href || input });
      }
      if (/^\[/.test(input.host) && !/^\[[:0-9a-f]+\](:\d+)?$/i.test(input.host)) {
        throw new InvalidUrlError({ input: input.href || input });
      }
      return input;
    }
    function spreadUrlObject(urlObject, target) {
      var spread3 = target || {};
      for (var key of preservedUrlFields) {
        spread3[key] = urlObject[key];
      }
      if (spread3.hostname.startsWith("[")) {
        spread3.hostname = spread3.hostname.slice(1, -1);
      }
      if (spread3.port !== "") {
        spread3.port = Number(spread3.port);
      }
      spread3.path = spread3.search ? spread3.pathname + spread3.search : spread3.pathname;
      return spread3;
    }
    function removeMatchingHeaders(regex2, headers) {
      var lastValue;
      for (var header in headers) {
        if (regex2.test(header)) {
          lastValue = headers[header];
          delete headers[header];
        }
      }
      return lastValue === null || typeof lastValue === "undefined" ? void 0 : String(lastValue).trim();
    }
    function createErrorType(code, message, baseClass) {
      function CustomError(properties) {
        if (isFunction5(Error.captureStackTrace)) {
          Error.captureStackTrace(this, this.constructor);
        }
        Object.assign(this, properties || {});
        this.code = code;
        this.message = this.cause ? message + ": " + this.cause.message : message;
      }
      CustomError.prototype = new (baseClass || Error)();
      Object.defineProperties(CustomError.prototype, {
        constructor: {
          value: CustomError,
          enumerable: false
        },
        name: {
          value: "Error [" + code + "]",
          enumerable: false
        }
      });
      return CustomError;
    }
    function destroyRequest(request, error) {
      for (var event of events2) {
        request.removeListener(event, eventHandlers[event]);
      }
      request.on("error", noop6);
      request.destroy(error);
    }
    function isSubdomain(subdomain, domain) {
      assert3(isString5(subdomain) && isString5(domain));
      var dot = subdomain.length - domain.length - 1;
      return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain);
    }
    function isString5(value2) {
      return typeof value2 === "string" || value2 instanceof String;
    }
    function isFunction5(value2) {
      return typeof value2 === "function";
    }
    function isBuffer4(value2) {
      return typeof value2 === "object" && "length" in value2;
    }
    function isURL(value2) {
      return URL5 && value2 instanceof URL5;
    }
    module.exports = wrap({ http: http6, https: https5 });
    module.exports.wrap = wrap;
  }
});

// ../../node_modules/.pnpm/is-url@1.2.4/node_modules/is-url/index.js
var require_is_url = __commonJS({
  "../../node_modules/.pnpm/is-url@1.2.4/node_modules/is-url/index.js"(exports, module) {
    module.exports = isUrl2;
    var protocolAndDomainRE = /^(?:\w+:)?\/\/(\S+)$/;
    var localhostDomainRE = /^localhost[\:?\d]*(?:[^\:?\d]\S*)?$/;
    var nonLocalhostDomainRE = /^[^\s\.]+\.\S{2,}$/;
    function isUrl2(string) {
      if (typeof string !== "string") {
        return false;
      }
      var match = string.match(protocolAndDomainRE);
      if (!match) {
        return false;
      }
      var everythingAfterProtocol = match[1];
      if (!everythingAfterProtocol) {
        return false;
      }
      if (localhostDomainRE.test(everythingAfterProtocol) || nonLocalhostDomainRE.test(everythingAfterProtocol)) {
        return true;
      }
      return false;
    }
  }
});

// ../../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js
var require_fast_deep_equal = __commonJS({
  "../../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js"(exports, module) {
    "use strict";
    module.exports = function equal(a5, b3) {
      if (a5 === b3) return true;
      if (a5 && b3 && typeof a5 == "object" && typeof b3 == "object") {
        if (a5.constructor !== b3.constructor) return false;
        var length2, i5, keys2;
        if (Array.isArray(a5)) {
          length2 = a5.length;
          if (length2 != b3.length) return false;
          for (i5 = length2; i5-- !== 0; )
            if (!equal(a5[i5], b3[i5])) return false;
          return true;
        }
        if (a5.constructor === RegExp) return a5.source === b3.source && a5.flags === b3.flags;
        if (a5.valueOf !== Object.prototype.valueOf) return a5.valueOf() === b3.valueOf();
        if (a5.toString !== Object.prototype.toString) return a5.toString() === b3.toString();
        keys2 = Object.keys(a5);
        length2 = keys2.length;
        if (length2 !== Object.keys(b3).length) return false;
        for (i5 = length2; i5-- !== 0; )
          if (!Object.prototype.hasOwnProperty.call(b3, keys2[i5])) return false;
        for (i5 = length2; i5-- !== 0; ) {
          var key = keys2[i5];
          if (!equal(a5[key], b3[key])) return false;
        }
        return true;
      }
      return a5 !== a5 && b3 !== b3;
    };
  }
});

// ../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js
var require_base64_js = __commonJS({
  "../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js"(exports) {
    "use strict";
    exports.byteLength = byteLength3;
    exports.toByteArray = toByteArray;
    exports.fromByteArray = fromByteArray;
    var lookup = [];
    var revLookup = [];
    var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;
    var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    for (i5 = 0, len = code.length; i5 < len; ++i5) {
      lookup[i5] = code[i5];
      revLookup[code.charCodeAt(i5)] = i5;
    }
    var i5;
    var len;
    revLookup["-".charCodeAt(0)] = 62;
    revLookup["_".charCodeAt(0)] = 63;
    function getLens(b64) {
      var len2 = b64.length;
      if (len2 % 4 > 0) {
        throw new Error("Invalid string. Length must be a multiple of 4");
      }
      var validLen = b64.indexOf("=");
      if (validLen === -1) validLen = len2;
      var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;
      return [validLen, placeHoldersLen];
    }
    function byteLength3(b64) {
      var lens = getLens(b64);
      var validLen = lens[0];
      var placeHoldersLen = lens[1];
      return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
    }
    function _byteLength(b64, validLen, placeHoldersLen) {
      return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
    }
    function toByteArray(b64) {
      var tmp;
      var lens = getLens(b64);
      var validLen = lens[0];
      var placeHoldersLen = lens[1];
      var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));
      var curByte = 0;
      var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;
      var i6;
      for (i6 = 0; i6 < len2; i6 += 4) {
        tmp = revLookup[b64.charCodeAt(i6)] << 18 | revLookup[b64.charCodeAt(i6 + 1)] << 12 | revLookup[b64.charCodeAt(i6 + 2)] << 6 | revLookup[b64.charCodeAt(i6 + 3)];
        arr[curByte++] = tmp >> 16 & 255;
        arr[curByte++] = tmp >> 8 & 255;
        arr[curByte++] = tmp & 255;
      }
      if (placeHoldersLen === 2) {
        tmp = revLookup[b64.charCodeAt(i6)] << 2 | revLookup[b64.charCodeAt(i6 + 1)] >> 4;
        arr[curByte++] = tmp & 255;
      }
      if (placeHoldersLen === 1) {
        tmp = revLookup[b64.charCodeAt(i6)] << 10 | revLookup[b64.charCodeAt(i6 + 1)] << 4 | revLookup[b64.charCodeAt(i6 + 2)] >> 2;
        arr[curByte++] = tmp >> 8 & 255;
        arr[curByte++] = tmp & 255;
      }
      return arr;
    }
    function tripletToBase64(num) {
      return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];
    }
    function encodeChunk(uint82, start2, end2) {
      var tmp;
      var output = [];
      for (var i6 = start2; i6 < end2; i6 += 3) {
        tmp = (uint82[i6] << 16 & 16711680) + (uint82[i6 + 1] << 8 & 65280) + (uint82[i6 + 2] & 255);
        output.push(tripletToBase64(tmp));
      }
      return output.join("");
    }
    function fromByteArray(uint82) {
      var tmp;
      var len2 = uint82.length;
      var extraBytes = len2 % 3;
      var parts = [];
      var maxChunkLength = 16383;
      for (var i6 = 0, len22 = len2 - extraBytes; i6 < len22; i6 += maxChunkLength) {
        parts.push(encodeChunk(uint82, i6, i6 + maxChunkLength > len22 ? len22 : i6 + maxChunkLength));
      }
      if (extraBytes === 1) {
        tmp = uint82[len2 - 1];
        parts.push(
          lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "=="
        );
      } else if (extraBytes === 2) {
        tmp = (uint82[len2 - 2] << 8) + uint82[len2 - 1];
        parts.push(
          lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "="
        );
      }
      return parts.join("");
    }
  }
});

// ../../node_modules/.pnpm/tiny-inflate@1.0.3/node_modules/tiny-inflate/index.js
var require_tiny_inflate = __commonJS({
  "../../node_modules/.pnpm/tiny-inflate@1.0.3/node_modules/tiny-inflate/index.js"(exports, module) {
    var TINF_OK = 0;
    var TINF_DATA_ERROR = -3;
    function Tree() {
      this.table = new Uint16Array(16);
      this.trans = new Uint16Array(288);
    }
    function Data(source, dest) {
      this.source = source;
      this.sourceIndex = 0;
      this.tag = 0;
      this.bitcount = 0;
      this.dest = dest;
      this.destLen = 0;
      this.ltree = new Tree();
      this.dtree = new Tree();
    }
    var sltree = new Tree();
    var sdtree = new Tree();
    var length_bits = new Uint8Array(30);
    var length_base = new Uint16Array(30);
    var dist_bits = new Uint8Array(30);
    var dist_base = new Uint16Array(30);
    var clcidx = new Uint8Array([
      16,
      17,
      18,
      0,
      8,
      7,
      9,
      6,
      10,
      5,
      11,
      4,
      12,
      3,
      13,
      2,
      14,
      1,
      15
    ]);
    var code_tree = new Tree();
    var lengths = new Uint8Array(288 + 32);
    function tinf_build_bits_base(bits2, base, delta, first) {
      var i5, sum;
      for (i5 = 0; i5 < delta; ++i5) bits2[i5] = 0;
      for (i5 = 0; i5 < 30 - delta; ++i5) bits2[i5 + delta] = i5 / delta | 0;
      for (sum = first, i5 = 0; i5 < 30; ++i5) {
        base[i5] = sum;
        sum += 1 << bits2[i5];
      }
    }
    function tinf_build_fixed_trees(lt, dt) {
      var i5;
      for (i5 = 0; i5 < 7; ++i5) lt.table[i5] = 0;
      lt.table[7] = 24;
      lt.table[8] = 152;
      lt.table[9] = 112;
      for (i5 = 0; i5 < 24; ++i5) lt.trans[i5] = 256 + i5;
      for (i5 = 0; i5 < 144; ++i5) lt.trans[24 + i5] = i5;
      for (i5 = 0; i5 < 8; ++i5) lt.trans[24 + 144 + i5] = 280 + i5;
      for (i5 = 0; i5 < 112; ++i5) lt.trans[24 + 144 + 8 + i5] = 144 + i5;
      for (i5 = 0; i5 < 5; ++i5) dt.table[i5] = 0;
      dt.table[5] = 32;
      for (i5 = 0; i5 < 32; ++i5) dt.trans[i5] = i5;
    }
    var offs = new Uint16Array(16);
    function tinf_build_tree(t4, lengths2, off, num) {
      var i5, sum;
      for (i5 = 0; i5 < 16; ++i5) t4.table[i5] = 0;
      for (i5 = 0; i5 < num; ++i5) t4.table[lengths2[off + i5]]++;
      t4.table[0] = 0;
      for (sum = 0, i5 = 0; i5 < 16; ++i5) {
        offs[i5] = sum;
        sum += t4.table[i5];
      }
      for (i5 = 0; i5 < num; ++i5) {
        if (lengths2[off + i5]) t4.trans[offs[lengths2[off + i5]]++] = i5;
      }
    }
    function tinf_getbit(d3) {
      if (!d3.bitcount--) {
        d3.tag = d3.source[d3.sourceIndex++];
        d3.bitcount = 7;
      }
      var bit = d3.tag & 1;
      d3.tag >>>= 1;
      return bit;
    }
    function tinf_read_bits(d3, num, base) {
      if (!num)
        return base;
      while (d3.bitcount < 24) {
        d3.tag |= d3.source[d3.sourceIndex++] << d3.bitcount;
        d3.bitcount += 8;
      }
      var val = d3.tag & 65535 >>> 16 - num;
      d3.tag >>>= num;
      d3.bitcount -= num;
      return val + base;
    }
    function tinf_decode_symbol(d3, t4) {
      while (d3.bitcount < 24) {
        d3.tag |= d3.source[d3.sourceIndex++] << d3.bitcount;
        d3.bitcount += 8;
      }
      var sum = 0, cur = 0, len = 0;
      var tag = d3.tag;
      do {
        cur = 2 * cur + (tag & 1);
        tag >>>= 1;
        ++len;
        sum += t4.table[len];
        cur -= t4.table[len];
      } while (cur >= 0);
      d3.tag = tag;
      d3.bitcount -= len;
      return t4.trans[sum + cur];
    }
    function tinf_decode_trees(d3, lt, dt) {
      var hlit, hdist, hclen;
      var i5, num, length2;
      hlit = tinf_read_bits(d3, 5, 257);
      hdist = tinf_read_bits(d3, 5, 1);
      hclen = tinf_read_bits(d3, 4, 4);
      for (i5 = 0; i5 < 19; ++i5) lengths[i5] = 0;
      for (i5 = 0; i5 < hclen; ++i5) {
        var clen = tinf_read_bits(d3, 3, 0);
        lengths[clcidx[i5]] = clen;
      }
      tinf_build_tree(code_tree, lengths, 0, 19);
      for (num = 0; num < hlit + hdist; ) {
        var sym = tinf_decode_symbol(d3, code_tree);
        switch (sym) {
          case 16:
            var prev = lengths[num - 1];
            for (length2 = tinf_read_bits(d3, 2, 3); length2; --length2) {
              lengths[num++] = prev;
            }
            break;
          case 17:
            for (length2 = tinf_read_bits(d3, 3, 3); length2; --length2) {
              lengths[num++] = 0;
            }
            break;
          case 18:
            for (length2 = tinf_read_bits(d3, 7, 11); length2; --length2) {
              lengths[num++] = 0;
            }
            break;
          default:
            lengths[num++] = sym;
            break;
        }
      }
      tinf_build_tree(lt, lengths, 0, hlit);
      tinf_build_tree(dt, lengths, hlit, hdist);
    }
    function tinf_inflate_block_data(d3, lt, dt) {
      while (1) {
        var sym = tinf_decode_symbol(d3, lt);
        if (sym === 256) {
          return TINF_OK;
        }
        if (sym < 256) {
          d3.dest[d3.destLen++] = sym;
        } else {
          var length2, dist, offs2;
          var i5;
          sym -= 257;
          length2 = tinf_read_bits(d3, length_bits[sym], length_base[sym]);
          dist = tinf_decode_symbol(d3, dt);
          offs2 = d3.destLen - tinf_read_bits(d3, dist_bits[dist], dist_base[dist]);
          for (i5 = offs2; i5 < offs2 + length2; ++i5) {
            d3.dest[d3.destLen++] = d3.dest[i5];
          }
        }
      }
    }
    function tinf_inflate_uncompressed_block(d3) {
      var length2, invlength;
      var i5;
      while (d3.bitcount > 8) {
        d3.sourceIndex--;
        d3.bitcount -= 8;
      }
      length2 = d3.source[d3.sourceIndex + 1];
      length2 = 256 * length2 + d3.source[d3.sourceIndex];
      invlength = d3.source[d3.sourceIndex + 3];
      invlength = 256 * invlength + d3.source[d3.sourceIndex + 2];
      if (length2 !== (~invlength & 65535))
        return TINF_DATA_ERROR;
      d3.sourceIndex += 4;
      for (i5 = length2; i5; --i5)
        d3.dest[d3.destLen++] = d3.source[d3.sourceIndex++];
      d3.bitcount = 0;
      return TINF_OK;
    }
    function tinf_uncompress(source, dest) {
      var d3 = new Data(source, dest);
      var bfinal, btype, res;
      do {
        bfinal = tinf_getbit(d3);
        btype = tinf_read_bits(d3, 2, 0);
        switch (btype) {
          case 0:
            res = tinf_inflate_uncompressed_block(d3);
            break;
          case 1:
            res = tinf_inflate_block_data(d3, sltree, sdtree);
            break;
          case 2:
            tinf_decode_trees(d3, d3.ltree, d3.dtree);
            res = tinf_inflate_block_data(d3, d3.ltree, d3.dtree);
            break;
          default:
            res = TINF_DATA_ERROR;
        }
        if (res !== TINF_OK)
          throw new Error("Data error");
      } while (!bfinal);
      if (d3.destLen < d3.dest.length) {
        if (typeof d3.dest.slice === "function")
          return d3.dest.slice(0, d3.destLen);
        else
          return d3.dest.subarray(0, d3.destLen);
      }
      return d3.dest;
    }
    tinf_build_fixed_trees(sltree, sdtree);
    tinf_build_bits_base(length_bits, length_base, 4, 3);
    tinf_build_bits_base(dist_bits, dist_base, 2, 1);
    length_bits[28] = 0;
    length_base[28] = 258;
    module.exports = tinf_uncompress;
  }
});

// ../../node_modules/.pnpm/unicode-trie@2.0.0/node_modules/unicode-trie/swap.js
var require_swap = __commonJS({
  "../../node_modules/.pnpm/unicode-trie@2.0.0/node_modules/unicode-trie/swap.js"(exports, module) {
    var isBigEndian2 = new Uint8Array(new Uint32Array([305419896]).buffer)[0] === 18;
    var swap = (b3, n6, m3) => {
      let i5 = b3[n6];
      b3[n6] = b3[m3];
      b3[m3] = i5;
    };
    var swap32 = (array) => {
      const len = array.length;
      for (let i5 = 0; i5 < len; i5 += 4) {
        swap(array, i5, i5 + 3);
        swap(array, i5 + 1, i5 + 2);
      }
    };
    var swap32LE = (array) => {
      if (isBigEndian2) {
        swap32(array);
      }
    };
    module.exports = {
      swap32LE
    };
  }
});

// ../../node_modules/.pnpm/unicode-trie@2.0.0/node_modules/unicode-trie/index.js
var require_unicode_trie = __commonJS({
  "../../node_modules/.pnpm/unicode-trie@2.0.0/node_modules/unicode-trie/index.js"(exports, module) {
    var inflate = require_tiny_inflate();
    var { swap32LE } = require_swap();
    var SHIFT_1 = 6 + 5;
    var SHIFT_2 = 5;
    var SHIFT_1_2 = SHIFT_1 - SHIFT_2;
    var OMITTED_BMP_INDEX_1_LENGTH = 65536 >> SHIFT_1;
    var INDEX_2_BLOCK_LENGTH = 1 << SHIFT_1_2;
    var INDEX_2_MASK = INDEX_2_BLOCK_LENGTH - 1;
    var INDEX_SHIFT = 2;
    var DATA_BLOCK_LENGTH = 1 << SHIFT_2;
    var DATA_MASK = DATA_BLOCK_LENGTH - 1;
    var LSCP_INDEX_2_OFFSET = 65536 >> SHIFT_2;
    var LSCP_INDEX_2_LENGTH = 1024 >> SHIFT_2;
    var INDEX_2_BMP_LENGTH = LSCP_INDEX_2_OFFSET + LSCP_INDEX_2_LENGTH;
    var UTF8_2B_INDEX_2_OFFSET = INDEX_2_BMP_LENGTH;
    var UTF8_2B_INDEX_2_LENGTH = 2048 >> 6;
    var INDEX_1_OFFSET = UTF8_2B_INDEX_2_OFFSET + UTF8_2B_INDEX_2_LENGTH;
    var DATA_GRANULARITY = 1 << INDEX_SHIFT;
    var UnicodeTrie = class {
      constructor(data2) {
        const isBuffer4 = typeof data2.readUInt32BE === "function" && typeof data2.slice === "function";
        if (isBuffer4 || data2 instanceof Uint8Array) {
          let uncompressedLength;
          if (isBuffer4) {
            this.highStart = data2.readUInt32LE(0);
            this.errorValue = data2.readUInt32LE(4);
            uncompressedLength = data2.readUInt32LE(8);
            data2 = data2.slice(12);
          } else {
            const view = new DataView(data2.buffer);
            this.highStart = view.getUint32(0, true);
            this.errorValue = view.getUint32(4, true);
            uncompressedLength = view.getUint32(8, true);
            data2 = data2.subarray(12);
          }
          data2 = inflate(data2, new Uint8Array(uncompressedLength));
          data2 = inflate(data2, new Uint8Array(uncompressedLength));
          swap32LE(data2);
          this.data = new Uint32Array(data2.buffer);
        } else {
          ({ data: this.data, highStart: this.highStart, errorValue: this.errorValue } = data2);
        }
      }
      get(codePoint) {
        let index2;
        if (codePoint < 0 || codePoint > 1114111) {
          return this.errorValue;
        }
        if (codePoint < 55296 || codePoint > 56319 && codePoint <= 65535) {
          index2 = (this.data[codePoint >> SHIFT_2] << INDEX_SHIFT) + (codePoint & DATA_MASK);
          return this.data[index2];
        }
        if (codePoint <= 65535) {
          index2 = (this.data[LSCP_INDEX_2_OFFSET + (codePoint - 55296 >> SHIFT_2)] << INDEX_SHIFT) + (codePoint & DATA_MASK);
          return this.data[index2];
        }
        if (codePoint < this.highStart) {
          index2 = this.data[INDEX_1_OFFSET - OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> SHIFT_1)];
          index2 = this.data[index2 + (codePoint >> SHIFT_2 & INDEX_2_MASK)];
          index2 = (index2 << INDEX_SHIFT) + (codePoint & DATA_MASK);
          return this.data[index2];
        }
        return this.data[this.data.length - DATA_GRANULARITY];
      }
    };
    module.exports = UnicodeTrie;
  }
});

// ../../node_modules/.pnpm/dfa@1.2.0/node_modules/dfa/index.js
var require_dfa = __commonJS({
  "../../node_modules/.pnpm/dfa@1.2.0/node_modules/dfa/index.js"(exports, module) {
    "use strict";
    var INITIAL_STATE = 1;
    var FAIL_STATE = 0;
    var StateMachine = class {
      constructor(dfa) {
        this.stateTable = dfa.stateTable;
        this.accepting = dfa.accepting;
        this.tags = dfa.tags;
      }
      /**
       * Returns an iterable object that yields pattern matches over the input sequence.
       * Matches are of the form [startIndex, endIndex, tags].
       */
      match(str) {
        var self2 = this;
        return {
          *[Symbol.iterator]() {
            var state = INITIAL_STATE;
            var startRun = null;
            var lastAccepting = null;
            var lastState = null;
            for (var p3 = 0; p3 < str.length; p3++) {
              var c6 = str[p3];
              lastState = state;
              state = self2.stateTable[state][c6];
              if (state === FAIL_STATE) {
                if (startRun != null && lastAccepting != null && lastAccepting >= startRun) {
                  yield [startRun, lastAccepting, self2.tags[lastState]];
                }
                state = self2.stateTable[INITIAL_STATE][c6];
                startRun = null;
              }
              if (state !== FAIL_STATE && startRun == null) {
                startRun = p3;
              }
              if (self2.accepting[state]) {
                lastAccepting = p3;
              }
              if (state === FAIL_STATE) {
                state = INITIAL_STATE;
              }
            }
            if (startRun != null && lastAccepting != null && lastAccepting >= startRun) {
              yield [startRun, lastAccepting, self2.tags[state]];
            }
          }
        };
      }
      /**
       * For each match over the input sequence, action functions matching
       * the tag definitions in the input pattern are called with the startIndex,
       * endIndex, and sub-match sequence.
       */
      apply(str, actions) {
        for (var [start2, end2, tags2] of this.match(str)) {
          for (var tag of tags2) {
            if (typeof actions[tag] === "function") {
              actions[tag](start2, end2, str.slice(start2, end2 + 1));
            }
          }
        }
      }
    };
    module.exports = StateMachine;
  }
});

// ../../node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js
var require_clone4 = __commonJS({
  "../../node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js"(exports, module) {
    var clone = (function() {
      "use strict";
      function _instanceof(obj, type) {
        return type != null && obj instanceof type;
      }
      var nativeMap;
      try {
        nativeMap = Map;
      } catch (_) {
        nativeMap = function() {
        };
      }
      var nativeSet;
      try {
        nativeSet = Set;
      } catch (_) {
        nativeSet = function() {
        };
      }
      var nativePromise;
      try {
        nativePromise = Promise;
      } catch (_) {
        nativePromise = function() {
        };
      }
      function clone2(parent, circular, depth, prototype2, includeNonEnumerable) {
        if (typeof circular === "object") {
          depth = circular.depth;
          prototype2 = circular.prototype;
          includeNonEnumerable = circular.includeNonEnumerable;
          circular = circular.circular;
        }
        var allParents = [];
        var allChildren = [];
        var useBuffer = typeof Buffer != "undefined";
        if (typeof circular == "undefined")
          circular = true;
        if (typeof depth == "undefined")
          depth = Infinity;
        function _clone(parent2, depth2) {
          if (parent2 === null)
            return null;
          if (depth2 === 0)
            return parent2;
          var child;
          var proto;
          if (typeof parent2 != "object") {
            return parent2;
          }
          if (_instanceof(parent2, nativeMap)) {
            child = new nativeMap();
          } else if (_instanceof(parent2, nativeSet)) {
            child = new nativeSet();
          } else if (_instanceof(parent2, nativePromise)) {
            child = new nativePromise(function(resolve4, reject) {
              parent2.then(function(value2) {
                resolve4(_clone(value2, depth2 - 1));
              }, function(err2) {
                reject(_clone(err2, depth2 - 1));
              });
            });
          } else if (clone2.__isArray(parent2)) {
            child = [];
          } else if (clone2.__isRegExp(parent2)) {
            child = new RegExp(parent2.source, __getRegExpFlags(parent2));
            if (parent2.lastIndex) child.lastIndex = parent2.lastIndex;
          } else if (clone2.__isDate(parent2)) {
            child = new Date(parent2.getTime());
          } else if (useBuffer && Buffer.isBuffer(parent2)) {
            if (Buffer.allocUnsafe) {
              child = Buffer.allocUnsafe(parent2.length);
            } else {
              child = new Buffer(parent2.length);
            }
            parent2.copy(child);
            return child;
          } else if (_instanceof(parent2, Error)) {
            child = Object.create(parent2);
          } else {
            if (typeof prototype2 == "undefined") {
              proto = Object.getPrototypeOf(parent2);
              child = Object.create(proto);
            } else {
              child = Object.create(prototype2);
              proto = prototype2;
            }
          }
          if (circular) {
            var index2 = allParents.indexOf(parent2);
            if (index2 != -1) {
              return allChildren[index2];
            }
            allParents.push(parent2);
            allChildren.push(child);
          }
          if (_instanceof(parent2, nativeMap)) {
            parent2.forEach(function(value2, key) {
              var keyChild = _clone(key, depth2 - 1);
              var valueChild = _clone(value2, depth2 - 1);
              child.set(keyChild, valueChild);
            });
          }
          if (_instanceof(parent2, nativeSet)) {
            parent2.forEach(function(value2) {
              var entryChild = _clone(value2, depth2 - 1);
              child.add(entryChild);
            });
          }
          for (var i5 in parent2) {
            var attrs;
            if (proto) {
              attrs = Object.getOwnPropertyDescriptor(proto, i5);
            }
            if (attrs && attrs.set == null) {
              continue;
            }
            child[i5] = _clone(parent2[i5], depth2 - 1);
          }
          if (Object.getOwnPropertySymbols) {
            var symbols = Object.getOwnPropertySymbols(parent2);
            for (var i5 = 0; i5 < symbols.length; i5++) {
              var symbol = symbols[i5];
              var descriptor = Object.getOwnPropertyDescriptor(parent2, symbol);
              if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {
                continue;
              }
              child[symbol] = _clone(parent2[symbol], depth2 - 1);
              if (!descriptor.enumerable) {
                Object.defineProperty(child, symbol, {
                  enumerable: false
                });
              }
            }
          }
          if (includeNonEnumerable) {
            var allPropertyNames = Object.getOwnPropertyNames(parent2);
            for (var i5 = 0; i5 < allPropertyNames.length; i5++) {
              var propertyName = allPropertyNames[i5];
              var descriptor = Object.getOwnPropertyDescriptor(parent2, propertyName);
              if (descriptor && descriptor.enumerable) {
                continue;
              }
              child[propertyName] = _clone(parent2[propertyName], depth2 - 1);
              Object.defineProperty(child, propertyName, {
                enumerable: false
              });
            }
          }
          return child;
        }
        return _clone(parent, depth);
      }
      clone2.clonePrototype = function clonePrototype(parent) {
        if (parent === null)
          return null;
        var c6 = function() {
        };
        c6.prototype = parent;
        return new c6();
      };
      function __objToStr(o5) {
        return Object.prototype.toString.call(o5);
      }
      clone2.__objToStr = __objToStr;
      function __isDate(o5) {
        return typeof o5 === "object" && __objToStr(o5) === "[object Date]";
      }
      clone2.__isDate = __isDate;
      function __isArray(o5) {
        return typeof o5 === "object" && __objToStr(o5) === "[object Array]";
      }
      clone2.__isArray = __isArray;
      function __isRegExp(o5) {
        return typeof o5 === "object" && __objToStr(o5) === "[object RegExp]";
      }
      clone2.__isRegExp = __isRegExp;
      function __getRegExpFlags(re) {
        var flags = "";
        if (re.global) flags += "g";
        if (re.ignoreCase) flags += "i";
        if (re.multiline) flags += "m";
        return flags;
      }
      clone2.__getRegExpFlags = __getRegExpFlags;
      return clone2;
    })();
    if (typeof module === "object" && module.exports) {
      module.exports = clone;
    }
  }
});

// ../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/streams.js
var require_streams3 = __commonJS({
  "../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/streams.js"(exports) {
    function BrotliInput(buffer) {
      this.buffer = buffer;
      this.pos = 0;
    }
    BrotliInput.prototype.read = function(buf, i5, count) {
      if (this.pos + count > this.buffer.length) {
        count = this.buffer.length - this.pos;
      }
      for (var p3 = 0; p3 < count; p3++)
        buf[i5 + p3] = this.buffer[this.pos + p3];
      this.pos += count;
      return count;
    };
    exports.BrotliInput = BrotliInput;
    function BrotliOutput(buf) {
      this.buffer = buf;
      this.pos = 0;
    }
    BrotliOutput.prototype.write = function(buf, count) {
      if (this.pos + count > this.buffer.length)
        throw new Error("Output buffer is not large enough");
      this.buffer.set(buf.subarray(0, count), this.pos);
      this.pos += count;
      return count;
    };
    exports.BrotliOutput = BrotliOutput;
  }
});

// ../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/bit_reader.js
var require_bit_reader = __commonJS({
  "../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/bit_reader.js"(exports, module) {
    var BROTLI_READ_SIZE = 4096;
    var BROTLI_IBUF_SIZE = 2 * BROTLI_READ_SIZE + 32;
    var BROTLI_IBUF_MASK = 2 * BROTLI_READ_SIZE - 1;
    var kBitMask = new Uint32Array([
      0,
      1,
      3,
      7,
      15,
      31,
      63,
      127,
      255,
      511,
      1023,
      2047,
      4095,
      8191,
      16383,
      32767,
      65535,
      131071,
      262143,
      524287,
      1048575,
      2097151,
      4194303,
      8388607,
      16777215
    ]);
    function BrotliBitReader(input) {
      this.buf_ = new Uint8Array(BROTLI_IBUF_SIZE);
      this.input_ = input;
      this.reset();
    }
    BrotliBitReader.READ_SIZE = BROTLI_READ_SIZE;
    BrotliBitReader.IBUF_MASK = BROTLI_IBUF_MASK;
    BrotliBitReader.prototype.reset = function() {
      this.buf_ptr_ = 0;
      this.val_ = 0;
      this.pos_ = 0;
      this.bit_pos_ = 0;
      this.bit_end_pos_ = 0;
      this.eos_ = 0;
      this.readMoreInput();
      for (var i5 = 0; i5 < 4; i5++) {
        this.val_ |= this.buf_[this.pos_] << 8 * i5;
        ++this.pos_;
      }
      return this.bit_end_pos_ > 0;
    };
    BrotliBitReader.prototype.readMoreInput = function() {
      if (this.bit_end_pos_ > 256) {
        return;
      } else if (this.eos_) {
        if (this.bit_pos_ > this.bit_end_pos_)
          throw new Error("Unexpected end of input " + this.bit_pos_ + " " + this.bit_end_pos_);
      } else {
        var dst = this.buf_ptr_;
        var bytes_read = this.input_.read(this.buf_, dst, BROTLI_READ_SIZE);
        if (bytes_read < 0) {
          throw new Error("Unexpected end of input");
        }
        if (bytes_read < BROTLI_READ_SIZE) {
          this.eos_ = 1;
          for (var p3 = 0; p3 < 32; p3++)
            this.buf_[dst + bytes_read + p3] = 0;
        }
        if (dst === 0) {
          for (var p3 = 0; p3 < 32; p3++)
            this.buf_[(BROTLI_READ_SIZE << 1) + p3] = this.buf_[p3];
          this.buf_ptr_ = BROTLI_READ_SIZE;
        } else {
          this.buf_ptr_ = 0;
        }
        this.bit_end_pos_ += bytes_read << 3;
      }
    };
    BrotliBitReader.prototype.fillBitWindow = function() {
      while (this.bit_pos_ >= 8) {
        this.val_ >>>= 8;
        this.val_ |= this.buf_[this.pos_ & BROTLI_IBUF_MASK] << 24;
        ++this.pos_;
        this.bit_pos_ = this.bit_pos_ - 8 >>> 0;
        this.bit_end_pos_ = this.bit_end_pos_ - 8 >>> 0;
      }
    };
    BrotliBitReader.prototype.readBits = function(n_bits) {
      if (32 - this.bit_pos_ < n_bits) {
        this.fillBitWindow();
      }
      var val = this.val_ >>> this.bit_pos_ & kBitMask[n_bits];
      this.bit_pos_ += n_bits;
      return val;
    };
    module.exports = BrotliBitReader;
  }
});

// ../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary-data.js
var require_dictionary_data = __commonJS({
  "../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary-data.js"(exports) {
    exports.dictionary = new Uint8Array([
      116,
      105,
      109,
      101,
      100,
      111,
      119,
      110,
      108,
      105,
      102,
      101,
      108,
      101,
      102,
      116,
      98,
      97,
      99,
      107,
      99,
      111,
      100,
      101,
      100,
      97,
      116,
      97,
      115,
      104,
      111,
      119,
      111,
      110,
      108,
      121,
      115,
      105,
      116,
      101,
      99,
      105,
      116,
      121,
      111,
      112,
      101,
      110,
      106,
      117,
      115,
      116,
      108,
      105,
      107,
      101,
      102,
      114,
      101,
      101,
      119,
      111,
      114,
      107,
      116,
      101,
      120,
      116,
      121,
      101,
      97,
      114,
      111,
      118,
      101,
      114,
      98,
      111,
      100,
      121,
      108,
      111,
      118,
      101,
      102,
      111,
      114,
      109,
      98,
      111,
      111,
      107,
      112,
      108,
      97,
      121,
      108,
      105,
      118,
      101,
      108,
      105,
      110,
      101,
      104,
      101,
      108,
      112,
      104,
      111,
      109,
      101,
      115,
      105,
      100,
      101,
      109,
      111,
      114,
      101,
      119,
      111,
      114,
      100,
      108,
      111,
      110,
      103,
      116,
      104,
      101,
      109,
      118,
      105,
      101,
      119,
      102,
      105,
      110,
      100,
      112,
      97,
      103,
      101,
      100,
      97,
      121,
      115,
      102,
      117,
      108,
      108,
      104,
      101,
      97,
      100,
      116,
      101,
      114,
      109,
      101,
      97,
      99,
      104,
      97,
      114,
      101,
      97,
      102,
      114,
      111,
      109,
      116,
      114,
      117,
      101,
      109,
      97,
      114,
      107,
      97,
      98,
      108,
      101,
      117,
      112,
      111,
      110,
      104,
      105,
      103,
      104,
      100,
      97,
      116,
      101,
      108,
      97,
      110,
      100,
      110,
      101,
      119,
      115,
      101,
      118,
      101,
      110,
      110,
      101,
      120,
      116,
      99,
      97,
      115,
      101,
      98,
      111,
      116,
      104,
      112,
      111,
      115,
      116,
      117,
      115,
      101,
      100,
      109,
      97,
      100,
      101,
      104,
      97,
      110,
      100,
      104,
      101,
      114,
      101,
      119,
      104,
      97,
      116,
      110,
      97,
      109,
      101,
      76,
      105,
      110,
      107,
      98,
      108,
      111,
      103,
      115,
      105,
      122,
      101,
      98,
      97,
      115,
      101,
      104,
      101,
      108,
      100,
      109,
      97,
      107,
      101,
      109,
      97,
      105,
      110,
      117,
      115,
      101,
      114,
      39,
      41,
      32,
      43,
      104,
      111,
      108,
      100,
      101,
      110,
      100,
      115,
      119,
      105,
      116,
      104,
      78,
      101,
      119,
      115,
      114,
      101,
      97,
      100,
      119,
      101,
      114,
      101,
      115,
      105,
      103,
      110,
      116,
      97,
      107,
      101,
      104,
      97,
      118,
      101,
      103,
      97,
      109,
      101,
      115,
      101,
      101,
      110,
      99,
      97,
      108,
      108,
      112,
      97,
      116,
      104,
      119,
      101,
      108,
      108,
      112,
      108,
      117,
      115,
      109,
      101,
      110,
      117,
      102,
      105,
      108,
      109,
      112,
      97,
      114,
      116,
      106,
      111,
      105,
      110,
      116,
      104,
      105,
      115,
      108,
      105,
      115,
      116,
      103,
      111,
      111,
      100,
      110,
      101,
      101,
      100,
      119,
      97,
      121,
      115,
      119,
      101,
      115,
      116,
      106,
      111,
      98,
      115,
      109,
      105,
      110,
      100,
      97,
      108,
      115,
      111,
      108,
      111,
      103,
      111,
      114,
      105,
      99,
      104,
      117,
      115,
      101,
      115,
      108,
      97,
      115,
      116,
      116,
      101,
      97,
      109,
      97,
      114,
      109,
      121,
      102,
      111,
      111,
      100,
      107,
      105,
      110,
      103,
      119,
      105,
      108,
      108,
      101,
      97,
      115,
      116,
      119,
      97,
      114,
      100,
      98,
      101,
      115,
      116,
      102,
      105,
      114,
      101,
      80,
      97,
      103,
      101,
      107,
      110,
      111,
      119,
      97,
      119,
      97,
      121,
      46,
      112,
      110,
      103,
      109,
      111,
      118,
      101,
      116,
      104,
      97,
      110,
      108,
      111,
      97,
      100,
      103,
      105,
      118,
      101,
      115,
      101,
      108,
      102,
      110,
      111,
      116,
      101,
      109,
      117,
      99,
      104,
      102,
      101,
      101,
      100,
      109,
      97,
      110,
      121,
      114,
      111,
      99,
      107,
      105,
      99,
      111,
      110,
      111,
      110,
      99,
      101,
      108,
      111,
      111,
      107,
      104,
      105,
      100,
      101,
      100,
      105,
      101,
      100,
      72,
      111,
      109,
      101,
      114,
      117,
      108,
      101,
      104,
      111,
      115,
      116,
      97,
      106,
      97,
      120,
      105,
      110,
      102,
      111,
      99,
      108,
      117,
      98,
      108,
      97,
      119,
      115,
      108,
      101,
      115,
      115,
      104,
      97,
      108,
      102,
      115,
      111,
      109,
      101,
      115,
      117,
      99,
      104,
      122,
      111,
      110,
      101,
      49,
      48,
      48,
      37,
      111,
      110,
      101,
      115,
      99,
      97,
      114,
      101,
      84,
      105,
      109,
      101,
      114,
      97,
      99,
      101,
      98,
      108,
      117,
      101,
      102,
      111,
      117,
      114,
      119,
      101,
      101,
      107,
      102,
      97,
      99,
      101,
      104,
      111,
      112,
      101,
      103,
      97,
      118,
      101,
      104,
      97,
      114,
      100,
      108,
      111,
      115,
      116,
      119,
      104,
      101,
      110,
      112,
      97,
      114,
      107,
      107,
      101,
      112,
      116,
      112,
      97,
      115,
      115,
      115,
      104,
      105,
      112,
      114,
      111,
      111,
      109,
      72,
      84,
      77,
      76,
      112,
      108,
      97,
      110,
      84,
      121,
      112,
      101,
      100,
      111,
      110,
      101,
      115,
      97,
      118,
      101,
      107,
      101,
      101,
      112,
      102,
      108,
      97,
      103,
      108,
      105,
      110,
      107,
      115,
      111,
      108,
      100,
      102,
      105,
      118,
      101,
      116,
      111,
      111,
      107,
      114,
      97,
      116,
      101,
      116,
      111,
      119,
      110,
      106,
      117,
      109,
      112,
      116,
      104,
      117,
      115,
      100,
      97,
      114,
      107,
      99,
      97,
      114,
      100,
      102,
      105,
      108,
      101,
      102,
      101,
      97,
      114,
      115,
      116,
      97,
      121,
      107,
      105,
      108,
      108,
      116,
      104,
      97,
      116,
      102,
      97,
      108,
      108,
      97,
      117,
      116,
      111,
      101,
      118,
      101,
      114,
      46,
      99,
      111,
      109,
      116,
      97,
      108,
      107,
      115,
      104,
      111,
      112,
      118,
      111,
      116,
      101,
      100,
      101,
      101,
      112,
      109,
      111,
      100,
      101,
      114,
      101,
      115,
      116,
      116,
      117,
      114,
      110,
      98,
      111,
      114,
      110,
      98,
      97,
      110,
      100,
      102,
      101,
      108,
      108,
      114,
      111,
      115,
      101,
      117,
      114,
      108,
      40,
      115,
      107,
      105,
      110,
      114,
      111,
      108,
      101,
      99,
      111,
      109,
      101,
      97,
      99,
      116,
      115,
      97,
      103,
      101,
      115,
      109,
      101,
      101,
      116,
      103,
      111,
      108,
      100,
      46,
      106,
      112,
      103,
      105,
      116,
      101,
      109,
      118,
      97,
      114,
      121,
      102,
      101,
      108,
      116,
      116,
      104,
      101,
      110,
      115,
      101,
      110,
      100,
      100,
      114,
      111,
      112,
      86,
      105,
      101,
      119,
      99,
      111,
      112,
      121,
      49,
      46,
      48,
      34,
      60,
      47,
      97,
      62,
      115,
      116,
      111,
      112,
      101,
      108,
      115,
      101,
      108,
      105,
      101,
      115,
      116,
      111,
      117,
      114,
      112,
      97,
      99,
      107,
      46,
      103,
      105,
      102,
      112,
      97,
      115,
      116,
      99,
      115,
      115,
      63,
      103,
      114,
      97,
      121,
      109,
      101,
      97,
      110,
      38,
      103,
      116,
      59,
      114,
      105,
      100,
      101,
      115,
      104,
      111,
      116,
      108,
      97,
      116,
      101,
      115,
      97,
      105,
      100,
      114,
      111,
      97,
      100,
      118,
      97,
      114,
      32,
      102,
      101,
      101,
      108,
      106,
      111,
      104,
      110,
      114,
      105,
      99,
      107,
      112,
      111,
      114,
      116,
      102,
      97,
      115,
      116,
      39,
      85,
      65,
      45,
      100,
      101,
      97,
      100,
      60,
      47,
      98,
      62,
      112,
      111,
      111,
      114,
      98,
      105,
      108,
      108,
      116,
      121,
      112,
      101,
      85,
      46,
      83,
      46,
      119,
      111,
      111,
      100,
      109,
      117,
      115,
      116,
      50,
      112,
      120,
      59,
      73,
      110,
      102,
      111,
      114,
      97,
      110,
      107,
      119,
      105,
      100,
      101,
      119,
      97,
      110,
      116,
      119,
      97,
      108,
      108,
      108,
      101,
      97,
      100,
      91,
      48,
      93,
      59,
      112,
      97,
      117,
      108,
      119,
      97,
      118,
      101,
      115,
      117,
      114,
      101,
      36,
      40,
      39,
      35,
      119,
      97,
      105,
      116,
      109,
      97,
      115,
      115,
      97,
      114,
      109,
      115,
      103,
      111,
      101,
      115,
      103,
      97,
      105,
      110,
      108,
      97,
      110,
      103,
      112,
      97,
      105,
      100,
      33,
      45,
      45,
      32,
      108,
      111,
      99,
      107,
      117,
      110,
      105,
      116,
      114,
      111,
      111,
      116,
      119,
      97,
      108,
      107,
      102,
      105,
      114,
      109,
      119,
      105,
      102,
      101,
      120,
      109,
      108,
      34,
      115,
      111,
      110,
      103,
      116,
      101,
      115,
      116,
      50,
      48,
      112,
      120,
      107,
      105,
      110,
      100,
      114,
      111,
      119,
      115,
      116,
      111,
      111,
      108,
      102,
      111,
      110,
      116,
      109,
      97,
      105,
      108,
      115,
      97,
      102,
      101,
      115,
      116,
      97,
      114,
      109,
      97,
      112,
      115,
      99,
      111,
      114,
      101,
      114,
      97,
      105,
      110,
      102,
      108,
      111,
      119,
      98,
      97,
      98,
      121,
      115,
      112,
      97,
      110,
      115,
      97,
      121,
      115,
      52,
      112,
      120,
      59,
      54,
      112,
      120,
      59,
      97,
      114,
      116,
      115,
      102,
      111,
      111,
      116,
      114,
      101,
      97,
      108,
      119,
      105,
      107,
      105,
      104,
      101,
      97,
      116,
      115,
      116,
      101,
      112,
      116,
      114,
      105,
      112,
      111,
      114,
      103,
      47,
      108,
      97,
      107,
      101,
      119,
      101,
      97,
      107,
      116,
      111,
      108,
      100,
      70,
      111,
      114,
      109,
      99,
      97,
      115,
      116,
      102,
      97,
      110,
      115,
      98,
      97,
      110,
      107,
      118,
      101,
      114,
      121,
      114,
      117,
      110,
      115,
      106,
      117,
      108,
      121,
      116,
      97,
      115,
      107,
      49,
      112,
      120,
      59,
      103,
      111,
      97,
      108,
      103,
      114,
      101,
      119,
      115,
      108,
      111,
      119,
      101,
      100,
      103,
      101,
      105,
      100,
      61,
      34,
      115,
      101,
      116,
      115,
      53,
      112,
      120,
      59,
      46,
      106,
      115,
      63,
      52,
      48,
      112,
      120,
      105,
      102,
      32,
      40,
      115,
      111,
      111,
      110,
      115,
      101,
      97,
      116,
      110,
      111,
      110,
      101,
      116,
      117,
      98,
      101,
      122,
      101,
      114,
      111,
      115,
      101,
      110,
      116,
      114,
      101,
      101,
      100,
      102,
      97,
      99,
      116,
      105,
      110,
      116,
      111,
      103,
      105,
      102,
      116,
      104,
      97,
      114,
      109,
      49,
      56,
      112,
      120,
      99,
      97,
      109,
      101,
      104,
      105,
      108,
      108,
      98,
      111,
      108,
      100,
      122,
      111,
      111,
      109,
      118,
      111,
      105,
      100,
      101,
      97,
      115,
      121,
      114,
      105,
      110,
      103,
      102,
      105,
      108,
      108,
      112,
      101,
      97,
      107,
      105,
      110,
      105,
      116,
      99,
      111,
      115,
      116,
      51,
      112,
      120,
      59,
      106,
      97,
      99,
      107,
      116,
      97,
      103,
      115,
      98,
      105,
      116,
      115,
      114,
      111,
      108,
      108,
      101,
      100,
      105,
      116,
      107,
      110,
      101,
      119,
      110,
      101,
      97,
      114,
      60,
      33,
      45,
      45,
      103,
      114,
      111,
      119,
      74,
      83,
      79,
      78,
      100,
      117,
      116,
      121,
      78,
      97,
      109,
      101,
      115,
      97,
      108,
      101,
      121,
      111,
      117,
      32,
      108,
      111,
      116,
      115,
      112,
      97,
      105,
      110,
      106,
      97,
      122,
      122,
      99,
      111,
      108,
      100,
      101,
      121,
      101,
      115,
      102,
      105,
      115,
      104,
      119,
      119,
      119,
      46,
      114,
      105,
      115,
      107,
      116,
      97,
      98,
      115,
      112,
      114,
      101,
      118,
      49,
      48,
      112,
      120,
      114,
      105,
      115,
      101,
      50,
      53,
      112,
      120,
      66,
      108,
      117,
      101,
      100,
      105,
      110,
      103,
      51,
      48,
      48,
      44,
      98,
      97,
      108,
      108,
      102,
      111,
      114,
      100,
      101,
      97,
      114,
      110,
      119,
      105,
      108,
      100,
      98,
      111,
      120,
      46,
      102,
      97,
      105,
      114,
      108,
      97,
      99,
      107,
      118,
      101,
      114,
      115,
      112,
      97,
      105,
      114,
      106,
      117,
      110,
      101,
      116,
      101,
      99,
      104,
      105,
      102,
      40,
      33,
      112,
      105,
      99,
      107,
      101,
      118,
      105,
      108,
      36,
      40,
      34,
      35,
      119,
      97,
      114,
      109,
      108,
      111,
      114,
      100,
      100,
      111,
      101,
      115,
      112,
      117,
      108,
      108,
      44,
      48,
      48,
      48,
      105,
      100,
      101,
      97,
      100,
      114,
      97,
      119,
      104,
      117,
      103,
      101,
      115,
      112,
      111,
      116,
      102,
      117,
      110,
      100,
      98,
      117,
      114,
      110,
      104,
      114,
      101,
      102,
      99,
      101,
      108,
      108,
      107,
      101,
      121,
      115,
      116,
      105,
      99,
      107,
      104,
      111,
      117,
      114,
      108,
      111,
      115,
      115,
      102,
      117,
      101,
      108,
      49,
      50,
      112,
      120,
      115,
      117,
      105,
      116,
      100,
      101,
      97,
      108,
      82,
      83,
      83,
      34,
      97,
      103,
      101,
      100,
      103,
      114,
      101,
      121,
      71,
      69,
      84,
      34,
      101,
      97,
      115,
      101,
      97,
      105,
      109,
      115,
      103,
      105,
      114,
      108,
      97,
      105,
      100,
      115,
      56,
      112,
      120,
      59,
      110,
      97,
      118,
      121,
      103,
      114,
      105,
      100,
      116,
      105,
      112,
      115,
      35,
      57,
      57,
      57,
      119,
      97,
      114,
      115,
      108,
      97,
      100,
      121,
      99,
      97,
      114,
      115,
      41,
      59,
      32,
      125,
      112,
      104,
      112,
      63,
      104,
      101,
      108,
      108,
      116,
      97,
      108,
      108,
      119,
      104,
      111,
      109,
      122,
      104,
      58,
      229,
      42,
      47,
      13,
      10,
      32,
      49,
      48,
      48,
      104,
      97,
      108,
      108,
      46,
      10,
      10,
      65,
      55,
      112,
      120,
      59,
      112,
      117,
      115,
      104,
      99,
      104,
      97,
      116,
      48,
      112,
      120,
      59,
      99,
      114,
      101,
      119,
      42,
      47,
      60,
      47,
      104,
      97,
      115,
      104,
      55,
      53,
      112,
      120,
      102,
      108,
      97,
      116,
      114,
      97,
      114,
      101,
      32,
      38,
      38,
      32,
      116,
      101,
      108,
      108,
      99,
      97,
      109,
      112,
      111,
      110,
      116,
      111,
      108,
      97,
      105,
      100,
      109,
      105,
      115,
      115,
      115,
      107,
      105,
      112,
      116,
      101,
      110,
      116,
      102,
      105,
      110,
      101,
      109,
      97,
      108,
      101,
      103,
      101,
      116,
      115,
      112,
      108,
      111,
      116,
      52,
      48,
      48,
      44,
      13,
      10,
      13,
      10,
      99,
      111,
      111,
      108,
      102,
      101,
      101,
      116,
      46,
      112,
      104,
      112,
      60,
      98,
      114,
      62,
      101,
      114,
      105,
      99,
      109,
      111,
      115,
      116,
      103,
      117,
      105,
      100,
      98,
      101,
      108,
      108,
      100,
      101,
      115,
      99,
      104,
      97,
      105,
      114,
      109,
      97,
      116,
      104,
      97,
      116,
      111,
      109,
      47,
      105,
      109,
      103,
      38,
      35,
      56,
      50,
      108,
      117,
      99,
      107,
      99,
      101,
      110,
      116,
      48,
      48,
      48,
      59,
      116,
      105,
      110,
      121,
      103,
      111,
      110,
      101,
      104,
      116,
      109,
      108,
      115,
      101,
      108,
      108,
      100,
      114,
      117,
      103,
      70,
      82,
      69,
      69,
      110,
      111,
      100,
      101,
      110,
      105,
      99,
      107,
      63,
      105,
      100,
      61,
      108,
      111,
      115,
      101,
      110,
      117,
      108,
      108,
      118,
      97,
      115,
      116,
      119,
      105,
      110,
      100,
      82,
      83,
      83,
      32,
      119,
      101,
      97,
      114,
      114,
      101,
      108,
      121,
      98,
      101,
      101,
      110,
      115,
      97,
      109,
      101,
      100,
      117,
      107,
      101,
      110,
      97,
      115,
      97,
      99,
      97,
      112,
      101,
      119,
      105,
      115,
      104,
      103,
      117,
      108,
      102,
      84,
      50,
      51,
      58,
      104,
      105,
      116,
      115,
      115,
      108,
      111,
      116,
      103,
      97,
      116,
      101,
      107,
      105,
      99,
      107,
      98,
      108,
      117,
      114,
      116,
      104,
      101,
      121,
      49,
      53,
      112,
      120,
      39,
      39,
      41,
      59,
      41,
      59,
      34,
      62,
      109,
      115,
      105,
      101,
      119,
      105,
      110,
      115,
      98,
      105,
      114,
      100,
      115,
      111,
      114,
      116,
      98,
      101,
      116,
      97,
      115,
      101,
      101,
      107,
      84,
      49,
      56,
      58,
      111,
      114,
      100,
      115,
      116,
      114,
      101,
      101,
      109,
      97,
      108,
      108,
      54,
      48,
      112,
      120,
      102,
      97,
      114,
      109,
      226,
      128,
      153,
      115,
      98,
      111,
      121,
      115,
      91,
      48,
      93,
      46,
      39,
      41,
      59,
      34,
      80,
      79,
      83,
      84,
      98,
      101,
      97,
      114,
      107,
      105,
      100,
      115,
      41,
      59,
      125,
      125,
      109,
      97,
      114,
      121,
      116,
      101,
      110,
      100,
      40,
      85,
      75,
      41,
      113,
      117,
      97,
      100,
      122,
      104,
      58,
      230,
      45,
      115,
      105,
      122,
      45,
      45,
      45,
      45,
      112,
      114,
      111,
      112,
      39,
      41,
      59,
      13,
      108,
      105,
      102,
      116,
      84,
      49,
      57,
      58,
      118,
      105,
      99,
      101,
      97,
      110,
      100,
      121,
      100,
      101,
      98,
      116,
      62,
      82,
      83,
      83,
      112,
      111,
      111,
      108,
      110,
      101,
      99,
      107,
      98,
      108,
      111,
      119,
      84,
      49,
      54,
      58,
      100,
      111,
      111,
      114,
      101,
      118,
      97,
      108,
      84,
      49,
      55,
      58,
      108,
      101,
      116,
      115,
      102,
      97,
      105,
      108,
      111,
      114,
      97,
      108,
      112,
      111,
      108,
      108,
      110,
      111,
      118,
      97,
      99,
      111,
      108,
      115,
      103,
      101,
      110,
      101,
      32,
      226,
      128,
      148,
      115,
      111,
      102,
      116,
      114,
      111,
      109,
      101,
      116,
      105,
      108,
      108,
      114,
      111,
      115,
      115,
      60,
      104,
      51,
      62,
      112,
      111,
      117,
      114,
      102,
      97,
      100,
      101,
      112,
      105,
      110,
      107,
      60,
      116,
      114,
      62,
      109,
      105,
      110,
      105,
      41,
      124,
      33,
      40,
      109,
      105,
      110,
      101,
      122,
      104,
      58,
      232,
      98,
      97,
      114,
      115,
      104,
      101,
      97,
      114,
      48,
      48,
      41,
      59,
      109,
      105,
      108,
      107,
      32,
      45,
      45,
      62,
      105,
      114,
      111,
      110,
      102,
      114,
      101,
      100,
      100,
      105,
      115,
      107,
      119,
      101,
      110,
      116,
      115,
      111,
      105,
      108,
      112,
      117,
      116,
      115,
      47,
      106,
      115,
      47,
      104,
      111,
      108,
      121,
      84,
      50,
      50,
      58,
      73,
      83,
      66,
      78,
      84,
      50,
      48,
      58,
      97,
      100,
      97,
      109,
      115,
      101,
      101,
      115,
      60,
      104,
      50,
      62,
      106,
      115,
      111,
      110,
      39,
      44,
      32,
      39,
      99,
      111,
      110,
      116,
      84,
      50,
      49,
      58,
      32,
      82,
      83,
      83,
      108,
      111,
      111,
      112,
      97,
      115,
      105,
      97,
      109,
      111,
      111,
      110,
      60,
      47,
      112,
      62,
      115,
      111,
      117,
      108,
      76,
      73,
      78,
      69,
      102,
      111,
      114,
      116,
      99,
      97,
      114,
      116,
      84,
      49,
      52,
      58,
      60,
      104,
      49,
      62,
      56,
      48,
      112,
      120,
      33,
      45,
      45,
      60,
      57,
      112,
      120,
      59,
      84,
      48,
      52,
      58,
      109,
      105,
      107,
      101,
      58,
      52,
      54,
      90,
      110,
      105,
      99,
      101,
      105,
      110,
      99,
      104,
      89,
      111,
      114,
      107,
      114,
      105,
      99,
      101,
      122,
      104,
      58,
      228,
      39,
      41,
      41,
      59,
      112,
      117,
      114,
      101,
      109,
      97,
      103,
      101,
      112,
      97,
      114,
      97,
      116,
      111,
      110,
      101,
      98,
      111,
      110,
      100,
      58,
      51,
      55,
      90,
      95,
      111,
      102,
      95,
      39,
      93,
      41,
      59,
      48,
      48,
      48,
      44,
      122,
      104,
      58,
      231,
      116,
      97,
      110,
      107,
      121,
      97,
      114,
      100,
      98,
      111,
      119,
      108,
      98,
      117,
      115,
      104,
      58,
      53,
      54,
      90,
      74,
      97,
      118,
      97,
      51,
      48,
      112,
      120,
      10,
      124,
      125,
      10,
      37,
      67,
      51,
      37,
      58,
      51,
      52,
      90,
      106,
      101,
      102,
      102,
      69,
      88,
      80,
      73,
      99,
      97,
      115,
      104,
      118,
      105,
      115,
      97,
      103,
      111,
      108,
      102,
      115,
      110,
      111,
      119,
      122,
      104,
      58,
      233,
      113,
      117,
      101,
      114,
      46,
      99,
      115,
      115,
      115,
      105,
      99,
      107,
      109,
      101,
      97,
      116,
      109,
      105,
      110,
      46,
      98,
      105,
      110,
      100,
      100,
      101,
      108,
      108,
      104,
      105,
      114,
      101,
      112,
      105,
      99,
      115,
      114,
      101,
      110,
      116,
      58,
      51,
      54,
      90,
      72,
      84,
      84,
      80,
      45,
      50,
      48,
      49,
      102,
      111,
      116,
      111,
      119,
      111,
      108,
      102,
      69,
      78,
      68,
      32,
      120,
      98,
      111,
      120,
      58,
      53,
      52,
      90,
      66,
      79,
      68,
      89,
      100,
      105,
      99,
      107,
      59,
      10,
      125,
      10,
      101,
      120,
      105,
      116,
      58,
      51,
      53,
      90,
      118,
      97,
      114,
      115,
      98,
      101,
      97,
      116,
      39,
      125,
      41,
      59,
      100,
      105,
      101,
      116,
      57,
      57,
      57,
      59,
      97,
      110,
      110,
      101,
      125,
      125,
      60,
      47,
      91,
      105,
      93,
      46,
      76,
      97,
      110,
      103,
      107,
      109,
      194,
      178,
      119,
      105,
      114,
      101,
      116,
      111,
      121,
      115,
      97,
      100,
      100,
      115,
      115,
      101,
      97,
      108,
      97,
      108,
      101,
      120,
      59,
      10,
      9,
      125,
      101,
      99,
      104,
      111,
      110,
      105,
      110,
      101,
      46,
      111,
      114,
      103,
      48,
      48,
      53,
      41,
      116,
      111,
      110,
      121,
      106,
      101,
      119,
      115,
      115,
      97,
      110,
      100,
      108,
      101,
      103,
      115,
      114,
      111,
      111,
      102,
      48,
      48,
      48,
      41,
      32,
      50,
      48,
      48,
      119,
      105,
      110,
      101,
      103,
      101,
      97,
      114,
      100,
      111,
      103,
      115,
      98,
      111,
      111,
      116,
      103,
      97,
      114,
      121,
      99,
      117,
      116,
      115,
      116,
      121,
      108,
      101,
      116,
      101,
      109,
      112,
      116,
      105,
      111,
      110,
      46,
      120,
      109,
      108,
      99,
      111,
      99,
      107,
      103,
      97,
      110,
      103,
      36,
      40,
      39,
      46,
      53,
      48,
      112,
      120,
      80,
      104,
      46,
      68,
      109,
      105,
      115,
      99,
      97,
      108,
      97,
      110,
      108,
      111,
      97,
      110,
      100,
      101,
      115,
      107,
      109,
      105,
      108,
      101,
      114,
      121,
      97,
      110,
      117,
      110,
      105,
      120,
      100,
      105,
      115,
      99,
      41,
      59,
      125,
      10,
      100,
      117,
      115,
      116,
      99,
      108,
      105,
      112,
      41,
      46,
      10,
      10,
      55,
      48,
      112,
      120,
      45,
      50,
      48,
      48,
      68,
      86,
      68,
      115,
      55,
      93,
      62,
      60,
      116,
      97,
      112,
      101,
      100,
      101,
      109,
      111,
      105,
      43,
      43,
      41,
      119,
      97,
      103,
      101,
      101,
      117,
      114,
      111,
      112,
      104,
      105,
      108,
      111,
      112,
      116,
      115,
      104,
      111,
      108,
      101,
      70,
      65,
      81,
      115,
      97,
      115,
      105,
      110,
      45,
      50,
      54,
      84,
      108,
      97,
      98,
      115,
      112,
      101,
      116,
      115,
      85,
      82,
      76,
      32,
      98,
      117,
      108,
      107,
      99,
      111,
      111,
      107,
      59,
      125,
      13,
      10,
      72,
      69,
      65,
      68,
      91,
      48,
      93,
      41,
      97,
      98,
      98,
      114,
      106,
      117,
      97,
      110,
      40,
      49,
      57,
      56,
      108,
      101,
      115,
      104,
      116,
      119,
      105,
      110,
      60,
      47,
      105,
      62,
      115,
      111,
      110,
      121,
      103,
      117,
      121,
      115,
      102,
      117,
      99,
      107,
      112,
      105,
      112,
      101,
      124,
      45,
      10,
      33,
      48,
      48,
      50,
      41,
      110,
      100,
      111,
      119,
      91,
      49,
      93,
      59,
      91,
      93,
      59,
      10,
      76,
      111,
      103,
      32,
      115,
      97,
      108,
      116,
      13,
      10,
      9,
      9,
      98,
      97,
      110,
      103,
      116,
      114,
      105,
      109,
      98,
      97,
      116,
      104,
      41,
      123,
      13,
      10,
      48,
      48,
      112,
      120,
      10,
      125,
      41,
      59,
      107,
      111,
      58,
      236,
      102,
      101,
      101,
      115,
      97,
      100,
      62,
      13,
      115,
      58,
      47,
      47,
      32,
      91,
      93,
      59,
      116,
      111,
      108,
      108,
      112,
      108,
      117,
      103,
      40,
      41,
      123,
      10,
      123,
      13,
      10,
      32,
      46,
      106,
      115,
      39,
      50,
      48,
      48,
      112,
      100,
      117,
      97,
      108,
      98,
      111,
      97,
      116,
      46,
      74,
      80,
      71,
      41,
      59,
      10,
      125,
      113,
      117,
      111,
      116,
      41,
      59,
      10,
      10,
      39,
      41,
      59,
      10,
      13,
      10,
      125,
      13,
      50,
      48,
      49,
      52,
      50,
      48,
      49,
      53,
      50,
      48,
      49,
      54,
      50,
      48,
      49,
      55,
      50,
      48,
      49,
      56,
      50,
      48,
      49,
      57,
      50,
      48,
      50,
      48,
      50,
      48,
      50,
      49,
      50,
      48,
      50,
      50,
      50,
      48,
      50,
      51,
      50,
      48,
      50,
      52,
      50,
      48,
      50,
      53,
      50,
      48,
      50,
      54,
      50,
      48,
      50,
      55,
      50,
      48,
      50,
      56,
      50,
      48,
      50,
      57,
      50,
      48,
      51,
      48,
      50,
      48,
      51,
      49,
      50,
      48,
      51,
      50,
      50,
      48,
      51,
      51,
      50,
      48,
      51,
      52,
      50,
      48,
      51,
      53,
      50,
      48,
      51,
      54,
      50,
      48,
      51,
      55,
      50,
      48,
      49,
      51,
      50,
      48,
      49,
      50,
      50,
      48,
      49,
      49,
      50,
      48,
      49,
      48,
      50,
      48,
      48,
      57,
      50,
      48,
      48,
      56,
      50,
      48,
      48,
      55,
      50,
      48,
      48,
      54,
      50,
      48,
      48,
      53,
      50,
      48,
      48,
      52,
      50,
      48,
      48,
      51,
      50,
      48,
      48,
      50,
      50,
      48,
      48,
      49,
      50,
      48,
      48,
      48,
      49,
      57,
      57,
      57,
      49,
      57,
      57,
      56,
      49,
      57,
      57,
      55,
      49,
      57,
      57,
      54,
      49,
      57,
      57,
      53,
      49,
      57,
      57,
      52,
      49,
      57,
      57,
      51,
      49,
      57,
      57,
      50,
      49,
      57,
      57,
      49,
      49,
      57,
      57,
      48,
      49,
      57,
      56,
      57,
      49,
      57,
      56,
      56,
      49,
      57,
      56,
      55,
      49,
      57,
      56,
      54,
      49,
      57,
      56,
      53,
      49,
      57,
      56,
      52,
      49,
      57,
      56,
      51,
      49,
      57,
      56,
      50,
      49,
      57,
      56,
      49,
      49,
      57,
      56,
      48,
      49,
      57,
      55,
      57,
      49,
      57,
      55,
      56,
      49,
      57,
      55,
      55,
      49,
      57,
      55,
      54,
      49,
      57,
      55,
      53,
      49,
      57,
      55,
      52,
      49,
      57,
      55,
      51,
      49,
      57,
      55,
      50,
      49,
      57,
      55,
      49,
      49,
      57,
      55,
      48,
      49,
      57,
      54,
      57,
      49,
      57,
      54,
      56,
      49,
      57,
      54,
      55,
      49,
      57,
      54,
      54,
      49,
      57,
      54,
      53,
      49,
      57,
      54,
      52,
      49,
      57,
      54,
      51,
      49,
      57,
      54,
      50,
      49,
      57,
      54,
      49,
      49,
      57,
      54,
      48,
      49,
      57,
      53,
      57,
      49,
      57,
      53,
      56,
      49,
      57,
      53,
      55,
      49,
      57,
      53,
      54,
      49,
      57,
      53,
      53,
      49,
      57,
      53,
      52,
      49,
      57,
      53,
      51,
      49,
      57,
      53,
      50,
      49,
      57,
      53,
      49,
      49,
      57,
      53,
      48,
      49,
      48,
      48,
      48,
      49,
      48,
      50,
      52,
      49,
      51,
      57,
      52,
      48,
      48,
      48,
      48,
      57,
      57,
      57,
      57,
      99,
      111,
      109,
      111,
      109,
      195,
      161,
      115,
      101,
      115,
      116,
      101,
      101,
      115,
      116,
      97,
      112,
      101,
      114,
      111,
      116,
      111,
      100,
      111,
      104,
      97,
      99,
      101,
      99,
      97,
      100,
      97,
      97,
      195,
      177,
      111,
      98,
      105,
      101,
      110,
      100,
      195,
      173,
      97,
      97,
      115,
      195,
      173,
      118,
      105,
      100,
      97,
      99,
      97,
      115,
      111,
      111,
      116,
      114,
      111,
      102,
      111,
      114,
      111,
      115,
      111,
      108,
      111,
      111,
      116,
      114,
      97,
      99,
      117,
      97,
      108,
      100,
      105,
      106,
      111,
      115,
      105,
      100,
      111,
      103,
      114,
      97,
      110,
      116,
      105,
      112,
      111,
      116,
      101,
      109,
      97,
      100,
      101,
      98,
      101,
      97,
      108,
      103,
      111,
      113,
      117,
      195,
      169,
      101,
      115,
      116,
      111,
      110,
      97,
      100,
      97,
      116,
      114,
      101,
      115,
      112,
      111,
      99,
      111,
      99,
      97,
      115,
      97,
      98,
      97,
      106,
      111,
      116,
      111,
      100,
      97,
      115,
      105,
      110,
      111,
      97,
      103,
      117,
      97,
      112,
      117,
      101,
      115,
      117,
      110,
      111,
      115,
      97,
      110,
      116,
      101,
      100,
      105,
      99,
      101,
      108,
      117,
      105,
      115,
      101,
      108,
      108,
      97,
      109,
      97,
      121,
      111,
      122,
      111,
      110,
      97,
      97,
      109,
      111,
      114,
      112,
      105,
      115,
      111,
      111,
      98,
      114,
      97,
      99,
      108,
      105,
      99,
      101,
      108,
      108,
      111,
      100,
      105,
      111,
      115,
      104,
      111,
      114,
      97,
      99,
      97,
      115,
      105,
      208,
      183,
      208,
      176,
      208,
      189,
      208,
      176,
      208,
      190,
      208,
      188,
      209,
      128,
      208,
      176,
      209,
      128,
      209,
      131,
      209,
      130,
      208,
      176,
      208,
      189,
      208,
      181,
      208,
      191,
      208,
      190,
      208,
      190,
      209,
      130,
      208,
      184,
      208,
      183,
      208,
      189,
      208,
      190,
      208,
      180,
      208,
      190,
      209,
      130,
      208,
      190,
      208,
      182,
      208,
      181,
      208,
      190,
      208,
      189,
      208,
      184,
      209,
      133,
      208,
      157,
      208,
      176,
      208,
      181,
      208,
      181,
      208,
      177,
      209,
      139,
      208,
      188,
      209,
      139,
      208,
      146,
      209,
      139,
      209,
      129,
      208,
      190,
      208,
      178,
      209,
      139,
      208,
      178,
      208,
      190,
      208,
      157,
      208,
      190,
      208,
      190,
      208,
      177,
      208,
      159,
      208,
      190,
      208,
      187,
      208,
      184,
      208,
      189,
      208,
      184,
      208,
      160,
      208,
      164,
      208,
      157,
      208,
      181,
      208,
      156,
      209,
      139,
      209,
      130,
      209,
      139,
      208,
      158,
      208,
      189,
      208,
      184,
      208,
      188,
      208,
      180,
      208,
      176,
      208,
      151,
      208,
      176,
      208,
      148,
      208,
      176,
      208,
      157,
      209,
      131,
      208,
      158,
      208,
      177,
      209,
      130,
      208,
      181,
      208,
      152,
      208,
      183,
      208,
      181,
      208,
      185,
      208,
      189,
      209,
      131,
      208,
      188,
      208,
      188,
      208,
      162,
      209,
      139,
      209,
      131,
      208,
      182,
      217,
      129,
      217,
      138,
      216,
      163,
      217,
      134,
      217,
      133,
      216,
      167,
      217,
      133,
      216,
      185,
      217,
      131,
      217,
      132,
      216,
      163,
      217,
      136,
      216,
      177,
      216,
      175,
      217,
      138,
      216,
      167,
      217,
      129,
      217,
      137,
      217,
      135,
      217,
      136,
      217,
      132,
      217,
      133,
      217,
      132,
      217,
      131,
      216,
      167,
      217,
      136,
      217,
      132,
      217,
      135,
      216,
      168,
      216,
      179,
      216,
      167,
      217,
      132,
      216,
      165,
      217,
      134,
      217,
      135,
      217,
      138,
      216,
      163,
      217,
      138,
      217,
      130,
      216,
      175,
      217,
      135,
      217,
      132,
      216,
      171,
      217,
      133,
      216,
      168,
      217,
      135,
      217,
      132,
      217,
      136,
      217,
      132,
      217,
      138,
      216,
      168,
      217,
      132,
      216,
      167,
      217,
      138,
      216,
      168,
      217,
      131,
      216,
      180,
      217,
      138,
      216,
      167,
      217,
      133,
      216,
      163,
      217,
      133,
      217,
      134,
      216,
      170,
      216,
      168,
      217,
      138,
      217,
      132,
      217,
      134,
      216,
      173,
      216,
      168,
      217,
      135,
      217,
      133,
      217,
      133,
      216,
      180,
      217,
      136,
      216,
      180,
      102,
      105,
      114,
      115,
      116,
      118,
      105,
      100,
      101,
      111,
      108,
      105,
      103,
      104,
      116,
      119,
      111,
      114,
      108,
      100,
      109,
      101,
      100,
      105,
      97,
      119,
      104,
      105,
      116,
      101,
      99,
      108,
      111,
      115,
      101,
      98,
      108,
      97,
      99,
      107,
      114,
      105,
      103,
      104,
      116,
      115,
      109,
      97,
      108,
      108,
      98,
      111,
      111,
      107,
      115,
      112,
      108,
      97,
      99,
      101,
      109,
      117,
      115,
      105,
      99,
      102,
      105,
      101,
      108,
      100,
      111,
      114,
      100,
      101,
      114,
      112,
      111,
      105,
      110,
      116,
      118,
      97,
      108,
      117,
      101,
      108,
      101,
      118,
      101,
      108,
      116,
      97,
      98,
      108,
      101,
      98,
      111,
      97,
      114,
      100,
      104,
      111,
      117,
      115,
      101,
      103,
      114,
      111,
      117,
      112,
      119,
      111,
      114,
      107,
      115,
      121,
      101,
      97,
      114,
      115,
      115,
      116,
      97,
      116,
      101,
      116,
      111,
      100,
      97,
      121,
      119,
      97,
      116,
      101,
      114,
      115,
      116,
      97,
      114,
      116,
      115,
      116,
      121,
      108,
      101,
      100,
      101,
      97,
      116,
      104,
      112,
      111,
      119,
      101,
      114,
      112,
      104,
      111,
      110,
      101,
      110,
      105,
      103,
      104,
      116,
      101,
      114,
      114,
      111,
      114,
      105,
      110,
      112,
      117,
      116,
      97,
      98,
      111,
      117,
      116,
      116,
      101,
      114,
      109,
      115,
      116,
      105,
      116,
      108,
      101,
      116,
      111,
      111,
      108,
      115,
      101,
      118,
      101,
      110,
      116,
      108,
      111,
      99,
      97,
      108,
      116,
      105,
      109,
      101,
      115,
      108,
      97,
      114,
      103,
      101,
      119,
      111,
      114,
      100,
      115,
      103,
      97,
      109,
      101,
      115,
      115,
      104,
      111,
      114,
      116,
      115,
      112,
      97,
      99,
      101,
      102,
      111,
      99,
      117,
      115,
      99,
      108,
      101,
      97,
      114,
      109,
      111,
      100,
      101,
      108,
      98,
      108,
      111,
      99,
      107,
      103,
      117,
      105,
      100,
      101,
      114,
      97,
      100,
      105,
      111,
      115,
      104,
      97,
      114,
      101,
      119,
      111,
      109,
      101,
      110,
      97,
      103,
      97,
      105,
      110,
      109,
      111,
      110,
      101,
      121,
      105,
      109,
      97,
      103,
      101,
      110,
      97,
      109,
      101,
      115,
      121,
      111,
      117,
      110,
      103,
      108,
      105,
      110,
      101,
      115,
      108,
      97,
      116,
      101,
      114,
      99,
      111,
      108,
      111,
      114,
      103,
      114,
      101,
      101,
      110,
      102,
      114,
      111,
      110,
      116,
      38,
      97,
      109,
      112,
      59,
      119,
      97,
      116,
      99,
      104,
      102,
      111,
      114,
      99,
      101,
      112,
      114,
      105,
      99,
      101,
      114,
      117,
      108,
      101,
      115,
      98,
      101,
      103,
      105,
      110,
      97,
      102,
      116,
      101,
      114,
      118,
      105,
      115,
      105,
      116,
      105,
      115,
      115,
      117,
      101,
      97,
      114,
      101,
      97,
      115,
      98,
      101,
      108,
      111,
      119,
      105,
      110,
      100,
      101,
      120,
      116,
      111,
      116,
      97,
      108,
      104,
      111,
      117,
      114,
      115,
      108,
      97,
      98,
      101,
      108,
      112,
      114,
      105,
      110,
      116,
      112,
      114,
      101,
      115,
      115,
      98,
      117,
      105,
      108,
      116,
      108,
      105,
      110,
      107,
      115,
      115,
      112,
      101,
      101,
      100,
      115,
      116,
      117,
      100,
      121,
      116,
      114,
      97,
      100,
      101,
      102,
      111,
      117,
      110,
      100,
      115,
      101,
      110,
      115,
      101,
      117,
      110,
      100,
      101,
      114,
      115,
      104,
      111,
      119,
      110,
      102,
      111,
      114,
      109,
      115,
      114,
      97,
      110,
      103,
      101,
      97,
      100,
      100,
      101,
      100,
      115,
      116,
      105,
      108,
      108,
      109,
      111,
      118,
      101,
      100,
      116,
      97,
      107,
      101,
      110,
      97,
      98,
      111,
      118,
      101,
      102,
      108,
      97,
      115,
      104,
      102,
      105,
      120,
      101,
      100,
      111,
      102,
      116,
      101,
      110,
      111,
      116,
      104,
      101,
      114,
      118,
      105,
      101,
      119,
      115,
      99,
      104,
      101,
      99,
      107,
      108,
      101,
      103,
      97,
      108,
      114,
      105,
      118,
      101,
      114,
      105,
      116,
      101,
      109,
      115,
      113,
      117,
      105,
      99,
      107,
      115,
      104,
      97,
      112,
      101,
      104,
      117,
      109,
      97,
      110,
      101,
      120,
      105,
      115,
      116,
      103,
      111,
      105,
      110,
      103,
      109,
      111,
      118,
      105,
      101,
      116,
      104,
      105,
      114,
      100,
      98,
      97,
      115,
      105,
      99,
      112,
      101,
      97,
      99,
      101,
      115,
      116,
      97,
      103,
      101,
      119,
      105,
      100,
      116,
      104,
      108,
      111,
      103,
      105,
      110,
      105,
      100,
      101,
      97,
      115,
      119,
      114,
      111,
      116,
      101,
      112,
      97,
      103,
      101,
      115,
      117,
      115,
      101,
      114,
      115,
      100,
      114,
      105,
      118,
      101,
      115,
      116,
      111,
      114,
      101,
      98,
      114,
      101,
      97,
      107,
      115,
      111,
      117,
      116,
      104,
      118,
      111,
      105,
      99,
      101,
      115,
      105,
      116,
      101,
      115,
      109,
      111,
      110,
      116,
      104,
      119,
      104,
      101,
      114,
      101,
      98,
      117,
      105,
      108,
      100,
      119,
      104,
      105,
      99,
      104,
      101,
      97,
      114,
      116,
      104,
      102,
      111,
      114,
      117,
      109,
      116,
      104,
      114,
      101,
      101,
      115,
      112,
      111,
      114,
      116,
      112,
      97,
      114,
      116,
      121,
      67,
      108,
      105,
      99,
      107,
      108,
      111,
      119,
      101,
      114,
      108,
      105,
      118,
      101,
      115,
      99,
      108,
      97,
      115,
      115,
      108,
      97,
      121,
      101,
      114,
      101,
      110,
      116,
      114,
      121,
      115,
      116,
      111,
      114,
      121,
      117,
      115,
      97,
      103,
      101,
      115,
      111,
      117,
      110,
      100,
      99,
      111,
      117,
      114,
      116,
      121,
      111,
      117,
      114,
      32,
      98,
      105,
      114,
      116,
      104,
      112,
      111,
      112,
      117,
      112,
      116,
      121,
      112,
      101,
      115,
      97,
      112,
      112,
      108,
      121,
      73,
      109,
      97,
      103,
      101,
      98,
      101,
      105,
      110,
      103,
      117,
      112,
      112,
      101,
      114,
      110,
      111,
      116,
      101,
      115,
      101,
      118,
      101,
      114,
      121,
      115,
      104,
      111,
      119,
      115,
      109,
      101,
      97,
      110,
      115,
      101,
      120,
      116,
      114,
      97,
      109,
      97,
      116,
      99,
      104,
      116,
      114,
      97,
      99,
      107,
      107,
      110,
      111,
      119,
      110,
      101,
      97,
      114,
      108,
      121,
      98,
      101,
      103,
      97,
      110,
      115,
      117,
      112,
      101,
      114,
      112,
      97,
      112,
      101,
      114,
      110,
      111,
      114,
      116,
      104,
      108,
      101,
      97,
      114,
      110,
      103,
      105,
      118,
      101,
      110,
      110,
      97,
      109,
      101,
      100,
      101,
      110,
      100,
      101,
      100,
      84,
      101,
      114,
      109,
      115,
      112,
      97,
      114,
      116,
      115,
      71,
      114,
      111,
      117,
      112,
      98,
      114,
      97,
      110,
      100,
      117,
      115,
      105,
      110,
      103,
      119,
      111,
      109,
      97,
      110,
      102,
      97,
      108,
      115,
      101,
      114,
      101,
      97,
      100,
      121,
      97,
      117,
      100,
      105,
      111,
      116,
      97,
      107,
      101,
      115,
      119,
      104,
      105,
      108,
      101,
      46,
      99,
      111,
      109,
      47,
      108,
      105,
      118,
      101,
      100,
      99,
      97,
      115,
      101,
      115,
      100,
      97,
      105,
      108,
      121,
      99,
      104,
      105,
      108,
      100,
      103,
      114,
      101,
      97,
      116,
      106,
      117,
      100,
      103,
      101,
      116,
      104,
      111,
      115,
      101,
      117,
      110,
      105,
      116,
      115,
      110,
      101,
      118,
      101,
      114,
      98,
      114,
      111,
      97,
      100,
      99,
      111,
      97,
      115,
      116,
      99,
      111,
      118,
      101,
      114,
      97,
      112,
      112,
      108,
      101,
      102,
      105,
      108,
      101,
      115,
      99,
      121,
      99,
      108,
      101,
      115,
      99,
      101,
      110,
      101,
      112,
      108,
      97,
      110,
      115,
      99,
      108,
      105,
      99,
      107,
      119,
      114,
      105,
      116,
      101,
      113,
      117,
      101,
      101,
      110,
      112,
      105,
      101,
      99,
      101,
      101,
      109,
      97,
      105,
      108,
      102,
      114,
      97,
      109,
      101,
      111,
      108,
      100,
      101,
      114,
      112,
      104,
      111,
      116,
      111,
      108,
      105,
      109,
      105,
      116,
      99,
      97,
      99,
      104,
      101,
      99,
      105,
      118,
      105,
      108,
      115,
      99,
      97,
      108,
      101,
      101,
      110,
      116,
      101,
      114,
      116,
      104,
      101,
      109,
      101,
      116,
      104,
      101,
      114,
      101,
      116,
      111,
      117,
      99,
      104,
      98,
      111,
      117,
      110,
      100,
      114,
      111,
      121,
      97,
      108,
      97,
      115,
      107,
      101,
      100,
      119,
      104,
      111,
      108,
      101,
      115,
      105,
      110,
      99,
      101,
      115,
      116,
      111,
      99,
      107,
      32,
      110,
      97,
      109,
      101,
      102,
      97,
      105,
      116,
      104,
      104,
      101,
      97,
      114,
      116,
      101,
      109,
      112,
      116,
      121,
      111,
      102,
      102,
      101,
      114,
      115,
      99,
      111,
      112,
      101,
      111,
      119,
      110,
      101,
      100,
      109,
      105,
      103,
      104,
      116,
      97,
      108,
      98,
      117,
      109,
      116,
      104,
      105,
      110,
      107,
      98,
      108,
      111,
      111,
      100,
      97,
      114,
      114,
      97,
      121,
      109,
      97,
      106,
      111,
      114,
      116,
      114,
      117,
      115,
      116,
      99,
      97,
      110,
      111,
      110,
      117,
      110,
      105,
      111,
      110,
      99,
      111,
      117,
      110,
      116,
      118,
      97,
      108,
      105,
      100,
      115,
      116,
      111,
      110,
      101,
      83,
      116,
      121,
      108,
      101,
      76,
      111,
      103,
      105,
      110,
      104,
      97,
      112,
      112,
      121,
      111,
      99,
      99,
      117,
      114,
      108,
      101,
      102,
      116,
      58,
      102,
      114,
      101,
      115,
      104,
      113,
      117,
      105,
      116,
      101,
      102,
      105,
      108,
      109,
      115,
      103,
      114,
      97,
      100,
      101,
      110,
      101,
      101,
      100,
      115,
      117,
      114,
      98,
      97,
      110,
      102,
      105,
      103,
      104,
      116,
      98,
      97,
      115,
      105,
      115,
      104,
      111,
      118,
      101,
      114,
      97,
      117,
      116,
      111,
      59,
      114,
      111,
      117,
      116,
      101,
      46,
      104,
      116,
      109,
      108,
      109,
      105,
      120,
      101,
      100,
      102,
      105,
      110,
      97,
      108,
      89,
      111,
      117,
      114,
      32,
      115,
      108,
      105,
      100,
      101,
      116,
      111,
      112,
      105,
      99,
      98,
      114,
      111,
      119,
      110,
      97,
      108,
      111,
      110,
      101,
      100,
      114,
      97,
      119,
      110,
      115,
      112,
      108,
      105,
      116,
      114,
      101,
      97,
      99,
      104,
      82,
      105,
      103,
      104,
      116,
      100,
      97,
      116,
      101,
      115,
      109,
      97,
      114,
      99,
      104,
      113,
      117,
      111,
      116,
      101,
      103,
      111,
      111,
      100,
      115,
      76,
      105,
      110,
      107,
      115,
      100,
      111,
      117,
      98,
      116,
      97,
      115,
      121,
      110,
      99,
      116,
      104,
      117,
      109,
      98,
      97,
      108,
      108,
      111,
      119,
      99,
      104,
      105,
      101,
      102,
      121,
      111,
      117,
      116,
      104,
      110,
      111,
      118,
      101,
      108,
      49,
      48,
      112,
      120,
      59,
      115,
      101,
      114,
      118,
      101,
      117,
      110,
      116,
      105,
      108,
      104,
      97,
      110,
      100,
      115,
      67,
      104,
      101,
      99,
      107,
      83,
      112,
      97,
      99,
      101,
      113,
      117,
      101,
      114,
      121,
      106,
      97,
      109,
      101,
      115,
      101,
      113,
      117,
      97,
      108,
      116,
      119,
      105,
      99,
      101,
      48,
      44,
      48,
      48,
      48,
      83,
      116,
      97,
      114,
      116,
      112,
      97,
      110,
      101,
      108,
      115,
      111,
      110,
      103,
      115,
      114,
      111,
      117,
      110,
      100,
      101,
      105,
      103,
      104,
      116,
      115,
      104,
      105,
      102,
      116,
      119,
      111,
      114,
      116,
      104,
      112,
      111,
      115,
      116,
      115,
      108,
      101,
      97,
      100,
      115,
      119,
      101,
      101,
      107,
      115,
      97,
      118,
      111,
      105,
      100,
      116,
      104,
      101,
      115,
      101,
      109,
      105,
      108,
      101,
      115,
      112,
      108,
      97,
      110,
      101,
      115,
      109,
      97,
      114,
      116,
      97,
      108,
      112,
      104,
      97,
      112,
      108,
      97,
      110,
      116,
      109,
      97,
      114,
      107,
      115,
      114,
      97,
      116,
      101,
      115,
      112,
      108,
      97,
      121,
      115,
      99,
      108,
      97,
      105,
      109,
      115,
      97,
      108,
      101,
      115,
      116,
      101,
      120,
      116,
      115,
      115,
      116,
      97,
      114,
      115,
      119,
      114,
      111,
      110,
      103,
      60,
      47,
      104,
      51,
      62,
      116,
      104,
      105,
      110,
      103,
      46,
      111,
      114,
      103,
      47,
      109,
      117,
      108,
      116,
      105,
      104,
      101,
      97,
      114,
      100,
      80,
      111,
      119,
      101,
      114,
      115,
      116,
      97,
      110,
      100,
      116,
      111,
      107,
      101,
      110,
      115,
      111,
      108,
      105,
      100,
      40,
      116,
      104,
      105,
      115,
      98,
      114,
      105,
      110,
      103,
      115,
      104,
      105,
      112,
      115,
      115,
      116,
      97,
      102,
      102,
      116,
      114,
      105,
      101,
      100,
      99,
      97,
      108,
      108,
      115,
      102,
      117,
      108,
      108,
      121,
      102,
      97,
      99,
      116,
      115,
      97,
      103,
      101,
      110,
      116,
      84,
      104,
      105,
      115,
      32,
      47,
      47,
      45,
      45,
      62,
      97,
      100,
      109,
      105,
      110,
      101,
      103,
      121,
      112,
      116,
      69,
      118,
      101,
      110,
      116,
      49,
      53,
      112,
      120,
      59,
      69,
      109,
      97,
      105,
      108,
      116,
      114,
      117,
      101,
      34,
      99,
      114,
      111,
      115,
      115,
      115,
      112,
      101,
      110,
      116,
      98,
      108,
      111,
      103,
      115,
      98,
      111,
      120,
      34,
      62,
      110,
      111,
      116,
      101,
      100,
      108,
      101,
      97,
      118,
      101,
      99,
      104,
      105,
      110,
      97,
      115,
      105,
      122,
      101,
      115,
      103,
      117,
      101,
      115,
      116,
      60,
      47,
      104,
      52,
      62,
      114,
      111,
      98,
      111,
      116,
      104,
      101,
      97,
      118,
      121,
      116,
      114,
      117,
      101,
      44,
      115,
      101,
      118,
      101,
      110,
      103,
      114,
      97,
      110,
      100,
      99,
      114,
      105,
      109,
      101,
      115,
      105,
      103,
      110,
      115,
      97,
      119,
      97,
      114,
      101,
      100,
      97,
      110,
      99,
      101,
      112,
      104,
      97,
      115,
      101,
      62,
      60,
      33,
      45,
      45,
      101,
      110,
      95,
      85,
      83,
      38,
      35,
      51,
      57,
      59,
      50,
      48,
      48,
      112,
      120,
      95,
      110,
      97,
      109,
      101,
      108,
      97,
      116,
      105,
      110,
      101,
      110,
      106,
      111,
      121,
      97,
      106,
      97,
      120,
      46,
      97,
      116,
      105,
      111,
      110,
      115,
      109,
      105,
      116,
      104,
      85,
      46,
      83,
      46,
      32,
      104,
      111,
      108,
      100,
      115,
      112,
      101,
      116,
      101,
      114,
      105,
      110,
      100,
      105,
      97,
      110,
      97,
      118,
      34,
      62,
      99,
      104,
      97,
      105,
      110,
      115,
      99,
      111,
      114,
      101,
      99,
      111,
      109,
      101,
      115,
      100,
      111,
      105,
      110,
      103,
      112,
      114,
      105,
      111,
      114,
      83,
      104,
      97,
      114,
      101,
      49,
      57,
      57,
      48,
      115,
      114,
      111,
      109,
      97,
      110,
      108,
      105,
      115,
      116,
      115,
      106,
      97,
      112,
      97,
      110,
      102,
      97,
      108,
      108,
      115,
      116,
      114,
      105,
      97,
      108,
      111,
      119,
      110,
      101,
      114,
      97,
      103,
      114,
      101,
      101,
      60,
      47,
      104,
      50,
      62,
      97,
      98,
      117,
      115,
      101,
      97,
      108,
      101,
      114,
      116,
      111,
      112,
      101,
      114,
      97,
      34,
      45,
      47,
      47,
      87,
      99,
      97,
      114,
      100,
      115,
      104,
      105,
      108,
      108,
      115,
      116,
      101,
      97,
      109,
      115,
      80,
      104,
      111,
      116,
      111,
      116,
      114,
      117,
      116,
      104,
      99,
      108,
      101,
      97,
      110,
      46,
      112,
      104,
      112,
      63,
      115,
      97,
      105,
      110,
      116,
      109,
      101,
      116,
      97,
      108,
      108,
      111,
      117,
      105,
      115,
      109,
      101,
      97,
      110,
      116,
      112,
      114,
      111,
      111,
      102,
      98,
      114,
      105,
      101,
      102,
      114,
      111,
      119,
      34,
      62,
      103,
      101,
      110,
      114,
      101,
      116,
      114,
      117,
      99,
      107,
      108,
      111,
      111,
      107,
      115,
      86,
      97,
      108,
      117,
      101,
      70,
      114,
      97,
      109,
      101,
      46,
      110,
      101,
      116,
      47,
      45,
      45,
      62,
      10,
      60,
      116,
      114,
      121,
      32,
      123,
      10,
      118,
      97,
      114,
      32,
      109,
      97,
      107,
      101,
      115,
      99,
      111,
      115,
      116,
      115,
      112,
      108,
      97,
      105,
      110,
      97,
      100,
      117,
      108,
      116,
      113,
      117,
      101,
      115,
      116,
      116,
      114,
      97,
      105,
      110,
      108,
      97,
      98,
      111,
      114,
      104,
      101,
      108,
      112,
      115,
      99,
      97,
      117,
      115,
      101,
      109,
      97,
      103,
      105,
      99,
      109,
      111,
      116,
      111,
      114,
      116,
      104,
      101,
      105,
      114,
      50,
      53,
      48,
      112,
      120,
      108,
      101,
      97,
      115,
      116,
      115,
      116,
      101,
      112,
      115,
      67,
      111,
      117,
      110,
      116,
      99,
      111,
      117,
      108,
      100,
      103,
      108,
      97,
      115,
      115,
      115,
      105,
      100,
      101,
      115,
      102,
      117,
      110,
      100,
      115,
      104,
      111,
      116,
      101,
      108,
      97,
      119,
      97,
      114,
      100,
      109,
      111,
      117,
      116,
      104,
      109,
      111,
      118,
      101,
      115,
      112,
      97,
      114,
      105,
      115,
      103,
      105,
      118,
      101,
      115,
      100,
      117,
      116,
      99,
      104,
      116,
      101,
      120,
      97,
      115,
      102,
      114,
      117,
      105,
      116,
      110,
      117,
      108,
      108,
      44,
      124,
      124,
      91,
      93,
      59,
      116,
      111,
      112,
      34,
      62,
      10,
      60,
      33,
      45,
      45,
      80,
      79,
      83,
      84,
      34,
      111,
      99,
      101,
      97,
      110,
      60,
      98,
      114,
      47,
      62,
      102,
      108,
      111,
      111,
      114,
      115,
      112,
      101,
      97,
      107,
      100,
      101,
      112,
      116,
      104,
      32,
      115,
      105,
      122,
      101,
      98,
      97,
      110,
      107,
      115,
      99,
      97,
      116,
      99,
      104,
      99,
      104,
      97,
      114,
      116,
      50,
      48,
      112,
      120,
      59,
      97,
      108,
      105,
      103,
      110,
      100,
      101,
      97,
      108,
      115,
      119,
      111,
      117,
      108,
      100,
      53,
      48,
      112,
      120,
      59,
      117,
      114,
      108,
      61,
      34,
      112,
      97,
      114,
      107,
      115,
      109,
      111,
      117,
      115,
      101,
      77,
      111,
      115,
      116,
      32,
      46,
      46,
      46,
      60,
      47,
      97,
      109,
      111,
      110,
      103,
      98,
      114,
      97,
      105,
      110,
      98,
      111,
      100,
      121,
      32,
      110,
      111,
      110,
      101,
      59,
      98,
      97,
      115,
      101,
      100,
      99,
      97,
      114,
      114,
      121,
      100,
      114,
      97,
      102,
      116,
      114,
      101,
      102,
      101,
      114,
      112,
      97,
      103,
      101,
      95,
      104,
      111,
      109,
      101,
      46,
      109,
      101,
      116,
      101,
      114,
      100,
      101,
      108,
      97,
      121,
      100,
      114,
      101,
      97,
      109,
      112,
      114,
      111,
      118,
      101,
      106,
      111,
      105,
      110,
      116,
      60,
      47,
      116,
      114,
      62,
      100,
      114,
      117,
      103,
      115,
      60,
      33,
      45,
      45,
      32,
      97,
      112,
      114,
      105,
      108,
      105,
      100,
      101,
      97,
      108,
      97,
      108,
      108,
      101,
      110,
      101,
      120,
      97,
      99,
      116,
      102,
      111,
      114,
      116,
      104,
      99,
      111,
      100,
      101,
      115,
      108,
      111,
      103,
      105,
      99,
      86,
      105,
      101,
      119,
      32,
      115,
      101,
      101,
      109,
      115,
      98,
      108,
      97,
      110,
      107,
      112,
      111,
      114,
      116,
      115,
      32,
      40,
      50,
      48,
      48,
      115,
      97,
      118,
      101,
      100,
      95,
      108,
      105,
      110,
      107,
      103,
      111,
      97,
      108,
      115,
      103,
      114,
      97,
      110,
      116,
      103,
      114,
      101,
      101,
      107,
      104,
      111,
      109,
      101,
      115,
      114,
      105,
      110,
      103,
      115,
      114,
      97,
      116,
      101,
      100,
      51,
      48,
      112,
      120,
      59,
      119,
      104,
      111,
      115,
      101,
      112,
      97,
      114,
      115,
      101,
      40,
      41,
      59,
      34,
      32,
      66,
      108,
      111,
      99,
      107,
      108,
      105,
      110,
      117,
      120,
      106,
      111,
      110,
      101,
      115,
      112,
      105,
      120,
      101,
      108,
      39,
      41,
      59,
      34,
      62,
      41,
      59,
      105,
      102,
      40,
      45,
      108,
      101,
      102,
      116,
      100,
      97,
      118,
      105,
      100,
      104,
      111,
      114,
      115,
      101,
      70,
      111,
      99,
      117,
      115,
      114,
      97,
      105,
      115,
      101,
      98,
      111,
      120,
      101,
      115,
      84,
      114,
      97,
      99,
      107,
      101,
      109,
      101,
      110,
      116,
      60,
      47,
      101,
      109,
      62,
      98,
      97,
      114,
      34,
      62,
      46,
      115,
      114,
      99,
      61,
      116,
      111,
      119,
      101,
      114,
      97,
      108,
      116,
      61,
      34,
      99,
      97,
      98,
      108,
      101,
      104,
      101,
      110,
      114,
      121,
      50,
      52,
      112,
      120,
      59,
      115,
      101,
      116,
      117,
      112,
      105,
      116,
      97,
      108,
      121,
      115,
      104,
      97,
      114,
      112,
      109,
      105,
      110,
      111,
      114,
      116,
      97,
      115,
      116,
      101,
      119,
      97,
      110,
      116,
      115,
      116,
      104,
      105,
      115,
      46,
      114,
      101,
      115,
      101,
      116,
      119,
      104,
      101,
      101,
      108,
      103,
      105,
      114,
      108,
      115,
      47,
      99,
      115,
      115,
      47,
      49,
      48,
      48,
      37,
      59,
      99,
      108,
      117,
      98,
      115,
      115,
      116,
      117,
      102,
      102,
      98,
      105,
      98,
      108,
      101,
      118,
      111,
      116,
      101,
      115,
      32,
      49,
      48,
      48,
      48,
      107,
      111,
      114,
      101,
      97,
      125,
      41,
      59,
      13,
      10,
      98,
      97,
      110,
      100,
      115,
      113,
      117,
      101,
      117,
      101,
      61,
      32,
      123,
      125,
      59,
      56,
      48,
      112,
      120,
      59,
      99,
      107,
      105,
      110,
      103,
      123,
      13,
      10,
      9,
      9,
      97,
      104,
      101,
      97,
      100,
      99,
      108,
      111,
      99,
      107,
      105,
      114,
      105,
      115,
      104,
      108,
      105,
      107,
      101,
      32,
      114,
      97,
      116,
      105,
      111,
      115,
      116,
      97,
      116,
      115,
      70,
      111,
      114,
      109,
      34,
      121,
      97,
      104,
      111,
      111,
      41,
      91,
      48,
      93,
      59,
      65,
      98,
      111,
      117,
      116,
      102,
      105,
      110,
      100,
      115,
      60,
      47,
      104,
      49,
      62,
      100,
      101,
      98,
      117,
      103,
      116,
      97,
      115,
      107,
      115,
      85,
      82,
      76,
      32,
      61,
      99,
      101,
      108,
      108,
      115,
      125,
      41,
      40,
      41,
      59,
      49,
      50,
      112,
      120,
      59,
      112,
      114,
      105,
      109,
      101,
      116,
      101,
      108,
      108,
      115,
      116,
      117,
      114,
      110,
      115,
      48,
      120,
      54,
      48,
      48,
      46,
      106,
      112,
      103,
      34,
      115,
      112,
      97,
      105,
      110,
      98,
      101,
      97,
      99,
      104,
      116,
      97,
      120,
      101,
      115,
      109,
      105,
      99,
      114,
      111,
      97,
      110,
      103,
      101,
      108,
      45,
      45,
      62,
      60,
      47,
      103,
      105,
      102,
      116,
      115,
      115,
      116,
      101,
      118,
      101,
      45,
      108,
      105,
      110,
      107,
      98,
      111,
      100,
      121,
      46,
      125,
      41,
      59,
      10,
      9,
      109,
      111,
      117,
      110,
      116,
      32,
      40,
      49,
      57,
      57,
      70,
      65,
      81,
      60,
      47,
      114,
      111,
      103,
      101,
      114,
      102,
      114,
      97,
      110,
      107,
      67,
      108,
      97,
      115,
      115,
      50,
      56,
      112,
      120,
      59,
      102,
      101,
      101,
      100,
      115,
      60,
      104,
      49,
      62,
      60,
      115,
      99,
      111,
      116,
      116,
      116,
      101,
      115,
      116,
      115,
      50,
      50,
      112,
      120,
      59,
      100,
      114,
      105,
      110,
      107,
      41,
      32,
      124,
      124,
      32,
      108,
      101,
      119,
      105,
      115,
      115,
      104,
      97,
      108,
      108,
      35,
      48,
      51,
      57,
      59,
      32,
      102,
      111,
      114,
      32,
      108,
      111,
      118,
      101,
      100,
      119,
      97,
      115,
      116,
      101,
      48,
      48,
      112,
      120,
      59,
      106,
      97,
      58,
      227,
      130,
      115,
      105,
      109,
      111,
      110,
      60,
      102,
      111,
      110,
      116,
      114,
      101,
      112,
      108,
      121,
      109,
      101,
      101,
      116,
      115,
      117,
      110,
      116,
      101,
      114,
      99,
      104,
      101,
      97,
      112,
      116,
      105,
      103,
      104,
      116,
      66,
      114,
      97,
      110,
      100,
      41,
      32,
      33,
      61,
      32,
      100,
      114,
      101,
      115,
      115,
      99,
      108,
      105,
      112,
      115,
      114,
      111,
      111,
      109,
      115,
      111,
      110,
      107,
      101,
      121,
      109,
      111,
      98,
      105,
      108,
      109,
      97,
      105,
      110,
      46,
      78,
      97,
      109,
      101,
      32,
      112,
      108,
      97,
      116,
      101,
      102,
      117,
      110,
      110,
      121,
      116,
      114,
      101,
      101,
      115,
      99,
      111,
      109,
      47,
      34,
      49,
      46,
      106,
      112,
      103,
      119,
      109,
      111,
      100,
      101,
      112,
      97,
      114,
      97,
      109,
      83,
      84,
      65,
      82,
      84,
      108,
      101,
      102,
      116,
      32,
      105,
      100,
      100,
      101,
      110,
      44,
      32,
      50,
      48,
      49,
      41,
      59,
      10,
      125,
      10,
      102,
      111,
      114,
      109,
      46,
      118,
      105,
      114,
      117,
      115,
      99,
      104,
      97,
      105,
      114,
      116,
      114,
      97,
      110,
      115,
      119,
      111,
      114,
      115,
      116,
      80,
      97,
      103,
      101,
      115,
      105,
      116,
      105,
      111,
      110,
      112,
      97,
      116,
      99,
      104,
      60,
      33,
      45,
      45,
      10,
      111,
      45,
      99,
      97,
      99,
      102,
      105,
      114,
      109,
      115,
      116,
      111,
      117,
      114,
      115,
      44,
      48,
      48,
      48,
      32,
      97,
      115,
      105,
      97,
      110,
      105,
      43,
      43,
      41,
      123,
      97,
      100,
      111,
      98,
      101,
      39,
      41,
      91,
      48,
      93,
      105,
      100,
      61,
      49,
      48,
      98,
      111,
      116,
      104,
      59,
      109,
      101,
      110,
      117,
      32,
      46,
      50,
      46,
      109,
      105,
      46,
      112,
      110,
      103,
      34,
      107,
      101,
      118,
      105,
      110,
      99,
      111,
      97,
      99,
      104,
      67,
      104,
      105,
      108,
      100,
      98,
      114,
      117,
      99,
      101,
      50,
      46,
      106,
      112,
      103,
      85,
      82,
      76,
      41,
      43,
      46,
      106,
      112,
      103,
      124,
      115,
      117,
      105,
      116,
      101,
      115,
      108,
      105,
      99,
      101,
      104,
      97,
      114,
      114,
      121,
      49,
      50,
      48,
      34,
      32,
      115,
      119,
      101,
      101,
      116,
      116,
      114,
      62,
      13,
      10,
      110,
      97,
      109,
      101,
      61,
      100,
      105,
      101,
      103,
      111,
      112,
      97,
      103,
      101,
      32,
      115,
      119,
      105,
      115,
      115,
      45,
      45,
      62,
      10,
      10,
      35,
      102,
      102,
      102,
      59,
      34,
      62,
      76,
      111,
      103,
      46,
      99,
      111,
      109,
      34,
      116,
      114,
      101,
      97,
      116,
      115,
      104,
      101,
      101,
      116,
      41,
      32,
      38,
      38,
      32,
      49,
      52,
      112,
      120,
      59,
      115,
      108,
      101,
      101,
      112,
      110,
      116,
      101,
      110,
      116,
      102,
      105,
      108,
      101,
      100,
      106,
      97,
      58,
      227,
      131,
      105,
      100,
      61,
      34,
      99,
      78,
      97,
      109,
      101,
      34,
      119,
      111,
      114,
      115,
      101,
      115,
      104,
      111,
      116,
      115,
      45,
      98,
      111,
      120,
      45,
      100,
      101,
      108,
      116,
      97,
      10,
      38,
      108,
      116,
      59,
      98,
      101,
      97,
      114,
      115,
      58,
      52,
      56,
      90,
      60,
      100,
      97,
      116,
      97,
      45,
      114,
      117,
      114,
      97,
      108,
      60,
      47,
      97,
      62,
      32,
      115,
      112,
      101,
      110,
      100,
      98,
      97,
      107,
      101,
      114,
      115,
      104,
      111,
      112,
      115,
      61,
      32,
      34,
      34,
      59,
      112,
      104,
      112,
      34,
      62,
      99,
      116,
      105,
      111,
      110,
      49,
      51,
      112,
      120,
      59,
      98,
      114,
      105,
      97,
      110,
      104,
      101,
      108,
      108,
      111,
      115,
      105,
      122,
      101,
      61,
      111,
      61,
      37,
      50,
      70,
      32,
      106,
      111,
      105,
      110,
      109,
      97,
      121,
      98,
      101,
      60,
      105,
      109,
      103,
      32,
      105,
      109,
      103,
      34,
      62,
      44,
      32,
      102,
      106,
      115,
      105,
      109,
      103,
      34,
      32,
      34,
      41,
      91,
      48,
      93,
      77,
      84,
      111,
      112,
      66,
      84,
      121,
      112,
      101,
      34,
      110,
      101,
      119,
      108,
      121,
      68,
      97,
      110,
      115,
      107,
      99,
      122,
      101,
      99,
      104,
      116,
      114,
      97,
      105,
      108,
      107,
      110,
      111,
      119,
      115,
      60,
      47,
      104,
      53,
      62,
      102,
      97,
      113,
      34,
      62,
      122,
      104,
      45,
      99,
      110,
      49,
      48,
      41,
      59,
      10,
      45,
      49,
      34,
      41,
      59,
      116,
      121,
      112,
      101,
      61,
      98,
      108,
      117,
      101,
      115,
      116,
      114,
      117,
      108,
      121,
      100,
      97,
      118,
      105,
      115,
      46,
      106,
      115,
      39,
      59,
      62,
      13,
      10,
      60,
      33,
      115,
      116,
      101,
      101,
      108,
      32,
      121,
      111,
      117,
      32,
      104,
      50,
      62,
      13,
      10,
      102,
      111,
      114,
      109,
      32,
      106,
      101,
      115,
      117,
      115,
      49,
      48,
      48,
      37,
      32,
      109,
      101,
      110,
      117,
      46,
      13,
      10,
      9,
      13,
      10,
      119,
      97,
      108,
      101,
      115,
      114,
      105,
      115,
      107,
      115,
      117,
      109,
      101,
      110,
      116,
      100,
      100,
      105,
      110,
      103,
      98,
      45,
      108,
      105,
      107,
      116,
      101,
      97,
      99,
      104,
      103,
      105,
      102,
      34,
      32,
      118,
      101,
      103,
      97,
      115,
      100,
      97,
      110,
      115,
      107,
      101,
      101,
      115,
      116,
      105,
      115,
      104,
      113,
      105,
      112,
      115,
      117,
      111,
      109,
      105,
      115,
      111,
      98,
      114,
      101,
      100,
      101,
      115,
      100,
      101,
      101,
      110,
      116,
      114,
      101,
      116,
      111,
      100,
      111,
      115,
      112,
      117,
      101,
      100,
      101,
      97,
      195,
      177,
      111,
      115,
      101,
      115,
      116,
      195,
      161,
      116,
      105,
      101,
      110,
      101,
      104,
      97,
      115,
      116,
      97,
      111,
      116,
      114,
      111,
      115,
      112,
      97,
      114,
      116,
      101,
      100,
      111,
      110,
      100,
      101,
      110,
      117,
      101,
      118,
      111,
      104,
      97,
      99,
      101,
      114,
      102,
      111,
      114,
      109,
      97,
      109,
      105,
      115,
      109,
      111,
      109,
      101,
      106,
      111,
      114,
      109,
      117,
      110,
      100,
      111,
      97,
      113,
      117,
      195,
      173,
      100,
      195,
      173,
      97,
      115,
      115,
      195,
      179,
      108,
      111,
      97,
      121,
      117,
      100,
      97,
      102,
      101,
      99,
      104,
      97,
      116,
      111,
      100,
      97,
      115,
      116,
      97,
      110,
      116,
      111,
      109,
      101,
      110,
      111,
      115,
      100,
      97,
      116,
      111,
      115,
      111,
      116,
      114,
      97,
      115,
      115,
      105,
      116,
      105,
      111,
      109,
      117,
      99,
      104,
      111,
      97,
      104,
      111,
      114,
      97,
      108,
      117,
      103,
      97,
      114,
      109,
      97,
      121,
      111,
      114,
      101,
      115,
      116,
      111,
      115,
      104,
      111,
      114,
      97,
      115,
      116,
      101,
      110,
      101,
      114,
      97,
      110,
      116,
      101,
      115,
      102,
      111,
      116,
      111,
      115,
      101,
      115,
      116,
      97,
      115,
      112,
      97,
      195,
      173,
      115,
      110,
      117,
      101,
      118,
      97,
      115,
      97,
      108,
      117,
      100,
      102,
      111,
      114,
      111,
      115,
      109,
      101,
      100,
      105,
      111,
      113,
      117,
      105,
      101,
      110,
      109,
      101,
      115,
      101,
      115,
      112,
      111,
      100,
      101,
      114,
      99,
      104,
      105,
      108,
      101,
      115,
      101,
      114,
      195,
      161,
      118,
      101,
      99,
      101,
      115,
      100,
      101,
      99,
      105,
      114,
      106,
      111,
      115,
      195,
      169,
      101,
      115,
      116,
      97,
      114,
      118,
      101,
      110,
      116,
      97,
      103,
      114,
      117,
      112,
      111,
      104,
      101,
      99,
      104,
      111,
      101,
      108,
      108,
      111,
      115,
      116,
      101,
      110,
      103,
      111,
      97,
      109,
      105,
      103,
      111,
      99,
      111,
      115,
      97,
      115,
      110,
      105,
      118,
      101,
      108,
      103,
      101,
      110,
      116,
      101,
      109,
      105,
      115,
      109,
      97,
      97,
      105,
      114,
      101,
      115,
      106,
      117,
      108,
      105,
      111,
      116,
      101,
      109,
      97,
      115,
      104,
      97,
      99,
      105,
      97,
      102,
      97,
      118,
      111,
      114,
      106,
      117,
      110,
      105,
      111,
      108,
      105,
      98,
      114,
      101,
      112,
      117,
      110,
      116,
      111,
      98,
      117,
      101,
      110,
      111,
      97,
      117,
      116,
      111,
      114,
      97,
      98,
      114,
      105,
      108,
      98,
      117,
      101,
      110,
      97,
      116,
      101,
      120,
      116,
      111,
      109,
      97,
      114,
      122,
      111,
      115,
      97,
      98,
      101,
      114,
      108,
      105,
      115,
      116,
      97,
      108,
      117,
      101,
      103,
      111,
      99,
      195,
      179,
      109,
      111,
      101,
      110,
      101,
      114,
      111,
      106,
      117,
      101,
      103,
      111,
      112,
      101,
      114,
      195,
      186,
      104,
      97,
      98,
      101,
      114,
      101,
      115,
      116,
      111,
      121,
      110,
      117,
      110,
      99,
      97,
      109,
      117,
      106,
      101,
      114,
      118,
      97,
      108,
      111,
      114,
      102,
      117,
      101,
      114,
      97,
      108,
      105,
      98,
      114,
      111,
      103,
      117,
      115,
      116,
      97,
      105,
      103,
      117,
      97,
      108,
      118,
      111,
      116,
      111,
      115,
      99,
      97,
      115,
      111,
      115,
      103,
      117,
      195,
      173,
      97,
      112,
      117,
      101,
      100,
      111,
      115,
      111,
      109,
      111,
      115,
      97,
      118,
      105,
      115,
      111,
      117,
      115,
      116,
      101,
      100,
      100,
      101,
      98,
      101,
      110,
      110,
      111,
      99,
      104,
      101,
      98,
      117,
      115,
      99,
      97,
      102,
      97,
      108,
      116,
      97,
      101,
      117,
      114,
      111,
      115,
      115,
      101,
      114,
      105,
      101,
      100,
      105,
      99,
      104,
      111,
      99,
      117,
      114,
      115,
      111,
      99,
      108,
      97,
      118,
      101,
      99,
      97,
      115,
      97,
      115,
      108,
      101,
      195,
      179,
      110,
      112,
      108,
      97,
      122,
      111,
      108,
      97,
      114,
      103,
      111,
      111,
      98,
      114,
      97,
      115,
      118,
      105,
      115,
      116,
      97,
      97,
      112,
      111,
      121,
      111,
      106,
      117,
      110,
      116,
      111,
      116,
      114,
      97,
      116,
      97,
      118,
      105,
      115,
      116,
      111,
      99,
      114,
      101,
      97,
      114,
      99,
      97,
      109,
      112,
      111,
      104,
      101,
      109,
      111,
      115,
      99,
      105,
      110,
      99,
      111,
      99,
      97,
      114,
      103,
      111,
      112,
      105,
      115,
      111,
      115,
      111,
      114,
      100,
      101,
      110,
      104,
      97,
      99,
      101,
      110,
      195,
      161,
      114,
      101,
      97,
      100,
      105,
      115,
      99,
      111,
      112,
      101,
      100,
      114,
      111,
      99,
      101,
      114,
      99,
      97,
      112,
      117,
      101,
      100,
      97,
      112,
      97,
      112,
      101,
      108,
      109,
      101,
      110,
      111,
      114,
      195,
      186,
      116,
      105,
      108,
      99,
      108,
      97,
      114,
      111,
      106,
      111,
      114,
      103,
      101,
      99,
      97,
      108,
      108,
      101,
      112,
      111,
      110,
      101,
      114,
      116,
      97,
      114,
      100,
      101,
      110,
      97,
      100,
      105,
      101,
      109,
      97,
      114,
      99,
      97,
      115,
      105,
      103,
      117,
      101,
      101,
      108,
      108,
      97,
      115,
      115,
      105,
      103,
      108,
      111,
      99,
      111,
      99,
      104,
      101,
      109,
      111,
      116,
      111,
      115,
      109,
      97,
      100,
      114,
      101,
      99,
      108,
      97,
      115,
      101,
      114,
      101,
      115,
      116,
      111,
      110,
      105,
      195,
      177,
      111,
      113,
      117,
      101,
      100,
      97,
      112,
      97,
      115,
      97,
      114,
      98,
      97,
      110,
      99,
      111,
      104,
      105,
      106,
      111,
      115,
      118,
      105,
      97,
      106,
      101,
      112,
      97,
      98,
      108,
      111,
      195,
      169,
      115,
      116,
      101,
      118,
      105,
      101,
      110,
      101,
      114,
      101,
      105,
      110,
      111,
      100,
      101,
      106,
      97,
      114,
      102,
      111,
      110,
      100,
      111,
      99,
      97,
      110,
      97,
      108,
      110,
      111,
      114,
      116,
      101,
      108,
      101,
      116,
      114,
      97,
      99,
      97,
      117,
      115,
      97,
      116,
      111,
      109,
      97,
      114,
      109,
      97,
      110,
      111,
      115,
      108,
      117,
      110,
      101,
      115,
      97,
      117,
      116,
      111,
      115,
      118,
      105,
      108,
      108,
      97,
      118,
      101,
      110,
      100,
      111,
      112,
      101,
      115,
      97,
      114,
      116,
      105,
      112,
      111,
      115,
      116,
      101,
      110,
      103,
      97,
      109,
      97,
      114,
      99,
      111,
      108,
      108,
      101,
      118,
      97,
      112,
      97,
      100,
      114,
      101,
      117,
      110,
      105,
      100,
      111,
      118,
      97,
      109,
      111,
      115,
      122,
      111,
      110,
      97,
      115,
      97,
      109,
      98,
      111,
      115,
      98,
      97,
      110,
      100,
      97,
      109,
      97,
      114,
      105,
      97,
      97,
      98,
      117,
      115,
      111,
      109,
      117,
      99,
      104,
      97,
      115,
      117,
      98,
      105,
      114,
      114,
      105,
      111,
      106,
      97,
      118,
      105,
      118,
      105,
      114,
      103,
      114,
      97,
      100,
      111,
      99,
      104,
      105,
      99,
      97,
      97,
      108,
      108,
      195,
      173,
      106,
      111,
      118,
      101,
      110,
      100,
      105,
      99,
      104,
      97,
      101,
      115,
      116,
      97,
      110,
      116,
      97,
      108,
      101,
      115,
      115,
      97,
      108,
      105,
      114,
      115,
      117,
      101,
      108,
      111,
      112,
      101,
      115,
      111,
      115,
      102,
      105,
      110,
      101,
      115,
      108,
      108,
      97,
      109,
      97,
      98,
      117,
      115,
      99,
      111,
      195,
      169,
      115,
      116,
      97,
      108,
      108,
      101,
      103,
      97,
      110,
      101,
      103,
      114,
      111,
      112,
      108,
      97,
      122,
      97,
      104,
      117,
      109,
      111,
      114,
      112,
      97,
      103,
      97,
      114,
      106,
      117,
      110,
      116,
      97,
      100,
      111,
      98,
      108,
      101,
      105,
      115,
      108,
      97,
      115,
      98,
      111,
      108,
      115,
      97,
      98,
      97,
      195,
      177,
      111,
      104,
      97,
      98,
      108,
      97,
      108,
      117,
      99,
      104,
      97,
      195,
      129,
      114,
      101,
      97,
      100,
      105,
      99,
      101,
      110,
      106,
      117,
      103,
      97,
      114,
      110,
      111,
      116,
      97,
      115,
      118,
      97,
      108,
      108,
      101,
      97,
      108,
      108,
      195,
      161,
      99,
      97,
      114,
      103,
      97,
      100,
      111,
      108,
      111,
      114,
      97,
      98,
      97,
      106,
      111,
      101,
      115,
      116,
      195,
      169,
      103,
      117,
      115,
      116,
      111,
      109,
      101,
      110,
      116,
      101,
      109,
      97,
      114,
      105,
      111,
      102,
      105,
      114,
      109,
      97,
      99,
      111,
      115,
      116,
      111,
      102,
      105,
      99,
      104,
      97,
      112,
      108,
      97,
      116,
      97,
      104,
      111,
      103,
      97,
      114,
      97,
      114,
      116,
      101,
      115,
      108,
      101,
      121,
      101,
      115,
      97,
      113,
      117,
      101,
      108,
      109,
      117,
      115,
      101,
      111,
      98,
      97,
      115,
      101,
      115,
      112,
      111,
      99,
      111,
      115,
      109,
      105,
      116,
      97,
      100,
      99,
      105,
      101,
      108,
      111,
      99,
      104,
      105,
      99,
      111,
      109,
      105,
      101,
      100,
      111,
      103,
      97,
      110,
      97,
      114,
      115,
      97,
      110,
      116,
      111,
      101,
      116,
      97,
      112,
      97,
      100,
      101,
      98,
      101,
      115,
      112,
      108,
      97,
      121,
      97,
      114,
      101,
      100,
      101,
      115,
      115,
      105,
      101,
      116,
      101,
      99,
      111,
      114,
      116,
      101,
      99,
      111,
      114,
      101,
      97,
      100,
      117,
      100,
      97,
      115,
      100,
      101,
      115,
      101,
      111,
      118,
      105,
      101,
      106,
      111,
      100,
      101,
      115,
      101,
      97,
      97,
      103,
      117,
      97,
      115,
      38,
      113,
      117,
      111,
      116,
      59,
      100,
      111,
      109,
      97,
      105,
      110,
      99,
      111,
      109,
      109,
      111,
      110,
      115,
      116,
      97,
      116,
      117,
      115,
      101,
      118,
      101,
      110,
      116,
      115,
      109,
      97,
      115,
      116,
      101,
      114,
      115,
      121,
      115,
      116,
      101,
      109,
      97,
      99,
      116,
      105,
      111,
      110,
      98,
      97,
      110,
      110,
      101,
      114,
      114,
      101,
      109,
      111,
      118,
      101,
      115,
      99,
      114,
      111,
      108,
      108,
      117,
      112,
      100,
      97,
      116,
      101,
      103,
      108,
      111,
      98,
      97,
      108,
      109,
      101,
      100,
      105,
      117,
      109,
      102,
      105,
      108,
      116,
      101,
      114,
      110,
      117,
      109,
      98,
      101,
      114,
      99,
      104,
      97,
      110,
      103,
      101,
      114,
      101,
      115,
      117,
      108,
      116,
      112,
      117,
      98,
      108,
      105,
      99,
      115,
      99,
      114,
      101,
      101,
      110,
      99,
      104,
      111,
      111,
      115,
      101,
      110,
      111,
      114,
      109,
      97,
      108,
      116,
      114,
      97,
      118,
      101,
      108,
      105,
      115,
      115,
      117,
      101,
      115,
      115,
      111,
      117,
      114,
      99,
      101,
      116,
      97,
      114,
      103,
      101,
      116,
      115,
      112,
      114,
      105,
      110,
      103,
      109,
      111,
      100,
      117,
      108,
      101,
      109,
      111,
      98,
      105,
      108,
      101,
      115,
      119,
      105,
      116,
      99,
      104,
      112,
      104,
      111,
      116,
      111,
      115,
      98,
      111,
      114,
      100,
      101,
      114,
      114,
      101,
      103,
      105,
      111,
      110,
      105,
      116,
      115,
      101,
      108,
      102,
      115,
      111,
      99,
      105,
      97,
      108,
      97,
      99,
      116,
      105,
      118,
      101,
      99,
      111,
      108,
      117,
      109,
      110,
      114,
      101,
      99,
      111,
      114,
      100,
      102,
      111,
      108,
      108,
      111,
      119,
      116,
      105,
      116,
      108,
      101,
      62,
      101,
      105,
      116,
      104,
      101,
      114,
      108,
      101,
      110,
      103,
      116,
      104,
      102,
      97,
      109,
      105,
      108,
      121,
      102,
      114,
      105,
      101,
      110,
      100,
      108,
      97,
      121,
      111,
      117,
      116,
      97,
      117,
      116,
      104,
      111,
      114,
      99,
      114,
      101,
      97,
      116,
      101,
      114,
      101,
      118,
      105,
      101,
      119,
      115,
      117,
      109,
      109,
      101,
      114,
      115,
      101,
      114,
      118,
      101,
      114,
      112,
      108,
      97,
      121,
      101,
      100,
      112,
      108,
      97,
      121,
      101,
      114,
      101,
      120,
      112,
      97,
      110,
      100,
      112,
      111,
      108,
      105,
      99,
      121,
      102,
      111,
      114,
      109,
      97,
      116,
      100,
      111,
      117,
      98,
      108,
      101,
      112,
      111,
      105,
      110,
      116,
      115,
      115,
      101,
      114,
      105,
      101,
      115,
      112,
      101,
      114,
      115,
      111,
      110,
      108,
      105,
      118,
      105,
      110,
      103,
      100,
      101,
      115,
      105,
      103,
      110,
      109,
      111,
      110,
      116,
      104,
      115,
      102,
      111,
      114,
      99,
      101,
      115,
      117,
      110,
      105,
      113,
      117,
      101,
      119,
      101,
      105,
      103,
      104,
      116,
      112,
      101,
      111,
      112,
      108,
      101,
      101,
      110,
      101,
      114,
      103,
      121,
      110,
      97,
      116,
      117,
      114,
      101,
      115,
      101,
      97,
      114,
      99,
      104,
      102,
      105,
      103,
      117,
      114,
      101,
      104,
      97,
      118,
      105,
      110,
      103,
      99,
      117,
      115,
      116,
      111,
      109,
      111,
      102,
      102,
      115,
      101,
      116,
      108,
      101,
      116,
      116,
      101,
      114,
      119,
      105,
      110,
      100,
      111,
      119,
      115,
      117,
      98,
      109,
      105,
      116,
      114,
      101,
      110,
      100,
      101,
      114,
      103,
      114,
      111,
      117,
      112,
      115,
      117,
      112,
      108,
      111,
      97,
      100,
      104,
      101,
      97,
      108,
      116,
      104,
      109,
      101,
      116,
      104,
      111,
      100,
      118,
      105,
      100,
      101,
      111,
      115,
      115,
      99,
      104,
      111,
      111,
      108,
      102,
      117,
      116,
      117,
      114,
      101,
      115,
      104,
      97,
      100,
      111,
      119,
      100,
      101,
      98,
      97,
      116,
      101,
      118,
      97,
      108,
      117,
      101,
      115,
      79,
      98,
      106,
      101,
      99,
      116,
      111,
      116,
      104,
      101,
      114,
      115,
      114,
      105,
      103,
      104,
      116,
      115,
      108,
      101,
      97,
      103,
      117,
      101,
      99,
      104,
      114,
      111,
      109,
      101,
      115,
      105,
      109,
      112,
      108,
      101,
      110,
      111,
      116,
      105,
      99,
      101,
      115,
      104,
      97,
      114,
      101,
      100,
      101,
      110,
      100,
      105,
      110,
      103,
      115,
      101,
      97,
      115,
      111,
      110,
      114,
      101,
      112,
      111,
      114,
      116,
      111,
      110,
      108,
      105,
      110,
      101,
      115,
      113,
      117,
      97,
      114,
      101,
      98,
      117,
      116,
      116,
      111,
      110,
      105,
      109,
      97,
      103,
      101,
      115,
      101,
      110,
      97,
      98,
      108,
      101,
      109,
      111,
      118,
      105,
      110,
      103,
      108,
      97,
      116,
      101,
      115,
      116,
      119,
      105,
      110,
      116,
      101,
      114,
      70,
      114,
      97,
      110,
      99,
      101,
      112,
      101,
      114,
      105,
      111,
      100,
      115,
      116,
      114,
      111,
      110,
      103,
      114,
      101,
      112,
      101,
      97,
      116,
      76,
      111,
      110,
      100,
      111,
      110,
      100,
      101,
      116,
      97,
      105,
      108,
      102,
      111,
      114,
      109,
      101,
      100,
      100,
      101,
      109,
      97,
      110,
      100,
      115,
      101,
      99,
      117,
      114,
      101,
      112,
      97,
      115,
      115,
      101,
      100,
      116,
      111,
      103,
      103,
      108,
      101,
      112,
      108,
      97,
      99,
      101,
      115,
      100,
      101,
      118,
      105,
      99,
      101,
      115,
      116,
      97,
      116,
      105,
      99,
      99,
      105,
      116,
      105,
      101,
      115,
      115,
      116,
      114,
      101,
      97,
      109,
      121,
      101,
      108,
      108,
      111,
      119,
      97,
      116,
      116,
      97,
      99,
      107,
      115,
      116,
      114,
      101,
      101,
      116,
      102,
      108,
      105,
      103,
      104,
      116,
      104,
      105,
      100,
      100,
      101,
      110,
      105,
      110,
      102,
      111,
      34,
      62,
      111,
      112,
      101,
      110,
      101,
      100,
      117,
      115,
      101,
      102,
      117,
      108,
      118,
      97,
      108,
      108,
      101,
      121,
      99,
      97,
      117,
      115,
      101,
      115,
      108,
      101,
      97,
      100,
      101,
      114,
      115,
      101,
      99,
      114,
      101,
      116,
      115,
      101,
      99,
      111,
      110,
      100,
      100,
      97,
      109,
      97,
      103,
      101,
      115,
      112,
      111,
      114,
      116,
      115,
      101,
      120,
      99,
      101,
      112,
      116,
      114,
      97,
      116,
      105,
      110,
      103,
      115,
      105,
      103,
      110,
      101,
      100,
      116,
      104,
      105,
      110,
      103,
      115,
      101,
      102,
      102,
      101,
      99,
      116,
      102,
      105,
      101,
      108,
      100,
      115,
      115,
      116,
      97,
      116,
      101,
      115,
      111,
      102,
      102,
      105,
      99,
      101,
      118,
      105,
      115,
      117,
      97,
      108,
      101,
      100,
      105,
      116,
      111,
      114,
      118,
      111,
      108,
      117,
      109,
      101,
      82,
      101,
      112,
      111,
      114,
      116,
      109,
      117,
      115,
      101,
      117,
      109,
      109,
      111,
      118,
      105,
      101,
      115,
      112,
      97,
      114,
      101,
      110,
      116,
      97,
      99,
      99,
      101,
      115,
      115,
      109,
      111,
      115,
      116,
      108,
      121,
      109,
      111,
      116,
      104,
      101,
      114,
      34,
      32,
      105,
      100,
      61,
      34,
      109,
      97,
      114,
      107,
      101,
      116,
      103,
      114,
      111,
      117,
      110,
      100,
      99,
      104,
      97,
      110,
      99,
      101,
      115,
      117,
      114,
      118,
      101,
      121,
      98,
      101,
      102,
      111,
      114,
      101,
      115,
      121,
      109,
      98,
      111,
      108,
      109,
      111,
      109,
      101,
      110,
      116,
      115,
      112,
      101,
      101,
      99,
      104,
      109,
      111,
      116,
      105,
      111,
      110,
      105,
      110,
      115,
      105,
      100,
      101,
      109,
      97,
      116,
      116,
      101,
      114,
      67,
      101,
      110,
      116,
      101,
      114,
      111,
      98,
      106,
      101,
      99,
      116,
      101,
      120,
      105,
      115,
      116,
      115,
      109,
      105,
      100,
      100,
      108,
      101,
      69,
      117,
      114,
      111,
      112,
      101,
      103,
      114,
      111,
      119,
      116,
      104,
      108,
      101,
      103,
      97,
      99,
      121,
      109,
      97,
      110,
      110,
      101,
      114,
      101,
      110,
      111,
      117,
      103,
      104,
      99,
      97,
      114,
      101,
      101,
      114,
      97,
      110,
      115,
      119,
      101,
      114,
      111,
      114,
      105,
      103,
      105,
      110,
      112,
      111,
      114,
      116,
      97,
      108,
      99,
      108,
      105,
      101,
      110,
      116,
      115,
      101,
      108,
      101,
      99,
      116,
      114,
      97,
      110,
      100,
      111,
      109,
      99,
      108,
      111,
      115,
      101,
      100,
      116,
      111,
      112,
      105,
      99,
      115,
      99,
      111,
      109,
      105,
      110,
      103,
      102,
      97,
      116,
      104,
      101,
      114,
      111,
      112,
      116,
      105,
      111,
      110,
      115,
      105,
      109,
      112,
      108,
      121,
      114,
      97,
      105,
      115,
      101,
      100,
      101,
      115,
      99,
      97,
      112,
      101,
      99,
      104,
      111,
      115,
      101,
      110,
      99,
      104,
      117,
      114,
      99,
      104,
      100,
      101,
      102,
      105,
      110,
      101,
      114,
      101,
      97,
      115,
      111,
      110,
      99,
      111,
      114,
      110,
      101,
      114,
      111,
      117,
      116,
      112,
      117,
      116,
      109,
      101,
      109,
      111,
      114,
      121,
      105,
      102,
      114,
      97,
      109,
      101,
      112,
      111,
      108,
      105,
      99,
      101,
      109,
      111,
      100,
      101,
      108,
      115,
      78,
      117,
      109,
      98,
      101,
      114,
      100,
      117,
      114,
      105,
      110,
      103,
      111,
      102,
      102,
      101,
      114,
      115,
      115,
      116,
      121,
      108,
      101,
      115,
      107,
      105,
      108,
      108,
      101,
      100,
      108,
      105,
      115,
      116,
      101,
      100,
      99,
      97,
      108,
      108,
      101,
      100,
      115,
      105,
      108,
      118,
      101,
      114,
      109,
      97,
      114,
      103,
      105,
      110,
      100,
      101,
      108,
      101,
      116,
      101,
      98,
      101,
      116,
      116,
      101,
      114,
      98,
      114,
      111,
      119,
      115,
      101,
      108,
      105,
      109,
      105,
      116,
      115,
      71,
      108,
      111,
      98,
      97,
      108,
      115,
      105,
      110,
      103,
      108,
      101,
      119,
      105,
      100,
      103,
      101,
      116,
      99,
      101,
      110,
      116,
      101,
      114,
      98,
      117,
      100,
      103,
      101,
      116,
      110,
      111,
      119,
      114,
      97,
      112,
      99,
      114,
      101,
      100,
      105,
      116,
      99,
      108,
      97,
      105,
      109,
      115,
      101,
      110,
      103,
      105,
      110,
      101,
      115,
      97,
      102,
      101,
      116,
      121,
      99,
      104,
      111,
      105,
      99,
      101,
      115,
      112,
      105,
      114,
      105,
      116,
      45,
      115,
      116,
      121,
      108,
      101,
      115,
      112,
      114,
      101,
      97,
      100,
      109,
      97,
      107,
      105,
      110,
      103,
      110,
      101,
      101,
      100,
      101,
      100,
      114,
      117,
      115,
      115,
      105,
      97,
      112,
      108,
      101,
      97,
      115,
      101,
      101,
      120,
      116,
      101,
      110,
      116,
      83,
      99,
      114,
      105,
      112,
      116,
      98,
      114,
      111,
      107,
      101,
      110,
      97,
      108,
      108,
      111,
      119,
      115,
      99,
      104,
      97,
      114,
      103,
      101,
      100,
      105,
      118,
      105,
      100,
      101,
      102,
      97,
      99,
      116,
      111,
      114,
      109,
      101,
      109,
      98,
      101,
      114,
      45,
      98,
      97,
      115,
      101,
      100,
      116,
      104,
      101,
      111,
      114,
      121,
      99,
      111,
      110,
      102,
      105,
      103,
      97,
      114,
      111,
      117,
      110,
      100,
      119,
      111,
      114,
      107,
      101,
      100,
      104,
      101,
      108,
      112,
      101,
      100,
      67,
      104,
      117,
      114,
      99,
      104,
      105,
      109,
      112,
      97,
      99,
      116,
      115,
      104,
      111,
      117,
      108,
      100,
      97,
      108,
      119,
      97,
      121,
      115,
      108,
      111,
      103,
      111,
      34,
      32,
      98,
      111,
      116,
      116,
      111,
      109,
      108,
      105,
      115,
      116,
      34,
      62,
      41,
      123,
      118,
      97,
      114,
      32,
      112,
      114,
      101,
      102,
      105,
      120,
      111,
      114,
      97,
      110,
      103,
      101,
      72,
      101,
      97,
      100,
      101,
      114,
      46,
      112,
      117,
      115,
      104,
      40,
      99,
      111,
      117,
      112,
      108,
      101,
      103,
      97,
      114,
      100,
      101,
      110,
      98,
      114,
      105,
      100,
      103,
      101,
      108,
      97,
      117,
      110,
      99,
      104,
      82,
      101,
      118,
      105,
      101,
      119,
      116,
      97,
      107,
      105,
      110,
      103,
      118,
      105,
      115,
      105,
      111,
      110,
      108,
      105,
      116,
      116,
      108,
      101,
      100,
      97,
      116,
      105,
      110,
      103,
      66,
      117,
      116,
      116,
      111,
      110,
      98,
      101,
      97,
      117,
      116,
      121,
      116,
      104,
      101,
      109,
      101,
      115,
      102,
      111,
      114,
      103,
      111,
      116,
      83,
      101,
      97,
      114,
      99,
      104,
      97,
      110,
      99,
      104,
      111,
      114,
      97,
      108,
      109,
      111,
      115,
      116,
      108,
      111,
      97,
      100,
      101,
      100,
      67,
      104,
      97,
      110,
      103,
      101,
      114,
      101,
      116,
      117,
      114,
      110,
      115,
      116,
      114,
      105,
      110,
      103,
      114,
      101,
      108,
      111,
      97,
      100,
      77,
      111,
      98,
      105,
      108,
      101,
      105,
      110,
      99,
      111,
      109,
      101,
      115,
      117,
      112,
      112,
      108,
      121,
      83,
      111,
      117,
      114,
      99,
      101,
      111,
      114,
      100,
      101,
      114,
      115,
      118,
      105,
      101,
      119,
      101,
      100,
      38,
      110,
      98,
      115,
      112,
      59,
      99,
      111,
      117,
      114,
      115,
      101,
      65,
      98,
      111,
      117,
      116,
      32,
      105,
      115,
      108,
      97,
      110,
      100,
      60,
      104,
      116,
      109,
      108,
      32,
      99,
      111,
      111,
      107,
      105,
      101,
      110,
      97,
      109,
      101,
      61,
      34,
      97,
      109,
      97,
      122,
      111,
      110,
      109,
      111,
      100,
      101,
      114,
      110,
      97,
      100,
      118,
      105,
      99,
      101,
      105,
      110,
      60,
      47,
      97,
      62,
      58,
      32,
      84,
      104,
      101,
      32,
      100,
      105,
      97,
      108,
      111,
      103,
      104,
      111,
      117,
      115,
      101,
      115,
      66,
      69,
      71,
      73,
      78,
      32,
      77,
      101,
      120,
      105,
      99,
      111,
      115,
      116,
      97,
      114,
      116,
      115,
      99,
      101,
      110,
      116,
      114,
      101,
      104,
      101,
      105,
      103,
      104,
      116,
      97,
      100,
      100,
      105,
      110,
      103,
      73,
      115,
      108,
      97,
      110,
      100,
      97,
      115,
      115,
      101,
      116,
      115,
      69,
      109,
      112,
      105,
      114,
      101,
      83,
      99,
      104,
      111,
      111,
      108,
      101,
      102,
      102,
      111,
      114,
      116,
      100,
      105,
      114,
      101,
      99,
      116,
      110,
      101,
      97,
      114,
      108,
      121,
      109,
      97,
      110,
      117,
      97,
      108,
      83,
      101,
      108,
      101,
      99,
      116,
      46,
      10,
      10,
      79,
      110,
      101,
      106,
      111,
      105,
      110,
      101,
      100,
      109,
      101,
      110,
      117,
      34,
      62,
      80,
      104,
      105,
      108,
      105,
      112,
      97,
      119,
      97,
      114,
      100,
      115,
      104,
      97,
      110,
      100,
      108,
      101,
      105,
      109,
      112,
      111,
      114,
      116,
      79,
      102,
      102,
      105,
      99,
      101,
      114,
      101,
      103,
      97,
      114,
      100,
      115,
      107,
      105,
      108,
      108,
      115,
      110,
      97,
      116,
      105,
      111,
      110,
      83,
      112,
      111,
      114,
      116,
      115,
      100,
      101,
      103,
      114,
      101,
      101,
      119,
      101,
      101,
      107,
      108,
      121,
      32,
      40,
      101,
      46,
      103,
      46,
      98,
      101,
      104,
      105,
      110,
      100,
      100,
      111,
      99,
      116,
      111,
      114,
      108,
      111,
      103,
      103,
      101,
      100,
      117,
      110,
      105,
      116,
      101,
      100,
      60,
      47,
      98,
      62,
      60,
      47,
      98,
      101,
      103,
      105,
      110,
      115,
      112,
      108,
      97,
      110,
      116,
      115,
      97,
      115,
      115,
      105,
      115,
      116,
      97,
      114,
      116,
      105,
      115,
      116,
      105,
      115,
      115,
      117,
      101,
      100,
      51,
      48,
      48,
      112,
      120,
      124,
      99,
      97,
      110,
      97,
      100,
      97,
      97,
      103,
      101,
      110,
      99,
      121,
      115,
      99,
      104,
      101,
      109,
      101,
      114,
      101,
      109,
      97,
      105,
      110,
      66,
      114,
      97,
      122,
      105,
      108,
      115,
      97,
      109,
      112,
      108,
      101,
      108,
      111,
      103,
      111,
      34,
      62,
      98,
      101,
      121,
      111,
      110,
      100,
      45,
      115,
      99,
      97,
      108,
      101,
      97,
      99,
      99,
      101,
      112,
      116,
      115,
      101,
      114,
      118,
      101,
      100,
      109,
      97,
      114,
      105,
      110,
      101,
      70,
      111,
      111,
      116,
      101,
      114,
      99,
      97,
      109,
      101,
      114,
      97,
      60,
      47,
      104,
      49,
      62,
      10,
      95,
      102,
      111,
      114,
      109,
      34,
      108,
      101,
      97,
      118,
      101,
      115,
      115,
      116,
      114,
      101,
      115,
      115,
      34,
      32,
      47,
      62,
      13,
      10,
      46,
      103,
      105,
      102,
      34,
      32,
      111,
      110,
      108,
      111,
      97,
      100,
      108,
      111,
      97,
      100,
      101,
      114,
      79,
      120,
      102,
      111,
      114,
      100,
      115,
      105,
      115,
      116,
      101,
      114,
      115,
      117,
      114,
      118,
      105,
      118,
      108,
      105,
      115,
      116,
      101,
      110,
      102,
      101,
      109,
      97,
      108,
      101,
      68,
      101,
      115,
      105,
      103,
      110,
      115,
      105,
      122,
      101,
      61,
      34,
      97,
      112,
      112,
      101,
      97,
      108,
      116,
      101,
      120,
      116,
      34,
      62,
      108,
      101,
      118,
      101,
      108,
      115,
      116,
      104,
      97,
      110,
      107,
      115,
      104,
      105,
      103,
      104,
      101,
      114,
      102,
      111,
      114,
      99,
      101,
      100,
      97,
      110,
      105,
      109,
      97,
      108,
      97,
      110,
      121,
      111,
      110,
      101,
      65,
      102,
      114,
      105,
      99,
      97,
      97,
      103,
      114,
      101,
      101,
      100,
      114,
      101,
      99,
      101,
      110,
      116,
      80,
      101,
      111,
      112,
      108,
      101,
      60,
      98,
      114,
      32,
      47,
      62,
      119,
      111,
      110,
      100,
      101,
      114,
      112,
      114,
      105,
      99,
      101,
      115,
      116,
      117,
      114,
      110,
      101,
      100,
      124,
      124,
      32,
      123,
      125,
      59,
      109,
      97,
      105,
      110,
      34,
      62,
      105,
      110,
      108,
      105,
      110,
      101,
      115,
      117,
      110,
      100,
      97,
      121,
      119,
      114,
      97,
      112,
      34,
      62,
      102,
      97,
      105,
      108,
      101,
      100,
      99,
      101,
      110,
      115,
      117,
      115,
      109,
      105,
      110,
      117,
      116,
      101,
      98,
      101,
      97,
      99,
      111,
      110,
      113,
      117,
      111,
      116,
      101,
      115,
      49,
      53,
      48,
      112,
      120,
      124,
      101,
      115,
      116,
      97,
      116,
      101,
      114,
      101,
      109,
      111,
      116,
      101,
      101,
      109,
      97,
      105,
      108,
      34,
      108,
      105,
      110,
      107,
      101,
      100,
      114,
      105,
      103,
      104,
      116,
      59,
      115,
      105,
      103,
      110,
      97,
      108,
      102,
      111,
      114,
      109,
      97,
      108,
      49,
      46,
      104,
      116,
      109,
      108,
      115,
      105,
      103,
      110,
      117,
      112,
      112,
      114,
      105,
      110,
      99,
      101,
      102,
      108,
      111,
      97,
      116,
      58,
      46,
      112,
      110,
      103,
      34,
      32,
      102,
      111,
      114,
      117,
      109,
      46,
      65,
      99,
      99,
      101,
      115,
      115,
      112,
      97,
      112,
      101,
      114,
      115,
      115,
      111,
      117,
      110,
      100,
      115,
      101,
      120,
      116,
      101,
      110,
      100,
      72,
      101,
      105,
      103,
      104,
      116,
      115,
      108,
      105,
      100,
      101,
      114,
      85,
      84,
      70,
      45,
      56,
      34,
      38,
      97,
      109,
      112,
      59,
      32,
      66,
      101,
      102,
      111,
      114,
      101,
      46,
      32,
      87,
      105,
      116,
      104,
      115,
      116,
      117,
      100,
      105,
      111,
      111,
      119,
      110,
      101,
      114,
      115,
      109,
      97,
      110,
      97,
      103,
      101,
      112,
      114,
      111,
      102,
      105,
      116,
      106,
      81,
      117,
      101,
      114,
      121,
      97,
      110,
      110,
      117,
      97,
      108,
      112,
      97,
      114,
      97,
      109,
      115,
      98,
      111,
      117,
      103,
      104,
      116,
      102,
      97,
      109,
      111,
      117,
      115,
      103,
      111,
      111,
      103,
      108,
      101,
      108,
      111,
      110,
      103,
      101,
      114,
      105,
      43,
      43,
      41,
      32,
      123,
      105,
      115,
      114,
      97,
      101,
      108,
      115,
      97,
      121,
      105,
      110,
      103,
      100,
      101,
      99,
      105,
      100,
      101,
      104,
      111,
      109,
      101,
      34,
      62,
      104,
      101,
      97,
      100,
      101,
      114,
      101,
      110,
      115,
      117,
      114,
      101,
      98,
      114,
      97,
      110,
      99,
      104,
      112,
      105,
      101,
      99,
      101,
      115,
      98,
      108,
      111,
      99,
      107,
      59,
      115,
      116,
      97,
      116,
      101,
      100,
      116,
      111,
      112,
      34,
      62,
      60,
      114,
      97,
      99,
      105,
      110,
      103,
      114,
      101,
      115,
      105,
      122,
      101,
      45,
      45,
      38,
      103,
      116,
      59,
      112,
      97,
      99,
      105,
      116,
      121,
      115,
      101,
      120,
      117,
      97,
      108,
      98,
      117,
      114,
      101,
      97,
      117,
      46,
      106,
      112,
      103,
      34,
      32,
      49,
      48,
      44,
      48,
      48,
      48,
      111,
      98,
      116,
      97,
      105,
      110,
      116,
      105,
      116,
      108,
      101,
      115,
      97,
      109,
      111,
      117,
      110,
      116,
      44,
      32,
      73,
      110,
      99,
      46,
      99,
      111,
      109,
      101,
      100,
      121,
      109,
      101,
      110,
      117,
      34,
      32,
      108,
      121,
      114,
      105,
      99,
      115,
      116,
      111,
      100,
      97,
      121,
      46,
      105,
      110,
      100,
      101,
      101,
      100,
      99,
      111,
      117,
      110,
      116,
      121,
      95,
      108,
      111,
      103,
      111,
      46,
      70,
      97,
      109,
      105,
      108,
      121,
      108,
      111,
      111,
      107,
      101,
      100,
      77,
      97,
      114,
      107,
      101,
      116,
      108,
      115,
      101,
      32,
      105,
      102,
      80,
      108,
      97,
      121,
      101,
      114,
      116,
      117,
      114,
      107,
      101,
      121,
      41,
      59,
      118,
      97,
      114,
      32,
      102,
      111,
      114,
      101,
      115,
      116,
      103,
      105,
      118,
      105,
      110,
      103,
      101,
      114,
      114,
      111,
      114,
      115,
      68,
      111,
      109,
      97,
      105,
      110,
      125,
      101,
      108,
      115,
      101,
      123,
      105,
      110,
      115,
      101,
      114,
      116,
      66,
      108,
      111,
      103,
      60,
      47,
      102,
      111,
      111,
      116,
      101,
      114,
      108,
      111,
      103,
      105,
      110,
      46,
      102,
      97,
      115,
      116,
      101,
      114,
      97,
      103,
      101,
      110,
      116,
      115,
      60,
      98,
      111,
      100,
      121,
      32,
      49,
      48,
      112,
      120,
      32,
      48,
      112,
      114,
      97,
      103,
      109,
      97,
      102,
      114,
      105,
      100,
      97,
      121,
      106,
      117,
      110,
      105,
      111,
      114,
      100,
      111,
      108,
      108,
      97,
      114,
      112,
      108,
      97,
      99,
      101,
      100,
      99,
      111,
      118,
      101,
      114,
      115,
      112,
      108,
      117,
      103,
      105,
      110,
      53,
      44,
      48,
      48,
      48,
      32,
      112,
      97,
      103,
      101,
      34,
      62,
      98,
      111,
      115,
      116,
      111,
      110,
      46,
      116,
      101,
      115,
      116,
      40,
      97,
      118,
      97,
      116,
      97,
      114,
      116,
      101,
      115,
      116,
      101,
      100,
      95,
      99,
      111,
      117,
      110,
      116,
      102,
      111,
      114,
      117,
      109,
      115,
      115,
      99,
      104,
      101,
      109,
      97,
      105,
      110,
      100,
      101,
      120,
      44,
      102,
      105,
      108,
      108,
      101,
      100,
      115,
      104,
      97,
      114,
      101,
      115,
      114,
      101,
      97,
      100,
      101,
      114,
      97,
      108,
      101,
      114,
      116,
      40,
      97,
      112,
      112,
      101,
      97,
      114,
      83,
      117,
      98,
      109,
      105,
      116,
      108,
      105,
      110,
      101,
      34,
      62,
      98,
      111,
      100,
      121,
      34,
      62,
      10,
      42,
      32,
      84,
      104,
      101,
      84,
      104,
      111,
      117,
      103,
      104,
      115,
      101,
      101,
      105,
      110,
      103,
      106,
      101,
      114,
      115,
      101,
      121,
      78,
      101,
      119,
      115,
      60,
      47,
      118,
      101,
      114,
      105,
      102,
      121,
      101,
      120,
      112,
      101,
      114,
      116,
      105,
      110,
      106,
      117,
      114,
      121,
      119,
      105,
      100,
      116,
      104,
      61,
      67,
      111,
      111,
      107,
      105,
      101,
      83,
      84,
      65,
      82,
      84,
      32,
      97,
      99,
      114,
      111,
      115,
      115,
      95,
      105,
      109,
      97,
      103,
      101,
      116,
      104,
      114,
      101,
      97,
      100,
      110,
      97,
      116,
      105,
      118,
      101,
      112,
      111,
      99,
      107,
      101,
      116,
      98,
      111,
      120,
      34,
      62,
      10,
      83,
      121,
      115,
      116,
      101,
      109,
      32,
      68,
      97,
      118,
      105,
      100,
      99,
      97,
      110,
      99,
      101,
      114,
      116,
      97,
      98,
      108,
      101,
      115,
      112,
      114,
      111,
      118,
      101,
      100,
      65,
      112,
      114,
      105,
      108,
      32,
      114,
      101,
      97,
      108,
      108,
      121,
      100,
      114,
      105,
      118,
      101,
      114,
      105,
      116,
      101,
      109,
      34,
      62,
      109,
      111,
      114,
      101,
      34,
      62,
      98,
      111,
      97,
      114,
      100,
      115,
      99,
      111,
      108,
      111,
      114,
      115,
      99,
      97,
      109,
      112,
      117,
      115,
      102,
      105,
      114,
      115,
      116,
      32,
      124,
      124,
      32,
      91,
      93,
      59,
      109,
      101,
      100,
      105,
      97,
      46,
      103,
      117,
      105,
      116,
      97,
      114,
      102,
      105,
      110,
      105,
      115,
      104,
      119,
      105,
      100,
      116,
      104,
      58,
      115,
      104,
      111,
      119,
      101,
      100,
      79,
      116,
      104,
      101,
      114,
      32,
      46,
      112,
      104,
      112,
      34,
      32,
      97,
      115,
      115,
      117,
      109,
      101,
      108,
      97,
      121,
      101,
      114,
      115,
      119,
      105,
      108,
      115,
      111,
      110,
      115,
      116,
      111,
      114,
      101,
      115,
      114,
      101,
      108,
      105,
      101,
      102,
      115,
      119,
      101,
      100,
      101,
      110,
      67,
      117,
      115,
      116,
      111,
      109,
      101,
      97,
      115,
      105,
      108,
      121,
      32,
      121,
      111,
      117,
      114,
      32,
      83,
      116,
      114,
      105,
      110,
      103,
      10,
      10,
      87,
      104,
      105,
      108,
      116,
      97,
      121,
      108,
      111,
      114,
      99,
      108,
      101,
      97,
      114,
      58,
      114,
      101,
      115,
      111,
      114,
      116,
      102,
      114,
      101,
      110,
      99,
      104,
      116,
      104,
      111,
      117,
      103,
      104,
      34,
      41,
      32,
      43,
      32,
      34,
      60,
      98,
      111,
      100,
      121,
      62,
      98,
      117,
      121,
      105,
      110,
      103,
      98,
      114,
      97,
      110,
      100,
      115,
      77,
      101,
      109,
      98,
      101,
      114,
      110,
      97,
      109,
      101,
      34,
      62,
      111,
      112,
      112,
      105,
      110,
      103,
      115,
      101,
      99,
      116,
      111,
      114,
      53,
      112,
      120,
      59,
      34,
      62,
      118,
      115,
      112,
      97,
      99,
      101,
      112,
      111,
      115,
      116,
      101,
      114,
      109,
      97,
      106,
      111,
      114,
      32,
      99,
      111,
      102,
      102,
      101,
      101,
      109,
      97,
      114,
      116,
      105,
      110,
      109,
      97,
      116,
      117,
      114,
      101,
      104,
      97,
      112,
      112,
      101,
      110,
      60,
      47,
      110,
      97,
      118,
      62,
      107,
      97,
      110,
      115,
      97,
      115,
      108,
      105,
      110,
      107,
      34,
      62,
      73,
      109,
      97,
      103,
      101,
      115,
      61,
      102,
      97,
      108,
      115,
      101,
      119,
      104,
      105,
      108,
      101,
      32,
      104,
      115,
      112,
      97,
      99,
      101,
      48,
      38,
      97,
      109,
      112,
      59,
      32,
      10,
      10,
      73,
      110,
      32,
      32,
      112,
      111,
      119,
      101,
      114,
      80,
      111,
      108,
      115,
      107,
      105,
      45,
      99,
      111,
      108,
      111,
      114,
      106,
      111,
      114,
      100,
      97,
      110,
      66,
      111,
      116,
      116,
      111,
      109,
      83,
      116,
      97,
      114,
      116,
      32,
      45,
      99,
      111,
      117,
      110,
      116,
      50,
      46,
      104,
      116,
      109,
      108,
      110,
      101,
      119,
      115,
      34,
      62,
      48,
      49,
      46,
      106,
      112,
      103,
      79,
      110,
      108,
      105,
      110,
      101,
      45,
      114,
      105,
      103,
      104,
      116,
      109,
      105,
      108,
      108,
      101,
      114,
      115,
      101,
      110,
      105,
      111,
      114,
      73,
      83,
      66,
      78,
      32,
      48,
      48,
      44,
      48,
      48,
      48,
      32,
      103,
      117,
      105,
      100,
      101,
      115,
      118,
      97,
      108,
      117,
      101,
      41,
      101,
      99,
      116,
      105,
      111,
      110,
      114,
      101,
      112,
      97,
      105,
      114,
      46,
      120,
      109,
      108,
      34,
      32,
      32,
      114,
      105,
      103,
      104,
      116,
      115,
      46,
      104,
      116,
      109,
      108,
      45,
      98,
      108,
      111,
      99,
      107,
      114,
      101,
      103,
      69,
      120,
      112,
      58,
      104,
      111,
      118,
      101,
      114,
      119,
      105,
      116,
      104,
      105,
      110,
      118,
      105,
      114,
      103,
      105,
      110,
      112,
      104,
      111,
      110,
      101,
      115,
      60,
      47,
      116,
      114,
      62,
      13,
      117,
      115,
      105,
      110,
      103,
      32,
      10,
      9,
      118,
      97,
      114,
      32,
      62,
      39,
      41,
      59,
      10,
      9,
      60,
      47,
      116,
      100,
      62,
      10,
      60,
      47,
      116,
      114,
      62,
      10,
      98,
      97,
      104,
      97,
      115,
      97,
      98,
      114,
      97,
      115,
      105,
      108,
      103,
      97,
      108,
      101,
      103,
      111,
      109,
      97,
      103,
      121,
      97,
      114,
      112,
      111,
      108,
      115,
      107,
      105,
      115,
      114,
      112,
      115,
      107,
      105,
      216,
      177,
      216,
      175,
      217,
      136,
      228,
      184,
      173,
      230,
      150,
      135,
      231,
      174,
      128,
      228,
      189,
      147,
      231,
      185,
      129,
      233,
      171,
      148,
      228,
      191,
      161,
      230,
      129,
      175,
      228,
      184,
      173,
      229,
      155,
      189,
      230,
      136,
      145,
      228,
      187,
      172,
      228,
      184,
      128,
      228,
      184,
      170,
      229,
      133,
      172,
      229,
      143,
      184,
      231,
      174,
      161,
      231,
      144,
      134,
      232,
      174,
      186,
      229,
      157,
      155,
      229,
      143,
      175,
      228,
      187,
      165,
      230,
      156,
      141,
      229,
      138,
      161,
      230,
      151,
      182,
      233,
      151,
      180,
      228,
      184,
      170,
      228,
      186,
      186,
      228,
      186,
      167,
      229,
      147,
      129,
      232,
      135,
      170,
      229,
      183,
      177,
      228,
      188,
      129,
      228,
      184,
      154,
      230,
      159,
      165,
      231,
      156,
      139,
      229,
      183,
      165,
      228,
      189,
      156,
      232,
      129,
      148,
      231,
      179,
      187,
      230,
      178,
      161,
      230,
      156,
      137,
      231,
      189,
      145,
      231,
      171,
      153,
      230,
      137,
      128,
      230,
      156,
      137,
      232,
      175,
      132,
      232,
      174,
      186,
      228,
      184,
      173,
      229,
      191,
      131,
      230,
      150,
      135,
      231,
      171,
      160,
      231,
      148,
      168,
      230,
      136,
      183,
      233,
      166,
      150,
      233,
      161,
      181,
      228,
      189,
      156,
      232,
      128,
      133,
      230,
      138,
      128,
      230,
      156,
      175,
      233,
      151,
      174,
      233,
      162,
      152,
      231,
      155,
      184,
      229,
      133,
      179,
      228,
      184,
      139,
      232,
      189,
      189,
      230,
      144,
      156,
      231,
      180,
      162,
      228,
      189,
      191,
      231,
      148,
      168,
      232,
      189,
      175,
      228,
      187,
      182,
      229,
      156,
      168,
      231,
      186,
      191,
      228,
      184,
      187,
      233,
      162,
      152,
      232,
      181,
      132,
      230,
      150,
      153,
      232,
      167,
      134,
      233,
      162,
      145,
      229,
      155,
      158,
      229,
      164,
      141,
      230,
      179,
      168,
      229,
      134,
      140,
      231,
      189,
      145,
      231,
      187,
      156,
      230,
      148,
      182,
      232,
      151,
      143,
      229,
      134,
      133,
      229,
      174,
      185,
      230,
      142,
      168,
      232,
      141,
      144,
      229,
      184,
      130,
      229,
      156,
      186,
      230,
      182,
      136,
      230,
      129,
      175,
      231,
      169,
      186,
      233,
      151,
      180,
      229,
      143,
      145,
      229,
      184,
      131,
      228,
      187,
      128,
      228,
      185,
      136,
      229,
      165,
      189,
      229,
      143,
      139,
      231,
      148,
      159,
      230,
      180,
      187,
      229,
      155,
      190,
      231,
      137,
      135,
      229,
      143,
      145,
      229,
      177,
      149,
      229,
      166,
      130,
      230,
      158,
      156,
      230,
      137,
      139,
      230,
      156,
      186,
      230,
      150,
      176,
      233,
      151,
      187,
      230,
      156,
      128,
      230,
      150,
      176,
      230,
      150,
      185,
      229,
      188,
      143,
      229,
      140,
      151,
      228,
      186,
      172,
      230,
      143,
      144,
      228,
      190,
      155,
      229,
      133,
      179,
      228,
      186,
      142,
      230,
      155,
      180,
      229,
      164,
      154,
      232,
      191,
      153,
      228,
      184,
      170,
      231,
      179,
      187,
      231,
      187,
      159,
      231,
      159,
      165,
      233,
      129,
      147,
      230,
      184,
      184,
      230,
      136,
      143,
      229,
      185,
      191,
      229,
      145,
      138,
      229,
      133,
      182,
      228,
      187,
      150,
      229,
      143,
      145,
      232,
      161,
      168,
      229,
      174,
      137,
      229,
      133,
      168,
      231,
      172,
      172,
      228,
      184,
      128,
      228,
      188,
      154,
      229,
      145,
      152,
      232,
      191,
      155,
      232,
      161,
      140,
      231,
      130,
      185,
      229,
      135,
      187,
      231,
      137,
      136,
      230,
      157,
      131,
      231,
      148,
      181,
      229,
      173,
      144,
      228,
      184,
      150,
      231,
      149,
      140,
      232,
      174,
      190,
      232,
      174,
      161,
      229,
      133,
      141,
      232,
      180,
      185,
      230,
      149,
      153,
      232,
      130,
      178,
      229,
      138,
      160,
      229,
      133,
      165,
      230,
      180,
      187,
      229,
      138,
      168,
      228,
      187,
      150,
      228,
      187,
      172,
      229,
      149,
      134,
      229,
      147,
      129,
      229,
      141,
      154,
      229,
      174,
      162,
      231,
      142,
      176,
      229,
      156,
      168,
      228,
      184,
      138,
      230,
      181,
      183,
      229,
      166,
      130,
      228,
      189,
      149,
      229,
      183,
      178,
      231,
      187,
      143,
      231,
      149,
      153,
      232,
      168,
      128,
      232,
      175,
      166,
      231,
      187,
      134,
      231,
      164,
      190,
      229,
      140,
      186,
      231,
      153,
      187,
      229,
      189,
      149,
      230,
      156,
      172,
      231,
      171,
      153,
      233,
      156,
      128,
      232,
      166,
      129,
      228,
      187,
      183,
      230,
      160,
      188,
      230,
      148,
      175,
      230,
      140,
      129,
      229,
      155,
      189,
      233,
      153,
      133,
      233,
      147,
      190,
      230,
      142,
      165,
      229,
      155,
      189,
      229,
      174,
      182,
      229,
      187,
      186,
      232,
      174,
      190,
      230,
      156,
      139,
      229,
      143,
      139,
      233,
      152,
      133,
      232,
      175,
      187,
      230,
      179,
      149,
      229,
      190,
      139,
      228,
      189,
      141,
      231,
      189,
      174,
      231,
      187,
      143,
      230,
      181,
      142,
      233,
      128,
      137,
      230,
      139,
      169,
      232,
      191,
      153,
      230,
      160,
      183,
      229,
      189,
      147,
      229,
      137,
      141,
      229,
      136,
      134,
      231,
      177,
      187,
      230,
      142,
      146,
      232,
      161,
      140,
      229,
      155,
      160,
      228,
      184,
      186,
      228,
      186,
      164,
      230,
      152,
      147,
      230,
      156,
      128,
      229,
      144,
      142,
      233,
      159,
      179,
      228,
      185,
      144,
      228,
      184,
      141,
      232,
      131,
      189,
      233,
      128,
      154,
      232,
      191,
      135,
      232,
      161,
      140,
      228,
      184,
      154,
      231,
      167,
      145,
      230,
      138,
      128,
      229,
      143,
      175,
      232,
      131,
      189,
      232,
      174,
      190,
      229,
      164,
      135,
      229,
      144,
      136,
      228,
      189,
      156,
      229,
      164,
      167,
      229,
      174,
      182,
      231,
      164,
      190,
      228,
      188,
      154,
      231,
      160,
      148,
      231,
      169,
      182,
      228,
      184,
      147,
      228,
      184,
      154,
      229,
      133,
      168,
      233,
      131,
      168,
      233,
      161,
      185,
      231,
      155,
      174,
      232,
      191,
      153,
      233,
      135,
      140,
      232,
      191,
      152,
      230,
      152,
      175,
      229,
      188,
      128,
      229,
      167,
      139,
      230,
      131,
      133,
      229,
      134,
      181,
      231,
      148,
      181,
      232,
      132,
      145,
      230,
      150,
      135,
      228,
      187,
      182,
      229,
      147,
      129,
      231,
      137,
      140,
      229,
      184,
      174,
      229,
      138,
      169,
      230,
      150,
      135,
      229,
      140,
      150,
      232,
      181,
      132,
      230,
      186,
      144,
      229,
      164,
      167,
      229,
      173,
      166,
      229,
      173,
      166,
      228,
      185,
      160,
      229,
      156,
      176,
      229,
      157,
      128,
      230,
      181,
      143,
      232,
      167,
      136,
      230,
      138,
      149,
      232,
      181,
      132,
      229,
      183,
      165,
      231,
      168,
      139,
      232,
      166,
      129,
      230,
      177,
      130,
      230,
      128,
      142,
      228,
      185,
      136,
      230,
      151,
      182,
      229,
      128,
      153,
      229,
      138,
      159,
      232,
      131,
      189,
      228,
      184,
      187,
      232,
      166,
      129,
      231,
      155,
      174,
      229,
      137,
      141,
      232,
      181,
      132,
      232,
      174,
      175,
      229,
      159,
      142,
      229,
      184,
      130,
      230,
      150,
      185,
      230,
      179,
      149,
      231,
      148,
      181,
      229,
      189,
      177,
      230,
      139,
      155,
      232,
      129,
      152,
      229,
      163,
      176,
      230,
      152,
      142,
      228,
      187,
      187,
      228,
      189,
      149,
      229,
      129,
      165,
      229,
      186,
      183,
      230,
      149,
      176,
      230,
      141,
      174,
      231,
      190,
      142,
      229,
      155,
      189,
      230,
      177,
      189,
      232,
      189,
      166,
      228,
      187,
      139,
      231,
      187,
      141,
      228,
      189,
      134,
      230,
      152,
      175,
      228,
      186,
      164,
      230,
      181,
      129,
      231,
      148,
      159,
      228,
      186,
      167,
      230,
      137,
      128,
      228,
      187,
      165,
      231,
      148,
      181,
      232,
      175,
      157,
      230,
      152,
      190,
      231,
      164,
      186,
      228,
      184,
      128,
      228,
      186,
      155,
      229,
      141,
      149,
      228,
      189,
      141,
      228,
      186,
      186,
      229,
      145,
      152,
      229,
      136,
      134,
      230,
      158,
      144,
      229,
      156,
      176,
      229,
      155,
      190,
      230,
      151,
      133,
      230,
      184,
      184,
      229,
      183,
      165,
      229,
      133,
      183,
      229,
      173,
      166,
      231,
      148,
      159,
      231,
      179,
      187,
      229,
      136,
      151,
      231,
      189,
      145,
      229,
      143,
      139,
      229,
      184,
      150,
      229,
      173,
      144,
      229,
      175,
      134,
      231,
      160,
      129,
      233,
      162,
      145,
      233,
      129,
      147,
      230,
      142,
      167,
      229,
      136,
      182,
      229,
      156,
      176,
      229,
      140,
      186,
      229,
      159,
      186,
      230,
      156,
      172,
      229,
      133,
      168,
      229,
      155,
      189,
      231,
      189,
      145,
      228,
      184,
      138,
      233,
      135,
      141,
      232,
      166,
      129,
      231,
      172,
      172,
      228,
      186,
      140,
      229,
      150,
      156,
      230,
      172,
      162,
      232,
      191,
      155,
      229,
      133,
      165,
      229,
      143,
      139,
      230,
      131,
      133,
      232,
      191,
      153,
      228,
      186,
      155,
      232,
      128,
      131,
      232,
      175,
      149,
      229,
      143,
      145,
      231,
      142,
      176,
      229,
      159,
      185,
      232,
      174,
      173,
      228,
      187,
      165,
      228,
      184,
      138,
      230,
      148,
      191,
      229,
      186,
      156,
      230,
      136,
      144,
      228,
      184,
      186,
      231,
      142,
      175,
      229,
      162,
      131,
      233,
      166,
      153,
      230,
      184,
      175,
      229,
      144,
      140,
      230,
      151,
      182,
      229,
      168,
      177,
      228,
      185,
      144,
      229,
      143,
      145,
      233,
      128,
      129,
      228,
      184,
      128,
      229,
      174,
      154,
      229,
      188,
      128,
      229,
      143,
      145,
      228,
      189,
      156,
      229,
      147,
      129,
      230,
      160,
      135,
      229,
      135,
      134,
      230,
      172,
      162,
      232,
      191,
      142,
      232,
      167,
      163,
      229,
      134,
      179,
      229,
      156,
      176,
      230,
      150,
      185,
      228,
      184,
      128,
      228,
      184,
      139,
      228,
      187,
      165,
      229,
      143,
      138,
      232,
      180,
      163,
      228,
      187,
      187,
      230,
      136,
      150,
      232,
      128,
      133,
      229,
      174,
      162,
      230,
      136,
      183,
      228,
      187,
      163,
      232,
      161,
      168,
      231,
      167,
      175,
      229,
      136,
      134,
      229,
      165,
      179,
      228,
      186,
      186,
      230,
      149,
      176,
      231,
      160,
      129,
      233,
      148,
      128,
      229,
      148,
      174,
      229,
      135,
      186,
      231,
      142,
      176,
      231,
      166,
      187,
      231,
      186,
      191,
      229,
      186,
      148,
      231,
      148,
      168,
      229,
      136,
      151,
      232,
      161,
      168,
      228,
      184,
      141,
      229,
      144,
      140,
      231,
      188,
      150,
      232,
      190,
      145,
      231,
      187,
      159,
      232,
      174,
      161,
      230,
      159,
      165,
      232,
      175,
      162,
      228,
      184,
      141,
      232,
      166,
      129,
      230,
      156,
      137,
      229,
      133,
      179,
      230,
      156,
      186,
      230,
      158,
      132,
      229,
      190,
      136,
      229,
      164,
      154,
      230,
      146,
      173,
      230,
      148,
      190,
      231,
      187,
      132,
      231,
      187,
      135,
      230,
      148,
      191,
      231,
      173,
      150,
      231,
      155,
      180,
      230,
      142,
      165,
      232,
      131,
      189,
      229,
      138,
      155,
      230,
      157,
      165,
      230,
      186,
      144,
      230,
      153,
      130,
      233,
      150,
      147,
      231,
      156,
      139,
      229,
      136,
      176,
      231,
      131,
      173,
      233,
      151,
      168,
      229,
      133,
      179,
      233,
      148,
      174,
      228,
      184,
      147,
      229,
      140,
      186,
      233,
      157,
      158,
      229,
      184,
      184,
      232,
      139,
      177,
      232,
      175,
      173,
      231,
      153,
      190,
      229,
      186,
      166,
      229,
      184,
      140,
      230,
      156,
      155,
      231,
      190,
      142,
      229,
      165,
      179,
      230,
      175,
      148,
      232,
      190,
      131,
      231,
      159,
      165,
      232,
      175,
      134,
      232,
      167,
      132,
      229,
      174,
      154,
      229,
      187,
      186,
      232,
      174,
      174,
      233,
      131,
      168,
      233,
      151,
      168,
      230,
      132,
      143,
      232,
      167,
      129,
      231,
      178,
      190,
      229,
      189,
      169,
      230,
      151,
      165,
      230,
      156,
      172,
      230,
      143,
      144,
      233,
      171,
      152,
      229,
      143,
      145,
      232,
      168,
      128,
      230,
      150,
      185,
      233,
      157,
      162,
      229,
      159,
      186,
      233,
      135,
      145,
      229,
      164,
      132,
      231,
      144,
      134,
      230,
      157,
      131,
      233,
      153,
      144,
      229,
      189,
      177,
      231,
      137,
      135,
      233,
      147,
      182,
      232,
      161,
      140,
      232,
      191,
      152,
      230,
      156,
      137,
      229,
      136,
      134,
      228,
      186,
      171,
      231,
      137,
      169,
      229,
      147,
      129,
      231,
      187,
      143,
      232,
      144,
      165,
      230,
      183,
      187,
      229,
      138,
      160,
      228,
      184,
      147,
      229,
      174,
      182,
      232,
      191,
      153,
      231,
      167,
      141,
      232,
      175,
      157,
      233,
      162,
      152,
      232,
      181,
      183,
      230,
      157,
      165,
      228,
      184,
      154,
      229,
      138,
      161,
      229,
      133,
      172,
      229,
      145,
      138,
      232,
      174,
      176,
      229,
      189,
      149,
      231,
      174,
      128,
      228,
      187,
      139,
      232,
      180,
      168,
      233,
      135,
      143,
      231,
      148,
      183,
      228,
      186,
      186,
      229,
      189,
      177,
      229,
      147,
      141,
      229,
      188,
      149,
      231,
      148,
      168,
      230,
      138,
      165,
      229,
      145,
      138,
      233,
      131,
      168,
      229,
      136,
      134,
      229,
      191,
      171,
      233,
      128,
      159,
      229,
      146,
      168,
      232,
      175,
      162,
      230,
      151,
      182,
      229,
      176,
      154,
      230,
      179,
      168,
      230,
      132,
      143,
      231,
      148,
      179,
      232,
      175,
      183,
      229,
      173,
      166,
      230,
      160,
      161,
      229,
      186,
      148,
      232,
      175,
      165,
      229,
      142,
      134,
      229,
      143,
      178,
      229,
      143,
      170,
      230,
      152,
      175,
      232,
      191,
      148,
      229,
      155,
      158,
      232,
      180,
      173,
      228,
      185,
      176,
      229,
      144,
      141,
      231,
      167,
      176,
      228,
      184,
      186,
      228,
      186,
      134,
      230,
      136,
      144,
      229,
      138,
      159,
      232,
      175,
      180,
      230,
      152,
      142,
      228,
      190,
      155,
      229,
      186,
      148,
      229,
      173,
      169,
      229,
      173,
      144,
      228,
      184,
      147,
      233,
      162,
      152,
      231,
      168,
      139,
      229,
      186,
      143,
      228,
      184,
      128,
      232,
      136,
      172,
      230,
      156,
      131,
      229,
      147,
      161,
      229,
      143,
      170,
      230,
      156,
      137,
      229,
      133,
      182,
      229,
      174,
      131,
      228,
      191,
      157,
      230,
      138,
      164,
      232,
      128,
      140,
      228,
      184,
      148,
      228,
      187,
      138,
      229,
      164,
      169,
      231,
      170,
      151,
      229,
      143,
      163,
      229,
      138,
      168,
      230,
      128,
      129,
      231,
      138,
      182,
      230,
      128,
      129,
      231,
      137,
      185,
      229,
      136,
      171,
      232,
      174,
      164,
      228,
      184,
      186,
      229,
      191,
      133,
      233,
      161,
      187,
      230,
      155,
      180,
      230,
      150,
      176,
      229,
      176,
      143,
      232,
      175,
      180,
      230,
      136,
      145,
      229,
      128,
      145,
      228,
      189,
      156,
      228,
      184,
      186,
      229,
      170,
      146,
      228,
      189,
      147,
      229,
      140,
      133,
      230,
      139,
      172,
      233,
      130,
      163,
      228,
      185,
      136,
      228,
      184,
      128,
      230,
      160,
      183,
      229,
      155,
      189,
      229,
      134,
      133,
      230,
      152,
      175,
      229,
      144,
      166,
      230,
      160,
      185,
      230,
      141,
      174,
      231,
      148,
      181,
      232,
      167,
      134,
      229,
      173,
      166,
      233,
      153,
      162,
      229,
      133,
      183,
      230,
      156,
      137,
      232,
      191,
      135,
      231,
      168,
      139,
      231,
      148,
      177,
      228,
      186,
      142,
      228,
      186,
      186,
      230,
      137,
      141,
      229,
      135,
      186,
      230,
      157,
      165,
      228,
      184,
      141,
      232,
      191,
      135,
      230,
      173,
      163,
      229,
      156,
      168,
      230,
      152,
      142,
      230,
      152,
      159,
      230,
      149,
      133,
      228,
      186,
      139,
      229,
      133,
      179,
      231,
      179,
      187,
      230,
      160,
      135,
      233,
      162,
      152,
      229,
      149,
      134,
      229,
      138,
      161,
      232,
      190,
      147,
      229,
      133,
      165,
      228,
      184,
      128,
      231,
      155,
      180,
      229,
      159,
      186,
      231,
      161,
      128,
      230,
      149,
      153,
      229,
      173,
      166,
      228,
      186,
      134,
      232,
      167,
      163,
      229,
      187,
      186,
      231,
      173,
      145,
      231,
      187,
      147,
      230,
      158,
      156,
      229,
      133,
      168,
      231,
      144,
      131,
      233,
      128,
      154,
      231,
      159,
      165,
      232,
      174,
      161,
      229,
      136,
      146,
      229,
      175,
      185,
      228,
      186,
      142,
      232,
      137,
      186,
      230,
      156,
      175,
      231,
      155,
      184,
      229,
      134,
      140,
      229,
      143,
      145,
      231,
      148,
      159,
      231,
      156,
      159,
      231,
      154,
      132,
      229,
      187,
      186,
      231,
      171,
      139,
      231,
      173,
      137,
      231,
      186,
      167,
      231,
      177,
      187,
      229,
      158,
      139,
      231,
      187,
      143,
      233,
      170,
      140,
      229,
      174,
      158,
      231,
      142,
      176,
      229,
      136,
      182,
      228,
      189,
      156,
      230,
      157,
      165,
      232,
      135,
      170,
      230,
      160,
      135,
      231,
      173,
      190,
      228,
      187,
      165,
      228,
      184,
      139,
      229,
      142,
      159,
      229,
      136,
      155,
      230,
      151,
      160,
      230,
      179,
      149,
      229,
      133,
      182,
      228,
      184,
      173,
      229,
      128,
      139,
      228,
      186,
      186,
      228,
      184,
      128,
      229,
      136,
      135,
      230,
      140,
      135,
      229,
      141,
      151,
      229,
      133,
      179,
      233,
      151,
      173,
      233,
      155,
      134,
      229,
      155,
      162,
      231,
      172,
      172,
      228,
      184,
      137,
      229,
      133,
      179,
      230,
      179,
      168,
      229,
      155,
      160,
      230,
      173,
      164,
      231,
      133,
      167,
      231,
      137,
      135,
      230,
      183,
      177,
      229,
      156,
      179,
      229,
      149,
      134,
      228,
      184,
      154,
      229,
      185,
      191,
      229,
      183,
      158,
      230,
      151,
      165,
      230,
      156,
      159,
      233,
      171,
      152,
      231,
      186,
      167,
      230,
      156,
      128,
      232,
      191,
      145,
      231,
      187,
      188,
      229,
      144,
      136,
      232,
      161,
      168,
      231,
      164,
      186,
      228,
      184,
      147,
      232,
      190,
      145,
      232,
      161,
      140,
      228,
      184,
      186,
      228,
      186,
      164,
      233,
      128,
      154,
      232,
      175,
      132,
      228,
      187,
      183,
      232,
      167,
      137,
      229,
      190,
      151,
      231,
      178,
      190,
      229,
      141,
      142,
      229,
      174,
      182,
      229,
      186,
      173,
      229,
      174,
      140,
      230,
      136,
      144,
      230,
      132,
      159,
      232,
      167,
      137,
      229,
      174,
      137,
      232,
      163,
      133,
      229,
      190,
      151,
      229,
      136,
      176,
      233,
      130,
      174,
      228,
      187,
      182,
      229,
      136,
      182,
      229,
      186,
      166,
      233,
      163,
      159,
      229,
      147,
      129,
      232,
      153,
      189,
      231,
      132,
      182,
      232,
      189,
      172,
      232,
      189,
      189,
      230,
      138,
      165,
      228,
      187,
      183,
      232,
      174,
      176,
      232,
      128,
      133,
      230,
      150,
      185,
      230,
      161,
      136,
      232,
      161,
      140,
      230,
      148,
      191,
      228,
      186,
      186,
      230,
      176,
      145,
      231,
      148,
      168,
      229,
      147,
      129,
      228,
      184,
      156,
      232,
      165,
      191,
      230,
      143,
      144,
      229,
      135,
      186,
      233,
      133,
      146,
      229,
      186,
      151,
      231,
      132,
      182,
      229,
      144,
      142,
      228,
      187,
      152,
      230,
      172,
      190,
      231,
      131,
      173,
      231,
      130,
      185,
      228,
      187,
      165,
      229,
      137,
      141,
      229,
      174,
      140,
      229,
      133,
      168,
      229,
      143,
      145,
      229,
      184,
      150,
      232,
      174,
      190,
      231,
      189,
      174,
      233,
      162,
      134,
      229,
      175,
      188,
      229,
      183,
      165,
      228,
      184,
      154,
      229,
      140,
      187,
      233,
      153,
      162,
      231,
      156,
      139,
      231,
      156,
      139,
      231,
      187,
      143,
      229,
      133,
      184,
      229,
      142,
      159,
      229,
      155,
      160,
      229,
      185,
      179,
      229,
      143,
      176,
      229,
      144,
      132,
      231,
      167,
      141,
      229,
      162,
      158,
      229,
      138,
      160,
      230,
      157,
      144,
      230,
      150,
      153,
      230,
      150,
      176,
      229,
      162,
      158,
      228,
      185,
      139,
      229,
      144,
      142,
      232,
      129,
      140,
      228,
      184,
      154,
      230,
      149,
      136,
      230,
      158,
      156,
      228,
      187,
      138,
      229,
      185,
      180,
      232,
      174,
      186,
      230,
      150,
      135,
      230,
      136,
      145,
      229,
      155,
      189,
      229,
      145,
      138,
      232,
      175,
      137,
      231,
      137,
      136,
      228,
      184,
      187,
      228,
      191,
      174,
      230,
      148,
      185,
      229,
      143,
      130,
      228,
      184,
      142,
      230,
      137,
      147,
      229,
      141,
      176,
      229,
      191,
      171,
      228,
      185,
      144,
      230,
      156,
      186,
      230,
      162,
      176,
      232,
      167,
      130,
      231,
      130,
      185,
      229,
      173,
      152,
      229,
      156,
      168,
      231,
      178,
      190,
      231,
      165,
      158,
      232,
      142,
      183,
      229,
      190,
      151,
      229,
      136,
      169,
      231,
      148,
      168,
      231,
      187,
      167,
      231,
      187,
      173,
      228,
      189,
      160,
      228,
      187,
      172,
      232,
      191,
      153,
      228,
      185,
      136,
      230,
      168,
      161,
      229,
      188,
      143,
      232,
      175,
      173,
      232,
      168,
      128,
      232,
      131,
      189,
      229,
      164,
      159,
      233,
      155,
      133,
      232,
      153,
      142,
      230,
      147,
      141,
      228,
      189,
      156,
      233,
      163,
      142,
      230,
      160,
      188,
      228,
      184,
      128,
      232,
      181,
      183,
      231,
      167,
      145,
      229,
      173,
      166,
      228,
      189,
      147,
      232,
      130,
      178,
      231,
      159,
      173,
      228,
      191,
      161,
      230,
      157,
      161,
      228,
      187,
      182,
      230,
      178,
      187,
      231,
      150,
      151,
      232,
      191,
      144,
      229,
      138,
      168,
      228,
      186,
      167,
      228,
      184,
      154,
      228,
      188,
      154,
      232,
      174,
      174,
      229,
      175,
      188,
      232,
      136,
      170,
      229,
      133,
      136,
      231,
      148,
      159,
      232,
      129,
      148,
      231,
      155,
      159,
      229,
      143,
      175,
      230,
      152,
      175,
      229,
      149,
      143,
      233,
      161,
      140,
      231,
      187,
      147,
      230,
      158,
      132,
      228,
      189,
      156,
      231,
      148,
      168,
      232,
      176,
      131,
      230,
      159,
      165,
      232,
      179,
      135,
      230,
      150,
      153,
      232,
      135,
      170,
      229,
      138,
      168,
      232,
      180,
      159,
      232,
      180,
      163,
      229,
      134,
      156,
      228,
      184,
      154,
      232,
      174,
      191,
      233,
      151,
      174,
      229,
      174,
      158,
      230,
      150,
      189,
      230,
      142,
      165,
      229,
      143,
      151,
      232,
      174,
      168,
      232,
      174,
      186,
      233,
      130,
      163,
      228,
      184,
      170,
      229,
      143,
      141,
      233,
      166,
      136,
      229,
      138,
      160,
      229,
      188,
      186,
      229,
      165,
      179,
      230,
      128,
      167,
      232,
      140,
      131,
      229,
      155,
      180,
      230,
      156,
      141,
      229,
      139,
      153,
      228,
      188,
      145,
      233,
      151,
      178,
      228,
      187,
      138,
      230,
      151,
      165,
      229,
      174,
      162,
      230,
      156,
      141,
      232,
      167,
      128,
      231,
      156,
      139,
      229,
      143,
      130,
      229,
      138,
      160,
      231,
      154,
      132,
      232,
      175,
      157,
      228,
      184,
      128,
      231,
      130,
      185,
      228,
      191,
      157,
      232,
      175,
      129,
      229,
      155,
      190,
      228,
      185,
      166,
      230,
      156,
      137,
      230,
      149,
      136,
      230,
      181,
      139,
      232,
      175,
      149,
      231,
      167,
      187,
      229,
      138,
      168,
      230,
      137,
      141,
      232,
      131,
      189,
      229,
      134,
      179,
      229,
      174,
      154,
      232,
      130,
      161,
      231,
      165,
      168,
      228,
      184,
      141,
      230,
      150,
      173,
      233,
      156,
      128,
      230,
      177,
      130,
      228,
      184,
      141,
      229,
      190,
      151,
      229,
      138,
      158,
      230,
      179,
      149,
      228,
      185,
      139,
      233,
      151,
      180,
      233,
      135,
      135,
      231,
      148,
      168,
      232,
      144,
      165,
      233,
      148,
      128,
      230,
      138,
      149,
      232,
      175,
      137,
      231,
      155,
      174,
      230,
      160,
      135,
      231,
      136,
      177,
      230,
      131,
      133,
      230,
      145,
      132,
      229,
      189,
      177,
      230,
      156,
      137,
      228,
      186,
      155,
      232,
      164,
      135,
      232,
      163,
      189,
      230,
      150,
      135,
      229,
      173,
      166,
      230,
      156,
      186,
      228,
      188,
      154,
      230,
      149,
      176,
      229,
      173,
      151,
      232,
      163,
      133,
      228,
      191,
      174,
      232,
      180,
      173,
      231,
      137,
      169,
      229,
      134,
      156,
      230,
      157,
      145,
      229,
      133,
      168,
      233,
      157,
      162,
      231,
      178,
      190,
      229,
      147,
      129,
      229,
      133,
      182,
      229,
      174,
      158,
      228,
      186,
      139,
      230,
      131,
      133,
      230,
      176,
      180,
      229,
      185,
      179,
      230,
      143,
      144,
      231,
      164,
      186,
      228,
      184,
      138,
      229,
      184,
      130,
      232,
      176,
      162,
      232,
      176,
      162,
      230,
      153,
      174,
      233,
      128,
      154,
      230,
      149,
      153,
      229,
      184,
      136,
      228,
      184,
      138,
      228,
      188,
      160,
      231,
      177,
      187,
      229,
      136,
      171,
      230,
      173,
      140,
      230,
      155,
      178,
      230,
      139,
      165,
      230,
      156,
      137,
      229,
      136,
      155,
      230,
      150,
      176,
      233,
      133,
      141,
      228,
      187,
      182,
      229,
      143,
      170,
      232,
      166,
      129,
      230,
      151,
      182,
      228,
      187,
      163,
      232,
      179,
      135,
      232,
      168,
      138,
      232,
      190,
      190,
      229,
      136,
      176,
      228,
      186,
      186,
      231,
      148,
      159,
      232,
      174,
      162,
      233,
      152,
      133,
      232,
      128,
      129,
      229,
      184,
      136,
      229,
      177,
      149,
      231,
      164,
      186,
      229,
      191,
      131,
      231,
      144,
      134,
      232,
      180,
      180,
      229,
      173,
      144,
      231,
      182,
      178,
      231,
      171,
      153,
      228,
      184,
      187,
      233,
      161,
      140,
      232,
      135,
      170,
      231,
      132,
      182,
      231,
      186,
      167,
      229,
      136,
      171,
      231,
      174,
      128,
      229,
      141,
      149,
      230,
      148,
      185,
      233,
      157,
      169,
      233,
      130,
      163,
      228,
      186,
      155,
      230,
      157,
      165,
      232,
      175,
      180,
      230,
      137,
      147,
      229,
      188,
      128,
      228,
      187,
      163,
      231,
      160,
      129,
      229,
      136,
      160,
      233,
      153,
      164,
      232,
      175,
      129,
      229,
      136,
      184,
      232,
      138,
      130,
      231,
      155,
      174,
      233,
      135,
      141,
      231,
      130,
      185,
      230,
      172,
      161,
      230,
      149,
      184,
      229,
      164,
      154,
      229,
      176,
      145,
      232,
      167,
      132,
      229,
      136,
      146,
      232,
      181,
      132,
      233,
      135,
      145,
      230,
      137,
      190,
      229,
      136,
      176,
      228,
      187,
      165,
      229,
      144,
      142,
      229,
      164,
      167,
      229,
      133,
      168,
      228,
      184,
      187,
      233,
      161,
      181,
      230,
      156,
      128,
      228,
      189,
      179,
      229,
      155,
      158,
      231,
      173,
      148,
      229,
      164,
      169,
      228,
      184,
      139,
      228,
      191,
      157,
      233,
      154,
      156,
      231,
      142,
      176,
      228,
      187,
      163,
      230,
      163,
      128,
      230,
      159,
      165,
      230,
      138,
      149,
      231,
      165,
      168,
      229,
      176,
      143,
      230,
      151,
      182,
      230,
      178,
      146,
      230,
      156,
      137,
      230,
      173,
      163,
      229,
      184,
      184,
      231,
      148,
      154,
      232,
      135,
      179,
      228,
      187,
      163,
      231,
      144,
      134,
      231,
      155,
      174,
      229,
      189,
      149,
      229,
      133,
      172,
      229,
      188,
      128,
      229,
      164,
      141,
      229,
      136,
      182,
      233,
      135,
      145,
      232,
      158,
      141,
      229,
      185,
      184,
      231,
      166,
      143,
      231,
      137,
      136,
      230,
      156,
      172,
      229,
      189,
      162,
      230,
      136,
      144,
      229,
      135,
      134,
      229,
      164,
      135,
      232,
      161,
      140,
      230,
      131,
      133,
      229,
      155,
      158,
      229,
      136,
      176,
      230,
      128,
      157,
      230,
      131,
      179,
      230,
      128,
      142,
      230,
      160,
      183,
      229,
      141,
      143,
      232,
      174,
      174,
      232,
      174,
      164,
      232,
      175,
      129,
      230,
      156,
      128,
      229,
      165,
      189,
      228,
      186,
      167,
      231,
      148,
      159,
      230,
      140,
      137,
      231,
      133,
      167,
      230,
      156,
      141,
      232,
      163,
      133,
      229,
      185,
      191,
      228,
      184,
      156,
      229,
      138,
      168,
      230,
      188,
      171,
      233,
      135,
      135,
      232,
      180,
      173,
      230,
      150,
      176,
      230,
      137,
      139,
      231,
      187,
      132,
      229,
      155,
      190,
      233,
      157,
      162,
      230,
      157,
      191,
      229,
      143,
      130,
      232,
      128,
      131,
      230,
      148,
      191,
      230,
      178,
      187,
      229,
      174,
      185,
      230,
      152,
      147,
      229,
      164,
      169,
      229,
      156,
      176,
      229,
      138,
      170,
      229,
      138,
      155,
      228,
      186,
      186,
      228,
      187,
      172,
      229,
      141,
      135,
      231,
      186,
      167,
      233,
      128,
      159,
      229,
      186,
      166,
      228,
      186,
      186,
      231,
      137,
      169,
      232,
      176,
      131,
      230,
      149,
      180,
      230,
      181,
      129,
      232,
      161,
      140,
      233,
      128,
      160,
      230,
      136,
      144,
      230,
      150,
      135,
      229,
      173,
      151,
      233,
      159,
      169,
      229,
      155,
      189,
      232,
      180,
      184,
      230,
      152,
      147,
      229,
      188,
      128,
      229,
      177,
      149,
      231,
      155,
      184,
      233,
      151,
      156,
      232,
      161,
      168,
      231,
      142,
      176,
      229,
      189,
      177,
      232,
      167,
      134,
      229,
      166,
      130,
      230,
      173,
      164,
      231,
      190,
      142,
      229,
      174,
      185,
      229,
      164,
      167,
      229,
      176,
      143,
      230,
      138,
      165,
      233,
      129,
      147,
      230,
      157,
      161,
      230,
      172,
      190,
      229,
      191,
      131,
      230,
      131,
      133,
      232,
      174,
      184,
      229,
      164,
      154,
      230,
      179,
      149,
      232,
      167,
      132,
      229,
      174,
      182,
      229,
      177,
      133,
      228,
      185,
      166,
      229,
      186,
      151,
      232,
      191,
      158,
      230,
      142,
      165,
      231,
      171,
      139,
      229,
      141,
      179,
      228,
      184,
      190,
      230,
      138,
      165,
      230,
      138,
      128,
      229,
      183,
      167,
      229,
      165,
      165,
      232,
      191,
      144,
      231,
      153,
      187,
      229,
      133,
      165,
      228,
      187,
      165,
      230,
      157,
      165,
      231,
      144,
      134,
      232,
      174,
      186,
      228,
      186,
      139,
      228,
      187,
      182,
      232,
      135,
      170,
      231,
      148,
      177,
      228,
      184,
      173,
      229,
      141,
      142,
      229,
      138,
      158,
      229,
      133,
      172,
      229,
      166,
      136,
      229,
      166,
      136,
      231,
      156,
      159,
      230,
      173,
      163,
      228,
      184,
      141,
      233,
      148,
      153,
      229,
      133,
      168,
      230,
      150,
      135,
      229,
      144,
      136,
      229,
      144,
      140,
      228,
      187,
      183,
      229,
      128,
      188,
      229,
      136,
      171,
      228,
      186,
      186,
      231,
      155,
      145,
      231,
      157,
      163,
      229,
      133,
      183,
      228,
      189,
      147,
      228,
      184,
      150,
      231,
      186,
      170,
      229,
      155,
      162,
      233,
      152,
      159,
      229,
      136,
      155,
      228,
      184,
      154,
      230,
      137,
      191,
      230,
      139,
      133,
      229,
      162,
      158,
      233,
      149,
      191,
      230,
      156,
      137,
      228,
      186,
      186,
      228,
      191,
      157,
      230,
      140,
      129,
      229,
      149,
      134,
      229,
      174,
      182,
      231,
      187,
      180,
      228,
      191,
      174,
      229,
      143,
      176,
      230,
      185,
      190,
      229,
      183,
      166,
      229,
      143,
      179,
      232,
      130,
      161,
      228,
      187,
      189,
      231,
      173,
      148,
      230,
      161,
      136,
      229,
      174,
      158,
      233,
      153,
      133,
      231,
      148,
      181,
      228,
      191,
      161,
      231,
      187,
      143,
      231,
      144,
      134,
      231,
      148,
      159,
      229,
      145,
      189,
      229,
      174,
      163,
      228,
      188,
      160,
      228,
      187,
      187,
      229,
      138,
      161,
      230,
      173,
      163,
      229,
      188,
      143,
      231,
      137,
      185,
      232,
      137,
      178,
      228,
      184,
      139,
      230,
      157,
      165,
      229,
      141,
      143,
      228,
      188,
      154,
      229,
      143,
      170,
      232,
      131,
      189,
      229,
      189,
      147,
      231,
      132,
      182,
      233,
      135,
      141,
      230,
      150,
      176,
      229,
      133,
      167,
      229,
      174,
      185,
      230,
      140,
      135,
      229,
      175,
      188,
      232,
      191,
      144,
      232,
      161,
      140,
      230,
      151,
      165,
      229,
      191,
      151,
      232,
      179,
      163,
      229,
      174,
      182,
      232,
      182,
      133,
      232,
      191,
      135,
      229,
      156,
      159,
      229,
      156,
      176,
      230,
      181,
      153,
      230,
      177,
      159,
      230,
      148,
      175,
      228,
      187,
      152,
      230,
      142,
      168,
      229,
      135,
      186,
      231,
      171,
      153,
      233,
      149,
      191,
      230,
      157,
      173,
      229,
      183,
      158,
      230,
      137,
      167,
      232,
      161,
      140,
      229,
      136,
      182,
      233,
      128,
      160,
      228,
      185,
      139,
      228,
      184,
      128,
      230,
      142,
      168,
      229,
      185,
      191,
      231,
      142,
      176,
      229,
      156,
      186,
      230,
      143,
      143,
      232,
      191,
      176,
      229,
      143,
      152,
      229,
      140,
      150,
      228,
      188,
      160,
      231,
      187,
      159,
      230,
      173,
      140,
      230,
      137,
      139,
      228,
      191,
      157,
      233,
      153,
      169,
      232,
      175,
      190,
      231,
      168,
      139,
      229,
      140,
      187,
      231,
      150,
      151,
      231,
      187,
      143,
      232,
      191,
      135,
      232,
      191,
      135,
      229,
      142,
      187,
      228,
      185,
      139,
      229,
      137,
      141,
      230,
      148,
      182,
      229,
      133,
      165,
      229,
      185,
      180,
      229,
      186,
      166,
      230,
      157,
      130,
      229,
      191,
      151,
      231,
      190,
      142,
      228,
      184,
      189,
      230,
      156,
      128,
      233,
      171,
      152,
      231,
      153,
      187,
      233,
      153,
      134,
      230,
      156,
      170,
      230,
      157,
      165,
      229,
      138,
      160,
      229,
      183,
      165,
      229,
      133,
      141,
      232,
      180,
      163,
      230,
      149,
      153,
      231,
      168,
      139,
      231,
      137,
      136,
      229,
      157,
      151,
      232,
      186,
      171,
      228,
      189,
      147,
      233,
      135,
      141,
      229,
      186,
      134,
      229,
      135,
      186,
      229,
      148,
      174,
      230,
      136,
      144,
      230,
      156,
      172,
      229,
      189,
      162,
      229,
      188,
      143,
      229,
      156,
      159,
      232,
      177,
      134,
      229,
      135,
      186,
      229,
      131,
      185,
      228,
      184,
      156,
      230,
      150,
      185,
      233,
      130,
      174,
      231,
      174,
      177,
      229,
      141,
      151,
      228,
      186,
      172,
      230,
      177,
      130,
      232,
      129,
      140,
      229,
      143,
      150,
      229,
      190,
      151,
      232,
      129,
      140,
      228,
      189,
      141,
      231,
      155,
      184,
      228,
      191,
      161,
      233,
      161,
      181,
      233,
      157,
      162,
      229,
      136,
      134,
      233,
      146,
      159,
      231,
      189,
      145,
      233,
      161,
      181,
      231,
      161,
      174,
      229,
      174,
      154,
      229,
      155,
      190,
      228,
      190,
      139,
      231,
      189,
      145,
      229,
      157,
      128,
      231,
      167,
      175,
      230,
      158,
      129,
      233,
      148,
      153,
      232,
      175,
      175,
      231,
      155,
      174,
      231,
      154,
      132,
      229,
      174,
      157,
      232,
      180,
      157,
      230,
      156,
      186,
      229,
      133,
      179,
      233,
      163,
      142,
      233,
      153,
      169,
      230,
      142,
      136,
      230,
      157,
      131,
      231,
      151,
      133,
      230,
      175,
      146,
      229,
      174,
      160,
      231,
      137,
      169,
      233,
      153,
      164,
      228,
      186,
      134,
      232,
      169,
      149,
      232,
      171,
      150,
      231,
      150,
      190,
      231,
      151,
      133,
      229,
      143,
      138,
      230,
      151,
      182,
      230,
      177,
      130,
      232,
      180,
      173,
      231,
      171,
      153,
      231,
      130,
      185,
      229,
      132,
      191,
      231,
      171,
      165,
      230,
      175,
      143,
      229,
      164,
      169,
      228,
      184,
      173,
      229,
      164,
      174,
      232,
      174,
      164,
      232,
      175,
      134,
      230,
      175,
      143,
      228,
      184,
      170,
      229,
      164,
      169,
      230,
      180,
      165,
      229,
      173,
      151,
      228,
      189,
      147,
      229,
      143,
      176,
      231,
      129,
      163,
      231,
      187,
      180,
      230,
      138,
      164,
      230,
      156,
      172,
      233,
      161,
      181,
      228,
      184,
      170,
      230,
      128,
      167,
      229,
      174,
      152,
      230,
      150,
      185,
      229,
      184,
      184,
      232,
      167,
      129,
      231,
      155,
      184,
      230,
      156,
      186,
      230,
      136,
      152,
      231,
      149,
      165,
      229,
      186,
      148,
      229,
      189,
      147,
      229,
      190,
      139,
      229,
      184,
      136,
      230,
      150,
      185,
      228,
      190,
      191,
      230,
      160,
      161,
      229,
      155,
      173,
      232,
      130,
      161,
      229,
      184,
      130,
      230,
      136,
      191,
      229,
      177,
      139,
      230,
      160,
      143,
      231,
      155,
      174,
      229,
      145,
      152,
      229,
      183,
      165,
      229,
      175,
      188,
      232,
      135,
      180,
      231,
      170,
      129,
      231,
      132,
      182,
      233,
      129,
      147,
      229,
      133,
      183,
      230,
      156,
      172,
      231,
      189,
      145,
      231,
      187,
      147,
      229,
      144,
      136,
      230,
      161,
      163,
      230,
      161,
      136,
      229,
      138,
      179,
      229,
      138,
      168,
      229,
      143,
      166,
      229,
      164,
      150,
      231,
      190,
      142,
      229,
      133,
      131,
      229,
      188,
      149,
      232,
      181,
      183,
      230,
      148,
      185,
      229,
      143,
      152,
      231,
      172,
      172,
      229,
      155,
      155,
      228,
      188,
      154,
      232,
      174,
      161,
      232,
      170,
      170,
      230,
      152,
      142,
      233,
      154,
      144,
      231,
      167,
      129,
      229,
      174,
      157,
      229,
      174,
      157,
      232,
      167,
      132,
      232,
      140,
      131,
      230,
      182,
      136,
      232,
      180,
      185,
      229,
      133,
      177,
      229,
      144,
      140,
      229,
      191,
      152,
      232,
      174,
      176,
      228,
      189,
      147,
      231,
      179,
      187,
      229,
      184,
      166,
      230,
      157,
      165,
      229,
      144,
      141,
      229,
      173,
      151,
      231,
      153,
      188,
      232,
      161,
      168,
      229,
      188,
      128,
      230,
      148,
      190,
      229,
      138,
      160,
      231,
      155,
      159,
      229,
      143,
      151,
      229,
      136,
      176,
      228,
      186,
      140,
      230,
      137,
      139,
      229,
      164,
      167,
      233,
      135,
      143,
      230,
      136,
      144,
      228,
      186,
      186,
      230,
      149,
      176,
      233,
      135,
      143,
      229,
      133,
      177,
      228,
      186,
      171,
      229,
      140,
      186,
      229,
      159,
      159,
      229,
      165,
      179,
      229,
      173,
      169,
      229,
      142,
      159,
      229,
      136,
      153,
      230,
      137,
      128,
      229,
      156,
      168,
      231,
      187,
      147,
      230,
      157,
      159,
      233,
      128,
      154,
      228,
      191,
      161,
      232,
      182,
      133,
      231,
      186,
      167,
      233,
      133,
      141,
      231,
      189,
      174,
      229,
      189,
      147,
      230,
      151,
      182,
      228,
      188,
      152,
      231,
      167,
      128,
      230,
      128,
      167,
      230,
      132,
      159,
      230,
      136,
      191,
      228,
      186,
      167,
      233,
      129,
      138,
      230,
      136,
      178,
      229,
      135,
      186,
      229,
      143,
      163,
      230,
      143,
      144,
      228,
      186,
      164,
      229,
      176,
      177,
      228,
      184,
      154,
      228,
      191,
      157,
      229,
      129,
      165,
      231,
      168,
      139,
      229,
      186,
      166,
      229,
      143,
      130,
      230,
      149,
      176,
      228,
      186,
      139,
      228,
      184,
      154,
      230,
      149,
      180,
      228,
      184,
      170,
      229,
      177,
      177,
      228,
      184,
      156,
      230,
      131,
      133,
      230,
      132,
      159,
      231,
      137,
      185,
      230,
      174,
      138,
      229,
      136,
      134,
      233,
      161,
      158,
      230,
      144,
      156,
      229,
      176,
      139,
      229,
      177,
      158,
      228,
      186,
      142,
      233,
      151,
      168,
      230,
      136,
      183,
      232,
      180,
      162,
      229,
      138,
      161,
      229,
      163,
      176,
      233,
      159,
      179,
      229,
      143,
      138,
      229,
      133,
      182,
      232,
      180,
      162,
      231,
      187,
      143,
      229,
      157,
      154,
      230,
      140,
      129,
      229,
      185,
      178,
      233,
      131,
      168,
      230,
      136,
      144,
      231,
      171,
      139,
      229,
      136,
      169,
      231,
      155,
      138,
      232,
      128,
      131,
      232,
      153,
      145,
      230,
      136,
      144,
      233,
      131,
      189,
      229,
      140,
      133,
      232,
      163,
      133,
      231,
      148,
      168,
      230,
      136,
      182,
      230,
      175,
      148,
      232,
      181,
      155,
      230,
      150,
      135,
      230,
      152,
      142,
      230,
      139,
      155,
      229,
      149,
      134,
      229,
      174,
      140,
      230,
      149,
      180,
      231,
      156,
      159,
      230,
      152,
      175,
      231,
      156,
      188,
      231,
      157,
      155,
      228,
      188,
      153,
      228,
      188,
      180,
      229,
      168,
      129,
      230,
      156,
      155,
      233,
      162,
      134,
      229,
      159,
      159,
      229,
      141,
      171,
      231,
      148,
      159,
      228,
      188,
      152,
      230,
      131,
      160,
      232,
      171,
      150,
      229,
      163,
      135,
      229,
      133,
      172,
      229,
      133,
      177,
      232,
      137,
      175,
      229,
      165,
      189,
      229,
      133,
      133,
      229,
      136,
      134,
      231,
      172,
      166,
      229,
      144,
      136,
      233,
      153,
      132,
      228,
      187,
      182,
      231,
      137,
      185,
      231,
      130,
      185,
      228,
      184,
      141,
      229,
      143,
      175,
      232,
      139,
      177,
      230,
      150,
      135,
      232,
      181,
      132,
      228,
      186,
      167,
      230,
      160,
      185,
      230,
      156,
      172,
      230,
      152,
      142,
      230,
      152,
      190,
      229,
      175,
      134,
      231,
      162,
      188,
      229,
      133,
      172,
      228,
      188,
      151,
      230,
      176,
      145,
      230,
      151,
      143,
      230,
      155,
      180,
      229,
      138,
      160,
      228,
      186,
      171,
      229,
      143,
      151,
      229,
      144,
      140,
      229,
      173,
      166,
      229,
      144,
      175,
      229,
      138,
      168,
      233,
      128,
      130,
      229,
      144,
      136,
      229,
      142,
      159,
      230,
      157,
      165,
      233,
      151,
      174,
      231,
      173,
      148,
      230,
      156,
      172,
      230,
      150,
      135,
      231,
      190,
      142,
      233,
      163,
      159,
      231,
      187,
      191,
      232,
      137,
      178,
      231,
      168,
      179,
      229,
      174,
      154,
      231,
      187,
      136,
      228,
      186,
      142,
      231,
      148,
      159,
      231,
      137,
      169,
      228,
      190,
      155,
      230,
      177,
      130,
      230,
      144,
      156,
      231,
      139,
      144,
      229,
      138,
      155,
      233,
      135,
      143,
      228,
      184,
      165,
      233,
      135,
      141,
      230,
      176,
      184,
      232,
      191,
      156,
      229,
      134,
      153,
      231,
      156,
      159,
      230,
      156,
      137,
      233,
      153,
      144,
      231,
      171,
      158,
      228,
      186,
      137,
      229,
      175,
      185,
      232,
      177,
      161,
      232,
      180,
      185,
      231,
      148,
      168,
      228,
      184,
      141,
      229,
      165,
      189,
      231,
      187,
      157,
      229,
      175,
      185,
      229,
      141,
      129,
      229,
      136,
      134,
      228,
      191,
      131,
      232,
      191,
      155,
      231,
      130,
      185,
      232,
      175,
      132,
      229,
      189,
      177,
      233,
      159,
      179,
      228,
      188,
      152,
      229,
      138,
      191,
      228,
      184,
      141,
      229,
      176,
      145,
      230,
      172,
      163,
      232,
      181,
      143,
      229,
      185,
      182,
      228,
      184,
      148,
      230,
      156,
      137,
      231,
      130,
      185,
      230,
      150,
      185,
      229,
      144,
      145,
      229,
      133,
      168,
      230,
      150,
      176,
      228,
      191,
      161,
      231,
      148,
      168,
      232,
      174,
      190,
      230,
      150,
      189,
      229,
      189,
      162,
      232,
      177,
      161,
      232,
      181,
      132,
      230,
      160,
      188,
      231,
      170,
      129,
      231,
      160,
      180,
      233,
      154,
      143,
      231,
      157,
      128,
      233,
      135,
      141,
      229,
      164,
      167,
      228,
      186,
      142,
      230,
      152,
      175,
      230,
      175,
      149,
      228,
      184,
      154,
      230,
      153,
      186,
      232,
      131,
      189,
      229,
      140,
      150,
      229,
      183,
      165,
      229,
      174,
      140,
      231,
      190,
      142,
      229,
      149,
      134,
      229,
      159,
      142,
      231,
      187,
      159,
      228,
      184,
      128,
      229,
      135,
      186,
      231,
      137,
      136,
      230,
      137,
      147,
      233,
      128,
      160,
      231,
      148,
      162,
      229,
      147,
      129,
      230,
      166,
      130,
      229,
      134,
      181,
      231,
      148,
      168,
      228,
      186,
      142,
      228,
      191,
      157,
      231,
      149,
      153,
      229,
      155,
      160,
      231,
      180,
      160,
      228,
      184,
      173,
      229,
      156,
      139,
      229,
      173,
      152,
      229,
      130,
      168,
      232,
      180,
      180,
      229,
      155,
      190,
      230,
      156,
      128,
      230,
      132,
      155,
      233,
      149,
      191,
      230,
      156,
      159,
      229,
      143,
      163,
      228,
      187,
      183,
      231,
      144,
      134,
      232,
      180,
      162,
      229,
      159,
      186,
      229,
      156,
      176,
      229,
      174,
      137,
      230,
      142,
      146,
      230,
      173,
      166,
      230,
      177,
      137,
      233,
      135,
      140,
      233,
      157,
      162,
      229,
      136,
      155,
      229,
      187,
      186,
      229,
      164,
      169,
      231,
      169,
      186,
      233,
      166,
      150,
      229,
      133,
      136,
      229,
      174,
      140,
      229,
      150,
      132,
      233,
      169,
      177,
      229,
      138,
      168,
      228,
      184,
      139,
      233,
      157,
      162,
      228,
      184,
      141,
      229,
      134,
      141,
      232,
      175,
      154,
      228,
      191,
      161,
      230,
      132,
      143,
      228,
      185,
      137,
      233,
      152,
      179,
      229,
      133,
      137,
      232,
      139,
      177,
      229,
      155,
      189,
      230,
      188,
      130,
      228,
      186,
      174,
      229,
      134,
      155,
      228,
      186,
      139,
      231,
      142,
      169,
      229,
      174,
      182,
      231,
      190,
      164,
      228,
      188,
      151,
      229,
      134,
      156,
      230,
      176,
      145,
      229,
      141,
      179,
      229,
      143,
      175,
      229,
      144,
      141,
      231,
      168,
      177,
      229,
      174,
      182,
      229,
      133,
      183,
      229,
      138,
      168,
      231,
      148,
      187,
      230,
      131,
      179,
      229,
      136,
      176,
      230,
      179,
      168,
      230,
      152,
      142,
      229,
      176,
      143,
      229,
      173,
      166,
      230,
      128,
      167,
      232,
      131,
      189,
      232,
      128,
      131,
      231,
      160,
      148,
      231,
      161,
      172,
      228,
      187,
      182,
      232,
      167,
      130,
      231,
      156,
      139,
      230,
      184,
      133,
      230,
      165,
      154,
      230,
      144,
      158,
      231,
      172,
      145,
      233,
      166,
      150,
      233,
      160,
      129,
      233,
      187,
      132,
      233,
      135,
      145,
      233,
      128,
      130,
      231,
      148,
      168,
      230,
      177,
      159,
      232,
      139,
      143,
      231,
      156,
      159,
      229,
      174,
      158,
      228,
      184,
      187,
      231,
      174,
      161,
      233,
      152,
      182,
      230,
      174,
      181,
      232,
      168,
      187,
      229,
      134,
      138,
      231,
      191,
      187,
      232,
      175,
      145,
      230,
      157,
      131,
      229,
      136,
      169,
      229,
      129,
      154,
      229,
      165,
      189,
      228,
      188,
      188,
      228,
      185,
      142,
      233,
      128,
      154,
      232,
      174,
      175,
      230,
      150,
      189,
      229,
      183,
      165,
      231,
      139,
      128,
      230,
      133,
      139,
      228,
      185,
      159,
      232,
      174,
      184,
      231,
      142,
      175,
      228,
      191,
      157,
      229,
      159,
      185,
      229,
      133,
      187,
      230,
      166,
      130,
      229,
      191,
      181,
      229,
      164,
      167,
      229,
      158,
      139,
      230,
      156,
      186,
      231,
      165,
      168,
      231,
      144,
      134,
      232,
      167,
      163,
      229,
      140,
      191,
      229,
      144,
      141,
      99,
      117,
      97,
      110,
      100,
      111,
      101,
      110,
      118,
      105,
      97,
      114,
      109,
      97,
      100,
      114,
      105,
      100,
      98,
      117,
      115,
      99,
      97,
      114,
      105,
      110,
      105,
      99,
      105,
      111,
      116,
      105,
      101,
      109,
      112,
      111,
      112,
      111,
      114,
      113,
      117,
      101,
      99,
      117,
      101,
      110,
      116,
      97,
      101,
      115,
      116,
      97,
      100,
      111,
      112,
      117,
      101,
      100,
      101,
      110,
      106,
      117,
      101,
      103,
      111,
      115,
      99,
      111,
      110,
      116,
      114,
      97,
      101,
      115,
      116,
      195,
      161,
      110,
      110,
      111,
      109,
      98,
      114,
      101,
      116,
      105,
      101,
      110,
      101,
      110,
      112,
      101,
      114,
      102,
      105,
      108,
      109,
      97,
      110,
      101,
      114,
      97,
      97,
      109,
      105,
      103,
      111,
      115,
      99,
      105,
      117,
      100,
      97,
      100,
      99,
      101,
      110,
      116,
      114,
      111,
      97,
      117,
      110,
      113,
      117,
      101,
      112,
      117,
      101,
      100,
      101,
      115,
      100,
      101,
      110,
      116,
      114,
      111,
      112,
      114,
      105,
      109,
      101,
      114,
      112,
      114,
      101,
      99,
      105,
      111,
      115,
      101,
      103,
      195,
      186,
      110,
      98,
      117,
      101,
      110,
      111,
      115,
      118,
      111,
      108,
      118,
      101,
      114,
      112,
      117,
      110,
      116,
      111,
      115,
      115,
      101,
      109,
      97,
      110,
      97,
      104,
      97,
      98,
      195,
      173,
      97,
      97,
      103,
      111,
      115,
      116,
      111,
      110,
      117,
      101,
      118,
      111,
      115,
      117,
      110,
      105,
      100,
      111,
      115,
      99,
      97,
      114,
      108,
      111,
      115,
      101,
      113,
      117,
      105,
      112,
      111,
      110,
      105,
      195,
      177,
      111,
      115,
      109,
      117,
      99,
      104,
      111,
      115,
      97,
      108,
      103,
      117,
      110,
      97,
      99,
      111,
      114,
      114,
      101,
      111,
      105,
      109,
      97,
      103,
      101,
      110,
      112,
      97,
      114,
      116,
      105,
      114,
      97,
      114,
      114,
      105,
      98,
      97,
      109,
      97,
      114,
      195,
      173,
      97,
      104,
      111,
      109,
      98,
      114,
      101,
      101,
      109,
      112,
      108,
      101,
      111,
      118,
      101,
      114,
      100,
      97,
      100,
      99,
      97,
      109,
      98,
      105,
      111,
      109,
      117,
      99,
      104,
      97,
      115,
      102,
      117,
      101,
      114,
      111,
      110,
      112,
      97,
      115,
      97,
      100,
      111,
      108,
      195,
      173,
      110,
      101,
      97,
      112,
      97,
      114,
      101,
      99,
      101,
      110,
      117,
      101,
      118,
      97,
      115,
      99,
      117,
      114,
      115,
      111,
      115,
      101,
      115,
      116,
      97,
      98,
      97,
      113,
      117,
      105,
      101,
      114,
      111,
      108,
      105,
      98,
      114,
      111,
      115,
      99,
      117,
      97,
      110,
      116,
      111,
      97,
      99,
      99,
      101,
      115,
      111,
      109,
      105,
      103,
      117,
      101,
      108,
      118,
      97,
      114,
      105,
      111,
      115,
      99,
      117,
      97,
      116,
      114,
      111,
      116,
      105,
      101,
      110,
      101,
      115,
      103,
      114,
      117,
      112,
      111,
      115,
      115,
      101,
      114,
      195,
      161,
      110,
      101,
      117,
      114,
      111,
      112,
      97,
      109,
      101,
      100,
      105,
      111,
      115,
      102,
      114,
      101,
      110,
      116,
      101,
      97,
      99,
      101,
      114,
      99,
      97,
      100,
      101,
      109,
      195,
      161,
      115,
      111,
      102,
      101,
      114,
      116,
      97,
      99,
      111,
      99,
      104,
      101,
      115,
      109,
      111,
      100,
      101,
      108,
      111,
      105,
      116,
      97,
      108,
      105,
      97,
      108,
      101,
      116,
      114,
      97,
      115,
      97,
      108,
      103,
      195,
      186,
      110,
      99,
      111,
      109,
      112,
      114,
      97,
      99,
      117,
      97,
      108,
      101,
      115,
      101,
      120,
      105,
      115,
      116,
      101,
      99,
      117,
      101,
      114,
      112,
      111,
      115,
      105,
      101,
      110,
      100,
      111,
      112,
      114,
      101,
      110,
      115,
      97,
      108,
      108,
      101,
      103,
      97,
      114,
      118,
      105,
      97,
      106,
      101,
      115,
      100,
      105,
      110,
      101,
      114,
      111,
      109,
      117,
      114,
      99,
      105,
      97,
      112,
      111,
      100,
      114,
      195,
      161,
      112,
      117,
      101,
      115,
      116,
      111,
      100,
      105,
      97,
      114,
      105,
      111,
      112,
      117,
      101,
      98,
      108,
      111,
      113,
      117,
      105,
      101,
      114,
      101,
      109,
      97,
      110,
      117,
      101,
      108,
      112,
      114,
      111,
      112,
      105,
      111,
      99,
      114,
      105,
      115,
      105,
      115,
      99,
      105,
      101,
      114,
      116,
      111,
      115,
      101,
      103,
      117,
      114,
      111,
      109,
      117,
      101,
      114,
      116,
      101,
      102,
      117,
      101,
      110,
      116,
      101,
      99,
      101,
      114,
      114,
      97,
      114,
      103,
      114,
      97,
      110,
      100,
      101,
      101,
      102,
      101,
      99,
      116,
      111,
      112,
      97,
      114,
      116,
      101,
      115,
      109,
      101,
      100,
      105,
      100,
      97,
      112,
      114,
      111,
      112,
      105,
      97,
      111,
      102,
      114,
      101,
      99,
      101,
      116,
      105,
      101,
      114,
      114,
      97,
      101,
      45,
      109,
      97,
      105,
      108,
      118,
      97,
      114,
      105,
      97,
      115,
      102,
      111,
      114,
      109,
      97,
      115,
      102,
      117,
      116,
      117,
      114,
      111,
      111,
      98,
      106,
      101,
      116,
      111,
      115,
      101,
      103,
      117,
      105,
      114,
      114,
      105,
      101,
      115,
      103,
      111,
      110,
      111,
      114,
      109,
      97,
      115,
      109,
      105,
      115,
      109,
      111,
      115,
      195,
      186,
      110,
      105,
      99,
      111,
      99,
      97,
      109,
      105,
      110,
      111,
      115,
      105,
      116,
      105,
      111,
      115,
      114,
      97,
      122,
      195,
      179,
      110,
      100,
      101,
      98,
      105,
      100,
      111,
      112,
      114,
      117,
      101,
      98,
      97,
      116,
      111,
      108,
      101,
      100,
      111,
      116,
      101,
      110,
      195,
      173,
      97,
      106,
      101,
      115,
      195,
      186,
      115,
      101,
      115,
      112,
      101,
      114,
      111,
      99,
      111,
      99,
      105,
      110,
      97,
      111,
      114,
      105,
      103,
      101,
      110,
      116,
      105,
      101,
      110,
      100,
      97,
      99,
      105,
      101,
      110,
      116,
      111,
      99,
      195,
      161,
      100,
      105,
      122,
      104,
      97,
      98,
      108,
      97,
      114,
      115,
      101,
      114,
      195,
      173,
      97,
      108,
      97,
      116,
      105,
      110,
      97,
      102,
      117,
      101,
      114,
      122,
      97,
      101,
      115,
      116,
      105,
      108,
      111,
      103,
      117,
      101,
      114,
      114,
      97,
      101,
      110,
      116,
      114,
      97,
      114,
      195,
      169,
      120,
      105,
      116,
      111,
      108,
      195,
      179,
      112,
      101,
      122,
      97,
      103,
      101,
      110,
      100,
      97,
      118,
      195,
      173,
      100,
      101,
      111,
      101,
      118,
      105,
      116,
      97,
      114,
      112,
      97,
      103,
      105,
      110,
      97,
      109,
      101,
      116,
      114,
      111,
      115,
      106,
      97,
      118,
      105,
      101,
      114,
      112,
      97,
      100,
      114,
      101,
      115,
      102,
      195,
      161,
      99,
      105,
      108,
      99,
      97,
      98,
      101,
      122,
      97,
      195,
      161,
      114,
      101,
      97,
      115,
      115,
      97,
      108,
      105,
      100,
      97,
      101,
      110,
      118,
      195,
      173,
      111,
      106,
      97,
      112,
      195,
      179,
      110,
      97,
      98,
      117,
      115,
      111,
      115,
      98,
      105,
      101,
      110,
      101,
      115,
      116,
      101,
      120,
      116,
      111,
      115,
      108,
      108,
      101,
      118,
      97,
      114,
      112,
      117,
      101,
      100,
      97,
      110,
      102,
      117,
      101,
      114,
      116,
      101,
      99,
      111,
      109,
      195,
      186,
      110,
      99,
      108,
      97,
      115,
      101,
      115,
      104,
      117,
      109,
      97,
      110,
      111,
      116,
      101,
      110,
      105,
      100,
      111,
      98,
      105,
      108,
      98,
      97,
      111,
      117,
      110,
      105,
      100,
      97,
      100,
      101,
      115,
      116,
      195,
      161,
      115,
      101,
      100,
      105,
      116,
      97,
      114,
      99,
      114,
      101,
      97,
      100,
      111,
      208,
      180,
      208,
      187,
      209,
      143,
      209,
      135,
      209,
      130,
      208,
      190,
      208,
      186,
      208,
      176,
      208,
      186,
      208,
      184,
      208,
      187,
      208,
      184,
      209,
      141,
      209,
      130,
      208,
      190,
      208,
      178,
      209,
      129,
      208,
      181,
      208,
      181,
      208,
      179,
      208,
      190,
      208,
      191,
      209,
      128,
      208,
      184,
      209,
      130,
      208,
      176,
      208,
      186,
      208,
      181,
      209,
      137,
      208,
      181,
      209,
      131,
      208,
      182,
      208,
      181,
      208,
      154,
      208,
      176,
      208,
      186,
      208,
      177,
      208,
      181,
      208,
      183,
      208,
      177,
      209,
      139,
      208,
      187,
      208,
      190,
      208,
      189,
      208,
      184,
      208,
      146,
      209,
      129,
      208,
      181,
      208,
      191,
      208,
      190,
      208,
      180,
      208,
      173,
      209,
      130,
      208,
      190,
      209,
      130,
      208,
      190,
      208,
      188,
      209,
      135,
      208,
      181,
      208,
      188,
      208,
      189,
      208,
      181,
      209,
      130,
      208,
      187,
      208,
      181,
      209,
      130,
      209,
      128,
      208,
      176,
      208,
      183,
      208,
      190,
      208,
      189,
      208,
      176,
      208,
      179,
      208,
      180,
      208,
      181,
      208,
      188,
      208,
      189,
      208,
      181,
      208,
      148,
      208,
      187,
      209,
      143,
      208,
      159,
      209,
      128,
      208,
      184,
      208,
      189,
      208,
      176,
      209,
      129,
      208,
      189,
      208,
      184,
      209,
      133,
      209,
      130,
      208,
      181,
      208,
      188,
      208,
      186,
      209,
      130,
      208,
      190,
      208,
      179,
      208,
      190,
      208,
      180,
      208,
      178,
      208,
      190,
      209,
      130,
      209,
      130,
      208,
      176,
      208,
      188,
      208,
      161,
      208,
      168,
      208,
      144,
      208,
      188,
      208,
      176,
      209,
      143,
      208,
      167,
      209,
      130,
      208,
      190,
      208,
      178,
      208,
      176,
      209,
      129,
      208,
      178,
      208,
      176,
      208,
      188,
      208,
      181,
      208,
      188,
      209,
      131,
      208,
      162,
      208,
      176,
      208,
      186,
      208,
      180,
      208,
      178,
      208,
      176,
      208,
      189,
      208,
      176,
      208,
      188,
      209,
      141,
      209,
      130,
      208,
      184,
      209,
      141,
      209,
      130,
      209,
      131,
      208,
      146,
      208,
      176,
      208,
      188,
      209,
      130,
      208,
      181,
      209,
      133,
      208,
      191,
      209,
      128,
      208,
      190,
      209,
      130,
      209,
      131,
      209,
      130,
      208,
      189,
      208,
      176,
      208,
      180,
      208,
      180,
      208,
      189,
      209,
      143,
      208,
      146,
      208,
      190,
      209,
      130,
      209,
      130,
      209,
      128,
      208,
      184,
      208,
      189,
      208,
      181,
      208,
      185,
      208,
      146,
      208,
      176,
      209,
      129,
      208,
      189,
      208,
      184,
      208,
      188,
      209,
      129,
      208,
      176,
      208,
      188,
      209,
      130,
      208,
      190,
      209,
      130,
      209,
      128,
      209,
      131,
      208,
      177,
      208,
      158,
      208,
      189,
      208,
      184,
      208,
      188,
      208,
      184,
      209,
      128,
      208,
      189,
      208,
      181,
      208,
      181,
      208,
      158,
      208,
      158,
      208,
      158,
      208,
      187,
      208,
      184,
      209,
      134,
      209,
      141,
      209,
      130,
      208,
      176,
      208,
      158,
      208,
      189,
      208,
      176,
      208,
      189,
      208,
      181,
      208,
      188,
      208,
      180,
      208,
      190,
      208,
      188,
      208,
      188,
      208,
      190,
      208,
      185,
      208,
      180,
      208,
      178,
      208,
      181,
      208,
      190,
      208,
      189,
      208,
      190,
      209,
      129,
      209,
      131,
      208,
      180,
      224,
      164,
      149,
      224,
      165,
      135,
      224,
      164,
      185,
      224,
      165,
      136,
      224,
      164,
      149,
      224,
      165,
      128,
      224,
      164,
      184,
      224,
      165,
      135,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      149,
      224,
      165,
      139,
      224,
      164,
      148,
      224,
      164,
      176,
      224,
      164,
      170,
      224,
      164,
      176,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      143,
      224,
      164,
      149,
      224,
      164,
      149,
      224,
      164,
      191,
      224,
      164,
      173,
      224,
      165,
      128,
      224,
      164,
      135,
      224,
      164,
      184,
      224,
      164,
      149,
      224,
      164,
      176,
      224,
      164,
      164,
      224,
      165,
      139,
      224,
      164,
      185,
      224,
      165,
      139,
      224,
      164,
      134,
      224,
      164,
      170,
      224,
      164,
      185,
      224,
      165,
      128,
      224,
      164,
      175,
      224,
      164,
      185,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      164,
      224,
      164,
      149,
      224,
      164,
      165,
      224,
      164,
      190,
      106,
      97,
      103,
      114,
      97,
      110,
      224,
      164,
      134,
      224,
      164,
      156,
      224,
      164,
      156,
      224,
      165,
      139,
      224,
      164,
      133,
      224,
      164,
      172,
      224,
      164,
      166,
      224,
      165,
      139,
      224,
      164,
      151,
      224,
      164,
      136,
      224,
      164,
      156,
      224,
      164,
      190,
      224,
      164,
      151,
      224,
      164,
      143,
      224,
      164,
      185,
      224,
      164,
      174,
      224,
      164,
      135,
      224,
      164,
      168,
      224,
      164,
      181,
      224,
      164,
      185,
      224,
      164,
      175,
      224,
      165,
      135,
      224,
      164,
      165,
      224,
      165,
      135,
      224,
      164,
      165,
      224,
      165,
      128,
      224,
      164,
      152,
      224,
      164,
      176,
      224,
      164,
      156,
      224,
      164,
      172,
      224,
      164,
      166,
      224,
      165,
      128,
      224,
      164,
      149,
      224,
      164,
      136,
      224,
      164,
      156,
      224,
      165,
      128,
      224,
      164,
      181,
      224,
      165,
      135,
      224,
      164,
      168,
      224,
      164,
      136,
      224,
      164,
      168,
      224,
      164,
      143,
      224,
      164,
      185,
      224,
      164,
      176,
      224,
      164,
      137,
      224,
      164,
      184,
      224,
      164,
      174,
      224,
      165,
      135,
      224,
      164,
      149,
      224,
      164,
      174,
      224,
      164,
      181,
      224,
      165,
      139,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      184,
      224,
      164,
      172,
      224,
      164,
      174,
      224,
      164,
      136,
      224,
      164,
      166,
      224,
      165,
      135,
      224,
      164,
      147,
      224,
      164,
      176,
      224,
      164,
      134,
      224,
      164,
      174,
      224,
      164,
      172,
      224,
      164,
      184,
      224,
      164,
      173,
      224,
      164,
      176,
      224,
      164,
      172,
      224,
      164,
      168,
      224,
      164,
      154,
      224,
      164,
      178,
      224,
      164,
      174,
      224,
      164,
      168,
      224,
      164,
      134,
      224,
      164,
      151,
      224,
      164,
      184,
      224,
      165,
      128,
      224,
      164,
      178,
      224,
      165,
      128,
      216,
      185,
      217,
      132,
      217,
      137,
      216,
      165,
      217,
      132,
      217,
      137,
      217,
      135,
      216,
      176,
      216,
      167,
      216,
      162,
      216,
      174,
      216,
      177,
      216,
      185,
      216,
      175,
      216,
      175,
      216,
      167,
      217,
      132,
      217,
      137,
      217,
      135,
      216,
      176,
      217,
      135,
      216,
      181,
      217,
      136,
      216,
      177,
      216,
      186,
      217,
      138,
      216,
      177,
      217,
      131,
      216,
      167,
      217,
      134,
      217,
      136,
      217,
      132,
      216,
      167,
      216,
      168,
      217,
      138,
      217,
      134,
      216,
      185,
      216,
      177,
      216,
      182,
      216,
      176,
      217,
      132,
      217,
      131,
      217,
      135,
      217,
      134,
      216,
      167,
      217,
      138,
      217,
      136,
      217,
      133,
      217,
      130,
      216,
      167,
      217,
      132,
      216,
      185,
      217,
      132,
      217,
      138,
      216,
      167,
      217,
      134,
      216,
      167,
      217,
      132,
      217,
      131,
      217,
      134,
      216,
      173,
      216,
      170,
      217,
      137,
      217,
      130,
      216,
      168,
      217,
      132,
      217,
      136,
      216,
      173,
      216,
      169,
      216,
      167,
      216,
      174,
      216,
      177,
      217,
      129,
      217,
      130,
      216,
      183,
      216,
      185,
      216,
      168,
      216,
      175,
      216,
      177,
      217,
      131,
      217,
      134,
      216,
      165,
      216,
      176,
      216,
      167,
      217,
      131,
      217,
      133,
      216,
      167,
      216,
      167,
      216,
      173,
      216,
      175,
      216,
      165,
      217,
      132,
      216,
      167,
      217,
      129,
      217,
      138,
      217,
      135,
      216,
      168,
      216,
      185,
      216,
      182,
      217,
      131,
      217,
      138,
      217,
      129,
      216,
      168,
      216,
      173,
      216,
      171,
      217,
      136,
      217,
      133,
      217,
      134,
      217,
      136,
      217,
      135,
      217,
      136,
      216,
      163,
      217,
      134,
      216,
      167,
      216,
      172,
      216,
      175,
      216,
      167,
      217,
      132,
      217,
      135,
      216,
      167,
      216,
      179,
      217,
      132,
      217,
      133,
      216,
      185,
      217,
      134,
      216,
      175,
      217,
      132,
      217,
      138,
      216,
      179,
      216,
      185,
      216,
      168,
      216,
      177,
      216,
      181,
      217,
      132,
      217,
      137,
      217,
      133,
      217,
      134,
      216,
      176,
      216,
      168,
      217,
      135,
      216,
      167,
      216,
      163,
      217,
      134,
      217,
      135,
      217,
      133,
      216,
      171,
      217,
      132,
      217,
      131,
      217,
      134,
      216,
      170,
      216,
      167,
      217,
      132,
      216,
      167,
      216,
      173,
      217,
      138,
      216,
      171,
      217,
      133,
      216,
      181,
      216,
      177,
      216,
      180,
      216,
      177,
      216,
      173,
      216,
      173,
      217,
      136,
      217,
      132,
      217,
      136,
      217,
      129,
      217,
      138,
      216,
      167,
      216,
      176,
      216,
      167,
      217,
      132,
      217,
      131,
      217,
      132,
      217,
      133,
      216,
      177,
      216,
      169,
      216,
      167,
      217,
      134,
      216,
      170,
      216,
      167,
      217,
      132,
      217,
      129,
      216,
      163,
      216,
      168,
      217,
      136,
      216,
      174,
      216,
      167,
      216,
      181,
      216,
      163,
      217,
      134,
      216,
      170,
      216,
      167,
      217,
      134,
      217,
      135,
      216,
      167,
      217,
      132,
      217,
      138,
      216,
      185,
      216,
      182,
      217,
      136,
      217,
      136,
      217,
      130,
      216,
      175,
      216,
      167,
      216,
      168,
      217,
      134,
      216,
      174,
      217,
      138,
      216,
      177,
      216,
      168,
      217,
      134,
      216,
      170,
      217,
      132,
      217,
      131,
      217,
      133,
      216,
      180,
      216,
      167,
      216,
      161,
      217,
      136,
      217,
      135,
      217,
      138,
      216,
      167,
      216,
      168,
      217,
      136,
      217,
      130,
      216,
      181,
      216,
      181,
      217,
      136,
      217,
      133,
      216,
      167,
      216,
      177,
      217,
      130,
      217,
      133,
      216,
      163,
      216,
      173,
      216,
      175,
      217,
      134,
      216,
      173,
      217,
      134,
      216,
      185,
      216,
      175,
      217,
      133,
      216,
      177,
      216,
      163,
      217,
      138,
      216,
      167,
      216,
      173,
      216,
      169,
      217,
      131,
      216,
      170,
      216,
      168,
      216,
      175,
      217,
      136,
      217,
      134,
      217,
      138,
      216,
      172,
      216,
      168,
      217,
      133,
      217,
      134,
      217,
      135,
      216,
      170,
      216,
      173,
      216,
      170,
      216,
      172,
      217,
      135,
      216,
      169,
      216,
      179,
      217,
      134,
      216,
      169,
      217,
      138,
      216,
      170,
      217,
      133,
      217,
      131,
      216,
      177,
      216,
      169,
      216,
      186,
      216,
      178,
      216,
      169,
      217,
      134,
      217,
      129,
      216,
      179,
      216,
      168,
      217,
      138,
      216,
      170,
      217,
      132,
      217,
      132,
      217,
      135,
      217,
      132,
      217,
      134,
      216,
      167,
      216,
      170,
      217,
      132,
      217,
      131,
      217,
      130,
      217,
      132,
      216,
      168,
      217,
      132,
      217,
      133,
      216,
      167,
      216,
      185,
      217,
      134,
      217,
      135,
      216,
      163,
      217,
      136,
      217,
      132,
      216,
      180,
      217,
      138,
      216,
      161,
      217,
      134,
      217,
      136,
      216,
      177,
      216,
      163,
      217,
      133,
      216,
      167,
      217,
      129,
      217,
      138,
      217,
      131,
      216,
      168,
      217,
      131,
      217,
      132,
      216,
      176,
      216,
      167,
      216,
      170,
      216,
      177,
      216,
      170,
      216,
      168,
      216,
      168,
      216,
      163,
      217,
      134,
      217,
      135,
      217,
      133,
      216,
      179,
      216,
      167,
      217,
      134,
      217,
      131,
      216,
      168,
      217,
      138,
      216,
      185,
      217,
      129,
      217,
      130,
      216,
      175,
      216,
      173,
      216,
      179,
      217,
      134,
      217,
      132,
      217,
      135,
      217,
      133,
      216,
      180,
      216,
      185,
      216,
      177,
      216,
      163,
      217,
      135,
      217,
      132,
      216,
      180,
      217,
      135,
      216,
      177,
      217,
      130,
      216,
      183,
      216,
      177,
      216,
      183,
      217,
      132,
      216,
      168,
      112,
      114,
      111,
      102,
      105,
      108,
      101,
      115,
      101,
      114,
      118,
      105,
      99,
      101,
      100,
      101,
      102,
      97,
      117,
      108,
      116,
      104,
      105,
      109,
      115,
      101,
      108,
      102,
      100,
      101,
      116,
      97,
      105,
      108,
      115,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      115,
      117,
      112,
      112,
      111,
      114,
      116,
      115,
      116,
      97,
      114,
      116,
      101,
      100,
      109,
      101,
      115,
      115,
      97,
      103,
      101,
      115,
      117,
      99,
      99,
      101,
      115,
      115,
      102,
      97,
      115,
      104,
      105,
      111,
      110,
      60,
      116,
      105,
      116,
      108,
      101,
      62,
      99,
      111,
      117,
      110,
      116,
      114,
      121,
      97,
      99,
      99,
      111,
      117,
      110,
      116,
      99,
      114,
      101,
      97,
      116,
      101,
      100,
      115,
      116,
      111,
      114,
      105,
      101,
      115,
      114,
      101,
      115,
      117,
      108,
      116,
      115,
      114,
      117,
      110,
      110,
      105,
      110,
      103,
      112,
      114,
      111,
      99,
      101,
      115,
      115,
      119,
      114,
      105,
      116,
      105,
      110,
      103,
      111,
      98,
      106,
      101,
      99,
      116,
      115,
      118,
      105,
      115,
      105,
      98,
      108,
      101,
      119,
      101,
      108,
      99,
      111,
      109,
      101,
      97,
      114,
      116,
      105,
      99,
      108,
      101,
      117,
      110,
      107,
      110,
      111,
      119,
      110,
      110,
      101,
      116,
      119,
      111,
      114,
      107,
      99,
      111,
      109,
      112,
      97,
      110,
      121,
      100,
      121,
      110,
      97,
      109,
      105,
      99,
      98,
      114,
      111,
      119,
      115,
      101,
      114,
      112,
      114,
      105,
      118,
      97,
      99,
      121,
      112,
      114,
      111,
      98,
      108,
      101,
      109,
      83,
      101,
      114,
      118,
      105,
      99,
      101,
      114,
      101,
      115,
      112,
      101,
      99,
      116,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      114,
      101,
      113,
      117,
      101,
      115,
      116,
      114,
      101,
      115,
      101,
      114,
      118,
      101,
      119,
      101,
      98,
      115,
      105,
      116,
      101,
      104,
      105,
      115,
      116,
      111,
      114,
      121,
      102,
      114,
      105,
      101,
      110,
      100,
      115,
      111,
      112,
      116,
      105,
      111,
      110,
      115,
      119,
      111,
      114,
      107,
      105,
      110,
      103,
      118,
      101,
      114,
      115,
      105,
      111,
      110,
      109,
      105,
      108,
      108,
      105,
      111,
      110,
      99,
      104,
      97,
      110,
      110,
      101,
      108,
      119,
      105,
      110,
      100,
      111,
      119,
      46,
      97,
      100,
      100,
      114,
      101,
      115,
      115,
      118,
      105,
      115,
      105,
      116,
      101,
      100,
      119,
      101,
      97,
      116,
      104,
      101,
      114,
      99,
      111,
      114,
      114,
      101,
      99,
      116,
      112,
      114,
      111,
      100,
      117,
      99,
      116,
      101,
      100,
      105,
      114,
      101,
      99,
      116,
      102,
      111,
      114,
      119,
      97,
      114,
      100,
      121,
      111,
      117,
      32,
      99,
      97,
      110,
      114,
      101,
      109,
      111,
      118,
      101,
      100,
      115,
      117,
      98,
      106,
      101,
      99,
      116,
      99,
      111,
      110,
      116,
      114,
      111,
      108,
      97,
      114,
      99,
      104,
      105,
      118,
      101,
      99,
      117,
      114,
      114,
      101,
      110,
      116,
      114,
      101,
      97,
      100,
      105,
      110,
      103,
      108,
      105,
      98,
      114,
      97,
      114,
      121,
      108,
      105,
      109,
      105,
      116,
      101,
      100,
      109,
      97,
      110,
      97,
      103,
      101,
      114,
      102,
      117,
      114,
      116,
      104,
      101,
      114,
      115,
      117,
      109,
      109,
      97,
      114,
      121,
      109,
      97,
      99,
      104,
      105,
      110,
      101,
      109,
      105,
      110,
      117,
      116,
      101,
      115,
      112,
      114,
      105,
      118,
      97,
      116,
      101,
      99,
      111,
      110,
      116,
      101,
      120,
      116,
      112,
      114,
      111,
      103,
      114,
      97,
      109,
      115,
      111,
      99,
      105,
      101,
      116,
      121,
      110,
      117,
      109,
      98,
      101,
      114,
      115,
      119,
      114,
      105,
      116,
      116,
      101,
      110,
      101,
      110,
      97,
      98,
      108,
      101,
      100,
      116,
      114,
      105,
      103,
      103,
      101,
      114,
      115,
      111,
      117,
      114,
      99,
      101,
      115,
      108,
      111,
      97,
      100,
      105,
      110,
      103,
      101,
      108,
      101,
      109,
      101,
      110,
      116,
      112,
      97,
      114,
      116,
      110,
      101,
      114,
      102,
      105,
      110,
      97,
      108,
      108,
      121,
      112,
      101,
      114,
      102,
      101,
      99,
      116,
      109,
      101,
      97,
      110,
      105,
      110,
      103,
      115,
      121,
      115,
      116,
      101,
      109,
      115,
      107,
      101,
      101,
      112,
      105,
      110,
      103,
      99,
      117,
      108,
      116,
      117,
      114,
      101,
      38,
      113,
      117,
      111,
      116,
      59,
      44,
      106,
      111,
      117,
      114,
      110,
      97,
      108,
      112,
      114,
      111,
      106,
      101,
      99,
      116,
      115,
      117,
      114,
      102,
      97,
      99,
      101,
      115,
      38,
      113,
      117,
      111,
      116,
      59,
      101,
      120,
      112,
      105,
      114,
      101,
      115,
      114,
      101,
      118,
      105,
      101,
      119,
      115,
      98,
      97,
      108,
      97,
      110,
      99,
      101,
      69,
      110,
      103,
      108,
      105,
      115,
      104,
      67,
      111,
      110,
      116,
      101,
      110,
      116,
      116,
      104,
      114,
      111,
      117,
      103,
      104,
      80,
      108,
      101,
      97,
      115,
      101,
      32,
      111,
      112,
      105,
      110,
      105,
      111,
      110,
      99,
      111,
      110,
      116,
      97,
      99,
      116,
      97,
      118,
      101,
      114,
      97,
      103,
      101,
      112,
      114,
      105,
      109,
      97,
      114,
      121,
      118,
      105,
      108,
      108,
      97,
      103,
      101,
      83,
      112,
      97,
      110,
      105,
      115,
      104,
      103,
      97,
      108,
      108,
      101,
      114,
      121,
      100,
      101,
      99,
      108,
      105,
      110,
      101,
      109,
      101,
      101,
      116,
      105,
      110,
      103,
      109,
      105,
      115,
      115,
      105,
      111,
      110,
      112,
      111,
      112,
      117,
      108,
      97,
      114,
      113,
      117,
      97,
      108,
      105,
      116,
      121,
      109,
      101,
      97,
      115,
      117,
      114,
      101,
      103,
      101,
      110,
      101,
      114,
      97,
      108,
      115,
      112,
      101,
      99,
      105,
      101,
      115,
      115,
      101,
      115,
      115,
      105,
      111,
      110,
      115,
      101,
      99,
      116,
      105,
      111,
      110,
      119,
      114,
      105,
      116,
      101,
      114,
      115,
      99,
      111,
      117,
      110,
      116,
      101,
      114,
      105,
      110,
      105,
      116,
      105,
      97,
      108,
      114,
      101,
      112,
      111,
      114,
      116,
      115,
      102,
      105,
      103,
      117,
      114,
      101,
      115,
      109,
      101,
      109,
      98,
      101,
      114,
      115,
      104,
      111,
      108,
      100,
      105,
      110,
      103,
      100,
      105,
      115,
      112,
      117,
      116,
      101,
      101,
      97,
      114,
      108,
      105,
      101,
      114,
      101,
      120,
      112,
      114,
      101,
      115,
      115,
      100,
      105,
      103,
      105,
      116,
      97,
      108,
      112,
      105,
      99,
      116,
      117,
      114,
      101,
      65,
      110,
      111,
      116,
      104,
      101,
      114,
      109,
      97,
      114,
      114,
      105,
      101,
      100,
      116,
      114,
      97,
      102,
      102,
      105,
      99,
      108,
      101,
      97,
      100,
      105,
      110,
      103,
      99,
      104,
      97,
      110,
      103,
      101,
      100,
      99,
      101,
      110,
      116,
      114,
      97,
      108,
      118,
      105,
      99,
      116,
      111,
      114,
      121,
      105,
      109,
      97,
      103,
      101,
      115,
      47,
      114,
      101,
      97,
      115,
      111,
      110,
      115,
      115,
      116,
      117,
      100,
      105,
      101,
      115,
      102,
      101,
      97,
      116,
      117,
      114,
      101,
      108,
      105,
      115,
      116,
      105,
      110,
      103,
      109,
      117,
      115,
      116,
      32,
      98,
      101,
      115,
      99,
      104,
      111,
      111,
      108,
      115,
      86,
      101,
      114,
      115,
      105,
      111,
      110,
      117,
      115,
      117,
      97,
      108,
      108,
      121,
      101,
      112,
      105,
      115,
      111,
      100,
      101,
      112,
      108,
      97,
      121,
      105,
      110,
      103,
      103,
      114,
      111,
      119,
      105,
      110,
      103,
      111,
      98,
      118,
      105,
      111,
      117,
      115,
      111,
      118,
      101,
      114,
      108,
      97,
      121,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      97,
      99,
      116,
      105,
      111,
      110,
      115,
      60,
      47,
      117,
      108,
      62,
      13,
      10,
      119,
      114,
      97,
      112,
      112,
      101,
      114,
      97,
      108,
      114,
      101,
      97,
      100,
      121,
      99,
      101,
      114,
      116,
      97,
      105,
      110,
      114,
      101,
      97,
      108,
      105,
      116,
      121,
      115,
      116,
      111,
      114,
      97,
      103,
      101,
      97,
      110,
      111,
      116,
      104,
      101,
      114,
      100,
      101,
      115,
      107,
      116,
      111,
      112,
      111,
      102,
      102,
      101,
      114,
      101,
      100,
      112,
      97,
      116,
      116,
      101,
      114,
      110,
      117,
      110,
      117,
      115,
      117,
      97,
      108,
      68,
      105,
      103,
      105,
      116,
      97,
      108,
      99,
      97,
      112,
      105,
      116,
      97,
      108,
      87,
      101,
      98,
      115,
      105,
      116,
      101,
      102,
      97,
      105,
      108,
      117,
      114,
      101,
      99,
      111,
      110,
      110,
      101,
      99,
      116,
      114,
      101,
      100,
      117,
      99,
      101,
      100,
      65,
      110,
      100,
      114,
      111,
      105,
      100,
      100,
      101,
      99,
      97,
      100,
      101,
      115,
      114,
      101,
      103,
      117,
      108,
      97,
      114,
      32,
      38,
      97,
      109,
      112,
      59,
      32,
      97,
      110,
      105,
      109,
      97,
      108,
      115,
      114,
      101,
      108,
      101,
      97,
      115,
      101,
      65,
      117,
      116,
      111,
      109,
      97,
      116,
      103,
      101,
      116,
      116,
      105,
      110,
      103,
      109,
      101,
      116,
      104,
      111,
      100,
      115,
      110,
      111,
      116,
      104,
      105,
      110,
      103,
      80,
      111,
      112,
      117,
      108,
      97,
      114,
      99,
      97,
      112,
      116,
      105,
      111,
      110,
      108,
      101,
      116,
      116,
      101,
      114,
      115,
      99,
      97,
      112,
      116,
      117,
      114,
      101,
      115,
      99,
      105,
      101,
      110,
      99,
      101,
      108,
      105,
      99,
      101,
      110,
      115,
      101,
      99,
      104,
      97,
      110,
      103,
      101,
      115,
      69,
      110,
      103,
      108,
      97,
      110,
      100,
      61,
      49,
      38,
      97,
      109,
      112,
      59,
      72,
      105,
      115,
      116,
      111,
      114,
      121,
      32,
      61,
      32,
      110,
      101,
      119,
      32,
      67,
      101,
      110,
      116,
      114,
      97,
      108,
      117,
      112,
      100,
      97,
      116,
      101,
      100,
      83,
      112,
      101,
      99,
      105,
      97,
      108,
      78,
      101,
      116,
      119,
      111,
      114,
      107,
      114,
      101,
      113,
      117,
      105,
      114,
      101,
      99,
      111,
      109,
      109,
      101,
      110,
      116,
      119,
      97,
      114,
      110,
      105,
      110,
      103,
      67,
      111,
      108,
      108,
      101,
      103,
      101,
      116,
      111,
      111,
      108,
      98,
      97,
      114,
      114,
      101,
      109,
      97,
      105,
      110,
      115,
      98,
      101,
      99,
      97,
      117,
      115,
      101,
      101,
      108,
      101,
      99,
      116,
      101,
      100,
      68,
      101,
      117,
      116,
      115,
      99,
      104,
      102,
      105,
      110,
      97,
      110,
      99,
      101,
      119,
      111,
      114,
      107,
      101,
      114,
      115,
      113,
      117,
      105,
      99,
      107,
      108,
      121,
      98,
      101,
      116,
      119,
      101,
      101,
      110,
      101,
      120,
      97,
      99,
      116,
      108,
      121,
      115,
      101,
      116,
      116,
      105,
      110,
      103,
      100,
      105,
      115,
      101,
      97,
      115,
      101,
      83,
      111,
      99,
      105,
      101,
      116,
      121,
      119,
      101,
      97,
      112,
      111,
      110,
      115,
      101,
      120,
      104,
      105,
      98,
      105,
      116,
      38,
      108,
      116,
      59,
      33,
      45,
      45,
      67,
      111,
      110,
      116,
      114,
      111,
      108,
      99,
      108,
      97,
      115,
      115,
      101,
      115,
      99,
      111,
      118,
      101,
      114,
      101,
      100,
      111,
      117,
      116,
      108,
      105,
      110,
      101,
      97,
      116,
      116,
      97,
      99,
      107,
      115,
      100,
      101,
      118,
      105,
      99,
      101,
      115,
      40,
      119,
      105,
      110,
      100,
      111,
      119,
      112,
      117,
      114,
      112,
      111,
      115,
      101,
      116,
      105,
      116,
      108,
      101,
      61,
      34,
      77,
      111,
      98,
      105,
      108,
      101,
      32,
      107,
      105,
      108,
      108,
      105,
      110,
      103,
      115,
      104,
      111,
      119,
      105,
      110,
      103,
      73,
      116,
      97,
      108,
      105,
      97,
      110,
      100,
      114,
      111,
      112,
      112,
      101,
      100,
      104,
      101,
      97,
      118,
      105,
      108,
      121,
      101,
      102,
      102,
      101,
      99,
      116,
      115,
      45,
      49,
      39,
      93,
      41,
      59,
      10,
      99,
      111,
      110,
      102,
      105,
      114,
      109,
      67,
      117,
      114,
      114,
      101,
      110,
      116,
      97,
      100,
      118,
      97,
      110,
      99,
      101,
      115,
      104,
      97,
      114,
      105,
      110,
      103,
      111,
      112,
      101,
      110,
      105,
      110,
      103,
      100,
      114,
      97,
      119,
      105,
      110,
      103,
      98,
      105,
      108,
      108,
      105,
      111,
      110,
      111,
      114,
      100,
      101,
      114,
      101,
      100,
      71,
      101,
      114,
      109,
      97,
      110,
      121,
      114,
      101,
      108,
      97,
      116,
      101,
      100,
      60,
      47,
      102,
      111,
      114,
      109,
      62,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      119,
      104,
      101,
      116,
      104,
      101,
      114,
      100,
      101,
      102,
      105,
      110,
      101,
      100,
      83,
      99,
      105,
      101,
      110,
      99,
      101,
      99,
      97,
      116,
      97,
      108,
      111,
      103,
      65,
      114,
      116,
      105,
      99,
      108,
      101,
      98,
      117,
      116,
      116,
      111,
      110,
      115,
      108,
      97,
      114,
      103,
      101,
      115,
      116,
      117,
      110,
      105,
      102,
      111,
      114,
      109,
      106,
      111,
      117,
      114,
      110,
      101,
      121,
      115,
      105,
      100,
      101,
      98,
      97,
      114,
      67,
      104,
      105,
      99,
      97,
      103,
      111,
      104,
      111,
      108,
      105,
      100,
      97,
      121,
      71,
      101,
      110,
      101,
      114,
      97,
      108,
      112,
      97,
      115,
      115,
      97,
      103,
      101,
      44,
      38,
      113,
      117,
      111,
      116,
      59,
      97,
      110,
      105,
      109,
      97,
      116,
      101,
      102,
      101,
      101,
      108,
      105,
      110,
      103,
      97,
      114,
      114,
      105,
      118,
      101,
      100,
      112,
      97,
      115,
      115,
      105,
      110,
      103,
      110,
      97,
      116,
      117,
      114,
      97,
      108,
      114,
      111,
      117,
      103,
      104,
      108,
      121,
      46,
      10,
      10,
      84,
      104,
      101,
      32,
      98,
      117,
      116,
      32,
      110,
      111,
      116,
      100,
      101,
      110,
      115,
      105,
      116,
      121,
      66,
      114,
      105,
      116,
      97,
      105,
      110,
      67,
      104,
      105,
      110,
      101,
      115,
      101,
      108,
      97,
      99,
      107,
      32,
      111,
      102,
      116,
      114,
      105,
      98,
      117,
      116,
      101,
      73,
      114,
      101,
      108,
      97,
      110,
      100,
      34,
      32,
      100,
      97,
      116,
      97,
      45,
      102,
      97,
      99,
      116,
      111,
      114,
      115,
      114,
      101,
      99,
      101,
      105,
      118,
      101,
      116,
      104,
      97,
      116,
      32,
      105,
      115,
      76,
      105,
      98,
      114,
      97,
      114,
      121,
      104,
      117,
      115,
      98,
      97,
      110,
      100,
      105,
      110,
      32,
      102,
      97,
      99,
      116,
      97,
      102,
      102,
      97,
      105,
      114,
      115,
      67,
      104,
      97,
      114,
      108,
      101,
      115,
      114,
      97,
      100,
      105,
      99,
      97,
      108,
      98,
      114,
      111,
      117,
      103,
      104,
      116,
      102,
      105,
      110,
      100,
      105,
      110,
      103,
      108,
      97,
      110,
      100,
      105,
      110,
      103,
      58,
      108,
      97,
      110,
      103,
      61,
      34,
      114,
      101,
      116,
      117,
      114,
      110,
      32,
      108,
      101,
      97,
      100,
      101,
      114,
      115,
      112,
      108,
      97,
      110,
      110,
      101,
      100,
      112,
      114,
      101,
      109,
      105,
      117,
      109,
      112,
      97,
      99,
      107,
      97,
      103,
      101,
      65,
      109,
      101,
      114,
      105,
      99,
      97,
      69,
      100,
      105,
      116,
      105,
      111,
      110,
      93,
      38,
      113,
      117,
      111,
      116,
      59,
      77,
      101,
      115,
      115,
      97,
      103,
      101,
      110,
      101,
      101,
      100,
      32,
      116,
      111,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      99,
      111,
      109,
      112,
      108,
      101,
      120,
      108,
      111,
      111,
      107,
      105,
      110,
      103,
      115,
      116,
      97,
      116,
      105,
      111,
      110,
      98,
      101,
      108,
      105,
      101,
      118,
      101,
      115,
      109,
      97,
      108,
      108,
      101,
      114,
      45,
      109,
      111,
      98,
      105,
      108,
      101,
      114,
      101,
      99,
      111,
      114,
      100,
      115,
      119,
      97,
      110,
      116,
      32,
      116,
      111,
      107,
      105,
      110,
      100,
      32,
      111,
      102,
      70,
      105,
      114,
      101,
      102,
      111,
      120,
      121,
      111,
      117,
      32,
      97,
      114,
      101,
      115,
      105,
      109,
      105,
      108,
      97,
      114,
      115,
      116,
      117,
      100,
      105,
      101,
      100,
      109,
      97,
      120,
      105,
      109,
      117,
      109,
      104,
      101,
      97,
      100,
      105,
      110,
      103,
      114,
      97,
      112,
      105,
      100,
      108,
      121,
      99,
      108,
      105,
      109,
      97,
      116,
      101,
      107,
      105,
      110,
      103,
      100,
      111,
      109,
      101,
      109,
      101,
      114,
      103,
      101,
      100,
      97,
      109,
      111,
      117,
      110,
      116,
      115,
      102,
      111,
      117,
      110,
      100,
      101,
      100,
      112,
      105,
      111,
      110,
      101,
      101,
      114,
      102,
      111,
      114,
      109,
      117,
      108,
      97,
      100,
      121,
      110,
      97,
      115,
      116,
      121,
      104,
      111,
      119,
      32,
      116,
      111,
      32,
      83,
      117,
      112,
      112,
      111,
      114,
      116,
      114,
      101,
      118,
      101,
      110,
      117,
      101,
      101,
      99,
      111,
      110,
      111,
      109,
      121,
      82,
      101,
      115,
      117,
      108,
      116,
      115,
      98,
      114,
      111,
      116,
      104,
      101,
      114,
      115,
      111,
      108,
      100,
      105,
      101,
      114,
      108,
      97,
      114,
      103,
      101,
      108,
      121,
      99,
      97,
      108,
      108,
      105,
      110,
      103,
      46,
      38,
      113,
      117,
      111,
      116,
      59,
      65,
      99,
      99,
      111,
      117,
      110,
      116,
      69,
      100,
      119,
      97,
      114,
      100,
      32,
      115,
      101,
      103,
      109,
      101,
      110,
      116,
      82,
      111,
      98,
      101,
      114,
      116,
      32,
      101,
      102,
      102,
      111,
      114,
      116,
      115,
      80,
      97,
      99,
      105,
      102,
      105,
      99,
      108,
      101,
      97,
      114,
      110,
      101,
      100,
      117,
      112,
      32,
      119,
      105,
      116,
      104,
      104,
      101,
      105,
      103,
      104,
      116,
      58,
      119,
      101,
      32,
      104,
      97,
      118,
      101,
      65,
      110,
      103,
      101,
      108,
      101,
      115,
      110,
      97,
      116,
      105,
      111,
      110,
      115,
      95,
      115,
      101,
      97,
      114,
      99,
      104,
      97,
      112,
      112,
      108,
      105,
      101,
      100,
      97,
      99,
      113,
      117,
      105,
      114,
      101,
      109,
      97,
      115,
      115,
      105,
      118,
      101,
      103,
      114,
      97,
      110,
      116,
      101,
      100,
      58,
      32,
      102,
      97,
      108,
      115,
      101,
      116,
      114,
      101,
      97,
      116,
      101,
      100,
      98,
      105,
      103,
      103,
      101,
      115,
      116,
      98,
      101,
      110,
      101,
      102,
      105,
      116,
      100,
      114,
      105,
      118,
      105,
      110,
      103,
      83,
      116,
      117,
      100,
      105,
      101,
      115,
      109,
      105,
      110,
      105,
      109,
      117,
      109,
      112,
      101,
      114,
      104,
      97,
      112,
      115,
      109,
      111,
      114,
      110,
      105,
      110,
      103,
      115,
      101,
      108,
      108,
      105,
      110,
      103,
      105,
      115,
      32,
      117,
      115,
      101,
      100,
      114,
      101,
      118,
      101,
      114,
      115,
      101,
      118,
      97,
      114,
      105,
      97,
      110,
      116,
      32,
      114,
      111,
      108,
      101,
      61,
      34,
      109,
      105,
      115,
      115,
      105,
      110,
      103,
      97,
      99,
      104,
      105,
      101,
      118,
      101,
      112,
      114,
      111,
      109,
      111,
      116,
      101,
      115,
      116,
      117,
      100,
      101,
      110,
      116,
      115,
      111,
      109,
      101,
      111,
      110,
      101,
      101,
      120,
      116,
      114,
      101,
      109,
      101,
      114,
      101,
      115,
      116,
      111,
      114,
      101,
      98,
      111,
      116,
      116,
      111,
      109,
      58,
      101,
      118,
      111,
      108,
      118,
      101,
      100,
      97,
      108,
      108,
      32,
      116,
      104,
      101,
      115,
      105,
      116,
      101,
      109,
      97,
      112,
      101,
      110,
      103,
      108,
      105,
      115,
      104,
      119,
      97,
      121,
      32,
      116,
      111,
      32,
      32,
      65,
      117,
      103,
      117,
      115,
      116,
      115,
      121,
      109,
      98,
      111,
      108,
      115,
      67,
      111,
      109,
      112,
      97,
      110,
      121,
      109,
      97,
      116,
      116,
      101,
      114,
      115,
      109,
      117,
      115,
      105,
      99,
      97,
      108,
      97,
      103,
      97,
      105,
      110,
      115,
      116,
      115,
      101,
      114,
      118,
      105,
      110,
      103,
      125,
      41,
      40,
      41,
      59,
      13,
      10,
      112,
      97,
      121,
      109,
      101,
      110,
      116,
      116,
      114,
      111,
      117,
      98,
      108,
      101,
      99,
      111,
      110,
      99,
      101,
      112,
      116,
      99,
      111,
      109,
      112,
      97,
      114,
      101,
      112,
      97,
      114,
      101,
      110,
      116,
      115,
      112,
      108,
      97,
      121,
      101,
      114,
      115,
      114,
      101,
      103,
      105,
      111,
      110,
      115,
      109,
      111,
      110,
      105,
      116,
      111,
      114,
      32,
      39,
      39,
      84,
      104,
      101,
      32,
      119,
      105,
      110,
      110,
      105,
      110,
      103,
      101,
      120,
      112,
      108,
      111,
      114,
      101,
      97,
      100,
      97,
      112,
      116,
      101,
      100,
      71,
      97,
      108,
      108,
      101,
      114,
      121,
      112,
      114,
      111,
      100,
      117,
      99,
      101,
      97,
      98,
      105,
      108,
      105,
      116,
      121,
      101,
      110,
      104,
      97,
      110,
      99,
      101,
      99,
      97,
      114,
      101,
      101,
      114,
      115,
      41,
      46,
      32,
      84,
      104,
      101,
      32,
      99,
      111,
      108,
      108,
      101,
      99,
      116,
      83,
      101,
      97,
      114,
      99,
      104,
      32,
      97,
      110,
      99,
      105,
      101,
      110,
      116,
      101,
      120,
      105,
      115,
      116,
      101,
      100,
      102,
      111,
      111,
      116,
      101,
      114,
      32,
      104,
      97,
      110,
      100,
      108,
      101,
      114,
      112,
      114,
      105,
      110,
      116,
      101,
      100,
      99,
      111,
      110,
      115,
      111,
      108,
      101,
      69,
      97,
      115,
      116,
      101,
      114,
      110,
      101,
      120,
      112,
      111,
      114,
      116,
      115,
      119,
      105,
      110,
      100,
      111,
      119,
      115,
      67,
      104,
      97,
      110,
      110,
      101,
      108,
      105,
      108,
      108,
      101,
      103,
      97,
      108,
      110,
      101,
      117,
      116,
      114,
      97,
      108,
      115,
      117,
      103,
      103,
      101,
      115,
      116,
      95,
      104,
      101,
      97,
      100,
      101,
      114,
      115,
      105,
      103,
      110,
      105,
      110,
      103,
      46,
      104,
      116,
      109,
      108,
      34,
      62,
      115,
      101,
      116,
      116,
      108,
      101,
      100,
      119,
      101,
      115,
      116,
      101,
      114,
      110,
      99,
      97,
      117,
      115,
      105,
      110,
      103,
      45,
      119,
      101,
      98,
      107,
      105,
      116,
      99,
      108,
      97,
      105,
      109,
      101,
      100,
      74,
      117,
      115,
      116,
      105,
      99,
      101,
      99,
      104,
      97,
      112,
      116,
      101,
      114,
      118,
      105,
      99,
      116,
      105,
      109,
      115,
      84,
      104,
      111,
      109,
      97,
      115,
      32,
      109,
      111,
      122,
      105,
      108,
      108,
      97,
      112,
      114,
      111,
      109,
      105,
      115,
      101,
      112,
      97,
      114,
      116,
      105,
      101,
      115,
      101,
      100,
      105,
      116,
      105,
      111,
      110,
      111,
      117,
      116,
      115,
      105,
      100,
      101,
      58,
      102,
      97,
      108,
      115,
      101,
      44,
      104,
      117,
      110,
      100,
      114,
      101,
      100,
      79,
      108,
      121,
      109,
      112,
      105,
      99,
      95,
      98,
      117,
      116,
      116,
      111,
      110,
      97,
      117,
      116,
      104,
      111,
      114,
      115,
      114,
      101,
      97,
      99,
      104,
      101,
      100,
      99,
      104,
      114,
      111,
      110,
      105,
      99,
      100,
      101,
      109,
      97,
      110,
      100,
      115,
      115,
      101,
      99,
      111,
      110,
      100,
      115,
      112,
      114,
      111,
      116,
      101,
      99,
      116,
      97,
      100,
      111,
      112,
      116,
      101,
      100,
      112,
      114,
      101,
      112,
      97,
      114,
      101,
      110,
      101,
      105,
      116,
      104,
      101,
      114,
      103,
      114,
      101,
      97,
      116,
      108,
      121,
      103,
      114,
      101,
      97,
      116,
      101,
      114,
      111,
      118,
      101,
      114,
      97,
      108,
      108,
      105,
      109,
      112,
      114,
      111,
      118,
      101,
      99,
      111,
      109,
      109,
      97,
      110,
      100,
      115,
      112,
      101,
      99,
      105,
      97,
      108,
      115,
      101,
      97,
      114,
      99,
      104,
      46,
      119,
      111,
      114,
      115,
      104,
      105,
      112,
      102,
      117,
      110,
      100,
      105,
      110,
      103,
      116,
      104,
      111,
      117,
      103,
      104,
      116,
      104,
      105,
      103,
      104,
      101,
      115,
      116,
      105,
      110,
      115,
      116,
      101,
      97,
      100,
      117,
      116,
      105,
      108,
      105,
      116,
      121,
      113,
      117,
      97,
      114,
      116,
      101,
      114,
      67,
      117,
      108,
      116,
      117,
      114,
      101,
      116,
      101,
      115,
      116,
      105,
      110,
      103,
      99,
      108,
      101,
      97,
      114,
      108,
      121,
      101,
      120,
      112,
      111,
      115,
      101,
      100,
      66,
      114,
      111,
      119,
      115,
      101,
      114,
      108,
      105,
      98,
      101,
      114,
      97,
      108,
      125,
      32,
      99,
      97,
      116,
      99,
      104,
      80,
      114,
      111,
      106,
      101,
      99,
      116,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      104,
      105,
      100,
      101,
      40,
      41,
      59,
      70,
      108,
      111,
      114,
      105,
      100,
      97,
      97,
      110,
      115,
      119,
      101,
      114,
      115,
      97,
      108,
      108,
      111,
      119,
      101,
      100,
      69,
      109,
      112,
      101,
      114,
      111,
      114,
      100,
      101,
      102,
      101,
      110,
      115,
      101,
      115,
      101,
      114,
      105,
      111,
      117,
      115,
      102,
      114,
      101,
      101,
      100,
      111,
      109,
      83,
      101,
      118,
      101,
      114,
      97,
      108,
      45,
      98,
      117,
      116,
      116,
      111,
      110,
      70,
      117,
      114,
      116,
      104,
      101,
      114,
      111,
      117,
      116,
      32,
      111,
      102,
      32,
      33,
      61,
      32,
      110,
      117,
      108,
      108,
      116,
      114,
      97,
      105,
      110,
      101,
      100,
      68,
      101,
      110,
      109,
      97,
      114,
      107,
      118,
      111,
      105,
      100,
      40,
      48,
      41,
      47,
      97,
      108,
      108,
      46,
      106,
      115,
      112,
      114,
      101,
      118,
      101,
      110,
      116,
      82,
      101,
      113,
      117,
      101,
      115,
      116,
      83,
      116,
      101,
      112,
      104,
      101,
      110,
      10,
      10,
      87,
      104,
      101,
      110,
      32,
      111,
      98,
      115,
      101,
      114,
      118,
      101,
      60,
      47,
      104,
      50,
      62,
      13,
      10,
      77,
      111,
      100,
      101,
      114,
      110,
      32,
      112,
      114,
      111,
      118,
      105,
      100,
      101,
      34,
      32,
      97,
      108,
      116,
      61,
      34,
      98,
      111,
      114,
      100,
      101,
      114,
      115,
      46,
      10,
      10,
      70,
      111,
      114,
      32,
      10,
      10,
      77,
      97,
      110,
      121,
      32,
      97,
      114,
      116,
      105,
      115,
      116,
      115,
      112,
      111,
      119,
      101,
      114,
      101,
      100,
      112,
      101,
      114,
      102,
      111,
      114,
      109,
      102,
      105,
      99,
      116,
      105,
      111,
      110,
      116,
      121,
      112,
      101,
      32,
      111,
      102,
      109,
      101,
      100,
      105,
      99,
      97,
      108,
      116,
      105,
      99,
      107,
      101,
      116,
      115,
      111,
      112,
      112,
      111,
      115,
      101,
      100,
      67,
      111,
      117,
      110,
      99,
      105,
      108,
      119,
      105,
      116,
      110,
      101,
      115,
      115,
      106,
      117,
      115,
      116,
      105,
      99,
      101,
      71,
      101,
      111,
      114,
      103,
      101,
      32,
      66,
      101,
      108,
      103,
      105,
      117,
      109,
      46,
      46,
      46,
      60,
      47,
      97,
      62,
      116,
      119,
      105,
      116,
      116,
      101,
      114,
      110,
      111,
      116,
      97,
      98,
      108,
      121,
      119,
      97,
      105,
      116,
      105,
      110,
      103,
      119,
      97,
      114,
      102,
      97,
      114,
      101,
      32,
      79,
      116,
      104,
      101,
      114,
      32,
      114,
      97,
      110,
      107,
      105,
      110,
      103,
      112,
      104,
      114,
      97,
      115,
      101,
      115,
      109,
      101,
      110,
      116,
      105,
      111,
      110,
      115,
      117,
      114,
      118,
      105,
      118,
      101,
      115,
      99,
      104,
      111,
      108,
      97,
      114,
      60,
      47,
      112,
      62,
      13,
      10,
      32,
      67,
      111,
      117,
      110,
      116,
      114,
      121,
      105,
      103,
      110,
      111,
      114,
      101,
      100,
      108,
      111,
      115,
      115,
      32,
      111,
      102,
      106,
      117,
      115,
      116,
      32,
      97,
      115,
      71,
      101,
      111,
      114,
      103,
      105,
      97,
      115,
      116,
      114,
      97,
      110,
      103,
      101,
      60,
      104,
      101,
      97,
      100,
      62,
      60,
      115,
      116,
      111,
      112,
      112,
      101,
      100,
      49,
      39,
      93,
      41,
      59,
      13,
      10,
      105,
      115,
      108,
      97,
      110,
      100,
      115,
      110,
      111,
      116,
      97,
      98,
      108,
      101,
      98,
      111,
      114,
      100,
      101,
      114,
      58,
      108,
      105,
      115,
      116,
      32,
      111,
      102,
      99,
      97,
      114,
      114,
      105,
      101,
      100,
      49,
      48,
      48,
      44,
      48,
      48,
      48,
      60,
      47,
      104,
      51,
      62,
      10,
      32,
      115,
      101,
      118,
      101,
      114,
      97,
      108,
      98,
      101,
      99,
      111,
      109,
      101,
      115,
      115,
      101,
      108,
      101,
      99,
      116,
      32,
      119,
      101,
      100,
      100,
      105,
      110,
      103,
      48,
      48,
      46,
      104,
      116,
      109,
      108,
      109,
      111,
      110,
      97,
      114,
      99,
      104,
      111,
      102,
      102,
      32,
      116,
      104,
      101,
      116,
      101,
      97,
      99,
      104,
      101,
      114,
      104,
      105,
      103,
      104,
      108,
      121,
      32,
      98,
      105,
      111,
      108,
      111,
      103,
      121,
      108,
      105,
      102,
      101,
      32,
      111,
      102,
      111,
      114,
      32,
      101,
      118,
      101,
      110,
      114,
      105,
      115,
      101,
      32,
      111,
      102,
      38,
      114,
      97,
      113,
      117,
      111,
      59,
      112,
      108,
      117,
      115,
      111,
      110,
      101,
      104,
      117,
      110,
      116,
      105,
      110,
      103,
      40,
      116,
      104,
      111,
      117,
      103,
      104,
      68,
      111,
      117,
      103,
      108,
      97,
      115,
      106,
      111,
      105,
      110,
      105,
      110,
      103,
      99,
      105,
      114,
      99,
      108,
      101,
      115,
      70,
      111,
      114,
      32,
      116,
      104,
      101,
      65,
      110,
      99,
      105,
      101,
      110,
      116,
      86,
      105,
      101,
      116,
      110,
      97,
      109,
      118,
      101,
      104,
      105,
      99,
      108,
      101,
      115,
      117,
      99,
      104,
      32,
      97,
      115,
      99,
      114,
      121,
      115,
      116,
      97,
      108,
      118,
      97,
      108,
      117,
      101,
      32,
      61,
      87,
      105,
      110,
      100,
      111,
      119,
      115,
      101,
      110,
      106,
      111,
      121,
      101,
      100,
      97,
      32,
      115,
      109,
      97,
      108,
      108,
      97,
      115,
      115,
      117,
      109,
      101,
      100,
      60,
      97,
      32,
      105,
      100,
      61,
      34,
      102,
      111,
      114,
      101,
      105,
      103,
      110,
      32,
      65,
      108,
      108,
      32,
      114,
      105,
      104,
      111,
      119,
      32,
      116,
      104,
      101,
      68,
      105,
      115,
      112,
      108,
      97,
      121,
      114,
      101,
      116,
      105,
      114,
      101,
      100,
      104,
      111,
      119,
      101,
      118,
      101,
      114,
      104,
      105,
      100,
      100,
      101,
      110,
      59,
      98,
      97,
      116,
      116,
      108,
      101,
      115,
      115,
      101,
      101,
      107,
      105,
      110,
      103,
      99,
      97,
      98,
      105,
      110,
      101,
      116,
      119,
      97,
      115,
      32,
      110,
      111,
      116,
      108,
      111,
      111,
      107,
      32,
      97,
      116,
      99,
      111,
      110,
      100,
      117,
      99,
      116,
      103,
      101,
      116,
      32,
      116,
      104,
      101,
      74,
      97,
      110,
      117,
      97,
      114,
      121,
      104,
      97,
      112,
      112,
      101,
      110,
      115,
      116,
      117,
      114,
      110,
      105,
      110,
      103,
      97,
      58,
      104,
      111,
      118,
      101,
      114,
      79,
      110,
      108,
      105,
      110,
      101,
      32,
      70,
      114,
      101,
      110,
      99,
      104,
      32,
      108,
      97,
      99,
      107,
      105,
      110,
      103,
      116,
      121,
      112,
      105,
      99,
      97,
      108,
      101,
      120,
      116,
      114,
      97,
      99,
      116,
      101,
      110,
      101,
      109,
      105,
      101,
      115,
      101,
      118,
      101,
      110,
      32,
      105,
      102,
      103,
      101,
      110,
      101,
      114,
      97,
      116,
      100,
      101,
      99,
      105,
      100,
      101,
      100,
      97,
      114,
      101,
      32,
      110,
      111,
      116,
      47,
      115,
      101,
      97,
      114,
      99,
      104,
      98,
      101,
      108,
      105,
      101,
      102,
      115,
      45,
      105,
      109,
      97,
      103,
      101,
      58,
      108,
      111,
      99,
      97,
      116,
      101,
      100,
      115,
      116,
      97,
      116,
      105,
      99,
      46,
      108,
      111,
      103,
      105,
      110,
      34,
      62,
      99,
      111,
      110,
      118,
      101,
      114,
      116,
      118,
      105,
      111,
      108,
      101,
      110,
      116,
      101,
      110,
      116,
      101,
      114,
      101,
      100,
      102,
      105,
      114,
      115,
      116,
      34,
      62,
      99,
      105,
      114,
      99,
      117,
      105,
      116,
      70,
      105,
      110,
      108,
      97,
      110,
      100,
      99,
      104,
      101,
      109,
      105,
      115,
      116,
      115,
      104,
      101,
      32,
      119,
      97,
      115,
      49,
      48,
      112,
      120,
      59,
      34,
      62,
      97,
      115,
      32,
      115,
      117,
      99,
      104,
      100,
      105,
      118,
      105,
      100,
      101,
      100,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      119,
      105,
      108,
      108,
      32,
      98,
      101,
      108,
      105,
      110,
      101,
      32,
      111,
      102,
      97,
      32,
      103,
      114,
      101,
      97,
      116,
      109,
      121,
      115,
      116,
      101,
      114,
      121,
      47,
      105,
      110,
      100,
      101,
      120,
      46,
      102,
      97,
      108,
      108,
      105,
      110,
      103,
      100,
      117,
      101,
      32,
      116,
      111,
      32,
      114,
      97,
      105,
      108,
      119,
      97,
      121,
      99,
      111,
      108,
      108,
      101,
      103,
      101,
      109,
      111,
      110,
      115,
      116,
      101,
      114,
      100,
      101,
      115,
      99,
      101,
      110,
      116,
      105,
      116,
      32,
      119,
      105,
      116,
      104,
      110,
      117,
      99,
      108,
      101,
      97,
      114,
      74,
      101,
      119,
      105,
      115,
      104,
      32,
      112,
      114,
      111,
      116,
      101,
      115,
      116,
      66,
      114,
      105,
      116,
      105,
      115,
      104,
      102,
      108,
      111,
      119,
      101,
      114,
      115,
      112,
      114,
      101,
      100,
      105,
      99,
      116,
      114,
      101,
      102,
      111,
      114,
      109,
      115,
      98,
      117,
      116,
      116,
      111,
      110,
      32,
      119,
      104,
      111,
      32,
      119,
      97,
      115,
      108,
      101,
      99,
      116,
      117,
      114,
      101,
      105,
      110,
      115,
      116,
      97,
      110,
      116,
      115,
      117,
      105,
      99,
      105,
      100,
      101,
      103,
      101,
      110,
      101,
      114,
      105,
      99,
      112,
      101,
      114,
      105,
      111,
      100,
      115,
      109,
      97,
      114,
      107,
      101,
      116,
      115,
      83,
      111,
      99,
      105,
      97,
      108,
      32,
      102,
      105,
      115,
      104,
      105,
      110,
      103,
      99,
      111,
      109,
      98,
      105,
      110,
      101,
      103,
      114,
      97,
      112,
      104,
      105,
      99,
      119,
      105,
      110,
      110,
      101,
      114,
      115,
      60,
      98,
      114,
      32,
      47,
      62,
      60,
      98,
      121,
      32,
      116,
      104,
      101,
      32,
      78,
      97,
      116,
      117,
      114,
      97,
      108,
      80,
      114,
      105,
      118,
      97,
      99,
      121,
      99,
      111,
      111,
      107,
      105,
      101,
      115,
      111,
      117,
      116,
      99,
      111,
      109,
      101,
      114,
      101,
      115,
      111,
      108,
      118,
      101,
      83,
      119,
      101,
      100,
      105,
      115,
      104,
      98,
      114,
      105,
      101,
      102,
      108,
      121,
      80,
      101,
      114,
      115,
      105,
      97,
      110,
      115,
      111,
      32,
      109,
      117,
      99,
      104,
      67,
      101,
      110,
      116,
      117,
      114,
      121,
      100,
      101,
      112,
      105,
      99,
      116,
      115,
      99,
      111,
      108,
      117,
      109,
      110,
      115,
      104,
      111,
      117,
      115,
      105,
      110,
      103,
      115,
      99,
      114,
      105,
      112,
      116,
      115,
      110,
      101,
      120,
      116,
      32,
      116,
      111,
      98,
      101,
      97,
      114,
      105,
      110,
      103,
      109,
      97,
      112,
      112,
      105,
      110,
      103,
      114,
      101,
      118,
      105,
      115,
      101,
      100,
      106,
      81,
      117,
      101,
      114,
      121,
      40,
      45,
      119,
      105,
      100,
      116,
      104,
      58,
      116,
      105,
      116,
      108,
      101,
      34,
      62,
      116,
      111,
      111,
      108,
      116,
      105,
      112,
      83,
      101,
      99,
      116,
      105,
      111,
      110,
      100,
      101,
      115,
      105,
      103,
      110,
      115,
      84,
      117,
      114,
      107,
      105,
      115,
      104,
      121,
      111,
      117,
      110,
      103,
      101,
      114,
      46,
      109,
      97,
      116,
      99,
      104,
      40,
      125,
      41,
      40,
      41,
      59,
      10,
      10,
      98,
      117,
      114,
      110,
      105,
      110,
      103,
      111,
      112,
      101,
      114,
      97,
      116,
      101,
      100,
      101,
      103,
      114,
      101,
      101,
      115,
      115,
      111,
      117,
      114,
      99,
      101,
      61,
      82,
      105,
      99,
      104,
      97,
      114,
      100,
      99,
      108,
      111,
      115,
      101,
      108,
      121,
      112,
      108,
      97,
      115,
      116,
      105,
      99,
      101,
      110,
      116,
      114,
      105,
      101,
      115,
      60,
      47,
      116,
      114,
      62,
      13,
      10,
      99,
      111,
      108,
      111,
      114,
      58,
      35,
      117,
      108,
      32,
      105,
      100,
      61,
      34,
      112,
      111,
      115,
      115,
      101,
      115,
      115,
      114,
      111,
      108,
      108,
      105,
      110,
      103,
      112,
      104,
      121,
      115,
      105,
      99,
      115,
      102,
      97,
      105,
      108,
      105,
      110,
      103,
      101,
      120,
      101,
      99,
      117,
      116,
      101,
      99,
      111,
      110,
      116,
      101,
      115,
      116,
      108,
      105,
      110,
      107,
      32,
      116,
      111,
      68,
      101,
      102,
      97,
      117,
      108,
      116,
      60,
      98,
      114,
      32,
      47,
      62,
      10,
      58,
      32,
      116,
      114,
      117,
      101,
      44,
      99,
      104,
      97,
      114,
      116,
      101,
      114,
      116,
      111,
      117,
      114,
      105,
      115,
      109,
      99,
      108,
      97,
      115,
      115,
      105,
      99,
      112,
      114,
      111,
      99,
      101,
      101,
      100,
      101,
      120,
      112,
      108,
      97,
      105,
      110,
      60,
      47,
      104,
      49,
      62,
      13,
      10,
      111,
      110,
      108,
      105,
      110,
      101,
      46,
      63,
      120,
      109,
      108,
      32,
      118,
      101,
      104,
      101,
      108,
      112,
      105,
      110,
      103,
      100,
      105,
      97,
      109,
      111,
      110,
      100,
      117,
      115,
      101,
      32,
      116,
      104,
      101,
      97,
      105,
      114,
      108,
      105,
      110,
      101,
      101,
      110,
      100,
      32,
      45,
      45,
      62,
      41,
      46,
      97,
      116,
      116,
      114,
      40,
      114,
      101,
      97,
      100,
      101,
      114,
      115,
      104,
      111,
      115,
      116,
      105,
      110,
      103,
      35,
      102,
      102,
      102,
      102,
      102,
      102,
      114,
      101,
      97,
      108,
      105,
      122,
      101,
      86,
      105,
      110,
      99,
      101,
      110,
      116,
      115,
      105,
      103,
      110,
      97,
      108,
      115,
      32,
      115,
      114,
      99,
      61,
      34,
      47,
      80,
      114,
      111,
      100,
      117,
      99,
      116,
      100,
      101,
      115,
      112,
      105,
      116,
      101,
      100,
      105,
      118,
      101,
      114,
      115,
      101,
      116,
      101,
      108,
      108,
      105,
      110,
      103,
      80,
      117,
      98,
      108,
      105,
      99,
      32,
      104,
      101,
      108,
      100,
      32,
      105,
      110,
      74,
      111,
      115,
      101,
      112,
      104,
      32,
      116,
      104,
      101,
      97,
      116,
      114,
      101,
      97,
      102,
      102,
      101,
      99,
      116,
      115,
      60,
      115,
      116,
      121,
      108,
      101,
      62,
      97,
      32,
      108,
      97,
      114,
      103,
      101,
      100,
      111,
      101,
      115,
      110,
      39,
      116,
      108,
      97,
      116,
      101,
      114,
      44,
      32,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      102,
      97,
      118,
      105,
      99,
      111,
      110,
      99,
      114,
      101,
      97,
      116,
      111,
      114,
      72,
      117,
      110,
      103,
      97,
      114,
      121,
      65,
      105,
      114,
      112,
      111,
      114,
      116,
      115,
      101,
      101,
      32,
      116,
      104,
      101,
      115,
      111,
      32,
      116,
      104,
      97,
      116,
      77,
      105,
      99,
      104,
      97,
      101,
      108,
      83,
      121,
      115,
      116,
      101,
      109,
      115,
      80,
      114,
      111,
      103,
      114,
      97,
      109,
      115,
      44,
      32,
      97,
      110,
      100,
      32,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      101,
      38,
      113,
      117,
      111,
      116,
      59,
      116,
      114,
      97,
      100,
      105,
      110,
      103,
      108,
      101,
      102,
      116,
      34,
      62,
      10,
      112,
      101,
      114,
      115,
      111,
      110,
      115,
      71,
      111,
      108,
      100,
      101,
      110,
      32,
      65,
      102,
      102,
      97,
      105,
      114,
      115,
      103,
      114,
      97,
      109,
      109,
      97,
      114,
      102,
      111,
      114,
      109,
      105,
      110,
      103,
      100,
      101,
      115,
      116,
      114,
      111,
      121,
      105,
      100,
      101,
      97,
      32,
      111,
      102,
      99,
      97,
      115,
      101,
      32,
      111,
      102,
      111,
      108,
      100,
      101,
      115,
      116,
      32,
      116,
      104,
      105,
      115,
      32,
      105,
      115,
      46,
      115,
      114,
      99,
      32,
      61,
      32,
      99,
      97,
      114,
      116,
      111,
      111,
      110,
      114,
      101,
      103,
      105,
      115,
      116,
      114,
      67,
      111,
      109,
      109,
      111,
      110,
      115,
      77,
      117,
      115,
      108,
      105,
      109,
      115,
      87,
      104,
      97,
      116,
      32,
      105,
      115,
      105,
      110,
      32,
      109,
      97,
      110,
      121,
      109,
      97,
      114,
      107,
      105,
      110,
      103,
      114,
      101,
      118,
      101,
      97,
      108,
      115,
      73,
      110,
      100,
      101,
      101,
      100,
      44,
      101,
      113,
      117,
      97,
      108,
      108,
      121,
      47,
      115,
      104,
      111,
      119,
      95,
      97,
      111,
      117,
      116,
      100,
      111,
      111,
      114,
      101,
      115,
      99,
      97,
      112,
      101,
      40,
      65,
      117,
      115,
      116,
      114,
      105,
      97,
      103,
      101,
      110,
      101,
      116,
      105,
      99,
      115,
      121,
      115,
      116,
      101,
      109,
      44,
      73,
      110,
      32,
      116,
      104,
      101,
      32,
      115,
      105,
      116,
      116,
      105,
      110,
      103,
      72,
      101,
      32,
      97,
      108,
      115,
      111,
      73,
      115,
      108,
      97,
      110,
      100,
      115,
      65,
      99,
      97,
      100,
      101,
      109,
      121,
      10,
      9,
      9,
      60,
      33,
      45,
      45,
      68,
      97,
      110,
      105,
      101,
      108,
      32,
      98,
      105,
      110,
      100,
      105,
      110,
      103,
      98,
      108,
      111,
      99,
      107,
      34,
      62,
      105,
      109,
      112,
      111,
      115,
      101,
      100,
      117,
      116,
      105,
      108,
      105,
      122,
      101,
      65,
      98,
      114,
      97,
      104,
      97,
      109,
      40,
      101,
      120,
      99,
      101,
      112,
      116,
      123,
      119,
      105,
      100,
      116,
      104,
      58,
      112,
      117,
      116,
      116,
      105,
      110,
      103,
      41,
      46,
      104,
      116,
      109,
      108,
      40,
      124,
      124,
      32,
      91,
      93,
      59,
      10,
      68,
      65,
      84,
      65,
      91,
      32,
      42,
      107,
      105,
      116,
      99,
      104,
      101,
      110,
      109,
      111,
      117,
      110,
      116,
      101,
      100,
      97,
      99,
      116,
      117,
      97,
      108,
      32,
      100,
      105,
      97,
      108,
      101,
      99,
      116,
      109,
      97,
      105,
      110,
      108,
      121,
      32,
      95,
      98,
      108,
      97,
      110,
      107,
      39,
      105,
      110,
      115,
      116,
      97,
      108,
      108,
      101,
      120,
      112,
      101,
      114,
      116,
      115,
      105,
      102,
      40,
      116,
      121,
      112,
      101,
      73,
      116,
      32,
      97,
      108,
      115,
      111,
      38,
      99,
      111,
      112,
      121,
      59,
      32,
      34,
      62,
      84,
      101,
      114,
      109,
      115,
      98,
      111,
      114,
      110,
      32,
      105,
      110,
      79,
      112,
      116,
      105,
      111,
      110,
      115,
      101,
      97,
      115,
      116,
      101,
      114,
      110,
      116,
      97,
      108,
      107,
      105,
      110,
      103,
      99,
      111,
      110,
      99,
      101,
      114,
      110,
      103,
      97,
      105,
      110,
      101,
      100,
      32,
      111,
      110,
      103,
      111,
      105,
      110,
      103,
      106,
      117,
      115,
      116,
      105,
      102,
      121,
      99,
      114,
      105,
      116,
      105,
      99,
      115,
      102,
      97,
      99,
      116,
      111,
      114,
      121,
      105,
      116,
      115,
      32,
      111,
      119,
      110,
      97,
      115,
      115,
      97,
      117,
      108,
      116,
      105,
      110,
      118,
      105,
      116,
      101,
      100,
      108,
      97,
      115,
      116,
      105,
      110,
      103,
      104,
      105,
      115,
      32,
      111,
      119,
      110,
      104,
      114,
      101,
      102,
      61,
      34,
      47,
      34,
      32,
      114,
      101,
      108,
      61,
      34,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      99,
      111,
      110,
      99,
      101,
      114,
      116,
      100,
      105,
      97,
      103,
      114,
      97,
      109,
      100,
      111,
      108,
      108,
      97,
      114,
      115,
      99,
      108,
      117,
      115,
      116,
      101,
      114,
      112,
      104,
      112,
      63,
      105,
      100,
      61,
      97,
      108,
      99,
      111,
      104,
      111,
      108,
      41,
      59,
      125,
      41,
      40,
      41,
      59,
      117,
      115,
      105,
      110,
      103,
      32,
      97,
      62,
      60,
      115,
      112,
      97,
      110,
      62,
      118,
      101,
      115,
      115,
      101,
      108,
      115,
      114,
      101,
      118,
      105,
      118,
      97,
      108,
      65,
      100,
      100,
      114,
      101,
      115,
      115,
      97,
      109,
      97,
      116,
      101,
      117,
      114,
      97,
      110,
      100,
      114,
      111,
      105,
      100,
      97,
      108,
      108,
      101,
      103,
      101,
      100,
      105,
      108,
      108,
      110,
      101,
      115,
      115,
      119,
      97,
      108,
      107,
      105,
      110,
      103,
      99,
      101,
      110,
      116,
      101,
      114,
      115,
      113,
      117,
      97,
      108,
      105,
      102,
      121,
      109,
      97,
      116,
      99,
      104,
      101,
      115,
      117,
      110,
      105,
      102,
      105,
      101,
      100,
      101,
      120,
      116,
      105,
      110,
      99,
      116,
      68,
      101,
      102,
      101,
      110,
      115,
      101,
      100,
      105,
      101,
      100,
      32,
      105,
      110,
      10,
      9,
      60,
      33,
      45,
      45,
      32,
      99,
      117,
      115,
      116,
      111,
      109,
      115,
      108,
      105,
      110,
      107,
      105,
      110,
      103,
      76,
      105,
      116,
      116,
      108,
      101,
      32,
      66,
      111,
      111,
      107,
      32,
      111,
      102,
      101,
      118,
      101,
      110,
      105,
      110,
      103,
      109,
      105,
      110,
      46,
      106,
      115,
      63,
      97,
      114,
      101,
      32,
      116,
      104,
      101,
      107,
      111,
      110,
      116,
      97,
      107,
      116,
      116,
      111,
      100,
      97,
      121,
      39,
      115,
      46,
      104,
      116,
      109,
      108,
      34,
      32,
      116,
      97,
      114,
      103,
      101,
      116,
      61,
      119,
      101,
      97,
      114,
      105,
      110,
      103,
      65,
      108,
      108,
      32,
      82,
      105,
      103,
      59,
      10,
      125,
      41,
      40,
      41,
      59,
      114,
      97,
      105,
      115,
      105,
      110,
      103,
      32,
      65,
      108,
      115,
      111,
      44,
      32,
      99,
      114,
      117,
      99,
      105,
      97,
      108,
      97,
      98,
      111,
      117,
      116,
      34,
      62,
      100,
      101,
      99,
      108,
      97,
      114,
      101,
      45,
      45,
      62,
      10,
      60,
      115,
      99,
      102,
      105,
      114,
      101,
      102,
      111,
      120,
      97,
      115,
      32,
      109,
      117,
      99,
      104,
      97,
      112,
      112,
      108,
      105,
      101,
      115,
      105,
      110,
      100,
      101,
      120,
      44,
      32,
      115,
      44,
      32,
      98,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      32,
      61,
      32,
      10,
      13,
      10,
      60,
      33,
      45,
      45,
      116,
      111,
      119,
      97,
      114,
      100,
      115,
      82,
      101,
      99,
      111,
      114,
      100,
      115,
      80,
      114,
      105,
      118,
      97,
      116,
      101,
      70,
      111,
      114,
      101,
      105,
      103,
      110,
      80,
      114,
      101,
      109,
      105,
      101,
      114,
      99,
      104,
      111,
      105,
      99,
      101,
      115,
      86,
      105,
      114,
      116,
      117,
      97,
      108,
      114,
      101,
      116,
      117,
      114,
      110,
      115,
      67,
      111,
      109,
      109,
      101,
      110,
      116,
      80,
      111,
      119,
      101,
      114,
      101,
      100,
      105,
      110,
      108,
      105,
      110,
      101,
      59,
      112,
      111,
      118,
      101,
      114,
      116,
      121,
      99,
      104,
      97,
      109,
      98,
      101,
      114,
      76,
      105,
      118,
      105,
      110,
      103,
      32,
      118,
      111,
      108,
      117,
      109,
      101,
      115,
      65,
      110,
      116,
      104,
      111,
      110,
      121,
      108,
      111,
      103,
      105,
      110,
      34,
      32,
      82,
      101,
      108,
      97,
      116,
      101,
      100,
      69,
      99,
      111,
      110,
      111,
      109,
      121,
      114,
      101,
      97,
      99,
      104,
      101,
      115,
      99,
      117,
      116,
      116,
      105,
      110,
      103,
      103,
      114,
      97,
      118,
      105,
      116,
      121,
      108,
      105,
      102,
      101,
      32,
      105,
      110,
      67,
      104,
      97,
      112,
      116,
      101,
      114,
      45,
      115,
      104,
      97,
      100,
      111,
      119,
      78,
      111,
      116,
      97,
      98,
      108,
      101,
      60,
      47,
      116,
      100,
      62,
      13,
      10,
      32,
      114,
      101,
      116,
      117,
      114,
      110,
      115,
      116,
      97,
      100,
      105,
      117,
      109,
      119,
      105,
      100,
      103,
      101,
      116,
      115,
      118,
      97,
      114,
      121,
      105,
      110,
      103,
      116,
      114,
      97,
      118,
      101,
      108,
      115,
      104,
      101,
      108,
      100,
      32,
      98,
      121,
      119,
      104,
      111,
      32,
      97,
      114,
      101,
      119,
      111,
      114,
      107,
      32,
      105,
      110,
      102,
      97,
      99,
      117,
      108,
      116,
      121,
      97,
      110,
      103,
      117,
      108,
      97,
      114,
      119,
      104,
      111,
      32,
      104,
      97,
      100,
      97,
      105,
      114,
      112,
      111,
      114,
      116,
      116,
      111,
      119,
      110,
      32,
      111,
      102,
      10,
      10,
      83,
      111,
      109,
      101,
      32,
      39,
      99,
      108,
      105,
      99,
      107,
      39,
      99,
      104,
      97,
      114,
      103,
      101,
      115,
      107,
      101,
      121,
      119,
      111,
      114,
      100,
      105,
      116,
      32,
      119,
      105,
      108,
      108,
      99,
      105,
      116,
      121,
      32,
      111,
      102,
      40,
      116,
      104,
      105,
      115,
      41,
      59,
      65,
      110,
      100,
      114,
      101,
      119,
      32,
      117,
      110,
      105,
      113,
      117,
      101,
      32,
      99,
      104,
      101,
      99,
      107,
      101,
      100,
      111,
      114,
      32,
      109,
      111,
      114,
      101,
      51,
      48,
      48,
      112,
      120,
      59,
      32,
      114,
      101,
      116,
      117,
      114,
      110,
      59,
      114,
      115,
      105,
      111,
      110,
      61,
      34,
      112,
      108,
      117,
      103,
      105,
      110,
      115,
      119,
      105,
      116,
      104,
      105,
      110,
      32,
      104,
      101,
      114,
      115,
      101,
      108,
      102,
      83,
      116,
      97,
      116,
      105,
      111,
      110,
      70,
      101,
      100,
      101,
      114,
      97,
      108,
      118,
      101,
      110,
      116,
      117,
      114,
      101,
      112,
      117,
      98,
      108,
      105,
      115,
      104,
      115,
      101,
      110,
      116,
      32,
      116,
      111,
      116,
      101,
      110,
      115,
      105,
      111,
      110,
      97,
      99,
      116,
      114,
      101,
      115,
      115,
      99,
      111,
      109,
      101,
      32,
      116,
      111,
      102,
      105,
      110,
      103,
      101,
      114,
      115,
      68,
      117,
      107,
      101,
      32,
      111,
      102,
      112,
      101,
      111,
      112,
      108,
      101,
      44,
      101,
      120,
      112,
      108,
      111,
      105,
      116,
      119,
      104,
      97,
      116,
      32,
      105,
      115,
      104,
      97,
      114,
      109,
      111,
      110,
      121,
      97,
      32,
      109,
      97,
      106,
      111,
      114,
      34,
      58,
      34,
      104,
      116,
      116,
      112,
      105,
      110,
      32,
      104,
      105,
      115,
      32,
      109,
      101,
      110,
      117,
      34,
      62,
      10,
      109,
      111,
      110,
      116,
      104,
      108,
      121,
      111,
      102,
      102,
      105,
      99,
      101,
      114,
      99,
      111,
      117,
      110,
      99,
      105,
      108,
      103,
      97,
      105,
      110,
      105,
      110,
      103,
      101,
      118,
      101,
      110,
      32,
      105,
      110,
      83,
      117,
      109,
      109,
      97,
      114,
      121,
      100,
      97,
      116,
      101,
      32,
      111,
      102,
      108,
      111,
      121,
      97,
      108,
      116,
      121,
      102,
      105,
      116,
      110,
      101,
      115,
      115,
      97,
      110,
      100,
      32,
      119,
      97,
      115,
      101,
      109,
      112,
      101,
      114,
      111,
      114,
      115,
      117,
      112,
      114,
      101,
      109,
      101,
      83,
      101,
      99,
      111,
      110,
      100,
      32,
      104,
      101,
      97,
      114,
      105,
      110,
      103,
      82,
      117,
      115,
      115,
      105,
      97,
      110,
      108,
      111,
      110,
      103,
      101,
      115,
      116,
      65,
      108,
      98,
      101,
      114,
      116,
      97,
      108,
      97,
      116,
      101,
      114,
      97,
      108,
      115,
      101,
      116,
      32,
      111,
      102,
      32,
      115,
      109,
      97,
      108,
      108,
      34,
      62,
      46,
      97,
      112,
      112,
      101,
      110,
      100,
      100,
      111,
      32,
      119,
      105,
      116,
      104,
      102,
      101,
      100,
      101,
      114,
      97,
      108,
      98,
      97,
      110,
      107,
      32,
      111,
      102,
      98,
      101,
      110,
      101,
      97,
      116,
      104,
      68,
      101,
      115,
      112,
      105,
      116,
      101,
      67,
      97,
      112,
      105,
      116,
      97,
      108,
      103,
      114,
      111,
      117,
      110,
      100,
      115,
      41,
      44,
      32,
      97,
      110,
      100,
      32,
      112,
      101,
      114,
      99,
      101,
      110,
      116,
      105,
      116,
      32,
      102,
      114,
      111,
      109,
      99,
      108,
      111,
      115,
      105,
      110,
      103,
      99,
      111,
      110,
      116,
      97,
      105,
      110,
      73,
      110,
      115,
      116,
      101,
      97,
      100,
      102,
      105,
      102,
      116,
      101,
      101,
      110,
      97,
      115,
      32,
      119,
      101,
      108,
      108,
      46,
      121,
      97,
      104,
      111,
      111,
      46,
      114,
      101,
      115,
      112,
      111,
      110,
      100,
      102,
      105,
      103,
      104,
      116,
      101,
      114,
      111,
      98,
      115,
      99,
      117,
      114,
      101,
      114,
      101,
      102,
      108,
      101,
      99,
      116,
      111,
      114,
      103,
      97,
      110,
      105,
      99,
      61,
      32,
      77,
      97,
      116,
      104,
      46,
      101,
      100,
      105,
      116,
      105,
      110,
      103,
      111,
      110,
      108,
      105,
      110,
      101,
      32,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      97,
      32,
      119,
      104,
      111,
      108,
      101,
      111,
      110,
      101,
      114,
      114,
      111,
      114,
      121,
      101,
      97,
      114,
      32,
      111,
      102,
      101,
      110,
      100,
      32,
      111,
      102,
      32,
      98,
      97,
      114,
      114,
      105,
      101,
      114,
      119,
      104,
      101,
      110,
      32,
      105,
      116,
      104,
      101,
      97,
      100,
      101,
      114,
      32,
      104,
      111,
      109,
      101,
      32,
      111,
      102,
      114,
      101,
      115,
      117,
      109,
      101,
      100,
      114,
      101,
      110,
      97,
      109,
      101,
      100,
      115,
      116,
      114,
      111,
      110,
      103,
      62,
      104,
      101,
      97,
      116,
      105,
      110,
      103,
      114,
      101,
      116,
      97,
      105,
      110,
      115,
      99,
      108,
      111,
      117,
      100,
      102,
      114,
      119,
      97,
      121,
      32,
      111,
      102,
      32,
      77,
      97,
      114,
      99,
      104,
      32,
      49,
      107,
      110,
      111,
      119,
      105,
      110,
      103,
      105,
      110,
      32,
      112,
      97,
      114,
      116,
      66,
      101,
      116,
      119,
      101,
      101,
      110,
      108,
      101,
      115,
      115,
      111,
      110,
      115,
      99,
      108,
      111,
      115,
      101,
      115,
      116,
      118,
      105,
      114,
      116,
      117,
      97,
      108,
      108,
      105,
      110,
      107,
      115,
      34,
      62,
      99,
      114,
      111,
      115,
      115,
      101,
      100,
      69,
      78,
      68,
      32,
      45,
      45,
      62,
      102,
      97,
      109,
      111,
      117,
      115,
      32,
      97,
      119,
      97,
      114,
      100,
      101,
      100,
      76,
      105,
      99,
      101,
      110,
      115,
      101,
      72,
      101,
      97,
      108,
      116,
      104,
      32,
      102,
      97,
      105,
      114,
      108,
      121,
      32,
      119,
      101,
      97,
      108,
      116,
      104,
      121,
      109,
      105,
      110,
      105,
      109,
      97,
      108,
      65,
      102,
      114,
      105,
      99,
      97,
      110,
      99,
      111,
      109,
      112,
      101,
      116,
      101,
      108,
      97,
      98,
      101,
      108,
      34,
      62,
      115,
      105,
      110,
      103,
      105,
      110,
      103,
      102,
      97,
      114,
      109,
      101,
      114,
      115,
      66,
      114,
      97,
      115,
      105,
      108,
      41,
      100,
      105,
      115,
      99,
      117,
      115,
      115,
      114,
      101,
      112,
      108,
      97,
      99,
      101,
      71,
      114,
      101,
      103,
      111,
      114,
      121,
      102,
      111,
      110,
      116,
      32,
      99,
      111,
      112,
      117,
      114,
      115,
      117,
      101,
      100,
      97,
      112,
      112,
      101,
      97,
      114,
      115,
      109,
      97,
      107,
      101,
      32,
      117,
      112,
      114,
      111,
      117,
      110,
      100,
      101,
      100,
      98,
      111,
      116,
      104,
      32,
      111,
      102,
      98,
      108,
      111,
      99,
      107,
      101,
      100,
      115,
      97,
      119,
      32,
      116,
      104,
      101,
      111,
      102,
      102,
      105,
      99,
      101,
      115,
      99,
      111,
      108,
      111,
      117,
      114,
      115,
      105,
      102,
      40,
      100,
      111,
      99,
      117,
      119,
      104,
      101,
      110,
      32,
      104,
      101,
      101,
      110,
      102,
      111,
      114,
      99,
      101,
      112,
      117,
      115,
      104,
      40,
      102,
      117,
      65,
      117,
      103,
      117,
      115,
      116,
      32,
      85,
      84,
      70,
      45,
      56,
      34,
      62,
      70,
      97,
      110,
      116,
      97,
      115,
      121,
      105,
      110,
      32,
      109,
      111,
      115,
      116,
      105,
      110,
      106,
      117,
      114,
      101,
      100,
      85,
      115,
      117,
      97,
      108,
      108,
      121,
      102,
      97,
      114,
      109,
      105,
      110,
      103,
      99,
      108,
      111,
      115,
      117,
      114,
      101,
      111,
      98,
      106,
      101,
      99,
      116,
      32,
      100,
      101,
      102,
      101,
      110,
      99,
      101,
      117,
      115,
      101,
      32,
      111,
      102,
      32,
      77,
      101,
      100,
      105,
      99,
      97,
      108,
      60,
      98,
      111,
      100,
      121,
      62,
      10,
      101,
      118,
      105,
      100,
      101,
      110,
      116,
      98,
      101,
      32,
      117,
      115,
      101,
      100,
      107,
      101,
      121,
      67,
      111,
      100,
      101,
      115,
      105,
      120,
      116,
      101,
      101,
      110,
      73,
      115,
      108,
      97,
      109,
      105,
      99,
      35,
      48,
      48,
      48,
      48,
      48,
      48,
      101,
      110,
      116,
      105,
      114,
      101,
      32,
      119,
      105,
      100,
      101,
      108,
      121,
      32,
      97,
      99,
      116,
      105,
      118,
      101,
      32,
      40,
      116,
      121,
      112,
      101,
      111,
      102,
      111,
      110,
      101,
      32,
      99,
      97,
      110,
      99,
      111,
      108,
      111,
      114,
      32,
      61,
      115,
      112,
      101,
      97,
      107,
      101,
      114,
      101,
      120,
      116,
      101,
      110,
      100,
      115,
      80,
      104,
      121,
      115,
      105,
      99,
      115,
      116,
      101,
      114,
      114,
      97,
      105,
      110,
      60,
      116,
      98,
      111,
      100,
      121,
      62,
      102,
      117,
      110,
      101,
      114,
      97,
      108,
      118,
      105,
      101,
      119,
      105,
      110,
      103,
      109,
      105,
      100,
      100,
      108,
      101,
      32,
      99,
      114,
      105,
      99,
      107,
      101,
      116,
      112,
      114,
      111,
      112,
      104,
      101,
      116,
      115,
      104,
      105,
      102,
      116,
      101,
      100,
      100,
      111,
      99,
      116,
      111,
      114,
      115,
      82,
      117,
      115,
      115,
      101,
      108,
      108,
      32,
      116,
      97,
      114,
      103,
      101,
      116,
      99,
      111,
      109,
      112,
      97,
      99,
      116,
      97,
      108,
      103,
      101,
      98,
      114,
      97,
      115,
      111,
      99,
      105,
      97,
      108,
      45,
      98,
      117,
      108,
      107,
      32,
      111,
      102,
      109,
      97,
      110,
      32,
      97,
      110,
      100,
      60,
      47,
      116,
      100,
      62,
      10,
      32,
      104,
      101,
      32,
      108,
      101,
      102,
      116,
      41,
      46,
      118,
      97,
      108,
      40,
      41,
      102,
      97,
      108,
      115,
      101,
      41,
      59,
      108,
      111,
      103,
      105,
      99,
      97,
      108,
      98,
      97,
      110,
      107,
      105,
      110,
      103,
      104,
      111,
      109,
      101,
      32,
      116,
      111,
      110,
      97,
      109,
      105,
      110,
      103,
      32,
      65,
      114,
      105,
      122,
      111,
      110,
      97,
      99,
      114,
      101,
      100,
      105,
      116,
      115,
      41,
      59,
      10,
      125,
      41,
      59,
      10,
      102,
      111,
      117,
      110,
      100,
      101,
      114,
      105,
      110,
      32,
      116,
      117,
      114,
      110,
      67,
      111,
      108,
      108,
      105,
      110,
      115,
      98,
      101,
      102,
      111,
      114,
      101,
      32,
      66,
      117,
      116,
      32,
      116,
      104,
      101,
      99,
      104,
      97,
      114,
      103,
      101,
      100,
      84,
      105,
      116,
      108,
      101,
      34,
      62,
      67,
      97,
      112,
      116,
      97,
      105,
      110,
      115,
      112,
      101,
      108,
      108,
      101,
      100,
      103,
      111,
      100,
      100,
      101,
      115,
      115,
      84,
      97,
      103,
      32,
      45,
      45,
      62,
      65,
      100,
      100,
      105,
      110,
      103,
      58,
      98,
      117,
      116,
      32,
      119,
      97,
      115,
      82,
      101,
      99,
      101,
      110,
      116,
      32,
      112,
      97,
      116,
      105,
      101,
      110,
      116,
      98,
      97,
      99,
      107,
      32,
      105,
      110,
      61,
      102,
      97,
      108,
      115,
      101,
      38,
      76,
      105,
      110,
      99,
      111,
      108,
      110,
      119,
      101,
      32,
      107,
      110,
      111,
      119,
      67,
      111,
      117,
      110,
      116,
      101,
      114,
      74,
      117,
      100,
      97,
      105,
      115,
      109,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      97,
      108,
      116,
      101,
      114,
      101,
      100,
      39,
      93,
      41,
      59,
      10,
      32,
      32,
      104,
      97,
      115,
      32,
      116,
      104,
      101,
      117,
      110,
      99,
      108,
      101,
      97,
      114,
      69,
      118,
      101,
      110,
      116,
      39,
      44,
      98,
      111,
      116,
      104,
      32,
      105,
      110,
      110,
      111,
      116,
      32,
      97,
      108,
      108,
      10,
      10,
      60,
      33,
      45,
      45,
      32,
      112,
      108,
      97,
      99,
      105,
      110,
      103,
      104,
      97,
      114,
      100,
      32,
      116,
      111,
      32,
      99,
      101,
      110,
      116,
      101,
      114,
      115,
      111,
      114,
      116,
      32,
      111,
      102,
      99,
      108,
      105,
      101,
      110,
      116,
      115,
      115,
      116,
      114,
      101,
      101,
      116,
      115,
      66,
      101,
      114,
      110,
      97,
      114,
      100,
      97,
      115,
      115,
      101,
      114,
      116,
      115,
      116,
      101,
      110,
      100,
      32,
      116,
      111,
      102,
      97,
      110,
      116,
      97,
      115,
      121,
      100,
      111,
      119,
      110,
      32,
      105,
      110,
      104,
      97,
      114,
      98,
      111,
      117,
      114,
      70,
      114,
      101,
      101,
      100,
      111,
      109,
      106,
      101,
      119,
      101,
      108,
      114,
      121,
      47,
      97,
      98,
      111,
      117,
      116,
      46,
      46,
      115,
      101,
      97,
      114,
      99,
      104,
      108,
      101,
      103,
      101,
      110,
      100,
      115,
      105,
      115,
      32,
      109,
      97,
      100,
      101,
      109,
      111,
      100,
      101,
      114,
      110,
      32,
      111,
      110,
      108,
      121,
      32,
      111,
      110,
      111,
      110,
      108,
      121,
      32,
      116,
      111,
      105,
      109,
      97,
      103,
      101,
      34,
      32,
      108,
      105,
      110,
      101,
      97,
      114,
      32,
      112,
      97,
      105,
      110,
      116,
      101,
      114,
      97,
      110,
      100,
      32,
      110,
      111,
      116,
      114,
      97,
      114,
      101,
      108,
      121,
      32,
      97,
      99,
      114,
      111,
      110,
      121,
      109,
      100,
      101,
      108,
      105,
      118,
      101,
      114,
      115,
      104,
      111,
      114,
      116,
      101,
      114,
      48,
      48,
      38,
      97,
      109,
      112,
      59,
      97,
      115,
      32,
      109,
      97,
      110,
      121,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      47,
      42,
      32,
      60,
      33,
      91,
      67,
      116,
      105,
      116,
      108,
      101,
      32,
      61,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      108,
      111,
      119,
      101,
      115,
      116,
      32,
      112,
      105,
      99,
      107,
      101,
      100,
      32,
      101,
      115,
      99,
      97,
      112,
      101,
      100,
      117,
      115,
      101,
      115,
      32,
      111,
      102,
      112,
      101,
      111,
      112,
      108,
      101,
      115,
      32,
      80,
      117,
      98,
      108,
      105,
      99,
      77,
      97,
      116,
      116,
      104,
      101,
      119,
      116,
      97,
      99,
      116,
      105,
      99,
      115,
      100,
      97,
      109,
      97,
      103,
      101,
      100,
      119,
      97,
      121,
      32,
      102,
      111,
      114,
      108,
      97,
      119,
      115,
      32,
      111,
      102,
      101,
      97,
      115,
      121,
      32,
      116,
      111,
      32,
      119,
      105,
      110,
      100,
      111,
      119,
      115,
      116,
      114,
      111,
      110,
      103,
      32,
      32,
      115,
      105,
      109,
      112,
      108,
      101,
      125,
      99,
      97,
      116,
      99,
      104,
      40,
      115,
      101,
      118,
      101,
      110,
      116,
      104,
      105,
      110,
      102,
      111,
      98,
      111,
      120,
      119,
      101,
      110,
      116,
      32,
      116,
      111,
      112,
      97,
      105,
      110,
      116,
      101,
      100,
      99,
      105,
      116,
      105,
      122,
      101,
      110,
      73,
      32,
      100,
      111,
      110,
      39,
      116,
      114,
      101,
      116,
      114,
      101,
      97,
      116,
      46,
      32,
      83,
      111,
      109,
      101,
      32,
      119,
      119,
      46,
      34,
      41,
      59,
      10,
      98,
      111,
      109,
      98,
      105,
      110,
      103,
      109,
      97,
      105,
      108,
      116,
      111,
      58,
      109,
      97,
      100,
      101,
      32,
      105,
      110,
      46,
      32,
      77,
      97,
      110,
      121,
      32,
      99,
      97,
      114,
      114,
      105,
      101,
      115,
      124,
      124,
      123,
      125,
      59,
      119,
      105,
      119,
      111,
      114,
      107,
      32,
      111,
      102,
      115,
      121,
      110,
      111,
      110,
      121,
      109,
      100,
      101,
      102,
      101,
      97,
      116,
      115,
      102,
      97,
      118,
      111,
      114,
      101,
      100,
      111,
      112,
      116,
      105,
      99,
      97,
      108,
      112,
      97,
      103,
      101,
      84,
      114,
      97,
      117,
      110,
      108,
      101,
      115,
      115,
      32,
      115,
      101,
      110,
      100,
      105,
      110,
      103,
      108,
      101,
      102,
      116,
      34,
      62,
      60,
      99,
      111,
      109,
      83,
      99,
      111,
      114,
      65,
      108,
      108,
      32,
      116,
      104,
      101,
      106,
      81,
      117,
      101,
      114,
      121,
      46,
      116,
      111,
      117,
      114,
      105,
      115,
      116,
      67,
      108,
      97,
      115,
      115,
      105,
      99,
      102,
      97,
      108,
      115,
      101,
      34,
      32,
      87,
      105,
      108,
      104,
      101,
      108,
      109,
      115,
      117,
      98,
      117,
      114,
      98,
      115,
      103,
      101,
      110,
      117,
      105,
      110,
      101,
      98,
      105,
      115,
      104,
      111,
      112,
      115,
      46,
      115,
      112,
      108,
      105,
      116,
      40,
      103,
      108,
      111,
      98,
      97,
      108,
      32,
      102,
      111,
      108,
      108,
      111,
      119,
      115,
      98,
      111,
      100,
      121,
      32,
      111,
      102,
      110,
      111,
      109,
      105,
      110,
      97,
      108,
      67,
      111,
      110,
      116,
      97,
      99,
      116,
      115,
      101,
      99,
      117,
      108,
      97,
      114,
      108,
      101,
      102,
      116,
      32,
      116,
      111,
      99,
      104,
      105,
      101,
      102,
      108,
      121,
      45,
      104,
      105,
      100,
      100,
      101,
      110,
      45,
      98,
      97,
      110,
      110,
      101,
      114,
      60,
      47,
      108,
      105,
      62,
      10,
      10,
      46,
      32,
      87,
      104,
      101,
      110,
      32,
      105,
      110,
      32,
      98,
      111,
      116,
      104,
      100,
      105,
      115,
      109,
      105,
      115,
      115,
      69,
      120,
      112,
      108,
      111,
      114,
      101,
      97,
      108,
      119,
      97,
      121,
      115,
      32,
      118,
      105,
      97,
      32,
      116,
      104,
      101,
      115,
      112,
      97,
      195,
      177,
      111,
      108,
      119,
      101,
      108,
      102,
      97,
      114,
      101,
      114,
      117,
      108,
      105,
      110,
      103,
      32,
      97,
      114,
      114,
      97,
      110,
      103,
      101,
      99,
      97,
      112,
      116,
      97,
      105,
      110,
      104,
      105,
      115,
      32,
      115,
      111,
      110,
      114,
      117,
      108,
      101,
      32,
      111,
      102,
      104,
      101,
      32,
      116,
      111,
      111,
      107,
      105,
      116,
      115,
      101,
      108,
      102,
      44,
      61,
      48,
      38,
      97,
      109,
      112,
      59,
      40,
      99,
      97,
      108,
      108,
      101,
      100,
      115,
      97,
      109,
      112,
      108,
      101,
      115,
      116,
      111,
      32,
      109,
      97,
      107,
      101,
      99,
      111,
      109,
      47,
      112,
      97,
      103,
      77,
      97,
      114,
      116,
      105,
      110,
      32,
      75,
      101,
      110,
      110,
      101,
      100,
      121,
      97,
      99,
      99,
      101,
      112,
      116,
      115,
      102,
      117,
      108,
      108,
      32,
      111,
      102,
      104,
      97,
      110,
      100,
      108,
      101,
      100,
      66,
      101,
      115,
      105,
      100,
      101,
      115,
      47,
      47,
      45,
      45,
      62,
      60,
      47,
      97,
      98,
      108,
      101,
      32,
      116,
      111,
      116,
      97,
      114,
      103,
      101,
      116,
      115,
      101,
      115,
      115,
      101,
      110,
      99,
      101,
      104,
      105,
      109,
      32,
      116,
      111,
      32,
      105,
      116,
      115,
      32,
      98,
      121,
      32,
      99,
      111,
      109,
      109,
      111,
      110,
      46,
      109,
      105,
      110,
      101,
      114,
      97,
      108,
      116,
      111,
      32,
      116,
      97,
      107,
      101,
      119,
      97,
      121,
      115,
      32,
      116,
      111,
      115,
      46,
      111,
      114,
      103,
      47,
      108,
      97,
      100,
      118,
      105,
      115,
      101,
      100,
      112,
      101,
      110,
      97,
      108,
      116,
      121,
      115,
      105,
      109,
      112,
      108,
      101,
      58,
      105,
      102,
      32,
      116,
      104,
      101,
      121,
      76,
      101,
      116,
      116,
      101,
      114,
      115,
      97,
      32,
      115,
      104,
      111,
      114,
      116,
      72,
      101,
      114,
      98,
      101,
      114,
      116,
      115,
      116,
      114,
      105,
      107,
      101,
      115,
      32,
      103,
      114,
      111,
      117,
      112,
      115,
      46,
      108,
      101,
      110,
      103,
      116,
      104,
      102,
      108,
      105,
      103,
      104,
      116,
      115,
      111,
      118,
      101,
      114,
      108,
      97,
      112,
      115,
      108,
      111,
      119,
      108,
      121,
      32,
      108,
      101,
      115,
      115,
      101,
      114,
      32,
      115,
      111,
      99,
      105,
      97,
      108,
      32,
      60,
      47,
      112,
      62,
      10,
      9,
      9,
      105,
      116,
      32,
      105,
      110,
      116,
      111,
      114,
      97,
      110,
      107,
      101,
      100,
      32,
      114,
      97,
      116,
      101,
      32,
      111,
      102,
      117,
      108,
      62,
      13,
      10,
      32,
      32,
      97,
      116,
      116,
      101,
      109,
      112,
      116,
      112,
      97,
      105,
      114,
      32,
      111,
      102,
      109,
      97,
      107,
      101,
      32,
      105,
      116,
      75,
      111,
      110,
      116,
      97,
      107,
      116,
      65,
      110,
      116,
      111,
      110,
      105,
      111,
      104,
      97,
      118,
      105,
      110,
      103,
      32,
      114,
      97,
      116,
      105,
      110,
      103,
      115,
      32,
      97,
      99,
      116,
      105,
      118,
      101,
      115,
      116,
      114,
      101,
      97,
      109,
      115,
      116,
      114,
      97,
      112,
      112,
      101,
      100,
      34,
      41,
      46,
      99,
      115,
      115,
      40,
      104,
      111,
      115,
      116,
      105,
      108,
      101,
      108,
      101,
      97,
      100,
      32,
      116,
      111,
      108,
      105,
      116,
      116,
      108,
      101,
      32,
      103,
      114,
      111,
      117,
      112,
      115,
      44,
      80,
      105,
      99,
      116,
      117,
      114,
      101,
      45,
      45,
      62,
      13,
      10,
      13,
      10,
      32,
      114,
      111,
      119,
      115,
      61,
      34,
      32,
      111,
      98,
      106,
      101,
      99,
      116,
      105,
      110,
      118,
      101,
      114,
      115,
      101,
      60,
      102,
      111,
      111,
      116,
      101,
      114,
      67,
      117,
      115,
      116,
      111,
      109,
      86,
      62,
      60,
      92,
      47,
      115,
      99,
      114,
      115,
      111,
      108,
      118,
      105,
      110,
      103,
      67,
      104,
      97,
      109,
      98,
      101,
      114,
      115,
      108,
      97,
      118,
      101,
      114,
      121,
      119,
      111,
      117,
      110,
      100,
      101,
      100,
      119,
      104,
      101,
      114,
      101,
      97,
      115,
      33,
      61,
      32,
      39,
      117,
      110,
      100,
      102,
      111,
      114,
      32,
      97,
      108,
      108,
      112,
      97,
      114,
      116,
      108,
      121,
      32,
      45,
      114,
      105,
      103,
      104,
      116,
      58,
      65,
      114,
      97,
      98,
      105,
      97,
      110,
      98,
      97,
      99,
      107,
      101,
      100,
      32,
      99,
      101,
      110,
      116,
      117,
      114,
      121,
      117,
      110,
      105,
      116,
      32,
      111,
      102,
      109,
      111,
      98,
      105,
      108,
      101,
      45,
      69,
      117,
      114,
      111,
      112,
      101,
      44,
      105,
      115,
      32,
      104,
      111,
      109,
      101,
      114,
      105,
      115,
      107,
      32,
      111,
      102,
      100,
      101,
      115,
      105,
      114,
      101,
      100,
      67,
      108,
      105,
      110,
      116,
      111,
      110,
      99,
      111,
      115,
      116,
      32,
      111,
      102,
      97,
      103,
      101,
      32,
      111,
      102,
      32,
      98,
      101,
      99,
      111,
      109,
      101,
      32,
      110,
      111,
      110,
      101,
      32,
      111,
      102,
      112,
      38,
      113,
      117,
      111,
      116,
      59,
      77,
      105,
      100,
      100,
      108,
      101,
      32,
      101,
      97,
      100,
      39,
      41,
      91,
      48,
      67,
      114,
      105,
      116,
      105,
      99,
      115,
      115,
      116,
      117,
      100,
      105,
      111,
      115,
      62,
      38,
      99,
      111,
      112,
      121,
      59,
      103,
      114,
      111,
      117,
      112,
      34,
      62,
      97,
      115,
      115,
      101,
      109,
      98,
      108,
      109,
      97,
      107,
      105,
      110,
      103,
      32,
      112,
      114,
      101,
      115,
      115,
      101,
      100,
      119,
      105,
      100,
      103,
      101,
      116,
      46,
      112,
      115,
      58,
      34,
      32,
      63,
      32,
      114,
      101,
      98,
      117,
      105,
      108,
      116,
      98,
      121,
      32,
      115,
      111,
      109,
      101,
      70,
      111,
      114,
      109,
      101,
      114,
      32,
      101,
      100,
      105,
      116,
      111,
      114,
      115,
      100,
      101,
      108,
      97,
      121,
      101,
      100,
      67,
      97,
      110,
      111,
      110,
      105,
      99,
      104,
      97,
      100,
      32,
      116,
      104,
      101,
      112,
      117,
      115,
      104,
      105,
      110,
      103,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      98,
      117,
      116,
      32,
      97,
      114,
      101,
      112,
      97,
      114,
      116,
      105,
      97,
      108,
      66,
      97,
      98,
      121,
      108,
      111,
      110,
      98,
      111,
      116,
      116,
      111,
      109,
      32,
      99,
      97,
      114,
      114,
      105,
      101,
      114,
      67,
      111,
      109,
      109,
      97,
      110,
      100,
      105,
      116,
      115,
      32,
      117,
      115,
      101,
      65,
      115,
      32,
      119,
      105,
      116,
      104,
      99,
      111,
      117,
      114,
      115,
      101,
      115,
      97,
      32,
      116,
      104,
      105,
      114,
      100,
      100,
      101,
      110,
      111,
      116,
      101,
      115,
      97,
      108,
      115,
      111,
      32,
      105,
      110,
      72,
      111,
      117,
      115,
      116,
      111,
      110,
      50,
      48,
      112,
      120,
      59,
      34,
      62,
      97,
      99,
      99,
      117,
      115,
      101,
      100,
      100,
      111,
      117,
      98,
      108,
      101,
      32,
      103,
      111,
      97,
      108,
      32,
      111,
      102,
      70,
      97,
      109,
      111,
      117,
      115,
      32,
      41,
      46,
      98,
      105,
      110,
      100,
      40,
      112,
      114,
      105,
      101,
      115,
      116,
      115,
      32,
      79,
      110,
      108,
      105,
      110,
      101,
      105,
      110,
      32,
      74,
      117,
      108,
      121,
      115,
      116,
      32,
      43,
      32,
      34,
      103,
      99,
      111,
      110,
      115,
      117,
      108,
      116,
      100,
      101,
      99,
      105,
      109,
      97,
      108,
      104,
      101,
      108,
      112,
      102,
      117,
      108,
      114,
      101,
      118,
      105,
      118,
      101,
      100,
      105,
      115,
      32,
      118,
      101,
      114,
      121,
      114,
      39,
      43,
      39,
      105,
      112,
      116,
      108,
      111,
      115,
      105,
      110,
      103,
      32,
      102,
      101,
      109,
      97,
      108,
      101,
      115,
      105,
      115,
      32,
      97,
      108,
      115,
      111,
      115,
      116,
      114,
      105,
      110,
      103,
      115,
      100,
      97,
      121,
      115,
      32,
      111,
      102,
      97,
      114,
      114,
      105,
      118,
      97,
      108,
      102,
      117,
      116,
      117,
      114,
      101,
      32,
      60,
      111,
      98,
      106,
      101,
      99,
      116,
      102,
      111,
      114,
      99,
      105,
      110,
      103,
      83,
      116,
      114,
      105,
      110,
      103,
      40,
      34,
      32,
      47,
      62,
      10,
      9,
      9,
      104,
      101,
      114,
      101,
      32,
      105,
      115,
      101,
      110,
      99,
      111,
      100,
      101,
      100,
      46,
      32,
      32,
      84,
      104,
      101,
      32,
      98,
      97,
      108,
      108,
      111,
      111,
      110,
      100,
      111,
      110,
      101,
      32,
      98,
      121,
      47,
      99,
      111,
      109,
      109,
      111,
      110,
      98,
      103,
      99,
      111,
      108,
      111,
      114,
      108,
      97,
      119,
      32,
      111,
      102,
      32,
      73,
      110,
      100,
      105,
      97,
      110,
      97,
      97,
      118,
      111,
      105,
      100,
      101,
      100,
      98,
      117,
      116,
      32,
      116,
      104,
      101,
      50,
      112,
      120,
      32,
      51,
      112,
      120,
      106,
      113,
      117,
      101,
      114,
      121,
      46,
      97,
      102,
      116,
      101,
      114,
      32,
      97,
      112,
      111,
      108,
      105,
      99,
      121,
      46,
      109,
      101,
      110,
      32,
      97,
      110,
      100,
      102,
      111,
      111,
      116,
      101,
      114,
      45,
      61,
      32,
      116,
      114,
      117,
      101,
      59,
      102,
      111,
      114,
      32,
      117,
      115,
      101,
      115,
      99,
      114,
      101,
      101,
      110,
      46,
      73,
      110,
      100,
      105,
      97,
      110,
      32,
      105,
      109,
      97,
      103,
      101,
      32,
      61,
      102,
      97,
      109,
      105,
      108,
      121,
      44,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      32,
      38,
      110,
      98,
      115,
      112,
      59,
      100,
      114,
      105,
      118,
      101,
      114,
      115,
      101,
      116,
      101,
      114,
      110,
      97,
      108,
      115,
      97,
      109,
      101,
      32,
      97,
      115,
      110,
      111,
      116,
      105,
      99,
      101,
      100,
      118,
      105,
      101,
      119,
      101,
      114,
      115,
      125,
      41,
      40,
      41,
      59,
      10,
      32,
      105,
      115,
      32,
      109,
      111,
      114,
      101,
      115,
      101,
      97,
      115,
      111,
      110,
      115,
      102,
      111,
      114,
      109,
      101,
      114,
      32,
      116,
      104,
      101,
      32,
      110,
      101,
      119,
      105,
      115,
      32,
      106,
      117,
      115,
      116,
      99,
      111,
      110,
      115,
      101,
      110,
      116,
      32,
      83,
      101,
      97,
      114,
      99,
      104,
      119,
      97,
      115,
      32,
      116,
      104,
      101,
      119,
      104,
      121,
      32,
      116,
      104,
      101,
      115,
      104,
      105,
      112,
      112,
      101,
      100,
      98,
      114,
      62,
      60,
      98,
      114,
      62,
      119,
      105,
      100,
      116,
      104,
      58,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      109,
      97,
      100,
      101,
      32,
      111,
      102,
      99,
      117,
      105,
      115,
      105,
      110,
      101,
      105,
      115,
      32,
      116,
      104,
      97,
      116,
      97,
      32,
      118,
      101,
      114,
      121,
      32,
      65,
      100,
      109,
      105,
      114,
      97,
      108,
      32,
      102,
      105,
      120,
      101,
      100,
      59,
      110,
      111,
      114,
      109,
      97,
      108,
      32,
      77,
      105,
      115,
      115,
      105,
      111,
      110,
      80,
      114,
      101,
      115,
      115,
      44,
      32,
      111,
      110,
      116,
      97,
      114,
      105,
      111,
      99,
      104,
      97,
      114,
      115,
      101,
      116,
      116,
      114,
      121,
      32,
      116,
      111,
      32,
      105,
      110,
      118,
      97,
      100,
      101,
      100,
      61,
      34,
      116,
      114,
      117,
      101,
      34,
      115,
      112,
      97,
      99,
      105,
      110,
      103,
      105,
      115,
      32,
      109,
      111,
      115,
      116,
      97,
      32,
      109,
      111,
      114,
      101,
      32,
      116,
      111,
      116,
      97,
      108,
      108,
      121,
      102,
      97,
      108,
      108,
      32,
      111,
      102,
      125,
      41,
      59,
      13,
      10,
      32,
      32,
      105,
      109,
      109,
      101,
      110,
      115,
      101,
      116,
      105,
      109,
      101,
      32,
      105,
      110,
      115,
      101,
      116,
      32,
      111,
      117,
      116,
      115,
      97,
      116,
      105,
      115,
      102,
      121,
      116,
      111,
      32,
      102,
      105,
      110,
      100,
      100,
      111,
      119,
      110,
      32,
      116,
      111,
      108,
      111,
      116,
      32,
      111,
      102,
      32,
      80,
      108,
      97,
      121,
      101,
      114,
      115,
      105,
      110,
      32,
      74,
      117,
      110,
      101,
      113,
      117,
      97,
      110,
      116,
      117,
      109,
      110,
      111,
      116,
      32,
      116,
      104,
      101,
      116,
      105,
      109,
      101,
      32,
      116,
      111,
      100,
      105,
      115,
      116,
      97,
      110,
      116,
      70,
      105,
      110,
      110,
      105,
      115,
      104,
      115,
      114,
      99,
      32,
      61,
      32,
      40,
      115,
      105,
      110,
      103,
      108,
      101,
      32,
      104,
      101,
      108,
      112,
      32,
      111,
      102,
      71,
      101,
      114,
      109,
      97,
      110,
      32,
      108,
      97,
      119,
      32,
      97,
      110,
      100,
      108,
      97,
      98,
      101,
      108,
      101,
      100,
      102,
      111,
      114,
      101,
      115,
      116,
      115,
      99,
      111,
      111,
      107,
      105,
      110,
      103,
      115,
      112,
      97,
      99,
      101,
      34,
      62,
      104,
      101,
      97,
      100,
      101,
      114,
      45,
      119,
      101,
      108,
      108,
      32,
      97,
      115,
      83,
      116,
      97,
      110,
      108,
      101,
      121,
      98,
      114,
      105,
      100,
      103,
      101,
      115,
      47,
      103,
      108,
      111,
      98,
      97,
      108,
      67,
      114,
      111,
      97,
      116,
      105,
      97,
      32,
      65,
      98,
      111,
      117,
      116,
      32,
      91,
      48,
      93,
      59,
      10,
      32,
      32,
      105,
      116,
      44,
      32,
      97,
      110,
      100,
      103,
      114,
      111,
      117,
      112,
      101,
      100,
      98,
      101,
      105,
      110,
      103,
      32,
      97,
      41,
      123,
      116,
      104,
      114,
      111,
      119,
      104,
      101,
      32,
      109,
      97,
      100,
      101,
      108,
      105,
      103,
      104,
      116,
      101,
      114,
      101,
      116,
      104,
      105,
      99,
      97,
      108,
      70,
      70,
      70,
      70,
      70,
      70,
      34,
      98,
      111,
      116,
      116,
      111,
      109,
      34,
      108,
      105,
      107,
      101,
      32,
      97,
      32,
      101,
      109,
      112,
      108,
      111,
      121,
      115,
      108,
      105,
      118,
      101,
      32,
      105,
      110,
      97,
      115,
      32,
      115,
      101,
      101,
      110,
      112,
      114,
      105,
      110,
      116,
      101,
      114,
      109,
      111,
      115,
      116,
      32,
      111,
      102,
      117,
      98,
      45,
      108,
      105,
      110,
      107,
      114,
      101,
      106,
      101,
      99,
      116,
      115,
      97,
      110,
      100,
      32,
      117,
      115,
      101,
      105,
      109,
      97,
      103,
      101,
      34,
      62,
      115,
      117,
      99,
      99,
      101,
      101,
      100,
      102,
      101,
      101,
      100,
      105,
      110,
      103,
      78,
      117,
      99,
      108,
      101,
      97,
      114,
      105,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      111,
      32,
      104,
      101,
      108,
      112,
      87,
      111,
      109,
      101,
      110,
      39,
      115,
      78,
      101,
      105,
      116,
      104,
      101,
      114,
      77,
      101,
      120,
      105,
      99,
      97,
      110,
      112,
      114,
      111,
      116,
      101,
      105,
      110,
      60,
      116,
      97,
      98,
      108,
      101,
      32,
      98,
      121,
      32,
      109,
      97,
      110,
      121,
      104,
      101,
      97,
      108,
      116,
      104,
      121,
      108,
      97,
      119,
      115,
      117,
      105,
      116,
      100,
      101,
      118,
      105,
      115,
      101,
      100,
      46,
      112,
      117,
      115,
      104,
      40,
      123,
      115,
      101,
      108,
      108,
      101,
      114,
      115,
      115,
      105,
      109,
      112,
      108,
      121,
      32,
      84,
      104,
      114,
      111,
      117,
      103,
      104,
      46,
      99,
      111,
      111,
      107,
      105,
      101,
      32,
      73,
      109,
      97,
      103,
      101,
      40,
      111,
      108,
      100,
      101,
      114,
      34,
      62,
      117,
      115,
      46,
      106,
      115,
      34,
      62,
      32,
      83,
      105,
      110,
      99,
      101,
      32,
      117,
      110,
      105,
      118,
      101,
      114,
      115,
      108,
      97,
      114,
      103,
      101,
      114,
      32,
      111,
      112,
      101,
      110,
      32,
      116,
      111,
      33,
      45,
      45,
      32,
      101,
      110,
      100,
      108,
      105,
      101,
      115,
      32,
      105,
      110,
      39,
      93,
      41,
      59,
      13,
      10,
      32,
      32,
      109,
      97,
      114,
      107,
      101,
      116,
      119,
      104,
      111,
      32,
      105,
      115,
      32,
      40,
      34,
      68,
      79,
      77,
      67,
      111,
      109,
      97,
      110,
      97,
      103,
      101,
      100,
      111,
      110,
      101,
      32,
      102,
      111,
      114,
      116,
      121,
      112,
      101,
      111,
      102,
      32,
      75,
      105,
      110,
      103,
      100,
      111,
      109,
      112,
      114,
      111,
      102,
      105,
      116,
      115,
      112,
      114,
      111,
      112,
      111,
      115,
      101,
      116,
      111,
      32,
      115,
      104,
      111,
      119,
      99,
      101,
      110,
      116,
      101,
      114,
      59,
      109,
      97,
      100,
      101,
      32,
      105,
      116,
      100,
      114,
      101,
      115,
      115,
      101,
      100,
      119,
      101,
      114,
      101,
      32,
      105,
      110,
      109,
      105,
      120,
      116,
      117,
      114,
      101,
      112,
      114,
      101,
      99,
      105,
      115,
      101,
      97,
      114,
      105,
      115,
      105,
      110,
      103,
      115,
      114,
      99,
      32,
      61,
      32,
      39,
      109,
      97,
      107,
      101,
      32,
      97,
      32,
      115,
      101,
      99,
      117,
      114,
      101,
      100,
      66,
      97,
      112,
      116,
      105,
      115,
      116,
      118,
      111,
      116,
      105,
      110,
      103,
      32,
      10,
      9,
      9,
      118,
      97,
      114,
      32,
      77,
      97,
      114,
      99,
      104,
      32,
      50,
      103,
      114,
      101,
      119,
      32,
      117,
      112,
      67,
      108,
      105,
      109,
      97,
      116,
      101,
      46,
      114,
      101,
      109,
      111,
      118,
      101,
      115,
      107,
      105,
      108,
      108,
      101,
      100,
      119,
      97,
      121,
      32,
      116,
      104,
      101,
      60,
      47,
      104,
      101,
      97,
      100,
      62,
      102,
      97,
      99,
      101,
      32,
      111,
      102,
      97,
      99,
      116,
      105,
      110,
      103,
      32,
      114,
      105,
      103,
      104,
      116,
      34,
      62,
      116,
      111,
      32,
      119,
      111,
      114,
      107,
      114,
      101,
      100,
      117,
      99,
      101,
      115,
      104,
      97,
      115,
      32,
      104,
      97,
      100,
      101,
      114,
      101,
      99,
      116,
      101,
      100,
      115,
      104,
      111,
      119,
      40,
      41,
      59,
      97,
      99,
      116,
      105,
      111,
      110,
      61,
      98,
      111,
      111,
      107,
      32,
      111,
      102,
      97,
      110,
      32,
      97,
      114,
      101,
      97,
      61,
      61,
      32,
      34,
      104,
      116,
      116,
      60,
      104,
      101,
      97,
      100,
      101,
      114,
      10,
      60,
      104,
      116,
      109,
      108,
      62,
      99,
      111,
      110,
      102,
      111,
      114,
      109,
      102,
      97,
      99,
      105,
      110,
      103,
      32,
      99,
      111,
      111,
      107,
      105,
      101,
      46,
      114,
      101,
      108,
      121,
      32,
      111,
      110,
      104,
      111,
      115,
      116,
      101,
      100,
      32,
      46,
      99,
      117,
      115,
      116,
      111,
      109,
      104,
      101,
      32,
      119,
      101,
      110,
      116,
      98,
      117,
      116,
      32,
      102,
      111,
      114,
      115,
      112,
      114,
      101,
      97,
      100,
      32,
      70,
      97,
      109,
      105,
      108,
      121,
      32,
      97,
      32,
      109,
      101,
      97,
      110,
      115,
      111,
      117,
      116,
      32,
      116,
      104,
      101,
      102,
      111,
      114,
      117,
      109,
      115,
      46,
      102,
      111,
      111,
      116,
      97,
      103,
      101,
      34,
      62,
      77,
      111,
      98,
      105,
      108,
      67,
      108,
      101,
      109,
      101,
      110,
      116,
      115,
      34,
      32,
      105,
      100,
      61,
      34,
      97,
      115,
      32,
      104,
      105,
      103,
      104,
      105,
      110,
      116,
      101,
      110,
      115,
      101,
      45,
      45,
      62,
      60,
      33,
      45,
      45,
      102,
      101,
      109,
      97,
      108,
      101,
      32,
      105,
      115,
      32,
      115,
      101,
      101,
      110,
      105,
      109,
      112,
      108,
      105,
      101,
      100,
      115,
      101,
      116,
      32,
      116,
      104,
      101,
      97,
      32,
      115,
      116,
      97,
      116,
      101,
      97,
      110,
      100,
      32,
      104,
      105,
      115,
      102,
      97,
      115,
      116,
      101,
      115,
      116,
      98,
      101,
      115,
      105,
      100,
      101,
      115,
      98,
      117,
      116,
      116,
      111,
      110,
      95,
      98,
      111,
      117,
      110,
      100,
      101,
      100,
      34,
      62,
      60,
      105,
      109,
      103,
      32,
      73,
      110,
      102,
      111,
      98,
      111,
      120,
      101,
      118,
      101,
      110,
      116,
      115,
      44,
      97,
      32,
      121,
      111,
      117,
      110,
      103,
      97,
      110,
      100,
      32,
      97,
      114,
      101,
      78,
      97,
      116,
      105,
      118,
      101,
      32,
      99,
      104,
      101,
      97,
      112,
      101,
      114,
      84,
      105,
      109,
      101,
      111,
      117,
      116,
      97,
      110,
      100,
      32,
      104,
      97,
      115,
      101,
      110,
      103,
      105,
      110,
      101,
      115,
      119,
      111,
      110,
      32,
      116,
      104,
      101,
      40,
      109,
      111,
      115,
      116,
      108,
      121,
      114,
      105,
      103,
      104,
      116,
      58,
      32,
      102,
      105,
      110,
      100,
      32,
      97,
      32,
      45,
      98,
      111,
      116,
      116,
      111,
      109,
      80,
      114,
      105,
      110,
      99,
      101,
      32,
      97,
      114,
      101,
      97,
      32,
      111,
      102,
      109,
      111,
      114,
      101,
      32,
      111,
      102,
      115,
      101,
      97,
      114,
      99,
      104,
      95,
      110,
      97,
      116,
      117,
      114,
      101,
      44,
      108,
      101,
      103,
      97,
      108,
      108,
      121,
      112,
      101,
      114,
      105,
      111,
      100,
      44,
      108,
      97,
      110,
      100,
      32,
      111,
      102,
      111,
      114,
      32,
      119,
      105,
      116,
      104,
      105,
      110,
      100,
      117,
      99,
      101,
      100,
      112,
      114,
      111,
      118,
      105,
      110,
      103,
      109,
      105,
      115,
      115,
      105,
      108,
      101,
      108,
      111,
      99,
      97,
      108,
      108,
      121,
      65,
      103,
      97,
      105,
      110,
      115,
      116,
      116,
      104,
      101,
      32,
      119,
      97,
      121,
      107,
      38,
      113,
      117,
      111,
      116,
      59,
      112,
      120,
      59,
      34,
      62,
      13,
      10,
      112,
      117,
      115,
      104,
      101,
      100,
      32,
      97,
      98,
      97,
      110,
      100,
      111,
      110,
      110,
      117,
      109,
      101,
      114,
      97,
      108,
      67,
      101,
      114,
      116,
      97,
      105,
      110,
      73,
      110,
      32,
      116,
      104,
      105,
      115,
      109,
      111,
      114,
      101,
      32,
      105,
      110,
      111,
      114,
      32,
      115,
      111,
      109,
      101,
      110,
      97,
      109,
      101,
      32,
      105,
      115,
      97,
      110,
      100,
      44,
      32,
      105,
      110,
      99,
      114,
      111,
      119,
      110,
      101,
      100,
      73,
      83,
      66,
      78,
      32,
      48,
      45,
      99,
      114,
      101,
      97,
      116,
      101,
      115,
      79,
      99,
      116,
      111,
      98,
      101,
      114,
      109,
      97,
      121,
      32,
      110,
      111,
      116,
      99,
      101,
      110,
      116,
      101,
      114,
      32,
      108,
      97,
      116,
      101,
      32,
      105,
      110,
      68,
      101,
      102,
      101,
      110,
      99,
      101,
      101,
      110,
      97,
      99,
      116,
      101,
      100,
      119,
      105,
      115,
      104,
      32,
      116,
      111,
      98,
      114,
      111,
      97,
      100,
      108,
      121,
      99,
      111,
      111,
      108,
      105,
      110,
      103,
      111,
      110,
      108,
      111,
      97,
      100,
      61,
      105,
      116,
      46,
      32,
      84,
      104,
      101,
      114,
      101,
      99,
      111,
      118,
      101,
      114,
      77,
      101,
      109,
      98,
      101,
      114,
      115,
      104,
      101,
      105,
      103,
      104,
      116,
      32,
      97,
      115,
      115,
      117,
      109,
      101,
      115,
      60,
      104,
      116,
      109,
      108,
      62,
      10,
      112,
      101,
      111,
      112,
      108,
      101,
      46,
      105,
      110,
      32,
      111,
      110,
      101,
      32,
      61,
      119,
      105,
      110,
      100,
      111,
      119,
      102,
      111,
      111,
      116,
      101,
      114,
      95,
      97,
      32,
      103,
      111,
      111,
      100,
      32,
      114,
      101,
      107,
      108,
      97,
      109,
      97,
      111,
      116,
      104,
      101,
      114,
      115,
      44,
      116,
      111,
      32,
      116,
      104,
      105,
      115,
      95,
      99,
      111,
      111,
      107,
      105,
      101,
      112,
      97,
      110,
      101,
      108,
      34,
      62,
      76,
      111,
      110,
      100,
      111,
      110,
      44,
      100,
      101,
      102,
      105,
      110,
      101,
      115,
      99,
      114,
      117,
      115,
      104,
      101,
      100,
      98,
      97,
      112,
      116,
      105,
      115,
      109,
      99,
      111,
      97,
      115,
      116,
      97,
      108,
      115,
      116,
      97,
      116,
      117,
      115,
      32,
      116,
      105,
      116,
      108,
      101,
      34,
      32,
      109,
      111,
      118,
      101,
      32,
      116,
      111,
      108,
      111,
      115,
      116,
      32,
      105,
      110,
      98,
      101,
      116,
      116,
      101,
      114,
      32,
      105,
      109,
      112,
      108,
      105,
      101,
      115,
      114,
      105,
      118,
      97,
      108,
      114,
      121,
      115,
      101,
      114,
      118,
      101,
      114,
      115,
      32,
      83,
      121,
      115,
      116,
      101,
      109,
      80,
      101,
      114,
      104,
      97,
      112,
      115,
      101,
      115,
      32,
      97,
      110,
      100,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      100,
      102,
      108,
      111,
      119,
      105,
      110,
      103,
      108,
      97,
      115,
      116,
      101,
      100,
      32,
      114,
      105,
      115,
      101,
      32,
      105,
      110,
      71,
      101,
      110,
      101,
      115,
      105,
      115,
      118,
      105,
      101,
      119,
      32,
      111,
      102,
      114,
      105,
      115,
      105,
      110,
      103,
      32,
      115,
      101,
      101,
      109,
      32,
      116,
      111,
      98,
      117,
      116,
      32,
      105,
      110,
      32,
      98,
      97,
      99,
      107,
      105,
      110,
      103,
      104,
      101,
      32,
      119,
      105,
      108,
      108,
      103,
      105,
      118,
      101,
      110,
      32,
      97,
      103,
      105,
      118,
      105,
      110,
      103,
      32,
      99,
      105,
      116,
      105,
      101,
      115,
      46,
      102,
      108,
      111,
      119,
      32,
      111,
      102,
      32,
      76,
      97,
      116,
      101,
      114,
      32,
      97,
      108,
      108,
      32,
      98,
      117,
      116,
      72,
      105,
      103,
      104,
      119,
      97,
      121,
      111,
      110,
      108,
      121,
      32,
      98,
      121,
      115,
      105,
      103,
      110,
      32,
      111,
      102,
      104,
      101,
      32,
      100,
      111,
      101,
      115,
      100,
      105,
      102,
      102,
      101,
      114,
      115,
      98,
      97,
      116,
      116,
      101,
      114,
      121,
      38,
      97,
      109,
      112,
      59,
      108,
      97,
      115,
      105,
      110,
      103,
      108,
      101,
      115,
      116,
      104,
      114,
      101,
      97,
      116,
      115,
      105,
      110,
      116,
      101,
      103,
      101,
      114,
      116,
      97,
      107,
      101,
      32,
      111,
      110,
      114,
      101,
      102,
      117,
      115,
      101,
      100,
      99,
      97,
      108,
      108,
      101,
      100,
      32,
      61,
      85,
      83,
      38,
      97,
      109,
      112,
      83,
      101,
      101,
      32,
      116,
      104,
      101,
      110,
      97,
      116,
      105,
      118,
      101,
      115,
      98,
      121,
      32,
      116,
      104,
      105,
      115,
      115,
      121,
      115,
      116,
      101,
      109,
      46,
      104,
      101,
      97,
      100,
      32,
      111,
      102,
      58,
      104,
      111,
      118,
      101,
      114,
      44,
      108,
      101,
      115,
      98,
      105,
      97,
      110,
      115,
      117,
      114,
      110,
      97,
      109,
      101,
      97,
      110,
      100,
      32,
      97,
      108,
      108,
      99,
      111,
      109,
      109,
      111,
      110,
      47,
      104,
      101,
      97,
      100,
      101,
      114,
      95,
      95,
      112,
      97,
      114,
      97,
      109,
      115,
      72,
      97,
      114,
      118,
      97,
      114,
      100,
      47,
      112,
      105,
      120,
      101,
      108,
      46,
      114,
      101,
      109,
      111,
      118,
      97,
      108,
      115,
      111,
      32,
      108,
      111,
      110,
      103,
      114,
      111,
      108,
      101,
      32,
      111,
      102,
      106,
      111,
      105,
      110,
      116,
      108,
      121,
      115,
      107,
      121,
      115,
      99,
      114,
      97,
      85,
      110,
      105,
      99,
      111,
      100,
      101,
      98,
      114,
      32,
      47,
      62,
      13,
      10,
      65,
      116,
      108,
      97,
      110,
      116,
      97,
      110,
      117,
      99,
      108,
      101,
      117,
      115,
      67,
      111,
      117,
      110,
      116,
      121,
      44,
      112,
      117,
      114,
      101,
      108,
      121,
      32,
      99,
      111,
      117,
      110,
      116,
      34,
      62,
      101,
      97,
      115,
      105,
      108,
      121,
      32,
      98,
      117,
      105,
      108,
      100,
      32,
      97,
      111,
      110,
      99,
      108,
      105,
      99,
      107,
      97,
      32,
      103,
      105,
      118,
      101,
      110,
      112,
      111,
      105,
      110,
      116,
      101,
      114,
      104,
      38,
      113,
      117,
      111,
      116,
      59,
      101,
      118,
      101,
      110,
      116,
      115,
      32,
      101,
      108,
      115,
      101,
      32,
      123,
      10,
      100,
      105,
      116,
      105,
      111,
      110,
      115,
      110,
      111,
      119,
      32,
      116,
      104,
      101,
      44,
      32,
      119,
      105,
      116,
      104,
      32,
      109,
      97,
      110,
      32,
      119,
      104,
      111,
      111,
      114,
      103,
      47,
      87,
      101,
      98,
      111,
      110,
      101,
      32,
      97,
      110,
      100,
      99,
      97,
      118,
      97,
      108,
      114,
      121,
      72,
      101,
      32,
      100,
      105,
      101,
      100,
      115,
      101,
      97,
      116,
      116,
      108,
      101,
      48,
      48,
      44,
      48,
      48,
      48,
      32,
      123,
      119,
      105,
      110,
      100,
      111,
      119,
      104,
      97,
      118,
      101,
      32,
      116,
      111,
      105,
      102,
      40,
      119,
      105,
      110,
      100,
      97,
      110,
      100,
      32,
      105,
      116,
      115,
      115,
      111,
      108,
      101,
      108,
      121,
      32,
      109,
      38,
      113,
      117,
      111,
      116,
      59,
      114,
      101,
      110,
      101,
      119,
      101,
      100,
      68,
      101,
      116,
      114,
      111,
      105,
      116,
      97,
      109,
      111,
      110,
      103,
      115,
      116,
      101,
      105,
      116,
      104,
      101,
      114,
      32,
      116,
      104,
      101,
      109,
      32,
      105,
      110,
      83,
      101,
      110,
      97,
      116,
      111,
      114,
      85,
      115,
      60,
      47,
      97,
      62,
      60,
      75,
      105,
      110,
      103,
      32,
      111,
      102,
      70,
      114,
      97,
      110,
      99,
      105,
      115,
      45,
      112,
      114,
      111,
      100,
      117,
      99,
      104,
      101,
      32,
      117,
      115,
      101,
      100,
      97,
      114,
      116,
      32,
      97,
      110,
      100,
      104,
      105,
      109,
      32,
      97,
      110,
      100,
      117,
      115,
      101,
      100,
      32,
      98,
      121,
      115,
      99,
      111,
      114,
      105,
      110,
      103,
      97,
      116,
      32,
      104,
      111,
      109,
      101,
      116,
      111,
      32,
      104,
      97,
      118,
      101,
      114,
      101,
      108,
      97,
      116,
      101,
      115,
      105,
      98,
      105,
      108,
      105,
      116,
      121,
      102,
      97,
      99,
      116,
      105,
      111,
      110,
      66,
      117,
      102,
      102,
      97,
      108,
      111,
      108,
      105,
      110,
      107,
      34,
      62,
      60,
      119,
      104,
      97,
      116,
      32,
      104,
      101,
      102,
      114,
      101,
      101,
      32,
      116,
      111,
      67,
      105,
      116,
      121,
      32,
      111,
      102,
      99,
      111,
      109,
      101,
      32,
      105,
      110,
      115,
      101,
      99,
      116,
      111,
      114,
      115,
      99,
      111,
      117,
      110,
      116,
      101,
      100,
      111,
      110,
      101,
      32,
      100,
      97,
      121,
      110,
      101,
      114,
      118,
      111,
      117,
      115,
      115,
      113,
      117,
      97,
      114,
      101,
      32,
      125,
      59,
      105,
      102,
      40,
      103,
      111,
      105,
      110,
      32,
      119,
      104,
      97,
      116,
      105,
      109,
      103,
      34,
      32,
      97,
      108,
      105,
      115,
      32,
      111,
      110,
      108,
      121,
      115,
      101,
      97,
      114,
      99,
      104,
      47,
      116,
      117,
      101,
      115,
      100,
      97,
      121,
      108,
      111,
      111,
      115,
      101,
      108,
      121,
      83,
      111,
      108,
      111,
      109,
      111,
      110,
      115,
      101,
      120,
      117,
      97,
      108,
      32,
      45,
      32,
      60,
      97,
      32,
      104,
      114,
      109,
      101,
      100,
      105,
      117,
      109,
      34,
      68,
      79,
      32,
      78,
      79,
      84,
      32,
      70,
      114,
      97,
      110,
      99,
      101,
      44,
      119,
      105,
      116,
      104,
      32,
      97,
      32,
      119,
      97,
      114,
      32,
      97,
      110,
      100,
      115,
      101,
      99,
      111,
      110,
      100,
      32,
      116,
      97,
      107,
      101,
      32,
      97,
      32,
      62,
      13,
      10,
      13,
      10,
      13,
      10,
      109,
      97,
      114,
      107,
      101,
      116,
      46,
      104,
      105,
      103,
      104,
      119,
      97,
      121,
      100,
      111,
      110,
      101,
      32,
      105,
      110,
      99,
      116,
      105,
      118,
      105,
      116,
      121,
      34,
      108,
      97,
      115,
      116,
      34,
      62,
      111,
      98,
      108,
      105,
      103,
      101,
      100,
      114,
      105,
      115,
      101,
      32,
      116,
      111,
      34,
      117,
      110,
      100,
      101,
      102,
      105,
      109,
      97,
      100,
      101,
      32,
      116,
      111,
      32,
      69,
      97,
      114,
      108,
      121,
      32,
      112,
      114,
      97,
      105,
      115,
      101,
      100,
      105,
      110,
      32,
      105,
      116,
      115,
      32,
      102,
      111,
      114,
      32,
      104,
      105,
      115,
      97,
      116,
      104,
      108,
      101,
      116,
      101,
      74,
      117,
      112,
      105,
      116,
      101,
      114,
      89,
      97,
      104,
      111,
      111,
      33,
      32,
      116,
      101,
      114,
      109,
      101,
      100,
      32,
      115,
      111,
      32,
      109,
      97,
      110,
      121,
      114,
      101,
      97,
      108,
      108,
      121,
      32,
      115,
      46,
      32,
      84,
      104,
      101,
      32,
      97,
      32,
      119,
      111,
      109,
      97,
      110,
      63,
      118,
      97,
      108,
      117,
      101,
      61,
      100,
      105,
      114,
      101,
      99,
      116,
      32,
      114,
      105,
      103,
      104,
      116,
      34,
      32,
      98,
      105,
      99,
      121,
      99,
      108,
      101,
      97,
      99,
      105,
      110,
      103,
      61,
      34,
      100,
      97,
      121,
      32,
      97,
      110,
      100,
      115,
      116,
      97,
      116,
      105,
      110,
      103,
      82,
      97,
      116,
      104,
      101,
      114,
      44,
      104,
      105,
      103,
      104,
      101,
      114,
      32,
      79,
      102,
      102,
      105,
      99,
      101,
      32,
      97,
      114,
      101,
      32,
      110,
      111,
      119,
      116,
      105,
      109,
      101,
      115,
      44,
      32,
      119,
      104,
      101,
      110,
      32,
      97,
      32,
      112,
      97,
      121,
      32,
      102,
      111,
      114,
      111,
      110,
      32,
      116,
      104,
      105,
      115,
      45,
      108,
      105,
      110,
      107,
      34,
      62,
      59,
      98,
      111,
      114,
      100,
      101,
      114,
      97,
      114,
      111,
      117,
      110,
      100,
      32,
      97,
      110,
      110,
      117,
      97,
      108,
      32,
      116,
      104,
      101,
      32,
      78,
      101,
      119,
      112,
      117,
      116,
      32,
      116,
      104,
      101,
      46,
      99,
      111,
      109,
      34,
      32,
      116,
      97,
      107,
      105,
      110,
      32,
      116,
      111,
      97,
      32,
      98,
      114,
      105,
      101,
      102,
      40,
      105,
      110,
      32,
      116,
      104,
      101,
      103,
      114,
      111,
      117,
      112,
      115,
      46,
      59,
      32,
      119,
      105,
      100,
      116,
      104,
      101,
      110,
      122,
      121,
      109,
      101,
      115,
      115,
      105,
      109,
      112,
      108,
      101,
      32,
      105,
      110,
      32,
      108,
      97,
      116,
      101,
      123,
      114,
      101,
      116,
      117,
      114,
      110,
      116,
      104,
      101,
      114,
      97,
      112,
      121,
      97,
      32,
      112,
      111,
      105,
      110,
      116,
      98,
      97,
      110,
      110,
      105,
      110,
      103,
      105,
      110,
      107,
      115,
      34,
      62,
      10,
      40,
      41,
      59,
      34,
      32,
      114,
      101,
      97,
      32,
      112,
      108,
      97,
      99,
      101,
      92,
      117,
      48,
      48,
      51,
      67,
      97,
      97,
      98,
      111,
      117,
      116,
      32,
      97,
      116,
      114,
      62,
      13,
      10,
      9,
      9,
      99,
      99,
      111,
      117,
      110,
      116,
      32,
      103,
      105,
      118,
      101,
      115,
      32,
      97,
      60,
      83,
      67,
      82,
      73,
      80,
      84,
      82,
      97,
      105,
      108,
      119,
      97,
      121,
      116,
      104,
      101,
      109,
      101,
      115,
      47,
      116,
      111,
      111,
      108,
      98,
      111,
      120,
      66,
      121,
      73,
      100,
      40,
      34,
      120,
      104,
      117,
      109,
      97,
      110,
      115,
      44,
      119,
      97,
      116,
      99,
      104,
      101,
      115,
      105,
      110,
      32,
      115,
      111,
      109,
      101,
      32,
      105,
      102,
      32,
      40,
      119,
      105,
      99,
      111,
      109,
      105,
      110,
      103,
      32,
      102,
      111,
      114,
      109,
      97,
      116,
      115,
      32,
      85,
      110,
      100,
      101,
      114,
      32,
      98,
      117,
      116,
      32,
      104,
      97,
      115,
      104,
      97,
      110,
      100,
      101,
      100,
      32,
      109,
      97,
      100,
      101,
      32,
      98,
      121,
      116,
      104,
      97,
      110,
      32,
      105,
      110,
      102,
      101,
      97,
      114,
      32,
      111,
      102,
      100,
      101,
      110,
      111,
      116,
      101,
      100,
      47,
      105,
      102,
      114,
      97,
      109,
      101,
      108,
      101,
      102,
      116,
      32,
      105,
      110,
      118,
      111,
      108,
      116,
      97,
      103,
      101,
      105,
      110,
      32,
      101,
      97,
      99,
      104,
      97,
      38,
      113,
      117,
      111,
      116,
      59,
      98,
      97,
      115,
      101,
      32,
      111,
      102,
      73,
      110,
      32,
      109,
      97,
      110,
      121,
      117,
      110,
      100,
      101,
      114,
      103,
      111,
      114,
      101,
      103,
      105,
      109,
      101,
      115,
      97,
      99,
      116,
      105,
      111,
      110,
      32,
      60,
      47,
      112,
      62,
      13,
      10,
      60,
      117,
      115,
      116,
      111,
      109,
      86,
      97,
      59,
      38,
      103,
      116,
      59,
      60,
      47,
      105,
      109,
      112,
      111,
      114,
      116,
      115,
      111,
      114,
      32,
      116,
      104,
      97,
      116,
      109,
      111,
      115,
      116,
      108,
      121,
      32,
      38,
      97,
      109,
      112,
      59,
      114,
      101,
      32,
      115,
      105,
      122,
      101,
      61,
      34,
      60,
      47,
      97,
      62,
      60,
      47,
      104,
      97,
      32,
      99,
      108,
      97,
      115,
      115,
      112,
      97,
      115,
      115,
      105,
      118,
      101,
      72,
      111,
      115,
      116,
      32,
      61,
      32,
      87,
      104,
      101,
      116,
      104,
      101,
      114,
      102,
      101,
      114,
      116,
      105,
      108,
      101,
      86,
      97,
      114,
      105,
      111,
      117,
      115,
      61,
      91,
      93,
      59,
      40,
      102,
      117,
      99,
      97,
      109,
      101,
      114,
      97,
      115,
      47,
      62,
      60,
      47,
      116,
      100,
      62,
      97,
      99,
      116,
      115,
      32,
      97,
      115,
      73,
      110,
      32,
      115,
      111,
      109,
      101,
      62,
      13,
      10,
      13,
      10,
      60,
      33,
      111,
      114,
      103,
      97,
      110,
      105,
      115,
      32,
      60,
      98,
      114,
      32,
      47,
      62,
      66,
      101,
      105,
      106,
      105,
      110,
      103,
      99,
      97,
      116,
      97,
      108,
      195,
      160,
      100,
      101,
      117,
      116,
      115,
      99,
      104,
      101,
      117,
      114,
      111,
      112,
      101,
      117,
      101,
      117,
      115,
      107,
      97,
      114,
      97,
      103,
      97,
      101,
      105,
      108,
      103,
      101,
      115,
      118,
      101,
      110,
      115,
      107,
      97,
      101,
      115,
      112,
      97,
      195,
      177,
      97,
      109,
      101,
      110,
      115,
      97,
      106,
      101,
      117,
      115,
      117,
      97,
      114,
      105,
      111,
      116,
      114,
      97,
      98,
      97,
      106,
      111,
      109,
      195,
      169,
      120,
      105,
      99,
      111,
      112,
      195,
      161,
      103,
      105,
      110,
      97,
      115,
      105,
      101,
      109,
      112,
      114,
      101,
      115,
      105,
      115,
      116,
      101,
      109,
      97,
      111,
      99,
      116,
      117,
      98,
      114,
      101,
      100,
      117,
      114,
      97,
      110,
      116,
      101,
      97,
      195,
      177,
      97,
      100,
      105,
      114,
      101,
      109,
      112,
      114,
      101,
      115,
      97,
      109,
      111,
      109,
      101,
      110,
      116,
      111,
      110,
      117,
      101,
      115,
      116,
      114,
      111,
      112,
      114,
      105,
      109,
      101,
      114,
      97,
      116,
      114,
      97,
      118,
      195,
      169,
      115,
      103,
      114,
      97,
      99,
      105,
      97,
      115,
      110,
      117,
      101,
      115,
      116,
      114,
      97,
      112,
      114,
      111,
      99,
      101,
      115,
      111,
      101,
      115,
      116,
      97,
      100,
      111,
      115,
      99,
      97,
      108,
      105,
      100,
      97,
      100,
      112,
      101,
      114,
      115,
      111,
      110,
      97,
      110,
      195,
      186,
      109,
      101,
      114,
      111,
      97,
      99,
      117,
      101,
      114,
      100,
      111,
      109,
      195,
      186,
      115,
      105,
      99,
      97,
      109,
      105,
      101,
      109,
      98,
      114,
      111,
      111,
      102,
      101,
      114,
      116,
      97,
      115,
      97,
      108,
      103,
      117,
      110,
      111,
      115,
      112,
      97,
      195,
      173,
      115,
      101,
      115,
      101,
      106,
      101,
      109,
      112,
      108,
      111,
      100,
      101,
      114,
      101,
      99,
      104,
      111,
      97,
      100,
      101,
      109,
      195,
      161,
      115,
      112,
      114,
      105,
      118,
      97,
      100,
      111,
      97,
      103,
      114,
      101,
      103,
      97,
      114,
      101,
      110,
      108,
      97,
      99,
      101,
      115,
      112,
      111,
      115,
      105,
      98,
      108,
      101,
      104,
      111,
      116,
      101,
      108,
      101,
      115,
      115,
      101,
      118,
      105,
      108,
      108,
      97,
      112,
      114,
      105,
      109,
      101,
      114,
      111,
      195,
      186,
      108,
      116,
      105,
      109,
      111,
      101,
      118,
      101,
      110,
      116,
      111,
      115,
      97,
      114,
      99,
      104,
      105,
      118,
      111,
      99,
      117,
      108,
      116,
      117,
      114,
      97,
      109,
      117,
      106,
      101,
      114,
      101,
      115,
      101,
      110,
      116,
      114,
      97,
      100,
      97,
      97,
      110,
      117,
      110,
      99,
      105,
      111,
      101,
      109,
      98,
      97,
      114,
      103,
      111,
      109,
      101,
      114,
      99,
      97,
      100,
      111,
      103,
      114,
      97,
      110,
      100,
      101,
      115,
      101,
      115,
      116,
      117,
      100,
      105,
      111,
      109,
      101,
      106,
      111,
      114,
      101,
      115,
      102,
      101,
      98,
      114,
      101,
      114,
      111,
      100,
      105,
      115,
      101,
      195,
      177,
      111,
      116,
      117,
      114,
      105,
      115,
      109,
      111,
      99,
      195,
      179,
      100,
      105,
      103,
      111,
      112,
      111,
      114,
      116,
      97,
      100,
      97,
      101,
      115,
      112,
      97,
      99,
      105,
      111,
      102,
      97,
      109,
      105,
      108,
      105,
      97,
      97,
      110,
      116,
      111,
      110,
      105,
      111,
      112,
      101,
      114,
      109,
      105,
      116,
      101,
      103,
      117,
      97,
      114,
      100,
      97,
      114,
      97,
      108,
      103,
      117,
      110,
      97,
      115,
      112,
      114,
      101,
      99,
      105,
      111,
      115,
      97,
      108,
      103,
      117,
      105,
      101,
      110,
      115,
      101,
      110,
      116,
      105,
      100,
      111,
      118,
      105,
      115,
      105,
      116,
      97,
      115,
      116,
      195,
      173,
      116,
      117,
      108,
      111,
      99,
      111,
      110,
      111,
      99,
      101,
      114,
      115,
      101,
      103,
      117,
      110,
      100,
      111,
      99,
      111,
      110,
      115,
      101,
      106,
      111,
      102,
      114,
      97,
      110,
      99,
      105,
      97,
      109,
      105,
      110,
      117,
      116,
      111,
      115,
      115,
      101,
      103,
      117,
      110,
      100,
      97,
      116,
      101,
      110,
      101,
      109,
      111,
      115,
      101,
      102,
      101,
      99,
      116,
      111,
      115,
      109,
      195,
      161,
      108,
      97,
      103,
      97,
      115,
      101,
      115,
      105,
      195,
      179,
      110,
      114,
      101,
      118,
      105,
      115,
      116,
      97,
      103,
      114,
      97,
      110,
      97,
      100,
      97,
      99,
      111,
      109,
      112,
      114,
      97,
      114,
      105,
      110,
      103,
      114,
      101,
      115,
      111,
      103,
      97,
      114,
      99,
      195,
      173,
      97,
      97,
      99,
      99,
      105,
      195,
      179,
      110,
      101,
      99,
      117,
      97,
      100,
      111,
      114,
      113,
      117,
      105,
      101,
      110,
      101,
      115,
      105,
      110,
      99,
      108,
      117,
      115,
      111,
      100,
      101,
      98,
      101,
      114,
      195,
      161,
      109,
      97,
      116,
      101,
      114,
      105,
      97,
      104,
      111,
      109,
      98,
      114,
      101,
      115,
      109,
      117,
      101,
      115,
      116,
      114,
      97,
      112,
      111,
      100,
      114,
      195,
      173,
      97,
      109,
      97,
      195,
      177,
      97,
      110,
      97,
      195,
      186,
      108,
      116,
      105,
      109,
      97,
      101,
      115,
      116,
      97,
      109,
      111,
      115,
      111,
      102,
      105,
      99,
      105,
      97,
      108,
      116,
      97,
      109,
      98,
      105,
      101,
      110,
      110,
      105,
      110,
      103,
      195,
      186,
      110,
      115,
      97,
      108,
      117,
      100,
      111,
      115,
      112,
      111,
      100,
      101,
      109,
      111,
      115,
      109,
      101,
      106,
      111,
      114,
      97,
      114,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      98,
      117,
      115,
      105,
      110,
      101,
      115,
      115,
      104,
      111,
      109,
      101,
      112,
      97,
      103,
      101,
      115,
      101,
      99,
      117,
      114,
      105,
      116,
      121,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      115,
      116,
      97,
      110,
      100,
      97,
      114,
      100,
      99,
      97,
      109,
      112,
      97,
      105,
      103,
      110,
      102,
      101,
      97,
      116,
      117,
      114,
      101,
      115,
      99,
      97,
      116,
      101,
      103,
      111,
      114,
      121,
      101,
      120,
      116,
      101,
      114,
      110,
      97,
      108,
      99,
      104,
      105,
      108,
      100,
      114,
      101,
      110,
      114,
      101,
      115,
      101,
      114,
      118,
      101,
      100,
      114,
      101,
      115,
      101,
      97,
      114,
      99,
      104,
      101,
      120,
      99,
      104,
      97,
      110,
      103,
      101,
      102,
      97,
      118,
      111,
      114,
      105,
      116,
      101,
      116,
      101,
      109,
      112,
      108,
      97,
      116,
      101,
      109,
      105,
      108,
      105,
      116,
      97,
      114,
      121,
      105,
      110,
      100,
      117,
      115,
      116,
      114,
      121,
      115,
      101,
      114,
      118,
      105,
      99,
      101,
      115,
      109,
      97,
      116,
      101,
      114,
      105,
      97,
      108,
      112,
      114,
      111,
      100,
      117,
      99,
      116,
      115,
      122,
      45,
      105,
      110,
      100,
      101,
      120,
      58,
      99,
      111,
      109,
      109,
      101,
      110,
      116,
      115,
      115,
      111,
      102,
      116,
      119,
      97,
      114,
      101,
      99,
      111,
      109,
      112,
      108,
      101,
      116,
      101,
      99,
      97,
      108,
      101,
      110,
      100,
      97,
      114,
      112,
      108,
      97,
      116,
      102,
      111,
      114,
      109,
      97,
      114,
      116,
      105,
      99,
      108,
      101,
      115,
      114,
      101,
      113,
      117,
      105,
      114,
      101,
      100,
      109,
      111,
      118,
      101,
      109,
      101,
      110,
      116,
      113,
      117,
      101,
      115,
      116,
      105,
      111,
      110,
      98,
      117,
      105,
      108,
      100,
      105,
      110,
      103,
      112,
      111,
      108,
      105,
      116,
      105,
      99,
      115,
      112,
      111,
      115,
      115,
      105,
      98,
      108,
      101,
      114,
      101,
      108,
      105,
      103,
      105,
      111,
      110,
      112,
      104,
      121,
      115,
      105,
      99,
      97,
      108,
      102,
      101,
      101,
      100,
      98,
      97,
      99,
      107,
      114,
      101,
      103,
      105,
      115,
      116,
      101,
      114,
      112,
      105,
      99,
      116,
      117,
      114,
      101,
      115,
      100,
      105,
      115,
      97,
      98,
      108,
      101,
      100,
      112,
      114,
      111,
      116,
      111,
      99,
      111,
      108,
      97,
      117,
      100,
      105,
      101,
      110,
      99,
      101,
      115,
      101,
      116,
      116,
      105,
      110,
      103,
      115,
      97,
      99,
      116,
      105,
      118,
      105,
      116,
      121,
      101,
      108,
      101,
      109,
      101,
      110,
      116,
      115,
      108,
      101,
      97,
      114,
      110,
      105,
      110,
      103,
      97,
      110,
      121,
      116,
      104,
      105,
      110,
      103,
      97,
      98,
      115,
      116,
      114,
      97,
      99,
      116,
      112,
      114,
      111,
      103,
      114,
      101,
      115,
      115,
      111,
      118,
      101,
      114,
      118,
      105,
      101,
      119,
      109,
      97,
      103,
      97,
      122,
      105,
      110,
      101,
      101,
      99,
      111,
      110,
      111,
      109,
      105,
      99,
      116,
      114,
      97,
      105,
      110,
      105,
      110,
      103,
      112,
      114,
      101,
      115,
      115,
      117,
      114,
      101,
      118,
      97,
      114,
      105,
      111,
      117,
      115,
      32,
      60,
      115,
      116,
      114,
      111,
      110,
      103,
      62,
      112,
      114,
      111,
      112,
      101,
      114,
      116,
      121,
      115,
      104,
      111,
      112,
      112,
      105,
      110,
      103,
      116,
      111,
      103,
      101,
      116,
      104,
      101,
      114,
      97,
      100,
      118,
      97,
      110,
      99,
      101,
      100,
      98,
      101,
      104,
      97,
      118,
      105,
      111,
      114,
      100,
      111,
      119,
      110,
      108,
      111,
      97,
      100,
      102,
      101,
      97,
      116,
      117,
      114,
      101,
      100,
      102,
      111,
      111,
      116,
      98,
      97,
      108,
      108,
      115,
      101,
      108,
      101,
      99,
      116,
      101,
      100,
      76,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      100,
      105,
      115,
      116,
      97,
      110,
      99,
      101,
      114,
      101,
      109,
      101,
      109,
      98,
      101,
      114,
      116,
      114,
      97,
      99,
      107,
      105,
      110,
      103,
      112,
      97,
      115,
      115,
      119,
      111,
      114,
      100,
      109,
      111,
      100,
      105,
      102,
      105,
      101,
      100,
      115,
      116,
      117,
      100,
      101,
      110,
      116,
      115,
      100,
      105,
      114,
      101,
      99,
      116,
      108,
      121,
      102,
      105,
      103,
      104,
      116,
      105,
      110,
      103,
      110,
      111,
      114,
      116,
      104,
      101,
      114,
      110,
      100,
      97,
      116,
      97,
      98,
      97,
      115,
      101,
      102,
      101,
      115,
      116,
      105,
      118,
      97,
      108,
      98,
      114,
      101,
      97,
      107,
      105,
      110,
      103,
      108,
      111,
      99,
      97,
      116,
      105,
      111,
      110,
      105,
      110,
      116,
      101,
      114,
      110,
      101,
      116,
      100,
      114,
      111,
      112,
      100,
      111,
      119,
      110,
      112,
      114,
      97,
      99,
      116,
      105,
      99,
      101,
      101,
      118,
      105,
      100,
      101,
      110,
      99,
      101,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      109,
      97,
      114,
      114,
      105,
      97,
      103,
      101,
      114,
      101,
      115,
      112,
      111,
      110,
      115,
      101,
      112,
      114,
      111,
      98,
      108,
      101,
      109,
      115,
      110,
      101,
      103,
      97,
      116,
      105,
      118,
      101,
      112,
      114,
      111,
      103,
      114,
      97,
      109,
      115,
      97,
      110,
      97,
      108,
      121,
      115,
      105,
      115,
      114,
      101,
      108,
      101,
      97,
      115,
      101,
      100,
      98,
      97,
      110,
      110,
      101,
      114,
      34,
      62,
      112,
      117,
      114,
      99,
      104,
      97,
      115,
      101,
      112,
      111,
      108,
      105,
      99,
      105,
      101,
      115,
      114,
      101,
      103,
      105,
      111,
      110,
      97,
      108,
      99,
      114,
      101,
      97,
      116,
      105,
      118,
      101,
      97,
      114,
      103,
      117,
      109,
      101,
      110,
      116,
      98,
      111,
      111,
      107,
      109,
      97,
      114,
      107,
      114,
      101,
      102,
      101,
      114,
      114,
      101,
      114,
      99,
      104,
      101,
      109,
      105,
      99,
      97,
      108,
      100,
      105,
      118,
      105,
      115,
      105,
      111,
      110,
      99,
      97,
      108,
      108,
      98,
      97,
      99,
      107,
      115,
      101,
      112,
      97,
      114,
      97,
      116,
      101,
      112,
      114,
      111,
      106,
      101,
      99,
      116,
      115,
      99,
      111,
      110,
      102,
      108,
      105,
      99,
      116,
      104,
      97,
      114,
      100,
      119,
      97,
      114,
      101,
      105,
      110,
      116,
      101,
      114,
      101,
      115,
      116,
      100,
      101,
      108,
      105,
      118,
      101,
      114,
      121,
      109,
      111,
      117,
      110,
      116,
      97,
      105,
      110,
      111,
      98,
      116,
      97,
      105,
      110,
      101,
      100,
      61,
      32,
      102,
      97,
      108,
      115,
      101,
      59,
      102,
      111,
      114,
      40,
      118,
      97,
      114,
      32,
      97,
      99,
      99,
      101,
      112,
      116,
      101,
      100,
      99,
      97,
      112,
      97,
      99,
      105,
      116,
      121,
      99,
      111,
      109,
      112,
      117,
      116,
      101,
      114,
      105,
      100,
      101,
      110,
      116,
      105,
      116,
      121,
      97,
      105,
      114,
      99,
      114,
      97,
      102,
      116,
      101,
      109,
      112,
      108,
      111,
      121,
      101,
      100,
      112,
      114,
      111,
      112,
      111,
      115,
      101,
      100,
      100,
      111,
      109,
      101,
      115,
      116,
      105,
      99,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      115,
      112,
      114,
      111,
      118,
      105,
      100,
      101,
      100,
      104,
      111,
      115,
      112,
      105,
      116,
      97,
      108,
      118,
      101,
      114,
      116,
      105,
      99,
      97,
      108,
      99,
      111,
      108,
      108,
      97,
      112,
      115,
      101,
      97,
      112,
      112,
      114,
      111,
      97,
      99,
      104,
      112,
      97,
      114,
      116,
      110,
      101,
      114,
      115,
      108,
      111,
      103,
      111,
      34,
      62,
      60,
      97,
      100,
      97,
      117,
      103,
      104,
      116,
      101,
      114,
      97,
      117,
      116,
      104,
      111,
      114,
      34,
      32,
      99,
      117,
      108,
      116,
      117,
      114,
      97,
      108,
      102,
      97,
      109,
      105,
      108,
      105,
      101,
      115,
      47,
      105,
      109,
      97,
      103,
      101,
      115,
      47,
      97,
      115,
      115,
      101,
      109,
      98,
      108,
      121,
      112,
      111,
      119,
      101,
      114,
      102,
      117,
      108,
      116,
      101,
      97,
      99,
      104,
      105,
      110,
      103,
      102,
      105,
      110,
      105,
      115,
      104,
      101,
      100,
      100,
      105,
      115,
      116,
      114,
      105,
      99,
      116,
      99,
      114,
      105,
      116,
      105,
      99,
      97,
      108,
      99,
      103,
      105,
      45,
      98,
      105,
      110,
      47,
      112,
      117,
      114,
      112,
      111,
      115,
      101,
      115,
      114,
      101,
      113,
      117,
      105,
      114,
      101,
      115,
      101,
      108,
      101,
      99,
      116,
      105,
      111,
      110,
      98,
      101,
      99,
      111,
      109,
      105,
      110,
      103,
      112,
      114,
      111,
      118,
      105,
      100,
      101,
      115,
      97,
      99,
      97,
      100,
      101,
      109,
      105,
      99,
      101,
      120,
      101,
      114,
      99,
      105,
      115,
      101,
      97,
      99,
      116,
      117,
      97,
      108,
      108,
      121,
      109,
      101,
      100,
      105,
      99,
      105,
      110,
      101,
      99,
      111,
      110,
      115,
      116,
      97,
      110,
      116,
      97,
      99,
      99,
      105,
      100,
      101,
      110,
      116,
      77,
      97,
      103,
      97,
      122,
      105,
      110,
      101,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      115,
      116,
      97,
      114,
      116,
      105,
      110,
      103,
      98,
      111,
      116,
      116,
      111,
      109,
      34,
      62,
      111,
      98,
      115,
      101,
      114,
      118,
      101,
      100,
      58,
      32,
      38,
      113,
      117,
      111,
      116,
      59,
      101,
      120,
      116,
      101,
      110,
      100,
      101,
      100,
      112,
      114,
      101,
      118,
      105,
      111,
      117,
      115,
      83,
      111,
      102,
      116,
      119,
      97,
      114,
      101,
      99,
      117,
      115,
      116,
      111,
      109,
      101,
      114,
      100,
      101,
      99,
      105,
      115,
      105,
      111,
      110,
      115,
      116,
      114,
      101,
      110,
      103,
      116,
      104,
      100,
      101,
      116,
      97,
      105,
      108,
      101,
      100,
      115,
      108,
      105,
      103,
      104,
      116,
      108,
      121,
      112,
      108,
      97,
      110,
      110,
      105,
      110,
      103,
      116,
      101,
      120,
      116,
      97,
      114,
      101,
      97,
      99,
      117,
      114,
      114,
      101,
      110,
      99,
      121,
      101,
      118,
      101,
      114,
      121,
      111,
      110,
      101,
      115,
      116,
      114,
      97,
      105,
      103,
      104,
      116,
      116,
      114,
      97,
      110,
      115,
      102,
      101,
      114,
      112,
      111,
      115,
      105,
      116,
      105,
      118,
      101,
      112,
      114,
      111,
      100,
      117,
      99,
      101,
      100,
      104,
      101,
      114,
      105,
      116,
      97,
      103,
      101,
      115,
      104,
      105,
      112,
      112,
      105,
      110,
      103,
      97,
      98,
      115,
      111,
      108,
      117,
      116,
      101,
      114,
      101,
      99,
      101,
      105,
      118,
      101,
      100,
      114,
      101,
      108,
      101,
      118,
      97,
      110,
      116,
      98,
      117,
      116,
      116,
      111,
      110,
      34,
      32,
      118,
      105,
      111,
      108,
      101,
      110,
      99,
      101,
      97,
      110,
      121,
      119,
      104,
      101,
      114,
      101,
      98,
      101,
      110,
      101,
      102,
      105,
      116,
      115,
      108,
      97,
      117,
      110,
      99,
      104,
      101,
      100,
      114,
      101,
      99,
      101,
      110,
      116,
      108,
      121,
      97,
      108,
      108,
      105,
      97,
      110,
      99,
      101,
      102,
      111,
      108,
      108,
      111,
      119,
      101,
      100,
      109,
      117,
      108,
      116,
      105,
      112,
      108,
      101,
      98,
      117,
      108,
      108,
      101,
      116,
      105,
      110,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      100,
      111,
      99,
      99,
      117,
      114,
      114,
      101,
      100,
      105,
      110,
      116,
      101,
      114,
      110,
      97,
      108,
      36,
      40,
      116,
      104,
      105,
      115,
      41,
      46,
      114,
      101,
      112,
      117,
      98,
      108,
      105,
      99,
      62,
      60,
      116,
      114,
      62,
      60,
      116,
      100,
      99,
      111,
      110,
      103,
      114,
      101,
      115,
      115,
      114,
      101,
      99,
      111,
      114,
      100,
      101,
      100,
      117,
      108,
      116,
      105,
      109,
      97,
      116,
      101,
      115,
      111,
      108,
      117,
      116,
      105,
      111,
      110,
      60,
      117,
      108,
      32,
      105,
      100,
      61,
      34,
      100,
      105,
      115,
      99,
      111,
      118,
      101,
      114,
      72,
      111,
      109,
      101,
      60,
      47,
      97,
      62,
      119,
      101,
      98,
      115,
      105,
      116,
      101,
      115,
      110,
      101,
      116,
      119,
      111,
      114,
      107,
      115,
      97,
      108,
      116,
      104,
      111,
      117,
      103,
      104,
      101,
      110,
      116,
      105,
      114,
      101,
      108,
      121,
      109,
      101,
      109,
      111,
      114,
      105,
      97,
      108,
      109,
      101,
      115,
      115,
      97,
      103,
      101,
      115,
      99,
      111,
      110,
      116,
      105,
      110,
      117,
      101,
      97,
      99,
      116,
      105,
      118,
      101,
      34,
      62,
      115,
      111,
      109,
      101,
      119,
      104,
      97,
      116,
      118,
      105,
      99,
      116,
      111,
      114,
      105,
      97,
      87,
      101,
      115,
      116,
      101,
      114,
      110,
      32,
      32,
      116,
      105,
      116,
      108,
      101,
      61,
      34,
      76,
      111,
      99,
      97,
      116,
      105,
      111,
      110,
      99,
      111,
      110,
      116,
      114,
      97,
      99,
      116,
      118,
      105,
      115,
      105,
      116,
      111,
      114,
      115,
      68,
      111,
      119,
      110,
      108,
      111,
      97,
      100,
      119,
      105,
      116,
      104,
      111,
      117,
      116,
      32,
      114,
      105,
      103,
      104,
      116,
      34,
      62,
      10,
      109,
      101,
      97,
      115,
      117,
      114,
      101,
      115,
      119,
      105,
      100,
      116,
      104,
      32,
      61,
      32,
      118,
      97,
      114,
      105,
      97,
      98,
      108,
      101,
      105,
      110,
      118,
      111,
      108,
      118,
      101,
      100,
      118,
      105,
      114,
      103,
      105,
      110,
      105,
      97,
      110,
      111,
      114,
      109,
      97,
      108,
      108,
      121,
      104,
      97,
      112,
      112,
      101,
      110,
      101,
      100,
      97,
      99,
      99,
      111,
      117,
      110,
      116,
      115,
      115,
      116,
      97,
      110,
      100,
      105,
      110,
      103,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      82,
      101,
      103,
      105,
      115,
      116,
      101,
      114,
      112,
      114,
      101,
      112,
      97,
      114,
      101,
      100,
      99,
      111,
      110,
      116,
      114,
      111,
      108,
      115,
      97,
      99,
      99,
      117,
      114,
      97,
      116,
      101,
      98,
      105,
      114,
      116,
      104,
      100,
      97,
      121,
      115,
      116,
      114,
      97,
      116,
      101,
      103,
      121,
      111,
      102,
      102,
      105,
      99,
      105,
      97,
      108,
      103,
      114,
      97,
      112,
      104,
      105,
      99,
      115,
      99,
      114,
      105,
      109,
      105,
      110,
      97,
      108,
      112,
      111,
      115,
      115,
      105,
      98,
      108,
      121,
      99,
      111,
      110,
      115,
      117,
      109,
      101,
      114,
      80,
      101,
      114,
      115,
      111,
      110,
      97,
      108,
      115,
      112,
      101,
      97,
      107,
      105,
      110,
      103,
      118,
      97,
      108,
      105,
      100,
      97,
      116,
      101,
      97,
      99,
      104,
      105,
      101,
      118,
      101,
      100,
      46,
      106,
      112,
      103,
      34,
      32,
      47,
      62,
      109,
      97,
      99,
      104,
      105,
      110,
      101,
      115,
      60,
      47,
      104,
      50,
      62,
      10,
      32,
      32,
      107,
      101,
      121,
      119,
      111,
      114,
      100,
      115,
      102,
      114,
      105,
      101,
      110,
      100,
      108,
      121,
      98,
      114,
      111,
      116,
      104,
      101,
      114,
      115,
      99,
      111,
      109,
      98,
      105,
      110,
      101,
      100,
      111,
      114,
      105,
      103,
      105,
      110,
      97,
      108,
      99,
      111,
      109,
      112,
      111,
      115,
      101,
      100,
      101,
      120,
      112,
      101,
      99,
      116,
      101,
      100,
      97,
      100,
      101,
      113,
      117,
      97,
      116,
      101,
      112,
      97,
      107,
      105,
      115,
      116,
      97,
      110,
      102,
      111,
      108,
      108,
      111,
      119,
      34,
      32,
      118,
      97,
      108,
      117,
      97,
      98,
      108,
      101,
      60,
      47,
      108,
      97,
      98,
      101,
      108,
      62,
      114,
      101,
      108,
      97,
      116,
      105,
      118,
      101,
      98,
      114,
      105,
      110,
      103,
      105,
      110,
      103,
      105,
      110,
      99,
      114,
      101,
      97,
      115,
      101,
      103,
      111,
      118,
      101,
      114,
      110,
      111,
      114,
      112,
      108,
      117,
      103,
      105,
      110,
      115,
      47,
      76,
      105,
      115,
      116,
      32,
      111,
      102,
      32,
      72,
      101,
      97,
      100,
      101,
      114,
      34,
      62,
      34,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      32,
      40,
      38,
      113,
      117,
      111,
      116,
      59,
      103,
      114,
      97,
      100,
      117,
      97,
      116,
      101,
      60,
      47,
      104,
      101,
      97,
      100,
      62,
      10,
      99,
      111,
      109,
      109,
      101,
      114,
      99,
      101,
      109,
      97,
      108,
      97,
      121,
      115,
      105,
      97,
      100,
      105,
      114,
      101,
      99,
      116,
      111,
      114,
      109,
      97,
      105,
      110,
      116,
      97,
      105,
      110,
      59,
      104,
      101,
      105,
      103,
      104,
      116,
      58,
      115,
      99,
      104,
      101,
      100,
      117,
      108,
      101,
      99,
      104,
      97,
      110,
      103,
      105,
      110,
      103,
      98,
      97,
      99,
      107,
      32,
      116,
      111,
      32,
      99,
      97,
      116,
      104,
      111,
      108,
      105,
      99,
      112,
      97,
      116,
      116,
      101,
      114,
      110,
      115,
      99,
      111,
      108,
      111,
      114,
      58,
      32,
      35,
      103,
      114,
      101,
      97,
      116,
      101,
      115,
      116,
      115,
      117,
      112,
      112,
      108,
      105,
      101,
      115,
      114,
      101,
      108,
      105,
      97,
      98,
      108,
      101,
      60,
      47,
      117,
      108,
      62,
      10,
      9,
      9,
      60,
      115,
      101,
      108,
      101,
      99,
      116,
      32,
      99,
      105,
      116,
      105,
      122,
      101,
      110,
      115,
      99,
      108,
      111,
      116,
      104,
      105,
      110,
      103,
      119,
      97,
      116,
      99,
      104,
      105,
      110,
      103,
      60,
      108,
      105,
      32,
      105,
      100,
      61,
      34,
      115,
      112,
      101,
      99,
      105,
      102,
      105,
      99,
      99,
      97,
      114,
      114,
      121,
      105,
      110,
      103,
      115,
      101,
      110,
      116,
      101,
      110,
      99,
      101,
      60,
      99,
      101,
      110,
      116,
      101,
      114,
      62,
      99,
      111,
      110,
      116,
      114,
      97,
      115,
      116,
      116,
      104,
      105,
      110,
      107,
      105,
      110,
      103,
      99,
      97,
      116,
      99,
      104,
      40,
      101,
      41,
      115,
      111,
      117,
      116,
      104,
      101,
      114,
      110,
      77,
      105,
      99,
      104,
      97,
      101,
      108,
      32,
      109,
      101,
      114,
      99,
      104,
      97,
      110,
      116,
      99,
      97,
      114,
      111,
      117,
      115,
      101,
      108,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      58,
      105,
      110,
      116,
      101,
      114,
      105,
      111,
      114,
      46,
      115,
      112,
      108,
      105,
      116,
      40,
      34,
      108,
      105,
      122,
      97,
      116,
      105,
      111,
      110,
      79,
      99,
      116,
      111,
      98,
      101,
      114,
      32,
      41,
      123,
      114,
      101,
      116,
      117,
      114,
      110,
      105,
      109,
      112,
      114,
      111,
      118,
      101,
      100,
      45,
      45,
      38,
      103,
      116,
      59,
      10,
      10,
      99,
      111,
      118,
      101,
      114,
      97,
      103,
      101,
      99,
      104,
      97,
      105,
      114,
      109,
      97,
      110,
      46,
      112,
      110,
      103,
      34,
      32,
      47,
      62,
      115,
      117,
      98,
      106,
      101,
      99,
      116,
      115,
      82,
      105,
      99,
      104,
      97,
      114,
      100,
      32,
      119,
      104,
      97,
      116,
      101,
      118,
      101,
      114,
      112,
      114,
      111,
      98,
      97,
      98,
      108,
      121,
      114,
      101,
      99,
      111,
      118,
      101,
      114,
      121,
      98,
      97,
      115,
      101,
      98,
      97,
      108,
      108,
      106,
      117,
      100,
      103,
      109,
      101,
      110,
      116,
      99,
      111,
      110,
      110,
      101,
      99,
      116,
      46,
      46,
      99,
      115,
      115,
      34,
      32,
      47,
      62,
      32,
      119,
      101,
      98,
      115,
      105,
      116,
      101,
      114,
      101,
      112,
      111,
      114,
      116,
      101,
      100,
      100,
      101,
      102,
      97,
      117,
      108,
      116,
      34,
      47,
      62,
      60,
      47,
      97,
      62,
      13,
      10,
      101,
      108,
      101,
      99,
      116,
      114,
      105,
      99,
      115,
      99,
      111,
      116,
      108,
      97,
      110,
      100,
      99,
      114,
      101,
      97,
      116,
      105,
      111,
      110,
      113,
      117,
      97,
      110,
      116,
      105,
      116,
      121,
      46,
      32,
      73,
      83,
      66,
      78,
      32,
      48,
      100,
      105,
      100,
      32,
      110,
      111,
      116,
      32,
      105,
      110,
      115,
      116,
      97,
      110,
      99,
      101,
      45,
      115,
      101,
      97,
      114,
      99,
      104,
      45,
      34,
      32,
      108,
      97,
      110,
      103,
      61,
      34,
      115,
      112,
      101,
      97,
      107,
      101,
      114,
      115,
      67,
      111,
      109,
      112,
      117,
      116,
      101,
      114,
      99,
      111,
      110,
      116,
      97,
      105,
      110,
      115,
      97,
      114,
      99,
      104,
      105,
      118,
      101,
      115,
      109,
      105,
      110,
      105,
      115,
      116,
      101,
      114,
      114,
      101,
      97,
      99,
      116,
      105,
      111,
      110,
      100,
      105,
      115,
      99,
      111,
      117,
      110,
      116,
      73,
      116,
      97,
      108,
      105,
      97,
      110,
      111,
      99,
      114,
      105,
      116,
      101,
      114,
      105,
      97,
      115,
      116,
      114,
      111,
      110,
      103,
      108,
      121,
      58,
      32,
      39,
      104,
      116,
      116,
      112,
      58,
      39,
      115,
      99,
      114,
      105,
      112,
      116,
      39,
      99,
      111,
      118,
      101,
      114,
      105,
      110,
      103,
      111,
      102,
      102,
      101,
      114,
      105,
      110,
      103,
      97,
      112,
      112,
      101,
      97,
      114,
      101,
      100,
      66,
      114,
      105,
      116,
      105,
      115,
      104,
      32,
      105,
      100,
      101,
      110,
      116,
      105,
      102,
      121,
      70,
      97,
      99,
      101,
      98,
      111,
      111,
      107,
      110,
      117,
      109,
      101,
      114,
      111,
      117,
      115,
      118,
      101,
      104,
      105,
      99,
      108,
      101,
      115,
      99,
      111,
      110,
      99,
      101,
      114,
      110,
      115,
      65,
      109,
      101,
      114,
      105,
      99,
      97,
      110,
      104,
      97,
      110,
      100,
      108,
      105,
      110,
      103,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      87,
      105,
      108,
      108,
      105,
      97,
      109,
      32,
      112,
      114,
      111,
      118,
      105,
      100,
      101,
      114,
      95,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      97,
      99,
      99,
      117,
      114,
      97,
      99,
      121,
      115,
      101,
      99,
      116,
      105,
      111,
      110,
      32,
      97,
      110,
      100,
      101,
      114,
      115,
      111,
      110,
      102,
      108,
      101,
      120,
      105,
      98,
      108,
      101,
      67,
      97,
      116,
      101,
      103,
      111,
      114,
      121,
      108,
      97,
      119,
      114,
      101,
      110,
      99,
      101,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      108,
      97,
      121,
      111,
      117,
      116,
      61,
      34,
      97,
      112,
      112,
      114,
      111,
      118,
      101,
      100,
      32,
      109,
      97,
      120,
      105,
      109,
      117,
      109,
      104,
      101,
      97,
      100,
      101,
      114,
      34,
      62,
      60,
      47,
      116,
      97,
      98,
      108,
      101,
      62,
      83,
      101,
      114,
      118,
      105,
      99,
      101,
      115,
      104,
      97,
      109,
      105,
      108,
      116,
      111,
      110,
      99,
      117,
      114,
      114,
      101,
      110,
      116,
      32,
      99,
      97,
      110,
      97,
      100,
      105,
      97,
      110,
      99,
      104,
      97,
      110,
      110,
      101,
      108,
      115,
      47,
      116,
      104,
      101,
      109,
      101,
      115,
      47,
      47,
      97,
      114,
      116,
      105,
      99,
      108,
      101,
      111,
      112,
      116,
      105,
      111,
      110,
      97,
      108,
      112,
      111,
      114,
      116,
      117,
      103,
      97,
      108,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      34,
      105,
      110,
      116,
      101,
      114,
      118,
      97,
      108,
      119,
      105,
      114,
      101,
      108,
      101,
      115,
      115,
      101,
      110,
      116,
      105,
      116,
      108,
      101,
      100,
      97,
      103,
      101,
      110,
      99,
      105,
      101,
      115,
      83,
      101,
      97,
      114,
      99,
      104,
      34,
      32,
      109,
      101,
      97,
      115,
      117,
      114,
      101,
      100,
      116,
      104,
      111,
      117,
      115,
      97,
      110,
      100,
      115,
      112,
      101,
      110,
      100,
      105,
      110,
      103,
      38,
      104,
      101,
      108,
      108,
      105,
      112,
      59,
      110,
      101,
      119,
      32,
      68,
      97,
      116,
      101,
      34,
      32,
      115,
      105,
      122,
      101,
      61,
      34,
      112,
      97,
      103,
      101,
      78,
      97,
      109,
      101,
      109,
      105,
      100,
      100,
      108,
      101,
      34,
      32,
      34,
      32,
      47,
      62,
      60,
      47,
      97,
      62,
      104,
      105,
      100,
      100,
      101,
      110,
      34,
      62,
      115,
      101,
      113,
      117,
      101,
      110,
      99,
      101,
      112,
      101,
      114,
      115,
      111,
      110,
      97,
      108,
      111,
      118,
      101,
      114,
      102,
      108,
      111,
      119,
      111,
      112,
      105,
      110,
      105,
      111,
      110,
      115,
      105,
      108,
      108,
      105,
      110,
      111,
      105,
      115,
      108,
      105,
      110,
      107,
      115,
      34,
      62,
      10,
      9,
      60,
      116,
      105,
      116,
      108,
      101,
      62,
      118,
      101,
      114,
      115,
      105,
      111,
      110,
      115,
      115,
      97,
      116,
      117,
      114,
      100,
      97,
      121,
      116,
      101,
      114,
      109,
      105,
      110,
      97,
      108,
      105,
      116,
      101,
      109,
      112,
      114,
      111,
      112,
      101,
      110,
      103,
      105,
      110,
      101,
      101,
      114,
      115,
      101,
      99,
      116,
      105,
      111,
      110,
      115,
      100,
      101,
      115,
      105,
      103,
      110,
      101,
      114,
      112,
      114,
      111,
      112,
      111,
      115,
      97,
      108,
      61,
      34,
      102,
      97,
      108,
      115,
      101,
      34,
      69,
      115,
      112,
      97,
      195,
      177,
      111,
      108,
      114,
      101,
      108,
      101,
      97,
      115,
      101,
      115,
      115,
      117,
      98,
      109,
      105,
      116,
      34,
      32,
      101,
      114,
      38,
      113,
      117,
      111,
      116,
      59,
      97,
      100,
      100,
      105,
      116,
      105,
      111,
      110,
      115,
      121,
      109,
      112,
      116,
      111,
      109,
      115,
      111,
      114,
      105,
      101,
      110,
      116,
      101,
      100,
      114,
      101,
      115,
      111,
      117,
      114,
      99,
      101,
      114,
      105,
      103,
      104,
      116,
      34,
      62,
      60,
      112,
      108,
      101,
      97,
      115,
      117,
      114,
      101,
      115,
      116,
      97,
      116,
      105,
      111,
      110,
      115,
      104,
      105,
      115,
      116,
      111,
      114,
      121,
      46,
      108,
      101,
      97,
      118,
      105,
      110,
      103,
      32,
      32,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      115,
      99,
      101,
      110,
      116,
      101,
      114,
      34,
      62,
      46,
      10,
      10,
      83,
      111,
      109,
      101,
      32,
      100,
      105,
      114,
      101,
      99,
      116,
      101,
      100,
      115,
      117,
      105,
      116,
      97,
      98,
      108,
      101,
      98,
      117,
      108,
      103,
      97,
      114,
      105,
      97,
      46,
      115,
      104,
      111,
      119,
      40,
      41,
      59,
      100,
      101,
      115,
      105,
      103,
      110,
      101,
      100,
      71,
      101,
      110,
      101,
      114,
      97,
      108,
      32,
      99,
      111,
      110,
      99,
      101,
      112,
      116,
      115,
      69,
      120,
      97,
      109,
      112,
      108,
      101,
      115,
      119,
      105,
      108,
      108,
      105,
      97,
      109,
      115,
      79,
      114,
      105,
      103,
      105,
      110,
      97,
      108,
      34,
      62,
      60,
      115,
      112,
      97,
      110,
      62,
      115,
      101,
      97,
      114,
      99,
      104,
      34,
      62,
      111,
      112,
      101,
      114,
      97,
      116,
      111,
      114,
      114,
      101,
      113,
      117,
      101,
      115,
      116,
      115,
      97,
      32,
      38,
      113,
      117,
      111,
      116,
      59,
      97,
      108,
      108,
      111,
      119,
      105,
      110,
      103,
      68,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      114,
      101,
      118,
      105,
      115,
      105,
      111,
      110,
      46,
      32,
      10,
      10,
      84,
      104,
      101,
      32,
      121,
      111,
      117,
      114,
      115,
      101,
      108,
      102,
      67,
      111,
      110,
      116,
      97,
      99,
      116,
      32,
      109,
      105,
      99,
      104,
      105,
      103,
      97,
      110,
      69,
      110,
      103,
      108,
      105,
      115,
      104,
      32,
      99,
      111,
      108,
      117,
      109,
      98,
      105,
      97,
      112,
      114,
      105,
      111,
      114,
      105,
      116,
      121,
      112,
      114,
      105,
      110,
      116,
      105,
      110,
      103,
      100,
      114,
      105,
      110,
      107,
      105,
      110,
      103,
      102,
      97,
      99,
      105,
      108,
      105,
      116,
      121,
      114,
      101,
      116,
      117,
      114,
      110,
      101,
      100,
      67,
      111,
      110,
      116,
      101,
      110,
      116,
      32,
      111,
      102,
      102,
      105,
      99,
      101,
      114,
      115,
      82,
      117,
      115,
      115,
      105,
      97,
      110,
      32,
      103,
      101,
      110,
      101,
      114,
      97,
      116,
      101,
      45,
      56,
      56,
      53,
      57,
      45,
      49,
      34,
      105,
      110,
      100,
      105,
      99,
      97,
      116,
      101,
      102,
      97,
      109,
      105,
      108,
      105,
      97,
      114,
      32,
      113,
      117,
      97,
      108,
      105,
      116,
      121,
      109,
      97,
      114,
      103,
      105,
      110,
      58,
      48,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      118,
      105,
      101,
      119,
      112,
      111,
      114,
      116,
      99,
      111,
      110,
      116,
      97,
      99,
      116,
      115,
      45,
      116,
      105,
      116,
      108,
      101,
      34,
      62,
      112,
      111,
      114,
      116,
      97,
      98,
      108,
      101,
      46,
      108,
      101,
      110,
      103,
      116,
      104,
      32,
      101,
      108,
      105,
      103,
      105,
      98,
      108,
      101,
      105,
      110,
      118,
      111,
      108,
      118,
      101,
      115,
      97,
      116,
      108,
      97,
      110,
      116,
      105,
      99,
      111,
      110,
      108,
      111,
      97,
      100,
      61,
      34,
      100,
      101,
      102,
      97,
      117,
      108,
      116,
      46,
      115,
      117,
      112,
      112,
      108,
      105,
      101,
      100,
      112,
      97,
      121,
      109,
      101,
      110,
      116,
      115,
      103,
      108,
      111,
      115,
      115,
      97,
      114,
      121,
      10,
      10,
      65,
      102,
      116,
      101,
      114,
      32,
      103,
      117,
      105,
      100,
      97,
      110,
      99,
      101,
      60,
      47,
      116,
      100,
      62,
      60,
      116,
      100,
      101,
      110,
      99,
      111,
      100,
      105,
      110,
      103,
      109,
      105,
      100,
      100,
      108,
      101,
      34,
      62,
      99,
      97,
      109,
      101,
      32,
      116,
      111,
      32,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      115,
      115,
      99,
      111,
      116,
      116,
      105,
      115,
      104,
      106,
      111,
      110,
      97,
      116,
      104,
      97,
      110,
      109,
      97,
      106,
      111,
      114,
      105,
      116,
      121,
      119,
      105,
      100,
      103,
      101,
      116,
      115,
      46,
      99,
      108,
      105,
      110,
      105,
      99,
      97,
      108,
      116,
      104,
      97,
      105,
      108,
      97,
      110,
      100,
      116,
      101,
      97,
      99,
      104,
      101,
      114,
      115,
      60,
      104,
      101,
      97,
      100,
      62,
      10,
      9,
      97,
      102,
      102,
      101,
      99,
      116,
      101,
      100,
      115,
      117,
      112,
      112,
      111,
      114,
      116,
      115,
      112,
      111,
      105,
      110,
      116,
      101,
      114,
      59,
      116,
      111,
      83,
      116,
      114,
      105,
      110,
      103,
      60,
      47,
      115,
      109,
      97,
      108,
      108,
      62,
      111,
      107,
      108,
      97,
      104,
      111,
      109,
      97,
      119,
      105,
      108,
      108,
      32,
      98,
      101,
      32,
      105,
      110,
      118,
      101,
      115,
      116,
      111,
      114,
      48,
      34,
      32,
      97,
      108,
      116,
      61,
      34,
      104,
      111,
      108,
      105,
      100,
      97,
      121,
      115,
      82,
      101,
      115,
      111,
      117,
      114,
      99,
      101,
      108,
      105,
      99,
      101,
      110,
      115,
      101,
      100,
      32,
      40,
      119,
      104,
      105,
      99,
      104,
      32,
      46,
      32,
      65,
      102,
      116,
      101,
      114,
      32,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      118,
      105,
      115,
      105,
      116,
      105,
      110,
      103,
      101,
      120,
      112,
      108,
      111,
      114,
      101,
      114,
      112,
      114,
      105,
      109,
      97,
      114,
      121,
      32,
      115,
      101,
      97,
      114,
      99,
      104,
      34,
      32,
      97,
      110,
      100,
      114,
      111,
      105,
      100,
      34,
      113,
      117,
      105,
      99,
      107,
      108,
      121,
      32,
      109,
      101,
      101,
      116,
      105,
      110,
      103,
      115,
      101,
      115,
      116,
      105,
      109,
      97,
      116,
      101,
      59,
      114,
      101,
      116,
      117,
      114,
      110,
      32,
      59,
      99,
      111,
      108,
      111,
      114,
      58,
      35,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      97,
      112,
      112,
      114,
      111,
      118,
      97,
      108,
      44,
      32,
      38,
      113,
      117,
      111,
      116,
      59,
      32,
      99,
      104,
      101,
      99,
      107,
      101,
      100,
      46,
      109,
      105,
      110,
      46,
      106,
      115,
      34,
      109,
      97,
      103,
      110,
      101,
      116,
      105,
      99,
      62,
      60,
      47,
      97,
      62,
      60,
      47,
      104,
      102,
      111,
      114,
      101,
      99,
      97,
      115,
      116,
      46,
      32,
      87,
      104,
      105,
      108,
      101,
      32,
      116,
      104,
      117,
      114,
      115,
      100,
      97,
      121,
      100,
      118,
      101,
      114,
      116,
      105,
      115,
      101,
      38,
      101,
      97,
      99,
      117,
      116,
      101,
      59,
      104,
      97,
      115,
      67,
      108,
      97,
      115,
      115,
      101,
      118,
      97,
      108,
      117,
      97,
      116,
      101,
      111,
      114,
      100,
      101,
      114,
      105,
      110,
      103,
      101,
      120,
      105,
      115,
      116,
      105,
      110,
      103,
      112,
      97,
      116,
      105,
      101,
      110,
      116,
      115,
      32,
      79,
      110,
      108,
      105,
      110,
      101,
      32,
      99,
      111,
      108,
      111,
      114,
      97,
      100,
      111,
      79,
      112,
      116,
      105,
      111,
      110,
      115,
      34,
      99,
      97,
      109,
      112,
      98,
      101,
      108,
      108,
      60,
      33,
      45,
      45,
      32,
      101,
      110,
      100,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      60,
      98,
      114,
      32,
      47,
      62,
      13,
      10,
      95,
      112,
      111,
      112,
      117,
      112,
      115,
      124,
      115,
      99,
      105,
      101,
      110,
      99,
      101,
      115,
      44,
      38,
      113,
      117,
      111,
      116,
      59,
      32,
      113,
      117,
      97,
      108,
      105,
      116,
      121,
      32,
      87,
      105,
      110,
      100,
      111,
      119,
      115,
      32,
      97,
      115,
      115,
      105,
      103,
      110,
      101,
      100,
      104,
      101,
      105,
      103,
      104,
      116,
      58,
      32,
      60,
      98,
      32,
      99,
      108,
      97,
      115,
      115,
      108,
      101,
      38,
      113,
      117,
      111,
      116,
      59,
      32,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      32,
      67,
      111,
      109,
      112,
      97,
      110,
      121,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      115,
      60,
      105,
      102,
      114,
      97,
      109,
      101,
      32,
      98,
      101,
      108,
      105,
      101,
      118,
      101,
      115,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      115,
      109,
      97,
      114,
      115,
      104,
      97,
      108,
      108,
      112,
      97,
      114,
      116,
      32,
      111,
      102,
      32,
      112,
      114,
      111,
      112,
      101,
      114,
      108,
      121,
      41,
      46,
      10,
      10,
      84,
      104,
      101,
      32,
      116,
      97,
      120,
      111,
      110,
      111,
      109,
      121,
      109,
      117,
      99,
      104,
      32,
      111,
      102,
      32,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      10,
      34,
      32,
      100,
      97,
      116,
      97,
      45,
      115,
      114,
      116,
      117,
      103,
      117,
      195,
      170,
      115,
      115,
      99,
      114,
      111,
      108,
      108,
      84,
      111,
      32,
      112,
      114,
      111,
      106,
      101,
      99,
      116,
      60,
      104,
      101,
      97,
      100,
      62,
      13,
      10,
      97,
      116,
      116,
      111,
      114,
      110,
      101,
      121,
      101,
      109,
      112,
      104,
      97,
      115,
      105,
      115,
      115,
      112,
      111,
      110,
      115,
      111,
      114,
      115,
      102,
      97,
      110,
      99,
      121,
      98,
      111,
      120,
      119,
      111,
      114,
      108,
      100,
      39,
      115,
      32,
      119,
      105,
      108,
      100,
      108,
      105,
      102,
      101,
      99,
      104,
      101,
      99,
      107,
      101,
      100,
      61,
      115,
      101,
      115,
      115,
      105,
      111,
      110,
      115,
      112,
      114,
      111,
      103,
      114,
      97,
      109,
      109,
      112,
      120,
      59,
      102,
      111,
      110,
      116,
      45,
      32,
      80,
      114,
      111,
      106,
      101,
      99,
      116,
      106,
      111,
      117,
      114,
      110,
      97,
      108,
      115,
      98,
      101,
      108,
      105,
      101,
      118,
      101,
      100,
      118,
      97,
      99,
      97,
      116,
      105,
      111,
      110,
      116,
      104,
      111,
      109,
      112,
      115,
      111,
      110,
      108,
      105,
      103,
      104,
      116,
      105,
      110,
      103,
      97,
      110,
      100,
      32,
      116,
      104,
      101,
      32,
      115,
      112,
      101,
      99,
      105,
      97,
      108,
      32,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      48,
      99,
      104,
      101,
      99,
      107,
      105,
      110,
      103,
      60,
      47,
      116,
      98,
      111,
      100,
      121,
      62,
      60,
      98,
      117,
      116,
      116,
      111,
      110,
      32,
      67,
      111,
      109,
      112,
      108,
      101,
      116,
      101,
      99,
      108,
      101,
      97,
      114,
      102,
      105,
      120,
      10,
      60,
      104,
      101,
      97,
      100,
      62,
      10,
      97,
      114,
      116,
      105,
      99,
      108,
      101,
      32,
      60,
      115,
      101,
      99,
      116,
      105,
      111,
      110,
      102,
      105,
      110,
      100,
      105,
      110,
      103,
      115,
      114,
      111,
      108,
      101,
      32,
      105,
      110,
      32,
      112,
      111,
      112,
      117,
      108,
      97,
      114,
      32,
      32,
      79,
      99,
      116,
      111,
      98,
      101,
      114,
      119,
      101,
      98,
      115,
      105,
      116,
      101,
      32,
      101,
      120,
      112,
      111,
      115,
      117,
      114,
      101,
      117,
      115,
      101,
      100,
      32,
      116,
      111,
      32,
      32,
      99,
      104,
      97,
      110,
      103,
      101,
      115,
      111,
      112,
      101,
      114,
      97,
      116,
      101,
      100,
      99,
      108,
      105,
      99,
      107,
      105,
      110,
      103,
      101,
      110,
      116,
      101,
      114,
      105,
      110,
      103,
      99,
      111,
      109,
      109,
      97,
      110,
      100,
      115,
      105,
      110,
      102,
      111,
      114,
      109,
      101,
      100,
      32,
      110,
      117,
      109,
      98,
      101,
      114,
      115,
      32,
      32,
      60,
      47,
      100,
      105,
      118,
      62,
      99,
      114,
      101,
      97,
      116,
      105,
      110,
      103,
      111,
      110,
      83,
      117,
      98,
      109,
      105,
      116,
      109,
      97,
      114,
      121,
      108,
      97,
      110,
      100,
      99,
      111,
      108,
      108,
      101,
      103,
      101,
      115,
      97,
      110,
      97,
      108,
      121,
      116,
      105,
      99,
      108,
      105,
      115,
      116,
      105,
      110,
      103,
      115,
      99,
      111,
      110,
      116,
      97,
      99,
      116,
      46,
      108,
      111,
      103,
      103,
      101,
      100,
      73,
      110,
      97,
      100,
      118,
      105,
      115,
      111,
      114,
      121,
      115,
      105,
      98,
      108,
      105,
      110,
      103,
      115,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      34,
      115,
      38,
      113,
      117,
      111,
      116,
      59,
      41,
      115,
      46,
      32,
      84,
      104,
      105,
      115,
      32,
      112,
      97,
      99,
      107,
      97,
      103,
      101,
      115,
      99,
      104,
      101,
      99,
      107,
      98,
      111,
      120,
      115,
      117,
      103,
      103,
      101,
      115,
      116,
      115,
      112,
      114,
      101,
      103,
      110,
      97,
      110,
      116,
      116,
      111,
      109,
      111,
      114,
      114,
      111,
      119,
      115,
      112,
      97,
      99,
      105,
      110,
      103,
      61,
      105,
      99,
      111,
      110,
      46,
      112,
      110,
      103,
      106,
      97,
      112,
      97,
      110,
      101,
      115,
      101,
      99,
      111,
      100,
      101,
      98,
      97,
      115,
      101,
      98,
      117,
      116,
      116,
      111,
      110,
      34,
      62,
      103,
      97,
      109,
      98,
      108,
      105,
      110,
      103,
      115,
      117,
      99,
      104,
      32,
      97,
      115,
      32,
      44,
      32,
      119,
      104,
      105,
      108,
      101,
      32,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      32,
      109,
      105,
      115,
      115,
      111,
      117,
      114,
      105,
      115,
      112,
      111,
      114,
      116,
      105,
      110,
      103,
      116,
      111,
      112,
      58,
      49,
      112,
      120,
      32,
      46,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      116,
      101,
      110,
      115,
      105,
      111,
      110,
      115,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      50,
      108,
      97,
      122,
      121,
      108,
      111,
      97,
      100,
      110,
      111,
      118,
      101,
      109,
      98,
      101,
      114,
      117,
      115,
      101,
      100,
      32,
      105,
      110,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      99,
      114,
      105,
      112,
      116,
      34,
      62,
      10,
      38,
      110,
      98,
      115,
      112,
      59,
      60,
      47,
      60,
      116,
      114,
      62,
      60,
      116,
      100,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      58,
      50,
      47,
      112,
      114,
      111,
      100,
      117,
      99,
      116,
      99,
      111,
      117,
      110,
      116,
      114,
      121,
      32,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      32,
      102,
      111,
      111,
      116,
      101,
      114,
      34,
      32,
      38,
      108,
      116,
      59,
      33,
      45,
      45,
      32,
      116,
      105,
      116,
      108,
      101,
      34,
      62,
      60,
      47,
      106,
      113,
      117,
      101,
      114,
      121,
      46,
      60,
      47,
      102,
      111,
      114,
      109,
      62,
      10,
      40,
      231,
      174,
      128,
      228,
      189,
      147,
      41,
      40,
      231,
      185,
      129,
      233,
      171,
      148,
      41,
      104,
      114,
      118,
      97,
      116,
      115,
      107,
      105,
      105,
      116,
      97,
      108,
      105,
      97,
      110,
      111,
      114,
      111,
      109,
      195,
      162,
      110,
      196,
      131,
      116,
      195,
      188,
      114,
      107,
      195,
      167,
      101,
      216,
      167,
      216,
      177,
      216,
      175,
      217,
      136,
      116,
      97,
      109,
      98,
      105,
      195,
      169,
      110,
      110,
      111,
      116,
      105,
      99,
      105,
      97,
      115,
      109,
      101,
      110,
      115,
      97,
      106,
      101,
      115,
      112,
      101,
      114,
      115,
      111,
      110,
      97,
      115,
      100,
      101,
      114,
      101,
      99,
      104,
      111,
      115,
      110,
      97,
      99,
      105,
      111,
      110,
      97,
      108,
      115,
      101,
      114,
      118,
      105,
      99,
      105,
      111,
      99,
      111,
      110,
      116,
      97,
      99,
      116,
      111,
      117,
      115,
      117,
      97,
      114,
      105,
      111,
      115,
      112,
      114,
      111,
      103,
      114,
      97,
      109,
      97,
      103,
      111,
      98,
      105,
      101,
      114,
      110,
      111,
      101,
      109,
      112,
      114,
      101,
      115,
      97,
      115,
      97,
      110,
      117,
      110,
      99,
      105,
      111,
      115,
      118,
      97,
      108,
      101,
      110,
      99,
      105,
      97,
      99,
      111,
      108,
      111,
      109,
      98,
      105,
      97,
      100,
      101,
      115,
      112,
      117,
      195,
      169,
      115,
      100,
      101,
      112,
      111,
      114,
      116,
      101,
      115,
      112,
      114,
      111,
      121,
      101,
      99,
      116,
      111,
      112,
      114,
      111,
      100,
      117,
      99,
      116,
      111,
      112,
      195,
      186,
      98,
      108,
      105,
      99,
      111,
      110,
      111,
      115,
      111,
      116,
      114,
      111,
      115,
      104,
      105,
      115,
      116,
      111,
      114,
      105,
      97,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      101,
      109,
      105,
      108,
      108,
      111,
      110,
      101,
      115,
      109,
      101,
      100,
      105,
      97,
      110,
      116,
      101,
      112,
      114,
      101,
      103,
      117,
      110,
      116,
      97,
      97,
      110,
      116,
      101,
      114,
      105,
      111,
      114,
      114,
      101,
      99,
      117,
      114,
      115,
      111,
      115,
      112,
      114,
      111,
      98,
      108,
      101,
      109,
      97,
      115,
      97,
      110,
      116,
      105,
      97,
      103,
      111,
      110,
      117,
      101,
      115,
      116,
      114,
      111,
      115,
      111,
      112,
      105,
      110,
      105,
      195,
      179,
      110,
      105,
      109,
      112,
      114,
      105,
      109,
      105,
      114,
      109,
      105,
      101,
      110,
      116,
      114,
      97,
      115,
      97,
      109,
      195,
      169,
      114,
      105,
      99,
      97,
      118,
      101,
      110,
      100,
      101,
      100,
      111,
      114,
      115,
      111,
      99,
      105,
      101,
      100,
      97,
      100,
      114,
      101,
      115,
      112,
      101,
      99,
      116,
      111,
      114,
      101,
      97,
      108,
      105,
      122,
      97,
      114,
      114,
      101,
      103,
      105,
      115,
      116,
      114,
      111,
      112,
      97,
      108,
      97,
      98,
      114,
      97,
      115,
      105,
      110,
      116,
      101,
      114,
      195,
      169,
      115,
      101,
      110,
      116,
      111,
      110,
      99,
      101,
      115,
      101,
      115,
      112,
      101,
      99,
      105,
      97,
      108,
      109,
      105,
      101,
      109,
      98,
      114,
      111,
      115,
      114,
      101,
      97,
      108,
      105,
      100,
      97,
      100,
      99,
      195,
      179,
      114,
      100,
      111,
      98,
      97,
      122,
      97,
      114,
      97,
      103,
      111,
      122,
      97,
      112,
      195,
      161,
      103,
      105,
      110,
      97,
      115,
      115,
      111,
      99,
      105,
      97,
      108,
      101,
      115,
      98,
      108,
      111,
      113,
      117,
      101,
      97,
      114,
      103,
      101,
      115,
      116,
      105,
      195,
      179,
      110,
      97,
      108,
      113,
      117,
      105,
      108,
      101,
      114,
      115,
      105,
      115,
      116,
      101,
      109,
      97,
      115,
      99,
      105,
      101,
      110,
      99,
      105,
      97,
      115,
      99,
      111,
      109,
      112,
      108,
      101,
      116,
      111,
      118,
      101,
      114,
      115,
      105,
      195,
      179,
      110,
      99,
      111,
      109,
      112,
      108,
      101,
      116,
      97,
      101,
      115,
      116,
      117,
      100,
      105,
      111,
      115,
      112,
      195,
      186,
      98,
      108,
      105,
      99,
      97,
      111,
      98,
      106,
      101,
      116,
      105,
      118,
      111,
      97,
      108,
      105,
      99,
      97,
      110,
      116,
      101,
      98,
      117,
      115,
      99,
      97,
      100,
      111,
      114,
      99,
      97,
      110,
      116,
      105,
      100,
      97,
      100,
      101,
      110,
      116,
      114,
      97,
      100,
      97,
      115,
      97,
      99,
      99,
      105,
      111,
      110,
      101,
      115,
      97,
      114,
      99,
      104,
      105,
      118,
      111,
      115,
      115,
      117,
      112,
      101,
      114,
      105,
      111,
      114,
      109,
      97,
      121,
      111,
      114,
      195,
      173,
      97,
      97,
      108,
      101,
      109,
      97,
      110,
      105,
      97,
      102,
      117,
      110,
      99,
      105,
      195,
      179,
      110,
      195,
      186,
      108,
      116,
      105,
      109,
      111,
      115,
      104,
      97,
      99,
      105,
      101,
      110,
      100,
      111,
      97,
      113,
      117,
      101,
      108,
      108,
      111,
      115,
      101,
      100,
      105,
      99,
      105,
      195,
      179,
      110,
      102,
      101,
      114,
      110,
      97,
      110,
      100,
      111,
      97,
      109,
      98,
      105,
      101,
      110,
      116,
      101,
      102,
      97,
      99,
      101,
      98,
      111,
      111,
      107,
      110,
      117,
      101,
      115,
      116,
      114,
      97,
      115,
      99,
      108,
      105,
      101,
      110,
      116,
      101,
      115,
      112,
      114,
      111,
      99,
      101,
      115,
      111,
      115,
      98,
      97,
      115,
      116,
      97,
      110,
      116,
      101,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      97,
      114,
      101,
      112,
      111,
      114,
      116,
      97,
      114,
      99,
      111,
      110,
      103,
      114,
      101,
      115,
      111,
      112,
      117,
      98,
      108,
      105,
      99,
      97,
      114,
      99,
      111,
      109,
      101,
      114,
      99,
      105,
      111,
      99,
      111,
      110,
      116,
      114,
      97,
      116,
      111,
      106,
      195,
      179,
      118,
      101,
      110,
      101,
      115,
      100,
      105,
      115,
      116,
      114,
      105,
      116,
      111,
      116,
      195,
      169,
      99,
      110,
      105,
      99,
      97,
      99,
      111,
      110,
      106,
      117,
      110,
      116,
      111,
      101,
      110,
      101,
      114,
      103,
      195,
      173,
      97,
      116,
      114,
      97,
      98,
      97,
      106,
      97,
      114,
      97,
      115,
      116,
      117,
      114,
      105,
      97,
      115,
      114,
      101,
      99,
      105,
      101,
      110,
      116,
      101,
      117,
      116,
      105,
      108,
      105,
      122,
      97,
      114,
      98,
      111,
      108,
      101,
      116,
      195,
      173,
      110,
      115,
      97,
      108,
      118,
      97,
      100,
      111,
      114,
      99,
      111,
      114,
      114,
      101,
      99,
      116,
      97,
      116,
      114,
      97,
      98,
      97,
      106,
      111,
      115,
      112,
      114,
      105,
      109,
      101,
      114,
      111,
      115,
      110,
      101,
      103,
      111,
      99,
      105,
      111,
      115,
      108,
      105,
      98,
      101,
      114,
      116,
      97,
      100,
      100,
      101,
      116,
      97,
      108,
      108,
      101,
      115,
      112,
      97,
      110,
      116,
      97,
      108,
      108,
      97,
      112,
      114,
      195,
      179,
      120,
      105,
      109,
      111,
      97,
      108,
      109,
      101,
      114,
      195,
      173,
      97,
      97,
      110,
      105,
      109,
      97,
      108,
      101,
      115,
      113,
      117,
      105,
      195,
      169,
      110,
      101,
      115,
      99,
      111,
      114,
      97,
      122,
      195,
      179,
      110,
      115,
      101,
      99,
      99,
      105,
      195,
      179,
      110,
      98,
      117,
      115,
      99,
      97,
      110,
      100,
      111,
      111,
      112,
      99,
      105,
      111,
      110,
      101,
      115,
      101,
      120,
      116,
      101,
      114,
      105,
      111,
      114,
      99,
      111,
      110,
      99,
      101,
      112,
      116,
      111,
      116,
      111,
      100,
      97,
      118,
      195,
      173,
      97,
      103,
      97,
      108,
      101,
      114,
      195,
      173,
      97,
      101,
      115,
      99,
      114,
      105,
      98,
      105,
      114,
      109,
      101,
      100,
      105,
      99,
      105,
      110,
      97,
      108,
      105,
      99,
      101,
      110,
      99,
      105,
      97,
      99,
      111,
      110,
      115,
      117,
      108,
      116,
      97,
      97,
      115,
      112,
      101,
      99,
      116,
      111,
      115,
      99,
      114,
      195,
      173,
      116,
      105,
      99,
      97,
      100,
      195,
      179,
      108,
      97,
      114,
      101,
      115,
      106,
      117,
      115,
      116,
      105,
      99,
      105,
      97,
      100,
      101,
      98,
      101,
      114,
      195,
      161,
      110,
      112,
      101,
      114,
      195,
      173,
      111,
      100,
      111,
      110,
      101,
      99,
      101,
      115,
      105,
      116,
      97,
      109,
      97,
      110,
      116,
      101,
      110,
      101,
      114,
      112,
      101,
      113,
      117,
      101,
      195,
      177,
      111,
      114,
      101,
      99,
      105,
      98,
      105,
      100,
      97,
      116,
      114,
      105,
      98,
      117,
      110,
      97,
      108,
      116,
      101,
      110,
      101,
      114,
      105,
      102,
      101,
      99,
      97,
      110,
      99,
      105,
      195,
      179,
      110,
      99,
      97,
      110,
      97,
      114,
      105,
      97,
      115,
      100,
      101,
      115,
      99,
      97,
      114,
      103,
      97,
      100,
      105,
      118,
      101,
      114,
      115,
      111,
      115,
      109,
      97,
      108,
      108,
      111,
      114,
      99,
      97,
      114,
      101,
      113,
      117,
      105,
      101,
      114,
      101,
      116,
      195,
      169,
      99,
      110,
      105,
      99,
      111,
      100,
      101,
      98,
      101,
      114,
      195,
      173,
      97,
      118,
      105,
      118,
      105,
      101,
      110,
      100,
      97,
      102,
      105,
      110,
      97,
      110,
      122,
      97,
      115,
      97,
      100,
      101,
      108,
      97,
      110,
      116,
      101,
      102,
      117,
      110,
      99,
      105,
      111,
      110,
      97,
      99,
      111,
      110,
      115,
      101,
      106,
      111,
      115,
      100,
      105,
      102,
      195,
      173,
      99,
      105,
      108,
      99,
      105,
      117,
      100,
      97,
      100,
      101,
      115,
      97,
      110,
      116,
      105,
      103,
      117,
      97,
      115,
      97,
      118,
      97,
      110,
      122,
      97,
      100,
      97,
      116,
      195,
      169,
      114,
      109,
      105,
      110,
      111,
      117,
      110,
      105,
      100,
      97,
      100,
      101,
      115,
      115,
      195,
      161,
      110,
      99,
      104,
      101,
      122,
      99,
      97,
      109,
      112,
      97,
      195,
      177,
      97,
      115,
      111,
      102,
      116,
      111,
      110,
      105,
      99,
      114,
      101,
      118,
      105,
      115,
      116,
      97,
      115,
      99,
      111,
      110,
      116,
      105,
      101,
      110,
      101,
      115,
      101,
      99,
      116,
      111,
      114,
      101,
      115,
      109,
      111,
      109,
      101,
      110,
      116,
      111,
      115,
      102,
      97,
      99,
      117,
      108,
      116,
      97,
      100,
      99,
      114,
      195,
      169,
      100,
      105,
      116,
      111,
      100,
      105,
      118,
      101,
      114,
      115,
      97,
      115,
      115,
      117,
      112,
      117,
      101,
      115,
      116,
      111,
      102,
      97,
      99,
      116,
      111,
      114,
      101,
      115,
      115,
      101,
      103,
      117,
      110,
      100,
      111,
      115,
      112,
      101,
      113,
      117,
      101,
      195,
      177,
      97,
      208,
      179,
      208,
      190,
      208,
      180,
      208,
      176,
      208,
      181,
      209,
      129,
      208,
      187,
      208,
      184,
      208,
      181,
      209,
      129,
      209,
      130,
      209,
      140,
      208,
      177,
      209,
      139,
      208,
      187,
      208,
      190,
      208,
      177,
      209,
      139,
      209,
      130,
      209,
      140,
      209,
      141,
      209,
      130,
      208,
      190,
      208,
      188,
      208,
      149,
      209,
      129,
      208,
      187,
      208,
      184,
      209,
      130,
      208,
      190,
      208,
      179,
      208,
      190,
      208,
      188,
      208,
      181,
      208,
      189,
      209,
      143,
      208,
      178,
      209,
      129,
      208,
      181,
      209,
      133,
      209,
      141,
      209,
      130,
      208,
      190,
      208,
      185,
      208,
      180,
      208,
      176,
      208,
      182,
      208,
      181,
      208,
      177,
      209,
      139,
      208,
      187,
      208,
      184,
      208,
      179,
      208,
      190,
      208,
      180,
      209,
      131,
      208,
      180,
      208,
      181,
      208,
      189,
      209,
      140,
      209,
      141,
      209,
      130,
      208,
      190,
      209,
      130,
      208,
      177,
      209,
      139,
      208,
      187,
      208,
      176,
      209,
      129,
      208,
      181,
      208,
      177,
      209,
      143,
      208,
      190,
      208,
      180,
      208,
      184,
      208,
      189,
      209,
      129,
      208,
      181,
      208,
      177,
      208,
      181,
      208,
      189,
      208,
      176,
      208,
      180,
      208,
      190,
      209,
      129,
      208,
      176,
      208,
      185,
      209,
      130,
      209,
      132,
      208,
      190,
      209,
      130,
      208,
      190,
      208,
      189,
      208,
      181,
      208,
      179,
      208,
      190,
      209,
      129,
      208,
      178,
      208,
      190,
      208,
      184,
      209,
      129,
      208,
      178,
      208,
      190,
      208,
      185,
      208,
      184,
      208,
      179,
      209,
      128,
      209,
      139,
      209,
      130,
      208,
      190,
      208,
      182,
      208,
      181,
      208,
      178,
      209,
      129,
      208,
      181,
      208,
      188,
      209,
      129,
      208,
      178,
      208,
      190,
      209,
      142,
      208,
      187,
      208,
      184,
      209,
      136,
      209,
      140,
      209,
      141,
      209,
      130,
      208,
      184,
      209,
      133,
      208,
      191,
      208,
      190,
      208,
      186,
      208,
      176,
      208,
      180,
      208,
      189,
      208,
      181,
      208,
      185,
      208,
      180,
      208,
      190,
      208,
      188,
      208,
      176,
      208,
      188,
      208,
      184,
      209,
      128,
      208,
      176,
      208,
      187,
      208,
      184,
      208,
      177,
      208,
      190,
      209,
      130,
      208,
      181,
      208,
      188,
      209,
      131,
      209,
      133,
      208,
      190,
      209,
      130,
      209,
      143,
      208,
      180,
      208,
      178,
      209,
      131,
      209,
      133,
      209,
      129,
      208,
      181,
      209,
      130,
      208,
      184,
      208,
      187,
      209,
      142,
      208,
      180,
      208,
      184,
      208,
      180,
      208,
      181,
      208,
      187,
      208,
      190,
      208,
      188,
      208,
      184,
      209,
      128,
      208,
      181,
      209,
      130,
      208,
      181,
      208,
      177,
      209,
      143,
      209,
      129,
      208,
      178,
      208,
      190,
      208,
      181,
      208,
      178,
      208,
      184,
      208,
      180,
      208,
      181,
      209,
      135,
      208,
      181,
      208,
      179,
      208,
      190,
      209,
      141,
      209,
      130,
      208,
      184,
      208,
      188,
      209,
      129,
      209,
      135,
      208,
      181,
      209,
      130,
      209,
      130,
      208,
      181,
      208,
      188,
      209,
      139,
      209,
      134,
      208,
      181,
      208,
      189,
      209,
      139,
      209,
      129,
      209,
      130,
      208,
      176,
      208,
      187,
      208,
      178,
      208,
      181,
      208,
      180,
      209,
      140,
      209,
      130,
      208,
      181,
      208,
      188,
      208,
      181,
      208,
      178,
      208,
      190,
      208,
      180,
      209,
      139,
      209,
      130,
      208,
      181,
      208,
      177,
      208,
      181,
      208,
      178,
      209,
      139,
      209,
      136,
      208,
      181,
      208,
      189,
      208,
      176,
      208,
      188,
      208,
      184,
      209,
      130,
      208,
      184,
      208,
      191,
      208,
      176,
      209,
      130,
      208,
      190,
      208,
      188,
      209,
      131,
      208,
      191,
      209,
      128,
      208,
      176,
      208,
      178,
      208,
      187,
      208,
      184,
      209,
      134,
      208,
      176,
      208,
      190,
      208,
      180,
      208,
      189,
      208,
      176,
      208,
      179,
      208,
      190,
      208,
      180,
      209,
      139,
      208,
      183,
      208,
      189,
      208,
      176,
      209,
      142,
      208,
      188,
      208,
      190,
      208,
      179,
      209,
      131,
      208,
      180,
      209,
      128,
      209,
      131,
      208,
      179,
      208,
      178,
      209,
      129,
      208,
      181,
      208,
      185,
      208,
      184,
      208,
      180,
      208,
      181,
      209,
      130,
      208,
      186,
      208,
      184,
      208,
      189,
      208,
      190,
      208,
      190,
      208,
      180,
      208,
      189,
      208,
      190,
      208,
      180,
      208,
      181,
      208,
      187,
      208,
      176,
      208,
      180,
      208,
      181,
      208,
      187,
      208,
      181,
      209,
      129,
      209,
      128,
      208,
      190,
      208,
      186,
      208,
      184,
      209,
      142,
      208,
      189,
      209,
      143,
      208,
      178,
      208,
      181,
      209,
      129,
      209,
      140,
      208,
      149,
      209,
      129,
      209,
      130,
      209,
      140,
      209,
      128,
      208,
      176,
      208,
      183,
      208,
      176,
      208,
      189,
      208,
      176,
      209,
      136,
      208,
      184,
      216,
      167,
      217,
      132,
      217,
      132,
      217,
      135,
      216,
      167,
      217,
      132,
      216,
      170,
      217,
      138,
      216,
      172,
      217,
      133,
      217,
      138,
      216,
      185,
      216,
      174,
      216,
      167,
      216,
      181,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      176,
      217,
      138,
      216,
      185,
      217,
      132,
      217,
      138,
      217,
      135,
      216,
      172,
      216,
      175,
      217,
      138,
      216,
      175,
      216,
      167,
      217,
      132,
      216,
      162,
      217,
      134,
      216,
      167,
      217,
      132,
      216,
      177,
      216,
      175,
      216,
      170,
      216,
      173,
      217,
      131,
      217,
      133,
      216,
      181,
      217,
      129,
      216,
      173,
      216,
      169,
      217,
      131,
      216,
      167,
      217,
      134,
      216,
      170,
      216,
      167,
      217,
      132,
      217,
      132,
      217,
      138,
      217,
      138,
      217,
      131,
      217,
      136,
      217,
      134,
      216,
      180,
      216,
      168,
      217,
      131,
      216,
      169,
      217,
      129,
      217,
      138,
      217,
      135,
      216,
      167,
      216,
      168,
      217,
      134,
      216,
      167,
      216,
      170,
      216,
      173,
      217,
      136,
      216,
      167,
      216,
      161,
      216,
      163,
      217,
      131,
      216,
      171,
      216,
      177,
      216,
      174,
      217,
      132,
      216,
      167,
      217,
      132,
      216,
      167,
      217,
      132,
      216,
      173,
      216,
      168,
      216,
      175,
      217,
      132,
      217,
      138,
      217,
      132,
      216,
      175,
      216,
      177,
      217,
      136,
      216,
      179,
      216,
      167,
      216,
      182,
      216,
      186,
      216,
      183,
      216,
      170,
      217,
      131,
      217,
      136,
      217,
      134,
      217,
      135,
      217,
      134,
      216,
      167,
      217,
      131,
      216,
      179,
      216,
      167,
      216,
      173,
      216,
      169,
      217,
      134,
      216,
      167,
      216,
      175,
      217,
      138,
      216,
      167,
      217,
      132,
      216,
      183,
      216,
      168,
      216,
      185,
      217,
      132,
      217,
      138,
      217,
      131,
      216,
      180,
      217,
      131,
      216,
      177,
      216,
      167,
      217,
      138,
      217,
      133,
      217,
      131,
      217,
      134,
      217,
      133,
      217,
      134,
      217,
      135,
      216,
      167,
      216,
      180,
      216,
      177,
      217,
      131,
      216,
      169,
      216,
      177,
      216,
      166,
      217,
      138,
      216,
      179,
      217,
      134,
      216,
      180,
      217,
      138,
      216,
      183,
      217,
      133,
      216,
      167,
      216,
      176,
      216,
      167,
      216,
      167,
      217,
      132,
      217,
      129,
      217,
      134,
      216,
      180,
      216,
      168,
      216,
      167,
      216,
      168,
      216,
      170,
      216,
      185,
      216,
      168,
      216,
      177,
      216,
      177,
      216,
      173,
      217,
      133,
      216,
      169,
      217,
      131,
      216,
      167,
      217,
      129,
      216,
      169,
      217,
      138,
      217,
      130,
      217,
      136,
      217,
      132,
      217,
      133,
      216,
      177,
      217,
      131,
      216,
      178,
      217,
      131,
      217,
      132,
      217,
      133,
      216,
      169,
      216,
      163,
      216,
      173,
      217,
      133,
      216,
      175,
      217,
      130,
      217,
      132,
      216,
      168,
      217,
      138,
      217,
      138,
      216,
      185,
      217,
      134,
      217,
      138,
      216,
      181,
      217,
      136,
      216,
      177,
      216,
      169,
      216,
      183,
      216,
      177,
      217,
      138,
      217,
      130,
      216,
      180,
      216,
      167,
      216,
      177,
      217,
      131,
      216,
      172,
      217,
      136,
      216,
      167,
      217,
      132,
      216,
      163,
      216,
      174,
      216,
      177,
      217,
      137,
      217,
      133,
      216,
      185,
      217,
      134,
      216,
      167,
      216,
      167,
      216,
      168,
      216,
      173,
      216,
      171,
      216,
      185,
      216,
      177,
      217,
      136,
      216,
      182,
      216,
      168,
      216,
      180,
      217,
      131,
      217,
      132,
      217,
      133,
      216,
      179,
      216,
      172,
      217,
      132,
      216,
      168,
      217,
      134,
      216,
      167,
      217,
      134,
      216,
      174,
      216,
      167,
      217,
      132,
      216,
      175,
      217,
      131,
      216,
      170,
      216,
      167,
      216,
      168,
      217,
      131,
      217,
      132,
      217,
      138,
      216,
      169,
      216,
      168,
      216,
      175,
      217,
      136,
      217,
      134,
      216,
      163,
      217,
      138,
      216,
      182,
      216,
      167,
      217,
      138,
      217,
      136,
      216,
      172,
      216,
      175,
      217,
      129,
      216,
      177,
      217,
      138,
      217,
      130,
      217,
      131,
      216,
      170,
      216,
      168,
      216,
      170,
      216,
      163,
      217,
      129,
      216,
      182,
      217,
      132,
      217,
      133,
      216,
      183,
      216,
      168,
      216,
      174,
      216,
      167,
      217,
      131,
      216,
      171,
      216,
      177,
      216,
      168,
      216,
      167,
      216,
      177,
      217,
      131,
      216,
      167,
      217,
      129,
      216,
      182,
      217,
      132,
      216,
      167,
      216,
      173,
      217,
      132,
      217,
      137,
      217,
      134,
      217,
      129,
      216,
      179,
      217,
      135,
      216,
      163,
      217,
      138,
      216,
      167,
      217,
      133,
      216,
      177,
      216,
      175,
      217,
      136,
      216,
      175,
      216,
      163,
      217,
      134,
      217,
      135,
      216,
      167,
      216,
      175,
      217,
      138,
      217,
      134,
      216,
      167,
      216,
      167,
      217,
      132,
      216,
      167,
      217,
      134,
      217,
      133,
      216,
      185,
      216,
      177,
      216,
      182,
      216,
      170,
      216,
      185,
      217,
      132,
      217,
      133,
      216,
      175,
      216,
      167,
      216,
      174,
      217,
      132,
      217,
      133,
      217,
      133,
      217,
      131,
      217,
      134,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      2,
      0,
      2,
      0,
      2,
      0,
      2,
      0,
      4,
      0,
      4,
      0,
      4,
      0,
      4,
      0,
      0,
      1,
      2,
      3,
      4,
      5,
      6,
      7,
      7,
      6,
      5,
      4,
      3,
      2,
      1,
      0,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      15,
      14,
      13,
      12,
      11,
      10,
      9,
      8,
      16,
      17,
      18,
      19,
      20,
      21,
      22,
      23,
      23,
      22,
      21,
      20,
      19,
      18,
      17,
      16,
      24,
      25,
      26,
      27,
      28,
      29,
      30,
      31,
      31,
      30,
      29,
      28,
      27,
      26,
      25,
      24,
      255,
      255,
      255,
      255,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      255,
      255,
      255,
      255,
      1,
      0,
      0,
      0,
      2,
      0,
      0,
      0,
      2,
      0,
      0,
      0,
      1,
      0,
      0,
      0,
      1,
      0,
      0,
      0,
      3,
      0,
      0,
      0,
      255,
      255,
      0,
      1,
      0,
      0,
      0,
      1,
      0,
      0,
      255,
      255,
      0,
      1,
      0,
      0,
      0,
      8,
      0,
      8,
      0,
      8,
      0,
      8,
      0,
      0,
      0,
      1,
      0,
      2,
      0,
      3,
      0,
      4,
      0,
      5,
      0,
      6,
      0,
      7,
      114,
      101,
      115,
      111,
      117,
      114,
      99,
      101,
      115,
      99,
      111,
      117,
      110,
      116,
      114,
      105,
      101,
      115,
      113,
      117,
      101,
      115,
      116,
      105,
      111,
      110,
      115,
      101,
      113,
      117,
      105,
      112,
      109,
      101,
      110,
      116,
      99,
      111,
      109,
      109,
      117,
      110,
      105,
      116,
      121,
      97,
      118,
      97,
      105,
      108,
      97,
      98,
      108,
      101,
      104,
      105,
      103,
      104,
      108,
      105,
      103,
      104,
      116,
      68,
      84,
      68,
      47,
      120,
      104,
      116,
      109,
      108,
      109,
      97,
      114,
      107,
      101,
      116,
      105,
      110,
      103,
      107,
      110,
      111,
      119,
      108,
      101,
      100,
      103,
      101,
      115,
      111,
      109,
      101,
      116,
      104,
      105,
      110,
      103,
      99,
      111,
      110,
      116,
      97,
      105,
      110,
      101,
      114,
      100,
      105,
      114,
      101,
      99,
      116,
      105,
      111,
      110,
      115,
      117,
      98,
      115,
      99,
      114,
      105,
      98,
      101,
      97,
      100,
      118,
      101,
      114,
      116,
      105,
      115,
      101,
      99,
      104,
      97,
      114,
      97,
      99,
      116,
      101,
      114,
      34,
      32,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      60,
      47,
      115,
      101,
      108,
      101,
      99,
      116,
      62,
      65,
      117,
      115,
      116,
      114,
      97,
      108,
      105,
      97,
      34,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      115,
      105,
      116,
      117,
      97,
      116,
      105,
      111,
      110,
      97,
      117,
      116,
      104,
      111,
      114,
      105,
      116,
      121,
      102,
      111,
      108,
      108,
      111,
      119,
      105,
      110,
      103,
      112,
      114,
      105,
      109,
      97,
      114,
      105,
      108,
      121,
      111,
      112,
      101,
      114,
      97,
      116,
      105,
      111,
      110,
      99,
      104,
      97,
      108,
      108,
      101,
      110,
      103,
      101,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      101,
      100,
      97,
      110,
      111,
      110,
      121,
      109,
      111,
      117,
      115,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      32,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      115,
      99,
      111,
      109,
      112,
      97,
      110,
      105,
      101,
      115,
      115,
      116,
      114,
      117,
      99,
      116,
      117,
      114,
      101,
      97,
      103,
      114,
      101,
      101,
      109,
      101,
      110,
      116,
      34,
      32,
      116,
      105,
      116,
      108,
      101,
      61,
      34,
      112,
      111,
      116,
      101,
      110,
      116,
      105,
      97,
      108,
      101,
      100,
      117,
      99,
      97,
      116,
      105,
      111,
      110,
      97,
      114,
      103,
      117,
      109,
      101,
      110,
      116,
      115,
      115,
      101,
      99,
      111,
      110,
      100,
      97,
      114,
      121,
      99,
      111,
      112,
      121,
      114,
      105,
      103,
      104,
      116,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      115,
      101,
      120,
      99,
      108,
      117,
      115,
      105,
      118,
      101,
      99,
      111,
      110,
      100,
      105,
      116,
      105,
      111,
      110,
      60,
      47,
      102,
      111,
      114,
      109,
      62,
      13,
      10,
      115,
      116,
      97,
      116,
      101,
      109,
      101,
      110,
      116,
      97,
      116,
      116,
      101,
      110,
      116,
      105,
      111,
      110,
      66,
      105,
      111,
      103,
      114,
      97,
      112,
      104,
      121,
      125,
      32,
      101,
      108,
      115,
      101,
      32,
      123,
      10,
      115,
      111,
      108,
      117,
      116,
      105,
      111,
      110,
      115,
      119,
      104,
      101,
      110,
      32,
      116,
      104,
      101,
      32,
      65,
      110,
      97,
      108,
      121,
      116,
      105,
      99,
      115,
      116,
      101,
      109,
      112,
      108,
      97,
      116,
      101,
      115,
      100,
      97,
      110,
      103,
      101,
      114,
      111,
      117,
      115,
      115,
      97,
      116,
      101,
      108,
      108,
      105,
      116,
      101,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      115,
      112,
      117,
      98,
      108,
      105,
      115,
      104,
      101,
      114,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      112,
      114,
      111,
      116,
      111,
      116,
      121,
      112,
      101,
      105,
      110,
      102,
      108,
      117,
      101,
      110,
      99,
      101,
      38,
      114,
      97,
      113,
      117,
      111,
      59,
      60,
      47,
      101,
      102,
      102,
      101,
      99,
      116,
      105,
      118,
      101,
      103,
      101,
      110,
      101,
      114,
      97,
      108,
      108,
      121,
      116,
      114,
      97,
      110,
      115,
      102,
      111,
      114,
      109,
      98,
      101,
      97,
      117,
      116,
      105,
      102,
      117,
      108,
      116,
      114,
      97,
      110,
      115,
      112,
      111,
      114,
      116,
      111,
      114,
      103,
      97,
      110,
      105,
      122,
      101,
      100,
      112,
      117,
      98,
      108,
      105,
      115,
      104,
      101,
      100,
      112,
      114,
      111,
      109,
      105,
      110,
      101,
      110,
      116,
      117,
      110,
      116,
      105,
      108,
      32,
      116,
      104,
      101,
      116,
      104,
      117,
      109,
      98,
      110,
      97,
      105,
      108,
      78,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      32,
      46,
      102,
      111,
      99,
      117,
      115,
      40,
      41,
      59,
      111,
      118,
      101,
      114,
      32,
      116,
      104,
      101,
      32,
      109,
      105,
      103,
      114,
      97,
      116,
      105,
      111,
      110,
      97,
      110,
      110,
      111,
      117,
      110,
      99,
      101,
      100,
      102,
      111,
      111,
      116,
      101,
      114,
      34,
      62,
      10,
      101,
      120,
      99,
      101,
      112,
      116,
      105,
      111,
      110,
      108,
      101,
      115,
      115,
      32,
      116,
      104,
      97,
      110,
      101,
      120,
      112,
      101,
      110,
      115,
      105,
      118,
      101,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      102,
      114,
      97,
      109,
      101,
      119,
      111,
      114,
      107,
      116,
      101,
      114,
      114,
      105,
      116,
      111,
      114,
      121,
      110,
      100,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      99,
      117,
      114,
      114,
      101,
      110,
      116,
      108,
      121,
      99,
      108,
      97,
      115,
      115,
      78,
      97,
      109,
      101,
      99,
      114,
      105,
      116,
      105,
      99,
      105,
      115,
      109,
      116,
      114,
      97,
      100,
      105,
      116,
      105,
      111,
      110,
      101,
      108,
      115,
      101,
      119,
      104,
      101,
      114,
      101,
      65,
      108,
      101,
      120,
      97,
      110,
      100,
      101,
      114,
      97,
      112,
      112,
      111,
      105,
      110,
      116,
      101,
      100,
      109,
      97,
      116,
      101,
      114,
      105,
      97,
      108,
      115,
      98,
      114,
      111,
      97,
      100,
      99,
      97,
      115,
      116,
      109,
      101,
      110,
      116,
      105,
      111,
      110,
      101,
      100,
      97,
      102,
      102,
      105,
      108,
      105,
      97,
      116,
      101,
      60,
      47,
      111,
      112,
      116,
      105,
      111,
      110,
      62,
      116,
      114,
      101,
      97,
      116,
      109,
      101,
      110,
      116,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      47,
      100,
      101,
      102,
      97,
      117,
      108,
      116,
      46,
      80,
      114,
      101,
      115,
      105,
      100,
      101,
      110,
      116,
      111,
      110,
      99,
      108,
      105,
      99,
      107,
      61,
      34,
      98,
      105,
      111,
      103,
      114,
      97,
      112,
      104,
      121,
      111,
      116,
      104,
      101,
      114,
      119,
      105,
      115,
      101,
      112,
      101,
      114,
      109,
      97,
      110,
      101,
      110,
      116,
      70,
      114,
      97,
      110,
      195,
      167,
      97,
      105,
      115,
      72,
      111,
      108,
      108,
      121,
      119,
      111,
      111,
      100,
      101,
      120,
      112,
      97,
      110,
      115,
      105,
      111,
      110,
      115,
      116,
      97,
      110,
      100,
      97,
      114,
      100,
      115,
      60,
      47,
      115,
      116,
      121,
      108,
      101,
      62,
      10,
      114,
      101,
      100,
      117,
      99,
      116,
      105,
      111,
      110,
      68,
      101,
      99,
      101,
      109,
      98,
      101,
      114,
      32,
      112,
      114,
      101,
      102,
      101,
      114,
      114,
      101,
      100,
      67,
      97,
      109,
      98,
      114,
      105,
      100,
      103,
      101,
      111,
      112,
      112,
      111,
      110,
      101,
      110,
      116,
      115,
      66,
      117,
      115,
      105,
      110,
      101,
      115,
      115,
      32,
      99,
      111,
      110,
      102,
      117,
      115,
      105,
      111,
      110,
      62,
      10,
      60,
      116,
      105,
      116,
      108,
      101,
      62,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      101,
      100,
      101,
      120,
      112,
      108,
      97,
      105,
      110,
      101,
      100,
      100,
      111,
      101,
      115,
      32,
      110,
      111,
      116,
      32,
      119,
      111,
      114,
      108,
      100,
      119,
      105,
      100,
      101,
      105,
      110,
      116,
      101,
      114,
      102,
      97,
      99,
      101,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      115,
      110,
      101,
      119,
      115,
      112,
      97,
      112,
      101,
      114,
      60,
      47,
      116,
      97,
      98,
      108,
      101,
      62,
      10,
      109,
      111,
      117,
      110,
      116,
      97,
      105,
      110,
      115,
      108,
      105,
      107,
      101,
      32,
      116,
      104,
      101,
      32,
      101,
      115,
      115,
      101,
      110,
      116,
      105,
      97,
      108,
      102,
      105,
      110,
      97,
      110,
      99,
      105,
      97,
      108,
      115,
      101,
      108,
      101,
      99,
      116,
      105,
      111,
      110,
      97,
      99,
      116,
      105,
      111,
      110,
      61,
      34,
      47,
      97,
      98,
      97,
      110,
      100,
      111,
      110,
      101,
      100,
      69,
      100,
      117,
      99,
      97,
      116,
      105,
      111,
      110,
      112,
      97,
      114,
      115,
      101,
      73,
      110,
      116,
      40,
      115,
      116,
      97,
      98,
      105,
      108,
      105,
      116,
      121,
      117,
      110,
      97,
      98,
      108,
      101,
      32,
      116,
      111,
      60,
      47,
      116,
      105,
      116,
      108,
      101,
      62,
      10,
      114,
      101,
      108,
      97,
      116,
      105,
      111,
      110,
      115,
      78,
      111,
      116,
      101,
      32,
      116,
      104,
      97,
      116,
      101,
      102,
      102,
      105,
      99,
      105,
      101,
      110,
      116,
      112,
      101,
      114,
      102,
      111,
      114,
      109,
      101,
      100,
      116,
      119,
      111,
      32,
      121,
      101,
      97,
      114,
      115,
      83,
      105,
      110,
      99,
      101,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      114,
      101,
      102,
      111,
      114,
      101,
      119,
      114,
      97,
      112,
      112,
      101,
      114,
      34,
      62,
      97,
      108,
      116,
      101,
      114,
      110,
      97,
      116,
      101,
      105,
      110,
      99,
      114,
      101,
      97,
      115,
      101,
      100,
      66,
      97,
      116,
      116,
      108,
      101,
      32,
      111,
      102,
      112,
      101,
      114,
      99,
      101,
      105,
      118,
      101,
      100,
      116,
      114,
      121,
      105,
      110,
      103,
      32,
      116,
      111,
      110,
      101,
      99,
      101,
      115,
      115,
      97,
      114,
      121,
      112,
      111,
      114,
      116,
      114,
      97,
      121,
      101,
      100,
      101,
      108,
      101,
      99,
      116,
      105,
      111,
      110,
      115,
      69,
      108,
      105,
      122,
      97,
      98,
      101,
      116,
      104,
      60,
      47,
      105,
      102,
      114,
      97,
      109,
      101,
      62,
      100,
      105,
      115,
      99,
      111,
      118,
      101,
      114,
      121,
      105,
      110,
      115,
      117,
      114,
      97,
      110,
      99,
      101,
      115,
      46,
      108,
      101,
      110,
      103,
      116,
      104,
      59,
      108,
      101,
      103,
      101,
      110,
      100,
      97,
      114,
      121,
      71,
      101,
      111,
      103,
      114,
      97,
      112,
      104,
      121,
      99,
      97,
      110,
      100,
      105,
      100,
      97,
      116,
      101,
      99,
      111,
      114,
      112,
      111,
      114,
      97,
      116,
      101,
      115,
      111,
      109,
      101,
      116,
      105,
      109,
      101,
      115,
      115,
      101,
      114,
      118,
      105,
      99,
      101,
      115,
      46,
      105,
      110,
      104,
      101,
      114,
      105,
      116,
      101,
      100,
      60,
      47,
      115,
      116,
      114,
      111,
      110,
      103,
      62,
      67,
      111,
      109,
      109,
      117,
      110,
      105,
      116,
      121,
      114,
      101,
      108,
      105,
      103,
      105,
      111,
      117,
      115,
      108,
      111,
      99,
      97,
      116,
      105,
      111,
      110,
      115,
      67,
      111,
      109,
      109,
      105,
      116,
      116,
      101,
      101,
      98,
      117,
      105,
      108,
      100,
      105,
      110,
      103,
      115,
      116,
      104,
      101,
      32,
      119,
      111,
      114,
      108,
      100,
      110,
      111,
      32,
      108,
      111,
      110,
      103,
      101,
      114,
      98,
      101,
      103,
      105,
      110,
      110,
      105,
      110,
      103,
      114,
      101,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      99,
      97,
      110,
      110,
      111,
      116,
      32,
      98,
      101,
      102,
      114,
      101,
      113,
      117,
      101,
      110,
      99,
      121,
      116,
      121,
      112,
      105,
      99,
      97,
      108,
      108,
      121,
      105,
      110,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      114,
      101,
      108,
      97,
      116,
      105,
      118,
      101,
      59,
      114,
      101,
      99,
      111,
      114,
      100,
      105,
      110,
      103,
      112,
      114,
      101,
      115,
      105,
      100,
      101,
      110,
      116,
      105,
      110,
      105,
      116,
      105,
      97,
      108,
      108,
      121,
      116,
      101,
      99,
      104,
      110,
      105,
      113,
      117,
      101,
      116,
      104,
      101,
      32,
      111,
      116,
      104,
      101,
      114,
      105,
      116,
      32,
      99,
      97,
      110,
      32,
      98,
      101,
      101,
      120,
      105,
      115,
      116,
      101,
      110,
      99,
      101,
      117,
      110,
      100,
      101,
      114,
      108,
      105,
      110,
      101,
      116,
      104,
      105,
      115,
      32,
      116,
      105,
      109,
      101,
      116,
      101,
      108,
      101,
      112,
      104,
      111,
      110,
      101,
      105,
      116,
      101,
      109,
      115,
      99,
      111,
      112,
      101,
      112,
      114,
      97,
      99,
      116,
      105,
      99,
      101,
      115,
      97,
      100,
      118,
      97,
      110,
      116,
      97,
      103,
      101,
      41,
      59,
      114,
      101,
      116,
      117,
      114,
      110,
      32,
      70,
      111,
      114,
      32,
      111,
      116,
      104,
      101,
      114,
      112,
      114,
      111,
      118,
      105,
      100,
      105,
      110,
      103,
      100,
      101,
      109,
      111,
      99,
      114,
      97,
      99,
      121,
      98,
      111,
      116,
      104,
      32,
      116,
      104,
      101,
      32,
      101,
      120,
      116,
      101,
      110,
      115,
      105,
      118,
      101,
      115,
      117,
      102,
      102,
      101,
      114,
      105,
      110,
      103,
      115,
      117,
      112,
      112,
      111,
      114,
      116,
      101,
      100,
      99,
      111,
      109,
      112,
      117,
      116,
      101,
      114,
      115,
      32,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      112,
      114,
      97,
      99,
      116,
      105,
      99,
      97,
      108,
      115,
      97,
      105,
      100,
      32,
      116,
      104,
      97,
      116,
      105,
      116,
      32,
      109,
      97,
      121,
      32,
      98,
      101,
      69,
      110,
      103,
      108,
      105,
      115,
      104,
      60,
      47,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      32,
      115,
      99,
      104,
      101,
      100,
      117,
      108,
      101,
      100,
      100,
      111,
      119,
      110,
      108,
      111,
      97,
      100,
      115,
      60,
      47,
      108,
      97,
      98,
      101,
      108,
      62,
      10,
      115,
      117,
      115,
      112,
      101,
      99,
      116,
      101,
      100,
      109,
      97,
      114,
      103,
      105,
      110,
      58,
      32,
      48,
      115,
      112,
      105,
      114,
      105,
      116,
      117,
      97,
      108,
      60,
      47,
      104,
      101,
      97,
      100,
      62,
      10,
      10,
      109,
      105,
      99,
      114,
      111,
      115,
      111,
      102,
      116,
      103,
      114,
      97,
      100,
      117,
      97,
      108,
      108,
      121,
      100,
      105,
      115,
      99,
      117,
      115,
      115,
      101,
      100,
      104,
      101,
      32,
      98,
      101,
      99,
      97,
      109,
      101,
      101,
      120,
      101,
      99,
      117,
      116,
      105,
      118,
      101,
      106,
      113,
      117,
      101,
      114,
      121,
      46,
      106,
      115,
      104,
      111,
      117,
      115,
      101,
      104,
      111,
      108,
      100,
      99,
      111,
      110,
      102,
      105,
      114,
      109,
      101,
      100,
      112,
      117,
      114,
      99,
      104,
      97,
      115,
      101,
      100,
      108,
      105,
      116,
      101,
      114,
      97,
      108,
      108,
      121,
      100,
      101,
      115,
      116,
      114,
      111,
      121,
      101,
      100,
      117,
      112,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      118,
      97,
      114,
      105,
      97,
      116,
      105,
      111,
      110,
      114,
      101,
      109,
      97,
      105,
      110,
      105,
      110,
      103,
      105,
      116,
      32,
      105,
      115,
      32,
      110,
      111,
      116,
      99,
      101,
      110,
      116,
      117,
      114,
      105,
      101,
      115,
      74,
      97,
      112,
      97,
      110,
      101,
      115,
      101,
      32,
      97,
      109,
      111,
      110,
      103,
      32,
      116,
      104,
      101,
      99,
      111,
      109,
      112,
      108,
      101,
      116,
      101,
      100,
      97,
      108,
      103,
      111,
      114,
      105,
      116,
      104,
      109,
      105,
      110,
      116,
      101,
      114,
      101,
      115,
      116,
      115,
      114,
      101,
      98,
      101,
      108,
      108,
      105,
      111,
      110,
      117,
      110,
      100,
      101,
      102,
      105,
      110,
      101,
      100,
      101,
      110,
      99,
      111,
      117,
      114,
      97,
      103,
      101,
      114,
      101,
      115,
      105,
      122,
      97,
      98,
      108,
      101,
      105,
      110,
      118,
      111,
      108,
      118,
      105,
      110,
      103,
      115,
      101,
      110,
      115,
      105,
      116,
      105,
      118,
      101,
      117,
      110,
      105,
      118,
      101,
      114,
      115,
      97,
      108,
      112,
      114,
      111,
      118,
      105,
      115,
      105,
      111,
      110,
      40,
      97,
      108,
      116,
      104,
      111,
      117,
      103,
      104,
      102,
      101,
      97,
      116,
      117,
      114,
      105,
      110,
      103,
      99,
      111,
      110,
      100,
      117,
      99,
      116,
      101,
      100,
      41,
      44,
      32,
      119,
      104,
      105,
      99,
      104,
      32,
      99,
      111,
      110,
      116,
      105,
      110,
      117,
      101,
      100,
      45,
      104,
      101,
      97,
      100,
      101,
      114,
      34,
      62,
      70,
      101,
      98,
      114,
      117,
      97,
      114,
      121,
      32,
      110,
      117,
      109,
      101,
      114,
      111,
      117,
      115,
      32,
      111,
      118,
      101,
      114,
      102,
      108,
      111,
      119,
      58,
      99,
      111,
      109,
      112,
      111,
      110,
      101,
      110,
      116,
      102,
      114,
      97,
      103,
      109,
      101,
      110,
      116,
      115,
      101,
      120,
      99,
      101,
      108,
      108,
      101,
      110,
      116,
      99,
      111,
      108,
      115,
      112,
      97,
      110,
      61,
      34,
      116,
      101,
      99,
      104,
      110,
      105,
      99,
      97,
      108,
      110,
      101,
      97,
      114,
      32,
      116,
      104,
      101,
      32,
      65,
      100,
      118,
      97,
      110,
      99,
      101,
      100,
      32,
      115,
      111,
      117,
      114,
      99,
      101,
      32,
      111,
      102,
      101,
      120,
      112,
      114,
      101,
      115,
      115,
      101,
      100,
      72,
      111,
      110,
      103,
      32,
      75,
      111,
      110,
      103,
      32,
      70,
      97,
      99,
      101,
      98,
      111,
      111,
      107,
      109,
      117,
      108,
      116,
      105,
      112,
      108,
      101,
      32,
      109,
      101,
      99,
      104,
      97,
      110,
      105,
      115,
      109,
      101,
      108,
      101,
      118,
      97,
      116,
      105,
      111,
      110,
      111,
      102,
      102,
      101,
      110,
      115,
      105,
      118,
      101,
      60,
      47,
      102,
      111,
      114,
      109,
      62,
      10,
      9,
      115,
      112,
      111,
      110,
      115,
      111,
      114,
      101,
      100,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      111,
      114,
      32,
      38,
      113,
      117,
      111,
      116,
      59,
      116,
      104,
      101,
      114,
      101,
      32,
      97,
      114,
      101,
      116,
      104,
      111,
      115,
      101,
      32,
      119,
      104,
      111,
      109,
      111,
      118,
      101,
      109,
      101,
      110,
      116,
      115,
      112,
      114,
      111,
      99,
      101,
      115,
      115,
      101,
      115,
      100,
      105,
      102,
      102,
      105,
      99,
      117,
      108,
      116,
      115,
      117,
      98,
      109,
      105,
      116,
      116,
      101,
      100,
      114,
      101,
      99,
      111,
      109,
      109,
      101,
      110,
      100,
      99,
      111,
      110,
      118,
      105,
      110,
      99,
      101,
      100,
      112,
      114,
      111,
      109,
      111,
      116,
      105,
      110,
      103,
      34,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      46,
      114,
      101,
      112,
      108,
      97,
      99,
      101,
      40,
      99,
      108,
      97,
      115,
      115,
      105,
      99,
      97,
      108,
      99,
      111,
      97,
      108,
      105,
      116,
      105,
      111,
      110,
      104,
      105,
      115,
      32,
      102,
      105,
      114,
      115,
      116,
      100,
      101,
      99,
      105,
      115,
      105,
      111,
      110,
      115,
      97,
      115,
      115,
      105,
      115,
      116,
      97,
      110,
      116,
      105,
      110,
      100,
      105,
      99,
      97,
      116,
      101,
      100,
      101,
      118,
      111,
      108,
      117,
      116,
      105,
      111,
      110,
      45,
      119,
      114,
      97,
      112,
      112,
      101,
      114,
      34,
      101,
      110,
      111,
      117,
      103,
      104,
      32,
      116,
      111,
      97,
      108,
      111,
      110,
      103,
      32,
      116,
      104,
      101,
      100,
      101,
      108,
      105,
      118,
      101,
      114,
      101,
      100,
      45,
      45,
      62,
      13,
      10,
      60,
      33,
      45,
      45,
      65,
      109,
      101,
      114,
      105,
      99,
      97,
      110,
      32,
      112,
      114,
      111,
      116,
      101,
      99,
      116,
      101,
      100,
      78,
      111,
      118,
      101,
      109,
      98,
      101,
      114,
      32,
      60,
      47,
      115,
      116,
      121,
      108,
      101,
      62,
      60,
      102,
      117,
      114,
      110,
      105,
      116,
      117,
      114,
      101,
      73,
      110,
      116,
      101,
      114,
      110,
      101,
      116,
      32,
      32,
      111,
      110,
      98,
      108,
      117,
      114,
      61,
      34,
      115,
      117,
      115,
      112,
      101,
      110,
      100,
      101,
      100,
      114,
      101,
      99,
      105,
      112,
      105,
      101,
      110,
      116,
      98,
      97,
      115,
      101,
      100,
      32,
      111,
      110,
      32,
      77,
      111,
      114,
      101,
      111,
      118,
      101,
      114,
      44,
      97,
      98,
      111,
      108,
      105,
      115,
      104,
      101,
      100,
      99,
      111,
      108,
      108,
      101,
      99,
      116,
      101,
      100,
      119,
      101,
      114,
      101,
      32,
      109,
      97,
      100,
      101,
      101,
      109,
      111,
      116,
      105,
      111,
      110,
      97,
      108,
      101,
      109,
      101,
      114,
      103,
      101,
      110,
      99,
      121,
      110,
      97,
      114,
      114,
      97,
      116,
      105,
      118,
      101,
      97,
      100,
      118,
      111,
      99,
      97,
      116,
      101,
      115,
      112,
      120,
      59,
      98,
      111,
      114,
      100,
      101,
      114,
      99,
      111,
      109,
      109,
      105,
      116,
      116,
      101,
      100,
      100,
      105,
      114,
      61,
      34,
      108,
      116,
      114,
      34,
      101,
      109,
      112,
      108,
      111,
      121,
      101,
      101,
      115,
      114,
      101,
      115,
      101,
      97,
      114,
      99,
      104,
      46,
      32,
      115,
      101,
      108,
      101,
      99,
      116,
      101,
      100,
      115,
      117,
      99,
      99,
      101,
      115,
      115,
      111,
      114,
      99,
      117,
      115,
      116,
      111,
      109,
      101,
      114,
      115,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      101,
      100,
      83,
      101,
      112,
      116,
      101,
      109,
      98,
      101,
      114,
      97,
      100,
      100,
      67,
      108,
      97,
      115,
      115,
      40,
      70,
      97,
      99,
      101,
      98,
      111,
      111,
      107,
      32,
      115,
      117,
      103,
      103,
      101,
      115,
      116,
      101,
      100,
      97,
      110,
      100,
      32,
      108,
      97,
      116,
      101,
      114,
      111,
      112,
      101,
      114,
      97,
      116,
      105,
      110,
      103,
      101,
      108,
      97,
      98,
      111,
      114,
      97,
      116,
      101,
      83,
      111,
      109,
      101,
      116,
      105,
      109,
      101,
      115,
      73,
      110,
      115,
      116,
      105,
      116,
      117,
      116,
      101,
      99,
      101,
      114,
      116,
      97,
      105,
      110,
      108,
      121,
      105,
      110,
      115,
      116,
      97,
      108,
      108,
      101,
      100,
      102,
      111,
      108,
      108,
      111,
      119,
      101,
      114,
      115,
      74,
      101,
      114,
      117,
      115,
      97,
      108,
      101,
      109,
      116,
      104,
      101,
      121,
      32,
      104,
      97,
      118,
      101,
      99,
      111,
      109,
      112,
      117,
      116,
      105,
      110,
      103,
      103,
      101,
      110,
      101,
      114,
      97,
      116,
      101,
      100,
      112,
      114,
      111,
      118,
      105,
      110,
      99,
      101,
      115,
      103,
      117,
      97,
      114,
      97,
      110,
      116,
      101,
      101,
      97,
      114,
      98,
      105,
      116,
      114,
      97,
      114,
      121,
      114,
      101,
      99,
      111,
      103,
      110,
      105,
      122,
      101,
      119,
      97,
      110,
      116,
      101,
      100,
      32,
      116,
      111,
      112,
      120,
      59,
      119,
      105,
      100,
      116,
      104,
      58,
      116,
      104,
      101,
      111,
      114,
      121,
      32,
      111,
      102,
      98,
      101,
      104,
      97,
      118,
      105,
      111,
      117,
      114,
      87,
      104,
      105,
      108,
      101,
      32,
      116,
      104,
      101,
      101,
      115,
      116,
      105,
      109,
      97,
      116,
      101,
      100,
      98,
      101,
      103,
      97,
      110,
      32,
      116,
      111,
      32,
      105,
      116,
      32,
      98,
      101,
      99,
      97,
      109,
      101,
      109,
      97,
      103,
      110,
      105,
      116,
      117,
      100,
      101,
      109,
      117,
      115,
      116,
      32,
      104,
      97,
      118,
      101,
      109,
      111,
      114,
      101,
      32,
      116,
      104,
      97,
      110,
      68,
      105,
      114,
      101,
      99,
      116,
      111,
      114,
      121,
      101,
      120,
      116,
      101,
      110,
      115,
      105,
      111,
      110,
      115,
      101,
      99,
      114,
      101,
      116,
      97,
      114,
      121,
      110,
      97,
      116,
      117,
      114,
      97,
      108,
      108,
      121,
      111,
      99,
      99,
      117,
      114,
      114,
      105,
      110,
      103,
      118,
      97,
      114,
      105,
      97,
      98,
      108,
      101,
      115,
      103,
      105,
      118,
      101,
      110,
      32,
      116,
      104,
      101,
      112,
      108,
      97,
      116,
      102,
      111,
      114,
      109,
      46,
      60,
      47,
      108,
      97,
      98,
      101,
      108,
      62,
      60,
      102,
      97,
      105,
      108,
      101,
      100,
      32,
      116,
      111,
      99,
      111,
      109,
      112,
      111,
      117,
      110,
      100,
      115,
      107,
      105,
      110,
      100,
      115,
      32,
      111,
      102,
      32,
      115,
      111,
      99,
      105,
      101,
      116,
      105,
      101,
      115,
      97,
      108,
      111,
      110,
      103,
      115,
      105,
      100,
      101,
      32,
      45,
      45,
      38,
      103,
      116,
      59,
      10,
      10,
      115,
      111,
      117,
      116,
      104,
      119,
      101,
      115,
      116,
      116,
      104,
      101,
      32,
      114,
      105,
      103,
      104,
      116,
      114,
      97,
      100,
      105,
      97,
      116,
      105,
      111,
      110,
      109,
      97,
      121,
      32,
      104,
      97,
      118,
      101,
      32,
      117,
      110,
      101,
      115,
      99,
      97,
      112,
      101,
      40,
      115,
      112,
      111,
      107,
      101,
      110,
      32,
      105,
      110,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      47,
      112,
      114,
      111,
      103,
      114,
      97,
      109,
      109,
      101,
      111,
      110,
      108,
      121,
      32,
      116,
      104,
      101,
      32,
      99,
      111,
      109,
      101,
      32,
      102,
      114,
      111,
      109,
      100,
      105,
      114,
      101,
      99,
      116,
      111,
      114,
      121,
      98,
      117,
      114,
      105,
      101,
      100,
      32,
      105,
      110,
      97,
      32,
      115,
      105,
      109,
      105,
      108,
      97,
      114,
      116,
      104,
      101,
      121,
      32,
      119,
      101,
      114,
      101,
      60,
      47,
      102,
      111,
      110,
      116,
      62,
      60,
      47,
      78,
      111,
      114,
      119,
      101,
      103,
      105,
      97,
      110,
      115,
      112,
      101,
      99,
      105,
      102,
      105,
      101,
      100,
      112,
      114,
      111,
      100,
      117,
      99,
      105,
      110,
      103,
      112,
      97,
      115,
      115,
      101,
      110,
      103,
      101,
      114,
      40,
      110,
      101,
      119,
      32,
      68,
      97,
      116,
      101,
      116,
      101,
      109,
      112,
      111,
      114,
      97,
      114,
      121,
      102,
      105,
      99,
      116,
      105,
      111,
      110,
      97,
      108,
      65,
      102,
      116,
      101,
      114,
      32,
      116,
      104,
      101,
      101,
      113,
      117,
      97,
      116,
      105,
      111,
      110,
      115,
      100,
      111,
      119,
      110,
      108,
      111,
      97,
      100,
      46,
      114,
      101,
      103,
      117,
      108,
      97,
      114,
      108,
      121,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      101,
      114,
      97,
      98,
      111,
      118,
      101,
      32,
      116,
      104,
      101,
      108,
      105,
      110,
      107,
      101,
      100,
      32,
      116,
      111,
      112,
      104,
      101,
      110,
      111,
      109,
      101,
      110,
      97,
      112,
      101,
      114,
      105,
      111,
      100,
      32,
      111,
      102,
      116,
      111,
      111,
      108,
      116,
      105,
      112,
      34,
      62,
      115,
      117,
      98,
      115,
      116,
      97,
      110,
      99,
      101,
      97,
      117,
      116,
      111,
      109,
      97,
      116,
      105,
      99,
      97,
      115,
      112,
      101,
      99,
      116,
      32,
      111,
      102,
      65,
      109,
      111,
      110,
      103,
      32,
      116,
      104,
      101,
      99,
      111,
      110,
      110,
      101,
      99,
      116,
      101,
      100,
      101,
      115,
      116,
      105,
      109,
      97,
      116,
      101,
      115,
      65,
      105,
      114,
      32,
      70,
      111,
      114,
      99,
      101,
      115,
      121,
      115,
      116,
      101,
      109,
      32,
      111,
      102,
      111,
      98,
      106,
      101,
      99,
      116,
      105,
      118,
      101,
      105,
      109,
      109,
      101,
      100,
      105,
      97,
      116,
      101,
      109,
      97,
      107,
      105,
      110,
      103,
      32,
      105,
      116,
      112,
      97,
      105,
      110,
      116,
      105,
      110,
      103,
      115,
      99,
      111,
      110,
      113,
      117,
      101,
      114,
      101,
      100,
      97,
      114,
      101,
      32,
      115,
      116,
      105,
      108,
      108,
      112,
      114,
      111,
      99,
      101,
      100,
      117,
      114,
      101,
      103,
      114,
      111,
      119,
      116,
      104,
      32,
      111,
      102,
      104,
      101,
      97,
      100,
      101,
      100,
      32,
      98,
      121,
      69,
      117,
      114,
      111,
      112,
      101,
      97,
      110,
      32,
      100,
      105,
      118,
      105,
      115,
      105,
      111,
      110,
      115,
      109,
      111,
      108,
      101,
      99,
      117,
      108,
      101,
      115,
      102,
      114,
      97,
      110,
      99,
      104,
      105,
      115,
      101,
      105,
      110,
      116,
      101,
      110,
      116,
      105,
      111,
      110,
      97,
      116,
      116,
      114,
      97,
      99,
      116,
      101,
      100,
      99,
      104,
      105,
      108,
      100,
      104,
      111,
      111,
      100,
      97,
      108,
      115,
      111,
      32,
      117,
      115,
      101,
      100,
      100,
      101,
      100,
      105,
      99,
      97,
      116,
      101,
      100,
      115,
      105,
      110,
      103,
      97,
      112,
      111,
      114,
      101,
      100,
      101,
      103,
      114,
      101,
      101,
      32,
      111,
      102,
      102,
      97,
      116,
      104,
      101,
      114,
      32,
      111,
      102,
      99,
      111,
      110,
      102,
      108,
      105,
      99,
      116,
      115,
      60,
      47,
      97,
      62,
      60,
      47,
      112,
      62,
      10,
      99,
      97,
      109,
      101,
      32,
      102,
      114,
      111,
      109,
      119,
      101,
      114,
      101,
      32,
      117,
      115,
      101,
      100,
      110,
      111,
      116,
      101,
      32,
      116,
      104,
      97,
      116,
      114,
      101,
      99,
      101,
      105,
      118,
      105,
      110,
      103,
      69,
      120,
      101,
      99,
      117,
      116,
      105,
      118,
      101,
      101,
      118,
      101,
      110,
      32,
      109,
      111,
      114,
      101,
      97,
      99,
      99,
      101,
      115,
      115,
      32,
      116,
      111,
      99,
      111,
      109,
      109,
      97,
      110,
      100,
      101,
      114,
      80,
      111,
      108,
      105,
      116,
      105,
      99,
      97,
      108,
      109,
      117,
      115,
      105,
      99,
      105,
      97,
      110,
      115,
      100,
      101,
      108,
      105,
      99,
      105,
      111,
      117,
      115,
      112,
      114,
      105,
      115,
      111,
      110,
      101,
      114,
      115,
      97,
      100,
      118,
      101,
      110,
      116,
      32,
      111,
      102,
      85,
      84,
      70,
      45,
      56,
      34,
      32,
      47,
      62,
      60,
      33,
      91,
      67,
      68,
      65,
      84,
      65,
      91,
      34,
      62,
      67,
      111,
      110,
      116,
      97,
      99,
      116,
      83,
      111,
      117,
      116,
      104,
      101,
      114,
      110,
      32,
      98,
      103,
      99,
      111,
      108,
      111,
      114,
      61,
      34,
      115,
      101,
      114,
      105,
      101,
      115,
      32,
      111,
      102,
      46,
      32,
      73,
      116,
      32,
      119,
      97,
      115,
      32,
      105,
      110,
      32,
      69,
      117,
      114,
      111,
      112,
      101,
      112,
      101,
      114,
      109,
      105,
      116,
      116,
      101,
      100,
      118,
      97,
      108,
      105,
      100,
      97,
      116,
      101,
      46,
      97,
      112,
      112,
      101,
      97,
      114,
      105,
      110,
      103,
      111,
      102,
      102,
      105,
      99,
      105,
      97,
      108,
      115,
      115,
      101,
      114,
      105,
      111,
      117,
      115,
      108,
      121,
      45,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      105,
      110,
      105,
      116,
      105,
      97,
      116,
      101,
      100,
      101,
      120,
      116,
      101,
      110,
      100,
      105,
      110,
      103,
      108,
      111,
      110,
      103,
      45,
      116,
      101,
      114,
      109,
      105,
      110,
      102,
      108,
      97,
      116,
      105,
      111,
      110,
      115,
      117,
      99,
      104,
      32,
      116,
      104,
      97,
      116,
      103,
      101,
      116,
      67,
      111,
      111,
      107,
      105,
      101,
      109,
      97,
      114,
      107,
      101,
      100,
      32,
      98,
      121,
      60,
      47,
      98,
      117,
      116,
      116,
      111,
      110,
      62,
      105,
      109,
      112,
      108,
      101,
      109,
      101,
      110,
      116,
      98,
      117,
      116,
      32,
      105,
      116,
      32,
      105,
      115,
      105,
      110,
      99,
      114,
      101,
      97,
      115,
      101,
      115,
      100,
      111,
      119,
      110,
      32,
      116,
      104,
      101,
      32,
      114,
      101,
      113,
      117,
      105,
      114,
      105,
      110,
      103,
      100,
      101,
      112,
      101,
      110,
      100,
      101,
      110,
      116,
      45,
      45,
      62,
      10,
      60,
      33,
      45,
      45,
      32,
      105,
      110,
      116,
      101,
      114,
      118,
      105,
      101,
      119,
      87,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      32,
      99,
      111,
      112,
      105,
      101,
      115,
      32,
      111,
      102,
      99,
      111,
      110,
      115,
      101,
      110,
      115,
      117,
      115,
      119,
      97,
      115,
      32,
      98,
      117,
      105,
      108,
      116,
      86,
      101,
      110,
      101,
      122,
      117,
      101,
      108,
      97,
      40,
      102,
      111,
      114,
      109,
      101,
      114,
      108,
      121,
      116,
      104,
      101,
      32,
      115,
      116,
      97,
      116,
      101,
      112,
      101,
      114,
      115,
      111,
      110,
      110,
      101,
      108,
      115,
      116,
      114,
      97,
      116,
      101,
      103,
      105,
      99,
      102,
      97,
      118,
      111,
      117,
      114,
      32,
      111,
      102,
      105,
      110,
      118,
      101,
      110,
      116,
      105,
      111,
      110,
      87,
      105,
      107,
      105,
      112,
      101,
      100,
      105,
      97,
      99,
      111,
      110,
      116,
      105,
      110,
      101,
      110,
      116,
      118,
      105,
      114,
      116,
      117,
      97,
      108,
      108,
      121,
      119,
      104,
      105,
      99,
      104,
      32,
      119,
      97,
      115,
      112,
      114,
      105,
      110,
      99,
      105,
      112,
      108,
      101,
      67,
      111,
      109,
      112,
      108,
      101,
      116,
      101,
      32,
      105,
      100,
      101,
      110,
      116,
      105,
      99,
      97,
      108,
      115,
      104,
      111,
      119,
      32,
      116,
      104,
      97,
      116,
      112,
      114,
      105,
      109,
      105,
      116,
      105,
      118,
      101,
      97,
      119,
      97,
      121,
      32,
      102,
      114,
      111,
      109,
      109,
      111,
      108,
      101,
      99,
      117,
      108,
      97,
      114,
      112,
      114,
      101,
      99,
      105,
      115,
      101,
      108,
      121,
      100,
      105,
      115,
      115,
      111,
      108,
      118,
      101,
      100,
      85,
      110,
      100,
      101,
      114,
      32,
      116,
      104,
      101,
      118,
      101,
      114,
      115,
      105,
      111,
      110,
      61,
      34,
      62,
      38,
      110,
      98,
      115,
      112,
      59,
      60,
      47,
      73,
      116,
      32,
      105,
      115,
      32,
      116,
      104,
      101,
      32,
      84,
      104,
      105,
      115,
      32,
      105,
      115,
      32,
      119,
      105,
      108,
      108,
      32,
      104,
      97,
      118,
      101,
      111,
      114,
      103,
      97,
      110,
      105,
      115,
      109,
      115,
      115,
      111,
      109,
      101,
      32,
      116,
      105,
      109,
      101,
      70,
      114,
      105,
      101,
      100,
      114,
      105,
      99,
      104,
      119,
      97,
      115,
      32,
      102,
      105,
      114,
      115,
      116,
      116,
      104,
      101,
      32,
      111,
      110,
      108,
      121,
      32,
      102,
      97,
      99,
      116,
      32,
      116,
      104,
      97,
      116,
      102,
      111,
      114,
      109,
      32,
      105,
      100,
      61,
      34,
      112,
      114,
      101,
      99,
      101,
      100,
      105,
      110,
      103,
      84,
      101,
      99,
      104,
      110,
      105,
      99,
      97,
      108,
      112,
      104,
      121,
      115,
      105,
      99,
      105,
      115,
      116,
      111,
      99,
      99,
      117,
      114,
      115,
      32,
      105,
      110,
      110,
      97,
      118,
      105,
      103,
      97,
      116,
      111,
      114,
      115,
      101,
      99,
      116,
      105,
      111,
      110,
      34,
      62,
      115,
      112,
      97,
      110,
      32,
      105,
      100,
      61,
      34,
      115,
      111,
      117,
      103,
      104,
      116,
      32,
      116,
      111,
      98,
      101,
      108,
      111,
      119,
      32,
      116,
      104,
      101,
      115,
      117,
      114,
      118,
      105,
      118,
      105,
      110,
      103,
      125,
      60,
      47,
      115,
      116,
      121,
      108,
      101,
      62,
      104,
      105,
      115,
      32,
      100,
      101,
      97,
      116,
      104,
      97,
      115,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      99,
      97,
      117,
      115,
      101,
      100,
      32,
      98,
      121,
      112,
      97,
      114,
      116,
      105,
      97,
      108,
      108,
      121,
      101,
      120,
      105,
      115,
      116,
      105,
      110,
      103,
      32,
      117,
      115,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      119,
      97,
      115,
      32,
      103,
      105,
      118,
      101,
      110,
      97,
      32,
      108,
      105,
      115,
      116,
      32,
      111,
      102,
      108,
      101,
      118,
      101,
      108,
      115,
      32,
      111,
      102,
      110,
      111,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      79,
      102,
      102,
      105,
      99,
      105,
      97,
      108,
      32,
      100,
      105,
      115,
      109,
      105,
      115,
      115,
      101,
      100,
      115,
      99,
      105,
      101,
      110,
      116,
      105,
      115,
      116,
      114,
      101,
      115,
      101,
      109,
      98,
      108,
      101,
      115,
      100,
      117,
      112,
      108,
      105,
      99,
      97,
      116,
      101,
      101,
      120,
      112,
      108,
      111,
      115,
      105,
      118,
      101,
      114,
      101,
      99,
      111,
      118,
      101,
      114,
      101,
      100,
      97,
      108,
      108,
      32,
      111,
      116,
      104,
      101,
      114,
      103,
      97,
      108,
      108,
      101,
      114,
      105,
      101,
      115,
      123,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      58,
      112,
      101,
      111,
      112,
      108,
      101,
      32,
      111,
      102,
      114,
      101,
      103,
      105,
      111,
      110,
      32,
      111,
      102,
      97,
      100,
      100,
      114,
      101,
      115,
      115,
      101,
      115,
      97,
      115,
      115,
      111,
      99,
      105,
      97,
      116,
      101,
      105,
      109,
      103,
      32,
      97,
      108,
      116,
      61,
      34,
      105,
      110,
      32,
      109,
      111,
      100,
      101,
      114,
      110,
      115,
      104,
      111,
      117,
      108,
      100,
      32,
      98,
      101,
      109,
      101,
      116,
      104,
      111,
      100,
      32,
      111,
      102,
      114,
      101,
      112,
      111,
      114,
      116,
      105,
      110,
      103,
      116,
      105,
      109,
      101,
      115,
      116,
      97,
      109,
      112,
      110,
      101,
      101,
      100,
      101,
      100,
      32,
      116,
      111,
      116,
      104,
      101,
      32,
      71,
      114,
      101,
      97,
      116,
      114,
      101,
      103,
      97,
      114,
      100,
      105,
      110,
      103,
      115,
      101,
      101,
      109,
      101,
      100,
      32,
      116,
      111,
      118,
      105,
      101,
      119,
      101,
      100,
      32,
      97,
      115,
      105,
      109,
      112,
      97,
      99,
      116,
      32,
      111,
      110,
      105,
      100,
      101,
      97,
      32,
      116,
      104,
      97,
      116,
      116,
      104,
      101,
      32,
      87,
      111,
      114,
      108,
      100,
      104,
      101,
      105,
      103,
      104,
      116,
      32,
      111,
      102,
      101,
      120,
      112,
      97,
      110,
      100,
      105,
      110,
      103,
      84,
      104,
      101,
      115,
      101,
      32,
      97,
      114,
      101,
      99,
      117,
      114,
      114,
      101,
      110,
      116,
      34,
      62,
      99,
      97,
      114,
      101,
      102,
      117,
      108,
      108,
      121,
      109,
      97,
      105,
      110,
      116,
      97,
      105,
      110,
      115,
      99,
      104,
      97,
      114,
      103,
      101,
      32,
      111,
      102,
      67,
      108,
      97,
      115,
      115,
      105,
      99,
      97,
      108,
      97,
      100,
      100,
      114,
      101,
      115,
      115,
      101,
      100,
      112,
      114,
      101,
      100,
      105,
      99,
      116,
      101,
      100,
      111,
      119,
      110,
      101,
      114,
      115,
      104,
      105,
      112,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      114,
      105,
      103,
      104,
      116,
      34,
      62,
      13,
      10,
      114,
      101,
      115,
      105,
      100,
      101,
      110,
      99,
      101,
      108,
      101,
      97,
      118,
      101,
      32,
      116,
      104,
      101,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      34,
      62,
      97,
      114,
      101,
      32,
      111,
      102,
      116,
      101,
      110,
      32,
      32,
      125,
      41,
      40,
      41,
      59,
      13,
      10,
      112,
      114,
      111,
      98,
      97,
      98,
      108,
      121,
      32,
      80,
      114,
      111,
      102,
      101,
      115,
      115,
      111,
      114,
      45,
      98,
      117,
      116,
      116,
      111,
      110,
      34,
      32,
      114,
      101,
      115,
      112,
      111,
      110,
      100,
      101,
      100,
      115,
      97,
      121,
      115,
      32,
      116,
      104,
      97,
      116,
      104,
      97,
      100,
      32,
      116,
      111,
      32,
      98,
      101,
      112,
      108,
      97,
      99,
      101,
      100,
      32,
      105,
      110,
      72,
      117,
      110,
      103,
      97,
      114,
      105,
      97,
      110,
      115,
      116,
      97,
      116,
      117,
      115,
      32,
      111,
      102,
      115,
      101,
      114,
      118,
      101,
      115,
      32,
      97,
      115,
      85,
      110,
      105,
      118,
      101,
      114,
      115,
      97,
      108,
      101,
      120,
      101,
      99,
      117,
      116,
      105,
      111,
      110,
      97,
      103,
      103,
      114,
      101,
      103,
      97,
      116,
      101,
      102,
      111,
      114,
      32,
      119,
      104,
      105,
      99,
      104,
      105,
      110,
      102,
      101,
      99,
      116,
      105,
      111,
      110,
      97,
      103,
      114,
      101,
      101,
      100,
      32,
      116,
      111,
      104,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      112,
      111,
      112,
      117,
      108,
      97,
      114,
      34,
      62,
      112,
      108,
      97,
      99,
      101,
      100,
      32,
      111,
      110,
      99,
      111,
      110,
      115,
      116,
      114,
      117,
      99,
      116,
      101,
      108,
      101,
      99,
      116,
      111,
      114,
      97,
      108,
      115,
      121,
      109,
      98,
      111,
      108,
      32,
      111,
      102,
      105,
      110,
      99,
      108,
      117,
      100,
      105,
      110,
      103,
      114,
      101,
      116,
      117,
      114,
      110,
      32,
      116,
      111,
      97,
      114,
      99,
      104,
      105,
      116,
      101,
      99,
      116,
      67,
      104,
      114,
      105,
      115,
      116,
      105,
      97,
      110,
      112,
      114,
      101,
      118,
      105,
      111,
      117,
      115,
      32,
      108,
      105,
      118,
      105,
      110,
      103,
      32,
      105,
      110,
      101,
      97,
      115,
      105,
      101,
      114,
      32,
      116,
      111,
      112,
      114,
      111,
      102,
      101,
      115,
      115,
      111,
      114,
      10,
      38,
      108,
      116,
      59,
      33,
      45,
      45,
      32,
      101,
      102,
      102,
      101,
      99,
      116,
      32,
      111,
      102,
      97,
      110,
      97,
      108,
      121,
      116,
      105,
      99,
      115,
      119,
      97,
      115,
      32,
      116,
      97,
      107,
      101,
      110,
      119,
      104,
      101,
      114,
      101,
      32,
      116,
      104,
      101,
      116,
      111,
      111,
      107,
      32,
      111,
      118,
      101,
      114,
      98,
      101,
      108,
      105,
      101,
      102,
      32,
      105,
      110,
      65,
      102,
      114,
      105,
      107,
      97,
      97,
      110,
      115,
      97,
      115,
      32,
      102,
      97,
      114,
      32,
      97,
      115,
      112,
      114,
      101,
      118,
      101,
      110,
      116,
      101,
      100,
      119,
      111,
      114,
      107,
      32,
      119,
      105,
      116,
      104,
      97,
      32,
      115,
      112,
      101,
      99,
      105,
      97,
      108,
      60,
      102,
      105,
      101,
      108,
      100,
      115,
      101,
      116,
      67,
      104,
      114,
      105,
      115,
      116,
      109,
      97,
      115,
      82,
      101,
      116,
      114,
      105,
      101,
      118,
      101,
      100,
      10,
      10,
      73,
      110,
      32,
      116,
      104,
      101,
      32,
      98,
      97,
      99,
      107,
      32,
      105,
      110,
      116,
      111,
      110,
      111,
      114,
      116,
      104,
      101,
      97,
      115,
      116,
      109,
      97,
      103,
      97,
      122,
      105,
      110,
      101,
      115,
      62,
      60,
      115,
      116,
      114,
      111,
      110,
      103,
      62,
      99,
      111,
      109,
      109,
      105,
      116,
      116,
      101,
      101,
      103,
      111,
      118,
      101,
      114,
      110,
      105,
      110,
      103,
      103,
      114,
      111,
      117,
      112,
      115,
      32,
      111,
      102,
      115,
      116,
      111,
      114,
      101,
      100,
      32,
      105,
      110,
      101,
      115,
      116,
      97,
      98,
      108,
      105,
      115,
      104,
      97,
      32,
      103,
      101,
      110,
      101,
      114,
      97,
      108,
      105,
      116,
      115,
      32,
      102,
      105,
      114,
      115,
      116,
      116,
      104,
      101,
      105,
      114,
      32,
      111,
      119,
      110,
      112,
      111,
      112,
      117,
      108,
      97,
      116,
      101,
      100,
      97,
      110,
      32,
      111,
      98,
      106,
      101,
      99,
      116,
      67,
      97,
      114,
      105,
      98,
      98,
      101,
      97,
      110,
      97,
      108,
      108,
      111,
      119,
      32,
      116,
      104,
      101,
      100,
      105,
      115,
      116,
      114,
      105,
      99,
      116,
      115,
      119,
      105,
      115,
      99,
      111,
      110,
      115,
      105,
      110,
      108,
      111,
      99,
      97,
      116,
      105,
      111,
      110,
      46,
      59,
      32,
      119,
      105,
      100,
      116,
      104,
      58,
      32,
      105,
      110,
      104,
      97,
      98,
      105,
      116,
      101,
      100,
      83,
      111,
      99,
      105,
      97,
      108,
      105,
      115,
      116,
      74,
      97,
      110,
      117,
      97,
      114,
      121,
      32,
      49,
      60,
      47,
      102,
      111,
      111,
      116,
      101,
      114,
      62,
      115,
      105,
      109,
      105,
      108,
      97,
      114,
      108,
      121,
      99,
      104,
      111,
      105,
      99,
      101,
      32,
      111,
      102,
      116,
      104,
      101,
      32,
      115,
      97,
      109,
      101,
      32,
      115,
      112,
      101,
      99,
      105,
      102,
      105,
      99,
      32,
      98,
      117,
      115,
      105,
      110,
      101,
      115,
      115,
      32,
      84,
      104,
      101,
      32,
      102,
      105,
      114,
      115,
      116,
      46,
      108,
      101,
      110,
      103,
      116,
      104,
      59,
      32,
      100,
      101,
      115,
      105,
      114,
      101,
      32,
      116,
      111,
      100,
      101,
      97,
      108,
      32,
      119,
      105,
      116,
      104,
      115,
      105,
      110,
      99,
      101,
      32,
      116,
      104,
      101,
      117,
      115,
      101,
      114,
      65,
      103,
      101,
      110,
      116,
      99,
      111,
      110,
      99,
      101,
      105,
      118,
      101,
      100,
      105,
      110,
      100,
      101,
      120,
      46,
      112,
      104,
      112,
      97,
      115,
      32,
      38,
      113,
      117,
      111,
      116,
      59,
      101,
      110,
      103,
      97,
      103,
      101,
      32,
      105,
      110,
      114,
      101,
      99,
      101,
      110,
      116,
      108,
      121,
      44,
      102,
      101,
      119,
      32,
      121,
      101,
      97,
      114,
      115,
      119,
      101,
      114,
      101,
      32,
      97,
      108,
      115,
      111,
      10,
      60,
      104,
      101,
      97,
      100,
      62,
      10,
      60,
      101,
      100,
      105,
      116,
      101,
      100,
      32,
      98,
      121,
      97,
      114,
      101,
      32,
      107,
      110,
      111,
      119,
      110,
      99,
      105,
      116,
      105,
      101,
      115,
      32,
      105,
      110,
      97,
      99,
      99,
      101,
      115,
      115,
      107,
      101,
      121,
      99,
      111,
      110,
      100,
      101,
      109,
      110,
      101,
      100,
      97,
      108,
      115,
      111,
      32,
      104,
      97,
      118,
      101,
      115,
      101,
      114,
      118,
      105,
      99,
      101,
      115,
      44,
      102,
      97,
      109,
      105,
      108,
      121,
      32,
      111,
      102,
      83,
      99,
      104,
      111,
      111,
      108,
      32,
      111,
      102,
      99,
      111,
      110,
      118,
      101,
      114,
      116,
      101,
      100,
      110,
      97,
      116,
      117,
      114,
      101,
      32,
      111,
      102,
      32,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      109,
      105,
      110,
      105,
      115,
      116,
      101,
      114,
      115,
      60,
      47,
      111,
      98,
      106,
      101,
      99,
      116,
      62,
      116,
      104,
      101,
      114,
      101,
      32,
      105,
      115,
      32,
      97,
      32,
      112,
      111,
      112,
      117,
      108,
      97,
      114,
      115,
      101,
      113,
      117,
      101,
      110,
      99,
      101,
      115,
      97,
      100,
      118,
      111,
      99,
      97,
      116,
      101,
      100,
      84,
      104,
      101,
      121,
      32,
      119,
      101,
      114,
      101,
      97,
      110,
      121,
      32,
      111,
      116,
      104,
      101,
      114,
      108,
      111,
      99,
      97,
      116,
      105,
      111,
      110,
      61,
      101,
      110,
      116,
      101,
      114,
      32,
      116,
      104,
      101,
      109,
      117,
      99,
      104,
      32,
      109,
      111,
      114,
      101,
      114,
      101,
      102,
      108,
      101,
      99,
      116,
      101,
      100,
      119,
      97,
      115,
      32,
      110,
      97,
      109,
      101,
      100,
      111,
      114,
      105,
      103,
      105,
      110,
      97,
      108,
      32,
      97,
      32,
      116,
      121,
      112,
      105,
      99,
      97,
      108,
      119,
      104,
      101,
      110,
      32,
      116,
      104,
      101,
      121,
      101,
      110,
      103,
      105,
      110,
      101,
      101,
      114,
      115,
      99,
      111,
      117,
      108,
      100,
      32,
      110,
      111,
      116,
      114,
      101,
      115,
      105,
      100,
      101,
      110,
      116,
      115,
      119,
      101,
      100,
      110,
      101,
      115,
      100,
      97,
      121,
      116,
      104,
      101,
      32,
      116,
      104,
      105,
      114,
      100,
      32,
      112,
      114,
      111,
      100,
      117,
      99,
      116,
      115,
      74,
      97,
      110,
      117,
      97,
      114,
      121,
      32,
      50,
      119,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      121,
      97,
      32,
      99,
      101,
      114,
      116,
      97,
      105,
      110,
      114,
      101,
      97,
      99,
      116,
      105,
      111,
      110,
      115,
      112,
      114,
      111,
      99,
      101,
      115,
      115,
      111,
      114,
      97,
      102,
      116,
      101,
      114,
      32,
      104,
      105,
      115,
      116,
      104,
      101,
      32,
      108,
      97,
      115,
      116,
      32,
      99,
      111,
      110,
      116,
      97,
      105,
      110,
      101,
      100,
      34,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      47,
      97,
      62,
      60,
      47,
      116,
      100,
      62,
      100,
      101,
      112,
      101,
      110,
      100,
      32,
      111,
      110,
      115,
      101,
      97,
      114,
      99,
      104,
      34,
      62,
      10,
      112,
      105,
      101,
      99,
      101,
      115,
      32,
      111,
      102,
      99,
      111,
      109,
      112,
      101,
      116,
      105,
      110,
      103,
      82,
      101,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      116,
      101,
      110,
      110,
      101,
      115,
      115,
      101,
      101,
      119,
      104,
      105,
      99,
      104,
      32,
      104,
      97,
      115,
      32,
      118,
      101,
      114,
      115,
      105,
      111,
      110,
      61,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      32,
      60,
      60,
      47,
      104,
      101,
      97,
      100,
      101,
      114,
      62,
      103,
      105,
      118,
      101,
      115,
      32,
      116,
      104,
      101,
      104,
      105,
      115,
      116,
      111,
      114,
      105,
      97,
      110,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      34,
      62,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      58,
      48,
      118,
      105,
      101,
      119,
      32,
      116,
      104,
      97,
      116,
      116,
      111,
      103,
      101,
      116,
      104,
      101,
      114,
      44,
      116,
      104,
      101,
      32,
      109,
      111,
      115,
      116,
      32,
      119,
      97,
      115,
      32,
      102,
      111,
      117,
      110,
      100,
      115,
      117,
      98,
      115,
      101,
      116,
      32,
      111,
      102,
      97,
      116,
      116,
      97,
      99,
      107,
      32,
      111,
      110,
      99,
      104,
      105,
      108,
      100,
      114,
      101,
      110,
      44,
      112,
      111,
      105,
      110,
      116,
      115,
      32,
      111,
      102,
      112,
      101,
      114,
      115,
      111,
      110,
      97,
      108,
      32,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      58,
      97,
      108,
      108,
      101,
      103,
      101,
      100,
      108,
      121,
      67,
      108,
      101,
      118,
      101,
      108,
      97,
      110,
      100,
      119,
      97,
      115,
      32,
      108,
      97,
      116,
      101,
      114,
      97,
      110,
      100,
      32,
      97,
      102,
      116,
      101,
      114,
      97,
      114,
      101,
      32,
      103,
      105,
      118,
      101,
      110,
      119,
      97,
      115,
      32,
      115,
      116,
      105,
      108,
      108,
      115,
      99,
      114,
      111,
      108,
      108,
      105,
      110,
      103,
      100,
      101,
      115,
      105,
      103,
      110,
      32,
      111,
      102,
      109,
      97,
      107,
      101,
      115,
      32,
      116,
      104,
      101,
      109,
      117,
      99,
      104,
      32,
      108,
      101,
      115,
      115,
      65,
      109,
      101,
      114,
      105,
      99,
      97,
      110,
      115,
      46,
      10,
      10,
      65,
      102,
      116,
      101,
      114,
      32,
      44,
      32,
      98,
      117,
      116,
      32,
      116,
      104,
      101,
      77,
      117,
      115,
      101,
      117,
      109,
      32,
      111,
      102,
      108,
      111,
      117,
      105,
      115,
      105,
      97,
      110,
      97,
      40,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      109,
      105,
      110,
      110,
      101,
      115,
      111,
      116,
      97,
      112,
      97,
      114,
      116,
      105,
      99,
      108,
      101,
      115,
      97,
      32,
      112,
      114,
      111,
      99,
      101,
      115,
      115,
      68,
      111,
      109,
      105,
      110,
      105,
      99,
      97,
      110,
      118,
      111,
      108,
      117,
      109,
      101,
      32,
      111,
      102,
      114,
      101,
      116,
      117,
      114,
      110,
      105,
      110,
      103,
      100,
      101,
      102,
      101,
      110,
      115,
      105,
      118,
      101,
      48,
      48,
      112,
      120,
      124,
      114,
      105,
      103,
      104,
      109,
      97,
      100,
      101,
      32,
      102,
      114,
      111,
      109,
      109,
      111,
      117,
      115,
      101,
      111,
      118,
      101,
      114,
      34,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      115,
      116,
      97,
      116,
      101,
      115,
      32,
      111,
      102,
      40,
      119,
      104,
      105,
      99,
      104,
      32,
      105,
      115,
      99,
      111,
      110,
      116,
      105,
      110,
      117,
      101,
      115,
      70,
      114,
      97,
      110,
      99,
      105,
      115,
      99,
      111,
      98,
      117,
      105,
      108,
      100,
      105,
      110,
      103,
      32,
      119,
      105,
      116,
      104,
      111,
      117,
      116,
      32,
      97,
      119,
      105,
      116,
      104,
      32,
      115,
      111,
      109,
      101,
      119,
      104,
      111,
      32,
      119,
      111,
      117,
      108,
      100,
      97,
      32,
      102,
      111,
      114,
      109,
      32,
      111,
      102,
      97,
      32,
      112,
      97,
      114,
      116,
      32,
      111,
      102,
      98,
      101,
      102,
      111,
      114,
      101,
      32,
      105,
      116,
      107,
      110,
      111,
      119,
      110,
      32,
      97,
      115,
      32,
      32,
      83,
      101,
      114,
      118,
      105,
      99,
      101,
      115,
      108,
      111,
      99,
      97,
      116,
      105,
      111,
      110,
      32,
      97,
      110,
      100,
      32,
      111,
      102,
      116,
      101,
      110,
      109,
      101,
      97,
      115,
      117,
      114,
      105,
      110,
      103,
      97,
      110,
      100,
      32,
      105,
      116,
      32,
      105,
      115,
      112,
      97,
      112,
      101,
      114,
      98,
      97,
      99,
      107,
      118,
      97,
      108,
      117,
      101,
      115,
      32,
      111,
      102,
      13,
      10,
      60,
      116,
      105,
      116,
      108,
      101,
      62,
      61,
      32,
      119,
      105,
      110,
      100,
      111,
      119,
      46,
      100,
      101,
      116,
      101,
      114,
      109,
      105,
      110,
      101,
      101,
      114,
      38,
      113,
      117,
      111,
      116,
      59,
      32,
      112,
      108,
      97,
      121,
      101,
      100,
      32,
      98,
      121,
      97,
      110,
      100,
      32,
      101,
      97,
      114,
      108,
      121,
      60,
      47,
      99,
      101,
      110,
      116,
      101,
      114,
      62,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      105,
      115,
      116,
      104,
      101,
      32,
      116,
      104,
      114,
      101,
      101,
      112,
      111,
      119,
      101,
      114,
      32,
      97,
      110,
      100,
      111,
      102,
      32,
      38,
      113,
      117,
      111,
      116,
      59,
      105,
      110,
      110,
      101,
      114,
      72,
      84,
      77,
      76,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      121,
      58,
      105,
      110,
      108,
      105,
      110,
      101,
      59,
      67,
      104,
      117,
      114,
      99,
      104,
      32,
      111,
      102,
      116,
      104,
      101,
      32,
      101,
      118,
      101,
      110,
      116,
      118,
      101,
      114,
      121,
      32,
      104,
      105,
      103,
      104,
      111,
      102,
      102,
      105,
      99,
      105,
      97,
      108,
      32,
      45,
      104,
      101,
      105,
      103,
      104,
      116,
      58,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      47,
      99,
      103,
      105,
      45,
      98,
      105,
      110,
      47,
      116,
      111,
      32,
      99,
      114,
      101,
      97,
      116,
      101,
      97,
      102,
      114,
      105,
      107,
      97,
      97,
      110,
      115,
      101,
      115,
      112,
      101,
      114,
      97,
      110,
      116,
      111,
      102,
      114,
      97,
      110,
      195,
      167,
      97,
      105,
      115,
      108,
      97,
      116,
      118,
      105,
      101,
      197,
      161,
      117,
      108,
      105,
      101,
      116,
      117,
      118,
      105,
      197,
      179,
      196,
      140,
      101,
      197,
      161,
      116,
      105,
      110,
      97,
      196,
      141,
      101,
      197,
      161,
      116,
      105,
      110,
      97,
      224,
      185,
      132,
      224,
      184,
      151,
      224,
      184,
      162,
      230,
      151,
      165,
      230,
      156,
      172,
      232,
      170,
      158,
      231,
      174,
      128,
      228,
      189,
      147,
      229,
      173,
      151,
      231,
      185,
      129,
      233,
      171,
      148,
      229,
      173,
      151,
      237,
      149,
      156,
      234,
      181,
      173,
      236,
      150,
      180,
      228,
      184,
      186,
      228,
      187,
      128,
      228,
      185,
      136,
      232,
      174,
      161,
      231,
      174,
      151,
      230,
      156,
      186,
      231,
      172,
      148,
      232,
      174,
      176,
      230,
      156,
      172,
      232,
      168,
      142,
      232,
      171,
      150,
      229,
      141,
      128,
      230,
      156,
      141,
      229,
      138,
      161,
      229,
      153,
      168,
      228,
      186,
      146,
      232,
      129,
      148,
      231,
      189,
      145,
      230,
      136,
      191,
      229,
      156,
      176,
      228,
      186,
      167,
      228,
      191,
      177,
      228,
      185,
      144,
      233,
      131,
      168,
      229,
      135,
      186,
      231,
      137,
      136,
      231,
      164,
      190,
      230,
      142,
      146,
      232,
      161,
      140,
      230,
      166,
      156,
      233,
      131,
      168,
      232,
      144,
      189,
      230,
      160,
      188,
      232,
      191,
      155,
      228,
      184,
      128,
      230,
      173,
      165,
      230,
      148,
      175,
      228,
      187,
      152,
      229,
      174,
      157,
      233,
      170,
      140,
      232,
      175,
      129,
      231,
      160,
      129,
      229,
      167,
      148,
      229,
      145,
      152,
      228,
      188,
      154,
      230,
      149,
      176,
      230,
      141,
      174,
      229,
      186,
      147,
      230,
      182,
      136,
      232,
      180,
      185,
      232,
      128,
      133,
      229,
      138,
      158,
      229,
      133,
      172,
      229,
      174,
      164,
      232,
      174,
      168,
      232,
      174,
      186,
      229,
      140,
      186,
      230,
      183,
      177,
      229,
      156,
      179,
      229,
      184,
      130,
      230,
      146,
      173,
      230,
      148,
      190,
      229,
      153,
      168,
      229,
      140,
      151,
      228,
      186,
      172,
      229,
      184,
      130,
      229,
      164,
      167,
      229,
      173,
      166,
      231,
      148,
      159,
      232,
      182,
      138,
      230,
      157,
      165,
      232,
      182,
      138,
      231,
      174,
      161,
      231,
      144,
      134,
      229,
      145,
      152,
      228,
      191,
      161,
      230,
      129,
      175,
      231,
      189,
      145,
      115,
      101,
      114,
      118,
      105,
      99,
      105,
      111,
      115,
      97,
      114,
      116,
      195,
      173,
      99,
      117,
      108,
      111,
      97,
      114,
      103,
      101,
      110,
      116,
      105,
      110,
      97,
      98,
      97,
      114,
      99,
      101,
      108,
      111,
      110,
      97,
      99,
      117,
      97,
      108,
      113,
      117,
      105,
      101,
      114,
      112,
      117,
      98,
      108,
      105,
      99,
      97,
      100,
      111,
      112,
      114,
      111,
      100,
      117,
      99,
      116,
      111,
      115,
      112,
      111,
      108,
      195,
      173,
      116,
      105,
      99,
      97,
      114,
      101,
      115,
      112,
      117,
      101,
      115,
      116,
      97,
      119,
      105,
      107,
      105,
      112,
      101,
      100,
      105,
      97,
      115,
      105,
      103,
      117,
      105,
      101,
      110,
      116,
      101,
      98,
      195,
      186,
      115,
      113,
      117,
      101,
      100,
      97,
      99,
      111,
      109,
      117,
      110,
      105,
      100,
      97,
      100,
      115,
      101,
      103,
      117,
      114,
      105,
      100,
      97,
      100,
      112,
      114,
      105,
      110,
      99,
      105,
      112,
      97,
      108,
      112,
      114,
      101,
      103,
      117,
      110,
      116,
      97,
      115,
      99,
      111,
      110,
      116,
      101,
      110,
      105,
      100,
      111,
      114,
      101,
      115,
      112,
      111,
      110,
      100,
      101,
      114,
      118,
      101,
      110,
      101,
      122,
      117,
      101,
      108,
      97,
      112,
      114,
      111,
      98,
      108,
      101,
      109,
      97,
      115,
      100,
      105,
      99,
      105,
      101,
      109,
      98,
      114,
      101,
      114,
      101,
      108,
      97,
      99,
      105,
      195,
      179,
      110,
      110,
      111,
      118,
      105,
      101,
      109,
      98,
      114,
      101,
      115,
      105,
      109,
      105,
      108,
      97,
      114,
      101,
      115,
      112,
      114,
      111,
      121,
      101,
      99,
      116,
      111,
      115,
      112,
      114,
      111,
      103,
      114,
      97,
      109,
      97,
      115,
      105,
      110,
      115,
      116,
      105,
      116,
      117,
      116,
      111,
      97,
      99,
      116,
      105,
      118,
      105,
      100,
      97,
      100,
      101,
      110,
      99,
      117,
      101,
      110,
      116,
      114,
      97,
      101,
      99,
      111,
      110,
      111,
      109,
      195,
      173,
      97,
      105,
      109,
      195,
      161,
      103,
      101,
      110,
      101,
      115,
      99,
      111,
      110,
      116,
      97,
      99,
      116,
      97,
      114,
      100,
      101,
      115,
      99,
      97,
      114,
      103,
      97,
      114,
      110,
      101,
      99,
      101,
      115,
      97,
      114,
      105,
      111,
      97,
      116,
      101,
      110,
      99,
      105,
      195,
      179,
      110,
      116,
      101,
      108,
      195,
      169,
      102,
      111,
      110,
      111,
      99,
      111,
      109,
      105,
      115,
      105,
      195,
      179,
      110,
      99,
      97,
      110,
      99,
      105,
      111,
      110,
      101,
      115,
      99,
      97,
      112,
      97,
      99,
      105,
      100,
      97,
      100,
      101,
      110,
      99,
      111,
      110,
      116,
      114,
      97,
      114,
      97,
      110,
      195,
      161,
      108,
      105,
      115,
      105,
      115,
      102,
      97,
      118,
      111,
      114,
      105,
      116,
      111,
      115,
      116,
      195,
      169,
      114,
      109,
      105,
      110,
      111,
      115,
      112,
      114,
      111,
      118,
      105,
      110,
      99,
      105,
      97,
      101,
      116,
      105,
      113,
      117,
      101,
      116,
      97,
      115,
      101,
      108,
      101,
      109,
      101,
      110,
      116,
      111,
      115,
      102,
      117,
      110,
      99,
      105,
      111,
      110,
      101,
      115,
      114,
      101,
      115,
      117,
      108,
      116,
      97,
      100,
      111,
      99,
      97,
      114,
      195,
      161,
      99,
      116,
      101,
      114,
      112,
      114,
      111,
      112,
      105,
      101,
      100,
      97,
      100,
      112,
      114,
      105,
      110,
      99,
      105,
      112,
      105,
      111,
      110,
      101,
      99,
      101,
      115,
      105,
      100,
      97,
      100,
      109,
      117,
      110,
      105,
      99,
      105,
      112,
      97,
      108,
      99,
      114,
      101,
      97,
      99,
      105,
      195,
      179,
      110,
      100,
      101,
      115,
      99,
      97,
      114,
      103,
      97,
      115,
      112,
      114,
      101,
      115,
      101,
      110,
      99,
      105,
      97,
      99,
      111,
      109,
      101,
      114,
      99,
      105,
      97,
      108,
      111,
      112,
      105,
      110,
      105,
      111,
      110,
      101,
      115,
      101,
      106,
      101,
      114,
      99,
      105,
      99,
      105,
      111,
      101,
      100,
      105,
      116,
      111,
      114,
      105,
      97,
      108,
      115,
      97,
      108,
      97,
      109,
      97,
      110,
      99,
      97,
      103,
      111,
      110,
      122,
      195,
      161,
      108,
      101,
      122,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      111,
      112,
      101,
      108,
      195,
      173,
      99,
      117,
      108,
      97,
      114,
      101,
      99,
      105,
      101,
      110,
      116,
      101,
      115,
      103,
      101,
      110,
      101,
      114,
      97,
      108,
      101,
      115,
      116,
      97,
      114,
      114,
      97,
      103,
      111,
      110,
      97,
      112,
      114,
      195,
      161,
      99,
      116,
      105,
      99,
      97,
      110,
      111,
      118,
      101,
      100,
      97,
      100,
      101,
      115,
      112,
      114,
      111,
      112,
      117,
      101,
      115,
      116,
      97,
      112,
      97,
      99,
      105,
      101,
      110,
      116,
      101,
      115,
      116,
      195,
      169,
      99,
      110,
      105,
      99,
      97,
      115,
      111,
      98,
      106,
      101,
      116,
      105,
      118,
      111,
      115,
      99,
      111,
      110,
      116,
      97,
      99,
      116,
      111,
      115,
      224,
      164,
      174,
      224,
      165,
      135,
      224,
      164,
      130,
      224,
      164,
      178,
      224,
      164,
      191,
      224,
      164,
      143,
      224,
      164,
      185,
      224,
      165,
      136,
      224,
      164,
      130,
      224,
      164,
      151,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      164,
      190,
      224,
      164,
      165,
      224,
      164,
      143,
      224,
      164,
      181,
      224,
      164,
      130,
      224,
      164,
      176,
      224,
      164,
      185,
      224,
      165,
      135,
      224,
      164,
      149,
      224,
      165,
      139,
      224,
      164,
      136,
      224,
      164,
      149,
      224,
      165,
      129,
      224,
      164,
      155,
      224,
      164,
      176,
      224,
      164,
      185,
      224,
      164,
      190,
      224,
      164,
      172,
      224,
      164,
      190,
      224,
      164,
      166,
      224,
      164,
      149,
      224,
      164,
      185,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      164,
      173,
      224,
      165,
      128,
      224,
      164,
      185,
      224,
      165,
      129,
      224,
      164,
      143,
      224,
      164,
      176,
      224,
      164,
      185,
      224,
      165,
      128,
      224,
      164,
      174,
      224,
      165,
      136,
      224,
      164,
      130,
      224,
      164,
      166,
      224,
      164,
      191,
      224,
      164,
      168,
      224,
      164,
      172,
      224,
      164,
      190,
      224,
      164,
      164,
      100,
      105,
      112,
      108,
      111,
      100,
      111,
      99,
      115,
      224,
      164,
      184,
      224,
      164,
      174,
      224,
      164,
      175,
      224,
      164,
      176,
      224,
      165,
      130,
      224,
      164,
      170,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      174,
      224,
      164,
      170,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      171,
      224,
      164,
      191,
      224,
      164,
      176,
      224,
      164,
      148,
      224,
      164,
      184,
      224,
      164,
      164,
      224,
      164,
      164,
      224,
      164,
      176,
      224,
      164,
      185,
      224,
      164,
      178,
      224,
      165,
      139,
      224,
      164,
      151,
      224,
      164,
      185,
      224,
      165,
      129,
      224,
      164,
      134,
      224,
      164,
      172,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      166,
      224,
      165,
      135,
      224,
      164,
      182,
      224,
      164,
      185,
      224,
      165,
      129,
      224,
      164,
      136,
      224,
      164,
      150,
      224,
      165,
      135,
      224,
      164,
      178,
      224,
      164,
      175,
      224,
      164,
      166,
      224,
      164,
      191,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      174,
      224,
      164,
      181,
      224,
      165,
      135,
      224,
      164,
      172,
      224,
      164,
      164,
      224,
      165,
      128,
      224,
      164,
      168,
      224,
      164,
      172,
      224,
      165,
      128,
      224,
      164,
      154,
      224,
      164,
      174,
      224,
      165,
      140,
      224,
      164,
      164,
      224,
      164,
      184,
      224,
      164,
      190,
      224,
      164,
      178,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      150,
      224,
      164,
      156,
      224,
      165,
      137,
      224,
      164,
      172,
      224,
      164,
      174,
      224,
      164,
      166,
      224,
      164,
      166,
      224,
      164,
      164,
      224,
      164,
      165,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      164,
      185,
      224,
      165,
      128,
      224,
      164,
      182,
      224,
      164,
      185,
      224,
      164,
      176,
      224,
      164,
      133,
      224,
      164,
      178,
      224,
      164,
      151,
      224,
      164,
      149,
      224,
      164,
      173,
      224,
      165,
      128,
      224,
      164,
      168,
      224,
      164,
      151,
      224,
      164,
      176,
      224,
      164,
      170,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      164,
      224,
      164,
      149,
      224,
      164,
      191,
      224,
      164,
      143,
      224,
      164,
      137,
      224,
      164,
      184,
      224,
      165,
      135,
      224,
      164,
      151,
      224,
      164,
      175,
      224,
      165,
      128,
      224,
      164,
      185,
      224,
      165,
      130,
      224,
      164,
      129,
      224,
      164,
      134,
      224,
      164,
      151,
      224,
      165,
      135,
      224,
      164,
      159,
      224,
      165,
      128,
      224,
      164,
      174,
      224,
      164,
      150,
      224,
      165,
      139,
      224,
      164,
      156,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      133,
      224,
      164,
      173,
      224,
      165,
      128,
      224,
      164,
      151,
      224,
      164,
      175,
      224,
      165,
      135,
      224,
      164,
      164,
      224,
      165,
      129,
      224,
      164,
      174,
      224,
      164,
      181,
      224,
      165,
      139,
      224,
      164,
      159,
      224,
      164,
      166,
      224,
      165,
      135,
      224,
      164,
      130,
      224,
      164,
      133,
      224,
      164,
      151,
      224,
      164,
      176,
      224,
      164,
      144,
      224,
      164,
      184,
      224,
      165,
      135,
      224,
      164,
      174,
      224,
      165,
      135,
      224,
      164,
      178,
      224,
      164,
      178,
      224,
      164,
      151,
      224,
      164,
      190,
      224,
      164,
      185,
      224,
      164,
      190,
      224,
      164,
      178,
      224,
      164,
      138,
      224,
      164,
      170,
      224,
      164,
      176,
      224,
      164,
      154,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      144,
      224,
      164,
      184,
      224,
      164,
      190,
      224,
      164,
      166,
      224,
      165,
      135,
      224,
      164,
      176,
      224,
      164,
      156,
      224,
      164,
      191,
      224,
      164,
      184,
      224,
      164,
      166,
      224,
      164,
      191,
      224,
      164,
      178,
      224,
      164,
      172,
      224,
      164,
      130,
      224,
      164,
      166,
      224,
      164,
      172,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      185,
      224,
      165,
      130,
      224,
      164,
      130,
      224,
      164,
      178,
      224,
      164,
      190,
      224,
      164,
      150,
      224,
      164,
      156,
      224,
      165,
      128,
      224,
      164,
      164,
      224,
      164,
      172,
      224,
      164,
      159,
      224,
      164,
      168,
      224,
      164,
      174,
      224,
      164,
      191,
      224,
      164,
      178,
      224,
      164,
      135,
      224,
      164,
      184,
      224,
      165,
      135,
      224,
      164,
      134,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      168,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      149,
      224,
      165,
      129,
      224,
      164,
      178,
      224,
      164,
      178,
      224,
      165,
      137,
      224,
      164,
      151,
      224,
      164,
      173,
      224,
      164,
      190,
      224,
      164,
      151,
      224,
      164,
      176,
      224,
      165,
      135,
      224,
      164,
      178,
      224,
      164,
      156,
      224,
      164,
      151,
      224,
      164,
      185,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      174,
      224,
      164,
      178,
      224,
      164,
      151,
      224,
      165,
      135,
      224,
      164,
      170,
      224,
      165,
      135,
      224,
      164,
      156,
      224,
      164,
      185,
      224,
      164,
      190,
      224,
      164,
      165,
      224,
      164,
      135,
      224,
      164,
      184,
      224,
      165,
      128,
      224,
      164,
      184,
      224,
      164,
      185,
      224,
      165,
      128,
      224,
      164,
      149,
      224,
      164,
      178,
      224,
      164,
      190,
      224,
      164,
      160,
      224,
      165,
      128,
      224,
      164,
      149,
      224,
      164,
      185,
      224,
      164,
      190,
      224,
      164,
      129,
      224,
      164,
      166,
      224,
      165,
      130,
      224,
      164,
      176,
      224,
      164,
      164,
      224,
      164,
      185,
      224,
      164,
      164,
      224,
      164,
      184,
      224,
      164,
      190,
      224,
      164,
      164,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      166,
      224,
      164,
      134,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      170,
      224,
      164,
      190,
      224,
      164,
      149,
      224,
      164,
      149,
      224,
      165,
      140,
      224,
      164,
      168,
      224,
      164,
      182,
      224,
      164,
      190,
      224,
      164,
      174,
      224,
      164,
      166,
      224,
      165,
      135,
      224,
      164,
      150,
      224,
      164,
      175,
      224,
      164,
      185,
      224,
      165,
      128,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      175,
      224,
      164,
      150,
      224,
      165,
      129,
      224,
      164,
      166,
      224,
      164,
      178,
      224,
      164,
      151,
      224,
      165,
      128,
      99,
      97,
      116,
      101,
      103,
      111,
      114,
      105,
      101,
      115,
      101,
      120,
      112,
      101,
      114,
      105,
      101,
      110,
      99,
      101,
      60,
      47,
      116,
      105,
      116,
      108,
      101,
      62,
      13,
      10,
      67,
      111,
      112,
      121,
      114,
      105,
      103,
      104,
      116,
      32,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      99,
      111,
      110,
      100,
      105,
      116,
      105,
      111,
      110,
      115,
      101,
      118,
      101,
      114,
      121,
      116,
      104,
      105,
      110,
      103,
      60,
      112,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      116,
      101,
      99,
      104,
      110,
      111,
      108,
      111,
      103,
      121,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      60,
      97,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      109,
      97,
      110,
      97,
      103,
      101,
      109,
      101,
      110,
      116,
      38,
      99,
      111,
      112,
      121,
      59,
      32,
      50,
      48,
      49,
      106,
      97,
      118,
      97,
      83,
      99,
      114,
      105,
      112,
      116,
      99,
      104,
      97,
      114,
      97,
      99,
      116,
      101,
      114,
      115,
      98,
      114,
      101,
      97,
      100,
      99,
      114,
      117,
      109,
      98,
      116,
      104,
      101,
      109,
      115,
      101,
      108,
      118,
      101,
      115,
      104,
      111,
      114,
      105,
      122,
      111,
      110,
      116,
      97,
      108,
      103,
      111,
      118,
      101,
      114,
      110,
      109,
      101,
      110,
      116,
      67,
      97,
      108,
      105,
      102,
      111,
      114,
      110,
      105,
      97,
      97,
      99,
      116,
      105,
      118,
      105,
      116,
      105,
      101,
      115,
      100,
      105,
      115,
      99,
      111,
      118,
      101,
      114,
      101,
      100,
      78,
      97,
      118,
      105,
      103,
      97,
      116,
      105,
      111,
      110,
      116,
      114,
      97,
      110,
      115,
      105,
      116,
      105,
      111,
      110,
      99,
      111,
      110,
      110,
      101,
      99,
      116,
      105,
      111,
      110,
      110,
      97,
      118,
      105,
      103,
      97,
      116,
      105,
      111,
      110,
      97,
      112,
      112,
      101,
      97,
      114,
      97,
      110,
      99,
      101,
      60,
      47,
      116,
      105,
      116,
      108,
      101,
      62,
      60,
      109,
      99,
      104,
      101,
      99,
      107,
      98,
      111,
      120,
      34,
      32,
      116,
      101,
      99,
      104,
      110,
      105,
      113,
      117,
      101,
      115,
      112,
      114,
      111,
      116,
      101,
      99,
      116,
      105,
      111,
      110,
      97,
      112,
      112,
      97,
      114,
      101,
      110,
      116,
      108,
      121,
      97,
      115,
      32,
      119,
      101,
      108,
      108,
      32,
      97,
      115,
      117,
      110,
      116,
      39,
      44,
      32,
      39,
      85,
      65,
      45,
      114,
      101,
      115,
      111,
      108,
      117,
      116,
      105,
      111,
      110,
      111,
      112,
      101,
      114,
      97,
      116,
      105,
      111,
      110,
      115,
      116,
      101,
      108,
      101,
      118,
      105,
      115,
      105,
      111,
      110,
      116,
      114,
      97,
      110,
      115,
      108,
      97,
      116,
      101,
      100,
      87,
      97,
      115,
      104,
      105,
      110,
      103,
      116,
      111,
      110,
      110,
      97,
      118,
      105,
      103,
      97,
      116,
      111,
      114,
      46,
      32,
      61,
      32,
      119,
      105,
      110,
      100,
      111,
      119,
      46,
      105,
      109,
      112,
      114,
      101,
      115,
      115,
      105,
      111,
      110,
      38,
      108,
      116,
      59,
      98,
      114,
      38,
      103,
      116,
      59,
      108,
      105,
      116,
      101,
      114,
      97,
      116,
      117,
      114,
      101,
      112,
      111,
      112,
      117,
      108,
      97,
      116,
      105,
      111,
      110,
      98,
      103,
      99,
      111,
      108,
      111,
      114,
      61,
      34,
      35,
      101,
      115,
      112,
      101,
      99,
      105,
      97,
      108,
      108,
      121,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      112,
      114,
      111,
      100,
      117,
      99,
      116,
      105,
      111,
      110,
      110,
      101,
      119,
      115,
      108,
      101,
      116,
      116,
      101,
      114,
      112,
      114,
      111,
      112,
      101,
      114,
      116,
      105,
      101,
      115,
      100,
      101,
      102,
      105,
      110,
      105,
      116,
      105,
      111,
      110,
      108,
      101,
      97,
      100,
      101,
      114,
      115,
      104,
      105,
      112,
      84,
      101,
      99,
      104,
      110,
      111,
      108,
      111,
      103,
      121,
      80,
      97,
      114,
      108,
      105,
      97,
      109,
      101,
      110,
      116,
      99,
      111,
      109,
      112,
      97,
      114,
      105,
      115,
      111,
      110,
      117,
      108,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      46,
      105,
      110,
      100,
      101,
      120,
      79,
      102,
      40,
      34,
      99,
      111,
      110,
      99,
      108,
      117,
      115,
      105,
      111,
      110,
      100,
      105,
      115,
      99,
      117,
      115,
      115,
      105,
      111,
      110,
      99,
      111,
      109,
      112,
      111,
      110,
      101,
      110,
      116,
      115,
      98,
      105,
      111,
      108,
      111,
      103,
      105,
      99,
      97,
      108,
      82,
      101,
      118,
      111,
      108,
      117,
      116,
      105,
      111,
      110,
      95,
      99,
      111,
      110,
      116,
      97,
      105,
      110,
      101,
      114,
      117,
      110,
      100,
      101,
      114,
      115,
      116,
      111,
      111,
      100,
      110,
      111,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      60,
      112,
      101,
      114,
      109,
      105,
      115,
      115,
      105,
      111,
      110,
      101,
      97,
      99,
      104,
      32,
      111,
      116,
      104,
      101,
      114,
      97,
      116,
      109,
      111,
      115,
      112,
      104,
      101,
      114,
      101,
      32,
      111,
      110,
      102,
      111,
      99,
      117,
      115,
      61,
      34,
      60,
      102,
      111,
      114,
      109,
      32,
      105,
      100,
      61,
      34,
      112,
      114,
      111,
      99,
      101,
      115,
      115,
      105,
      110,
      103,
      116,
      104,
      105,
      115,
      46,
      118,
      97,
      108,
      117,
      101,
      103,
      101,
      110,
      101,
      114,
      97,
      116,
      105,
      111,
      110,
      67,
      111,
      110,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      115,
      117,
      98,
      115,
      101,
      113,
      117,
      101,
      110,
      116,
      119,
      101,
      108,
      108,
      45,
      107,
      110,
      111,
      119,
      110,
      118,
      97,
      114,
      105,
      97,
      116,
      105,
      111,
      110,
      115,
      114,
      101,
      112,
      117,
      116,
      97,
      116,
      105,
      111,
      110,
      112,
      104,
      101,
      110,
      111,
      109,
      101,
      110,
      111,
      110,
      100,
      105,
      115,
      99,
      105,
      112,
      108,
      105,
      110,
      101,
      108,
      111,
      103,
      111,
      46,
      112,
      110,
      103,
      34,
      32,
      40,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      44,
      98,
      111,
      117,
      110,
      100,
      97,
      114,
      105,
      101,
      115,
      101,
      120,
      112,
      114,
      101,
      115,
      115,
      105,
      111,
      110,
      115,
      101,
      116,
      116,
      108,
      101,
      109,
      101,
      110,
      116,
      66,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      111,
      117,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      101,
      110,
      116,
      101,
      114,
      112,
      114,
      105,
      115,
      101,
      40,
      34,
      104,
      116,
      116,
      112,
      115,
      58,
      34,
      32,
      117,
      110,
      101,
      115,
      99,
      97,
      112,
      101,
      40,
      34,
      112,
      97,
      115,
      115,
      119,
      111,
      114,
      100,
      34,
      32,
      100,
      101,
      109,
      111,
      99,
      114,
      97,
      116,
      105,
      99,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      47,
      119,
      114,
      97,
      112,
      112,
      101,
      114,
      34,
      62,
      10,
      109,
      101,
      109,
      98,
      101,
      114,
      115,
      104,
      105,
      112,
      108,
      105,
      110,
      103,
      117,
      105,
      115,
      116,
      105,
      99,
      112,
      120,
      59,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      112,
      104,
      105,
      108,
      111,
      115,
      111,
      112,
      104,
      121,
      97,
      115,
      115,
      105,
      115,
      116,
      97,
      110,
      99,
      101,
      117,
      110,
      105,
      118,
      101,
      114,
      115,
      105,
      116,
      121,
      102,
      97,
      99,
      105,
      108,
      105,
      116,
      105,
      101,
      115,
      114,
      101,
      99,
      111,
      103,
      110,
      105,
      122,
      101,
      100,
      112,
      114,
      101,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      105,
      102,
      32,
      40,
      116,
      121,
      112,
      101,
      111,
      102,
      109,
      97,
      105,
      110,
      116,
      97,
      105,
      110,
      101,
      100,
      118,
      111,
      99,
      97,
      98,
      117,
      108,
      97,
      114,
      121,
      104,
      121,
      112,
      111,
      116,
      104,
      101,
      115,
      105,
      115,
      46,
      115,
      117,
      98,
      109,
      105,
      116,
      40,
      41,
      59,
      38,
      97,
      109,
      112,
      59,
      110,
      98,
      115,
      112,
      59,
      97,
      110,
      110,
      111,
      116,
      97,
      116,
      105,
      111,
      110,
      98,
      101,
      104,
      105,
      110,
      100,
      32,
      116,
      104,
      101,
      70,
      111,
      117,
      110,
      100,
      97,
      116,
      105,
      111,
      110,
      112,
      117,
      98,
      108,
      105,
      115,
      104,
      101,
      114,
      34,
      97,
      115,
      115,
      117,
      109,
      112,
      116,
      105,
      111,
      110,
      105,
      110,
      116,
      114,
      111,
      100,
      117,
      99,
      101,
      100,
      99,
      111,
      114,
      114,
      117,
      112,
      116,
      105,
      111,
      110,
      115,
      99,
      105,
      101,
      110,
      116,
      105,
      115,
      116,
      115,
      101,
      120,
      112,
      108,
      105,
      99,
      105,
      116,
      108,
      121,
      105,
      110,
      115,
      116,
      101,
      97,
      100,
      32,
      111,
      102,
      100,
      105,
      109,
      101,
      110,
      115,
      105,
      111,
      110,
      115,
      32,
      111,
      110,
      67,
      108,
      105,
      99,
      107,
      61,
      34,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      101,
      100,
      100,
      101,
      112,
      97,
      114,
      116,
      109,
      101,
      110,
      116,
      111,
      99,
      99,
      117,
      112,
      97,
      116,
      105,
      111,
      110,
      115,
      111,
      111,
      110,
      32,
      97,
      102,
      116,
      101,
      114,
      105,
      110,
      118,
      101,
      115,
      116,
      109,
      101,
      110,
      116,
      112,
      114,
      111,
      110,
      111,
      117,
      110,
      99,
      101,
      100,
      105,
      100,
      101,
      110,
      116,
      105,
      102,
      105,
      101,
      100,
      101,
      120,
      112,
      101,
      114,
      105,
      109,
      101,
      110,
      116,
      77,
      97,
      110,
      97,
      103,
      101,
      109,
      101,
      110,
      116,
      103,
      101,
      111,
      103,
      114,
      97,
      112,
      104,
      105,
      99,
      34,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      46,
      114,
      101,
      112,
      108,
      97,
      99,
      101,
      40,
      47,
      100,
      101,
      112,
      114,
      101,
      115,
      115,
      105,
      111,
      110,
      99,
      111,
      110,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      112,
      117,
      110,
      105,
      115,
      104,
      109,
      101,
      110,
      116,
      101,
      108,
      105,
      109,
      105,
      110,
      97,
      116,
      101,
      100,
      114,
      101,
      115,
      105,
      115,
      116,
      97,
      110,
      99,
      101,
      97,
      100,
      97,
      112,
      116,
      97,
      116,
      105,
      111,
      110,
      111,
      112,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      119,
      101,
      108,
      108,
      32,
      107,
      110,
      111,
      119,
      110,
      115,
      117,
      112,
      112,
      108,
      101,
      109,
      101,
      110,
      116,
      100,
      101,
      116,
      101,
      114,
      109,
      105,
      110,
      101,
      100,
      104,
      49,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      48,
      112,
      120,
      59,
      109,
      97,
      114,
      103,
      105,
      110,
      109,
      101,
      99,
      104,
      97,
      110,
      105,
      99,
      97,
      108,
      115,
      116,
      97,
      116,
      105,
      115,
      116,
      105,
      99,
      115,
      99,
      101,
      108,
      101,
      98,
      114,
      97,
      116,
      101,
      100,
      71,
      111,
      118,
      101,
      114,
      110,
      109,
      101,
      110,
      116,
      10,
      10,
      68,
      117,
      114,
      105,
      110,
      103,
      32,
      116,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      101,
      114,
      115,
      97,
      114,
      116,
      105,
      102,
      105,
      99,
      105,
      97,
      108,
      101,
      113,
      117,
      105,
      118,
      97,
      108,
      101,
      110,
      116,
      111,
      114,
      105,
      103,
      105,
      110,
      97,
      116,
      101,
      100,
      67,
      111,
      109,
      109,
      105,
      115,
      115,
      105,
      111,
      110,
      97,
      116,
      116,
      97,
      99,
      104,
      109,
      101,
      110,
      116,
      60,
      115,
      112,
      97,
      110,
      32,
      105,
      100,
      61,
      34,
      116,
      104,
      101,
      114,
      101,
      32,
      119,
      101,
      114,
      101,
      78,
      101,
      100,
      101,
      114,
      108,
      97,
      110,
      100,
      115,
      98,
      101,
      121,
      111,
      110,
      100,
      32,
      116,
      104,
      101,
      114,
      101,
      103,
      105,
      115,
      116,
      101,
      114,
      101,
      100,
      106,
      111,
      117,
      114,
      110,
      97,
      108,
      105,
      115,
      116,
      102,
      114,
      101,
      113,
      117,
      101,
      110,
      116,
      108,
      121,
      97,
      108,
      108,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      108,
      97,
      110,
      103,
      61,
      34,
      101,
      110,
      34,
      32,
      60,
      47,
      115,
      116,
      121,
      108,
      101,
      62,
      13,
      10,
      97,
      98,
      115,
      111,
      108,
      117,
      116,
      101,
      59,
      32,
      115,
      117,
      112,
      112,
      111,
      114,
      116,
      105,
      110,
      103,
      101,
      120,
      116,
      114,
      101,
      109,
      101,
      108,
      121,
      32,
      109,
      97,
      105,
      110,
      115,
      116,
      114,
      101,
      97,
      109,
      60,
      47,
      115,
      116,
      114,
      111,
      110,
      103,
      62,
      32,
      112,
      111,
      112,
      117,
      108,
      97,
      114,
      105,
      116,
      121,
      101,
      109,
      112,
      108,
      111,
      121,
      109,
      101,
      110,
      116,
      60,
      47,
      116,
      97,
      98,
      108,
      101,
      62,
      13,
      10,
      32,
      99,
      111,
      108,
      115,
      112,
      97,
      110,
      61,
      34,
      60,
      47,
      102,
      111,
      114,
      109,
      62,
      10,
      32,
      32,
      99,
      111,
      110,
      118,
      101,
      114,
      115,
      105,
      111,
      110,
      97,
      98,
      111,
      117,
      116,
      32,
      116,
      104,
      101,
      32,
      60,
      47,
      112,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      105,
      110,
      116,
      101,
      103,
      114,
      97,
      116,
      101,
      100,
      34,
      32,
      108,
      97,
      110,
      103,
      61,
      34,
      101,
      110,
      80,
      111,
      114,
      116,
      117,
      103,
      117,
      101,
      115,
      101,
      115,
      117,
      98,
      115,
      116,
      105,
      116,
      117,
      116,
      101,
      105,
      110,
      100,
      105,
      118,
      105,
      100,
      117,
      97,
      108,
      105,
      109,
      112,
      111,
      115,
      115,
      105,
      98,
      108,
      101,
      109,
      117,
      108,
      116,
      105,
      109,
      101,
      100,
      105,
      97,
      97,
      108,
      109,
      111,
      115,
      116,
      32,
      97,
      108,
      108,
      112,
      120,
      32,
      115,
      111,
      108,
      105,
      100,
      32,
      35,
      97,
      112,
      97,
      114,
      116,
      32,
      102,
      114,
      111,
      109,
      115,
      117,
      98,
      106,
      101,
      99,
      116,
      32,
      116,
      111,
      105,
      110,
      32,
      69,
      110,
      103,
      108,
      105,
      115,
      104,
      99,
      114,
      105,
      116,
      105,
      99,
      105,
      122,
      101,
      100,
      101,
      120,
      99,
      101,
      112,
      116,
      32,
      102,
      111,
      114,
      103,
      117,
      105,
      100,
      101,
      108,
      105,
      110,
      101,
      115,
      111,
      114,
      105,
      103,
      105,
      110,
      97,
      108,
      108,
      121,
      114,
      101,
      109,
      97,
      114,
      107,
      97,
      98,
      108,
      101,
      116,
      104,
      101,
      32,
      115,
      101,
      99,
      111,
      110,
      100,
      104,
      50,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      60,
      97,
      32,
      116,
      105,
      116,
      108,
      101,
      61,
      34,
      40,
      105,
      110,
      99,
      108,
      117,
      100,
      105,
      110,
      103,
      112,
      97,
      114,
      97,
      109,
      101,
      116,
      101,
      114,
      115,
      112,
      114,
      111,
      104,
      105,
      98,
      105,
      116,
      101,
      100,
      61,
      32,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      100,
      105,
      99,
      116,
      105,
      111,
      110,
      97,
      114,
      121,
      112,
      101,
      114,
      99,
      101,
      112,
      116,
      105,
      111,
      110,
      114,
      101,
      118,
      111,
      108,
      117,
      116,
      105,
      111,
      110,
      102,
      111,
      117,
      110,
      100,
      97,
      116,
      105,
      111,
      110,
      112,
      120,
      59,
      104,
      101,
      105,
      103,
      104,
      116,
      58,
      115,
      117,
      99,
      99,
      101,
      115,
      115,
      102,
      117,
      108,
      115,
      117,
      112,
      112,
      111,
      114,
      116,
      101,
      114,
      115,
      109,
      105,
      108,
      108,
      101,
      110,
      110,
      105,
      117,
      109,
      104,
      105,
      115,
      32,
      102,
      97,
      116,
      104,
      101,
      114,
      116,
      104,
      101,
      32,
      38,
      113,
      117,
      111,
      116,
      59,
      110,
      111,
      45,
      114,
      101,
      112,
      101,
      97,
      116,
      59,
      99,
      111,
      109,
      109,
      101,
      114,
      99,
      105,
      97,
      108,
      105,
      110,
      100,
      117,
      115,
      116,
      114,
      105,
      97,
      108,
      101,
      110,
      99,
      111,
      117,
      114,
      97,
      103,
      101,
      100,
      97,
      109,
      111,
      117,
      110,
      116,
      32,
      111,
      102,
      32,
      117,
      110,
      111,
      102,
      102,
      105,
      99,
      105,
      97,
      108,
      101,
      102,
      102,
      105,
      99,
      105,
      101,
      110,
      99,
      121,
      82,
      101,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      115,
      99,
      111,
      111,
      114,
      100,
      105,
      110,
      97,
      116,
      101,
      100,
      105,
      115,
      99,
      108,
      97,
      105,
      109,
      101,
      114,
      101,
      120,
      112,
      101,
      100,
      105,
      116,
      105,
      111,
      110,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      105,
      110,
      103,
      99,
      97,
      108,
      99,
      117,
      108,
      97,
      116,
      101,
      100,
      115,
      105,
      109,
      112,
      108,
      105,
      102,
      105,
      101,
      100,
      108,
      101,
      103,
      105,
      116,
      105,
      109,
      97,
      116,
      101,
      115,
      117,
      98,
      115,
      116,
      114,
      105,
      110,
      103,
      40,
      48,
      34,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      99,
      111,
      109,
      112,
      108,
      101,
      116,
      101,
      108,
      121,
      105,
      108,
      108,
      117,
      115,
      116,
      114,
      97,
      116,
      101,
      102,
      105,
      118,
      101,
      32,
      121,
      101,
      97,
      114,
      115,
      105,
      110,
      115,
      116,
      114,
      117,
      109,
      101,
      110,
      116,
      80,
      117,
      98,
      108,
      105,
      115,
      104,
      105,
      110,
      103,
      49,
      34,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      112,
      115,
      121,
      99,
      104,
      111,
      108,
      111,
      103,
      121,
      99,
      111,
      110,
      102,
      105,
      100,
      101,
      110,
      99,
      101,
      110,
      117,
      109,
      98,
      101,
      114,
      32,
      111,
      102,
      32,
      97,
      98,
      115,
      101,
      110,
      99,
      101,
      32,
      111,
      102,
      102,
      111,
      99,
      117,
      115,
      101,
      100,
      32,
      111,
      110,
      106,
      111,
      105,
      110,
      101,
      100,
      32,
      116,
      104,
      101,
      115,
      116,
      114,
      117,
      99,
      116,
      117,
      114,
      101,
      115,
      112,
      114,
      101,
      118,
      105,
      111,
      117,
      115,
      108,
      121,
      62,
      60,
      47,
      105,
      102,
      114,
      97,
      109,
      101,
      62,
      111,
      110,
      99,
      101,
      32,
      97,
      103,
      97,
      105,
      110,
      98,
      117,
      116,
      32,
      114,
      97,
      116,
      104,
      101,
      114,
      105,
      109,
      109,
      105,
      103,
      114,
      97,
      110,
      116,
      115,
      111,
      102,
      32,
      99,
      111,
      117,
      114,
      115,
      101,
      44,
      97,
      32,
      103,
      114,
      111,
      117,
      112,
      32,
      111,
      102,
      76,
      105,
      116,
      101,
      114,
      97,
      116,
      117,
      114,
      101,
      85,
      110,
      108,
      105,
      107,
      101,
      32,
      116,
      104,
      101,
      60,
      47,
      97,
      62,
      38,
      110,
      98,
      115,
      112,
      59,
      10,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      32,
      105,
      116,
      32,
      119,
      97,
      115,
      32,
      116,
      104,
      101,
      67,
      111,
      110,
      118,
      101,
      110,
      116,
      105,
      111,
      110,
      97,
      117,
      116,
      111,
      109,
      111,
      98,
      105,
      108,
      101,
      80,
      114,
      111,
      116,
      101,
      115,
      116,
      97,
      110,
      116,
      97,
      103,
      103,
      114,
      101,
      115,
      115,
      105,
      118,
      101,
      97,
      102,
      116,
      101,
      114,
      32,
      116,
      104,
      101,
      32,
      83,
      105,
      109,
      105,
      108,
      97,
      114,
      108,
      121,
      44,
      34,
      32,
      47,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      99,
      111,
      108,
      108,
      101,
      99,
      116,
      105,
      111,
      110,
      13,
      10,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      118,
      105,
      115,
      105,
      98,
      105,
      108,
      105,
      116,
      121,
      116,
      104,
      101,
      32,
      117,
      115,
      101,
      32,
      111,
      102,
      118,
      111,
      108,
      117,
      110,
      116,
      101,
      101,
      114,
      115,
      97,
      116,
      116,
      114,
      97,
      99,
      116,
      105,
      111,
      110,
      117,
      110,
      100,
      101,
      114,
      32,
      116,
      104,
      101,
      32,
      116,
      104,
      114,
      101,
      97,
      116,
      101,
      110,
      101,
      100,
      42,
      60,
      33,
      91,
      67,
      68,
      65,
      84,
      65,
      91,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      99,
      101,
      105,
      110,
      32,
      103,
      101,
      110,
      101,
      114,
      97,
      108,
      116,
      104,
      101,
      32,
      108,
      97,
      116,
      116,
      101,
      114,
      60,
      47,
      102,
      111,
      114,
      109,
      62,
      10,
      60,
      47,
      46,
      105,
      110,
      100,
      101,
      120,
      79,
      102,
      40,
      39,
      105,
      32,
      61,
      32,
      48,
      59,
      32,
      105,
      32,
      60,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      100,
      101,
      118,
      111,
      116,
      101,
      100,
      32,
      116,
      111,
      116,
      114,
      97,
      100,
      105,
      116,
      105,
      111,
      110,
      115,
      115,
      101,
      97,
      114,
      99,
      104,
      32,
      102,
      111,
      114,
      117,
      108,
      116,
      105,
      109,
      97,
      116,
      101,
      108,
      121,
      116,
      111,
      117,
      114,
      110,
      97,
      109,
      101,
      110,
      116,
      97,
      116,
      116,
      114,
      105,
      98,
      117,
      116,
      101,
      115,
      115,
      111,
      45,
      99,
      97,
      108,
      108,
      101,
      100,
      32,
      125,
      10,
      60,
      47,
      115,
      116,
      121,
      108,
      101,
      62,
      101,
      118,
      97,
      108,
      117,
      97,
      116,
      105,
      111,
      110,
      101,
      109,
      112,
      104,
      97,
      115,
      105,
      122,
      101,
      100,
      97,
      99,
      99,
      101,
      115,
      115,
      105,
      98,
      108,
      101,
      60,
      47,
      115,
      101,
      99,
      116,
      105,
      111,
      110,
      62,
      115,
      117,
      99,
      99,
      101,
      115,
      115,
      105,
      111,
      110,
      97,
      108,
      111,
      110,
      103,
      32,
      119,
      105,
      116,
      104,
      77,
      101,
      97,
      110,
      119,
      104,
      105,
      108,
      101,
      44,
      105,
      110,
      100,
      117,
      115,
      116,
      114,
      105,
      101,
      115,
      60,
      47,
      97,
      62,
      60,
      98,
      114,
      32,
      47,
      62,
      104,
      97,
      115,
      32,
      98,
      101,
      99,
      111,
      109,
      101,
      97,
      115,
      112,
      101,
      99,
      116,
      115,
      32,
      111,
      102,
      84,
      101,
      108,
      101,
      118,
      105,
      115,
      105,
      111,
      110,
      115,
      117,
      102,
      102,
      105,
      99,
      105,
      101,
      110,
      116,
      98,
      97,
      115,
      107,
      101,
      116,
      98,
      97,
      108,
      108,
      98,
      111,
      116,
      104,
      32,
      115,
      105,
      100,
      101,
      115,
      99,
      111,
      110,
      116,
      105,
      110,
      117,
      105,
      110,
      103,
      97,
      110,
      32,
      97,
      114,
      116,
      105,
      99,
      108,
      101,
      60,
      105,
      109,
      103,
      32,
      97,
      108,
      116,
      61,
      34,
      97,
      100,
      118,
      101,
      110,
      116,
      117,
      114,
      101,
      115,
      104,
      105,
      115,
      32,
      109,
      111,
      116,
      104,
      101,
      114,
      109,
      97,
      110,
      99,
      104,
      101,
      115,
      116,
      101,
      114,
      112,
      114,
      105,
      110,
      99,
      105,
      112,
      108,
      101,
      115,
      112,
      97,
      114,
      116,
      105,
      99,
      117,
      108,
      97,
      114,
      99,
      111,
      109,
      109,
      101,
      110,
      116,
      97,
      114,
      121,
      101,
      102,
      102,
      101,
      99,
      116,
      115,
      32,
      111,
      102,
      100,
      101,
      99,
      105,
      100,
      101,
      100,
      32,
      116,
      111,
      34,
      62,
      60,
      115,
      116,
      114,
      111,
      110,
      103,
      62,
      112,
      117,
      98,
      108,
      105,
      115,
      104,
      101,
      114,
      115,
      74,
      111,
      117,
      114,
      110,
      97,
      108,
      32,
      111,
      102,
      100,
      105,
      102,
      102,
      105,
      99,
      117,
      108,
      116,
      121,
      102,
      97,
      99,
      105,
      108,
      105,
      116,
      97,
      116,
      101,
      97,
      99,
      99,
      101,
      112,
      116,
      97,
      98,
      108,
      101,
      115,
      116,
      121,
      108,
      101,
      46,
      99,
      115,
      115,
      34,
      9,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      32,
      105,
      110,
      110,
      111,
      118,
      97,
      116,
      105,
      111,
      110,
      62,
      67,
      111,
      112,
      121,
      114,
      105,
      103,
      104,
      116,
      115,
      105,
      116,
      117,
      97,
      116,
      105,
      111,
      110,
      115,
      119,
      111,
      117,
      108,
      100,
      32,
      104,
      97,
      118,
      101,
      98,
      117,
      115,
      105,
      110,
      101,
      115,
      115,
      101,
      115,
      68,
      105,
      99,
      116,
      105,
      111,
      110,
      97,
      114,
      121,
      115,
      116,
      97,
      116,
      101,
      109,
      101,
      110,
      116,
      115,
      111,
      102,
      116,
      101,
      110,
      32,
      117,
      115,
      101,
      100,
      112,
      101,
      114,
      115,
      105,
      115,
      116,
      101,
      110,
      116,
      105,
      110,
      32,
      74,
      97,
      110,
      117,
      97,
      114,
      121,
      99,
      111,
      109,
      112,
      114,
      105,
      115,
      105,
      110,
      103,
      60,
      47,
      116,
      105,
      116,
      108,
      101,
      62,
      10,
      9,
      100,
      105,
      112,
      108,
      111,
      109,
      97,
      116,
      105,
      99,
      99,
      111,
      110,
      116,
      97,
      105,
      110,
      105,
      110,
      103,
      112,
      101,
      114,
      102,
      111,
      114,
      109,
      105,
      110,
      103,
      101,
      120,
      116,
      101,
      110,
      115,
      105,
      111,
      110,
      115,
      109,
      97,
      121,
      32,
      110,
      111,
      116,
      32,
      98,
      101,
      99,
      111,
      110,
      99,
      101,
      112,
      116,
      32,
      111,
      102,
      32,
      111,
      110,
      99,
      108,
      105,
      99,
      107,
      61,
      34,
      73,
      116,
      32,
      105,
      115,
      32,
      97,
      108,
      115,
      111,
      102,
      105,
      110,
      97,
      110,
      99,
      105,
      97,
      108,
      32,
      109,
      97,
      107,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      76,
      117,
      120,
      101,
      109,
      98,
      111,
      117,
      114,
      103,
      97,
      100,
      100,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      97,
      114,
      101,
      32,
      99,
      97,
      108,
      108,
      101,
      100,
      101,
      110,
      103,
      97,
      103,
      101,
      100,
      32,
      105,
      110,
      34,
      115,
      99,
      114,
      105,
      112,
      116,
      34,
      41,
      59,
      98,
      117,
      116,
      32,
      105,
      116,
      32,
      119,
      97,
      115,
      101,
      108,
      101,
      99,
      116,
      114,
      111,
      110,
      105,
      99,
      111,
      110,
      115,
      117,
      98,
      109,
      105,
      116,
      61,
      34,
      10,
      60,
      33,
      45,
      45,
      32,
      69,
      110,
      100,
      32,
      101,
      108,
      101,
      99,
      116,
      114,
      105,
      99,
      97,
      108,
      111,
      102,
      102,
      105,
      99,
      105,
      97,
      108,
      108,
      121,
      115,
      117,
      103,
      103,
      101,
      115,
      116,
      105,
      111,
      110,
      116,
      111,
      112,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      117,
      110,
      108,
      105,
      107,
      101,
      32,
      116,
      104,
      101,
      65,
      117,
      115,
      116,
      114,
      97,
      108,
      105,
      97,
      110,
      79,
      114,
      105,
      103,
      105,
      110,
      97,
      108,
      108,
      121,
      114,
      101,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      115,
      10,
      60,
      47,
      104,
      101,
      97,
      100,
      62,
      13,
      10,
      114,
      101,
      99,
      111,
      103,
      110,
      105,
      115,
      101,
      100,
      105,
      110,
      105,
      116,
      105,
      97,
      108,
      105,
      122,
      101,
      108,
      105,
      109,
      105,
      116,
      101,
      100,
      32,
      116,
      111,
      65,
      108,
      101,
      120,
      97,
      110,
      100,
      114,
      105,
      97,
      114,
      101,
      116,
      105,
      114,
      101,
      109,
      101,
      110,
      116,
      65,
      100,
      118,
      101,
      110,
      116,
      117,
      114,
      101,
      115,
      102,
      111,
      117,
      114,
      32,
      121,
      101,
      97,
      114,
      115,
      10,
      10,
      38,
      108,
      116,
      59,
      33,
      45,
      45,
      32,
      105,
      110,
      99,
      114,
      101,
      97,
      115,
      105,
      110,
      103,
      100,
      101,
      99,
      111,
      114,
      97,
      116,
      105,
      111,
      110,
      104,
      51,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      111,
      114,
      105,
      103,
      105,
      110,
      115,
      32,
      111,
      102,
      111,
      98,
      108,
      105,
      103,
      97,
      116,
      105,
      111,
      110,
      114,
      101,
      103,
      117,
      108,
      97,
      116,
      105,
      111,
      110,
      99,
      108,
      97,
      115,
      115,
      105,
      102,
      105,
      101,
      100,
      40,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      97,
      100,
      118,
      97,
      110,
      116,
      97,
      103,
      101,
      115,
      98,
      101,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      32,
      104,
      105,
      115,
      116,
      111,
      114,
      105,
      97,
      110,
      115,
      60,
      98,
      97,
      115,
      101,
      32,
      104,
      114,
      101,
      102,
      114,
      101,
      112,
      101,
      97,
      116,
      101,
      100,
      108,
      121,
      119,
      105,
      108,
      108,
      105,
      110,
      103,
      32,
      116,
      111,
      99,
      111,
      109,
      112,
      97,
      114,
      97,
      98,
      108,
      101,
      100,
      101,
      115,
      105,
      103,
      110,
      97,
      116,
      101,
      100,
      110,
      111,
      109,
      105,
      110,
      97,
      116,
      105,
      111,
      110,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      97,
      108,
      105,
      110,
      115,
      105,
      100,
      101,
      32,
      116,
      104,
      101,
      114,
      101,
      118,
      101,
      108,
      97,
      116,
      105,
      111,
      110,
      101,
      110,
      100,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      115,
      32,
      102,
      111,
      114,
      32,
      116,
      104,
      101,
      32,
      97,
      117,
      116,
      104,
      111,
      114,
      105,
      122,
      101,
      100,
      114,
      101,
      102,
      117,
      115,
      101,
      100,
      32,
      116,
      111,
      116,
      97,
      107,
      101,
      32,
      112,
      108,
      97,
      99,
      101,
      97,
      117,
      116,
      111,
      110,
      111,
      109,
      111,
      117,
      115,
      99,
      111,
      109,
      112,
      114,
      111,
      109,
      105,
      115,
      101,
      112,
      111,
      108,
      105,
      116,
      105,
      99,
      97,
      108,
      32,
      114,
      101,
      115,
      116,
      97,
      117,
      114,
      97,
      110,
      116,
      116,
      119,
      111,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      70,
      101,
      98,
      114,
      117,
      97,
      114,
      121,
      32,
      50,
      113,
      117,
      97,
      108,
      105,
      116,
      121,
      32,
      111,
      102,
      115,
      119,
      102,
      111,
      98,
      106,
      101,
      99,
      116,
      46,
      117,
      110,
      100,
      101,
      114,
      115,
      116,
      97,
      110,
      100,
      110,
      101,
      97,
      114,
      108,
      121,
      32,
      97,
      108,
      108,
      119,
      114,
      105,
      116,
      116,
      101,
      110,
      32,
      98,
      121,
      105,
      110,
      116,
      101,
      114,
      118,
      105,
      101,
      119,
      115,
      34,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      49,
      119,
      105,
      116,
      104,
      100,
      114,
      97,
      119,
      97,
      108,
      102,
      108,
      111,
      97,
      116,
      58,
      108,
      101,
      102,
      116,
      105,
      115,
      32,
      117,
      115,
      117,
      97,
      108,
      108,
      121,
      99,
      97,
      110,
      100,
      105,
      100,
      97,
      116,
      101,
      115,
      110,
      101,
      119,
      115,
      112,
      97,
      112,
      101,
      114,
      115,
      109,
      121,
      115,
      116,
      101,
      114,
      105,
      111,
      117,
      115,
      68,
      101,
      112,
      97,
      114,
      116,
      109,
      101,
      110,
      116,
      98,
      101,
      115,
      116,
      32,
      107,
      110,
      111,
      119,
      110,
      112,
      97,
      114,
      108,
      105,
      97,
      109,
      101,
      110,
      116,
      115,
      117,
      112,
      112,
      114,
      101,
      115,
      115,
      101,
      100,
      99,
      111,
      110,
      118,
      101,
      110,
      105,
      101,
      110,
      116,
      114,
      101,
      109,
      101,
      109,
      98,
      101,
      114,
      101,
      100,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      32,
      115,
      121,
      115,
      116,
      101,
      109,
      97,
      116,
      105,
      99,
      104,
      97,
      115,
      32,
      108,
      101,
      100,
      32,
      116,
      111,
      112,
      114,
      111,
      112,
      97,
      103,
      97,
      110,
      100,
      97,
      99,
      111,
      110,
      116,
      114,
      111,
      108,
      108,
      101,
      100,
      105,
      110,
      102,
      108,
      117,
      101,
      110,
      99,
      101,
      115,
      99,
      101,
      114,
      101,
      109,
      111,
      110,
      105,
      97,
      108,
      112,
      114,
      111,
      99,
      108,
      97,
      105,
      109,
      101,
      100,
      80,
      114,
      111,
      116,
      101,
      99,
      116,
      105,
      111,
      110,
      108,
      105,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      83,
      99,
      105,
      101,
      110,
      116,
      105,
      102,
      105,
      99,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      110,
      111,
      45,
      116,
      114,
      97,
      100,
      101,
      109,
      97,
      114,
      107,
      115,
      109,
      111,
      114,
      101,
      32,
      116,
      104,
      97,
      110,
      32,
      119,
      105,
      100,
      101,
      115,
      112,
      114,
      101,
      97,
      100,
      76,
      105,
      98,
      101,
      114,
      97,
      116,
      105,
      111,
      110,
      116,
      111,
      111,
      107,
      32,
      112,
      108,
      97,
      99,
      101,
      100,
      97,
      121,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      97,
      115,
      32,
      108,
      111,
      110,
      103,
      32,
      97,
      115,
      105,
      109,
      112,
      114,
      105,
      115,
      111,
      110,
      101,
      100,
      65,
      100,
      100,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      10,
      60,
      104,
      101,
      97,
      100,
      62,
      10,
      60,
      109,
      76,
      97,
      98,
      111,
      114,
      97,
      116,
      111,
      114,
      121,
      78,
      111,
      118,
      101,
      109,
      98,
      101,
      114,
      32,
      50,
      101,
      120,
      99,
      101,
      112,
      116,
      105,
      111,
      110,
      115,
      73,
      110,
      100,
      117,
      115,
      116,
      114,
      105,
      97,
      108,
      118,
      97,
      114,
      105,
      101,
      116,
      121,
      32,
      111,
      102,
      102,
      108,
      111,
      97,
      116,
      58,
      32,
      108,
      101,
      102,
      68,
      117,
      114,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      97,
      115,
      115,
      101,
      115,
      115,
      109,
      101,
      110,
      116,
      104,
      97,
      118,
      101,
      32,
      98,
      101,
      101,
      110,
      32,
      100,
      101,
      97,
      108,
      115,
      32,
      119,
      105,
      116,
      104,
      83,
      116,
      97,
      116,
      105,
      115,
      116,
      105,
      99,
      115,
      111,
      99,
      99,
      117,
      114,
      114,
      101,
      110,
      99,
      101,
      47,
      117,
      108,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      99,
      108,
      101,
      97,
      114,
      102,
      105,
      120,
      34,
      62,
      116,
      104,
      101,
      32,
      112,
      117,
      98,
      108,
      105,
      99,
      109,
      97,
      110,
      121,
      32,
      121,
      101,
      97,
      114,
      115,
      119,
      104,
      105,
      99,
      104,
      32,
      119,
      101,
      114,
      101,
      111,
      118,
      101,
      114,
      32,
      116,
      105,
      109,
      101,
      44,
      115,
      121,
      110,
      111,
      110,
      121,
      109,
      111,
      117,
      115,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      34,
      62,
      10,
      112,
      114,
      101,
      115,
      117,
      109,
      97,
      98,
      108,
      121,
      104,
      105,
      115,
      32,
      102,
      97,
      109,
      105,
      108,
      121,
      117,
      115,
      101,
      114,
      65,
      103,
      101,
      110,
      116,
      46,
      117,
      110,
      101,
      120,
      112,
      101,
      99,
      116,
      101,
      100,
      105,
      110,
      99,
      108,
      117,
      100,
      105,
      110,
      103,
      32,
      99,
      104,
      97,
      108,
      108,
      101,
      110,
      103,
      101,
      100,
      97,
      32,
      109,
      105,
      110,
      111,
      114,
      105,
      116,
      121,
      117,
      110,
      100,
      101,
      102,
      105,
      110,
      101,
      100,
      34,
      98,
      101,
      108,
      111,
      110,
      103,
      115,
      32,
      116,
      111,
      116,
      97,
      107,
      101,
      110,
      32,
      102,
      114,
      111,
      109,
      105,
      110,
      32,
      79,
      99,
      116,
      111,
      98,
      101,
      114,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      58,
      32,
      115,
      97,
      105,
      100,
      32,
      116,
      111,
      32,
      98,
      101,
      114,
      101,
      108,
      105,
      103,
      105,
      111,
      117,
      115,
      32,
      70,
      101,
      100,
      101,
      114,
      97,
      116,
      105,
      111,
      110,
      32,
      114,
      111,
      119,
      115,
      112,
      97,
      110,
      61,
      34,
      111,
      110,
      108,
      121,
      32,
      97,
      32,
      102,
      101,
      119,
      109,
      101,
      97,
      110,
      116,
      32,
      116,
      104,
      97,
      116,
      108,
      101,
      100,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      45,
      45,
      62,
      13,
      10,
      60,
      100,
      105,
      118,
      32,
      60,
      102,
      105,
      101,
      108,
      100,
      115,
      101,
      116,
      62,
      65,
      114,
      99,
      104,
      98,
      105,
      115,
      104,
      111,
      112,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      110,
      111,
      98,
      101,
      105,
      110,
      103,
      32,
      117,
      115,
      101,
      100,
      97,
      112,
      112,
      114,
      111,
      97,
      99,
      104,
      101,
      115,
      112,
      114,
      105,
      118,
      105,
      108,
      101,
      103,
      101,
      115,
      110,
      111,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      114,
      101,
      115,
      117,
      108,
      116,
      115,
      32,
      105,
      110,
      109,
      97,
      121,
      32,
      98,
      101,
      32,
      116,
      104,
      101,
      69,
      97,
      115,
      116,
      101,
      114,
      32,
      101,
      103,
      103,
      109,
      101,
      99,
      104,
      97,
      110,
      105,
      115,
      109,
      115,
      114,
      101,
      97,
      115,
      111,
      110,
      97,
      98,
      108,
      101,
      80,
      111,
      112,
      117,
      108,
      97,
      116,
      105,
      111,
      110,
      67,
      111,
      108,
      108,
      101,
      99,
      116,
      105,
      111,
      110,
      115,
      101,
      108,
      101,
      99,
      116,
      101,
      100,
      34,
      62,
      110,
      111,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      13,
      47,
      105,
      110,
      100,
      101,
      120,
      46,
      112,
      104,
      112,
      97,
      114,
      114,
      105,
      118,
      97,
      108,
      32,
      111,
      102,
      45,
      106,
      115,
      115,
      100,
      107,
      39,
      41,
      41,
      59,
      109,
      97,
      110,
      97,
      103,
      101,
      100,
      32,
      116,
      111,
      105,
      110,
      99,
      111,
      109,
      112,
      108,
      101,
      116,
      101,
      99,
      97,
      115,
      117,
      97,
      108,
      116,
      105,
      101,
      115,
      99,
      111,
      109,
      112,
      108,
      101,
      116,
      105,
      111,
      110,
      67,
      104,
      114,
      105,
      115,
      116,
      105,
      97,
      110,
      115,
      83,
      101,
      112,
      116,
      101,
      109,
      98,
      101,
      114,
      32,
      97,
      114,
      105,
      116,
      104,
      109,
      101,
      116,
      105,
      99,
      112,
      114,
      111,
      99,
      101,
      100,
      117,
      114,
      101,
      115,
      109,
      105,
      103,
      104,
      116,
      32,
      104,
      97,
      118,
      101,
      80,
      114,
      111,
      100,
      117,
      99,
      116,
      105,
      111,
      110,
      105,
      116,
      32,
      97,
      112,
      112,
      101,
      97,
      114,
      115,
      80,
      104,
      105,
      108,
      111,
      115,
      111,
      112,
      104,
      121,
      102,
      114,
      105,
      101,
      110,
      100,
      115,
      104,
      105,
      112,
      108,
      101,
      97,
      100,
      105,
      110,
      103,
      32,
      116,
      111,
      103,
      105,
      118,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      116,
      111,
      119,
      97,
      114,
      100,
      32,
      116,
      104,
      101,
      103,
      117,
      97,
      114,
      97,
      110,
      116,
      101,
      101,
      100,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      101,
      100,
      99,
      111,
      108,
      111,
      114,
      58,
      35,
      48,
      48,
      48,
      118,
      105,
      100,
      101,
      111,
      32,
      103,
      97,
      109,
      101,
      99,
      111,
      109,
      109,
      105,
      115,
      115,
      105,
      111,
      110,
      114,
      101,
      102,
      108,
      101,
      99,
      116,
      105,
      110,
      103,
      99,
      104,
      97,
      110,
      103,
      101,
      32,
      116,
      104,
      101,
      97,
      115,
      115,
      111,
      99,
      105,
      97,
      116,
      101,
      100,
      115,
      97,
      110,
      115,
      45,
      115,
      101,
      114,
      105,
      102,
      111,
      110,
      107,
      101,
      121,
      112,
      114,
      101,
      115,
      115,
      59,
      32,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      58,
      72,
      101,
      32,
      119,
      97,
      115,
      32,
      116,
      104,
      101,
      117,
      110,
      100,
      101,
      114,
      108,
      121,
      105,
      110,
      103,
      116,
      121,
      112,
      105,
      99,
      97,
      108,
      108,
      121,
      32,
      44,
      32,
      97,
      110,
      100,
      32,
      116,
      104,
      101,
      32,
      115,
      114,
      99,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      115,
      117,
      99,
      99,
      101,
      115,
      115,
      105,
      118,
      101,
      115,
      105,
      110,
      99,
      101,
      32,
      116,
      104,
      101,
      32,
      115,
      104,
      111,
      117,
      108,
      100,
      32,
      98,
      101,
      32,
      110,
      101,
      116,
      119,
      111,
      114,
      107,
      105,
      110,
      103,
      97,
      99,
      99,
      111,
      117,
      110,
      116,
      105,
      110,
      103,
      117,
      115,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      108,
      111,
      119,
      101,
      114,
      32,
      116,
      104,
      97,
      110,
      115,
      104,
      111,
      119,
      115,
      32,
      116,
      104,
      97,
      116,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      10,
      9,
      9,
      99,
      111,
      109,
      112,
      108,
      97,
      105,
      110,
      116,
      115,
      99,
      111,
      110,
      116,
      105,
      110,
      117,
      111,
      117,
      115,
      113,
      117,
      97,
      110,
      116,
      105,
      116,
      105,
      101,
      115,
      97,
      115,
      116,
      114,
      111,
      110,
      111,
      109,
      101,
      114,
      104,
      101,
      32,
      100,
      105,
      100,
      32,
      110,
      111,
      116,
      100,
      117,
      101,
      32,
      116,
      111,
      32,
      105,
      116,
      115,
      97,
      112,
      112,
      108,
      105,
      101,
      100,
      32,
      116,
      111,
      97,
      110,
      32,
      97,
      118,
      101,
      114,
      97,
      103,
      101,
      101,
      102,
      102,
      111,
      114,
      116,
      115,
      32,
      116,
      111,
      116,
      104,
      101,
      32,
      102,
      117,
      116,
      117,
      114,
      101,
      97,
      116,
      116,
      101,
      109,
      112,
      116,
      32,
      116,
      111,
      84,
      104,
      101,
      114,
      101,
      102,
      111,
      114,
      101,
      44,
      99,
      97,
      112,
      97,
      98,
      105,
      108,
      105,
      116,
      121,
      82,
      101,
      112,
      117,
      98,
      108,
      105,
      99,
      97,
      110,
      119,
      97,
      115,
      32,
      102,
      111,
      114,
      109,
      101,
      100,
      69,
      108,
      101,
      99,
      116,
      114,
      111,
      110,
      105,
      99,
      107,
      105,
      108,
      111,
      109,
      101,
      116,
      101,
      114,
      115,
      99,
      104,
      97,
      108,
      108,
      101,
      110,
      103,
      101,
      115,
      112,
      117,
      98,
      108,
      105,
      115,
      104,
      105,
      110,
      103,
      116,
      104,
      101,
      32,
      102,
      111,
      114,
      109,
      101,
      114,
      105,
      110,
      100,
      105,
      103,
      101,
      110,
      111,
      117,
      115,
      100,
      105,
      114,
      101,
      99,
      116,
      105,
      111,
      110,
      115,
      115,
      117,
      98,
      115,
      105,
      100,
      105,
      97,
      114,
      121,
      99,
      111,
      110,
      115,
      112,
      105,
      114,
      97,
      99,
      121,
      100,
      101,
      116,
      97,
      105,
      108,
      115,
      32,
      111,
      102,
      97,
      110,
      100,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      97,
      102,
      102,
      111,
      114,
      100,
      97,
      98,
      108,
      101,
      115,
      117,
      98,
      115,
      116,
      97,
      110,
      99,
      101,
      115,
      114,
      101,
      97,
      115,
      111,
      110,
      32,
      102,
      111,
      114,
      99,
      111,
      110,
      118,
      101,
      110,
      116,
      105,
      111,
      110,
      105,
      116,
      101,
      109,
      116,
      121,
      112,
      101,
      61,
      34,
      97,
      98,
      115,
      111,
      108,
      117,
      116,
      101,
      108,
      121,
      115,
      117,
      112,
      112,
      111,
      115,
      101,
      100,
      108,
      121,
      114,
      101,
      109,
      97,
      105,
      110,
      101,
      100,
      32,
      97,
      97,
      116,
      116,
      114,
      97,
      99,
      116,
      105,
      118,
      101,
      116,
      114,
      97,
      118,
      101,
      108,
      108,
      105,
      110,
      103,
      115,
      101,
      112,
      97,
      114,
      97,
      116,
      101,
      108,
      121,
      102,
      111,
      99,
      117,
      115,
      101,
      115,
      32,
      111,
      110,
      101,
      108,
      101,
      109,
      101,
      110,
      116,
      97,
      114,
      121,
      97,
      112,
      112,
      108,
      105,
      99,
      97,
      98,
      108,
      101,
      102,
      111,
      117,
      110,
      100,
      32,
      116,
      104,
      97,
      116,
      115,
      116,
      121,
      108,
      101,
      115,
      104,
      101,
      101,
      116,
      109,
      97,
      110,
      117,
      115,
      99,
      114,
      105,
      112,
      116,
      115,
      116,
      97,
      110,
      100,
      115,
      32,
      102,
      111,
      114,
      32,
      110,
      111,
      45,
      114,
      101,
      112,
      101,
      97,
      116,
      40,
      115,
      111,
      109,
      101,
      116,
      105,
      109,
      101,
      115,
      67,
      111,
      109,
      109,
      101,
      114,
      99,
      105,
      97,
      108,
      105,
      110,
      32,
      65,
      109,
      101,
      114,
      105,
      99,
      97,
      117,
      110,
      100,
      101,
      114,
      116,
      97,
      107,
      101,
      110,
      113,
      117,
      97,
      114,
      116,
      101,
      114,
      32,
      111,
      102,
      97,
      110,
      32,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      112,
      101,
      114,
      115,
      111,
      110,
      97,
      108,
      108,
      121,
      105,
      110,
      100,
      101,
      120,
      46,
      112,
      104,
      112,
      63,
      60,
      47,
      98,
      117,
      116,
      116,
      111,
      110,
      62,
      10,
      112,
      101,
      114,
      99,
      101,
      110,
      116,
      97,
      103,
      101,
      98,
      101,
      115,
      116,
      45,
      107,
      110,
      111,
      119,
      110,
      99,
      114,
      101,
      97,
      116,
      105,
      110,
      103,
      32,
      97,
      34,
      32,
      100,
      105,
      114,
      61,
      34,
      108,
      116,
      114,
      76,
      105,
      101,
      117,
      116,
      101,
      110,
      97,
      110,
      116,
      10,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      116,
      104,
      101,
      121,
      32,
      119,
      111,
      117,
      108,
      100,
      97,
      98,
      105,
      108,
      105,
      116,
      121,
      32,
      111,
      102,
      109,
      97,
      100,
      101,
      32,
      117,
      112,
      32,
      111,
      102,
      110,
      111,
      116,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      99,
      108,
      101,
      97,
      114,
      32,
      116,
      104,
      97,
      116,
      97,
      114,
      103,
      117,
      101,
      32,
      116,
      104,
      97,
      116,
      116,
      111,
      32,
      97,
      110,
      111,
      116,
      104,
      101,
      114,
      99,
      104,
      105,
      108,
      100,
      114,
      101,
      110,
      39,
      115,
      112,
      117,
      114,
      112,
      111,
      115,
      101,
      32,
      111,
      102,
      102,
      111,
      114,
      109,
      117,
      108,
      97,
      116,
      101,
      100,
      98,
      97,
      115,
      101,
      100,
      32,
      117,
      112,
      111,
      110,
      116,
      104,
      101,
      32,
      114,
      101,
      103,
      105,
      111,
      110,
      115,
      117,
      98,
      106,
      101,
      99,
      116,
      32,
      111,
      102,
      112,
      97,
      115,
      115,
      101,
      110,
      103,
      101,
      114,
      115,
      112,
      111,
      115,
      115,
      101,
      115,
      115,
      105,
      111,
      110,
      46,
      10,
      10,
      73,
      110,
      32,
      116,
      104,
      101,
      32,
      66,
      101,
      102,
      111,
      114,
      101,
      32,
      116,
      104,
      101,
      97,
      102,
      116,
      101,
      114,
      119,
      97,
      114,
      100,
      115,
      99,
      117,
      114,
      114,
      101,
      110,
      116,
      108,
      121,
      32,
      97,
      99,
      114,
      111,
      115,
      115,
      32,
      116,
      104,
      101,
      115,
      99,
      105,
      101,
      110,
      116,
      105,
      102,
      105,
      99,
      99,
      111,
      109,
      109,
      117,
      110,
      105,
      116,
      121,
      46,
      99,
      97,
      112,
      105,
      116,
      97,
      108,
      105,
      115,
      109,
      105,
      110,
      32,
      71,
      101,
      114,
      109,
      97,
      110,
      121,
      114,
      105,
      103,
      104,
      116,
      45,
      119,
      105,
      110,
      103,
      116,
      104,
      101,
      32,
      115,
      121,
      115,
      116,
      101,
      109,
      83,
      111,
      99,
      105,
      101,
      116,
      121,
      32,
      111,
      102,
      112,
      111,
      108,
      105,
      116,
      105,
      99,
      105,
      97,
      110,
      100,
      105,
      114,
      101,
      99,
      116,
      105,
      111,
      110,
      58,
      119,
      101,
      110,
      116,
      32,
      111,
      110,
      32,
      116,
      111,
      114,
      101,
      109,
      111,
      118,
      97,
      108,
      32,
      111,
      102,
      32,
      78,
      101,
      119,
      32,
      89,
      111,
      114,
      107,
      32,
      97,
      112,
      97,
      114,
      116,
      109,
      101,
      110,
      116,
      115,
      105,
      110,
      100,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      100,
      117,
      114,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      117,
      110,
      108,
      101,
      115,
      115,
      32,
      116,
      104,
      101,
      104,
      105,
      115,
      116,
      111,
      114,
      105,
      99,
      97,
      108,
      104,
      97,
      100,
      32,
      98,
      101,
      101,
      110,
      32,
      97,
      100,
      101,
      102,
      105,
      110,
      105,
      116,
      105,
      118,
      101,
      105,
      110,
      103,
      114,
      101,
      100,
      105,
      101,
      110,
      116,
      97,
      116,
      116,
      101,
      110,
      100,
      97,
      110,
      99,
      101,
      67,
      101,
      110,
      116,
      101,
      114,
      32,
      102,
      111,
      114,
      112,
      114,
      111,
      109,
      105,
      110,
      101,
      110,
      99,
      101,
      114,
      101,
      97,
      100,
      121,
      83,
      116,
      97,
      116,
      101,
      115,
      116,
      114,
      97,
      116,
      101,
      103,
      105,
      101,
      115,
      98,
      117,
      116,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      97,
      115,
      32,
      112,
      97,
      114,
      116,
      32,
      111,
      102,
      99,
      111,
      110,
      115,
      116,
      105,
      116,
      117,
      116,
      101,
      99,
      108,
      97,
      105,
      109,
      32,
      116,
      104,
      97,
      116,
      108,
      97,
      98,
      111,
      114,
      97,
      116,
      111,
      114,
      121,
      99,
      111,
      109,
      112,
      97,
      116,
      105,
      98,
      108,
      101,
      102,
      97,
      105,
      108,
      117,
      114,
      101,
      32,
      111,
      102,
      44,
      32,
      115,
      117,
      99,
      104,
      32,
      97,
      115,
      32,
      98,
      101,
      103,
      97,
      110,
      32,
      119,
      105,
      116,
      104,
      117,
      115,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      32,
      116,
      111,
      32,
      112,
      114,
      111,
      118,
      105,
      100,
      101,
      102,
      101,
      97,
      116,
      117,
      114,
      101,
      32,
      111,
      102,
      102,
      114,
      111,
      109,
      32,
      119,
      104,
      105,
      99,
      104,
      47,
      34,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      103,
      101,
      111,
      108,
      111,
      103,
      105,
      99,
      97,
      108,
      115,
      101,
      118,
      101,
      114,
      97,
      108,
      32,
      111,
      102,
      100,
      101,
      108,
      105,
      98,
      101,
      114,
      97,
      116,
      101,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      32,
      104,
      111,
      108,
      100,
      115,
      32,
      116,
      104,
      97,
      116,
      105,
      110,
      103,
      38,
      113,
      117,
      111,
      116,
      59,
      32,
      118,
      97,
      108,
      105,
      103,
      110,
      61,
      116,
      111,
      112,
      116,
      104,
      101,
      32,
      71,
      101,
      114,
      109,
      97,
      110,
      111,
      117,
      116,
      115,
      105,
      100,
      101,
      32,
      111,
      102,
      110,
      101,
      103,
      111,
      116,
      105,
      97,
      116,
      101,
      100,
      104,
      105,
      115,
      32,
      99,
      97,
      114,
      101,
      101,
      114,
      115,
      101,
      112,
      97,
      114,
      97,
      116,
      105,
      111,
      110,
      105,
      100,
      61,
      34,
      115,
      101,
      97,
      114,
      99,
      104,
      119,
      97,
      115,
      32,
      99,
      97,
      108,
      108,
      101,
      100,
      116,
      104,
      101,
      32,
      102,
      111,
      117,
      114,
      116,
      104,
      114,
      101,
      99,
      114,
      101,
      97,
      116,
      105,
      111,
      110,
      111,
      116,
      104,
      101,
      114,
      32,
      116,
      104,
      97,
      110,
      112,
      114,
      101,
      118,
      101,
      110,
      116,
      105,
      111,
      110,
      119,
      104,
      105,
      108,
      101,
      32,
      116,
      104,
      101,
      32,
      101,
      100,
      117,
      99,
      97,
      116,
      105,
      111,
      110,
      44,
      99,
      111,
      110,
      110,
      101,
      99,
      116,
      105,
      110,
      103,
      97,
      99,
      99,
      117,
      114,
      97,
      116,
      101,
      108,
      121,
      119,
      101,
      114,
      101,
      32,
      98,
      117,
      105,
      108,
      116,
      119,
      97,
      115,
      32,
      107,
      105,
      108,
      108,
      101,
      100,
      97,
      103,
      114,
      101,
      101,
      109,
      101,
      110,
      116,
      115,
      109,
      117,
      99,
      104,
      32,
      109,
      111,
      114,
      101,
      32,
      68,
      117,
      101,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      119,
      105,
      100,
      116,
      104,
      58,
      32,
      49,
      48,
      48,
      115,
      111,
      109,
      101,
      32,
      111,
      116,
      104,
      101,
      114,
      75,
      105,
      110,
      103,
      100,
      111,
      109,
      32,
      111,
      102,
      116,
      104,
      101,
      32,
      101,
      110,
      116,
      105,
      114,
      101,
      102,
      97,
      109,
      111,
      117,
      115,
      32,
      102,
      111,
      114,
      116,
      111,
      32,
      99,
      111,
      110,
      110,
      101,
      99,
      116,
      111,
      98,
      106,
      101,
      99,
      116,
      105,
      118,
      101,
      115,
      116,
      104,
      101,
      32,
      70,
      114,
      101,
      110,
      99,
      104,
      112,
      101,
      111,
      112,
      108,
      101,
      32,
      97,
      110,
      100,
      102,
      101,
      97,
      116,
      117,
      114,
      101,
      100,
      34,
      62,
      105,
      115,
      32,
      115,
      97,
      105,
      100,
      32,
      116,
      111,
      115,
      116,
      114,
      117,
      99,
      116,
      117,
      114,
      97,
      108,
      114,
      101,
      102,
      101,
      114,
      101,
      110,
      100,
      117,
      109,
      109,
      111,
      115,
      116,
      32,
      111,
      102,
      116,
      101,
      110,
      97,
      32,
      115,
      101,
      112,
      97,
      114,
      97,
      116,
      101,
      45,
      62,
      10,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      32,
      79,
      102,
      102,
      105,
      99,
      105,
      97,
      108,
      32,
      119,
      111,
      114,
      108,
      100,
      119,
      105,
      100,
      101,
      46,
      97,
      114,
      105,
      97,
      45,
      108,
      97,
      98,
      101,
      108,
      116,
      104,
      101,
      32,
      112,
      108,
      97,
      110,
      101,
      116,
      97,
      110,
      100,
      32,
      105,
      116,
      32,
      119,
      97,
      115,
      100,
      34,
      32,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      108,
      111,
      111,
      107,
      105,
      110,
      103,
      32,
      97,
      116,
      98,
      101,
      110,
      101,
      102,
      105,
      99,
      105,
      97,
      108,
      97,
      114,
      101,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      109,
      111,
      110,
      105,
      116,
      111,
      114,
      105,
      110,
      103,
      114,
      101,
      112,
      111,
      114,
      116,
      101,
      100,
      108,
      121,
      116,
      104,
      101,
      32,
      109,
      111,
      100,
      101,
      114,
      110,
      119,
      111,
      114,
      107,
      105,
      110,
      103,
      32,
      111,
      110,
      97,
      108,
      108,
      111,
      119,
      101,
      100,
      32,
      116,
      111,
      119,
      104,
      101,
      114,
      101,
      32,
      116,
      104,
      101,
      32,
      105,
      110,
      110,
      111,
      118,
      97,
      116,
      105,
      118,
      101,
      60,
      47,
      97,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      115,
      111,
      117,
      110,
      100,
      116,
      114,
      97,
      99,
      107,
      115,
      101,
      97,
      114,
      99,
      104,
      70,
      111,
      114,
      109,
      116,
      101,
      110,
      100,
      32,
      116,
      111,
      32,
      98,
      101,
      105,
      110,
      112,
      117,
      116,
      32,
      105,
      100,
      61,
      34,
      111,
      112,
      101,
      110,
      105,
      110,
      103,
      32,
      111,
      102,
      114,
      101,
      115,
      116,
      114,
      105,
      99,
      116,
      101,
      100,
      97,
      100,
      111,
      112,
      116,
      101,
      100,
      32,
      98,
      121,
      97,
      100,
      100,
      114,
      101,
      115,
      115,
      105,
      110,
      103,
      116,
      104,
      101,
      111,
      108,
      111,
      103,
      105,
      97,
      110,
      109,
      101,
      116,
      104,
      111,
      100,
      115,
      32,
      111,
      102,
      118,
      97,
      114,
      105,
      97,
      110,
      116,
      32,
      111,
      102,
      67,
      104,
      114,
      105,
      115,
      116,
      105,
      97,
      110,
      32,
      118,
      101,
      114,
      121,
      32,
      108,
      97,
      114,
      103,
      101,
      97,
      117,
      116,
      111,
      109,
      111,
      116,
      105,
      118,
      101,
      98,
      121,
      32,
      102,
      97,
      114,
      32,
      116,
      104,
      101,
      114,
      97,
      110,
      103,
      101,
      32,
      102,
      114,
      111,
      109,
      112,
      117,
      114,
      115,
      117,
      105,
      116,
      32,
      111,
      102,
      102,
      111,
      108,
      108,
      111,
      119,
      32,
      116,
      104,
      101,
      98,
      114,
      111,
      117,
      103,
      104,
      116,
      32,
      116,
      111,
      105,
      110,
      32,
      69,
      110,
      103,
      108,
      97,
      110,
      100,
      97,
      103,
      114,
      101,
      101,
      32,
      116,
      104,
      97,
      116,
      97,
      99,
      99,
      117,
      115,
      101,
      100,
      32,
      111,
      102,
      99,
      111,
      109,
      101,
      115,
      32,
      102,
      114,
      111,
      109,
      112,
      114,
      101,
      118,
      101,
      110,
      116,
      105,
      110,
      103,
      100,
      105,
      118,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      104,
      105,
      115,
      32,
      111,
      114,
      32,
      104,
      101,
      114,
      116,
      114,
      101,
      109,
      101,
      110,
      100,
      111,
      117,
      115,
      102,
      114,
      101,
      101,
      100,
      111,
      109,
      32,
      111,
      102,
      99,
      111,
      110,
      99,
      101,
      114,
      110,
      105,
      110,
      103,
      48,
      32,
      49,
      101,
      109,
      32,
      49,
      101,
      109,
      59,
      66,
      97,
      115,
      107,
      101,
      116,
      98,
      97,
      108,
      108,
      47,
      115,
      116,
      121,
      108,
      101,
      46,
      99,
      115,
      115,
      97,
      110,
      32,
      101,
      97,
      114,
      108,
      105,
      101,
      114,
      101,
      118,
      101,
      110,
      32,
      97,
      102,
      116,
      101,
      114,
      47,
      34,
      32,
      116,
      105,
      116,
      108,
      101,
      61,
      34,
      46,
      99,
      111,
      109,
      47,
      105,
      110,
      100,
      101,
      120,
      116,
      97,
      107,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      112,
      105,
      116,
      116,
      115,
      98,
      117,
      114,
      103,
      104,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      34,
      62,
      13,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      40,
      102,
      116,
      117,
      114,
      110,
      101,
      100,
      32,
      111,
      117,
      116,
      104,
      97,
      118,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      13,
      10,
      32,
      111,
      99,
      99,
      97,
      115,
      105,
      111,
      110,
      97,
      108,
      98,
      101,
      99,
      97,
      117,
      115,
      101,
      32,
      105,
      116,
      115,
      116,
      97,
      114,
      116,
      101,
      100,
      32,
      116,
      111,
      112,
      104,
      121,
      115,
      105,
      99,
      97,
      108,
      108,
      121,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      32,
      32,
      99,
      114,
      101,
      97,
      116,
      101,
      100,
      32,
      98,
      121,
      67,
      117,
      114,
      114,
      101,
      110,
      116,
      108,
      121,
      44,
      32,
      98,
      103,
      99,
      111,
      108,
      111,
      114,
      61,
      34,
      116,
      97,
      98,
      105,
      110,
      100,
      101,
      120,
      61,
      34,
      100,
      105,
      115,
      97,
      115,
      116,
      114,
      111,
      117,
      115,
      65,
      110,
      97,
      108,
      121,
      116,
      105,
      99,
      115,
      32,
      97,
      108,
      115,
      111,
      32,
      104,
      97,
      115,
      32,
      97,
      62,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      60,
      47,
      115,
      116,
      121,
      108,
      101,
      62,
      10,
      60,
      99,
      97,
      108,
      108,
      101,
      100,
      32,
      102,
      111,
      114,
      115,
      105,
      110,
      103,
      101,
      114,
      32,
      97,
      110,
      100,
      46,
      115,
      114,
      99,
      32,
      61,
      32,
      34,
      47,
      47,
      118,
      105,
      111,
      108,
      97,
      116,
      105,
      111,
      110,
      115,
      116,
      104,
      105,
      115,
      32,
      112,
      111,
      105,
      110,
      116,
      99,
      111,
      110,
      115,
      116,
      97,
      110,
      116,
      108,
      121,
      105,
      115,
      32,
      108,
      111,
      99,
      97,
      116,
      101,
      100,
      114,
      101,
      99,
      111,
      114,
      100,
      105,
      110,
      103,
      115,
      100,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      110,
      101,
      100,
      101,
      114,
      108,
      97,
      110,
      100,
      115,
      112,
      111,
      114,
      116,
      117,
      103,
      117,
      195,
      170,
      115,
      215,
      162,
      215,
      145,
      215,
      168,
      215,
      153,
      215,
      170,
      217,
      129,
      216,
      167,
      216,
      177,
      216,
      179,
      219,
      140,
      100,
      101,
      115,
      97,
      114,
      114,
      111,
      108,
      108,
      111,
      99,
      111,
      109,
      101,
      110,
      116,
      97,
      114,
      105,
      111,
      101,
      100,
      117,
      99,
      97,
      99,
      105,
      195,
      179,
      110,
      115,
      101,
      112,
      116,
      105,
      101,
      109,
      98,
      114,
      101,
      114,
      101,
      103,
      105,
      115,
      116,
      114,
      97,
      100,
      111,
      100,
      105,
      114,
      101,
      99,
      99,
      105,
      195,
      179,
      110,
      117,
      98,
      105,
      99,
      97,
      99,
      105,
      195,
      179,
      110,
      112,
      117,
      98,
      108,
      105,
      99,
      105,
      100,
      97,
      100,
      114,
      101,
      115,
      112,
      117,
      101,
      115,
      116,
      97,
      115,
      114,
      101,
      115,
      117,
      108,
      116,
      97,
      100,
      111,
      115,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      101,
      114,
      101,
      115,
      101,
      114,
      118,
      97,
      100,
      111,
      115,
      97,
      114,
      116,
      195,
      173,
      99,
      117,
      108,
      111,
      115,
      100,
      105,
      102,
      101,
      114,
      101,
      110,
      116,
      101,
      115,
      115,
      105,
      103,
      117,
      105,
      101,
      110,
      116,
      101,
      115,
      114,
      101,
      112,
      195,
      186,
      98,
      108,
      105,
      99,
      97,
      115,
      105,
      116,
      117,
      97,
      99,
      105,
      195,
      179,
      110,
      109,
      105,
      110,
      105,
      115,
      116,
      101,
      114,
      105,
      111,
      112,
      114,
      105,
      118,
      97,
      99,
      105,
      100,
      97,
      100,
      100,
      105,
      114,
      101,
      99,
      116,
      111,
      114,
      105,
      111,
      102,
      111,
      114,
      109,
      97,
      99,
      105,
      195,
      179,
      110,
      112,
      111,
      98,
      108,
      97,
      99,
      105,
      195,
      179,
      110,
      112,
      114,
      101,
      115,
      105,
      100,
      101,
      110,
      116,
      101,
      99,
      111,
      110,
      116,
      101,
      110,
      105,
      100,
      111,
      115,
      97,
      99,
      99,
      101,
      115,
      111,
      114,
      105,
      111,
      115,
      116,
      101,
      99,
      104,
      110,
      111,
      114,
      97,
      116,
      105,
      112,
      101,
      114,
      115,
      111,
      110,
      97,
      108,
      101,
      115,
      99,
      97,
      116,
      101,
      103,
      111,
      114,
      195,
      173,
      97,
      101,
      115,
      112,
      101,
      99,
      105,
      97,
      108,
      101,
      115,
      100,
      105,
      115,
      112,
      111,
      110,
      105,
      98,
      108,
      101,
      97,
      99,
      116,
      117,
      97,
      108,
      105,
      100,
      97,
      100,
      114,
      101,
      102,
      101,
      114,
      101,
      110,
      99,
      105,
      97,
      118,
      97,
      108,
      108,
      97,
      100,
      111,
      108,
      105,
      100,
      98,
      105,
      98,
      108,
      105,
      111,
      116,
      101,
      99,
      97,
      114,
      101,
      108,
      97,
      99,
      105,
      111,
      110,
      101,
      115,
      99,
      97,
      108,
      101,
      110,
      100,
      97,
      114,
      105,
      111,
      112,
      111,
      108,
      195,
      173,
      116,
      105,
      99,
      97,
      115,
      97,
      110,
      116,
      101,
      114,
      105,
      111,
      114,
      101,
      115,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      111,
      115,
      110,
      97,
      116,
      117,
      114,
      97,
      108,
      101,
      122,
      97,
      109,
      97,
      116,
      101,
      114,
      105,
      97,
      108,
      101,
      115,
      100,
      105,
      102,
      101,
      114,
      101,
      110,
      99,
      105,
      97,
      101,
      99,
      111,
      110,
      195,
      179,
      109,
      105,
      99,
      97,
      116,
      114,
      97,
      110,
      115,
      112,
      111,
      114,
      116,
      101,
      114,
      111,
      100,
      114,
      195,
      173,
      103,
      117,
      101,
      122,
      112,
      97,
      114,
      116,
      105,
      99,
      105,
      112,
      97,
      114,
      101,
      110,
      99,
      117,
      101,
      110,
      116,
      114,
      97,
      110,
      100,
      105,
      115,
      99,
      117,
      115,
      105,
      195,
      179,
      110,
      101,
      115,
      116,
      114,
      117,
      99,
      116,
      117,
      114,
      97,
      102,
      117,
      110,
      100,
      97,
      99,
      105,
      195,
      179,
      110,
      102,
      114,
      101,
      99,
      117,
      101,
      110,
      116,
      101,
      115,
      112,
      101,
      114,
      109,
      97,
      110,
      101,
      110,
      116,
      101,
      116,
      111,
      116,
      97,
      108,
      109,
      101,
      110,
      116,
      101,
      208,
      188,
      208,
      190,
      208,
      182,
      208,
      189,
      208,
      190,
      208,
      177,
      209,
      131,
      208,
      180,
      208,
      181,
      209,
      130,
      208,
      188,
      208,
      190,
      208,
      182,
      208,
      181,
      209,
      130,
      208,
      178,
      209,
      128,
      208,
      181,
      208,
      188,
      209,
      143,
      209,
      130,
      208,
      176,
      208,
      186,
      208,
      182,
      208,
      181,
      209,
      135,
      209,
      130,
      208,
      190,
      208,
      177,
      209,
      139,
      208,
      177,
      208,
      190,
      208,
      187,
      208,
      181,
      208,
      181,
      208,
      190,
      209,
      135,
      208,
      181,
      208,
      189,
      209,
      140,
      209,
      141,
      209,
      130,
      208,
      190,
      208,
      179,
      208,
      190,
      208,
      186,
      208,
      190,
      208,
      179,
      208,
      180,
      208,
      176,
      208,
      191,
      208,
      190,
      209,
      129,
      208,
      187,
      208,
      181,
      208,
      178,
      209,
      129,
      208,
      181,
      208,
      179,
      208,
      190,
      209,
      129,
      208,
      176,
      208,
      185,
      209,
      130,
      208,
      181,
      209,
      135,
      208,
      181,
      209,
      128,
      208,
      181,
      208,
      183,
      208,
      188,
      208,
      190,
      208,
      179,
      209,
      131,
      209,
      130,
      209,
      129,
      208,
      176,
      208,
      185,
      209,
      130,
      208,
      176,
      208,
      182,
      208,
      184,
      208,
      183,
      208,
      189,
      208,
      184,
      208,
      188,
      208,
      181,
      208,
      182,
      208,
      180,
      209,
      131,
      208,
      177,
      209,
      131,
      208,
      180,
      209,
      131,
      209,
      130,
      208,
      159,
      208,
      190,
      208,
      184,
      209,
      129,
      208,
      186,
      208,
      183,
      208,
      180,
      208,
      181,
      209,
      129,
      209,
      140,
      208,
      178,
      208,
      184,
      208,
      180,
      208,
      181,
      208,
      190,
      209,
      129,
      208,
      178,
      209,
      143,
      208,
      183,
      208,
      184,
      208,
      189,
      209,
      131,
      208,
      182,
      208,
      189,
      208,
      190,
      209,
      129,
      208,
      178,
      208,
      190,
      208,
      181,
      208,
      185,
      208,
      187,
      209,
      142,
      208,
      180,
      208,
      181,
      208,
      185,
      208,
      191,
      208,
      190,
      209,
      128,
      208,
      189,
      208,
      190,
      208,
      188,
      208,
      189,
      208,
      190,
      208,
      179,
      208,
      190,
      208,
      180,
      208,
      181,
      209,
      130,
      208,
      181,
      208,
      185,
      209,
      129,
      208,
      178,
      208,
      190,
      208,
      184,
      209,
      133,
      208,
      191,
      209,
      128,
      208,
      176,
      208,
      178,
      208,
      176,
      209,
      130,
      208,
      176,
      208,
      186,
      208,
      190,
      208,
      185,
      208,
      188,
      208,
      181,
      209,
      129,
      209,
      130,
      208,
      190,
      208,
      184,
      208,
      188,
      208,
      181,
      208,
      181,
      209,
      130,
      208,
      182,
      208,
      184,
      208,
      183,
      208,
      189,
      209,
      140,
      208,
      190,
      208,
      180,
      208,
      189,
      208,
      190,
      208,
      185,
      208,
      187,
      209,
      131,
      209,
      135,
      209,
      136,
      208,
      181,
      208,
      191,
      208,
      181,
      209,
      128,
      208,
      181,
      208,
      180,
      209,
      135,
      208,
      176,
      209,
      129,
      209,
      130,
      208,
      184,
      209,
      135,
      208,
      176,
      209,
      129,
      209,
      130,
      209,
      140,
      209,
      128,
      208,
      176,
      208,
      177,
      208,
      190,
      209,
      130,
      208,
      189,
      208,
      190,
      208,
      178,
      209,
      139,
      209,
      133,
      208,
      191,
      209,
      128,
      208,
      176,
      208,
      178,
      208,
      190,
      209,
      129,
      208,
      190,
      208,
      177,
      208,
      190,
      208,
      185,
      208,
      191,
      208,
      190,
      209,
      130,
      208,
      190,
      208,
      188,
      208,
      188,
      208,
      181,
      208,
      189,
      208,
      181,
      208,
      181,
      209,
      135,
      208,
      184,
      209,
      129,
      208,
      187,
      208,
      181,
      208,
      189,
      208,
      190,
      208,
      178,
      209,
      139,
      208,
      181,
      209,
      131,
      209,
      129,
      208,
      187,
      209,
      131,
      208,
      179,
      208,
      190,
      208,
      186,
      208,
      190,
      208,
      187,
      208,
      190,
      208,
      189,
      208,
      176,
      208,
      183,
      208,
      176,
      208,
      180,
      209,
      130,
      208,
      176,
      208,
      186,
      208,
      190,
      208,
      181,
      209,
      130,
      208,
      190,
      208,
      179,
      208,
      180,
      208,
      176,
      208,
      191,
      208,
      190,
      209,
      135,
      209,
      130,
      208,
      184,
      208,
      159,
      208,
      190,
      209,
      129,
      208,
      187,
      208,
      181,
      209,
      130,
      208,
      176,
      208,
      186,
      208,
      184,
      208,
      181,
      208,
      189,
      208,
      190,
      208,
      178,
      209,
      139,
      208,
      185,
      209,
      129,
      209,
      130,
      208,
      190,
      208,
      184,
      209,
      130,
      209,
      130,
      208,
      176,
      208,
      186,
      208,
      184,
      209,
      133,
      209,
      129,
      209,
      128,
      208,
      176,
      208,
      183,
      209,
      131,
      208,
      161,
      208,
      176,
      208,
      189,
      208,
      186,
      209,
      130,
      209,
      132,
      208,
      190,
      209,
      128,
      209,
      131,
      208,
      188,
      208,
      154,
      208,
      190,
      208,
      179,
      208,
      180,
      208,
      176,
      208,
      186,
      208,
      189,
      208,
      184,
      208,
      179,
      208,
      184,
      209,
      129,
      208,
      187,
      208,
      190,
      208,
      178,
      208,
      176,
      208,
      189,
      208,
      176,
      209,
      136,
      208,
      181,
      208,
      185,
      208,
      189,
      208,
      176,
      208,
      185,
      209,
      130,
      208,
      184,
      209,
      129,
      208,
      178,
      208,
      190,
      208,
      184,
      208,
      188,
      209,
      129,
      208,
      178,
      209,
      143,
      208,
      183,
      209,
      140,
      208,
      187,
      209,
      142,
      208,
      177,
      208,
      190,
      208,
      185,
      209,
      135,
      208,
      176,
      209,
      129,
      209,
      130,
      208,
      190,
      209,
      129,
      209,
      128,
      208,
      181,
      208,
      180,
      208,
      184,
      208,
      154,
      209,
      128,
      208,
      190,
      208,
      188,
      208,
      181,
      208,
      164,
      208,
      190,
      209,
      128,
      209,
      131,
      208,
      188,
      209,
      128,
      209,
      139,
      208,
      189,
      208,
      186,
      208,
      181,
      209,
      129,
      209,
      130,
      208,
      176,
      208,
      187,
      208,
      184,
      208,
      191,
      208,
      190,
      208,
      184,
      209,
      129,
      208,
      186,
      209,
      130,
      209,
      139,
      209,
      129,
      209,
      143,
      209,
      135,
      208,
      188,
      208,
      181,
      209,
      129,
      209,
      143,
      209,
      134,
      209,
      134,
      208,
      181,
      208,
      189,
      209,
      130,
      209,
      128,
      209,
      130,
      209,
      128,
      209,
      131,
      208,
      180,
      208,
      176,
      209,
      129,
      208,
      176,
      208,
      188,
      209,
      139,
      209,
      133,
      209,
      128,
      209,
      139,
      208,
      189,
      208,
      186,
      208,
      176,
      208,
      157,
      208,
      190,
      208,
      178,
      209,
      139,
      208,
      185,
      209,
      135,
      208,
      176,
      209,
      129,
      208,
      190,
      208,
      178,
      208,
      188,
      208,
      181,
      209,
      129,
      209,
      130,
      208,
      176,
      209,
      132,
      208,
      184,
      208,
      187,
      209,
      140,
      208,
      188,
      208,
      188,
      208,
      176,
      209,
      128,
      209,
      130,
      208,
      176,
      209,
      129,
      209,
      130,
      209,
      128,
      208,
      176,
      208,
      189,
      208,
      188,
      208,
      181,
      209,
      129,
      209,
      130,
      208,
      181,
      209,
      130,
      208,
      181,
      208,
      186,
      209,
      129,
      209,
      130,
      208,
      189,
      208,
      176,
      209,
      136,
      208,
      184,
      209,
      133,
      208,
      188,
      208,
      184,
      208,
      189,
      209,
      131,
      209,
      130,
      208,
      184,
      208,
      188,
      208,
      181,
      208,
      189,
      208,
      184,
      208,
      184,
      208,
      188,
      208,
      181,
      209,
      142,
      209,
      130,
      208,
      189,
      208,
      190,
      208,
      188,
      208,
      181,
      209,
      128,
      208,
      179,
      208,
      190,
      209,
      128,
      208,
      190,
      208,
      180,
      209,
      129,
      208,
      176,
      208,
      188,
      208,
      190,
      208,
      188,
      209,
      141,
      209,
      130,
      208,
      190,
      208,
      188,
      209,
      131,
      208,
      186,
      208,
      190,
      208,
      189,
      209,
      134,
      208,
      181,
      209,
      129,
      208,
      178,
      208,
      190,
      208,
      181,
      208,
      188,
      208,
      186,
      208,
      176,
      208,
      186,
      208,
      190,
      208,
      185,
      208,
      144,
      209,
      128,
      209,
      133,
      208,
      184,
      208,
      178,
      217,
      133,
      217,
      134,
      216,
      170,
      216,
      175,
      217,
      137,
      216,
      165,
      216,
      177,
      216,
      179,
      216,
      167,
      217,
      132,
      216,
      177,
      216,
      179,
      216,
      167,
      217,
      132,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      185,
      216,
      167,
      217,
      133,
      217,
      131,
      216,
      170,
      216,
      168,
      217,
      135,
      216,
      167,
      216,
      168,
      216,
      177,
      216,
      167,
      217,
      133,
      216,
      172,
      216,
      167,
      217,
      132,
      217,
      138,
      217,
      136,
      217,
      133,
      216,
      167,
      217,
      132,
      216,
      181,
      217,
      136,
      216,
      177,
      216,
      172,
      216,
      175,
      217,
      138,
      216,
      175,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      185,
      216,
      182,
      217,
      136,
      216,
      165,
      216,
      182,
      216,
      167,
      217,
      129,
      216,
      169,
      216,
      167,
      217,
      132,
      217,
      130,
      216,
      179,
      217,
      133,
      216,
      167,
      217,
      132,
      216,
      185,
      216,
      167,
      216,
      168,
      216,
      170,
      216,
      173,
      217,
      133,
      217,
      138,
      217,
      132,
      217,
      133,
      217,
      132,
      217,
      129,
      216,
      167,
      216,
      170,
      217,
      133,
      217,
      132,
      216,
      170,
      217,
      130,
      217,
      137,
      216,
      170,
      216,
      185,
      216,
      175,
      217,
      138,
      217,
      132,
      216,
      167,
      217,
      132,
      216,
      180,
      216,
      185,
      216,
      177,
      216,
      163,
      216,
      174,
      216,
      168,
      216,
      167,
      216,
      177,
      216,
      170,
      216,
      183,
      217,
      136,
      217,
      138,
      216,
      177,
      216,
      185,
      217,
      132,
      217,
      138,
      217,
      131,
      217,
      133,
      216,
      165,
      216,
      177,
      217,
      129,
      216,
      167,
      217,
      130,
      216,
      183,
      217,
      132,
      216,
      168,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      217,
      132,
      216,
      186,
      216,
      169,
      216,
      170,
      216,
      177,
      216,
      170,
      217,
      138,
      216,
      168,
      216,
      167,
      217,
      132,
      217,
      134,
      216,
      167,
      216,
      179,
      216,
      167,
      217,
      132,
      216,
      180,
      217,
      138,
      216,
      174,
      217,
      133,
      217,
      134,
      216,
      170,
      216,
      175,
      217,
      138,
      216,
      167,
      217,
      132,
      216,
      185,
      216,
      177,
      216,
      168,
      216,
      167,
      217,
      132,
      217,
      130,
      216,
      181,
      216,
      181,
      216,
      167,
      217,
      129,
      217,
      132,
      216,
      167,
      217,
      133,
      216,
      185,
      217,
      132,
      217,
      138,
      217,
      135,
      216,
      167,
      216,
      170,
      216,
      173,
      216,
      175,
      217,
      138,
      216,
      171,
      216,
      167,
      217,
      132,
      217,
      132,
      217,
      135,
      217,
      133,
      216,
      167,
      217,
      132,
      216,
      185,
      217,
      133,
      217,
      132,
      217,
      133,
      217,
      131,
      216,
      170,
      216,
      168,
      216,
      169,
      217,
      138,
      217,
      133,
      217,
      131,
      217,
      134,
      217,
      131,
      216,
      167,
      217,
      132,
      216,
      183,
      217,
      129,
      217,
      132,
      217,
      129,
      217,
      138,
      216,
      175,
      217,
      138,
      217,
      136,
      216,
      165,
      216,
      175,
      216,
      167,
      216,
      177,
      216,
      169,
      216,
      170,
      216,
      167,
      216,
      177,
      217,
      138,
      216,
      174,
      216,
      167,
      217,
      132,
      216,
      181,
      216,
      173,
      216,
      169,
      216,
      170,
      216,
      179,
      216,
      172,
      217,
      138,
      217,
      132,
      216,
      167,
      217,
      132,
      217,
      136,
      217,
      130,
      216,
      170,
      216,
      185,
      217,
      134,
      216,
      175,
      217,
      133,
      216,
      167,
      217,
      133,
      216,
      175,
      217,
      138,
      217,
      134,
      216,
      169,
      216,
      170,
      216,
      181,
      217,
      133,
      217,
      138,
      217,
      133,
      216,
      163,
      216,
      177,
      216,
      180,
      217,
      138,
      217,
      129,
      216,
      167,
      217,
      132,
      216,
      176,
      217,
      138,
      217,
      134,
      216,
      185,
      216,
      177,
      216,
      168,
      217,
      138,
      216,
      169,
      216,
      168,
      217,
      136,
      216,
      167,
      216,
      168,
      216,
      169,
      216,
      163,
      217,
      132,
      216,
      185,
      216,
      167,
      216,
      168,
      216,
      167,
      217,
      132,
      216,
      179,
      217,
      129,
      216,
      177,
      217,
      133,
      216,
      180,
      216,
      167,
      217,
      131,
      217,
      132,
      216,
      170,
      216,
      185,
      216,
      167,
      217,
      132,
      217,
      137,
      216,
      167,
      217,
      132,
      216,
      163,
      217,
      136,
      217,
      132,
      216,
      167,
      217,
      132,
      216,
      179,
      217,
      134,
      216,
      169,
      216,
      172,
      216,
      167,
      217,
      133,
      216,
      185,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      181,
      216,
      173,
      217,
      129,
      216,
      167,
      217,
      132,
      216,
      175,
      217,
      138,
      217,
      134,
      217,
      131,
      217,
      132,
      217,
      133,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      216,
      174,
      216,
      167,
      216,
      181,
      216,
      167,
      217,
      132,
      217,
      133,
      217,
      132,
      217,
      129,
      216,
      163,
      216,
      185,
      216,
      182,
      216,
      167,
      216,
      161,
      217,
      131,
      216,
      170,
      216,
      167,
      216,
      168,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      174,
      217,
      138,
      216,
      177,
      216,
      177,
      216,
      179,
      216,
      167,
      216,
      166,
      217,
      132,
      216,
      167,
      217,
      132,
      217,
      130,
      217,
      132,
      216,
      168,
      216,
      167,
      217,
      132,
      216,
      163,
      216,
      175,
      216,
      168,
      217,
      133,
      217,
      130,
      216,
      167,
      216,
      183,
      216,
      185,
      217,
      133,
      216,
      177,
      216,
      167,
      216,
      179,
      217,
      132,
      217,
      133,
      217,
      134,
      216,
      183,
      217,
      130,
      216,
      169,
      216,
      167,
      217,
      132,
      217,
      131,
      216,
      170,
      216,
      168,
      216,
      167,
      217,
      132,
      216,
      177,
      216,
      172,
      217,
      132,
      216,
      167,
      216,
      180,
      216,
      170,
      216,
      177,
      217,
      131,
      216,
      167,
      217,
      132,
      217,
      130,
      216,
      175,
      217,
      133,
      217,
      138,
      216,
      185,
      216,
      183,
      217,
      138,
      217,
      131,
      115,
      66,
      121,
      84,
      97,
      103,
      78,
      97,
      109,
      101,
      40,
      46,
      106,
      112,
      103,
      34,
      32,
      97,
      108,
      116,
      61,
      34,
      49,
      112,
      120,
      32,
      115,
      111,
      108,
      105,
      100,
      32,
      35,
      46,
      103,
      105,
      102,
      34,
      32,
      97,
      108,
      116,
      61,
      34,
      116,
      114,
      97,
      110,
      115,
      112,
      97,
      114,
      101,
      110,
      116,
      105,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      97,
      112,
      112,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      34,
      32,
      111,
      110,
      99,
      108,
      105,
      99,
      107,
      61,
      34,
      101,
      115,
      116,
      97,
      98,
      108,
      105,
      115,
      104,
      101,
      100,
      97,
      100,
      118,
      101,
      114,
      116,
      105,
      115,
      105,
      110,
      103,
      46,
      112,
      110,
      103,
      34,
      32,
      97,
      108,
      116,
      61,
      34,
      101,
      110,
      118,
      105,
      114,
      111,
      110,
      109,
      101,
      110,
      116,
      112,
      101,
      114,
      102,
      111,
      114,
      109,
      97,
      110,
      99,
      101,
      97,
      112,
      112,
      114,
      111,
      112,
      114,
      105,
      97,
      116,
      101,
      38,
      97,
      109,
      112,
      59,
      109,
      100,
      97,
      115,
      104,
      59,
      105,
      109,
      109,
      101,
      100,
      105,
      97,
      116,
      101,
      108,
      121,
      60,
      47,
      115,
      116,
      114,
      111,
      110,
      103,
      62,
      60,
      47,
      114,
      97,
      116,
      104,
      101,
      114,
      32,
      116,
      104,
      97,
      110,
      116,
      101,
      109,
      112,
      101,
      114,
      97,
      116,
      117,
      114,
      101,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      109,
      101,
      110,
      116,
      99,
      111,
      109,
      112,
      101,
      116,
      105,
      116,
      105,
      111,
      110,
      112,
      108,
      97,
      99,
      101,
      104,
      111,
      108,
      100,
      101,
      114,
      118,
      105,
      115,
      105,
      98,
      105,
      108,
      105,
      116,
      121,
      58,
      99,
      111,
      112,
      121,
      114,
      105,
      103,
      104,
      116,
      34,
      62,
      48,
      34,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      101,
      118,
      101,
      110,
      32,
      116,
      104,
      111,
      117,
      103,
      104,
      114,
      101,
      112,
      108,
      97,
      99,
      101,
      109,
      101,
      110,
      116,
      100,
      101,
      115,
      116,
      105,
      110,
      97,
      116,
      105,
      111,
      110,
      67,
      111,
      114,
      112,
      111,
      114,
      97,
      116,
      105,
      111,
      110,
      60,
      117,
      108,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      65,
      115,
      115,
      111,
      99,
      105,
      97,
      116,
      105,
      111,
      110,
      105,
      110,
      100,
      105,
      118,
      105,
      100,
      117,
      97,
      108,
      115,
      112,
      101,
      114,
      115,
      112,
      101,
      99,
      116,
      105,
      118,
      101,
      115,
      101,
      116,
      84,
      105,
      109,
      101,
      111,
      117,
      116,
      40,
      117,
      114,
      108,
      40,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      109,
      97,
      116,
      104,
      101,
      109,
      97,
      116,
      105,
      99,
      115,
      109,
      97,
      114,
      103,
      105,
      110,
      45,
      116,
      111,
      112,
      58,
      101,
      118,
      101,
      110,
      116,
      117,
      97,
      108,
      108,
      121,
      32,
      100,
      101,
      115,
      99,
      114,
      105,
      112,
      116,
      105,
      111,
      110,
      41,
      32,
      110,
      111,
      45,
      114,
      101,
      112,
      101,
      97,
      116,
      99,
      111,
      108,
      108,
      101,
      99,
      116,
      105,
      111,
      110,
      115,
      46,
      74,
      80,
      71,
      124,
      116,
      104,
      117,
      109,
      98,
      124,
      112,
      97,
      114,
      116,
      105,
      99,
      105,
      112,
      97,
      116,
      101,
      47,
      104,
      101,
      97,
      100,
      62,
      60,
      98,
      111,
      100,
      121,
      102,
      108,
      111,
      97,
      116,
      58,
      108,
      101,
      102,
      116,
      59,
      60,
      108,
      105,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      104,
      117,
      110,
      100,
      114,
      101,
      100,
      115,
      32,
      111,
      102,
      10,
      10,
      72,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      99,
      111,
      109,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      99,
      108,
      101,
      97,
      114,
      58,
      98,
      111,
      116,
      104,
      59,
      99,
      111,
      111,
      112,
      101,
      114,
      97,
      116,
      105,
      111,
      110,
      119,
      105,
      116,
      104,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      108,
      97,
      98,
      101,
      108,
      32,
      102,
      111,
      114,
      61,
      34,
      98,
      111,
      114,
      100,
      101,
      114,
      45,
      116,
      111,
      112,
      58,
      78,
      101,
      119,
      32,
      90,
      101,
      97,
      108,
      97,
      110,
      100,
      114,
      101,
      99,
      111,
      109,
      109,
      101,
      110,
      100,
      101,
      100,
      112,
      104,
      111,
      116,
      111,
      103,
      114,
      97,
      112,
      104,
      121,
      105,
      110,
      116,
      101,
      114,
      101,
      115,
      116,
      105,
      110,
      103,
      38,
      108,
      116,
      59,
      115,
      117,
      112,
      38,
      103,
      116,
      59,
      99,
      111,
      110,
      116,
      114,
      111,
      118,
      101,
      114,
      115,
      121,
      78,
      101,
      116,
      104,
      101,
      114,
      108,
      97,
      110,
      100,
      115,
      97,
      108,
      116,
      101,
      114,
      110,
      97,
      116,
      105,
      118,
      101,
      109,
      97,
      120,
      108,
      101,
      110,
      103,
      116,
      104,
      61,
      34,
      115,
      119,
      105,
      116,
      122,
      101,
      114,
      108,
      97,
      110,
      100,
      68,
      101,
      118,
      101,
      108,
      111,
      112,
      109,
      101,
      110,
      116,
      101,
      115,
      115,
      101,
      110,
      116,
      105,
      97,
      108,
      108,
      121,
      10,
      10,
      65,
      108,
      116,
      104,
      111,
      117,
      103,
      104,
      32,
      60,
      47,
      116,
      101,
      120,
      116,
      97,
      114,
      101,
      97,
      62,
      116,
      104,
      117,
      110,
      100,
      101,
      114,
      98,
      105,
      114,
      100,
      114,
      101,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      101,
      100,
      38,
      97,
      109,
      112,
      59,
      110,
      100,
      97,
      115,
      104,
      59,
      115,
      112,
      101,
      99,
      117,
      108,
      97,
      116,
      105,
      111,
      110,
      99,
      111,
      109,
      109,
      117,
      110,
      105,
      116,
      105,
      101,
      115,
      108,
      101,
      103,
      105,
      115,
      108,
      97,
      116,
      105,
      111,
      110,
      101,
      108,
      101,
      99,
      116,
      114,
      111,
      110,
      105,
      99,
      115,
      10,
      9,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      105,
      108,
      108,
      117,
      115,
      116,
      114,
      97,
      116,
      101,
      100,
      101,
      110,
      103,
      105,
      110,
      101,
      101,
      114,
      105,
      110,
      103,
      116,
      101,
      114,
      114,
      105,
      116,
      111,
      114,
      105,
      101,
      115,
      97,
      117,
      116,
      104,
      111,
      114,
      105,
      116,
      105,
      101,
      115,
      100,
      105,
      115,
      116,
      114,
      105,
      98,
      117,
      116,
      101,
      100,
      54,
      34,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      115,
      97,
      110,
      115,
      45,
      115,
      101,
      114,
      105,
      102,
      59,
      99,
      97,
      112,
      97,
      98,
      108,
      101,
      32,
      111,
      102,
      32,
      100,
      105,
      115,
      97,
      112,
      112,
      101,
      97,
      114,
      101,
      100,
      105,
      110,
      116,
      101,
      114,
      97,
      99,
      116,
      105,
      118,
      101,
      108,
      111,
      111,
      107,
      105,
      110,
      103,
      32,
      102,
      111,
      114,
      105,
      116,
      32,
      119,
      111,
      117,
      108,
      100,
      32,
      98,
      101,
      65,
      102,
      103,
      104,
      97,
      110,
      105,
      115,
      116,
      97,
      110,
      119,
      97,
      115,
      32,
      99,
      114,
      101,
      97,
      116,
      101,
      100,
      77,
      97,
      116,
      104,
      46,
      102,
      108,
      111,
      111,
      114,
      40,
      115,
      117,
      114,
      114,
      111,
      117,
      110,
      100,
      105,
      110,
      103,
      99,
      97,
      110,
      32,
      97,
      108,
      115,
      111,
      32,
      98,
      101,
      111,
      98,
      115,
      101,
      114,
      118,
      97,
      116,
      105,
      111,
      110,
      109,
      97,
      105,
      110,
      116,
      101,
      110,
      97,
      110,
      99,
      101,
      101,
      110,
      99,
      111,
      117,
      110,
      116,
      101,
      114,
      101,
      100,
      60,
      104,
      50,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      109,
      111,
      114,
      101,
      32,
      114,
      101,
      99,
      101,
      110,
      116,
      105,
      116,
      32,
      104,
      97,
      115,
      32,
      98,
      101,
      101,
      110,
      105,
      110,
      118,
      97,
      115,
      105,
      111,
      110,
      32,
      111,
      102,
      41,
      46,
      103,
      101,
      116,
      84,
      105,
      109,
      101,
      40,
      41,
      102,
      117,
      110,
      100,
      97,
      109,
      101,
      110,
      116,
      97,
      108,
      68,
      101,
      115,
      112,
      105,
      116,
      101,
      32,
      116,
      104,
      101,
      34,
      62,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      105,
      110,
      115,
      112,
      105,
      114,
      97,
      116,
      105,
      111,
      110,
      101,
      120,
      97,
      109,
      105,
      110,
      97,
      116,
      105,
      111,
      110,
      112,
      114,
      101,
      112,
      97,
      114,
      97,
      116,
      105,
      111,
      110,
      101,
      120,
      112,
      108,
      97,
      110,
      97,
      116,
      105,
      111,
      110,
      60,
      105,
      110,
      112,
      117,
      116,
      32,
      105,
      100,
      61,
      34,
      60,
      47,
      97,
      62,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      118,
      101,
      114,
      115,
      105,
      111,
      110,
      115,
      32,
      111,
      102,
      105,
      110,
      115,
      116,
      114,
      117,
      109,
      101,
      110,
      116,
      115,
      98,
      101,
      102,
      111,
      114,
      101,
      32,
      116,
      104,
      101,
      32,
      32,
      61,
      32,
      39,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      68,
      101,
      115,
      99,
      114,
      105,
      112,
      116,
      105,
      111,
      110,
      114,
      101,
      108,
      97,
      116,
      105,
      118,
      101,
      108,
      121,
      32,
      46,
      115,
      117,
      98,
      115,
      116,
      114,
      105,
      110,
      103,
      40,
      101,
      97,
      99,
      104,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      101,
      120,
      112,
      101,
      114,
      105,
      109,
      101,
      110,
      116,
      115,
      105,
      110,
      102,
      108,
      117,
      101,
      110,
      116,
      105,
      97,
      108,
      105,
      110,
      116,
      101,
      103,
      114,
      97,
      116,
      105,
      111,
      110,
      109,
      97,
      110,
      121,
      32,
      112,
      101,
      111,
      112,
      108,
      101,
      100,
      117,
      101,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      99,
      111,
      109,
      98,
      105,
      110,
      97,
      116,
      105,
      111,
      110,
      100,
      111,
      32,
      110,
      111,
      116,
      32,
      104,
      97,
      118,
      101,
      77,
      105,
      100,
      100,
      108,
      101,
      32,
      69,
      97,
      115,
      116,
      60,
      110,
      111,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      60,
      99,
      111,
      112,
      121,
      114,
      105,
      103,
      104,
      116,
      34,
      32,
      112,
      101,
      114,
      104,
      97,
      112,
      115,
      32,
      116,
      104,
      101,
      105,
      110,
      115,
      116,
      105,
      116,
      117,
      116,
      105,
      111,
      110,
      105,
      110,
      32,
      68,
      101,
      99,
      101,
      109,
      98,
      101,
      114,
      97,
      114,
      114,
      97,
      110,
      103,
      101,
      109,
      101,
      110,
      116,
      109,
      111,
      115,
      116,
      32,
      102,
      97,
      109,
      111,
      117,
      115,
      112,
      101,
      114,
      115,
      111,
      110,
      97,
      108,
      105,
      116,
      121,
      99,
      114,
      101,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      108,
      105,
      109,
      105,
      116,
      97,
      116,
      105,
      111,
      110,
      115,
      101,
      120,
      99,
      108,
      117,
      115,
      105,
      118,
      101,
      108,
      121,
      115,
      111,
      118,
      101,
      114,
      101,
      105,
      103,
      110,
      116,
      121,
      45,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      34,
      62,
      10,
      60,
      116,
      100,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      117,
      110,
      100,
      101,
      114,
      103,
      114,
      111,
      117,
      110,
      100,
      112,
      97,
      114,
      97,
      108,
      108,
      101,
      108,
      32,
      116,
      111,
      100,
      111,
      99,
      116,
      114,
      105,
      110,
      101,
      32,
      111,
      102,
      111,
      99,
      99,
      117,
      112,
      105,
      101,
      100,
      32,
      98,
      121,
      116,
      101,
      114,
      109,
      105,
      110,
      111,
      108,
      111,
      103,
      121,
      82,
      101,
      110,
      97,
      105,
      115,
      115,
      97,
      110,
      99,
      101,
      97,
      32,
      110,
      117,
      109,
      98,
      101,
      114,
      32,
      111,
      102,
      115,
      117,
      112,
      112,
      111,
      114,
      116,
      32,
      102,
      111,
      114,
      101,
      120,
      112,
      108,
      111,
      114,
      97,
      116,
      105,
      111,
      110,
      114,
      101,
      99,
      111,
      103,
      110,
      105,
      116,
      105,
      111,
      110,
      112,
      114,
      101,
      100,
      101,
      99,
      101,
      115,
      115,
      111,
      114,
      60,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      34,
      47,
      60,
      104,
      49,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      112,
      117,
      98,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      109,
      97,
      121,
      32,
      97,
      108,
      115,
      111,
      32,
      98,
      101,
      115,
      112,
      101,
      99,
      105,
      97,
      108,
      105,
      122,
      101,
      100,
      60,
      47,
      102,
      105,
      101,
      108,
      100,
      115,
      101,
      116,
      62,
      112,
      114,
      111,
      103,
      114,
      101,
      115,
      115,
      105,
      118,
      101,
      109,
      105,
      108,
      108,
      105,
      111,
      110,
      115,
      32,
      111,
      102,
      115,
      116,
      97,
      116,
      101,
      115,
      32,
      116,
      104,
      97,
      116,
      101,
      110,
      102,
      111,
      114,
      99,
      101,
      109,
      101,
      110,
      116,
      97,
      114,
      111,
      117,
      110,
      100,
      32,
      116,
      104,
      101,
      32,
      111,
      110,
      101,
      32,
      97,
      110,
      111,
      116,
      104,
      101,
      114,
      46,
      112,
      97,
      114,
      101,
      110,
      116,
      78,
      111,
      100,
      101,
      97,
      103,
      114,
      105,
      99,
      117,
      108,
      116,
      117,
      114,
      101,
      65,
      108,
      116,
      101,
      114,
      110,
      97,
      116,
      105,
      118,
      101,
      114,
      101,
      115,
      101,
      97,
      114,
      99,
      104,
      101,
      114,
      115,
      116,
      111,
      119,
      97,
      114,
      100,
      115,
      32,
      116,
      104,
      101,
      77,
      111,
      115,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      109,
      97,
      110,
      121,
      32,
      111,
      116,
      104,
      101,
      114,
      32,
      40,
      101,
      115,
      112,
      101,
      99,
      105,
      97,
      108,
      108,
      121,
      60,
      116,
      100,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      59,
      119,
      105,
      100,
      116,
      104,
      58,
      49,
      48,
      48,
      37,
      105,
      110,
      100,
      101,
      112,
      101,
      110,
      100,
      101,
      110,
      116,
      60,
      104,
      51,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      32,
      111,
      110,
      99,
      104,
      97,
      110,
      103,
      101,
      61,
      34,
      41,
      46,
      97,
      100,
      100,
      67,
      108,
      97,
      115,
      115,
      40,
      105,
      110,
      116,
      101,
      114,
      97,
      99,
      116,
      105,
      111,
      110,
      79,
      110,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      100,
      97,
      117,
      103,
      104,
      116,
      101,
      114,
      32,
      111,
      102,
      97,
      99,
      99,
      101,
      115,
      115,
      111,
      114,
      105,
      101,
      115,
      98,
      114,
      97,
      110,
      99,
      104,
      101,
      115,
      32,
      111,
      102,
      13,
      10,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      116,
      104,
      101,
      32,
      108,
      97,
      114,
      103,
      101,
      115,
      116,
      100,
      101,
      99,
      108,
      97,
      114,
      97,
      116,
      105,
      111,
      110,
      114,
      101,
      103,
      117,
      108,
      97,
      116,
      105,
      111,
      110,
      115,
      73,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      116,
      114,
      97,
      110,
      115,
      108,
      97,
      116,
      105,
      111,
      110,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      97,
      114,
      121,
      105,
      110,
      32,
      111,
      114,
      100,
      101,
      114,
      32,
      116,
      111,
      34,
      62,
      10,
      60,
      104,
      101,
      97,
      100,
      62,
      10,
      60,
      34,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      49,
      97,
      99,
      114,
      111,
      115,
      115,
      32,
      116,
      104,
      101,
      32,
      111,
      114,
      105,
      101,
      110,
      116,
      97,
      116,
      105,
      111,
      110,
      41,
      59,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      105,
      109,
      112,
      108,
      101,
      109,
      101,
      110,
      116,
      101,
      100,
      99,
      97,
      110,
      32,
      98,
      101,
      32,
      115,
      101,
      101,
      110,
      116,
      104,
      101,
      114,
      101,
      32,
      119,
      97,
      115,
      32,
      97,
      100,
      101,
      109,
      111,
      110,
      115,
      116,
      114,
      97,
      116,
      101,
      99,
      111,
      110,
      116,
      97,
      105,
      110,
      101,
      114,
      34,
      62,
      99,
      111,
      110,
      110,
      101,
      99,
      116,
      105,
      111,
      110,
      115,
      116,
      104,
      101,
      32,
      66,
      114,
      105,
      116,
      105,
      115,
      104,
      119,
      97,
      115,
      32,
      119,
      114,
      105,
      116,
      116,
      101,
      110,
      33,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      59,
      112,
      120,
      59,
      32,
      109,
      97,
      114,
      103,
      105,
      110,
      45,
      102,
      111,
      108,
      108,
      111,
      119,
      101,
      100,
      32,
      98,
      121,
      97,
      98,
      105,
      108,
      105,
      116,
      121,
      32,
      116,
      111,
      32,
      99,
      111,
      109,
      112,
      108,
      105,
      99,
      97,
      116,
      101,
      100,
      100,
      117,
      114,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      32,
      105,
      109,
      109,
      105,
      103,
      114,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      115,
      111,
      32,
      99,
      97,
      108,
      108,
      101,
      100,
      60,
      104,
      52,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      100,
      105,
      115,
      116,
      105,
      110,
      99,
      116,
      105,
      111,
      110,
      114,
      101,
      112,
      108,
      97,
      99,
      101,
      100,
      32,
      98,
      121,
      103,
      111,
      118,
      101,
      114,
      110,
      109,
      101,
      110,
      116,
      115,
      108,
      111,
      99,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      105,
      110,
      32,
      78,
      111,
      118,
      101,
      109,
      98,
      101,
      114,
      119,
      104,
      101,
      116,
      104,
      101,
      114,
      32,
      116,
      104,
      101,
      60,
      47,
      112,
      62,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      97,
      99,
      113,
      117,
      105,
      115,
      105,
      116,
      105,
      111,
      110,
      99,
      97,
      108,
      108,
      101,
      100,
      32,
      116,
      104,
      101,
      32,
      112,
      101,
      114,
      115,
      101,
      99,
      117,
      116,
      105,
      111,
      110,
      100,
      101,
      115,
      105,
      103,
      110,
      97,
      116,
      105,
      111,
      110,
      123,
      102,
      111,
      110,
      116,
      45,
      115,
      105,
      122,
      101,
      58,
      97,
      112,
      112,
      101,
      97,
      114,
      101,
      100,
      32,
      105,
      110,
      105,
      110,
      118,
      101,
      115,
      116,
      105,
      103,
      97,
      116,
      101,
      101,
      120,
      112,
      101,
      114,
      105,
      101,
      110,
      99,
      101,
      100,
      109,
      111,
      115,
      116,
      32,
      108,
      105,
      107,
      101,
      108,
      121,
      119,
      105,
      100,
      101,
      108,
      121,
      32,
      117,
      115,
      101,
      100,
      100,
      105,
      115,
      99,
      117,
      115,
      115,
      105,
      111,
      110,
      115,
      112,
      114,
      101,
      115,
      101,
      110,
      99,
      101,
      32,
      111,
      102,
      32,
      40,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      101,
      120,
      116,
      101,
      110,
      115,
      105,
      118,
      101,
      108,
      121,
      73,
      116,
      32,
      104,
      97,
      115,
      32,
      98,
      101,
      101,
      110,
      105,
      116,
      32,
      100,
      111,
      101,
      115,
      32,
      110,
      111,
      116,
      99,
      111,
      110,
      116,
      114,
      97,
      114,
      121,
      32,
      116,
      111,
      105,
      110,
      104,
      97,
      98,
      105,
      116,
      97,
      110,
      116,
      115,
      105,
      109,
      112,
      114,
      111,
      118,
      101,
      109,
      101,
      110,
      116,
      115,
      99,
      104,
      111,
      108,
      97,
      114,
      115,
      104,
      105,
      112,
      99,
      111,
      110,
      115,
      117,
      109,
      112,
      116,
      105,
      111,
      110,
      105,
      110,
      115,
      116,
      114,
      117,
      99,
      116,
      105,
      111,
      110,
      102,
      111,
      114,
      32,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      111,
      110,
      101,
      32,
      111,
      114,
      32,
      109,
      111,
      114,
      101,
      112,
      120,
      59,
      32,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      116,
      104,
      101,
      32,
      99,
      117,
      114,
      114,
      101,
      110,
      116,
      97,
      32,
      115,
      101,
      114,
      105,
      101,
      115,
      32,
      111,
      102,
      97,
      114,
      101,
      32,
      117,
      115,
      117,
      97,
      108,
      108,
      121,
      114,
      111,
      108,
      101,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      112,
      114,
      101,
      118,
      105,
      111,
      117,
      115,
      108,
      121,
      32,
      100,
      101,
      114,
      105,
      118,
      97,
      116,
      105,
      118,
      101,
      115,
      101,
      118,
      105,
      100,
      101,
      110,
      99,
      101,
      32,
      111,
      102,
      101,
      120,
      112,
      101,
      114,
      105,
      101,
      110,
      99,
      101,
      115,
      99,
      111,
      108,
      111,
      114,
      115,
      99,
      104,
      101,
      109,
      101,
      115,
      116,
      97,
      116,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      99,
      101,
      114,
      116,
      105,
      102,
      105,
      99,
      97,
      116,
      101,
      60,
      47,
      97,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      32,
      115,
      101,
      108,
      101,
      99,
      116,
      101,
      100,
      61,
      34,
      104,
      105,
      103,
      104,
      32,
      115,
      99,
      104,
      111,
      111,
      108,
      114,
      101,
      115,
      112,
      111,
      110,
      115,
      101,
      32,
      116,
      111,
      99,
      111,
      109,
      102,
      111,
      114,
      116,
      97,
      98,
      108,
      101,
      97,
      100,
      111,
      112,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      116,
      104,
      114,
      101,
      101,
      32,
      121,
      101,
      97,
      114,
      115,
      116,
      104,
      101,
      32,
      99,
      111,
      117,
      110,
      116,
      114,
      121,
      105,
      110,
      32,
      70,
      101,
      98,
      114,
      117,
      97,
      114,
      121,
      115,
      111,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      112,
      101,
      111,
      112,
      108,
      101,
      32,
      119,
      104,
      111,
      32,
      112,
      114,
      111,
      118,
      105,
      100,
      101,
      100,
      32,
      98,
      121,
      60,
      112,
      97,
      114,
      97,
      109,
      32,
      110,
      97,
      109,
      101,
      97,
      102,
      102,
      101,
      99,
      116,
      101,
      100,
      32,
      98,
      121,
      105,
      110,
      32,
      116,
      101,
      114,
      109,
      115,
      32,
      111,
      102,
      97,
      112,
      112,
      111,
      105,
      110,
      116,
      109,
      101,
      110,
      116,
      73,
      83,
      79,
      45,
      56,
      56,
      53,
      57,
      45,
      49,
      34,
      119,
      97,
      115,
      32,
      98,
      111,
      114,
      110,
      32,
      105,
      110,
      104,
      105,
      115,
      116,
      111,
      114,
      105,
      99,
      97,
      108,
      32,
      114,
      101,
      103,
      97,
      114,
      100,
      101,
      100,
      32,
      97,
      115,
      109,
      101,
      97,
      115,
      117,
      114,
      101,
      109,
      101,
      110,
      116,
      105,
      115,
      32,
      98,
      97,
      115,
      101,
      100,
      32,
      111,
      110,
      32,
      97,
      110,
      100,
      32,
      111,
      116,
      104,
      101,
      114,
      32,
      58,
      32,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      115,
      105,
      103,
      110,
      105,
      102,
      105,
      99,
      97,
      110,
      116,
      99,
      101,
      108,
      101,
      98,
      114,
      97,
      116,
      105,
      111,
      110,
      116,
      114,
      97,
      110,
      115,
      109,
      105,
      116,
      116,
      101,
      100,
      47,
      106,
      115,
      47,
      106,
      113,
      117,
      101,
      114,
      121,
      46,
      105,
      115,
      32,
      107,
      110,
      111,
      119,
      110,
      32,
      97,
      115,
      116,
      104,
      101,
      111,
      114,
      101,
      116,
      105,
      99,
      97,
      108,
      32,
      116,
      97,
      98,
      105,
      110,
      100,
      101,
      120,
      61,
      34,
      105,
      116,
      32,
      99,
      111,
      117,
      108,
      100,
      32,
      98,
      101,
      60,
      110,
      111,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      104,
      97,
      118,
      105,
      110,
      103,
      32,
      98,
      101,
      101,
      110,
      13,
      10,
      60,
      104,
      101,
      97,
      100,
      62,
      13,
      10,
      60,
      32,
      38,
      113,
      117,
      111,
      116,
      59,
      84,
      104,
      101,
      32,
      99,
      111,
      109,
      112,
      105,
      108,
      97,
      116,
      105,
      111,
      110,
      104,
      101,
      32,
      104,
      97,
      100,
      32,
      98,
      101,
      101,
      110,
      112,
      114,
      111,
      100,
      117,
      99,
      101,
      100,
      32,
      98,
      121,
      112,
      104,
      105,
      108,
      111,
      115,
      111,
      112,
      104,
      101,
      114,
      99,
      111,
      110,
      115,
      116,
      114,
      117,
      99,
      116,
      101,
      100,
      105,
      110,
      116,
      101,
      110,
      100,
      101,
      100,
      32,
      116,
      111,
      97,
      109,
      111,
      110,
      103,
      32,
      111,
      116,
      104,
      101,
      114,
      99,
      111,
      109,
      112,
      97,
      114,
      101,
      100,
      32,
      116,
      111,
      116,
      111,
      32,
      115,
      97,
      121,
      32,
      116,
      104,
      97,
      116,
      69,
      110,
      103,
      105,
      110,
      101,
      101,
      114,
      105,
      110,
      103,
      97,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      114,
      101,
      102,
      101,
      114,
      114,
      101,
      100,
      32,
      116,
      111,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      115,
      98,
      101,
      108,
      105,
      101,
      102,
      32,
      116,
      104,
      97,
      116,
      112,
      104,
      111,
      116,
      111,
      103,
      114,
      97,
      112,
      104,
      115,
      105,
      100,
      101,
      110,
      116,
      105,
      102,
      121,
      105,
      110,
      103,
      72,
      105,
      115,
      116,
      111,
      114,
      121,
      32,
      111,
      102,
      32,
      82,
      101,
      112,
      117,
      98,
      108,
      105,
      99,
      32,
      111,
      102,
      110,
      101,
      99,
      101,
      115,
      115,
      97,
      114,
      105,
      108,
      121,
      112,
      114,
      111,
      98,
      97,
      98,
      105,
      108,
      105,
      116,
      121,
      116,
      101,
      99,
      104,
      110,
      105,
      99,
      97,
      108,
      108,
      121,
      108,
      101,
      97,
      118,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      115,
      112,
      101,
      99,
      116,
      97,
      99,
      117,
      108,
      97,
      114,
      102,
      114,
      97,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      101,
      108,
      101,
      99,
      116,
      114,
      105,
      99,
      105,
      116,
      121,
      104,
      101,
      97,
      100,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      114,
      101,
      115,
      116,
      97,
      117,
      114,
      97,
      110,
      116,
      115,
      112,
      97,
      114,
      116,
      110,
      101,
      114,
      115,
      104,
      105,
      112,
      101,
      109,
      112,
      104,
      97,
      115,
      105,
      115,
      32,
      111,
      110,
      109,
      111,
      115,
      116,
      32,
      114,
      101,
      99,
      101,
      110,
      116,
      115,
      104,
      97,
      114,
      101,
      32,
      119,
      105,
      116,
      104,
      32,
      115,
      97,
      121,
      105,
      110,
      103,
      32,
      116,
      104,
      97,
      116,
      102,
      105,
      108,
      108,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      100,
      101,
      115,
      105,
      103,
      110,
      101,
      100,
      32,
      116,
      111,
      105,
      116,
      32,
      105,
      115,
      32,
      111,
      102,
      116,
      101,
      110,
      34,
      62,
      60,
      47,
      105,
      102,
      114,
      97,
      109,
      101,
      62,
      97,
      115,
      32,
      102,
      111,
      108,
      108,
      111,
      119,
      115,
      58,
      109,
      101,
      114,
      103,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      116,
      104,
      114,
      111,
      117,
      103,
      104,
      32,
      116,
      104,
      101,
      99,
      111,
      109,
      109,
      101,
      114,
      99,
      105,
      97,
      108,
      32,
      112,
      111,
      105,
      110,
      116,
      101,
      100,
      32,
      111,
      117,
      116,
      111,
      112,
      112,
      111,
      114,
      116,
      117,
      110,
      105,
      116,
      121,
      118,
      105,
      101,
      119,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      114,
      101,
      113,
      117,
      105,
      114,
      101,
      109,
      101,
      110,
      116,
      100,
      105,
      118,
      105,
      115,
      105,
      111,
      110,
      32,
      111,
      102,
      112,
      114,
      111,
      103,
      114,
      97,
      109,
      109,
      105,
      110,
      103,
      104,
      101,
      32,
      114,
      101,
      99,
      101,
      105,
      118,
      101,
      100,
      115,
      101,
      116,
      73,
      110,
      116,
      101,
      114,
      118,
      97,
      108,
      34,
      62,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      47,
      105,
      110,
      32,
      78,
      101,
      119,
      32,
      89,
      111,
      114,
      107,
      97,
      100,
      100,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      32,
      99,
      111,
      109,
      112,
      114,
      101,
      115,
      115,
      105,
      111,
      110,
      10,
      10,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      105,
      110,
      99,
      111,
      114,
      112,
      111,
      114,
      97,
      116,
      101,
      59,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      60,
      97,
      116,
      116,
      97,
      99,
      104,
      69,
      118,
      101,
      110,
      116,
      98,
      101,
      99,
      97,
      109,
      101,
      32,
      116,
      104,
      101,
      32,
      34,
      32,
      116,
      97,
      114,
      103,
      101,
      116,
      61,
      34,
      95,
      99,
      97,
      114,
      114,
      105,
      101,
      100,
      32,
      111,
      117,
      116,
      83,
      111,
      109,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      115,
      99,
      105,
      101,
      110,
      99,
      101,
      32,
      97,
      110,
      100,
      116,
      104,
      101,
      32,
      116,
      105,
      109,
      101,
      32,
      111,
      102,
      67,
      111,
      110,
      116,
      97,
      105,
      110,
      101,
      114,
      34,
      62,
      109,
      97,
      105,
      110,
      116,
      97,
      105,
      110,
      105,
      110,
      103,
      67,
      104,
      114,
      105,
      115,
      116,
      111,
      112,
      104,
      101,
      114,
      77,
      117,
      99,
      104,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      119,
      114,
      105,
      116,
      105,
      110,
      103,
      115,
      32,
      111,
      102,
      34,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      50,
      115,
      105,
      122,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      118,
      101,
      114,
      115,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      109,
      105,
      120,
      116,
      117,
      114,
      101,
      32,
      111,
      102,
      32,
      98,
      101,
      116,
      119,
      101,
      101,
      110,
      32,
      116,
      104,
      101,
      69,
      120,
      97,
      109,
      112,
      108,
      101,
      115,
      32,
      111,
      102,
      101,
      100,
      117,
      99,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      99,
      111,
      109,
      112,
      101,
      116,
      105,
      116,
      105,
      118,
      101,
      32,
      111,
      110,
      115,
      117,
      98,
      109,
      105,
      116,
      61,
      34,
      100,
      105,
      114,
      101,
      99,
      116,
      111,
      114,
      32,
      111,
      102,
      100,
      105,
      115,
      116,
      105,
      110,
      99,
      116,
      105,
      118,
      101,
      47,
      68,
      84,
      68,
      32,
      88,
      72,
      84,
      77,
      76,
      32,
      114,
      101,
      108,
      97,
      116,
      105,
      110,
      103,
      32,
      116,
      111,
      116,
      101,
      110,
      100,
      101,
      110,
      99,
      121,
      32,
      116,
      111,
      112,
      114,
      111,
      118,
      105,
      110,
      99,
      101,
      32,
      111,
      102,
      119,
      104,
      105,
      99,
      104,
      32,
      119,
      111,
      117,
      108,
      100,
      100,
      101,
      115,
      112,
      105,
      116,
      101,
      32,
      116,
      104,
      101,
      115,
      99,
      105,
      101,
      110,
      116,
      105,
      102,
      105,
      99,
      32,
      108,
      101,
      103,
      105,
      115,
      108,
      97,
      116,
      117,
      114,
      101,
      46,
      105,
      110,
      110,
      101,
      114,
      72,
      84,
      77,
      76,
      32,
      97,
      108,
      108,
      101,
      103,
      97,
      116,
      105,
      111,
      110,
      115,
      65,
      103,
      114,
      105,
      99,
      117,
      108,
      116,
      117,
      114,
      101,
      119,
      97,
      115,
      32,
      117,
      115,
      101,
      100,
      32,
      105,
      110,
      97,
      112,
      112,
      114,
      111,
      97,
      99,
      104,
      32,
      116,
      111,
      105,
      110,
      116,
      101,
      108,
      108,
      105,
      103,
      101,
      110,
      116,
      121,
      101,
      97,
      114,
      115,
      32,
      108,
      97,
      116,
      101,
      114,
      44,
      115,
      97,
      110,
      115,
      45,
      115,
      101,
      114,
      105,
      102,
      100,
      101,
      116,
      101,
      114,
      109,
      105,
      110,
      105,
      110,
      103,
      80,
      101,
      114,
      102,
      111,
      114,
      109,
      97,
      110,
      99,
      101,
      97,
      112,
      112,
      101,
      97,
      114,
      97,
      110,
      99,
      101,
      115,
      44,
      32,
      119,
      104,
      105,
      99,
      104,
      32,
      105,
      115,
      32,
      102,
      111,
      117,
      110,
      100,
      97,
      116,
      105,
      111,
      110,
      115,
      97,
      98,
      98,
      114,
      101,
      118,
      105,
      97,
      116,
      101,
      100,
      104,
      105,
      103,
      104,
      101,
      114,
      32,
      116,
      104,
      97,
      110,
      115,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      32,
      105,
      110,
      100,
      105,
      118,
      105,
      100,
      117,
      97,
      108,
      32,
      99,
      111,
      109,
      112,
      111,
      115,
      101,
      100,
      32,
      111,
      102,
      115,
      117,
      112,
      112,
      111,
      115,
      101,
      100,
      32,
      116,
      111,
      99,
      108,
      97,
      105,
      109,
      115,
      32,
      116,
      104,
      97,
      116,
      97,
      116,
      116,
      114,
      105,
      98,
      117,
      116,
      105,
      111,
      110,
      102,
      111,
      110,
      116,
      45,
      115,
      105,
      122,
      101,
      58,
      49,
      101,
      108,
      101,
      109,
      101,
      110,
      116,
      115,
      32,
      111,
      102,
      72,
      105,
      115,
      116,
      111,
      114,
      105,
      99,
      97,
      108,
      32,
      104,
      105,
      115,
      32,
      98,
      114,
      111,
      116,
      104,
      101,
      114,
      97,
      116,
      32,
      116,
      104,
      101,
      32,
      116,
      105,
      109,
      101,
      97,
      110,
      110,
      105,
      118,
      101,
      114,
      115,
      97,
      114,
      121,
      103,
      111,
      118,
      101,
      114,
      110,
      101,
      100,
      32,
      98,
      121,
      114,
      101,
      108,
      97,
      116,
      101,
      100,
      32,
      116,
      111,
      32,
      117,
      108,
      116,
      105,
      109,
      97,
      116,
      101,
      108,
      121,
      32,
      105,
      110,
      110,
      111,
      118,
      97,
      116,
      105,
      111,
      110,
      115,
      105,
      116,
      32,
      105,
      115,
      32,
      115,
      116,
      105,
      108,
      108,
      99,
      97,
      110,
      32,
      111,
      110,
      108,
      121,
      32,
      98,
      101,
      100,
      101,
      102,
      105,
      110,
      105,
      116,
      105,
      111,
      110,
      115,
      116,
      111,
      71,
      77,
      84,
      83,
      116,
      114,
      105,
      110,
      103,
      65,
      32,
      110,
      117,
      109,
      98,
      101,
      114,
      32,
      111,
      102,
      105,
      109,
      103,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      69,
      118,
      101,
      110,
      116,
      117,
      97,
      108,
      108,
      121,
      44,
      119,
      97,
      115,
      32,
      99,
      104,
      97,
      110,
      103,
      101,
      100,
      111,
      99,
      99,
      117,
      114,
      114,
      101,
      100,
      32,
      105,
      110,
      110,
      101,
      105,
      103,
      104,
      98,
      111,
      114,
      105,
      110,
      103,
      100,
      105,
      115,
      116,
      105,
      110,
      103,
      117,
      105,
      115,
      104,
      119,
      104,
      101,
      110,
      32,
      104,
      101,
      32,
      119,
      97,
      115,
      105,
      110,
      116,
      114,
      111,
      100,
      117,
      99,
      105,
      110,
      103,
      116,
      101,
      114,
      114,
      101,
      115,
      116,
      114,
      105,
      97,
      108,
      77,
      97,
      110,
      121,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      97,
      114,
      103,
      117,
      101,
      115,
      32,
      116,
      104,
      97,
      116,
      97,
      110,
      32,
      65,
      109,
      101,
      114,
      105,
      99,
      97,
      110,
      99,
      111,
      110,
      113,
      117,
      101,
      115,
      116,
      32,
      111,
      102,
      119,
      105,
      100,
      101,
      115,
      112,
      114,
      101,
      97,
      100,
      32,
      119,
      101,
      114,
      101,
      32,
      107,
      105,
      108,
      108,
      101,
      100,
      115,
      99,
      114,
      101,
      101,
      110,
      32,
      97,
      110,
      100,
      32,
      73,
      110,
      32,
      111,
      114,
      100,
      101,
      114,
      32,
      116,
      111,
      101,
      120,
      112,
      101,
      99,
      116,
      101,
      100,
      32,
      116,
      111,
      100,
      101,
      115,
      99,
      101,
      110,
      100,
      97,
      110,
      116,
      115,
      97,
      114,
      101,
      32,
      108,
      111,
      99,
      97,
      116,
      101,
      100,
      108,
      101,
      103,
      105,
      115,
      108,
      97,
      116,
      105,
      118,
      101,
      103,
      101,
      110,
      101,
      114,
      97,
      116,
      105,
      111,
      110,
      115,
      32,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      109,
      111,
      115,
      116,
      32,
      112,
      101,
      111,
      112,
      108,
      101,
      121,
      101,
      97,
      114,
      115,
      32,
      97,
      102,
      116,
      101,
      114,
      116,
      104,
      101,
      114,
      101,
      32,
      105,
      115,
      32,
      110,
      111,
      116,
      104,
      101,
      32,
      104,
      105,
      103,
      104,
      101,
      115,
      116,
      102,
      114,
      101,
      113,
      117,
      101,
      110,
      116,
      108,
      121,
      32,
      116,
      104,
      101,
      121,
      32,
      100,
      111,
      32,
      110,
      111,
      116,
      97,
      114,
      103,
      117,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      115,
      104,
      111,
      119,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      112,
      114,
      101,
      100,
      111,
      109,
      105,
      110,
      97,
      110,
      116,
      116,
      104,
      101,
      111,
      108,
      111,
      103,
      105,
      99,
      97,
      108,
      98,
      121,
      32,
      116,
      104,
      101,
      32,
      116,
      105,
      109,
      101,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      105,
      110,
      103,
      115,
      104,
      111,
      114,
      116,
      45,
      108,
      105,
      118,
      101,
      100,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      47,
      97,
      62,
      99,
      97,
      110,
      32,
      98,
      101,
      32,
      117,
      115,
      101,
      100,
      118,
      101,
      114,
      121,
      32,
      108,
      105,
      116,
      116,
      108,
      101,
      111,
      110,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      104,
      97,
      100,
      32,
      97,
      108,
      114,
      101,
      97,
      100,
      121,
      105,
      110,
      116,
      101,
      114,
      112,
      114,
      101,
      116,
      101,
      100,
      99,
      111,
      109,
      109,
      117,
      110,
      105,
      99,
      97,
      116,
      101,
      102,
      101,
      97,
      116,
      117,
      114,
      101,
      115,
      32,
      111,
      102,
      103,
      111,
      118,
      101,
      114,
      110,
      109,
      101,
      110,
      116,
      44,
      60,
      47,
      110,
      111,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      101,
      110,
      116,
      101,
      114,
      101,
      100,
      32,
      116,
      104,
      101,
      34,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      51,
      73,
      110,
      100,
      101,
      112,
      101,
      110,
      100,
      101,
      110,
      116,
      112,
      111,
      112,
      117,
      108,
      97,
      116,
      105,
      111,
      110,
      115,
      108,
      97,
      114,
      103,
      101,
      45,
      115,
      99,
      97,
      108,
      101,
      46,
      32,
      65,
      108,
      116,
      104,
      111,
      117,
      103,
      104,
      32,
      117,
      115,
      101,
      100,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      100,
      101,
      115,
      116,
      114,
      117,
      99,
      116,
      105,
      111,
      110,
      112,
      111,
      115,
      115,
      105,
      98,
      105,
      108,
      105,
      116,
      121,
      115,
      116,
      97,
      114,
      116,
      105,
      110,
      103,
      32,
      105,
      110,
      116,
      119,
      111,
      32,
      111,
      114,
      32,
      109,
      111,
      114,
      101,
      101,
      120,
      112,
      114,
      101,
      115,
      115,
      105,
      111,
      110,
      115,
      115,
      117,
      98,
      111,
      114,
      100,
      105,
      110,
      97,
      116,
      101,
      108,
      97,
      114,
      103,
      101,
      114,
      32,
      116,
      104,
      97,
      110,
      104,
      105,
      115,
      116,
      111,
      114,
      121,
      32,
      97,
      110,
      100,
      60,
      47,
      111,
      112,
      116,
      105,
      111,
      110,
      62,
      13,
      10,
      67,
      111,
      110,
      116,
      105,
      110,
      101,
      110,
      116,
      97,
      108,
      101,
      108,
      105,
      109,
      105,
      110,
      97,
      116,
      105,
      110,
      103,
      119,
      105,
      108,
      108,
      32,
      110,
      111,
      116,
      32,
      98,
      101,
      112,
      114,
      97,
      99,
      116,
      105,
      99,
      101,
      32,
      111,
      102,
      105,
      110,
      32,
      102,
      114,
      111,
      110,
      116,
      32,
      111,
      102,
      115,
      105,
      116,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      101,
      110,
      115,
      117,
      114,
      101,
      32,
      116,
      104,
      97,
      116,
      116,
      111,
      32,
      99,
      114,
      101,
      97,
      116,
      101,
      32,
      97,
      109,
      105,
      115,
      115,
      105,
      115,
      115,
      105,
      112,
      112,
      105,
      112,
      111,
      116,
      101,
      110,
      116,
      105,
      97,
      108,
      108,
      121,
      111,
      117,
      116,
      115,
      116,
      97,
      110,
      100,
      105,
      110,
      103,
      98,
      101,
      116,
      116,
      101,
      114,
      32,
      116,
      104,
      97,
      110,
      119,
      104,
      97,
      116,
      32,
      105,
      115,
      32,
      110,
      111,
      119,
      115,
      105,
      116,
      117,
      97,
      116,
      101,
      100,
      32,
      105,
      110,
      109,
      101,
      116,
      97,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      84,
      114,
      97,
      100,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      115,
      117,
      103,
      103,
      101,
      115,
      116,
      105,
      111,
      110,
      115,
      84,
      114,
      97,
      110,
      115,
      108,
      97,
      116,
      105,
      111,
      110,
      116,
      104,
      101,
      32,
      102,
      111,
      114,
      109,
      32,
      111,
      102,
      97,
      116,
      109,
      111,
      115,
      112,
      104,
      101,
      114,
      105,
      99,
      105,
      100,
      101,
      111,
      108,
      111,
      103,
      105,
      99,
      97,
      108,
      101,
      110,
      116,
      101,
      114,
      112,
      114,
      105,
      115,
      101,
      115,
      99,
      97,
      108,
      99,
      117,
      108,
      97,
      116,
      105,
      110,
      103,
      101,
      97,
      115,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      114,
      101,
      109,
      110,
      97,
      110,
      116,
      115,
      32,
      111,
      102,
      112,
      108,
      117,
      103,
      105,
      110,
      115,
      112,
      97,
      103,
      101,
      47,
      105,
      110,
      100,
      101,
      120,
      46,
      112,
      104,
      112,
      63,
      114,
      101,
      109,
      97,
      105,
      110,
      101,
      100,
      32,
      105,
      110,
      116,
      114,
      97,
      110,
      115,
      102,
      111,
      114,
      109,
      101,
      100,
      72,
      101,
      32,
      119,
      97,
      115,
      32,
      97,
      108,
      115,
      111,
      119,
      97,
      115,
      32,
      97,
      108,
      114,
      101,
      97,
      100,
      121,
      115,
      116,
      97,
      116,
      105,
      115,
      116,
      105,
      99,
      97,
      108,
      105,
      110,
      32,
      102,
      97,
      118,
      111,
      114,
      32,
      111,
      102,
      77,
      105,
      110,
      105,
      115,
      116,
      114,
      121,
      32,
      111,
      102,
      109,
      111,
      118,
      101,
      109,
      101,
      110,
      116,
      32,
      111,
      102,
      102,
      111,
      114,
      109,
      117,
      108,
      97,
      116,
      105,
      111,
      110,
      105,
      115,
      32,
      114,
      101,
      113,
      117,
      105,
      114,
      101,
      100,
      60,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      84,
      104,
      105,
      115,
      32,
      105,
      115,
      32,
      116,
      104,
      101,
      32,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      47,
      112,
      111,
      112,
      117,
      108,
      97,
      114,
      105,
      122,
      101,
      100,
      105,
      110,
      118,
      111,
      108,
      118,
      101,
      100,
      32,
      105,
      110,
      97,
      114,
      101,
      32,
      117,
      115,
      101,
      100,
      32,
      116,
      111,
      97,
      110,
      100,
      32,
      115,
      101,
      118,
      101,
      114,
      97,
      108,
      109,
      97,
      100,
      101,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      115,
      101,
      101,
      109,
      115,
      32,
      116,
      111,
      32,
      98,
      101,
      108,
      105,
      107,
      101,
      108,
      121,
      32,
      116,
      104,
      97,
      116,
      80,
      97,
      108,
      101,
      115,
      116,
      105,
      110,
      105,
      97,
      110,
      110,
      97,
      109,
      101,
      100,
      32,
      97,
      102,
      116,
      101,
      114,
      105,
      116,
      32,
      104,
      97,
      100,
      32,
      98,
      101,
      101,
      110,
      109,
      111,
      115,
      116,
      32,
      99,
      111,
      109,
      109,
      111,
      110,
      116,
      111,
      32,
      114,
      101,
      102,
      101,
      114,
      32,
      116,
      111,
      98,
      117,
      116,
      32,
      116,
      104,
      105,
      115,
      32,
      105,
      115,
      99,
      111,
      110,
      115,
      101,
      99,
      117,
      116,
      105,
      118,
      101,
      116,
      101,
      109,
      112,
      111,
      114,
      97,
      114,
      105,
      108,
      121,
      73,
      110,
      32,
      103,
      101,
      110,
      101,
      114,
      97,
      108,
      44,
      99,
      111,
      110,
      118,
      101,
      110,
      116,
      105,
      111,
      110,
      115,
      116,
      97,
      107,
      101,
      115,
      32,
      112,
      108,
      97,
      99,
      101,
      115,
      117,
      98,
      100,
      105,
      118,
      105,
      115,
      105,
      111,
      110,
      116,
      101,
      114,
      114,
      105,
      116,
      111,
      114,
      105,
      97,
      108,
      111,
      112,
      101,
      114,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      112,
      101,
      114,
      109,
      97,
      110,
      101,
      110,
      116,
      108,
      121,
      119,
      97,
      115,
      32,
      108,
      97,
      114,
      103,
      101,
      108,
      121,
      111,
      117,
      116,
      98,
      114,
      101,
      97,
      107,
      32,
      111,
      102,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      112,
      97,
      115,
      116,
      102,
      111,
      108,
      108,
      111,
      119,
      105,
      110,
      103,
      32,
      97,
      32,
      120,
      109,
      108,
      110,
      115,
      58,
      111,
      103,
      61,
      34,
      62,
      60,
      97,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      116,
      101,
      120,
      116,
      67,
      111,
      110,
      118,
      101,
      114,
      115,
      105,
      111,
      110,
      32,
      109,
      97,
      121,
      32,
      98,
      101,
      32,
      117,
      115,
      101,
      100,
      109,
      97,
      110,
      117,
      102,
      97,
      99,
      116,
      117,
      114,
      101,
      97,
      102,
      116,
      101,
      114,
      32,
      98,
      101,
      105,
      110,
      103,
      99,
      108,
      101,
      97,
      114,
      102,
      105,
      120,
      34,
      62,
      10,
      113,
      117,
      101,
      115,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      119,
      97,
      115,
      32,
      101,
      108,
      101,
      99,
      116,
      101,
      100,
      116,
      111,
      32,
      98,
      101,
      99,
      111,
      109,
      101,
      32,
      97,
      98,
      101,
      99,
      97,
      117,
      115,
      101,
      32,
      111,
      102,
      32,
      115,
      111,
      109,
      101,
      32,
      112,
      101,
      111,
      112,
      108,
      101,
      105,
      110,
      115,
      112,
      105,
      114,
      101,
      100,
      32,
      98,
      121,
      115,
      117,
      99,
      99,
      101,
      115,
      115,
      102,
      117,
      108,
      32,
      97,
      32,
      116,
      105,
      109,
      101,
      32,
      119,
      104,
      101,
      110,
      109,
      111,
      114,
      101,
      32,
      99,
      111,
      109,
      109,
      111,
      110,
      97,
      109,
      111,
      110,
      103,
      115,
      116,
      32,
      116,
      104,
      101,
      97,
      110,
      32,
      111,
      102,
      102,
      105,
      99,
      105,
      97,
      108,
      119,
      105,
      100,
      116,
      104,
      58,
      49,
      48,
      48,
      37,
      59,
      116,
      101,
      99,
      104,
      110,
      111,
      108,
      111,
      103,
      121,
      44,
      119,
      97,
      115,
      32,
      97,
      100,
      111,
      112,
      116,
      101,
      100,
      116,
      111,
      32,
      107,
      101,
      101,
      112,
      32,
      116,
      104,
      101,
      115,
      101,
      116,
      116,
      108,
      101,
      109,
      101,
      110,
      116,
      115,
      108,
      105,
      118,
      101,
      32,
      98,
      105,
      114,
      116,
      104,
      115,
      105,
      110,
      100,
      101,
      120,
      46,
      104,
      116,
      109,
      108,
      34,
      67,
      111,
      110,
      110,
      101,
      99,
      116,
      105,
      99,
      117,
      116,
      97,
      115,
      115,
      105,
      103,
      110,
      101,
      100,
      32,
      116,
      111,
      38,
      97,
      109,
      112,
      59,
      116,
      105,
      109,
      101,
      115,
      59,
      97,
      99,
      99,
      111,
      117,
      110,
      116,
      32,
      102,
      111,
      114,
      97,
      108,
      105,
      103,
      110,
      61,
      114,
      105,
      103,
      104,
      116,
      116,
      104,
      101,
      32,
      99,
      111,
      109,
      112,
      97,
      110,
      121,
      97,
      108,
      119,
      97,
      121,
      115,
      32,
      98,
      101,
      101,
      110,
      114,
      101,
      116,
      117,
      114,
      110,
      101,
      100,
      32,
      116,
      111,
      105,
      110,
      118,
      111,
      108,
      118,
      101,
      109,
      101,
      110,
      116,
      66,
      101,
      99,
      97,
      117,
      115,
      101,
      32,
      116,
      104,
      101,
      116,
      104,
      105,
      115,
      32,
      112,
      101,
      114,
      105,
      111,
      100,
      34,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      113,
      34,
      32,
      99,
      111,
      110,
      102,
      105,
      110,
      101,
      100,
      32,
      116,
      111,
      97,
      32,
      114,
      101,
      115,
      117,
      108,
      116,
      32,
      111,
      102,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      34,
      32,
      47,
      62,
      105,
      115,
      32,
      97,
      99,
      116,
      117,
      97,
      108,
      108,
      121,
      69,
      110,
      118,
      105,
      114,
      111,
      110,
      109,
      101,
      110,
      116,
      13,
      10,
      60,
      47,
      104,
      101,
      97,
      100,
      62,
      13,
      10,
      67,
      111,
      110,
      118,
      101,
      114,
      115,
      101,
      108,
      121,
      44,
      62,
      10,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      48,
      34,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      49,
      105,
      115,
      32,
      112,
      114,
      111,
      98,
      97,
      98,
      108,
      121,
      104,
      97,
      118,
      101,
      32,
      98,
      101,
      99,
      111,
      109,
      101,
      99,
      111,
      110,
      116,
      114,
      111,
      108,
      108,
      105,
      110,
      103,
      116,
      104,
      101,
      32,
      112,
      114,
      111,
      98,
      108,
      101,
      109,
      99,
      105,
      116,
      105,
      122,
      101,
      110,
      115,
      32,
      111,
      102,
      112,
      111,
      108,
      105,
      116,
      105,
      99,
      105,
      97,
      110,
      115,
      114,
      101,
      97,
      99,
      104,
      101,
      100,
      32,
      116,
      104,
      101,
      97,
      115,
      32,
      101,
      97,
      114,
      108,
      121,
      32,
      97,
      115,
      58,
      110,
      111,
      110,
      101,
      59,
      32,
      111,
      118,
      101,
      114,
      60,
      116,
      97,
      98,
      108,
      101,
      32,
      99,
      101,
      108,
      108,
      118,
      97,
      108,
      105,
      100,
      105,
      116,
      121,
      32,
      111,
      102,
      100,
      105,
      114,
      101,
      99,
      116,
      108,
      121,
      32,
      116,
      111,
      111,
      110,
      109,
      111,
      117,
      115,
      101,
      100,
      111,
      119,
      110,
      119,
      104,
      101,
      114,
      101,
      32,
      105,
      116,
      32,
      105,
      115,
      119,
      104,
      101,
      110,
      32,
      105,
      116,
      32,
      119,
      97,
      115,
      109,
      101,
      109,
      98,
      101,
      114,
      115,
      32,
      111,
      102,
      32,
      114,
      101,
      108,
      97,
      116,
      105,
      111,
      110,
      32,
      116,
      111,
      97,
      99,
      99,
      111,
      109,
      109,
      111,
      100,
      97,
      116,
      101,
      97,
      108,
      111,
      110,
      103,
      32,
      119,
      105,
      116,
      104,
      32,
      73,
      110,
      32,
      116,
      104,
      101,
      32,
      108,
      97,
      116,
      101,
      116,
      104,
      101,
      32,
      69,
      110,
      103,
      108,
      105,
      115,
      104,
      100,
      101,
      108,
      105,
      99,
      105,
      111,
      117,
      115,
      34,
      62,
      116,
      104,
      105,
      115,
      32,
      105,
      115,
      32,
      110,
      111,
      116,
      116,
      104,
      101,
      32,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      105,
      102,
      32,
      116,
      104,
      101,
      121,
      32,
      97,
      114,
      101,
      97,
      110,
      100,
      32,
      102,
      105,
      110,
      97,
      108,
      108,
      121,
      97,
      32,
      109,
      97,
      116,
      116,
      101,
      114,
      32,
      111,
      102,
      13,
      10,
      9,
      60,
      47,
      100,
      105,
      118,
      62,
      13,
      10,
      13,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      102,
      97,
      115,
      116,
      101,
      114,
      32,
      116,
      104,
      97,
      110,
      109,
      97,
      106,
      111,
      114,
      105,
      116,
      121,
      32,
      111,
      102,
      97,
      102,
      116,
      101,
      114,
      32,
      119,
      104,
      105,
      99,
      104,
      99,
      111,
      109,
      112,
      97,
      114,
      97,
      116,
      105,
      118,
      101,
      116,
      111,
      32,
      109,
      97,
      105,
      110,
      116,
      97,
      105,
      110,
      105,
      109,
      112,
      114,
      111,
      118,
      101,
      32,
      116,
      104,
      101,
      97,
      119,
      97,
      114,
      100,
      101,
      100,
      32,
      116,
      104,
      101,
      101,
      114,
      34,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      102,
      114,
      97,
      109,
      101,
      98,
      111,
      114,
      100,
      101,
      114,
      114,
      101,
      115,
      116,
      111,
      114,
      97,
      116,
      105,
      111,
      110,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      115,
      97,
      109,
      101,
      97,
      110,
      97,
      108,
      121,
      115,
      105,
      115,
      32,
      111,
      102,
      116,
      104,
      101,
      105,
      114,
      32,
      102,
      105,
      114,
      115,
      116,
      68,
      117,
      114,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      32,
      99,
      111,
      110,
      116,
      105,
      110,
      101,
      110,
      116,
      97,
      108,
      115,
      101,
      113,
      117,
      101,
      110,
      99,
      101,
      32,
      111,
      102,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      123,
      102,
      111,
      110,
      116,
      45,
      115,
      105,
      122,
      101,
      58,
      32,
      119,
      111,
      114,
      107,
      32,
      111,
      110,
      32,
      116,
      104,
      101,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      60,
      98,
      101,
      103,
      105,
      110,
      115,
      32,
      119,
      105,
      116,
      104,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      58,
      99,
      111,
      110,
      115,
      116,
      105,
      116,
      117,
      101,
      110,
      116,
      119,
      97,
      115,
      32,
      102,
      111,
      117,
      110,
      100,
      101,
      100,
      101,
      113,
      117,
      105,
      108,
      105,
      98,
      114,
      105,
      117,
      109,
      97,
      115,
      115,
      117,
      109,
      101,
      32,
      116,
      104,
      97,
      116,
      105,
      115,
      32,
      103,
      105,
      118,
      101,
      110,
      32,
      98,
      121,
      110,
      101,
      101,
      100,
      115,
      32,
      116,
      111,
      32,
      98,
      101,
      99,
      111,
      111,
      114,
      100,
      105,
      110,
      97,
      116,
      101,
      115,
      116,
      104,
      101,
      32,
      118,
      97,
      114,
      105,
      111,
      117,
      115,
      97,
      114,
      101,
      32,
      112,
      97,
      114,
      116,
      32,
      111,
      102,
      111,
      110,
      108,
      121,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      115,
      101,
      99,
      116,
      105,
      111,
      110,
      115,
      32,
      111,
      102,
      105,
      115,
      32,
      97,
      32,
      99,
      111,
      109,
      109,
      111,
      110,
      116,
      104,
      101,
      111,
      114,
      105,
      101,
      115,
      32,
      111,
      102,
      100,
      105,
      115,
      99,
      111,
      118,
      101,
      114,
      105,
      101,
      115,
      97,
      115,
      115,
      111,
      99,
      105,
      97,
      116,
      105,
      111,
      110,
      101,
      100,
      103,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      115,
      116,
      114,
      101,
      110,
      103,
      116,
      104,
      32,
      111,
      102,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      32,
      105,
      110,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      45,
      100,
      97,
      121,
      117,
      110,
      105,
      118,
      101,
      114,
      115,
      97,
      108,
      108,
      121,
      116,
      111,
      32,
      102,
      111,
      114,
      109,
      32,
      116,
      104,
      101,
      98,
      117,
      116,
      32,
      105,
      110,
      115,
      116,
      101,
      97,
      100,
      99,
      111,
      114,
      112,
      111,
      114,
      97,
      116,
      105,
      111,
      110,
      97,
      116,
      116,
      97,
      99,
      104,
      101,
      100,
      32,
      116,
      111,
      105,
      115,
      32,
      99,
      111,
      109,
      109,
      111,
      110,
      108,
      121,
      114,
      101,
      97,
      115,
      111,
      110,
      115,
      32,
      102,
      111,
      114,
      32,
      38,
      113,
      117,
      111,
      116,
      59,
      116,
      104,
      101,
      32,
      99,
      97,
      110,
      32,
      98,
      101,
      32,
      109,
      97,
      100,
      101,
      119,
      97,
      115,
      32,
      97,
      98,
      108,
      101,
      32,
      116,
      111,
      119,
      104,
      105,
      99,
      104,
      32,
      109,
      101,
      97,
      110,
      115,
      98,
      117,
      116,
      32,
      100,
      105,
      100,
      32,
      110,
      111,
      116,
      111,
      110,
      77,
      111,
      117,
      115,
      101,
      79,
      118,
      101,
      114,
      97,
      115,
      32,
      112,
      111,
      115,
      115,
      105,
      98,
      108,
      101,
      111,
      112,
      101,
      114,
      97,
      116,
      101,
      100,
      32,
      98,
      121,
      99,
      111,
      109,
      105,
      110,
      103,
      32,
      102,
      114,
      111,
      109,
      116,
      104,
      101,
      32,
      112,
      114,
      105,
      109,
      97,
      114,
      121,
      97,
      100,
      100,
      105,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      102,
      111,
      114,
      32,
      115,
      101,
      118,
      101,
      114,
      97,
      108,
      116,
      114,
      97,
      110,
      115,
      102,
      101,
      114,
      114,
      101,
      100,
      97,
      32,
      112,
      101,
      114,
      105,
      111,
      100,
      32,
      111,
      102,
      97,
      114,
      101,
      32,
      97,
      98,
      108,
      101,
      32,
      116,
      111,
      104,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      105,
      116,
      115,
      104,
      111,
      117,
      108,
      100,
      32,
      104,
      97,
      118,
      101,
      109,
      117,
      99,
      104,
      32,
      108,
      97,
      114,
      103,
      101,
      114,
      10,
      9,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      97,
      100,
      111,
      112,
      116,
      101,
      100,
      32,
      116,
      104,
      101,
      112,
      114,
      111,
      112,
      101,
      114,
      116,
      121,
      32,
      111,
      102,
      100,
      105,
      114,
      101,
      99,
      116,
      101,
      100,
      32,
      98,
      121,
      101,
      102,
      102,
      101,
      99,
      116,
      105,
      118,
      101,
      108,
      121,
      119,
      97,
      115,
      32,
      98,
      114,
      111,
      117,
      103,
      104,
      116,
      99,
      104,
      105,
      108,
      100,
      114,
      101,
      110,
      32,
      111,
      102,
      80,
      114,
      111,
      103,
      114,
      97,
      109,
      109,
      105,
      110,
      103,
      108,
      111,
      110,
      103,
      101,
      114,
      32,
      116,
      104,
      97,
      110,
      109,
      97,
      110,
      117,
      115,
      99,
      114,
      105,
      112,
      116,
      115,
      119,
      97,
      114,
      32,
      97,
      103,
      97,
      105,
      110,
      115,
      116,
      98,
      121,
      32,
      109,
      101,
      97,
      110,
      115,
      32,
      111,
      102,
      97,
      110,
      100,
      32,
      109,
      111,
      115,
      116,
      32,
      111,
      102,
      115,
      105,
      109,
      105,
      108,
      97,
      114,
      32,
      116,
      111,
      32,
      112,
      114,
      111,
      112,
      114,
      105,
      101,
      116,
      97,
      114,
      121,
      111,
      114,
      105,
      103,
      105,
      110,
      97,
      116,
      105,
      110,
      103,
      112,
      114,
      101,
      115,
      116,
      105,
      103,
      105,
      111,
      117,
      115,
      103,
      114,
      97,
      109,
      109,
      97,
      116,
      105,
      99,
      97,
      108,
      101,
      120,
      112,
      101,
      114,
      105,
      101,
      110,
      99,
      101,
      46,
      116,
      111,
      32,
      109,
      97,
      107,
      101,
      32,
      116,
      104,
      101,
      73,
      116,
      32,
      119,
      97,
      115,
      32,
      97,
      108,
      115,
      111,
      105,
      115,
      32,
      102,
      111,
      117,
      110,
      100,
      32,
      105,
      110,
      99,
      111,
      109,
      112,
      101,
      116,
      105,
      116,
      111,
      114,
      115,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      85,
      46,
      83,
      46,
      114,
      101,
      112,
      108,
      97,
      99,
      101,
      32,
      116,
      104,
      101,
      98,
      114,
      111,
      117,
      103,
      104,
      116,
      32,
      116,
      104,
      101,
      99,
      97,
      108,
      99,
      117,
      108,
      97,
      116,
      105,
      111,
      110,
      102,
      97,
      108,
      108,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      103,
      101,
      110,
      101,
      114,
      97,
      108,
      112,
      114,
      97,
      99,
      116,
      105,
      99,
      97,
      108,
      108,
      121,
      105,
      110,
      32,
      104,
      111,
      110,
      111,
      114,
      32,
      111,
      102,
      114,
      101,
      108,
      101,
      97,
      115,
      101,
      100,
      32,
      105,
      110,
      114,
      101,
      115,
      105,
      100,
      101,
      110,
      116,
      105,
      97,
      108,
      97,
      110,
      100,
      32,
      115,
      111,
      109,
      101,
      32,
      111,
      102,
      107,
      105,
      110,
      103,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      114,
      101,
      97,
      99,
      116,
      105,
      111,
      110,
      32,
      116,
      111,
      49,
      115,
      116,
      32,
      69,
      97,
      114,
      108,
      32,
      111,
      102,
      99,
      117,
      108,
      116,
      117,
      114,
      101,
      32,
      97,
      110,
      100,
      112,
      114,
      105,
      110,
      99,
      105,
      112,
      97,
      108,
      108,
      121,
      60,
      47,
      116,
      105,
      116,
      108,
      101,
      62,
      10,
      32,
      32,
      116,
      104,
      101,
      121,
      32,
      99,
      97,
      110,
      32,
      98,
      101,
      98,
      97,
      99,
      107,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      115,
      111,
      109,
      101,
      32,
      111,
      102,
      32,
      104,
      105,
      115,
      101,
      120,
      112,
      111,
      115,
      117,
      114,
      101,
      32,
      116,
      111,
      97,
      114,
      101,
      32,
      115,
      105,
      109,
      105,
      108,
      97,
      114,
      102,
      111,
      114,
      109,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      97,
      100,
      100,
      70,
      97,
      118,
      111,
      114,
      105,
      116,
      101,
      99,
      105,
      116,
      105,
      122,
      101,
      110,
      115,
      104,
      105,
      112,
      112,
      97,
      114,
      116,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      112,
      101,
      111,
      112,
      108,
      101,
      32,
      119,
      105,
      116,
      104,
      105,
      110,
      32,
      112,
      114,
      97,
      99,
      116,
      105,
      99,
      101,
      116,
      111,
      32,
      99,
      111,
      110,
      116,
      105,
      110,
      117,
      101,
      38,
      97,
      109,
      112,
      59,
      109,
      105,
      110,
      117,
      115,
      59,
      97,
      112,
      112,
      114,
      111,
      118,
      101,
      100,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      32,
      102,
      105,
      114,
      115,
      116,
      32,
      97,
      108,
      108,
      111,
      119,
      101,
      100,
      32,
      116,
      104,
      101,
      97,
      110,
      100,
      32,
      102,
      111,
      114,
      32,
      116,
      104,
      101,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      105,
      110,
      103,
      112,
      108,
      97,
      121,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      115,
      111,
      108,
      117,
      116,
      105,
      111,
      110,
      32,
      116,
      111,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      48,
      34,
      32,
      105,
      110,
      32,
      104,
      105,
      115,
      32,
      98,
      111,
      111,
      107,
      109,
      111,
      114,
      101,
      32,
      116,
      104,
      97,
      110,
      32,
      97,
      102,
      111,
      108,
      108,
      111,
      119,
      115,
      32,
      116,
      104,
      101,
      99,
      114,
      101,
      97,
      116,
      101,
      100,
      32,
      116,
      104,
      101,
      112,
      114,
      101,
      115,
      101,
      110,
      99,
      101,
      32,
      105,
      110,
      38,
      110,
      98,
      115,
      112,
      59,
      60,
      47,
      116,
      100,
      62,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      105,
      115,
      116,
      116,
      104,
      101,
      32,
      105,
      100,
      101,
      97,
      32,
      111,
      102,
      97,
      32,
      99,
      104,
      97,
      114,
      97,
      99,
      116,
      101,
      114,
      119,
      101,
      114,
      101,
      32,
      102,
      111,
      114,
      99,
      101,
      100,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      98,
      116,
      110,
      100,
      97,
      121,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      102,
      101,
      97,
      116,
      117,
      114,
      101,
      100,
      32,
      105,
      110,
      115,
      104,
      111,
      119,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      105,
      110,
      116,
      101,
      114,
      101,
      115,
      116,
      32,
      105,
      110,
      105,
      110,
      32,
      112,
      108,
      97,
      99,
      101,
      32,
      111,
      102,
      116,
      117,
      114,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      104,
      101,
      97,
      100,
      32,
      111,
      102,
      76,
      111,
      114,
      100,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      112,
      111,
      108,
      105,
      116,
      105,
      99,
      97,
      108,
      108,
      121,
      104,
      97,
      115,
      32,
      105,
      116,
      115,
      32,
      111,
      119,
      110,
      69,
      100,
      117,
      99,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      97,
      112,
      112,
      114,
      111,
      118,
      97,
      108,
      32,
      111,
      102,
      115,
      111,
      109,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      101,
      97,
      99,
      104,
      32,
      111,
      116,
      104,
      101,
      114,
      44,
      98,
      101,
      104,
      97,
      118,
      105,
      111,
      114,
      32,
      111,
      102,
      97,
      110,
      100,
      32,
      98,
      101,
      99,
      97,
      117,
      115,
      101,
      97,
      110,
      100,
      32,
      97,
      110,
      111,
      116,
      104,
      101,
      114,
      97,
      112,
      112,
      101,
      97,
      114,
      101,
      100,
      32,
      111,
      110,
      114,
      101,
      99,
      111,
      114,
      100,
      101,
      100,
      32,
      105,
      110,
      98,
      108,
      97,
      99,
      107,
      38,
      113,
      117,
      111,
      116,
      59,
      109,
      97,
      121,
      32,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      116,
      104,
      101,
      32,
      119,
      111,
      114,
      108,
      100,
      39,
      115,
      99,
      97,
      110,
      32,
      108,
      101,
      97,
      100,
      32,
      116,
      111,
      114,
      101,
      102,
      101,
      114,
      115,
      32,
      116,
      111,
      32,
      97,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      34,
      48,
      34,
      32,
      103,
      111,
      118,
      101,
      114,
      110,
      109,
      101,
      110,
      116,
      32,
      119,
      105,
      110,
      110,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      114,
      101,
      115,
      117,
      108,
      116,
      101,
      100,
      32,
      105,
      110,
      32,
      119,
      104,
      105,
      108,
      101,
      32,
      116,
      104,
      101,
      32,
      87,
      97,
      115,
      104,
      105,
      110,
      103,
      116,
      111,
      110,
      44,
      116,
      104,
      101,
      32,
      115,
      117,
      98,
      106,
      101,
      99,
      116,
      99,
      105,
      116,
      121,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      13,
      10,
      9,
      9,
      114,
      101,
      102,
      108,
      101,
      99,
      116,
      32,
      116,
      104,
      101,
      116,
      111,
      32,
      99,
      111,
      109,
      112,
      108,
      101,
      116,
      101,
      98,
      101,
      99,
      97,
      109,
      101,
      32,
      109,
      111,
      114,
      101,
      114,
      97,
      100,
      105,
      111,
      97,
      99,
      116,
      105,
      118,
      101,
      114,
      101,
      106,
      101,
      99,
      116,
      101,
      100,
      32,
      98,
      121,
      119,
      105,
      116,
      104,
      111,
      117,
      116,
      32,
      97,
      110,
      121,
      104,
      105,
      115,
      32,
      102,
      97,
      116,
      104,
      101,
      114,
      44,
      119,
      104,
      105,
      99,
      104,
      32,
      99,
      111,
      117,
      108,
      100,
      99,
      111,
      112,
      121,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      116,
      111,
      32,
      105,
      110,
      100,
      105,
      99,
      97,
      116,
      101,
      97,
      32,
      112,
      111,
      108,
      105,
      116,
      105,
      99,
      97,
      108,
      97,
      99,
      99,
      111,
      117,
      110,
      116,
      115,
      32,
      111,
      102,
      99,
      111,
      110,
      115,
      116,
      105,
      116,
      117,
      116,
      101,
      115,
      119,
      111,
      114,
      107,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      101,
      114,
      60,
      47,
      97,
      62,
      60,
      47,
      108,
      105,
      62,
      111,
      102,
      32,
      104,
      105,
      115,
      32,
      108,
      105,
      102,
      101,
      97,
      99,
      99,
      111,
      109,
      112,
      97,
      110,
      105,
      101,
      100,
      99,
      108,
      105,
      101,
      110,
      116,
      87,
      105,
      100,
      116,
      104,
      112,
      114,
      101,
      118,
      101,
      110,
      116,
      32,
      116,
      104,
      101,
      76,
      101,
      103,
      105,
      115,
      108,
      97,
      116,
      105,
      118,
      101,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      108,
      121,
      116,
      111,
      103,
      101,
      116,
      104,
      101,
      114,
      32,
      105,
      110,
      104,
      97,
      115,
      32,
      115,
      101,
      118,
      101,
      114,
      97,
      108,
      102,
      111,
      114,
      32,
      97,
      110,
      111,
      116,
      104,
      101,
      114,
      116,
      101,
      120,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      102,
      111,
      117,
      110,
      100,
      101,
      100,
      32,
      116,
      104,
      101,
      101,
      32,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      32,
      105,
      115,
      32,
      117,
      115,
      101,
      100,
      32,
      102,
      111,
      114,
      99,
      104,
      97,
      110,
      103,
      101,
      100,
      32,
      116,
      104,
      101,
      117,
      115,
      117,
      97,
      108,
      108,
      121,
      32,
      116,
      104,
      101,
      112,
      108,
      97,
      99,
      101,
      32,
      119,
      104,
      101,
      114,
      101,
      119,
      104,
      101,
      114,
      101,
      97,
      115,
      32,
      116,
      104,
      101,
      62,
      32,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      34,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      116,
      104,
      101,
      109,
      115,
      101,
      108,
      118,
      101,
      115,
      44,
      97,
      108,
      116,
      104,
      111,
      117,
      103,
      104,
      32,
      104,
      101,
      116,
      104,
      97,
      116,
      32,
      99,
      97,
      110,
      32,
      98,
      101,
      116,
      114,
      97,
      100,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      114,
      111,
      108,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      97,
      115,
      32,
      97,
      32,
      114,
      101,
      115,
      117,
      108,
      116,
      114,
      101,
      109,
      111,
      118,
      101,
      67,
      104,
      105,
      108,
      100,
      100,
      101,
      115,
      105,
      103,
      110,
      101,
      100,
      32,
      98,
      121,
      119,
      101,
      115,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      83,
      111,
      109,
      101,
      32,
      112,
      101,
      111,
      112,
      108,
      101,
      112,
      114,
      111,
      100,
      117,
      99,
      116,
      105,
      111,
      110,
      44,
      115,
      105,
      100,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      110,
      101,
      119,
      115,
      108,
      101,
      116,
      116,
      101,
      114,
      115,
      117,
      115,
      101,
      100,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      100,
      111,
      119,
      110,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      97,
      99,
      99,
      101,
      112,
      116,
      101,
      100,
      32,
      98,
      121,
      108,
      105,
      118,
      101,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      97,
      116,
      116,
      101,
      109,
      112,
      116,
      115,
      32,
      116,
      111,
      111,
      117,
      116,
      115,
      105,
      100,
      101,
      32,
      116,
      104,
      101,
      102,
      114,
      101,
      113,
      117,
      101,
      110,
      99,
      105,
      101,
      115,
      72,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      105,
      110,
      112,
      114,
      111,
      103,
      114,
      97,
      109,
      109,
      101,
      114,
      115,
      97,
      116,
      32,
      108,
      101,
      97,
      115,
      116,
      32,
      105,
      110,
      97,
      112,
      112,
      114,
      111,
      120,
      105,
      109,
      97,
      116,
      101,
      97,
      108,
      116,
      104,
      111,
      117,
      103,
      104,
      32,
      105,
      116,
      119,
      97,
      115,
      32,
      112,
      97,
      114,
      116,
      32,
      111,
      102,
      97,
      110,
      100,
      32,
      118,
      97,
      114,
      105,
      111,
      117,
      115,
      71,
      111,
      118,
      101,
      114,
      110,
      111,
      114,
      32,
      111,
      102,
      116,
      104,
      101,
      32,
      97,
      114,
      116,
      105,
      99,
      108,
      101,
      116,
      117,
      114,
      110,
      101,
      100,
      32,
      105,
      110,
      116,
      111,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      47,
      116,
      104,
      101,
      32,
      101,
      99,
      111,
      110,
      111,
      109,
      121,
      105,
      115,
      32,
      116,
      104,
      101,
      32,
      109,
      111,
      115,
      116,
      109,
      111,
      115,
      116,
      32,
      119,
      105,
      100,
      101,
      108,
      121,
      119,
      111,
      117,
      108,
      100,
      32,
      108,
      97,
      116,
      101,
      114,
      97,
      110,
      100,
      32,
      112,
      101,
      114,
      104,
      97,
      112,
      115,
      114,
      105,
      115,
      101,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      111,
      99,
      99,
      117,
      114,
      115,
      32,
      119,
      104,
      101,
      110,
      117,
      110,
      100,
      101,
      114,
      32,
      119,
      104,
      105,
      99,
      104,
      99,
      111,
      110,
      100,
      105,
      116,
      105,
      111,
      110,
      115,
      46,
      116,
      104,
      101,
      32,
      119,
      101,
      115,
      116,
      101,
      114,
      110,
      116,
      104,
      101,
      111,
      114,
      121,
      32,
      116,
      104,
      97,
      116,
      105,
      115,
      32,
      112,
      114,
      111,
      100,
      117,
      99,
      101,
      100,
      116,
      104,
      101,
      32,
      99,
      105,
      116,
      121,
      32,
      111,
      102,
      105,
      110,
      32,
      119,
      104,
      105,
      99,
      104,
      32,
      104,
      101,
      115,
      101,
      101,
      110,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      99,
      101,
      110,
      116,
      114,
      97,
      108,
      98,
      117,
      105,
      108,
      100,
      105,
      110,
      103,
      32,
      111,
      102,
      109,
      97,
      110,
      121,
      32,
      111,
      102,
      32,
      104,
      105,
      115,
      97,
      114,
      101,
      97,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      105,
      115,
      32,
      116,
      104,
      101,
      32,
      111,
      110,
      108,
      121,
      109,
      111,
      115,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      109,
      97,
      110,
      121,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      87,
      101,
      115,
      116,
      101,
      114,
      110,
      84,
      104,
      101,
      114,
      101,
      32,
      105,
      115,
      32,
      110,
      111,
      101,
      120,
      116,
      101,
      110,
      100,
      101,
      100,
      32,
      116,
      111,
      83,
      116,
      97,
      116,
      105,
      115,
      116,
      105,
      99,
      97,
      108,
      99,
      111,
      108,
      115,
      112,
      97,
      110,
      61,
      50,
      32,
      124,
      115,
      104,
      111,
      114,
      116,
      32,
      115,
      116,
      111,
      114,
      121,
      112,
      111,
      115,
      115,
      105,
      98,
      108,
      101,
      32,
      116,
      111,
      116,
      111,
      112,
      111,
      108,
      111,
      103,
      105,
      99,
      97,
      108,
      99,
      114,
      105,
      116,
      105,
      99,
      97,
      108,
      32,
      111,
      102,
      114,
      101,
      112,
      111,
      114,
      116,
      101,
      100,
      32,
      116,
      111,
      97,
      32,
      67,
      104,
      114,
      105,
      115,
      116,
      105,
      97,
      110,
      100,
      101,
      99,
      105,
      115,
      105,
      111,
      110,
      32,
      116,
      111,
      105,
      115,
      32,
      101,
      113,
      117,
      97,
      108,
      32,
      116,
      111,
      112,
      114,
      111,
      98,
      108,
      101,
      109,
      115,
      32,
      111,
      102,
      84,
      104,
      105,
      115,
      32,
      99,
      97,
      110,
      32,
      98,
      101,
      109,
      101,
      114,
      99,
      104,
      97,
      110,
      100,
      105,
      115,
      101,
      102,
      111,
      114,
      32,
      109,
      111,
      115,
      116,
      32,
      111,
      102,
      110,
      111,
      32,
      101,
      118,
      105,
      100,
      101,
      110,
      99,
      101,
      101,
      100,
      105,
      116,
      105,
      111,
      110,
      115,
      32,
      111,
      102,
      101,
      108,
      101,
      109,
      101,
      110,
      116,
      115,
      32,
      105,
      110,
      38,
      113,
      117,
      111,
      116,
      59,
      46,
      32,
      84,
      104,
      101,
      99,
      111,
      109,
      47,
      105,
      109,
      97,
      103,
      101,
      115,
      47,
      119,
      104,
      105,
      99,
      104,
      32,
      109,
      97,
      107,
      101,
      115,
      116,
      104,
      101,
      32,
      112,
      114,
      111,
      99,
      101,
      115,
      115,
      114,
      101,
      109,
      97,
      105,
      110,
      115,
      32,
      116,
      104,
      101,
      108,
      105,
      116,
      101,
      114,
      97,
      116,
      117,
      114,
      101,
      44,
      105,
      115,
      32,
      97,
      32,
      109,
      101,
      109,
      98,
      101,
      114,
      116,
      104,
      101,
      32,
      112,
      111,
      112,
      117,
      108,
      97,
      114,
      116,
      104,
      101,
      32,
      97,
      110,
      99,
      105,
      101,
      110,
      116,
      112,
      114,
      111,
      98,
      108,
      101,
      109,
      115,
      32,
      105,
      110,
      116,
      105,
      109,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      100,
      101,
      102,
      101,
      97,
      116,
      101,
      100,
      32,
      98,
      121,
      98,
      111,
      100,
      121,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      97,
      32,
      102,
      101,
      119,
      32,
      121,
      101,
      97,
      114,
      115,
      109,
      117,
      99,
      104,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      119,
      111,
      114,
      107,
      32,
      111,
      102,
      67,
      97,
      108,
      105,
      102,
      111,
      114,
      110,
      105,
      97,
      44,
      115,
      101,
      114,
      118,
      101,
      100,
      32,
      97,
      115,
      32,
      97,
      103,
      111,
      118,
      101,
      114,
      110,
      109,
      101,
      110,
      116,
      46,
      99,
      111,
      110,
      99,
      101,
      112,
      116,
      115,
      32,
      111,
      102,
      109,
      111,
      118,
      101,
      109,
      101,
      110,
      116,
      32,
      105,
      110,
      9,
      9,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      105,
      116,
      34,
      32,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      32,
      111,
      102,
      97,
      115,
      32,
      116,
      104,
      101,
      121,
      32,
      97,
      114,
      101,
      112,
      114,
      111,
      100,
      117,
      99,
      101,
      100,
      32,
      105,
      110,
      105,
      115,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      101,
      120,
      112,
      108,
      97,
      105,
      110,
      32,
      116,
      104,
      101,
      100,
      105,
      118,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      72,
      111,
      119,
      101,
      118,
      101,
      114,
      32,
      116,
      104,
      101,
      108,
      101,
      97,
      100,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      9,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      47,
      119,
      97,
      115,
      32,
      103,
      114,
      97,
      110,
      116,
      101,
      100,
      112,
      101,
      111,
      112,
      108,
      101,
      32,
      104,
      97,
      118,
      101,
      99,
      111,
      110,
      116,
      105,
      110,
      117,
      97,
      108,
      108,
      121,
      119,
      97,
      115,
      32,
      115,
      101,
      101,
      110,
      32,
      97,
      115,
      97,
      110,
      100,
      32,
      114,
      101,
      108,
      97,
      116,
      101,
      100,
      116,
      104,
      101,
      32,
      114,
      111,
      108,
      101,
      32,
      111,
      102,
      112,
      114,
      111,
      112,
      111,
      115,
      101,
      100,
      32,
      98,
      121,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      98,
      101,
      115,
      116,
      101,
      97,
      99,
      104,
      32,
      111,
      116,
      104,
      101,
      114,
      46,
      67,
      111,
      110,
      115,
      116,
      97,
      110,
      116,
      105,
      110,
      101,
      112,
      101,
      111,
      112,
      108,
      101,
      32,
      102,
      114,
      111,
      109,
      100,
      105,
      97,
      108,
      101,
      99,
      116,
      115,
      32,
      111,
      102,
      116,
      111,
      32,
      114,
      101,
      118,
      105,
      115,
      105,
      111,
      110,
      119,
      97,
      115,
      32,
      114,
      101,
      110,
      97,
      109,
      101,
      100,
      97,
      32,
      115,
      111,
      117,
      114,
      99,
      101,
      32,
      111,
      102,
      116,
      104,
      101,
      32,
      105,
      110,
      105,
      116,
      105,
      97,
      108,
      108,
      97,
      117,
      110,
      99,
      104,
      101,
      100,
      32,
      105,
      110,
      112,
      114,
      111,
      118,
      105,
      100,
      101,
      32,
      116,
      104,
      101,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      119,
      101,
      115,
      116,
      119,
      104,
      101,
      114,
      101,
      32,
      116,
      104,
      101,
      114,
      101,
      97,
      110,
      100,
      32,
      115,
      105,
      109,
      105,
      108,
      97,
      114,
      98,
      101,
      116,
      119,
      101,
      101,
      110,
      32,
      116,
      119,
      111,
      105,
      115,
      32,
      97,
      108,
      115,
      111,
      32,
      116,
      104,
      101,
      69,
      110,
      103,
      108,
      105,
      115,
      104,
      32,
      97,
      110,
      100,
      99,
      111,
      110,
      100,
      105,
      116,
      105,
      111,
      110,
      115,
      44,
      116,
      104,
      97,
      116,
      32,
      105,
      116,
      32,
      119,
      97,
      115,
      101,
      110,
      116,
      105,
      116,
      108,
      101,
      100,
      32,
      116,
      111,
      116,
      104,
      101,
      109,
      115,
      101,
      108,
      118,
      101,
      115,
      46,
      113,
      117,
      97,
      110,
      116,
      105,
      116,
      121,
      32,
      111,
      102,
      114,
      97,
      110,
      115,
      112,
      97,
      114,
      101,
      110,
      99,
      121,
      116,
      104,
      101,
      32,
      115,
      97,
      109,
      101,
      32,
      97,
      115,
      116,
      111,
      32,
      106,
      111,
      105,
      110,
      32,
      116,
      104,
      101,
      99,
      111,
      117,
      110,
      116,
      114,
      121,
      32,
      97,
      110,
      100,
      116,
      104,
      105,
      115,
      32,
      105,
      115,
      32,
      116,
      104,
      101,
      84,
      104,
      105,
      115,
      32,
      108,
      101,
      100,
      32,
      116,
      111,
      97,
      32,
      115,
      116,
      97,
      116,
      101,
      109,
      101,
      110,
      116,
      99,
      111,
      110,
      116,
      114,
      97,
      115,
      116,
      32,
      116,
      111,
      108,
      97,
      115,
      116,
      73,
      110,
      100,
      101,
      120,
      79,
      102,
      116,
      104,
      114,
      111,
      117,
      103,
      104,
      32,
      104,
      105,
      115,
      105,
      115,
      32,
      100,
      101,
      115,
      105,
      103,
      110,
      101,
      100,
      116,
      104,
      101,
      32,
      116,
      101,
      114,
      109,
      32,
      105,
      115,
      105,
      115,
      32,
      112,
      114,
      111,
      118,
      105,
      100,
      101,
      100,
      112,
      114,
      111,
      116,
      101,
      99,
      116,
      32,
      116,
      104,
      101,
      110,
      103,
      60,
      47,
      97,
      62,
      60,
      47,
      108,
      105,
      62,
      84,
      104,
      101,
      32,
      99,
      117,
      114,
      114,
      101,
      110,
      116,
      116,
      104,
      101,
      32,
      115,
      105,
      116,
      101,
      32,
      111,
      102,
      115,
      117,
      98,
      115,
      116,
      97,
      110,
      116,
      105,
      97,
      108,
      101,
      120,
      112,
      101,
      114,
      105,
      101,
      110,
      99,
      101,
      44,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      87,
      101,
      115,
      116,
      116,
      104,
      101,
      121,
      32,
      115,
      104,
      111,
      117,
      108,
      100,
      115,
      108,
      111,
      118,
      101,
      110,
      196,
      141,
      105,
      110,
      97,
      99,
      111,
      109,
      101,
      110,
      116,
      97,
      114,
      105,
      111,
      115,
      117,
      110,
      105,
      118,
      101,
      114,
      115,
      105,
      100,
      97,
      100,
      99,
      111,
      110,
      100,
      105,
      99,
      105,
      111,
      110,
      101,
      115,
      97,
      99,
      116,
      105,
      118,
      105,
      100,
      97,
      100,
      101,
      115,
      101,
      120,
      112,
      101,
      114,
      105,
      101,
      110,
      99,
      105,
      97,
      116,
      101,
      99,
      110,
      111,
      108,
      111,
      103,
      195,
      173,
      97,
      112,
      114,
      111,
      100,
      117,
      99,
      99,
      105,
      195,
      179,
      110,
      112,
      117,
      110,
      116,
      117,
      97,
      99,
      105,
      195,
      179,
      110,
      97,
      112,
      108,
      105,
      99,
      97,
      99,
      105,
      195,
      179,
      110,
      99,
      111,
      110,
      116,
      114,
      97,
      115,
      101,
      195,
      177,
      97,
      99,
      97,
      116,
      101,
      103,
      111,
      114,
      195,
      173,
      97,
      115,
      114,
      101,
      103,
      105,
      115,
      116,
      114,
      97,
      114,
      115,
      101,
      112,
      114,
      111,
      102,
      101,
      115,
      105,
      111,
      110,
      97,
      108,
      116,
      114,
      97,
      116,
      97,
      109,
      105,
      101,
      110,
      116,
      111,
      114,
      101,
      103,
      195,
      173,
      115,
      116,
      114,
      97,
      116,
      101,
      115,
      101,
      99,
      114,
      101,
      116,
      97,
      114,
      195,
      173,
      97,
      112,
      114,
      105,
      110,
      99,
      105,
      112,
      97,
      108,
      101,
      115,
      112,
      114,
      111,
      116,
      101,
      99,
      99,
      105,
      195,
      179,
      110,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      101,
      115,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      99,
      105,
      97,
      112,
      111,
      115,
      105,
      98,
      105,
      108,
      105,
      100,
      97,
      100,
      105,
      110,
      116,
      101,
      114,
      101,
      115,
      97,
      110,
      116,
      101,
      99,
      114,
      101,
      99,
      105,
      109,
      105,
      101,
      110,
      116,
      111,
      110,
      101,
      99,
      101,
      115,
      105,
      100,
      97,
      100,
      101,
      115,
      115,
      117,
      115,
      99,
      114,
      105,
      98,
      105,
      114,
      115,
      101,
      97,
      115,
      111,
      99,
      105,
      97,
      99,
      105,
      195,
      179,
      110,
      100,
      105,
      115,
      112,
      111,
      110,
      105,
      98,
      108,
      101,
      115,
      101,
      118,
      97,
      108,
      117,
      97,
      99,
      105,
      195,
      179,
      110,
      101,
      115,
      116,
      117,
      100,
      105,
      97,
      110,
      116,
      101,
      115,
      114,
      101,
      115,
      112,
      111,
      110,
      115,
      97,
      98,
      108,
      101,
      114,
      101,
      115,
      111,
      108,
      117,
      99,
      105,
      195,
      179,
      110,
      103,
      117,
      97,
      100,
      97,
      108,
      97,
      106,
      97,
      114,
      97,
      114,
      101,
      103,
      105,
      115,
      116,
      114,
      97,
      100,
      111,
      115,
      111,
      112,
      111,
      114,
      116,
      117,
      110,
      105,
      100,
      97,
      100,
      99,
      111,
      109,
      101,
      114,
      99,
      105,
      97,
      108,
      101,
      115,
      102,
      111,
      116,
      111,
      103,
      114,
      97,
      102,
      195,
      173,
      97,
      97,
      117,
      116,
      111,
      114,
      105,
      100,
      97,
      100,
      101,
      115,
      105,
      110,
      103,
      101,
      110,
      105,
      101,
      114,
      195,
      173,
      97,
      116,
      101,
      108,
      101,
      118,
      105,
      115,
      105,
      195,
      179,
      110,
      99,
      111,
      109,
      112,
      101,
      116,
      101,
      110,
      99,
      105,
      97,
      111,
      112,
      101,
      114,
      97,
      99,
      105,
      111,
      110,
      101,
      115,
      101,
      115,
      116,
      97,
      98,
      108,
      101,
      99,
      105,
      100,
      111,
      115,
      105,
      109,
      112,
      108,
      101,
      109,
      101,
      110,
      116,
      101,
      97,
      99,
      116,
      117,
      97,
      108,
      109,
      101,
      110,
      116,
      101,
      110,
      97,
      118,
      101,
      103,
      97,
      99,
      105,
      195,
      179,
      110,
      99,
      111,
      110,
      102,
      111,
      114,
      109,
      105,
      100,
      97,
      100,
      108,
      105,
      110,
      101,
      45,
      104,
      101,
      105,
      103,
      104,
      116,
      58,
      102,
      111,
      110,
      116,
      45,
      102,
      97,
      109,
      105,
      108,
      121,
      58,
      34,
      32,
      58,
      32,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      97,
      112,
      112,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      115,
      108,
      105,
      110,
      107,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      115,
      112,
      101,
      99,
      105,
      102,
      105,
      99,
      97,
      108,
      108,
      121,
      47,
      47,
      60,
      33,
      91,
      67,
      68,
      65,
      84,
      65,
      91,
      10,
      79,
      114,
      103,
      97,
      110,
      105,
      122,
      97,
      116,
      105,
      111,
      110,
      100,
      105,
      115,
      116,
      114,
      105,
      98,
      117,
      116,
      105,
      111,
      110,
      48,
      112,
      120,
      59,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      58,
      114,
      101,
      108,
      97,
      116,
      105,
      111,
      110,
      115,
      104,
      105,
      112,
      100,
      101,
      118,
      105,
      99,
      101,
      45,
      119,
      105,
      100,
      116,
      104,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      60,
      108,
      97,
      98,
      101,
      108,
      32,
      102,
      111,
      114,
      61,
      34,
      114,
      101,
      103,
      105,
      115,
      116,
      114,
      97,
      116,
      105,
      111,
      110,
      60,
      47,
      110,
      111,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      47,
      105,
      110,
      100,
      101,
      120,
      46,
      104,
      116,
      109,
      108,
      34,
      119,
      105,
      110,
      100,
      111,
      119,
      46,
      111,
      112,
      101,
      110,
      40,
      32,
      33,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      59,
      97,
      112,
      112,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      47,
      105,
      110,
      100,
      101,
      112,
      101,
      110,
      100,
      101,
      110,
      99,
      101,
      47,
      47,
      119,
      119,
      119,
      46,
      103,
      111,
      111,
      103,
      108,
      101,
      111,
      114,
      103,
      97,
      110,
      105,
      122,
      97,
      116,
      105,
      111,
      110,
      97,
      117,
      116,
      111,
      99,
      111,
      109,
      112,
      108,
      101,
      116,
      101,
      114,
      101,
      113,
      117,
      105,
      114,
      101,
      109,
      101,
      110,
      116,
      115,
      99,
      111,
      110,
      115,
      101,
      114,
      118,
      97,
      116,
      105,
      118,
      101,
      60,
      102,
      111,
      114,
      109,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      105,
      110,
      116,
      101,
      108,
      108,
      101,
      99,
      116,
      117,
      97,
      108,
      109,
      97,
      114,
      103,
      105,
      110,
      45,
      108,
      101,
      102,
      116,
      58,
      49,
      56,
      116,
      104,
      32,
      99,
      101,
      110,
      116,
      117,
      114,
      121,
      97,
      110,
      32,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      105,
      110,
      115,
      116,
      105,
      116,
      117,
      116,
      105,
      111,
      110,
      115,
      97,
      98,
      98,
      114,
      101,
      118,
      105,
      97,
      116,
      105,
      111,
      110,
      60,
      105,
      109,
      103,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      111,
      114,
      103,
      97,
      110,
      105,
      115,
      97,
      116,
      105,
      111,
      110,
      99,
      105,
      118,
      105,
      108,
      105,
      122,
      97,
      116,
      105,
      111,
      110,
      49,
      57,
      116,
      104,
      32,
      99,
      101,
      110,
      116,
      117,
      114,
      121,
      97,
      114,
      99,
      104,
      105,
      116,
      101,
      99,
      116,
      117,
      114,
      101,
      105,
      110,
      99,
      111,
      114,
      112,
      111,
      114,
      97,
      116,
      101,
      100,
      50,
      48,
      116,
      104,
      32,
      99,
      101,
      110,
      116,
      117,
      114,
      121,
      45,
      99,
      111,
      110,
      116,
      97,
      105,
      110,
      101,
      114,
      34,
      62,
      109,
      111,
      115,
      116,
      32,
      110,
      111,
      116,
      97,
      98,
      108,
      121,
      47,
      62,
      60,
      47,
      97,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      110,
      111,
      116,
      105,
      102,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      39,
      117,
      110,
      100,
      101,
      102,
      105,
      110,
      101,
      100,
      39,
      41,
      70,
      117,
      114,
      116,
      104,
      101,
      114,
      109,
      111,
      114,
      101,
      44,
      98,
      101,
      108,
      105,
      101,
      118,
      101,
      32,
      116,
      104,
      97,
      116,
      105,
      110,
      110,
      101,
      114,
      72,
      84,
      77,
      76,
      32,
      61,
      32,
      112,
      114,
      105,
      111,
      114,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      100,
      114,
      97,
      109,
      97,
      116,
      105,
      99,
      97,
      108,
      108,
      121,
      114,
      101,
      102,
      101,
      114,
      114,
      105,
      110,
      103,
      32,
      116,
      111,
      110,
      101,
      103,
      111,
      116,
      105,
      97,
      116,
      105,
      111,
      110,
      115,
      104,
      101,
      97,
      100,
      113,
      117,
      97,
      114,
      116,
      101,
      114,
      115,
      83,
      111,
      117,
      116,
      104,
      32,
      65,
      102,
      114,
      105,
      99,
      97,
      117,
      110,
      115,
      117,
      99,
      99,
      101,
      115,
      115,
      102,
      117,
      108,
      80,
      101,
      110,
      110,
      115,
      121,
      108,
      118,
      97,
      110,
      105,
      97,
      65,
      115,
      32,
      97,
      32,
      114,
      101,
      115,
      117,
      108,
      116,
      44,
      60,
      104,
      116,
      109,
      108,
      32,
      108,
      97,
      110,
      103,
      61,
      34,
      38,
      108,
      116,
      59,
      47,
      115,
      117,
      112,
      38,
      103,
      116,
      59,
      100,
      101,
      97,
      108,
      105,
      110,
      103,
      32,
      119,
      105,
      116,
      104,
      112,
      104,
      105,
      108,
      97,
      100,
      101,
      108,
      112,
      104,
      105,
      97,
      104,
      105,
      115,
      116,
      111,
      114,
      105,
      99,
      97,
      108,
      108,
      121,
      41,
      59,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      45,
      116,
      111,
      112,
      58,
      101,
      120,
      112,
      101,
      114,
      105,
      109,
      101,
      110,
      116,
      97,
      108,
      103,
      101,
      116,
      65,
      116,
      116,
      114,
      105,
      98,
      117,
      116,
      101,
      105,
      110,
      115,
      116,
      114,
      117,
      99,
      116,
      105,
      111,
      110,
      115,
      116,
      101,
      99,
      104,
      110,
      111,
      108,
      111,
      103,
      105,
      101,
      115,
      112,
      97,
      114,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      61,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      123,
      115,
      117,
      98,
      115,
      99,
      114,
      105,
      112,
      116,
      105,
      111,
      110,
      108,
      46,
      100,
      116,
      100,
      34,
      62,
      13,
      10,
      60,
      104,
      116,
      103,
      101,
      111,
      103,
      114,
      97,
      112,
      104,
      105,
      99,
      97,
      108,
      67,
      111,
      110,
      115,
      116,
      105,
      116,
      117,
      116,
      105,
      111,
      110,
      39,
      44,
      32,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      115,
      117,
      112,
      112,
      111,
      114,
      116,
      101,
      100,
      32,
      98,
      121,
      97,
      103,
      114,
      105,
      99,
      117,
      108,
      116,
      117,
      114,
      97,
      108,
      99,
      111,
      110,
      115,
      116,
      114,
      117,
      99,
      116,
      105,
      111,
      110,
      112,
      117,
      98,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      115,
      102,
      111,
      110,
      116,
      45,
      115,
      105,
      122,
      101,
      58,
      32,
      49,
      97,
      32,
      118,
      97,
      114,
      105,
      101,
      116,
      121,
      32,
      111,
      102,
      60,
      100,
      105,
      118,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      69,
      110,
      99,
      121,
      99,
      108,
      111,
      112,
      101,
      100,
      105,
      97,
      105,
      102,
      114,
      97,
      109,
      101,
      32,
      115,
      114,
      99,
      61,
      34,
      100,
      101,
      109,
      111,
      110,
      115,
      116,
      114,
      97,
      116,
      101,
      100,
      97,
      99,
      99,
      111,
      109,
      112,
      108,
      105,
      115,
      104,
      101,
      100,
      117,
      110,
      105,
      118,
      101,
      114,
      115,
      105,
      116,
      105,
      101,
      115,
      68,
      101,
      109,
      111,
      103,
      114,
      97,
      112,
      104,
      105,
      99,
      115,
      41,
      59,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      60,
      100,
      101,
      100,
      105,
      99,
      97,
      116,
      101,
      100,
      32,
      116,
      111,
      107,
      110,
      111,
      119,
      108,
      101,
      100,
      103,
      101,
      32,
      111,
      102,
      115,
      97,
      116,
      105,
      115,
      102,
      97,
      99,
      116,
      105,
      111,
      110,
      112,
      97,
      114,
      116,
      105,
      99,
      117,
      108,
      97,
      114,
      108,
      121,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      69,
      110,
      103,
      108,
      105,
      115,
      104,
      32,
      40,
      85,
      83,
      41,
      97,
      112,
      112,
      101,
      110,
      100,
      67,
      104,
      105,
      108,
      100,
      40,
      116,
      114,
      97,
      110,
      115,
      109,
      105,
      115,
      115,
      105,
      111,
      110,
      115,
      46,
      32,
      72,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      105,
      110,
      116,
      101,
      108,
      108,
      105,
      103,
      101,
      110,
      99,
      101,
      34,
      32,
      116,
      97,
      98,
      105,
      110,
      100,
      101,
      120,
      61,
      34,
      102,
      108,
      111,
      97,
      116,
      58,
      114,
      105,
      103,
      104,
      116,
      59,
      67,
      111,
      109,
      109,
      111,
      110,
      119,
      101,
      97,
      108,
      116,
      104,
      114,
      97,
      110,
      103,
      105,
      110,
      103,
      32,
      102,
      114,
      111,
      109,
      105,
      110,
      32,
      119,
      104,
      105,
      99,
      104,
      32,
      116,
      104,
      101,
      97,
      116,
      32,
      108,
      101,
      97,
      115,
      116,
      32,
      111,
      110,
      101,
      114,
      101,
      112,
      114,
      111,
      100,
      117,
      99,
      116,
      105,
      111,
      110,
      101,
      110,
      99,
      121,
      99,
      108,
      111,
      112,
      101,
      100,
      105,
      97,
      59,
      102,
      111,
      110,
      116,
      45,
      115,
      105,
      122,
      101,
      58,
      49,
      106,
      117,
      114,
      105,
      115,
      100,
      105,
      99,
      116,
      105,
      111,
      110,
      97,
      116,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      105,
      109,
      101,
      34,
      62,
      60,
      97,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      73,
      110,
      32,
      97,
      100,
      100,
      105,
      116,
      105,
      111,
      110,
      44,
      100,
      101,
      115,
      99,
      114,
      105,
      112,
      116,
      105,
      111,
      110,
      43,
      99,
      111,
      110,
      118,
      101,
      114,
      115,
      97,
      116,
      105,
      111,
      110,
      99,
      111,
      110,
      116,
      97,
      99,
      116,
      32,
      119,
      105,
      116,
      104,
      105,
      115,
      32,
      103,
      101,
      110,
      101,
      114,
      97,
      108,
      108,
      121,
      114,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      114,
      101,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      105,
      110,
      103,
      38,
      108,
      116,
      59,
      109,
      97,
      116,
      104,
      38,
      103,
      116,
      59,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      97,
      116,
      105,
      111,
      110,
      111,
      99,
      99,
      97,
      115,
      105,
      111,
      110,
      97,
      108,
      108,
      121,
      60,
      105,
      109,
      103,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      110,
      97,
      118,
      105,
      103,
      97,
      116,
      105,
      111,
      110,
      34,
      62,
      99,
      111,
      109,
      112,
      101,
      110,
      115,
      97,
      116,
      105,
      111,
      110,
      99,
      104,
      97,
      109,
      112,
      105,
      111,
      110,
      115,
      104,
      105,
      112,
      109,
      101,
      100,
      105,
      97,
      61,
      34,
      97,
      108,
      108,
      34,
      32,
      118,
      105,
      111,
      108,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      114,
      101,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      32,
      116,
      111,
      114,
      101,
      116,
      117,
      114,
      110,
      32,
      116,
      114,
      117,
      101,
      59,
      83,
      116,
      114,
      105,
      99,
      116,
      47,
      47,
      69,
      78,
      34,
      32,
      116,
      114,
      97,
      110,
      115,
      97,
      99,
      116,
      105,
      111,
      110,
      115,
      105,
      110,
      116,
      101,
      114,
      118,
      101,
      110,
      116,
      105,
      111,
      110,
      118,
      101,
      114,
      105,
      102,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      73,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      32,
      100,
      105,
      102,
      102,
      105,
      99,
      117,
      108,
      116,
      105,
      101,
      115,
      67,
      104,
      97,
      109,
      112,
      105,
      111,
      110,
      115,
      104,
      105,
      112,
      99,
      97,
      112,
      97,
      98,
      105,
      108,
      105,
      116,
      105,
      101,
      115,
      60,
      33,
      91,
      101,
      110,
      100,
      105,
      102,
      93,
      45,
      45,
      62,
      125,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      67,
      104,
      114,
      105,
      115,
      116,
      105,
      97,
      110,
      105,
      116,
      121,
      102,
      111,
      114,
      32,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      44,
      80,
      114,
      111,
      102,
      101,
      115,
      115,
      105,
      111,
      110,
      97,
      108,
      114,
      101,
      115,
      116,
      114,
      105,
      99,
      116,
      105,
      111,
      110,
      115,
      115,
      117,
      103,
      103,
      101,
      115,
      116,
      32,
      116,
      104,
      97,
      116,
      119,
      97,
      115,
      32,
      114,
      101,
      108,
      101,
      97,
      115,
      101,
      100,
      40,
      115,
      117,
      99,
      104,
      32,
      97,
      115,
      32,
      116,
      104,
      101,
      114,
      101,
      109,
      111,
      118,
      101,
      67,
      108,
      97,
      115,
      115,
      40,
      117,
      110,
      101,
      109,
      112,
      108,
      111,
      121,
      109,
      101,
      110,
      116,
      116,
      104,
      101,
      32,
      65,
      109,
      101,
      114,
      105,
      99,
      97,
      110,
      115,
      116,
      114,
      117,
      99,
      116,
      117,
      114,
      101,
      32,
      111,
      102,
      47,
      105,
      110,
      100,
      101,
      120,
      46,
      104,
      116,
      109,
      108,
      32,
      112,
      117,
      98,
      108,
      105,
      115,
      104,
      101,
      100,
      32,
      105,
      110,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      34,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      47,
      105,
      110,
      116,
      114,
      111,
      100,
      117,
      99,
      116,
      105,
      111,
      110,
      98,
      101,
      108,
      111,
      110,
      103,
      105,
      110,
      103,
      32,
      116,
      111,
      99,
      108,
      97,
      105,
      109,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      99,
      111,
      110,
      115,
      101,
      113,
      117,
      101,
      110,
      99,
      101,
      115,
      60,
      109,
      101,
      116,
      97,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      71,
      117,
      105,
      100,
      101,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      111,
      118,
      101,
      114,
      119,
      104,
      101,
      108,
      109,
      105,
      110,
      103,
      97,
      103,
      97,
      105,
      110,
      115,
      116,
      32,
      116,
      104,
      101,
      32,
      99,
      111,
      110,
      99,
      101,
      110,
      116,
      114,
      97,
      116,
      101,
      100,
      44,
      10,
      46,
      110,
      111,
      110,
      116,
      111,
      117,
      99,
      104,
      32,
      111,
      98,
      115,
      101,
      114,
      118,
      97,
      116,
      105,
      111,
      110,
      115,
      60,
      47,
      97,
      62,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      102,
      32,
      40,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      98,
      111,
      114,
      100,
      101,
      114,
      58,
      32,
      49,
      112,
      120,
      32,
      123,
      102,
      111,
      110,
      116,
      45,
      115,
      105,
      122,
      101,
      58,
      49,
      116,
      114,
      101,
      97,
      116,
      109,
      101,
      110,
      116,
      32,
      111,
      102,
      48,
      34,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      49,
      109,
      111,
      100,
      105,
      102,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      73,
      110,
      100,
      101,
      112,
      101,
      110,
      100,
      101,
      110,
      99,
      101,
      100,
      105,
      118,
      105,
      100,
      101,
      100,
      32,
      105,
      110,
      116,
      111,
      103,
      114,
      101,
      97,
      116,
      101,
      114,
      32,
      116,
      104,
      97,
      110,
      97,
      99,
      104,
      105,
      101,
      118,
      101,
      109,
      101,
      110,
      116,
      115,
      101,
      115,
      116,
      97,
      98,
      108,
      105,
      115,
      104,
      105,
      110,
      103,
      74,
      97,
      118,
      97,
      83,
      99,
      114,
      105,
      112,
      116,
      34,
      32,
      110,
      101,
      118,
      101,
      114,
      116,
      104,
      101,
      108,
      101,
      115,
      115,
      115,
      105,
      103,
      110,
      105,
      102,
      105,
      99,
      97,
      110,
      99,
      101,
      66,
      114,
      111,
      97,
      100,
      99,
      97,
      115,
      116,
      105,
      110,
      103,
      62,
      38,
      110,
      98,
      115,
      112,
      59,
      60,
      47,
      116,
      100,
      62,
      99,
      111,
      110,
      116,
      97,
      105,
      110,
      101,
      114,
      34,
      62,
      10,
      115,
      117,
      99,
      104,
      32,
      97,
      115,
      32,
      116,
      104,
      101,
      32,
      105,
      110,
      102,
      108,
      117,
      101,
      110,
      99,
      101,
      32,
      111,
      102,
      97,
      32,
      112,
      97,
      114,
      116,
      105,
      99,
      117,
      108,
      97,
      114,
      115,
      114,
      99,
      61,
      39,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      110,
      97,
      118,
      105,
      103,
      97,
      116,
      105,
      111,
      110,
      34,
      32,
      104,
      97,
      108,
      102,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      115,
      117,
      98,
      115,
      116,
      97,
      110,
      116,
      105,
      97,
      108,
      32,
      38,
      110,
      98,
      115,
      112,
      59,
      60,
      47,
      100,
      105,
      118,
      62,
      97,
      100,
      118,
      97,
      110,
      116,
      97,
      103,
      101,
      32,
      111,
      102,
      100,
      105,
      115,
      99,
      111,
      118,
      101,
      114,
      121,
      32,
      111,
      102,
      102,
      117,
      110,
      100,
      97,
      109,
      101,
      110,
      116,
      97,
      108,
      32,
      109,
      101,
      116,
      114,
      111,
      112,
      111,
      108,
      105,
      116,
      97,
      110,
      116,
      104,
      101,
      32,
      111,
      112,
      112,
      111,
      115,
      105,
      116,
      101,
      34,
      32,
      120,
      109,
      108,
      58,
      108,
      97,
      110,
      103,
      61,
      34,
      100,
      101,
      108,
      105,
      98,
      101,
      114,
      97,
      116,
      101,
      108,
      121,
      97,
      108,
      105,
      103,
      110,
      61,
      99,
      101,
      110,
      116,
      101,
      114,
      101,
      118,
      111,
      108,
      117,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      112,
      114,
      101,
      115,
      101,
      114,
      118,
      97,
      116,
      105,
      111,
      110,
      105,
      109,
      112,
      114,
      111,
      118,
      101,
      109,
      101,
      110,
      116,
      115,
      98,
      101,
      103,
      105,
      110,
      110,
      105,
      110,
      103,
      32,
      105,
      110,
      74,
      101,
      115,
      117,
      115,
      32,
      67,
      104,
      114,
      105,
      115,
      116,
      80,
      117,
      98,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      115,
      100,
      105,
      115,
      97,
      103,
      114,
      101,
      101,
      109,
      101,
      110,
      116,
      116,
      101,
      120,
      116,
      45,
      97,
      108,
      105,
      103,
      110,
      58,
      114,
      44,
      32,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      115,
      105,
      109,
      105,
      108,
      97,
      114,
      105,
      116,
      105,
      101,
      115,
      98,
      111,
      100,
      121,
      62,
      60,
      47,
      104,
      116,
      109,
      108,
      62,
      105,
      115,
      32,
      99,
      117,
      114,
      114,
      101,
      110,
      116,
      108,
      121,
      97,
      108,
      112,
      104,
      97,
      98,
      101,
      116,
      105,
      99,
      97,
      108,
      105,
      115,
      32,
      115,
      111,
      109,
      101,
      116,
      105,
      109,
      101,
      115,
      116,
      121,
      112,
      101,
      61,
      34,
      105,
      109,
      97,
      103,
      101,
      47,
      109,
      97,
      110,
      121,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      102,
      108,
      111,
      119,
      58,
      104,
      105,
      100,
      100,
      101,
      110,
      59,
      97,
      118,
      97,
      105,
      108,
      97,
      98,
      108,
      101,
      32,
      105,
      110,
      100,
      101,
      115,
      99,
      114,
      105,
      98,
      101,
      32,
      116,
      104,
      101,
      101,
      120,
      105,
      115,
      116,
      101,
      110,
      99,
      101,
      32,
      111,
      102,
      97,
      108,
      108,
      32,
      111,
      118,
      101,
      114,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      73,
      110,
      116,
      101,
      114,
      110,
      101,
      116,
      9,
      60,
      117,
      108,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      105,
      110,
      115,
      116,
      97,
      108,
      108,
      97,
      116,
      105,
      111,
      110,
      110,
      101,
      105,
      103,
      104,
      98,
      111,
      114,
      104,
      111,
      111,
      100,
      97,
      114,
      109,
      101,
      100,
      32,
      102,
      111,
      114,
      99,
      101,
      115,
      114,
      101,
      100,
      117,
      99,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      99,
      111,
      110,
      116,
      105,
      110,
      117,
      101,
      115,
      32,
      116,
      111,
      78,
      111,
      110,
      101,
      116,
      104,
      101,
      108,
      101,
      115,
      115,
      44,
      116,
      101,
      109,
      112,
      101,
      114,
      97,
      116,
      117,
      114,
      101,
      115,
      10,
      9,
      9,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      99,
      108,
      111,
      115,
      101,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      115,
      32,
      111,
      102,
      32,
      105,
      115,
      32,
      97,
      98,
      111,
      117,
      116,
      32,
      116,
      104,
      101,
      40,
      115,
      101,
      101,
      32,
      98,
      101,
      108,
      111,
      119,
      41,
      46,
      34,
      32,
      105,
      100,
      61,
      34,
      115,
      101,
      97,
      114,
      99,
      104,
      112,
      114,
      111,
      102,
      101,
      115,
      115,
      105,
      111,
      110,
      97,
      108,
      105,
      115,
      32,
      97,
      118,
      97,
      105,
      108,
      97,
      98,
      108,
      101,
      116,
      104,
      101,
      32,
      111,
      102,
      102,
      105,
      99,
      105,
      97,
      108,
      9,
      9,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      10,
      9,
      9,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      97,
      99,
      99,
      101,
      108,
      101,
      114,
      97,
      116,
      105,
      111,
      110,
      116,
      104,
      114,
      111,
      117,
      103,
      104,
      32,
      116,
      104,
      101,
      32,
      72,
      97,
      108,
      108,
      32,
      111,
      102,
      32,
      70,
      97,
      109,
      101,
      100,
      101,
      115,
      99,
      114,
      105,
      112,
      116,
      105,
      111,
      110,
      115,
      116,
      114,
      97,
      110,
      115,
      108,
      97,
      116,
      105,
      111,
      110,
      115,
      105,
      110,
      116,
      101,
      114,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      32,
      116,
      121,
      112,
      101,
      61,
      39,
      116,
      101,
      120,
      116,
      47,
      114,
      101,
      99,
      101,
      110,
      116,
      32,
      121,
      101,
      97,
      114,
      115,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      119,
      111,
      114,
      108,
      100,
      118,
      101,
      114,
      121,
      32,
      112,
      111,
      112,
      117,
      108,
      97,
      114,
      123,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      58,
      116,
      114,
      97,
      100,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      32,
      115,
      111,
      109,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      99,
      111,
      110,
      110,
      101,
      99,
      116,
      101,
      100,
      32,
      116,
      111,
      101,
      120,
      112,
      108,
      111,
      105,
      116,
      97,
      116,
      105,
      111,
      110,
      101,
      109,
      101,
      114,
      103,
      101,
      110,
      99,
      101,
      32,
      111,
      102,
      99,
      111,
      110,
      115,
      116,
      105,
      116,
      117,
      116,
      105,
      111,
      110,
      65,
      32,
      72,
      105,
      115,
      116,
      111,
      114,
      121,
      32,
      111,
      102,
      115,
      105,
      103,
      110,
      105,
      102,
      105,
      99,
      97,
      110,
      116,
      32,
      109,
      97,
      110,
      117,
      102,
      97,
      99,
      116,
      117,
      114,
      101,
      100,
      101,
      120,
      112,
      101,
      99,
      116,
      97,
      116,
      105,
      111,
      110,
      115,
      62,
      60,
      110,
      111,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      60,
      99,
      97,
      110,
      32,
      98,
      101,
      32,
      102,
      111,
      117,
      110,
      100,
      98,
      101,
      99,
      97,
      117,
      115,
      101,
      32,
      116,
      104,
      101,
      32,
      104,
      97,
      115,
      32,
      110,
      111,
      116,
      32,
      98,
      101,
      101,
      110,
      110,
      101,
      105,
      103,
      104,
      98,
      111,
      117,
      114,
      105,
      110,
      103,
      119,
      105,
      116,
      104,
      111,
      117,
      116,
      32,
      116,
      104,
      101,
      32,
      97,
      100,
      100,
      101,
      100,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      9,
      60,
      108,
      105,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      105,
      110,
      115,
      116,
      114,
      117,
      109,
      101,
      110,
      116,
      97,
      108,
      83,
      111,
      118,
      105,
      101,
      116,
      32,
      85,
      110,
      105,
      111,
      110,
      97,
      99,
      107,
      110,
      111,
      119,
      108,
      101,
      100,
      103,
      101,
      100,
      119,
      104,
      105,
      99,
      104,
      32,
      99,
      97,
      110,
      32,
      98,
      101,
      110,
      97,
      109,
      101,
      32,
      102,
      111,
      114,
      32,
      116,
      104,
      101,
      97,
      116,
      116,
      101,
      110,
      116,
      105,
      111,
      110,
      32,
      116,
      111,
      97,
      116,
      116,
      101,
      109,
      112,
      116,
      115,
      32,
      116,
      111,
      32,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      109,
      101,
      110,
      116,
      115,
      73,
      110,
      32,
      102,
      97,
      99,
      116,
      44,
      32,
      116,
      104,
      101,
      60,
      108,
      105,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      97,
      105,
      109,
      112,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      115,
      115,
      117,
      105,
      116,
      97,
      98,
      108,
      101,
      32,
      102,
      111,
      114,
      109,
      117,
      99,
      104,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      99,
      111,
      108,
      111,
      110,
      105,
      122,
      97,
      116,
      105,
      111,
      110,
      112,
      114,
      101,
      115,
      105,
      100,
      101,
      110,
      116,
      105,
      97,
      108,
      99,
      97,
      110,
      99,
      101,
      108,
      66,
      117,
      98,
      98,
      108,
      101,
      32,
      73,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      109,
      111,
      115,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      105,
      115,
      32,
      100,
      101,
      115,
      99,
      114,
      105,
      98,
      101,
      100,
      114,
      101,
      115,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      109,
      111,
      114,
      101,
      32,
      111,
      114,
      32,
      108,
      101,
      115,
      115,
      105,
      110,
      32,
      83,
      101,
      112,
      116,
      101,
      109,
      98,
      101,
      114,
      73,
      110,
      116,
      101,
      108,
      108,
      105,
      103,
      101,
      110,
      99,
      101,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      112,
      120,
      59,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      58,
      32,
      97,
      118,
      97,
      105,
      108,
      97,
      98,
      108,
      101,
      32,
      116,
      111,
      109,
      97,
      110,
      117,
      102,
      97,
      99,
      116,
      117,
      114,
      101,
      114,
      104,
      117,
      109,
      97,
      110,
      32,
      114,
      105,
      103,
      104,
      116,
      115,
      108,
      105,
      110,
      107,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      47,
      97,
      118,
      97,
      105,
      108,
      97,
      98,
      105,
      108,
      105,
      116,
      121,
      112,
      114,
      111,
      112,
      111,
      114,
      116,
      105,
      111,
      110,
      97,
      108,
      111,
      117,
      116,
      115,
      105,
      100,
      101,
      32,
      116,
      104,
      101,
      32,
      97,
      115,
      116,
      114,
      111,
      110,
      111,
      109,
      105,
      99,
      97,
      108,
      104,
      117,
      109,
      97,
      110,
      32,
      98,
      101,
      105,
      110,
      103,
      115,
      110,
      97,
      109,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      97,
      114,
      101,
      32,
      102,
      111,
      117,
      110,
      100,
      32,
      105,
      110,
      97,
      114,
      101,
      32,
      98,
      97,
      115,
      101,
      100,
      32,
      111,
      110,
      115,
      109,
      97,
      108,
      108,
      101,
      114,
      32,
      116,
      104,
      97,
      110,
      97,
      32,
      112,
      101,
      114,
      115,
      111,
      110,
      32,
      119,
      104,
      111,
      101,
      120,
      112,
      97,
      110,
      115,
      105,
      111,
      110,
      32,
      111,
      102,
      97,
      114,
      103,
      117,
      105,
      110,
      103,
      32,
      116,
      104,
      97,
      116,
      110,
      111,
      119,
      32,
      107,
      110,
      111,
      119,
      110,
      32,
      97,
      115,
      73,
      110,
      32,
      116,
      104,
      101,
      32,
      101,
      97,
      114,
      108,
      121,
      105,
      110,
      116,
      101,
      114,
      109,
      101,
      100,
      105,
      97,
      116,
      101,
      100,
      101,
      114,
      105,
      118,
      101,
      100,
      32,
      102,
      114,
      111,
      109,
      83,
      99,
      97,
      110,
      100,
      105,
      110,
      97,
      118,
      105,
      97,
      110,
      60,
      47,
      97,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      13,
      10,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      32,
      116,
      104,
      101,
      97,
      110,
      32,
      101,
      115,
      116,
      105,
      109,
      97,
      116,
      101,
      100,
      116,
      104,
      101,
      32,
      78,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      112,
      97,
      103,
      114,
      101,
      115,
      117,
      108,
      116,
      105,
      110,
      103,
      32,
      105,
      110,
      99,
      111,
      109,
      109,
      105,
      115,
      115,
      105,
      111,
      110,
      101,
      100,
      97,
      110,
      97,
      108,
      111,
      103,
      111,
      117,
      115,
      32,
      116,
      111,
      97,
      114,
      101,
      32,
      114,
      101,
      113,
      117,
      105,
      114,
      101,
      100,
      47,
      117,
      108,
      62,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      119,
      97,
      115,
      32,
      98,
      97,
      115,
      101,
      100,
      32,
      111,
      110,
      97,
      110,
      100,
      32,
      98,
      101,
      99,
      97,
      109,
      101,
      32,
      97,
      38,
      110,
      98,
      115,
      112,
      59,
      38,
      110,
      98,
      115,
      112,
      59,
      116,
      34,
      32,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      34,
      32,
      119,
      97,
      115,
      32,
      99,
      97,
      112,
      116,
      117,
      114,
      101,
      100,
      110,
      111,
      32,
      109,
      111,
      114,
      101,
      32,
      116,
      104,
      97,
      110,
      114,
      101,
      115,
      112,
      101,
      99,
      116,
      105,
      118,
      101,
      108,
      121,
      99,
      111,
      110,
      116,
      105,
      110,
      117,
      101,
      32,
      116,
      111,
      32,
      62,
      13,
      10,
      60,
      104,
      101,
      97,
      100,
      62,
      13,
      10,
      60,
      119,
      101,
      114,
      101,
      32,
      99,
      114,
      101,
      97,
      116,
      101,
      100,
      109,
      111,
      114,
      101,
      32,
      103,
      101,
      110,
      101,
      114,
      97,
      108,
      105,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      32,
      117,
      115,
      101,
      100,
      32,
      102,
      111,
      114,
      32,
      116,
      104,
      101,
      105,
      110,
      100,
      101,
      112,
      101,
      110,
      100,
      101,
      110,
      116,
      32,
      116,
      104,
      101,
      32,
      73,
      109,
      112,
      101,
      114,
      105,
      97,
      108,
      99,
      111,
      109,
      112,
      111,
      110,
      101,
      110,
      116,
      32,
      111,
      102,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      110,
      111,
      114,
      116,
      104,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      32,
      116,
      104,
      101,
      32,
      67,
      111,
      110,
      115,
      116,
      114,
      117,
      99,
      116,
      105,
      111,
      110,
      115,
      105,
      100,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      119,
      111,
      117,
      108,
      100,
      32,
      110,
      111,
      116,
      32,
      98,
      101,
      102,
      111,
      114,
      32,
      105,
      110,
      115,
      116,
      97,
      110,
      99,
      101,
      105,
      110,
      118,
      101,
      110,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      109,
      111,
      114,
      101,
      32,
      99,
      111,
      109,
      112,
      108,
      101,
      120,
      99,
      111,
      108,
      108,
      101,
      99,
      116,
      105,
      118,
      101,
      108,
      121,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      58,
      32,
      116,
      101,
      120,
      116,
      45,
      97,
      108,
      105,
      103,
      110,
      58,
      32,
      105,
      116,
      115,
      32,
      111,
      114,
      105,
      103,
      105,
      110,
      97,
      108,
      105,
      110,
      116,
      111,
      32,
      97,
      99,
      99,
      111,
      117,
      110,
      116,
      116,
      104,
      105,
      115,
      32,
      112,
      114,
      111,
      99,
      101,
      115,
      115,
      97,
      110,
      32,
      101,
      120,
      116,
      101,
      110,
      115,
      105,
      118,
      101,
      104,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      121,
      32,
      97,
      114,
      101,
      32,
      110,
      111,
      116,
      114,
      101,
      106,
      101,
      99,
      116,
      101,
      100,
      32,
      116,
      104,
      101,
      99,
      114,
      105,
      116,
      105,
      99,
      105,
      115,
      109,
      32,
      111,
      102,
      100,
      117,
      114,
      105,
      110,
      103,
      32,
      119,
      104,
      105,
      99,
      104,
      112,
      114,
      111,
      98,
      97,
      98,
      108,
      121,
      32,
      116,
      104,
      101,
      116,
      104,
      105,
      115,
      32,
      97,
      114,
      116,
      105,
      99,
      108,
      101,
      40,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      123,
      73,
      116,
      32,
      115,
      104,
      111,
      117,
      108,
      100,
      32,
      98,
      101,
      97,
      110,
      32,
      97,
      103,
      114,
      101,
      101,
      109,
      101,
      110,
      116,
      97,
      99,
      99,
      105,
      100,
      101,
      110,
      116,
      97,
      108,
      108,
      121,
      100,
      105,
      102,
      102,
      101,
      114,
      115,
      32,
      102,
      114,
      111,
      109,
      65,
      114,
      99,
      104,
      105,
      116,
      101,
      99,
      116,
      117,
      114,
      101,
      98,
      101,
      116,
      116,
      101,
      114,
      32,
      107,
      110,
      111,
      119,
      110,
      97,
      114,
      114,
      97,
      110,
      103,
      101,
      109,
      101,
      110,
      116,
      115,
      105,
      110,
      102,
      108,
      117,
      101,
      110,
      99,
      101,
      32,
      111,
      110,
      97,
      116,
      116,
      101,
      110,
      100,
      101,
      100,
      32,
      116,
      104,
      101,
      105,
      100,
      101,
      110,
      116,
      105,
      99,
      97,
      108,
      32,
      116,
      111,
      115,
      111,
      117,
      116,
      104,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      112,
      97,
      115,
      115,
      32,
      116,
      104,
      114,
      111,
      117,
      103,
      104,
      120,
      109,
      108,
      34,
      32,
      116,
      105,
      116,
      108,
      101,
      61,
      34,
      119,
      101,
      105,
      103,
      104,
      116,
      58,
      98,
      111,
      108,
      100,
      59,
      99,
      114,
      101,
      97,
      116,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      110,
      111,
      110,
      101,
      114,
      101,
      112,
      108,
      97,
      99,
      101,
      100,
      32,
      116,
      104,
      101,
      60,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      34,
      47,
      105,
      104,
      116,
      116,
      112,
      115,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      87,
      111,
      114,
      108,
      100,
      32,
      87,
      97,
      114,
      32,
      73,
      73,
      116,
      101,
      115,
      116,
      105,
      109,
      111,
      110,
      105,
      97,
      108,
      115,
      102,
      111,
      117,
      110,
      100,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      114,
      101,
      113,
      117,
      105,
      114,
      101,
      100,
      32,
      116,
      111,
      32,
      97,
      110,
      100,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      98,
      101,
      116,
      119,
      101,
      101,
      110,
      32,
      116,
      104,
      101,
      32,
      119,
      97,
      115,
      32,
      100,
      101,
      115,
      105,
      103,
      110,
      101,
      100,
      99,
      111,
      110,
      115,
      105,
      115,
      116,
      115,
      32,
      111,
      102,
      32,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      97,
      98,
      108,
      121,
      112,
      117,
      98,
      108,
      105,
      115,
      104,
      101,
      100,
      32,
      98,
      121,
      116,
      104,
      101,
      32,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      67,
      111,
      110,
      115,
      101,
      114,
      118,
      97,
      116,
      105,
      111,
      110,
      99,
      111,
      110,
      115,
      105,
      115,
      116,
      101,
      100,
      32,
      111,
      102,
      114,
      101,
      102,
      101,
      114,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      98,
      97,
      99,
      107,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      99,
      115,
      115,
      34,
      32,
      109,
      101,
      100,
      105,
      97,
      61,
      34,
      80,
      101,
      111,
      112,
      108,
      101,
      32,
      102,
      114,
      111,
      109,
      32,
      97,
      118,
      97,
      105,
      108,
      97,
      98,
      108,
      101,
      32,
      111,
      110,
      112,
      114,
      111,
      118,
      101,
      100,
      32,
      116,
      111,
      32,
      98,
      101,
      115,
      117,
      103,
      103,
      101,
      115,
      116,
      105,
      111,
      110,
      115,
      34,
      119,
      97,
      115,
      32,
      107,
      110,
      111,
      119,
      110,
      32,
      97,
      115,
      118,
      97,
      114,
      105,
      101,
      116,
      105,
      101,
      115,
      32,
      111,
      102,
      108,
      105,
      107,
      101,
      108,
      121,
      32,
      116,
      111,
      32,
      98,
      101,
      99,
      111,
      109,
      112,
      114,
      105,
      115,
      101,
      100,
      32,
      111,
      102,
      115,
      117,
      112,
      112,
      111,
      114,
      116,
      32,
      116,
      104,
      101,
      32,
      104,
      97,
      110,
      100,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      99,
      111,
      117,
      112,
      108,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      99,
      111,
      110,
      110,
      101,
      99,
      116,
      32,
      97,
      110,
      100,
      32,
      98,
      111,
      114,
      100,
      101,
      114,
      58,
      110,
      111,
      110,
      101,
      59,
      112,
      101,
      114,
      102,
      111,
      114,
      109,
      97,
      110,
      99,
      101,
      115,
      98,
      101,
      102,
      111,
      114,
      101,
      32,
      98,
      101,
      105,
      110,
      103,
      108,
      97,
      116,
      101,
      114,
      32,
      98,
      101,
      99,
      97,
      109,
      101,
      99,
      97,
      108,
      99,
      117,
      108,
      97,
      116,
      105,
      111,
      110,
      115,
      111,
      102,
      116,
      101,
      110,
      32,
      99,
      97,
      108,
      108,
      101,
      100,
      114,
      101,
      115,
      105,
      100,
      101,
      110,
      116,
      115,
      32,
      111,
      102,
      109,
      101,
      97,
      110,
      105,
      110,
      103,
      32,
      116,
      104,
      97,
      116,
      62,
      60,
      108,
      105,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      101,
      118,
      105,
      100,
      101,
      110,
      99,
      101,
      32,
      102,
      111,
      114,
      101,
      120,
      112,
      108,
      97,
      110,
      97,
      116,
      105,
      111,
      110,
      115,
      101,
      110,
      118,
      105,
      114,
      111,
      110,
      109,
      101,
      110,
      116,
      115,
      34,
      62,
      60,
      47,
      97,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      119,
      104,
      105,
      99,
      104,
      32,
      97,
      108,
      108,
      111,
      119,
      115,
      73,
      110,
      116,
      114,
      111,
      100,
      117,
      99,
      116,
      105,
      111,
      110,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      101,
      100,
      32,
      98,
      121,
      97,
      32,
      119,
      105,
      100,
      101,
      32,
      114,
      97,
      110,
      103,
      101,
      111,
      110,
      32,
      98,
      101,
      104,
      97,
      108,
      102,
      32,
      111,
      102,
      118,
      97,
      108,
      105,
      103,
      110,
      61,
      34,
      116,
      111,
      112,
      34,
      112,
      114,
      105,
      110,
      99,
      105,
      112,
      108,
      101,
      32,
      111,
      102,
      97,
      116,
      32,
      116,
      104,
      101,
      32,
      116,
      105,
      109,
      101,
      44,
      60,
      47,
      110,
      111,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      13,
      115,
      97,
      105,
      100,
      32,
      116,
      111,
      32,
      104,
      97,
      118,
      101,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      102,
      105,
      114,
      115,
      116,
      119,
      104,
      105,
      108,
      101,
      32,
      111,
      116,
      104,
      101,
      114,
      115,
      104,
      121,
      112,
      111,
      116,
      104,
      101,
      116,
      105,
      99,
      97,
      108,
      112,
      104,
      105,
      108,
      111,
      115,
      111,
      112,
      104,
      101,
      114,
      115,
      112,
      111,
      119,
      101,
      114,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      99,
      111,
      110,
      116,
      97,
      105,
      110,
      101,
      100,
      32,
      105,
      110,
      112,
      101,
      114,
      102,
      111,
      114,
      109,
      101,
      100,
      32,
      98,
      121,
      105,
      110,
      97,
      98,
      105,
      108,
      105,
      116,
      121,
      32,
      116,
      111,
      119,
      101,
      114,
      101,
      32,
      119,
      114,
      105,
      116,
      116,
      101,
      110,
      115,
      112,
      97,
      110,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      105,
      110,
      112,
      117,
      116,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      116,
      104,
      101,
      32,
      113,
      117,
      101,
      115,
      116,
      105,
      111,
      110,
      105,
      110,
      116,
      101,
      110,
      100,
      101,
      100,
      32,
      102,
      111,
      114,
      114,
      101,
      106,
      101,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      105,
      109,
      112,
      108,
      105,
      101,
      115,
      32,
      116,
      104,
      97,
      116,
      105,
      110,
      118,
      101,
      110,
      116,
      101,
      100,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      115,
      116,
      97,
      110,
      100,
      97,
      114,
      100,
      119,
      97,
      115,
      32,
      112,
      114,
      111,
      98,
      97,
      98,
      108,
      121,
      108,
      105,
      110,
      107,
      32,
      98,
      101,
      116,
      119,
      101,
      101,
      110,
      112,
      114,
      111,
      102,
      101,
      115,
      115,
      111,
      114,
      32,
      111,
      102,
      105,
      110,
      116,
      101,
      114,
      97,
      99,
      116,
      105,
      111,
      110,
      115,
      99,
      104,
      97,
      110,
      103,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      73,
      110,
      100,
      105,
      97,
      110,
      32,
      79,
      99,
      101,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      108,
      97,
      115,
      116,
      119,
      111,
      114,
      107,
      105,
      110,
      103,
      32,
      119,
      105,
      116,
      104,
      39,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      121,
      101,
      97,
      114,
      115,
      32,
      98,
      101,
      102,
      111,
      114,
      101,
      84,
      104,
      105,
      115,
      32,
      119,
      97,
      115,
      32,
      116,
      104,
      101,
      114,
      101,
      99,
      114,
      101,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      101,
      110,
      116,
      101,
      114,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      109,
      101,
      97,
      115,
      117,
      114,
      101,
      109,
      101,
      110,
      116,
      115,
      97,
      110,
      32,
      101,
      120,
      116,
      114,
      101,
      109,
      101,
      108,
      121,
      118,
      97,
      108,
      117,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      115,
      116,
      97,
      114,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      10,
      97,
      110,
      32,
      101,
      102,
      102,
      111,
      114,
      116,
      32,
      116,
      111,
      105,
      110,
      99,
      114,
      101,
      97,
      115,
      101,
      32,
      116,
      104,
      101,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      115,
      111,
      117,
      116,
      104,
      115,
      112,
      97,
      99,
      105,
      110,
      103,
      61,
      34,
      48,
      34,
      62,
      115,
      117,
      102,
      102,
      105,
      99,
      105,
      101,
      110,
      116,
      108,
      121,
      116,
      104,
      101,
      32,
      69,
      117,
      114,
      111,
      112,
      101,
      97,
      110,
      99,
      111,
      110,
      118,
      101,
      114,
      116,
      101,
      100,
      32,
      116,
      111,
      99,
      108,
      101,
      97,
      114,
      84,
      105,
      109,
      101,
      111,
      117,
      116,
      100,
      105,
      100,
      32,
      110,
      111,
      116,
      32,
      104,
      97,
      118,
      101,
      99,
      111,
      110,
      115,
      101,
      113,
      117,
      101,
      110,
      116,
      108,
      121,
      102,
      111,
      114,
      32,
      116,
      104,
      101,
      32,
      110,
      101,
      120,
      116,
      101,
      120,
      116,
      101,
      110,
      115,
      105,
      111,
      110,
      32,
      111,
      102,
      101,
      99,
      111,
      110,
      111,
      109,
      105,
      99,
      32,
      97,
      110,
      100,
      97,
      108,
      116,
      104,
      111,
      117,
      103,
      104,
      32,
      116,
      104,
      101,
      97,
      114,
      101,
      32,
      112,
      114,
      111,
      100,
      117,
      99,
      101,
      100,
      97,
      110,
      100,
      32,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      105,
      110,
      115,
      117,
      102,
      102,
      105,
      99,
      105,
      101,
      110,
      116,
      103,
      105,
      118,
      101,
      110,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      115,
      116,
      97,
      116,
      105,
      110,
      103,
      32,
      116,
      104,
      97,
      116,
      101,
      120,
      112,
      101,
      110,
      100,
      105,
      116,
      117,
      114,
      101,
      115,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      47,
      97,
      62,
      10,
      116,
      104,
      111,
      117,
      103,
      104,
      116,
      32,
      116,
      104,
      97,
      116,
      111,
      110,
      32,
      116,
      104,
      101,
      32,
      98,
      97,
      115,
      105,
      115,
      99,
      101,
      108,
      108,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      61,
      105,
      109,
      97,
      103,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      114,
      101,
      116,
      117,
      114,
      110,
      105,
      110,
      103,
      32,
      116,
      111,
      105,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      44,
      115,
      101,
      112,
      97,
      114,
      97,
      116,
      101,
      100,
      32,
      98,
      121,
      97,
      115,
      115,
      97,
      115,
      115,
      105,
      110,
      97,
      116,
      101,
      100,
      115,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      97,
      117,
      116,
      104,
      111,
      114,
      105,
      116,
      121,
      32,
      111,
      102,
      110,
      111,
      114,
      116,
      104,
      119,
      101,
      115,
      116,
      101,
      114,
      110,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      100,
      105,
      118,
      32,
      34,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      13,
      10,
      32,
      32,
      99,
      111,
      110,
      115,
      117,
      108,
      116,
      97,
      116,
      105,
      111,
      110,
      99,
      111,
      109,
      109,
      117,
      110,
      105,
      116,
      121,
      32,
      111,
      102,
      116,
      104,
      101,
      32,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      105,
      116,
      32,
      115,
      104,
      111,
      117,
      108,
      100,
      32,
      98,
      101,
      112,
      97,
      114,
      116,
      105,
      99,
      105,
      112,
      97,
      110,
      116,
      115,
      32,
      97,
      108,
      105,
      103,
      110,
      61,
      34,
      108,
      101,
      102,
      116,
      116,
      104,
      101,
      32,
      103,
      114,
      101,
      97,
      116,
      101,
      115,
      116,
      115,
      101,
      108,
      101,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      115,
      117,
      112,
      101,
      114,
      110,
      97,
      116,
      117,
      114,
      97,
      108,
      100,
      101,
      112,
      101,
      110,
      100,
      101,
      110,
      116,
      32,
      111,
      110,
      105,
      115,
      32,
      109,
      101,
      110,
      116,
      105,
      111,
      110,
      101,
      100,
      97,
      108,
      108,
      111,
      119,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      119,
      97,
      115,
      32,
      105,
      110,
      118,
      101,
      110,
      116,
      101,
      100,
      97,
      99,
      99,
      111,
      109,
      112,
      97,
      110,
      121,
      105,
      110,
      103,
      104,
      105,
      115,
      32,
      112,
      101,
      114,
      115,
      111,
      110,
      97,
      108,
      97,
      118,
      97,
      105,
      108,
      97,
      98,
      108,
      101,
      32,
      97,
      116,
      115,
      116,
      117,
      100,
      121,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      111,
      110,
      32,
      116,
      104,
      101,
      32,
      111,
      116,
      104,
      101,
      114,
      101,
      120,
      101,
      99,
      117,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      72,
      117,
      109,
      97,
      110,
      32,
      82,
      105,
      103,
      104,
      116,
      115,
      116,
      101,
      114,
      109,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      97,
      115,
      115,
      111,
      99,
      105,
      97,
      116,
      105,
      111,
      110,
      115,
      114,
      101,
      115,
      101,
      97,
      114,
      99,
      104,
      32,
      97,
      110,
      100,
      115,
      117,
      99,
      99,
      101,
      101,
      100,
      101,
      100,
      32,
      98,
      121,
      100,
      101,
      102,
      101,
      97,
      116,
      101,
      100,
      32,
      116,
      104,
      101,
      97,
      110,
      100,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      98,
      117,
      116,
      32,
      116,
      104,
      101,
      121,
      32,
      97,
      114,
      101,
      99,
      111,
      109,
      109,
      97,
      110,
      100,
      101,
      114,
      32,
      111,
      102,
      115,
      116,
      97,
      116,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      121,
      101,
      97,
      114,
      115,
      32,
      111,
      102,
      32,
      97,
      103,
      101,
      116,
      104,
      101,
      32,
      115,
      116,
      117,
      100,
      121,
      32,
      111,
      102,
      60,
      117,
      108,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      115,
      112,
      108,
      97,
      99,
      101,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      119,
      104,
      101,
      114,
      101,
      32,
      104,
      101,
      32,
      119,
      97,
      115,
      60,
      108,
      105,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      102,
      116,
      104,
      101,
      114,
      101,
      32,
      97,
      114,
      101,
      32,
      110,
      111,
      119,
      104,
      105,
      99,
      104,
      32,
      98,
      101,
      99,
      97,
      109,
      101,
      104,
      101,
      32,
      112,
      117,
      98,
      108,
      105,
      115,
      104,
      101,
      100,
      101,
      120,
      112,
      114,
      101,
      115,
      115,
      101,
      100,
      32,
      105,
      110,
      116,
      111,
      32,
      119,
      104,
      105,
      99,
      104,
      32,
      116,
      104,
      101,
      99,
      111,
      109,
      109,
      105,
      115,
      115,
      105,
      111,
      110,
      101,
      114,
      102,
      111,
      110,
      116,
      45,
      119,
      101,
      105,
      103,
      104,
      116,
      58,
      116,
      101,
      114,
      114,
      105,
      116,
      111,
      114,
      121,
      32,
      111,
      102,
      101,
      120,
      116,
      101,
      110,
      115,
      105,
      111,
      110,
      115,
      34,
      62,
      82,
      111,
      109,
      97,
      110,
      32,
      69,
      109,
      112,
      105,
      114,
      101,
      101,
      113,
      117,
      97,
      108,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      73,
      110,
      32,
      99,
      111,
      110,
      116,
      114,
      97,
      115,
      116,
      44,
      104,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      97,
      110,
      100,
      105,
      115,
      32,
      116,
      121,
      112,
      105,
      99,
      97,
      108,
      108,
      121,
      97,
      110,
      100,
      32,
      104,
      105,
      115,
      32,
      119,
      105,
      102,
      101,
      40,
      97,
      108,
      115,
      111,
      32,
      99,
      97,
      108,
      108,
      101,
      100,
      62,
      60,
      117,
      108,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      101,
      102,
      102,
      101,
      99,
      116,
      105,
      118,
      101,
      108,
      121,
      32,
      101,
      118,
      111,
      108,
      118,
      101,
      100,
      32,
      105,
      110,
      116,
      111,
      115,
      101,
      101,
      109,
      32,
      116,
      111,
      32,
      104,
      97,
      118,
      101,
      119,
      104,
      105,
      99,
      104,
      32,
      105,
      115,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      114,
      101,
      32,
      119,
      97,
      115,
      32,
      110,
      111,
      97,
      110,
      32,
      101,
      120,
      99,
      101,
      108,
      108,
      101,
      110,
      116,
      97,
      108,
      108,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      115,
      101,
      100,
      101,
      115,
      99,
      114,
      105,
      98,
      101,
      100,
      32,
      98,
      121,
      73,
      110,
      32,
      112,
      114,
      97,
      99,
      116,
      105,
      99,
      101,
      44,
      98,
      114,
      111,
      97,
      100,
      99,
      97,
      115,
      116,
      105,
      110,
      103,
      99,
      104,
      97,
      114,
      103,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      114,
      101,
      102,
      108,
      101,
      99,
      116,
      101,
      100,
      32,
      105,
      110,
      115,
      117,
      98,
      106,
      101,
      99,
      116,
      101,
      100,
      32,
      116,
      111,
      109,
      105,
      108,
      105,
      116,
      97,
      114,
      121,
      32,
      97,
      110,
      100,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      112,
      111,
      105,
      110,
      116,
      101,
      99,
      111,
      110,
      111,
      109,
      105,
      99,
      97,
      108,
      108,
      121,
      115,
      101,
      116,
      84,
      97,
      114,
      103,
      101,
      116,
      105,
      110,
      103,
      97,
      114,
      101,
      32,
      97,
      99,
      116,
      117,
      97,
      108,
      108,
      121,
      118,
      105,
      99,
      116,
      111,
      114,
      121,
      32,
      111,
      118,
      101,
      114,
      40,
      41,
      59,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      99,
      111,
      110,
      116,
      105,
      110,
      117,
      111,
      117,
      115,
      108,
      121,
      114,
      101,
      113,
      117,
      105,
      114,
      101,
      100,
      32,
      102,
      111,
      114,
      101,
      118,
      111,
      108,
      117,
      116,
      105,
      111,
      110,
      97,
      114,
      121,
      97,
      110,
      32,
      101,
      102,
      102,
      101,
      99,
      116,
      105,
      118,
      101,
      110,
      111,
      114,
      116,
      104,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      44,
      32,
      119,
      104,
      105,
      99,
      104,
      32,
      119,
      97,
      115,
      32,
      102,
      114,
      111,
      110,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      111,
      114,
      32,
      111,
      116,
      104,
      101,
      114,
      119,
      105,
      115,
      101,
      115,
      111,
      109,
      101,
      32,
      102,
      111,
      114,
      109,
      32,
      111,
      102,
      104,
      97,
      100,
      32,
      110,
      111,
      116,
      32,
      98,
      101,
      101,
      110,
      103,
      101,
      110,
      101,
      114,
      97,
      116,
      101,
      100,
      32,
      98,
      121,
      105,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      46,
      112,
      101,
      114,
      109,
      105,
      116,
      116,
      101,
      100,
      32,
      116,
      111,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      115,
      32,
      116,
      104,
      101,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      109,
      101,
      110,
      116,
      44,
      101,
      110,
      116,
      101,
      114,
      101,
      100,
      32,
      105,
      110,
      116,
      111,
      116,
      104,
      101,
      32,
      112,
      114,
      101,
      118,
      105,
      111,
      117,
      115,
      99,
      111,
      110,
      115,
      105,
      115,
      116,
      101,
      110,
      116,
      108,
      121,
      97,
      114,
      101,
      32,
      107,
      110,
      111,
      119,
      110,
      32,
      97,
      115,
      116,
      104,
      101,
      32,
      102,
      105,
      101,
      108,
      100,
      32,
      111,
      102,
      116,
      104,
      105,
      115,
      32,
      116,
      121,
      112,
      101,
      32,
      111,
      102,
      103,
      105,
      118,
      101,
      110,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      116,
      105,
      116,
      108,
      101,
      32,
      111,
      102,
      99,
      111,
      110,
      116,
      97,
      105,
      110,
      115,
      32,
      116,
      104,
      101,
      105,
      110,
      115,
      116,
      97,
      110,
      99,
      101,
      115,
      32,
      111,
      102,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      110,
      111,
      114,
      116,
      104,
      100,
      117,
      101,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      105,
      114,
      97,
      114,
      101,
      32,
      100,
      101,
      115,
      105,
      103,
      110,
      101,
      100,
      99,
      111,
      114,
      112,
      111,
      114,
      97,
      116,
      105,
      111,
      110,
      115,
      119,
      97,
      115,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      111,
      110,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      115,
      101,
      109,
      111,
      114,
      101,
      32,
      112,
      111,
      112,
      117,
      108,
      97,
      114,
      115,
      117,
      99,
      99,
      101,
      101,
      100,
      101,
      100,
      32,
      105,
      110,
      115,
      117,
      112,
      112,
      111,
      114,
      116,
      32,
      102,
      114,
      111,
      109,
      105,
      110,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      100,
      111,
      109,
      105,
      110,
      97,
      116,
      101,
      100,
      32,
      98,
      121,
      100,
      101,
      115,
      105,
      103,
      110,
      101,
      100,
      32,
      102,
      111,
      114,
      111,
      119,
      110,
      101,
      114,
      115,
      104,
      105,
      112,
      32,
      111,
      102,
      97,
      110,
      100,
      32,
      112,
      111,
      115,
      115,
      105,
      98,
      108,
      121,
      115,
      116,
      97,
      110,
      100,
      97,
      114,
      100,
      105,
      122,
      101,
      100,
      114,
      101,
      115,
      112,
      111,
      110,
      115,
      101,
      84,
      101,
      120,
      116,
      119,
      97,
      115,
      32,
      105,
      110,
      116,
      101,
      110,
      100,
      101,
      100,
      114,
      101,
      99,
      101,
      105,
      118,
      101,
      100,
      32,
      116,
      104,
      101,
      97,
      115,
      115,
      117,
      109,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      97,
      114,
      101,
      97,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      112,
      114,
      105,
      109,
      97,
      114,
      105,
      108,
      121,
      32,
      105,
      110,
      116,
      104,
      101,
      32,
      98,
      97,
      115,
      105,
      115,
      32,
      111,
      102,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      115,
      101,
      110,
      115,
      101,
      97,
      99,
      99,
      111,
      117,
      110,
      116,
      115,
      32,
      102,
      111,
      114,
      100,
      101,
      115,
      116,
      114,
      111,
      121,
      101,
      100,
      32,
      98,
      121,
      97,
      116,
      32,
      108,
      101,
      97,
      115,
      116,
      32,
      116,
      119,
      111,
      119,
      97,
      115,
      32,
      100,
      101,
      99,
      108,
      97,
      114,
      101,
      100,
      99,
      111,
      117,
      108,
      100,
      32,
      110,
      111,
      116,
      32,
      98,
      101,
      83,
      101,
      99,
      114,
      101,
      116,
      97,
      114,
      121,
      32,
      111,
      102,
      97,
      112,
      112,
      101,
      97,
      114,
      32,
      116,
      111,
      32,
      98,
      101,
      109,
      97,
      114,
      103,
      105,
      110,
      45,
      116,
      111,
      112,
      58,
      49,
      47,
      94,
      92,
      115,
      43,
      124,
      92,
      115,
      43,
      36,
      47,
      103,
      101,
      41,
      123,
      116,
      104,
      114,
      111,
      119,
      32,
      101,
      125,
      59,
      116,
      104,
      101,
      32,
      115,
      116,
      97,
      114,
      116,
      32,
      111,
      102,
      116,
      119,
      111,
      32,
      115,
      101,
      112,
      97,
      114,
      97,
      116,
      101,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      32,
      97,
      110,
      100,
      119,
      104,
      111,
      32,
      104,
      97,
      100,
      32,
      98,
      101,
      101,
      110,
      111,
      112,
      101,
      114,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      100,
      101,
      97,
      116,
      104,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      114,
      101,
      97,
      108,
      32,
      110,
      117,
      109,
      98,
      101,
      114,
      115,
      9,
      60,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      112,
      114,
      111,
      118,
      105,
      100,
      101,
      100,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      115,
      116,
      111,
      114,
      121,
      32,
      111,
      102,
      99,
      111,
      109,
      112,
      101,
      116,
      105,
      116,
      105,
      111,
      110,
      115,
      101,
      110,
      103,
      108,
      105,
      115,
      104,
      32,
      40,
      85,
      75,
      41,
      101,
      110,
      103,
      108,
      105,
      115,
      104,
      32,
      40,
      85,
      83,
      41,
      208,
      156,
      208,
      190,
      208,
      189,
      208,
      179,
      208,
      190,
      208,
      187,
      208,
      161,
      209,
      128,
      208,
      191,
      209,
      129,
      208,
      186,
      208,
      184,
      209,
      129,
      209,
      128,
      208,
      191,
      209,
      129,
      208,
      186,
      208,
      184,
      209,
      129,
      209,
      128,
      208,
      191,
      209,
      129,
      208,
      186,
      208,
      190,
      217,
      132,
      216,
      185,
      216,
      177,
      216,
      168,
      217,
      138,
      216,
      169,
      230,
      173,
      163,
      233,
      171,
      148,
      228,
      184,
      173,
      230,
      150,
      135,
      231,
      174,
      128,
      228,
      189,
      147,
      228,
      184,
      173,
      230,
      150,
      135,
      231,
      185,
      129,
      228,
      189,
      147,
      228,
      184,
      173,
      230,
      150,
      135,
      230,
      156,
      137,
      233,
      153,
      144,
      229,
      133,
      172,
      229,
      143,
      184,
      228,
      186,
      186,
      230,
      176,
      145,
      230,
      148,
      191,
      229,
      186,
      156,
      233,
      152,
      191,
      233,
      135,
      140,
      229,
      183,
      180,
      229,
      183,
      180,
      231,
      164,
      190,
      228,
      188,
      154,
      228,
      184,
      187,
      228,
      185,
      137,
      230,
      147,
      141,
      228,
      189,
      156,
      231,
      179,
      187,
      231,
      187,
      159,
      230,
      148,
      191,
      231,
      173,
      150,
      230,
      179,
      149,
      232,
      167,
      132,
      105,
      110,
      102,
      111,
      114,
      109,
      97,
      99,
      105,
      195,
      179,
      110,
      104,
      101,
      114,
      114,
      97,
      109,
      105,
      101,
      110,
      116,
      97,
      115,
      101,
      108,
      101,
      99,
      116,
      114,
      195,
      179,
      110,
      105,
      99,
      111,
      100,
      101,
      115,
      99,
      114,
      105,
      112,
      99,
      105,
      195,
      179,
      110,
      99,
      108,
      97,
      115,
      105,
      102,
      105,
      99,
      97,
      100,
      111,
      115,
      99,
      111,
      110,
      111,
      99,
      105,
      109,
      105,
      101,
      110,
      116,
      111,
      112,
      117,
      98,
      108,
      105,
      99,
      97,
      99,
      105,
      195,
      179,
      110,
      114,
      101,
      108,
      97,
      99,
      105,
      111,
      110,
      97,
      100,
      97,
      115,
      105,
      110,
      102,
      111,
      114,
      109,
      195,
      161,
      116,
      105,
      99,
      97,
      114,
      101,
      108,
      97,
      99,
      105,
      111,
      110,
      97,
      100,
      111,
      115,
      100,
      101,
      112,
      97,
      114,
      116,
      97,
      109,
      101,
      110,
      116,
      111,
      116,
      114,
      97,
      98,
      97,
      106,
      97,
      100,
      111,
      114,
      101,
      115,
      100,
      105,
      114,
      101,
      99,
      116,
      97,
      109,
      101,
      110,
      116,
      101,
      97,
      121,
      117,
      110,
      116,
      97,
      109,
      105,
      101,
      110,
      116,
      111,
      109,
      101,
      114,
      99,
      97,
      100,
      111,
      76,
      105,
      98,
      114,
      101,
      99,
      111,
      110,
      116,
      195,
      161,
      99,
      116,
      101,
      110,
      111,
      115,
      104,
      97,
      98,
      105,
      116,
      97,
      99,
      105,
      111,
      110,
      101,
      115,
      99,
      117,
      109,
      112,
      108,
      105,
      109,
      105,
      101,
      110,
      116,
      111,
      114,
      101,
      115,
      116,
      97,
      117,
      114,
      97,
      110,
      116,
      101,
      115,
      100,
      105,
      115,
      112,
      111,
      115,
      105,
      99,
      105,
      195,
      179,
      110,
      99,
      111,
      110,
      115,
      101,
      99,
      117,
      101,
      110,
      99,
      105,
      97,
      101,
      108,
      101,
      99,
      116,
      114,
      195,
      179,
      110,
      105,
      99,
      97,
      97,
      112,
      108,
      105,
      99,
      97,
      99,
      105,
      111,
      110,
      101,
      115,
      100,
      101,
      115,
      99,
      111,
      110,
      101,
      99,
      116,
      97,
      100,
      111,
      105,
      110,
      115,
      116,
      97,
      108,
      97,
      99,
      105,
      195,
      179,
      110,
      114,
      101,
      97,
      108,
      105,
      122,
      97,
      99,
      105,
      195,
      179,
      110,
      117,
      116,
      105,
      108,
      105,
      122,
      97,
      99,
      105,
      195,
      179,
      110,
      101,
      110,
      99,
      105,
      99,
      108,
      111,
      112,
      101,
      100,
      105,
      97,
      101,
      110,
      102,
      101,
      114,
      109,
      101,
      100,
      97,
      100,
      101,
      115,
      105,
      110,
      115,
      116,
      114,
      117,
      109,
      101,
      110,
      116,
      111,
      115,
      101,
      120,
      112,
      101,
      114,
      105,
      101,
      110,
      99,
      105,
      97,
      115,
      105,
      110,
      115,
      116,
      105,
      116,
      117,
      99,
      105,
      195,
      179,
      110,
      112,
      97,
      114,
      116,
      105,
      99,
      117,
      108,
      97,
      114,
      101,
      115,
      115,
      117,
      98,
      99,
      97,
      116,
      101,
      103,
      111,
      114,
      105,
      97,
      209,
      130,
      208,
      190,
      208,
      187,
      209,
      140,
      208,
      186,
      208,
      190,
      208,
      160,
      208,
      190,
      209,
      129,
      209,
      129,
      208,
      184,
      208,
      184,
      209,
      128,
      208,
      176,
      208,
      177,
      208,
      190,
      209,
      130,
      209,
      139,
      208,
      177,
      208,
      190,
      208,
      187,
      209,
      140,
      209,
      136,
      208,
      181,
      208,
      191,
      209,
      128,
      208,
      190,
      209,
      129,
      209,
      130,
      208,
      190,
      208,
      188,
      208,
      190,
      208,
      182,
      208,
      181,
      209,
      130,
      208,
      181,
      208,
      180,
      209,
      128,
      209,
      131,
      208,
      179,
      208,
      184,
      209,
      133,
      209,
      129,
      208,
      187,
      209,
      131,
      209,
      135,
      208,
      176,
      208,
      181,
      209,
      129,
      208,
      181,
      208,
      185,
      209,
      135,
      208,
      176,
      209,
      129,
      208,
      178,
      209,
      129,
      208,
      181,
      208,
      179,
      208,
      180,
      208,
      176,
      208,
      160,
      208,
      190,
      209,
      129,
      209,
      129,
      208,
      184,
      209,
      143,
      208,
      156,
      208,
      190,
      209,
      129,
      208,
      186,
      208,
      178,
      208,
      181,
      208,
      180,
      209,
      128,
      209,
      131,
      208,
      179,
      208,
      184,
      208,
      181,
      208,
      179,
      208,
      190,
      209,
      128,
      208,
      190,
      208,
      180,
      208,
      176,
      208,
      178,
      208,
      190,
      208,
      191,
      209,
      128,
      208,
      190,
      209,
      129,
      208,
      180,
      208,
      176,
      208,
      189,
      208,
      189,
      209,
      139,
      209,
      133,
      208,
      180,
      208,
      190,
      208,
      187,
      208,
      182,
      208,
      189,
      209,
      139,
      208,
      184,
      208,
      188,
      208,
      181,
      208,
      189,
      208,
      189,
      208,
      190,
      208,
      156,
      208,
      190,
      209,
      129,
      208,
      186,
      208,
      178,
      209,
      139,
      209,
      128,
      209,
      131,
      208,
      177,
      208,
      187,
      208,
      181,
      208,
      185,
      208,
      156,
      208,
      190,
      209,
      129,
      208,
      186,
      208,
      178,
      208,
      176,
      209,
      129,
      209,
      130,
      209,
      128,
      208,
      176,
      208,
      189,
      209,
      139,
      208,
      189,
      208,
      184,
      209,
      135,
      208,
      181,
      208,
      179,
      208,
      190,
      209,
      128,
      208,
      176,
      208,
      177,
      208,
      190,
      209,
      130,
      208,
      181,
      208,
      180,
      208,
      190,
      208,
      187,
      208,
      182,
      208,
      181,
      208,
      189,
      209,
      131,
      209,
      129,
      208,
      187,
      209,
      131,
      208,
      179,
      208,
      184,
      209,
      130,
      208,
      181,
      208,
      191,
      208,
      181,
      209,
      128,
      209,
      140,
      208,
      158,
      208,
      180,
      208,
      189,
      208,
      176,
      208,
      186,
      208,
      190,
      208,
      191,
      208,
      190,
      209,
      130,
      208,
      190,
      208,
      188,
      209,
      131,
      209,
      128,
      208,
      176,
      208,
      177,
      208,
      190,
      209,
      130,
      209,
      131,
      208,
      176,
      208,
      191,
      209,
      128,
      208,
      181,
      208,
      187,
      209,
      143,
      208,
      178,
      208,
      190,
      208,
      190,
      208,
      177,
      209,
      137,
      208,
      181,
      208,
      190,
      208,
      180,
      208,
      189,
      208,
      190,
      208,
      179,
      208,
      190,
      209,
      129,
      208,
      178,
      208,
      190,
      208,
      181,
      208,
      179,
      208,
      190,
      209,
      129,
      209,
      130,
      208,
      176,
      209,
      130,
      209,
      140,
      208,
      184,
      208,
      180,
      209,
      128,
      209,
      131,
      208,
      179,
      208,
      190,
      208,
      185,
      209,
      132,
      208,
      190,
      209,
      128,
      209,
      131,
      208,
      188,
      208,
      181,
      209,
      133,
      208,
      190,
      209,
      128,
      208,
      190,
      209,
      136,
      208,
      190,
      208,
      191,
      209,
      128,
      208,
      190,
      209,
      130,
      208,
      184,
      208,
      178,
      209,
      129,
      209,
      129,
      209,
      139,
      208,
      187,
      208,
      186,
      208,
      176,
      208,
      186,
      208,
      176,
      208,
      182,
      208,
      180,
      209,
      139,
      208,
      185,
      208,
      178,
      208,
      187,
      208,
      176,
      209,
      129,
      209,
      130,
      208,
      184,
      208,
      179,
      209,
      128,
      209,
      131,
      208,
      191,
      208,
      191,
      209,
      139,
      208,
      178,
      208,
      188,
      208,
      181,
      209,
      129,
      209,
      130,
      208,
      181,
      209,
      128,
      208,
      176,
      208,
      177,
      208,
      190,
      209,
      130,
      208,
      176,
      209,
      129,
      208,
      186,
      208,
      176,
      208,
      183,
      208,
      176,
      208,
      187,
      208,
      191,
      208,
      181,
      209,
      128,
      208,
      178,
      209,
      139,
      208,
      185,
      208,
      180,
      208,
      181,
      208,
      187,
      208,
      176,
      209,
      130,
      209,
      140,
      208,
      180,
      208,
      181,
      208,
      189,
      209,
      140,
      208,
      179,
      208,
      184,
      208,
      191,
      208,
      181,
      209,
      128,
      208,
      184,
      208,
      190,
      208,
      180,
      208,
      177,
      208,
      184,
      208,
      183,
      208,
      189,
      208,
      181,
      209,
      129,
      208,
      190,
      209,
      129,
      208,
      189,
      208,
      190,
      208,
      178,
      208,
      181,
      208,
      188,
      208,
      190,
      208,
      188,
      208,
      181,
      208,
      189,
      209,
      130,
      208,
      186,
      209,
      131,
      208,
      191,
      208,
      184,
      209,
      130,
      209,
      140,
      208,
      180,
      208,
      190,
      208,
      187,
      208,
      182,
      208,
      189,
      208,
      176,
      209,
      128,
      208,
      176,
      208,
      188,
      208,
      186,
      208,
      176,
      209,
      133,
      208,
      189,
      208,
      176,
      209,
      135,
      208,
      176,
      208,
      187,
      208,
      190,
      208,
      160,
      208,
      176,
      208,
      177,
      208,
      190,
      209,
      130,
      208,
      176,
      208,
      162,
      208,
      190,
      208,
      187,
      209,
      140,
      208,
      186,
      208,
      190,
      209,
      129,
      208,
      190,
      208,
      178,
      209,
      129,
      208,
      181,
      208,
      188,
      208,
      178,
      209,
      130,
      208,
      190,
      209,
      128,
      208,
      190,
      208,
      185,
      208,
      189,
      208,
      176,
      209,
      135,
      208,
      176,
      208,
      187,
      208,
      176,
      209,
      129,
      208,
      191,
      208,
      184,
      209,
      129,
      208,
      190,
      208,
      186,
      209,
      129,
      208,
      187,
      209,
      131,
      208,
      182,
      208,
      177,
      209,
      139,
      209,
      129,
      208,
      184,
      209,
      129,
      209,
      130,
      208,
      181,
      208,
      188,
      208,
      191,
      208,
      181,
      209,
      135,
      208,
      176,
      209,
      130,
      208,
      184,
      208,
      189,
      208,
      190,
      208,
      178,
      208,
      190,
      208,
      179,
      208,
      190,
      208,
      191,
      208,
      190,
      208,
      188,
      208,
      190,
      209,
      137,
      208,
      184,
      209,
      129,
      208,
      176,
      208,
      185,
      209,
      130,
      208,
      190,
      208,
      178,
      208,
      191,
      208,
      190,
      209,
      135,
      208,
      181,
      208,
      188,
      209,
      131,
      208,
      191,
      208,
      190,
      208,
      188,
      208,
      190,
      209,
      137,
      209,
      140,
      208,
      180,
      208,
      190,
      208,
      187,
      208,
      182,
      208,
      189,
      208,
      190,
      209,
      129,
      209,
      129,
      209,
      139,
      208,
      187,
      208,
      186,
      208,
      184,
      208,
      177,
      209,
      139,
      209,
      129,
      209,
      130,
      209,
      128,
      208,
      190,
      208,
      180,
      208,
      176,
      208,
      189,
      208,
      189,
      209,
      139,
      208,
      181,
      208,
      188,
      208,
      189,
      208,
      190,
      208,
      179,
      208,
      184,
      208,
      181,
      208,
      191,
      209,
      128,
      208,
      190,
      208,
      181,
      208,
      186,
      209,
      130,
      208,
      161,
      208,
      181,
      208,
      185,
      209,
      135,
      208,
      176,
      209,
      129,
      208,
      188,
      208,
      190,
      208,
      180,
      208,
      181,
      208,
      187,
      208,
      184,
      209,
      130,
      208,
      176,
      208,
      186,
      208,
      190,
      208,
      179,
      208,
      190,
      208,
      190,
      208,
      189,
      208,
      187,
      208,
      176,
      208,
      185,
      208,
      189,
      208,
      179,
      208,
      190,
      209,
      128,
      208,
      190,
      208,
      180,
      208,
      181,
      208,
      178,
      208,
      181,
      209,
      128,
      209,
      129,
      208,
      184,
      209,
      143,
      209,
      129,
      209,
      130,
      209,
      128,
      208,
      176,
      208,
      189,
      208,
      181,
      209,
      132,
      208,
      184,
      208,
      187,
      209,
      140,
      208,
      188,
      209,
      139,
      209,
      131,
      209,
      128,
      208,
      190,
      208,
      178,
      208,
      189,
      209,
      143,
      209,
      128,
      208,
      176,
      208,
      183,
      208,
      189,
      209,
      139,
      209,
      133,
      208,
      184,
      209,
      129,
      208,
      186,
      208,
      176,
      209,
      130,
      209,
      140,
      208,
      189,
      208,
      181,
      208,
      180,
      208,
      181,
      208,
      187,
      209,
      142,
      209,
      143,
      208,
      189,
      208,
      178,
      208,
      176,
      209,
      128,
      209,
      143,
      208,
      188,
      208,
      181,
      208,
      189,
      209,
      140,
      209,
      136,
      208,
      181,
      208,
      188,
      208,
      189,
      208,
      190,
      208,
      179,
      208,
      184,
      209,
      133,
      208,
      180,
      208,
      176,
      208,
      189,
      208,
      189,
      208,
      190,
      208,
      185,
      208,
      183,
      208,
      189,
      208,
      176,
      209,
      135,
      208,
      184,
      209,
      130,
      208,
      189,
      208,
      181,
      208,
      187,
      209,
      140,
      208,
      183,
      209,
      143,
      209,
      132,
      208,
      190,
      209,
      128,
      209,
      131,
      208,
      188,
      208,
      176,
      208,
      162,
      208,
      181,
      208,
      191,
      208,
      181,
      209,
      128,
      209,
      140,
      208,
      188,
      208,
      181,
      209,
      129,
      209,
      143,
      209,
      134,
      208,
      176,
      208,
      183,
      208,
      176,
      209,
      137,
      208,
      184,
      209,
      130,
      209,
      139,
      208,
      155,
      209,
      131,
      209,
      135,
      209,
      136,
      208,
      184,
      208,
      181,
      224,
      164,
      168,
      224,
      164,
      185,
      224,
      165,
      128,
      224,
      164,
      130,
      224,
      164,
      149,
      224,
      164,
      176,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      133,
      224,
      164,
      170,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      149,
      224,
      164,
      191,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      149,
      224,
      164,
      176,
      224,
      165,
      135,
      224,
      164,
      130,
      224,
      164,
      133,
      224,
      164,
      168,
      224,
      165,
      141,
      224,
      164,
      175,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      151,
      224,
      164,
      190,
      224,
      164,
      135,
      224,
      164,
      161,
      224,
      164,
      172,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      165,
      135,
      224,
      164,
      149,
      224,
      164,
      191,
      224,
      164,
      184,
      224,
      165,
      128,
      224,
      164,
      166,
      224,
      164,
      191,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      170,
      224,
      164,
      185,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      184,
      224,
      164,
      191,
      224,
      164,
      130,
      224,
      164,
      185,
      224,
      164,
      173,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      164,
      224,
      164,
      133,
      224,
      164,
      170,
      224,
      164,
      168,
      224,
      165,
      128,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      184,
      224,
      165,
      135,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      149,
      224,
      164,
      176,
      224,
      164,
      164,
      224,
      165,
      135,
      224,
      164,
      174,
      224,
      165,
      135,
      224,
      164,
      176,
      224,
      165,
      135,
      224,
      164,
      185,
      224,
      165,
      139,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      184,
      224,
      164,
      149,
      224,
      164,
      164,
      224,
      165,
      135,
      224,
      164,
      172,
      224,
      164,
      185,
      224,
      165,
      129,
      224,
      164,
      164,
      224,
      164,
      184,
      224,
      164,
      190,
      224,
      164,
      135,
      224,
      164,
      159,
      224,
      164,
      185,
      224,
      165,
      139,
      224,
      164,
      151,
      224,
      164,
      190,
      224,
      164,
      156,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      174,
      224,
      164,
      191,
      224,
      164,
      168,
      224,
      164,
      159,
      224,
      164,
      149,
      224,
      164,
      176,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      149,
      224,
      164,
      176,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      137,
      224,
      164,
      168,
      224,
      164,
      149,
      224,
      165,
      135,
      224,
      164,
      175,
      224,
      164,
      185,
      224,
      164,
      190,
      224,
      164,
      129,
      224,
      164,
      184,
      224,
      164,
      172,
      224,
      164,
      184,
      224,
      165,
      135,
      224,
      164,
      173,
      224,
      164,
      190,
      224,
      164,
      183,
      224,
      164,
      190,
      224,
      164,
      134,
      224,
      164,
      170,
      224,
      164,
      149,
      224,
      165,
      135,
      224,
      164,
      178,
      224,
      164,
      191,
      224,
      164,
      175,
      224,
      165,
      135,
      224,
      164,
      182,
      224,
      165,
      129,
      224,
      164,
      176,
      224,
      165,
      130,
      224,
      164,
      135,
      224,
      164,
      184,
      224,
      164,
      149,
      224,
      165,
      135,
      224,
      164,
      152,
      224,
      164,
      130,
      224,
      164,
      159,
      224,
      165,
      135,
      224,
      164,
      174,
      224,
      165,
      135,
      224,
      164,
      176,
      224,
      165,
      128,
      224,
      164,
      184,
      224,
      164,
      149,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      174,
      224,
      165,
      135,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      149,
      224,
      164,
      176,
      224,
      164,
      133,
      224,
      164,
      167,
      224,
      164,
      191,
      224,
      164,
      149,
      224,
      164,
      133,
      224,
      164,
      170,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      164,
      174,
      224,
      164,
      190,
      224,
      164,
      156,
      224,
      164,
      174,
      224,
      165,
      129,
      224,
      164,
      157,
      224,
      165,
      135,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      163,
      224,
      164,
      185,
      224,
      165,
      139,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      149,
      224,
      164,
      161,
      224,
      164,
      188,
      224,
      165,
      128,
      224,
      164,
      175,
      224,
      164,
      185,
      224,
      164,
      190,
      224,
      164,
      130,
      224,
      164,
      185,
      224,
      165,
      139,
      224,
      164,
      159,
      224,
      164,
      178,
      224,
      164,
      182,
      224,
      164,
      172,
      224,
      165,
      141,
      224,
      164,
      166,
      224,
      164,
      178,
      224,
      164,
      191,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      156,
      224,
      165,
      128,
      224,
      164,
      181,
      224,
      164,
      168,
      224,
      164,
      156,
      224,
      164,
      190,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      149,
      224,
      165,
      136,
      224,
      164,
      184,
      224,
      165,
      135,
      224,
      164,
      134,
      224,
      164,
      170,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      178,
      224,
      165,
      128,
      224,
      164,
      166,
      224,
      165,
      135,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      170,
      224,
      165,
      130,
      224,
      164,
      176,
      224,
      165,
      128,
      224,
      164,
      170,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      165,
      128,
      224,
      164,
      137,
      224,
      164,
      184,
      224,
      164,
      149,
      224,
      165,
      135,
      224,
      164,
      185,
      224,
      165,
      139,
      224,
      164,
      151,
      224,
      165,
      128,
      224,
      164,
      172,
      224,
      165,
      136,
      224,
      164,
      160,
      224,
      164,
      149,
      224,
      164,
      134,
      224,
      164,
      170,
      224,
      164,
      149,
      224,
      165,
      128,
      224,
      164,
      181,
      224,
      164,
      176,
      224,
      165,
      141,
      224,
      164,
      183,
      224,
      164,
      151,
      224,
      164,
      190,
      224,
      164,
      130,
      224,
      164,
      181,
      224,
      164,
      134,
      224,
      164,
      170,
      224,
      164,
      149,
      224,
      165,
      139,
      224,
      164,
      156,
      224,
      164,
      191,
      224,
      164,
      178,
      224,
      164,
      190,
      224,
      164,
      156,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      164,
      185,
      224,
      164,
      174,
      224,
      164,
      164,
      224,
      164,
      185,
      224,
      164,
      174,
      224,
      165,
      135,
      224,
      164,
      130,
      224,
      164,
      137,
      224,
      164,
      168,
      224,
      164,
      149,
      224,
      165,
      128,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      185,
      224,
      165,
      130,
      224,
      164,
      166,
      224,
      164,
      176,
      224,
      165,
      141,
      224,
      164,
      156,
      224,
      164,
      184,
      224,
      165,
      130,
      224,
      164,
      154,
      224,
      165,
      128,
      224,
      164,
      170,
      224,
      164,
      184,
      224,
      164,
      130,
      224,
      164,
      166,
      224,
      164,
      184,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      178,
      224,
      164,
      185,
      224,
      165,
      139,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      185,
      224,
      165,
      139,
      224,
      164,
      164,
      224,
      165,
      128,
      224,
      164,
      156,
      224,
      165,
      136,
      224,
      164,
      184,
      224,
      165,
      135,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      170,
      224,
      164,
      184,
      224,
      164,
      156,
      224,
      164,
      168,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      156,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      165,
      128,
      224,
      164,
      152,
      224,
      164,
      190,
      224,
      164,
      175,
      224,
      164,
      178,
      224,
      164,
      156,
      224,
      164,
      191,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      168,
      224,
      165,
      128,
      224,
      164,
      154,
      224,
      165,
      135,
      224,
      164,
      156,
      224,
      164,
      190,
      224,
      164,
      130,
      224,
      164,
      154,
      224,
      164,
      170,
      224,
      164,
      164,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      151,
      224,
      165,
      130,
      224,
      164,
      151,
      224,
      164,
      178,
      224,
      164,
      156,
      224,
      164,
      190,
      224,
      164,
      164,
      224,
      165,
      135,
      224,
      164,
      172,
      224,
      164,
      190,
      224,
      164,
      185,
      224,
      164,
      176,
      224,
      164,
      134,
      224,
      164,
      170,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      185,
      224,
      164,
      168,
      224,
      164,
      135,
      224,
      164,
      184,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      165,
      129,
      224,
      164,
      172,
      224,
      164,
      185,
      224,
      164,
      176,
      224,
      164,
      185,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      135,
      224,
      164,
      184,
      224,
      164,
      184,
      224,
      165,
      135,
      224,
      164,
      184,
      224,
      164,
      185,
      224,
      164,
      191,
      224,
      164,
      164,
      224,
      164,
      172,
      224,
      164,
      161,
      224,
      164,
      188,
      224,
      165,
      135,
      224,
      164,
      152,
      224,
      164,
      159,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      164,
      224,
      164,
      178,
      224,
      164,
      190,
      224,
      164,
      182,
      224,
      164,
      170,
      224,
      164,
      190,
      224,
      164,
      130,
      224,
      164,
      154,
      224,
      164,
      182,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      165,
      128,
      224,
      164,
      172,
      224,
      164,
      161,
      224,
      164,
      188,
      224,
      165,
      128,
      224,
      164,
      185,
      224,
      165,
      139,
      224,
      164,
      164,
      224,
      165,
      135,
      224,
      164,
      184,
      224,
      164,
      190,
      224,
      164,
      136,
      224,
      164,
      159,
      224,
      164,
      182,
      224,
      164,
      190,
      224,
      164,
      175,
      224,
      164,
      166,
      224,
      164,
      184,
      224,
      164,
      149,
      224,
      164,
      164,
      224,
      165,
      128,
      224,
      164,
      156,
      224,
      164,
      190,
      224,
      164,
      164,
      224,
      165,
      128,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      178,
      224,
      164,
      190,
      224,
      164,
      185,
      224,
      164,
      156,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      170,
      224,
      164,
      159,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      150,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      184,
      224,
      164,
      161,
      224,
      164,
      188,
      224,
      164,
      149,
      224,
      164,
      174,
      224,
      164,
      191,
      224,
      164,
      178,
      224,
      164,
      190,
      224,
      164,
      137,
      224,
      164,
      184,
      224,
      164,
      149,
      224,
      165,
      128,
      224,
      164,
      149,
      224,
      165,
      135,
      224,
      164,
      181,
      224,
      164,
      178,
      224,
      164,
      178,
      224,
      164,
      151,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      150,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      133,
      224,
      164,
      176,
      224,
      165,
      141,
      224,
      164,
      165,
      224,
      164,
      156,
      224,
      164,
      185,
      224,
      164,
      190,
      224,
      164,
      130,
      224,
      164,
      166,
      224,
      165,
      135,
      224,
      164,
      150,
      224,
      164,
      190,
      224,
      164,
      170,
      224,
      164,
      185,
      224,
      164,
      178,
      224,
      165,
      128,
      224,
      164,
      168,
      224,
      164,
      191,
      224,
      164,
      175,
      224,
      164,
      174,
      224,
      164,
      172,
      224,
      164,
      191,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      172,
      224,
      165,
      136,
      224,
      164,
      130,
      224,
      164,
      149,
      224,
      164,
      149,
      224,
      164,
      185,
      224,
      165,
      128,
      224,
      164,
      130,
      224,
      164,
      149,
      224,
      164,
      185,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      166,
      224,
      165,
      135,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      185,
      224,
      164,
      174,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      171,
      224,
      165,
      128,
      224,
      164,
      156,
      224,
      164,
      172,
      224,
      164,
      149,
      224,
      164,
      191,
      224,
      164,
      164,
      224,
      165,
      129,
      224,
      164,
      176,
      224,
      164,
      164,
      224,
      164,
      174,
      224,
      164,
      190,
      224,
      164,
      130,
      224,
      164,
      151,
      224,
      164,
      181,
      224,
      164,
      185,
      224,
      165,
      128,
      224,
      164,
      130,
      224,
      164,
      176,
      224,
      165,
      139,
      224,
      164,
      156,
      224,
      164,
      188,
      224,
      164,
      174,
      224,
      164,
      191,
      224,
      164,
      178,
      224,
      165,
      128,
      224,
      164,
      134,
      224,
      164,
      176,
      224,
      165,
      139,
      224,
      164,
      170,
      224,
      164,
      184,
      224,
      165,
      135,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      166,
      224,
      164,
      181,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      150,
      224,
      164,
      190,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      149,
      224,
      164,
      176,
      224,
      165,
      128,
      224,
      164,
      172,
      224,
      164,
      137,
      224,
      164,
      168,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      156,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      172,
      224,
      164,
      170,
      224,
      165,
      130,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      172,
      224,
      164,
      161,
      224,
      164,
      188,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      165,
      140,
      224,
      164,
      166,
      224,
      164,
      190,
      224,
      164,
      182,
      224,
      165,
      135,
      224,
      164,
      175,
      224,
      164,
      176,
      224,
      164,
      149,
      224,
      164,
      191,
      224,
      164,
      175,
      224,
      165,
      135,
      224,
      164,
      149,
      224,
      164,
      185,
      224,
      164,
      190,
      224,
      164,
      130,
      224,
      164,
      133,
      224,
      164,
      149,
      224,
      164,
      184,
      224,
      164,
      176,
      224,
      164,
      172,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      143,
      224,
      164,
      181,
      224,
      164,
      185,
      224,
      164,
      190,
      224,
      164,
      130,
      224,
      164,
      184,
      224,
      165,
      141,
      224,
      164,
      165,
      224,
      164,
      178,
      224,
      164,
      174,
      224,
      164,
      191,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      150,
      224,
      164,
      149,
      224,
      164,
      181,
      224,
      164,
      191,
      224,
      164,
      183,
      224,
      164,
      175,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      130,
      224,
      164,
      184,
      224,
      164,
      174,
      224,
      165,
      130,
      224,
      164,
      185,
      224,
      164,
      165,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      164,
      190,
      216,
      170,
      216,
      179,
      216,
      170,
      216,
      183,
      217,
      138,
      216,
      185,
      217,
      133,
      216,
      180,
      216,
      167,
      216,
      177,
      217,
      131,
      216,
      169,
      216,
      168,
      217,
      136,
      216,
      167,
      216,
      179,
      216,
      183,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      181,
      217,
      129,
      216,
      173,
      216,
      169,
      217,
      133,
      217,
      136,
      216,
      167,
      216,
      182,
      217,
      138,
      216,
      185,
      216,
      167,
      217,
      132,
      216,
      174,
      216,
      167,
      216,
      181,
      216,
      169,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      178,
      217,
      138,
      216,
      175,
      216,
      167,
      217,
      132,
      216,
      185,
      216,
      167,
      217,
      133,
      216,
      169,
      216,
      167,
      217,
      132,
      217,
      131,
      216,
      167,
      216,
      170,
      216,
      168,
      216,
      167,
      217,
      132,
      216,
      177,
      216,
      175,
      217,
      136,
      216,
      175,
      216,
      168,
      216,
      177,
      217,
      134,
      216,
      167,
      217,
      133,
      216,
      172,
      216,
      167,
      217,
      132,
      216,
      175,
      217,
      136,
      217,
      132,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      185,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      167,
      217,
      132,
      217,
      133,
      217,
      136,
      217,
      130,
      216,
      185,
      216,
      167,
      217,
      132,
      216,
      185,
      216,
      177,
      216,
      168,
      217,
      138,
      216,
      167,
      217,
      132,
      216,
      179,
      216,
      177,
      217,
      138,
      216,
      185,
      216,
      167,
      217,
      132,
      216,
      172,
      217,
      136,
      216,
      167,
      217,
      132,
      216,
      167,
      217,
      132,
      216,
      176,
      217,
      135,
      216,
      167,
      216,
      168,
      216,
      167,
      217,
      132,
      216,
      173,
      217,
      138,
      216,
      167,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      173,
      217,
      130,
      217,
      136,
      217,
      130,
      216,
      167,
      217,
      132,
      217,
      131,
      216,
      177,
      217,
      138,
      217,
      133,
      216,
      167,
      217,
      132,
      216,
      185,
      216,
      177,
      216,
      167,
      217,
      130,
      217,
      133,
      216,
      173,
      217,
      129,
      217,
      136,
      216,
      184,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      171,
      216,
      167,
      217,
      134,
      217,
      138,
      217,
      133,
      216,
      180,
      216,
      167,
      217,
      135,
      216,
      175,
      216,
      169,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      177,
      216,
      163,
      216,
      169,
      216,
      167,
      217,
      132,
      217,
      130,
      216,
      177,
      216,
      162,
      217,
      134,
      216,
      167,
      217,
      132,
      216,
      180,
      216,
      168,
      216,
      167,
      216,
      168,
      216,
      167,
      217,
      132,
      216,
      173,
      217,
      136,
      216,
      167,
      216,
      177,
      216,
      167,
      217,
      132,
      216,
      172,
      216,
      175,
      217,
      138,
      216,
      175,
      216,
      167,
      217,
      132,
      216,
      163,
      216,
      179,
      216,
      177,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      185,
      217,
      132,
      217,
      136,
      217,
      133,
      217,
      133,
      216,
      172,
      217,
      133,
      217,
      136,
      216,
      185,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      177,
      216,
      173,
      217,
      133,
      217,
      134,
      216,
      167,
      217,
      132,
      217,
      134,
      217,
      130,
      216,
      167,
      216,
      183,
      217,
      129,
      217,
      132,
      216,
      179,
      216,
      183,
      217,
      138,
      217,
      134,
      216,
      167,
      217,
      132,
      217,
      131,
      217,
      136,
      217,
      138,
      216,
      170,
      216,
      167,
      217,
      132,
      216,
      175,
      217,
      134,
      217,
      138,
      216,
      167,
      216,
      168,
      216,
      177,
      217,
      131,
      216,
      167,
      216,
      170,
      217,
      135,
      216,
      167,
      217,
      132,
      216,
      177,
      217,
      138,
      216,
      167,
      216,
      182,
      216,
      170,
      216,
      173,
      217,
      138,
      216,
      167,
      216,
      170,
      217,
      138,
      216,
      168,
      216,
      170,
      217,
      136,
      217,
      130,
      217,
      138,
      216,
      170,
      216,
      167,
      217,
      132,
      216,
      163,
      217,
      136,
      217,
      132,
      217,
      137,
      216,
      167,
      217,
      132,
      216,
      168,
      216,
      177,
      217,
      138,
      216,
      175,
      216,
      167,
      217,
      132,
      217,
      131,
      217,
      132,
      216,
      167,
      217,
      133,
      216,
      167,
      217,
      132,
      216,
      177,
      216,
      167,
      216,
      168,
      216,
      183,
      216,
      167,
      217,
      132,
      216,
      180,
      216,
      174,
      216,
      181,
      217,
      138,
      216,
      179,
      217,
      138,
      216,
      167,
      216,
      177,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      216,
      171,
      216,
      167,
      217,
      132,
      216,
      171,
      216,
      167,
      217,
      132,
      216,
      181,
      217,
      132,
      216,
      167,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      173,
      216,
      175,
      217,
      138,
      216,
      171,
      216,
      167,
      217,
      132,
      216,
      178,
      217,
      136,
      216,
      167,
      216,
      177,
      216,
      167,
      217,
      132,
      216,
      174,
      217,
      132,
      217,
      138,
      216,
      172,
      216,
      167,
      217,
      132,
      216,
      172,
      217,
      133,
      217,
      138,
      216,
      185,
      216,
      167,
      217,
      132,
      216,
      185,
      216,
      167,
      217,
      133,
      217,
      135,
      216,
      167,
      217,
      132,
      216,
      172,
      217,
      133,
      216,
      167,
      217,
      132,
      216,
      167,
      217,
      132,
      216,
      179,
      216,
      167,
      216,
      185,
      216,
      169,
      217,
      133,
      216,
      180,
      216,
      167,
      217,
      135,
      216,
      175,
      217,
      135,
      216,
      167,
      217,
      132,
      216,
      177,
      216,
      166,
      217,
      138,
      216,
      179,
      216,
      167,
      217,
      132,
      216,
      175,
      216,
      174,
      217,
      136,
      217,
      132,
      216,
      167,
      217,
      132,
      217,
      129,
      217,
      134,
      217,
      138,
      216,
      169,
      216,
      167,
      217,
      132,
      217,
      131,
      216,
      170,
      216,
      167,
      216,
      168,
      216,
      167,
      217,
      132,
      216,
      175,
      217,
      136,
      216,
      177,
      217,
      138,
      216,
      167,
      217,
      132,
      216,
      175,
      216,
      177,
      217,
      136,
      216,
      179,
      216,
      167,
      216,
      179,
      216,
      170,
      216,
      186,
      216,
      177,
      217,
      130,
      216,
      170,
      216,
      181,
      216,
      167,
      217,
      133,
      217,
      138,
      217,
      133,
      216,
      167,
      217,
      132,
      216,
      168,
      217,
      134,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      216,
      185,
      216,
      184,
      217,
      138,
      217,
      133,
      101,
      110,
      116,
      101,
      114,
      116,
      97,
      105,
      110,
      109,
      101,
      110,
      116,
      117,
      110,
      100,
      101,
      114,
      115,
      116,
      97,
      110,
      100,
      105,
      110,
      103,
      32,
      61,
      32,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      46,
      106,
      112,
      103,
      34,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      99,
      111,
      110,
      102,
      105,
      103,
      117,
      114,
      97,
      116,
      105,
      111,
      110,
      46,
      112,
      110,
      103,
      34,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      60,
      98,
      111,
      100,
      121,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      77,
      97,
      116,
      104,
      46,
      114,
      97,
      110,
      100,
      111,
      109,
      40,
      41,
      99,
      111,
      110,
      116,
      101,
      109,
      112,
      111,
      114,
      97,
      114,
      121,
      32,
      85,
      110,
      105,
      116,
      101,
      100,
      32,
      83,
      116,
      97,
      116,
      101,
      115,
      99,
      105,
      114,
      99,
      117,
      109,
      115,
      116,
      97,
      110,
      99,
      101,
      115,
      46,
      97,
      112,
      112,
      101,
      110,
      100,
      67,
      104,
      105,
      108,
      100,
      40,
      111,
      114,
      103,
      97,
      110,
      105,
      122,
      97,
      116,
      105,
      111,
      110,
      115,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      34,
      62,
      60,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      34,
      47,
      100,
      105,
      115,
      116,
      105,
      110,
      103,
      117,
      105,
      115,
      104,
      101,
      100,
      116,
      104,
      111,
      117,
      115,
      97,
      110,
      100,
      115,
      32,
      111,
      102,
      32,
      99,
      111,
      109,
      109,
      117,
      110,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      99,
      108,
      101,
      97,
      114,
      34,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      105,
      110,
      118,
      101,
      115,
      116,
      105,
      103,
      97,
      116,
      105,
      111,
      110,
      102,
      97,
      118,
      105,
      99,
      111,
      110,
      46,
      105,
      99,
      111,
      34,
      32,
      109,
      97,
      114,
      103,
      105,
      110,
      45,
      114,
      105,
      103,
      104,
      116,
      58,
      98,
      97,
      115,
      101,
      100,
      32,
      111,
      110,
      32,
      116,
      104,
      101,
      32,
      77,
      97,
      115,
      115,
      97,
      99,
      104,
      117,
      115,
      101,
      116,
      116,
      115,
      116,
      97,
      98,
      108,
      101,
      32,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      105,
      110,
      116,
      101,
      114,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      97,
      108,
      115,
      111,
      32,
      107,
      110,
      111,
      119,
      110,
      32,
      97,
      115,
      112,
      114,
      111,
      110,
      117,
      110,
      99,
      105,
      97,
      116,
      105,
      111,
      110,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      58,
      35,
      102,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      45,
      108,
      101,
      102,
      116,
      58,
      70,
      111,
      114,
      32,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      44,
      32,
      109,
      105,
      115,
      99,
      101,
      108,
      108,
      97,
      110,
      101,
      111,
      117,
      115,
      38,
      108,
      116,
      59,
      47,
      109,
      97,
      116,
      104,
      38,
      103,
      116,
      59,
      112,
      115,
      121,
      99,
      104,
      111,
      108,
      111,
      103,
      105,
      99,
      97,
      108,
      105,
      110,
      32,
      112,
      97,
      114,
      116,
      105,
      99,
      117,
      108,
      97,
      114,
      101,
      97,
      114,
      99,
      104,
      34,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      102,
      111,
      114,
      109,
      32,
      109,
      101,
      116,
      104,
      111,
      100,
      61,
      34,
      97,
      115,
      32,
      111,
      112,
      112,
      111,
      115,
      101,
      100,
      32,
      116,
      111,
      83,
      117,
      112,
      114,
      101,
      109,
      101,
      32,
      67,
      111,
      117,
      114,
      116,
      111,
      99,
      99,
      97,
      115,
      105,
      111,
      110,
      97,
      108,
      108,
      121,
      32,
      65,
      100,
      100,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      108,
      121,
      44,
      78,
      111,
      114,
      116,
      104,
      32,
      65,
      109,
      101,
      114,
      105,
      99,
      97,
      112,
      120,
      59,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      111,
      112,
      112,
      111,
      114,
      116,
      117,
      110,
      105,
      116,
      105,
      101,
      115,
      69,
      110,
      116,
      101,
      114,
      116,
      97,
      105,
      110,
      109,
      101,
      110,
      116,
      46,
      116,
      111,
      76,
      111,
      119,
      101,
      114,
      67,
      97,
      115,
      101,
      40,
      109,
      97,
      110,
      117,
      102,
      97,
      99,
      116,
      117,
      114,
      105,
      110,
      103,
      112,
      114,
      111,
      102,
      101,
      115,
      115,
      105,
      111,
      110,
      97,
      108,
      32,
      99,
      111,
      109,
      98,
      105,
      110,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      70,
      111,
      114,
      32,
      105,
      110,
      115,
      116,
      97,
      110,
      99,
      101,
      44,
      99,
      111,
      110,
      115,
      105,
      115,
      116,
      105,
      110,
      103,
      32,
      111,
      102,
      34,
      32,
      109,
      97,
      120,
      108,
      101,
      110,
      103,
      116,
      104,
      61,
      34,
      114,
      101,
      116,
      117,
      114,
      110,
      32,
      102,
      97,
      108,
      115,
      101,
      59,
      99,
      111,
      110,
      115,
      99,
      105,
      111,
      117,
      115,
      110,
      101,
      115,
      115,
      77,
      101,
      100,
      105,
      116,
      101,
      114,
      114,
      97,
      110,
      101,
      97,
      110,
      101,
      120,
      116,
      114,
      97,
      111,
      114,
      100,
      105,
      110,
      97,
      114,
      121,
      97,
      115,
      115,
      97,
      115,
      115,
      105,
      110,
      97,
      116,
      105,
      111,
      110,
      115,
      117,
      98,
      115,
      101,
      113,
      117,
      101,
      110,
      116,
      108,
      121,
      32,
      98,
      117,
      116,
      116,
      111,
      110,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      104,
      101,
      32,
      110,
      117,
      109,
      98,
      101,
      114,
      32,
      111,
      102,
      116,
      104,
      101,
      32,
      111,
      114,
      105,
      103,
      105,
      110,
      97,
      108,
      32,
      99,
      111,
      109,
      112,
      114,
      101,
      104,
      101,
      110,
      115,
      105,
      118,
      101,
      114,
      101,
      102,
      101,
      114,
      115,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      60,
      47,
      117,
      108,
      62,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      112,
      104,
      105,
      108,
      111,
      115,
      111,
      112,
      104,
      105,
      99,
      97,
      108,
      108,
      111,
      99,
      97,
      116,
      105,
      111,
      110,
      46,
      104,
      114,
      101,
      102,
      119,
      97,
      115,
      32,
      112,
      117,
      98,
      108,
      105,
      115,
      104,
      101,
      100,
      83,
      97,
      110,
      32,
      70,
      114,
      97,
      110,
      99,
      105,
      115,
      99,
      111,
      40,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      123,
      10,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      109,
      97,
      105,
      110,
      115,
      111,
      112,
      104,
      105,
      115,
      116,
      105,
      99,
      97,
      116,
      101,
      100,
      109,
      97,
      116,
      104,
      101,
      109,
      97,
      116,
      105,
      99,
      97,
      108,
      32,
      47,
      104,
      101,
      97,
      100,
      62,
      13,
      10,
      60,
      98,
      111,
      100,
      121,
      115,
      117,
      103,
      103,
      101,
      115,
      116,
      115,
      32,
      116,
      104,
      97,
      116,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      97,
      116,
      105,
      111,
      110,
      99,
      111,
      110,
      99,
      101,
      110,
      116,
      114,
      97,
      116,
      105,
      111,
      110,
      114,
      101,
      108,
      97,
      116,
      105,
      111,
      110,
      115,
      104,
      105,
      112,
      115,
      109,
      97,
      121,
      32,
      104,
      97,
      118,
      101,
      32,
      98,
      101,
      101,
      110,
      40,
      102,
      111,
      114,
      32,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      44,
      84,
      104,
      105,
      115,
      32,
      97,
      114,
      116,
      105,
      99,
      108,
      101,
      32,
      105,
      110,
      32,
      115,
      111,
      109,
      101,
      32,
      99,
      97,
      115,
      101,
      115,
      112,
      97,
      114,
      116,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      100,
      101,
      102,
      105,
      110,
      105,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      71,
      114,
      101,
      97,
      116,
      32,
      66,
      114,
      105,
      116,
      97,
      105,
      110,
      32,
      99,
      101,
      108,
      108,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      61,
      101,
      113,
      117,
      105,
      118,
      97,
      108,
      101,
      110,
      116,
      32,
      116,
      111,
      112,
      108,
      97,
      99,
      101,
      104,
      111,
      108,
      100,
      101,
      114,
      61,
      34,
      59,
      32,
      102,
      111,
      110,
      116,
      45,
      115,
      105,
      122,
      101,
      58,
      32,
      106,
      117,
      115,
      116,
      105,
      102,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      98,
      101,
      108,
      105,
      101,
      118,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      115,
      117,
      102,
      102,
      101,
      114,
      101,
      100,
      32,
      102,
      114,
      111,
      109,
      97,
      116,
      116,
      101,
      109,
      112,
      116,
      101,
      100,
      32,
      116,
      111,
      32,
      108,
      101,
      97,
      100,
      101,
      114,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      99,
      114,
      105,
      112,
      116,
      34,
      32,
      115,
      114,
      99,
      61,
      34,
      47,
      40,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      32,
      123,
      97,
      114,
      101,
      32,
      97,
      118,
      97,
      105,
      108,
      97,
      98,
      108,
      101,
      10,
      9,
      60,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      32,
      115,
      114,
      99,
      61,
      39,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      105,
      110,
      116,
      101,
      114,
      101,
      115,
      116,
      101,
      100,
      32,
      105,
      110,
      99,
      111,
      110,
      118,
      101,
      110,
      116,
      105,
      111,
      110,
      97,
      108,
      32,
      34,
      32,
      97,
      108,
      116,
      61,
      34,
      34,
      32,
      47,
      62,
      60,
      47,
      97,
      114,
      101,
      32,
      103,
      101,
      110,
      101,
      114,
      97,
      108,
      108,
      121,
      104,
      97,
      115,
      32,
      97,
      108,
      115,
      111,
      32,
      98,
      101,
      101,
      110,
      109,
      111,
      115,
      116,
      32,
      112,
      111,
      112,
      117,
      108,
      97,
      114,
      32,
      99,
      111,
      114,
      114,
      101,
      115,
      112,
      111,
      110,
      100,
      105,
      110,
      103,
      99,
      114,
      101,
      100,
      105,
      116,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      116,
      121,
      108,
      101,
      61,
      34,
      98,
      111,
      114,
      100,
      101,
      114,
      58,
      60,
      47,
      97,
      62,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      47,
      46,
      103,
      105,
      102,
      34,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      60,
      105,
      102,
      114,
      97,
      109,
      101,
      32,
      115,
      114,
      99,
      61,
      34,
      116,
      97,
      98,
      108,
      101,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      105,
      110,
      108,
      105,
      110,
      101,
      45,
      98,
      108,
      111,
      99,
      107,
      59,
      97,
      99,
      99,
      111,
      114,
      100,
      105,
      110,
      103,
      32,
      116,
      111,
      32,
      116,
      111,
      103,
      101,
      116,
      104,
      101,
      114,
      32,
      119,
      105,
      116,
      104,
      97,
      112,
      112,
      114,
      111,
      120,
      105,
      109,
      97,
      116,
      101,
      108,
      121,
      112,
      97,
      114,
      108,
      105,
      97,
      109,
      101,
      110,
      116,
      97,
      114,
      121,
      109,
      111,
      114,
      101,
      32,
      97,
      110,
      100,
      32,
      109,
      111,
      114,
      101,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      110,
      111,
      110,
      101,
      59,
      116,
      114,
      97,
      100,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      108,
      121,
      112,
      114,
      101,
      100,
      111,
      109,
      105,
      110,
      97,
      110,
      116,
      108,
      121,
      38,
      110,
      98,
      115,
      112,
      59,
      124,
      38,
      110,
      98,
      115,
      112,
      59,
      38,
      110,
      98,
      115,
      112,
      59,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      32,
      99,
      101,
      108,
      108,
      115,
      112,
      97,
      99,
      105,
      110,
      103,
      61,
      60,
      105,
      110,
      112,
      117,
      116,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      111,
      114,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      99,
      111,
      110,
      116,
      114,
      111,
      118,
      101,
      114,
      115,
      105,
      97,
      108,
      112,
      114,
      111,
      112,
      101,
      114,
      116,
      121,
      61,
      34,
      111,
      103,
      58,
      47,
      120,
      45,
      115,
      104,
      111,
      99,
      107,
      119,
      97,
      118,
      101,
      45,
      100,
      101,
      109,
      111,
      110,
      115,
      116,
      114,
      97,
      116,
      105,
      111,
      110,
      115,
      117,
      114,
      114,
      111,
      117,
      110,
      100,
      101,
      100,
      32,
      98,
      121,
      78,
      101,
      118,
      101,
      114,
      116,
      104,
      101,
      108,
      101,
      115,
      115,
      44,
      119,
      97,
      115,
      32,
      116,
      104,
      101,
      32,
      102,
      105,
      114,
      115,
      116,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      97,
      98,
      108,
      101,
      32,
      65,
      108,
      116,
      104,
      111,
      117,
      103,
      104,
      32,
      116,
      104,
      101,
      32,
      99,
      111,
      108,
      108,
      97,
      98,
      111,
      114,
      97,
      116,
      105,
      111,
      110,
      115,
      104,
      111,
      117,
      108,
      100,
      32,
      110,
      111,
      116,
      32,
      98,
      101,
      112,
      114,
      111,
      112,
      111,
      114,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      60,
      115,
      112,
      97,
      110,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      107,
      110,
      111,
      119,
      110,
      32,
      97,
      115,
      32,
      116,
      104,
      101,
      32,
      115,
      104,
      111,
      114,
      116,
      108,
      121,
      32,
      97,
      102,
      116,
      101,
      114,
      102,
      111,
      114,
      32,
      105,
      110,
      115,
      116,
      97,
      110,
      99,
      101,
      44,
      100,
      101,
      115,
      99,
      114,
      105,
      98,
      101,
      100,
      32,
      97,
      115,
      32,
      47,
      104,
      101,
      97,
      100,
      62,
      10,
      60,
      98,
      111,
      100,
      121,
      32,
      115,
      116,
      97,
      114,
      116,
      105,
      110,
      103,
      32,
      119,
      105,
      116,
      104,
      105,
      110,
      99,
      114,
      101,
      97,
      115,
      105,
      110,
      103,
      108,
      121,
      32,
      116,
      104,
      101,
      32,
      102,
      97,
      99,
      116,
      32,
      116,
      104,
      97,
      116,
      100,
      105,
      115,
      99,
      117,
      115,
      115,
      105,
      111,
      110,
      32,
      111,
      102,
      109,
      105,
      100,
      100,
      108,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      97,
      110,
      32,
      105,
      110,
      100,
      105,
      118,
      105,
      100,
      117,
      97,
      108,
      100,
      105,
      102,
      102,
      105,
      99,
      117,
      108,
      116,
      32,
      116,
      111,
      32,
      112,
      111,
      105,
      110,
      116,
      32,
      111,
      102,
      32,
      118,
      105,
      101,
      119,
      104,
      111,
      109,
      111,
      115,
      101,
      120,
      117,
      97,
      108,
      105,
      116,
      121,
      97,
      99,
      99,
      101,
      112,
      116,
      97,
      110,
      99,
      101,
      32,
      111,
      102,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      109,
      97,
      110,
      117,
      102,
      97,
      99,
      116,
      117,
      114,
      101,
      114,
      115,
      111,
      114,
      105,
      103,
      105,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      99,
      111,
      109,
      109,
      111,
      110,
      108,
      121,
      32,
      117,
      115,
      101,
      100,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      99,
      101,
      32,
      111,
      102,
      100,
      101,
      110,
      111,
      109,
      105,
      110,
      97,
      116,
      105,
      111,
      110,
      115,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      58,
      32,
      35,
      108,
      101,
      110,
      103,
      116,
      104,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      100,
      101,
      116,
      101,
      114,
      109,
      105,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      32,
      115,
      105,
      103,
      110,
      105,
      102,
      105,
      99,
      97,
      110,
      116,
      34,
      32,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      34,
      48,
      34,
      62,
      114,
      101,
      118,
      111,
      108,
      117,
      116,
      105,
      111,
      110,
      97,
      114,
      121,
      112,
      114,
      105,
      110,
      99,
      105,
      112,
      108,
      101,
      115,
      32,
      111,
      102,
      105,
      115,
      32,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      101,
      100,
      119,
      97,
      115,
      32,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      101,
      100,
      73,
      110,
      100,
      111,
      45,
      69,
      117,
      114,
      111,
      112,
      101,
      97,
      110,
      118,
      117,
      108,
      110,
      101,
      114,
      97,
      98,
      108,
      101,
      32,
      116,
      111,
      112,
      114,
      111,
      112,
      111,
      110,
      101,
      110,
      116,
      115,
      32,
      111,
      102,
      97,
      114,
      101,
      32,
      115,
      111,
      109,
      101,
      116,
      105,
      109,
      101,
      115,
      99,
      108,
      111,
      115,
      101,
      114,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      78,
      101,
      119,
      32,
      89,
      111,
      114,
      107,
      32,
      67,
      105,
      116,
      121,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      115,
      101,
      97,
      114,
      99,
      104,
      97,
      116,
      116,
      114,
      105,
      98,
      117,
      116,
      101,
      100,
      32,
      116,
      111,
      99,
      111,
      117,
      114,
      115,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      109,
      97,
      116,
      104,
      101,
      109,
      97,
      116,
      105,
      99,
      105,
      97,
      110,
      98,
      121,
      32,
      116,
      104,
      101,
      32,
      101,
      110,
      100,
      32,
      111,
      102,
      97,
      116,
      32,
      116,
      104,
      101,
      32,
      101,
      110,
      100,
      32,
      111,
      102,
      34,
      32,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      34,
      48,
      34,
      32,
      116,
      101,
      99,
      104,
      110,
      111,
      108,
      111,
      103,
      105,
      99,
      97,
      108,
      46,
      114,
      101,
      109,
      111,
      118,
      101,
      67,
      108,
      97,
      115,
      115,
      40,
      98,
      114,
      97,
      110,
      99,
      104,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      101,
      118,
      105,
      100,
      101,
      110,
      99,
      101,
      32,
      116,
      104,
      97,
      116,
      33,
      91,
      101,
      110,
      100,
      105,
      102,
      93,
      45,
      45,
      62,
      13,
      10,
      73,
      110,
      115,
      116,
      105,
      116,
      117,
      116,
      101,
      32,
      111,
      102,
      32,
      105,
      110,
      116,
      111,
      32,
      97,
      32,
      115,
      105,
      110,
      103,
      108,
      101,
      114,
      101,
      115,
      112,
      101,
      99,
      116,
      105,
      118,
      101,
      108,
      121,
      46,
      97,
      110,
      100,
      32,
      116,
      104,
      101,
      114,
      101,
      102,
      111,
      114,
      101,
      112,
      114,
      111,
      112,
      101,
      114,
      116,
      105,
      101,
      115,
      32,
      111,
      102,
      105,
      115,
      32,
      108,
      111,
      99,
      97,
      116,
      101,
      100,
      32,
      105,
      110,
      115,
      111,
      109,
      101,
      32,
      111,
      102,
      32,
      119,
      104,
      105,
      99,
      104,
      84,
      104,
      101,
      114,
      101,
      32,
      105,
      115,
      32,
      97,
      108,
      115,
      111,
      99,
      111,
      110,
      116,
      105,
      110,
      117,
      101,
      100,
      32,
      116,
      111,
      32,
      97,
      112,
      112,
      101,
      97,
      114,
      97,
      110,
      99,
      101,
      32,
      111,
      102,
      32,
      38,
      97,
      109,
      112,
      59,
      110,
      100,
      97,
      115,
      104,
      59,
      32,
      100,
      101,
      115,
      99,
      114,
      105,
      98,
      101,
      115,
      32,
      116,
      104,
      101,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      97,
      116,
      105,
      111,
      110,
      97,
      117,
      116,
      104,
      111,
      114,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      105,
      110,
      100,
      101,
      112,
      101,
      110,
      100,
      101,
      110,
      116,
      108,
      121,
      101,
      113,
      117,
      105,
      112,
      112,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      100,
      111,
      101,
      115,
      32,
      110,
      111,
      116,
      32,
      104,
      97,
      118,
      101,
      60,
      47,
      97,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      99,
      111,
      110,
      102,
      117,
      115,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      60,
      108,
      105,
      110,
      107,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      47,
      97,
      116,
      32,
      116,
      104,
      101,
      32,
      97,
      103,
      101,
      32,
      111,
      102,
      97,
      112,
      112,
      101,
      97,
      114,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      84,
      104,
      101,
      115,
      101,
      32,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      114,
      101,
      103,
      97,
      114,
      100,
      108,
      101,
      115,
      115,
      32,
      111,
      102,
      99,
      111,
      117,
      108,
      100,
      32,
      98,
      101,
      32,
      117,
      115,
      101,
      100,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      38,
      113,
      117,
      111,
      116,
      59,
      115,
      101,
      118,
      101,
      114,
      97,
      108,
      32,
      116,
      105,
      109,
      101,
      115,
      114,
      101,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      32,
      116,
      104,
      101,
      98,
      111,
      100,
      121,
      62,
      10,
      60,
      47,
      104,
      116,
      109,
      108,
      62,
      116,
      104,
      111,
      117,
      103,
      104,
      116,
      32,
      116,
      111,
      32,
      98,
      101,
      112,
      111,
      112,
      117,
      108,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      112,
      111,
      115,
      115,
      105,
      98,
      105,
      108,
      105,
      116,
      105,
      101,
      115,
      112,
      101,
      114,
      99,
      101,
      110,
      116,
      97,
      103,
      101,
      32,
      111,
      102,
      97,
      99,
      99,
      101,
      115,
      115,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      97,
      110,
      32,
      97,
      116,
      116,
      101,
      109,
      112,
      116,
      32,
      116,
      111,
      112,
      114,
      111,
      100,
      117,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      106,
      113,
      117,
      101,
      114,
      121,
      47,
      106,
      113,
      117,
      101,
      114,
      121,
      116,
      119,
      111,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      98,
      101,
      108,
      111,
      110,
      103,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      101,
      115,
      116,
      97,
      98,
      108,
      105,
      115,
      104,
      109,
      101,
      110,
      116,
      114,
      101,
      112,
      108,
      97,
      99,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      100,
      101,
      115,
      99,
      114,
      105,
      112,
      116,
      105,
      111,
      110,
      34,
      32,
      100,
      101,
      116,
      101,
      114,
      109,
      105,
      110,
      101,
      32,
      116,
      104,
      101,
      97,
      118,
      97,
      105,
      108,
      97,
      98,
      108,
      101,
      32,
      102,
      111,
      114,
      65,
      99,
      99,
      111,
      114,
      100,
      105,
      110,
      103,
      32,
      116,
      111,
      32,
      119,
      105,
      100,
      101,
      32,
      114,
      97,
      110,
      103,
      101,
      32,
      111,
      102,
      9,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      109,
      111,
      114,
      101,
      32,
      99,
      111,
      109,
      109,
      111,
      110,
      108,
      121,
      111,
      114,
      103,
      97,
      110,
      105,
      115,
      97,
      116,
      105,
      111,
      110,
      115,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      97,
      108,
      105,
      116,
      121,
      119,
      97,
      115,
      32,
      99,
      111,
      109,
      112,
      108,
      101,
      116,
      101,
      100,
      32,
      38,
      97,
      109,
      112,
      59,
      109,
      100,
      97,
      115,
      104,
      59,
      32,
      112,
      97,
      114,
      116,
      105,
      99,
      105,
      112,
      97,
      116,
      105,
      111,
      110,
      116,
      104,
      101,
      32,
      99,
      104,
      97,
      114,
      97,
      99,
      116,
      101,
      114,
      97,
      110,
      32,
      97,
      100,
      100,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      97,
      112,
      112,
      101,
      97,
      114,
      115,
      32,
      116,
      111,
      32,
      98,
      101,
      102,
      97,
      99,
      116,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      97,
      110,
      32,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      32,
      111,
      102,
      115,
      105,
      103,
      110,
      105,
      102,
      105,
      99,
      97,
      110,
      116,
      108,
      121,
      111,
      110,
      109,
      111,
      117,
      115,
      101,
      111,
      118,
      101,
      114,
      61,
      34,
      98,
      101,
      99,
      97,
      117,
      115,
      101,
      32,
      116,
      104,
      101,
      121,
      32,
      97,
      115,
      121,
      110,
      99,
      32,
      61,
      32,
      116,
      114,
      117,
      101,
      59,
      112,
      114,
      111,
      98,
      108,
      101,
      109,
      115,
      32,
      119,
      105,
      116,
      104,
      115,
      101,
      101,
      109,
      115,
      32,
      116,
      111,
      32,
      104,
      97,
      118,
      101,
      116,
      104,
      101,
      32,
      114,
      101,
      115,
      117,
      108,
      116,
      32,
      111,
      102,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      102,
      97,
      109,
      105,
      108,
      105,
      97,
      114,
      32,
      119,
      105,
      116,
      104,
      112,
      111,
      115,
      115,
      101,
      115,
      115,
      105,
      111,
      110,
      32,
      111,
      102,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      32,
      40,
      41,
      32,
      123,
      116,
      111,
      111,
      107,
      32,
      112,
      108,
      97,
      99,
      101,
      32,
      105,
      110,
      97,
      110,
      100,
      32,
      115,
      111,
      109,
      101,
      116,
      105,
      109,
      101,
      115,
      115,
      117,
      98,
      115,
      116,
      97,
      110,
      116,
      105,
      97,
      108,
      108,
      121,
      60,
      115,
      112,
      97,
      110,
      62,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      105,
      115,
      32,
      111,
      102,
      116,
      101,
      110,
      32,
      117,
      115,
      101,
      100,
      105,
      110,
      32,
      97,
      110,
      32,
      97,
      116,
      116,
      101,
      109,
      112,
      116,
      103,
      114,
      101,
      97,
      116,
      32,
      100,
      101,
      97,
      108,
      32,
      111,
      102,
      69,
      110,
      118,
      105,
      114,
      111,
      110,
      109,
      101,
      110,
      116,
      97,
      108,
      115,
      117,
      99,
      99,
      101,
      115,
      115,
      102,
      117,
      108,
      108,
      121,
      32,
      118,
      105,
      114,
      116,
      117,
      97,
      108,
      108,
      121,
      32,
      97,
      108,
      108,
      50,
      48,
      116,
      104,
      32,
      99,
      101,
      110,
      116,
      117,
      114,
      121,
      44,
      112,
      114,
      111,
      102,
      101,
      115,
      115,
      105,
      111,
      110,
      97,
      108,
      115,
      110,
      101,
      99,
      101,
      115,
      115,
      97,
      114,
      121,
      32,
      116,
      111,
      32,
      100,
      101,
      116,
      101,
      114,
      109,
      105,
      110,
      101,
      100,
      32,
      98,
      121,
      99,
      111,
      109,
      112,
      97,
      116,
      105,
      98,
      105,
      108,
      105,
      116,
      121,
      98,
      101,
      99,
      97,
      117,
      115,
      101,
      32,
      105,
      116,
      32,
      105,
      115,
      68,
      105,
      99,
      116,
      105,
      111,
      110,
      97,
      114,
      121,
      32,
      111,
      102,
      109,
      111,
      100,
      105,
      102,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      115,
      84,
      104,
      101,
      32,
      102,
      111,
      108,
      108,
      111,
      119,
      105,
      110,
      103,
      109,
      97,
      121,
      32,
      114,
      101,
      102,
      101,
      114,
      32,
      116,
      111,
      58,
      67,
      111,
      110,
      115,
      101,
      113,
      117,
      101,
      110,
      116,
      108,
      121,
      44,
      73,
      110,
      116,
      101,
      114,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      97,
      108,
      116,
      104,
      111,
      117,
      103,
      104,
      32,
      115,
      111,
      109,
      101,
      116,
      104,
      97,
      116,
      32,
      119,
      111,
      117,
      108,
      100,
      32,
      98,
      101,
      119,
      111,
      114,
      108,
      100,
      39,
      115,
      32,
      102,
      105,
      114,
      115,
      116,
      99,
      108,
      97,
      115,
      115,
      105,
      102,
      105,
      101,
      100,
      32,
      97,
      115,
      98,
      111,
      116,
      116,
      111,
      109,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      40,
      112,
      97,
      114,
      116,
      105,
      99,
      117,
      108,
      97,
      114,
      108,
      121,
      97,
      108,
      105,
      103,
      110,
      61,
      34,
      108,
      101,
      102,
      116,
      34,
      32,
      109,
      111,
      115,
      116,
      32,
      99,
      111,
      109,
      109,
      111,
      110,
      108,
      121,
      98,
      97,
      115,
      105,
      115,
      32,
      102,
      111,
      114,
      32,
      116,
      104,
      101,
      102,
      111,
      117,
      110,
      100,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      99,
      111,
      110,
      116,
      114,
      105,
      98,
      117,
      116,
      105,
      111,
      110,
      115,
      112,
      111,
      112,
      117,
      108,
      97,
      114,
      105,
      116,
      121,
      32,
      111,
      102,
      99,
      101,
      110,
      116,
      101,
      114,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      116,
      111,
      32,
      114,
      101,
      100,
      117,
      99,
      101,
      32,
      116,
      104,
      101,
      106,
      117,
      114,
      105,
      115,
      100,
      105,
      99,
      116,
      105,
      111,
      110,
      115,
      97,
      112,
      112,
      114,
      111,
      120,
      105,
      109,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      110,
      109,
      111,
      117,
      115,
      101,
      111,
      117,
      116,
      61,
      34,
      78,
      101,
      119,
      32,
      84,
      101,
      115,
      116,
      97,
      109,
      101,
      110,
      116,
      99,
      111,
      108,
      108,
      101,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      47,
      97,
      62,
      60,
      47,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      85,
      110,
      105,
      116,
      101,
      100,
      102,
      105,
      108,
      109,
      32,
      100,
      105,
      114,
      101,
      99,
      116,
      111,
      114,
      45,
      115,
      116,
      114,
      105,
      99,
      116,
      46,
      100,
      116,
      100,
      34,
      62,
      104,
      97,
      115,
      32,
      98,
      101,
      101,
      110,
      32,
      117,
      115,
      101,
      100,
      114,
      101,
      116,
      117,
      114,
      110,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      97,
      108,
      116,
      104,
      111,
      117,
      103,
      104,
      32,
      116,
      104,
      105,
      115,
      99,
      104,
      97,
      110,
      103,
      101,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      115,
      101,
      118,
      101,
      114,
      97,
      108,
      32,
      111,
      116,
      104,
      101,
      114,
      98,
      117,
      116,
      32,
      116,
      104,
      101,
      114,
      101,
      32,
      97,
      114,
      101,
      117,
      110,
      112,
      114,
      101,
      99,
      101,
      100,
      101,
      110,
      116,
      101,
      100,
      105,
      115,
      32,
      115,
      105,
      109,
      105,
      108,
      97,
      114,
      32,
      116,
      111,
      101,
      115,
      112,
      101,
      99,
      105,
      97,
      108,
      108,
      121,
      32,
      105,
      110,
      119,
      101,
      105,
      103,
      104,
      116,
      58,
      32,
      98,
      111,
      108,
      100,
      59,
      105,
      115,
      32,
      99,
      97,
      108,
      108,
      101,
      100,
      32,
      116,
      104,
      101,
      99,
      111,
      109,
      112,
      117,
      116,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      105,
      110,
      100,
      105,
      99,
      97,
      116,
      101,
      32,
      116,
      104,
      97,
      116,
      114,
      101,
      115,
      116,
      114,
      105,
      99,
      116,
      101,
      100,
      32,
      116,
      111,
      9,
      60,
      109,
      101,
      116,
      97,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      97,
      114,
      101,
      32,
      116,
      121,
      112,
      105,
      99,
      97,
      108,
      108,
      121,
      99,
      111,
      110,
      102,
      108,
      105,
      99,
      116,
      32,
      119,
      105,
      116,
      104,
      72,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      116,
      104,
      101,
      32,
      65,
      110,
      32,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      32,
      111,
      102,
      99,
      111,
      109,
      112,
      97,
      114,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      113,
      117,
      97,
      110,
      116,
      105,
      116,
      105,
      101,
      115,
      32,
      111,
      102,
      114,
      97,
      116,
      104,
      101,
      114,
      32,
      116,
      104,
      97,
      110,
      32,
      97,
      99,
      111,
      110,
      115,
      116,
      101,
      108,
      108,
      97,
      116,
      105,
      111,
      110,
      110,
      101,
      99,
      101,
      115,
      115,
      97,
      114,
      121,
      32,
      102,
      111,
      114,
      114,
      101,
      112,
      111,
      114,
      116,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      115,
      112,
      101,
      99,
      105,
      102,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      112,
      111,
      108,
      105,
      116,
      105,
      99,
      97,
      108,
      32,
      97,
      110,
      100,
      38,
      110,
      98,
      115,
      112,
      59,
      38,
      110,
      98,
      115,
      112,
      59,
      60,
      114,
      101,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      115,
      32,
      116,
      111,
      116,
      104,
      101,
      32,
      115,
      97,
      109,
      101,
      32,
      121,
      101,
      97,
      114,
      71,
      111,
      118,
      101,
      114,
      110,
      109,
      101,
      110,
      116,
      32,
      111,
      102,
      103,
      101,
      110,
      101,
      114,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      104,
      97,
      118,
      101,
      32,
      110,
      111,
      116,
      32,
      98,
      101,
      101,
      110,
      115,
      101,
      118,
      101,
      114,
      97,
      108,
      32,
      121,
      101,
      97,
      114,
      115,
      99,
      111,
      109,
      109,
      105,
      116,
      109,
      101,
      110,
      116,
      32,
      116,
      111,
      9,
      9,
      60,
      117,
      108,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      118,
      105,
      115,
      117,
      97,
      108,
      105,
      122,
      97,
      116,
      105,
      111,
      110,
      49,
      57,
      116,
      104,
      32,
      99,
      101,
      110,
      116,
      117,
      114,
      121,
      44,
      112,
      114,
      97,
      99,
      116,
      105,
      116,
      105,
      111,
      110,
      101,
      114,
      115,
      116,
      104,
      97,
      116,
      32,
      104,
      101,
      32,
      119,
      111,
      117,
      108,
      100,
      97,
      110,
      100,
      32,
      99,
      111,
      110,
      116,
      105,
      110,
      117,
      101,
      100,
      111,
      99,
      99,
      117,
      112,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      105,
      115,
      32,
      100,
      101,
      102,
      105,
      110,
      101,
      100,
      32,
      97,
      115,
      99,
      101,
      110,
      116,
      114,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      97,
      109,
      111,
      117,
      110,
      116,
      32,
      111,
      102,
      62,
      60,
      100,
      105,
      118,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      101,
      113,
      117,
      105,
      118,
      97,
      108,
      101,
      110,
      116,
      32,
      111,
      102,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      105,
      97,
      116,
      101,
      98,
      114,
      111,
      117,
      103,
      104,
      116,
      32,
      97,
      98,
      111,
      117,
      116,
      109,
      97,
      114,
      103,
      105,
      110,
      45,
      108,
      101,
      102,
      116,
      58,
      32,
      97,
      117,
      116,
      111,
      109,
      97,
      116,
      105,
      99,
      97,
      108,
      108,
      121,
      116,
      104,
      111,
      117,
      103,
      104,
      116,
      32,
      111,
      102,
      32,
      97,
      115,
      83,
      111,
      109,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      115,
      101,
      10,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      105,
      110,
      112,
      117,
      116,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      114,
      101,
      112,
      108,
      97,
      99,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      105,
      115,
      32,
      111,
      110,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      101,
      100,
      117,
      99,
      97,
      116,
      105,
      111,
      110,
      32,
      97,
      110,
      100,
      105,
      110,
      102,
      108,
      117,
      101,
      110,
      99,
      101,
      100,
      32,
      98,
      121,
      114,
      101,
      112,
      117,
      116,
      97,
      116,
      105,
      111,
      110,
      32,
      97,
      115,
      10,
      60,
      109,
      101,
      116,
      97,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      97,
      99,
      99,
      111,
      109,
      109,
      111,
      100,
      97,
      116,
      105,
      111,
      110,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      108,
      97,
      114,
      103,
      101,
      32,
      112,
      97,
      114,
      116,
      32,
      111,
      102,
      73,
      110,
      115,
      116,
      105,
      116,
      117,
      116,
      101,
      32,
      102,
      111,
      114,
      116,
      104,
      101,
      32,
      115,
      111,
      45,
      99,
      97,
      108,
      108,
      101,
      100,
      32,
      97,
      103,
      97,
      105,
      110,
      115,
      116,
      32,
      116,
      104,
      101,
      32,
      73,
      110,
      32,
      116,
      104,
      105,
      115,
      32,
      99,
      97,
      115,
      101,
      44,
      119,
      97,
      115,
      32,
      97,
      112,
      112,
      111,
      105,
      110,
      116,
      101,
      100,
      99,
      108,
      97,
      105,
      109,
      101,
      100,
      32,
      116,
      111,
      32,
      98,
      101,
      72,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      116,
      104,
      105,
      115,
      68,
      101,
      112,
      97,
      114,
      116,
      109,
      101,
      110,
      116,
      32,
      111,
      102,
      116,
      104,
      101,
      32,
      114,
      101,
      109,
      97,
      105,
      110,
      105,
      110,
      103,
      101,
      102,
      102,
      101,
      99,
      116,
      32,
      111,
      110,
      32,
      116,
      104,
      101,
      112,
      97,
      114,
      116,
      105,
      99,
      117,
      108,
      97,
      114,
      108,
      121,
      32,
      100,
      101,
      97,
      108,
      32,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      10,
      60,
      100,
      105,
      118,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      97,
      108,
      109,
      111,
      115,
      116,
      32,
      97,
      108,
      119,
      97,
      121,
      115,
      97,
      114,
      101,
      32,
      99,
      117,
      114,
      114,
      101,
      110,
      116,
      108,
      121,
      101,
      120,
      112,
      114,
      101,
      115,
      115,
      105,
      111,
      110,
      32,
      111,
      102,
      112,
      104,
      105,
      108,
      111,
      115,
      111,
      112,
      104,
      121,
      32,
      111,
      102,
      102,
      111,
      114,
      32,
      109,
      111,
      114,
      101,
      32,
      116,
      104,
      97,
      110,
      99,
      105,
      118,
      105,
      108,
      105,
      122,
      97,
      116,
      105,
      111,
      110,
      115,
      111,
      110,
      32,
      116,
      104,
      101,
      32,
      105,
      115,
      108,
      97,
      110,
      100,
      115,
      101,
      108,
      101,
      99,
      116,
      101,
      100,
      73,
      110,
      100,
      101,
      120,
      99,
      97,
      110,
      32,
      114,
      101,
      115,
      117,
      108,
      116,
      32,
      105,
      110,
      34,
      32,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      34,
      32,
      47,
      62,
      116,
      104,
      101,
      32,
      115,
      116,
      114,
      117,
      99,
      116,
      117,
      114,
      101,
      32,
      47,
      62,
      60,
      47,
      97,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      77,
      97,
      110,
      121,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      115,
      101,
      99,
      97,
      117,
      115,
      101,
      100,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      85,
      110,
      105,
      116,
      101,
      100,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      109,
      99,
      97,
      110,
      32,
      98,
      101,
      32,
      116,
      114,
      97,
      99,
      101,
      100,
      105,
      115,
      32,
      114,
      101,
      108,
      97,
      116,
      101,
      100,
      32,
      116,
      111,
      98,
      101,
      99,
      97,
      109,
      101,
      32,
      111,
      110,
      101,
      32,
      111,
      102,
      105,
      115,
      32,
      102,
      114,
      101,
      113,
      117,
      101,
      110,
      116,
      108,
      121,
      108,
      105,
      118,
      105,
      110,
      103,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      111,
      114,
      101,
      116,
      105,
      99,
      97,
      108,
      108,
      121,
      70,
      111,
      108,
      108,
      111,
      119,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      82,
      101,
      118,
      111,
      108,
      117,
      116,
      105,
      111,
      110,
      97,
      114,
      121,
      103,
      111,
      118,
      101,
      114,
      110,
      109,
      101,
      110,
      116,
      32,
      105,
      110,
      105,
      115,
      32,
      100,
      101,
      116,
      101,
      114,
      109,
      105,
      110,
      101,
      100,
      116,
      104,
      101,
      32,
      112,
      111,
      108,
      105,
      116,
      105,
      99,
      97,
      108,
      105,
      110,
      116,
      114,
      111,
      100,
      117,
      99,
      101,
      100,
      32,
      105,
      110,
      115,
      117,
      102,
      102,
      105,
      99,
      105,
      101,
      110,
      116,
      32,
      116,
      111,
      100,
      101,
      115,
      99,
      114,
      105,
      112,
      116,
      105,
      111,
      110,
      34,
      62,
      115,
      104,
      111,
      114,
      116,
      32,
      115,
      116,
      111,
      114,
      105,
      101,
      115,
      115,
      101,
      112,
      97,
      114,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      97,
      115,
      32,
      116,
      111,
      32,
      119,
      104,
      101,
      116,
      104,
      101,
      114,
      107,
      110,
      111,
      119,
      110,
      32,
      102,
      111,
      114,
      32,
      105,
      116,
      115,
      119,
      97,
      115,
      32,
      105,
      110,
      105,
      116,
      105,
      97,
      108,
      108,
      121,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      98,
      108,
      111,
      99,
      107,
      105,
      115,
      32,
      97,
      110,
      32,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      116,
      104,
      101,
      32,
      112,
      114,
      105,
      110,
      99,
      105,
      112,
      97,
      108,
      99,
      111,
      110,
      115,
      105,
      115,
      116,
      115,
      32,
      111,
      102,
      32,
      97,
      114,
      101,
      99,
      111,
      103,
      110,
      105,
      122,
      101,
      100,
      32,
      97,
      115,
      47,
      98,
      111,
      100,
      121,
      62,
      60,
      47,
      104,
      116,
      109,
      108,
      62,
      97,
      32,
      115,
      117,
      98,
      115,
      116,
      97,
      110,
      116,
      105,
      97,
      108,
      114,
      101,
      99,
      111,
      110,
      115,
      116,
      114,
      117,
      99,
      116,
      101,
      100,
      104,
      101,
      97,
      100,
      32,
      111,
      102,
      32,
      115,
      116,
      97,
      116,
      101,
      114,
      101,
      115,
      105,
      115,
      116,
      97,
      110,
      99,
      101,
      32,
      116,
      111,
      117,
      110,
      100,
      101,
      114,
      103,
      114,
      97,
      100,
      117,
      97,
      116,
      101,
      84,
      104,
      101,
      114,
      101,
      32,
      97,
      114,
      101,
      32,
      116,
      119,
      111,
      103,
      114,
      97,
      118,
      105,
      116,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      97,
      114,
      101,
      32,
      100,
      101,
      115,
      99,
      114,
      105,
      98,
      101,
      100,
      105,
      110,
      116,
      101,
      110,
      116,
      105,
      111,
      110,
      97,
      108,
      108,
      121,
      115,
      101,
      114,
      118,
      101,
      100,
      32,
      97,
      115,
      32,
      116,
      104,
      101,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      104,
      101,
      97,
      100,
      101,
      114,
      111,
      112,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      32,
      116,
      111,
      102,
      117,
      110,
      100,
      97,
      109,
      101,
      110,
      116,
      97,
      108,
      108,
      121,
      100,
      111,
      109,
      105,
      110,
      97,
      116,
      101,
      100,
      32,
      116,
      104,
      101,
      97,
      110,
      100,
      32,
      116,
      104,
      101,
      32,
      111,
      116,
      104,
      101,
      114,
      97,
      108,
      108,
      105,
      97,
      110,
      99,
      101,
      32,
      119,
      105,
      116,
      104,
      119,
      97,
      115,
      32,
      102,
      111,
      114,
      99,
      101,
      100,
      32,
      116,
      111,
      114,
      101,
      115,
      112,
      101,
      99,
      116,
      105,
      118,
      101,
      108,
      121,
      44,
      97,
      110,
      100,
      32,
      112,
      111,
      108,
      105,
      116,
      105,
      99,
      97,
      108,
      105,
      110,
      32,
      115,
      117,
      112,
      112,
      111,
      114,
      116,
      32,
      111,
      102,
      112,
      101,
      111,
      112,
      108,
      101,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      50,
      48,
      116,
      104,
      32,
      99,
      101,
      110,
      116,
      117,
      114,
      121,
      46,
      97,
      110,
      100,
      32,
      112,
      117,
      98,
      108,
      105,
      115,
      104,
      101,
      100,
      108,
      111,
      97,
      100,
      67,
      104,
      97,
      114,
      116,
      98,
      101,
      97,
      116,
      116,
      111,
      32,
      117,
      110,
      100,
      101,
      114,
      115,
      116,
      97,
      110,
      100,
      109,
      101,
      109,
      98,
      101,
      114,
      32,
      115,
      116,
      97,
      116,
      101,
      115,
      101,
      110,
      118,
      105,
      114,
      111,
      110,
      109,
      101,
      110,
      116,
      97,
      108,
      102,
      105,
      114,
      115,
      116,
      32,
      104,
      97,
      108,
      102,
      32,
      111,
      102,
      99,
      111,
      117,
      110,
      116,
      114,
      105,
      101,
      115,
      32,
      97,
      110,
      100,
      97,
      114,
      99,
      104,
      105,
      116,
      101,
      99,
      116,
      117,
      114,
      97,
      108,
      98,
      101,
      32,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      101,
      100,
      99,
      104,
      97,
      114,
      97,
      99,
      116,
      101,
      114,
      105,
      122,
      101,
      100,
      99,
      108,
      101,
      97,
      114,
      73,
      110,
      116,
      101,
      114,
      118,
      97,
      108,
      97,
      117,
      116,
      104,
      111,
      114,
      105,
      116,
      97,
      116,
      105,
      118,
      101,
      70,
      101,
      100,
      101,
      114,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      119,
      97,
      115,
      32,
      115,
      117,
      99,
      99,
      101,
      101,
      100,
      101,
      100,
      97,
      110,
      100,
      32,
      116,
      104,
      101,
      114,
      101,
      32,
      97,
      114,
      101,
      97,
      32,
      99,
      111,
      110,
      115,
      101,
      113,
      117,
      101,
      110,
      99,
      101,
      116,
      104,
      101,
      32,
      80,
      114,
      101,
      115,
      105,
      100,
      101,
      110,
      116,
      97,
      108,
      115,
      111,
      32,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      100,
      102,
      114,
      101,
      101,
      32,
      115,
      111,
      102,
      116,
      119,
      97,
      114,
      101,
      115,
      117,
      99,
      99,
      101,
      115,
      115,
      105,
      111,
      110,
      32,
      111,
      102,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      101,
      100,
      32,
      116,
      104,
      101,
      119,
      97,
      115,
      32,
      100,
      101,
      115,
      116,
      114,
      111,
      121,
      101,
      100,
      97,
      119,
      97,
      121,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      59,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      60,
      97,
      108,
      116,
      104,
      111,
      117,
      103,
      104,
      32,
      116,
      104,
      101,
      121,
      102,
      111,
      108,
      108,
      111,
      119,
      101,
      100,
      32,
      98,
      121,
      32,
      97,
      109,
      111,
      114,
      101,
      32,
      112,
      111,
      119,
      101,
      114,
      102,
      117,
      108,
      114,
      101,
      115,
      117,
      108,
      116,
      101,
      100,
      32,
      105,
      110,
      32,
      97,
      85,
      110,
      105,
      118,
      101,
      114,
      115,
      105,
      116,
      121,
      32,
      111,
      102,
      72,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      109,
      97,
      110,
      121,
      116,
      104,
      101,
      32,
      112,
      114,
      101,
      115,
      105,
      100,
      101,
      110,
      116,
      72,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      115,
      111,
      109,
      101,
      105,
      115,
      32,
      116,
      104,
      111,
      117,
      103,
      104,
      116,
      32,
      116,
      111,
      117,
      110,
      116,
      105,
      108,
      32,
      116,
      104,
      101,
      32,
      101,
      110,
      100,
      119,
      97,
      115,
      32,
      97,
      110,
      110,
      111,
      117,
      110,
      99,
      101,
      100,
      97,
      114,
      101,
      32,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      97,
      108,
      115,
      111,
      32,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      115,
      62,
      60,
      105,
      110,
      112,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      116,
      104,
      101,
      32,
      99,
      101,
      110,
      116,
      101,
      114,
      32,
      111,
      102,
      32,
      68,
      79,
      32,
      78,
      79,
      84,
      32,
      65,
      76,
      84,
      69,
      82,
      117,
      115,
      101,
      100,
      32,
      116,
      111,
      32,
      114,
      101,
      102,
      101,
      114,
      116,
      104,
      101,
      109,
      101,
      115,
      47,
      63,
      115,
      111,
      114,
      116,
      61,
      116,
      104,
      97,
      116,
      32,
      104,
      97,
      100,
      32,
      98,
      101,
      101,
      110,
      116,
      104,
      101,
      32,
      98,
      97,
      115,
      105,
      115,
      32,
      102,
      111,
      114,
      104,
      97,
      115,
      32,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      101,
      100,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      115,
      117,
      109,
      109,
      101,
      114,
      99,
      111,
      109,
      112,
      97,
      114,
      97,
      116,
      105,
      118,
      101,
      108,
      121,
      100,
      101,
      115,
      99,
      114,
      105,
      98,
      101,
      100,
      32,
      116,
      104,
      101,
      115,
      117,
      99,
      104,
      32,
      97,
      115,
      32,
      116,
      104,
      111,
      115,
      101,
      116,
      104,
      101,
      32,
      114,
      101,
      115,
      117,
      108,
      116,
      105,
      110,
      103,
      105,
      115,
      32,
      105,
      109,
      112,
      111,
      115,
      115,
      105,
      98,
      108,
      101,
      118,
      97,
      114,
      105,
      111,
      117,
      115,
      32,
      111,
      116,
      104,
      101,
      114,
      83,
      111,
      117,
      116,
      104,
      32,
      65,
      102,
      114,
      105,
      99,
      97,
      110,
      104,
      97,
      118,
      101,
      32,
      116,
      104,
      101,
      32,
      115,
      97,
      109,
      101,
      101,
      102,
      102,
      101,
      99,
      116,
      105,
      118,
      101,
      110,
      101,
      115,
      115,
      105,
      110,
      32,
      119,
      104,
      105,
      99,
      104,
      32,
      99,
      97,
      115,
      101,
      59,
      32,
      116,
      101,
      120,
      116,
      45,
      97,
      108,
      105,
      103,
      110,
      58,
      115,
      116,
      114,
      117,
      99,
      116,
      117,
      114,
      101,
      32,
      97,
      110,
      100,
      59,
      32,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      58,
      114,
      101,
      103,
      97,
      114,
      100,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      115,
      117,
      112,
      112,
      111,
      114,
      116,
      101,
      100,
      32,
      116,
      104,
      101,
      105,
      115,
      32,
      97,
      108,
      115,
      111,
      32,
      107,
      110,
      111,
      119,
      110,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      109,
      97,
      114,
      103,
      105,
      110,
      105,
      110,
      99,
      108,
      117,
      100,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      98,
      97,
      104,
      97,
      115,
      97,
      32,
      77,
      101,
      108,
      97,
      121,
      117,
      110,
      111,
      114,
      115,
      107,
      32,
      98,
      111,
      107,
      109,
      195,
      165,
      108,
      110,
      111,
      114,
      115,
      107,
      32,
      110,
      121,
      110,
      111,
      114,
      115,
      107,
      115,
      108,
      111,
      118,
      101,
      110,
      197,
      161,
      196,
      141,
      105,
      110,
      97,
      105,
      110,
      116,
      101,
      114,
      110,
      97,
      99,
      105,
      111,
      110,
      97,
      108,
      99,
      97,
      108,
      105,
      102,
      105,
      99,
      97,
      99,
      105,
      195,
      179,
      110,
      99,
      111,
      109,
      117,
      110,
      105,
      99,
      97,
      99,
      105,
      195,
      179,
      110,
      99,
      111,
      110,
      115,
      116,
      114,
      117,
      99,
      99,
      105,
      195,
      179,
      110,
      34,
      62,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      100,
      105,
      115,
      97,
      109,
      98,
      105,
      103,
      117,
      97,
      116,
      105,
      111,
      110,
      68,
      111,
      109,
      97,
      105,
      110,
      78,
      97,
      109,
      101,
      39,
      44,
      32,
      39,
      97,
      100,
      109,
      105,
      110,
      105,
      115,
      116,
      114,
      97,
      116,
      105,
      111,
      110,
      115,
      105,
      109,
      117,
      108,
      116,
      97,
      110,
      101,
      111,
      117,
      115,
      108,
      121,
      116,
      114,
      97,
      110,
      115,
      112,
      111,
      114,
      116,
      97,
      116,
      105,
      111,
      110,
      73,
      110,
      116,
      101,
      114,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      32,
      109,
      97,
      114,
      103,
      105,
      110,
      45,
      98,
      111,
      116,
      116,
      111,
      109,
      58,
      114,
      101,
      115,
      112,
      111,
      110,
      115,
      105,
      98,
      105,
      108,
      105,
      116,
      121,
      60,
      33,
      91,
      101,
      110,
      100,
      105,
      102,
      93,
      45,
      45,
      62,
      10,
      60,
      47,
      62,
      60,
      109,
      101,
      116,
      97,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      105,
      109,
      112,
      108,
      101,
      109,
      101,
      110,
      116,
      97,
      116,
      105,
      111,
      110,
      105,
      110,
      102,
      114,
      97,
      115,
      116,
      114,
      117,
      99,
      116,
      117,
      114,
      101,
      114,
      101,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      97,
      116,
      105,
      111,
      110,
      98,
      111,
      114,
      100,
      101,
      114,
      45,
      98,
      111,
      116,
      116,
      111,
      109,
      58,
      60,
      47,
      104,
      101,
      97,
      100,
      62,
      10,
      60,
      98,
      111,
      100,
      121,
      62,
      61,
      104,
      116,
      116,
      112,
      37,
      51,
      65,
      37,
      50,
      70,
      37,
      50,
      70,
      60,
      102,
      111,
      114,
      109,
      32,
      109,
      101,
      116,
      104,
      111,
      100,
      61,
      34,
      109,
      101,
      116,
      104,
      111,
      100,
      61,
      34,
      112,
      111,
      115,
      116,
      34,
      32,
      47,
      102,
      97,
      118,
      105,
      99,
      111,
      110,
      46,
      105,
      99,
      111,
      34,
      32,
      125,
      41,
      59,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      46,
      115,
      101,
      116,
      65,
      116,
      116,
      114,
      105,
      98,
      117,
      116,
      101,
      40,
      65,
      100,
      109,
      105,
      110,
      105,
      115,
      116,
      114,
      97,
      116,
      105,
      111,
      110,
      61,
      32,
      110,
      101,
      119,
      32,
      65,
      114,
      114,
      97,
      121,
      40,
      41,
      59,
      60,
      33,
      91,
      101,
      110,
      100,
      105,
      102,
      93,
      45,
      45,
      62,
      13,
      10,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      98,
      108,
      111,
      99,
      107,
      59,
      85,
      110,
      102,
      111,
      114,
      116,
      117,
      110,
      97,
      116,
      101,
      108,
      121,
      44,
      34,
      62,
      38,
      110,
      98,
      115,
      112,
      59,
      60,
      47,
      100,
      105,
      118,
      62,
      47,
      102,
      97,
      118,
      105,
      99,
      111,
      110,
      46,
      105,
      99,
      111,
      34,
      62,
      61,
      39,
      115,
      116,
      121,
      108,
      101,
      115,
      104,
      101,
      101,
      116,
      39,
      32,
      105,
      100,
      101,
      110,
      116,
      105,
      102,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      44,
      32,
      102,
      111,
      114,
      32,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      44,
      60,
      108,
      105,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      47,
      97,
      110,
      32,
      97,
      108,
      116,
      101,
      114,
      110,
      97,
      116,
      105,
      118,
      101,
      97,
      115,
      32,
      97,
      32,
      114,
      101,
      115,
      117,
      108,
      116,
      32,
      111,
      102,
      112,
      116,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      116,
      121,
      112,
      101,
      61,
      34,
      115,
      117,
      98,
      109,
      105,
      116,
      34,
      32,
      10,
      40,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      32,
      123,
      114,
      101,
      99,
      111,
      109,
      109,
      101,
      110,
      100,
      97,
      116,
      105,
      111,
      110,
      102,
      111,
      114,
      109,
      32,
      97,
      99,
      116,
      105,
      111,
      110,
      61,
      34,
      47,
      116,
      114,
      97,
      110,
      115,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      114,
      101,
      99,
      111,
      110,
      115,
      116,
      114,
      117,
      99,
      116,
      105,
      111,
      110,
      46,
      115,
      116,
      121,
      108,
      101,
      46,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      32,
      65,
      99,
      99,
      111,
      114,
      100,
      105,
      110,
      103,
      32,
      116,
      111,
      32,
      104,
      105,
      100,
      100,
      101,
      110,
      34,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      97,
      108,
      111,
      110,
      103,
      32,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      98,
      111,
      100,
      121,
      46,
      97,
      112,
      112,
      114,
      111,
      120,
      105,
      109,
      97,
      116,
      101,
      108,
      121,
      32,
      67,
      111,
      109,
      109,
      117,
      110,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      115,
      112,
      111,
      115,
      116,
      34,
      32,
      97,
      99,
      116,
      105,
      111,
      110,
      61,
      34,
      109,
      101,
      97,
      110,
      105,
      110,
      103,
      32,
      38,
      113,
      117,
      111,
      116,
      59,
      45,
      45,
      60,
      33,
      91,
      101,
      110,
      100,
      105,
      102,
      93,
      45,
      45,
      62,
      80,
      114,
      105,
      109,
      101,
      32,
      77,
      105,
      110,
      105,
      115,
      116,
      101,
      114,
      99,
      104,
      97,
      114,
      97,
      99,
      116,
      101,
      114,
      105,
      115,
      116,
      105,
      99,
      60,
      47,
      97,
      62,
      32,
      60,
      97,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      116,
      104,
      101,
      32,
      104,
      105,
      115,
      116,
      111,
      114,
      121,
      32,
      111,
      102,
      32,
      111,
      110,
      109,
      111,
      117,
      115,
      101,
      111,
      118,
      101,
      114,
      61,
      34,
      116,
      104,
      101,
      32,
      103,
      111,
      118,
      101,
      114,
      110,
      109,
      101,
      110,
      116,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      115,
      58,
      47,
      47,
      119,
      97,
      115,
      32,
      111,
      114,
      105,
      103,
      105,
      110,
      97,
      108,
      108,
      121,
      119,
      97,
      115,
      32,
      105,
      110,
      116,
      114,
      111,
      100,
      117,
      99,
      101,
      100,
      99,
      108,
      97,
      115,
      115,
      105,
      102,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      114,
      101,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      97,
      116,
      105,
      118,
      101,
      97,
      114,
      101,
      32,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      101,
      100,
      60,
      33,
      91,
      101,
      110,
      100,
      105,
      102,
      93,
      45,
      45,
      62,
      10,
      10,
      100,
      101,
      112,
      101,
      110,
      100,
      115,
      32,
      111,
      110,
      32,
      116,
      104,
      101,
      85,
      110,
      105,
      118,
      101,
      114,
      115,
      105,
      116,
      121,
      32,
      111,
      102,
      32,
      105,
      110,
      32,
      99,
      111,
      110,
      116,
      114,
      97,
      115,
      116,
      32,
      116,
      111,
      32,
      112,
      108,
      97,
      99,
      101,
      104,
      111,
      108,
      100,
      101,
      114,
      61,
      34,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      99,
      97,
      115,
      101,
      32,
      111,
      102,
      105,
      110,
      116,
      101,
      114,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      32,
      99,
      111,
      110,
      115,
      116,
      105,
      116,
      117,
      116,
      105,
      111,
      110,
      97,
      108,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      98,
      111,
      114,
      100,
      101,
      114,
      45,
      58,
      32,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      32,
      123,
      66,
      101,
      99,
      97,
      117,
      115,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      45,
      115,
      116,
      114,
      105,
      99,
      116,
      46,
      100,
      116,
      100,
      34,
      62,
      10,
      60,
      116,
      97,
      98,
      108,
      101,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      97,
      99,
      99,
      111,
      109,
      112,
      97,
      110,
      105,
      101,
      100,
      32,
      98,
      121,
      97,
      99,
      99,
      111,
      117,
      110,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      115,
      114,
      99,
      61,
      34,
      47,
      110,
      97,
      116,
      117,
      114,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      116,
      104,
      101,
      32,
      112,
      101,
      111,
      112,
      108,
      101,
      32,
      105,
      110,
      32,
      105,
      110,
      32,
      97,
      100,
      100,
      105,
      116,
      105,
      111,
      110,
      32,
      116,
      111,
      115,
      41,
      59,
      32,
      106,
      115,
      46,
      105,
      100,
      32,
      61,
      32,
      105,
      100,
      34,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      49,
      48,
      48,
      37,
      34,
      114,
      101,
      103,
      97,
      114,
      100,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      32,
      82,
      111,
      109,
      97,
      110,
      32,
      67,
      97,
      116,
      104,
      111,
      108,
      105,
      99,
      97,
      110,
      32,
      105,
      110,
      100,
      101,
      112,
      101,
      110,
      100,
      101,
      110,
      116,
      102,
      111,
      108,
      108,
      111,
      119,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      32,
      46,
      103,
      105,
      102,
      34,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      49,
      116,
      104,
      101,
      32,
      102,
      111,
      108,
      108,
      111,
      119,
      105,
      110,
      103,
      32,
      100,
      105,
      115,
      99,
      114,
      105,
      109,
      105,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      114,
      99,
      104,
      97,
      101,
      111,
      108,
      111,
      103,
      105,
      99,
      97,
      108,
      112,
      114,
      105,
      109,
      101,
      32,
      109,
      105,
      110,
      105,
      115,
      116,
      101,
      114,
      46,
      106,
      115,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      99,
      111,
      109,
      98,
      105,
      110,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      109,
      97,
      114,
      103,
      105,
      110,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      99,
      114,
      101,
      97,
      116,
      101,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      40,
      119,
      46,
      97,
      116,
      116,
      97,
      99,
      104,
      69,
      118,
      101,
      110,
      116,
      40,
      60,
      47,
      97,
      62,
      60,
      47,
      116,
      100,
      62,
      60,
      47,
      116,
      114,
      62,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      115,
      58,
      47,
      47,
      97,
      73,
      110,
      32,
      112,
      97,
      114,
      116,
      105,
      99,
      117,
      108,
      97,
      114,
      44,
      32,
      97,
      108,
      105,
      103,
      110,
      61,
      34,
      108,
      101,
      102,
      116,
      34,
      32,
      67,
      122,
      101,
      99,
      104,
      32,
      82,
      101,
      112,
      117,
      98,
      108,
      105,
      99,
      85,
      110,
      105,
      116,
      101,
      100,
      32,
      75,
      105,
      110,
      103,
      100,
      111,
      109,
      99,
      111,
      114,
      114,
      101,
      115,
      112,
      111,
      110,
      100,
      101,
      110,
      99,
      101,
      99,
      111,
      110,
      99,
      108,
      117,
      100,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      46,
      104,
      116,
      109,
      108,
      34,
      32,
      116,
      105,
      116,
      108,
      101,
      61,
      34,
      40,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      32,
      40,
      41,
      32,
      123,
      99,
      111,
      109,
      101,
      115,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      97,
      112,
      112,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      115,
      98,
      101,
      108,
      105,
      101,
      118,
      101,
      100,
      32,
      116,
      111,
      32,
      98,
      101,
      101,
      109,
      101,
      110,
      116,
      40,
      39,
      115,
      99,
      114,
      105,
      112,
      116,
      39,
      60,
      47,
      97,
      62,
      10,
      60,
      47,
      108,
      105,
      62,
      10,
      60,
      108,
      105,
      118,
      101,
      114,
      121,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      62,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      111,
      112,
      116,
      105,
      111,
      110,
      32,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      40,
      97,
      108,
      115,
      111,
      32,
      107,
      110,
      111,
      119,
      110,
      32,
      97,
      115,
      9,
      60,
      108,
      105,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      62,
      60,
      105,
      110,
      112,
      117,
      116,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      115,
      101,
      112,
      97,
      114,
      97,
      116,
      101,
      100,
      32,
      102,
      114,
      111,
      109,
      114,
      101,
      102,
      101,
      114,
      114,
      101,
      100,
      32,
      116,
      111,
      32,
      97,
      115,
      32,
      118,
      97,
      108,
      105,
      103,
      110,
      61,
      34,
      116,
      111,
      112,
      34,
      62,
      102,
      111,
      117,
      110,
      100,
      101,
      114,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      97,
      116,
      116,
      101,
      109,
      112,
      116,
      105,
      110,
      103,
      32,
      116,
      111,
      32,
      99,
      97,
      114,
      98,
      111,
      110,
      32,
      100,
      105,
      111,
      120,
      105,
      100,
      101,
      10,
      10,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      115,
      101,
      97,
      114,
      99,
      104,
      45,
      47,
      98,
      111,
      100,
      121,
      62,
      10,
      60,
      47,
      104,
      116,
      109,
      108,
      62,
      111,
      112,
      112,
      111,
      114,
      116,
      117,
      110,
      105,
      116,
      121,
      32,
      116,
      111,
      99,
      111,
      109,
      109,
      117,
      110,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      115,
      60,
      47,
      104,
      101,
      97,
      100,
      62,
      13,
      10,
      60,
      98,
      111,
      100,
      121,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      119,
      105,
      100,
      116,
      104,
      58,
      84,
      105,
      225,
      186,
      191,
      110,
      103,
      32,
      86,
      105,
      225,
      187,
      135,
      116,
      99,
      104,
      97,
      110,
      103,
      101,
      115,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      98,
      111,
      114,
      100,
      101,
      114,
      45,
      99,
      111,
      108,
      111,
      114,
      58,
      35,
      48,
      34,
      32,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      34,
      48,
      34,
      32,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      119,
      97,
      115,
      32,
      100,
      105,
      115,
      99,
      111,
      118,
      101,
      114,
      101,
      100,
      34,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      34,
      32,
      41,
      59,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      10,
      68,
      101,
      112,
      97,
      114,
      116,
      109,
      101,
      110,
      116,
      32,
      111,
      102,
      32,
      101,
      99,
      99,
      108,
      101,
      115,
      105,
      97,
      115,
      116,
      105,
      99,
      97,
      108,
      116,
      104,
      101,
      114,
      101,
      32,
      104,
      97,
      115,
      32,
      98,
      101,
      101,
      110,
      114,
      101,
      115,
      117,
      108,
      116,
      105,
      110,
      103,
      32,
      102,
      114,
      111,
      109,
      60,
      47,
      98,
      111,
      100,
      121,
      62,
      60,
      47,
      104,
      116,
      109,
      108,
      62,
      104,
      97,
      115,
      32,
      110,
      101,
      118,
      101,
      114,
      32,
      98,
      101,
      101,
      110,
      116,
      104,
      101,
      32,
      102,
      105,
      114,
      115,
      116,
      32,
      116,
      105,
      109,
      101,
      105,
      110,
      32,
      114,
      101,
      115,
      112,
      111,
      110,
      115,
      101,
      32,
      116,
      111,
      97,
      117,
      116,
      111,
      109,
      97,
      116,
      105,
      99,
      97,
      108,
      108,
      121,
      32,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      10,
      60,
      100,
      105,
      118,
      32,
      105,
      119,
      97,
      115,
      32,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      101,
      100,
      112,
      101,
      114,
      99,
      101,
      110,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      34,
      32,
      47,
      62,
      60,
      47,
      97,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      99,
      111,
      108,
      108,
      101,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      100,
      101,
      115,
      99,
      101,
      110,
      100,
      101,
      100,
      32,
      102,
      114,
      111,
      109,
      115,
      101,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      97,
      99,
      99,
      101,
      112,
      116,
      45,
      99,
      104,
      97,
      114,
      115,
      101,
      116,
      116,
      111,
      32,
      98,
      101,
      32,
      99,
      111,
      110,
      102,
      117,
      115,
      101,
      100,
      109,
      101,
      109,
      98,
      101,
      114,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      45,
      114,
      105,
      103,
      104,
      116,
      58,
      116,
      114,
      97,
      110,
      115,
      108,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      105,
      110,
      116,
      101,
      114,
      112,
      114,
      101,
      116,
      97,
      116,
      105,
      111,
      110,
      32,
      104,
      114,
      101,
      102,
      61,
      39,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      104,
      101,
      116,
      104,
      101,
      114,
      32,
      111,
      114,
      32,
      110,
      111,
      116,
      84,
      104,
      101,
      114,
      101,
      32,
      97,
      114,
      101,
      32,
      97,
      108,
      115,
      111,
      116,
      104,
      101,
      114,
      101,
      32,
      97,
      114,
      101,
      32,
      109,
      97,
      110,
      121,
      97,
      32,
      115,
      109,
      97,
      108,
      108,
      32,
      110,
      117,
      109,
      98,
      101,
      114,
      111,
      116,
      104,
      101,
      114,
      32,
      112,
      97,
      114,
      116,
      115,
      32,
      111,
      102,
      105,
      109,
      112,
      111,
      115,
      115,
      105,
      98,
      108,
      101,
      32,
      116,
      111,
      32,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      98,
      117,
      116,
      116,
      111,
      110,
      108,
      111,
      99,
      97,
      116,
      101,
      100,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      46,
      32,
      72,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      116,
      104,
      101,
      97,
      110,
      100,
      32,
      101,
      118,
      101,
      110,
      116,
      117,
      97,
      108,
      108,
      121,
      65,
      116,
      32,
      116,
      104,
      101,
      32,
      101,
      110,
      100,
      32,
      111,
      102,
      32,
      98,
      101,
      99,
      97,
      117,
      115,
      101,
      32,
      111,
      102,
      32,
      105,
      116,
      115,
      114,
      101,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      115,
      32,
      116,
      104,
      101,
      60,
      102,
      111,
      114,
      109,
      32,
      97,
      99,
      116,
      105,
      111,
      110,
      61,
      34,
      32,
      109,
      101,
      116,
      104,
      111,
      100,
      61,
      34,
      112,
      111,
      115,
      116,
      34,
      105,
      116,
      32,
      105,
      115,
      32,
      112,
      111,
      115,
      115,
      105,
      98,
      108,
      101,
      109,
      111,
      114,
      101,
      32,
      108,
      105,
      107,
      101,
      108,
      121,
      32,
      116,
      111,
      97,
      110,
      32,
      105,
      110,
      99,
      114,
      101,
      97,
      115,
      101,
      32,
      105,
      110,
      104,
      97,
      118,
      101,
      32,
      97,
      108,
      115,
      111,
      32,
      98,
      101,
      101,
      110,
      99,
      111,
      114,
      114,
      101,
      115,
      112,
      111,
      110,
      100,
      115,
      32,
      116,
      111,
      97,
      110,
      110,
      111,
      117,
      110,
      99,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      97,
      108,
      105,
      103,
      110,
      61,
      34,
      114,
      105,
      103,
      104,
      116,
      34,
      62,
      109,
      97,
      110,
      121,
      32,
      99,
      111,
      117,
      110,
      116,
      114,
      105,
      101,
      115,
      102,
      111,
      114,
      32,
      109,
      97,
      110,
      121,
      32,
      121,
      101,
      97,
      114,
      115,
      101,
      97,
      114,
      108,
      105,
      101,
      115,
      116,
      32,
      107,
      110,
      111,
      119,
      110,
      98,
      101,
      99,
      97,
      117,
      115,
      101,
      32,
      105,
      116,
      32,
      119,
      97,
      115,
      112,
      116,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      13,
      32,
      118,
      97,
      108,
      105,
      103,
      110,
      61,
      34,
      116,
      111,
      112,
      34,
      32,
      105,
      110,
      104,
      97,
      98,
      105,
      116,
      97,
      110,
      116,
      115,
      32,
      111,
      102,
      102,
      111,
      108,
      108,
      111,
      119,
      105,
      110,
      103,
      32,
      121,
      101,
      97,
      114,
      13,
      10,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      109,
      105,
      108,
      108,
      105,
      111,
      110,
      32,
      112,
      101,
      111,
      112,
      108,
      101,
      99,
      111,
      110,
      116,
      114,
      111,
      118,
      101,
      114,
      115,
      105,
      97,
      108,
      32,
      99,
      111,
      110,
      99,
      101,
      114,
      110,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      97,
      114,
      103,
      117,
      101,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      103,
      111,
      118,
      101,
      114,
      110,
      109,
      101,
      110,
      116,
      32,
      97,
      110,
      100,
      97,
      32,
      114,
      101,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      32,
      116,
      111,
      116,
      114,
      97,
      110,
      115,
      102,
      101,
      114,
      114,
      101,
      100,
      32,
      116,
      111,
      100,
      101,
      115,
      99,
      114,
      105,
      98,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      99,
      111,
      108,
      111,
      114,
      58,
      97,
      108,
      116,
      104,
      111,
      117,
      103,
      104,
      32,
      116,
      104,
      101,
      114,
      101,
      98,
      101,
      115,
      116,
      32,
      107,
      110,
      111,
      119,
      110,
      32,
      102,
      111,
      114,
      115,
      117,
      98,
      109,
      105,
      116,
      34,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      109,
      117,
      108,
      116,
      105,
      112,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      109,
      111,
      114,
      101,
      32,
      116,
      104,
      97,
      110,
      32,
      111,
      110,
      101,
      32,
      114,
      101,
      99,
      111,
      103,
      110,
      105,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      67,
      111,
      117,
      110,
      99,
      105,
      108,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      101,
      100,
      105,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      32,
      60,
      109,
      101,
      116,
      97,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      69,
      110,
      116,
      101,
      114,
      116,
      97,
      105,
      110,
      109,
      101,
      110,
      116,
      32,
      97,
      119,
      97,
      121,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      32,
      59,
      109,
      97,
      114,
      103,
      105,
      110,
      45,
      114,
      105,
      103,
      104,
      116,
      58,
      97,
      116,
      32,
      116,
      104,
      101,
      32,
      116,
      105,
      109,
      101,
      32,
      111,
      102,
      105,
      110,
      118,
      101,
      115,
      116,
      105,
      103,
      97,
      116,
      105,
      111,
      110,
      115,
      99,
      111,
      110,
      110,
      101,
      99,
      116,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      97,
      110,
      100,
      32,
      109,
      97,
      110,
      121,
      32,
      111,
      116,
      104,
      101,
      114,
      97,
      108,
      116,
      104,
      111,
      117,
      103,
      104,
      32,
      105,
      116,
      32,
      105,
      115,
      98,
      101,
      103,
      105,
      110,
      110,
      105,
      110,
      103,
      32,
      119,
      105,
      116,
      104,
      32,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      100,
      101,
      115,
      99,
      101,
      110,
      100,
      97,
      110,
      116,
      115,
      32,
      111,
      102,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      105,
      32,
      97,
      108,
      105,
      103,
      110,
      61,
      34,
      114,
      105,
      103,
      104,
      116,
      34,
      60,
      47,
      104,
      101,
      97,
      100,
      62,
      10,
      60,
      98,
      111,
      100,
      121,
      32,
      97,
      115,
      112,
      101,
      99,
      116,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      104,
      97,
      115,
      32,
      115,
      105,
      110,
      99,
      101,
      32,
      98,
      101,
      101,
      110,
      69,
      117,
      114,
      111,
      112,
      101,
      97,
      110,
      32,
      85,
      110,
      105,
      111,
      110,
      114,
      101,
      109,
      105,
      110,
      105,
      115,
      99,
      101,
      110,
      116,
      32,
      111,
      102,
      109,
      111,
      114,
      101,
      32,
      100,
      105,
      102,
      102,
      105,
      99,
      117,
      108,
      116,
      86,
      105,
      99,
      101,
      32,
      80,
      114,
      101,
      115,
      105,
      100,
      101,
      110,
      116,
      99,
      111,
      109,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      112,
      97,
      115,
      115,
      101,
      100,
      32,
      116,
      104,
      114,
      111,
      117,
      103,
      104,
      109,
      111,
      114,
      101,
      32,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      102,
      111,
      110,
      116,
      45,
      115,
      105,
      122,
      101,
      58,
      49,
      49,
      112,
      120,
      101,
      120,
      112,
      108,
      97,
      110,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      116,
      104,
      101,
      32,
      99,
      111,
      110,
      99,
      101,
      112,
      116,
      32,
      111,
      102,
      119,
      114,
      105,
      116,
      116,
      101,
      110,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      9,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      105,
      115,
      32,
      111,
      110,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      114,
      101,
      115,
      101,
      109,
      98,
      108,
      97,
      110,
      99,
      101,
      32,
      116,
      111,
      111,
      110,
      32,
      116,
      104,
      101,
      32,
      103,
      114,
      111,
      117,
      110,
      100,
      115,
      119,
      104,
      105,
      99,
      104,
      32,
      99,
      111,
      110,
      116,
      97,
      105,
      110,
      115,
      105,
      110,
      99,
      108,
      117,
      100,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      32,
      100,
      101,
      102,
      105,
      110,
      101,
      100,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      112,
      117,
      98,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      109,
      101,
      97,
      110,
      115,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      111,
      117,
      116,
      115,
      105,
      100,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      115,
      117,
      112,
      112,
      111,
      114,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      60,
      105,
      110,
      112,
      117,
      116,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      116,
      40,
      77,
      97,
      116,
      104,
      46,
      114,
      97,
      110,
      100,
      111,
      109,
      40,
      41,
      109,
      111,
      115,
      116,
      32,
      112,
      114,
      111,
      109,
      105,
      110,
      101,
      110,
      116,
      100,
      101,
      115,
      99,
      114,
      105,
      112,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      67,
      111,
      110,
      115,
      116,
      97,
      110,
      116,
      105,
      110,
      111,
      112,
      108,
      101,
      119,
      101,
      114,
      101,
      32,
      112,
      117,
      98,
      108,
      105,
      115,
      104,
      101,
      100,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      115,
      101,
      97,
      112,
      112,
      101,
      97,
      114,
      115,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      49,
      34,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      49,
      34,
      32,
      109,
      111,
      115,
      116,
      32,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      119,
      104,
      105,
      99,
      104,
      32,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      115,
      119,
      104,
      105,
      99,
      104,
      32,
      104,
      97,
      100,
      32,
      98,
      101,
      101,
      110,
      100,
      101,
      115,
      116,
      114,
      117,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      116,
      104,
      101,
      32,
      112,
      111,
      112,
      117,
      108,
      97,
      116,
      105,
      111,
      110,
      10,
      9,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      112,
      111,
      115,
      115,
      105,
      98,
      105,
      108,
      105,
      116,
      121,
      32,
      111,
      102,
      115,
      111,
      109,
      101,
      116,
      105,
      109,
      101,
      115,
      32,
      117,
      115,
      101,
      100,
      97,
      112,
      112,
      101,
      97,
      114,
      32,
      116,
      111,
      32,
      104,
      97,
      118,
      101,
      115,
      117,
      99,
      99,
      101,
      115,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      105,
      110,
      116,
      101,
      110,
      100,
      101,
      100,
      32,
      116,
      111,
      32,
      98,
      101,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      99,
      108,
      101,
      97,
      114,
      58,
      98,
      13,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      13,
      10,
      60,
      119,
      97,
      115,
      32,
      102,
      111,
      117,
      110,
      100,
      101,
      100,
      32,
      105,
      110,
      105,
      110,
      116,
      101,
      114,
      118,
      105,
      101,
      119,
      32,
      119,
      105,
      116,
      104,
      95,
      105,
      100,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      99,
      97,
      112,
      105,
      116,
      97,
      108,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      13,
      10,
      60,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      115,
      114,
      101,
      108,
      101,
      97,
      115,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      112,
      111,
      105,
      110,
      116,
      32,
      111,
      117,
      116,
      32,
      116,
      104,
      97,
      116,
      120,
      77,
      76,
      72,
      116,
      116,
      112,
      82,
      101,
      113,
      117,
      101,
      115,
      116,
      97,
      110,
      100,
      32,
      115,
      117,
      98,
      115,
      101,
      113,
      117,
      101,
      110,
      116,
      115,
      101,
      99,
      111,
      110,
      100,
      32,
      108,
      97,
      114,
      103,
      101,
      115,
      116,
      118,
      101,
      114,
      121,
      32,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      115,
      112,
      101,
      99,
      105,
      102,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      115,
      115,
      117,
      114,
      102,
      97,
      99,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      97,
      112,
      112,
      108,
      105,
      101,
      100,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      102,
      111,
      114,
      101,
      105,
      103,
      110,
      32,
      112,
      111,
      108,
      105,
      99,
      121,
      95,
      115,
      101,
      116,
      68,
      111,
      109,
      97,
      105,
      110,
      78,
      97,
      109,
      101,
      101,
      115,
      116,
      97,
      98,
      108,
      105,
      115,
      104,
      101,
      100,
      32,
      105,
      110,
      105,
      115,
      32,
      98,
      101,
      108,
      105,
      101,
      118,
      101,
      100,
      32,
      116,
      111,
      73,
      110,
      32,
      97,
      100,
      100,
      105,
      116,
      105,
      111,
      110,
      32,
      116,
      111,
      109,
      101,
      97,
      110,
      105,
      110,
      103,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      105,
      115,
      32,
      110,
      97,
      109,
      101,
      100,
      32,
      97,
      102,
      116,
      101,
      114,
      116,
      111,
      32,
      112,
      114,
      111,
      116,
      101,
      99,
      116,
      32,
      116,
      104,
      101,
      105,
      115,
      32,
      114,
      101,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      101,
      100,
      68,
      101,
      99,
      108,
      97,
      114,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      109,
      111,
      114,
      101,
      32,
      101,
      102,
      102,
      105,
      99,
      105,
      101,
      110,
      116,
      67,
      108,
      97,
      115,
      115,
      105,
      102,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      111,
      116,
      104,
      101,
      114,
      32,
      102,
      111,
      114,
      109,
      115,
      32,
      111,
      102,
      104,
      101,
      32,
      114,
      101,
      116,
      117,
      114,
      110,
      101,
      100,
      32,
      116,
      111,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      99,
      112,
      101,
      114,
      102,
      111,
      114,
      109,
      97,
      110,
      99,
      101,
      32,
      111,
      102,
      40,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      32,
      123,
      13,
      105,
      102,
      32,
      97,
      110,
      100,
      32,
      111,
      110,
      108,
      121,
      32,
      105,
      102,
      114,
      101,
      103,
      105,
      111,
      110,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      108,
      101,
      97,
      100,
      105,
      110,
      103,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      114,
      101,
      108,
      97,
      116,
      105,
      111,
      110,
      115,
      32,
      119,
      105,
      116,
      104,
      85,
      110,
      105,
      116,
      101,
      100,
      32,
      78,
      97,
      116,
      105,
      111,
      110,
      115,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      104,
      101,
      105,
      103,
      104,
      116,
      58,
      111,
      116,
      104,
      101,
      114,
      32,
      116,
      104,
      97,
      110,
      32,
      116,
      104,
      101,
      121,
      112,
      101,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      65,
      115,
      115,
      111,
      99,
      105,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      10,
      60,
      47,
      104,
      101,
      97,
      100,
      62,
      10,
      60,
      98,
      111,
      100,
      121,
      108,
      111,
      99,
      97,
      116,
      101,
      100,
      32,
      111,
      110,
      32,
      116,
      104,
      101,
      105,
      115,
      32,
      114,
      101,
      102,
      101,
      114,
      114,
      101,
      100,
      32,
      116,
      111,
      40,
      105,
      110,
      99,
      108,
      117,
      100,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      99,
      111,
      110,
      99,
      101,
      110,
      116,
      114,
      97,
      116,
      105,
      111,
      110,
      115,
      116,
      104,
      101,
      32,
      105,
      110,
      100,
      105,
      118,
      105,
      100,
      117,
      97,
      108,
      97,
      109,
      111,
      110,
      103,
      32,
      116,
      104,
      101,
      32,
      109,
      111,
      115,
      116,
      116,
      104,
      97,
      110,
      32,
      97,
      110,
      121,
      32,
      111,
      116,
      104,
      101,
      114,
      47,
      62,
      10,
      60,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      32,
      114,
      101,
      116,
      117,
      114,
      110,
      32,
      102,
      97,
      108,
      115,
      101,
      59,
      116,
      104,
      101,
      32,
      112,
      117,
      114,
      112,
      111,
      115,
      101,
      32,
      111,
      102,
      116,
      104,
      101,
      32,
      97,
      98,
      105,
      108,
      105,
      116,
      121,
      32,
      116,
      111,
      59,
      99,
      111,
      108,
      111,
      114,
      58,
      35,
      102,
      102,
      102,
      125,
      10,
      46,
      10,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      116,
      104,
      101,
      32,
      115,
      117,
      98,
      106,
      101,
      99,
      116,
      32,
      111,
      102,
      100,
      101,
      102,
      105,
      110,
      105,
      116,
      105,
      111,
      110,
      115,
      32,
      111,
      102,
      62,
      13,
      10,
      60,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      99,
      108,
      97,
      105,
      109,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      104,
      97,
      118,
      101,
      32,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      101,
      100,
      60,
      116,
      97,
      98,
      108,
      101,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      99,
      101,
      108,
      101,
      98,
      114,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      70,
      111,
      108,
      108,
      111,
      119,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      32,
      116,
      111,
      32,
      100,
      105,
      115,
      116,
      105,
      110,
      103,
      117,
      105,
      115,
      104,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      98,
      116,
      97,
      107,
      101,
      115,
      32,
      112,
      108,
      97,
      99,
      101,
      32,
      105,
      110,
      117,
      110,
      100,
      101,
      114,
      32,
      116,
      104,
      101,
      32,
      110,
      97,
      109,
      101,
      110,
      111,
      116,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      62,
      60,
      33,
      91,
      101,
      110,
      100,
      105,
      102,
      93,
      45,
      45,
      62,
      10,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      109,
      97,
      114,
      103,
      105,
      110,
      45,
      105,
      110,
      115,
      116,
      101,
      97,
      100,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      105,
      110,
      116,
      114,
      111,
      100,
      117,
      99,
      101,
      100,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      112,
      114,
      111,
      99,
      101,
      115,
      115,
      32,
      111,
      102,
      105,
      110,
      99,
      114,
      101,
      97,
      115,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      115,
      32,
      105,
      110,
      101,
      115,
      116,
      105,
      109,
      97,
      116,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      101,
      115,
      112,
      101,
      99,
      105,
      97,
      108,
      108,
      121,
      32,
      116,
      104,
      101,
      47,
      100,
      105,
      118,
      62,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      119,
      97,
      115,
      32,
      101,
      118,
      101,
      110,
      116,
      117,
      97,
      108,
      108,
      121,
      116,
      104,
      114,
      111,
      117,
      103,
      104,
      111,
      117,
      116,
      32,
      104,
      105,
      115,
      116,
      104,
      101,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      115,
      111,
      109,
      101,
      116,
      104,
      105,
      110,
      103,
      32,
      116,
      104,
      97,
      116,
      115,
      112,
      97,
      110,
      62,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      47,
      115,
      105,
      103,
      110,
      105,
      102,
      105,
      99,
      97,
      110,
      116,
      108,
      121,
      32,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      13,
      10,
      13,
      10,
      101,
      110,
      118,
      105,
      114,
      111,
      110,
      109,
      101,
      110,
      116,
      97,
      108,
      32,
      116,
      111,
      32,
      112,
      114,
      101,
      118,
      101,
      110,
      116,
      32,
      116,
      104,
      101,
      104,
      97,
      118,
      101,
      32,
      98,
      101,
      101,
      110,
      32,
      117,
      115,
      101,
      100,
      101,
      115,
      112,
      101,
      99,
      105,
      97,
      108,
      108,
      121,
      32,
      102,
      111,
      114,
      117,
      110,
      100,
      101,
      114,
      115,
      116,
      97,
      110,
      100,
      32,
      116,
      104,
      101,
      105,
      115,
      32,
      101,
      115,
      115,
      101,
      110,
      116,
      105,
      97,
      108,
      108,
      121,
      119,
      101,
      114,
      101,
      32,
      116,
      104,
      101,
      32,
      102,
      105,
      114,
      115,
      116,
      105,
      115,
      32,
      116,
      104,
      101,
      32,
      108,
      97,
      114,
      103,
      101,
      115,
      116,
      104,
      97,
      118,
      101,
      32,
      98,
      101,
      101,
      110,
      32,
      109,
      97,
      100,
      101,
      34,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      105,
      110,
      116,
      101,
      114,
      112,
      114,
      101,
      116,
      101,
      100,
      32,
      97,
      115,
      115,
      101,
      99,
      111,
      110,
      100,
      32,
      104,
      97,
      108,
      102,
      32,
      111,
      102,
      99,
      114,
      111,
      108,
      108,
      105,
      110,
      103,
      61,
      34,
      110,
      111,
      34,
      32,
      105,
      115,
      32,
      99,
      111,
      109,
      112,
      111,
      115,
      101,
      100,
      32,
      111,
      102,
      73,
      73,
      44,
      32,
      72,
      111,
      108,
      121,
      32,
      82,
      111,
      109,
      97,
      110,
      105,
      115,
      32,
      101,
      120,
      112,
      101,
      99,
      116,
      101,
      100,
      32,
      116,
      111,
      104,
      97,
      118,
      101,
      32,
      116,
      104,
      101,
      105,
      114,
      32,
      111,
      119,
      110,
      100,
      101,
      102,
      105,
      110,
      101,
      100,
      32,
      97,
      115,
      32,
      116,
      104,
      101,
      116,
      114,
      97,
      100,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      108,
      121,
      32,
      104,
      97,
      118,
      101,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      97,
      114,
      101,
      32,
      111,
      102,
      116,
      101,
      110,
      32,
      117,
      115,
      101,
      100,
      116,
      111,
      32,
      101,
      110,
      115,
      117,
      114,
      101,
      32,
      116,
      104,
      97,
      116,
      97,
      103,
      114,
      101,
      101,
      109,
      101,
      110,
      116,
      32,
      119,
      105,
      116,
      104,
      99,
      111,
      110,
      116,
      97,
      105,
      110,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      97,
      114,
      101,
      32,
      102,
      114,
      101,
      113,
      117,
      101,
      110,
      116,
      108,
      121,
      105,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      110,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      32,
      105,
      115,
      32,
      116,
      104,
      101,
      114,
      101,
      115,
      117,
      108,
      116,
      105,
      110,
      103,
      32,
      105,
      110,
      32,
      97,
      60,
      47,
      97,
      62,
      60,
      47,
      108,
      105,
      62,
      60,
      47,
      117,
      108,
      62,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      102,
      111,
      111,
      116,
      101,
      114,
      97,
      110,
      100,
      32,
      101,
      115,
      112,
      101,
      99,
      105,
      97,
      108,
      108,
      121,
      116,
      121,
      112,
      101,
      61,
      34,
      98,
      117,
      116,
      116,
      111,
      110,
      34,
      32,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      119,
      104,
      105,
      99,
      104,
      32,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      100,
      62,
      10,
      60,
      109,
      101,
      116,
      97,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      101,
      100,
      32,
      116,
      104,
      101,
      99,
      97,
      114,
      114,
      105,
      101,
      100,
      32,
      111,
      117,
      116,
      32,
      98,
      121,
      72,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      105,
      116,
      32,
      105,
      115,
      98,
      101,
      99,
      97,
      109,
      101,
      32,
      112,
      97,
      114,
      116,
      32,
      111,
      102,
      105,
      110,
      32,
      114,
      101,
      108,
      97,
      116,
      105,
      111,
      110,
      32,
      116,
      111,
      112,
      111,
      112,
      117,
      108,
      97,
      114,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      99,
      97,
      112,
      105,
      116,
      97,
      108,
      32,
      111,
      102,
      119,
      97,
      115,
      32,
      111,
      102,
      102,
      105,
      99,
      105,
      97,
      108,
      108,
      121,
      119,
      104,
      105,
      99,
      104,
      32,
      104,
      97,
      115,
      32,
      98,
      101,
      101,
      110,
      116,
      104,
      101,
      32,
      72,
      105,
      115,
      116,
      111,
      114,
      121,
      32,
      111,
      102,
      97,
      108,
      116,
      101,
      114,
      110,
      97,
      116,
      105,
      118,
      101,
      32,
      116,
      111,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      32,
      102,
      114,
      111,
      109,
      116,
      111,
      32,
      115,
      117,
      112,
      112,
      111,
      114,
      116,
      32,
      116,
      104,
      101,
      115,
      117,
      103,
      103,
      101,
      115,
      116,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      112,
      114,
      111,
      99,
      101,
      115,
      115,
      32,
      32,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      116,
      104,
      101,
      32,
      102,
      111,
      117,
      110,
      100,
      97,
      116,
      105,
      111,
      110,
      98,
      101,
      99,
      97,
      117,
      115,
      101,
      32,
      111,
      102,
      32,
      104,
      105,
      115,
      99,
      111,
      110,
      99,
      101,
      114,
      110,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      116,
      104,
      101,
      32,
      117,
      110,
      105,
      118,
      101,
      114,
      115,
      105,
      116,
      121,
      111,
      112,
      112,
      111,
      115,
      101,
      100,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      99,
      111,
      110,
      116,
      101,
      120,
      116,
      32,
      111,
      102,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      112,
      116,
      101,
      120,
      116,
      34,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      113,
      34,
      9,
      9,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      116,
      104,
      101,
      32,
      115,
      99,
      105,
      101,
      110,
      116,
      105,
      102,
      105,
      99,
      114,
      101,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      101,
      100,
      32,
      98,
      121,
      109,
      97,
      116,
      104,
      101,
      109,
      97,
      116,
      105,
      99,
      105,
      97,
      110,
      115,
      101,
      108,
      101,
      99,
      116,
      101,
      100,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      116,
      104,
      97,
      116,
      32,
      104,
      97,
      118,
      101,
      32,
      98,
      101,
      101,
      110,
      62,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      99,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      104,
      101,
      97,
      100,
      101,
      114,
      105,
      110,
      32,
      112,
      97,
      114,
      116,
      105,
      99,
      117,
      108,
      97,
      114,
      44,
      99,
      111,
      110,
      118,
      101,
      114,
      116,
      101,
      100,
      32,
      105,
      110,
      116,
      111,
      41,
      59,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      60,
      112,
      104,
      105,
      108,
      111,
      115,
      111,
      112,
      104,
      105,
      99,
      97,
      108,
      32,
      115,
      114,
      112,
      115,
      107,
      111,
      104,
      114,
      118,
      97,
      116,
      115,
      107,
      105,
      116,
      105,
      225,
      186,
      191,
      110,
      103,
      32,
      86,
      105,
      225,
      187,
      135,
      116,
      208,
      160,
      209,
      131,
      209,
      129,
      209,
      129,
      208,
      186,
      208,
      184,
      208,
      185,
      209,
      128,
      209,
      131,
      209,
      129,
      209,
      129,
      208,
      186,
      208,
      184,
      208,
      185,
      105,
      110,
      118,
      101,
      115,
      116,
      105,
      103,
      97,
      99,
      105,
      195,
      179,
      110,
      112,
      97,
      114,
      116,
      105,
      99,
      105,
      112,
      97,
      99,
      105,
      195,
      179,
      110,
      208,
      186,
      208,
      190,
      209,
      130,
      208,
      190,
      209,
      128,
      209,
      139,
      208,
      181,
      208,
      190,
      208,
      177,
      208,
      187,
      208,
      176,
      209,
      129,
      209,
      130,
      208,
      184,
      208,
      186,
      208,
      190,
      209,
      130,
      208,
      190,
      209,
      128,
      209,
      139,
      208,
      185,
      209,
      135,
      208,
      181,
      208,
      187,
      208,
      190,
      208,
      178,
      208,
      181,
      208,
      186,
      209,
      129,
      208,
      184,
      209,
      129,
      209,
      130,
      208,
      181,
      208,
      188,
      209,
      139,
      208,
      157,
      208,
      190,
      208,
      178,
      208,
      190,
      209,
      129,
      209,
      130,
      208,
      184,
      208,
      186,
      208,
      190,
      209,
      130,
      208,
      190,
      209,
      128,
      209,
      139,
      209,
      133,
      208,
      190,
      208,
      177,
      208,
      187,
      208,
      176,
      209,
      129,
      209,
      130,
      209,
      140,
      208,
      178,
      209,
      128,
      208,
      181,
      208,
      188,
      208,
      181,
      208,
      189,
      208,
      184,
      208,
      186,
      208,
      190,
      209,
      130,
      208,
      190,
      209,
      128,
      208,
      176,
      209,
      143,
      209,
      129,
      208,
      181,
      208,
      179,
      208,
      190,
      208,
      180,
      208,
      189,
      209,
      143,
      209,
      129,
      208,
      186,
      208,
      176,
      209,
      135,
      208,
      176,
      209,
      130,
      209,
      140,
      208,
      189,
      208,
      190,
      208,
      178,
      208,
      190,
      209,
      129,
      209,
      130,
      208,
      184,
      208,
      163,
      208,
      186,
      209,
      128,
      208,
      176,
      208,
      184,
      208,
      189,
      209,
      139,
      208,
      178,
      208,
      190,
      208,
      191,
      209,
      128,
      208,
      190,
      209,
      129,
      209,
      139,
      208,
      186,
      208,
      190,
      209,
      130,
      208,
      190,
      209,
      128,
      208,
      190,
      208,
      185,
      209,
      129,
      208,
      180,
      208,
      181,
      208,
      187,
      208,
      176,
      209,
      130,
      209,
      140,
      208,
      191,
      208,
      190,
      208,
      188,
      208,
      190,
      209,
      137,
      209,
      140,
      209,
      142,
      209,
      129,
      209,
      128,
      208,
      181,
      208,
      180,
      209,
      129,
      209,
      130,
      208,
      178,
      208,
      190,
      208,
      177,
      209,
      128,
      208,
      176,
      208,
      183,
      208,
      190,
      208,
      188,
      209,
      129,
      209,
      130,
      208,
      190,
      209,
      128,
      208,
      190,
      208,
      189,
      209,
      139,
      209,
      131,
      209,
      135,
      208,
      176,
      209,
      129,
      209,
      130,
      208,
      184,
      208,
      181,
      209,
      130,
      208,
      181,
      209,
      135,
      208,
      181,
      208,
      189,
      208,
      184,
      208,
      181,
      208,
      147,
      208,
      187,
      208,
      176,
      208,
      178,
      208,
      189,
      208,
      176,
      209,
      143,
      208,
      184,
      209,
      129,
      209,
      130,
      208,
      190,
      209,
      128,
      208,
      184,
      208,
      184,
      209,
      129,
      208,
      184,
      209,
      129,
      209,
      130,
      208,
      181,
      208,
      188,
      208,
      176,
      209,
      128,
      208,
      181,
      209,
      136,
      208,
      181,
      208,
      189,
      208,
      184,
      209,
      143,
      208,
      161,
      208,
      186,
      208,
      176,
      209,
      135,
      208,
      176,
      209,
      130,
      209,
      140,
      208,
      191,
      208,
      190,
      209,
      141,
      209,
      130,
      208,
      190,
      208,
      188,
      209,
      131,
      209,
      129,
      208,
      187,
      208,
      181,
      208,
      180,
      209,
      131,
      208,
      181,
      209,
      130,
      209,
      129,
      208,
      186,
      208,
      176,
      208,
      183,
      208,
      176,
      209,
      130,
      209,
      140,
      209,
      130,
      208,
      190,
      208,
      178,
      208,
      176,
      209,
      128,
      208,
      190,
      208,
      178,
      208,
      186,
      208,
      190,
      208,
      189,
      208,
      181,
      209,
      135,
      208,
      189,
      208,
      190,
      209,
      128,
      208,
      181,
      209,
      136,
      208,
      181,
      208,
      189,
      208,
      184,
      208,
      181,
      208,
      186,
      208,
      190,
      209,
      130,
      208,
      190,
      209,
      128,
      208,
      190,
      208,
      181,
      208,
      190,
      209,
      128,
      208,
      179,
      208,
      176,
      208,
      189,
      208,
      190,
      208,
      178,
      208,
      186,
      208,
      190,
      209,
      130,
      208,
      190,
      209,
      128,
      208,
      190,
      208,
      188,
      208,
      160,
      208,
      181,
      208,
      186,
      208,
      187,
      208,
      176,
      208,
      188,
      208,
      176,
      216,
      167,
      217,
      132,
      217,
      133,
      217,
      134,
      216,
      170,
      216,
      175,
      217,
      137,
      217,
      133,
      217,
      134,
      216,
      170,
      216,
      175,
      217,
      138,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      217,
      133,
      217,
      136,
      216,
      182,
      217,
      136,
      216,
      185,
      216,
      167,
      217,
      132,
      216,
      168,
      216,
      177,
      216,
      167,
      217,
      133,
      216,
      172,
      216,
      167,
      217,
      132,
      217,
      133,
      217,
      136,
      216,
      167,
      217,
      130,
      216,
      185,
      216,
      167,
      217,
      132,
      216,
      177,
      216,
      179,
      216,
      167,
      216,
      166,
      217,
      132,
      217,
      133,
      216,
      180,
      216,
      167,
      216,
      177,
      217,
      131,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      216,
      163,
      216,
      185,
      216,
      182,
      216,
      167,
      216,
      161,
      216,
      167,
      217,
      132,
      216,
      177,
      217,
      138,
      216,
      167,
      216,
      182,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      170,
      216,
      181,
      217,
      133,
      217,
      138,
      217,
      133,
      216,
      167,
      217,
      132,
      216,
      167,
      216,
      185,
      216,
      182,
      216,
      167,
      216,
      161,
      216,
      167,
      217,
      132,
      217,
      134,
      216,
      170,
      216,
      167,
      216,
      166,
      216,
      172,
      216,
      167,
      217,
      132,
      216,
      163,
      217,
      132,
      216,
      185,
      216,
      167,
      216,
      168,
      216,
      167,
      217,
      132,
      216,
      170,
      216,
      179,
      216,
      172,
      217,
      138,
      217,
      132,
      216,
      167,
      217,
      132,
      216,
      163,
      217,
      130,
      216,
      179,
      216,
      167,
      217,
      133,
      216,
      167,
      217,
      132,
      216,
      182,
      216,
      186,
      216,
      183,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      217,
      129,
      217,
      138,
      216,
      175,
      217,
      138,
      217,
      136,
      216,
      167,
      217,
      132,
      216,
      170,
      216,
      177,
      216,
      173,
      217,
      138,
      216,
      168,
      216,
      167,
      217,
      132,
      216,
      172,
      216,
      175,
      217,
      138,
      216,
      175,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      170,
      216,
      185,
      217,
      132,
      217,
      138,
      217,
      133,
      216,
      167,
      217,
      132,
      216,
      163,
      216,
      174,
      216,
      168,
      216,
      167,
      216,
      177,
      216,
      167,
      217,
      132,
      216,
      167,
      217,
      129,
      217,
      132,
      216,
      167,
      217,
      133,
      216,
      167,
      217,
      132,
      216,
      163,
      217,
      129,
      217,
      132,
      216,
      167,
      217,
      133,
      216,
      167,
      217,
      132,
      216,
      170,
      216,
      167,
      216,
      177,
      217,
      138,
      216,
      174,
      216,
      167,
      217,
      132,
      216,
      170,
      217,
      130,
      217,
      134,
      217,
      138,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      167,
      217,
      132,
      216,
      185,
      216,
      167,
      216,
      168,
      216,
      167,
      217,
      132,
      216,
      174,
      217,
      136,
      216,
      167,
      216,
      183,
      216,
      177,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      172,
      216,
      170,
      217,
      133,
      216,
      185,
      216,
      167,
      217,
      132,
      216,
      175,
      217,
      138,
      217,
      131,
      217,
      136,
      216,
      177,
      216,
      167,
      217,
      132,
      216,
      179,
      217,
      138,
      216,
      167,
      216,
      173,
      216,
      169,
      216,
      185,
      216,
      168,
      216,
      175,
      216,
      167,
      217,
      132,
      217,
      132,
      217,
      135,
      216,
      167,
      217,
      132,
      216,
      170,
      216,
      177,
      216,
      168,
      217,
      138,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      177,
      217,
      136,
      216,
      167,
      216,
      168,
      216,
      183,
      216,
      167,
      217,
      132,
      216,
      163,
      216,
      175,
      216,
      168,
      217,
      138,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      167,
      216,
      174,
      216,
      168,
      216,
      167,
      216,
      177,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      170,
      216,
      173,
      216,
      175,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      167,
      216,
      186,
      216,
      167,
      217,
      134,
      217,
      138,
      99,
      117,
      114,
      115,
      111,
      114,
      58,
      112,
      111,
      105,
      110,
      116,
      101,
      114,
      59,
      60,
      47,
      116,
      105,
      116,
      108,
      101,
      62,
      10,
      60,
      109,
      101,
      116,
      97,
      32,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      34,
      62,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      109,
      101,
      109,
      98,
      101,
      114,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      119,
      105,
      110,
      100,
      111,
      119,
      46,
      108,
      111,
      99,
      97,
      116,
      105,
      111,
      110,
      118,
      101,
      114,
      116,
      105,
      99,
      97,
      108,
      45,
      97,
      108,
      105,
      103,
      110,
      58,
      47,
      97,
      62,
      32,
      124,
      32,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      60,
      33,
      100,
      111,
      99,
      116,
      121,
      112,
      101,
      32,
      104,
      116,
      109,
      108,
      62,
      109,
      101,
      100,
      105,
      97,
      61,
      34,
      115,
      99,
      114,
      101,
      101,
      110,
      34,
      32,
      60,
      111,
      112,
      116,
      105,
      111,
      110,
      32,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      102,
      97,
      118,
      105,
      99,
      111,
      110,
      46,
      105,
      99,
      111,
      34,
      32,
      47,
      62,
      10,
      9,
      9,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      99,
      104,
      97,
      114,
      97,
      99,
      116,
      101,
      114,
      105,
      115,
      116,
      105,
      99,
      115,
      34,
      32,
      109,
      101,
      116,
      104,
      111,
      100,
      61,
      34,
      103,
      101,
      116,
      34,
      32,
      47,
      98,
      111,
      100,
      121,
      62,
      10,
      60,
      47,
      104,
      116,
      109,
      108,
      62,
      10,
      115,
      104,
      111,
      114,
      116,
      99,
      117,
      116,
      32,
      105,
      99,
      111,
      110,
      34,
      32,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      119,
      114,
      105,
      116,
      101,
      40,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      45,
      98,
      111,
      116,
      116,
      111,
      109,
      58,
      114,
      101,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      97,
      116,
      105,
      118,
      101,
      115,
      115,
      117,
      98,
      109,
      105,
      116,
      34,
      32,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      97,
      108,
      105,
      103,
      110,
      61,
      34,
      99,
      101,
      110,
      116,
      101,
      114,
      34,
      32,
      116,
      104,
      114,
      111,
      117,
      103,
      104,
      111,
      117,
      116,
      32,
      116,
      104,
      101,
      32,
      115,
      99,
      105,
      101,
      110,
      99,
      101,
      32,
      102,
      105,
      99,
      116,
      105,
      111,
      110,
      10,
      32,
      32,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      115,
      117,
      98,
      109,
      105,
      116,
      34,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      111,
      110,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      109,
      111,
      115,
      116,
      32,
      118,
      97,
      108,
      105,
      103,
      110,
      61,
      34,
      116,
      111,
      112,
      34,
      62,
      60,
      119,
      97,
      115,
      32,
      101,
      115,
      116,
      97,
      98,
      108,
      105,
      115,
      104,
      101,
      100,
      41,
      59,
      13,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      13,
      10,
      114,
      101,
      116,
      117,
      114,
      110,
      32,
      102,
      97,
      108,
      115,
      101,
      59,
      34,
      62,
      41,
      46,
      115,
      116,
      121,
      108,
      101,
      46,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      98,
      101,
      99,
      97,
      117,
      115,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      99,
      111,
      111,
      107,
      105,
      101,
      60,
      102,
      111,
      114,
      109,
      32,
      97,
      99,
      116,
      105,
      111,
      110,
      61,
      34,
      47,
      125,
      98,
      111,
      100,
      121,
      123,
      109,
      97,
      114,
      103,
      105,
      110,
      58,
      48,
      59,
      69,
      110,
      99,
      121,
      99,
      108,
      111,
      112,
      101,
      100,
      105,
      97,
      32,
      111,
      102,
      118,
      101,
      114,
      115,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      46,
      99,
      114,
      101,
      97,
      116,
      101,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      40,
      110,
      97,
      109,
      101,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      10,
      97,
      100,
      109,
      105,
      110,
      105,
      115,
      116,
      114,
      97,
      116,
      105,
      118,
      101,
      32,
      60,
      47,
      98,
      111,
      100,
      121,
      62,
      10,
      60,
      47,
      104,
      116,
      109,
      108,
      62,
      104,
      105,
      115,
      116,
      111,
      114,
      121,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      34,
      62,
      60,
      105,
      110,
      112,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      112,
      111,
      114,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      97,
      115,
      32,
      112,
      97,
      114,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      38,
      110,
      98,
      115,
      112,
      59,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      111,
      116,
      104,
      101,
      114,
      32,
      99,
      111,
      117,
      110,
      116,
      114,
      105,
      101,
      115,
      34,
      62,
      10,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      73,
      110,
      32,
      111,
      116,
      104,
      101,
      114,
      32,
      119,
      111,
      114,
      100,
      115,
      44,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      32,
      98,
      108,
      111,
      99,
      107,
      59,
      99,
      111,
      110,
      116,
      114,
      111,
      108,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      105,
      110,
      116,
      114,
      111,
      100,
      117,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      47,
      62,
      10,
      60,
      109,
      101,
      116,
      97,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      97,
      115,
      32,
      119,
      101,
      108,
      108,
      32,
      97,
      115,
      32,
      116,
      104,
      101,
      32,
      105,
      110,
      32,
      114,
      101,
      99,
      101,
      110,
      116,
      32,
      121,
      101,
      97,
      114,
      115,
      13,
      10,
      9,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      9,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      105,
      110,
      115,
      112,
      105,
      114,
      101,
      100,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      101,
      110,
      100,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      99,
      111,
      109,
      112,
      97,
      116,
      105,
      98,
      108,
      101,
      32,
      119,
      105,
      116,
      104,
      98,
      101,
      99,
      97,
      109,
      101,
      32,
      107,
      110,
      111,
      119,
      110,
      32,
      97,
      115,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      109,
      97,
      114,
      103,
      105,
      110,
      58,
      46,
      106,
      115,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      60,
      32,
      73,
      110,
      116,
      101,
      114,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      32,
      116,
      104,
      101,
      114,
      101,
      32,
      104,
      97,
      118,
      101,
      32,
      98,
      101,
      101,
      110,
      71,
      101,
      114,
      109,
      97,
      110,
      32,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      99,
      111,
      108,
      111,
      114,
      58,
      35,
      67,
      111,
      109,
      109,
      117,
      110,
      105,
      115,
      116,
      32,
      80,
      97,
      114,
      116,
      121,
      99,
      111,
      110,
      115,
      105,
      115,
      116,
      101,
      110,
      116,
      32,
      119,
      105,
      116,
      104,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      34,
      48,
      34,
      32,
      99,
      101,
      108,
      108,
      32,
      109,
      97,
      114,
      103,
      105,
      110,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      116,
      104,
      101,
      32,
      109,
      97,
      106,
      111,
      114,
      105,
      116,
      121,
      32,
      111,
      102,
      34,
      32,
      97,
      108,
      105,
      103,
      110,
      61,
      34,
      99,
      101,
      110,
      116,
      101,
      114,
      114,
      101,
      108,
      97,
      116,
      101,
      100,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      109,
      97,
      110,
      121,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      32,
      79,
      114,
      116,
      104,
      111,
      100,
      111,
      120,
      32,
      67,
      104,
      117,
      114,
      99,
      104,
      115,
      105,
      109,
      105,
      108,
      97,
      114,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      47,
      62,
      10,
      60,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      115,
      119,
      97,
      115,
      32,
      111,
      110,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      117,
      110,
      116,
      105,
      108,
      32,
      104,
      105,
      115,
      32,
      100,
      101,
      97,
      116,
      104,
      125,
      41,
      40,
      41,
      59,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      111,
      116,
      104,
      101,
      114,
      32,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      115,
      99,
      111,
      109,
      112,
      97,
      114,
      101,
      100,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      112,
      111,
      114,
      116,
      105,
      111,
      110,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      78,
      101,
      116,
      104,
      101,
      114,
      108,
      97,
      110,
      100,
      115,
      116,
      104,
      101,
      32,
      109,
      111,
      115,
      116,
      32,
      99,
      111,
      109,
      109,
      111,
      110,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      58,
      117,
      114,
      108,
      40,
      97,
      114,
      103,
      117,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      115,
      99,
      114,
      111,
      108,
      108,
      105,
      110,
      103,
      61,
      34,
      110,
      111,
      34,
      32,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      100,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      78,
      111,
      114,
      116,
      104,
      32,
      65,
      109,
      101,
      114,
      105,
      99,
      97,
      110,
      32,
      116,
      104,
      101,
      32,
      110,
      97,
      109,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      105,
      110,
      116,
      101,
      114,
      112,
      114,
      101,
      116,
      97,
      116,
      105,
      111,
      110,
      115,
      116,
      104,
      101,
      32,
      116,
      114,
      97,
      100,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      109,
      101,
      110,
      116,
      32,
      111,
      102,
      32,
      102,
      114,
      101,
      113,
      117,
      101,
      110,
      116,
      108,
      121,
      32,
      117,
      115,
      101,
      100,
      97,
      32,
      99,
      111,
      108,
      108,
      101,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      118,
      101,
      114,
      121,
      32,
      115,
      105,
      109,
      105,
      108,
      97,
      114,
      32,
      116,
      111,
      115,
      117,
      114,
      114,
      111,
      117,
      110,
      100,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      105,
      115,
      97,
      108,
      105,
      103,
      110,
      61,
      34,
      99,
      101,
      110,
      116,
      101,
      114,
      34,
      62,
      119,
      111,
      117,
      108,
      100,
      32,
      104,
      97,
      118,
      101,
      32,
      98,
      101,
      101,
      110,
      105,
      109,
      97,
      103,
      101,
      95,
      99,
      97,
      112,
      116,
      105,
      111,
      110,
      32,
      61,
      97,
      116,
      116,
      97,
      99,
      104,
      101,
      100,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      115,
      117,
      103,
      103,
      101,
      115,
      116,
      105,
      110,
      103,
      32,
      116,
      104,
      97,
      116,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      102,
      111,
      114,
      109,
      32,
      111,
      102,
      32,
      105,
      110,
      118,
      111,
      108,
      118,
      101,
      100,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      105,
      115,
      32,
      100,
      101,
      114,
      105,
      118,
      101,
      100,
      32,
      102,
      114,
      111,
      109,
      110,
      97,
      109,
      101,
      100,
      32,
      97,
      102,
      116,
      101,
      114,
      32,
      116,
      104,
      101,
      73,
      110,
      116,
      114,
      111,
      100,
      117,
      99,
      116,
      105,
      111,
      110,
      32,
      116,
      111,
      114,
      101,
      115,
      116,
      114,
      105,
      99,
      116,
      105,
      111,
      110,
      115,
      32,
      111,
      110,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      119,
      105,
      100,
      116,
      104,
      58,
      32,
      99,
      97,
      110,
      32,
      98,
      101,
      32,
      117,
      115,
      101,
      100,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      99,
      114,
      101,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      109,
      111,
      115,
      116,
      32,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      32,
      105,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      32,
      97,
      110,
      100,
      114,
      101,
      115,
      117,
      108,
      116,
      101,
      100,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      99,
      111,
      108,
      108,
      97,
      112,
      115,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      84,
      104,
      105,
      115,
      32,
      109,
      101,
      97,
      110,
      115,
      32,
      116,
      104,
      97,
      116,
      101,
      108,
      101,
      109,
      101,
      110,
      116,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      119,
      97,
      115,
      32,
      114,
      101,
      112,
      108,
      97,
      99,
      101,
      100,
      32,
      98,
      121,
      97,
      110,
      97,
      108,
      121,
      115,
      105,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      105,
      110,
      115,
      112,
      105,
      114,
      97,
      116,
      105,
      111,
      110,
      32,
      102,
      111,
      114,
      114,
      101,
      103,
      97,
      114,
      100,
      101,
      100,
      32,
      97,
      115,
      32,
      116,
      104,
      101,
      109,
      111,
      115,
      116,
      32,
      115,
      117,
      99,
      99,
      101,
      115,
      115,
      102,
      117,
      108,
      107,
      110,
      111,
      119,
      110,
      32,
      97,
      115,
      32,
      38,
      113,
      117,
      111,
      116,
      59,
      97,
      32,
      99,
      111,
      109,
      112,
      114,
      101,
      104,
      101,
      110,
      115,
      105,
      118,
      101,
      72,
      105,
      115,
      116,
      111,
      114,
      121,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      119,
      101,
      114,
      101,
      32,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      101,
      100,
      114,
      101,
      116,
      117,
      114,
      110,
      101,
      100,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      97,
      114,
      101,
      32,
      114,
      101,
      102,
      101,
      114,
      114,
      101,
      100,
      32,
      116,
      111,
      85,
      110,
      115,
      111,
      117,
      114,
      99,
      101,
      100,
      32,
      105,
      109,
      97,
      103,
      101,
      62,
      10,
      9,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      99,
      111,
      110,
      115,
      105,
      115,
      116,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      115,
      116,
      111,
      112,
      80,
      114,
      111,
      112,
      97,
      103,
      97,
      116,
      105,
      111,
      110,
      105,
      110,
      116,
      101,
      114,
      101,
      115,
      116,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      97,
      118,
      97,
      105,
      108,
      97,
      98,
      105,
      108,
      105,
      116,
      121,
      32,
      111,
      102,
      97,
      112,
      112,
      101,
      97,
      114,
      115,
      32,
      116,
      111,
      32,
      104,
      97,
      118,
      101,
      101,
      108,
      101,
      99,
      116,
      114,
      111,
      109,
      97,
      103,
      110,
      101,
      116,
      105,
      99,
      101,
      110,
      97,
      98,
      108,
      101,
      83,
      101,
      114,
      118,
      105,
      99,
      101,
      115,
      40,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      73,
      116,
      32,
      105,
      115,
      32,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      123,
      118,
      97,
      114,
      32,
      114,
      101,
      108,
      97,
      116,
      105,
      118,
      101,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      97,
      115,
      32,
      97,
      32,
      114,
      101,
      115,
      117,
      108,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      70,
      111,
      114,
      32,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      44,
      32,
      105,
      110,
      32,
      109,
      101,
      116,
      104,
      111,
      100,
      61,
      34,
      112,
      111,
      115,
      116,
      34,
      32,
      119,
      97,
      115,
      32,
      102,
      111,
      108,
      108,
      111,
      119,
      101,
      100,
      32,
      98,
      121,
      38,
      97,
      109,
      112,
      59,
      109,
      100,
      97,
      115,
      104,
      59,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      97,
      112,
      112,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      106,
      115,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      13,
      10,
      117,
      108,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      97,
      102,
      116,
      101,
      114,
      32,
      116,
      104,
      101,
      32,
      100,
      101,
      97,
      116,
      104,
      119,
      105,
      116,
      104,
      32,
      114,
      101,
      115,
      112,
      101,
      99,
      116,
      32,
      116,
      111,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      58,
      105,
      115,
      32,
      112,
      97,
      114,
      116,
      105,
      99,
      117,
      108,
      97,
      114,
      108,
      121,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      105,
      110,
      108,
      105,
      110,
      101,
      59,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      115,
      117,
      98,
      109,
      105,
      116,
      34,
      32,
      105,
      115,
      32,
      100,
      105,
      118,
      105,
      100,
      101,
      100,
      32,
      105,
      110,
      116,
      111,
      228,
      184,
      173,
      230,
      150,
      135,
      32,
      40,
      231,
      174,
      128,
      228,
      189,
      147,
      41,
      114,
      101,
      115,
      112,
      111,
      110,
      115,
      97,
      98,
      105,
      108,
      105,
      100,
      97,
      100,
      97,
      100,
      109,
      105,
      110,
      105,
      115,
      116,
      114,
      97,
      99,
      105,
      195,
      179,
      110,
      105,
      110,
      116,
      101,
      114,
      110,
      97,
      99,
      105,
      111,
      110,
      97,
      108,
      101,
      115,
      99,
      111,
      114,
      114,
      101,
      115,
      112,
      111,
      110,
      100,
      105,
      101,
      110,
      116,
      101,
      224,
      164,
      137,
      224,
      164,
      170,
      224,
      164,
      175,
      224,
      165,
      139,
      224,
      164,
      151,
      224,
      164,
      170,
      224,
      165,
      130,
      224,
      164,
      176,
      224,
      165,
      141,
      224,
      164,
      181,
      224,
      164,
      185,
      224,
      164,
      174,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      165,
      135,
      224,
      164,
      178,
      224,
      165,
      139,
      224,
      164,
      151,
      224,
      165,
      139,
      224,
      164,
      130,
      224,
      164,
      154,
      224,
      165,
      129,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      181,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      149,
      224,
      164,
      191,
      224,
      164,
      168,
      224,
      164,
      184,
      224,
      164,
      176,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      170,
      224,
      165,
      129,
      224,
      164,
      178,
      224,
      164,
      191,
      224,
      164,
      184,
      224,
      164,
      150,
      224,
      165,
      139,
      224,
      164,
      156,
      224,
      165,
      135,
      224,
      164,
      130,
      224,
      164,
      154,
      224,
      164,
      190,
      224,
      164,
      185,
      224,
      164,
      191,
      224,
      164,
      143,
      224,
      164,
      173,
      224,
      165,
      135,
      224,
      164,
      156,
      224,
      165,
      135,
      224,
      164,
      130,
      224,
      164,
      182,
      224,
      164,
      190,
      224,
      164,
      174,
      224,
      164,
      191,
      224,
      164,
      178,
      224,
      164,
      185,
      224,
      164,
      174,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      165,
      128,
      224,
      164,
      156,
      224,
      164,
      190,
      224,
      164,
      151,
      224,
      164,
      176,
      224,
      164,
      163,
      224,
      164,
      172,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      149,
      224,
      165,
      129,
      224,
      164,
      174,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      172,
      224,
      165,
      141,
      224,
      164,
      178,
      224,
      165,
      137,
      224,
      164,
      151,
      224,
      164,
      174,
      224,
      164,
      190,
      224,
      164,
      178,
      224,
      164,
      191,
      224,
      164,
      149,
      224,
      164,
      174,
      224,
      164,
      185,
      224,
      164,
      191,
      224,
      164,
      178,
      224,
      164,
      190,
      224,
      164,
      170,
      224,
      165,
      131,
      224,
      164,
      183,
      224,
      165,
      141,
      224,
      164,
      160,
      224,
      164,
      172,
      224,
      164,
      162,
      224,
      164,
      188,
      224,
      164,
      164,
      224,
      165,
      135,
      224,
      164,
      173,
      224,
      164,
      190,
      224,
      164,
      156,
      224,
      164,
      170,
      224,
      164,
      190,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      178,
      224,
      164,
      191,
      224,
      164,
      149,
      224,
      164,
      159,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      165,
      135,
      224,
      164,
      168,
      224,
      164,
      150,
      224,
      164,
      191,
      224,
      164,
      178,
      224,
      164,
      190,
      224,
      164,
      171,
      224,
      164,
      166,
      224,
      165,
      140,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      164,
      174,
      224,
      164,
      190,
      224,
      164,
      174,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      174,
      224,
      164,
      164,
      224,
      164,
      166,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      164,
      172,
      224,
      164,
      190,
      224,
      164,
      156,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      181,
      224,
      164,
      191,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      175,
      224,
      165,
      139,
      224,
      164,
      130,
      224,
      164,
      154,
      224,
      164,
      190,
      224,
      164,
      185,
      224,
      164,
      164,
      224,
      165,
      135,
      224,
      164,
      170,
      224,
      164,
      185,
      224,
      165,
      129,
      224,
      164,
      129,
      224,
      164,
      154,
      224,
      164,
      172,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      164,
      130,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      166,
      224,
      164,
      166,
      224,
      165,
      135,
      224,
      164,
      150,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      170,
      224,
      164,
      191,
      224,
      164,
      155,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      181,
      224,
      164,
      191,
      224,
      164,
      182,
      224,
      165,
      135,
      224,
      164,
      183,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      156,
      224,
      165,
      141,
      224,
      164,
      175,
      224,
      164,
      137,
      224,
      164,
      164,
      224,
      165,
      141,
      224,
      164,
      164,
      224,
      164,
      176,
      224,
      164,
      174,
      224,
      165,
      129,
      224,
      164,
      130,
      224,
      164,
      172,
      224,
      164,
      136,
      224,
      164,
      166,
      224,
      165,
      139,
      224,
      164,
      168,
      224,
      165,
      139,
      224,
      164,
      130,
      224,
      164,
      137,
      224,
      164,
      170,
      224,
      164,
      149,
      224,
      164,
      176,
      224,
      164,
      163,
      224,
      164,
      170,
      224,
      164,
      162,
      224,
      164,
      188,
      224,
      165,
      135,
      224,
      164,
      130,
      224,
      164,
      184,
      224,
      165,
      141,
      224,
      164,
      165,
      224,
      164,
      191,
      224,
      164,
      164,
      224,
      164,
      171,
      224,
      164,
      191,
      224,
      164,
      178,
      224,
      165,
      141,
      224,
      164,
      174,
      224,
      164,
      174,
      224,
      165,
      129,
      224,
      164,
      150,
      224,
      165,
      141,
      224,
      164,
      175,
      224,
      164,
      133,
      224,
      164,
      154,
      224,
      165,
      141,
      224,
      164,
      155,
      224,
      164,
      190,
      224,
      164,
      155,
      224,
      165,
      130,
      224,
      164,
      159,
      224,
      164,
      164,
      224,
      165,
      128,
      224,
      164,
      184,
      224,
      164,
      130,
      224,
      164,
      151,
      224,
      165,
      128,
      224,
      164,
      164,
      224,
      164,
      156,
      224,
      164,
      190,
      224,
      164,
      143,
      224,
      164,
      151,
      224,
      164,
      190,
      224,
      164,
      181,
      224,
      164,
      191,
      224,
      164,
      173,
      224,
      164,
      190,
      224,
      164,
      151,
      224,
      164,
      152,
      224,
      164,
      163,
      224,
      165,
      141,
      224,
      164,
      159,
      224,
      165,
      135,
      224,
      164,
      166,
      224,
      165,
      130,
      224,
      164,
      184,
      224,
      164,
      176,
      224,
      165,
      135,
      224,
      164,
      166,
      224,
      164,
      191,
      224,
      164,
      168,
      224,
      165,
      139,
      224,
      164,
      130,
      224,
      164,
      185,
      224,
      164,
      164,
      224,
      165,
      141,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      165,
      135,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      184,
      224,
      164,
      151,
      224,
      164,
      190,
      224,
      164,
      130,
      224,
      164,
      167,
      224,
      165,
      128,
      224,
      164,
      181,
      224,
      164,
      191,
      224,
      164,
      182,
      224,
      165,
      141,
      224,
      164,
      181,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      164,
      224,
      165,
      135,
      224,
      164,
      130,
      224,
      164,
      166,
      224,
      165,
      136,
      224,
      164,
      159,
      224,
      165,
      141,
      224,
      164,
      184,
      224,
      164,
      168,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      182,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      164,
      190,
      224,
      164,
      174,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      133,
      224,
      164,
      166,
      224,
      164,
      190,
      224,
      164,
      178,
      224,
      164,
      164,
      224,
      164,
      172,
      224,
      164,
      191,
      224,
      164,
      156,
      224,
      164,
      178,
      224,
      165,
      128,
      224,
      164,
      170,
      224,
      165,
      129,
      224,
      164,
      176,
      224,
      165,
      130,
      224,
      164,
      183,
      224,
      164,
      185,
      224,
      164,
      191,
      224,
      164,
      130,
      224,
      164,
      166,
      224,
      165,
      128,
      224,
      164,
      174,
      224,
      164,
      191,
      224,
      164,
      164,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      149,
      224,
      164,
      181,
      224,
      164,
      191,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      165,
      129,
      224,
      164,
      170,
      224,
      164,
      175,
      224,
      165,
      135,
      224,
      164,
      184,
      224,
      165,
      141,
      224,
      164,
      165,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      164,
      149,
      224,
      164,
      176,
      224,
      165,
      139,
      224,
      164,
      161,
      224,
      164,
      188,
      224,
      164,
      174,
      224,
      165,
      129,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      164,
      224,
      164,
      175,
      224,
      165,
      139,
      224,
      164,
      156,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      149,
      224,
      165,
      131,
      224,
      164,
      170,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      170,
      224,
      165,
      139,
      224,
      164,
      184,
      224,
      165,
      141,
      224,
      164,
      159,
      224,
      164,
      152,
      224,
      164,
      176,
      224,
      165,
      135,
      224,
      164,
      178,
      224,
      165,
      130,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      165,
      141,
      224,
      164,
      175,
      224,
      164,
      181,
      224,
      164,
      191,
      224,
      164,
      154,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      184,
      224,
      165,
      130,
      224,
      164,
      154,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      174,
      224,
      165,
      130,
      224,
      164,
      178,
      224,
      165,
      141,
      224,
      164,
      175,
      224,
      164,
      166,
      224,
      165,
      135,
      224,
      164,
      150,
      224,
      165,
      135,
      224,
      164,
      130,
      224,
      164,
      185,
      224,
      164,
      174,
      224,
      165,
      135,
      224,
      164,
      182,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      165,
      141,
      224,
      164,
      149,
      224,
      165,
      130,
      224,
      164,
      178,
      224,
      164,
      174,
      224,
      165,
      136,
      224,
      164,
      130,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      164,
      224,
      165,
      136,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      156,
      224,
      164,
      191,
      224,
      164,
      184,
      224,
      164,
      149,
      224,
      165,
      135,
      114,
      115,
      115,
      43,
      120,
      109,
      108,
      34,
      32,
      116,
      105,
      116,
      108,
      101,
      61,
      34,
      45,
      116,
      121,
      112,
      101,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      116,
      105,
      116,
      108,
      101,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      97,
      116,
      32,
      116,
      104,
      101,
      32,
      115,
      97,
      109,
      101,
      32,
      116,
      105,
      109,
      101,
      46,
      106,
      115,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      60,
      34,
      32,
      109,
      101,
      116,
      104,
      111,
      100,
      61,
      34,
      112,
      111,
      115,
      116,
      34,
      32,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      47,
      97,
      62,
      60,
      47,
      108,
      105,
      62,
      118,
      101,
      114,
      116,
      105,
      99,
      97,
      108,
      45,
      97,
      108,
      105,
      103,
      110,
      58,
      116,
      47,
      106,
      113,
      117,
      101,
      114,
      121,
      46,
      109,
      105,
      110,
      46,
      106,
      115,
      34,
      62,
      46,
      99,
      108,
      105,
      99,
      107,
      40,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      45,
      125,
      41,
      40,
      41,
      59,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      41,
      59,
      32,
      114,
      101,
      116,
      117,
      114,
      110,
      32,
      102,
      97,
      108,
      115,
      101,
      59,
      116,
      101,
      120,
      116,
      45,
      100,
      101,
      99,
      111,
      114,
      97,
      116,
      105,
      111,
      110,
      58,
      32,
      115,
      99,
      114,
      111,
      108,
      108,
      105,
      110,
      103,
      61,
      34,
      110,
      111,
      34,
      32,
      98,
      111,
      114,
      100,
      101,
      114,
      45,
      99,
      111,
      108,
      108,
      97,
      112,
      115,
      101,
      58,
      97,
      115,
      115,
      111,
      99,
      105,
      97,
      116,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      32,
      66,
      97,
      104,
      97,
      115,
      97,
      32,
      73,
      110,
      100,
      111,
      110,
      101,
      115,
      105,
      97,
      69,
      110,
      103,
      108,
      105,
      115,
      104,
      32,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      60,
      116,
      101,
      120,
      116,
      32,
      120,
      109,
      108,
      58,
      115,
      112,
      97,
      99,
      101,
      61,
      46,
      103,
      105,
      102,
      34,
      32,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      34,
      48,
      34,
      60,
      47,
      98,
      111,
      100,
      121,
      62,
      10,
      60,
      47,
      104,
      116,
      109,
      108,
      62,
      10,
      111,
      118,
      101,
      114,
      102,
      108,
      111,
      119,
      58,
      104,
      105,
      100,
      100,
      101,
      110,
      59,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      97,
      100,
      100,
      69,
      118,
      101,
      110,
      116,
      76,
      105,
      115,
      116,
      101,
      110,
      101,
      114,
      114,
      101,
      115,
      112,
      111,
      110,
      115,
      105,
      98,
      108,
      101,
      32,
      102,
      111,
      114,
      32,
      115,
      46,
      106,
      115,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      47,
      102,
      97,
      118,
      105,
      99,
      111,
      110,
      46,
      105,
      99,
      111,
      34,
      32,
      47,
      62,
      111,
      112,
      101,
      114,
      97,
      116,
      105,
      110,
      103,
      32,
      115,
      121,
      115,
      116,
      101,
      109,
      34,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      119,
      105,
      100,
      116,
      104,
      58,
      49,
      116,
      97,
      114,
      103,
      101,
      116,
      61,
      34,
      95,
      98,
      108,
      97,
      110,
      107,
      34,
      62,
      83,
      116,
      97,
      116,
      101,
      32,
      85,
      110,
      105,
      118,
      101,
      114,
      115,
      105,
      116,
      121,
      116,
      101,
      120,
      116,
      45,
      97,
      108,
      105,
      103,
      110,
      58,
      108,
      101,
      102,
      116,
      59,
      10,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      119,
      114,
      105,
      116,
      101,
      40,
      44,
      32,
      105,
      110,
      99,
      108,
      117,
      100,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      32,
      97,
      114,
      111,
      117,
      110,
      100,
      32,
      116,
      104,
      101,
      32,
      119,
      111,
      114,
      108,
      100,
      41,
      59,
      13,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      13,
      10,
      60,
      34,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      104,
      101,
      105,
      103,
      104,
      116,
      58,
      59,
      111,
      118,
      101,
      114,
      102,
      108,
      111,
      119,
      58,
      104,
      105,
      100,
      100,
      101,
      110,
      109,
      111,
      114,
      101,
      32,
      105,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      97,
      110,
      32,
      105,
      110,
      116,
      101,
      114,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      97,
      32,
      109,
      101,
      109,
      98,
      101,
      114,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      111,
      110,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      102,
      105,
      114,
      115,
      116,
      99,
      97,
      110,
      32,
      98,
      101,
      32,
      102,
      111,
      117,
      110,
      100,
      32,
      105,
      110,
      32,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      9,
      9,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      32,
      110,
      111,
      110,
      101,
      59,
      34,
      62,
      34,
      32,
      47,
      62,
      10,
      60,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      10,
      32,
      32,
      40,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      32,
      123,
      116,
      104,
      101,
      32,
      49,
      53,
      116,
      104,
      32,
      99,
      101,
      110,
      116,
      117,
      114,
      121,
      46,
      112,
      114,
      101,
      118,
      101,
      110,
      116,
      68,
      101,
      102,
      97,
      117,
      108,
      116,
      40,
      108,
      97,
      114,
      103,
      101,
      32,
      110,
      117,
      109,
      98,
      101,
      114,
      32,
      111,
      102,
      32,
      66,
      121,
      122,
      97,
      110,
      116,
      105,
      110,
      101,
      32,
      69,
      109,
      112,
      105,
      114,
      101,
      46,
      106,
      112,
      103,
      124,
      116,
      104,
      117,
      109,
      98,
      124,
      108,
      101,
      102,
      116,
      124,
      118,
      97,
      115,
      116,
      32,
      109,
      97,
      106,
      111,
      114,
      105,
      116,
      121,
      32,
      111,
      102,
      109,
      97,
      106,
      111,
      114,
      105,
      116,
      121,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      32,
      97,
      108,
      105,
      103,
      110,
      61,
      34,
      99,
      101,
      110,
      116,
      101,
      114,
      34,
      62,
      85,
      110,
      105,
      118,
      101,
      114,
      115,
      105,
      116,
      121,
      32,
      80,
      114,
      101,
      115,
      115,
      100,
      111,
      109,
      105,
      110,
      97,
      116,
      101,
      100,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      83,
      101,
      99,
      111,
      110,
      100,
      32,
      87,
      111,
      114,
      108,
      100,
      32,
      87,
      97,
      114,
      100,
      105,
      115,
      116,
      114,
      105,
      98,
      117,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      58,
      116,
      104,
      101,
      32,
      114,
      101,
      115,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      99,
      104,
      97,
      114,
      97,
      99,
      116,
      101,
      114,
      105,
      122,
      101,
      100,
      32,
      98,
      121,
      32,
      114,
      101,
      108,
      61,
      34,
      110,
      111,
      102,
      111,
      108,
      108,
      111,
      119,
      34,
      62,
      100,
      101,
      114,
      105,
      118,
      101,
      115,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      114,
      97,
      116,
      104,
      101,
      114,
      32,
      116,
      104,
      97,
      110,
      32,
      116,
      104,
      101,
      32,
      97,
      32,
      99,
      111,
      109,
      98,
      105,
      110,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      119,
      105,
      100,
      116,
      104,
      58,
      49,
      48,
      48,
      69,
      110,
      103,
      108,
      105,
      115,
      104,
      45,
      115,
      112,
      101,
      97,
      107,
      105,
      110,
      103,
      99,
      111,
      109,
      112,
      117,
      116,
      101,
      114,
      32,
      115,
      99,
      105,
      101,
      110,
      99,
      101,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      34,
      48,
      34,
      32,
      97,
      108,
      116,
      61,
      34,
      116,
      104,
      101,
      32,
      101,
      120,
      105,
      115,
      116,
      101,
      110,
      99,
      101,
      32,
      111,
      102,
      68,
      101,
      109,
      111,
      99,
      114,
      97,
      116,
      105,
      99,
      32,
      80,
      97,
      114,
      116,
      121,
      34,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      109,
      97,
      114,
      103,
      105,
      110,
      45,
      70,
      111,
      114,
      32,
      116,
      104,
      105,
      115,
      32,
      114,
      101,
      97,
      115,
      111,
      110,
      44,
      46,
      106,
      115,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      9,
      115,
      66,
      121,
      84,
      97,
      103,
      78,
      97,
      109,
      101,
      40,
      115,
      41,
      91,
      48,
      93,
      106,
      115,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      13,
      10,
      60,
      46,
      106,
      115,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      13,
      10,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      105,
      99,
      111,
      110,
      34,
      32,
      39,
      32,
      97,
      108,
      116,
      61,
      39,
      39,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      39,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      118,
      101,
      114,
      115,
      105,
      111,
      110,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      60,
      47,
      97,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      47,
      112,
      97,
      103,
      101,
      62,
      10,
      32,
      32,
      60,
      112,
      97,
      103,
      101,
      62,
      10,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      99,
      111,
      110,
      116,
      98,
      101,
      99,
      97,
      109,
      101,
      32,
      116,
      104,
      101,
      32,
      102,
      105,
      114,
      115,
      116,
      98,
      97,
      104,
      97,
      115,
      97,
      32,
      73,
      110,
      100,
      111,
      110,
      101,
      115,
      105,
      97,
      101,
      110,
      103,
      108,
      105,
      115,
      104,
      32,
      40,
      115,
      105,
      109,
      112,
      108,
      101,
      41,
      206,
      149,
      206,
      187,
      206,
      187,
      206,
      183,
      206,
      189,
      206,
      185,
      206,
      186,
      206,
      172,
      209,
      133,
      209,
      128,
      208,
      178,
      208,
      176,
      209,
      130,
      209,
      129,
      208,
      186,
      208,
      184,
      208,
      186,
      208,
      190,
      208,
      188,
      208,
      191,
      208,
      176,
      208,
      189,
      208,
      184,
      208,
      184,
      209,
      143,
      208,
      178,
      208,
      187,
      209,
      143,
      208,
      181,
      209,
      130,
      209,
      129,
      209,
      143,
      208,
      148,
      208,
      190,
      208,
      177,
      208,
      176,
      208,
      178,
      208,
      184,
      209,
      130,
      209,
      140,
      209,
      135,
      208,
      181,
      208,
      187,
      208,
      190,
      208,
      178,
      208,
      181,
      208,
      186,
      208,
      176,
      209,
      128,
      208,
      176,
      208,
      183,
      208,
      178,
      208,
      184,
      209,
      130,
      208,
      184,
      209,
      143,
      208,
      152,
      208,
      189,
      209,
      130,
      208,
      181,
      209,
      128,
      208,
      189,
      208,
      181,
      209,
      130,
      208,
      158,
      209,
      130,
      208,
      178,
      208,
      181,
      209,
      130,
      208,
      184,
      209,
      130,
      209,
      140,
      208,
      189,
      208,
      176,
      208,
      191,
      209,
      128,
      208,
      184,
      208,
      188,
      208,
      181,
      209,
      128,
      208,
      184,
      208,
      189,
      209,
      130,
      208,
      181,
      209,
      128,
      208,
      189,
      208,
      181,
      209,
      130,
      208,
      186,
      208,
      190,
      209,
      130,
      208,
      190,
      209,
      128,
      208,
      190,
      208,
      179,
      208,
      190,
      209,
      129,
      209,
      130,
      209,
      128,
      208,
      176,
      208,
      189,
      208,
      184,
      209,
      134,
      209,
      139,
      208,
      186,
      208,
      176,
      209,
      135,
      208,
      181,
      209,
      129,
      209,
      130,
      208,
      178,
      208,
      181,
      209,
      131,
      209,
      129,
      208,
      187,
      208,
      190,
      208,
      178,
      208,
      184,
      209,
      143,
      209,
      133,
      208,
      191,
      209,
      128,
      208,
      190,
      208,
      177,
      208,
      187,
      208,
      181,
      208,
      188,
      209,
      139,
      208,
      191,
      208,
      190,
      208,
      187,
      209,
      131,
      209,
      135,
      208,
      184,
      209,
      130,
      209,
      140,
      209,
      143,
      208,
      178,
      208,
      187,
      209,
      143,
      209,
      142,
      209,
      130,
      209,
      129,
      209,
      143,
      208,
      189,
      208,
      176,
      208,
      184,
      208,
      177,
      208,
      190,
      208,
      187,
      208,
      181,
      208,
      181,
      208,
      186,
      208,
      190,
      208,
      188,
      208,
      191,
      208,
      176,
      208,
      189,
      208,
      184,
      209,
      143,
      208,
      178,
      208,
      189,
      208,
      184,
      208,
      188,
      208,
      176,
      208,
      189,
      208,
      184,
      208,
      181,
      209,
      129,
      209,
      128,
      208,
      181,
      208,
      180,
      209,
      129,
      209,
      130,
      208,
      178,
      208,
      176,
      216,
      167,
      217,
      132,
      217,
      133,
      217,
      136,
      216,
      167,
      216,
      182,
      217,
      138,
      216,
      185,
      216,
      167,
      217,
      132,
      216,
      177,
      216,
      166,
      217,
      138,
      216,
      179,
      217,
      138,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      167,
      217,
      134,
      216,
      170,
      217,
      130,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      180,
      216,
      167,
      216,
      177,
      217,
      131,
      216,
      167,
      216,
      170,
      217,
      131,
      216,
      167,
      217,
      132,
      216,
      179,
      217,
      138,
      216,
      167,
      216,
      177,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      217,
      133,
      217,
      131,
      216,
      170,
      217,
      136,
      216,
      168,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      179,
      216,
      185,
      217,
      136,
      216,
      175,
      217,
      138,
      216,
      169,
      216,
      167,
      216,
      173,
      216,
      181,
      216,
      167,
      216,
      166,
      217,
      138,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      216,
      185,
      216,
      167,
      217,
      132,
      217,
      133,
      217,
      138,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      181,
      217,
      136,
      216,
      170,
      217,
      138,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      216,
      167,
      217,
      134,
      216,
      170,
      216,
      177,
      217,
      134,
      216,
      170,
      216,
      167,
      217,
      132,
      216,
      170,
      216,
      181,
      216,
      167,
      217,
      133,
      217,
      138,
      217,
      133,
      216,
      167,
      217,
      132,
      216,
      165,
      216,
      179,
      217,
      132,
      216,
      167,
      217,
      133,
      217,
      138,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      180,
      216,
      167,
      216,
      177,
      217,
      131,
      216,
      169,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      177,
      216,
      166,
      217,
      138,
      216,
      167,
      216,
      170,
      114,
      111,
      98,
      111,
      116,
      115,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      102,
      111,
      111,
      116,
      101,
      114,
      34,
      62,
      116,
      104,
      101,
      32,
      85,
      110,
      105,
      116,
      101,
      100,
      32,
      83,
      116,
      97,
      116,
      101,
      115,
      60,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      46,
      106,
      112,
      103,
      124,
      114,
      105,
      103,
      104,
      116,
      124,
      116,
      104,
      117,
      109,
      98,
      124,
      46,
      106,
      115,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      13,
      10,
      60,
      108,
      111,
      99,
      97,
      116,
      105,
      111,
      110,
      46,
      112,
      114,
      111,
      116,
      111,
      99,
      111,
      108,
      102,
      114,
      97,
      109,
      101,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      34,
      48,
      34,
      32,
      115,
      34,
      32,
      47,
      62,
      10,
      60,
      109,
      101,
      116,
      97,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      60,
      47,
      97,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      102,
      111,
      110,
      116,
      45,
      119,
      101,
      105,
      103,
      104,
      116,
      58,
      98,
      111,
      108,
      100,
      59,
      38,
      113,
      117,
      111,
      116,
      59,
      32,
      97,
      110,
      100,
      32,
      38,
      113,
      117,
      111,
      116,
      59,
      100,
      101,
      112,
      101,
      110,
      100,
      105,
      110,
      103,
      32,
      111,
      110,
      32,
      116,
      104,
      101,
      32,
      109,
      97,
      114,
      103,
      105,
      110,
      58,
      48,
      59,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      58,
      34,
      32,
      114,
      101,
      108,
      61,
      34,
      110,
      111,
      102,
      111,
      108,
      108,
      111,
      119,
      34,
      32,
      80,
      114,
      101,
      115,
      105,
      100,
      101,
      110,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      116,
      119,
      101,
      110,
      116,
      105,
      101,
      116,
      104,
      32,
      99,
      101,
      110,
      116,
      117,
      114,
      121,
      101,
      118,
      105,
      115,
      105,
      111,
      110,
      62,
      10,
      32,
      32,
      60,
      47,
      112,
      97,
      103,
      101,
      73,
      110,
      116,
      101,
      114,
      110,
      101,
      116,
      32,
      69,
      120,
      112,
      108,
      111,
      114,
      101,
      114,
      97,
      46,
      97,
      115,
      121,
      110,
      99,
      32,
      61,
      32,
      116,
      114,
      117,
      101,
      59,
      13,
      10,
      105,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      32,
      97,
      98,
      111,
      117,
      116,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      104,
      101,
      97,
      100,
      101,
      114,
      34,
      62,
      34,
      32,
      97,
      99,
      116,
      105,
      111,
      110,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      115,
      58,
      47,
      47,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      34,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      34,
      60,
      47,
      100,
      105,
      118,
      62,
      13,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      13,
      10,
      60,
      100,
      101,
      114,
      105,
      118,
      101,
      100,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      32,
      60,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      39,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      97,
      99,
      99,
      111,
      114,
      100,
      105,
      110,
      103,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      10,
      60,
      47,
      98,
      111,
      100,
      121,
      62,
      10,
      60,
      47,
      104,
      116,
      109,
      108,
      62,
      10,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      102,
      111,
      110,
      116,
      45,
      115,
      105,
      122,
      101,
      58,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      61,
      34,
      65,
      114,
      105,
      97,
      108,
      44,
      32,
      72,
      101,
      108,
      118,
      101,
      116,
      105,
      99,
      97,
      44,
      60,
      47,
      97,
      62,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      112,
      111,
      108,
      105,
      116,
      105,
      99,
      97,
      108,
      32,
      112,
      97,
      114,
      116,
      105,
      101,
      115,
      116,
      100,
      62,
      60,
      47,
      116,
      114,
      62,
      60,
      47,
      116,
      97,
      98,
      108,
      101,
      62,
      60,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      105,
      110,
      116,
      101,
      114,
      112,
      114,
      101,
      116,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      114,
      101,
      108,
      61,
      34,
      115,
      116,
      121,
      108,
      101,
      115,
      104,
      101,
      101,
      116,
      34,
      32,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      119,
      114,
      105,
      116,
      101,
      40,
      39,
      60,
      99,
      104,
      97,
      114,
      115,
      101,
      116,
      61,
      34,
      117,
      116,
      102,
      45,
      56,
      34,
      62,
      10,
      98,
      101,
      103,
      105,
      110,
      110,
      105,
      110,
      103,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      114,
      101,
      118,
      101,
      97,
      108,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      116,
      101,
      108,
      101,
      118,
      105,
      115,
      105,
      111,
      110,
      32,
      115,
      101,
      114,
      105,
      101,
      115,
      34,
      32,
      114,
      101,
      108,
      61,
      34,
      110,
      111,
      102,
      111,
      108,
      108,
      111,
      119,
      34,
      62,
      32,
      116,
      97,
      114,
      103,
      101,
      116,
      61,
      34,
      95,
      98,
      108,
      97,
      110,
      107,
      34,
      62,
      99,
      108,
      97,
      105,
      109,
      105,
      110,
      103,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      104,
      116,
      116,
      112,
      37,
      51,
      65,
      37,
      50,
      70,
      37,
      50,
      70,
      119,
      119,
      119,
      46,
      109,
      97,
      110,
      105,
      102,
      101,
      115,
      116,
      97,
      116,
      105,
      111,
      110,
      115,
      32,
      111,
      102,
      80,
      114,
      105,
      109,
      101,
      32,
      77,
      105,
      110,
      105,
      115,
      116,
      101,
      114,
      32,
      111,
      102,
      105,
      110,
      102,
      108,
      117,
      101,
      110,
      99,
      101,
      100,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      99,
      108,
      101,
      97,
      114,
      102,
      105,
      120,
      34,
      62,
      47,
      100,
      105,
      118,
      62,
      13,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      13,
      10,
      13,
      10,
      116,
      104,
      114,
      101,
      101,
      45,
      100,
      105,
      109,
      101,
      110,
      115,
      105,
      111,
      110,
      97,
      108,
      67,
      104,
      117,
      114,
      99,
      104,
      32,
      111,
      102,
      32,
      69,
      110,
      103,
      108,
      97,
      110,
      100,
      111,
      102,
      32,
      78,
      111,
      114,
      116,
      104,
      32,
      67,
      97,
      114,
      111,
      108,
      105,
      110,
      97,
      115,
      113,
      117,
      97,
      114,
      101,
      32,
      107,
      105,
      108,
      111,
      109,
      101,
      116,
      114,
      101,
      115,
      46,
      97,
      100,
      100,
      69,
      118,
      101,
      110,
      116,
      76,
      105,
      115,
      116,
      101,
      110,
      101,
      114,
      100,
      105,
      115,
      116,
      105,
      110,
      99,
      116,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      99,
      111,
      109,
      109,
      111,
      110,
      108,
      121,
      32,
      107,
      110,
      111,
      119,
      110,
      32,
      97,
      115,
      80,
      104,
      111,
      110,
      101,
      116,
      105,
      99,
      32,
      65,
      108,
      112,
      104,
      97,
      98,
      101,
      116,
      100,
      101,
      99,
      108,
      97,
      114,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      99,
      111,
      110,
      116,
      114,
      111,
      108,
      108,
      101,
      100,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      66,
      101,
      110,
      106,
      97,
      109,
      105,
      110,
      32,
      70,
      114,
      97,
      110,
      107,
      108,
      105,
      110,
      114,
      111,
      108,
      101,
      45,
      112,
      108,
      97,
      121,
      105,
      110,
      103,
      32,
      103,
      97,
      109,
      101,
      116,
      104,
      101,
      32,
      85,
      110,
      105,
      118,
      101,
      114,
      115,
      105,
      116,
      121,
      32,
      111,
      102,
      105,
      110,
      32,
      87,
      101,
      115,
      116,
      101,
      114,
      110,
      32,
      69,
      117,
      114,
      111,
      112,
      101,
      112,
      101,
      114,
      115,
      111,
      110,
      97,
      108,
      32,
      99,
      111,
      109,
      112,
      117,
      116,
      101,
      114,
      80,
      114,
      111,
      106,
      101,
      99,
      116,
      32,
      71,
      117,
      116,
      101,
      110,
      98,
      101,
      114,
      103,
      114,
      101,
      103,
      97,
      114,
      100,
      108,
      101,
      115,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      104,
      97,
      115,
      32,
      98,
      101,
      101,
      110,
      32,
      112,
      114,
      111,
      112,
      111,
      115,
      101,
      100,
      116,
      111,
      103,
      101,
      116,
      104,
      101,
      114,
      32,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      62,
      60,
      47,
      108,
      105,
      62,
      60,
      108,
      105,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      105,
      110,
      32,
      115,
      111,
      109,
      101,
      32,
      99,
      111,
      117,
      110,
      116,
      114,
      105,
      101,
      115,
      109,
      105,
      110,
      46,
      106,
      115,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      112,
      111,
      112,
      117,
      108,
      97,
      116,
      105,
      111,
      110,
      111,
      102,
      102,
      105,
      99,
      105,
      97,
      108,
      32,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      60,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      34,
      105,
      109,
      97,
      103,
      101,
      115,
      47,
      105,
      100,
      101,
      110,
      116,
      105,
      102,
      105,
      101,
      100,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      110,
      97,
      116,
      117,
      114,
      97,
      108,
      32,
      114,
      101,
      115,
      111,
      117,
      114,
      99,
      101,
      115,
      99,
      108,
      97,
      115,
      115,
      105,
      102,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      99,
      97,
      110,
      32,
      98,
      101,
      32,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      101,
      100,
      113,
      117,
      97,
      110,
      116,
      117,
      109,
      32,
      109,
      101,
      99,
      104,
      97,
      110,
      105,
      99,
      115,
      78,
      101,
      118,
      101,
      114,
      116,
      104,
      101,
      108,
      101,
      115,
      115,
      44,
      32,
      116,
      104,
      101,
      109,
      105,
      108,
      108,
      105,
      111,
      110,
      32,
      121,
      101,
      97,
      114,
      115,
      32,
      97,
      103,
      111,
      60,
      47,
      98,
      111,
      100,
      121,
      62,
      13,
      10,
      60,
      47,
      104,
      116,
      109,
      108,
      62,
      13,
      206,
      149,
      206,
      187,
      206,
      187,
      206,
      183,
      206,
      189,
      206,
      185,
      206,
      186,
      206,
      172,
      10,
      116,
      97,
      107,
      101,
      32,
      97,
      100,
      118,
      97,
      110,
      116,
      97,
      103,
      101,
      32,
      111,
      102,
      97,
      110,
      100,
      44,
      32,
      97,
      99,
      99,
      111,
      114,
      100,
      105,
      110,
      103,
      32,
      116,
      111,
      97,
      116,
      116,
      114,
      105,
      98,
      117,
      116,
      101,
      100,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      77,
      105,
      99,
      114,
      111,
      115,
      111,
      102,
      116,
      32,
      87,
      105,
      110,
      100,
      111,
      119,
      115,
      116,
      104,
      101,
      32,
      102,
      105,
      114,
      115,
      116,
      32,
      99,
      101,
      110,
      116,
      117,
      114,
      121,
      117,
      110,
      100,
      101,
      114,
      32,
      116,
      104,
      101,
      32,
      99,
      111,
      110,
      116,
      114,
      111,
      108,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      104,
      101,
      97,
      100,
      101,
      114,
      115,
      104,
      111,
      114,
      116,
      108,
      121,
      32,
      97,
      102,
      116,
      101,
      114,
      32,
      116,
      104,
      101,
      110,
      111,
      116,
      97,
      98,
      108,
      101,
      32,
      101,
      120,
      99,
      101,
      112,
      116,
      105,
      111,
      110,
      116,
      101,
      110,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      111,
      117,
      115,
      97,
      110,
      100,
      115,
      115,
      101,
      118,
      101,
      114,
      97,
      108,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      97,
      114,
      111,
      117,
      110,
      100,
      32,
      116,
      104,
      101,
      32,
      119,
      111,
      114,
      108,
      100,
      46,
      114,
      101,
      97,
      99,
      104,
      105,
      110,
      103,
      32,
      109,
      105,
      108,
      105,
      116,
      97,
      114,
      121,
      105,
      115,
      111,
      108,
      97,
      116,
      101,
      100,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      111,
      112,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      79,
      108,
      100,
      32,
      84,
      101,
      115,
      116,
      97,
      109,
      101,
      110,
      116,
      65,
      102,
      114,
      105,
      99,
      97,
      110,
      32,
      65,
      109,
      101,
      114,
      105,
      99,
      97,
      110,
      115,
      105,
      110,
      115,
      101,
      114,
      116,
      101,
      100,
      32,
      105,
      110,
      116,
      111,
      32,
      116,
      104,
      101,
      115,
      101,
      112,
      97,
      114,
      97,
      116,
      101,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      109,
      101,
      116,
      114,
      111,
      112,
      111,
      108,
      105,
      116,
      97,
      110,
      32,
      97,
      114,
      101,
      97,
      109,
      97,
      107,
      101,
      115,
      32,
      105,
      116,
      32,
      112,
      111,
      115,
      115,
      105,
      98,
      108,
      101,
      97,
      99,
      107,
      110,
      111,
      119,
      108,
      101,
      100,
      103,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      97,
      114,
      103,
      117,
      97,
      98,
      108,
      121,
      32,
      116,
      104,
      101,
      32,
      109,
      111,
      115,
      116,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      62,
      10,
      116,
      104,
      101,
      32,
      73,
      110,
      116,
      101,
      114,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      65,
      99,
      99,
      111,
      114,
      100,
      105,
      110,
      103,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      32,
      47,
      62,
      10,
      99,
      111,
      105,
      110,
      99,
      105,
      100,
      101,
      32,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      116,
      119,
      111,
      45,
      116,
      104,
      105,
      114,
      100,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      68,
      117,
      114,
      105,
      110,
      103,
      32,
      116,
      104,
      105,
      115,
      32,
      116,
      105,
      109,
      101,
      44,
      100,
      117,
      114,
      105,
      110,
      103,
      32,
      116,
      104,
      101,
      32,
      112,
      101,
      114,
      105,
      111,
      100,
      97,
      110,
      110,
      111,
      117,
      110,
      99,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      32,
      104,
      101,
      116,
      104,
      101,
      32,
      105,
      110,
      116,
      101,
      114,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      97,
      110,
      100,
      32,
      109,
      111,
      114,
      101,
      32,
      114,
      101,
      99,
      101,
      110,
      116,
      108,
      121,
      98,
      101,
      108,
      105,
      101,
      118,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      99,
      111,
      110,
      115,
      99,
      105,
      111,
      117,
      115,
      110,
      101,
      115,
      115,
      32,
      97,
      110,
      100,
      102,
      111,
      114,
      109,
      101,
      114,
      108,
      121,
      32,
      107,
      110,
      111,
      119,
      110,
      32,
      97,
      115,
      115,
      117,
      114,
      114,
      111,
      117,
      110,
      100,
      101,
      100,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      102,
      105,
      114,
      115,
      116,
      32,
      97,
      112,
      112,
      101,
      97,
      114,
      101,
      100,
      32,
      105,
      110,
      111,
      99,
      99,
      97,
      115,
      105,
      111,
      110,
      97,
      108,
      108,
      121,
      32,
      117,
      115,
      101,
      100,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      58,
      97,
      98,
      115,
      111,
      108,
      117,
      116,
      101,
      59,
      34,
      32,
      116,
      97,
      114,
      103,
      101,
      116,
      61,
      34,
      95,
      98,
      108,
      97,
      110,
      107,
      34,
      32,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      58,
      114,
      101,
      108,
      97,
      116,
      105,
      118,
      101,
      59,
      116,
      101,
      120,
      116,
      45,
      97,
      108,
      105,
      103,
      110,
      58,
      99,
      101,
      110,
      116,
      101,
      114,
      59,
      106,
      97,
      120,
      47,
      108,
      105,
      98,
      115,
      47,
      106,
      113,
      117,
      101,
      114,
      121,
      47,
      49,
      46,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      45,
      99,
      111,
      108,
      111,
      114,
      58,
      35,
      116,
      121,
      112,
      101,
      61,
      34,
      97,
      112,
      112,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      47,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      60,
      109,
      101,
      116,
      97,
      32,
      104,
      116,
      116,
      112,
      45,
      101,
      113,
      117,
      105,
      118,
      61,
      34,
      80,
      114,
      105,
      118,
      97,
      99,
      121,
      32,
      80,
      111,
      108,
      105,
      99,
      121,
      60,
      47,
      97,
      62,
      101,
      40,
      34,
      37,
      51,
      67,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      115,
      114,
      99,
      61,
      39,
      34,
      32,
      116,
      97,
      114,
      103,
      101,
      116,
      61,
      34,
      95,
      98,
      108,
      97,
      110,
      107,
      34,
      62,
      79,
      110,
      32,
      116,
      104,
      101,
      32,
      111,
      116,
      104,
      101,
      114,
      32,
      104,
      97,
      110,
      100,
      44,
      46,
      106,
      112,
      103,
      124,
      116,
      104,
      117,
      109,
      98,
      124,
      114,
      105,
      103,
      104,
      116,
      124,
      50,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      60,
      100,
      105,
      118,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      102,
      108,
      111,
      97,
      116,
      58,
      110,
      105,
      110,
      101,
      116,
      101,
      101,
      110,
      116,
      104,
      32,
      99,
      101,
      110,
      116,
      117,
      114,
      121,
      60,
      47,
      98,
      111,
      100,
      121,
      62,
      13,
      10,
      60,
      47,
      104,
      116,
      109,
      108,
      62,
      13,
      10,
      60,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      115,
      59,
      116,
      101,
      120,
      116,
      45,
      97,
      108,
      105,
      103,
      110,
      58,
      99,
      101,
      110,
      116,
      101,
      114,
      102,
      111,
      110,
      116,
      45,
      119,
      101,
      105,
      103,
      104,
      116,
      58,
      32,
      98,
      111,
      108,
      100,
      59,
      32,
      65,
      99,
      99,
      111,
      114,
      100,
      105,
      110,
      103,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      32,
      98,
      101,
      116,
      119,
      101,
      101,
      110,
      34,
      32,
      102,
      114,
      97,
      109,
      101,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      34,
      48,
      34,
      32,
      34,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      58,
      108,
      105,
      110,
      107,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      104,
      116,
      109,
      108,
      52,
      47,
      108,
      111,
      111,
      115,
      101,
      46,
      100,
      116,
      100,
      34,
      62,
      10,
      100,
      117,
      114,
      105,
      110,
      103,
      32,
      116,
      104,
      105,
      115,
      32,
      112,
      101,
      114,
      105,
      111,
      100,
      60,
      47,
      116,
      100,
      62,
      60,
      47,
      116,
      114,
      62,
      60,
      47,
      116,
      97,
      98,
      108,
      101,
      62,
      99,
      108,
      111,
      115,
      101,
      108,
      121,
      32,
      114,
      101,
      108,
      97,
      116,
      101,
      100,
      32,
      116,
      111,
      102,
      111,
      114,
      32,
      116,
      104,
      101,
      32,
      102,
      105,
      114,
      115,
      116,
      32,
      116,
      105,
      109,
      101,
      59,
      102,
      111,
      110,
      116,
      45,
      119,
      101,
      105,
      103,
      104,
      116,
      58,
      98,
      111,
      108,
      100,
      59,
      105,
      110,
      112,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      34,
      32,
      60,
      115,
      112,
      97,
      110,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      102,
      111,
      110,
      116,
      45,
      111,
      110,
      114,
      101,
      97,
      100,
      121,
      115,
      116,
      97,
      116,
      101,
      99,
      104,
      97,
      110,
      103,
      101,
      9,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      99,
      108,
      101,
      97,
      114,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      108,
      111,
      99,
      97,
      116,
      105,
      111,
      110,
      46,
      32,
      70,
      111,
      114,
      32,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      44,
      32,
      116,
      104,
      101,
      32,
      97,
      32,
      119,
      105,
      100,
      101,
      32,
      118,
      97,
      114,
      105,
      101,
      116,
      121,
      32,
      111,
      102,
      32,
      60,
      33,
      68,
      79,
      67,
      84,
      89,
      80,
      69,
      32,
      104,
      116,
      109,
      108,
      62,
      13,
      10,
      60,
      38,
      110,
      98,
      115,
      112,
      59,
      38,
      110,
      98,
      115,
      112,
      59,
      38,
      110,
      98,
      115,
      112,
      59,
      34,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      102,
      108,
      111,
      97,
      116,
      58,
      108,
      101,
      102,
      116,
      59,
      99,
      111,
      110,
      99,
      101,
      114,
      110,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      61,
      104,
      116,
      116,
      112,
      37,
      51,
      65,
      37,
      50,
      70,
      37,
      50,
      70,
      119,
      119,
      119,
      46,
      105,
      110,
      32,
      112,
      111,
      112,
      117,
      108,
      97,
      114,
      32,
      99,
      117,
      108,
      116,
      117,
      114,
      101,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      32,
      47,
      62,
      105,
      116,
      32,
      105,
      115,
      32,
      112,
      111,
      115,
      115,
      105,
      98,
      108,
      101,
      32,
      116,
      111,
      32,
      72,
      97,
      114,
      118,
      97,
      114,
      100,
      32,
      85,
      110,
      105,
      118,
      101,
      114,
      115,
      105,
      116,
      121,
      116,
      121,
      108,
      101,
      115,
      104,
      101,
      101,
      116,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      47,
      116,
      104,
      101,
      32,
      109,
      97,
      105,
      110,
      32,
      99,
      104,
      97,
      114,
      97,
      99,
      116,
      101,
      114,
      79,
      120,
      102,
      111,
      114,
      100,
      32,
      85,
      110,
      105,
      118,
      101,
      114,
      115,
      105,
      116,
      121,
      32,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      107,
      101,
      121,
      119,
      111,
      114,
      100,
      115,
      34,
      32,
      99,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      45,
      97,
      108,
      105,
      103,
      110,
      58,
      116,
      104,
      101,
      32,
      85,
      110,
      105,
      116,
      101,
      100,
      32,
      75,
      105,
      110,
      103,
      100,
      111,
      109,
      102,
      101,
      100,
      101,
      114,
      97,
      108,
      32,
      103,
      111,
      118,
      101,
      114,
      110,
      109,
      101,
      110,
      116,
      60,
      100,
      105,
      118,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      109,
      97,
      114,
      103,
      105,
      110,
      32,
      100,
      101,
      112,
      101,
      110,
      100,
      105,
      110,
      103,
      32,
      111,
      110,
      32,
      116,
      104,
      101,
      32,
      100,
      101,
      115,
      99,
      114,
      105,
      112,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      104,
      101,
      97,
      100,
      101,
      114,
      46,
      109,
      105,
      110,
      46,
      106,
      115,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      100,
      101,
      115,
      116,
      114,
      117,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      115,
      108,
      105,
      103,
      104,
      116,
      108,
      121,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      105,
      110,
      32,
      97,
      99,
      99,
      111,
      114,
      100,
      97,
      110,
      99,
      101,
      32,
      119,
      105,
      116,
      104,
      116,
      101,
      108,
      101,
      99,
      111,
      109,
      109,
      117,
      110,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      115,
      105,
      110,
      100,
      105,
      99,
      97,
      116,
      101,
      115,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      115,
      104,
      111,
      114,
      116,
      108,
      121,
      32,
      116,
      104,
      101,
      114,
      101,
      97,
      102,
      116,
      101,
      114,
      101,
      115,
      112,
      101,
      99,
      105,
      97,
      108,
      108,
      121,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      69,
      117,
      114,
      111,
      112,
      101,
      97,
      110,
      32,
      99,
      111,
      117,
      110,
      116,
      114,
      105,
      101,
      115,
      72,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      116,
      104,
      101,
      114,
      101,
      32,
      97,
      114,
      101,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      115,
      116,
      97,
      116,
      105,
      99,
      115,
      117,
      103,
      103,
      101,
      115,
      116,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      34,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      97,
      32,
      108,
      97,
      114,
      103,
      101,
      32,
      110,
      117,
      109,
      98,
      101,
      114,
      32,
      111,
      102,
      32,
      84,
      101,
      108,
      101,
      99,
      111,
      109,
      109,
      117,
      110,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      115,
      34,
      32,
      114,
      101,
      108,
      61,
      34,
      110,
      111,
      102,
      111,
      108,
      108,
      111,
      119,
      34,
      32,
      116,
      72,
      111,
      108,
      121,
      32,
      82,
      111,
      109,
      97,
      110,
      32,
      69,
      109,
      112,
      101,
      114,
      111,
      114,
      97,
      108,
      109,
      111,
      115,
      116,
      32,
      101,
      120,
      99,
      108,
      117,
      115,
      105,
      118,
      101,
      108,
      121,
      34,
      32,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      34,
      48,
      34,
      32,
      97,
      108,
      116,
      61,
      34,
      83,
      101,
      99,
      114,
      101,
      116,
      97,
      114,
      121,
      32,
      111,
      102,
      32,
      83,
      116,
      97,
      116,
      101,
      99,
      117,
      108,
      109,
      105,
      110,
      97,
      116,
      105,
      110,
      103,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      67,
      73,
      65,
      32,
      87,
      111,
      114,
      108,
      100,
      32,
      70,
      97,
      99,
      116,
      98,
      111,
      111,
      107,
      116,
      104,
      101,
      32,
      109,
      111,
      115,
      116,
      32,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      97,
      110,
      110,
      105,
      118,
      101,
      114,
      115,
      97,
      114,
      121,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      45,
      60,
      108,
      105,
      62,
      60,
      101,
      109,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      47,
      116,
      104,
      101,
      32,
      65,
      116,
      108,
      97,
      110,
      116,
      105,
      99,
      32,
      79,
      99,
      101,
      97,
      110,
      115,
      116,
      114,
      105,
      99,
      116,
      108,
      121,
      32,
      115,
      112,
      101,
      97,
      107,
      105,
      110,
      103,
      44,
      115,
      104,
      111,
      114,
      116,
      108,
      121,
      32,
      98,
      101,
      102,
      111,
      114,
      101,
      32,
      116,
      104,
      101,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      32,
      116,
      121,
      112,
      101,
      115,
      32,
      111,
      102,
      116,
      104,
      101,
      32,
      79,
      116,
      116,
      111,
      109,
      97,
      110,
      32,
      69,
      109,
      112,
      105,
      114,
      101,
      62,
      60,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      65,
      110,
      32,
      73,
      110,
      116,
      114,
      111,
      100,
      117,
      99,
      116,
      105,
      111,
      110,
      32,
      116,
      111,
      99,
      111,
      110,
      115,
      101,
      113,
      117,
      101,
      110,
      99,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      100,
      101,
      112,
      97,
      114,
      116,
      117,
      114,
      101,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      67,
      111,
      110,
      102,
      101,
      100,
      101,
      114,
      97,
      116,
      101,
      32,
      83,
      116,
      97,
      116,
      101,
      115,
      105,
      110,
      100,
      105,
      103,
      101,
      110,
      111,
      117,
      115,
      32,
      112,
      101,
      111,
      112,
      108,
      101,
      115,
      80,
      114,
      111,
      99,
      101,
      101,
      100,
      105,
      110,
      103,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      105,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      110,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      111,
      114,
      105,
      101,
      115,
      32,
      104,
      97,
      118,
      101,
      32,
      98,
      101,
      101,
      110,
      105,
      110,
      118,
      111,
      108,
      118,
      101,
      109,
      101,
      110,
      116,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      100,
      105,
      118,
      105,
      100,
      101,
      100,
      32,
      105,
      110,
      116,
      111,
      32,
      116,
      104,
      114,
      101,
      101,
      97,
      100,
      106,
      97,
      99,
      101,
      110,
      116,
      32,
      99,
      111,
      117,
      110,
      116,
      114,
      105,
      101,
      115,
      105,
      115,
      32,
      114,
      101,
      115,
      112,
      111,
      110,
      115,
      105,
      98,
      108,
      101,
      32,
      102,
      111,
      114,
      100,
      105,
      115,
      115,
      111,
      108,
      117,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      99,
      111,
      108,
      108,
      97,
      98,
      111,
      114,
      97,
      116,
      105,
      111,
      110,
      32,
      119,
      105,
      116,
      104,
      119,
      105,
      100,
      101,
      108,
      121,
      32,
      114,
      101,
      103,
      97,
      114,
      100,
      101,
      100,
      32,
      97,
      115,
      104,
      105,
      115,
      32,
      99,
      111,
      110,
      116,
      101,
      109,
      112,
      111,
      114,
      97,
      114,
      105,
      101,
      115,
      102,
      111,
      117,
      110,
      100,
      105,
      110,
      103,
      32,
      109,
      101,
      109,
      98,
      101,
      114,
      32,
      111,
      102,
      68,
      111,
      109,
      105,
      110,
      105,
      99,
      97,
      110,
      32,
      82,
      101,
      112,
      117,
      98,
      108,
      105,
      99,
      103,
      101,
      110,
      101,
      114,
      97,
      108,
      108,
      121,
      32,
      97,
      99,
      99,
      101,
      112,
      116,
      101,
      100,
      116,
      104,
      101,
      32,
      112,
      111,
      115,
      115,
      105,
      98,
      105,
      108,
      105,
      116,
      121,
      32,
      111,
      102,
      97,
      114,
      101,
      32,
      97,
      108,
      115,
      111,
      32,
      97,
      118,
      97,
      105,
      108,
      97,
      98,
      108,
      101,
      117,
      110,
      100,
      101,
      114,
      32,
      99,
      111,
      110,
      115,
      116,
      114,
      117,
      99,
      116,
      105,
      111,
      110,
      114,
      101,
      115,
      116,
      111,
      114,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      103,
      101,
      110,
      101,
      114,
      97,
      108,
      32,
      112,
      117,
      98,
      108,
      105,
      99,
      105,
      115,
      32,
      97,
      108,
      109,
      111,
      115,
      116,
      32,
      101,
      110,
      116,
      105,
      114,
      101,
      108,
      121,
      112,
      97,
      115,
      115,
      101,
      115,
      32,
      116,
      104,
      114,
      111,
      117,
      103,
      104,
      32,
      116,
      104,
      101,
      104,
      97,
      115,
      32,
      98,
      101,
      101,
      110,
      32,
      115,
      117,
      103,
      103,
      101,
      115,
      116,
      101,
      100,
      99,
      111,
      109,
      112,
      117,
      116,
      101,
      114,
      32,
      97,
      110,
      100,
      32,
      118,
      105,
      100,
      101,
      111,
      71,
      101,
      114,
      109,
      97,
      110,
      105,
      99,
      32,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      115,
      32,
      97,
      99,
      99,
      111,
      114,
      100,
      105,
      110,
      103,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      115,
      104,
      111,
      114,
      116,
      108,
      121,
      32,
      97,
      102,
      116,
      101,
      114,
      119,
      97,
      114,
      100,
      115,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      115,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      114,
      101,
      99,
      101,
      110,
      116,
      32,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      109,
      101,
      110,
      116,
      66,
      111,
      97,
      114,
      100,
      32,
      111,
      102,
      32,
      68,
      105,
      114,
      101,
      99,
      116,
      111,
      114,
      115,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      115,
      101,
      97,
      114,
      99,
      104,
      124,
      32,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      73,
      110,
      32,
      112,
      97,
      114,
      116,
      105,
      99,
      117,
      108,
      97,
      114,
      44,
      32,
      116,
      104,
      101,
      77,
      117,
      108,
      116,
      105,
      112,
      108,
      101,
      32,
      102,
      111,
      111,
      116,
      110,
      111,
      116,
      101,
      115,
      111,
      114,
      32,
      111,
      116,
      104,
      101,
      114,
      32,
      115,
      117,
      98,
      115,
      116,
      97,
      110,
      99,
      101,
      116,
      104,
      111,
      117,
      115,
      97,
      110,
      100,
      115,
      32,
      111,
      102,
      32,
      121,
      101,
      97,
      114,
      115,
      116,
      114,
      97,
      110,
      115,
      108,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      60,
      47,
      100,
      105,
      118,
      62,
      13,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      13,
      10,
      13,
      10,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      105,
      110,
      100,
      101,
      120,
      46,
      112,
      104,
      112,
      119,
      97,
      115,
      32,
      101,
      115,
      116,
      97,
      98,
      108,
      105,
      115,
      104,
      101,
      100,
      32,
      105,
      110,
      109,
      105,
      110,
      46,
      106,
      115,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      112,
      97,
      114,
      116,
      105,
      99,
      105,
      112,
      97,
      116,
      101,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      97,
      32,
      115,
      116,
      114,
      111,
      110,
      103,
      32,
      105,
      110,
      102,
      108,
      117,
      101,
      110,
      99,
      101,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      109,
      97,
      114,
      103,
      105,
      110,
      45,
      116,
      111,
      112,
      58,
      114,
      101,
      112,
      114,
      101,
      115,
      101,
      110,
      116,
      101,
      100,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      103,
      114,
      97,
      100,
      117,
      97,
      116,
      101,
      100,
      32,
      102,
      114,
      111,
      109,
      32,
      116,
      104,
      101,
      84,
      114,
      97,
      100,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      108,
      121,
      44,
      32,
      116,
      104,
      101,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      40,
      34,
      115,
      99,
      114,
      105,
      112,
      116,
      34,
      41,
      59,
      72,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      115,
      105,
      110,
      99,
      101,
      32,
      116,
      104,
      101,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      100,
      105,
      118,
      32,
      108,
      101,
      102,
      116,
      59,
      32,
      109,
      97,
      114,
      103,
      105,
      110,
      45,
      108,
      101,
      102,
      116,
      58,
      112,
      114,
      111,
      116,
      101,
      99,
      116,
      105,
      111,
      110,
      32,
      97,
      103,
      97,
      105,
      110,
      115,
      116,
      48,
      59,
      32,
      118,
      101,
      114,
      116,
      105,
      99,
      97,
      108,
      45,
      97,
      108,
      105,
      103,
      110,
      58,
      85,
      110,
      102,
      111,
      114,
      116,
      117,
      110,
      97,
      116,
      101,
      108,
      121,
      44,
      32,
      116,
      104,
      101,
      116,
      121,
      112,
      101,
      61,
      34,
      105,
      109,
      97,
      103,
      101,
      47,
      120,
      45,
      105,
      99,
      111,
      110,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      99,
      108,
      101,
      97,
      114,
      102,
      105,
      120,
      34,
      62,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      102,
      111,
      111,
      116,
      101,
      114,
      9,
      9,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      9,
      9,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      116,
      104,
      101,
      32,
      109,
      111,
      116,
      105,
      111,
      110,
      32,
      112,
      105,
      99,
      116,
      117,
      114,
      101,
      208,
      145,
      209,
      138,
      208,
      187,
      208,
      179,
      208,
      176,
      209,
      128,
      209,
      129,
      208,
      186,
      208,
      184,
      208,
      177,
      209,
      138,
      208,
      187,
      208,
      179,
      208,
      176,
      209,
      128,
      209,
      129,
      208,
      186,
      208,
      184,
      208,
      164,
      208,
      181,
      208,
      180,
      208,
      181,
      209,
      128,
      208,
      176,
      209,
      134,
      208,
      184,
      208,
      184,
      208,
      189,
      208,
      181,
      209,
      129,
      208,
      186,
      208,
      190,
      208,
      187,
      209,
      140,
      208,
      186,
      208,
      190,
      209,
      129,
      208,
      190,
      208,
      190,
      208,
      177,
      209,
      137,
      208,
      181,
      208,
      189,
      208,
      184,
      208,
      181,
      209,
      129,
      208,
      190,
      208,
      190,
      208,
      177,
      209,
      137,
      208,
      181,
      208,
      189,
      208,
      184,
      209,
      143,
      208,
      191,
      209,
      128,
      208,
      190,
      208,
      179,
      209,
      128,
      208,
      176,
      208,
      188,
      208,
      188,
      209,
      139,
      208,
      158,
      209,
      130,
      208,
      191,
      209,
      128,
      208,
      176,
      208,
      178,
      208,
      184,
      209,
      130,
      209,
      140,
      208,
      177,
      208,
      181,
      209,
      129,
      208,
      191,
      208,
      187,
      208,
      176,
      209,
      130,
      208,
      189,
      208,
      190,
      208,
      188,
      208,
      176,
      209,
      130,
      208,
      181,
      209,
      128,
      208,
      184,
      208,
      176,
      208,
      187,
      209,
      139,
      208,
      191,
      208,
      190,
      208,
      183,
      208,
      178,
      208,
      190,
      208,
      187,
      209,
      143,
      208,
      181,
      209,
      130,
      208,
      191,
      208,
      190,
      209,
      129,
      208,
      187,
      208,
      181,
      208,
      180,
      208,
      189,
      208,
      184,
      208,
      181,
      209,
      128,
      208,
      176,
      208,
      183,
      208,
      187,
      208,
      184,
      209,
      135,
      208,
      189,
      209,
      139,
      209,
      133,
      208,
      191,
      209,
      128,
      208,
      190,
      208,
      180,
      209,
      131,
      208,
      186,
      209,
      134,
      208,
      184,
      208,
      184,
      208,
      191,
      209,
      128,
      208,
      190,
      208,
      179,
      209,
      128,
      208,
      176,
      208,
      188,
      208,
      188,
      208,
      176,
      208,
      191,
      208,
      190,
      208,
      187,
      208,
      189,
      208,
      190,
      209,
      129,
      209,
      130,
      209,
      140,
      209,
      142,
      208,
      189,
      208,
      176,
      209,
      133,
      208,
      190,
      208,
      180,
      208,
      184,
      209,
      130,
      209,
      129,
      209,
      143,
      208,
      184,
      208,
      183,
      208,
      177,
      209,
      128,
      208,
      176,
      208,
      189,
      208,
      189,
      208,
      190,
      208,
      181,
      208,
      189,
      208,
      176,
      209,
      129,
      208,
      181,
      208,
      187,
      208,
      181,
      208,
      189,
      208,
      184,
      209,
      143,
      208,
      184,
      208,
      183,
      208,
      188,
      208,
      181,
      208,
      189,
      208,
      181,
      208,
      189,
      208,
      184,
      209,
      143,
      208,
      186,
      208,
      176,
      209,
      130,
      208,
      181,
      208,
      179,
      208,
      190,
      209,
      128,
      208,
      184,
      208,
      184,
      208,
      144,
      208,
      187,
      208,
      181,
      208,
      186,
      209,
      129,
      208,
      176,
      208,
      189,
      208,
      180,
      209,
      128,
      224,
      164,
      166,
      224,
      165,
      141,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      174,
      224,
      165,
      136,
      224,
      164,
      168,
      224,
      165,
      129,
      224,
      164,
      133,
      224,
      164,
      178,
      224,
      164,
      170,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      166,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      164,
      173,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      164,
      224,
      165,
      128,
      224,
      164,
      175,
      224,
      164,
      133,
      224,
      164,
      168,
      224,
      165,
      129,
      224,
      164,
      166,
      224,
      165,
      135,
      224,
      164,
      182,
      224,
      164,
      185,
      224,
      164,
      191,
      224,
      164,
      168,
      224,
      165,
      141,
      224,
      164,
      166,
      224,
      165,
      128,
      224,
      164,
      135,
      224,
      164,
      130,
      224,
      164,
      161,
      224,
      164,
      191,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      166,
      224,
      164,
      191,
      224,
      164,
      178,
      224,
      165,
      141,
      224,
      164,
      178,
      224,
      165,
      128,
      224,
      164,
      133,
      224,
      164,
      167,
      224,
      164,
      191,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      181,
      224,
      165,
      128,
      224,
      164,
      161,
      224,
      164,
      191,
      224,
      164,
      175,
      224,
      165,
      139,
      224,
      164,
      154,
      224,
      164,
      191,
      224,
      164,
      159,
      224,
      165,
      141,
      224,
      164,
      160,
      224,
      165,
      135,
      224,
      164,
      184,
      224,
      164,
      174,
      224,
      164,
      190,
      224,
      164,
      154,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      156,
      224,
      164,
      130,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      182,
      224,
      164,
      168,
      224,
      164,
      166,
      224,
      165,
      129,
      224,
      164,
      168,
      224,
      164,
      191,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      170,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      175,
      224,
      165,
      139,
      224,
      164,
      151,
      224,
      164,
      133,
      224,
      164,
      168,
      224,
      165,
      129,
      224,
      164,
      184,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      145,
      224,
      164,
      168,
      224,
      164,
      178,
      224,
      164,
      190,
      224,
      164,
      135,
      224,
      164,
      168,
      224,
      164,
      170,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      165,
      141,
      224,
      164,
      159,
      224,
      165,
      128,
      224,
      164,
      182,
      224,
      164,
      176,
      224,
      165,
      141,
      224,
      164,
      164,
      224,
      165,
      139,
      224,
      164,
      130,
      224,
      164,
      178,
      224,
      165,
      139,
      224,
      164,
      149,
      224,
      164,
      184,
      224,
      164,
      173,
      224,
      164,
      190,
      224,
      164,
      171,
      224,
      164,
      188,
      224,
      165,
      141,
      224,
      164,
      178,
      224,
      165,
      136,
      224,
      164,
      182,
      224,
      164,
      182,
      224,
      164,
      176,
      224,
      165,
      141,
      224,
      164,
      164,
      224,
      165,
      135,
      224,
      164,
      130,
      224,
      164,
      170,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      166,
      224,
      165,
      135,
      224,
      164,
      182,
      224,
      164,
      170,
      224,
      165,
      141,
      224,
      164,
      178,
      224,
      165,
      135,
      224,
      164,
      175,
      224,
      164,
      176,
      224,
      164,
      149,
      224,
      165,
      135,
      224,
      164,
      130,
      224,
      164,
      166,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      184,
      224,
      165,
      141,
      224,
      164,
      165,
      224,
      164,
      191,
      224,
      164,
      164,
      224,
      164,
      191,
      224,
      164,
      137,
      224,
      164,
      164,
      224,
      165,
      141,
      224,
      164,
      170,
      224,
      164,
      190,
      224,
      164,
      166,
      224,
      164,
      137,
      224,
      164,
      168,
      224,
      165,
      141,
      224,
      164,
      185,
      224,
      165,
      135,
      224,
      164,
      130,
      224,
      164,
      154,
      224,
      164,
      191,
      224,
      164,
      159,
      224,
      165,
      141,
      224,
      164,
      160,
      224,
      164,
      190,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      164,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      156,
      224,
      165,
      141,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      166,
      224,
      164,
      190,
      224,
      164,
      170,
      224,
      165,
      129,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      156,
      224,
      165,
      139,
      224,
      164,
      161,
      224,
      164,
      188,
      224,
      165,
      135,
      224,
      164,
      130,
      224,
      164,
      133,
      224,
      164,
      168,
      224,
      165,
      129,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      166,
      224,
      164,
      182,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      165,
      135,
      224,
      164,
      163,
      224,
      165,
      128,
      224,
      164,
      182,
      224,
      164,
      191,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      183,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      164,
      176,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      165,
      128,
      224,
      164,
      184,
      224,
      164,
      130,
      224,
      164,
      151,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      185,
      224,
      164,
      170,
      224,
      164,
      176,
      224,
      164,
      191,
      224,
      164,
      163,
      224,
      164,
      190,
      224,
      164,
      174,
      224,
      164,
      172,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      130,
      224,
      164,
      161,
      224,
      164,
      172,
      224,
      164,
      154,
      224,
      165,
      141,
      224,
      164,
      154,
      224,
      165,
      139,
      224,
      164,
      130,
      224,
      164,
      137,
      224,
      164,
      170,
      224,
      164,
      178,
      224,
      164,
      172,
      224,
      165,
      141,
      224,
      164,
      167,
      224,
      164,
      174,
      224,
      164,
      130,
      224,
      164,
      164,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      165,
      128,
      224,
      164,
      184,
      224,
      164,
      130,
      224,
      164,
      170,
      224,
      164,
      176,
      224,
      165,
      141,
      224,
      164,
      149,
      224,
      164,
      137,
      224,
      164,
      174,
      224,
      165,
      141,
      224,
      164,
      174,
      224,
      165,
      128,
      224,
      164,
      166,
      224,
      164,
      174,
      224,
      164,
      190,
      224,
      164,
      167,
      224,
      165,
      141,
      224,
      164,
      175,
      224,
      164,
      174,
      224,
      164,
      184,
      224,
      164,
      185,
      224,
      164,
      190,
      224,
      164,
      175,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      182,
      224,
      164,
      172,
      224,
      165,
      141,
      224,
      164,
      166,
      224,
      165,
      139,
      224,
      164,
      130,
      224,
      164,
      174,
      224,
      165,
      128,
      224,
      164,
      161,
      224,
      164,
      191,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      134,
      224,
      164,
      136,
      224,
      164,
      170,
      224,
      165,
      128,
      224,
      164,
      143,
      224,
      164,
      178,
      224,
      164,
      174,
      224,
      165,
      139,
      224,
      164,
      172,
      224,
      164,
      190,
      224,
      164,
      135,
      224,
      164,
      178,
      224,
      164,
      184,
      224,
      164,
      130,
      224,
      164,
      150,
      224,
      165,
      141,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      134,
      224,
      164,
      170,
      224,
      164,
      176,
      224,
      165,
      135,
      224,
      164,
      182,
      224,
      164,
      168,
      224,
      164,
      133,
      224,
      164,
      168,
      224,
      165,
      129,
      224,
      164,
      172,
      224,
      164,
      130,
      224,
      164,
      167,
      224,
      164,
      172,
      224,
      164,
      190,
      224,
      164,
      156,
      224,
      164,
      188,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      168,
      224,
      164,
      181,
      224,
      165,
      128,
      224,
      164,
      168,
      224,
      164,
      164,
      224,
      164,
      174,
      224,
      164,
      170,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      174,
      224,
      165,
      129,
      224,
      164,
      150,
      224,
      164,
      170,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      182,
      224,
      165,
      141,
      224,
      164,
      168,
      224,
      164,
      170,
      224,
      164,
      176,
      224,
      164,
      191,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      168,
      224,
      165,
      129,
      224,
      164,
      149,
      224,
      164,
      184,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      164,
      184,
      224,
      164,
      174,
      224,
      164,
      176,
      224,
      165,
      141,
      224,
      164,
      165,
      224,
      164,
      168,
      224,
      164,
      134,
      224,
      164,
      175,
      224,
      165,
      139,
      224,
      164,
      156,
      224,
      164,
      191,
      224,
      164,
      164,
      224,
      164,
      184,
      224,
      165,
      139,
      224,
      164,
      174,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      176,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      180,
      216,
      167,
      216,
      177,
      217,
      131,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      217,
      133,
      217,
      134,
      216,
      170,
      216,
      175,
      217,
      138,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      217,
      131,
      217,
      133,
      216,
      168,
      217,
      138,
      217,
      136,
      216,
      170,
      216,
      177,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      180,
      216,
      167,
      217,
      135,
      216,
      175,
      216,
      167,
      216,
      170,
      216,
      185,
      216,
      175,
      216,
      175,
      216,
      167,
      217,
      132,
      216,
      178,
      217,
      136,
      216,
      167,
      216,
      177,
      216,
      185,
      216,
      175,
      216,
      175,
      216,
      167,
      217,
      132,
      216,
      177,
      216,
      175,
      217,
      136,
      216,
      175,
      216,
      167,
      217,
      132,
      216,
      165,
      216,
      179,
      217,
      132,
      216,
      167,
      217,
      133,
      217,
      138,
      216,
      169,
      216,
      167,
      217,
      132,
      217,
      129,
      217,
      136,
      216,
      170,
      217,
      136,
      216,
      180,
      217,
      136,
      216,
      168,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      179,
      216,
      167,
      216,
      168,
      217,
      130,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      185,
      217,
      132,
      217,
      136,
      217,
      133,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      179,
      217,
      132,
      216,
      179,
      217,
      132,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      216,
      172,
      216,
      177,
      216,
      167,
      217,
      129,
      217,
      138,
      217,
      131,
      216,
      179,
      216,
      167,
      217,
      132,
      216,
      167,
      216,
      179,
      217,
      132,
      216,
      167,
      217,
      133,
      217,
      138,
      216,
      169,
      216,
      167,
      217,
      132,
      216,
      167,
      216,
      170,
      216,
      181,
      216,
      167,
      217,
      132,
      216,
      167,
      216,
      170,
      107,
      101,
      121,
      119,
      111,
      114,
      100,
      115,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      119,
      51,
      46,
      111,
      114,
      103,
      47,
      49,
      57,
      57,
      57,
      47,
      120,
      104,
      116,
      109,
      108,
      34,
      62,
      60,
      97,
      32,
      116,
      97,
      114,
      103,
      101,
      116,
      61,
      34,
      95,
      98,
      108,
      97,
      110,
      107,
      34,
      32,
      116,
      101,
      120,
      116,
      47,
      104,
      116,
      109,
      108,
      59,
      32,
      99,
      104,
      97,
      114,
      115,
      101,
      116,
      61,
      34,
      32,
      116,
      97,
      114,
      103,
      101,
      116,
      61,
      34,
      95,
      98,
      108,
      97,
      110,
      107,
      34,
      62,
      60,
      116,
      97,
      98,
      108,
      101,
      32,
      99,
      101,
      108,
      108,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      61,
      34,
      97,
      117,
      116,
      111,
      99,
      111,
      109,
      112,
      108,
      101,
      116,
      101,
      61,
      34,
      111,
      102,
      102,
      34,
      32,
      116,
      101,
      120,
      116,
      45,
      97,
      108,
      105,
      103,
      110,
      58,
      32,
      99,
      101,
      110,
      116,
      101,
      114,
      59,
      116,
      111,
      32,
      108,
      97,
      115,
      116,
      32,
      118,
      101,
      114,
      115,
      105,
      111,
      110,
      32,
      98,
      121,
      32,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      45,
      99,
      111,
      108,
      111,
      114,
      58,
      32,
      35,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      47,
      100,
      105,
      118,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      100,
      105,
      118,
      32,
      105,
      100,
      61,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      35,
      34,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      34,
      62,
      60,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      99,
      114,
      105,
      112,
      116,
      34,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      10,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      61,
      34,
      47,
      47,
      69,
      78,
      34,
      32,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      119,
      101,
      110,
      99,
      111,
      100,
      101,
      85,
      82,
      73,
      67,
      111,
      109,
      112,
      111,
      110,
      101,
      110,
      116,
      40,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      58,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      119,
      114,
      105,
      116,
      101,
      40,
      39,
      60,
      115,
      99,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      58,
      32,
      97,
      98,
      115,
      111,
      108,
      117,
      116,
      101,
      59,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      109,
      97,
      114,
      103,
      105,
      110,
      45,
      116,
      111,
      112,
      58,
      46,
      109,
      105,
      110,
      46,
      106,
      115,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      119,
      51,
      46,
      111,
      114,
      103,
      47,
      49,
      57,
      57,
      57,
      47,
      120,
      104,
      116,
      109,
      108,
      34,
      32,
      10,
      13,
      10,
      60,
      47,
      98,
      111,
      100,
      121,
      62,
      13,
      10,
      60,
      47,
      104,
      116,
      109,
      108,
      62,
      100,
      105,
      115,
      116,
      105,
      110,
      99,
      116,
      105,
      111,
      110,
      32,
      98,
      101,
      116,
      119,
      101,
      101,
      110,
      47,
      34,
      32,
      116,
      97,
      114,
      103,
      101,
      116,
      61,
      34,
      95,
      98,
      108,
      97,
      110,
      107,
      34,
      62,
      60,
      108,
      105,
      110,
      107,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      101,
      110,
      99,
      111,
      100,
      105,
      110,
      103,
      61,
      34,
      117,
      116,
      102,
      45,
      56,
      34,
      63,
      62,
      10,
      119,
      46,
      97,
      100,
      100,
      69,
      118,
      101,
      110,
      116,
      76,
      105,
      115,
      116,
      101,
      110,
      101,
      114,
      63,
      97,
      99,
      116,
      105,
      111,
      110,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      105,
      99,
      111,
      110,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      58,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      32,
      47,
      62,
      10,
      109,
      101,
      116,
      97,
      32,
      112,
      114,
      111,
      112,
      101,
      114,
      116,
      121,
      61,
      34,
      111,
      103,
      58,
      116,
      60,
      105,
      110,
      112,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      34,
      32,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      45,
      97,
      108,
      105,
      103,
      110,
      58,
      116,
      104,
      101,
      32,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      109,
      101,
      110,
      116,
      32,
      111,
      102,
      32,
      116,
      121,
      108,
      101,
      115,
      104,
      101,
      101,
      116,
      34,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      104,
      116,
      109,
      108,
      59,
      32,
      99,
      104,
      97,
      114,
      115,
      101,
      116,
      61,
      117,
      116,
      102,
      45,
      56,
      105,
      115,
      32,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      101,
      100,
      32,
      116,
      111,
      32,
      98,
      101,
      116,
      97,
      98,
      108,
      101,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      49,
      48,
      48,
      37,
      34,
      32,
      73,
      110,
      32,
      97,
      100,
      100,
      105,
      116,
      105,
      111,
      110,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      99,
      111,
      110,
      116,
      114,
      105,
      98,
      117,
      116,
      101,
      100,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      99,
      101,
      115,
      32,
      98,
      101,
      116,
      119,
      101,
      101,
      110,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      109,
      101,
      110,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      73,
      116,
      32,
      105,
      115,
      32,
      105,
      109,
      112,
      111,
      114,
      116,
      97,
      110,
      116,
      32,
      116,
      111,
      32,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      10,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      102,
      111,
      110,
      116,
      45,
      115,
      105,
      122,
      101,
      58,
      49,
      62,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      115,
      112,
      97,
      110,
      32,
      105,
      100,
      61,
      103,
      98,
      76,
      105,
      98,
      114,
      97,
      114,
      121,
      32,
      111,
      102,
      32,
      67,
      111,
      110,
      103,
      114,
      101,
      115,
      115,
      60,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      105,
      109,
      69,
      110,
      103,
      108,
      105,
      115,
      104,
      32,
      116,
      114,
      97,
      110,
      115,
      108,
      97,
      116,
      105,
      111,
      110,
      65,
      99,
      97,
      100,
      101,
      109,
      121,
      32,
      111,
      102,
      32,
      83,
      99,
      105,
      101,
      110,
      99,
      101,
      115,
      100,
      105,
      118,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      99,
      111,
      110,
      115,
      116,
      114,
      117,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      46,
      103,
      101,
      116,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      66,
      121,
      73,
      100,
      40,
      105,
      100,
      41,
      105,
      110,
      32,
      99,
      111,
      110,
      106,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      32,
      119,
      105,
      116,
      104,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      40,
      39,
      115,
      99,
      114,
      105,
      112,
      116,
      39,
      41,
      59,
      32,
      60,
      109,
      101,
      116,
      97,
      32,
      112,
      114,
      111,
      112,
      101,
      114,
      116,
      121,
      61,
      34,
      111,
      103,
      58,
      208,
      145,
      209,
      138,
      208,
      187,
      208,
      179,
      208,
      176,
      209,
      128,
      209,
      129,
      208,
      186,
      208,
      184,
      10,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      34,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      62,
      80,
      114,
      105,
      118,
      97,
      99,
      121,
      32,
      80,
      111,
      108,
      105,
      99,
      121,
      60,
      47,
      97,
      62,
      97,
      100,
      109,
      105,
      110,
      105,
      115,
      116,
      101,
      114,
      101,
      100,
      32,
      98,
      121,
      32,
      116,
      104,
      101,
      101,
      110,
      97,
      98,
      108,
      101,
      83,
      105,
      110,
      103,
      108,
      101,
      82,
      101,
      113,
      117,
      101,
      115,
      116,
      115,
      116,
      121,
      108,
      101,
      61,
      38,
      113,
      117,
      111,
      116,
      59,
      109,
      97,
      114,
      103,
      105,
      110,
      58,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      62,
      60,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      105,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      38,
      113,
      117,
      111,
      116,
      59,
      102,
      108,
      111,
      97,
      116,
      58,
      114,
      101,
      102,
      101,
      114,
      114,
      101,
      100,
      32,
      116,
      111,
      32,
      97,
      115,
      32,
      116,
      104,
      101,
      32,
      116,
      111,
      116,
      97,
      108,
      32,
      112,
      111,
      112,
      117,
      108,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      105,
      110,
      32,
      87,
      97,
      115,
      104,
      105,
      110,
      103,
      116,
      111,
      110,
      44,
      32,
      68,
      46,
      67,
      46,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      45,
      97,
      109,
      111,
      110,
      103,
      32,
      111,
      116,
      104,
      101,
      114,
      32,
      116,
      104,
      105,
      110,
      103,
      115,
      44,
      111,
      114,
      103,
      97,
      110,
      105,
      122,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      112,
      97,
      114,
      116,
      105,
      99,
      105,
      112,
      97,
      116,
      101,
      100,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      105,
      110,
      116,
      114,
      111,
      100,
      117,
      99,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      105,
      100,
      101,
      110,
      116,
      105,
      102,
      105,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      102,
      105,
      99,
      116,
      105,
      111,
      110,
      97,
      108,
      32,
      99,
      104,
      97,
      114,
      97,
      99,
      116,
      101,
      114,
      32,
      79,
      120,
      102,
      111,
      114,
      100,
      32,
      85,
      110,
      105,
      118,
      101,
      114,
      115,
      105,
      116,
      121,
      32,
      109,
      105,
      115,
      117,
      110,
      100,
      101,
      114,
      115,
      116,
      97,
      110,
      100,
      105,
      110,
      103,
      32,
      111,
      102,
      84,
      104,
      101,
      114,
      101,
      32,
      97,
      114,
      101,
      44,
      32,
      104,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      115,
      116,
      121,
      108,
      101,
      115,
      104,
      101,
      101,
      116,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      47,
      67,
      111,
      108,
      117,
      109,
      98,
      105,
      97,
      32,
      85,
      110,
      105,
      118,
      101,
      114,
      115,
      105,
      116,
      121,
      101,
      120,
      112,
      97,
      110,
      100,
      101,
      100,
      32,
      116,
      111,
      32,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      117,
      115,
      117,
      97,
      108,
      108,
      121,
      32,
      114,
      101,
      102,
      101,
      114,
      114,
      101,
      100,
      32,
      116,
      111,
      105,
      110,
      100,
      105,
      99,
      97,
      116,
      105,
      110,
      103,
      32,
      116,
      104,
      97,
      116,
      32,
      116,
      104,
      101,
      104,
      97,
      118,
      101,
      32,
      115,
      117,
      103,
      103,
      101,
      115,
      116,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      97,
      102,
      102,
      105,
      108,
      105,
      97,
      116,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      99,
      111,
      114,
      114,
      101,
      108,
      97,
      116,
      105,
      111,
      110,
      32,
      98,
      101,
      116,
      119,
      101,
      101,
      110,
      110,
      117,
      109,
      98,
      101,
      114,
      32,
      111,
      102,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      62,
      60,
      47,
      116,
      100,
      62,
      60,
      47,
      116,
      114,
      62,
      60,
      47,
      116,
      97,
      98,
      108,
      101,
      62,
      82,
      101,
      112,
      117,
      98,
      108,
      105,
      99,
      32,
      111,
      102,
      32,
      73,
      114,
      101,
      108,
      97,
      110,
      100,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      117,
      110,
      100,
      101,
      114,
      32,
      116,
      104,
      101,
      32,
      105,
      110,
      102,
      108,
      117,
      101,
      110,
      99,
      101,
      99,
      111,
      110,
      116,
      114,
      105,
      98,
      117,
      116,
      105,
      111,
      110,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      79,
      102,
      102,
      105,
      99,
      105,
      97,
      108,
      32,
      119,
      101,
      98,
      115,
      105,
      116,
      101,
      32,
      111,
      102,
      104,
      101,
      97,
      100,
      113,
      117,
      97,
      114,
      116,
      101,
      114,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      99,
      101,
      110,
      116,
      101,
      114,
      101,
      100,
      32,
      97,
      114,
      111,
      117,
      110,
      100,
      32,
      116,
      104,
      101,
      105,
      109,
      112,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      104,
      97,
      118,
      101,
      32,
      98,
      101,
      101,
      110,
      32,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      101,
      100,
      70,
      101,
      100,
      101,
      114,
      97,
      108,
      32,
      82,
      101,
      112,
      117,
      98,
      108,
      105,
      99,
      32,
      111,
      102,
      98,
      101,
      99,
      97,
      109,
      101,
      32,
      105,
      110,
      99,
      114,
      101,
      97,
      115,
      105,
      110,
      103,
      108,
      121,
      99,
      111,
      110,
      116,
      105,
      110,
      117,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      78,
      111,
      116,
      101,
      44,
      32,
      104,
      111,
      119,
      101,
      118,
      101,
      114,
      44,
      32,
      116,
      104,
      97,
      116,
      115,
      105,
      109,
      105,
      108,
      97,
      114,
      32,
      116,
      111,
      32,
      116,
      104,
      97,
      116,
      32,
      111,
      102,
      32,
      99,
      97,
      112,
      97,
      98,
      105,
      108,
      105,
      116,
      105,
      101,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      97,
      99,
      99,
      111,
      114,
      100,
      97,
      110,
      99,
      101,
      32,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      112,
      97,
      114,
      116,
      105,
      99,
      105,
      112,
      97,
      110,
      116,
      115,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      102,
      117,
      114,
      116,
      104,
      101,
      114,
      32,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      109,
      101,
      110,
      116,
      117,
      110,
      100,
      101,
      114,
      32,
      116,
      104,
      101,
      32,
      100,
      105,
      114,
      101,
      99,
      116,
      105,
      111,
      110,
      105,
      115,
      32,
      111,
      102,
      116,
      101,
      110,
      32,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      101,
      100,
      104,
      105,
      115,
      32,
      121,
      111,
      117,
      110,
      103,
      101,
      114,
      32,
      98,
      114,
      111,
      116,
      104,
      101,
      114,
      60,
      47,
      116,
      100,
      62,
      60,
      47,
      116,
      114,
      62,
      60,
      47,
      116,
      97,
      98,
      108,
      101,
      62,
      60,
      97,
      32,
      104,
      116,
      116,
      112,
      45,
      101,
      113,
      117,
      105,
      118,
      61,
      34,
      88,
      45,
      85,
      65,
      45,
      112,
      104,
      121,
      115,
      105,
      99,
      97,
      108,
      32,
      112,
      114,
      111,
      112,
      101,
      114,
      116,
      105,
      101,
      115,
      111,
      102,
      32,
      66,
      114,
      105,
      116,
      105,
      115,
      104,
      32,
      67,
      111,
      108,
      117,
      109,
      98,
      105,
      97,
      104,
      97,
      115,
      32,
      98,
      101,
      101,
      110,
      32,
      99,
      114,
      105,
      116,
      105,
      99,
      105,
      122,
      101,
      100,
      40,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      32,
      101,
      120,
      99,
      101,
      112,
      116,
      105,
      111,
      110,
      113,
      117,
      101,
      115,
      116,
      105,
      111,
      110,
      115,
      32,
      97,
      98,
      111,
      117,
      116,
      32,
      116,
      104,
      101,
      112,
      97,
      115,
      115,
      105,
      110,
      103,
      32,
      116,
      104,
      114,
      111,
      117,
      103,
      104,
      32,
      116,
      104,
      101,
      48,
      34,
      32,
      99,
      101,
      108,
      108,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      61,
      34,
      48,
      34,
      32,
      116,
      104,
      111,
      117,
      115,
      97,
      110,
      100,
      115,
      32,
      111,
      102,
      32,
      112,
      101,
      111,
      112,
      108,
      101,
      114,
      101,
      100,
      105,
      114,
      101,
      99,
      116,
      115,
      32,
      104,
      101,
      114,
      101,
      46,
      32,
      70,
      111,
      114,
      104,
      97,
      118,
      101,
      32,
      99,
      104,
      105,
      108,
      100,
      114,
      101,
      110,
      32,
      117,
      110,
      100,
      101,
      114,
      37,
      51,
      69,
      37,
      51,
      67,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      37,
      51,
      69,
      34,
      41,
      41,
      59,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      60,
      108,
      105,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      115,
      105,
      116,
      101,
      95,
      110,
      97,
      109,
      101,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      116,
      101,
      120,
      116,
      45,
      100,
      101,
      99,
      111,
      114,
      97,
      116,
      105,
      111,
      110,
      58,
      110,
      111,
      110,
      101,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      32,
      110,
      111,
      110,
      101,
      60,
      109,
      101,
      116,
      97,
      32,
      104,
      116,
      116,
      112,
      45,
      101,
      113,
      117,
      105,
      118,
      61,
      34,
      88,
      45,
      110,
      101,
      119,
      32,
      68,
      97,
      116,
      101,
      40,
      41,
      46,
      103,
      101,
      116,
      84,
      105,
      109,
      101,
      40,
      41,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      105,
      109,
      97,
      103,
      101,
      47,
      120,
      45,
      105,
      99,
      111,
      110,
      34,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      61,
      34,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      119,
      105,
      110,
      100,
      111,
      119,
      46,
      108,
      111,
      99,
      97,
      116,
      105,
      111,
      110,
      46,
      104,
      114,
      101,
      102,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      58,
      45,
      45,
      62,
      13,
      10,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      39,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      104,
      111,
      114,
      116,
      99,
      117,
      116,
      32,
      105,
      99,
      111,
      110,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      60,
      47,
      100,
      105,
      118,
      62,
      13,
      10,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      34,
      32,
      114,
      101,
      108,
      61,
      34,
      115,
      116,
      121,
      108,
      101,
      115,
      104,
      101,
      101,
      116,
      34,
      32,
      116,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      47,
      97,
      62,
      32,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      32,
      97,
      108,
      108,
      111,
      119,
      84,
      114,
      97,
      110,
      115,
      112,
      97,
      114,
      101,
      110,
      99,
      121,
      61,
      34,
      88,
      45,
      85,
      65,
      45,
      67,
      111,
      109,
      112,
      97,
      116,
      105,
      98,
      108,
      101,
      34,
      32,
      99,
      111,
      110,
      114,
      101,
      108,
      97,
      116,
      105,
      111,
      110,
      115,
      104,
      105,
      112,
      32,
      98,
      101,
      116,
      119,
      101,
      101,
      110,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      13,
      10,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      60,
      47,
      97,
      62,
      60,
      47,
      108,
      105,
      62,
      60,
      47,
      117,
      108,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      97,
      115,
      115,
      111,
      99,
      105,
      97,
      116,
      101,
      100,
      32,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      32,
      112,
      114,
      111,
      103,
      114,
      97,
      109,
      109,
      105,
      110,
      103,
      32,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      60,
      47,
      97,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      60,
      47,
      97,
      62,
      60,
      47,
      108,
      105,
      62,
      60,
      108,
      105,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      102,
      111,
      114,
      109,
      32,
      97,
      99,
      116,
      105,
      111,
      110,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      60,
      100,
      105,
      118,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      34,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      113,
      34,
      60,
      116,
      97,
      98,
      108,
      101,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      49,
      48,
      48,
      37,
      34,
      32,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      45,
      112,
      111,
      115,
      105,
      116,
      105,
      111,
      110,
      58,
      34,
      32,
      98,
      111,
      114,
      100,
      101,
      114,
      61,
      34,
      48,
      34,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      114,
      101,
      108,
      61,
      34,
      115,
      104,
      111,
      114,
      116,
      99,
      117,
      116,
      32,
      105,
      99,
      111,
      110,
      34,
      32,
      104,
      54,
      62,
      60,
      117,
      108,
      62,
      60,
      108,
      105,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      32,
      32,
      60,
      109,
      101,
      116,
      97,
      32,
      104,
      116,
      116,
      112,
      45,
      101,
      113,
      117,
      105,
      118,
      61,
      34,
      99,
      115,
      115,
      34,
      32,
      109,
      101,
      100,
      105,
      97,
      61,
      34,
      115,
      99,
      114,
      101,
      101,
      110,
      34,
      32,
      114,
      101,
      115,
      112,
      111,
      110,
      115,
      105,
      98,
      108,
      101,
      32,
      102,
      111,
      114,
      32,
      116,
      104,
      101,
      32,
      34,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      97,
      112,
      112,
      108,
      105,
      99,
      97,
      116,
      105,
      111,
      110,
      47,
      34,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      45,
      104,
      116,
      109,
      108,
      59,
      32,
      99,
      104,
      97,
      114,
      115,
      101,
      116,
      61,
      117,
      116,
      102,
      45,
      56,
      34,
      32,
      97,
      108,
      108,
      111,
      119,
      116,
      114,
      97,
      110,
      115,
      112,
      97,
      114,
      101,
      110,
      99,
      121,
      61,
      34,
      115,
      116,
      121,
      108,
      101,
      115,
      104,
      101,
      101,
      116,
      34,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      13,
      10,
      60,
      109,
      101,
      116,
      97,
      32,
      104,
      116,
      116,
      112,
      45,
      101,
      113,
      117,
      105,
      118,
      61,
      34,
      62,
      60,
      47,
      115,
      112,
      97,
      110,
      62,
      60,
      115,
      112,
      97,
      110,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      48,
      34,
      32,
      99,
      101,
      108,
      108,
      115,
      112,
      97,
      99,
      105,
      110,
      103,
      61,
      34,
      48,
      34,
      62,
      59,
      10,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      115,
      111,
      109,
      101,
      116,
      105,
      109,
      101,
      115,
      32,
      99,
      97,
      108,
      108,
      101,
      100,
      32,
      116,
      104,
      101,
      100,
      111,
      101,
      115,
      32,
      110,
      111,
      116,
      32,
      110,
      101,
      99,
      101,
      115,
      115,
      97,
      114,
      105,
      108,
      121,
      70,
      111,
      114,
      32,
      109,
      111,
      114,
      101,
      32,
      105,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      97,
      116,
      32,
      116,
      104,
      101,
      32,
      98,
      101,
      103,
      105,
      110,
      110,
      105,
      110,
      103,
      32,
      111,
      102,
      32,
      60,
      33,
      68,
      79,
      67,
      84,
      89,
      80,
      69,
      32,
      104,
      116,
      109,
      108,
      62,
      60,
      104,
      116,
      109,
      108,
      112,
      97,
      114,
      116,
      105,
      99,
      117,
      108,
      97,
      114,
      108,
      121,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      104,
      105,
      100,
      100,
      101,
      110,
      34,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      58,
      118,
      111,
      105,
      100,
      40,
      48,
      41,
      59,
      34,
      101,
      102,
      102,
      101,
      99,
      116,
      105,
      118,
      101,
      110,
      101,
      115,
      115,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      97,
      117,
      116,
      111,
      99,
      111,
      109,
      112,
      108,
      101,
      116,
      101,
      61,
      34,
      111,
      102,
      102,
      34,
      32,
      103,
      101,
      110,
      101,
      114,
      97,
      108,
      108,
      121,
      32,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      101,
      100,
      62,
      60,
      105,
      110,
      112,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      34,
      32,
      34,
      62,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      13,
      10,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      116,
      104,
      114,
      111,
      117,
      103,
      104,
      111,
      117,
      116,
      32,
      116,
      104,
      101,
      32,
      119,
      111,
      114,
      108,
      100,
      99,
      111,
      109,
      109,
      111,
      110,
      32,
      109,
      105,
      115,
      99,
      111,
      110,
      99,
      101,
      112,
      116,
      105,
      111,
      110,
      97,
      115,
      115,
      111,
      99,
      105,
      97,
      116,
      105,
      111,
      110,
      32,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      100,
      105,
      118,
      32,
      99,
      100,
      117,
      114,
      105,
      110,
      103,
      32,
      104,
      105,
      115,
      32,
      108,
      105,
      102,
      101,
      116,
      105,
      109,
      101,
      44,
      99,
      111,
      114,
      114,
      101,
      115,
      112,
      111,
      110,
      100,
      105,
      110,
      103,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      116,
      121,
      112,
      101,
      61,
      34,
      105,
      109,
      97,
      103,
      101,
      47,
      120,
      45,
      105,
      99,
      111,
      110,
      34,
      32,
      97,
      110,
      32,
      105,
      110,
      99,
      114,
      101,
      97,
      115,
      105,
      110,
      103,
      32,
      110,
      117,
      109,
      98,
      101,
      114,
      100,
      105,
      112,
      108,
      111,
      109,
      97,
      116,
      105,
      99,
      32,
      114,
      101,
      108,
      97,
      116,
      105,
      111,
      110,
      115,
      97,
      114,
      101,
      32,
      111,
      102,
      116,
      101,
      110,
      32,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      101,
      100,
      109,
      101,
      116,
      97,
      32,
      99,
      104,
      97,
      114,
      115,
      101,
      116,
      61,
      34,
      117,
      116,
      102,
      45,
      56,
      34,
      32,
      60,
      105,
      110,
      112,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      34,
      32,
      101,
      120,
      97,
      109,
      112,
      108,
      101,
      115,
      32,
      105,
      110,
      99,
      108,
      117,
      100,
      101,
      32,
      116,
      104,
      101,
      34,
      62,
      60,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      105,
      112,
      97,
      114,
      116,
      105,
      99,
      105,
      112,
      97,
      116,
      105,
      111,
      110,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      116,
      104,
      101,
      32,
      101,
      115,
      116,
      97,
      98,
      108,
      105,
      115,
      104,
      109,
      101,
      110,
      116,
      32,
      111,
      102,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      38,
      97,
      109,
      112,
      59,
      110,
      98,
      115,
      112,
      59,
      38,
      97,
      109,
      112,
      59,
      110,
      98,
      115,
      112,
      59,
      116,
      111,
      32,
      100,
      101,
      116,
      101,
      114,
      109,
      105,
      110,
      101,
      32,
      119,
      104,
      101,
      116,
      104,
      101,
      114,
      113,
      117,
      105,
      116,
      101,
      32,
      100,
      105,
      102,
      102,
      101,
      114,
      101,
      110,
      116,
      32,
      102,
      114,
      111,
      109,
      109,
      97,
      114,
      107,
      101,
      100,
      32,
      116,
      104,
      101,
      32,
      98,
      101,
      103,
      105,
      110,
      110,
      105,
      110,
      103,
      100,
      105,
      115,
      116,
      97,
      110,
      99,
      101,
      32,
      98,
      101,
      116,
      119,
      101,
      101,
      110,
      32,
      116,
      104,
      101,
      99,
      111,
      110,
      116,
      114,
      105,
      98,
      117,
      116,
      105,
      111,
      110,
      115,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      99,
      111,
      110,
      102,
      108,
      105,
      99,
      116,
      32,
      98,
      101,
      116,
      119,
      101,
      101,
      110,
      32,
      116,
      104,
      101,
      119,
      105,
      100,
      101,
      108,
      121,
      32,
      99,
      111,
      110,
      115,
      105,
      100,
      101,
      114,
      101,
      100,
      32,
      116,
      111,
      119,
      97,
      115,
      32,
      111,
      110,
      101,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      102,
      105,
      114,
      115,
      116,
      119,
      105,
      116,
      104,
      32,
      118,
      97,
      114,
      121,
      105,
      110,
      103,
      32,
      100,
      101,
      103,
      114,
      101,
      101,
      115,
      104,
      97,
      118,
      101,
      32,
      115,
      112,
      101,
      99,
      117,
      108,
      97,
      116,
      101,
      100,
      32,
      116,
      104,
      97,
      116,
      40,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      103,
      101,
      116,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      112,
      97,
      114,
      116,
      105,
      99,
      105,
      112,
      97,
      116,
      105,
      110,
      103,
      32,
      105,
      110,
      32,
      116,
      104,
      101,
      111,
      114,
      105,
      103,
      105,
      110,
      97,
      108,
      108,
      121,
      32,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      101,
      100,
      101,
      116,
      97,
      32,
      99,
      104,
      97,
      114,
      115,
      101,
      116,
      61,
      34,
      117,
      116,
      102,
      45,
      56,
      34,
      62,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      32,
      47,
      62,
      10,
      105,
      110,
      116,
      101,
      114,
      99,
      104,
      97,
      110,
      103,
      101,
      97,
      98,
      108,
      121,
      32,
      119,
      105,
      116,
      104,
      109,
      111,
      114,
      101,
      32,
      99,
      108,
      111,
      115,
      101,
      108,
      121,
      32,
      114,
      101,
      108,
      97,
      116,
      101,
      100,
      115,
      111,
      99,
      105,
      97,
      108,
      32,
      97,
      110,
      100,
      32,
      112,
      111,
      108,
      105,
      116,
      105,
      99,
      97,
      108,
      116,
      104,
      97,
      116,
      32,
      119,
      111,
      117,
      108,
      100,
      32,
      111,
      116,
      104,
      101,
      114,
      119,
      105,
      115,
      101,
      112,
      101,
      114,
      112,
      101,
      110,
      100,
      105,
      99,
      117,
      108,
      97,
      114,
      32,
      116,
      111,
      32,
      116,
      104,
      101,
      115,
      116,
      121,
      108,
      101,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      116,
      121,
      112,
      101,
      61,
      34,
      115,
      117,
      98,
      109,
      105,
      116,
      34,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      102,
      97,
      109,
      105,
      108,
      105,
      101,
      115,
      32,
      114,
      101,
      115,
      105,
      100,
      105,
      110,
      103,
      32,
      105,
      110,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      105,
      110,
      103,
      32,
      99,
      111,
      117,
      110,
      116,
      114,
      105,
      101,
      115,
      99,
      111,
      109,
      112,
      117,
      116,
      101,
      114,
      32,
      112,
      114,
      111,
      103,
      114,
      97,
      109,
      109,
      105,
      110,
      103,
      101,
      99,
      111,
      110,
      111,
      109,
      105,
      99,
      32,
      100,
      101,
      118,
      101,
      108,
      111,
      112,
      109,
      101,
      110,
      116,
      100,
      101,
      116,
      101,
      114,
      109,
      105,
      110,
      97,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      102,
      111,
      114,
      32,
      109,
      111,
      114,
      101,
      32,
      105,
      110,
      102,
      111,
      114,
      109,
      97,
      116,
      105,
      111,
      110,
      111,
      110,
      32,
      115,
      101,
      118,
      101,
      114,
      97,
      108,
      32,
      111,
      99,
      99,
      97,
      115,
      105,
      111,
      110,
      115,
      112,
      111,
      114,
      116,
      117,
      103,
      117,
      195,
      170,
      115,
      32,
      40,
      69,
      117,
      114,
      111,
      112,
      101,
      117,
      41,
      208,
      163,
      208,
      186,
      209,
      128,
      208,
      176,
      209,
      151,
      208,
      189,
      209,
      129,
      209,
      140,
      208,
      186,
      208,
      176,
      209,
      131,
      208,
      186,
      209,
      128,
      208,
      176,
      209,
      151,
      208,
      189,
      209,
      129,
      209,
      140,
      208,
      186,
      208,
      176,
      208,
      160,
      208,
      190,
      209,
      129,
      209,
      129,
      208,
      184,
      208,
      185,
      209,
      129,
      208,
      186,
      208,
      190,
      208,
      185,
      208,
      188,
      208,
      176,
      209,
      130,
      208,
      181,
      209,
      128,
      208,
      184,
      208,
      176,
      208,
      187,
      208,
      190,
      208,
      178,
      208,
      184,
      208,
      189,
      209,
      132,
      208,
      190,
      209,
      128,
      208,
      188,
      208,
      176,
      209,
      134,
      208,
      184,
      208,
      184,
      209,
      131,
      208,
      191,
      209,
      128,
      208,
      176,
      208,
      178,
      208,
      187,
      208,
      181,
      208,
      189,
      208,
      184,
      209,
      143,
      208,
      189,
      208,
      181,
      208,
      190,
      208,
      177,
      209,
      133,
      208,
      190,
      208,
      180,
      208,
      184,
      208,
      188,
      208,
      190,
      208,
      184,
      208,
      189,
      209,
      132,
      208,
      190,
      209,
      128,
      208,
      188,
      208,
      176,
      209,
      134,
      208,
      184,
      209,
      143,
      208,
      152,
      208,
      189,
      209,
      132,
      208,
      190,
      209,
      128,
      208,
      188,
      208,
      176,
      209,
      134,
      208,
      184,
      209,
      143,
      208,
      160,
      208,
      181,
      209,
      129,
      208,
      191,
      209,
      131,
      208,
      177,
      208,
      187,
      208,
      184,
      208,
      186,
      208,
      184,
      208,
      186,
      208,
      190,
      208,
      187,
      208,
      184,
      209,
      135,
      208,
      181,
      209,
      129,
      209,
      130,
      208,
      178,
      208,
      190,
      208,
      184,
      208,
      189,
      209,
      132,
      208,
      190,
      209,
      128,
      208,
      188,
      208,
      176,
      209,
      134,
      208,
      184,
      209,
      142,
      209,
      130,
      208,
      181,
      209,
      128,
      209,
      128,
      208,
      184,
      209,
      130,
      208,
      190,
      209,
      128,
      208,
      184,
      208,
      184,
      208,
      180,
      208,
      190,
      209,
      129,
      209,
      130,
      208,
      176,
      209,
      130,
      208,
      190,
      209,
      135,
      208,
      189,
      208,
      190,
      216,
      167,
      217,
      132,
      217,
      133,
      216,
      170,
      217,
      136,
      216,
      167,
      216,
      172,
      216,
      175,
      217,
      136,
      217,
      134,
      216,
      167,
      217,
      132,
      216,
      167,
      216,
      180,
      216,
      170,
      216,
      177,
      216,
      167,
      217,
      131,
      216,
      167,
      216,
      170,
      216,
      167,
      217,
      132,
      216,
      167,
      217,
      130,
      216,
      170,
      216,
      177,
      216,
      167,
      216,
      173,
      216,
      167,
      216,
      170,
      104,
      116,
      109,
      108,
      59,
      32,
      99,
      104,
      97,
      114,
      115,
      101,
      116,
      61,
      85,
      84,
      70,
      45,
      56,
      34,
      32,
      115,
      101,
      116,
      84,
      105,
      109,
      101,
      111,
      117,
      116,
      40,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      105,
      110,
      108,
      105,
      110,
      101,
      45,
      98,
      108,
      111,
      99,
      107,
      59,
      60,
      105,
      110,
      112,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      115,
      117,
      98,
      109,
      105,
      116,
      34,
      32,
      116,
      121,
      112,
      101,
      32,
      61,
      32,
      39,
      116,
      101,
      120,
      116,
      47,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      60,
      105,
      109,
      103,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      34,
      32,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      119,
      51,
      46,
      111,
      114,
      103,
      47,
      115,
      104,
      111,
      114,
      116,
      99,
      117,
      116,
      32,
      105,
      99,
      111,
      110,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      34,
      32,
      97,
      117,
      116,
      111,
      99,
      111,
      109,
      112,
      108,
      101,
      116,
      101,
      61,
      34,
      111,
      102,
      102,
      34,
      32,
      60,
      47,
      97,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      60,
      47,
      97,
      62,
      60,
      47,
      108,
      105,
      62,
      10,
      60,
      108,
      105,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      34,
      99,
      115,
      115,
      34,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      32,
      60,
      102,
      111,
      114,
      109,
      32,
      97,
      99,
      116,
      105,
      111,
      110,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      97,
      108,
      116,
      101,
      114,
      110,
      97,
      116,
      101,
      34,
      32,
      13,
      10,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      32,
      111,
      110,
      99,
      108,
      105,
      99,
      107,
      61,
      34,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      58,
      40,
      110,
      101,
      119,
      32,
      68,
      97,
      116,
      101,
      41,
      46,
      103,
      101,
      116,
      84,
      105,
      109,
      101,
      40,
      41,
      125,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      49,
      34,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      49,
      34,
      32,
      80,
      101,
      111,
      112,
      108,
      101,
      39,
      115,
      32,
      82,
      101,
      112,
      117,
      98,
      108,
      105,
      99,
      32,
      111,
      102,
      32,
      32,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      116,
      101,
      120,
      116,
      45,
      100,
      101,
      99,
      111,
      114,
      97,
      116,
      105,
      111,
      110,
      58,
      117,
      110,
      100,
      101,
      114,
      116,
      104,
      101,
      32,
      98,
      101,
      103,
      105,
      110,
      110,
      105,
      110,
      103,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      60,
      47,
      100,
      105,
      118,
      62,
      10,
      101,
      115,
      116,
      97,
      98,
      108,
      105,
      115,
      104,
      109,
      101,
      110,
      116,
      32,
      111,
      102,
      32,
      116,
      104,
      101,
      32,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      47,
      100,
      35,
      118,
      105,
      101,
      119,
      112,
      111,
      114,
      116,
      123,
      109,
      105,
      110,
      45,
      104,
      101,
      105,
      103,
      104,
      116,
      58,
      10,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      115,
      114,
      99,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      111,
      112,
      116,
      105,
      111,
      110,
      62,
      60,
      111,
      112,
      116,
      105,
      111,
      110,
      32,
      118,
      97,
      108,
      117,
      101,
      61,
      111,
      102,
      116,
      101,
      110,
      32,
      114,
      101,
      102,
      101,
      114,
      114,
      101,
      100,
      32,
      116,
      111,
      32,
      97,
      115,
      32,
      47,
      111,
      112,
      116,
      105,
      111,
      110,
      62,
      10,
      60,
      111,
      112,
      116,
      105,
      111,
      110,
      32,
      118,
      97,
      108,
      117,
      60,
      33,
      68,
      79,
      67,
      84,
      89,
      80,
      69,
      32,
      104,
      116,
      109,
      108,
      62,
      10,
      60,
      33,
      45,
      45,
      91,
      73,
      110,
      116,
      101,
      114,
      110,
      97,
      116,
      105,
      111,
      110,
      97,
      108,
      32,
      65,
      105,
      114,
      112,
      111,
      114,
      116,
      62,
      10,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      60,
      47,
      97,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      224,
      184,
      160,
      224,
      184,
      178,
      224,
      184,
      169,
      224,
      184,
      178,
      224,
      185,
      132,
      224,
      184,
      151,
      224,
      184,
      162,
      225,
      131,
      165,
      225,
      131,
      144,
      225,
      131,
      160,
      225,
      131,
      151,
      225,
      131,
      163,
      225,
      131,
      154,
      225,
      131,
      152,
      230,
      173,
      163,
      233,
      171,
      148,
      228,
      184,
      173,
      230,
      150,
      135,
      32,
      40,
      231,
      185,
      129,
      233,
      171,
      148,
      41,
      224,
      164,
      168,
      224,
      164,
      191,
      224,
      164,
      176,
      224,
      165,
      141,
      224,
      164,
      166,
      224,
      165,
      135,
      224,
      164,
      182,
      224,
      164,
      161,
      224,
      164,
      190,
      224,
      164,
      137,
      224,
      164,
      168,
      224,
      164,
      178,
      224,
      165,
      139,
      224,
      164,
      161,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      183,
      224,
      165,
      135,
      224,
      164,
      164,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      156,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      165,
      128,
      224,
      164,
      184,
      224,
      164,
      130,
      224,
      164,
      172,
      224,
      164,
      130,
      224,
      164,
      167,
      224,
      164,
      191,
      224,
      164,
      164,
      224,
      164,
      184,
      224,
      165,
      141,
      224,
      164,
      165,
      224,
      164,
      190,
      224,
      164,
      170,
      224,
      164,
      168,
      224,
      164,
      190,
      224,
      164,
      184,
      224,
      165,
      141,
      224,
      164,
      181,
      224,
      165,
      128,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      184,
      224,
      164,
      130,
      224,
      164,
      184,
      224,
      165,
      141,
      224,
      164,
      149,
      224,
      164,
      176,
      224,
      164,
      163,
      224,
      164,
      184,
      224,
      164,
      190,
      224,
      164,
      174,
      224,
      164,
      151,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      165,
      128,
      224,
      164,
      154,
      224,
      164,
      191,
      224,
      164,
      159,
      224,
      165,
      141,
      224,
      164,
      160,
      224,
      165,
      139,
      224,
      164,
      130,
      224,
      164,
      181,
      224,
      164,
      191,
      224,
      164,
      156,
      224,
      165,
      141,
      224,
      164,
      158,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      164,
      133,
      224,
      164,
      174,
      224,
      165,
      135,
      224,
      164,
      176,
      224,
      164,
      191,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      181,
      224,
      164,
      191,
      224,
      164,
      173,
      224,
      164,
      191,
      224,
      164,
      168,
      224,
      165,
      141,
      224,
      164,
      168,
      224,
      164,
      151,
      224,
      164,
      190,
      224,
      164,
      161,
      224,
      164,
      191,
      224,
      164,
      175,
      224,
      164,
      190,
      224,
      164,
      129,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      175,
      224,
      165,
      139,
      224,
      164,
      130,
      224,
      164,
      149,
      224,
      164,
      191,
      224,
      164,
      184,
      224,
      165,
      129,
      224,
      164,
      176,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      183,
      224,
      164,
      190,
      224,
      164,
      170,
      224,
      164,
      185,
      224,
      165,
      129,
      224,
      164,
      129,
      224,
      164,
      154,
      224,
      164,
      164,
      224,
      165,
      128,
      224,
      164,
      170,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      172,
      224,
      164,
      130,
      224,
      164,
      167,
      224,
      164,
      168,
      224,
      164,
      159,
      224,
      164,
      191,
      224,
      164,
      170,
      224,
      165,
      141,
      224,
      164,
      170,
      224,
      164,
      163,
      224,
      165,
      128,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      191,
      224,
      164,
      149,
      224,
      165,
      135,
      224,
      164,
      159,
      224,
      164,
      170,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      130,
      224,
      164,
      173,
      224,
      164,
      170,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      170,
      224,
      165,
      141,
      224,
      164,
      164,
      224,
      164,
      174,
      224,
      164,
      190,
      224,
      164,
      178,
      224,
      164,
      191,
      224,
      164,
      149,
      224,
      165,
      139,
      224,
      164,
      130,
      224,
      164,
      176,
      224,
      164,
      171,
      224,
      164,
      188,
      224,
      165,
      141,
      224,
      164,
      164,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      164,
      168,
      224,
      164,
      191,
      224,
      164,
      176,
      224,
      165,
      141,
      224,
      164,
      174,
      224,
      164,
      190,
      224,
      164,
      163,
      224,
      164,
      178,
      224,
      164,
      191,
      224,
      164,
      174,
      224,
      164,
      191,
      224,
      164,
      159,
      224,
      165,
      135,
      224,
      164,
      161,
      100,
      101,
      115,
      99,
      114,
      105,
      112,
      116,
      105,
      111,
      110,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      108,
      111,
      99,
      97,
      116,
      105,
      111,
      110,
      46,
      112,
      114,
      111,
      116,
      46,
      103,
      101,
      116,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      115,
      66,
      121,
      84,
      97,
      103,
      78,
      97,
      109,
      101,
      40,
      60,
      33,
      68,
      79,
      67,
      84,
      89,
      80,
      69,
      32,
      104,
      116,
      109,
      108,
      62,
      10,
      60,
      104,
      116,
      109,
      108,
      32,
      60,
      109,
      101,
      116,
      97,
      32,
      99,
      104,
      97,
      114,
      115,
      101,
      116,
      61,
      34,
      117,
      116,
      102,
      45,
      56,
      34,
      62,
      58,
      117,
      114,
      108,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      46,
      99,
      115,
      115,
      34,
      32,
      114,
      101,
      108,
      61,
      34,
      115,
      116,
      121,
      108,
      101,
      115,
      104,
      101,
      101,
      116,
      34,
      115,
      116,
      121,
      108,
      101,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      62,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      119,
      51,
      46,
      111,
      114,
      103,
      47,
      49,
      57,
      57,
      57,
      47,
      120,
      104,
      116,
      109,
      108,
      34,
      32,
      120,
      109,
      108,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      34,
      32,
      109,
      101,
      116,
      104,
      111,
      100,
      61,
      34,
      103,
      101,
      116,
      34,
      32,
      97,
      99,
      116,
      105,
      111,
      110,
      61,
      34,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      115,
      116,
      121,
      108,
      101,
      115,
      104,
      101,
      101,
      116,
      34,
      32,
      32,
      61,
      32,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      103,
      101,
      116,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      116,
      121,
      112,
      101,
      61,
      34,
      105,
      109,
      97,
      103,
      101,
      47,
      120,
      45,
      105,
      99,
      111,
      110,
      34,
      32,
      47,
      62,
      99,
      101,
      108,
      108,
      112,
      97,
      100,
      100,
      105,
      110,
      103,
      61,
      34,
      48,
      34,
      32,
      99,
      101,
      108,
      108,
      115,
      112,
      46,
      99,
      115,
      115,
      34,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      32,
      60,
      47,
      97,
      62,
      60,
      47,
      108,
      105,
      62,
      60,
      108,
      105,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      34,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      49,
      34,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      49,
      34,
      34,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      110,
      111,
      110,
      101,
      59,
      34,
      62,
      97,
      108,
      116,
      101,
      114,
      110,
      97,
      116,
      101,
      34,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      97,
      112,
      112,
      108,
      105,
      45,
      47,
      47,
      87,
      51,
      67,
      47,
      47,
      68,
      84,
      68,
      32,
      88,
      72,
      84,
      77,
      76,
      32,
      49,
      46,
      48,
      32,
      101,
      108,
      108,
      115,
      112,
      97,
      99,
      105,
      110,
      103,
      61,
      34,
      48,
      34,
      32,
      99,
      101,
      108,
      108,
      112,
      97,
      100,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      104,
      105,
      100,
      100,
      101,
      110,
      34,
      32,
      118,
      97,
      108,
      117,
      101,
      61,
      34,
      47,
      97,
      62,
      38,
      110,
      98,
      115,
      112,
      59,
      60,
      115,
      112,
      97,
      110,
      32,
      114,
      111,
      108,
      101,
      61,
      34,
      115,
      10,
      60,
      105,
      110,
      112,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      104,
      105,
      100,
      100,
      101,
      110,
      34,
      32,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      61,
      34,
      74,
      97,
      118,
      97,
      83,
      99,
      114,
      105,
      112,
      116,
      34,
      32,
      32,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      103,
      101,
      116,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      115,
      66,
      103,
      61,
      34,
      48,
      34,
      32,
      99,
      101,
      108,
      108,
      115,
      112,
      97,
      99,
      105,
      110,
      103,
      61,
      34,
      48,
      34,
      32,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      32,
      109,
      101,
      100,
      105,
      97,
      61,
      34,
      116,
      121,
      112,
      101,
      61,
      39,
      116,
      101,
      120,
      116,
      47,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      39,
      119,
      105,
      116,
      104,
      32,
      116,
      104,
      101,
      32,
      101,
      120,
      99,
      101,
      112,
      116,
      105,
      111,
      110,
      32,
      111,
      102,
      32,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      32,
      114,
      101,
      108,
      61,
      34,
      115,
      116,
      32,
      104,
      101,
      105,
      103,
      104,
      116,
      61,
      34,
      49,
      34,
      32,
      119,
      105,
      100,
      116,
      104,
      61,
      34,
      49,
      34,
      32,
      61,
      39,
      43,
      101,
      110,
      99,
      111,
      100,
      101,
      85,
      82,
      73,
      67,
      111,
      109,
      112,
      111,
      110,
      101,
      110,
      116,
      40,
      60,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      97,
      108,
      116,
      101,
      114,
      110,
      97,
      116,
      101,
      34,
      32,
      10,
      98,
      111,
      100,
      121,
      44,
      32,
      116,
      114,
      44,
      32,
      105,
      110,
      112,
      117,
      116,
      44,
      32,
      116,
      101,
      120,
      116,
      109,
      101,
      116,
      97,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      114,
      111,
      98,
      111,
      116,
      115,
      34,
      32,
      99,
      111,
      110,
      109,
      101,
      116,
      104,
      111,
      100,
      61,
      34,
      112,
      111,
      115,
      116,
      34,
      32,
      97,
      99,
      116,
      105,
      111,
      110,
      61,
      34,
      62,
      10,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      99,
      115,
      115,
      34,
      32,
      114,
      101,
      108,
      61,
      34,
      115,
      116,
      121,
      108,
      101,
      115,
      104,
      101,
      101,
      116,
      34,
      32,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      61,
      34,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      34,
      62,
      97,
      114,
      105,
      97,
      45,
      104,
      105,
      100,
      100,
      101,
      110,
      61,
      34,
      116,
      114,
      117,
      101,
      34,
      62,
      194,
      183,
      60,
      114,
      105,
      112,
      116,
      34,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      106,
      97,
      118,
      97,
      115,
      108,
      61,
      48,
      59,
      125,
      41,
      40,
      41,
      59,
      10,
      40,
      102,
      117,
      110,
      99,
      116,
      105,
      111,
      110,
      40,
      41,
      123,
      98,
      97,
      99,
      107,
      103,
      114,
      111,
      117,
      110,
      100,
      45,
      105,
      109,
      97,
      103,
      101,
      58,
      32,
      117,
      114,
      108,
      40,
      47,
      97,
      62,
      60,
      47,
      108,
      105,
      62,
      60,
      108,
      105,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      9,
      9,
      60,
      108,
      105,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      97,
      116,
      111,
      114,
      34,
      32,
      97,
      114,
      105,
      97,
      45,
      104,
      105,
      100,
      100,
      101,
      110,
      61,
      34,
      116,
      114,
      117,
      62,
      32,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      108,
      97,
      110,
      103,
      117,
      97,
      103,
      101,
      61,
      34,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      34,
      32,
      47,
      111,
      112,
      116,
      105,
      111,
      110,
      62,
      10,
      60,
      111,
      112,
      116,
      105,
      111,
      110,
      32,
      118,
      97,
      108,
      117,
      101,
      47,
      100,
      105,
      118,
      62,
      60,
      47,
      100,
      105,
      118,
      62,
      60,
      100,
      105,
      118,
      32,
      99,
      108,
      97,
      115,
      115,
      61,
      114,
      97,
      116,
      111,
      114,
      34,
      32,
      97,
      114,
      105,
      97,
      45,
      104,
      105,
      100,
      100,
      101,
      110,
      61,
      34,
      116,
      114,
      101,
      61,
      40,
      110,
      101,
      119,
      32,
      68,
      97,
      116,
      101,
      41,
      46,
      103,
      101,
      116,
      84,
      105,
      109,
      101,
      40,
      41,
      112,
      111,
      114,
      116,
      117,
      103,
      117,
      195,
      170,
      115,
      32,
      40,
      100,
      111,
      32,
      66,
      114,
      97,
      115,
      105,
      108,
      41,
      208,
      190,
      209,
      128,
      208,
      179,
      208,
      176,
      208,
      189,
      208,
      184,
      208,
      183,
      208,
      176,
      209,
      134,
      208,
      184,
      208,
      184,
      208,
      178,
      208,
      190,
      208,
      183,
      208,
      188,
      208,
      190,
      208,
      182,
      208,
      189,
      208,
      190,
      209,
      129,
      209,
      130,
      209,
      140,
      208,
      190,
      208,
      177,
      209,
      128,
      208,
      176,
      208,
      183,
      208,
      190,
      208,
      178,
      208,
      176,
      208,
      189,
      208,
      184,
      209,
      143,
      209,
      128,
      208,
      181,
      208,
      179,
      208,
      184,
      209,
      129,
      209,
      130,
      209,
      128,
      208,
      176,
      209,
      134,
      208,
      184,
      208,
      184,
      208,
      178,
      208,
      190,
      208,
      183,
      208,
      188,
      208,
      190,
      208,
      182,
      208,
      189,
      208,
      190,
      209,
      129,
      209,
      130,
      208,
      184,
      208,
      190,
      208,
      177,
      209,
      143,
      208,
      183,
      208,
      176,
      209,
      130,
      208,
      181,
      208,
      187,
      209,
      140,
      208,
      189,
      208,
      176,
      60,
      33,
      68,
      79,
      67,
      84,
      89,
      80,
      69,
      32,
      104,
      116,
      109,
      108,
      32,
      80,
      85,
      66,
      76,
      73,
      67,
      32,
      34,
      110,
      116,
      45,
      84,
      121,
      112,
      101,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      60,
      109,
      101,
      116,
      97,
      32,
      104,
      116,
      116,
      112,
      45,
      101,
      113,
      117,
      105,
      118,
      61,
      34,
      67,
      111,
      110,
      116,
      101,
      114,
      97,
      110,
      115,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      47,
      47,
      69,
      78,
      34,
      32,
      34,
      104,
      116,
      116,
      112,
      58,
      60,
      104,
      116,
      109,
      108,
      32,
      120,
      109,
      108,
      110,
      115,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      45,
      47,
      47,
      87,
      51,
      67,
      47,
      47,
      68,
      84,
      68,
      32,
      88,
      72,
      84,
      77,
      76,
      32,
      49,
      46,
      48,
      32,
      84,
      68,
      84,
      68,
      47,
      120,
      104,
      116,
      109,
      108,
      49,
      45,
      116,
      114,
      97,
      110,
      115,
      105,
      116,
      105,
      111,
      110,
      97,
      108,
      47,
      47,
      119,
      119,
      119,
      46,
      119,
      51,
      46,
      111,
      114,
      103,
      47,
      84,
      82,
      47,
      120,
      104,
      116,
      109,
      108,
      49,
      47,
      112,
      101,
      32,
      61,
      32,
      39,
      116,
      101,
      120,
      116,
      47,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      39,
      59,
      60,
      109,
      101,
      116,
      97,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      100,
      101,
      115,
      99,
      114,
      105,
      112,
      116,
      105,
      111,
      110,
      112,
      97,
      114,
      101,
      110,
      116,
      78,
      111,
      100,
      101,
      46,
      105,
      110,
      115,
      101,
      114,
      116,
      66,
      101,
      102,
      111,
      114,
      101,
      60,
      105,
      110,
      112,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      104,
      105,
      100,
      100,
      101,
      110,
      34,
      32,
      110,
      97,
      106,
      115,
      34,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      40,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      41,
      46,
      114,
      101,
      97,
      100,
      121,
      40,
      102,
      117,
      110,
      99,
      116,
      105,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      106,
      97,
      118,
      97,
      115,
      105,
      109,
      97,
      103,
      101,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      85,
      65,
      45,
      67,
      111,
      109,
      112,
      97,
      116,
      105,
      98,
      108,
      101,
      34,
      32,
      99,
      111,
      110,
      116,
      101,
      110,
      116,
      61,
      116,
      109,
      108,
      59,
      32,
      99,
      104,
      97,
      114,
      115,
      101,
      116,
      61,
      117,
      116,
      102,
      45,
      56,
      34,
      32,
      47,
      62,
      10,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      115,
      104,
      111,
      114,
      116,
      99,
      117,
      116,
      32,
      105,
      99,
      111,
      110,
      60,
      108,
      105,
      110,
      107,
      32,
      114,
      101,
      108,
      61,
      34,
      115,
      116,
      121,
      108,
      101,
      115,
      104,
      101,
      101,
      116,
      34,
      32,
      60,
      47,
      115,
      99,
      114,
      105,
      112,
      116,
      62,
      10,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      61,
      32,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      99,
      114,
      101,
      97,
      116,
      101,
      69,
      108,
      101,
      109,
      101,
      110,
      60,
      97,
      32,
      116,
      97,
      114,
      103,
      101,
      116,
      61,
      34,
      95,
      98,
      108,
      97,
      110,
      107,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      32,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      103,
      101,
      116,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      115,
      66,
      105,
      110,
      112,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      34,
      32,
      110,
      97,
      109,
      101,
      61,
      97,
      46,
      116,
      121,
      112,
      101,
      32,
      61,
      32,
      39,
      116,
      101,
      120,
      116,
      47,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      110,
      112,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      104,
      105,
      100,
      100,
      101,
      110,
      34,
      32,
      110,
      97,
      109,
      101,
      104,
      116,
      109,
      108,
      59,
      32,
      99,
      104,
      97,
      114,
      115,
      101,
      116,
      61,
      117,
      116,
      102,
      45,
      56,
      34,
      32,
      47,
      62,
      100,
      116,
      100,
      34,
      62,
      10,
      60,
      104,
      116,
      109,
      108,
      32,
      120,
      109,
      108,
      110,
      115,
      61,
      34,
      104,
      116,
      116,
      112,
      45,
      47,
      47,
      87,
      51,
      67,
      47,
      47,
      68,
      84,
      68,
      32,
      72,
      84,
      77,
      76,
      32,
      52,
      46,
      48,
      49,
      32,
      84,
      101,
      110,
      116,
      115,
      66,
      121,
      84,
      97,
      103,
      78,
      97,
      109,
      101,
      40,
      39,
      115,
      99,
      114,
      105,
      112,
      116,
      39,
      41,
      105,
      110,
      112,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      104,
      105,
      100,
      100,
      101,
      110,
      34,
      32,
      110,
      97,
      109,
      60,
      115,
      99,
      114,
      105,
      112,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      106,
      97,
      118,
      97,
      115,
      34,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      110,
      111,
      110,
      101,
      59,
      34,
      62,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      103,
      101,
      116,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      66,
      121,
      73,
      100,
      40,
      61,
      100,
      111,
      99,
      117,
      109,
      101,
      110,
      116,
      46,
      99,
      114,
      101,
      97,
      116,
      101,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      40,
      39,
      32,
      116,
      121,
      112,
      101,
      61,
      39,
      116,
      101,
      120,
      116,
      47,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      39,
      105,
      110,
      112,
      117,
      116,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      34,
      32,
      110,
      97,
      109,
      101,
      61,
      34,
      100,
      46,
      103,
      101,
      116,
      69,
      108,
      101,
      109,
      101,
      110,
      116,
      115,
      66,
      121,
      84,
      97,
      103,
      78,
      97,
      109,
      101,
      40,
      115,
      110,
      105,
      99,
      97,
      108,
      34,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      67,
      47,
      47,
      68,
      84,
      68,
      32,
      72,
      84,
      77,
      76,
      32,
      52,
      46,
      48,
      49,
      32,
      84,
      114,
      97,
      110,
      115,
      105,
      116,
      60,
      115,
      116,
      121,
      108,
      101,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      62,
      10,
      10,
      60,
      115,
      116,
      121,
      108,
      101,
      32,
      116,
      121,
      112,
      101,
      61,
      34,
      116,
      101,
      120,
      116,
      47,
      99,
      115,
      115,
      34,
      62,
      105,
      111,
      110,
      97,
      108,
      46,
      100,
      116,
      100,
      34,
      62,
      10,
      60,
      104,
      116,
      109,
      108,
      32,
      120,
      109,
      108,
      110,
      115,
      61,
      104,
      116,
      116,
      112,
      45,
      101,
      113,
      117,
      105,
      118,
      61,
      34,
      67,
      111,
      110,
      116,
      101,
      110,
      116,
      45,
      84,
      121,
      112,
      101,
      100,
      105,
      110,
      103,
      61,
      34,
      48,
      34,
      32,
      99,
      101,
      108,
      108,
      115,
      112,
      97,
      99,
      105,
      110,
      103,
      61,
      34,
      48,
      34,
      104,
      116,
      109,
      108,
      59,
      32,
      99,
      104,
      97,
      114,
      115,
      101,
      116,
      61,
      117,
      116,
      102,
      45,
      56,
      34,
      32,
      47,
      62,
      10,
      32,
      115,
      116,
      121,
      108,
      101,
      61,
      34,
      100,
      105,
      115,
      112,
      108,
      97,
      121,
      58,
      110,
      111,
      110,
      101,
      59,
      34,
      62,
      60,
      60,
      108,
      105,
      62,
      60,
      97,
      32,
      104,
      114,
      101,
      102,
      61,
      34,
      104,
      116,
      116,
      112,
      58,
      47,
      47,
      119,
      119,
      119,
      46,
      32,
      116,
      121,
      112,
      101,
      61,
      39,
      116,
      101,
      120,
      116,
      47,
      106,
      97,
      118,
      97,
      115,
      99,
      114,
      105,
      112,
      116,
      39,
      62,
      208,
      180,
      208,
      181,
      209,
      143,
      209,
      130,
      208,
      181,
      208,
      187,
      209,
      140,
      208,
      189,
      208,
      190,
      209,
      129,
      209,
      130,
      208,
      184,
      209,
      129,
      208,
      190,
      208,
      190,
      209,
      130,
      208,
      178,
      208,
      181,
      209,
      130,
      209,
      129,
      209,
      130,
      208,
      178,
      208,
      184,
      208,
      184,
      208,
      191,
      209,
      128,
      208,
      190,
      208,
      184,
      208,
      183,
      208,
      178,
      208,
      190,
      208,
      180,
      209,
      129,
      209,
      130,
      208,
      178,
      208,
      176,
      208,
      177,
      208,
      181,
      208,
      183,
      208,
      190,
      208,
      191,
      208,
      176,
      209,
      129,
      208,
      189,
      208,
      190,
      209,
      129,
      209,
      130,
      208,
      184,
      224,
      164,
      170,
      224,
      165,
      129,
      224,
      164,
      184,
      224,
      165,
      141,
      224,
      164,
      164,
      224,
      164,
      191,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      130,
      224,
      164,
      151,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      165,
      135,
      224,
      164,
      184,
      224,
      164,
      137,
      224,
      164,
      168,
      224,
      165,
      141,
      224,
      164,
      185,
      224,
      165,
      139,
      224,
      164,
      130,
      224,
      164,
      168,
      224,
      165,
      135,
      224,
      164,
      181,
      224,
      164,
      191,
      224,
      164,
      167,
      224,
      164,
      190,
      224,
      164,
      168,
      224,
      164,
      184,
      224,
      164,
      173,
      224,
      164,
      190,
      224,
      164,
      171,
      224,
      164,
      191,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      184,
      224,
      164,
      191,
      224,
      164,
      130,
      224,
      164,
      151,
      224,
      164,
      184,
      224,
      165,
      129,
      224,
      164,
      176,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      183,
      224,
      164,
      191,
      224,
      164,
      164,
      224,
      164,
      149,
      224,
      165,
      137,
      224,
      164,
      170,
      224,
      165,
      128,
      224,
      164,
      176,
      224,
      164,
      190,
      224,
      164,
      135,
      224,
      164,
      159,
      224,
      164,
      181,
      224,
      164,
      191,
      224,
      164,
      156,
      224,
      165,
      141,
      224,
      164,
      158,
      224,
      164,
      190,
      224,
      164,
      170,
      224,
      164,
      168,
      224,
      164,
      149,
      224,
      164,
      190,
      224,
      164,
      176,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      181,
      224,
      164,
      190,
      224,
      164,
      136,
      224,
      164,
      184,
      224,
      164,
      149,
      224,
      165,
      141,
      224,
      164,
      176,
      224,
      164,
      191,
      224,
      164,
      175,
      224,
      164,
      164,
      224,
      164,
      190
    ]);
    exports.init = function() {
      return exports.dictionary;
    };
  }
});

// ../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary.js
var require_dictionary = __commonJS({
  "../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary.js"(exports) {
    var data2 = require_dictionary_data();
    exports.init = function() {
      exports.dictionary = data2.init();
    };
    exports.offsetsByLength = new Uint32Array([
      0,
      0,
      0,
      0,
      0,
      4096,
      9216,
      21504,
      35840,
      44032,
      53248,
      63488,
      74752,
      87040,
      93696,
      100864,
      104704,
      106752,
      108928,
      113536,
      115968,
      118528,
      119872,
      121280,
      122016
    ]);
    exports.sizeBitsByLength = new Uint8Array([
      0,
      0,
      0,
      0,
      10,
      10,
      11,
      11,
      10,
      10,
      10,
      10,
      10,
      9,
      9,
      8,
      7,
      7,
      8,
      7,
      7,
      6,
      6,
      5,
      5
    ]);
    exports.minDictionaryWordLength = 4;
    exports.maxDictionaryWordLength = 24;
  }
});

// ../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/huffman.js
var require_huffman = __commonJS({
  "../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/huffman.js"(exports) {
    function HuffmanCode(bits2, value2) {
      this.bits = bits2;
      this.value = value2;
    }
    exports.HuffmanCode = HuffmanCode;
    var MAX_LENGTH = 15;
    function GetNextKey(key, len) {
      var step = 1 << len - 1;
      while (key & step) {
        step >>= 1;
      }
      return (key & step - 1) + step;
    }
    function ReplicateValue(table, i5, step, end2, code) {
      do {
        end2 -= step;
        table[i5 + end2] = new HuffmanCode(code.bits, code.value);
      } while (end2 > 0);
    }
    function NextTableBitSize(count, len, root_bits) {
      var left = 1 << len - root_bits;
      while (len < MAX_LENGTH) {
        left -= count[len];
        if (left <= 0) break;
        ++len;
        left <<= 1;
      }
      return len - root_bits;
    }
    exports.BrotliBuildHuffmanTable = function(root_table, table, root_bits, code_lengths, code_lengths_size) {
      var start_table = table;
      var code;
      var len;
      var symbol;
      var key;
      var step;
      var low;
      var mask;
      var table_bits;
      var table_size;
      var total_size;
      var sorted;
      var count = new Int32Array(MAX_LENGTH + 1);
      var offset2 = new Int32Array(MAX_LENGTH + 1);
      sorted = new Int32Array(code_lengths_size);
      for (symbol = 0; symbol < code_lengths_size; symbol++) {
        count[code_lengths[symbol]]++;
      }
      offset2[1] = 0;
      for (len = 1; len < MAX_LENGTH; len++) {
        offset2[len + 1] = offset2[len] + count[len];
      }
      for (symbol = 0; symbol < code_lengths_size; symbol++) {
        if (code_lengths[symbol] !== 0) {
          sorted[offset2[code_lengths[symbol]]++] = symbol;
        }
      }
      table_bits = root_bits;
      table_size = 1 << table_bits;
      total_size = table_size;
      if (offset2[MAX_LENGTH] === 1) {
        for (key = 0; key < total_size; ++key) {
          root_table[table + key] = new HuffmanCode(0, sorted[0] & 65535);
        }
        return total_size;
      }
      key = 0;
      symbol = 0;
      for (len = 1, step = 2; len <= root_bits; ++len, step <<= 1) {
        for (; count[len] > 0; --count[len]) {
          code = new HuffmanCode(len & 255, sorted[symbol++] & 65535);
          ReplicateValue(root_table, table + key, step, table_size, code);
          key = GetNextKey(key, len);
        }
      }
      mask = total_size - 1;
      low = -1;
      for (len = root_bits + 1, step = 2; len <= MAX_LENGTH; ++len, step <<= 1) {
        for (; count[len] > 0; --count[len]) {
          if ((key & mask) !== low) {
            table += table_size;
            table_bits = NextTableBitSize(count, len, root_bits);
            table_size = 1 << table_bits;
            total_size += table_size;
            low = key & mask;
            root_table[start_table + low] = new HuffmanCode(table_bits + root_bits & 255, table - start_table - low & 65535);
          }
          code = new HuffmanCode(len - root_bits & 255, sorted[symbol++] & 65535);
          ReplicateValue(root_table, table + (key >> root_bits), step, table_size, code);
          key = GetNextKey(key, len);
        }
      }
      return total_size;
    };
  }
});

// ../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/context.js
var require_context = __commonJS({
  "../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/context.js"(exports) {
    exports.lookup = new Uint8Array([
      /* CONTEXT_UTF8, last byte. */
      /* ASCII range. */
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      4,
      4,
      0,
      0,
      4,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      8,
      12,
      16,
      12,
      12,
      20,
      12,
      16,
      24,
      28,
      12,
      12,
      32,
      12,
      36,
      12,
      44,
      44,
      44,
      44,
      44,
      44,
      44,
      44,
      44,
      44,
      32,
      32,
      24,
      40,
      28,
      12,
      12,
      48,
      52,
      52,
      52,
      48,
      52,
      52,
      52,
      48,
      52,
      52,
      52,
      52,
      52,
      48,
      52,
      52,
      52,
      52,
      52,
      48,
      52,
      52,
      52,
      52,
      52,
      24,
      12,
      28,
      12,
      12,
      12,
      56,
      60,
      60,
      60,
      56,
      60,
      60,
      60,
      56,
      60,
      60,
      60,
      60,
      60,
      56,
      60,
      60,
      60,
      60,
      60,
      56,
      60,
      60,
      60,
      60,
      60,
      24,
      12,
      28,
      12,
      0,
      /* UTF8 continuation byte range. */
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      1,
      /* UTF8 lead byte range. */
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      2,
      3,
      /* CONTEXT_UTF8 second last byte. */
      /* ASCII range. */
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      1,
      1,
      1,
      1,
      1,
      1,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      1,
      1,
      1,
      1,
      0,
      /* UTF8 continuation byte range. */
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      /* UTF8 lead byte range. */
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      /* CONTEXT_SIGNED, second last byte. */
      0,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      3,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      5,
      6,
      6,
      6,
      6,
      6,
      6,
      6,
      6,
      6,
      6,
      6,
      6,
      6,
      6,
      6,
      7,
      /* CONTEXT_SIGNED, last byte, same as the above values shifted by 3 bits. */
      0,
      8,
      8,
      8,
      8,
      8,
      8,
      8,
      8,
      8,
      8,
      8,
      8,
      8,
      8,
      8,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      16,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      24,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      32,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      40,
      48,
      48,
      48,
      48,
      48,
      48,
      48,
      48,
      48,
      48,
      48,
      48,
      48,
      48,
      48,
      56,
      /* CONTEXT_LSB6, last byte. */
      0,
      1,
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16,
      17,
      18,
      19,
      20,
      21,
      22,
      23,
      24,
      25,
      26,
      27,
      28,
      29,
      30,
      31,
      32,
      33,
      34,
      35,
      36,
      37,
      38,
      39,
      40,
      41,
      42,
      43,
      44,
      45,
      46,
      47,
      48,
      49,
      50,
      51,
      52,
      53,
      54,
      55,
      56,
      57,
      58,
      59,
      60,
      61,
      62,
      63,
      0,
      1,
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16,
      17,
      18,
      19,
      20,
      21,
      22,
      23,
      24,
      25,
      26,
      27,
      28,
      29,
      30,
      31,
      32,
      33,
      34,
      35,
      36,
      37,
      38,
      39,
      40,
      41,
      42,
      43,
      44,
      45,
      46,
      47,
      48,
      49,
      50,
      51,
      52,
      53,
      54,
      55,
      56,
      57,
      58,
      59,
      60,
      61,
      62,
      63,
      0,
      1,
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16,
      17,
      18,
      19,
      20,
      21,
      22,
      23,
      24,
      25,
      26,
      27,
      28,
      29,
      30,
      31,
      32,
      33,
      34,
      35,
      36,
      37,
      38,
      39,
      40,
      41,
      42,
      43,
      44,
      45,
      46,
      47,
      48,
      49,
      50,
      51,
      52,
      53,
      54,
      55,
      56,
      57,
      58,
      59,
      60,
      61,
      62,
      63,
      0,
      1,
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16,
      17,
      18,
      19,
      20,
      21,
      22,
      23,
      24,
      25,
      26,
      27,
      28,
      29,
      30,
      31,
      32,
      33,
      34,
      35,
      36,
      37,
      38,
      39,
      40,
      41,
      42,
      43,
      44,
      45,
      46,
      47,
      48,
      49,
      50,
      51,
      52,
      53,
      54,
      55,
      56,
      57,
      58,
      59,
      60,
      61,
      62,
      63,
      /* CONTEXT_MSB6, last byte. */
      0,
      0,
      0,
      0,
      1,
      1,
      1,
      1,
      2,
      2,
      2,
      2,
      3,
      3,
      3,
      3,
      4,
      4,
      4,
      4,
      5,
      5,
      5,
      5,
      6,
      6,
      6,
      6,
      7,
      7,
      7,
      7,
      8,
      8,
      8,
      8,
      9,
      9,
      9,
      9,
      10,
      10,
      10,
      10,
      11,
      11,
      11,
      11,
      12,
      12,
      12,
      12,
      13,
      13,
      13,
      13,
      14,
      14,
      14,
      14,
      15,
      15,
      15,
      15,
      16,
      16,
      16,
      16,
      17,
      17,
      17,
      17,
      18,
      18,
      18,
      18,
      19,
      19,
      19,
      19,
      20,
      20,
      20,
      20,
      21,
      21,
      21,
      21,
      22,
      22,
      22,
      22,
      23,
      23,
      23,
      23,
      24,
      24,
      24,
      24,
      25,
      25,
      25,
      25,
      26,
      26,
      26,
      26,
      27,
      27,
      27,
      27,
      28,
      28,
      28,
      28,
      29,
      29,
      29,
      29,
      30,
      30,
      30,
      30,
      31,
      31,
      31,
      31,
      32,
      32,
      32,
      32,
      33,
      33,
      33,
      33,
      34,
      34,
      34,
      34,
      35,
      35,
      35,
      35,
      36,
      36,
      36,
      36,
      37,
      37,
      37,
      37,
      38,
      38,
      38,
      38,
      39,
      39,
      39,
      39,
      40,
      40,
      40,
      40,
      41,
      41,
      41,
      41,
      42,
      42,
      42,
      42,
      43,
      43,
      43,
      43,
      44,
      44,
      44,
      44,
      45,
      45,
      45,
      45,
      46,
      46,
      46,
      46,
      47,
      47,
      47,
      47,
      48,
      48,
      48,
      48,
      49,
      49,
      49,
      49,
      50,
      50,
      50,
      50,
      51,
      51,
      51,
      51,
      52,
      52,
      52,
      52,
      53,
      53,
      53,
      53,
      54,
      54,
      54,
      54,
      55,
      55,
      55,
      55,
      56,
      56,
      56,
      56,
      57,
      57,
      57,
      57,
      58,
      58,
      58,
      58,
      59,
      59,
      59,
      59,
      60,
      60,
      60,
      60,
      61,
      61,
      61,
      61,
      62,
      62,
      62,
      62,
      63,
      63,
      63,
      63,
      /* CONTEXT_{M,L}SB6, second last byte, */
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0
    ]);
    exports.lookupOffsets = new Uint16Array([
      /* CONTEXT_LSB6 */
      1024,
      1536,
      /* CONTEXT_MSB6 */
      1280,
      1536,
      /* CONTEXT_UTF8 */
      0,
      256,
      /* CONTEXT_SIGNED */
      768,
      512
    ]);
  }
});

// ../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/prefix.js
var require_prefix = __commonJS({
  "../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/prefix.js"(exports) {
    function PrefixCodeRange(offset2, nbits) {
      this.offset = offset2;
      this.nbits = nbits;
    }
    exports.kBlockLengthPrefixCode = [
      new PrefixCodeRange(1, 2),
      new PrefixCodeRange(5, 2),
      new PrefixCodeRange(9, 2),
      new PrefixCodeRange(13, 2),
      new PrefixCodeRange(17, 3),
      new PrefixCodeRange(25, 3),
      new PrefixCodeRange(33, 3),
      new PrefixCodeRange(41, 3),
      new PrefixCodeRange(49, 4),
      new PrefixCodeRange(65, 4),
      new PrefixCodeRange(81, 4),
      new PrefixCodeRange(97, 4),
      new PrefixCodeRange(113, 5),
      new PrefixCodeRange(145, 5),
      new PrefixCodeRange(177, 5),
      new PrefixCodeRange(209, 5),
      new PrefixCodeRange(241, 6),
      new PrefixCodeRange(305, 6),
      new PrefixCodeRange(369, 7),
      new PrefixCodeRange(497, 8),
      new PrefixCodeRange(753, 9),
      new PrefixCodeRange(1265, 10),
      new PrefixCodeRange(2289, 11),
      new PrefixCodeRange(4337, 12),
      new PrefixCodeRange(8433, 13),
      new PrefixCodeRange(16625, 24)
    ];
    exports.kInsertLengthPrefixCode = [
      new PrefixCodeRange(0, 0),
      new PrefixCodeRange(1, 0),
      new PrefixCodeRange(2, 0),
      new PrefixCodeRange(3, 0),
      new PrefixCodeRange(4, 0),
      new PrefixCodeRange(5, 0),
      new PrefixCodeRange(6, 1),
      new PrefixCodeRange(8, 1),
      new PrefixCodeRange(10, 2),
      new PrefixCodeRange(14, 2),
      new PrefixCodeRange(18, 3),
      new PrefixCodeRange(26, 3),
      new PrefixCodeRange(34, 4),
      new PrefixCodeRange(50, 4),
      new PrefixCodeRange(66, 5),
      new PrefixCodeRange(98, 5),
      new PrefixCodeRange(130, 6),
      new PrefixCodeRange(194, 7),
      new PrefixCodeRange(322, 8),
      new PrefixCodeRange(578, 9),
      new PrefixCodeRange(1090, 10),
      new PrefixCodeRange(2114, 12),
      new PrefixCodeRange(6210, 14),
      new PrefixCodeRange(22594, 24)
    ];
    exports.kCopyLengthPrefixCode = [
      new PrefixCodeRange(2, 0),
      new PrefixCodeRange(3, 0),
      new PrefixCodeRange(4, 0),
      new PrefixCodeRange(5, 0),
      new PrefixCodeRange(6, 0),
      new PrefixCodeRange(7, 0),
      new PrefixCodeRange(8, 0),
      new PrefixCodeRange(9, 0),
      new PrefixCodeRange(10, 1),
      new PrefixCodeRange(12, 1),
      new PrefixCodeRange(14, 2),
      new PrefixCodeRange(18, 2),
      new PrefixCodeRange(22, 3),
      new PrefixCodeRange(30, 3),
      new PrefixCodeRange(38, 4),
      new PrefixCodeRange(54, 4),
      new PrefixCodeRange(70, 5),
      new PrefixCodeRange(102, 5),
      new PrefixCodeRange(134, 6),
      new PrefixCodeRange(198, 7),
      new PrefixCodeRange(326, 8),
      new PrefixCodeRange(582, 9),
      new PrefixCodeRange(1094, 10),
      new PrefixCodeRange(2118, 24)
    ];
    exports.kInsertRangeLut = [
      0,
      0,
      8,
      8,
      0,
      16,
      8,
      16,
      16
    ];
    exports.kCopyRangeLut = [
      0,
      8,
      0,
      8,
      16,
      0,
      16,
      8,
      16
    ];
  }
});

// ../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/transform.js
var require_transform = __commonJS({
  "../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/transform.js"(exports) {
    var BrotliDictionary = require_dictionary();
    var kIdentity = 0;
    var kOmitLast1 = 1;
    var kOmitLast2 = 2;
    var kOmitLast3 = 3;
    var kOmitLast4 = 4;
    var kOmitLast5 = 5;
    var kOmitLast6 = 6;
    var kOmitLast7 = 7;
    var kOmitLast8 = 8;
    var kOmitLast9 = 9;
    var kUppercaseFirst = 10;
    var kUppercaseAll = 11;
    var kOmitFirst1 = 12;
    var kOmitFirst2 = 13;
    var kOmitFirst3 = 14;
    var kOmitFirst4 = 15;
    var kOmitFirst5 = 16;
    var kOmitFirst6 = 17;
    var kOmitFirst7 = 18;
    var kOmitFirst9 = 20;
    function Transform(prefix, transform, suffix) {
      this.prefix = new Uint8Array(prefix.length);
      this.transform = transform;
      this.suffix = new Uint8Array(suffix.length);
      for (var i5 = 0; i5 < prefix.length; i5++)
        this.prefix[i5] = prefix.charCodeAt(i5);
      for (var i5 = 0; i5 < suffix.length; i5++)
        this.suffix[i5] = suffix.charCodeAt(i5);
    }
    var kTransforms = [
      new Transform("", kIdentity, ""),
      new Transform("", kIdentity, " "),
      new Transform(" ", kIdentity, " "),
      new Transform("", kOmitFirst1, ""),
      new Transform("", kUppercaseFirst, " "),
      new Transform("", kIdentity, " the "),
      new Transform(" ", kIdentity, ""),
      new Transform("s ", kIdentity, " "),
      new Transform("", kIdentity, " of "),
      new Transform("", kUppercaseFirst, ""),
      new Transform("", kIdentity, " and "),
      new Transform("", kOmitFirst2, ""),
      new Transform("", kOmitLast1, ""),
      new Transform(", ", kIdentity, " "),
      new Transform("", kIdentity, ", "),
      new Transform(" ", kUppercaseFirst, " "),
      new Transform("", kIdentity, " in "),
      new Transform("", kIdentity, " to "),
      new Transform("e ", kIdentity, " "),
      new Transform("", kIdentity, '"'),
      new Transform("", kIdentity, "."),
      new Transform("", kIdentity, '">'),
      new Transform("", kIdentity, "\n"),
      new Transform("", kOmitLast3, ""),
      new Transform("", kIdentity, "]"),
      new Transform("", kIdentity, " for "),
      new Transform("", kOmitFirst3, ""),
      new Transform("", kOmitLast2, ""),
      new Transform("", kIdentity, " a "),
      new Transform("", kIdentity, " that "),
      new Transform(" ", kUppercaseFirst, ""),
      new Transform("", kIdentity, ". "),
      new Transform(".", kIdentity, ""),
      new Transform(" ", kIdentity, ", "),
      new Transform("", kOmitFirst4, ""),
      new Transform("", kIdentity, " with "),
      new Transform("", kIdentity, "'"),
      new Transform("", kIdentity, " from "),
      new Transform("", kIdentity, " by "),
      new Transform("", kOmitFirst5, ""),
      new Transform("", kOmitFirst6, ""),
      new Transform(" the ", kIdentity, ""),
      new Transform("", kOmitLast4, ""),
      new Transform("", kIdentity, ". The "),
      new Transform("", kUppercaseAll, ""),
      new Transform("", kIdentity, " on "),
      new Transform("", kIdentity, " as "),
      new Transform("", kIdentity, " is "),
      new Transform("", kOmitLast7, ""),
      new Transform("", kOmitLast1, "ing "),
      new Transform("", kIdentity, "\n	"),
      new Transform("", kIdentity, ":"),
      new Transform(" ", kIdentity, ". "),
      new Transform("", kIdentity, "ed "),
      new Transform("", kOmitFirst9, ""),
      new Transform("", kOmitFirst7, ""),
      new Transform("", kOmitLast6, ""),
      new Transform("", kIdentity, "("),
      new Transform("", kUppercaseFirst, ", "),
      new Transform("", kOmitLast8, ""),
      new Transform("", kIdentity, " at "),
      new Transform("", kIdentity, "ly "),
      new Transform(" the ", kIdentity, " of "),
      new Transform("", kOmitLast5, ""),
      new Transform("", kOmitLast9, ""),
      new Transform(" ", kUppercaseFirst, ", "),
      new Transform("", kUppercaseFirst, '"'),
      new Transform(".", kIdentity, "("),
      new Transform("", kUppercaseAll, " "),
      new Transform("", kUppercaseFirst, '">'),
      new Transform("", kIdentity, '="'),
      new Transform(" ", kIdentity, "."),
      new Transform(".com/", kIdentity, ""),
      new Transform(" the ", kIdentity, " of the "),
      new Transform("", kUppercaseFirst, "'"),
      new Transform("", kIdentity, ". This "),
      new Transform("", kIdentity, ","),
      new Transform(".", kIdentity, " "),
      new Transform("", kUppercaseFirst, "("),
      new Transform("", kUppercaseFirst, "."),
      new Transform("", kIdentity, " not "),
      new Transform(" ", kIdentity, '="'),
      new Transform("", kIdentity, "er "),
      new Transform(" ", kUppercaseAll, " "),
      new Transform("", kIdentity, "al "),
      new Transform(" ", kUppercaseAll, ""),
      new Transform("", kIdentity, "='"),
      new Transform("", kUppercaseAll, '"'),
      new Transform("", kUppercaseFirst, ". "),
      new Transform(" ", kIdentity, "("),
      new Transform("", kIdentity, "ful "),
      new Transform(" ", kUppercaseFirst, ". "),
      new Transform("", kIdentity, "ive "),
      new Transform("", kIdentity, "less "),
      new Transform("", kUppercaseAll, "'"),
      new Transform("", kIdentity, "est "),
      new Transform(" ", kUppercaseFirst, "."),
      new Transform("", kUppercaseAll, '">'),
      new Transform(" ", kIdentity, "='"),
      new Transform("", kUppercaseFirst, ","),
      new Transform("", kIdentity, "ize "),
      new Transform("", kUppercaseAll, "."),
      new Transform("\xC2\xA0", kIdentity, ""),
      new Transform(" ", kIdentity, ","),
      new Transform("", kUppercaseFirst, '="'),
      new Transform("", kUppercaseAll, '="'),
      new Transform("", kIdentity, "ous "),
      new Transform("", kUppercaseAll, ", "),
      new Transform("", kUppercaseFirst, "='"),
      new Transform(" ", kUppercaseFirst, ","),
      new Transform(" ", kUppercaseAll, '="'),
      new Transform(" ", kUppercaseAll, ", "),
      new Transform("", kUppercaseAll, ","),
      new Transform("", kUppercaseAll, "("),
      new Transform("", kUppercaseAll, ". "),
      new Transform(" ", kUppercaseAll, "."),
      new Transform("", kUppercaseAll, "='"),
      new Transform(" ", kUppercaseAll, ". "),
      new Transform(" ", kUppercaseFirst, '="'),
      new Transform(" ", kUppercaseAll, "='"),
      new Transform(" ", kUppercaseFirst, "='")
    ];
    exports.kTransforms = kTransforms;
    exports.kNumTransforms = kTransforms.length;
    function ToUpperCase(p3, i5) {
      if (p3[i5] < 192) {
        if (p3[i5] >= 97 && p3[i5] <= 122) {
          p3[i5] ^= 32;
        }
        return 1;
      }
      if (p3[i5] < 224) {
        p3[i5 + 1] ^= 32;
        return 2;
      }
      p3[i5 + 2] ^= 5;
      return 3;
    }
    exports.transformDictionaryWord = function(dst, idx, word, len, transform) {
      var prefix = kTransforms[transform].prefix;
      var suffix = kTransforms[transform].suffix;
      var t4 = kTransforms[transform].transform;
      var skip = t4 < kOmitFirst1 ? 0 : t4 - (kOmitFirst1 - 1);
      var i5 = 0;
      var start_idx = idx;
      var uppercase;
      if (skip > len) {
        skip = len;
      }
      var prefix_pos = 0;
      while (prefix_pos < prefix.length) {
        dst[idx++] = prefix[prefix_pos++];
      }
      word += skip;
      len -= skip;
      if (t4 <= kOmitLast9) {
        len -= t4;
      }
      for (i5 = 0; i5 < len; i5++) {
        dst[idx++] = BrotliDictionary.dictionary[word + i5];
      }
      uppercase = idx - len;
      if (t4 === kUppercaseFirst) {
        ToUpperCase(dst, uppercase);
      } else if (t4 === kUppercaseAll) {
        while (len > 0) {
          var step = ToUpperCase(dst, uppercase);
          uppercase += step;
          len -= step;
        }
      }
      var suffix_pos = 0;
      while (suffix_pos < suffix.length) {
        dst[idx++] = suffix[suffix_pos++];
      }
      return idx - start_idx;
    };
  }
});

// ../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/decode.js
var require_decode4 = __commonJS({
  "../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/decode.js"(exports) {
    var BrotliInput = require_streams3().BrotliInput;
    var BrotliOutput = require_streams3().BrotliOutput;
    var BrotliBitReader = require_bit_reader();
    var BrotliDictionary = require_dictionary();
    var HuffmanCode = require_huffman().HuffmanCode;
    var BrotliBuildHuffmanTable = require_huffman().BrotliBuildHuffmanTable;
    var Context = require_context();
    var Prefix = require_prefix();
    var Transform = require_transform();
    var kDefaultCodeLength = 8;
    var kCodeLengthRepeatCode = 16;
    var kNumLiteralCodes = 256;
    var kNumInsertAndCopyCodes = 704;
    var kNumBlockLengthCodes = 26;
    var kLiteralContextBits = 6;
    var kDistanceContextBits = 2;
    var HUFFMAN_TABLE_BITS = 8;
    var HUFFMAN_TABLE_MASK = 255;
    var HUFFMAN_MAX_TABLE_SIZE = 1080;
    var CODE_LENGTH_CODES = 18;
    var kCodeLengthCodeOrder = new Uint8Array([
      1,
      2,
      3,
      4,
      0,
      5,
      17,
      6,
      16,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15
    ]);
    var NUM_DISTANCE_SHORT_CODES = 16;
    var kDistanceShortCodeIndexOffset = new Uint8Array([
      3,
      2,
      1,
      0,
      3,
      3,
      3,
      3,
      3,
      3,
      2,
      2,
      2,
      2,
      2,
      2
    ]);
    var kDistanceShortCodeValueOffset = new Int8Array([
      0,
      0,
      0,
      0,
      -1,
      1,
      -2,
      2,
      -3,
      3,
      -1,
      1,
      -2,
      2,
      -3,
      3
    ]);
    var kMaxHuffmanTableSize = new Uint16Array([
      256,
      402,
      436,
      468,
      500,
      534,
      566,
      598,
      630,
      662,
      694,
      726,
      758,
      790,
      822,
      854,
      886,
      920,
      952,
      984,
      1016,
      1048,
      1080
    ]);
    function DecodeWindowBits(br) {
      var n6;
      if (br.readBits(1) === 0) {
        return 16;
      }
      n6 = br.readBits(3);
      if (n6 > 0) {
        return 17 + n6;
      }
      n6 = br.readBits(3);
      if (n6 > 0) {
        return 8 + n6;
      }
      return 17;
    }
    function DecodeVarLenUint8(br) {
      if (br.readBits(1)) {
        var nbits = br.readBits(3);
        if (nbits === 0) {
          return 1;
        } else {
          return br.readBits(nbits) + (1 << nbits);
        }
      }
      return 0;
    }
    function MetaBlockLength() {
      this.meta_block_length = 0;
      this.input_end = 0;
      this.is_uncompressed = 0;
      this.is_metadata = false;
    }
    function DecodeMetaBlockLength(br) {
      var out = new MetaBlockLength();
      var size_nibbles;
      var size_bytes;
      var i5;
      out.input_end = br.readBits(1);
      if (out.input_end && br.readBits(1)) {
        return out;
      }
      size_nibbles = br.readBits(2) + 4;
      if (size_nibbles === 7) {
        out.is_metadata = true;
        if (br.readBits(1) !== 0)
          throw new Error("Invalid reserved bit");
        size_bytes = br.readBits(2);
        if (size_bytes === 0)
          return out;
        for (i5 = 0; i5 < size_bytes; i5++) {
          var next_byte = br.readBits(8);
          if (i5 + 1 === size_bytes && size_bytes > 1 && next_byte === 0)
            throw new Error("Invalid size byte");
          out.meta_block_length |= next_byte << i5 * 8;
        }
      } else {
        for (i5 = 0; i5 < size_nibbles; ++i5) {
          var next_nibble = br.readBits(4);
          if (i5 + 1 === size_nibbles && size_nibbles > 4 && next_nibble === 0)
            throw new Error("Invalid size nibble");
          out.meta_block_length |= next_nibble << i5 * 4;
        }
      }
      ++out.meta_block_length;
      if (!out.input_end && !out.is_metadata) {
        out.is_uncompressed = br.readBits(1);
      }
      return out;
    }
    function ReadSymbol(table, index2, br) {
      var start_index = index2;
      var nbits;
      br.fillBitWindow();
      index2 += br.val_ >>> br.bit_pos_ & HUFFMAN_TABLE_MASK;
      nbits = table[index2].bits - HUFFMAN_TABLE_BITS;
      if (nbits > 0) {
        br.bit_pos_ += HUFFMAN_TABLE_BITS;
        index2 += table[index2].value;
        index2 += br.val_ >>> br.bit_pos_ & (1 << nbits) - 1;
      }
      br.bit_pos_ += table[index2].bits;
      return table[index2].value;
    }
    function ReadHuffmanCodeLengths(code_length_code_lengths, num_symbols, code_lengths, br) {
      var symbol = 0;
      var prev_code_len = kDefaultCodeLength;
      var repeat2 = 0;
      var repeat_code_len = 0;
      var space = 32768;
      var table = [];
      for (var i5 = 0; i5 < 32; i5++)
        table.push(new HuffmanCode(0, 0));
      BrotliBuildHuffmanTable(table, 0, 5, code_length_code_lengths, CODE_LENGTH_CODES);
      while (symbol < num_symbols && space > 0) {
        var p3 = 0;
        var code_len;
        br.readMoreInput();
        br.fillBitWindow();
        p3 += br.val_ >>> br.bit_pos_ & 31;
        br.bit_pos_ += table[p3].bits;
        code_len = table[p3].value & 255;
        if (code_len < kCodeLengthRepeatCode) {
          repeat2 = 0;
          code_lengths[symbol++] = code_len;
          if (code_len !== 0) {
            prev_code_len = code_len;
            space -= 32768 >> code_len;
          }
        } else {
          var extra_bits = code_len - 14;
          var old_repeat;
          var repeat_delta;
          var new_len = 0;
          if (code_len === kCodeLengthRepeatCode) {
            new_len = prev_code_len;
          }
          if (repeat_code_len !== new_len) {
            repeat2 = 0;
            repeat_code_len = new_len;
          }
          old_repeat = repeat2;
          if (repeat2 > 0) {
            repeat2 -= 2;
            repeat2 <<= extra_bits;
          }
          repeat2 += br.readBits(extra_bits) + 3;
          repeat_delta = repeat2 - old_repeat;
          if (symbol + repeat_delta > num_symbols) {
            throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols");
          }
          for (var x = 0; x < repeat_delta; x++)
            code_lengths[symbol + x] = repeat_code_len;
          symbol += repeat_delta;
          if (repeat_code_len !== 0) {
            space -= repeat_delta << 15 - repeat_code_len;
          }
        }
      }
      if (space !== 0) {
        throw new Error("[ReadHuffmanCodeLengths] space = " + space);
      }
      for (; symbol < num_symbols; symbol++)
        code_lengths[symbol] = 0;
    }
    function ReadHuffmanCode(alphabet_size, tables, table, br) {
      var table_size = 0;
      var simple_code_or_skip;
      var code_lengths = new Uint8Array(alphabet_size);
      br.readMoreInput();
      simple_code_or_skip = br.readBits(2);
      if (simple_code_or_skip === 1) {
        var i5;
        var max_bits_counter = alphabet_size - 1;
        var max_bits = 0;
        var symbols = new Int32Array(4);
        var num_symbols = br.readBits(2) + 1;
        while (max_bits_counter) {
          max_bits_counter >>= 1;
          ++max_bits;
        }
        for (i5 = 0; i5 < num_symbols; ++i5) {
          symbols[i5] = br.readBits(max_bits) % alphabet_size;
          code_lengths[symbols[i5]] = 2;
        }
        code_lengths[symbols[0]] = 1;
        switch (num_symbols) {
          case 1:
            break;
          case 3:
            if (symbols[0] === symbols[1] || symbols[0] === symbols[2] || symbols[1] === symbols[2]) {
              throw new Error("[ReadHuffmanCode] invalid symbols");
            }
            break;
          case 2:
            if (symbols[0] === symbols[1]) {
              throw new Error("[ReadHuffmanCode] invalid symbols");
            }
            code_lengths[symbols[1]] = 1;
            break;
          case 4:
            if (symbols[0] === symbols[1] || symbols[0] === symbols[2] || symbols[0] === symbols[3] || symbols[1] === symbols[2] || symbols[1] === symbols[3] || symbols[2] === symbols[3]) {
              throw new Error("[ReadHuffmanCode] invalid symbols");
            }
            if (br.readBits(1)) {
              code_lengths[symbols[2]] = 3;
              code_lengths[symbols[3]] = 3;
            } else {
              code_lengths[symbols[0]] = 2;
            }
            break;
        }
      } else {
        var i5;
        var code_length_code_lengths = new Uint8Array(CODE_LENGTH_CODES);
        var space = 32;
        var num_codes = 0;
        var huff = [
          new HuffmanCode(2, 0),
          new HuffmanCode(2, 4),
          new HuffmanCode(2, 3),
          new HuffmanCode(3, 2),
          new HuffmanCode(2, 0),
          new HuffmanCode(2, 4),
          new HuffmanCode(2, 3),
          new HuffmanCode(4, 1),
          new HuffmanCode(2, 0),
          new HuffmanCode(2, 4),
          new HuffmanCode(2, 3),
          new HuffmanCode(3, 2),
          new HuffmanCode(2, 0),
          new HuffmanCode(2, 4),
          new HuffmanCode(2, 3),
          new HuffmanCode(4, 5)
        ];
        for (i5 = simple_code_or_skip; i5 < CODE_LENGTH_CODES && space > 0; ++i5) {
          var code_len_idx = kCodeLengthCodeOrder[i5];
          var p3 = 0;
          var v3;
          br.fillBitWindow();
          p3 += br.val_ >>> br.bit_pos_ & 15;
          br.bit_pos_ += huff[p3].bits;
          v3 = huff[p3].value;
          code_length_code_lengths[code_len_idx] = v3;
          if (v3 !== 0) {
            space -= 32 >> v3;
            ++num_codes;
          }
        }
        if (!(num_codes === 1 || space === 0))
          throw new Error("[ReadHuffmanCode] invalid num_codes or space");
        ReadHuffmanCodeLengths(code_length_code_lengths, alphabet_size, code_lengths, br);
      }
      table_size = BrotliBuildHuffmanTable(tables, table, HUFFMAN_TABLE_BITS, code_lengths, alphabet_size);
      if (table_size === 0) {
        throw new Error("[ReadHuffmanCode] BuildHuffmanTable failed: ");
      }
      return table_size;
    }
    function ReadBlockLength(table, index2, br) {
      var code;
      var nbits;
      code = ReadSymbol(table, index2, br);
      nbits = Prefix.kBlockLengthPrefixCode[code].nbits;
      return Prefix.kBlockLengthPrefixCode[code].offset + br.readBits(nbits);
    }
    function TranslateShortCodes(code, ringbuffer, index2) {
      var val;
      if (code < NUM_DISTANCE_SHORT_CODES) {
        index2 += kDistanceShortCodeIndexOffset[code];
        index2 &= 3;
        val = ringbuffer[index2] + kDistanceShortCodeValueOffset[code];
      } else {
        val = code - NUM_DISTANCE_SHORT_CODES + 1;
      }
      return val;
    }
    function MoveToFront(v3, index2) {
      var value2 = v3[index2];
      var i5 = index2;
      for (; i5; --i5) v3[i5] = v3[i5 - 1];
      v3[0] = value2;
    }
    function InverseMoveToFrontTransform(v3, v_len) {
      var mtf = new Uint8Array(256);
      var i5;
      for (i5 = 0; i5 < 256; ++i5) {
        mtf[i5] = i5;
      }
      for (i5 = 0; i5 < v_len; ++i5) {
        var index2 = v3[i5];
        v3[i5] = mtf[index2];
        if (index2) MoveToFront(mtf, index2);
      }
    }
    function HuffmanTreeGroup(alphabet_size, num_htrees) {
      this.alphabet_size = alphabet_size;
      this.num_htrees = num_htrees;
      this.codes = new Array(num_htrees + num_htrees * kMaxHuffmanTableSize[alphabet_size + 31 >>> 5]);
      this.htrees = new Uint32Array(num_htrees);
    }
    HuffmanTreeGroup.prototype.decode = function(br) {
      var i5;
      var table_size;
      var next = 0;
      for (i5 = 0; i5 < this.num_htrees; ++i5) {
        this.htrees[i5] = next;
        table_size = ReadHuffmanCode(this.alphabet_size, this.codes, next, br);
        next += table_size;
      }
    };
    function DecodeContextMap(context_map_size, br) {
      var out = { num_htrees: null, context_map: null };
      var use_rle_for_zeros;
      var max_run_length_prefix = 0;
      var table;
      var i5;
      br.readMoreInput();
      var num_htrees = out.num_htrees = DecodeVarLenUint8(br) + 1;
      var context_map = out.context_map = new Uint8Array(context_map_size);
      if (num_htrees <= 1) {
        return out;
      }
      use_rle_for_zeros = br.readBits(1);
      if (use_rle_for_zeros) {
        max_run_length_prefix = br.readBits(4) + 1;
      }
      table = [];
      for (i5 = 0; i5 < HUFFMAN_MAX_TABLE_SIZE; i5++) {
        table[i5] = new HuffmanCode(0, 0);
      }
      ReadHuffmanCode(num_htrees + max_run_length_prefix, table, 0, br);
      for (i5 = 0; i5 < context_map_size; ) {
        var code;
        br.readMoreInput();
        code = ReadSymbol(table, 0, br);
        if (code === 0) {
          context_map[i5] = 0;
          ++i5;
        } else if (code <= max_run_length_prefix) {
          var reps = 1 + (1 << code) + br.readBits(code);
          while (--reps) {
            if (i5 >= context_map_size) {
              throw new Error("[DecodeContextMap] i >= context_map_size");
            }
            context_map[i5] = 0;
            ++i5;
          }
        } else {
          context_map[i5] = code - max_run_length_prefix;
          ++i5;
        }
      }
      if (br.readBits(1)) {
        InverseMoveToFrontTransform(context_map, context_map_size);
      }
      return out;
    }
    function DecodeBlockType(max_block_type, trees, tree_type, block_types, ringbuffers, indexes, br) {
      var ringbuffer = tree_type * 2;
      var index2 = tree_type;
      var type_code = ReadSymbol(trees, tree_type * HUFFMAN_MAX_TABLE_SIZE, br);
      var block_type;
      if (type_code === 0) {
        block_type = ringbuffers[ringbuffer + (indexes[index2] & 1)];
      } else if (type_code === 1) {
        block_type = ringbuffers[ringbuffer + (indexes[index2] - 1 & 1)] + 1;
      } else {
        block_type = type_code - 2;
      }
      if (block_type >= max_block_type) {
        block_type -= max_block_type;
      }
      block_types[tree_type] = block_type;
      ringbuffers[ringbuffer + (indexes[index2] & 1)] = block_type;
      ++indexes[index2];
    }
    function CopyUncompressedBlockToOutput(output, len, pos, ringbuffer, ringbuffer_mask, br) {
      var rb_size = ringbuffer_mask + 1;
      var rb_pos = pos & ringbuffer_mask;
      var br_pos = br.pos_ & BrotliBitReader.IBUF_MASK;
      var nbytes;
      if (len < 8 || br.bit_pos_ + (len << 3) < br.bit_end_pos_) {
        while (len-- > 0) {
          br.readMoreInput();
          ringbuffer[rb_pos++] = br.readBits(8);
          if (rb_pos === rb_size) {
            output.write(ringbuffer, rb_size);
            rb_pos = 0;
          }
        }
        return;
      }
      if (br.bit_end_pos_ < 32) {
        throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32");
      }
      while (br.bit_pos_ < 32) {
        ringbuffer[rb_pos] = br.val_ >>> br.bit_pos_;
        br.bit_pos_ += 8;
        ++rb_pos;
        --len;
      }
      nbytes = br.bit_end_pos_ - br.bit_pos_ >> 3;
      if (br_pos + nbytes > BrotliBitReader.IBUF_MASK) {
        var tail = BrotliBitReader.IBUF_MASK + 1 - br_pos;
        for (var x = 0; x < tail; x++)
          ringbuffer[rb_pos + x] = br.buf_[br_pos + x];
        nbytes -= tail;
        rb_pos += tail;
        len -= tail;
        br_pos = 0;
      }
      for (var x = 0; x < nbytes; x++)
        ringbuffer[rb_pos + x] = br.buf_[br_pos + x];
      rb_pos += nbytes;
      len -= nbytes;
      if (rb_pos >= rb_size) {
        output.write(ringbuffer, rb_size);
        rb_pos -= rb_size;
        for (var x = 0; x < rb_pos; x++)
          ringbuffer[x] = ringbuffer[rb_size + x];
      }
      while (rb_pos + len >= rb_size) {
        nbytes = rb_size - rb_pos;
        if (br.input_.read(ringbuffer, rb_pos, nbytes) < nbytes) {
          throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");
        }
        output.write(ringbuffer, rb_size);
        len -= nbytes;
        rb_pos = 0;
      }
      if (br.input_.read(ringbuffer, rb_pos, len) < len) {
        throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");
      }
      br.reset();
    }
    function JumpToByteBoundary(br) {
      var new_bit_pos = br.bit_pos_ + 7 & ~7;
      var pad_bits = br.readBits(new_bit_pos - br.bit_pos_);
      return pad_bits == 0;
    }
    function BrotliDecompressedSize(buffer) {
      var input = new BrotliInput(buffer);
      var br = new BrotliBitReader(input);
      DecodeWindowBits(br);
      var out = DecodeMetaBlockLength(br);
      return out.meta_block_length;
    }
    exports.BrotliDecompressedSize = BrotliDecompressedSize;
    function BrotliDecompressBuffer(buffer, output_size) {
      var input = new BrotliInput(buffer);
      if (output_size == null) {
        output_size = BrotliDecompressedSize(buffer);
      }
      var output_buffer = new Uint8Array(output_size);
      var output = new BrotliOutput(output_buffer);
      BrotliDecompress(input, output);
      if (output.pos < output.buffer.length) {
        output.buffer = output.buffer.subarray(0, output.pos);
      }
      return output.buffer;
    }
    exports.BrotliDecompressBuffer = BrotliDecompressBuffer;
    function BrotliDecompress(input, output) {
      var i5;
      var pos = 0;
      var input_end = 0;
      var window_bits = 0;
      var max_backward_distance;
      var max_distance = 0;
      var ringbuffer_size;
      var ringbuffer_mask;
      var ringbuffer;
      var ringbuffer_end;
      var dist_rb = [16, 15, 11, 4];
      var dist_rb_idx = 0;
      var prev_byte1 = 0;
      var prev_byte2 = 0;
      var hgroup = [new HuffmanTreeGroup(0, 0), new HuffmanTreeGroup(0, 0), new HuffmanTreeGroup(0, 0)];
      var block_type_trees;
      var block_len_trees;
      var br;
      var kRingBufferWriteAheadSlack = 128 + BrotliBitReader.READ_SIZE;
      br = new BrotliBitReader(input);
      window_bits = DecodeWindowBits(br);
      max_backward_distance = (1 << window_bits) - 16;
      ringbuffer_size = 1 << window_bits;
      ringbuffer_mask = ringbuffer_size - 1;
      ringbuffer = new Uint8Array(ringbuffer_size + kRingBufferWriteAheadSlack + BrotliDictionary.maxDictionaryWordLength);
      ringbuffer_end = ringbuffer_size;
      block_type_trees = [];
      block_len_trees = [];
      for (var x = 0; x < 3 * HUFFMAN_MAX_TABLE_SIZE; x++) {
        block_type_trees[x] = new HuffmanCode(0, 0);
        block_len_trees[x] = new HuffmanCode(0, 0);
      }
      while (!input_end) {
        var meta_block_remaining_len = 0;
        var is_uncompressed;
        var block_length = [1 << 28, 1 << 28, 1 << 28];
        var block_type = [0];
        var num_block_types = [1, 1, 1];
        var block_type_rb = [0, 1, 0, 1, 0, 1];
        var block_type_rb_index = [0];
        var distance_postfix_bits;
        var num_direct_distance_codes;
        var distance_postfix_mask;
        var num_distance_codes;
        var context_map = null;
        var context_modes = null;
        var num_literal_htrees;
        var dist_context_map = null;
        var num_dist_htrees;
        var context_offset = 0;
        var context_map_slice = null;
        var literal_htree_index = 0;
        var dist_context_offset = 0;
        var dist_context_map_slice = null;
        var dist_htree_index = 0;
        var context_lookup_offset1 = 0;
        var context_lookup_offset2 = 0;
        var context_mode;
        var htree_command;
        for (i5 = 0; i5 < 3; ++i5) {
          hgroup[i5].codes = null;
          hgroup[i5].htrees = null;
        }
        br.readMoreInput();
        var _out = DecodeMetaBlockLength(br);
        meta_block_remaining_len = _out.meta_block_length;
        if (pos + meta_block_remaining_len > output.buffer.length) {
          var tmp = new Uint8Array(pos + meta_block_remaining_len);
          tmp.set(output.buffer);
          output.buffer = tmp;
        }
        input_end = _out.input_end;
        is_uncompressed = _out.is_uncompressed;
        if (_out.is_metadata) {
          JumpToByteBoundary(br);
          for (; meta_block_remaining_len > 0; --meta_block_remaining_len) {
            br.readMoreInput();
            br.readBits(8);
          }
          continue;
        }
        if (meta_block_remaining_len === 0) {
          continue;
        }
        if (is_uncompressed) {
          br.bit_pos_ = br.bit_pos_ + 7 & ~7;
          CopyUncompressedBlockToOutput(
            output,
            meta_block_remaining_len,
            pos,
            ringbuffer,
            ringbuffer_mask,
            br
          );
          pos += meta_block_remaining_len;
          continue;
        }
        for (i5 = 0; i5 < 3; ++i5) {
          num_block_types[i5] = DecodeVarLenUint8(br) + 1;
          if (num_block_types[i5] >= 2) {
            ReadHuffmanCode(num_block_types[i5] + 2, block_type_trees, i5 * HUFFMAN_MAX_TABLE_SIZE, br);
            ReadHuffmanCode(kNumBlockLengthCodes, block_len_trees, i5 * HUFFMAN_MAX_TABLE_SIZE, br);
            block_length[i5] = ReadBlockLength(block_len_trees, i5 * HUFFMAN_MAX_TABLE_SIZE, br);
            block_type_rb_index[i5] = 1;
          }
        }
        br.readMoreInput();
        distance_postfix_bits = br.readBits(2);
        num_direct_distance_codes = NUM_DISTANCE_SHORT_CODES + (br.readBits(4) << distance_postfix_bits);
        distance_postfix_mask = (1 << distance_postfix_bits) - 1;
        num_distance_codes = num_direct_distance_codes + (48 << distance_postfix_bits);
        context_modes = new Uint8Array(num_block_types[0]);
        for (i5 = 0; i5 < num_block_types[0]; ++i5) {
          br.readMoreInput();
          context_modes[i5] = br.readBits(2) << 1;
        }
        var _o1 = DecodeContextMap(num_block_types[0] << kLiteralContextBits, br);
        num_literal_htrees = _o1.num_htrees;
        context_map = _o1.context_map;
        var _o2 = DecodeContextMap(num_block_types[2] << kDistanceContextBits, br);
        num_dist_htrees = _o2.num_htrees;
        dist_context_map = _o2.context_map;
        hgroup[0] = new HuffmanTreeGroup(kNumLiteralCodes, num_literal_htrees);
        hgroup[1] = new HuffmanTreeGroup(kNumInsertAndCopyCodes, num_block_types[1]);
        hgroup[2] = new HuffmanTreeGroup(num_distance_codes, num_dist_htrees);
        for (i5 = 0; i5 < 3; ++i5) {
          hgroup[i5].decode(br);
        }
        context_map_slice = 0;
        dist_context_map_slice = 0;
        context_mode = context_modes[block_type[0]];
        context_lookup_offset1 = Context.lookupOffsets[context_mode];
        context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];
        htree_command = hgroup[1].htrees[0];
        while (meta_block_remaining_len > 0) {
          var cmd_code;
          var range_idx;
          var insert_code;
          var copy_code;
          var insert_length;
          var copy_length;
          var distance_code;
          var distance;
          var context;
          var j;
          var copy_dst;
          br.readMoreInput();
          if (block_length[1] === 0) {
            DecodeBlockType(
              num_block_types[1],
              block_type_trees,
              1,
              block_type,
              block_type_rb,
              block_type_rb_index,
              br
            );
            block_length[1] = ReadBlockLength(block_len_trees, HUFFMAN_MAX_TABLE_SIZE, br);
            htree_command = hgroup[1].htrees[block_type[1]];
          }
          --block_length[1];
          cmd_code = ReadSymbol(hgroup[1].codes, htree_command, br);
          range_idx = cmd_code >> 6;
          if (range_idx >= 2) {
            range_idx -= 2;
            distance_code = -1;
          } else {
            distance_code = 0;
          }
          insert_code = Prefix.kInsertRangeLut[range_idx] + (cmd_code >> 3 & 7);
          copy_code = Prefix.kCopyRangeLut[range_idx] + (cmd_code & 7);
          insert_length = Prefix.kInsertLengthPrefixCode[insert_code].offset + br.readBits(Prefix.kInsertLengthPrefixCode[insert_code].nbits);
          copy_length = Prefix.kCopyLengthPrefixCode[copy_code].offset + br.readBits(Prefix.kCopyLengthPrefixCode[copy_code].nbits);
          prev_byte1 = ringbuffer[pos - 1 & ringbuffer_mask];
          prev_byte2 = ringbuffer[pos - 2 & ringbuffer_mask];
          for (j = 0; j < insert_length; ++j) {
            br.readMoreInput();
            if (block_length[0] === 0) {
              DecodeBlockType(
                num_block_types[0],
                block_type_trees,
                0,
                block_type,
                block_type_rb,
                block_type_rb_index,
                br
              );
              block_length[0] = ReadBlockLength(block_len_trees, 0, br);
              context_offset = block_type[0] << kLiteralContextBits;
              context_map_slice = context_offset;
              context_mode = context_modes[block_type[0]];
              context_lookup_offset1 = Context.lookupOffsets[context_mode];
              context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];
            }
            context = Context.lookup[context_lookup_offset1 + prev_byte1] | Context.lookup[context_lookup_offset2 + prev_byte2];
            literal_htree_index = context_map[context_map_slice + context];
            --block_length[0];
            prev_byte2 = prev_byte1;
            prev_byte1 = ReadSymbol(hgroup[0].codes, hgroup[0].htrees[literal_htree_index], br);
            ringbuffer[pos & ringbuffer_mask] = prev_byte1;
            if ((pos & ringbuffer_mask) === ringbuffer_mask) {
              output.write(ringbuffer, ringbuffer_size);
            }
            ++pos;
          }
          meta_block_remaining_len -= insert_length;
          if (meta_block_remaining_len <= 0) break;
          if (distance_code < 0) {
            var context;
            br.readMoreInput();
            if (block_length[2] === 0) {
              DecodeBlockType(
                num_block_types[2],
                block_type_trees,
                2,
                block_type,
                block_type_rb,
                block_type_rb_index,
                br
              );
              block_length[2] = ReadBlockLength(block_len_trees, 2 * HUFFMAN_MAX_TABLE_SIZE, br);
              dist_context_offset = block_type[2] << kDistanceContextBits;
              dist_context_map_slice = dist_context_offset;
            }
            --block_length[2];
            context = (copy_length > 4 ? 3 : copy_length - 2) & 255;
            dist_htree_index = dist_context_map[dist_context_map_slice + context];
            distance_code = ReadSymbol(hgroup[2].codes, hgroup[2].htrees[dist_htree_index], br);
            if (distance_code >= num_direct_distance_codes) {
              var nbits;
              var postfix;
              var offset2;
              distance_code -= num_direct_distance_codes;
              postfix = distance_code & distance_postfix_mask;
              distance_code >>= distance_postfix_bits;
              nbits = (distance_code >> 1) + 1;
              offset2 = (2 + (distance_code & 1) << nbits) - 4;
              distance_code = num_direct_distance_codes + (offset2 + br.readBits(nbits) << distance_postfix_bits) + postfix;
            }
          }
          distance = TranslateShortCodes(distance_code, dist_rb, dist_rb_idx);
          if (distance < 0) {
            throw new Error("[BrotliDecompress] invalid distance");
          }
          if (pos < max_backward_distance && max_distance !== max_backward_distance) {
            max_distance = pos;
          } else {
            max_distance = max_backward_distance;
          }
          copy_dst = pos & ringbuffer_mask;
          if (distance > max_distance) {
            if (copy_length >= BrotliDictionary.minDictionaryWordLength && copy_length <= BrotliDictionary.maxDictionaryWordLength) {
              var offset2 = BrotliDictionary.offsetsByLength[copy_length];
              var word_id = distance - max_distance - 1;
              var shift = BrotliDictionary.sizeBitsByLength[copy_length];
              var mask = (1 << shift) - 1;
              var word_idx = word_id & mask;
              var transform_idx = word_id >> shift;
              offset2 += word_idx * copy_length;
              if (transform_idx < Transform.kNumTransforms) {
                var len = Transform.transformDictionaryWord(ringbuffer, copy_dst, offset2, copy_length, transform_idx);
                copy_dst += len;
                pos += len;
                meta_block_remaining_len -= len;
                if (copy_dst >= ringbuffer_end) {
                  output.write(ringbuffer, ringbuffer_size);
                  for (var _x = 0; _x < copy_dst - ringbuffer_end; _x++)
                    ringbuffer[_x] = ringbuffer[ringbuffer_end + _x];
                }
              } else {
                throw new Error("Invalid backward reference. pos: " + pos + " distance: " + distance + " len: " + copy_length + " bytes left: " + meta_block_remaining_len);
              }
            } else {
              throw new Error("Invalid backward reference. pos: " + pos + " distance: " + distance + " len: " + copy_length + " bytes left: " + meta_block_remaining_len);
            }
          } else {
            if (distance_code > 0) {
              dist_rb[dist_rb_idx & 3] = distance;
              ++dist_rb_idx;
            }
            if (copy_length > meta_block_remaining_len) {
              throw new Error("Invalid backward reference. pos: " + pos + " distance: " + distance + " len: " + copy_length + " bytes left: " + meta_block_remaining_len);
            }
            for (j = 0; j < copy_length; ++j) {
              ringbuffer[pos & ringbuffer_mask] = ringbuffer[pos - distance & ringbuffer_mask];
              if ((pos & ringbuffer_mask) === ringbuffer_mask) {
                output.write(ringbuffer, ringbuffer_size);
              }
              ++pos;
              --meta_block_remaining_len;
            }
          }
          prev_byte1 = ringbuffer[pos - 1 & ringbuffer_mask];
          prev_byte2 = ringbuffer[pos - 2 & ringbuffer_mask];
        }
        pos &= 1073741823;
      }
      output.write(ringbuffer, pos & ringbuffer_mask);
    }
    exports.BrotliDecompress = BrotliDecompress;
    BrotliDictionary.init();
  }
});

// ../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/decompress.js
var require_decompress2 = __commonJS({
  "../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/decompress.js"(exports, module) {
    module.exports = require_decode4().BrotliDecompressBuffer;
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/core.js
var require_core2 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/core.js"(exports, module) {
    (function(root, factory2) {
      if (typeof exports === "object") {
        module.exports = exports = factory2();
      } else if (typeof define === "function" && define.amd) {
        define([], factory2);
      } else {
        root.CryptoJS = factory2();
      }
    })(exports, function() {
      var CryptoJS2 = CryptoJS2 || (function(Math2, undefined2) {
        var crypto5;
        if (typeof window !== "undefined" && window.crypto) {
          crypto5 = window.crypto;
        }
        if (typeof self !== "undefined" && self.crypto) {
          crypto5 = self.crypto;
        }
        if (typeof globalThis !== "undefined" && globalThis.crypto) {
          crypto5 = globalThis.crypto;
        }
        if (!crypto5 && typeof window !== "undefined" && window.msCrypto) {
          crypto5 = window.msCrypto;
        }
        if (!crypto5 && typeof global !== "undefined" && global.crypto) {
          crypto5 = global.crypto;
        }
        if (!crypto5 && typeof __require === "function") {
          try {
            crypto5 = __require("crypto");
          } catch (err2) {
          }
        }
        var cryptoSecureRandomInt = function() {
          if (crypto5) {
            if (typeof crypto5.getRandomValues === "function") {
              try {
                return crypto5.getRandomValues(new Uint32Array(1))[0];
              } catch (err2) {
              }
            }
            if (typeof crypto5.randomBytes === "function") {
              try {
                return crypto5.randomBytes(4).readInt32LE();
              } catch (err2) {
              }
            }
          }
          throw new Error("Native crypto module could not be used to get secure random number.");
        };
        var create2 = Object.create || /* @__PURE__ */ (function() {
          function F() {
          }
          return function(obj) {
            var subtype;
            F.prototype = obj;
            subtype = new F();
            F.prototype = null;
            return subtype;
          };
        })();
        var C = {};
        var C_lib = C.lib = {};
        var Base2 = C_lib.Base = /* @__PURE__ */ (function() {
          return {
            /**
             * Creates a new object that inherits from this object.
             *
             * @param {Object} overrides Properties to copy into the new object.
             *
             * @return {Object} The new object.
             *
             * @static
             *
             * @example
             *
             *     var MyType = CryptoJS.lib.Base.extend({
             *         field: 'value',
             *
             *         method: function () {
             *         }
             *     });
             */
            extend: function(overrides) {
              var subtype = create2(this);
              if (overrides) {
                subtype.mixIn(overrides);
              }
              if (!subtype.hasOwnProperty("init") || this.init === subtype.init) {
                subtype.init = function() {
                  subtype.$super.init.apply(this, arguments);
                };
              }
              subtype.init.prototype = subtype;
              subtype.$super = this;
              return subtype;
            },
            /**
             * Extends this object and runs the init method.
             * Arguments to create() will be passed to init().
             *
             * @return {Object} The new object.
             *
             * @static
             *
             * @example
             *
             *     var instance = MyType.create();
             */
            create: function() {
              var instance = this.extend();
              instance.init.apply(instance, arguments);
              return instance;
            },
            /**
             * Initializes a newly created object.
             * Override this method to add some logic when your objects are created.
             *
             * @example
             *
             *     var MyType = CryptoJS.lib.Base.extend({
             *         init: function () {
             *             // ...
             *         }
             *     });
             */
            init: function() {
            },
            /**
             * Copies properties into this object.
             *
             * @param {Object} properties The properties to mix in.
             *
             * @example
             *
             *     MyType.mixIn({
             *         field: 'value'
             *     });
             */
            mixIn: function(properties) {
              for (var propertyName in properties) {
                if (properties.hasOwnProperty(propertyName)) {
                  this[propertyName] = properties[propertyName];
                }
              }
              if (properties.hasOwnProperty("toString")) {
                this.toString = properties.toString;
              }
            },
            /**
             * Creates a copy of this object.
             *
             * @return {Object} The clone.
             *
             * @example
             *
             *     var clone = instance.clone();
             */
            clone: function() {
              return this.init.prototype.extend(this);
            }
          };
        })();
        var WordArray = C_lib.WordArray = Base2.extend({
          /**
           * Initializes a newly created word array.
           *
           * @param {Array} words (Optional) An array of 32-bit words.
           * @param {number} sigBytes (Optional) The number of significant bytes in the words.
           *
           * @example
           *
           *     var wordArray = CryptoJS.lib.WordArray.create();
           *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
           *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
           */
          init: function(words, sigBytes) {
            words = this.words = words || [];
            if (sigBytes != undefined2) {
              this.sigBytes = sigBytes;
            } else {
              this.sigBytes = words.length * 4;
            }
          },
          /**
           * Converts this word array to a string.
           *
           * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
           *
           * @return {string} The stringified word array.
           *
           * @example
           *
           *     var string = wordArray + '';
           *     var string = wordArray.toString();
           *     var string = wordArray.toString(CryptoJS.enc.Utf8);
           */
          toString: function(encoder) {
            return (encoder || Hex).stringify(this);
          },
          /**
           * Concatenates a word array to this word array.
           *
           * @param {WordArray} wordArray The word array to append.
           *
           * @return {WordArray} This word array.
           *
           * @example
           *
           *     wordArray1.concat(wordArray2);
           */
          concat: function(wordArray) {
            var thisWords = this.words;
            var thatWords = wordArray.words;
            var thisSigBytes = this.sigBytes;
            var thatSigBytes = wordArray.sigBytes;
            this.clamp();
            if (thisSigBytes % 4) {
              for (var i5 = 0; i5 < thatSigBytes; i5++) {
                var thatByte = thatWords[i5 >>> 2] >>> 24 - i5 % 4 * 8 & 255;
                thisWords[thisSigBytes + i5 >>> 2] |= thatByte << 24 - (thisSigBytes + i5) % 4 * 8;
              }
            } else {
              for (var j = 0; j < thatSigBytes; j += 4) {
                thisWords[thisSigBytes + j >>> 2] = thatWords[j >>> 2];
              }
            }
            this.sigBytes += thatSigBytes;
            return this;
          },
          /**
           * Removes insignificant bits.
           *
           * @example
           *
           *     wordArray.clamp();
           */
          clamp: function() {
            var words = this.words;
            var sigBytes = this.sigBytes;
            words[sigBytes >>> 2] &= 4294967295 << 32 - sigBytes % 4 * 8;
            words.length = Math2.ceil(sigBytes / 4);
          },
          /**
           * Creates a copy of this word array.
           *
           * @return {WordArray} The clone.
           *
           * @example
           *
           *     var clone = wordArray.clone();
           */
          clone: function() {
            var clone = Base2.clone.call(this);
            clone.words = this.words.slice(0);
            return clone;
          },
          /**
           * Creates a word array filled with random bytes.
           *
           * @param {number} nBytes The number of random bytes to generate.
           *
           * @return {WordArray} The random word array.
           *
           * @static
           *
           * @example
           *
           *     var wordArray = CryptoJS.lib.WordArray.random(16);
           */
          random: function(nBytes) {
            var words = [];
            for (var i5 = 0; i5 < nBytes; i5 += 4) {
              words.push(cryptoSecureRandomInt());
            }
            return new WordArray.init(words, nBytes);
          }
        });
        var C_enc = C.enc = {};
        var Hex = C_enc.Hex = {
          /**
           * Converts a word array to a hex string.
           *
           * @param {WordArray} wordArray The word array.
           *
           * @return {string} The hex string.
           *
           * @static
           *
           * @example
           *
           *     var hexString = CryptoJS.enc.Hex.stringify(wordArray);
           */
          stringify: function(wordArray) {
            var words = wordArray.words;
            var sigBytes = wordArray.sigBytes;
            var hexChars = [];
            for (var i5 = 0; i5 < sigBytes; i5++) {
              var bite = words[i5 >>> 2] >>> 24 - i5 % 4 * 8 & 255;
              hexChars.push((bite >>> 4).toString(16));
              hexChars.push((bite & 15).toString(16));
            }
            return hexChars.join("");
          },
          /**
           * Converts a hex string to a word array.
           *
           * @param {string} hexStr The hex string.
           *
           * @return {WordArray} The word array.
           *
           * @static
           *
           * @example
           *
           *     var wordArray = CryptoJS.enc.Hex.parse(hexString);
           */
          parse: function(hexStr) {
            var hexStrLength = hexStr.length;
            var words = [];
            for (var i5 = 0; i5 < hexStrLength; i5 += 2) {
              words[i5 >>> 3] |= parseInt(hexStr.substr(i5, 2), 16) << 24 - i5 % 8 * 4;
            }
            return new WordArray.init(words, hexStrLength / 2);
          }
        };
        var Latin1 = C_enc.Latin1 = {
          /**
           * Converts a word array to a Latin1 string.
           *
           * @param {WordArray} wordArray The word array.
           *
           * @return {string} The Latin1 string.
           *
           * @static
           *
           * @example
           *
           *     var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
           */
          stringify: function(wordArray) {
            var words = wordArray.words;
            var sigBytes = wordArray.sigBytes;
            var latin1Chars = [];
            for (var i5 = 0; i5 < sigBytes; i5++) {
              var bite = words[i5 >>> 2] >>> 24 - i5 % 4 * 8 & 255;
              latin1Chars.push(String.fromCharCode(bite));
            }
            return latin1Chars.join("");
          },
          /**
           * Converts a Latin1 string to a word array.
           *
           * @param {string} latin1Str The Latin1 string.
           *
           * @return {WordArray} The word array.
           *
           * @static
           *
           * @example
           *
           *     var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
           */
          parse: function(latin1Str) {
            var latin1StrLength = latin1Str.length;
            var words = [];
            for (var i5 = 0; i5 < latin1StrLength; i5++) {
              words[i5 >>> 2] |= (latin1Str.charCodeAt(i5) & 255) << 24 - i5 % 4 * 8;
            }
            return new WordArray.init(words, latin1StrLength);
          }
        };
        var Utf8 = C_enc.Utf8 = {
          /**
           * Converts a word array to a UTF-8 string.
           *
           * @param {WordArray} wordArray The word array.
           *
           * @return {string} The UTF-8 string.
           *
           * @static
           *
           * @example
           *
           *     var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
           */
          stringify: function(wordArray) {
            try {
              return decodeURIComponent(escape(Latin1.stringify(wordArray)));
            } catch (e4) {
              throw new Error("Malformed UTF-8 data");
            }
          },
          /**
           * Converts a UTF-8 string to a word array.
           *
           * @param {string} utf8Str The UTF-8 string.
           *
           * @return {WordArray} The word array.
           *
           * @static
           *
           * @example
           *
           *     var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
           */
          parse: function(utf8Str) {
            return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
          }
        };
        var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base2.extend({
          /**
           * Resets this block algorithm's data buffer to its initial state.
           *
           * @example
           *
           *     bufferedBlockAlgorithm.reset();
           */
          reset: function() {
            this._data = new WordArray.init();
            this._nDataBytes = 0;
          },
          /**
           * Adds new data to this block algorithm's buffer.
           *
           * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
           *
           * @example
           *
           *     bufferedBlockAlgorithm._append('data');
           *     bufferedBlockAlgorithm._append(wordArray);
           */
          _append: function(data2) {
            if (typeof data2 == "string") {
              data2 = Utf8.parse(data2);
            }
            this._data.concat(data2);
            this._nDataBytes += data2.sigBytes;
          },
          /**
           * Processes available data blocks.
           *
           * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
           *
           * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
           *
           * @return {WordArray} The processed data.
           *
           * @example
           *
           *     var processedData = bufferedBlockAlgorithm._process();
           *     var processedData = bufferedBlockAlgorithm._process(!!'flush');
           */
          _process: function(doFlush) {
            var processedWords;
            var data2 = this._data;
            var dataWords = data2.words;
            var dataSigBytes = data2.sigBytes;
            var blockSize = this.blockSize;
            var blockSizeBytes = blockSize * 4;
            var nBlocksReady = dataSigBytes / blockSizeBytes;
            if (doFlush) {
              nBlocksReady = Math2.ceil(nBlocksReady);
            } else {
              nBlocksReady = Math2.max((nBlocksReady | 0) - this._minBufferSize, 0);
            }
            var nWordsReady = nBlocksReady * blockSize;
            var nBytesReady = Math2.min(nWordsReady * 4, dataSigBytes);
            if (nWordsReady) {
              for (var offset2 = 0; offset2 < nWordsReady; offset2 += blockSize) {
                this._doProcessBlock(dataWords, offset2);
              }
              processedWords = dataWords.splice(0, nWordsReady);
              data2.sigBytes -= nBytesReady;
            }
            return new WordArray.init(processedWords, nBytesReady);
          },
          /**
           * Creates a copy of this object.
           *
           * @return {Object} The clone.
           *
           * @example
           *
           *     var clone = bufferedBlockAlgorithm.clone();
           */
          clone: function() {
            var clone = Base2.clone.call(this);
            clone._data = this._data.clone();
            return clone;
          },
          _minBufferSize: 0
        });
        var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({
          /**
           * Configuration options.
           */
          cfg: Base2.extend(),
          /**
           * Initializes a newly created hasher.
           *
           * @param {Object} cfg (Optional) The configuration options to use for this hash computation.
           *
           * @example
           *
           *     var hasher = CryptoJS.algo.SHA256.create();
           */
          init: function(cfg) {
            this.cfg = this.cfg.extend(cfg);
            this.reset();
          },
          /**
           * Resets this hasher to its initial state.
           *
           * @example
           *
           *     hasher.reset();
           */
          reset: function() {
            BufferedBlockAlgorithm.reset.call(this);
            this._doReset();
          },
          /**
           * Updates this hasher with a message.
           *
           * @param {WordArray|string} messageUpdate The message to append.
           *
           * @return {Hasher} This hasher.
           *
           * @example
           *
           *     hasher.update('message');
           *     hasher.update(wordArray);
           */
          update: function(messageUpdate) {
            this._append(messageUpdate);
            this._process();
            return this;
          },
          /**
           * Finalizes the hash computation.
           * Note that the finalize operation is effectively a destructive, read-once operation.
           *
           * @param {WordArray|string} messageUpdate (Optional) A final message update.
           *
           * @return {WordArray} The hash.
           *
           * @example
           *
           *     var hash = hasher.finalize();
           *     var hash = hasher.finalize('message');
           *     var hash = hasher.finalize(wordArray);
           */
          finalize: function(messageUpdate) {
            if (messageUpdate) {
              this._append(messageUpdate);
            }
            var hash = this._doFinalize();
            return hash;
          },
          blockSize: 512 / 32,
          /**
           * Creates a shortcut function to a hasher's object interface.
           *
           * @param {Hasher} hasher The hasher to create a helper for.
           *
           * @return {Function} The shortcut function.
           *
           * @static
           *
           * @example
           *
           *     var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
           */
          _createHelper: function(hasher) {
            return function(message, cfg) {
              return new hasher.init(cfg).finalize(message);
            };
          },
          /**
           * Creates a shortcut function to the HMAC's object interface.
           *
           * @param {Hasher} hasher The hasher to use in this HMAC helper.
           *
           * @return {Function} The shortcut function.
           *
           * @static
           *
           * @example
           *
           *     var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
           */
          _createHmacHelper: function(hasher) {
            return function(message, key) {
              return new C_algo.HMAC.init(hasher, key).finalize(message);
            };
          }
        });
        var C_algo = C.algo = {};
        return C;
      })(Math);
      return CryptoJS2;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/md5.js
var require_md5 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/md5.js"(exports, module) {
    (function(root, factory2) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2());
      } else if (typeof define === "function" && define.amd) {
        define(["./core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function(Math2) {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var WordArray = C_lib.WordArray;
        var Hasher = C_lib.Hasher;
        var C_algo = C.algo;
        var T = [];
        (function() {
          for (var i5 = 0; i5 < 64; i5++) {
            T[i5] = Math2.abs(Math2.sin(i5 + 1)) * 4294967296 | 0;
          }
        })();
        var MD52 = C_algo.MD5 = Hasher.extend({
          _doReset: function() {
            this._hash = new WordArray.init([
              1732584193,
              4023233417,
              2562383102,
              271733878
            ]);
          },
          _doProcessBlock: function(M, offset2) {
            for (var i5 = 0; i5 < 16; i5++) {
              var offset_i = offset2 + i5;
              var M_offset_i = M[offset_i];
              M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 16711935 | (M_offset_i << 24 | M_offset_i >>> 8) & 4278255360;
            }
            var H = this._hash.words;
            var M_offset_0 = M[offset2 + 0];
            var M_offset_1 = M[offset2 + 1];
            var M_offset_2 = M[offset2 + 2];
            var M_offset_3 = M[offset2 + 3];
            var M_offset_4 = M[offset2 + 4];
            var M_offset_5 = M[offset2 + 5];
            var M_offset_6 = M[offset2 + 6];
            var M_offset_7 = M[offset2 + 7];
            var M_offset_8 = M[offset2 + 8];
            var M_offset_9 = M[offset2 + 9];
            var M_offset_10 = M[offset2 + 10];
            var M_offset_11 = M[offset2 + 11];
            var M_offset_12 = M[offset2 + 12];
            var M_offset_13 = M[offset2 + 13];
            var M_offset_14 = M[offset2 + 14];
            var M_offset_15 = M[offset2 + 15];
            var a5 = H[0];
            var b3 = H[1];
            var c6 = H[2];
            var d3 = H[3];
            a5 = FF(a5, b3, c6, d3, M_offset_0, 7, T[0]);
            d3 = FF(d3, a5, b3, c6, M_offset_1, 12, T[1]);
            c6 = FF(c6, d3, a5, b3, M_offset_2, 17, T[2]);
            b3 = FF(b3, c6, d3, a5, M_offset_3, 22, T[3]);
            a5 = FF(a5, b3, c6, d3, M_offset_4, 7, T[4]);
            d3 = FF(d3, a5, b3, c6, M_offset_5, 12, T[5]);
            c6 = FF(c6, d3, a5, b3, M_offset_6, 17, T[6]);
            b3 = FF(b3, c6, d3, a5, M_offset_7, 22, T[7]);
            a5 = FF(a5, b3, c6, d3, M_offset_8, 7, T[8]);
            d3 = FF(d3, a5, b3, c6, M_offset_9, 12, T[9]);
            c6 = FF(c6, d3, a5, b3, M_offset_10, 17, T[10]);
            b3 = FF(b3, c6, d3, a5, M_offset_11, 22, T[11]);
            a5 = FF(a5, b3, c6, d3, M_offset_12, 7, T[12]);
            d3 = FF(d3, a5, b3, c6, M_offset_13, 12, T[13]);
            c6 = FF(c6, d3, a5, b3, M_offset_14, 17, T[14]);
            b3 = FF(b3, c6, d3, a5, M_offset_15, 22, T[15]);
            a5 = GG(a5, b3, c6, d3, M_offset_1, 5, T[16]);
            d3 = GG(d3, a5, b3, c6, M_offset_6, 9, T[17]);
            c6 = GG(c6, d3, a5, b3, M_offset_11, 14, T[18]);
            b3 = GG(b3, c6, d3, a5, M_offset_0, 20, T[19]);
            a5 = GG(a5, b3, c6, d3, M_offset_5, 5, T[20]);
            d3 = GG(d3, a5, b3, c6, M_offset_10, 9, T[21]);
            c6 = GG(c6, d3, a5, b3, M_offset_15, 14, T[22]);
            b3 = GG(b3, c6, d3, a5, M_offset_4, 20, T[23]);
            a5 = GG(a5, b3, c6, d3, M_offset_9, 5, T[24]);
            d3 = GG(d3, a5, b3, c6, M_offset_14, 9, T[25]);
            c6 = GG(c6, d3, a5, b3, M_offset_3, 14, T[26]);
            b3 = GG(b3, c6, d3, a5, M_offset_8, 20, T[27]);
            a5 = GG(a5, b3, c6, d3, M_offset_13, 5, T[28]);
            d3 = GG(d3, a5, b3, c6, M_offset_2, 9, T[29]);
            c6 = GG(c6, d3, a5, b3, M_offset_7, 14, T[30]);
            b3 = GG(b3, c6, d3, a5, M_offset_12, 20, T[31]);
            a5 = HH(a5, b3, c6, d3, M_offset_5, 4, T[32]);
            d3 = HH(d3, a5, b3, c6, M_offset_8, 11, T[33]);
            c6 = HH(c6, d3, a5, b3, M_offset_11, 16, T[34]);
            b3 = HH(b3, c6, d3, a5, M_offset_14, 23, T[35]);
            a5 = HH(a5, b3, c6, d3, M_offset_1, 4, T[36]);
            d3 = HH(d3, a5, b3, c6, M_offset_4, 11, T[37]);
            c6 = HH(c6, d3, a5, b3, M_offset_7, 16, T[38]);
            b3 = HH(b3, c6, d3, a5, M_offset_10, 23, T[39]);
            a5 = HH(a5, b3, c6, d3, M_offset_13, 4, T[40]);
            d3 = HH(d3, a5, b3, c6, M_offset_0, 11, T[41]);
            c6 = HH(c6, d3, a5, b3, M_offset_3, 16, T[42]);
            b3 = HH(b3, c6, d3, a5, M_offset_6, 23, T[43]);
            a5 = HH(a5, b3, c6, d3, M_offset_9, 4, T[44]);
            d3 = HH(d3, a5, b3, c6, M_offset_12, 11, T[45]);
            c6 = HH(c6, d3, a5, b3, M_offset_15, 16, T[46]);
            b3 = HH(b3, c6, d3, a5, M_offset_2, 23, T[47]);
            a5 = II(a5, b3, c6, d3, M_offset_0, 6, T[48]);
            d3 = II(d3, a5, b3, c6, M_offset_7, 10, T[49]);
            c6 = II(c6, d3, a5, b3, M_offset_14, 15, T[50]);
            b3 = II(b3, c6, d3, a5, M_offset_5, 21, T[51]);
            a5 = II(a5, b3, c6, d3, M_offset_12, 6, T[52]);
            d3 = II(d3, a5, b3, c6, M_offset_3, 10, T[53]);
            c6 = II(c6, d3, a5, b3, M_offset_10, 15, T[54]);
            b3 = II(b3, c6, d3, a5, M_offset_1, 21, T[55]);
            a5 = II(a5, b3, c6, d3, M_offset_8, 6, T[56]);
            d3 = II(d3, a5, b3, c6, M_offset_15, 10, T[57]);
            c6 = II(c6, d3, a5, b3, M_offset_6, 15, T[58]);
            b3 = II(b3, c6, d3, a5, M_offset_13, 21, T[59]);
            a5 = II(a5, b3, c6, d3, M_offset_4, 6, T[60]);
            d3 = II(d3, a5, b3, c6, M_offset_11, 10, T[61]);
            c6 = II(c6, d3, a5, b3, M_offset_2, 15, T[62]);
            b3 = II(b3, c6, d3, a5, M_offset_9, 21, T[63]);
            H[0] = H[0] + a5 | 0;
            H[1] = H[1] + b3 | 0;
            H[2] = H[2] + c6 | 0;
            H[3] = H[3] + d3 | 0;
          },
          _doFinalize: function() {
            var data2 = this._data;
            var dataWords = data2.words;
            var nBitsTotal = this._nDataBytes * 8;
            var nBitsLeft = data2.sigBytes * 8;
            dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
            var nBitsTotalH = Math2.floor(nBitsTotal / 4294967296);
            var nBitsTotalL = nBitsTotal;
            dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = (nBitsTotalH << 8 | nBitsTotalH >>> 24) & 16711935 | (nBitsTotalH << 24 | nBitsTotalH >>> 8) & 4278255360;
            dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotalL << 8 | nBitsTotalL >>> 24) & 16711935 | (nBitsTotalL << 24 | nBitsTotalL >>> 8) & 4278255360;
            data2.sigBytes = (dataWords.length + 1) * 4;
            this._process();
            var hash = this._hash;
            var H = hash.words;
            for (var i5 = 0; i5 < 4; i5++) {
              var H_i = H[i5];
              H[i5] = (H_i << 8 | H_i >>> 24) & 16711935 | (H_i << 24 | H_i >>> 8) & 4278255360;
            }
            return hash;
          },
          clone: function() {
            var clone = Hasher.clone.call(this);
            clone._hash = this._hash.clone();
            return clone;
          }
        });
        function FF(a5, b3, c6, d3, x, s4, t4) {
          var n6 = a5 + (b3 & c6 | ~b3 & d3) + x + t4;
          return (n6 << s4 | n6 >>> 32 - s4) + b3;
        }
        function GG(a5, b3, c6, d3, x, s4, t4) {
          var n6 = a5 + (b3 & d3 | c6 & ~d3) + x + t4;
          return (n6 << s4 | n6 >>> 32 - s4) + b3;
        }
        function HH(a5, b3, c6, d3, x, s4, t4) {
          var n6 = a5 + (b3 ^ c6 ^ d3) + x + t4;
          return (n6 << s4 | n6 >>> 32 - s4) + b3;
        }
        function II(a5, b3, c6, d3, x, s4, t4) {
          var n6 = a5 + (c6 ^ (b3 | ~d3)) + x + t4;
          return (n6 << s4 | n6 >>> 32 - s4) + b3;
        }
        C.MD5 = Hasher._createHelper(MD52);
        C.HmacMD5 = Hasher._createHmacHelper(MD52);
      })(Math);
      return CryptoJS2.MD5;
    });
  }
});

// ../../node_modules/.pnpm/base64-js@0.0.8/node_modules/base64-js/lib/b64.js
var require_b64 = __commonJS({
  "../../node_modules/.pnpm/base64-js@0.0.8/node_modules/base64-js/lib/b64.js"(exports) {
    var lookup = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    (function(exports2) {
      "use strict";
      var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;
      var PLUS = "+".charCodeAt(0);
      var SLASH = "/".charCodeAt(0);
      var NUMBER = "0".charCodeAt(0);
      var LOWER = "a".charCodeAt(0);
      var UPPER = "A".charCodeAt(0);
      var PLUS_URL_SAFE = "-".charCodeAt(0);
      var SLASH_URL_SAFE = "_".charCodeAt(0);
      function decode2(elt) {
        var code = elt.charCodeAt(0);
        if (code === PLUS || code === PLUS_URL_SAFE)
          return 62;
        if (code === SLASH || code === SLASH_URL_SAFE)
          return 63;
        if (code < NUMBER)
          return -1;
        if (code < NUMBER + 10)
          return code - NUMBER + 26 + 26;
        if (code < UPPER + 26)
          return code - UPPER;
        if (code < LOWER + 26)
          return code - LOWER + 26;
      }
      function b64ToByteArray(b64) {
        var i5, j, l4, tmp, placeHolders, arr;
        if (b64.length % 4 > 0) {
          throw new Error("Invalid string. Length must be a multiple of 4");
        }
        var len = b64.length;
        placeHolders = "=" === b64.charAt(len - 2) ? 2 : "=" === b64.charAt(len - 1) ? 1 : 0;
        arr = new Arr(b64.length * 3 / 4 - placeHolders);
        l4 = placeHolders > 0 ? b64.length - 4 : b64.length;
        var L = 0;
        function push(v3) {
          arr[L++] = v3;
        }
        for (i5 = 0, j = 0; i5 < l4; i5 += 4, j += 3) {
          tmp = decode2(b64.charAt(i5)) << 18 | decode2(b64.charAt(i5 + 1)) << 12 | decode2(b64.charAt(i5 + 2)) << 6 | decode2(b64.charAt(i5 + 3));
          push((tmp & 16711680) >> 16);
          push((tmp & 65280) >> 8);
          push(tmp & 255);
        }
        if (placeHolders === 2) {
          tmp = decode2(b64.charAt(i5)) << 2 | decode2(b64.charAt(i5 + 1)) >> 4;
          push(tmp & 255);
        } else if (placeHolders === 1) {
          tmp = decode2(b64.charAt(i5)) << 10 | decode2(b64.charAt(i5 + 1)) << 4 | decode2(b64.charAt(i5 + 2)) >> 2;
          push(tmp >> 8 & 255);
          push(tmp & 255);
        }
        return arr;
      }
      function uint8ToBase64(uint82) {
        var i5, extraBytes = uint82.length % 3, output = "", temp, length2;
        function encode3(num) {
          return lookup.charAt(num);
        }
        function tripletToBase64(num) {
          return encode3(num >> 18 & 63) + encode3(num >> 12 & 63) + encode3(num >> 6 & 63) + encode3(num & 63);
        }
        for (i5 = 0, length2 = uint82.length - extraBytes; i5 < length2; i5 += 3) {
          temp = (uint82[i5] << 16) + (uint82[i5 + 1] << 8) + uint82[i5 + 2];
          output += tripletToBase64(temp);
        }
        switch (extraBytes) {
          case 1:
            temp = uint82[uint82.length - 1];
            output += encode3(temp >> 2);
            output += encode3(temp << 4 & 63);
            output += "==";
            break;
          case 2:
            temp = (uint82[uint82.length - 2] << 8) + uint82[uint82.length - 1];
            output += encode3(temp >> 10);
            output += encode3(temp >> 4 & 63);
            output += encode3(temp << 2 & 63);
            output += "=";
            break;
        }
        return output;
      }
      exports2.toByteArray = b64ToByteArray;
      exports2.fromByteArray = uint8ToBase64;
    })(typeof exports === "undefined" ? exports.base64js = {} : exports);
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/x64-core.js
var require_x64_core = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/x64-core.js"(exports, module) {
    (function(root, factory2) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2());
      } else if (typeof define === "function" && define.amd) {
        define(["./core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function(undefined2) {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var Base2 = C_lib.Base;
        var X32WordArray = C_lib.WordArray;
        var C_x64 = C.x64 = {};
        var X64Word = C_x64.Word = Base2.extend({
          /**
           * Initializes a newly created 64-bit word.
           *
           * @param {number} high The high 32 bits.
           * @param {number} low The low 32 bits.
           *
           * @example
           *
           *     var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);
           */
          init: function(high, low) {
            this.high = high;
            this.low = low;
          }
          /**
           * Bitwise NOTs this word.
           *
           * @return {X64Word} A new x64-Word object after negating.
           *
           * @example
           *
           *     var negated = x64Word.not();
           */
          // not: function () {
          // var high = ~this.high;
          // var low = ~this.low;
          // return X64Word.create(high, low);
          // },
          /**
           * Bitwise ANDs this word with the passed word.
           *
           * @param {X64Word} word The x64-Word to AND with this word.
           *
           * @return {X64Word} A new x64-Word object after ANDing.
           *
           * @example
           *
           *     var anded = x64Word.and(anotherX64Word);
           */
          // and: function (word) {
          // var high = this.high & word.high;
          // var low = this.low & word.low;
          // return X64Word.create(high, low);
          // },
          /**
           * Bitwise ORs this word with the passed word.
           *
           * @param {X64Word} word The x64-Word to OR with this word.
           *
           * @return {X64Word} A new x64-Word object after ORing.
           *
           * @example
           *
           *     var ored = x64Word.or(anotherX64Word);
           */
          // or: function (word) {
          // var high = this.high | word.high;
          // var low = this.low | word.low;
          // return X64Word.create(high, low);
          // },
          /**
           * Bitwise XORs this word with the passed word.
           *
           * @param {X64Word} word The x64-Word to XOR with this word.
           *
           * @return {X64Word} A new x64-Word object after XORing.
           *
           * @example
           *
           *     var xored = x64Word.xor(anotherX64Word);
           */
          // xor: function (word) {
          // var high = this.high ^ word.high;
          // var low = this.low ^ word.low;
          // return X64Word.create(high, low);
          // },
          /**
           * Shifts this word n bits to the left.
           *
           * @param {number} n The number of bits to shift.
           *
           * @return {X64Word} A new x64-Word object after shifting.
           *
           * @example
           *
           *     var shifted = x64Word.shiftL(25);
           */
          // shiftL: function (n) {
          // if (n < 32) {
          // var high = (this.high << n) | (this.low >>> (32 - n));
          // var low = this.low << n;
          // } else {
          // var high = this.low << (n - 32);
          // var low = 0;
          // }
          // return X64Word.create(high, low);
          // },
          /**
           * Shifts this word n bits to the right.
           *
           * @param {number} n The number of bits to shift.
           *
           * @return {X64Word} A new x64-Word object after shifting.
           *
           * @example
           *
           *     var shifted = x64Word.shiftR(7);
           */
          // shiftR: function (n) {
          // if (n < 32) {
          // var low = (this.low >>> n) | (this.high << (32 - n));
          // var high = this.high >>> n;
          // } else {
          // var low = this.high >>> (n - 32);
          // var high = 0;
          // }
          // return X64Word.create(high, low);
          // },
          /**
           * Rotates this word n bits to the left.
           *
           * @param {number} n The number of bits to rotate.
           *
           * @return {X64Word} A new x64-Word object after rotating.
           *
           * @example
           *
           *     var rotated = x64Word.rotL(25);
           */
          // rotL: function (n) {
          // return this.shiftL(n).or(this.shiftR(64 - n));
          // },
          /**
           * Rotates this word n bits to the right.
           *
           * @param {number} n The number of bits to rotate.
           *
           * @return {X64Word} A new x64-Word object after rotating.
           *
           * @example
           *
           *     var rotated = x64Word.rotR(7);
           */
          // rotR: function (n) {
          // return this.shiftR(n).or(this.shiftL(64 - n));
          // },
          /**
           * Adds this word with the passed word.
           *
           * @param {X64Word} word The x64-Word to add with this word.
           *
           * @return {X64Word} A new x64-Word object after adding.
           *
           * @example
           *
           *     var added = x64Word.add(anotherX64Word);
           */
          // add: function (word) {
          // var low = (this.low + word.low) | 0;
          // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;
          // var high = (this.high + word.high + carry) | 0;
          // return X64Word.create(high, low);
          // }
        });
        var X64WordArray = C_x64.WordArray = Base2.extend({
          /**
           * Initializes a newly created word array.
           *
           * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.
           * @param {number} sigBytes (Optional) The number of significant bytes in the words.
           *
           * @example
           *
           *     var wordArray = CryptoJS.x64.WordArray.create();
           *
           *     var wordArray = CryptoJS.x64.WordArray.create([
           *         CryptoJS.x64.Word.create(0x00010203, 0x04050607),
           *         CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
           *     ]);
           *
           *     var wordArray = CryptoJS.x64.WordArray.create([
           *         CryptoJS.x64.Word.create(0x00010203, 0x04050607),
           *         CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
           *     ], 10);
           */
          init: function(words, sigBytes) {
            words = this.words = words || [];
            if (sigBytes != undefined2) {
              this.sigBytes = sigBytes;
            } else {
              this.sigBytes = words.length * 8;
            }
          },
          /**
           * Converts this 64-bit word array to a 32-bit word array.
           *
           * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.
           *
           * @example
           *
           *     var x32WordArray = x64WordArray.toX32();
           */
          toX32: function() {
            var x64Words = this.words;
            var x64WordsLength = x64Words.length;
            var x32Words = [];
            for (var i5 = 0; i5 < x64WordsLength; i5++) {
              var x64Word = x64Words[i5];
              x32Words.push(x64Word.high);
              x32Words.push(x64Word.low);
            }
            return X32WordArray.create(x32Words, this.sigBytes);
          },
          /**
           * Creates a copy of this word array.
           *
           * @return {X64WordArray} The clone.
           *
           * @example
           *
           *     var clone = x64WordArray.clone();
           */
          clone: function() {
            var clone = Base2.clone.call(this);
            var words = clone.words = this.words.slice(0);
            var wordsLength = words.length;
            for (var i5 = 0; i5 < wordsLength; i5++) {
              words[i5] = words[i5].clone();
            }
            return clone;
          }
        });
      })();
      return CryptoJS2;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/lib-typedarrays.js
var require_lib_typedarrays = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/lib-typedarrays.js"(exports, module) {
    (function(root, factory2) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2());
      } else if (typeof define === "function" && define.amd) {
        define(["./core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        if (typeof ArrayBuffer != "function") {
          return;
        }
        var C = CryptoJS2;
        var C_lib = C.lib;
        var WordArray = C_lib.WordArray;
        var superInit = WordArray.init;
        var subInit = WordArray.init = function(typedArray) {
          if (typedArray instanceof ArrayBuffer) {
            typedArray = new Uint8Array(typedArray);
          }
          if (typedArray instanceof Int8Array || typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray || typedArray instanceof Int16Array || typedArray instanceof Uint16Array || typedArray instanceof Int32Array || typedArray instanceof Uint32Array || typedArray instanceof Float32Array || typedArray instanceof Float64Array) {
            typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);
          }
          if (typedArray instanceof Uint8Array) {
            var typedArrayByteLength = typedArray.byteLength;
            var words = [];
            for (var i5 = 0; i5 < typedArrayByteLength; i5++) {
              words[i5 >>> 2] |= typedArray[i5] << 24 - i5 % 4 * 8;
            }
            superInit.call(this, words, typedArrayByteLength);
          } else {
            superInit.apply(this, arguments);
          }
        };
        subInit.prototype = WordArray;
      })();
      return CryptoJS2.lib.WordArray;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-utf16.js
var require_enc_utf16 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-utf16.js"(exports, module) {
    (function(root, factory2) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2());
      } else if (typeof define === "function" && define.amd) {
        define(["./core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var WordArray = C_lib.WordArray;
        var C_enc = C.enc;
        var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {
          /**
           * Converts a word array to a UTF-16 BE string.
           *
           * @param {WordArray} wordArray The word array.
           *
           * @return {string} The UTF-16 BE string.
           *
           * @static
           *
           * @example
           *
           *     var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);
           */
          stringify: function(wordArray) {
            var words = wordArray.words;
            var sigBytes = wordArray.sigBytes;
            var utf16Chars = [];
            for (var i5 = 0; i5 < sigBytes; i5 += 2) {
              var codePoint = words[i5 >>> 2] >>> 16 - i5 % 4 * 8 & 65535;
              utf16Chars.push(String.fromCharCode(codePoint));
            }
            return utf16Chars.join("");
          },
          /**
           * Converts a UTF-16 BE string to a word array.
           *
           * @param {string} utf16Str The UTF-16 BE string.
           *
           * @return {WordArray} The word array.
           *
           * @static
           *
           * @example
           *
           *     var wordArray = CryptoJS.enc.Utf16.parse(utf16String);
           */
          parse: function(utf16Str) {
            var utf16StrLength = utf16Str.length;
            var words = [];
            for (var i5 = 0; i5 < utf16StrLength; i5++) {
              words[i5 >>> 1] |= utf16Str.charCodeAt(i5) << 16 - i5 % 2 * 16;
            }
            return WordArray.create(words, utf16StrLength * 2);
          }
        };
        C_enc.Utf16LE = {
          /**
           * Converts a word array to a UTF-16 LE string.
           *
           * @param {WordArray} wordArray The word array.
           *
           * @return {string} The UTF-16 LE string.
           *
           * @static
           *
           * @example
           *
           *     var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);
           */
          stringify: function(wordArray) {
            var words = wordArray.words;
            var sigBytes = wordArray.sigBytes;
            var utf16Chars = [];
            for (var i5 = 0; i5 < sigBytes; i5 += 2) {
              var codePoint = swapEndian(words[i5 >>> 2] >>> 16 - i5 % 4 * 8 & 65535);
              utf16Chars.push(String.fromCharCode(codePoint));
            }
            return utf16Chars.join("");
          },
          /**
           * Converts a UTF-16 LE string to a word array.
           *
           * @param {string} utf16Str The UTF-16 LE string.
           *
           * @return {WordArray} The word array.
           *
           * @static
           *
           * @example
           *
           *     var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);
           */
          parse: function(utf16Str) {
            var utf16StrLength = utf16Str.length;
            var words = [];
            for (var i5 = 0; i5 < utf16StrLength; i5++) {
              words[i5 >>> 1] |= swapEndian(utf16Str.charCodeAt(i5) << 16 - i5 % 2 * 16);
            }
            return WordArray.create(words, utf16StrLength * 2);
          }
        };
        function swapEndian(word) {
          return word << 8 & 4278255360 | word >>> 8 & 16711935;
        }
      })();
      return CryptoJS2.enc.Utf16;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64.js
var require_enc_base64 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64.js"(exports, module) {
    (function(root, factory2) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2());
      } else if (typeof define === "function" && define.amd) {
        define(["./core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var WordArray = C_lib.WordArray;
        var C_enc = C.enc;
        var Base64 = C_enc.Base64 = {
          /**
           * Converts a word array to a Base64 string.
           *
           * @param {WordArray} wordArray The word array.
           *
           * @return {string} The Base64 string.
           *
           * @static
           *
           * @example
           *
           *     var base64String = CryptoJS.enc.Base64.stringify(wordArray);
           */
          stringify: function(wordArray) {
            var words = wordArray.words;
            var sigBytes = wordArray.sigBytes;
            var map = this._map;
            wordArray.clamp();
            var base64Chars = [];
            for (var i5 = 0; i5 < sigBytes; i5 += 3) {
              var byte1 = words[i5 >>> 2] >>> 24 - i5 % 4 * 8 & 255;
              var byte2 = words[i5 + 1 >>> 2] >>> 24 - (i5 + 1) % 4 * 8 & 255;
              var byte3 = words[i5 + 2 >>> 2] >>> 24 - (i5 + 2) % 4 * 8 & 255;
              var triplet = byte1 << 16 | byte2 << 8 | byte3;
              for (var j = 0; j < 4 && i5 + j * 0.75 < sigBytes; j++) {
                base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 63));
              }
            }
            var paddingChar = map.charAt(64);
            if (paddingChar) {
              while (base64Chars.length % 4) {
                base64Chars.push(paddingChar);
              }
            }
            return base64Chars.join("");
          },
          /**
           * Converts a Base64 string to a word array.
           *
           * @param {string} base64Str The Base64 string.
           *
           * @return {WordArray} The word array.
           *
           * @static
           *
           * @example
           *
           *     var wordArray = CryptoJS.enc.Base64.parse(base64String);
           */
          parse: function(base64Str) {
            var base64StrLength = base64Str.length;
            var map = this._map;
            var reverseMap = this._reverseMap;
            if (!reverseMap) {
              reverseMap = this._reverseMap = [];
              for (var j = 0; j < map.length; j++) {
                reverseMap[map.charCodeAt(j)] = j;
              }
            }
            var paddingChar = map.charAt(64);
            if (paddingChar) {
              var paddingIndex = base64Str.indexOf(paddingChar);
              if (paddingIndex !== -1) {
                base64StrLength = paddingIndex;
              }
            }
            return parseLoop(base64Str, base64StrLength, reverseMap);
          },
          _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
        };
        function parseLoop(base64Str, base64StrLength, reverseMap) {
          var words = [];
          var nBytes = 0;
          for (var i5 = 0; i5 < base64StrLength; i5++) {
            if (i5 % 4) {
              var bits1 = reverseMap[base64Str.charCodeAt(i5 - 1)] << i5 % 4 * 2;
              var bits2 = reverseMap[base64Str.charCodeAt(i5)] >>> 6 - i5 % 4 * 2;
              var bitsCombined = bits1 | bits2;
              words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;
              nBytes++;
            }
          }
          return WordArray.create(words, nBytes);
        }
      })();
      return CryptoJS2.enc.Base64;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64url.js
var require_enc_base64url = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64url.js"(exports, module) {
    (function(root, factory2) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2());
      } else if (typeof define === "function" && define.amd) {
        define(["./core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var WordArray = C_lib.WordArray;
        var C_enc = C.enc;
        var Base64url = C_enc.Base64url = {
          /**
           * Converts a word array to a Base64url string.
           *
           * @param {WordArray} wordArray The word array.
           *
           * @param {boolean} urlSafe Whether to use url safe
           *
           * @return {string} The Base64url string.
           *
           * @static
           *
           * @example
           *
           *     var base64String = CryptoJS.enc.Base64url.stringify(wordArray);
           */
          stringify: function(wordArray, urlSafe) {
            if (urlSafe === void 0) {
              urlSafe = true;
            }
            var words = wordArray.words;
            var sigBytes = wordArray.sigBytes;
            var map = urlSafe ? this._safe_map : this._map;
            wordArray.clamp();
            var base64Chars = [];
            for (var i5 = 0; i5 < sigBytes; i5 += 3) {
              var byte1 = words[i5 >>> 2] >>> 24 - i5 % 4 * 8 & 255;
              var byte2 = words[i5 + 1 >>> 2] >>> 24 - (i5 + 1) % 4 * 8 & 255;
              var byte3 = words[i5 + 2 >>> 2] >>> 24 - (i5 + 2) % 4 * 8 & 255;
              var triplet = byte1 << 16 | byte2 << 8 | byte3;
              for (var j = 0; j < 4 && i5 + j * 0.75 < sigBytes; j++) {
                base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 63));
              }
            }
            var paddingChar = map.charAt(64);
            if (paddingChar) {
              while (base64Chars.length % 4) {
                base64Chars.push(paddingChar);
              }
            }
            return base64Chars.join("");
          },
          /**
           * Converts a Base64url string to a word array.
           *
           * @param {string} base64Str The Base64url string.
           *
           * @param {boolean} urlSafe Whether to use url safe
           *
           * @return {WordArray} The word array.
           *
           * @static
           *
           * @example
           *
           *     var wordArray = CryptoJS.enc.Base64url.parse(base64String);
           */
          parse: function(base64Str, urlSafe) {
            if (urlSafe === void 0) {
              urlSafe = true;
            }
            var base64StrLength = base64Str.length;
            var map = urlSafe ? this._safe_map : this._map;
            var reverseMap = this._reverseMap;
            if (!reverseMap) {
              reverseMap = this._reverseMap = [];
              for (var j = 0; j < map.length; j++) {
                reverseMap[map.charCodeAt(j)] = j;
              }
            }
            var paddingChar = map.charAt(64);
            if (paddingChar) {
              var paddingIndex = base64Str.indexOf(paddingChar);
              if (paddingIndex !== -1) {
                base64StrLength = paddingIndex;
              }
            }
            return parseLoop(base64Str, base64StrLength, reverseMap);
          },
          _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
          _safe_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
        };
        function parseLoop(base64Str, base64StrLength, reverseMap) {
          var words = [];
          var nBytes = 0;
          for (var i5 = 0; i5 < base64StrLength; i5++) {
            if (i5 % 4) {
              var bits1 = reverseMap[base64Str.charCodeAt(i5 - 1)] << i5 % 4 * 2;
              var bits2 = reverseMap[base64Str.charCodeAt(i5)] >>> 6 - i5 % 4 * 2;
              var bitsCombined = bits1 | bits2;
              words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;
              nBytes++;
            }
          }
          return WordArray.create(words, nBytes);
        }
      })();
      return CryptoJS2.enc.Base64url;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha1.js
var require_sha1 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha1.js"(exports, module) {
    (function(root, factory2) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2());
      } else if (typeof define === "function" && define.amd) {
        define(["./core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var WordArray = C_lib.WordArray;
        var Hasher = C_lib.Hasher;
        var C_algo = C.algo;
        var W = [];
        var SHA1 = C_algo.SHA1 = Hasher.extend({
          _doReset: function() {
            this._hash = new WordArray.init([
              1732584193,
              4023233417,
              2562383102,
              271733878,
              3285377520
            ]);
          },
          _doProcessBlock: function(M, offset2) {
            var H = this._hash.words;
            var a5 = H[0];
            var b3 = H[1];
            var c6 = H[2];
            var d3 = H[3];
            var e4 = H[4];
            for (var i5 = 0; i5 < 80; i5++) {
              if (i5 < 16) {
                W[i5] = M[offset2 + i5] | 0;
              } else {
                var n6 = W[i5 - 3] ^ W[i5 - 8] ^ W[i5 - 14] ^ W[i5 - 16];
                W[i5] = n6 << 1 | n6 >>> 31;
              }
              var t4 = (a5 << 5 | a5 >>> 27) + e4 + W[i5];
              if (i5 < 20) {
                t4 += (b3 & c6 | ~b3 & d3) + 1518500249;
              } else if (i5 < 40) {
                t4 += (b3 ^ c6 ^ d3) + 1859775393;
              } else if (i5 < 60) {
                t4 += (b3 & c6 | b3 & d3 | c6 & d3) - 1894007588;
              } else {
                t4 += (b3 ^ c6 ^ d3) - 899497514;
              }
              e4 = d3;
              d3 = c6;
              c6 = b3 << 30 | b3 >>> 2;
              b3 = a5;
              a5 = t4;
            }
            H[0] = H[0] + a5 | 0;
            H[1] = H[1] + b3 | 0;
            H[2] = H[2] + c6 | 0;
            H[3] = H[3] + d3 | 0;
            H[4] = H[4] + e4 | 0;
          },
          _doFinalize: function() {
            var data2 = this._data;
            var dataWords = data2.words;
            var nBitsTotal = this._nDataBytes * 8;
            var nBitsLeft = data2.sigBytes * 8;
            dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
            dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 4294967296);
            dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;
            data2.sigBytes = dataWords.length * 4;
            this._process();
            return this._hash;
          },
          clone: function() {
            var clone = Hasher.clone.call(this);
            clone._hash = this._hash.clone();
            return clone;
          }
        });
        C.SHA1 = Hasher._createHelper(SHA1);
        C.HmacSHA1 = Hasher._createHmacHelper(SHA1);
      })();
      return CryptoJS2.SHA1;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha256.js
var require_sha256 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha256.js"(exports, module) {
    (function(root, factory2) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2());
      } else if (typeof define === "function" && define.amd) {
        define(["./core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function(Math2) {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var WordArray = C_lib.WordArray;
        var Hasher = C_lib.Hasher;
        var C_algo = C.algo;
        var H = [];
        var K = [];
        (function() {
          function isPrime(n7) {
            var sqrtN = Math2.sqrt(n7);
            for (var factor2 = 2; factor2 <= sqrtN; factor2++) {
              if (!(n7 % factor2)) {
                return false;
              }
            }
            return true;
          }
          function getFractionalBits(n7) {
            return (n7 - (n7 | 0)) * 4294967296 | 0;
          }
          var n6 = 2;
          var nPrime = 0;
          while (nPrime < 64) {
            if (isPrime(n6)) {
              if (nPrime < 8) {
                H[nPrime] = getFractionalBits(Math2.pow(n6, 1 / 2));
              }
              K[nPrime] = getFractionalBits(Math2.pow(n6, 1 / 3));
              nPrime++;
            }
            n6++;
          }
        })();
        var W = [];
        var SHA256 = C_algo.SHA256 = Hasher.extend({
          _doReset: function() {
            this._hash = new WordArray.init(H.slice(0));
          },
          _doProcessBlock: function(M, offset2) {
            var H2 = this._hash.words;
            var a5 = H2[0];
            var b3 = H2[1];
            var c6 = H2[2];
            var d3 = H2[3];
            var e4 = H2[4];
            var f4 = H2[5];
            var g3 = H2[6];
            var h4 = H2[7];
            for (var i5 = 0; i5 < 64; i5++) {
              if (i5 < 16) {
                W[i5] = M[offset2 + i5] | 0;
              } else {
                var gamma0x = W[i5 - 15];
                var gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;
                var gamma1x = W[i5 - 2];
                var gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;
                W[i5] = gamma0 + W[i5 - 7] + gamma1 + W[i5 - 16];
              }
              var ch = e4 & f4 ^ ~e4 & g3;
              var maj = a5 & b3 ^ a5 & c6 ^ b3 & c6;
              var sigma0 = (a5 << 30 | a5 >>> 2) ^ (a5 << 19 | a5 >>> 13) ^ (a5 << 10 | a5 >>> 22);
              var sigma1 = (e4 << 26 | e4 >>> 6) ^ (e4 << 21 | e4 >>> 11) ^ (e4 << 7 | e4 >>> 25);
              var t1 = h4 + sigma1 + ch + K[i5] + W[i5];
              var t22 = sigma0 + maj;
              h4 = g3;
              g3 = f4;
              f4 = e4;
              e4 = d3 + t1 | 0;
              d3 = c6;
              c6 = b3;
              b3 = a5;
              a5 = t1 + t22 | 0;
            }
            H2[0] = H2[0] + a5 | 0;
            H2[1] = H2[1] + b3 | 0;
            H2[2] = H2[2] + c6 | 0;
            H2[3] = H2[3] + d3 | 0;
            H2[4] = H2[4] + e4 | 0;
            H2[5] = H2[5] + f4 | 0;
            H2[6] = H2[6] + g3 | 0;
            H2[7] = H2[7] + h4 | 0;
          },
          _doFinalize: function() {
            var data2 = this._data;
            var dataWords = data2.words;
            var nBitsTotal = this._nDataBytes * 8;
            var nBitsLeft = data2.sigBytes * 8;
            dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
            dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math2.floor(nBitsTotal / 4294967296);
            dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;
            data2.sigBytes = dataWords.length * 4;
            this._process();
            return this._hash;
          },
          clone: function() {
            var clone = Hasher.clone.call(this);
            clone._hash = this._hash.clone();
            return clone;
          }
        });
        C.SHA256 = Hasher._createHelper(SHA256);
        C.HmacSHA256 = Hasher._createHmacHelper(SHA256);
      })(Math);
      return CryptoJS2.SHA256;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha224.js
var require_sha224 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha224.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_sha256());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./sha256"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var WordArray = C_lib.WordArray;
        var C_algo = C.algo;
        var SHA256 = C_algo.SHA256;
        var SHA224 = C_algo.SHA224 = SHA256.extend({
          _doReset: function() {
            this._hash = new WordArray.init([
              3238371032,
              914150663,
              812702999,
              4144912697,
              4290775857,
              1750603025,
              1694076839,
              3204075428
            ]);
          },
          _doFinalize: function() {
            var hash = SHA256._doFinalize.call(this);
            hash.sigBytes -= 4;
            return hash;
          }
        });
        C.SHA224 = SHA256._createHelper(SHA224);
        C.HmacSHA224 = SHA256._createHmacHelper(SHA224);
      })();
      return CryptoJS2.SHA224;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha512.js
var require_sha512 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha512.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_x64_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./x64-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var Hasher = C_lib.Hasher;
        var C_x64 = C.x64;
        var X64Word = C_x64.Word;
        var X64WordArray = C_x64.WordArray;
        var C_algo = C.algo;
        function X64Word_create() {
          return X64Word.create.apply(X64Word, arguments);
        }
        var K = [
          X64Word_create(1116352408, 3609767458),
          X64Word_create(1899447441, 602891725),
          X64Word_create(3049323471, 3964484399),
          X64Word_create(3921009573, 2173295548),
          X64Word_create(961987163, 4081628472),
          X64Word_create(1508970993, 3053834265),
          X64Word_create(2453635748, 2937671579),
          X64Word_create(2870763221, 3664609560),
          X64Word_create(3624381080, 2734883394),
          X64Word_create(310598401, 1164996542),
          X64Word_create(607225278, 1323610764),
          X64Word_create(1426881987, 3590304994),
          X64Word_create(1925078388, 4068182383),
          X64Word_create(2162078206, 991336113),
          X64Word_create(2614888103, 633803317),
          X64Word_create(3248222580, 3479774868),
          X64Word_create(3835390401, 2666613458),
          X64Word_create(4022224774, 944711139),
          X64Word_create(264347078, 2341262773),
          X64Word_create(604807628, 2007800933),
          X64Word_create(770255983, 1495990901),
          X64Word_create(1249150122, 1856431235),
          X64Word_create(1555081692, 3175218132),
          X64Word_create(1996064986, 2198950837),
          X64Word_create(2554220882, 3999719339),
          X64Word_create(2821834349, 766784016),
          X64Word_create(2952996808, 2566594879),
          X64Word_create(3210313671, 3203337956),
          X64Word_create(3336571891, 1034457026),
          X64Word_create(3584528711, 2466948901),
          X64Word_create(113926993, 3758326383),
          X64Word_create(338241895, 168717936),
          X64Word_create(666307205, 1188179964),
          X64Word_create(773529912, 1546045734),
          X64Word_create(1294757372, 1522805485),
          X64Word_create(1396182291, 2643833823),
          X64Word_create(1695183700, 2343527390),
          X64Word_create(1986661051, 1014477480),
          X64Word_create(2177026350, 1206759142),
          X64Word_create(2456956037, 344077627),
          X64Word_create(2730485921, 1290863460),
          X64Word_create(2820302411, 3158454273),
          X64Word_create(3259730800, 3505952657),
          X64Word_create(3345764771, 106217008),
          X64Word_create(3516065817, 3606008344),
          X64Word_create(3600352804, 1432725776),
          X64Word_create(4094571909, 1467031594),
          X64Word_create(275423344, 851169720),
          X64Word_create(430227734, 3100823752),
          X64Word_create(506948616, 1363258195),
          X64Word_create(659060556, 3750685593),
          X64Word_create(883997877, 3785050280),
          X64Word_create(958139571, 3318307427),
          X64Word_create(1322822218, 3812723403),
          X64Word_create(1537002063, 2003034995),
          X64Word_create(1747873779, 3602036899),
          X64Word_create(1955562222, 1575990012),
          X64Word_create(2024104815, 1125592928),
          X64Word_create(2227730452, 2716904306),
          X64Word_create(2361852424, 442776044),
          X64Word_create(2428436474, 593698344),
          X64Word_create(2756734187, 3733110249),
          X64Word_create(3204031479, 2999351573),
          X64Word_create(3329325298, 3815920427),
          X64Word_create(3391569614, 3928383900),
          X64Word_create(3515267271, 566280711),
          X64Word_create(3940187606, 3454069534),
          X64Word_create(4118630271, 4000239992),
          X64Word_create(116418474, 1914138554),
          X64Word_create(174292421, 2731055270),
          X64Word_create(289380356, 3203993006),
          X64Word_create(460393269, 320620315),
          X64Word_create(685471733, 587496836),
          X64Word_create(852142971, 1086792851),
          X64Word_create(1017036298, 365543100),
          X64Word_create(1126000580, 2618297676),
          X64Word_create(1288033470, 3409855158),
          X64Word_create(1501505948, 4234509866),
          X64Word_create(1607167915, 987167468),
          X64Word_create(1816402316, 1246189591)
        ];
        var W = [];
        (function() {
          for (var i5 = 0; i5 < 80; i5++) {
            W[i5] = X64Word_create();
          }
        })();
        var SHA512 = C_algo.SHA512 = Hasher.extend({
          _doReset: function() {
            this._hash = new X64WordArray.init([
              new X64Word.init(1779033703, 4089235720),
              new X64Word.init(3144134277, 2227873595),
              new X64Word.init(1013904242, 4271175723),
              new X64Word.init(2773480762, 1595750129),
              new X64Word.init(1359893119, 2917565137),
              new X64Word.init(2600822924, 725511199),
              new X64Word.init(528734635, 4215389547),
              new X64Word.init(1541459225, 327033209)
            ]);
          },
          _doProcessBlock: function(M, offset2) {
            var H = this._hash.words;
            var H0 = H[0];
            var H1 = H[1];
            var H2 = H[2];
            var H3 = H[3];
            var H4 = H[4];
            var H5 = H[5];
            var H6 = H[6];
            var H7 = H[7];
            var H0h = H0.high;
            var H0l = H0.low;
            var H1h = H1.high;
            var H1l = H1.low;
            var H2h = H2.high;
            var H2l = H2.low;
            var H3h = H3.high;
            var H3l = H3.low;
            var H4h = H4.high;
            var H4l = H4.low;
            var H5h = H5.high;
            var H5l = H5.low;
            var H6h = H6.high;
            var H6l = H6.low;
            var H7h = H7.high;
            var H7l = H7.low;
            var ah = H0h;
            var al = H0l;
            var bh = H1h;
            var bl = H1l;
            var ch = H2h;
            var cl = H2l;
            var dh = H3h;
            var dl = H3l;
            var eh = H4h;
            var el = H4l;
            var fh = H5h;
            var fl2 = H5l;
            var gh = H6h;
            var gl = H6l;
            var hh = H7h;
            var hl = H7l;
            for (var i5 = 0; i5 < 80; i5++) {
              var Wil;
              var Wih;
              var Wi = W[i5];
              if (i5 < 16) {
                Wih = Wi.high = M[offset2 + i5 * 2] | 0;
                Wil = Wi.low = M[offset2 + i5 * 2 + 1] | 0;
              } else {
                var gamma0x = W[i5 - 15];
                var gamma0xh = gamma0x.high;
                var gamma0xl = gamma0x.low;
                var gamma0h = (gamma0xh >>> 1 | gamma0xl << 31) ^ (gamma0xh >>> 8 | gamma0xl << 24) ^ gamma0xh >>> 7;
                var gamma0l = (gamma0xl >>> 1 | gamma0xh << 31) ^ (gamma0xl >>> 8 | gamma0xh << 24) ^ (gamma0xl >>> 7 | gamma0xh << 25);
                var gamma1x = W[i5 - 2];
                var gamma1xh = gamma1x.high;
                var gamma1xl = gamma1x.low;
                var gamma1h = (gamma1xh >>> 19 | gamma1xl << 13) ^ (gamma1xh << 3 | gamma1xl >>> 29) ^ gamma1xh >>> 6;
                var gamma1l = (gamma1xl >>> 19 | gamma1xh << 13) ^ (gamma1xl << 3 | gamma1xh >>> 29) ^ (gamma1xl >>> 6 | gamma1xh << 26);
                var Wi7 = W[i5 - 7];
                var Wi7h = Wi7.high;
                var Wi7l = Wi7.low;
                var Wi16 = W[i5 - 16];
                var Wi16h = Wi16.high;
                var Wi16l = Wi16.low;
                Wil = gamma0l + Wi7l;
                Wih = gamma0h + Wi7h + (Wil >>> 0 < gamma0l >>> 0 ? 1 : 0);
                Wil = Wil + gamma1l;
                Wih = Wih + gamma1h + (Wil >>> 0 < gamma1l >>> 0 ? 1 : 0);
                Wil = Wil + Wi16l;
                Wih = Wih + Wi16h + (Wil >>> 0 < Wi16l >>> 0 ? 1 : 0);
                Wi.high = Wih;
                Wi.low = Wil;
              }
              var chh = eh & fh ^ ~eh & gh;
              var chl = el & fl2 ^ ~el & gl;
              var majh = ah & bh ^ ah & ch ^ bh & ch;
              var majl = al & bl ^ al & cl ^ bl & cl;
              var sigma0h = (ah >>> 28 | al << 4) ^ (ah << 30 | al >>> 2) ^ (ah << 25 | al >>> 7);
              var sigma0l = (al >>> 28 | ah << 4) ^ (al << 30 | ah >>> 2) ^ (al << 25 | ah >>> 7);
              var sigma1h = (eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9);
              var sigma1l = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9);
              var Ki = K[i5];
              var Kih = Ki.high;
              var Kil = Ki.low;
              var t1l = hl + sigma1l;
              var t1h = hh + sigma1h + (t1l >>> 0 < hl >>> 0 ? 1 : 0);
              var t1l = t1l + chl;
              var t1h = t1h + chh + (t1l >>> 0 < chl >>> 0 ? 1 : 0);
              var t1l = t1l + Kil;
              var t1h = t1h + Kih + (t1l >>> 0 < Kil >>> 0 ? 1 : 0);
              var t1l = t1l + Wil;
              var t1h = t1h + Wih + (t1l >>> 0 < Wil >>> 0 ? 1 : 0);
              var t2l = sigma0l + majl;
              var t2h = sigma0h + majh + (t2l >>> 0 < sigma0l >>> 0 ? 1 : 0);
              hh = gh;
              hl = gl;
              gh = fh;
              gl = fl2;
              fh = eh;
              fl2 = el;
              el = dl + t1l | 0;
              eh = dh + t1h + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
              dh = ch;
              dl = cl;
              ch = bh;
              cl = bl;
              bh = ah;
              bl = al;
              al = t1l + t2l | 0;
              ah = t1h + t2h + (al >>> 0 < t1l >>> 0 ? 1 : 0) | 0;
            }
            H0l = H0.low = H0l + al;
            H0.high = H0h + ah + (H0l >>> 0 < al >>> 0 ? 1 : 0);
            H1l = H1.low = H1l + bl;
            H1.high = H1h + bh + (H1l >>> 0 < bl >>> 0 ? 1 : 0);
            H2l = H2.low = H2l + cl;
            H2.high = H2h + ch + (H2l >>> 0 < cl >>> 0 ? 1 : 0);
            H3l = H3.low = H3l + dl;
            H3.high = H3h + dh + (H3l >>> 0 < dl >>> 0 ? 1 : 0);
            H4l = H4.low = H4l + el;
            H4.high = H4h + eh + (H4l >>> 0 < el >>> 0 ? 1 : 0);
            H5l = H5.low = H5l + fl2;
            H5.high = H5h + fh + (H5l >>> 0 < fl2 >>> 0 ? 1 : 0);
            H6l = H6.low = H6l + gl;
            H6.high = H6h + gh + (H6l >>> 0 < gl >>> 0 ? 1 : 0);
            H7l = H7.low = H7l + hl;
            H7.high = H7h + hh + (H7l >>> 0 < hl >>> 0 ? 1 : 0);
          },
          _doFinalize: function() {
            var data2 = this._data;
            var dataWords = data2.words;
            var nBitsTotal = this._nDataBytes * 8;
            var nBitsLeft = data2.sigBytes * 8;
            dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
            dataWords[(nBitsLeft + 128 >>> 10 << 5) + 30] = Math.floor(nBitsTotal / 4294967296);
            dataWords[(nBitsLeft + 128 >>> 10 << 5) + 31] = nBitsTotal;
            data2.sigBytes = dataWords.length * 4;
            this._process();
            var hash = this._hash.toX32();
            return hash;
          },
          clone: function() {
            var clone = Hasher.clone.call(this);
            clone._hash = this._hash.clone();
            return clone;
          },
          blockSize: 1024 / 32
        });
        C.SHA512 = Hasher._createHelper(SHA512);
        C.HmacSHA512 = Hasher._createHmacHelper(SHA512);
      })();
      return CryptoJS2.SHA512;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha384.js
var require_sha384 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha384.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_x64_core(), require_sha512());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./x64-core", "./sha512"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_x64 = C.x64;
        var X64Word = C_x64.Word;
        var X64WordArray = C_x64.WordArray;
        var C_algo = C.algo;
        var SHA512 = C_algo.SHA512;
        var SHA384 = C_algo.SHA384 = SHA512.extend({
          _doReset: function() {
            this._hash = new X64WordArray.init([
              new X64Word.init(3418070365, 3238371032),
              new X64Word.init(1654270250, 914150663),
              new X64Word.init(2438529370, 812702999),
              new X64Word.init(355462360, 4144912697),
              new X64Word.init(1731405415, 4290775857),
              new X64Word.init(2394180231, 1750603025),
              new X64Word.init(3675008525, 1694076839),
              new X64Word.init(1203062813, 3204075428)
            ]);
          },
          _doFinalize: function() {
            var hash = SHA512._doFinalize.call(this);
            hash.sigBytes -= 16;
            return hash;
          }
        });
        C.SHA384 = SHA512._createHelper(SHA384);
        C.HmacSHA384 = SHA512._createHmacHelper(SHA384);
      })();
      return CryptoJS2.SHA384;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha3.js
var require_sha3 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha3.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_x64_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./x64-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function(Math2) {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var WordArray = C_lib.WordArray;
        var Hasher = C_lib.Hasher;
        var C_x64 = C.x64;
        var X64Word = C_x64.Word;
        var C_algo = C.algo;
        var RHO_OFFSETS = [];
        var PI_INDEXES = [];
        var ROUND_CONSTANTS = [];
        (function() {
          var x = 1, y3 = 0;
          for (var t4 = 0; t4 < 24; t4++) {
            RHO_OFFSETS[x + 5 * y3] = (t4 + 1) * (t4 + 2) / 2 % 64;
            var newX = y3 % 5;
            var newY = (2 * x + 3 * y3) % 5;
            x = newX;
            y3 = newY;
          }
          for (var x = 0; x < 5; x++) {
            for (var y3 = 0; y3 < 5; y3++) {
              PI_INDEXES[x + 5 * y3] = y3 + (2 * x + 3 * y3) % 5 * 5;
            }
          }
          var LFSR = 1;
          for (var i5 = 0; i5 < 24; i5++) {
            var roundConstantMsw = 0;
            var roundConstantLsw = 0;
            for (var j = 0; j < 7; j++) {
              if (LFSR & 1) {
                var bitPosition = (1 << j) - 1;
                if (bitPosition < 32) {
                  roundConstantLsw ^= 1 << bitPosition;
                } else {
                  roundConstantMsw ^= 1 << bitPosition - 32;
                }
              }
              if (LFSR & 128) {
                LFSR = LFSR << 1 ^ 113;
              } else {
                LFSR <<= 1;
              }
            }
            ROUND_CONSTANTS[i5] = X64Word.create(roundConstantMsw, roundConstantLsw);
          }
        })();
        var T = [];
        (function() {
          for (var i5 = 0; i5 < 25; i5++) {
            T[i5] = X64Word.create();
          }
        })();
        var SHA3 = C_algo.SHA3 = Hasher.extend({
          /**
           * Configuration options.
           *
           * @property {number} outputLength
           *   The desired number of bits in the output hash.
           *   Only values permitted are: 224, 256, 384, 512.
           *   Default: 512
           */
          cfg: Hasher.cfg.extend({
            outputLength: 512
          }),
          _doReset: function() {
            var state = this._state = [];
            for (var i5 = 0; i5 < 25; i5++) {
              state[i5] = new X64Word.init();
            }
            this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;
          },
          _doProcessBlock: function(M, offset2) {
            var state = this._state;
            var nBlockSizeLanes = this.blockSize / 2;
            for (var i5 = 0; i5 < nBlockSizeLanes; i5++) {
              var M2i = M[offset2 + 2 * i5];
              var M2i1 = M[offset2 + 2 * i5 + 1];
              M2i = (M2i << 8 | M2i >>> 24) & 16711935 | (M2i << 24 | M2i >>> 8) & 4278255360;
              M2i1 = (M2i1 << 8 | M2i1 >>> 24) & 16711935 | (M2i1 << 24 | M2i1 >>> 8) & 4278255360;
              var lane = state[i5];
              lane.high ^= M2i1;
              lane.low ^= M2i;
            }
            for (var round = 0; round < 24; round++) {
              for (var x = 0; x < 5; x++) {
                var tMsw = 0, tLsw = 0;
                for (var y3 = 0; y3 < 5; y3++) {
                  var lane = state[x + 5 * y3];
                  tMsw ^= lane.high;
                  tLsw ^= lane.low;
                }
                var Tx = T[x];
                Tx.high = tMsw;
                Tx.low = tLsw;
              }
              for (var x = 0; x < 5; x++) {
                var Tx4 = T[(x + 4) % 5];
                var Tx1 = T[(x + 1) % 5];
                var Tx1Msw = Tx1.high;
                var Tx1Lsw = Tx1.low;
                var tMsw = Tx4.high ^ (Tx1Msw << 1 | Tx1Lsw >>> 31);
                var tLsw = Tx4.low ^ (Tx1Lsw << 1 | Tx1Msw >>> 31);
                for (var y3 = 0; y3 < 5; y3++) {
                  var lane = state[x + 5 * y3];
                  lane.high ^= tMsw;
                  lane.low ^= tLsw;
                }
              }
              for (var laneIndex = 1; laneIndex < 25; laneIndex++) {
                var tMsw;
                var tLsw;
                var lane = state[laneIndex];
                var laneMsw = lane.high;
                var laneLsw = lane.low;
                var rhoOffset = RHO_OFFSETS[laneIndex];
                if (rhoOffset < 32) {
                  tMsw = laneMsw << rhoOffset | laneLsw >>> 32 - rhoOffset;
                  tLsw = laneLsw << rhoOffset | laneMsw >>> 32 - rhoOffset;
                } else {
                  tMsw = laneLsw << rhoOffset - 32 | laneMsw >>> 64 - rhoOffset;
                  tLsw = laneMsw << rhoOffset - 32 | laneLsw >>> 64 - rhoOffset;
                }
                var TPiLane = T[PI_INDEXES[laneIndex]];
                TPiLane.high = tMsw;
                TPiLane.low = tLsw;
              }
              var T0 = T[0];
              var state0 = state[0];
              T0.high = state0.high;
              T0.low = state0.low;
              for (var x = 0; x < 5; x++) {
                for (var y3 = 0; y3 < 5; y3++) {
                  var laneIndex = x + 5 * y3;
                  var lane = state[laneIndex];
                  var TLane = T[laneIndex];
                  var Tx1Lane = T[(x + 1) % 5 + 5 * y3];
                  var Tx2Lane = T[(x + 2) % 5 + 5 * y3];
                  lane.high = TLane.high ^ ~Tx1Lane.high & Tx2Lane.high;
                  lane.low = TLane.low ^ ~Tx1Lane.low & Tx2Lane.low;
                }
              }
              var lane = state[0];
              var roundConstant = ROUND_CONSTANTS[round];
              lane.high ^= roundConstant.high;
              lane.low ^= roundConstant.low;
            }
          },
          _doFinalize: function() {
            var data2 = this._data;
            var dataWords = data2.words;
            var nBitsTotal = this._nDataBytes * 8;
            var nBitsLeft = data2.sigBytes * 8;
            var blockSizeBits = this.blockSize * 32;
            dataWords[nBitsLeft >>> 5] |= 1 << 24 - nBitsLeft % 32;
            dataWords[(Math2.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits >>> 5) - 1] |= 128;
            data2.sigBytes = dataWords.length * 4;
            this._process();
            var state = this._state;
            var outputLengthBytes = this.cfg.outputLength / 8;
            var outputLengthLanes = outputLengthBytes / 8;
            var hashWords = [];
            for (var i5 = 0; i5 < outputLengthLanes; i5++) {
              var lane = state[i5];
              var laneMsw = lane.high;
              var laneLsw = lane.low;
              laneMsw = (laneMsw << 8 | laneMsw >>> 24) & 16711935 | (laneMsw << 24 | laneMsw >>> 8) & 4278255360;
              laneLsw = (laneLsw << 8 | laneLsw >>> 24) & 16711935 | (laneLsw << 24 | laneLsw >>> 8) & 4278255360;
              hashWords.push(laneLsw);
              hashWords.push(laneMsw);
            }
            return new WordArray.init(hashWords, outputLengthBytes);
          },
          clone: function() {
            var clone = Hasher.clone.call(this);
            var state = clone._state = this._state.slice(0);
            for (var i5 = 0; i5 < 25; i5++) {
              state[i5] = state[i5].clone();
            }
            return clone;
          }
        });
        C.SHA3 = Hasher._createHelper(SHA3);
        C.HmacSHA3 = Hasher._createHmacHelper(SHA3);
      })(Math);
      return CryptoJS2.SHA3;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/ripemd160.js
var require_ripemd160 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/ripemd160.js"(exports, module) {
    (function(root, factory2) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2());
      } else if (typeof define === "function" && define.amd) {
        define(["./core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function(Math2) {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var WordArray = C_lib.WordArray;
        var Hasher = C_lib.Hasher;
        var C_algo = C.algo;
        var _zl = WordArray.create([
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          7,
          4,
          13,
          1,
          10,
          6,
          15,
          3,
          12,
          0,
          9,
          5,
          2,
          14,
          11,
          8,
          3,
          10,
          14,
          4,
          9,
          15,
          8,
          1,
          2,
          7,
          0,
          6,
          13,
          11,
          5,
          12,
          1,
          9,
          11,
          10,
          0,
          8,
          12,
          4,
          13,
          3,
          7,
          15,
          14,
          5,
          6,
          2,
          4,
          0,
          5,
          9,
          7,
          12,
          2,
          10,
          14,
          1,
          3,
          8,
          11,
          6,
          15,
          13
        ]);
        var _zr = WordArray.create([
          5,
          14,
          7,
          0,
          9,
          2,
          11,
          4,
          13,
          6,
          15,
          8,
          1,
          10,
          3,
          12,
          6,
          11,
          3,
          7,
          0,
          13,
          5,
          10,
          14,
          15,
          8,
          12,
          4,
          9,
          1,
          2,
          15,
          5,
          1,
          3,
          7,
          14,
          6,
          9,
          11,
          8,
          12,
          2,
          10,
          0,
          4,
          13,
          8,
          6,
          4,
          1,
          3,
          11,
          15,
          0,
          5,
          12,
          2,
          13,
          9,
          7,
          10,
          14,
          12,
          15,
          10,
          4,
          1,
          5,
          8,
          7,
          6,
          2,
          13,
          14,
          0,
          3,
          9,
          11
        ]);
        var _sl = WordArray.create([
          11,
          14,
          15,
          12,
          5,
          8,
          7,
          9,
          11,
          13,
          14,
          15,
          6,
          7,
          9,
          8,
          7,
          6,
          8,
          13,
          11,
          9,
          7,
          15,
          7,
          12,
          15,
          9,
          11,
          7,
          13,
          12,
          11,
          13,
          6,
          7,
          14,
          9,
          13,
          15,
          14,
          8,
          13,
          6,
          5,
          12,
          7,
          5,
          11,
          12,
          14,
          15,
          14,
          15,
          9,
          8,
          9,
          14,
          5,
          6,
          8,
          6,
          5,
          12,
          9,
          15,
          5,
          11,
          6,
          8,
          13,
          12,
          5,
          12,
          13,
          14,
          11,
          8,
          5,
          6
        ]);
        var _sr = WordArray.create([
          8,
          9,
          9,
          11,
          13,
          15,
          15,
          5,
          7,
          7,
          8,
          11,
          14,
          14,
          12,
          6,
          9,
          13,
          15,
          7,
          12,
          8,
          9,
          11,
          7,
          7,
          12,
          7,
          6,
          15,
          13,
          11,
          9,
          7,
          15,
          11,
          8,
          6,
          6,
          14,
          12,
          13,
          5,
          14,
          13,
          13,
          7,
          5,
          15,
          5,
          8,
          11,
          14,
          14,
          6,
          14,
          6,
          9,
          12,
          9,
          12,
          5,
          15,
          8,
          8,
          5,
          12,
          9,
          12,
          5,
          14,
          6,
          8,
          13,
          6,
          5,
          15,
          13,
          11,
          11
        ]);
        var _hl = WordArray.create([0, 1518500249, 1859775393, 2400959708, 2840853838]);
        var _hr = WordArray.create([1352829926, 1548603684, 1836072691, 2053994217, 0]);
        var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({
          _doReset: function() {
            this._hash = WordArray.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]);
          },
          _doProcessBlock: function(M, offset2) {
            for (var i5 = 0; i5 < 16; i5++) {
              var offset_i = offset2 + i5;
              var M_offset_i = M[offset_i];
              M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 16711935 | (M_offset_i << 24 | M_offset_i >>> 8) & 4278255360;
            }
            var H = this._hash.words;
            var hl = _hl.words;
            var hr = _hr.words;
            var zl = _zl.words;
            var zr = _zr.words;
            var sl = _sl.words;
            var sr = _sr.words;
            var al, bl, cl, dl, el;
            var ar, br, cr, dr, er;
            ar = al = H[0];
            br = bl = H[1];
            cr = cl = H[2];
            dr = dl = H[3];
            er = el = H[4];
            var t4;
            for (var i5 = 0; i5 < 80; i5 += 1) {
              t4 = al + M[offset2 + zl[i5]] | 0;
              if (i5 < 16) {
                t4 += f1(bl, cl, dl) + hl[0];
              } else if (i5 < 32) {
                t4 += f22(bl, cl, dl) + hl[1];
              } else if (i5 < 48) {
                t4 += f32(bl, cl, dl) + hl[2];
              } else if (i5 < 64) {
                t4 += f4(bl, cl, dl) + hl[3];
              } else {
                t4 += f5(bl, cl, dl) + hl[4];
              }
              t4 = t4 | 0;
              t4 = rotl(t4, sl[i5]);
              t4 = t4 + el | 0;
              al = el;
              el = dl;
              dl = rotl(cl, 10);
              cl = bl;
              bl = t4;
              t4 = ar + M[offset2 + zr[i5]] | 0;
              if (i5 < 16) {
                t4 += f5(br, cr, dr) + hr[0];
              } else if (i5 < 32) {
                t4 += f4(br, cr, dr) + hr[1];
              } else if (i5 < 48) {
                t4 += f32(br, cr, dr) + hr[2];
              } else if (i5 < 64) {
                t4 += f22(br, cr, dr) + hr[3];
              } else {
                t4 += f1(br, cr, dr) + hr[4];
              }
              t4 = t4 | 0;
              t4 = rotl(t4, sr[i5]);
              t4 = t4 + er | 0;
              ar = er;
              er = dr;
              dr = rotl(cr, 10);
              cr = br;
              br = t4;
            }
            t4 = H[1] + cl + dr | 0;
            H[1] = H[2] + dl + er | 0;
            H[2] = H[3] + el + ar | 0;
            H[3] = H[4] + al + br | 0;
            H[4] = H[0] + bl + cr | 0;
            H[0] = t4;
          },
          _doFinalize: function() {
            var data2 = this._data;
            var dataWords = data2.words;
            var nBitsTotal = this._nDataBytes * 8;
            var nBitsLeft = data2.sigBytes * 8;
            dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
            dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotal << 8 | nBitsTotal >>> 24) & 16711935 | (nBitsTotal << 24 | nBitsTotal >>> 8) & 4278255360;
            data2.sigBytes = (dataWords.length + 1) * 4;
            this._process();
            var hash = this._hash;
            var H = hash.words;
            for (var i5 = 0; i5 < 5; i5++) {
              var H_i = H[i5];
              H[i5] = (H_i << 8 | H_i >>> 24) & 16711935 | (H_i << 24 | H_i >>> 8) & 4278255360;
            }
            return hash;
          },
          clone: function() {
            var clone = Hasher.clone.call(this);
            clone._hash = this._hash.clone();
            return clone;
          }
        });
        function f1(x, y3, z) {
          return x ^ y3 ^ z;
        }
        function f22(x, y3, z) {
          return x & y3 | ~x & z;
        }
        function f32(x, y3, z) {
          return (x | ~y3) ^ z;
        }
        function f4(x, y3, z) {
          return x & z | y3 & ~z;
        }
        function f5(x, y3, z) {
          return x ^ (y3 | ~z);
        }
        function rotl(x, n6) {
          return x << n6 | x >>> 32 - n6;
        }
        C.RIPEMD160 = Hasher._createHelper(RIPEMD160);
        C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);
      })(Math);
      return CryptoJS2.RIPEMD160;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/hmac.js
var require_hmac = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/hmac.js"(exports, module) {
    (function(root, factory2) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2());
      } else if (typeof define === "function" && define.amd) {
        define(["./core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var Base2 = C_lib.Base;
        var C_enc = C.enc;
        var Utf8 = C_enc.Utf8;
        var C_algo = C.algo;
        var HMAC = C_algo.HMAC = Base2.extend({
          /**
           * Initializes a newly created HMAC.
           *
           * @param {Hasher} hasher The hash algorithm to use.
           * @param {WordArray|string} key The secret key.
           *
           * @example
           *
           *     var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
           */
          init: function(hasher, key) {
            hasher = this._hasher = new hasher.init();
            if (typeof key == "string") {
              key = Utf8.parse(key);
            }
            var hasherBlockSize = hasher.blockSize;
            var hasherBlockSizeBytes = hasherBlockSize * 4;
            if (key.sigBytes > hasherBlockSizeBytes) {
              key = hasher.finalize(key);
            }
            key.clamp();
            var oKey = this._oKey = key.clone();
            var iKey = this._iKey = key.clone();
            var oKeyWords = oKey.words;
            var iKeyWords = iKey.words;
            for (var i5 = 0; i5 < hasherBlockSize; i5++) {
              oKeyWords[i5] ^= 1549556828;
              iKeyWords[i5] ^= 909522486;
            }
            oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;
            this.reset();
          },
          /**
           * Resets this HMAC to its initial state.
           *
           * @example
           *
           *     hmacHasher.reset();
           */
          reset: function() {
            var hasher = this._hasher;
            hasher.reset();
            hasher.update(this._iKey);
          },
          /**
           * Updates this HMAC with a message.
           *
           * @param {WordArray|string} messageUpdate The message to append.
           *
           * @return {HMAC} This HMAC instance.
           *
           * @example
           *
           *     hmacHasher.update('message');
           *     hmacHasher.update(wordArray);
           */
          update: function(messageUpdate) {
            this._hasher.update(messageUpdate);
            return this;
          },
          /**
           * Finalizes the HMAC computation.
           * Note that the finalize operation is effectively a destructive, read-once operation.
           *
           * @param {WordArray|string} messageUpdate (Optional) A final message update.
           *
           * @return {WordArray} The HMAC.
           *
           * @example
           *
           *     var hmac = hmacHasher.finalize();
           *     var hmac = hmacHasher.finalize('message');
           *     var hmac = hmacHasher.finalize(wordArray);
           */
          finalize: function(messageUpdate) {
            var hasher = this._hasher;
            var innerHash = hasher.finalize(messageUpdate);
            hasher.reset();
            var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));
            return hmac;
          }
        });
      })();
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pbkdf2.js
var require_pbkdf2 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pbkdf2.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_sha256(), require_hmac());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./sha256", "./hmac"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var Base2 = C_lib.Base;
        var WordArray = C_lib.WordArray;
        var C_algo = C.algo;
        var SHA256 = C_algo.SHA256;
        var HMAC = C_algo.HMAC;
        var PBKDF2 = C_algo.PBKDF2 = Base2.extend({
          /**
           * Configuration options.
           *
           * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
           * @property {Hasher} hasher The hasher to use. Default: SHA256
           * @property {number} iterations The number of iterations to perform. Default: 250000
           */
          cfg: Base2.extend({
            keySize: 128 / 32,
            hasher: SHA256,
            iterations: 25e4
          }),
          /**
           * Initializes a newly created key derivation function.
           *
           * @param {Object} cfg (Optional) The configuration options to use for the derivation.
           *
           * @example
           *
           *     var kdf = CryptoJS.algo.PBKDF2.create();
           *     var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });
           *     var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });
           */
          init: function(cfg) {
            this.cfg = this.cfg.extend(cfg);
          },
          /**
           * Computes the Password-Based Key Derivation Function 2.
           *
           * @param {WordArray|string} password The password.
           * @param {WordArray|string} salt A salt.
           *
           * @return {WordArray} The derived key.
           *
           * @example
           *
           *     var key = kdf.compute(password, salt);
           */
          compute: function(password, salt) {
            var cfg = this.cfg;
            var hmac = HMAC.create(cfg.hasher, password);
            var derivedKey = WordArray.create();
            var blockIndex = WordArray.create([1]);
            var derivedKeyWords = derivedKey.words;
            var blockIndexWords = blockIndex.words;
            var keySize = cfg.keySize;
            var iterations = cfg.iterations;
            while (derivedKeyWords.length < keySize) {
              var block = hmac.update(salt).finalize(blockIndex);
              hmac.reset();
              var blockWords = block.words;
              var blockWordsLength = blockWords.length;
              var intermediate = block;
              for (var i5 = 1; i5 < iterations; i5++) {
                intermediate = hmac.finalize(intermediate);
                hmac.reset();
                var intermediateWords = intermediate.words;
                for (var j = 0; j < blockWordsLength; j++) {
                  blockWords[j] ^= intermediateWords[j];
                }
              }
              derivedKey.concat(block);
              blockIndexWords[0]++;
            }
            derivedKey.sigBytes = keySize * 4;
            return derivedKey;
          }
        });
        C.PBKDF2 = function(password, salt, cfg) {
          return PBKDF2.create(cfg).compute(password, salt);
        };
      })();
      return CryptoJS2.PBKDF2;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/evpkdf.js
var require_evpkdf = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/evpkdf.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_sha1(), require_hmac());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./sha1", "./hmac"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var Base2 = C_lib.Base;
        var WordArray = C_lib.WordArray;
        var C_algo = C.algo;
        var MD52 = C_algo.MD5;
        var EvpKDF = C_algo.EvpKDF = Base2.extend({
          /**
           * Configuration options.
           *
           * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
           * @property {Hasher} hasher The hash algorithm to use. Default: MD5
           * @property {number} iterations The number of iterations to perform. Default: 1
           */
          cfg: Base2.extend({
            keySize: 128 / 32,
            hasher: MD52,
            iterations: 1
          }),
          /**
           * Initializes a newly created key derivation function.
           *
           * @param {Object} cfg (Optional) The configuration options to use for the derivation.
           *
           * @example
           *
           *     var kdf = CryptoJS.algo.EvpKDF.create();
           *     var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });
           *     var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });
           */
          init: function(cfg) {
            this.cfg = this.cfg.extend(cfg);
          },
          /**
           * Derives a key from a password.
           *
           * @param {WordArray|string} password The password.
           * @param {WordArray|string} salt A salt.
           *
           * @return {WordArray} The derived key.
           *
           * @example
           *
           *     var key = kdf.compute(password, salt);
           */
          compute: function(password, salt) {
            var block;
            var cfg = this.cfg;
            var hasher = cfg.hasher.create();
            var derivedKey = WordArray.create();
            var derivedKeyWords = derivedKey.words;
            var keySize = cfg.keySize;
            var iterations = cfg.iterations;
            while (derivedKeyWords.length < keySize) {
              if (block) {
                hasher.update(block);
              }
              block = hasher.update(password).finalize(salt);
              hasher.reset();
              for (var i5 = 1; i5 < iterations; i5++) {
                block = hasher.finalize(block);
                hasher.reset();
              }
              derivedKey.concat(block);
            }
            derivedKey.sigBytes = keySize * 4;
            return derivedKey;
          }
        });
        C.EvpKDF = function(password, salt, cfg) {
          return EvpKDF.create(cfg).compute(password, salt);
        };
      })();
      return CryptoJS2.EvpKDF;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/cipher-core.js
var require_cipher_core = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/cipher-core.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_evpkdf());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./evpkdf"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      CryptoJS2.lib.Cipher || (function(undefined2) {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var Base2 = C_lib.Base;
        var WordArray = C_lib.WordArray;
        var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;
        var C_enc = C.enc;
        var Utf8 = C_enc.Utf8;
        var Base64 = C_enc.Base64;
        var C_algo = C.algo;
        var EvpKDF = C_algo.EvpKDF;
        var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({
          /**
           * Configuration options.
           *
           * @property {WordArray} iv The IV to use for this operation.
           */
          cfg: Base2.extend(),
          /**
           * Creates this cipher in encryption mode.
           *
           * @param {WordArray} key The key.
           * @param {Object} cfg (Optional) The configuration options to use for this operation.
           *
           * @return {Cipher} A cipher instance.
           *
           * @static
           *
           * @example
           *
           *     var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });
           */
          createEncryptor: function(key, cfg) {
            return this.create(this._ENC_XFORM_MODE, key, cfg);
          },
          /**
           * Creates this cipher in decryption mode.
           *
           * @param {WordArray} key The key.
           * @param {Object} cfg (Optional) The configuration options to use for this operation.
           *
           * @return {Cipher} A cipher instance.
           *
           * @static
           *
           * @example
           *
           *     var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });
           */
          createDecryptor: function(key, cfg) {
            return this.create(this._DEC_XFORM_MODE, key, cfg);
          },
          /**
           * Initializes a newly created cipher.
           *
           * @param {number} xformMode Either the encryption or decryption transormation mode constant.
           * @param {WordArray} key The key.
           * @param {Object} cfg (Optional) The configuration options to use for this operation.
           *
           * @example
           *
           *     var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });
           */
          init: function(xformMode, key, cfg) {
            this.cfg = this.cfg.extend(cfg);
            this._xformMode = xformMode;
            this._key = key;
            this.reset();
          },
          /**
           * Resets this cipher to its initial state.
           *
           * @example
           *
           *     cipher.reset();
           */
          reset: function() {
            BufferedBlockAlgorithm.reset.call(this);
            this._doReset();
          },
          /**
           * Adds data to be encrypted or decrypted.
           *
           * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.
           *
           * @return {WordArray} The data after processing.
           *
           * @example
           *
           *     var encrypted = cipher.process('data');
           *     var encrypted = cipher.process(wordArray);
           */
          process: function(dataUpdate) {
            this._append(dataUpdate);
            return this._process();
          },
          /**
           * Finalizes the encryption or decryption process.
           * Note that the finalize operation is effectively a destructive, read-once operation.
           *
           * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.
           *
           * @return {WordArray} The data after final processing.
           *
           * @example
           *
           *     var encrypted = cipher.finalize();
           *     var encrypted = cipher.finalize('data');
           *     var encrypted = cipher.finalize(wordArray);
           */
          finalize: function(dataUpdate) {
            if (dataUpdate) {
              this._append(dataUpdate);
            }
            var finalProcessedData = this._doFinalize();
            return finalProcessedData;
          },
          keySize: 128 / 32,
          ivSize: 128 / 32,
          _ENC_XFORM_MODE: 1,
          _DEC_XFORM_MODE: 2,
          /**
           * Creates shortcut functions to a cipher's object interface.
           *
           * @param {Cipher} cipher The cipher to create a helper for.
           *
           * @return {Object} An object with encrypt and decrypt shortcut functions.
           *
           * @static
           *
           * @example
           *
           *     var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);
           */
          _createHelper: /* @__PURE__ */ (function() {
            function selectCipherStrategy(key) {
              if (typeof key == "string") {
                return PasswordBasedCipher;
              } else {
                return SerializableCipher;
              }
            }
            return function(cipher) {
              return {
                encrypt: function(message, key, cfg) {
                  return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);
                },
                decrypt: function(ciphertext, key, cfg) {
                  return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);
                }
              };
            };
          })()
        });
        var StreamCipher = C_lib.StreamCipher = Cipher.extend({
          _doFinalize: function() {
            var finalProcessedBlocks = this._process(true);
            return finalProcessedBlocks;
          },
          blockSize: 1
        });
        var C_mode = C.mode = {};
        var BlockCipherMode = C_lib.BlockCipherMode = Base2.extend({
          /**
           * Creates this mode for encryption.
           *
           * @param {Cipher} cipher A block cipher instance.
           * @param {Array} iv The IV words.
           *
           * @static
           *
           * @example
           *
           *     var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);
           */
          createEncryptor: function(cipher, iv) {
            return this.Encryptor.create(cipher, iv);
          },
          /**
           * Creates this mode for decryption.
           *
           * @param {Cipher} cipher A block cipher instance.
           * @param {Array} iv The IV words.
           *
           * @static
           *
           * @example
           *
           *     var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);
           */
          createDecryptor: function(cipher, iv) {
            return this.Decryptor.create(cipher, iv);
          },
          /**
           * Initializes a newly created mode.
           *
           * @param {Cipher} cipher A block cipher instance.
           * @param {Array} iv The IV words.
           *
           * @example
           *
           *     var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);
           */
          init: function(cipher, iv) {
            this._cipher = cipher;
            this._iv = iv;
          }
        });
        var CBC = C_mode.CBC = (function() {
          var CBC2 = BlockCipherMode.extend();
          CBC2.Encryptor = CBC2.extend({
            /**
             * Processes the data block at offset.
             *
             * @param {Array} words The data words to operate on.
             * @param {number} offset The offset where the block starts.
             *
             * @example
             *
             *     mode.processBlock(data.words, offset);
             */
            processBlock: function(words, offset2) {
              var cipher = this._cipher;
              var blockSize = cipher.blockSize;
              xorBlock.call(this, words, offset2, blockSize);
              cipher.encryptBlock(words, offset2);
              this._prevBlock = words.slice(offset2, offset2 + blockSize);
            }
          });
          CBC2.Decryptor = CBC2.extend({
            /**
             * Processes the data block at offset.
             *
             * @param {Array} words The data words to operate on.
             * @param {number} offset The offset where the block starts.
             *
             * @example
             *
             *     mode.processBlock(data.words, offset);
             */
            processBlock: function(words, offset2) {
              var cipher = this._cipher;
              var blockSize = cipher.blockSize;
              var thisBlock = words.slice(offset2, offset2 + blockSize);
              cipher.decryptBlock(words, offset2);
              xorBlock.call(this, words, offset2, blockSize);
              this._prevBlock = thisBlock;
            }
          });
          function xorBlock(words, offset2, blockSize) {
            var block;
            var iv = this._iv;
            if (iv) {
              block = iv;
              this._iv = undefined2;
            } else {
              block = this._prevBlock;
            }
            for (var i5 = 0; i5 < blockSize; i5++) {
              words[offset2 + i5] ^= block[i5];
            }
          }
          return CBC2;
        })();
        var C_pad = C.pad = {};
        var Pkcs7 = C_pad.Pkcs7 = {
          /**
           * Pads data using the algorithm defined in PKCS #5/7.
           *
           * @param {WordArray} data The data to pad.
           * @param {number} blockSize The multiple that the data should be padded to.
           *
           * @static
           *
           * @example
           *
           *     CryptoJS.pad.Pkcs7.pad(wordArray, 4);
           */
          pad: function(data2, blockSize) {
            var blockSizeBytes = blockSize * 4;
            var nPaddingBytes = blockSizeBytes - data2.sigBytes % blockSizeBytes;
            var paddingWord = nPaddingBytes << 24 | nPaddingBytes << 16 | nPaddingBytes << 8 | nPaddingBytes;
            var paddingWords = [];
            for (var i5 = 0; i5 < nPaddingBytes; i5 += 4) {
              paddingWords.push(paddingWord);
            }
            var padding = WordArray.create(paddingWords, nPaddingBytes);
            data2.concat(padding);
          },
          /**
           * Unpads data that had been padded using the algorithm defined in PKCS #5/7.
           *
           * @param {WordArray} data The data to unpad.
           *
           * @static
           *
           * @example
           *
           *     CryptoJS.pad.Pkcs7.unpad(wordArray);
           */
          unpad: function(data2) {
            var nPaddingBytes = data2.words[data2.sigBytes - 1 >>> 2] & 255;
            data2.sigBytes -= nPaddingBytes;
          }
        };
        var BlockCipher = C_lib.BlockCipher = Cipher.extend({
          /**
           * Configuration options.
           *
           * @property {Mode} mode The block mode to use. Default: CBC
           * @property {Padding} padding The padding strategy to use. Default: Pkcs7
           */
          cfg: Cipher.cfg.extend({
            mode: CBC,
            padding: Pkcs7
          }),
          reset: function() {
            var modeCreator;
            Cipher.reset.call(this);
            var cfg = this.cfg;
            var iv = cfg.iv;
            var mode = cfg.mode;
            if (this._xformMode == this._ENC_XFORM_MODE) {
              modeCreator = mode.createEncryptor;
            } else {
              modeCreator = mode.createDecryptor;
              this._minBufferSize = 1;
            }
            if (this._mode && this._mode.__creator == modeCreator) {
              this._mode.init(this, iv && iv.words);
            } else {
              this._mode = modeCreator.call(mode, this, iv && iv.words);
              this._mode.__creator = modeCreator;
            }
          },
          _doProcessBlock: function(words, offset2) {
            this._mode.processBlock(words, offset2);
          },
          _doFinalize: function() {
            var finalProcessedBlocks;
            var padding = this.cfg.padding;
            if (this._xformMode == this._ENC_XFORM_MODE) {
              padding.pad(this._data, this.blockSize);
              finalProcessedBlocks = this._process(true);
            } else {
              finalProcessedBlocks = this._process(true);
              padding.unpad(finalProcessedBlocks);
            }
            return finalProcessedBlocks;
          },
          blockSize: 128 / 32
        });
        var CipherParams = C_lib.CipherParams = Base2.extend({
          /**
           * Initializes a newly created cipher params object.
           *
           * @param {Object} cipherParams An object with any of the possible cipher parameters.
           *
           * @example
           *
           *     var cipherParams = CryptoJS.lib.CipherParams.create({
           *         ciphertext: ciphertextWordArray,
           *         key: keyWordArray,
           *         iv: ivWordArray,
           *         salt: saltWordArray,
           *         algorithm: CryptoJS.algo.AES,
           *         mode: CryptoJS.mode.CBC,
           *         padding: CryptoJS.pad.PKCS7,
           *         blockSize: 4,
           *         formatter: CryptoJS.format.OpenSSL
           *     });
           */
          init: function(cipherParams) {
            this.mixIn(cipherParams);
          },
          /**
           * Converts this cipher params object to a string.
           *
           * @param {Format} formatter (Optional) The formatting strategy to use.
           *
           * @return {string} The stringified cipher params.
           *
           * @throws Error If neither the formatter nor the default formatter is set.
           *
           * @example
           *
           *     var string = cipherParams + '';
           *     var string = cipherParams.toString();
           *     var string = cipherParams.toString(CryptoJS.format.OpenSSL);
           */
          toString: function(formatter) {
            return (formatter || this.formatter).stringify(this);
          }
        });
        var C_format = C.format = {};
        var OpenSSLFormatter = C_format.OpenSSL = {
          /**
           * Converts a cipher params object to an OpenSSL-compatible string.
           *
           * @param {CipherParams} cipherParams The cipher params object.
           *
           * @return {string} The OpenSSL-compatible string.
           *
           * @static
           *
           * @example
           *
           *     var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);
           */
          stringify: function(cipherParams) {
            var wordArray;
            var ciphertext = cipherParams.ciphertext;
            var salt = cipherParams.salt;
            if (salt) {
              wordArray = WordArray.create([1398893684, 1701076831]).concat(salt).concat(ciphertext);
            } else {
              wordArray = ciphertext;
            }
            return wordArray.toString(Base64);
          },
          /**
           * Converts an OpenSSL-compatible string to a cipher params object.
           *
           * @param {string} openSSLStr The OpenSSL-compatible string.
           *
           * @return {CipherParams} The cipher params object.
           *
           * @static
           *
           * @example
           *
           *     var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);
           */
          parse: function(openSSLStr) {
            var salt;
            var ciphertext = Base64.parse(openSSLStr);
            var ciphertextWords = ciphertext.words;
            if (ciphertextWords[0] == 1398893684 && ciphertextWords[1] == 1701076831) {
              salt = WordArray.create(ciphertextWords.slice(2, 4));
              ciphertextWords.splice(0, 4);
              ciphertext.sigBytes -= 16;
            }
            return CipherParams.create({ ciphertext, salt });
          }
        };
        var SerializableCipher = C_lib.SerializableCipher = Base2.extend({
          /**
           * Configuration options.
           *
           * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL
           */
          cfg: Base2.extend({
            format: OpenSSLFormatter
          }),
          /**
           * Encrypts a message.
           *
           * @param {Cipher} cipher The cipher algorithm to use.
           * @param {WordArray|string} message The message to encrypt.
           * @param {WordArray} key The key.
           * @param {Object} cfg (Optional) The configuration options to use for this operation.
           *
           * @return {CipherParams} A cipher params object.
           *
           * @static
           *
           * @example
           *
           *     var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);
           *     var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });
           *     var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });
           */
          encrypt: function(cipher, message, key, cfg) {
            cfg = this.cfg.extend(cfg);
            var encryptor = cipher.createEncryptor(key, cfg);
            var ciphertext = encryptor.finalize(message);
            var cipherCfg = encryptor.cfg;
            return CipherParams.create({
              ciphertext,
              key,
              iv: cipherCfg.iv,
              algorithm: cipher,
              mode: cipherCfg.mode,
              padding: cipherCfg.padding,
              blockSize: cipher.blockSize,
              formatter: cfg.format
            });
          },
          /**
           * Decrypts serialized ciphertext.
           *
           * @param {Cipher} cipher The cipher algorithm to use.
           * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
           * @param {WordArray} key The key.
           * @param {Object} cfg (Optional) The configuration options to use for this operation.
           *
           * @return {WordArray} The plaintext.
           *
           * @static
           *
           * @example
           *
           *     var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });
           *     var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });
           */
          decrypt: function(cipher, ciphertext, key, cfg) {
            cfg = this.cfg.extend(cfg);
            ciphertext = this._parse(ciphertext, cfg.format);
            var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);
            return plaintext;
          },
          /**
           * Converts serialized ciphertext to CipherParams,
           * else assumed CipherParams already and returns ciphertext unchanged.
           *
           * @param {CipherParams|string} ciphertext The ciphertext.
           * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.
           *
           * @return {CipherParams} The unserialized ciphertext.
           *
           * @static
           *
           * @example
           *
           *     var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);
           */
          _parse: function(ciphertext, format) {
            if (typeof ciphertext == "string") {
              return format.parse(ciphertext, this);
            } else {
              return ciphertext;
            }
          }
        });
        var C_kdf = C.kdf = {};
        var OpenSSLKdf = C_kdf.OpenSSL = {
          /**
           * Derives a key and IV from a password.
           *
           * @param {string} password The password to derive from.
           * @param {number} keySize The size in words of the key to generate.
           * @param {number} ivSize The size in words of the IV to generate.
           * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.
           *
           * @return {CipherParams} A cipher params object with the key, IV, and salt.
           *
           * @static
           *
           * @example
           *
           *     var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);
           *     var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');
           */
          execute: function(password, keySize, ivSize, salt, hasher) {
            if (!salt) {
              salt = WordArray.random(64 / 8);
            }
            if (!hasher) {
              var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);
            } else {
              var key = EvpKDF.create({ keySize: keySize + ivSize, hasher }).compute(password, salt);
            }
            var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);
            key.sigBytes = keySize * 4;
            return CipherParams.create({ key, iv, salt });
          }
        };
        var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({
          /**
           * Configuration options.
           *
           * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL
           */
          cfg: SerializableCipher.cfg.extend({
            kdf: OpenSSLKdf
          }),
          /**
           * Encrypts a message using a password.
           *
           * @param {Cipher} cipher The cipher algorithm to use.
           * @param {WordArray|string} message The message to encrypt.
           * @param {string} password The password.
           * @param {Object} cfg (Optional) The configuration options to use for this operation.
           *
           * @return {CipherParams} A cipher params object.
           *
           * @static
           *
           * @example
           *
           *     var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');
           *     var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });
           */
          encrypt: function(cipher, message, password, cfg) {
            cfg = this.cfg.extend(cfg);
            var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);
            cfg.iv = derivedParams.iv;
            var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);
            ciphertext.mixIn(derivedParams);
            return ciphertext;
          },
          /**
           * Decrypts serialized ciphertext using a password.
           *
           * @param {Cipher} cipher The cipher algorithm to use.
           * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
           * @param {string} password The password.
           * @param {Object} cfg (Optional) The configuration options to use for this operation.
           *
           * @return {WordArray} The plaintext.
           *
           * @static
           *
           * @example
           *
           *     var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });
           *     var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });
           */
          decrypt: function(cipher, ciphertext, password, cfg) {
            cfg = this.cfg.extend(cfg);
            ciphertext = this._parse(ciphertext, cfg.format);
            var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);
            cfg.iv = derivedParams.iv;
            var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);
            return plaintext;
          }
        });
      })();
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-cfb.js
var require_mode_cfb = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-cfb.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      CryptoJS2.mode.CFB = (function() {
        var CFB = CryptoJS2.lib.BlockCipherMode.extend();
        CFB.Encryptor = CFB.extend({
          processBlock: function(words, offset2) {
            var cipher = this._cipher;
            var blockSize = cipher.blockSize;
            generateKeystreamAndEncrypt.call(this, words, offset2, blockSize, cipher);
            this._prevBlock = words.slice(offset2, offset2 + blockSize);
          }
        });
        CFB.Decryptor = CFB.extend({
          processBlock: function(words, offset2) {
            var cipher = this._cipher;
            var blockSize = cipher.blockSize;
            var thisBlock = words.slice(offset2, offset2 + blockSize);
            generateKeystreamAndEncrypt.call(this, words, offset2, blockSize, cipher);
            this._prevBlock = thisBlock;
          }
        });
        function generateKeystreamAndEncrypt(words, offset2, blockSize, cipher) {
          var keystream;
          var iv = this._iv;
          if (iv) {
            keystream = iv.slice(0);
            this._iv = void 0;
          } else {
            keystream = this._prevBlock;
          }
          cipher.encryptBlock(keystream, 0);
          for (var i5 = 0; i5 < blockSize; i5++) {
            words[offset2 + i5] ^= keystream[i5];
          }
        }
        return CFB;
      })();
      return CryptoJS2.mode.CFB;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr.js
var require_mode_ctr = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      CryptoJS2.mode.CTR = (function() {
        var CTR = CryptoJS2.lib.BlockCipherMode.extend();
        var Encryptor = CTR.Encryptor = CTR.extend({
          processBlock: function(words, offset2) {
            var cipher = this._cipher;
            var blockSize = cipher.blockSize;
            var iv = this._iv;
            var counter = this._counter;
            if (iv) {
              counter = this._counter = iv.slice(0);
              this._iv = void 0;
            }
            var keystream = counter.slice(0);
            cipher.encryptBlock(keystream, 0);
            counter[blockSize - 1] = counter[blockSize - 1] + 1 | 0;
            for (var i5 = 0; i5 < blockSize; i5++) {
              words[offset2 + i5] ^= keystream[i5];
            }
          }
        });
        CTR.Decryptor = Encryptor;
        return CTR;
      })();
      return CryptoJS2.mode.CTR;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr-gladman.js
var require_mode_ctr_gladman = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr-gladman.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      CryptoJS2.mode.CTRGladman = (function() {
        var CTRGladman = CryptoJS2.lib.BlockCipherMode.extend();
        function incWord(word) {
          if ((word >> 24 & 255) === 255) {
            var b1 = word >> 16 & 255;
            var b22 = word >> 8 & 255;
            var b3 = word & 255;
            if (b1 === 255) {
              b1 = 0;
              if (b22 === 255) {
                b22 = 0;
                if (b3 === 255) {
                  b3 = 0;
                } else {
                  ++b3;
                }
              } else {
                ++b22;
              }
            } else {
              ++b1;
            }
            word = 0;
            word += b1 << 16;
            word += b22 << 8;
            word += b3;
          } else {
            word += 1 << 24;
          }
          return word;
        }
        function incCounter(counter) {
          if ((counter[0] = incWord(counter[0])) === 0) {
            counter[1] = incWord(counter[1]);
          }
          return counter;
        }
        var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({
          processBlock: function(words, offset2) {
            var cipher = this._cipher;
            var blockSize = cipher.blockSize;
            var iv = this._iv;
            var counter = this._counter;
            if (iv) {
              counter = this._counter = iv.slice(0);
              this._iv = void 0;
            }
            incCounter(counter);
            var keystream = counter.slice(0);
            cipher.encryptBlock(keystream, 0);
            for (var i5 = 0; i5 < blockSize; i5++) {
              words[offset2 + i5] ^= keystream[i5];
            }
          }
        });
        CTRGladman.Decryptor = Encryptor;
        return CTRGladman;
      })();
      return CryptoJS2.mode.CTRGladman;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ofb.js
var require_mode_ofb = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ofb.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      CryptoJS2.mode.OFB = (function() {
        var OFB = CryptoJS2.lib.BlockCipherMode.extend();
        var Encryptor = OFB.Encryptor = OFB.extend({
          processBlock: function(words, offset2) {
            var cipher = this._cipher;
            var blockSize = cipher.blockSize;
            var iv = this._iv;
            var keystream = this._keystream;
            if (iv) {
              keystream = this._keystream = iv.slice(0);
              this._iv = void 0;
            }
            cipher.encryptBlock(keystream, 0);
            for (var i5 = 0; i5 < blockSize; i5++) {
              words[offset2 + i5] ^= keystream[i5];
            }
          }
        });
        OFB.Decryptor = Encryptor;
        return OFB;
      })();
      return CryptoJS2.mode.OFB;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ecb.js
var require_mode_ecb = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ecb.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      CryptoJS2.mode.ECB = (function() {
        var ECB = CryptoJS2.lib.BlockCipherMode.extend();
        ECB.Encryptor = ECB.extend({
          processBlock: function(words, offset2) {
            this._cipher.encryptBlock(words, offset2);
          }
        });
        ECB.Decryptor = ECB.extend({
          processBlock: function(words, offset2) {
            this._cipher.decryptBlock(words, offset2);
          }
        });
        return ECB;
      })();
      return CryptoJS2.mode.ECB;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-ansix923.js
var require_pad_ansix923 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-ansix923.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      CryptoJS2.pad.AnsiX923 = {
        pad: function(data2, blockSize) {
          var dataSigBytes = data2.sigBytes;
          var blockSizeBytes = blockSize * 4;
          var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;
          var lastBytePos = dataSigBytes + nPaddingBytes - 1;
          data2.clamp();
          data2.words[lastBytePos >>> 2] |= nPaddingBytes << 24 - lastBytePos % 4 * 8;
          data2.sigBytes += nPaddingBytes;
        },
        unpad: function(data2) {
          var nPaddingBytes = data2.words[data2.sigBytes - 1 >>> 2] & 255;
          data2.sigBytes -= nPaddingBytes;
        }
      };
      return CryptoJS2.pad.Ansix923;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso10126.js
var require_pad_iso10126 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso10126.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      CryptoJS2.pad.Iso10126 = {
        pad: function(data2, blockSize) {
          var blockSizeBytes = blockSize * 4;
          var nPaddingBytes = blockSizeBytes - data2.sigBytes % blockSizeBytes;
          data2.concat(CryptoJS2.lib.WordArray.random(nPaddingBytes - 1)).concat(CryptoJS2.lib.WordArray.create([nPaddingBytes << 24], 1));
        },
        unpad: function(data2) {
          var nPaddingBytes = data2.words[data2.sigBytes - 1 >>> 2] & 255;
          data2.sigBytes -= nPaddingBytes;
        }
      };
      return CryptoJS2.pad.Iso10126;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso97971.js
var require_pad_iso97971 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso97971.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      CryptoJS2.pad.Iso97971 = {
        pad: function(data2, blockSize) {
          data2.concat(CryptoJS2.lib.WordArray.create([2147483648], 1));
          CryptoJS2.pad.ZeroPadding.pad(data2, blockSize);
        },
        unpad: function(data2) {
          CryptoJS2.pad.ZeroPadding.unpad(data2);
          data2.sigBytes--;
        }
      };
      return CryptoJS2.pad.Iso97971;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-zeropadding.js
var require_pad_zeropadding = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-zeropadding.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      CryptoJS2.pad.ZeroPadding = {
        pad: function(data2, blockSize) {
          var blockSizeBytes = blockSize * 4;
          data2.clamp();
          data2.sigBytes += blockSizeBytes - (data2.sigBytes % blockSizeBytes || blockSizeBytes);
        },
        unpad: function(data2) {
          var dataWords = data2.words;
          var i5 = data2.sigBytes - 1;
          for (var i5 = data2.sigBytes - 1; i5 >= 0; i5--) {
            if (dataWords[i5 >>> 2] >>> 24 - i5 % 4 * 8 & 255) {
              data2.sigBytes = i5 + 1;
              break;
            }
          }
        }
      };
      return CryptoJS2.pad.ZeroPadding;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-nopadding.js
var require_pad_nopadding = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-nopadding.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      CryptoJS2.pad.NoPadding = {
        pad: function() {
        },
        unpad: function() {
        }
      };
      return CryptoJS2.pad.NoPadding;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/format-hex.js
var require_format_hex = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/format-hex.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function(undefined2) {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var CipherParams = C_lib.CipherParams;
        var C_enc = C.enc;
        var Hex = C_enc.Hex;
        var C_format = C.format;
        var HexFormatter = C_format.Hex = {
          /**
           * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.
           *
           * @param {CipherParams} cipherParams The cipher params object.
           *
           * @return {string} The hexadecimally encoded string.
           *
           * @static
           *
           * @example
           *
           *     var hexString = CryptoJS.format.Hex.stringify(cipherParams);
           */
          stringify: function(cipherParams) {
            return cipherParams.ciphertext.toString(Hex);
          },
          /**
           * Converts a hexadecimally encoded ciphertext string to a cipher params object.
           *
           * @param {string} input The hexadecimally encoded string.
           *
           * @return {CipherParams} The cipher params object.
           *
           * @static
           *
           * @example
           *
           *     var cipherParams = CryptoJS.format.Hex.parse(hexString);
           */
          parse: function(input) {
            var ciphertext = Hex.parse(input);
            return CipherParams.create({ ciphertext });
          }
        };
      })();
      return CryptoJS2.format.Hex;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/aes.js
var require_aes = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/aes.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var BlockCipher = C_lib.BlockCipher;
        var C_algo = C.algo;
        var SBOX = [];
        var INV_SBOX = [];
        var SUB_MIX_0 = [];
        var SUB_MIX_1 = [];
        var SUB_MIX_2 = [];
        var SUB_MIX_3 = [];
        var INV_SUB_MIX_0 = [];
        var INV_SUB_MIX_1 = [];
        var INV_SUB_MIX_2 = [];
        var INV_SUB_MIX_3 = [];
        (function() {
          var d3 = [];
          for (var i5 = 0; i5 < 256; i5++) {
            if (i5 < 128) {
              d3[i5] = i5 << 1;
            } else {
              d3[i5] = i5 << 1 ^ 283;
            }
          }
          var x = 0;
          var xi = 0;
          for (var i5 = 0; i5 < 256; i5++) {
            var sx2 = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;
            sx2 = sx2 >>> 8 ^ sx2 & 255 ^ 99;
            SBOX[x] = sx2;
            INV_SBOX[sx2] = x;
            var x2 = d3[x];
            var x4 = d3[x2];
            var x8 = d3[x4];
            var t4 = d3[sx2] * 257 ^ sx2 * 16843008;
            SUB_MIX_0[x] = t4 << 24 | t4 >>> 8;
            SUB_MIX_1[x] = t4 << 16 | t4 >>> 16;
            SUB_MIX_2[x] = t4 << 8 | t4 >>> 24;
            SUB_MIX_3[x] = t4;
            var t4 = x8 * 16843009 ^ x4 * 65537 ^ x2 * 257 ^ x * 16843008;
            INV_SUB_MIX_0[sx2] = t4 << 24 | t4 >>> 8;
            INV_SUB_MIX_1[sx2] = t4 << 16 | t4 >>> 16;
            INV_SUB_MIX_2[sx2] = t4 << 8 | t4 >>> 24;
            INV_SUB_MIX_3[sx2] = t4;
            if (!x) {
              x = xi = 1;
            } else {
              x = x2 ^ d3[d3[d3[x8 ^ x2]]];
              xi ^= d3[d3[xi]];
            }
          }
        })();
        var RCON = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54];
        var AES = C_algo.AES = BlockCipher.extend({
          _doReset: function() {
            var t4;
            if (this._nRounds && this._keyPriorReset === this._key) {
              return;
            }
            var key = this._keyPriorReset = this._key;
            var keyWords = key.words;
            var keySize = key.sigBytes / 4;
            var nRounds = this._nRounds = keySize + 6;
            var ksRows = (nRounds + 1) * 4;
            var keySchedule = this._keySchedule = [];
            for (var ksRow = 0; ksRow < ksRows; ksRow++) {
              if (ksRow < keySize) {
                keySchedule[ksRow] = keyWords[ksRow];
              } else {
                t4 = keySchedule[ksRow - 1];
                if (!(ksRow % keySize)) {
                  t4 = t4 << 8 | t4 >>> 24;
                  t4 = SBOX[t4 >>> 24] << 24 | SBOX[t4 >>> 16 & 255] << 16 | SBOX[t4 >>> 8 & 255] << 8 | SBOX[t4 & 255];
                  t4 ^= RCON[ksRow / keySize | 0] << 24;
                } else if (keySize > 6 && ksRow % keySize == 4) {
                  t4 = SBOX[t4 >>> 24] << 24 | SBOX[t4 >>> 16 & 255] << 16 | SBOX[t4 >>> 8 & 255] << 8 | SBOX[t4 & 255];
                }
                keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t4;
              }
            }
            var invKeySchedule = this._invKeySchedule = [];
            for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {
              var ksRow = ksRows - invKsRow;
              if (invKsRow % 4) {
                var t4 = keySchedule[ksRow];
              } else {
                var t4 = keySchedule[ksRow - 4];
              }
              if (invKsRow < 4 || ksRow <= 4) {
                invKeySchedule[invKsRow] = t4;
              } else {
                invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t4 >>> 24]] ^ INV_SUB_MIX_1[SBOX[t4 >>> 16 & 255]] ^ INV_SUB_MIX_2[SBOX[t4 >>> 8 & 255]] ^ INV_SUB_MIX_3[SBOX[t4 & 255]];
              }
            }
          },
          encryptBlock: function(M, offset2) {
            this._doCryptBlock(M, offset2, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);
          },
          decryptBlock: function(M, offset2) {
            var t4 = M[offset2 + 1];
            M[offset2 + 1] = M[offset2 + 3];
            M[offset2 + 3] = t4;
            this._doCryptBlock(M, offset2, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);
            var t4 = M[offset2 + 1];
            M[offset2 + 1] = M[offset2 + 3];
            M[offset2 + 3] = t4;
          },
          _doCryptBlock: function(M, offset2, keySchedule, SUB_MIX_02, SUB_MIX_12, SUB_MIX_22, SUB_MIX_32, SBOX2) {
            var nRounds = this._nRounds;
            var s0 = M[offset2] ^ keySchedule[0];
            var s1 = M[offset2 + 1] ^ keySchedule[1];
            var s22 = M[offset2 + 2] ^ keySchedule[2];
            var s32 = M[offset2 + 3] ^ keySchedule[3];
            var ksRow = 4;
            for (var round = 1; round < nRounds; round++) {
              var t0 = SUB_MIX_02[s0 >>> 24] ^ SUB_MIX_12[s1 >>> 16 & 255] ^ SUB_MIX_22[s22 >>> 8 & 255] ^ SUB_MIX_32[s32 & 255] ^ keySchedule[ksRow++];
              var t1 = SUB_MIX_02[s1 >>> 24] ^ SUB_MIX_12[s22 >>> 16 & 255] ^ SUB_MIX_22[s32 >>> 8 & 255] ^ SUB_MIX_32[s0 & 255] ^ keySchedule[ksRow++];
              var t22 = SUB_MIX_02[s22 >>> 24] ^ SUB_MIX_12[s32 >>> 16 & 255] ^ SUB_MIX_22[s0 >>> 8 & 255] ^ SUB_MIX_32[s1 & 255] ^ keySchedule[ksRow++];
              var t32 = SUB_MIX_02[s32 >>> 24] ^ SUB_MIX_12[s0 >>> 16 & 255] ^ SUB_MIX_22[s1 >>> 8 & 255] ^ SUB_MIX_32[s22 & 255] ^ keySchedule[ksRow++];
              s0 = t0;
              s1 = t1;
              s22 = t22;
              s32 = t32;
            }
            var t0 = (SBOX2[s0 >>> 24] << 24 | SBOX2[s1 >>> 16 & 255] << 16 | SBOX2[s22 >>> 8 & 255] << 8 | SBOX2[s32 & 255]) ^ keySchedule[ksRow++];
            var t1 = (SBOX2[s1 >>> 24] << 24 | SBOX2[s22 >>> 16 & 255] << 16 | SBOX2[s32 >>> 8 & 255] << 8 | SBOX2[s0 & 255]) ^ keySchedule[ksRow++];
            var t22 = (SBOX2[s22 >>> 24] << 24 | SBOX2[s32 >>> 16 & 255] << 16 | SBOX2[s0 >>> 8 & 255] << 8 | SBOX2[s1 & 255]) ^ keySchedule[ksRow++];
            var t32 = (SBOX2[s32 >>> 24] << 24 | SBOX2[s0 >>> 16 & 255] << 16 | SBOX2[s1 >>> 8 & 255] << 8 | SBOX2[s22 & 255]) ^ keySchedule[ksRow++];
            M[offset2] = t0;
            M[offset2 + 1] = t1;
            M[offset2 + 2] = t22;
            M[offset2 + 3] = t32;
          },
          keySize: 256 / 32
        });
        C.AES = BlockCipher._createHelper(AES);
      })();
      return CryptoJS2.AES;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/tripledes.js
var require_tripledes = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/tripledes.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var WordArray = C_lib.WordArray;
        var BlockCipher = C_lib.BlockCipher;
        var C_algo = C.algo;
        var PC1 = [
          57,
          49,
          41,
          33,
          25,
          17,
          9,
          1,
          58,
          50,
          42,
          34,
          26,
          18,
          10,
          2,
          59,
          51,
          43,
          35,
          27,
          19,
          11,
          3,
          60,
          52,
          44,
          36,
          63,
          55,
          47,
          39,
          31,
          23,
          15,
          7,
          62,
          54,
          46,
          38,
          30,
          22,
          14,
          6,
          61,
          53,
          45,
          37,
          29,
          21,
          13,
          5,
          28,
          20,
          12,
          4
        ];
        var PC2 = [
          14,
          17,
          11,
          24,
          1,
          5,
          3,
          28,
          15,
          6,
          21,
          10,
          23,
          19,
          12,
          4,
          26,
          8,
          16,
          7,
          27,
          20,
          13,
          2,
          41,
          52,
          31,
          37,
          47,
          55,
          30,
          40,
          51,
          45,
          33,
          48,
          44,
          49,
          39,
          56,
          34,
          53,
          46,
          42,
          50,
          36,
          29,
          32
        ];
        var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
        var SBOX_P = [
          {
            0: 8421888,
            268435456: 32768,
            536870912: 8421378,
            805306368: 2,
            1073741824: 512,
            1342177280: 8421890,
            1610612736: 8389122,
            1879048192: 8388608,
            2147483648: 514,
            2415919104: 8389120,
            2684354560: 33280,
            2952790016: 8421376,
            3221225472: 32770,
            3489660928: 8388610,
            3758096384: 0,
            4026531840: 33282,
            134217728: 0,
            402653184: 8421890,
            671088640: 33282,
            939524096: 32768,
            1207959552: 8421888,
            1476395008: 512,
            1744830464: 8421378,
            2013265920: 2,
            2281701376: 8389120,
            2550136832: 33280,
            2818572288: 8421376,
            3087007744: 8389122,
            3355443200: 8388610,
            3623878656: 32770,
            3892314112: 514,
            4160749568: 8388608,
            1: 32768,
            268435457: 2,
            536870913: 8421888,
            805306369: 8388608,
            1073741825: 8421378,
            1342177281: 33280,
            1610612737: 512,
            1879048193: 8389122,
            2147483649: 8421890,
            2415919105: 8421376,
            2684354561: 8388610,
            2952790017: 33282,
            3221225473: 514,
            3489660929: 8389120,
            3758096385: 32770,
            4026531841: 0,
            134217729: 8421890,
            402653185: 8421376,
            671088641: 8388608,
            939524097: 512,
            1207959553: 32768,
            1476395009: 8388610,
            1744830465: 2,
            2013265921: 33282,
            2281701377: 32770,
            2550136833: 8389122,
            2818572289: 514,
            3087007745: 8421888,
            3355443201: 8389120,
            3623878657: 0,
            3892314113: 33280,
            4160749569: 8421378
          },
          {
            0: 1074282512,
            16777216: 16384,
            33554432: 524288,
            50331648: 1074266128,
            67108864: 1073741840,
            83886080: 1074282496,
            100663296: 1073758208,
            117440512: 16,
            134217728: 540672,
            150994944: 1073758224,
            167772160: 1073741824,
            184549376: 540688,
            201326592: 524304,
            218103808: 0,
            234881024: 16400,
            251658240: 1074266112,
            8388608: 1073758208,
            25165824: 540688,
            41943040: 16,
            58720256: 1073758224,
            75497472: 1074282512,
            92274688: 1073741824,
            109051904: 524288,
            125829120: 1074266128,
            142606336: 524304,
            159383552: 0,
            176160768: 16384,
            192937984: 1074266112,
            209715200: 1073741840,
            226492416: 540672,
            243269632: 1074282496,
            260046848: 16400,
            268435456: 0,
            285212672: 1074266128,
            301989888: 1073758224,
            318767104: 1074282496,
            335544320: 1074266112,
            352321536: 16,
            369098752: 540688,
            385875968: 16384,
            402653184: 16400,
            419430400: 524288,
            436207616: 524304,
            452984832: 1073741840,
            469762048: 540672,
            486539264: 1073758208,
            503316480: 1073741824,
            520093696: 1074282512,
            276824064: 540688,
            293601280: 524288,
            310378496: 1074266112,
            327155712: 16384,
            343932928: 1073758208,
            360710144: 1074282512,
            377487360: 16,
            394264576: 1073741824,
            411041792: 1074282496,
            427819008: 1073741840,
            444596224: 1073758224,
            461373440: 524304,
            478150656: 0,
            494927872: 16400,
            511705088: 1074266128,
            528482304: 540672
          },
          {
            0: 260,
            1048576: 0,
            2097152: 67109120,
            3145728: 65796,
            4194304: 65540,
            5242880: 67108868,
            6291456: 67174660,
            7340032: 67174400,
            8388608: 67108864,
            9437184: 67174656,
            10485760: 65792,
            11534336: 67174404,
            12582912: 67109124,
            13631488: 65536,
            14680064: 4,
            15728640: 256,
            524288: 67174656,
            1572864: 67174404,
            2621440: 0,
            3670016: 67109120,
            4718592: 67108868,
            5767168: 65536,
            6815744: 65540,
            7864320: 260,
            8912896: 4,
            9961472: 256,
            11010048: 67174400,
            12058624: 65796,
            13107200: 65792,
            14155776: 67109124,
            15204352: 67174660,
            16252928: 67108864,
            16777216: 67174656,
            17825792: 65540,
            18874368: 65536,
            19922944: 67109120,
            20971520: 256,
            22020096: 67174660,
            23068672: 67108868,
            24117248: 0,
            25165824: 67109124,
            26214400: 67108864,
            27262976: 4,
            28311552: 65792,
            29360128: 67174400,
            30408704: 260,
            31457280: 65796,
            32505856: 67174404,
            17301504: 67108864,
            18350080: 260,
            19398656: 67174656,
            20447232: 0,
            21495808: 65540,
            22544384: 67109120,
            23592960: 256,
            24641536: 67174404,
            25690112: 65536,
            26738688: 67174660,
            27787264: 65796,
            28835840: 67108868,
            29884416: 67109124,
            30932992: 67174400,
            31981568: 4,
            33030144: 65792
          },
          {
            0: 2151682048,
            65536: 2147487808,
            131072: 4198464,
            196608: 2151677952,
            262144: 0,
            327680: 4198400,
            393216: 2147483712,
            458752: 4194368,
            524288: 2147483648,
            589824: 4194304,
            655360: 64,
            720896: 2147487744,
            786432: 2151678016,
            851968: 4160,
            917504: 4096,
            983040: 2151682112,
            32768: 2147487808,
            98304: 64,
            163840: 2151678016,
            229376: 2147487744,
            294912: 4198400,
            360448: 2151682112,
            425984: 0,
            491520: 2151677952,
            557056: 4096,
            622592: 2151682048,
            688128: 4194304,
            753664: 4160,
            819200: 2147483648,
            884736: 4194368,
            950272: 4198464,
            1015808: 2147483712,
            1048576: 4194368,
            1114112: 4198400,
            1179648: 2147483712,
            1245184: 0,
            1310720: 4160,
            1376256: 2151678016,
            1441792: 2151682048,
            1507328: 2147487808,
            1572864: 2151682112,
            1638400: 2147483648,
            1703936: 2151677952,
            1769472: 4198464,
            1835008: 2147487744,
            1900544: 4194304,
            1966080: 64,
            2031616: 4096,
            1081344: 2151677952,
            1146880: 2151682112,
            1212416: 0,
            1277952: 4198400,
            1343488: 4194368,
            1409024: 2147483648,
            1474560: 2147487808,
            1540096: 64,
            1605632: 2147483712,
            1671168: 4096,
            1736704: 2147487744,
            1802240: 2151678016,
            1867776: 4160,
            1933312: 2151682048,
            1998848: 4194304,
            2064384: 4198464
          },
          {
            0: 128,
            4096: 17039360,
            8192: 262144,
            12288: 536870912,
            16384: 537133184,
            20480: 16777344,
            24576: 553648256,
            28672: 262272,
            32768: 16777216,
            36864: 537133056,
            40960: 536871040,
            45056: 553910400,
            49152: 553910272,
            53248: 0,
            57344: 17039488,
            61440: 553648128,
            2048: 17039488,
            6144: 553648256,
            10240: 128,
            14336: 17039360,
            18432: 262144,
            22528: 537133184,
            26624: 553910272,
            30720: 536870912,
            34816: 537133056,
            38912: 0,
            43008: 553910400,
            47104: 16777344,
            51200: 536871040,
            55296: 553648128,
            59392: 16777216,
            63488: 262272,
            65536: 262144,
            69632: 128,
            73728: 536870912,
            77824: 553648256,
            81920: 16777344,
            86016: 553910272,
            90112: 537133184,
            94208: 16777216,
            98304: 553910400,
            102400: 553648128,
            106496: 17039360,
            110592: 537133056,
            114688: 262272,
            118784: 536871040,
            122880: 0,
            126976: 17039488,
            67584: 553648256,
            71680: 16777216,
            75776: 17039360,
            79872: 537133184,
            83968: 536870912,
            88064: 17039488,
            92160: 128,
            96256: 553910272,
            100352: 262272,
            104448: 553910400,
            108544: 0,
            112640: 553648128,
            116736: 16777344,
            120832: 262144,
            124928: 537133056,
            129024: 536871040
          },
          {
            0: 268435464,
            256: 8192,
            512: 270532608,
            768: 270540808,
            1024: 268443648,
            1280: 2097152,
            1536: 2097160,
            1792: 268435456,
            2048: 0,
            2304: 268443656,
            2560: 2105344,
            2816: 8,
            3072: 270532616,
            3328: 2105352,
            3584: 8200,
            3840: 270540800,
            128: 270532608,
            384: 270540808,
            640: 8,
            896: 2097152,
            1152: 2105352,
            1408: 268435464,
            1664: 268443648,
            1920: 8200,
            2176: 2097160,
            2432: 8192,
            2688: 268443656,
            2944: 270532616,
            3200: 0,
            3456: 270540800,
            3712: 2105344,
            3968: 268435456,
            4096: 268443648,
            4352: 270532616,
            4608: 270540808,
            4864: 8200,
            5120: 2097152,
            5376: 268435456,
            5632: 268435464,
            5888: 2105344,
            6144: 2105352,
            6400: 0,
            6656: 8,
            6912: 270532608,
            7168: 8192,
            7424: 268443656,
            7680: 270540800,
            7936: 2097160,
            4224: 8,
            4480: 2105344,
            4736: 2097152,
            4992: 268435464,
            5248: 268443648,
            5504: 8200,
            5760: 270540808,
            6016: 270532608,
            6272: 270540800,
            6528: 270532616,
            6784: 8192,
            7040: 2105352,
            7296: 2097160,
            7552: 0,
            7808: 268435456,
            8064: 268443656
          },
          {
            0: 1048576,
            16: 33555457,
            32: 1024,
            48: 1049601,
            64: 34604033,
            80: 0,
            96: 1,
            112: 34603009,
            128: 33555456,
            144: 1048577,
            160: 33554433,
            176: 34604032,
            192: 34603008,
            208: 1025,
            224: 1049600,
            240: 33554432,
            8: 34603009,
            24: 0,
            40: 33555457,
            56: 34604032,
            72: 1048576,
            88: 33554433,
            104: 33554432,
            120: 1025,
            136: 1049601,
            152: 33555456,
            168: 34603008,
            184: 1048577,
            200: 1024,
            216: 34604033,
            232: 1,
            248: 1049600,
            256: 33554432,
            272: 1048576,
            288: 33555457,
            304: 34603009,
            320: 1048577,
            336: 33555456,
            352: 34604032,
            368: 1049601,
            384: 1025,
            400: 34604033,
            416: 1049600,
            432: 1,
            448: 0,
            464: 34603008,
            480: 33554433,
            496: 1024,
            264: 1049600,
            280: 33555457,
            296: 34603009,
            312: 1,
            328: 33554432,
            344: 1048576,
            360: 1025,
            376: 34604032,
            392: 33554433,
            408: 34603008,
            424: 0,
            440: 34604033,
            456: 1049601,
            472: 1024,
            488: 33555456,
            504: 1048577
          },
          {
            0: 134219808,
            1: 131072,
            2: 134217728,
            3: 32,
            4: 131104,
            5: 134350880,
            6: 134350848,
            7: 2048,
            8: 134348800,
            9: 134219776,
            10: 133120,
            11: 134348832,
            12: 2080,
            13: 0,
            14: 134217760,
            15: 133152,
            2147483648: 2048,
            2147483649: 134350880,
            2147483650: 134219808,
            2147483651: 134217728,
            2147483652: 134348800,
            2147483653: 133120,
            2147483654: 133152,
            2147483655: 32,
            2147483656: 134217760,
            2147483657: 2080,
            2147483658: 131104,
            2147483659: 134350848,
            2147483660: 0,
            2147483661: 134348832,
            2147483662: 134219776,
            2147483663: 131072,
            16: 133152,
            17: 134350848,
            18: 32,
            19: 2048,
            20: 134219776,
            21: 134217760,
            22: 134348832,
            23: 131072,
            24: 0,
            25: 131104,
            26: 134348800,
            27: 134219808,
            28: 134350880,
            29: 133120,
            30: 2080,
            31: 134217728,
            2147483664: 131072,
            2147483665: 2048,
            2147483666: 134348832,
            2147483667: 133152,
            2147483668: 32,
            2147483669: 134348800,
            2147483670: 134217728,
            2147483671: 134219808,
            2147483672: 134350880,
            2147483673: 134217760,
            2147483674: 134219776,
            2147483675: 0,
            2147483676: 133120,
            2147483677: 2080,
            2147483678: 131104,
            2147483679: 134350848
          }
        ];
        var SBOX_MASK = [
          4160749569,
          528482304,
          33030144,
          2064384,
          129024,
          8064,
          504,
          2147483679
        ];
        var DES = C_algo.DES = BlockCipher.extend({
          _doReset: function() {
            var key = this._key;
            var keyWords = key.words;
            var keyBits = [];
            for (var i5 = 0; i5 < 56; i5++) {
              var keyBitPos = PC1[i5] - 1;
              keyBits[i5] = keyWords[keyBitPos >>> 5] >>> 31 - keyBitPos % 32 & 1;
            }
            var subKeys = this._subKeys = [];
            for (var nSubKey = 0; nSubKey < 16; nSubKey++) {
              var subKey = subKeys[nSubKey] = [];
              var bitShift = BIT_SHIFTS[nSubKey];
              for (var i5 = 0; i5 < 24; i5++) {
                subKey[i5 / 6 | 0] |= keyBits[(PC2[i5] - 1 + bitShift) % 28] << 31 - i5 % 6;
                subKey[4 + (i5 / 6 | 0)] |= keyBits[28 + (PC2[i5 + 24] - 1 + bitShift) % 28] << 31 - i5 % 6;
              }
              subKey[0] = subKey[0] << 1 | subKey[0] >>> 31;
              for (var i5 = 1; i5 < 7; i5++) {
                subKey[i5] = subKey[i5] >>> (i5 - 1) * 4 + 3;
              }
              subKey[7] = subKey[7] << 5 | subKey[7] >>> 27;
            }
            var invSubKeys = this._invSubKeys = [];
            for (var i5 = 0; i5 < 16; i5++) {
              invSubKeys[i5] = subKeys[15 - i5];
            }
          },
          encryptBlock: function(M, offset2) {
            this._doCryptBlock(M, offset2, this._subKeys);
          },
          decryptBlock: function(M, offset2) {
            this._doCryptBlock(M, offset2, this._invSubKeys);
          },
          _doCryptBlock: function(M, offset2, subKeys) {
            this._lBlock = M[offset2];
            this._rBlock = M[offset2 + 1];
            exchangeLR.call(this, 4, 252645135);
            exchangeLR.call(this, 16, 65535);
            exchangeRL.call(this, 2, 858993459);
            exchangeRL.call(this, 8, 16711935);
            exchangeLR.call(this, 1, 1431655765);
            for (var round = 0; round < 16; round++) {
              var subKey = subKeys[round];
              var lBlock = this._lBlock;
              var rBlock = this._rBlock;
              var f4 = 0;
              for (var i5 = 0; i5 < 8; i5++) {
                f4 |= SBOX_P[i5][((rBlock ^ subKey[i5]) & SBOX_MASK[i5]) >>> 0];
              }
              this._lBlock = rBlock;
              this._rBlock = lBlock ^ f4;
            }
            var t4 = this._lBlock;
            this._lBlock = this._rBlock;
            this._rBlock = t4;
            exchangeLR.call(this, 1, 1431655765);
            exchangeRL.call(this, 8, 16711935);
            exchangeRL.call(this, 2, 858993459);
            exchangeLR.call(this, 16, 65535);
            exchangeLR.call(this, 4, 252645135);
            M[offset2] = this._lBlock;
            M[offset2 + 1] = this._rBlock;
          },
          keySize: 64 / 32,
          ivSize: 64 / 32,
          blockSize: 64 / 32
        });
        function exchangeLR(offset2, mask) {
          var t4 = (this._lBlock >>> offset2 ^ this._rBlock) & mask;
          this._rBlock ^= t4;
          this._lBlock ^= t4 << offset2;
        }
        function exchangeRL(offset2, mask) {
          var t4 = (this._rBlock >>> offset2 ^ this._lBlock) & mask;
          this._lBlock ^= t4;
          this._rBlock ^= t4 << offset2;
        }
        C.DES = BlockCipher._createHelper(DES);
        var TripleDES = C_algo.TripleDES = BlockCipher.extend({
          _doReset: function() {
            var key = this._key;
            var keyWords = key.words;
            if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {
              throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");
            }
            var key1 = keyWords.slice(0, 2);
            var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);
            var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);
            this._des1 = DES.createEncryptor(WordArray.create(key1));
            this._des2 = DES.createEncryptor(WordArray.create(key2));
            this._des3 = DES.createEncryptor(WordArray.create(key3));
          },
          encryptBlock: function(M, offset2) {
            this._des1.encryptBlock(M, offset2);
            this._des2.decryptBlock(M, offset2);
            this._des3.encryptBlock(M, offset2);
          },
          decryptBlock: function(M, offset2) {
            this._des3.decryptBlock(M, offset2);
            this._des2.encryptBlock(M, offset2);
            this._des1.decryptBlock(M, offset2);
          },
          keySize: 192 / 32,
          ivSize: 64 / 32,
          blockSize: 64 / 32
        });
        C.TripleDES = BlockCipher._createHelper(TripleDES);
      })();
      return CryptoJS2.TripleDES;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rc4.js
var require_rc4 = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rc4.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var StreamCipher = C_lib.StreamCipher;
        var C_algo = C.algo;
        var RC4 = C_algo.RC4 = StreamCipher.extend({
          _doReset: function() {
            var key = this._key;
            var keyWords = key.words;
            var keySigBytes = key.sigBytes;
            var S3 = this._S = [];
            for (var i5 = 0; i5 < 256; i5++) {
              S3[i5] = i5;
            }
            for (var i5 = 0, j = 0; i5 < 256; i5++) {
              var keyByteIndex = i5 % keySigBytes;
              var keyByte = keyWords[keyByteIndex >>> 2] >>> 24 - keyByteIndex % 4 * 8 & 255;
              j = (j + S3[i5] + keyByte) % 256;
              var t4 = S3[i5];
              S3[i5] = S3[j];
              S3[j] = t4;
            }
            this._i = this._j = 0;
          },
          _doProcessBlock: function(M, offset2) {
            M[offset2] ^= generateKeystreamWord.call(this);
          },
          keySize: 256 / 32,
          ivSize: 0
        });
        function generateKeystreamWord() {
          var S3 = this._S;
          var i5 = this._i;
          var j = this._j;
          var keystreamWord = 0;
          for (var n6 = 0; n6 < 4; n6++) {
            i5 = (i5 + 1) % 256;
            j = (j + S3[i5]) % 256;
            var t4 = S3[i5];
            S3[i5] = S3[j];
            S3[j] = t4;
            keystreamWord |= S3[(S3[i5] + S3[j]) % 256] << 24 - n6 * 8;
          }
          this._i = i5;
          this._j = j;
          return keystreamWord;
        }
        C.RC4 = StreamCipher._createHelper(RC4);
        var RC4Drop = C_algo.RC4Drop = RC4.extend({
          /**
           * Configuration options.
           *
           * @property {number} drop The number of keystream words to drop. Default 192
           */
          cfg: RC4.cfg.extend({
            drop: 192
          }),
          _doReset: function() {
            RC4._doReset.call(this);
            for (var i5 = this.cfg.drop; i5 > 0; i5--) {
              generateKeystreamWord.call(this);
            }
          }
        });
        C.RC4Drop = StreamCipher._createHelper(RC4Drop);
      })();
      return CryptoJS2.RC4;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit.js
var require_rabbit = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var StreamCipher = C_lib.StreamCipher;
        var C_algo = C.algo;
        var S3 = [];
        var C_ = [];
        var G2 = [];
        var Rabbit = C_algo.Rabbit = StreamCipher.extend({
          _doReset: function() {
            var K = this._key.words;
            var iv = this.cfg.iv;
            for (var i5 = 0; i5 < 4; i5++) {
              K[i5] = (K[i5] << 8 | K[i5] >>> 24) & 16711935 | (K[i5] << 24 | K[i5] >>> 8) & 4278255360;
            }
            var X = this._X = [
              K[0],
              K[3] << 16 | K[2] >>> 16,
              K[1],
              K[0] << 16 | K[3] >>> 16,
              K[2],
              K[1] << 16 | K[0] >>> 16,
              K[3],
              K[2] << 16 | K[1] >>> 16
            ];
            var C2 = this._C = [
              K[2] << 16 | K[2] >>> 16,
              K[0] & 4294901760 | K[1] & 65535,
              K[3] << 16 | K[3] >>> 16,
              K[1] & 4294901760 | K[2] & 65535,
              K[0] << 16 | K[0] >>> 16,
              K[2] & 4294901760 | K[3] & 65535,
              K[1] << 16 | K[1] >>> 16,
              K[3] & 4294901760 | K[0] & 65535
            ];
            this._b = 0;
            for (var i5 = 0; i5 < 4; i5++) {
              nextState.call(this);
            }
            for (var i5 = 0; i5 < 8; i5++) {
              C2[i5] ^= X[i5 + 4 & 7];
            }
            if (iv) {
              var IV = iv.words;
              var IV_0 = IV[0];
              var IV_1 = IV[1];
              var i0 = (IV_0 << 8 | IV_0 >>> 24) & 16711935 | (IV_0 << 24 | IV_0 >>> 8) & 4278255360;
              var i22 = (IV_1 << 8 | IV_1 >>> 24) & 16711935 | (IV_1 << 24 | IV_1 >>> 8) & 4278255360;
              var i1 = i0 >>> 16 | i22 & 4294901760;
              var i33 = i22 << 16 | i0 & 65535;
              C2[0] ^= i0;
              C2[1] ^= i1;
              C2[2] ^= i22;
              C2[3] ^= i33;
              C2[4] ^= i0;
              C2[5] ^= i1;
              C2[6] ^= i22;
              C2[7] ^= i33;
              for (var i5 = 0; i5 < 4; i5++) {
                nextState.call(this);
              }
            }
          },
          _doProcessBlock: function(M, offset2) {
            var X = this._X;
            nextState.call(this);
            S3[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16;
            S3[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16;
            S3[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16;
            S3[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16;
            for (var i5 = 0; i5 < 4; i5++) {
              S3[i5] = (S3[i5] << 8 | S3[i5] >>> 24) & 16711935 | (S3[i5] << 24 | S3[i5] >>> 8) & 4278255360;
              M[offset2 + i5] ^= S3[i5];
            }
          },
          blockSize: 128 / 32,
          ivSize: 64 / 32
        });
        function nextState() {
          var X = this._X;
          var C2 = this._C;
          for (var i5 = 0; i5 < 8; i5++) {
            C_[i5] = C2[i5];
          }
          C2[0] = C2[0] + 1295307597 + this._b | 0;
          C2[1] = C2[1] + 3545052371 + (C2[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0;
          C2[2] = C2[2] + 886263092 + (C2[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0;
          C2[3] = C2[3] + 1295307597 + (C2[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0;
          C2[4] = C2[4] + 3545052371 + (C2[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0;
          C2[5] = C2[5] + 886263092 + (C2[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0;
          C2[6] = C2[6] + 1295307597 + (C2[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0;
          C2[7] = C2[7] + 3545052371 + (C2[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0;
          this._b = C2[7] >>> 0 < C_[7] >>> 0 ? 1 : 0;
          for (var i5 = 0; i5 < 8; i5++) {
            var gx = X[i5] + C2[i5];
            var ga = gx & 65535;
            var gb = gx >>> 16;
            var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb;
            var gl = ((gx & 4294901760) * gx | 0) + ((gx & 65535) * gx | 0);
            G2[i5] = gh ^ gl;
          }
          X[0] = G2[0] + (G2[7] << 16 | G2[7] >>> 16) + (G2[6] << 16 | G2[6] >>> 16) | 0;
          X[1] = G2[1] + (G2[0] << 8 | G2[0] >>> 24) + G2[7] | 0;
          X[2] = G2[2] + (G2[1] << 16 | G2[1] >>> 16) + (G2[0] << 16 | G2[0] >>> 16) | 0;
          X[3] = G2[3] + (G2[2] << 8 | G2[2] >>> 24) + G2[1] | 0;
          X[4] = G2[4] + (G2[3] << 16 | G2[3] >>> 16) + (G2[2] << 16 | G2[2] >>> 16) | 0;
          X[5] = G2[5] + (G2[4] << 8 | G2[4] >>> 24) + G2[3] | 0;
          X[6] = G2[6] + (G2[5] << 16 | G2[5] >>> 16) + (G2[4] << 16 | G2[4] >>> 16) | 0;
          X[7] = G2[7] + (G2[6] << 8 | G2[6] >>> 24) + G2[5] | 0;
        }
        C.Rabbit = StreamCipher._createHelper(Rabbit);
      })();
      return CryptoJS2.Rabbit;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit-legacy.js
var require_rabbit_legacy = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit-legacy.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var StreamCipher = C_lib.StreamCipher;
        var C_algo = C.algo;
        var S3 = [];
        var C_ = [];
        var G2 = [];
        var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({
          _doReset: function() {
            var K = this._key.words;
            var iv = this.cfg.iv;
            var X = this._X = [
              K[0],
              K[3] << 16 | K[2] >>> 16,
              K[1],
              K[0] << 16 | K[3] >>> 16,
              K[2],
              K[1] << 16 | K[0] >>> 16,
              K[3],
              K[2] << 16 | K[1] >>> 16
            ];
            var C2 = this._C = [
              K[2] << 16 | K[2] >>> 16,
              K[0] & 4294901760 | K[1] & 65535,
              K[3] << 16 | K[3] >>> 16,
              K[1] & 4294901760 | K[2] & 65535,
              K[0] << 16 | K[0] >>> 16,
              K[2] & 4294901760 | K[3] & 65535,
              K[1] << 16 | K[1] >>> 16,
              K[3] & 4294901760 | K[0] & 65535
            ];
            this._b = 0;
            for (var i5 = 0; i5 < 4; i5++) {
              nextState.call(this);
            }
            for (var i5 = 0; i5 < 8; i5++) {
              C2[i5] ^= X[i5 + 4 & 7];
            }
            if (iv) {
              var IV = iv.words;
              var IV_0 = IV[0];
              var IV_1 = IV[1];
              var i0 = (IV_0 << 8 | IV_0 >>> 24) & 16711935 | (IV_0 << 24 | IV_0 >>> 8) & 4278255360;
              var i22 = (IV_1 << 8 | IV_1 >>> 24) & 16711935 | (IV_1 << 24 | IV_1 >>> 8) & 4278255360;
              var i1 = i0 >>> 16 | i22 & 4294901760;
              var i33 = i22 << 16 | i0 & 65535;
              C2[0] ^= i0;
              C2[1] ^= i1;
              C2[2] ^= i22;
              C2[3] ^= i33;
              C2[4] ^= i0;
              C2[5] ^= i1;
              C2[6] ^= i22;
              C2[7] ^= i33;
              for (var i5 = 0; i5 < 4; i5++) {
                nextState.call(this);
              }
            }
          },
          _doProcessBlock: function(M, offset2) {
            var X = this._X;
            nextState.call(this);
            S3[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16;
            S3[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16;
            S3[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16;
            S3[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16;
            for (var i5 = 0; i5 < 4; i5++) {
              S3[i5] = (S3[i5] << 8 | S3[i5] >>> 24) & 16711935 | (S3[i5] << 24 | S3[i5] >>> 8) & 4278255360;
              M[offset2 + i5] ^= S3[i5];
            }
          },
          blockSize: 128 / 32,
          ivSize: 64 / 32
        });
        function nextState() {
          var X = this._X;
          var C2 = this._C;
          for (var i5 = 0; i5 < 8; i5++) {
            C_[i5] = C2[i5];
          }
          C2[0] = C2[0] + 1295307597 + this._b | 0;
          C2[1] = C2[1] + 3545052371 + (C2[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0;
          C2[2] = C2[2] + 886263092 + (C2[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0;
          C2[3] = C2[3] + 1295307597 + (C2[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0;
          C2[4] = C2[4] + 3545052371 + (C2[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0;
          C2[5] = C2[5] + 886263092 + (C2[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0;
          C2[6] = C2[6] + 1295307597 + (C2[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0;
          C2[7] = C2[7] + 3545052371 + (C2[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0;
          this._b = C2[7] >>> 0 < C_[7] >>> 0 ? 1 : 0;
          for (var i5 = 0; i5 < 8; i5++) {
            var gx = X[i5] + C2[i5];
            var ga = gx & 65535;
            var gb = gx >>> 16;
            var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb;
            var gl = ((gx & 4294901760) * gx | 0) + ((gx & 65535) * gx | 0);
            G2[i5] = gh ^ gl;
          }
          X[0] = G2[0] + (G2[7] << 16 | G2[7] >>> 16) + (G2[6] << 16 | G2[6] >>> 16) | 0;
          X[1] = G2[1] + (G2[0] << 8 | G2[0] >>> 24) + G2[7] | 0;
          X[2] = G2[2] + (G2[1] << 16 | G2[1] >>> 16) + (G2[0] << 16 | G2[0] >>> 16) | 0;
          X[3] = G2[3] + (G2[2] << 8 | G2[2] >>> 24) + G2[1] | 0;
          X[4] = G2[4] + (G2[3] << 16 | G2[3] >>> 16) + (G2[2] << 16 | G2[2] >>> 16) | 0;
          X[5] = G2[5] + (G2[4] << 8 | G2[4] >>> 24) + G2[3] | 0;
          X[6] = G2[6] + (G2[5] << 16 | G2[5] >>> 16) + (G2[4] << 16 | G2[4] >>> 16) | 0;
          X[7] = G2[7] + (G2[6] << 8 | G2[6] >>> 24) + G2[5] | 0;
        }
        C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);
      })();
      return CryptoJS2.RabbitLegacy;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/blowfish.js
var require_blowfish = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/blowfish.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory2);
      } else {
        factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      (function() {
        var C = CryptoJS2;
        var C_lib = C.lib;
        var BlockCipher = C_lib.BlockCipher;
        var C_algo = C.algo;
        const N = 16;
        const ORIG_P = [
          608135816,
          2242054355,
          320440878,
          57701188,
          2752067618,
          698298832,
          137296536,
          3964562569,
          1160258022,
          953160567,
          3193202383,
          887688300,
          3232508343,
          3380367581,
          1065670069,
          3041331479,
          2450970073,
          2306472731
        ];
        const ORIG_S = [
          [
            3509652390,
            2564797868,
            805139163,
            3491422135,
            3101798381,
            1780907670,
            3128725573,
            4046225305,
            614570311,
            3012652279,
            134345442,
            2240740374,
            1667834072,
            1901547113,
            2757295779,
            4103290238,
            227898511,
            1921955416,
            1904987480,
            2182433518,
            2069144605,
            3260701109,
            2620446009,
            720527379,
            3318853667,
            677414384,
            3393288472,
            3101374703,
            2390351024,
            1614419982,
            1822297739,
            2954791486,
            3608508353,
            3174124327,
            2024746970,
            1432378464,
            3864339955,
            2857741204,
            1464375394,
            1676153920,
            1439316330,
            715854006,
            3033291828,
            289532110,
            2706671279,
            2087905683,
            3018724369,
            1668267050,
            732546397,
            1947742710,
            3462151702,
            2609353502,
            2950085171,
            1814351708,
            2050118529,
            680887927,
            999245976,
            1800124847,
            3300911131,
            1713906067,
            1641548236,
            4213287313,
            1216130144,
            1575780402,
            4018429277,
            3917837745,
            3693486850,
            3949271944,
            596196993,
            3549867205,
            258830323,
            2213823033,
            772490370,
            2760122372,
            1774776394,
            2652871518,
            566650946,
            4142492826,
            1728879713,
            2882767088,
            1783734482,
            3629395816,
            2517608232,
            2874225571,
            1861159788,
            326777828,
            3124490320,
            2130389656,
            2716951837,
            967770486,
            1724537150,
            2185432712,
            2364442137,
            1164943284,
            2105845187,
            998989502,
            3765401048,
            2244026483,
            1075463327,
            1455516326,
            1322494562,
            910128902,
            469688178,
            1117454909,
            936433444,
            3490320968,
            3675253459,
            1240580251,
            122909385,
            2157517691,
            634681816,
            4142456567,
            3825094682,
            3061402683,
            2540495037,
            79693498,
            3249098678,
            1084186820,
            1583128258,
            426386531,
            1761308591,
            1047286709,
            322548459,
            995290223,
            1845252383,
            2603652396,
            3431023940,
            2942221577,
            3202600964,
            3727903485,
            1712269319,
            422464435,
            3234572375,
            1170764815,
            3523960633,
            3117677531,
            1434042557,
            442511882,
            3600875718,
            1076654713,
            1738483198,
            4213154764,
            2393238008,
            3677496056,
            1014306527,
            4251020053,
            793779912,
            2902807211,
            842905082,
            4246964064,
            1395751752,
            1040244610,
            2656851899,
            3396308128,
            445077038,
            3742853595,
            3577915638,
            679411651,
            2892444358,
            2354009459,
            1767581616,
            3150600392,
            3791627101,
            3102740896,
            284835224,
            4246832056,
            1258075500,
            768725851,
            2589189241,
            3069724005,
            3532540348,
            1274779536,
            3789419226,
            2764799539,
            1660621633,
            3471099624,
            4011903706,
            913787905,
            3497959166,
            737222580,
            2514213453,
            2928710040,
            3937242737,
            1804850592,
            3499020752,
            2949064160,
            2386320175,
            2390070455,
            2415321851,
            4061277028,
            2290661394,
            2416832540,
            1336762016,
            1754252060,
            3520065937,
            3014181293,
            791618072,
            3188594551,
            3933548030,
            2332172193,
            3852520463,
            3043980520,
            413987798,
            3465142937,
            3030929376,
            4245938359,
            2093235073,
            3534596313,
            375366246,
            2157278981,
            2479649556,
            555357303,
            3870105701,
            2008414854,
            3344188149,
            4221384143,
            3956125452,
            2067696032,
            3594591187,
            2921233993,
            2428461,
            544322398,
            577241275,
            1471733935,
            610547355,
            4027169054,
            1432588573,
            1507829418,
            2025931657,
            3646575487,
            545086370,
            48609733,
            2200306550,
            1653985193,
            298326376,
            1316178497,
            3007786442,
            2064951626,
            458293330,
            2589141269,
            3591329599,
            3164325604,
            727753846,
            2179363840,
            146436021,
            1461446943,
            4069977195,
            705550613,
            3059967265,
            3887724982,
            4281599278,
            3313849956,
            1404054877,
            2845806497,
            146425753,
            1854211946
          ],
          [
            1266315497,
            3048417604,
            3681880366,
            3289982499,
            290971e4,
            1235738493,
            2632868024,
            2414719590,
            3970600049,
            1771706367,
            1449415276,
            3266420449,
            422970021,
            1963543593,
            2690192192,
            3826793022,
            1062508698,
            1531092325,
            1804592342,
            2583117782,
            2714934279,
            4024971509,
            1294809318,
            4028980673,
            1289560198,
            2221992742,
            1669523910,
            35572830,
            157838143,
            1052438473,
            1016535060,
            1802137761,
            1753167236,
            1386275462,
            3080475397,
            2857371447,
            1040679964,
            2145300060,
            2390574316,
            1461121720,
            2956646967,
            4031777805,
            4028374788,
            33600511,
            2920084762,
            1018524850,
            629373528,
            3691585981,
            3515945977,
            2091462646,
            2486323059,
            586499841,
            988145025,
            935516892,
            3367335476,
            2599673255,
            2839830854,
            265290510,
            3972581182,
            2759138881,
            3795373465,
            1005194799,
            847297441,
            406762289,
            1314163512,
            1332590856,
            1866599683,
            4127851711,
            750260880,
            613907577,
            1450815602,
            3165620655,
            3734664991,
            3650291728,
            3012275730,
            3704569646,
            1427272223,
            778793252,
            1343938022,
            2676280711,
            2052605720,
            1946737175,
            3164576444,
            3914038668,
            3967478842,
            3682934266,
            1661551462,
            3294938066,
            4011595847,
            840292616,
            3712170807,
            616741398,
            312560963,
            711312465,
            1351876610,
            322626781,
            1910503582,
            271666773,
            2175563734,
            1594956187,
            70604529,
            3617834859,
            1007753275,
            1495573769,
            4069517037,
            2549218298,
            2663038764,
            504708206,
            2263041392,
            3941167025,
            2249088522,
            1514023603,
            1998579484,
            1312622330,
            694541497,
            2582060303,
            2151582166,
            1382467621,
            776784248,
            2618340202,
            3323268794,
            2497899128,
            2784771155,
            503983604,
            4076293799,
            907881277,
            423175695,
            432175456,
            1378068232,
            4145222326,
            3954048622,
            3938656102,
            3820766613,
            2793130115,
            2977904593,
            26017576,
            3274890735,
            3194772133,
            1700274565,
            1756076034,
            4006520079,
            3677328699,
            720338349,
            1533947780,
            354530856,
            688349552,
            3973924725,
            1637815568,
            332179504,
            3949051286,
            53804574,
            2852348879,
            3044236432,
            1282449977,
            3583942155,
            3416972820,
            4006381244,
            1617046695,
            2628476075,
            3002303598,
            1686838959,
            431878346,
            2686675385,
            1700445008,
            1080580658,
            1009431731,
            832498133,
            3223435511,
            2605976345,
            2271191193,
            2516031870,
            1648197032,
            4164389018,
            2548247927,
            300782431,
            375919233,
            238389289,
            3353747414,
            2531188641,
            2019080857,
            1475708069,
            455242339,
            2609103871,
            448939670,
            3451063019,
            1395535956,
            2413381860,
            1841049896,
            1491858159,
            885456874,
            4264095073,
            4001119347,
            1565136089,
            3898914787,
            1108368660,
            540939232,
            1173283510,
            2745871338,
            3681308437,
            4207628240,
            3343053890,
            4016749493,
            1699691293,
            1103962373,
            3625875870,
            2256883143,
            3830138730,
            1031889488,
            3479347698,
            1535977030,
            4236805024,
            3251091107,
            2132092099,
            1774941330,
            1199868427,
            1452454533,
            157007616,
            2904115357,
            342012276,
            595725824,
            1480756522,
            206960106,
            497939518,
            591360097,
            863170706,
            2375253569,
            3596610801,
            1814182875,
            2094937945,
            3421402208,
            1082520231,
            3463918190,
            2785509508,
            435703966,
            3908032597,
            1641649973,
            2842273706,
            3305899714,
            1510255612,
            2148256476,
            2655287854,
            3276092548,
            4258621189,
            236887753,
            3681803219,
            274041037,
            1734335097,
            3815195456,
            3317970021,
            1899903192,
            1026095262,
            4050517792,
            356393447,
            2410691914,
            3873677099,
            3682840055
          ],
          [
            3913112168,
            2491498743,
            4132185628,
            2489919796,
            1091903735,
            1979897079,
            3170134830,
            3567386728,
            3557303409,
            857797738,
            1136121015,
            1342202287,
            507115054,
            2535736646,
            337727348,
            3213592640,
            1301675037,
            2528481711,
            1895095763,
            1721773893,
            3216771564,
            62756741,
            2142006736,
            835421444,
            2531993523,
            1442658625,
            3659876326,
            2882144922,
            676362277,
            1392781812,
            170690266,
            3921047035,
            1759253602,
            3611846912,
            1745797284,
            664899054,
            1329594018,
            3901205900,
            3045908486,
            2062866102,
            2865634940,
            3543621612,
            3464012697,
            1080764994,
            553557557,
            3656615353,
            3996768171,
            991055499,
            499776247,
            1265440854,
            648242737,
            3940784050,
            980351604,
            3713745714,
            1749149687,
            3396870395,
            4211799374,
            3640570775,
            1161844396,
            3125318951,
            1431517754,
            545492359,
            4268468663,
            3499529547,
            1437099964,
            2702547544,
            3433638243,
            2581715763,
            2787789398,
            1060185593,
            1593081372,
            2418618748,
            4260947970,
            69676912,
            2159744348,
            86519011,
            2512459080,
            3838209314,
            1220612927,
            3339683548,
            133810670,
            1090789135,
            1078426020,
            1569222167,
            845107691,
            3583754449,
            4072456591,
            1091646820,
            628848692,
            1613405280,
            3757631651,
            526609435,
            236106946,
            48312990,
            2942717905,
            3402727701,
            1797494240,
            859738849,
            992217954,
            4005476642,
            2243076622,
            3870952857,
            3732016268,
            765654824,
            3490871365,
            2511836413,
            1685915746,
            3888969200,
            1414112111,
            2273134842,
            3281911079,
            4080962846,
            172450625,
            2569994100,
            980381355,
            4109958455,
            2819808352,
            2716589560,
            2568741196,
            3681446669,
            3329971472,
            1835478071,
            660984891,
            3704678404,
            4045999559,
            3422617507,
            3040415634,
            1762651403,
            1719377915,
            3470491036,
            2693910283,
            3642056355,
            3138596744,
            1364962596,
            2073328063,
            1983633131,
            926494387,
            3423689081,
            2150032023,
            4096667949,
            1749200295,
            3328846651,
            309677260,
            2016342300,
            1779581495,
            3079819751,
            111262694,
            1274766160,
            443224088,
            298511866,
            1025883608,
            3806446537,
            1145181785,
            168956806,
            3641502830,
            3584813610,
            1689216846,
            3666258015,
            3200248200,
            1692713982,
            2646376535,
            4042768518,
            1618508792,
            1610833997,
            3523052358,
            4130873264,
            2001055236,
            3610705100,
            2202168115,
            4028541809,
            2961195399,
            1006657119,
            2006996926,
            3186142756,
            1430667929,
            3210227297,
            1314452623,
            4074634658,
            4101304120,
            2273951170,
            1399257539,
            3367210612,
            3027628629,
            1190975929,
            2062231137,
            2333990788,
            2221543033,
            2438960610,
            1181637006,
            548689776,
            2362791313,
            3372408396,
            3104550113,
            3145860560,
            296247880,
            1970579870,
            3078560182,
            3769228297,
            1714227617,
            3291629107,
            3898220290,
            166772364,
            1251581989,
            493813264,
            448347421,
            195405023,
            2709975567,
            677966185,
            3703036547,
            1463355134,
            2715995803,
            1338867538,
            1343315457,
            2802222074,
            2684532164,
            233230375,
            2599980071,
            2000651841,
            3277868038,
            1638401717,
            4028070440,
            3237316320,
            6314154,
            819756386,
            300326615,
            590932579,
            1405279636,
            3267499572,
            3150704214,
            2428286686,
            3959192993,
            3461946742,
            1862657033,
            1266418056,
            963775037,
            2089974820,
            2263052895,
            1917689273,
            448879540,
            3550394620,
            3981727096,
            150775221,
            3627908307,
            1303187396,
            508620638,
            2975983352,
            2726630617,
            1817252668,
            1876281319,
            1457606340,
            908771278,
            3720792119,
            3617206836,
            2455994898,
            1729034894,
            1080033504
          ],
          [
            976866871,
            3556439503,
            2881648439,
            1522871579,
            1555064734,
            1336096578,
            3548522304,
            2579274686,
            3574697629,
            3205460757,
            3593280638,
            3338716283,
            3079412587,
            564236357,
            2993598910,
            1781952180,
            1464380207,
            3163844217,
            3332601554,
            1699332808,
            1393555694,
            1183702653,
            3581086237,
            1288719814,
            691649499,
            2847557200,
            2895455976,
            3193889540,
            2717570544,
            1781354906,
            1676643554,
            2592534050,
            3230253752,
            1126444790,
            2770207658,
            2633158820,
            2210423226,
            2615765581,
            2414155088,
            3127139286,
            673620729,
            2805611233,
            1269405062,
            4015350505,
            3341807571,
            4149409754,
            1057255273,
            2012875353,
            2162469141,
            2276492801,
            2601117357,
            993977747,
            3918593370,
            2654263191,
            753973209,
            36408145,
            2530585658,
            25011837,
            3520020182,
            2088578344,
            530523599,
            2918365339,
            1524020338,
            1518925132,
            3760827505,
            3759777254,
            1202760957,
            3985898139,
            3906192525,
            674977740,
            4174734889,
            2031300136,
            2019492241,
            3983892565,
            4153806404,
            3822280332,
            352677332,
            2297720250,
            60907813,
            90501309,
            3286998549,
            1016092578,
            2535922412,
            2839152426,
            457141659,
            509813237,
            4120667899,
            652014361,
            1966332200,
            2975202805,
            55981186,
            2327461051,
            676427537,
            3255491064,
            2882294119,
            3433927263,
            1307055953,
            942726286,
            933058658,
            2468411793,
            3933900994,
            4215176142,
            1361170020,
            2001714738,
            2830558078,
            3274259782,
            1222529897,
            1679025792,
            2729314320,
            3714953764,
            1770335741,
            151462246,
            3013232138,
            1682292957,
            1483529935,
            471910574,
            1539241949,
            458788160,
            3436315007,
            1807016891,
            3718408830,
            978976581,
            1043663428,
            3165965781,
            1927990952,
            4200891579,
            2372276910,
            3208408903,
            3533431907,
            1412390302,
            2931980059,
            4132332400,
            1947078029,
            3881505623,
            4168226417,
            2941484381,
            1077988104,
            1320477388,
            886195818,
            18198404,
            3786409e3,
            2509781533,
            112762804,
            3463356488,
            1866414978,
            891333506,
            18488651,
            661792760,
            1628790961,
            3885187036,
            3141171499,
            876946877,
            2693282273,
            1372485963,
            791857591,
            2686433993,
            3759982718,
            3167212022,
            3472953795,
            2716379847,
            445679433,
            3561995674,
            3504004811,
            3574258232,
            54117162,
            3331405415,
            2381918588,
            3769707343,
            4154350007,
            1140177722,
            4074052095,
            668550556,
            3214352940,
            367459370,
            261225585,
            2610173221,
            4209349473,
            3468074219,
            3265815641,
            314222801,
            3066103646,
            3808782860,
            282218597,
            3406013506,
            3773591054,
            379116347,
            1285071038,
            846784868,
            2669647154,
            3771962079,
            3550491691,
            2305946142,
            453669953,
            1268987020,
            3317592352,
            3279303384,
            3744833421,
            2610507566,
            3859509063,
            266596637,
            3847019092,
            517658769,
            3462560207,
            3443424879,
            370717030,
            4247526661,
            2224018117,
            4143653529,
            4112773975,
            2788324899,
            2477274417,
            1456262402,
            2901442914,
            1517677493,
            1846949527,
            2295493580,
            3734397586,
            2176403920,
            1280348187,
            1908823572,
            3871786941,
            846861322,
            1172426758,
            3287448474,
            3383383037,
            1655181056,
            3139813346,
            901632758,
            1897031941,
            2986607138,
            3066810236,
            3447102507,
            1393639104,
            373351379,
            950779232,
            625454576,
            3124240540,
            4148612726,
            2007998917,
            544563296,
            2244738638,
            2330496472,
            2058025392,
            1291430526,
            424198748,
            50039436,
            29584100,
            3605783033,
            2429876329,
            2791104160,
            1057563949,
            3255363231,
            3075367218,
            3463963227,
            1469046755,
            985887462
          ]
        ];
        var BLOWFISH_CTX = {
          pbox: [],
          sbox: []
        };
        function F(ctx, x) {
          let a5 = x >> 24 & 255;
          let b3 = x >> 16 & 255;
          let c6 = x >> 8 & 255;
          let d3 = x & 255;
          let y3 = ctx.sbox[0][a5] + ctx.sbox[1][b3];
          y3 = y3 ^ ctx.sbox[2][c6];
          y3 = y3 + ctx.sbox[3][d3];
          return y3;
        }
        function BlowFish_Encrypt(ctx, left, right) {
          let Xl = left;
          let Xr = right;
          let temp;
          for (let i5 = 0; i5 < N; ++i5) {
            Xl = Xl ^ ctx.pbox[i5];
            Xr = F(ctx, Xl) ^ Xr;
            temp = Xl;
            Xl = Xr;
            Xr = temp;
          }
          temp = Xl;
          Xl = Xr;
          Xr = temp;
          Xr = Xr ^ ctx.pbox[N];
          Xl = Xl ^ ctx.pbox[N + 1];
          return { left: Xl, right: Xr };
        }
        function BlowFish_Decrypt(ctx, left, right) {
          let Xl = left;
          let Xr = right;
          let temp;
          for (let i5 = N + 1; i5 > 1; --i5) {
            Xl = Xl ^ ctx.pbox[i5];
            Xr = F(ctx, Xl) ^ Xr;
            temp = Xl;
            Xl = Xr;
            Xr = temp;
          }
          temp = Xl;
          Xl = Xr;
          Xr = temp;
          Xr = Xr ^ ctx.pbox[1];
          Xl = Xl ^ ctx.pbox[0];
          return { left: Xl, right: Xr };
        }
        function BlowFishInit(ctx, key, keysize) {
          for (let Row = 0; Row < 4; Row++) {
            ctx.sbox[Row] = [];
            for (let Col = 0; Col < 256; Col++) {
              ctx.sbox[Row][Col] = ORIG_S[Row][Col];
            }
          }
          let keyIndex = 0;
          for (let index2 = 0; index2 < N + 2; index2++) {
            ctx.pbox[index2] = ORIG_P[index2] ^ key[keyIndex];
            keyIndex++;
            if (keyIndex >= keysize) {
              keyIndex = 0;
            }
          }
          let Data1 = 0;
          let Data2 = 0;
          let res = 0;
          for (let i5 = 0; i5 < N + 2; i5 += 2) {
            res = BlowFish_Encrypt(ctx, Data1, Data2);
            Data1 = res.left;
            Data2 = res.right;
            ctx.pbox[i5] = Data1;
            ctx.pbox[i5 + 1] = Data2;
          }
          for (let i5 = 0; i5 < 4; i5++) {
            for (let j = 0; j < 256; j += 2) {
              res = BlowFish_Encrypt(ctx, Data1, Data2);
              Data1 = res.left;
              Data2 = res.right;
              ctx.sbox[i5][j] = Data1;
              ctx.sbox[i5][j + 1] = Data2;
            }
          }
          return true;
        }
        var Blowfish = C_algo.Blowfish = BlockCipher.extend({
          _doReset: function() {
            if (this._keyPriorReset === this._key) {
              return;
            }
            var key = this._keyPriorReset = this._key;
            var keyWords = key.words;
            var keySize = key.sigBytes / 4;
            BlowFishInit(BLOWFISH_CTX, keyWords, keySize);
          },
          encryptBlock: function(M, offset2) {
            var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset2], M[offset2 + 1]);
            M[offset2] = res.left;
            M[offset2 + 1] = res.right;
          },
          decryptBlock: function(M, offset2) {
            var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset2], M[offset2 + 1]);
            M[offset2] = res.left;
            M[offset2 + 1] = res.right;
          },
          blockSize: 64 / 32,
          keySize: 128 / 32,
          ivSize: 64 / 32
        });
        C.Blowfish = BlockCipher._createHelper(Blowfish);
      })();
      return CryptoJS2.Blowfish;
    });
  }
});

// ../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/index.js
var require_crypto_js = __commonJS({
  "../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/index.js"(exports, module) {
    (function(root, factory2, undef) {
      if (typeof exports === "object") {
        module.exports = exports = factory2(require_core2(), require_x64_core(), require_lib_typedarrays(), require_enc_utf16(), require_enc_base64(), require_enc_base64url(), require_md5(), require_sha1(), require_sha256(), require_sha224(), require_sha512(), require_sha384(), require_sha3(), require_ripemd160(), require_hmac(), require_pbkdf2(), require_evpkdf(), require_cipher_core(), require_mode_cfb(), require_mode_ctr(), require_mode_ctr_gladman(), require_mode_ofb(), require_mode_ecb(), require_pad_ansix923(), require_pad_iso10126(), require_pad_iso97971(), require_pad_zeropadding(), require_pad_nopadding(), require_format_hex(), require_aes(), require_tripledes(), require_rc4(), require_rabbit(), require_rabbit_legacy(), require_blowfish());
      } else if (typeof define === "function" && define.amd) {
        define(["./core", "./x64-core", "./lib-typedarrays", "./enc-utf16", "./enc-base64", "./enc-base64url", "./md5", "./sha1", "./sha256", "./sha224", "./sha512", "./sha384", "./sha3", "./ripemd160", "./hmac", "./pbkdf2", "./evpkdf", "./cipher-core", "./mode-cfb", "./mode-ctr", "./mode-ctr-gladman", "./mode-ofb", "./mode-ecb", "./pad-ansix923", "./pad-iso10126", "./pad-iso97971", "./pad-zeropadding", "./pad-nopadding", "./format-hex", "./aes", "./tripledes", "./rc4", "./rabbit", "./rabbit-legacy", "./blowfish"], factory2);
      } else {
        root.CryptoJS = factory2(root.CryptoJS);
      }
    })(exports, function(CryptoJS2) {
      return CryptoJS2;
    });
  }
});

// ../../node_modules/.pnpm/abs-svg-path@0.1.1/node_modules/abs-svg-path/index.js
var require_abs_svg_path = __commonJS({
  "../../node_modules/.pnpm/abs-svg-path@0.1.1/node_modules/abs-svg-path/index.js"(exports, module) {
    module.exports = absolutize;
    function absolutize(path3) {
      var startX = 0;
      var startY = 0;
      var x = 0;
      var y3 = 0;
      return path3.map(function(seg) {
        seg = seg.slice();
        var type = seg[0];
        var command = type.toUpperCase();
        if (type != command) {
          seg[0] = command;
          switch (type) {
            case "a":
              seg[6] += x;
              seg[7] += y3;
              break;
            case "v":
              seg[1] += y3;
              break;
            case "h":
              seg[1] += x;
              break;
            default:
              for (var i5 = 1; i5 < seg.length; ) {
                seg[i5++] += x;
                seg[i5++] += y3;
              }
          }
        }
        switch (command) {
          case "Z":
            x = startX;
            y3 = startY;
            break;
          case "H":
            x = seg[1];
            break;
          case "V":
            y3 = seg[1];
            break;
          case "M":
            x = startX = seg[1];
            y3 = startY = seg[2];
            break;
          default:
            x = seg[seg.length - 2];
            y3 = seg[seg.length - 1];
        }
        return seg;
      });
    }
  }
});

// ../../node_modules/.pnpm/parse-svg-path@0.1.2/node_modules/parse-svg-path/index.js
var require_parse_svg_path = __commonJS({
  "../../node_modules/.pnpm/parse-svg-path@0.1.2/node_modules/parse-svg-path/index.js"(exports, module) {
    module.exports = parse3;
    var length2 = { a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0 };
    var segment = /([astvzqmhlc])([^astvzqmhlc]*)/ig;
    function parse3(path3) {
      var data2 = [];
      path3.replace(segment, function(_, command, args) {
        var type = command.toLowerCase();
        args = parseValues(args);
        if (type == "m" && args.length > 2) {
          data2.push([command].concat(args.splice(0, 2)));
          type = "l";
          command = command == "m" ? "l" : "L";
        }
        while (true) {
          if (args.length == length2[type]) {
            args.unshift(command);
            return data2.push(args);
          }
          if (args.length < length2[type]) throw new Error("malformed path data");
          data2.push([command].concat(args.splice(0, length2[type])));
        }
      });
      return data2;
    }
    var number3 = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;
    function parseValues(args) {
      var numbers = args.match(number3);
      return numbers ? numbers.map(Number) : [];
    }
  }
});

// ../../node_modules/.pnpm/svg-arc-to-cubic-bezier@3.2.0/node_modules/svg-arc-to-cubic-bezier/cjs/index.js
var require_cjs17 = __commonJS({
  "../../node_modules/.pnpm/svg-arc-to-cubic-bezier@3.2.0/node_modules/svg-arc-to-cubic-bezier/cjs/index.js"(exports, module) {
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    var _slicedToArray = /* @__PURE__ */ (function() {
      function sliceIterator(arr, i5) {
        var _arr = [];
        var _n = true;
        var _d = false;
        var _e = void 0;
        try {
          for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
            _arr.push(_s.value);
            if (i5 && _arr.length === i5) break;
          }
        } catch (err2) {
          _d = true;
          _e = err2;
        } finally {
          try {
            if (!_n && _i["return"]) _i["return"]();
          } finally {
            if (_d) throw _e;
          }
        }
        return _arr;
      }
      return function(arr, i5) {
        if (Array.isArray(arr)) {
          return arr;
        } else if (Symbol.iterator in Object(arr)) {
          return sliceIterator(arr, i5);
        } else {
          throw new TypeError("Invalid attempt to destructure non-iterable instance");
        }
      };
    })();
    var TAU = Math.PI * 2;
    var mapToEllipse = function mapToEllipse2(_ref, rx, ry, cosphi, sinphi, centerx, centery) {
      var x = _ref.x, y3 = _ref.y;
      x *= rx;
      y3 *= ry;
      var xp = cosphi * x - sinphi * y3;
      var yp = sinphi * x + cosphi * y3;
      return {
        x: xp + centerx,
        y: yp + centery
      };
    };
    var approxUnitArc = function approxUnitArc2(ang1, ang2) {
      var a5 = ang2 === 1.5707963267948966 ? 0.551915024494 : ang2 === -1.5707963267948966 ? -0.551915024494 : 4 / 3 * Math.tan(ang2 / 4);
      var x1 = Math.cos(ang1);
      var y1 = Math.sin(ang1);
      var x2 = Math.cos(ang1 + ang2);
      var y22 = Math.sin(ang1 + ang2);
      return [{
        x: x1 - y1 * a5,
        y: y1 + x1 * a5
      }, {
        x: x2 + y22 * a5,
        y: y22 - x2 * a5
      }, {
        x: x2,
        y: y22
      }];
    };
    var vectorAngle = function vectorAngle2(ux, uy, vx, vy) {
      var sign = ux * vy - uy * vx < 0 ? -1 : 1;
      var dot = ux * vx + uy * vy;
      if (dot > 1) {
        dot = 1;
      }
      if (dot < -1) {
        dot = -1;
      }
      return sign * Math.acos(dot);
    };
    var getArcCenter = function getArcCenter2(px2, py2, cx2, cy2, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp) {
      var rxsq = Math.pow(rx, 2);
      var rysq = Math.pow(ry, 2);
      var pxpsq = Math.pow(pxp, 2);
      var pypsq = Math.pow(pyp, 2);
      var radicant = rxsq * rysq - rxsq * pypsq - rysq * pxpsq;
      if (radicant < 0) {
        radicant = 0;
      }
      radicant /= rxsq * pypsq + rysq * pxpsq;
      radicant = Math.sqrt(radicant) * (largeArcFlag === sweepFlag ? -1 : 1);
      var centerxp = radicant * rx / ry * pyp;
      var centeryp = radicant * -ry / rx * pxp;
      var centerx = cosphi * centerxp - sinphi * centeryp + (px2 + cx2) / 2;
      var centery = sinphi * centerxp + cosphi * centeryp + (py2 + cy2) / 2;
      var vx1 = (pxp - centerxp) / rx;
      var vy1 = (pyp - centeryp) / ry;
      var vx2 = (-pxp - centerxp) / rx;
      var vy2 = (-pyp - centeryp) / ry;
      var ang1 = vectorAngle(1, 0, vx1, vy1);
      var ang2 = vectorAngle(vx1, vy1, vx2, vy2);
      if (sweepFlag === 0 && ang2 > 0) {
        ang2 -= TAU;
      }
      if (sweepFlag === 1 && ang2 < 0) {
        ang2 += TAU;
      }
      return [centerx, centery, ang1, ang2];
    };
    var arcToBezier = function arcToBezier2(_ref2) {
      var px2 = _ref2.px, py2 = _ref2.py, cx2 = _ref2.cx, cy2 = _ref2.cy, rx = _ref2.rx, ry = _ref2.ry, _ref2$xAxisRotation = _ref2.xAxisRotation, xAxisRotation = _ref2$xAxisRotation === void 0 ? 0 : _ref2$xAxisRotation, _ref2$largeArcFlag = _ref2.largeArcFlag, largeArcFlag = _ref2$largeArcFlag === void 0 ? 0 : _ref2$largeArcFlag, _ref2$sweepFlag = _ref2.sweepFlag, sweepFlag = _ref2$sweepFlag === void 0 ? 0 : _ref2$sweepFlag;
      var curves = [];
      if (rx === 0 || ry === 0) {
        return [];
      }
      var sinphi = Math.sin(xAxisRotation * TAU / 360);
      var cosphi = Math.cos(xAxisRotation * TAU / 360);
      var pxp = cosphi * (px2 - cx2) / 2 + sinphi * (py2 - cy2) / 2;
      var pyp = -sinphi * (px2 - cx2) / 2 + cosphi * (py2 - cy2) / 2;
      if (pxp === 0 && pyp === 0) {
        return [];
      }
      rx = Math.abs(rx);
      ry = Math.abs(ry);
      var lambda = Math.pow(pxp, 2) / Math.pow(rx, 2) + Math.pow(pyp, 2) / Math.pow(ry, 2);
      if (lambda > 1) {
        rx *= Math.sqrt(lambda);
        ry *= Math.sqrt(lambda);
      }
      var _getArcCenter = getArcCenter(px2, py2, cx2, cy2, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp), _getArcCenter2 = _slicedToArray(_getArcCenter, 4), centerx = _getArcCenter2[0], centery = _getArcCenter2[1], ang1 = _getArcCenter2[2], ang2 = _getArcCenter2[3];
      var ratio = Math.abs(ang2) / (TAU / 4);
      if (Math.abs(1 - ratio) < 1e-7) {
        ratio = 1;
      }
      var segments = Math.max(Math.ceil(ratio), 1);
      ang2 /= segments;
      for (var i5 = 0; i5 < segments; i5++) {
        curves.push(approxUnitArc(ang1, ang2));
        ang1 += ang2;
      }
      return curves.map(function(curve) {
        var _mapToEllipse = mapToEllipse(curve[0], rx, ry, cosphi, sinphi, centerx, centery), x1 = _mapToEllipse.x, y1 = _mapToEllipse.y;
        var _mapToEllipse2 = mapToEllipse(curve[1], rx, ry, cosphi, sinphi, centerx, centery), x2 = _mapToEllipse2.x, y22 = _mapToEllipse2.y;
        var _mapToEllipse3 = mapToEllipse(curve[2], rx, ry, cosphi, sinphi, centerx, centery), x = _mapToEllipse3.x, y3 = _mapToEllipse3.y;
        return { x1, y1, x2, y2: y22, x, y: y3 };
      });
    };
    exports.default = arcToBezier;
    module.exports = exports.default;
  }
});

// ../../node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js
var require_color_name = __commonJS({
  "../../node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js"(exports, module) {
    "use strict";
    module.exports = {
      "aliceblue": [240, 248, 255],
      "antiquewhite": [250, 235, 215],
      "aqua": [0, 255, 255],
      "aquamarine": [127, 255, 212],
      "azure": [240, 255, 255],
      "beige": [245, 245, 220],
      "bisque": [255, 228, 196],
      "black": [0, 0, 0],
      "blanchedalmond": [255, 235, 205],
      "blue": [0, 0, 255],
      "blueviolet": [138, 43, 226],
      "brown": [165, 42, 42],
      "burlywood": [222, 184, 135],
      "cadetblue": [95, 158, 160],
      "chartreuse": [127, 255, 0],
      "chocolate": [210, 105, 30],
      "coral": [255, 127, 80],
      "cornflowerblue": [100, 149, 237],
      "cornsilk": [255, 248, 220],
      "crimson": [220, 20, 60],
      "cyan": [0, 255, 255],
      "darkblue": [0, 0, 139],
      "darkcyan": [0, 139, 139],
      "darkgoldenrod": [184, 134, 11],
      "darkgray": [169, 169, 169],
      "darkgreen": [0, 100, 0],
      "darkgrey": [169, 169, 169],
      "darkkhaki": [189, 183, 107],
      "darkmagenta": [139, 0, 139],
      "darkolivegreen": [85, 107, 47],
      "darkorange": [255, 140, 0],
      "darkorchid": [153, 50, 204],
      "darkred": [139, 0, 0],
      "darksalmon": [233, 150, 122],
      "darkseagreen": [143, 188, 143],
      "darkslateblue": [72, 61, 139],
      "darkslategray": [47, 79, 79],
      "darkslategrey": [47, 79, 79],
      "darkturquoise": [0, 206, 209],
      "darkviolet": [148, 0, 211],
      "deeppink": [255, 20, 147],
      "deepskyblue": [0, 191, 255],
      "dimgray": [105, 105, 105],
      "dimgrey": [105, 105, 105],
      "dodgerblue": [30, 144, 255],
      "firebrick": [178, 34, 34],
      "floralwhite": [255, 250, 240],
      "forestgreen": [34, 139, 34],
      "fuchsia": [255, 0, 255],
      "gainsboro": [220, 220, 220],
      "ghostwhite": [248, 248, 255],
      "gold": [255, 215, 0],
      "goldenrod": [218, 165, 32],
      "gray": [128, 128, 128],
      "green": [0, 128, 0],
      "greenyellow": [173, 255, 47],
      "grey": [128, 128, 128],
      "honeydew": [240, 255, 240],
      "hotpink": [255, 105, 180],
      "indianred": [205, 92, 92],
      "indigo": [75, 0, 130],
      "ivory": [255, 255, 240],
      "khaki": [240, 230, 140],
      "lavender": [230, 230, 250],
      "lavenderblush": [255, 240, 245],
      "lawngreen": [124, 252, 0],
      "lemonchiffon": [255, 250, 205],
      "lightblue": [173, 216, 230],
      "lightcoral": [240, 128, 128],
      "lightcyan": [224, 255, 255],
      "lightgoldenrodyellow": [250, 250, 210],
      "lightgray": [211, 211, 211],
      "lightgreen": [144, 238, 144],
      "lightgrey": [211, 211, 211],
      "lightpink": [255, 182, 193],
      "lightsalmon": [255, 160, 122],
      "lightseagreen": [32, 178, 170],
      "lightskyblue": [135, 206, 250],
      "lightslategray": [119, 136, 153],
      "lightslategrey": [119, 136, 153],
      "lightsteelblue": [176, 196, 222],
      "lightyellow": [255, 255, 224],
      "lime": [0, 255, 0],
      "limegreen": [50, 205, 50],
      "linen": [250, 240, 230],
      "magenta": [255, 0, 255],
      "maroon": [128, 0, 0],
      "mediumaquamarine": [102, 205, 170],
      "mediumblue": [0, 0, 205],
      "mediumorchid": [186, 85, 211],
      "mediumpurple": [147, 112, 219],
      "mediumseagreen": [60, 179, 113],
      "mediumslateblue": [123, 104, 238],
      "mediumspringgreen": [0, 250, 154],
      "mediumturquoise": [72, 209, 204],
      "mediumvioletred": [199, 21, 133],
      "midnightblue": [25, 25, 112],
      "mintcream": [245, 255, 250],
      "mistyrose": [255, 228, 225],
      "moccasin": [255, 228, 181],
      "navajowhite": [255, 222, 173],
      "navy": [0, 0, 128],
      "oldlace": [253, 245, 230],
      "olive": [128, 128, 0],
      "olivedrab": [107, 142, 35],
      "orange": [255, 165, 0],
      "orangered": [255, 69, 0],
      "orchid": [218, 112, 214],
      "palegoldenrod": [238, 232, 170],
      "palegreen": [152, 251, 152],
      "paleturquoise": [175, 238, 238],
      "palevioletred": [219, 112, 147],
      "papayawhip": [255, 239, 213],
      "peachpuff": [255, 218, 185],
      "peru": [205, 133, 63],
      "pink": [255, 192, 203],
      "plum": [221, 160, 221],
      "powderblue": [176, 224, 230],
      "purple": [128, 0, 128],
      "rebeccapurple": [102, 51, 153],
      "red": [255, 0, 0],
      "rosybrown": [188, 143, 143],
      "royalblue": [65, 105, 225],
      "saddlebrown": [139, 69, 19],
      "salmon": [250, 128, 114],
      "sandybrown": [244, 164, 96],
      "seagreen": [46, 139, 87],
      "seashell": [255, 245, 238],
      "sienna": [160, 82, 45],
      "silver": [192, 192, 192],
      "skyblue": [135, 206, 235],
      "slateblue": [106, 90, 205],
      "slategray": [112, 128, 144],
      "slategrey": [112, 128, 144],
      "snow": [255, 250, 250],
      "springgreen": [0, 255, 127],
      "steelblue": [70, 130, 180],
      "tan": [210, 180, 140],
      "teal": [0, 128, 128],
      "thistle": [216, 191, 216],
      "tomato": [255, 99, 71],
      "turquoise": [64, 224, 208],
      "violet": [238, 130, 238],
      "wheat": [245, 222, 179],
      "white": [255, 255, 255],
      "whitesmoke": [245, 245, 245],
      "yellow": [255, 255, 0],
      "yellowgreen": [154, 205, 50]
    };
  }
});

// ../../node_modules/.pnpm/is-arrayish@0.3.4/node_modules/is-arrayish/index.js
var require_is_arrayish = __commonJS({
  "../../node_modules/.pnpm/is-arrayish@0.3.4/node_modules/is-arrayish/index.js"(exports, module) {
    module.exports = function isArrayish(obj) {
      if (!obj || typeof obj === "string") {
        return false;
      }
      return obj instanceof Array || Array.isArray(obj) || obj.length >= 0 && (obj.splice instanceof Function || Object.getOwnPropertyDescriptor(obj, obj.length - 1) && obj.constructor.name !== "String");
    };
  }
});

// ../../node_modules/.pnpm/simple-swizzle@0.2.4/node_modules/simple-swizzle/index.js
var require_simple_swizzle = __commonJS({
  "../../node_modules/.pnpm/simple-swizzle@0.2.4/node_modules/simple-swizzle/index.js"(exports, module) {
    "use strict";
    var isArrayish = require_is_arrayish();
    var concat2 = Array.prototype.concat;
    var slice2 = Array.prototype.slice;
    var swizzle = module.exports = function swizzle2(args) {
      var results = [];
      for (var i5 = 0, len = args.length; i5 < len; i5++) {
        var arg = args[i5];
        if (isArrayish(arg)) {
          results = concat2.call(results, slice2.call(arg));
        } else {
          results.push(arg);
        }
      }
      return results;
    };
    swizzle.wrap = function(fn) {
      return function() {
        return fn(swizzle(arguments));
      };
    };
  }
});

// ../../node_modules/.pnpm/color-string@1.9.1/node_modules/color-string/index.js
var require_color_string = __commonJS({
  "../../node_modules/.pnpm/color-string@1.9.1/node_modules/color-string/index.js"(exports, module) {
    var colorNames = require_color_name();
    var swizzle = require_simple_swizzle();
    var hasOwnProperty2 = Object.hasOwnProperty;
    var reverseNames = /* @__PURE__ */ Object.create(null);
    for (name in colorNames) {
      if (hasOwnProperty2.call(colorNames, name)) {
        reverseNames[colorNames[name]] = name;
      }
    }
    var name;
    var cs = module.exports = {
      to: {},
      get: {}
    };
    cs.get = function(string) {
      var prefix = string.substring(0, 3).toLowerCase();
      var val;
      var model;
      switch (prefix) {
        case "hsl":
          val = cs.get.hsl(string);
          model = "hsl";
          break;
        case "hwb":
          val = cs.get.hwb(string);
          model = "hwb";
          break;
        default:
          val = cs.get.rgb(string);
          model = "rgb";
          break;
      }
      if (!val) {
        return null;
      }
      return { model, value: val };
    };
    cs.get.rgb = function(string) {
      if (!string) {
        return null;
      }
      var abbr = /^#([a-f0-9]{3,4})$/i;
      var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;
      var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
      var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
      var keyword = /^(\w+)$/;
      var rgb = [0, 0, 0, 1];
      var match;
      var i5;
      var hexAlpha;
      if (match = string.match(hex)) {
        hexAlpha = match[2];
        match = match[1];
        for (i5 = 0; i5 < 3; i5++) {
          var i22 = i5 * 2;
          rgb[i5] = parseInt(match.slice(i22, i22 + 2), 16);
        }
        if (hexAlpha) {
          rgb[3] = parseInt(hexAlpha, 16) / 255;
        }
      } else if (match = string.match(abbr)) {
        match = match[1];
        hexAlpha = match[3];
        for (i5 = 0; i5 < 3; i5++) {
          rgb[i5] = parseInt(match[i5] + match[i5], 16);
        }
        if (hexAlpha) {
          rgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;
        }
      } else if (match = string.match(rgba)) {
        for (i5 = 0; i5 < 3; i5++) {
          rgb[i5] = parseInt(match[i5 + 1], 0);
        }
        if (match[4]) {
          if (match[5]) {
            rgb[3] = parseFloat(match[4]) * 0.01;
          } else {
            rgb[3] = parseFloat(match[4]);
          }
        }
      } else if (match = string.match(per)) {
        for (i5 = 0; i5 < 3; i5++) {
          rgb[i5] = Math.round(parseFloat(match[i5 + 1]) * 2.55);
        }
        if (match[4]) {
          if (match[5]) {
            rgb[3] = parseFloat(match[4]) * 0.01;
          } else {
            rgb[3] = parseFloat(match[4]);
          }
        }
      } else if (match = string.match(keyword)) {
        if (match[1] === "transparent") {
          return [0, 0, 0, 0];
        }
        if (!hasOwnProperty2.call(colorNames, match[1])) {
          return null;
        }
        rgb = colorNames[match[1]];
        rgb[3] = 1;
        return rgb;
      } else {
        return null;
      }
      for (i5 = 0; i5 < 3; i5++) {
        rgb[i5] = clamp(rgb[i5], 0, 255);
      }
      rgb[3] = clamp(rgb[3], 0, 1);
      return rgb;
    };
    cs.get.hsl = function(string) {
      if (!string) {
        return null;
      }
      var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
      var match = string.match(hsl);
      if (match) {
        var alpha = parseFloat(match[4]);
        var h4 = (parseFloat(match[1]) % 360 + 360) % 360;
        var s4 = clamp(parseFloat(match[2]), 0, 100);
        var l4 = clamp(parseFloat(match[3]), 0, 100);
        var a5 = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
        return [h4, s4, l4, a5];
      }
      return null;
    };
    cs.get.hwb = function(string) {
      if (!string) {
        return null;
      }
      var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
      var match = string.match(hwb);
      if (match) {
        var alpha = parseFloat(match[4]);
        var h4 = (parseFloat(match[1]) % 360 + 360) % 360;
        var w = clamp(parseFloat(match[2]), 0, 100);
        var b3 = clamp(parseFloat(match[3]), 0, 100);
        var a5 = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
        return [h4, w, b3, a5];
      }
      return null;
    };
    cs.to.hex = function() {
      var rgba = swizzle(arguments);
      return "#" + hexDouble(rgba[0]) + hexDouble(rgba[1]) + hexDouble(rgba[2]) + (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : "");
    };
    cs.to.rgb = function() {
      var rgba = swizzle(arguments);
      return rgba.length < 4 || rgba[3] === 1 ? "rgb(" + Math.round(rgba[0]) + ", " + Math.round(rgba[1]) + ", " + Math.round(rgba[2]) + ")" : "rgba(" + Math.round(rgba[0]) + ", " + Math.round(rgba[1]) + ", " + Math.round(rgba[2]) + ", " + rgba[3] + ")";
    };
    cs.to.rgb.percent = function() {
      var rgba = swizzle(arguments);
      var r4 = Math.round(rgba[0] / 255 * 100);
      var g3 = Math.round(rgba[1] / 255 * 100);
      var b3 = Math.round(rgba[2] / 255 * 100);
      return rgba.length < 4 || rgba[3] === 1 ? "rgb(" + r4 + "%, " + g3 + "%, " + b3 + "%)" : "rgba(" + r4 + "%, " + g3 + "%, " + b3 + "%, " + rgba[3] + ")";
    };
    cs.to.hsl = function() {
      var hsla = swizzle(arguments);
      return hsla.length < 4 || hsla[3] === 1 ? "hsl(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%)" : "hsla(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%, " + hsla[3] + ")";
    };
    cs.to.hwb = function() {
      var hwba = swizzle(arguments);
      var a5 = "";
      if (hwba.length >= 4 && hwba[3] !== 1) {
        a5 = ", " + hwba[3];
      }
      return "hwb(" + hwba[0] + ", " + hwba[1] + "%, " + hwba[2] + "%" + a5 + ")";
    };
    cs.to.keyword = function(rgb) {
      return reverseNames[rgb.slice(0, 3)];
    };
    function clamp(num, min2, max3) {
      return Math.min(Math.max(min2, num), max3);
    }
    function hexDouble(num) {
      var str = Math.round(num).toString(16).toUpperCase();
      return str.length < 2 ? "0" + str : str;
    }
  }
});

// ../../node_modules/.pnpm/media-engine@1.0.3/node_modules/media-engine/src/queries.js
var require_queries = __commonJS({
  "../../node_modules/.pnpm/media-engine@1.0.3/node_modules/media-engine/src/queries.js"(exports, module) {
    function MaxHeight(value2) {
      this.value = value2;
      this.match = function(options) {
        return this.value >= options.height;
      };
    }
    function MinHeight(value2) {
      this.value = value2;
      this.match = function(options) {
        return this.value < options.height;
      };
    }
    function MaxWidth(value2) {
      this.value = value2;
      this.match = function(options) {
        return this.value >= options.width;
      };
    }
    function MinWidth(value2) {
      this.value = value2;
      this.match = function(options) {
        return this.value < options.width;
      };
    }
    function Orientation(value2) {
      this.value = value2;
      this.match = function(options) {
        return this.value === options.orientation;
      };
    }
    module.exports = function Query(type, value2) {
      switch (type) {
        case "max-height":
          return new MaxHeight(value2);
        case "min-height":
          return new MinHeight(value2);
        case "max-width":
          return new MaxWidth(value2);
        case "min-width":
          return new MinWidth(value2);
        case "orientation":
          return new Orientation(value2);
        default:
          throw new Error(value2);
      }
    };
  }
});

// ../../node_modules/.pnpm/media-engine@1.0.3/node_modules/media-engine/src/operators.js
var require_operators = __commonJS({
  "../../node_modules/.pnpm/media-engine@1.0.3/node_modules/media-engine/src/operators.js"(exports, module) {
    function And(left, right) {
      this.left = left;
      this.right = right;
      this.match = function(options) {
        return left.match(options) && right.match(options);
      };
    }
    function Or(left, right) {
      this.left = left;
      this.right = right;
      this.match = function(options) {
        return left.match(options) || right.match(options);
      };
    }
    module.exports = function Operator(type, left, right) {
      switch (type) {
        case "and":
          return new And(left, right);
        case ",":
          return new Or(left, right);
        default:
          throw new Error(value);
      }
    };
  }
});

// ../../node_modules/.pnpm/media-engine@1.0.3/node_modules/media-engine/src/parser.js
var require_parser6 = __commonJS({
  "../../node_modules/.pnpm/media-engine@1.0.3/node_modules/media-engine/src/parser.js"(exports, module) {
    var Query = require_queries();
    var Operator = require_operators();
    var NUMBERS = /[0-9]/;
    var LETTERS = /[a-z|\-]/i;
    var WHITESPACE = /\s/;
    var COLON = /:/;
    var COMMA = /,/;
    var AND = /and$/;
    var AT = /@/;
    function tokenizer(input) {
      var current = 0;
      var tokens = [];
      while (current < input.length) {
        var char = input[current];
        if (AT.test(char)) {
          char = input[++current];
          while (LETTERS.test(char) && char !== void 0) {
            char = input[++current];
          }
        }
        if (WHITESPACE.test(char) || char === ")" || char === "(") {
          current++;
          continue;
        }
        if (COLON.test(char) || COMMA.test(char)) {
          current++;
          tokens.push({ type: "operator", value: char });
          continue;
        }
        if (NUMBERS.test(char)) {
          var value2 = "";
          while (NUMBERS.test(char)) {
            value2 += char;
            char = input[++current];
          }
          tokens.push({ type: "number", value: value2 });
          continue;
        }
        if (LETTERS.test(char)) {
          var value2 = "";
          while (LETTERS.test(char) && char !== void 0) {
            value2 += char;
            char = input[++current];
          }
          if (AND.test(value2)) {
            tokens.push({ type: "operator", value: value2 });
          } else {
            tokens.push({ type: "literal", value: value2 });
          }
          continue;
        }
        throw new TypeError(
          "Tokenizer: I dont know what this character is: " + char
        );
      }
      return tokens;
    }
    function parser(tokens) {
      var output = [];
      var stack = [];
      while (tokens.length > 0) {
        var token = tokens.shift();
        if (token.type === "number" || token.type === "literal") {
          output.push(token);
          continue;
        }
        if (token.type === "operator") {
          if (COLON.test(token.value)) {
            token = { type: "query", key: output.pop(), value: tokens.shift() };
            output.push(token);
            continue;
          }
          while (stack.length > 0) {
            output.unshift(stack.pop());
          }
          stack.push(token);
        }
      }
      while (stack.length > 0) {
        output.unshift(stack.pop());
      }
      function walk() {
        var head = output.shift();
        if (head.type === "number") {
          return parseInt(head.value);
        }
        if (head.type === "literal") {
          return head.value;
        }
        if (head.type === "operator") {
          var l4 = walk();
          var r4 = walk();
          return Operator(head.value, l4, r4);
        }
        if (head.type === "query") {
          var l4 = head.key.value;
          var r4 = head.value.value;
          return Query(l4, r4);
        }
      }
      return walk();
    }
    module.exports = {
      parse: function(query) {
        var tokens = tokenizer(query);
        var ast = parser(tokens);
        return ast;
      }
    };
  }
});

// ../../node_modules/.pnpm/media-engine@1.0.3/node_modules/media-engine/src/index.js
var require_src2 = __commonJS({
  "../../node_modules/.pnpm/media-engine@1.0.3/node_modules/media-engine/src/index.js"(exports, module) {
    var Parser = require_parser6();
    module.exports = function(queries, options) {
      var result = {};
      Object.keys(queries).forEach(function(query) {
        if (Parser.parse(query).match(options)) {
          Object.assign(result, queries[query]);
        }
      });
      return result;
    };
  }
});

// ../../node_modules/.pnpm/hsl-to-rgb-for-reals@1.1.1/node_modules/hsl-to-rgb-for-reals/converter.js
var require_converter = __commonJS({
  "../../node_modules/.pnpm/hsl-to-rgb-for-reals@1.1.1/node_modules/hsl-to-rgb-for-reals/converter.js"(exports, module) {
    var hslToRgb = function(hue, saturation, lightness) {
      if (hue == void 0) {
        return [0, 0, 0];
      }
      var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;
      var huePrime = hue / 60;
      var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));
      huePrime = Math.floor(huePrime);
      var red;
      var green;
      var blue;
      if (huePrime === 0) {
        red = chroma;
        green = secondComponent;
        blue = 0;
      } else if (huePrime === 1) {
        red = secondComponent;
        green = chroma;
        blue = 0;
      } else if (huePrime === 2) {
        red = 0;
        green = chroma;
        blue = secondComponent;
      } else if (huePrime === 3) {
        red = 0;
        green = secondComponent;
        blue = chroma;
      } else if (huePrime === 4) {
        red = secondComponent;
        green = 0;
        blue = chroma;
      } else if (huePrime === 5) {
        red = chroma;
        green = 0;
        blue = secondComponent;
      }
      var lightnessAdjustment = lightness - chroma / 2;
      red += lightnessAdjustment;
      green += lightnessAdjustment;
      blue += lightnessAdjustment;
      return [
        Math.abs(Math.round(red * 255)),
        Math.abs(Math.round(green * 255)),
        Math.abs(Math.round(blue * 255))
      ];
    };
    module.exports = hslToRgb;
  }
});

// ../../node_modules/.pnpm/hsl-to-hex@1.0.0/node_modules/hsl-to-hex/index.js
var require_hsl_to_hex = __commonJS({
  "../../node_modules/.pnpm/hsl-to-hex@1.0.0/node_modules/hsl-to-hex/index.js"(exports, module) {
    var toRgb = require_converter();
    function max3(val, n6) {
      return val > n6 ? n6 : val;
    }
    function min2(val, n6) {
      return val < n6 ? n6 : val;
    }
    function cycle(val) {
      val = max3(val, 1e7);
      val = min2(val, -1e7);
      while (val < 0) {
        val += 360;
      }
      while (val > 359) {
        val -= 360;
      }
      return val;
    }
    function hsl(hue, saturation, luminosity) {
      hue = cycle(hue);
      saturation = min2(max3(saturation, 100), 0);
      luminosity = min2(max3(luminosity, 100), 0);
      saturation /= 100;
      luminosity /= 100;
      var rgb = toRgb(hue, saturation, luminosity);
      return "#" + rgb.map(function(n6) {
        return (256 + n6).toString(16).substr(-2);
      }).join("");
    }
    module.exports = hsl;
  }
});

// ../../node_modules/.pnpm/postcss-value-parser@4.2.0/node_modules/postcss-value-parser/lib/parse.js
var require_parse10 = __commonJS({
  "../../node_modules/.pnpm/postcss-value-parser@4.2.0/node_modules/postcss-value-parser/lib/parse.js"(exports, module) {
    var openParentheses = "(".charCodeAt(0);
    var closeParentheses = ")".charCodeAt(0);
    var singleQuote = "'".charCodeAt(0);
    var doubleQuote = '"'.charCodeAt(0);
    var backslash = "\\".charCodeAt(0);
    var slash = "/".charCodeAt(0);
    var comma = ",".charCodeAt(0);
    var colon = ":".charCodeAt(0);
    var star = "*".charCodeAt(0);
    var uLower = "u".charCodeAt(0);
    var uUpper = "U".charCodeAt(0);
    var plus = "+".charCodeAt(0);
    var isUnicodeRange = /^[a-f0-9?-]+$/i;
    module.exports = function(input) {
      var tokens = [];
      var value2 = input;
      var next, quote, prev, token, escape2, escapePos, whitespacePos, parenthesesOpenPos;
      var pos = 0;
      var code = value2.charCodeAt(pos);
      var max3 = value2.length;
      var stack = [{ nodes: tokens }];
      var balanced = 0;
      var parent;
      var name = "";
      var before = "";
      var after = "";
      while (pos < max3) {
        if (code <= 32) {
          next = pos;
          do {
            next += 1;
            code = value2.charCodeAt(next);
          } while (code <= 32);
          token = value2.slice(pos, next);
          prev = tokens[tokens.length - 1];
          if (code === closeParentheses && balanced) {
            after = token;
          } else if (prev && prev.type === "div") {
            prev.after = token;
            prev.sourceEndIndex += token.length;
          } else if (code === comma || code === colon || code === slash && value2.charCodeAt(next + 1) !== star && (!parent || parent && parent.type === "function" && parent.value !== "calc")) {
            before = token;
          } else {
            tokens.push({
              type: "space",
              sourceIndex: pos,
              sourceEndIndex: next,
              value: token
            });
          }
          pos = next;
        } else if (code === singleQuote || code === doubleQuote) {
          next = pos;
          quote = code === singleQuote ? "'" : '"';
          token = {
            type: "string",
            sourceIndex: pos,
            quote
          };
          do {
            escape2 = false;
            next = value2.indexOf(quote, next + 1);
            if (~next) {
              escapePos = next;
              while (value2.charCodeAt(escapePos - 1) === backslash) {
                escapePos -= 1;
                escape2 = !escape2;
              }
            } else {
              value2 += quote;
              next = value2.length - 1;
              token.unclosed = true;
            }
          } while (escape2);
          token.value = value2.slice(pos + 1, next);
          token.sourceEndIndex = token.unclosed ? next : next + 1;
          tokens.push(token);
          pos = next + 1;
          code = value2.charCodeAt(pos);
        } else if (code === slash && value2.charCodeAt(pos + 1) === star) {
          next = value2.indexOf("*/", pos);
          token = {
            type: "comment",
            sourceIndex: pos,
            sourceEndIndex: next + 2
          };
          if (next === -1) {
            token.unclosed = true;
            next = value2.length;
            token.sourceEndIndex = next;
          }
          token.value = value2.slice(pos + 2, next);
          tokens.push(token);
          pos = next + 2;
          code = value2.charCodeAt(pos);
        } else if ((code === slash || code === star) && parent && parent.type === "function" && parent.value === "calc") {
          token = value2[pos];
          tokens.push({
            type: "word",
            sourceIndex: pos - before.length,
            sourceEndIndex: pos + token.length,
            value: token
          });
          pos += 1;
          code = value2.charCodeAt(pos);
        } else if (code === slash || code === comma || code === colon) {
          token = value2[pos];
          tokens.push({
            type: "div",
            sourceIndex: pos - before.length,
            sourceEndIndex: pos + token.length,
            value: token,
            before,
            after: ""
          });
          before = "";
          pos += 1;
          code = value2.charCodeAt(pos);
        } else if (openParentheses === code) {
          next = pos;
          do {
            next += 1;
            code = value2.charCodeAt(next);
          } while (code <= 32);
          parenthesesOpenPos = pos;
          token = {
            type: "function",
            sourceIndex: pos - name.length,
            value: name,
            before: value2.slice(parenthesesOpenPos + 1, next)
          };
          pos = next;
          if (name === "url" && code !== singleQuote && code !== doubleQuote) {
            next -= 1;
            do {
              escape2 = false;
              next = value2.indexOf(")", next + 1);
              if (~next) {
                escapePos = next;
                while (value2.charCodeAt(escapePos - 1) === backslash) {
                  escapePos -= 1;
                  escape2 = !escape2;
                }
              } else {
                value2 += ")";
                next = value2.length - 1;
                token.unclosed = true;
              }
            } while (escape2);
            whitespacePos = next;
            do {
              whitespacePos -= 1;
              code = value2.charCodeAt(whitespacePos);
            } while (code <= 32);
            if (parenthesesOpenPos < whitespacePos) {
              if (pos !== whitespacePos + 1) {
                token.nodes = [
                  {
                    type: "word",
                    sourceIndex: pos,
                    sourceEndIndex: whitespacePos + 1,
                    value: value2.slice(pos, whitespacePos + 1)
                  }
                ];
              } else {
                token.nodes = [];
              }
              if (token.unclosed && whitespacePos + 1 !== next) {
                token.after = "";
                token.nodes.push({
                  type: "space",
                  sourceIndex: whitespacePos + 1,
                  sourceEndIndex: next,
                  value: value2.slice(whitespacePos + 1, next)
                });
              } else {
                token.after = value2.slice(whitespacePos + 1, next);
                token.sourceEndIndex = next;
              }
            } else {
              token.after = "";
              token.nodes = [];
            }
            pos = next + 1;
            token.sourceEndIndex = token.unclosed ? next : pos;
            code = value2.charCodeAt(pos);
            tokens.push(token);
          } else {
            balanced += 1;
            token.after = "";
            token.sourceEndIndex = pos + 1;
            tokens.push(token);
            stack.push(token);
            tokens = token.nodes = [];
            parent = token;
          }
          name = "";
        } else if (closeParentheses === code && balanced) {
          pos += 1;
          code = value2.charCodeAt(pos);
          parent.after = after;
          parent.sourceEndIndex += after.length;
          after = "";
          balanced -= 1;
          stack[stack.length - 1].sourceEndIndex = pos;
          stack.pop();
          parent = stack[balanced];
          tokens = parent.nodes;
        } else {
          next = pos;
          do {
            if (code === backslash) {
              next += 1;
            }
            next += 1;
            code = value2.charCodeAt(next);
          } while (next < max3 && !(code <= 32 || code === singleQuote || code === doubleQuote || code === comma || code === colon || code === slash || code === openParentheses || code === star && parent && parent.type === "function" && parent.value === "calc" || code === slash && parent.type === "function" && parent.value === "calc" || code === closeParentheses && balanced));
          token = value2.slice(pos, next);
          if (openParentheses === code) {
            name = token;
          } else if ((uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) && plus === token.charCodeAt(1) && isUnicodeRange.test(token.slice(2))) {
            tokens.push({
              type: "unicode-range",
              sourceIndex: pos,
              sourceEndIndex: next,
              value: token
            });
          } else {
            tokens.push({
              type: "word",
              sourceIndex: pos,
              sourceEndIndex: next,
              value: token
            });
          }
          pos = next;
        }
      }
      for (pos = stack.length - 1; pos; pos -= 1) {
        stack[pos].unclosed = true;
        stack[pos].sourceEndIndex = value2.length;
      }
      return stack[0].nodes;
    };
  }
});

// ../../node_modules/.pnpm/postcss-value-parser@4.2.0/node_modules/postcss-value-parser/lib/unit.js
var require_unit = __commonJS({
  "../../node_modules/.pnpm/postcss-value-parser@4.2.0/node_modules/postcss-value-parser/lib/unit.js"(exports, module) {
    var minus = "-".charCodeAt(0);
    var plus = "+".charCodeAt(0);
    var dot = ".".charCodeAt(0);
    var exp = "e".charCodeAt(0);
    var EXP = "E".charCodeAt(0);
    function likeNumber(value2) {
      var code = value2.charCodeAt(0);
      var nextCode;
      if (code === plus || code === minus) {
        nextCode = value2.charCodeAt(1);
        if (nextCode >= 48 && nextCode <= 57) {
          return true;
        }
        var nextNextCode = value2.charCodeAt(2);
        if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {
          return true;
        }
        return false;
      }
      if (code === dot) {
        nextCode = value2.charCodeAt(1);
        if (nextCode >= 48 && nextCode <= 57) {
          return true;
        }
        return false;
      }
      if (code >= 48 && code <= 57) {
        return true;
      }
      return false;
    }
    module.exports = function(value2) {
      var pos = 0;
      var length2 = value2.length;
      var code;
      var nextCode;
      var nextNextCode;
      if (length2 === 0 || !likeNumber(value2)) {
        return false;
      }
      code = value2.charCodeAt(pos);
      if (code === plus || code === minus) {
        pos++;
      }
      while (pos < length2) {
        code = value2.charCodeAt(pos);
        if (code < 48 || code > 57) {
          break;
        }
        pos += 1;
      }
      code = value2.charCodeAt(pos);
      nextCode = value2.charCodeAt(pos + 1);
      if (code === dot && nextCode >= 48 && nextCode <= 57) {
        pos += 2;
        while (pos < length2) {
          code = value2.charCodeAt(pos);
          if (code < 48 || code > 57) {
            break;
          }
          pos += 1;
        }
      }
      code = value2.charCodeAt(pos);
      nextCode = value2.charCodeAt(pos + 1);
      nextNextCode = value2.charCodeAt(pos + 2);
      if ((code === exp || code === EXP) && (nextCode >= 48 && nextCode <= 57 || (nextCode === plus || nextCode === minus) && nextNextCode >= 48 && nextNextCode <= 57)) {
        pos += nextCode === plus || nextCode === minus ? 3 : 2;
        while (pos < length2) {
          code = value2.charCodeAt(pos);
          if (code < 48 || code > 57) {
            break;
          }
          pos += 1;
        }
      }
      return {
        number: value2.slice(0, pos),
        unit: value2.slice(pos)
      };
    };
  }
});

// ../../node_modules/.pnpm/bidi-js@1.0.3/node_modules/bidi-js/dist/bidi.js
var require_bidi = __commonJS({
  "../../node_modules/.pnpm/bidi-js@1.0.3/node_modules/bidi-js/dist/bidi.js"(exports, module) {
    (function(global2, factory2) {
      typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory2() : typeof define === "function" && define.amd ? define(factory2) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.bidi_js = factory2());
    })(exports, (function() {
      "use strict";
      function bidiFactory2() {
        var bidi2 = (function(exports2) {
          var DATA = {
            "R": "13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73",
            "EN": "1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9",
            "ES": "17,2,6dp+1,f+1,av,16vr,mx+1,4o,2",
            "ET": "z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj",
            "AN": "16o+5,2j+9,2+1,35,ed,1ff2+9,87+u",
            "CS": "18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b",
            "B": "a,3,f+2,2v,690",
            "S": "9,2,k",
            "WS": "c,k,4f4,1vk+a,u,1j,335",
            "ON": "x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i",
            "BN": "0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1",
            "NSM": "lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n",
            "AL": "16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d",
            "LRO": "6ct",
            "RLO": "6cu",
            "LRE": "6cq",
            "RLE": "6cr",
            "PDF": "6cs",
            "LRI": "6ee",
            "RLI": "6ef",
            "FSI": "6eg",
            "PDI": "6eh"
          };
          var TYPES = {};
          var TYPES_TO_NAMES = {};
          TYPES.L = 1;
          TYPES_TO_NAMES[1] = "L";
          Object.keys(DATA).forEach(function(type, i5) {
            TYPES[type] = 1 << i5 + 1;
            TYPES_TO_NAMES[TYPES[type]] = type;
          });
          Object.freeze(TYPES);
          var ISOLATE_INIT_TYPES = TYPES.LRI | TYPES.RLI | TYPES.FSI;
          var STRONG_TYPES = TYPES.L | TYPES.R | TYPES.AL;
          var NEUTRAL_ISOLATE_TYPES = TYPES.B | TYPES.S | TYPES.WS | TYPES.ON | TYPES.FSI | TYPES.LRI | TYPES.RLI | TYPES.PDI;
          var BN_LIKE_TYPES = TYPES.BN | TYPES.RLE | TYPES.LRE | TYPES.RLO | TYPES.LRO | TYPES.PDF;
          var TRAILING_TYPES = TYPES.S | TYPES.WS | TYPES.B | ISOLATE_INIT_TYPES | TYPES.PDI | BN_LIKE_TYPES;
          var map = null;
          function parseData() {
            if (!map) {
              map = /* @__PURE__ */ new Map();
              var loop = function(type2) {
                if (DATA.hasOwnProperty(type2)) {
                  var lastCode = 0;
                  DATA[type2].split(",").forEach(function(range2) {
                    var ref = range2.split("+");
                    var skip = ref[0];
                    var step = ref[1];
                    skip = parseInt(skip, 36);
                    step = step ? parseInt(step, 36) : 0;
                    map.set(lastCode += skip, TYPES[type2]);
                    for (var i5 = 0; i5 < step; i5++) {
                      map.set(++lastCode, TYPES[type2]);
                    }
                  });
                }
              };
              for (var type in DATA) loop(type);
            }
          }
          function getBidiCharType(char) {
            parseData();
            return map.get(char.codePointAt(0)) || TYPES.L;
          }
          function getBidiCharTypeName(char) {
            return TYPES_TO_NAMES[getBidiCharType(char)];
          }
          var data$1 = {
            "pairs": "14>1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1",
            "canonical": "6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye"
          };
          function parseCharacterMap(encodedString, includeReverse) {
            var radix = 36;
            var lastCode = 0;
            var map2 = /* @__PURE__ */ new Map();
            var reverseMap = includeReverse && /* @__PURE__ */ new Map();
            var prevPair;
            encodedString.split(",").forEach(function visit(entry) {
              if (entry.indexOf("+") !== -1) {
                for (var i5 = +entry; i5--; ) {
                  visit(prevPair);
                }
              } else {
                prevPair = entry;
                var ref = entry.split(">");
                var a5 = ref[0];
                var b3 = ref[1];
                a5 = String.fromCodePoint(lastCode += parseInt(a5, radix));
                b3 = String.fromCodePoint(lastCode += parseInt(b3, radix));
                map2.set(a5, b3);
                includeReverse && reverseMap.set(b3, a5);
              }
            });
            return { map: map2, reverseMap };
          }
          var openToClose, closeToOpen, canonical;
          function parse$12() {
            if (!openToClose) {
              var ref = parseCharacterMap(data$1.pairs, true);
              var map2 = ref.map;
              var reverseMap = ref.reverseMap;
              openToClose = map2;
              closeToOpen = reverseMap;
              canonical = parseCharacterMap(data$1.canonical, false).map;
            }
          }
          function openingToClosingBracket(char) {
            parse$12();
            return openToClose.get(char) || null;
          }
          function closingToOpeningBracket(char) {
            parse$12();
            return closeToOpen.get(char) || null;
          }
          function getCanonicalBracket(char) {
            parse$12();
            return canonical.get(char) || null;
          }
          var TYPE_L = TYPES.L;
          var TYPE_R = TYPES.R;
          var TYPE_EN = TYPES.EN;
          var TYPE_ES = TYPES.ES;
          var TYPE_ET = TYPES.ET;
          var TYPE_AN = TYPES.AN;
          var TYPE_CS = TYPES.CS;
          var TYPE_B = TYPES.B;
          var TYPE_S = TYPES.S;
          var TYPE_ON = TYPES.ON;
          var TYPE_BN = TYPES.BN;
          var TYPE_NSM = TYPES.NSM;
          var TYPE_AL = TYPES.AL;
          var TYPE_LRO = TYPES.LRO;
          var TYPE_RLO = TYPES.RLO;
          var TYPE_LRE = TYPES.LRE;
          var TYPE_RLE = TYPES.RLE;
          var TYPE_PDF = TYPES.PDF;
          var TYPE_LRI = TYPES.LRI;
          var TYPE_RLI = TYPES.RLI;
          var TYPE_FSI = TYPES.FSI;
          var TYPE_PDI = TYPES.PDI;
          function getEmbeddingLevels(string, baseDirection) {
            var MAX_DEPTH = 125;
            var charTypes = new Uint32Array(string.length);
            for (var i5 = 0; i5 < string.length; i5++) {
              charTypes[i5] = getBidiCharType(string[i5]);
            }
            var charTypeCounts = /* @__PURE__ */ new Map();
            function changeCharType(i6, type2) {
              var oldType = charTypes[i6];
              charTypes[i6] = type2;
              charTypeCounts.set(oldType, charTypeCounts.get(oldType) - 1);
              if (oldType & NEUTRAL_ISOLATE_TYPES) {
                charTypeCounts.set(NEUTRAL_ISOLATE_TYPES, charTypeCounts.get(NEUTRAL_ISOLATE_TYPES) - 1);
              }
              charTypeCounts.set(type2, (charTypeCounts.get(type2) || 0) + 1);
              if (type2 & NEUTRAL_ISOLATE_TYPES) {
                charTypeCounts.set(NEUTRAL_ISOLATE_TYPES, (charTypeCounts.get(NEUTRAL_ISOLATE_TYPES) || 0) + 1);
              }
            }
            var embedLevels = new Uint8Array(string.length);
            var isolationPairs = /* @__PURE__ */ new Map();
            var paragraphs = [];
            var paragraph = null;
            for (var i$1 = 0; i$1 < string.length; i$1++) {
              if (!paragraph) {
                paragraphs.push(paragraph = {
                  start: i$1,
                  end: string.length - 1,
                  // 3.3.1 P2-P3: Determine the paragraph level
                  level: baseDirection === "rtl" ? 1 : baseDirection === "ltr" ? 0 : determineAutoEmbedLevel(i$1, false)
                });
              }
              if (charTypes[i$1] & TYPE_B) {
                paragraph.end = i$1;
                paragraph = null;
              }
            }
            var FORMATTING_TYPES = TYPE_RLE | TYPE_LRE | TYPE_RLO | TYPE_LRO | ISOLATE_INIT_TYPES | TYPE_PDI | TYPE_PDF | TYPE_B;
            var nextEven = function(n6) {
              return n6 + (n6 & 1 ? 1 : 2);
            };
            var nextOdd = function(n6) {
              return n6 + (n6 & 1 ? 2 : 1);
            };
            for (var paraIdx = 0; paraIdx < paragraphs.length; paraIdx++) {
              paragraph = paragraphs[paraIdx];
              var statusStack = [{
                _level: paragraph.level,
                _override: 0,
                //0=neutral, 1=L, 2=R
                _isolate: 0
                //bool
              }];
              var stackTop = void 0;
              var overflowIsolateCount = 0;
              var overflowEmbeddingCount = 0;
              var validIsolateCount = 0;
              charTypeCounts.clear();
              for (var i$2 = paragraph.start; i$2 <= paragraph.end; i$2++) {
                var charType = charTypes[i$2];
                stackTop = statusStack[statusStack.length - 1];
                charTypeCounts.set(charType, (charTypeCounts.get(charType) || 0) + 1);
                if (charType & NEUTRAL_ISOLATE_TYPES) {
                  charTypeCounts.set(NEUTRAL_ISOLATE_TYPES, (charTypeCounts.get(NEUTRAL_ISOLATE_TYPES) || 0) + 1);
                }
                if (charType & FORMATTING_TYPES) {
                  if (charType & (TYPE_RLE | TYPE_LRE)) {
                    embedLevels[i$2] = stackTop._level;
                    var level = (charType === TYPE_RLE ? nextOdd : nextEven)(stackTop._level);
                    if (level <= MAX_DEPTH && !overflowIsolateCount && !overflowEmbeddingCount) {
                      statusStack.push({
                        _level: level,
                        _override: 0,
                        _isolate: 0
                      });
                    } else if (!overflowIsolateCount) {
                      overflowEmbeddingCount++;
                    }
                  } else if (charType & (TYPE_RLO | TYPE_LRO)) {
                    embedLevels[i$2] = stackTop._level;
                    var level$1 = (charType === TYPE_RLO ? nextOdd : nextEven)(stackTop._level);
                    if (level$1 <= MAX_DEPTH && !overflowIsolateCount && !overflowEmbeddingCount) {
                      statusStack.push({
                        _level: level$1,
                        _override: charType & TYPE_RLO ? TYPE_R : TYPE_L,
                        _isolate: 0
                      });
                    } else if (!overflowIsolateCount) {
                      overflowEmbeddingCount++;
                    }
                  } else if (charType & ISOLATE_INIT_TYPES) {
                    if (charType & TYPE_FSI) {
                      charType = determineAutoEmbedLevel(i$2 + 1, true) === 1 ? TYPE_RLI : TYPE_LRI;
                    }
                    embedLevels[i$2] = stackTop._level;
                    if (stackTop._override) {
                      changeCharType(i$2, stackTop._override);
                    }
                    var level$2 = (charType === TYPE_RLI ? nextOdd : nextEven)(stackTop._level);
                    if (level$2 <= MAX_DEPTH && overflowIsolateCount === 0 && overflowEmbeddingCount === 0) {
                      validIsolateCount++;
                      statusStack.push({
                        _level: level$2,
                        _override: 0,
                        _isolate: 1,
                        _isolInitIndex: i$2
                      });
                    } else {
                      overflowIsolateCount++;
                    }
                  } else if (charType & TYPE_PDI) {
                    if (overflowIsolateCount > 0) {
                      overflowIsolateCount--;
                    } else if (validIsolateCount > 0) {
                      overflowEmbeddingCount = 0;
                      while (!statusStack[statusStack.length - 1]._isolate) {
                        statusStack.pop();
                      }
                      var isolInitIndex = statusStack[statusStack.length - 1]._isolInitIndex;
                      if (isolInitIndex != null) {
                        isolationPairs.set(isolInitIndex, i$2);
                        isolationPairs.set(i$2, isolInitIndex);
                      }
                      statusStack.pop();
                      validIsolateCount--;
                    }
                    stackTop = statusStack[statusStack.length - 1];
                    embedLevels[i$2] = stackTop._level;
                    if (stackTop._override) {
                      changeCharType(i$2, stackTop._override);
                    }
                  } else if (charType & TYPE_PDF) {
                    if (overflowIsolateCount === 0) {
                      if (overflowEmbeddingCount > 0) {
                        overflowEmbeddingCount--;
                      } else if (!stackTop._isolate && statusStack.length > 1) {
                        statusStack.pop();
                        stackTop = statusStack[statusStack.length - 1];
                      }
                    }
                    embedLevels[i$2] = stackTop._level;
                  } else if (charType & TYPE_B) {
                    embedLevels[i$2] = paragraph.level;
                  }
                } else {
                  embedLevels[i$2] = stackTop._level;
                  if (stackTop._override && charType !== TYPE_BN) {
                    changeCharType(i$2, stackTop._override);
                  }
                }
              }
              var levelRuns = [];
              var currentRun = null;
              for (var i$3 = paragraph.start; i$3 <= paragraph.end; i$3++) {
                var charType$1 = charTypes[i$3];
                if (!(charType$1 & BN_LIKE_TYPES)) {
                  var lvl = embedLevels[i$3];
                  var isIsolInit = charType$1 & ISOLATE_INIT_TYPES;
                  var isPDI = charType$1 === TYPE_PDI;
                  if (currentRun && lvl === currentRun._level) {
                    currentRun._end = i$3;
                    currentRun._endsWithIsolInit = isIsolInit;
                  } else {
                    levelRuns.push(currentRun = {
                      _start: i$3,
                      _end: i$3,
                      _level: lvl,
                      _startsWithPDI: isPDI,
                      _endsWithIsolInit: isIsolInit
                    });
                  }
                }
              }
              var isolatingRunSeqs = [];
              for (var runIdx = 0; runIdx < levelRuns.length; runIdx++) {
                var run = levelRuns[runIdx];
                if (!run._startsWithPDI || run._startsWithPDI && !isolationPairs.has(run._start)) {
                  var seqRuns = [currentRun = run];
                  for (var pdiIndex = void 0; currentRun && currentRun._endsWithIsolInit && (pdiIndex = isolationPairs.get(currentRun._end)) != null; ) {
                    for (var i$4 = runIdx + 1; i$4 < levelRuns.length; i$4++) {
                      if (levelRuns[i$4]._start === pdiIndex) {
                        seqRuns.push(currentRun = levelRuns[i$4]);
                        break;
                      }
                    }
                  }
                  var seqIndices = [];
                  for (var i$5 = 0; i$5 < seqRuns.length; i$5++) {
                    var run$1 = seqRuns[i$5];
                    for (var j = run$1._start; j <= run$1._end; j++) {
                      seqIndices.push(j);
                    }
                  }
                  var firstLevel = embedLevels[seqIndices[0]];
                  var prevLevel = paragraph.level;
                  for (var i$6 = seqIndices[0] - 1; i$6 >= 0; i$6--) {
                    if (!(charTypes[i$6] & BN_LIKE_TYPES)) {
                      prevLevel = embedLevels[i$6];
                      break;
                    }
                  }
                  var lastIndex = seqIndices[seqIndices.length - 1];
                  var lastLevel = embedLevels[lastIndex];
                  var nextLevel = paragraph.level;
                  if (!(charTypes[lastIndex] & ISOLATE_INIT_TYPES)) {
                    for (var i$7 = lastIndex + 1; i$7 <= paragraph.end; i$7++) {
                      if (!(charTypes[i$7] & BN_LIKE_TYPES)) {
                        nextLevel = embedLevels[i$7];
                        break;
                      }
                    }
                  }
                  isolatingRunSeqs.push({
                    _seqIndices: seqIndices,
                    _sosType: Math.max(prevLevel, firstLevel) % 2 ? TYPE_R : TYPE_L,
                    _eosType: Math.max(nextLevel, lastLevel) % 2 ? TYPE_R : TYPE_L
                  });
                }
              }
              for (var seqIdx = 0; seqIdx < isolatingRunSeqs.length; seqIdx++) {
                var ref = isolatingRunSeqs[seqIdx];
                var seqIndices$1 = ref._seqIndices;
                var sosType = ref._sosType;
                var eosType = ref._eosType;
                var embedDirection = embedLevels[seqIndices$1[0]] & 1 ? TYPE_R : TYPE_L;
                if (charTypeCounts.get(TYPE_NSM)) {
                  for (var si = 0; si < seqIndices$1.length; si++) {
                    var i$8 = seqIndices$1[si];
                    if (charTypes[i$8] & TYPE_NSM) {
                      var prevType = sosType;
                      for (var sj = si - 1; sj >= 0; sj--) {
                        if (!(charTypes[seqIndices$1[sj]] & BN_LIKE_TYPES)) {
                          prevType = charTypes[seqIndices$1[sj]];
                          break;
                        }
                      }
                      changeCharType(i$8, prevType & (ISOLATE_INIT_TYPES | TYPE_PDI) ? TYPE_ON : prevType);
                    }
                  }
                }
                if (charTypeCounts.get(TYPE_EN)) {
                  for (var si$1 = 0; si$1 < seqIndices$1.length; si$1++) {
                    var i$9 = seqIndices$1[si$1];
                    if (charTypes[i$9] & TYPE_EN) {
                      for (var sj$1 = si$1 - 1; sj$1 >= -1; sj$1--) {
                        var prevCharType = sj$1 === -1 ? sosType : charTypes[seqIndices$1[sj$1]];
                        if (prevCharType & STRONG_TYPES) {
                          if (prevCharType === TYPE_AL) {
                            changeCharType(i$9, TYPE_AN);
                          }
                          break;
                        }
                      }
                    }
                  }
                }
                if (charTypeCounts.get(TYPE_AL)) {
                  for (var si$2 = 0; si$2 < seqIndices$1.length; si$2++) {
                    var i$10 = seqIndices$1[si$2];
                    if (charTypes[i$10] & TYPE_AL) {
                      changeCharType(i$10, TYPE_R);
                    }
                  }
                }
                if (charTypeCounts.get(TYPE_ES) || charTypeCounts.get(TYPE_CS)) {
                  for (var si$3 = 1; si$3 < seqIndices$1.length - 1; si$3++) {
                    var i$11 = seqIndices$1[si$3];
                    if (charTypes[i$11] & (TYPE_ES | TYPE_CS)) {
                      var prevType$1 = 0, nextType = 0;
                      for (var sj$2 = si$3 - 1; sj$2 >= 0; sj$2--) {
                        prevType$1 = charTypes[seqIndices$1[sj$2]];
                        if (!(prevType$1 & BN_LIKE_TYPES)) {
                          break;
                        }
                      }
                      for (var sj$3 = si$3 + 1; sj$3 < seqIndices$1.length; sj$3++) {
                        nextType = charTypes[seqIndices$1[sj$3]];
                        if (!(nextType & BN_LIKE_TYPES)) {
                          break;
                        }
                      }
                      if (prevType$1 === nextType && (charTypes[i$11] === TYPE_ES ? prevType$1 === TYPE_EN : prevType$1 & (TYPE_EN | TYPE_AN))) {
                        changeCharType(i$11, prevType$1);
                      }
                    }
                  }
                }
                if (charTypeCounts.get(TYPE_EN)) {
                  for (var si$4 = 0; si$4 < seqIndices$1.length; si$4++) {
                    var i$12 = seqIndices$1[si$4];
                    if (charTypes[i$12] & TYPE_EN) {
                      for (var sj$4 = si$4 - 1; sj$4 >= 0 && charTypes[seqIndices$1[sj$4]] & (TYPE_ET | BN_LIKE_TYPES); sj$4--) {
                        changeCharType(seqIndices$1[sj$4], TYPE_EN);
                      }
                      for (si$4++; si$4 < seqIndices$1.length && charTypes[seqIndices$1[si$4]] & (TYPE_ET | BN_LIKE_TYPES | TYPE_EN); si$4++) {
                        if (charTypes[seqIndices$1[si$4]] !== TYPE_EN) {
                          changeCharType(seqIndices$1[si$4], TYPE_EN);
                        }
                      }
                    }
                  }
                }
                if (charTypeCounts.get(TYPE_ET) || charTypeCounts.get(TYPE_ES) || charTypeCounts.get(TYPE_CS)) {
                  for (var si$5 = 0; si$5 < seqIndices$1.length; si$5++) {
                    var i$13 = seqIndices$1[si$5];
                    if (charTypes[i$13] & (TYPE_ET | TYPE_ES | TYPE_CS)) {
                      changeCharType(i$13, TYPE_ON);
                      for (var sj$5 = si$5 - 1; sj$5 >= 0 && charTypes[seqIndices$1[sj$5]] & BN_LIKE_TYPES; sj$5--) {
                        changeCharType(seqIndices$1[sj$5], TYPE_ON);
                      }
                      for (var sj$6 = si$5 + 1; sj$6 < seqIndices$1.length && charTypes[seqIndices$1[sj$6]] & BN_LIKE_TYPES; sj$6++) {
                        changeCharType(seqIndices$1[sj$6], TYPE_ON);
                      }
                    }
                  }
                }
                if (charTypeCounts.get(TYPE_EN)) {
                  for (var si$6 = 0, prevStrongType = sosType; si$6 < seqIndices$1.length; si$6++) {
                    var i$14 = seqIndices$1[si$6];
                    var type = charTypes[i$14];
                    if (type & TYPE_EN) {
                      if (prevStrongType === TYPE_L) {
                        changeCharType(i$14, TYPE_L);
                      }
                    } else if (type & STRONG_TYPES) {
                      prevStrongType = type;
                    }
                  }
                }
                if (charTypeCounts.get(NEUTRAL_ISOLATE_TYPES)) {
                  var R_TYPES_FOR_N_STEPS = TYPE_R | TYPE_EN | TYPE_AN;
                  var STRONG_TYPES_FOR_N_STEPS = R_TYPES_FOR_N_STEPS | TYPE_L;
                  var bracketPairs = [];
                  {
                    var openerStack = [];
                    for (var si$7 = 0; si$7 < seqIndices$1.length; si$7++) {
                      if (charTypes[seqIndices$1[si$7]] & NEUTRAL_ISOLATE_TYPES) {
                        var char = string[seqIndices$1[si$7]];
                        var oppositeBracket = void 0;
                        if (openingToClosingBracket(char) !== null) {
                          if (openerStack.length < 63) {
                            openerStack.push({ char, seqIndex: si$7 });
                          } else {
                            break;
                          }
                        } else if ((oppositeBracket = closingToOpeningBracket(char)) !== null) {
                          for (var stackIdx = openerStack.length - 1; stackIdx >= 0; stackIdx--) {
                            var stackChar = openerStack[stackIdx].char;
                            if (stackChar === oppositeBracket || stackChar === closingToOpeningBracket(getCanonicalBracket(char)) || openingToClosingBracket(getCanonicalBracket(stackChar)) === char) {
                              bracketPairs.push([openerStack[stackIdx].seqIndex, si$7]);
                              openerStack.length = stackIdx;
                              break;
                            }
                          }
                        }
                      }
                    }
                    bracketPairs.sort(function(a5, b3) {
                      return a5[0] - b3[0];
                    });
                  }
                  for (var pairIdx = 0; pairIdx < bracketPairs.length; pairIdx++) {
                    var ref$1 = bracketPairs[pairIdx];
                    var openSeqIdx = ref$1[0];
                    var closeSeqIdx = ref$1[1];
                    var foundStrongType = false;
                    var useStrongType = 0;
                    for (var si$8 = openSeqIdx + 1; si$8 < closeSeqIdx; si$8++) {
                      var i$15 = seqIndices$1[si$8];
                      if (charTypes[i$15] & STRONG_TYPES_FOR_N_STEPS) {
                        foundStrongType = true;
                        var lr = charTypes[i$15] & R_TYPES_FOR_N_STEPS ? TYPE_R : TYPE_L;
                        if (lr === embedDirection) {
                          useStrongType = lr;
                          break;
                        }
                      }
                    }
                    if (foundStrongType && !useStrongType) {
                      useStrongType = sosType;
                      for (var si$9 = openSeqIdx - 1; si$9 >= 0; si$9--) {
                        var i$16 = seqIndices$1[si$9];
                        if (charTypes[i$16] & STRONG_TYPES_FOR_N_STEPS) {
                          var lr$1 = charTypes[i$16] & R_TYPES_FOR_N_STEPS ? TYPE_R : TYPE_L;
                          if (lr$1 !== embedDirection) {
                            useStrongType = lr$1;
                          } else {
                            useStrongType = embedDirection;
                          }
                          break;
                        }
                      }
                    }
                    if (useStrongType) {
                      charTypes[seqIndices$1[openSeqIdx]] = charTypes[seqIndices$1[closeSeqIdx]] = useStrongType;
                      if (useStrongType !== embedDirection) {
                        for (var si$10 = openSeqIdx + 1; si$10 < seqIndices$1.length; si$10++) {
                          if (!(charTypes[seqIndices$1[si$10]] & BN_LIKE_TYPES)) {
                            if (getBidiCharType(string[seqIndices$1[si$10]]) & TYPE_NSM) {
                              charTypes[seqIndices$1[si$10]] = useStrongType;
                            }
                            break;
                          }
                        }
                      }
                      if (useStrongType !== embedDirection) {
                        for (var si$11 = closeSeqIdx + 1; si$11 < seqIndices$1.length; si$11++) {
                          if (!(charTypes[seqIndices$1[si$11]] & BN_LIKE_TYPES)) {
                            if (getBidiCharType(string[seqIndices$1[si$11]]) & TYPE_NSM) {
                              charTypes[seqIndices$1[si$11]] = useStrongType;
                            }
                            break;
                          }
                        }
                      }
                    }
                  }
                  for (var si$12 = 0; si$12 < seqIndices$1.length; si$12++) {
                    if (charTypes[seqIndices$1[si$12]] & NEUTRAL_ISOLATE_TYPES) {
                      var niRunStart = si$12, niRunEnd = si$12;
                      var prevType$2 = sosType;
                      for (var si2 = si$12 - 1; si2 >= 0; si2--) {
                        if (charTypes[seqIndices$1[si2]] & BN_LIKE_TYPES) {
                          niRunStart = si2;
                        } else {
                          prevType$2 = charTypes[seqIndices$1[si2]] & R_TYPES_FOR_N_STEPS ? TYPE_R : TYPE_L;
                          break;
                        }
                      }
                      var nextType$1 = eosType;
                      for (var si2$1 = si$12 + 1; si2$1 < seqIndices$1.length; si2$1++) {
                        if (charTypes[seqIndices$1[si2$1]] & (NEUTRAL_ISOLATE_TYPES | BN_LIKE_TYPES)) {
                          niRunEnd = si2$1;
                        } else {
                          nextType$1 = charTypes[seqIndices$1[si2$1]] & R_TYPES_FOR_N_STEPS ? TYPE_R : TYPE_L;
                          break;
                        }
                      }
                      for (var sj$7 = niRunStart; sj$7 <= niRunEnd; sj$7++) {
                        charTypes[seqIndices$1[sj$7]] = prevType$2 === nextType$1 ? prevType$2 : embedDirection;
                      }
                      si$12 = niRunEnd;
                    }
                  }
                }
              }
              for (var i$17 = paragraph.start; i$17 <= paragraph.end; i$17++) {
                var level$3 = embedLevels[i$17];
                var type$1 = charTypes[i$17];
                if (level$3 & 1) {
                  if (type$1 & (TYPE_L | TYPE_EN | TYPE_AN)) {
                    embedLevels[i$17]++;
                  }
                } else {
                  if (type$1 & TYPE_R) {
                    embedLevels[i$17]++;
                  } else if (type$1 & (TYPE_AN | TYPE_EN)) {
                    embedLevels[i$17] += 2;
                  }
                }
                if (type$1 & BN_LIKE_TYPES) {
                  embedLevels[i$17] = i$17 === 0 ? paragraph.level : embedLevels[i$17 - 1];
                }
                if (i$17 === paragraph.end || getBidiCharType(string[i$17]) & (TYPE_S | TYPE_B)) {
                  for (var j$1 = i$17; j$1 >= 0 && getBidiCharType(string[j$1]) & TRAILING_TYPES; j$1--) {
                    embedLevels[j$1] = paragraph.level;
                  }
                }
              }
            }
            return {
              levels: embedLevels,
              paragraphs
            };
            function determineAutoEmbedLevel(start2, isFSI) {
              for (var i6 = start2; i6 < string.length; i6++) {
                var charType2 = charTypes[i6];
                if (charType2 & (TYPE_R | TYPE_AL)) {
                  return 1;
                }
                if (charType2 & (TYPE_B | TYPE_L) || isFSI && charType2 === TYPE_PDI) {
                  return 0;
                }
                if (charType2 & ISOLATE_INIT_TYPES) {
                  var pdi = indexOfMatchingPDI(i6);
                  i6 = pdi === -1 ? string.length : pdi;
                }
              }
              return 0;
            }
            function indexOfMatchingPDI(isolateStart) {
              var isolationLevel = 1;
              for (var i6 = isolateStart + 1; i6 < string.length; i6++) {
                var charType2 = charTypes[i6];
                if (charType2 & TYPE_B) {
                  break;
                }
                if (charType2 & TYPE_PDI) {
                  if (--isolationLevel === 0) {
                    return i6;
                  }
                } else if (charType2 & ISOLATE_INIT_TYPES) {
                  isolationLevel++;
                }
              }
              return -1;
            }
          }
          var data2 = "14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1";
          var mirrorMap;
          function parse3() {
            if (!mirrorMap) {
              var ref = parseCharacterMap(data2, true);
              var map2 = ref.map;
              var reverseMap = ref.reverseMap;
              reverseMap.forEach(function(value2, key) {
                map2.set(key, value2);
              });
              mirrorMap = map2;
            }
          }
          function getMirroredCharacter(char) {
            parse3();
            return mirrorMap.get(char) || null;
          }
          function getMirroredCharactersMap(string, embeddingLevels, start2, end2) {
            var strLen = string.length;
            start2 = Math.max(0, start2 == null ? 0 : +start2);
            end2 = Math.min(strLen - 1, end2 == null ? strLen - 1 : +end2);
            var map2 = /* @__PURE__ */ new Map();
            for (var i5 = start2; i5 <= end2; i5++) {
              if (embeddingLevels[i5] & 1) {
                var mirror = getMirroredCharacter(string[i5]);
                if (mirror !== null) {
                  map2.set(i5, mirror);
                }
              }
            }
            return map2;
          }
          function getReorderSegments(string, embeddingLevelsResult, start2, end2) {
            var strLen = string.length;
            start2 = Math.max(0, start2 == null ? 0 : +start2);
            end2 = Math.min(strLen - 1, end2 == null ? strLen - 1 : +end2);
            var segments = [];
            embeddingLevelsResult.paragraphs.forEach(function(paragraph) {
              var lineStart = Math.max(start2, paragraph.start);
              var lineEnd = Math.min(end2, paragraph.end);
              if (lineStart < lineEnd) {
                var lineLevels = embeddingLevelsResult.levels.slice(lineStart, lineEnd + 1);
                for (var i5 = lineEnd; i5 >= lineStart && getBidiCharType(string[i5]) & TRAILING_TYPES; i5--) {
                  lineLevels[i5] = paragraph.level;
                }
                var maxLevel = paragraph.level;
                var minOddLevel = Infinity;
                for (var i$1 = 0; i$1 < lineLevels.length; i$1++) {
                  var level = lineLevels[i$1];
                  if (level > maxLevel) {
                    maxLevel = level;
                  }
                  if (level < minOddLevel) {
                    minOddLevel = level | 1;
                  }
                }
                for (var lvl = maxLevel; lvl >= minOddLevel; lvl--) {
                  for (var i$2 = 0; i$2 < lineLevels.length; i$2++) {
                    if (lineLevels[i$2] >= lvl) {
                      var segStart = i$2;
                      while (i$2 + 1 < lineLevels.length && lineLevels[i$2 + 1] >= lvl) {
                        i$2++;
                      }
                      if (i$2 > segStart) {
                        segments.push([segStart + lineStart, i$2 + lineStart]);
                      }
                    }
                  }
                }
              }
            });
            return segments;
          }
          function getReorderedString(string, embedLevelsResult, start2, end2) {
            var indices = getReorderedIndices2(string, embedLevelsResult, start2, end2);
            var chars = [].concat(string);
            indices.forEach(function(charIndex, i5) {
              chars[i5] = (embedLevelsResult.levels[charIndex] & 1 ? getMirroredCharacter(string[charIndex]) : null) || string[charIndex];
            });
            return chars.join("");
          }
          function getReorderedIndices2(string, embedLevelsResult, start2, end2) {
            var segments = getReorderSegments(string, embedLevelsResult, start2, end2);
            var indices = [];
            for (var i5 = 0; i5 < string.length; i5++) {
              indices[i5] = i5;
            }
            segments.forEach(function(ref) {
              var start3 = ref[0];
              var end3 = ref[1];
              var slice2 = indices.slice(start3, end3 + 1);
              for (var i6 = slice2.length; i6--; ) {
                indices[end3 - i6] = slice2[i6];
              }
            });
            return indices;
          }
          exports2.closingToOpeningBracket = closingToOpeningBracket;
          exports2.getBidiCharType = getBidiCharType;
          exports2.getBidiCharTypeName = getBidiCharTypeName;
          exports2.getCanonicalBracket = getCanonicalBracket;
          exports2.getEmbeddingLevels = getEmbeddingLevels;
          exports2.getMirroredCharacter = getMirroredCharacter;
          exports2.getMirroredCharactersMap = getMirroredCharactersMap;
          exports2.getReorderSegments = getReorderSegments;
          exports2.getReorderedIndices = getReorderedIndices2;
          exports2.getReorderedString = getReorderedString;
          exports2.openingToClosingBracket = openingToClosingBracket;
          Object.defineProperty(exports2, "__esModule", { value: true });
          return exports2;
        })({});
        return bidi2;
      }
      return bidiFactory2;
    }));
  }
});

// ../../node_modules/.pnpm/hyphen@1.14.1/node_modules/hyphen/hyphen.js
var require_hyphen = __commonJS({
  "../../node_modules/.pnpm/hyphen@1.14.1/node_modules/hyphen/hyphen.js"(exports, module) {
    (function(root, factory2) {
      if (typeof define === "function" && define.amd) {
        define([], factory2);
      } else if (typeof module === "object" && module.exports) {
        module.exports = factory2();
      } else {
        root.createHyphenator = factory2();
      }
    })(exports, function() {
      function createTextReader(setup) {
        var char1 = "";
        var char2 = "";
        var i5 = 0;
        var verifier = setup();
        return function(text) {
          while (i5 < text.length) {
            char1 = text.charAt(i5++);
            char2 = text.charAt(i5);
            var verified = verifier(char1, char2);
            if (verified !== void 0) {
              return verified;
            }
          }
        };
      }
      var isNotLetter = RegExp.prototype.test.bind(
        /\s|(?![\'])[\!-\@\[-\`\{-\~\u2013-\u203C]/
      );
      function createHTMLVerifier() {
        var skip = false;
        return function(accumulate, chars) {
          if (skip) {
            if (chars[0] === ">") {
              accumulate();
              skip = false;
            }
          } else if (chars[0] === "<" && (!isNotLetter(chars[1]) || chars[1] === "/")) {
            skip = true;
          }
          return skip;
        };
      }
      function createHyphenCharVerifier(hyphenChar) {
        var skip = false;
        return function(accumulate, chars) {
          if (skip) {
            if (!isNotLetter(chars[0]) && isNotLetter(chars[1])) {
              accumulate();
              skip = false;
            }
          } else if (!isNotLetter(chars[0]) && chars[1] === hyphenChar) {
            skip = true;
          }
          return skip;
        };
      }
      function createHyphenationVerifier(verifiers, minWordLength) {
        return function() {
          var accum0 = "";
          var accum = "";
          function accumulate() {
            accum0 += accum;
            accum = "";
          }
          function resolveWith(value2) {
            accum0 = "";
            accum = "";
            return value2;
          }
          return function(char1, char2) {
            accum += char1;
            var skip = verifiers.reduce(function(skip2, verify) {
              return skip2 || verify(accumulate, [char1, char2]);
            }, false);
            if (!skip) {
              if (isNotLetter(char1) && !isNotLetter(char2)) {
                accumulate();
              }
              if (!isNotLetter(char1) && isNotLetter(char2)) {
                if (accum.length >= minWordLength) {
                  return resolveWith([accum0, accum]);
                } else {
                  accumulate();
                }
              }
            }
            if (char2 === "") {
              if (accum.length < minWordLength || skip) {
                accumulate();
              }
              return resolveWith([accum0, accum]);
            }
          };
        };
      }
      function levelsToMarkers(levels) {
        var markers = [];
        for (var i5 = 0; i5 < levels.length; i5++)
          if ((levels[i5] & 1) === 1) markers.push(i5);
        return markers;
      }
      function insertChar(text, hyphenChar, markers) {
        if (markers.length === 0) {
          return text;
        }
        var resultText = [text.slice(0, markers[0])];
        if (markers.length > 1)
          for (var i5 = 0, j = 1; j < markers.length; i5++, j++) {
            resultText.push(text.slice(markers[i5], markers[j]));
          }
        resultText.push(text.slice(markers[markers.length - 1]));
        return resultText.join(hyphenChar);
      }
      function markersFromExceptionsDefinition(exceptionsList) {
        return exceptionsList.reduce(function(markersDict, definition) {
          var i5 = 0, markers = [];
          while ((i5 = definition.indexOf("-", i5 + 1)) > -1) {
            markers.push(i5);
          }
          markersDict[definition.toLocaleLowerCase().replace(/\-/g, "")] = markers;
          return markersDict;
        }, {});
      }
      function createCharIterator(str) {
        var i5 = 0;
        function nextChar() {
          return str[i5++];
        }
        return nextChar;
      }
      function createStringSlicer(str) {
        var i5 = 0, slice2 = str;
        function next() {
          slice2 = str.slice(i5++);
          if (slice2.length < 3) {
            return;
          }
          return slice2;
        }
        function isFirstCharacter() {
          return i5 === 2;
        }
        return [next, isFirstCharacter];
      }
      function hyphenateWord(text, loweredText, levelsTable, patternTrie) {
        var levels = new Array(text.length + 1), loweredText = ("." + loweredText + ".").split(""), wordSlice, letter, triePtr, trieNode, patternLevelsIndex, patternLevels, patternEntityIndex = -1, slicer, nextSlice, isFirstCharacter, nextLetter;
        for (var i5 = levels.length; i5--; ) levels[i5] = 0;
        slicer = createStringSlicer(loweredText);
        nextSlice = slicer[0];
        isFirstCharacter = slicer[1];
        while (wordSlice = nextSlice()) {
          patternEntityIndex++;
          if (isFirstCharacter()) {
            patternEntityIndex--;
          }
          triePtr = patternTrie;
          nextLetter = createCharIterator(wordSlice);
          while (letter = nextLetter()) {
            if ((trieNode = triePtr[letter]) === void 0) {
              break;
            }
            triePtr = {};
            patternLevelsIndex = -1;
            switch (Object.prototype.toString.call(trieNode)) {
              case "[object Array]":
                triePtr = trieNode[0];
                patternLevelsIndex = trieNode[1];
                break;
              case "[object Object]":
                triePtr = trieNode;
                break;
              case "[object Number]":
                patternLevelsIndex = trieNode;
                break;
            }
            if (patternLevelsIndex < 0) {
              continue;
            }
            patternLevels = levelsTable[patternLevelsIndex];
            for (var k3 = 0; k3 < patternLevels.length; k3++)
              levels[patternEntityIndex + k3] = Math.max(
                patternLevels[k3],
                levels[patternEntityIndex + k3]
              );
          }
        }
        levels[0] = levels[1] = levels[levels.length - 1] = levels[levels.length - 2] = 0;
        return levelsToMarkers(levels);
      }
      function start2(text, levelsTable, patterns, cache2, markersDict, hyphenChar, skipHTML, minWordLength, isAsync) {
        function done() {
          resolveNewText(newText);
        }
        var newText = "", fragments, readText = createTextReader(
          createHyphenationVerifier(
            (skipHTML ? [createHTMLVerifier()] : []).concat(
              createHyphenCharVerifier(hyphenChar)
            ),
            minWordLength
          )
        ), resolveNewText = function() {
        };
        function nextTick() {
          var loopStart = /* @__PURE__ */ new Date();
          while ((!isAsync || /* @__PURE__ */ new Date() - loopStart < 10) && (fragments = readText(text))) {
            if (fragments[1]) {
              var cacheKey = fragments[1].length ? "~" + fragments[1] : "";
              if (!Object.prototype.hasOwnProperty.call(cache2, cacheKey)) {
                var loweredWord = fragments[1].toLocaleLowerCase();
                if (!Object.prototype.hasOwnProperty.call(markersDict, loweredWord))
                  markersDict[loweredWord] = hyphenateWord(
                    fragments[1],
                    loweredWord,
                    levelsTable,
                    patterns
                  );
                cache2[cacheKey] = insertChar(
                  fragments[1],
                  hyphenChar,
                  markersDict[loweredWord]
                );
              }
              fragments[1] = cache2[cacheKey];
            }
            newText += fragments[0] + fragments[1];
          }
          if (!fragments) {
            done();
          } else {
            setTimeout(nextTick);
          }
        }
        if (isAsync) {
          setTimeout(nextTick);
          return new Promise(function(resolve4) {
            resolveNewText = resolve4;
          });
        } else {
          nextTick();
          return newText;
        }
      }
      var SETTING_DEFAULT_ASYNC = false;
      var SETTING_DEFAULT_EXCEPTIONS = [];
      var SETTING_DEFAULT_HTML = true;
      var SETTING_DEFAULT_HYPH_CHAR = "\xAD";
      var SETTING_DEFAULT_MIN_WORD_LENGTH = 5;
      var SETTING_NAME_ASYNC = "async";
      var SETTING_NAME_EXCEPTIONS = "exceptions";
      var SETTING_NAME_HTML = "html";
      var SETTING_NAME_HYPH_CHAR = "hyphenChar";
      var SETTING_NAME_MIN_WORD_LENGTH = "minWordLength";
      var _global2 = typeof global === "object" ? global : typeof window === "object" ? window : typeof self === "object" ? self : false ? void 0 : {};
      function extend2(target, source) {
        target = target || {};
        for (var key in source) {
          target[key] = source[key];
        }
        return target;
      }
      function validateArray(value2) {
        return value2 instanceof Array;
      }
      function keyOrDefault(object, key, defaultValue, test3) {
        if (key in object && (test3 ? test3(object[key]) : true)) {
          return object[key];
        }
        return defaultValue;
      }
      function exceptionsFromMarkers(markers, hyphenChar) {
        var exceptions = {};
        for (var word in markers) {
          exceptions["~" + word] = insertChar(word, hyphenChar, markers[word]);
        }
        return exceptions;
      }
      function exceptionsFromDefinition(exceptionsList, hyphenChar) {
        return exceptionsList.reduce(function(exceptions, exception) {
          exceptions["~" + exception.replace(/\-/g, "")] = exception.replace(
            /\-/g,
            hyphenChar
          );
          return exceptions;
        }, {});
      }
      function createHyphenator(patternsDefinition, options) {
        options = options || {};
        var asyncMode = keyOrDefault(
          options,
          SETTING_NAME_ASYNC,
          SETTING_DEFAULT_ASYNC
        ), caches = {}, markersDict = {}, exceptions = {}, hyphenChar = keyOrDefault(
          options,
          SETTING_NAME_HYPH_CHAR,
          SETTING_DEFAULT_HYPH_CHAR
        ), levelsTable = patternsDefinition[0], patterns = patternsDefinition[1], minWordLength = keyOrDefault(
          options,
          SETTING_NAME_MIN_WORD_LENGTH,
          SETTING_DEFAULT_MIN_WORD_LENGTH
        ) >> 0, skipHTML = keyOrDefault(options, SETTING_NAME_HTML, SETTING_DEFAULT_HTML), userExceptions = keyOrDefault(
          options,
          SETTING_NAME_EXCEPTIONS,
          SETTING_DEFAULT_EXCEPTIONS,
          validateArray
        );
        var cacheKey = hyphenChar + minWordLength;
        exceptions[cacheKey] = {};
        if (patternsDefinition[2]) {
          exceptions[cacheKey] = exceptionsFromMarkers(
            patternsDefinition[2],
            hyphenChar
          );
          markersDict = patternsDefinition[2];
        }
        if (userExceptions && userExceptions.length) {
          exceptions[cacheKey] = extend2(
            exceptions[cacheKey],
            exceptionsFromDefinition(userExceptions, hyphenChar)
          );
          markersDict = extend2(
            markersDict,
            markersFromExceptionsDefinition(userExceptions)
          );
        }
        caches[cacheKey] = extend2({}, exceptions[cacheKey]);
        if (asyncMode && !("Promise" in _global2)) {
          throw new Error(
            "Failed to create hyphenator: Could not find global Promise object, needed for hyphenator to work in async mode"
          );
        }
        return function(text, options2) {
          options2 = options2 || {};
          var localHyphenChar = keyOrDefault(
            options2,
            SETTING_NAME_HYPH_CHAR,
            hyphenChar
          ), localMinWordLength = keyOrDefault(options2, SETTING_NAME_MIN_WORD_LENGTH, minWordLength) >> 0, localUserExceptions = keyOrDefault(
            options2,
            SETTING_NAME_EXCEPTIONS,
            SETTING_DEFAULT_EXCEPTIONS,
            validateArray
          ), cacheKey2 = localHyphenChar + localMinWordLength;
          if (!exceptions[cacheKey2] && patternsDefinition[2]) {
            exceptions[cacheKey2] = exceptionsFromMarkers(
              patternsDefinition[2],
              localHyphenChar
            );
            caches[cacheKey2] = extend2(caches[cacheKey2], exceptions[cacheKey2]);
          }
          if (localUserExceptions && localUserExceptions.length) {
            exceptions[cacheKey2] = extend2(
              exceptions[cacheKey2],
              exceptionsFromDefinition(localUserExceptions, localHyphenChar)
            );
            markersDict = extend2(
              markersDict,
              markersFromExceptionsDefinition(localUserExceptions)
            );
            caches[cacheKey2] = extend2(caches[cacheKey2], exceptions[cacheKey2]);
          }
          return start2(
            text,
            levelsTable,
            patterns,
            caches[cacheKey2],
            markersDict,
            localHyphenChar,
            skipHTML,
            localMinWordLength,
            asyncMode
          );
        };
      }
      return createHyphenator;
    });
  }
});

// ../../node_modules/.pnpm/hyphen@1.14.1/node_modules/hyphen/index.js
var require_hyphen2 = __commonJS({
  "../../node_modules/.pnpm/hyphen@1.14.1/node_modules/hyphen/index.js"(exports, module) {
    module.exports = require_hyphen();
  }
});

// ../../node_modules/.pnpm/hyphen@1.14.1/node_modules/hyphen/patterns/en-us.js
var require_en_us = __commonJS({
  "../../node_modules/.pnpm/hyphen@1.14.1/node_modules/hyphen/patterns/en-us.js"(exports, module) {
    (function(root, exports2) {
      if (typeof define === "function" && define.amd) {
        define([], function() {
          return exports2;
        });
      } else if (typeof module === "object" && module.exports) {
        module.exports = exports2;
      } else {
        root.hyphenationPatternsEnUs = exports2;
      }
    })(exports, [
      [
        [0, 0, 0, 4],
        [0, 0, 4],
        [0, 0, 1],
        [0, 0, 3],
        [0, 0, 5],
        [0, 0, 0, 5],
        [0, 0, 0, 0, 5],
        [0, 0, 0, 0, 0, 5],
        [0, 0, 0, 2],
        [0, 0, 2],
        [0, 0, 0, 0, 0, 0, 5],
        [0, 0, 0, 3],
        [0, 0, 0, 0, 3],
        [0, 0, 5, 0, 5],
        [0, 0, 0, 3, 4],
        [0, 0, 0, 1],
        [0, 0, 0, 5, 5],
        [0, 0, 0, 0, 4],
        [4],
        [0, 5],
        [0, 0, 5, 5],
        [0, 4],
        [4, 2],
        [0, 3],
        [0, 2],
        [2],
        [4, 0, 4],
        [3],
        [0, 4, 4],
        [0, 1],
        [0, 5, 0, 5],
        [5, 5],
        [5],
        [0, 4, 5],
        [0, 4, 1],
        [0, 0, 3, 3],
        [0, 0, 0, 0, 0, 4],
        [2, 2],
        [0, 0, 5, 0, 4],
        [5, 5, 0, 4],
        [0, 0, 4, 2],
        [1],
        [2, 1],
        [4, 1],
        [4, 0, 2],
        [4, 0, 5],
        [4, 0, 0, 4],
        [4, 3],
        [2, 3],
        [0, 0, 0, 0, 5, 4],
        [3, 0, 3],
        [3, 0, 0, 5],
        [0, 2, 2],
        [5, 0, 0, 4],
        [0, 0, 0, 0, 0, 3],
        [2, 5, 2],
        [4, 5],
        [2, 5],
        [2, 0, 0, 4],
        [0, 0, 0, 5, 0, 5],
        [0, 5, 4],
        [4, 0, 3],
        [4, 0, 1],
        [3, 0, 0, 2],
        [0, 0, 2, 5],
        [1, 4, 4],
        [4, 3, 2],
        [0, 0, 0, 5, 4],
        [3, 4],
        [1, 2],
        [2, 3, 4],
        [0, 0, 2, 2],
        [0, 1, 4],
        [0, 3, 0, 4],
        [0, 1, 2],
        [1, 4, 3],
        [5, 0, 3],
        [0, 4, 0, 3],
        [1, 0, 1],
        [0, 5, 2],
        [4, 1, 4],
        [2, 1, 2],
        [0, 1, 1],
        [0, 4, 3],
        [0, 0, 0, 0, 2],
        [0, 0, 4, 1],
        [0, 0, 2, 4],
        [0, 5, 0, 0, 5],
        [0, 3, 0, 0, 3],
        [0, 0, 1, 0, 2],
        [0, 4, 0, 4],
        [0, 4, 3, 0, 3],
        [0, 1, 0, 0, 4],
        [0, 0, 3, 4],
        [0, 2, 5],
        [0, 0, 4, 4],
        [0, 0, 4, 0, 4],
        [0, 0, 0, 2, 5],
        [0, 1, 0, 3],
        [0, 4, 2],
        [0, 2, 0, 5],
        [4, 1, 2],
        [1, 0, 4],
        [5, 4],
        [3, 4, 4],
        [4, 3, 3],
        [5, 0, 0, 5],
        [2, 5, 3],
        [0, 5, 5],
        [0, 4, 0, 2],
        [3, 0, 0, 4],
        [0, 0, 4, 3],
        [2, 0, 4],
        [5, 0, 5],
        [4, 5, 4],
        [0, 0, 0, 0, 0, 0, 4],
        [0, 0, 3, 0, 3],
        [0, 4, 0, 0, 4],
        [5, 5, 2],
        [2, 0, 1],
        [4, 0, 0, 5],
        [0, 2, 5, 5],
        [5, 2],
        [4, 4, 4],
        [1, 4],
        [4, 4],
        [0, 2, 0, 0, 4],
        [0, 3, 3],
        [0, 5, 0, 0, 4],
        [0, 0, 0, 4, 5],
        [0, 0, 0, 1, 3],
        [0, 0, 2, 1],
        [0, 4, 0, 5],
        [0, 0, 0, 4, 4],
        [0, 0, 5, 4],
        [5, 0, 0, 5, 5],
        [0, 0, 0, 3, 0, 3],
        [0, 0, 0, 0, 1],
        [3, 0, 4],
        [0, 2, 0, 4],
        [1, 1],
        [3, 0, 1],
        [2, 3, 2],
        [1, 2, 2],
        [0, 0, 3, 0, 5],
        [5, 0, 4],
        [0, 0, 0, 0, 4, 3],
        [0, 1, 0, 4],
        [0, 0, 0, 5, 2],
        [0, 0, 0, 0, 4, 5],
        [5, 0, 0, 0, 4],
        [0, 0, 2, 3],
        [0, 0, 0, 3, 3],
        [0, 0, 0, 3, 2],
        [0, 0, 2, 0, 2],
        [5, 0, 0, 3],
        [2, 0, 2],
        [0, 4, 0, 1],
        [0, 0, 0, 0, 5, 0, 5],
        [2, 1, 4],
        [1, 0, 2],
        [0, 3, 2],
        [0, 0, 0, 1, 6, 1],
        [0, 0, 4, 1, 0, 1],
        [0, 0, 5, 0, 1],
        [0, 0, 3, 0, 1],
        [0, 0, 3, 6],
        [0, 0, 5, 2],
        [0, 0, 0, 2, 3],
        [0, 0, 6, 1, 0, 1],
        [0, 0, 6],
        [0, 0, 4, 0, 1],
        [0, 0, 0, 5, 2, 1],
        [0, 0, 1, 4],
        [0, 0, 6, 3],
        [0, 0, 0, 1, 2],
        [0, 0, 0, 5, 0, 1],
        [0, 0, 0, 0, 0, 6],
        [0, 0, 0, 6, 0, 4],
        [0, 0, 0, 6, 0, 1],
        [0, 0, 5, 0, 0, 1],
        [0, 0, 5, 0, 0, 5],
        [0, 0, 1, 0, 3, 0, 5],
        [0, 0, 0, 0, 6],
        [0, 0, 3, 0, 1, 2],
        [0, 0, 3, 0, 0, 5],
        [0, 0, 0, 3, 0, 1, 1],
        [0, 0, 6, 1],
        [0, 1, 3],
        [0, 0, 0, 0, 2, 1],
        [0, 0, 0, 0, 2, 2],
        [0, 0, 0, 1, 0, 5],
        [0, 0, 2, 1, 1],
        [0, 0, 0, 6, 2],
        [0, 0, 0, 5, 1],
        [0, 0, 0, 1, 1, 2],
        [0, 0, 6, 0, 1, 3],
        [0, 0, 0, 0, 1, 1],
        [0, 2, 0, 0, 3, 0, 6],
        [1, 0, 2, 1],
        [0, 0, 5, 0, 0, 0, 1],
        [0, 0, 3, 0, 0, 3],
        [2, 1, 0, 2],
        [3, 0, 5],
        [0, 0, 0, 0, 1, 5],
        [0, 1, 0, 3, 0, 0, 0, 5],
        [0, 0, 0, 0, 3, 5],
        [0, 0, 1, 0, 1, 1],
        [0, 0, 0, 2, 1],
        [1, 6, 3, 3, 0, 0, 0, 1],
        [0, 2, 3, 4],
        [0, 3, 0, 0, 0, 6],
        [5, 0, 2, 0, 0, 0, 1],
        [0, 0, 0, 0, 0, 1],
        [0, 0, 0, 1, 6],
        [0, 0, 3, 1],
        [0, 2, 1],
        [2, 1, 4, 3, 1],
        [0, 0, 2, 3, 0, 5],
        [0, 3, 5, 0, 0, 1, 4],
        [0, 0, 0, 0, 0, 1, 2],
        [0, 0, 0, 0, 6, 3],
        [0, 0, 1, 0, 1],
        [1, 0, 6],
        [1, 0, 5],
        [0, 0, 4, 3, 5],
        [0, 0, 0, 6, 3],
        [0, 3, 0, 0, 0, 6, 1],
        [0, 0, 0, 4, 1],
        [1, 0, 0, 3, 0, 6],
        [0, 0, 3, 6, 0, 2],
        [0, 2, 3],
        [0, 5, 0, 3],
        [0, 0, 1, 0, 0, 1, 1],
        [1, 0, 0, 0, 3],
        [1, 0, 0, 5],
        [3, 0, 0, 1, 1],
        [0, 0, 0, 3, 1],
        [0, 0, 0, 1, 0, 0, 1],
        [0, 0, 0, 0, 0, 6, 1],
        [0, 0, 3, 0, 0, 0, 3],
        [3, 0, 3, 0, 5],
        [0, 0, 1, 2, 0, 1],
        [0, 3, 0, 1],
        [5, 0, 0, 0, 1, 0, 1],
        [5, 0, 0, 1, 0, 1],
        [0, 0, 0, 1, 5],
        [0, 0, 0, 4, 0, 1],
        [0, 0, 0, 0, 6, 5],
        [0, 0, 0, 0, 1, 6],
        [0, 0, 0, 0, 4, 0, 2],
        [0, 5, 0, 0, 0, 0, 2],
        [0, 0, 0, 2, 0, 5],
        [0, 3, 0, 2, 0, 1],
        [5, 0, 0, 3, 0, 1],
        [0, 0, 0, 1, 4],
        [5, 0, 0, 1],
        [0, 0, 0, 0, 0, 2],
        [0, 0, 0, 3, 0, 0, 1, 1],
        [0, 1, 0, 3, 4],
        [0, 3, 0, 0, 0, 0, 6],
        [0, 3, 0, 2, 1, 3],
        [0, 0, 4, 0, 0, 3, 0, 4],
        [0, 5, 0, 0, 0, 1],
        [0, 5, 0, 0, 3],
        [0, 0, 0, 3, 1, 1],
        [0, 6, 3, 4],
        [0, 0, 0, 6, 1],
        [0, 0, 0, 6],
        [0, 0, 0, 0, 0, 6, 0, 4],
        [0, 0, 0, 5, 0, 0, 1, 3],
        [0, 0, 2, 1, 3],
        [0, 0, 3, 0, 0, 0, 1],
        [1, 0, 0, 0, 0, 3],
        [0, 0, 0, 0, 3, 3],
        [3, 0, 0, 0, 2],
        [0, 0, 0, 0, 3, 6, 3, 2],
        [0, 0, 0, 3, 0, 0, 4],
        [0, 5, 0, 0, 0, 3],
        [0, 0, 0, 0, 0, 2, 1],
        [0, 0, 6, 3, 0, 3],
        [0, 0, 0, 0, 0, 0, 6],
        [0, 0, 0, 0, 5, 0, 0, 5],
        [3, 0, 4, 5, 1],
        [0, 3, 0, 0, 1],
        [0, 0, 2, 3, 1],
        [0, 0, 0, 5, 6],
        [0, 0, 0, 1, 1],
        [6],
        [0, 0, 1, 0, 0, 1],
        [0, 0, 5, 0, 0, 0, 0, 1],
        [0, 3, 0, 0, 5],
        [5, 0, 3, 0, 0, 5],
        [0, 0, 0, 0, 0, 1, 0, 0, 0, 1],
        [1, 0, 0, 2],
        [0, 0, 3, 0, 0, 1],
        [0, 0, 1, 0, 6, 5],
        [3, 0, 0, 0, 0, 1],
        [3, 2, 0, 1, 1],
        [3, 2],
        [0, 0, 0, 0, 0, 0, 3],
        [0, 2, 1, 3, 0, 0, 1],
        [0, 5, 0, 0, 0, 5, 3],
        [0, 2, 1, 0, 0, 5],
        [1, 0, 0, 0, 1],
        [0, 0, 0, 0, 0, 1, 1],
        [0, 0, 0, 1, 0, 4, 1],
        [0, 0, 2, 0, 0, 1, 6],
        [1, 0, 0, 0, 3, 2],
        [5, 0, 0, 1, 1],
        [0, 6, 0, 6],
        [5, 0, 0, 2],
        [3, 0, 0, 1],
        [0, 3, 0, 0, 2],
        [0, 0, 1, 5, 0, 0, 1],
        [0, 1, 0, 2],
        [0, 0, 0, 0, 3, 0, 0, 1],
        [0, 0, 0, 0, 0, 0, 0, 3, 3],
        [0, 0, 0, 0, 0, 0, 1],
        [3, 0, 0, 1, 0, 1],
        [3, 0, 0, 0, 1, 5],
        [0, 1, 0, 1, 0, 0, 3],
        [0, 0, 0, 0, 0, 1, 0, 1],
        [0, 1, 0, 0, 5, 0, 1],
        [0, 1, 0, 1],
        [0, 0, 1, 0, 0, 3, 3],
        [0, 0, 0, 0, 0, 3, 6, 2],
        [0, 0, 0, 0, 1, 4],
        [0, 0, 0, 5, 0, 0, 1],
        [0, 3, 1]
      ],
      {
        ".": {
          a: {
            c: { h: 0 },
            d: { d: { e: { r: 1 } } },
            f: { t: 2 },
            l: { t: 3 },
            m: { a: { t: 4 } },
            n: { c: 4, g: 0, i: { m: 5 }, t: [{ e: 3, i: { s: 6 } }, 0] },
            r: { s: 4, t: { i: { e: 1 }, y: 1 } },
            s: { c: 3, p: 2, s: 2, t: { e: { r: 7 } } },
            t: { o: { m: 6 } },
            u: { d: 2 },
            v: { i: 1 },
            w: { n: 0 }
          },
          b: {
            a: { g: 1, n: { a: 4 }, s: { e: 0 } },
            e: { r: [{ a: 4 }, 0], s: { m: 3, t: { o: 4 } } },
            r: { i: 8 },
            u: { t: { t: { i: 0 } } }
          },
          c: {
            a: {
              m: { p: { e: 0 } },
              n: { c: 5 },
              p: { a: { b: 6 } },
              r: { o: { l: 5 } },
              t: 1
            },
            e: { l: { a: 1 } },
            h: [{ i: { l: { l: { i: 7 } } } }, 1],
            i: [{ t: { r: 5 } }, 9],
            o: { e: 3, r: [{ n: { e: { r: 5 } } }, 1], n: { g: { r: 5 } } }
          },
          d: {
            e: {
              m: { o: { i: 1 } },
              o: 3,
              r: { a: 3, i: [{ v: { a: 4 } }, 3] },
              s: { c: 0 }
            },
            i: { c: { t: { i: { o: 10 } } } },
            o: { t: 1 },
            u: { c: 1, m: { b: 6 } },
            r: { i: { v: 67 } }
          },
          e: {
            a: { r: { t: { h: 7 } }, s: { i: 11 } },
            b: 1,
            e: { r: 0 },
            g: 9,
            l: { d: 4, e: { m: 3 } },
            n: { a: { m: 12 }, g: 3, s: 3 },
            q: { u: { i: { t: 13 } } },
            r: { r: { i: 1 } },
            s: 3,
            u: [{ l: { e: { r: 1 } } }, 3],
            y: { e: 5 },
            t: { h: { y: { l: 162 } } },
            v: [{ e: { r: { s: { i: { b: 158 } } } } }, 9]
          },
          f: { e: { s: 11 }, o: { r: { m: { e: { r: 5 } } } } },
          g: {
            a: [{ s: { o: { m: 163 } } }, 9],
            e: [{ n: { t: 14 }, o: { g: 4, m: { e: 1 }, t: 164 } }, 9],
            i: { a: 4, b: 1 },
            o: { r: 1 }
          },
          h: {
            a: { n: { d: { i: 6 }, k: 5 } },
            e: [
              {
                r: { o: { i: 6, e: 3 } },
                s: 11,
                t: 11,
                m: { o: 165 },
                p: { a: 166 }
              },
              9
            ],
            i: { b: 3, e: { r: 3 } },
            o: { n: { e: { y: 5 }, o: 11 }, v: 5 }
          },
          i: {
            d: { l: 1, o: { l: 12 } },
            m: { m: 3, p: { i: { n: 4 } } },
            n: [{ c: { i: 3 }, e: 8, k: 9, s: 3, u: { t: 167 } }, 2],
            r: { r: 4 },
            s: { i: 1 }
          },
          j: { u: { r: 3 } },
          l: {
            a: { c: { y: 1 }, m: 1, t: { e: { r: 5 }, h: 6 } },
            e: [{ g: { e: 5 }, n: 0, p: 5, v: 15, i: { c: { e: { s: 170 } } } }, 9],
            i: { g: [{ a: 5 }, 1], n: 9, o: 3, t: 1 }
          },
          m: {
            a: { g: { a: 16 }, l: { o: 5 }, n: { a: 5 }, r: { t: { i: 5 } } },
            e: [
              {
                r: { c: 11 },
                t: { e: { r: 4 }, a: { l: { a: 0 } } },
                g: { a: { l: 171 } }
              },
              9
            ],
            i: {
              s: [{ t: { i: 6 }, e: { r: { s: 173 } } }, 15],
              m: { i: { c: 172 } }
            },
            o: { n: { e: 11 }, r: { o: 3 } },
            u: { t: { a: [{ b: 6 }, 4] } }
          },
          n: {
            i: { c: 1 },
            e: { o: { f: 174 } },
            o: { e: { t: { h: 15 } }, n: { e: { m: 175 } } }
          },
          o: {
            d: [{ d: 5 }, 9],
            f: { t: { e: 4 } },
            r: { a: { t: { o: 4 } }, c: 3, d: 2, t: 3 },
            s: [{ t: { l: 1 } }, 3],
            t: { h: 11 },
            u: { t: 11 }
          },
          p: {
            e: { d: { a: { l: 5 } }, t: { e: 4, i: { t: 4 } } },
            i: { e: 1, o: { n: 5 }, t: 9 },
            r: { e: { m: 11, a: { m: 15 } } },
            o: { l: { y: { s: 137 } }, s: { t: { a: { m: 137 } } } }
          },
          r: {
            a: {
              c: 1,
              n: { t: 0 },
              t: { i: { o: { n: { a: 7 } } } },
              v: { e: { n: { o: 176 } } }
            },
            e: {
              e: [{ c: 173 }, 8],
              m: { i: { t: 4 } },
              s: [{ t: { a: { t: 4 } } }, 8]
            },
            i: { g: 1, t: { u: 5 } },
            o: { q: 1, s: { t: 5 }, w: { d: 5 } },
            u: { d: 1 }
          },
          s: {
            c: { i: { e: 11 } },
            e: {
              l: { f: 6, l: 6 },
              n: 9,
              r: { i: { e: 4 } },
              m: { i: [{ c: 0, d: 177, p: 36, r: 36, s: 178, v: 36 }, 6] }
            },
            h: 9,
            i: [{ n: { g: 17 } }, 9],
            t: [{ a: { b: { l: 5 } } }, 1],
            y: 9,
            p: { h: { i: { n: 179 } }, i: { n: { o: 137 } } }
          },
          t: {
            a: [{ p: { e: { s: { t: { r: 180 } } } } }, 1],
            e: [{ n: { a: { n: 5 } }, l: { e: { g: { r: 3 } } } }, 1],
            h: 9,
            i: [{ l: 0, m: { o: 16 }, n: { g: 17, k: 5 } }, 9],
            o: { n: { a: 0 }, p: [{ i: 5, o: { g: 170 } }, 1], u: { s: 5 }, q: 9 },
            r: { i: { b: { u: { t: 6 } } } }
          },
          u: {
            n: {
              a: [{ t: { t: 144 } }, 2],
              c: { e: 3 },
              d: { e: { r: 7 } },
              e: [{ r: { r: 181 } }, 2],
              k: 4,
              o: 4,
              u: 3
            },
            p: 3,
            r: { e: 11 },
            s: { a: 4 }
          },
          v: {
            e: { n: { d: { e: 0 } }, r: { a: 4 } },
            i: { c: { a: { r: 151 } } }
          },
          w: { i: { l: { i: 5 } }, e: { b: { l: 131 } } },
          y: { e: 1 },
          k: { i: { l: { n: { i: 168 } } }, o: { r: { t: { e: 169 } } } }
        },
        a: {
          b: {
            ".": 18,
            a: { l: 19, n: 19 },
            e: [{ r: { d: 4 } }, 8],
            i: { a: 5, t: { a: { b: 13 } } },
            l: { a: { t: 4 } },
            o: { l: { i: { z: 20, c: 19 } } },
            r: [{ o: { g: 4 } }, 18],
            u: { l: 3 }
          },
          c: {
            a: { r: [{ d: 4, o: 4 }, 21], b: { l: 24 } },
            e: { o: { u: 19 }, r: 2 },
            h: { e: { t: 19 } },
            i: [{ e: 23, n: 2, o: 23 }, 22],
            r: { o: { b: 4 } },
            t: { i: { f: 5 } },
            u: { l: 3, m: 1 }
          },
          d: [
            {
              d: { i: { n: 1 } },
              e: { r: { ".": 4 } },
              i: [{ a: 23, c: { a: 3 }, e: { r: 0 }, o: 23, t: 23, u: 19 }, 25],
              l: { e: 1 },
              o: { w: 3 },
              r: { a: { n: 4 } },
              s: { u: 1 },
              u: [{ c: 23, m: 4 }, 18]
            },
            24
          ],
          e: { r: [{ i: { e: 17 } }, 1] },
          f: [{ f: [{ i: { s: { h: 170 } } }, 0] }, 24],
          g: {
            a: { b: 21, n: 0 },
            e: { l: { l: 4 }, o: 0, u: 18 },
            i: 2,
            l: 26,
            n: 2,
            o: [{ g: 27, n: { i: 3 } }, 24],
            u: { e: { r: 19 }, l: 4 },
            y: 21
          },
          h: { a: 23, e: 23, l: 1, o: 23 },
          i: [
            {
              a: 19,
              c: { ".": 23 },
              l: { y: 4 },
              n: [{ i: { n: 5 }, o: 5 }, 28],
              t: { e: { n: 5 } }
            },
            9
          ],
          j: 29,
          k: { e: { n: 2 } },
          l: {
            a: { b: 4, d: 3, r: 21 },
            d: { i: 18 },
            e: [{ n: { d: 3, t: { i: 21 } }, o: 30 }, 25],
            i: [{ a: { ".": 1 }, e: 0 }, 2],
            l: { e: { v: 4 }, i: { c: 18 } },
            m: 18,
            o: { g: { ".": 19 } },
            y: { ".": 21, s: [{ t: 31 }, 18], t: 32, z: 27 }
          },
          m: {
            a: [
              { b: 4, g: 3, r: { a: 5 }, s: { c: 4 }, t: { i: { s: 21 }, o: 33 } },
              18
            ],
            e: { r: { a: 4 }, n: { t: { a: { b: 182 } } } },
            i: { c: 3, f: 4, l: { y: 4 }, n: [{ o: 0 }, 2] },
            o: [{ n: 19, r: { i: 6 } }, 24],
            p: { e: { n: 5 } }
          },
          n: [
            {
              a: {
                g: { e: 3 },
                l: { y: [{ s: 183 }, 27] },
                r: [{ c: 3, i: 17 }, 23],
                t: { i: 23 }
              },
              d: [{ e: { s: 17 }, i: { s: 3 }, l: 2, o: { w: 1 } }, 18],
              e: { e: 19, n: 23, s: { t: { ".": 4 } }, u: 23 },
              g: [{ i: { e: 5 }, l: 2 }, 25],
              i: {
                c: 34,
                e: { s: 23 },
                f: 35,
                m: { e: 1, i: 19 },
                n: { e: 19 },
                o: 3,
                p: 23,
                s: { h: 3 },
                t: 3,
                u: 23
              },
              k: { l: { i: 1 } },
              n: { i: { z: 32 } },
              o: [{ t: [{ h: 7 }, 4], a: { c: 148 } }, 0],
              s: {
                a: 9,
                c: { o: 1 },
                n: 1,
                p: [{ o: 11 }, 9],
                t: 1,
                u: { r: 1 },
                g: { r: 5 },
                v: 11
              },
              t: {
                a: { l: 36 },
                i: { e: 1, d: 137, n: 184, r: { e: 137 } },
                o: 18,
                r: 9,
                w: 1
              },
              u: { a: 3, l: 3, r: 19 }
            },
            24
          ],
          o: 18,
          p: {
            a: { r: 17, t: 4 },
            e: { r: { o: 4 }, a: { b: { l: { e: 132 } } } },
            h: { e: { r: 23 }, i: 18 },
            i: { l: { l: { a: [{ r: 4 }, 21] } }, n: 3, t: { a: 3, u: 23 } },
            l: 24,
            o: { c: 6, l: { a: 4 }, r: { i: 6 }, s: { t: 12 } },
            s: { e: { s: 5 } },
            u: 23
          },
          q: { u: { e: 6 } },
          r: [
            {
              a: {
                c: { t: 3 },
                d: { e: 19, i: { s: 4 } },
                l: 3,
                m: { e: { t: { e: 19 } } },
                n: { g: 17 },
                p: 11,
                t: [{ i: { o: 19, v: 4 } }, 1],
                u: 19,
                v: 38,
                w: 17
              },
              b: { a: { l: 36 } },
              c: { h: { a: { n: 1 }, e: { t: 185 } } },
              d: { i: { n: { e: 4 } }, r: 1 },
              e: { a: { s: 4 }, e: 23, n: { t: 3 }, s: { s: 19 } },
              f: { i: 1, l: 1 },
              i: [
                {
                  a: { l: 4, n: 3 },
                  e: { t: 23 },
                  m: 1,
                  n: { a: { t: 4 } },
                  o: 3,
                  z: 9
                },
                2
              ],
              m: { i: 9 },
              o: { d: 20, n: { i: 19 }, o: 23 },
              p: 9,
              q: 3,
              r: { e: 17, a: { n: { g: { e: 9 } } } },
              s: { a: 1, h: 9 }
            },
            37
          ],
          s: {
            ".": 18,
            a: { b: 1, n: { t: 3 } },
            h: { i: 17 },
            i: { a: { ".": 19 }, b: 23, c: 23, t: 39 },
            k: { i: 11 },
            l: 1,
            o: { c: 21 },
            p: { h: 4 },
            s: { h: 1 },
            t: { e: { n: 3 }, r: 2 },
            u: { r: { a: 6 } },
            y: { m: { p: { t: { o: { t: 4 } } } } }
          },
          t: {
            a: [{ b: { l: 3 }, c: 4, l: { o: 3 }, p: 4 }, 24],
            e: {
              c: [{ h: 4 }, 5],
              g: { o: 3 },
              n: { ".": 3 },
              r: { a: 3, n: [{ a: 19 }, 6] },
              s: { t: 3 },
              v: 4
            },
            h: [{ e: { m: 5, n: 19, r: { o: { s: 186 } } }, o: [{ m: 5 }, 1] }, 18],
            i: {
              ".": 18,
              a: 19,
              b: 20,
              c: 2,
              f: 3,
              o: { n: { a: { r: 7 } } },
              t: { u: 3 }
            },
            o: { g: 21, m: [{ i: { z: 4 } }, 24], p: 21, s: 21 },
            r: [{ o: { p: 4 } }, 29],
            s: { k: 1 },
            t: { a: { g: 1 }, e: [{ s: { ".": 170 } }, 4], h: 1 },
            u: [{ a: 4, e: 4, l: 3, r: { a: 3 } }, 24],
            y: 24
          },
          u: {
            b: 1,
            g: { h: [{ t: { l: 17 } }, 12], u: 3 },
            l: [{ i: { f: 13 } }, 40],
            n: { d: 5 },
            r: 3,
            s: { i: { b: 4 } },
            t: { e: { n: 5 }, h: 2 }
          },
          v: {
            a: [{ g: 3, n: 19 }, 24],
            e: { n: { o: 0 }, r: { a: 3, n: 4, y: 4 } },
            i: [{ e: { r: 0 }, g: 3, o: { u: 3 } }, 2],
            o: { c: 4, r: 29 }
          },
          w: { a: { y: 27 }, i: 3, l: { y: 1 }, s: 0 },
          x: { i: { c: 1, d: 1 } },
          y: { a: { l: 4 }, e: 0, s: 0 },
          z: { i: { e: { r: 0 } }, z: { i: 5 } }
        },
        b: {
          a: {
            ".": 32,
            d: { g: { e: { r: 5 } } },
            g: { e: 1 },
            l: { a: 15 },
            n: { d: { a: { g: 5 } }, e: 0, i: 11 },
            r: { b: { i: 7 }, i: { a: 17 }, o: { n: { i: { e: 187 } } } },
            s: { s: { i: 0 } },
            t: [{ h: { y: 2 } }, 41],
            z: 1,
            c: { k: { e: { r: { ".": 84 } } } }
          },
          b: [{ e: [{ r: 23 }, 24], i: { n: { a: 0 }, t: 0 } }, 42],
          d: 43,
          e: {
            ".": 18,
            a: { k: 17, t: 12 },
            d: [{ a: 3, e: 3, i: 3 }, 44],
            g: { i: 3, u: 4 },
            l: [{ i: 2, o: 3 }, 41],
            m: 45,
            n: { i: { g: 4 }, u: 4 },
            s: [{ p: 3, t: { r: 4 } }, 46],
            t: [{ i: { z: 5 }, r: 4, w: 3 }, 27],
            w: 3,
            y: { o: 4 },
            v: { i: { e: 9 } }
          },
          f: 25,
          h: 47,
          i: {
            b: 9,
            d: [{ i: { f: 167 } }, 1],
            e: [{ n: 4, r: 1 }, 27],
            f: 48,
            l: [{ i: { z: 3 }, l: { a: { b: 8 } } }, 41],
            n: { a: { r: 49 }, d: 0, e: { t: 4 } },
            o: { g: { r: 3 }, u: 4, m: 5, r: { b: 2, h: 15 } },
            t: [{ i: { o: 50, v: { e: 188 } }, r: 3, u: { a: 51 }, z: 19 }, 9]
          },
          j: 29,
          k: 1,
          l: [
            {
              a: { t: { h: 7 }, n: { d: 189 } },
              e: { ".": 21, n: 17, s: { p: 32 } },
              i: { s: 23, n: { d: 189 } },
              o: [{ n: { d: 190 } }, 21],
              u: { n: { t: 17 } }
            },
            52
          ],
          m: 43,
          n: [{ e: { g: 5 } }, 47],
          o: {
            d: [{ i: 11 }, 27],
            e: 1,
            l: { i: { c: 11 } },
            m: { b: { i: 0 } },
            n: { a: [{ t: 5 }, 0] },
            o: 27,
            r: { ".": 32, a: 43, d: 5, e: 32, i: 32, n: { o: 191 } },
            s: 53,
            t: { a: 19, h: 6, o: 1, u: { l: 192 } },
            u: { n: { d: 54 } }
          },
          p: 18,
          r: { i: { t: 18 }, o: { t: { h: 54 } }, u: { s: { q: 17 } } },
          s: [{ o: { r: 17 } }, 55],
          t: [{ l: 1, o: 21, r: 23 }, 25],
          u: {
            f: { f: { e: { r: 0 } } },
            g: { a: 1 },
            l: { i: 3 },
            m: { i: 17 },
            n: [{ t: { i: 17 } }, 1],
            r: { e: 3 },
            s: {
              i: { e: [{ r: 193, s: 193 }, 5] },
              s: { e: 17, i: { n: { g: 17 } } },
              t: 32
            },
            t: {
              a: 18,
              i: { o: 27 },
              o: 19,
              e: { d: { ".": 8 } },
              t: { e: { d: 0 } }
            }
          },
          v: 29,
          w: 56,
          y: { ".": 32, s: 0 }
        },
        c: {
          a: [
            {
              b: { i: { n: 11 }, l: 2 },
              c: { h: 17 },
              d: { e: { n: 4, m: 194 } },
              g: 46,
              h: 57,
              l: { a: { t: 3 }, l: { a: 0, i: { n: 6 } }, o: 18 },
              n: { d: 5, e: 0, i: { c: 0, s: 5, z: 11 }, t: { y: 0 }, y: 17 },
              p: { e: { r: 4 } },
              r: { o: { m: 5 } },
              s: { t: { e: { r: 6 }, i: { g: 5 } }, y: 18 },
              t: { h: 1, i: { v: 18 }, a: { s: 195 } },
              v: { a: { l: 5 } }
            },
            41
          ],
          c: [
            {
              h: { a: 6 },
              i: { a: 0 },
              o: { m: { p: { a: 10 } }, n: 17, u: { t: 12 } }
            },
            23
          ],
          e: {
            ".": 25,
            d: { ".": 18, e: { n: 18 } },
            i: 27,
            l: { ".": 32, l: 27 },
            n: [{ c: 27, e: 58, i: 18, t: 27 }, 41],
            p: 27,
            r: { a: { m: 4 } },
            s: { a: 18, s: { i: [{ b: 59 }, 27] }, t: 5 },
            t: [{ a: 60 }, 0],
            w: 0
          },
          h: [
            {
              ".": 18,
              a: { b: 61, n: { i: { c: 32, s: 20 } } },
              e: [
                {
                  a: { p: 54 },
                  d: 18,
                  l: { o: 5 },
                  m: { i: 27 },
                  n: { e: 4 },
                  r: { ".": 3, s: 3 }
                },
                8
              ],
              i: {
                n: [{ e: { ".": 32, s: { s: 4 } }, i: 32 }, 62],
                o: 32,
                t: 27,
                z: 8,
                e: { v: { o: 6 } }
              },
              o: 63,
              t: { i: 1 },
              s: { ".": 18, h: { u: 11 } }
            },
            25
          ],
          i: [
            {
              a: [{ b: 64, r: 5 }, 27],
              c: 4,
              e: { r: 18 },
              f: { i: { c: { ".": 32 } } },
              i: 18,
              l: { a: 1, i: 27 },
              m: 25,
              n: [
                {
                  a: [{ t: 27 }, 21],
                  e: { m: 11 },
                  g: [{ ".": 19 }, 29],
                  o: 32,
                  q: 8
                },
                25
              ],
              o: { n: 17 },
              p: { e: 18, h: 3, i: { c: 18 } },
              s: { t: { a: 18, i: 18 } },
              t: [{ i: { z: 11 } }, 42],
              z: 32,
              g: { a: { r: 152 } }
            },
            41
          ],
          k: [{ i: 3 }, 2],
          l: [
            {
              a: { r: [{ a: { t: { i: { o: 19 } } }, e: 32 }, 18] },
              e: { m: 0, a: { r: 0 } },
              i: { c: 18, m: 17 },
              y: 0
            },
            65
          ],
          n: 19,
          o: [
            {
              a: { g: 4 },
              e: 8,
              g: [{ r: 1 }, 25],
              i: [{ n: { c: 3 } }, 0],
              l: { i: 5, o: [{ r: 11 }, 32] },
              m: { e: { r: 5 } },
              n: { a: 0, e: 21, g: 11, t: 5 },
              p: { a: 3, i: { c: 11 }, l: 1, h: { o: { n: 196 } } },
              r: { b: 18, o: { n: 12 } },
              s: { e: 0 },
              v: [{ e: 17 }, 15],
              w: { a: 5 },
              z: { e: 5, i: 4 },
              u: { s: { t: { i: 84 } } }
            },
            41
          ],
          q: 29,
          r: {
            a: { s: { t: 6 }, t: { ".": 32, i: { c: 32 } } },
            e: { a: { t: 11 }, d: 32, t: { a: 47 }, v: 0 },
            i: [{ f: 5, n: 21, s: 17, t: { i: [{ e: 11 }, 32] } }, 8],
            o: {
              p: { l: 0, o: 6 },
              s: { e: 17 },
              c: { o: { d: 197 } },
              e: { c: { o: 148 } }
            },
            u: { d: 0 }
          },
          s: 66,
          t: [
            {
              a: { b: 0, n: { g: 4, t: 19 } },
              e: [{ r: 23 }, 24],
              i: { c: { u: 21 }, m: { i: 12 } },
              u: { r: 0 },
              w: 21,
              r: { o: { m: { e: { c: 198 } } } }
            },
            42
          ],
          u: {
            d: 5,
            f: 21,
            i: [{ t: { y: 4 } }, 21],
            l: { i: 32, t: { i: { s: 0 }, u: 27 } },
            m: { a: 9, e: 23, i: 1 },
            n: 27,
            p: { i: 3, y: 4 },
            r: { a: { b: 67, n: { c: { e: 199 } } }, i: { a: 4 } },
            s: [{ s: { i: 17 } }, 41],
            t: [{ i: { e: 1, v: 56 }, r: 18 }, 68]
          },
          y: 41,
          z: { e: 0 }
        },
        d: {
          a: [
            {
              ".": 32,
              b: 70,
              c: { h: 17 },
              f: 18,
              g: 25,
              m: 71,
              n: { g: 11 },
              r: { d: 6, k: 6, y: 18 },
              t: [{ i: { v: 18 }, o: 18, a: { b: 137 } }, 27],
              v: [{ e: 5 }, 53],
              y: 32,
              l: { o: { n: { e: 48 } } }
            },
            69
          ],
          b: 29,
          c: 19,
          d: [{ a: { b: 20 }, i: { b: 94 } }, 72],
          e: {
            ".": 25,
            a: { f: 6, l: { s: { ".": 1 } } },
            b: { i: { t: 5 }, o: { n: 1 } },
            c: {
              a: { n: 36 },
              i: { l: 1 },
              o: { m: 4 },
              l: { a: { r: 200 }, i: { n: { a: 64 } } }
            },
            d: 42,
            e: { ".": 18 },
            i: { f: 4 },
            l: { i: { e: 17, q: 16 }, o: 4 },
            m: [
              {
                ".": 32,
                i: { c: [{ ".": 5 }, 27], l: 4 },
                o: { n: { s: 1 }, r: 7, s: 9 }
              },
              21
            ],
            n: [{ a: { r: 1 }, o: 3, t: { i: { f: 7 } }, u: 3 }, 41],
            p: [{ a: 3, i: 17, u: 9 }, 2],
            q: 23,
            r: { h: 21, m: 32, n: { i: { z: 6 } }, s: 5 },
            s: [
              { ".": 24, c: 2, o: 64, t: { i: 11, r: 3 }, u: 1, i: { c: 11 } },
              8
            ],
            t: [{ o: 9, i: { c: 9 } }, 2],
            v: [{ i: { l: 11 } }, 2],
            y: 18,
            f: { i: { n: { i: { t: { i: 201 } } } } }
          },
          f: 43,
          g: { a: 21, e: { t: 73 }, i: 2, y: 24 },
          h: 74,
          i: {
            ".": 32,
            a: [{ b: 5 }, 75],
            c: { a: { m: 1, i: { d: 15 } }, e: 21, t: 27 },
            d: 27,
            e: { n: 76 },
            f: [{ f: { r: { a: 5 } } }, 29],
            g: { e: 3 },
            l: { a: { t: { o: 1 } } },
            n: [{ a: 41, e: { ".": 27 }, i: [{ z: 4 }, 32] }, 29],
            o: [{ g: 5 }, 41],
            p: { l: 1 },
            r: [{ e: [{ n: 9, r: 9 }, 2], t: { i: 6 } }, 8],
            s: [{ i: 32, t: 77 }, 15],
            t: { i: 24 },
            v: 78,
            m: { e: { t: { h: { y: 141 } } } }
          },
          j: 29,
          k: 79,
          l: {
            a: 56,
            e: { ".": 27, d: 27, s: { ".": 27, s: 18 }, a: { d: 42 } },
            o: 48,
            u: 56,
            y: 25,
            i: { e: 202 }
          },
          m: 29,
          n: 80,
          o: [
            {
              ".": 27,
              d: { e: 4 },
              e: 32,
              f: 57,
              g: 21,
              l: { a: 1, i: 17, o: { r: 4 } },
              m: { i: { z: 5 } },
              n: { a: { t: 3 }, i: 17 },
              o: { d: 11 },
              p: { p: 0 },
              r: 21,
              s: 27,
              u: { t: 56 },
              v: 1,
              x: 27,
              w: { o: { r: { d: 203 } } }
            },
            41
          ],
          p: 29,
          r: [
            {
              a: { g: { o: { n: 6 } }, i: 18 },
              e: [{ a: { r: 6 }, n: [{ a: { l: 204 } }, 32] }, 0],
              i: { b: 0, l: 17, f: { t: { a: 189 } }, p: { l: { e: { g: 205 } } } },
              o: { p: 0, w: 18, m: { e: { d: 206 } } },
              u: { p: { l: { i: 32 } } },
              y: 18
            },
            41
          ],
          s: [{ p: 1, w: 21, y: 21 }, 81],
          t: { h: 24, a: { b: 23 } },
          u: [
            {
              a: [{ l: { ".": 9 } }, 82],
              c: [{ a: 29, e: { r: 5 }, t: { ".": 18, s: 18 } }, 9],
              e: { l: 4 },
              g: 1,
              l: { e: 23 },
              m: { b: { e: 0 } },
              n: 1,
              p: [{ e: 1 }, 18],
              o: { p: { o: { l: 207 } } }
            },
            41
          ],
          v: 29,
          w: 29,
          y: [{ n: 32, s: { e: 1, p: 5 } }, 24]
        },
        e: {
          a: {
            b: 72,
            c: { t: 23 },
            d: [{ i: { e: 5 } }, 15],
            g: { e: [{ r: 4 }, 1] },
            l: [{ e: { r: 5 }, o: { u: 11 } }, 1],
            m: { e: { r: 11 } },
            n: { d: 19, i: { e: { s: 111 } } },
            r: {
              a: 11,
              c: 0,
              e: { s: 5 },
              i: { c: 0, l: 0 },
              k: 5,
              t: [{ e: 12 }, 8]
            },
            s: { p: 4, s: 23, t: 12 },
            t: [{ e: { n: 5 }, h: { i: 12 }, i: { f: 19 }, u: 83 }, 9],
            v: [{ e: { n: 11 }, i: 5, o: 5 }, 9]
          },
          b: [{ e: { l: { ".": 21, s: 21 }, n: 21 }, i: { t: 21 }, r: 23 }, 42],
          c: {
            a: { d: 21, n: { c: 6 } },
            c: { a: 6 },
            e: [{ s: { s: { a: 4 } } }, 29],
            i: [
              {
                b: 21,
                f: { i: { c: { a: { t: 4 } }, e: 4 }, y: 4 },
                m: 3,
                t: [{ e: 19 }, 0]
              },
              9
            ],
            l: { a: { m: 21 }, u: { s: 21 } },
            o: {
              l: 24,
              m: { m: 21, p: { e: 21 } },
              n: { c: 21 },
              r: [{ a: 3, o: 5 }, 24]
            },
            r: [{ e: { m: 21 } }, 29],
            t: { a: { n: 1 }, e: 1 },
            u: [{ l: [{ a: 3 }, 21] }, 29],
            h: { a: { s: 23 } }
          },
          d: {
            a: 37,
            d: 61,
            e: { r: 34, s: 0 },
            i: [{ a: 23, b: 3, c: { a: 3 }, m: 3, t: 2, z: 5 }, 18],
            o: [{ l: 21, n: 84 }, 18],
            r: { i: 21 },
            u: { l: [{ o: 4, i: { n: { g: 2 } } }, 21] },
            g: { l: 15 }
          },
          e: {
            c: 9,
            d: { i: 11 },
            f: 9,
            l: { i: 11, y: 1 },
            m: 9,
            n: { a: 1 },
            p: 85,
            s: [{ t: 17 }, 86],
            t: { y: 1 },
            x: 19
          },
          f: [
            {
              e: { r: { e: 83 } },
              f: 41,
              i: {
                c: [{ i: 32 }, 21],
                l: 17,
                n: { e: 23, i: { t: { e: 20 } } },
                t: 27
              },
              o: { r: { e: { s: 6 } } },
              u: { s: { e: { ".": 21 } } }
            },
            29
          ],
          g: {
            a: { l: 18 },
            e: { r: 17 },
            i: { b: 4, c: 1, n: { g: 4 }, t: 87 },
            n: 4,
            o: { ".": 21, s: 21 },
            u: { l: 2, r: 19 },
            y: 32
          },
          h: [{ e: { r: 17 } }, 72],
          i: [
            {
              c: 19,
              d: 4,
              g: [{ l: 4 }, 8],
              m: { b: 23 },
              n: { f: 23, g: 29, s: { t: 19 } },
              r: { d: 0 },
              t: { e: 11, h: 3, y: 19 }
            },
            9
          ],
          j: [{ u: { d: [{ i: 4 }, 21] } }, 29],
          k: { i: { n: 0 }, l: { a: 1 } },
          l: {
            a: [
              {
                ".": 21,
                c: 21,
                n: { d: 17 },
                t: { i: { v: 4 } },
                w: 21,
                x: { a: 36 }
              },
              29
            ],
            e: {
              a: 23,
              b: { r: { a: 4 } },
              c: 32,
              d: 21,
              g: { a: 3 },
              n: 19,
              r: 34,
              s: 29
            },
            f: 9,
            i: [
              {
                b: { e: 23 },
                c: { ".": 33, a: 3 },
                e: { r: 23 },
                g: { i: { b: 4 } },
                m: 19,
                n: { g: 83 },
                o: 23,
                s: [{ h: 4 }, 24],
                v: 88,
                t: { i: { s: 208 } }
              },
              9
            ],
            l: { a: [{ b: 1 }, 18], o: 17 },
            o: { c: 19, g: 4, p: { ".": 3 }, a: 29 },
            s: { h: 9 },
            t: { a: 1 },
            u: { d: 19, g: 4 }
          },
          m: {
            a: { c: 21, g: 21, n: [{ a: 4 }, 19] },
            b: 4,
            e: [{ l: 24, t: 21 }, 29],
            i: {
              c: { a: 3 },
              e: 0,
              g: { r: { a: 4 } },
              n: [{ e: 4, i: 35 }, 89],
              s: [{ h: 4, s: 19 }, 21],
              z: 3
            },
            n: { i: { z: 32 } },
            o: { g: 0, n: { i: { o: 7 } } },
            p: { i: 3 },
            u: { l: [{ a: 4 }, 21], n: 11 },
            y: 23
          },
          n: {
            a: { m: { o: 4 }, n: { t: 21 } },
            c: { h: { e: { r: 17 } } },
            d: { i: { c: 3, x: 2 } },
            e: {
              a: 19,
              e: 19,
              m: 3,
              r: { o: 4 },
              s: { i: 4, t: 4 },
              t: { r: 3 },
              w: 23
            },
            i: {
              c: { s: 4 },
              e: 19,
              l: 19,
              o: 23,
              s: { h: 3 },
              t: 3,
              u: 19,
              z: 32
            },
            n: 18,
            o: [{ g: 0, s: 21, v: 3 }, 18],
            s: { w: 1 },
            t: { a: { g: { e: 5 } }, h: { e: { s: 18 } } },
            u: { a: 3, f: 4 },
            y: { ".": 23 },
            z: 61
          },
          o: {
            f: 19,
            g: [{ r: { a: { p: 3 } } }, 9],
            i: 90,
            l: 23,
            p: { a: { r: 11 } },
            r: [{ e: 3, o: { l: 4 } }, 29],
            s: 0,
            t: [{ o: 1 }, 21],
            u: { t: 19 },
            w: 19
          },
          p: {
            a: [{ i: 23, n: { c: 4 } }, 24],
            e: { l: 19, n: { t: 23 }, t: { i: { t: { i: { o: 4 } } } } },
            h: { e: 17 },
            l: { i: 21 },
            o: 29,
            r: { e: { c: [{ a: 4 }, 21], d: 21, h: 3 }, o: [{ b: 21 }, 23] },
            s: { h: 1 },
            t: { i: { b: 13 } },
            u: { t: [{ a: 4 }, 21] },
            i: { n: { e: { p: { h: 209 } } } }
          },
          q: [{ u: { i: { l: 12, s: 91 } } }, 29],
          r: {
            a: [{ b: 0, n: { d: 18 }, r: 3, t: { i: { ".": 18 } } }, 2],
            b: [{ l: 1 }, 25],
            c: { h: [{ e: 1 }, 3] },
            e: {
              ".": 25,
              a: { l: 23 },
              c: { o: 5 },
              i: { n: 11 },
              l: { ".": 4 },
              m: { o: 3 },
              n: { a: 4, c: { e: 4 }, e: 18, t: 3 },
              q: 0,
              s: { s: 4, t: 3 },
              t: 17
            },
            h: 2,
            i: [
              {
                a: [{ n: { ".": 210 } }, 92],
                c: { k: 32 },
                e: { n: 23, r: 0 },
                n: { e: 3 },
                o: 29,
                t: 18,
                u: 1,
                v: [{ a: 21 }, 0]
              },
              2
            ],
            m: 93,
            n: { i: { s: 1, t: 18, z: 32 }, o: 3 },
            o: [{ b: 4, c: 19, r: 0, u: 2 }, 25],
            s: [{ e: { t: 3 } }, 2],
            t: { e: { r: 11 }, l: 18, w: 3 },
            u: [{ t: 0 }, 18],
            w: { a: { u: 32 } }
          },
          s: {
            a: [{ g: { e: { ".": 21, s: 21 } } }, 72],
            c: [{ a: [{ n: 4 }, 24], r: 23, u: 4 }, 9],
            e: [
              {
                c: [{ r: 4 }, 24],
                n: { c: 4 },
                r: { t: { ".": 21, s: 21 }, v: { a: 21 } }
              },
              74
            ],
            h: [{ a: 23, e: { n: 5 } }, 18],
            i: [
              {
                c: 24,
                d: [{ e: { n: 4 } }, 24],
                g: { n: { a: 4 } },
                m: 94,
                n: 95,
                s: { t: { e: 17 } },
                u: 0
              },
              29
            ],
            k: { i: { n: 19 } },
            m: { i: 1 },
            o: { l: [{ u: 3 }, 24], n: [{ a: 4 }, 24] },
            p: [
              {
                e: { r: 3 },
                i: { r: { a: 4 } },
                r: { e: 1 },
                a: { c: { i: 211 } }
              },
              29
            ],
            s: [{ i: { b: 96 } }, 25],
            t: {
              a: { n: 36 },
              i: { g: 3, m: 4 },
              o: [{ n: 23 }, 44],
              r: [{ o: 19, u: { c: 10 } }, 25]
            },
            u: { r: [{ r: 4 }, 24] },
            w: 1
          },
          t: {
            a: { b: 0 },
            e: { n: { d: 17 }, o: 23 },
            h: { o: { d: 54 }, y: { l: { e: { n: { e: 162 } } } } },
            i: {
              c: 2,
              d: { e: 19 },
              n: [{ o: 0 }, 17],
              r: 19,
              t: { i: { o: 19, v: 4 } }
            },
            n: 18,
            o: { n: { a: 4 } },
            r: { a: 23, e: 23, i: { c: 3, f: 4 }, o: { g: 3, s: 4 } },
            u: { a: 3 },
            y: { m: 4 },
            z: 4
          },
          u: [
            {
              n: 19,
              p: 23,
              r: { o: 3 },
              s: 0,
              t: { e: 17, i: { l: 6 }, r: 4 },
              c: { l: { i: { d: 212 } } }
            },
            18
          ],
          v: {
            a: { p: 97, s: [{ t: 4 }, 24] },
            e: {
              a: 19,
              l: { l: 3, o: 12 },
              n: { g: 19, i: 17 },
              r: [{ b: 19 }, 2]
            },
            i: [{ d: 3, l: 0, n: 21, v: 0 }, 29],
            o: { c: 19 },
            u: 19
          },
          w: {
            a: [{ g: 21 }, 29],
            e: { e: 19 },
            h: 23,
            i: { l: 6, n: { g: 3 }, t: 23 }
          },
          x: { p: 41 },
          y: { c: 32, e: { ".": 32 }, s: 0 }
        },
        f: {
          a: [
            {
              b: { l: 3, r: 11 },
              c: { e: 1 },
              g: 18,
              i: { n: 17 },
              l: { l: { e: 6 } },
              m: { a: 26, i: { s: 5 } },
              r: [{ t: { h: 5 } }, 32],
              t: { a: 3, h: { e: 3 }, o: 18 },
              u: { l: { t: 7 } }
            },
            41
          ],
          b: 56,
          d: 18,
          e: {
            ".": 18,
            a: { s: 17, t: { h: 54 } },
            b: [{ r: { u: { a: 15 } } }, 1],
            c: { a: 18, t: 32 },
            d: 25,
            l: { i: 3 },
            m: { o: 1 },
            n: { d: [{ e: 6 }, 8] },
            r: [{ r: 32, m: { i: { o: 213 } } }, 15],
            v: 0
          },
          f: [
            {
              e: { s: 21 },
              i: { e: 21, n: { ".": 19 }, s: 94 },
              l: { y: 21 },
              y: 24
            },
            43
          ],
          h: 18,
          i: [
            {
              a: 3,
              c: {
                ".": 48,
                a: { l: 47, n: 23, t: { e: 18 } },
                e: { n: 23, r: 3 },
                i: [{ a: 32, e: 32 }, 0],
                s: 18,
                u: 3,
                h: 27
              },
              d: { e: { l: 4 } },
              g: { h: { t: 7 } },
              l: { i: 5, l: { i: { n: 6 } }, y: 18 },
              n: [{ a: 32, d: 97, e: 9, g: 98, n: 0 }, 25],
              s: { t: { i: 0 } },
              t: { t: { e: { d: { ".": 5 } } } }
            },
            41
          ],
          l: [
            {
              e: { s: { s: 19 } },
              i: { n: 17 },
              o: { r: { e: 11 }, w: { e: { r: { ".": 84 } } } },
              y: 100,
              a: { g: { e: { l: 214 } } },
              u: { o: { r: 27 } }
            },
            99
          ],
          m: 18,
          n: 18,
          o: [
            {
              n: [{ d: { e: 0 }, t: 0 }, 32],
              r: [{ a: { t: 4, y: 5 }, e: { t: 6 }, i: 0, t: { a: 6 } }, 9],
              s: 5
            },
            41
          ],
          p: 56,
          r: {
            a: { t: 0 },
            e: { a: 19, s: { c: 6 } },
            i: [{ l: 17 }, 8],
            o: { l: 6 }
          },
          s: 48,
          t: [{ o: 21, y: 24 }, 25],
          u: [
            {
              e: { l: 4 },
              g: 18,
              m: { i: { n: 1 } },
              n: { e: 4 },
              r: { i: 3 },
              s: { i: 17, s: 0 },
              t: { a: 18 }
            },
            27
          ],
          y: 41
        },
        g: {
          a: [
            {
              f: 0,
              l: { ".": 32, i: 27, o: 3 },
              m: [{ e: { t: 4 }, o: 19 }, 25],
              n: { i: { s: 5, z: [{ a: 6 }, 3] }, o: 18 },
              r: { n: 67 },
              s: { s: 17 },
              t: { h: 12, i: { v: 18 } },
              z: 18
            },
            41
          ],
          b: 23,
          d: 1,
          e: {
            ".": 25,
            d: 25,
            e: { z: 17 },
            l: { i: { n: 0, s: 4, z: 4 }, y: 18 },
            n: [
              { a: { t: 1 }, i: { z: 4 }, o: 18, y: 18, c: { y: { ".": 8 } } },
              41
            ],
            o: [{ m: 3, d: 215 }, 41],
            r: { y: 21 },
            s: { i: 32 },
            t: { h: 6, o: 18, y: 1, i: { c: { ".": 8 } } },
            v: 1
          },
          g: [{ e: [{ r: 23 }, 24], l: { u: 6 }, o: 0 }, 101],
          h: { i: { n: 3 }, o: { u: { t: 4 } }, t: { o: 1, w: { e: 15 } } },
          i: {
            ".": 32,
            a: [{ r: 5 }, 102],
            c: [{ i: { a: 32 }, o: 21 }, 29],
            e: { n: 6, s: { ".": 32 } },
            l: 0,
            m: { e: { n: 23 } },
            n: { ".": 68, g: { e: 5 }, s: 103 },
            o: 32,
            r: [{ l: 0 }, 27],
            s: { l: 23 },
            u: 1,
            v: 32,
            z: 27
          },
          l: [
            {
              a: [{ d: { i: 6 }, s: 32 }, 0],
              e: [{ a: { d: 29 } }, 41],
              i: { b: 0, g: 23, s: { h: 43 } },
              o: [{ r: 11, b: { i: { n: 106 } } }, 27]
            },
            9
          ],
          m: [{ y: 21 }, 29],
          n: {
            a: [{ ".": 21, c: 69 }, 1],
            e: { t: { t: 17, i: { s: { m: 137 } } } },
            i: [{ n: 24, o: 21 }, 29],
            o: [{ n: 21, m: { o: 5 }, r: { ".": 216, e: { s: { p: 24 } } } }, 29]
          },
          o: [
            {
              ".": 27,
              b: 5,
              e: 32,
              g: 104,
              i: { s: 3 },
              n: [{ a: 105, d: { o: 7 }, i: [{ z: { a: 217 } }, 3] }, 8],
              o: 32,
              r: { i: { z: 4 }, o: { u: 5 } },
              s: { ".": 32 },
              v: 15
            },
            41
          ],
          p: 23,
          r: [
            {
              a: {
                d: { a: 18 },
                i: 21,
                n: 84,
                p: {
                  h: { ".": 32, e: { r: [{ ".": 7 }, 19] }, i: { c: 32 }, y: 18 }
                },
                y: 18
              },
              e: { n: 0, s: { s: { ".": 18 } } },
              i: { t: 18, e: { v: 213 } },
              o: 21,
              u: { f: 17 }
            },
            41
          ],
          s: [{ t: { e: 19 } }, 9],
          t: { h: 11 },
          u: {
            a: [{ r: { d: 27 } }, 1],
            e: 25,
            i: { t: 106 },
            n: 27,
            s: 27,
            t: [{ a: { n: 29 } }, 26]
          },
          w: 23,
          y: [{ n: 107, r: { a: 4 } }, 41]
        },
        h: {
          a: {
            b: { l: 73 },
            c: { h: 17 },
            e: { m: 0, t: 0 },
            g: { u: 19 },
            l: { a: [{ m: 12 }, 3] },
            m: 1,
            n: {
              c: { i: 0, y: 0 },
              d: { ".": 32 },
              g: [{ e: { r: 6 }, o: 6 }, 0],
              i: { z: 108 },
              k: 0,
              t: { e: 0 }
            },
            p: { l: 11, t: 5, a: { r: { r: 218 } } },
            r: {
              a: { n: 3, s: 4 },
              d: [{ e: 12 }, 8],
              l: { e: 0 },
              p: { e: { n: 6 } },
              t: { e: { r: 5 } }
            },
            s: { s: 5 },
            u: { n: 17 },
            z: [{ a: 11 }, 32],
            i: { r: { s: 137 } },
            t: { c: { h: 213 } }
          },
          b: 29,
          e: {
            a: { d: 41, r: 27 },
            c: { a: { n: 1, t: 19 } },
            d: [{ o: 13 }, 21],
            l: { i: 93, l: { i: { s: 0 }, y: 0 }, o: 19 },
            m: { p: 0 },
            n: [{ a: [{ t: 5 }, 17] }, 9],
            o: { r: 5 },
            p: 5,
            r: {
              a: [{ p: 12 }, 21],
              b: { a: 0 },
              e: { a: 6 },
              n: 23,
              o: { u: 19 },
              y: 23
            },
            s: [{ p: 64 }, 29],
            t: [{ e: { d: 0 } }, 1],
            u: 0,
            x: { a: 168 }
          },
          f: 29,
          h: 29,
          i: {
            a: { n: 4 },
            c: { o: 1 },
            g: { h: 6 },
            l: 109,
            m: { e: { r: 36 } },
            n: { a: 21 },
            o: { n: { e: 17 } },
            p: [{ e: { l: { a: 219 } } }, 1],
            r: { l: 0, o: 3, p: 0, r: 0 },
            s: { e: { l: 11 }, s: 0 },
            t: { h: { e: { r: 6 } }, e: { s: { i: { d: 12 } } } },
            v: 9
          },
          k: 18,
          l: [{ a: { n: 17 }, o: [{ r: { i: 11 } }, 24] }, 80],
          m: [{ e: { t: 17 } }, 43],
          n: [{ a: { u: { z: 12 } } }, 42],
          o: {
            d: { i: { z: 19 }, s: 19 },
            g: [{ e: 17 }, 1],
            l: { a: { r: 5 }, e: 110 },
            m: { a: 1, e: 12 },
            n: { a: 0, y: 4 },
            o: { d: 27, n: 17 },
            r: { a: { t: 5 }, i: { s: 4, c: { ".": 187 } }, t: { e: 12 }, u: 4 },
            s: { e: [{ n: 4 }, 0], p: 15 },
            u: { s: [{ e: 54 }, 41] },
            v: { e: { l: 5 } }
          },
          p: 56,
          r: [{ e: { e: 6 }, o: { n: { i: { z: 5 } }, p: { o: 11 } } }, 26],
          s: [{ h: 21 }, 101],
          t: { a: { r: 21 }, e: { n: 2, s: 4, o: { u: 216 } }, y: 21 },
          u: {
            g: 1,
            m: { i: { n: 1 } },
            n: { k: { e: 5 }, t: 0 },
            s: { t: 14 },
            t: 1
          },
          w: [{ a: { r: { t: 21 } } }, 29],
          y: { p: { e: 3, h: 3, o: { t: { h: { a: 137 } } } }, s: 9 }
        },
        i: {
          a: [
            {
              l: 24,
              m: [{ e: { t: { e: 5 } } }, 0],
              n: [{ c: 18, i: 11, t: 46 }, 24],
              p: { e: 4 },
              s: { s: 17 },
              t: { i: { v: 21 }, r: { i: { c: 1 } }, u: 21 }
            },
            42
          ],
          b: {
            e: [{ r: { a: 3, t: 4 } }, 0],
            i: { a: 4, n: 3, t: { ".": 4, e: 4 } },
            l: [{ i: 3 }, 29],
            o: 19,
            r: [{ i: 94 }, 29],
            u: { n: 19 }
          },
          c: {
            a: { m: 18, p: 32, r: [{ ".": 21, a: 21 }, 18], s: 6, y: 21 },
            c: { u: 17 },
            e: { o: 18 },
            h: 18,
            i: [{ d: 19, n: { a: 4 }, p: [{ a: 3 }, 24] }, 25],
            l: { y: 21 },
            o: { c: 94 },
            r: [{ a: 32, y: 21 }, 43],
            t: { e: 1, u: [{ a: 111 }, 84] },
            u: { l: { a: 3 }, m: 1, o: 4, r: 23 }
          },
          d: [
            {
              a: { i: 21, n: { c: 4 } },
              d: 4,
              e: { a: { l: 11 }, s: 0 },
              i: [
                { a: { n: 4, r: 0 }, e: 19, o: [{ u: 5, s: 1 }, 3], t: 2, u: 4 },
                24
              ],
              l: { e: 23 },
              o: { m: 21, w: 3 },
              r: 21,
              u: [{ o: 4 }, 24]
            },
            25
          ],
          e: [
            {
              d: { e: 0 },
              g: { a: 113 },
              l: { d: 12 },
              n: { a: 67, e: 0, n: 19, t: { i: 23 } },
              r: { ".": 29 },
              s: { c: 23, t: 29 },
              t: 23
            },
            112
          ],
          f: {
            ".": 18,
            e: { r: { o: 4 } },
            f: { e: { n: 5 }, r: 1 },
            i: { c: { ".": 18 }, e: 23 },
            l: 23,
            t: 18,
            a: { c: { e: { t: 137 } } }
          },
          g: [
            {
              a: { b: 5 },
              e: { r: { a: 3 } },
              h: { t: { i: 12 } },
              i: [{ b: 23, l: 3, n: 3, t: 3 }, 18],
              l: 28,
              o: [{ r: 3, t: 4 }, 24],
              r: { e: 19 },
              u: { i: 5, r: 2 },
              n: { i: { t: [{ e: { r: 213 } }, 0] } }
            },
            25
          ],
          h: 23,
          i: 114,
          j: [{ k: 21 }, 23],
          k: 18,
          l: {
            a: [{ b: 93, d: { e: 21 }, m: 94, r: { a: 5 } }, 29],
            e: { g: 23, r: 2, v: 17 },
            f: 4,
            i: [{ a: 3, b: 9, o: 3, s: { t: 1 }, t: 25, z: 9 }, 2],
            l: { a: { b: 5 } },
            n: 18,
            o: { q: 3 },
            t: { y: 1 },
            u: { r: 4 },
            v: 3
          },
          m: {
            a: { g: [{ e: 3 }, 21], r: { y: 5 } },
            e: { n: { t: { a: { r: 10 } } }, t: 18 },
            i: [{ d: { a: 4 }, l: { e: 5 }, n: { i: 19 }, t: 18 }, 2],
            n: { i: 1 },
            o: { n: 23 },
            u: [{ l: { a: 3 } }, 24],
            p: { e: { d: { a: 201 } } }
          },
          n: {
            ".": 25,
            a: { u: 83, v: 18 },
            c: { e: { l: 36, r: 3 } },
            d: [{ l: { i: { n: { g: 4 } } } }, 18],
            e: [{ e: 23, r: { a: { r: 17 } }, s: { s: 19 } }, 25],
            g: {
              a: 18,
              e: [{ n: 4 }, 18],
              i: 18,
              l: { i: { n: { g: 4 } } },
              o: 18,
              u: 18
            },
            i: [
              {
                ".": 19,
                a: 21,
                o: 3,
                s: 2,
                t: { e: { ".": 19, l: { y: { ".": 19 } } }, i: { o: 32 }, y: 3 }
              },
              25
            ],
            k: 18,
            l: 18,
            n: 25,
            o: [{ c: 90, s: 0, t: 21 }, 42],
            s: [{ e: 3, u: { r: { a: 7 } } }, 25],
            t: { ".": 25, h: 112 },
            u: [{ s: 19 }, 2],
            y: 18,
            f: { r: { a: { s: 220 } } }
          },
          o: [
            {
              ".": 18,
              g: { e: 17, r: 9 },
              l: 29,
              m: 1,
              n: { a: { t: 11 }, e: { r: { y: 0 } }, i: 11 },
              p: { h: 4 },
              r: { i: 11 },
              s: 21,
              t: { h: 4, i: 19, o: 1 },
              u: { r: 21 }
            },
            25
          ],
          p: [
            {
              e: 0,
              h: { r: { a: { s: 115 } } },
              i: [{ c: 1 }, 3],
              r: { e: 96 },
              u: { l: 3 }
            },
            25
          ],
          q: { u: { a: 23, e: { f: 4 }, i: { d: 3, t: 116 } } },
          r: [
            {
              a: [{ b: 0, c: 21 }, 29],
              d: { e: 5 },
              e: { d: { e: 0 }, f: 21, l: 117, s: 21 },
              g: { i: 4 },
              i: [{ d: { e: 5 }, s: 1, t: { u: 11 }, z: 118 }, 2],
              m: { i: { n: 1 } },
              o: { g: 0, n: { ".": 32 } },
              u: { l: 4 },
              r: { e: { v: { o: { c: 221 } } } }
            },
            18
          ],
          s: {
            ".": 25,
            a: { g: 4, r: 3, s: 6 },
            c: [{ h: 3 }, 119],
            e: [{ r: 3 }, 18],
            f: 27,
            h: { a: { n: 4 }, o: { n: 3, p: 5 } },
            i: { b: 3, d: 0, s: 19, t: { i: { v: 4 } } },
            k: 26,
            l: { a: { n: 36 } },
            m: { s: 18 },
            o: [{ m: { e: { r: 5 } } }, 24],
            p: [{ i: 9, y: 1 }, 2],
            s: [{ a: { l: 1 }, e: { n: 36, s: 1 } }, 62],
            t: { a: { ".": 1 }, e: 2, i: 2, l: { y: 0 }, r: { a: { l: 18 } } },
            u: [{ s: 4 }, 24]
          },
          t: {
            a: { ".": 18, b: { i: 0 }, g: 21, m: 120, n: 23, t: 23 },
            e: [{ r: { a: 3, i: 19 }, s: [{ i: { m: { a: 29 } } }, 1] }, 25],
            h: [{ i: { l: 148 } }, 25],
            i: [
              {
                a: 18,
                c: [{ a: 3, k: 31 }, 22],
                g: 3,
                l: { l: 4 },
                m: 24,
                o: 25,
                s: [{ m: 21 }, 18],
                n: { e: { r: { a: { r: 158 } } } }
              },
              29
            ],
            o: { m: 121, n: 18 },
            r: { a: { m: 21 }, y: 4 },
            t: 18,
            u: { a: { t: 3 }, d: 19, l: 3 },
            z: { ".": 18 }
          },
          u: 29,
          v: [
            {
              e: { l: { l: 3 }, n: { ".": 3 }, r: { ".": 83, s: { ".": 21 } } },
              i: { l: { ".": 4 }, o: 4, t: 2 },
              o: { r: { e: 19, o: 35 }, t: 83 }
            },
            25
          ],
          w: 56,
          x: { o: 1 },
          y: 18,
          z: { a: { r: 18 }, i: 0, o: { n: { t: 32 } } }
        },
        j: {
          a: [
            {
              c: { q: 0 },
              p: [{ a: { n: { e: { s: 220 } } } }, 1],
              n: { u: { a: 12 } }
            },
            32
          ],
          e: [
            {
              r: { s: 5, e: { m: 222 } },
              s: { t: { i: { e: 18 }, y: 18 } },
              w: 11
            },
            41
          ],
          o: { p: 1 },
          u: { d: { g: 32 } }
        },
        k: {
          a: { ".": 27, b: 23, g: 19, i: { s: 17 }, l: 0 },
          b: 29,
          e: {
            d: 24,
            e: 41,
            g: 1,
            l: { i: [{ n: { g: 223 } }, 4] },
            n: { d: 73 },
            r: 29,
            s: [{ t: { ".": 23 } }, 0],
            t: { y: 1 }
          },
          f: 23,
          h: 1,
          i: [
            {
              ".": 32,
              c: 122,
              l: { l: 21, o: 6 },
              m: 21,
              n: {
                ".": 21,
                d: { e: 0 },
                e: { s: { s: 19 }, t: { i: { c: 224 } } },
                g: 0
              },
              p: 1,
              s: [{ h: 19 }, 0]
            },
            29
          ],
          k: 1,
          l: [{ e: { y: 18 }, y: 18 }, 29],
          m: 29,
          n: { e: { s: 19 }, o: 69 },
          o: { r: 4, s: { h: 17 }, u: 23, v: { i: { a: { n: 41 } } } },
          r: { o: { n: 5 } },
          s: [{ c: 21, l: 1, y: 21, h: { a: 23 } }, 101],
          t: 19,
          w: 29
        },
        l: {
          a: {
            b: { i: { c: 11 }, o: 21 },
            c: { i: [{ e: 225 }, 17] },
            d: { e: 21, y: 3 },
            g: { n: 0 },
            m: { o: 11 },
            n: { d: [{ l: 0 }, 27], e: { t: 5 }, t: { e: 0 } },
            r: { g: 0, i: 11, c: { e: { n: 176 } } },
            s: { e: 0 },
            t: { a: { n: 4 }, e: { l: { i: 18 } }, i: { v: 18 } },
            v: [{ a: 95 }, 18],
            i: { n: { e: { s: { s: 226 } } } }
          },
          b: [{ i: { n: 17 } }, 42],
          c: [{ e: 0, i: 23, h: { a: { i: 23 }, i: { l: { d: 227 } } } }, 101],
          d: [
            {
              e: [{ r: { e: 1, i: 1 } }, 24],
              i: [{ s: 4 }, 0],
              r: [{ i: 21 }, 23]
            },
            25
          ],
          e: {
            a: [{ d: { e: { r: { ".": 183 } } }, s: { a: 228 } }, 9],
            b: { i: 1 },
            f: { t: 6 },
            g: { ".": 32, g: 32, e: { n: { d: { r: { e: 230 } } } } },
            m: { a: { t: [{ i: { c: 5 } }, 1] } },
            n: { ".": 18, c: 27, e: { ".": 32 }, t: 41, o: { i: { d: 78 } } },
            p: { h: 3, r: 1 },
            r: { a: { b: 6 }, e: 0, g: 27, i: 68, o: 21 },
            s: [{ c: { o: 4 }, q: 32, s: [{ ".": 32 }, 27] }, 8],
            v: { a: 23, e: { r: { ".": 0, a: 0, s: 0 } } },
            y: [{ e: 18 }, 27],
            c: { t: { a: { b: 229 } } }
          },
          f: [{ r: 19 }, 25],
          g: [{ a: [{ r: 12 }, 19], e: { s: 21 }, o: 11 }, 80],
          h: 48,
          i: {
            a: { g: 1, m: 9, r: { i: { z: 6 } }, s: 1, t: { o: 1 } },
            b: { i: 4 },
            c: { i: { o: 32 }, o: { r: 1 }, s: 18, t: { ".": 18 }, u: 21, y: 23 },
            d: { a: 23, e: { r: 5 }, i: 27 },
            f: { e: { r: 11 }, f: 21, l: 1 },
            g: { a: { t: { e: 32 } }, h: 27, r: { a: 1 } },
            k: 27,
            l: 123,
            m: { b: { l: 0 }, i: 11, o: 1, p: 90 },
            n: { a: 21, e: [{ a: 11 }, 124], i: 11, k: { e: { r: 6 } } },
            o: { g: 4 },
            q: 125,
            s: { p: 0 },
            t: [{ ".": 24, i: { c: { a: 32, s: 108 } }, h: { o: { g: 204 } } }, 29],
            v: { e: { r: 11 } },
            z: 29
          },
          j: 18,
          k: { a: [{ l: 23, t: 0 }, 11] },
          l: [
            {
              a: { w: 21 },
              e: [{ a: 19, c: 23, g: 23, l: 23, n: 73, t: 73 }, 24],
              i: [{ n: [{ a: 19 }, 126], s: { h: 231 } }, 9],
              o: [{ q: { u: { i: 10 } }, u: { t: 4 }, w: 19 }, 1],
              f: { l: 2 }
            },
            29
          ],
          m: [
            {
              e: { t: 19 },
              i: { n: { g: 3 } },
              o: { d: 21, n: [{ e: { l: { l: 232 } } }, 17] }
            },
            25
          ],
          n: 81,
          o: {
            ".": 27,
            b: { a: { l: 5 }, o: { t: { o: 233 } } },
            c: { i: 1 },
            f: 18,
            g: { i: { c: 27 }, o: 19, u: 27, e: { s: { ".": 9 } } },
            m: { e: { r: 11 } },
            n: { g: 32, i: [{ z: 127 }, 0] },
            o: { d: 6 },
            p: { e: { ".": 32 }, i: 11, m: 23 },
            r: { a: [{ t: { o: 1 } }, 17], i: { e: 4 }, o: { u: 5 } },
            s: {
              ".": 32,
              e: { t: 5 },
              o: { p: { h: { i: { z: 32 }, y: 32 } } },
              t: 0
            },
            t: { a: 1 },
            u: { n: { d: 6 }, t: 25 },
            v: 18,
            a: { d: { e: { d: { ".": 17 }, r: { ".": 183 } } } }
          },
          p: [
            {
              a: { b: 5 },
              h: { a: 23, i: 19 },
              i: { n: { g: 4 }, t: 23 },
              l: 21,
              r: 19
            },
            25
          ],
          r: 43,
          s: [{ c: 21, e: 24, i: { e: 21 } }, 81],
          t: [
            {
              a: { g: 4, n: { e: 7 } },
              e: [{ n: 17, r: { a: 36 }, a: 23 }, 29],
              h: { i: [{ l: { y: 148 } }, 11] },
              i: { e: { s: { ".": 19 } }, s: 17 },
              r: 29,
              u: [{ r: { a: 12 } }, 8]
            },
            18
          ],
          u: {
            a: 4,
            b: { r: 3 },
            c: { h: 17, i: 3 },
            e: { n: 3, p: 15 },
            f: 0,
            i: { d: 4 },
            m: {
              a: 1,
              i: 32,
              n: { ".": 19, i: { a: 32 } },
              b: { i: { a: { ".": 235 } } }
            },
            o: [{ r: 11 }, 3],
            p: 18,
            s: { s: 17, t: { e: 11 } },
            t: 41,
            n: { k: { e: { r: 234 } } }
          },
          v: { e: { n: 19, t: 128 } },
          w: 42,
          y: [
            {
              a: 18,
              b: 18,
              m: { e: 4 },
              n: { o: 3 },
              s: [{ e: 19, t: { y: { r: 4 } } }, 58],
              g: { a: { m: { i: 236 } } }
            },
            41
          ]
        },
        m: {
          a: [
            {
              b: 25,
              c: { a: 9, h: { i: { n: { e: 4 } } }, l: 1 },
              g: { i: { n: 5 }, n: 32 },
              h: 25,
              i: { d: 6 },
              l: {
                d: 18,
                i: { g: 3, n: 4 },
                l: { i: 0 },
                t: { y: 0 },
                a: { p: 222 }
              },
              n: { i: { a: 32, s: 5, z: 11 }, ".": 24, u: { s: { c: 237 } } },
              p: [{ h: { r: { o: 244 } } }, 18],
              r: {
                i: { n: { e: { ".": 4 } }, z: 4 },
                l: { y: 0 },
                v: 11,
                g: { i: { n: 238 } }
              },
              s: { c: { e: 4 }, e: 0, t: 15 },
              t: { e: 32, h: 12, i: { s: 3, z: { a: 18 } } }
            },
            41
          ],
          b: [{ a: { t: 129 }, i: { l: 19, n: { g: 83 }, v: 0 } }, 43],
          c: 56,
          e: {
            ".": 18,
            d: [
              {
                ".": 18,
                i: { a: 32, e: 3, c: [{ i: { n: 152 } }, 84], o: { c: 239 } },
                y: 108
              },
              25
            ],
            g: [{ r: { a: { n: 240 } } }, 9],
            l: { o: { n: 5 }, t: 0 },
            m: [{ o: 130 }, 9],
            n: [
              {
                a: [{ c: 5 }, 0],
                d: { e: 0 },
                e: 18,
                i: 0,
                s: [{ u: 7 }, 17],
                t: [{ e: 0 }, 27],
                ".": 24
              },
              41
            ],
            o: { n: 4 },
            r: { s: { a: 19 } },
            s: [{ t: { i: 27 } }, 25],
            t: {
              a: [{ l: 11 }, 1],
              e: 2,
              h: { i: 4 },
              r: [{ i: { c: 32, e: 4 }, y: 3 }, 21]
            },
            v: 1
          },
          f: 43,
          h: 25,
          i: {
            ".": 32,
            a: 3,
            d: { a: [{ b: 241 }, 0], g: 0 },
            g: 0,
            l: {
              i: { a: 27, e: 108, t: { a: 27 } },
              l: [{ a: { g: 208 }, i: { l: { i: 59 } } }, 21]
            },
            n: {
              a: 0,
              d: 27,
              e: { e: 19 },
              g: { l: [{ i: 5, y: 19 }, 21] },
              t: 0,
              u: [{ t: { e: { r: 242, s: { t: 242 } } } }, 21],
              i: { s: { ".": 174 } }
            },
            o: { t: 17 },
            s: [{ e: { r: { ".": 0 } }, l: 5, t: { i: 0, r: { y: 19 } } }, 24],
            t: { h: 18 },
            z: 24
          },
          k: 18,
          l: 43,
          m: [{ a: { r: { y: 5 }, b: 243 } }, 29],
          n: [{ a: 1, i: { n: 21 }, o: 1 }, 43],
          o: [
            {
              c: { r: [{ a: { t: [{ i: { z: 32 } }, 245] } }, 18] },
              d: 131,
              g: { o: 1 },
              i: { s: [{ e: 5 }, 84] },
              k: 18,
              l: { e: { s: { t: 4 }, c: 246 } },
              m: { e: 3 },
              n: {
                e: { t: 5, y: { l: 247 } },
                g: { e: 5 },
                i: { a: 12, s: { m: 0, t: 0 }, z: 3 },
                o: { l: 36, c: { h: 12 }, e: { n: 171 }, s: 249 },
                y: { ".": 3 }
              },
              r: [{ a: { ".": 18 }, o: { n: { i: { s: 248 } } } }, 9],
              s: [{ e: { y: 4 }, p: 3 }, 8],
              t: { h: [{ e: { t: 250 } }, 12] },
              u: { f: 19, s: [{ i: { n: 98 } }, 27] },
              v: 9,
              e: { l: { a: { s: 167 } } }
            },
            41
          ],
          p: [
            {
              a: { r: { a: [{ b: 5 }, 7], i: 6 } },
              e: { t: 23 },
              h: { a: { s: 36 } },
              i: [{ a: 0, e: { s: 4 }, n: 34, r: 19, s: 4 }, 24],
              o: { r: { i: 11 }, s: { i: { t: { e: 6 } } }, u: { s: 21 }, v: 6 },
              t: { r: 1 },
              y: 24
            },
            43
          ],
          r: 47,
          s: [{ h: [{ a: { c: { k: 251 } } }, 21], i: 19 }, 101],
          t: 18,
          u: [
            {
              l: { a: { r: 49 }, t: [{ i: [{ u: 252 }, 54] }, 32] },
              m: 27,
              n: 8,
              p: 18,
              u: 1,
              d: { r: { o: 9 } }
            },
            41
          ],
          w: 18
        },
        n: {
          a: [
            {
              b: [{ u: 21 }, 81],
              c: { ".": 18, a: 1, t: 19 },
              g: { e: { r: { ".": 5 } } },
              k: 0,
              l: { i: [{ a: 4 }, 1], t: 18 },
              m: { i: { t: 4 } },
              n: [{ c: { i: 36 }, i: { t: 0 }, k: 17 }, 24],
              r: { c: [{ h: { s: { ".": 73 } } }, 11], e: 18, i: 11, l: 0, m: 19 },
              s: [{ c: 0, t: { i: 5 } }, 21],
              t: [{ a: { l: 3 }, o: { m: { i: { z: 6 } } } }, 24],
              u: [{ s: { e: 11 }, t: 27 }, 24],
              v: { e: 0 }
            },
            41
          ],
          b: 80,
          c: {
            a: { r: 6 },
            e: { s: { ".": 21 } },
            h: { a: 23, e: { o: 19, s: { t: 253 } }, i: { l: 19, s: 23 } },
            i: { n: 2, t: 1 },
            o: { u: { r: { a: 7 } } },
            r: 29,
            u: 29
          },
          d: {
            a: { i: 21, n: 19 },
            e: [{ s: { t: { ".": 4 } } }, 29],
            i: { b: 0, f: 79, t: 29, z: 23, e: { c: { k: 29 } } },
            u: { c: 19, r: 0 },
            w: { e: 9 },
            t: { h: { r: 3 } }
          },
          e: {
            ".": 25,
            a: { r: 23 },
            b: [{ u: 11, a: { c: { k: 3 } } }, 9],
            c: [{ k: 32 }, 9],
            d: 25,
            g: { a: { t: [{ i: { v: 5 } }, 1] }, e: 32 },
            l: { a: 1, i: { z: 5 } },
            m: { i: 4, o: 1 },
            n: [{ e: 18 }, 41],
            o: 27,
            p: { o: 1 },
            q: 9,
            r: [{ a: { b: 6, r: 21 }, e: 24, i: 132, r: 0 }, 29],
            s: [{ ".": 25, p: 18, t: 25, w: 18, k: { i: 119 } }, 41],
            t: { i: { c: 27 } },
            v: [{ e: 19 }, 1],
            w: 1
          },
          f: [{ i: { n: { i: { t: { e: { s: 226 } } } } } }, 23],
          g: {
            a: { b: 21 },
            e: { l: 23, n: { e: [{ s: 5 }, 133] }, r: { e: 19, i: 23 } },
            h: { a: 4, o: 2 },
            i: { b: 23, n: 2, t: 19 },
            l: { a: 21 },
            o: { v: 17 },
            s: { h: 4, p: { r: 2 } },
            u: [{ m: 21 }, 29],
            y: 24
          },
          h: [{ a: [{ b: 12 }, 0], e: 0 }, 80],
          i: {
            a: [{ n: [{ ".": 114 }, 3], p: 1 }, 68],
            b: { a: 3, l: 1 },
            d: [{ i: 4 }, 1],
            e: { r: 1 },
            f: { i: [{ c: { a: { t: 4 } } }, 9] },
            g: { r: 19 },
            k: 0,
            m: [{ i: { z: 3 } }, 29],
            n: [{ e: { ".": 32 }, g: 0 }, 29],
            o: 1,
            s: { ".": 32, t: { a: 0 } },
            t: [{ h: 21, i: { o: 27 }, o: { r: 23 }, r: 3 }, 24]
          },
          j: 29,
          k: [
            { e: { r: { o: 19 }, t: 23 }, i: { n: 3 }, l: 29, r: { u: { p: 3 } } },
            44
          ],
          l: [{ e: { s: { s: 19 } } }, 43],
          m: [{ e: [{ t: 17 }, 0] }, 19],
          n: [{ e: 0, i: { a: { l: 11 }, v: 0 } }, 101],
          o: {
            b: { l: [{ e: 3 }, 0] },
            c: { l: 19, e: { r: { o: { s: 254 } } } },
            d: 66,
            e: 27,
            g: [{ e: 17 }, 18],
            i: { s: { i: 6 } },
            l: { i: 134, o: { g: { i: { s: 32 } } } },
            m: {
              i: { c: 27, z: 108, s: { t: 82 } },
              o: 1,
              y: 3,
              a: { l: 214 },
              e: { n: { o: 194 } }
            },
            n: [{ a: { g: 0 }, i: [{ z: 19, s: { o: 255 } }, 5], e: { q: 15 } }, 1],
            p: [{ o: { l: { i: 135, y: { ".": 256 } } } }, 18],
            r: { a: { b: 5, r: { y: 1 } } },
            s: { c: 18, e: 0, t: 5 },
            t: { a: 4 },
            u: [{ n: 27 }, 41],
            v: { e: { l: 136, m: { b: 2 } } },
            w: { l: 12 }
          },
          p: [{ i: 0, r: { e: { c: 17 } } }, 72],
          q: 29,
          r: [{ u: 0 }, 29],
          s: [
            {
              a: { b: 4, t: { i: 36 } },
              c: [{ e: { i: { v: 4 } } }, 1],
              e: [{ s: 83 }, 24],
              i: { d: 137, g: 17 },
              l: 24,
              m: [{ o: { o: 1 } }, 3],
              o: { c: 21 },
              p: { e: 1, i: 19 },
              t: { a: { b: { l: 6 } } }
            },
            81
          ],
          t: [
            {
              a: { b: 0 },
              e: { r: { s: 12 } },
              i: [{ b: 19, e: { r: 0 }, f: 8, n: { e: 23, g: 83 }, p: 0 }, 9],
              r: { o: { l: { l: { i: 7 } } }, e: { p: 137 } },
              s: 1,
              u: { m: { e: 11 } }
            },
            29
          ],
          u: {
            a: 2,
            d: 1,
            e: { n: 4 },
            f: { f: { e: 0 } },
            i: { n: 23, t: 50 },
            m: [{ e: 2, i: 19 }, 21],
            n: 138,
            o: 23,
            t: { r: 3 }
          },
          v: 74,
          w: 72,
          y: { m: 0, p: 0 },
          z: [{ a: 23 }, 18]
        },
        o: {
          a: [
            {
              d: 11,
              l: { e: { s: 108 } },
              r: { d: 12 },
              s: { e: 0, t: { e: 6 } },
              t: { i: 5 }
            },
            18
          ],
          b: {
            a: { b: 35, r: 19 },
            e: { l: 0 },
            i: [{ n: [{ g: 4 }, 24] }, 29],
            r: 23,
            u: { l: 3 },
            l: { i: { g: 189 } }
          },
          c: {
            e: 29,
            h: [{ e: { t: 23 }, a: { s: 23 } }, 0],
            i: { f: 12, l: 21 },
            l: { a: { m: 21 } },
            o: { d: 21 },
            r: { a: { c: 3, t: { i: { z: 4 } } }, e: 12, i: { t: 32 } },
            t: { o: { r: { a: 7 } } },
            u: { l: { a: 3 }, r: { e: 19 } }
          },
          d: {
            d: { e: { d: 4 } },
            i: { c: 3, o: 11, t: { i: { c: 137 } } },
            o: [{ r: 12 }, 139],
            u: { c: { t: { ".": 4, s: 4 } } },
            e: { l: { l: { i: 12 } } }
          },
          e: {
            l: 21,
            n: { g: 19 },
            r: [{ s: { t: 257 } }, 23],
            t: { a: 1 },
            v: 23
          },
          f: { i: [{ t: { e: 4, t: 17 } }, 24] },
          g: {
            a: { r: 121, t: { i: { v: 4 }, o: 21 } },
            e: [{ n: { e: 19 }, o: 19, r: 21 }, 29],
            i: { e: 23, s: 140, t: 3 },
            l: [{ y: 79 }, 21],
            n: { i: { z: 27 } },
            r: { o: 21 },
            u: { i: 5 },
            y: [{ n: 25 }, 41]
          },
          h: [{ a: { b: 6 } }, 74],
          i: [
            {
              c: { e: { s: 11 } },
              d: { e: { r: 3 } },
              f: { f: 17 },
              g: 0,
              l: { e: { t: 4 } },
              n: { g: 23, t: { e: { r: 6 } } },
              s: { m: 19, o: { n: 4 }, t: { e: { n: 6 } } },
              t: { e: { r: 3 } }
            },
            9
          ],
          j: 19,
          k: [{ e: { n: 23, s: { t: 15 } }, i: { e: 4 } }, 25],
          l: {
            a: [{ n: 21, s: { s: 36 } }, 29],
            d: [{ e: 15 }, 9],
            e: { r: 3, s: { c: 23, t: { e: { r: 88 } } }, t: 23 },
            f: { i: 1 },
            i: [
              {
                a: 23,
                c: { e: 23 },
                d: { ".": 4 },
                f: 73,
                l: 19,
                n: { g: 3 },
                o: 19,
                s: { ".": 19, h: 3 },
                t: { e: 19, i: { o: 19 } },
                v: 19,
                g: { o: { p: { o: 258 } } }
              },
              9
            ],
            l: { i: { e: 17 } },
            o: { g: { i: { z: 4 } }, r: 0, n: { o: { m: 259 } } },
            p: { l: 4 },
            t: 9,
            u: { b: 3, m: { e: 3 }, n: 3, s: 19 },
            v: 9,
            y: 24
          },
          m: {
            a: { h: 4, l: 5, t: { i: { z: 4 } } },
            b: { e: 9, l: 1 },
            e: [
              {
                n: { a: 3 },
                r: { s: { e: 4 } },
                t: [{ r: { y: 4 } }, 21],
                c: { h: { a: 260 } }
              },
              24
            ],
            i: { a: 23, c: { ".": 3, a: 3 }, d: 19, n: [{ i: 19 }, 2] },
            m: { e: { n: { d: 32 } } },
            o: { g: { e: 0 }, n: 21 },
            p: { i: 3, r: { o: 7 } }
          },
          n: [
            {
              a: [{ c: 1, n: 23 }, 2],
              c: [{ i: { l: 27 } }, 2],
              d: [{ o: 4 }, 25],
              e: { n: 23, s: { t: 4 } },
              g: { u: 1 },
              i: { c: 2, o: 23, s: 2, u: 19 },
              k: { e: { y: 3 } },
              o: {
                d: { i: 1 },
                m: { y: 3, i: { c: 137 } },
                r: { m: { a: 23 } },
                t: { o: { n: 261 } },
                u: 23
              },
              s: [{ p: { i: [{ r: { a: 10 } }, 36] }, u: 17 }, 3],
              t: { e: { n: 36 }, i: [{ f: 7 }, 93] },
              u: { m: 4 },
              v: { a: 6 }
            },
            24
          ],
          o: [
            { d: { e: 5, i: 5 }, k: 1, p: { i: 11 }, r: { d: 23 }, s: { t: 6 } },
            9
          ],
          p: {
            a: 24,
            e: { d: 5, r: [{ a: [{ g: 18 }, 27] }, 2] },
            h: [{ a: { n: 19 }, e: { r: 19 } }, 25],
            i: { n: { g: 3 }, t: 23, s: { m: { ".": 2 } } },
            o: { n: 19, s: { i: 21 } },
            r: 29,
            u: 2,
            y: 5
          },
          q: 29,
          r: {
            a: [{ ".": 19, g: 83, l: { i: { z: 4 } }, n: { g: { e: 4 } } }, 29],
            e: { a: [{ l: 19 }, 5], i: 3, s: { h: 5, t: { ".": 4 } }, w: 17 },
            g: { u: 1 },
            i: { a: 56, c: { a: 3 }, l: 19, n: 2, o: 29, t: { y: 3 }, u: 23 },
            m: { i: 9 },
            n: { e: 8 },
            o: { f: 19, u: { g: 3 } },
            p: { e: 4 },
            r: { h: 27 },
            s: { e: [{ n: 5 }, 1], t: 17 },
            t: {
              h: { i: 3, y: 3, o: { n: { i: { t: 262 } } }, r: { i: 137 } },
              y: 1,
              i: { v: { e: { l: { y: 4 } } } }
            },
            u: { m: 19 },
            y: 29
          },
          s: {
            a: { l: 3 },
            c: [{ e: 1, o: { p: [{ i: 18 }, 23] }, r: 19 }, 9],
            i: { e: 95, t: { i: { v: 4 }, o: 3, y: 3 }, u: 0 },
            l: 1,
            o: 24,
            p: { a: 1, o: 1, h: { e: { r: 83 } } },
            t: { a: [{ t: { i: 19 } }, 9], i: { l: 4, t: 4 } }
          },
          t: {
            a: { n: 21 },
            e: {
              l: { e: { g: 36 } },
              r: { ".": 3, s: 4 },
              s: [{ t: { e: { r: 263 }, o: { r: 264 } } }, 21]
            },
            h: [{ e: { s: { i: 5 }, o: { s: 265 } }, i: 14 }, 18],
            i: { c: { ".": 3, a: 4, e: 23 }, f: 23, s: 23 },
            o: { s: 5 }
          },
          u: [
            {
              b: { l: 3, a: { d: { o: 116 } } },
              c: { h: { i: 6 } },
              e: { t: 4 },
              l: 1,
              n: { c: { e: { r: 6 } }, d: 8 },
              v: 4
            },
            9
          ],
          v: {
            e: { n: 1, r: { n: { e: 17 }, s: 12, t: 1 } },
            i: { s: 23, t: { i: 36 }, a: { n: { ".": 266 } } },
            o: { l: 60 }
          },
          w: {
            d: { e: { r: 3 } },
            e: { l: 3, s: { t: 4 } },
            i: 2,
            n: { i: 5 },
            o: 21
          },
          y: { a: 2 },
          x: { i: { d: { i: { c: 267 } } } }
        },
        p: {
          a: [
            {
              c: { a: 1, e: 1, t: 0 },
              d: 21,
              g: { a: { n: 32, t: 23 } },
              i: [{ n: 17 }, 21],
              l: [{ m: { a: { t: 268 } } }, 21],
              n: { a: 0, e: { l: 11 }, t: { y: 0 }, y: 3 },
              p: [{ u: 1 }, 2],
              r: {
                a: {
                  b: { l: 6 },
                  g: { e: 5, r: { a: 269 } },
                  l: { e: 228 },
                  m: [{ e: 12 }, 36]
                },
                d: { i: 5 },
                e: [{ l: 5 }, 27],
                i: [{ s: 0 }, 28]
              },
              t: {
                e: [{ r: 4 }, 9],
                h: { i: { c: 32 }, y: 4 },
                r: { i: { c: 1 } }
              },
              v: 0,
              y: 27
            },
            41
          ],
          b: 43,
          d: 1,
          e: {
            ".": 18,
            a: [{ r: { l: 17 } }, 138],
            c: 9,
            d: [{ e: 27, i: [{ a: 36, c: 0 }, 27] }, 37],
            e: [{ d: 0, v: 208 }, 21],
            k: 0,
            l: { a: 1, i: { e: 17 } },
            n: { a: { n: 1 }, c: 21, t: { h: 0 } },
            o: { n: 4 },
            r: {
              a: { ".": 21, b: { l: 6 }, g: 21 },
              i: [{ s: { t: 6 } }, 21],
              m: { a: { l: 0 }, e: 7 },
              n: 21,
              o: 11,
              t: { i: 11 },
              u: 4,
              v: 15
            },
            t: [{ e: { n: 4 }, i: { z: 4 } }, 9]
          },
          f: 18,
          g: 18,
          h: {
            ".": 18,
            a: { r: { i: 6 } },
            e: { n: { o: 11 }, r: 1, s: { ".": 1 } },
            i: {
              c: 2,
              e: 32,
              n: { g: 4 },
              s: { t: { i: 32 } },
              z: 27,
              l: { a: { n: { t: 168 }, t: { e: { l: 270 } } } }
            },
            l: 9,
            o: { b: 27, n: { e: 27, i: 32 }, r: 0 },
            s: 18,
            t: 3,
            u: 32,
            y: 41
          },
          i: {
            a: [{ n: 17 }, 3],
            c: { i: { e: 1 }, y: 1, a: { d: 271 } },
            d: [{ a: 19, e: 3, i: 32 }, 21],
            e: { c: 27, n: 3 },
            g: { r: { a: { p: 1 } } },
            l: { o: 3 },
            n: [{ ".": 21, d: 17, o: 21 }, 9],
            o: [{ n: 17 }, 141],
            t: { h: [{ a: 4 }, 23], u: 9 }
          },
          k: 142,
          l: [
            {
              a: { n: 27, s: { t: 6 } },
              i: {
                a: 11,
                e: { r: 5 },
                g: 18,
                n: [{ a: { r: 5 } }, 0],
                c: { a: { b: 208 } }
              },
              o: { i: 17 },
              u: { m: [{ b: 17 }, 0] }
            },
            143
          ],
          m: 43,
          n: 48,
          o: {
            c: 1,
            d: { ".": 32 },
            e: { m: 4, t: 144 },
            g: 145,
            i: { n: [{ t: 32, c: { a: 12 } }, 84] },
            l: {
              y: { t: 6, e: 137, p: { h: { o: { n: { o: 272 } } } } },
              e: { ".": 41 }
            },
            n: { i: 1 },
            p: 1,
            r: [{ y: 1 }, 124],
            s: [{ s: 15 }, 41],
            t: [{ a: 1 }, 21],
            u: { n: 32 }
          },
          p: [
            {
              a: { r: { a: 5 } },
              e: [{ d: 21, l: 19, n: 23, r: 23, t: 23 }, 24],
              o: { s: { i: { t: { e: 5 } } } }
            },
            43
          ],
          r: [
            {
              a: { y: { e: 17 } },
              e: {
                c: { i: 32, o: 5 },
                e: { m: 11 },
                f: { a: { c: 6 } },
                l: { a: 0 },
                r: 11,
                s: { e: 23, s: 27, p: { l: { i: 84 } } },
                t: { e: { n: 5 } },
                v: 11,
                m: { a: { c: 273 } },
                n: { e: { u: 15 } }
              },
              i: { e: 53, n: { t: 146 }, s: [{ o: 12 }, 0] },
              o: {
                c: { a: 23, e: { s: { s: 8 } }, i: { t: { y: { ".": 274 } } } },
                f: { i: { t: 6 } },
                l: 11,
                s: { e: 12 },
                t: 15,
                g: { e: 208 }
              }
            },
            9
          ],
          s: [
            {
              e: [{ u: { d: [{ o: { d: 276, f: 276 } }, 275] } }, 24],
              h: 1,
              i: { b: 21 }
            },
            81
          ],
          t: [
            {
              a: { b: 134 },
              e: 24,
              h: 24,
              i: { m: 11 },
              u: { r: 0 },
              w: 21,
              o: { m: { a: { t: 277 } } },
              r: { o: { l: 278 } }
            },
            42
          ],
          u: {
            b: [{ e: { s: { c: 181 } } }, 11],
            e: 0,
            f: 0,
            l: { c: 11 },
            m: 1,
            n: 9,
            r: { r: 0 },
            s: 32,
            t: [{ e: [{ r: 11 }, 32], r: 3, t: { e: { d: 0 }, i: { n: 0 } } }, 9]
          },
          w: 23
        },
        q: {
          u: [
            {
              a: {
                v: 5,
                i: { n: { t: { e: 279 } } },
                s: { i: [{ r: 281, s: 281 }, 280] }
              },
              e: { ".": 25, r: 27, t: 27 },
              i: { n: { t: { e: { s: { s: 282 } } } }, v: { a: { r: 14 } } }
            },
            9
          ]
        },
        r: {
          a: {
            b: [{ i: 3, o: { l: { i: { c: 29 }, o: { i: 236 } } } }, 25],
            c: { h: { e: 17, u: 3 }, l: 19 },
            f: { f: { i: 5 }, t: 0 },
            i: 24,
            l: { o: 1 },
            m: {
              e: { t: [{ r: { i: { z: 283 } } }, 11], n: 24 },
              i: 24,
              o: { u: 3 }
            },
            n: { e: { o: 6 }, g: { e: 0 }, i: 21, o: 4, h: { a: { s: 167 } } },
            p: { e: { r: 11 }, h: { y: 27 } },
            r: { c: 5, e: [{ f: 5 }, 17], i: { l: 18 } },
            s: 24,
            t: { i: { o: { n: 115 } } },
            u: { t: 0 },
            v: { a: { i: 4 }, e: { l: 11 } },
            z: { i: { e: 4 } },
            d: { i: { g: 127, o: { g: 249 } } },
            o: { r: 2 }
          },
          b: [
            {
              a: { b: 21, g: 21 },
              i: [{ f: 0, n: [{ e: 19, g: { ".": 4, e: 284 } }, 24] }, 8],
              o: 1
            },
            29
          ],
          c: [
            {
              e: [{ n: 17 }, 24],
              h: { a: 23, e: { r: 0 } },
              i: { b: 90, t: 1 },
              u: { m: 12 }
            },
            29
          ],
          d: { a: { l: 21 }, i: [{ a: 0, e: { r: 0 }, n: [{ g: 3 }, 17] }, 9] },
          e: {
            ".": 25,
            a: { l: 2, n: 3, r: { r: 4 }, v: 32, w: 1 },
            b: { r: { a: { t: 19 } } },
            c: {
              o: { l: { l: 5 }, m: { p: { e: 5 } } },
              r: { e: 1 },
              i: { p: { r: 285 } },
              t: { a: { n: { g: 286 } } }
            },
            d: [{ e: 2, i: { s: 3, t: 5 } }, 37],
            f: { a: { c: 1 }, e: [{ r: { ".": 4 } }, 9], i: 3, y: 1 },
            g: { i: { s: 11 } },
            i: { t: 4 },
            l: { i: 2, u: 4 },
            n: { t: { a: 90, e: 0 } },
            o: 2,
            p: { i: { n: 4 }, o: { s: { i: 1 } }, u: 2 },
            r: [{ i: 21, o: 17, u: 4 }, 147],
            s: {
              ".": 21,
              p: { i: 1 },
              s: { i: { b: 6 } },
              t: [{ a: { l: 4 }, r: 3 }, 8]
            },
            t: { e: { r: 1 }, i: { z: 96 }, r: { i: [{ b: { u: 85 } }, 3] } },
            u: [{ t: { i: 4 } }, 8],
            v: [
              {
                a: { l: 1 },
                e: { l: 11, r: { ".": 30, s: 4, t: 4 } },
                i: { l: 4 },
                o: { l: { u: 5 } }
              },
              8
            ],
            w: { h: 1 }
          },
          f: [{ u: 0, y: 21 }, 29],
          g: [
            {
              e: { r: 3, t: 23 },
              i: { c: 23, n: [{ g: 3 }, 0], s: 19, t: 19 },
              l: 29,
              o: { n: 0 },
              u: 23
            },
            9
          ],
          h: [{ ".": 18, a: { l: 18 } }, 1],
          i: {
            a: [{ b: 0, g: 1, l: { ".": 23 } }, 3],
            b: [{ a: 11 }, 21],
            c: { a: { s: 5 }, e: 21, i: [{ d: 32, e: 1 }, 18], o: 21 },
            d: { e: { r: 5 } },
            e: { n: { c: 3, t: 3 }, r: 2, t: 4 },
            g: { a: { n: 5 }, i: 32 },
            l: { i: { z: 11 } },
            m: { a: { n: 32 }, i: 5, o: 27, p: { e: 0 } },
            n: { a: [{ ".": 32 }, 24], d: 0, e: 0, g: 0 },
            o: 2,
            p: { h: [{ e: 6 }, 32], l: [{ i: { c: 5 } }, 9] },
            q: 21,
            s: [{ ".": 21, c: 0, h: 23, p: 0 }, 24],
            t: {
              a: { b: 116 },
              e: { d: { ".": 19 }, r: { ".": 5, s: 5 } },
              i: { c: 11 },
              u: [{ r: 5 }, 9]
            },
            v: { e: { l: 5, t: 11 }, i: 11, o: { l: 287 } }
          },
          j: 23,
          k: {
            e: { t: 23 },
            l: { e: 1, i: { n: 1 } },
            ".": 288,
            h: { o: 2 },
            r: { a: { u: 29 } },
            s: { ".": 288 }
          },
          l: [
            {
              e: [{ d: 24, q: { u: 30 } }, 0],
              i: { g: 21, s: [{ h: 4 }, 21] },
              o: 73
            },
            29
          ],
          m: [
            {
              a: { c: 5 },
              e: [{ n: 23, r: { s: 4 } }, 24],
              i: { n: { g: [{ ".": 21 }, 3] }, o: 21, t: 23 },
              y: 21
            },
            29
          ],
          n: {
            a: { r: 21 },
            e: { l: 23, r: 21, t: 19, y: 23 },
            i: { c: 19, s: 92, t: 23, v: 23 },
            o: [{ u: 21 }, 0],
            u: 23
          },
          o: {
            b: { l: 11, o: { t: 289 } },
            c: [{ r: 3 }, 24],
            e: [{ l: { a: { s: 167 } }, p: { i: { d: { e: 290 } } } }, 1],
            f: { e: 2, i: { l: 4 } },
            k: [{ e: { r: 4 } }, 8],
            l: { e: { ".": 32 } },
            m: { e: { t: { e: 5 }, s: { h: 3 } }, i: 0, p: 0 },
            n: { a: { l: 0 }, e: 0, i: { s: 134 }, t: { a: 0 } },
            o: { m: 41, t: 32 },
            p: { e: { l: 3 }, i: { c: 11 } },
            r: { i: 11, o: 4 },
            s: { p: { e: { r: 5 } }, s: 0 },
            t: { h: { e: 1 }, y: 1, r: { o: { n: 2 } } },
            v: { a: 1, e: { l: 5 } },
            x: 5
          },
          p: [
            {
              e: { a: 21, n: { t: 19 }, r: { ".": 4 }, t: 23 },
              h: 95,
              i: { n: { g: 3 } },
              o: 23,
              a: { u: { l: { i: 291 } } }
            },
            29
          ],
          r: [
            {
              e: { c: 0, f: 0, o: 21, s: { t: 0 } },
              i: { o: 0, v: 0 },
              o: { n: 17, s: 17 },
              y: { s: 17 }
            },
            72
          ],
          s: [
            {
              a: [{ t: { i: 5 } }, 29],
              c: 1,
              e: [
                {
                  c: [{ r: 0 }, 23],
                  r: { ".": 4, a: { d: { i: 238 } } },
                  s: 3,
                  v: 148
                },
                24
              ],
              h: [{ a: 19 }, 29],
              i: [{ b: 90 }, 29],
              o: { n: 12 },
              p: 29,
              w: 19
            },
            44
          ],
          t: {
            a: { c: { h: 36 }, g: 21 },
            e: { b: 23, n: { d: 17 }, o: 5 },
            i: [
              {
                b: 4,
                d: 0,
                e: { r: 21 },
                g: 23,
                l: { i: 12, l: 17, y: 21 },
                s: { t: 21 },
                v: 21
              },
              29
            ],
            r: { i: 23, o: { p: { h: 115 } }, e: { u: 29 } },
            s: { h: 1 },
            h: { o: { u: 29 } }
          },
          u: {
            a: 3,
            e: { l: 93, n: 3 },
            g: { l: 1 },
            i: { n: 3 },
            m: { p: { l: 11 } },
            n: [{ k: 6, t: { y: 0 } }, 9],
            s: { c: 19 },
            t: { i: { n: 6 } }
          },
          v: {
            e: [
              {
                l: { i: 17 },
                n: 23,
                r: { ".": 4 },
                s: { t: 19 },
                y: 23,
                i: { l: 29 }
              },
              1
            ],
            i: { c: 23, v: 0 },
            o: 23
          },
          w: 29,
          y: { c: 1, n: { g: { e: 32 } }, t: 3 },
          z: { s: { c: 2 } }
        },
        s: {
          a: [
            {
              b: 42,
              c: { k: 32, r: { i: 11 }, t: 23 },
              i: 32,
              l: { a: { r: 36 }, m: 0, o: 4, t: 0, e: { s: { c: 54, w: 7 } } },
              n: { c: 27, d: { e: 0 } },
              p: [{ a: { r: { i: { l: 292 } } } }, 29],
              t: { a: 4, i: { o: 76 }, u: 11 },
              u: 0,
              v: { o: { r: 4 } },
              w: 32
            },
            9
          ],
          b: 56,
          c: {
            a: {
              n: { t: 149 },
              p: [{ e: { r: 267 } }, 0],
              v: 6,
              t: { o: { l: 208 } }
            },
            e: { d: 21, i: 18, s: 21 },
            h: [
              {
                o: 21,
                i: { t: { z: 21 } },
                r: { o: { d: { i: { n: { g: 293 } } } } }
              },
              8
            ],
            i: { e: 68, n: { d: 150 }, u: { t: { t: 294 } } },
            l: { e: 6, i: 21 },
            o: { f: 17, p: { y: 18 }, u: { r: { a: 7 } } },
            u: 29,
            r: { a: { p: { e: { r: { ".": 36 } } } } },
            y: { t: { h: 247 } }
          },
          d: 56,
          e: {
            ".": 18,
            a: [{ s: 17, w: 5 }, 1],
            c: { o: 151, t: 27 },
            d: [{ e: 95, l: 19 }, 125],
            g: [{ r: 11 }, 9],
            i: 32,
            l: { e: 2, f: 32, v: 32 },
            m: {
              e: [{ s: { t: 295 } }, 18],
              o: { l: 1 },
              a: { p: { h: 287 } },
              i: { t: { i: { c: 296 } } }
            },
            n: {
              a: { t: 5 },
              c: 18,
              d: 0,
              e: { d: 19 },
              g: 5,
              i: { n: 19 },
              t: { d: 18, l: 18 }
            },
            p: { a: 152, t: { e: { m: { b: 11 } } } },
            r: { ".": 43, l: 21, o: 0, v: { o: 18 } },
            s: [{ h: 4, t: 5 }, 72],
            u: { m: 113 },
            v: [{ e: { n: 11 } }, 32],
            w: { i: 0 },
            x: 32
          },
          f: 47,
          g: 48,
          h: [
            {
              ".": 25,
              e: { r: 2, v: 32 },
              i: { n: 2, o: 3, p: 27, v: 6 },
              o: [
                { l: { d: 4 }, n: 12, r: [{ t: 7 }, 17], e: { s: { t: 137 } } },
                0
              ],
              w: 18
            },
            24
          ],
          i: {
            b: 2,
            c: { c: 19 },
            d: {
              e: { ".": 27, s: [{ t: 6, w: 6 }, 32], d: { ".": 8 } },
              i: [{ z: 4 }, 32]
            },
            g: { n: { a: 18 } },
            l: { e: 0, y: 18 },
            n: [{ a: 24, e: { ".": 32 }, g: 23 }, 42],
            o: [{ n: [{ a: 6 }, 32] }, 41],
            r: [{ a: 5, e: { s: { i: { d: 4 } } } }, 9],
            s: 41,
            t: { i: { o: 27 } },
            u: 32,
            v: 41,
            z: 32
          },
          k: [
            { e: [{ t: 23 }, 18], i: { n: { e: 4, g: 4 } }, y: { s: { c: 15 } } },
            9
          ],
          l: [
            {
              a: { t: 23 },
              e: 24,
              i: { t: { h: 7 } },
              o: { v: { a: { k: { i: { a: 297 } } } } }
            },
            74
          ],
          m: [
            {
              a: [{ l: { l: 54 }, n: 12 }, 23],
              e: { l: 17, n: 19 },
              i: { t: { h: 32 } },
              o: { l: { d: 49 } }
            },
            42
          ],
          n: 72,
          o: [
            {
              c: { e: 1 },
              f: { t: 12 },
              l: { a: { b: 1 }, d: 153, i: { c: 3 }, v: 32, u: { t: { e: 9 } } },
              m: 27,
              n: { ".": 68, a: 17, g: 0 },
              p: [{ h: { i: { c: 32, z: 19 }, y: 19 } }, 21],
              r: { c: 5, d: 5 },
              v: [{ i: 4 }, 18],
              g: { a: { m: { y: 298 } } }
            },
            41
          ],
          p: {
            a: [{ i: 32, n: 0, c: { e: 299, i: { n: 69 } } }, 25],
            e: { n: { d: 17 }, o: 57, r: 25, c: { i: { o: 11 } } },
            h: { e: [{ r: [{ o: 213 }, 27] }, 24], o: 6 },
            i: { l: 17, n: { g: 4 }, o: 18, c: { i: { l: 208 } } },
            l: { y: 21 },
            o: {
              n: 21,
              r: [{ t: { s: { c: 300, w: 300 } } }, 17],
              t: 18,
              k: { e: { s: { w: 10 } } }
            }
          },
          q: { u: { a: { l: { l: 36 } }, i: { t: { o: 88 } } } },
          r: 29,
          s: [
            {
              a: [{ s: 12, c: { h: { u: 301 } } }, 29],
              c: 94,
              e: { l: 23, n: { g: 19 }, s: { ".": 21 }, t: 19 },
              i: [
                {
                  e: [{ r: 0 }, 21],
                  l: { y: 4 },
                  a: { n: { ".": 210 } },
                  g: { n: { a: { b: 302 } } }
                },
                29
              ],
              l: [{ i: 1 }, 21],
              n: 21,
              p: { e: { n: { d: 115 } } },
              t: 9,
              u: { r: { a: 6 } },
              w: 4,
              h: { a: { t: 3 } }
            },
            25
          ],
          t: {
            ".": 25,
            a: {
              g: 24,
              l: 24,
              m: { i: 17, p: 69 },
              n: { d: 32, t: { s: { h: { i: 303 } } } },
              p: 90,
              t: { ".": 32, i: 15 },
              r: { t: { l: { i: 12 } } }
            },
            e: { d: 21, r: { n: { i: 7 }, o: 19 }, w: [{ a: 6 }, 8] },
            h: { e: 23 },
            i: [
              {
                ".": 21,
                a: 19,
                c: [{ k: 32 }, 29],
                e: 21,
                f: 23,
                n: { g: 3 },
                r: 32
              },
              9
            ],
            l: { e: 29 },
            o: {
              c: { k: 32 },
              m: { a: 12 },
              n: { e: 32 },
              p: 21,
              r: { e: 27, a: { b: 304 } }
            },
            r: [
              {
                a: { d: 21, t: { u: 32, a: { g: 305 } }, y: 21 },
                i: { d: 21, b: { u: { t: 7 } } },
                y: 18
              },
              1
            ],
            w: 61,
            y: [{ l: { i: { s: 137 } } }, 24],
            b: 4,
            s: { c: { r: 4 } },
            u: { p: { i: { d: 306 } } }
          },
          u: [
            {
              a: { l: 2 },
              b: 111,
              g: 151,
              i: { s: 4, t: 12 },
              l: 21,
              m: [{ i: 11 }, 9],
              n: 9,
              r: 9,
              p: { e: { r: { e: 307 } } }
            },
            41
          ],
          v: 18,
          w: [{ o: 18, i: { m: { m: 177 } } }, 9],
          y: [
            {
              c: 18,
              l: 27,
              n: { o: 5, c: 41 },
              r: { i: { n: 4 } },
              t: { h: { i: 308 } }
            },
            21
          ]
        },
        t: {
          a: [
            {
              ".": 27,
              b: [
                { l: { e: { s: 4 } }, o: { l: { i: { z: 32, s: { m: 309 } } } } },
                25
              ],
              c: { i: 18 },
              d: { o: 4 },
              f: 46,
              i: { l: { o: 5 } },
              l: [
                {
                  a: 4,
                  e: { n: 5 },
                  i: 11,
                  k: [{ a: 204 }, 18],
                  l: { i: { s: 0 } },
                  o: { g: 4 }
                },
                9
              ],
              m: { o: 4, i: { n: 82 } },
              n: { d: { e: 0 }, t: { a: 54 } },
              p: { e: { r: 4 }, l: 4, a: { t: { h: 310 } } },
              r: { a: 0, c: 18, e: 18, i: { z: 3 }, r: { h: 311 } },
              s: { e: 0, y: 4 },
              t: { i: { c: 18 }, u: { r: 1 } },
              u: { n: 17 },
              v: 0,
              w: 25,
              x: { i: { s: 0 } },
              g: { o: { n: { ".": 3 } } }
            },
            41
          ],
          b: 42,
          c: [{ h: [{ e: { t: 5 }, c: 15, i: { e: { r: 237 } } }, 21], r: 29 }, 18],
          d: 43,
          e: {
            ".": 18,
            a: { d: { i: 17 }, t: 18, c: { h: { e: { r: { ".": 36 } } } } },
            c: { e: 17, t: 32 },
            d: [{ i: 4 }, 42],
            e: 41,
            g: [{ e: { r: 4 }, i: 4 }, 0],
            l: { ".": 27, i: 17, s: 32, e: { g: 84, r: { o: 249 } } },
            m: { a: [{ t: 11 }, 154] },
            n: {
              a: { n: 27 },
              c: 27,
              d: 27,
              e: { s: 18 },
              t: [{ a: { g: 0 } }, 41]
            },
            o: 41,
            p: [{ e: 4 }, 1],
            r: {
              c: 11,
              d: 155,
              i: [{ e: { s: 5 }, s: 11, z: { a: 6 }, c: { ".": 8 } }, 41],
              n: { i: { t: 32 } },
              v: 5,
              g: { e: { i: 312 } }
            },
            s: { ".": 18, s: [{ ".": 23, e: { s: 313 } }, 18] },
            t: { h: { e: 6 } },
            u: 27,
            x: 27,
            y: 18
          },
          f: 42,
          g: 43,
          h: {
            ".": 25,
            a: { n: 17, l: { a: { m: 228 } } },
            e: [{ a: [{ s: 3, t: 5 }, 18], i: { s: 11 }, t: 27 }, 9],
            i: { c: { ".": 4, a: 4 }, l: 18, n: { k: 32 } },
            l: 18,
            o: {
              d: { e: 4, i: { c: 32 }, o: { n: 11 } },
              o: 18,
              r: { i: { t: 6, z: 5 } },
              g: { e: { n: { i: 314 } } },
              k: { e: { r: 175 } }
            },
            s: 25,
            y: { l: { a: { n: 228 } }, s: { c: 11 } }
          },
          i: {
            a: [{ b: 1, t: { o: 1 }, n: { ".": 70 } }, 41],
            b: 156,
            c: { k: 18, o: 21, u: 157 },
            d: { i: 32 },
            e: { n: 27 },
            f: [{ y: 4 }, 8],
            g: [{ u: 32 }, 25],
            l: { l: { i: { n: 6 } } },
            m: [{ p: 18, u: { l: 5 } }, 41],
            n: [{ a: 24, e: { ".": 27 }, i: 27, o: { m: 285 } }, 42],
            o: [{ c: 4, n: { e: { e: 6 } } }, 41],
            q: 32,
            s: { a: 3, e: 27, m: 0, o: 4, p: 0, t: { i: { c: { a: 32 } } } },
            t: { l: 3 },
            u: 1,
            v: [{ a: 0 }, 41],
            z: [{ a: 3, e: { n: 3 } }, 41]
          },
          l: [
            {
              a: [{ n: 17 }, 19],
              e: { ".": 27, d: 27, s: { ".": 27 }, t: { ".": 19 } },
              o: 19,
              i: { e: { r: 315 } }
            },
            25
          ],
          m: [{ e: 0 }, 43],
          n: 81,
          o: [
            {
              b: 3,
              c: { r: { a: { t: 4 } } },
              d: { o: 18 },
              f: 25,
              g: { r: 9 },
              i: { c: 4 },
              m: { a: 9, b: 0, y: 3 },
              n: { a: { l: { i: 0 }, t: 3 }, o: 18, y: 18 },
              r: { a: 9, i: { e: 3, z: 5 } },
              s: 8,
              u: { r: 32, t: 18 },
              w: { a: { r: 3 } },
              l: { o: { g: { y: 84 } } },
              t: { i: { c: 11 } }
            },
            41
          ],
          p: 43,
          r: {
            a: [
              {
                b: 11,
                c: { h: 5, i: [{ t: 17 }, 36], t: { e: 17 } },
                s: 17,
                v: { e: { n: 5, s: 158, r: { s: [{ a: { b: 317 } }, 15] } } },
                i: { t: { o: { r: 316 } } }
              },
              41
            ],
            e: { f: 5, m: [{ i: 6 }, 0], a: { c: { h: { e: 318 } } } },
            i: {
              a: [{ l: { ".": 1 } }, 32],
              c: { e: { s: 5 }, i: { a: 32 }, s: 18 },
              m: 25,
              v: 0
            },
            o: {
              m: { i: 5 },
              n: { i: 6, y: 18 },
              p: {
                h: { e: 5 },
                i: { s: 175 },
                o: { l: { e: { s: 320 }, i: { s: 320, t: 321 } } }
              },
              s: { p: 11 },
              v: 11,
              l: { e: { u: { m: 319 } } },
              f: { i: { c: { ".": 17 }, t: 11 } }
            },
            u: { i: 5, s: 17 }
          },
          s: [{ c: [{ h: { i: { e: 12 } } }, 21], h: 0, w: 21 }, 101],
          t: [
            { e: { s: 21 }, o: 19, u: 0, r: { i: { b: { u: { t: 322 } } } } },
            66
          ],
          u: [
            {
              a: [{ r: 3 }, 2],
              b: { i: 1 },
              d: 8,
              e: 18,
              f: 46,
              i: 76,
              m: 27,
              n: { i: { s: 1 } },
              p: { ".": 48 },
              r: { e: 27, i: [{ s: 11 }, 32], o: 5, y: 4, n: { a: { r: 12 } } },
              s: 27
            },
            41
          ],
          v: 18,
          w: [{ a: 43, i: { s: 17 }, o: 18, h: 29 }, 1],
          y: [{ a: 18, l: 25, p: { e: 12, h: 4, a: { l: 64 } } }, 41],
          z: [{ e: 1 }, 18]
        },
        u: {
          a: {
            b: 18,
            c: 0,
            n: { a: 4, i: 0 },
            r: { a: { n: { t: 5 } }, d: 8, i: 11, t: 11 },
            t: 29,
            v: 0,
            d: { r: { a: { t: { i: 3, u: 15 } } } }
          },
          b: {
            e: [{ l: 21, r: [{ o: 21 }, 23] }, 1],
            i: [{ n: { g: 33 } }, 72],
            l: { e: { ".": 23 } }
          },
          c: { a: 23, i: { b: 0, t: 1 }, l: { e: 12 }, r: 23, u: 23, y: 21 },
          d: {
            d: 4,
            e: { r: 3, s: { t: 4 }, v: 17 },
            i: { c: 29, e: { d: 3, s: 3 }, s: 4, t: 19 },
            o: { n: [{ y: 232 }, 21] },
            s: { i: 1 },
            u: 21
          },
          e: { n: { e: 21, s: 17, t: { e: 0 } }, r: { i: { l: 0 } }, a: { m: 15 } },
          f: { a: 27, l: 23 },
          g: { h: { e: { n: 11 } }, i: { n: 4 } },
          i: [
            {
              l: { i: { z: 5 } },
              n: [{ g: 29 }, 1],
              r: { m: 0 },
              t: { a: 17 },
              v: [{ e: { r: { ".": 0 } } }, 11]
            },
            156
          ],
          j: 19,
          k: 18,
          l: {
            a: [{ b: 5, t: { i: 19 } }, 29],
            c: { h: [{ e: 32 }, 17] },
            d: { e: { r: 3 } },
            e: [{ n: 29 }, 1],
            g: { i: 1 },
            i: [{ a: 19, n: { g: 3 }, s: { h: 4 } }, 9],
            l: { a: { r: 1 }, i: { b: 96, s: 1 } },
            m: 61,
            o: 72,
            s: [{ e: { s: 5 } }, 18],
            t: { i: 2, r: { a: 54 }, u: 18 },
            u: [{ l: 4 }, 23],
            v: 4
          },
          m: {
            a: { b: 4 },
            b: { i: 1, l: { y: 1 } },
            i: [{ n: { g: 83 } }, 29],
            o: { r: { o: 6 } },
            p: 9
          },
          n: {
            a: { t: 17 },
            e: [{ r: 1 }, 24],
            i: [{ m: 1, n: 24, s: { h: 4 }, v: 11 }, 29],
            s: [{ w: 1 }, 93],
            t: { a: { b: 11 }, e: { r: { ".": 1 }, s: 1 } },
            u: 0,
            y: 4,
            z: 4
          },
          o: { r: { s: 21 }, s: 19, u: 29 },
          p: {
            e: [{ r: { s: 6 } }, 29],
            i: { a: 19, n: { g: 3 } },
            l: 23,
            p: [{ o: { r: { t: 10 } } }, 3],
            t: { i: { b: 5 }, u: 17 }
          },
          r: {
            a: [{ ".": 18, g: 21, s: 21, l: { ".": 216 } }, 29],
            b: { e: 1 },
            c: 0,
            d: 2,
            e: { a: { t: 5 } },
            f: { e: { r: 1 }, r: 1 },
            i: {
              f: [{ i: { c: 0 } }, 23],
              n: 2,
              o: 23,
              t: 29,
              z: 3,
              a: { l: { ".": 0 } }
            },
            l: [{ i: { n: { g: { ".": 5 } } } }, 9],
            n: { o: 1 },
            o: { s: 17 },
            p: { e: 1, i: 1 },
            s: { e: { r: 5 } },
            t: { e: { s: 4 }, h: { e: 3 }, i: [{ e: 1 }, 17] },
            u: 23
          },
          s: [
            {
              a: { d: 19, n: 19, p: 1 },
              c: [{ i: 3 }, 8],
              e: { a: 5, r: { ".": 9 } },
              i: { a: 19, c: 23 },
              l: { i: { n: 1 } },
              p: 2,
              s: { l: 4 },
              t: { e: { r: { e: 4 } }, r: 2 },
              u: [{ r: 17 }, 24]
            },
            25
          ],
          t: {
            a: { b: 0, t: 23 },
            e: { ".": 18, l: 18, n: [{ i: 17 }, 18] },
            i: [
              {
                l: { i: { z: 5 } },
                n: { e: 23, g: 3 },
                o: { n: { a: 7 } },
                s: 21,
                z: 31
              },
              101
            ],
            l: 34,
            o: { f: 4, g: 5, m: { a: { t: { i: { c: 5 } } } }, n: 19, u: 21 },
            s: 0
          },
          u: [{ m: 1 }, 23],
          v: 74,
          x: { u: 11 },
          z: { e: 1 }
        },
        v: {
          a: [
            {
              ".": 32,
              b: 159,
              c: { i: { l: 5 }, u: 11 },
              g: [{ e: 1, u: { e: { r: 170 } } }, 0],
              l: { i: { e: 4 }, o: 5, u: 15 },
              m: { o: 4 },
              n: { i: { z: 4 } },
              p: { i: 4 },
              r: { i: { e: { d: 5 } } },
              t: [{ i: { v: 29 } }, 27],
              u: { d: { e: { v: 54 } } }
            },
            41
          ],
          e: {
            ".": 18,
            d: 18,
            g: 11,
            l: { ".": 23, l: { i: 11 }, o: 1, y: 21 },
            n: { o: { m: 11 }, u: { e: 19 } },
            r: {
              d: 21,
              e: {
                ".": 32,
                l: [{ y: { ".": 41 } }, 21],
                n: [{ c: 5 }, 23],
                s: 21,
                i: { g: 324 }
              },
              i: { e: 11 },
              m: { i: { n: 36 } },
              s: { e: 27 },
              t: { h: 11 }
            },
            s: [{ ".": 18, t: { e: 0, i: { t: { e: 15 } } } }, 99],
            t: { e: [{ r: 11 }, 1], y: 1 }
          },
          i: {
            a: { l: { i: 4 }, n: 32 },
            d: { e: { ".": 32, d: 32, n: 47, s: 32 }, i: 32 },
            f: 23,
            g: { n: 4 },
            k: 0,
            l: [{ i: { t: 32, z: 127 } }, 25],
            n: [{ a: 26, c: 24, d: 5, g: 18 }, 29],
            o: { l: 11, r: 73, u: 2 },
            p: 1,
            r: { o: 4 },
            s: { i: { t: 11 }, o: 3, u: 3 },
            t: { i: 18, r: 11, y: 18 },
            v: [{ i: { p: { a: { r: 325 } } } }, 27]
          },
          o: {
            ".": 32,
            i: [{ r: { d: { u: 323 } }, c: { e: { p: 213 } } }, 0],
            k: 27,
            l: { a: 1, e: 19, t: 32, v: 27 },
            m: { i: 5 },
            r: { a: { b: 5 }, i: 17, y: 1 },
            t: { a: 1, e: { e: 18 } }
          },
          v: 26,
          y: 21
        },
        w: {
          a: {
            b: { l: 19 },
            c: 25,
            g: { e: { r: 4 }, o: 5 },
            i: { t: 6 },
            l: { ".": 19 },
            m: 0,
            r: { t: 0 },
            s: { t: [{ e: { w: { a: 326 } } }, 0] },
            t: { e: 2 },
            v: { e: { r: 4, g: 327 } }
          },
          b: 29,
          e: {
            a: { r: { i: { e: 5 } }, t: { h: 54 } },
            d: { n: 0 },
            e: { t: 12, v: 5, k: { n: 137 } },
            l: { l: 0 },
            r: 29,
            s: { t: 12 },
            v: 23
          },
          h: { i: 0 },
          i: [
            {
              l: [{ l: { i: { n: 6 } } }, 8],
              n: { d: { e: 0 }, g: 0 },
              r: 0,
              s: { e: 27 },
              t: { h: 12 },
              z: 5,
              d: { e: { s: { p: 6 } } }
            },
            9
          ],
          k: 21,
          l: { e: { s: 1 }, i: { n: 3 } },
          n: { o: 21 },
          o: [{ m: 15, v: { e: { n: 4 } }, k: { e: { n: 85 } } }, 160],
          p: 19,
          r: {
            a: [{ p: { a: { r: { o: 12 } } } }, 0],
            i: [{ t: { a: 36, e: { r: { ".": 183 } } } }, 0]
          },
          s: { h: 23, l: 1, p: { e: 1 }, t: 60 },
          t: 18,
          y: 1,
          c: 23
        },
        x: {
          a: [{ c: { e: 5 }, g: { o: 21 }, m: 11, p: 21, s: 5 }, 29],
          c: 161,
          e: [{ c: { u: { t: { o: 1 } } }, d: 24, r: { i: 0, o: 4 } }, 29],
          h: [{ i: [{ l: 6 }, 8], u: 0 }, 29],
          i: [{ a: 4, c: 4, d: { i: 4 }, m: { e: 21, i: { z: 4 } } }, 23],
          o: [{ b: 21 }, 23],
          p: [{ a: { n: { d: 17 } }, e: { c: { t: { o: 10 } }, d: 11 } }, 23],
          t: [{ i: 23 }, 74],
          u: [{ a: 3 }, 29],
          x: 1,
          q: [{ u: { i: { s: 54 } } }, 29]
        },
        y: {
          a: { c: 19, r: 110, t: 19 },
          b: 29,
          c: [
            {
              e: [{ r: 4 }, 24],
              h: [{ e: [{ d: 264 }, 0] }, 23],
              o: { m: 17, t: 17 }
            },
            29
          ],
          d: 29,
          e: {
            e: 19,
            r: [{ f: 21 }, 29],
            s: [{ t: { e: { r: { y: 328 } } } }, 0],
            t: 1
          },
          g: { i: 19 },
          h: 47,
          i: 29,
          l: { a: 23, l: { a: { b: { l: 6 } } }, o: 23, u: 19 },
          m: { b: { o: { l: 7 } }, e: [{ t: { r: { y: 20 } } }, 0], p: { a: 12 } },
          n: { c: { h: { r: 3 } }, d: 4, g: 4, i: { c: 4 }, x: 32 },
          o: [{ d: 4, g: 33, m: 0, n: { e: { t: 4 }, s: 21 }, s: 21 }, 72],
          p: { e: { d: 21, r: 6 }, i: 3, o: [{ c: 21 }, 23], t: { a: 9 }, u: 19 },
          r: { a: { m: 5 }, i: { a: 4 }, o: 23, r: 1 },
          s: {
            c: 1,
            e: 161,
            i: { c: { a: 3 }, o: 3, s: 27 },
            o: 21,
            s: 0,
            t: [{ a: 3, r: { o: 29 } }, 2],
            u: { r: 17 }
          },
          t: { h: { i: { n: 23 } }, i: { c: 3 } },
          w: 29
        },
        z: {
          a: [{ b: 79, r: 8 }, 2],
          b: 18,
          e: [{ n: 1, p: 1, r: [{ o: 3 }, 29], t: 0 }, 25],
          i: [{ l: 21, s: 21, a: { n: { ".": 23 } } }, 42],
          l: 32,
          m: 18,
          o: [{ m: 1, o: { l: 4 }, p: { h: { r: 329 } } }, 41],
          t: { e: 0 },
          z: [{ y: 21, w: 231 }, 101]
        }
      },
      {
        associate: [2, 5],
        associates: [2, 5],
        declination: [3, 6, 9],
        obligatory: [5, 7],
        philanthropic: [4, 7],
        present: [],
        presents: [],
        project: [],
        projects: [],
        reciprocity: [4],
        recognizance: [2, 6, 9],
        reformation: [3, 6, 9],
        retribution: [3, 6, 9],
        table: [2]
      }
    ]);
  }
});

// ../../node_modules/.pnpm/emoji-regex-xs@1.0.0/node_modules/emoji-regex-xs/index.js
var require_emoji_regex_xs = __commonJS({
  "../../node_modules/.pnpm/emoji-regex-xs@1.0.0/node_modules/emoji-regex-xs/index.js"(exports, module) {
    var r4 = String.raw;
    var seq = r4`(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})`;
    var sTags = r4`\u{E0061}-\u{E007A}`;
    module.exports = () => new RegExp(r4`[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[${sTags}]{2}[\u{E0030}-\u{E0039}${sTags}]{1,3}\u{E007F}|${seq}(?:\u200D${seq})*`, "gu");
  }
});

// ../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js
var require_react_production = __commonJS({
  "../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js"(exports) {
    "use strict";
    var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element");
    var REACT_PORTAL_TYPE = Symbol.for("react.portal");
    var REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
    var REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode");
    var REACT_PROFILER_TYPE = Symbol.for("react.profiler");
    var REACT_CONSUMER_TYPE = Symbol.for("react.consumer");
    var REACT_CONTEXT_TYPE = Symbol.for("react.context");
    var REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref");
    var REACT_SUSPENSE_TYPE = Symbol.for("react.suspense");
    var REACT_MEMO_TYPE = Symbol.for("react.memo");
    var REACT_LAZY_TYPE = Symbol.for("react.lazy");
    var REACT_ACTIVITY_TYPE = Symbol.for("react.activity");
    var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
    function getIteratorFn(maybeIterable) {
      if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
      maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"];
      return "function" === typeof maybeIterable ? maybeIterable : null;
    }
    var ReactNoopUpdateQueue = {
      isMounted: function() {
        return false;
      },
      enqueueForceUpdate: function() {
      },
      enqueueReplaceState: function() {
      },
      enqueueSetState: function() {
      }
    };
    var assign = Object.assign;
    var emptyObject = {};
    function Component(props, context, updater) {
      this.props = props;
      this.context = context;
      this.refs = emptyObject;
      this.updater = updater || ReactNoopUpdateQueue;
    }
    Component.prototype.isReactComponent = {};
    Component.prototype.setState = function(partialState, callback) {
      if ("object" !== typeof partialState && "function" !== typeof partialState && null != partialState)
        throw Error(
          "takes an object of state variables to update or a function which returns an object of state variables."
        );
      this.updater.enqueueSetState(this, partialState, callback, "setState");
    };
    Component.prototype.forceUpdate = function(callback) {
      this.updater.enqueueForceUpdate(this, callback, "forceUpdate");
    };
    function ComponentDummy() {
    }
    ComponentDummy.prototype = Component.prototype;
    function PureComponent(props, context, updater) {
      this.props = props;
      this.context = context;
      this.refs = emptyObject;
      this.updater = updater || ReactNoopUpdateQueue;
    }
    var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();
    pureComponentPrototype.constructor = PureComponent;
    assign(pureComponentPrototype, Component.prototype);
    pureComponentPrototype.isPureReactComponent = true;
    var isArrayImpl = Array.isArray;
    function noop6() {
    }
    var ReactSharedInternals = { H: null, A: null, T: null, S: null };
    var hasOwnProperty2 = Object.prototype.hasOwnProperty;
    function ReactElement(type, key, props) {
      var refProp = props.ref;
      return {
        $$typeof: REACT_ELEMENT_TYPE,
        type,
        key,
        ref: void 0 !== refProp ? refProp : null,
        props
      };
    }
    function cloneAndReplaceKey(oldElement, newKey) {
      return ReactElement(oldElement.type, newKey, oldElement.props);
    }
    function isValidElement(object) {
      return "object" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;
    }
    function escape2(key) {
      var escaperLookup = { "=": "=0", ":": "=2" };
      return "$" + key.replace(/[=:]/g, function(match) {
        return escaperLookup[match];
      });
    }
    var userProvidedKeyEscapeRegex = /\/+/g;
    function getElementKey(element, index2) {
      return "object" === typeof element && null !== element && null != element.key ? escape2("" + element.key) : index2.toString(36);
    }
    function resolveThenable(thenable) {
      switch (thenable.status) {
        case "fulfilled":
          return thenable.value;
        case "rejected":
          throw thenable.reason;
        default:
          switch ("string" === typeof thenable.status ? thenable.then(noop6, noop6) : (thenable.status = "pending", thenable.then(
            function(fulfilledValue) {
              "pending" === thenable.status && (thenable.status = "fulfilled", thenable.value = fulfilledValue);
            },
            function(error) {
              "pending" === thenable.status && (thenable.status = "rejected", thenable.reason = error);
            }
          )), thenable.status) {
            case "fulfilled":
              return thenable.value;
            case "rejected":
              throw thenable.reason;
          }
      }
      throw thenable;
    }
    function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {
      var type = typeof children;
      if ("undefined" === type || "boolean" === type) children = null;
      var invokeCallback = false;
      if (null === children) invokeCallback = true;
      else
        switch (type) {
          case "bigint":
          case "string":
          case "number":
            invokeCallback = true;
            break;
          case "object":
            switch (children.$$typeof) {
              case REACT_ELEMENT_TYPE:
              case REACT_PORTAL_TYPE:
                invokeCallback = true;
                break;
              case REACT_LAZY_TYPE:
                return invokeCallback = children._init, mapIntoArray(
                  invokeCallback(children._payload),
                  array,
                  escapedPrefix,
                  nameSoFar,
                  callback
                );
            }
        }
      if (invokeCallback)
        return callback = callback(children), invokeCallback = "" === nameSoFar ? "." + getElementKey(children, 0) : nameSoFar, isArrayImpl(callback) ? (escapedPrefix = "", null != invokeCallback && (escapedPrefix = invokeCallback.replace(userProvidedKeyEscapeRegex, "$&/") + "/"), mapIntoArray(callback, array, escapedPrefix, "", function(c6) {
          return c6;
        })) : null != callback && (isValidElement(callback) && (callback = cloneAndReplaceKey(
          callback,
          escapedPrefix + (null == callback.key || children && children.key === callback.key ? "" : ("" + callback.key).replace(
            userProvidedKeyEscapeRegex,
            "$&/"
          ) + "/") + invokeCallback
        )), array.push(callback)), 1;
      invokeCallback = 0;
      var nextNamePrefix = "" === nameSoFar ? "." : nameSoFar + ":";
      if (isArrayImpl(children))
        for (var i5 = 0; i5 < children.length; i5++)
          nameSoFar = children[i5], type = nextNamePrefix + getElementKey(nameSoFar, i5), invokeCallback += mapIntoArray(
            nameSoFar,
            array,
            escapedPrefix,
            type,
            callback
          );
      else if (i5 = getIteratorFn(children), "function" === typeof i5)
        for (children = i5.call(children), i5 = 0; !(nameSoFar = children.next()).done; )
          nameSoFar = nameSoFar.value, type = nextNamePrefix + getElementKey(nameSoFar, i5++), invokeCallback += mapIntoArray(
            nameSoFar,
            array,
            escapedPrefix,
            type,
            callback
          );
      else if ("object" === type) {
        if ("function" === typeof children.then)
          return mapIntoArray(
            resolveThenable(children),
            array,
            escapedPrefix,
            nameSoFar,
            callback
          );
        array = String(children);
        throw Error(
          "Objects are not valid as a React child (found: " + ("[object Object]" === array ? "object with keys {" + Object.keys(children).join(", ") + "}" : array) + "). If you meant to render a collection of children, use an array instead."
        );
      }
      return invokeCallback;
    }
    function mapChildren(children, func, context) {
      if (null == children) return children;
      var result = [], count = 0;
      mapIntoArray(children, result, "", "", function(child) {
        return func.call(context, child, count++);
      });
      return result;
    }
    function lazyInitializer(payload) {
      if (-1 === payload._status) {
        var ctor = payload._result;
        ctor = ctor();
        ctor.then(
          function(moduleObject) {
            if (0 === payload._status || -1 === payload._status)
              payload._status = 1, payload._result = moduleObject;
          },
          function(error) {
            if (0 === payload._status || -1 === payload._status)
              payload._status = 2, payload._result = error;
          }
        );
        -1 === payload._status && (payload._status = 0, payload._result = ctor);
      }
      if (1 === payload._status) return payload._result.default;
      throw payload._result;
    }
    var reportGlobalError = "function" === typeof reportError ? reportError : function(error) {
      if ("object" === typeof window && "function" === typeof window.ErrorEvent) {
        var event = new window.ErrorEvent("error", {
          bubbles: true,
          cancelable: true,
          message: "object" === typeof error && null !== error && "string" === typeof error.message ? String(error.message) : String(error),
          error
        });
        if (!window.dispatchEvent(event)) return;
      } else if ("object" === typeof process && "function" === typeof process.emit) {
        process.emit("uncaughtException", error);
        return;
      }
      console.error(error);
    };
    var Children = {
      map: mapChildren,
      forEach: function(children, forEachFunc, forEachContext) {
        mapChildren(
          children,
          function() {
            forEachFunc.apply(this, arguments);
          },
          forEachContext
        );
      },
      count: function(children) {
        var n6 = 0;
        mapChildren(children, function() {
          n6++;
        });
        return n6;
      },
      toArray: function(children) {
        return mapChildren(children, function(child) {
          return child;
        }) || [];
      },
      only: function(children) {
        if (!isValidElement(children))
          throw Error(
            "React.Children.only expected to receive a single React element child."
          );
        return children;
      }
    };
    exports.Activity = REACT_ACTIVITY_TYPE;
    exports.Children = Children;
    exports.Component = Component;
    exports.Fragment = REACT_FRAGMENT_TYPE;
    exports.Profiler = REACT_PROFILER_TYPE;
    exports.PureComponent = PureComponent;
    exports.StrictMode = REACT_STRICT_MODE_TYPE;
    exports.Suspense = REACT_SUSPENSE_TYPE;
    exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = ReactSharedInternals;
    exports.__COMPILER_RUNTIME = {
      __proto__: null,
      c: function(size) {
        return ReactSharedInternals.H.useMemoCache(size);
      }
    };
    exports.cache = function(fn) {
      return function() {
        return fn.apply(null, arguments);
      };
    };
    exports.cacheSignal = function() {
      return null;
    };
    exports.cloneElement = function(element, config, children) {
      if (null === element || void 0 === element)
        throw Error(
          "The argument must be a React element, but you passed " + element + "."
        );
      var props = assign({}, element.props), key = element.key;
      if (null != config)
        for (propName in void 0 !== config.key && (key = "" + config.key), config)
          !hasOwnProperty2.call(config, propName) || "key" === propName || "__self" === propName || "__source" === propName || "ref" === propName && void 0 === config.ref || (props[propName] = config[propName]);
      var propName = arguments.length - 2;
      if (1 === propName) props.children = children;
      else if (1 < propName) {
        for (var childArray = Array(propName), i5 = 0; i5 < propName; i5++)
          childArray[i5] = arguments[i5 + 2];
        props.children = childArray;
      }
      return ReactElement(element.type, key, props);
    };
    exports.createContext = function(defaultValue) {
      defaultValue = {
        $$typeof: REACT_CONTEXT_TYPE,
        _currentValue: defaultValue,
        _currentValue2: defaultValue,
        _threadCount: 0,
        Provider: null,
        Consumer: null
      };
      defaultValue.Provider = defaultValue;
      defaultValue.Consumer = {
        $$typeof: REACT_CONSUMER_TYPE,
        _context: defaultValue
      };
      return defaultValue;
    };
    exports.createElement = function(type, config, children) {
      var propName, props = {}, key = null;
      if (null != config)
        for (propName in void 0 !== config.key && (key = "" + config.key), config)
          hasOwnProperty2.call(config, propName) && "key" !== propName && "__self" !== propName && "__source" !== propName && (props[propName] = config[propName]);
      var childrenLength = arguments.length - 2;
      if (1 === childrenLength) props.children = children;
      else if (1 < childrenLength) {
        for (var childArray = Array(childrenLength), i5 = 0; i5 < childrenLength; i5++)
          childArray[i5] = arguments[i5 + 2];
        props.children = childArray;
      }
      if (type && type.defaultProps)
        for (propName in childrenLength = type.defaultProps, childrenLength)
          void 0 === props[propName] && (props[propName] = childrenLength[propName]);
      return ReactElement(type, key, props);
    };
    exports.createRef = function() {
      return { current: null };
    };
    exports.forwardRef = function(render3) {
      return { $$typeof: REACT_FORWARD_REF_TYPE, render: render3 };
    };
    exports.isValidElement = isValidElement;
    exports.lazy = function(ctor) {
      return {
        $$typeof: REACT_LAZY_TYPE,
        _payload: { _status: -1, _result: ctor },
        _init: lazyInitializer
      };
    };
    exports.memo = function(type, compare) {
      return {
        $$typeof: REACT_MEMO_TYPE,
        type,
        compare: void 0 === compare ? null : compare
      };
    };
    exports.startTransition = function(scope) {
      var prevTransition = ReactSharedInternals.T, currentTransition = {};
      ReactSharedInternals.T = currentTransition;
      try {
        var returnValue = scope(), onStartTransitionFinish = ReactSharedInternals.S;
        null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue);
        "object" === typeof returnValue && null !== returnValue && "function" === typeof returnValue.then && returnValue.then(noop6, reportGlobalError);
      } catch (error) {
        reportGlobalError(error);
      } finally {
        null !== prevTransition && null !== currentTransition.types && (prevTransition.types = currentTransition.types), ReactSharedInternals.T = prevTransition;
      }
    };
    exports.unstable_useCacheRefresh = function() {
      return ReactSharedInternals.H.useCacheRefresh();
    };
    exports.use = function(usable) {
      return ReactSharedInternals.H.use(usable);
    };
    exports.useActionState = function(action, initialState2, permalink) {
      return ReactSharedInternals.H.useActionState(action, initialState2, permalink);
    };
    exports.useCallback = function(callback, deps) {
      return ReactSharedInternals.H.useCallback(callback, deps);
    };
    exports.useContext = function(Context) {
      return ReactSharedInternals.H.useContext(Context);
    };
    exports.useDebugValue = function() {
    };
    exports.useDeferredValue = function(value2, initialValue) {
      return ReactSharedInternals.H.useDeferredValue(value2, initialValue);
    };
    exports.useEffect = function(create2, deps) {
      return ReactSharedInternals.H.useEffect(create2, deps);
    };
    exports.useEffectEvent = function(callback) {
      return ReactSharedInternals.H.useEffectEvent(callback);
    };
    exports.useId = function() {
      return ReactSharedInternals.H.useId();
    };
    exports.useImperativeHandle = function(ref, create2, deps) {
      return ReactSharedInternals.H.useImperativeHandle(ref, create2, deps);
    };
    exports.useInsertionEffect = function(create2, deps) {
      return ReactSharedInternals.H.useInsertionEffect(create2, deps);
    };
    exports.useLayoutEffect = function(create2, deps) {
      return ReactSharedInternals.H.useLayoutEffect(create2, deps);
    };
    exports.useMemo = function(create2, deps) {
      return ReactSharedInternals.H.useMemo(create2, deps);
    };
    exports.useOptimistic = function(passthrough, reducer) {
      return ReactSharedInternals.H.useOptimistic(passthrough, reducer);
    };
    exports.useReducer = function(reducer, initialArg, init3) {
      return ReactSharedInternals.H.useReducer(reducer, initialArg, init3);
    };
    exports.useRef = function(initialValue) {
      return ReactSharedInternals.H.useRef(initialValue);
    };
    exports.useState = function(initialState2) {
      return ReactSharedInternals.H.useState(initialState2);
    };
    exports.useSyncExternalStore = function(subscribe, getSnapshot, getServerSnapshot) {
      return ReactSharedInternals.H.useSyncExternalStore(
        subscribe,
        getSnapshot,
        getServerSnapshot
      );
    };
    exports.useTransition = function() {
      return ReactSharedInternals.H.useTransition();
    };
    exports.version = "19.2.4";
  }
});

// ../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.development.js
var require_react_development = __commonJS({
  "../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.development.js"(exports, module) {
    "use strict";
    "production" !== process.env.NODE_ENV && (function() {
      function defineDeprecationWarning(methodName, info) {
        Object.defineProperty(Component.prototype, methodName, {
          get: function() {
            console.warn(
              "%s(...) is deprecated in plain JavaScript React classes. %s",
              info[0],
              info[1]
            );
          }
        });
      }
      function getIteratorFn(maybeIterable) {
        if (null === maybeIterable || "object" !== typeof maybeIterable)
          return null;
        maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"];
        return "function" === typeof maybeIterable ? maybeIterable : null;
      }
      function warnNoop(publicInstance, callerName) {
        publicInstance = (publicInstance = publicInstance.constructor) && (publicInstance.displayName || publicInstance.name) || "ReactClass";
        var warningKey = publicInstance + "." + callerName;
        didWarnStateUpdateForUnmountedComponent[warningKey] || (console.error(
          "Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",
          callerName,
          publicInstance
        ), didWarnStateUpdateForUnmountedComponent[warningKey] = true);
      }
      function Component(props, context, updater) {
        this.props = props;
        this.context = context;
        this.refs = emptyObject;
        this.updater = updater || ReactNoopUpdateQueue;
      }
      function ComponentDummy() {
      }
      function PureComponent(props, context, updater) {
        this.props = props;
        this.context = context;
        this.refs = emptyObject;
        this.updater = updater || ReactNoopUpdateQueue;
      }
      function noop6() {
      }
      function testStringCoercion(value2) {
        return "" + value2;
      }
      function checkKeyStringCoercion(value2) {
        try {
          testStringCoercion(value2);
          var JSCompiler_inline_result = false;
        } catch (e4) {
          JSCompiler_inline_result = true;
        }
        if (JSCompiler_inline_result) {
          JSCompiler_inline_result = console;
          var JSCompiler_temp_const = JSCompiler_inline_result.error;
          var JSCompiler_inline_result$jscomp$0 = "function" === typeof Symbol && Symbol.toStringTag && value2[Symbol.toStringTag] || value2.constructor.name || "Object";
          JSCompiler_temp_const.call(
            JSCompiler_inline_result,
            "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
            JSCompiler_inline_result$jscomp$0
          );
          return testStringCoercion(value2);
        }
      }
      function getComponentNameFromType(type) {
        if (null == type) return null;
        if ("function" === typeof type)
          return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null;
        if ("string" === typeof type) return type;
        switch (type) {
          case REACT_FRAGMENT_TYPE:
            return "Fragment";
          case REACT_PROFILER_TYPE:
            return "Profiler";
          case REACT_STRICT_MODE_TYPE:
            return "StrictMode";
          case REACT_SUSPENSE_TYPE:
            return "Suspense";
          case REACT_SUSPENSE_LIST_TYPE:
            return "SuspenseList";
          case REACT_ACTIVITY_TYPE:
            return "Activity";
        }
        if ("object" === typeof type)
          switch ("number" === typeof type.tag && console.error(
            "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
          ), type.$$typeof) {
            case REACT_PORTAL_TYPE:
              return "Portal";
            case REACT_CONTEXT_TYPE:
              return type.displayName || "Context";
            case REACT_CONSUMER_TYPE:
              return (type._context.displayName || "Context") + ".Consumer";
            case REACT_FORWARD_REF_TYPE:
              var innerType = type.render;
              type = type.displayName;
              type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef");
              return type;
            case REACT_MEMO_TYPE:
              return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo";
            case REACT_LAZY_TYPE:
              innerType = type._payload;
              type = type._init;
              try {
                return getComponentNameFromType(type(innerType));
              } catch (x) {
              }
          }
        return null;
      }
      function getTaskName(type) {
        if (type === REACT_FRAGMENT_TYPE) return "<>";
        if ("object" === typeof type && null !== type && type.$$typeof === REACT_LAZY_TYPE)
          return "<...>";
        try {
          var name = getComponentNameFromType(type);
          return name ? "<" + name + ">" : "<...>";
        } catch (x) {
          return "<...>";
        }
      }
      function getOwner() {
        var dispatcher = ReactSharedInternals.A;
        return null === dispatcher ? null : dispatcher.getOwner();
      }
      function UnknownOwner() {
        return Error("react-stack-top-frame");
      }
      function hasValidKey(config) {
        if (hasOwnProperty2.call(config, "key")) {
          var getter = Object.getOwnPropertyDescriptor(config, "key").get;
          if (getter && getter.isReactWarning) return false;
        }
        return void 0 !== config.key;
      }
      function defineKeyPropWarningGetter(props, displayName) {
        function warnAboutAccessingKey() {
          specialPropKeyWarningShown || (specialPropKeyWarningShown = true, console.error(
            "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
            displayName
          ));
        }
        warnAboutAccessingKey.isReactWarning = true;
        Object.defineProperty(props, "key", {
          get: warnAboutAccessingKey,
          configurable: true
        });
      }
      function elementRefGetterWithDeprecationWarning() {
        var componentName = getComponentNameFromType(this.type);
        didWarnAboutElementRef[componentName] || (didWarnAboutElementRef[componentName] = true, console.error(
          "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
        ));
        componentName = this.props.ref;
        return void 0 !== componentName ? componentName : null;
      }
      function ReactElement(type, key, props, owner, debugStack, debugTask) {
        var refProp = props.ref;
        type = {
          $$typeof: REACT_ELEMENT_TYPE,
          type,
          key,
          props,
          _owner: owner
        };
        null !== (void 0 !== refProp ? refProp : null) ? Object.defineProperty(type, "ref", {
          enumerable: false,
          get: elementRefGetterWithDeprecationWarning
        }) : Object.defineProperty(type, "ref", { enumerable: false, value: null });
        type._store = {};
        Object.defineProperty(type._store, "validated", {
          configurable: false,
          enumerable: false,
          writable: true,
          value: 0
        });
        Object.defineProperty(type, "_debugInfo", {
          configurable: false,
          enumerable: false,
          writable: true,
          value: null
        });
        Object.defineProperty(type, "_debugStack", {
          configurable: false,
          enumerable: false,
          writable: true,
          value: debugStack
        });
        Object.defineProperty(type, "_debugTask", {
          configurable: false,
          enumerable: false,
          writable: true,
          value: debugTask
        });
        Object.freeze && (Object.freeze(type.props), Object.freeze(type));
        return type;
      }
      function cloneAndReplaceKey(oldElement, newKey) {
        newKey = ReactElement(
          oldElement.type,
          newKey,
          oldElement.props,
          oldElement._owner,
          oldElement._debugStack,
          oldElement._debugTask
        );
        oldElement._store && (newKey._store.validated = oldElement._store.validated);
        return newKey;
      }
      function validateChildKeys(node) {
        isValidElement(node) ? node._store && (node._store.validated = 1) : "object" === typeof node && null !== node && node.$$typeof === REACT_LAZY_TYPE && ("fulfilled" === node._payload.status ? isValidElement(node._payload.value) && node._payload.value._store && (node._payload.value._store.validated = 1) : node._store && (node._store.validated = 1));
      }
      function isValidElement(object) {
        return "object" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;
      }
      function escape2(key) {
        var escaperLookup = { "=": "=0", ":": "=2" };
        return "$" + key.replace(/[=:]/g, function(match) {
          return escaperLookup[match];
        });
      }
      function getElementKey(element, index2) {
        return "object" === typeof element && null !== element && null != element.key ? (checkKeyStringCoercion(element.key), escape2("" + element.key)) : index2.toString(36);
      }
      function resolveThenable(thenable) {
        switch (thenable.status) {
          case "fulfilled":
            return thenable.value;
          case "rejected":
            throw thenable.reason;
          default:
            switch ("string" === typeof thenable.status ? thenable.then(noop6, noop6) : (thenable.status = "pending", thenable.then(
              function(fulfilledValue) {
                "pending" === thenable.status && (thenable.status = "fulfilled", thenable.value = fulfilledValue);
              },
              function(error) {
                "pending" === thenable.status && (thenable.status = "rejected", thenable.reason = error);
              }
            )), thenable.status) {
              case "fulfilled":
                return thenable.value;
              case "rejected":
                throw thenable.reason;
            }
        }
        throw thenable;
      }
      function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {
        var type = typeof children;
        if ("undefined" === type || "boolean" === type) children = null;
        var invokeCallback = false;
        if (null === children) invokeCallback = true;
        else
          switch (type) {
            case "bigint":
            case "string":
            case "number":
              invokeCallback = true;
              break;
            case "object":
              switch (children.$$typeof) {
                case REACT_ELEMENT_TYPE:
                case REACT_PORTAL_TYPE:
                  invokeCallback = true;
                  break;
                case REACT_LAZY_TYPE:
                  return invokeCallback = children._init, mapIntoArray(
                    invokeCallback(children._payload),
                    array,
                    escapedPrefix,
                    nameSoFar,
                    callback
                  );
              }
          }
        if (invokeCallback) {
          invokeCallback = children;
          callback = callback(invokeCallback);
          var childKey = "" === nameSoFar ? "." + getElementKey(invokeCallback, 0) : nameSoFar;
          isArrayImpl(callback) ? (escapedPrefix = "", null != childKey && (escapedPrefix = childKey.replace(userProvidedKeyEscapeRegex, "$&/") + "/"), mapIntoArray(callback, array, escapedPrefix, "", function(c6) {
            return c6;
          })) : null != callback && (isValidElement(callback) && (null != callback.key && (invokeCallback && invokeCallback.key === callback.key || checkKeyStringCoercion(callback.key)), escapedPrefix = cloneAndReplaceKey(
            callback,
            escapedPrefix + (null == callback.key || invokeCallback && invokeCallback.key === callback.key ? "" : ("" + callback.key).replace(
              userProvidedKeyEscapeRegex,
              "$&/"
            ) + "/") + childKey
          ), "" !== nameSoFar && null != invokeCallback && isValidElement(invokeCallback) && null == invokeCallback.key && invokeCallback._store && !invokeCallback._store.validated && (escapedPrefix._store.validated = 2), callback = escapedPrefix), array.push(callback));
          return 1;
        }
        invokeCallback = 0;
        childKey = "" === nameSoFar ? "." : nameSoFar + ":";
        if (isArrayImpl(children))
          for (var i5 = 0; i5 < children.length; i5++)
            nameSoFar = children[i5], type = childKey + getElementKey(nameSoFar, i5), invokeCallback += mapIntoArray(
              nameSoFar,
              array,
              escapedPrefix,
              type,
              callback
            );
        else if (i5 = getIteratorFn(children), "function" === typeof i5)
          for (i5 === children.entries && (didWarnAboutMaps || console.warn(
            "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
          ), didWarnAboutMaps = true), children = i5.call(children), i5 = 0; !(nameSoFar = children.next()).done; )
            nameSoFar = nameSoFar.value, type = childKey + getElementKey(nameSoFar, i5++), invokeCallback += mapIntoArray(
              nameSoFar,
              array,
              escapedPrefix,
              type,
              callback
            );
        else if ("object" === type) {
          if ("function" === typeof children.then)
            return mapIntoArray(
              resolveThenable(children),
              array,
              escapedPrefix,
              nameSoFar,
              callback
            );
          array = String(children);
          throw Error(
            "Objects are not valid as a React child (found: " + ("[object Object]" === array ? "object with keys {" + Object.keys(children).join(", ") + "}" : array) + "). If you meant to render a collection of children, use an array instead."
          );
        }
        return invokeCallback;
      }
      function mapChildren(children, func, context) {
        if (null == children) return children;
        var result = [], count = 0;
        mapIntoArray(children, result, "", "", function(child) {
          return func.call(context, child, count++);
        });
        return result;
      }
      function lazyInitializer(payload) {
        if (-1 === payload._status) {
          var ioInfo = payload._ioInfo;
          null != ioInfo && (ioInfo.start = ioInfo.end = performance.now());
          ioInfo = payload._result;
          var thenable = ioInfo();
          thenable.then(
            function(moduleObject) {
              if (0 === payload._status || -1 === payload._status) {
                payload._status = 1;
                payload._result = moduleObject;
                var _ioInfo = payload._ioInfo;
                null != _ioInfo && (_ioInfo.end = performance.now());
                void 0 === thenable.status && (thenable.status = "fulfilled", thenable.value = moduleObject);
              }
            },
            function(error) {
              if (0 === payload._status || -1 === payload._status) {
                payload._status = 2;
                payload._result = error;
                var _ioInfo2 = payload._ioInfo;
                null != _ioInfo2 && (_ioInfo2.end = performance.now());
                void 0 === thenable.status && (thenable.status = "rejected", thenable.reason = error);
              }
            }
          );
          ioInfo = payload._ioInfo;
          if (null != ioInfo) {
            ioInfo.value = thenable;
            var displayName = thenable.displayName;
            "string" === typeof displayName && (ioInfo.name = displayName);
          }
          -1 === payload._status && (payload._status = 0, payload._result = thenable);
        }
        if (1 === payload._status)
          return ioInfo = payload._result, void 0 === ioInfo && console.error(
            "lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n  const MyComponent = lazy(() => import('./MyComponent'))\n\nDid you accidentally put curly braces around the import?",
            ioInfo
          ), "default" in ioInfo || console.error(
            "lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n  const MyComponent = lazy(() => import('./MyComponent'))",
            ioInfo
          ), ioInfo.default;
        throw payload._result;
      }
      function resolveDispatcher() {
        var dispatcher = ReactSharedInternals.H;
        null === dispatcher && console.error(
          "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
        );
        return dispatcher;
      }
      function releaseAsyncTransition() {
        ReactSharedInternals.asyncTransitions--;
      }
      function enqueueTask(task) {
        if (null === enqueueTaskImpl)
          try {
            var requireString = ("require" + Math.random()).slice(0, 7);
            enqueueTaskImpl = (module && module[requireString]).call(
              module,
              "timers"
            ).setImmediate;
          } catch (_err) {
            enqueueTaskImpl = function(callback) {
              false === didWarnAboutMessageChannel && (didWarnAboutMessageChannel = true, "undefined" === typeof MessageChannel && console.error(
                "This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."
              ));
              var channel = new MessageChannel();
              channel.port1.onmessage = callback;
              channel.port2.postMessage(void 0);
            };
          }
        return enqueueTaskImpl(task);
      }
      function aggregateErrors(errors) {
        return 1 < errors.length && "function" === typeof AggregateError ? new AggregateError(errors) : errors[0];
      }
      function popActScope(prevActQueue, prevActScopeDepth) {
        prevActScopeDepth !== actScopeDepth - 1 && console.error(
          "You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "
        );
        actScopeDepth = prevActScopeDepth;
      }
      function recursivelyFlushAsyncActWork(returnValue, resolve4, reject) {
        var queue = ReactSharedInternals.actQueue;
        if (null !== queue)
          if (0 !== queue.length)
            try {
              flushActQueue(queue);
              enqueueTask(function() {
                return recursivelyFlushAsyncActWork(returnValue, resolve4, reject);
              });
              return;
            } catch (error) {
              ReactSharedInternals.thrownErrors.push(error);
            }
          else ReactSharedInternals.actQueue = null;
        0 < ReactSharedInternals.thrownErrors.length ? (queue = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, reject(queue)) : resolve4(returnValue);
      }
      function flushActQueue(queue) {
        if (!isFlushing) {
          isFlushing = true;
          var i5 = 0;
          try {
            for (; i5 < queue.length; i5++) {
              var callback = queue[i5];
              do {
                ReactSharedInternals.didUsePromise = false;
                var continuation = callback(false);
                if (null !== continuation) {
                  if (ReactSharedInternals.didUsePromise) {
                    queue[i5] = callback;
                    queue.splice(0, i5);
                    return;
                  }
                  callback = continuation;
                } else break;
              } while (1);
            }
            queue.length = 0;
          } catch (error) {
            queue.splice(0, i5 + 1), ReactSharedInternals.thrownErrors.push(error);
          } finally {
            isFlushing = false;
          }
        }
      }
      "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
      var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"), REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), MAYBE_ITERATOR_SYMBOL = Symbol.iterator, didWarnStateUpdateForUnmountedComponent = {}, ReactNoopUpdateQueue = {
        isMounted: function() {
          return false;
        },
        enqueueForceUpdate: function(publicInstance) {
          warnNoop(publicInstance, "forceUpdate");
        },
        enqueueReplaceState: function(publicInstance) {
          warnNoop(publicInstance, "replaceState");
        },
        enqueueSetState: function(publicInstance) {
          warnNoop(publicInstance, "setState");
        }
      }, assign = Object.assign, emptyObject = {};
      Object.freeze(emptyObject);
      Component.prototype.isReactComponent = {};
      Component.prototype.setState = function(partialState, callback) {
        if ("object" !== typeof partialState && "function" !== typeof partialState && null != partialState)
          throw Error(
            "takes an object of state variables to update or a function which returns an object of state variables."
          );
        this.updater.enqueueSetState(this, partialState, callback, "setState");
      };
      Component.prototype.forceUpdate = function(callback) {
        this.updater.enqueueForceUpdate(this, callback, "forceUpdate");
      };
      var deprecatedAPIs = {
        isMounted: [
          "isMounted",
          "Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."
        ],
        replaceState: [
          "replaceState",
          "Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."
        ]
      };
      for (fnName in deprecatedAPIs)
        deprecatedAPIs.hasOwnProperty(fnName) && defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
      ComponentDummy.prototype = Component.prototype;
      deprecatedAPIs = PureComponent.prototype = new ComponentDummy();
      deprecatedAPIs.constructor = PureComponent;
      assign(deprecatedAPIs, Component.prototype);
      deprecatedAPIs.isPureReactComponent = true;
      var isArrayImpl = Array.isArray, REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), ReactSharedInternals = {
        H: null,
        A: null,
        T: null,
        S: null,
        actQueue: null,
        asyncTransitions: 0,
        isBatchingLegacy: false,
        didScheduleLegacyUpdate: false,
        didUsePromise: false,
        thrownErrors: [],
        getCurrentStack: null,
        recentlyCreatedOwnerStacks: 0
      }, hasOwnProperty2 = Object.prototype.hasOwnProperty, createTask = console.createTask ? console.createTask : function() {
        return null;
      };
      deprecatedAPIs = {
        react_stack_bottom_frame: function(callStackForError) {
          return callStackForError();
        }
      };
      var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;
      var didWarnAboutElementRef = {};
      var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind(
        deprecatedAPIs,
        UnknownOwner
      )();
      var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
      var didWarnAboutMaps = false, userProvidedKeyEscapeRegex = /\/+/g, reportGlobalError = "function" === typeof reportError ? reportError : function(error) {
        if ("object" === typeof window && "function" === typeof window.ErrorEvent) {
          var event = new window.ErrorEvent("error", {
            bubbles: true,
            cancelable: true,
            message: "object" === typeof error && null !== error && "string" === typeof error.message ? String(error.message) : String(error),
            error
          });
          if (!window.dispatchEvent(event)) return;
        } else if ("object" === typeof process && "function" === typeof process.emit) {
          process.emit("uncaughtException", error);
          return;
        }
        console.error(error);
      }, didWarnAboutMessageChannel = false, enqueueTaskImpl = null, actScopeDepth = 0, didWarnNoAwaitAct = false, isFlushing = false, queueSeveralMicrotasks = "function" === typeof queueMicrotask ? function(callback) {
        queueMicrotask(function() {
          return queueMicrotask(callback);
        });
      } : enqueueTask;
      deprecatedAPIs = Object.freeze({
        __proto__: null,
        c: function(size) {
          return resolveDispatcher().useMemoCache(size);
        }
      });
      var fnName = {
        map: mapChildren,
        forEach: function(children, forEachFunc, forEachContext) {
          mapChildren(
            children,
            function() {
              forEachFunc.apply(this, arguments);
            },
            forEachContext
          );
        },
        count: function(children) {
          var n6 = 0;
          mapChildren(children, function() {
            n6++;
          });
          return n6;
        },
        toArray: function(children) {
          return mapChildren(children, function(child) {
            return child;
          }) || [];
        },
        only: function(children) {
          if (!isValidElement(children))
            throw Error(
              "React.Children.only expected to receive a single React element child."
            );
          return children;
        }
      };
      exports.Activity = REACT_ACTIVITY_TYPE;
      exports.Children = fnName;
      exports.Component = Component;
      exports.Fragment = REACT_FRAGMENT_TYPE;
      exports.Profiler = REACT_PROFILER_TYPE;
      exports.PureComponent = PureComponent;
      exports.StrictMode = REACT_STRICT_MODE_TYPE;
      exports.Suspense = REACT_SUSPENSE_TYPE;
      exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = ReactSharedInternals;
      exports.__COMPILER_RUNTIME = deprecatedAPIs;
      exports.act = function(callback) {
        var prevActQueue = ReactSharedInternals.actQueue, prevActScopeDepth = actScopeDepth;
        actScopeDepth++;
        var queue = ReactSharedInternals.actQueue = null !== prevActQueue ? prevActQueue : [], didAwaitActCall = false;
        try {
          var result = callback();
        } catch (error) {
          ReactSharedInternals.thrownErrors.push(error);
        }
        if (0 < ReactSharedInternals.thrownErrors.length)
          throw popActScope(prevActQueue, prevActScopeDepth), callback = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, callback;
        if (null !== result && "object" === typeof result && "function" === typeof result.then) {
          var thenable = result;
          queueSeveralMicrotasks(function() {
            didAwaitActCall || didWarnNoAwaitAct || (didWarnNoAwaitAct = true, console.error(
              "You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"
            ));
          });
          return {
            then: function(resolve4, reject) {
              didAwaitActCall = true;
              thenable.then(
                function(returnValue) {
                  popActScope(prevActQueue, prevActScopeDepth);
                  if (0 === prevActScopeDepth) {
                    try {
                      flushActQueue(queue), enqueueTask(function() {
                        return recursivelyFlushAsyncActWork(
                          returnValue,
                          resolve4,
                          reject
                        );
                      });
                    } catch (error$0) {
                      ReactSharedInternals.thrownErrors.push(error$0);
                    }
                    if (0 < ReactSharedInternals.thrownErrors.length) {
                      var _thrownError = aggregateErrors(
                        ReactSharedInternals.thrownErrors
                      );
                      ReactSharedInternals.thrownErrors.length = 0;
                      reject(_thrownError);
                    }
                  } else resolve4(returnValue);
                },
                function(error) {
                  popActScope(prevActQueue, prevActScopeDepth);
                  0 < ReactSharedInternals.thrownErrors.length ? (error = aggregateErrors(
                    ReactSharedInternals.thrownErrors
                  ), ReactSharedInternals.thrownErrors.length = 0, reject(error)) : reject(error);
                }
              );
            }
          };
        }
        var returnValue$jscomp$0 = result;
        popActScope(prevActQueue, prevActScopeDepth);
        0 === prevActScopeDepth && (flushActQueue(queue), 0 !== queue.length && queueSeveralMicrotasks(function() {
          didAwaitActCall || didWarnNoAwaitAct || (didWarnNoAwaitAct = true, console.error(
            "A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\n\nawait act(() => ...)"
          ));
        }), ReactSharedInternals.actQueue = null);
        if (0 < ReactSharedInternals.thrownErrors.length)
          throw callback = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, callback;
        return {
          then: function(resolve4, reject) {
            didAwaitActCall = true;
            0 === prevActScopeDepth ? (ReactSharedInternals.actQueue = queue, enqueueTask(function() {
              return recursivelyFlushAsyncActWork(
                returnValue$jscomp$0,
                resolve4,
                reject
              );
            })) : resolve4(returnValue$jscomp$0);
          }
        };
      };
      exports.cache = function(fn) {
        return function() {
          return fn.apply(null, arguments);
        };
      };
      exports.cacheSignal = function() {
        return null;
      };
      exports.captureOwnerStack = function() {
        var getCurrentStack = ReactSharedInternals.getCurrentStack;
        return null === getCurrentStack ? null : getCurrentStack();
      };
      exports.cloneElement = function(element, config, children) {
        if (null === element || void 0 === element)
          throw Error(
            "The argument must be a React element, but you passed " + element + "."
          );
        var props = assign({}, element.props), key = element.key, owner = element._owner;
        if (null != config) {
          var JSCompiler_inline_result;
          a: {
            if (hasOwnProperty2.call(config, "ref") && (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(
              config,
              "ref"
            ).get) && JSCompiler_inline_result.isReactWarning) {
              JSCompiler_inline_result = false;
              break a;
            }
            JSCompiler_inline_result = void 0 !== config.ref;
          }
          JSCompiler_inline_result && (owner = getOwner());
          hasValidKey(config) && (checkKeyStringCoercion(config.key), key = "" + config.key);
          for (propName in config)
            !hasOwnProperty2.call(config, propName) || "key" === propName || "__self" === propName || "__source" === propName || "ref" === propName && void 0 === config.ref || (props[propName] = config[propName]);
        }
        var propName = arguments.length - 2;
        if (1 === propName) props.children = children;
        else if (1 < propName) {
          JSCompiler_inline_result = Array(propName);
          for (var i5 = 0; i5 < propName; i5++)
            JSCompiler_inline_result[i5] = arguments[i5 + 2];
          props.children = JSCompiler_inline_result;
        }
        props = ReactElement(
          element.type,
          key,
          props,
          owner,
          element._debugStack,
          element._debugTask
        );
        for (key = 2; key < arguments.length; key++)
          validateChildKeys(arguments[key]);
        return props;
      };
      exports.createContext = function(defaultValue) {
        defaultValue = {
          $$typeof: REACT_CONTEXT_TYPE,
          _currentValue: defaultValue,
          _currentValue2: defaultValue,
          _threadCount: 0,
          Provider: null,
          Consumer: null
        };
        defaultValue.Provider = defaultValue;
        defaultValue.Consumer = {
          $$typeof: REACT_CONSUMER_TYPE,
          _context: defaultValue
        };
        defaultValue._currentRenderer = null;
        defaultValue._currentRenderer2 = null;
        return defaultValue;
      };
      exports.createElement = function(type, config, children) {
        for (var i5 = 2; i5 < arguments.length; i5++)
          validateChildKeys(arguments[i5]);
        i5 = {};
        var key = null;
        if (null != config)
          for (propName in didWarnAboutOldJSXRuntime || !("__self" in config) || "key" in config || (didWarnAboutOldJSXRuntime = true, console.warn(
            "Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform"
          )), hasValidKey(config) && (checkKeyStringCoercion(config.key), key = "" + config.key), config)
            hasOwnProperty2.call(config, propName) && "key" !== propName && "__self" !== propName && "__source" !== propName && (i5[propName] = config[propName]);
        var childrenLength = arguments.length - 2;
        if (1 === childrenLength) i5.children = children;
        else if (1 < childrenLength) {
          for (var childArray = Array(childrenLength), _i = 0; _i < childrenLength; _i++)
            childArray[_i] = arguments[_i + 2];
          Object.freeze && Object.freeze(childArray);
          i5.children = childArray;
        }
        if (type && type.defaultProps)
          for (propName in childrenLength = type.defaultProps, childrenLength)
            void 0 === i5[propName] && (i5[propName] = childrenLength[propName]);
        key && defineKeyPropWarningGetter(
          i5,
          "function" === typeof type ? type.displayName || type.name || "Unknown" : type
        );
        var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
        return ReactElement(
          type,
          key,
          i5,
          getOwner(),
          propName ? Error("react-stack-top-frame") : unknownOwnerDebugStack,
          propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask
        );
      };
      exports.createRef = function() {
        var refObject = { current: null };
        Object.seal(refObject);
        return refObject;
      };
      exports.forwardRef = function(render3) {
        null != render3 && render3.$$typeof === REACT_MEMO_TYPE ? console.error(
          "forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."
        ) : "function" !== typeof render3 ? console.error(
          "forwardRef requires a render function but was given %s.",
          null === render3 ? "null" : typeof render3
        ) : 0 !== render3.length && 2 !== render3.length && console.error(
          "forwardRef render functions accept exactly two parameters: props and ref. %s",
          1 === render3.length ? "Did you forget to use the ref parameter?" : "Any additional parameter will be undefined."
        );
        null != render3 && null != render3.defaultProps && console.error(
          "forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?"
        );
        var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render3 }, ownName;
        Object.defineProperty(elementType, "displayName", {
          enumerable: false,
          configurable: true,
          get: function() {
            return ownName;
          },
          set: function(name) {
            ownName = name;
            render3.name || render3.displayName || (Object.defineProperty(render3, "name", { value: name }), render3.displayName = name);
          }
        });
        return elementType;
      };
      exports.isValidElement = isValidElement;
      exports.lazy = function(ctor) {
        ctor = { _status: -1, _result: ctor };
        var lazyType = {
          $$typeof: REACT_LAZY_TYPE,
          _payload: ctor,
          _init: lazyInitializer
        }, ioInfo = {
          name: "lazy",
          start: -1,
          end: -1,
          value: null,
          owner: null,
          debugStack: Error("react-stack-top-frame"),
          debugTask: console.createTask ? console.createTask("lazy()") : null
        };
        ctor._ioInfo = ioInfo;
        lazyType._debugInfo = [{ awaited: ioInfo }];
        return lazyType;
      };
      exports.memo = function(type, compare) {
        null == type && console.error(
          "memo: The first argument must be a component. Instead received: %s",
          null === type ? "null" : typeof type
        );
        compare = {
          $$typeof: REACT_MEMO_TYPE,
          type,
          compare: void 0 === compare ? null : compare
        };
        var ownName;
        Object.defineProperty(compare, "displayName", {
          enumerable: false,
          configurable: true,
          get: function() {
            return ownName;
          },
          set: function(name) {
            ownName = name;
            type.name || type.displayName || (Object.defineProperty(type, "name", { value: name }), type.displayName = name);
          }
        });
        return compare;
      };
      exports.startTransition = function(scope) {
        var prevTransition = ReactSharedInternals.T, currentTransition = {};
        currentTransition._updatedFibers = /* @__PURE__ */ new Set();
        ReactSharedInternals.T = currentTransition;
        try {
          var returnValue = scope(), onStartTransitionFinish = ReactSharedInternals.S;
          null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue);
          "object" === typeof returnValue && null !== returnValue && "function" === typeof returnValue.then && (ReactSharedInternals.asyncTransitions++, returnValue.then(releaseAsyncTransition, releaseAsyncTransition), returnValue.then(noop6, reportGlobalError));
        } catch (error) {
          reportGlobalError(error);
        } finally {
          null === prevTransition && currentTransition._updatedFibers && (scope = currentTransition._updatedFibers.size, currentTransition._updatedFibers.clear(), 10 < scope && console.warn(
            "Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."
          )), null !== prevTransition && null !== currentTransition.types && (null !== prevTransition.types && prevTransition.types !== currentTransition.types && console.error(
            "We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React."
          ), prevTransition.types = currentTransition.types), ReactSharedInternals.T = prevTransition;
        }
      };
      exports.unstable_useCacheRefresh = function() {
        return resolveDispatcher().useCacheRefresh();
      };
      exports.use = function(usable) {
        return resolveDispatcher().use(usable);
      };
      exports.useActionState = function(action, initialState2, permalink) {
        return resolveDispatcher().useActionState(
          action,
          initialState2,
          permalink
        );
      };
      exports.useCallback = function(callback, deps) {
        return resolveDispatcher().useCallback(callback, deps);
      };
      exports.useContext = function(Context) {
        var dispatcher = resolveDispatcher();
        Context.$$typeof === REACT_CONSUMER_TYPE && console.error(
          "Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?"
        );
        return dispatcher.useContext(Context);
      };
      exports.useDebugValue = function(value2, formatterFn) {
        return resolveDispatcher().useDebugValue(value2, formatterFn);
      };
      exports.useDeferredValue = function(value2, initialValue) {
        return resolveDispatcher().useDeferredValue(value2, initialValue);
      };
      exports.useEffect = function(create2, deps) {
        null == create2 && console.warn(
          "React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?"
        );
        return resolveDispatcher().useEffect(create2, deps);
      };
      exports.useEffectEvent = function(callback) {
        return resolveDispatcher().useEffectEvent(callback);
      };
      exports.useId = function() {
        return resolveDispatcher().useId();
      };
      exports.useImperativeHandle = function(ref, create2, deps) {
        return resolveDispatcher().useImperativeHandle(ref, create2, deps);
      };
      exports.useInsertionEffect = function(create2, deps) {
        null == create2 && console.warn(
          "React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?"
        );
        return resolveDispatcher().useInsertionEffect(create2, deps);
      };
      exports.useLayoutEffect = function(create2, deps) {
        null == create2 && console.warn(
          "React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?"
        );
        return resolveDispatcher().useLayoutEffect(create2, deps);
      };
      exports.useMemo = function(create2, deps) {
        return resolveDispatcher().useMemo(create2, deps);
      };
      exports.useOptimistic = function(passthrough, reducer) {
        return resolveDispatcher().useOptimistic(passthrough, reducer);
      };
      exports.useReducer = function(reducer, initialArg, init3) {
        return resolveDispatcher().useReducer(reducer, initialArg, init3);
      };
      exports.useRef = function(initialValue) {
        return resolveDispatcher().useRef(initialValue);
      };
      exports.useState = function(initialState2) {
        return resolveDispatcher().useState(initialState2);
      };
      exports.useSyncExternalStore = function(subscribe, getSnapshot, getServerSnapshot) {
        return resolveDispatcher().useSyncExternalStore(
          subscribe,
          getSnapshot,
          getServerSnapshot
        );
      };
      exports.useTransition = function() {
        return resolveDispatcher().useTransition();
      };
      exports.version = "19.2.4";
      "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
    })();
  }
});

// ../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js
var require_react = __commonJS({
  "../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js"(exports, module) {
    "use strict";
    if (process.env.NODE_ENV === "production") {
      module.exports = require_react_production();
    } else {
      module.exports = require_react_development();
    }
  }
});

// ../../node_modules/.pnpm/scheduler@0.25.0-rc-603e6108-20241029/node_modules/scheduler/cjs/scheduler.production.js
var require_scheduler_production = __commonJS({
  "../../node_modules/.pnpm/scheduler@0.25.0-rc-603e6108-20241029/node_modules/scheduler/cjs/scheduler.production.js"(exports) {
    "use strict";
    function push(heap, node) {
      var index2 = heap.length;
      heap.push(node);
      a: for (; 0 < index2; ) {
        var parentIndex = index2 - 1 >>> 1, parent = heap[parentIndex];
        if (0 < compare(parent, node))
          heap[parentIndex] = node, heap[index2] = parent, index2 = parentIndex;
        else break a;
      }
    }
    function peek(heap) {
      return 0 === heap.length ? null : heap[0];
    }
    function pop(heap) {
      if (0 === heap.length) return null;
      var first = heap[0], last2 = heap.pop();
      if (last2 !== first) {
        heap[0] = last2;
        a: for (var index2 = 0, length2 = heap.length, halfLength = length2 >>> 1; index2 < halfLength; ) {
          var leftIndex = 2 * (index2 + 1) - 1, left = heap[leftIndex], rightIndex = leftIndex + 1, right = heap[rightIndex];
          if (0 > compare(left, last2))
            rightIndex < length2 && 0 > compare(right, left) ? (heap[index2] = right, heap[rightIndex] = last2, index2 = rightIndex) : (heap[index2] = left, heap[leftIndex] = last2, index2 = leftIndex);
          else if (rightIndex < length2 && 0 > compare(right, last2))
            heap[index2] = right, heap[rightIndex] = last2, index2 = rightIndex;
          else break a;
        }
      }
      return first;
    }
    function compare(a5, b3) {
      var diff = a5.sortIndex - b3.sortIndex;
      return 0 !== diff ? diff : a5.id - b3.id;
    }
    exports.unstable_now = void 0;
    if ("object" === typeof performance && "function" === typeof performance.now) {
      localPerformance = performance;
      exports.unstable_now = function() {
        return localPerformance.now();
      };
    } else {
      localDate = Date, initialTime = localDate.now();
      exports.unstable_now = function() {
        return localDate.now() - initialTime;
      };
    }
    var localPerformance;
    var localDate;
    var initialTime;
    var taskQueue = [];
    var timerQueue = [];
    var taskIdCounter = 1;
    var currentTask = null;
    var currentPriorityLevel = 3;
    var isPerformingWork = false;
    var isHostCallbackScheduled = false;
    var isHostTimeoutScheduled = false;
    var localSetTimeout = "function" === typeof setTimeout ? setTimeout : null;
    var localClearTimeout = "function" === typeof clearTimeout ? clearTimeout : null;
    var localSetImmediate = "undefined" !== typeof setImmediate ? setImmediate : null;
    function advanceTimers(currentTime) {
      for (var timer2 = peek(timerQueue); null !== timer2; ) {
        if (null === timer2.callback) pop(timerQueue);
        else if (timer2.startTime <= currentTime)
          pop(timerQueue), timer2.sortIndex = timer2.expirationTime, push(taskQueue, timer2);
        else break;
        timer2 = peek(timerQueue);
      }
    }
    function handleTimeout(currentTime) {
      isHostTimeoutScheduled = false;
      advanceTimers(currentTime);
      if (!isHostCallbackScheduled)
        if (null !== peek(taskQueue))
          isHostCallbackScheduled = true, requestHostCallback();
        else {
          var firstTimer = peek(timerQueue);
          null !== firstTimer && requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);
        }
    }
    var isMessageLoopRunning = false;
    var taskTimeoutID = -1;
    var frameInterval = 5;
    var startTime = -1;
    function shouldYieldToHost() {
      return exports.unstable_now() - startTime < frameInterval ? false : true;
    }
    function performWorkUntilDeadline() {
      if (isMessageLoopRunning) {
        var currentTime = exports.unstable_now();
        startTime = currentTime;
        var hasMoreWork = true;
        try {
          a: {
            isHostCallbackScheduled = false;
            isHostTimeoutScheduled && (isHostTimeoutScheduled = false, localClearTimeout(taskTimeoutID), taskTimeoutID = -1);
            isPerformingWork = true;
            var previousPriorityLevel = currentPriorityLevel;
            try {
              b: {
                advanceTimers(currentTime);
                for (currentTask = peek(taskQueue); null !== currentTask && !(currentTask.expirationTime > currentTime && shouldYieldToHost()); ) {
                  var callback = currentTask.callback;
                  if ("function" === typeof callback) {
                    currentTask.callback = null;
                    currentPriorityLevel = currentTask.priorityLevel;
                    var continuationCallback = callback(
                      currentTask.expirationTime <= currentTime
                    );
                    currentTime = exports.unstable_now();
                    if ("function" === typeof continuationCallback) {
                      currentTask.callback = continuationCallback;
                      advanceTimers(currentTime);
                      hasMoreWork = true;
                      break b;
                    }
                    currentTask === peek(taskQueue) && pop(taskQueue);
                    advanceTimers(currentTime);
                  } else pop(taskQueue);
                  currentTask = peek(taskQueue);
                }
                if (null !== currentTask) hasMoreWork = true;
                else {
                  var firstTimer = peek(timerQueue);
                  null !== firstTimer && requestHostTimeout(
                    handleTimeout,
                    firstTimer.startTime - currentTime
                  );
                  hasMoreWork = false;
                }
              }
              break a;
            } finally {
              currentTask = null, currentPriorityLevel = previousPriorityLevel, isPerformingWork = false;
            }
            hasMoreWork = void 0;
          }
        } finally {
          hasMoreWork ? schedulePerformWorkUntilDeadline() : isMessageLoopRunning = false;
        }
      }
    }
    var schedulePerformWorkUntilDeadline;
    if ("function" === typeof localSetImmediate)
      schedulePerformWorkUntilDeadline = function() {
        localSetImmediate(performWorkUntilDeadline);
      };
    else if ("undefined" !== typeof MessageChannel) {
      channel = new MessageChannel(), port = channel.port2;
      channel.port1.onmessage = performWorkUntilDeadline;
      schedulePerformWorkUntilDeadline = function() {
        port.postMessage(null);
      };
    } else
      schedulePerformWorkUntilDeadline = function() {
        localSetTimeout(performWorkUntilDeadline, 0);
      };
    var channel;
    var port;
    function requestHostCallback() {
      isMessageLoopRunning || (isMessageLoopRunning = true, schedulePerformWorkUntilDeadline());
    }
    function requestHostTimeout(callback, ms) {
      taskTimeoutID = localSetTimeout(function() {
        callback(exports.unstable_now());
      }, ms);
    }
    exports.unstable_IdlePriority = 5;
    exports.unstable_ImmediatePriority = 1;
    exports.unstable_LowPriority = 4;
    exports.unstable_NormalPriority = 3;
    exports.unstable_Profiling = null;
    exports.unstable_UserBlockingPriority = 2;
    exports.unstable_cancelCallback = function(task) {
      task.callback = null;
    };
    exports.unstable_continueExecution = function() {
      isHostCallbackScheduled || isPerformingWork || (isHostCallbackScheduled = true, requestHostCallback());
    };
    exports.unstable_forceFrameRate = function(fps) {
      0 > fps || 125 < fps ? console.error(
        "forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"
      ) : frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5;
    };
    exports.unstable_getCurrentPriorityLevel = function() {
      return currentPriorityLevel;
    };
    exports.unstable_getFirstCallbackNode = function() {
      return peek(taskQueue);
    };
    exports.unstable_next = function(eventHandler) {
      switch (currentPriorityLevel) {
        case 1:
        case 2:
        case 3:
          var priorityLevel = 3;
          break;
        default:
          priorityLevel = currentPriorityLevel;
      }
      var previousPriorityLevel = currentPriorityLevel;
      currentPriorityLevel = priorityLevel;
      try {
        return eventHandler();
      } finally {
        currentPriorityLevel = previousPriorityLevel;
      }
    };
    exports.unstable_pauseExecution = function() {
    };
    exports.unstable_requestPaint = function() {
    };
    exports.unstable_runWithPriority = function(priorityLevel, eventHandler) {
      switch (priorityLevel) {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
          break;
        default:
          priorityLevel = 3;
      }
      var previousPriorityLevel = currentPriorityLevel;
      currentPriorityLevel = priorityLevel;
      try {
        return eventHandler();
      } finally {
        currentPriorityLevel = previousPriorityLevel;
      }
    };
    exports.unstable_scheduleCallback = function(priorityLevel, callback, options) {
      var currentTime = exports.unstable_now();
      "object" === typeof options && null !== options ? (options = options.delay, options = "number" === typeof options && 0 < options ? currentTime + options : currentTime) : options = currentTime;
      switch (priorityLevel) {
        case 1:
          var timeout = -1;
          break;
        case 2:
          timeout = 250;
          break;
        case 5:
          timeout = 1073741823;
          break;
        case 4:
          timeout = 1e4;
          break;
        default:
          timeout = 5e3;
      }
      timeout = options + timeout;
      priorityLevel = {
        id: taskIdCounter++,
        callback,
        priorityLevel,
        startTime: options,
        expirationTime: timeout,
        sortIndex: -1
      };
      options > currentTime ? (priorityLevel.sortIndex = options, push(timerQueue, priorityLevel), null === peek(taskQueue) && priorityLevel === peek(timerQueue) && (isHostTimeoutScheduled ? (localClearTimeout(taskTimeoutID), taskTimeoutID = -1) : isHostTimeoutScheduled = true, requestHostTimeout(handleTimeout, options - currentTime))) : (priorityLevel.sortIndex = timeout, push(taskQueue, priorityLevel), isHostCallbackScheduled || isPerformingWork || (isHostCallbackScheduled = true, requestHostCallback()));
      return priorityLevel;
    };
    exports.unstable_shouldYield = shouldYieldToHost;
    exports.unstable_wrapCallback = function(callback) {
      var parentPriorityLevel = currentPriorityLevel;
      return function() {
        var previousPriorityLevel = currentPriorityLevel;
        currentPriorityLevel = parentPriorityLevel;
        try {
          return callback.apply(this, arguments);
        } finally {
          currentPriorityLevel = previousPriorityLevel;
        }
      };
    };
  }
});

// ../../node_modules/.pnpm/scheduler@0.25.0-rc-603e6108-20241029/node_modules/scheduler/cjs/scheduler.development.js
var require_scheduler_development = __commonJS({
  "../../node_modules/.pnpm/scheduler@0.25.0-rc-603e6108-20241029/node_modules/scheduler/cjs/scheduler.development.js"(exports) {
    "use strict";
    "production" !== process.env.NODE_ENV && (function() {
      function performWorkUntilDeadline() {
        if (isMessageLoopRunning) {
          var currentTime = exports.unstable_now();
          startTime = currentTime;
          var hasMoreWork = true;
          try {
            a: {
              isHostCallbackScheduled = false;
              isHostTimeoutScheduled && (isHostTimeoutScheduled = false, localClearTimeout(taskTimeoutID), taskTimeoutID = -1);
              isPerformingWork = true;
              var previousPriorityLevel = currentPriorityLevel;
              try {
                b: {
                  advanceTimers(currentTime);
                  for (currentTask = peek(taskQueue); null !== currentTask && !(currentTask.expirationTime > currentTime && shouldYieldToHost()); ) {
                    var callback = currentTask.callback;
                    if ("function" === typeof callback) {
                      currentTask.callback = null;
                      currentPriorityLevel = currentTask.priorityLevel;
                      var continuationCallback = callback(
                        currentTask.expirationTime <= currentTime
                      );
                      currentTime = exports.unstable_now();
                      if ("function" === typeof continuationCallback) {
                        currentTask.callback = continuationCallback;
                        advanceTimers(currentTime);
                        hasMoreWork = true;
                        break b;
                      }
                      currentTask === peek(taskQueue) && pop(taskQueue);
                      advanceTimers(currentTime);
                    } else pop(taskQueue);
                    currentTask = peek(taskQueue);
                  }
                  if (null !== currentTask) hasMoreWork = true;
                  else {
                    var firstTimer = peek(timerQueue);
                    null !== firstTimer && requestHostTimeout(
                      handleTimeout,
                      firstTimer.startTime - currentTime
                    );
                    hasMoreWork = false;
                  }
                }
                break a;
              } finally {
                currentTask = null, currentPriorityLevel = previousPriorityLevel, isPerformingWork = false;
              }
              hasMoreWork = void 0;
            }
          } finally {
            hasMoreWork ? schedulePerformWorkUntilDeadline() : isMessageLoopRunning = false;
          }
        }
      }
      function push(heap, node) {
        var index2 = heap.length;
        heap.push(node);
        a: for (; 0 < index2; ) {
          var parentIndex = index2 - 1 >>> 1, parent = heap[parentIndex];
          if (0 < compare(parent, node))
            heap[parentIndex] = node, heap[index2] = parent, index2 = parentIndex;
          else break a;
        }
      }
      function peek(heap) {
        return 0 === heap.length ? null : heap[0];
      }
      function pop(heap) {
        if (0 === heap.length) return null;
        var first = heap[0], last2 = heap.pop();
        if (last2 !== first) {
          heap[0] = last2;
          a: for (var index2 = 0, length2 = heap.length, halfLength = length2 >>> 1; index2 < halfLength; ) {
            var leftIndex = 2 * (index2 + 1) - 1, left = heap[leftIndex], rightIndex = leftIndex + 1, right = heap[rightIndex];
            if (0 > compare(left, last2))
              rightIndex < length2 && 0 > compare(right, left) ? (heap[index2] = right, heap[rightIndex] = last2, index2 = rightIndex) : (heap[index2] = left, heap[leftIndex] = last2, index2 = leftIndex);
            else if (rightIndex < length2 && 0 > compare(right, last2))
              heap[index2] = right, heap[rightIndex] = last2, index2 = rightIndex;
            else break a;
          }
        }
        return first;
      }
      function compare(a5, b3) {
        var diff = a5.sortIndex - b3.sortIndex;
        return 0 !== diff ? diff : a5.id - b3.id;
      }
      function advanceTimers(currentTime) {
        for (var timer2 = peek(timerQueue); null !== timer2; ) {
          if (null === timer2.callback) pop(timerQueue);
          else if (timer2.startTime <= currentTime)
            pop(timerQueue), timer2.sortIndex = timer2.expirationTime, push(taskQueue, timer2);
          else break;
          timer2 = peek(timerQueue);
        }
      }
      function handleTimeout(currentTime) {
        isHostTimeoutScheduled = false;
        advanceTimers(currentTime);
        if (!isHostCallbackScheduled)
          if (null !== peek(taskQueue))
            isHostCallbackScheduled = true, requestHostCallback();
          else {
            var firstTimer = peek(timerQueue);
            null !== firstTimer && requestHostTimeout(
              handleTimeout,
              firstTimer.startTime - currentTime
            );
          }
      }
      function shouldYieldToHost() {
        return exports.unstable_now() - startTime < frameInterval ? false : true;
      }
      function requestHostCallback() {
        isMessageLoopRunning || (isMessageLoopRunning = true, schedulePerformWorkUntilDeadline());
      }
      function requestHostTimeout(callback, ms) {
        taskTimeoutID = localSetTimeout(function() {
          callback(exports.unstable_now());
        }, ms);
      }
      "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
      exports.unstable_now = void 0;
      if ("object" === typeof performance && "function" === typeof performance.now) {
        var localPerformance = performance;
        exports.unstable_now = function() {
          return localPerformance.now();
        };
      } else {
        var localDate = Date, initialTime = localDate.now();
        exports.unstable_now = function() {
          return localDate.now() - initialTime;
        };
      }
      var taskQueue = [], timerQueue = [], taskIdCounter = 1, currentTask = null, currentPriorityLevel = 3, isPerformingWork = false, isHostCallbackScheduled = false, isHostTimeoutScheduled = false, localSetTimeout = "function" === typeof setTimeout ? setTimeout : null, localClearTimeout = "function" === typeof clearTimeout ? clearTimeout : null, localSetImmediate = "undefined" !== typeof setImmediate ? setImmediate : null, isMessageLoopRunning = false, taskTimeoutID = -1, frameInterval = 5, startTime = -1;
      if ("function" === typeof localSetImmediate)
        var schedulePerformWorkUntilDeadline = function() {
          localSetImmediate(performWorkUntilDeadline);
        };
      else if ("undefined" !== typeof MessageChannel) {
        var channel = new MessageChannel(), port = channel.port2;
        channel.port1.onmessage = performWorkUntilDeadline;
        schedulePerformWorkUntilDeadline = function() {
          port.postMessage(null);
        };
      } else
        schedulePerformWorkUntilDeadline = function() {
          localSetTimeout(performWorkUntilDeadline, 0);
        };
      exports.unstable_IdlePriority = 5;
      exports.unstable_ImmediatePriority = 1;
      exports.unstable_LowPriority = 4;
      exports.unstable_NormalPriority = 3;
      exports.unstable_Profiling = null;
      exports.unstable_UserBlockingPriority = 2;
      exports.unstable_cancelCallback = function(task) {
        task.callback = null;
      };
      exports.unstable_continueExecution = function() {
        isHostCallbackScheduled || isPerformingWork || (isHostCallbackScheduled = true, requestHostCallback());
      };
      exports.unstable_forceFrameRate = function(fps) {
        0 > fps || 125 < fps ? console.error(
          "forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"
        ) : frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5;
      };
      exports.unstable_getCurrentPriorityLevel = function() {
        return currentPriorityLevel;
      };
      exports.unstable_getFirstCallbackNode = function() {
        return peek(taskQueue);
      };
      exports.unstable_next = function(eventHandler) {
        switch (currentPriorityLevel) {
          case 1:
          case 2:
          case 3:
            var priorityLevel = 3;
            break;
          default:
            priorityLevel = currentPriorityLevel;
        }
        var previousPriorityLevel = currentPriorityLevel;
        currentPriorityLevel = priorityLevel;
        try {
          return eventHandler();
        } finally {
          currentPriorityLevel = previousPriorityLevel;
        }
      };
      exports.unstable_pauseExecution = function() {
      };
      exports.unstable_requestPaint = function() {
      };
      exports.unstable_runWithPriority = function(priorityLevel, eventHandler) {
        switch (priorityLevel) {
          case 1:
          case 2:
          case 3:
          case 4:
          case 5:
            break;
          default:
            priorityLevel = 3;
        }
        var previousPriorityLevel = currentPriorityLevel;
        currentPriorityLevel = priorityLevel;
        try {
          return eventHandler();
        } finally {
          currentPriorityLevel = previousPriorityLevel;
        }
      };
      exports.unstable_scheduleCallback = function(priorityLevel, callback, options) {
        var currentTime = exports.unstable_now();
        "object" === typeof options && null !== options ? (options = options.delay, options = "number" === typeof options && 0 < options ? currentTime + options : currentTime) : options = currentTime;
        switch (priorityLevel) {
          case 1:
            var timeout = -1;
            break;
          case 2:
            timeout = 250;
            break;
          case 5:
            timeout = 1073741823;
            break;
          case 4:
            timeout = 1e4;
            break;
          default:
            timeout = 5e3;
        }
        timeout = options + timeout;
        priorityLevel = {
          id: taskIdCounter++,
          callback,
          priorityLevel,
          startTime: options,
          expirationTime: timeout,
          sortIndex: -1
        };
        options > currentTime ? (priorityLevel.sortIndex = options, push(timerQueue, priorityLevel), null === peek(taskQueue) && priorityLevel === peek(timerQueue) && (isHostTimeoutScheduled ? (localClearTimeout(taskTimeoutID), taskTimeoutID = -1) : isHostTimeoutScheduled = true, requestHostTimeout(handleTimeout, options - currentTime))) : (priorityLevel.sortIndex = timeout, push(taskQueue, priorityLevel), isHostCallbackScheduled || isPerformingWork || (isHostCallbackScheduled = true, requestHostCallback()));
        return priorityLevel;
      };
      exports.unstable_shouldYield = shouldYieldToHost;
      exports.unstable_wrapCallback = function(callback) {
        var parentPriorityLevel = currentPriorityLevel;
        return function() {
          var previousPriorityLevel = currentPriorityLevel;
          currentPriorityLevel = parentPriorityLevel;
          try {
            return callback.apply(this, arguments);
          } finally {
            currentPriorityLevel = previousPriorityLevel;
          }
        };
      };
      "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
    })();
  }
});

// ../../node_modules/.pnpm/scheduler@0.25.0-rc-603e6108-20241029/node_modules/scheduler/index.js
var require_scheduler = __commonJS({
  "../../node_modules/.pnpm/scheduler@0.25.0-rc-603e6108-20241029/node_modules/scheduler/index.js"(exports, module) {
    "use strict";
    if (process.env.NODE_ENV === "production") {
      module.exports = require_scheduler_production();
    } else {
      module.exports = require_scheduler_development();
    }
  }
});

// ../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js
var require_object_assign = __commonJS({
  "../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js"(exports, module) {
    "use strict";
    var getOwnPropertySymbols = Object.getOwnPropertySymbols;
    var hasOwnProperty2 = Object.prototype.hasOwnProperty;
    var propIsEnumerable = Object.prototype.propertyIsEnumerable;
    function toObject(val) {
      if (val === null || val === void 0) {
        throw new TypeError("Object.assign cannot be called with null or undefined");
      }
      return Object(val);
    }
    function shouldUseNative() {
      try {
        if (!Object.assign) {
          return false;
        }
        var test1 = new String("abc");
        test1[5] = "de";
        if (Object.getOwnPropertyNames(test1)[0] === "5") {
          return false;
        }
        var test22 = {};
        for (var i5 = 0; i5 < 10; i5++) {
          test22["_" + String.fromCharCode(i5)] = i5;
        }
        var order2 = Object.getOwnPropertyNames(test22).map(function(n6) {
          return test22[n6];
        });
        if (order2.join("") !== "0123456789") {
          return false;
        }
        var test3 = {};
        "abcdefghijklmnopqrst".split("").forEach(function(letter) {
          test3[letter] = letter;
        });
        if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") {
          return false;
        }
        return true;
      } catch (err2) {
        return false;
      }
    }
    module.exports = shouldUseNative() ? Object.assign : function(target, source) {
      var from;
      var to = toObject(target);
      var symbols;
      for (var s4 = 1; s4 < arguments.length; s4++) {
        from = Object(arguments[s4]);
        for (var key in from) {
          if (hasOwnProperty2.call(from, key)) {
            to[key] = from[key];
          }
        }
        if (getOwnPropertySymbols) {
          symbols = getOwnPropertySymbols(from);
          for (var i5 = 0; i5 < symbols.length; i5++) {
            if (propIsEnumerable.call(from, symbols[i5])) {
              to[symbols[i5]] = from[symbols[i5]];
            }
          }
        }
      }
      return to;
    };
  }
});

// src/logic/pricing/constants.ts
var PRICING = {
  BASE_WEBSITE: 5440,
  // Updated to match AI prompt requirement in Pass 1
  PAGE: 600,
  FEATURE: 1500,
  FUNCTION: 800,
  NEW_DATASET: 450,
  HOSTING_MONTHLY: 250,
  STORAGE_EXPANSION_MONTHLY: 10,
  CMS_SETUP: 1500,
  CMS_CONNECTION_PER_FEATURE: 1500,
  API_INTEGRATION: 800,
  APP_HOURLY: 120
};
var initialState = {
  projectType: "website",
  // Company
  companyName: "",
  employeeCount: "",
  // Existing Presence
  existingWebsite: "",
  socialMedia: [],
  socialMediaUrls: {},
  existingDomain: "",
  wishedDomain: "",
  // Project
  websiteTopic: "",
  selectedPages: ["Home"],
  otherPages: [],
  otherPagesCount: 0,
  features: [],
  otherFeatures: [],
  otherFeaturesCount: 0,
  functions: [],
  otherFunctions: [],
  otherFunctionsCount: 0,
  apiSystems: [],
  otherTech: [],
  otherTechCount: 0,
  assets: [],
  otherAssets: [],
  otherAssetsCount: 0,
  newDatasets: 0,
  cmsSetup: false,
  storageExpansion: 0,
  name: "",
  email: "",
  role: "",
  message: "",
  sitemapFile: null,
  contactFiles: [],
  // Design
  designVibe: "minimal",
  colorScheme: ["#ffffff", "#f8fafc", "#0f172a"],
  references: [],
  designWishes: "",
  // Maintenance
  expectedAdjustments: "low",
  languagesList: ["Deutsch"],
  personName: "",
  // Timeline
  deadline: "flexible",
  // Web App specific
  targetAudience: "internal",
  userRoles: [],
  dataSensitivity: "standard",
  platformType: "web-only",
  // Meta
  dontKnows: [],
  visualStaging: "standard",
  complexInteractions: "standard",
  // AI generated / Post-processed
  briefingSummary: "",
  designVision: "",
  positionDescriptions: {},
  taxId: "",
  sitemap: []
};
var PAGE_SAMPLES = [
  { id: "Home", label: "Startseite", desc: "Der erste Eindruck Ihrer Marke." },
  { id: "About", label: "\xDCber uns", desc: "Ihre Geschichte und Ihr Team." },
  { id: "Services", label: "Leistungen", desc: "\xDCbersicht Ihres Angebots." },
  { id: "Contact", label: "Kontakt", desc: "Anlaufstelle f\xFCr Ihre Kunden." },
  {
    id: "Landing",
    label: "Landingpage",
    desc: "Optimiert f\xFCr Marketing-Kampagnen."
  },
  { id: "Legal", label: "Rechtliches", desc: "Impressum & Datenschutz." }
];
var FEATURE_OPTIONS = [
  {
    id: "blog_news",
    label: "Blog / News",
    desc: "Ein Bereich f\xFCr aktuelle Beitr\xE4ge und Neuigkeiten."
  },
  {
    id: "products",
    label: "Produktbereich",
    desc: "Katalog Ihrer Leistungen oder Produkte."
  },
  {
    id: "jobs",
    label: "Karriere / Jobs",
    desc: "Stellenanzeigen und Bewerbungsoptionen."
  },
  {
    id: "refs",
    label: "Referenzen / Cases",
    desc: "Pr\xE4sentation Ihrer Projekte."
  },
  { id: "events", label: "Events / Termine", desc: "Veranstaltungskalender." }
];
var FUNCTION_OPTIONS = [
  { id: "search", label: "Suche", desc: "Volltextsuche \xFCber alle Inhalte." },
  {
    id: "filter",
    label: "Filter-Systeme",
    desc: "Kategorisierung und Sortierung."
  },
  { id: "pdf", label: "PDF-Export", desc: "Automatisierte PDF-Erstellung." },
  {
    id: "forms",
    label: "Individuelle Formular-Logik",
    desc: "Smarte Validierung & mehrstufige Prozesse."
  }
];
var API_OPTIONS = [
  {
    id: "crm",
    label: "CRM System",
    desc: "HubSpot, Salesforce, Pipedrive etc."
  },
  {
    id: "erp",
    label: "ERP / Warenwirtschaft",
    desc: "SAP, Microsoft Dynamics, Xentral etc."
  },
  {
    id: "stripe",
    label: "Stripe / Payment",
    desc: "Zahlungsabwicklung und Abonnements."
  },
  {
    id: "newsletter",
    label: "Newsletter / Marketing",
    desc: "Mailchimp, Brevo, ActiveCampaign etc."
  },
  {
    id: "ecommerce",
    label: "E-Commerce / Shop",
    desc: "Shopify, WooCommerce, Shopware Sync."
  },
  {
    id: "hr",
    label: "HR / Recruiting",
    desc: "Personio, Workday, Recruitee etc."
  },
  {
    id: "realestate",
    label: "Immobilien",
    desc: "OpenImmo, FlowFact, Immowelt Sync."
  },
  {
    id: "calendar",
    label: "Termine / Booking",
    desc: "Calendly, Shore, Doctolib etc."
  },
  {
    id: "social",
    label: "Social Media Sync",
    desc: "Automatisierte Posts oder Feeds."
  },
  {
    id: "maps",
    label: "Google Maps / Places",
    desc: "Standortsuche und Kartenintegration."
  },
  {
    id: "analytics",
    label: "Custom Analytics",
    desc: "Anbindung an spezialisierte Tracking-Tools."
  }
];
var ASSET_OPTIONS = [
  {
    id: "existing_website",
    label: "Bestehende Website",
    desc: "Inhalte oder Struktur k\xF6nnen \xFCbernommen werden."
  },
  { id: "logo", label: "Logo", desc: "Vektordatei Ihres Logos." },
  {
    id: "styleguide",
    label: "Styleguide",
    desc: "Farben, Schriften, Design-Vorgaben."
  },
  {
    id: "content_concept",
    label: "Inhalts-Konzept",
    desc: "Struktur und Texte sind bereits geplant."
  },
  {
    id: "media",
    label: "Bild/Video-Material",
    desc: "Professionelles Bildmaterial vorhanden."
  },
  { id: "icons", label: "Icons", desc: "Eigene Icon-Sets vorhanden." },
  {
    id: "illustrations",
    label: "Illustrationen",
    desc: "Eigene Illustrationen vorhanden."
  },
  {
    id: "fonts",
    label: "Fonts",
    desc: "Lizenzen f\xFCr Hausschriften vorhanden."
  }
];
var DESIGN_OPTIONS = [
  {
    id: "minimal",
    label: "Minimalistisch",
    desc: "Viel Wei\xDFraum, klare Typografie."
  },
  {
    id: "bold",
    label: "Mutig & Laut",
    desc: "Starke Kontraste, gro\xDFe Schriften."
  },
  {
    id: "nature",
    label: "Nat\xFCrlich",
    desc: "Sanfte Erdt\xF6ne, organische Formen."
  },
  { id: "tech", label: "Technisch", desc: "Pr\xE4zise Linien, dunkle Akzente." }
];
var EMPLOYEE_OPTIONS = [
  { id: "1-5", label: "1-5 Mitarbeiter" },
  { id: "6-20", label: "6-20 Mitarbeiter" },
  { id: "21-100", label: "21-100 Mitarbeiter" },
  { id: "100+", label: "100+ Mitarbeiter" }
];
var SOCIAL_MEDIA_OPTIONS = [
  { id: "instagram", label: "Instagram" },
  { id: "linkedin", label: "LinkedIn" },
  { id: "facebook", label: "Facebook" },
  { id: "twitter", label: "Twitter / X" },
  { id: "tiktok", label: "TikTok" },
  { id: "youtube", label: "YouTube" }
];
var VIBE_LABELS = {
  minimal: "Minimalistisch",
  bold: "Mutig & Laut",
  nature: "Nat\xFCrlich",
  tech: "Technisch"
};
var DEADLINE_LABELS = {
  asap: "So schnell wie m\xF6glich",
  "2-3-months": "In 2-3 Monaten",
  "3-6-months": "In 3-6 Monaten",
  flexible: "Flexibel"
};
var ASSET_LABELS = {
  existing_website: "Bestehende Website",
  logo: "Logo",
  styleguide: "Styleguide",
  content_concept: "Inhalts-Konzept",
  media: "Bild/Video-Material",
  icons: "Icons",
  illustrations: "Illustrationen",
  fonts: "Fonts"
};
var FEATURE_LABELS = {
  blog_news: "Blog / News",
  products: "Produktbereich",
  jobs: "Karriere / Jobs",
  refs: "Referenzen / Cases",
  events: "Events / Termine"
};
var FUNCTION_LABELS = {
  search: "Suche",
  filter: "Filter-Systeme",
  pdf: "PDF-Export",
  forms: "Individuelle Formular-Logik",
  members: "Mitgliederbereich",
  calendar: "Event-Kalender",
  multilang: "Mehrsprachigkeit",
  chat: "Echtzeit-Chat"
};
var API_LABELS = {
  crm_erp: "CRM / ERP",
  payment: "Payment",
  marketing: "Marketing",
  ecommerce: "E-Commerce",
  maps: "Google Maps / Places",
  social: "Social Media Sync",
  analytics: "Custom Analytics"
};
var SOCIAL_LABELS = {
  instagram: "Instagram",
  linkedin: "LinkedIn",
  facebook: "Facebook",
  twitter: "Twitter / X",
  tiktok: "TikTok",
  youtube: "YouTube"
};
var PAGE_LABELS = {
  Home: "Startseite",
  About: "\xDCber uns",
  Services: "Leistungen",
  Contact: "Kontakt",
  Landing: "Landingpage",
  Legal: "Impressum & Datenschutz"
};

// src/logic/pricing/calculator.ts
function calculateTotals(state, pricing) {
  if (state.projectType !== "website") {
    return {
      totalPrice: 0,
      monthlyPrice: 0,
      totalPagesCount: 0,
      totalFeatures: 0,
      totalFunctions: 0,
      totalApis: 0,
      languagesCount: 0
    };
  }
  const sitemapPagesCount = state.sitemap?.reduce(
    (acc, cat) => acc + (cat.pages?.length || 0),
    0
  ) || 0;
  const totalPagesCount = Math.max(
    (state.selectedPages?.length || 0) + (state.otherPages?.length || 0) + (state.otherPagesCount || 0),
    sitemapPagesCount
  );
  const totalFeatures = (state.features?.length || 0) + (state.otherFeatures?.length || 0) + (state.otherFeaturesCount || 0);
  const totalFunctions = (state.functions?.length || 0) + (state.otherFunctions?.length || 0) + (state.otherFunctionsCount || 0);
  const totalApis = (state.apiSystems?.length || 0) + (state.otherTech?.length || 0) + (state.otherTechCount || 0);
  let total = pricing.BASE_WEBSITE;
  total += totalPagesCount * pricing.PAGE;
  total += totalFeatures * pricing.FEATURE;
  total += totalFunctions * pricing.FUNCTION;
  total += totalApis * pricing.API_INTEGRATION;
  total += (state.newDatasets || 0) * pricing.NEW_DATASET;
  if (state.cmsSetup) {
    total += Math.max(1, totalFeatures) * pricing.CMS_CONNECTION_PER_FEATURE;
  }
  const languagesCount = state.languagesList?.length || 1;
  if (languagesCount > 1) {
    total *= 1 + (languagesCount - 1) * 0.2;
  }
  const monthlyPrice = pricing.HOSTING_MONTHLY + (state.storageExpansion || 0) * pricing.STORAGE_EXPANSION_MONTHLY;
  return {
    totalPrice: Math.round(total),
    monthlyPrice: Math.round(monthlyPrice),
    totalPagesCount,
    totalFeatures,
    totalFunctions,
    totalApis,
    languagesCount
  };
}
function calculatePositions(state, pricing) {
  const positions = [];
  let pos = 1;
  if (state.projectType === "website") {
    positions.push({
      pos: pos++,
      title: "Das technische Fundament",
      desc: "Projekt-Setup, Infrastruktur, Hosting-Bereitstellung, Grundstruktur & Design-Vorlage, technisches SEO-Basics, Analytics.",
      qty: 1,
      price: pricing.BASE_WEBSITE
    });
    const sitemapPagesCount = state.sitemap?.reduce(
      (acc, cat) => acc + (cat.pages?.length || 0),
      0
    ) || 0;
    const totalPagesCount = Math.max(
      (state.selectedPages?.length || 0) + (state.otherPages?.length || 0) + (state.otherPagesCount || 0),
      sitemapPagesCount
    );
    const allPages = [
      ...(state.selectedPages || []).map((p3) => PAGE_LABELS[p3] || p3),
      ...state.otherPages || [],
      ...state.sitemap?.flatMap(
        (cat) => cat.pages?.map((p3) => p3.title)
      ) || []
    ];
    const uniquePages = Array.from(new Set(allPages));
    positions.push({
      pos: pos++,
      title: "Individuelle Seiten",
      desc: `Gestaltung und Umsetzung von ${totalPagesCount} individuellen Seiten-Layouts (${uniquePages.join(", ")}).`,
      qty: totalPagesCount,
      price: totalPagesCount * pricing.PAGE
    });
    if ((state.features?.length || 0) > 0 || (state.otherFeatures?.length || 0) > 0) {
      const allFeatures = [
        ...(state.features || []).map((f4) => FEATURE_LABELS[f4] || f4),
        ...state.otherFeatures || []
      ];
      positions.push({
        pos: pos++,
        title: "System-Module (Features)",
        desc: `Implementierung funktionaler Bereiche: ${allFeatures.join(", ")}. Inklusive Datenstruktur und Darstellung.`,
        qty: allFeatures.length,
        price: allFeatures.length * pricing.FEATURE
      });
    }
    if ((state.functions?.length || 0) > 0 || (state.otherFunctions?.length || 0) > 0) {
      const allFunctions = [
        ...(state.functions || []).map((f4) => FUNCTION_LABELS[f4] || f4),
        ...state.otherFunctions || []
      ];
      positions.push({
        pos: pos++,
        title: "Logik-Funktionen",
        desc: `Implementierung technischer Logik: ${allFunctions.join(", ")}.`,
        qty: allFunctions.length,
        price: allFunctions.length * pricing.FUNCTION
      });
    }
    if ((state.apiSystems?.length || 0) > 0 || (state.otherTech?.length || 0) > 0) {
      const allApis = [
        ...(state.apiSystems || []).map((a5) => API_LABELS[a5] || a5),
        ...state.otherTech || []
      ];
      positions.push({
        pos: pos++,
        title: "Schnittstellen (API)",
        desc: `Anbindung externer Systeme zur Datensynchronisation: ${allApis.join(", ")}.`,
        qty: allApis.length,
        price: allApis.length * pricing.API_INTEGRATION
      });
    }
    if (state.cmsSetup) {
      const totalFeatures = (state.features?.length || 0) + (state.otherFeatures?.length || 0) + (state.otherFeaturesCount || 0);
      const qty = Math.max(1, totalFeatures);
      positions.push({
        pos: pos++,
        title: "Inhalts-Verwaltung",
        desc: "Anbindung der System-Module an das Redaktions-System zur eigenst\xE4ndigen Pflege von Inhalten.",
        qty,
        price: qty * pricing.CMS_CONNECTION_PER_FEATURE
      });
    }
    if (state.newDatasets > 0) {
      positions.push({
        pos: pos++,
        title: "Inhaltliche Initial-Pflege",
        desc: `Manuelle \xDCbernahme und Aufbereitung von ${state.newDatasets} Datens\xE4tzen (Produkte, Artikel) in das Zielsystem.`,
        qty: state.newDatasets,
        price: state.newDatasets * pricing.NEW_DATASET
      });
    }
    const languagesCount = state.languagesList?.length || 1;
    if (languagesCount > 1) {
      const subtotal = positions.reduce((sum, p3) => sum + p3.price, 0);
      const factorPrice = subtotal * ((languagesCount - 1) * 0.2);
      positions.push({
        pos: pos++,
        title: "Mehrsprachigkeit",
        desc: `Erweiterung des Systems auf ${languagesCount} Sprachen (Struktur & Logik).`,
        qty: languagesCount,
        price: Math.round(factorPrice)
      });
    }
    const monthlyRate = pricing.HOSTING_MONTHLY + state.storageExpansion * pricing.STORAGE_EXPANSION_MONTHLY;
    positions.push({
      pos: pos++,
      title: "Sorglos Betrieb (1 Jahr)",
      desc: `Inklusive 1 Jahr Sicherung des technischen Betriebs, Hosting, Instandhaltung, Sicherheits-Updates und techn. Support gem\xE4\xDF AGB Punkt 7a.`,
      qty: 1,
      price: monthlyRate * 12
    });
  } else {
    positions.push({
      pos: pos++,
      title: "Web App / Software Entwicklung",
      desc: "Individuelle Software-Entwicklung nach Aufwand. Abrechnung erfolgt auf Stundenbasis.",
      qty: 1,
      price: 0
    });
  }
  return positions;
}

// ../../node_modules/.pnpm/crawlee@3.16.0_@types+node@20.19.33/node_modules/crawlee/index.mjs
var import_index2 = __toESM(require_crawlee(), 1);
var API_PROCESSED_REQUESTS_DELAY_MILLIS = import_index2.default.API_PROCESSED_REQUESTS_DELAY_MILLIS;
var AdaptivePlaywrightCrawler = import_index2.default.AdaptivePlaywrightCrawler;
var AutoscaledPool = import_index2.default.AutoscaledPool;
var BASIC_CRAWLER_TIMEOUT_BUFFER_SECS = import_index2.default.BASIC_CRAWLER_TIMEOUT_BUFFER_SECS;
var BLOCKED_STATUS_CODES = import_index2.default.BLOCKED_STATUS_CODES;
var BROWSER_CONTROLLER_EVENTS = import_index2.default.BROWSER_CONTROLLER_EVENTS;
var BROWSER_POOL_EVENTS = import_index2.default.BROWSER_POOL_EVENTS;
var BasicCrawler = import_index2.default.BasicCrawler;
var BrowserController = import_index2.default.BrowserController;
var BrowserCrawler = import_index2.default.BrowserCrawler;
var BrowserLaunchError = import_index2.default.BrowserLaunchError;
var BrowserLauncher = import_index2.default.BrowserLauncher;
var BrowserName = import_index2.default.BrowserName;
var BrowserPlugin = import_index2.default.BrowserPlugin;
var BrowserPool = import_index2.default.BrowserPool;
var ByteCounterStream = import_index2.default.ByteCounterStream;
var CLOUDFLARE_RETRY_CSS_SELECTORS = import_index2.default.CLOUDFLARE_RETRY_CSS_SELECTORS;
var CheerioCrawler = import_index2.default.CheerioCrawler;
var Configuration = import_index2.default.Configuration;
var CookieParseError = import_index2.default.CookieParseError;
var CrawlerExtension = import_index2.default.CrawlerExtension;
var CriticalError = import_index2.default.CriticalError;
var DATASET_ITERATORS_DEFAULT_LIMIT = import_index2.default.DATASET_ITERATORS_DEFAULT_LIMIT;
var DEFAULT_USER_AGENT = import_index2.default.DEFAULT_USER_AGENT;
var Dataset = import_index2.default.Dataset;
var DeviceCategory = import_index2.default.DeviceCategory;
var EVENT_SESSION_RETIRED = import_index2.default.EVENT_SESSION_RETIRED;
var EnqueueStrategy = import_index2.default.EnqueueStrategy;
var ErrorSnapshotter = import_index2.default.ErrorSnapshotter;
var ErrorTracker = import_index2.default.ErrorTracker;
var EventManager2 = import_index2.default.EventManager;
var EventType = import_index2.default.EventType;
var FileDownload = import_index2.default.FileDownload;
var GotScrapingHttpClient = import_index2.default.GotScrapingHttpClient;
var HttpCrawler = import_index2.default.HttpCrawler;
var JSDOMCrawler = import_index2.default.JSDOMCrawler;
var KeyValueStore = import_index2.default.KeyValueStore;
var LaunchContext = import_index2.default.LaunchContext;
var LinkeDOMCrawler = import_index2.default.LinkeDOMCrawler;
var LocalEventManager = import_index2.default.LocalEventManager;
var Log = import_index2.default.Log;
var LogLevel = import_index2.default.LogLevel;
var Logger = import_index2.default.Logger;
var LoggerJson = import_index2.default.LoggerJson;
var LoggerText = import_index2.default.LoggerText;
var MAX_POOL_SIZE = import_index2.default.MAX_POOL_SIZE;
var MAX_QUERIES_FOR_CONSISTENCY = import_index2.default.MAX_QUERIES_FOR_CONSISTENCY;
var MemoryStorage = import_index2.default.MemoryStorage;
var MinimumSpeedStream = import_index2.default.MinimumSpeedStream;
var MissingRouteError = import_index2.default.MissingRouteError;
var NonRetryableError = import_index2.default.NonRetryableError;
var OperatingSystemsName = import_index2.default.OperatingSystemsName;
var PERSIST_STATE_KEY = import_index2.default.PERSIST_STATE_KEY;
var PlaywrightBrowser = import_index2.default.PlaywrightBrowser;
var PlaywrightController = import_index2.default.PlaywrightController;
var PlaywrightCrawler = import_index2.default.PlaywrightCrawler;
var PlaywrightLauncher = import_index2.default.PlaywrightLauncher;
var PlaywrightPlugin = import_index2.default.PlaywrightPlugin;
var ProxyConfiguration = import_index2.default.ProxyConfiguration;
var PseudoUrl = import_index2.default.PseudoUrl;
var PuppeteerController = import_index2.default.PuppeteerController;
var PuppeteerCrawler = import_index2.default.PuppeteerCrawler;
var PuppeteerLauncher = import_index2.default.PuppeteerLauncher;
var PuppeteerPlugin = import_index2.default.PuppeteerPlugin;
var QUERY_HEAD_BUFFER = import_index2.default.QUERY_HEAD_BUFFER;
var QUERY_HEAD_MIN_LENGTH = import_index2.default.QUERY_HEAD_MIN_LENGTH;
var REQUESTS_PERSISTENCE_KEY = import_index2.default.REQUESTS_PERSISTENCE_KEY;
var RETRY_CSS_SELECTORS = import_index2.default.RETRY_CSS_SELECTORS;
var ROTATE_PROXY_ERRORS = import_index2.default.ROTATE_PROXY_ERRORS;
var RecoverableState = import_index2.default.RecoverableState;
var RenderingTypePredictor = import_index2.default.RenderingTypePredictor;
var Request2 = import_index2.default.Request;
var RequestHandlerResult = import_index2.default.RequestHandlerResult;
var RequestList = import_index2.default.RequestList;
var RequestListAdapter = import_index2.default.RequestListAdapter;
var RequestManagerTandem = import_index2.default.RequestManagerTandem;
var RequestProvider = import_index2.default.RequestProvider;
var RequestQueue = import_index2.default.RequestQueue;
var RequestQueueV1 = import_index2.default.RequestQueueV1;
var RequestQueueV2 = import_index2.default.RequestQueueV2;
var RequestState = import_index2.default.RequestState;
var RetryRequestError = import_index2.default.RetryRequestError;
var RobotsFile = import_index2.default.RobotsFile;
var RobotsTxtFile = import_index2.default.RobotsTxtFile;
var Router = import_index2.default.Router;
var STATE_PERSISTENCE_KEY = import_index2.default.STATE_PERSISTENCE_KEY;
var STORAGE_CONSISTENCY_DELAY_MILLIS = import_index2.default.STORAGE_CONSISTENCY_DELAY_MILLIS;
var Session = import_index2.default.Session;
var SessionError = import_index2.default.SessionError;
var SessionPool = import_index2.default.SessionPool;
var Sitemap = import_index2.default.Sitemap;
var SitemapRequestList = import_index2.default.SitemapRequestList;
var Snapshotter = import_index2.default.Snapshotter;
var Statistics = import_index2.default.Statistics;
var StorageManager = import_index2.default.StorageManager;
var SystemStatus = import_index2.default.SystemStatus;
var URL_NO_COMMAS_REGEX = import_index2.default.URL_NO_COMMAS_REGEX;
var URL_WITH_COMMAS_REGEX = import_index2.default.URL_WITH_COMMAS_REGEX;
var anonymizeProxySugar = import_index2.default.anonymizeProxySugar;
var applySearchParams = import_index2.default.applySearchParams;
var asyncifyIterable = import_index2.default.asyncifyIterable;
var browserCrawlerEnqueueLinks = import_index2.default.browserCrawlerEnqueueLinks;
var browserPoolCookieToToughCookie = import_index2.default.browserPoolCookieToToughCookie;
var checkAndSerialize = import_index2.default.checkAndSerialize;
var checkStorageAccess = import_index2.default.checkStorageAccess;
var cheerioCrawlerEnqueueLinks = import_index2.default.cheerioCrawlerEnqueueLinks;
var chunk2 = import_index2.default.chunk;
var chunkBySize = import_index2.default.chunkBySize;
var chunkedAsyncIterable = import_index2.default.chunkedAsyncIterable;
var constructGlobObjectsFromGlobs = import_index2.default.constructGlobObjectsFromGlobs;
var constructRegExpObjectsFromPseudoUrls = import_index2.default.constructRegExpObjectsFromPseudoUrls;
var constructRegExpObjectsFromRegExps = import_index2.default.constructRegExpObjectsFromRegExps;
var cookieStringToToughCookie = import_index2.default.cookieStringToToughCookie;
var createAdaptivePlaywrightRouter = import_index2.default.createAdaptivePlaywrightRouter;
var createBasicRouter = import_index2.default.createBasicRouter;
var createCheerioRouter = import_index2.default.createCheerioRouter;
var createDeserialize = import_index2.default.createDeserialize;
var createFileRouter = import_index2.default.createFileRouter;
var createHttpRouter = import_index2.default.createHttpRouter;
var createJSDOMRouter = import_index2.default.createJSDOMRouter;
var createLinkeDOMRouter = import_index2.default.createLinkeDOMRouter;
var createPlaywrightRouter = import_index2.default.createPlaywrightRouter;
var createPuppeteerRouter = import_index2.default.createPuppeteerRouter;
var createRequestDebugInfo = import_index2.default.createRequestDebugInfo;
var createRequestOptions = import_index2.default.createRequestOptions;
var createRequests = import_index2.default.createRequests;
var deserializeArray = import_index2.default.deserializeArray;
var discoverValidSitemaps = import_index2.default.discoverValidSitemaps;
var domCrawlerEnqueueLinks = import_index2.default.domCrawlerEnqueueLinks;
var downloadListOfUrls = import_index2.default.downloadListOfUrls;
var enqueueLinks = import_index2.default.enqueueLinks;
var entries2 = import_index2.default.entries;
var expandShadowRoots = import_index2.default.expandShadowRoots;
var extractUrls = import_index2.default.extractUrls;
var extractUrlsFromCheerio = import_index2.default.extractUrlsFromCheerio;
var extractUrlsFromPage = import_index2.default.extractUrlsFromPage;
var filterRequestsByPatterns = import_index2.default.filterRequestsByPatterns;
var getCgroupsVersion = import_index2.default.getCgroupsVersion;
var getCookiesFromResponse = import_index2.default.getCookiesFromResponse;
var getCurrentCpuTicksV2 = import_index2.default.getCurrentCpuTicksV2;
var getDefaultCookieExpirationDate = import_index2.default.getDefaultCookieExpirationDate;
var getMemoryInfo = import_index2.default.getMemoryInfo;
var getMemoryInfoV2 = import_index2.default.getMemoryInfoV2;
var getObjectType3 = import_index2.default.getObjectType;
var getRequestId = import_index2.default.getRequestId;
var gotScraping2 = import_index2.default.gotScraping;
var handleRequestTimeout = import_index2.default.handleRequestTimeout;
var htmlToText = import_index2.default.htmlToText;
var isAsyncIterable3 = import_index2.default.isAsyncIterable;
var isContainerized = import_index2.default.isContainerized;
var isDocker = import_index2.default.isDocker;
var isIterable3 = import_index2.default.isIterable;
var isLambda = import_index2.default.isLambda;
var keys = import_index2.default.keys;
var launchPlaywright = import_index2.default.launchPlaywright;
var launchPuppeteer = import_index2.default.launchPuppeteer;
var linkedomCrawlerEnqueueLinks = import_index2.default.linkedomCrawlerEnqueueLinks;
var log = import_index2.default.log;
var maybeStringify = import_index2.default.maybeStringify;
var mergeAsyncIterables = import_index2.default.mergeAsyncIterables;
var mergeCookies = import_index2.default.mergeCookies;
var parseOpenGraph = import_index2.default.parseOpenGraph;
var parseSitemap = import_index2.default.parseSitemap;
var peekableAsyncIterable = import_index2.default.peekableAsyncIterable;
var playwrightClickElements = import_index2.default.playwrightClickElements;
var playwrightUtils = import_index2.default.playwrightUtils;
var processHttpRequestOptions = import_index2.default.processHttpRequestOptions;
var puppeteerClickElements = import_index2.default.puppeteerClickElements;
var puppeteerRequestInterception = import_index2.default.puppeteerRequestInterception;
var puppeteerUtils = import_index2.default.puppeteerUtils;
var purgeDefaultStorages = import_index2.default.purgeDefaultStorages;
var resolveBaseUrlForEnqueueLinksFiltering = import_index2.default.resolveBaseUrlForEnqueueLinksFiltering;
var serializeArray = import_index2.default.serializeArray;
var sleep = import_index2.default.sleep;
var snakeCaseToCamelCase = import_index2.default.snakeCaseToCamelCase;
var social = import_index2.default.social;
var toughCookieToBrowserPoolCookie = import_index2.default.toughCookieToBrowserPoolCookie;
var tryAbsoluteURL = import_index2.default.tryAbsoluteURL;
var updateEnqueueLinksPatternCache = import_index2.default.updateEnqueueLinksPatternCache;
var useState = import_index2.default.useState;
var utils = import_index2.default.utils;
var validateGlobPattern = import_index2.default.validateGlobPattern;
var validators = import_index2.default.validators;
var weightedAvg = import_index2.default.weightedAvg;
var withCheckedStorageAccess = import_index2.default.withCheckedStorageAccess;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/bind.js
function bind(fn, thisArg) {
  return function wrap() {
    return fn.apply(thisArg, arguments);
  };
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/utils.js
var { toString: toString3 } = Object.prototype;
var { getPrototypeOf } = Object;
var { iterator, toStringTag } = Symbol;
var kindOf = /* @__PURE__ */ ((cache2) => (thing) => {
  const str = toString3.call(thing);
  return cache2[str] || (cache2[str] = str.slice(8, -1).toLowerCase());
})(/* @__PURE__ */ Object.create(null));
var kindOfTest = (type) => {
  type = type.toLowerCase();
  return (thing) => kindOf(thing) === type;
};
var typeOfTest = (type) => (thing) => typeof thing === type;
var { isArray: isArray2 } = Array;
var isUndefined2 = typeOfTest("undefined");
function isBuffer2(val) {
  return val !== null && !isUndefined2(val) && val.constructor !== null && !isUndefined2(val.constructor) && isFunction3(val.constructor.isBuffer) && val.constructor.isBuffer(val);
}
var isArrayBuffer2 = kindOfTest("ArrayBuffer");
function isArrayBufferView(val) {
  let result;
  if (typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView) {
    result = ArrayBuffer.isView(val);
  } else {
    result = val && val.buffer && isArrayBuffer2(val.buffer);
  }
  return result;
}
var isString2 = typeOfTest("string");
var isFunction3 = typeOfTest("function");
var isNumber2 = typeOfTest("number");
var isObject3 = (thing) => thing !== null && typeof thing === "object";
var isBoolean2 = (thing) => thing === true || thing === false;
var isPlainObject3 = (val) => {
  if (kindOf(val) !== "object") {
    return false;
  }
  const prototype2 = getPrototypeOf(val);
  return (prototype2 === null || prototype2 === Object.prototype || Object.getPrototypeOf(prototype2) === null) && !(toStringTag in val) && !(iterator in val);
};
var isEmptyObject2 = (val) => {
  if (!isObject3(val) || isBuffer2(val)) {
    return false;
  }
  try {
    return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;
  } catch (e4) {
    return false;
  }
};
var isDate2 = kindOfTest("Date");
var isFile2 = kindOfTest("File");
var isBlob2 = kindOfTest("Blob");
var isFileList = kindOfTest("FileList");
var isStream2 = (val) => isObject3(val) && isFunction3(val.pipe);
var isFormData4 = (thing) => {
  let kind;
  return thing && (typeof FormData === "function" && thing instanceof FormData || isFunction3(thing.append) && ((kind = kindOf(thing)) === "formdata" || // detect form-data instance
  kind === "object" && isFunction3(thing.toString) && thing.toString() === "[object FormData]"));
};
var isURLSearchParams = kindOfTest("URLSearchParams");
var [isReadableStream2, isRequest2, isResponse, isHeaders] = [
  "ReadableStream",
  "Request",
  "Response",
  "Headers"
].map(kindOfTest);
var trim = (str) => str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "");
function forEach(obj, fn, { allOwnKeys = false } = {}) {
  if (obj === null || typeof obj === "undefined") {
    return;
  }
  let i5;
  let l4;
  if (typeof obj !== "object") {
    obj = [obj];
  }
  if (isArray2(obj)) {
    for (i5 = 0, l4 = obj.length; i5 < l4; i5++) {
      fn.call(null, obj[i5], i5, obj);
    }
  } else {
    if (isBuffer2(obj)) {
      return;
    }
    const keys2 = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
    const len = keys2.length;
    let key;
    for (i5 = 0; i5 < len; i5++) {
      key = keys2[i5];
      fn.call(null, obj[key], key, obj);
    }
  }
}
function findKey(obj, key) {
  if (isBuffer2(obj)) {
    return null;
  }
  key = key.toLowerCase();
  const keys2 = Object.keys(obj);
  let i5 = keys2.length;
  let _key;
  while (i5-- > 0) {
    _key = keys2[i5];
    if (key === _key.toLowerCase()) {
      return _key;
    }
  }
  return null;
}
var _global = (() => {
  if (typeof globalThis !== "undefined") return globalThis;
  return typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : global;
})();
var isContextDefined = (context) => !isUndefined2(context) && context !== _global;
function merge() {
  const { caseless, skipUndefined } = isContextDefined(this) && this || {};
  const result = {};
  const assignValue = (val, key) => {
    if (key === "__proto__" || key === "constructor" || key === "prototype") {
      return;
    }
    const targetKey = caseless && findKey(result, key) || key;
    if (isPlainObject3(result[targetKey]) && isPlainObject3(val)) {
      result[targetKey] = merge(result[targetKey], val);
    } else if (isPlainObject3(val)) {
      result[targetKey] = merge({}, val);
    } else if (isArray2(val)) {
      result[targetKey] = val.slice();
    } else if (!skipUndefined || !isUndefined2(val)) {
      result[targetKey] = val;
    }
  };
  for (let i5 = 0, l4 = arguments.length; i5 < l4; i5++) {
    arguments[i5] && forEach(arguments[i5], assignValue);
  }
  return result;
}
var extend = (a5, b3, thisArg, { allOwnKeys } = {}) => {
  forEach(
    b3,
    (val, key) => {
      if (thisArg && isFunction3(val)) {
        Object.defineProperty(a5, key, {
          value: bind(val, thisArg),
          writable: true,
          enumerable: true,
          configurable: true
        });
      } else {
        Object.defineProperty(a5, key, {
          value: val,
          writable: true,
          enumerable: true,
          configurable: true
        });
      }
    },
    { allOwnKeys }
  );
  return a5;
};
var stripBOM = (content) => {
  if (content.charCodeAt(0) === 65279) {
    content = content.slice(1);
  }
  return content;
};
var inherits = (constructor, superConstructor, props, descriptors) => {
  constructor.prototype = Object.create(
    superConstructor.prototype,
    descriptors
  );
  Object.defineProperty(constructor.prototype, "constructor", {
    value: constructor,
    writable: true,
    enumerable: false,
    configurable: true
  });
  Object.defineProperty(constructor, "super", {
    value: superConstructor.prototype
  });
  props && Object.assign(constructor.prototype, props);
};
var toFlatObject = (sourceObj, destObj, filter3, propFilter) => {
  let props;
  let i5;
  let prop;
  const merged = {};
  destObj = destObj || {};
  if (sourceObj == null) return destObj;
  do {
    props = Object.getOwnPropertyNames(sourceObj);
    i5 = props.length;
    while (i5-- > 0) {
      prop = props[i5];
      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {
        destObj[prop] = sourceObj[prop];
        merged[prop] = true;
      }
    }
    sourceObj = filter3 !== false && getPrototypeOf(sourceObj);
  } while (sourceObj && (!filter3 || filter3(sourceObj, destObj)) && sourceObj !== Object.prototype);
  return destObj;
};
var endsWith = (str, searchString, position) => {
  str = String(str);
  if (position === void 0 || position > str.length) {
    position = str.length;
  }
  position -= searchString.length;
  const lastIndex = str.indexOf(searchString, position);
  return lastIndex !== -1 && lastIndex === position;
};
var toArray = (thing) => {
  if (!thing) return null;
  if (isArray2(thing)) return thing;
  let i5 = thing.length;
  if (!isNumber2(i5)) return null;
  const arr = new Array(i5);
  while (i5-- > 0) {
    arr[i5] = thing[i5];
  }
  return arr;
};
var isTypedArray2 = /* @__PURE__ */ ((TypedArray) => {
  return (thing) => {
    return TypedArray && thing instanceof TypedArray;
  };
})(typeof Uint8Array !== "undefined" && getPrototypeOf(Uint8Array));
var forEachEntry = (obj, fn) => {
  const generator2 = obj && obj[iterator];
  const _iterator = generator2.call(obj);
  let result;
  while ((result = _iterator.next()) && !result.done) {
    const pair = result.value;
    fn.call(obj, pair[0], pair[1]);
  }
};
var matchAll = (regExp, str) => {
  let matches;
  const arr = [];
  while ((matches = regExp.exec(str)) !== null) {
    arr.push(matches);
  }
  return arr;
};
var isHTMLForm = kindOfTest("HTMLFormElement");
var toCamelCase = (str) => {
  return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m3, p1, p22) {
    return p1.toUpperCase() + p22;
  });
};
var hasOwnProperty = (({ hasOwnProperty: hasOwnProperty2 }) => (obj, prop) => hasOwnProperty2.call(obj, prop))(Object.prototype);
var isRegExp2 = kindOfTest("RegExp");
var reduceDescriptors = (obj, reducer) => {
  const descriptors = Object.getOwnPropertyDescriptors(obj);
  const reducedDescriptors = {};
  forEach(descriptors, (descriptor, name) => {
    let ret;
    if ((ret = reducer(descriptor, name, obj)) !== false) {
      reducedDescriptors[name] = ret || descriptor;
    }
  });
  Object.defineProperties(obj, reducedDescriptors);
};
var freezeMethods = (obj) => {
  reduceDescriptors(obj, (descriptor, name) => {
    if (isFunction3(obj) && ["arguments", "caller", "callee"].indexOf(name) !== -1) {
      return false;
    }
    const value2 = obj[name];
    if (!isFunction3(value2)) return;
    descriptor.enumerable = false;
    if ("writable" in descriptor) {
      descriptor.writable = false;
      return;
    }
    if (!descriptor.set) {
      descriptor.set = () => {
        throw Error("Can not rewrite read-only method '" + name + "'");
      };
    }
  });
};
var toObjectSet = (arrayOrString, delimiter) => {
  const obj = {};
  const define2 = (arr) => {
    arr.forEach((value2) => {
      obj[value2] = true;
    });
  };
  isArray2(arrayOrString) ? define2(arrayOrString) : define2(String(arrayOrString).split(delimiter));
  return obj;
};
var noop4 = () => {
};
var toFiniteNumber = (value2, defaultValue) => {
  return value2 != null && Number.isFinite(value2 = +value2) ? value2 : defaultValue;
};
function isSpecCompliantForm(thing) {
  return !!(thing && isFunction3(thing.append) && thing[toStringTag] === "FormData" && thing[iterator]);
}
var toJSONObject = (obj) => {
  const stack = new Array(10);
  const visit = (source, i5) => {
    if (isObject3(source)) {
      if (stack.indexOf(source) >= 0) {
        return;
      }
      if (isBuffer2(source)) {
        return source;
      }
      if (!("toJSON" in source)) {
        stack[i5] = source;
        const target = isArray2(source) ? [] : {};
        forEach(source, (value2, key) => {
          const reducedValue = visit(value2, i5 + 1);
          !isUndefined2(reducedValue) && (target[key] = reducedValue);
        });
        stack[i5] = void 0;
        return target;
      }
    }
    return source;
  };
  return visit(obj, 0);
};
var isAsyncFn = kindOfTest("AsyncFunction");
var isThenable = (thing) => thing && (isObject3(thing) || isFunction3(thing)) && isFunction3(thing.then) && isFunction3(thing.catch);
var _setImmediate = ((setImmediateSupported, postMessageSupported) => {
  if (setImmediateSupported) {
    return setImmediate;
  }
  return postMessageSupported ? ((token, callbacks) => {
    _global.addEventListener(
      "message",
      ({ source, data: data2 }) => {
        if (source === _global && data2 === token) {
          callbacks.length && callbacks.shift()();
        }
      },
      false
    );
    return (cb) => {
      callbacks.push(cb);
      _global.postMessage(token, "*");
    };
  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
})(typeof setImmediate === "function", isFunction3(_global.postMessage));
var asap = typeof queueMicrotask !== "undefined" ? queueMicrotask.bind(_global) : typeof process !== "undefined" && process.nextTick || _setImmediate;
var isIterable4 = (thing) => thing != null && isFunction3(thing[iterator]);
var utils_default = {
  isArray: isArray2,
  isArrayBuffer: isArrayBuffer2,
  isBuffer: isBuffer2,
  isFormData: isFormData4,
  isArrayBufferView,
  isString: isString2,
  isNumber: isNumber2,
  isBoolean: isBoolean2,
  isObject: isObject3,
  isPlainObject: isPlainObject3,
  isEmptyObject: isEmptyObject2,
  isReadableStream: isReadableStream2,
  isRequest: isRequest2,
  isResponse,
  isHeaders,
  isUndefined: isUndefined2,
  isDate: isDate2,
  isFile: isFile2,
  isBlob: isBlob2,
  isRegExp: isRegExp2,
  isFunction: isFunction3,
  isStream: isStream2,
  isURLSearchParams,
  isTypedArray: isTypedArray2,
  isFileList,
  forEach,
  merge,
  extend,
  trim,
  stripBOM,
  inherits,
  toFlatObject,
  kindOf,
  kindOfTest,
  endsWith,
  toArray,
  forEachEntry,
  matchAll,
  isHTMLForm,
  hasOwnProperty,
  hasOwnProp: hasOwnProperty,
  // an alias to avoid ESLint no-prototype-builtins detection
  reduceDescriptors,
  freezeMethods,
  toObjectSet,
  toCamelCase,
  noop: noop4,
  toFiniteNumber,
  findKey,
  global: _global,
  isContextDefined,
  isSpecCompliantForm,
  toJSONObject,
  isAsyncFn,
  isThenable,
  setImmediate: _setImmediate,
  asap,
  isIterable: isIterable4
};

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/core/AxiosError.js
var AxiosError = class _AxiosError extends Error {
  static from(error, code, config, request, response, customProps) {
    const axiosError = new _AxiosError(error.message, code || error.code, config, request, response);
    axiosError.cause = error;
    axiosError.name = error.name;
    customProps && Object.assign(axiosError, customProps);
    return axiosError;
  }
  /**
   * Create an Error with the specified message, config, error code, request and response.
   *
   * @param {string} message The error message.
   * @param {string} [code] The error code (for example, 'ECONNABORTED').
   * @param {Object} [config] The config.
   * @param {Object} [request] The request.
   * @param {Object} [response] The response.
   *
   * @returns {Error} The created error.
   */
  constructor(message, code, config, request, response) {
    super(message);
    this.name = "AxiosError";
    this.isAxiosError = true;
    code && (this.code = code);
    config && (this.config = config);
    request && (this.request = request);
    if (response) {
      this.response = response;
      this.status = response.status;
    }
  }
  toJSON() {
    return {
      // Standard
      message: this.message,
      name: this.name,
      // Microsoft
      description: this.description,
      number: this.number,
      // Mozilla
      fileName: this.fileName,
      lineNumber: this.lineNumber,
      columnNumber: this.columnNumber,
      stack: this.stack,
      // Axios
      config: utils_default.toJSONObject(this.config),
      code: this.code,
      status: this.status
    };
  }
};
AxiosError.ERR_BAD_OPTION_VALUE = "ERR_BAD_OPTION_VALUE";
AxiosError.ERR_BAD_OPTION = "ERR_BAD_OPTION";
AxiosError.ECONNABORTED = "ECONNABORTED";
AxiosError.ETIMEDOUT = "ETIMEDOUT";
AxiosError.ERR_NETWORK = "ERR_NETWORK";
AxiosError.ERR_FR_TOO_MANY_REDIRECTS = "ERR_FR_TOO_MANY_REDIRECTS";
AxiosError.ERR_DEPRECATED = "ERR_DEPRECATED";
AxiosError.ERR_BAD_RESPONSE = "ERR_BAD_RESPONSE";
AxiosError.ERR_BAD_REQUEST = "ERR_BAD_REQUEST";
AxiosError.ERR_CANCELED = "ERR_CANCELED";
AxiosError.ERR_NOT_SUPPORT = "ERR_NOT_SUPPORT";
AxiosError.ERR_INVALID_URL = "ERR_INVALID_URL";
var AxiosError_default = AxiosError;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/platform/node/classes/FormData.js
var import_form_data = __toESM(require_form_data(), 1);
var FormData_default = import_form_data.default;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/toFormData.js
function isVisitable(thing) {
  return utils_default.isPlainObject(thing) || utils_default.isArray(thing);
}
function removeBrackets(key) {
  return utils_default.endsWith(key, "[]") ? key.slice(0, -2) : key;
}
function renderKey(path3, key, dots) {
  if (!path3) return key;
  return path3.concat(key).map(function each(token, i5) {
    token = removeBrackets(token);
    return !dots && i5 ? "[" + token + "]" : token;
  }).join(dots ? "." : "");
}
function isFlatArray(arr) {
  return utils_default.isArray(arr) && !arr.some(isVisitable);
}
var predicates2 = utils_default.toFlatObject(utils_default, {}, null, function filter(prop) {
  return /^is[A-Z]/.test(prop);
});
function toFormData(obj, formData, options) {
  if (!utils_default.isObject(obj)) {
    throw new TypeError("target must be an object");
  }
  formData = formData || new (FormData_default || FormData)();
  options = utils_default.toFlatObject(options, {
    metaTokens: true,
    dots: false,
    indexes: false
  }, false, function defined(option, source) {
    return !utils_default.isUndefined(source[option]);
  });
  const metaTokens = options.metaTokens;
  const visitor = options.visitor || defaultVisitor;
  const dots = options.dots;
  const indexes = options.indexes;
  const _Blob = options.Blob || typeof Blob !== "undefined" && Blob;
  const useBlob = _Blob && utils_default.isSpecCompliantForm(formData);
  if (!utils_default.isFunction(visitor)) {
    throw new TypeError("visitor must be a function");
  }
  function convertValue(value2) {
    if (value2 === null) return "";
    if (utils_default.isDate(value2)) {
      return value2.toISOString();
    }
    if (utils_default.isBoolean(value2)) {
      return value2.toString();
    }
    if (!useBlob && utils_default.isBlob(value2)) {
      throw new AxiosError_default("Blob is not supported. Use a Buffer instead.");
    }
    if (utils_default.isArrayBuffer(value2) || utils_default.isTypedArray(value2)) {
      return useBlob && typeof Blob === "function" ? new Blob([value2]) : Buffer.from(value2);
    }
    return value2;
  }
  function defaultVisitor(value2, key, path3) {
    let arr = value2;
    if (value2 && !path3 && typeof value2 === "object") {
      if (utils_default.endsWith(key, "{}")) {
        key = metaTokens ? key : key.slice(0, -2);
        value2 = JSON.stringify(value2);
      } else if (utils_default.isArray(value2) && isFlatArray(value2) || (utils_default.isFileList(value2) || utils_default.endsWith(key, "[]")) && (arr = utils_default.toArray(value2))) {
        key = removeBrackets(key);
        arr.forEach(function each(el, index2) {
          !(utils_default.isUndefined(el) || el === null) && formData.append(
            // eslint-disable-next-line no-nested-ternary
            indexes === true ? renderKey([key], index2, dots) : indexes === null ? key : key + "[]",
            convertValue(el)
          );
        });
        return false;
      }
    }
    if (isVisitable(value2)) {
      return true;
    }
    formData.append(renderKey(path3, key, dots), convertValue(value2));
    return false;
  }
  const stack = [];
  const exposedHelpers = Object.assign(predicates2, {
    defaultVisitor,
    convertValue,
    isVisitable
  });
  function build(value2, path3) {
    if (utils_default.isUndefined(value2)) return;
    if (stack.indexOf(value2) !== -1) {
      throw Error("Circular reference detected in " + path3.join("."));
    }
    stack.push(value2);
    utils_default.forEach(value2, function each(el, key) {
      const result = !(utils_default.isUndefined(el) || el === null) && visitor.call(
        formData,
        el,
        utils_default.isString(key) ? key.trim() : key,
        path3,
        exposedHelpers
      );
      if (result === true) {
        build(el, path3 ? path3.concat(key) : [key]);
      }
    });
    stack.pop();
  }
  if (!utils_default.isObject(obj)) {
    throw new TypeError("data must be an object");
  }
  build(obj);
  return formData;
}
var toFormData_default = toFormData;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/AxiosURLSearchParams.js
function encode(str) {
  const charMap = {
    "!": "%21",
    "'": "%27",
    "(": "%28",
    ")": "%29",
    "~": "%7E",
    "%20": "+",
    "%00": "\0"
  };
  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
    return charMap[match];
  });
}
function AxiosURLSearchParams(params, options) {
  this._pairs = [];
  params && toFormData_default(params, this, options);
}
var prototype = AxiosURLSearchParams.prototype;
prototype.append = function append(name, value2) {
  this._pairs.push([name, value2]);
};
prototype.toString = function toString4(encoder) {
  const _encode = encoder ? function(value2) {
    return encoder.call(this, value2, encode);
  } : encode;
  return this._pairs.map(function each(pair) {
    return _encode(pair[0]) + "=" + _encode(pair[1]);
  }, "").join("&");
};
var AxiosURLSearchParams_default = AxiosURLSearchParams;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/buildURL.js
function encode2(val) {
  return encodeURIComponent(val).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+");
}
function buildURL(url3, params, options) {
  if (!params) {
    return url3;
  }
  const _encode = options && options.encode || encode2;
  const _options2 = utils_default.isFunction(options) ? {
    serialize: options
  } : options;
  const serializeFn = _options2 && _options2.serialize;
  let serializedParams;
  if (serializeFn) {
    serializedParams = serializeFn(params, _options2);
  } else {
    serializedParams = utils_default.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams_default(params, _options2).toString(_encode);
  }
  if (serializedParams) {
    const hashmarkIndex = url3.indexOf("#");
    if (hashmarkIndex !== -1) {
      url3 = url3.slice(0, hashmarkIndex);
    }
    url3 += (url3.indexOf("?") === -1 ? "?" : "&") + serializedParams;
  }
  return url3;
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/core/InterceptorManager.js
var InterceptorManager = class {
  constructor() {
    this.handlers = [];
  }
  /**
   * Add a new interceptor to the stack
   *
   * @param {Function} fulfilled The function to handle `then` for a `Promise`
   * @param {Function} rejected The function to handle `reject` for a `Promise`
   * @param {Object} options The options for the interceptor, synchronous and runWhen
   *
   * @return {Number} An ID used to remove interceptor later
   */
  use(fulfilled, rejected, options) {
    this.handlers.push({
      fulfilled,
      rejected,
      synchronous: options ? options.synchronous : false,
      runWhen: options ? options.runWhen : null
    });
    return this.handlers.length - 1;
  }
  /**
   * Remove an interceptor from the stack
   *
   * @param {Number} id The ID that was returned by `use`
   *
   * @returns {void}
   */
  eject(id) {
    if (this.handlers[id]) {
      this.handlers[id] = null;
    }
  }
  /**
   * Clear all interceptors from the stack
   *
   * @returns {void}
   */
  clear() {
    if (this.handlers) {
      this.handlers = [];
    }
  }
  /**
   * Iterate over all the registered interceptors
   *
   * This method is particularly useful for skipping over any
   * interceptors that may have become `null` calling `eject`.
   *
   * @param {Function} fn The function to call for each interceptor
   *
   * @returns {void}
   */
  forEach(fn) {
    utils_default.forEach(this.handlers, function forEachHandler(h4) {
      if (h4 !== null) {
        fn(h4);
      }
    });
  }
};
var InterceptorManager_default = InterceptorManager;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/defaults/transitional.js
var transitional_default = {
  silentJSONParsing: true,
  forcedJSONParsing: true,
  clarifyTimeoutError: false,
  legacyInterceptorReqResOrdering: true
};

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/platform/node/index.js
import crypto3 from "crypto";

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/platform/node/classes/URLSearchParams.js
import url from "url";
var URLSearchParams_default = url.URLSearchParams;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/platform/node/index.js
var ALPHA = "abcdefghijklmnopqrstuvwxyz";
var DIGIT = "0123456789";
var ALPHABET = {
  DIGIT,
  ALPHA,
  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
};
var generateString = (size = 16, alphabet2 = ALPHABET.ALPHA_DIGIT) => {
  let str = "";
  const { length: length2 } = alphabet2;
  const randomValues = new Uint32Array(size);
  crypto3.randomFillSync(randomValues);
  for (let i5 = 0; i5 < size; i5++) {
    str += alphabet2[randomValues[i5] % length2];
  }
  return str;
};
var node_default = {
  isNode: true,
  classes: {
    URLSearchParams: URLSearchParams_default,
    FormData: FormData_default,
    Blob: typeof Blob !== "undefined" && Blob || null
  },
  ALPHABET,
  generateString,
  protocols: ["http", "https", "file", "data"]
};

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/platform/common/utils.js
var utils_exports = {};
__export(utils_exports, {
  hasBrowserEnv: () => hasBrowserEnv,
  hasStandardBrowserEnv: () => hasStandardBrowserEnv,
  hasStandardBrowserWebWorkerEnv: () => hasStandardBrowserWebWorkerEnv,
  navigator: () => _navigator,
  origin: () => origin
});
var hasBrowserEnv = typeof window !== "undefined" && typeof document !== "undefined";
var _navigator = typeof navigator === "object" && navigator || void 0;
var hasStandardBrowserEnv = hasBrowserEnv && (!_navigator || ["ReactNative", "NativeScript", "NS"].indexOf(_navigator.product) < 0);
var hasStandardBrowserWebWorkerEnv = (() => {
  return typeof WorkerGlobalScope !== "undefined" && // eslint-disable-next-line no-undef
  self instanceof WorkerGlobalScope && typeof self.importScripts === "function";
})();
var origin = hasBrowserEnv && window.location.href || "http://localhost";

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/platform/index.js
var platform_default = {
  ...utils_exports,
  ...node_default
};

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/toURLEncodedForm.js
function toURLEncodedForm(data2, options) {
  return toFormData_default(data2, new platform_default.classes.URLSearchParams(), {
    visitor: function(value2, key, path3, helpers) {
      if (platform_default.isNode && utils_default.isBuffer(value2)) {
        this.append(key, value2.toString("base64"));
        return false;
      }
      return helpers.defaultVisitor.apply(this, arguments);
    },
    ...options
  });
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/formDataToJSON.js
function parsePropPath(name) {
  return utils_default.matchAll(/\w+|\[(\w*)]/g, name).map((match) => {
    return match[0] === "[]" ? "" : match[1] || match[0];
  });
}
function arrayToObject(arr) {
  const obj = {};
  const keys2 = Object.keys(arr);
  let i5;
  const len = keys2.length;
  let key;
  for (i5 = 0; i5 < len; i5++) {
    key = keys2[i5];
    obj[key] = arr[key];
  }
  return obj;
}
function formDataToJSON(formData) {
  function buildPath(path3, value2, target, index2) {
    let name = path3[index2++];
    if (name === "__proto__") return true;
    const isNumericKey = Number.isFinite(+name);
    const isLast = index2 >= path3.length;
    name = !name && utils_default.isArray(target) ? target.length : name;
    if (isLast) {
      if (utils_default.hasOwnProp(target, name)) {
        target[name] = [target[name], value2];
      } else {
        target[name] = value2;
      }
      return !isNumericKey;
    }
    if (!target[name] || !utils_default.isObject(target[name])) {
      target[name] = [];
    }
    const result = buildPath(path3, value2, target[name], index2);
    if (result && utils_default.isArray(target[name])) {
      target[name] = arrayToObject(target[name]);
    }
    return !isNumericKey;
  }
  if (utils_default.isFormData(formData) && utils_default.isFunction(formData.entries)) {
    const obj = {};
    utils_default.forEachEntry(formData, (name, value2) => {
      buildPath(parsePropPath(name), value2, obj, 0);
    });
    return obj;
  }
  return null;
}
var formDataToJSON_default = formDataToJSON;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/defaults/index.js
function stringifySafely(rawValue, parser, encoder) {
  if (utils_default.isString(rawValue)) {
    try {
      (parser || JSON.parse)(rawValue);
      return utils_default.trim(rawValue);
    } catch (e4) {
      if (e4.name !== "SyntaxError") {
        throw e4;
      }
    }
  }
  return (encoder || JSON.stringify)(rawValue);
}
var defaults3 = {
  transitional: transitional_default,
  adapter: ["xhr", "http", "fetch"],
  transformRequest: [function transformRequest(data2, headers) {
    const contentType = headers.getContentType() || "";
    const hasJSONContentType = contentType.indexOf("application/json") > -1;
    const isObjectPayload = utils_default.isObject(data2);
    if (isObjectPayload && utils_default.isHTMLForm(data2)) {
      data2 = new FormData(data2);
    }
    const isFormData5 = utils_default.isFormData(data2);
    if (isFormData5) {
      return hasJSONContentType ? JSON.stringify(formDataToJSON_default(data2)) : data2;
    }
    if (utils_default.isArrayBuffer(data2) || utils_default.isBuffer(data2) || utils_default.isStream(data2) || utils_default.isFile(data2) || utils_default.isBlob(data2) || utils_default.isReadableStream(data2)) {
      return data2;
    }
    if (utils_default.isArrayBufferView(data2)) {
      return data2.buffer;
    }
    if (utils_default.isURLSearchParams(data2)) {
      headers.setContentType("application/x-www-form-urlencoded;charset=utf-8", false);
      return data2.toString();
    }
    let isFileList2;
    if (isObjectPayload) {
      if (contentType.indexOf("application/x-www-form-urlencoded") > -1) {
        return toURLEncodedForm(data2, this.formSerializer).toString();
      }
      if ((isFileList2 = utils_default.isFileList(data2)) || contentType.indexOf("multipart/form-data") > -1) {
        const _FormData = this.env && this.env.FormData;
        return toFormData_default(
          isFileList2 ? { "files[]": data2 } : data2,
          _FormData && new _FormData(),
          this.formSerializer
        );
      }
    }
    if (isObjectPayload || hasJSONContentType) {
      headers.setContentType("application/json", false);
      return stringifySafely(data2);
    }
    return data2;
  }],
  transformResponse: [function transformResponse(data2) {
    const transitional2 = this.transitional || defaults3.transitional;
    const forcedJSONParsing = transitional2 && transitional2.forcedJSONParsing;
    const JSONRequested = this.responseType === "json";
    if (utils_default.isResponse(data2) || utils_default.isReadableStream(data2)) {
      return data2;
    }
    if (data2 && utils_default.isString(data2) && (forcedJSONParsing && !this.responseType || JSONRequested)) {
      const silentJSONParsing = transitional2 && transitional2.silentJSONParsing;
      const strictJSONParsing = !silentJSONParsing && JSONRequested;
      try {
        return JSON.parse(data2, this.parseReviver);
      } catch (e4) {
        if (strictJSONParsing) {
          if (e4.name === "SyntaxError") {
            throw AxiosError_default.from(e4, AxiosError_default.ERR_BAD_RESPONSE, this, null, this.response);
          }
          throw e4;
        }
      }
    }
    return data2;
  }],
  /**
   * A timeout in milliseconds to abort a request. If set to 0 (default) a
   * timeout is not created.
   */
  timeout: 0,
  xsrfCookieName: "XSRF-TOKEN",
  xsrfHeaderName: "X-XSRF-TOKEN",
  maxContentLength: -1,
  maxBodyLength: -1,
  env: {
    FormData: platform_default.classes.FormData,
    Blob: platform_default.classes.Blob
  },
  validateStatus: function validateStatus(status) {
    return status >= 200 && status < 300;
  },
  headers: {
    common: {
      "Accept": "application/json, text/plain, */*",
      "Content-Type": void 0
    }
  }
};
utils_default.forEach(["delete", "get", "head", "post", "put", "patch"], (method) => {
  defaults3.headers[method] = {};
});
var defaults_default = defaults3;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/parseHeaders.js
var ignoreDuplicateOf = utils_default.toObjectSet([
  "age",
  "authorization",
  "content-length",
  "content-type",
  "etag",
  "expires",
  "from",
  "host",
  "if-modified-since",
  "if-unmodified-since",
  "last-modified",
  "location",
  "max-forwards",
  "proxy-authorization",
  "referer",
  "retry-after",
  "user-agent"
]);
var parseHeaders_default = (rawHeaders) => {
  const parsed = {};
  let key;
  let val;
  let i5;
  rawHeaders && rawHeaders.split("\n").forEach(function parser(line2) {
    i5 = line2.indexOf(":");
    key = line2.substring(0, i5).trim().toLowerCase();
    val = line2.substring(i5 + 1).trim();
    if (!key || parsed[key] && ignoreDuplicateOf[key]) {
      return;
    }
    if (key === "set-cookie") {
      if (parsed[key]) {
        parsed[key].push(val);
      } else {
        parsed[key] = [val];
      }
    } else {
      parsed[key] = parsed[key] ? parsed[key] + ", " + val : val;
    }
  });
  return parsed;
};

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/core/AxiosHeaders.js
var $internals = Symbol("internals");
function normalizeHeader(header) {
  return header && String(header).trim().toLowerCase();
}
function normalizeValue2(value2) {
  if (value2 === false || value2 == null) {
    return value2;
  }
  return utils_default.isArray(value2) ? value2.map(normalizeValue2) : String(value2);
}
function parseTokens(str) {
  const tokens = /* @__PURE__ */ Object.create(null);
  const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
  let match;
  while (match = tokensRE.exec(str)) {
    tokens[match[1]] = match[2];
  }
  return tokens;
}
var isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
function matchHeaderValue(context, value2, header, filter3, isHeaderNameFilter) {
  if (utils_default.isFunction(filter3)) {
    return filter3.call(this, value2, header);
  }
  if (isHeaderNameFilter) {
    value2 = header;
  }
  if (!utils_default.isString(value2)) return;
  if (utils_default.isString(filter3)) {
    return value2.indexOf(filter3) !== -1;
  }
  if (utils_default.isRegExp(filter3)) {
    return filter3.test(value2);
  }
}
function formatHeader(header) {
  return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {
    return char.toUpperCase() + str;
  });
}
function buildAccessors(obj, header) {
  const accessorName = utils_default.toCamelCase(" " + header);
  ["get", "set", "has"].forEach((methodName) => {
    Object.defineProperty(obj, methodName + accessorName, {
      value: function(arg1, arg2, arg3) {
        return this[methodName].call(this, header, arg1, arg2, arg3);
      },
      configurable: true
    });
  });
}
var AxiosHeaders = class {
  constructor(headers) {
    headers && this.set(headers);
  }
  set(header, valueOrRewrite, rewrite) {
    const self2 = this;
    function setHeader(_value, _header, _rewrite) {
      const lHeader = normalizeHeader(_header);
      if (!lHeader) {
        throw new Error("header name must be a non-empty string");
      }
      const key = utils_default.findKey(self2, lHeader);
      if (!key || self2[key] === void 0 || _rewrite === true || _rewrite === void 0 && self2[key] !== false) {
        self2[key || _header] = normalizeValue2(_value);
      }
    }
    const setHeaders = (headers, _rewrite) => utils_default.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
    if (utils_default.isPlainObject(header) || header instanceof this.constructor) {
      setHeaders(header, valueOrRewrite);
    } else if (utils_default.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
      setHeaders(parseHeaders_default(header), valueOrRewrite);
    } else if (utils_default.isObject(header) && utils_default.isIterable(header)) {
      let obj = {}, dest, key;
      for (const entry of header) {
        if (!utils_default.isArray(entry)) {
          throw TypeError("Object iterator must return a key-value pair");
        }
        obj[key = entry[0]] = (dest = obj[key]) ? utils_default.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]] : entry[1];
      }
      setHeaders(obj, valueOrRewrite);
    } else {
      header != null && setHeader(valueOrRewrite, header, rewrite);
    }
    return this;
  }
  get(header, parser) {
    header = normalizeHeader(header);
    if (header) {
      const key = utils_default.findKey(this, header);
      if (key) {
        const value2 = this[key];
        if (!parser) {
          return value2;
        }
        if (parser === true) {
          return parseTokens(value2);
        }
        if (utils_default.isFunction(parser)) {
          return parser.call(this, value2, key);
        }
        if (utils_default.isRegExp(parser)) {
          return parser.exec(value2);
        }
        throw new TypeError("parser must be boolean|regexp|function");
      }
    }
  }
  has(header, matcher) {
    header = normalizeHeader(header);
    if (header) {
      const key = utils_default.findKey(this, header);
      return !!(key && this[key] !== void 0 && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
    }
    return false;
  }
  delete(header, matcher) {
    const self2 = this;
    let deleted = false;
    function deleteHeader(_header) {
      _header = normalizeHeader(_header);
      if (_header) {
        const key = utils_default.findKey(self2, _header);
        if (key && (!matcher || matchHeaderValue(self2, self2[key], key, matcher))) {
          delete self2[key];
          deleted = true;
        }
      }
    }
    if (utils_default.isArray(header)) {
      header.forEach(deleteHeader);
    } else {
      deleteHeader(header);
    }
    return deleted;
  }
  clear(matcher) {
    const keys2 = Object.keys(this);
    let i5 = keys2.length;
    let deleted = false;
    while (i5--) {
      const key = keys2[i5];
      if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
        delete this[key];
        deleted = true;
      }
    }
    return deleted;
  }
  normalize(format) {
    const self2 = this;
    const headers = {};
    utils_default.forEach(this, (value2, header) => {
      const key = utils_default.findKey(headers, header);
      if (key) {
        self2[key] = normalizeValue2(value2);
        delete self2[header];
        return;
      }
      const normalized = format ? formatHeader(header) : String(header).trim();
      if (normalized !== header) {
        delete self2[header];
      }
      self2[normalized] = normalizeValue2(value2);
      headers[normalized] = true;
    });
    return this;
  }
  concat(...targets) {
    return this.constructor.concat(this, ...targets);
  }
  toJSON(asStrings) {
    const obj = /* @__PURE__ */ Object.create(null);
    utils_default.forEach(this, (value2, header) => {
      value2 != null && value2 !== false && (obj[header] = asStrings && utils_default.isArray(value2) ? value2.join(", ") : value2);
    });
    return obj;
  }
  [Symbol.iterator]() {
    return Object.entries(this.toJSON())[Symbol.iterator]();
  }
  toString() {
    return Object.entries(this.toJSON()).map(([header, value2]) => header + ": " + value2).join("\n");
  }
  getSetCookie() {
    return this.get("set-cookie") || [];
  }
  get [Symbol.toStringTag]() {
    return "AxiosHeaders";
  }
  static from(thing) {
    return thing instanceof this ? thing : new this(thing);
  }
  static concat(first, ...targets) {
    const computed = new this(first);
    targets.forEach((target) => computed.set(target));
    return computed;
  }
  static accessor(header) {
    const internals = this[$internals] = this[$internals] = {
      accessors: {}
    };
    const accessors = internals.accessors;
    const prototype2 = this.prototype;
    function defineAccessor(_header) {
      const lHeader = normalizeHeader(_header);
      if (!accessors[lHeader]) {
        buildAccessors(prototype2, _header);
        accessors[lHeader] = true;
      }
    }
    utils_default.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
    return this;
  }
};
AxiosHeaders.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent", "Authorization"]);
utils_default.reduceDescriptors(AxiosHeaders.prototype, ({ value: value2 }, key) => {
  let mapped = key[0].toUpperCase() + key.slice(1);
  return {
    get: () => value2,
    set(headerValue) {
      this[mapped] = headerValue;
    }
  };
});
utils_default.freezeMethods(AxiosHeaders);
var AxiosHeaders_default = AxiosHeaders;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/core/transformData.js
function transformData(fns, response) {
  const config = this || defaults_default;
  const context = response || config;
  const headers = AxiosHeaders_default.from(context.headers);
  let data2 = context.data;
  utils_default.forEach(fns, function transform(fn) {
    data2 = fn.call(config, data2, headers.normalize(), response ? response.status : void 0);
  });
  headers.normalize();
  return data2;
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/cancel/isCancel.js
function isCancel(value2) {
  return !!(value2 && value2.__CANCEL__);
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/cancel/CanceledError.js
var CanceledError = class extends AxiosError_default {
  /**
   * A `CanceledError` is an object that is thrown when an operation is canceled.
   *
   * @param {string=} message The message.
   * @param {Object=} config The config.
   * @param {Object=} request The request.
   *
   * @returns {CanceledError} The created error.
   */
  constructor(message, config, request) {
    super(message == null ? "canceled" : message, AxiosError_default.ERR_CANCELED, config, request);
    this.name = "CanceledError";
    this.__CANCEL__ = true;
  }
};
var CanceledError_default = CanceledError;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/core/settle.js
function settle(resolve4, reject, response) {
  const validateStatus2 = response.config.validateStatus;
  if (!response.status || !validateStatus2 || validateStatus2(response.status)) {
    resolve4(response);
  } else {
    reject(new AxiosError_default(
      "Request failed with status code " + response.status,
      [AxiosError_default.ERR_BAD_REQUEST, AxiosError_default.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
      response.config,
      response.request,
      response
    ));
  }
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/isAbsoluteURL.js
function isAbsoluteURL(url3) {
  if (typeof url3 !== "string") {
    return false;
  }
  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url3);
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/combineURLs.js
function combineURLs(baseURL, relativeURL) {
  return relativeURL ? baseURL.replace(/\/?\/$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL;
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/core/buildFullPath.js
function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
  let isRelativeUrl = !isAbsoluteURL(requestedURL);
  if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {
    return combineURLs(baseURL, requestedURL);
  }
  return requestedURL;
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/adapters/http.js
var import_proxy_from_env = __toESM(require_proxy_from_env(), 1);
var import_follow_redirects = __toESM(require_follow_redirects(), 1);
import http5 from "http";
import https4 from "https";
import http24 from "http2";
import util2 from "util";
import zlib3 from "zlib";

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/env/data.js
var VERSION = "1.13.5";

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/parseProtocol.js
function parseProtocol(url3) {
  const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url3);
  return match && match[1] || "";
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/fromDataURI.js
var DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;
function fromDataURI(uri, asBlob, options) {
  const _Blob = options && options.Blob || platform_default.classes.Blob;
  const protocol = parseProtocol(uri);
  if (asBlob === void 0 && _Blob) {
    asBlob = true;
  }
  if (protocol === "data") {
    uri = protocol.length ? uri.slice(protocol.length + 1) : uri;
    const match = DATA_URL_PATTERN.exec(uri);
    if (!match) {
      throw new AxiosError_default("Invalid URL", AxiosError_default.ERR_INVALID_URL);
    }
    const mime = match[1];
    const isBase64 = match[2];
    const body = match[3];
    const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? "base64" : "utf8");
    if (asBlob) {
      if (!_Blob) {
        throw new AxiosError_default("Blob is not supported", AxiosError_default.ERR_NOT_SUPPORT);
      }
      return new _Blob([buffer], { type: mime });
    }
    return buffer;
  }
  throw new AxiosError_default("Unsupported protocol " + protocol, AxiosError_default.ERR_NOT_SUPPORT);
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/adapters/http.js
import stream5 from "stream";

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/AxiosTransformStream.js
import stream3 from "stream";
var kInternals = Symbol("internals");
var AxiosTransformStream = class extends stream3.Transform {
  constructor(options) {
    options = utils_default.toFlatObject(options, {
      maxRate: 0,
      chunkSize: 64 * 1024,
      minChunkSize: 100,
      timeWindow: 500,
      ticksRate: 2,
      samplesCount: 15
    }, null, (prop, source) => {
      return !utils_default.isUndefined(source[prop]);
    });
    super({
      readableHighWaterMark: options.chunkSize
    });
    const internals = this[kInternals] = {
      timeWindow: options.timeWindow,
      chunkSize: options.chunkSize,
      maxRate: options.maxRate,
      minChunkSize: options.minChunkSize,
      bytesSeen: 0,
      isCaptured: false,
      notifiedBytesLoaded: 0,
      ts: Date.now(),
      bytes: 0,
      onReadCallback: null
    };
    this.on("newListener", (event) => {
      if (event === "progress") {
        if (!internals.isCaptured) {
          internals.isCaptured = true;
        }
      }
    });
  }
  _read(size) {
    const internals = this[kInternals];
    if (internals.onReadCallback) {
      internals.onReadCallback();
    }
    return super._read(size);
  }
  _transform(chunk3, encoding, callback) {
    const internals = this[kInternals];
    const maxRate = internals.maxRate;
    const readableHighWaterMark = this.readableHighWaterMark;
    const timeWindow = internals.timeWindow;
    const divider = 1e3 / timeWindow;
    const bytesThreshold = maxRate / divider;
    const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;
    const pushChunk = (_chunk, _callback) => {
      const bytes = Buffer.byteLength(_chunk);
      internals.bytesSeen += bytes;
      internals.bytes += bytes;
      internals.isCaptured && this.emit("progress", internals.bytesSeen);
      if (this.push(_chunk)) {
        process.nextTick(_callback);
      } else {
        internals.onReadCallback = () => {
          internals.onReadCallback = null;
          process.nextTick(_callback);
        };
      }
    };
    const transformChunk = (_chunk, _callback) => {
      const chunkSize = Buffer.byteLength(_chunk);
      let chunkRemainder = null;
      let maxChunkSize = readableHighWaterMark;
      let bytesLeft;
      let passed = 0;
      if (maxRate) {
        const now = Date.now();
        if (!internals.ts || (passed = now - internals.ts) >= timeWindow) {
          internals.ts = now;
          bytesLeft = bytesThreshold - internals.bytes;
          internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;
          passed = 0;
        }
        bytesLeft = bytesThreshold - internals.bytes;
      }
      if (maxRate) {
        if (bytesLeft <= 0) {
          return setTimeout(() => {
            _callback(null, _chunk);
          }, timeWindow - passed);
        }
        if (bytesLeft < maxChunkSize) {
          maxChunkSize = bytesLeft;
        }
      }
      if (maxChunkSize && chunkSize > maxChunkSize && chunkSize - maxChunkSize > minChunkSize) {
        chunkRemainder = _chunk.subarray(maxChunkSize);
        _chunk = _chunk.subarray(0, maxChunkSize);
      }
      pushChunk(_chunk, chunkRemainder ? () => {
        process.nextTick(_callback, null, chunkRemainder);
      } : _callback);
    };
    transformChunk(chunk3, function transformNextChunk(err2, _chunk) {
      if (err2) {
        return callback(err2);
      }
      if (_chunk) {
        transformChunk(_chunk, transformNextChunk);
      } else {
        callback(null);
      }
    });
  }
};
var AxiosTransformStream_default = AxiosTransformStream;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/adapters/http.js
import { EventEmitter as EventEmitter3 } from "events";

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/formDataToStream.js
import util from "util";
import { Readable as Readable2 } from "stream";

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/readBlob.js
var { asyncIterator } = Symbol;
var readBlob = async function* (blob) {
  if (blob.stream) {
    yield* blob.stream();
  } else if (blob.arrayBuffer) {
    yield await blob.arrayBuffer();
  } else if (blob[asyncIterator]) {
    yield* blob[asyncIterator]();
  } else {
    yield blob;
  }
};
var readBlob_default = readBlob;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/formDataToStream.js
var BOUNDARY_ALPHABET = platform_default.ALPHABET.ALPHA_DIGIT + "-_";
var textEncoder3 = typeof TextEncoder === "function" ? new TextEncoder() : new util.TextEncoder();
var CRLF = "\r\n";
var CRLF_BYTES = textEncoder3.encode(CRLF);
var CRLF_BYTES_COUNT = 2;
var FormDataPart = class {
  constructor(name, value2) {
    const { escapeName: escapeName2 } = this.constructor;
    const isStringValue = utils_default.isString(value2);
    let headers = `Content-Disposition: form-data; name="${escapeName2(name)}"${!isStringValue && value2.name ? `; filename="${escapeName2(value2.name)}"` : ""}${CRLF}`;
    if (isStringValue) {
      value2 = textEncoder3.encode(String(value2).replace(/\r?\n|\r\n?/g, CRLF));
    } else {
      headers += `Content-Type: ${value2.type || "application/octet-stream"}${CRLF}`;
    }
    this.headers = textEncoder3.encode(headers + CRLF);
    this.contentLength = isStringValue ? value2.byteLength : value2.size;
    this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;
    this.name = name;
    this.value = value2;
  }
  async *encode() {
    yield this.headers;
    const { value: value2 } = this;
    if (utils_default.isTypedArray(value2)) {
      yield value2;
    } else {
      yield* readBlob_default(value2);
    }
    yield CRLF_BYTES;
  }
  static escapeName(name) {
    return String(name).replace(/[\r\n"]/g, (match) => ({
      "\r": "%0D",
      "\n": "%0A",
      '"': "%22"
    })[match]);
  }
};
var formDataToStream = (form, headersHandler, options) => {
  const {
    tag = "form-data-boundary",
    size = 25,
    boundary = tag + "-" + platform_default.generateString(size, BOUNDARY_ALPHABET)
  } = options || {};
  if (!utils_default.isFormData(form)) {
    throw TypeError("FormData instance required");
  }
  if (boundary.length < 1 || boundary.length > 70) {
    throw Error("boundary must be 10-70 characters long");
  }
  const boundaryBytes = textEncoder3.encode("--" + boundary + CRLF);
  const footerBytes = textEncoder3.encode("--" + boundary + "--" + CRLF);
  let contentLength = footerBytes.byteLength;
  const parts = Array.from(form.entries()).map(([name, value2]) => {
    const part = new FormDataPart(name, value2);
    contentLength += part.size;
    return part;
  });
  contentLength += boundaryBytes.byteLength * parts.length;
  contentLength = utils_default.toFiniteNumber(contentLength);
  const computedHeaders = {
    "Content-Type": `multipart/form-data; boundary=${boundary}`
  };
  if (Number.isFinite(contentLength)) {
    computedHeaders["Content-Length"] = contentLength;
  }
  headersHandler && headersHandler(computedHeaders);
  return Readable2.from((async function* () {
    for (const part of parts) {
      yield boundaryBytes;
      yield* part.encode();
    }
    yield footerBytes;
  })());
};
var formDataToStream_default = formDataToStream;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js
import stream4 from "stream";
var ZlibHeaderTransformStream = class extends stream4.Transform {
  __transform(chunk3, encoding, callback) {
    this.push(chunk3);
    callback();
  }
  _transform(chunk3, encoding, callback) {
    if (chunk3.length !== 0) {
      this._transform = this.__transform;
      if (chunk3[0] !== 120) {
        const header = Buffer.alloc(2);
        header[0] = 120;
        header[1] = 156;
        this.push(header, encoding);
      }
    }
    this.__transform(chunk3, encoding, callback);
  }
};
var ZlibHeaderTransformStream_default = ZlibHeaderTransformStream;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/callbackify.js
var callbackify = (fn, reducer) => {
  return utils_default.isAsyncFn(fn) ? function(...args) {
    const cb = args.pop();
    fn.apply(this, args).then((value2) => {
      try {
        reducer ? cb(null, ...reducer(value2)) : cb(null, value2);
      } catch (err2) {
        cb(err2);
      }
    }, cb);
  } : fn;
};
var callbackify_default = callbackify;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/speedometer.js
function speedometer(samplesCount, min2) {
  samplesCount = samplesCount || 10;
  const bytes = new Array(samplesCount);
  const timestamps = new Array(samplesCount);
  let head = 0;
  let tail = 0;
  let firstSampleTS;
  min2 = min2 !== void 0 ? min2 : 1e3;
  return function push(chunkLength) {
    const now = Date.now();
    const startedAt = timestamps[tail];
    if (!firstSampleTS) {
      firstSampleTS = now;
    }
    bytes[head] = chunkLength;
    timestamps[head] = now;
    let i5 = tail;
    let bytesCount = 0;
    while (i5 !== head) {
      bytesCount += bytes[i5++];
      i5 = i5 % samplesCount;
    }
    head = (head + 1) % samplesCount;
    if (head === tail) {
      tail = (tail + 1) % samplesCount;
    }
    if (now - firstSampleTS < min2) {
      return;
    }
    const passed = startedAt && now - startedAt;
    return passed ? Math.round(bytesCount * 1e3 / passed) : void 0;
  };
}
var speedometer_default = speedometer;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/throttle.js
function throttle(fn, freq) {
  let timestamp = 0;
  let threshold = 1e3 / freq;
  let lastArgs;
  let timer2;
  const invoke = (args, now = Date.now()) => {
    timestamp = now;
    lastArgs = null;
    if (timer2) {
      clearTimeout(timer2);
      timer2 = null;
    }
    fn(...args);
  };
  const throttled = (...args) => {
    const now = Date.now();
    const passed = now - timestamp;
    if (passed >= threshold) {
      invoke(args, now);
    } else {
      lastArgs = args;
      if (!timer2) {
        timer2 = setTimeout(() => {
          timer2 = null;
          invoke(lastArgs);
        }, threshold - passed);
      }
    }
  };
  const flush = () => lastArgs && invoke(lastArgs);
  return [throttled, flush];
}
var throttle_default = throttle;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/progressEventReducer.js
var progressEventReducer = (listener, isDownloadStream, freq = 3) => {
  let bytesNotified = 0;
  const _speedometer = speedometer_default(50, 250);
  return throttle_default((e4) => {
    const loaded = e4.loaded;
    const total = e4.lengthComputable ? e4.total : void 0;
    const progressBytes = loaded - bytesNotified;
    const rate = _speedometer(progressBytes);
    const inRange = loaded <= total;
    bytesNotified = loaded;
    const data2 = {
      loaded,
      total,
      progress: total ? loaded / total : void 0,
      bytes: progressBytes,
      rate: rate ? rate : void 0,
      estimated: rate && total && inRange ? (total - loaded) / rate : void 0,
      event: e4,
      lengthComputable: total != null,
      [isDownloadStream ? "download" : "upload"]: true
    };
    listener(data2);
  }, freq);
};
var progressEventDecorator = (total, throttled) => {
  const lengthComputable = total != null;
  return [(loaded) => throttled[0]({
    lengthComputable,
    total,
    loaded
  }), throttled[1]];
};
var asyncDecorator = (fn) => (...args) => utils_default.asap(() => fn(...args));

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js
function estimateDataURLDecodedBytes(url3) {
  if (!url3 || typeof url3 !== "string") return 0;
  if (!url3.startsWith("data:")) return 0;
  const comma = url3.indexOf(",");
  if (comma < 0) return 0;
  const meta = url3.slice(5, comma);
  const body = url3.slice(comma + 1);
  const isBase64 = /;base64/i.test(meta);
  if (isBase64) {
    let effectiveLen = body.length;
    const len = body.length;
    for (let i5 = 0; i5 < len; i5++) {
      if (body.charCodeAt(i5) === 37 && i5 + 2 < len) {
        const a5 = body.charCodeAt(i5 + 1);
        const b3 = body.charCodeAt(i5 + 2);
        const isHex = (a5 >= 48 && a5 <= 57 || a5 >= 65 && a5 <= 70 || a5 >= 97 && a5 <= 102) && (b3 >= 48 && b3 <= 57 || b3 >= 65 && b3 <= 70 || b3 >= 97 && b3 <= 102);
        if (isHex) {
          effectiveLen -= 2;
          i5 += 2;
        }
      }
    }
    let pad2 = 0;
    let idx = len - 1;
    const tailIsPct3D = (j) => j >= 2 && body.charCodeAt(j - 2) === 37 && // '%'
    body.charCodeAt(j - 1) === 51 && // '3'
    (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100);
    if (idx >= 0) {
      if (body.charCodeAt(idx) === 61) {
        pad2++;
        idx--;
      } else if (tailIsPct3D(idx)) {
        pad2++;
        idx -= 3;
      }
    }
    if (pad2 === 1 && idx >= 0) {
      if (body.charCodeAt(idx) === 61) {
        pad2++;
      } else if (tailIsPct3D(idx)) {
        pad2++;
      }
    }
    const groups = Math.floor(effectiveLen / 4);
    const bytes = groups * 3 - (pad2 || 0);
    return bytes > 0 ? bytes : 0;
  }
  return Buffer.byteLength(body, "utf8");
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/adapters/http.js
var zlibOptions = {
  flush: zlib3.constants.Z_SYNC_FLUSH,
  finishFlush: zlib3.constants.Z_SYNC_FLUSH
};
var brotliOptions = {
  flush: zlib3.constants.BROTLI_OPERATION_FLUSH,
  finishFlush: zlib3.constants.BROTLI_OPERATION_FLUSH
};
var isBrotliSupported = utils_default.isFunction(zlib3.createBrotliDecompress);
var { http: httpFollow, https: httpsFollow } = import_follow_redirects.default;
var isHttps = /https:?/;
var supportedProtocols2 = platform_default.protocols.map((protocol) => {
  return protocol + ":";
});
var flushOnFinish = (stream7, [throttled, flush]) => {
  stream7.on("end", flush).on("error", flush);
  return throttled;
};
var Http2Sessions = class {
  constructor() {
    this.sessions = /* @__PURE__ */ Object.create(null);
  }
  getSession(authority, options) {
    options = Object.assign({
      sessionTimeout: 1e3
    }, options);
    let authoritySessions = this.sessions[authority];
    if (authoritySessions) {
      let len = authoritySessions.length;
      for (let i5 = 0; i5 < len; i5++) {
        const [sessionHandle, sessionOptions] = authoritySessions[i5];
        if (!sessionHandle.destroyed && !sessionHandle.closed && util2.isDeepStrictEqual(sessionOptions, options)) {
          return sessionHandle;
        }
      }
    }
    const session = http24.connect(authority, options);
    let removed;
    const removeSession = () => {
      if (removed) {
        return;
      }
      removed = true;
      let entries3 = authoritySessions, len = entries3.length, i5 = len;
      while (i5--) {
        if (entries3[i5][0] === session) {
          if (len === 1) {
            delete this.sessions[authority];
          } else {
            entries3.splice(i5, 1);
          }
          return;
        }
      }
    };
    const originalRequestFn = session.request;
    const { sessionTimeout } = options;
    if (sessionTimeout != null) {
      let timer2;
      let streamsCount = 0;
      session.request = function() {
        const stream7 = originalRequestFn.apply(this, arguments);
        streamsCount++;
        if (timer2) {
          clearTimeout(timer2);
          timer2 = null;
        }
        stream7.once("close", () => {
          if (!--streamsCount) {
            timer2 = setTimeout(() => {
              timer2 = null;
              removeSession();
            }, sessionTimeout);
          }
        });
        return stream7;
      };
    }
    session.once("close", removeSession);
    let entry = [
      session,
      options
    ];
    authoritySessions ? authoritySessions.push(entry) : authoritySessions = this.sessions[authority] = [entry];
    return session;
  }
};
var http2Sessions = new Http2Sessions();
function dispatchBeforeRedirect(options, responseDetails) {
  if (options.beforeRedirects.proxy) {
    options.beforeRedirects.proxy(options);
  }
  if (options.beforeRedirects.config) {
    options.beforeRedirects.config(options, responseDetails);
  }
}
function setProxy(options, configProxy, location) {
  let proxy = configProxy;
  if (!proxy && proxy !== false) {
    const proxyUrl = import_proxy_from_env.default.getProxyForUrl(location);
    if (proxyUrl) {
      proxy = new URL(proxyUrl);
    }
  }
  if (proxy) {
    if (proxy.username) {
      proxy.auth = (proxy.username || "") + ":" + (proxy.password || "");
    }
    if (proxy.auth) {
      const validProxyAuth = Boolean(proxy.auth.username || proxy.auth.password);
      if (validProxyAuth) {
        proxy.auth = (proxy.auth.username || "") + ":" + (proxy.auth.password || "");
      } else if (typeof proxy.auth === "object") {
        throw new AxiosError_default("Invalid proxy authorization", AxiosError_default.ERR_BAD_OPTION, { proxy });
      }
      const base64 = Buffer.from(proxy.auth, "utf8").toString("base64");
      options.headers["Proxy-Authorization"] = "Basic " + base64;
    }
    options.headers.host = options.hostname + (options.port ? ":" + options.port : "");
    const proxyHost = proxy.hostname || proxy.host;
    options.hostname = proxyHost;
    options.host = proxyHost;
    options.port = proxy.port;
    options.path = location;
    if (proxy.protocol) {
      options.protocol = proxy.protocol.includes(":") ? proxy.protocol : `${proxy.protocol}:`;
    }
  }
  options.beforeRedirects.proxy = function beforeRedirect2(redirectOptions) {
    setProxy(redirectOptions, configProxy, redirectOptions.href);
  };
}
var isHttpAdapterSupported = typeof process !== "undefined" && utils_default.kindOf(process) === "process";
var wrapAsync = (asyncExecutor) => {
  return new Promise((resolve4, reject) => {
    let onDone;
    let isDone;
    const done = (value2, isRejected) => {
      if (isDone) return;
      isDone = true;
      onDone && onDone(value2, isRejected);
    };
    const _resolve = (value2) => {
      done(value2);
      resolve4(value2);
    };
    const _reject = (reason) => {
      done(reason, true);
      reject(reason);
    };
    asyncExecutor(_resolve, _reject, (onDoneHandler) => onDone = onDoneHandler).catch(_reject);
  });
};
var resolveFamily = ({ address, family }) => {
  if (!utils_default.isString(address)) {
    throw TypeError("address must be a string");
  }
  return {
    address,
    family: family || (address.indexOf(".") < 0 ? 6 : 4)
  };
};
var buildAddressEntry = (address, family) => resolveFamily(utils_default.isObject(address) ? address : { address, family });
var http2Transport = {
  request(options, cb) {
    const authority = options.protocol + "//" + options.hostname + ":" + (options.port || (options.protocol === "https:" ? 443 : 80));
    const { http2Options, headers } = options;
    const session = http2Sessions.getSession(authority, http2Options);
    const {
      HTTP2_HEADER_SCHEME,
      HTTP2_HEADER_METHOD,
      HTTP2_HEADER_PATH,
      HTTP2_HEADER_STATUS
    } = http24.constants;
    const http2Headers = {
      [HTTP2_HEADER_SCHEME]: options.protocol.replace(":", ""),
      [HTTP2_HEADER_METHOD]: options.method,
      [HTTP2_HEADER_PATH]: options.path
    };
    utils_default.forEach(headers, (header, name) => {
      name.charAt(0) !== ":" && (http2Headers[name] = header);
    });
    const req = session.request(http2Headers);
    req.once("response", (responseHeaders) => {
      const response = req;
      responseHeaders = Object.assign({}, responseHeaders);
      const status = responseHeaders[HTTP2_HEADER_STATUS];
      delete responseHeaders[HTTP2_HEADER_STATUS];
      response.headers = responseHeaders;
      response.statusCode = +status;
      cb(response);
    });
    return req;
  }
};
var http_default = isHttpAdapterSupported && function httpAdapter(config) {
  return wrapAsync(async function dispatchHttpRequest(resolve4, reject, onDone) {
    let { data: data2, lookup, family, httpVersion = 1, http2Options } = config;
    const { responseType, responseEncoding } = config;
    const method = config.method.toUpperCase();
    let isDone;
    let rejected = false;
    let req;
    httpVersion = +httpVersion;
    if (Number.isNaN(httpVersion)) {
      throw TypeError(`Invalid protocol version: '${config.httpVersion}' is not a number`);
    }
    if (httpVersion !== 1 && httpVersion !== 2) {
      throw TypeError(`Unsupported protocol version '${httpVersion}'`);
    }
    const isHttp2 = httpVersion === 2;
    if (lookup) {
      const _lookup = callbackify_default(lookup, (value2) => utils_default.isArray(value2) ? value2 : [value2]);
      lookup = (hostname, opt, cb) => {
        _lookup(hostname, opt, (err2, arg0, arg1) => {
          if (err2) {
            return cb(err2);
          }
          const addresses = utils_default.isArray(arg0) ? arg0.map((addr) => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];
          opt.all ? cb(err2, addresses) : cb(err2, addresses[0].address, addresses[0].family);
        });
      };
    }
    const abortEmitter = new EventEmitter3();
    function abort(reason) {
      try {
        abortEmitter.emit("abort", !reason || reason.type ? new CanceledError_default(null, config, req) : reason);
      } catch (err2) {
        console.warn("emit error", err2);
      }
    }
    abortEmitter.once("abort", reject);
    const onFinished = () => {
      if (config.cancelToken) {
        config.cancelToken.unsubscribe(abort);
      }
      if (config.signal) {
        config.signal.removeEventListener("abort", abort);
      }
      abortEmitter.removeAllListeners();
    };
    if (config.cancelToken || config.signal) {
      config.cancelToken && config.cancelToken.subscribe(abort);
      if (config.signal) {
        config.signal.aborted ? abort() : config.signal.addEventListener("abort", abort);
      }
    }
    onDone((response, isRejected) => {
      isDone = true;
      if (isRejected) {
        rejected = true;
        onFinished();
        return;
      }
      const { data: data3 } = response;
      if (data3 instanceof stream5.Readable || data3 instanceof stream5.Duplex) {
        const offListeners = stream5.finished(data3, () => {
          offListeners();
          onFinished();
        });
      } else {
        onFinished();
      }
    });
    const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
    const parsed = new URL(fullPath, platform_default.hasBrowserEnv ? platform_default.origin : void 0);
    const protocol = parsed.protocol || supportedProtocols2[0];
    if (protocol === "data:") {
      if (config.maxContentLength > -1) {
        const dataUrl = String(config.url || fullPath || "");
        const estimated = estimateDataURLDecodedBytes(dataUrl);
        if (estimated > config.maxContentLength) {
          return reject(new AxiosError_default(
            "maxContentLength size of " + config.maxContentLength + " exceeded",
            AxiosError_default.ERR_BAD_RESPONSE,
            config
          ));
        }
      }
      let convertedData;
      if (method !== "GET") {
        return settle(resolve4, reject, {
          status: 405,
          statusText: "method not allowed",
          headers: {},
          config
        });
      }
      try {
        convertedData = fromDataURI(config.url, responseType === "blob", {
          Blob: config.env && config.env.Blob
        });
      } catch (err2) {
        throw AxiosError_default.from(err2, AxiosError_default.ERR_BAD_REQUEST, config);
      }
      if (responseType === "text") {
        convertedData = convertedData.toString(responseEncoding);
        if (!responseEncoding || responseEncoding === "utf8") {
          convertedData = utils_default.stripBOM(convertedData);
        }
      } else if (responseType === "stream") {
        convertedData = stream5.Readable.from(convertedData);
      }
      return settle(resolve4, reject, {
        data: convertedData,
        status: 200,
        statusText: "OK",
        headers: new AxiosHeaders_default(),
        config
      });
    }
    if (supportedProtocols2.indexOf(protocol) === -1) {
      return reject(new AxiosError_default(
        "Unsupported protocol " + protocol,
        AxiosError_default.ERR_BAD_REQUEST,
        config
      ));
    }
    const headers = AxiosHeaders_default.from(config.headers).normalize();
    headers.set("User-Agent", "axios/" + VERSION, false);
    const { onUploadProgress, onDownloadProgress } = config;
    const maxRate = config.maxRate;
    let maxUploadRate = void 0;
    let maxDownloadRate = void 0;
    if (utils_default.isSpecCompliantForm(data2)) {
      const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i);
      data2 = formDataToStream_default(data2, (formHeaders) => {
        headers.set(formHeaders);
      }, {
        tag: `axios-${VERSION}-boundary`,
        boundary: userBoundary && userBoundary[1] || void 0
      });
    } else if (utils_default.isFormData(data2) && utils_default.isFunction(data2.getHeaders)) {
      headers.set(data2.getHeaders());
      if (!headers.hasContentLength()) {
        try {
          const knownLength = await util2.promisify(data2.getLength).call(data2);
          Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);
        } catch (e4) {
        }
      }
    } else if (utils_default.isBlob(data2) || utils_default.isFile(data2)) {
      data2.size && headers.setContentType(data2.type || "application/octet-stream");
      headers.setContentLength(data2.size || 0);
      data2 = stream5.Readable.from(readBlob_default(data2));
    } else if (data2 && !utils_default.isStream(data2)) {
      if (Buffer.isBuffer(data2)) {
      } else if (utils_default.isArrayBuffer(data2)) {
        data2 = Buffer.from(new Uint8Array(data2));
      } else if (utils_default.isString(data2)) {
        data2 = Buffer.from(data2, "utf-8");
      } else {
        return reject(new AxiosError_default(
          "Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",
          AxiosError_default.ERR_BAD_REQUEST,
          config
        ));
      }
      headers.setContentLength(data2.length, false);
      if (config.maxBodyLength > -1 && data2.length > config.maxBodyLength) {
        return reject(new AxiosError_default(
          "Request body larger than maxBodyLength limit",
          AxiosError_default.ERR_BAD_REQUEST,
          config
        ));
      }
    }
    const contentLength = utils_default.toFiniteNumber(headers.getContentLength());
    if (utils_default.isArray(maxRate)) {
      maxUploadRate = maxRate[0];
      maxDownloadRate = maxRate[1];
    } else {
      maxUploadRate = maxDownloadRate = maxRate;
    }
    if (data2 && (onUploadProgress || maxUploadRate)) {
      if (!utils_default.isStream(data2)) {
        data2 = stream5.Readable.from(data2, { objectMode: false });
      }
      data2 = stream5.pipeline([data2, new AxiosTransformStream_default({
        maxRate: utils_default.toFiniteNumber(maxUploadRate)
      })], utils_default.noop);
      onUploadProgress && data2.on("progress", flushOnFinish(
        data2,
        progressEventDecorator(
          contentLength,
          progressEventReducer(asyncDecorator(onUploadProgress), false, 3)
        )
      ));
    }
    let auth = void 0;
    if (config.auth) {
      const username = config.auth.username || "";
      const password = config.auth.password || "";
      auth = username + ":" + password;
    }
    if (!auth && parsed.username) {
      const urlUsername = parsed.username;
      const urlPassword = parsed.password;
      auth = urlUsername + ":" + urlPassword;
    }
    auth && headers.delete("authorization");
    let path3;
    try {
      path3 = buildURL(
        parsed.pathname + parsed.search,
        config.params,
        config.paramsSerializer
      ).replace(/^\?/, "");
    } catch (err2) {
      const customErr = new Error(err2.message);
      customErr.config = config;
      customErr.url = config.url;
      customErr.exists = true;
      return reject(customErr);
    }
    headers.set(
      "Accept-Encoding",
      "gzip, compress, deflate" + (isBrotliSupported ? ", br" : ""),
      false
    );
    const options = {
      path: path3,
      method,
      headers: headers.toJSON(),
      agents: { http: config.httpAgent, https: config.httpsAgent },
      auth,
      protocol,
      family,
      beforeRedirect: dispatchBeforeRedirect,
      beforeRedirects: {},
      http2Options
    };
    !utils_default.isUndefined(lookup) && (options.lookup = lookup);
    if (config.socketPath) {
      options.socketPath = config.socketPath;
    } else {
      options.hostname = parsed.hostname.startsWith("[") ? parsed.hostname.slice(1, -1) : parsed.hostname;
      options.port = parsed.port;
      setProxy(options, config.proxy, protocol + "//" + parsed.hostname + (parsed.port ? ":" + parsed.port : "") + options.path);
    }
    let transport;
    const isHttpsRequest = isHttps.test(options.protocol);
    options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;
    if (isHttp2) {
      transport = http2Transport;
    } else {
      if (config.transport) {
        transport = config.transport;
      } else if (config.maxRedirects === 0) {
        transport = isHttpsRequest ? https4 : http5;
      } else {
        if (config.maxRedirects) {
          options.maxRedirects = config.maxRedirects;
        }
        if (config.beforeRedirect) {
          options.beforeRedirects.config = config.beforeRedirect;
        }
        transport = isHttpsRequest ? httpsFollow : httpFollow;
      }
    }
    if (config.maxBodyLength > -1) {
      options.maxBodyLength = config.maxBodyLength;
    } else {
      options.maxBodyLength = Infinity;
    }
    if (config.insecureHTTPParser) {
      options.insecureHTTPParser = config.insecureHTTPParser;
    }
    req = transport.request(options, function handleResponse(res) {
      if (req.destroyed) return;
      const streams = [res];
      const responseLength = utils_default.toFiniteNumber(res.headers["content-length"]);
      if (onDownloadProgress || maxDownloadRate) {
        const transformStream = new AxiosTransformStream_default({
          maxRate: utils_default.toFiniteNumber(maxDownloadRate)
        });
        onDownloadProgress && transformStream.on("progress", flushOnFinish(
          transformStream,
          progressEventDecorator(
            responseLength,
            progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)
          )
        ));
        streams.push(transformStream);
      }
      let responseStream = res;
      const lastRequest = res.req || req;
      if (config.decompress !== false && res.headers["content-encoding"]) {
        if (method === "HEAD" || res.statusCode === 204) {
          delete res.headers["content-encoding"];
        }
        switch ((res.headers["content-encoding"] || "").toLowerCase()) {
          /*eslint default-case:0*/
          case "gzip":
          case "x-gzip":
          case "compress":
          case "x-compress":
            streams.push(zlib3.createUnzip(zlibOptions));
            delete res.headers["content-encoding"];
            break;
          case "deflate":
            streams.push(new ZlibHeaderTransformStream_default());
            streams.push(zlib3.createUnzip(zlibOptions));
            delete res.headers["content-encoding"];
            break;
          case "br":
            if (isBrotliSupported) {
              streams.push(zlib3.createBrotliDecompress(brotliOptions));
              delete res.headers["content-encoding"];
            }
        }
      }
      responseStream = streams.length > 1 ? stream5.pipeline(streams, utils_default.noop) : streams[0];
      const response = {
        status: res.statusCode,
        statusText: res.statusMessage,
        headers: new AxiosHeaders_default(res.headers),
        config,
        request: lastRequest
      };
      if (responseType === "stream") {
        response.data = responseStream;
        settle(resolve4, reject, response);
      } else {
        const responseBuffer = [];
        let totalResponseBytes = 0;
        responseStream.on("data", function handleStreamData(chunk3) {
          responseBuffer.push(chunk3);
          totalResponseBytes += chunk3.length;
          if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {
            rejected = true;
            responseStream.destroy();
            abort(new AxiosError_default(
              "maxContentLength size of " + config.maxContentLength + " exceeded",
              AxiosError_default.ERR_BAD_RESPONSE,
              config,
              lastRequest
            ));
          }
        });
        responseStream.on("aborted", function handlerStreamAborted() {
          if (rejected) {
            return;
          }
          const err2 = new AxiosError_default(
            "stream has been aborted",
            AxiosError_default.ERR_BAD_RESPONSE,
            config,
            lastRequest
          );
          responseStream.destroy(err2);
          reject(err2);
        });
        responseStream.on("error", function handleStreamError(err2) {
          if (req.destroyed) return;
          reject(AxiosError_default.from(err2, null, config, lastRequest));
        });
        responseStream.on("end", function handleStreamEnd2() {
          try {
            let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);
            if (responseType !== "arraybuffer") {
              responseData = responseData.toString(responseEncoding);
              if (!responseEncoding || responseEncoding === "utf8") {
                responseData = utils_default.stripBOM(responseData);
              }
            }
            response.data = responseData;
          } catch (err2) {
            return reject(AxiosError_default.from(err2, null, config, response.request, response));
          }
          settle(resolve4, reject, response);
        });
      }
      abortEmitter.once("abort", (err2) => {
        if (!responseStream.destroyed) {
          responseStream.emit("error", err2);
          responseStream.destroy();
        }
      });
    });
    abortEmitter.once("abort", (err2) => {
      if (req.close) {
        req.close();
      } else {
        req.destroy(err2);
      }
    });
    req.on("error", function handleRequestError(err2) {
      reject(AxiosError_default.from(err2, null, config, req));
    });
    req.on("socket", function handleRequestSocket(socket) {
      socket.setKeepAlive(true, 1e3 * 60);
    });
    if (config.timeout) {
      const timeout = parseInt(config.timeout, 10);
      if (Number.isNaN(timeout)) {
        abort(new AxiosError_default(
          "error trying to parse `config.timeout` to int",
          AxiosError_default.ERR_BAD_OPTION_VALUE,
          config,
          req
        ));
        return;
      }
      req.setTimeout(timeout, function handleRequestTimeout2() {
        if (isDone) return;
        let timeoutErrorMessage = config.timeout ? "timeout of " + config.timeout + "ms exceeded" : "timeout exceeded";
        const transitional2 = config.transitional || transitional_default;
        if (config.timeoutErrorMessage) {
          timeoutErrorMessage = config.timeoutErrorMessage;
        }
        abort(new AxiosError_default(
          timeoutErrorMessage,
          transitional2.clarifyTimeoutError ? AxiosError_default.ETIMEDOUT : AxiosError_default.ECONNABORTED,
          config,
          req
        ));
      });
    } else {
      req.setTimeout(0);
    }
    if (utils_default.isStream(data2)) {
      let ended = false;
      let errored = false;
      data2.on("end", () => {
        ended = true;
      });
      data2.once("error", (err2) => {
        errored = true;
        req.destroy(err2);
      });
      data2.on("close", () => {
        if (!ended && !errored) {
          abort(new CanceledError_default("Request stream has been aborted", config, req));
        }
      });
      data2.pipe(req);
    } else {
      data2 && req.write(data2);
      req.end();
    }
  });
};

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/isURLSameOrigin.js
var isURLSameOrigin_default = platform_default.hasStandardBrowserEnv ? /* @__PURE__ */ ((origin2, isMSIE) => (url3) => {
  url3 = new URL(url3, platform_default.origin);
  return origin2.protocol === url3.protocol && origin2.host === url3.host && (isMSIE || origin2.port === url3.port);
})(
  new URL(platform_default.origin),
  platform_default.navigator && /(msie|trident)/i.test(platform_default.navigator.userAgent)
) : () => true;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/cookies.js
var cookies_default = platform_default.hasStandardBrowserEnv ? (
  // Standard browser envs support document.cookie
  {
    write(name, value2, expires, path3, domain, secure, sameSite) {
      if (typeof document === "undefined") return;
      const cookie = [`${name}=${encodeURIComponent(value2)}`];
      if (utils_default.isNumber(expires)) {
        cookie.push(`expires=${new Date(expires).toUTCString()}`);
      }
      if (utils_default.isString(path3)) {
        cookie.push(`path=${path3}`);
      }
      if (utils_default.isString(domain)) {
        cookie.push(`domain=${domain}`);
      }
      if (secure === true) {
        cookie.push("secure");
      }
      if (utils_default.isString(sameSite)) {
        cookie.push(`SameSite=${sameSite}`);
      }
      document.cookie = cookie.join("; ");
    },
    read(name) {
      if (typeof document === "undefined") return null;
      const match = document.cookie.match(new RegExp("(?:^|; )" + name + "=([^;]*)"));
      return match ? decodeURIComponent(match[1]) : null;
    },
    remove(name) {
      this.write(name, "", Date.now() - 864e5, "/");
    }
  }
) : (
  // Non-standard browser env (web workers, react-native) lack needed support.
  {
    write() {
    },
    read() {
      return null;
    },
    remove() {
    }
  }
);

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/core/mergeConfig.js
var headersToObject = (thing) => thing instanceof AxiosHeaders_default ? { ...thing } : thing;
function mergeConfig(config1, config2) {
  config2 = config2 || {};
  const config = {};
  function getMergedValue(target, source, prop, caseless) {
    if (utils_default.isPlainObject(target) && utils_default.isPlainObject(source)) {
      return utils_default.merge.call({ caseless }, target, source);
    } else if (utils_default.isPlainObject(source)) {
      return utils_default.merge({}, source);
    } else if (utils_default.isArray(source)) {
      return source.slice();
    }
    return source;
  }
  function mergeDeepProperties(a5, b3, prop, caseless) {
    if (!utils_default.isUndefined(b3)) {
      return getMergedValue(a5, b3, prop, caseless);
    } else if (!utils_default.isUndefined(a5)) {
      return getMergedValue(void 0, a5, prop, caseless);
    }
  }
  function valueFromConfig2(a5, b3) {
    if (!utils_default.isUndefined(b3)) {
      return getMergedValue(void 0, b3);
    }
  }
  function defaultToConfig2(a5, b3) {
    if (!utils_default.isUndefined(b3)) {
      return getMergedValue(void 0, b3);
    } else if (!utils_default.isUndefined(a5)) {
      return getMergedValue(void 0, a5);
    }
  }
  function mergeDirectKeys(a5, b3, prop) {
    if (prop in config2) {
      return getMergedValue(a5, b3);
    } else if (prop in config1) {
      return getMergedValue(void 0, a5);
    }
  }
  const mergeMap = {
    url: valueFromConfig2,
    method: valueFromConfig2,
    data: valueFromConfig2,
    baseURL: defaultToConfig2,
    transformRequest: defaultToConfig2,
    transformResponse: defaultToConfig2,
    paramsSerializer: defaultToConfig2,
    timeout: defaultToConfig2,
    timeoutMessage: defaultToConfig2,
    withCredentials: defaultToConfig2,
    withXSRFToken: defaultToConfig2,
    adapter: defaultToConfig2,
    responseType: defaultToConfig2,
    xsrfCookieName: defaultToConfig2,
    xsrfHeaderName: defaultToConfig2,
    onUploadProgress: defaultToConfig2,
    onDownloadProgress: defaultToConfig2,
    decompress: defaultToConfig2,
    maxContentLength: defaultToConfig2,
    maxBodyLength: defaultToConfig2,
    beforeRedirect: defaultToConfig2,
    transport: defaultToConfig2,
    httpAgent: defaultToConfig2,
    httpsAgent: defaultToConfig2,
    cancelToken: defaultToConfig2,
    socketPath: defaultToConfig2,
    responseEncoding: defaultToConfig2,
    validateStatus: mergeDirectKeys,
    headers: (a5, b3, prop) => mergeDeepProperties(headersToObject(a5), headersToObject(b3), prop, true)
  };
  utils_default.forEach(
    Object.keys({ ...config1, ...config2 }),
    function computeConfigValue(prop) {
      if (prop === "__proto__" || prop === "constructor" || prop === "prototype")
        return;
      const merge3 = utils_default.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;
      const configValue = merge3(config1[prop], config2[prop], prop);
      utils_default.isUndefined(configValue) && merge3 !== mergeDirectKeys || (config[prop] = configValue);
    }
  );
  return config;
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/resolveConfig.js
var resolveConfig_default = (config) => {
  const newConfig = mergeConfig({}, config);
  let { data: data2, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
  newConfig.headers = headers = AxiosHeaders_default.from(headers);
  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);
  if (auth) {
    headers.set(
      "Authorization",
      "Basic " + btoa((auth.username || "") + ":" + (auth.password ? unescape(encodeURIComponent(auth.password)) : ""))
    );
  }
  if (utils_default.isFormData(data2)) {
    if (platform_default.hasStandardBrowserEnv || platform_default.hasStandardBrowserWebWorkerEnv) {
      headers.setContentType(void 0);
    } else if (utils_default.isFunction(data2.getHeaders)) {
      const formHeaders = data2.getHeaders();
      const allowedHeaders = ["content-type", "content-length"];
      Object.entries(formHeaders).forEach(([key, val]) => {
        if (allowedHeaders.includes(key.toLowerCase())) {
          headers.set(key, val);
        }
      });
    }
  }
  if (platform_default.hasStandardBrowserEnv) {
    withXSRFToken && utils_default.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));
    if (withXSRFToken || withXSRFToken !== false && isURLSameOrigin_default(newConfig.url)) {
      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies_default.read(xsrfCookieName);
      if (xsrfValue) {
        headers.set(xsrfHeaderName, xsrfValue);
      }
    }
  }
  return newConfig;
};

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/adapters/xhr.js
var isXHRAdapterSupported = typeof XMLHttpRequest !== "undefined";
var xhr_default = isXHRAdapterSupported && function(config) {
  return new Promise(function dispatchXhrRequest(resolve4, reject) {
    const _config = resolveConfig_default(config);
    let requestData = _config.data;
    const requestHeaders = AxiosHeaders_default.from(_config.headers).normalize();
    let { responseType, onUploadProgress, onDownloadProgress } = _config;
    let onCanceled;
    let uploadThrottled, downloadThrottled;
    let flushUpload, flushDownload;
    function done() {
      flushUpload && flushUpload();
      flushDownload && flushDownload();
      _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);
      _config.signal && _config.signal.removeEventListener("abort", onCanceled);
    }
    let request = new XMLHttpRequest();
    request.open(_config.method.toUpperCase(), _config.url, true);
    request.timeout = _config.timeout;
    function onloadend() {
      if (!request) {
        return;
      }
      const responseHeaders = AxiosHeaders_default.from(
        "getAllResponseHeaders" in request && request.getAllResponseHeaders()
      );
      const responseData = !responseType || responseType === "text" || responseType === "json" ? request.responseText : request.response;
      const response = {
        data: responseData,
        status: request.status,
        statusText: request.statusText,
        headers: responseHeaders,
        config,
        request
      };
      settle(function _resolve(value2) {
        resolve4(value2);
        done();
      }, function _reject(err2) {
        reject(err2);
        done();
      }, response);
      request = null;
    }
    if ("onloadend" in request) {
      request.onloadend = onloadend;
    } else {
      request.onreadystatechange = function handleLoad() {
        if (!request || request.readyState !== 4) {
          return;
        }
        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf("file:") === 0)) {
          return;
        }
        setTimeout(onloadend);
      };
    }
    request.onabort = function handleAbort() {
      if (!request) {
        return;
      }
      reject(new AxiosError_default("Request aborted", AxiosError_default.ECONNABORTED, config, request));
      request = null;
    };
    request.onerror = function handleError(event) {
      const msg = event && event.message ? event.message : "Network Error";
      const err2 = new AxiosError_default(msg, AxiosError_default.ERR_NETWORK, config, request);
      err2.event = event || null;
      reject(err2);
      request = null;
    };
    request.ontimeout = function handleTimeout() {
      let timeoutErrorMessage = _config.timeout ? "timeout of " + _config.timeout + "ms exceeded" : "timeout exceeded";
      const transitional2 = _config.transitional || transitional_default;
      if (_config.timeoutErrorMessage) {
        timeoutErrorMessage = _config.timeoutErrorMessage;
      }
      reject(new AxiosError_default(
        timeoutErrorMessage,
        transitional2.clarifyTimeoutError ? AxiosError_default.ETIMEDOUT : AxiosError_default.ECONNABORTED,
        config,
        request
      ));
      request = null;
    };
    requestData === void 0 && requestHeaders.setContentType(null);
    if ("setRequestHeader" in request) {
      utils_default.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
        request.setRequestHeader(key, val);
      });
    }
    if (!utils_default.isUndefined(_config.withCredentials)) {
      request.withCredentials = !!_config.withCredentials;
    }
    if (responseType && responseType !== "json") {
      request.responseType = _config.responseType;
    }
    if (onDownloadProgress) {
      [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);
      request.addEventListener("progress", downloadThrottled);
    }
    if (onUploadProgress && request.upload) {
      [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);
      request.upload.addEventListener("progress", uploadThrottled);
      request.upload.addEventListener("loadend", flushUpload);
    }
    if (_config.cancelToken || _config.signal) {
      onCanceled = (cancel) => {
        if (!request) {
          return;
        }
        reject(!cancel || cancel.type ? new CanceledError_default(null, config, request) : cancel);
        request.abort();
        request = null;
      };
      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);
      if (_config.signal) {
        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener("abort", onCanceled);
      }
    }
    const protocol = parseProtocol(_config.url);
    if (protocol && platform_default.protocols.indexOf(protocol) === -1) {
      reject(new AxiosError_default("Unsupported protocol " + protocol + ":", AxiosError_default.ERR_BAD_REQUEST, config));
      return;
    }
    request.send(requestData || null);
  });
};

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/composeSignals.js
var composeSignals = (signals, timeout) => {
  const { length: length2 } = signals = signals ? signals.filter(Boolean) : [];
  if (timeout || length2) {
    let controller = new AbortController();
    let aborted;
    const onabort = function(reason) {
      if (!aborted) {
        aborted = true;
        unsubscribe();
        const err2 = reason instanceof Error ? reason : this.reason;
        controller.abort(err2 instanceof AxiosError_default ? err2 : new CanceledError_default(err2 instanceof Error ? err2.message : err2));
      }
    };
    let timer2 = timeout && setTimeout(() => {
      timer2 = null;
      onabort(new AxiosError_default(`timeout of ${timeout}ms exceeded`, AxiosError_default.ETIMEDOUT));
    }, timeout);
    const unsubscribe = () => {
      if (signals) {
        timer2 && clearTimeout(timer2);
        timer2 = null;
        signals.forEach((signal2) => {
          signal2.unsubscribe ? signal2.unsubscribe(onabort) : signal2.removeEventListener("abort", onabort);
        });
        signals = null;
      }
    };
    signals.forEach((signal2) => signal2.addEventListener("abort", onabort));
    const { signal } = controller;
    signal.unsubscribe = () => utils_default.asap(unsubscribe);
    return signal;
  }
};
var composeSignals_default = composeSignals;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/trackStream.js
var streamChunk = function* (chunk3, chunkSize) {
  let len = chunk3.byteLength;
  if (!chunkSize || len < chunkSize) {
    yield chunk3;
    return;
  }
  let pos = 0;
  let end2;
  while (pos < len) {
    end2 = pos + chunkSize;
    yield chunk3.slice(pos, end2);
    pos = end2;
  }
};
var readBytes = async function* (iterable, chunkSize) {
  for await (const chunk3 of readStream2(iterable)) {
    yield* streamChunk(chunk3, chunkSize);
  }
};
var readStream2 = async function* (stream7) {
  if (stream7[Symbol.asyncIterator]) {
    yield* stream7;
    return;
  }
  const reader = stream7.getReader();
  try {
    for (; ; ) {
      const { done, value: value2 } = await reader.read();
      if (done) {
        break;
      }
      yield value2;
    }
  } finally {
    await reader.cancel();
  }
};
var trackStream = (stream7, chunkSize, onProgress, onFinish) => {
  const iterator2 = readBytes(stream7, chunkSize);
  let bytes = 0;
  let done;
  let _onFinish = (e4) => {
    if (!done) {
      done = true;
      onFinish && onFinish(e4);
    }
  };
  return new ReadableStream({
    async pull(controller) {
      try {
        const { done: done2, value: value2 } = await iterator2.next();
        if (done2) {
          _onFinish();
          controller.close();
          return;
        }
        let len = value2.byteLength;
        if (onProgress) {
          let loadedBytes = bytes += len;
          onProgress(loadedBytes);
        }
        controller.enqueue(new Uint8Array(value2));
      } catch (err2) {
        _onFinish(err2);
        throw err2;
      }
    },
    cancel(reason) {
      _onFinish(reason);
      return iterator2.return();
    }
  }, {
    highWaterMark: 2
  });
};

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/adapters/fetch.js
var DEFAULT_CHUNK_SIZE = 64 * 1024;
var { isFunction: isFunction4 } = utils_default;
var globalFetchAPI = (({ Request: Request3, Response: Response2 }) => ({
  Request: Request3,
  Response: Response2
}))(utils_default.global);
var {
  ReadableStream: ReadableStream3,
  TextEncoder: TextEncoder2
} = utils_default.global;
var test2 = (fn, ...args) => {
  try {
    return !!fn(...args);
  } catch (e4) {
    return false;
  }
};
var factory = (env) => {
  env = utils_default.merge.call({
    skipUndefined: true
  }, globalFetchAPI, env);
  const { fetch: envFetch, Request: Request3, Response: Response2 } = env;
  const isFetchSupported = envFetch ? isFunction4(envFetch) : typeof fetch === "function";
  const isRequestSupported = isFunction4(Request3);
  const isResponseSupported = isFunction4(Response2);
  if (!isFetchSupported) {
    return false;
  }
  const isReadableStreamSupported = isFetchSupported && isFunction4(ReadableStream3);
  const encodeText = isFetchSupported && (typeof TextEncoder2 === "function" ? /* @__PURE__ */ ((encoder) => (str) => encoder.encode(str))(new TextEncoder2()) : async (str) => new Uint8Array(await new Request3(str).arrayBuffer()));
  const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test2(() => {
    let duplexAccessed = false;
    const hasContentType = new Request3(platform_default.origin, {
      body: new ReadableStream3(),
      method: "POST",
      get duplex() {
        duplexAccessed = true;
        return "half";
      }
    }).headers.has("Content-Type");
    return duplexAccessed && !hasContentType;
  });
  const supportsResponseStream = isResponseSupported && isReadableStreamSupported && test2(() => utils_default.isReadableStream(new Response2("").body));
  const resolvers = {
    stream: supportsResponseStream && ((res) => res.body)
  };
  isFetchSupported && (() => {
    ["text", "arrayBuffer", "blob", "formData", "stream"].forEach((type) => {
      !resolvers[type] && (resolvers[type] = (res, config) => {
        let method = res && res[type];
        if (method) {
          return method.call(res);
        }
        throw new AxiosError_default(`Response type '${type}' is not supported`, AxiosError_default.ERR_NOT_SUPPORT, config);
      });
    });
  })();
  const getBodyLength = async (body) => {
    if (body == null) {
      return 0;
    }
    if (utils_default.isBlob(body)) {
      return body.size;
    }
    if (utils_default.isSpecCompliantForm(body)) {
      const _request = new Request3(platform_default.origin, {
        method: "POST",
        body
      });
      return (await _request.arrayBuffer()).byteLength;
    }
    if (utils_default.isArrayBufferView(body) || utils_default.isArrayBuffer(body)) {
      return body.byteLength;
    }
    if (utils_default.isURLSearchParams(body)) {
      body = body + "";
    }
    if (utils_default.isString(body)) {
      return (await encodeText(body)).byteLength;
    }
  };
  const resolveBodyLength = async (headers, body) => {
    const length2 = utils_default.toFiniteNumber(headers.getContentLength());
    return length2 == null ? getBodyLength(body) : length2;
  };
  return async (config) => {
    let {
      url: url3,
      method,
      data: data2,
      signal,
      cancelToken,
      timeout,
      onDownloadProgress,
      onUploadProgress,
      responseType,
      headers,
      withCredentials = "same-origin",
      fetchOptions
    } = resolveConfig_default(config);
    let _fetch = envFetch || fetch;
    responseType = responseType ? (responseType + "").toLowerCase() : "text";
    let composedSignal = composeSignals_default([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
    let request = null;
    const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
      composedSignal.unsubscribe();
    });
    let requestContentLength;
    try {
      if (onUploadProgress && supportsRequestStream && method !== "get" && method !== "head" && (requestContentLength = await resolveBodyLength(headers, data2)) !== 0) {
        let _request = new Request3(url3, {
          method: "POST",
          body: data2,
          duplex: "half"
        });
        let contentTypeHeader;
        if (utils_default.isFormData(data2) && (contentTypeHeader = _request.headers.get("content-type"))) {
          headers.setContentType(contentTypeHeader);
        }
        if (_request.body) {
          const [onProgress, flush] = progressEventDecorator(
            requestContentLength,
            progressEventReducer(asyncDecorator(onUploadProgress))
          );
          data2 = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
        }
      }
      if (!utils_default.isString(withCredentials)) {
        withCredentials = withCredentials ? "include" : "omit";
      }
      const isCredentialsSupported = isRequestSupported && "credentials" in Request3.prototype;
      const resolvedOptions = {
        ...fetchOptions,
        signal: composedSignal,
        method: method.toUpperCase(),
        headers: headers.normalize().toJSON(),
        body: data2,
        duplex: "half",
        credentials: isCredentialsSupported ? withCredentials : void 0
      };
      request = isRequestSupported && new Request3(url3, resolvedOptions);
      let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url3, resolvedOptions));
      const isStreamResponse = supportsResponseStream && (responseType === "stream" || responseType === "response");
      if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) {
        const options = {};
        ["status", "statusText", "headers"].forEach((prop) => {
          options[prop] = response[prop];
        });
        const responseContentLength = utils_default.toFiniteNumber(response.headers.get("content-length"));
        const [onProgress, flush] = onDownloadProgress && progressEventDecorator(
          responseContentLength,
          progressEventReducer(asyncDecorator(onDownloadProgress), true)
        ) || [];
        response = new Response2(
          trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
            flush && flush();
            unsubscribe && unsubscribe();
          }),
          options
        );
      }
      responseType = responseType || "text";
      let responseData = await resolvers[utils_default.findKey(resolvers, responseType) || "text"](response, config);
      !isStreamResponse && unsubscribe && unsubscribe();
      return await new Promise((resolve4, reject) => {
        settle(resolve4, reject, {
          data: responseData,
          headers: AxiosHeaders_default.from(response.headers),
          status: response.status,
          statusText: response.statusText,
          config,
          request
        });
      });
    } catch (err2) {
      unsubscribe && unsubscribe();
      if (err2 && err2.name === "TypeError" && /Load failed|fetch/i.test(err2.message)) {
        throw Object.assign(
          new AxiosError_default("Network Error", AxiosError_default.ERR_NETWORK, config, request, err2 && err2.response),
          {
            cause: err2.cause || err2
          }
        );
      }
      throw AxiosError_default.from(err2, err2 && err2.code, config, request, err2 && err2.response);
    }
  };
};
var seedCache = /* @__PURE__ */ new Map();
var getFetch = (config) => {
  let env = config && config.env || {};
  const { fetch: fetch2, Request: Request3, Response: Response2 } = env;
  const seeds = [
    Request3,
    Response2,
    fetch2
  ];
  let len = seeds.length, i5 = len, seed, target, map = seedCache;
  while (i5--) {
    seed = seeds[i5];
    target = map.get(seed);
    target === void 0 && map.set(seed, target = i5 ? /* @__PURE__ */ new Map() : factory(env));
    map = target;
  }
  return target;
};
var adapter = getFetch();

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/adapters/adapters.js
var knownAdapters = {
  http: http_default,
  xhr: xhr_default,
  fetch: {
    get: getFetch
  }
};
utils_default.forEach(knownAdapters, (fn, value2) => {
  if (fn) {
    try {
      Object.defineProperty(fn, "name", { value: value2 });
    } catch (e4) {
    }
    Object.defineProperty(fn, "adapterName", { value: value2 });
  }
});
var renderReason = (reason) => `- ${reason}`;
var isResolvedHandle = (adapter2) => utils_default.isFunction(adapter2) || adapter2 === null || adapter2 === false;
function getAdapter(adapters, config) {
  adapters = utils_default.isArray(adapters) ? adapters : [adapters];
  const { length: length2 } = adapters;
  let nameOrAdapter;
  let adapter2;
  const rejectedReasons = {};
  for (let i5 = 0; i5 < length2; i5++) {
    nameOrAdapter = adapters[i5];
    let id;
    adapter2 = nameOrAdapter;
    if (!isResolvedHandle(nameOrAdapter)) {
      adapter2 = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];
      if (adapter2 === void 0) {
        throw new AxiosError_default(`Unknown adapter '${id}'`);
      }
    }
    if (adapter2 && (utils_default.isFunction(adapter2) || (adapter2 = adapter2.get(config)))) {
      break;
    }
    rejectedReasons[id || "#" + i5] = adapter2;
  }
  if (!adapter2) {
    const reasons = Object.entries(rejectedReasons).map(
      ([id, state]) => `adapter ${id} ` + (state === false ? "is not supported by the environment" : "is not available in the build")
    );
    let s4 = length2 ? reasons.length > 1 ? "since :\n" + reasons.map(renderReason).join("\n") : " " + renderReason(reasons[0]) : "as no adapter specified";
    throw new AxiosError_default(
      `There is no suitable adapter to dispatch the request ` + s4,
      "ERR_NOT_SUPPORT"
    );
  }
  return adapter2;
}
var adapters_default = {
  /**
   * Resolve an adapter from a list of adapter names or functions.
   * @type {Function}
   */
  getAdapter,
  /**
   * Exposes all known adapters
   * @type {Object<string, Function|Object>}
   */
  adapters: knownAdapters
};

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/core/dispatchRequest.js
function throwIfCancellationRequested(config) {
  if (config.cancelToken) {
    config.cancelToken.throwIfRequested();
  }
  if (config.signal && config.signal.aborted) {
    throw new CanceledError_default(null, config);
  }
}
function dispatchRequest(config) {
  throwIfCancellationRequested(config);
  config.headers = AxiosHeaders_default.from(config.headers);
  config.data = transformData.call(
    config,
    config.transformRequest
  );
  if (["post", "put", "patch"].indexOf(config.method) !== -1) {
    config.headers.setContentType("application/x-www-form-urlencoded", false);
  }
  const adapter2 = adapters_default.getAdapter(config.adapter || defaults_default.adapter, config);
  return adapter2(config).then(function onAdapterResolution(response) {
    throwIfCancellationRequested(config);
    response.data = transformData.call(
      config,
      config.transformResponse,
      response
    );
    response.headers = AxiosHeaders_default.from(response.headers);
    return response;
  }, function onAdapterRejection(reason) {
    if (!isCancel(reason)) {
      throwIfCancellationRequested(config);
      if (reason && reason.response) {
        reason.response.data = transformData.call(
          config,
          config.transformResponse,
          reason.response
        );
        reason.response.headers = AxiosHeaders_default.from(reason.response.headers);
      }
    }
    return Promise.reject(reason);
  });
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/validator.js
var validators2 = {};
["object", "boolean", "number", "function", "string", "symbol"].forEach((type, i5) => {
  validators2[type] = function validator(thing) {
    return typeof thing === type || "a" + (i5 < 1 ? "n " : " ") + type;
  };
});
var deprecatedWarnings = {};
validators2.transitional = function transitional(validator, version2, message) {
  function formatMessage(opt, desc) {
    return "[Axios v" + VERSION + "] Transitional option '" + opt + "'" + desc + (message ? ". " + message : "");
  }
  return (value2, opt, opts2) => {
    if (validator === false) {
      throw new AxiosError_default(
        formatMessage(opt, " has been removed" + (version2 ? " in " + version2 : "")),
        AxiosError_default.ERR_DEPRECATED
      );
    }
    if (version2 && !deprecatedWarnings[opt]) {
      deprecatedWarnings[opt] = true;
      console.warn(
        formatMessage(
          opt,
          " has been deprecated since v" + version2 + " and will be removed in the near future"
        )
      );
    }
    return validator ? validator(value2, opt, opts2) : true;
  };
};
validators2.spelling = function spelling(correctSpelling) {
  return (value2, opt) => {
    console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
    return true;
  };
};
function assertOptions(options, schema, allowUnknown) {
  if (typeof options !== "object") {
    throw new AxiosError_default("options must be an object", AxiosError_default.ERR_BAD_OPTION_VALUE);
  }
  const keys2 = Object.keys(options);
  let i5 = keys2.length;
  while (i5-- > 0) {
    const opt = keys2[i5];
    const validator = schema[opt];
    if (validator) {
      const value2 = options[opt];
      const result = value2 === void 0 || validator(value2, opt, options);
      if (result !== true) {
        throw new AxiosError_default("option " + opt + " must be " + result, AxiosError_default.ERR_BAD_OPTION_VALUE);
      }
      continue;
    }
    if (allowUnknown !== true) {
      throw new AxiosError_default("Unknown option " + opt, AxiosError_default.ERR_BAD_OPTION);
    }
  }
}
var validator_default = {
  assertOptions,
  validators: validators2
};

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/core/Axios.js
var validators3 = validator_default.validators;
var Axios = class {
  constructor(instanceConfig) {
    this.defaults = instanceConfig || {};
    this.interceptors = {
      request: new InterceptorManager_default(),
      response: new InterceptorManager_default()
    };
  }
  /**
   * Dispatch a request
   *
   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
   * @param {?Object} config
   *
   * @returns {Promise} The Promise to be fulfilled
   */
  async request(configOrUrl, config) {
    try {
      return await this._request(configOrUrl, config);
    } catch (err2) {
      if (err2 instanceof Error) {
        let dummy = {};
        Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error();
        const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : "";
        try {
          if (!err2.stack) {
            err2.stack = stack;
          } else if (stack && !String(err2.stack).endsWith(stack.replace(/^.+\n.+\n/, ""))) {
            err2.stack += "\n" + stack;
          }
        } catch (e4) {
        }
      }
      throw err2;
    }
  }
  _request(configOrUrl, config) {
    if (typeof configOrUrl === "string") {
      config = config || {};
      config.url = configOrUrl;
    } else {
      config = configOrUrl || {};
    }
    config = mergeConfig(this.defaults, config);
    const { transitional: transitional2, paramsSerializer, headers } = config;
    if (transitional2 !== void 0) {
      validator_default.assertOptions(transitional2, {
        silentJSONParsing: validators3.transitional(validators3.boolean),
        forcedJSONParsing: validators3.transitional(validators3.boolean),
        clarifyTimeoutError: validators3.transitional(validators3.boolean),
        legacyInterceptorReqResOrdering: validators3.transitional(validators3.boolean)
      }, false);
    }
    if (paramsSerializer != null) {
      if (utils_default.isFunction(paramsSerializer)) {
        config.paramsSerializer = {
          serialize: paramsSerializer
        };
      } else {
        validator_default.assertOptions(paramsSerializer, {
          encode: validators3.function,
          serialize: validators3.function
        }, true);
      }
    }
    if (config.allowAbsoluteUrls !== void 0) {
    } else if (this.defaults.allowAbsoluteUrls !== void 0) {
      config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;
    } else {
      config.allowAbsoluteUrls = true;
    }
    validator_default.assertOptions(config, {
      baseUrl: validators3.spelling("baseURL"),
      withXsrfToken: validators3.spelling("withXSRFToken")
    }, true);
    config.method = (config.method || this.defaults.method || "get").toLowerCase();
    let contextHeaders = headers && utils_default.merge(
      headers.common,
      headers[config.method]
    );
    headers && utils_default.forEach(
      ["delete", "get", "head", "post", "put", "patch", "common"],
      (method) => {
        delete headers[method];
      }
    );
    config.headers = AxiosHeaders_default.concat(contextHeaders, headers);
    const requestInterceptorChain = [];
    let synchronousRequestInterceptors = true;
    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
      if (typeof interceptor.runWhen === "function" && interceptor.runWhen(config) === false) {
        return;
      }
      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
      const transitional3 = config.transitional || transitional_default;
      const legacyInterceptorReqResOrdering = transitional3 && transitional3.legacyInterceptorReqResOrdering;
      if (legacyInterceptorReqResOrdering) {
        requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
      } else {
        requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
      }
    });
    const responseInterceptorChain = [];
    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
    });
    let promise;
    let i5 = 0;
    let len;
    if (!synchronousRequestInterceptors) {
      const chain = [dispatchRequest.bind(this), void 0];
      chain.unshift(...requestInterceptorChain);
      chain.push(...responseInterceptorChain);
      len = chain.length;
      promise = Promise.resolve(config);
      while (i5 < len) {
        promise = promise.then(chain[i5++], chain[i5++]);
      }
      return promise;
    }
    len = requestInterceptorChain.length;
    let newConfig = config;
    while (i5 < len) {
      const onFulfilled = requestInterceptorChain[i5++];
      const onRejected = requestInterceptorChain[i5++];
      try {
        newConfig = onFulfilled(newConfig);
      } catch (error) {
        onRejected.call(this, error);
        break;
      }
    }
    try {
      promise = dispatchRequest.call(this, newConfig);
    } catch (error) {
      return Promise.reject(error);
    }
    i5 = 0;
    len = responseInterceptorChain.length;
    while (i5 < len) {
      promise = promise.then(responseInterceptorChain[i5++], responseInterceptorChain[i5++]);
    }
    return promise;
  }
  getUri(config) {
    config = mergeConfig(this.defaults, config);
    const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
    return buildURL(fullPath, config.params, config.paramsSerializer);
  }
};
utils_default.forEach(["delete", "get", "head", "options"], function forEachMethodNoData(method) {
  Axios.prototype[method] = function(url3, config) {
    return this.request(mergeConfig(config || {}, {
      method,
      url: url3,
      data: (config || {}).data
    }));
  };
});
utils_default.forEach(["post", "put", "patch"], function forEachMethodWithData(method) {
  function generateHTTPMethod(isForm) {
    return function httpMethod(url3, data2, config) {
      return this.request(mergeConfig(config || {}, {
        method,
        headers: isForm ? {
          "Content-Type": "multipart/form-data"
        } : {},
        url: url3,
        data: data2
      }));
    };
  }
  Axios.prototype[method] = generateHTTPMethod();
  Axios.prototype[method + "Form"] = generateHTTPMethod(true);
});
var Axios_default = Axios;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/cancel/CancelToken.js
var CancelToken = class _CancelToken {
  constructor(executor) {
    if (typeof executor !== "function") {
      throw new TypeError("executor must be a function.");
    }
    let resolvePromise;
    this.promise = new Promise(function promiseExecutor(resolve4) {
      resolvePromise = resolve4;
    });
    const token = this;
    this.promise.then((cancel) => {
      if (!token._listeners) return;
      let i5 = token._listeners.length;
      while (i5-- > 0) {
        token._listeners[i5](cancel);
      }
      token._listeners = null;
    });
    this.promise.then = (onfulfilled) => {
      let _resolve;
      const promise = new Promise((resolve4) => {
        token.subscribe(resolve4);
        _resolve = resolve4;
      }).then(onfulfilled);
      promise.cancel = function reject() {
        token.unsubscribe(_resolve);
      };
      return promise;
    };
    executor(function cancel(message, config, request) {
      if (token.reason) {
        return;
      }
      token.reason = new CanceledError_default(message, config, request);
      resolvePromise(token.reason);
    });
  }
  /**
   * Throws a `CanceledError` if cancellation has been requested.
   */
  throwIfRequested() {
    if (this.reason) {
      throw this.reason;
    }
  }
  /**
   * Subscribe to the cancel signal
   */
  subscribe(listener) {
    if (this.reason) {
      listener(this.reason);
      return;
    }
    if (this._listeners) {
      this._listeners.push(listener);
    } else {
      this._listeners = [listener];
    }
  }
  /**
   * Unsubscribe from the cancel signal
   */
  unsubscribe(listener) {
    if (!this._listeners) {
      return;
    }
    const index2 = this._listeners.indexOf(listener);
    if (index2 !== -1) {
      this._listeners.splice(index2, 1);
    }
  }
  toAbortSignal() {
    const controller = new AbortController();
    const abort = (err2) => {
      controller.abort(err2);
    };
    this.subscribe(abort);
    controller.signal.unsubscribe = () => this.unsubscribe(abort);
    return controller.signal;
  }
  /**
   * Returns an object that contains a new `CancelToken` and a function that, when called,
   * cancels the `CancelToken`.
   */
  static source() {
    let cancel;
    const token = new _CancelToken(function executor(c6) {
      cancel = c6;
    });
    return {
      token,
      cancel
    };
  }
};
var CancelToken_default = CancelToken;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/spread.js
function spread(callback) {
  return function wrap(arr) {
    return callback.apply(null, arr);
  };
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/isAxiosError.js
function isAxiosError(payload) {
  return utils_default.isObject(payload) && payload.isAxiosError === true;
}

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/helpers/HttpStatusCode.js
var HttpStatusCode = {
  Continue: 100,
  SwitchingProtocols: 101,
  Processing: 102,
  EarlyHints: 103,
  Ok: 200,
  Created: 201,
  Accepted: 202,
  NonAuthoritativeInformation: 203,
  NoContent: 204,
  ResetContent: 205,
  PartialContent: 206,
  MultiStatus: 207,
  AlreadyReported: 208,
  ImUsed: 226,
  MultipleChoices: 300,
  MovedPermanently: 301,
  Found: 302,
  SeeOther: 303,
  NotModified: 304,
  UseProxy: 305,
  Unused: 306,
  TemporaryRedirect: 307,
  PermanentRedirect: 308,
  BadRequest: 400,
  Unauthorized: 401,
  PaymentRequired: 402,
  Forbidden: 403,
  NotFound: 404,
  MethodNotAllowed: 405,
  NotAcceptable: 406,
  ProxyAuthenticationRequired: 407,
  RequestTimeout: 408,
  Conflict: 409,
  Gone: 410,
  LengthRequired: 411,
  PreconditionFailed: 412,
  PayloadTooLarge: 413,
  UriTooLong: 414,
  UnsupportedMediaType: 415,
  RangeNotSatisfiable: 416,
  ExpectationFailed: 417,
  ImATeapot: 418,
  MisdirectedRequest: 421,
  UnprocessableEntity: 422,
  Locked: 423,
  FailedDependency: 424,
  TooEarly: 425,
  UpgradeRequired: 426,
  PreconditionRequired: 428,
  TooManyRequests: 429,
  RequestHeaderFieldsTooLarge: 431,
  UnavailableForLegalReasons: 451,
  InternalServerError: 500,
  NotImplemented: 501,
  BadGateway: 502,
  ServiceUnavailable: 503,
  GatewayTimeout: 504,
  HttpVersionNotSupported: 505,
  VariantAlsoNegotiates: 506,
  InsufficientStorage: 507,
  LoopDetected: 508,
  NotExtended: 510,
  NetworkAuthenticationRequired: 511,
  WebServerIsDown: 521,
  ConnectionTimedOut: 522,
  OriginIsUnreachable: 523,
  TimeoutOccurred: 524,
  SslHandshakeFailed: 525,
  InvalidSslCertificate: 526
};
Object.entries(HttpStatusCode).forEach(([key, value2]) => {
  HttpStatusCode[value2] = key;
});
var HttpStatusCode_default = HttpStatusCode;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/lib/axios.js
function createInstance(defaultConfig) {
  const context = new Axios_default(defaultConfig);
  const instance = bind(Axios_default.prototype.request, context);
  utils_default.extend(instance, Axios_default.prototype, context, { allOwnKeys: true });
  utils_default.extend(instance, context, null, { allOwnKeys: true });
  instance.create = function create2(instanceConfig) {
    return createInstance(mergeConfig(defaultConfig, instanceConfig));
  };
  return instance;
}
var axios = createInstance(defaults_default);
axios.Axios = Axios_default;
axios.CanceledError = CanceledError_default;
axios.CancelToken = CancelToken_default;
axios.isCancel = isCancel;
axios.VERSION = VERSION;
axios.toFormData = toFormData_default;
axios.AxiosError = AxiosError_default;
axios.Cancel = axios.CanceledError;
axios.all = function all2(promises) {
  return Promise.all(promises);
};
axios.spread = spread;
axios.isAxiosError = isAxiosError;
axios.mergeConfig = mergeConfig;
axios.AxiosHeaders = AxiosHeaders_default;
axios.formToJSON = (thing) => formDataToJSON_default(utils_default.isHTMLForm(thing) ? new FormData(thing) : thing);
axios.getAdapter = adapters_default.getAdapter;
axios.HttpStatusCode = HttpStatusCode_default;
axios.default = axios;
var axios_default = axios;

// ../../node_modules/.pnpm/axios@1.13.5/node_modules/axios/index.js
var {
  Axios: Axios2,
  AxiosError: AxiosError2,
  CanceledError: CanceledError2,
  isCancel: isCancel2,
  CancelToken: CancelToken2,
  VERSION: VERSION2,
  all: all3,
  Cancel,
  isAxiosError: isAxiosError2,
  spread: spread2,
  toFormData: toFormData2,
  AxiosHeaders: AxiosHeaders2,
  HttpStatusCode: HttpStatusCode2,
  formToJSON,
  getAdapter: getAdapter2,
  mergeConfig: mergeConfig2
} = axios_default;

// src/utils/cache/FileCacheAdapter.ts
import * as fs2 from "node:fs/promises";
import * as path from "node:path";
import { existsSync } from "node:fs";
import * as crypto4 from "node:crypto";
var FileCacheAdapter = class {
  cacheDir;
  prefix;
  defaultTTL;
  constructor(config) {
    this.cacheDir = config?.cacheDir || path.resolve(process.cwd(), ".cache");
    this.prefix = config?.prefix || "";
    this.defaultTTL = config?.defaultTTL || 3600;
    if (!existsSync(this.cacheDir)) {
      fs2.mkdir(this.cacheDir, { recursive: true }).catch(() => {
      });
    }
  }
  sanitize(key) {
    const clean2 = key.replace(/[^a-z0-9]/gi, "_");
    if (clean2.length > 64) {
      return crypto4.createHash("md5").update(key).digest("hex");
    }
    return clean2;
  }
  getFilePath(key) {
    const safeKey = this.sanitize(`${this.prefix}${key}`).toLowerCase();
    return path.join(this.cacheDir, `${safeKey}.json`);
  }
  async get(key) {
    const filePath = this.getFilePath(key);
    try {
      if (!existsSync(filePath)) return null;
      const content = await fs2.readFile(filePath, "utf8");
      const data2 = JSON.parse(content);
      if (data2.expiry && Date.now() > data2.expiry) {
        await this.del(key);
        return null;
      }
      return data2.value;
    } catch (_error) {
      return null;
    }
  }
  async set(key, value2, ttl2) {
    const filePath = this.getFilePath(key);
    const effectiveTTL = ttl2 !== void 0 ? ttl2 : this.defaultTTL;
    const data2 = {
      value: value2,
      expiry: effectiveTTL > 0 ? Date.now() + effectiveTTL * 1e3 : null,
      updatedAt: (/* @__PURE__ */ new Date()).toISOString()
    };
    try {
      await fs2.writeFile(filePath, JSON.stringify(data2, null, 2), "utf8");
    } catch (_error) {
    }
  }
  async del(key) {
    const filePath = this.getFilePath(key);
    try {
      if (existsSync(filePath)) {
        await fs2.unlink(filePath);
      }
    } catch (_error) {
    }
  }
};

// src/services/AcquisitionService.ts
var AcquisitionService = class {
  cache;
  openRouterKey;
  constructor(openRouterKey) {
    this.openRouterKey = openRouterKey;
    this.cache = new FileCacheAdapter({ prefix: "acq_" });
  }
  async runFullSequence(url3, briefing, comments) {
    console.log(`\u{1F680} Starting Acquisition Sequence for: ${url3}`);
    const crawlData = await this.performCrawl(url3);
    const distilledContext = await this.distillCrawlContext(crawlData);
    const result = await this.getAiEstimation(briefing, distilledContext, comments || null);
    return result;
  }
  async performCrawl(url3) {
    const pages = [];
    const origin2 = new URL(url3).origin;
    const crawler = new CheerioCrawler({
      maxRequestsPerCrawl: 15,
      async requestHandler({ $, request, enqueueLinks: enqueueLinks2 }) {
        const title = $("title").text();
        const bodyText = $("body").text().replace(/\s+/g, " ").substring(0, 1e4);
        pages.push({
          url: request.url,
          content: `Title: ${title}
Text: ${bodyText}`
        });
        await enqueueLinks2({
          limit: 10,
          transformRequestFunction: (req) => {
            try {
              const reqUrl = new URL(req.url);
              if (reqUrl.origin !== origin2) return false;
              if (reqUrl.pathname.match(/\.(pdf|zip|jpg|png|svg|webp)$/i)) return false;
              return req;
            } catch (_error) {
              return false;
            }
          }
        });
      }
    });
    await crawler.run([url3]);
    return pages.map((p3) => `--- PAGE: ${p3.url} ---
${p3.content}`).join("\n\n");
  }
  async distillCrawlContext(rawCrawl) {
    const systemPrompt = `
You are a context distiller. Extract the "Company DNA" in 5-8 bullet points (GERMAN).
Focus on: Services, USPs, Target Audience, Tone.
`;
    const resp = await axios_default.post(
      "https://openrouter.ai/api/v1/chat/completions",
      {
        model: "google/gemini-3-flash-preview",
        messages: [
          { role: "system", content: systemPrompt },
          { role: "user", content: `RAW_CRAWL:
${rawCrawl.substring(0, 2e4)}` }
        ]
      },
      {
        headers: { Authorization: `Bearer ${this.openRouterKey}` }
      }
    );
    return resp.data.choices[0].message.content;
  }
  async getAiEstimation(briefing, context, comments) {
    const systemPrompt = `
You are a Digital Architect. Analyze the briefing and crawl context.
Generate a JSON state for a project estimation.
Language: GERMAN.
Format: ROOT LEVEL JSON matching FormState interface.

### PRICING RULES:
- Base: 5440 \u20AC
- Page: 600 \u20AC
- Feature: 1500 \u20AC
- Function/API: 800 \u20AC

Return ONLY the JSON.
`;
    const userPrompt = `BRIEFING: ${briefing}

CONTEXT: ${context}

COMMENTS: ${comments}`;
    const resp = await axios_default.post(
      "https://openrouter.ai/api/v1/chat/completions",
      {
        model: "google/gemini-3-flash-preview",
        messages: [
          { role: "system", content: systemPrompt },
          { role: "user", content: userPrompt }
        ],
        response_format: { type: "json_object" }
      },
      {
        headers: { Authorization: `Bearer ${this.openRouterKey}` }
      }
    );
    let state;
    try {
      state = JSON.parse(resp.data.choices[0].message.content);
    } catch (_error) {
      console.error("Failed to parse AI estimation JSON, returning initial state.");
      state = initialState;
    }
    const finalState = { ...initialState, ...state };
    return {
      state: finalState,
      usage: {
        prompt: resp.data.usage?.prompt_tokens || 0,
        completion: resp.data.usage?.completion_tokens || 0,
        cost: resp.data.usage?.cost || 0
      }
    };
  }
};

// ../../node_modules/.pnpm/@react-pdf+primitives@4.1.1/node_modules/@react-pdf/primitives/lib/index.js
var lib_exports3 = {};
__export(lib_exports3, {
  Canvas: () => Canvas,
  Checkbox: () => Checkbox,
  Circle: () => Circle,
  ClipPath: () => ClipPath,
  Defs: () => Defs,
  Document: () => Document2,
  Ellipse: () => Ellipse,
  FieldSet: () => FieldSet,
  G: () => G,
  Image: () => Image,
  Line: () => Line,
  LinearGradient: () => LinearGradient,
  Link: () => Link,
  List: () => List,
  Note: () => Note,
  Page: () => Page,
  Path: () => Path,
  Polygon: () => Polygon,
  Polyline: () => Polyline,
  RadialGradient: () => RadialGradient,
  Rect: () => Rect,
  Select: () => Select,
  Stop: () => Stop,
  Svg: () => Svg,
  Text: () => Text,
  TextInput: () => TextInput,
  TextInstance: () => TextInstance,
  Tspan: () => Tspan,
  View: () => View
});
var G = "G";
var Svg = "SVG";
var View = "VIEW";
var Text = "TEXT";
var Link = "LINK";
var Page = "PAGE";
var Note = "NOTE";
var Path = "PATH";
var Rect = "RECT";
var Line = "LINE";
var FieldSet = "FIELD_SET";
var TextInput = "TEXT_INPUT";
var Select = "SELECT";
var Checkbox = "CHECKBOX";
var List = "LIST";
var Stop = "STOP";
var Defs = "DEFS";
var Image = "IMAGE";
var Tspan = "TSPAN";
var Canvas = "CANVAS";
var Circle = "CIRCLE";
var Ellipse = "ELLIPSE";
var Polygon = "POLYGON";
var Document2 = "DOCUMENT";
var Polyline = "POLYLINE";
var ClipPath = "CLIP_PATH";
var TextInstance = "TEXT_INSTANCE";
var LinearGradient = "LINEAR_GRADIENT";
var RadialGradient = "RADIAL_GRADIENT";

// ../../node_modules/.pnpm/@react-pdf+renderer@4.3.2_react@19.2.4/node_modules/@react-pdf/renderer/lib/react-pdf.js
import fs6 from "fs";
import { Buffer as Buffer4 } from "buffer";

// ../../node_modules/.pnpm/@react-pdf+font@4.0.4/node_modules/@react-pdf/font/lib/index.js
var import_is_url = __toESM(require_is_url(), 1);

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/DecodeStream.js
var ENCODING_MAPPING = {
  utf16le: "utf-16le",
  ucs2: "utf-16le",
  utf16be: "utf-16be"
};
var DecodeStream = class {
  constructor(buffer) {
    this.buffer = buffer;
    this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
    this.pos = 0;
    this.length = this.buffer.length;
  }
  readString(length2, encoding = "ascii") {
    encoding = ENCODING_MAPPING[encoding] || encoding;
    let buf = this.readBuffer(length2);
    try {
      let decoder2 = new TextDecoder(encoding);
      return decoder2.decode(buf);
    } catch (err2) {
      return buf;
    }
  }
  readBuffer(length2) {
    return this.buffer.slice(this.pos, this.pos += length2);
  }
  readUInt24BE() {
    return (this.readUInt16BE() << 8) + this.readUInt8();
  }
  readUInt24LE() {
    return this.readUInt16LE() + (this.readUInt8() << 16);
  }
  readInt24BE() {
    return (this.readInt16BE() << 8) + this.readUInt8();
  }
  readInt24LE() {
    return this.readUInt16LE() + (this.readInt8() << 16);
  }
};
DecodeStream.TYPES = {
  UInt8: 1,
  UInt16: 2,
  UInt24: 3,
  UInt32: 4,
  Int8: 1,
  Int16: 2,
  Int24: 3,
  Int32: 4,
  Float: 4,
  Double: 8
};
for (let key of Object.getOwnPropertyNames(DataView.prototype)) {
  if (key.slice(0, 3) === "get") {
    let type = key.slice(3).replace("Ui", "UI");
    if (type === "Float32") {
      type = "Float";
    } else if (type === "Float64") {
      type = "Double";
    }
    let bytes = DecodeStream.TYPES[type];
    DecodeStream.prototype["read" + type + (bytes === 1 ? "" : "BE")] = function() {
      const ret = this.view[key](this.pos, false);
      this.pos += bytes;
      return ret;
    };
    if (bytes !== 1) {
      DecodeStream.prototype["read" + type + "LE"] = function() {
        const ret = this.view[key](this.pos, true);
        this.pos += bytes;
        return ret;
      };
    }
  }
}

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/EncodeStream.js
var textEncoder4 = new TextEncoder();
var isBigEndian = new Uint8Array(new Uint16Array([4660]).buffer)[0] == 18;
var EncodeStream = class {
  constructor(buffer) {
    this.buffer = buffer;
    this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);
    this.pos = 0;
  }
  writeBuffer(buffer) {
    this.buffer.set(buffer, this.pos);
    this.pos += buffer.length;
  }
  writeString(string, encoding = "ascii") {
    let buf;
    switch (encoding) {
      case "utf16le":
      case "utf16-le":
      case "ucs2":
        buf = stringToUtf16(string, isBigEndian);
        break;
      case "utf16be":
      case "utf16-be":
        buf = stringToUtf16(string, !isBigEndian);
        break;
      case "utf8":
        buf = textEncoder4.encode(string);
        break;
      case "ascii":
        buf = stringToAscii(string);
        break;
      default:
        throw new Error(`Unsupported encoding: ${encoding}`);
    }
    this.writeBuffer(buf);
  }
  writeUInt24BE(val) {
    this.buffer[this.pos++] = val >>> 16 & 255;
    this.buffer[this.pos++] = val >>> 8 & 255;
    this.buffer[this.pos++] = val & 255;
  }
  writeUInt24LE(val) {
    this.buffer[this.pos++] = val & 255;
    this.buffer[this.pos++] = val >>> 8 & 255;
    this.buffer[this.pos++] = val >>> 16 & 255;
  }
  writeInt24BE(val) {
    if (val >= 0) {
      this.writeUInt24BE(val);
    } else {
      this.writeUInt24BE(val + 16777215 + 1);
    }
  }
  writeInt24LE(val) {
    if (val >= 0) {
      this.writeUInt24LE(val);
    } else {
      this.writeUInt24LE(val + 16777215 + 1);
    }
  }
  fill(val, length2) {
    if (length2 < this.buffer.length) {
      this.buffer.fill(val, this.pos, this.pos + length2);
      this.pos += length2;
    } else {
      const buf = new Uint8Array(length2);
      buf.fill(val);
      this.writeBuffer(buf);
    }
  }
};
function stringToUtf16(string, swap) {
  let buf = new Uint16Array(string.length);
  for (let i5 = 0; i5 < string.length; i5++) {
    let code = string.charCodeAt(i5);
    if (swap) {
      code = code >> 8 | (code & 255) << 8;
    }
    buf[i5] = code;
  }
  return new Uint8Array(buf.buffer);
}
function stringToAscii(string) {
  let buf = new Uint8Array(string.length);
  for (let i5 = 0; i5 < string.length; i5++) {
    buf[i5] = string.charCodeAt(i5);
  }
  return buf;
}
for (let key of Object.getOwnPropertyNames(DataView.prototype)) {
  if (key.slice(0, 3) === "set") {
    let type = key.slice(3).replace("Ui", "UI");
    if (type === "Float32") {
      type = "Float";
    } else if (type === "Float64") {
      type = "Double";
    }
    let bytes = DecodeStream.TYPES[type];
    EncodeStream.prototype["write" + type + (bytes === 1 ? "" : "BE")] = function(value2) {
      this.view[key](this.pos, value2, false);
      this.pos += bytes;
    };
    if (bytes !== 1) {
      EncodeStream.prototype["write" + type + "LE"] = function(value2) {
        this.view[key](this.pos, value2, true);
        this.pos += bytes;
      };
    }
  }
}

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Base.js
var Base = class {
  fromBuffer(buffer) {
    let stream7 = new DecodeStream(buffer);
    return this.decode(stream7);
  }
  toBuffer(value2) {
    let size = this.size(value2);
    let buffer = new Uint8Array(size);
    let stream7 = new EncodeStream(buffer);
    this.encode(stream7, value2);
    return buffer;
  }
};

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Number.js
var NumberT = class extends Base {
  constructor(type, endian = "BE") {
    super();
    this.type = type;
    this.endian = endian;
    this.fn = this.type;
    if (this.type[this.type.length - 1] !== "8") {
      this.fn += this.endian;
    }
  }
  size() {
    return DecodeStream.TYPES[this.type];
  }
  decode(stream7) {
    return stream7[`read${this.fn}`]();
  }
  encode(stream7, val) {
    return stream7[`write${this.fn}`](val);
  }
};
var uint8 = new NumberT("UInt8");
var uint16be = new NumberT("UInt16", "BE");
var uint16 = uint16be;
var uint16le = new NumberT("UInt16", "LE");
var uint24be = new NumberT("UInt24", "BE");
var uint24 = uint24be;
var uint24le = new NumberT("UInt24", "LE");
var uint32be = new NumberT("UInt32", "BE");
var uint32 = uint32be;
var uint32le = new NumberT("UInt32", "LE");
var int8 = new NumberT("Int8");
var int16be = new NumberT("Int16", "BE");
var int16 = int16be;
var int16le = new NumberT("Int16", "LE");
var int24be = new NumberT("Int24", "BE");
var int24le = new NumberT("Int24", "LE");
var int32be = new NumberT("Int32", "BE");
var int32 = int32be;
var int32le = new NumberT("Int32", "LE");
var floatbe = new NumberT("Float", "BE");
var floatle = new NumberT("Float", "LE");
var doublebe = new NumberT("Double", "BE");
var doublele = new NumberT("Double", "LE");
var Fixed = class extends NumberT {
  constructor(size, endian, fracBits = size >> 1) {
    super(`Int${size}`, endian);
    this._point = 1 << fracBits;
  }
  decode(stream7) {
    return super.decode(stream7) / this._point;
  }
  encode(stream7, val) {
    return super.encode(stream7, val * this._point | 0);
  }
};
var fixed16be = new Fixed(16, "BE");
var fixed16 = fixed16be;
var fixed16le = new Fixed(16, "LE");
var fixed32be = new Fixed(32, "BE");
var fixed32 = fixed32be;
var fixed32le = new Fixed(32, "LE");

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/utils.js
function resolveLength(length2, stream7, parent) {
  let res;
  if (typeof length2 === "number") {
    res = length2;
  } else if (typeof length2 === "function") {
    res = length2.call(parent, parent);
  } else if (parent && typeof length2 === "string") {
    res = parent[length2];
  } else if (stream7 && length2 instanceof NumberT) {
    res = length2.decode(stream7);
  }
  if (isNaN(res)) {
    throw new Error("Not a fixed size");
  }
  return res;
}
var PropertyDescriptor = class {
  constructor(opts2 = {}) {
    this.enumerable = true;
    this.configurable = true;
    for (let key in opts2) {
      const val = opts2[key];
      this[key] = val;
    }
  }
};

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Array.js
var ArrayT = class extends Base {
  constructor(type, length2, lengthType = "count") {
    super();
    this.type = type;
    this.length = length2;
    this.lengthType = lengthType;
  }
  decode(stream7, parent) {
    let length2;
    const { pos } = stream7;
    const res = [];
    let ctx = parent;
    if (this.length != null) {
      length2 = resolveLength(this.length, stream7, parent);
    }
    if (this.length instanceof NumberT) {
      Object.defineProperties(res, {
        parent: { value: parent },
        _startOffset: { value: pos },
        _currentOffset: { value: 0, writable: true },
        _length: { value: length2 }
      });
      ctx = res;
    }
    if (length2 == null || this.lengthType === "bytes") {
      const target = length2 != null ? stream7.pos + length2 : (parent != null ? parent._length : void 0) ? parent._startOffset + parent._length : stream7.length;
      while (stream7.pos < target) {
        res.push(this.type.decode(stream7, ctx));
      }
    } else {
      for (let i5 = 0, end2 = length2; i5 < end2; i5++) {
        res.push(this.type.decode(stream7, ctx));
      }
    }
    return res;
  }
  size(array, ctx, includePointers = true) {
    if (!array) {
      return this.type.size(null, ctx) * resolveLength(this.length, null, ctx);
    }
    let size = 0;
    if (this.length instanceof NumberT) {
      size += this.length.size();
      ctx = { parent: ctx, pointerSize: 0 };
    }
    for (let item of array) {
      size += this.type.size(item, ctx);
    }
    if (ctx && includePointers && this.length instanceof NumberT) {
      size += ctx.pointerSize;
    }
    return size;
  }
  encode(stream7, array, parent) {
    let ctx = parent;
    if (this.length instanceof NumberT) {
      ctx = {
        pointers: [],
        startOffset: stream7.pos,
        parent
      };
      ctx.pointerOffset = stream7.pos + this.size(array, ctx, false);
      this.length.encode(stream7, array.length);
    }
    for (let item of array) {
      this.type.encode(stream7, item, ctx);
    }
    if (this.length instanceof NumberT) {
      let i5 = 0;
      while (i5 < ctx.pointers.length) {
        const ptr = ctx.pointers[i5++];
        ptr.type.encode(stream7, ptr.val, ptr.parent);
      }
    }
  }
};

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/LazyArray.js
var LazyArray = class extends ArrayT {
  decode(stream7, parent) {
    const { pos } = stream7;
    const length2 = resolveLength(this.length, stream7, parent);
    if (this.length instanceof NumberT) {
      parent = {
        parent,
        _startOffset: pos,
        _currentOffset: 0,
        _length: length2
      };
    }
    const res = new LazyArrayValue(this.type, length2, stream7, parent);
    stream7.pos += length2 * this.type.size(null, parent);
    return res;
  }
  size(val, ctx) {
    if (val instanceof LazyArrayValue) {
      val = val.toArray();
    }
    return super.size(val, ctx);
  }
  encode(stream7, val, ctx) {
    if (val instanceof LazyArrayValue) {
      val = val.toArray();
    }
    return super.encode(stream7, val, ctx);
  }
};
var LazyArrayValue = class {
  constructor(type, length2, stream7, ctx) {
    this.type = type;
    this.length = length2;
    this.stream = stream7;
    this.ctx = ctx;
    this.base = this.stream.pos;
    this.items = [];
  }
  get(index2) {
    if (index2 < 0 || index2 >= this.length) {
      return void 0;
    }
    if (this.items[index2] == null) {
      const { pos } = this.stream;
      this.stream.pos = this.base + this.type.size(null, this.ctx) * index2;
      this.items[index2] = this.type.decode(this.stream, this.ctx);
      this.stream.pos = pos;
    }
    return this.items[index2];
  }
  toArray() {
    const result = [];
    for (let i5 = 0, end2 = this.length; i5 < end2; i5++) {
      result.push(this.get(i5));
    }
    return result;
  }
};

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Bitfield.js
var Bitfield = class extends Base {
  constructor(type, flags = []) {
    super();
    this.type = type;
    this.flags = flags;
  }
  decode(stream7) {
    const val = this.type.decode(stream7);
    const res = {};
    for (let i5 = 0; i5 < this.flags.length; i5++) {
      const flag = this.flags[i5];
      if (flag != null) {
        res[flag] = !!(val & 1 << i5);
      }
    }
    return res;
  }
  size() {
    return this.type.size();
  }
  encode(stream7, keys2) {
    let val = 0;
    for (let i5 = 0; i5 < this.flags.length; i5++) {
      const flag = this.flags[i5];
      if (flag != null) {
        if (keys2[flag]) {
          val |= 1 << i5;
        }
      }
    }
    return this.type.encode(stream7, val);
  }
};

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Buffer.js
var BufferT = class extends Base {
  constructor(length2) {
    super();
    this.length = length2;
  }
  decode(stream7, parent) {
    const length2 = resolveLength(this.length, stream7, parent);
    return stream7.readBuffer(length2);
  }
  size(val, parent) {
    if (!val) {
      return resolveLength(this.length, null, parent);
    }
    let len = val.length;
    if (this.length instanceof NumberT) {
      len += this.length.size();
    }
    return len;
  }
  encode(stream7, buf, parent) {
    if (this.length instanceof NumberT) {
      this.length.encode(stream7, buf.length);
    }
    return stream7.writeBuffer(buf);
  }
};

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Optional.js
var Optional = class extends Base {
  constructor(type, condition = true) {
    super();
    this.type = type;
    this.condition = condition;
  }
  decode(stream7, parent) {
    let { condition } = this;
    if (typeof condition === "function") {
      condition = condition.call(parent, parent);
    }
    if (condition) {
      return this.type.decode(stream7, parent);
    }
  }
  size(val, parent) {
    let { condition } = this;
    if (typeof condition === "function") {
      condition = condition.call(parent, parent);
    }
    if (condition) {
      return this.type.size(val, parent);
    } else {
      return 0;
    }
  }
  encode(stream7, val, parent) {
    let { condition } = this;
    if (typeof condition === "function") {
      condition = condition.call(parent, parent);
    }
    if (condition) {
      return this.type.encode(stream7, val, parent);
    }
  }
};

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Reserved.js
var Reserved = class extends Base {
  constructor(type, count = 1) {
    super();
    this.type = type;
    this.count = count;
  }
  decode(stream7, parent) {
    stream7.pos += this.size(null, parent);
    return void 0;
  }
  size(data2, parent) {
    const count = resolveLength(this.count, null, parent);
    return this.type.size() * count;
  }
  encode(stream7, val, parent) {
    return stream7.fill(0, this.size(val, parent));
  }
};

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/String.js
var StringT = class extends Base {
  constructor(length2, encoding = "ascii") {
    super();
    this.length = length2;
    this.encoding = encoding;
  }
  decode(stream7, parent) {
    let length2, pos;
    let { encoding } = this;
    if (typeof encoding === "function") {
      encoding = encoding.call(parent, parent) || "ascii";
    }
    let width = encodingWidth(encoding);
    if (this.length != null) {
      length2 = resolveLength(this.length, stream7, parent);
    } else {
      let buffer;
      ({ buffer, length: length2, pos } = stream7);
      while (pos < length2 - width + 1 && (buffer[pos] !== 0 || width === 2 && buffer[pos + 1] !== 0)) {
        pos += width;
      }
      length2 = pos - stream7.pos;
    }
    const string = stream7.readString(length2, encoding);
    if (this.length == null && stream7.pos < stream7.length) {
      stream7.pos += width;
    }
    return string;
  }
  size(val, parent) {
    if (val === void 0 || val === null) {
      return resolveLength(this.length, null, parent);
    }
    let { encoding } = this;
    if (typeof encoding === "function") {
      encoding = encoding.call(parent != null ? parent.val : void 0, parent != null ? parent.val : void 0) || "ascii";
    }
    if (encoding === "utf16be") {
      encoding = "utf16le";
    }
    let size = byteLength2(val, encoding);
    if (this.length instanceof NumberT) {
      size += this.length.size();
    }
    if (this.length == null) {
      size += encodingWidth(encoding);
    }
    return size;
  }
  encode(stream7, val, parent) {
    let { encoding } = this;
    if (typeof encoding === "function") {
      encoding = encoding.call(parent != null ? parent.val : void 0, parent != null ? parent.val : void 0) || "ascii";
    }
    if (this.length instanceof NumberT) {
      this.length.encode(stream7, byteLength2(val, encoding));
    }
    stream7.writeString(val, encoding);
    if (this.length == null) {
      return encodingWidth(encoding) == 2 ? stream7.writeUInt16LE(0) : stream7.writeUInt8(0);
    }
  }
};
function encodingWidth(encoding) {
  switch (encoding) {
    case "ascii":
    case "utf8":
      return 1;
    case "utf16le":
    case "utf16-le":
    case "utf-16be":
    case "utf-16le":
    case "utf16be":
    case "utf16-be":
    case "ucs2":
      return 2;
    default:
      return 1;
  }
}
function byteLength2(string, encoding) {
  switch (encoding) {
    case "ascii":
      return string.length;
    case "utf8":
      let len = 0;
      for (let i5 = 0; i5 < string.length; i5++) {
        let c6 = string.charCodeAt(i5);
        if (c6 >= 55296 && c6 <= 56319 && i5 < string.length - 1) {
          let c22 = string.charCodeAt(++i5);
          if ((c22 & 64512) === 56320) {
            c6 = ((c6 & 1023) << 10) + (c22 & 1023) + 65536;
          } else {
            i5--;
          }
        }
        if ((c6 & 4294967168) === 0) {
          len++;
        } else if ((c6 & 4294965248) === 0) {
          len += 2;
        } else if ((c6 & 4294901760) === 0) {
          len += 3;
        } else if ((c6 & 4292870144) === 0) {
          len += 4;
        }
      }
      return len;
    case "utf16le":
    case "utf16-le":
    case "utf16be":
    case "utf16-be":
    case "ucs2":
      return string.length * 2;
    default:
      throw new Error("Unknown encoding " + encoding);
  }
}

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Struct.js
var Struct = class extends Base {
  constructor(fields = {}) {
    super();
    this.fields = fields;
  }
  decode(stream7, parent, length2 = 0) {
    const res = this._setup(stream7, parent, length2);
    this._parseFields(stream7, res, this.fields);
    if (this.process != null) {
      this.process.call(res, stream7);
    }
    return res;
  }
  _setup(stream7, parent, length2) {
    const res = {};
    Object.defineProperties(res, {
      parent: { value: parent },
      _startOffset: { value: stream7.pos },
      _currentOffset: { value: 0, writable: true },
      _length: { value: length2 }
    });
    return res;
  }
  _parseFields(stream7, res, fields) {
    for (let key in fields) {
      var val;
      const type = fields[key];
      if (typeof type === "function") {
        val = type.call(res, res);
      } else {
        val = type.decode(stream7, res);
      }
      if (val !== void 0) {
        if (val instanceof PropertyDescriptor) {
          Object.defineProperty(res, key, val);
        } else {
          res[key] = val;
        }
      }
      res._currentOffset = stream7.pos - res._startOffset;
    }
  }
  size(val, parent, includePointers = true) {
    if (val == null) {
      val = {};
    }
    const ctx = {
      parent,
      val,
      pointerSize: 0
    };
    if (this.preEncode != null) {
      this.preEncode.call(val);
    }
    let size = 0;
    for (let key in this.fields) {
      const type = this.fields[key];
      if (type.size != null) {
        size += type.size(val[key], ctx);
      }
    }
    if (includePointers) {
      size += ctx.pointerSize;
    }
    return size;
  }
  encode(stream7, val, parent) {
    let type;
    if (this.preEncode != null) {
      this.preEncode.call(val, stream7);
    }
    const ctx = {
      pointers: [],
      startOffset: stream7.pos,
      parent,
      val,
      pointerSize: 0
    };
    ctx.pointerOffset = stream7.pos + this.size(val, ctx, false);
    for (let key in this.fields) {
      type = this.fields[key];
      if (type.encode != null) {
        type.encode(stream7, val[key], ctx);
      }
    }
    let i5 = 0;
    while (i5 < ctx.pointers.length) {
      const ptr = ctx.pointers[i5++];
      ptr.type.encode(stream7, ptr.val, ptr.parent);
    }
  }
};

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/VersionedStruct.js
var getPath = (object, pathArray) => {
  return pathArray.reduce((prevObj, key) => prevObj && prevObj[key], object);
};
var VersionedStruct = class _VersionedStruct extends Struct {
  constructor(type, versions = {}) {
    super();
    this.type = type;
    this.versions = versions;
    if (typeof type === "string") {
      this.versionPath = type.split(".");
    }
  }
  decode(stream7, parent, length2 = 0) {
    const res = this._setup(stream7, parent, length2);
    if (typeof this.type === "string") {
      res.version = getPath(parent, this.versionPath);
    } else {
      res.version = this.type.decode(stream7);
    }
    if (this.versions.header) {
      this._parseFields(stream7, res, this.versions.header);
    }
    const fields = this.versions[res.version];
    if (fields == null) {
      throw new Error(`Unknown version ${res.version}`);
    }
    if (fields instanceof _VersionedStruct) {
      return fields.decode(stream7, parent);
    }
    this._parseFields(stream7, res, fields);
    if (this.process != null) {
      this.process.call(res, stream7);
    }
    return res;
  }
  size(val, parent, includePointers = true) {
    let key, type;
    if (!val) {
      throw new Error("Not a fixed size");
    }
    if (this.preEncode != null) {
      this.preEncode.call(val);
    }
    const ctx = {
      parent,
      val,
      pointerSize: 0
    };
    let size = 0;
    if (typeof this.type !== "string") {
      size += this.type.size(val.version, ctx);
    }
    if (this.versions.header) {
      for (key in this.versions.header) {
        type = this.versions.header[key];
        if (type.size != null) {
          size += type.size(val[key], ctx);
        }
      }
    }
    const fields = this.versions[val.version];
    if (fields == null) {
      throw new Error(`Unknown version ${val.version}`);
    }
    for (key in fields) {
      type = fields[key];
      if (type.size != null) {
        size += type.size(val[key], ctx);
      }
    }
    if (includePointers) {
      size += ctx.pointerSize;
    }
    return size;
  }
  encode(stream7, val, parent) {
    let key, type;
    if (this.preEncode != null) {
      this.preEncode.call(val, stream7);
    }
    const ctx = {
      pointers: [],
      startOffset: stream7.pos,
      parent,
      val,
      pointerSize: 0
    };
    ctx.pointerOffset = stream7.pos + this.size(val, ctx, false);
    if (typeof this.type !== "string") {
      this.type.encode(stream7, val.version);
    }
    if (this.versions.header) {
      for (key in this.versions.header) {
        type = this.versions.header[key];
        if (type.encode != null) {
          type.encode(stream7, val[key], ctx);
        }
      }
    }
    const fields = this.versions[val.version];
    for (key in fields) {
      type = fields[key];
      if (type.encode != null) {
        type.encode(stream7, val[key], ctx);
      }
    }
    let i5 = 0;
    while (i5 < ctx.pointers.length) {
      const ptr = ctx.pointers[i5++];
      ptr.type.encode(stream7, ptr.val, ptr.parent);
    }
  }
};

// ../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Pointer.js
var Pointer = class extends Base {
  constructor(offsetType, type, options = {}) {
    super();
    this.offsetType = offsetType;
    this.type = type;
    this.options = options;
    if (this.type === "void") {
      this.type = null;
    }
    if (this.options.type == null) {
      this.options.type = "local";
    }
    if (this.options.allowNull == null) {
      this.options.allowNull = true;
    }
    if (this.options.nullValue == null) {
      this.options.nullValue = 0;
    }
    if (this.options.lazy == null) {
      this.options.lazy = false;
    }
    if (this.options.relativeTo) {
      if (typeof this.options.relativeTo !== "function") {
        throw new Error("relativeTo option must be a function");
      }
      this.relativeToGetter = options.relativeTo;
    }
  }
  decode(stream7, ctx) {
    const offset2 = this.offsetType.decode(stream7, ctx);
    if (offset2 === this.options.nullValue && this.options.allowNull) {
      return null;
    }
    let relative;
    switch (this.options.type) {
      case "local":
        relative = ctx._startOffset;
        break;
      case "immediate":
        relative = stream7.pos - this.offsetType.size();
        break;
      case "parent":
        relative = ctx.parent._startOffset;
        break;
      default:
        var c6 = ctx;
        while (c6.parent) {
          c6 = c6.parent;
        }
        relative = c6._startOffset || 0;
    }
    if (this.options.relativeTo) {
      relative += this.relativeToGetter(ctx);
    }
    const ptr = offset2 + relative;
    if (this.type != null) {
      let val = null;
      const decodeValue = () => {
        if (val != null) {
          return val;
        }
        const { pos } = stream7;
        stream7.pos = ptr;
        val = this.type.decode(stream7, ctx);
        stream7.pos = pos;
        return val;
      };
      if (this.options.lazy) {
        return new PropertyDescriptor({
          get: decodeValue
        });
      }
      return decodeValue();
    } else {
      return ptr;
    }
  }
  size(val, ctx) {
    const parent = ctx;
    switch (this.options.type) {
      case "local":
      case "immediate":
        break;
      case "parent":
        ctx = ctx.parent;
        break;
      default:
        while (ctx.parent) {
          ctx = ctx.parent;
        }
    }
    let { type } = this;
    if (type == null) {
      if (!(val instanceof VoidPointer)) {
        throw new Error("Must be a VoidPointer");
      }
      ({ type } = val);
      val = val.value;
    }
    if (val && ctx) {
      let size = type.size(val, parent);
      ctx.pointerSize += size;
    }
    return this.offsetType.size();
  }
  encode(stream7, val, ctx) {
    let relative;
    const parent = ctx;
    if (val == null) {
      this.offsetType.encode(stream7, this.options.nullValue);
      return;
    }
    switch (this.options.type) {
      case "local":
        relative = ctx.startOffset;
        break;
      case "immediate":
        relative = stream7.pos + this.offsetType.size(val, parent);
        break;
      case "parent":
        ctx = ctx.parent;
        relative = ctx.startOffset;
        break;
      default:
        relative = 0;
        while (ctx.parent) {
          ctx = ctx.parent;
        }
    }
    if (this.options.relativeTo) {
      relative += this.relativeToGetter(parent.val);
    }
    this.offsetType.encode(stream7, ctx.pointerOffset - relative);
    let { type } = this;
    if (type == null) {
      if (!(val instanceof VoidPointer)) {
        throw new Error("Must be a VoidPointer");
      }
      ({ type } = val);
      val = val.value;
    }
    ctx.pointers.push({
      type,
      val,
      parent
    });
    return ctx.pointerOffset += type.size(val, parent);
  }
};
var VoidPointer = class {
  constructor(type, value2) {
    this.type = type;
    this.value = value2;
  }
};

// ../../node_modules/.pnpm/fontkit@2.0.4/node_modules/fontkit/dist/module.mjs
import $52ZIf$fs from "fs";

// ../../node_modules/.pnpm/@swc+helpers@0.5.18/node_modules/@swc/helpers/esm/_define_property.js
function _define_property(obj, key, value2) {
  if (key in obj) {
    Object.defineProperty(obj, key, { value: value2, enumerable: true, configurable: true, writable: true });
  } else obj[key] = value2;
  return obj;
}

// ../../node_modules/.pnpm/@swc+helpers@0.5.18/node_modules/@swc/helpers/esm/_ts_decorate.js
init_tslib_es6();

// ../../node_modules/.pnpm/fontkit@2.0.4/node_modules/fontkit/dist/module.mjs
var import_fast_deep_equal = __toESM(require_fast_deep_equal(), 1);

// ../../node_modules/.pnpm/unicode-properties@1.4.1/node_modules/unicode-properties/dist/module.mjs
var import_base64_js = __toESM(require_base64_js(), 1);
var import_unicode_trie = __toESM(require_unicode_trie(), 1);
function $parcel$interopDefault(a5) {
  return a5 && a5.__esModule ? a5.default : a5;
}
var $f4087201da764553$exports = {};
$f4087201da764553$exports = JSON.parse('{"categories":["Cc","Zs","Po","Sc","Ps","Pe","Sm","Pd","Nd","Lu","Sk","Pc","Ll","So","Lo","Pi","Cf","No","Pf","Lt","Lm","Mn","Me","Mc","Nl","Zl","Zp","Cs","Co"],"combiningClasses":["Not_Reordered","Above","Above_Right","Below","Attached_Above_Right","Attached_Below","Overlay","Iota_Subscript","Double_Below","Double_Above","Below_Right","Above_Left","CCC10","CCC11","CCC12","CCC13","CCC14","CCC15","CCC16","CCC17","CCC18","CCC19","CCC20","CCC21","CCC22","CCC23","CCC24","CCC25","CCC30","CCC31","CCC32","CCC27","CCC28","CCC29","CCC33","CCC34","CCC35","CCC36","Nukta","Virama","CCC84","CCC91","CCC103","CCC107","CCC118","CCC122","CCC129","CCC130","CCC132","Attached_Above","Below_Left","Left","Kana_Voicing","CCC26","Right"],"scripts":["Common","Latin","Bopomofo","Inherited","Greek","Coptic","Cyrillic","Armenian","Hebrew","Arabic","Syriac","Thaana","Nko","Samaritan","Mandaic","Devanagari","Bengali","Gurmukhi","Gujarati","Oriya","Tamil","Telugu","Kannada","Malayalam","Sinhala","Thai","Lao","Tibetan","Myanmar","Georgian","Hangul","Ethiopic","Cherokee","Canadian_Aboriginal","Ogham","Runic","Tagalog","Hanunoo","Buhid","Tagbanwa","Khmer","Mongolian","Limbu","Tai_Le","New_Tai_Lue","Buginese","Tai_Tham","Balinese","Sundanese","Batak","Lepcha","Ol_Chiki","Braille","Glagolitic","Tifinagh","Han","Hiragana","Katakana","Yi","Lisu","Vai","Bamum","Syloti_Nagri","Phags_Pa","Saurashtra","Kayah_Li","Rejang","Javanese","Cham","Tai_Viet","Meetei_Mayek","null","Linear_B","Lycian","Carian","Old_Italic","Gothic","Old_Permic","Ugaritic","Old_Persian","Deseret","Shavian","Osmanya","Osage","Elbasan","Caucasian_Albanian","Linear_A","Cypriot","Imperial_Aramaic","Palmyrene","Nabataean","Hatran","Phoenician","Lydian","Meroitic_Hieroglyphs","Meroitic_Cursive","Kharoshthi","Old_South_Arabian","Old_North_Arabian","Manichaean","Avestan","Inscriptional_Parthian","Inscriptional_Pahlavi","Psalter_Pahlavi","Old_Turkic","Old_Hungarian","Hanifi_Rohingya","Old_Sogdian","Sogdian","Elymaic","Brahmi","Kaithi","Sora_Sompeng","Chakma","Mahajani","Sharada","Khojki","Multani","Khudawadi","Grantha","Newa","Tirhuta","Siddham","Modi","Takri","Ahom","Dogra","Warang_Citi","Nandinagari","Zanabazar_Square","Soyombo","Pau_Cin_Hau","Bhaiksuki","Marchen","Masaram_Gondi","Gunjala_Gondi","Makasar","Cuneiform","Egyptian_Hieroglyphs","Anatolian_Hieroglyphs","Mro","Bassa_Vah","Pahawh_Hmong","Medefaidrin","Miao","Tangut","Nushu","Duployan","SignWriting","Nyiakeng_Puachue_Hmong","Wancho","Mende_Kikakui","Adlam"],"eaw":["N","Na","A","W","H","F"]}');
var $747425b437e121da$var$trie = new (0, import_unicode_trie.default)((0, import_base64_js.default).toByteArray("[encoded data, 12928 characters]"));
var $747425b437e121da$var$log2 = Math.log2 || ((n6) => Math.log(n6) / Math.LN2);
var $747425b437e121da$var$bits = (n6) => $747425b437e121da$var$log2(n6) + 1 | 0;
var $747425b437e121da$var$CATEGORY_BITS = $747425b437e121da$var$bits((0, /* @__PURE__ */ $parcel$interopDefault($f4087201da764553$exports)).categories.length - 1);
var $747425b437e121da$var$COMBINING_BITS = $747425b437e121da$var$bits((0, /* @__PURE__ */ $parcel$interopDefault($f4087201da764553$exports)).combiningClasses.length - 1);
var $747425b437e121da$var$SCRIPT_BITS = $747425b437e121da$var$bits((0, /* @__PURE__ */ $parcel$interopDefault($f4087201da764553$exports)).scripts.length - 1);
var $747425b437e121da$var$EAW_BITS = $747425b437e121da$var$bits((0, /* @__PURE__ */ $parcel$interopDefault($f4087201da764553$exports)).eaw.length - 1);
var $747425b437e121da$var$NUMBER_BITS = 10;
var $747425b437e121da$var$CATEGORY_SHIFT = $747425b437e121da$var$COMBINING_BITS + $747425b437e121da$var$SCRIPT_BITS + $747425b437e121da$var$EAW_BITS + $747425b437e121da$var$NUMBER_BITS;
var $747425b437e121da$var$COMBINING_SHIFT = $747425b437e121da$var$SCRIPT_BITS + $747425b437e121da$var$EAW_BITS + $747425b437e121da$var$NUMBER_BITS;
var $747425b437e121da$var$SCRIPT_SHIFT = $747425b437e121da$var$EAW_BITS + $747425b437e121da$var$NUMBER_BITS;
var $747425b437e121da$var$EAW_SHIFT = $747425b437e121da$var$NUMBER_BITS;
var $747425b437e121da$var$CATEGORY_MASK = (1 << $747425b437e121da$var$CATEGORY_BITS) - 1;
var $747425b437e121da$var$COMBINING_MASK = (1 << $747425b437e121da$var$COMBINING_BITS) - 1;
var $747425b437e121da$var$SCRIPT_MASK = (1 << $747425b437e121da$var$SCRIPT_BITS) - 1;
var $747425b437e121da$var$EAW_MASK = (1 << $747425b437e121da$var$EAW_BITS) - 1;
var $747425b437e121da$var$NUMBER_MASK = (1 << $747425b437e121da$var$NUMBER_BITS) - 1;
function $747425b437e121da$export$410364bbb673ddbc(codePoint) {
  const val = $747425b437e121da$var$trie.get(codePoint);
  return (0, /* @__PURE__ */ $parcel$interopDefault($f4087201da764553$exports)).categories[val >> $747425b437e121da$var$CATEGORY_SHIFT & $747425b437e121da$var$CATEGORY_MASK];
}
function $747425b437e121da$export$c03b919c6651ed55(codePoint) {
  const val = $747425b437e121da$var$trie.get(codePoint);
  return (0, /* @__PURE__ */ $parcel$interopDefault($f4087201da764553$exports)).combiningClasses[val >> $747425b437e121da$var$COMBINING_SHIFT & $747425b437e121da$var$COMBINING_MASK];
}
function $747425b437e121da$export$941569448d136665(codePoint) {
  const val = $747425b437e121da$var$trie.get(codePoint);
  return (0, /* @__PURE__ */ $parcel$interopDefault($f4087201da764553$exports)).scripts[val >> $747425b437e121da$var$SCRIPT_SHIFT & $747425b437e121da$var$SCRIPT_MASK];
}
function $747425b437e121da$export$92f6187db8ca6d26(codePoint) {
  const val = $747425b437e121da$var$trie.get(codePoint);
  return (0, /* @__PURE__ */ $parcel$interopDefault($f4087201da764553$exports)).eaw[val >> $747425b437e121da$var$EAW_SHIFT & $747425b437e121da$var$EAW_MASK];
}
function $747425b437e121da$export$7d1258ebb7625a0d(codePoint) {
  let val = $747425b437e121da$var$trie.get(codePoint);
  let num = val & $747425b437e121da$var$NUMBER_MASK;
  if (num === 0) return null;
  else if (num <= 50) return num - 1;
  else if (num < 480) {
    const numerator = (num >> 4) - 12;
    const denominator = (num & 15) + 1;
    return numerator / denominator;
  } else if (num < 768) {
    val = (num >> 5) - 14;
    let exp = (num & 31) + 2;
    while (exp > 0) {
      val *= 10;
      exp--;
    }
    return val;
  } else {
    val = (num >> 2) - 191;
    let exp = (num & 3) + 1;
    while (exp > 0) {
      val *= 60;
      exp--;
    }
    return val;
  }
}
function $747425b437e121da$export$52c8ea63abd07594(codePoint) {
  const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);
  return category === "Lu" || category === "Ll" || category === "Lt" || category === "Lm" || category === "Lo" || category === "Nl";
}
function $747425b437e121da$export$727d9dbc4fbb948f(codePoint) {
  return $747425b437e121da$export$410364bbb673ddbc(codePoint) === "Nd";
}
function $747425b437e121da$export$a5b49f4dc6a07d2c(codePoint) {
  const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);
  return category === "Pc" || category === "Pd" || category === "Pe" || category === "Pf" || category === "Pi" || category === "Po" || category === "Ps";
}
function $747425b437e121da$export$7b6804e8df61fcf5(codePoint) {
  return $747425b437e121da$export$410364bbb673ddbc(codePoint) === "Ll";
}
function $747425b437e121da$export$aebd617640818cda(codePoint) {
  return $747425b437e121da$export$410364bbb673ddbc(codePoint) === "Lu";
}
function $747425b437e121da$export$de8b4ee23b2cf823(codePoint) {
  return $747425b437e121da$export$410364bbb673ddbc(codePoint) === "Lt";
}
function $747425b437e121da$export$3c52dd84024ae72c(codePoint) {
  const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);
  return category === "Zs" || category === "Zl" || category === "Zp";
}
function $747425b437e121da$export$a11bdcffe109e74b(codePoint) {
  const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);
  return category === "Nd" || category === "No" || category === "Nl" || category === "Lu" || category === "Ll" || category === "Lt" || category === "Lm" || category === "Lo" || category === "Me" || category === "Mc";
}
function $747425b437e121da$export$e33ad6871e762338(codePoint) {
  const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);
  return category === "Mn" || category === "Me" || category === "Mc";
}
var $747425b437e121da$export$2e2bcd8739ae039 = {
  getCategory: $747425b437e121da$export$410364bbb673ddbc,
  getCombiningClass: $747425b437e121da$export$c03b919c6651ed55,
  getScript: $747425b437e121da$export$941569448d136665,
  getEastAsianWidth: $747425b437e121da$export$92f6187db8ca6d26,
  getNumericValue: $747425b437e121da$export$7d1258ebb7625a0d,
  isAlphabetic: $747425b437e121da$export$52c8ea63abd07594,
  isDigit: $747425b437e121da$export$727d9dbc4fbb948f,
  isPunctuation: $747425b437e121da$export$a5b49f4dc6a07d2c,
  isLowerCase: $747425b437e121da$export$7b6804e8df61fcf5,
  isUpperCase: $747425b437e121da$export$aebd617640818cda,
  isTitleCase: $747425b437e121da$export$de8b4ee23b2cf823,
  isWhiteSpace: $747425b437e121da$export$3c52dd84024ae72c,
  isBaseForm: $747425b437e121da$export$a11bdcffe109e74b,
  isMark: $747425b437e121da$export$e33ad6871e762338
};

// ../../node_modules/.pnpm/fontkit@2.0.4/node_modules/fontkit/dist/module.mjs
var import_unicode_trie2 = __toESM(require_unicode_trie(), 1);
var import_dfa = __toESM(require_dfa(), 1);
var import_clone = __toESM(require_clone4(), 1);
var import_tiny_inflate = __toESM(require_tiny_inflate(), 1);
var import_decompress = __toESM(require_decompress2(), 1);
function $parcel$export(e4, n6, v3, s4) {
  Object.defineProperty(e4, n6, { get: v3, set: s4, enumerable: true, configurable: true });
}
function $parcel$interopDefault2(a5) {
  return a5 && a5.__esModule ? a5.default : a5;
}
var $d636bc798e7178db$exports = {};
$parcel$export($d636bc798e7178db$exports, "logErrors", () => $d636bc798e7178db$export$bd5c5d8b8dcafd78);
$parcel$export($d636bc798e7178db$exports, "registerFormat", () => $d636bc798e7178db$export$36b2f24e97d43be);
$parcel$export($d636bc798e7178db$exports, "create", () => $d636bc798e7178db$export$185802fd694ee1f5);
$parcel$export($d636bc798e7178db$exports, "defaultLanguage", () => $d636bc798e7178db$export$42940898df819940);
$parcel$export($d636bc798e7178db$exports, "setDefaultLanguage", () => $d636bc798e7178db$export$5157e7780d44cc36);
var $d636bc798e7178db$export$bd5c5d8b8dcafd78 = false;
var $d636bc798e7178db$var$formats = [];
function $d636bc798e7178db$export$36b2f24e97d43be(format) {
  $d636bc798e7178db$var$formats.push(format);
}
function $d636bc798e7178db$export$185802fd694ee1f5(buffer, postscriptName) {
  for (let i5 = 0; i5 < $d636bc798e7178db$var$formats.length; i5++) {
    let format = $d636bc798e7178db$var$formats[i5];
    if (format.probe(buffer)) {
      let font = new format(new (0, DecodeStream)(buffer));
      if (postscriptName) return font.getFont(postscriptName);
      return font;
    }
  }
  throw new Error("Unknown font format");
}
var $d636bc798e7178db$export$42940898df819940 = "en";
function $d636bc798e7178db$export$5157e7780d44cc36(lang = "en") {
  $d636bc798e7178db$export$42940898df819940 = lang;
}
var $b422b1e013cd6010$exports = {};
$parcel$export($b422b1e013cd6010$exports, "openSync", () => $b422b1e013cd6010$export$fa5499edb1ab414a);
$parcel$export($b422b1e013cd6010$exports, "open", () => $b422b1e013cd6010$export$3ce6949f20cea765);
function $b422b1e013cd6010$export$fa5499edb1ab414a(filename, postscriptName) {
  let buffer = (0, $52ZIf$fs).readFileSync(filename);
  return (0, $d636bc798e7178db$export$185802fd694ee1f5)(buffer, postscriptName);
}
async function $b422b1e013cd6010$export$3ce6949f20cea765(filename, postscriptName, callback) {
  if (typeof postscriptName === "function") {
    callback = postscriptName;
    postscriptName = null;
  }
  let buffer = await (0, $52ZIf$fs).promises.readFile(filename);
  return (0, $d636bc798e7178db$export$185802fd694ee1f5)(buffer, postscriptName);
}
function $e71565f2ce09cb6b$export$69a3209f1a06c04d(target, key, descriptor) {
  if (descriptor.get) {
    let get = descriptor.get;
    descriptor.get = function() {
      let value2 = get.call(this);
      Object.defineProperty(this, key, {
        value: value2
      });
      return value2;
    };
  } else if (typeof descriptor.value === "function") {
    let fn = descriptor.value;
    return {
      get() {
        let cache2 = /* @__PURE__ */ new Map();
        function memoized(...args) {
          let key2 = args.length > 0 ? args[0] : "value";
          if (cache2.has(key2)) return cache2.get(key2);
          let result = fn.apply(this, args);
          cache2.set(key2, result);
          return result;
        }
        Object.defineProperty(this, key, {
          value: memoized
        });
        return memoized;
      }
    };
  }
}
var $26a62205ad06574e$var$SubHeader = new Struct({
  firstCode: uint16,
  entryCount: uint16,
  idDelta: int16,
  idRangeOffset: uint16
});
var $26a62205ad06574e$var$CmapGroup = new Struct({
  startCharCode: uint32,
  endCharCode: uint32,
  glyphID: uint32
});
var $26a62205ad06574e$var$UnicodeValueRange = new Struct({
  startUnicodeValue: uint24,
  additionalCount: uint8
});
var $26a62205ad06574e$var$UVSMapping = new Struct({
  unicodeValue: uint24,
  glyphID: uint16
});
var $26a62205ad06574e$var$DefaultUVS = new ArrayT($26a62205ad06574e$var$UnicodeValueRange, uint32);
var $26a62205ad06574e$var$NonDefaultUVS = new ArrayT($26a62205ad06574e$var$UVSMapping, uint32);
var $26a62205ad06574e$var$VarSelectorRecord = new Struct({
  varSelector: uint24,
  defaultUVS: new Pointer(uint32, $26a62205ad06574e$var$DefaultUVS, {
    type: "parent"
  }),
  nonDefaultUVS: new Pointer(uint32, $26a62205ad06574e$var$NonDefaultUVS, {
    type: "parent"
  })
});
var $26a62205ad06574e$var$CmapSubtable = new VersionedStruct(uint16, {
  0: {
    length: uint16,
    language: uint16,
    codeMap: new LazyArray(uint8, 256)
  },
  2: {
    length: uint16,
    language: uint16,
    subHeaderKeys: new ArrayT(uint16, 256),
    subHeaderCount: (t4) => Math.max.apply(Math, t4.subHeaderKeys),
    subHeaders: new LazyArray($26a62205ad06574e$var$SubHeader, "subHeaderCount"),
    glyphIndexArray: new LazyArray(uint16, "subHeaderCount")
  },
  4: {
    length: uint16,
    language: uint16,
    segCountX2: uint16,
    segCount: (t4) => t4.segCountX2 >> 1,
    searchRange: uint16,
    entrySelector: uint16,
    rangeShift: uint16,
    endCode: new LazyArray(uint16, "segCount"),
    reservedPad: new Reserved(uint16),
    startCode: new LazyArray(uint16, "segCount"),
    idDelta: new LazyArray(int16, "segCount"),
    idRangeOffset: new LazyArray(uint16, "segCount"),
    glyphIndexArray: new LazyArray(uint16, (t4) => (t4.length - t4._currentOffset) / 2)
  },
  6: {
    length: uint16,
    language: uint16,
    firstCode: uint16,
    entryCount: uint16,
    glyphIndices: new LazyArray(uint16, "entryCount")
  },
  8: {
    reserved: new Reserved(uint16),
    length: uint32,
    language: uint16,
    is32: new LazyArray(uint8, 8192),
    nGroups: uint32,
    groups: new LazyArray($26a62205ad06574e$var$CmapGroup, "nGroups")
  },
  10: {
    reserved: new Reserved(uint16),
    length: uint32,
    language: uint32,
    firstCode: uint32,
    entryCount: uint32,
    glyphIndices: new LazyArray(uint16, "numChars")
  },
  12: {
    reserved: new Reserved(uint16),
    length: uint32,
    language: uint32,
    nGroups: uint32,
    groups: new LazyArray($26a62205ad06574e$var$CmapGroup, "nGroups")
  },
  13: {
    reserved: new Reserved(uint16),
    length: uint32,
    language: uint32,
    nGroups: uint32,
    groups: new LazyArray($26a62205ad06574e$var$CmapGroup, "nGroups")
  },
  14: {
    length: uint32,
    numRecords: uint32,
    varSelectors: new LazyArray($26a62205ad06574e$var$VarSelectorRecord, "numRecords")
  }
});
var $26a62205ad06574e$var$CmapEntry = new Struct({
  platformID: uint16,
  encodingID: uint16,
  table: new Pointer(uint32, $26a62205ad06574e$var$CmapSubtable, {
    type: "parent",
    lazy: true
  })
});
var $26a62205ad06574e$export$2e2bcd8739ae039 = new Struct({
  version: uint16,
  numSubtables: uint16,
  tables: new ArrayT($26a62205ad06574e$var$CmapEntry, "numSubtables")
});
var $f2612a29f92ac062$export$2e2bcd8739ae039 = new Struct({
  version: int32,
  revision: int32,
  checkSumAdjustment: uint32,
  magicNumber: uint32,
  flags: uint16,
  unitsPerEm: uint16,
  created: new ArrayT(int32, 2),
  modified: new ArrayT(int32, 2),
  xMin: int16,
  yMin: int16,
  xMax: int16,
  yMax: int16,
  macStyle: new Bitfield(uint16, [
    "bold",
    "italic",
    "underline",
    "outline",
    "shadow",
    "condensed",
    "extended"
  ]),
  lowestRecPPEM: uint16,
  fontDirectionHint: int16,
  indexToLocFormat: int16,
  glyphDataFormat: int16
  // 0 for current format
});
var $2c179dd593583073$export$2e2bcd8739ae039 = new Struct({
  version: int32,
  ascent: int16,
  descent: int16,
  lineGap: int16,
  advanceWidthMax: uint16,
  minLeftSideBearing: int16,
  minRightSideBearing: int16,
  xMaxExtent: int16,
  caretSlopeRise: int16,
  caretSlopeRun: int16,
  caretOffset: int16,
  reserved: new Reserved(int16, 4),
  metricDataFormat: int16,
  numberOfMetrics: uint16
  // Number of advance widths in 'hmtx' table
});
var $bdc9060542264b85$var$HmtxEntry = new Struct({
  advance: uint16,
  bearing: int16
});
var $bdc9060542264b85$export$2e2bcd8739ae039 = new Struct({
  metrics: new LazyArray($bdc9060542264b85$var$HmtxEntry, (t4) => t4.parent.hhea.numberOfMetrics),
  bearings: new LazyArray(int16, (t4) => t4.parent.maxp.numGlyphs - t4.parent.hhea.numberOfMetrics)
});
var $dbf51cb3d3fe409d$export$2e2bcd8739ae039 = new Struct({
  version: int32,
  numGlyphs: uint16,
  maxPoints: uint16,
  maxContours: uint16,
  maxComponentPoints: uint16,
  maxComponentContours: uint16,
  maxZones: uint16,
  maxTwilightPoints: uint16,
  maxStorage: uint16,
  maxFunctionDefs: uint16,
  maxInstructionDefs: uint16,
  maxStackElements: uint16,
  maxSizeOfInstructions: uint16,
  maxComponentElements: uint16,
  maxComponentDepth: uint16
  // Maximum levels of recursion; 1 for simple components
});
function $e449ad78d50845fe$export$badc544e0651b6b1(platformID, encodingID, languageID = 0) {
  if (platformID === 1 && $e449ad78d50845fe$export$479e671907f486d1[languageID]) return $e449ad78d50845fe$export$479e671907f486d1[languageID];
  return $e449ad78d50845fe$export$6fef87b7618bdf0b[platformID][encodingID];
}
var $e449ad78d50845fe$var$SINGLE_BYTE_ENCODINGS = /* @__PURE__ */ new Set([
  "x-mac-roman",
  "x-mac-cyrillic",
  "iso-8859-6",
  "iso-8859-8"
]);
var $e449ad78d50845fe$var$MAC_ENCODINGS = {
  "x-mac-croatian": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u03A9\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026 \xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uF8FF\xA9\u2044\u20AC\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7",
  "x-mac-gaelic": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u1E02\xB1\u2264\u2265\u1E03\u010A\u010B\u1E0A\u1E0B\u1E1E\u1E1F\u0120\u0121\u1E40\xE6\xF8\u1E41\u1E56\u1E57\u027C\u0192\u017F\u1E60\xAB\xBB\u2026 \xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\u1E61\u1E9B\xFF\u0178\u1E6A\u20AC\u2039\u203A\u0176\u0177\u1E6B\xB7\u1EF2\u1EF3\u204A\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u2663\xD2\xDA\xDB\xD9\u0131\xDD\xFD\u0174\u0175\u1E84\u1E85\u1E80\u1E81\u1E82\u1E83",
  "x-mac-greek": "\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\u20AC\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\xB7\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026 \u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\xAD",
  "x-mac-icelandic": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026 \xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7",
  "x-mac-inuit": "\u1403\u1404\u1405\u1406\u140A\u140B\u1431\u1432\u1433\u1434\u1438\u1439\u1449\u144E\u144F\u1450\u1451\u1455\u1456\u1466\u146D\u146E\u146F\u1470\u1472\u1473\u1483\u148B\u148C\u148D\u148E\u1490\u1491\xB0\u14A1\u14A5\u14A6\u2022\xB6\u14A7\xAE\xA9\u2122\u14A8\u14AA\u14AB\u14BB\u14C2\u14C3\u14C4\u14C5\u14C7\u14C8\u14D0\u14EF\u14F0\u14F1\u14F2\u14F4\u14F5\u1505\u14D5\u14D6\u14D7\u14D8\u14DA\u14DB\u14EA\u1528\u1529\u152A\u152B\u152D\u2026 \u152E\u153E\u1555\u1556\u1557\u2013\u2014\u201C\u201D\u2018\u2019\u1558\u1559\u155A\u155D\u1546\u1547\u1548\u1549\u154B\u154C\u1550\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1671\u1672\u1673\u1674\u1675\u1676\u1596\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u157C\u0141\u0142",
  "x-mac-ce": "\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026 \u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7",
  "x-mac-romanian": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u0218\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\u0103\u0219\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026 \xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\u2039\u203A\u021A\u021B\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7",
  "x-mac-turkish": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026 \xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\uF8A0\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
};
var $e449ad78d50845fe$var$encodingCache = /* @__PURE__ */ new Map();
function $e449ad78d50845fe$export$1dceb3c14ed68bee(encoding) {
  let cached = $e449ad78d50845fe$var$encodingCache.get(encoding);
  if (cached) return cached;
  let mapping = $e449ad78d50845fe$var$MAC_ENCODINGS[encoding];
  if (mapping) {
    let res = /* @__PURE__ */ new Map();
    for (let i5 = 0; i5 < mapping.length; i5++) res.set(mapping.charCodeAt(i5), 128 + i5);
    $e449ad78d50845fe$var$encodingCache.set(encoding, res);
    return res;
  }
  if ($e449ad78d50845fe$var$SINGLE_BYTE_ENCODINGS.has(encoding)) {
    let decoder2 = new TextDecoder(encoding);
    let mapping2 = new Uint8Array(128);
    for (let i5 = 0; i5 < 128; i5++) mapping2[i5] = 128 + i5;
    let res = /* @__PURE__ */ new Map();
    let s4 = decoder2.decode(mapping2);
    for (let i5 = 0; i5 < 128; i5++) res.set(s4.charCodeAt(i5), 128 + i5);
    $e449ad78d50845fe$var$encodingCache.set(encoding, res);
    return res;
  }
}
var $e449ad78d50845fe$export$6fef87b7618bdf0b = [
  // unicode
  [
    "utf-16be",
    "utf-16be",
    "utf-16be",
    "utf-16be",
    "utf-16be",
    "utf-16be",
    "utf-16be"
  ],
  // macintosh
  // Mappings available at http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/
  // 0	Roman                 17	Malayalam
  // 1	Japanese	            18	Sinhalese
  // 2	Traditional Chinese	  19	Burmese
  // 3	Korean	              20	Khmer
  // 4	Arabic	              21	Thai
  // 5	Hebrew	              22	Laotian
  // 6	Greek	                23	Georgian
  // 7	Russian	              24	Armenian
  // 8	RSymbol	              25	Simplified Chinese
  // 9	Devanagari	          26	Tibetan
  // 10	Gurmukhi	            27	Mongolian
  // 11	Gujarati	            28	Geez
  // 12	Oriya	                29	Slavic
  // 13	Bengali	              30	Vietnamese
  // 14	Tamil	                31	Sindhi
  // 15	Telugu	              32	(Uninterpreted)
  // 16	Kannada
  [
    "x-mac-roman",
    "shift-jis",
    "big5",
    "euc-kr",
    "iso-8859-6",
    "iso-8859-8",
    "x-mac-greek",
    "x-mac-cyrillic",
    "x-mac-symbol",
    "x-mac-devanagari",
    "x-mac-gurmukhi",
    "x-mac-gujarati",
    "Oriya",
    "Bengali",
    "Tamil",
    "Telugu",
    "Kannada",
    "Malayalam",
    "Sinhalese",
    "Burmese",
    "Khmer",
    "iso-8859-11",
    "Laotian",
    "Georgian",
    "Armenian",
    "gbk",
    "Tibetan",
    "Mongolian",
    "Geez",
    "x-mac-ce",
    "Vietnamese",
    "Sindhi"
  ],
  // ISO (deprecated)
  [
    "ascii",
    null,
    "iso-8859-1"
  ],
  // windows
  // Docs here: http://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx
  [
    "symbol",
    "utf-16be",
    "shift-jis",
    "gb18030",
    "big5",
    "euc-kr",
    "johab",
    null,
    null,
    null,
    "utf-16be"
  ]
];
var $e449ad78d50845fe$export$479e671907f486d1 = {
  15: "x-mac-icelandic",
  17: "x-mac-turkish",
  18: "x-mac-croatian",
  24: "x-mac-ce",
  25: "x-mac-ce",
  26: "x-mac-ce",
  27: "x-mac-ce",
  28: "x-mac-ce",
  30: "x-mac-icelandic",
  37: "x-mac-romanian",
  38: "x-mac-ce",
  39: "x-mac-ce",
  40: "x-mac-ce",
  143: "x-mac-inuit",
  146: "x-mac-gaelic"
};
var $e449ad78d50845fe$export$2092376fd002e13 = [
  // unicode
  [],
  {
    0: "en",
    30: "fo",
    60: "ks",
    90: "rw",
    1: "fr",
    31: "fa",
    61: "ku",
    91: "rn",
    2: "de",
    32: "ru",
    62: "sd",
    92: "ny",
    3: "it",
    33: "zh",
    63: "bo",
    93: "mg",
    4: "nl",
    34: "nl-BE",
    64: "ne",
    94: "eo",
    5: "sv",
    35: "ga",
    65: "sa",
    128: "cy",
    6: "es",
    36: "sq",
    66: "mr",
    129: "eu",
    7: "da",
    37: "ro",
    67: "bn",
    130: "ca",
    8: "pt",
    38: "cz",
    68: "as",
    131: "la",
    9: "no",
    39: "sk",
    69: "gu",
    132: "qu",
    10: "he",
    40: "si",
    70: "pa",
    133: "gn",
    11: "ja",
    41: "yi",
    71: "or",
    134: "ay",
    12: "ar",
    42: "sr",
    72: "ml",
    135: "tt",
    13: "fi",
    43: "mk",
    73: "kn",
    136: "ug",
    14: "el",
    44: "bg",
    74: "ta",
    137: "dz",
    15: "is",
    45: "uk",
    75: "te",
    138: "jv",
    16: "mt",
    46: "be",
    76: "si",
    139: "su",
    17: "tr",
    47: "uz",
    77: "my",
    140: "gl",
    18: "hr",
    48: "kk",
    78: "km",
    141: "af",
    19: "zh-Hant",
    49: "az-Cyrl",
    79: "lo",
    142: "br",
    20: "ur",
    50: "az-Arab",
    80: "vi",
    143: "iu",
    21: "hi",
    51: "hy",
    81: "id",
    144: "gd",
    22: "th",
    52: "ka",
    82: "tl",
    145: "gv",
    23: "ko",
    53: "mo",
    83: "ms",
    146: "ga",
    24: "lt",
    54: "ky",
    84: "ms-Arab",
    147: "to",
    25: "pl",
    55: "tg",
    85: "am",
    148: "el-polyton",
    26: "hu",
    56: "tk",
    86: "ti",
    149: "kl",
    27: "es",
    57: "mn-CN",
    87: "om",
    150: "az",
    28: "lv",
    58: "mn",
    88: "so",
    151: "nn",
    29: "se",
    59: "ps",
    89: "sw"
  },
  // ISO (deprecated)
  [],
  {
    1078: "af",
    16393: "en-IN",
    1159: "rw",
    1074: "tn",
    1052: "sq",
    6153: "en-IE",
    1089: "sw",
    1115: "si",
    1156: "gsw",
    8201: "en-JM",
    1111: "kok",
    1051: "sk",
    1118: "am",
    17417: "en-MY",
    1042: "ko",
    1060: "sl",
    5121: "ar-DZ",
    5129: "en-NZ",
    1088: "ky",
    11274: "es-AR",
    15361: "ar-BH",
    13321: "en-PH",
    1108: "lo",
    16394: "es-BO",
    3073: "ar",
    18441: "en-SG",
    1062: "lv",
    13322: "es-CL",
    2049: "ar-IQ",
    7177: "en-ZA",
    1063: "lt",
    9226: "es-CO",
    11265: "ar-JO",
    11273: "en-TT",
    2094: "dsb",
    5130: "es-CR",
    13313: "ar-KW",
    2057: "en-GB",
    1134: "lb",
    7178: "es-DO",
    12289: "ar-LB",
    1033: "en",
    1071: "mk",
    12298: "es-EC",
    4097: "ar-LY",
    12297: "en-ZW",
    2110: "ms-BN",
    17418: "es-SV",
    6145: "ary",
    1061: "et",
    1086: "ms",
    4106: "es-GT",
    8193: "ar-OM",
    1080: "fo",
    1100: "ml",
    18442: "es-HN",
    16385: "ar-QA",
    1124: "fil",
    1082: "mt",
    2058: "es-MX",
    1025: "ar-SA",
    1035: "fi",
    1153: "mi",
    19466: "es-NI",
    10241: "ar-SY",
    2060: "fr-BE",
    1146: "arn",
    6154: "es-PA",
    7169: "aeb",
    3084: "fr-CA",
    1102: "mr",
    15370: "es-PY",
    14337: "ar-AE",
    1036: "fr",
    1148: "moh",
    10250: "es-PE",
    9217: "ar-YE",
    5132: "fr-LU",
    1104: "mn",
    20490: "es-PR",
    1067: "hy",
    6156: "fr-MC",
    2128: "mn-CN",
    3082: "es",
    1101: "as",
    4108: "fr-CH",
    1121: "ne",
    1034: "es",
    2092: "az-Cyrl",
    1122: "fy",
    1044: "nb",
    21514: "es-US",
    1068: "az",
    1110: "gl",
    2068: "nn",
    14346: "es-UY",
    1133: "ba",
    1079: "ka",
    1154: "oc",
    8202: "es-VE",
    1069: "eu",
    3079: "de-AT",
    1096: "or",
    2077: "sv-FI",
    1059: "be",
    1031: "de",
    1123: "ps",
    1053: "sv",
    2117: "bn",
    5127: "de-LI",
    1045: "pl",
    1114: "syr",
    1093: "bn-IN",
    4103: "de-LU",
    1046: "pt",
    1064: "tg",
    8218: "bs-Cyrl",
    2055: "de-CH",
    2070: "pt-PT",
    2143: "tzm",
    5146: "bs",
    1032: "el",
    1094: "pa",
    1097: "ta",
    1150: "br",
    1135: "kl",
    1131: "qu-BO",
    1092: "tt",
    1026: "bg",
    1095: "gu",
    2155: "qu-EC",
    1098: "te",
    1027: "ca",
    1128: "ha",
    3179: "qu",
    1054: "th",
    3076: "zh-HK",
    1037: "he",
    1048: "ro",
    1105: "bo",
    5124: "zh-MO",
    1081: "hi",
    1047: "rm",
    1055: "tr",
    2052: "zh",
    1038: "hu",
    1049: "ru",
    1090: "tk",
    4100: "zh-SG",
    1039: "is",
    9275: "smn",
    1152: "ug",
    1028: "zh-TW",
    1136: "ig",
    4155: "smj-NO",
    1058: "uk",
    1155: "co",
    1057: "id",
    5179: "smj",
    1070: "hsb",
    1050: "hr",
    1117: "iu",
    3131: "se-FI",
    1056: "ur",
    4122: "hr-BA",
    2141: "iu-Latn",
    1083: "se",
    2115: "uz-Cyrl",
    1029: "cs",
    2108: "ga",
    2107: "se-SE",
    1091: "uz",
    1030: "da",
    1076: "xh",
    8251: "sms",
    1066: "vi",
    1164: "prs",
    1077: "zu",
    6203: "sma-NO",
    1106: "cy",
    1125: "dv",
    1040: "it",
    7227: "sms",
    1160: "wo",
    2067: "nl-BE",
    2064: "it-CH",
    1103: "sa",
    1157: "sah",
    1043: "nl",
    1041: "ja",
    7194: "sr-Cyrl-BA",
    1144: "ii",
    3081: "en-AU",
    1099: "kn",
    3098: "sr",
    1130: "yo",
    10249: "en-BZ",
    1087: "kk",
    6170: "sr-Latn-BA",
    4105: "en-CA",
    1107: "km",
    2074: "sr-Latn",
    9225: "en-029",
    1158: "quc",
    1132: "nso"
  }
];
var $2bcf221753ec8e32$var$NameRecord = new Struct({
  platformID: uint16,
  encodingID: uint16,
  languageID: uint16,
  nameID: uint16,
  length: uint16,
  string: new Pointer(uint16, new StringT("length", (t4) => (0, $e449ad78d50845fe$export$badc544e0651b6b1)(t4.platformID, t4.encodingID, t4.languageID)), {
    type: "parent",
    relativeTo: (ctx) => ctx.parent.stringOffset,
    allowNull: false
  })
});
var $2bcf221753ec8e32$var$LangTagRecord = new Struct({
  length: uint16,
  tag: new Pointer(uint16, new StringT("length", "utf16be"), {
    type: "parent",
    relativeTo: (ctx) => ctx.stringOffset
  })
});
var $2bcf221753ec8e32$var$NameTable = new VersionedStruct(uint16, {
  0: {
    count: uint16,
    stringOffset: uint16,
    records: new ArrayT($2bcf221753ec8e32$var$NameRecord, "count")
  },
  1: {
    count: uint16,
    stringOffset: uint16,
    records: new ArrayT($2bcf221753ec8e32$var$NameRecord, "count"),
    langTagCount: uint16,
    langTags: new ArrayT($2bcf221753ec8e32$var$LangTagRecord, "langTagCount")
  }
});
var $2bcf221753ec8e32$export$2e2bcd8739ae039 = $2bcf221753ec8e32$var$NameTable;
var $2bcf221753ec8e32$var$NAMES = [
  "copyright",
  "fontFamily",
  "fontSubfamily",
  "uniqueSubfamily",
  "fullName",
  "version",
  "postscriptName",
  "trademark",
  "manufacturer",
  "designer",
  "description",
  "vendorURL",
  "designerURL",
  "license",
  "licenseURL",
  null,
  "preferredFamily",
  "preferredSubfamily",
  "compatibleFull",
  "sampleText",
  "postscriptCIDFontName",
  "wwsFamilyName",
  "wwsSubfamilyName"
];
$2bcf221753ec8e32$var$NameTable.process = function(stream7) {
  var records = {};
  for (let record of this.records) {
    let language = (0, $e449ad78d50845fe$export$2092376fd002e13)[record.platformID][record.languageID];
    if (language == null && this.langTags != null && record.languageID >= 32768) language = this.langTags[record.languageID - 32768].tag;
    if (language == null) language = record.platformID + "-" + record.languageID;
    let key = record.nameID >= 256 ? "fontFeatures" : $2bcf221753ec8e32$var$NAMES[record.nameID] || record.nameID;
    if (records[key] == null) records[key] = {};
    let obj = records[key];
    if (record.nameID >= 256) obj = obj[record.nameID] || (obj[record.nameID] = {});
    if (typeof record.string === "string" || typeof obj[language] !== "string") obj[language] = record.string;
  }
  this.records = records;
};
$2bcf221753ec8e32$var$NameTable.preEncode = function() {
  if (Array.isArray(this.records)) return;
  this.version = 0;
  let records = [];
  for (let key in this.records) {
    let val = this.records[key];
    if (key === "fontFeatures") continue;
    records.push({
      platformID: 3,
      encodingID: 1,
      languageID: 1033,
      nameID: $2bcf221753ec8e32$var$NAMES.indexOf(key),
      length: val.en.length * 2,
      string: val.en
    });
    if (key === "postscriptName") records.push({
      platformID: 1,
      encodingID: 0,
      languageID: 0,
      nameID: $2bcf221753ec8e32$var$NAMES.indexOf(key),
      length: val.en.length,
      string: val.en
    });
  }
  this.records = records;
  this.count = records.length;
  this.stringOffset = $2bcf221753ec8e32$var$NameTable.size(this, null, false);
};
var $84b272aa31b70606$var$OS2 = new VersionedStruct(uint16, {
  header: {
    xAvgCharWidth: int16,
    usWeightClass: uint16,
    usWidthClass: uint16,
    fsType: new Bitfield(uint16, [
      null,
      "noEmbedding",
      "viewOnly",
      "editable",
      null,
      null,
      null,
      null,
      "noSubsetting",
      "bitmapOnly"
    ]),
    ySubscriptXSize: int16,
    ySubscriptYSize: int16,
    ySubscriptXOffset: int16,
    ySubscriptYOffset: int16,
    ySuperscriptXSize: int16,
    ySuperscriptYSize: int16,
    ySuperscriptXOffset: int16,
    ySuperscriptYOffset: int16,
    yStrikeoutSize: int16,
    yStrikeoutPosition: int16,
    sFamilyClass: int16,
    panose: new ArrayT(uint8, 10),
    ulCharRange: new ArrayT(uint32, 4),
    vendorID: new StringT(4),
    fsSelection: new Bitfield(uint16, [
      "italic",
      "underscore",
      "negative",
      "outlined",
      "strikeout",
      "bold",
      "regular",
      "useTypoMetrics",
      "wws",
      "oblique"
    ]),
    usFirstCharIndex: uint16,
    usLastCharIndex: uint16
    // The maximum Unicode index in this font
  },
  // The Apple version of this table ends here, but the Microsoft one continues on...
  0: {},
  1: {
    typoAscender: int16,
    typoDescender: int16,
    typoLineGap: int16,
    winAscent: uint16,
    winDescent: uint16,
    codePageRange: new ArrayT(uint32, 2)
  },
  2: {
    // these should be common with version 1 somehow
    typoAscender: int16,
    typoDescender: int16,
    typoLineGap: int16,
    winAscent: uint16,
    winDescent: uint16,
    codePageRange: new ArrayT(uint32, 2),
    xHeight: int16,
    capHeight: int16,
    defaultChar: uint16,
    breakChar: uint16,
    maxContent: uint16
  },
  5: {
    typoAscender: int16,
    typoDescender: int16,
    typoLineGap: int16,
    winAscent: uint16,
    winDescent: uint16,
    codePageRange: new ArrayT(uint32, 2),
    xHeight: int16,
    capHeight: int16,
    defaultChar: uint16,
    breakChar: uint16,
    maxContent: uint16,
    usLowerOpticalPointSize: uint16,
    usUpperOpticalPointSize: uint16
  }
});
var $84b272aa31b70606$var$versions = $84b272aa31b70606$var$OS2.versions;
$84b272aa31b70606$var$versions[3] = $84b272aa31b70606$var$versions[4] = $84b272aa31b70606$var$versions[2];
var $84b272aa31b70606$export$2e2bcd8739ae039 = $84b272aa31b70606$var$OS2;
var $32d9e2eb9565d93c$export$2e2bcd8739ae039 = new VersionedStruct(fixed32, {
  header: {
    italicAngle: fixed32,
    underlinePosition: int16,
    underlineThickness: int16,
    isFixedPitch: uint32,
    minMemType42: uint32,
    maxMemType42: uint32,
    minMemType1: uint32,
    maxMemType1: uint32
    // Maximum memory usage when a TrueType font is downloaded as a Type 1 font
  },
  1: {},
  2: {
    numberOfGlyphs: uint16,
    glyphNameIndex: new ArrayT(uint16, "numberOfGlyphs"),
    names: new ArrayT(new StringT(uint8))
  },
  2.5: {
    numberOfGlyphs: uint16,
    offsets: new ArrayT(uint8, "numberOfGlyphs")
  },
  3: {},
  4: {
    map: new ArrayT(uint32, (t4) => t4.parent.maxp.numGlyphs)
  }
});
var $5202bd9d9ad8eaac$export$2e2bcd8739ae039 = new Struct({
  controlValues: new ArrayT(int16)
});
var $5c0f37ca5ffb1850$export$2e2bcd8739ae039 = new Struct({
  instructions: new ArrayT(uint8)
});
var $2b2b260902b1c57e$var$loca = new VersionedStruct("head.indexToLocFormat", {
  0: {
    offsets: new ArrayT(uint16)
  },
  1: {
    offsets: new ArrayT(uint32)
  }
});
$2b2b260902b1c57e$var$loca.process = function() {
  if (this.version === 0 && !this._processed) {
    for (let i5 = 0; i5 < this.offsets.length; i5++) this.offsets[i5] <<= 1;
    this._processed = true;
  }
};
$2b2b260902b1c57e$var$loca.preEncode = function() {
  if (this.version === 0 && this._processed !== false) {
    for (let i5 = 0; i5 < this.offsets.length; i5++) this.offsets[i5] >>>= 1;
    this._processed = false;
  }
};
var $2b2b260902b1c57e$export$2e2bcd8739ae039 = $2b2b260902b1c57e$var$loca;
var $7afb878c7bea4f66$export$2e2bcd8739ae039 = new Struct({
  controlValueProgram: new ArrayT(uint8)
});
var $6c92b6371bce8bd9$export$2e2bcd8739ae039 = new ArrayT(new BufferT());
var $43e9821ef3717eec$export$2e2bcd8739ae039 = class {
  getCFFVersion(ctx) {
    while (ctx && !ctx.hdrSize) ctx = ctx.parent;
    return ctx ? ctx.version : -1;
  }
  decode(stream7, parent) {
    let version2 = this.getCFFVersion(parent);
    let count = version2 >= 2 ? stream7.readUInt32BE() : stream7.readUInt16BE();
    if (count === 0) return [];
    let offSize = stream7.readUInt8();
    let offsetType;
    if (offSize === 1) offsetType = uint8;
    else if (offSize === 2) offsetType = uint16;
    else if (offSize === 3) offsetType = uint24;
    else if (offSize === 4) offsetType = uint32;
    else throw new Error(`Bad offset size in CFFIndex: ${offSize} ${stream7.pos}`);
    let ret = [];
    let startPos = stream7.pos + (count + 1) * offSize - 1;
    let start2 = offsetType.decode(stream7);
    for (let i5 = 0; i5 < count; i5++) {
      let end2 = offsetType.decode(stream7);
      if (this.type != null) {
        let pos = stream7.pos;
        stream7.pos = startPos + start2;
        parent.length = end2 - start2;
        ret.push(this.type.decode(stream7, parent));
        stream7.pos = pos;
      } else ret.push({
        offset: startPos + start2,
        length: end2 - start2
      });
      start2 = end2;
    }
    stream7.pos = startPos + start2;
    return ret;
  }
  size(arr, parent) {
    let size = 2;
    if (arr.length === 0) return size;
    let type = this.type || new BufferT();
    let offset2 = 1;
    for (let i5 = 0; i5 < arr.length; i5++) {
      let item = arr[i5];
      offset2 += type.size(item, parent);
    }
    let offsetType;
    if (offset2 <= 255) offsetType = uint8;
    else if (offset2 <= 65535) offsetType = uint16;
    else if (offset2 <= 16777215) offsetType = uint24;
    else if (offset2 <= 4294967295) offsetType = uint32;
    else throw new Error("Bad offset in CFFIndex");
    size += 1 + offsetType.size() * (arr.length + 1);
    size += offset2 - 1;
    return size;
  }
  encode(stream7, arr, parent) {
    stream7.writeUInt16BE(arr.length);
    if (arr.length === 0) return;
    let type = this.type || new BufferT();
    let sizes = [];
    let offset2 = 1;
    for (let item of arr) {
      let s4 = type.size(item, parent);
      sizes.push(s4);
      offset2 += s4;
    }
    let offsetType;
    if (offset2 <= 255) offsetType = uint8;
    else if (offset2 <= 65535) offsetType = uint16;
    else if (offset2 <= 16777215) offsetType = uint24;
    else if (offset2 <= 4294967295) offsetType = uint32;
    else throw new Error("Bad offset in CFFIndex");
    stream7.writeUInt8(offsetType.size());
    offset2 = 1;
    offsetType.encode(stream7, offset2);
    for (let size of sizes) {
      offset2 += size;
      offsetType.encode(stream7, offset2);
    }
    for (let item of arr) type.encode(stream7, item, parent);
    return;
  }
  constructor(type) {
    this.type = type;
  }
};
var $c2d28e92708f99da$var$FLOAT_EOF = 15;
var $c2d28e92708f99da$var$FLOAT_LOOKUP = [
  "0",
  "1",
  "2",
  "3",
  "4",
  "5",
  "6",
  "7",
  "8",
  "9",
  ".",
  "E",
  "E-",
  null,
  "-"
];
var $c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP = {
  ".": 10,
  "E": 11,
  "E-": 12,
  "-": 14
};
var $c2d28e92708f99da$export$2e2bcd8739ae039 = class {
  static decode(stream7, value2) {
    if (32 <= value2 && value2 <= 246) return value2 - 139;
    if (247 <= value2 && value2 <= 250) return (value2 - 247) * 256 + stream7.readUInt8() + 108;
    if (251 <= value2 && value2 <= 254) return -(value2 - 251) * 256 - stream7.readUInt8() - 108;
    if (value2 === 28) return stream7.readInt16BE();
    if (value2 === 29) return stream7.readInt32BE();
    if (value2 === 30) {
      let str = "";
      while (true) {
        let b3 = stream7.readUInt8();
        let n1 = b3 >> 4;
        if (n1 === $c2d28e92708f99da$var$FLOAT_EOF) break;
        str += $c2d28e92708f99da$var$FLOAT_LOOKUP[n1];
        let n22 = b3 & 15;
        if (n22 === $c2d28e92708f99da$var$FLOAT_EOF) break;
        str += $c2d28e92708f99da$var$FLOAT_LOOKUP[n22];
      }
      return parseFloat(str);
    }
    return null;
  }
  static size(value2) {
    if (value2.forceLarge) value2 = 32768;
    if ((value2 | 0) !== value2) {
      let str = "" + value2;
      return 1 + Math.ceil((str.length + 1) / 2);
    } else if (-107 <= value2 && value2 <= 107) return 1;
    else if (108 <= value2 && value2 <= 1131 || -1131 <= value2 && value2 <= -108) return 2;
    else if (-32768 <= value2 && value2 <= 32767) return 3;
    else return 5;
  }
  static encode(stream7, value2) {
    let val = Number(value2);
    if (value2.forceLarge) {
      stream7.writeUInt8(29);
      return stream7.writeInt32BE(val);
    } else if ((val | 0) !== val) {
      stream7.writeUInt8(30);
      let str = "" + val;
      for (let i5 = 0; i5 < str.length; i5 += 2) {
        let c1 = str[i5];
        let n1 = $c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP[c1] || +c1;
        if (i5 === str.length - 1) var n22 = $c2d28e92708f99da$var$FLOAT_EOF;
        else {
          let c22 = str[i5 + 1];
          var n22 = $c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP[c22] || +c22;
        }
        stream7.writeUInt8(n1 << 4 | n22 & 15);
      }
      if (n22 !== $c2d28e92708f99da$var$FLOAT_EOF) return stream7.writeUInt8($c2d28e92708f99da$var$FLOAT_EOF << 4);
    } else if (-107 <= val && val <= 107) return stream7.writeUInt8(val + 139);
    else if (108 <= val && val <= 1131) {
      val -= 108;
      stream7.writeUInt8((val >> 8) + 247);
      return stream7.writeUInt8(val & 255);
    } else if (-1131 <= val && val <= -108) {
      val = -val - 108;
      stream7.writeUInt8((val >> 8) + 251);
      return stream7.writeUInt8(val & 255);
    } else if (-32768 <= val && val <= 32767) {
      stream7.writeUInt8(28);
      return stream7.writeInt16BE(val);
    } else {
      stream7.writeUInt8(29);
      return stream7.writeInt32BE(val);
    }
  }
};
var $61aa549f16d58b9b$export$2e2bcd8739ae039 = class {
  decodeOperands(type, stream7, ret, operands) {
    if (Array.isArray(type)) return operands.map((op, i5) => this.decodeOperands(type[i5], stream7, ret, [
      op
    ]));
    else if (type.decode != null) return type.decode(stream7, ret, operands);
    else switch (type) {
      case "number":
      case "offset":
      case "sid":
        return operands[0];
      case "boolean":
        return !!operands[0];
      default:
        return operands;
    }
  }
  encodeOperands(type, stream7, ctx, operands) {
    if (Array.isArray(type)) return operands.map((op, i5) => this.encodeOperands(type[i5], stream7, ctx, op)[0]);
    else if (type.encode != null) return type.encode(stream7, operands, ctx);
    else if (typeof operands === "number") return [
      operands
    ];
    else if (typeof operands === "boolean") return [
      +operands
    ];
    else if (Array.isArray(operands)) return operands;
    else return [
      operands
    ];
  }
  decode(stream7, parent) {
    let end2 = stream7.pos + parent.length;
    let ret = {};
    let operands = [];
    Object.defineProperties(ret, {
      parent: {
        value: parent
      },
      _startOffset: {
        value: stream7.pos
      }
    });
    for (let key in this.fields) {
      let field = this.fields[key];
      ret[field[1]] = field[3];
    }
    while (stream7.pos < end2) {
      let b3 = stream7.readUInt8();
      if (b3 < 28) {
        if (b3 === 12) b3 = b3 << 8 | stream7.readUInt8();
        let field = this.fields[b3];
        if (!field) throw new Error(`Unknown operator ${b3}`);
        let val = this.decodeOperands(field[2], stream7, ret, operands);
        if (val != null) {
          if (val instanceof (0, PropertyDescriptor)) Object.defineProperty(ret, field[1], val);
          else ret[field[1]] = val;
        }
        operands = [];
      } else operands.push((0, $c2d28e92708f99da$export$2e2bcd8739ae039).decode(stream7, b3));
    }
    return ret;
  }
  size(dict, parent, includePointers = true) {
    let ctx = {
      parent,
      val: dict,
      pointerSize: 0,
      startOffset: parent.startOffset || 0
    };
    let len = 0;
    for (let k3 in this.fields) {
      let field = this.fields[k3];
      let val = dict[field[1]];
      if (val == null || (0, import_fast_deep_equal.default)(val, field[3])) continue;
      let operands = this.encodeOperands(field[2], null, ctx, val);
      for (let op of operands) len += (0, $c2d28e92708f99da$export$2e2bcd8739ae039).size(op);
      let key = Array.isArray(field[0]) ? field[0] : [
        field[0]
      ];
      len += key.length;
    }
    if (includePointers) len += ctx.pointerSize;
    return len;
  }
  encode(stream7, dict, parent) {
    let ctx = {
      pointers: [],
      startOffset: stream7.pos,
      parent,
      val: dict,
      pointerSize: 0
    };
    ctx.pointerOffset = stream7.pos + this.size(dict, ctx, false);
    for (let field of this.ops) {
      let val = dict[field[1]];
      if (val == null || (0, import_fast_deep_equal.default)(val, field[3])) continue;
      let operands = this.encodeOperands(field[2], stream7, ctx, val);
      for (let op of operands) (0, $c2d28e92708f99da$export$2e2bcd8739ae039).encode(stream7, op);
      let key = Array.isArray(field[0]) ? field[0] : [
        field[0]
      ];
      for (let op of key) stream7.writeUInt8(op);
    }
    let i5 = 0;
    while (i5 < ctx.pointers.length) {
      let ptr = ctx.pointers[i5++];
      ptr.type.encode(stream7, ptr.val, ptr.parent);
    }
    return;
  }
  constructor(ops = []) {
    this.ops = ops;
    this.fields = {};
    for (let field of ops) {
      let key = Array.isArray(field[0]) ? field[0][0] << 8 | field[0][1] : field[0];
      this.fields[key] = field;
    }
  }
};
var $0e34a43d05bde82c$export$2e2bcd8739ae039 = class extends Pointer {
  decode(stream7, parent, operands) {
    this.offsetType = {
      decode: () => operands[0]
    };
    return super.decode(stream7, parent, operands);
  }
  encode(stream7, value2, ctx) {
    if (!stream7) {
      this.offsetType = {
        size: () => 0
      };
      this.size(value2, ctx);
      return [
        new $0e34a43d05bde82c$var$Ptr(0)
      ];
    }
    let ptr = null;
    this.offsetType = {
      encode: (stream8, val) => ptr = val
    };
    super.encode(stream7, value2, ctx);
    return [
      new $0e34a43d05bde82c$var$Ptr(ptr)
    ];
  }
  constructor(type, options = {}) {
    if (options.type == null) options.type = "global";
    super(null, type, options);
  }
};
var $0e34a43d05bde82c$var$Ptr = class {
  valueOf() {
    return this.val;
  }
  constructor(val) {
    this.val = val;
    this.forceLarge = true;
  }
};
var $6d59db2e29cc77b3$var$CFFBlendOp = class {
  static decode(stream7, parent, operands) {
    let numBlends = operands.pop();
    while (operands.length > numBlends) operands.pop();
  }
};
var $6d59db2e29cc77b3$export$2e2bcd8739ae039 = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([
  // key       name                    type                                          default
  [
    6,
    "BlueValues",
    "delta",
    null
  ],
  [
    7,
    "OtherBlues",
    "delta",
    null
  ],
  [
    8,
    "FamilyBlues",
    "delta",
    null
  ],
  [
    9,
    "FamilyOtherBlues",
    "delta",
    null
  ],
  [
    [
      12,
      9
    ],
    "BlueScale",
    "number",
    0.039625
  ],
  [
    [
      12,
      10
    ],
    "BlueShift",
    "number",
    7
  ],
  [
    [
      12,
      11
    ],
    "BlueFuzz",
    "number",
    1
  ],
  [
    10,
    "StdHW",
    "number",
    null
  ],
  [
    11,
    "StdVW",
    "number",
    null
  ],
  [
    [
      12,
      12
    ],
    "StemSnapH",
    "delta",
    null
  ],
  [
    [
      12,
      13
    ],
    "StemSnapV",
    "delta",
    null
  ],
  [
    [
      12,
      14
    ],
    "ForceBold",
    "boolean",
    false
  ],
  [
    [
      12,
      17
    ],
    "LanguageGroup",
    "number",
    0
  ],
  [
    [
      12,
      18
    ],
    "ExpansionFactor",
    "number",
    0.06
  ],
  [
    [
      12,
      19
    ],
    "initialRandomSeed",
    "number",
    0
  ],
  [
    20,
    "defaultWidthX",
    "number",
    0
  ],
  [
    21,
    "nominalWidthX",
    "number",
    0
  ],
  [
    22,
    "vsindex",
    "number",
    0
  ],
  [
    23,
    "blend",
    $6d59db2e29cc77b3$var$CFFBlendOp,
    null
  ],
  [
    19,
    "Subrs",
    new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)(), {
      type: "local"
    }),
    null
  ]
]);
var $229224aec43783c5$export$2e2bcd8739ae039 = [
  ".notdef",
  "space",
  "exclam",
  "quotedbl",
  "numbersign",
  "dollar",
  "percent",
  "ampersand",
  "quoteright",
  "parenleft",
  "parenright",
  "asterisk",
  "plus",
  "comma",
  "hyphen",
  "period",
  "slash",
  "zero",
  "one",
  "two",
  "three",
  "four",
  "five",
  "six",
  "seven",
  "eight",
  "nine",
  "colon",
  "semicolon",
  "less",
  "equal",
  "greater",
  "question",
  "at",
  "A",
  "B",
  "C",
  "D",
  "E",
  "F",
  "G",
  "H",
  "I",
  "J",
  "K",
  "L",
  "M",
  "N",
  "O",
  "P",
  "Q",
  "R",
  "S",
  "T",
  "U",
  "V",
  "W",
  "X",
  "Y",
  "Z",
  "bracketleft",
  "backslash",
  "bracketright",
  "asciicircum",
  "underscore",
  "quoteleft",
  "a",
  "b",
  "c",
  "d",
  "e",
  "f",
  "g",
  "h",
  "i",
  "j",
  "k",
  "l",
  "m",
  "n",
  "o",
  "p",
  "q",
  "r",
  "s",
  "t",
  "u",
  "v",
  "w",
  "x",
  "y",
  "z",
  "braceleft",
  "bar",
  "braceright",
  "asciitilde",
  "exclamdown",
  "cent",
  "sterling",
  "fraction",
  "yen",
  "florin",
  "section",
  "currency",
  "quotesingle",
  "quotedblleft",
  "guillemotleft",
  "guilsinglleft",
  "guilsinglright",
  "fi",
  "fl",
  "endash",
  "dagger",
  "daggerdbl",
  "periodcentered",
  "paragraph",
  "bullet",
  "quotesinglbase",
  "quotedblbase",
  "quotedblright",
  "guillemotright",
  "ellipsis",
  "perthousand",
  "questiondown",
  "grave",
  "acute",
  "circumflex",
  "tilde",
  "macron",
  "breve",
  "dotaccent",
  "dieresis",
  "ring",
  "cedilla",
  "hungarumlaut",
  "ogonek",
  "caron",
  "emdash",
  "AE",
  "ordfeminine",
  "Lslash",
  "Oslash",
  "OE",
  "ordmasculine",
  "ae",
  "dotlessi",
  "lslash",
  "oslash",
  "oe",
  "germandbls",
  "onesuperior",
  "logicalnot",
  "mu",
  "trademark",
  "Eth",
  "onehalf",
  "plusminus",
  "Thorn",
  "onequarter",
  "divide",
  "brokenbar",
  "degree",
  "thorn",
  "threequarters",
  "twosuperior",
  "registered",
  "minus",
  "eth",
  "multiply",
  "threesuperior",
  "copyright",
  "Aacute",
  "Acircumflex",
  "Adieresis",
  "Agrave",
  "Aring",
  "Atilde",
  "Ccedilla",
  "Eacute",
  "Ecircumflex",
  "Edieresis",
  "Egrave",
  "Iacute",
  "Icircumflex",
  "Idieresis",
  "Igrave",
  "Ntilde",
  "Oacute",
  "Ocircumflex",
  "Odieresis",
  "Ograve",
  "Otilde",
  "Scaron",
  "Uacute",
  "Ucircumflex",
  "Udieresis",
  "Ugrave",
  "Yacute",
  "Ydieresis",
  "Zcaron",
  "aacute",
  "acircumflex",
  "adieresis",
  "agrave",
  "aring",
  "atilde",
  "ccedilla",
  "eacute",
  "ecircumflex",
  "edieresis",
  "egrave",
  "iacute",
  "icircumflex",
  "idieresis",
  "igrave",
  "ntilde",
  "oacute",
  "ocircumflex",
  "odieresis",
  "ograve",
  "otilde",
  "scaron",
  "uacute",
  "ucircumflex",
  "udieresis",
  "ugrave",
  "yacute",
  "ydieresis",
  "zcaron",
  "exclamsmall",
  "Hungarumlautsmall",
  "dollaroldstyle",
  "dollarsuperior",
  "ampersandsmall",
  "Acutesmall",
  "parenleftsuperior",
  "parenrightsuperior",
  "twodotenleader",
  "onedotenleader",
  "zerooldstyle",
  "oneoldstyle",
  "twooldstyle",
  "threeoldstyle",
  "fouroldstyle",
  "fiveoldstyle",
  "sixoldstyle",
  "sevenoldstyle",
  "eightoldstyle",
  "nineoldstyle",
  "commasuperior",
  "threequartersemdash",
  "periodsuperior",
  "questionsmall",
  "asuperior",
  "bsuperior",
  "centsuperior",
  "dsuperior",
  "esuperior",
  "isuperior",
  "lsuperior",
  "msuperior",
  "nsuperior",
  "osuperior",
  "rsuperior",
  "ssuperior",
  "tsuperior",
  "ff",
  "ffi",
  "ffl",
  "parenleftinferior",
  "parenrightinferior",
  "Circumflexsmall",
  "hyphensuperior",
  "Gravesmall",
  "Asmall",
  "Bsmall",
  "Csmall",
  "Dsmall",
  "Esmall",
  "Fsmall",
  "Gsmall",
  "Hsmall",
  "Ismall",
  "Jsmall",
  "Ksmall",
  "Lsmall",
  "Msmall",
  "Nsmall",
  "Osmall",
  "Psmall",
  "Qsmall",
  "Rsmall",
  "Ssmall",
  "Tsmall",
  "Usmall",
  "Vsmall",
  "Wsmall",
  "Xsmall",
  "Ysmall",
  "Zsmall",
  "colonmonetary",
  "onefitted",
  "rupiah",
  "Tildesmall",
  "exclamdownsmall",
  "centoldstyle",
  "Lslashsmall",
  "Scaronsmall",
  "Zcaronsmall",
  "Dieresissmall",
  "Brevesmall",
  "Caronsmall",
  "Dotaccentsmall",
  "Macronsmall",
  "figuredash",
  "hypheninferior",
  "Ogoneksmall",
  "Ringsmall",
  "Cedillasmall",
  "questiondownsmall",
  "oneeighth",
  "threeeighths",
  "fiveeighths",
  "seveneighths",
  "onethird",
  "twothirds",
  "zerosuperior",
  "foursuperior",
  "fivesuperior",
  "sixsuperior",
  "sevensuperior",
  "eightsuperior",
  "ninesuperior",
  "zeroinferior",
  "oneinferior",
  "twoinferior",
  "threeinferior",
  "fourinferior",
  "fiveinferior",
  "sixinferior",
  "seveninferior",
  "eightinferior",
  "nineinferior",
  "centinferior",
  "dollarinferior",
  "periodinferior",
  "commainferior",
  "Agravesmall",
  "Aacutesmall",
  "Acircumflexsmall",
  "Atildesmall",
  "Adieresissmall",
  "Aringsmall",
  "AEsmall",
  "Ccedillasmall",
  "Egravesmall",
  "Eacutesmall",
  "Ecircumflexsmall",
  "Edieresissmall",
  "Igravesmall",
  "Iacutesmall",
  "Icircumflexsmall",
  "Idieresissmall",
  "Ethsmall",
  "Ntildesmall",
  "Ogravesmall",
  "Oacutesmall",
  "Ocircumflexsmall",
  "Otildesmall",
  "Odieresissmall",
  "OEsmall",
  "Oslashsmall",
  "Ugravesmall",
  "Uacutesmall",
  "Ucircumflexsmall",
  "Udieresissmall",
  "Yacutesmall",
  "Thornsmall",
  "Ydieresissmall",
  "001.000",
  "001.001",
  "001.002",
  "001.003",
  "Black",
  "Bold",
  "Book",
  "Light",
  "Medium",
  "Regular",
  "Roman",
  "Semibold"
];
var $bc0433d9b7e41f5f$export$dee0027060fa13bd = [
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "space",
  "exclam",
  "quotedbl",
  "numbersign",
  "dollar",
  "percent",
  "ampersand",
  "quoteright",
  "parenleft",
  "parenright",
  "asterisk",
  "plus",
  "comma",
  "hyphen",
  "period",
  "slash",
  "zero",
  "one",
  "two",
  "three",
  "four",
  "five",
  "six",
  "seven",
  "eight",
  "nine",
  "colon",
  "semicolon",
  "less",
  "equal",
  "greater",
  "question",
  "at",
  "A",
  "B",
  "C",
  "D",
  "E",
  "F",
  "G",
  "H",
  "I",
  "J",
  "K",
  "L",
  "M",
  "N",
  "O",
  "P",
  "Q",
  "R",
  "S",
  "T",
  "U",
  "V",
  "W",
  "X",
  "Y",
  "Z",
  "bracketleft",
  "backslash",
  "bracketright",
  "asciicircum",
  "underscore",
  "quoteleft",
  "a",
  "b",
  "c",
  "d",
  "e",
  "f",
  "g",
  "h",
  "i",
  "j",
  "k",
  "l",
  "m",
  "n",
  "o",
  "p",
  "q",
  "r",
  "s",
  "t",
  "u",
  "v",
  "w",
  "x",
  "y",
  "z",
  "braceleft",
  "bar",
  "braceright",
  "asciitilde",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "exclamdown",
  "cent",
  "sterling",
  "fraction",
  "yen",
  "florin",
  "section",
  "currency",
  "quotesingle",
  "quotedblleft",
  "guillemotleft",
  "guilsinglleft",
  "guilsinglright",
  "fi",
  "fl",
  "",
  "endash",
  "dagger",
  "daggerdbl",
  "periodcentered",
  "",
  "paragraph",
  "bullet",
  "quotesinglbase",
  "quotedblbase",
  "quotedblright",
  "guillemotright",
  "ellipsis",
  "perthousand",
  "",
  "questiondown",
  "",
  "grave",
  "acute",
  "circumflex",
  "tilde",
  "macron",
  "breve",
  "dotaccent",
  "dieresis",
  "",
  "ring",
  "cedilla",
  "",
  "hungarumlaut",
  "ogonek",
  "caron",
  "emdash",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "AE",
  "",
  "ordfeminine",
  "",
  "",
  "",
  "",
  "Lslash",
  "Oslash",
  "OE",
  "ordmasculine",
  "",
  "",
  "",
  "",
  "",
  "ae",
  "",
  "",
  "",
  "dotlessi",
  "",
  "",
  "lslash",
  "oslash",
  "oe",
  "germandbls"
];
var $bc0433d9b7e41f5f$export$4f58f497e14a53c3 = [
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "space",
  "exclamsmall",
  "Hungarumlautsmall",
  "",
  "dollaroldstyle",
  "dollarsuperior",
  "ampersandsmall",
  "Acutesmall",
  "parenleftsuperior",
  "parenrightsuperior",
  "twodotenleader",
  "onedotenleader",
  "comma",
  "hyphen",
  "period",
  "fraction",
  "zerooldstyle",
  "oneoldstyle",
  "twooldstyle",
  "threeoldstyle",
  "fouroldstyle",
  "fiveoldstyle",
  "sixoldstyle",
  "sevenoldstyle",
  "eightoldstyle",
  "nineoldstyle",
  "colon",
  "semicolon",
  "commasuperior",
  "threequartersemdash",
  "periodsuperior",
  "questionsmall",
  "",
  "asuperior",
  "bsuperior",
  "centsuperior",
  "dsuperior",
  "esuperior",
  "",
  "",
  "isuperior",
  "",
  "",
  "lsuperior",
  "msuperior",
  "nsuperior",
  "osuperior",
  "",
  "",
  "rsuperior",
  "ssuperior",
  "tsuperior",
  "",
  "ff",
  "fi",
  "fl",
  "ffi",
  "ffl",
  "parenleftinferior",
  "",
  "parenrightinferior",
  "Circumflexsmall",
  "hyphensuperior",
  "Gravesmall",
  "Asmall",
  "Bsmall",
  "Csmall",
  "Dsmall",
  "Esmall",
  "Fsmall",
  "Gsmall",
  "Hsmall",
  "Ismall",
  "Jsmall",
  "Ksmall",
  "Lsmall",
  "Msmall",
  "Nsmall",
  "Osmall",
  "Psmall",
  "Qsmall",
  "Rsmall",
  "Ssmall",
  "Tsmall",
  "Usmall",
  "Vsmall",
  "Wsmall",
  "Xsmall",
  "Ysmall",
  "Zsmall",
  "colonmonetary",
  "onefitted",
  "rupiah",
  "Tildesmall",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "exclamdownsmall",
  "centoldstyle",
  "Lslashsmall",
  "",
  "",
  "Scaronsmall",
  "Zcaronsmall",
  "Dieresissmall",
  "Brevesmall",
  "Caronsmall",
  "",
  "Dotaccentsmall",
  "",
  "",
  "Macronsmall",
  "",
  "",
  "figuredash",
  "hypheninferior",
  "",
  "",
  "Ogoneksmall",
  "Ringsmall",
  "Cedillasmall",
  "",
  "",
  "",
  "onequarter",
  "onehalf",
  "threequarters",
  "questiondownsmall",
  "oneeighth",
  "threeeighths",
  "fiveeighths",
  "seveneighths",
  "onethird",
  "twothirds",
  "",
  "",
  "zerosuperior",
  "onesuperior",
  "twosuperior",
  "threesuperior",
  "foursuperior",
  "fivesuperior",
  "sixsuperior",
  "sevensuperior",
  "eightsuperior",
  "ninesuperior",
  "zeroinferior",
  "oneinferior",
  "twoinferior",
  "threeinferior",
  "fourinferior",
  "fiveinferior",
  "sixinferior",
  "seveninferior",
  "eightinferior",
  "nineinferior",
  "centinferior",
  "dollarinferior",
  "periodinferior",
  "commainferior",
  "Agravesmall",
  "Aacutesmall",
  "Acircumflexsmall",
  "Atildesmall",
  "Adieresissmall",
  "Aringsmall",
  "AEsmall",
  "Ccedillasmall",
  "Egravesmall",
  "Eacutesmall",
  "Ecircumflexsmall",
  "Edieresissmall",
  "Igravesmall",
  "Iacutesmall",
  "Icircumflexsmall",
  "Idieresissmall",
  "Ethsmall",
  "Ntildesmall",
  "Ogravesmall",
  "Oacutesmall",
  "Ocircumflexsmall",
  "Otildesmall",
  "Odieresissmall",
  "OEsmall",
  "Oslashsmall",
  "Ugravesmall",
  "Uacutesmall",
  "Ucircumflexsmall",
  "Udieresissmall",
  "Yacutesmall",
  "Thornsmall",
  "Ydieresissmall"
];
var $ef658f5c9a1488b2$export$c33b50336c234f16 = [
  ".notdef",
  "space",
  "exclam",
  "quotedbl",
  "numbersign",
  "dollar",
  "percent",
  "ampersand",
  "quoteright",
  "parenleft",
  "parenright",
  "asterisk",
  "plus",
  "comma",
  "hyphen",
  "period",
  "slash",
  "zero",
  "one",
  "two",
  "three",
  "four",
  "five",
  "six",
  "seven",
  "eight",
  "nine",
  "colon",
  "semicolon",
  "less",
  "equal",
  "greater",
  "question",
  "at",
  "A",
  "B",
  "C",
  "D",
  "E",
  "F",
  "G",
  "H",
  "I",
  "J",
  "K",
  "L",
  "M",
  "N",
  "O",
  "P",
  "Q",
  "R",
  "S",
  "T",
  "U",
  "V",
  "W",
  "X",
  "Y",
  "Z",
  "bracketleft",
  "backslash",
  "bracketright",
  "asciicircum",
  "underscore",
  "quoteleft",
  "a",
  "b",
  "c",
  "d",
  "e",
  "f",
  "g",
  "h",
  "i",
  "j",
  "k",
  "l",
  "m",
  "n",
  "o",
  "p",
  "q",
  "r",
  "s",
  "t",
  "u",
  "v",
  "w",
  "x",
  "y",
  "z",
  "braceleft",
  "bar",
  "braceright",
  "asciitilde",
  "exclamdown",
  "cent",
  "sterling",
  "fraction",
  "yen",
  "florin",
  "section",
  "currency",
  "quotesingle",
  "quotedblleft",
  "guillemotleft",
  "guilsinglleft",
  "guilsinglright",
  "fi",
  "fl",
  "endash",
  "dagger",
  "daggerdbl",
  "periodcentered",
  "paragraph",
  "bullet",
  "quotesinglbase",
  "quotedblbase",
  "quotedblright",
  "guillemotright",
  "ellipsis",
  "perthousand",
  "questiondown",
  "grave",
  "acute",
  "circumflex",
  "tilde",
  "macron",
  "breve",
  "dotaccent",
  "dieresis",
  "ring",
  "cedilla",
  "hungarumlaut",
  "ogonek",
  "caron",
  "emdash",
  "AE",
  "ordfeminine",
  "Lslash",
  "Oslash",
  "OE",
  "ordmasculine",
  "ae",
  "dotlessi",
  "lslash",
  "oslash",
  "oe",
  "germandbls",
  "onesuperior",
  "logicalnot",
  "mu",
  "trademark",
  "Eth",
  "onehalf",
  "plusminus",
  "Thorn",
  "onequarter",
  "divide",
  "brokenbar",
  "degree",
  "thorn",
  "threequarters",
  "twosuperior",
  "registered",
  "minus",
  "eth",
  "multiply",
  "threesuperior",
  "copyright",
  "Aacute",
  "Acircumflex",
  "Adieresis",
  "Agrave",
  "Aring",
  "Atilde",
  "Ccedilla",
  "Eacute",
  "Ecircumflex",
  "Edieresis",
  "Egrave",
  "Iacute",
  "Icircumflex",
  "Idieresis",
  "Igrave",
  "Ntilde",
  "Oacute",
  "Ocircumflex",
  "Odieresis",
  "Ograve",
  "Otilde",
  "Scaron",
  "Uacute",
  "Ucircumflex",
  "Udieresis",
  "Ugrave",
  "Yacute",
  "Ydieresis",
  "Zcaron",
  "aacute",
  "acircumflex",
  "adieresis",
  "agrave",
  "aring",
  "atilde",
  "ccedilla",
  "eacute",
  "ecircumflex",
  "edieresis",
  "egrave",
  "iacute",
  "icircumflex",
  "idieresis",
  "igrave",
  "ntilde",
  "oacute",
  "ocircumflex",
  "odieresis",
  "ograve",
  "otilde",
  "scaron",
  "uacute",
  "ucircumflex",
  "udieresis",
  "ugrave",
  "yacute",
  "ydieresis",
  "zcaron"
];
var $ef658f5c9a1488b2$export$3ed0f9e1fee8d489 = [
  ".notdef",
  "space",
  "exclamsmall",
  "Hungarumlautsmall",
  "dollaroldstyle",
  "dollarsuperior",
  "ampersandsmall",
  "Acutesmall",
  "parenleftsuperior",
  "parenrightsuperior",
  "twodotenleader",
  "onedotenleader",
  "comma",
  "hyphen",
  "period",
  "fraction",
  "zerooldstyle",
  "oneoldstyle",
  "twooldstyle",
  "threeoldstyle",
  "fouroldstyle",
  "fiveoldstyle",
  "sixoldstyle",
  "sevenoldstyle",
  "eightoldstyle",
  "nineoldstyle",
  "colon",
  "semicolon",
  "commasuperior",
  "threequartersemdash",
  "periodsuperior",
  "questionsmall",
  "asuperior",
  "bsuperior",
  "centsuperior",
  "dsuperior",
  "esuperior",
  "isuperior",
  "lsuperior",
  "msuperior",
  "nsuperior",
  "osuperior",
  "rsuperior",
  "ssuperior",
  "tsuperior",
  "ff",
  "fi",
  "fl",
  "ffi",
  "ffl",
  "parenleftinferior",
  "parenrightinferior",
  "Circumflexsmall",
  "hyphensuperior",
  "Gravesmall",
  "Asmall",
  "Bsmall",
  "Csmall",
  "Dsmall",
  "Esmall",
  "Fsmall",
  "Gsmall",
  "Hsmall",
  "Ismall",
  "Jsmall",
  "Ksmall",
  "Lsmall",
  "Msmall",
  "Nsmall",
  "Osmall",
  "Psmall",
  "Qsmall",
  "Rsmall",
  "Ssmall",
  "Tsmall",
  "Usmall",
  "Vsmall",
  "Wsmall",
  "Xsmall",
  "Ysmall",
  "Zsmall",
  "colonmonetary",
  "onefitted",
  "rupiah",
  "Tildesmall",
  "exclamdownsmall",
  "centoldstyle",
  "Lslashsmall",
  "Scaronsmall",
  "Zcaronsmall",
  "Dieresissmall",
  "Brevesmall",
  "Caronsmall",
  "Dotaccentsmall",
  "Macronsmall",
  "figuredash",
  "hypheninferior",
  "Ogoneksmall",
  "Ringsmall",
  "Cedillasmall",
  "onequarter",
  "onehalf",
  "threequarters",
  "questiondownsmall",
  "oneeighth",
  "threeeighths",
  "fiveeighths",
  "seveneighths",
  "onethird",
  "twothirds",
  "zerosuperior",
  "onesuperior",
  "twosuperior",
  "threesuperior",
  "foursuperior",
  "fivesuperior",
  "sixsuperior",
  "sevensuperior",
  "eightsuperior",
  "ninesuperior",
  "zeroinferior",
  "oneinferior",
  "twoinferior",
  "threeinferior",
  "fourinferior",
  "fiveinferior",
  "sixinferior",
  "seveninferior",
  "eightinferior",
  "nineinferior",
  "centinferior",
  "dollarinferior",
  "periodinferior",
  "commainferior",
  "Agravesmall",
  "Aacutesmall",
  "Acircumflexsmall",
  "Atildesmall",
  "Adieresissmall",
  "Aringsmall",
  "AEsmall",
  "Ccedillasmall",
  "Egravesmall",
  "Eacutesmall",
  "Ecircumflexsmall",
  "Edieresissmall",
  "Igravesmall",
  "Iacutesmall",
  "Icircumflexsmall",
  "Idieresissmall",
  "Ethsmall",
  "Ntildesmall",
  "Ogravesmall",
  "Oacutesmall",
  "Ocircumflexsmall",
  "Otildesmall",
  "Odieresissmall",
  "OEsmall",
  "Oslashsmall",
  "Ugravesmall",
  "Uacutesmall",
  "Ucircumflexsmall",
  "Udieresissmall",
  "Yacutesmall",
  "Thornsmall",
  "Ydieresissmall"
];
var $ef658f5c9a1488b2$export$dc28be11139d4120 = [
  ".notdef",
  "space",
  "dollaroldstyle",
  "dollarsuperior",
  "parenleftsuperior",
  "parenrightsuperior",
  "twodotenleader",
  "onedotenleader",
  "comma",
  "hyphen",
  "period",
  "fraction",
  "zerooldstyle",
  "oneoldstyle",
  "twooldstyle",
  "threeoldstyle",
  "fouroldstyle",
  "fiveoldstyle",
  "sixoldstyle",
  "sevenoldstyle",
  "eightoldstyle",
  "nineoldstyle",
  "colon",
  "semicolon",
  "commasuperior",
  "threequartersemdash",
  "periodsuperior",
  "asuperior",
  "bsuperior",
  "centsuperior",
  "dsuperior",
  "esuperior",
  "isuperior",
  "lsuperior",
  "msuperior",
  "nsuperior",
  "osuperior",
  "rsuperior",
  "ssuperior",
  "tsuperior",
  "ff",
  "fi",
  "fl",
  "ffi",
  "ffl",
  "parenleftinferior",
  "parenrightinferior",
  "hyphensuperior",
  "colonmonetary",
  "onefitted",
  "rupiah",
  "centoldstyle",
  "figuredash",
  "hypheninferior",
  "onequarter",
  "onehalf",
  "threequarters",
  "oneeighth",
  "threeeighths",
  "fiveeighths",
  "seveneighths",
  "onethird",
  "twothirds",
  "zerosuperior",
  "onesuperior",
  "twosuperior",
  "threesuperior",
  "foursuperior",
  "fivesuperior",
  "sixsuperior",
  "sevensuperior",
  "eightsuperior",
  "ninesuperior",
  "zeroinferior",
  "oneinferior",
  "twoinferior",
  "threeinferior",
  "fourinferior",
  "fiveinferior",
  "sixinferior",
  "seveninferior",
  "eightinferior",
  "nineinferior",
  "centinferior",
  "dollarinferior",
  "periodinferior",
  "commainferior"
];
var $7cbbe4e24ef3cb75$var$LangSysTable = new Struct({
  reserved: new Reserved(uint16),
  reqFeatureIndex: uint16,
  featureCount: uint16,
  featureIndexes: new ArrayT(uint16, "featureCount")
});
var $7cbbe4e24ef3cb75$var$LangSysRecord = new Struct({
  tag: new StringT(4),
  langSys: new Pointer(uint16, $7cbbe4e24ef3cb75$var$LangSysTable, {
    type: "parent"
  })
});
var $7cbbe4e24ef3cb75$var$Script = new Struct({
  defaultLangSys: new Pointer(uint16, $7cbbe4e24ef3cb75$var$LangSysTable),
  count: uint16,
  langSysRecords: new ArrayT($7cbbe4e24ef3cb75$var$LangSysRecord, "count")
});
var $7cbbe4e24ef3cb75$var$ScriptRecord = new Struct({
  tag: new StringT(4),
  script: new Pointer(uint16, $7cbbe4e24ef3cb75$var$Script, {
    type: "parent"
  })
});
var $7cbbe4e24ef3cb75$export$3e15fc05ce864229 = new ArrayT($7cbbe4e24ef3cb75$var$ScriptRecord, uint16);
var $7cbbe4e24ef3cb75$var$FeatureParams = new Struct({
  version: uint16,
  nameID: uint16
});
var $7cbbe4e24ef3cb75$export$6e91cf7616333d5 = new Struct({
  featureParams: new Pointer(uint16, $7cbbe4e24ef3cb75$var$FeatureParams),
  lookupCount: uint16,
  lookupListIndexes: new ArrayT(uint16, "lookupCount")
});
var $7cbbe4e24ef3cb75$var$FeatureRecord = new Struct({
  tag: new StringT(4),
  feature: new Pointer(uint16, $7cbbe4e24ef3cb75$export$6e91cf7616333d5, {
    type: "parent"
  })
});
var $7cbbe4e24ef3cb75$export$aa18130def4b6cb4 = new ArrayT($7cbbe4e24ef3cb75$var$FeatureRecord, uint16);
var $7cbbe4e24ef3cb75$var$LookupFlags = new Struct({
  markAttachmentType: uint8,
  flags: new Bitfield(uint8, [
    "rightToLeft",
    "ignoreBaseGlyphs",
    "ignoreLigatures",
    "ignoreMarks",
    "useMarkFilteringSet"
  ])
});
function $7cbbe4e24ef3cb75$export$df0008c6ff2da22a(SubTable) {
  let Lookup = new Struct({
    lookupType: uint16,
    flags: $7cbbe4e24ef3cb75$var$LookupFlags,
    subTableCount: uint16,
    subTables: new ArrayT(new Pointer(uint16, SubTable), "subTableCount"),
    markFilteringSet: new Optional(uint16, (t4) => t4.flags.flags.useMarkFilteringSet)
  });
  return new LazyArray(new Pointer(uint16, Lookup), uint16);
}
var $7cbbe4e24ef3cb75$var$RangeRecord = new Struct({
  start: uint16,
  end: uint16,
  startCoverageIndex: uint16
});
var $7cbbe4e24ef3cb75$export$17608c3f81a6111 = new VersionedStruct(uint16, {
  1: {
    glyphCount: uint16,
    glyphs: new ArrayT(uint16, "glyphCount")
  },
  2: {
    rangeCount: uint16,
    rangeRecords: new ArrayT($7cbbe4e24ef3cb75$var$RangeRecord, "rangeCount")
  }
});
var $7cbbe4e24ef3cb75$var$ClassRangeRecord = new Struct({
  start: uint16,
  end: uint16,
  class: uint16
});
var $7cbbe4e24ef3cb75$export$843d551fbbafef71 = new VersionedStruct(uint16, {
  1: {
    startGlyph: uint16,
    glyphCount: uint16,
    classValueArray: new ArrayT(uint16, "glyphCount")
  },
  2: {
    classRangeCount: uint16,
    classRangeRecord: new ArrayT($7cbbe4e24ef3cb75$var$ClassRangeRecord, "classRangeCount")
  }
});
var $7cbbe4e24ef3cb75$export$8215d14a63d9fb10 = new Struct({
  a: uint16,
  b: uint16,
  deltaFormat: uint16
});
var $7cbbe4e24ef3cb75$var$LookupRecord = new Struct({
  sequenceIndex: uint16,
  lookupListIndex: uint16
});
var $7cbbe4e24ef3cb75$var$Rule = new Struct({
  glyphCount: uint16,
  lookupCount: uint16,
  input: new ArrayT(uint16, (t4) => t4.glyphCount - 1),
  lookupRecords: new ArrayT($7cbbe4e24ef3cb75$var$LookupRecord, "lookupCount")
});
var $7cbbe4e24ef3cb75$var$RuleSet = new ArrayT(new Pointer(uint16, $7cbbe4e24ef3cb75$var$Rule), uint16);
var $7cbbe4e24ef3cb75$var$ClassRule = new Struct({
  glyphCount: uint16,
  lookupCount: uint16,
  classes: new ArrayT(uint16, (t4) => t4.glyphCount - 1),
  lookupRecords: new ArrayT($7cbbe4e24ef3cb75$var$LookupRecord, "lookupCount")
});
var $7cbbe4e24ef3cb75$var$ClassSet = new ArrayT(new Pointer(uint16, $7cbbe4e24ef3cb75$var$ClassRule), uint16);
var $7cbbe4e24ef3cb75$export$841858b892ce1f4c = new VersionedStruct(uint16, {
  1: {
    coverage: new Pointer(uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),
    ruleSetCount: uint16,
    ruleSets: new ArrayT(new Pointer(uint16, $7cbbe4e24ef3cb75$var$RuleSet), "ruleSetCount")
  },
  2: {
    coverage: new Pointer(uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),
    classDef: new Pointer(uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),
    classSetCnt: uint16,
    classSet: new ArrayT(new Pointer(uint16, $7cbbe4e24ef3cb75$var$ClassSet), "classSetCnt")
  },
  3: {
    glyphCount: uint16,
    lookupCount: uint16,
    coverages: new ArrayT(new Pointer(uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), "glyphCount"),
    lookupRecords: new ArrayT($7cbbe4e24ef3cb75$var$LookupRecord, "lookupCount")
  }
});
var $7cbbe4e24ef3cb75$var$ChainRule = new Struct({
  backtrackGlyphCount: uint16,
  backtrack: new ArrayT(uint16, "backtrackGlyphCount"),
  inputGlyphCount: uint16,
  input: new ArrayT(uint16, (t4) => t4.inputGlyphCount - 1),
  lookaheadGlyphCount: uint16,
  lookahead: new ArrayT(uint16, "lookaheadGlyphCount"),
  lookupCount: uint16,
  lookupRecords: new ArrayT($7cbbe4e24ef3cb75$var$LookupRecord, "lookupCount")
});
var $7cbbe4e24ef3cb75$var$ChainRuleSet = new ArrayT(new Pointer(uint16, $7cbbe4e24ef3cb75$var$ChainRule), uint16);
var $7cbbe4e24ef3cb75$export$5e6d09e6861162f6 = new VersionedStruct(uint16, {
  1: {
    coverage: new Pointer(uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),
    chainCount: uint16,
    chainRuleSets: new ArrayT(new Pointer(uint16, $7cbbe4e24ef3cb75$var$ChainRuleSet), "chainCount")
  },
  2: {
    coverage: new Pointer(uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),
    backtrackClassDef: new Pointer(uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),
    inputClassDef: new Pointer(uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),
    lookaheadClassDef: new Pointer(uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),
    chainCount: uint16,
    chainClassSet: new ArrayT(new Pointer(uint16, $7cbbe4e24ef3cb75$var$ChainRuleSet), "chainCount")
  },
  3: {
    backtrackGlyphCount: uint16,
    backtrackCoverage: new ArrayT(new Pointer(uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), "backtrackGlyphCount"),
    inputGlyphCount: uint16,
    inputCoverage: new ArrayT(new Pointer(uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), "inputGlyphCount"),
    lookaheadGlyphCount: uint16,
    lookaheadCoverage: new ArrayT(new Pointer(uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), "lookaheadGlyphCount"),
    lookupCount: uint16,
    lookupRecords: new ArrayT($7cbbe4e24ef3cb75$var$LookupRecord, "lookupCount")
  }
});
var $1a47b0c45c1c22fe$var$F2DOT14 = new Fixed(16, "BE", 14);
var $1a47b0c45c1c22fe$var$RegionAxisCoordinates = new Struct({
  startCoord: $1a47b0c45c1c22fe$var$F2DOT14,
  peakCoord: $1a47b0c45c1c22fe$var$F2DOT14,
  endCoord: $1a47b0c45c1c22fe$var$F2DOT14
});
var $1a47b0c45c1c22fe$var$VariationRegionList = new Struct({
  axisCount: uint16,
  regionCount: uint16,
  variationRegions: new ArrayT(new ArrayT($1a47b0c45c1c22fe$var$RegionAxisCoordinates, "axisCount"), "regionCount")
});
var $1a47b0c45c1c22fe$var$DeltaSet = new Struct({
  shortDeltas: new ArrayT(int16, (t4) => t4.parent.shortDeltaCount),
  regionDeltas: new ArrayT(int8, (t4) => t4.parent.regionIndexCount - t4.parent.shortDeltaCount),
  deltas: (t4) => t4.shortDeltas.concat(t4.regionDeltas)
});
var $1a47b0c45c1c22fe$var$ItemVariationData = new Struct({
  itemCount: uint16,
  shortDeltaCount: uint16,
  regionIndexCount: uint16,
  regionIndexes: new ArrayT(uint16, "regionIndexCount"),
  deltaSets: new ArrayT($1a47b0c45c1c22fe$var$DeltaSet, "itemCount")
});
var $1a47b0c45c1c22fe$export$fe1b122a2710f241 = new Struct({
  format: uint16,
  variationRegionList: new Pointer(uint32, $1a47b0c45c1c22fe$var$VariationRegionList),
  variationDataCount: uint16,
  itemVariationData: new ArrayT(new Pointer(uint32, $1a47b0c45c1c22fe$var$ItemVariationData), "variationDataCount")
});
var $1a47b0c45c1c22fe$var$ConditionTable = new VersionedStruct(uint16, {
  1: {
    axisIndex: uint16,
    axisIndex: uint16,
    filterRangeMinValue: $1a47b0c45c1c22fe$var$F2DOT14,
    filterRangeMaxValue: $1a47b0c45c1c22fe$var$F2DOT14
  }
});
var $1a47b0c45c1c22fe$var$ConditionSet = new Struct({
  conditionCount: uint16,
  conditionTable: new ArrayT(new Pointer(uint32, $1a47b0c45c1c22fe$var$ConditionTable), "conditionCount")
});
var $1a47b0c45c1c22fe$var$FeatureTableSubstitutionRecord = new Struct({
  featureIndex: uint16,
  alternateFeatureTable: new Pointer(uint32, (0, $7cbbe4e24ef3cb75$export$6e91cf7616333d5), {
    type: "parent"
  })
});
var $1a47b0c45c1c22fe$var$FeatureTableSubstitution = new Struct({
  version: fixed32,
  substitutionCount: uint16,
  substitutions: new ArrayT($1a47b0c45c1c22fe$var$FeatureTableSubstitutionRecord, "substitutionCount")
});
var $1a47b0c45c1c22fe$var$FeatureVariationRecord = new Struct({
  conditionSet: new Pointer(uint32, $1a47b0c45c1c22fe$var$ConditionSet, {
    type: "parent"
  }),
  featureTableSubstitution: new Pointer(uint32, $1a47b0c45c1c22fe$var$FeatureTableSubstitution, {
    type: "parent"
  })
});
var $1a47b0c45c1c22fe$export$441b70b7971dd419 = new Struct({
  majorVersion: uint16,
  minorVersion: uint16,
  featureVariationRecordCount: uint32,
  featureVariationRecords: new ArrayT($1a47b0c45c1c22fe$var$FeatureVariationRecord, "featureVariationRecordCount")
});
var $b84fd3dd9d8eddb2$var$PredefinedOp = class {
  decode(stream7, parent, operands) {
    if (this.predefinedOps[operands[0]]) return this.predefinedOps[operands[0]];
    return this.type.decode(stream7, parent, operands);
  }
  size(value2, ctx) {
    return this.type.size(value2, ctx);
  }
  encode(stream7, value2, ctx) {
    let index2 = this.predefinedOps.indexOf(value2);
    if (index2 !== -1) return index2;
    return this.type.encode(stream7, value2, ctx);
  }
  constructor(predefinedOps, type) {
    this.predefinedOps = predefinedOps;
    this.type = type;
  }
};
var $b84fd3dd9d8eddb2$var$CFFEncodingVersion = class extends NumberT {
  decode(stream7) {
    return uint8.decode(stream7) & 127;
  }
  constructor() {
    super("UInt8");
  }
};
var $b84fd3dd9d8eddb2$var$Range1 = new Struct({
  first: uint16,
  nLeft: uint8
});
var $b84fd3dd9d8eddb2$var$Range2 = new Struct({
  first: uint16,
  nLeft: uint16
});
var $b84fd3dd9d8eddb2$var$CFFCustomEncoding = new VersionedStruct(new $b84fd3dd9d8eddb2$var$CFFEncodingVersion(), {
  0: {
    nCodes: uint8,
    codes: new ArrayT(uint8, "nCodes")
  },
  1: {
    nRanges: uint8,
    ranges: new ArrayT($b84fd3dd9d8eddb2$var$Range1, "nRanges")
  }
});
var $b84fd3dd9d8eddb2$var$CFFEncoding = new $b84fd3dd9d8eddb2$var$PredefinedOp([
  (0, $bc0433d9b7e41f5f$export$dee0027060fa13bd),
  (0, $bc0433d9b7e41f5f$export$4f58f497e14a53c3)
], new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$CFFCustomEncoding, {
  lazy: true
}));
var $b84fd3dd9d8eddb2$var$RangeArray = class extends ArrayT {
  decode(stream7, parent) {
    let length2 = (0, resolveLength)(this.length, stream7, parent);
    let count = 0;
    let res = [];
    while (count < length2) {
      let range2 = this.type.decode(stream7, parent);
      range2.offset = count;
      count += range2.nLeft + 1;
      res.push(range2);
    }
    return res;
  }
};
var $b84fd3dd9d8eddb2$var$CFFCustomCharset = new VersionedStruct(uint8, {
  0: {
    glyphs: new ArrayT(uint16, (t4) => t4.parent.CharStrings.length - 1)
  },
  1: {
    ranges: new $b84fd3dd9d8eddb2$var$RangeArray($b84fd3dd9d8eddb2$var$Range1, (t4) => t4.parent.CharStrings.length - 1)
  },
  2: {
    ranges: new $b84fd3dd9d8eddb2$var$RangeArray($b84fd3dd9d8eddb2$var$Range2, (t4) => t4.parent.CharStrings.length - 1)
  }
});
var $b84fd3dd9d8eddb2$var$CFFCharset = new $b84fd3dd9d8eddb2$var$PredefinedOp([
  (0, $ef658f5c9a1488b2$export$c33b50336c234f16),
  (0, $ef658f5c9a1488b2$export$3ed0f9e1fee8d489),
  (0, $ef658f5c9a1488b2$export$dc28be11139d4120)
], new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$CFFCustomCharset, {
  lazy: true
}));
var $b84fd3dd9d8eddb2$var$FDRange3 = new Struct({
  first: uint16,
  fd: uint8
});
var $b84fd3dd9d8eddb2$var$FDRange4 = new Struct({
  first: uint32,
  fd: uint16
});
var $b84fd3dd9d8eddb2$var$FDSelect = new VersionedStruct(uint8, {
  0: {
    fds: new ArrayT(uint8, (t4) => t4.parent.CharStrings.length)
  },
  3: {
    nRanges: uint16,
    ranges: new ArrayT($b84fd3dd9d8eddb2$var$FDRange3, "nRanges"),
    sentinel: uint16
  },
  4: {
    nRanges: uint32,
    ranges: new ArrayT($b84fd3dd9d8eddb2$var$FDRange4, "nRanges"),
    sentinel: uint32
  }
});
var $b84fd3dd9d8eddb2$var$ptr = new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)((0, $6d59db2e29cc77b3$export$2e2bcd8739ae039));
var $b84fd3dd9d8eddb2$var$CFFPrivateOp = class {
  decode(stream7, parent, operands) {
    parent.length = operands[0];
    return $b84fd3dd9d8eddb2$var$ptr.decode(stream7, parent, [
      operands[1]
    ]);
  }
  size(dict, ctx) {
    return [
      (0, $6d59db2e29cc77b3$export$2e2bcd8739ae039).size(dict, ctx, false),
      $b84fd3dd9d8eddb2$var$ptr.size(dict, ctx)[0]
    ];
  }
  encode(stream7, dict, ctx) {
    return [
      (0, $6d59db2e29cc77b3$export$2e2bcd8739ae039).size(dict, ctx, false),
      $b84fd3dd9d8eddb2$var$ptr.encode(stream7, dict, ctx)[0]
    ];
  }
};
var $b84fd3dd9d8eddb2$var$FontDict = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([
  // key       name                   type(s)                                 default
  [
    18,
    "Private",
    new $b84fd3dd9d8eddb2$var$CFFPrivateOp(),
    null
  ],
  [
    [
      12,
      38
    ],
    "FontName",
    "sid",
    null
  ],
  [
    [
      12,
      7
    ],
    "FontMatrix",
    "array",
    [
      1e-3,
      0,
      0,
      1e-3,
      0,
      0
    ]
  ],
  [
    [
      12,
      5
    ],
    "PaintType",
    "number",
    0
  ]
]);
var $b84fd3dd9d8eddb2$var$CFFTopDict = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([
  // key       name                   type(s)                                 default
  [
    [
      12,
      30
    ],
    "ROS",
    [
      "sid",
      "sid",
      "number"
    ],
    null
  ],
  [
    0,
    "version",
    "sid",
    null
  ],
  [
    1,
    "Notice",
    "sid",
    null
  ],
  [
    [
      12,
      0
    ],
    "Copyright",
    "sid",
    null
  ],
  [
    2,
    "FullName",
    "sid",
    null
  ],
  [
    3,
    "FamilyName",
    "sid",
    null
  ],
  [
    4,
    "Weight",
    "sid",
    null
  ],
  [
    [
      12,
      1
    ],
    "isFixedPitch",
    "boolean",
    false
  ],
  [
    [
      12,
      2
    ],
    "ItalicAngle",
    "number",
    0
  ],
  [
    [
      12,
      3
    ],
    "UnderlinePosition",
    "number",
    -100
  ],
  [
    [
      12,
      4
    ],
    "UnderlineThickness",
    "number",
    50
  ],
  [
    [
      12,
      5
    ],
    "PaintType",
    "number",
    0
  ],
  [
    [
      12,
      6
    ],
    "CharstringType",
    "number",
    2
  ],
  [
    [
      12,
      7
    ],
    "FontMatrix",
    "array",
    [
      1e-3,
      0,
      0,
      1e-3,
      0,
      0
    ]
  ],
  [
    13,
    "UniqueID",
    "number",
    null
  ],
  [
    5,
    "FontBBox",
    "array",
    [
      0,
      0,
      0,
      0
    ]
  ],
  [
    [
      12,
      8
    ],
    "StrokeWidth",
    "number",
    0
  ],
  [
    14,
    "XUID",
    "array",
    null
  ],
  [
    15,
    "charset",
    $b84fd3dd9d8eddb2$var$CFFCharset,
    (0, $ef658f5c9a1488b2$export$c33b50336c234f16)
  ],
  [
    16,
    "Encoding",
    $b84fd3dd9d8eddb2$var$CFFEncoding,
    (0, $bc0433d9b7e41f5f$export$dee0027060fa13bd)
  ],
  [
    17,
    "CharStrings",
    new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)()),
    null
  ],
  [
    18,
    "Private",
    new $b84fd3dd9d8eddb2$var$CFFPrivateOp(),
    null
  ],
  [
    [
      12,
      20
    ],
    "SyntheticBase",
    "number",
    null
  ],
  [
    [
      12,
      21
    ],
    "PostScript",
    "sid",
    null
  ],
  [
    [
      12,
      22
    ],
    "BaseFontName",
    "sid",
    null
  ],
  [
    [
      12,
      23
    ],
    "BaseFontBlend",
    "delta",
    null
  ],
  // CID font specific
  [
    [
      12,
      31
    ],
    "CIDFontVersion",
    "number",
    0
  ],
  [
    [
      12,
      32
    ],
    "CIDFontRevision",
    "number",
    0
  ],
  [
    [
      12,
      33
    ],
    "CIDFontType",
    "number",
    0
  ],
  [
    [
      12,
      34
    ],
    "CIDCount",
    "number",
    8720
  ],
  [
    [
      12,
      35
    ],
    "UIDBase",
    "number",
    null
  ],
  [
    [
      12,
      37
    ],
    "FDSelect",
    new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FDSelect),
    null
  ],
  [
    [
      12,
      36
    ],
    "FDArray",
    new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FontDict)),
    null
  ],
  [
    [
      12,
      38
    ],
    "FontName",
    "sid",
    null
  ]
]);
var $b84fd3dd9d8eddb2$var$VariationStore = new Struct({
  length: uint16,
  itemVariationStore: (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241)
});
var $b84fd3dd9d8eddb2$var$CFF2TopDict = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([
  [
    [
      12,
      7
    ],
    "FontMatrix",
    "array",
    [
      1e-3,
      0,
      0,
      1e-3,
      0,
      0
    ]
  ],
  [
    17,
    "CharStrings",
    new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)()),
    null
  ],
  [
    [
      12,
      37
    ],
    "FDSelect",
    new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FDSelect),
    null
  ],
  [
    [
      12,
      36
    ],
    "FDArray",
    new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FontDict)),
    null
  ],
  [
    24,
    "vstore",
    new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$VariationStore),
    null
  ],
  [
    25,
    "maxstack",
    "number",
    193
  ]
]);
var $b84fd3dd9d8eddb2$var$CFFTop = new VersionedStruct(fixed16, {
  1: {
    hdrSize: uint8,
    offSize: uint8,
    nameIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)(new StringT("length")),
    topDictIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$CFFTopDict),
    stringIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)(new StringT("length")),
    globalSubrIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)()
  },
  2: {
    hdrSize: uint8,
    length: uint16,
    topDict: $b84fd3dd9d8eddb2$var$CFF2TopDict,
    globalSubrIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)()
  }
});
var $b84fd3dd9d8eddb2$export$2e2bcd8739ae039 = $b84fd3dd9d8eddb2$var$CFFTop;
var $822ac0d589e4e237$var$CFFFont = class _$822ac0d589e4e237$var$CFFFont {
  static decode(stream7) {
    return new _$822ac0d589e4e237$var$CFFFont(stream7);
  }
  decode() {
    let start2 = this.stream.pos;
    let top = (0, $b84fd3dd9d8eddb2$export$2e2bcd8739ae039).decode(this.stream);
    for (let key in top) {
      let val = top[key];
      this[key] = val;
    }
    if (this.version < 2) {
      if (this.topDictIndex.length !== 1) throw new Error("Only a single font is allowed in CFF");
      this.topDict = this.topDictIndex[0];
    }
    this.isCIDFont = this.topDict.ROS != null;
    return this;
  }
  string(sid) {
    if (this.version >= 2) return null;
    if (sid < (0, $229224aec43783c5$export$2e2bcd8739ae039).length) return (0, $229224aec43783c5$export$2e2bcd8739ae039)[sid];
    return this.stringIndex[sid - (0, $229224aec43783c5$export$2e2bcd8739ae039).length];
  }
  get postscriptName() {
    if (this.version < 2) return this.nameIndex[0];
    return null;
  }
  get fullName() {
    return this.string(this.topDict.FullName);
  }
  get familyName() {
    return this.string(this.topDict.FamilyName);
  }
  getCharString(glyph) {
    this.stream.pos = this.topDict.CharStrings[glyph].offset;
    return this.stream.readBuffer(this.topDict.CharStrings[glyph].length);
  }
  getGlyphName(gid) {
    if (this.version >= 2) return null;
    if (this.isCIDFont) return null;
    let { charset } = this.topDict;
    if (Array.isArray(charset)) return charset[gid];
    if (gid === 0) return ".notdef";
    gid -= 1;
    switch (charset.version) {
      case 0:
        return this.string(charset.glyphs[gid]);
      case 1:
      case 2:
        for (let i5 = 0; i5 < charset.ranges.length; i5++) {
          let range2 = charset.ranges[i5];
          if (range2.offset <= gid && gid <= range2.offset + range2.nLeft) return this.string(range2.first + (gid - range2.offset));
        }
        break;
    }
    return null;
  }
  fdForGlyph(gid) {
    if (!this.topDict.FDSelect) return null;
    switch (this.topDict.FDSelect.version) {
      case 0:
        return this.topDict.FDSelect.fds[gid];
      case 3:
      case 4:
        let { ranges } = this.topDict.FDSelect;
        let low = 0;
        let high = ranges.length - 1;
        while (low <= high) {
          let mid = low + high >> 1;
          if (gid < ranges[mid].first) high = mid - 1;
          else if (mid < high && gid >= ranges[mid + 1].first) low = mid + 1;
          else return ranges[mid].fd;
        }
      default:
        throw new Error(`Unknown FDSelect version: ${this.topDict.FDSelect.version}`);
    }
  }
  privateDictForGlyph(gid) {
    if (this.topDict.FDSelect) {
      let fd2 = this.fdForGlyph(gid);
      if (this.topDict.FDArray[fd2]) return this.topDict.FDArray[fd2].Private;
      return null;
    }
    if (this.version < 2) return this.topDict.Private;
    return this.topDict.FDArray[0].Private;
  }
  constructor(stream7) {
    this.stream = stream7;
    this.decode();
  }
};
var $822ac0d589e4e237$export$2e2bcd8739ae039 = $822ac0d589e4e237$var$CFFFont;
var $2bbf2bc1ce37cd8f$var$VerticalOrigin = new Struct({
  glyphIndex: uint16,
  vertOriginY: int16
});
var $2bbf2bc1ce37cd8f$export$2e2bcd8739ae039 = new Struct({
  majorVersion: uint16,
  minorVersion: uint16,
  defaultVertOriginY: int16,
  numVertOriginYMetrics: uint16,
  metrics: new ArrayT($2bbf2bc1ce37cd8f$var$VerticalOrigin, "numVertOriginYMetrics")
});
var $0941618dc22a946d$export$16b227cb15d716a0 = new Struct({
  height: uint8,
  width: uint8,
  horiBearingX: int8,
  horiBearingY: int8,
  horiAdvance: uint8,
  vertBearingX: int8,
  vertBearingY: int8,
  vertAdvance: uint8
});
var $0941618dc22a946d$export$62c53e75f69bfe12 = new Struct({
  height: uint8,
  width: uint8,
  bearingX: int8,
  bearingY: int8,
  advance: uint8
});
var $0941618dc22a946d$var$EBDTComponent = new Struct({
  glyph: uint16,
  xOffset: int8,
  yOffset: int8
});
var $0941618dc22a946d$var$ByteAligned = class {
};
var $0941618dc22a946d$var$BitAligned = class {
};
var $0941618dc22a946d$export$f1f5ddeb20d14f = new VersionedStruct("version", {
  1: {
    metrics: $0941618dc22a946d$export$62c53e75f69bfe12,
    data: $0941618dc22a946d$var$ByteAligned
  },
  2: {
    metrics: $0941618dc22a946d$export$62c53e75f69bfe12,
    data: $0941618dc22a946d$var$BitAligned
  },
  // format 3 is deprecated
  // format 4 is not supported by Microsoft
  5: {
    data: $0941618dc22a946d$var$BitAligned
  },
  6: {
    metrics: $0941618dc22a946d$export$16b227cb15d716a0,
    data: $0941618dc22a946d$var$ByteAligned
  },
  7: {
    metrics: $0941618dc22a946d$export$16b227cb15d716a0,
    data: $0941618dc22a946d$var$BitAligned
  },
  8: {
    metrics: $0941618dc22a946d$export$62c53e75f69bfe12,
    pad: new Reserved(uint8),
    numComponents: uint16,
    components: new ArrayT($0941618dc22a946d$var$EBDTComponent, "numComponents")
  },
  9: {
    metrics: $0941618dc22a946d$export$16b227cb15d716a0,
    pad: new Reserved(uint8),
    numComponents: uint16,
    components: new ArrayT($0941618dc22a946d$var$EBDTComponent, "numComponents")
  },
  17: {
    metrics: $0941618dc22a946d$export$62c53e75f69bfe12,
    dataLen: uint32,
    data: new BufferT("dataLen")
  },
  18: {
    metrics: $0941618dc22a946d$export$16b227cb15d716a0,
    dataLen: uint32,
    data: new BufferT("dataLen")
  },
  19: {
    dataLen: uint32,
    data: new BufferT("dataLen")
  }
});
var $9911c4c7201c13de$var$SBitLineMetrics = new Struct({
  ascender: int8,
  descender: int8,
  widthMax: uint8,
  caretSlopeNumerator: int8,
  caretSlopeDenominator: int8,
  caretOffset: int8,
  minOriginSB: int8,
  minAdvanceSB: int8,
  maxBeforeBL: int8,
  minAfterBL: int8,
  pad: new Reserved(int8, 2)
});
var $9911c4c7201c13de$var$CodeOffsetPair = new Struct({
  glyphCode: uint16,
  offset: uint16
});
var $9911c4c7201c13de$var$IndexSubtable = new VersionedStruct(uint16, {
  header: {
    imageFormat: uint16,
    imageDataOffset: uint32
  },
  1: {
    offsetArray: new ArrayT(uint32, (t4) => t4.parent.lastGlyphIndex - t4.parent.firstGlyphIndex + 1)
  },
  2: {
    imageSize: uint32,
    bigMetrics: (0, $0941618dc22a946d$export$16b227cb15d716a0)
  },
  3: {
    offsetArray: new ArrayT(uint16, (t4) => t4.parent.lastGlyphIndex - t4.parent.firstGlyphIndex + 1)
  },
  4: {
    numGlyphs: uint32,
    glyphArray: new ArrayT($9911c4c7201c13de$var$CodeOffsetPair, (t4) => t4.numGlyphs + 1)
  },
  5: {
    imageSize: uint32,
    bigMetrics: (0, $0941618dc22a946d$export$16b227cb15d716a0),
    numGlyphs: uint32,
    glyphCodeArray: new ArrayT(uint16, "numGlyphs")
  }
});
var $9911c4c7201c13de$var$IndexSubtableArray = new Struct({
  firstGlyphIndex: uint16,
  lastGlyphIndex: uint16,
  subtable: new Pointer(uint32, $9911c4c7201c13de$var$IndexSubtable)
});
var $9911c4c7201c13de$var$BitmapSizeTable = new Struct({
  indexSubTableArray: new Pointer(uint32, new ArrayT($9911c4c7201c13de$var$IndexSubtableArray, 1), {
    type: "parent"
  }),
  indexTablesSize: uint32,
  numberOfIndexSubTables: uint32,
  colorRef: uint32,
  hori: $9911c4c7201c13de$var$SBitLineMetrics,
  vert: $9911c4c7201c13de$var$SBitLineMetrics,
  startGlyphIndex: uint16,
  endGlyphIndex: uint16,
  ppemX: uint8,
  ppemY: uint8,
  bitDepth: uint8,
  flags: new Bitfield(uint8, [
    "horizontal",
    "vertical"
  ])
});
var $9911c4c7201c13de$export$2e2bcd8739ae039 = new Struct({
  version: uint32,
  numSizes: uint32,
  sizes: new ArrayT($9911c4c7201c13de$var$BitmapSizeTable, "numSizes")
});
var $abb847051efd51b1$var$ImageTable = new Struct({
  ppem: uint16,
  resolution: uint16,
  imageOffsets: new ArrayT(new Pointer(uint32, "void"), (t4) => t4.parent.parent.maxp.numGlyphs + 1)
});
var $abb847051efd51b1$export$2e2bcd8739ae039 = new Struct({
  version: uint16,
  flags: new Bitfield(uint16, [
    "renderOutlines"
  ]),
  numImgTables: uint32,
  imageTables: new ArrayT(new Pointer(uint32, $abb847051efd51b1$var$ImageTable), "numImgTables")
});
var $eb629188f3dfefdd$var$LayerRecord = new Struct({
  gid: uint16,
  paletteIndex: uint16
  // Index value to use in the appropriate palette. This value must
});
var $eb629188f3dfefdd$var$BaseGlyphRecord = new Struct({
  gid: uint16,
  // and is not rendered for color.
  firstLayerIndex: uint16,
  // There will be numLayers consecutive entries for this base glyph.
  numLayers: uint16
});
var $eb629188f3dfefdd$export$2e2bcd8739ae039 = new Struct({
  version: uint16,
  numBaseGlyphRecords: uint16,
  baseGlyphRecord: new Pointer(uint32, new ArrayT($eb629188f3dfefdd$var$BaseGlyphRecord, "numBaseGlyphRecords")),
  layerRecords: new Pointer(uint32, new ArrayT($eb629188f3dfefdd$var$LayerRecord, "numLayerRecords"), {
    lazy: true
  }),
  numLayerRecords: uint16
});
var $08734b8e7dc64587$var$ColorRecord = new Struct({
  blue: uint8,
  green: uint8,
  red: uint8,
  alpha: uint8
});
var $08734b8e7dc64587$export$2e2bcd8739ae039 = new VersionedStruct(uint16, {
  header: {
    numPaletteEntries: uint16,
    numPalettes: uint16,
    numColorRecords: uint16,
    colorRecords: new Pointer(uint32, new ArrayT($08734b8e7dc64587$var$ColorRecord, "numColorRecords")),
    colorRecordIndices: new ArrayT(uint16, "numPalettes")
  },
  0: {},
  1: {
    offsetPaletteTypeArray: new Pointer(uint32, new ArrayT(uint32, "numPalettes")),
    offsetPaletteLabelArray: new Pointer(uint32, new ArrayT(uint16, "numPalettes")),
    offsetPaletteEntryLabelArray: new Pointer(uint32, new ArrayT(uint16, "numPaletteEntries"))
  }
});
var $497cef411d884e34$var$BaseCoord = new VersionedStruct(uint16, {
  1: {
    coordinate: int16
    // X or Y value, in design units
  },
  2: {
    coordinate: int16,
    referenceGlyph: uint16,
    baseCoordPoint: uint16
    // Index of contour point on the referenceGlyph
  },
  3: {
    coordinate: int16,
    deviceTable: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10))
    // Device table for X or Y value
  }
});
var $497cef411d884e34$var$BaseValues = new Struct({
  defaultIndex: uint16,
  baseCoordCount: uint16,
  baseCoords: new ArrayT(new Pointer(uint16, $497cef411d884e34$var$BaseCoord), "baseCoordCount")
});
var $497cef411d884e34$var$FeatMinMaxRecord = new Struct({
  tag: new StringT(4),
  minCoord: new Pointer(uint16, $497cef411d884e34$var$BaseCoord, {
    type: "parent"
  }),
  maxCoord: new Pointer(uint16, $497cef411d884e34$var$BaseCoord, {
    type: "parent"
  })
  // May be NULL
});
var $497cef411d884e34$var$MinMax = new Struct({
  minCoord: new Pointer(uint16, $497cef411d884e34$var$BaseCoord),
  maxCoord: new Pointer(uint16, $497cef411d884e34$var$BaseCoord),
  featMinMaxCount: uint16,
  featMinMaxRecords: new ArrayT($497cef411d884e34$var$FeatMinMaxRecord, "featMinMaxCount")
  // In alphabetical order
});
var $497cef411d884e34$var$BaseLangSysRecord = new Struct({
  tag: new StringT(4),
  minMax: new Pointer(uint16, $497cef411d884e34$var$MinMax, {
    type: "parent"
  })
});
var $497cef411d884e34$var$BaseScript = new Struct({
  baseValues: new Pointer(uint16, $497cef411d884e34$var$BaseValues),
  defaultMinMax: new Pointer(uint16, $497cef411d884e34$var$MinMax),
  baseLangSysCount: uint16,
  baseLangSysRecords: new ArrayT($497cef411d884e34$var$BaseLangSysRecord, "baseLangSysCount")
  // in alphabetical order by BaseLangSysTag
});
var $497cef411d884e34$var$BaseScriptRecord = new Struct({
  tag: new StringT(4),
  script: new Pointer(uint16, $497cef411d884e34$var$BaseScript, {
    type: "parent"
  })
});
var $497cef411d884e34$var$BaseScriptList = new ArrayT($497cef411d884e34$var$BaseScriptRecord, uint16);
var $497cef411d884e34$var$BaseTagList = new ArrayT(new StringT(4), uint16);
var $497cef411d884e34$var$Axis = new Struct({
  baseTagList: new Pointer(uint16, $497cef411d884e34$var$BaseTagList),
  baseScriptList: new Pointer(uint16, $497cef411d884e34$var$BaseScriptList)
});
var $497cef411d884e34$export$2e2bcd8739ae039 = new VersionedStruct(uint32, {
  header: {
    horizAxis: new Pointer(uint16, $497cef411d884e34$var$Axis),
    vertAxis: new Pointer(uint16, $497cef411d884e34$var$Axis)
    // May be NULL
  },
  65536: {},
  65537: {
    itemVariationStore: new Pointer(uint32, (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241))
  }
});
var $cf5f33c63ef209e6$var$AttachPoint = new ArrayT(uint16, uint16);
var $cf5f33c63ef209e6$var$AttachList = new Struct({
  coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
  glyphCount: uint16,
  attachPoints: new ArrayT(new Pointer(uint16, $cf5f33c63ef209e6$var$AttachPoint), "glyphCount")
});
var $cf5f33c63ef209e6$var$CaretValue = new VersionedStruct(uint16, {
  1: {
    coordinate: int16
  },
  2: {
    caretValuePoint: uint16
  },
  3: {
    coordinate: int16,
    deviceTable: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10))
  }
});
var $cf5f33c63ef209e6$var$LigGlyph = new ArrayT(new Pointer(uint16, $cf5f33c63ef209e6$var$CaretValue), uint16);
var $cf5f33c63ef209e6$var$LigCaretList = new Struct({
  coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
  ligGlyphCount: uint16,
  ligGlyphs: new ArrayT(new Pointer(uint16, $cf5f33c63ef209e6$var$LigGlyph), "ligGlyphCount")
});
var $cf5f33c63ef209e6$var$MarkGlyphSetsDef = new Struct({
  markSetTableFormat: uint16,
  markSetCount: uint16,
  coverage: new ArrayT(new Pointer(uint32, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)), "markSetCount")
});
var $cf5f33c63ef209e6$export$2e2bcd8739ae039 = new VersionedStruct(uint32, {
  header: {
    glyphClassDef: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71)),
    attachList: new Pointer(uint16, $cf5f33c63ef209e6$var$AttachList),
    ligCaretList: new Pointer(uint16, $cf5f33c63ef209e6$var$LigCaretList),
    markAttachClassDef: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71))
  },
  65536: {},
  65538: {
    markGlyphSetsDef: new Pointer(uint16, $cf5f33c63ef209e6$var$MarkGlyphSetsDef)
  },
  65539: {
    markGlyphSetsDef: new Pointer(uint16, $cf5f33c63ef209e6$var$MarkGlyphSetsDef),
    itemVariationStore: new Pointer(uint32, (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241))
  }
});
var $47e0e8ef515d9903$var$ValueFormat = new Bitfield(uint16, [
  "xPlacement",
  "yPlacement",
  "xAdvance",
  "yAdvance",
  "xPlaDevice",
  "yPlaDevice",
  "xAdvDevice",
  "yAdvDevice"
]);
var $47e0e8ef515d9903$var$types = {
  xPlacement: int16,
  yPlacement: int16,
  xAdvance: int16,
  yAdvance: int16,
  xPlaDevice: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {
    type: "global",
    relativeTo: (ctx) => ctx.rel
  }),
  yPlaDevice: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {
    type: "global",
    relativeTo: (ctx) => ctx.rel
  }),
  xAdvDevice: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {
    type: "global",
    relativeTo: (ctx) => ctx.rel
  }),
  yAdvDevice: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {
    type: "global",
    relativeTo: (ctx) => ctx.rel
  })
};
var $47e0e8ef515d9903$var$ValueRecord = class {
  buildStruct(parent) {
    let struct = parent;
    while (!struct[this.key] && struct.parent) struct = struct.parent;
    if (!struct[this.key]) return;
    let fields = {};
    fields.rel = () => struct._startOffset;
    let format = struct[this.key];
    for (let key in format) if (format[key]) fields[key] = $47e0e8ef515d9903$var$types[key];
    return new Struct(fields);
  }
  size(val, ctx) {
    return this.buildStruct(ctx).size(val, ctx);
  }
  decode(stream7, parent) {
    let res = this.buildStruct(parent).decode(stream7, parent);
    delete res.rel;
    return res;
  }
  constructor(key = "valueFormat") {
    this.key = key;
  }
};
var $47e0e8ef515d9903$var$PairValueRecord = new Struct({
  secondGlyph: uint16,
  value1: new $47e0e8ef515d9903$var$ValueRecord("valueFormat1"),
  value2: new $47e0e8ef515d9903$var$ValueRecord("valueFormat2")
});
var $47e0e8ef515d9903$var$PairSet = new ArrayT($47e0e8ef515d9903$var$PairValueRecord, uint16);
var $47e0e8ef515d9903$var$Class2Record = new Struct({
  value1: new $47e0e8ef515d9903$var$ValueRecord("valueFormat1"),
  value2: new $47e0e8ef515d9903$var$ValueRecord("valueFormat2")
});
var $47e0e8ef515d9903$var$Anchor = new VersionedStruct(uint16, {
  1: {
    xCoordinate: int16,
    yCoordinate: int16
  },
  2: {
    xCoordinate: int16,
    yCoordinate: int16,
    anchorPoint: uint16
  },
  3: {
    xCoordinate: int16,
    yCoordinate: int16,
    xDeviceTable: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10)),
    yDeviceTable: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10))
  }
});
var $47e0e8ef515d9903$var$EntryExitRecord = new Struct({
  entryAnchor: new Pointer(uint16, $47e0e8ef515d9903$var$Anchor, {
    type: "parent"
  }),
  exitAnchor: new Pointer(uint16, $47e0e8ef515d9903$var$Anchor, {
    type: "parent"
  })
});
var $47e0e8ef515d9903$var$MarkRecord = new Struct({
  class: uint16,
  markAnchor: new Pointer(uint16, $47e0e8ef515d9903$var$Anchor, {
    type: "parent"
  })
});
var $47e0e8ef515d9903$var$MarkArray = new ArrayT($47e0e8ef515d9903$var$MarkRecord, uint16);
var $47e0e8ef515d9903$var$BaseRecord = new ArrayT(new Pointer(uint16, $47e0e8ef515d9903$var$Anchor), (t4) => t4.parent.classCount);
var $47e0e8ef515d9903$var$BaseArray = new ArrayT($47e0e8ef515d9903$var$BaseRecord, uint16);
var $47e0e8ef515d9903$var$ComponentRecord = new ArrayT(new Pointer(uint16, $47e0e8ef515d9903$var$Anchor), (t4) => t4.parent.parent.classCount);
var $47e0e8ef515d9903$var$LigatureAttach = new ArrayT($47e0e8ef515d9903$var$ComponentRecord, uint16);
var $47e0e8ef515d9903$var$LigatureArray = new ArrayT(new Pointer(uint16, $47e0e8ef515d9903$var$LigatureAttach), uint16);
var $47e0e8ef515d9903$export$73a8cfb19cd43a0f = new VersionedStruct("lookupType", {
  1: new VersionedStruct(uint16, {
    1: {
      coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
      valueFormat: $47e0e8ef515d9903$var$ValueFormat,
      value: new $47e0e8ef515d9903$var$ValueRecord()
    },
    2: {
      coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
      valueFormat: $47e0e8ef515d9903$var$ValueFormat,
      valueCount: uint16,
      values: new LazyArray(new $47e0e8ef515d9903$var$ValueRecord(), "valueCount")
    }
  }),
  2: new VersionedStruct(uint16, {
    1: {
      coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
      valueFormat1: $47e0e8ef515d9903$var$ValueFormat,
      valueFormat2: $47e0e8ef515d9903$var$ValueFormat,
      pairSetCount: uint16,
      pairSets: new LazyArray(new Pointer(uint16, $47e0e8ef515d9903$var$PairSet), "pairSetCount")
    },
    2: {
      coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
      valueFormat1: $47e0e8ef515d9903$var$ValueFormat,
      valueFormat2: $47e0e8ef515d9903$var$ValueFormat,
      classDef1: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71)),
      classDef2: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71)),
      class1Count: uint16,
      class2Count: uint16,
      classRecords: new LazyArray(new LazyArray($47e0e8ef515d9903$var$Class2Record, "class2Count"), "class1Count")
    }
  }),
  3: {
    format: uint16,
    coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
    entryExitCount: uint16,
    entryExitRecords: new ArrayT($47e0e8ef515d9903$var$EntryExitRecord, "entryExitCount")
  },
  4: {
    format: uint16,
    markCoverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
    baseCoverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
    classCount: uint16,
    markArray: new Pointer(uint16, $47e0e8ef515d9903$var$MarkArray),
    baseArray: new Pointer(uint16, $47e0e8ef515d9903$var$BaseArray)
  },
  5: {
    format: uint16,
    markCoverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
    ligatureCoverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
    classCount: uint16,
    markArray: new Pointer(uint16, $47e0e8ef515d9903$var$MarkArray),
    ligatureArray: new Pointer(uint16, $47e0e8ef515d9903$var$LigatureArray)
  },
  6: {
    format: uint16,
    mark1Coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
    mark2Coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
    classCount: uint16,
    mark1Array: new Pointer(uint16, $47e0e8ef515d9903$var$MarkArray),
    mark2Array: new Pointer(uint16, $47e0e8ef515d9903$var$BaseArray)
  },
  7: (0, $7cbbe4e24ef3cb75$export$841858b892ce1f4c),
  8: (0, $7cbbe4e24ef3cb75$export$5e6d09e6861162f6),
  9: {
    posFormat: uint16,
    lookupType: uint16,
    extension: new Pointer(uint32, null)
  }
});
$47e0e8ef515d9903$export$73a8cfb19cd43a0f.versions[9].extension.type = $47e0e8ef515d9903$export$73a8cfb19cd43a0f;
var $47e0e8ef515d9903$export$2e2bcd8739ae039 = new VersionedStruct(uint32, {
  header: {
    scriptList: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$3e15fc05ce864229)),
    featureList: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$aa18130def4b6cb4)),
    lookupList: new Pointer(uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)($47e0e8ef515d9903$export$73a8cfb19cd43a0f))
  },
  65536: {},
  65537: {
    featureVariations: new Pointer(uint32, (0, $1a47b0c45c1c22fe$export$441b70b7971dd419))
  }
});
var $d3f442064af66e06$var$Sequence = new ArrayT(uint16, uint16);
var $d3f442064af66e06$var$AlternateSet = $d3f442064af66e06$var$Sequence;
var $d3f442064af66e06$var$Ligature = new Struct({
  glyph: uint16,
  compCount: uint16,
  components: new ArrayT(uint16, (t4) => t4.compCount - 1)
});
var $d3f442064af66e06$var$LigatureSet = new ArrayT(new Pointer(uint16, $d3f442064af66e06$var$Ligature), uint16);
var $d3f442064af66e06$var$GSUBLookup = new VersionedStruct("lookupType", {
  1: new VersionedStruct(uint16, {
    1: {
      coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
      deltaGlyphID: int16
    },
    2: {
      coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
      glyphCount: uint16,
      substitute: new LazyArray(uint16, "glyphCount")
    }
  }),
  2: {
    substFormat: uint16,
    coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
    count: uint16,
    sequences: new LazyArray(new Pointer(uint16, $d3f442064af66e06$var$Sequence), "count")
  },
  3: {
    substFormat: uint16,
    coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
    count: uint16,
    alternateSet: new LazyArray(new Pointer(uint16, $d3f442064af66e06$var$AlternateSet), "count")
  },
  4: {
    substFormat: uint16,
    coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
    count: uint16,
    ligatureSets: new LazyArray(new Pointer(uint16, $d3f442064af66e06$var$LigatureSet), "count")
  },
  5: (0, $7cbbe4e24ef3cb75$export$841858b892ce1f4c),
  6: (0, $7cbbe4e24ef3cb75$export$5e6d09e6861162f6),
  7: {
    substFormat: uint16,
    lookupType: uint16,
    extension: new Pointer(uint32, null)
  },
  8: {
    substFormat: uint16,
    coverage: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),
    backtrackCoverage: new ArrayT(new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)), "backtrackGlyphCount"),
    lookaheadGlyphCount: uint16,
    lookaheadCoverage: new ArrayT(new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)), "lookaheadGlyphCount"),
    glyphCount: uint16,
    substitutes: new ArrayT(uint16, "glyphCount")
  }
});
$d3f442064af66e06$var$GSUBLookup.versions[7].extension.type = $d3f442064af66e06$var$GSUBLookup;
var $d3f442064af66e06$export$2e2bcd8739ae039 = new VersionedStruct(uint32, {
  header: {
    scriptList: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$3e15fc05ce864229)),
    featureList: new Pointer(uint16, (0, $7cbbe4e24ef3cb75$export$aa18130def4b6cb4)),
    lookupList: new Pointer(uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)($d3f442064af66e06$var$GSUBLookup))
  },
  65536: {},
  65537: {
    featureVariations: new Pointer(uint32, (0, $1a47b0c45c1c22fe$export$441b70b7971dd419))
  }
});
var $71cfb3c4767fbd0c$var$JstfGSUBModList = new ArrayT(uint16, uint16);
var $71cfb3c4767fbd0c$var$JstfPriority = new Struct({
  shrinkageEnableGSUB: new Pointer(uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),
  shrinkageDisableGSUB: new Pointer(uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),
  shrinkageEnableGPOS: new Pointer(uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),
  shrinkageDisableGPOS: new Pointer(uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),
  shrinkageJstfMax: new Pointer(uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)((0, $47e0e8ef515d9903$export$73a8cfb19cd43a0f))),
  extensionEnableGSUB: new Pointer(uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),
  extensionDisableGSUB: new Pointer(uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),
  extensionEnableGPOS: new Pointer(uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),
  extensionDisableGPOS: new Pointer(uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),
  extensionJstfMax: new Pointer(uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)((0, $47e0e8ef515d9903$export$73a8cfb19cd43a0f)))
});
var $71cfb3c4767fbd0c$var$JstfLangSys = new ArrayT(new Pointer(uint16, $71cfb3c4767fbd0c$var$JstfPriority), uint16);
var $71cfb3c4767fbd0c$var$JstfLangSysRecord = new Struct({
  tag: new StringT(4),
  jstfLangSys: new Pointer(uint16, $71cfb3c4767fbd0c$var$JstfLangSys)
});
var $71cfb3c4767fbd0c$var$JstfScript = new Struct({
  extenderGlyphs: new Pointer(uint16, new ArrayT(uint16, uint16)),
  defaultLangSys: new Pointer(uint16, $71cfb3c4767fbd0c$var$JstfLangSys),
  langSysCount: uint16,
  langSysRecords: new ArrayT($71cfb3c4767fbd0c$var$JstfLangSysRecord, "langSysCount")
});
var $71cfb3c4767fbd0c$var$JstfScriptRecord = new Struct({
  tag: new StringT(4),
  script: new Pointer(uint16, $71cfb3c4767fbd0c$var$JstfScript, {
    type: "parent"
  })
});
var $71cfb3c4767fbd0c$export$2e2bcd8739ae039 = new Struct({
  version: uint32,
  scriptCount: uint16,
  scriptList: new ArrayT($71cfb3c4767fbd0c$var$JstfScriptRecord, "scriptCount")
});
var $d059a6bd2d3b5b63$var$VariableSizeNumber = class {
  decode(stream7, parent) {
    switch (this.size(0, parent)) {
      case 1:
        return stream7.readUInt8();
      case 2:
        return stream7.readUInt16BE();
      case 3:
        return stream7.readUInt24BE();
      case 4:
        return stream7.readUInt32BE();
    }
  }
  size(val, parent) {
    return (0, resolveLength)(this._size, null, parent);
  }
  constructor(size) {
    this._size = size;
  }
};
var $d059a6bd2d3b5b63$var$MapDataEntry = new Struct({
  entry: new $d059a6bd2d3b5b63$var$VariableSizeNumber((t4) => ((t4.parent.entryFormat & 48) >> 4) + 1),
  outerIndex: (t4) => t4.entry >> (t4.parent.entryFormat & 15) + 1,
  innerIndex: (t4) => t4.entry & (1 << (t4.parent.entryFormat & 15) + 1) - 1
});
var $d059a6bd2d3b5b63$var$DeltaSetIndexMap = new Struct({
  entryFormat: uint16,
  mapCount: uint16,
  mapData: new ArrayT($d059a6bd2d3b5b63$var$MapDataEntry, "mapCount")
});
var $d059a6bd2d3b5b63$export$2e2bcd8739ae039 = new Struct({
  majorVersion: uint16,
  minorVersion: uint16,
  itemVariationStore: new Pointer(uint32, (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241)),
  advanceWidthMapping: new Pointer(uint32, $d059a6bd2d3b5b63$var$DeltaSetIndexMap),
  LSBMapping: new Pointer(uint32, $d059a6bd2d3b5b63$var$DeltaSetIndexMap),
  RSBMapping: new Pointer(uint32, $d059a6bd2d3b5b63$var$DeltaSetIndexMap)
});
var $dceeca3e1977ce30$var$Signature = new Struct({
  format: uint32,
  length: uint32,
  offset: uint32
});
var $dceeca3e1977ce30$var$SignatureBlock = new Struct({
  reserved: new Reserved(uint16, 2),
  cbSignature: uint32,
  signature: new BufferT("cbSignature")
});
var $dceeca3e1977ce30$export$2e2bcd8739ae039 = new Struct({
  ulVersion: uint32,
  usNumSigs: uint16,
  usFlag: uint16,
  signatures: new ArrayT($dceeca3e1977ce30$var$Signature, "usNumSigs"),
  signatureBlocks: new ArrayT($dceeca3e1977ce30$var$SignatureBlock, "usNumSigs")
});
var $8acd740a9435aad0$var$GaspRange = new Struct({
  rangeMaxPPEM: uint16,
  rangeGaspBehavior: new Bitfield(uint16, [
    "grayscale",
    "gridfit",
    "symmetricSmoothing",
    "symmetricGridfit"
    // only in version 1, for ClearType
  ])
});
var $8acd740a9435aad0$export$2e2bcd8739ae039 = new Struct({
  version: uint16,
  numRanges: uint16,
  gaspRanges: new ArrayT($8acd740a9435aad0$var$GaspRange, "numRanges")
  // Sorted by ppem
});
var $b5f380243c34d6a0$var$DeviceRecord = new Struct({
  pixelSize: uint8,
  maximumWidth: uint8,
  widths: new ArrayT(uint8, (t4) => t4.parent.parent.maxp.numGlyphs)
});
var $b5f380243c34d6a0$export$2e2bcd8739ae039 = new Struct({
  version: uint16,
  numRecords: int16,
  sizeDeviceRecord: int32,
  records: new ArrayT($b5f380243c34d6a0$var$DeviceRecord, "numRecords")
});
var $ca2df1256966e313$var$KernPair = new Struct({
  left: uint16,
  right: uint16,
  value: int16
});
var $ca2df1256966e313$var$ClassTable = new Struct({
  firstGlyph: uint16,
  nGlyphs: uint16,
  offsets: new ArrayT(uint16, "nGlyphs"),
  max: (t4) => t4.offsets.length && Math.max.apply(Math, t4.offsets)
});
var $ca2df1256966e313$var$Kern2Array = new Struct({
  off: (t4) => t4._startOffset - t4.parent.parent._startOffset,
  len: (t4) => ((t4.parent.leftTable.max - t4.off) / t4.parent.rowWidth + 1) * (t4.parent.rowWidth / 2),
  values: new LazyArray(int16, "len")
});
var $ca2df1256966e313$var$KernSubtable = new VersionedStruct("format", {
  0: {
    nPairs: uint16,
    searchRange: uint16,
    entrySelector: uint16,
    rangeShift: uint16,
    pairs: new ArrayT($ca2df1256966e313$var$KernPair, "nPairs")
  },
  2: {
    rowWidth: uint16,
    leftTable: new Pointer(uint16, $ca2df1256966e313$var$ClassTable, {
      type: "parent"
    }),
    rightTable: new Pointer(uint16, $ca2df1256966e313$var$ClassTable, {
      type: "parent"
    }),
    array: new Pointer(uint16, $ca2df1256966e313$var$Kern2Array, {
      type: "parent"
    })
  },
  3: {
    glyphCount: uint16,
    kernValueCount: uint8,
    leftClassCount: uint8,
    rightClassCount: uint8,
    flags: uint8,
    kernValue: new ArrayT(int16, "kernValueCount"),
    leftClass: new ArrayT(uint8, "glyphCount"),
    rightClass: new ArrayT(uint8, "glyphCount"),
    kernIndex: new ArrayT(uint8, (t4) => t4.leftClassCount * t4.rightClassCount)
  }
});
var $ca2df1256966e313$var$KernTable = new VersionedStruct("version", {
  0: {
    subVersion: uint16,
    length: uint16,
    format: uint8,
    coverage: new Bitfield(uint8, [
      "horizontal",
      "minimum",
      "crossStream",
      "override"
      // If set to 1 the value in this table replaces the accumulated value
    ]),
    subtable: $ca2df1256966e313$var$KernSubtable,
    padding: new Reserved(uint8, (t4) => t4.length - t4._currentOffset)
  },
  1: {
    length: uint32,
    coverage: new Bitfield(uint8, [
      null,
      null,
      null,
      null,
      null,
      "variation",
      "crossStream",
      "vertical"
      // Set if table has vertical kerning values
    ]),
    format: uint8,
    tupleIndex: uint16,
    subtable: $ca2df1256966e313$var$KernSubtable,
    padding: new Reserved(uint8, (t4) => t4.length - t4._currentOffset)
  }
});
var $ca2df1256966e313$export$2e2bcd8739ae039 = new VersionedStruct(uint16, {
  0: {
    nTables: uint16,
    tables: new ArrayT($ca2df1256966e313$var$KernTable, "nTables")
  },
  1: {
    reserved: new Reserved(uint16),
    nTables: uint32,
    tables: new ArrayT($ca2df1256966e313$var$KernTable, "nTables")
  }
});
var $7a9f92b0c46ebe33$export$2e2bcd8739ae039 = new Struct({
  version: uint16,
  numGlyphs: uint16,
  yPels: new ArrayT(uint8, "numGlyphs")
});
var $2b2ccc419d152631$export$2e2bcd8739ae039 = new Struct({
  version: uint16,
  fontNumber: uint32,
  pitch: uint16,
  xHeight: uint16,
  style: uint16,
  typeFamily: uint16,
  capHeight: uint16,
  symbolSet: uint16,
  typeface: new StringT(16),
  characterComplement: new StringT(8),
  fileName: new StringT(6),
  strokeWeight: new StringT(1),
  widthType: new StringT(1),
  serifStyle: uint8,
  reserved: new Reserved(uint8)
});
var $ca5b40b9bcda9c9b$var$Ratio = new Struct({
  bCharSet: uint8,
  xRatio: uint8,
  yStartRatio: uint8,
  yEndRatio: uint8
  // Ending y-Ratio value
});
var $ca5b40b9bcda9c9b$var$vTable = new Struct({
  yPelHeight: uint16,
  yMax: int16,
  yMin: int16
  // Minimum value (in pels) for this yPelHeight
});
var $ca5b40b9bcda9c9b$var$VdmxGroup = new Struct({
  recs: uint16,
  startsz: uint8,
  endsz: uint8,
  entries: new ArrayT($ca5b40b9bcda9c9b$var$vTable, "recs")
  // The VDMX records
});
var $ca5b40b9bcda9c9b$export$2e2bcd8739ae039 = new Struct({
  version: uint16,
  numRecs: uint16,
  numRatios: uint16,
  ratioRanges: new ArrayT($ca5b40b9bcda9c9b$var$Ratio, "numRatios"),
  offsets: new ArrayT(uint16, "numRatios"),
  groups: new ArrayT($ca5b40b9bcda9c9b$var$VdmxGroup, "numRecs")
  // The actual VDMX groupings
});
var $69530a3c40755af0$export$2e2bcd8739ae039 = new Struct({
  version: uint16,
  ascent: int16,
  descent: int16,
  lineGap: int16,
  advanceHeightMax: int16,
  minTopSideBearing: int16,
  minBottomSideBearing: int16,
  yMaxExtent: int16,
  caretSlopeRise: int16,
  caretSlopeRun: int16,
  caretOffset: int16,
  reserved: new Reserved(int16, 4),
  metricDataFormat: int16,
  numberOfMetrics: uint16
  // Number of advance heights in the Vertical Metrics table
});
var $344073dd270f0e62$var$VmtxEntry = new Struct({
  advance: uint16,
  bearing: int16
  // The top sidebearing of the glyph
});
var $344073dd270f0e62$export$2e2bcd8739ae039 = new Struct({
  metrics: new LazyArray($344073dd270f0e62$var$VmtxEntry, (t4) => t4.parent.vhea.numberOfMetrics),
  bearings: new LazyArray(int16, (t4) => t4.parent.maxp.numGlyphs - t4.parent.vhea.numberOfMetrics)
});
var $3793b781918cfced$var$shortFrac = new Fixed(16, "BE", 14);
var $3793b781918cfced$var$Correspondence = new Struct({
  fromCoord: $3793b781918cfced$var$shortFrac,
  toCoord: $3793b781918cfced$var$shortFrac
});
var $3793b781918cfced$var$Segment = new Struct({
  pairCount: uint16,
  correspondence: new ArrayT($3793b781918cfced$var$Correspondence, "pairCount")
});
var $3793b781918cfced$export$2e2bcd8739ae039 = new Struct({
  version: fixed32,
  axisCount: uint32,
  segment: new ArrayT($3793b781918cfced$var$Segment, "axisCount")
});
var $6cb7dd5f47d82580$var$UnboundedArrayAccessor = class {
  getItem(index2) {
    if (this._items[index2] == null) {
      let pos = this.stream.pos;
      this.stream.pos = this.base + this.type.size(null, this.parent) * index2;
      this._items[index2] = this.type.decode(this.stream, this.parent);
      this.stream.pos = pos;
    }
    return this._items[index2];
  }
  inspect() {
    return `[UnboundedArray ${this.type.constructor.name}]`;
  }
  constructor(type, stream7, parent) {
    this.type = type;
    this.stream = stream7;
    this.parent = parent;
    this.base = this.stream.pos;
    this._items = [];
  }
};
var $6cb7dd5f47d82580$export$c5af1eebc882e39a = class extends ArrayT {
  decode(stream7, parent) {
    return new $6cb7dd5f47d82580$var$UnboundedArrayAccessor(this.type, stream7, parent);
  }
  constructor(type) {
    super(type, 0);
  }
};
var $6cb7dd5f47d82580$export$8351f8c2ae2f103c = function(ValueType = uint16) {
  class Shadow {
    decode(stream7, ctx) {
      ctx = ctx.parent.parent;
      return this.type.decode(stream7, ctx);
    }
    size(val, ctx) {
      ctx = ctx.parent.parent;
      return this.type.size(val, ctx);
    }
    encode(stream7, val, ctx) {
      ctx = ctx.parent.parent;
      return this.type.encode(stream7, val, ctx);
    }
    constructor(type) {
      this.type = type;
    }
  }
  ValueType = new Shadow(ValueType);
  let BinarySearchHeader = new Struct({
    unitSize: uint16,
    nUnits: uint16,
    searchRange: uint16,
    entrySelector: uint16,
    rangeShift: uint16
  });
  let LookupSegmentSingle = new Struct({
    lastGlyph: uint16,
    firstGlyph: uint16,
    value: ValueType
  });
  let LookupSegmentArray = new Struct({
    lastGlyph: uint16,
    firstGlyph: uint16,
    values: new Pointer(uint16, new ArrayT(ValueType, (t4) => t4.lastGlyph - t4.firstGlyph + 1), {
      type: "parent"
    })
  });
  let LookupSingle = new Struct({
    glyph: uint16,
    value: ValueType
  });
  return new VersionedStruct(uint16, {
    0: {
      values: new $6cb7dd5f47d82580$export$c5af1eebc882e39a(ValueType)
      // length == number of glyphs maybe?
    },
    2: {
      binarySearchHeader: BinarySearchHeader,
      segments: new ArrayT(LookupSegmentSingle, (t4) => t4.binarySearchHeader.nUnits)
    },
    4: {
      binarySearchHeader: BinarySearchHeader,
      segments: new ArrayT(LookupSegmentArray, (t4) => t4.binarySearchHeader.nUnits)
    },
    6: {
      binarySearchHeader: BinarySearchHeader,
      segments: new ArrayT(LookupSingle, (t4) => t4.binarySearchHeader.nUnits)
    },
    8: {
      firstGlyph: uint16,
      count: uint16,
      values: new ArrayT(ValueType, "count")
    }
  });
};
function $6cb7dd5f47d82580$export$79f7d93d790934ba(entryData = {}, lookupType = uint16) {
  let entry = Object.assign({
    newState: uint16,
    flags: uint16
  }, entryData);
  let Entry = new Struct(entry);
  let StateArray = new $6cb7dd5f47d82580$export$c5af1eebc882e39a(new ArrayT(uint16, (t4) => t4.nClasses));
  let StateHeader = new Struct({
    nClasses: uint32,
    classTable: new Pointer(uint32, new $6cb7dd5f47d82580$export$8351f8c2ae2f103c(lookupType)),
    stateArray: new Pointer(uint32, StateArray),
    entryTable: new Pointer(uint32, new $6cb7dd5f47d82580$export$c5af1eebc882e39a(Entry))
  });
  return StateHeader;
}
function $6cb7dd5f47d82580$export$105027425199cc51(entryData = {}, lookupType = uint16) {
  let ClassLookupTable = new Struct({
    version() {
      return 8;
    },
    firstGlyph: uint16,
    values: new ArrayT(uint8, uint16)
  });
  let entry = Object.assign({
    newStateOffset: uint16,
    // convert offset to stateArray index
    newState: (t4) => (t4.newStateOffset - (t4.parent.stateArray.base - t4.parent._startOffset)) / t4.parent.nClasses,
    flags: uint16
  }, entryData);
  let Entry = new Struct(entry);
  let StateArray = new $6cb7dd5f47d82580$export$c5af1eebc882e39a(new ArrayT(uint8, (t4) => t4.nClasses));
  let StateHeader1 = new Struct({
    nClasses: uint16,
    classTable: new Pointer(uint16, ClassLookupTable),
    stateArray: new Pointer(uint16, StateArray),
    entryTable: new Pointer(uint16, new $6cb7dd5f47d82580$export$c5af1eebc882e39a(Entry))
  });
  return StateHeader1;
}
var $6a3746e8c708f5a3$var$BslnSubtable = new VersionedStruct("format", {
  0: {
    deltas: new ArrayT(int16, 32)
  },
  1: {
    deltas: new ArrayT(int16, 32),
    mappingData: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)(uint16)
  },
  2: {
    standardGlyph: uint16,
    controlPoints: new ArrayT(uint16, 32)
  },
  3: {
    standardGlyph: uint16,
    controlPoints: new ArrayT(uint16, 32),
    mappingData: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)(uint16)
  }
});
var $6a3746e8c708f5a3$export$2e2bcd8739ae039 = new Struct({
  version: fixed32,
  format: uint16,
  defaultBaseline: uint16,
  subtable: $6a3746e8c708f5a3$var$BslnSubtable
});
var $d0c76fac617b308a$var$Setting = new Struct({
  setting: uint16,
  nameIndex: int16,
  name: (t4) => t4.parent.parent.parent.name.records.fontFeatures[t4.nameIndex]
});
var $d0c76fac617b308a$var$FeatureName = new Struct({
  feature: uint16,
  nSettings: uint16,
  settingTable: new Pointer(uint32, new ArrayT($d0c76fac617b308a$var$Setting, "nSettings"), {
    type: "parent"
  }),
  featureFlags: new Bitfield(uint8, [
    null,
    null,
    null,
    null,
    null,
    null,
    "hasDefault",
    "exclusive"
  ]),
  defaultSetting: uint8,
  nameIndex: int16,
  name: (t4) => t4.parent.parent.name.records.fontFeatures[t4.nameIndex]
});
var $d0c76fac617b308a$export$2e2bcd8739ae039 = new Struct({
  version: fixed32,
  featureNameCount: uint16,
  reserved1: new Reserved(uint16),
  reserved2: new Reserved(uint32),
  featureNames: new ArrayT($d0c76fac617b308a$var$FeatureName, "featureNameCount")
});
var $e83fd065f00fcd01$var$Axis = new Struct({
  axisTag: new StringT(4),
  minValue: fixed32,
  defaultValue: fixed32,
  maxValue: fixed32,
  flags: uint16,
  nameID: uint16,
  name: (t4) => t4.parent.parent.name.records.fontFeatures[t4.nameID]
});
var $e83fd065f00fcd01$var$Instance = new Struct({
  nameID: uint16,
  name: (t4) => t4.parent.parent.name.records.fontFeatures[t4.nameID],
  flags: uint16,
  coord: new ArrayT(fixed32, (t4) => t4.parent.axisCount),
  postscriptNameID: new Optional(uint16, (t4) => t4.parent.instanceSize - t4._currentOffset > 0)
});
var $e83fd065f00fcd01$export$2e2bcd8739ae039 = new Struct({
  version: fixed32,
  offsetToData: uint16,
  countSizePairs: uint16,
  axisCount: uint16,
  axisSize: uint16,
  instanceCount: uint16,
  instanceSize: uint16,
  axis: new ArrayT($e83fd065f00fcd01$var$Axis, "axisCount"),
  instance: new ArrayT($e83fd065f00fcd01$var$Instance, "instanceCount")
});
var $dbe33c8d3a7f131c$var$shortFrac = new Fixed(16, "BE", 14);
var $dbe33c8d3a7f131c$var$Offset = class {
  static decode(stream7, parent) {
    return parent.flags ? stream7.readUInt32BE() : stream7.readUInt16BE() * 2;
  }
};
var $dbe33c8d3a7f131c$var$gvar = new Struct({
  version: uint16,
  reserved: new Reserved(uint16),
  axisCount: uint16,
  globalCoordCount: uint16,
  globalCoords: new Pointer(uint32, new ArrayT(new ArrayT($dbe33c8d3a7f131c$var$shortFrac, "axisCount"), "globalCoordCount")),
  glyphCount: uint16,
  flags: uint16,
  offsetToData: uint32,
  offsets: new ArrayT(new Pointer($dbe33c8d3a7f131c$var$Offset, "void", {
    relativeTo: (ctx) => ctx.offsetToData,
    allowNull: false
  }), (t4) => t4.glyphCount + 1)
});
var $dbe33c8d3a7f131c$export$2e2bcd8739ae039 = $dbe33c8d3a7f131c$var$gvar;
var $05b01887df96c4ee$var$ClassTable = new Struct({
  length: uint16,
  coverage: uint16,
  subFeatureFlags: uint32,
  stateTable: new (0, $6cb7dd5f47d82580$export$105027425199cc51)()
});
var $05b01887df96c4ee$var$WidthDeltaRecord = new Struct({
  justClass: uint32,
  beforeGrowLimit: fixed32,
  beforeShrinkLimit: fixed32,
  afterGrowLimit: fixed32,
  afterShrinkLimit: fixed32,
  growFlags: uint16,
  shrinkFlags: uint16
});
var $05b01887df96c4ee$var$WidthDeltaCluster = new ArrayT($05b01887df96c4ee$var$WidthDeltaRecord, uint32);
var $05b01887df96c4ee$var$ActionData = new VersionedStruct("actionType", {
  0: {
    lowerLimit: fixed32,
    upperLimit: fixed32,
    order: uint16,
    glyphs: new ArrayT(uint16, uint16)
  },
  1: {
    addGlyph: uint16
  },
  2: {
    substThreshold: fixed32,
    addGlyph: uint16,
    substGlyph: uint16
  },
  3: {},
  4: {
    variationAxis: uint32,
    minimumLimit: fixed32,
    noStretchValue: fixed32,
    maximumLimit: fixed32
  },
  5: {
    flags: uint16,
    glyph: uint16
  }
});
var $05b01887df96c4ee$var$Action = new Struct({
  actionClass: uint16,
  actionType: uint16,
  actionLength: uint32,
  actionData: $05b01887df96c4ee$var$ActionData,
  padding: new Reserved(uint8, (t4) => t4.actionLength - t4._currentOffset)
});
var $05b01887df96c4ee$var$PostcompensationAction = new ArrayT($05b01887df96c4ee$var$Action, uint32);
var $05b01887df96c4ee$var$PostCompensationTable = new Struct({
  lookupTable: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)(new Pointer(uint16, $05b01887df96c4ee$var$PostcompensationAction))
});
var $05b01887df96c4ee$var$JustificationTable = new Struct({
  classTable: new Pointer(uint16, $05b01887df96c4ee$var$ClassTable, {
    type: "parent"
  }),
  wdcOffset: uint16,
  postCompensationTable: new Pointer(uint16, $05b01887df96c4ee$var$PostCompensationTable, {
    type: "parent"
  }),
  widthDeltaClusters: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)(new Pointer(uint16, $05b01887df96c4ee$var$WidthDeltaCluster, {
    type: "parent",
    relativeTo: (ctx) => ctx.wdcOffset
  }))
});
var $05b01887df96c4ee$export$2e2bcd8739ae039 = new Struct({
  version: uint32,
  format: uint16,
  horizontal: new Pointer(uint16, $05b01887df96c4ee$var$JustificationTable),
  vertical: new Pointer(uint16, $05b01887df96c4ee$var$JustificationTable)
});
var $03ee6ebd54db1053$var$LigatureData = {
  action: uint16
};
var $03ee6ebd54db1053$var$ContextualData = {
  markIndex: uint16,
  currentIndex: uint16
};
var $03ee6ebd54db1053$var$InsertionData = {
  currentInsertIndex: uint16,
  markedInsertIndex: uint16
};
var $03ee6ebd54db1053$var$SubstitutionTable = new Struct({
  items: new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)(new Pointer(uint32, new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)()))
});
var $03ee6ebd54db1053$var$SubtableData = new VersionedStruct("type", {
  0: {
    stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)()
  },
  1: {
    stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)($03ee6ebd54db1053$var$ContextualData),
    substitutionTable: new Pointer(uint32, $03ee6ebd54db1053$var$SubstitutionTable)
  },
  2: {
    stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)($03ee6ebd54db1053$var$LigatureData),
    ligatureActions: new Pointer(uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)(uint32)),
    components: new Pointer(uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)(uint16)),
    ligatureList: new Pointer(uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)(uint16))
  },
  4: {
    lookupTable: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)()
  },
  5: {
    stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)($03ee6ebd54db1053$var$InsertionData),
    insertionActions: new Pointer(uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)(uint16))
  }
});
var $03ee6ebd54db1053$var$Subtable = new Struct({
  length: uint32,
  coverage: uint24,
  type: uint8,
  subFeatureFlags: uint32,
  table: $03ee6ebd54db1053$var$SubtableData,
  padding: new Reserved(uint8, (t4) => t4.length - t4._currentOffset)
});
var $03ee6ebd54db1053$var$FeatureEntry = new Struct({
  featureType: uint16,
  featureSetting: uint16,
  enableFlags: uint32,
  disableFlags: uint32
});
var $03ee6ebd54db1053$var$MorxChain = new Struct({
  defaultFlags: uint32,
  chainLength: uint32,
  nFeatureEntries: uint32,
  nSubtables: uint32,
  features: new ArrayT($03ee6ebd54db1053$var$FeatureEntry, "nFeatureEntries"),
  subtables: new ArrayT($03ee6ebd54db1053$var$Subtable, "nSubtables")
});
var $03ee6ebd54db1053$export$2e2bcd8739ae039 = new Struct({
  version: uint16,
  unused: new Reserved(uint16),
  nChains: uint32,
  chains: new ArrayT($03ee6ebd54db1053$var$MorxChain, "nChains")
});
var $b7492a80b0d1a056$var$OpticalBounds = new Struct({
  left: int16,
  top: int16,
  right: int16,
  bottom: int16
});
var $b7492a80b0d1a056$export$2e2bcd8739ae039 = new Struct({
  version: fixed32,
  format: uint16,
  lookupTable: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)($b7492a80b0d1a056$var$OpticalBounds)
});
var $c3395722bea751e2$var$tables = {};
var $c3395722bea751e2$export$2e2bcd8739ae039 = $c3395722bea751e2$var$tables;
$c3395722bea751e2$var$tables.cmap = (0, $26a62205ad06574e$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.head = (0, $f2612a29f92ac062$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.hhea = (0, $2c179dd593583073$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.hmtx = (0, $bdc9060542264b85$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.maxp = (0, $dbf51cb3d3fe409d$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.name = (0, $2bcf221753ec8e32$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables["OS/2"] = (0, $84b272aa31b70606$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.post = (0, $32d9e2eb9565d93c$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.fpgm = (0, $5c0f37ca5ffb1850$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.loca = (0, $2b2b260902b1c57e$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.prep = (0, $7afb878c7bea4f66$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables["cvt "] = (0, $5202bd9d9ad8eaac$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.glyf = (0, $6c92b6371bce8bd9$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables["CFF "] = (0, $822ac0d589e4e237$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables["CFF2"] = (0, $822ac0d589e4e237$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.VORG = (0, $2bbf2bc1ce37cd8f$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.EBLC = (0, $9911c4c7201c13de$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.CBLC = $c3395722bea751e2$var$tables.EBLC;
$c3395722bea751e2$var$tables.sbix = (0, $abb847051efd51b1$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.COLR = (0, $eb629188f3dfefdd$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.CPAL = (0, $08734b8e7dc64587$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.BASE = (0, $497cef411d884e34$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.GDEF = (0, $cf5f33c63ef209e6$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.GPOS = (0, $47e0e8ef515d9903$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.GSUB = (0, $d3f442064af66e06$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.JSTF = (0, $71cfb3c4767fbd0c$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.HVAR = (0, $d059a6bd2d3b5b63$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.DSIG = (0, $dceeca3e1977ce30$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.gasp = (0, $8acd740a9435aad0$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.hdmx = (0, $b5f380243c34d6a0$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.kern = (0, $ca2df1256966e313$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.LTSH = (0, $7a9f92b0c46ebe33$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.PCLT = (0, $2b2ccc419d152631$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.VDMX = (0, $ca5b40b9bcda9c9b$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.vhea = (0, $69530a3c40755af0$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.vmtx = (0, $344073dd270f0e62$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.avar = (0, $3793b781918cfced$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.bsln = (0, $6a3746e8c708f5a3$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.feat = (0, $d0c76fac617b308a$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.fvar = (0, $e83fd065f00fcd01$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.gvar = (0, $dbe33c8d3a7f131c$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.just = (0, $05b01887df96c4ee$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.morx = (0, $03ee6ebd54db1053$export$2e2bcd8739ae039);
$c3395722bea751e2$var$tables.opbd = (0, $b7492a80b0d1a056$export$2e2bcd8739ae039);
var $816c07a04b6dba87$var$TableEntry = new Struct({
  tag: new StringT(4),
  checkSum: uint32,
  offset: new Pointer(uint32, "void", {
    type: "global"
  }),
  length: uint32
});
var $816c07a04b6dba87$var$Directory = new Struct({
  tag: new StringT(4),
  numTables: uint16,
  searchRange: uint16,
  entrySelector: uint16,
  rangeShift: uint16,
  tables: new ArrayT($816c07a04b6dba87$var$TableEntry, "numTables")
});
$816c07a04b6dba87$var$Directory.process = function() {
  let tables = {};
  for (let table of this.tables) tables[table.tag] = table;
  this.tables = tables;
};
$816c07a04b6dba87$var$Directory.preEncode = function() {
  if (!Array.isArray(this.tables)) {
    let tables = [];
    for (let tag in this.tables) {
      let table = this.tables[tag];
      if (table) tables.push({
        tag,
        checkSum: 0,
        offset: new VoidPointer((0, $c3395722bea751e2$export$2e2bcd8739ae039)[tag], table),
        length: (0, $c3395722bea751e2$export$2e2bcd8739ae039)[tag].size(table)
      });
    }
    this.tables = tables;
  }
  this.tag = "true";
  this.numTables = this.tables.length;
  let maxExponentFor2 = Math.floor(Math.log(this.numTables) / Math.LN2);
  let maxPowerOf2 = Math.pow(2, maxExponentFor2);
  this.searchRange = maxPowerOf2 * 16;
  this.entrySelector = Math.log(maxPowerOf2) / Math.LN2;
  this.rangeShift = this.numTables * 16 - this.searchRange;
};
var $816c07a04b6dba87$export$2e2bcd8739ae039 = $816c07a04b6dba87$var$Directory;
function $12727730ddfc8bfe$export$2e0ae67339d5f1ac(arr, cmp) {
  let min2 = 0;
  let max3 = arr.length - 1;
  while (min2 <= max3) {
    let mid = min2 + max3 >> 1;
    let res = cmp(arr[mid]);
    if (res < 0) max3 = mid - 1;
    else if (res > 0) min2 = mid + 1;
    else return mid;
  }
  return -1;
}
function $12727730ddfc8bfe$export$d02631cccf789723(index2, end2) {
  let range2 = [];
  while (index2 < end2) range2.push(index2++);
  return range2;
}
var $12727730ddfc8bfe$export$3d28c1996ced1f14 = new TextDecoder("ascii");
var $12727730ddfc8bfe$var$CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var $12727730ddfc8bfe$var$LOOKUP = new Uint8Array(256);
for (let i5 = 0; i5 < $12727730ddfc8bfe$var$CHARS.length; i5++) $12727730ddfc8bfe$var$LOOKUP[$12727730ddfc8bfe$var$CHARS.charCodeAt(i5)] = i5;
function $12727730ddfc8bfe$export$94fdf11bafc8de6b(base64) {
  let bufferLength = base64.length * 0.75;
  if (base64[base64.length - 1] === "=") {
    bufferLength--;
    if (base64[base64.length - 2] === "=") bufferLength--;
  }
  let bytes = new Uint8Array(bufferLength);
  let p3 = 0;
  for (let i5 = 0, len = base64.length; i5 < len; i5 += 4) {
    let encoded1 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i5)];
    let encoded2 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i5 + 1)];
    let encoded3 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i5 + 2)];
    let encoded4 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i5 + 3)];
    bytes[p3++] = encoded1 << 2 | encoded2 >> 4;
    bytes[p3++] = (encoded2 & 15) << 4 | encoded3 >> 2;
    bytes[p3++] = (encoded3 & 3) << 6 | encoded4 & 63;
  }
  return bytes;
}
var $f08dd41ef10b694c$export$2e2bcd8739ae039 = class {
  findSubtable(cmapTable, pairs2) {
    for (let [platformID, encodingID] of pairs2) for (let cmap of cmapTable.tables) {
      if (cmap.platformID === platformID && cmap.encodingID === encodingID) return cmap.table;
    }
    return null;
  }
  lookup(codepoint, variationSelector) {
    if (this.encoding) codepoint = this.encoding.get(codepoint) || codepoint;
    else if (variationSelector) {
      let gid = this.getVariationSelector(codepoint, variationSelector);
      if (gid) return gid;
    }
    let cmap = this.cmap;
    switch (cmap.version) {
      case 0:
        return cmap.codeMap.get(codepoint) || 0;
      case 4: {
        let min2 = 0;
        let max3 = cmap.segCount - 1;
        while (min2 <= max3) {
          let mid = min2 + max3 >> 1;
          if (codepoint < cmap.startCode.get(mid)) max3 = mid - 1;
          else if (codepoint > cmap.endCode.get(mid)) min2 = mid + 1;
          else {
            let rangeOffset = cmap.idRangeOffset.get(mid);
            let gid;
            if (rangeOffset === 0) gid = codepoint + cmap.idDelta.get(mid);
            else {
              let index2 = rangeOffset / 2 + (codepoint - cmap.startCode.get(mid)) - (cmap.segCount - mid);
              gid = cmap.glyphIndexArray.get(index2) || 0;
              if (gid !== 0) gid += cmap.idDelta.get(mid);
            }
            return gid & 65535;
          }
        }
        return 0;
      }
      case 8:
        throw new Error("TODO: cmap format 8");
      case 6:
      case 10:
        return cmap.glyphIndices.get(codepoint - cmap.firstCode) || 0;
      case 12:
      case 13: {
        let min2 = 0;
        let max3 = cmap.nGroups - 1;
        while (min2 <= max3) {
          let mid = min2 + max3 >> 1;
          let group = cmap.groups.get(mid);
          if (codepoint < group.startCharCode) max3 = mid - 1;
          else if (codepoint > group.endCharCode) min2 = mid + 1;
          else {
            if (cmap.version === 12) return group.glyphID + (codepoint - group.startCharCode);
            else return group.glyphID;
          }
        }
        return 0;
      }
      case 14:
        throw new Error("TODO: cmap format 14");
      default:
        throw new Error(`Unknown cmap format ${cmap.version}`);
    }
  }
  getVariationSelector(codepoint, variationSelector) {
    if (!this.uvs) return 0;
    let selectors = this.uvs.varSelectors.toArray();
    let i5 = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(selectors, (x) => variationSelector - x.varSelector);
    let sel = selectors[i5];
    if (i5 !== -1 && sel.defaultUVS) i5 = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(sel.defaultUVS, (x) => codepoint < x.startUnicodeValue ? -1 : codepoint > x.startUnicodeValue + x.additionalCount ? 1 : 0);
    if (i5 !== -1 && sel.nonDefaultUVS) {
      i5 = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(sel.nonDefaultUVS, (x) => codepoint - x.unicodeValue);
      if (i5 !== -1) return sel.nonDefaultUVS[i5].glyphID;
    }
    return 0;
  }
  getCharacterSet() {
    let cmap = this.cmap;
    switch (cmap.version) {
      case 0:
        return (0, $12727730ddfc8bfe$export$d02631cccf789723)(0, cmap.codeMap.length);
      case 4: {
        let res = [];
        let endCodes = cmap.endCode.toArray();
        for (let i5 = 0; i5 < endCodes.length; i5++) {
          let tail = endCodes[i5] + 1;
          let start2 = cmap.startCode.get(i5);
          res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(start2, tail));
        }
        return res;
      }
      case 8:
        throw new Error("TODO: cmap format 8");
      case 6:
      case 10:
        return (0, $12727730ddfc8bfe$export$d02631cccf789723)(cmap.firstCode, cmap.firstCode + cmap.glyphIndices.length);
      case 12:
      case 13: {
        let res = [];
        for (let group of cmap.groups.toArray()) res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(group.startCharCode, group.endCharCode + 1));
        return res;
      }
      case 14:
        throw new Error("TODO: cmap format 14");
      default:
        throw new Error(`Unknown cmap format ${cmap.version}`);
    }
  }
  codePointsForGlyph(gid) {
    let cmap = this.cmap;
    switch (cmap.version) {
      case 0: {
        let res = [];
        for (let i5 = 0; i5 < 256; i5++) if (cmap.codeMap.get(i5) === gid) res.push(i5);
        return res;
      }
      case 4: {
        let res = [];
        for (let i5 = 0; i5 < cmap.segCount; i5++) {
          let end2 = cmap.endCode.get(i5);
          let start2 = cmap.startCode.get(i5);
          let rangeOffset = cmap.idRangeOffset.get(i5);
          let delta = cmap.idDelta.get(i5);
          for (var c6 = start2; c6 <= end2; c6++) {
            let g3 = 0;
            if (rangeOffset === 0) g3 = c6 + delta;
            else {
              let index2 = rangeOffset / 2 + (c6 - start2) - (cmap.segCount - i5);
              g3 = cmap.glyphIndexArray.get(index2) || 0;
              if (g3 !== 0) g3 += delta;
            }
            if (g3 === gid) res.push(c6);
          }
        }
        return res;
      }
      case 12: {
        let res = [];
        for (let group of cmap.groups.toArray()) if (gid >= group.glyphID && gid <= group.glyphID + (group.endCharCode - group.startCharCode)) res.push(group.startCharCode + (gid - group.glyphID));
        return res;
      }
      case 13: {
        let res = [];
        for (let group of cmap.groups.toArray()) if (gid === group.glyphID) res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(group.startCharCode, group.endCharCode + 1));
        return res;
      }
      default:
        throw new Error(`Unknown cmap format ${cmap.version}`);
    }
  }
  constructor(cmapTable) {
    this.encoding = null;
    this.cmap = this.findSubtable(cmapTable, [
      // 32-bit subtables
      [
        3,
        10
      ],
      [
        0,
        6
      ],
      [
        0,
        4
      ],
      // 16-bit subtables
      [
        3,
        1
      ],
      [
        0,
        3
      ],
      [
        0,
        2
      ],
      [
        0,
        1
      ],
      [
        0,
        0
      ]
    ]);
    if (!this.cmap) for (let cmap of cmapTable.tables) {
      let encoding = (0, $e449ad78d50845fe$export$badc544e0651b6b1)(cmap.platformID, cmap.encodingID, cmap.table.language - 1);
      let mapping = (0, $e449ad78d50845fe$export$1dceb3c14ed68bee)(encoding);
      if (mapping) {
        this.cmap = cmap.table;
        this.encoding = mapping;
      }
    }
    if (!this.cmap) throw new Error("Could not find a supported cmap table");
    this.uvs = this.findSubtable(cmapTable, [
      [
        0,
        5
      ]
    ]);
    if (this.uvs && this.uvs.version !== 14) this.uvs = null;
  }
};
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $f08dd41ef10b694c$export$2e2bcd8739ae039.prototype, "getCharacterSet", null);
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $f08dd41ef10b694c$export$2e2bcd8739ae039.prototype, "codePointsForGlyph", null);
var $0bba3a9db57637f3$export$2e2bcd8739ae039 = class {
  process(glyphs, positions) {
    for (let glyphIndex = 0; glyphIndex < glyphs.length - 1; glyphIndex++) {
      let left = glyphs[glyphIndex].id;
      let right = glyphs[glyphIndex + 1].id;
      positions[glyphIndex].xAdvance += this.getKerning(left, right);
    }
  }
  getKerning(left, right) {
    let res = 0;
    for (let table of this.kern.tables) {
      if (table.coverage.crossStream) continue;
      switch (table.version) {
        case 0:
          if (!table.coverage.horizontal) continue;
          break;
        case 1:
          if (table.coverage.vertical || table.coverage.variation) continue;
          break;
        default:
          throw new Error(`Unsupported kerning table version ${table.version}`);
      }
      let val = 0;
      let s4 = table.subtable;
      switch (table.format) {
        case 0:
          let pairIdx = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(s4.pairs, function(pair) {
            return left - pair.left || right - pair.right;
          });
          if (pairIdx >= 0) val = s4.pairs[pairIdx].value;
          break;
        case 2:
          let leftOffset = 0, rightOffset = 0;
          if (left >= s4.leftTable.firstGlyph && left < s4.leftTable.firstGlyph + s4.leftTable.nGlyphs) leftOffset = s4.leftTable.offsets[left - s4.leftTable.firstGlyph];
          else leftOffset = s4.array.off;
          if (right >= s4.rightTable.firstGlyph && right < s4.rightTable.firstGlyph + s4.rightTable.nGlyphs) rightOffset = s4.rightTable.offsets[right - s4.rightTable.firstGlyph];
          let index2 = (leftOffset + rightOffset - s4.array.off) / 2;
          val = s4.array.values.get(index2);
          break;
        case 3:
          if (left >= s4.glyphCount || right >= s4.glyphCount) return 0;
          val = s4.kernValue[s4.kernIndex[s4.leftClass[left] * s4.rightClassCount + s4.rightClass[right]]];
          break;
        default:
          throw new Error(`Unsupported kerning sub-table format ${table.format}`);
      }
      if (table.coverage.override) res = val;
      else res += val;
    }
    return res;
  }
  constructor(font) {
    this.kern = font.kern;
  }
};
var $0a4bdfeb6dfd6f5e$export$2e2bcd8739ae039 = class {
  positionGlyphs(glyphs, positions) {
    let clusterStart = 0;
    let clusterEnd = 0;
    for (let index2 = 0; index2 < glyphs.length; index2++) {
      let glyph = glyphs[index2];
      if (glyph.isMark) clusterEnd = index2;
      else {
        if (clusterStart !== clusterEnd) this.positionCluster(glyphs, positions, clusterStart, clusterEnd);
        clusterStart = clusterEnd = index2;
      }
    }
    if (clusterStart !== clusterEnd) this.positionCluster(glyphs, positions, clusterStart, clusterEnd);
    return positions;
  }
  positionCluster(glyphs, positions, clusterStart, clusterEnd) {
    let base = glyphs[clusterStart];
    let baseBox = base.cbox.copy();
    if (base.codePoints.length > 1)
      baseBox.minX += (base.codePoints.length - 1) * baseBox.width / base.codePoints.length;
    let xOffset = -positions[clusterStart].xAdvance;
    let yOffset = 0;
    let yGap = this.font.unitsPerEm / 16;
    for (let index2 = clusterStart + 1; index2 <= clusterEnd; index2++) {
      let mark = glyphs[index2];
      let markBox = mark.cbox;
      let position = positions[index2];
      let combiningClass = this.getCombiningClass(mark.codePoints[0]);
      if (combiningClass !== "Not_Reordered") {
        position.xOffset = position.yOffset = 0;
        switch (combiningClass) {
          case "Double_Above":
          case "Double_Below":
            position.xOffset += baseBox.minX - markBox.width / 2 - markBox.minX;
            break;
          case "Attached_Below_Left":
          case "Below_Left":
          case "Above_Left":
            position.xOffset += baseBox.minX - markBox.minX;
            break;
          case "Attached_Above_Right":
          case "Below_Right":
          case "Above_Right":
            position.xOffset += baseBox.maxX - markBox.width - markBox.minX;
            break;
          default:
            position.xOffset += baseBox.minX + (baseBox.width - markBox.width) / 2 - markBox.minX;
        }
        switch (combiningClass) {
          case "Double_Below":
          case "Below_Left":
          case "Below":
          case "Below_Right":
          case "Attached_Below_Left":
          case "Attached_Below":
            if (combiningClass === "Attached_Below_Left" || combiningClass === "Attached_Below") baseBox.minY += yGap;
            position.yOffset = -baseBox.minY - markBox.maxY;
            baseBox.minY += markBox.height;
            break;
          case "Double_Above":
          case "Above_Left":
          case "Above":
          case "Above_Right":
          case "Attached_Above":
          case "Attached_Above_Right":
            if (combiningClass === "Attached_Above" || combiningClass === "Attached_Above_Right") baseBox.maxY += yGap;
            position.yOffset = baseBox.maxY - markBox.minY;
            baseBox.maxY += markBox.height;
            break;
        }
        position.xAdvance = position.yAdvance = 0;
        position.xOffset += xOffset;
        position.yOffset += yOffset;
      } else {
        xOffset -= position.xAdvance;
        yOffset -= position.yAdvance;
      }
    }
    return;
  }
  getCombiningClass(codePoint) {
    let combiningClass = (0, $747425b437e121da$export$c03b919c6651ed55)(codePoint);
    if ((codePoint & -256) === 3584) {
      if (combiningClass === "Not_Reordered") switch (codePoint) {
        case 3633:
        case 3636:
        case 3637:
        case 3638:
        case 3639:
        case 3655:
        case 3660:
        case 3645:
        case 3662:
          return "Above_Right";
        case 3761:
        case 3764:
        case 3765:
        case 3766:
        case 3767:
        case 3771:
        case 3788:
        case 3789:
          return "Above";
        case 3772:
          return "Below";
      }
      else if (codePoint === 3642) return "Below_Right";
    }
    switch (combiningClass) {
      // Hebrew
      case "CCC10":
      case "CCC11":
      case "CCC12":
      case "CCC13":
      case "CCC14":
      case "CCC15":
      case "CCC16":
      case "CCC17":
      case "CCC18":
      case "CCC20":
      case "CCC22":
        return "Below";
      case "CCC23":
        return "Attached_Above";
      case "CCC24":
        return "Above_Right";
      case "CCC25":
      case "CCC19":
        return "Above_Left";
      case "CCC26":
        return "Above";
      case "CCC21":
        break;
      // Arabic and Syriac
      case "CCC27":
      case "CCC28":
      case "CCC30":
      case "CCC31":
      case "CCC33":
      case "CCC34":
      case "CCC35":
      case "CCC36":
        return "Above";
      case "CCC29":
      case "CCC32":
        return "Below";
      // Thai
      case "CCC103":
        return "Below_Right";
      case "CCC107":
        return "Above_Right";
      // Lao
      case "CCC118":
        return "Below";
      case "CCC122":
        return "Above";
      // Tibetan
      case "CCC129":
      case "CCC132":
        return "Below";
      case "CCC130":
        return "Above";
    }
    return combiningClass;
  }
  constructor(font) {
    this.font = font;
  }
};
var $f34600ab9d7f70d8$export$2e2bcd8739ae039 = class _$f34600ab9d7f70d8$export$2e2bcd8739ae039 {
  /**
  * The width of the bounding box
  * @type {number}
  */
  get width() {
    return this.maxX - this.minX;
  }
  /**
  * The height of the bounding box
  * @type {number}
  */
  get height() {
    return this.maxY - this.minY;
  }
  addPoint(x, y3) {
    if (Math.abs(x) !== Infinity) {
      if (x < this.minX) this.minX = x;
      if (x > this.maxX) this.maxX = x;
    }
    if (Math.abs(y3) !== Infinity) {
      if (y3 < this.minY) this.minY = y3;
      if (y3 > this.maxY) this.maxY = y3;
    }
  }
  copy() {
    return new _$f34600ab9d7f70d8$export$2e2bcd8739ae039(this.minX, this.minY, this.maxX, this.maxY);
  }
  constructor(minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity) {
    this.minX = minX;
    this.minY = minY;
    this.maxX = maxX;
    this.maxY = maxY;
  }
};
var $130d1a642ebcd2b7$var$UNICODE_SCRIPTS = {
  Caucasian_Albanian: "aghb",
  Arabic: "arab",
  Imperial_Aramaic: "armi",
  Armenian: "armn",
  Avestan: "avst",
  Balinese: "bali",
  Bamum: "bamu",
  Bassa_Vah: "bass",
  Batak: "batk",
  Bengali: [
    "bng2",
    "beng"
  ],
  Bopomofo: "bopo",
  Brahmi: "brah",
  Braille: "brai",
  Buginese: "bugi",
  Buhid: "buhd",
  Chakma: "cakm",
  Canadian_Aboriginal: "cans",
  Carian: "cari",
  Cham: "cham",
  Cherokee: "cher",
  Coptic: "copt",
  Cypriot: "cprt",
  Cyrillic: "cyrl",
  Devanagari: [
    "dev2",
    "deva"
  ],
  Deseret: "dsrt",
  Duployan: "dupl",
  Egyptian_Hieroglyphs: "egyp",
  Elbasan: "elba",
  Ethiopic: "ethi",
  Georgian: "geor",
  Glagolitic: "glag",
  Gothic: "goth",
  Grantha: "gran",
  Greek: "grek",
  Gujarati: [
    "gjr2",
    "gujr"
  ],
  Gurmukhi: [
    "gur2",
    "guru"
  ],
  Hangul: "hang",
  Han: "hani",
  Hanunoo: "hano",
  Hebrew: "hebr",
  Hiragana: "hira",
  Pahawh_Hmong: "hmng",
  Katakana_Or_Hiragana: "hrkt",
  Old_Italic: "ital",
  Javanese: "java",
  Kayah_Li: "kali",
  Katakana: "kana",
  Kharoshthi: "khar",
  Khmer: "khmr",
  Khojki: "khoj",
  Kannada: [
    "knd2",
    "knda"
  ],
  Kaithi: "kthi",
  Tai_Tham: "lana",
  Lao: "lao ",
  Latin: "latn",
  Lepcha: "lepc",
  Limbu: "limb",
  Linear_A: "lina",
  Linear_B: "linb",
  Lisu: "lisu",
  Lycian: "lyci",
  Lydian: "lydi",
  Mahajani: "mahj",
  Mandaic: "mand",
  Manichaean: "mani",
  Mende_Kikakui: "mend",
  Meroitic_Cursive: "merc",
  Meroitic_Hieroglyphs: "mero",
  Malayalam: [
    "mlm2",
    "mlym"
  ],
  Modi: "modi",
  Mongolian: "mong",
  Mro: "mroo",
  Meetei_Mayek: "mtei",
  Myanmar: [
    "mym2",
    "mymr"
  ],
  Old_North_Arabian: "narb",
  Nabataean: "nbat",
  Nko: "nko ",
  Ogham: "ogam",
  Ol_Chiki: "olck",
  Old_Turkic: "orkh",
  Oriya: [
    "ory2",
    "orya"
  ],
  Osmanya: "osma",
  Palmyrene: "palm",
  Pau_Cin_Hau: "pauc",
  Old_Permic: "perm",
  Phags_Pa: "phag",
  Inscriptional_Pahlavi: "phli",
  Psalter_Pahlavi: "phlp",
  Phoenician: "phnx",
  Miao: "plrd",
  Inscriptional_Parthian: "prti",
  Rejang: "rjng",
  Runic: "runr",
  Samaritan: "samr",
  Old_South_Arabian: "sarb",
  Saurashtra: "saur",
  Shavian: "shaw",
  Sharada: "shrd",
  Siddham: "sidd",
  Khudawadi: "sind",
  Sinhala: "sinh",
  Sora_Sompeng: "sora",
  Sundanese: "sund",
  Syloti_Nagri: "sylo",
  Syriac: "syrc",
  Tagbanwa: "tagb",
  Takri: "takr",
  Tai_Le: "tale",
  New_Tai_Lue: "talu",
  Tamil: [
    "tml2",
    "taml"
  ],
  Tai_Viet: "tavt",
  Telugu: [
    "tel2",
    "telu"
  ],
  Tifinagh: "tfng",
  Tagalog: "tglg",
  Thaana: "thaa",
  Thai: "thai",
  Tibetan: "tibt",
  Tirhuta: "tirh",
  Ugaritic: "ugar",
  Vai: "vai ",
  Warang_Citi: "wara",
  Old_Persian: "xpeo",
  Cuneiform: "xsux",
  Yi: "yi  ",
  Inherited: "zinh",
  Common: "zyyy",
  Unknown: "zzzz"
};
var $130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS = {};
for (let script in $130d1a642ebcd2b7$var$UNICODE_SCRIPTS) {
  let tag = $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];
  if (Array.isArray(tag)) for (let t4 of tag) $130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS[t4] = script;
  else $130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS[tag] = script;
}
function $130d1a642ebcd2b7$export$ce50e82f12a827a4(tag) {
  return $130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS[tag];
}
function $130d1a642ebcd2b7$export$e5cb25e204fb8450(string) {
  let len = string.length;
  let idx = 0;
  while (idx < len) {
    let code = string.charCodeAt(idx++);
    if (55296 <= code && code <= 56319 && idx < len) {
      let next = string.charCodeAt(idx);
      if (56320 <= next && next <= 57343) {
        idx++;
        code = ((code & 1023) << 10) + (next & 1023) + 65536;
      }
    }
    let script = (0, $747425b437e121da$export$941569448d136665)(code);
    if (script !== "Common" && script !== "Inherited" && script !== "Unknown") return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];
  }
  return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS.Unknown;
}
function $130d1a642ebcd2b7$export$16fab0757cfc223d(codePoints) {
  for (let i5 = 0; i5 < codePoints.length; i5++) {
    let codePoint = codePoints[i5];
    let script = (0, $747425b437e121da$export$941569448d136665)(codePoint);
    if (script !== "Common" && script !== "Inherited" && script !== "Unknown") return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];
  }
  return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS.Unknown;
}
var $130d1a642ebcd2b7$var$RTL = {
  arab: true,
  hebr: true,
  syrc: true,
  thaa: true,
  cprt: true,
  khar: true,
  phnx: true,
  "nko ": true,
  lydi: true,
  avst: true,
  armi: true,
  phli: true,
  prti: true,
  sarb: true,
  orkh: true,
  samr: true,
  mand: true,
  merc: true,
  mero: true,
  // Unicode 7.0 (not listed on http://www.microsoft.com/typography/otspec/scripttags.htm)
  mani: true,
  mend: true,
  nbat: true,
  narb: true,
  palm: true,
  phlp: true
  // Psalter Pahlavi
};
function $130d1a642ebcd2b7$export$9fddb9d0dd7d8a54(script) {
  if ($130d1a642ebcd2b7$var$RTL[script]) return "rtl";
  return "ltr";
}
var $be07b3e97a42687a$export$2e2bcd8739ae039 = class {
  /**
  * The total advance width of the run.
  * @type {number}
  */
  get advanceWidth() {
    let width = 0;
    for (let position of this.positions) width += position.xAdvance;
    return width;
  }
  /**
  * The total advance height of the run.
  * @type {number}
  */
  get advanceHeight() {
    let height2 = 0;
    for (let position of this.positions) height2 += position.yAdvance;
    return height2;
  }
  /**
  * The bounding box containing all glyphs in the run.
  * @type {BBox}
  */
  get bbox() {
    let bbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039)();
    let x = 0;
    let y3 = 0;
    for (let index2 = 0; index2 < this.glyphs.length; index2++) {
      let glyph = this.glyphs[index2];
      let p3 = this.positions[index2];
      let b3 = glyph.bbox;
      bbox.addPoint(b3.minX + x + p3.xOffset, b3.minY + y3 + p3.yOffset);
      bbox.addPoint(b3.maxX + x + p3.xOffset, b3.maxY + y3 + p3.yOffset);
      x += p3.xAdvance;
      y3 += p3.yAdvance;
    }
    return bbox;
  }
  constructor(glyphs, features, script, language, direction) {
    this.glyphs = glyphs;
    this.positions = null;
    this.script = script;
    this.language = language || null;
    this.direction = direction || $130d1a642ebcd2b7$export$9fddb9d0dd7d8a54(script);
    this.features = {};
    if (Array.isArray(features)) for (let tag of features) this.features[tag] = true;
    else if (typeof features === "object") this.features = features;
  }
};
var $1ac75d9a55b67f01$export$2e2bcd8739ae039 = class {
  constructor(xAdvance = 0, yAdvance = 0, xOffset = 0, yOffset = 0) {
    this.xAdvance = xAdvance;
    this.yAdvance = yAdvance;
    this.xOffset = xOffset;
    this.yOffset = yOffset;
  }
};
var $3b6302b64eccc32c$var$features = {
  allTypographicFeatures: {
    code: 0,
    exclusive: false,
    allTypeFeatures: 0
  },
  ligatures: {
    code: 1,
    exclusive: false,
    requiredLigatures: 0,
    commonLigatures: 2,
    rareLigatures: 4,
    // logos: 6
    rebusPictures: 8,
    diphthongLigatures: 10,
    squaredLigatures: 12,
    abbrevSquaredLigatures: 14,
    symbolLigatures: 16,
    contextualLigatures: 18,
    historicalLigatures: 20
  },
  cursiveConnection: {
    code: 2,
    exclusive: true,
    unconnected: 0,
    partiallyConnected: 1,
    cursive: 2
  },
  letterCase: {
    code: 3,
    exclusive: true
  },
  // upperAndLowerCase: 0          # deprecated
  // allCaps: 1                    # deprecated
  // allLowerCase: 2               # deprecated
  // smallCaps: 3                  # deprecated
  // initialCaps: 4                # deprecated
  // initialCapsAndSmallCaps: 5    # deprecated
  verticalSubstitution: {
    code: 4,
    exclusive: false,
    substituteVerticalForms: 0
  },
  linguisticRearrangement: {
    code: 5,
    exclusive: false,
    linguisticRearrangement: 0
  },
  numberSpacing: {
    code: 6,
    exclusive: true,
    monospacedNumbers: 0,
    proportionalNumbers: 1,
    thirdWidthNumbers: 2,
    quarterWidthNumbers: 3
  },
  smartSwash: {
    code: 8,
    exclusive: false,
    wordInitialSwashes: 0,
    wordFinalSwashes: 2,
    // lineInitialSwashes: 4
    // lineFinalSwashes: 6
    nonFinalSwashes: 8
  },
  diacritics: {
    code: 9,
    exclusive: true,
    showDiacritics: 0,
    hideDiacritics: 1,
    decomposeDiacritics: 2
  },
  verticalPosition: {
    code: 10,
    exclusive: true,
    normalPosition: 0,
    superiors: 1,
    inferiors: 2,
    ordinals: 3,
    scientificInferiors: 4
  },
  fractions: {
    code: 11,
    exclusive: true,
    noFractions: 0,
    verticalFractions: 1,
    diagonalFractions: 2
  },
  overlappingCharacters: {
    code: 13,
    exclusive: false,
    preventOverlap: 0
  },
  typographicExtras: {
    code: 14,
    exclusive: false,
    // hyphensToEmDash: 0
    // hyphenToEnDash: 2
    slashedZero: 4
  },
  // formInterrobang: 6
  // smartQuotes: 8
  // periodsToEllipsis: 10
  mathematicalExtras: {
    code: 15,
    exclusive: false,
    // hyphenToMinus: 0
    // asteristoMultiply: 2
    // slashToDivide: 4
    // inequalityLigatures: 6
    // exponents: 8
    mathematicalGreek: 10
  },
  ornamentSets: {
    code: 16,
    exclusive: true,
    noOrnaments: 0,
    dingbats: 1,
    piCharacters: 2,
    fleurons: 3,
    decorativeBorders: 4,
    internationalSymbols: 5,
    mathSymbols: 6
  },
  characterAlternatives: {
    code: 17,
    exclusive: true,
    noAlternates: 0
  },
  // user defined options
  designComplexity: {
    code: 18,
    exclusive: true,
    designLevel1: 0,
    designLevel2: 1,
    designLevel3: 2,
    designLevel4: 3,
    designLevel5: 4
  },
  styleOptions: {
    code: 19,
    exclusive: true,
    noStyleOptions: 0,
    displayText: 1,
    engravedText: 2,
    illuminatedCaps: 3,
    titlingCaps: 4,
    tallCaps: 5
  },
  characterShape: {
    code: 20,
    exclusive: true,
    traditionalCharacters: 0,
    simplifiedCharacters: 1,
    JIS1978Characters: 2,
    JIS1983Characters: 3,
    JIS1990Characters: 4,
    traditionalAltOne: 5,
    traditionalAltTwo: 6,
    traditionalAltThree: 7,
    traditionalAltFour: 8,
    traditionalAltFive: 9,
    expertCharacters: 10,
    JIS2004Characters: 11,
    hojoCharacters: 12,
    NLCCharacters: 13,
    traditionalNamesCharacters: 14
  },
  numberCase: {
    code: 21,
    exclusive: true,
    lowerCaseNumbers: 0,
    upperCaseNumbers: 1
  },
  textSpacing: {
    code: 22,
    exclusive: true,
    proportionalText: 0,
    monospacedText: 1,
    halfWidthText: 2,
    thirdWidthText: 3,
    quarterWidthText: 4,
    altProportionalText: 5,
    altHalfWidthText: 6
  },
  transliteration: {
    code: 23,
    exclusive: true,
    noTransliteration: 0
  },
  // hanjaToHangul: 1
  // hiraganaToKatakana: 2
  // katakanaToHiragana: 3
  // kanaToRomanization: 4
  // romanizationToHiragana: 5
  // romanizationToKatakana: 6
  // hanjaToHangulAltOne: 7
  // hanjaToHangulAltTwo: 8
  // hanjaToHangulAltThree: 9
  annotation: {
    code: 24,
    exclusive: true,
    noAnnotation: 0,
    boxAnnotation: 1,
    roundedBoxAnnotation: 2,
    circleAnnotation: 3,
    invertedCircleAnnotation: 4,
    parenthesisAnnotation: 5,
    periodAnnotation: 6,
    romanNumeralAnnotation: 7,
    diamondAnnotation: 8,
    invertedBoxAnnotation: 9,
    invertedRoundedBoxAnnotation: 10
  },
  kanaSpacing: {
    code: 25,
    exclusive: true,
    fullWidthKana: 0,
    proportionalKana: 1
  },
  ideographicSpacing: {
    code: 26,
    exclusive: true,
    fullWidthIdeographs: 0,
    proportionalIdeographs: 1,
    halfWidthIdeographs: 2
  },
  unicodeDecomposition: {
    code: 27,
    exclusive: false,
    canonicalComposition: 0,
    compatibilityComposition: 2,
    transcodingComposition: 4
  },
  rubyKana: {
    code: 28,
    exclusive: false,
    // noRubyKana: 0     # deprecated - use rubyKanaOff instead
    // rubyKana: 1     # deprecated - use rubyKanaOn instead
    rubyKana: 2
  },
  CJKSymbolAlternatives: {
    code: 29,
    exclusive: true,
    noCJKSymbolAlternatives: 0,
    CJKSymbolAltOne: 1,
    CJKSymbolAltTwo: 2,
    CJKSymbolAltThree: 3,
    CJKSymbolAltFour: 4,
    CJKSymbolAltFive: 5
  },
  ideographicAlternatives: {
    code: 30,
    exclusive: true,
    noIdeographicAlternatives: 0,
    ideographicAltOne: 1,
    ideographicAltTwo: 2,
    ideographicAltThree: 3,
    ideographicAltFour: 4,
    ideographicAltFive: 5
  },
  CJKVerticalRomanPlacement: {
    code: 31,
    exclusive: true,
    CJKVerticalRomanCentered: 0,
    CJKVerticalRomanHBaseline: 1
  },
  italicCJKRoman: {
    code: 32,
    exclusive: false,
    // noCJKItalicRoman: 0     # deprecated - use CJKItalicRomanOff instead
    // CJKItalicRoman: 1     # deprecated - use CJKItalicRomanOn instead
    CJKItalicRoman: 2
  },
  caseSensitiveLayout: {
    code: 33,
    exclusive: false,
    caseSensitiveLayout: 0,
    caseSensitiveSpacing: 2
  },
  alternateKana: {
    code: 34,
    exclusive: false,
    alternateHorizKana: 0,
    alternateVertKana: 2
  },
  stylisticAlternatives: {
    code: 35,
    exclusive: false,
    noStylisticAlternates: 0,
    stylisticAltOne: 2,
    stylisticAltTwo: 4,
    stylisticAltThree: 6,
    stylisticAltFour: 8,
    stylisticAltFive: 10,
    stylisticAltSix: 12,
    stylisticAltSeven: 14,
    stylisticAltEight: 16,
    stylisticAltNine: 18,
    stylisticAltTen: 20,
    stylisticAltEleven: 22,
    stylisticAltTwelve: 24,
    stylisticAltThirteen: 26,
    stylisticAltFourteen: 28,
    stylisticAltFifteen: 30,
    stylisticAltSixteen: 32,
    stylisticAltSeventeen: 34,
    stylisticAltEighteen: 36,
    stylisticAltNineteen: 38,
    stylisticAltTwenty: 40
  },
  contextualAlternates: {
    code: 36,
    exclusive: false,
    contextualAlternates: 0,
    swashAlternates: 2,
    contextualSwashAlternates: 4
  },
  lowerCase: {
    code: 37,
    exclusive: true,
    defaultLowerCase: 0,
    lowerCaseSmallCaps: 1,
    lowerCasePetiteCaps: 2
  },
  upperCase: {
    code: 38,
    exclusive: true,
    defaultUpperCase: 0,
    upperCaseSmallCaps: 1,
    upperCasePetiteCaps: 2
  },
  languageTag: {
    code: 39,
    exclusive: true
  },
  CJKRomanSpacing: {
    code: 103,
    exclusive: true,
    halfWidthCJKRoman: 0,
    proportionalCJKRoman: 1,
    defaultCJKRoman: 2,
    fullWidthCJKRoman: 3
  }
};
var $3b6302b64eccc32c$var$feature = (name, selector) => [
  $3b6302b64eccc32c$var$features[name].code,
  $3b6302b64eccc32c$var$features[name][selector]
];
var $3b6302b64eccc32c$var$OTMapping = {
  rlig: $3b6302b64eccc32c$var$feature("ligatures", "requiredLigatures"),
  clig: $3b6302b64eccc32c$var$feature("ligatures", "contextualLigatures"),
  dlig: $3b6302b64eccc32c$var$feature("ligatures", "rareLigatures"),
  hlig: $3b6302b64eccc32c$var$feature("ligatures", "historicalLigatures"),
  liga: $3b6302b64eccc32c$var$feature("ligatures", "commonLigatures"),
  hist: $3b6302b64eccc32c$var$feature("ligatures", "historicalLigatures"),
  smcp: $3b6302b64eccc32c$var$feature("lowerCase", "lowerCaseSmallCaps"),
  pcap: $3b6302b64eccc32c$var$feature("lowerCase", "lowerCasePetiteCaps"),
  frac: $3b6302b64eccc32c$var$feature("fractions", "diagonalFractions"),
  dnom: $3b6302b64eccc32c$var$feature("fractions", "diagonalFractions"),
  numr: $3b6302b64eccc32c$var$feature("fractions", "diagonalFractions"),
  afrc: $3b6302b64eccc32c$var$feature("fractions", "verticalFractions"),
  // aalt
  // abvf, abvm, abvs, akhn, blwf, blwm, blws, cfar, cjct, cpsp, falt, isol, jalt, ljmo, mset?
  // ltra, ltrm, nukt, pref, pres, pstf, psts, rand, rkrf, rphf, rtla, rtlm, size, tjmo, tnum?
  // unic, vatu, vhal, vjmo, vpal, vrt2
  // dist -> trak table?
  // kern, vkrn -> kern table
  // lfbd + opbd + rtbd -> opbd table?
  // mark, mkmk -> acnt table?
  // locl -> languageTag + ltag table
  case: $3b6302b64eccc32c$var$feature("caseSensitiveLayout", "caseSensitiveLayout"),
  ccmp: $3b6302b64eccc32c$var$feature("unicodeDecomposition", "canonicalComposition"),
  cpct: $3b6302b64eccc32c$var$feature("CJKVerticalRomanPlacement", "CJKVerticalRomanCentered"),
  valt: $3b6302b64eccc32c$var$feature("CJKVerticalRomanPlacement", "CJKVerticalRomanCentered"),
  swsh: $3b6302b64eccc32c$var$feature("contextualAlternates", "swashAlternates"),
  cswh: $3b6302b64eccc32c$var$feature("contextualAlternates", "contextualSwashAlternates"),
  curs: $3b6302b64eccc32c$var$feature("cursiveConnection", "cursive"),
  c2pc: $3b6302b64eccc32c$var$feature("upperCase", "upperCasePetiteCaps"),
  c2sc: $3b6302b64eccc32c$var$feature("upperCase", "upperCaseSmallCaps"),
  init: $3b6302b64eccc32c$var$feature("smartSwash", "wordInitialSwashes"),
  fin2: $3b6302b64eccc32c$var$feature("smartSwash", "wordFinalSwashes"),
  medi: $3b6302b64eccc32c$var$feature("smartSwash", "nonFinalSwashes"),
  med2: $3b6302b64eccc32c$var$feature("smartSwash", "nonFinalSwashes"),
  fin3: $3b6302b64eccc32c$var$feature("smartSwash", "wordFinalSwashes"),
  fina: $3b6302b64eccc32c$var$feature("smartSwash", "wordFinalSwashes"),
  pkna: $3b6302b64eccc32c$var$feature("kanaSpacing", "proportionalKana"),
  half: $3b6302b64eccc32c$var$feature("textSpacing", "halfWidthText"),
  halt: $3b6302b64eccc32c$var$feature("textSpacing", "altHalfWidthText"),
  hkna: $3b6302b64eccc32c$var$feature("alternateKana", "alternateHorizKana"),
  vkna: $3b6302b64eccc32c$var$feature("alternateKana", "alternateVertKana"),
  // hngl: feature 'transliteration', 'hanjaToHangulSelector' # deprecated
  ital: $3b6302b64eccc32c$var$feature("italicCJKRoman", "CJKItalicRoman"),
  lnum: $3b6302b64eccc32c$var$feature("numberCase", "upperCaseNumbers"),
  onum: $3b6302b64eccc32c$var$feature("numberCase", "lowerCaseNumbers"),
  mgrk: $3b6302b64eccc32c$var$feature("mathematicalExtras", "mathematicalGreek"),
  // nalt: not enough info. what type of annotation?
  // ornm: ditto, which ornament style?
  calt: $3b6302b64eccc32c$var$feature("contextualAlternates", "contextualAlternates"),
  vrt2: $3b6302b64eccc32c$var$feature("verticalSubstitution", "substituteVerticalForms"),
  vert: $3b6302b64eccc32c$var$feature("verticalSubstitution", "substituteVerticalForms"),
  tnum: $3b6302b64eccc32c$var$feature("numberSpacing", "monospacedNumbers"),
  pnum: $3b6302b64eccc32c$var$feature("numberSpacing", "proportionalNumbers"),
  sups: $3b6302b64eccc32c$var$feature("verticalPosition", "superiors"),
  subs: $3b6302b64eccc32c$var$feature("verticalPosition", "inferiors"),
  ordn: $3b6302b64eccc32c$var$feature("verticalPosition", "ordinals"),
  pwid: $3b6302b64eccc32c$var$feature("textSpacing", "proportionalText"),
  hwid: $3b6302b64eccc32c$var$feature("textSpacing", "halfWidthText"),
  qwid: $3b6302b64eccc32c$var$feature("textSpacing", "quarterWidthText"),
  twid: $3b6302b64eccc32c$var$feature("textSpacing", "thirdWidthText"),
  fwid: $3b6302b64eccc32c$var$feature("textSpacing", "proportionalText"),
  palt: $3b6302b64eccc32c$var$feature("textSpacing", "altProportionalText"),
  trad: $3b6302b64eccc32c$var$feature("characterShape", "traditionalCharacters"),
  smpl: $3b6302b64eccc32c$var$feature("characterShape", "simplifiedCharacters"),
  jp78: $3b6302b64eccc32c$var$feature("characterShape", "JIS1978Characters"),
  jp83: $3b6302b64eccc32c$var$feature("characterShape", "JIS1983Characters"),
  jp90: $3b6302b64eccc32c$var$feature("characterShape", "JIS1990Characters"),
  jp04: $3b6302b64eccc32c$var$feature("characterShape", "JIS2004Characters"),
  expt: $3b6302b64eccc32c$var$feature("characterShape", "expertCharacters"),
  hojo: $3b6302b64eccc32c$var$feature("characterShape", "hojoCharacters"),
  nlck: $3b6302b64eccc32c$var$feature("characterShape", "NLCCharacters"),
  tnam: $3b6302b64eccc32c$var$feature("characterShape", "traditionalNamesCharacters"),
  ruby: $3b6302b64eccc32c$var$feature("rubyKana", "rubyKana"),
  titl: $3b6302b64eccc32c$var$feature("styleOptions", "titlingCaps"),
  zero: $3b6302b64eccc32c$var$feature("typographicExtras", "slashedZero"),
  ss01: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltOne"),
  ss02: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltTwo"),
  ss03: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltThree"),
  ss04: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltFour"),
  ss05: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltFive"),
  ss06: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltSix"),
  ss07: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltSeven"),
  ss08: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltEight"),
  ss09: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltNine"),
  ss10: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltTen"),
  ss11: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltEleven"),
  ss12: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltTwelve"),
  ss13: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltThirteen"),
  ss14: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltFourteen"),
  ss15: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltFifteen"),
  ss16: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltSixteen"),
  ss17: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltSeventeen"),
  ss18: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltEighteen"),
  ss19: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltNineteen"),
  ss20: $3b6302b64eccc32c$var$feature("stylisticAlternatives", "stylisticAltTwenty")
};
for (let i5 = 1; i5 <= 99; i5++) $3b6302b64eccc32c$var$OTMapping[`cv${`00${i5}`.slice(-2)}`] = [
  $3b6302b64eccc32c$var$features.characterAlternatives.code,
  i5
];
var $3b6302b64eccc32c$var$AATMapping = {};
for (let ot in $3b6302b64eccc32c$var$OTMapping) {
  let aat = $3b6302b64eccc32c$var$OTMapping[ot];
  if ($3b6302b64eccc32c$var$AATMapping[aat[0]] == null) $3b6302b64eccc32c$var$AATMapping[aat[0]] = {};
  $3b6302b64eccc32c$var$AATMapping[aat[0]][aat[1]] = ot;
}
function $3b6302b64eccc32c$export$b813f7d2a1677c16(features) {
  let res = {};
  for (let k3 in features) {
    let r4;
    if (r4 = $3b6302b64eccc32c$var$OTMapping[k3]) {
      if (res[r4[0]] == null) res[r4[0]] = {};
      res[r4[0]][r4[1]] = features[k3];
    }
  }
  return res;
}
function $3b6302b64eccc32c$var$mapFeatureStrings(f4) {
  let [type, setting] = f4;
  if (isNaN(type)) var typeCode = $3b6302b64eccc32c$var$features[type] && $3b6302b64eccc32c$var$features[type].code;
  else var typeCode = type;
  if (isNaN(setting)) var settingCode = $3b6302b64eccc32c$var$features[type] && $3b6302b64eccc32c$var$features[type][setting];
  else var settingCode = setting;
  return [
    typeCode,
    settingCode
  ];
}
function $3b6302b64eccc32c$export$bd6df347a4f391c4(features) {
  let res = {};
  if (Array.isArray(features)) for (let k3 = 0; k3 < features.length; k3++) {
    let r4;
    let f4 = $3b6302b64eccc32c$var$mapFeatureStrings(features[k3]);
    if (r4 = $3b6302b64eccc32c$var$AATMapping[f4[0]] && $3b6302b64eccc32c$var$AATMapping[f4[0]][f4[1]]) res[r4] = true;
  }
  else if (typeof features === "object") for (let type in features) {
    let feature = features[type];
    for (let setting in feature) {
      let r4;
      let f4 = $3b6302b64eccc32c$var$mapFeatureStrings([
        type,
        setting
      ]);
      if (feature[setting] && (r4 = $3b6302b64eccc32c$var$AATMapping[f4[0]] && $3b6302b64eccc32c$var$AATMapping[f4[0]][f4[1]])) res[r4] = true;
    }
  }
  return Object.keys(res);
}
var $ff5ce077dae0f144$export$2e2bcd8739ae039 = class {
  lookup(glyph) {
    switch (this.table.version) {
      case 0:
        return this.table.values.getItem(glyph);
      case 2:
      case 4: {
        let min2 = 0;
        let max3 = this.table.binarySearchHeader.nUnits - 1;
        while (min2 <= max3) {
          var mid = min2 + max3 >> 1;
          var seg = this.table.segments[mid];
          if (seg.firstGlyph === 65535) return null;
          if (glyph < seg.firstGlyph) max3 = mid - 1;
          else if (glyph > seg.lastGlyph) min2 = mid + 1;
          else {
            if (this.table.version === 2) return seg.value;
            else return seg.values[glyph - seg.firstGlyph];
          }
        }
        return null;
      }
      case 6: {
        let min2 = 0;
        let max3 = this.table.binarySearchHeader.nUnits - 1;
        while (min2 <= max3) {
          var mid = min2 + max3 >> 1;
          var seg = this.table.segments[mid];
          if (seg.glyph === 65535) return null;
          if (glyph < seg.glyph) max3 = mid - 1;
          else if (glyph > seg.glyph) min2 = mid + 1;
          else return seg.value;
        }
        return null;
      }
      case 8:
        return this.table.values[glyph - this.table.firstGlyph];
      default:
        throw new Error(`Unknown lookup table format: ${this.table.version}`);
    }
  }
  glyphsForValue(classValue) {
    let res = [];
    switch (this.table.version) {
      case 2:
      case 4:
        for (let segment of this.table.segments) if (this.table.version === 2 && segment.value === classValue) res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(segment.firstGlyph, segment.lastGlyph + 1));
        else {
          for (let index2 = 0; index2 < segment.values.length; index2++) if (segment.values[index2] === classValue) res.push(segment.firstGlyph + index2);
        }
        break;
      case 6:
        for (let segment of this.table.segments) if (segment.value === classValue) res.push(segment.glyph);
        break;
      case 8:
        for (let i5 = 0; i5 < this.table.values.length; i5++) if (this.table.values[i5] === classValue) res.push(this.table.firstGlyph + i5);
        break;
      default:
        throw new Error(`Unknown lookup table format: ${this.table.version}`);
    }
    return res;
  }
  constructor(table) {
    this.table = table;
  }
};
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $ff5ce077dae0f144$export$2e2bcd8739ae039.prototype, "glyphsForValue", null);
var $50c7aac9316f2948$var$START_OF_TEXT_STATE = 0;
var $50c7aac9316f2948$var$END_OF_TEXT_CLASS = 0;
var $50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS = 1;
var $50c7aac9316f2948$var$DELETED_GLYPH_CLASS = 2;
var $50c7aac9316f2948$var$DONT_ADVANCE = 16384;
var $50c7aac9316f2948$export$2e2bcd8739ae039 = class {
  process(glyphs, reverse2, processEntry) {
    let currentState = $50c7aac9316f2948$var$START_OF_TEXT_STATE;
    let index2 = reverse2 ? glyphs.length - 1 : 0;
    let dir = reverse2 ? -1 : 1;
    while (dir === 1 && index2 <= glyphs.length || dir === -1 && index2 >= -1) {
      let glyph = null;
      let classCode = $50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS;
      let shouldAdvance = true;
      if (index2 === glyphs.length || index2 === -1) classCode = $50c7aac9316f2948$var$END_OF_TEXT_CLASS;
      else {
        glyph = glyphs[index2];
        if (glyph.id === 65535) classCode = $50c7aac9316f2948$var$DELETED_GLYPH_CLASS;
        else {
          classCode = this.lookupTable.lookup(glyph.id);
          if (classCode == null) classCode = $50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS;
        }
      }
      let row = this.stateTable.stateArray.getItem(currentState);
      let entryIndex = row[classCode];
      let entry = this.stateTable.entryTable.getItem(entryIndex);
      if (classCode !== $50c7aac9316f2948$var$END_OF_TEXT_CLASS && classCode !== $50c7aac9316f2948$var$DELETED_GLYPH_CLASS) {
        processEntry(glyph, entry, index2);
        shouldAdvance = !(entry.flags & $50c7aac9316f2948$var$DONT_ADVANCE);
      }
      currentState = entry.newState;
      if (shouldAdvance) index2 += dir;
    }
    return glyphs;
  }
  /**
  * Performs a depth-first traversal of the glyph strings
  * represented by the state machine.
  */
  traverse(opts2, state = 0, visited = /* @__PURE__ */ new Set()) {
    if (visited.has(state)) return;
    visited.add(state);
    let { nClasses, stateArray, entryTable } = this.stateTable;
    let row = stateArray.getItem(state);
    for (let classCode = 4; classCode < nClasses; classCode++) {
      let entryIndex = row[classCode];
      let entry = entryTable.getItem(entryIndex);
      for (let glyph of this.lookupTable.glyphsForValue(classCode)) {
        if (opts2.enter) opts2.enter(glyph, entry);
        if (entry.newState !== 0) this.traverse(opts2, entry.newState, visited);
        if (opts2.exit) opts2.exit(glyph, entry);
      }
    }
  }
  constructor(stateTable) {
    this.stateTable = stateTable;
    this.lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(stateTable.classTable);
  }
};
var $55f71433a605c87d$var$MARK_FIRST = 32768;
var $55f71433a605c87d$var$MARK_LAST = 8192;
var $55f71433a605c87d$var$VERB = 15;
var $55f71433a605c87d$var$SET_MARK = 32768;
var $55f71433a605c87d$var$SET_COMPONENT = 32768;
var $55f71433a605c87d$var$PERFORM_ACTION = 8192;
var $55f71433a605c87d$var$LAST_MASK = 2147483648;
var $55f71433a605c87d$var$STORE_MASK = 1073741824;
var $55f71433a605c87d$var$OFFSET_MASK = 1073741823;
var $55f71433a605c87d$var$REVERSE_DIRECTION = 4194304;
var $55f71433a605c87d$var$CURRENT_INSERT_BEFORE = 2048;
var $55f71433a605c87d$var$MARKED_INSERT_BEFORE = 1024;
var $55f71433a605c87d$var$CURRENT_INSERT_COUNT = 992;
var $55f71433a605c87d$var$MARKED_INSERT_COUNT = 31;
var $55f71433a605c87d$export$2e2bcd8739ae039 = class {
  // Processes an array of glyphs and applies the specified features
  // Features should be in the form of {featureType:{featureSetting:boolean}}
  process(glyphs, features = {}) {
    for (let chain of this.morx.chains) {
      let flags = chain.defaultFlags;
      for (let feature of chain.features) {
        let f4;
        if (f4 = features[feature.featureType]) {
          if (f4[feature.featureSetting]) {
            flags &= feature.disableFlags;
            flags |= feature.enableFlags;
          } else if (f4[feature.featureSetting] === false) {
            flags |= ~feature.disableFlags;
            flags &= ~feature.enableFlags;
          }
        }
      }
      for (let subtable of chain.subtables) if (subtable.subFeatureFlags & flags) this.processSubtable(subtable, glyphs);
    }
    let index2 = glyphs.length - 1;
    while (index2 >= 0) {
      if (glyphs[index2].id === 65535) glyphs.splice(index2, 1);
      index2--;
    }
    return glyphs;
  }
  processSubtable(subtable, glyphs) {
    this.subtable = subtable;
    this.glyphs = glyphs;
    if (this.subtable.type === 4) {
      this.processNoncontextualSubstitutions(this.subtable, this.glyphs);
      return;
    }
    this.ligatureStack = [];
    this.markedGlyph = null;
    this.firstGlyph = null;
    this.lastGlyph = null;
    this.markedIndex = null;
    let stateMachine = this.getStateMachine(subtable);
    let process4 = this.getProcessor();
    let reverse2 = !!(this.subtable.coverage & $55f71433a605c87d$var$REVERSE_DIRECTION);
    return stateMachine.process(this.glyphs, reverse2, process4);
  }
  getStateMachine(subtable) {
    return new (0, $50c7aac9316f2948$export$2e2bcd8739ae039)(subtable.table.stateTable);
  }
  getProcessor() {
    switch (this.subtable.type) {
      case 0:
        return this.processIndicRearragement;
      case 1:
        return this.processContextualSubstitution;
      case 2:
        return this.processLigature;
      case 4:
        return this.processNoncontextualSubstitutions;
      case 5:
        return this.processGlyphInsertion;
      default:
        throw new Error(`Invalid morx subtable type: ${this.subtable.type}`);
    }
  }
  processIndicRearragement(glyph, entry, index2) {
    if (entry.flags & $55f71433a605c87d$var$MARK_FIRST) this.firstGlyph = index2;
    if (entry.flags & $55f71433a605c87d$var$MARK_LAST) this.lastGlyph = index2;
    $55f71433a605c87d$var$reorderGlyphs(this.glyphs, entry.flags & $55f71433a605c87d$var$VERB, this.firstGlyph, this.lastGlyph);
  }
  processContextualSubstitution(glyph, entry, index2) {
    let subsitutions = this.subtable.table.substitutionTable.items;
    if (entry.markIndex !== 65535) {
      let lookup = subsitutions.getItem(entry.markIndex);
      let lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(lookup);
      glyph = this.glyphs[this.markedGlyph];
      var gid = lookupTable.lookup(glyph.id);
      if (gid) this.glyphs[this.markedGlyph] = this.font.getGlyph(gid, glyph.codePoints);
    }
    if (entry.currentIndex !== 65535) {
      let lookup = subsitutions.getItem(entry.currentIndex);
      let lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(lookup);
      glyph = this.glyphs[index2];
      var gid = lookupTable.lookup(glyph.id);
      if (gid) this.glyphs[index2] = this.font.getGlyph(gid, glyph.codePoints);
    }
    if (entry.flags & $55f71433a605c87d$var$SET_MARK) this.markedGlyph = index2;
  }
  processLigature(glyph, entry, index2) {
    if (entry.flags & $55f71433a605c87d$var$SET_COMPONENT) this.ligatureStack.push(index2);
    if (entry.flags & $55f71433a605c87d$var$PERFORM_ACTION) {
      let actions = this.subtable.table.ligatureActions;
      let components = this.subtable.table.components;
      let ligatureList = this.subtable.table.ligatureList;
      let actionIndex = entry.action;
      let last2 = false;
      let ligatureIndex = 0;
      let codePoints = [];
      let ligatureGlyphs = [];
      while (!last2) {
        let componentGlyph = this.ligatureStack.pop();
        codePoints.unshift(...this.glyphs[componentGlyph].codePoints);
        let action = actions.getItem(actionIndex++);
        last2 = !!(action & $55f71433a605c87d$var$LAST_MASK);
        let store = !!(action & $55f71433a605c87d$var$STORE_MASK);
        let offset2 = (action & $55f71433a605c87d$var$OFFSET_MASK) << 2 >> 2;
        offset2 += this.glyphs[componentGlyph].id;
        let component = components.getItem(offset2);
        ligatureIndex += component;
        if (last2 || store) {
          let ligatureEntry = ligatureList.getItem(ligatureIndex);
          this.glyphs[componentGlyph] = this.font.getGlyph(ligatureEntry, codePoints);
          ligatureGlyphs.push(componentGlyph);
          ligatureIndex = 0;
          codePoints = [];
        } else this.glyphs[componentGlyph] = this.font.getGlyph(65535);
      }
      this.ligatureStack.push(...ligatureGlyphs);
    }
  }
  processNoncontextualSubstitutions(subtable, glyphs, index2) {
    let lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(subtable.table.lookupTable);
    for (index2 = 0; index2 < glyphs.length; index2++) {
      let glyph = glyphs[index2];
      if (glyph.id !== 65535) {
        let gid = lookupTable.lookup(glyph.id);
        if (gid) glyphs[index2] = this.font.getGlyph(gid, glyph.codePoints);
      }
    }
  }
  _insertGlyphs(glyphIndex, insertionActionIndex, count, isBefore) {
    let insertions = [];
    while (count--) {
      let gid = this.subtable.table.insertionActions.getItem(insertionActionIndex++);
      insertions.push(this.font.getGlyph(gid));
    }
    if (!isBefore) glyphIndex++;
    this.glyphs.splice(glyphIndex, 0, ...insertions);
  }
  processGlyphInsertion(glyph, entry, index2) {
    if (entry.flags & $55f71433a605c87d$var$SET_MARK) this.markedIndex = index2;
    if (entry.markedInsertIndex !== 65535) {
      let count = (entry.flags & $55f71433a605c87d$var$MARKED_INSERT_COUNT) >>> 5;
      let isBefore = !!(entry.flags & $55f71433a605c87d$var$MARKED_INSERT_BEFORE);
      this._insertGlyphs(this.markedIndex, entry.markedInsertIndex, count, isBefore);
    }
    if (entry.currentInsertIndex !== 65535) {
      let count = (entry.flags & $55f71433a605c87d$var$CURRENT_INSERT_COUNT) >>> 5;
      let isBefore = !!(entry.flags & $55f71433a605c87d$var$CURRENT_INSERT_BEFORE);
      this._insertGlyphs(index2, entry.currentInsertIndex, count, isBefore);
    }
  }
  getSupportedFeatures() {
    let features = [];
    for (let chain of this.morx.chains) for (let feature of chain.features) features.push([
      feature.featureType,
      feature.featureSetting
    ]);
    return features;
  }
  generateInputs(gid) {
    if (!this.inputCache) this.generateInputCache();
    return this.inputCache[gid] || [];
  }
  generateInputCache() {
    this.inputCache = {};
    for (let chain of this.morx.chains) {
      let flags = chain.defaultFlags;
      for (let subtable of chain.subtables) if (subtable.subFeatureFlags & flags) this.generateInputsForSubtable(subtable);
    }
  }
  generateInputsForSubtable(subtable) {
    if (subtable.type !== 2) return;
    let reverse2 = !!(subtable.coverage & $55f71433a605c87d$var$REVERSE_DIRECTION);
    if (reverse2) throw new Error("Reverse subtable, not supported.");
    this.subtable = subtable;
    this.ligatureStack = [];
    let stateMachine = this.getStateMachine(subtable);
    let process4 = this.getProcessor();
    let input = [];
    let stack = [];
    this.glyphs = [];
    stateMachine.traverse({
      enter: (glyph, entry) => {
        let glyphs = this.glyphs;
        stack.push({
          glyphs: glyphs.slice(),
          ligatureStack: this.ligatureStack.slice()
        });
        let g3 = this.font.getGlyph(glyph);
        input.push(g3);
        glyphs.push(input[input.length - 1]);
        process4(glyphs[glyphs.length - 1], entry, glyphs.length - 1);
        let count = 0;
        let found = 0;
        for (let i5 = 0; i5 < glyphs.length && count <= 1; i5++) if (glyphs[i5].id !== 65535) {
          count++;
          found = glyphs[i5].id;
        }
        if (count === 1) {
          let result = input.map((g4) => g4.id);
          let cache2 = this.inputCache[found];
          if (cache2) cache2.push(result);
          else this.inputCache[found] = [
            result
          ];
        }
      },
      exit: () => {
        ({ glyphs: this.glyphs, ligatureStack: this.ligatureStack } = stack.pop());
        input.pop();
      }
    });
  }
  constructor(font) {
    this.processIndicRearragement = this.processIndicRearragement.bind(this);
    this.processContextualSubstitution = this.processContextualSubstitution.bind(this);
    this.processLigature = this.processLigature.bind(this);
    this.processNoncontextualSubstitutions = this.processNoncontextualSubstitutions.bind(this);
    this.processGlyphInsertion = this.processGlyphInsertion.bind(this);
    this.font = font;
    this.morx = font.morx;
    this.inputCache = null;
  }
};
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $55f71433a605c87d$export$2e2bcd8739ae039.prototype, "getStateMachine", null);
function $55f71433a605c87d$var$swap(glyphs, rangeA, rangeB, reverseA = false, reverseB = false) {
  let end2 = glyphs.splice(rangeB[0] - (rangeB[1] - 1), rangeB[1]);
  if (reverseB) end2.reverse();
  let start2 = glyphs.splice(rangeA[0], rangeA[1], ...end2);
  if (reverseA) start2.reverse();
  glyphs.splice(rangeB[0] - (rangeA[1] - 1), 0, ...start2);
  return glyphs;
}
function $55f71433a605c87d$var$reorderGlyphs(glyphs, verb, firstGlyph, lastGlyph) {
  let length2 = lastGlyph - firstGlyph + 1;
  switch (verb) {
    case 0:
      return glyphs;
    case 1:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        1
      ], [
        lastGlyph,
        0
      ]);
    case 2:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        0
      ], [
        lastGlyph,
        1
      ]);
    case 3:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        1
      ], [
        lastGlyph,
        1
      ]);
    case 4:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        2
      ], [
        lastGlyph,
        0
      ]);
    case 5:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        2
      ], [
        lastGlyph,
        0
      ], true, false);
    case 6:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        0
      ], [
        lastGlyph,
        2
      ]);
    case 7:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        0
      ], [
        lastGlyph,
        2
      ], false, true);
    case 8:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        1
      ], [
        lastGlyph,
        2
      ]);
    case 9:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        1
      ], [
        lastGlyph,
        2
      ], false, true);
    case 10:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        2
      ], [
        lastGlyph,
        1
      ]);
    case 11:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        2
      ], [
        lastGlyph,
        1
      ], true, false);
    case 12:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        2
      ], [
        lastGlyph,
        2
      ]);
    case 13:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        2
      ], [
        lastGlyph,
        2
      ], true, false);
    case 14:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        2
      ], [
        lastGlyph,
        2
      ], false, true);
    case 15:
      return $55f71433a605c87d$var$swap(glyphs, [
        firstGlyph,
        2
      ], [
        lastGlyph,
        2
      ], true, true);
    default:
      throw new Error(`Unknown verb: ${verb}`);
  }
}
var $ba6dd74203be8728$export$2e2bcd8739ae039 = class {
  substitute(glyphRun) {
    if (glyphRun.direction === "rtl") glyphRun.glyphs.reverse();
    this.morxProcessor.process(glyphRun.glyphs, $3b6302b64eccc32c$export$b813f7d2a1677c16(glyphRun.features));
  }
  getAvailableFeatures(script, language) {
    return $3b6302b64eccc32c$export$bd6df347a4f391c4(this.morxProcessor.getSupportedFeatures());
  }
  stringsForGlyph(gid) {
    let glyphStrings = this.morxProcessor.generateInputs(gid);
    let result = /* @__PURE__ */ new Set();
    for (let glyphs of glyphStrings) this._addStrings(glyphs, 0, result, "");
    return result;
  }
  _addStrings(glyphs, index2, strings, string) {
    let codePoints = this.font._cmapProcessor.codePointsForGlyph(glyphs[index2]);
    for (let codePoint of codePoints) {
      let s4 = string + String.fromCodePoint(codePoint);
      if (index2 < glyphs.length - 1) this._addStrings(glyphs, index2 + 1, strings, s4);
      else strings.add(s4);
    }
  }
  constructor(font) {
    this.font = font;
    this.morxProcessor = new (0, $55f71433a605c87d$export$2e2bcd8739ae039)(font);
    this.fallbackPosition = false;
  }
};
var $94d7a73bd2edfc9a$export$2e2bcd8739ae039 = class {
  /**
  * Adds the given features to the last stage.
  * Ignores features that have already been applied.
  */
  _addFeatures(features, global2) {
    let stageIndex = this.stages.length - 1;
    let stage = this.stages[stageIndex];
    for (let feature of features) if (this.allFeatures[feature] == null) {
      stage.push(feature);
      this.allFeatures[feature] = stageIndex;
      if (global2) this.globalFeatures[feature] = true;
    }
  }
  /**
  * Add features to the last stage
  */
  add(arg, global2 = true) {
    if (this.stages.length === 0) this.stages.push([]);
    if (typeof arg === "string") arg = [
      arg
    ];
    if (Array.isArray(arg)) this._addFeatures(arg, global2);
    else if (typeof arg === "object") {
      this._addFeatures(arg.global || [], true);
      this._addFeatures(arg.local || [], false);
    } else throw new Error("Unsupported argument to ShapingPlan#add");
  }
  /**
  * Add a new stage
  */
  addStage(arg, global2) {
    if (typeof arg === "function") this.stages.push(arg, []);
    else {
      this.stages.push([]);
      this.add(arg, global2);
    }
  }
  setFeatureOverrides(features) {
    if (Array.isArray(features)) this.add(features);
    else if (typeof features === "object") for (let tag in features) {
      if (features[tag]) this.add(tag);
      else if (this.allFeatures[tag] != null) {
        let stage = this.stages[this.allFeatures[tag]];
        stage.splice(stage.indexOf(tag), 1);
        delete this.allFeatures[tag];
        delete this.globalFeatures[tag];
      }
    }
  }
  /**
  * Assigns the global features to the given glyphs
  */
  assignGlobalFeatures(glyphs) {
    for (let glyph of glyphs) for (let feature in this.globalFeatures) glyph.features[feature] = true;
  }
  /**
  * Executes the planned stages using the given OTProcessor
  */
  process(processor, glyphs, positions) {
    for (let stage of this.stages) {
      if (typeof stage === "function") {
        if (!positions) stage(this.font, glyphs, this);
      } else if (stage.length > 0) processor.applyFeatures(stage, glyphs, positions);
    }
  }
  constructor(font, script, direction) {
    this.font = font;
    this.script = script;
    this.direction = direction;
    this.stages = [];
    this.globalFeatures = {};
    this.allFeatures = {};
  }
};
var $649970d87335b30f$var$VARIATION_FEATURES = [
  "rvrn"
];
var $649970d87335b30f$var$COMMON_FEATURES = [
  "ccmp",
  "locl",
  "rlig",
  "mark",
  "mkmk"
];
var $649970d87335b30f$var$FRACTIONAL_FEATURES = [
  "frac",
  "numr",
  "dnom"
];
var $649970d87335b30f$var$HORIZONTAL_FEATURES = [
  "calt",
  "clig",
  "liga",
  "rclt",
  "curs",
  "kern"
];
var $649970d87335b30f$var$DIRECTIONAL_FEATURES = {
  ltr: [
    "ltra",
    "ltrm"
  ],
  rtl: [
    "rtla",
    "rtlm"
  ]
};
var $649970d87335b30f$export$2e2bcd8739ae039 = class {
  static plan(plan, glyphs, features) {
    this.planPreprocessing(plan);
    this.planFeatures(plan);
    this.planPostprocessing(plan, features);
    plan.assignGlobalFeatures(glyphs);
    this.assignFeatures(plan, glyphs);
  }
  static planPreprocessing(plan) {
    plan.add({
      global: [
        ...$649970d87335b30f$var$VARIATION_FEATURES,
        ...$649970d87335b30f$var$DIRECTIONAL_FEATURES[plan.direction]
      ],
      local: $649970d87335b30f$var$FRACTIONAL_FEATURES
    });
  }
  static planFeatures(plan) {
  }
  static planPostprocessing(plan, userFeatures) {
    plan.add([
      ...$649970d87335b30f$var$COMMON_FEATURES,
      ...$649970d87335b30f$var$HORIZONTAL_FEATURES
    ]);
    plan.setFeatureOverrides(userFeatures);
  }
  static assignFeatures(plan, glyphs) {
    for (let i5 = 0; i5 < glyphs.length; i5++) {
      let glyph = glyphs[i5];
      if (glyph.codePoints[0] === 8260) {
        let start2 = i5;
        let end2 = i5 + 1;
        while (start2 > 0 && (0, $747425b437e121da$export$727d9dbc4fbb948f)(glyphs[start2 - 1].codePoints[0])) {
          glyphs[start2 - 1].features.numr = true;
          glyphs[start2 - 1].features.frac = true;
          start2--;
        }
        while (end2 < glyphs.length && (0, $747425b437e121da$export$727d9dbc4fbb948f)(glyphs[end2].codePoints[0])) {
          glyphs[end2].features.dnom = true;
          glyphs[end2].features.frac = true;
          end2++;
        }
        glyph.features.frac = true;
        i5 = end2 - 1;
      }
    }
  }
};
(0, _define_property)($649970d87335b30f$export$2e2bcd8739ae039, "zeroMarkWidths", "AFTER_GPOS");
var $764eb544bbe1ccf0$var$trie = new (0, import_unicode_trie2.default)((0, $12727730ddfc8bfe$export$94fdf11bafc8de6b)("APABAAAAAAAAOAAAAf0BAv7tmi1MxDAUx7vtvjhAgcDgkEgEAnmXEBIMCYaEcygEiqBQ4FAkCE4ikUgMiiBJSAgSiUQSDMn9L9eSl6bddddug9t7yS/trevre+3r27pcNxZiG+yCfdCVv/9LeQxOwRm4AJegD27ALbgD9+ABPJF+z+BN/h7yDj5k/VOWX6SdmU5+wLWknggxDxaS8u0qiiX4uiz9XamQ3wzDMAzDMAzDMAzDVI/h959V/v7BMAzDMAzDMLlyNTNiMSdewVxbiA44B4/guz1qW58VYlMI0WsJ0W+N6kXw0spvPtdwhtkwnGM6uLaV4Xyzg3v3PM9DPfQ/sOg4xPWjipy31P8LTqbU304c/cLCUmWJLNB2Uz2U1KTeRKNmKHVMfbJC+/0loTZRH/W5cvEvBJPMbREkWt3FD1NcqXZBSpuE2Ad0PBehPtNrPtIEdYP+hiRt/V1jIiE69X4NT/uVZI3PUHE9bm5M7ePGdZWy951v7Nn6j8v1WWKP3mt6ttnsigx6VN7Vc0VomSSGqW2mGNP1muZPl7LfjNUaKNFtDGVf2fvE9O7VlBS5j333c5p/eeoOqcs1R/hIqDWLJ7TTlksirVT1SI7l8k4Yp+g3jafGcrU1RM6l9th80XOpnlN97bDNY4i4s61B0Si/ipa0uHMl6zqEjlFfCZm/TM8KmzQDjmuTAQ=="));
var $764eb544bbe1ccf0$var$FEATURES = [
  "isol",
  "fina",
  "fin2",
  "fin3",
  "medi",
  "med2",
  "init"
];
var $764eb544bbe1ccf0$var$ShapingClasses = {
  Non_Joining: 0,
  Left_Joining: 1,
  Right_Joining: 2,
  Dual_Joining: 3,
  Join_Causing: 3,
  ALAPH: 4,
  "DALATH RISH": 5,
  Transparent: 6
};
var $764eb544bbe1ccf0$var$ISOL = "isol";
var $764eb544bbe1ccf0$var$FINA = "fina";
var $764eb544bbe1ccf0$var$FIN2 = "fin2";
var $764eb544bbe1ccf0$var$FIN3 = "fin3";
var $764eb544bbe1ccf0$var$MEDI = "medi";
var $764eb544bbe1ccf0$var$MED2 = "med2";
var $764eb544bbe1ccf0$var$INIT = "init";
var $764eb544bbe1ccf0$var$NONE = null;
var $764eb544bbe1ccf0$var$STATE_TABLE = [
  //   Non_Joining,        Left_Joining,       Right_Joining,     Dual_Joining,           ALAPH,            DALATH RISH
  // State 0: prev was U,  not willing to join.
  [
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$NONE,
      0
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      2
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      1
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      2
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      1
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      6
    ]
  ],
  // State 1: prev was R or ISOL/ALAPH,  not willing to join.
  [
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$NONE,
      0
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      2
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      1
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      2
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$FIN2,
      5
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      6
    ]
  ],
  // State 2: prev was D/L in ISOL form,  willing to join.
  [
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$NONE,
      0
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      2
    ],
    [
      $764eb544bbe1ccf0$var$INIT,
      $764eb544bbe1ccf0$var$FINA,
      1
    ],
    [
      $764eb544bbe1ccf0$var$INIT,
      $764eb544bbe1ccf0$var$FINA,
      3
    ],
    [
      $764eb544bbe1ccf0$var$INIT,
      $764eb544bbe1ccf0$var$FINA,
      4
    ],
    [
      $764eb544bbe1ccf0$var$INIT,
      $764eb544bbe1ccf0$var$FINA,
      6
    ]
  ],
  // State 3: prev was D in FINA form,  willing to join.
  [
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$NONE,
      0
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      2
    ],
    [
      $764eb544bbe1ccf0$var$MEDI,
      $764eb544bbe1ccf0$var$FINA,
      1
    ],
    [
      $764eb544bbe1ccf0$var$MEDI,
      $764eb544bbe1ccf0$var$FINA,
      3
    ],
    [
      $764eb544bbe1ccf0$var$MEDI,
      $764eb544bbe1ccf0$var$FINA,
      4
    ],
    [
      $764eb544bbe1ccf0$var$MEDI,
      $764eb544bbe1ccf0$var$FINA,
      6
    ]
  ],
  // State 4: prev was FINA ALAPH,  not willing to join.
  [
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$NONE,
      0
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      2
    ],
    [
      $764eb544bbe1ccf0$var$MED2,
      $764eb544bbe1ccf0$var$ISOL,
      1
    ],
    [
      $764eb544bbe1ccf0$var$MED2,
      $764eb544bbe1ccf0$var$ISOL,
      2
    ],
    [
      $764eb544bbe1ccf0$var$MED2,
      $764eb544bbe1ccf0$var$FIN2,
      5
    ],
    [
      $764eb544bbe1ccf0$var$MED2,
      $764eb544bbe1ccf0$var$ISOL,
      6
    ]
  ],
  // State 5: prev was FIN2/FIN3 ALAPH,  not willing to join.
  [
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$NONE,
      0
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      2
    ],
    [
      $764eb544bbe1ccf0$var$ISOL,
      $764eb544bbe1ccf0$var$ISOL,
      1
    ],
    [
      $764eb544bbe1ccf0$var$ISOL,
      $764eb544bbe1ccf0$var$ISOL,
      2
    ],
    [
      $764eb544bbe1ccf0$var$ISOL,
      $764eb544bbe1ccf0$var$FIN2,
      5
    ],
    [
      $764eb544bbe1ccf0$var$ISOL,
      $764eb544bbe1ccf0$var$ISOL,
      6
    ]
  ],
  // State 6: prev was DALATH/RISH,  not willing to join.
  [
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$NONE,
      0
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      2
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      1
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      2
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$FIN3,
      5
    ],
    [
      $764eb544bbe1ccf0$var$NONE,
      $764eb544bbe1ccf0$var$ISOL,
      6
    ]
  ]
];
var $764eb544bbe1ccf0$export$2e2bcd8739ae039 = class extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {
  static planFeatures(plan) {
    plan.add([
      "ccmp",
      "locl"
    ]);
    for (let i5 = 0; i5 < $764eb544bbe1ccf0$var$FEATURES.length; i5++) {
      let feature = $764eb544bbe1ccf0$var$FEATURES[i5];
      plan.addStage(feature, false);
    }
    plan.addStage("mset");
  }
  static assignFeatures(plan, glyphs) {
    super.assignFeatures(plan, glyphs);
    let prev = -1;
    let state = 0;
    let actions = [];
    for (let i5 = 0; i5 < glyphs.length; i5++) {
      let curAction, prevAction;
      var glyph = glyphs[i5];
      let type = $764eb544bbe1ccf0$var$getShapingClass(glyph.codePoints[0]);
      if (type === $764eb544bbe1ccf0$var$ShapingClasses.Transparent) {
        actions[i5] = $764eb544bbe1ccf0$var$NONE;
        continue;
      }
      [prevAction, curAction, state] = $764eb544bbe1ccf0$var$STATE_TABLE[state][type];
      if (prevAction !== $764eb544bbe1ccf0$var$NONE && prev !== -1) actions[prev] = prevAction;
      actions[i5] = curAction;
      prev = i5;
    }
    for (let index2 = 0; index2 < glyphs.length; index2++) {
      let feature;
      var glyph = glyphs[index2];
      if (feature = actions[index2]) glyph.features[feature] = true;
    }
  }
};
function $764eb544bbe1ccf0$var$getShapingClass(codePoint) {
  let res = $764eb544bbe1ccf0$var$trie.get(codePoint);
  if (res) return res - 1;
  let category = (0, $747425b437e121da$export$410364bbb673ddbc)(codePoint);
  if (category === "Mn" || category === "Me" || category === "Cf") return $764eb544bbe1ccf0$var$ShapingClasses.Transparent;
  return $764eb544bbe1ccf0$var$ShapingClasses.Non_Joining;
}
var $85d408632270248b$export$2e2bcd8739ae039 = class {
  reset(options = {}, index2 = 0) {
    this.options = options;
    this.flags = options.flags || {};
    this.markAttachmentType = options.markAttachmentType || 0;
    this.index = index2;
  }
  get cur() {
    return this.glyphs[this.index] || null;
  }
  shouldIgnore(glyph) {
    return this.flags.ignoreMarks && glyph.isMark || this.flags.ignoreBaseGlyphs && glyph.isBase || this.flags.ignoreLigatures && glyph.isLigature || this.markAttachmentType && glyph.isMark && glyph.markAttachmentType !== this.markAttachmentType;
  }
  move(dir) {
    this.index += dir;
    while (0 <= this.index && this.index < this.glyphs.length && this.shouldIgnore(this.glyphs[this.index])) this.index += dir;
    if (0 > this.index || this.index >= this.glyphs.length) return null;
    return this.glyphs[this.index];
  }
  next() {
    return this.move(1);
  }
  prev() {
    return this.move(-1);
  }
  peek(count = 1) {
    let idx = this.index;
    let res = this.increment(count);
    this.index = idx;
    return res;
  }
  peekIndex(count = 1) {
    let idx = this.index;
    this.increment(count);
    let res = this.index;
    this.index = idx;
    return res;
  }
  increment(count = 1) {
    let dir = count < 0 ? -1 : 1;
    count = Math.abs(count);
    while (count--) this.move(dir);
    return this.glyphs[this.index];
  }
  constructor(glyphs, options) {
    this.glyphs = glyphs;
    this.reset(options);
  }
};
var $a83b9c36aaa94fd3$var$DEFAULT_SCRIPTS = [
  "DFLT",
  "dflt",
  "latn"
];
var $a83b9c36aaa94fd3$export$2e2bcd8739ae039 = class {
  findScript(script) {
    if (this.table.scriptList == null) return null;
    if (!Array.isArray(script)) script = [
      script
    ];
    for (let s4 of script) for (let entry of this.table.scriptList) {
      if (entry.tag === s4) return entry;
    }
    return null;
  }
  selectScript(script, language, direction) {
    let changed = false;
    let entry;
    if (!this.script || script !== this.scriptTag) {
      entry = this.findScript(script);
      if (!entry) entry = this.findScript($a83b9c36aaa94fd3$var$DEFAULT_SCRIPTS);
      if (!entry) return this.scriptTag;
      this.scriptTag = entry.tag;
      this.script = entry.script;
      this.language = null;
      this.languageTag = null;
      changed = true;
    }
    if (!direction || direction !== this.direction) this.direction = direction || $130d1a642ebcd2b7$export$9fddb9d0dd7d8a54(script);
    if (language && language.length < 4) language += " ".repeat(4 - language.length);
    if (!language || language !== this.languageTag) {
      this.language = null;
      for (let lang of this.script.langSysRecords) if (lang.tag === language) {
        this.language = lang.langSys;
        this.languageTag = lang.tag;
        break;
      }
      if (!this.language) {
        this.language = this.script.defaultLangSys;
        this.languageTag = null;
      }
      changed = true;
    }
    if (changed) {
      this.features = {};
      if (this.language) for (let featureIndex of this.language.featureIndexes) {
        let record = this.table.featureList[featureIndex];
        let substituteFeature = this.substituteFeatureForVariations(featureIndex);
        this.features[record.tag] = substituteFeature || record.feature;
      }
    }
    return this.scriptTag;
  }
  lookupsForFeatures(userFeatures = [], exclude) {
    let lookups = [];
    for (let tag of userFeatures) {
      let feature = this.features[tag];
      if (!feature) continue;
      for (let lookupIndex of feature.lookupListIndexes) {
        if (exclude && exclude.indexOf(lookupIndex) !== -1) continue;
        lookups.push({
          feature: tag,
          index: lookupIndex,
          lookup: this.table.lookupList.get(lookupIndex)
        });
      }
    }
    lookups.sort((a5, b3) => a5.index - b3.index);
    return lookups;
  }
  substituteFeatureForVariations(featureIndex) {
    if (this.variationsIndex === -1) return null;
    let record = this.table.featureVariations.featureVariationRecords[this.variationsIndex];
    let substitutions = record.featureTableSubstitution.substitutions;
    for (let substitution of substitutions) {
      if (substitution.featureIndex === featureIndex) return substitution.alternateFeatureTable;
    }
    return null;
  }
  findVariationsIndex(coords) {
    let variations = this.table.featureVariations;
    if (!variations) return -1;
    let records = variations.featureVariationRecords;
    for (let i5 = 0; i5 < records.length; i5++) {
      let conditions = records[i5].conditionSet.conditionTable;
      if (this.variationConditionsMatch(conditions, coords)) return i5;
    }
    return -1;
  }
  variationConditionsMatch(conditions, coords) {
    return conditions.every((condition) => {
      let coord = condition.axisIndex < coords.length ? coords[condition.axisIndex] : 0;
      return condition.filterRangeMinValue <= coord && coord <= condition.filterRangeMaxValue;
    });
  }
  applyFeatures(userFeatures, glyphs, advances) {
    let lookups = this.lookupsForFeatures(userFeatures);
    this.applyLookups(lookups, glyphs, advances);
  }
  applyLookups(lookups, glyphs, positions) {
    this.glyphs = glyphs;
    this.positions = positions;
    this.glyphIterator = new (0, $85d408632270248b$export$2e2bcd8739ae039)(glyphs);
    for (let { feature, lookup } of lookups) {
      this.currentFeature = feature;
      this.glyphIterator.reset(lookup.flags);
      while (this.glyphIterator.index < glyphs.length) {
        if (!(feature in this.glyphIterator.cur.features)) {
          this.glyphIterator.next();
          continue;
        }
        for (let table of lookup.subTables) {
          let res = this.applyLookup(lookup.lookupType, table);
          if (res) break;
        }
        this.glyphIterator.next();
      }
    }
  }
  applyLookup(lookup, table) {
    throw new Error("applyLookup must be implemented by subclasses");
  }
  applyLookupList(lookupRecords) {
    let options = this.glyphIterator.options;
    let glyphIndex = this.glyphIterator.index;
    for (let lookupRecord of lookupRecords) {
      this.glyphIterator.reset(options, glyphIndex);
      this.glyphIterator.increment(lookupRecord.sequenceIndex);
      let lookup = this.table.lookupList.get(lookupRecord.lookupListIndex);
      this.glyphIterator.reset(lookup.flags, this.glyphIterator.index);
      for (let table of lookup.subTables) {
        if (this.applyLookup(lookup.lookupType, table)) break;
      }
    }
    this.glyphIterator.reset(options, glyphIndex);
    return true;
  }
  coverageIndex(coverage, glyph) {
    if (glyph == null) glyph = this.glyphIterator.cur.id;
    switch (coverage.version) {
      case 1:
        return coverage.glyphs.indexOf(glyph);
      case 2:
        for (let range2 of coverage.rangeRecords) {
          if (range2.start <= glyph && glyph <= range2.end) return range2.startCoverageIndex + glyph - range2.start;
        }
        break;
    }
    return -1;
  }
  match(sequenceIndex, sequence, fn, matched) {
    let pos = this.glyphIterator.index;
    let glyph = this.glyphIterator.increment(sequenceIndex);
    let idx = 0;
    while (idx < sequence.length && glyph && fn(sequence[idx], glyph)) {
      if (matched) matched.push(this.glyphIterator.index);
      idx++;
      glyph = this.glyphIterator.next();
    }
    this.glyphIterator.index = pos;
    if (idx < sequence.length) return false;
    return matched || true;
  }
  sequenceMatches(sequenceIndex, sequence) {
    return this.match(sequenceIndex, sequence, (component, glyph) => component === glyph.id);
  }
  sequenceMatchIndices(sequenceIndex, sequence) {
    return this.match(sequenceIndex, sequence, (component, glyph) => {
      if (!(this.currentFeature in glyph.features)) return false;
      return component === glyph.id;
    }, []);
  }
  coverageSequenceMatches(sequenceIndex, sequence) {
    return this.match(sequenceIndex, sequence, (coverage, glyph) => this.coverageIndex(coverage, glyph.id) >= 0);
  }
  getClassID(glyph, classDef) {
    switch (classDef.version) {
      case 1:
        let i5 = glyph - classDef.startGlyph;
        if (i5 >= 0 && i5 < classDef.classValueArray.length) return classDef.classValueArray[i5];
        break;
      case 2:
        for (let range2 of classDef.classRangeRecord) {
          if (range2.start <= glyph && glyph <= range2.end) return range2.class;
        }
        break;
    }
    return 0;
  }
  classSequenceMatches(sequenceIndex, sequence, classDef) {
    return this.match(sequenceIndex, sequence, (classID, glyph) => classID === this.getClassID(glyph.id, classDef));
  }
  applyContext(table) {
    let index2, set;
    switch (table.version) {
      case 1:
        index2 = this.coverageIndex(table.coverage);
        if (index2 === -1) return false;
        set = table.ruleSets[index2];
        for (let rule of set) {
          if (this.sequenceMatches(1, rule.input)) return this.applyLookupList(rule.lookupRecords);
        }
        break;
      case 2:
        if (this.coverageIndex(table.coverage) === -1) return false;
        index2 = this.getClassID(this.glyphIterator.cur.id, table.classDef);
        if (index2 === -1) return false;
        set = table.classSet[index2];
        for (let rule of set) {
          if (this.classSequenceMatches(1, rule.classes, table.classDef)) return this.applyLookupList(rule.lookupRecords);
        }
        break;
      case 3:
        if (this.coverageSequenceMatches(0, table.coverages)) return this.applyLookupList(table.lookupRecords);
        break;
    }
    return false;
  }
  applyChainingContext(table) {
    let index2;
    switch (table.version) {
      case 1:
        index2 = this.coverageIndex(table.coverage);
        if (index2 === -1) return false;
        let set = table.chainRuleSets[index2];
        for (let rule of set) {
          if (this.sequenceMatches(-rule.backtrack.length, rule.backtrack) && this.sequenceMatches(1, rule.input) && this.sequenceMatches(1 + rule.input.length, rule.lookahead)) return this.applyLookupList(rule.lookupRecords);
        }
        break;
      case 2:
        if (this.coverageIndex(table.coverage) === -1) return false;
        index2 = this.getClassID(this.glyphIterator.cur.id, table.inputClassDef);
        let rules = table.chainClassSet[index2];
        if (!rules) return false;
        for (let rule of rules) {
          if (this.classSequenceMatches(-rule.backtrack.length, rule.backtrack, table.backtrackClassDef) && this.classSequenceMatches(1, rule.input, table.inputClassDef) && this.classSequenceMatches(1 + rule.input.length, rule.lookahead, table.lookaheadClassDef)) return this.applyLookupList(rule.lookupRecords);
        }
        break;
      case 3:
        if (this.coverageSequenceMatches(-table.backtrackGlyphCount, table.backtrackCoverage) && this.coverageSequenceMatches(0, table.inputCoverage) && this.coverageSequenceMatches(table.inputGlyphCount, table.lookaheadCoverage)) return this.applyLookupList(table.lookupRecords);
        break;
    }
    return false;
  }
  constructor(font, table) {
    this.font = font;
    this.table = table;
    this.script = null;
    this.scriptTag = null;
    this.language = null;
    this.languageTag = null;
    this.features = {};
    this.lookups = {};
    this.variationsIndex = font._variationProcessor ? this.findVariationsIndex(font._variationProcessor.normalizedCoords) : -1;
    this.selectScript();
    this.glyphs = [];
    this.positions = [];
    this.ligatureID = 1;
    this.currentFeature = null;
  }
};
var $10e7b257e1a9a756$export$2e2bcd8739ae039 = class _$10e7b257e1a9a756$export$2e2bcd8739ae039 {
  get id() {
    return this._id;
  }
  set id(id) {
    this._id = id;
    this.substituted = true;
    let GDEF = this._font.GDEF;
    if (GDEF && GDEF.glyphClassDef) {
      let classID = (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039).prototype.getClassID(id, GDEF.glyphClassDef);
      this.isBase = classID === 1;
      this.isLigature = classID === 2;
      this.isMark = classID === 3;
      this.markAttachmentType = GDEF.markAttachClassDef ? (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039).prototype.getClassID(id, GDEF.markAttachClassDef) : 0;
    } else {
      this.isMark = this.codePoints.length > 0 && this.codePoints.every((0, $747425b437e121da$export$e33ad6871e762338));
      this.isBase = !this.isMark;
      this.isLigature = this.codePoints.length > 1;
      this.markAttachmentType = 0;
    }
  }
  copy() {
    return new _$10e7b257e1a9a756$export$2e2bcd8739ae039(this._font, this.id, this.codePoints, this.features);
  }
  constructor(font, id, codePoints = [], features) {
    this._font = font;
    this.codePoints = codePoints;
    this.id = id;
    this.features = {};
    if (Array.isArray(features)) for (let i5 = 0; i5 < features.length; i5++) {
      let feature = features[i5];
      this.features[feature] = true;
    }
    else if (typeof features === "object") Object.assign(this.features, features);
    this.ligatureID = null;
    this.ligatureComponent = null;
    this.isLigated = false;
    this.cursiveAttachment = null;
    this.markAttachment = null;
    this.shaperInfo = null;
    this.substituted = false;
    this.isMultiplied = false;
  }
};
var $e1c6bbc8cb416f8c$export$2e2bcd8739ae039 = class extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {
  static planFeatures(plan) {
    plan.add([
      "ljmo",
      "vjmo",
      "tjmo"
    ], false);
  }
  static assignFeatures(plan, glyphs) {
    let state = 0;
    let i5 = 0;
    while (i5 < glyphs.length) {
      let action;
      let glyph = glyphs[i5];
      let code = glyph.codePoints[0];
      let type = $e1c6bbc8cb416f8c$var$getType(code);
      [action, state] = $e1c6bbc8cb416f8c$var$STATE_TABLE[state][type];
      switch (action) {
        case $e1c6bbc8cb416f8c$var$DECOMPOSE:
          if (!plan.font.hasGlyphForCodePoint(code)) i5 = $e1c6bbc8cb416f8c$var$decompose(glyphs, i5, plan.font);
          break;
        case $e1c6bbc8cb416f8c$var$COMPOSE:
          i5 = $e1c6bbc8cb416f8c$var$compose(glyphs, i5, plan.font);
          break;
        case $e1c6bbc8cb416f8c$var$TONE_MARK:
          $e1c6bbc8cb416f8c$var$reorderToneMark(glyphs, i5, plan.font);
          break;
        case $e1c6bbc8cb416f8c$var$INVALID:
          i5 = $e1c6bbc8cb416f8c$var$insertDottedCircle(glyphs, i5, plan.font);
          break;
      }
      i5++;
    }
  }
};
(0, _define_property)($e1c6bbc8cb416f8c$export$2e2bcd8739ae039, "zeroMarkWidths", "NONE");
var $e1c6bbc8cb416f8c$var$HANGUL_BASE = 44032;
var $e1c6bbc8cb416f8c$var$HANGUL_END = 55204;
var $e1c6bbc8cb416f8c$var$HANGUL_COUNT = $e1c6bbc8cb416f8c$var$HANGUL_END - $e1c6bbc8cb416f8c$var$HANGUL_BASE + 1;
var $e1c6bbc8cb416f8c$var$L_BASE = 4352;
var $e1c6bbc8cb416f8c$var$V_BASE = 4449;
var $e1c6bbc8cb416f8c$var$T_BASE = 4519;
var $e1c6bbc8cb416f8c$var$L_COUNT = 19;
var $e1c6bbc8cb416f8c$var$V_COUNT = 21;
var $e1c6bbc8cb416f8c$var$T_COUNT = 28;
var $e1c6bbc8cb416f8c$var$L_END = $e1c6bbc8cb416f8c$var$L_BASE + $e1c6bbc8cb416f8c$var$L_COUNT - 1;
var $e1c6bbc8cb416f8c$var$V_END = $e1c6bbc8cb416f8c$var$V_BASE + $e1c6bbc8cb416f8c$var$V_COUNT - 1;
var $e1c6bbc8cb416f8c$var$T_END = $e1c6bbc8cb416f8c$var$T_BASE + $e1c6bbc8cb416f8c$var$T_COUNT - 1;
var $e1c6bbc8cb416f8c$var$DOTTED_CIRCLE = 9676;
var $e1c6bbc8cb416f8c$var$isL = (code) => 4352 <= code && code <= 4447 || 43360 <= code && code <= 43388;
var $e1c6bbc8cb416f8c$var$isV = (code) => 4448 <= code && code <= 4519 || 55216 <= code && code <= 55238;
var $e1c6bbc8cb416f8c$var$isT = (code) => 4520 <= code && code <= 4607 || 55243 <= code && code <= 55291;
var $e1c6bbc8cb416f8c$var$isTone = (code) => 12334 <= code && code <= 12335;
var $e1c6bbc8cb416f8c$var$isLVT = (code) => $e1c6bbc8cb416f8c$var$HANGUL_BASE <= code && code <= $e1c6bbc8cb416f8c$var$HANGUL_END;
var $e1c6bbc8cb416f8c$var$isLV = (code) => code - $e1c6bbc8cb416f8c$var$HANGUL_BASE < $e1c6bbc8cb416f8c$var$HANGUL_COUNT && (code - $e1c6bbc8cb416f8c$var$HANGUL_BASE) % $e1c6bbc8cb416f8c$var$T_COUNT === 0;
var $e1c6bbc8cb416f8c$var$isCombiningL = (code) => $e1c6bbc8cb416f8c$var$L_BASE <= code && code <= $e1c6bbc8cb416f8c$var$L_END;
var $e1c6bbc8cb416f8c$var$isCombiningV = (code) => $e1c6bbc8cb416f8c$var$V_BASE <= code && code <= $e1c6bbc8cb416f8c$var$V_END;
var $e1c6bbc8cb416f8c$var$isCombiningT = (code) => $e1c6bbc8cb416f8c$var$T_BASE + 1 && 1 <= code && code <= $e1c6bbc8cb416f8c$var$T_END;
var $e1c6bbc8cb416f8c$var$X = 0;
var $e1c6bbc8cb416f8c$var$L = 1;
var $e1c6bbc8cb416f8c$var$V = 2;
var $e1c6bbc8cb416f8c$var$T = 3;
var $e1c6bbc8cb416f8c$var$LV = 4;
var $e1c6bbc8cb416f8c$var$LVT = 5;
var $e1c6bbc8cb416f8c$var$M = 6;
function $e1c6bbc8cb416f8c$var$getType(code) {
  if ($e1c6bbc8cb416f8c$var$isL(code)) return $e1c6bbc8cb416f8c$var$L;
  if ($e1c6bbc8cb416f8c$var$isV(code)) return $e1c6bbc8cb416f8c$var$V;
  if ($e1c6bbc8cb416f8c$var$isT(code)) return $e1c6bbc8cb416f8c$var$T;
  if ($e1c6bbc8cb416f8c$var$isLV(code)) return $e1c6bbc8cb416f8c$var$LV;
  if ($e1c6bbc8cb416f8c$var$isLVT(code)) return $e1c6bbc8cb416f8c$var$LVT;
  if ($e1c6bbc8cb416f8c$var$isTone(code)) return $e1c6bbc8cb416f8c$var$M;
  return $e1c6bbc8cb416f8c$var$X;
}
var $e1c6bbc8cb416f8c$var$NO_ACTION = 0;
var $e1c6bbc8cb416f8c$var$DECOMPOSE = 1;
var $e1c6bbc8cb416f8c$var$COMPOSE = 2;
var $e1c6bbc8cb416f8c$var$TONE_MARK = 4;
var $e1c6bbc8cb416f8c$var$INVALID = 5;
var $e1c6bbc8cb416f8c$var$STATE_TABLE = [
  //       X                 L                 V                T                  LV                LVT               M
  // State 0: start state
  [
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      0
    ],
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      1
    ],
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      0
    ],
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      0
    ],
    [
      $e1c6bbc8cb416f8c$var$DECOMPOSE,
      2
    ],
    [
      $e1c6bbc8cb416f8c$var$DECOMPOSE,
      3
    ],
    [
      $e1c6bbc8cb416f8c$var$INVALID,
      0
    ]
  ],
  // State 1: <L>
  [
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      0
    ],
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      1
    ],
    [
      $e1c6bbc8cb416f8c$var$COMPOSE,
      2
    ],
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      0
    ],
    [
      $e1c6bbc8cb416f8c$var$DECOMPOSE,
      2
    ],
    [
      $e1c6bbc8cb416f8c$var$DECOMPOSE,
      3
    ],
    [
      $e1c6bbc8cb416f8c$var$INVALID,
      0
    ]
  ],
  // State 2: <L,V> or <LV>
  [
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      0
    ],
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      1
    ],
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      0
    ],
    [
      $e1c6bbc8cb416f8c$var$COMPOSE,
      3
    ],
    [
      $e1c6bbc8cb416f8c$var$DECOMPOSE,
      2
    ],
    [
      $e1c6bbc8cb416f8c$var$DECOMPOSE,
      3
    ],
    [
      $e1c6bbc8cb416f8c$var$TONE_MARK,
      0
    ]
  ],
  // State 3: <L,V,T> or <LVT>
  [
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      0
    ],
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      1
    ],
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      0
    ],
    [
      $e1c6bbc8cb416f8c$var$NO_ACTION,
      0
    ],
    [
      $e1c6bbc8cb416f8c$var$DECOMPOSE,
      2
    ],
    [
      $e1c6bbc8cb416f8c$var$DECOMPOSE,
      3
    ],
    [
      $e1c6bbc8cb416f8c$var$TONE_MARK,
      0
    ]
  ]
];
function $e1c6bbc8cb416f8c$var$getGlyph(font, code, features) {
  return new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, font.glyphForCodePoint(code).id, [
    code
  ], features);
}
function $e1c6bbc8cb416f8c$var$decompose(glyphs, i5, font) {
  let glyph = glyphs[i5];
  let code = glyph.codePoints[0];
  let s4 = code - $e1c6bbc8cb416f8c$var$HANGUL_BASE;
  let t4 = $e1c6bbc8cb416f8c$var$T_BASE + s4 % $e1c6bbc8cb416f8c$var$T_COUNT;
  s4 = s4 / $e1c6bbc8cb416f8c$var$T_COUNT | 0;
  let l4 = $e1c6bbc8cb416f8c$var$L_BASE + s4 / $e1c6bbc8cb416f8c$var$V_COUNT | 0;
  let v3 = $e1c6bbc8cb416f8c$var$V_BASE + s4 % $e1c6bbc8cb416f8c$var$V_COUNT;
  if (!font.hasGlyphForCodePoint(l4) || !font.hasGlyphForCodePoint(v3) || t4 !== $e1c6bbc8cb416f8c$var$T_BASE && !font.hasGlyphForCodePoint(t4)) return i5;
  let ljmo = $e1c6bbc8cb416f8c$var$getGlyph(font, l4, glyph.features);
  ljmo.features.ljmo = true;
  let vjmo = $e1c6bbc8cb416f8c$var$getGlyph(font, v3, glyph.features);
  vjmo.features.vjmo = true;
  let insert2 = [
    ljmo,
    vjmo
  ];
  if (t4 > $e1c6bbc8cb416f8c$var$T_BASE) {
    let tjmo = $e1c6bbc8cb416f8c$var$getGlyph(font, t4, glyph.features);
    tjmo.features.tjmo = true;
    insert2.push(tjmo);
  }
  glyphs.splice(i5, 1, ...insert2);
  return i5 + insert2.length - 1;
}
function $e1c6bbc8cb416f8c$var$compose(glyphs, i5, font) {
  let glyph = glyphs[i5];
  let code = glyphs[i5].codePoints[0];
  let type = $e1c6bbc8cb416f8c$var$getType(code);
  let prev = glyphs[i5 - 1].codePoints[0];
  let prevType = $e1c6bbc8cb416f8c$var$getType(prev);
  let lv, ljmo, vjmo, tjmo;
  if (prevType === $e1c6bbc8cb416f8c$var$LV && type === $e1c6bbc8cb416f8c$var$T) {
    lv = prev;
    tjmo = glyph;
  } else {
    if (type === $e1c6bbc8cb416f8c$var$V) {
      ljmo = glyphs[i5 - 1];
      vjmo = glyph;
    } else {
      ljmo = glyphs[i5 - 2];
      vjmo = glyphs[i5 - 1];
      tjmo = glyph;
    }
    let l4 = ljmo.codePoints[0];
    let v3 = vjmo.codePoints[0];
    if ($e1c6bbc8cb416f8c$var$isCombiningL(l4) && $e1c6bbc8cb416f8c$var$isCombiningV(v3)) lv = $e1c6bbc8cb416f8c$var$HANGUL_BASE + ((l4 - $e1c6bbc8cb416f8c$var$L_BASE) * $e1c6bbc8cb416f8c$var$V_COUNT + (v3 - $e1c6bbc8cb416f8c$var$V_BASE)) * $e1c6bbc8cb416f8c$var$T_COUNT;
  }
  let t4 = tjmo && tjmo.codePoints[0] || $e1c6bbc8cb416f8c$var$T_BASE;
  if (lv != null && (t4 === $e1c6bbc8cb416f8c$var$T_BASE || $e1c6bbc8cb416f8c$var$isCombiningT(t4))) {
    let s4 = lv + (t4 - $e1c6bbc8cb416f8c$var$T_BASE);
    if (font.hasGlyphForCodePoint(s4)) {
      let del = prevType === $e1c6bbc8cb416f8c$var$V ? 3 : 2;
      glyphs.splice(i5 - del + 1, del, $e1c6bbc8cb416f8c$var$getGlyph(font, s4, glyph.features));
      return i5 - del + 1;
    }
  }
  if (ljmo) ljmo.features.ljmo = true;
  if (vjmo) vjmo.features.vjmo = true;
  if (tjmo) tjmo.features.tjmo = true;
  if (prevType === $e1c6bbc8cb416f8c$var$LV) {
    $e1c6bbc8cb416f8c$var$decompose(glyphs, i5 - 1, font);
    return i5 + 1;
  }
  return i5;
}
function $e1c6bbc8cb416f8c$var$getLength(code) {
  switch ($e1c6bbc8cb416f8c$var$getType(code)) {
    case $e1c6bbc8cb416f8c$var$LV:
    case $e1c6bbc8cb416f8c$var$LVT:
      return 1;
    case $e1c6bbc8cb416f8c$var$V:
      return 2;
    case $e1c6bbc8cb416f8c$var$T:
      return 3;
  }
}
function $e1c6bbc8cb416f8c$var$reorderToneMark(glyphs, i5, font) {
  let glyph = glyphs[i5];
  let code = glyphs[i5].codePoints[0];
  if (font.glyphForCodePoint(code).advanceWidth === 0) return;
  let prev = glyphs[i5 - 1].codePoints[0];
  let len = $e1c6bbc8cb416f8c$var$getLength(prev);
  glyphs.splice(i5, 1);
  return glyphs.splice(i5 - len, 0, glyph);
}
function $e1c6bbc8cb416f8c$var$insertDottedCircle(glyphs, i5, font) {
  let glyph = glyphs[i5];
  let code = glyphs[i5].codePoints[0];
  if (font.hasGlyphForCodePoint($e1c6bbc8cb416f8c$var$DOTTED_CIRCLE)) {
    let dottedCircle = $e1c6bbc8cb416f8c$var$getGlyph(font, $e1c6bbc8cb416f8c$var$DOTTED_CIRCLE, glyph.features);
    let idx = font.glyphForCodePoint(code).advanceWidth === 0 ? i5 : i5 + 1;
    glyphs.splice(idx, 0, dottedCircle);
    i5++;
  }
  return i5;
}
var $4b0735ca6c692ea5$exports = {};
$4b0735ca6c692ea5$exports = JSON.parse('{"stateTable":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,14,15,16,17],[0,0,0,18,19,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,28,29,30,31,32,33,0,34,0,0,35,36,0,0,37,0],[0,0,0,38,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,39,0,0,0,40,41,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,12,43,0,0,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,0,43,0,0,0,0],[0,0,0,45,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,50,0,0,51,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,0],[0,0,0,53,54,55,56,57,58,0,59,0,0,60,61,0,0,62,0],[0,0,0,4,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,63,64,0,0,40,41,0,9,0,10,0,0,0,42,0,63,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,0,2,16,0],[0,0,0,18,65,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,0,0],[0,0,0,69,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,73,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,75,0,0,0,76,77,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,25,79,0,0,0,0],[0,0,0,18,19,20,74,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,81,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,86,0,0,87,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,88,0,0,0,0,0,0,0,0],[0,0,0,18,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,89,90,0,0,76,77,0,23,0,24,0,0,0,78,0,89,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,0,0],[0,0,0,94,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,96,0,0,0,97,98,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,35,100,0,0,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,102,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,107,0,0,108,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,0],[0,0,0,28,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,110,111,0,0,97,98,0,33,0,34,0,0,0,99,0,110,0,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,0,0],[0,0,0,0,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,0,0,115,116,117,118,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,39,0,122,0,123,123,8,9,0,10,0,0,0,42,0,39,0,0],[0,124,64,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,0],[0,39,0,0,0,121,125,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,126,126,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,47,47,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,128,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,129,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,50,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,134,0,0,0,0,0,0,0,0],[0,0,0,135,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,136,0,0,0,137,138,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,60,140,0,0,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,0,140,0,0,0,0],[0,0,0,142,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,147,0,0,148,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0],[0,0,0,53,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,150,151,0,0,137,138,0,58,0,59,0,0,0,139,0,150,0,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,0,0],[0,0,0,155,116,156,157,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,75,3,4,5,159,160,8,161,0,162,0,11,12,163,0,75,16,0],[0,0,0,0,0,40,164,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,0,165,0,0,0,0],[0,124,64,0,0,40,164,0,9,0,10,0,0,0,42,0,124,0,0],[0,0,0,0,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,71,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,167,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,168,0,0,0,0,0,0,0,0],[0,0,0,0,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,0,79,0,0,0,0],[0,0,0,169,170,171,172,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,75,0,176,0,177,177,22,23,0,24,0,0,0,78,0,75,0,0],[0,178,90,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,0],[0,75,0,0,0,175,179,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,180,180,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,83,83,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,182,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,183,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,86,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,188,0,0,0,0,0,0,0,0],[0,0,0,189,170,190,191,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,76,193,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,0,194,0,0,0,0],[0,178,90,0,0,76,193,0,23,0,24,0,0,0,78,0,178,0,0],[0,0,0,0,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,195,196,197,198,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,96,0,202,0,203,203,32,33,0,34,0,0,0,99,0,96,0,0],[0,204,111,0,0,0,0,0,0,0,0,0,0,0,0,0,204,0,0],[0,96,0,0,0,201,205,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,206,206,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,104,104,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,208,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,209,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,107,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,0,0,0],[0,0,0,215,196,216,217,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,97,219,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,0,220,0,0,0,0],[0,204,111,0,0,97,219,0,33,0,34,0,0,0,99,0,204,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,223,0,0,0,40,224,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,119,225,0,0,0,0],[0,0,0,115,116,117,222,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,115,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,226,64,0,0,40,224,0,9,0,10,0,0,0,42,0,226,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,39,0,0,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,44,44,8,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,227,0,228,229,0,9,0,10,0,0,230,0,0,0,0,0],[0,39,0,122,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,231,231,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,232,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,131,131,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,234,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,235,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,0,0,240,241,242,243,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,136,0,247,0,248,248,57,58,0,59,0,0,0,139,0,136,0,0],[0,249,151,0,0,0,0,0,0,0,0,0,0,0,0,0,249,0,0],[0,136,0,0,0,246,250,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,251,251,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,144,144,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,253,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,254,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,147,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0],[0,0,0,260,241,261,262,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,137,264,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,0,265,0,0,0,0],[0,249,151,0,0,137,264,0,58,0,59,0,0,0,139,0,249,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,158,225,0,0,0,0],[0,0,0,155,116,156,222,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,155,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,43,266,266,8,161,0,24,0,0,12,267,0,0,0,0],[0,75,0,176,43,268,268,269,161,0,24,0,0,0,267,0,75,0,0],[0,0,0,0,0,270,0,0,271,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,272,0,0,0,0,0,0,0,0],[0,273,274,0,0,40,41,0,9,0,10,0,0,0,42,0,273,0,0],[0,0,0,40,0,123,123,8,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,121,275,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,276,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,279,0,0,0,76,280,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,173,281,0,0,0,0],[0,0,0,169,170,171,278,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,169,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,282,90,0,0,76,280,0,23,0,24,0,0,0,78,0,282,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,75,0,0,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,80,80,22,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,283,0,284,285,0,23,0,24,0,0,286,0,0,0,0,0],[0,75,0,176,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,287,287,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,288,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,185,185,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,290,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,291,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,192,281,0,0,0,0],[0,0,0,189,170,190,278,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,189,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,76,0,177,177,22,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,175,296,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,299,0,0,0,97,300,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,199,301,0,0,0,0],[0,0,0,195,196,197,298,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,195,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,302,111,0,0,97,300,0,33,0,34,0,0,0,99,0,302,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,96,0,0,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,101,101,32,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,303,0,304,305,0,33,0,34,0,0,306,0,0,0,0,0],[0,96,0,202,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,307,307,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,211,211,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,310,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,311,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,218,301,0,0,0,0],[0,0,0,215,196,216,298,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,215,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,97,0,203,203,32,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,201,316,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,0,225,0,0,0,0],[0,0,0,317,318,319,320,8,9,0,10,0,0,321,322,0,0,16,0],[0,223,0,323,0,123,123,8,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,0,0,121,324,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,325,318,326,327,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,64,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,230,0,0,0,0,0],[0,0,0,227,0,228,121,0,9,0,10,0,0,230,0,0,0,0,0],[0,0,0,227,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0],[0,0,0,0,0,329,329,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,330,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,237,237,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,332,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,333,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,337,0,0,0,137,338,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,244,339,0,0,0,0],[0,0,0,240,241,242,336,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,240,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,340,151,0,0,137,338,0,58,0,59,0,0,0,139,0,340,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,136,0,0,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,141,141,57,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,341,0,342,343,0,58,0,59,0,0,344,0,0,0,0,0],[0,136,0,247,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,345,345,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,346,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,256,256,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,348,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,349,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,263,339,0,0,0,0],[0,0,0,260,241,261,336,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,260,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,137,0,248,248,57,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,246,354,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,126,126,8,23,0,0,0,0,0,0,0,0,0,0],[0,355,90,0,0,121,125,0,9,0,10,0,0,0,42,0,355,0,0],[0,0,0,0,0,356,356,269,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,357,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,270,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0],[0,0,0,364,116,365,366,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,40,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,0,281,0,0,0,0],[0,0,0,369,370,371,372,22,23,0,24,0,0,373,374,0,0,27,0],[0,279,0,375,0,177,177,22,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,0,0,175,376,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,377,370,378,379,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,90,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,286,0,0,0,0,0],[0,0,0,283,0,284,175,0,23,0,24,0,0,286,0,0,0,0,0],[0,0,0,283,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,0,0],[0,0,0,0,0,381,381,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,293,293,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,384,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,385,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,76,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,0,301,0,0,0,0],[0,0,0,387,388,389,390,32,33,0,34,0,0,391,392,0,0,37,0],[0,299,0,393,0,203,203,32,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,0,0,201,394,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,395,388,396,397,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,111,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,306,0,0,0,0,0],[0,0,0,303,0,304,201,0,33,0,34,0,0,306,0,0,0,0,0],[0,0,0,303,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,0,0],[0,0,0,0,0,399,399,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,313,313,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,402,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,403,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,97,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,407,0,0,0,40,408,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,321,409,0,0,0,0],[0,0,0,317,318,319,406,8,9,0,10,0,0,321,322,0,0,16,0],[0,0,0,317,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,410,64,0,0,40,408,0,9,0,10,0,0,0,42,0,410,0,0],[0,223,0,0,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,323,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,328,409,0,0,0,0],[0,0,0,325,318,326,406,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,325,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,0,0,0,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130,0,0],[0,0,0,0,0,411,411,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,412,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,413,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,0,339,0,0,0,0],[0,0,0,414,415,416,417,57,58,0,59,0,0,418,419,0,0,62,0],[0,337,0,420,0,248,248,57,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,0,0,246,421,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,422,415,423,424,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,151,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,344,0,0,0,0,0],[0,0,0,341,0,342,246,0,58,0,59,0,0,344,0,0,0,0,0],[0,0,0,341,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0],[0,0,0,0,0,426,426,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,427,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,351,351,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,429,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,430,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,137,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,432,116,433,434,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,0,0,180,180,269,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,359,359,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,437,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,438,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,443,274,0,0,0,0,0,0,0,0,0,0,0,0,0,443,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,367,225,0,0,0,0],[0,0,0,364,116,365,445,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,364,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,448,0,0,0,76,449,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,373,450,0,0,0,0],[0,0,0,369,370,371,447,22,23,0,24,0,0,373,374,0,0,27,0],[0,0,0,369,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,451,90,0,0,76,449,0,23,0,24,0,0,0,78,0,451,0,0],[0,279,0,0,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,375,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,380,450,0,0,0,0],[0,0,0,377,370,378,447,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,377,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,0,0,0,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0],[0,0,0,0,0,452,452,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,453,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,454,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,457,0,0,0,97,458,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,391,459,0,0,0,0],[0,0,0,387,388,389,456,32,33,0,34,0,0,391,392,0,0,37,0],[0,0,0,387,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,460,111,0,0,97,458,0,33,0,34,0,0,0,99,0,460,0,0],[0,299,0,0,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,393,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,398,459,0,0,0,0],[0,0,0,395,388,396,456,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,395,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,0,0,0,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,0,0],[0,0,0,0,0,461,461,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,463,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,0,409,0,0,0,0],[0,0,0,464,465,466,467,8,9,0,10,0,0,468,469,0,0,16,0],[0,407,0,470,0,123,123,8,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,0,0,121,471,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,472,465,473,474,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,0,0,0,0,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,0,0],[0,0,0,0,0,0,476,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,479,0,0,0,137,480,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,418,481,0,0,0,0],[0,0,0,414,415,416,478,57,58,0,59,0,0,418,419,0,0,62,0],[0,0,0,414,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,482,151,0,0,137,480,0,58,0,59,0,0,0,139,0,482,0,0],[0,337,0,0,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,420,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,425,481,0,0,0,0],[0,0,0,422,415,423,478,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,422,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0],[0,0,0,0,0,483,483,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,485,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,435,225,0,0,0,0],[0,0,0,432,116,433,445,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,432,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,486,486,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,487,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,440,440,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,489,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,490,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,495,0,496,497,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,0,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,0,225,0,0,0,0],[0,0,0,0,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,0,450,0,0,0,0],[0,0,0,499,500,501,502,22,23,0,24,0,0,503,504,0,0,27,0],[0,448,0,505,0,177,177,22,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,0,0,175,506,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,507,500,508,509,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,0,0,0,0,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,292,0,0],[0,0,0,0,0,0,511,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,0,459,0,0,0,0],[0,0,0,512,513,514,515,32,33,0,34,0,0,516,517,0,0,37,0],[0,457,0,518,0,203,203,32,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,0,0,201,519,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,520,513,521,522,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,0,0,0,0,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,312,0,0],[0,0,0,0,0,0,524,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,527,0,0,0,40,528,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,468,529,0,0,0,0],[0,0,0,464,465,466,526,8,9,0,10,0,0,468,469,0,0,16,0],[0,0,0,464,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,530,64,0,0,40,528,0,9,0,10,0,0,0,42,0,530,0,0],[0,407,0,0,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,470,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,475,529,0,0,0,0],[0,0,0,472,465,473,526,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,472,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0],[0,0,0,0,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,0,481,0,0,0,0],[0,0,0,531,532,533,534,57,58,0,59,0,0,535,536,0,0,62,0],[0,479,0,537,0,248,248,57,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,0,0,246,538,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,539,532,540,541,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,0,0,0,0,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0],[0,0,0,0,0,0,543,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,358,0,0],[0,0,0,0,0,544,544,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,545,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,492,492,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,547,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,548,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,274,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,498,0,0,0,0,0],[0,0,0,495,0,496,368,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,495,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,553,0,0,0,76,554,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,503,555,0,0,0,0],[0,0,0,499,500,501,552,22,23,0,24,0,0,503,504,0,0,27,0],[0,0,0,499,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,556,90,0,0,76,554,0,23,0,24,0,0,0,78,0,556,0,0],[0,448,0,0,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,505,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,510,555,0,0,0,0],[0,0,0,507,500,508,552,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,507,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,559,0,0,0,97,560,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,516,561,0,0,0,0],[0,0,0,512,513,514,558,32,33,0,34,0,0,516,517,0,0,37,0],[0,0,0,512,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,562,111,0,0,97,560,0,33,0,34,0,0,0,99,0,562,0,0],[0,457,0,0,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,518,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,523,561,0,0,0,0],[0,0,0,520,513,521,558,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,520,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0],[0,0,0,0,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,0,529,0,0,0,0],[0,0,0,563,66,564,565,8,9,0,10,0,0,566,68,0,0,16,0],[0,527,0,567,0,123,123,8,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,0,0,121,568,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,569,66,570,571,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,575,0,0,0,137,576,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,535,577,0,0,0,0],[0,0,0,531,532,533,574,57,58,0,59,0,0,535,536,0,0,62,0],[0,0,0,531,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,578,151,0,0,137,576,0,58,0,59,0,0,0,139,0,578,0,0],[0,479,0,0,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,537,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,542,577,0,0,0,0],[0,0,0,539,532,540,574,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,539,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,0,0],[0,0,0,0,0,0,0,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,439,0,0],[0,0,0,0,0,579,579,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,580,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,581,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,0,555,0,0,0,0],[0,0,0,582,91,583,584,22,23,0,24,0,0,585,93,0,0,27,0],[0,553,0,586,0,177,177,22,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,0,0,175,587,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,588,91,589,590,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,0,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,0,561,0,0,0,0],[0,0,0,592,112,593,594,32,33,0,34,0,0,595,114,0,0,37,0],[0,559,0,596,0,203,203,32,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,0,0,201,597,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,598,112,599,600,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,566,165,0,0,0,0],[0,0,0,563,66,564,67,8,9,0,10,0,0,566,68,0,0,16,0],[0,0,0,563,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,527,0,0,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,567,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,572,165,0,0,0,0],[0,0,0,569,66,570,67,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,569,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,0,577,0,0,0,0],[0,0,0,603,152,604,605,57,58,0,59,0,0,606,154,0,0,62,0],[0,575,0,607,0,248,248,57,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,0,0,246,608,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,609,152,610,611,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,0,0,0,0,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,491,0,0],[0,0,0,0,0,0,613,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,585,194,0,0,0,0],[0,0,0,582,91,583,92,22,23,0,24,0,0,585,93,0,0,27,0],[0,0,0,582,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,553,0,0,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,586,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,591,194,0,0,0,0],[0,0,0,588,91,589,92,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,588,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,595,220,0,0,0,0],[0,0,0,592,112,593,113,32,33,0,34,0,0,595,114,0,0,37,0],[0,0,0,592,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,559,0,0,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,596,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,601,220,0,0,0,0],[0,0,0,598,112,599,113,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,598,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,606,265,0,0,0,0],[0,0,0,603,152,604,153,57,58,0,59,0,0,606,154,0,0,62,0],[0,0,0,603,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,575,0,0,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,607,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,612,265,0,0,0,0],[0,0,0,609,152,610,153,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,609,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,549,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0]],"accepting":[false,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,false,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,false,false,true,false,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,false,false,true,true,false,false,true,true,true,false,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,false,false,false,false,false,false,false,true,true,false,false,true,true,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,false,true,true,false,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,false,true,true,true,true,true,false,true,true,false,true,true,true],"tags":[[],["broken_cluster"],["consonant_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["consonant_syllable"],["broken_cluster"],["symbol_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["broken_cluster"],["broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],[],["broken_cluster"],["symbol_cluster"],[],["symbol_cluster"],["symbol_cluster"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["symbol_cluster"],["symbol_cluster"],["symbol_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],["symbol_cluster"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],[],["broken_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],[],["consonant_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],[],["vowel_syllable"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],[],[],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],["standalone_cluster"],[],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],[],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],[],[],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],[],[],[],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],["consonant_syllable"],["vowel_syllable"],["standalone_cluster"]]}');
var $aa333a9607471296$exports = {};
$aa333a9607471296$exports = JSON.parse('{"categories":["O","IND","S","GB","B","FM","CGJ","VMAbv","VMPst","VAbv","VPst","CMBlw","VPre","VBlw","H","VMBlw","CMAbv","MBlw","CS","R","SUB","MPst","MPre","FAbv","FPst","FBlw","null","SMAbv","SMBlw","VMPre","ZWNJ","ZWJ","WJ","M","VS","N","HN","MAbv"],"decompositions":{"2507":[2503,2494],"2508":[2503,2519],"2888":[2887,2902],"2891":[2887,2878],"2892":[2887,2903],"3018":[3014,3006],"3019":[3015,3006],"3020":[3014,3031],"3144":[3142,3158],"3264":[3263,3285],"3271":[3270,3285],"3272":[3270,3286],"3274":[3270,3266],"3275":[3270,3266,3285],"3402":[3398,3390],"3403":[3399,3390],"3404":[3398,3415],"3546":[3545,3530],"3548":[3545,3535],"3549":[3545,3535,3530],"3550":[3545,3551],"3635":[3661,3634],"3763":[3789,3762],"3955":[3953,3954],"3957":[3953,3956],"3958":[4018,3968],"3959":[4018,3953,3968],"3960":[4019,3968],"3961":[4019,3953,3968],"3969":[3953,3968],"6971":[6970,6965],"6973":[6972,6965],"6976":[6974,6965],"6977":[6975,6965],"6979":[6978,6965],"69934":[69937,69927],"69935":[69938,69927],"70475":[70471,70462],"70476":[70471,70487],"70843":[70841,70842],"70844":[70841,70832],"70846":[70841,70845],"71098":[71096,71087],"71099":[71097,71087]},"stateTable":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,2,3,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,17,18,11,19,20,21,22,0,0,0,23,0,0,2,0,0,24,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,27,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,39,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,49,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,53,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0]],"accepting":[false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],"tags":[[],["broken_cluster"],["independent_cluster"],["symbol_cluster"],["standard_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["numeral_cluster"],["broken_cluster"],["independent_cluster"],["symbol_cluster"],["symbol_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["virama_terminated_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["broken_cluster"],["broken_cluster"],["numeral_cluster"],["number_joiner_terminated_cluster"],["standard_cluster"],["standard_cluster"],["numeral_cluster"]]}');
var $90a9d3398ee54fe5$export$a513ea61a7bee91c = {
  X: 1,
  C: 2,
  V: 4,
  N: 8,
  H: 16,
  ZWNJ: 32,
  ZWJ: 64,
  M: 128,
  SM: 256,
  VD: 512,
  A: 1024,
  Placeholder: 2048,
  Dotted_Circle: 4096,
  RS: 8192,
  Coeng: 16384,
  Repha: 32768,
  Ra: 65536,
  CM: 131072,
  Symbol: 262144
  // Avagraha, etc that take marks (SM,A,VD).
};
var $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0 = {
  Start: 1,
  Ra_To_Become_Reph: 2,
  Pre_M: 4,
  Pre_C: 8,
  Base_C: 16,
  After_Main: 32,
  Above_C: 64,
  Before_Sub: 128,
  Below_C: 256,
  After_Sub: 512,
  Before_Post: 1024,
  Post_C: 2048,
  After_Post: 4096,
  Final_C: 8192,
  SMVD: 16384,
  End: 32768
};
var $90a9d3398ee54fe5$export$8519deaa7de2b07 = $90a9d3398ee54fe5$export$a513ea61a7bee91c.C | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Ra | $90a9d3398ee54fe5$export$a513ea61a7bee91c.CM | $90a9d3398ee54fe5$export$a513ea61a7bee91c.V | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Placeholder | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Dotted_Circle;
var $90a9d3398ee54fe5$export$bbcd928767338e0d = $90a9d3398ee54fe5$export$a513ea61a7bee91c.ZWJ | $90a9d3398ee54fe5$export$a513ea61a7bee91c.ZWNJ;
var $90a9d3398ee54fe5$export$ca9599b2a300afc = $90a9d3398ee54fe5$export$a513ea61a7bee91c.H | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Coeng;
var $90a9d3398ee54fe5$export$e99d119da76a0fc5 = {
  Default: {
    hasOldSpec: false,
    virama: 0,
    basePos: "Last",
    rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Post,
    rephMode: "Implicit",
    blwfMode: "Pre_And_Post"
  },
  Devanagari: {
    hasOldSpec: true,
    virama: 2381,
    basePos: "Last",
    rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Post,
    rephMode: "Implicit",
    blwfMode: "Pre_And_Post"
  },
  Bengali: {
    hasOldSpec: true,
    virama: 2509,
    basePos: "Last",
    rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Sub,
    rephMode: "Implicit",
    blwfMode: "Pre_And_Post"
  },
  Gurmukhi: {
    hasOldSpec: true,
    virama: 2637,
    basePos: "Last",
    rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Sub,
    rephMode: "Implicit",
    blwfMode: "Pre_And_Post"
  },
  Gujarati: {
    hasOldSpec: true,
    virama: 2765,
    basePos: "Last",
    rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Post,
    rephMode: "Implicit",
    blwfMode: "Pre_And_Post"
  },
  Oriya: {
    hasOldSpec: true,
    virama: 2893,
    basePos: "Last",
    rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Main,
    rephMode: "Implicit",
    blwfMode: "Pre_And_Post"
  },
  Tamil: {
    hasOldSpec: true,
    virama: 3021,
    basePos: "Last",
    rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Post,
    rephMode: "Implicit",
    blwfMode: "Pre_And_Post"
  },
  Telugu: {
    hasOldSpec: true,
    virama: 3149,
    basePos: "Last",
    rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Post,
    rephMode: "Explicit",
    blwfMode: "Post_Only"
  },
  Kannada: {
    hasOldSpec: true,
    virama: 3277,
    basePos: "Last",
    rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Post,
    rephMode: "Implicit",
    blwfMode: "Post_Only"
  },
  Malayalam: {
    hasOldSpec: true,
    virama: 3405,
    basePos: "Last",
    rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Main,
    rephMode: "Log_Repha",
    blwfMode: "Pre_And_Post"
  },
  // Handled by UniversalShaper
  // Sinhala: {
  //   hasOldSpec: false,
  //   virama: 0x0DCA,
  //   basePos: 'Last_Sinhala',
  //   rephPos: POSITIONS.After_Main,
  //   rephMode: 'Explicit',
  //   blwfMode: 'Pre_And_Post'
  // },
  Khmer: {
    hasOldSpec: false,
    virama: 6098,
    basePos: "First",
    rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Ra_To_Become_Reph,
    rephMode: "Vis_Repha",
    blwfMode: "Pre_And_Post"
  }
};
var $90a9d3398ee54fe5$export$f647c9cfdd77d95a = {
  // Khmer
  6078: [
    6081,
    6078
  ],
  6079: [
    6081,
    6079
  ],
  6080: [
    6081,
    6080
  ],
  6084: [
    6081,
    6084
  ],
  6085: [
    6081,
    6085
  ]
};
var { decompositions: $7826f90f6f0cecc9$var$decompositions } = (0, /* @__PURE__ */ $parcel$interopDefault2($aa333a9607471296$exports));
var $7826f90f6f0cecc9$var$trie = new (0, import_unicode_trie2.default)((0, $12727730ddfc8bfe$export$94fdf11bafc8de6b)("[encoded data, 5280 characters]"));
var $7826f90f6f0cecc9$var$stateMachine = new (0, import_dfa.default)((0, /* @__PURE__ */ $parcel$interopDefault2($4b0735ca6c692ea5$exports)));
var $7826f90f6f0cecc9$export$2e2bcd8739ae039 = class extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {
  static planFeatures(plan) {
    plan.addStage($7826f90f6f0cecc9$var$setupSyllables);
    plan.addStage([
      "locl",
      "ccmp"
    ]);
    plan.addStage($7826f90f6f0cecc9$var$initialReordering);
    plan.addStage("nukt");
    plan.addStage("akhn");
    plan.addStage("rphf", false);
    plan.addStage("rkrf");
    plan.addStage("pref", false);
    plan.addStage("blwf", false);
    plan.addStage("abvf", false);
    plan.addStage("half", false);
    plan.addStage("pstf", false);
    plan.addStage("vatu");
    plan.addStage("cjct");
    plan.addStage("cfar", false);
    plan.addStage($7826f90f6f0cecc9$var$finalReordering);
    plan.addStage({
      local: [
        "init"
      ],
      global: [
        "pres",
        "abvs",
        "blws",
        "psts",
        "haln",
        "dist",
        "abvm",
        "blwm",
        "calt",
        "clig"
      ]
    });
    plan.unicodeScript = $130d1a642ebcd2b7$export$ce50e82f12a827a4(plan.script);
    plan.indicConfig = (0, $90a9d3398ee54fe5$export$e99d119da76a0fc5)[plan.unicodeScript] || (0, $90a9d3398ee54fe5$export$e99d119da76a0fc5).Default;
    plan.isOldSpec = plan.indicConfig.hasOldSpec && plan.script[plan.script.length - 1] !== "2";
  }
  static assignFeatures(plan, glyphs) {
    for (let i5 = glyphs.length - 1; i5 >= 0; i5--) {
      let codepoint = glyphs[i5].codePoints[0];
      let d3 = (0, $90a9d3398ee54fe5$export$f647c9cfdd77d95a)[codepoint] || $7826f90f6f0cecc9$var$decompositions[codepoint];
      if (d3) {
        let decomposed = d3.map((c6) => {
          let g3 = plan.font.glyphForCodePoint(c6);
          return new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(plan.font, g3.id, [
            c6
          ], glyphs[i5].features);
        });
        glyphs.splice(i5, 1, ...decomposed);
      }
    }
  }
};
(0, _define_property)($7826f90f6f0cecc9$export$2e2bcd8739ae039, "zeroMarkWidths", "NONE");
function $7826f90f6f0cecc9$var$indicCategory(glyph) {
  return $7826f90f6f0cecc9$var$trie.get(glyph.codePoints[0]) >> 8;
}
function $7826f90f6f0cecc9$var$indicPosition(glyph) {
  return 1 << ($7826f90f6f0cecc9$var$trie.get(glyph.codePoints[0]) & 255);
}
var $7826f90f6f0cecc9$var$IndicInfo = class {
  constructor(category, position, syllableType, syllable) {
    this.category = category;
    this.position = position;
    this.syllableType = syllableType;
    this.syllable = syllable;
  }
};
function $7826f90f6f0cecc9$var$setupSyllables(font, glyphs) {
  let syllable = 0;
  let last2 = 0;
  for (let [start2, end2, tags2] of $7826f90f6f0cecc9$var$stateMachine.match(glyphs.map($7826f90f6f0cecc9$var$indicCategory))) {
    if (start2 > last2) {
      ++syllable;
      for (let i5 = last2; i5 < start2; i5++) glyphs[i5].shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).X, (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).End, "non_indic_cluster", syllable);
    }
    ++syllable;
    for (let i5 = start2; i5 <= end2; i5++) glyphs[i5].shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo(1 << $7826f90f6f0cecc9$var$indicCategory(glyphs[i5]), $7826f90f6f0cecc9$var$indicPosition(glyphs[i5]), tags2[0], syllable);
    last2 = end2 + 1;
  }
  if (last2 < glyphs.length) {
    ++syllable;
    for (let i5 = last2; i5 < glyphs.length; i5++) glyphs[i5].shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).X, (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).End, "non_indic_cluster", syllable);
  }
}
function $7826f90f6f0cecc9$var$isConsonant(glyph) {
  return glyph.shaperInfo.category & (0, $90a9d3398ee54fe5$export$8519deaa7de2b07);
}
function $7826f90f6f0cecc9$var$isJoiner(glyph) {
  return glyph.shaperInfo.category & (0, $90a9d3398ee54fe5$export$bbcd928767338e0d);
}
function $7826f90f6f0cecc9$var$isHalantOrCoeng(glyph) {
  return glyph.shaperInfo.category & (0, $90a9d3398ee54fe5$export$ca9599b2a300afc);
}
function $7826f90f6f0cecc9$var$wouldSubstitute(glyphs, feature) {
  for (let glyph of glyphs) glyph.features = {
    [feature]: true
  };
  let GSUB = glyphs[0]._font._layoutEngine.engine.GSUBProcessor;
  GSUB.applyFeatures([
    feature
  ], glyphs);
  return glyphs.length === 1;
}
function $7826f90f6f0cecc9$var$consonantPosition(font, consonant, virama) {
  let glyphs = [
    virama,
    consonant,
    virama
  ];
  if ($7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(0, 2), "blwf") || $7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(1, 3), "blwf")) return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C;
  else if ($7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(0, 2), "pstf") || $7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(1, 3), "pstf")) return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C;
  else if ($7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(0, 2), "pref") || $7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(1, 3), "pref")) return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C;
  return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C;
}
function $7826f90f6f0cecc9$var$initialReordering(font, glyphs, plan) {
  let indicConfig = plan.indicConfig;
  let features = font._layoutEngine.engine.GSUBProcessor.features;
  let dottedCircle = font.glyphForCodePoint(9676).id;
  let virama = font.glyphForCodePoint(indicConfig.virama).id;
  if (virama) {
    let info = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, virama, [
      indicConfig.virama
    ]);
    for (let i5 = 0; i5 < glyphs.length; i5++) if (glyphs[i5].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) glyphs[i5].shaperInfo.position = $7826f90f6f0cecc9$var$consonantPosition(font, glyphs[i5].copy(), info);
  }
  for (let start2 = 0, end2 = $7826f90f6f0cecc9$var$nextSyllable(glyphs, 0); start2 < glyphs.length; start2 = end2, end2 = $7826f90f6f0cecc9$var$nextSyllable(glyphs, start2)) {
    let { category, syllableType } = glyphs[start2].shaperInfo;
    if (syllableType === "symbol_cluster" || syllableType === "non_indic_cluster") continue;
    if (syllableType === "broken_cluster" && dottedCircle) {
      let g3 = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, dottedCircle, [
        9676
      ]);
      g3.shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo(1 << $7826f90f6f0cecc9$var$indicCategory(g3), $7826f90f6f0cecc9$var$indicPosition(g3), glyphs[start2].shaperInfo.syllableType, glyphs[start2].shaperInfo.syllable);
      let i5 = start2;
      while (i5 < end2 && glyphs[i5].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Repha) i5++;
      glyphs.splice(i5++, 0, g3);
      end2++;
    }
    let base = end2;
    let limit = start2;
    let hasReph = false;
    if (indicConfig.rephPos !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph && features.rphf && start2 + 3 <= end2 && (indicConfig.rephMode === "Implicit" && !$7826f90f6f0cecc9$var$isJoiner(glyphs[start2 + 2]) || indicConfig.rephMode === "Explicit" && glyphs[start2 + 2].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ)) {
      let g3 = [
        glyphs[start2].copy(),
        glyphs[start2 + 1].copy(),
        glyphs[start2 + 2].copy()
      ];
      if ($7826f90f6f0cecc9$var$wouldSubstitute(g3.slice(0, 2), "rphf") || indicConfig.rephMode === "Explicit" && $7826f90f6f0cecc9$var$wouldSubstitute(g3, "rphf")) {
        limit += 2;
        while (limit < end2 && $7826f90f6f0cecc9$var$isJoiner(glyphs[limit])) limit++;
        base = start2;
        hasReph = true;
      }
    } else if (indicConfig.rephMode === "Log_Repha" && glyphs[start2].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Repha) {
      limit++;
      while (limit < end2 && $7826f90f6f0cecc9$var$isJoiner(glyphs[limit])) limit++;
      base = start2;
      hasReph = true;
    }
    switch (indicConfig.basePos) {
      case "Last": {
        let i5 = end2;
        let seenBelow = false;
        do {
          let info = glyphs[--i5].shaperInfo;
          if ($7826f90f6f0cecc9$var$isConsonant(glyphs[i5])) {
            if (info.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C && (info.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C || seenBelow)) {
              base = i5;
              break;
            }
            if (info.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C) seenBelow = true;
            base = i5;
          } else if (start2 < i5 && info.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ && glyphs[i5 - 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H) break;
        } while (i5 > limit);
        break;
      }
      case "First":
        base = start2;
        for (let i5 = base + 1; i5 < end2; i5++) if ($7826f90f6f0cecc9$var$isConsonant(glyphs[i5])) glyphs[i5].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C;
    }
    if (hasReph && base === start2 && limit - base <= 2) hasReph = false;
    for (let i5 = start2; i5 < base; i5++) {
      let info = glyphs[i5].shaperInfo;
      info.position = Math.min((0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_C, info.position);
    }
    if (base < end2) glyphs[base].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C;
    for (let i5 = base + 1; i5 < end2; i5++) if (glyphs[i5].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) {
      for (let j = i5 + 1; j < end2; j++) if ($7826f90f6f0cecc9$var$isConsonant(glyphs[j])) {
        glyphs[j].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Final_C;
        break;
      }
      break;
    }
    if (hasReph) glyphs[start2].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph;
    if (plan.isOldSpec) {
      let disallowDoubleHalants = plan.unicodeScript !== "Malayalam";
      for (let i5 = base + 1; i5 < end2; i5++) if (glyphs[i5].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H) {
        let j;
        for (j = end2 - 1; j > i5; j--) {
          if ($7826f90f6f0cecc9$var$isConsonant(glyphs[j]) || disallowDoubleHalants && glyphs[j].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H) break;
        }
        if (glyphs[j].shaperInfo.category !== (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H && j > i5) {
          let t4 = glyphs[i5];
          glyphs.splice(i5, 0, ...glyphs.splice(i5 + 1, j - i5));
          glyphs[j] = t4;
        }
        break;
      }
    }
    let lastPos = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Start;
    for (let i5 = start2; i5 < end2; i5++) {
      let info = glyphs[i5].shaperInfo;
      if (info.category & ((0, $90a9d3398ee54fe5$export$bbcd928767338e0d) | (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).N | (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).RS | (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).CM | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc) & info.category)) {
        info.position = lastPos;
        if (info.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H && info.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {
          for (let j = i5; j > start2; j--) if (glyphs[j - 1].shaperInfo.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {
            info.position = glyphs[j - 1].shaperInfo.position;
            break;
          }
        }
      } else if (info.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD) lastPos = info.position;
    }
    let last2 = base;
    for (let i5 = base + 1; i5 < end2; i5++) {
      if ($7826f90f6f0cecc9$var$isConsonant(glyphs[i5])) {
        for (let j = last2 + 1; j < i5; j++) if (glyphs[j].shaperInfo.position < (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD) glyphs[j].shaperInfo.position = glyphs[i5].shaperInfo.position;
        last2 = i5;
      } else if (glyphs[i5].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) last2 = i5;
    }
    let arr = glyphs.slice(start2, end2);
    arr.sort((a5, b3) => a5.shaperInfo.position - b3.shaperInfo.position);
    glyphs.splice(start2, arr.length, ...arr);
    for (let i5 = start2; i5 < end2; i5++) if (glyphs[i5].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) {
      base = i5;
      break;
    }
    for (let i5 = start2; i5 < end2 && glyphs[i5].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph; i5++) glyphs[i5].features.rphf = true;
    let blwf = !plan.isOldSpec && indicConfig.blwfMode === "Pre_And_Post";
    for (let i5 = start2; i5 < base; i5++) {
      glyphs[i5].features.half = true;
      if (blwf) glyphs[i5].features.blwf = true;
    }
    for (let i5 = base + 1; i5 < end2; i5++) {
      glyphs[i5].features.abvf = true;
      glyphs[i5].features.pstf = true;
      glyphs[i5].features.blwf = true;
    }
    if (plan.isOldSpec && plan.unicodeScript === "Devanagari") {
      for (let i5 = start2; i5 + 1 < base; i5++) if (glyphs[i5].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Ra && glyphs[i5 + 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H && (i5 + 1 === base || glyphs[i5 + 2].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ)) {
        glyphs[i5].features.blwf = true;
        glyphs[i5 + 1].features.blwf = true;
      }
    }
    let prefLen = 2;
    if (features.pref && base + prefLen < end2)
      for (let i5 = base + 1; i5 + prefLen - 1 < end2; i5++) {
        let g3 = [
          glyphs[i5].copy(),
          glyphs[i5 + 1].copy()
        ];
        if ($7826f90f6f0cecc9$var$wouldSubstitute(g3, "pref")) {
          for (let j = 0; j < prefLen; j++) glyphs[i5++].features.pref = true;
          if (features.cfar) for (; i5 < end2; i5++) glyphs[i5].features.cfar = true;
          break;
        }
      }
    for (let i5 = start2 + 1; i5 < end2; i5++) if ($7826f90f6f0cecc9$var$isJoiner(glyphs[i5])) {
      let nonJoiner = glyphs[i5].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWNJ;
      let j = i5;
      do {
        j--;
        if (nonJoiner) delete glyphs[j].features.half;
      } while (j > start2 && !$7826f90f6f0cecc9$var$isConsonant(glyphs[j]));
    }
  }
}
function $7826f90f6f0cecc9$var$finalReordering(font, glyphs, plan) {
  let indicConfig = plan.indicConfig;
  let features = font._layoutEngine.engine.GSUBProcessor.features;
  for (let start2 = 0, end2 = $7826f90f6f0cecc9$var$nextSyllable(glyphs, 0); start2 < glyphs.length; start2 = end2, end2 = $7826f90f6f0cecc9$var$nextSyllable(glyphs, start2)) {
    let tryPref = !!features.pref;
    let base = start2;
    for (; base < end2; base++) if (glyphs[base].shaperInfo.position >= (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) {
      if (tryPref && base + 1 < end2) {
        for (let i5 = base + 1; i5 < end2; i5++) if (glyphs[i5].features.pref) {
          if (!(glyphs[i5].substituted && glyphs[i5].isLigated && !glyphs[i5].isMultiplied)) {
            base = i5;
            while (base < end2 && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[base])) base++;
            glyphs[base].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).BASE_C;
            tryPref = false;
          }
          break;
        }
      }
      if (plan.unicodeScript === "Malayalam") for (let i5 = base + 1; i5 < end2; i5++) {
        while (i5 < end2 && $7826f90f6f0cecc9$var$isJoiner(glyphs[i5])) i5++;
        if (i5 === end2 || !$7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[i5])) break;
        i5++;
        while (i5 < end2 && $7826f90f6f0cecc9$var$isJoiner(glyphs[i5])) i5++;
        if (i5 < end2 && $7826f90f6f0cecc9$var$isConsonant(glyphs[i5]) && glyphs[i5].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C) {
          base = i5;
          glyphs[base].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C;
        }
      }
      if (start2 < base && glyphs[base].shaperInfo.position > (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) base--;
      break;
    }
    if (base === end2 && start2 < base && glyphs[base - 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ) base--;
    if (base < end2) while (start2 < base && glyphs[base].shaperInfo.category & ((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).N | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc))) base--;
    if (start2 + 1 < end2 && start2 < base) {
      let newPos = base === end2 ? base - 2 : base - 1;
      if (plan.unicodeScript !== "Malayalam" && plan.unicodeScript !== "Tamil") {
        while (newPos > start2 && !(glyphs[newPos].shaperInfo.category & ((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc)))) newPos--;
        if ($7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newPos]) && glyphs[newPos].shaperInfo.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {
          if (newPos + 1 < end2 && $7826f90f6f0cecc9$var$isJoiner(glyphs[newPos + 1])) newPos++;
        } else newPos = start2;
      }
      if (start2 < newPos && glyphs[newPos].shaperInfo.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {
        for (let i5 = newPos; i5 > start2; i5--) if (glyphs[i5 - 1].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {
          let oldPos = i5 - 1;
          if (oldPos < base && base <= newPos) base--;
          let tmp = glyphs[oldPos];
          glyphs.splice(oldPos, 0, ...glyphs.splice(oldPos + 1, newPos - oldPos));
          glyphs[newPos] = tmp;
          newPos--;
        }
      }
    }
    if (start2 + 1 < end2 && glyphs[start2].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph && glyphs[start2].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Repha !== (glyphs[start2].isLigated && !glyphs[start2].isMultiplied)) {
      let newRephPos;
      let rephPos = indicConfig.rephPos;
      let found = false;
      if (rephPos !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Post) {
        newRephPos = start2 + 1;
        while (newRephPos < base && !$7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) newRephPos++;
        if (newRephPos < base && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) {
          if (newRephPos + 1 < base && $7826f90f6f0cecc9$var$isJoiner(glyphs[newRephPos + 1])) newRephPos++;
          found = true;
        }
        if (!found && rephPos === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Main) {
          newRephPos = base;
          while (newRephPos + 1 < end2 && glyphs[newRephPos + 1].shaperInfo.position <= (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Main) newRephPos++;
          found = newRephPos < end2;
        }
        if (!found && rephPos === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Sub) {
          newRephPos = base;
          while (newRephPos + 1 < end2 && !(glyphs[newRephPos + 1].shaperInfo.position & ((0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C | (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Post | (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD))) newRephPos++;
          found = newRephPos < end2;
        }
      }
      if (!found) {
        newRephPos = start2 + 1;
        while (newRephPos < base && !$7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) newRephPos++;
        if (newRephPos < base && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) {
          if (newRephPos + 1 < base && $7826f90f6f0cecc9$var$isJoiner(glyphs[newRephPos + 1])) newRephPos++;
          found = true;
        }
      }
      if (!found) {
        newRephPos = end2 - 1;
        while (newRephPos > start2 && glyphs[newRephPos].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD) newRephPos--;
        if ($7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) {
          for (let i5 = base + 1; i5 < newRephPos; i5++) if (glyphs[i5].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) newRephPos--;
        }
      }
      let reph = glyphs[start2];
      glyphs.splice(start2, 0, ...glyphs.splice(start2 + 1, newRephPos - start2));
      glyphs[newRephPos] = reph;
      if (start2 < base && base <= newRephPos) base--;
    }
    if (tryPref && base + 1 < end2) {
      for (let i5 = base + 1; i5 < end2; i5++) if (glyphs[i5].features.pref) {
        if (glyphs[i5].isLigated && !glyphs[i5].isMultiplied) {
          let newPos = base;
          if (plan.unicodeScript !== "Malayalam" && plan.unicodeScript !== "Tamil") {
            while (newPos > start2 && !(glyphs[newPos - 1].shaperInfo.category & ((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc)))) newPos--;
            if (newPos > start2 && glyphs[newPos - 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) {
              let oldPos2 = i5;
              for (let j = base + 1; j < oldPos2; j++) if (glyphs[j].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) {
                newPos--;
                break;
              }
            }
          }
          if (newPos > start2 && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newPos - 1])) {
            if (newPos < end2 && $7826f90f6f0cecc9$var$isJoiner(glyphs[newPos])) newPos++;
          }
          let oldPos = i5;
          let tmp = glyphs[oldPos];
          glyphs.splice(newPos + 1, 0, ...glyphs.splice(newPos, oldPos - newPos));
          glyphs[newPos] = tmp;
          if (newPos <= base && base < oldPos) base++;
        }
        break;
      }
    }
    if (glyphs[start2].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M && (!start2 || !/Cf|Mn/.test((0, $747425b437e121da$export$410364bbb673ddbc)(glyphs[start2 - 1].codePoints[0])))) glyphs[start2].features.init = true;
  }
}
function $7826f90f6f0cecc9$var$nextSyllable(glyphs, start2) {
  if (start2 >= glyphs.length) return start2;
  let syllable = glyphs[start2].shaperInfo.syllable;
  while (++start2 < glyphs.length && glyphs[start2].shaperInfo.syllable === syllable) ;
  return start2;
}
var { categories: $7ab494fe977143c6$var$categories, decompositions: $7ab494fe977143c6$var$decompositions } = (0, /* @__PURE__ */ $parcel$interopDefault2($aa333a9607471296$exports));
var $7ab494fe977143c6$var$trie = new (0, import_unicode_trie2.default)((0, $12727730ddfc8bfe$export$94fdf11bafc8de6b)("[encoded data, 4808 characters]"));
var $7ab494fe977143c6$var$stateMachine = new (0, import_dfa.default)((0, /* @__PURE__ */ $parcel$interopDefault2($aa333a9607471296$exports)));
var $7ab494fe977143c6$export$2e2bcd8739ae039 = class extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {
  static planFeatures(plan) {
    plan.addStage($7ab494fe977143c6$var$setupSyllables);
    plan.addStage([
      "locl",
      "ccmp",
      "nukt",
      "akhn"
    ]);
    plan.addStage($7ab494fe977143c6$var$clearSubstitutionFlags);
    plan.addStage([
      "rphf"
    ], false);
    plan.addStage($7ab494fe977143c6$var$recordRphf);
    plan.addStage($7ab494fe977143c6$var$clearSubstitutionFlags);
    plan.addStage([
      "pref"
    ]);
    plan.addStage($7ab494fe977143c6$var$recordPref);
    plan.addStage([
      "rkrf",
      "abvf",
      "blwf",
      "half",
      "pstf",
      "vatu",
      "cjct"
    ]);
    plan.addStage($7ab494fe977143c6$var$reorder);
    plan.addStage([
      "abvs",
      "blws",
      "pres",
      "psts",
      "dist",
      "abvm",
      "blwm"
    ]);
  }
  static assignFeatures(plan, glyphs) {
    for (let i5 = glyphs.length - 1; i5 >= 0; i5--) {
      let codepoint = glyphs[i5].codePoints[0];
      if ($7ab494fe977143c6$var$decompositions[codepoint]) {
        let decomposed = $7ab494fe977143c6$var$decompositions[codepoint].map((c6) => {
          let g3 = plan.font.glyphForCodePoint(c6);
          return new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(plan.font, g3.id, [
            c6
          ], glyphs[i5].features);
        });
        glyphs.splice(i5, 1, ...decomposed);
      }
    }
  }
};
(0, _define_property)($7ab494fe977143c6$export$2e2bcd8739ae039, "zeroMarkWidths", "BEFORE_GPOS");
function $7ab494fe977143c6$var$useCategory(glyph) {
  return $7ab494fe977143c6$var$trie.get(glyph.codePoints[0]);
}
var $7ab494fe977143c6$var$USEInfo = class {
  constructor(category, syllableType, syllable) {
    this.category = category;
    this.syllableType = syllableType;
    this.syllable = syllable;
  }
};
function $7ab494fe977143c6$var$setupSyllables(font, glyphs) {
  let syllable = 0;
  for (let [start2, end2, tags2] of $7ab494fe977143c6$var$stateMachine.match(glyphs.map($7ab494fe977143c6$var$useCategory))) {
    ++syllable;
    for (let i5 = start2; i5 <= end2; i5++) glyphs[i5].shaperInfo = new $7ab494fe977143c6$var$USEInfo($7ab494fe977143c6$var$categories[$7ab494fe977143c6$var$useCategory(glyphs[i5])], tags2[0], syllable);
    let limit = glyphs[start2].shaperInfo.category === "R" ? 1 : Math.min(3, end2 - start2);
    for (let i5 = start2; i5 < start2 + limit; i5++) glyphs[i5].features.rphf = true;
  }
}
function $7ab494fe977143c6$var$clearSubstitutionFlags(font, glyphs) {
  for (let glyph of glyphs) glyph.substituted = false;
}
function $7ab494fe977143c6$var$recordRphf(font, glyphs) {
  for (let glyph of glyphs) if (glyph.substituted && glyph.features.rphf)
    glyph.shaperInfo.category = "R";
}
function $7ab494fe977143c6$var$recordPref(font, glyphs) {
  for (let glyph of glyphs) if (glyph.substituted)
    glyph.shaperInfo.category = "VPre";
}
function $7ab494fe977143c6$var$reorder(font, glyphs) {
  let dottedCircle = font.glyphForCodePoint(9676).id;
  for (let start2 = 0, end2 = $7ab494fe977143c6$var$nextSyllable(glyphs, 0); start2 < glyphs.length; start2 = end2, end2 = $7ab494fe977143c6$var$nextSyllable(glyphs, start2)) {
    let i5, j;
    let info = glyphs[start2].shaperInfo;
    let type = info.syllableType;
    if (type !== "virama_terminated_cluster" && type !== "standard_cluster" && type !== "broken_cluster") continue;
    if (type === "broken_cluster" && dottedCircle) {
      let g3 = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, dottedCircle, [
        9676
      ]);
      g3.shaperInfo = info;
      for (i5 = start2; i5 < end2 && glyphs[i5].shaperInfo.category === "R"; i5++) ;
      glyphs.splice(++i5, 0, g3);
      end2++;
    }
    if (info.category === "R" && end2 - start2 > 1)
      for (i5 = start2 + 1; i5 < end2; i5++) {
        info = glyphs[i5].shaperInfo;
        if ($7ab494fe977143c6$var$isBase(info) || $7ab494fe977143c6$var$isHalant(glyphs[i5])) {
          if ($7ab494fe977143c6$var$isHalant(glyphs[i5])) i5--;
          glyphs.splice(start2, 0, ...glyphs.splice(start2 + 1, i5 - start2), glyphs[i5]);
          break;
        }
      }
    for (i5 = start2, j = end2; i5 < end2; i5++) {
      info = glyphs[i5].shaperInfo;
      if ($7ab494fe977143c6$var$isBase(info) || $7ab494fe977143c6$var$isHalant(glyphs[i5]))
        j = $7ab494fe977143c6$var$isHalant(glyphs[i5]) ? i5 + 1 : i5;
      else if ((info.category === "VPre" || info.category === "VMPre") && j < i5) glyphs.splice(j, 1, glyphs[i5], ...glyphs.splice(j, i5 - j));
    }
  }
}
function $7ab494fe977143c6$var$nextSyllable(glyphs, start2) {
  if (start2 >= glyphs.length) return start2;
  let syllable = glyphs[start2].shaperInfo.syllable;
  while (++start2 < glyphs.length && glyphs[start2].shaperInfo.syllable === syllable) ;
  return start2;
}
function $7ab494fe977143c6$var$isHalant(glyph) {
  return glyph.shaperInfo.category === "H" && !glyph.isLigated;
}
function $7ab494fe977143c6$var$isBase(info) {
  return info.category === "B" || info.category === "GB";
}
var $102b6fe50f1d50b4$var$SHAPERS = {
  arab: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),
  mong: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),
  syrc: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),
  "nko ": (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),
  phag: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),
  mand: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),
  mani: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),
  phlp: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),
  hang: (0, $e1c6bbc8cb416f8c$export$2e2bcd8739ae039),
  bng2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  beng: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  dev2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  deva: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  gjr2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  gujr: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  guru: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  gur2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  knda: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  knd2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  mlm2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  mlym: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  ory2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  orya: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  taml: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  tml2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  telu: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  tel2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  khmr: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  bali: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  batk: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  brah: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  bugi: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  buhd: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  cakm: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  cham: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  dupl: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  egyp: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  gran: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  hano: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  java: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  kthi: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  kali: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  khar: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  khoj: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  sind: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  lepc: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  limb: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  mahj: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  // mand: UniversalShaper, // Mandaic
  // mani: UniversalShaper, // Manichaean
  mtei: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  modi: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  // mong: UniversalShaper, // Mongolian
  // 'nko ': UniversalShaper, // N’Ko
  hmng: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  // phag: UniversalShaper, // Phags-pa
  // phlp: UniversalShaper, // Psalter Pahlavi
  rjng: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  saur: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  shrd: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  sidd: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  sinh: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),
  sund: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  sylo: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  tglg: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  tagb: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  tale: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  lana: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  tavt: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  takr: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  tibt: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  tfng: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  tirh: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),
  latn: (0, $649970d87335b30f$export$2e2bcd8739ae039),
  DFLT: (0, $649970d87335b30f$export$2e2bcd8739ae039)
};
function $102b6fe50f1d50b4$export$7877a478dd30fd3d(script) {
  if (!Array.isArray(script)) script = [
    script
  ];
  for (let s4 of script) {
    let shaper = $102b6fe50f1d50b4$var$SHAPERS[s4];
    if (shaper) return shaper;
  }
  return 0, $649970d87335b30f$export$2e2bcd8739ae039;
}
var $0a876c45f1f7c41c$export$2e2bcd8739ae039 = class extends (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039) {
  applyLookup(lookupType, table) {
    switch (lookupType) {
      case 1: {
        let index2 = this.coverageIndex(table.coverage);
        if (index2 === -1) return false;
        let glyph = this.glyphIterator.cur;
        switch (table.version) {
          case 1:
            glyph.id = glyph.id + table.deltaGlyphID & 65535;
            break;
          case 2:
            glyph.id = table.substitute.get(index2);
            break;
        }
        return true;
      }
      case 2: {
        let index2 = this.coverageIndex(table.coverage);
        if (index2 !== -1) {
          let sequence = table.sequences.get(index2);
          if (sequence.length === 0) {
            this.glyphs.splice(this.glyphIterator.index, 1);
            return true;
          }
          this.glyphIterator.cur.id = sequence[0];
          this.glyphIterator.cur.ligatureComponent = 0;
          let features = this.glyphIterator.cur.features;
          let curGlyph = this.glyphIterator.cur;
          let replacement = sequence.slice(1).map((gid, i5) => {
            let glyph = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(this.font, gid, void 0, features);
            glyph.shaperInfo = curGlyph.shaperInfo;
            glyph.isLigated = curGlyph.isLigated;
            glyph.ligatureComponent = i5 + 1;
            glyph.substituted = true;
            glyph.isMultiplied = true;
            return glyph;
          });
          this.glyphs.splice(this.glyphIterator.index + 1, 0, ...replacement);
          return true;
        }
        return false;
      }
      case 3: {
        let index2 = this.coverageIndex(table.coverage);
        if (index2 !== -1) {
          let USER_INDEX = 0;
          this.glyphIterator.cur.id = table.alternateSet.get(index2)[USER_INDEX];
          return true;
        }
        return false;
      }
      case 4: {
        let index2 = this.coverageIndex(table.coverage);
        if (index2 === -1) return false;
        for (let ligature of table.ligatureSets.get(index2)) {
          let matched = this.sequenceMatchIndices(1, ligature.components);
          if (!matched) continue;
          let curGlyph = this.glyphIterator.cur;
          let characters2 = curGlyph.codePoints.slice();
          for (let index3 of matched) characters2.push(...this.glyphs[index3].codePoints);
          let ligatureGlyph = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(this.font, ligature.glyph, characters2, curGlyph.features);
          ligatureGlyph.shaperInfo = curGlyph.shaperInfo;
          ligatureGlyph.isLigated = true;
          ligatureGlyph.substituted = true;
          let isMarkLigature = curGlyph.isMark;
          for (let i5 = 0; i5 < matched.length && isMarkLigature; i5++) isMarkLigature = this.glyphs[matched[i5]].isMark;
          ligatureGlyph.ligatureID = isMarkLigature ? null : this.ligatureID++;
          let lastLigID = curGlyph.ligatureID;
          let lastNumComps = curGlyph.codePoints.length;
          let curComps = lastNumComps;
          let idx = this.glyphIterator.index + 1;
          for (let matchIndex of matched) {
            if (isMarkLigature) idx = matchIndex;
            else while (idx < matchIndex) {
              var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[idx].ligatureComponent || 1, lastNumComps);
              this.glyphs[idx].ligatureID = ligatureGlyph.ligatureID;
              this.glyphs[idx].ligatureComponent = ligatureComponent;
              idx++;
            }
            lastLigID = this.glyphs[idx].ligatureID;
            lastNumComps = this.glyphs[idx].codePoints.length;
            curComps += lastNumComps;
            idx++;
          }
          if (lastLigID && !isMarkLigature) for (let i5 = idx; i5 < this.glyphs.length; i5++) {
            if (this.glyphs[i5].ligatureID === lastLigID) {
              var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[i5].ligatureComponent || 1, lastNumComps);
              this.glyphs[i5].ligatureComponent = ligatureComponent;
            } else break;
          }
          for (let i5 = matched.length - 1; i5 >= 0; i5--) this.glyphs.splice(matched[i5], 1);
          this.glyphs[this.glyphIterator.index] = ligatureGlyph;
          return true;
        }
        return false;
      }
      case 5:
        return this.applyContext(table);
      case 6:
        return this.applyChainingContext(table);
      case 7:
        return this.applyLookup(table.lookupType, table.extension);
      default:
        throw new Error(`GSUB lookupType ${lookupType} is not supported`);
    }
  }
};
var $c96c93587d49c14d$export$2e2bcd8739ae039 = class extends (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039) {
  applyPositionValue(sequenceIndex, value2) {
    let position = this.positions[this.glyphIterator.peekIndex(sequenceIndex)];
    if (value2.xAdvance != null) position.xAdvance += value2.xAdvance;
    if (value2.yAdvance != null) position.yAdvance += value2.yAdvance;
    if (value2.xPlacement != null) position.xOffset += value2.xPlacement;
    if (value2.yPlacement != null) position.yOffset += value2.yPlacement;
    let variationProcessor = this.font._variationProcessor;
    let variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;
    if (variationProcessor && variationStore) {
      if (value2.xPlaDevice) position.xOffset += variationProcessor.getDelta(variationStore, value2.xPlaDevice.a, value2.xPlaDevice.b);
      if (value2.yPlaDevice) position.yOffset += variationProcessor.getDelta(variationStore, value2.yPlaDevice.a, value2.yPlaDevice.b);
      if (value2.xAdvDevice) position.xAdvance += variationProcessor.getDelta(variationStore, value2.xAdvDevice.a, value2.xAdvDevice.b);
      if (value2.yAdvDevice) position.yAdvance += variationProcessor.getDelta(variationStore, value2.yAdvDevice.a, value2.yAdvDevice.b);
    }
  }
  applyLookup(lookupType, table) {
    switch (lookupType) {
      case 1: {
        let index2 = this.coverageIndex(table.coverage);
        if (index2 === -1) return false;
        switch (table.version) {
          case 1:
            this.applyPositionValue(0, table.value);
            break;
          case 2:
            this.applyPositionValue(0, table.values.get(index2));
            break;
        }
        return true;
      }
      case 2: {
        let nextGlyph = this.glyphIterator.peek();
        if (!nextGlyph) return false;
        let index2 = this.coverageIndex(table.coverage);
        if (index2 === -1) return false;
        switch (table.version) {
          case 1:
            let set = table.pairSets.get(index2);
            for (let pair2 of set) if (pair2.secondGlyph === nextGlyph.id) {
              this.applyPositionValue(0, pair2.value1);
              this.applyPositionValue(1, pair2.value2);
              return true;
            }
            return false;
          case 2:
            let class1 = this.getClassID(this.glyphIterator.cur.id, table.classDef1);
            let class2 = this.getClassID(nextGlyph.id, table.classDef2);
            if (class1 === -1 || class2 === -1) return false;
            var pair = table.classRecords.get(class1).get(class2);
            this.applyPositionValue(0, pair.value1);
            this.applyPositionValue(1, pair.value2);
            return true;
        }
      }
      case 3: {
        let nextIndex = this.glyphIterator.peekIndex();
        let nextGlyph = this.glyphs[nextIndex];
        if (!nextGlyph) return false;
        let curRecord = table.entryExitRecords[this.coverageIndex(table.coverage)];
        if (!curRecord || !curRecord.exitAnchor) return false;
        let nextRecord = table.entryExitRecords[this.coverageIndex(table.coverage, nextGlyph.id)];
        if (!nextRecord || !nextRecord.entryAnchor) return false;
        let entry = this.getAnchor(nextRecord.entryAnchor);
        let exit = this.getAnchor(curRecord.exitAnchor);
        let cur = this.positions[this.glyphIterator.index];
        let next = this.positions[nextIndex];
        let d3;
        switch (this.direction) {
          case "ltr":
            cur.xAdvance = exit.x + cur.xOffset;
            d3 = entry.x + next.xOffset;
            next.xAdvance -= d3;
            next.xOffset -= d3;
            break;
          case "rtl":
            d3 = exit.x + cur.xOffset;
            cur.xAdvance -= d3;
            cur.xOffset -= d3;
            next.xAdvance = entry.x + next.xOffset;
            break;
        }
        if (this.glyphIterator.flags.rightToLeft) {
          this.glyphIterator.cur.cursiveAttachment = nextIndex;
          cur.yOffset = entry.y - exit.y;
        } else {
          nextGlyph.cursiveAttachment = this.glyphIterator.index;
          cur.yOffset = exit.y - entry.y;
        }
        return true;
      }
      case 4: {
        let markIndex = this.coverageIndex(table.markCoverage);
        if (markIndex === -1) return false;
        let baseGlyphIndex = this.glyphIterator.index;
        while (--baseGlyphIndex >= 0 && (this.glyphs[baseGlyphIndex].isMark || this.glyphs[baseGlyphIndex].ligatureComponent > 0)) ;
        if (baseGlyphIndex < 0) return false;
        let baseIndex = this.coverageIndex(table.baseCoverage, this.glyphs[baseGlyphIndex].id);
        if (baseIndex === -1) return false;
        let markRecord = table.markArray[markIndex];
        let baseAnchor = table.baseArray[baseIndex][markRecord.class];
        this.applyAnchor(markRecord, baseAnchor, baseGlyphIndex);
        return true;
      }
      case 5: {
        let markIndex = this.coverageIndex(table.markCoverage);
        if (markIndex === -1) return false;
        let baseGlyphIndex = this.glyphIterator.index;
        while (--baseGlyphIndex >= 0 && this.glyphs[baseGlyphIndex].isMark) ;
        if (baseGlyphIndex < 0) return false;
        let ligIndex = this.coverageIndex(table.ligatureCoverage, this.glyphs[baseGlyphIndex].id);
        if (ligIndex === -1) return false;
        let ligAttach = table.ligatureArray[ligIndex];
        let markGlyph = this.glyphIterator.cur;
        let ligGlyph = this.glyphs[baseGlyphIndex];
        let compIndex = ligGlyph.ligatureID && ligGlyph.ligatureID === markGlyph.ligatureID && markGlyph.ligatureComponent > 0 ? Math.min(markGlyph.ligatureComponent, ligGlyph.codePoints.length) - 1 : ligGlyph.codePoints.length - 1;
        let markRecord = table.markArray[markIndex];
        let baseAnchor = ligAttach[compIndex][markRecord.class];
        this.applyAnchor(markRecord, baseAnchor, baseGlyphIndex);
        return true;
      }
      case 6: {
        let mark1Index = this.coverageIndex(table.mark1Coverage);
        if (mark1Index === -1) return false;
        let prevIndex = this.glyphIterator.peekIndex(-1);
        let prev = this.glyphs[prevIndex];
        if (!prev || !prev.isMark) return false;
        let cur = this.glyphIterator.cur;
        let good = false;
        if (cur.ligatureID === prev.ligatureID) {
          if (!cur.ligatureID) good = true;
          else if (cur.ligatureComponent === prev.ligatureComponent) good = true;
        } else if (cur.ligatureID && !cur.ligatureComponent || prev.ligatureID && !prev.ligatureComponent) good = true;
        if (!good) return false;
        let mark2Index = this.coverageIndex(table.mark2Coverage, prev.id);
        if (mark2Index === -1) return false;
        let markRecord = table.mark1Array[mark1Index];
        let baseAnchor = table.mark2Array[mark2Index][markRecord.class];
        this.applyAnchor(markRecord, baseAnchor, prevIndex);
        return true;
      }
      case 7:
        return this.applyContext(table);
      case 8:
        return this.applyChainingContext(table);
      case 9:
        return this.applyLookup(table.lookupType, table.extension);
      default:
        throw new Error(`Unsupported GPOS table: ${lookupType}`);
    }
  }
  applyAnchor(markRecord, baseAnchor, baseGlyphIndex) {
    let baseCoords = this.getAnchor(baseAnchor);
    let markCoords = this.getAnchor(markRecord.markAnchor);
    let basePos = this.positions[baseGlyphIndex];
    let markPos = this.positions[this.glyphIterator.index];
    markPos.xOffset = baseCoords.x - markCoords.x;
    markPos.yOffset = baseCoords.y - markCoords.y;
    this.glyphIterator.cur.markAttachment = baseGlyphIndex;
  }
  getAnchor(anchor) {
    let x = anchor.xCoordinate;
    let y3 = anchor.yCoordinate;
    let variationProcessor = this.font._variationProcessor;
    let variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;
    if (variationProcessor && variationStore) {
      if (anchor.xDeviceTable) x += variationProcessor.getDelta(variationStore, anchor.xDeviceTable.a, anchor.xDeviceTable.b);
      if (anchor.yDeviceTable) y3 += variationProcessor.getDelta(variationStore, anchor.yDeviceTable.a, anchor.yDeviceTable.b);
    }
    return {
      x,
      y: y3
    };
  }
  applyFeatures(userFeatures, glyphs, advances) {
    super.applyFeatures(userFeatures, glyphs, advances);
    for (var i5 = 0; i5 < this.glyphs.length; i5++) this.fixCursiveAttachment(i5);
    this.fixMarkAttachment();
  }
  fixCursiveAttachment(i5) {
    let glyph = this.glyphs[i5];
    if (glyph.cursiveAttachment != null) {
      let j = glyph.cursiveAttachment;
      glyph.cursiveAttachment = null;
      this.fixCursiveAttachment(j);
      this.positions[i5].yOffset += this.positions[j].yOffset;
    }
  }
  fixMarkAttachment() {
    for (let i5 = 0; i5 < this.glyphs.length; i5++) {
      let glyph = this.glyphs[i5];
      if (glyph.markAttachment != null) {
        let j = glyph.markAttachment;
        this.positions[i5].xOffset += this.positions[j].xOffset;
        this.positions[i5].yOffset += this.positions[j].yOffset;
        if (this.direction === "ltr") for (let k3 = j; k3 < i5; k3++) {
          this.positions[i5].xOffset -= this.positions[k3].xAdvance;
          this.positions[i5].yOffset -= this.positions[k3].yAdvance;
        }
        else for (let k3 = j + 1; k3 < i5 + 1; k3++) {
          this.positions[i5].xOffset += this.positions[k3].xAdvance;
          this.positions[i5].yOffset += this.positions[k3].yAdvance;
        }
      }
    }
  }
};
var $a62492810de27e3d$export$2e2bcd8739ae039 = class {
  setup(glyphRun) {
    this.glyphInfos = glyphRun.glyphs.map((glyph) => new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(this.font, glyph.id, [
      ...glyph.codePoints
    ]));
    let script = null;
    if (this.GPOSProcessor) script = this.GPOSProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);
    if (this.GSUBProcessor) script = this.GSUBProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);
    this.shaper = $102b6fe50f1d50b4$export$7877a478dd30fd3d(script);
    this.plan = new (0, $94d7a73bd2edfc9a$export$2e2bcd8739ae039)(this.font, script, glyphRun.direction);
    this.shaper.plan(this.plan, this.glyphInfos, glyphRun.features);
    for (let key in this.plan.allFeatures) glyphRun.features[key] = true;
  }
  substitute(glyphRun) {
    if (this.GSUBProcessor) {
      this.plan.process(this.GSUBProcessor, this.glyphInfos);
      glyphRun.glyphs = this.glyphInfos.map((glyphInfo) => this.font.getGlyph(glyphInfo.id, glyphInfo.codePoints));
    }
  }
  position(glyphRun) {
    if (this.shaper.zeroMarkWidths === "BEFORE_GPOS") this.zeroMarkAdvances(glyphRun.positions);
    if (this.GPOSProcessor) this.plan.process(this.GPOSProcessor, this.glyphInfos, glyphRun.positions);
    if (this.shaper.zeroMarkWidths === "AFTER_GPOS") this.zeroMarkAdvances(glyphRun.positions);
    if (glyphRun.direction === "rtl") {
      glyphRun.glyphs.reverse();
      glyphRun.positions.reverse();
    }
    return this.GPOSProcessor && this.GPOSProcessor.features;
  }
  zeroMarkAdvances(positions) {
    for (let i5 = 0; i5 < this.glyphInfos.length; i5++) if (this.glyphInfos[i5].isMark) {
      positions[i5].xAdvance = 0;
      positions[i5].yAdvance = 0;
    }
  }
  cleanup() {
    this.glyphInfos = null;
    this.plan = null;
    this.shaper = null;
  }
  getAvailableFeatures(script, language) {
    let features = [];
    if (this.GSUBProcessor) {
      this.GSUBProcessor.selectScript(script, language);
      features.push(...Object.keys(this.GSUBProcessor.features));
    }
    if (this.GPOSProcessor) {
      this.GPOSProcessor.selectScript(script, language);
      features.push(...Object.keys(this.GPOSProcessor.features));
    }
    return features;
  }
  constructor(font) {
    this.font = font;
    this.glyphInfos = null;
    this.plan = null;
    this.GSUBProcessor = null;
    this.GPOSProcessor = null;
    this.fallbackPosition = true;
    if (font.GSUB) this.GSUBProcessor = new (0, $0a876c45f1f7c41c$export$2e2bcd8739ae039)(font, font.GSUB);
    if (font.GPOS) this.GPOSProcessor = new (0, $c96c93587d49c14d$export$2e2bcd8739ae039)(font, font.GPOS);
  }
};
var $4c0a7fa5df7a9ab1$export$2e2bcd8739ae039 = class {
  layout(string, features, script, language, direction) {
    if (typeof features === "string") {
      direction = language;
      language = script;
      script = features;
      features = [];
    }
    if (typeof string === "string") {
      if (script == null) script = $130d1a642ebcd2b7$export$e5cb25e204fb8450(string);
      var glyphs = this.font.glyphsForString(string);
    } else {
      if (script == null) {
        let codePoints = [];
        for (let glyph of string) codePoints.push(...glyph.codePoints);
        script = $130d1a642ebcd2b7$export$16fab0757cfc223d(codePoints);
      }
      var glyphs = string;
    }
    let glyphRun = new (0, $be07b3e97a42687a$export$2e2bcd8739ae039)(glyphs, features, script, language, direction);
    if (glyphs.length === 0) {
      glyphRun.positions = [];
      return glyphRun;
    }
    if (this.engine && this.engine.setup) this.engine.setup(glyphRun);
    this.substitute(glyphRun);
    this.position(glyphRun);
    this.hideDefaultIgnorables(glyphRun.glyphs, glyphRun.positions);
    if (this.engine && this.engine.cleanup) this.engine.cleanup();
    return glyphRun;
  }
  substitute(glyphRun) {
    if (this.engine && this.engine.substitute) this.engine.substitute(glyphRun);
  }
  position(glyphRun) {
    glyphRun.positions = glyphRun.glyphs.map((glyph) => new (0, $1ac75d9a55b67f01$export$2e2bcd8739ae039)(glyph.advanceWidth));
    let positioned = null;
    if (this.engine && this.engine.position) positioned = this.engine.position(glyphRun);
    if (!positioned && (!this.engine || this.engine.fallbackPosition)) {
      if (!this.unicodeLayoutEngine) this.unicodeLayoutEngine = new (0, $0a4bdfeb6dfd6f5e$export$2e2bcd8739ae039)(this.font);
      this.unicodeLayoutEngine.positionGlyphs(glyphRun.glyphs, glyphRun.positions);
    }
    if ((!positioned || !positioned.kern) && glyphRun.features.kern !== false && this.font.kern) {
      if (!this.kernProcessor) this.kernProcessor = new (0, $0bba3a9db57637f3$export$2e2bcd8739ae039)(this.font);
      this.kernProcessor.process(glyphRun.glyphs, glyphRun.positions);
      glyphRun.features.kern = true;
    }
  }
  hideDefaultIgnorables(glyphs, positions) {
    let space = this.font.glyphForCodePoint(32);
    for (let i5 = 0; i5 < glyphs.length; i5++) if (this.isDefaultIgnorable(glyphs[i5].codePoints[0])) {
      glyphs[i5] = space;
      positions[i5].xAdvance = 0;
      positions[i5].yAdvance = 0;
    }
  }
  isDefaultIgnorable(ch) {
    let plane = ch >> 16;
    if (plane === 0)
      switch (ch >> 8) {
        case 0:
          return ch === 173;
        case 3:
          return ch === 847;
        case 6:
          return ch === 1564;
        case 23:
          return 6068 <= ch && ch <= 6069;
        case 24:
          return 6155 <= ch && ch <= 6158;
        case 32:
          return 8203 <= ch && ch <= 8207 || 8234 <= ch && ch <= 8238 || 8288 <= ch && ch <= 8303;
        case 254:
          return 65024 <= ch && ch <= 65039 || ch === 65279;
        case 255:
          return 65520 <= ch && ch <= 65528;
        default:
          return false;
      }
    else
      switch (plane) {
        case 1:
          return 113824 <= ch && ch <= 113827 || 119155 <= ch && ch <= 119162;
        case 14:
          return 917504 <= ch && ch <= 921599;
        default:
          return false;
      }
  }
  getAvailableFeatures(script, language) {
    let features = [];
    if (this.engine) features.push(...this.engine.getAvailableFeatures(script, language));
    if (this.font.kern && features.indexOf("kern") === -1) features.push("kern");
    return features;
  }
  stringsForGlyph(gid) {
    let result = /* @__PURE__ */ new Set();
    let codePoints = this.font._cmapProcessor.codePointsForGlyph(gid);
    for (let codePoint of codePoints) result.add(String.fromCodePoint(codePoint));
    if (this.engine && this.engine.stringsForGlyph) for (let string of this.engine.stringsForGlyph(gid)) result.add(string);
    return Array.from(result);
  }
  constructor(font) {
    this.font = font;
    this.unicodeLayoutEngine = null;
    this.kernProcessor = null;
    if (this.font.morx) this.engine = new (0, $ba6dd74203be8728$export$2e2bcd8739ae039)(this.font);
    else if (this.font.GSUB || this.font.GPOS) this.engine = new (0, $a62492810de27e3d$export$2e2bcd8739ae039)(this.font);
  }
};
var $f43aec954cdfdf21$var$SVG_COMMANDS = {
  moveTo: "M",
  lineTo: "L",
  quadraticCurveTo: "Q",
  bezierCurveTo: "C",
  closePath: "Z"
};
var $f43aec954cdfdf21$export$2e2bcd8739ae039 = class _$f43aec954cdfdf21$export$2e2bcd8739ae039 {
  /**
  * Compiles the path to a JavaScript function that can be applied with
  * a graphics context in order to render the path.
  * @return {string}
  */
  toFunction() {
    return (ctx) => {
      this.commands.forEach((c6) => {
        return ctx[c6.command].apply(ctx, c6.args);
      });
    };
  }
  /**
  * Converts the path to an SVG path data string
  * @return {string}
  */
  toSVG() {
    let cmds = this.commands.map((c6) => {
      let args = c6.args.map((arg) => Math.round(arg * 100) / 100);
      return `${$f43aec954cdfdf21$var$SVG_COMMANDS[c6.command]}${args.join(" ")}`;
    });
    return cmds.join("");
  }
  /**
  * Gets the "control box" of a path.
  * This is like the bounding box, but it includes all points including
  * control points of bezier segments and is much faster to compute than
  * the real bounding box.
  * @type {BBox}
  */
  get cbox() {
    if (!this._cbox) {
      let cbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039)();
      for (let command of this.commands) for (let i5 = 0; i5 < command.args.length; i5 += 2) cbox.addPoint(command.args[i5], command.args[i5 + 1]);
      this._cbox = Object.freeze(cbox);
    }
    return this._cbox;
  }
  /**
  * Gets the exact bounding box of the path by evaluating curve segments.
  * Slower to compute than the control box, but more accurate.
  * @type {BBox}
  */
  get bbox() {
    if (this._bbox) return this._bbox;
    let bbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039)();
    let cx2 = 0, cy2 = 0;
    let f4 = (t4) => Math.pow(1 - t4, 3) * p0[i5] + 3 * Math.pow(1 - t4, 2) * t4 * p1[i5] + 3 * (1 - t4) * Math.pow(t4, 2) * p22[i5] + Math.pow(t4, 3) * p3[i5];
    for (let c6 of this.commands) switch (c6.command) {
      case "moveTo":
      case "lineTo":
        let [x, y3] = c6.args;
        bbox.addPoint(x, y3);
        cx2 = x;
        cy2 = y3;
        break;
      case "quadraticCurveTo":
      case "bezierCurveTo":
        if (c6.command === "quadraticCurveTo") {
          var [qp1x, qp1y, p3x, p3y] = c6.args;
          var cp1x = cx2 + 2 / 3 * (qp1x - cx2);
          var cp1y = cy2 + 2 / 3 * (qp1y - cy2);
          var cp2x = p3x + 2 / 3 * (qp1x - p3x);
          var cp2y = p3y + 2 / 3 * (qp1y - p3y);
        } else var [cp1x, cp1y, cp2x, cp2y, p3x, p3y] = c6.args;
        bbox.addPoint(p3x, p3y);
        var p0 = [
          cx2,
          cy2
        ];
        var p1 = [
          cp1x,
          cp1y
        ];
        var p22 = [
          cp2x,
          cp2y
        ];
        var p3 = [
          p3x,
          p3y
        ];
        for (var i5 = 0; i5 <= 1; i5++) {
          let b3 = 6 * p0[i5] - 12 * p1[i5] + 6 * p22[i5];
          let a5 = -3 * p0[i5] + 9 * p1[i5] - 9 * p22[i5] + 3 * p3[i5];
          c6 = 3 * p1[i5] - 3 * p0[i5];
          if (a5 === 0) {
            if (b3 === 0) continue;
            let t4 = -c6 / b3;
            if (0 < t4 && t4 < 1) {
              if (i5 === 0) bbox.addPoint(f4(t4), bbox.maxY);
              else if (i5 === 1) bbox.addPoint(bbox.maxX, f4(t4));
            }
            continue;
          }
          let b2ac = Math.pow(b3, 2) - 4 * c6 * a5;
          if (b2ac < 0) continue;
          let t1 = (-b3 + Math.sqrt(b2ac)) / (2 * a5);
          if (0 < t1 && t1 < 1) {
            if (i5 === 0) bbox.addPoint(f4(t1), bbox.maxY);
            else if (i5 === 1) bbox.addPoint(bbox.maxX, f4(t1));
          }
          let t22 = (-b3 - Math.sqrt(b2ac)) / (2 * a5);
          if (0 < t22 && t22 < 1) {
            if (i5 === 0) bbox.addPoint(f4(t22), bbox.maxY);
            else if (i5 === 1) bbox.addPoint(bbox.maxX, f4(t22));
          }
        }
        cx2 = p3x;
        cy2 = p3y;
        break;
    }
    return this._bbox = Object.freeze(bbox);
  }
  /**
  * Applies a mapping function to each point in the path.
  * @param {function} fn
  * @return {Path}
  */
  mapPoints(fn) {
    let path3 = new _$f43aec954cdfdf21$export$2e2bcd8739ae039();
    for (let c6 of this.commands) {
      let args = [];
      for (let i5 = 0; i5 < c6.args.length; i5 += 2) {
        let [x, y3] = fn(c6.args[i5], c6.args[i5 + 1]);
        args.push(x, y3);
      }
      path3[c6.command](...args);
    }
    return path3;
  }
  /**
  * Transforms the path by the given matrix.
  */
  transform(m0, m1, m22, m3, m4, m5) {
    return this.mapPoints((x, y3) => {
      const tx = m0 * x + m22 * y3 + m4;
      const ty = m1 * x + m3 * y3 + m5;
      return [
        tx,
        ty
      ];
    });
  }
  /**
  * Translates the path by the given offset.
  */
  translate(x, y3) {
    return this.transform(1, 0, 0, 1, x, y3);
  }
  /**
  * Rotates the path by the given angle (in radians).
  */
  rotate(angle) {
    let cos = Math.cos(angle);
    let sin = Math.sin(angle);
    return this.transform(cos, sin, -sin, cos, 0, 0);
  }
  /**
  * Scales the path.
  */
  scale(scaleX, scaleY = scaleX) {
    return this.transform(scaleX, 0, 0, scaleY, 0, 0);
  }
  constructor() {
    this.commands = [];
    this._bbox = null;
    this._cbox = null;
  }
};
for (let command of [
  "moveTo",
  "lineTo",
  "quadraticCurveTo",
  "bezierCurveTo",
  "closePath"
]) $f43aec954cdfdf21$export$2e2bcd8739ae039.prototype[command] = function(...args) {
  this._bbox = this._cbox = null;
  this.commands.push({
    command,
    args
  });
  return this;
};
var $7713b9b7b438dff8$export$2e2bcd8739ae039 = [
  ".notdef",
  ".null",
  "nonmarkingreturn",
  "space",
  "exclam",
  "quotedbl",
  "numbersign",
  "dollar",
  "percent",
  "ampersand",
  "quotesingle",
  "parenleft",
  "parenright",
  "asterisk",
  "plus",
  "comma",
  "hyphen",
  "period",
  "slash",
  "zero",
  "one",
  "two",
  "three",
  "four",
  "five",
  "six",
  "seven",
  "eight",
  "nine",
  "colon",
  "semicolon",
  "less",
  "equal",
  "greater",
  "question",
  "at",
  "A",
  "B",
  "C",
  "D",
  "E",
  "F",
  "G",
  "H",
  "I",
  "J",
  "K",
  "L",
  "M",
  "N",
  "O",
  "P",
  "Q",
  "R",
  "S",
  "T",
  "U",
  "V",
  "W",
  "X",
  "Y",
  "Z",
  "bracketleft",
  "backslash",
  "bracketright",
  "asciicircum",
  "underscore",
  "grave",
  "a",
  "b",
  "c",
  "d",
  "e",
  "f",
  "g",
  "h",
  "i",
  "j",
  "k",
  "l",
  "m",
  "n",
  "o",
  "p",
  "q",
  "r",
  "s",
  "t",
  "u",
  "v",
  "w",
  "x",
  "y",
  "z",
  "braceleft",
  "bar",
  "braceright",
  "asciitilde",
  "Adieresis",
  "Aring",
  "Ccedilla",
  "Eacute",
  "Ntilde",
  "Odieresis",
  "Udieresis",
  "aacute",
  "agrave",
  "acircumflex",
  "adieresis",
  "atilde",
  "aring",
  "ccedilla",
  "eacute",
  "egrave",
  "ecircumflex",
  "edieresis",
  "iacute",
  "igrave",
  "icircumflex",
  "idieresis",
  "ntilde",
  "oacute",
  "ograve",
  "ocircumflex",
  "odieresis",
  "otilde",
  "uacute",
  "ugrave",
  "ucircumflex",
  "udieresis",
  "dagger",
  "degree",
  "cent",
  "sterling",
  "section",
  "bullet",
  "paragraph",
  "germandbls",
  "registered",
  "copyright",
  "trademark",
  "acute",
  "dieresis",
  "notequal",
  "AE",
  "Oslash",
  "infinity",
  "plusminus",
  "lessequal",
  "greaterequal",
  "yen",
  "mu",
  "partialdiff",
  "summation",
  "product",
  "pi",
  "integral",
  "ordfeminine",
  "ordmasculine",
  "Omega",
  "ae",
  "oslash",
  "questiondown",
  "exclamdown",
  "logicalnot",
  "radical",
  "florin",
  "approxequal",
  "Delta",
  "guillemotleft",
  "guillemotright",
  "ellipsis",
  "nonbreakingspace",
  "Agrave",
  "Atilde",
  "Otilde",
  "OE",
  "oe",
  "endash",
  "emdash",
  "quotedblleft",
  "quotedblright",
  "quoteleft",
  "quoteright",
  "divide",
  "lozenge",
  "ydieresis",
  "Ydieresis",
  "fraction",
  "currency",
  "guilsinglleft",
  "guilsinglright",
  "fi",
  "fl",
  "daggerdbl",
  "periodcentered",
  "quotesinglbase",
  "quotedblbase",
  "perthousand",
  "Acircumflex",
  "Ecircumflex",
  "Aacute",
  "Edieresis",
  "Egrave",
  "Iacute",
  "Icircumflex",
  "Idieresis",
  "Igrave",
  "Oacute",
  "Ocircumflex",
  "apple",
  "Ograve",
  "Uacute",
  "Ucircumflex",
  "Ugrave",
  "dotlessi",
  "circumflex",
  "tilde",
  "macron",
  "breve",
  "dotaccent",
  "ring",
  "cedilla",
  "hungarumlaut",
  "ogonek",
  "caron",
  "Lslash",
  "lslash",
  "Scaron",
  "scaron",
  "Zcaron",
  "zcaron",
  "brokenbar",
  "Eth",
  "eth",
  "Yacute",
  "yacute",
  "Thorn",
  "thorn",
  "minus",
  "multiply",
  "onesuperior",
  "twosuperior",
  "threesuperior",
  "onehalf",
  "onequarter",
  "threequarters",
  "franc",
  "Gbreve",
  "gbreve",
  "Idotaccent",
  "Scedilla",
  "scedilla",
  "Cacute",
  "cacute",
  "Ccaron",
  "ccaron",
  "dcroat"
];
var $f92906be28e61769$export$2e2bcd8739ae039 = class {
  _getPath() {
    return new (0, $f43aec954cdfdf21$export$2e2bcd8739ae039)();
  }
  _getCBox() {
    return this.path.cbox;
  }
  _getBBox() {
    return this.path.bbox;
  }
  _getTableMetrics(table) {
    if (this.id < table.metrics.length) return table.metrics.get(this.id);
    let metric = table.metrics.get(table.metrics.length - 1);
    let res = {
      advance: metric ? metric.advance : 0,
      bearing: table.bearings.get(this.id - table.metrics.length) || 0
    };
    return res;
  }
  _getMetrics(cbox) {
    if (this._metrics) return this._metrics;
    let { advance: advanceWidth2, bearing: leftBearing } = this._getTableMetrics(this._font.hmtx);
    if (this._font.vmtx) var { advance: advanceHeight, bearing: topBearing } = this._getTableMetrics(this._font.vmtx);
    else {
      let os2;
      if (typeof cbox === "undefined" || cbox === null) ({ cbox } = this);
      if ((os2 = this._font["OS/2"]) && os2.version > 0) {
        var advanceHeight = Math.abs(os2.typoAscender - os2.typoDescender);
        var topBearing = os2.typoAscender - cbox.maxY;
      } else {
        let { hhea } = this._font;
        var advanceHeight = Math.abs(hhea.ascent - hhea.descent);
        var topBearing = hhea.ascent - cbox.maxY;
      }
    }
    if (this._font._variationProcessor && this._font.HVAR) advanceWidth2 += this._font._variationProcessor.getAdvanceAdjustment(this.id, this._font.HVAR);
    return this._metrics = {
      advanceWidth: advanceWidth2,
      advanceHeight,
      leftBearing,
      topBearing
    };
  }
  /**
  * The glyph’s control box.
  * This is often the same as the bounding box, but is faster to compute.
  * Because of the way bezier curves are defined, some of the control points
  * can be outside of the bounding box. Where `bbox` takes this into account,
  * `cbox` does not. Thus, cbox is less accurate, but faster to compute.
  * See [here](http://www.freetype.org/freetype2/docs/glyphs/glyphs-6.html#section-2)
  * for a more detailed description.
  *
  * @type {BBox}
  */
  get cbox() {
    return this._getCBox();
  }
  /**
  * The glyph’s bounding box, i.e. the rectangle that encloses the
  * glyph outline as tightly as possible.
  * @type {BBox}
  */
  get bbox() {
    return this._getBBox();
  }
  /**
  * A vector Path object representing the glyph outline.
  * @type {Path}
  */
  get path() {
    return this._getPath();
  }
  /**
  * Returns a path scaled to the given font size.
  * @param {number} size
  * @return {Path}
  */
  getScaledPath(size) {
    let scale2 = 1 / this._font.unitsPerEm * size;
    return this.path.scale(scale2);
  }
  /**
  * The glyph's advance width.
  * @type {number}
  */
  get advanceWidth() {
    return this._getMetrics().advanceWidth;
  }
  /**
  * The glyph's advance height.
  * @type {number}
  */
  get advanceHeight() {
    return this._getMetrics().advanceHeight;
  }
  get ligatureCaretPositions() {
  }
  _getName() {
    let { post } = this._font;
    if (!post) return null;
    switch (post.version) {
      case 1:
        return (0, $7713b9b7b438dff8$export$2e2bcd8739ae039)[this.id];
      case 2:
        let id = post.glyphNameIndex[this.id];
        if (id < (0, $7713b9b7b438dff8$export$2e2bcd8739ae039).length) return (0, $7713b9b7b438dff8$export$2e2bcd8739ae039)[id];
        return post.names[id - (0, $7713b9b7b438dff8$export$2e2bcd8739ae039).length];
      case 2.5:
        return (0, $7713b9b7b438dff8$export$2e2bcd8739ae039)[this.id + post.offsets[this.id]];
      case 4:
        return String.fromCharCode(post.map[this.id]);
    }
  }
  /**
  * The glyph's name
  * @type {string}
  */
  get name() {
    return this._getName();
  }
  /**
  * Renders the glyph to the given graphics context, at the specified font size.
  * @param {CanvasRenderingContext2d} ctx
  * @param {number} size
  */
  render(ctx, size) {
    ctx.save();
    let scale2 = 1 / this._font.head.unitsPerEm * size;
    ctx.scale(scale2, scale2);
    let fn = this.path.toFunction();
    fn(ctx);
    ctx.fill();
    ctx.restore();
  }
  constructor(id, codePoints, font) {
    this.id = id;
    this.codePoints = codePoints;
    this._font = font;
    this.isMark = this.codePoints.length > 0 && this.codePoints.every((0, $747425b437e121da$export$e33ad6871e762338));
    this.isLigature = this.codePoints.length > 1;
  }
};
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $f92906be28e61769$export$2e2bcd8739ae039.prototype, "cbox", null);
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $f92906be28e61769$export$2e2bcd8739ae039.prototype, "bbox", null);
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $f92906be28e61769$export$2e2bcd8739ae039.prototype, "path", null);
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $f92906be28e61769$export$2e2bcd8739ae039.prototype, "advanceWidth", null);
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $f92906be28e61769$export$2e2bcd8739ae039.prototype, "advanceHeight", null);
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $f92906be28e61769$export$2e2bcd8739ae039.prototype, "name", null);
var $69aac16029968692$var$GlyfHeader = new Struct({
  numberOfContours: int16,
  xMin: int16,
  yMin: int16,
  xMax: int16,
  yMax: int16
});
var $69aac16029968692$var$ON_CURVE = 1;
var $69aac16029968692$var$X_SHORT_VECTOR = 2;
var $69aac16029968692$var$Y_SHORT_VECTOR = 4;
var $69aac16029968692$var$REPEAT = 8;
var $69aac16029968692$var$SAME_X = 16;
var $69aac16029968692$var$SAME_Y = 32;
var $69aac16029968692$var$ARG_1_AND_2_ARE_WORDS = 1;
var $69aac16029968692$var$WE_HAVE_A_SCALE = 8;
var $69aac16029968692$var$MORE_COMPONENTS = 32;
var $69aac16029968692$var$WE_HAVE_AN_X_AND_Y_SCALE = 64;
var $69aac16029968692$var$WE_HAVE_A_TWO_BY_TWO = 128;
var $69aac16029968692$var$WE_HAVE_INSTRUCTIONS = 256;
var $69aac16029968692$export$baf26146a414f24a = class _$69aac16029968692$export$baf26146a414f24a {
  copy() {
    return new _$69aac16029968692$export$baf26146a414f24a(this.onCurve, this.endContour, this.x, this.y);
  }
  constructor(onCurve, endContour, x = 0, y3 = 0) {
    this.onCurve = onCurve;
    this.endContour = endContour;
    this.x = x;
    this.y = y3;
  }
};
var $69aac16029968692$var$Component = class {
  constructor(glyphID, dx, dy) {
    this.glyphID = glyphID;
    this.dx = dx;
    this.dy = dy;
    this.pos = 0;
    this.scaleX = this.scaleY = 1;
    this.scale01 = this.scale10 = 0;
  }
};
var $69aac16029968692$export$2e2bcd8739ae039 = class extends (0, $f92906be28e61769$export$2e2bcd8739ae039) {
  // Parses just the glyph header and returns the bounding box
  _getCBox(internal) {
    if (this._font._variationProcessor && !internal) return this.path.cbox;
    let stream7 = this._font._getTableStream("glyf");
    stream7.pos += this._font.loca.offsets[this.id];
    let glyph = $69aac16029968692$var$GlyfHeader.decode(stream7);
    let cbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039)(glyph.xMin, glyph.yMin, glyph.xMax, glyph.yMax);
    return Object.freeze(cbox);
  }
  // Parses a single glyph coordinate
  _parseGlyphCoord(stream7, prev, short, same) {
    if (short) {
      var val = stream7.readUInt8();
      if (!same) val = -val;
      val += prev;
    } else if (same) var val = prev;
    else var val = prev + stream7.readInt16BE();
    return val;
  }
  // Decodes the glyph data into points for simple glyphs,
  // or components for composite glyphs
  _decode() {
    let glyfPos = this._font.loca.offsets[this.id];
    let nextPos = this._font.loca.offsets[this.id + 1];
    if (glyfPos === nextPos) return null;
    let stream7 = this._font._getTableStream("glyf");
    stream7.pos += glyfPos;
    let startPos = stream7.pos;
    let glyph = $69aac16029968692$var$GlyfHeader.decode(stream7);
    if (glyph.numberOfContours > 0) this._decodeSimple(glyph, stream7);
    else if (glyph.numberOfContours < 0) this._decodeComposite(glyph, stream7, startPos);
    return glyph;
  }
  _decodeSimple(glyph, stream7) {
    glyph.points = [];
    let endPtsOfContours = new ArrayT(uint16, glyph.numberOfContours).decode(stream7);
    glyph.instructions = new ArrayT(uint8, uint16).decode(stream7);
    let flags = [];
    let numCoords = endPtsOfContours[endPtsOfContours.length - 1] + 1;
    while (flags.length < numCoords) {
      var flag = stream7.readUInt8();
      flags.push(flag);
      if (flag & $69aac16029968692$var$REPEAT) {
        let count = stream7.readUInt8();
        for (let j = 0; j < count; j++) flags.push(flag);
      }
    }
    for (var i5 = 0; i5 < flags.length; i5++) {
      var flag = flags[i5];
      let point = new $69aac16029968692$export$baf26146a414f24a(!!(flag & $69aac16029968692$var$ON_CURVE), endPtsOfContours.indexOf(i5) >= 0, 0, 0);
      glyph.points.push(point);
    }
    let px2 = 0;
    for (var i5 = 0; i5 < flags.length; i5++) {
      var flag = flags[i5];
      glyph.points[i5].x = px2 = this._parseGlyphCoord(stream7, px2, flag & $69aac16029968692$var$X_SHORT_VECTOR, flag & $69aac16029968692$var$SAME_X);
    }
    let py2 = 0;
    for (var i5 = 0; i5 < flags.length; i5++) {
      var flag = flags[i5];
      glyph.points[i5].y = py2 = this._parseGlyphCoord(stream7, py2, flag & $69aac16029968692$var$Y_SHORT_VECTOR, flag & $69aac16029968692$var$SAME_Y);
    }
    if (this._font._variationProcessor) {
      let points = glyph.points.slice();
      points.push(...this._getPhantomPoints(glyph));
      this._font._variationProcessor.transformPoints(this.id, points);
      glyph.phantomPoints = points.slice(-4);
    }
    return;
  }
  _decodeComposite(glyph, stream7, offset2 = 0) {
    glyph.components = [];
    let haveInstructions = false;
    let flags = $69aac16029968692$var$MORE_COMPONENTS;
    while (flags & $69aac16029968692$var$MORE_COMPONENTS) {
      flags = stream7.readUInt16BE();
      let gPos = stream7.pos - offset2;
      let glyphID = stream7.readUInt16BE();
      if (!haveInstructions) haveInstructions = (flags & $69aac16029968692$var$WE_HAVE_INSTRUCTIONS) !== 0;
      if (flags & $69aac16029968692$var$ARG_1_AND_2_ARE_WORDS) {
        var dx = stream7.readInt16BE();
        var dy = stream7.readInt16BE();
      } else {
        var dx = stream7.readInt8();
        var dy = stream7.readInt8();
      }
      var component = new $69aac16029968692$var$Component(glyphID, dx, dy);
      component.pos = gPos;
      if (flags & $69aac16029968692$var$WE_HAVE_A_SCALE)
        component.scaleX = component.scaleY = (stream7.readUInt8() << 24 | stream7.readUInt8() << 16) / 1073741824;
      else if (flags & $69aac16029968692$var$WE_HAVE_AN_X_AND_Y_SCALE) {
        component.scaleX = (stream7.readUInt8() << 24 | stream7.readUInt8() << 16) / 1073741824;
        component.scaleY = (stream7.readUInt8() << 24 | stream7.readUInt8() << 16) / 1073741824;
      } else if (flags & $69aac16029968692$var$WE_HAVE_A_TWO_BY_TWO) {
        component.scaleX = (stream7.readUInt8() << 24 | stream7.readUInt8() << 16) / 1073741824;
        component.scale01 = (stream7.readUInt8() << 24 | stream7.readUInt8() << 16) / 1073741824;
        component.scale10 = (stream7.readUInt8() << 24 | stream7.readUInt8() << 16) / 1073741824;
        component.scaleY = (stream7.readUInt8() << 24 | stream7.readUInt8() << 16) / 1073741824;
      }
      glyph.components.push(component);
    }
    if (this._font._variationProcessor) {
      let points = [];
      for (let j = 0; j < glyph.components.length; j++) {
        var component = glyph.components[j];
        points.push(new $69aac16029968692$export$baf26146a414f24a(true, true, component.dx, component.dy));
      }
      points.push(...this._getPhantomPoints(glyph));
      this._font._variationProcessor.transformPoints(this.id, points);
      glyph.phantomPoints = points.splice(-4, 4);
      for (let i5 = 0; i5 < points.length; i5++) {
        let point = points[i5];
        glyph.components[i5].dx = point.x;
        glyph.components[i5].dy = point.y;
      }
    }
    return haveInstructions;
  }
  _getPhantomPoints(glyph) {
    let cbox = this._getCBox(true);
    if (this._metrics == null) this._metrics = (0, $f92906be28e61769$export$2e2bcd8739ae039).prototype._getMetrics.call(this, cbox);
    let { advanceWidth: advanceWidth2, advanceHeight, leftBearing, topBearing } = this._metrics;
    return [
      new $69aac16029968692$export$baf26146a414f24a(false, true, glyph.xMin - leftBearing, 0),
      new $69aac16029968692$export$baf26146a414f24a(false, true, glyph.xMin - leftBearing + advanceWidth2, 0),
      new $69aac16029968692$export$baf26146a414f24a(false, true, 0, glyph.yMax + topBearing),
      new $69aac16029968692$export$baf26146a414f24a(false, true, 0, glyph.yMax + topBearing + advanceHeight)
    ];
  }
  // Decodes font data, resolves composite glyphs, and returns an array of contours
  _getContours() {
    let glyph = this._decode();
    if (!glyph) return [];
    let points = [];
    if (glyph.numberOfContours < 0)
      for (let component of glyph.components) {
        let contours2 = this._font.getGlyph(component.glyphID)._getContours();
        for (let i5 = 0; i5 < contours2.length; i5++) {
          let contour = contours2[i5];
          for (let j = 0; j < contour.length; j++) {
            let point2 = contour[j];
            let x = point2.x * component.scaleX + point2.y * component.scale01 + component.dx;
            let y3 = point2.y * component.scaleY + point2.x * component.scale10 + component.dy;
            points.push(new $69aac16029968692$export$baf26146a414f24a(point2.onCurve, point2.endContour, x, y3));
          }
        }
      }
    else points = glyph.points || [];
    if (glyph.phantomPoints && !this._font.directory.tables.HVAR) {
      this._metrics.advanceWidth = glyph.phantomPoints[1].x - glyph.phantomPoints[0].x;
      this._metrics.advanceHeight = glyph.phantomPoints[3].y - glyph.phantomPoints[2].y;
      this._metrics.leftBearing = glyph.xMin - glyph.phantomPoints[0].x;
      this._metrics.topBearing = glyph.phantomPoints[2].y - glyph.yMax;
    }
    let contours = [];
    let cur = [];
    for (let k3 = 0; k3 < points.length; k3++) {
      var point = points[k3];
      cur.push(point);
      if (point.endContour) {
        contours.push(cur);
        cur = [];
      }
    }
    return contours;
  }
  _getMetrics() {
    if (this._metrics) return this._metrics;
    let cbox = this._getCBox(true);
    super._getMetrics(cbox);
    if (this._font._variationProcessor && !this._font.HVAR)
      this.path;
    return this._metrics;
  }
  // Converts contours to a Path object that can be rendered
  _getPath() {
    let contours = this._getContours();
    let path3 = new (0, $f43aec954cdfdf21$export$2e2bcd8739ae039)();
    for (let i5 = 0; i5 < contours.length; i5++) {
      let contour = contours[i5];
      let firstPt = contour[0];
      let lastPt = contour[contour.length - 1];
      let start2 = 0;
      if (firstPt.onCurve) {
        var curvePt = null;
        start2 = 1;
      } else {
        if (lastPt.onCurve)
          firstPt = lastPt;
        else
          firstPt = new $69aac16029968692$export$baf26146a414f24a(false, false, (firstPt.x + lastPt.x) / 2, (firstPt.y + lastPt.y) / 2);
        var curvePt = firstPt;
      }
      path3.moveTo(firstPt.x, firstPt.y);
      for (let j = start2; j < contour.length; j++) {
        let pt = contour[j];
        let prevPt = j === 0 ? firstPt : contour[j - 1];
        if (prevPt.onCurve && pt.onCurve) path3.lineTo(pt.x, pt.y);
        else if (prevPt.onCurve && !pt.onCurve) var curvePt = pt;
        else if (!prevPt.onCurve && !pt.onCurve) {
          let midX = (prevPt.x + pt.x) / 2;
          let midY = (prevPt.y + pt.y) / 2;
          path3.quadraticCurveTo(prevPt.x, prevPt.y, midX, midY);
          var curvePt = pt;
        } else if (!prevPt.onCurve && pt.onCurve) {
          path3.quadraticCurveTo(curvePt.x, curvePt.y, pt.x, pt.y);
          var curvePt = null;
        } else throw new Error("Unknown TTF path state");
      }
      if (curvePt) path3.quadraticCurveTo(curvePt.x, curvePt.y, firstPt.x, firstPt.y);
      path3.closePath();
    }
    return path3;
  }
  constructor(...args) {
    super(...args);
    (0, _define_property)(this, "type", "TTF");
  }
};
var $62cc5109c6101893$export$2e2bcd8739ae039 = class extends (0, $f92906be28e61769$export$2e2bcd8739ae039) {
  _getName() {
    if (this._font.CFF2) return super._getName();
    return this._font["CFF "].getGlyphName(this.id);
  }
  bias(s4) {
    if (s4.length < 1240) return 107;
    else if (s4.length < 33900) return 1131;
    else return 32768;
  }
  _getPath() {
    let cff = this._font.CFF2 || this._font["CFF "];
    let { stream: stream7 } = cff;
    let str = cff.topDict.CharStrings[this.id];
    let end2 = str.offset + str.length;
    stream7.pos = str.offset;
    let path3 = new (0, $f43aec954cdfdf21$export$2e2bcd8739ae039)();
    let stack = [];
    let trans = [];
    let width = null;
    let nStems = 0;
    let x = 0, y3 = 0;
    let usedGsubrs;
    let usedSubrs;
    let open = false;
    this._usedGsubrs = usedGsubrs = {};
    this._usedSubrs = usedSubrs = {};
    let gsubrs = cff.globalSubrIndex || [];
    let gsubrsBias = this.bias(gsubrs);
    let privateDict = cff.privateDictForGlyph(this.id) || {};
    let subrs = privateDict.Subrs || [];
    let subrsBias = this.bias(subrs);
    let vstore = cff.topDict.vstore && cff.topDict.vstore.itemVariationStore;
    let vsindex = privateDict.vsindex;
    let variationProcessor = this._font._variationProcessor;
    function checkWidth() {
      if (width == null) width = stack.shift() + privateDict.nominalWidthX;
    }
    function parseStems() {
      if (stack.length % 2 !== 0) checkWidth();
      nStems += stack.length >> 1;
      return stack.length = 0;
    }
    function moveTo(x2, y4) {
      if (open) path3.closePath();
      path3.moveTo(x2, y4);
      open = true;
    }
    let parse3 = function() {
      while (stream7.pos < end2) {
        let op = stream7.readUInt8();
        if (op < 32) {
          let index2, subr, phase;
          let c1x, c1y, c2x, c2y, c3x, c3y;
          let c4x, c4y, c5x, c5y, c6x, c6y;
          let pts;
          switch (op) {
            case 1:
            case 3:
            case 18:
            case 23:
              parseStems();
              break;
            case 4:
              if (stack.length > 1) checkWidth();
              y3 += stack.shift();
              moveTo(x, y3);
              break;
            case 5:
              while (stack.length >= 2) {
                x += stack.shift();
                y3 += stack.shift();
                path3.lineTo(x, y3);
              }
              break;
            case 6:
            case 7:
              phase = op === 6;
              while (stack.length >= 1) {
                if (phase) x += stack.shift();
                else y3 += stack.shift();
                path3.lineTo(x, y3);
                phase = !phase;
              }
              break;
            case 8:
              while (stack.length > 0) {
                c1x = x + stack.shift();
                c1y = y3 + stack.shift();
                c2x = c1x + stack.shift();
                c2y = c1y + stack.shift();
                x = c2x + stack.shift();
                y3 = c2y + stack.shift();
                path3.bezierCurveTo(c1x, c1y, c2x, c2y, x, y3);
              }
              break;
            case 10:
              index2 = stack.pop() + subrsBias;
              subr = subrs[index2];
              if (subr) {
                usedSubrs[index2] = true;
                let p3 = stream7.pos;
                let e4 = end2;
                stream7.pos = subr.offset;
                end2 = subr.offset + subr.length;
                parse3();
                stream7.pos = p3;
                end2 = e4;
              }
              break;
            case 11:
              if (cff.version >= 2) break;
              return;
            case 14:
              if (cff.version >= 2) break;
              if (stack.length > 0) checkWidth();
              if (open) {
                path3.closePath();
                open = false;
              }
              break;
            case 15:
              if (cff.version < 2) throw new Error("vsindex operator not supported in CFF v1");
              vsindex = stack.pop();
              break;
            case 16: {
              if (cff.version < 2) throw new Error("blend operator not supported in CFF v1");
              if (!variationProcessor) throw new Error("blend operator in non-variation font");
              let blendVector = variationProcessor.getBlendVector(vstore, vsindex);
              let numBlends = stack.pop();
              let numOperands = numBlends * blendVector.length;
              let delta = stack.length - numOperands;
              let base = delta - numBlends;
              for (let i5 = 0; i5 < numBlends; i5++) {
                let sum = stack[base + i5];
                for (let j = 0; j < blendVector.length; j++) sum += blendVector[j] * stack[delta++];
                stack[base + i5] = sum;
              }
              while (numOperands--) stack.pop();
              break;
            }
            case 19:
            case 20:
              parseStems();
              stream7.pos += nStems + 7 >> 3;
              break;
            case 21:
              if (stack.length > 2) checkWidth();
              x += stack.shift();
              y3 += stack.shift();
              moveTo(x, y3);
              break;
            case 22:
              if (stack.length > 1) checkWidth();
              x += stack.shift();
              moveTo(x, y3);
              break;
            case 24:
              while (stack.length >= 8) {
                c1x = x + stack.shift();
                c1y = y3 + stack.shift();
                c2x = c1x + stack.shift();
                c2y = c1y + stack.shift();
                x = c2x + stack.shift();
                y3 = c2y + stack.shift();
                path3.bezierCurveTo(c1x, c1y, c2x, c2y, x, y3);
              }
              x += stack.shift();
              y3 += stack.shift();
              path3.lineTo(x, y3);
              break;
            case 25:
              while (stack.length >= 8) {
                x += stack.shift();
                y3 += stack.shift();
                path3.lineTo(x, y3);
              }
              c1x = x + stack.shift();
              c1y = y3 + stack.shift();
              c2x = c1x + stack.shift();
              c2y = c1y + stack.shift();
              x = c2x + stack.shift();
              y3 = c2y + stack.shift();
              path3.bezierCurveTo(c1x, c1y, c2x, c2y, x, y3);
              break;
            case 26:
              if (stack.length % 2) x += stack.shift();
              while (stack.length >= 4) {
                c1x = x;
                c1y = y3 + stack.shift();
                c2x = c1x + stack.shift();
                c2y = c1y + stack.shift();
                x = c2x;
                y3 = c2y + stack.shift();
                path3.bezierCurveTo(c1x, c1y, c2x, c2y, x, y3);
              }
              break;
            case 27:
              if (stack.length % 2) y3 += stack.shift();
              while (stack.length >= 4) {
                c1x = x + stack.shift();
                c1y = y3;
                c2x = c1x + stack.shift();
                c2y = c1y + stack.shift();
                x = c2x + stack.shift();
                y3 = c2y;
                path3.bezierCurveTo(c1x, c1y, c2x, c2y, x, y3);
              }
              break;
            case 28:
              stack.push(stream7.readInt16BE());
              break;
            case 29:
              index2 = stack.pop() + gsubrsBias;
              subr = gsubrs[index2];
              if (subr) {
                usedGsubrs[index2] = true;
                let p3 = stream7.pos;
                let e4 = end2;
                stream7.pos = subr.offset;
                end2 = subr.offset + subr.length;
                parse3();
                stream7.pos = p3;
                end2 = e4;
              }
              break;
            case 30:
            case 31:
              phase = op === 31;
              while (stack.length >= 4) {
                if (phase) {
                  c1x = x + stack.shift();
                  c1y = y3;
                  c2x = c1x + stack.shift();
                  c2y = c1y + stack.shift();
                  y3 = c2y + stack.shift();
                  x = c2x + (stack.length === 1 ? stack.shift() : 0);
                } else {
                  c1x = x;
                  c1y = y3 + stack.shift();
                  c2x = c1x + stack.shift();
                  c2y = c1y + stack.shift();
                  x = c2x + stack.shift();
                  y3 = c2y + (stack.length === 1 ? stack.shift() : 0);
                }
                path3.bezierCurveTo(c1x, c1y, c2x, c2y, x, y3);
                phase = !phase;
              }
              break;
            case 12:
              op = stream7.readUInt8();
              switch (op) {
                case 3:
                  let a5 = stack.pop();
                  let b3 = stack.pop();
                  stack.push(a5 && b3 ? 1 : 0);
                  break;
                case 4:
                  a5 = stack.pop();
                  b3 = stack.pop();
                  stack.push(a5 || b3 ? 1 : 0);
                  break;
                case 5:
                  a5 = stack.pop();
                  stack.push(a5 ? 0 : 1);
                  break;
                case 9:
                  a5 = stack.pop();
                  stack.push(Math.abs(a5));
                  break;
                case 10:
                  a5 = stack.pop();
                  b3 = stack.pop();
                  stack.push(a5 + b3);
                  break;
                case 11:
                  a5 = stack.pop();
                  b3 = stack.pop();
                  stack.push(a5 - b3);
                  break;
                case 12:
                  a5 = stack.pop();
                  b3 = stack.pop();
                  stack.push(a5 / b3);
                  break;
                case 14:
                  a5 = stack.pop();
                  stack.push(-a5);
                  break;
                case 15:
                  a5 = stack.pop();
                  b3 = stack.pop();
                  stack.push(a5 === b3 ? 1 : 0);
                  break;
                case 18:
                  stack.pop();
                  break;
                case 20:
                  let val = stack.pop();
                  let idx = stack.pop();
                  trans[idx] = val;
                  break;
                case 21:
                  idx = stack.pop();
                  stack.push(trans[idx] || 0);
                  break;
                case 22:
                  let s1 = stack.pop();
                  let s22 = stack.pop();
                  let v1 = stack.pop();
                  let v22 = stack.pop();
                  stack.push(v1 <= v22 ? s1 : s22);
                  break;
                case 23:
                  stack.push(Math.random());
                  break;
                case 24:
                  a5 = stack.pop();
                  b3 = stack.pop();
                  stack.push(a5 * b3);
                  break;
                case 26:
                  a5 = stack.pop();
                  stack.push(Math.sqrt(a5));
                  break;
                case 27:
                  a5 = stack.pop();
                  stack.push(a5, a5);
                  break;
                case 28:
                  a5 = stack.pop();
                  b3 = stack.pop();
                  stack.push(b3, a5);
                  break;
                case 29:
                  idx = stack.pop();
                  if (idx < 0) idx = 0;
                  else if (idx > stack.length - 1) idx = stack.length - 1;
                  stack.push(stack[idx]);
                  break;
                case 30:
                  let n6 = stack.pop();
                  let j = stack.pop();
                  if (j >= 0) while (j > 0) {
                    var t4 = stack[n6 - 1];
                    for (let i5 = n6 - 2; i5 >= 0; i5--) stack[i5 + 1] = stack[i5];
                    stack[0] = t4;
                    j--;
                  }
                  else while (j < 0) {
                    var t4 = stack[0];
                    for (let i5 = 0; i5 <= n6; i5++) stack[i5] = stack[i5 + 1];
                    stack[n6 - 1] = t4;
                    j++;
                  }
                  break;
                case 34:
                  c1x = x + stack.shift();
                  c1y = y3;
                  c2x = c1x + stack.shift();
                  c2y = c1y + stack.shift();
                  c3x = c2x + stack.shift();
                  c3y = c2y;
                  c4x = c3x + stack.shift();
                  c4y = c3y;
                  c5x = c4x + stack.shift();
                  c5y = c4y;
                  c6x = c5x + stack.shift();
                  c6y = c5y;
                  x = c6x;
                  y3 = c6y;
                  path3.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);
                  path3.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);
                  break;
                case 35:
                  pts = [];
                  for (let i5 = 0; i5 <= 5; i5++) {
                    x += stack.shift();
                    y3 += stack.shift();
                    pts.push(x, y3);
                  }
                  path3.bezierCurveTo(...pts.slice(0, 6));
                  path3.bezierCurveTo(...pts.slice(6));
                  stack.shift();
                  break;
                case 36:
                  c1x = x + stack.shift();
                  c1y = y3 + stack.shift();
                  c2x = c1x + stack.shift();
                  c2y = c1y + stack.shift();
                  c3x = c2x + stack.shift();
                  c3y = c2y;
                  c4x = c3x + stack.shift();
                  c4y = c3y;
                  c5x = c4x + stack.shift();
                  c5y = c4y + stack.shift();
                  c6x = c5x + stack.shift();
                  c6y = c5y;
                  x = c6x;
                  y3 = c6y;
                  path3.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);
                  path3.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);
                  break;
                case 37:
                  let startx = x;
                  let starty = y3;
                  pts = [];
                  for (let i5 = 0; i5 <= 4; i5++) {
                    x += stack.shift();
                    y3 += stack.shift();
                    pts.push(x, y3);
                  }
                  if (Math.abs(x - startx) > Math.abs(y3 - starty)) {
                    x += stack.shift();
                    y3 = starty;
                  } else {
                    x = startx;
                    y3 += stack.shift();
                  }
                  pts.push(x, y3);
                  path3.bezierCurveTo(...pts.slice(0, 6));
                  path3.bezierCurveTo(...pts.slice(6));
                  break;
                default:
                  throw new Error(`Unknown op: 12 ${op}`);
              }
              break;
            default:
              throw new Error(`Unknown op: ${op}`);
          }
        } else if (op < 247) stack.push(op - 139);
        else if (op < 251) {
          var b1 = stream7.readUInt8();
          stack.push((op - 247) * 256 + b1 + 108);
        } else if (op < 255) {
          var b1 = stream7.readUInt8();
          stack.push(-(op - 251) * 256 - b1 - 108);
        } else stack.push(stream7.readInt32BE() / 65536);
      }
    };
    parse3();
    if (open) path3.closePath();
    return path3;
  }
  constructor(...args) {
    super(...args);
    (0, _define_property)(this, "type", "CFF");
  }
};
var $25d8f049c222084c$var$SBIXImage = new Struct({
  originX: uint16,
  originY: uint16,
  type: new StringT(4),
  data: new BufferT((t4) => t4.parent.buflen - t4._currentOffset)
});
var $25d8f049c222084c$export$2e2bcd8739ae039 = class extends (0, $69aac16029968692$export$2e2bcd8739ae039) {
  /**
  * Returns an object representing a glyph image at the given point size.
  * The object has a data property with a Buffer containing the actual image data,
  * along with the image type, and origin.
  *
  * @param {number} size
  * @return {object}
  */
  getImageForSize(size) {
    for (let i5 = 0; i5 < this._font.sbix.imageTables.length; i5++) {
      var table = this._font.sbix.imageTables[i5];
      if (table.ppem >= size) break;
    }
    let offsets = table.imageOffsets;
    let start2 = offsets[this.id];
    let end2 = offsets[this.id + 1];
    if (start2 === end2) return null;
    this._font.stream.pos = start2;
    return $25d8f049c222084c$var$SBIXImage.decode(this._font.stream, {
      buflen: end2 - start2
    });
  }
  render(ctx, size) {
    let img = this.getImageForSize(size);
    if (img != null) {
      let scale2 = size / this._font.unitsPerEm;
      ctx.image(img.data, {
        height: size,
        x: img.originX,
        y: (this.bbox.minY - img.originY) * scale2
      });
    }
    if (this._font.sbix.flags.renderOutlines) super.render(ctx, size);
  }
  constructor(...args) {
    super(...args);
    (0, _define_property)(this, "type", "SBIX");
  }
};
var $0d411f0165859681$var$COLRLayer = class {
  constructor(glyph, color) {
    this.glyph = glyph;
    this.color = color;
  }
};
var $0d411f0165859681$export$2e2bcd8739ae039 = class extends (0, $f92906be28e61769$export$2e2bcd8739ae039) {
  _getBBox() {
    let bbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039)();
    for (let i5 = 0; i5 < this.layers.length; i5++) {
      let layer = this.layers[i5];
      let b3 = layer.glyph.bbox;
      bbox.addPoint(b3.minX, b3.minY);
      bbox.addPoint(b3.maxX, b3.maxY);
    }
    return bbox;
  }
  /**
  * Returns an array of objects containing the glyph and color for
  * each layer in the composite color glyph.
  * @type {object[]}
  */
  get layers() {
    let cpal = this._font.CPAL;
    let colr = this._font.COLR;
    let low = 0;
    let high = colr.baseGlyphRecord.length - 1;
    while (low <= high) {
      let mid = low + high >> 1;
      var rec = colr.baseGlyphRecord[mid];
      if (this.id < rec.gid) high = mid - 1;
      else if (this.id > rec.gid) low = mid + 1;
      else {
        var baseLayer = rec;
        break;
      }
    }
    if (baseLayer == null) {
      var g3 = this._font._getBaseGlyph(this.id);
      var color = {
        red: 0,
        green: 0,
        blue: 0,
        alpha: 255
      };
      return [
        new $0d411f0165859681$var$COLRLayer(g3, color)
      ];
    }
    let layers = [];
    for (let i5 = baseLayer.firstLayerIndex; i5 < baseLayer.firstLayerIndex + baseLayer.numLayers; i5++) {
      var rec = colr.layerRecords[i5];
      var color = cpal.colorRecords[rec.paletteIndex];
      var g3 = this._font._getBaseGlyph(rec.gid);
      layers.push(new $0d411f0165859681$var$COLRLayer(g3, color));
    }
    return layers;
  }
  render(ctx, size) {
    for (let { glyph, color } of this.layers) {
      ctx.fillColor([
        color.red,
        color.green,
        color.blue
      ], color.alpha / 255 * 100);
      glyph.render(ctx, size);
    }
    return;
  }
  constructor(...args) {
    super(...args);
    (0, _define_property)(this, "type", "COLR");
  }
};
var $0bb840cac04e911b$var$TUPLES_SHARE_POINT_NUMBERS = 32768;
var $0bb840cac04e911b$var$TUPLE_COUNT_MASK = 4095;
var $0bb840cac04e911b$var$EMBEDDED_TUPLE_COORD = 32768;
var $0bb840cac04e911b$var$INTERMEDIATE_TUPLE = 16384;
var $0bb840cac04e911b$var$PRIVATE_POINT_NUMBERS = 8192;
var $0bb840cac04e911b$var$TUPLE_INDEX_MASK = 4095;
var $0bb840cac04e911b$var$POINTS_ARE_WORDS = 128;
var $0bb840cac04e911b$var$POINT_RUN_COUNT_MASK = 127;
var $0bb840cac04e911b$var$DELTAS_ARE_ZERO = 128;
var $0bb840cac04e911b$var$DELTAS_ARE_WORDS = 64;
var $0bb840cac04e911b$var$DELTA_RUN_COUNT_MASK = 63;
var $0bb840cac04e911b$export$2e2bcd8739ae039 = class {
  normalizeCoords(coords) {
    let normalized = [];
    for (var i5 = 0; i5 < this.font.fvar.axis.length; i5++) {
      let axis = this.font.fvar.axis[i5];
      if (coords[i5] < axis.defaultValue) normalized.push((coords[i5] - axis.defaultValue + Number.EPSILON) / (axis.defaultValue - axis.minValue + Number.EPSILON));
      else normalized.push((coords[i5] - axis.defaultValue + Number.EPSILON) / (axis.maxValue - axis.defaultValue + Number.EPSILON));
    }
    if (this.font.avar) for (var i5 = 0; i5 < this.font.avar.segment.length; i5++) {
      let segment = this.font.avar.segment[i5];
      for (let j = 0; j < segment.correspondence.length; j++) {
        let pair = segment.correspondence[j];
        if (j >= 1 && normalized[i5] < pair.fromCoord) {
          let prev = segment.correspondence[j - 1];
          normalized[i5] = ((normalized[i5] - prev.fromCoord) * (pair.toCoord - prev.toCoord) + Number.EPSILON) / (pair.fromCoord - prev.fromCoord + Number.EPSILON) + prev.toCoord;
          break;
        }
      }
    }
    return normalized;
  }
  transformPoints(gid, glyphPoints) {
    if (!this.font.fvar || !this.font.gvar) return;
    let { gvar } = this.font;
    if (gid >= gvar.glyphCount) return;
    let offset2 = gvar.offsets[gid];
    if (offset2 === gvar.offsets[gid + 1]) return;
    let { stream: stream7 } = this.font;
    stream7.pos = offset2;
    if (stream7.pos >= stream7.length) return;
    let tupleCount = stream7.readUInt16BE();
    let offsetToData = offset2 + stream7.readUInt16BE();
    if (tupleCount & $0bb840cac04e911b$var$TUPLES_SHARE_POINT_NUMBERS) {
      var here = stream7.pos;
      stream7.pos = offsetToData;
      var sharedPoints = this.decodePoints();
      offsetToData = stream7.pos;
      stream7.pos = here;
    }
    let origPoints = glyphPoints.map((pt) => pt.copy());
    tupleCount &= $0bb840cac04e911b$var$TUPLE_COUNT_MASK;
    for (let i5 = 0; i5 < tupleCount; i5++) {
      let tupleDataSize = stream7.readUInt16BE();
      let tupleIndex = stream7.readUInt16BE();
      if (tupleIndex & $0bb840cac04e911b$var$EMBEDDED_TUPLE_COORD) {
        var tupleCoords = [];
        for (let a5 = 0; a5 < gvar.axisCount; a5++) tupleCoords.push(stream7.readInt16BE() / 16384);
      } else {
        if ((tupleIndex & $0bb840cac04e911b$var$TUPLE_INDEX_MASK) >= gvar.globalCoordCount) throw new Error("Invalid gvar table");
        var tupleCoords = gvar.globalCoords[tupleIndex & $0bb840cac04e911b$var$TUPLE_INDEX_MASK];
      }
      if (tupleIndex & $0bb840cac04e911b$var$INTERMEDIATE_TUPLE) {
        var startCoords = [];
        for (let a5 = 0; a5 < gvar.axisCount; a5++) startCoords.push(stream7.readInt16BE() / 16384);
        var endCoords = [];
        for (let a5 = 0; a5 < gvar.axisCount; a5++) endCoords.push(stream7.readInt16BE() / 16384);
      }
      let factor2 = this.tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords);
      if (factor2 === 0) {
        offsetToData += tupleDataSize;
        continue;
      }
      var here = stream7.pos;
      stream7.pos = offsetToData;
      if (tupleIndex & $0bb840cac04e911b$var$PRIVATE_POINT_NUMBERS) var points = this.decodePoints();
      else var points = sharedPoints;
      let nPoints = points.length === 0 ? glyphPoints.length : points.length;
      let xDeltas = this.decodeDeltas(nPoints);
      let yDeltas = this.decodeDeltas(nPoints);
      if (points.length === 0) for (let i6 = 0; i6 < glyphPoints.length; i6++) {
        var point = glyphPoints[i6];
        point.x += Math.round(xDeltas[i6] * factor2);
        point.y += Math.round(yDeltas[i6] * factor2);
      }
      else {
        let outPoints = origPoints.map((pt) => pt.copy());
        let hasDelta = glyphPoints.map(() => false);
        for (let i6 = 0; i6 < points.length; i6++) {
          let idx = points[i6];
          if (idx < glyphPoints.length) {
            let point2 = outPoints[idx];
            hasDelta[idx] = true;
            point2.x += xDeltas[i6] * factor2;
            point2.y += yDeltas[i6] * factor2;
          }
        }
        this.interpolateMissingDeltas(outPoints, origPoints, hasDelta);
        for (let i6 = 0; i6 < glyphPoints.length; i6++) {
          let deltaX = outPoints[i6].x - origPoints[i6].x;
          let deltaY = outPoints[i6].y - origPoints[i6].y;
          glyphPoints[i6].x = Math.round(glyphPoints[i6].x + deltaX);
          glyphPoints[i6].y = Math.round(glyphPoints[i6].y + deltaY);
        }
      }
      offsetToData += tupleDataSize;
      stream7.pos = here;
    }
  }
  decodePoints() {
    let stream7 = this.font.stream;
    let count = stream7.readUInt8();
    if (count & $0bb840cac04e911b$var$POINTS_ARE_WORDS) count = (count & $0bb840cac04e911b$var$POINT_RUN_COUNT_MASK) << 8 | stream7.readUInt8();
    let points = new Uint16Array(count);
    let i5 = 0;
    let point = 0;
    while (i5 < count) {
      let run = stream7.readUInt8();
      let runCount = (run & $0bb840cac04e911b$var$POINT_RUN_COUNT_MASK) + 1;
      let fn = run & $0bb840cac04e911b$var$POINTS_ARE_WORDS ? stream7.readUInt16 : stream7.readUInt8;
      for (let j = 0; j < runCount && i5 < count; j++) {
        point += fn.call(stream7);
        points[i5++] = point;
      }
    }
    return points;
  }
  decodeDeltas(count) {
    let stream7 = this.font.stream;
    let i5 = 0;
    let deltas = new Int16Array(count);
    while (i5 < count) {
      let run = stream7.readUInt8();
      let runCount = (run & $0bb840cac04e911b$var$DELTA_RUN_COUNT_MASK) + 1;
      if (run & $0bb840cac04e911b$var$DELTAS_ARE_ZERO) i5 += runCount;
      else {
        let fn = run & $0bb840cac04e911b$var$DELTAS_ARE_WORDS ? stream7.readInt16BE : stream7.readInt8;
        for (let j = 0; j < runCount && i5 < count; j++) deltas[i5++] = fn.call(stream7);
      }
    }
    return deltas;
  }
  tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords) {
    let normalized = this.normalizedCoords;
    let { gvar } = this.font;
    let factor2 = 1;
    for (let i5 = 0; i5 < gvar.axisCount; i5++) {
      if (tupleCoords[i5] === 0) continue;
      if (normalized[i5] === 0) return 0;
      if ((tupleIndex & $0bb840cac04e911b$var$INTERMEDIATE_TUPLE) === 0) {
        if (normalized[i5] < Math.min(0, tupleCoords[i5]) || normalized[i5] > Math.max(0, tupleCoords[i5])) return 0;
        factor2 = (factor2 * normalized[i5] + Number.EPSILON) / (tupleCoords[i5] + Number.EPSILON);
      } else {
        if (normalized[i5] < startCoords[i5] || normalized[i5] > endCoords[i5]) return 0;
        else if (normalized[i5] < tupleCoords[i5]) factor2 = factor2 * (normalized[i5] - startCoords[i5] + Number.EPSILON) / (tupleCoords[i5] - startCoords[i5] + Number.EPSILON);
        else factor2 = factor2 * (endCoords[i5] - normalized[i5] + Number.EPSILON) / (endCoords[i5] - tupleCoords[i5] + Number.EPSILON);
      }
    }
    return factor2;
  }
  // Interpolates points without delta values.
  // Needed for the Ø and Q glyphs in Skia.
  // Algorithm from Freetype.
  interpolateMissingDeltas(points, inPoints, hasDelta) {
    if (points.length === 0) return;
    let point = 0;
    while (point < points.length) {
      let firstPoint = point;
      let endPoint = point;
      let pt = points[endPoint];
      while (!pt.endContour) pt = points[++endPoint];
      while (point <= endPoint && !hasDelta[point]) point++;
      if (point > endPoint) continue;
      let firstDelta = point;
      let curDelta = point;
      point++;
      while (point <= endPoint) {
        if (hasDelta[point]) {
          this.deltaInterpolate(curDelta + 1, point - 1, curDelta, point, inPoints, points);
          curDelta = point;
        }
        point++;
      }
      if (curDelta === firstDelta) this.deltaShift(firstPoint, endPoint, curDelta, inPoints, points);
      else {
        this.deltaInterpolate(curDelta + 1, endPoint, curDelta, firstDelta, inPoints, points);
        if (firstDelta > 0) this.deltaInterpolate(firstPoint, firstDelta - 1, curDelta, firstDelta, inPoints, points);
      }
      point = endPoint + 1;
    }
  }
  deltaInterpolate(p1, p22, ref1, ref2, inPoints, outPoints) {
    if (p1 > p22) return;
    let iterable = [
      "x",
      "y"
    ];
    for (let i5 = 0; i5 < iterable.length; i5++) {
      let k3 = iterable[i5];
      if (inPoints[ref1][k3] > inPoints[ref2][k3]) {
        var p3 = ref1;
        ref1 = ref2;
        ref2 = p3;
      }
      let in1 = inPoints[ref1][k3];
      let in2 = inPoints[ref2][k3];
      let out1 = outPoints[ref1][k3];
      let out2 = outPoints[ref2][k3];
      if (in1 !== in2 || out1 === out2) {
        let scale2 = in1 === in2 ? 0 : (out2 - out1) / (in2 - in1);
        for (let p4 = p1; p4 <= p22; p4++) {
          let out = inPoints[p4][k3];
          if (out <= in1) out += out1 - in1;
          else if (out >= in2) out += out2 - in2;
          else out = out1 + (out - in1) * scale2;
          outPoints[p4][k3] = out;
        }
      }
    }
  }
  deltaShift(p1, p22, ref, inPoints, outPoints) {
    let deltaX = outPoints[ref].x - inPoints[ref].x;
    let deltaY = outPoints[ref].y - inPoints[ref].y;
    if (deltaX === 0 && deltaY === 0) return;
    for (let p3 = p1; p3 <= p22; p3++) if (p3 !== ref) {
      outPoints[p3].x += deltaX;
      outPoints[p3].y += deltaY;
    }
  }
  getAdvanceAdjustment(gid, table) {
    let outerIndex, innerIndex;
    if (table.advanceWidthMapping) {
      let idx = gid;
      if (idx >= table.advanceWidthMapping.mapCount) idx = table.advanceWidthMapping.mapCount - 1;
      let entryFormat = table.advanceWidthMapping.entryFormat;
      ({ outerIndex, innerIndex } = table.advanceWidthMapping.mapData[idx]);
    } else {
      outerIndex = 0;
      innerIndex = gid;
    }
    return this.getDelta(table.itemVariationStore, outerIndex, innerIndex);
  }
  // See pseudo code from `Font Variations Overview'
  // in the OpenType specification.
  getDelta(itemStore, outerIndex, innerIndex) {
    if (outerIndex >= itemStore.itemVariationData.length) return 0;
    let varData = itemStore.itemVariationData[outerIndex];
    if (innerIndex >= varData.deltaSets.length) return 0;
    let deltaSet = varData.deltaSets[innerIndex];
    let blendVector = this.getBlendVector(itemStore, outerIndex);
    let netAdjustment = 0;
    for (let master = 0; master < varData.regionIndexCount; master++) netAdjustment += deltaSet.deltas[master] * blendVector[master];
    return netAdjustment;
  }
  getBlendVector(itemStore, outerIndex) {
    let varData = itemStore.itemVariationData[outerIndex];
    if (this.blendVectors.has(varData)) return this.blendVectors.get(varData);
    let normalizedCoords = this.normalizedCoords;
    let blendVector = [];
    for (let master = 0; master < varData.regionIndexCount; master++) {
      let scalar = 1;
      let regionIndex = varData.regionIndexes[master];
      let axes = itemStore.variationRegionList.variationRegions[regionIndex];
      for (let j = 0; j < axes.length; j++) {
        let axis = axes[j];
        let axisScalar;
        if (axis.startCoord > axis.peakCoord || axis.peakCoord > axis.endCoord) axisScalar = 1;
        else if (axis.startCoord < 0 && axis.endCoord > 0 && axis.peakCoord !== 0) axisScalar = 1;
        else if (axis.peakCoord === 0) axisScalar = 1;
        else if (normalizedCoords[j] < axis.startCoord || normalizedCoords[j] > axis.endCoord) axisScalar = 0;
        else {
          if (normalizedCoords[j] === axis.peakCoord) axisScalar = 1;
          else if (normalizedCoords[j] < axis.peakCoord) axisScalar = (normalizedCoords[j] - axis.startCoord + Number.EPSILON) / (axis.peakCoord - axis.startCoord + Number.EPSILON);
          else axisScalar = (axis.endCoord - normalizedCoords[j] + Number.EPSILON) / (axis.endCoord - axis.peakCoord + Number.EPSILON);
        }
        scalar *= axisScalar;
      }
      blendVector[master] = scalar;
    }
    this.blendVectors.set(varData, blendVector);
    return blendVector;
  }
  constructor(font, coords) {
    this.font = font;
    this.normalizedCoords = this.normalizeCoords(coords);
    this.blendVectors = /* @__PURE__ */ new Map();
  }
};
var $5cc7476da92df375$var$resolved = Promise.resolve();
var $5cc7476da92df375$export$2e2bcd8739ae039 = class {
  includeGlyph(glyph) {
    if (typeof glyph === "object") glyph = glyph.id;
    if (this.mapping[glyph] == null) {
      this.glyphs.push(glyph);
      this.mapping[glyph] = this.glyphs.length - 1;
    }
    return this.mapping[glyph];
  }
  constructor(font) {
    this.font = font;
    this.glyphs = [];
    this.mapping = {};
    this.includeGlyph(0);
  }
};
var $807e58506be70005$var$ON_CURVE = 1;
var $807e58506be70005$var$X_SHORT_VECTOR = 2;
var $807e58506be70005$var$Y_SHORT_VECTOR = 4;
var $807e58506be70005$var$REPEAT = 8;
var $807e58506be70005$var$SAME_X = 16;
var $807e58506be70005$var$SAME_Y = 32;
var $807e58506be70005$var$Point = class {
  static size(val) {
    return val >= 0 && val <= 255 ? 1 : 2;
  }
  static encode(stream7, value2) {
    if (value2 >= 0 && value2 <= 255) stream7.writeUInt8(value2);
    else stream7.writeInt16BE(value2);
  }
};
var $807e58506be70005$var$Glyf = new Struct({
  numberOfContours: int16,
  xMin: int16,
  yMin: int16,
  xMax: int16,
  yMax: int16,
  endPtsOfContours: new ArrayT(uint16, "numberOfContours"),
  instructions: new ArrayT(uint8, uint16),
  flags: new ArrayT(uint8, 0),
  xPoints: new ArrayT($807e58506be70005$var$Point, 0),
  yPoints: new ArrayT($807e58506be70005$var$Point, 0)
});
var $807e58506be70005$export$2e2bcd8739ae039 = class {
  encodeSimple(path3, instructions = []) {
    let endPtsOfContours = [];
    let xPoints = [];
    let yPoints = [];
    let flags = [];
    let same = 0;
    let lastX = 0, lastY = 0, lastFlag = 0;
    let pointCount = 0;
    for (let i5 = 0; i5 < path3.commands.length; i5++) {
      let c6 = path3.commands[i5];
      for (let j = 0; j < c6.args.length; j += 2) {
        let x = c6.args[j];
        let y3 = c6.args[j + 1];
        let flag = 0;
        if (c6.command === "quadraticCurveTo" && j === 2) {
          let next = path3.commands[i5 + 1];
          if (next && next.command === "quadraticCurveTo") {
            let midX = (lastX + next.args[0]) / 2;
            let midY = (lastY + next.args[1]) / 2;
            if (x === midX && y3 === midY) continue;
          }
        }
        if (!(c6.command === "quadraticCurveTo" && j === 0)) flag |= $807e58506be70005$var$ON_CURVE;
        flag = this._encodePoint(x, lastX, xPoints, flag, $807e58506be70005$var$X_SHORT_VECTOR, $807e58506be70005$var$SAME_X);
        flag = this._encodePoint(y3, lastY, yPoints, flag, $807e58506be70005$var$Y_SHORT_VECTOR, $807e58506be70005$var$SAME_Y);
        if (flag === lastFlag && same < 255) {
          flags[flags.length - 1] |= $807e58506be70005$var$REPEAT;
          same++;
        } else {
          if (same > 0) {
            flags.push(same);
            same = 0;
          }
          flags.push(flag);
          lastFlag = flag;
        }
        lastX = x;
        lastY = y3;
        pointCount++;
      }
      if (c6.command === "closePath") endPtsOfContours.push(pointCount - 1);
    }
    if (path3.commands.length > 1 && path3.commands[path3.commands.length - 1].command !== "closePath") endPtsOfContours.push(pointCount - 1);
    let bbox = path3.bbox;
    let glyf = {
      numberOfContours: endPtsOfContours.length,
      xMin: bbox.minX,
      yMin: bbox.minY,
      xMax: bbox.maxX,
      yMax: bbox.maxY,
      endPtsOfContours,
      instructions,
      flags,
      xPoints,
      yPoints
    };
    let size = $807e58506be70005$var$Glyf.size(glyf);
    let tail = 4 - size % 4;
    let stream7 = new EncodeStream(size + tail);
    $807e58506be70005$var$Glyf.encode(stream7, glyf);
    if (tail !== 0) stream7.fill(0, tail);
    return stream7.buffer;
  }
  _encodePoint(value2, last2, points, flag, shortFlag, sameFlag) {
    let diff = value2 - last2;
    if (value2 === last2) flag |= sameFlag;
    else {
      if (-255 <= diff && diff <= 255) {
        flag |= shortFlag;
        if (diff < 0) diff = -diff;
        else flag |= sameFlag;
      }
      points.push(diff);
    }
    return flag;
  }
};
var $4abbb6a5dbdc441a$export$2e2bcd8739ae039 = class extends (0, $5cc7476da92df375$export$2e2bcd8739ae039) {
  _addGlyph(gid) {
    let glyph = this.font.getGlyph(gid);
    let glyf = glyph._decode();
    let curOffset = this.font.loca.offsets[gid];
    let nextOffset = this.font.loca.offsets[gid + 1];
    let stream7 = this.font._getTableStream("glyf");
    stream7.pos += curOffset;
    let buffer = stream7.readBuffer(nextOffset - curOffset);
    if (glyf && glyf.numberOfContours < 0) {
      buffer = new Uint8Array(buffer);
      let view = new DataView(buffer.buffer);
      for (let component of glyf.components) {
        gid = this.includeGlyph(component.glyphID);
        view.setUint16(component.pos, gid);
      }
    } else if (glyf && this.font._variationProcessor)
      buffer = this.glyphEncoder.encodeSimple(glyph.path, glyf.instructions);
    this.glyf.push(buffer);
    this.loca.offsets.push(this.offset);
    this.hmtx.metrics.push({
      advance: glyph.advanceWidth,
      bearing: glyph._getMetrics().leftBearing
    });
    this.offset += buffer.length;
    return this.glyf.length - 1;
  }
  encode() {
    this.glyf = [];
    this.offset = 0;
    this.loca = {
      offsets: [],
      version: this.font.loca.version
    };
    this.hmtx = {
      metrics: [],
      bearings: []
    };
    let i5 = 0;
    while (i5 < this.glyphs.length) this._addGlyph(this.glyphs[i5++]);
    let maxp = (0, import_clone.default)(this.font.maxp);
    maxp.numGlyphs = this.glyf.length;
    this.loca.offsets.push(this.offset);
    let head = (0, import_clone.default)(this.font.head);
    head.indexToLocFormat = this.loca.version;
    let hhea = (0, import_clone.default)(this.font.hhea);
    hhea.numberOfMetrics = this.hmtx.metrics.length;
    return (0, $816c07a04b6dba87$export$2e2bcd8739ae039).toBuffer({
      tables: {
        head,
        hhea,
        loca: this.loca,
        maxp,
        "cvt ": this.font["cvt "],
        prep: this.font.prep,
        glyf: this.glyf,
        hmtx: this.hmtx,
        fpgm: this.font.fpgm
      }
    });
  }
  constructor(font) {
    super(font);
    this.glyphEncoder = new (0, $807e58506be70005$export$2e2bcd8739ae039)();
  }
};
var $001d739428a71d5a$export$2e2bcd8739ae039 = class extends (0, $5cc7476da92df375$export$2e2bcd8739ae039) {
  subsetCharstrings() {
    this.charstrings = [];
    let gsubrs = {};
    for (let gid of this.glyphs) {
      this.charstrings.push(this.cff.getCharString(gid));
      let glyph = this.font.getGlyph(gid);
      let path3 = glyph.path;
      for (let subr in glyph._usedGsubrs) gsubrs[subr] = true;
    }
    this.gsubrs = this.subsetSubrs(this.cff.globalSubrIndex, gsubrs);
  }
  subsetSubrs(subrs, used) {
    let res = [];
    for (let i5 = 0; i5 < subrs.length; i5++) {
      let subr = subrs[i5];
      if (used[i5]) {
        this.cff.stream.pos = subr.offset;
        res.push(this.cff.stream.readBuffer(subr.length));
      } else res.push(new Uint8Array([
        11
      ]));
    }
    return res;
  }
  subsetFontdict(topDict) {
    topDict.FDArray = [];
    topDict.FDSelect = {
      version: 0,
      fds: []
    };
    let used_fds = {};
    let used_subrs = [];
    let fd_select = {};
    for (let gid of this.glyphs) {
      let fd2 = this.cff.fdForGlyph(gid);
      if (fd2 == null) continue;
      if (!used_fds[fd2]) {
        topDict.FDArray.push(Object.assign({}, this.cff.topDict.FDArray[fd2]));
        used_subrs.push({});
        fd_select[fd2] = topDict.FDArray.length - 1;
      }
      used_fds[fd2] = true;
      topDict.FDSelect.fds.push(fd_select[fd2]);
      let glyph = this.font.getGlyph(gid);
      let path3 = glyph.path;
      for (let subr in glyph._usedSubrs) used_subrs[fd_select[fd2]][subr] = true;
    }
    for (let i5 = 0; i5 < topDict.FDArray.length; i5++) {
      let dict = topDict.FDArray[i5];
      delete dict.FontName;
      if (dict.Private && dict.Private.Subrs) {
        dict.Private = Object.assign({}, dict.Private);
        dict.Private.Subrs = this.subsetSubrs(dict.Private.Subrs, used_subrs[i5]);
      }
    }
    return;
  }
  createCIDFontdict(topDict) {
    let used_subrs = {};
    for (let gid of this.glyphs) {
      let glyph = this.font.getGlyph(gid);
      let path3 = glyph.path;
      for (let subr in glyph._usedSubrs) used_subrs[subr] = true;
    }
    let privateDict = Object.assign({}, this.cff.topDict.Private);
    if (this.cff.topDict.Private && this.cff.topDict.Private.Subrs) privateDict.Subrs = this.subsetSubrs(this.cff.topDict.Private.Subrs, used_subrs);
    topDict.FDArray = [
      {
        Private: privateDict
      }
    ];
    return topDict.FDSelect = {
      version: 3,
      nRanges: 1,
      ranges: [
        {
          first: 0,
          fd: 0
        }
      ],
      sentinel: this.charstrings.length
    };
  }
  addString(string) {
    if (!string) return null;
    if (!this.strings) this.strings = [];
    this.strings.push(string);
    return (0, $229224aec43783c5$export$2e2bcd8739ae039).length + this.strings.length - 1;
  }
  encode() {
    this.subsetCharstrings();
    let charset = {
      version: this.charstrings.length > 255 ? 2 : 1,
      ranges: [
        {
          first: 1,
          nLeft: this.charstrings.length - 2
        }
      ]
    };
    let topDict = Object.assign({}, this.cff.topDict);
    topDict.Private = null;
    topDict.charset = charset;
    topDict.Encoding = null;
    topDict.CharStrings = this.charstrings;
    for (let key of [
      "version",
      "Notice",
      "Copyright",
      "FullName",
      "FamilyName",
      "Weight",
      "PostScript",
      "BaseFontName",
      "FontName"
    ]) topDict[key] = this.addString(this.cff.string(topDict[key]));
    topDict.ROS = [
      this.addString("Adobe"),
      this.addString("Identity"),
      0
    ];
    topDict.CIDCount = this.charstrings.length;
    if (this.cff.isCIDFont) this.subsetFontdict(topDict);
    else this.createCIDFontdict(topDict);
    let top = {
      version: 1,
      hdrSize: this.cff.hdrSize,
      offSize: 4,
      header: this.cff.header,
      nameIndex: [
        this.cff.postscriptName
      ],
      topDictIndex: [
        topDict
      ],
      stringIndex: this.strings,
      globalSubrIndex: this.gsubrs
    };
    return (0, $b84fd3dd9d8eddb2$export$2e2bcd8739ae039).toBuffer(top);
  }
  constructor(font) {
    super(font);
    this.cff = this.font["CFF "];
    if (!this.cff) throw new Error("Not a CFF Font");
  }
};
var $4c1709dee528ea76$export$2e2bcd8739ae039 = class _$4c1709dee528ea76$export$2e2bcd8739ae039 {
  static probe(buffer) {
    let format = (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4));
    return format === "true" || format === "OTTO" || format === String.fromCharCode(0, 1, 0, 0);
  }
  setDefaultLanguage(lang = null) {
    this.defaultLanguage = lang;
  }
  _getTable(table) {
    if (!(table.tag in this._tables)) try {
      this._tables[table.tag] = this._decodeTable(table);
    } catch (e4) {
      if ($d636bc798e7178db$export$bd5c5d8b8dcafd78) {
        console.error(`Error decoding table ${table.tag}`);
        console.error(e4.stack);
      }
    }
    return this._tables[table.tag];
  }
  _getTableStream(tag) {
    let table = this.directory.tables[tag];
    if (table) {
      this.stream.pos = table.offset;
      return this.stream;
    }
    return null;
  }
  _decodeDirectory() {
    return this.directory = (0, $816c07a04b6dba87$export$2e2bcd8739ae039).decode(this.stream, {
      _startOffset: 0
    });
  }
  _decodeTable(table) {
    let pos = this.stream.pos;
    let stream7 = this._getTableStream(table.tag);
    let result = (0, $c3395722bea751e2$export$2e2bcd8739ae039)[table.tag].decode(stream7, this, table.length);
    this.stream.pos = pos;
    return result;
  }
  /**
  * Gets a string from the font's `name` table
  * `lang` is a BCP-47 language code.
  * @return {string}
  */
  getName(key, lang = this.defaultLanguage || $d636bc798e7178db$export$42940898df819940) {
    let record = this.name && this.name.records[key];
    if (record)
      return record[lang] || record[this.defaultLanguage] || record[$d636bc798e7178db$export$42940898df819940] || record["en"] || record[Object.keys(record)[0]] || null;
    return null;
  }
  /**
  * The unique PostScript name for this font, e.g. "Helvetica-Bold"
  * @type {string}
  */
  get postscriptName() {
    return this.getName("postscriptName");
  }
  /**
  * The font's full name, e.g. "Helvetica Bold"
  * @type {string}
  */
  get fullName() {
    return this.getName("fullName");
  }
  /**
  * The font's family name, e.g. "Helvetica"
  * @type {string}
  */
  get familyName() {
    return this.getName("fontFamily");
  }
  /**
  * The font's sub-family, e.g. "Bold".
  * @type {string}
  */
  get subfamilyName() {
    return this.getName("fontSubfamily");
  }
  /**
  * The font's copyright information
  * @type {string}
  */
  get copyright() {
    return this.getName("copyright");
  }
  /**
  * The font's version number
  * @type {string}
  */
  get version() {
    return this.getName("version");
  }
  /**
  * The font’s [ascender](https://en.wikipedia.org/wiki/Ascender_(typography))
  * @type {number}
  */
  get ascent() {
    return this.hhea.ascent;
  }
  /**
  * The font’s [descender](https://en.wikipedia.org/wiki/Descender)
  * @type {number}
  */
  get descent() {
    return this.hhea.descent;
  }
  /**
  * The amount of space that should be included between lines
  * @type {number}
  */
  get lineGap() {
    return this.hhea.lineGap;
  }
  /**
  * The offset from the normal underline position that should be used
  * @type {number}
  */
  get underlinePosition() {
    return this.post.underlinePosition;
  }
  /**
  * The weight of the underline that should be used
  * @type {number}
  */
  get underlineThickness() {
    return this.post.underlineThickness;
  }
  /**
  * If this is an italic font, the angle the cursor should be drawn at to match the font design
  * @type {number}
  */
  get italicAngle() {
    return this.post.italicAngle;
  }
  /**
  * The height of capital letters above the baseline.
  * See [here](https://en.wikipedia.org/wiki/Cap_height) for more details.
  * @type {number}
  */
  get capHeight() {
    let os2 = this["OS/2"];
    return os2 ? os2.capHeight : this.ascent;
  }
  /**
  * The height of lower case letters in the font.
  * See [here](https://en.wikipedia.org/wiki/X-height) for more details.
  * @type {number}
  */
  get xHeight() {
    let os2 = this["OS/2"];
    return os2 ? os2.xHeight : 0;
  }
  /**
  * The number of glyphs in the font.
  * @type {number}
  */
  get numGlyphs() {
    return this.maxp.numGlyphs;
  }
  /**
  * The size of the font’s internal coordinate grid
  * @type {number}
  */
  get unitsPerEm() {
    return this.head.unitsPerEm;
  }
  /**
  * The font’s bounding box, i.e. the box that encloses all glyphs in the font.
  * @type {BBox}
  */
  get bbox() {
    return Object.freeze(new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039)(this.head.xMin, this.head.yMin, this.head.xMax, this.head.yMax));
  }
  get _cmapProcessor() {
    return new (0, $f08dd41ef10b694c$export$2e2bcd8739ae039)(this.cmap);
  }
  /**
  * An array of all of the unicode code points supported by the font.
  * @type {number[]}
  */
  get characterSet() {
    return this._cmapProcessor.getCharacterSet();
  }
  /**
  * Returns whether there is glyph in the font for the given unicode code point.
  *
  * @param {number} codePoint
  * @return {boolean}
  */
  hasGlyphForCodePoint(codePoint) {
    return !!this._cmapProcessor.lookup(codePoint);
  }
  /**
  * Maps a single unicode code point to a Glyph object.
  * Does not perform any advanced substitutions (there is no context to do so).
  *
  * @param {number} codePoint
  * @return {Glyph}
  */
  glyphForCodePoint(codePoint) {
    return this.getGlyph(this._cmapProcessor.lookup(codePoint), [
      codePoint
    ]);
  }
  /**
  * Returns an array of Glyph objects for the given string.
  * This is only a one-to-one mapping from characters to glyphs.
  * For most uses, you should use font.layout (described below), which
  * provides a much more advanced mapping supporting AAT and OpenType shaping.
  *
  * @param {string} string
  * @return {Glyph[]}
  */
  glyphsForString(string) {
    let glyphs = [];
    let len = string.length;
    let idx = 0;
    let last2 = -1;
    let state = -1;
    while (idx <= len) {
      let code = 0;
      let nextState = 0;
      if (idx < len) {
        code = string.charCodeAt(idx++);
        if (55296 <= code && code <= 56319 && idx < len) {
          let next = string.charCodeAt(idx);
          if (56320 <= next && next <= 57343) {
            idx++;
            code = ((code & 1023) << 10) + (next & 1023) + 65536;
          }
        }
        nextState = 65024 <= code && code <= 65039 || 917760 <= code && code <= 917999 ? 1 : 0;
      } else idx++;
      if (state === 0 && nextState === 1)
        glyphs.push(this.getGlyph(this._cmapProcessor.lookup(last2, code), [
          last2,
          code
        ]));
      else if (state === 0 && nextState === 0)
        glyphs.push(this.glyphForCodePoint(last2));
      last2 = code;
      state = nextState;
    }
    return glyphs;
  }
  get _layoutEngine() {
    return new (0, $4c0a7fa5df7a9ab1$export$2e2bcd8739ae039)(this);
  }
  /**
  * Returns a GlyphRun object, which includes an array of Glyphs and GlyphPositions for the given string.
  *
  * @param {string} string
  * @param {string[]} [userFeatures]
  * @param {string} [script]
  * @param {string} [language]
  * @param {string} [direction]
  * @return {GlyphRun}
  */
  layout(string, userFeatures, script, language, direction) {
    return this._layoutEngine.layout(string, userFeatures, script, language, direction);
  }
  /**
  * Returns an array of strings that map to the given glyph id.
  * @param {number} gid - glyph id
  */
  stringsForGlyph(gid) {
    return this._layoutEngine.stringsForGlyph(gid);
  }
  /**
  * An array of all [OpenType feature tags](https://www.microsoft.com/typography/otspec/featuretags.htm)
  * (or mapped AAT tags) supported by the font.
  * The features parameter is an array of OpenType feature tags to be applied in addition to the default set.
  * If this is an AAT font, the OpenType feature tags are mapped to AAT features.
  *
  * @type {string[]}
  */
  get availableFeatures() {
    return this._layoutEngine.getAvailableFeatures();
  }
  getAvailableFeatures(script, language) {
    return this._layoutEngine.getAvailableFeatures(script, language);
  }
  _getBaseGlyph(glyph, characters2 = []) {
    if (!this._glyphs[glyph]) {
      if (this.directory.tables.glyf) this._glyphs[glyph] = new (0, $69aac16029968692$export$2e2bcd8739ae039)(glyph, characters2, this);
      else if (this.directory.tables["CFF "] || this.directory.tables.CFF2) this._glyphs[glyph] = new (0, $62cc5109c6101893$export$2e2bcd8739ae039)(glyph, characters2, this);
    }
    return this._glyphs[glyph] || null;
  }
  /**
  * Returns a glyph object for the given glyph id.
  * You can pass the array of code points this glyph represents for
  * your use later, and it will be stored in the glyph object.
  *
  * @param {number} glyph
  * @param {number[]} characters
  * @return {Glyph}
  */
  getGlyph(glyph, characters2 = []) {
    if (!this._glyphs[glyph]) {
      if (this.directory.tables.sbix) this._glyphs[glyph] = new (0, $25d8f049c222084c$export$2e2bcd8739ae039)(glyph, characters2, this);
      else if (this.directory.tables.COLR && this.directory.tables.CPAL) this._glyphs[glyph] = new (0, $0d411f0165859681$export$2e2bcd8739ae039)(glyph, characters2, this);
      else this._getBaseGlyph(glyph, characters2);
    }
    return this._glyphs[glyph] || null;
  }
  /**
  * Returns a Subset for this font.
  * @return {Subset}
  */
  createSubset() {
    if (this.directory.tables["CFF "]) return new (0, $001d739428a71d5a$export$2e2bcd8739ae039)(this);
    return new (0, $4abbb6a5dbdc441a$export$2e2bcd8739ae039)(this);
  }
  /**
  * Returns an object describing the available variation axes
  * that this font supports. Keys are setting tags, and values
  * contain the axis name, range, and default value.
  *
  * @type {object}
  */
  get variationAxes() {
    let res = {};
    if (!this.fvar) return res;
    for (let axis of this.fvar.axis) res[axis.axisTag.trim()] = {
      name: axis.name.en,
      min: axis.minValue,
      default: axis.defaultValue,
      max: axis.maxValue
    };
    return res;
  }
  /**
  * Returns an object describing the named variation instances
  * that the font designer has specified. Keys are variation names
  * and values are the variation settings for this instance.
  *
  * @type {object}
  */
  get namedVariations() {
    let res = {};
    if (!this.fvar) return res;
    for (let instance of this.fvar.instance) {
      let settings = {};
      for (let i5 = 0; i5 < this.fvar.axis.length; i5++) {
        let axis = this.fvar.axis[i5];
        settings[axis.axisTag.trim()] = instance.coord[i5];
      }
      res[instance.name.en] = settings;
    }
    return res;
  }
  /**
  * Returns a new font with the given variation settings applied.
  * Settings can either be an instance name, or an object containing
  * variation tags as specified by the `variationAxes` property.
  *
  * @param {object} settings
  * @return {TTFFont}
  */
  getVariation(settings) {
    if (!(this.directory.tables.fvar && (this.directory.tables.gvar && this.directory.tables.glyf || this.directory.tables.CFF2))) throw new Error("Variations require a font with the fvar, gvar and glyf, or CFF2 tables.");
    if (typeof settings === "string") settings = this.namedVariations[settings];
    if (typeof settings !== "object") throw new Error("Variation settings must be either a variation name or settings object.");
    let coords = this.fvar.axis.map((axis, i5) => {
      let axisTag = axis.axisTag.trim();
      if (axisTag in settings) return Math.max(axis.minValue, Math.min(axis.maxValue, settings[axisTag]));
      else return axis.defaultValue;
    });
    let stream7 = new DecodeStream(this.stream.buffer);
    stream7.pos = this._directoryPos;
    let font = new _$4c1709dee528ea76$export$2e2bcd8739ae039(stream7, coords);
    font._tables = this._tables;
    return font;
  }
  get _variationProcessor() {
    if (!this.fvar) return null;
    let variationCoords = this.variationCoords;
    if (!variationCoords && !this.CFF2) return null;
    if (!variationCoords) variationCoords = this.fvar.axis.map((axis) => axis.defaultValue);
    return new (0, $0bb840cac04e911b$export$2e2bcd8739ae039)(this, variationCoords);
  }
  // Standardized format plugin API
  getFont(name) {
    return this.getVariation(name);
  }
  constructor(stream7, variationCoords = null) {
    (0, _define_property)(this, "type", "TTF");
    this.defaultLanguage = null;
    this.stream = stream7;
    this.variationCoords = variationCoords;
    this._directoryPos = this.stream.pos;
    this._tables = {};
    this._glyphs = {};
    this._decodeDirectory();
    for (let tag in this.directory.tables) {
      let table = this.directory.tables[tag];
      if ((0, $c3395722bea751e2$export$2e2bcd8739ae039)[tag] && table.length > 0) Object.defineProperty(this, tag, {
        get: this._getTable.bind(this, table)
      });
    }
  }
};
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, "bbox", null);
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, "_cmapProcessor", null);
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, "characterSet", null);
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, "_layoutEngine", null);
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, "variationAxes", null);
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, "namedVariations", null);
(0, __decorate)([
  (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)
], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, "_variationProcessor", null);
var $c1726355ecc5b889$var$WOFFDirectoryEntry = new Struct({
  tag: new StringT(4),
  offset: new Pointer(uint32, "void", {
    type: "global"
  }),
  compLength: uint32,
  length: uint32,
  origChecksum: uint32
});
var $c1726355ecc5b889$var$WOFFDirectory = new Struct({
  tag: new StringT(4),
  flavor: uint32,
  length: uint32,
  numTables: uint16,
  reserved: new Reserved(uint16),
  totalSfntSize: uint32,
  majorVersion: uint16,
  minorVersion: uint16,
  metaOffset: uint32,
  metaLength: uint32,
  metaOrigLength: uint32,
  privOffset: uint32,
  privLength: uint32,
  tables: new ArrayT($c1726355ecc5b889$var$WOFFDirectoryEntry, "numTables")
});
$c1726355ecc5b889$var$WOFFDirectory.process = function() {
  let tables = {};
  for (let table of this.tables) tables[table.tag] = table;
  this.tables = tables;
};
var $c1726355ecc5b889$export$2e2bcd8739ae039 = $c1726355ecc5b889$var$WOFFDirectory;
var $760785214b9fc52c$export$2e2bcd8739ae039 = class extends (0, $4c1709dee528ea76$export$2e2bcd8739ae039) {
  static probe(buffer) {
    return (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4)) === "wOFF";
  }
  _decodeDirectory() {
    this.directory = (0, $c1726355ecc5b889$export$2e2bcd8739ae039).decode(this.stream, {
      _startOffset: 0
    });
  }
  _getTableStream(tag) {
    let table = this.directory.tables[tag];
    if (table) {
      this.stream.pos = table.offset;
      if (table.compLength < table.length) {
        this.stream.pos += 2;
        let outBuffer = new Uint8Array(table.length);
        let buf = (0, import_tiny_inflate.default)(this.stream.readBuffer(table.compLength - 2), outBuffer);
        return new DecodeStream(buf);
      } else return this.stream;
    }
    return null;
  }
  constructor(...args) {
    super(...args);
    (0, _define_property)(this, "type", "WOFF");
  }
};
var $8046190c9f1ad19e$export$2e2bcd8739ae039 = class extends (0, $69aac16029968692$export$2e2bcd8739ae039) {
  _decode() {
    return this._font._transformedGlyphs[this.id];
  }
  _getCBox() {
    return this.path.bbox;
  }
  constructor(...args) {
    super(...args);
    (0, _define_property)(this, "type", "WOFF2");
  }
};
var $c28ec7bbb3b8de3a$var$Base128 = {
  decode(stream7) {
    let result = 0;
    let iterable = [
      0,
      1,
      2,
      3,
      4
    ];
    for (let j = 0; j < iterable.length; j++) {
      let i5 = iterable[j];
      let code = stream7.readUInt8();
      if (result & 3758096384) throw new Error("Overflow");
      result = result << 7 | code & 127;
      if ((code & 128) === 0) return result;
    }
    throw new Error("Bad base 128 number");
  }
};
var $c28ec7bbb3b8de3a$var$knownTags = [
  "cmap",
  "head",
  "hhea",
  "hmtx",
  "maxp",
  "name",
  "OS/2",
  "post",
  "cvt ",
  "fpgm",
  "glyf",
  "loca",
  "prep",
  "CFF ",
  "VORG",
  "EBDT",
  "EBLC",
  "gasp",
  "hdmx",
  "kern",
  "LTSH",
  "PCLT",
  "VDMX",
  "vhea",
  "vmtx",
  "BASE",
  "GDEF",
  "GPOS",
  "GSUB",
  "EBSC",
  "JSTF",
  "MATH",
  "CBDT",
  "CBLC",
  "COLR",
  "CPAL",
  "SVG ",
  "sbix",
  "acnt",
  "avar",
  "bdat",
  "bloc",
  "bsln",
  "cvar",
  "fdsc",
  "feat",
  "fmtx",
  "fvar",
  "gvar",
  "hsty",
  "just",
  "lcar",
  "mort",
  "morx",
  "opbd",
  "prop",
  "trak",
  "Zapf",
  "Silf",
  "Glat",
  "Gloc",
  "Feat",
  "Sill"
];
var $c28ec7bbb3b8de3a$var$WOFF2DirectoryEntry = new Struct({
  flags: uint8,
  customTag: new Optional(new StringT(4), (t4) => (t4.flags & 63) === 63),
  tag: (t4) => t4.customTag || $c28ec7bbb3b8de3a$var$knownTags[t4.flags & 63],
  length: $c28ec7bbb3b8de3a$var$Base128,
  transformVersion: (t4) => t4.flags >>> 6 & 3,
  transformed: (t4) => t4.tag === "glyf" || t4.tag === "loca" ? t4.transformVersion === 0 : t4.transformVersion !== 0,
  transformLength: new Optional($c28ec7bbb3b8de3a$var$Base128, (t4) => t4.transformed)
});
var $c28ec7bbb3b8de3a$var$WOFF2Directory = new Struct({
  tag: new StringT(4),
  flavor: uint32,
  length: uint32,
  numTables: uint16,
  reserved: new Reserved(uint16),
  totalSfntSize: uint32,
  totalCompressedSize: uint32,
  majorVersion: uint16,
  minorVersion: uint16,
  metaOffset: uint32,
  metaLength: uint32,
  metaOrigLength: uint32,
  privOffset: uint32,
  privLength: uint32,
  tables: new ArrayT($c28ec7bbb3b8de3a$var$WOFF2DirectoryEntry, "numTables")
});
$c28ec7bbb3b8de3a$var$WOFF2Directory.process = function() {
  let tables = {};
  for (let i5 = 0; i5 < this.tables.length; i5++) {
    let table = this.tables[i5];
    tables[table.tag] = table;
  }
  return this.tables = tables;
};
var $c28ec7bbb3b8de3a$export$2e2bcd8739ae039 = $c28ec7bbb3b8de3a$var$WOFF2Directory;
var $21ee218f84ac7f32$export$2e2bcd8739ae039 = class extends (0, $4c1709dee528ea76$export$2e2bcd8739ae039) {
  static probe(buffer) {
    return (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4)) === "wOF2";
  }
  _decodeDirectory() {
    this.directory = (0, $c28ec7bbb3b8de3a$export$2e2bcd8739ae039).decode(this.stream);
    this._dataPos = this.stream.pos;
  }
  _decompress() {
    if (!this._decompressed) {
      this.stream.pos = this._dataPos;
      let buffer = this.stream.readBuffer(this.directory.totalCompressedSize);
      let decompressedSize = 0;
      for (let tag in this.directory.tables) {
        let entry = this.directory.tables[tag];
        entry.offset = decompressedSize;
        decompressedSize += entry.transformLength != null ? entry.transformLength : entry.length;
      }
      let decompressed = (0, import_decompress.default)(buffer, decompressedSize);
      if (!decompressed) throw new Error("Error decoding compressed data in WOFF2");
      this.stream = new DecodeStream(decompressed);
      this._decompressed = true;
    }
  }
  _decodeTable(table) {
    this._decompress();
    return super._decodeTable(table);
  }
  // Override this method to get a glyph and return our
  // custom subclass if there is a glyf table.
  _getBaseGlyph(glyph, characters2 = []) {
    if (!this._glyphs[glyph]) {
      if (this.directory.tables.glyf && this.directory.tables.glyf.transformed) {
        if (!this._transformedGlyphs) this._transformGlyfTable();
        return this._glyphs[glyph] = new (0, $8046190c9f1ad19e$export$2e2bcd8739ae039)(glyph, characters2, this);
      } else return super._getBaseGlyph(glyph, characters2);
    }
  }
  _transformGlyfTable() {
    this._decompress();
    this.stream.pos = this.directory.tables.glyf.offset;
    let table = $21ee218f84ac7f32$var$GlyfTable.decode(this.stream);
    let glyphs = [];
    for (let index2 = 0; index2 < table.numGlyphs; index2++) {
      let glyph = {};
      let nContours = table.nContours.readInt16BE();
      glyph.numberOfContours = nContours;
      if (nContours > 0) {
        let nPoints = [];
        let totalPoints = 0;
        for (let i5 = 0; i5 < nContours; i5++) {
          let r4 = $21ee218f84ac7f32$var$read255UInt16(table.nPoints);
          totalPoints += r4;
          nPoints.push(totalPoints);
        }
        glyph.points = $21ee218f84ac7f32$var$decodeTriplet(table.flags, table.glyphs, totalPoints);
        for (let i5 = 0; i5 < nContours; i5++) glyph.points[nPoints[i5] - 1].endContour = true;
        var instructionSize = $21ee218f84ac7f32$var$read255UInt16(table.glyphs);
      } else if (nContours < 0) {
        let haveInstructions = (0, $69aac16029968692$export$2e2bcd8739ae039).prototype._decodeComposite.call({
          _font: this
        }, glyph, table.composites);
        if (haveInstructions) var instructionSize = $21ee218f84ac7f32$var$read255UInt16(table.glyphs);
      }
      glyphs.push(glyph);
    }
    this._transformedGlyphs = glyphs;
  }
  constructor(...args) {
    super(...args);
    (0, _define_property)(this, "type", "WOFF2");
  }
};
var $21ee218f84ac7f32$var$Substream = class {
  decode(stream7, parent) {
    return new DecodeStream(this._buf.decode(stream7, parent));
  }
  constructor(length2) {
    this.length = length2;
    this._buf = new BufferT(length2);
  }
};
var $21ee218f84ac7f32$var$GlyfTable = new Struct({
  version: uint32,
  numGlyphs: uint16,
  indexFormat: uint16,
  nContourStreamSize: uint32,
  nPointsStreamSize: uint32,
  flagStreamSize: uint32,
  glyphStreamSize: uint32,
  compositeStreamSize: uint32,
  bboxStreamSize: uint32,
  instructionStreamSize: uint32,
  nContours: new $21ee218f84ac7f32$var$Substream("nContourStreamSize"),
  nPoints: new $21ee218f84ac7f32$var$Substream("nPointsStreamSize"),
  flags: new $21ee218f84ac7f32$var$Substream("flagStreamSize"),
  glyphs: new $21ee218f84ac7f32$var$Substream("glyphStreamSize"),
  composites: new $21ee218f84ac7f32$var$Substream("compositeStreamSize"),
  bboxes: new $21ee218f84ac7f32$var$Substream("bboxStreamSize"),
  instructions: new $21ee218f84ac7f32$var$Substream("instructionStreamSize")
});
var $21ee218f84ac7f32$var$WORD_CODE = 253;
var $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE2 = 254;
var $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE1 = 255;
var $21ee218f84ac7f32$var$LOWEST_U_CODE = 253;
function $21ee218f84ac7f32$var$read255UInt16(stream7) {
  let code = stream7.readUInt8();
  if (code === $21ee218f84ac7f32$var$WORD_CODE) return stream7.readUInt16BE();
  if (code === $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE1) return stream7.readUInt8() + $21ee218f84ac7f32$var$LOWEST_U_CODE;
  if (code === $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE2) return stream7.readUInt8() + $21ee218f84ac7f32$var$LOWEST_U_CODE * 2;
  return code;
}
function $21ee218f84ac7f32$var$withSign(flag, baseval) {
  return flag & 1 ? baseval : -baseval;
}
function $21ee218f84ac7f32$var$decodeTriplet(flags, glyphs, nPoints) {
  let y3;
  let x = y3 = 0;
  let res = [];
  for (let i5 = 0; i5 < nPoints; i5++) {
    let dx = 0, dy = 0;
    let flag = flags.readUInt8();
    let onCurve = !(flag >> 7);
    flag &= 127;
    if (flag < 10) {
      dx = 0;
      dy = $21ee218f84ac7f32$var$withSign(flag, ((flag & 14) << 7) + glyphs.readUInt8());
    } else if (flag < 20) {
      dx = $21ee218f84ac7f32$var$withSign(flag, ((flag - 10 & 14) << 7) + glyphs.readUInt8());
      dy = 0;
    } else if (flag < 84) {
      var b0 = flag - 20;
      var b1 = glyphs.readUInt8();
      dx = $21ee218f84ac7f32$var$withSign(flag, 1 + (b0 & 48) + (b1 >> 4));
      dy = $21ee218f84ac7f32$var$withSign(flag >> 1, 1 + ((b0 & 12) << 2) + (b1 & 15));
    } else if (flag < 120) {
      var b0 = flag - 84;
      dx = $21ee218f84ac7f32$var$withSign(flag, 1 + (b0 / 12 << 8) + glyphs.readUInt8());
      dy = $21ee218f84ac7f32$var$withSign(flag >> 1, 1 + (b0 % 12 >> 2 << 8) + glyphs.readUInt8());
    } else if (flag < 124) {
      var b1 = glyphs.readUInt8();
      let b22 = glyphs.readUInt8();
      dx = $21ee218f84ac7f32$var$withSign(flag, (b1 << 4) + (b22 >> 4));
      dy = $21ee218f84ac7f32$var$withSign(flag >> 1, ((b22 & 15) << 8) + glyphs.readUInt8());
    } else {
      dx = $21ee218f84ac7f32$var$withSign(flag, glyphs.readUInt16BE());
      dy = $21ee218f84ac7f32$var$withSign(flag >> 1, glyphs.readUInt16BE());
    }
    x += dx;
    y3 += dy;
    res.push(new (0, $69aac16029968692$export$baf26146a414f24a)(onCurve, false, x, y3));
  }
  return res;
}
var $cd5853a56c68fec7$var$TTCHeader = new VersionedStruct(uint32, {
  65536: {
    numFonts: uint32,
    offsets: new ArrayT(uint32, "numFonts")
  },
  131072: {
    numFonts: uint32,
    offsets: new ArrayT(uint32, "numFonts"),
    dsigTag: uint32,
    dsigLength: uint32,
    dsigOffset: uint32
  }
});
var $cd5853a56c68fec7$export$2e2bcd8739ae039 = class {
  static probe(buffer) {
    return (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4)) === "ttcf";
  }
  getFont(name) {
    for (let offset2 of this.header.offsets) {
      let stream7 = new DecodeStream(this.stream.buffer);
      stream7.pos = offset2;
      let font = new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream7);
      if (font.postscriptName === name || font.postscriptName instanceof Uint8Array && name instanceof Uint8Array && font.postscriptName.every((v3, i5) => name[i5] === v3)) return font;
    }
    return null;
  }
  get fonts() {
    let fonts = [];
    for (let offset2 of this.header.offsets) {
      let stream7 = new DecodeStream(this.stream.buffer);
      stream7.pos = offset2;
      fonts.push(new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream7));
    }
    return fonts;
  }
  constructor(stream7) {
    (0, _define_property)(this, "type", "TTC");
    this.stream = stream7;
    if (stream7.readString(4) !== "ttcf") throw new Error("Not a TrueType collection");
    this.header = $cd5853a56c68fec7$var$TTCHeader.decode(stream7);
  }
};
var $05f49f930186144e$var$DFontName = new StringT(uint8);
var $05f49f930186144e$var$DFontData = new Struct({
  len: uint32,
  buf: new BufferT("len")
});
var $05f49f930186144e$var$Ref = new Struct({
  id: uint16,
  nameOffset: int16,
  attr: uint8,
  dataOffset: uint24,
  handle: uint32
});
var $05f49f930186144e$var$Type = new Struct({
  name: new StringT(4),
  maxTypeIndex: uint16,
  refList: new Pointer(uint16, new ArrayT($05f49f930186144e$var$Ref, (t4) => t4.maxTypeIndex + 1), {
    type: "parent"
  })
});
var $05f49f930186144e$var$TypeList = new Struct({
  length: uint16,
  types: new ArrayT($05f49f930186144e$var$Type, (t4) => t4.length + 1)
});
var $05f49f930186144e$var$DFontMap = new Struct({
  reserved: new Reserved(uint8, 24),
  typeList: new Pointer(uint16, $05f49f930186144e$var$TypeList),
  nameListOffset: new Pointer(uint16, "void")
});
var $05f49f930186144e$var$DFontHeader = new Struct({
  dataOffset: uint32,
  map: new Pointer(uint32, $05f49f930186144e$var$DFontMap),
  dataLength: uint32,
  mapLength: uint32
});
var $05f49f930186144e$export$2e2bcd8739ae039 = class {
  static probe(buffer) {
    let stream7 = new DecodeStream(buffer);
    try {
      var header = $05f49f930186144e$var$DFontHeader.decode(stream7);
    } catch (e4) {
      return false;
    }
    for (let type of header.map.typeList.types) {
      if (type.name === "sfnt") return true;
    }
    return false;
  }
  getFont(name) {
    if (!this.sfnt) return null;
    for (let ref of this.sfnt.refList) {
      let pos = this.header.dataOffset + ref.dataOffset + 4;
      let stream7 = new DecodeStream(this.stream.buffer.slice(pos));
      let font = new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream7);
      if (font.postscriptName === name || font.postscriptName instanceof Uint8Array && name instanceof Uint8Array && font.postscriptName.every((v3, i5) => name[i5] === v3)) return font;
    }
    return null;
  }
  get fonts() {
    let fonts = [];
    for (let ref of this.sfnt.refList) {
      let pos = this.header.dataOffset + ref.dataOffset + 4;
      let stream7 = new DecodeStream(this.stream.buffer.slice(pos));
      fonts.push(new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream7));
    }
    return fonts;
  }
  constructor(stream7) {
    (0, _define_property)(this, "type", "DFont");
    this.stream = stream7;
    this.header = $05f49f930186144e$var$DFontHeader.decode(this.stream);
    for (let type of this.header.map.typeList.types) {
      for (let ref of type.refList) if (ref.nameOffset >= 0) {
        this.stream.pos = ref.nameOffset + this.header.map.nameListOffset;
        ref.name = $05f49f930186144e$var$DFontName.decode(this.stream);
      } else ref.name = null;
      if (type.name === "sfnt") this.sfnt = type;
    }
  }
};
(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $4c1709dee528ea76$export$2e2bcd8739ae039));
(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $760785214b9fc52c$export$2e2bcd8739ae039));
(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $21ee218f84ac7f32$export$2e2bcd8739ae039));
(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $cd5853a56c68fec7$export$2e2bcd8739ae039));
(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $05f49f930186144e$export$2e2bcd8739ae039));

// ../../node_modules/.pnpm/@react-pdf+pdfkit@4.1.0/node_modules/@react-pdf/pdfkit/lib/pdfkit.js
var import_md5 = __toESM(require_md5(), 1);
import stream6 from "stream";
import zlib5 from "zlib";
import fs4 from "fs";
import { EventEmitter as EventEmitter4 } from "events";

// ../../node_modules/.pnpm/linebreak@1.1.0/node_modules/linebreak/dist/module.mjs
var import_unicode_trie3 = __toESM(require_unicode_trie(), 1);
var import_base64_js2 = __toESM(require_b64(), 1);
var $557adaaeb0c7885f$exports = {};
var $1627905f8be2ef3f$export$fb4028874a74450 = 5;
var $1627905f8be2ef3f$export$1bb1140fe1358b00 = 12;
var $1627905f8be2ef3f$export$f3e416a182673355 = 13;
var $1627905f8be2ef3f$export$24aa617c849a894a = 16;
var $1627905f8be2ef3f$export$a73c4d14459b698d = 17;
var $1627905f8be2ef3f$export$9e5d732f3676a9ba = 22;
var $1627905f8be2ef3f$export$1dff41d5c0caca01 = 28;
var $1627905f8be2ef3f$export$30a74a373318dec6 = 31;
var $1627905f8be2ef3f$export$d710c5f50fc7496a = 33;
var $1627905f8be2ef3f$export$66498d28055820a9 = 34;
var $1627905f8be2ef3f$export$eb6c6d0b7c8826f2 = 35;
var $1627905f8be2ef3f$export$de92be486109a1df = 36;
var $1627905f8be2ef3f$export$606cfc2a8896c91f = 37;
var $1627905f8be2ef3f$export$e51d3c675bb0140d = 38;
var $1627905f8be2ef3f$export$da51c6332ad11d7b = 39;
var $1627905f8be2ef3f$export$bea437c40441867d = 40;
var $1627905f8be2ef3f$export$c4c7eecbfed13dc9 = 41;
var $1627905f8be2ef3f$export$98e1f8a379849661 = 42;
var $32627af916ac1b00$export$98f50d781a474745 = 0;
var $32627af916ac1b00$export$12ee1f8f5315ca7e = 1;
var $32627af916ac1b00$export$e4965ce242860454 = 2;
var $32627af916ac1b00$export$8f14048969dcd45e = 3;
var $32627af916ac1b00$export$133eb141bf58aff4 = 4;
var $32627af916ac1b00$export$5bdb8ccbf5c57afc = [
  //OP   , CL    , CP    , QU    , GL    , NS    , EX    , SY    , IS    , PR    , PO    , NU    , AL    , HL    , ID    , IN    , HY    , BA    , BB    , B2    , ZW    , CM    , WJ    , H2    , H3    , JL    , JV    , JT    , RI    , EB    , EM    , ZWJ   , CB
  [
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$8f14048969dcd45e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e
  ],
  [
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ],
  [
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$e4965ce242860454,
    $32627af916ac1b00$export$133eb141bf58aff4,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$98f50d781a474745,
    $32627af916ac1b00$export$12ee1f8f5315ca7e,
    $32627af916ac1b00$export$98f50d781a474745
  ]
  // CB
];
var $557adaaeb0c7885f$var$data = import_base64_js2.default.toByteArray("[encoded data, 5160 characters]");
var $557adaaeb0c7885f$var$classTrie = new import_unicode_trie3.default($557adaaeb0c7885f$var$data);
var $557adaaeb0c7885f$var$mapClass = function(c6) {
  switch (c6) {
    case $1627905f8be2ef3f$export$d710c5f50fc7496a:
      return $1627905f8be2ef3f$export$1bb1140fe1358b00;
    case $1627905f8be2ef3f$export$da51c6332ad11d7b:
    case $1627905f8be2ef3f$export$bea437c40441867d:
    case $1627905f8be2ef3f$export$98e1f8a379849661:
      return $1627905f8be2ef3f$export$1bb1140fe1358b00;
    case $1627905f8be2ef3f$export$eb6c6d0b7c8826f2:
      return $1627905f8be2ef3f$export$fb4028874a74450;
    default:
      return c6;
  }
};
var $557adaaeb0c7885f$var$mapFirst = function(c6) {
  switch (c6) {
    case $1627905f8be2ef3f$export$606cfc2a8896c91f:
    case $1627905f8be2ef3f$export$e51d3c675bb0140d:
      return $1627905f8be2ef3f$export$66498d28055820a9;
    case $1627905f8be2ef3f$export$c4c7eecbfed13dc9:
      return $1627905f8be2ef3f$export$9e5d732f3676a9ba;
    default:
      return c6;
  }
};
var $557adaaeb0c7885f$var$Break = class {
  constructor(position, required = false) {
    this.position = position;
    this.required = required;
  }
};
var $557adaaeb0c7885f$var$LineBreaker = class {
  nextCodePoint() {
    const code = this.string.charCodeAt(this.pos++);
    const next = this.string.charCodeAt(this.pos);
    if (55296 <= code && code <= 56319 && 56320 <= next && next <= 57343) {
      this.pos++;
      return (code - 55296) * 1024 + (next - 56320) + 65536;
    }
    return code;
  }
  nextCharClass() {
    return $557adaaeb0c7885f$var$mapClass($557adaaeb0c7885f$var$classTrie.get(this.nextCodePoint()));
  }
  getSimpleBreak() {
    switch (this.nextClass) {
      case $1627905f8be2ef3f$export$c4c7eecbfed13dc9:
        return false;
      case $1627905f8be2ef3f$export$66498d28055820a9:
      case $1627905f8be2ef3f$export$606cfc2a8896c91f:
      case $1627905f8be2ef3f$export$e51d3c675bb0140d:
        this.curClass = $1627905f8be2ef3f$export$66498d28055820a9;
        return false;
      case $1627905f8be2ef3f$export$de92be486109a1df:
        this.curClass = $1627905f8be2ef3f$export$de92be486109a1df;
        return false;
    }
    return null;
  }
  getPairTableBreak(lastClass) {
    let shouldBreak2 = false;
    switch ($32627af916ac1b00$export$5bdb8ccbf5c57afc[this.curClass][this.nextClass]) {
      case $32627af916ac1b00$export$98f50d781a474745:
        shouldBreak2 = true;
        break;
      case $32627af916ac1b00$export$12ee1f8f5315ca7e:
        shouldBreak2 = lastClass === $1627905f8be2ef3f$export$c4c7eecbfed13dc9;
        break;
      case $32627af916ac1b00$export$e4965ce242860454:
        shouldBreak2 = lastClass === $1627905f8be2ef3f$export$c4c7eecbfed13dc9;
        if (!shouldBreak2) {
          shouldBreak2 = false;
          return shouldBreak2;
        }
        break;
      case $32627af916ac1b00$export$8f14048969dcd45e:
        if (lastClass !== $1627905f8be2ef3f$export$c4c7eecbfed13dc9) return shouldBreak2;
        break;
      case $32627af916ac1b00$export$133eb141bf58aff4:
        break;
    }
    if (this.LB8a) shouldBreak2 = false;
    if (this.LB21a && (this.curClass === $1627905f8be2ef3f$export$24aa617c849a894a || this.curClass === $1627905f8be2ef3f$export$a73c4d14459b698d)) {
      shouldBreak2 = false;
      this.LB21a = false;
    } else this.LB21a = this.curClass === $1627905f8be2ef3f$export$f3e416a182673355;
    if (this.curClass === $1627905f8be2ef3f$export$1dff41d5c0caca01) {
      this.LB30a++;
      if (this.LB30a == 2 && this.nextClass === $1627905f8be2ef3f$export$1dff41d5c0caca01) {
        shouldBreak2 = true;
        this.LB30a = 0;
      }
    } else this.LB30a = 0;
    this.curClass = this.nextClass;
    return shouldBreak2;
  }
  nextBreak() {
    if (this.curClass == null) {
      let firstClass = this.nextCharClass();
      this.curClass = $557adaaeb0c7885f$var$mapFirst(firstClass);
      this.nextClass = firstClass;
      this.LB8a = firstClass === $1627905f8be2ef3f$export$30a74a373318dec6;
      this.LB30a = 0;
    }
    while (this.pos < this.string.length) {
      this.lastPos = this.pos;
      const lastClass = this.nextClass;
      this.nextClass = this.nextCharClass();
      if (this.curClass === $1627905f8be2ef3f$export$66498d28055820a9 || this.curClass === $1627905f8be2ef3f$export$de92be486109a1df && this.nextClass !== $1627905f8be2ef3f$export$606cfc2a8896c91f) {
        this.curClass = $557adaaeb0c7885f$var$mapFirst($557adaaeb0c7885f$var$mapClass(this.nextClass));
        return new $557adaaeb0c7885f$var$Break(this.lastPos, true);
      }
      let shouldBreak2 = this.getSimpleBreak();
      if (shouldBreak2 === null) shouldBreak2 = this.getPairTableBreak(lastClass);
      this.LB8a = this.nextClass === $1627905f8be2ef3f$export$30a74a373318dec6;
      if (shouldBreak2) return new $557adaaeb0c7885f$var$Break(this.lastPos);
    }
    if (this.lastPos < this.string.length) {
      this.lastPos = this.string.length;
      return new $557adaaeb0c7885f$var$Break(this.string.length);
    }
    return null;
  }
  constructor(string) {
    this.string = string;
    this.pos = 0;
    this.lastPos = 0;
    this.curClass = null;
    this.nextClass = null;
    this.LB8a = false;
    this.LB21a = false;
    this.LB30a = 0;
  }
};
$557adaaeb0c7885f$exports = $557adaaeb0c7885f$var$LineBreaker;

// ../../node_modules/.pnpm/jay-peg@1.1.1/node_modules/jay-peg/src/markers/dac.js
var DACTable = new Struct({
  identifier: new BufferT(1),
  value: new BufferT(1)
});
var DACMarker = {
  name: () => "DAC",
  length: uint16be,
  tables: new ArrayT(DACTable, (parent) => parent.length / 2)
};
var dac_default = DACMarker;

// ../../node_modules/.pnpm/jay-peg@1.1.1/node_modules/jay-peg/src/markers/utils.js
var readUInt8 = (array, offset2) => {
  return array[offset2];
};
var readUInt16BE = (array, offset2) => {
  return array[offset2] << 8 | array[offset2 + 1];
};
var readUInt16LE = (array, offset2) => {
  return array[offset2] | array[offset2 + 1] << 8;
};
var readUInt32BE = (array, offset2) => {
  return readInt32BE(array, offset2) >>> 0;
};
var readUInt32LE = (array, offset2) => {
  return readInt32LE(array, offset2) >>> 0;
};
var uint8ArrayToHexString = (uint8Array) => {
  return Array.from(
    uint8Array,
    (byte) => byte.toString(16).padStart(2, "0")
  ).join("");
};
var decoder = new TextDecoder("utf-8");
var uint8ArrayToString = (uint8Array) => {
  return decoder.decode(uint8Array);
};
var concatenateUint8Arrays = (arrays) => {
  const totalLength = arrays.reduce((length2, arr) => length2 + arr.length, 0);
  const concatenatedArray = new Uint8Array(totalLength);
  let offset2 = 0;
  arrays.forEach((arr) => {
    concatenatedArray.set(arr, offset2);
    offset2 += arr.length;
  });
  return concatenatedArray;
};
var readInt32BE = (array, offset2) => {
  return array[offset2] << 24 | array[offset2 + 1] << 16 | array[offset2 + 2] << 8 | array[offset2 + 3];
};
var readInt32LE = (array, offset2) => {
  return array[offset2] | array[offset2 + 1] << 8 | array[offset2 + 2] << 16 | array[offset2 + 3] << 24;
};

// ../../node_modules/.pnpm/jay-peg@1.1.1/node_modules/jay-peg/src/markers/dht.js
var HuffmanTableElements = class {
  decode(stream7, parent) {
    const tables = {};
    let buffer = stream7.buffer.slice(
      stream7.pos,
      stream7.pos + parent.length - 2
    );
    while (buffer.length > 0) {
      let offset2 = 1;
      const elements = [];
      const identifier = readUInt8(buffer, 0);
      const lengths = buffer.slice(offset2, offset2 + 16);
      offset2 += 16;
      for (const length2 of lengths) {
        elements.push(buffer.slice(offset2, offset2 + length2));
        offset2 += length2;
      }
      buffer = buffer.slice(offset2);
      tables[identifier] = concatenateUint8Arrays(elements);
    }
    stream7.pos += parent.length - 2;
    return tables;
  }
};
var DefineHuffmanTableMarker = {
  name: () => "DHT",
  length: uint16be,
  tables: new HuffmanTableElements()
};
var dht_default = DefineHuffmanTableMarker;

// ../../node_modules/.pnpm/jay-peg@1.1.1/node_modules/jay-peg/src/markers/dqt.js
var DQTMarker = {
  name: () => "DQT",
  length: uint16be,
  tables: new ArrayT(
    new Struct({
      identifier: new BufferT(1),
      data: new BufferT(64)
    }),
    (parent) => (parent.length - 2) / 65
  )
};
var dqt_default = DQTMarker;

// ../../node_modules/.pnpm/jay-peg@1.1.1/node_modules/jay-peg/src/markers/dri.js
var DRIMarker = {
  name: () => "DRI",
  length: uint16be,
  restartInterval: uint16be
};
var dri_default = DRIMarker;

// ../../node_modules/.pnpm/jay-peg@1.1.1/node_modules/jay-peg/src/markers/eoi.js
var EndOfImageMarker = {
  name: () => "EOI",
  afterEOI: new Reserved(uint8, Infinity)
};
var eoi_default = EndOfImageMarker;

// ../../node_modules/.pnpm/jay-peg@1.1.1/node_modules/jay-peg/src/markers/exif.js
var tags = {
  ifd: {
    "010e": "imageDescription",
    "010f": "make",
    "011a": "xResolution",
    "011b": "yResolution",
    "011c": "planarConfiguration",
    "012d": "transferFunction",
    "013b": "artist",
    "013e": "whitePoint",
    "013f": "primaryChromaticities",
    "0100": "imageWidth",
    "0101": "imageHeight",
    "0102": "bitsPerSample",
    "0103": "compression",
    "0106": "photometricInterpretation",
    "0110": "model",
    "0111": "stripOffsets",
    "0112": "orientation",
    "0115": "samplesPerPixel",
    "0116": "rowsPerStrip",
    "0117": "stripByteCounts",
    "0128": "resolutionUnit",
    "0131": "software",
    "0132": "dateTime",
    "0201": "jpegInterchangeFormat",
    "0202": "jpegInterchangeFormatLength",
    "0211": "ycbCrCoefficients",
    "0212": "ycbCrSubSampling",
    "0213": "ycbCrPositioning",
    "0214": "referenceBlackWhite",
    "829a": "exposureTime",
    "829d": "fNumber",
    "920a": "focalLength",
    "927c": "makerNote",
    8298: "copyright",
    8769: "exifIFDPointer",
    8822: "exposureProgram",
    8824: "spectralSensitivity",
    8825: "gpsInfoIFDPointer",
    8827: "photographicSensitivity",
    8828: "oecf",
    8830: "sensitivityType",
    8831: "standardOutputSensitivity",
    8832: "recommendedExposureIndex",
    8833: "isoSpeed",
    8834: "isoSpeedLatitudeyyy",
    8835: "isoSpeedLatitudezzz",
    9e3: "exifVersion",
    9003: "dateTimeOriginal",
    9004: "dateTimeDigitized",
    9101: "componentsConfiguration",
    9102: "compressedBitsPerPixel",
    9201: "shutterSpeedValue",
    9202: "apertureValue",
    9203: "brightnessValue",
    9204: "exposureBiasValue",
    9205: "maxApertureValue",
    9206: "subjectDistance",
    9207: "meteringMode",
    9208: "lightSource",
    9209: "flash",
    9214: "subjectArea",
    9286: "userComment",
    9290: "subSecTime",
    9291: "subSecTimeOriginal",
    9292: "subSecTimeDigitized",
    a000: "flashpixVersion",
    a001: "colorSpace",
    a002: "pixelXDimension",
    a003: "pixelYDimension",
    a004: "relatedSoundFile",
    a005: "interoperabilityIFDPointer",
    a20b: "flashEnergy",
    a20c: "spatialFrequencyResponse",
    a20e: "focalPlaneXResolution",
    a20f: "focalPlaneYResolution",
    a40a: "sharpness",
    a40b: "deviceSettingDescription",
    a40c: "subjectDistanceRange",
    a210: "focalPlaneResolutionUnit",
    a214: "subjectLocation",
    a215: "exposureIndex",
    a217: "sensingMethod",
    a300: "fileSource",
    a301: "sceneType",
    a302: "cfaPattern",
    a401: "customRendered",
    a402: "exposureMode",
    a403: "whiteBalance",
    a404: "digitalZoomRatio",
    a405: "focalLengthIn35mmFilm",
    a406: "sceneCaptureType",
    a407: "gainControl",
    a408: "contrast",
    a409: "saturation",
    a420: "imageUniqueID",
    a430: "cameraOwnerName",
    a431: "bodySerialNumber",
    a432: "lensSpecification",
    a433: "lensMake",
    a434: "lensModel",
    a435: "lensSerialNumber",
    a500: "gamma"
  },
  gps: {
    "0000": "gpsVersionID",
    "0001": "gpsLatitudeRef",
    "0002": "gpsLatitude",
    "0003": "gpsLongitudeRef",
    "0004": "gpsLongitude",
    "0005": "gpsAltitudeRef",
    "0006": "gpsAltitude",
    "0007": "gpsTimeStamp",
    "0008": "gpsSatellites",
    "0009": "gpsStatus",
    "000a": "gpsMeasureMode",
    "000b": "gpsDOP",
    "000c": "gpsSpeedRef",
    "000d": "gpsSpeed",
    "000e": "gpsTrackRef",
    "000f": "gpsTrack",
    "0010": "gpsImgDirectionRef",
    "0011": "gpsImgDirection",
    "0012": "gpsMapDatum",
    "0013": "gpsDestLatitudeRef",
    "0014": "gpsDestLatitude",
    "0015": "gpsDestLongitudeRef",
    "0016": "gpsDestLongitude",
    "0017": "gpsDestBearingRef",
    "0018": "gpsDestBearing",
    "0019": "gpsDestDistanceRef",
    "001a": "gpsDestDistance",
    "001b": "gpsProcessingMethod",
    "001c": "gpsAreaInformation",
    "001d": "gpsDateStamp",
    "001e": "gpsDifferential",
    "001f": "gpsHPositioningError"
  }
};
var IDFEntries = class {
  constructor(bigEndian) {
    this.bigEndian = bigEndian;
    this.bytes = [0, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8];
  }
  _getTagValue(dataValue, dataFormat, componentsNumber) {
    switch (dataFormat) {
      case 2:
        return dataValue.toString("ascii").replace(/\0+$/, "");
      case 129:
        return dataValue.toString("utf8").replace(/\0+$/, "");
      case 7:
        return "0x" + dataValue.toString("hex");
      default:
        return this._getTagValueForNumericalData(dataValue, dataFormat, componentsNumber);
    }
  }
  _getTagValueForNumericalData(dataValue, dataFormat, componentsNumber) {
    const tagValue = [];
    const componentsBytes = this.bytes[dataFormat];
    for (let i5 = 0; i5 < componentsNumber; i5 += 1) {
      tagValue.push(this._getSingleTagValueForNumericalData(dataValue, dataFormat, i5 * componentsBytes));
    }
    return tagValue.length === 1 ? tagValue[0] : tagValue;
  }
  _getSingleTagValueForNumericalData(dataValue, dataFormat, pos) {
    const uint162 = (pos2) => this.bigEndian ? readUInt16BE(dataValue, pos2) : readUInt16LE(dataValue, pos2);
    const uint322 = (pos2) => this.bigEndian ? readUInt32BE(dataValue, pos2) : readUInt32LE(dataValue, pos2);
    const int322 = (pos2) => this.bigEndian ? readInt32BE(dataValue, pos2) : readInt32LE(dataValue, pos2);
    switch (dataFormat) {
      case 1:
        return readUInt8(dataValue, pos);
      case 3:
        return uint162(pos);
      case 4:
        return uint322(pos);
      case 5:
        return uint322(pos) / uint322(pos + 4);
      case 9:
        return int322(pos);
      case 10: {
        return int322(pos) / int322(pos + 4);
      }
    }
  }
  _decodeIDFEntries(buffer, tags2, offset2, log2 = false) {
    let pos = 2 + offset2;
    const entries3 = {};
    const uint162 = (pos2) => this.bigEndian ? readUInt16BE(buffer, pos2) : readUInt16LE(buffer, pos2);
    const uint322 = (pos2) => this.bigEndian ? readUInt32BE(buffer, pos2) : readUInt32LE(buffer, pos2);
    const numberOfEntries = uint162(offset2);
    for (let i5 = 0; i5 < numberOfEntries; i5++) {
      const tagAddress = buffer.slice(pos, pos + 2);
      const dataFormat = uint162(pos + 2);
      const componentsNumber = uint322(pos + 4);
      const componentsBytes = this.bytes[dataFormat];
      const dataLength = componentsNumber * componentsBytes;
      let dataValue = buffer.slice(pos + 8, pos + 12);
      if (dataLength > 4) {
        const dataOffset = this.bigEndian ? readUInt32BE(dataValue, 0) : readUInt32LE(dataValue, 0);
        dataValue = buffer.slice(dataOffset, dataOffset + dataLength);
      }
      const tagValue = this._getTagValue(dataValue, dataFormat, componentsNumber);
      const tagNumber = this.bigEndian ? uint8ArrayToHexString(tagAddress) : uint8ArrayToHexString(tagAddress.reverse());
      const tagName = tags2[tagNumber];
      entries3[tagName] = tagValue;
      pos += 12;
    }
    return entries3;
  }
  decode(stream7, parent) {
    const buffer = stream7.buffer.slice(stream7.pos - 8);
    const offsetToFirstIFD = parent.offsetToFirstIFD;
    if (offsetToFirstIFD > buffer.length) {
      stream7.pos += parent.parent.length - 16;
      return {};
    }
    const entries3 = this._decodeIDFEntries(buffer, tags.ifd, offsetToFirstIFD);
    const { exifIFDPointer, gpsInfoIFDPointer } = entries3;
    if (exifIFDPointer) {
      entries3.subExif = this._decodeIDFEntries(
        buffer,
        tags.ifd,
        exifIFDPointer
      );
    }
    if (gpsInfoIFDPointer) {
      const gps = gpsInfoIFDPointer;
      entries3.gpsInfo = this._decodeIDFEntries(buffer, tags.gps, gps, true);
    }
    stream7.pos += parent.parent.length - 16;
    return entries3;
  }
};
var IFDData = (bigEndian) => {
  const uint162 = bigEndian ? uint16be : uint16le;
  const uint322 = bigEndian ? uint32be : uint32le;
  return new Struct({
    fortyTwo: uint162,
    offsetToFirstIFD: uint322,
    entries: new IDFEntries(bigEndian)
  });
};
var TIFFHeader = class {
  decode(stream7, parent) {
    const byteOrder = uint8ArrayToString(
      stream7.buffer.slice(stream7.pos, stream7.pos + 2)
    );
    const bigEndian = byteOrder === "MM";
    stream7.pos += 2;
    const data2 = IFDData(bigEndian).decode(stream7, parent);
    return data2.entries;
  }
};
var EXIFMarker = {
  name: () => "EXIF",
  length: uint16be,
  identifier: new StringT(6),
  entries: new TIFFHeader()
};
var exif_default = EXIFMarker;

// ../../node_modules/.pnpm/jay-peg@1.1.1/node_modules/jay-peg/src/markers/jfif.js
var JFIFMarker = {
  name: () => "JFIF",
  length: uint16be,
  identifier: new StringT(5),
  version: uint16be,
  units: uint8,
  xDensity: uint16be,
  yDensity: uint16be,
  thumbnailWidth: uint8,
  thumbnailHeight: uint8
};
var jfif_default = JFIFMarker;

// ../../node_modules/.pnpm/jay-peg@1.1.1/node_modules/jay-peg/src/markers/sos.js
var ImageData = class {
  decode(stream7) {
    const buffer = stream7.buffer.slice(stream7.pos);
    let length2 = 0;
    let i5 = buffer.indexOf(255);
    while (i5 !== -1) {
      length2 = i5;
      const nextByte = buffer[length2 + 1];
      const comesRestart = nextByte >= 208 && nextByte <= 215;
      if (nextByte !== 0 && !comesRestart) break;
      i5 = buffer.indexOf(255, i5 + 1);
    }
    stream7.pos += length2;
    return buffer.slice(0, length2);
  }
};
var SOSComponentSpecification = new Struct({
  scanComponentSelector: uint8,
  entropyCodingTable: new BufferT(1)
});
var SOSMarker = {
  name: () => "SOS",
  length: uint16be,
  numberOfImageComponents: uint8,
  componentSpecifications: new ArrayT(
    SOSComponentSpecification,
    (parent) => parent.numberOfImageComponents
  ),
  startOfSpectral: uint8,
  endOfSpectral: uint8,
  successiveApproximationBit: new BufferT(1),
  data: new ImageData()
};
var sos_default = SOSMarker;

// ../../node_modules/.pnpm/jay-peg@1.1.1/node_modules/jay-peg/src/markers/sof.js
var FrameColorComponent = new Struct({
  id: uint8,
  samplingFactors: uint8,
  quantizationTableId: uint8
});
var StartOfFrameMarker = {
  name: () => "SOF",
  length: uint16be,
  precision: uint8,
  height: uint16be,
  width: uint16be,
  numberOfComponents: uint8,
  components: new ArrayT(
    FrameColorComponent,
    (parent) => parent.numberOfComponents
  )
};
var sof_default = StartOfFrameMarker;

// ../../node_modules/.pnpm/jay-peg@1.1.1/node_modules/jay-peg/src/markers/soi.js
var StartOfImageMarker = {
  name: () => "SOI"
};
var soi_default = StartOfImageMarker;

// ../../node_modules/.pnpm/jay-peg@1.1.1/node_modules/jay-peg/src/index.js
var UnknownMarker = {
  length: uint16be,
  buf: new BufferT((parent) => parent.length - 2)
};
var unknownMarkers = Array(63).fill(0).reduce((acc, v3, i5) => ({ ...acc, [i5 + 65472]: UnknownMarker }), {});
var Marker = new VersionedStruct(uint16be, {
  ...unknownMarkers,
  65472: sof_default,
  65473: sof_default,
  65474: sof_default,
  65475: sof_default,
  65476: dht_default,
  65477: sof_default,
  65478: sof_default,
  65479: sof_default,
  65481: sof_default,
  65482: sof_default,
  65483: sof_default,
  65484: dac_default,
  65485: sof_default,
  65486: sof_default,
  65487: sof_default,
  65496: soi_default,
  65497: eoi_default,
  65498: sos_default,
  65499: dqt_default,
  65501: dri_default,
  65504: jfif_default,
  65505: exif_default
});
var JPEG = new ArrayT(Marker);
var decode = (buffer) => {
  const markers = JPEG.fromBuffer(buffer);
  return markers.map(({ version: version2, ...rest }) => ({ type: version2, ...rest }));
};
var src_default = { decode };

// ../../node_modules/.pnpm/@react-pdf+png-js@3.0.0/node_modules/@react-pdf/png-js/lib/png-js.js
import fs3 from "fs";
import zlib4 from "zlib";
var PNG = class _PNG {
  static decode(path3, fn) {
    {
      return fs3.readFile(path3, (err2, file) => {
        const png = new _PNG(file);
        return png.decode((pixels) => fn(pixels));
      });
    }
  }
  static load(path3) {
    {
      const file = fs3.readFileSync(path3);
      return new _PNG(file);
    }
  }
  constructor(data2) {
    let i5;
    this.data = data2;
    this.pos = 8;
    this.palette = [];
    this.imgData = [];
    this.transparency = {};
    this.text = {};
    while (true) {
      const chunkSize = this.readUInt32();
      let section = "";
      for (i5 = 0; i5 < 4; i5++) {
        section += String.fromCharCode(this.data[this.pos++]);
      }
      switch (section) {
        case "IHDR":
          this.width = this.readUInt32();
          this.height = this.readUInt32();
          this.bits = this.data[this.pos++];
          this.colorType = this.data[this.pos++];
          this.compressionMethod = this.data[this.pos++];
          this.filterMethod = this.data[this.pos++];
          this.interlaceMethod = this.data[this.pos++];
          break;
        case "PLTE":
          this.palette = this.read(chunkSize);
          break;
        case "IDAT":
          for (i5 = 0; i5 < chunkSize; i5++) {
            this.imgData.push(this.data[this.pos++]);
          }
          break;
        case "tRNS":
          this.transparency = {};
          switch (this.colorType) {
            case 3:
              this.transparency.indexed = this.read(chunkSize);
              var short = 255 - this.transparency.indexed.length;
              if (short > 0) {
                for (i5 = 0; i5 < short; i5++) {
                  this.transparency.indexed.push(255);
                }
              }
              break;
            case 0:
              this.transparency.grayscale = this.read(chunkSize)[0];
              break;
            case 2:
              this.transparency.rgb = this.read(chunkSize);
              break;
          }
          break;
        case "tEXt":
          var text = this.read(chunkSize);
          var index2 = text.indexOf(0);
          var key = String.fromCharCode.apply(String, text.slice(0, index2));
          this.text[key] = String.fromCharCode.apply(String, text.slice(index2 + 1));
          break;
        case "IEND":
          switch (this.colorType) {
            case 0:
            case 3:
            case 4:
              this.colors = 1;
              break;
            case 2:
            case 6:
              this.colors = 3;
              break;
          }
          this.hasAlphaChannel = [4, 6].includes(this.colorType);
          var colors = this.colors + (this.hasAlphaChannel ? 1 : 0);
          this.pixelBitlength = this.bits * colors;
          switch (this.colors) {
            case 1:
              this.colorSpace = "DeviceGray";
              break;
            case 3:
              this.colorSpace = "DeviceRGB";
              break;
          }
          this.imgData = Buffer.from(this.imgData);
          return;
        default:
          this.pos += chunkSize;
      }
      this.pos += 4;
      if (this.pos > this.data.length) {
        throw new Error("Incomplete or corrupt PNG file");
      }
    }
  }
  read(bytes) {
    const result = new Array(bytes);
    for (let i5 = 0; i5 < bytes; i5++) {
      result[i5] = this.data[this.pos++];
    }
    return result;
  }
  readUInt32() {
    const b1 = this.data[this.pos++] << 24;
    const b22 = this.data[this.pos++] << 16;
    const b3 = this.data[this.pos++] << 8;
    const b4 = this.data[this.pos++];
    return b1 | b22 | b3 | b4;
  }
  readUInt16() {
    const b1 = this.data[this.pos++] << 8;
    const b22 = this.data[this.pos++];
    return b1 | b22;
  }
  decodePixels(fn) {
    return zlib4.inflate(this.imgData, (err2, data2) => {
      if (err2) throw err2;
      var pos = 0;
      const {
        width,
        height: height2
      } = this;
      var pixelBytes = this.pixelBitlength / 8;
      const pixels = Buffer.alloc(width * height2 * pixelBytes);
      function pass(x0, y0, dx, dy, singlePass) {
        if (singlePass === void 0) {
          singlePass = false;
        }
        const w = Math.ceil((width - x0) / dx);
        const h4 = Math.ceil((height2 - y0) / dy);
        const scanlineLength = pixelBytes * w;
        const buffer = singlePass ? pixels : Buffer.alloc(scanlineLength * h4);
        let row = 0;
        let c6 = 0;
        while (row < h4 && pos < data2.length) {
          var byte;
          var col;
          var i5;
          var left;
          var upper;
          switch (data2[pos++]) {
            case 0:
              for (i5 = 0; i5 < scanlineLength; i5++) {
                buffer[c6++] = data2[pos++];
              }
              break;
            case 1:
              for (i5 = 0; i5 < scanlineLength; i5++) {
                byte = data2[pos++];
                left = i5 < pixelBytes ? 0 : buffer[c6 - pixelBytes];
                buffer[c6++] = (byte + left) % 256;
              }
              break;
            case 2:
              for (i5 = 0; i5 < scanlineLength; i5++) {
                byte = data2[pos++];
                col = (i5 - i5 % pixelBytes) / pixelBytes;
                upper = row && buffer[(row - 1) * scanlineLength + col * pixelBytes + i5 % pixelBytes];
                buffer[c6++] = (upper + byte) % 256;
              }
              break;
            case 3:
              for (i5 = 0; i5 < scanlineLength; i5++) {
                byte = data2[pos++];
                col = (i5 - i5 % pixelBytes) / pixelBytes;
                left = i5 < pixelBytes ? 0 : buffer[c6 - pixelBytes];
                upper = row && buffer[(row - 1) * scanlineLength + col * pixelBytes + i5 % pixelBytes];
                buffer[c6++] = (byte + Math.floor((left + upper) / 2)) % 256;
              }
              break;
            case 4:
              for (i5 = 0; i5 < scanlineLength; i5++) {
                var paeth;
                var upperLeft;
                byte = data2[pos++];
                col = (i5 - i5 % pixelBytes) / pixelBytes;
                left = i5 < pixelBytes ? 0 : buffer[c6 - pixelBytes];
                if (row === 0) {
                  upper = upperLeft = 0;
                } else {
                  upper = buffer[(row - 1) * scanlineLength + col * pixelBytes + i5 % pixelBytes];
                  upperLeft = col && buffer[(row - 1) * scanlineLength + (col - 1) * pixelBytes + i5 % pixelBytes];
                }
                const p3 = left + upper - upperLeft;
                const pa = Math.abs(p3 - left);
                const pb = Math.abs(p3 - upper);
                const pc = Math.abs(p3 - upperLeft);
                if (pa <= pb && pa <= pc) {
                  paeth = left;
                } else if (pb <= pc) {
                  paeth = upper;
                } else {
                  paeth = upperLeft;
                }
                buffer[c6++] = (byte + paeth) % 256;
              }
              break;
            default:
              throw new Error(`Invalid filter algorithm: ${data2[pos - 1]}`);
          }
          if (!singlePass) {
            let pixelsPos = ((y0 + row * dy) * width + x0) * pixelBytes;
            let bufferPos = row * scanlineLength;
            for (i5 = 0; i5 < w; i5++) {
              for (let j = 0; j < pixelBytes; j++) pixels[pixelsPos++] = buffer[bufferPos++];
              pixelsPos += (dx - 1) * pixelBytes;
            }
          }
          row++;
        }
      }
      if (this.interlaceMethod === 1) {
        pass(0, 0, 8, 8);
        pass(4, 0, 8, 8);
        pass(0, 4, 4, 8);
        pass(2, 0, 4, 4);
        pass(0, 2, 2, 4);
        pass(1, 0, 2, 2);
        pass(0, 1, 1, 2);
      } else {
        pass(0, 0, 1, 1, true);
      }
      return fn(pixels);
    });
  }
  decodePalette() {
    const {
      palette
    } = this;
    const {
      length: length2
    } = palette;
    const transparency = this.transparency.indexed || [];
    const ret = Buffer.alloc(transparency.length + length2);
    let pos = 0;
    let c6 = 0;
    for (let i5 = 0; i5 < length2; i5 += 3) {
      var left;
      ret[pos++] = palette[i5];
      ret[pos++] = palette[i5 + 1];
      ret[pos++] = palette[i5 + 2];
      ret[pos++] = (left = transparency[c6++]) != null ? left : 255;
    }
    return ret;
  }
  copyToImageData(imageData, pixels) {
    let j;
    var k3;
    let {
      colors
    } = this;
    let palette = null;
    let alpha = this.hasAlphaChannel;
    if (this.palette.length) {
      palette = this._decodedPalette || (this._decodedPalette = this.decodePalette());
      colors = 4;
      alpha = true;
    }
    const data2 = imageData.data || imageData;
    const {
      length: length2
    } = data2;
    const input = palette || pixels;
    let i5 = j = 0;
    if (colors === 1) {
      while (i5 < length2) {
        k3 = palette ? pixels[i5 / 4] * 4 : j;
        const v3 = input[k3++];
        data2[i5++] = v3;
        data2[i5++] = v3;
        data2[i5++] = v3;
        data2[i5++] = alpha ? input[k3++] : 255;
        j = k3;
      }
    } else {
      while (i5 < length2) {
        k3 = palette ? pixels[i5 / 4] * 4 : j;
        data2[i5++] = input[k3++];
        data2[i5++] = input[k3++];
        data2[i5++] = input[k3++];
        data2[i5++] = alpha ? input[k3++] : 255;
        j = k3;
      }
    }
  }
  decode(fn) {
    const ret = Buffer.alloc(this.width * this.height * 4);
    return this.decodePixels((pixels) => {
      this.copyToImageData(ret, pixels);
      return fn(ret);
    });
  }
};

// ../../node_modules/.pnpm/@react-pdf+pdfkit@4.1.0/node_modules/@react-pdf/pdfkit/lib/pdfkit.js
var import_crypto_js = __toESM(require_crypto_js(), 1);
var PDFReference = class extends stream6.Writable {
  constructor(document2, id, data2) {
    super({
      decodeStrings: false
    });
    this.finalize = this.finalize.bind(this);
    this.document = document2;
    this.id = id;
    if (data2 == null) {
      data2 = {};
    }
    this.data = data2;
    this.gen = 0;
    this.deflate = null;
    this.compress = this.document.compress && !this.data.Filter;
    this.uncompressedLength = 0;
    this.chunks = [];
  }
  initDeflate() {
    this.data.Filter = "FlateDecode";
    this.deflate = zlib5.createDeflate();
    this.deflate.on("data", (chunk3) => {
      this.chunks.push(chunk3);
      return this.data.Length += chunk3.length;
    });
    return this.deflate.on("end", this.finalize);
  }
  _write(chunk3, encoding, callback) {
    if (!(chunk3 instanceof Uint8Array)) {
      chunk3 = Buffer.from(chunk3 + "\n", "binary");
    }
    this.uncompressedLength += chunk3.length;
    if (this.data.Length == null) {
      this.data.Length = 0;
    }
    if (this.compress) {
      if (!this.deflate) {
        this.initDeflate();
      }
      this.deflate.write(chunk3);
    } else {
      this.chunks.push(chunk3);
      this.data.Length += chunk3.length;
    }
    return callback();
  }
  end() {
    super.end(...arguments);
    if (this.deflate) {
      return this.deflate.end();
    }
    return this.finalize();
  }
  finalize() {
    this.offset = this.document._offset;
    this.document._write(`${this.id} ${this.gen} obj`);
    this.document._write(PDFObject.convert(this.data));
    if (this.chunks.length) {
      this.document._write("stream");
      for (let chunk3 of Array.from(this.chunks)) {
        this.document._write(chunk3);
      }
      this.chunks.length = 0;
      this.document._write("\nendstream");
    }
    this.document._write("endobj");
    return this.document._refEnd(this);
  }
  toString() {
    return `${this.id} ${this.gen} R`;
  }
};
var PDFTree = class {
  constructor(options) {
    if (options === void 0) {
      options = {};
    }
    this._items = {};
    this.limits = typeof options.limits === "boolean" ? options.limits : true;
  }
  add(key, val) {
    return this._items[key] = val;
  }
  get(key) {
    return this._items[key];
  }
  toString() {
    const sortedKeys = Object.keys(this._items).sort((a5, b3) => this._compareKeys(a5, b3));
    const out = ["<<"];
    if (this.limits && sortedKeys.length > 1) {
      const first = sortedKeys[0], last2 = sortedKeys[sortedKeys.length - 1];
      out.push(`  /Limits ${PDFObject.convert([this._dataForKey(first), this._dataForKey(last2)])}`);
    }
    out.push(`  /${this._keysName()} [`);
    for (let key of sortedKeys) {
      out.push(`    ${PDFObject.convert(this._dataForKey(key))} ${PDFObject.convert(this._items[key])}`);
    }
    out.push("]");
    out.push(">>");
    return out.join("\n");
  }
  _compareKeys() {
    throw new Error("Must be implemented by subclasses");
  }
  _keysName() {
    throw new Error("Must be implemented by subclasses");
  }
  _dataForKey() {
    throw new Error("Must be implemented by subclasses");
  }
};
var PDFNameTree = class extends PDFTree {
  _compareKeys(a5, b3) {
    return a5.localeCompare(b3);
  }
  _keysName() {
    return "Names";
  }
  _dataForKey(k3) {
    return new String(k3);
  }
};
var pad = (str, length2) => (Array(length2 + 1).join("0") + str).slice(-length2);
var escapableRe = /[\n\r\t\b\f()\\]/g;
var escapable = {
  "\n": "\\n",
  "\r": "\\r",
  "	": "\\t",
  "\b": "\\b",
  "\f": "\\f",
  "\\": "\\\\",
  "(": "\\(",
  ")": "\\)"
};
var swapBytes = function(buff) {
  const l4 = buff.length;
  if (l4 & 1) {
    throw new Error("Buffer length must be even");
  } else {
    for (let i5 = 0, end2 = l4 - 1; i5 < end2; i5 += 2) {
      const a5 = buff[i5];
      buff[i5] = buff[i5 + 1];
      buff[i5 + 1] = a5;
    }
  }
  return buff;
};
var PDFObject = class _PDFObject {
  static convert(object) {
    if (typeof object === "string") {
      return `/${object}`;
    }
    if (object instanceof String) {
      let string = object;
      let isUnicode = false;
      for (let i5 = 0, end2 = string.length; i5 < end2; i5++) {
        if (string.charCodeAt(i5) > 127) {
          isUnicode = true;
          break;
        }
      }
      if (isUnicode) {
        string = swapBytes(Buffer.from(`\uFEFF${string}`, "utf16le")).toString("binary");
      }
      string = string.replace(escapableRe, (c6) => escapable[c6]);
      return `(${string})`;
    }
    if (Buffer.isBuffer(object)) {
      return `<${object.toString("hex")}>`;
    }
    if (object instanceof PDFReference || object instanceof PDFNameTree) {
      return object.toString();
    }
    if (object instanceof Date) {
      return `(D:${pad(object.getUTCFullYear(), 4)}` + pad(object.getUTCMonth() + 1, 2) + pad(object.getUTCDate(), 2) + pad(object.getUTCHours(), 2) + pad(object.getUTCMinutes(), 2) + pad(object.getUTCSeconds(), 2) + "Z)";
    }
    if (Array.isArray(object)) {
      const items = Array.from(object).map((e4) => _PDFObject.convert(e4)).join(" ");
      return `[${items}]`;
    }
    if ({}.toString.call(object) === "[object Object]") {
      const out = ["<<"];
      for (let key in object) {
        const val = object[key];
        out.push(`/${key} ${_PDFObject.convert(val)}`);
      }
      out.push(">>");
      return out.join("\n");
    }
    if (typeof object === "number") {
      return _PDFObject.number(object);
    }
    return `${object}`;
  }
  static number(n6) {
    if (n6 > -1e21 && n6 < 1e21) {
      return Math.round(n6 * 1e6) / 1e6;
    }
    throw new Error(`unsupported number: ${n6}`);
  }
};
var DEFAULT_MARGINS = {
  top: 72,
  left: 72,
  bottom: 72,
  right: 72
};
var SIZES = {
  "4A0": [4767.87, 6740.79],
  "2A0": [3370.39, 4767.87],
  A0: [2383.94, 3370.39],
  A1: [1683.78, 2383.94],
  A2: [1190.55, 1683.78],
  A3: [841.89, 1190.55],
  A4: [595.28, 841.89],
  A5: [419.53, 595.28],
  A6: [297.64, 419.53],
  A7: [209.76, 297.64],
  A8: [147.4, 209.76],
  A9: [104.88, 147.4],
  A10: [73.7, 104.88],
  B0: [2834.65, 4008.19],
  B1: [2004.09, 2834.65],
  B2: [1417.32, 2004.09],
  B3: [1000.63, 1417.32],
  B4: [708.66, 1000.63],
  B5: [498.9, 708.66],
  B6: [354.33, 498.9],
  B7: [249.45, 354.33],
  B8: [175.75, 249.45],
  B9: [124.72, 175.75],
  B10: [87.87, 124.72],
  C0: [2599.37, 3676.54],
  C1: [1836.85, 2599.37],
  C2: [1298.27, 1836.85],
  C3: [918.43, 1298.27],
  C4: [649.13, 918.43],
  C5: [459.21, 649.13],
  C6: [323.15, 459.21],
  C7: [229.61, 323.15],
  C8: [161.57, 229.61],
  C9: [113.39, 161.57],
  C10: [79.37, 113.39],
  RA0: [2437.8, 3458.27],
  RA1: [1729.13, 2437.8],
  RA2: [1218.9, 1729.13],
  RA3: [864.57, 1218.9],
  RA4: [609.45, 864.57],
  SRA0: [2551.18, 3628.35],
  SRA1: [1814.17, 2551.18],
  SRA2: [1275.59, 1814.17],
  SRA3: [907.09, 1275.59],
  SRA4: [637.8, 907.09],
  EXECUTIVE: [521.86, 756],
  FOLIO: [612, 936],
  LEGAL: [612, 1008],
  LETTER: [612, 792],
  TABLOID: [792, 1224]
};
var PDFPage = class {
  constructor(document2, options) {
    if (options === void 0) {
      options = {};
    }
    this.document = document2;
    this._options = options;
    this.size = options.size || "letter";
    this.layout = options.layout || "portrait";
    this.userUnit = options.userUnit || 1;
    if (typeof options.margin === "number") {
      this.margins = {
        top: options.margin,
        left: options.margin,
        bottom: options.margin,
        right: options.margin
      };
    } else {
      this.margins = options.margins || DEFAULT_MARGINS;
    }
    const dimensions = Array.isArray(this.size) ? this.size : SIZES[this.size.toUpperCase()];
    this.width = dimensions[this.layout === "portrait" ? 0 : 1];
    this.height = dimensions[this.layout === "portrait" ? 1 : 0];
    this.content = this.document.ref();
    if (options.font) document2.font(options.font, options.fontFamily);
    if (options.fontSize) document2.fontSize(options.fontSize);
    this.resources = this.document.ref({
      ProcSet: ["PDF", "Text", "ImageB", "ImageC", "ImageI"]
    });
    this.dictionary = this.document.ref({
      Type: "Page",
      Parent: this.document._root.data.Pages,
      MediaBox: [0, 0, this.width, this.height],
      Contents: this.content,
      Resources: this.resources,
      UserUnit: this.userUnit
    });
    this.markings = [];
  }
  // Lazily create these objects
  get fonts() {
    const data2 = this.resources.data;
    return data2.Font != null ? data2.Font : data2.Font = {};
  }
  get xobjects() {
    const data2 = this.resources.data;
    return data2.XObject != null ? data2.XObject : data2.XObject = {};
  }
  get ext_gstates() {
    const data2 = this.resources.data;
    return data2.ExtGState != null ? data2.ExtGState : data2.ExtGState = {};
  }
  get patterns() {
    const data2 = this.resources.data;
    return data2.Pattern != null ? data2.Pattern : data2.Pattern = {};
  }
  get colorSpaces() {
    const data2 = this.resources.data;
    return data2.ColorSpace || (data2.ColorSpace = {});
  }
  get annotations() {
    const data2 = this.dictionary.data;
    return data2.Annots != null ? data2.Annots : data2.Annots = [];
  }
  get structParentTreeKey() {
    const data2 = this.dictionary.data;
    return data2.StructParents != null ? data2.StructParents : data2.StructParents = this.document.createStructParentTreeNextKey();
  }
  maxY() {
    return this.height - this.margins.bottom;
  }
  write(chunk3) {
    return this.content.write(chunk3);
  }
  // Set tab order if document is tagged for accessibility.
  _setTabOrder() {
    if (!this.dictionary.Tabs && this.document.hasMarkInfoDictionary()) {
      this.dictionary.data.Tabs = "S";
    }
  }
  end() {
    this._setTabOrder();
    this.dictionary.end();
    this.resources.data.ColorSpace = this.resources.data.ColorSpace || {};
    for (let color of Object.values(this.document.spotColors)) {
      this.resources.data.ColorSpace[color.id] = color;
    }
    this.resources.end();
    return this.content.end();
  }
};
var wordArrayToBuffer = (wordArray) => {
  const byteArray = [];
  for (let i5 = 0; i5 < wordArray.sigBytes; i5++) {
    byteArray.push(wordArray.words[Math.floor(i5 / 4)] >> 8 * (3 - i5 % 4) & 255);
  }
  return Buffer.from(byteArray);
};
var PDFSecurity = class {
  static generateFileID(info) {
    if (info === void 0) {
      info = {};
    }
    let infoStr = `${info.CreationDate.getTime()}
`;
    for (let key in info) {
      if (!info.hasOwnProperty(key)) continue;
      infoStr += `${key}: ${info[key].valueOf()}
`;
    }
    return wordArrayToBuffer((0, import_md5.default)(infoStr));
  }
};
var {
  number: number$2
} = PDFObject;
var PDFGradient$1 = class PDFGradient {
  constructor(doc) {
    this.doc = doc;
    this.stops = [];
    this.embedded = false;
    this.transform = [1, 0, 0, 1, 0, 0];
  }
  stop(pos, color, opacity) {
    if (opacity == null) {
      opacity = 1;
    }
    color = this.doc._normalizeColor(color);
    if (this.stops.length === 0) {
      if (color.length === 3) {
        this._colorSpace = "DeviceRGB";
      } else if (color.length === 4) {
        this._colorSpace = "DeviceCMYK";
      } else if (color.length === 1) {
        this._colorSpace = "DeviceGray";
      } else {
        throw new Error("Unknown color space");
      }
    } else if (this._colorSpace === "DeviceRGB" && color.length !== 3 || this._colorSpace === "DeviceCMYK" && color.length !== 4 || this._colorSpace === "DeviceGray" && color.length !== 1) {
      throw new Error("All gradient stops must use the same color space");
    }
    opacity = Math.max(0, Math.min(1, opacity));
    this.stops.push([pos, color, opacity]);
    return this;
  }
  setTransform(m11, m12, m21, m22, dx, dy) {
    this.transform = [m11, m12, m21, m22, dx, dy];
    return this;
  }
  embed(m3) {
    let fn;
    const stopsLength = this.stops.length;
    if (stopsLength === 0) {
      return;
    }
    this.embedded = true;
    this.matrix = m3;
    const last2 = this.stops[stopsLength - 1];
    if (last2[0] < 1) {
      this.stops.push([1, last2[1], last2[2]]);
    }
    const bounds = [];
    const encode3 = [];
    const stops = [];
    for (let i5 = 0; i5 < stopsLength - 1; i5++) {
      encode3.push(0, 1);
      if (i5 + 2 !== stopsLength) {
        bounds.push(this.stops[i5 + 1][0]);
      }
      fn = this.doc.ref({
        FunctionType: 2,
        Domain: [0, 1],
        C0: this.stops[i5 + 0][1],
        C1: this.stops[i5 + 1][1],
        N: 1
      });
      stops.push(fn);
      fn.end();
    }
    if (stopsLength === 1) {
      fn = stops[0];
    } else {
      fn = this.doc.ref({
        FunctionType: 3,
        // stitching function
        Domain: [0, 1],
        Functions: stops,
        Bounds: bounds,
        Encode: encode3
      });
      fn.end();
    }
    this.id = `Sh${++this.doc._gradCount}`;
    const shader = this.shader(fn);
    shader.end();
    const pattern3 = this.doc.ref({
      Type: "Pattern",
      PatternType: 2,
      Shading: shader,
      Matrix: this.matrix.map(number$2)
    });
    pattern3.end();
    if (this.stops.some((stop) => stop[2] < 1)) {
      let grad = this.opacityGradient();
      grad._colorSpace = "DeviceGray";
      for (let stop of this.stops) {
        grad.stop(stop[0], [stop[2]]);
      }
      grad = grad.embed(this.matrix);
      const pageBBox = [0, 0, this.doc.page.width, this.doc.page.height];
      const form = this.doc.ref({
        Type: "XObject",
        Subtype: "Form",
        FormType: 1,
        BBox: pageBBox,
        Group: {
          Type: "Group",
          S: "Transparency",
          CS: "DeviceGray"
        },
        Resources: {
          ProcSet: ["PDF", "Text", "ImageB", "ImageC", "ImageI"],
          Pattern: {
            Sh1: grad
          }
        }
      });
      form.write("/Pattern cs /Sh1 scn");
      form.end(`${pageBBox.join(" ")} re f`);
      const gstate = this.doc.ref({
        Type: "ExtGState",
        SMask: {
          Type: "Mask",
          S: "Luminosity",
          G: form
        }
      });
      gstate.end();
      const opacityPattern = this.doc.ref({
        Type: "Pattern",
        PatternType: 1,
        PaintType: 1,
        TilingType: 2,
        BBox: pageBBox,
        XStep: pageBBox[2],
        YStep: pageBBox[3],
        Resources: {
          ProcSet: ["PDF", "Text", "ImageB", "ImageC", "ImageI"],
          Pattern: {
            Sh1: pattern3
          },
          ExtGState: {
            Gs1: gstate
          }
        }
      });
      opacityPattern.write("/Gs1 gs /Pattern cs /Sh1 scn");
      opacityPattern.end(`${pageBBox.join(" ")} re f`);
      this.doc.page.patterns[this.id] = opacityPattern;
    } else {
      this.doc.page.patterns[this.id] = pattern3;
    }
    return pattern3;
  }
  apply(stroke) {
    const [m0, m1, m22, m3, m4, m5] = this.doc._ctm;
    const [m11, m12, m21, m222, dx, dy] = this.transform;
    const m6 = [m0 * m11 + m22 * m12, m1 * m11 + m3 * m12, m0 * m21 + m22 * m222, m1 * m21 + m3 * m222, m0 * dx + m22 * dy + m4, m1 * dx + m3 * dy + m5];
    if (!this.embedded || m6.join(" ") !== this.matrix.join(" ")) {
      this.embed(m6);
    }
    this.doc._setColorSpace("Pattern", stroke);
    const op = stroke ? "SCN" : "scn";
    return this.doc.addContent(`/${this.id} ${op}`);
  }
};
var PDFLinearGradient$1 = class PDFLinearGradient extends PDFGradient$1 {
  constructor(doc, x1, y1, x2, y22) {
    super(doc);
    this.x1 = x1;
    this.y1 = y1;
    this.x2 = x2;
    this.y2 = y22;
  }
  shader(fn) {
    return this.doc.ref({
      ShadingType: 2,
      ColorSpace: this._colorSpace,
      Coords: [this.x1, this.y1, this.x2, this.y2],
      Function: fn,
      Extend: [true, true]
    });
  }
  opacityGradient() {
    return new PDFLinearGradient(this.doc, this.x1, this.y1, this.x2, this.y2);
  }
};
var PDFRadialGradient$1 = class PDFRadialGradient extends PDFGradient$1 {
  constructor(doc, x1, y1, r1, x2, y22, r22) {
    super(doc);
    this.doc = doc;
    this.x1 = x1;
    this.y1 = y1;
    this.r1 = r1;
    this.x2 = x2;
    this.y2 = y22;
    this.r2 = r22;
  }
  shader(fn) {
    return this.doc.ref({
      ShadingType: 3,
      ColorSpace: this._colorSpace,
      Coords: [this.x1, this.y1, this.r1, this.x2, this.y2, this.r2],
      Function: fn,
      Extend: [true, true]
    });
  }
  opacityGradient() {
    return new PDFRadialGradient(this.doc, this.x1, this.y1, this.r1, this.x2, this.y2, this.r2);
  }
};
var Gradient = {
  PDFGradient: PDFGradient$1,
  PDFLinearGradient: PDFLinearGradient$1,
  PDFRadialGradient: PDFRadialGradient$1
};
var underlyingColorSpaces = ["DeviceCMYK", "DeviceRGB"];
var PDFTilingPattern$1 = class PDFTilingPattern {
  constructor(doc, bBox, xStep, yStep, stream7) {
    this.doc = doc;
    this.bBox = bBox;
    this.xStep = xStep;
    this.yStep = yStep;
    this.stream = stream7;
  }
  createPattern() {
    const resources = this.doc.ref();
    resources.end();
    const [m0, m1, m22, m3, m4, m5] = this.doc._ctm;
    const [m11, m12, m21, m222, dx, dy] = [1, 0, 0, 1, 0, 0];
    const m6 = [m0 * m11 + m22 * m12, m1 * m11 + m3 * m12, m0 * m21 + m22 * m222, m1 * m21 + m3 * m222, m0 * dx + m22 * dy + m4, m1 * dx + m3 * dy + m5];
    const pattern3 = this.doc.ref({
      Type: "Pattern",
      PatternType: 1,
      // tiling
      PaintType: 2,
      // 1-colored, 2-uncolored
      TilingType: 2,
      // 2-no distortion
      BBox: this.bBox,
      XStep: this.xStep,
      YStep: this.yStep,
      Matrix: m6.map((v3) => +v3.toFixed(5)),
      Resources: resources
    });
    pattern3.end(this.stream);
    return pattern3;
  }
  embedPatternColorSpaces() {
    underlyingColorSpaces.forEach((csName) => {
      const csId = this.getPatternColorSpaceId(csName);
      if (this.doc.page.colorSpaces[csId]) return;
      const cs = this.doc.ref(["Pattern", csName]);
      cs.end();
      this.doc.page.colorSpaces[csId] = cs;
    });
  }
  getPatternColorSpaceId(underlyingColorspace) {
    return `CsP${underlyingColorspace}`;
  }
  embed() {
    if (!this.id) {
      this.doc._patternCount = this.doc._patternCount + 1;
      this.id = "P" + this.doc._patternCount;
      this.pattern = this.createPattern();
    }
    if (!this.doc.page.patterns[this.id]) {
      this.doc.page.patterns[this.id] = this.pattern;
    }
  }
  apply(stroke, patternColor) {
    this.embedPatternColorSpaces();
    this.embed();
    const normalizedColor = this.doc._normalizeColor(patternColor);
    if (!normalizedColor) throw Error(`invalid pattern color. (value: ${patternColor})`);
    const csId = this.getPatternColorSpaceId(this.doc._getColorSpace(normalizedColor));
    this.doc._setColorSpace(csId, stroke);
    const op = stroke ? "SCN" : "scn";
    return this.doc.addContent(`${normalizedColor.join(" ")} /${this.id} ${op}`);
  }
};
var pattern = {
  PDFTilingPattern: PDFTilingPattern$1
};
var SpotColor = class {
  constructor(doc, name, C, M, Y, K) {
    this.id = "CS" + Object.keys(doc.spotColors).length;
    this.name = name;
    this.values = [C, M, Y, K];
    this.ref = doc.ref(["Separation", this.name, "DeviceCMYK", {
      Range: [0, 1, 0, 1, 0, 1, 0, 1],
      C0: [0, 0, 0, 0],
      C1: this.values.map((value2) => value2 / 100),
      FunctionType: 2,
      Domain: [0, 1],
      N: 1
    }]);
    this.ref.end();
  }
  toString() {
    return `${this.ref.id} 0 R`;
  }
};
var {
  PDFGradient: PDFGradient2,
  PDFLinearGradient: PDFLinearGradient2,
  PDFRadialGradient: PDFRadialGradient2
} = Gradient;
var {
  PDFTilingPattern: PDFTilingPattern2
} = pattern;
var ColorMixin = {
  initColor() {
    this.spotColors = {};
    this._opacityRegistry = {};
    this._opacityCount = 0;
    this._patternCount = 0;
    return this._gradCount = 0;
  },
  _normalizeColor(color) {
    if (typeof color === "string") {
      if (color.charAt(0) === "#") {
        if (color.length === 4) {
          color = color.replace(/#([0-9A-F])([0-9A-F])([0-9A-F])/i, "#$1$1$2$2$3$3");
        }
        const hex = parseInt(color.slice(1), 16);
        color = [hex >> 16, hex >> 8 & 255, hex & 255];
      } else if (namedColors[color]) {
        color = namedColors[color];
      } else if (this.spotColors[color]) {
        return this.spotColors[color];
      }
    }
    if (Array.isArray(color)) {
      if (color.length === 3) {
        color = color.map((part) => part / 255);
      } else if (color.length === 4) {
        color = color.map((part) => part / 100);
      }
      return color;
    }
    return null;
  },
  _setColor(color, stroke) {
    if (color instanceof PDFGradient2) {
      color.apply(stroke);
      return true;
    } else if (Array.isArray(color) && color[0] instanceof PDFTilingPattern2) {
      color[0].apply(stroke, color[1]);
      return true;
    }
    return this._setColorCore(color, stroke);
  },
  _setColorCore(color, stroke) {
    color = this._normalizeColor(color);
    if (!color) {
      return false;
    }
    const op = stroke ? "SCN" : "scn";
    const space = this._getColorSpace(color);
    this._setColorSpace(space, stroke);
    if (color instanceof SpotColor) {
      this.page.colorSpaces[color.id] = color.ref;
      this.addContent(`1 ${op}`);
    } else {
      this.addContent(`${color.join(" ")} ${op}`);
    }
    return true;
  },
  _setColorSpace(space, stroke) {
    const op = stroke ? "CS" : "cs";
    return this.addContent(`/${space} ${op}`);
  },
  _getColorSpace(color) {
    if (color instanceof SpotColor) {
      return color.id;
    }
    return color.length === 4 ? "DeviceCMYK" : "DeviceRGB";
  },
  fillColor(color, opacity) {
    const set = this._setColor(color, false);
    if (set) {
      this.fillOpacity(opacity);
    }
    this._fillColor = [color, opacity];
    return this;
  },
  strokeColor(color, opacity) {
    const set = this._setColor(color, true);
    if (set) {
      this.strokeOpacity(opacity);
    }
    return this;
  },
  opacity(opacity) {
    this._doOpacity(opacity, opacity);
    return this;
  },
  fillOpacity(opacity) {
    this._doOpacity(opacity, null);
    return this;
  },
  strokeOpacity(opacity) {
    this._doOpacity(null, opacity);
    return this;
  },
  _doOpacity(fillOpacity, strokeOpacity) {
    let dictionary, name;
    if (fillOpacity == null && strokeOpacity == null) {
      return;
    }
    if (fillOpacity != null) {
      fillOpacity = Math.max(0, Math.min(1, fillOpacity));
    }
    if (strokeOpacity != null) {
      strokeOpacity = Math.max(0, Math.min(1, strokeOpacity));
    }
    const key = `${fillOpacity}_${strokeOpacity}`;
    if (this._opacityRegistry[key]) {
      [dictionary, name] = this._opacityRegistry[key];
    } else {
      dictionary = {
        Type: "ExtGState"
      };
      if (fillOpacity != null) {
        dictionary.ca = fillOpacity;
      }
      if (strokeOpacity != null) {
        dictionary.CA = strokeOpacity;
      }
      dictionary = this.ref(dictionary);
      dictionary.end();
      const id = ++this._opacityCount;
      name = `Gs${id}`;
      this._opacityRegistry[key] = [dictionary, name];
    }
    this.page.ext_gstates[name] = dictionary;
    return this.addContent(`/${name} gs`);
  },
  linearGradient(x1, y1, x2, y22) {
    return new PDFLinearGradient2(this, x1, y1, x2, y22);
  },
  radialGradient(x1, y1, r1, x2, y22, r22) {
    return new PDFRadialGradient2(this, x1, y1, r1, x2, y22, r22);
  },
  pattern(bbox, xStep, yStep, stream7) {
    return new PDFTilingPattern2(this, bbox, xStep, yStep, stream7);
  },
  addSpotColor(name, C, M, Y, K) {
    const color = new SpotColor(this, name, C, M, Y, K);
    this.spotColors[name] = color;
    return this;
  }
};
var namedColors = {
  aliceblue: [240, 248, 255],
  antiquewhite: [250, 235, 215],
  aqua: [0, 255, 255],
  aquamarine: [127, 255, 212],
  azure: [240, 255, 255],
  beige: [245, 245, 220],
  bisque: [255, 228, 196],
  black: [0, 0, 0],
  blanchedalmond: [255, 235, 205],
  blue: [0, 0, 255],
  blueviolet: [138, 43, 226],
  brown: [165, 42, 42],
  burlywood: [222, 184, 135],
  cadetblue: [95, 158, 160],
  chartreuse: [127, 255, 0],
  chocolate: [210, 105, 30],
  coral: [255, 127, 80],
  cornflowerblue: [100, 149, 237],
  cornsilk: [255, 248, 220],
  crimson: [220, 20, 60],
  cyan: [0, 255, 255],
  darkblue: [0, 0, 139],
  darkcyan: [0, 139, 139],
  darkgoldenrod: [184, 134, 11],
  darkgray: [169, 169, 169],
  darkgreen: [0, 100, 0],
  darkgrey: [169, 169, 169],
  darkkhaki: [189, 183, 107],
  darkmagenta: [139, 0, 139],
  darkolivegreen: [85, 107, 47],
  darkorange: [255, 140, 0],
  darkorchid: [153, 50, 204],
  darkred: [139, 0, 0],
  darksalmon: [233, 150, 122],
  darkseagreen: [143, 188, 143],
  darkslateblue: [72, 61, 139],
  darkslategray: [47, 79, 79],
  darkslategrey: [47, 79, 79],
  darkturquoise: [0, 206, 209],
  darkviolet: [148, 0, 211],
  deeppink: [255, 20, 147],
  deepskyblue: [0, 191, 255],
  dimgray: [105, 105, 105],
  dimgrey: [105, 105, 105],
  dodgerblue: [30, 144, 255],
  firebrick: [178, 34, 34],
  floralwhite: [255, 250, 240],
  forestgreen: [34, 139, 34],
  fuchsia: [255, 0, 255],
  gainsboro: [220, 220, 220],
  ghostwhite: [248, 248, 255],
  gold: [255, 215, 0],
  goldenrod: [218, 165, 32],
  gray: [128, 128, 128],
  grey: [128, 128, 128],
  green: [0, 128, 0],
  greenyellow: [173, 255, 47],
  honeydew: [240, 255, 240],
  hotpink: [255, 105, 180],
  indianred: [205, 92, 92],
  indigo: [75, 0, 130],
  ivory: [255, 255, 240],
  khaki: [240, 230, 140],
  lavender: [230, 230, 250],
  lavenderblush: [255, 240, 245],
  lawngreen: [124, 252, 0],
  lemonchiffon: [255, 250, 205],
  lightblue: [173, 216, 230],
  lightcoral: [240, 128, 128],
  lightcyan: [224, 255, 255],
  lightgoldenrodyellow: [250, 250, 210],
  lightgray: [211, 211, 211],
  lightgreen: [144, 238, 144],
  lightgrey: [211, 211, 211],
  lightpink: [255, 182, 193],
  lightsalmon: [255, 160, 122],
  lightseagreen: [32, 178, 170],
  lightskyblue: [135, 206, 250],
  lightslategray: [119, 136, 153],
  lightslategrey: [119, 136, 153],
  lightsteelblue: [176, 196, 222],
  lightyellow: [255, 255, 224],
  lime: [0, 255, 0],
  limegreen: [50, 205, 50],
  linen: [250, 240, 230],
  magenta: [255, 0, 255],
  maroon: [128, 0, 0],
  mediumaquamarine: [102, 205, 170],
  mediumblue: [0, 0, 205],
  mediumorchid: [186, 85, 211],
  mediumpurple: [147, 112, 219],
  mediumseagreen: [60, 179, 113],
  mediumslateblue: [123, 104, 238],
  mediumspringgreen: [0, 250, 154],
  mediumturquoise: [72, 209, 204],
  mediumvioletred: [199, 21, 133],
  midnightblue: [25, 25, 112],
  mintcream: [245, 255, 250],
  mistyrose: [255, 228, 225],
  moccasin: [255, 228, 181],
  navajowhite: [255, 222, 173],
  navy: [0, 0, 128],
  oldlace: [253, 245, 230],
  olive: [128, 128, 0],
  olivedrab: [107, 142, 35],
  orange: [255, 165, 0],
  orangered: [255, 69, 0],
  orchid: [218, 112, 214],
  palegoldenrod: [238, 232, 170],
  palegreen: [152, 251, 152],
  paleturquoise: [175, 238, 238],
  palevioletred: [219, 112, 147],
  papayawhip: [255, 239, 213],
  peachpuff: [255, 218, 185],
  peru: [205, 133, 63],
  pink: [255, 192, 203],
  plum: [221, 160, 221],
  powderblue: [176, 224, 230],
  purple: [128, 0, 128],
  red: [255, 0, 0],
  rosybrown: [188, 143, 143],
  royalblue: [65, 105, 225],
  saddlebrown: [139, 69, 19],
  salmon: [250, 128, 114],
  sandybrown: [244, 164, 96],
  seagreen: [46, 139, 87],
  seashell: [255, 245, 238],
  sienna: [160, 82, 45],
  silver: [192, 192, 192],
  skyblue: [135, 206, 235],
  slateblue: [106, 90, 205],
  slategray: [112, 128, 144],
  slategrey: [112, 128, 144],
  snow: [255, 250, 250],
  springgreen: [0, 255, 127],
  steelblue: [70, 130, 180],
  tan: [210, 180, 140],
  teal: [0, 128, 128],
  thistle: [216, 191, 216],
  tomato: [255, 99, 71],
  turquoise: [64, 224, 208],
  violet: [238, 130, 238],
  wheat: [245, 222, 179],
  white: [255, 255, 255],
  whitesmoke: [245, 245, 245],
  yellow: [255, 255, 0],
  yellowgreen: [154, 205, 50]
};
var cx;
var cy;
var px;
var py;
var sx;
var sy;
cx = cy = px = py = sx = sy = 0;
var argsCountPerCommand = {
  M: 2,
  m: 2,
  Z: 0,
  z: 0,
  L: 2,
  l: 2,
  H: 1,
  h: 1,
  V: 1,
  v: 1,
  C: 6,
  c: 6,
  S: 4,
  s: 4,
  Q: 4,
  q: 4,
  T: 2,
  t: 2,
  A: 7,
  a: 7
};
var isCommand = (c6) => {
  return c6 in argsCountPerCommand;
};
var isWsp = (c6) => {
  const codePoint = c6.codePointAt(0);
  return codePoint === 32 || codePoint === 9 || codePoint === 13 || codePoint === 10;
};
var isDigit = (c6) => {
  const codePoint = c6.codePointAt(0);
  if (codePoint == null) {
    return false;
  }
  return 48 <= codePoint && codePoint <= 57;
};
var readNumber = (string, cursor) => {
  let i5 = cursor;
  let value2 = "";
  let state = (
    /** @type {ReadNumberState} */
    "none"
  );
  for (; i5 < string.length; i5 += 1) {
    const c6 = string[i5];
    if (c6 === "+" || c6 === "-") {
      if (state === "none") {
        state = "sign";
        value2 += c6;
        continue;
      }
      if (state === "e") {
        state = "exponent_sign";
        value2 += c6;
        continue;
      }
    }
    if (isDigit(c6)) {
      if (state === "none" || state === "sign" || state === "whole") {
        state = "whole";
        value2 += c6;
        continue;
      }
      if (state === "decimal_point" || state === "decimal") {
        state = "decimal";
        value2 += c6;
        continue;
      }
      if (state === "e" || state === "exponent_sign" || state === "exponent") {
        state = "exponent";
        value2 += c6;
        continue;
      }
    }
    if (c6 === ".") {
      if (state === "none" || state === "sign" || state === "whole") {
        state = "decimal_point";
        value2 += c6;
        continue;
      }
    }
    if (c6 === "E" || c6 === "e") {
      if (state === "whole" || state === "decimal_point" || state === "decimal") {
        state = "e";
        value2 += c6;
        continue;
      }
    }
    break;
  }
  const number3 = Number.parseFloat(value2);
  if (Number.isNaN(number3)) {
    return [cursor, null];
  }
  return [i5 - 1, number3];
};
var parsePathData = (string) => {
  const pathData = [];
  let command = null;
  let args = (
    /** @type {number[]} */
    []
  );
  let argsCount = 0;
  let canHaveComma = false;
  let hadComma = false;
  for (let i5 = 0; i5 < string.length; i5 += 1) {
    const c6 = string.charAt(i5);
    if (isWsp(c6)) {
      continue;
    }
    if (canHaveComma && c6 === ",") {
      if (hadComma) {
        break;
      }
      hadComma = true;
      continue;
    }
    if (isCommand(c6)) {
      if (hadComma) {
        return pathData;
      }
      if (command == null) {
        if (c6 !== "M" && c6 !== "m") {
          return pathData;
        }
      } else {
        if (args.length !== 0) {
          return pathData;
        }
      }
      command = c6;
      args = [];
      argsCount = argsCountPerCommand[command];
      canHaveComma = false;
      if (argsCount === 0) {
        pathData.push({
          command,
          args
        });
      }
      continue;
    }
    if (command == null) {
      return pathData;
    }
    let newCursor = i5;
    let number3 = null;
    if (command === "A" || command === "a") {
      const position = args.length;
      if (position === 0 || position === 1) {
        if (c6 !== "+" && c6 !== "-") {
          [newCursor, number3] = readNumber(string, i5);
        }
      }
      if (position === 2 || position === 5 || position === 6) {
        [newCursor, number3] = readNumber(string, i5);
      }
      if (position === 3 || position === 4) {
        if (c6 === "0") {
          number3 = 0;
        }
        if (c6 === "1") {
          number3 = 1;
        }
      }
    } else {
      [newCursor, number3] = readNumber(string, i5);
    }
    if (number3 == null) {
      return pathData;
    }
    args.push(number3);
    canHaveComma = true;
    hadComma = false;
    i5 = newCursor;
    if (args.length === argsCount) {
      pathData.push({
        command,
        args
      });
      if (command === "M") {
        command = "L";
      }
      if (command === "m") {
        command = "l";
      }
      args = [];
    }
  }
  return pathData;
};
var apply = function(commands, doc) {
  cx = cy = px = py = sx = sy = 0;
  for (let i5 = 0; i5 < commands.length; i5++) {
    const {
      command,
      args
    } = commands[i5];
    if (typeof runners[command] === "function") {
      runners[command](doc, args);
    }
  }
};
var runners = {
  M(doc, a5) {
    cx = a5[0];
    cy = a5[1];
    px = py = null;
    sx = cx;
    sy = cy;
    return doc.moveTo(cx, cy);
  },
  m(doc, a5) {
    cx += a5[0];
    cy += a5[1];
    px = py = null;
    sx = cx;
    sy = cy;
    return doc.moveTo(cx, cy);
  },
  C(doc, a5) {
    cx = a5[4];
    cy = a5[5];
    px = a5[2];
    py = a5[3];
    return doc.bezierCurveTo(...a5);
  },
  c(doc, a5) {
    doc.bezierCurveTo(a5[0] + cx, a5[1] + cy, a5[2] + cx, a5[3] + cy, a5[4] + cx, a5[5] + cy);
    px = cx + a5[2];
    py = cy + a5[3];
    cx += a5[4];
    return cy += a5[5];
  },
  S(doc, a5) {
    if (px === null) {
      px = cx;
      py = cy;
    }
    doc.bezierCurveTo(cx - (px - cx), cy - (py - cy), a5[0], a5[1], a5[2], a5[3]);
    px = a5[0];
    py = a5[1];
    cx = a5[2];
    return cy = a5[3];
  },
  s(doc, a5) {
    if (px === null) {
      px = cx;
      py = cy;
    }
    doc.bezierCurveTo(cx - (px - cx), cy - (py - cy), cx + a5[0], cy + a5[1], cx + a5[2], cy + a5[3]);
    px = cx + a5[0];
    py = cy + a5[1];
    cx += a5[2];
    return cy += a5[3];
  },
  Q(doc, a5) {
    px = a5[0];
    py = a5[1];
    cx = a5[2];
    cy = a5[3];
    return doc.quadraticCurveTo(a5[0], a5[1], cx, cy);
  },
  q(doc, a5) {
    doc.quadraticCurveTo(a5[0] + cx, a5[1] + cy, a5[2] + cx, a5[3] + cy);
    px = cx + a5[0];
    py = cy + a5[1];
    cx += a5[2];
    return cy += a5[3];
  },
  T(doc, a5) {
    if (px === null) {
      px = cx;
      py = cy;
    } else {
      px = cx - (px - cx);
      py = cy - (py - cy);
    }
    doc.quadraticCurveTo(px, py, a5[0], a5[1]);
    px = cx - (px - cx);
    py = cy - (py - cy);
    cx = a5[0];
    return cy = a5[1];
  },
  t(doc, a5) {
    if (px === null) {
      px = cx;
      py = cy;
    } else {
      px = cx - (px - cx);
      py = cy - (py - cy);
    }
    doc.quadraticCurveTo(px, py, cx + a5[0], cy + a5[1]);
    cx += a5[0];
    return cy += a5[1];
  },
  A(doc, a5) {
    solveArc(doc, cx, cy, a5);
    cx = a5[5];
    return cy = a5[6];
  },
  a(doc, a5) {
    a5[5] += cx;
    a5[6] += cy;
    solveArc(doc, cx, cy, a5);
    cx = a5[5];
    return cy = a5[6];
  },
  L(doc, a5) {
    cx = a5[0];
    cy = a5[1];
    px = py = null;
    return doc.lineTo(cx, cy);
  },
  l(doc, a5) {
    cx += a5[0];
    cy += a5[1];
    px = py = null;
    return doc.lineTo(cx, cy);
  },
  H(doc, a5) {
    cx = a5[0];
    px = py = null;
    return doc.lineTo(cx, cy);
  },
  h(doc, a5) {
    cx += a5[0];
    px = py = null;
    return doc.lineTo(cx, cy);
  },
  V(doc, a5) {
    cy = a5[0];
    px = py = null;
    return doc.lineTo(cx, cy);
  },
  v(doc, a5) {
    cy += a5[0];
    px = py = null;
    return doc.lineTo(cx, cy);
  },
  Z(doc) {
    doc.closePath();
    cx = sx;
    return cy = sy;
  },
  z(doc) {
    doc.closePath();
    cx = sx;
    return cy = sy;
  }
};
var solveArc = function(doc, x, y3, coords) {
  const [rx, ry, rot, large, sweep, ex, ey] = coords;
  const segs = arcToSegments(ex, ey, rx, ry, large, sweep, rot, x, y3);
  for (let seg of segs) {
    const bez = segmentToBezier(...seg);
    doc.bezierCurveTo(...bez);
  }
};
var arcToSegments = function(x, y3, rx, ry, large, sweep, rotateX, ox, oy) {
  const th = rotateX * (Math.PI / 180);
  const sin_th = Math.sin(th);
  const cos_th = Math.cos(th);
  rx = Math.abs(rx);
  ry = Math.abs(ry);
  px = cos_th * (ox - x) * 0.5 + sin_th * (oy - y3) * 0.5;
  py = cos_th * (oy - y3) * 0.5 - sin_th * (ox - x) * 0.5;
  let pl = px * px / (rx * rx) + py * py / (ry * ry);
  if (pl > 1) {
    pl = Math.sqrt(pl);
    rx *= pl;
    ry *= pl;
  }
  const a00 = cos_th / rx;
  const a01 = sin_th / rx;
  const a10 = -sin_th / ry;
  const a11 = cos_th / ry;
  const x0 = a00 * ox + a01 * oy;
  const y0 = a10 * ox + a11 * oy;
  const x1 = a00 * x + a01 * y3;
  const y1 = a10 * x + a11 * y3;
  const d3 = (x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0);
  let sfactor_sq = 1 / d3 - 0.25;
  if (sfactor_sq < 0) {
    sfactor_sq = 0;
  }
  let sfactor = Math.sqrt(sfactor_sq);
  if (sweep === large) {
    sfactor = -sfactor;
  }
  const xc = 0.5 * (x0 + x1) - sfactor * (y1 - y0);
  const yc = 0.5 * (y0 + y1) + sfactor * (x1 - x0);
  const th0 = Math.atan2(y0 - yc, x0 - xc);
  const th1 = Math.atan2(y1 - yc, x1 - xc);
  let th_arc = th1 - th0;
  if (th_arc < 0 && sweep === 1) {
    th_arc += 2 * Math.PI;
  } else if (th_arc > 0 && sweep === 0) {
    th_arc -= 2 * Math.PI;
  }
  const segments = Math.ceil(Math.abs(th_arc / (Math.PI * 0.5 + 1e-3)));
  const result = [];
  for (let i5 = 0; i5 < segments; i5++) {
    const th2 = th0 + i5 * th_arc / segments;
    const th3 = th0 + (i5 + 1) * th_arc / segments;
    result[i5] = [xc, yc, th2, th3, rx, ry, sin_th, cos_th];
  }
  return result;
};
var segmentToBezier = function(cx2, cy2, th0, th1, rx, ry, sin_th, cos_th) {
  const a00 = cos_th * rx;
  const a01 = -sin_th * ry;
  const a10 = sin_th * rx;
  const a11 = cos_th * ry;
  const th_half = 0.5 * (th1 - th0);
  const t4 = 8 / 3 * Math.sin(th_half * 0.5) * Math.sin(th_half * 0.5) / Math.sin(th_half);
  const x1 = cx2 + Math.cos(th0) - t4 * Math.sin(th0);
  const y1 = cy2 + Math.sin(th0) + t4 * Math.cos(th0);
  const x3 = cx2 + Math.cos(th1);
  const y3 = cy2 + Math.sin(th1);
  const x2 = x3 + t4 * Math.sin(th1);
  const y22 = y3 - t4 * Math.cos(th1);
  return [a00 * x1 + a01 * y1, a10 * x1 + a11 * y1, a00 * x2 + a01 * y22, a10 * x2 + a11 * y22, a00 * x3 + a01 * y3, a10 * x3 + a11 * y3];
};
var SVGPath = class {
  static apply(doc, path3) {
    const commands = parsePathData(path3);
    apply(commands, doc);
  }
};
var {
  number: number$1
} = PDFObject;
var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);
var VectorMixin = {
  initVector() {
    this._ctm = [1, 0, 0, 1, 0, 0];
    return this._ctmStack = [];
  },
  save() {
    this._ctmStack.push(this._ctm.slice());
    return this.addContent("q");
  },
  restore() {
    this._ctm = this._ctmStack.pop() || [1, 0, 0, 1, 0, 0];
    return this.addContent("Q");
  },
  closePath() {
    return this.addContent("h");
  },
  lineWidth(w) {
    return this.addContent(`${number$1(w)} w`);
  },
  _CAP_STYLES: {
    BUTT: 0,
    ROUND: 1,
    SQUARE: 2
  },
  lineCap(c6) {
    if (typeof c6 === "string") {
      c6 = this._CAP_STYLES[c6.toUpperCase()];
    }
    return this.addContent(`${c6} J`);
  },
  _JOIN_STYLES: {
    MITER: 0,
    ROUND: 1,
    BEVEL: 2
  },
  lineJoin(j) {
    if (typeof j === "string") {
      j = this._JOIN_STYLES[j.toUpperCase()];
    }
    return this.addContent(`${j} j`);
  },
  miterLimit(m3) {
    return this.addContent(`${number$1(m3)} M`);
  },
  dash(length2, options) {
    if (options === void 0) {
      options = {};
    }
    const originalLength = length2;
    if (!Array.isArray(length2)) {
      length2 = [length2, options.space || length2];
    }
    const valid = length2.every((x) => Number.isFinite(x) && x > 0);
    if (!valid) {
      throw new Error(`dash(${JSON.stringify(originalLength)}, ${JSON.stringify(options)}) invalid, lengths must be numeric and greater than zero`);
    }
    length2 = length2.map(number$1).join(" ");
    return this.addContent(`[${length2}] ${number$1(options.phase || 0)} d`);
  },
  undash() {
    return this.addContent("[] 0 d");
  },
  moveTo(x, y3) {
    return this.addContent(`${number$1(x)} ${number$1(y3)} m`);
  },
  lineTo(x, y3) {
    return this.addContent(`${number$1(x)} ${number$1(y3)} l`);
  },
  bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y3) {
    return this.addContent(`${number$1(cp1x)} ${number$1(cp1y)} ${number$1(cp2x)} ${number$1(cp2y)} ${number$1(x)} ${number$1(y3)} c`);
  },
  quadraticCurveTo(cpx, cpy, x, y3) {
    return this.addContent(`${number$1(cpx)} ${number$1(cpy)} ${number$1(x)} ${number$1(y3)} v`);
  },
  rect(x, y3, w, h4) {
    return this.addContent(`${number$1(x)} ${number$1(y3)} ${number$1(w)} ${number$1(h4)} re`);
  },
  roundedRect(x, y3, w, h4, r4) {
    if (r4 == null) {
      r4 = 0;
    }
    r4 = Math.min(r4, 0.5 * w, 0.5 * h4);
    const c6 = r4 * (1 - KAPPA);
    this.moveTo(x + r4, y3);
    this.lineTo(x + w - r4, y3);
    this.bezierCurveTo(x + w - c6, y3, x + w, y3 + c6, x + w, y3 + r4);
    this.lineTo(x + w, y3 + h4 - r4);
    this.bezierCurveTo(x + w, y3 + h4 - c6, x + w - c6, y3 + h4, x + w - r4, y3 + h4);
    this.lineTo(x + r4, y3 + h4);
    this.bezierCurveTo(x + c6, y3 + h4, x, y3 + h4 - c6, x, y3 + h4 - r4);
    this.lineTo(x, y3 + r4);
    this.bezierCurveTo(x, y3 + c6, x + c6, y3, x + r4, y3);
    return this.closePath();
  },
  ellipse(x, y3, r1, r22) {
    if (r22 == null) {
      r22 = r1;
    }
    x -= r1;
    y3 -= r22;
    const ox = r1 * KAPPA;
    const oy = r22 * KAPPA;
    const xe = x + r1 * 2;
    const ye = y3 + r22 * 2;
    const xm = x + r1;
    const ym = y3 + r22;
    this.moveTo(x, ym);
    this.bezierCurveTo(x, ym - oy, xm - ox, y3, xm, y3);
    this.bezierCurveTo(xm + ox, y3, xe, ym - oy, xe, ym);
    this.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);
    this.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);
    return this.closePath();
  },
  circle(x, y3, radius) {
    return this.ellipse(x, y3, radius);
  },
  arc(x, y3, radius, startAngle, endAngle, anticlockwise) {
    if (anticlockwise == null) {
      anticlockwise = false;
    }
    const TWO_PI = 2 * Math.PI;
    const HALF_PI = 0.5 * Math.PI;
    let deltaAng = endAngle - startAngle;
    if (Math.abs(deltaAng) > TWO_PI) {
      deltaAng = TWO_PI;
    } else if (deltaAng !== 0 && anticlockwise !== deltaAng < 0) {
      const dir = anticlockwise ? -1 : 1;
      deltaAng = dir * TWO_PI + deltaAng;
    }
    const numSegs = Math.ceil(Math.abs(deltaAng) / HALF_PI);
    const segAng = deltaAng / numSegs;
    const handleLen = segAng / HALF_PI * KAPPA * radius;
    let curAng = startAngle;
    let deltaCx = -Math.sin(curAng) * handleLen;
    let deltaCy = Math.cos(curAng) * handleLen;
    let ax = x + Math.cos(curAng) * radius;
    let ay = y3 + Math.sin(curAng) * radius;
    this.moveTo(ax, ay);
    for (let segIdx = 0; segIdx < numSegs; segIdx++) {
      const cp1x = ax + deltaCx;
      const cp1y = ay + deltaCy;
      curAng += segAng;
      ax = x + Math.cos(curAng) * radius;
      ay = y3 + Math.sin(curAng) * radius;
      deltaCx = -Math.sin(curAng) * handleLen;
      deltaCy = Math.cos(curAng) * handleLen;
      const cp2x = ax - deltaCx;
      const cp2y = ay - deltaCy;
      this.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, ax, ay);
    }
    return this;
  },
  polygon() {
    for (var _len = arguments.length, points = new Array(_len), _key = 0; _key < _len; _key++) {
      points[_key] = arguments[_key];
    }
    this.moveTo(...points.shift() || []);
    for (let point of points) {
      this.lineTo(...point || []);
    }
    return this.closePath();
  },
  path(path3) {
    SVGPath.apply(this, path3);
    return this;
  },
  _windingRule(rule) {
    if (/even-?odd/.test(rule)) {
      return "*";
    }
    return "";
  },
  fill(color, rule) {
    if (/(even-?odd)|(non-?zero)/.test(color)) {
      rule = color;
      color = null;
    }
    if (color) {
      this.fillColor(color);
    }
    return this.addContent(`f${this._windingRule(rule)}`);
  },
  stroke(color) {
    if (color) {
      this.strokeColor(color);
    }
    return this.addContent("S");
  },
  fillAndStroke(fillColor, strokeColor, rule) {
    if (strokeColor == null) {
      strokeColor = fillColor;
    }
    const isFillRule = /(even-?odd)|(non-?zero)/;
    if (isFillRule.test(fillColor)) {
      rule = fillColor;
      fillColor = null;
    }
    if (isFillRule.test(strokeColor)) {
      rule = strokeColor;
      strokeColor = fillColor;
    }
    if (fillColor) {
      this.fillColor(fillColor);
      this.strokeColor(strokeColor);
    }
    return this.addContent(`B${this._windingRule(rule)}`);
  },
  clip(rule) {
    return this.addContent(`W${this._windingRule(rule)} n`);
  },
  transform(m11, m12, m21, m22, dx, dy) {
    if (m11 === 1 && m12 === 0 && m21 === 0 && m22 === 1 && dx === 0 && dy === 0) {
      return this;
    }
    const m3 = this._ctm;
    const [m0, m1, m23, m32, m4, m5] = m3;
    m3[0] = m0 * m11 + m23 * m12;
    m3[1] = m1 * m11 + m32 * m12;
    m3[2] = m0 * m21 + m23 * m22;
    m3[3] = m1 * m21 + m32 * m22;
    m3[4] = m0 * dx + m23 * dy + m4;
    m3[5] = m1 * dx + m32 * dy + m5;
    const values = [m11, m12, m21, m22, dx, dy].map((v3) => number$1(v3)).join(" ");
    return this.addContent(`${values} cm`);
  },
  translate(x, y3) {
    return this.transform(1, 0, 0, 1, x, y3);
  },
  rotate(angle, options) {
    if (options === void 0) {
      options = {};
    }
    let y3;
    const rad = angle * Math.PI / 180;
    const cos = Math.cos(rad);
    const sin = Math.sin(rad);
    let x = y3 = 0;
    if (options.origin != null) {
      [x, y3] = options.origin;
      const x1 = x * cos - y3 * sin;
      const y1 = x * sin + y3 * cos;
      x -= x1;
      y3 -= y1;
    }
    return this.transform(cos, sin, -sin, cos, x, y3);
  },
  scale(xFactor, yFactor, options) {
    if (options === void 0) {
      options = {};
    }
    let y3;
    if (yFactor == null) {
      yFactor = xFactor;
    }
    if (typeof yFactor === "object") {
      options = yFactor;
      yFactor = xFactor;
    }
    let x = y3 = 0;
    if (options.origin != null) {
      [x, y3] = options.origin;
      x -= xFactor * x;
      y3 -= yFactor * y3;
    }
    return this.transform(xFactor, 0, 0, yFactor, x, y3);
  }
};
var range = (left, right, inclusive) => {
  let range2 = [];
  let end2 = right + 1;
  for (let i5 = left; i5 < end2; i5++) {
    range2.push(i5);
  }
  return range2;
};
var WIN_ANSI_MAP = {
  402: 131,
  8211: 150,
  8212: 151,
  8216: 145,
  8217: 146,
  8218: 130,
  8220: 147,
  8221: 148,
  8222: 132,
  8224: 134,
  8225: 135,
  8226: 149,
  8230: 133,
  8364: 128,
  8240: 137,
  8249: 139,
  8250: 155,
  710: 136,
  8482: 153,
  338: 140,
  339: 156,
  732: 152,
  352: 138,
  353: 154,
  376: 159,
  381: 142,
  382: 158
};
var characters = `.notdef       .notdef        .notdef        .notdef
.notdef       .notdef        .notdef        .notdef
.notdef       .notdef        .notdef        .notdef
.notdef       .notdef        .notdef        .notdef
.notdef       .notdef        .notdef        .notdef
.notdef       .notdef        .notdef        .notdef
.notdef       .notdef        .notdef        .notdef
.notdef       .notdef        .notdef        .notdef

space         exclam         quotedbl       numbersign
dollar        percent        ampersand      quotesingle
parenleft     parenright     asterisk       plus
comma         hyphen         period         slash
zero          one            two            three
four          five           six            seven
eight         nine           colon          semicolon
less          equal          greater        question

at            A              B              C
D             E              F              G
H             I              J              K
L             M              N              O
P             Q              R              S
T             U              V              W
X             Y              Z              bracketleft
backslash     bracketright   asciicircum    underscore

grave         a              b              c
d             e              f              g
h             i              j              k
l             m              n              o
p             q              r              s
t             u              v              w
x             y              z              braceleft
bar           braceright     asciitilde     .notdef

Euro          .notdef        quotesinglbase florin
quotedblbase  ellipsis       dagger         daggerdbl
circumflex    perthousand    Scaron         guilsinglleft
OE            .notdef        Zcaron         .notdef
.notdef       quoteleft      quoteright     quotedblleft
quotedblright bullet         endash         emdash
tilde         trademark      scaron         guilsinglright
oe            .notdef        zcaron         ydieresis

space         exclamdown     cent           sterling
currency      yen            brokenbar      section
dieresis      copyright      ordfeminine    guillemotleft
logicalnot    softhyphen     registered     macron
degree        plusminus      twosuperior    threesuperior
acute         mu             paragraph      periodcentered
cedilla       onesuperior    ordmasculine   guillemotright
onequarter    onehalf        threequarters  questiondown

Agrave        Aacute         Acircumflex    Atilde
Adieresis     Aring          AE             Ccedilla
Egrave        Eacute         Ecircumflex    Edieresis
Igrave        Iacute         Icircumflex    Idieresis
Eth           Ntilde         Ograve         Oacute
Ocircumflex   Otilde         Odieresis      multiply
Oslash        Ugrave         Uacute         Ucircumflex
Udieresis     Yacute         Thorn          germandbls

agrave        aacute         acircumflex    atilde
adieresis     aring          ae             ccedilla
egrave        eacute         ecircumflex    edieresis
igrave        iacute         icircumflex    idieresis
eth           ntilde         ograve         oacute
ocircumflex   otilde         odieresis      divide
oslash        ugrave         uacute         ucircumflex
udieresis     yacute         thorn          ydieresis`.split(/\s+/);
function parse(contents) {
  const obj = {
    attributes: {},
    glyphWidths: {},
    kernPairs: {}
  };
  let section = "";
  for (let line2 of contents.split("\n")) {
    var match;
    var a5;
    if (match = line2.match(/^Start(\w+)/)) {
      section = match[1];
      continue;
    } else if (match = line2.match(/^End(\w+)/)) {
      section = "";
      continue;
    }
    switch (section) {
      case "FontMetrics":
        match = line2.match(/(^\w+)\s+(.*)/);
        var key = match[1];
        var value2 = match[2];
        if (a5 = obj.attributes[key]) {
          if (!Array.isArray(a5)) {
            a5 = obj.attributes[key] = [a5];
          }
          a5.push(value2);
        } else {
          obj.attributes[key] = value2;
        }
        break;
      case "CharMetrics":
        if (!/^CH?\s/.test(line2)) {
          continue;
        }
        var name = line2.match(/\bN\s+(\.?\w+)\s*;/)[1];
        obj.glyphWidths[name] = +line2.match(/\bWX\s+(\d+)\s*;/)[1];
        break;
      case "KernPairs":
        match = line2.match(/^KPX\s+(\.?\w+)\s+(\.?\w+)\s+(-?\d+)/);
        if (match) {
          obj.kernPairs[match[1] + match[2]] = parseInt(match[3]);
        }
        break;
    }
  }
  return obj;
}
var AFMFont = class _AFMFont {
  static open(filename) {
    return new _AFMFont(fs4.readFileSync(filename, "utf8"));
  }
  static fromJson(json) {
    return new _AFMFont(json);
  }
  constructor(contents) {
    if (typeof contents === "string") {
      this.contents = contents;
      this.parse();
    } else {
      this.attributes = contents.attributes;
      this.glyphWidths = contents.glyphWidths;
      this.kernPairs = contents.kernPairs;
    }
    this.charWidths = range(0, 255).map((i5) => this.glyphWidths[characters[i5]]);
    this.bbox = Array.from(this.attributes.FontBBox.split(/\s+/)).map((e4) => +e4);
    this.ascender = +(this.attributes.Ascender || 0);
    this.descender = +(this.attributes.Descender || 0);
    this.xHeight = +(this.attributes.XHeight || 0);
    this.capHeight = +(this.attributes.CapHeight || 0);
    this.lineGap = this.bbox[3] - this.bbox[1] - (this.ascender - this.descender);
  }
  parse() {
    const parsed = parse(this.contents);
    this.attributes = parsed.attributes;
    this.glyphWidths = parsed.glyphWidths;
    this.kernPairs = parsed.kernPairs;
  }
  encodeText(text) {
    const res = [];
    for (let i5 = 0, end2 = text.length, asc = 0 <= end2; asc ? i5 < end2 : i5 > end2; asc ? i5++ : i5--) {
      let char = text.charCodeAt(i5);
      char = WIN_ANSI_MAP[char] || char;
      res.push(char.toString(16));
    }
    return res;
  }
  glyphsForString(string) {
    const glyphs = [];
    for (let i5 = 0, end2 = string.length, asc = 0 <= end2; asc ? i5 < end2 : i5 > end2; asc ? i5++ : i5--) {
      const charCode = string.charCodeAt(i5);
      glyphs.push(this.characterToGlyph(charCode));
    }
    return glyphs;
  }
  characterToGlyph(character) {
    return characters[WIN_ANSI_MAP[character] || character] || ".notdef";
  }
  widthOfGlyph(glyph) {
    return this.glyphWidths[glyph] || 0;
  }
  getKernPair(left, right) {
    return this.kernPairs[left + right] || 0;
  }
  advancesForGlyphs(glyphs) {
    const advances = [];
    for (let index2 = 0; index2 < glyphs.length; index2++) {
      const left = glyphs[index2];
      const right = glyphs[index2 + 1];
      advances.push(this.widthOfGlyph(left) + this.getKernPair(left, right));
    }
    return advances;
  }
};
var attributes = [
  {
    Comment: [
      "Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
      "Creation Date: Thu May  1 12:43:52 1997",
      "UniqueID 43052",
      "VMusage 37169 48194"
    ],
    FontName: "Helvetica-Bold",
    FullName: "Helvetica Bold",
    FamilyName: "Helvetica",
    Weight: "Bold",
    ItalicAngle: "0",
    IsFixedPitch: "false",
    CharacterSet: "ExtendedRoman",
    FontBBox: "-170 -228 1003 962 ",
    UnderlinePosition: "-100",
    UnderlineThickness: "50",
    Version: "002.000",
    Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated.  All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.",
    EncodingScheme: "AdobeStandardEncoding",
    CapHeight: "718",
    XHeight: "532",
    Ascender: "718",
    Descender: "-207",
    StdHW: "118",
    StdVW: "140"
  },
  {
    Comment: [
      "Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
      "Creation Date: Thu May  1 12:45:12 1997",
      "UniqueID 43053",
      "VMusage 14482 68586"
    ],
    FontName: "Helvetica-BoldOblique",
    FullName: "Helvetica Bold Oblique",
    FamilyName: "Helvetica",
    Weight: "Bold",
    ItalicAngle: "-12",
    IsFixedPitch: "false",
    CharacterSet: "ExtendedRoman",
    FontBBox: "-174 -228 1114 962",
    UnderlinePosition: "-100",
    UnderlineThickness: "50",
    Version: "002.000",
    Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated.  All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.",
    EncodingScheme: "AdobeStandardEncoding",
    CapHeight: "718",
    XHeight: "532",
    Ascender: "718",
    Descender: "-207",
    StdHW: "118",
    StdVW: "140"
  },
  {
    Comment: [
      "Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
      "Creation Date: Thu May  1 12:44:31 1997",
      "UniqueID 43055",
      "VMusage 14960 69346"
    ],
    FontName: "Helvetica-Oblique",
    FullName: "Helvetica Oblique",
    FamilyName: "Helvetica",
    Weight: "Medium",
    ItalicAngle: "-12",
    IsFixedPitch: "false",
    CharacterSet: "ExtendedRoman",
    FontBBox: "-170 -225 1116 931 ",
    UnderlinePosition: "-100",
    UnderlineThickness: "50",
    Version: "002.000",
    Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated.  All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.",
    EncodingScheme: "AdobeStandardEncoding",
    CapHeight: "718",
    XHeight: "523",
    Ascender: "718",
    Descender: "-207",
    StdHW: "76",
    StdVW: "88"
  },
  {
    Comment: [
      "Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
      "Creation Date: Thu May  1 12:38:23 1997",
      "UniqueID 43054",
      "VMusage 37069 48094"
    ],
    FontName: "Helvetica",
    FullName: "Helvetica",
    FamilyName: "Helvetica",
    Weight: "Medium",
    ItalicAngle: "0",
    IsFixedPitch: "false",
    CharacterSet: "ExtendedRoman",
    FontBBox: "-166 -225 1000 931 ",
    UnderlinePosition: "-100",
    UnderlineThickness: "50",
    Version: "002.000",
    Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated.  All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.",
    EncodingScheme: "AdobeStandardEncoding",
    CapHeight: "718",
    XHeight: "523",
    Ascender: "718",
    Descender: "-207",
    StdHW: "76",
    StdVW: "88"
  },
  {
    Comment: [
      "Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
      "Creation Date: Thu May  1 12:52:56 1997",
      "UniqueID 43065",
      "VMusage 41636 52661"
    ],
    FontName: "Times-Bold",
    FullName: "Times Bold",
    FamilyName: "Times",
    Weight: "Bold",
    ItalicAngle: "0",
    IsFixedPitch: "false",
    CharacterSet: "ExtendedRoman",
    FontBBox: "-168 -218 1000 935 ",
    UnderlinePosition: "-100",
    UnderlineThickness: "50",
    Version: "002.000",
    Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.",
    EncodingScheme: "AdobeStandardEncoding",
    CapHeight: "676",
    XHeight: "461",
    Ascender: "683",
    Descender: "-217",
    StdHW: "44",
    StdVW: "139"
  },
  {
    Comment: [
      "Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
      "Creation Date: Thu May  1 13:04:06 1997",
      "UniqueID 43066",
      "VMusage 45874 56899"
    ],
    FontName: "Times-BoldItalic",
    FullName: "Times Bold Italic",
    FamilyName: "Times",
    Weight: "Bold",
    ItalicAngle: "-15",
    IsFixedPitch: "false",
    CharacterSet: "ExtendedRoman",
    FontBBox: "-200 -218 996 921",
    UnderlinePosition: "-100",
    UnderlineThickness: "50",
    Version: "002.000",
    Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.",
    EncodingScheme: "AdobeStandardEncoding",
    CapHeight: "669",
    XHeight: "462",
    Ascender: "683",
    Descender: "-217",
    StdHW: "42",
    StdVW: "121"
  },
  {
    Comment: [
      "Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
      "Creation Date: Thu May  1 12:56:55 1997",
      "UniqueID 43067",
      "VMusage 47727 58752"
    ],
    FontName: "Times-Italic",
    FullName: "Times Italic",
    FamilyName: "Times",
    Weight: "Medium",
    ItalicAngle: "-15.5",
    IsFixedPitch: "false",
    CharacterSet: "ExtendedRoman",
    FontBBox: "-169 -217 1010 883 ",
    UnderlinePosition: "-100",
    UnderlineThickness: "50",
    Version: "002.000",
    Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.",
    EncodingScheme: "AdobeStandardEncoding",
    CapHeight: "653",
    XHeight: "441",
    Ascender: "683",
    Descender: "-217",
    StdHW: "32",
    StdVW: "76"
  },
  {
    Comment: [
      "Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
      "Creation Date: Thu May  1 12:49:17 1997",
      "UniqueID 43068",
      "VMusage 43909 54934"
    ],
    FontName: "Times-Roman",
    FullName: "Times Roman",
    FamilyName: "Times",
    Weight: "Roman",
    ItalicAngle: "0",
    IsFixedPitch: "false",
    CharacterSet: "ExtendedRoman",
    FontBBox: "-168 -218 1000 898 ",
    UnderlinePosition: "-100",
    UnderlineThickness: "50",
    Version: "002.000",
    Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.",
    EncodingScheme: "AdobeStandardEncoding",
    CapHeight: "662",
    XHeight: "450",
    Ascender: "683",
    Descender: "-217",
    StdHW: "28",
    StdVW: "84"
  },
  {
    Comment: [
      "Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
      "Creation Date: Mon Jun 23 16:28:00 1997",
      "UniqueID 43048",
      "VMusage 41139 52164"
    ],
    FontName: "Courier-Bold",
    FullName: "Courier Bold",
    FamilyName: "Courier",
    Weight: "Bold",
    ItalicAngle: "0",
    IsFixedPitch: "true",
    CharacterSet: "ExtendedRoman",
    FontBBox: "-113 -250 749 801 ",
    UnderlinePosition: "-100",
    UnderlineThickness: "50",
    Version: "003.000",
    Notice: "Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
    EncodingScheme: "AdobeStandardEncoding",
    CapHeight: "562",
    XHeight: "439",
    Ascender: "629",
    Descender: "-157",
    StdHW: "84",
    StdVW: "106"
  },
  {
    Comment: [
      "Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
      "Creation Date: Mon Jun 23 16:28:46 1997",
      "UniqueID 43049",
      "VMusage 17529 79244"
    ],
    FontName: "Courier-BoldOblique",
    FullName: "Courier Bold Oblique",
    FamilyName: "Courier",
    Weight: "Bold",
    ItalicAngle: "-12",
    IsFixedPitch: "true",
    CharacterSet: "ExtendedRoman",
    FontBBox: "-57 -250 869 801",
    UnderlinePosition: "-100",
    UnderlineThickness: "50",
    Version: "003.000",
    Notice: "Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
    EncodingScheme: "AdobeStandardEncoding",
    CapHeight: "562",
    XHeight: "439",
    Ascender: "629",
    Descender: "-157",
    StdHW: "84",
    StdVW: "106"
  },
  {
    Comment: [
      "Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
      "Creation Date: Thu May  1 17:37:52 1997",
      "UniqueID 43051",
      "VMusage 16248 75829"
    ],
    FontName: "Courier-Oblique",
    FullName: "Courier Oblique",
    FamilyName: "Courier",
    Weight: "Medium",
    ItalicAngle: "-12",
    IsFixedPitch: "true",
    CharacterSet: "ExtendedRoman",
    FontBBox: "-27 -250 849 805 ",
    UnderlinePosition: "-100",
    UnderlineThickness: "50",
    Version: "003.000",
    Notice: "Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
    EncodingScheme: "AdobeStandardEncoding",
    CapHeight: "562",
    XHeight: "426",
    Ascender: "629",
    Descender: "-157",
    StdHW: "51",
    StdVW: "51"
  },
  {
    Comment: [
      "Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
      "Creation Date: Thu May  1 17:27:09 1997",
      "UniqueID 43050",
      "VMusage 39754 50779"
    ],
    FontName: "Courier",
    FullName: "Courier",
    FamilyName: "Courier",
    Weight: "Medium",
    ItalicAngle: "0",
    IsFixedPitch: "true",
    CharacterSet: "ExtendedRoman",
    FontBBox: "-23 -250 715 805 ",
    UnderlinePosition: "-100",
    UnderlineThickness: "50",
    Version: "003.000",
    Notice: "Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated.  All Rights Reserved.",
    EncodingScheme: "AdobeStandardEncoding",
    CapHeight: "562",
    XHeight: "426",
    Ascender: "629",
    Descender: "-157",
    StdHW: "51",
    StdVW: "51"
  }
];
var glyphWidths = {
  space: [
    278,
    278,
    278,
    278,
    250,
    250,
    250,
    250,
    600,
    600,
    600,
    600
  ],
  exclam: [
    333,
    333,
    278,
    278,
    333,
    389,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  quotedbl: [
    474,
    474,
    355,
    355,
    555,
    555,
    420,
    408,
    600,
    600,
    600,
    600
  ],
  numbersign: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  dollar: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  percent: [
    889,
    889,
    889,
    889,
    1e3,
    833,
    833,
    833,
    600,
    600,
    600,
    600
  ],
  ampersand: [
    722,
    722,
    667,
    667,
    833,
    778,
    778,
    778,
    600,
    600,
    600,
    600
  ],
  quoteright: [
    278,
    278,
    222,
    222,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  parenleft: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  parenright: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  asterisk: [
    389,
    389,
    389,
    389,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  plus: [
    584,
    584,
    584,
    584,
    570,
    570,
    675,
    564,
    600,
    600,
    600,
    600
  ],
  comma: [
    278,
    278,
    278,
    278,
    250,
    250,
    250,
    250,
    600,
    600,
    600,
    600
  ],
  hyphen: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  period: [
    278,
    278,
    278,
    278,
    250,
    250,
    250,
    250,
    600,
    600,
    600,
    600
  ],
  slash: [
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  zero: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  one: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  two: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  three: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  four: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  five: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  six: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  seven: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  eight: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  nine: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  colon: [
    333,
    333,
    278,
    278,
    333,
    333,
    333,
    278,
    600,
    600,
    600,
    600
  ],
  semicolon: [
    333,
    333,
    278,
    278,
    333,
    333,
    333,
    278,
    600,
    600,
    600,
    600
  ],
  less: [
    584,
    584,
    584,
    584,
    570,
    570,
    675,
    564,
    600,
    600,
    600,
    600
  ],
  equal: [
    584,
    584,
    584,
    584,
    570,
    570,
    675,
    564,
    600,
    600,
    600,
    600
  ],
  greater: [
    584,
    584,
    584,
    584,
    570,
    570,
    675,
    564,
    600,
    600,
    600,
    600
  ],
  question: [
    611,
    611,
    556,
    556,
    500,
    500,
    500,
    444,
    600,
    600,
    600,
    600
  ],
  at: [
    975,
    975,
    1015,
    1015,
    930,
    832,
    920,
    921,
    600,
    600,
    600,
    600
  ],
  A: [
    722,
    722,
    667,
    667,
    722,
    667,
    611,
    722,
    600,
    600,
    600,
    600
  ],
  B: [
    722,
    722,
    667,
    667,
    667,
    667,
    611,
    667,
    600,
    600,
    600,
    600
  ],
  C: [
    722,
    722,
    722,
    722,
    722,
    667,
    667,
    667,
    600,
    600,
    600,
    600
  ],
  D: [
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  E: [
    667,
    667,
    667,
    667,
    667,
    667,
    611,
    611,
    600,
    600,
    600,
    600
  ],
  F: [
    611,
    611,
    611,
    611,
    611,
    667,
    611,
    556,
    600,
    600,
    600,
    600
  ],
  G: [
    778,
    778,
    778,
    778,
    778,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  H: [
    722,
    722,
    722,
    722,
    778,
    778,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  I: [
    278,
    278,
    278,
    278,
    389,
    389,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  J: [
    556,
    556,
    500,
    500,
    500,
    500,
    444,
    389,
    600,
    600,
    600,
    600
  ],
  K: [
    722,
    722,
    667,
    667,
    778,
    667,
    667,
    722,
    600,
    600,
    600,
    600
  ],
  L: [
    611,
    611,
    556,
    556,
    667,
    611,
    556,
    611,
    600,
    600,
    600,
    600
  ],
  M: [
    833,
    833,
    833,
    833,
    944,
    889,
    833,
    889,
    600,
    600,
    600,
    600
  ],
  N: [
    722,
    722,
    722,
    722,
    722,
    722,
    667,
    722,
    600,
    600,
    600,
    600
  ],
  O: [
    778,
    778,
    778,
    778,
    778,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  P: [
    667,
    667,
    667,
    667,
    611,
    611,
    611,
    556,
    600,
    600,
    600,
    600
  ],
  Q: [
    778,
    778,
    778,
    778,
    778,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  R: [
    722,
    722,
    722,
    722,
    722,
    667,
    611,
    667,
    600,
    600,
    600,
    600
  ],
  S: [
    667,
    667,
    667,
    667,
    556,
    556,
    500,
    556,
    600,
    600,
    600,
    600
  ],
  T: [
    611,
    611,
    611,
    611,
    667,
    611,
    556,
    611,
    600,
    600,
    600,
    600
  ],
  U: [
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  V: [
    667,
    667,
    667,
    667,
    722,
    667,
    611,
    722,
    600,
    600,
    600,
    600
  ],
  W: [
    944,
    944,
    944,
    944,
    1e3,
    889,
    833,
    944,
    600,
    600,
    600,
    600
  ],
  X: [
    667,
    667,
    667,
    667,
    722,
    667,
    611,
    722,
    600,
    600,
    600,
    600
  ],
  Y: [
    667,
    667,
    667,
    667,
    722,
    611,
    556,
    722,
    600,
    600,
    600,
    600
  ],
  Z: [
    611,
    611,
    611,
    611,
    667,
    611,
    556,
    611,
    600,
    600,
    600,
    600
  ],
  bracketleft: [
    333,
    333,
    278,
    278,
    333,
    333,
    389,
    333,
    600,
    600,
    600,
    600
  ],
  backslash: [
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  bracketright: [
    333,
    333,
    278,
    278,
    333,
    333,
    389,
    333,
    600,
    600,
    600,
    600
  ],
  asciicircum: [
    584,
    584,
    469,
    469,
    581,
    570,
    422,
    469,
    600,
    600,
    600,
    600
  ],
  underscore: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  quoteleft: [
    278,
    278,
    222,
    222,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  a: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    444,
    600,
    600,
    600,
    600
  ],
  b: [
    611,
    611,
    556,
    556,
    556,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  c: [
    556,
    556,
    500,
    500,
    444,
    444,
    444,
    444,
    600,
    600,
    600,
    600
  ],
  d: [
    611,
    611,
    556,
    556,
    556,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  e: [
    556,
    556,
    556,
    556,
    444,
    444,
    444,
    444,
    600,
    600,
    600,
    600
  ],
  f: [
    333,
    333,
    278,
    278,
    333,
    333,
    278,
    333,
    600,
    600,
    600,
    600
  ],
  g: [
    611,
    611,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  h: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  i: [
    278,
    278,
    222,
    222,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  j: [
    278,
    278,
    222,
    222,
    333,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  k: [
    556,
    556,
    500,
    500,
    556,
    500,
    444,
    500,
    600,
    600,
    600,
    600
  ],
  l: [
    278,
    278,
    222,
    222,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  m: [
    889,
    889,
    833,
    833,
    833,
    778,
    722,
    778,
    600,
    600,
    600,
    600
  ],
  n: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  o: [
    611,
    611,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  p: [
    611,
    611,
    556,
    556,
    556,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  q: [
    611,
    611,
    556,
    556,
    556,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  r: [
    389,
    389,
    333,
    333,
    444,
    389,
    389,
    333,
    600,
    600,
    600,
    600
  ],
  s: [
    556,
    556,
    500,
    500,
    389,
    389,
    389,
    389,
    600,
    600,
    600,
    600
  ],
  t: [
    333,
    333,
    278,
    278,
    333,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  u: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  v: [
    556,
    556,
    500,
    500,
    500,
    444,
    444,
    500,
    600,
    600,
    600,
    600
  ],
  w: [
    778,
    778,
    722,
    722,
    722,
    667,
    667,
    722,
    600,
    600,
    600,
    600
  ],
  x: [
    556,
    556,
    500,
    500,
    500,
    500,
    444,
    500,
    600,
    600,
    600,
    600
  ],
  y: [
    556,
    556,
    500,
    500,
    500,
    444,
    444,
    500,
    600,
    600,
    600,
    600
  ],
  z: [
    500,
    500,
    500,
    500,
    444,
    389,
    389,
    444,
    600,
    600,
    600,
    600
  ],
  braceleft: [
    389,
    389,
    334,
    334,
    394,
    348,
    400,
    480,
    600,
    600,
    600,
    600
  ],
  bar: [
    280,
    280,
    260,
    260,
    220,
    220,
    275,
    200,
    600,
    600,
    600,
    600
  ],
  braceright: [
    389,
    389,
    334,
    334,
    394,
    348,
    400,
    480,
    600,
    600,
    600,
    600
  ],
  asciitilde: [
    584,
    584,
    584,
    584,
    520,
    570,
    541,
    541,
    600,
    600,
    600,
    600
  ],
  exclamdown: [
    333,
    333,
    333,
    333,
    333,
    389,
    389,
    333,
    600,
    600,
    600,
    600
  ],
  cent: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  sterling: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  fraction: [
    167,
    167,
    167,
    167,
    167,
    167,
    167,
    167,
    600,
    600,
    600,
    600
  ],
  yen: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  florin: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  section: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  currency: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  quotesingle: [
    238,
    238,
    191,
    191,
    278,
    278,
    214,
    180,
    600,
    600,
    600,
    600
  ],
  quotedblleft: [
    500,
    500,
    333,
    333,
    500,
    500,
    556,
    444,
    600,
    600,
    600,
    600
  ],
  guillemotleft: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  guilsinglleft: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  guilsinglright: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  fi: [
    611,
    611,
    500,
    500,
    556,
    556,
    500,
    556,
    600,
    600,
    600,
    600
  ],
  fl: [
    611,
    611,
    500,
    500,
    556,
    556,
    500,
    556,
    600,
    600,
    600,
    600
  ],
  endash: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  dagger: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  daggerdbl: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  periodcentered: [
    278,
    278,
    278,
    278,
    250,
    250,
    250,
    250,
    600,
    600,
    600,
    600
  ],
  paragraph: [
    556,
    556,
    537,
    537,
    540,
    500,
    523,
    453,
    600,
    600,
    600,
    600
  ],
  bullet: [
    350,
    350,
    350,
    350,
    350,
    350,
    350,
    350,
    600,
    600,
    600,
    600
  ],
  quotesinglbase: [
    278,
    278,
    222,
    222,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  quotedblbase: [
    500,
    500,
    333,
    333,
    500,
    500,
    556,
    444,
    600,
    600,
    600,
    600
  ],
  quotedblright: [
    500,
    500,
    333,
    333,
    500,
    500,
    556,
    444,
    600,
    600,
    600,
    600
  ],
  guillemotright: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  ellipsis: [
    1e3,
    1e3,
    1e3,
    1e3,
    1e3,
    1e3,
    889,
    1e3,
    600,
    600,
    600,
    600
  ],
  perthousand: [
    1e3,
    1e3,
    1e3,
    1e3,
    1e3,
    1e3,
    1e3,
    1e3,
    600,
    600,
    600,
    600
  ],
  questiondown: [
    611,
    611,
    611,
    611,
    500,
    500,
    500,
    444,
    600,
    600,
    600,
    600
  ],
  grave: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  acute: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  circumflex: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  tilde: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  macron: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  breve: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  dotaccent: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  dieresis: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  ring: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  cedilla: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  hungarumlaut: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  ogonek: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  caron: [
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  emdash: [
    1e3,
    1e3,
    1e3,
    1e3,
    1e3,
    1e3,
    889,
    1e3,
    600,
    600,
    600,
    600
  ],
  AE: [
    1e3,
    1e3,
    1e3,
    1e3,
    1e3,
    944,
    889,
    889,
    600,
    600,
    600,
    600
  ],
  ordfeminine: [
    370,
    370,
    370,
    370,
    300,
    266,
    276,
    276,
    600,
    600,
    600,
    600
  ],
  Lslash: [
    611,
    611,
    556,
    556,
    667,
    611,
    556,
    611,
    600,
    600,
    600,
    600
  ],
  Oslash: [
    778,
    778,
    778,
    778,
    778,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  OE: [
    1e3,
    1e3,
    1e3,
    1e3,
    1e3,
    944,
    944,
    889,
    600,
    600,
    600,
    600
  ],
  ordmasculine: [
    365,
    365,
    365,
    365,
    330,
    300,
    310,
    310,
    600,
    600,
    600,
    600
  ],
  ae: [
    889,
    889,
    889,
    889,
    722,
    722,
    667,
    667,
    600,
    600,
    600,
    600
  ],
  dotlessi: [
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  lslash: [
    278,
    278,
    222,
    222,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  oslash: [
    611,
    611,
    611,
    611,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  oe: [
    944,
    944,
    944,
    944,
    722,
    722,
    667,
    722,
    600,
    600,
    600,
    600
  ],
  germandbls: [
    611,
    611,
    611,
    611,
    556,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  Idieresis: [
    278,
    278,
    278,
    278,
    389,
    389,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  eacute: [
    556,
    556,
    556,
    556,
    444,
    444,
    444,
    444,
    600,
    600,
    600,
    600
  ],
  abreve: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    444,
    600,
    600,
    600,
    600
  ],
  uhungarumlaut: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  ecaron: [
    556,
    556,
    556,
    556,
    444,
    444,
    444,
    444,
    600,
    600,
    600,
    600
  ],
  Ydieresis: [
    667,
    667,
    667,
    667,
    722,
    611,
    556,
    722,
    600,
    600,
    600,
    600
  ],
  divide: [
    584,
    584,
    584,
    584,
    570,
    570,
    675,
    564,
    600,
    600,
    600,
    600
  ],
  Yacute: [
    667,
    667,
    667,
    667,
    722,
    611,
    556,
    722,
    600,
    600,
    600,
    600
  ],
  Acircumflex: [
    722,
    722,
    667,
    667,
    722,
    667,
    611,
    722,
    600,
    600,
    600,
    600
  ],
  aacute: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    444,
    600,
    600,
    600,
    600
  ],
  Ucircumflex: [
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  yacute: [
    556,
    556,
    500,
    500,
    500,
    444,
    444,
    500,
    600,
    600,
    600,
    600
  ],
  scommaaccent: [
    556,
    556,
    500,
    500,
    389,
    389,
    389,
    389,
    600,
    600,
    600,
    600
  ],
  ecircumflex: [
    556,
    556,
    556,
    556,
    444,
    444,
    444,
    444,
    600,
    600,
    600,
    600
  ],
  Uring: [
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  Udieresis: [
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  aogonek: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    444,
    600,
    600,
    600,
    600
  ],
  Uacute: [
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  uogonek: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  Edieresis: [
    667,
    667,
    667,
    667,
    667,
    667,
    611,
    611,
    600,
    600,
    600,
    600
  ],
  Dcroat: [
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  commaaccent: [
    250,
    250,
    250,
    250,
    250,
    250,
    250,
    250,
    600,
    600,
    600,
    600
  ],
  copyright: [
    737,
    737,
    737,
    737,
    747,
    747,
    760,
    760,
    600,
    600,
    600,
    600
  ],
  Emacron: [
    667,
    667,
    667,
    667,
    667,
    667,
    611,
    611,
    600,
    600,
    600,
    600
  ],
  ccaron: [
    556,
    556,
    500,
    500,
    444,
    444,
    444,
    444,
    600,
    600,
    600,
    600
  ],
  aring: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    444,
    600,
    600,
    600,
    600
  ],
  Ncommaaccent: [
    722,
    722,
    722,
    722,
    722,
    722,
    667,
    722,
    600,
    600,
    600,
    600
  ],
  lacute: [
    278,
    278,
    222,
    222,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  agrave: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    444,
    600,
    600,
    600,
    600
  ],
  Tcommaaccent: [
    611,
    611,
    611,
    611,
    667,
    611,
    556,
    611,
    600,
    600,
    600,
    600
  ],
  Cacute: [
    722,
    722,
    722,
    722,
    722,
    667,
    667,
    667,
    600,
    600,
    600,
    600
  ],
  atilde: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    444,
    600,
    600,
    600,
    600
  ],
  Edotaccent: [
    667,
    667,
    667,
    667,
    667,
    667,
    611,
    611,
    600,
    600,
    600,
    600
  ],
  scaron: [
    556,
    556,
    500,
    500,
    389,
    389,
    389,
    389,
    600,
    600,
    600,
    600
  ],
  scedilla: [
    556,
    556,
    500,
    500,
    389,
    389,
    389,
    389,
    600,
    600,
    600,
    600
  ],
  iacute: [
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  lozenge: [
    494,
    494,
    471,
    471,
    494,
    494,
    471,
    471,
    600,
    600,
    600,
    600
  ],
  Rcaron: [
    722,
    722,
    722,
    722,
    722,
    667,
    611,
    667,
    600,
    600,
    600,
    600
  ],
  Gcommaaccent: [
    778,
    778,
    778,
    778,
    778,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  ucircumflex: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  acircumflex: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    444,
    600,
    600,
    600,
    600
  ],
  Amacron: [
    722,
    722,
    667,
    667,
    722,
    667,
    611,
    722,
    600,
    600,
    600,
    600
  ],
  rcaron: [
    389,
    389,
    333,
    333,
    444,
    389,
    389,
    333,
    600,
    600,
    600,
    600
  ],
  ccedilla: [
    556,
    556,
    500,
    500,
    444,
    444,
    444,
    444,
    600,
    600,
    600,
    600
  ],
  Zdotaccent: [
    611,
    611,
    611,
    611,
    667,
    611,
    556,
    611,
    600,
    600,
    600,
    600
  ],
  Thorn: [
    667,
    667,
    667,
    667,
    611,
    611,
    611,
    556,
    600,
    600,
    600,
    600
  ],
  Omacron: [
    778,
    778,
    778,
    778,
    778,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  Racute: [
    722,
    722,
    722,
    722,
    722,
    667,
    611,
    667,
    600,
    600,
    600,
    600
  ],
  Sacute: [
    667,
    667,
    667,
    667,
    556,
    556,
    500,
    556,
    600,
    600,
    600,
    600
  ],
  dcaron: [
    743,
    743,
    643,
    643,
    672,
    608,
    544,
    588,
    600,
    600,
    600,
    600
  ],
  Umacron: [
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  uring: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  threesuperior: [
    333,
    333,
    333,
    333,
    300,
    300,
    300,
    300,
    600,
    600,
    600,
    600
  ],
  Ograve: [
    778,
    778,
    778,
    778,
    778,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  Agrave: [
    722,
    722,
    667,
    667,
    722,
    667,
    611,
    722,
    600,
    600,
    600,
    600
  ],
  Abreve: [
    722,
    722,
    667,
    667,
    722,
    667,
    611,
    722,
    600,
    600,
    600,
    600
  ],
  multiply: [
    584,
    584,
    584,
    584,
    570,
    570,
    675,
    564,
    600,
    600,
    600,
    600
  ],
  uacute: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  Tcaron: [
    611,
    611,
    611,
    611,
    667,
    611,
    556,
    611,
    600,
    600,
    600,
    600
  ],
  partialdiff: [
    494,
    494,
    476,
    476,
    494,
    494,
    476,
    476,
    600,
    600,
    600,
    600
  ],
  ydieresis: [
    556,
    556,
    500,
    500,
    500,
    444,
    444,
    500,
    600,
    600,
    600,
    600
  ],
  Nacute: [
    722,
    722,
    722,
    722,
    722,
    722,
    667,
    722,
    600,
    600,
    600,
    600
  ],
  icircumflex: [
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  Ecircumflex: [
    667,
    667,
    667,
    667,
    667,
    667,
    611,
    611,
    600,
    600,
    600,
    600
  ],
  adieresis: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    444,
    600,
    600,
    600,
    600
  ],
  edieresis: [
    556,
    556,
    556,
    556,
    444,
    444,
    444,
    444,
    600,
    600,
    600,
    600
  ],
  cacute: [
    556,
    556,
    500,
    500,
    444,
    444,
    444,
    444,
    600,
    600,
    600,
    600
  ],
  nacute: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  umacron: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  Ncaron: [
    722,
    722,
    722,
    722,
    722,
    722,
    667,
    722,
    600,
    600,
    600,
    600
  ],
  Iacute: [
    278,
    278,
    278,
    278,
    389,
    389,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  plusminus: [
    584,
    584,
    584,
    584,
    570,
    570,
    675,
    564,
    600,
    600,
    600,
    600
  ],
  brokenbar: [
    280,
    280,
    260,
    260,
    220,
    220,
    275,
    200,
    600,
    600,
    600,
    600
  ],
  registered: [
    737,
    737,
    737,
    737,
    747,
    747,
    760,
    760,
    600,
    600,
    600,
    600
  ],
  Gbreve: [
    778,
    778,
    778,
    778,
    778,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  Idotaccent: [
    278,
    278,
    278,
    278,
    389,
    389,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  summation: [
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600
  ],
  Egrave: [
    667,
    667,
    667,
    667,
    667,
    667,
    611,
    611,
    600,
    600,
    600,
    600
  ],
  racute: [
    389,
    389,
    333,
    333,
    444,
    389,
    389,
    333,
    600,
    600,
    600,
    600
  ],
  omacron: [
    611,
    611,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  Zacute: [
    611,
    611,
    611,
    611,
    667,
    611,
    556,
    611,
    600,
    600,
    600,
    600
  ],
  Zcaron: [
    611,
    611,
    611,
    611,
    667,
    611,
    556,
    611,
    600,
    600,
    600,
    600
  ],
  greaterequal: [
    549,
    549,
    549,
    549,
    549,
    549,
    549,
    549,
    600,
    600,
    600,
    600
  ],
  Eth: [
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  Ccedilla: [
    722,
    722,
    722,
    722,
    722,
    667,
    667,
    667,
    600,
    600,
    600,
    600
  ],
  lcommaaccent: [
    278,
    278,
    222,
    222,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  tcaron: [
    389,
    389,
    317,
    317,
    416,
    366,
    300,
    326,
    600,
    600,
    600,
    600
  ],
  eogonek: [
    556,
    556,
    556,
    556,
    444,
    444,
    444,
    444,
    600,
    600,
    600,
    600
  ],
  Uogonek: [
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  Aacute: [
    722,
    722,
    667,
    667,
    722,
    667,
    611,
    722,
    600,
    600,
    600,
    600
  ],
  Adieresis: [
    722,
    722,
    667,
    667,
    722,
    667,
    611,
    722,
    600,
    600,
    600,
    600
  ],
  egrave: [
    556,
    556,
    556,
    556,
    444,
    444,
    444,
    444,
    600,
    600,
    600,
    600
  ],
  zacute: [
    500,
    500,
    500,
    500,
    444,
    389,
    389,
    444,
    600,
    600,
    600,
    600
  ],
  iogonek: [
    278,
    278,
    222,
    222,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  Oacute: [
    778,
    778,
    778,
    778,
    778,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  oacute: [
    611,
    611,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  amacron: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    444,
    600,
    600,
    600,
    600
  ],
  sacute: [
    556,
    556,
    500,
    500,
    389,
    389,
    389,
    389,
    600,
    600,
    600,
    600
  ],
  idieresis: [
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  Ocircumflex: [
    778,
    778,
    778,
    778,
    778,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  Ugrave: [
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  Delta: [
    612,
    612,
    612,
    612,
    612,
    612,
    612,
    612,
    600,
    600,
    600,
    600
  ],
  thorn: [
    611,
    611,
    556,
    556,
    556,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  twosuperior: [
    333,
    333,
    333,
    333,
    300,
    300,
    300,
    300,
    600,
    600,
    600,
    600
  ],
  Odieresis: [
    778,
    778,
    778,
    778,
    778,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  mu: [
    611,
    611,
    556,
    556,
    556,
    576,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  igrave: [
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  ohungarumlaut: [
    611,
    611,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  Eogonek: [
    667,
    667,
    667,
    667,
    667,
    667,
    611,
    611,
    600,
    600,
    600,
    600
  ],
  dcroat: [
    611,
    611,
    556,
    556,
    556,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  threequarters: [
    834,
    834,
    834,
    834,
    750,
    750,
    750,
    750,
    600,
    600,
    600,
    600
  ],
  Scedilla: [
    667,
    667,
    667,
    667,
    556,
    556,
    500,
    556,
    600,
    600,
    600,
    600
  ],
  lcaron: [
    400,
    400,
    299,
    299,
    394,
    382,
    300,
    344,
    600,
    600,
    600,
    600
  ],
  Kcommaaccent: [
    722,
    722,
    667,
    667,
    778,
    667,
    667,
    722,
    600,
    600,
    600,
    600
  ],
  Lacute: [
    611,
    611,
    556,
    556,
    667,
    611,
    556,
    611,
    600,
    600,
    600,
    600
  ],
  trademark: [
    1e3,
    1e3,
    1e3,
    1e3,
    1e3,
    1e3,
    980,
    980,
    600,
    600,
    600,
    600
  ],
  edotaccent: [
    556,
    556,
    556,
    556,
    444,
    444,
    444,
    444,
    600,
    600,
    600,
    600
  ],
  Igrave: [
    278,
    278,
    278,
    278,
    389,
    389,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  Imacron: [
    278,
    278,
    278,
    278,
    389,
    389,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  Lcaron: [
    611,
    611,
    556,
    556,
    667,
    611,
    611,
    611,
    600,
    600,
    600,
    600
  ],
  onehalf: [
    834,
    834,
    834,
    834,
    750,
    750,
    750,
    750,
    600,
    600,
    600,
    600
  ],
  lessequal: [
    549,
    549,
    549,
    549,
    549,
    549,
    549,
    549,
    600,
    600,
    600,
    600
  ],
  ocircumflex: [
    611,
    611,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  ntilde: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  Uhungarumlaut: [
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  Eacute: [
    667,
    667,
    667,
    667,
    667,
    667,
    611,
    611,
    600,
    600,
    600,
    600
  ],
  emacron: [
    556,
    556,
    556,
    556,
    444,
    444,
    444,
    444,
    600,
    600,
    600,
    600
  ],
  gbreve: [
    611,
    611,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  onequarter: [
    834,
    834,
    834,
    834,
    750,
    750,
    750,
    750,
    600,
    600,
    600,
    600
  ],
  Scaron: [
    667,
    667,
    667,
    667,
    556,
    556,
    500,
    556,
    600,
    600,
    600,
    600
  ],
  Scommaaccent: [
    667,
    667,
    667,
    667,
    556,
    556,
    500,
    556,
    600,
    600,
    600,
    600
  ],
  Ohungarumlaut: [
    778,
    778,
    778,
    778,
    778,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  degree: [
    400,
    400,
    400,
    400,
    400,
    400,
    400,
    400,
    600,
    600,
    600,
    600
  ],
  ograve: [
    611,
    611,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  Ccaron: [
    722,
    722,
    722,
    722,
    722,
    667,
    667,
    667,
    600,
    600,
    600,
    600
  ],
  ugrave: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  radical: [
    549,
    549,
    453,
    453,
    549,
    549,
    453,
    453,
    600,
    600,
    600,
    600
  ],
  Dcaron: [
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  rcommaaccent: [
    389,
    389,
    333,
    333,
    444,
    389,
    389,
    333,
    600,
    600,
    600,
    600
  ],
  Ntilde: [
    722,
    722,
    722,
    722,
    722,
    722,
    667,
    722,
    600,
    600,
    600,
    600
  ],
  otilde: [
    611,
    611,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  Rcommaaccent: [
    722,
    722,
    722,
    722,
    722,
    667,
    611,
    667,
    600,
    600,
    600,
    600
  ],
  Lcommaaccent: [
    611,
    611,
    556,
    556,
    667,
    611,
    556,
    611,
    600,
    600,
    600,
    600
  ],
  Atilde: [
    722,
    722,
    667,
    667,
    722,
    667,
    611,
    722,
    600,
    600,
    600,
    600
  ],
  Aogonek: [
    722,
    722,
    667,
    667,
    722,
    667,
    611,
    722,
    600,
    600,
    600,
    600
  ],
  Aring: [
    722,
    722,
    667,
    667,
    722,
    667,
    611,
    722,
    600,
    600,
    600,
    600
  ],
  Otilde: [
    778,
    778,
    778,
    778,
    778,
    722,
    722,
    722,
    600,
    600,
    600,
    600
  ],
  zdotaccent: [
    500,
    500,
    500,
    500,
    444,
    389,
    389,
    444,
    600,
    600,
    600,
    600
  ],
  Ecaron: [
    667,
    667,
    667,
    667,
    667,
    667,
    611,
    611,
    600,
    600,
    600,
    600
  ],
  Iogonek: [
    278,
    278,
    278,
    278,
    389,
    389,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  kcommaaccent: [
    556,
    556,
    500,
    500,
    556,
    500,
    444,
    500,
    600,
    600,
    600,
    600
  ],
  minus: [
    584,
    584,
    584,
    584,
    570,
    606,
    675,
    564,
    600,
    600,
    600,
    600
  ],
  Icircumflex: [
    278,
    278,
    278,
    278,
    389,
    389,
    333,
    333,
    600,
    600,
    600,
    600
  ],
  ncaron: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  tcommaaccent: [
    333,
    333,
    278,
    278,
    333,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  logicalnot: [
    584,
    584,
    584,
    584,
    570,
    606,
    675,
    564,
    600,
    600,
    600,
    600
  ],
  odieresis: [
    611,
    611,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  udieresis: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  notequal: [
    549,
    549,
    549,
    549,
    549,
    549,
    549,
    549,
    600,
    600,
    600,
    600
  ],
  gcommaaccent: [
    611,
    611,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  eth: [
    611,
    611,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  zcaron: [
    500,
    500,
    500,
    500,
    444,
    389,
    389,
    444,
    600,
    600,
    600,
    600
  ],
  ncommaaccent: [
    611,
    611,
    556,
    556,
    556,
    556,
    500,
    500,
    600,
    600,
    600,
    600
  ],
  onesuperior: [
    333,
    333,
    333,
    333,
    300,
    300,
    300,
    300,
    600,
    600,
    600,
    600
  ],
  imacron: [
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    278,
    600,
    600,
    600,
    600
  ],
  Euro: [
    556,
    556,
    556,
    556,
    500,
    500,
    500,
    500,
    600,
    600,
    600,
    600
  ]
};
var kernPairs = {
  AC: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  ACacute: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  ACcaron: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  ACcedilla: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AG: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AGbreve: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AGcommaaccent: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AO: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AOacute: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AOcircumflex: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AOdieresis: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AOgrave: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AOhungarumlaut: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AOmacron: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AOslash: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AOtilde: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AQ: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -55,
    -40,
    -55
  ],
  AT: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  ATcaron: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  ATcommaaccent: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AU: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AUacute: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AUcircumflex: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AUdieresis: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AUgrave: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AUhungarumlaut: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AUmacron: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AUogonek: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AUring: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AV: [
    -80,
    -80,
    -70,
    -70,
    -145,
    -95,
    -105,
    -135
  ],
  AW: [
    -60,
    -60,
    -50,
    -50,
    -130,
    -100,
    -95,
    -90
  ],
  AY: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AYacute: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AYdieresis: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  Au: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Auacute: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aucircumflex: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Audieresis: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Augrave: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Auhungarumlaut: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aumacron: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Auogonek: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Auring: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Av: [
    -40,
    -40,
    -40,
    -40,
    -100,
    -74,
    -55,
    -74
  ],
  Aw: [
    -30,
    -30,
    -40,
    -40,
    -90,
    -74,
    -55,
    -92
  ],
  Ay: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Ayacute: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Aydieresis: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  AacuteC: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AacuteCacute: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AacuteCcaron: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AacuteCcedilla: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AacuteG: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AacuteGbreve: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AacuteGcommaaccent: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AacuteO: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AacuteOacute: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AacuteOcircumflex: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AacuteOdieresis: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AacuteOgrave: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AacuteOhungarumlaut: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AacuteOmacron: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AacuteOslash: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AacuteOtilde: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AacuteQ: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -55,
    -40,
    -55
  ],
  AacuteT: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AacuteTcaron: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AacuteTcommaaccent: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AacuteU: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AacuteUacute: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AacuteUcircumflex: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AacuteUdieresis: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AacuteUgrave: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AacuteUhungarumlaut: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AacuteUmacron: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AacuteUogonek: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AacuteUring: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AacuteV: [
    -80,
    -80,
    -70,
    -70,
    -145,
    -95,
    -105,
    -135
  ],
  AacuteW: [
    -60,
    -60,
    -50,
    -50,
    -130,
    -100,
    -95,
    -90
  ],
  AacuteY: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AacuteYacute: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AacuteYdieresis: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  Aacuteu: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aacuteuacute: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aacuteucircumflex: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aacuteudieresis: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aacuteugrave: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aacuteuhungarumlaut: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aacuteumacron: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aacuteuogonek: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aacuteuring: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aacutev: [
    -40,
    -40,
    -40,
    -40,
    -100,
    -74,
    -55,
    -74
  ],
  Aacutew: [
    -30,
    -30,
    -40,
    -40,
    -90,
    -74,
    -55,
    -92
  ],
  Aacutey: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Aacuteyacute: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Aacuteydieresis: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  AbreveC: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AbreveCacute: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AbreveCcaron: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AbreveCcedilla: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AbreveG: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AbreveGbreve: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AbreveGcommaaccent: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AbreveO: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AbreveOacute: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AbreveOcircumflex: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AbreveOdieresis: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AbreveOgrave: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AbreveOhungarumlaut: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AbreveOmacron: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AbreveOslash: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AbreveOtilde: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AbreveQ: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -55,
    -40,
    -55
  ],
  AbreveT: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AbreveTcaron: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AbreveTcommaaccent: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AbreveU: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AbreveUacute: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AbreveUcircumflex: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AbreveUdieresis: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AbreveUgrave: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AbreveUhungarumlaut: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AbreveUmacron: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AbreveUogonek: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AbreveUring: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AbreveV: [
    -80,
    -80,
    -70,
    -70,
    -145,
    -95,
    -105,
    -135
  ],
  AbreveW: [
    -60,
    -60,
    -50,
    -50,
    -130,
    -100,
    -95,
    -90
  ],
  AbreveY: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AbreveYacute: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AbreveYdieresis: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  Abreveu: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Abreveuacute: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Abreveucircumflex: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Abreveudieresis: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Abreveugrave: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Abreveuhungarumlaut: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Abreveumacron: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Abreveuogonek: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Abreveuring: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Abrevev: [
    -40,
    -40,
    -40,
    -40,
    -100,
    -74,
    -55,
    -74
  ],
  Abrevew: [
    -30,
    -30,
    -40,
    -40,
    -90,
    -74,
    -55,
    -92
  ],
  Abrevey: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Abreveyacute: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Abreveydieresis: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  AcircumflexC: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AcircumflexCacute: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AcircumflexCcaron: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AcircumflexCcedilla: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AcircumflexG: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AcircumflexGbreve: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AcircumflexGcommaaccent: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AcircumflexO: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AcircumflexOacute: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AcircumflexOcircumflex: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AcircumflexOdieresis: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AcircumflexOgrave: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AcircumflexOhungarumlaut: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AcircumflexOmacron: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AcircumflexOslash: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AcircumflexOtilde: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AcircumflexQ: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -55,
    -40,
    -55
  ],
  AcircumflexT: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AcircumflexTcaron: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AcircumflexTcommaaccent: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AcircumflexU: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AcircumflexUacute: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AcircumflexUcircumflex: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AcircumflexUdieresis: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AcircumflexUgrave: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AcircumflexUhungarumlaut: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AcircumflexUmacron: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AcircumflexUogonek: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AcircumflexUring: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AcircumflexV: [
    -80,
    -80,
    -70,
    -70,
    -145,
    -95,
    -105,
    -135
  ],
  AcircumflexW: [
    -60,
    -60,
    -50,
    -50,
    -130,
    -100,
    -95,
    -90
  ],
  AcircumflexY: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AcircumflexYacute: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AcircumflexYdieresis: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  Acircumflexu: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Acircumflexuacute: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Acircumflexucircumflex: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Acircumflexudieresis: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Acircumflexugrave: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Acircumflexuhungarumlaut: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Acircumflexumacron: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Acircumflexuogonek: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Acircumflexuring: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Acircumflexv: [
    -40,
    -40,
    -40,
    -40,
    -100,
    -74,
    -55,
    -74
  ],
  Acircumflexw: [
    -30,
    -30,
    -40,
    -40,
    -90,
    -74,
    -55,
    -92
  ],
  Acircumflexy: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Acircumflexyacute: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Acircumflexydieresis: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  AdieresisC: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AdieresisCacute: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AdieresisCcaron: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AdieresisCcedilla: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AdieresisG: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AdieresisGbreve: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AdieresisGcommaaccent: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AdieresisO: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AdieresisOacute: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AdieresisOcircumflex: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AdieresisOdieresis: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AdieresisOgrave: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AdieresisOhungarumlaut: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AdieresisOmacron: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AdieresisOslash: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AdieresisOtilde: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AdieresisQ: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -55,
    -40,
    -55
  ],
  AdieresisT: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AdieresisTcaron: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AdieresisTcommaaccent: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AdieresisU: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AdieresisUacute: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AdieresisUcircumflex: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AdieresisUdieresis: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AdieresisUgrave: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AdieresisUhungarumlaut: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AdieresisUmacron: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AdieresisUogonek: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AdieresisUring: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AdieresisV: [
    -80,
    -80,
    -70,
    -70,
    -145,
    -95,
    -105,
    -135
  ],
  AdieresisW: [
    -60,
    -60,
    -50,
    -50,
    -130,
    -100,
    -95,
    -90
  ],
  AdieresisY: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AdieresisYacute: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AdieresisYdieresis: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  Adieresisu: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Adieresisuacute: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Adieresisucircumflex: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Adieresisudieresis: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Adieresisugrave: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Adieresisuhungarumlaut: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Adieresisumacron: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Adieresisuogonek: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Adieresisuring: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Adieresisv: [
    -40,
    -40,
    -40,
    -40,
    -100,
    -74,
    -55,
    -74
  ],
  Adieresisw: [
    -30,
    -30,
    -40,
    -40,
    -90,
    -74,
    -55,
    -92
  ],
  Adieresisy: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Adieresisyacute: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Adieresisydieresis: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  AgraveC: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AgraveCacute: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AgraveCcaron: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AgraveCcedilla: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AgraveG: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AgraveGbreve: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AgraveGcommaaccent: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AgraveO: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AgraveOacute: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AgraveOcircumflex: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AgraveOdieresis: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AgraveOgrave: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AgraveOhungarumlaut: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AgraveOmacron: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AgraveOslash: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AgraveOtilde: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AgraveQ: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -55,
    -40,
    -55
  ],
  AgraveT: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AgraveTcaron: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AgraveTcommaaccent: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AgraveU: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AgraveUacute: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AgraveUcircumflex: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AgraveUdieresis: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AgraveUgrave: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AgraveUhungarumlaut: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AgraveUmacron: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AgraveUogonek: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AgraveUring: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AgraveV: [
    -80,
    -80,
    -70,
    -70,
    -145,
    -95,
    -105,
    -135
  ],
  AgraveW: [
    -60,
    -60,
    -50,
    -50,
    -130,
    -100,
    -95,
    -90
  ],
  AgraveY: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AgraveYacute: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AgraveYdieresis: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  Agraveu: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Agraveuacute: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Agraveucircumflex: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Agraveudieresis: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Agraveugrave: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Agraveuhungarumlaut: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Agraveumacron: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Agraveuogonek: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Agraveuring: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Agravev: [
    -40,
    -40,
    -40,
    -40,
    -100,
    -74,
    -55,
    -74
  ],
  Agravew: [
    -30,
    -30,
    -40,
    -40,
    -90,
    -74,
    -55,
    -92
  ],
  Agravey: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Agraveyacute: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Agraveydieresis: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  AmacronC: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AmacronCacute: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AmacronCcaron: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AmacronCcedilla: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AmacronG: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AmacronGbreve: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AmacronGcommaaccent: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AmacronO: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AmacronOacute: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AmacronOcircumflex: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AmacronOdieresis: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AmacronOgrave: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AmacronOhungarumlaut: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AmacronOmacron: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AmacronOslash: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AmacronOtilde: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AmacronQ: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -55,
    -40,
    -55
  ],
  AmacronT: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AmacronTcaron: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AmacronTcommaaccent: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AmacronU: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AmacronUacute: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AmacronUcircumflex: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AmacronUdieresis: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AmacronUgrave: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AmacronUhungarumlaut: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AmacronUmacron: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AmacronUogonek: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AmacronUring: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AmacronV: [
    -80,
    -80,
    -70,
    -70,
    -145,
    -95,
    -105,
    -135
  ],
  AmacronW: [
    -60,
    -60,
    -50,
    -50,
    -130,
    -100,
    -95,
    -90
  ],
  AmacronY: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AmacronYacute: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AmacronYdieresis: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  Amacronu: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Amacronuacute: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Amacronucircumflex: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Amacronudieresis: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Amacronugrave: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Amacronuhungarumlaut: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Amacronumacron: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Amacronuogonek: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Amacronuring: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Amacronv: [
    -40,
    -40,
    -40,
    -40,
    -100,
    -74,
    -55,
    -74
  ],
  Amacronw: [
    -30,
    -30,
    -40,
    -40,
    -90,
    -74,
    -55,
    -92
  ],
  Amacrony: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Amacronyacute: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Amacronydieresis: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  AogonekC: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AogonekCacute: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AogonekCcaron: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AogonekCcedilla: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AogonekG: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AogonekGbreve: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AogonekGcommaaccent: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AogonekO: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AogonekOacute: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AogonekOcircumflex: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AogonekOdieresis: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AogonekOgrave: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AogonekOhungarumlaut: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AogonekOmacron: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AogonekOslash: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AogonekOtilde: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AogonekQ: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -55,
    -40,
    -55
  ],
  AogonekT: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AogonekTcaron: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AogonekTcommaaccent: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AogonekU: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AogonekUacute: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AogonekUcircumflex: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AogonekUdieresis: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AogonekUgrave: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AogonekUhungarumlaut: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AogonekUmacron: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AogonekUogonek: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AogonekUring: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AogonekV: [
    -80,
    -80,
    -70,
    -70,
    -145,
    -95,
    -105,
    -135
  ],
  AogonekW: [
    -60,
    -60,
    -50,
    -50,
    -130,
    -100,
    -95,
    -90
  ],
  AogonekY: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AogonekYacute: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AogonekYdieresis: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  Aogoneku: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aogonekuacute: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aogonekucircumflex: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aogonekudieresis: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aogonekugrave: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aogonekuhungarumlaut: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aogonekumacron: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aogonekuogonek: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aogonekuring: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aogonekv: [
    -40,
    -40,
    -40,
    -40,
    -100,
    -74,
    -55,
    -74
  ],
  Aogonekw: [
    -30,
    -30,
    -40,
    -40,
    -90,
    -74,
    -55,
    -52
  ],
  Aogoneky: [
    -30,
    -30,
    -40,
    -40,
    -34,
    -34,
    -55,
    -52
  ],
  Aogonekyacute: [
    -30,
    -30,
    -40,
    -40,
    -34,
    -34,
    -55,
    -52
  ],
  Aogonekydieresis: [
    -30,
    -30,
    -40,
    -40,
    -34,
    -34,
    -55,
    -52
  ],
  AringC: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AringCacute: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AringCcaron: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AringCcedilla: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AringG: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AringGbreve: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AringGcommaaccent: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AringO: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AringOacute: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AringOcircumflex: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AringOdieresis: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AringOgrave: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AringOhungarumlaut: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AringOmacron: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AringOslash: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AringOtilde: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AringQ: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -55,
    -40,
    -55
  ],
  AringT: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AringTcaron: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AringTcommaaccent: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AringU: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AringUacute: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AringUcircumflex: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AringUdieresis: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AringUgrave: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AringUhungarumlaut: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AringUmacron: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AringUogonek: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AringUring: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AringV: [
    -80,
    -80,
    -70,
    -70,
    -145,
    -95,
    -105,
    -135
  ],
  AringW: [
    -60,
    -60,
    -50,
    -50,
    -130,
    -100,
    -95,
    -90
  ],
  AringY: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AringYacute: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AringYdieresis: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  Aringu: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aringuacute: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aringucircumflex: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aringudieresis: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aringugrave: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aringuhungarumlaut: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aringumacron: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aringuogonek: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aringuring: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Aringv: [
    -40,
    -40,
    -40,
    -40,
    -100,
    -74,
    -55,
    -74
  ],
  Aringw: [
    -30,
    -30,
    -40,
    -40,
    -90,
    -74,
    -55,
    -92
  ],
  Aringy: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Aringyacute: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Aringydieresis: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  AtildeC: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AtildeCacute: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AtildeCcaron: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AtildeCcedilla: [
    -40,
    -40,
    -30,
    -30,
    -55,
    -65,
    -30,
    -40
  ],
  AtildeG: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AtildeGbreve: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AtildeGcommaaccent: [
    -50,
    -50,
    -30,
    -30,
    -55,
    -60,
    -35,
    -40
  ],
  AtildeO: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AtildeOacute: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AtildeOcircumflex: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AtildeOdieresis: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AtildeOgrave: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AtildeOhungarumlaut: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AtildeOmacron: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AtildeOslash: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AtildeOtilde: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -50,
    -40,
    -55
  ],
  AtildeQ: [
    -40,
    -40,
    -30,
    -30,
    -45,
    -55,
    -40,
    -55
  ],
  AtildeT: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AtildeTcaron: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AtildeTcommaaccent: [
    -90,
    -90,
    -120,
    -120,
    -95,
    -55,
    -37,
    -111
  ],
  AtildeU: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AtildeUacute: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AtildeUcircumflex: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AtildeUdieresis: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AtildeUgrave: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AtildeUhungarumlaut: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AtildeUmacron: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AtildeUogonek: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AtildeUring: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -55
  ],
  AtildeV: [
    -80,
    -80,
    -70,
    -70,
    -145,
    -95,
    -105,
    -135
  ],
  AtildeW: [
    -60,
    -60,
    -50,
    -50,
    -130,
    -100,
    -95,
    -90
  ],
  AtildeY: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AtildeYacute: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  AtildeYdieresis: [
    -110,
    -110,
    -100,
    -100,
    -100,
    -70,
    -55,
    -105
  ],
  Atildeu: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Atildeuacute: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Atildeucircumflex: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Atildeudieresis: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Atildeugrave: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Atildeuhungarumlaut: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Atildeumacron: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Atildeuogonek: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Atildeuring: [
    -30,
    -30,
    -30,
    -30,
    -50,
    -30,
    -20
  ],
  Atildev: [
    -40,
    -40,
    -40,
    -40,
    -100,
    -74,
    -55,
    -74
  ],
  Atildew: [
    -30,
    -30,
    -40,
    -40,
    -90,
    -74,
    -55,
    -92
  ],
  Atildey: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Atildeyacute: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  Atildeydieresis: [
    -30,
    -30,
    -40,
    -40,
    -74,
    -74,
    -55,
    -92
  ],
  BA: [
    -30,
    -30,
    0,
    0,
    -30,
    -25,
    -25,
    -35
  ],
  BAacute: [
    -30,
    -30,
    0,
    0,
    -30,
    -25,
    -25,
    -35
  ],
  BAbreve: [
    -30,
    -30,
    0,
    0,
    -30,
    -25,
    -25,
    -35
  ],
  BAcircumflex: [
    -30,
    -30,
    0,
    0,
    -30,
    -25,
    -25,
    -35
  ],
  BAdieresis: [
    -30,
    -30,
    0,
    0,
    -30,
    -25,
    -25,
    -35
  ],
  BAgrave: [
    -30,
    -30,
    0,
    0,
    -30,
    -25,
    -25,
    -35
  ],
  BAmacron: [
    -30,
    -30,
    0,
    0,
    -30,
    -25,
    -25,
    -35
  ],
  BAogonek: [
    -30,
    -30,
    0,
    0,
    -30,
    -25,
    -25,
    -35
  ],
  BAring: [
    -30,
    -30,
    0,
    0,
    -30,
    -25,
    -25,
    -35
  ],
  BAtilde: [
    -30,
    -30,
    0,
    0,
    -30,
    -25,
    -25,
    -35
  ],
  BU: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  BUacute: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  BUcircumflex: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  BUdieresis: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  BUgrave: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  BUhungarumlaut: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  BUmacron: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  BUogonek: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  BUring: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  DA: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DAacute: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DAbreve: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DAcircumflex: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DAdieresis: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DAgrave: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DAmacron: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DAogonek: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DAring: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DAtilde: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DV: [
    -40,
    -40,
    -70,
    -70,
    -40,
    -50,
    -40,
    -40
  ],
  DW: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -30
  ],
  DY: [
    -70,
    -70,
    -90,
    -90,
    -40,
    -50,
    -40,
    -55
  ],
  DYacute: [
    -70,
    -70,
    -90,
    -90,
    -40,
    -50,
    -40,
    -55
  ],
  DYdieresis: [
    -70,
    -70,
    -90,
    -90,
    -40,
    -50,
    -40,
    -55
  ],
  Dcomma: [
    -30,
    -30,
    -70,
    -70
  ],
  Dperiod: [
    -30,
    -30,
    -70,
    -70,
    -20
  ],
  DcaronA: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcaronAacute: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcaronAbreve: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcaronAcircumflex: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcaronAdieresis: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcaronAgrave: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcaronAmacron: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcaronAogonek: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcaronAring: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcaronAtilde: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcaronV: [
    -40,
    -40,
    -70,
    -70,
    -40,
    -50,
    -40,
    -40
  ],
  DcaronW: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -30
  ],
  DcaronY: [
    -70,
    -70,
    -90,
    -90,
    -40,
    -50,
    -40,
    -55
  ],
  DcaronYacute: [
    -70,
    -70,
    -90,
    -90,
    -40,
    -50,
    -40,
    -55
  ],
  DcaronYdieresis: [
    -70,
    -70,
    -90,
    -90,
    -40,
    -50,
    -40,
    -55
  ],
  Dcaroncomma: [
    -30,
    -30,
    -70,
    -70
  ],
  Dcaronperiod: [
    -30,
    -30,
    -70,
    -70,
    -20
  ],
  DcroatA: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcroatAacute: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcroatAbreve: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcroatAcircumflex: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcroatAdieresis: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcroatAgrave: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcroatAmacron: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcroatAogonek: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcroatAring: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcroatAtilde: [
    -40,
    -40,
    -40,
    -40,
    -35,
    -25,
    -35,
    -40
  ],
  DcroatV: [
    -40,
    -40,
    -70,
    -70,
    -40,
    -50,
    -40,
    -40
  ],
  DcroatW: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -30
  ],
  DcroatY: [
    -70,
    -70,
    -90,
    -90,
    -40,
    -50,
    -40,
    -55
  ],
  DcroatYacute: [
    -70,
    -70,
    -90,
    -90,
    -40,
    -50,
    -40,
    -55
  ],
  DcroatYdieresis: [
    -70,
    -70,
    -90,
    -90,
    -40,
    -50,
    -40,
    -55
  ],
  Dcroatcomma: [
    -30,
    -30,
    -70,
    -70
  ],
  Dcroatperiod: [
    -30,
    -30,
    -70,
    -70,
    -20
  ],
  FA: [
    -80,
    -80,
    -80,
    -80,
    -90,
    -100,
    -115,
    -74
  ],
  FAacute: [
    -80,
    -80,
    -80,
    -80,
    -90,
    -100,
    -115,
    -74
  ],
  FAbreve: [
    -80,
    -80,
    -80,
    -80,
    -90,
    -100,
    -115,
    -74
  ],
  FAcircumflex: [
    -80,
    -80,
    -80,
    -80,
    -90,
    -100,
    -115,
    -74
  ],
  FAdieresis: [
    -80,
    -80,
    -80,
    -80,
    -90,
    -100,
    -115,
    -74
  ],
  FAgrave: [
    -80,
    -80,
    -80,
    -80,
    -90,
    -100,
    -115,
    -74
  ],
  FAmacron: [
    -80,
    -80,
    -80,
    -80,
    -90,
    -100,
    -115,
    -74
  ],
  FAogonek: [
    -80,
    -80,
    -80,
    -80,
    -90,
    -100,
    -115,
    -74
  ],
  FAring: [
    -80,
    -80,
    -80,
    -80,
    -90,
    -100,
    -115,
    -74
  ],
  FAtilde: [
    -80,
    -80,
    -80,
    -80,
    -90,
    -100,
    -115,
    -74
  ],
  Fa: [
    -20,
    -20,
    -50,
    -50,
    -25,
    -95,
    -75,
    -15
  ],
  Faacute: [
    -20,
    -20,
    -50,
    -50,
    -25,
    -95,
    -75,
    -15
  ],
  Fabreve: [
    -20,
    -20,
    -50,
    -50,
    -25,
    -95,
    -75,
    -15
  ],
  Facircumflex: [
    -20,
    -20,
    -50,
    -50,
    -25,
    -95,
    -75,
    -15
  ],
  Fadieresis: [
    -20,
    -20,
    -50,
    -50,
    -25,
    -95,
    -75,
    -15
  ],
  Fagrave: [
    -20,
    -20,
    -50,
    -50,
    -25,
    -95,
    -75,
    -15
  ],
  Famacron: [
    -20,
    -20,
    -50,
    -50,
    -25,
    -95,
    -75,
    -15
  ],
  Faogonek: [
    -20,
    -20,
    -50,
    -50,
    -25,
    -95,
    -75,
    -15
  ],
  Faring: [
    -20,
    -20,
    -50,
    -50,
    -25,
    -95,
    -75,
    -15
  ],
  Fatilde: [
    -20,
    -20,
    -50,
    -50,
    -25,
    -95,
    -75,
    -15
  ],
  Fcomma: [
    -100,
    -100,
    -150,
    -150,
    -92,
    -129,
    -135,
    -80
  ],
  Fperiod: [
    -100,
    -100,
    -150,
    -150,
    -110,
    -129,
    -135,
    -80
  ],
  JA: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -25,
    -40,
    -60
  ],
  JAacute: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -25,
    -40,
    -60
  ],
  JAbreve: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -25,
    -40,
    -60
  ],
  JAcircumflex: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -25,
    -40,
    -60
  ],
  JAdieresis: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -25,
    -40,
    -60
  ],
  JAgrave: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -25,
    -40,
    -60
  ],
  JAmacron: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -25,
    -40,
    -60
  ],
  JAogonek: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -25,
    -40,
    -60
  ],
  JAring: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -25,
    -40,
    -60
  ],
  JAtilde: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -25,
    -40,
    -60
  ],
  Jcomma: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    -25
  ],
  Jperiod: [
    -20,
    -20,
    -30,
    -30,
    -20,
    -10,
    -25
  ],
  Ju: [
    -20,
    -20,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Juacute: [
    -20,
    -20,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Jucircumflex: [
    -20,
    -20,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Judieresis: [
    -20,
    -20,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Jugrave: [
    -20,
    -20,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Juhungarumlaut: [
    -20,
    -20,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Jumacron: [
    -20,
    -20,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Juogonek: [
    -20,
    -20,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Juring: [
    -20,
    -20,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  KO: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KOacute: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KOcircumflex: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KOdieresis: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KOgrave: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KOhungarumlaut: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KOmacron: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KOslash: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KOtilde: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  Ke: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Keacute: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kecaron: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kecircumflex: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kedieresis: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kedotaccent: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kegrave: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kemacron: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Keogonek: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Ko: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Koacute: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kocircumflex: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kodieresis: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kograve: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kohungarumlaut: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Komacron: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Koslash: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kotilde: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Ku: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kuacute: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kucircumflex: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kudieresis: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kugrave: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kuhungarumlaut: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kumacron: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kuogonek: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kuring: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Ky: [
    -40,
    -40,
    -50,
    -50,
    -45,
    -20,
    -40,
    -25
  ],
  Kyacute: [
    -40,
    -40,
    -50,
    -50,
    -45,
    -20,
    -40,
    -25
  ],
  Kydieresis: [
    -40,
    -40,
    -50,
    -50,
    -45,
    -20,
    -40,
    -25
  ],
  KcommaaccentO: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KcommaaccentOacute: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KcommaaccentOcircumflex: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KcommaaccentOdieresis: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KcommaaccentOgrave: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KcommaaccentOhungarumlaut: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KcommaaccentOmacron: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KcommaaccentOslash: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  KcommaaccentOtilde: [
    -30,
    -30,
    -50,
    -50,
    -30,
    -30,
    -50,
    -30
  ],
  Kcommaaccente: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kcommaaccenteacute: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kcommaaccentecaron: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kcommaaccentecircumflex: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kcommaaccentedieresis: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kcommaaccentedotaccent: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kcommaaccentegrave: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kcommaaccentemacron: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kcommaaccenteogonek: [
    -15,
    -15,
    -40,
    -40,
    -25,
    -25,
    -35,
    -25
  ],
  Kcommaaccento: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kcommaaccentoacute: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kcommaaccentocircumflex: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kcommaaccentodieresis: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kcommaaccentograve: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kcommaaccentohungarumlaut: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kcommaaccentomacron: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kcommaaccentoslash: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kcommaaccentotilde: [
    -35,
    -35,
    -40,
    -40,
    -25,
    -25,
    -40,
    -35
  ],
  Kcommaaccentu: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kcommaaccentuacute: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kcommaaccentucircumflex: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kcommaaccentudieresis: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kcommaaccentugrave: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kcommaaccentuhungarumlaut: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kcommaaccentumacron: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kcommaaccentuogonek: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kcommaaccenturing: [
    -30,
    -30,
    -30,
    -30,
    -15,
    -20,
    -40,
    -15
  ],
  Kcommaaccenty: [
    -40,
    -40,
    -50,
    -50,
    -45,
    -20,
    -40,
    -25
  ],
  Kcommaaccentyacute: [
    -40,
    -40,
    -50,
    -50,
    -45,
    -20,
    -40,
    -25
  ],
  Kcommaaccentydieresis: [
    -40,
    -40,
    -50,
    -50,
    -45,
    -20,
    -40,
    -25
  ],
  LT: [
    -90,
    -90,
    -110,
    -110,
    -92,
    -18,
    -20,
    -92
  ],
  LTcaron: [
    -90,
    -90,
    -110,
    -110,
    -92,
    -18,
    -20,
    -92
  ],
  LTcommaaccent: [
    -90,
    -90,
    -110,
    -110,
    -92,
    -18,
    -20,
    -92
  ],
  LV: [
    -110,
    -110,
    -110,
    -110,
    -92,
    -37,
    -55,
    -100
  ],
  LW: [
    -80,
    -80,
    -70,
    -70,
    -92,
    -37,
    -55,
    -74
  ],
  LY: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -37,
    -20,
    -100
  ],
  LYacute: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -37,
    -20,
    -100
  ],
  LYdieresis: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -37,
    -20,
    -100
  ],
  Lquotedblright: [
    -140,
    -140,
    -140,
    -140,
    -20
  ],
  Lquoteright: [
    -140,
    -140,
    -160,
    -160,
    -110,
    -55,
    -37,
    -92
  ],
  Ly: [
    -30,
    -30,
    -30,
    -30,
    -55,
    -37,
    -30,
    -55
  ],
  Lyacute: [
    -30,
    -30,
    -30,
    -30,
    -55,
    -37,
    -30,
    -55
  ],
  Lydieresis: [
    -30,
    -30,
    -30,
    -30,
    -55,
    -37,
    -30,
    -55
  ],
  LacuteT: [
    -90,
    -90,
    -110,
    -110,
    -92,
    -18,
    -20,
    -92
  ],
  LacuteTcaron: [
    -90,
    -90,
    -110,
    -110,
    -92,
    -18,
    -20,
    -92
  ],
  LacuteTcommaaccent: [
    -90,
    -90,
    -110,
    -110,
    -92,
    -18,
    -20,
    -92
  ],
  LacuteV: [
    -110,
    -110,
    -110,
    -110,
    -92,
    -37,
    -55,
    -100
  ],
  LacuteW: [
    -80,
    -80,
    -70,
    -70,
    -92,
    -37,
    -55,
    -74
  ],
  LacuteY: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -37,
    -20,
    -100
  ],
  LacuteYacute: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -37,
    -20,
    -100
  ],
  LacuteYdieresis: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -37,
    -20,
    -100
  ],
  Lacutequotedblright: [
    -140,
    -140,
    -140,
    -140,
    -20
  ],
  Lacutequoteright: [
    -140,
    -140,
    -160,
    -160,
    -110,
    -55,
    -37,
    -92
  ],
  Lacutey: [
    -30,
    -30,
    -30,
    -30,
    -55,
    -37,
    -30,
    -55
  ],
  Lacuteyacute: [
    -30,
    -30,
    -30,
    -30,
    -55,
    -37,
    -30,
    -55
  ],
  Lacuteydieresis: [
    -30,
    -30,
    -30,
    -30,
    -55,
    -37,
    -30,
    -55
  ],
  LcommaaccentT: [
    -90,
    -90,
    -110,
    -110,
    -92,
    -18,
    -20,
    -92
  ],
  LcommaaccentTcaron: [
    -90,
    -90,
    -110,
    -110,
    -92,
    -18,
    -20,
    -92
  ],
  LcommaaccentTcommaaccent: [
    -90,
    -90,
    -110,
    -110,
    -92,
    -18,
    -20,
    -92
  ],
  LcommaaccentV: [
    -110,
    -110,
    -110,
    -110,
    -92,
    -37,
    -55,
    -100
  ],
  LcommaaccentW: [
    -80,
    -80,
    -70,
    -70,
    -92,
    -37,
    -55,
    -74
  ],
  LcommaaccentY: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -37,
    -20,
    -100
  ],
  LcommaaccentYacute: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -37,
    -20,
    -100
  ],
  LcommaaccentYdieresis: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -37,
    -20,
    -100
  ],
  Lcommaaccentquotedblright: [
    -140,
    -140,
    -140,
    -140,
    -20
  ],
  Lcommaaccentquoteright: [
    -140,
    -140,
    -160,
    -160,
    -110,
    -55,
    -37,
    -92
  ],
  Lcommaaccenty: [
    -30,
    -30,
    -30,
    -30,
    -55,
    -37,
    -30,
    -55
  ],
  Lcommaaccentyacute: [
    -30,
    -30,
    -30,
    -30,
    -55,
    -37,
    -30,
    -55
  ],
  Lcommaaccentydieresis: [
    -30,
    -30,
    -30,
    -30,
    -55,
    -37,
    -30,
    -55
  ],
  LslashT: [
    -90,
    -90,
    -110,
    -110,
    -92,
    -18,
    -20,
    -92
  ],
  LslashTcaron: [
    -90,
    -90,
    -110,
    -110,
    -92,
    -18,
    -20,
    -92
  ],
  LslashTcommaaccent: [
    -90,
    -90,
    -110,
    -110,
    -92,
    -18,
    -20,
    -92
  ],
  LslashV: [
    -110,
    -110,
    -110,
    -110,
    -92,
    -37,
    -55,
    -100
  ],
  LslashW: [
    -80,
    -80,
    -70,
    -70,
    -92,
    -37,
    -55,
    -74
  ],
  LslashY: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -37,
    -20,
    -100
  ],
  LslashYacute: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -37,
    -20,
    -100
  ],
  LslashYdieresis: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -37,
    -20,
    -100
  ],
  Lslashquotedblright: [
    -140,
    -140,
    -140,
    -140,
    -20
  ],
  Lslashquoteright: [
    -140,
    -140,
    -160,
    -160,
    -110,
    -55,
    -37,
    -92
  ],
  Lslashy: [
    -30,
    -30,
    -30,
    -30,
    -55,
    -37,
    -30,
    -55
  ],
  Lslashyacute: [
    -30,
    -30,
    -30,
    -30,
    -55,
    -37,
    -30,
    -55
  ],
  Lslashydieresis: [
    -30,
    -30,
    -30,
    -30,
    -55,
    -37,
    -30,
    -55
  ],
  OA: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OAacute: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OAbreve: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OAcircumflex: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OAdieresis: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OAgrave: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OAmacron: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OAogonek: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OAring: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OAtilde: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OT: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OTcaron: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OTcommaaccent: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OV: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50
  ],
  OW: [
    -50,
    -50,
    -30,
    -30,
    -50,
    -50,
    -50,
    -35
  ],
  OX: [
    -50,
    -50,
    -60,
    -60,
    -40,
    -40,
    -40,
    -40
  ],
  OY: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OYacute: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OYdieresis: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  Ocomma: [
    -40,
    -40,
    -40,
    -40
  ],
  Operiod: [
    -40,
    -40,
    -40,
    -40
  ],
  OacuteA: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OacuteAacute: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OacuteAbreve: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OacuteAcircumflex: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OacuteAdieresis: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OacuteAgrave: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OacuteAmacron: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OacuteAogonek: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OacuteAring: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OacuteAtilde: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OacuteT: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OacuteTcaron: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OacuteTcommaaccent: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OacuteV: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50
  ],
  OacuteW: [
    -50,
    -50,
    -30,
    -30,
    -50,
    -50,
    -50,
    -35
  ],
  OacuteX: [
    -50,
    -50,
    -60,
    -60,
    -40,
    -40,
    -40,
    -40
  ],
  OacuteY: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OacuteYacute: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OacuteYdieresis: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  Oacutecomma: [
    -40,
    -40,
    -40,
    -40
  ],
  Oacuteperiod: [
    -40,
    -40,
    -40,
    -40
  ],
  OcircumflexA: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OcircumflexAacute: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OcircumflexAbreve: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OcircumflexAcircumflex: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OcircumflexAdieresis: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OcircumflexAgrave: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OcircumflexAmacron: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OcircumflexAogonek: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OcircumflexAring: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OcircumflexAtilde: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OcircumflexT: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OcircumflexTcaron: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OcircumflexTcommaaccent: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OcircumflexV: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50
  ],
  OcircumflexW: [
    -50,
    -50,
    -30,
    -30,
    -50,
    -50,
    -50,
    -35
  ],
  OcircumflexX: [
    -50,
    -50,
    -60,
    -60,
    -40,
    -40,
    -40,
    -40
  ],
  OcircumflexY: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OcircumflexYacute: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OcircumflexYdieresis: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  Ocircumflexcomma: [
    -40,
    -40,
    -40,
    -40
  ],
  Ocircumflexperiod: [
    -40,
    -40,
    -40,
    -40
  ],
  OdieresisA: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OdieresisAacute: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OdieresisAbreve: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OdieresisAcircumflex: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OdieresisAdieresis: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OdieresisAgrave: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OdieresisAmacron: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OdieresisAogonek: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OdieresisAring: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OdieresisAtilde: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OdieresisT: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OdieresisTcaron: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OdieresisTcommaaccent: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OdieresisV: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50
  ],
  OdieresisW: [
    -50,
    -50,
    -30,
    -30,
    -50,
    -50,
    -50,
    -35
  ],
  OdieresisX: [
    -50,
    -50,
    -60,
    -60,
    -40,
    -40,
    -40,
    -40
  ],
  OdieresisY: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OdieresisYacute: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OdieresisYdieresis: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  Odieresiscomma: [
    -40,
    -40,
    -40,
    -40
  ],
  Odieresisperiod: [
    -40,
    -40,
    -40,
    -40
  ],
  OgraveA: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OgraveAacute: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OgraveAbreve: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OgraveAcircumflex: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OgraveAdieresis: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OgraveAgrave: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OgraveAmacron: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OgraveAogonek: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OgraveAring: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OgraveAtilde: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OgraveT: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OgraveTcaron: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OgraveTcommaaccent: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OgraveV: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50
  ],
  OgraveW: [
    -50,
    -50,
    -30,
    -30,
    -50,
    -50,
    -50,
    -35
  ],
  OgraveX: [
    -50,
    -50,
    -60,
    -60,
    -40,
    -40,
    -40,
    -40
  ],
  OgraveY: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OgraveYacute: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OgraveYdieresis: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  Ogravecomma: [
    -40,
    -40,
    -40,
    -40
  ],
  Ograveperiod: [
    -40,
    -40,
    -40,
    -40
  ],
  OhungarumlautA: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OhungarumlautAacute: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OhungarumlautAbreve: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OhungarumlautAcircumflex: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OhungarumlautAdieresis: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OhungarumlautAgrave: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OhungarumlautAmacron: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OhungarumlautAogonek: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OhungarumlautAring: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OhungarumlautAtilde: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OhungarumlautT: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OhungarumlautTcaron: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OhungarumlautTcommaaccent: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OhungarumlautV: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50
  ],
  OhungarumlautW: [
    -50,
    -50,
    -30,
    -30,
    -50,
    -50,
    -50,
    -35
  ],
  OhungarumlautX: [
    -50,
    -50,
    -60,
    -60,
    -40,
    -40,
    -40,
    -40
  ],
  OhungarumlautY: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OhungarumlautYacute: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OhungarumlautYdieresis: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  Ohungarumlautcomma: [
    -40,
    -40,
    -40,
    -40
  ],
  Ohungarumlautperiod: [
    -40,
    -40,
    -40,
    -40
  ],
  OmacronA: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OmacronAacute: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OmacronAbreve: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OmacronAcircumflex: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OmacronAdieresis: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OmacronAgrave: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OmacronAmacron: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OmacronAogonek: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OmacronAring: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OmacronAtilde: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OmacronT: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OmacronTcaron: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OmacronTcommaaccent: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OmacronV: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50
  ],
  OmacronW: [
    -50,
    -50,
    -30,
    -30,
    -50,
    -50,
    -50,
    -35
  ],
  OmacronX: [
    -50,
    -50,
    -60,
    -60,
    -40,
    -40,
    -40,
    -40
  ],
  OmacronY: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OmacronYacute: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OmacronYdieresis: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  Omacroncomma: [
    -40,
    -40,
    -40,
    -40
  ],
  Omacronperiod: [
    -40,
    -40,
    -40,
    -40
  ],
  OslashA: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OslashAacute: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OslashAbreve: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OslashAcircumflex: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OslashAdieresis: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OslashAgrave: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OslashAmacron: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OslashAogonek: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OslashAring: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OslashAtilde: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OslashT: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OslashTcaron: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OslashTcommaaccent: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OslashV: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50
  ],
  OslashW: [
    -50,
    -50,
    -30,
    -30,
    -50,
    -50,
    -50,
    -35
  ],
  OslashX: [
    -50,
    -50,
    -60,
    -60,
    -40,
    -40,
    -40,
    -40
  ],
  OslashY: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OslashYacute: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OslashYdieresis: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  Oslashcomma: [
    -40,
    -40,
    -40,
    -40
  ],
  Oslashperiod: [
    -40,
    -40,
    -40,
    -40
  ],
  OtildeA: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OtildeAacute: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OtildeAbreve: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OtildeAcircumflex: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OtildeAdieresis: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OtildeAgrave: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OtildeAmacron: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OtildeAogonek: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OtildeAring: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OtildeAtilde: [
    -50,
    -50,
    -20,
    -20,
    -40,
    -40,
    -55,
    -35
  ],
  OtildeT: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OtildeTcaron: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OtildeTcommaaccent: [
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  OtildeV: [
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50,
    -50
  ],
  OtildeW: [
    -50,
    -50,
    -30,
    -30,
    -50,
    -50,
    -50,
    -35
  ],
  OtildeX: [
    -50,
    -50,
    -60,
    -60,
    -40,
    -40,
    -40,
    -40
  ],
  OtildeY: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OtildeYacute: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  OtildeYdieresis: [
    -70,
    -70,
    -70,
    -70,
    -50,
    -50,
    -50,
    -50
  ],
  Otildecomma: [
    -40,
    -40,
    -40,
    -40
  ],
  Otildeperiod: [
    -40,
    -40,
    -40,
    -40
  ],
  PA: [
    -100,
    -100,
    -120,
    -120,
    -74,
    -85,
    -90,
    -92
  ],
  PAacute: [
    -100,
    -100,
    -120,
    -120,
    -74,
    -85,
    -90,
    -92
  ],
  PAbreve: [
    -100,
    -100,
    -120,
    -120,
    -74,
    -85,
    -90,
    -92
  ],
  PAcircumflex: [
    -100,
    -100,
    -120,
    -120,
    -74,
    -85,
    -90,
    -92
  ],
  PAdieresis: [
    -100,
    -100,
    -120,
    -120,
    -74,
    -85,
    -90,
    -92
  ],
  PAgrave: [
    -100,
    -100,
    -120,
    -120,
    -74,
    -85,
    -90,
    -92
  ],
  PAmacron: [
    -100,
    -100,
    -120,
    -120,
    -74,
    -85,
    -90,
    -92
  ],
  PAogonek: [
    -100,
    -100,
    -120,
    -120,
    -74,
    -85,
    -90,
    -92
  ],
  PAring: [
    -100,
    -100,
    -120,
    -120,
    -74,
    -85,
    -90,
    -92
  ],
  PAtilde: [
    -100,
    -100,
    -120,
    -120,
    -74,
    -85,
    -90,
    -92
  ],
  Pa: [
    -30,
    -30,
    -40,
    -40,
    -10,
    -40,
    -80,
    -15
  ],
  Paacute: [
    -30,
    -30,
    -40,
    -40,
    -10,
    -40,
    -80,
    -15
  ],
  Pabreve: [
    -30,
    -30,
    -40,
    -40,
    -10,
    -40,
    -80,
    -15
  ],
  Pacircumflex: [
    -30,
    -30,
    -40,
    -40,
    -10,
    -40,
    -80,
    -15
  ],
  Padieresis: [
    -30,
    -30,
    -40,
    -40,
    -10,
    -40,
    -80,
    -15
  ],
  Pagrave: [
    -30,
    -30,
    -40,
    -40,
    -10,
    -40,
    -80,
    -15
  ],
  Pamacron: [
    -30,
    -30,
    -40,
    -40,
    -10,
    -40,
    -80,
    -15
  ],
  Paogonek: [
    -30,
    -30,
    -40,
    -40,
    -10,
    -40,
    -80,
    -15
  ],
  Paring: [
    -30,
    -30,
    -40,
    -40,
    -10,
    -40,
    -80,
    -15
  ],
  Patilde: [
    -30,
    -30,
    -40,
    -40,
    -10,
    -40,
    -80,
    -15
  ],
  Pcomma: [
    -120,
    -120,
    -180,
    -180,
    -92,
    -129,
    -135,
    -111
  ],
  Pe: [
    -30,
    -30,
    -50,
    -50,
    -20,
    -50,
    -80
  ],
  Peacute: [
    -30,
    -30,
    -50,
    -50,
    -20,
    -50,
    -80
  ],
  Pecaron: [
    -30,
    -30,
    -50,
    -50,
    -20,
    -50,
    -80
  ],
  Pecircumflex: [
    -30,
    -30,
    -50,
    -50,
    -20,
    -50,
    -80
  ],
  Pedieresis: [
    -30,
    -30,
    -50,
    -50,
    -20,
    -50,
    -80
  ],
  Pedotaccent: [
    -30,
    -30,
    -50,
    -50,
    -20,
    -50,
    -80
  ],
  Pegrave: [
    -30,
    -30,
    -50,
    -50,
    -20,
    -50,
    -80
  ],
  Pemacron: [
    -30,
    -30,
    -50,
    -50,
    -20,
    -50,
    -80
  ],
  Peogonek: [
    -30,
    -30,
    -50,
    -50,
    -20,
    -50,
    -80
  ],
  Po: [
    -40,
    -40,
    -50,
    -50,
    -20,
    -55,
    -80
  ],
  Poacute: [
    -40,
    -40,
    -50,
    -50,
    -20,
    -55,
    -80
  ],
  Pocircumflex: [
    -40,
    -40,
    -50,
    -50,
    -20,
    -55,
    -80
  ],
  Podieresis: [
    -40,
    -40,
    -50,
    -50,
    -20,
    -55,
    -80
  ],
  Pograve: [
    -40,
    -40,
    -50,
    -50,
    -20,
    -55,
    -80
  ],
  Pohungarumlaut: [
    -40,
    -40,
    -50,
    -50,
    -20,
    -55,
    -80
  ],
  Pomacron: [
    -40,
    -40,
    -50,
    -50,
    -20,
    -55,
    -80
  ],
  Poslash: [
    -40,
    -40,
    -50,
    -50,
    -20,
    -55,
    -80
  ],
  Potilde: [
    -40,
    -40,
    -50,
    -50,
    -20,
    -55,
    -80
  ],
  Pperiod: [
    -120,
    -120,
    -180,
    -180,
    -110,
    -129,
    -135,
    -111
  ],
  QU: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  QUacute: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  QUcircumflex: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  QUdieresis: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  QUgrave: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  QUhungarumlaut: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  QUmacron: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  QUogonek: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  QUring: [
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10,
    -10
  ],
  Qcomma: [
    20,
    20
  ],
  Qperiod: [
    20,
    20,
    0,
    0,
    -20
  ],
  RO: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  ROacute: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  ROcircumflex: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  ROdieresis: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  ROgrave: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  ROhungarumlaut: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  ROmacron: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  ROslash: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  ROtilde: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RT: [
    -20,
    -20,
    -30,
    -30,
    -40,
    -30,
    0,
    -60
  ],
  RTcaron: [
    -20,
    -20,
    -30,
    -30,
    -40,
    -30,
    0,
    -60
  ],
  RTcommaaccent: [
    -20,
    -20,
    -30,
    -30,
    -40,
    -30,
    0,
    -60
  ],
  RU: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RUacute: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RUcircumflex: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RUdieresis: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RUgrave: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RUhungarumlaut: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RUmacron: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RUogonek: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RUring: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RV: [
    -50,
    -50,
    -50,
    -50,
    -55,
    -18,
    -18,
    -80
  ],
  RW: [
    -40,
    -40,
    -30,
    -30,
    -35,
    -18,
    -18,
    -55
  ],
  RY: [
    -50,
    -50,
    -50,
    -50,
    -35,
    -18,
    -18,
    -65
  ],
  RYacute: [
    -50,
    -50,
    -50,
    -50,
    -35,
    -18,
    -18,
    -65
  ],
  RYdieresis: [
    -50,
    -50,
    -50,
    -50,
    -35,
    -18,
    -18,
    -65
  ],
  RacuteO: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteOacute: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteOcircumflex: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteOdieresis: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteOgrave: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteOhungarumlaut: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteOmacron: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteOslash: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteOtilde: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteT: [
    -20,
    -20,
    -30,
    -30,
    -40,
    -30,
    0,
    -60
  ],
  RacuteTcaron: [
    -20,
    -20,
    -30,
    -30,
    -40,
    -30,
    0,
    -60
  ],
  RacuteTcommaaccent: [
    -20,
    -20,
    -30,
    -30,
    -40,
    -30,
    0,
    -60
  ],
  RacuteU: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteUacute: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteUcircumflex: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteUdieresis: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteUgrave: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteUhungarumlaut: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteUmacron: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteUogonek: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteUring: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RacuteV: [
    -50,
    -50,
    -50,
    -50,
    -55,
    -18,
    -18,
    -80
  ],
  RacuteW: [
    -40,
    -40,
    -30,
    -30,
    -35,
    -18,
    -18,
    -55
  ],
  RacuteY: [
    -50,
    -50,
    -50,
    -50,
    -35,
    -18,
    -18,
    -65
  ],
  RacuteYacute: [
    -50,
    -50,
    -50,
    -50,
    -35,
    -18,
    -18,
    -65
  ],
  RacuteYdieresis: [
    -50,
    -50,
    -50,
    -50,
    -35,
    -18,
    -18,
    -65
  ],
  RcaronO: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronOacute: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronOcircumflex: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronOdieresis: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronOgrave: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronOhungarumlaut: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronOmacron: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronOslash: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronOtilde: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronT: [
    -20,
    -20,
    -30,
    -30,
    -40,
    -30,
    0,
    -60
  ],
  RcaronTcaron: [
    -20,
    -20,
    -30,
    -30,
    -40,
    -30,
    0,
    -60
  ],
  RcaronTcommaaccent: [
    -20,
    -20,
    -30,
    -30,
    -40,
    -30,
    0,
    -60
  ],
  RcaronU: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronUacute: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronUcircumflex: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronUdieresis: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronUgrave: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronUhungarumlaut: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronUmacron: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronUogonek: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronUring: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcaronV: [
    -50,
    -50,
    -50,
    -50,
    -55,
    -18,
    -18,
    -80
  ],
  RcaronW: [
    -40,
    -40,
    -30,
    -30,
    -35,
    -18,
    -18,
    -55
  ],
  RcaronY: [
    -50,
    -50,
    -50,
    -50,
    -35,
    -18,
    -18,
    -65
  ],
  RcaronYacute: [
    -50,
    -50,
    -50,
    -50,
    -35,
    -18,
    -18,
    -65
  ],
  RcaronYdieresis: [
    -50,
    -50,
    -50,
    -50,
    -35,
    -18,
    -18,
    -65
  ],
  RcommaaccentO: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentOacute: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentOcircumflex: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentOdieresis: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentOgrave: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentOhungarumlaut: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentOmacron: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentOslash: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentOtilde: [
    -20,
    -20,
    -20,
    -20,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentT: [
    -20,
    -20,
    -30,
    -30,
    -40,
    -30,
    0,
    -60
  ],
  RcommaaccentTcaron: [
    -20,
    -20,
    -30,
    -30,
    -40,
    -30,
    0,
    -60
  ],
  RcommaaccentTcommaaccent: [
    -20,
    -20,
    -30,
    -30,
    -40,
    -30,
    0,
    -60
  ],
  RcommaaccentU: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentUacute: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentUcircumflex: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentUdieresis: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentUgrave: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentUhungarumlaut: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentUmacron: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentUogonek: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentUring: [
    -20,
    -20,
    -40,
    -40,
    -30,
    -40,
    -40,
    -40
  ],
  RcommaaccentV: [
    -50,
    -50,
    -50,
    -50,
    -55,
    -18,
    -18,
    -80
  ],
  RcommaaccentW: [
    -40,
    -40,
    -30,
    -30,
    -35,
    -18,
    -18,
    -55
  ],
  RcommaaccentY: [
    -50,
    -50,
    -50,
    -50,
    -35,
    -18,
    -18,
    -65
  ],
  RcommaaccentYacute: [
    -50,
    -50,
    -50,
    -50,
    -35,
    -18,
    -18,
    -65
  ],
  RcommaaccentYdieresis: [
    -50,
    -50,
    -50,
    -50,
    -35,
    -18,
    -18,
    -65
  ],
  TA: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TAacute: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TAbreve: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TAcircumflex: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TAdieresis: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TAgrave: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TAmacron: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TAogonek: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TAring: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TAtilde: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TO: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TOacute: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TOcircumflex: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TOdieresis: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TOgrave: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TOhungarumlaut: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TOmacron: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TOslash: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TOtilde: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  Ta: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -92,
    -92,
    -80
  ],
  Taacute: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -92,
    -92,
    -80
  ],
  Tabreve: [
    -80,
    -80,
    -60,
    -60,
    -52,
    -92,
    -92,
    -80
  ],
  Tacircumflex: [
    -80,
    -80,
    -120,
    -120,
    -52,
    -92,
    -92,
    -80
  ],
  Tadieresis: [
    -80,
    -80,
    -120,
    -120,
    -52,
    -92,
    -92,
    -40
  ],
  Tagrave: [
    -80,
    -80,
    -120,
    -120,
    -52,
    -92,
    -92,
    -40
  ],
  Tamacron: [
    -80,
    -80,
    -60,
    -60,
    -52,
    -92,
    -92,
    -40
  ],
  Taogonek: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -92,
    -92,
    -80
  ],
  Taring: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -92,
    -92,
    -80
  ],
  Tatilde: [
    -80,
    -80,
    -60,
    -60,
    -52,
    -92,
    -92,
    -40
  ],
  Tcolon: [
    -40,
    -40,
    -20,
    -20,
    -74,
    -74,
    -55,
    -50
  ],
  Tcomma: [
    -80,
    -80,
    -120,
    -120,
    -74,
    -92,
    -74,
    -74
  ],
  Te: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Teacute: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Tecaron: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Tecircumflex: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -52,
    -70
  ],
  Tedieresis: [
    -60,
    -60,
    -120,
    -120,
    -52,
    -52,
    -52,
    -30
  ],
  Tedotaccent: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Tegrave: [
    -60,
    -60,
    -60,
    -60,
    -52,
    -52,
    -52,
    -70
  ],
  Temacron: [
    -60,
    -60,
    -60,
    -60,
    -52,
    -52,
    -52,
    -30
  ],
  Teogonek: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Thyphen: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -92,
    -74,
    -92
  ],
  To: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Toacute: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tocircumflex: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Todieresis: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tograve: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tohungarumlaut: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tomacron: [
    -80,
    -80,
    -60,
    -60,
    -92,
    -95,
    -92,
    -80
  ],
  Toslash: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Totilde: [
    -80,
    -80,
    -60,
    -60,
    -92,
    -95,
    -92,
    -80
  ],
  Tperiod: [
    -80,
    -80,
    -120,
    -120,
    -90,
    -92,
    -74,
    -74
  ],
  Tr: [
    -80,
    -80,
    -120,
    -120,
    -74,
    -37,
    -55,
    -35
  ],
  Tracute: [
    -80,
    -80,
    -120,
    -120,
    -74,
    -37,
    -55,
    -35
  ],
  Trcommaaccent: [
    -80,
    -80,
    -120,
    -120,
    -74,
    -37,
    -55,
    -35
  ],
  Tsemicolon: [
    -40,
    -40,
    -20,
    -20,
    -74,
    -74,
    -65,
    -55
  ],
  Tu: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tuacute: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tucircumflex: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tudieresis: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tugrave: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tuhungarumlaut: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tumacron: [
    -90,
    -90,
    -60,
    -60,
    -92,
    -37,
    -55,
    -45
  ],
  Tuogonek: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Turing: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tw: [
    -60,
    -60,
    -120,
    -120,
    -74,
    -37,
    -74,
    -80
  ],
  Ty: [
    -60,
    -60,
    -120,
    -120,
    -34,
    -37,
    -74,
    -80
  ],
  Tyacute: [
    -60,
    -60,
    -120,
    -120,
    -34,
    -37,
    -74,
    -80
  ],
  Tydieresis: [
    -60,
    -60,
    -60,
    -60,
    -34,
    -37,
    -34,
    -80
  ],
  TcaronA: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcaronAacute: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcaronAbreve: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcaronAcircumflex: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcaronAdieresis: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcaronAgrave: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcaronAmacron: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcaronAogonek: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcaronAring: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcaronAtilde: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcaronO: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcaronOacute: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcaronOcircumflex: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcaronOdieresis: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcaronOgrave: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcaronOhungarumlaut: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcaronOmacron: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcaronOslash: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcaronOtilde: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  Tcarona: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -92,
    -92,
    -80
  ],
  Tcaronaacute: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -92,
    -92,
    -80
  ],
  Tcaronabreve: [
    -80,
    -80,
    -60,
    -60,
    -52,
    -92,
    -92,
    -80
  ],
  Tcaronacircumflex: [
    -80,
    -80,
    -120,
    -120,
    -52,
    -92,
    -92,
    -80
  ],
  Tcaronadieresis: [
    -80,
    -80,
    -120,
    -120,
    -52,
    -92,
    -92,
    -40
  ],
  Tcaronagrave: [
    -80,
    -80,
    -120,
    -120,
    -52,
    -92,
    -92,
    -40
  ],
  Tcaronamacron: [
    -80,
    -80,
    -60,
    -60,
    -52,
    -92,
    -92,
    -40
  ],
  Tcaronaogonek: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -92,
    -92,
    -80
  ],
  Tcaronaring: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -92,
    -92,
    -80
  ],
  Tcaronatilde: [
    -80,
    -80,
    -60,
    -60,
    -52,
    -92,
    -92,
    -40
  ],
  Tcaroncolon: [
    -40,
    -40,
    -20,
    -20,
    -74,
    -74,
    -55,
    -50
  ],
  Tcaroncomma: [
    -80,
    -80,
    -120,
    -120,
    -74,
    -92,
    -74,
    -74
  ],
  Tcarone: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Tcaroneacute: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Tcaronecaron: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Tcaronecircumflex: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -52,
    -30
  ],
  Tcaronedieresis: [
    -60,
    -60,
    -120,
    -120,
    -52,
    -52,
    -52,
    -30
  ],
  Tcaronedotaccent: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Tcaronegrave: [
    -60,
    -60,
    -60,
    -60,
    -52,
    -52,
    -52,
    -70
  ],
  Tcaronemacron: [
    -60,
    -60,
    -60,
    -60,
    -52,
    -52,
    -52,
    -30
  ],
  Tcaroneogonek: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Tcaronhyphen: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -92,
    -74,
    -92
  ],
  Tcarono: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcaronoacute: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcaronocircumflex: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcaronodieresis: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcaronograve: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcaronohungarumlaut: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcaronomacron: [
    -80,
    -80,
    -60,
    -60,
    -92,
    -95,
    -92,
    -80
  ],
  Tcaronoslash: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcaronotilde: [
    -80,
    -80,
    -60,
    -60,
    -92,
    -95,
    -92,
    -80
  ],
  Tcaronperiod: [
    -80,
    -80,
    -120,
    -120,
    -90,
    -92,
    -74,
    -74
  ],
  Tcaronr: [
    -80,
    -80,
    -120,
    -120,
    -74,
    -37,
    -55,
    -35
  ],
  Tcaronracute: [
    -80,
    -80,
    -120,
    -120,
    -74,
    -37,
    -55,
    -35
  ],
  Tcaronrcommaaccent: [
    -80,
    -80,
    -120,
    -120,
    -74,
    -37,
    -55,
    -35
  ],
  Tcaronsemicolon: [
    -40,
    -40,
    -20,
    -20,
    -74,
    -74,
    -65,
    -55
  ],
  Tcaronu: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcaronuacute: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcaronucircumflex: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcaronudieresis: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcaronugrave: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcaronuhungarumlaut: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcaronumacron: [
    -90,
    -90,
    -60,
    -60,
    -92,
    -37,
    -55,
    -45
  ],
  Tcaronuogonek: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcaronuring: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcaronw: [
    -60,
    -60,
    -120,
    -120,
    -74,
    -37,
    -74,
    -80
  ],
  Tcarony: [
    -60,
    -60,
    -120,
    -120,
    -34,
    -37,
    -74,
    -80
  ],
  Tcaronyacute: [
    -60,
    -60,
    -120,
    -120,
    -34,
    -37,
    -74,
    -80
  ],
  Tcaronydieresis: [
    -60,
    -60,
    -60,
    -60,
    -34,
    -37,
    -34,
    -80
  ],
  TcommaaccentA: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcommaaccentAacute: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcommaaccentAbreve: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcommaaccentAcircumflex: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcommaaccentAdieresis: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcommaaccentAgrave: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcommaaccentAmacron: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcommaaccentAogonek: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcommaaccentAring: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcommaaccentAtilde: [
    -90,
    -90,
    -120,
    -120,
    -90,
    -55,
    -50,
    -93
  ],
  TcommaaccentO: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcommaaccentOacute: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcommaaccentOcircumflex: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcommaaccentOdieresis: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcommaaccentOgrave: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcommaaccentOhungarumlaut: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcommaaccentOmacron: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcommaaccentOslash: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  TcommaaccentOtilde: [
    -40,
    -40,
    -40,
    -40,
    -18,
    -18,
    -18,
    -18
  ],
  Tcommaaccenta: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -92,
    -92,
    -80
  ],
  Tcommaaccentaacute: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -92,
    -92,
    -80
  ],
  Tcommaaccentabreve: [
    -80,
    -80,
    -60,
    -60,
    -52,
    -92,
    -92,
    -80
  ],
  Tcommaaccentacircumflex: [
    -80,
    -80,
    -120,
    -120,
    -52,
    -92,
    -92,
    -80
  ],
  Tcommaaccentadieresis: [
    -80,
    -80,
    -120,
    -120,
    -52,
    -92,
    -92,
    -40
  ],
  Tcommaaccentagrave: [
    -80,
    -80,
    -120,
    -120,
    -52,
    -92,
    -92,
    -40
  ],
  Tcommaaccentamacron: [
    -80,
    -80,
    -60,
    -60,
    -52,
    -92,
    -92,
    -40
  ],
  Tcommaaccentaogonek: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -92,
    -92,
    -80
  ],
  Tcommaaccentaring: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -92,
    -92,
    -80
  ],
  Tcommaaccentatilde: [
    -80,
    -80,
    -60,
    -60,
    -52,
    -92,
    -92,
    -40
  ],
  Tcommaaccentcolon: [
    -40,
    -40,
    -20,
    -20,
    -74,
    -74,
    -55,
    -50
  ],
  Tcommaaccentcomma: [
    -80,
    -80,
    -120,
    -120,
    -74,
    -92,
    -74,
    -74
  ],
  Tcommaaccente: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Tcommaaccenteacute: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Tcommaaccentecaron: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Tcommaaccentecircumflex: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -52,
    -30
  ],
  Tcommaaccentedieresis: [
    -60,
    -60,
    -120,
    -120,
    -52,
    -52,
    -52,
    -30
  ],
  Tcommaaccentedotaccent: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Tcommaaccentegrave: [
    -60,
    -60,
    -60,
    -60,
    -52,
    -52,
    -52,
    -30
  ],
  Tcommaaccentemacron: [
    -60,
    -60,
    -60,
    -60,
    -52,
    -52,
    -52,
    -70
  ],
  Tcommaaccenteogonek: [
    -60,
    -60,
    -120,
    -120,
    -92,
    -92,
    -92,
    -70
  ],
  Tcommaaccenthyphen: [
    -120,
    -120,
    -140,
    -140,
    -92,
    -92,
    -74,
    -92
  ],
  Tcommaaccento: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcommaaccentoacute: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcommaaccentocircumflex: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcommaaccentodieresis: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcommaaccentograve: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcommaaccentohungarumlaut: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcommaaccentomacron: [
    -80,
    -80,
    -60,
    -60,
    -92,
    -95,
    -92,
    -80
  ],
  Tcommaaccentoslash: [
    -80,
    -80,
    -120,
    -120,
    -92,
    -95,
    -92,
    -80
  ],
  Tcommaaccentotilde: [
    -80,
    -80,
    -60,
    -60,
    -92,
    -95,
    -92,
    -80
  ],
  Tcommaaccentperiod: [
    -80,
    -80,
    -120,
    -120,
    -90,
    -92,
    -74,
    -74
  ],
  Tcommaaccentr: [
    -80,
    -80,
    -120,
    -120,
    -74,
    -37,
    -55,
    -35
  ],
  Tcommaaccentracute: [
    -80,
    -80,
    -120,
    -120,
    -74,
    -37,
    -55,
    -35
  ],
  Tcommaaccentrcommaaccent: [
    -80,
    -80,
    -120,
    -120,
    -74,
    -37,
    -55,
    -35
  ],
  Tcommaaccentsemicolon: [
    -40,
    -40,
    -20,
    -20,
    -74,
    -74,
    -65,
    -55
  ],
  Tcommaaccentu: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcommaaccentuacute: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcommaaccentucircumflex: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcommaaccentudieresis: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcommaaccentugrave: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcommaaccentuhungarumlaut: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcommaaccentumacron: [
    -90,
    -90,
    -60,
    -60,
    -92,
    -37,
    -55,
    -45
  ],
  Tcommaaccentuogonek: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcommaaccenturing: [
    -90,
    -90,
    -120,
    -120,
    -92,
    -37,
    -55,
    -45
  ],
  Tcommaaccentw: [
    -60,
    -60,
    -120,
    -120,
    -74,
    -37,
    -74,
    -80
  ],
  Tcommaaccenty: [
    -60,
    -60,
    -120,
    -120,
    -34,
    -37,
    -74,
    -80
  ],
  Tcommaaccentyacute: [
    -60,
    -60,
    -120,
    -120,
    -34,
    -37,
    -74,
    -80
  ],
  Tcommaaccentydieresis: [
    -60,
    -60,
    -60,
    -60,
    -34,
    -37,
    -34,
    -80
  ],
  UA: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UAacute: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UAbreve: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UAcircumflex: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UAdieresis: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UAgrave: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UAmacron: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UAogonek: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UAring: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UAtilde: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  Ucomma: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  Uperiod: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  UacuteA: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UacuteAacute: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UacuteAbreve: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UacuteAcircumflex: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UacuteAdieresis: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UacuteAgrave: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UacuteAmacron: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UacuteAogonek: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UacuteAring: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UacuteAtilde: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  Uacutecomma: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  Uacuteperiod: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  UcircumflexA: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UcircumflexAacute: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UcircumflexAbreve: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UcircumflexAcircumflex: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UcircumflexAdieresis: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UcircumflexAgrave: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UcircumflexAmacron: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UcircumflexAogonek: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UcircumflexAring: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UcircumflexAtilde: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  Ucircumflexcomma: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  Ucircumflexperiod: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  UdieresisA: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UdieresisAacute: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UdieresisAbreve: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UdieresisAcircumflex: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UdieresisAdieresis: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UdieresisAgrave: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UdieresisAmacron: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UdieresisAogonek: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UdieresisAring: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UdieresisAtilde: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  Udieresiscomma: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  Udieresisperiod: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  UgraveA: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UgraveAacute: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UgraveAbreve: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UgraveAcircumflex: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UgraveAdieresis: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UgraveAgrave: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UgraveAmacron: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UgraveAogonek: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UgraveAring: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UgraveAtilde: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  Ugravecomma: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  Ugraveperiod: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  UhungarumlautA: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UhungarumlautAacute: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UhungarumlautAbreve: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UhungarumlautAcircumflex: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UhungarumlautAdieresis: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UhungarumlautAgrave: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UhungarumlautAmacron: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UhungarumlautAogonek: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UhungarumlautAring: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UhungarumlautAtilde: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  Uhungarumlautcomma: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  Uhungarumlautperiod: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  UmacronA: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UmacronAacute: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UmacronAbreve: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UmacronAcircumflex: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UmacronAdieresis: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UmacronAgrave: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UmacronAmacron: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UmacronAogonek: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UmacronAring: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UmacronAtilde: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  Umacroncomma: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  Umacronperiod: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  UogonekA: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UogonekAacute: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UogonekAbreve: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UogonekAcircumflex: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UogonekAdieresis: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UogonekAgrave: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UogonekAmacron: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UogonekAogonek: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UogonekAring: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UogonekAtilde: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  Uogonekcomma: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  Uogonekperiod: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  UringA: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UringAacute: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UringAbreve: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UringAcircumflex: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UringAdieresis: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UringAgrave: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UringAmacron: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UringAogonek: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UringAring: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  UringAtilde: [
    -50,
    -50,
    -40,
    -40,
    -60,
    -45,
    -40,
    -40
  ],
  Uringcomma: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  Uringperiod: [
    -30,
    -30,
    -40,
    -40,
    -50,
    0,
    -25
  ],
  VA: [
    -80,
    -80,
    -80,
    -80,
    -135,
    -85,
    -60,
    -135
  ],
  VAacute: [
    -80,
    -80,
    -80,
    -80,
    -135,
    -85,
    -60,
    -135
  ],
  VAbreve: [
    -80,
    -80,
    -80,
    -80,
    -135,
    -85,
    -60,
    -135
  ],
  VAcircumflex: [
    -80,
    -80,
    -80,
    -80,
    -135,
    -85,
    -60,
    -135
  ],
  VAdieresis: [
    -80,
    -80,
    -80,
    -80,
    -135,
    -85,
    -60,
    -135
  ],
  VAgrave: [
    -80,
    -80,
    -80,
    -80,
    -135,
    -85,
    -60,
    -135
  ],
  VAmacron: [
    -80,
    -80,
    -80,
    -80,
    -135,
    -85,
    -60,
    -135
  ],
  VAogonek: [
    -80,
    -80,
    -80,
    -80,
    -135,
    -85,
    -60,
    -135
  ],
  VAring: [
    -80,
    -80,
    -80,
    -80,
    -135,
    -85,
    -60,
    -135
  ],
  VAtilde: [
    -80,
    -80,
    -80,
    -80,
    -135,
    -85,
    -60,
    -135
  ],
  VG: [
    -50,
    -50,
    -40,
    -40,
    -30,
    -10,
    0,
    -15
  ],
  VGbreve: [
    -50,
    -50,
    -40,
    -40,
    -30,
    -10,
    0,
    -15
  ],
  VGcommaaccent: [
    -50,
    -50,
    -40,
    -40,
    -30,
    -10,
    0,
    -15
  ],
  VO: [
    -50,
    -50,
    -40,
    -40,
    -45,
    -30,
    -30,
    -40
  ],
  VOacute: [
    -50,
    -50,
    -40,
    -40,
    -45,
    -30,
    -30,
    -40
  ],
  VOcircumflex: [
    -50,
    -50,
    -40,
    -40,
    -45,
    -30,
    -30,
    -40
  ],
  VOdieresis: [
    -50,
    -50,
    -40,
    -40,
    -45,
    -30,
    -30,
    -40
  ],
  VOgrave: [
    -50,
    -50,
    -40,
    -40,
    -45,
    -30,
    -30,
    -40
  ],
  VOhungarumlaut: [
    -50,
    -50,
    -40,
    -40,
    -45,
    -30,
    -30,
    -40
  ],
  VOmacron: [
    -50,
    -50,
    -40,
    -40,
    -45,
    -30,
    -30,
    -40
  ],
  VOslash: [
    -50,
    -50,
    -40,
    -40,
    -45,
    -30,
    -30,
    -40
  ],
  VOtilde: [
    -50,
    -50,
    -40,
    -40,
    -45,
    -30,
    -30,
    -40
  ],
  Va: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -111,
    -111,
    -111
  ],
  Vaacute: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -111,
    -111,
    -111
  ],
  Vabreve: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -111,
    -111,
    -111
  ],
  Vacircumflex: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -111,
    -111,
    -71
  ],
  Vadieresis: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -111,
    -111,
    -71
  ],
  Vagrave: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -111,
    -111,
    -71
  ],
  Vamacron: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -111,
    -111,
    -71
  ],
  Vaogonek: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -111,
    -111,
    -111
  ],
  Varing: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -111,
    -111,
    -111
  ],
  Vatilde: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -111,
    -111,
    -71
  ],
  Vcolon: [
    -40,
    -40,
    -40,
    -40,
    -92,
    -74,
    -65,
    -74
  ],
  Vcomma: [
    -120,
    -120,
    -125,
    -125,
    -129,
    -129,
    -129,
    -129
  ],
  Ve: [
    -50,
    -50,
    -80,
    -80,
    -100,
    -111,
    -111,
    -111
  ],
  Veacute: [
    -50,
    -50,
    -80,
    -80,
    -100,
    -111,
    -111,
    -111
  ],
  Vecaron: [
    -50,
    -50,
    -80,
    -80,
    -100,
    -111,
    -111,
    -71
  ],
  Vecircumflex: [
    -50,
    -50,
    -80,
    -80,
    -100,
    -111,
    -111,
    -71
  ],
  Vedieresis: [
    -50,
    -50,
    -80,
    -80,
    -100,
    -71,
    -71,
    -71
  ],
  Vedotaccent: [
    -50,
    -50,
    -80,
    -80,
    -100,
    -111,
    -111,
    -111
  ],
  Vegrave: [
    -50,
    -50,
    -80,
    -80,
    -100,
    -71,
    -71,
    -71
  ],
  Vemacron: [
    -50,
    -50,
    -80,
    -80,
    -100,
    -71,
    -71,
    -71
  ],
  Veogonek: [
    -50,
    -50,
    -80,
    -80,
    -100,
    -111,
    -111,
    -111
  ],
  Vhyphen: [
    -80,
    -80,
    -80,
    -80,
    -74,
    -70,
    -55,
    -100
  ],
  Vo: [
    -90,
    -90,
    -80,
    -80,
    -100,
    -111,
    -111,
    -129
  ],
  Voacute: [
    -90,
    -90,
    -80,
    -80,
    -100,
    -111,
    -111,
    -129
  ],
  Vocircumflex: [
    -90,
    -90,
    -80,
    -80,
    -100,
    -111,
    -111,
    -129
  ],
  Vodieresis: [
    -90,
    -90,
    -80,
    -80,
    -100,
    -111,
    -111,
    -89
  ],
  Vograve: [
    -90,
    -90,
    -80,
    -80,
    -100,
    -111,
    -111,
    -89
  ],
  Vohungarumlaut: [
    -90,
    -90,
    -80,
    -80,
    -100,
    -111,
    -111,
    -129
  ],
  Vomacron: [
    -90,
    -90,
    -80,
    -80,
    -100,
    -111,
    -111,
    -89
  ],
  Voslash: [
    -90,
    -90,
    -80,
    -80,
    -100,
    -111,
    -111,
    -129
  ],
  Votilde: [
    -90,
    -90,
    -80,
    -80,
    -100,
    -111,
    -111,
    -89
  ],
  Vperiod: [
    -120,
    -120,
    -125,
    -125,
    -145,
    -129,
    -129,
    -129
  ],
  Vsemicolon: [
    -40,
    -40,
    -40,
    -40,
    -92,
    -74,
    -74,
    -74
  ],
  Vu: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -55,
    -74,
    -75
  ],
  Vuacute: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -55,
    -74,
    -75
  ],
  Vucircumflex: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -55,
    -74,
    -75
  ],
  Vudieresis: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -55,
    -74,
    -75
  ],
  Vugrave: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -55,
    -74,
    -75
  ],
  Vuhungarumlaut: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -55,
    -74,
    -75
  ],
  Vumacron: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -55,
    -74,
    -75
  ],
  Vuogonek: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -55,
    -74,
    -75
  ],
  Vuring: [
    -60,
    -60,
    -70,
    -70,
    -92,
    -55,
    -74,
    -75
  ],
  WA: [
    -60,
    -60,
    -50,
    -50,
    -120,
    -74,
    -60,
    -120
  ],
  WAacute: [
    -60,
    -60,
    -50,
    -50,
    -120,
    -74,
    -60,
    -120
  ],
  WAbreve: [
    -60,
    -60,
    -50,
    -50,
    -120,
    -74,
    -60,
    -120
  ],
  WAcircumflex: [
    -60,
    -60,
    -50,
    -50,
    -120,
    -74,
    -60,
    -120
  ],
  WAdieresis: [
    -60,
    -60,
    -50,
    -50,
    -120,
    -74,
    -60,
    -120
  ],
  WAgrave: [
    -60,
    -60,
    -50,
    -50,
    -120,
    -74,
    -60,
    -120
  ],
  WAmacron: [
    -60,
    -60,
    -50,
    -50,
    -120,
    -74,
    -60,
    -120
  ],
  WAogonek: [
    -60,
    -60,
    -50,
    -50,
    -120,
    -74,
    -60,
    -120
  ],
  WAring: [
    -60,
    -60,
    -50,
    -50,
    -120,
    -74,
    -60,
    -120
  ],
  WAtilde: [
    -60,
    -60,
    -50,
    -50,
    -120,
    -74,
    -60,
    -120
  ],
  WO: [
    -20,
    -20,
    -20,
    -20,
    -10,
    -15,
    -25,
    -10
  ],
  WOacute: [
    -20,
    -20,
    -20,
    -20,
    -10,
    -15,
    -25,
    -10
  ],
  WOcircumflex: [
    -20,
    -20,
    -20,
    -20,
    -10,
    -15,
    -25,
    -10
  ],
  WOdieresis: [
    -20,
    -20,
    -20,
    -20,
    -10,
    -15,
    -25,
    -10
  ],
  WOgrave: [
    -20,
    -20,
    -20,
    -20,
    -10,
    -15,
    -25,
    -10
  ],
  WOhungarumlaut: [
    -20,
    -20,
    -20,
    -20,
    -10,
    -15,
    -25,
    -10
  ],
  WOmacron: [
    -20,
    -20,
    -20,
    -20,
    -10,
    -15,
    -25,
    -10
  ],
  WOslash: [
    -20,
    -20,
    -20,
    -20,
    -10,
    -15,
    -25,
    -10
  ],
  WOtilde: [
    -20,
    -20,
    -20,
    -20,
    -10,
    -15,
    -25,
    -10
  ],
  Wa: [
    -40,
    -40,
    -40,
    -40,
    -65,
    -85,
    -92,
    -80
  ],
  Waacute: [
    -40,
    -40,
    -40,
    -40,
    -65,
    -85,
    -92,
    -80
  ],
  Wabreve: [
    -40,
    -40,
    -40,
    -40,
    -65,
    -85,
    -92,
    -80
  ],
  Wacircumflex: [
    -40,
    -40,
    -40,
    -40,
    -65,
    -85,
    -92,
    -80
  ],
  Wadieresis: [
    -40,
    -40,
    -40,
    -40,
    -65,
    -85,
    -92,
    -80
  ],
  Wagrave: [
    -40,
    -40,
    -40,
    -40,
    -65,
    -85,
    -92,
    -80
  ],
  Wamacron: [
    -40,
    -40,
    -40,
    -40,
    -65,
    -85,
    -92,
    -80
  ],
  Waogonek: [
    -40,
    -40,
    -40,
    -40,
    -65,
    -85,
    -92,
    -80
  ],
  Waring: [
    -40,
    -40,
    -40,
    -40,
    -65,
    -85,
    -92,
    -80
  ],
  Watilde: [
    -40,
    -40,
    -40,
    -40,
    -65,
    -85,
    -92,
    -80
  ],
  Wcolon: [
    -10,
    -10,
    0,
    0,
    -55,
    -55,
    -65,
    -37
  ],
  Wcomma: [
    -80,
    -80,
    -80,
    -80,
    -92,
    -74,
    -92,
    -92
  ],
  We: [
    -35,
    -35,
    -30,
    -30,
    -65,
    -90,
    -92,
    -80
  ],
  Weacute: [
    -35,
    -35,
    -30,
    -30,
    -65,
    -90,
    -92,
    -80
  ],
  Wecaron: [
    -35,
    -35,
    -30,
    -30,
    -65,
    -90,
    -92,
    -80
  ],
  Wecircumflex: [
    -35,
    -35,
    -30,
    -30,
    -65,
    -90,
    -92,
    -80
  ],
  Wedieresis: [
    -35,
    -35,
    -30,
    -30,
    -65,
    -50,
    -52,
    -40
  ],
  Wedotaccent: [
    -35,
    -35,
    -30,
    -30,
    -65,
    -90,
    -92,
    -80
  ],
  Wegrave: [
    -35,
    -35,
    -30,
    -30,
    -65,
    -50,
    -52,
    -40
  ],
  Wemacron: [
    -35,
    -35,
    -30,
    -30,
    -65,
    -50,
    -52,
    -40
  ],
  Weogonek: [
    -35,
    -35,
    -30,
    -30,
    -65,
    -90,
    -92,
    -80
  ],
  Whyphen: [
    -40,
    -40,
    -40,
    -40,
    -37,
    -50,
    -37,
    -65
  ],
  Wo: [
    -60,
    -60,
    -30,
    -30,
    -75,
    -80,
    -92,
    -80
  ],
  Woacute: [
    -60,
    -60,
    -30,
    -30,
    -75,
    -80,
    -92,
    -80
  ],
  Wocircumflex: [
    -60,
    -60,
    -30,
    -30,
    -75,
    -80,
    -92,
    -80
  ],
  Wodieresis: [
    -60,
    -60,
    -30,
    -30,
    -75,
    -80,
    -92,
    -80
  ],
  Wograve: [
    -60,
    -60,
    -30,
    -30,
    -75,
    -80,
    -92,
    -80
  ],
  Wohungarumlaut: [
    -60,
    -60,
    -30,
    -30,
    -75,
    -80,
    -92,
    -80
  ],
  Womacron: [
    -60,
    -60,
    -30,
    -30,
    -75,
    -80,
    -92,
    -80
  ],
  Woslash: [
    -60,
    -60,
    -30,
    -30,
    -75,
    -80,
    -92,
    -80
  ],
  Wotilde: [
    -60,
    -60,
    -30,
    -30,
    -75,
    -80,
    -92,
    -80
  ],
  Wperiod: [
    -80,
    -80,
    -80,
    -80,
    -92,
    -74,
    -92,
    -92
  ],
  Wsemicolon: [
    -10,
    -10,
    0,
    0,
    -55,
    -55,
    -65,
    -37
  ],
  Wu: [
    -45,
    -45,
    -30,
    -30,
    -50,
    -55,
    -55,
    -50
  ],
  Wuacute: [
    -45,
    -45,
    -30,
    -30,
    -50,
    -55,
    -55,
    -50
  ],
  Wucircumflex: [
    -45,
    -45,
    -30,
    -30,
    -50,
    -55,
    -55,
    -50
  ],
  Wudieresis: [
    -45,
    -45,
    -30,
    -30,
    -50,
    -55,
    -55,
    -50
  ],
  Wugrave: [
    -45,
    -45,
    -30,
    -30,
    -50,
    -55,
    -55,
    -50
  ],
  Wuhungarumlaut: [
    -45,
    -45,
    -30,
    -30,
    -50,
    -55,
    -55,
    -50
  ],
  Wumacron: [
    -45,
    -45,
    -30,
    -30,
    -50,
    -55,
    -55,
    -50
  ],
  Wuogonek: [
    -45,
    -45,
    -30,
    -30,
    -50,
    -55,
    -55,
    -50
  ],
  Wuring: [
    -45,
    -45,
    -30,
    -30,
    -50,
    -55,
    -55,
    -50
  ],
  Wy: [
    -20,
    -20,
    -20,
    -20,
    -60,
    -55,
    -70,
    -73
  ],
  Wyacute: [
    -20,
    -20,
    -20,
    -20,
    -60,
    -55,
    -70,
    -73
  ],
  Wydieresis: [
    -20,
    -20,
    -20,
    -20,
    -60,
    -55,
    -70,
    -73
  ],
  YA: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YAacute: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YAbreve: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YAcircumflex: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YAdieresis: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YAgrave: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YAmacron: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YAogonek: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YAring: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YAtilde: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YO: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YOacute: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YOcircumflex: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YOdieresis: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YOgrave: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YOhungarumlaut: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YOmacron: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YOslash: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YOtilde: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  Ya: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Yaacute: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Yabreve: [
    -90,
    -90,
    -70,
    -70,
    -85,
    -92,
    -92,
    -100
  ],
  Yacircumflex: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Yadieresis: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -60
  ],
  Yagrave: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -60
  ],
  Yamacron: [
    -90,
    -90,
    -70,
    -70,
    -85,
    -92,
    -92,
    -60
  ],
  Yaogonek: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Yaring: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Yatilde: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -60
  ],
  Ycolon: [
    -50,
    -50,
    -60,
    -60,
    -92,
    -92,
    -65,
    -92
  ],
  Ycomma: [
    -100,
    -100,
    -140,
    -140,
    -92,
    -92,
    -92,
    -129
  ],
  Ye: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Yeacute: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Yecaron: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Yecircumflex: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -71,
    -92,
    -100
  ],
  Yedieresis: [
    -80,
    -80,
    -140,
    -140,
    -71,
    -71,
    -52,
    -60
  ],
  Yedotaccent: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Yegrave: [
    -80,
    -80,
    -140,
    -140,
    -71,
    -71,
    -52,
    -60
  ],
  Yemacron: [
    -80,
    -80,
    -70,
    -70,
    -71,
    -71,
    -52,
    -60
  ],
  Yeogonek: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Yo: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Yoacute: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Yocircumflex: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Yodieresis: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -70
  ],
  Yograve: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -70
  ],
  Yohungarumlaut: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Yomacron: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -70
  ],
  Yoslash: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Yotilde: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -70
  ],
  Yperiod: [
    -100,
    -100,
    -140,
    -140,
    -92,
    -74,
    -92,
    -129
  ],
  Ysemicolon: [
    -50,
    -50,
    -60,
    -60,
    -92,
    -92,
    -65,
    -92
  ],
  Yu: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Yuacute: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Yucircumflex: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Yudieresis: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -71
  ],
  Yugrave: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -71
  ],
  Yuhungarumlaut: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Yumacron: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -71
  ],
  Yuogonek: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Yuring: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  YacuteA: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YacuteAacute: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YacuteAbreve: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YacuteAcircumflex: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YacuteAdieresis: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YacuteAgrave: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YacuteAmacron: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YacuteAogonek: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YacuteAring: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YacuteAtilde: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YacuteO: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YacuteOacute: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YacuteOcircumflex: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YacuteOdieresis: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YacuteOgrave: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YacuteOhungarumlaut: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YacuteOmacron: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YacuteOslash: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YacuteOtilde: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  Yacutea: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Yacuteaacute: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Yacuteabreve: [
    -90,
    -90,
    -70,
    -70,
    -85,
    -92,
    -92,
    -100
  ],
  Yacuteacircumflex: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Yacuteadieresis: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -60
  ],
  Yacuteagrave: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -60
  ],
  Yacuteamacron: [
    -90,
    -90,
    -70,
    -70,
    -85,
    -92,
    -92,
    -60
  ],
  Yacuteaogonek: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Yacutearing: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Yacuteatilde: [
    -90,
    -90,
    -70,
    -70,
    -85,
    -92,
    -92,
    -60
  ],
  Yacutecolon: [
    -50,
    -50,
    -60,
    -60,
    -92,
    -92,
    -65,
    -92
  ],
  Yacutecomma: [
    -100,
    -100,
    -140,
    -140,
    -92,
    -92,
    -92,
    -129
  ],
  Yacutee: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Yacuteeacute: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Yacuteecaron: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Yacuteecircumflex: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -71,
    -92,
    -100
  ],
  Yacuteedieresis: [
    -80,
    -80,
    -140,
    -140,
    -71,
    -71,
    -52,
    -60
  ],
  Yacuteedotaccent: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Yacuteegrave: [
    -80,
    -80,
    -140,
    -140,
    -71,
    -71,
    -52,
    -60
  ],
  Yacuteemacron: [
    -80,
    -80,
    -70,
    -70,
    -71,
    -71,
    -52,
    -60
  ],
  Yacuteeogonek: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Yacuteo: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Yacuteoacute: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Yacuteocircumflex: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Yacuteodieresis: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -70
  ],
  Yacuteograve: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -70
  ],
  Yacuteohungarumlaut: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Yacuteomacron: [
    -100,
    -100,
    -70,
    -70,
    -111,
    -111,
    -92,
    -70
  ],
  Yacuteoslash: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Yacuteotilde: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -70
  ],
  Yacuteperiod: [
    -100,
    -100,
    -140,
    -140,
    -92,
    -74,
    -92,
    -129
  ],
  Yacutesemicolon: [
    -50,
    -50,
    -60,
    -60,
    -92,
    -92,
    -65,
    -92
  ],
  Yacuteu: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Yacuteuacute: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Yacuteucircumflex: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Yacuteudieresis: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -71
  ],
  Yacuteugrave: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -71
  ],
  Yacuteuhungarumlaut: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Yacuteumacron: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -71
  ],
  Yacuteuogonek: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Yacuteuring: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  YdieresisA: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YdieresisAacute: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YdieresisAbreve: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YdieresisAcircumflex: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YdieresisAdieresis: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YdieresisAgrave: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YdieresisAmacron: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YdieresisAogonek: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YdieresisAring: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YdieresisAtilde: [
    -110,
    -110,
    -110,
    -110,
    -110,
    -74,
    -50,
    -120
  ],
  YdieresisO: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YdieresisOacute: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YdieresisOcircumflex: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YdieresisOdieresis: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YdieresisOgrave: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YdieresisOhungarumlaut: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YdieresisOmacron: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YdieresisOslash: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  YdieresisOtilde: [
    -70,
    -70,
    -85,
    -85,
    -35,
    -25,
    -15,
    -30
  ],
  Ydieresisa: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Ydieresisaacute: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Ydieresisabreve: [
    -90,
    -90,
    -70,
    -70,
    -85,
    -92,
    -92,
    -100
  ],
  Ydieresisacircumflex: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Ydieresisadieresis: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -60
  ],
  Ydieresisagrave: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -60
  ],
  Ydieresisamacron: [
    -90,
    -90,
    -70,
    -70,
    -85,
    -92,
    -92,
    -60
  ],
  Ydieresisaogonek: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Ydieresisaring: [
    -90,
    -90,
    -140,
    -140,
    -85,
    -92,
    -92,
    -100
  ],
  Ydieresisatilde: [
    -90,
    -90,
    -70,
    -70,
    -85,
    -92,
    -92,
    -100
  ],
  Ydieresiscolon: [
    -50,
    -50,
    -60,
    -60,
    -92,
    -92,
    -65,
    -92
  ],
  Ydieresiscomma: [
    -100,
    -100,
    -140,
    -140,
    -92,
    -92,
    -92,
    -129
  ],
  Ydieresise: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Ydieresiseacute: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Ydieresisecaron: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Ydieresisecircumflex: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -71,
    -92,
    -100
  ],
  Ydieresisedieresis: [
    -80,
    -80,
    -140,
    -140,
    -71,
    -71,
    -52,
    -60
  ],
  Ydieresisedotaccent: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Ydieresisegrave: [
    -80,
    -80,
    -140,
    -140,
    -71,
    -71,
    -52,
    -60
  ],
  Ydieresisemacron: [
    -80,
    -80,
    -70,
    -70,
    -71,
    -71,
    -52,
    -60
  ],
  Ydieresiseogonek: [
    -80,
    -80,
    -140,
    -140,
    -111,
    -111,
    -92,
    -100
  ],
  Ydieresiso: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Ydieresisoacute: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Ydieresisocircumflex: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Ydieresisodieresis: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -70
  ],
  Ydieresisograve: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -70
  ],
  Ydieresisohungarumlaut: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Ydieresisomacron: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -70
  ],
  Ydieresisoslash: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -110
  ],
  Ydieresisotilde: [
    -100,
    -100,
    -140,
    -140,
    -111,
    -111,
    -92,
    -70
  ],
  Ydieresisperiod: [
    -100,
    -100,
    -140,
    -140,
    -92,
    -74,
    -92,
    -129
  ],
  Ydieresissemicolon: [
    -50,
    -50,
    -60,
    -60,
    -92,
    -92,
    -65,
    -92
  ],
  Ydieresisu: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Ydieresisuacute: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Ydieresisucircumflex: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Ydieresisudieresis: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -71
  ],
  Ydieresisugrave: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -71
  ],
  Ydieresisuhungarumlaut: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Ydieresisumacron: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -71
  ],
  Ydieresisuogonek: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  Ydieresisuring: [
    -100,
    -100,
    -110,
    -110,
    -92,
    -92,
    -92,
    -111
  ],
  ag: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  agbreve: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  agcommaaccent: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  av: [
    -15,
    -15,
    -20,
    -20,
    -25,
    0,
    0,
    -20
  ],
  aw: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    0,
    -15
  ],
  ay: [
    -20,
    -20,
    -30,
    -30
  ],
  ayacute: [
    -20,
    -20,
    -30,
    -30
  ],
  aydieresis: [
    -20,
    -20,
    -30,
    -30
  ],
  aacuteg: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  aacutegbreve: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  aacutegcommaaccent: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  aacutev: [
    -15,
    -15,
    -20,
    -20,
    -25,
    0,
    0,
    -20
  ],
  aacutew: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    0,
    -15
  ],
  aacutey: [
    -20,
    -20,
    -30,
    -30
  ],
  aacuteyacute: [
    -20,
    -20,
    -30,
    -30
  ],
  aacuteydieresis: [
    -20,
    -20,
    -30,
    -30
  ],
  abreveg: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  abrevegbreve: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  abrevegcommaaccent: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  abrevev: [
    -15,
    -15,
    -20,
    -20,
    -25,
    0,
    0,
    -20
  ],
  abrevew: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    0,
    -15
  ],
  abrevey: [
    -20,
    -20,
    -30,
    -30
  ],
  abreveyacute: [
    -20,
    -20,
    -30,
    -30
  ],
  abreveydieresis: [
    -20,
    -20,
    -30,
    -30
  ],
  acircumflexg: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  acircumflexgbreve: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  acircumflexgcommaaccent: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  acircumflexv: [
    -15,
    -15,
    -20,
    -20,
    -25,
    0,
    0,
    -20
  ],
  acircumflexw: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    0,
    -15
  ],
  acircumflexy: [
    -20,
    -20,
    -30,
    -30
  ],
  acircumflexyacute: [
    -20,
    -20,
    -30,
    -30
  ],
  acircumflexydieresis: [
    -20,
    -20,
    -30,
    -30
  ],
  adieresisg: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  adieresisgbreve: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  adieresisgcommaaccent: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  adieresisv: [
    -15,
    -15,
    -20,
    -20,
    -25,
    0,
    0,
    -20
  ],
  adieresisw: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    0,
    -15
  ],
  adieresisy: [
    -20,
    -20,
    -30,
    -30
  ],
  adieresisyacute: [
    -20,
    -20,
    -30,
    -30
  ],
  adieresisydieresis: [
    -20,
    -20,
    -30,
    -30
  ],
  agraveg: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  agravegbreve: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  agravegcommaaccent: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  agravev: [
    -15,
    -15,
    -20,
    -20,
    -25,
    0,
    0,
    -20
  ],
  agravew: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    0,
    -15
  ],
  agravey: [
    -20,
    -20,
    -30,
    -30
  ],
  agraveyacute: [
    -20,
    -20,
    -30,
    -30
  ],
  agraveydieresis: [
    -20,
    -20,
    -30,
    -30
  ],
  amacrong: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  amacrongbreve: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  amacrongcommaaccent: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  amacronv: [
    -15,
    -15,
    -20,
    -20,
    -25,
    0,
    0,
    -20
  ],
  amacronw: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    0,
    -15
  ],
  amacrony: [
    -20,
    -20,
    -30,
    -30
  ],
  amacronyacute: [
    -20,
    -20,
    -30,
    -30
  ],
  amacronydieresis: [
    -20,
    -20,
    -30,
    -30
  ],
  aogonekg: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  aogonekgbreve: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  aogonekgcommaaccent: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  aogonekv: [
    -15,
    -15,
    -20,
    -20,
    -25,
    0,
    0,
    -20
  ],
  aogonekw: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    0,
    -15
  ],
  aogoneky: [
    -20,
    -20,
    -30,
    -30
  ],
  aogonekyacute: [
    -20,
    -20,
    -30,
    -30
  ],
  aogonekydieresis: [
    -20,
    -20,
    -30,
    -30
  ],
  aringg: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  aringgbreve: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  aringgcommaaccent: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  aringv: [
    -15,
    -15,
    -20,
    -20,
    -25,
    0,
    0,
    -20
  ],
  aringw: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    0,
    -15
  ],
  aringy: [
    -20,
    -20,
    -30,
    -30
  ],
  aringyacute: [
    -20,
    -20,
    -30,
    -30
  ],
  aringydieresis: [
    -20,
    -20,
    -30,
    -30
  ],
  atildeg: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  atildegbreve: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  atildegcommaaccent: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  atildev: [
    -15,
    -15,
    -20,
    -20,
    -25,
    0,
    0,
    -20
  ],
  atildew: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    0,
    -15
  ],
  atildey: [
    -20,
    -20,
    -30,
    -30
  ],
  atildeyacute: [
    -20,
    -20,
    -30,
    -30
  ],
  atildeydieresis: [
    -20,
    -20,
    -30,
    -30
  ],
  bl: [
    -10,
    -10,
    -20,
    -20
  ],
  blacute: [
    -10,
    -10,
    -20,
    -20
  ],
  blcommaaccent: [
    -10,
    -10,
    -20,
    -20
  ],
  blslash: [
    -10,
    -10,
    -20,
    -20
  ],
  bu: [
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20
  ],
  buacute: [
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20
  ],
  bucircumflex: [
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20
  ],
  budieresis: [
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20
  ],
  bugrave: [
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20
  ],
  buhungarumlaut: [
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20
  ],
  bumacron: [
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20
  ],
  buogonek: [
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20
  ],
  buring: [
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20,
    -20
  ],
  bv: [
    -20,
    -20,
    -20,
    -20,
    -15,
    0,
    0,
    -15
  ],
  by: [
    -20,
    -20,
    -20,
    -20
  ],
  byacute: [
    -20,
    -20,
    -20,
    -20
  ],
  bydieresis: [
    -20,
    -20,
    -20,
    -20
  ],
  ch: [
    -10,
    -10,
    0,
    0,
    0,
    -10,
    -15
  ],
  ck: [
    -20,
    -20,
    -20,
    -20,
    0,
    -10,
    -20
  ],
  ckcommaaccent: [
    -20,
    -20,
    -20,
    -20,
    0,
    -10,
    -20
  ],
  cl: [
    -20,
    -20
  ],
  clacute: [
    -20,
    -20
  ],
  clcommaaccent: [
    -20,
    -20
  ],
  clslash: [
    -20,
    -20
  ],
  cy: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    0,
    -15
  ],
  cyacute: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    0,
    -15
  ],
  cydieresis: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    0,
    -15
  ],
  cacuteh: [
    -10,
    -10,
    0,
    0,
    0,
    -10,
    -15
  ],
  cacutek: [
    -20,
    -20,
    -20,
    -20,
    0,
    -10,
    -20
  ],
  cacutekcommaaccent: [
    -20,
    -20,
    -20,
    -20,
    0,
    -10,
    -20
  ],
  cacutel: [
    -20,
    -20
  ],
  cacutelacute: [
    -20,
    -20
  ],
  cacutelcommaaccent: [
    -20,
    -20
  ],
  cacutelslash: [
    -20,
    -20
  ],
  cacutey: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    0,
    -15
  ],
  cacuteyacute: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    0,
    -15
  ],
  cacuteydieresis: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    0,
    -15
  ],
  ccaronh: [
    -10,
    -10,
    0,
    0,
    0,
    -10,
    -15
  ],
  ccaronk: [
    -20,
    -20,
    -20,
    -20,
    0,
    -10,
    -20
  ],
  ccaronkcommaaccent: [
    -20,
    -20,
    -20,
    -20,
    0,
    -10,
    -20
  ],
  ccaronl: [
    -20,
    -20
  ],
  ccaronlacute: [
    -20,
    -20
  ],
  ccaronlcommaaccent: [
    -20,
    -20
  ],
  ccaronlslash: [
    -20,
    -20
  ],
  ccarony: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    0,
    -15
  ],
  ccaronyacute: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    0,
    -15
  ],
  ccaronydieresis: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    0,
    -15
  ],
  ccedillah: [
    -10,
    -10,
    0,
    0,
    0,
    -10,
    -15
  ],
  ccedillak: [
    -20,
    -20,
    -20,
    -20,
    0,
    -10,
    -20
  ],
  ccedillakcommaaccent: [
    -20,
    -20,
    -20,
    -20,
    0,
    -10,
    -20
  ],
  ccedillal: [
    -20,
    -20
  ],
  ccedillalacute: [
    -20,
    -20
  ],
  ccedillalcommaaccent: [
    -20,
    -20
  ],
  ccedillalslash: [
    -20,
    -20
  ],
  ccedillay: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    0,
    -15
  ],
  ccedillayacute: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    0,
    -15
  ],
  ccedillaydieresis: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    0,
    -15
  ],
  colonspace: [
    -40,
    -40,
    -50,
    -50
  ],
  commaquotedblright: [
    -120,
    -120,
    -100,
    -100,
    -45,
    -95,
    -140,
    -70
  ],
  commaquoteright: [
    -120,
    -120,
    -100,
    -100,
    -55,
    -95,
    -140,
    -70
  ],
  commaspace: [
    -40,
    -40
  ],
  dd: [
    -10,
    -10
  ],
  ddcroat: [
    -10,
    -10
  ],
  dv: [
    -15,
    -15
  ],
  dw: [
    -15,
    -15,
    0,
    0,
    -15
  ],
  dy: [
    -15,
    -15
  ],
  dyacute: [
    -15,
    -15
  ],
  dydieresis: [
    -15,
    -15
  ],
  dcroatd: [
    -10,
    -10
  ],
  dcroatdcroat: [
    -10,
    -10
  ],
  dcroatv: [
    -15,
    -15
  ],
  dcroatw: [
    -15,
    -15,
    0,
    0,
    -15
  ],
  dcroaty: [
    -15,
    -15
  ],
  dcroatyacute: [
    -15,
    -15
  ],
  dcroatydieresis: [
    -15,
    -15
  ],
  ecomma: [
    10,
    10,
    -15,
    -15,
    0,
    0,
    -10
  ],
  eperiod: [
    20,
    20,
    -15,
    -15,
    0,
    0,
    -15
  ],
  ev: [
    -15,
    -15,
    -30,
    -30,
    -15,
    0,
    -15,
    -25
  ],
  ew: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -15,
    -25
  ],
  ex: [
    -15,
    -15,
    -30,
    -30,
    0,
    0,
    -20,
    -15
  ],
  ey: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  eyacute: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  eydieresis: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  eacutecomma: [
    10,
    10,
    -15,
    -15,
    0,
    0,
    -10
  ],
  eacuteperiod: [
    20,
    20,
    -15,
    -15,
    0,
    0,
    -15
  ],
  eacutev: [
    -15,
    -15,
    -30,
    -30,
    -15,
    0,
    -15,
    -25
  ],
  eacutew: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -15,
    -25
  ],
  eacutex: [
    -15,
    -15,
    -30,
    -30,
    0,
    0,
    -20,
    -15
  ],
  eacutey: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  eacuteyacute: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  eacuteydieresis: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  ecaroncomma: [
    10,
    10,
    -15,
    -15,
    0,
    0,
    -10
  ],
  ecaronperiod: [
    20,
    20,
    -15,
    -15,
    0,
    0,
    -15
  ],
  ecaronv: [
    -15,
    -15,
    -30,
    -30,
    -15,
    0,
    -15,
    -25
  ],
  ecaronw: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -15,
    -25
  ],
  ecaronx: [
    -15,
    -15,
    -30,
    -30,
    0,
    0,
    -20,
    -15
  ],
  ecarony: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  ecaronyacute: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  ecaronydieresis: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  ecircumflexcomma: [
    10,
    10,
    -15,
    -15,
    0,
    0,
    -10
  ],
  ecircumflexperiod: [
    20,
    20,
    -15,
    -15,
    0,
    0,
    -15
  ],
  ecircumflexv: [
    -15,
    -15,
    -30,
    -30,
    -15,
    0,
    -15,
    -25
  ],
  ecircumflexw: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -15,
    -25
  ],
  ecircumflexx: [
    -15,
    -15,
    -30,
    -30,
    0,
    0,
    -20,
    -15
  ],
  ecircumflexy: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  ecircumflexyacute: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  ecircumflexydieresis: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  edieresiscomma: [
    10,
    10,
    -15,
    -15,
    0,
    0,
    -10
  ],
  edieresisperiod: [
    20,
    20,
    -15,
    -15,
    0,
    0,
    -15
  ],
  edieresisv: [
    -15,
    -15,
    -30,
    -30,
    -15,
    0,
    -15,
    -25
  ],
  edieresisw: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -15,
    -25
  ],
  edieresisx: [
    -15,
    -15,
    -30,
    -30,
    0,
    0,
    -20,
    -15
  ],
  edieresisy: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  edieresisyacute: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  edieresisydieresis: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  edotaccentcomma: [
    10,
    10,
    -15,
    -15,
    0,
    0,
    -10
  ],
  edotaccentperiod: [
    20,
    20,
    -15,
    -15,
    0,
    0,
    -15
  ],
  edotaccentv: [
    -15,
    -15,
    -30,
    -30,
    -15,
    0,
    -15,
    -25
  ],
  edotaccentw: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -15,
    -25
  ],
  edotaccentx: [
    -15,
    -15,
    -30,
    -30,
    0,
    0,
    -20,
    -15
  ],
  edotaccenty: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  edotaccentyacute: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  edotaccentydieresis: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  egravecomma: [
    10,
    10,
    -15,
    -15,
    0,
    0,
    -10
  ],
  egraveperiod: [
    20,
    20,
    -15,
    -15,
    0,
    0,
    -15
  ],
  egravev: [
    -15,
    -15,
    -30,
    -30,
    -15,
    0,
    -15,
    -25
  ],
  egravew: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -15,
    -25
  ],
  egravex: [
    -15,
    -15,
    -30,
    -30,
    0,
    0,
    -20,
    -15
  ],
  egravey: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  egraveyacute: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  egraveydieresis: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  emacroncomma: [
    10,
    10,
    -15,
    -15,
    0,
    0,
    -10
  ],
  emacronperiod: [
    20,
    20,
    -15,
    -15,
    0,
    0,
    -15
  ],
  emacronv: [
    -15,
    -15,
    -30,
    -30,
    -15,
    0,
    -15,
    -25
  ],
  emacronw: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -15,
    -25
  ],
  emacronx: [
    -15,
    -15,
    -30,
    -30,
    0,
    0,
    -20,
    -15
  ],
  emacrony: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  emacronyacute: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  emacronydieresis: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  eogonekcomma: [
    10,
    10,
    -15,
    -15,
    0,
    0,
    -10
  ],
  eogonekperiod: [
    20,
    20,
    -15,
    -15,
    0,
    0,
    -15
  ],
  eogonekv: [
    -15,
    -15,
    -30,
    -30,
    -15,
    0,
    -15,
    -25
  ],
  eogonekw: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -15,
    -25
  ],
  eogonekx: [
    -15,
    -15,
    -30,
    -30,
    0,
    0,
    -20,
    -15
  ],
  eogoneky: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  eogonekyacute: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  eogonekydieresis: [
    -15,
    -15,
    -20,
    -20,
    0,
    0,
    -30,
    -15
  ],
  fcomma: [
    -10,
    -10,
    -30,
    -30,
    -15,
    -10,
    -10
  ],
  fe: [
    -10,
    -10,
    -30,
    -30,
    0,
    -10
  ],
  feacute: [
    -10,
    -10,
    -30,
    -30,
    0,
    -10
  ],
  fecaron: [
    -10,
    -10,
    -30,
    -30
  ],
  fecircumflex: [
    -10,
    -10,
    -30,
    -30
  ],
  fedieresis: [
    -10,
    -10,
    -30,
    -30
  ],
  fedotaccent: [
    -10,
    -10,
    -30,
    -30,
    0,
    -10
  ],
  fegrave: [
    -10,
    -10,
    -30,
    -30
  ],
  femacron: [
    -10,
    -10,
    -30,
    -30
  ],
  feogonek: [
    -10,
    -10,
    -30,
    -30,
    0,
    -10
  ],
  fo: [
    -20,
    -20,
    -30,
    -30,
    -25,
    -10
  ],
  foacute: [
    -20,
    -20,
    -30,
    -30,
    -25,
    -10
  ],
  focircumflex: [
    -20,
    -20,
    -30,
    -30,
    -25,
    -10
  ],
  fodieresis: [
    -20,
    -20,
    -30,
    -30,
    -25
  ],
  fograve: [
    -20,
    -20,
    -30,
    -30,
    -25,
    -10
  ],
  fohungarumlaut: [
    -20,
    -20,
    -30,
    -30,
    -25,
    -10
  ],
  fomacron: [
    -20,
    -20,
    -30,
    -30,
    -25
  ],
  foslash: [
    -20,
    -20,
    -30,
    -30,
    -25,
    -10
  ],
  fotilde: [
    -20,
    -20,
    -30,
    -30,
    -25,
    -10
  ],
  fperiod: [
    -10,
    -10,
    -30,
    -30,
    -15,
    -10,
    -15
  ],
  fquotedblright: [
    30,
    30,
    60,
    60,
    50
  ],
  fquoteright: [
    30,
    30,
    50,
    50,
    55,
    55,
    92,
    55
  ],
  ge: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  geacute: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gecaron: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gecircumflex: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gedieresis: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gedotaccent: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gegrave: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gemacron: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  geogonek: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gg: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  ggbreve: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  ggcommaaccent: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  gbrevee: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gbreveeacute: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gbreveecaron: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gbreveecircumflex: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gbreveedieresis: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gbreveedotaccent: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gbreveegrave: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gbreveemacron: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gbreveeogonek: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gbreveg: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  gbrevegbreve: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  gbrevegcommaaccent: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  gcommaaccente: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gcommaaccenteacute: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gcommaaccentecaron: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gcommaaccentecircumflex: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gcommaaccentedieresis: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gcommaaccentedotaccent: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gcommaaccentegrave: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gcommaaccentemacron: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gcommaaccenteogonek: [
    10,
    10,
    0,
    0,
    0,
    0,
    -10
  ],
  gcommaaccentg: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  gcommaaccentgbreve: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  gcommaaccentgcommaaccent: [
    -10,
    -10,
    0,
    0,
    0,
    0,
    -10
  ],
  hy: [
    -20,
    -20,
    -30,
    -30,
    -15,
    0,
    0,
    -5
  ],
  hyacute: [
    -20,
    -20,
    -30,
    -30,
    -15,
    0,
    0,
    -5
  ],
  hydieresis: [
    -20,
    -20,
    -30,
    -30,
    -15,
    0,
    0,
    -5
  ],
  ko: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  koacute: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kocircumflex: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kodieresis: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kograve: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kohungarumlaut: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  komacron: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  koslash: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kotilde: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kcommaaccento: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kcommaaccentoacute: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kcommaaccentocircumflex: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kcommaaccentodieresis: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kcommaaccentograve: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kcommaaccentohungarumlaut: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kcommaaccentomacron: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kcommaaccentoslash: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  kcommaaccentotilde: [
    -15,
    -15,
    -20,
    -20,
    -15,
    -10,
    -10,
    -10
  ],
  lw: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ly: [
    -15,
    -15
  ],
  lyacute: [
    -15,
    -15
  ],
  lydieresis: [
    -15,
    -15
  ],
  lacutew: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  lacutey: [
    -15,
    -15
  ],
  lacuteyacute: [
    -15,
    -15
  ],
  lacuteydieresis: [
    -15,
    -15
  ],
  lcommaaccentw: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  lcommaaccenty: [
    -15,
    -15
  ],
  lcommaaccentyacute: [
    -15,
    -15
  ],
  lcommaaccentydieresis: [
    -15,
    -15
  ],
  lslashw: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  lslashy: [
    -15,
    -15
  ],
  lslashyacute: [
    -15,
    -15
  ],
  lslashydieresis: [
    -15,
    -15
  ],
  mu: [
    -20,
    -20,
    -10,
    -10
  ],
  muacute: [
    -20,
    -20,
    -10,
    -10
  ],
  mucircumflex: [
    -20,
    -20,
    -10,
    -10
  ],
  mudieresis: [
    -20,
    -20,
    -10,
    -10
  ],
  mugrave: [
    -20,
    -20,
    -10,
    -10
  ],
  muhungarumlaut: [
    -20,
    -20,
    -10,
    -10
  ],
  mumacron: [
    -20,
    -20,
    -10,
    -10
  ],
  muogonek: [
    -20,
    -20,
    -10,
    -10
  ],
  muring: [
    -20,
    -20,
    -10,
    -10
  ],
  my: [
    -30,
    -30,
    -15,
    -15
  ],
  myacute: [
    -30,
    -30,
    -15,
    -15
  ],
  mydieresis: [
    -30,
    -30,
    -15,
    -15
  ],
  nu: [
    -10,
    -10,
    -10,
    -10
  ],
  nuacute: [
    -10,
    -10,
    -10,
    -10
  ],
  nucircumflex: [
    -10,
    -10,
    -10,
    -10
  ],
  nudieresis: [
    -10,
    -10,
    -10,
    -10
  ],
  nugrave: [
    -10,
    -10,
    -10,
    -10
  ],
  nuhungarumlaut: [
    -10,
    -10,
    -10,
    -10
  ],
  numacron: [
    -10,
    -10,
    -10,
    -10
  ],
  nuogonek: [
    -10,
    -10,
    -10,
    -10
  ],
  nuring: [
    -10,
    -10,
    -10,
    -10
  ],
  nv: [
    -40,
    -40,
    -20,
    -20,
    -40,
    -40,
    -40,
    -40
  ],
  ny: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  nyacute: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  nydieresis: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  nacuteu: [
    -10,
    -10,
    -10,
    -10
  ],
  nacuteuacute: [
    -10,
    -10,
    -10,
    -10
  ],
  nacuteucircumflex: [
    -10,
    -10,
    -10,
    -10
  ],
  nacuteudieresis: [
    -10,
    -10,
    -10,
    -10
  ],
  nacuteugrave: [
    -10,
    -10,
    -10,
    -10
  ],
  nacuteuhungarumlaut: [
    -10,
    -10,
    -10,
    -10
  ],
  nacuteumacron: [
    -10,
    -10,
    -10,
    -10
  ],
  nacuteuogonek: [
    -10,
    -10,
    -10,
    -10
  ],
  nacuteuring: [
    -10,
    -10,
    -10,
    -10
  ],
  nacutev: [
    -40,
    -40,
    -20,
    -20,
    -40,
    -40,
    -40,
    -40
  ],
  nacutey: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  nacuteyacute: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  nacuteydieresis: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  ncaronu: [
    -10,
    -10,
    -10,
    -10
  ],
  ncaronuacute: [
    -10,
    -10,
    -10,
    -10
  ],
  ncaronucircumflex: [
    -10,
    -10,
    -10,
    -10
  ],
  ncaronudieresis: [
    -10,
    -10,
    -10,
    -10
  ],
  ncaronugrave: [
    -10,
    -10,
    -10,
    -10
  ],
  ncaronuhungarumlaut: [
    -10,
    -10,
    -10,
    -10
  ],
  ncaronumacron: [
    -10,
    -10,
    -10,
    -10
  ],
  ncaronuogonek: [
    -10,
    -10,
    -10,
    -10
  ],
  ncaronuring: [
    -10,
    -10,
    -10,
    -10
  ],
  ncaronv: [
    -40,
    -40,
    -20,
    -20,
    -40,
    -40,
    -40,
    -40
  ],
  ncarony: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  ncaronyacute: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  ncaronydieresis: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  ncommaaccentu: [
    -10,
    -10,
    -10,
    -10
  ],
  ncommaaccentuacute: [
    -10,
    -10,
    -10,
    -10
  ],
  ncommaaccentucircumflex: [
    -10,
    -10,
    -10,
    -10
  ],
  ncommaaccentudieresis: [
    -10,
    -10,
    -10,
    -10
  ],
  ncommaaccentugrave: [
    -10,
    -10,
    -10,
    -10
  ],
  ncommaaccentuhungarumlaut: [
    -10,
    -10,
    -10,
    -10
  ],
  ncommaaccentumacron: [
    -10,
    -10,
    -10,
    -10
  ],
  ncommaaccentuogonek: [
    -10,
    -10,
    -10,
    -10
  ],
  ncommaaccenturing: [
    -10,
    -10,
    -10,
    -10
  ],
  ncommaaccentv: [
    -40,
    -40,
    -20,
    -20,
    -40,
    -40,
    -40,
    -40
  ],
  ncommaaccenty: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  ncommaaccentyacute: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  ncommaaccentydieresis: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  ntildeu: [
    -10,
    -10,
    -10,
    -10
  ],
  ntildeuacute: [
    -10,
    -10,
    -10,
    -10
  ],
  ntildeucircumflex: [
    -10,
    -10,
    -10,
    -10
  ],
  ntildeudieresis: [
    -10,
    -10,
    -10,
    -10
  ],
  ntildeugrave: [
    -10,
    -10,
    -10,
    -10
  ],
  ntildeuhungarumlaut: [
    -10,
    -10,
    -10,
    -10
  ],
  ntildeumacron: [
    -10,
    -10,
    -10,
    -10
  ],
  ntildeuogonek: [
    -10,
    -10,
    -10,
    -10
  ],
  ntildeuring: [
    -10,
    -10,
    -10,
    -10
  ],
  ntildev: [
    -40,
    -40,
    -20,
    -20,
    -40,
    -40,
    -40,
    -40
  ],
  ntildey: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  ntildeyacute: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  ntildeydieresis: [
    -20,
    -20,
    -15,
    -15,
    0,
    0,
    0,
    -15
  ],
  ov: [
    -20,
    -20,
    -15,
    -15,
    -10,
    -15,
    -10,
    -15
  ],
  ow: [
    -15,
    -15,
    -15,
    -15,
    -10,
    -25,
    0,
    -25
  ],
  ox: [
    -30,
    -30,
    -30,
    -30,
    0,
    -10
  ],
  oy: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  oyacute: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  oydieresis: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  oacutev: [
    -20,
    -20,
    -15,
    -15,
    -10,
    -15,
    -10,
    -15
  ],
  oacutew: [
    -15,
    -15,
    -15,
    -15,
    -10,
    -25,
    0,
    -25
  ],
  oacutex: [
    -30,
    -30,
    -30,
    -30,
    0,
    -10
  ],
  oacutey: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  oacuteyacute: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  oacuteydieresis: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  ocircumflexv: [
    -20,
    -20,
    -15,
    -15,
    -10,
    -15,
    -10,
    -15
  ],
  ocircumflexw: [
    -15,
    -15,
    -15,
    -15,
    -10,
    -25,
    0,
    -25
  ],
  ocircumflexx: [
    -30,
    -30,
    -30,
    -30,
    0,
    -10
  ],
  ocircumflexy: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  ocircumflexyacute: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  ocircumflexydieresis: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  odieresisv: [
    -20,
    -20,
    -15,
    -15,
    -10,
    -15,
    -10,
    -15
  ],
  odieresisw: [
    -15,
    -15,
    -15,
    -15,
    -10,
    -25,
    0,
    -25
  ],
  odieresisx: [
    -30,
    -30,
    -30,
    -30,
    0,
    -10
  ],
  odieresisy: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  odieresisyacute: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  odieresisydieresis: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  ogravev: [
    -20,
    -20,
    -15,
    -15,
    -10,
    -15,
    -10,
    -15
  ],
  ogravew: [
    -15,
    -15,
    -15,
    -15,
    -10,
    -25,
    0,
    -25
  ],
  ogravex: [
    -30,
    -30,
    -30,
    -30,
    0,
    -10
  ],
  ogravey: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  ograveyacute: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  ograveydieresis: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  ohungarumlautv: [
    -20,
    -20,
    -15,
    -15,
    -10,
    -15,
    -10,
    -15
  ],
  ohungarumlautw: [
    -15,
    -15,
    -15,
    -15,
    -10,
    -25,
    0,
    -25
  ],
  ohungarumlautx: [
    -30,
    -30,
    -30,
    -30,
    0,
    -10
  ],
  ohungarumlauty: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  ohungarumlautyacute: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  ohungarumlautydieresis: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  omacronv: [
    -20,
    -20,
    -15,
    -15,
    -10,
    -15,
    -10,
    -15
  ],
  omacronw: [
    -15,
    -15,
    -15,
    -15,
    -10,
    -25,
    0,
    -25
  ],
  omacronx: [
    -30,
    -30,
    -30,
    -30,
    0,
    -10
  ],
  omacrony: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  omacronyacute: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  omacronydieresis: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  oslashv: [
    -20,
    -20,
    -70,
    -70,
    -10,
    -15,
    -10,
    -15
  ],
  oslashw: [
    -15,
    -15,
    -70,
    -70,
    -10,
    -25,
    0,
    -25
  ],
  oslashx: [
    -30,
    -30,
    -85,
    -85,
    0,
    -10
  ],
  oslashy: [
    -20,
    -20,
    -70,
    -70,
    0,
    -10,
    0,
    -10
  ],
  oslashyacute: [
    -20,
    -20,
    -70,
    -70,
    0,
    -10,
    0,
    -10
  ],
  oslashydieresis: [
    -20,
    -20,
    -70,
    -70,
    0,
    -10,
    0,
    -10
  ],
  otildev: [
    -20,
    -20,
    -15,
    -15,
    -10,
    -15,
    -10,
    -15
  ],
  otildew: [
    -15,
    -15,
    -15,
    -15,
    -10,
    -25,
    0,
    -25
  ],
  otildex: [
    -30,
    -30,
    -30,
    -30,
    0,
    -10
  ],
  otildey: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  otildeyacute: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  otildeydieresis: [
    -20,
    -20,
    -30,
    -30,
    0,
    -10,
    0,
    -10
  ],
  py: [
    -15,
    -15,
    -30,
    -30,
    0,
    0,
    0,
    -10
  ],
  pyacute: [
    -15,
    -15,
    -30,
    -30,
    0,
    0,
    0,
    -10
  ],
  pydieresis: [
    -15,
    -15,
    -30,
    -30,
    0,
    0,
    0,
    -10
  ],
  periodquotedblright: [
    -120,
    -120,
    -100,
    -100,
    -55,
    -95,
    -140,
    -70
  ],
  periodquoteright: [
    -120,
    -120,
    -100,
    -100,
    -55,
    -95,
    -140,
    -70
  ],
  periodspace: [
    -40,
    -40,
    -60,
    -60
  ],
  quotedblrightspace: [
    -80,
    -80,
    -40,
    -40
  ],
  quoteleftquoteleft: [
    -46,
    -46,
    -57,
    -57,
    -63,
    -74,
    -111,
    -74
  ],
  quoterightd: [
    -80,
    -80,
    -50,
    -50,
    -20,
    -15,
    -25,
    -50
  ],
  quoterightdcroat: [
    -80,
    -80,
    -50,
    -50,
    -20,
    -15,
    -25,
    -50
  ],
  quoterightl: [
    -20,
    -20,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  quoterightlacute: [
    -20,
    -20,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  quoterightlcommaaccent: [
    -20,
    -20,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  quoterightlslash: [
    -20,
    -20,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  quoterightquoteright: [
    -46,
    -46,
    -57,
    -57,
    -63,
    -74,
    -111,
    -74
  ],
  quoterightr: [
    -40,
    -40,
    -50,
    -50,
    -20,
    -15,
    -25,
    -50
  ],
  quoterightracute: [
    -40,
    -40,
    -50,
    -50,
    -20,
    -15,
    -25,
    -50
  ],
  quoterightrcaron: [
    -40,
    -40,
    -50,
    -50,
    -20,
    -15,
    -25,
    -50
  ],
  quoterightrcommaaccent: [
    -40,
    -40,
    -50,
    -50,
    -20,
    -15,
    -25,
    -50
  ],
  quoterights: [
    -60,
    -60,
    -50,
    -50,
    -37,
    -74,
    -40,
    -55
  ],
  quoterightsacute: [
    -60,
    -60,
    -50,
    -50,
    -37,
    -74,
    -40,
    -55
  ],
  quoterightscaron: [
    -60,
    -60,
    -50,
    -50,
    -37,
    -74,
    -40,
    -55
  ],
  quoterightscedilla: [
    -60,
    -60,
    -50,
    -50,
    -37,
    -74,
    -40,
    -55
  ],
  quoterightscommaaccent: [
    -60,
    -60,
    -50,
    -50,
    -37,
    -74,
    -40,
    -55
  ],
  quoterightspace: [
    -80,
    -80,
    -70,
    -70,
    -74,
    -74,
    -111,
    -74
  ],
  quoterightv: [
    -20,
    -20,
    0,
    0,
    -20,
    -15,
    -10,
    -50
  ],
  rc: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcacute: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rccaron: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rccedilla: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcomma: [
    -60,
    -60,
    -50,
    -50,
    -92,
    -65,
    -111,
    -40
  ],
  rd: [
    -20,
    -20,
    0,
    0,
    0,
    0,
    -37
  ],
  rdcroat: [
    -20,
    -20,
    0,
    0,
    0,
    0,
    -37
  ],
  rg: [
    -15,
    -15,
    0,
    0,
    -10,
    0,
    -37,
    -18
  ],
  rgbreve: [
    -15,
    -15,
    0,
    0,
    -10,
    0,
    -37,
    -18
  ],
  rgcommaaccent: [
    -15,
    -15,
    0,
    0,
    -10,
    0,
    -37,
    -18
  ],
  rhyphen: [
    -20,
    -20,
    0,
    0,
    -37,
    0,
    -20,
    -20
  ],
  ro: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  roacute: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rocircumflex: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rodieresis: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rograve: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rohungarumlaut: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  romacron: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  roslash: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rotilde: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rperiod: [
    -60,
    -60,
    -50,
    -50,
    -100,
    -65,
    -111,
    -55
  ],
  rq: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rs: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rsacute: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rscaron: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rscedilla: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rscommaaccent: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rt: [
    20,
    20,
    40,
    40
  ],
  rtcommaaccent: [
    20,
    20,
    40,
    40
  ],
  rv: [
    10,
    10,
    30,
    30,
    -10
  ],
  ry: [
    10,
    10,
    30,
    30
  ],
  ryacute: [
    10,
    10,
    30,
    30
  ],
  rydieresis: [
    10,
    10,
    30,
    30
  ],
  racutec: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  racutecacute: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  racuteccaron: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  racuteccedilla: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  racutecomma: [
    -60,
    -60,
    -50,
    -50,
    -92,
    -65,
    -111,
    -40
  ],
  racuted: [
    -20,
    -20,
    0,
    0,
    0,
    0,
    -37
  ],
  racutedcroat: [
    -20,
    -20,
    0,
    0,
    0,
    0,
    -37
  ],
  racuteg: [
    -15,
    -15,
    0,
    0,
    -10,
    0,
    -37,
    -18
  ],
  racutegbreve: [
    -15,
    -15,
    0,
    0,
    -10,
    0,
    -37,
    -18
  ],
  racutegcommaaccent: [
    -15,
    -15,
    0,
    0,
    -10,
    0,
    -37,
    -18
  ],
  racutehyphen: [
    -20,
    -20,
    0,
    0,
    -37,
    0,
    -20,
    -20
  ],
  racuteo: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  racuteoacute: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  racuteocircumflex: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  racuteodieresis: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  racuteograve: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  racuteohungarumlaut: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  racuteomacron: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  racuteoslash: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  racuteotilde: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  racuteperiod: [
    -60,
    -60,
    -50,
    -50,
    -100,
    -65,
    -111,
    -55
  ],
  racuteq: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  racutes: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  racutesacute: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  racutescaron: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  racutescedilla: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  racutescommaaccent: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  racutet: [
    20,
    20,
    40,
    40
  ],
  racutetcommaaccent: [
    20,
    20,
    40,
    40
  ],
  racutev: [
    10,
    10,
    30,
    30,
    -10
  ],
  racutey: [
    10,
    10,
    30,
    30
  ],
  racuteyacute: [
    10,
    10,
    30,
    30
  ],
  racuteydieresis: [
    10,
    10,
    30,
    30
  ],
  rcaronc: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcaroncacute: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcaronccaron: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcaronccedilla: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcaroncomma: [
    -60,
    -60,
    -50,
    -50,
    -92,
    -65,
    -111,
    -40
  ],
  rcarond: [
    -20,
    -20,
    0,
    0,
    0,
    0,
    -37
  ],
  rcarondcroat: [
    -20,
    -20,
    0,
    0,
    0,
    0,
    -37
  ],
  rcarong: [
    -15,
    -15,
    0,
    0,
    -10,
    0,
    -37,
    -18
  ],
  rcarongbreve: [
    -15,
    -15,
    0,
    0,
    -10,
    0,
    -37,
    -18
  ],
  rcarongcommaaccent: [
    -15,
    -15,
    0,
    0,
    -10,
    0,
    -37,
    -18
  ],
  rcaronhyphen: [
    -20,
    -20,
    0,
    0,
    -37,
    0,
    -20,
    -20
  ],
  rcarono: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcaronoacute: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcaronocircumflex: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcaronodieresis: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcaronograve: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcaronohungarumlaut: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcaronomacron: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcaronoslash: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcaronotilde: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcaronperiod: [
    -60,
    -60,
    -50,
    -50,
    -100,
    -65,
    -111,
    -55
  ],
  rcaronq: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcarons: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rcaronsacute: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rcaronscaron: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rcaronscedilla: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rcaronscommaaccent: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rcaront: [
    20,
    20,
    40,
    40
  ],
  rcarontcommaaccent: [
    20,
    20,
    40,
    40
  ],
  rcaronv: [
    10,
    10,
    30,
    30,
    -10
  ],
  rcarony: [
    10,
    10,
    30,
    30
  ],
  rcaronyacute: [
    10,
    10,
    30,
    30
  ],
  rcaronydieresis: [
    10,
    10,
    30,
    30
  ],
  rcommaaccentc: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccentcacute: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccentccaron: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccentccedilla: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccentcomma: [
    -60,
    -60,
    -50,
    -50,
    -92,
    -65,
    -111,
    -40
  ],
  rcommaaccentd: [
    -20,
    -20,
    0,
    0,
    0,
    0,
    -37
  ],
  rcommaaccentdcroat: [
    -20,
    -20,
    0,
    0,
    0,
    0,
    -37
  ],
  rcommaaccentg: [
    -15,
    -15,
    0,
    0,
    -10,
    0,
    -37,
    -18
  ],
  rcommaaccentgbreve: [
    -15,
    -15,
    0,
    0,
    -10,
    0,
    -37,
    -18
  ],
  rcommaaccentgcommaaccent: [
    -15,
    -15,
    0,
    0,
    -10,
    0,
    -37,
    -18
  ],
  rcommaaccenthyphen: [
    -20,
    -20,
    0,
    0,
    -37,
    0,
    -20,
    -20
  ],
  rcommaaccento: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcommaaccentoacute: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcommaaccentocircumflex: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcommaaccentodieresis: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcommaaccentograve: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcommaaccentohungarumlaut: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcommaaccentomacron: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcommaaccentoslash: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcommaaccentotilde: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -45
  ],
  rcommaaccentperiod: [
    -60,
    -60,
    -50,
    -50,
    -100,
    -65,
    -111,
    -55
  ],
  rcommaaccentq: [
    -20,
    -20,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccents: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rcommaaccentsacute: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rcommaaccentscaron: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rcommaaccentscedilla: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rcommaaccentscommaaccent: [
    -15,
    -15,
    0,
    0,
    0,
    0,
    -10
  ],
  rcommaaccentt: [
    20,
    20,
    40,
    40
  ],
  rcommaaccenttcommaaccent: [
    20,
    20,
    40,
    40
  ],
  rcommaaccentv: [
    10,
    10,
    30,
    30,
    -10
  ],
  rcommaaccenty: [
    10,
    10,
    30,
    30
  ],
  rcommaaccentyacute: [
    10,
    10,
    30,
    30
  ],
  rcommaaccentydieresis: [
    10,
    10,
    30,
    30
  ],
  sw: [
    -15,
    -15,
    -30,
    -30
  ],
  sacutew: [
    -15,
    -15,
    -30,
    -30
  ],
  scaronw: [
    -15,
    -15,
    -30,
    -30
  ],
  scedillaw: [
    -15,
    -15,
    -30,
    -30
  ],
  scommaaccentw: [
    -15,
    -15,
    -30,
    -30
  ],
  semicolonspace: [
    -40,
    -40,
    -50,
    -50
  ],
  spaceT: [
    -100,
    -100,
    -50,
    -50,
    -30,
    0,
    -18,
    -18
  ],
  spaceTcaron: [
    -100,
    -100,
    -50,
    -50,
    -30,
    0,
    -18,
    -18
  ],
  spaceTcommaaccent: [
    -100,
    -100,
    -50,
    -50,
    -30,
    0,
    -18,
    -18
  ],
  spaceV: [
    -80,
    -80,
    -50,
    -50,
    -45,
    -70,
    -35,
    -50
  ],
  spaceW: [
    -80,
    -80,
    -40,
    -40,
    -30,
    -70,
    -40,
    -30
  ],
  spaceY: [
    -120,
    -120,
    -90,
    -90,
    -55,
    -70,
    -75,
    -90
  ],
  spaceYacute: [
    -120,
    -120,
    -90,
    -90,
    -55,
    -70,
    -75,
    -90
  ],
  spaceYdieresis: [
    -120,
    -120,
    -90,
    -90,
    -55,
    -70,
    -75,
    -90
  ],
  spacequotedblleft: [
    -80,
    -80,
    -30,
    -30
  ],
  spacequoteleft: [
    -60,
    -60,
    -60,
    -60
  ],
  va: [
    -20,
    -20,
    -25,
    -25,
    -10,
    0,
    0,
    -25
  ],
  vaacute: [
    -20,
    -20,
    -25,
    -25,
    -10,
    0,
    0,
    -25
  ],
  vabreve: [
    -20,
    -20,
    -25,
    -25,
    -10,
    0,
    0,
    -25
  ],
  vacircumflex: [
    -20,
    -20,
    -25,
    -25,
    -10,
    0,
    0,
    -25
  ],
  vadieresis: [
    -20,
    -20,
    -25,
    -25,
    -10,
    0,
    0,
    -25
  ],
  vagrave: [
    -20,
    -20,
    -25,
    -25,
    -10,
    0,
    0,
    -25
  ],
  vamacron: [
    -20,
    -20,
    -25,
    -25,
    -10,
    0,
    0,
    -25
  ],
  vaogonek: [
    -20,
    -20,
    -25,
    -25,
    -10,
    0,
    0,
    -25
  ],
  varing: [
    -20,
    -20,
    -25,
    -25,
    -10,
    0,
    0,
    -25
  ],
  vatilde: [
    -20,
    -20,
    -25,
    -25,
    -10,
    0,
    0,
    -25
  ],
  vcomma: [
    -80,
    -80,
    -80,
    -80,
    -55,
    -37,
    -74,
    -65
  ],
  vo: [
    -30,
    -30,
    -25,
    -25,
    -10,
    -15,
    0,
    -20
  ],
  voacute: [
    -30,
    -30,
    -25,
    -25,
    -10,
    -15,
    0,
    -20
  ],
  vocircumflex: [
    -30,
    -30,
    -25,
    -25,
    -10,
    -15,
    0,
    -20
  ],
  vodieresis: [
    -30,
    -30,
    -25,
    -25,
    -10,
    -15,
    0,
    -20
  ],
  vograve: [
    -30,
    -30,
    -25,
    -25,
    -10,
    -15,
    0,
    -20
  ],
  vohungarumlaut: [
    -30,
    -30,
    -25,
    -25,
    -10,
    -15,
    0,
    -20
  ],
  vomacron: [
    -30,
    -30,
    -25,
    -25,
    -10,
    -15,
    0,
    -20
  ],
  voslash: [
    -30,
    -30,
    -25,
    -25,
    -10,
    -15,
    0,
    -20
  ],
  votilde: [
    -30,
    -30,
    -25,
    -25,
    -10,
    -15,
    0,
    -20
  ],
  vperiod: [
    -80,
    -80,
    -80,
    -80,
    -70,
    -37,
    -74,
    -65
  ],
  wcomma: [
    -40,
    -40,
    -60,
    -60,
    -55,
    -37,
    -74,
    -65
  ],
  wo: [
    -20,
    -20,
    -10,
    -10,
    -10,
    -15,
    0,
    -10
  ],
  woacute: [
    -20,
    -20,
    -10,
    -10,
    -10,
    -15,
    0,
    -10
  ],
  wocircumflex: [
    -20,
    -20,
    -10,
    -10,
    -10,
    -15,
    0,
    -10
  ],
  wodieresis: [
    -20,
    -20,
    -10,
    -10,
    -10,
    -15,
    0,
    -10
  ],
  wograve: [
    -20,
    -20,
    -10,
    -10,
    -10,
    -15,
    0,
    -10
  ],
  wohungarumlaut: [
    -20,
    -20,
    -10,
    -10,
    -10,
    -15,
    0,
    -10
  ],
  womacron: [
    -20,
    -20,
    -10,
    -10,
    -10,
    -15,
    0,
    -10
  ],
  woslash: [
    -20,
    -20,
    -10,
    -10,
    -10,
    -15,
    0,
    -10
  ],
  wotilde: [
    -20,
    -20,
    -10,
    -10,
    -10,
    -15,
    0,
    -10
  ],
  wperiod: [
    -40,
    -40,
    -60,
    -60,
    -70,
    -37,
    -74,
    -65
  ],
  xe: [
    -10,
    -10,
    -30,
    -30,
    0,
    -10,
    0,
    -15
  ],
  xeacute: [
    -10,
    -10,
    -30,
    -30,
    0,
    -10,
    0,
    -15
  ],
  xecaron: [
    -10,
    -10,
    -30,
    -30,
    0,
    -10,
    0,
    -15
  ],
  xecircumflex: [
    -10,
    -10,
    -30,
    -30,
    0,
    -10,
    0,
    -15
  ],
  xedieresis: [
    -10,
    -10,
    -30,
    -30,
    0,
    -10,
    0,
    -15
  ],
  xedotaccent: [
    -10,
    -10,
    -30,
    -30,
    0,
    -10,
    0,
    -15
  ],
  xegrave: [
    -10,
    -10,
    -30,
    -30,
    0,
    -10,
    0,
    -15
  ],
  xemacron: [
    -10,
    -10,
    -30,
    -30,
    0,
    -10,
    0,
    -15
  ],
  xeogonek: [
    -10,
    -10,
    -30,
    -30,
    0,
    -10,
    0,
    -15
  ],
  ya: [
    -30,
    -30,
    -20,
    -20
  ],
  yaacute: [
    -30,
    -30,
    -20,
    -20
  ],
  yabreve: [
    -30,
    -30,
    -20,
    -20
  ],
  yacircumflex: [
    -30,
    -30,
    -20,
    -20
  ],
  yadieresis: [
    -30,
    -30,
    -20,
    -20
  ],
  yagrave: [
    -30,
    -30,
    -20,
    -20
  ],
  yamacron: [
    -30,
    -30,
    -20,
    -20
  ],
  yaogonek: [
    -30,
    -30,
    -20,
    -20
  ],
  yaring: [
    -30,
    -30,
    -20,
    -20
  ],
  yatilde: [
    -30,
    -30,
    -20,
    -20
  ],
  ycomma: [
    -80,
    -80,
    -100,
    -100,
    -55,
    -37,
    -55,
    -65
  ],
  ye: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yeacute: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yecaron: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yecircumflex: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yedieresis: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yedotaccent: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yegrave: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yemacron: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yeogonek: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yo: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yoacute: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yocircumflex: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yodieresis: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yograve: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yohungarumlaut: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yomacron: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yoslash: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yotilde: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yperiod: [
    -80,
    -80,
    -100,
    -100,
    -70,
    -37,
    -55,
    -65
  ],
  yacutea: [
    -30,
    -30,
    -20,
    -20
  ],
  yacuteaacute: [
    -30,
    -30,
    -20,
    -20
  ],
  yacuteabreve: [
    -30,
    -30,
    -20,
    -20
  ],
  yacuteacircumflex: [
    -30,
    -30,
    -20,
    -20
  ],
  yacuteadieresis: [
    -30,
    -30,
    -20,
    -20
  ],
  yacuteagrave: [
    -30,
    -30,
    -20,
    -20
  ],
  yacuteamacron: [
    -30,
    -30,
    -20,
    -20
  ],
  yacuteaogonek: [
    -30,
    -30,
    -20,
    -20
  ],
  yacutearing: [
    -30,
    -30,
    -20,
    -20
  ],
  yacuteatilde: [
    -30,
    -30,
    -20,
    -20
  ],
  yacutecomma: [
    -80,
    -80,
    -100,
    -100,
    -55,
    -37,
    -55,
    -65
  ],
  yacutee: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yacuteeacute: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yacuteecaron: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yacuteecircumflex: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yacuteedieresis: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yacuteedotaccent: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yacuteegrave: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yacuteemacron: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yacuteeogonek: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  yacuteo: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yacuteoacute: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yacuteocircumflex: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yacuteodieresis: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yacuteograve: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yacuteohungarumlaut: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yacuteomacron: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yacuteoslash: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yacuteotilde: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  yacuteperiod: [
    -80,
    -80,
    -100,
    -100,
    -70,
    -37,
    -55,
    -65
  ],
  ydieresisa: [
    -30,
    -30,
    -20,
    -20
  ],
  ydieresisaacute: [
    -30,
    -30,
    -20,
    -20
  ],
  ydieresisabreve: [
    -30,
    -30,
    -20,
    -20
  ],
  ydieresisacircumflex: [
    -30,
    -30,
    -20,
    -20
  ],
  ydieresisadieresis: [
    -30,
    -30,
    -20,
    -20
  ],
  ydieresisagrave: [
    -30,
    -30,
    -20,
    -20
  ],
  ydieresisamacron: [
    -30,
    -30,
    -20,
    -20
  ],
  ydieresisaogonek: [
    -30,
    -30,
    -20,
    -20
  ],
  ydieresisaring: [
    -30,
    -30,
    -20,
    -20
  ],
  ydieresisatilde: [
    -30,
    -30,
    -20,
    -20
  ],
  ydieresiscomma: [
    -80,
    -80,
    -100,
    -100,
    -55,
    -37,
    -55,
    -65
  ],
  ydieresise: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  ydieresiseacute: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  ydieresisecaron: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  ydieresisecircumflex: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  ydieresisedieresis: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  ydieresisedotaccent: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  ydieresisegrave: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  ydieresisemacron: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  ydieresiseogonek: [
    -10,
    -10,
    -20,
    -20,
    -10
  ],
  ydieresiso: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  ydieresisoacute: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  ydieresisocircumflex: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  ydieresisodieresis: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  ydieresisograve: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  ydieresisohungarumlaut: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  ydieresisomacron: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  ydieresisoslash: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  ydieresisotilde: [
    -25,
    -25,
    -20,
    -20,
    -25
  ],
  ydieresisperiod: [
    -80,
    -80,
    -100,
    -100,
    -70,
    -37,
    -55,
    -65
  ],
  ze: [
    10,
    10,
    -15,
    -15
  ],
  zeacute: [
    10,
    10,
    -15,
    -15
  ],
  zecaron: [
    10,
    10,
    -15,
    -15
  ],
  zecircumflex: [
    10,
    10,
    -15,
    -15
  ],
  zedieresis: [
    10,
    10,
    -15,
    -15
  ],
  zedotaccent: [
    10,
    10,
    -15,
    -15
  ],
  zegrave: [
    10,
    10,
    -15,
    -15
  ],
  zemacron: [
    10,
    10,
    -15,
    -15
  ],
  zeogonek: [
    10,
    10,
    -15,
    -15
  ],
  zacutee: [
    10,
    10,
    -15,
    -15
  ],
  zacuteeacute: [
    10,
    10,
    -15,
    -15
  ],
  zacuteecaron: [
    10,
    10,
    -15,
    -15
  ],
  zacuteecircumflex: [
    10,
    10,
    -15,
    -15
  ],
  zacuteedieresis: [
    10,
    10,
    -15,
    -15
  ],
  zacuteedotaccent: [
    10,
    10,
    -15,
    -15
  ],
  zacuteegrave: [
    10,
    10,
    -15,
    -15
  ],
  zacuteemacron: [
    10,
    10,
    -15,
    -15
  ],
  zacuteeogonek: [
    10,
    10,
    -15,
    -15
  ],
  zcarone: [
    10,
    10,
    -15,
    -15
  ],
  zcaroneacute: [
    10,
    10,
    -15,
    -15
  ],
  zcaronecaron: [
    10,
    10,
    -15,
    -15
  ],
  zcaronecircumflex: [
    10,
    10,
    -15,
    -15
  ],
  zcaronedieresis: [
    10,
    10,
    -15,
    -15
  ],
  zcaronedotaccent: [
    10,
    10,
    -15,
    -15
  ],
  zcaronegrave: [
    10,
    10,
    -15,
    -15
  ],
  zcaronemacron: [
    10,
    10,
    -15,
    -15
  ],
  zcaroneogonek: [
    10,
    10,
    -15,
    -15
  ],
  zdotaccente: [
    10,
    10,
    -15,
    -15
  ],
  zdotaccenteacute: [
    10,
    10,
    -15,
    -15
  ],
  zdotaccentecaron: [
    10,
    10,
    -15,
    -15
  ],
  zdotaccentecircumflex: [
    10,
    10,
    -15,
    -15
  ],
  zdotaccentedieresis: [
    10,
    10,
    -15,
    -15
  ],
  zdotaccentedotaccent: [
    10,
    10,
    -15,
    -15
  ],
  zdotaccentegrave: [
    10,
    10,
    -15,
    -15
  ],
  zdotaccentemacron: [
    10,
    10,
    -15,
    -15
  ],
  zdotaccenteogonek: [
    10,
    10,
    -15,
    -15
  ],
  Bcomma: [
    0,
    0,
    -20,
    -20
  ],
  Bperiod: [
    0,
    0,
    -20,
    -20
  ],
  Ccomma: [
    0,
    0,
    -30,
    -30
  ],
  Cperiod: [
    0,
    0,
    -30,
    -30
  ],
  Cacutecomma: [
    0,
    0,
    -30,
    -30
  ],
  Cacuteperiod: [
    0,
    0,
    -30,
    -30
  ],
  Ccaroncomma: [
    0,
    0,
    -30,
    -30
  ],
  Ccaronperiod: [
    0,
    0,
    -30,
    -30
  ],
  Ccedillacomma: [
    0,
    0,
    -30,
    -30
  ],
  Ccedillaperiod: [
    0,
    0,
    -30,
    -30
  ],
  Fe: [
    0,
    0,
    -30,
    -30,
    -25,
    -100,
    -75
  ],
  Feacute: [
    0,
    0,
    -30,
    -30,
    -25,
    -100,
    -75
  ],
  Fecaron: [
    0,
    0,
    -30,
    -30,
    -25,
    -100,
    -75
  ],
  Fecircumflex: [
    0,
    0,
    -30,
    -30,
    -25,
    -100,
    -75
  ],
  Fedieresis: [
    0,
    0,
    -30,
    -30,
    -25,
    -100,
    -75
  ],
  Fedotaccent: [
    0,
    0,
    -30,
    -30,
    -25,
    -100,
    -75
  ],
  Fegrave: [
    0,
    0,
    -30,
    -30,
    -25,
    -100,
    -75
  ],
  Femacron: [
    0,
    0,
    -30,
    -30,
    -25,
    -100,
    -75
  ],
  Feogonek: [
    0,
    0,
    -30,
    -30,
    -25,
    -100,
    -75
  ],
  Fo: [
    0,
    0,
    -30,
    -30,
    -25,
    -70,
    -105,
    -15
  ],
  Foacute: [
    0,
    0,
    -30,
    -30,
    -25,
    -70,
    -105,
    -15
  ],
  Focircumflex: [
    0,
    0,
    -30,
    -30,
    -25,
    -70,
    -105,
    -15
  ],
  Fodieresis: [
    0,
    0,
    -30,
    -30,
    -25,
    -70,
    -105,
    -15
  ],
  Fograve: [
    0,
    0,
    -30,
    -30,
    -25,
    -70,
    -105,
    -15
  ],
  Fohungarumlaut: [
    0,
    0,
    -30,
    -30,
    -25,
    -70,
    -105,
    -15
  ],
  Fomacron: [
    0,
    0,
    -30,
    -30,
    -25,
    -70,
    -105,
    -15
  ],
  Foslash: [
    0,
    0,
    -30,
    -30,
    -25,
    -70,
    -105,
    -15
  ],
  Fotilde: [
    0,
    0,
    -30,
    -30,
    -25,
    -70,
    -105,
    -15
  ],
  Fr: [
    0,
    0,
    -45,
    -45,
    0,
    -50,
    -55
  ],
  Fracute: [
    0,
    0,
    -45,
    -45,
    0,
    -50,
    -55
  ],
  Frcaron: [
    0,
    0,
    -45,
    -45,
    0,
    -50,
    -55
  ],
  Frcommaaccent: [
    0,
    0,
    -45,
    -45,
    0,
    -50,
    -55
  ],
  Ja: [
    0,
    0,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Jaacute: [
    0,
    0,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Jabreve: [
    0,
    0,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Jacircumflex: [
    0,
    0,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Jadieresis: [
    0,
    0,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Jagrave: [
    0,
    0,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Jamacron: [
    0,
    0,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Jaogonek: [
    0,
    0,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Jaring: [
    0,
    0,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  Jatilde: [
    0,
    0,
    -20,
    -20,
    -15,
    -40,
    -35
  ],
  LcaronT: [
    0,
    0,
    -110,
    -110
  ],
  LcaronTcaron: [
    0,
    0,
    -110,
    -110
  ],
  LcaronTcommaaccent: [
    0,
    0,
    -110,
    -110
  ],
  LcaronV: [
    0,
    0,
    -110,
    -110
  ],
  LcaronW: [
    0,
    0,
    -70,
    -70
  ],
  LcaronY: [
    0,
    0,
    -140,
    -140
  ],
  LcaronYacute: [
    0,
    0,
    -140,
    -140
  ],
  LcaronYdieresis: [
    0,
    0,
    -140,
    -140
  ],
  Lcaronquotedblright: [
    0,
    0,
    -140,
    -140
  ],
  Lcaronquoteright: [
    0,
    0,
    -160,
    -160,
    0,
    0,
    0,
    -92
  ],
  Lcarony: [
    0,
    0,
    -30,
    -30,
    0,
    0,
    0,
    -55
  ],
  Lcaronyacute: [
    0,
    0,
    -30,
    -30,
    0,
    0,
    0,
    -55
  ],
  Lcaronydieresis: [
    0,
    0,
    -30,
    -30,
    0,
    0,
    0,
    -55
  ],
  Scomma: [
    0,
    0,
    -20,
    -20
  ],
  Speriod: [
    0,
    0,
    -20,
    -20
  ],
  Sacutecomma: [
    0,
    0,
    -20,
    -20
  ],
  Sacuteperiod: [
    0,
    0,
    -20,
    -20
  ],
  Scaroncomma: [
    0,
    0,
    -20,
    -20
  ],
  Scaronperiod: [
    0,
    0,
    -20,
    -20
  ],
  Scedillacomma: [
    0,
    0,
    -20,
    -20
  ],
  Scedillaperiod: [
    0,
    0,
    -20,
    -20
  ],
  Scommaaccentcomma: [
    0,
    0,
    -20,
    -20
  ],
  Scommaaccentperiod: [
    0,
    0,
    -20,
    -20
  ],
  Trcaron: [
    0,
    0,
    -120,
    -120,
    -74,
    -37,
    -55,
    -35
  ],
  Tcaronrcaron: [
    0,
    0,
    -120,
    -120,
    -74,
    -37,
    -55,
    -35
  ],
  Tcommaaccentrcaron: [
    0,
    0,
    -120,
    -120,
    -74,
    -37,
    -55,
    -35
  ],
  Yhyphen: [
    0,
    0,
    -140,
    -140,
    -92,
    -92,
    -74,
    -111
  ],
  Yi: [
    0,
    0,
    -20,
    -20,
    -37,
    -55,
    -74,
    -55
  ],
  Yiacute: [
    0,
    0,
    -20,
    -20,
    -37,
    -55,
    -74,
    -55
  ],
  Yiogonek: [
    0,
    0,
    -20,
    -20,
    -37,
    -55,
    -74,
    -55
  ],
  Yacutehyphen: [
    0,
    0,
    -140,
    -140,
    -92,
    -92,
    -74,
    -111
  ],
  Yacutei: [
    0,
    0,
    -20,
    -20,
    -37,
    -55,
    -74,
    -55
  ],
  Yacuteiacute: [
    0,
    0,
    -20,
    -20,
    -37,
    -55,
    -74,
    -55
  ],
  Yacuteiogonek: [
    0,
    0,
    -20,
    -20,
    -37,
    -55,
    -74,
    -55
  ],
  Ydieresishyphen: [
    0,
    0,
    -140,
    -140,
    -92,
    -92,
    -74,
    -111
  ],
  Ydieresisi: [
    0,
    0,
    -20,
    -20,
    -37,
    -55,
    -74,
    -55
  ],
  Ydieresisiacute: [
    0,
    0,
    -20,
    -20,
    -37,
    -55,
    -74,
    -55
  ],
  Ydieresisiogonek: [
    0,
    0,
    -20,
    -20,
    -37,
    -55,
    -74,
    -55
  ],
  bb: [
    0,
    0,
    -10,
    -10,
    -10,
    -10
  ],
  bcomma: [
    0,
    0,
    -40,
    -40
  ],
  bperiod: [
    0,
    0,
    -40,
    -40,
    -40,
    -40,
    -40,
    -40
  ],
  ccomma: [
    0,
    0,
    -15,
    -15
  ],
  cacutecomma: [
    0,
    0,
    -15,
    -15
  ],
  ccaroncomma: [
    0,
    0,
    -15,
    -15
  ],
  ccedillacomma: [
    0,
    0,
    -15,
    -15
  ],
  fa: [
    0,
    0,
    -30,
    -30,
    0,
    0,
    0,
    -10
  ],
  faacute: [
    0,
    0,
    -30,
    -30,
    0,
    0,
    0,
    -10
  ],
  fabreve: [
    0,
    0,
    -30,
    -30,
    0,
    0,
    0,
    -10
  ],
  facircumflex: [
    0,
    0,
    -30,
    -30,
    0,
    0,
    0,
    -10
  ],
  fadieresis: [
    0,
    0,
    -30,
    -30,
    0,
    0,
    0,
    -10
  ],
  fagrave: [
    0,
    0,
    -30,
    -30,
    0,
    0,
    0,
    -10
  ],
  famacron: [
    0,
    0,
    -30,
    -30,
    0,
    0,
    0,
    -10
  ],
  faogonek: [
    0,
    0,
    -30,
    -30,
    0,
    0,
    0,
    -10
  ],
  faring: [
    0,
    0,
    -30,
    -30,
    0,
    0,
    0,
    -10
  ],
  fatilde: [
    0,
    0,
    -30,
    -30,
    0,
    0,
    0,
    -10
  ],
  fdotlessi: [
    0,
    0,
    -28,
    -28,
    -35,
    -30,
    -60,
    -50
  ],
  gr: [
    0,
    0,
    -10,
    -10
  ],
  gracute: [
    0,
    0,
    -10,
    -10
  ],
  grcaron: [
    0,
    0,
    -10,
    -10
  ],
  grcommaaccent: [
    0,
    0,
    -10,
    -10
  ],
  gbrever: [
    0,
    0,
    -10,
    -10
  ],
  gbreveracute: [
    0,
    0,
    -10,
    -10
  ],
  gbrevercaron: [
    0,
    0,
    -10,
    -10
  ],
  gbrevercommaaccent: [
    0,
    0,
    -10,
    -10
  ],
  gcommaaccentr: [
    0,
    0,
    -10,
    -10
  ],
  gcommaaccentracute: [
    0,
    0,
    -10,
    -10
  ],
  gcommaaccentrcaron: [
    0,
    0,
    -10,
    -10
  ],
  gcommaaccentrcommaaccent: [
    0,
    0,
    -10,
    -10
  ],
  ke: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  keacute: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kecaron: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kecircumflex: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kedieresis: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kedotaccent: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kegrave: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kemacron: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  keogonek: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kcommaaccente: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kcommaaccenteacute: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kcommaaccentecaron: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kcommaaccentecircumflex: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kcommaaccentedieresis: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kcommaaccentedotaccent: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kcommaaccentegrave: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kcommaaccentemacron: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  kcommaaccenteogonek: [
    0,
    0,
    -20,
    -20,
    -10,
    -30,
    -10,
    -10
  ],
  ocomma: [
    0,
    0,
    -40,
    -40
  ],
  operiod: [
    0,
    0,
    -40,
    -40
  ],
  oacutecomma: [
    0,
    0,
    -40,
    -40
  ],
  oacuteperiod: [
    0,
    0,
    -40,
    -40
  ],
  ocircumflexcomma: [
    0,
    0,
    -40,
    -40
  ],
  ocircumflexperiod: [
    0,
    0,
    -40,
    -40
  ],
  odieresiscomma: [
    0,
    0,
    -40,
    -40
  ],
  odieresisperiod: [
    0,
    0,
    -40,
    -40
  ],
  ogravecomma: [
    0,
    0,
    -40,
    -40
  ],
  ograveperiod: [
    0,
    0,
    -40,
    -40
  ],
  ohungarumlautcomma: [
    0,
    0,
    -40,
    -40
  ],
  ohungarumlautperiod: [
    0,
    0,
    -40,
    -40
  ],
  omacroncomma: [
    0,
    0,
    -40,
    -40
  ],
  omacronperiod: [
    0,
    0,
    -40,
    -40
  ],
  oslasha: [
    0,
    0,
    -55,
    -55
  ],
  oslashaacute: [
    0,
    0,
    -55,
    -55
  ],
  oslashabreve: [
    0,
    0,
    -55,
    -55
  ],
  oslashacircumflex: [
    0,
    0,
    -55,
    -55
  ],
  oslashadieresis: [
    0,
    0,
    -55,
    -55
  ],
  oslashagrave: [
    0,
    0,
    -55,
    -55
  ],
  oslashamacron: [
    0,
    0,
    -55,
    -55
  ],
  oslashaogonek: [
    0,
    0,
    -55,
    -55
  ],
  oslasharing: [
    0,
    0,
    -55,
    -55
  ],
  oslashatilde: [
    0,
    0,
    -55,
    -55
  ],
  oslashb: [
    0,
    0,
    -55,
    -55
  ],
  oslashc: [
    0,
    0,
    -55,
    -55
  ],
  oslashcacute: [
    0,
    0,
    -55,
    -55
  ],
  oslashccaron: [
    0,
    0,
    -55,
    -55
  ],
  oslashccedilla: [
    0,
    0,
    -55,
    -55
  ],
  oslashcomma: [
    0,
    0,
    -95,
    -95
  ],
  oslashd: [
    0,
    0,
    -55,
    -55
  ],
  oslashdcroat: [
    0,
    0,
    -55,
    -55
  ],
  oslashe: [
    0,
    0,
    -55,
    -55
  ],
  oslasheacute: [
    0,
    0,
    -55,
    -55
  ],
  oslashecaron: [
    0,
    0,
    -55,
    -55
  ],
  oslashecircumflex: [
    0,
    0,
    -55,
    -55
  ],
  oslashedieresis: [
    0,
    0,
    -55,
    -55
  ],
  oslashedotaccent: [
    0,
    0,
    -55,
    -55
  ],
  oslashegrave: [
    0,
    0,
    -55,
    -55
  ],
  oslashemacron: [
    0,
    0,
    -55,
    -55
  ],
  oslasheogonek: [
    0,
    0,
    -55,
    -55
  ],
  oslashf: [
    0,
    0,
    -55,
    -55
  ],
  oslashg: [
    0,
    0,
    -55,
    -55,
    0,
    0,
    -10
  ],
  oslashgbreve: [
    0,
    0,
    -55,
    -55,
    0,
    0,
    -10
  ],
  oslashgcommaaccent: [
    0,
    0,
    -55,
    -55,
    0,
    0,
    -10
  ],
  oslashh: [
    0,
    0,
    -55,
    -55
  ],
  oslashi: [
    0,
    0,
    -55,
    -55
  ],
  oslashiacute: [
    0,
    0,
    -55,
    -55
  ],
  oslashicircumflex: [
    0,
    0,
    -55,
    -55
  ],
  oslashidieresis: [
    0,
    0,
    -55,
    -55
  ],
  oslashigrave: [
    0,
    0,
    -55,
    -55
  ],
  oslashimacron: [
    0,
    0,
    -55,
    -55
  ],
  oslashiogonek: [
    0,
    0,
    -55,
    -55
  ],
  oslashj: [
    0,
    0,
    -55,
    -55
  ],
  oslashk: [
    0,
    0,
    -55,
    -55
  ],
  oslashkcommaaccent: [
    0,
    0,
    -55,
    -55
  ],
  oslashl: [
    0,
    0,
    -55,
    -55
  ],
  oslashlacute: [
    0,
    0,
    -55,
    -55
  ],
  oslashlcommaaccent: [
    0,
    0,
    -55,
    -55
  ],
  oslashlslash: [
    0,
    0,
    -55,
    -55
  ],
  oslashm: [
    0,
    0,
    -55,
    -55
  ],
  oslashn: [
    0,
    0,
    -55,
    -55
  ],
  oslashnacute: [
    0,
    0,
    -55,
    -55
  ],
  oslashncaron: [
    0,
    0,
    -55,
    -55
  ],
  oslashncommaaccent: [
    0,
    0,
    -55,
    -55
  ],
  oslashntilde: [
    0,
    0,
    -55,
    -55
  ],
  oslasho: [
    0,
    0,
    -55,
    -55
  ],
  oslashoacute: [
    0,
    0,
    -55,
    -55
  ],
  oslashocircumflex: [
    0,
    0,
    -55,
    -55
  ],
  oslashodieresis: [
    0,
    0,
    -55,
    -55
  ],
  oslashograve: [
    0,
    0,
    -55,
    -55
  ],
  oslashohungarumlaut: [
    0,
    0,
    -55,
    -55
  ],
  oslashomacron: [
    0,
    0,
    -55,
    -55
  ],
  oslashoslash: [
    0,
    0,
    -55,
    -55
  ],
  oslashotilde: [
    0,
    0,
    -55,
    -55
  ],
  oslashp: [
    0,
    0,
    -55,
    -55
  ],
  oslashperiod: [
    0,
    0,
    -95,
    -95
  ],
  oslashq: [
    0,
    0,
    -55,
    -55
  ],
  oslashr: [
    0,
    0,
    -55,
    -55
  ],
  oslashracute: [
    0,
    0,
    -55,
    -55
  ],
  oslashrcaron: [
    0,
    0,
    -55,
    -55
  ],
  oslashrcommaaccent: [
    0,
    0,
    -55,
    -55
  ],
  oslashs: [
    0,
    0,
    -55,
    -55
  ],
  oslashsacute: [
    0,
    0,
    -55,
    -55
  ],
  oslashscaron: [
    0,
    0,
    -55,
    -55
  ],
  oslashscedilla: [
    0,
    0,
    -55,
    -55
  ],
  oslashscommaaccent: [
    0,
    0,
    -55,
    -55
  ],
  oslasht: [
    0,
    0,
    -55,
    -55
  ],
  oslashtcommaaccent: [
    0,
    0,
    -55,
    -55
  ],
  oslashu: [
    0,
    0,
    -55,
    -55
  ],
  oslashuacute: [
    0,
    0,
    -55,
    -55
  ],
  oslashucircumflex: [
    0,
    0,
    -55,
    -55
  ],
  oslashudieresis: [
    0,
    0,
    -55,
    -55
  ],
  oslashugrave: [
    0,
    0,
    -55,
    -55
  ],
  oslashuhungarumlaut: [
    0,
    0,
    -55,
    -55
  ],
  oslashumacron: [
    0,
    0,
    -55,
    -55
  ],
  oslashuogonek: [
    0,
    0,
    -55,
    -55
  ],
  oslashuring: [
    0,
    0,
    -55,
    -55
  ],
  oslashz: [
    0,
    0,
    -55,
    -55
  ],
  oslashzacute: [
    0,
    0,
    -55,
    -55
  ],
  oslashzcaron: [
    0,
    0,
    -55,
    -55
  ],
  oslashzdotaccent: [
    0,
    0,
    -55,
    -55
  ],
  otildecomma: [
    0,
    0,
    -40,
    -40
  ],
  otildeperiod: [
    0,
    0,
    -40,
    -40
  ],
  pcomma: [
    0,
    0,
    -35,
    -35
  ],
  pperiod: [
    0,
    0,
    -35,
    -35
  ],
  ra: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  raacute: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rabreve: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  racircumflex: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  radieresis: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  ragrave: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  ramacron: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  raogonek: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  raring: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  ratilde: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcolon: [
    0,
    0,
    30,
    30
  ],
  ri: [
    0,
    0,
    15,
    15
  ],
  riacute: [
    0,
    0,
    15,
    15
  ],
  ricircumflex: [
    0,
    0,
    15,
    15
  ],
  ridieresis: [
    0,
    0,
    15,
    15
  ],
  rigrave: [
    0,
    0,
    15,
    15
  ],
  rimacron: [
    0,
    0,
    15,
    15
  ],
  riogonek: [
    0,
    0,
    15,
    15
  ],
  rk: [
    0,
    0,
    15,
    15
  ],
  rkcommaaccent: [
    0,
    0,
    15,
    15
  ],
  rl: [
    0,
    0,
    15,
    15
  ],
  rlacute: [
    0,
    0,
    15,
    15
  ],
  rlcommaaccent: [
    0,
    0,
    15,
    15
  ],
  rlslash: [
    0,
    0,
    15,
    15
  ],
  rm: [
    0,
    0,
    25,
    25
  ],
  rn: [
    0,
    0,
    25,
    25,
    -15
  ],
  rnacute: [
    0,
    0,
    25,
    25,
    -15
  ],
  rncaron: [
    0,
    0,
    25,
    25,
    -15
  ],
  rncommaaccent: [
    0,
    0,
    25,
    25,
    -15
  ],
  rntilde: [
    0,
    0,
    25,
    25,
    -15
  ],
  rp: [
    0,
    0,
    30,
    30,
    -10
  ],
  rsemicolon: [
    0,
    0,
    30,
    30
  ],
  ru: [
    0,
    0,
    15,
    15
  ],
  ruacute: [
    0,
    0,
    15,
    15
  ],
  rucircumflex: [
    0,
    0,
    15,
    15
  ],
  rudieresis: [
    0,
    0,
    15,
    15
  ],
  rugrave: [
    0,
    0,
    15,
    15
  ],
  ruhungarumlaut: [
    0,
    0,
    15,
    15
  ],
  rumacron: [
    0,
    0,
    15,
    15
  ],
  ruogonek: [
    0,
    0,
    15,
    15
  ],
  ruring: [
    0,
    0,
    15,
    15
  ],
  racutea: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  racuteaacute: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  racuteabreve: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  racuteacircumflex: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  racuteadieresis: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  racuteagrave: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  racuteamacron: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  racuteaogonek: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  racutearing: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  racuteatilde: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  racutecolon: [
    0,
    0,
    30,
    30
  ],
  racutei: [
    0,
    0,
    15,
    15
  ],
  racuteiacute: [
    0,
    0,
    15,
    15
  ],
  racuteicircumflex: [
    0,
    0,
    15,
    15
  ],
  racuteidieresis: [
    0,
    0,
    15,
    15
  ],
  racuteigrave: [
    0,
    0,
    15,
    15
  ],
  racuteimacron: [
    0,
    0,
    15,
    15
  ],
  racuteiogonek: [
    0,
    0,
    15,
    15
  ],
  racutek: [
    0,
    0,
    15,
    15
  ],
  racutekcommaaccent: [
    0,
    0,
    15,
    15
  ],
  racutel: [
    0,
    0,
    15,
    15
  ],
  racutelacute: [
    0,
    0,
    15,
    15
  ],
  racutelcommaaccent: [
    0,
    0,
    15,
    15
  ],
  racutelslash: [
    0,
    0,
    15,
    15
  ],
  racutem: [
    0,
    0,
    25,
    25
  ],
  racuten: [
    0,
    0,
    25,
    25,
    -15
  ],
  racutenacute: [
    0,
    0,
    25,
    25,
    -15
  ],
  racutencaron: [
    0,
    0,
    25,
    25,
    -15
  ],
  racutencommaaccent: [
    0,
    0,
    25,
    25,
    -15
  ],
  racutentilde: [
    0,
    0,
    25,
    25,
    -15
  ],
  racutep: [
    0,
    0,
    30,
    30,
    -10
  ],
  racutesemicolon: [
    0,
    0,
    30,
    30
  ],
  racuteu: [
    0,
    0,
    15,
    15
  ],
  racuteuacute: [
    0,
    0,
    15,
    15
  ],
  racuteucircumflex: [
    0,
    0,
    15,
    15
  ],
  racuteudieresis: [
    0,
    0,
    15,
    15
  ],
  racuteugrave: [
    0,
    0,
    15,
    15
  ],
  racuteuhungarumlaut: [
    0,
    0,
    15,
    15
  ],
  racuteumacron: [
    0,
    0,
    15,
    15
  ],
  racuteuogonek: [
    0,
    0,
    15,
    15
  ],
  racuteuring: [
    0,
    0,
    15,
    15
  ],
  rcarona: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcaronaacute: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcaronabreve: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcaronacircumflex: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcaronadieresis: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcaronagrave: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcaronamacron: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcaronaogonek: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcaronaring: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcaronatilde: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcaroncolon: [
    0,
    0,
    30,
    30
  ],
  rcaroni: [
    0,
    0,
    15,
    15
  ],
  rcaroniacute: [
    0,
    0,
    15,
    15
  ],
  rcaronicircumflex: [
    0,
    0,
    15,
    15
  ],
  rcaronidieresis: [
    0,
    0,
    15,
    15
  ],
  rcaronigrave: [
    0,
    0,
    15,
    15
  ],
  rcaronimacron: [
    0,
    0,
    15,
    15
  ],
  rcaroniogonek: [
    0,
    0,
    15,
    15
  ],
  rcaronk: [
    0,
    0,
    15,
    15
  ],
  rcaronkcommaaccent: [
    0,
    0,
    15,
    15
  ],
  rcaronl: [
    0,
    0,
    15,
    15
  ],
  rcaronlacute: [
    0,
    0,
    15,
    15
  ],
  rcaronlcommaaccent: [
    0,
    0,
    15,
    15
  ],
  rcaronlslash: [
    0,
    0,
    15,
    15
  ],
  rcaronm: [
    0,
    0,
    25,
    25
  ],
  rcaronn: [
    0,
    0,
    25,
    25,
    -15
  ],
  rcaronnacute: [
    0,
    0,
    25,
    25,
    -15
  ],
  rcaronncaron: [
    0,
    0,
    25,
    25,
    -15
  ],
  rcaronncommaaccent: [
    0,
    0,
    25,
    25,
    -15
  ],
  rcaronntilde: [
    0,
    0,
    25,
    25,
    -15
  ],
  rcaronp: [
    0,
    0,
    30,
    30,
    -10
  ],
  rcaronsemicolon: [
    0,
    0,
    30,
    30
  ],
  rcaronu: [
    0,
    0,
    15,
    15
  ],
  rcaronuacute: [
    0,
    0,
    15,
    15
  ],
  rcaronucircumflex: [
    0,
    0,
    15,
    15
  ],
  rcaronudieresis: [
    0,
    0,
    15,
    15
  ],
  rcaronugrave: [
    0,
    0,
    15,
    15
  ],
  rcaronuhungarumlaut: [
    0,
    0,
    15,
    15
  ],
  rcaronumacron: [
    0,
    0,
    15,
    15
  ],
  rcaronuogonek: [
    0,
    0,
    15,
    15
  ],
  rcaronuring: [
    0,
    0,
    15,
    15
  ],
  rcommaaccenta: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcommaaccentaacute: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcommaaccentabreve: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcommaaccentacircumflex: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcommaaccentadieresis: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcommaaccentagrave: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcommaaccentamacron: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcommaaccentaogonek: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcommaaccentaring: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcommaaccentatilde: [
    0,
    0,
    -10,
    -10,
    0,
    0,
    -15
  ],
  rcommaaccentcolon: [
    0,
    0,
    30,
    30
  ],
  rcommaaccenti: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentiacute: [
    0,
    0,
    15,
    15
  ],
  rcommaaccenticircumflex: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentidieresis: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentigrave: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentimacron: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentiogonek: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentk: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentkcommaaccent: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentl: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentlacute: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentlcommaaccent: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentlslash: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentm: [
    0,
    0,
    25,
    25
  ],
  rcommaaccentn: [
    0,
    0,
    25,
    25,
    -15
  ],
  rcommaaccentnacute: [
    0,
    0,
    25,
    25,
    -15
  ],
  rcommaaccentncaron: [
    0,
    0,
    25,
    25,
    -15
  ],
  rcommaaccentncommaaccent: [
    0,
    0,
    25,
    25,
    -15
  ],
  rcommaaccentntilde: [
    0,
    0,
    25,
    25,
    -15
  ],
  rcommaaccentp: [
    0,
    0,
    30,
    30,
    -10
  ],
  rcommaaccentsemicolon: [
    0,
    0,
    30,
    30
  ],
  rcommaaccentu: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentuacute: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentucircumflex: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentudieresis: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentugrave: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentuhungarumlaut: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentumacron: [
    0,
    0,
    15,
    15
  ],
  rcommaaccentuogonek: [
    0,
    0,
    15,
    15
  ],
  rcommaaccenturing: [
    0,
    0,
    15,
    15
  ],
  scomma: [
    0,
    0,
    -15,
    -15
  ],
  speriod: [
    0,
    0,
    -15,
    -15
  ],
  sacutecomma: [
    0,
    0,
    -15,
    -15
  ],
  sacuteperiod: [
    0,
    0,
    -15,
    -15
  ],
  scaroncomma: [
    0,
    0,
    -15,
    -15
  ],
  scaronperiod: [
    0,
    0,
    -15,
    -15
  ],
  scedillacomma: [
    0,
    0,
    -15,
    -15
  ],
  scedillaperiod: [
    0,
    0,
    -15,
    -15
  ],
  scommaaccentcomma: [
    0,
    0,
    -15,
    -15
  ],
  scommaaccentperiod: [
    0,
    0,
    -15,
    -15
  ],
  ve: [
    0,
    0,
    -25,
    -25,
    -10,
    -15,
    0,
    -15
  ],
  veacute: [
    0,
    0,
    -25,
    -25,
    -10,
    -15,
    0,
    -15
  ],
  vecaron: [
    0,
    0,
    -25,
    -25,
    -10,
    -15,
    0,
    -15
  ],
  vecircumflex: [
    0,
    0,
    -25,
    -25,
    -10,
    -15,
    0,
    -15
  ],
  vedieresis: [
    0,
    0,
    -25,
    -25,
    -10,
    -15,
    0,
    -15
  ],
  vedotaccent: [
    0,
    0,
    -25,
    -25,
    -10,
    -15,
    0,
    -15
  ],
  vegrave: [
    0,
    0,
    -25,
    -25,
    -10,
    -15,
    0,
    -15
  ],
  vemacron: [
    0,
    0,
    -25,
    -25,
    -10,
    -15,
    0,
    -15
  ],
  veogonek: [
    0,
    0,
    -25,
    -25,
    -10,
    -15,
    0,
    -15
  ],
  wa: [
    0,
    0,
    -15,
    -15,
    0,
    -10,
    0,
    -10
  ],
  waacute: [
    0,
    0,
    -15,
    -15,
    0,
    -10,
    0,
    -10
  ],
  wabreve: [
    0,
    0,
    -15,
    -15,
    0,
    -10,
    0,
    -10
  ],
  wacircumflex: [
    0,
    0,
    -15,
    -15,
    0,
    -10,
    0,
    -10
  ],
  wadieresis: [
    0,
    0,
    -15,
    -15,
    0,
    -10,
    0,
    -10
  ],
  wagrave: [
    0,
    0,
    -15,
    -15,
    0,
    -10,
    0,
    -10
  ],
  wamacron: [
    0,
    0,
    -15,
    -15,
    0,
    -10,
    0,
    -10
  ],
  waogonek: [
    0,
    0,
    -15,
    -15,
    0,
    -10,
    0,
    -10
  ],
  waring: [
    0,
    0,
    -15,
    -15,
    0,
    -10,
    0,
    -10
  ],
  watilde: [
    0,
    0,
    -15,
    -15,
    0,
    -10,
    0,
    -10
  ],
  we: [
    0,
    0,
    -10,
    -10,
    0,
    -10
  ],
  weacute: [
    0,
    0,
    -10,
    -10,
    0,
    -10
  ],
  wecaron: [
    0,
    0,
    -10,
    -10,
    0,
    -10
  ],
  wecircumflex: [
    0,
    0,
    -10,
    -10,
    0,
    -10
  ],
  wedieresis: [
    0,
    0,
    -10,
    -10,
    0,
    -10
  ],
  wedotaccent: [
    0,
    0,
    -10,
    -10,
    0,
    -10
  ],
  wegrave: [
    0,
    0,
    -10,
    -10,
    0,
    -10
  ],
  wemacron: [
    0,
    0,
    -10,
    -10,
    0,
    -10
  ],
  weogonek: [
    0,
    0,
    -10,
    -10,
    0,
    -10
  ],
  zo: [
    0,
    0,
    -15,
    -15
  ],
  zoacute: [
    0,
    0,
    -15,
    -15
  ],
  zocircumflex: [
    0,
    0,
    -15,
    -15
  ],
  zodieresis: [
    0,
    0,
    -15,
    -15
  ],
  zograve: [
    0,
    0,
    -15,
    -15
  ],
  zohungarumlaut: [
    0,
    0,
    -15,
    -15
  ],
  zomacron: [
    0,
    0,
    -15,
    -15
  ],
  zoslash: [
    0,
    0,
    -15,
    -15
  ],
  zotilde: [
    0,
    0,
    -15,
    -15
  ],
  zacuteo: [
    0,
    0,
    -15,
    -15
  ],
  zacuteoacute: [
    0,
    0,
    -15,
    -15
  ],
  zacuteocircumflex: [
    0,
    0,
    -15,
    -15
  ],
  zacuteodieresis: [
    0,
    0,
    -15,
    -15
  ],
  zacuteograve: [
    0,
    0,
    -15,
    -15
  ],
  zacuteohungarumlaut: [
    0,
    0,
    -15,
    -15
  ],
  zacuteomacron: [
    0,
    0,
    -15,
    -15
  ],
  zacuteoslash: [
    0,
    0,
    -15,
    -15
  ],
  zacuteotilde: [
    0,
    0,
    -15,
    -15
  ],
  zcarono: [
    0,
    0,
    -15,
    -15
  ],
  zcaronoacute: [
    0,
    0,
    -15,
    -15
  ],
  zcaronocircumflex: [
    0,
    0,
    -15,
    -15
  ],
  zcaronodieresis: [
    0,
    0,
    -15,
    -15
  ],
  zcaronograve: [
    0,
    0,
    -15,
    -15
  ],
  zcaronohungarumlaut: [
    0,
    0,
    -15,
    -15
  ],
  zcaronomacron: [
    0,
    0,
    -15,
    -15
  ],
  zcaronoslash: [
    0,
    0,
    -15,
    -15
  ],
  zcaronotilde: [
    0,
    0,
    -15,
    -15
  ],
  zdotaccento: [
    0,
    0,
    -15,
    -15
  ],
  zdotaccentoacute: [
    0,
    0,
    -15,
    -15
  ],
  zdotaccentocircumflex: [
    0,
    0,
    -15,
    -15
  ],
  zdotaccentodieresis: [
    0,
    0,
    -15,
    -15
  ],
  zdotaccentograve: [
    0,
    0,
    -15,
    -15
  ],
  zdotaccentohungarumlaut: [
    0,
    0,
    -15,
    -15
  ],
  zdotaccentomacron: [
    0,
    0,
    -15,
    -15
  ],
  zdotaccentoslash: [
    0,
    0,
    -15,
    -15
  ],
  zdotaccentotilde: [
    0,
    0,
    -15,
    -15
  ],
  Ap: [
    0,
    0,
    0,
    0,
    -25
  ],
  Aquoteright: [
    0,
    0,
    0,
    0,
    -74,
    -74,
    -37,
    -111
  ],
  Aacutep: [
    0,
    0,
    0,
    0,
    -25
  ],
  Aacutequoteright: [
    0,
    0,
    0,
    0,
    -74,
    -74,
    -37,
    -111
  ],
  Abrevep: [
    0,
    0,
    0,
    0,
    -25
  ],
  Abrevequoteright: [
    0,
    0,
    0,
    0,
    -74,
    -74,
    -37,
    -111
  ],
  Acircumflexp: [
    0,
    0,
    0,
    0,
    -25
  ],
  Acircumflexquoteright: [
    0,
    0,
    0,
    0,
    -74,
    -74,
    -37,
    -111
  ],
  Adieresisp: [
    0,
    0,
    0,
    0,
    -25
  ],
  Adieresisquoteright: [
    0,
    0,
    0,
    0,
    -74,
    -74,
    -37,
    -111
  ],
  Agravep: [
    0,
    0,
    0,
    0,
    -25
  ],
  Agravequoteright: [
    0,
    0,
    0,
    0,
    -74,
    -74,
    -37,
    -111
  ],
  Amacronp: [
    0,
    0,
    0,
    0,
    -25
  ],
  Amacronquoteright: [
    0,
    0,
    0,
    0,
    -74,
    -74,
    -37,
    -111
  ],
  Aogonekp: [
    0,
    0,
    0,
    0,
    -25
  ],
  Aogonekquoteright: [
    0,
    0,
    0,
    0,
    -74,
    -74,
    -37,
    -111
  ],
  Aringp: [
    0,
    0,
    0,
    0,
    -25
  ],
  Aringquoteright: [
    0,
    0,
    0,
    0,
    -74,
    -74,
    -37,
    -111
  ],
  Atildep: [
    0,
    0,
    0,
    0,
    -25
  ],
  Atildequoteright: [
    0,
    0,
    0,
    0,
    -74,
    -74,
    -37,
    -111
  ],
  Je: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jeacute: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jecaron: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jecircumflex: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jedieresis: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jedotaccent: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jegrave: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jemacron: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jeogonek: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jo: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Joacute: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jocircumflex: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jodieresis: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jograve: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Johungarumlaut: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jomacron: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Joslash: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  Jotilde: [
    0,
    0,
    0,
    0,
    -15,
    -40,
    -25
  ],
  NA: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NAacute: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NAbreve: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NAcircumflex: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NAdieresis: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NAgrave: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NAmacron: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NAogonek: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NAring: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NAtilde: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NacuteA: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NacuteAacute: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NacuteAbreve: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NacuteAcircumflex: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NacuteAdieresis: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NacuteAgrave: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NacuteAmacron: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NacuteAogonek: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NacuteAring: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NacuteAtilde: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcaronA: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcaronAacute: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcaronAbreve: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcaronAcircumflex: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcaronAdieresis: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcaronAgrave: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcaronAmacron: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcaronAogonek: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcaronAring: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcaronAtilde: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcommaaccentA: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcommaaccentAacute: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcommaaccentAbreve: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcommaaccentAcircumflex: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcommaaccentAdieresis: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcommaaccentAgrave: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcommaaccentAmacron: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcommaaccentAogonek: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcommaaccentAring: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NcommaaccentAtilde: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NtildeA: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NtildeAacute: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NtildeAbreve: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NtildeAcircumflex: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NtildeAdieresis: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NtildeAgrave: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NtildeAmacron: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NtildeAogonek: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NtildeAring: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  NtildeAtilde: [
    0,
    0,
    0,
    0,
    -20,
    -30,
    -27,
    -35
  ],
  Ti: [
    0,
    0,
    0,
    0,
    -18,
    -37,
    -55,
    -35
  ],
  Tiacute: [
    0,
    0,
    0,
    0,
    -18,
    -37,
    -55,
    -35
  ],
  Tiogonek: [
    0,
    0,
    0,
    0,
    -18,
    -37,
    -55,
    -35
  ],
  Tcaroni: [
    0,
    0,
    0,
    0,
    -18,
    -37,
    -55,
    -35
  ],
  Tcaroniacute: [
    0,
    0,
    0,
    0,
    -18,
    -37,
    -55,
    -35
  ],
  Tcaroniogonek: [
    0,
    0,
    0,
    0,
    -18,
    -37,
    -55,
    -35
  ],
  Tcommaaccenti: [
    0,
    0,
    0,
    0,
    -18,
    -37,
    -55,
    -35
  ],
  Tcommaaccentiacute: [
    0,
    0,
    0,
    0,
    -18,
    -37,
    -55,
    -35
  ],
  Tcommaaccentiogonek: [
    0,
    0,
    0,
    0,
    -18,
    -37,
    -55,
    -35
  ],
  Vi: [
    0,
    0,
    0,
    0,
    -37,
    -55,
    -74,
    -60
  ],
  Viacute: [
    0,
    0,
    0,
    0,
    -37,
    -55,
    -74,
    -60
  ],
  Vicircumflex: [
    0,
    0,
    0,
    0,
    -37,
    0,
    -34,
    -20
  ],
  Vidieresis: [
    0,
    0,
    0,
    0,
    -37,
    0,
    -34,
    -20
  ],
  Vigrave: [
    0,
    0,
    0,
    0,
    -37,
    0,
    -34,
    -20
  ],
  Vimacron: [
    0,
    0,
    0,
    0,
    -37,
    0,
    -34,
    -20
  ],
  Viogonek: [
    0,
    0,
    0,
    0,
    -37,
    -55,
    -74,
    -60
  ],
  Wi: [
    0,
    0,
    0,
    0,
    -18,
    -37,
    -55,
    -40
  ],
  Wiacute: [
    0,
    0,
    0,
    0,
    -18,
    -37,
    -55,
    -40
  ],
  Wiogonek: [
    0,
    0,
    0,
    0,
    -18,
    -37,
    -55,
    -40
  ],
  fi: [
    0,
    0,
    0,
    0,
    -25,
    0,
    -20,
    -20
  ],
  gperiod: [
    0,
    0,
    0,
    0,
    -15,
    0,
    -15
  ],
  gbreveperiod: [
    0,
    0,
    0,
    0,
    -15,
    0,
    -15
  ],
  gcommaaccentperiod: [
    0,
    0,
    0,
    0,
    -15,
    0,
    -15
  ],
  iv: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -25
  ],
  iacutev: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -25
  ],
  icircumflexv: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -25
  ],
  idieresisv: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -25
  ],
  igravev: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -25
  ],
  imacronv: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -25
  ],
  iogonekv: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -25
  ],
  ky: [
    0,
    0,
    0,
    0,
    -15,
    0,
    -10,
    -15
  ],
  kyacute: [
    0,
    0,
    0,
    0,
    -15,
    0,
    -10,
    -15
  ],
  kydieresis: [
    0,
    0,
    0,
    0,
    -15,
    0,
    -10,
    -15
  ],
  kcommaaccenty: [
    0,
    0,
    0,
    0,
    -15,
    0,
    -10,
    -15
  ],
  kcommaaccentyacute: [
    0,
    0,
    0,
    0,
    -15,
    0,
    -10,
    -15
  ],
  kcommaaccentydieresis: [
    0,
    0,
    0,
    0,
    -15,
    0,
    -10,
    -15
  ],
  quotedblleftA: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quotedblleftAacute: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quotedblleftAbreve: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quotedblleftAcircumflex: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quotedblleftAdieresis: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quotedblleftAgrave: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quotedblleftAmacron: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quotedblleftAogonek: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quotedblleftAring: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quotedblleftAtilde: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quoteleftA: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quoteleftAacute: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quoteleftAbreve: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quoteleftAcircumflex: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quoteleftAdieresis: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quoteleftAgrave: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quoteleftAmacron: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quoteleftAogonek: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quoteleftAring: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  quoteleftAtilde: [
    0,
    0,
    0,
    0,
    -10,
    0,
    0,
    -80
  ],
  re: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  reacute: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  recaron: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  recircumflex: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  redieresis: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  redotaccent: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  regrave: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  remacron: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  reogonek: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  racutee: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  racuteeacute: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  racuteecaron: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  racuteecircumflex: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  racuteedieresis: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  racuteedotaccent: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  racuteegrave: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  racuteemacron: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  racuteeogonek: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcarone: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcaroneacute: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcaronecaron: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcaronecircumflex: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcaronedieresis: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcaronedotaccent: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcaronegrave: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcaronemacron: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcaroneogonek: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccente: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccenteacute: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccentecaron: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccentecircumflex: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccentedieresis: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccentedotaccent: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccentegrave: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccentemacron: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  rcommaaccenteogonek: [
    0,
    0,
    0,
    0,
    -18,
    0,
    -37
  ],
  spaceA: [
    0,
    0,
    0,
    0,
    -55,
    -37,
    -18,
    -55
  ],
  spaceAacute: [
    0,
    0,
    0,
    0,
    -55,
    -37,
    -18,
    -55
  ],
  spaceAbreve: [
    0,
    0,
    0,
    0,
    -55,
    -37,
    -18,
    -55
  ],
  spaceAcircumflex: [
    0,
    0,
    0,
    0,
    -55,
    -37,
    -18,
    -55
  ],
  spaceAdieresis: [
    0,
    0,
    0,
    0,
    -55,
    -37,
    -18,
    -55
  ],
  spaceAgrave: [
    0,
    0,
    0,
    0,
    -55,
    -37,
    -18,
    -55
  ],
  spaceAmacron: [
    0,
    0,
    0,
    0,
    -55,
    -37,
    -18,
    -55
  ],
  spaceAogonek: [
    0,
    0,
    0,
    0,
    -55,
    -37,
    -18,
    -55
  ],
  spaceAring: [
    0,
    0,
    0,
    0,
    -55,
    -37,
    -18,
    -55
  ],
  spaceAtilde: [
    0,
    0,
    0,
    0,
    -55,
    -37,
    -18,
    -55
  ],
  Fi: [
    0,
    0,
    0,
    0,
    0,
    -40,
    -45
  ],
  Fiacute: [
    0,
    0,
    0,
    0,
    0,
    -40,
    -45
  ],
  Ficircumflex: [
    0,
    0,
    0,
    0,
    0,
    -40,
    -45
  ],
  Fidieresis: [
    0,
    0,
    0,
    0,
    0,
    -40,
    -45
  ],
  Figrave: [
    0,
    0,
    0,
    0,
    0,
    -40,
    -45
  ],
  Fimacron: [
    0,
    0,
    0,
    0,
    0,
    -40,
    -45
  ],
  Fiogonek: [
    0,
    0,
    0,
    0,
    0,
    -40,
    -45
  ],
  eb: [
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  eacuteb: [
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ecaronb: [
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ecircumflexb: [
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  edieresisb: [
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  edotaccentb: [
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  egraveb: [
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  emacronb: [
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  eogonekb: [
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ff: [
    0,
    0,
    0,
    0,
    0,
    -18,
    -18,
    -25
  ],
  quoterightt: [
    0,
    0,
    0,
    0,
    0,
    -37,
    -30,
    -18
  ],
  quoterighttcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    -37,
    -30,
    -18
  ],
  Yicircumflex: [
    0,
    0,
    0,
    0,
    0,
    0,
    -34
  ],
  Yidieresis: [
    0,
    0,
    0,
    0,
    0,
    0,
    -34
  ],
  Yigrave: [
    0,
    0,
    0,
    0,
    0,
    0,
    -34
  ],
  Yimacron: [
    0,
    0,
    0,
    0,
    0,
    0,
    -34
  ],
  Yacuteicircumflex: [
    0,
    0,
    0,
    0,
    0,
    0,
    -34
  ],
  Yacuteidieresis: [
    0,
    0,
    0,
    0,
    0,
    0,
    -34
  ],
  Yacuteigrave: [
    0,
    0,
    0,
    0,
    0,
    0,
    -34
  ],
  Yacuteimacron: [
    0,
    0,
    0,
    0,
    0,
    0,
    -34
  ],
  Ydieresisicircumflex: [
    0,
    0,
    0,
    0,
    0,
    0,
    -34
  ],
  Ydieresisidieresis: [
    0,
    0,
    0,
    0,
    0,
    0,
    -34
  ],
  Ydieresisigrave: [
    0,
    0,
    0,
    0,
    0,
    0,
    -34
  ],
  Ydieresisimacron: [
    0,
    0,
    0,
    0,
    0,
    0,
    -34
  ],
  eg: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  egbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  egcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  eacuteg: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  eacutegbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  eacutegcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  ecarong: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  ecarongbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  ecarongcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  ecircumflexg: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  ecircumflexgbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  ecircumflexgcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  edieresisg: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  edieresisgbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  edieresisgcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  edotaccentg: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  edotaccentgbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  edotaccentgcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  egraveg: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  egravegbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  egravegcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  emacrong: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  emacrongbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  emacrongcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  eogonekg: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  eogonekgbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  eogonekgcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -40,
    -15
  ],
  fiogonek: [
    0,
    0,
    0,
    0,
    0,
    0,
    -20
  ],
  gcomma: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  gbrevecomma: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  gcommaaccentcomma: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  og: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ogbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ogcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  oacuteg: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  oacutegbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  oacutegcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ocircumflexg: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ocircumflexgbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ocircumflexgcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  odieresisg: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  odieresisgbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  odieresisgcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ograveg: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ogravegbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ogravegcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ohungarumlautg: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ohungarumlautgbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  ohungarumlautgcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  omacrong: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  omacrongbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  omacrongcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  otildeg: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  otildegbreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  otildegcommaaccent: [
    0,
    0,
    0,
    0,
    0,
    0,
    -10
  ],
  fiacute: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -20
  ],
  ga: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gaacute: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gabreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gacircumflex: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gadieresis: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gagrave: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gamacron: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gaogonek: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  garing: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gatilde: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gbrevea: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gbreveaacute: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gbreveabreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gbreveacircumflex: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gbreveadieresis: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gbreveagrave: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gbreveamacron: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gbreveaogonek: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gbrevearing: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gbreveatilde: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gcommaaccenta: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gcommaaccentaacute: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gcommaaccentabreve: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gcommaaccentacircumflex: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gcommaaccentadieresis: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gcommaaccentagrave: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gcommaaccentamacron: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gcommaaccentaogonek: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gcommaaccentaring: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ],
  gcommaaccentatilde: [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -5
  ]
};
var data = {
  attributes,
  glyphWidths,
  kernPairs
};
var initFont = (font) => {
  return [font.FontName, {
    attributes: font,
    glyphWidths: {},
    kernPairs: {}
  }];
};
var expandData = (data2) => {
  const {
    attributes: attributes2,
    glyphWidths: glyphWidths2,
    kernPairs: kernPairs2
  } = data2;
  const fonts = attributes2.map(initFont);
  Object.keys(glyphWidths2).forEach((key) => {
    glyphWidths2[key].forEach((value2, index2) => {
      if (value2) fonts[index2][1].glyphWidths[key] = value2;
    });
  });
  Object.keys(kernPairs2).forEach((key) => {
    kernPairs2[key].forEach((value2, index2) => {
      if (value2) fonts[index2][1].kernPairs[key] = value2;
    });
  });
  return Object.fromEntries(fonts);
};
var STANDARD_FONTS = expandData(data);
var createStandardFont = (PDFFont2) => class StandardFont extends PDFFont2 {
  constructor(document2, name, id) {
    super();
    this.document = document2;
    this.name = name;
    this.id = id;
    this.font = AFMFont.fromJson(STANDARD_FONTS[this.name]);
    this.ascender = this.font.ascender;
    this.descender = this.font.descender;
    this.bbox = this.font.bbox;
    this.lineGap = this.font.lineGap;
  }
  embed() {
    this.dictionary.data = {
      Type: "Font",
      BaseFont: this.name,
      Subtype: "Type1",
      Encoding: "WinAnsiEncoding"
    };
    return this.dictionary.end();
  }
  encode(text) {
    const encoded = this.font.encodeText(text);
    const glyphs = this.font.glyphsForString(`${text}`);
    const advances = this.font.advancesForGlyphs(glyphs);
    const positions = [];
    for (let i5 = 0; i5 < glyphs.length; i5++) {
      const glyph = glyphs[i5];
      positions.push({
        xAdvance: advances[i5],
        yAdvance: 0,
        xOffset: 0,
        yOffset: 0,
        advanceWidth: this.font.widthOfGlyph(glyph)
      });
    }
    return [encoded, positions];
  }
  encodeGlyphs(glyphs) {
    const res = [];
    for (let glyph of Array.from(glyphs)) {
      res.push(`00${glyph.id.toString(16)}`.slice(-2));
    }
    return res;
  }
  widthOfString(string, size) {
    const glyphs = this.font.glyphsForString(`${string}`);
    const advances = this.font.advancesForGlyphs(glyphs);
    let width = 0;
    for (let advance of Array.from(advances)) {
      width += advance;
    }
    const scale2 = size / 1e3;
    return width * scale2;
  }
  static isStandardFont(name) {
    return name in STANDARD_FONTS;
  }
};
var toHex = function() {
  for (var _len = arguments.length, codePoints = new Array(_len), _key = 0; _key < _len; _key++) {
    codePoints[_key] = arguments[_key];
  }
  const codes = Array.from(codePoints).map((code) => `0000${code.toString(16)}`.slice(-4));
  return codes.join("");
};
var createEmbeddedFont = (PDFFont2) => class EmbeddedFont extends PDFFont2 {
  constructor(document2, font, id) {
    super();
    this.document = document2;
    this.font = font;
    this.id = id;
    this.subset = this.font.createSubset();
    this.unicode = [[0]];
    this.widths = [this.font.getGlyph(0).advanceWidth];
    this.name = this.font.postscriptName;
    this.scale = 1e3 / this.font.unitsPerEm;
    this.ascender = this.font.ascent * this.scale;
    this.descender = this.font.descent * this.scale;
    this.xHeight = this.font.xHeight * this.scale;
    this.capHeight = this.font.capHeight * this.scale;
    this.lineGap = this.font.lineGap * this.scale;
    this.bbox = this.font.bbox;
    this.layoutCache = /* @__PURE__ */ Object.create(null);
  }
  layoutRun(text, features) {
    const run = this.font.layout(text, features, void 0, void 0, "ltr");
    for (let i5 = 0; i5 < run.positions.length; i5++) {
      const position = run.positions[i5];
      for (let key in position) {
        position[key] *= this.scale;
      }
      position.advanceWidth = run.glyphs[i5].advanceWidth * this.scale;
    }
    return run;
  }
  layoutCached(text) {
    let cached;
    if (cached = this.layoutCache[text]) {
      return cached;
    }
    const run = this.layoutRun(text);
    this.layoutCache[text] = run;
    return run;
  }
  layout(text, features, onlyWidth) {
    if (onlyWidth == null) {
      onlyWidth = false;
    }
    if (features) {
      return this.layoutRun(text, features);
    }
    const glyphs = onlyWidth ? null : [];
    const positions = onlyWidth ? null : [];
    let advanceWidth2 = 0;
    let last2 = 0;
    let index2 = 0;
    while (index2 <= text.length) {
      let needle;
      if (index2 === text.length && last2 < index2 || (needle = text.charAt(index2), [" ", "	"].includes(needle))) {
        const run = this.layoutCached(text.slice(last2, ++index2));
        if (!onlyWidth) {
          glyphs.push(...Array.from(run.glyphs || []));
          positions.push(...Array.from(run.positions || []));
        }
        advanceWidth2 += run.advanceWidth;
        last2 = index2;
      } else {
        index2++;
      }
    }
    return {
      glyphs,
      positions,
      advanceWidth: advanceWidth2
    };
  }
  encode(text, features) {
    const {
      glyphs,
      positions
    } = this.layout(text, features);
    const res = [];
    for (let i5 = 0; i5 < glyphs.length; i5++) {
      const glyph = glyphs[i5];
      const gid = this.subset.includeGlyph(glyph.id);
      res.push(`0000${gid.toString(16)}`.slice(-4));
      if (this.widths[gid] == null) {
        this.widths[gid] = glyph.advanceWidth * this.scale;
      }
      if (this.unicode[gid] == null) {
        this.unicode[gid] = glyph.codePoints;
      }
    }
    return [res, positions];
  }
  encodeGlyphs(glyphs) {
    const res = [];
    for (let i5 = 0; i5 < glyphs.length; i5++) {
      const glyph = glyphs[i5];
      const gid = this.subset.includeGlyph(glyph.id);
      res.push(`0000${gid.toString(16)}`.slice(-4));
      if (this.widths[gid] == null) {
        this.widths[gid] = glyph.advanceWidth * this.scale;
      }
      if (this.unicode[gid] == null) {
        this.unicode[gid] = glyph.codePoints;
      }
    }
    return res;
  }
  widthOfString(string, size, features) {
    const width = this.layout(string, features, true).advanceWidth;
    const scale2 = size / 1e3;
    return width * scale2;
  }
  embed() {
    const isCFF = this.subset.cff != null;
    const fontFile = this.document.ref();
    if (isCFF) {
      fontFile.data.Subtype = "CIDFontType0C";
    }
    fontFile.end(this.subset.encode());
    const familyClass = ((this.font["OS/2"] != null ? this.font["OS/2"].sFamilyClass : void 0) || 0) >> 8;
    let flags = 0;
    if (this.font.post.isFixedPitch) {
      flags |= 1 << 0;
    }
    if (1 <= familyClass && familyClass <= 7) {
      flags |= 1 << 1;
    }
    flags |= 1 << 2;
    if (familyClass === 10) {
      flags |= 1 << 3;
    }
    if (this.font.head.macStyle.italic) {
      flags |= 1 << 6;
    }
    const tag = [0, 1, 2, 3, 4, 5].map(() => String.fromCharCode(Math.random() * 26 + 65)).join("");
    const name = tag + "+" + this.font.postscriptName;
    const {
      bbox
    } = this.font;
    const descriptor = this.document.ref({
      Type: "FontDescriptor",
      FontName: name,
      Flags: flags,
      FontBBox: [bbox.minX * this.scale, bbox.minY * this.scale, bbox.maxX * this.scale, bbox.maxY * this.scale],
      ItalicAngle: this.font.italicAngle,
      Ascent: this.ascender,
      Descent: this.descender,
      CapHeight: (this.font.capHeight || this.font.ascent) * this.scale,
      XHeight: (this.font.xHeight || 0) * this.scale,
      StemV: 0
    });
    if (isCFF) {
      descriptor.data.FontFile3 = fontFile;
    } else {
      descriptor.data.FontFile2 = fontFile;
    }
    descriptor.end();
    const descendantFontData = {
      Type: "Font",
      Subtype: "CIDFontType0",
      BaseFont: name,
      CIDSystemInfo: {
        Registry: new String("Adobe"),
        Ordering: new String("Identity"),
        Supplement: 0
      },
      FontDescriptor: descriptor,
      W: [0, this.widths]
    };
    if (!isCFF) {
      descendantFontData.Subtype = "CIDFontType2";
      descendantFontData.CIDToGIDMap = "Identity";
    }
    const descendantFont = this.document.ref(descendantFontData);
    descendantFont.end();
    this.dictionary.data = {
      Type: "Font",
      Subtype: "Type0",
      BaseFont: name,
      Encoding: "Identity-H",
      DescendantFonts: [descendantFont],
      ToUnicode: this.toUnicodeCmap()
    };
    return this.dictionary.end();
  }
  // Maps the glyph ids encoded in the PDF back to unicode strings
  // Because of ligature substitutions and the like, there may be one or more
  // unicode characters represented by each glyph.
  toUnicodeCmap() {
    const cmap = this.document.ref();
    let entries3 = [];
    let unicodeMap = "/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo <<\n  /Registry (Adobe)\n  /Ordering (UCS)\n  /Supplement 0\n>> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<0000><ffff>\nendcodespacerange";
    for (let [index2, codePoints] of this.unicode.entries()) {
      const encoded = [];
      if (entries3.length >= 100) {
        unicodeMap += "\n" + entries3.length + " beginbfchar\n" + entries3.join("\n") + "\nendbfchar";
        entries3 = [];
      }
      for (let value2 of codePoints) {
        if (value2 > 65535) {
          value2 -= 65536;
          encoded.push(toHex(value2 >>> 10 & 1023 | 55296));
          value2 = 56320 | value2 & 1023;
        }
        encoded.push(toHex(value2));
      }
      entries3.push("<" + toHex(index2) + "><" + encoded.join(" ") + ">");
    }
    if (entries3.length) {
      unicodeMap += "\n" + entries3.length + " beginbfchar\n" + entries3.join("\n") + "\nendbfchar\n";
    }
    unicodeMap += "endcmap\nCMapName currentdict /CMap defineresource pop\nend\nend";
    cmap.end(unicodeMap);
    return cmap;
  }
};
var PDFFont = class {
  static open(document2, src, family, id) {
    let font;
    if (typeof src === "string") {
      if (StandardFont.isStandardFont(src)) {
        return new StandardFont(document2, src, id);
      }
      {
        font = $b422b1e013cd6010$export$fa5499edb1ab414a(src, family);
      }
    } else if (src instanceof Uint8Array) {
      font = $d636bc798e7178db$export$185802fd694ee1f5(src, family);
    } else if (src instanceof ArrayBuffer) {
      font = $d636bc798e7178db$export$185802fd694ee1f5(new Uint8Array(src), family);
    } else if (typeof src === "object") {
      font = src;
    }
    if (font == null) {
      throw new Error("Not a supported font format or standard PDF font.");
    }
    return new EmbeddedFont(document2, font, id);
  }
  encode() {
    throw new Error("Must be implemented by subclasses");
  }
  widthOfString() {
    throw new Error("Must be implemented by subclasses");
  }
  ref() {
    return this.dictionary != null ? this.dictionary : this.dictionary = this.document.ref();
  }
  finalize() {
    if (this.embedded || this.dictionary == null) {
      return;
    }
    this.embed();
    return this.embedded = true;
  }
  embed() {
    throw new Error("Must be implemented by subclasses");
  }
  lineHeight(size, includeGap) {
    if (includeGap == null) {
      includeGap = false;
    }
    const gap = includeGap ? this.lineGap : 0;
    return (this.ascender + gap - this.descender) / 1e3 * size;
  }
};
var StandardFont = createStandardFont(PDFFont);
var EmbeddedFont = createEmbeddedFont(PDFFont);
var FontsMixin = {
  initFonts() {
    this._fontFamilies = {};
    this._fontCount = 0;
    this._fontSize = 12;
    this._font = null;
    this._registeredFonts = {};
    return this.font("Helvetica");
  },
  font(src, family, size) {
    let cacheKey;
    let font;
    if (typeof family === "number") {
      size = family;
      family = null;
    }
    if (typeof src === "string" && this._registeredFonts[src]) {
      cacheKey = src;
      ({
        src,
        family
      } = this._registeredFonts[src]);
    } else {
      cacheKey = family || src;
      if (typeof cacheKey !== "string") {
        cacheKey = null;
      }
    }
    if (size != null) {
      this.fontSize(size);
    }
    if (font = this._fontFamilies[cacheKey]) {
      this._font = font;
      return this;
    }
    const id = `F${++this._fontCount}`;
    this._font = PDFFont.open(this, src, family, id);
    if (font = this._fontFamilies[this._font.name]) {
      this._font = font;
      return this;
    }
    if (cacheKey) {
      this._fontFamilies[cacheKey] = this._font;
    }
    if (this._font.name) {
      this._fontFamilies[this._font.name] = this._font;
    }
    return this;
  },
  fontSize(_fontSize) {
    this._fontSize = _fontSize;
    return this;
  },
  currentLineHeight(includeGap) {
    if (includeGap == null) {
      includeGap = false;
    }
    return this._font.lineHeight(this._fontSize, includeGap);
  },
  registerFont(name, src, family) {
    this._registeredFonts[name] = {
      src,
      family
    };
    return this;
  }
};
function PDFNumber(n6) {
  return Math.fround(n6);
}
var SOFT_HYPHEN = "\xAD";
var HYPHEN = "-";
var LineWrapper = class extends EventEmitter4 {
  constructor(document2, options) {
    super();
    this.document = document2;
    this.horizontalScaling = options.horizontalScaling || 100;
    this.indent = (options.indent || 0) * this.horizontalScaling / 100;
    this.characterSpacing = (options.characterSpacing || 0) * this.horizontalScaling / 100;
    this.wordSpacing = (options.wordSpacing === 0) * this.horizontalScaling / 100;
    this.columns = options.columns || 1;
    this.columnGap = (options.columnGap != null ? options.columnGap : 18) * this.horizontalScaling / 100;
    this.lineWidth = (options.width * this.horizontalScaling / 100 - this.columnGap * (this.columns - 1)) / this.columns;
    this.spaceLeft = this.lineWidth;
    this.startX = this.document.x;
    this.startY = this.document.y;
    this.column = 1;
    this.ellipsis = options.ellipsis;
    this.continuedX = 0;
    this.features = options.features;
    if (options.height != null) {
      this.height = options.height;
      this.maxY = PDFNumber(this.startY + options.height);
    } else {
      this.maxY = PDFNumber(this.document.page.maxY());
    }
    this.on("firstLine", (options2) => {
      const indent = this.continuedX || this.indent;
      this.document.x += indent;
      this.lineWidth -= indent;
      if (options2.indentAllLines) {
        return;
      }
      return this.once("line", () => {
        this.document.x -= indent;
        this.lineWidth += indent;
        if (options2.continued && !this.continuedX) {
          this.continuedX = this.indent;
        }
        if (!options2.continued) {
          return this.continuedX = 0;
        }
      });
    });
    this.on("lastLine", (options2) => {
      const {
        align
      } = options2;
      if (align === "justify") {
        options2.align = "left";
      }
      this.lastLine = true;
      return this.once("line", () => {
        this.document.y += options2.paragraphGap || 0;
        options2.align = align;
        return this.lastLine = false;
      });
    });
  }
  wordWidth(word) {
    return this.document.widthOfString(word, this) + this.characterSpacing + this.wordSpacing;
  }
  canFit(word, w) {
    if (word[word.length - 1] != SOFT_HYPHEN) {
      return w <= this.spaceLeft;
    }
    return w + this.wordWidth(HYPHEN) <= this.spaceLeft;
  }
  eachWord(text, fn) {
    let bk;
    const breaker = new $557adaaeb0c7885f$exports(text);
    let last2 = null;
    const wordWidths = /* @__PURE__ */ Object.create(null);
    while (bk = breaker.nextBreak()) {
      var shouldContinue;
      let word = text.slice((last2 != null ? last2.position : void 0) || 0, bk.position);
      let w = wordWidths[word] != null ? wordWidths[word] : wordWidths[word] = this.wordWidth(word);
      if (w > this.lineWidth + this.continuedX) {
        let lbk = last2;
        const fbk = {};
        while (word.length) {
          var l4, mightGrow;
          if (w > this.spaceLeft) {
            l4 = Math.ceil(this.spaceLeft / (w / word.length));
            w = this.wordWidth(word.slice(0, l4));
            mightGrow = w <= this.spaceLeft && l4 < word.length;
          } else {
            l4 = word.length;
          }
          let mustShrink = w > this.spaceLeft && l4 > 0;
          while (mustShrink || mightGrow) {
            if (mustShrink) {
              w = this.wordWidth(word.slice(0, --l4));
              mustShrink = w > this.spaceLeft && l4 > 0;
            } else {
              w = this.wordWidth(word.slice(0, ++l4));
              mustShrink = w > this.spaceLeft && l4 > 0;
              mightGrow = w <= this.spaceLeft && l4 < word.length;
            }
          }
          if (l4 === 0 && this.spaceLeft === this.lineWidth) {
            l4 = 1;
          }
          fbk.required = bk.required || l4 < word.length;
          shouldContinue = fn(word.slice(0, l4), w, fbk, lbk);
          lbk = {
            required: false
          };
          word = word.slice(l4);
          w = this.wordWidth(word);
          if (shouldContinue === false) {
            break;
          }
        }
      } else {
        shouldContinue = fn(word, w, bk, last2);
      }
      if (shouldContinue === false) {
        break;
      }
      last2 = bk;
    }
  }
  wrap(text, options) {
    this.horizontalScaling = options.horizontalScaling || 100;
    if (options.indent != null) {
      this.indent = options.indent * this.horizontalScaling / 100;
    }
    if (options.characterSpacing != null) {
      this.characterSpacing = options.characterSpacing * this.horizontalScaling / 100;
    }
    if (options.wordSpacing != null) {
      this.wordSpacing = options.wordSpacing * this.horizontalScaling / 100;
    }
    if (options.ellipsis != null) {
      this.ellipsis = options.ellipsis;
    }
    const nextY = this.document.y + this.document.currentLineHeight(true);
    if (this.document.y > this.maxY || nextY > this.maxY) {
      this.nextSection();
    }
    let buffer = "";
    let textWidth = 0;
    let wc = 0;
    let lc = 0;
    let {
      y: y3
    } = this.document;
    const emitLine = () => {
      options.textWidth = textWidth + this.wordSpacing * (wc - 1);
      options.wordCount = wc;
      options.lineWidth = this.lineWidth;
      ({
        y: y3
      } = this.document);
      this.emit("line", buffer, options, this);
      return lc++;
    };
    this.emit("sectionStart", options, this);
    this.eachWord(text, (word, w, bk, last2) => {
      if (last2 == null || last2.required) {
        this.emit("firstLine", options, this);
        this.spaceLeft = this.lineWidth;
      }
      if (this.canFit(word, w)) {
        buffer += word;
        textWidth += w;
        wc++;
      }
      if (bk.required || !this.canFit(word, w)) {
        const lh = this.document.currentLineHeight(true);
        if (this.height != null && this.ellipsis && PDFNumber(this.document.y + lh * 2) > this.maxY && this.column >= this.columns) {
          if (this.ellipsis === true) {
            this.ellipsis = "\u2026";
          }
          buffer = buffer.replace(/\s+$/, "");
          textWidth = this.wordWidth(buffer + this.ellipsis);
          while (buffer && textWidth > this.lineWidth) {
            buffer = buffer.slice(0, -1).replace(/\s+$/, "");
            textWidth = this.wordWidth(buffer + this.ellipsis);
          }
          if (textWidth <= this.lineWidth) {
            buffer = buffer + this.ellipsis;
          }
          textWidth = this.wordWidth(buffer);
        }
        if (bk.required) {
          if (w > this.spaceLeft) {
            emitLine();
            buffer = word;
            textWidth = w;
            wc = 1;
          }
          this.emit("lastLine", options, this);
        }
        if (buffer[buffer.length - 1] == SOFT_HYPHEN) {
          buffer = buffer.slice(0, -1) + HYPHEN;
          this.spaceLeft -= this.wordWidth(HYPHEN);
        }
        emitLine();
        if (PDFNumber(this.document.y + lh) > this.maxY) {
          const shouldContinue = this.nextSection();
          if (!shouldContinue) {
            wc = 0;
            buffer = "";
            return false;
          }
        }
        if (bk.required) {
          this.spaceLeft = this.lineWidth;
          buffer = "";
          textWidth = 0;
          return wc = 0;
        } else {
          this.spaceLeft = this.lineWidth - w;
          buffer = word;
          textWidth = w;
          return wc = 1;
        }
      } else {
        return this.spaceLeft -= w;
      }
    });
    if (wc > 0) {
      this.emit("lastLine", options, this);
      emitLine();
    }
    this.emit("sectionEnd", options, this);
    if (options.continued === true) {
      if (lc > 1) {
        this.continuedX = 0;
      }
      this.continuedX += options.textWidth || 0;
      return this.document.y = y3;
    } else {
      return this.document.x = this.startX;
    }
  }
  nextSection(options) {
    this.emit("sectionEnd", options, this);
    if (++this.column > this.columns) {
      if (this.height != null) {
        return false;
      }
      this.document.continueOnNewPage();
      this.column = 1;
      this.startY = this.document.page.margins.top;
      this.maxY = this.document.page.maxY();
      this.document.x = this.startX;
      if (this.document._fillColor) {
        this.document.fillColor(...this.document._fillColor);
      }
      this.emit("pageBreak", options, this);
    } else {
      this.document.x += this.lineWidth + this.columnGap;
      this.document.y = this.startY;
      this.emit("columnBreak", options, this);
    }
    this.emit("sectionStart", options, this);
    return true;
  }
};
var {
  number
} = PDFObject;
var TextMixin = {
  initText() {
    this._line = this._line.bind(this);
    this.x = 0;
    this.y = 0;
    return this._lineGap = 0;
  },
  lineGap(_lineGap) {
    this._lineGap = _lineGap;
    return this;
  },
  moveDown(lines) {
    if (lines == null) {
      lines = 1;
    }
    this.y += this.currentLineHeight(true) * lines + this._lineGap;
    return this;
  },
  moveUp(lines) {
    if (lines == null) {
      lines = 1;
    }
    this.y -= this.currentLineHeight(true) * lines + this._lineGap;
    return this;
  },
  _text(text, x, y3, options, lineCallback) {
    options = this._initOptions(x, y3, options);
    text = text == null ? "" : `${text}`;
    if (options.wordSpacing) {
      text = text.replace(/\s{2,}/g, " ");
    }
    const addStructure = () => {
      if (options.structParent) {
        options.structParent.add(this.struct(options.structType || "P", [this.markStructureContent(options.structType || "P")]));
      }
    };
    if (options.rotation !== 0) {
      this.save();
      this.rotate(-options.rotation, {
        origin: [this.x, this.y]
      });
    }
    if (options.width) {
      let wrapper = this._wrapper;
      if (!wrapper) {
        wrapper = new LineWrapper(this, options);
        wrapper.on("line", lineCallback);
        wrapper.on("firstLine", addStructure);
      }
      this._wrapper = options.continued ? wrapper : null;
      this._textOptions = options.continued ? options : null;
      wrapper.wrap(text, options);
    } else {
      for (let line2 of text.split("\n")) {
        addStructure();
        lineCallback(line2, options);
      }
    }
    if (options.rotation !== 0) this.restore();
    return this;
  },
  text(text, x, y3, options) {
    return this._text(text, x, y3, options, this._line);
  },
  widthOfString(string, options) {
    if (options === void 0) {
      options = {};
    }
    const horizontalScaling = options.horizontalScaling || 100;
    return (this._font.widthOfString(string, this._fontSize, options.features) + (options.characterSpacing || 0) * (string.length - 1)) * horizontalScaling / 100;
  },
  /**
   * Compute the bounding box of a string
   * based on what will actually be rendered by `doc.text()`
   *
   * @param string - The string
   * @param x - X position of text (defaults to this.x)
   * @param y - Y position of text (defaults to this.y)
   * @param options - Any text options (The same you would apply to `doc.text()`)
   * @returns {{x: number, y: number, width: number, height: number}}
   */
  boundsOfString(string, x, y3, options) {
  },
  heightOfString(text, options) {
    const {
      x,
      y: y3
    } = this;
    options = this._initOptions(options);
    options.height = Infinity;
    const lineGap2 = options.lineGap || this._lineGap || 0;
    this._text(text, this.x, this.y, options, () => {
      return this.y += this.currentLineHeight(true) + lineGap2;
    });
    const height2 = this.y - y3;
    this.x = x;
    this.y = y3;
    return height2;
  },
  list(list, x, y3, options, wrapper) {
    options = this._initOptions(x, y3, options);
    const listType = options.listType || "bullet";
    const unit = Math.round(this._font.ascender / 1e3 * this._fontSize);
    const midLine = unit / 2;
    const r4 = options.bulletRadius || unit / 3;
    const indent = options.textIndent || (listType === "bullet" ? r4 * 5 : unit * 2);
    const itemIndent = options.bulletIndent || (listType === "bullet" ? r4 * 8 : unit * 2);
    let level = 1;
    const items = [];
    const levels = [];
    const numbers = [];
    var flatten3 = function(list2) {
      let n6 = 1;
      for (let i5 = 0; i5 < list2.length; i5++) {
        const item = list2[i5];
        if (Array.isArray(item)) {
          level++;
          flatten3(item);
          level--;
        } else {
          items.push(item);
          levels.push(level);
          if (listType !== "bullet") {
            numbers.push(n6++);
          }
        }
      }
    };
    flatten3(list);
    const label = function(n6) {
      switch (listType) {
        case "numbered":
          return `${n6}.`;
        case "lettered":
          var letter = String.fromCharCode((n6 - 1) % 26 + 65);
          var times = Math.floor((n6 - 1) / 26 + 1);
          var text = Array(times + 1).join(letter);
          return `${text}.`;
      }
    };
    const drawListItem = function(listItem, i5) {
      wrapper = new LineWrapper(this, options);
      wrapper.on("line", this._line);
      level = 1;
      wrapper.once("firstLine", () => {
        let item, itemType, labelType, bodyType;
        if (options.structParent) {
          if (options.structTypes) {
            [itemType, labelType, bodyType] = options.structTypes;
          } else {
            [itemType, labelType, bodyType] = ["LI", "Lbl", "LBody"];
          }
        }
        if (itemType) {
          item = this.struct(itemType);
          options.structParent.add(item);
        } else if (options.structParent) {
          item = options.structParent;
        }
        let l4;
        if ((l4 = levels[i5++]) !== level) {
          const diff = itemIndent * (l4 - level);
          this.x += diff;
          wrapper.lineWidth -= diff;
          level = l4;
        }
        if (item && (labelType || bodyType)) {
          item.add(this.struct(labelType || bodyType, [this.markStructureContent(labelType || bodyType)]));
        }
        switch (listType) {
          case "bullet":
            this.circle(this.x - indent + r4, this.y + midLine, r4);
            this.fill();
            break;
          case "numbered":
          case "lettered":
            var text = label(numbers[i5 - 1]);
            this._fragment(text, this.x - indent, this.y, options);
            break;
        }
        if (item && labelType && bodyType) {
          item.add(this.struct(bodyType, [this.markStructureContent(bodyType)]));
        }
        if (item && item !== options.structParent) {
          item.end();
        }
      });
      wrapper.on("sectionStart", () => {
        const pos = indent + itemIndent * (level - 1);
        this.x += pos;
        return wrapper.lineWidth -= pos;
      });
      wrapper.on("sectionEnd", () => {
        const pos = indent + itemIndent * (level - 1);
        this.x -= pos;
        return wrapper.lineWidth += pos;
      });
      wrapper.wrap(listItem, options);
    };
    for (let i5 = 0; i5 < items.length; i5++) {
      drawListItem.call(this, items[i5], i5);
    }
    return this;
  },
  _initOptions(x, y3, options) {
    var _options$rotation;
    if (x === void 0) {
      x = {};
    }
    if (options === void 0) {
      options = {};
    }
    if (typeof x === "object") {
      options = x;
      x = null;
    }
    const result = Object.assign({}, options);
    if (this._textOptions) {
      for (let key in this._textOptions) {
        const val = this._textOptions[key];
        if (key !== "continued") {
          if (result[key] === void 0) {
            result[key] = val;
          }
        }
      }
    }
    if (x != null) {
      this.x = x;
    }
    if (y3 != null) {
      this.y = y3;
    }
    if (result.lineBreak !== false) {
      if (result.width == null) {
        result.width = this.page.width - this.x - this.page.margins.right;
      }
      result.width = Math.max(result.width, 0);
    }
    if (!result.columns) {
      result.columns = 0;
    }
    if (result.columnGap == null) {
      result.columnGap = 18;
    }
    result.rotation = Number((_options$rotation = options.rotation) !== null && _options$rotation !== void 0 ? _options$rotation : 0) % 360;
    if (result.rotation < 0) result.rotation += 360;
    return result;
  },
  _line(text, options, wrapper) {
    if (options === void 0) {
      options = {};
    }
    this._fragment(text, this.x, this.y, options);
    const lineGap2 = options.lineGap || this._lineGap || 0;
    if (!wrapper) {
      return this.x += this.widthOfString(text, options);
    } else {
      return this.y += this.currentLineHeight(true) + lineGap2;
    }
  },
  _fragment(text, x, y3, options) {
    let dy, encoded, i5, positions, textWidth, words;
    text = `${text}`.replace(/\n/g, "");
    if (text.length === 0) {
      return;
    }
    const align = options.align || "left";
    let wordSpacing = options.wordSpacing || 0;
    const characterSpacing = options.characterSpacing || 0;
    const horizontalScaling = options.horizontalScaling || 100;
    if (options.width) {
      switch (align) {
        case "right":
          textWidth = this.widthOfString(text.replace(/\s+$/, ""), options);
          x += options.lineWidth - textWidth;
          break;
        case "center":
          x += options.lineWidth / 2 - options.textWidth / 2;
          break;
        case "justify":
          words = text.trim().split(/\s+/);
          textWidth = this.widthOfString(text.replace(/\s+/g, ""), options);
          var spaceWidth = this.widthOfString(" ") + characterSpacing;
          wordSpacing = Math.max(0, (options.lineWidth - textWidth) / Math.max(1, words.length - 1) - spaceWidth);
          break;
      }
    }
    if (typeof options.baseline === "number") {
      dy = -options.baseline;
    } else {
      switch (options.baseline) {
        case "svg-middle":
          dy = 0.5 * this._font.xHeight;
          break;
        case "middle":
        case "svg-central":
          dy = 0.5 * (this._font.descender + this._font.ascender);
          break;
        case "bottom":
        case "ideographic":
          dy = this._font.descender;
          break;
        case "alphabetic":
          dy = 0;
          break;
        case "mathematical":
          dy = 0.5 * this._font.ascender;
          break;
        case "hanging":
          dy = 0.8 * this._font.ascender;
          break;
        case "top":
          dy = this._font.ascender;
          break;
        default:
          dy = this._font.ascender;
      }
      dy = dy / 1e3 * this._fontSize;
    }
    const renderedWidth = options.textWidth + wordSpacing * (options.wordCount - 1) + characterSpacing * (text.length - 1);
    if (options.link != null) {
      this.link(x, y3, renderedWidth, this.currentLineHeight(), options.link);
    }
    if (options.goTo != null) {
      this.goTo(x, y3, renderedWidth, this.currentLineHeight(), options.goTo);
    }
    if (options.destination != null) {
      this.addNamedDestination(options.destination, "XYZ", x, y3, null);
    }
    if (options.underline) {
      this.save();
      if (!options.stroke) {
        this.strokeColor(...this._fillColor || []);
      }
      const lineWidth = this._fontSize < 10 ? 0.5 : Math.floor(this._fontSize / 10);
      this.lineWidth(lineWidth);
      let lineY = y3 + this.currentLineHeight() - lineWidth;
      this.moveTo(x, lineY);
      this.lineTo(x + renderedWidth, lineY);
      this.stroke();
      this.restore();
    }
    if (options.strike) {
      this.save();
      if (!options.stroke) {
        this.strokeColor(...this._fillColor || []);
      }
      const lineWidth = this._fontSize < 10 ? 0.5 : Math.floor(this._fontSize / 10);
      this.lineWidth(lineWidth);
      let lineY = y3 + this.currentLineHeight() / 2;
      this.moveTo(x, lineY);
      this.lineTo(x + renderedWidth, lineY);
      this.stroke();
      this.restore();
    }
    this.save();
    if (options.oblique) {
      let skew;
      if (typeof options.oblique === "number") {
        skew = -Math.tan(options.oblique * Math.PI / 180);
      } else {
        skew = -0.25;
      }
      this.transform(1, 0, 0, 1, x, y3);
      this.transform(1, 0, skew, 1, -skew * dy, 0);
      this.transform(1, 0, 0, 1, -x, -y3);
    }
    this.transform(1, 0, 0, -1, 0, this.page.height);
    y3 = this.page.height - y3 - dy;
    if (this.page.fonts[this._font.id] == null) {
      this.page.fonts[this._font.id] = this._font.ref();
    }
    this.addContent("BT");
    this.addContent(`1 0 0 1 ${number(x)} ${number(y3)} Tm`);
    this.addContent(`/${this._font.id} ${number(this._fontSize)} Tf`);
    const mode = options.fill && options.stroke ? 2 : options.stroke ? 1 : 0;
    if (mode) {
      this.addContent(`${mode} Tr`);
    }
    if (characterSpacing) {
      this.addContent(`${number(characterSpacing)} Tc`);
    }
    if (horizontalScaling !== 100) {
      this.addContent(`${horizontalScaling} Tz`);
    }
    if (wordSpacing) {
      words = text.trim().split(/\s+/);
      wordSpacing += this.widthOfString(" ") + characterSpacing;
      wordSpacing *= 1e3 / this._fontSize;
      encoded = [];
      positions = [];
      for (let word of words) {
        const [encodedWord, positionsWord] = this._font.encode(word, options.features);
        encoded = encoded.concat(encodedWord);
        positions = positions.concat(positionsWord);
        const space = {};
        const object = positions[positions.length - 1];
        for (let key in object) {
          const val = object[key];
          space[key] = val;
        }
        space.xAdvance += wordSpacing;
        positions[positions.length - 1] = space;
      }
    } else {
      [encoded, positions] = this._font.encode(text, options.features);
    }
    const scale2 = this._fontSize / 1e3;
    const commands = [];
    let last2 = 0;
    let hadOffset = false;
    const addSegment = (cur) => {
      if (last2 < cur) {
        const hex = encoded.slice(last2, cur).join("");
        const advance = positions[cur - 1].xAdvance - positions[cur - 1].advanceWidth;
        commands.push(`<${hex}> ${number(-advance)}`);
      }
      return last2 = cur;
    };
    const flush = (i6) => {
      addSegment(i6);
      if (commands.length > 0) {
        this.addContent(`[${commands.join(" ")}] TJ`);
        return commands.length = 0;
      }
    };
    for (i5 = 0; i5 < positions.length; i5++) {
      const pos = positions[i5];
      if (pos.xOffset || pos.yOffset) {
        flush(i5);
        this.addContent(`1 0 0 1 ${number(x + pos.xOffset * scale2)} ${number(y3 + pos.yOffset * scale2)} Tm`);
        flush(i5 + 1);
        hadOffset = true;
      } else {
        if (hadOffset) {
          this.addContent(`1 0 0 1 ${number(x)} ${number(y3)} Tm`);
          hadOffset = false;
        }
        if (pos.xAdvance - pos.advanceWidth !== 0) {
          addSegment(i5 + 1);
        }
      }
      x += pos.xAdvance * scale2;
    }
    flush(i5);
    this.addContent("ET");
    return this.restore();
  }
};
var COLOR_SPACE_MAP = {
  1: "DeviceGray",
  3: "DeviceRGB",
  4: "DeviceCMYK"
};
var JPEG2 = class {
  constructor(data2, label) {
    this.data = data2;
    this.label = label;
    this.orientation = 1;
    if (this.data.readUInt16BE(0) !== 65496) {
      throw "SOI not found in JPEG";
    }
    const markers = src_default.decode(this.data);
    for (let i5 = 0; i5 < markers.length; i5 += 1) {
      const marker = markers[i5];
      if (marker.name === "EXIF" && marker.entries.orientation) {
        this.orientation = marker.entries.orientation;
      }
      if (marker.name === "SOF") {
        this.bits ||= marker.precision;
        this.width ||= marker.width;
        this.height ||= marker.height;
        this.colorSpace ||= COLOR_SPACE_MAP[marker.numberOfComponents];
      }
    }
    this.obj = null;
  }
  embed(document2) {
    if (this.obj) {
      return;
    }
    this.obj = document2.ref({
      Type: "XObject",
      Subtype: "Image",
      BitsPerComponent: this.bits,
      Width: this.width,
      Height: this.height,
      ColorSpace: this.colorSpace,
      Filter: "DCTDecode"
    });
    if (this.colorSpace === "DeviceCMYK") {
      this.obj.data["Decode"] = [1, 0, 1, 0, 1, 0, 1, 0];
    }
    this.obj.end(this.data);
    return this.data = null;
  }
};
var PNGImage = class {
  constructor(data2, label) {
    this.label = label;
    this.image = new PNG(data2);
    this.width = this.image.width;
    this.height = this.image.height;
    this.imgData = this.image.imgData;
    this.obj = null;
  }
  embed(document2) {
    let dataDecoded = false;
    this.document = document2;
    if (this.obj) {
      return;
    }
    const hasAlphaChannel = this.image.hasAlphaChannel;
    const isInterlaced = this.image.interlaceMethod === 1;
    this.obj = this.document.ref({
      Type: "XObject",
      Subtype: "Image",
      BitsPerComponent: hasAlphaChannel ? 8 : this.image.bits,
      Width: this.width,
      Height: this.height,
      Filter: "FlateDecode"
    });
    if (!hasAlphaChannel) {
      const params = this.document.ref({
        Predictor: isInterlaced ? 1 : 15,
        Colors: this.image.colors,
        BitsPerComponent: this.image.bits,
        Columns: this.width
      });
      this.obj.data.DecodeParms = params;
      params.end();
    }
    if (this.image.palette.length === 0) {
      this.obj.data.ColorSpace = this.image.colorSpace;
    } else {
      const palette = this.document.ref();
      palette.end(Buffer.from(this.image.palette));
      this.obj.data.ColorSpace = ["Indexed", "DeviceRGB", this.image.palette.length / 3 - 1, palette];
    }
    if (this.image.transparency.grayscale != null) {
      const val = this.image.transparency.grayscale;
      this.obj.data.Mask = [val, val];
    } else if (this.image.transparency.rgb) {
      const {
        rgb
      } = this.image.transparency;
      const mask = [];
      for (let x of rgb) {
        mask.push(x, x);
      }
      this.obj.data.Mask = mask;
    } else if (this.image.transparency.indexed) {
      dataDecoded = true;
      return this.loadIndexedAlphaChannel();
    } else if (hasAlphaChannel) {
      dataDecoded = true;
      return this.splitAlphaChannel();
    }
    if (isInterlaced && !dataDecoded) {
      return this.decodeData();
    }
    this.finalize();
  }
  finalize() {
    if (this.alphaChannel) {
      const sMask = this.document.ref({
        Type: "XObject",
        Subtype: "Image",
        Height: this.height,
        Width: this.width,
        BitsPerComponent: 8,
        Filter: "FlateDecode",
        ColorSpace: "DeviceGray",
        Decode: [0, 1]
      });
      sMask.end(this.alphaChannel);
      this.obj.data.SMask = sMask;
    }
    this.obj.end(this.imgData);
    this.image = null;
    return this.imgData = null;
  }
  splitAlphaChannel() {
    return this.image.decodePixels((pixels) => {
      let a5;
      let p3;
      const colorCount = this.image.colors;
      const pixelCount = this.width * this.height;
      const imgData = Buffer.alloc(pixelCount * colorCount);
      const alphaChannel = Buffer.alloc(pixelCount);
      let i5 = p3 = a5 = 0;
      const len = pixels.length;
      const skipByteCount = this.image.bits === 16 ? 1 : 0;
      while (i5 < len) {
        for (let colorIndex = 0; colorIndex < colorCount; colorIndex++) {
          imgData[p3++] = pixels[i5++];
          i5 += skipByteCount;
        }
        alphaChannel[a5++] = pixels[i5++];
        i5 += skipByteCount;
      }
      this.imgData = zlib5.deflateSync(imgData);
      this.alphaChannel = zlib5.deflateSync(alphaChannel);
      return this.finalize();
    });
  }
  loadIndexedAlphaChannel() {
    const transparency = this.image.transparency.indexed;
    return this.image.decodePixels((pixels) => {
      const alphaChannel = Buffer.alloc(this.width * this.height);
      let i5 = 0;
      for (let j = 0, end2 = pixels.length; j < end2; j++) {
        alphaChannel[i5++] = transparency[pixels[j]];
      }
      this.alphaChannel = zlib5.deflateSync(alphaChannel);
      return this.finalize();
    });
  }
  decodeData() {
    this.image.decodePixels((pixels) => {
      this.imgData = zlib5.deflateSync(pixels);
      this.finalize();
    });
  }
};
var PDFImage = class {
  static open(src, label) {
    let data2;
    if (Buffer.isBuffer(src)) {
      data2 = src;
    } else if (src instanceof ArrayBuffer) {
      data2 = Buffer.from(new Uint8Array(src));
    } else {
      let match;
      if (match = /^data:.+?;base64,(.*)$/.exec(src)) {
        data2 = Buffer.from(match[1], "base64");
      } else {
        data2 = fs4.readFileSync(src);
        if (!data2) {
          return;
        }
      }
    }
    if (data2[0] === 255 && data2[1] === 216) {
      return new JPEG2(data2, label);
    } else if (data2[0] === 137 && data2.toString("ascii", 1, 4) === "PNG") {
      return new PNGImage(data2, label);
    } else {
      throw new Error("Unknown image format.");
    }
  }
};
var ImagesMixin = {
  initImages() {
    this._imageRegistry = {};
    return this._imageCount = 0;
  },
  image(src, x, y3, options) {
    if (options === void 0) {
      options = {};
    }
    let bh, bp, bw, image, ip, left, left1, rotateAngle, originX, originY;
    if (typeof x === "object") {
      options = x;
      x = null;
    }
    const ignoreOrientation = options.ignoreOrientation || options.ignoreOrientation !== false && this.options.ignoreOrientation;
    x = (left = x != null ? x : options.x) != null ? left : this.x;
    y3 = (left1 = y3 != null ? y3 : options.y) != null ? left1 : this.y;
    if (typeof src === "string") {
      image = this._imageRegistry[src];
    }
    if (!image) {
      if (src.width && src.height) {
        image = src;
      } else {
        image = this.openImage(src);
      }
    }
    if (!image.obj) {
      image.embed(this);
    }
    if (this.page.xobjects[image.label] == null) {
      this.page.xobjects[image.label] = image.obj;
    }
    let {
      width,
      height: height2
    } = image;
    if (!ignoreOrientation && image.orientation > 4) {
      [width, height2] = [height2, width];
    }
    let w = options.width || width;
    let h4 = options.height || height2;
    if (options.width && !options.height) {
      const wp = w / width;
      w = width * wp;
      h4 = height2 * wp;
    } else if (options.height && !options.width) {
      const hp = h4 / height2;
      w = width * hp;
      h4 = height2 * hp;
    } else if (options.scale) {
      w = width * options.scale;
      h4 = height2 * options.scale;
    } else if (options.fit) {
      [bw, bh] = options.fit;
      bp = bw / bh;
      ip = width / height2;
      if (ip > bp) {
        w = bw;
        h4 = bw / ip;
      } else {
        h4 = bh;
        w = bh * ip;
      }
    } else if (options.cover) {
      [bw, bh] = options.cover;
      bp = bw / bh;
      ip = width / height2;
      if (ip > bp) {
        h4 = bh;
        w = bh * ip;
      } else {
        w = bw;
        h4 = bw / ip;
      }
    }
    if (options.fit || options.cover) {
      if (options.align === "center") {
        x = x + bw / 2 - w / 2;
      } else if (options.align === "right") {
        x = x + bw - w;
      }
      if (options.valign === "center") {
        y3 = y3 + bh / 2 - h4 / 2;
      } else if (options.valign === "bottom") {
        y3 = y3 + bh - h4;
      }
    }
    if (!ignoreOrientation) {
      switch (image.orientation) {
        // No orientation (need to flip image, though, because of the default transform matrix on the document)
        default:
        case 1:
          h4 = -h4;
          y3 -= h4;
          rotateAngle = 0;
          break;
        // Flip Horizontal
        case 2:
          w = -w;
          h4 = -h4;
          x -= w;
          y3 -= h4;
          rotateAngle = 0;
          break;
        // Rotate 180 degrees
        case 3:
          originX = x;
          originY = y3;
          h4 = -h4;
          x -= w;
          rotateAngle = 180;
          break;
        // Flip vertical
        case 4:
          break;
        // Flip horizontally and rotate 270 degrees CW
        case 5:
          originX = x;
          originY = y3;
          [w, h4] = [h4, w];
          y3 -= h4;
          rotateAngle = 90;
          break;
        // Rotate 90 degrees CW
        case 6:
          originX = x;
          originY = y3;
          [w, h4] = [h4, w];
          h4 = -h4;
          rotateAngle = 90;
          break;
        // Flip horizontally and rotate 90 degrees CW
        case 7:
          originX = x;
          originY = y3;
          [w, h4] = [h4, w];
          h4 = -h4;
          w = -w;
          x -= w;
          rotateAngle = 90;
          break;
        // Rotate 270 degrees CW
        case 8:
          originX = x;
          originY = y3;
          [w, h4] = [h4, w];
          h4 = -h4;
          x -= w;
          y3 -= h4;
          rotateAngle = -90;
          break;
      }
    } else {
      h4 = -h4;
      y3 -= h4;
      rotateAngle = 0;
    }
    if (options.link != null) {
      this.link(x, y3, w, h4, options.link);
    }
    if (options.goTo != null) {
      this.goTo(x, y3, w, h4, options.goTo);
    }
    if (options.destination != null) {
      this.addNamedDestination(options.destination, "XYZ", x, y3, null);
    }
    if (this.y === y3) {
      this.y += h4;
    }
    this.save();
    if (rotateAngle) {
      this.rotate(rotateAngle, {
        origin: [originX, originY]
      });
    }
    this.transform(w, 0, 0, h4, x, y3);
    this.addContent(`/${image.label} Do`);
    this.restore();
    return this;
  },
  openImage(src) {
    let image;
    if (typeof src === "string") {
      image = this._imageRegistry[src];
    }
    if (!image) {
      image = PDFImage.open(src, `I${++this._imageCount}`);
      if (typeof src === "string") {
        this._imageRegistry[src] = image;
      }
    }
    return image;
  }
};
var AnnotationsMixin = {
  annotate(x, y3, w, h4, options) {
    options.Type = "Annot";
    options.Rect = this._convertRect(x, y3, w, h4);
    options.Border = [0, 0, 0];
    if (options.Subtype === "Link" && typeof options.F === "undefined") {
      options.F = 1 << 2;
    }
    if (options.Subtype !== "Link") {
      if (options.C == null) {
        options.C = this._normalizeColor(options.color || [0, 0, 0]);
      }
    }
    delete options.color;
    if (typeof options.Dest === "string") {
      options.Dest = new String(options.Dest);
    }
    for (let key in options) {
      const val = options[key];
      options[key[0].toUpperCase() + key.slice(1)] = val;
    }
    const ref = this.ref(options);
    this.page.annotations.push(ref);
    ref.end();
    return this;
  },
  note(x, y3, w, h4, contents, options) {
    if (options === void 0) {
      options = {};
    }
    options.Subtype = "Text";
    options.Contents = new String(contents);
    if (options.Name == null) {
      options.Name = "Comment";
    }
    if (options.color == null) {
      options.color = [243, 223, 92];
    }
    return this.annotate(x, y3, w, h4, options);
  },
  goTo(x, y3, w, h4, name, options) {
    if (options === void 0) {
      options = {};
    }
    options.Subtype = "Link";
    options.A = this.ref({
      S: "GoTo",
      D: new String(name)
    });
    options.A.end();
    return this.annotate(x, y3, w, h4, options);
  },
  link(x, y3, w, h4, url3, options) {
    if (options === void 0) {
      options = {};
    }
    options.Subtype = "Link";
    if (typeof url3 === "number") {
      const pages = this._root.data.Pages.data;
      if (url3 >= 0 && url3 < pages.Kids.length) {
        options.A = this.ref({
          S: "GoTo",
          D: [pages.Kids[url3], "XYZ", null, null, null]
        });
        options.A.end();
      } else {
        throw new Error(`The document has no page ${url3}`);
      }
    } else {
      options.A = this.ref({
        S: "URI",
        URI: new String(url3)
      });
      options.A.end();
    }
    return this.annotate(x, y3, w, h4, options);
  },
  _markup(x, y3, w, h4, options) {
    if (options === void 0) {
      options = {};
    }
    const [x1, y1, x2, y22] = this._convertRect(x, y3, w, h4);
    options.QuadPoints = [x1, y22, x2, y22, x1, y1, x2, y1];
    options.Contents = new String();
    return this.annotate(x, y3, w, h4, options);
  },
  highlight(x, y3, w, h4, options) {
    if (options === void 0) {
      options = {};
    }
    options.Subtype = "Highlight";
    if (options.color == null) {
      options.color = [241, 238, 148];
    }
    return this._markup(x, y3, w, h4, options);
  },
  underline(x, y3, w, h4, options) {
    if (options === void 0) {
      options = {};
    }
    options.Subtype = "Underline";
    return this._markup(x, y3, w, h4, options);
  },
  strike(x, y3, w, h4, options) {
    if (options === void 0) {
      options = {};
    }
    options.Subtype = "StrikeOut";
    return this._markup(x, y3, w, h4, options);
  },
  lineAnnotation(x1, y1, x2, y22, options) {
    if (options === void 0) {
      options = {};
    }
    options.Subtype = "Line";
    options.Contents = new String();
    options.L = [x1, this.page.height - y1, x2, this.page.height - y22];
    return this.annotate(x1, y1, x2, y22, options);
  },
  rectAnnotation(x, y3, w, h4, options) {
    if (options === void 0) {
      options = {};
    }
    options.Subtype = "Square";
    options.Contents = new String();
    return this.annotate(x, y3, w, h4, options);
  },
  ellipseAnnotation(x, y3, w, h4, options) {
    if (options === void 0) {
      options = {};
    }
    options.Subtype = "Circle";
    options.Contents = new String();
    return this.annotate(x, y3, w, h4, options);
  },
  textAnnotation(x, y3, w, h4, text, options) {
    if (options === void 0) {
      options = {};
    }
    options.Subtype = "FreeText";
    options.Contents = new String(text);
    options.DA = new String();
    return this.annotate(x, y3, w, h4, options);
  },
  fileAnnotation(x, y3, w, h4, file, options) {
    if (file === void 0) {
      file = {};
    }
    if (options === void 0) {
      options = {};
    }
    const filespec = this.file(file.src, Object.assign({
      hidden: true
    }, file));
    options.Subtype = "FileAttachment";
    options.FS = filespec;
    if (options.Contents) {
      options.Contents = new String(options.Contents);
    } else if (filespec.data.Desc) {
      options.Contents = filespec.data.Desc;
    }
    return this.annotate(x, y3, w, h4, options);
  },
  _convertRect(x1, y1, w, h4) {
    let y22 = y1;
    y1 += h4;
    let x2 = x1 + w;
    const [m0, m1, m22, m3, m4, m5] = this._ctm;
    x1 = m0 * x1 + m22 * y1 + m4;
    y1 = m1 * x1 + m3 * y1 + m5;
    x2 = m0 * x2 + m22 * y22 + m4;
    y22 = m1 * x2 + m3 * y22 + m5;
    return [x1, y1, x2, y22];
  }
};
var DEFAULT_OPTIONS = {
  top: 0,
  left: 0,
  zoom: 0,
  fit: false,
  pageNumber: null,
  expanded: false
};
var PDFOutline = class _PDFOutline {
  constructor(document2, parent, title, dest, options) {
    if (options === void 0) {
      options = DEFAULT_OPTIONS;
    }
    this.document = document2;
    this.options = options;
    this.outlineData = {};
    if (dest !== null) {
      const destWidth = dest.data.MediaBox[2];
      const destHeight = dest.data.MediaBox[3];
      const top = destHeight - (options.top || 0);
      const left = destWidth - (options.left || 0);
      const zoom = options.zoom || 0;
      this.outlineData["Dest"] = options.fit ? [dest, "Fit"] : [dest, "XYZ", left, top, zoom];
    }
    if (parent !== null) {
      this.outlineData["Parent"] = parent;
    }
    if (title !== null) {
      this.outlineData["Title"] = new String(title);
    }
    this.dictionary = this.document.ref(this.outlineData);
    this.children = [];
  }
  addItem(title, options) {
    if (options === void 0) {
      options = DEFAULT_OPTIONS;
    }
    const pages = this.document._root.data.Pages.data.Kids;
    const dest = options.pageNumber !== null ? pages[options.pageNumber] : this.document.page.dictionary;
    const result = new _PDFOutline(this.document, this.dictionary, title, dest, options);
    this.children.push(result);
    return result;
  }
  endOutline() {
    if (this.children.length > 0) {
      if (this.options.expanded) {
        this.outlineData.Count = this.children.length;
      }
      const first = this.children[0], last2 = this.children[this.children.length - 1];
      this.outlineData.First = first.dictionary;
      this.outlineData.Last = last2.dictionary;
      for (let i5 = 0, len = this.children.length; i5 < len; i5++) {
        const child = this.children[i5];
        if (i5 > 0) {
          child.outlineData.Prev = this.children[i5 - 1].dictionary;
        }
        if (i5 < this.children.length - 1) {
          child.outlineData.Next = this.children[i5 + 1].dictionary;
        }
        child.endOutline();
      }
    }
    return this.dictionary.end();
  }
};
var OutlineMixin = {
  initOutline() {
    return this.outline = new PDFOutline(this, null, null, null);
  },
  endOutline() {
    this.outline.endOutline();
    if (this.outline.children.length > 0) {
      this._root.data.Outlines = this.outline.dictionary;
      return this._root.data.PageMode = this._root.data.PageMode || "UseOutlines";
    }
  }
};
var PDFStructureContent = class {
  constructor(pageRef, mcid) {
    this.refs = [{
      pageRef,
      mcid
    }];
  }
  push(structContent) {
    structContent.refs.forEach((ref) => this.refs.push(ref));
  }
};
var PDFStructureElement = class _PDFStructureElement {
  constructor(document2, type, options, children) {
    if (options === void 0) {
      options = {};
    }
    if (children === void 0) {
      children = null;
    }
    this.document = document2;
    this._attached = false;
    this._ended = false;
    this._flushed = false;
    this.dictionary = document2.ref({
      // Type: "StructElem",
      S: type
    });
    const data2 = this.dictionary.data;
    if (Array.isArray(options) || this._isValidChild(options)) {
      children = options;
      options = {};
    }
    if (typeof options.title !== "undefined") {
      data2.T = new String(options.title);
    }
    if (typeof options.lang !== "undefined") {
      data2.Lang = new String(options.lang);
    }
    if (typeof options.alt !== "undefined") {
      data2.Alt = new String(options.alt);
    }
    if (typeof options.expanded !== "undefined") {
      data2.E = new String(options.expanded);
    }
    if (typeof options.actual !== "undefined") {
      data2.ActualText = new String(options.actual);
    }
    this._children = [];
    if (children) {
      if (!Array.isArray(children)) {
        children = [children];
      }
      children.forEach((child) => this.add(child));
      this.end();
    }
  }
  add(child) {
    if (this._ended) {
      throw new Error(`Cannot add child to already-ended structure element`);
    }
    if (!this._isValidChild(child)) {
      throw new Error(`Invalid structure element child`);
    }
    if (child instanceof _PDFStructureElement) {
      child.setParent(this.dictionary);
      if (this._attached) {
        child.setAttached();
      }
    }
    if (child instanceof PDFStructureContent) {
      this._addContentToParentTree(child);
    }
    if (typeof child === "function" && this._attached) {
      child = this._contentForClosure(child);
    }
    this._children.push(child);
    return this;
  }
  _addContentToParentTree(content) {
    content.refs.forEach((_ref) => {
      let {
        pageRef,
        mcid
      } = _ref;
      const pageStructParents = this.document.getStructParentTree().get(pageRef.data.StructParents);
      pageStructParents[mcid] = this.dictionary;
    });
  }
  setParent(parentRef) {
    if (this.dictionary.data.P) {
      throw new Error(`Structure element added to more than one parent`);
    }
    this.dictionary.data.P = parentRef;
    this._flush();
  }
  setAttached() {
    if (this._attached) {
      return;
    }
    this._children.forEach((child, index2) => {
      if (child instanceof _PDFStructureElement) {
        child.setAttached();
      }
      if (typeof child === "function") {
        this._children[index2] = this._contentForClosure(child);
      }
    });
    this._attached = true;
    this._flush();
  }
  end() {
    if (this._ended) {
      return;
    }
    this._children.filter((child) => child instanceof _PDFStructureElement).forEach((child) => child.end());
    this._ended = true;
    this._flush();
  }
  _isValidChild(child) {
    return child instanceof _PDFStructureElement || child instanceof PDFStructureContent || typeof child === "function";
  }
  _contentForClosure(closure) {
    const content = this.document.markStructureContent(this.dictionary.data.S);
    closure();
    this.document.endMarkedContent();
    this._addContentToParentTree(content);
    return content;
  }
  _isFlushable() {
    if (!this.dictionary.data.P || !this._ended) {
      return false;
    }
    return this._children.every((child) => {
      if (typeof child === "function") {
        return false;
      }
      if (child instanceof _PDFStructureElement) {
        return child._isFlushable();
      }
      return true;
    });
  }
  _flush() {
    if (this._flushed || !this._isFlushable()) {
      return;
    }
    this.dictionary.data.K = [];
    this._children.forEach((child) => this._flushChild(child));
    this.dictionary.end();
    this._children = [];
    this.dictionary.data.K = null;
    this._flushed = true;
  }
  _flushChild(child) {
    if (child instanceof _PDFStructureElement) {
      this.dictionary.data.K.push(child.dictionary);
    }
    if (child instanceof PDFStructureContent) {
      child.refs.forEach((_ref2) => {
        let {
          pageRef,
          mcid
        } = _ref2;
        if (!this.dictionary.data.Pg) {
          this.dictionary.data.Pg = pageRef;
        }
        if (this.dictionary.data.Pg === pageRef) {
          this.dictionary.data.K.push(mcid);
        } else {
          this.dictionary.data.K.push({
            Type: "MCR",
            Pg: pageRef,
            MCID: mcid
          });
        }
      });
    }
  }
};
var PDFNumberTree = class extends PDFTree {
  _compareKeys(a5, b3) {
    return parseInt(a5) - parseInt(b3);
  }
  _keysName() {
    return "Nums";
  }
  _dataForKey(k3) {
    return parseInt(k3);
  }
};
var MarkingsMixin = {
  initMarkings(options) {
    this.structChildren = [];
    if (options.tagged) {
      this.getMarkInfoDictionary().data.Marked = true;
      this.getStructTreeRoot();
    }
  },
  markContent(tag, options) {
    if (options === void 0) {
      options = null;
    }
    if (tag === "Artifact" || options && options.mcid) {
      let toClose = 0;
      this.page.markings.forEach((marking) => {
        if (toClose || marking.structContent || marking.tag === "Artifact") {
          toClose++;
        }
      });
      while (toClose--) {
        this.endMarkedContent();
      }
    }
    if (!options) {
      this.page.markings.push({
        tag
      });
      this.addContent(`/${tag} BMC`);
      return this;
    }
    this.page.markings.push({
      tag,
      options
    });
    const dictionary = {};
    if (typeof options.mcid !== "undefined") {
      dictionary.MCID = options.mcid;
    }
    if (tag === "Artifact") {
      if (typeof options.type === "string") {
        dictionary.Type = options.type;
      }
      if (Array.isArray(options.bbox)) {
        dictionary.BBox = [options.bbox[0], this.page.height - options.bbox[3], options.bbox[2], this.page.height - options.bbox[1]];
      }
      if (Array.isArray(options.attached) && options.attached.every((val) => typeof val === "string")) {
        dictionary.Attached = options.attached;
      }
    }
    if (tag === "Span") {
      if (options.lang) {
        dictionary.Lang = new String(options.lang);
      }
      if (options.alt) {
        dictionary.Alt = new String(options.alt);
      }
      if (options.expanded) {
        dictionary.E = new String(options.expanded);
      }
      if (options.actual) {
        dictionary.ActualText = new String(options.actual);
      }
    }
    this.addContent(`/${tag} ${PDFObject.convert(dictionary)} BDC`);
    return this;
  },
  markStructureContent(tag, options) {
    if (options === void 0) {
      options = {};
    }
    const pageStructParents = this.getStructParentTree().get(this.page.structParentTreeKey);
    const mcid = pageStructParents.length;
    pageStructParents.push(null);
    this.markContent(tag, {
      ...options,
      mcid
    });
    const structContent = new PDFStructureContent(this.page.dictionary, mcid);
    this.page.markings.slice(-1)[0].structContent = structContent;
    return structContent;
  },
  endMarkedContent() {
    this.page.markings.pop();
    this.addContent("EMC");
    return this;
  },
  struct(type, options, children) {
    if (options === void 0) {
      options = {};
    }
    if (children === void 0) {
      children = null;
    }
    return new PDFStructureElement(this, type, options, children);
  },
  addStructure(structElem) {
    const structTreeRoot = this.getStructTreeRoot();
    structElem.setParent(structTreeRoot);
    structElem.setAttached();
    this.structChildren.push(structElem);
    if (!structTreeRoot.data.K) {
      structTreeRoot.data.K = [];
    }
    structTreeRoot.data.K.push(structElem.dictionary);
    return this;
  },
  initPageMarkings(pageMarkings) {
    pageMarkings.forEach((marking) => {
      if (marking.structContent) {
        const structContent = marking.structContent;
        const newStructContent = this.markStructureContent(marking.tag, marking.options);
        structContent.push(newStructContent);
        this.page.markings.slice(-1)[0].structContent = structContent;
      } else {
        this.markContent(marking.tag, marking.options);
      }
    });
  },
  endPageMarkings(page) {
    const pageMarkings = page.markings;
    pageMarkings.forEach(() => page.write("EMC"));
    page.markings = [];
    return pageMarkings;
  },
  getMarkInfoDictionary() {
    if (!this._root.data.MarkInfo) {
      this._root.data.MarkInfo = this.ref({});
    }
    return this._root.data.MarkInfo;
  },
  hasMarkInfoDictionary() {
    return !!this._root.data.MarkInfo;
  },
  getStructTreeRoot() {
    if (!this._root.data.StructTreeRoot) {
      this._root.data.StructTreeRoot = this.ref({
        Type: "StructTreeRoot",
        ParentTree: new PDFNumberTree(),
        ParentTreeNextKey: 0
      });
    }
    return this._root.data.StructTreeRoot;
  },
  getStructParentTree() {
    return this.getStructTreeRoot().data.ParentTree;
  },
  createStructParentTreeNextKey() {
    this.getMarkInfoDictionary();
    const structTreeRoot = this.getStructTreeRoot();
    const key = structTreeRoot.data.ParentTreeNextKey++;
    structTreeRoot.data.ParentTree.add(key, []);
    return key;
  },
  endMarkings() {
    const structTreeRoot = this._root.data.StructTreeRoot;
    if (structTreeRoot) {
      structTreeRoot.end();
      this.structChildren.forEach((structElem) => structElem.end());
    }
    if (this._root.data.MarkInfo) {
      this._root.data.MarkInfo.end();
    }
  }
};
var FIELD_FLAGS = {
  readOnly: 1,
  required: 2,
  noExport: 4,
  multiline: 4096,
  password: 8192,
  toggleToOffButton: 16384,
  radioButton: 32768,
  pushButton: 65536,
  combo: 131072,
  edit: 262144,
  sort: 524288,
  multiSelect: 2097152,
  noSpell: 4194304
};
var FIELD_JUSTIFY = {
  left: 0,
  center: 1,
  right: 2
};
var VALUE_MAP = {
  value: "V",
  defaultValue: "DV"
};
var FORMAT_SPECIAL = {
  zip: "0",
  zipPlus4: "1",
  zip4: "1",
  phone: "2",
  ssn: "3"
};
var FORMAT_DEFAULT = {
  number: {
    nDec: 0,
    sepComma: false,
    negStyle: "MinusBlack",
    currency: "",
    currencyPrepend: true
  },
  percent: {
    nDec: 0,
    sepComma: false
  }
};
var AcroFormMixin = {
  /**
   * Must call if adding AcroForms to a document. Must also call font() before
   * this method to set the default font.
   */
  initForm() {
    if (!this._font) {
      throw new Error("Must set a font before calling initForm method");
    }
    this._acroform = {
      fonts: {},
      defaultFont: this._font.name
    };
    this._acroform.fonts[this._font.id] = this._font.ref();
    let data2 = {
      Fields: [],
      NeedAppearances: true,
      DA: new String(`/${this._font.id} 0 Tf 0 g`),
      DR: {
        Font: {}
      }
    };
    data2.DR.Font[this._font.id] = this._font.ref();
    const AcroForm = this.ref(data2);
    this._root.data.AcroForm = AcroForm;
    return this;
  },
  /**
   * Called automatically by document.js
   */
  endAcroForm() {
    if (this._root.data.AcroForm) {
      if (!Object.keys(this._acroform.fonts).length && !this._acroform.defaultFont) {
        throw new Error("No fonts specified for PDF form");
      }
      let fontDict = this._root.data.AcroForm.data.DR.Font;
      Object.keys(this._acroform.fonts).forEach((name) => {
        fontDict[name] = this._acroform.fonts[name];
      });
      this._root.data.AcroForm.data.Fields.forEach((fieldRef) => {
        this._endChild(fieldRef);
      });
      this._root.data.AcroForm.end();
    }
    return this;
  },
  _endChild(ref) {
    if (Array.isArray(ref.data.Kids)) {
      ref.data.Kids.forEach((childRef) => {
        this._endChild(childRef);
      });
      ref.end();
    }
    return this;
  },
  /**
   * Creates and adds a form field to the document. Form fields are intermediate
   * nodes in a PDF form that are used to specify form name heirarchy and form
   * value defaults.
   * @param {string} name - field name (T attribute in field dictionary)
   * @param {object} options  - other attributes to include in field dictionary
   */
  formField(name, options) {
    if (options === void 0) {
      options = {};
    }
    let fieldDict = this._fieldDict(name, null, options);
    let fieldRef = this.ref(fieldDict);
    this._addToParent(fieldRef);
    return fieldRef;
  },
  /**
   * Creates and adds a Form Annotation to the document. Form annotations are
   * called Widget annotations internally within a PDF file.
   * @param {string} name - form field name (T attribute of widget annotation
   * dictionary)
   * @param {number} x
   * @param {number} y
   * @param {number} w
   * @param {number} h
   * @param {object} options
   */
  formAnnotation(name, type, x, y3, w, h4, options) {
    if (options === void 0) {
      options = {};
    }
    let fieldDict = this._fieldDict(name, type, options);
    fieldDict.Subtype = "Widget";
    if (fieldDict.F === void 0) {
      fieldDict.F = 4;
    }
    this.annotate(x, y3, w, h4, fieldDict);
    let annotRef = this.page.annotations[this.page.annotations.length - 1];
    return this._addToParent(annotRef);
  },
  formText(name, x, y3, w, h4, options) {
    if (options === void 0) {
      options = {};
    }
    return this.formAnnotation(name, "text", x, y3, w, h4, options);
  },
  formPushButton(name, x, y3, w, h4, options) {
    if (options === void 0) {
      options = {};
    }
    return this.formAnnotation(name, "pushButton", x, y3, w, h4, options);
  },
  formCombo(name, x, y3, w, h4, options) {
    if (options === void 0) {
      options = {};
    }
    return this.formAnnotation(name, "combo", x, y3, w, h4, options);
  },
  formList(name, x, y3, w, h4, options) {
    if (options === void 0) {
      options = {};
    }
    return this.formAnnotation(name, "list", x, y3, w, h4, options);
  },
  formRadioButton(name, x, y3, w, h4, options) {
    if (options === void 0) {
      options = {};
    }
    return this.formAnnotation(name, "radioButton", x, y3, w, h4, options);
  },
  formCheckbox(name, x, y3, w, h4, options) {
    if (options === void 0) {
      options = {};
    }
    return this.formAnnotation(name, "checkbox", x, y3, w, h4, options);
  },
  _addToParent(fieldRef) {
    let parent = fieldRef.data.Parent;
    if (parent) {
      if (!parent.data.Kids) {
        parent.data.Kids = [];
      }
      parent.data.Kids.push(fieldRef);
    } else {
      this._root.data.AcroForm.data.Fields.push(fieldRef);
    }
    return this;
  },
  _fieldDict(name, type, options) {
    if (options === void 0) {
      options = {};
    }
    if (!this._acroform) {
      throw new Error("Call document.initForm() method before adding form elements to document");
    }
    let opts2 = Object.assign({}, options);
    if (type !== null) {
      opts2 = this._resolveType(type, options);
    }
    opts2 = this._resolveFlags(opts2);
    opts2 = this._resolveJustify(opts2);
    opts2 = this._resolveFont(opts2);
    opts2 = this._resolveStrings(opts2);
    opts2 = this._resolveColors(opts2);
    opts2 = this._resolveFormat(opts2);
    opts2.T = new String(name);
    if (opts2.parent) {
      opts2.Parent = opts2.parent;
      delete opts2.parent;
    }
    return opts2;
  },
  _resolveType(type, opts2) {
    if (type === "text") {
      opts2.FT = "Tx";
    } else if (type === "pushButton") {
      opts2.FT = "Btn";
      opts2.pushButton = true;
    } else if (type === "radioButton") {
      opts2.FT = "Btn";
      opts2.radioButton = true;
    } else if (type === "checkbox") {
      opts2.FT = "Btn";
    } else if (type === "combo") {
      opts2.FT = "Ch";
      opts2.combo = true;
    } else if (type === "list") {
      opts2.FT = "Ch";
    } else {
      throw new Error(`Invalid form annotation type '${type}'`);
    }
    return opts2;
  },
  _resolveFormat(opts2) {
    const f4 = opts2.format;
    if (f4 && f4.type) {
      let fnKeystroke;
      let fnFormat;
      let params = "";
      if (FORMAT_SPECIAL[f4.type] !== void 0) {
        fnKeystroke = `AFSpecial_Keystroke`;
        fnFormat = `AFSpecial_Format`;
        params = FORMAT_SPECIAL[f4.type];
      } else {
        let format = f4.type.charAt(0).toUpperCase() + f4.type.slice(1);
        fnKeystroke = `AF${format}_Keystroke`;
        fnFormat = `AF${format}_Format`;
        if (f4.type === "date") {
          fnKeystroke += "Ex";
          params = String(f4.param);
        } else if (f4.type === "time") {
          params = String(f4.param);
        } else if (f4.type === "number") {
          let p3 = Object.assign({}, FORMAT_DEFAULT.number, f4);
          params = String([String(p3.nDec), p3.sepComma ? "0" : "1", '"' + p3.negStyle + '"', "null", '"' + p3.currency + '"', String(p3.currencyPrepend)].join(","));
        } else if (f4.type === "percent") {
          let p3 = Object.assign({}, FORMAT_DEFAULT.percent, f4);
          params = String([String(p3.nDec), p3.sepComma ? "0" : "1"].join(","));
        }
      }
      opts2.AA = opts2.AA ? opts2.AA : {};
      opts2.AA.K = {
        S: "JavaScript",
        JS: new String(`${fnKeystroke}(${params});`)
      };
      opts2.AA.F = {
        S: "JavaScript",
        JS: new String(`${fnFormat}(${params});`)
      };
    }
    delete opts2.format;
    return opts2;
  },
  _resolveColors(opts2) {
    let color = this._normalizeColor(opts2.backgroundColor);
    if (color) {
      if (!opts2.MK) {
        opts2.MK = {};
      }
      opts2.MK.BG = color;
    }
    color = this._normalizeColor(opts2.borderColor);
    if (color) {
      if (!opts2.MK) {
        opts2.MK = {};
      }
      opts2.MK.BC = color;
    }
    delete opts2.backgroundColor;
    delete opts2.borderColor;
    return opts2;
  },
  _resolveFlags(options) {
    let result = 0;
    Object.keys(options).forEach((key) => {
      if (FIELD_FLAGS[key]) {
        if (options[key]) {
          result |= FIELD_FLAGS[key];
        }
        delete options[key];
      }
    });
    if (result !== 0) {
      options.Ff = options.Ff ? options.Ff : 0;
      options.Ff |= result;
    }
    return options;
  },
  _resolveJustify(options) {
    let result = 0;
    if (options.align !== void 0) {
      if (typeof FIELD_JUSTIFY[options.align] === "number") {
        result = FIELD_JUSTIFY[options.align];
      }
      delete options.align;
    }
    if (result !== 0) {
      options.Q = result;
    }
    return options;
  },
  _resolveFont(options) {
    if (this._acroform.fonts[this._font.id] == null) {
      this._acroform.fonts[this._font.id] = this._font.ref();
    }
    if (this._acroform.defaultFont !== this._font.name) {
      options.DR = {
        Font: {}
      };
      const fontSize = options.fontSize || 0;
      options.DR.Font[this._font.id] = this._font.ref();
      options.DA = new String(`/${this._font.id} ${fontSize} Tf 0 g`);
    }
    return options;
  },
  _resolveStrings(options) {
    let select = [];
    function appendChoices(a5) {
      if (Array.isArray(a5)) {
        for (let idx = 0; idx < a5.length; idx++) {
          if (typeof a5[idx] === "string") {
            select.push(new String(a5[idx]));
          } else {
            select.push(a5[idx]);
          }
        }
      }
    }
    appendChoices(options.Opt);
    if (options.select) {
      appendChoices(options.select);
      delete options.select;
    }
    if (select.length) {
      options.Opt = select;
    }
    Object.keys(VALUE_MAP).forEach((key) => {
      if (options[key] !== void 0) {
        options[VALUE_MAP[key]] = options[key];
        delete options[key];
      }
    });
    ["V", "DV"].forEach((key) => {
      if (typeof options[key] === "string") {
        options[key] = new String(options[key]);
      }
    });
    if (options.MK && options.MK.CA) {
      options.MK.CA = new String(options.MK.CA);
    }
    if (options.label) {
      options.MK = options.MK ? options.MK : {};
      options.MK.CA = new String(options.label);
      delete options.label;
    }
    return options;
  }
};
var AttachmentsMixin = {
  /**
   * Embed contents of `src` in PDF
   * @param {Buffer | ArrayBuffer | string} src input Buffer, ArrayBuffer, base64 encoded string or path to file
   * @param {object} options
   *  * options.name: filename to be shown in PDF, will use `src` if none set
   *  * options.type: filetype to be shown in PDF
   *  * options.description: description to be shown in PDF
   *  * options.hidden: if true, do not add attachment to EmbeddedFiles dictionary. Useful for file attachment annotations
   *  * options.creationDate: override creation date
   *  * options.modifiedDate: override modified date
   *  * options.relationship: Relationship between the PDF document and its attached file. Can be 'Alternative', 'Data', 'Source', 'Supplement' or 'Unspecified'.
   * @returns filespec reference
   */
  file(src, options) {
    if (options === void 0) {
      options = {};
    }
    options.name = options.name || src;
    options.relationship = options.relationship || "Unspecified";
    const refBody = {
      Type: "EmbeddedFile",
      Params: {}
    };
    let data2;
    if (!src) {
      throw new Error("No src specified");
    }
    if (Buffer.isBuffer(src)) {
      data2 = src;
    } else if (src instanceof ArrayBuffer) {
      data2 = Buffer.from(new Uint8Array(src));
    } else {
      let match;
      if (match = /^data:(.*?);base64,(.*)$/.exec(src)) {
        if (match[1]) {
          refBody.Subtype = match[1].replace("/", "#2F");
        }
        data2 = Buffer.from(match[2], "base64");
      } else {
        data2 = fs4.readFileSync(src);
        if (!data2) {
          throw new Error(`Could not read contents of file at filepath ${src}`);
        }
        const {
          birthtime,
          ctime
        } = fs4.statSync(src);
        refBody.Params.CreationDate = birthtime;
        refBody.Params.ModDate = ctime;
      }
    }
    if (options.creationDate instanceof Date) {
      refBody.Params.CreationDate = options.creationDate;
    }
    if (options.modifiedDate instanceof Date) {
      refBody.Params.ModDate = options.modifiedDate;
    }
    if (options.type) {
      refBody.Subtype = options.type.replace("/", "#2F");
    }
    const checksum = import_crypto_js.default.MD5(import_crypto_js.default.lib.WordArray.create(new Uint8Array(data2)));
    refBody.Params.CheckSum = new String(checksum);
    refBody.Params.Size = data2.byteLength;
    let ref;
    if (!this._fileRegistry) this._fileRegistry = {};
    let file = this._fileRegistry[options.name];
    if (file && isEqual5(refBody, file)) {
      ref = file.ref;
    } else {
      ref = this.ref(refBody);
      ref.end(data2);
      this._fileRegistry[options.name] = {
        ...refBody,
        ref
      };
    }
    const fileSpecBody = {
      Type: "Filespec",
      AFRelationship: options.relationship,
      F: new String(options.name),
      EF: {
        F: ref
      },
      UF: new String(options.name)
    };
    if (options.description) {
      fileSpecBody.Desc = new String(options.description);
    }
    const filespec = this.ref(fileSpecBody);
    filespec.end();
    if (!options.hidden) {
      this.addNamedEmbeddedFile(options.name, filespec);
    }
    if (this._root.data.AF) {
      this._root.data.AF.push(filespec);
    } else {
      this._root.data.AF = [filespec];
    }
    return filespec;
  }
};
function isEqual5(a5, b3) {
  return a5.Subtype === b3.Subtype && a5.Params.CheckSum.toString() === b3.Params.CheckSum.toString() && a5.Params.Size === b3.Params.Size && a5.Params.CreationDate.getTime() === b3.Params.CreationDate.getTime() && (a5.Params.ModDate === void 0 && b3.Params.ModDate === void 0 || a5.Params.ModDate.getTime() === b3.Params.ModDate.getTime());
}
var PDFA = {
  initPDFA(pSubset) {
    if (pSubset.charAt(pSubset.length - 3) === "-") {
      this.subset_conformance = pSubset.charAt(pSubset.length - 1).toUpperCase();
      this.subset = parseInt(pSubset.charAt(pSubset.length - 2));
    } else {
      this.subset_conformance = "B";
      this.subset = parseInt(pSubset.charAt(pSubset.length - 1));
    }
  },
  endSubset() {
    this._addPdfaMetadata();
    this._addColorOutputIntent();
  },
  _addColorOutputIntent() {
    const iccProfile = fs4.readFileSync(`${__dirname}/data/sRGB_IEC61966_2_1.icc`);
    const colorProfileRef = this.ref({
      Length: iccProfile.length,
      N: 3
    });
    colorProfileRef.write(iccProfile);
    colorProfileRef.end();
    const intentRef = this.ref({
      Type: "OutputIntent",
      S: "GTS_PDFA1",
      Info: new String("sRGB IEC61966-2.1"),
      OutputConditionIdentifier: new String("sRGB IEC61966-2.1"),
      DestOutputProfile: colorProfileRef
    });
    intentRef.end();
    this._root.data.OutputIntents = [intentRef];
  },
  _getPdfaid() {
    return `
        <rdf:Description xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/" rdf:about="">
            <pdfaid:part>${this.subset}</pdfaid:part>
            <pdfaid:conformance>${this.subset_conformance}</pdfaid:conformance>
        </rdf:Description>
        `;
  },
  _addPdfaMetadata() {
    this.appendXML(this._getPdfaid());
  }
};
var PDFUA = {
  initPDFUA() {
    this.subset = 1;
  },
  endSubset() {
    this._addPdfuaMetadata();
  },
  _addPdfuaMetadata() {
    this.appendXML(this._getPdfuaid());
  },
  _getPdfuaid() {
    return `
        <rdf:Description xmlns:pdfuaid="http://www.aiim.org/pdfua/ns/id/" rdf:about="">
            <pdfuaid:part>${this.subset}</pdfuaid:part>
        </rdf:Description>
        `;
  }
};
var SubsetMixin = {
  _importSubset(subset) {
    Object.assign(this, subset);
  },
  initSubset(options) {
    switch (options.subset) {
      case "PDF/A-1":
      case "PDF/A-1a":
      case "PDF/A-1b":
      case "PDF/A-2":
      case "PDF/A-2a":
      case "PDF/A-2b":
      case "PDF/A-3":
      case "PDF/A-3a":
      case "PDF/A-3b":
        this._importSubset(PDFA);
        this.initPDFA(options.subset);
        break;
      case "PDF/UA":
        this._importSubset(PDFUA);
        this.initPDFUA();
        break;
    }
  }
};
var PDFMetadata = class {
  constructor() {
    this._metadata = `
        <?xpacket begin="\uFEFF" id="W5M0MpCehiHzreSzNTczkc9d"?>
            <x:xmpmeta xmlns:x="adobe:ns:meta/">
                <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        `;
  }
  _closeTags() {
    this._metadata = this._metadata.concat(`
                </rdf:RDF>
            </x:xmpmeta>
        <?xpacket end="w"?>
        `);
  }
  append(xml, newline) {
    if (newline === void 0) {
      newline = true;
    }
    this._metadata = this._metadata.concat(xml);
    if (newline) this._metadata = this._metadata.concat("\n");
  }
  getXML() {
    return this._metadata;
  }
  getLength() {
    return this._metadata.length;
  }
  end() {
    this._closeTags();
    this._metadata = this._metadata.trim();
  }
};
var MetadataMixin = {
  initMetadata() {
    this.metadata = new PDFMetadata();
  },
  appendXML(xml, newline) {
    if (newline === void 0) {
      newline = true;
    }
    this.metadata.append(xml, newline);
  },
  _addInfo() {
    this.appendXML(`
        <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
            <xmp:CreateDate>${this.info.CreationDate.toISOString().split(".")[0] + "Z"}</xmp:CreateDate>
            <xmp:CreatorTool>${this.info.Creator}</xmp:CreatorTool>
        </rdf:Description>
        `);
    if (this.info.Title || this.info.Author || this.info.Subject) {
      this.appendXML(`
            <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
            `);
      if (this.info.Title) {
        this.appendXML(`
                <dc:title>
                    <rdf:Alt>
                        <rdf:li xml:lang="x-default">${this.info.Title}</rdf:li>
                    </rdf:Alt>
                </dc:title>
                `);
      }
      if (this.info.Author) {
        this.appendXML(`
                <dc:creator>
                    <rdf:Seq>
                        <rdf:li>${this.info.Author}</rdf:li>
                    </rdf:Seq>
                </dc:creator>
                `);
      }
      if (this.info.Subject) {
        this.appendXML(`
                <dc:description>
                    <rdf:Alt>
                        <rdf:li xml:lang="x-default">${this.info.Subject}</rdf:li>
                    </rdf:Alt>
                </dc:description>
                `);
      }
      this.appendXML(`
            </rdf:Description>
            `);
    }
    this.appendXML(`
        <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
            <pdf:Producer>${this.info.Creator}</pdf:Producer>`, false);
    if (this.info.Keywords) {
      this.appendXML(`
            <pdf:Keywords>${this.info.Keywords}</pdf:Keywords>`, false);
    }
    this.appendXML(`
        </rdf:Description>
        `);
  },
  endMetadata() {
    this._addInfo();
    this.metadata.end();
    if (this.version != 1.3) {
      this.metadataRef = this.ref({
        length: this.metadata.getLength(),
        Type: "Metadata",
        Subtype: "XML"
      });
      this.metadataRef.compress = false;
      this.metadataRef.write(Buffer.from(this.metadata.getXML(), "utf-8"));
      this.metadataRef.end();
      this._root.data.Metadata = this.metadataRef;
    }
  }
};
var PDFDocument = class extends stream6.Readable {
  constructor(options) {
    if (options === void 0) {
      options = {};
    }
    super(options);
    this.options = options;
    switch (options.pdfVersion) {
      case "1.4":
        this.version = 1.4;
        break;
      case "1.5":
        this.version = 1.5;
        break;
      case "1.6":
        this.version = 1.6;
        break;
      case "1.7":
      case "1.7ext3":
        this.version = 1.7;
        break;
      default:
        this.version = 1.3;
        break;
    }
    this.compress = this.options.compress != null ? this.options.compress : true;
    this._pageBuffer = [];
    this._pageBufferStart = 0;
    this._offsets = [];
    this._waiting = 0;
    this._ended = false;
    this._offset = 0;
    const Pages = this.ref({
      Type: "Pages",
      Count: 0,
      Kids: []
    });
    const Names = this.ref({
      Dests: new PDFNameTree()
    });
    this._root = this.ref({
      Type: "Catalog",
      Pages,
      Names
    });
    if (this.options.lang) {
      this._root.data.Lang = new String(this.options.lang);
    }
    this.page = null;
    this.initMetadata();
    this.initColor();
    this.initVector();
    this.initFonts(options.font);
    this.initText();
    this.initImages();
    this.initOutline();
    this.initMarkings(options);
    this.initSubset(options);
    this.info = {
      Producer: "PDFKit",
      Creator: "PDFKit",
      CreationDate: /* @__PURE__ */ new Date()
    };
    if (this.options.info) {
      for (let key in this.options.info) {
        const val = this.options.info[key];
        this.info[key] = val;
      }
    }
    if (this.options.displayTitle) {
      this._root.data.ViewerPreferences = this.ref({
        DisplayDocTitle: true
      });
    }
    this._id = PDFSecurity.generateFileID(this.info);
    this._write(`%PDF-${this.version}`);
    this._write("%\xFF\xFF\xFF\xFF");
    if (this.options.autoFirstPage !== false) {
      this.addPage();
    }
  }
  addPage(options) {
    if (options == null) {
      ({
        options
      } = this);
    }
    if (!this.options.bufferPages) {
      this.flushPages();
    }
    this.page = new PDFPage(this, options);
    this._pageBuffer.push(this.page);
    const pages = this._root.data.Pages.data;
    pages.Kids.push(this.page.dictionary);
    pages.Count++;
    this.x = this.page.margins.left;
    this.y = this.page.margins.top;
    this._ctm = [1, 0, 0, 1, 0, 0];
    this.transform(1, 0, 0, -1, 0, this.page.height);
    this.emit("pageAdded");
    return this;
  }
  continueOnNewPage(options) {
    const pageMarkings = this.endPageMarkings(this.page);
    this.addPage(options !== null && options !== void 0 ? options : this.page._options);
    this.initPageMarkings(pageMarkings);
    return this;
  }
  bufferedPageRange() {
    return {
      start: this._pageBufferStart,
      count: this._pageBuffer.length
    };
  }
  switchToPage(n6) {
    let page;
    if (!(page = this._pageBuffer[n6 - this._pageBufferStart])) {
      throw new Error(`switchToPage(${n6}) out of bounds, current buffer covers pages ${this._pageBufferStart} to ${this._pageBufferStart + this._pageBuffer.length - 1}`);
    }
    return this.page = page;
  }
  flushPages() {
    const pages = this._pageBuffer;
    this._pageBuffer = [];
    this._pageBufferStart += pages.length;
    for (let page of pages) {
      this.endPageMarkings(page);
      page.end();
    }
  }
  addNamedDestination(name) {
    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
      args[_key - 1] = arguments[_key];
    }
    if (args.length === 0) {
      args = ["XYZ", null, null, null];
    }
    if (args[0] === "XYZ" && args[2] !== null) {
      args[2] = this.page.height - args[2];
    }
    args.unshift(this.page.dictionary);
    this._root.data.Names.data.Dests.add(name, args);
  }
  addNamedEmbeddedFile(name, ref) {
    if (!this._root.data.Names.data.EmbeddedFiles) {
      this._root.data.Names.data.EmbeddedFiles = new PDFNameTree({
        limits: false
      });
    }
    this._root.data.Names.data.EmbeddedFiles.add(name, ref);
  }
  addNamedJavaScript(name, js) {
    if (!this._root.data.Names.data.JavaScript) {
      this._root.data.Names.data.JavaScript = new PDFNameTree();
    }
    let data2 = {
      JS: new String(js),
      S: "JavaScript"
    };
    this._root.data.Names.data.JavaScript.add(name, data2);
  }
  ref(data2) {
    const ref = new PDFReference(this, this._offsets.length + 1, data2);
    this._offsets.push(null);
    this._waiting++;
    return ref;
  }
  _read() {
  }
  // do nothing, but this method is required by node
  _write(data2) {
    if (!Buffer.isBuffer(data2)) {
      data2 = Buffer.from(data2 + "\n", "binary");
    }
    this.push(data2);
    return this._offset += data2.length;
  }
  addContent(data2) {
    this.page.write(data2);
    return this;
  }
  _refEnd(ref) {
    this._offsets[ref.id - 1] = ref.offset;
    if (--this._waiting === 0 && this._ended) {
      this._finalize();
      return this._ended = false;
    }
  }
  end() {
    this.flushPages();
    this._info = this.ref();
    for (let key in this.info) {
      let val = this.info[key];
      if (typeof val === "string") {
        val = new String(val);
      }
      let entry = this.ref(val);
      entry.end();
      this._info.data[key] = entry;
    }
    this._info.end();
    for (let name in this._fontFamilies) {
      const font = this._fontFamilies[name];
      font.finalize();
    }
    this.endOutline();
    this.endMarkings();
    if (this.subset) {
      this.endSubset();
    }
    this.endMetadata();
    this._root.end();
    this._root.data.Pages.end();
    this._root.data.Names.end();
    this.endAcroForm();
    if (this._root.data.ViewerPreferences) {
      this._root.data.ViewerPreferences.end();
    }
    if (this._security) {
      this._security.end();
    }
    if (this._waiting === 0) {
      return this._finalize();
    } else {
      return this._ended = true;
    }
  }
  _finalize() {
    const xRefOffset = this._offset;
    this._write("xref");
    this._write(`0 ${this._offsets.length + 1}`);
    this._write("0000000000 65535 f ");
    for (let offset2 of this._offsets) {
      offset2 = `0000000000${offset2}`.slice(-10);
      this._write(offset2 + " 00000 n ");
    }
    const trailer = {
      Size: this._offsets.length + 1,
      Root: this._root,
      Info: this._info,
      ID: [this._id, this._id]
    };
    if (this._security) {
      trailer.Encrypt = this._security.dictionary;
    }
    this._write("trailer");
    this._write(PDFObject.convert(trailer));
    this._write("startxref");
    this._write(`${xRefOffset}`);
    this._write("%%EOF");
    return this.push(null);
  }
  toString() {
    return "[object PDFDocument]";
  }
};
var mixin = (methods) => {
  Object.assign(PDFDocument.prototype, methods);
};
mixin(MetadataMixin);
mixin(ColorMixin);
mixin(VectorMixin);
mixin(FontsMixin);
mixin(TextMixin);
mixin(ImagesMixin);
mixin(AnnotationsMixin);
mixin(OutlineMixin);
mixin(MarkingsMixin);
mixin(AcroFormMixin);
mixin(AttachmentsMixin);
mixin(SubsetMixin);
PDFDocument.LineWrapper = LineWrapper;

// ../../node_modules/.pnpm/@react-pdf+font@4.0.4/node_modules/@react-pdf/font/lib/index.js
var STANDARD_FONTS2 = [
  "Courier",
  "Courier-Bold",
  "Courier-Oblique",
  "Courier-BoldOblique",
  "Helvetica",
  "Helvetica-Bold",
  "Helvetica-Oblique",
  "Helvetica-BoldOblique",
  "Times-Roman",
  "Times-Bold",
  "Times-Italic",
  "Times-BoldItalic"
];
var StandardFont2 = class {
  name;
  src;
  fullName;
  familyName;
  subfamilyName;
  postscriptName;
  copyright;
  version;
  underlinePosition;
  underlineThickness;
  italicAngle;
  bbox;
  "OS/2";
  hhea;
  numGlyphs;
  characterSet;
  availableFeatures;
  type;
  constructor(src) {
    this.name = src;
    this.fullName = src;
    this.familyName = src;
    this.subfamilyName = src;
    this.type = "STANDARD";
    this.postscriptName = src;
    this.availableFeatures = [];
    this.copyright = "";
    this.version = 1;
    this.underlinePosition = -100;
    this.underlineThickness = 50;
    this.italicAngle = 0;
    this.bbox = {};
    this["OS/2"] = {};
    this.hhea = {};
    this.numGlyphs = 0;
    this.characterSet = [];
    this.src = PDFFont.open(null, src);
  }
  encode(str) {
    return this.src.encode(str);
  }
  layout(str) {
    const [encoded, positions] = this.encode(str);
    const glyphs = encoded.map((g3, i5) => {
      const glyph = this.getGlyph(parseInt(g3, 16));
      glyph.advanceWidth = positions[i5].advanceWidth;
      return glyph;
    });
    const advanceWidth2 = positions.reduce((acc, p3) => acc + p3.advanceWidth, 0);
    return {
      positions,
      stringIndices: positions.map((_, i5) => i5),
      glyphs,
      script: "latin",
      language: "dflt",
      direction: "ltr",
      features: {},
      advanceWidth: advanceWidth2,
      advanceHeight: 0,
      bbox: void 0
    };
  }
  glyphForCodePoint(codePoint) {
    const glyph = this.getGlyph(codePoint);
    glyph.advanceWidth = 400;
    return glyph;
  }
  getGlyph(id) {
    return {
      id,
      codePoints: [id],
      isLigature: false,
      name: this.src.font.characterToGlyph(id),
      _font: this.src,
      // @ts-expect-error assign proper value
      advanceWidth: void 0
    };
  }
  hasGlyphForCodePoint(codePoint) {
    return this.src.font.characterToGlyph(codePoint) !== ".notdef";
  }
  // Based on empirical observation
  get ascent() {
    return 900;
  }
  // Based on empirical observation
  get capHeight() {
    switch (this.name) {
      case "Times-Roman":
      case "Times-Bold":
      case "Times-Italic":
      case "Times-BoldItalic":
        return 650;
      case "Courier":
      case "Courier-Bold":
      case "Courier-Oblique":
      case "Courier-BoldOblique":
        return 550;
      default:
        return 690;
    }
  }
  // Based on empirical observation
  get xHeight() {
    switch (this.name) {
      case "Times-Roman":
      case "Times-Bold":
      case "Times-Italic":
      case "Times-BoldItalic":
        return 440;
      case "Courier":
      case "Courier-Bold":
      case "Courier-Oblique":
      case "Courier-BoldOblique":
        return 390;
      default:
        return 490;
    }
  }
  // Based on empirical observation
  get descent() {
    switch (this.name) {
      case "Times-Roman":
      case "Times-Bold":
      case "Times-Italic":
      case "Times-BoldItalic":
        return -220;
      case "Courier":
      case "Courier-Bold":
      case "Courier-Oblique":
      case "Courier-BoldOblique":
        return -230;
      default:
        return -200;
    }
  }
  get lineGap() {
    return 0;
  }
  get unitsPerEm() {
    return 1e3;
  }
  stringsForGlyph() {
    throw new Error("Method not implemented.");
  }
  glyphsForString() {
    throw new Error("Method not implemented.");
  }
  widthOfGlyph() {
    throw new Error("Method not implemented.");
  }
  getAvailableFeatures() {
    throw new Error("Method not implemented.");
  }
  createSubset() {
    throw new Error("Method not implemented.");
  }
  getVariation() {
    throw new Error("Method not implemented.");
  }
  getFont() {
    throw new Error("Method not implemented.");
  }
  getName() {
    throw new Error("Method not implemented.");
  }
  setDefaultLanguage() {
    throw new Error("Method not implemented.");
  }
};
var fetchFont = async (src, options) => {
  const response = await fetch(src, options);
  const data2 = await response.arrayBuffer();
  return new Uint8Array(data2);
};
var isDataUrl = (dataUrl) => {
  const header = dataUrl.split(",")[0];
  const hasDataPrefix = header.substring(0, 5) === "data:";
  const hasBase64Prefix = header.split(";")[1] === "base64";
  return hasDataPrefix && hasBase64Prefix;
};
var FontSource = class {
  src;
  fontFamily;
  fontStyle;
  fontWeight;
  data;
  options;
  loadResultPromise;
  constructor(src, fontFamily, fontStyle, fontWeight, options) {
    this.src = src;
    this.fontFamily = fontFamily;
    this.fontStyle = fontStyle || "normal";
    this.fontWeight = fontWeight || 400;
    this.data = null;
    this.options = options || {};
    this.loadResultPromise = null;
  }
  async _load() {
    const { postscriptName } = this.options;
    let data2 = null;
    if (STANDARD_FONTS2.includes(this.src)) {
      data2 = new StandardFont2(this.src);
    } else if (isDataUrl(this.src)) {
      const raw = this.src.split(",")[1];
      const uint8Array = new Uint8Array(atob(raw).split("").map((c6) => c6.charCodeAt(0)));
      data2 = $d636bc798e7178db$export$185802fd694ee1f5(uint8Array, postscriptName);
    } else if ((0, import_is_url.default)(this.src)) {
      const { headers, body, method = "GET" } = this.options;
      const buffer = await fetchFont(this.src, { method, body, headers });
      data2 = $d636bc798e7178db$export$185802fd694ee1f5(buffer, postscriptName);
    } else {
      data2 = await $b422b1e013cd6010$export$3ce6949f20cea765(this.src, postscriptName);
    }
    if (data2 && "fonts" in data2) {
      throw new Error("Font collection is not supported");
    }
    this.data = data2;
  }
  async load() {
    if (this.loadResultPromise === null) {
      this.loadResultPromise = this._load();
    }
    return this.loadResultPromise;
  }
};
var FONT_WEIGHTS = {
  thin: 100,
  hairline: 100,
  ultralight: 200,
  extralight: 200,
  light: 300,
  normal: 400,
  medium: 500,
  semibold: 600,
  demibold: 600,
  bold: 700,
  ultrabold: 800,
  extrabold: 800,
  heavy: 900,
  black: 900
};
var resolveFontWeight = (value2) => {
  return typeof value2 === "string" ? FONT_WEIGHTS[value2] : value2;
};
var sortByFontWeight = (a5, b3) => a5.fontWeight - b3.fontWeight;
var FontFamily = class _FontFamily {
  family;
  sources;
  static create(family) {
    return new _FontFamily(family);
  }
  constructor(family) {
    this.family = family;
    this.sources = [];
  }
  register({ src, fontWeight, fontStyle, ...options }) {
    const numericFontWeight = fontWeight ? resolveFontWeight(fontWeight) : void 0;
    this.sources.push(new FontSource(src, this.family, fontStyle, numericFontWeight, options));
  }
  resolve(descriptor) {
    const { fontWeight = 400, fontStyle = "normal" } = descriptor;
    const styleSources = this.sources.filter((s4) => s4.fontStyle === fontStyle);
    const exactFit = styleSources.find((s4) => s4.fontWeight === fontWeight);
    if (exactFit)
      return exactFit;
    let font = null;
    const numericFontWeight = resolveFontWeight(fontWeight);
    if (numericFontWeight >= 400 && numericFontWeight <= 500) {
      const leftOffset = styleSources.filter((s4) => s4.fontWeight <= numericFontWeight);
      const rightOffset = styleSources.filter((s4) => s4.fontWeight > 500);
      const fit = styleSources.filter((s4) => s4.fontWeight >= numericFontWeight && s4.fontWeight < 500);
      font = fit[0] || leftOffset[leftOffset.length - 1] || rightOffset[0];
    }
    const lt = styleSources.filter((s4) => s4.fontWeight < numericFontWeight).sort(sortByFontWeight);
    const gt = styleSources.filter((s4) => s4.fontWeight > numericFontWeight).sort(sortByFontWeight);
    if (numericFontWeight < 400) {
      font = lt[lt.length - 1] || gt[0];
    }
    if (numericFontWeight > 500) {
      font = gt[0] || lt[lt.length - 1];
    }
    if (!font) {
      throw new Error(`Could not resolve font for ${this.family}, fontWeight ${fontWeight}, fontStyle ${fontStyle}`);
    }
    return font;
  }
};
var FontStore = class {
  fontFamilies = {};
  emojiSource = null;
  constructor() {
    this.register({
      family: "Helvetica",
      fonts: [
        { src: "Helvetica", fontStyle: "normal", fontWeight: 400 },
        { src: "Helvetica-Bold", fontStyle: "normal", fontWeight: 700 },
        { src: "Helvetica-Oblique", fontStyle: "italic", fontWeight: 400 },
        { src: "Helvetica-BoldOblique", fontStyle: "italic", fontWeight: 700 }
      ]
    });
    this.register({
      family: "Courier",
      fonts: [
        { src: "Courier", fontStyle: "normal", fontWeight: 400 },
        { src: "Courier-Bold", fontStyle: "normal", fontWeight: 700 },
        { src: "Courier-Oblique", fontStyle: "italic", fontWeight: 400 },
        { src: "Courier-BoldOblique", fontStyle: "italic", fontWeight: 700 }
      ]
    });
    this.register({
      family: "Times-Roman",
      fonts: [
        { src: "Times-Roman", fontStyle: "normal", fontWeight: 400 },
        { src: "Times-Bold", fontStyle: "normal", fontWeight: 700 },
        { src: "Times-Italic", fontStyle: "italic", fontWeight: 400 },
        { src: "Times-BoldItalic", fontStyle: "italic", fontWeight: 700 }
      ]
    });
    this.register({
      family: "Helvetica-Bold",
      src: "Helvetica-Bold"
    });
    this.register({
      family: "Helvetica-Oblique",
      src: "Helvetica-Oblique"
    });
    this.register({
      family: "Helvetica-BoldOblique",
      src: "Helvetica-BoldOblique"
    });
    this.register({
      family: "Courier-Bold",
      src: "Courier-Bold"
    });
    this.register({
      family: "Courier-Oblique",
      src: "Courier-Oblique"
    });
    this.register({
      family: "Courier-BoldOblique",
      src: "Courier-BoldOblique"
    });
    this.register({
      family: "Times-Bold",
      src: "Times-Bold"
    });
    this.register({
      family: "Times-Italic",
      src: "Times-Italic"
    });
    this.register({
      family: "Times-BoldItalic",
      src: "Times-BoldItalic"
    });
    this.load({
      fontFamily: "Helvetica",
      fontStyle: "normal",
      fontWeight: 400
    });
    this.load({
      fontFamily: "Helvetica",
      fontStyle: "normal",
      fontWeight: 700
    });
    this.load({
      fontFamily: "Helvetica",
      fontStyle: "italic",
      fontWeight: 400
    });
    this.load({
      fontFamily: "Helvetica",
      fontStyle: "italic",
      fontWeight: 700
    });
  }
  hyphenationCallback = null;
  register = (data2) => {
    const { family } = data2;
    if (!this.fontFamilies[family]) {
      this.fontFamilies[family] = FontFamily.create(family);
    }
    if ("fonts" in data2) {
      for (let i5 = 0; i5 < data2.fonts.length; i5 += 1) {
        const { src, fontStyle, fontWeight, ...options } = data2.fonts[i5];
        this.fontFamilies[family].register({
          src,
          fontStyle,
          fontWeight,
          ...options
        });
      }
    } else {
      const { src, fontStyle, fontWeight, ...options } = data2;
      this.fontFamilies[family].register({
        src,
        fontStyle,
        fontWeight,
        ...options
      });
    }
  };
  registerEmojiSource = (emojiSource) => {
    this.emojiSource = emojiSource;
  };
  registerHyphenationCallback = (callback) => {
    this.hyphenationCallback = callback;
  };
  getFont = (descriptor) => {
    const { fontFamily } = descriptor;
    if (!this.fontFamilies[fontFamily]) {
      throw new Error(`Font family not registered: ${fontFamily}. Please register it calling Font.register() method.`);
    }
    return this.fontFamilies[fontFamily].resolve(descriptor);
  };
  load = async (descriptor) => {
    const font = this.getFont(descriptor);
    if (font)
      await font.load();
  };
  reset = () => {
    const keys2 = Object.keys(this.fontFamilies);
    for (let i5 = 0; i5 < keys2.length; i5 += 1) {
      const key = keys2[i5];
      for (let j = 0; j < this.fontFamilies[key].sources.length; j++) {
        const fontSource = this.fontFamilies[key].sources[j];
        fontSource.data = null;
      }
    }
  };
  clear = () => {
    this.fontFamilies = {};
  };
  getRegisteredFonts = () => this.fontFamilies;
  getEmojiSource = () => this.emojiSource;
  getHyphenationCallback = () => this.hyphenationCallback;
  getRegisteredFontFamilies = () => Object.keys(this.fontFamilies);
};

// ../../node_modules/.pnpm/@react-pdf+fns@3.1.2/node_modules/@react-pdf/fns/lib/index.js
var adjust = (index2, fn, collection) => {
  if (index2 >= 0 && index2 >= collection.length)
    return collection;
  if (index2 < 0 && Math.abs(index2) > collection.length)
    return collection;
  const i5 = index2 < 0 ? collection.length + index2 : index2;
  return Object.assign([], collection, { [i5]: fn(collection[i5]) });
};
var asyncCompose = (...fns) => async (value2, ...args) => {
  let result = value2;
  const reversedFns = fns.slice().reverse();
  for (let i5 = 0; i5 < reversedFns.length; i5 += 1) {
    const fn = reversedFns[i5];
    result = await fn(result, ...args);
  }
  return result;
};
var capitalize = (value2) => {
  if (!value2)
    return value2;
  return value2.replace(/(^|\s)\S/g, (l4) => l4.toUpperCase());
};
var castArray = (value2) => {
  return Array.isArray(value2) ? value2 : [value2];
};
var compose = (...fns) => (value2, ...args) => {
  let result = value2;
  const reversedFns = fns.slice().reverse();
  for (let i5 = 0; i5 < reversedFns.length; i5 += 1) {
    const fn = reversedFns[i5];
    result = fn(result, ...args);
  }
  return result;
};
var dropLast = (array) => array.slice(0, array.length - 1);
function evolve(transformations, object) {
  const result = {};
  const keys2 = Object.keys(object);
  for (let i5 = 0; i5 < keys2.length; i5 += 1) {
    const key = keys2[i5];
    const transformation = transformations[key];
    if (typeof transformation === "function") {
      result[key] = transformation(object[key]);
    } else {
      result[key] = object[key];
    }
  }
  return result;
}
var isNil = (value2) => value2 === null || value2 === void 0;
function last(value2) {
  return value2 === "" ? "" : value2[value2.length - 1];
}
var mapValues = (object, fn) => {
  const entries3 = Object.entries(object);
  const acc = {};
  return entries3.reduce((acc2, [key, value2], index2) => {
    acc2[key] = fn(value2, key, index2);
    return acc2;
  }, acc);
};
var isPercent = (value2) => /((-)?\d+\.?\d*)%/g.exec(`${value2}`);
var matchPercent = (value2) => {
  const match = isPercent(value2);
  if (match) {
    const f4 = parseFloat(match[1]);
    const percent = f4 / 100;
    return { percent, value: f4 };
  }
  return null;
};
var omit = (keys2, object) => {
  const _keys = castArray(keys2);
  const copy2 = Object.assign({}, object);
  _keys.forEach((key) => {
    delete copy2[key];
  });
  return copy2;
};
var pick = (keys2, obj) => {
  const result = {};
  for (let i5 = 0; i5 < keys2.length; i5 += 1) {
    const key = keys2[i5];
    if (key in obj)
      result[key] = obj[key];
  }
  return result;
};
var repeat = (element, length2 = 0) => {
  const result = new Array(length2);
  for (let i5 = 0; i5 < length2; i5 += 1) {
    result[i5] = element;
  }
  return result;
};
var reverse = (list) => Array.prototype.slice.call(list, 0).reverse();
var upperFirst = (value2) => {
  if (!value2)
    return value2;
  return value2.charAt(0).toUpperCase() + value2.slice(1);
};
var without = (keys2, array) => {
  const result = [];
  for (let i5 = 0; i5 < array.length; i5 += 1) {
    const value2 = array[i5];
    if (!keys2.includes(value2))
      result.push(value2);
  }
  return result;
};
var parseFloat$1 = (value2) => {
  return typeof value2 === "string" ? Number.parseFloat(value2) : value2;
};

// ../../node_modules/.pnpm/@react-pdf+render@4.3.2/node_modules/@react-pdf/render/lib/index.js
var import_abs_svg_path = __toESM(require_abs_svg_path(), 1);
var import_parse_svg_path = __toESM(require_parse_svg_path(), 1);

// ../../node_modules/.pnpm/normalize-svg-path@1.1.0/node_modules/normalize-svg-path/index.mjs
var import_svg_arc_to_cubic_bezier = __toESM(require_cjs17(), 1);
function normalize(path3) {
  var prev;
  var result = [];
  var bezierX = 0;
  var bezierY = 0;
  var startX = 0;
  var startY = 0;
  var quadX = null;
  var quadY = null;
  var x = 0;
  var y3 = 0;
  for (var i5 = 0, len = path3.length; i5 < len; i5++) {
    var seg = path3[i5];
    var command = seg[0];
    switch (command) {
      case "M":
        startX = seg[1];
        startY = seg[2];
        break;
      case "A":
        var curves = (0, import_svg_arc_to_cubic_bezier.default)({
          px: x,
          py: y3,
          cx: seg[6],
          cy: seg[7],
          rx: seg[1],
          ry: seg[2],
          xAxisRotation: seg[3],
          largeArcFlag: seg[4],
          sweepFlag: seg[5]
        });
        if (!curves.length) continue;
        for (var j = 0, c6; j < curves.length; j++) {
          c6 = curves[j];
          seg = ["C", c6.x1, c6.y1, c6.x2, c6.y2, c6.x, c6.y];
          if (j < curves.length - 1) result.push(seg);
        }
        break;
      case "S":
        var cx2 = x;
        var cy2 = y3;
        if (prev == "C" || prev == "S") {
          cx2 += cx2 - bezierX;
          cy2 += cy2 - bezierY;
        }
        seg = ["C", cx2, cy2, seg[1], seg[2], seg[3], seg[4]];
        break;
      case "T":
        if (prev == "Q" || prev == "T") {
          quadX = x * 2 - quadX;
          quadY = y3 * 2 - quadY;
        } else {
          quadX = x;
          quadY = y3;
        }
        seg = quadratic(x, y3, quadX, quadY, seg[1], seg[2]);
        break;
      case "Q":
        quadX = seg[1];
        quadY = seg[2];
        seg = quadratic(x, y3, seg[1], seg[2], seg[3], seg[4]);
        break;
      case "L":
        seg = line(x, y3, seg[1], seg[2]);
        break;
      case "H":
        seg = line(x, y3, seg[1], y3);
        break;
      case "V":
        seg = line(x, y3, x, seg[1]);
        break;
      case "Z":
        seg = line(x, y3, startX, startY);
        break;
    }
    prev = command;
    x = seg[seg.length - 2];
    y3 = seg[seg.length - 1];
    if (seg.length > 4) {
      bezierX = seg[seg.length - 4];
      bezierY = seg[seg.length - 3];
    } else {
      bezierX = x;
      bezierY = y3;
    }
    result.push(seg);
  }
  return result;
}
function line(x1, y1, x2, y22) {
  return ["C", x1, y1, x2, y22, x2, y22];
}
function quadratic(x1, y1, cx2, cy2, x2, y22) {
  return [
    "C",
    x1 / 3 + 2 / 3 * cx2,
    y1 / 3 + 2 / 3 * cy2,
    x2 / 3 + 2 / 3 * cx2,
    y22 / 3 + 2 / 3 * cy2,
    x2,
    y22
  ];
}

// ../../node_modules/.pnpm/@react-pdf+render@4.3.2/node_modules/@react-pdf/render/lib/index.js
var import_color_string = __toESM(require_color_string(), 1);
var renderPath = (ctx, node) => {
  const d3 = node.props?.d;
  if (d3)
    ctx.path(node.props.d);
};
var KAPPA$3 = 4 * ((Math.sqrt(2) - 1) / 3);
var renderRect = (ctx, node) => {
  const x = node.props?.x || 0;
  const y3 = node.props?.y || 0;
  const rx = node.props?.rx || 0;
  const ry = node.props?.ry || 0;
  const width = node.props?.width || 0;
  const height2 = node.props?.height || 0;
  if (!width || !height2)
    return;
  if (rx && ry) {
    const krx = rx * KAPPA$3;
    const kry = ry * KAPPA$3;
    ctx.moveTo(x + rx, y3);
    ctx.lineTo(x - rx + width, y3);
    ctx.bezierCurveTo(x - rx + width + krx, y3, x + width, y3 + ry - kry, x + width, y3 + ry);
    ctx.lineTo(x + width, y3 + height2 - ry);
    ctx.bezierCurveTo(x + width, y3 + height2 - ry + kry, x - rx + width + krx, y3 + height2, x - rx + width, y3 + height2);
    ctx.lineTo(x + rx, y3 + height2);
    ctx.bezierCurveTo(x + rx - krx, y3 + height2, x, y3 + height2 - ry + kry, x, y3 + height2 - ry);
    ctx.lineTo(x, y3 + ry);
    ctx.bezierCurveTo(x, y3 + ry - kry, x + rx - krx, y3, x + rx, y3);
  } else {
    ctx.moveTo(x, y3);
    ctx.lineTo(x + width, y3);
    ctx.lineTo(x + width, y3 + height2);
    ctx.lineTo(x, y3 + height2);
  }
  ctx.closePath();
};
var renderLine$1 = (ctx, node) => {
  const { x1, x2, y1, y2: y22 } = node.props || {};
  ctx.moveTo(x1, y1);
  ctx.lineTo(x2, y22);
};
var renderGroup = () => {
};
var KAPPA$2 = 4 * ((Math.sqrt(2) - 1) / 3);
var drawEllipse = (ctx, rx, ry, cx2 = 0, cy2 = 0) => {
  const x = cx2 - rx;
  const y3 = cy2 - ry;
  const ox = rx * KAPPA$2;
  const oy = ry * KAPPA$2;
  const xe = x + rx * 2;
  const ye = y3 + ry * 2;
  const xm = x + rx;
  const ym = y3 + ry;
  ctx.moveTo(x, ym);
  ctx.bezierCurveTo(x, ym - oy, xm - ox, y3, xm, y3);
  ctx.bezierCurveTo(xm + ox, y3, xe, ym - oy, xe, ym);
  ctx.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);
  ctx.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);
  ctx.closePath();
};
var renderEllipse = (ctx, node) => {
  const { cx: cx2, cy: cy2, rx, ry } = node.props || {};
  drawEllipse(ctx, rx, ry, cx2, cy2);
};
var renderCircle = (ctx, node) => {
  const cx2 = node.props?.cx;
  const cy2 = node.props?.cy;
  const r4 = node.props?.r;
  drawEllipse(ctx, r4, r4, cx2, cy2);
};
var number2 = (n6) => {
  if (n6 > -1e21 && n6 < 1e21) {
    return Math.round(n6 * 1e6) / 1e6;
  }
  throw new Error(`unsupported number: ${n6}`);
};
var _renderGlyphs = (ctx, encoded, positions, x, y3) => {
  const commands = [];
  const scale2 = ctx._fontSize / 1e3;
  let i5;
  let last2 = 0;
  let hadOffset = false;
  ctx.save();
  ctx.transform(1, 0, 0, -1, 0, ctx.page.height);
  y3 = ctx.page.height - y3;
  if (ctx.page.fonts[ctx._font.id] == null) {
    ctx.page.fonts[ctx._font.id] = ctx._font.ref();
  }
  ctx.addContent("BT");
  ctx.addContent(`1 0 0 1 ${number2(x)} ${number2(y3)} Tm`);
  ctx.addContent(`/${ctx._font.id} ${number2(ctx._fontSize)} Tf`);
  const addSegment = (cur) => {
    if (last2 < cur) {
      const hex = encoded.slice(last2, cur).join("");
      const advance = positions[cur - 1].xAdvance - positions[cur - 1].advanceWidth;
      commands.push(`<${hex}> ${number2(-advance)}`);
    }
    return last2 = cur;
  };
  const flush = (s4) => {
    addSegment(s4);
    if (commands.length > 0) {
      ctx.addContent(`[${commands.join(" ")}] TJ`);
      return commands.length = 0;
    }
  };
  for (i5 = 0; i5 < positions.length; i5 += 1) {
    const pos = positions[i5];
    if (pos.xOffset || pos.yOffset) {
      flush(i5);
      ctx.addContent(`1 0 0 1 ${number2(x + pos.xOffset * scale2)} ${number2(y3 + pos.yOffset * scale2)} Tm`);
      flush(i5 + 1);
      hadOffset = true;
    } else {
      if (hadOffset) {
        ctx.addContent(`1 0 0 1 ${number2(x)} ${number2(y3)} Tm`);
        hadOffset = false;
      }
      if (pos.xAdvance - pos.advanceWidth !== 0) {
        addSegment(i5 + 1);
      }
    }
    x += pos.xAdvance * scale2;
  }
  flush(i5);
  ctx.addContent("ET");
  return ctx.restore();
};
var renderGlyphs = (ctx, glyphs, positions, x, y3) => {
  const scale2 = 1e3 / ctx._fontSize;
  const unitsPerEm = ctx._font.font.unitsPerEm || 1e3;
  const advanceWidthScale = 1e3 / unitsPerEm;
  const encodedGlyphs = ctx._font.encodeGlyphs(glyphs);
  const encodedPositions = positions.map((pos, i5) => ({
    xAdvance: pos.xAdvance * scale2,
    yAdvance: pos.yAdvance * scale2,
    xOffset: pos.xOffset,
    yOffset: pos.yOffset,
    advanceWidth: glyphs[i5].advanceWidth * advanceWidthScale
  }));
  return _renderGlyphs(ctx, encodedGlyphs, encodedPositions, x, y3);
};
var renderRun$1 = (ctx, run) => {
  if (!run.glyphs)
    return;
  if (!run.positions)
    return;
  const runAdvanceWidth = run.xAdvance;
  const font = run.attributes.font?.[0];
  const { fontSize, color, opacity } = run.attributes;
  if (color)
    ctx.fillColor(color);
  ctx.fillOpacity(opacity);
  if (font) {
    ctx.font(font.type === "STANDARD" ? font.fullName : font, fontSize);
  }
  try {
    renderGlyphs(ctx, run.glyphs, run.positions, 0, 0);
  } catch (error) {
    console.log(error);
  }
  ctx.translate(runAdvanceWidth, 0);
};
var renderSpan = (ctx, line2, textAnchor, dominantBaseline) => {
  ctx.save();
  const x = line2.box?.x || 0;
  const y3 = line2.box?.y || 0;
  const font = line2.runs[0]?.attributes.font?.[0];
  const scale2 = line2.runs[0]?.attributes?.scale || 1;
  const width = line2.xAdvance;
  if (!font)
    return;
  const ascent2 = font.ascent * scale2;
  const xHeight = font.xHeight * scale2;
  const descent2 = font.descent * scale2;
  const capHeight = font.capHeight * scale2;
  let xTranslate = x;
  let yTranslate = y3;
  switch (textAnchor) {
    case "middle":
      xTranslate = x - width / 2;
      break;
    case "end":
      xTranslate = x - width;
      break;
    default:
      xTranslate = x;
      break;
  }
  switch (dominantBaseline) {
    case "middle":
    case "central":
      yTranslate = y3 + capHeight / 2;
      break;
    case "hanging":
      yTranslate = y3 + capHeight;
      break;
    case "mathematical":
      yTranslate = y3 + xHeight;
      break;
    case "text-after-edge":
      yTranslate = y3 + descent2;
      break;
    case "text-before-edge":
      yTranslate = y3 + ascent2;
      break;
    default:
      yTranslate = y3;
      break;
  }
  ctx.translate(xTranslate, yTranslate);
  line2.runs.forEach((run) => renderRun$1(ctx, run));
  ctx.restore();
};
var renderSvgText = (ctx, node) => {
  const children = node.children;
  children.forEach((span) => renderSpan(ctx, span.lines[0], span.props.textAnchor, span.props.dominantBaseline));
};
var pairs = (values) => {
  const result = [];
  for (let i5 = 0; i5 < values.length; i5 += 2) {
    result.push([values[i5], values[i5 + 1]]);
  }
  return result;
};
var parsePoints = (points) => {
  let values = (points || "").trim().replace(/,/g, " ").replace(/(\d)-(\d)/g, "$1 -$2").split(/\s+/);
  if (values.length % 2 !== 0) {
    values = values.slice(0, -1);
  }
  const mappedValues = values.map(parseFloat);
  return pairs(mappedValues);
};
var drawPolyline = (ctx, points) => {
  if (points.length > 0) {
    ctx.moveTo(points[0][0], points[0][1]);
    points.slice(1).forEach((p3) => ctx.lineTo(p3[0], p3[1]));
  }
};
var renderPolyline = (ctx, node) => {
  const points = parsePoints(node.props.points || "");
  drawPolyline(ctx, points);
};
var renderPolygon = (ctx, node) => {
  const points = parsePoints(node.props.points || "");
  drawPolyline(ctx, points);
  ctx.closePath();
};
var renderImage$1 = (ctx, node) => {
  if (!node.box)
    return;
  if (!node.image?.data)
    return;
  const { x = 0, y: y3 = 0 } = node.props;
  const { width, height: height2, opacity } = node.style;
  const paddingTop = node.box.paddingLeft || 0;
  const paddingLeft = node.box.paddingLeft || 0;
  if (width === 0 || height2 === 0) {
    console.warn(`Image with src '${node.props.href}' skipped due to invalid dimensions`);
    return;
  }
  if (typeof width === "string" || typeof height2 === "string") {
    console.warn(`Image with src '${node.props.href}' skipped due to percentage width or height`);
    return;
  }
  ctx.save();
  ctx.fillOpacity(opacity || 1).image(node.image.data, x + paddingLeft, y3 + paddingTop, {
    width,
    height: height2
  });
  ctx.restore();
};
var KAPPA$1 = 4 * ((Math.sqrt(2) - 1) / 3);
var clipNode = (ctx, node) => {
  if (!node.box)
    return;
  if (!node.style)
    return;
  const { top, left, width, height: height2 } = node.box;
  const { borderTopLeftRadius = 0, borderTopRightRadius = 0, borderBottomRightRadius = 0, borderBottomLeftRadius = 0 } = node.style;
  const rtr = Math.min(borderTopRightRadius, 0.5 * width, 0.5 * height2);
  const ctr = rtr * (1 - KAPPA$1);
  ctx.moveTo(left + rtr, top);
  ctx.lineTo(left + width - rtr, top);
  ctx.bezierCurveTo(left + width - ctr, top, left + width, top + ctr, left + width, top + rtr);
  const rbr = Math.min(borderBottomRightRadius, 0.5 * width, 0.5 * height2);
  const cbr = rbr * (1 - KAPPA$1);
  ctx.lineTo(left + width, top + height2 - rbr);
  ctx.bezierCurveTo(left + width, top + height2 - cbr, left + width - cbr, top + height2, left + width - rbr, top + height2);
  const rbl = Math.min(borderBottomLeftRadius, 0.5 * width, 0.5 * height2);
  const cbl = rbl * (1 - KAPPA$1);
  ctx.lineTo(left + rbl, top + height2);
  ctx.bezierCurveTo(left + cbl, top + height2, left, top + height2 - cbl, left, top + height2 - rbl);
  const rtl = Math.min(borderTopLeftRadius, 0.5 * width, 0.5 * height2);
  const ctl = rtl * (1 - KAPPA$1);
  ctx.lineTo(left, top + rtl);
  ctx.bezierCurveTo(left, top + ctl, left + ctl, top, left + rtl, top);
  ctx.closePath();
  ctx.clip();
};
var applySingleTransformation = (ctx, transform, origin2) => {
  const { operation, value: value2 } = transform;
  switch (operation) {
    case "scale": {
      const [scaleX, scaleY] = value2;
      ctx.scale(scaleX, scaleY, { origin: origin2 });
      break;
    }
    case "rotate": {
      const [angle] = value2;
      ctx.rotate(angle, { origin: origin2 });
      break;
    }
    case "translate": {
      const [x, y3 = 0] = value2;
      ctx.translate(x, y3, { origin: origin2 });
      break;
    }
    case "skew": {
      const [xAngle = 0, yAngle = 0] = value2;
      const radx = xAngle * Math.PI / 180;
      const rady = yAngle * Math.PI / 180;
      const tanx = Math.tan(radx);
      const tany = Math.tan(rady);
      let x = 0;
      let y3 = 0;
      if (origin2 != null) {
        [x, y3] = Array.from(origin2);
        const x1 = x + tanx * y3;
        const y1 = y3 + tany * x;
        x -= x1;
        y3 -= y1;
      }
      ctx.transform(1, tany, tanx, 1, x, y3);
      break;
    }
    case "matrix": {
      ctx.transform(...value2);
      break;
    }
    default: {
      console.error(`Transform operation: '${operation}' doesn't supported`);
    }
  }
};
var applyTransformations = (ctx, node) => {
  if (!node.origin)
    return;
  const { props, style } = node;
  const origin2 = [node.origin.left, node.origin.top];
  const propsTransform = "transform" in props ? props.transform : void 0;
  const operations = style?.transform || propsTransform || [];
  operations.forEach((operation) => {
    applySingleTransformation(ctx, operation, origin2);
  });
};
var getPathBoundingBox = (node) => {
  const path3 = normalize((0, import_abs_svg_path.default)((0, import_parse_svg_path.default)(node.props?.d || "")));
  if (!path3.length)
    return [0, 0, 0, 0];
  const bounds = [Infinity, Infinity, -Infinity, -Infinity];
  for (let i5 = 0, l4 = path3.length; i5 < l4; i5 += 1) {
    const points = path3[i5].slice(1);
    for (let j = 0; j < points.length; j += 2) {
      if (points[j + 0] < bounds[0])
        bounds[0] = points[j + 0];
      if (points[j + 1] < bounds[1])
        bounds[1] = points[j + 1];
      if (points[j + 0] > bounds[2])
        bounds[2] = points[j + 0];
      if (points[j + 1] > bounds[3])
        bounds[3] = points[j + 1];
    }
  }
  return bounds;
};
var getCircleBoundingBox = (node) => {
  const r4 = node.props?.r || 0;
  const cx2 = node.props?.cx || 0;
  const cy2 = node.props?.cy || 0;
  return [cx2 - r4, cy2 - r4, cx2 + r4, cy2 + r4];
};
var getEllipseBoundingBox = (node) => {
  const cx2 = node.props?.cx || 0;
  const cy2 = node.props?.cy || 0;
  const rx = node.props?.rx || 0;
  const ry = node.props?.ry || 0;
  return [cx2 - rx, cy2 - ry, cx2 + rx, cy2 + ry];
};
var getLineBoundingBox = (node) => {
  const x1 = node.props?.x1 || 0;
  const y1 = node.props?.y1 || 0;
  const x2 = node.props?.x2 || 0;
  const y22 = node.props?.y2 || 0;
  return [
    Math.min(x1, x2),
    Math.min(y1, y22),
    Math.max(x1, x2),
    Math.max(y1, y22)
  ];
};
var getRectBoundingBox = (node) => {
  const x = node.props?.x || 0;
  const y3 = node.props?.y || 0;
  const width = node.props?.width || 0;
  const height2 = node.props?.height || 0;
  return [x, y3, x + width, y3 + height2];
};
var max2 = (values) => Math.max(-Infinity, ...values);
var min = (values) => Math.min(Infinity, ...values);
var getPolylineBoundingBox = (node) => {
  const points = parsePoints(node.props?.points);
  const xValues = points.map((p3) => p3[0]);
  const yValues = points.map((p3) => p3[1]);
  return [min(xValues), min(yValues), max2(xValues), max2(yValues)];
};
var boundingBoxFns = {
  [Rect]: getRectBoundingBox,
  [Line]: getLineBoundingBox,
  [Path]: getPathBoundingBox,
  [Circle]: getCircleBoundingBox,
  [Ellipse]: getEllipseBoundingBox,
  [Polygon]: getPolylineBoundingBox,
  [Polyline]: getPolylineBoundingBox
};
var getBoundingBox = (node) => {
  const boundingBoxFn = boundingBoxFns[node.type];
  return boundingBoxFn ? boundingBoxFn(node) : [0, 0, 0, 0];
};
var setStrokeWidth = (ctx, node) => {
  if (!node.props)
    return;
  if (!("strokeWidth" in node.props))
    return;
  const lineWidth = node.props.strokeWidth;
  if (lineWidth)
    ctx.lineWidth(lineWidth);
};
var setStrokeColor = (ctx, node) => {
  if (!node.props)
    return;
  if (!("stroke" in node.props))
    return;
  const strokeColor = node.props.stroke;
  if (strokeColor)
    ctx.strokeColor(strokeColor);
};
var setOpacity = (ctx, node) => {
  if (!node.props)
    return;
  if (!("opacity" in node.props))
    return;
  const opacity = node.props.opacity;
  if (!isNil(opacity))
    ctx.opacity(opacity);
};
var setFillOpacity = (ctx, node) => {
  if (!node.props)
    return;
  if (!("fillOpacity" in node.props))
    return;
  const fillOpacity = node.props.fillOpacity || null;
  if (!isNil(fillOpacity))
    ctx.fillOpacity(fillOpacity);
};
var setStrokeOpacity = (ctx, node) => {
  if (!node.props)
    return;
  if (!("strokeOpacity" in node.props))
    return;
  const strokeOpacity = node.props?.strokeOpacity;
  if (!isNil(strokeOpacity))
    ctx.strokeOpacity(strokeOpacity);
};
var setLineJoin = (ctx, node) => {
  if (!node.props)
    return;
  if (!("strokeLinejoin" in node.props))
    return;
  const lineJoin = node.props.strokeLinejoin;
  if (lineJoin)
    ctx.lineJoin(lineJoin);
};
var setLineCap = (ctx, node) => {
  if (!node.props)
    return;
  if (!("strokeLinecap" in node.props))
    return;
  const lineCap = node.props?.strokeLinecap;
  if (lineCap)
    ctx.lineCap(lineCap);
};
var setLineDash = (ctx, node) => {
  if (!node.props)
    return;
  if (!("strokeDasharray" in node.props))
    return;
  const value2 = node.props?.strokeDasharray || null;
  if (value2)
    ctx.dash(value2.split(/[\s,]+/).map(Number));
};
var hasLinearGradientFill = (node) => {
  if (!node.props)
    return false;
  if (!("fill" in node.props))
    return false;
  if (typeof node.props.fill === "string")
    return false;
  return node.props.fill?.type === LinearGradient;
};
var hasRadialGradientFill = (node) => {
  if (!node.props)
    return false;
  if (!("fill" in node.props))
    return false;
  if (typeof node.props.fill === "string")
    return false;
  return node.props.fill?.type === RadialGradient;
};
function multiplyMatrices(m1, m22) {
  const a5 = m1[0] * m22[0] + m1[2] * m22[1];
  const b3 = m1[1] * m22[0] + m1[3] * m22[1];
  const c6 = m1[0] * m22[2] + m1[2] * m22[3];
  const d3 = m1[1] * m22[2] + m1[3] * m22[3];
  const e4 = m1[0] * m22[4] + m1[2] * m22[5] + m1[4];
  const f4 = m1[1] * m22[4] + m1[3] * m22[5] + m1[5];
  return [a5, b3, c6, d3, e4, f4];
}
var transformGradient = (grad, transforms, bbox, units) => {
  const matrices = transforms.map((transform) => {
    switch (transform.operation) {
      case "scale": {
        const value2 = transform.value;
        return [value2[0], 0, 0, value2[1], 0, 0];
      }
      case "translate": {
        const value2 = transform.value;
        let x = value2[0] || 0;
        let y3 = value2[1] || 0;
        if (units === "objectBoundingBox") {
          x = (bbox[2] - bbox[0]) * x;
          y3 = (bbox[3] - bbox[1]) * y3;
        }
        return [1, 0, 0, 1, x, y3];
      }
      case "rotate": {
        const value2 = transform.value;
        const cos = Math.cos(value2[0]);
        const sin = Math.sin(value2[0]);
        return [cos, sin, -sin, cos, 0, 0];
      }
      case "skew": {
        const value2 = transform.value;
        return [1, Math.tan(value2[0]), Math.tan(value2[1]), 1, 0, 0];
      }
      case "matrix": {
        const value2 = transform.value;
        let x = value2[4] || 0;
        let y3 = value2[5] || 0;
        if (units === "objectBoundingBox") {
          x = (bbox[2] - bbox[0]) * x;
          y3 = (bbox[3] - bbox[1]) * y3;
        }
        return [value2[0], value2[1], value2[2], value2[3], x, y3];
      }
      default:
        return [1, 0, 0, 1, 0, 0];
    }
  });
  const matrix = matrices.reduce(multiplyMatrices, [1, 0, 0, 1, 0, 0]);
  grad.setTransform(...matrix);
};
var setLinearGradientFill = (ctx, node) => {
  if (!node.props)
    return;
  if (!("fill" in node.props))
    return;
  const bbox = getBoundingBox(node);
  const gradient = node.props?.fill;
  if (!gradient)
    return;
  const units = gradient.props.gradientUnits || "objectBoundingBox";
  const transforms = gradient.props.gradientTransform || [];
  let x1 = gradient.props.x1 || 0;
  let y1 = gradient.props.y1 || 0;
  let x2 = gradient.props.x2 || 1;
  let y22 = gradient.props.y2 || 0;
  if (units === "objectBoundingBox") {
    const m0 = bbox[2] - bbox[0];
    const m3 = bbox[3] - bbox[1];
    const m4 = bbox[0];
    const m5 = bbox[1];
    x1 = m0 * x1 + m4;
    y1 = m3 * y1 + m5;
    x2 = m0 * x2 + m4;
    y22 = m3 * y22 + m5;
  }
  const grad = ctx.linearGradient(x1, y1, x2, y22);
  transformGradient(grad, transforms, bbox, units);
  gradient.children?.forEach((stop) => {
    grad.stop(stop.props.offset, stop.props.stopColor, stop.props.stopOpacity);
  });
  ctx.fill(grad);
};
var setRadialGradientFill = (ctx, node) => {
  if (!node.props)
    return;
  if (!("fill" in node.props))
    return;
  const bbox = getBoundingBox(node);
  const gradient = node.props?.fill;
  if (!gradient)
    return;
  const units = gradient.props.gradientUnits || "objectBoundingBox";
  const transforms = gradient.props.gradientTransform || [];
  let r4 = gradient.props.r || 0.5;
  let cx2 = gradient.props.cx || 0.5;
  let cy2 = gradient.props.cy || 0.5;
  let fx = gradient.props.fx || cx2;
  let fy = gradient.props.fy || cy2;
  if (units === "objectBoundingBox") {
    const m0 = bbox[2] - bbox[0];
    const m3 = bbox[3] - bbox[1];
    const m4 = bbox[0];
    const m5 = bbox[1];
    r4 = r4 * m0;
    cx2 = m0 * cx2 + m4;
    cy2 = m3 * cy2 + m5;
    fx = m0 * fx + m4;
    fy = m3 * fy + m5;
  }
  const grad = ctx.radialGradient(cx2, cy2, 0, fx, fy, r4);
  transformGradient(grad, transforms, bbox, units);
  gradient.children?.forEach((stop) => {
    grad.stop(stop.props.offset, stop.props.stopColor, stop.props.stopOpacity);
  });
  ctx.fill(grad);
};
var setFillColor = (ctx, node) => {
  if (!node.props)
    return;
  if (!("fill" in node.props))
    return;
  const fillColor = node.props?.fill;
  if (fillColor)
    ctx.fillColor(fillColor);
};
var setFill = (ctx, node) => {
  if (hasLinearGradientFill(node))
    return setLinearGradientFill(ctx, node);
  if (hasRadialGradientFill(node))
    return setRadialGradientFill(ctx, node);
  return setFillColor(ctx, node);
};
var draw = (ctx, node) => {
  const props = node.props || {};
  if ("fill" in props && "stroke" in props && props.fill && props.stroke) {
    ctx.fillAndStroke(props.fillRule);
  } else if ("fill" in props && props.fill) {
    ctx.fill(props.fillRule);
  } else if ("stroke" in props && props.stroke) {
    ctx.stroke();
  } else {
    ctx.save();
    ctx.opacity(0);
    ctx.fill(null);
    ctx.restore();
  }
};
var noop5 = () => {
};
var renderFns$1 = {
  [Tspan]: noop5,
  [TextInstance]: noop5,
  [Path]: renderPath,
  [Rect]: renderRect,
  [Line]: renderLine$1,
  [G]: renderGroup,
  [Text]: renderSvgText,
  [Circle]: renderCircle,
  [Image]: renderImage$1,
  [Ellipse]: renderEllipse,
  [Polygon]: renderPolygon,
  [Polyline]: renderPolyline
};
var renderNode$1 = (ctx, node) => {
  const renderFn = renderFns$1[node.type];
  if (renderFn) {
    renderFn(ctx, node);
  } else {
    console.warn(`SVG node of type ${node.type} is not currently supported`);
  }
};
var drawNode = (ctx, node) => {
  setLineCap(ctx, node);
  setLineDash(ctx, node);
  setLineJoin(ctx, node);
  setStrokeWidth(ctx, node);
  setStrokeColor(ctx, node);
  setFill(ctx, node);
  setStrokeOpacity(ctx, node);
  setFillOpacity(ctx, node);
  setOpacity(ctx, node);
  applyTransformations(ctx, node);
  renderNode$1(ctx, node);
  draw(ctx, node);
};
var clipPath = (ctx, node) => {
  if (!node.props)
    return;
  if (!("clipPath" in node.props))
    return;
  const value2 = node.props.clipPath;
  if (value2) {
    const children = value2.children || [];
    children.forEach((child) => renderNode$1(ctx, child));
    ctx.clip();
  }
};
var drawChildren = (ctx, node) => {
  const children = node.children || [];
  children.forEach((child) => {
    ctx.save();
    clipPath(ctx, child);
    drawNode(ctx, child);
    drawChildren(ctx, child);
    ctx.restore();
  });
};
var resolveAspectRatio = (ctx, node) => {
  if (!node.box)
    return;
  const { width, height: height2 } = node.box;
  const { viewBox, preserveAspectRatio } = node.props;
  const { meetOrSlice = "meet", align = "xMidYMid" } = preserveAspectRatio || {};
  if (viewBox == null || width == null || height2 == null)
    return;
  const x = viewBox?.minX || 0;
  const y3 = viewBox?.minY || 0;
  const logicalWidth = viewBox?.maxX || width;
  const logicalHeight = viewBox?.maxY || height2;
  const logicalRatio = logicalWidth / logicalHeight;
  const physicalRatio = width / height2;
  const scaleX = width / logicalWidth;
  const scaleY = height2 / logicalHeight;
  if (align === "none") {
    ctx.scale(scaleX, scaleY);
    ctx.translate(-x, -y3);
    return;
  }
  if (logicalRatio < physicalRatio && meetOrSlice === "meet" || logicalRatio >= physicalRatio && meetOrSlice === "slice") {
    ctx.scale(scaleY, scaleY);
    switch (align) {
      case "xMinYMin":
      case "xMinYMid":
      case "xMinYMax":
        ctx.translate(-x, -y3);
        break;
      case "xMidYMin":
      case "xMidYMid":
      case "xMidYMax":
        ctx.translate(-x - (logicalWidth - width * logicalHeight / height2) / 2, -y3);
        break;
      default:
        ctx.translate(-x - (logicalWidth - width * logicalHeight / height2), -y3);
    }
  } else {
    ctx.scale(scaleX, scaleX);
    switch (align) {
      case "xMinYMin":
      case "xMidYMin":
      case "xMaxYMin":
        ctx.translate(-x, -y3);
        break;
      case "xMinYMid":
      case "xMidYMid":
      case "xMaxYMid":
        ctx.translate(-x, -y3 - (logicalHeight - height2 * logicalWidth / width) / 2);
        break;
      default:
        ctx.translate(-x, -y3 - (logicalHeight - height2 * logicalWidth / width));
    }
  }
};
var moveToOrigin = (ctx, node) => {
  if (!node.box)
    return;
  const { top, left } = node.box;
  const paddingLeft = node.box.paddingLeft || 0;
  const paddingTop = node.box.paddingTop || 0;
  ctx.translate(left + paddingLeft, top + paddingTop);
};
var renderSvg = (ctx, node) => {
  ctx.save();
  clipNode(ctx, node);
  moveToOrigin(ctx, node);
  resolveAspectRatio(ctx, node);
  drawChildren(ctx, node);
  ctx.restore();
};
var black = { value: "#000", opacity: 1 };
var parseColor = (hex) => {
  if (!hex)
    return black;
  const parsed = import_color_string.default.get(hex);
  if (!parsed)
    return black;
  const value2 = import_color_string.default.to.hex(parsed.value.slice(0, 3));
  const opacity = parsed.value[3];
  return { value: value2, opacity };
};
var DEST_REGEXP = /^#.+/;
var isSrcId$1 = (src) => src.match(DEST_REGEXP);
var renderAttachment = (ctx, attachment) => {
  const { xOffset = 0, yOffset = 0, width, height: height2, image } = attachment;
  ctx.translate(-width + xOffset, -height2 + yOffset);
  ctx.image(image, 0, 0, {
    fit: [width, height2],
    align: "center",
    valign: "bottom"
  });
};
var renderAttachments = (ctx, run, glyphs) => {
  if (!glyphs)
    return;
  if (!run.positions)
    return;
  const font = run.attributes.font?.[0];
  if (!font)
    return;
  ctx.save();
  const space = font.glyphForCodePoint(32);
  const objectReplacement = font.glyphForCodePoint(65532);
  let attachmentAdvance = 0;
  for (let i5 = 0; i5 < glyphs.length; i5 += 1) {
    const position = run.positions[i5];
    const glyph = glyphs[i5];
    attachmentAdvance += position.xAdvance || 0;
    if (glyph.id === objectReplacement.id && run.attributes.attachment) {
      ctx.translate(attachmentAdvance, position.yOffset || 0);
      renderAttachment(ctx, run.attributes.attachment);
      glyphs[i5] = space;
      attachmentAdvance = 0;
    }
  }
  ctx.restore();
};
var renderRun = (ctx, run) => {
  if (!run.glyphs)
    return;
  if (!run.positions)
    return;
  const font = run.attributes.font?.[0];
  if (!font)
    return;
  const { fontSize, link } = run.attributes;
  const color = parseColor(run.attributes.color);
  const opacity = isNil(run.attributes.opacity) ? color.opacity : run.attributes.opacity;
  const { height: height2 = 0, descent: descent2 = 0, xAdvance = 0 } = run;
  ctx.fillColor(color.value);
  ctx.fillOpacity(opacity);
  if (link) {
    if (isSrcId$1(link)) {
      ctx.goTo(0, -height2 - descent2, xAdvance, height2, link.slice(1));
    } else {
      ctx.link(0, -height2 - descent2, xAdvance, height2, link);
    }
  }
  const glyphs = [...run.glyphs];
  renderAttachments(ctx, run, glyphs);
  ctx.font(font.type === "STANDARD" ? font.fullName : font, fontSize);
  try {
    renderGlyphs(ctx, glyphs, run.positions, 0, 0);
  } catch (error) {
    console.log(error);
  }
  ctx.translate(xAdvance, 0);
};
var renderBackground$1 = (ctx, rect, backgroundColor) => {
  const color = parseColor(backgroundColor);
  ctx.save();
  ctx.fillOpacity(color.opacity);
  ctx.rect(rect.x, rect.y, rect.width, rect.height);
  ctx.fill(color.value);
  ctx.restore();
};
var renderDecorationLine = (ctx, decorationLine) => {
  ctx.save();
  ctx.lineWidth(decorationLine.rect.height);
  ctx.strokeOpacity(decorationLine.opacity);
  if (/dashed/.test(decorationLine.style)) {
    ctx.dash(3 * decorationLine.rect.height, {});
  } else if (/dotted/.test(decorationLine.style)) {
    ctx.dash(decorationLine.rect.height, {});
  }
  if (/wavy/.test(decorationLine.style)) {
    const dist = Math.max(2, decorationLine.rect.height);
    let step = 1.1 * dist;
    const stepCount = Math.floor(decorationLine.rect.width / (2 * step));
    const remainingWidth = decorationLine.rect.width - stepCount * 2 * step;
    const adjustment = remainingWidth / stepCount / 2;
    step += adjustment;
    const cp1y = decorationLine.rect.y + dist;
    const cp2y = decorationLine.rect.y - dist;
    let { x } = decorationLine.rect;
    ctx.moveTo(decorationLine.rect.x, decorationLine.rect.y);
    for (let i5 = 0; i5 < stepCount; i5 += 1) {
      ctx.bezierCurveTo(x + step, cp1y, x + step, cp2y, x + 2 * step, decorationLine.rect.y);
      x += 2 * step;
    }
  } else {
    ctx.moveTo(decorationLine.rect.x, decorationLine.rect.y);
    ctx.lineTo(decorationLine.rect.x + decorationLine.rect.width, decorationLine.rect.y);
    if (/double/.test(decorationLine.style)) {
      ctx.moveTo(decorationLine.rect.x, decorationLine.rect.y + decorationLine.rect.height * 2);
      ctx.lineTo(decorationLine.rect.x + decorationLine.rect.width, decorationLine.rect.y + decorationLine.rect.height * 2);
    }
  }
  ctx.stroke(decorationLine.color);
  ctx.restore();
};
var renderLine = (ctx, line2) => {
  if (!line2.box)
    return;
  const lineAscent = line2.ascent || 0;
  ctx.save();
  ctx.translate(line2.box.x, line2.box.y + lineAscent);
  for (let i5 = 0; i5 < line2.runs.length; i5 += 1) {
    const run = line2.runs[i5];
    const isLastRun = i5 === line2.runs.length - 1;
    if (run.attributes.backgroundColor) {
      const xAdvance = run.xAdvance ?? 0;
      const overflowRight = isLastRun ? line2.overflowRight ?? 0 : 0;
      const backgroundRect = {
        x: 0,
        y: -lineAscent,
        height: line2.box.height,
        width: xAdvance - overflowRight
      };
      renderBackground$1(ctx, backgroundRect, run.attributes.backgroundColor);
    }
    renderRun(ctx, run);
  }
  ctx.restore();
  ctx.save();
  ctx.translate(line2.box.x, line2.box.y);
  if (line2.decorationLines) {
    for (let i5 = 0; i5 < line2.decorationLines.length; i5 += 1) {
      const decorationLine = line2.decorationLines[i5];
      renderDecorationLine(ctx, decorationLine);
    }
  }
  ctx.restore();
};
var renderBlock = (ctx, block) => {
  block.forEach((line2) => {
    renderLine(ctx, line2);
  });
};
var renderText = (ctx, node) => {
  if (!node.box)
    return;
  if (!node.lines)
    return;
  const { top, left } = node.box;
  const blocks = [node.lines];
  const paddingTop = node.box?.paddingTop || 0;
  const paddingLeft = node.box?.paddingLeft || 0;
  const initialY = node.lines[0] ? node.lines[0].box.y : 0;
  const offsetX = node.alignOffset || 0;
  ctx.save();
  ctx.translate(left + paddingLeft - offsetX, top + paddingTop - initialY);
  blocks.forEach((block) => {
    renderBlock(ctx, block);
  });
  ctx.restore();
};
var renderPage = (ctx, node) => {
  if (!node.box)
    return;
  const { width, height: height2 } = node.box;
  const dpi = node.props?.dpi || 72;
  const userUnit = dpi / 72;
  ctx.addPage({ size: [width, height2], margin: 0, userUnit });
};
var renderNote = (ctx, node) => {
  if (!node.box)
    return;
  const { top, left } = node.box;
  const value2 = node?.children?.[0].value || "";
  const color = node.style?.backgroundColor;
  ctx.note(left, top, 0, 0, value2, { color });
};
var embedImage = (ctx, node) => {
  const src = node.image.data;
  let image;
  if (typeof src === "string") {
    image = ctx._imageRegistry[src];
  }
  if (!image) {
    image = ctx.openImage(src);
  }
  if (!image.obj) {
    image.embed(ctx);
  }
  return image;
};
var isNumeric = (n6) => {
  return !Number.isNaN(parseFloat(n6)) && Number.isFinite(n6);
};
var applyContainObjectFit = (cw, ch, iw, ih, px2, py2) => {
  const cr = cw / ch;
  const ir = iw / ih;
  const pxp = matchPercent(px2 ?? null);
  const pyp = matchPercent(py2 ?? null);
  const pxv = pxp ? pxp.percent : 0.5;
  const pyv = pyp ? pyp.percent : 0.5;
  if (cr > ir) {
    const height3 = ch;
    const width2 = height3 * ir;
    const yOffset2 = isNumeric(py2) ? py2 : 0;
    const xOffset2 = isNumeric(px2) ? px2 : (cw - width2) * pxv;
    return { width: width2, height: height3, xOffset: xOffset2, yOffset: yOffset2 };
  }
  const width = cw;
  const height2 = width / ir;
  const xOffset = isNumeric(px2) ? px2 : 0;
  const yOffset = isNumeric(py2) ? py2 : (ch - height2) * pyv;
  return { width, height: height2, yOffset, xOffset };
};
var applyNoneObjectFit = (cw, ch, iw, ih, px2, py2) => {
  const width = iw;
  const height2 = ih;
  const pxp = matchPercent(px2 ?? null);
  const pyp = matchPercent(py2 ?? null);
  const pxv = pxp ? pxp.percent : 0.5;
  const pyv = pyp ? pyp.percent : 0.5;
  const xOffset = isNumeric(px2) ? px2 : (cw - width) * pxv;
  const yOffset = isNumeric(py2) ? py2 : (ch - height2) * pyv;
  return { width, height: height2, xOffset, yOffset };
};
var applyCoverObjectFit = (cw, ch, iw, ih, px2, py2) => {
  const ir = iw / ih;
  const cr = cw / ch;
  const pxp = matchPercent(px2 ?? null);
  const pyp = matchPercent(py2 ?? null);
  const pxv = pxp ? pxp.percent : 0.5;
  const pyv = pyp ? pyp.percent : 0.5;
  if (cr > ir) {
    const width2 = cw;
    const height3 = width2 / ir;
    const xOffset2 = isNumeric(px2) ? px2 : 0;
    const yOffset2 = isNumeric(py2) ? py2 : (ch - height3) * pyv;
    return { width: width2, height: height3, yOffset: yOffset2, xOffset: xOffset2 };
  }
  const height2 = ch;
  const width = height2 * ir;
  const xOffset = isNumeric(px2) ? px2 : (cw - width) * pxv;
  const yOffset = isNumeric(py2) ? py2 : 0;
  return { width, height: height2, xOffset, yOffset };
};
var applyScaleDownObjectFit = (cw, ch, iw, ih, px2, py2) => {
  const containDimension = applyContainObjectFit(cw, ch, iw, ih, px2, py2);
  const noneDimension = applyNoneObjectFit(cw, ch, iw, ih, px2, py2);
  return containDimension.width < noneDimension.width ? containDimension : noneDimension;
};
var applyFillObjectFit = (cw, ch, px2, py2) => {
  return {
    width: cw,
    height: ch,
    xOffset: matchPercent(px2 ?? null) ? 0 : px2 || 0,
    yOffset: matchPercent(py2 ?? null) ? 0 : py2 || 0
  };
};
var resolveObjectFit = (type = "fill", cw, ch, iw, ih, px2, py2) => {
  switch (type) {
    case "contain":
      return applyContainObjectFit(cw, ch, iw, ih, px2, py2);
    case "cover":
      return applyCoverObjectFit(cw, ch, iw, ih, px2, py2);
    case "none":
      return applyNoneObjectFit(cw, ch, iw, ih, px2, py2);
    case "scale-down":
      return applyScaleDownObjectFit(cw, ch, iw, ih, px2, py2);
    default:
      return applyFillObjectFit(cw, ch, px2, py2);
  }
};
var drawImage = (ctx, node, options) => {
  if (!node.box)
    return;
  if (!node.image)
    return;
  const { left, top } = node.box;
  const opacity = node.style?.opacity;
  const objectFit = node.style?.objectFit;
  const objectPositionX = node.style?.objectPositionX;
  const objectPositionY = node.style?.objectPositionY;
  const paddingTop = node.box.paddingTop || 0;
  const paddingRight = node.box.paddingRight || 0;
  const paddingBottom = node.box.paddingBottom || 0;
  const paddingLeft = node.box.paddingLeft || 0;
  const imageCache = options.imageCache || /* @__PURE__ */ new Map();
  const { width, height: height2, xOffset, yOffset } = resolveObjectFit(objectFit, node.box.width - paddingLeft - paddingRight, node.box.height - paddingTop - paddingBottom, node.image.width, node.image.height, objectPositionX, objectPositionY);
  if (node.image.data) {
    if (width !== 0 && height2 !== 0) {
      const cacheKey = node.image.key;
      const image = imageCache.get(cacheKey) || embedImage(ctx, node);
      if (cacheKey)
        imageCache.set(cacheKey, image);
      const imageOpacity = isNil(opacity) ? 1 : opacity;
      ctx.fillOpacity(imageOpacity).image(image, left + paddingLeft + xOffset, top + paddingTop + yOffset, {
        width,
        height: height2
      });
    } else {
      console.warn(`Image with src '${JSON.stringify(node.props.src || node.props.source)}' skipped due to invalid dimensions`);
    }
  }
};
var renderImage = (ctx, node, options) => {
  ctx.save();
  clipNode(ctx, node);
  drawImage(ctx, node, options);
  ctx.restore();
};
var CONTENT_COLOR = "#a1c6e7";
var PADDING_COLOR = "#c4deb9";
var MARGIN_COLOR = "#f8cca1";
var debugContent = (ctx, node) => {
  if (!node.box)
    return;
  const { left, top, width, height: height2, paddingLeft = 0, paddingTop = 0, paddingRight = 0, paddingBottom = 0, borderLeftWidth = 0, borderTopWidth = 0, borderRightWidth = 0, borderBottomWidth = 0 } = node.box;
  ctx.fillColor(CONTENT_COLOR).opacity(0.5).rect(left + paddingLeft + borderLeftWidth, top + paddingTop + borderTopWidth, width - paddingLeft - paddingRight - borderRightWidth - borderLeftWidth, height2 - paddingTop - paddingBottom - borderTopWidth - borderBottomWidth).fill();
};
var debugPadding = (ctx, node) => {
  if (!node.box)
    return;
  const { left, top, width, height: height2, paddingLeft = 0, paddingTop = 0, paddingRight = 0, paddingBottom = 0, borderLeftWidth = 0, borderTopWidth = 0, borderRightWidth = 0, borderBottomWidth = 0 } = node.box;
  ctx.fillColor(PADDING_COLOR).opacity(0.5);
  ctx.rect(left + paddingLeft + borderLeftWidth, top + borderTopWidth, width - paddingRight - paddingLeft - borderLeftWidth - borderRightWidth, paddingTop).fill();
  ctx.rect(left + borderLeftWidth, top + borderTopWidth, paddingLeft, height2 - borderTopWidth - borderBottomWidth).fill();
  ctx.rect(left + width - paddingRight - borderRightWidth, top + borderTopWidth, paddingRight, height2 - borderTopWidth - borderBottomWidth).fill();
  ctx.rect(left + paddingLeft + borderLeftWidth, top + height2 - paddingBottom - borderBottomWidth, width - paddingRight - paddingLeft - borderLeftWidth - borderRightWidth, paddingBottom).fill();
};
var debugMargin = (ctx, node) => {
  if (!node.box)
    return;
  const { left, top, width, height: height2 } = node.box;
  const { marginLeft = 0, marginTop = 0, marginRight = 0, marginBottom = 0 } = node.box;
  ctx.fillColor(MARGIN_COLOR).opacity(0.5);
  ctx.rect(left, top - marginTop, width, marginTop).fill();
  ctx.rect(left - marginLeft, top - marginTop, marginLeft, height2 + marginTop + marginBottom).fill();
  ctx.rect(left + width, top - marginTop, marginRight, height2 + marginTop + marginBottom).fill();
  ctx.rect(left, top + height2, width, marginBottom).fill();
};
var debugText = (ctx, node) => {
  if (!node.box)
    return;
  const { left, top, width, height: height2 } = node.box;
  const { marginLeft = 0, marginTop = 0, marginRight = 0, marginBottom = 0 } = node.box;
  const roundedWidth = Math.round(width + marginLeft + marginRight);
  const roundedHeight = Math.round(height2 + marginTop + marginBottom);
  ctx.fontSize(6).opacity(1).fillColor("black").text(`${roundedWidth} x ${roundedHeight}`, left - marginLeft, Math.max(top - marginTop - 4, 1), { width: Infinity });
};
var debugOrigin = (ctx, node) => {
  if (node.origin) {
    ctx.circle(node.origin.left, node.origin.top, 3).fill("red").circle(node.origin.left, node.origin.top, 5).stroke("red");
  }
};
var renderDebug = (ctx, node) => {
  if (!node.props)
    return;
  if (!("debug" in node.props) || !node.props.debug)
    return;
  ctx.save();
  debugContent(ctx, node);
  debugPadding(ctx, node);
  debugMargin(ctx, node);
  debugText(ctx, node);
  debugOrigin(ctx, node);
  ctx.restore();
};
var availableMethods = [
  "dash",
  "clip",
  "save",
  "path",
  "fill",
  "font",
  "text",
  "rect",
  "scale",
  "moveTo",
  "lineTo",
  "stroke",
  "rotate",
  "circle",
  "lineCap",
  "opacity",
  "ellipse",
  "polygon",
  "restore",
  "lineJoin",
  "fontSize",
  "fillColor",
  "lineWidth",
  "translate",
  "miterLimit",
  "strokeColor",
  "fillOpacity",
  "roundedRect",
  "fillAndStroke",
  "strokeOpacity",
  "bezierCurveTo",
  "quadraticCurveTo",
  "linearGradient",
  "radialGradient"
];
var painter = (ctx) => {
  const p3 = availableMethods.reduce((acc, prop) => ({
    ...acc,
    [prop]: (...args) => {
      ctx[prop](...args);
      return p3;
    }
  }), {});
  return p3;
};
var renderCanvas = (ctx, node) => {
  if (!node.box)
    return;
  const { top, left, width, height: height2 } = node.box;
  const paddingTop = node.box.paddingTop || 0;
  const paddingLeft = node.box.paddingLeft || 0;
  const paddingRight = node.box.paddingRight || 0;
  const paddingBottom = node.box.paddingBottom || 0;
  const availableWidth = width - paddingLeft - paddingRight;
  const availableHeight = height2 - paddingTop - paddingBottom;
  if (!availableWidth || !availableHeight) {
    console.warn("Canvas element has null width or height. Please provide valid values via the `style` prop in order to correctly render it.");
  }
  ctx.save().translate(left + paddingLeft, top + paddingTop);
  if (node.props.paint) {
    node.props.paint(painter(ctx), availableWidth, availableHeight);
  }
  ctx.restore();
};
var KAPPA2 = 4 * ((Math.sqrt(2) - 1) / 3);
var clipBorderTop = (ctx, layout2, style, rtr, rtl) => {
  const { top, left, width, height: height2 } = layout2;
  const { borderTopWidth, borderRightWidth, borderLeftWidth } = style;
  ctx.moveTo(left + rtl, top);
  ctx.lineTo(left + width - rtr, top);
  const c0 = rtr * (1 - KAPPA2);
  ctx.bezierCurveTo(left + width - c0, top, left + width, top + c0, left + width, top + rtr);
  const topRightYCoord = top + Math.max(borderTopWidth, rtr);
  ctx.lineTo(left + width, topRightYCoord);
  ctx.lineTo(left + width - borderRightWidth, topRightYCoord);
  const innerTopRightRadiusX = Math.max(rtr - borderRightWidth, 0);
  const innerTopRightRadiusY = Math.max(rtr - borderTopWidth, 0);
  const c1 = innerTopRightRadiusX * (1 - KAPPA2);
  const c22 = innerTopRightRadiusY * (1 - KAPPA2);
  ctx.bezierCurveTo(left + width - borderRightWidth, top + borderTopWidth + c22, left + width - borderRightWidth - c1, top + borderTopWidth, left + width - borderRightWidth - innerTopRightRadiusX, top + borderTopWidth);
  ctx.lineTo(left + Math.max(rtl, borderLeftWidth), top + borderTopWidth);
  const innerTopLeftRadiusX = Math.max(rtl - borderLeftWidth, 0);
  const innerTopLeftRadiusY = Math.max(rtl - borderTopWidth, 0);
  const c32 = innerTopLeftRadiusX * (1 - KAPPA2);
  const c42 = innerTopLeftRadiusY * (1 - KAPPA2);
  const topLeftYCoord = top + Math.max(borderTopWidth, rtl);
  ctx.bezierCurveTo(left + borderLeftWidth + c32, top + borderTopWidth, left + borderLeftWidth, top + borderTopWidth + c42, left + borderLeftWidth, topLeftYCoord);
  ctx.lineTo(left, topLeftYCoord);
  ctx.lineTo(left, top + rtl);
  const c52 = rtl * (1 - KAPPA2);
  ctx.bezierCurveTo(left, top + c52, left + c52, top, left + rtl, top);
  ctx.closePath();
  ctx.clip();
  if (borderRightWidth) {
    const trSlope = -borderTopWidth / borderRightWidth;
    ctx.moveTo(left + width / 2, trSlope * (-width / 2) + top);
    ctx.lineTo(left + width, top);
    ctx.lineTo(left, top);
    ctx.lineTo(left, top + height2);
    ctx.closePath();
    ctx.clip();
  }
  if (borderLeftWidth) {
    const trSlope = -borderTopWidth / borderLeftWidth;
    ctx.moveTo(left + width / 2, trSlope * (-width / 2) + top);
    ctx.lineTo(left, top);
    ctx.lineTo(left + width, top);
    ctx.lineTo(left + width, top + height2);
    ctx.closePath();
    ctx.clip();
  }
};
var fillBorderTop = (ctx, layout2, style, rtr, rtl) => {
  const { top, left, width } = layout2;
  const { borderTopColor, borderTopWidth, borderTopStyle, borderRightWidth, borderLeftWidth } = style;
  const c0 = rtl * (1 - KAPPA2);
  const c1 = rtr * (1 - KAPPA2);
  ctx.moveTo(left, top + Math.max(rtl, borderTopWidth));
  ctx.bezierCurveTo(left, top + c0, left + c0, top, left + rtl, top);
  ctx.lineTo(left + width - rtr, top);
  ctx.bezierCurveTo(left + width - c1, top, left + width, top + c1, left + width, top + rtr);
  ctx.strokeColor(borderTopColor);
  ctx.lineWidth(Math.max(borderRightWidth, borderTopWidth, borderLeftWidth) * 2);
  if (borderTopStyle === "dashed") {
    ctx.dash(borderTopWidth * 2, { space: borderTopWidth * 1.2 });
  } else if (borderTopStyle === "dotted") {
    ctx.dash(borderTopWidth, { space: borderTopWidth * 1.2 });
  }
  ctx.stroke();
  ctx.undash();
};
var clipBorderRight = (ctx, layout2, style, rtr, rbr) => {
  const { top, left, width, height: height2 } = layout2;
  const { borderTopWidth, borderRightWidth, borderBottomWidth } = style;
  ctx.moveTo(left + width, top + rtr);
  ctx.lineTo(left + width, top + height2 - rbr);
  const c0 = rbr * (1 - KAPPA2);
  ctx.bezierCurveTo(left + width, top + height2 - c0, left + width - c0, top + height2, left + width - rbr, top + height2);
  const topBottomXCoord = left + width - Math.max(borderRightWidth, rbr);
  ctx.lineTo(topBottomXCoord, top + height2);
  ctx.lineTo(topBottomXCoord, top + height2 - borderBottomWidth);
  const innerBottomRightRadiusX = Math.max(rbr - borderRightWidth, 0);
  const innerBottomRightRadiusY = Math.max(rbr - borderBottomWidth, 0);
  const c1 = innerBottomRightRadiusX * (1 - KAPPA2);
  const c22 = innerBottomRightRadiusY * (1 - KAPPA2);
  ctx.bezierCurveTo(left + width - borderRightWidth - c1, top + height2 - borderBottomWidth, left + width - borderRightWidth, top + height2 - borderBottomWidth - c22, left + width - borderRightWidth, top + height2 - Math.max(rbr, borderBottomWidth));
  ctx.lineTo(left + width - borderRightWidth, top + Math.max(rtr, borderTopWidth));
  const innerTopRightRadiusX = Math.max(rtr - borderRightWidth, 0);
  const innerTopRightRadiusY = Math.max(rtr - borderTopWidth, 0);
  const c32 = innerTopRightRadiusX * (1 - KAPPA2);
  const c42 = innerTopRightRadiusY * (1 - KAPPA2);
  const topRightXCoord = left + width - Math.max(rtr, borderRightWidth);
  ctx.bezierCurveTo(left + width - borderRightWidth, top + borderTopWidth + c42, left + width - borderRightWidth - c32, top + borderTopWidth, topRightXCoord, top + borderTopWidth);
  ctx.lineTo(topRightXCoord, top);
  ctx.lineTo(left + width - rtr, top);
  const c52 = rtr * (1 - KAPPA2);
  ctx.bezierCurveTo(left + width - c52, top, left + width, top + c52, left + width, top + rtr);
  ctx.closePath();
  ctx.clip();
  if (borderTopWidth) {
    const trSlope = -borderTopWidth / borderRightWidth;
    ctx.moveTo(left + width / 2, trSlope * (-width / 2) + top);
    ctx.lineTo(left + width, top);
    ctx.lineTo(left + width, top + height2);
    ctx.lineTo(left, top + height2);
    ctx.closePath();
    ctx.clip();
  }
  if (borderBottomWidth) {
    const brSlope = borderBottomWidth / borderRightWidth;
    ctx.moveTo(left + width / 2, brSlope * (-width / 2) + top + height2);
    ctx.lineTo(left + width, top + height2);
    ctx.lineTo(left + width, top);
    ctx.lineTo(left, top);
    ctx.closePath();
    ctx.clip();
  }
};
var fillBorderRight = (ctx, layout2, style, rtr, rbr) => {
  const { top, left, width, height: height2 } = layout2;
  const { borderRightColor, borderRightStyle, borderRightWidth, borderTopWidth, borderBottomWidth } = style;
  const c0 = rbr * (1 - KAPPA2);
  const c1 = rtr * (1 - KAPPA2);
  ctx.moveTo(left + width - rtr, top);
  ctx.bezierCurveTo(left + width - c1, top, left + width, top + c1, left + width, top + rtr);
  ctx.lineTo(left + width, top + height2 - rbr);
  ctx.bezierCurveTo(left + width, top + height2 - c0, left + width - c0, top + height2, left + width - rbr, top + height2);
  ctx.strokeColor(borderRightColor);
  ctx.lineWidth(Math.max(borderRightWidth, borderTopWidth, borderBottomWidth) * 2);
  if (borderRightStyle === "dashed") {
    ctx.dash(borderRightWidth * 2, { space: borderRightWidth * 1.2 });
  } else if (borderRightStyle === "dotted") {
    ctx.dash(borderRightWidth, { space: borderRightWidth * 1.2 });
  }
  ctx.stroke();
  ctx.undash();
};
var clipBorderBottom = (ctx, layout2, style, rbl, rbr) => {
  const { top, left, width, height: height2 } = layout2;
  const { borderBottomWidth, borderRightWidth, borderLeftWidth } = style;
  ctx.moveTo(left + width - rbr, top + height2);
  ctx.lineTo(left + rbl, top + height2);
  const c0 = rbl * (1 - KAPPA2);
  ctx.bezierCurveTo(left + c0, top + height2, left, top + height2 - c0, left, top + height2 - rbl);
  const bottomLeftYCoord = top + height2 - Math.max(borderBottomWidth, rbl);
  ctx.lineTo(left, bottomLeftYCoord);
  ctx.lineTo(left + borderLeftWidth, bottomLeftYCoord);
  const innerBottomLeftRadiusX = Math.max(rbl - borderLeftWidth, 0);
  const innerBottomLeftRadiusY = Math.max(rbl - borderBottomWidth, 0);
  const c1 = innerBottomLeftRadiusX * (1 - KAPPA2);
  const c22 = innerBottomLeftRadiusY * (1 - KAPPA2);
  ctx.bezierCurveTo(left + borderLeftWidth, top + height2 - borderBottomWidth - c22, left + borderLeftWidth + c1, top + height2 - borderBottomWidth, left + borderLeftWidth + innerBottomLeftRadiusX, top + height2 - borderBottomWidth);
  ctx.lineTo(left + width - Math.max(rbr, borderRightWidth), top + height2 - borderBottomWidth);
  const innerBottomRightRadiusX = Math.max(rbr - borderRightWidth, 0);
  const innerBottomRightRadiusY = Math.max(rbr - borderBottomWidth, 0);
  const c32 = innerBottomRightRadiusX * (1 - KAPPA2);
  const c42 = innerBottomRightRadiusY * (1 - KAPPA2);
  const bottomRightYCoord = top + height2 - Math.max(borderBottomWidth, rbr);
  ctx.bezierCurveTo(left + width - borderRightWidth - c32, top + height2 - borderBottomWidth, left + width - borderRightWidth, top + height2 - borderBottomWidth - c42, left + width - borderRightWidth, bottomRightYCoord);
  ctx.lineTo(left + width, bottomRightYCoord);
  ctx.lineTo(left + width, top + height2 - rbr);
  const c52 = rbr * (1 - KAPPA2);
  ctx.bezierCurveTo(left + width, top + height2 - c52, left + width - c52, top + height2, left + width - rbr, top + height2);
  ctx.closePath();
  ctx.clip();
  if (borderRightWidth) {
    const brSlope = borderBottomWidth / borderRightWidth;
    ctx.moveTo(left + width / 2, brSlope * (-width / 2) + top + height2);
    ctx.lineTo(left + width, top + height2);
    ctx.lineTo(left, top + height2);
    ctx.lineTo(left, top);
    ctx.closePath();
    ctx.clip();
  }
  if (borderLeftWidth) {
    const trSlope = -borderBottomWidth / borderLeftWidth;
    ctx.moveTo(left + width / 2, trSlope * (width / 2) + top + height2);
    ctx.lineTo(left, top + height2);
    ctx.lineTo(left + width, top + height2);
    ctx.lineTo(left + width, top);
    ctx.closePath();
    ctx.clip();
  }
};
var fillBorderBottom = (ctx, layout2, style, rbl, rbr) => {
  const { top, left, width, height: height2 } = layout2;
  const { borderBottomColor, borderBottomStyle, borderBottomWidth, borderRightWidth, borderLeftWidth } = style;
  const c0 = rbl * (1 - KAPPA2);
  const c1 = rbr * (1 - KAPPA2);
  ctx.moveTo(left + width, top + height2 - rbr);
  ctx.bezierCurveTo(left + width, top + height2 - c1, left + width - c1, top + height2, left + width - rbr, top + height2);
  ctx.lineTo(left + rbl, top + height2);
  ctx.bezierCurveTo(left + c0, top + height2, left, top + height2 - c0, left, top + height2 - rbl);
  ctx.strokeColor(borderBottomColor);
  ctx.lineWidth(Math.max(borderBottomWidth, borderRightWidth, borderLeftWidth) * 2);
  if (borderBottomStyle === "dashed") {
    ctx.dash(borderBottomWidth * 2, { space: borderBottomWidth * 1.2 });
  } else if (borderBottomStyle === "dotted") {
    ctx.dash(borderBottomWidth, { space: borderBottomWidth * 1.2 });
  }
  ctx.stroke();
  ctx.undash();
};
var clipBorderLeft = (ctx, layout2, style, rbl, rtl) => {
  const { top, left, width, height: height2 } = layout2;
  const { borderTopWidth, borderLeftWidth, borderBottomWidth } = style;
  ctx.moveTo(left, top + height2 - rbl);
  ctx.lineTo(left, top + rtl);
  const c0 = rtl * (1 - KAPPA2);
  ctx.bezierCurveTo(left, top + c0, left + c0, top, left + rtl, top);
  const topLeftCoordX = left + Math.max(borderLeftWidth, rtl);
  ctx.lineTo(topLeftCoordX, top);
  ctx.lineTo(topLeftCoordX, top + borderTopWidth);
  const innerTopLeftRadiusX = Math.max(rtl - borderLeftWidth, 0);
  const innerTopLeftRadiusY = Math.max(rtl - borderTopWidth, 0);
  const c1 = innerTopLeftRadiusX * (1 - KAPPA2);
  const c22 = innerTopLeftRadiusY * (1 - KAPPA2);
  ctx.bezierCurveTo(left + borderLeftWidth + c1, top + borderTopWidth, left + borderLeftWidth, top + borderTopWidth + c22, left + borderLeftWidth, top + Math.max(rtl, borderTopWidth));
  ctx.lineTo(left + borderLeftWidth, top + height2 - Math.max(rbl, borderBottomWidth));
  const innerBottomLeftRadiusX = Math.max(rbl - borderLeftWidth, 0);
  const innerBottomLeftRadiusY = Math.max(rbl - borderBottomWidth, 0);
  const c32 = innerBottomLeftRadiusX * (1 - KAPPA2);
  const c42 = innerBottomLeftRadiusY * (1 - KAPPA2);
  const bottomLeftXCoord = left + Math.max(rbl, borderLeftWidth);
  ctx.bezierCurveTo(left + borderLeftWidth, top + height2 - borderBottomWidth - c42, left + borderLeftWidth + c32, top + height2 - borderBottomWidth, bottomLeftXCoord, top + height2 - borderBottomWidth);
  ctx.lineTo(bottomLeftXCoord, top + height2);
  ctx.lineTo(left + rbl, top + height2);
  const c52 = rbl * (1 - KAPPA2);
  ctx.bezierCurveTo(left + c52, top + height2, left, top + height2 - c52, left, top + height2 - rbl);
  ctx.closePath();
  ctx.clip();
  if (borderBottomWidth) {
    const trSlope = -borderBottomWidth / borderLeftWidth;
    ctx.moveTo(left + width / 2, trSlope * (width / 2) + top + height2);
    ctx.lineTo(left, top + height2);
    ctx.lineTo(left, top);
    ctx.lineTo(left + width, top);
    ctx.closePath();
    ctx.clip();
  }
  if (borderBottomWidth) {
    const trSlope = -borderTopWidth / borderLeftWidth;
    ctx.moveTo(left + width / 2, trSlope * (-width / 2) + top);
    ctx.lineTo(left, top);
    ctx.lineTo(left, top + height2);
    ctx.lineTo(left + width, top + height2);
    ctx.closePath();
    ctx.clip();
  }
};
var fillBorderLeft = (ctx, layout2, style, rbl, rtl) => {
  const { top, left, height: height2 } = layout2;
  const { borderLeftColor, borderLeftStyle, borderLeftWidth, borderTopWidth, borderBottomWidth } = style;
  const c0 = rbl * (1 - KAPPA2);
  const c1 = rtl * (1 - KAPPA2);
  ctx.moveTo(left + rbl, top + height2);
  ctx.bezierCurveTo(left + c0, top + height2, left, top + height2 - c0, left, top + height2 - rbl);
  ctx.lineTo(left, top + rtl);
  ctx.bezierCurveTo(left, top + c1, left + c1, top, left + rtl, top);
  ctx.strokeColor(borderLeftColor);
  ctx.lineWidth(Math.max(borderLeftWidth, borderTopWidth, borderBottomWidth) * 2);
  if (borderLeftStyle === "dashed") {
    ctx.dash(borderLeftWidth * 2, { space: borderLeftWidth * 1.2 });
  } else if (borderLeftStyle === "dotted") {
    ctx.dash(borderLeftWidth, { space: borderLeftWidth * 1.2 });
  }
  ctx.stroke();
  ctx.undash();
};
var shouldRenderBorders = (node) => node.box && (node.box.borderTopWidth || node.box.borderRightWidth || node.box.borderBottomWidth || node.box.borderLeftWidth);
var renderBorders = (ctx, node) => {
  if (!node.box)
    return;
  if (!shouldRenderBorders(node))
    return;
  const { width, height: height2, borderTopWidth = 0, borderLeftWidth = 0, borderRightWidth = 0, borderBottomWidth = 0 } = node.box;
  const { opacity = 1, borderTopColor = "black", borderTopStyle = "solid", borderLeftColor = "black", borderLeftStyle = "solid", borderRightColor = "black", borderRightStyle = "solid", borderBottomColor = "black", borderBottomStyle = "solid" } = node.style;
  const borderTopLeftRadius = node.style.borderTopLeftRadius || 0;
  const borderTopRightRadius = node.style.borderTopRightRadius || 0;
  const borderBottomLeftRadius = node.style.borderBottomLeftRadius || 0;
  const borderBottomRightRadius = node.style.borderBottomRightRadius || 0;
  const style = {
    borderTopColor,
    borderTopWidth,
    borderTopStyle,
    borderLeftColor,
    borderLeftWidth,
    borderLeftStyle,
    borderRightColor,
    borderRightWidth,
    borderRightStyle,
    borderBottomColor,
    borderBottomWidth,
    borderBottomStyle
  };
  const rtr = Math.min(borderTopRightRadius, 0.5 * width, 0.5 * height2);
  const rtl = Math.min(borderTopLeftRadius, 0.5 * width, 0.5 * height2);
  const rbr = Math.min(borderBottomRightRadius, 0.5 * width, 0.5 * height2);
  const rbl = Math.min(borderBottomLeftRadius, 0.5 * width, 0.5 * height2);
  ctx.save();
  ctx.strokeOpacity(opacity);
  if (borderTopWidth) {
    ctx.save();
    clipBorderTop(ctx, node.box, style, rtr, rtl);
    fillBorderTop(ctx, node.box, style, rtr, rtl);
    ctx.restore();
  }
  if (borderRightWidth) {
    ctx.save();
    clipBorderRight(ctx, node.box, style, rtr, rbr);
    fillBorderRight(ctx, node.box, style, rtr, rbr);
    ctx.restore();
  }
  if (borderBottomWidth) {
    ctx.save();
    clipBorderBottom(ctx, node.box, style, rbl, rbr);
    fillBorderBottom(ctx, node.box, style, rbl, rbr);
    ctx.restore();
  }
  if (borderLeftWidth) {
    ctx.save();
    clipBorderLeft(ctx, node.box, style, rbl, rtl);
    fillBorderLeft(ctx, node.box, style, rbl, rtl);
    ctx.restore();
  }
  ctx.restore();
};
var drawBackground = (ctx, node) => {
  if (!node.box)
    return;
  const { top, left, width, height: height2 } = node.box;
  const color = parseColor(node.style.backgroundColor);
  const nodeOpacity = isNil(node.style?.opacity) ? 1 : node.style.opacity;
  const opacity = Math.min(color.opacity, nodeOpacity);
  ctx.fillOpacity(opacity).fillColor(color.value).rect(left, top, width, height2).fill();
};
var renderBackground = (ctx, node) => {
  const hasBackground = !!node.box && !!node.style?.backgroundColor;
  if (hasBackground) {
    ctx.save();
    clipNode(ctx, node);
    drawBackground(ctx, node);
    ctx.restore();
  }
};
var isString3 = (value2) => typeof value2 === "string";
var isSrcId = (value2) => /^#.+/.test(value2);
var renderLink = (ctx, node, src) => {
  if (!src || !node.box)
    return;
  const isId = isSrcId(src);
  const method = isId ? "goTo" : "link";
  const value2 = isId ? src.slice(1) : src;
  const { top, left, width, height: height2 } = node.box;
  ctx[method](left, top, width, height2, value2);
};
var setLink = (ctx, node) => {
  const props = node.props || {};
  if ("src" in props && isString3(props.src))
    return renderLink(ctx, node, props.src);
  if ("href" in props && isString3(props.href))
    return renderLink(ctx, node, props.href);
};
var setDestination = (ctx, node) => {
  if (!node.box)
    return;
  if (!node.props)
    return;
  if ("id" in node.props) {
    ctx.addNamedDestination(node.props.id, "XYZ", null, node.box.top, null);
  }
};
var clean = (options) => {
  const opt = { ...options };
  Object.entries(opt).forEach((pair) => {
    if (!pair[1]) {
      delete opt[pair[0]];
    }
  });
  return opt;
};
var parseCommonFormOptions = (node) => {
  return {
    required: node.props?.required || false,
    noExport: node.props?.noExport || false,
    readOnly: node.props?.readOnly || false,
    value: node.props?.value || void 0,
    defaultValue: node.props?.defaultValue || void 0
  };
};
var parseTextInputOptions = (node, fieldSet) => {
  return clean({
    ...parseCommonFormOptions(node),
    parent: fieldSet || void 0,
    align: node.props?.align || "left",
    multiline: node.props?.multiline || void 0,
    password: node.props?.password || false,
    noSpell: node.props?.noSpell || false,
    format: node.props?.format || void 0,
    fontSize: node.props?.fontSize || void 0,
    MaxLen: node.props?.maxLength || void 0
  });
};
var parseSelectAndListFieldOptions = (node) => {
  return clean({
    ...parseCommonFormOptions(node),
    sort: node.props?.sort || false,
    edit: node.props?.edit || false,
    multiSelect: node.props?.multiSelect || false,
    noSpell: node.props?.noSpell || false,
    select: node.props?.select || [""]
  });
};
var getAppearance = (ctx, codepoint, width, height2) => {
  const appearance = ctx.ref({
    Type: "XObject",
    Subtype: "Form",
    BBox: [0, 0, width, height2],
    Resources: {
      ProcSet: ["PDF", "Text", "ImageB", "ImageC", "ImageI"],
      Font: {
        ZaDi: ctx._acroform.fonts.ZaDi
      }
    }
  });
  appearance.initDeflate();
  appearance.write(`/Tx BMC
q
/ZaDi ${height2 * 0.8} Tf
BT
${width * 0.45} ${height2 / 4} Td (${codepoint}) Tj
ET
Q
EMC`);
  appearance.end(null);
  return appearance;
};
var parseCheckboxOptions = (ctx, node, fieldSet) => {
  const { width, height: height2 } = node.box || {};
  const onOption = node.props?.onState || "Yes";
  const offOption = node.props?.offState || "Off";
  const xMark = node.props?.xMark || false;
  if (!Object.prototype.hasOwnProperty.call(ctx._acroform.fonts, "ZaDi")) {
    const ref = ctx.ref({
      Type: "Font",
      Subtype: "Type1",
      BaseFont: "ZapfDingbats"
    });
    ctx._acroform.fonts.ZaDi = ref;
    ref.end(null);
  }
  const normalAppearance = {
    [onOption]: getAppearance(ctx, xMark ? "8" : "4", width, height2),
    [offOption]: getAppearance(ctx, xMark ? " " : "8", width, height2)
  };
  return clean({
    ...parseCommonFormOptions(node),
    backgroundColor: node.props?.backgroundColor || void 0,
    borderColor: node.props?.borderColor || void 0,
    parent: fieldSet || void 0,
    value: `/${node.props?.checked === true ? onOption : offOption}`,
    defaultValue: `/${node.props?.checked === true ? onOption : offOption}`,
    AS: node.props?.checked === true ? onOption : offOption,
    AP: { N: normalAppearance, D: normalAppearance }
  });
};
var renderTextInput = (ctx, node, options) => {
  if (!node.box)
    return;
  const { top, left, width, height: height2 } = node.box;
  const name = node.props?.name || "";
  const fieldSetOptions = options.fieldSets?.at(0);
  if (!ctx._root.data.AcroForm) {
    ctx.initForm();
  }
  ctx.formText(name, left, top, width, height2, parseTextInputOptions(node, fieldSetOptions));
};
var renderSelect = (ctx, node) => {
  if (!node.box)
    return;
  const { top, left, width, height: height2 } = node.box;
  const name = node.props?.name || "";
  if (!ctx._root.data.AcroForm) {
    ctx.initForm();
  }
  ctx.formCombo(name, left, top, width, height2, parseSelectAndListFieldOptions(node));
};
var renderFieldSet = (ctx, node, options) => {
  const name = node.props?.name || "";
  if (!ctx._root.data.AcroForm) {
    ctx.initForm();
  }
  const formField = ctx.formField(name);
  const option = options;
  if (!option.fieldSets) {
    option.fieldSets = [formField];
  } else {
    option.fieldSets.push(formField);
  }
};
var cleanUpFieldSet = (_ctx, _node, options) => {
  options.fieldSets.pop();
};
var renderList = (ctx, node) => {
  if (!node.box)
    return;
  const { top, left, width, height: height2 } = node.box || {};
  const name = "name" in node.props ? node.props.name || "" : "";
  if (!ctx._root.data.AcroForm) {
    ctx.initForm();
  }
  ctx.formList(name, left, top, width, height2, parseSelectAndListFieldOptions(node));
};
var renderCheckbox = (ctx, node, options) => {
  if (!node.box)
    return;
  const { top, left, width, height: height2 } = node.box;
  const name = node.props?.name || "";
  const fieldSetOptions = options.fieldSets?.at(0);
  if (!ctx._root.data.AcroForm) {
    ctx.initForm();
  }
  ctx.formCheckbox(name, left, top, width, height2, parseCheckboxOptions(ctx, node, fieldSetOptions));
};
var isRecursiveNode = (node) => node.type !== Text && node.type !== Svg;
var renderChildren = (ctx, node, options) => {
  ctx.save();
  if (node.box) {
    ctx.translate(node.box.left, node.box.top);
  }
  const children = node.children || [];
  const renderChild = (child) => renderNode(ctx, child, options);
  children.forEach(renderChild);
  ctx.restore();
};
var renderFns = {
  [Text]: renderText,
  [Note]: renderNote,
  [Image]: renderImage,
  [FieldSet]: renderFieldSet,
  [TextInput]: renderTextInput,
  [Select]: renderSelect,
  [Checkbox]: renderCheckbox,
  [List]: renderList,
  [Canvas]: renderCanvas,
  [Svg]: renderSvg,
  [Link]: setLink
};
var cleanUpFns = {
  [FieldSet]: cleanUpFieldSet
};
var renderNode = (ctx, node, options) => {
  const overflowHidden = node.style?.overflow === "hidden";
  const shouldRenderChildren = isRecursiveNode(node);
  if (node.type === Page)
    renderPage(ctx, node);
  ctx.save();
  if (overflowHidden)
    clipNode(ctx, node);
  applyTransformations(ctx, node);
  renderBackground(ctx, node);
  renderBorders(ctx, node);
  const renderFn = renderFns[node.type];
  if (renderFn)
    renderFn(ctx, node, options);
  if (shouldRenderChildren)
    renderChildren(ctx, node, options);
  const cleanUpFn = cleanUpFns[node.type];
  if (cleanUpFn)
    cleanUpFn(ctx, node, options);
  setDestination(ctx, node);
  renderDebug(ctx, node);
  ctx.restore();
};
var addNodeBookmark = (ctx, node, pageNumber, registry) => {
  if (!node.box)
    return;
  if (!node.props)
    return;
  if ("bookmark" in node.props && node.props.bookmark) {
    const bookmark = node.props.bookmark;
    const { title, parent, expanded, zoom, fit } = bookmark;
    const outline = registry[parent] || ctx.outline;
    const top = bookmark.top || node.box.top;
    const left = bookmark.left || node.box.left;
    const instance = outline.addItem(title, {
      pageNumber,
      expanded,
      top,
      left,
      zoom,
      fit
    });
    registry[bookmark.ref] = instance;
  }
  if (!node.children)
    return;
  node.children.forEach((child) => addNodeBookmark(ctx, child, pageNumber, registry));
};
var addBookmarks = (ctx, root) => {
  const registry = {};
  const pages = root.children || [];
  pages.forEach((page, i5) => {
    addNodeBookmark(ctx, page, i5, registry);
  });
};
var render = (ctx, doc) => {
  const pages = doc.children || [];
  const options = { imageCache: /* @__PURE__ */ new Map(), fieldSets: [] };
  pages.forEach((page) => renderNode(ctx, page, options));
  addBookmarks(ctx, doc);
  ctx.end();
  return ctx;
};

// ../../node_modules/.pnpm/@react-pdf+stylesheet@6.1.2/node_modules/@react-pdf/stylesheet/lib/index.js
var import_media_engine = __toESM(require_src2(), 1);
var import_hsl_to_hex = __toESM(require_hsl_to_hex(), 1);
var import_color_string2 = __toESM(require_color_string(), 1);
var import_parse = __toESM(require_parse10(), 1);
var import_unit = __toESM(require_unit(), 1);
var compact = (array) => array.filter(Boolean);
var mergeStyles = (styles7) => styles7.reduce((acc, style) => {
  const s4 = Array.isArray(style) ? flatten(style) : style;
  Object.keys(s4).forEach((key) => {
    if (s4[key] !== null && s4[key] !== void 0) {
      acc[key] = s4[key];
    }
  });
  return acc;
}, {});
var flatten = compose(mergeStyles, compact, castArray);
var resolveMediaQueries = (container, style) => {
  return Object.keys(style).reduce((acc, key) => {
    if (/@media/.test(key)) {
      return {
        ...acc,
        ...(0, import_media_engine.default)({ [key]: style[key] }, container)
      };
    }
    return { ...acc, [key]: style[key] };
  }, {});
};
var isRgb = (value2) => /rgba?/g.test(value2);
var isHsl = (value2) => /hsla?/g.test(value2);
var parseRgb = (value2) => {
  const rgb = import_color_string2.default.get.rgb(value2);
  return import_color_string2.default.to.hex(rgb);
};
var parseHsl = (value2) => {
  const hsl = import_color_string2.default.get.hsl(value2).map(Math.round);
  const hex = (0, import_hsl_to_hex.default)(...hsl);
  return hex.toUpperCase();
};
var transformColor = (value2) => {
  if (isRgb(value2))
    return parseRgb(value2);
  if (isHsl(value2))
    return parseHsl(value2);
  return value2;
};
var parseValue = (value2) => {
  if (typeof value2 === "number")
    return { value: value2, unit: void 0 };
  const match = /^(-?\d*\.?\d+)(in|mm|cm|pt|vh|vw|px|rem)?$/g.exec(value2);
  return match ? { value: parseFloat(match[1]), unit: match[2] || "pt" } : { value: value2, unit: void 0 };
};
var transformUnit = (container, value2) => {
  const scalar = parseValue(value2);
  const outputDpi = 72;
  const inputDpi = container.dpi || 72;
  const mmFactor = 1 / 25.4 * outputDpi;
  const cmFactor = 1 / 2.54 * outputDpi;
  if (typeof scalar.value !== "number")
    return scalar.value;
  switch (scalar.unit) {
    case "rem":
      return scalar.value * (container.remBase || 18);
    case "in":
      return scalar.value * outputDpi;
    case "mm":
      return scalar.value * mmFactor;
    case "cm":
      return scalar.value * cmFactor;
    case "vh":
      return scalar.value * (container.height / 100);
    case "vw":
      return scalar.value * (container.width / 100);
    case "px":
      return Math.round(scalar.value * (outputDpi / inputDpi));
    default:
      return scalar.value;
  }
};
var processNumberValue = (key, value2) => ({
  [key]: parseFloat$1(value2)
});
var processUnitValue = (key, value2, container) => ({
  [key]: transformUnit(container, value2)
});
var processColorValue = (key, value2) => {
  const result = { [key]: transformColor(value2) };
  return result;
};
var processNoopValue = (key, value2) => ({
  [key]: value2
});
var BORDER_SHORTHAND_REGEX = /(-?\d+(\.\d+)?(in|mm|cm|pt|vw|vh|px|rem)?)\s(\S+)\s(.+)/;
var matchBorderShorthand = (value2) => value2.match(BORDER_SHORTHAND_REGEX) || [];
var resolveBorderShorthand = (key, value2, container) => {
  const match = matchBorderShorthand(`${value2}`);
  if (match) {
    const widthMatch = match[1] || value2;
    const styleMatch = match[4] || value2;
    const colorMatch = match[5] || value2;
    const style = styleMatch;
    const color = colorMatch ? transformColor(colorMatch) : void 0;
    const width = widthMatch ? transformUnit(container, widthMatch) : void 0;
    if (key.match(/(Top|Right|Bottom|Left)$/)) {
      return {
        [`${key}Color`]: color,
        [`${key}Style`]: style,
        [`${key}Width`]: width
      };
    }
    if (key.match(/Color$/)) {
      return {
        borderTopColor: color,
        borderRightColor: color,
        borderBottomColor: color,
        borderLeftColor: color
      };
    }
    if (key.match(/Style$/)) {
      if (typeof style === "number")
        throw new Error(`Invalid border style: ${style}`);
      return {
        borderTopStyle: style,
        borderRightStyle: style,
        borderBottomStyle: style,
        borderLeftStyle: style
      };
    }
    if (key.match(/Width$/)) {
      if (typeof width !== "number")
        throw new Error(`Invalid border width: ${width}`);
      return {
        borderTopWidth: width,
        borderRightWidth: width,
        borderBottomWidth: width,
        borderLeftWidth: width
      };
    }
    if (key.match(/Radius$/)) {
      const radius = value2 ? transformUnit(container, value2) : void 0;
      if (typeof radius !== "number")
        throw new Error(`Invalid border radius: ${radius}`);
      return {
        borderTopLeftRadius: radius,
        borderTopRightRadius: radius,
        borderBottomRightRadius: radius,
        borderBottomLeftRadius: radius
      };
    }
    if (typeof width !== "number")
      throw new Error(`Invalid border width: ${width}`);
    if (typeof style === "number")
      throw new Error(`Invalid border style: ${style}`);
    return {
      borderTopColor: color,
      borderTopStyle: style,
      borderTopWidth: width,
      borderRightColor: color,
      borderRightStyle: style,
      borderRightWidth: width,
      borderBottomColor: color,
      borderBottomStyle: style,
      borderBottomWidth: width,
      borderLeftColor: color,
      borderLeftStyle: style,
      borderLeftWidth: width
    };
  }
  return { [key]: value2 };
};
var handlers$b = {
  border: resolveBorderShorthand,
  borderBottom: resolveBorderShorthand,
  borderBottomColor: processColorValue,
  borderBottomLeftRadius: processUnitValue,
  borderBottomRightRadius: processUnitValue,
  borderBottomStyle: processNoopValue,
  borderBottomWidth: processUnitValue,
  borderColor: resolveBorderShorthand,
  borderLeft: resolveBorderShorthand,
  borderLeftColor: processColorValue,
  borderLeftStyle: processNoopValue,
  borderLeftWidth: processUnitValue,
  borderRadius: resolveBorderShorthand,
  borderRight: resolveBorderShorthand,
  borderRightColor: processColorValue,
  borderRightStyle: processNoopValue,
  borderRightWidth: processUnitValue,
  borderStyle: resolveBorderShorthand,
  borderTop: resolveBorderShorthand,
  borderTopColor: processColorValue,
  borderTopLeftRadius: processUnitValue,
  borderTopRightRadius: processUnitValue,
  borderTopStyle: processNoopValue,
  borderTopWidth: processUnitValue,
  borderWidth: resolveBorderShorthand
};
var handlers$a = {
  backgroundColor: processColorValue,
  color: processColorValue,
  opacity: processNumberValue
};
var handlers$9 = {
  height: processUnitValue,
  maxHeight: processUnitValue,
  maxWidth: processUnitValue,
  minHeight: processUnitValue,
  minWidth: processUnitValue,
  width: processUnitValue
};
var flexDefaults = [1, 1, 0];
var flexAuto = [1, 1, "auto"];
var processFlexShorthand = (key, value2, container) => {
  let defaults4 = flexDefaults;
  let matches = [];
  if (value2 === "auto") {
    defaults4 = flexAuto;
  } else {
    matches = `${value2}`.split(" ");
  }
  const flexGrow = parseFloat$1(matches[0] || defaults4[0]);
  const flexShrink = parseFloat$1(matches[1] || defaults4[1]);
  const flexBasis = transformUnit(container, matches[2] || defaults4[2]);
  return { flexGrow, flexShrink, flexBasis };
};
var handlers$8 = {
  alignContent: processNoopValue,
  alignItems: processNoopValue,
  alignSelf: processNoopValue,
  flex: processFlexShorthand,
  flexBasis: processUnitValue,
  flexDirection: processNoopValue,
  flexFlow: processNoopValue,
  flexGrow: processNumberValue,
  flexShrink: processNumberValue,
  flexWrap: processNoopValue,
  justifyContent: processNoopValue,
  justifySelf: processNoopValue
};
var processGapShorthand = (key, value2, container) => {
  const match = `${value2}`.split(" ");
  const rowGap = transformUnit(container, match?.[0] || value2);
  const columnGap = transformUnit(container, match?.[1] || value2);
  return { rowGap, columnGap };
};
var handlers$7 = {
  gap: processGapShorthand,
  columnGap: processUnitValue,
  rowGap: processUnitValue
};
var handlers$6 = {
  aspectRatio: processNumberValue,
  bottom: processUnitValue,
  display: processNoopValue,
  left: processUnitValue,
  position: processNoopValue,
  right: processUnitValue,
  top: processUnitValue,
  overflow: processNoopValue,
  zIndex: processNumberValue
};
var BOX_MODEL_UNITS = "px,in,mm,cm,pt,%,vw,vh";
var logError = (style, value2) => {
  const name = style.toString();
  console.error(`
    @react-pdf/stylesheet parsing error:
    ${name}: ${value2},
    ${" ".repeat(name.length + 2)}^
    Unsupported ${name} value format
  `);
};
var expandBoxModel = ({ expandsTo, maxValues = 1, autoSupported = false } = {}) => (model, value2, container) => {
  const nodes = (0, import_parse.default)(`${value2}`);
  const parts = [];
  for (let i5 = 0; i5 < nodes.length; i5++) {
    const node = nodes[i5];
    if (node.type === "function" || node.type === "string" || node.type === "div") {
      logError(model, value2);
      return {};
    }
    if (node.type === "word") {
      if (node.value === "auto" && autoSupported) {
        parts.push(node.value);
      } else {
        const result = (0, import_unit.default)(node.value);
        if (result && BOX_MODEL_UNITS.includes(result.unit)) {
          parts.push(node.value);
        } else {
          logError(model, value2);
          return {};
        }
      }
    }
  }
  if (parts.length > maxValues) {
    logError(model, value2);
    return {};
  }
  const first = transformUnit(container, parts[0]);
  if (expandsTo) {
    const second = transformUnit(container, parts[1] || parts[0]);
    const third = transformUnit(container, parts[2] || parts[0]);
    const fourth = transformUnit(container, parts[3] || parts[1] || parts[0]);
    return expandsTo({ first, second, third, fourth });
  }
  return {
    [model]: first
  };
};
var processMargin = expandBoxModel({
  expandsTo: ({ first, second, third, fourth }) => ({
    marginTop: first,
    marginRight: second,
    marginBottom: third,
    marginLeft: fourth
  }),
  maxValues: 4,
  autoSupported: true
});
var processMarginVertical = expandBoxModel({
  expandsTo: ({ first, second }) => ({
    marginTop: first,
    marginBottom: second
  }),
  maxValues: 2,
  autoSupported: true
});
var processMarginHorizontal = expandBoxModel({
  expandsTo: ({ first, second }) => ({
    marginRight: first,
    marginLeft: second
  }),
  maxValues: 2,
  autoSupported: true
});
var processMarginSingle = expandBoxModel({
  autoSupported: true
});
var handlers$5 = {
  margin: processMargin,
  marginBottom: processMarginSingle,
  marginHorizontal: processMarginHorizontal,
  marginLeft: processMarginSingle,
  marginRight: processMarginSingle,
  marginTop: processMarginSingle,
  marginVertical: processMarginVertical
};
var processPadding = expandBoxModel({
  expandsTo: ({ first, second, third, fourth }) => ({
    paddingTop: first,
    paddingRight: second,
    paddingBottom: third,
    paddingLeft: fourth
  }),
  maxValues: 4
});
var processPaddingVertical = expandBoxModel({
  expandsTo: ({ first, second }) => ({
    paddingTop: first,
    paddingBottom: second
  }),
  maxValues: 2
});
var processPaddingHorizontal = expandBoxModel({
  expandsTo: ({ first, second }) => ({
    paddingRight: first,
    paddingLeft: second
  }),
  maxValues: 2
});
var processPaddingSingle = expandBoxModel();
var handlers$4 = {
  padding: processPadding,
  paddingBottom: processPaddingSingle,
  paddingHorizontal: processPaddingHorizontal,
  paddingLeft: processPaddingSingle,
  paddingRight: processPaddingSingle,
  paddingTop: processPaddingSingle,
  paddingVertical: processPaddingVertical
};
var offsetKeyword = (value2) => {
  switch (value2) {
    case "top":
    case "left":
      return "0%";
    case "right":
    case "bottom":
      return "100%";
    case "center":
      return "50%";
    default:
      return value2;
  }
};
var processObjectPosition = (key, value2, container) => {
  const match = `${value2}`.split(" ");
  const objectPositionX = offsetKeyword(transformUnit(container, match?.[0] || value2));
  const objectPositionY = offsetKeyword(transformUnit(container, match?.[1] || value2));
  return { objectPositionX, objectPositionY };
};
var processObjectPositionValue = (key, value2, container) => ({
  [key]: offsetKeyword(transformUnit(container, value2))
});
var handlers$3 = {
  objectPosition: processObjectPosition,
  objectPositionX: processObjectPositionValue,
  objectPositionY: processObjectPositionValue,
  objectFit: processNoopValue
};
var castInt = (value2) => {
  if (typeof value2 === "number")
    return value2;
  return parseInt(value2, 10);
};
var FONT_WEIGHTS2 = {
  thin: 100,
  hairline: 100,
  ultralight: 200,
  extralight: 200,
  light: 300,
  normal: 400,
  medium: 500,
  semibold: 600,
  demibold: 600,
  bold: 700,
  ultrabold: 800,
  extrabold: 800,
  heavy: 900,
  black: 900
};
var transformFontWeight = (value2) => {
  if (!value2)
    return FONT_WEIGHTS2.normal;
  if (typeof value2 === "number")
    return value2;
  const lv = value2.toLowerCase();
  if (FONT_WEIGHTS2[lv])
    return FONT_WEIGHTS2[lv];
  return castInt(value2);
};
var processFontWeight = (key, value2) => {
  return { [key]: transformFontWeight(value2) };
};
var transformLineHeight = (value2, styles7, container) => {
  if (value2 === "")
    return value2;
  const fontSize = transformUnit(container, styles7.fontSize || 18);
  const lineHeight = transformUnit(container, value2);
  const { percent } = matchPercent(lineHeight) || {};
  if (percent)
    return percent * fontSize;
  return isNaN(value2) ? lineHeight : lineHeight * fontSize;
};
var processLineHeight = (key, value2, container, styles7) => {
  return {
    [key]: transformLineHeight(value2, styles7, container)
  };
};
var handlers$2 = {
  direction: processNoopValue,
  fontFamily: processNoopValue,
  fontSize: processUnitValue,
  fontStyle: processNoopValue,
  fontWeight: processFontWeight,
  letterSpacing: processUnitValue,
  lineHeight: processLineHeight,
  maxLines: processNumberValue,
  textAlign: processNoopValue,
  textDecoration: processNoopValue,
  textDecorationColor: processColorValue,
  textDecorationStyle: processNoopValue,
  textIndent: processNoopValue,
  textOverflow: processNoopValue,
  textTransform: processNoopValue,
  verticalAlign: processNoopValue
};
var matchNumber = (value2) => typeof value2 === "string" && /^-?\d*\.?\d*$/.test(value2);
var castFloat = (value2) => {
  if (typeof value2 !== "string")
    return value2;
  if (matchNumber(value2))
    return parseFloat(value2);
  return value2;
};
var parse2 = (transformString) => {
  const transforms = transformString.trim().split(/\)[ ,]|\)/);
  if (transforms.length === 1) {
    return [[transforms[0], true]];
  }
  const parsed = [];
  for (let i5 = 0; i5 < transforms.length; i5 += 1) {
    const transform = transforms[i5];
    if (transform) {
      const [name, rawValue] = transform.split("(");
      const splitChar = rawValue.indexOf(",") >= 0 ? "," : " ";
      const value2 = rawValue.split(splitChar).map((val) => val.trim());
      parsed.push({ operation: name.trim(), value: value2 });
    }
  }
  return parsed;
};
var parseAngle = (value2) => {
  const unitsRegexp = /(-?\d*\.?\d*)(\w*)?/i;
  const [, angle, unit] = unitsRegexp.exec(value2);
  const number3 = Number.parseFloat(angle);
  return unit === "rad" ? number3 * 180 / Math.PI : number3;
};
var normalizeTransformOperation = ({ operation, value: value2 }) => {
  switch (operation) {
    case "scale": {
      const [scaleX, scaleY = scaleX] = value2.map((num) => Number.parseFloat(num));
      return { operation: "scale", value: [scaleX, scaleY] };
    }
    case "scaleX": {
      return { operation: "scale", value: [Number.parseFloat(value2), 1] };
    }
    case "scaleY": {
      return { operation: "scale", value: [1, Number.parseFloat(value2)] };
    }
    case "rotate": {
      return { operation: "rotate", value: [parseAngle(value2)] };
    }
    case "translate": {
      return {
        operation: "translate",
        value: value2.map((num) => Number.parseFloat(num))
      };
    }
    case "translateX": {
      return {
        operation: "translate",
        value: [Number.parseFloat(value2), 0]
      };
    }
    case "translateY": {
      return { operation: "translate", value: [0, Number.parseFloat(value2)] };
    }
    case "skew": {
      return { operation: "skew", value: value2.map(parseAngle) };
    }
    case "skewX": {
      return { operation: "skew", value: [parseAngle(value2), 0] };
    }
    case "skewY": {
      return { operation: "skew", value: [0, parseAngle(value2)] };
    }
    default: {
      return { operation, value: value2.map((num) => Number.parseFloat(num)) };
    }
  }
};
var normalize2 = (operations) => {
  return operations.map((operation) => normalizeTransformOperation(operation));
};
var processTransform = (key, value2) => {
  if (typeof value2 !== "string")
    return { [key]: value2 };
  return { [key]: normalize2(parse2(value2)) };
};
var Y_AXIS_SHORTHANDS = { top: true, bottom: true };
var sortTransformOriginPair = (a5, b3) => {
  if (Y_AXIS_SHORTHANDS[a5])
    return 1;
  if (Y_AXIS_SHORTHANDS[b3])
    return -1;
  return 0;
};
var getTransformOriginPair = (values) => {
  if (!values || values.length === 0)
    return ["center", "center"];
  const pair = values.length === 1 ? [values[0], "center"] : values;
  return pair.sort(sortTransformOriginPair);
};
var processTransformOriginShorthand = (key, value2, container) => {
  const match = `${value2}`.split(" ");
  const pair = getTransformOriginPair(match);
  const transformOriginX = transformUnit(container, pair[0]);
  const transformOriginY = transformUnit(container, pair[1]);
  return {
    transformOriginX: offsetKeyword(transformOriginX) || castFloat(transformOriginX),
    transformOriginY: offsetKeyword(transformOriginY) || castFloat(transformOriginY)
  };
};
var processTransformOriginValue = (key, value2, container) => {
  const v3 = transformUnit(container, value2);
  return { [key]: offsetKeyword(v3) || castFloat(v3) };
};
var handlers$1 = {
  transform: processTransform,
  gradientTransform: processTransform,
  transformOrigin: processTransformOriginShorthand,
  transformOriginX: processTransformOriginValue,
  transformOriginY: processTransformOriginValue
};
var handlers2 = {
  fill: processColorValue,
  stroke: processColorValue,
  strokeDasharray: processNoopValue,
  strokeWidth: processUnitValue,
  fillOpacity: processNumberValue,
  strokeOpacity: processNumberValue,
  fillRule: processNoopValue,
  textAnchor: processNoopValue,
  strokeLinecap: processNoopValue,
  strokeLinejoin: processNoopValue,
  visibility: processNoopValue,
  clipPath: processNoopValue,
  dominantBaseline: processNoopValue
};
var shorthands = {
  ...handlers$b,
  ...handlers$a,
  ...handlers$9,
  ...handlers$8,
  ...handlers$7,
  ...handlers$6,
  ...handlers$5,
  ...handlers$4,
  ...handlers$3,
  ...handlers$2,
  ...handlers$1,
  ...handlers2
};
var resolve2 = (container) => (style) => {
  const propsArray = Object.keys(style);
  const resolvedStyle = {};
  for (let i5 = 0; i5 < propsArray.length; i5 += 1) {
    const key = propsArray[i5];
    const value2 = style[key];
    if (!shorthands[key]) {
      resolvedStyle[key] = value2;
      continue;
    }
    const resolved = shorthands[key](key, value2, container, style);
    const keys2 = Object.keys(resolved);
    for (let j = 0; j < keys2.length; j += 1) {
      const propName = keys2[j];
      const propValue = resolved[propName];
      resolvedStyle[propName] = propValue;
    }
  }
  return resolvedStyle;
};
var resolveStyles = (container, style) => {
  const computeMediaQueries = (value2) => resolveMediaQueries(container, value2);
  return compose(resolve2(container), computeMediaQueries, flatten)(style);
};

// ../../node_modules/.pnpm/@react-pdf+textkit@6.1.0/node_modules/@react-pdf/textkit/lib/textkit.js
var import_bidi_js = __toESM(require_bidi(), 1);
var import_hyphen = __toESM(require_hyphen2(), 1);
var import_en_us = __toESM(require_en_us(), 1);
var fromFragments = (fragments) => {
  let offset2 = 0;
  let string = "";
  const runs = [];
  fragments.forEach((fragment) => {
    string += fragment.string;
    runs.push({
      ...fragment,
      start: offset2,
      end: offset2 + fragment.string.length,
      attributes: fragment.attributes || {}
    });
    offset2 += fragment.string.length;
  });
  return { string, runs };
};
var SOFT_HYPHEN$1 = "\xAD";
var defaultHyphenate = (word) => [word];
var removeSoftHyphens = (word) => {
  return word.replaceAll(SOFT_HYPHEN$1, "");
};
var wrapWords = (engines2 = {}, options = {}) => {
  return (attributedString) => {
    const syllables = [];
    const fragments = [];
    const builtinHyphenate = engines2.wordHyphenation?.() || defaultHyphenate;
    const hyphenate = options.hyphenationCallback || builtinHyphenate;
    let offset2 = 0;
    for (let i5 = 0; i5 < attributedString.runs.length; i5 += 1) {
      let string = "";
      const run = attributedString.runs[i5];
      const words = attributedString.string.slice(run.start, run.end).split(/([ ]+)/g).filter(Boolean);
      for (let j = 0; j < words.length; j += 1) {
        const word = words[j];
        const parts = hyphenate(word, builtinHyphenate).map(removeSoftHyphens);
        syllables.push(...parts);
        string += parts.join("");
      }
      const runOffset = run.end - run.start - string.length;
      const start2 = run.start - offset2;
      const end2 = run.end - offset2 - runOffset;
      fragments.push({ ...run, start: start2, end: end2, string });
      offset2 += runOffset;
    }
    const result = { ...fromFragments(fragments), syllables };
    return result;
  };
};
var copy = (rect) => {
  return Object.assign({}, rect);
};
var partition = (rect, height2) => {
  const a5 = Object.assign({}, rect, { height: height2 });
  const b3 = Object.assign({}, rect, {
    y: rect.y + height2,
    height: rect.height - height2
  });
  return [a5, b3];
};
var crop = (height2, rect) => {
  const [, result] = partition(rect, height2);
  return result;
};
var height$2 = (paragraph) => {
  return paragraph.reduce((acc, block) => acc + block.box.height, 0);
};
var calculateScale = (run) => {
  const attributes2 = run.attributes || {};
  const fontSize = attributes2.fontSize || 12;
  const font = attributes2.font;
  const unitsPerEm = typeof font === "string" ? null : font?.[0]?.unitsPerEm;
  return unitsPerEm ? fontSize / unitsPerEm : 0;
};
var scale = (run) => {
  return run.attributes?.scale || calculateScale(run);
};
var offset = (index2, run) => {
  if (!run)
    return 0;
  const glyphIndices = run.glyphIndices || [];
  const value2 = glyphIndices[index2];
  return glyphIndices.slice(0, index2).filter((i5) => i5 === value2).length;
};
var getFont = (run) => {
  return run.attributes?.font?.[0] || null;
};
var slice$2 = (start2, end2, font, glyph) => {
  if (!glyph)
    return [];
  if (start2 === end2)
    return [];
  if (start2 === 0 && end2 === glyph.codePoints.length)
    return [glyph];
  const codePoints = glyph.codePoints.slice(start2, end2);
  const string = String.fromCodePoint(...codePoints);
  return font ? font.layout(string, void 0, void 0, void 0, "ltr").glyphs : [glyph];
};
var glyphIndexAt = (index2, run) => {
  const result = run?.glyphIndices?.[index2];
  return isNil(result) ? index2 : result;
};
var normalize3 = (array) => {
  const head = array[0];
  return array.map((value2) => value2 - head);
};
var slice$1 = (start2, end2, run) => {
  const runScale = scale(run);
  const font = getFont(run);
  const startIndex = glyphIndexAt(start2, run);
  const endIndex = glyphIndexAt(end2, run);
  const startGlyph = run.glyphs?.[startIndex];
  const endGlyph = run.glyphs?.[endIndex];
  const startOffset = offset(start2, run);
  const startGlyphs = startOffset > 0 ? slice$2(startOffset, Infinity, font, startGlyph) : [];
  const endOffset = offset(end2, run);
  const endGlyphs = slice$2(0, endOffset, font, endGlyph);
  const sliceStart = startIndex + Math.min(1, startOffset);
  const glyphs = (run.glyphs || []).slice(sliceStart, endIndex);
  const glyphPosition = (g3) => ({
    xAdvance: g3.advanceWidth * runScale,
    yAdvance: 0,
    xOffset: 0,
    yOffset: 0
  });
  const startPositions = startGlyphs.map(glyphPosition);
  const positions = (run.positions || []).slice(sliceStart, endIndex);
  const endPositions = endGlyphs.map(glyphPosition);
  return Object.assign({}, run, {
    start: run.start + start2,
    end: Math.min(run.end, run.start + end2),
    glyphIndices: normalize3((run.glyphIndices || []).slice(start2, end2)),
    glyphs: [startGlyphs, glyphs, endGlyphs].flat(),
    positions: [startPositions, positions, endPositions].flat()
  });
};
var runIndexAt$1 = (index2, runs) => {
  if (!runs)
    return -1;
  return runs.findIndex((run) => run.start <= index2 && index2 < run.end);
};
var filter2 = (start2, end2, runs) => {
  const startIndex = runIndexAt$1(start2, runs);
  const endIndex = Math.max(runIndexAt$1(end2 - 1, runs), startIndex);
  return runs.slice(startIndex, endIndex + 1);
};
var subtract = (index2, run) => {
  const start2 = run.start - index2;
  const end2 = run.end - index2;
  return Object.assign({}, run, { start: start2, end: end2 });
};
var sliceRuns = (start2, end2, runs) => {
  const sliceFirstRun = (a5) => slice$1(start2 - a5.start, end2 - a5.start, a5);
  const sliceLastRun = (a5) => slice$1(0, end2 - a5.start, a5);
  return runs.map((run, i5) => {
    let result = run;
    const isFirst = i5 === 0;
    const isLast = !isFirst && i5 === runs.length - 1;
    if (isFirst)
      result = sliceFirstRun(run);
    if (isLast)
      result = sliceLastRun(run);
    return subtract(start2, result);
  });
};
var slice = (start2, end2, attributedString) => {
  if (attributedString.string.length === 0)
    return attributedString;
  const string = attributedString.string.slice(start2, end2);
  const filteredRuns = filter2(start2, end2, attributedString.runs);
  const slicedRuns = sliceRuns(start2, end2, filteredRuns);
  return Object.assign({}, attributedString, { string, runs: slicedRuns });
};
var findCharIndex = (string) => {
  return string.search(/\S/g);
};
var findLastCharIndex = (string) => {
  const match = string.match(/\S/g);
  return match ? string.lastIndexOf(match[match.length - 1]) : -1;
};
var trim2 = (attributedString) => {
  const start2 = findCharIndex(attributedString.string);
  const end2 = findLastCharIndex(attributedString.string);
  return slice(start2, end2 + 1, attributedString);
};
var empty$1 = () => {
  return {
    start: 0,
    end: 0,
    glyphIndices: [],
    glyphs: [],
    positions: [],
    attributes: {}
  };
};
var isNumber3 = (value2) => {
  return typeof value2 === "number";
};
var appendIndices = (length2, indices) => {
  const lastIndex = last(indices);
  const value2 = isNil(lastIndex) ? 0 : lastIndex + 1;
  const newIndices = Array(length2).fill(value2);
  return indices.concat(newIndices);
};
var fromCodePoint = (value2, font) => {
  if (typeof font === "string")
    return null;
  return font && value2 ? font.glyphForCodePoint(value2) : null;
};
var appendGlyph = (glyph, run) => {
  const glyphLength = glyph.codePoints?.length || 0;
  const end2 = run.end + glyphLength;
  const glyphs = run.glyphs.concat(glyph);
  const glyphIndices = appendIndices(glyphLength, run.glyphIndices);
  if (!run.positions)
    return Object.assign({}, run, { end: end2, glyphs, glyphIndices });
  const positions = run.positions.concat({
    xAdvance: glyph.advanceWidth * scale(run),
    yAdvance: 0,
    xOffset: 0,
    yOffset: 0
  });
  return Object.assign({}, run, { end: end2, glyphs, glyphIndices, positions });
};
var append$1 = (value2, run) => {
  if (!value2)
    return run;
  const font = getFont(run);
  const glyph = isNumber3(value2) ? fromCodePoint(value2, font) : value2;
  return appendGlyph(glyph, run);
};
var stringFromCodePoints = (codePoints) => {
  return String.fromCodePoint(...codePoints || []);
};
var append2 = (glyph, attributedString) => {
  const codePoints = typeof glyph === "number" ? [glyph] : glyph?.codePoints;
  const codePointsString = stringFromCodePoints(codePoints || []);
  const string = attributedString.string + codePointsString;
  const firstRuns = attributedString.runs.slice(0, -1);
  const lastRun = last(attributedString.runs) || empty$1();
  const runs = firstRuns.concat(append$1(glyph, lastRun));
  return Object.assign({}, attributedString, { string, runs });
};
var ELLIPSIS_UNICODE = 8230;
var ELLIPSIS_STRING = String.fromCharCode(ELLIPSIS_UNICODE);
var getEllipsisCodePoint = (font) => {
  if (!font.encode)
    return ELLIPSIS_UNICODE;
  const [codePoints] = font.encode(ELLIPSIS_STRING);
  return parseInt(codePoints[0], 16);
};
var truncate = (paragraph) => {
  const runs = last(paragraph)?.runs || [];
  const font = last(runs)?.attributes?.font[0];
  if (font) {
    const index2 = paragraph.length - 1;
    const codePoint = getEllipsisCodePoint(font);
    const glyph = font.glyphForCodePoint(codePoint);
    const lastBlock = append2(glyph, trim2(paragraph[index2]));
    return Object.assign([], paragraph, { [index2]: lastBlock });
  }
  return paragraph;
};
var omit2 = (value2, run) => {
  const attributes2 = Object.assign({}, run.attributes);
  delete attributes2[value2];
  return Object.assign({}, run, { attributes: attributes2 });
};
var ascent$1 = (run) => {
  const { font, attachment } = run.attributes;
  const attachmentHeight = attachment?.height || 0;
  const fontAscent = typeof font === "string" ? 0 : font?.[0]?.ascent || 0;
  return Math.max(attachmentHeight, fontAscent * scale(run));
};
var descent = (run) => {
  const font = run.attributes?.font;
  const fontDescent = typeof font === "string" ? 0 : font?.[0]?.descent || 0;
  return scale(run) * fontDescent;
};
var lineGap = (run) => {
  const font = run.attributes?.font;
  const lineGap2 = typeof font === "string" ? 0 : font?.[0]?.lineGap || 0;
  return lineGap2 * scale(run);
};
var height$1 = (run) => {
  const lineHeight = run.attributes?.lineHeight;
  return lineHeight || lineGap(run) + ascent$1(run) - descent(run);
};
var height = (attributedString) => {
  const reducer = (acc, run) => Math.max(acc, height$1(run));
  return attributedString.runs.reduce(reducer, 0);
};
var intersects = (a5, b3) => {
  const x = Math.max(a5.x, b3.x);
  const num1 = Math.min(a5.x + a5.width, b3.x + b3.width);
  const y3 = Math.max(a5.y, b3.y);
  const num2 = Math.min(a5.y + a5.height, b3.y + b3.height);
  return num1 >= x && num2 >= y3;
};
var getLineFragment = (lineRect, excludeRect) => {
  if (!intersects(excludeRect, lineRect))
    return [lineRect];
  const eStart = excludeRect.x;
  const eEnd = excludeRect.x + excludeRect.width;
  const lStart = lineRect.x;
  const lEnd = lineRect.x + lineRect.width;
  const a5 = Object.assign({}, lineRect, { width: eStart - lStart });
  const b3 = Object.assign({}, lineRect, { x: eEnd, width: lEnd - eEnd });
  return [a5, b3].filter((r4) => r4.width > 0);
};
var getLineFragments = (rect, excludeRects) => {
  let fragments = [rect];
  for (let i5 = 0; i5 < excludeRects.length; i5 += 1) {
    const excludeRect = excludeRects[i5];
    fragments = fragments.reduce((acc, fragment) => {
      const pieces = getLineFragment(fragment, excludeRect);
      return acc.concat(pieces);
    }, []);
  }
  return fragments;
};
var generateLineRects = (container, height2) => {
  const { excludeRects, ...rect } = container;
  if (!excludeRects)
    return [rect];
  const lineRects = [];
  const maxY = Math.max(...excludeRects.map((r4) => r4.y + r4.height));
  let currentRect = rect;
  while (currentRect.y < maxY) {
    const [lineRect, rest] = partition(currentRect, height2);
    const lineRectFragments = getLineFragments(lineRect, excludeRects);
    currentRect = rest;
    lineRects.push(...lineRectFragments);
  }
  return [...lineRects, currentRect];
};
var ATTACHMENT_CODE$1 = "\uFFFC";
var purgeAttachments = (line2) => {
  const shouldPurge = !line2.string.includes(ATTACHMENT_CODE$1);
  if (!shouldPurge)
    return line2;
  const runs = line2.runs.map((run) => omit2("attachment", run));
  return Object.assign({}, line2, { runs });
};
var layoutLines = (rects, lines, indent) => {
  let rect = rects.shift();
  let currentY = rect.y;
  return lines.map((line2, i5) => {
    const lineIndent = i5 === 0 ? indent : 0;
    const style = line2.runs?.[0]?.attributes || {};
    const height$12 = Math.max(height(line2), style.lineHeight);
    if (currentY + height$12 > rect.y + rect.height && rects.length > 0) {
      rect = rects.shift();
      currentY = rect.y;
    }
    const newLine = {
      string: line2.string,
      runs: line2.runs,
      box: {
        x: rect.x + lineIndent,
        y: currentY,
        width: rect.width - lineIndent,
        height: height$12
      }
    };
    currentY += height$12;
    return purgeAttachments(newLine);
  });
};
var layoutParagraph = (engines2, options = {}) => {
  return (container, paragraph) => {
    const height$12 = height(paragraph);
    const indent = paragraph.runs?.[0]?.attributes?.indent || 0;
    const rects = generateLineRects(container, height$12);
    const availableWidths = rects.map((r4) => r4.width);
    availableWidths.unshift(availableWidths[0] - indent);
    const lines = engines2.linebreaker(options)(paragraph, availableWidths);
    return layoutLines(rects, lines, indent);
  };
};
var sliceAtHeight = (height2, paragraph) => {
  const newBlock = [];
  let counter = 0;
  for (let i5 = 0; i5 < paragraph.length; i5 += 1) {
    const line2 = paragraph[i5];
    counter += line2.box.height;
    if (counter < height2) {
      newBlock.push(line2);
    } else {
      break;
    }
  }
  return newBlock;
};
var typesetter = (engines2, options, container) => {
  return (attributedStrings) => {
    const result = [];
    const paragraphs = [...attributedStrings];
    const layout2 = layoutParagraph(engines2, options);
    const maxLines = isNil(container.maxLines) ? Infinity : container.maxLines;
    const truncateEllipsis = container.truncateMode === "ellipsis";
    let linesCount = maxLines;
    let paragraphRect = copy(container);
    let nextParagraph = paragraphs.shift();
    while (linesCount > 0 && nextParagraph) {
      const paragraph = layout2(paragraphRect, nextParagraph);
      const slicedBlock = paragraph.slice(0, linesCount);
      const linesHeight2 = height$2(slicedBlock);
      const shouldTruncate = truncateEllipsis && paragraph.length !== slicedBlock.length;
      linesCount -= slicedBlock.length;
      if (paragraphRect.height >= linesHeight2) {
        result.push(shouldTruncate ? truncate(slicedBlock) : slicedBlock);
        paragraphRect = crop(linesHeight2, paragraphRect);
        nextParagraph = paragraphs.shift();
      } else {
        result.push(truncate(sliceAtHeight(paragraphRect.height, slicedBlock)));
        break;
      }
    }
    return result;
  };
};
var start = (attributedString) => {
  const { runs } = attributedString;
  return runs.length === 0 ? 0 : runs[0].start;
};
var end = (attributedString) => {
  const { runs } = attributedString;
  return runs.length === 0 ? 0 : last(runs).end;
};
var length$1 = (attributedString) => {
  return end(attributedString) - start(attributedString);
};
var bidi$2 = (0, import_bidi_js.default)();
var getBidiLevels$1 = (runs) => {
  return runs.reduce((acc, run) => {
    const length2 = run.end - run.start;
    const levels = repeat(run.attributes.bidiLevel, length2);
    return acc.concat(levels);
  }, []);
};
var getReorderedIndices = (string, segments) => {
  const indices = [];
  for (let i5 = 0; i5 < string.length; i5 += 1) {
    indices[i5] = i5;
  }
  segments.forEach(([start2, end2]) => {
    const slice2 = indices.slice(start2, end2 + 1);
    for (let i5 = slice2.length - 1; i5 >= 0; i5 -= 1) {
      indices[end2 - i5] = slice2[i5];
    }
  });
  return indices;
};
var getItemAtIndex = (runs, objectName, index2) => {
  for (let i5 = 0; i5 < runs.length; i5 += 1) {
    const run = runs[i5];
    const updatedIndex = run.glyphIndices[index2 - run.start];
    if (index2 >= run.start && index2 < run.end) {
      return run[objectName][updatedIndex];
    }
  }
  throw new Error(`index ${index2} out of range`);
};
var reorderLine = (line2) => {
  const levels = getBidiLevels$1(line2.runs);
  const direction = line2.runs[0]?.attributes.direction;
  const level = direction === "rtl" ? 1 : 0;
  const end2 = length$1(line2) - 1;
  const paragraphs = [{ start: 0, end: end2, level }];
  const embeddingLevels = { paragraphs, levels };
  const segments = bidi$2.getReorderSegments(line2.string, embeddingLevels);
  if (segments.length === 0)
    return line2;
  const indices = getReorderedIndices(line2.string, segments);
  const updatedString = bidi$2.getReorderedString(line2.string, embeddingLevels);
  const updatedRuns = line2.runs.map((run) => {
    const selectedIndices = indices.slice(run.start, run.end);
    const updatedGlyphs = [];
    const updatedPositions = [];
    const addedGlyphs = /* @__PURE__ */ new Set();
    for (let i5 = 0; i5 < selectedIndices.length; i5 += 1) {
      const index2 = selectedIndices[i5];
      const glyph = getItemAtIndex(line2.runs, "glyphs", index2);
      if (addedGlyphs.has(glyph.id))
        continue;
      updatedGlyphs.push(glyph);
      updatedPositions.push(getItemAtIndex(line2.runs, "positions", index2));
      if (glyph.isLigature) {
        addedGlyphs.add(glyph.id);
      }
    }
    return {
      ...run,
      glyphs: updatedGlyphs,
      positions: updatedPositions
    };
  });
  return {
    box: line2.box,
    runs: updatedRuns,
    string: updatedString
  };
};
var reorderParagraph = (paragraph) => paragraph.map(reorderLine);
var bidiReordering = () => {
  return (paragraphs) => paragraphs.map(reorderParagraph);
};
var DUMMY_CODEPOINT = 123;
var resolve3 = (glyphs = []) => {
  return glyphs.reduce((acc, glyph) => {
    const codePoints = glyph?.codePoints || [DUMMY_CODEPOINT];
    if (acc.length === 0)
      return codePoints.map(() => 0);
    const last2 = acc[acc.length - 1];
    const next = codePoints.map(() => last2 + 1);
    return [...acc, ...next];
  }, []);
};
var getCharacterSpacing = (run) => {
  return run.attributes?.characterSpacing || 0;
};
var scalePositions = (run, positions) => {
  const runScale = scale(run);
  const characterSpacing = getCharacterSpacing(run);
  return positions.map((position, i5) => {
    const isLast = i5 === positions.length;
    const xSpacing = isLast ? 0 : characterSpacing;
    return Object.assign({}, position, {
      xAdvance: position.xAdvance * runScale + xSpacing,
      yAdvance: position.yAdvance * runScale,
      xOffset: position.xOffset * runScale,
      yOffset: position.yOffset * runScale
    });
  });
};
var layoutRun = (string) => {
  return (run) => {
    const { start: start2, end: end2, attributes: attributes2 = {} } = run;
    const { font } = attributes2;
    if (!font)
      return { ...run, glyphs: [], glyphIndices: [], positions: [] };
    const runString = string.slice(start2, end2);
    if (typeof font === "string")
      throw new Error("Invalid font");
    const glyphRun = font[0].layout(runString, void 0, void 0, void 0, "ltr");
    const positions = scalePositions(run, glyphRun.positions);
    const glyphIndices = resolve3(glyphRun.glyphs);
    const result = {
      ...run,
      positions,
      glyphIndices,
      glyphs: glyphRun.glyphs
    };
    return result;
  };
};
var generateGlyphs = () => {
  return (attributedString) => {
    const runs = attributedString.runs.map(layoutRun(attributedString.string));
    const res = Object.assign({}, attributedString, { runs });
    return res;
  };
};
var resolveRunYOffset = (run) => {
  if (!run.positions)
    return run;
  const unitsPerEm = run.attributes?.font?.[0]?.unitsPerEm || 0;
  const yOffset = (run.attributes?.yOffset || 0) * unitsPerEm;
  const positions = run.positions.map((p3) => Object.assign({}, p3, { yOffset }));
  return Object.assign({}, run, { positions });
};
var resolveYOffset = () => {
  return (attributedString) => {
    const runs = attributedString.runs.map(resolveRunYOffset);
    const res = Object.assign({}, attributedString, { runs });
    return res;
  };
};
var sort = (runs) => {
  return runs.sort((a5, b3) => a5.start - b3.start || a5.end - b3.end);
};
var isEmpty = (run) => {
  return run.start === run.end;
};
var sortPoints = (a5, b3) => {
  return a5[1] - b3[1] || a5[3] - b3[3];
};
var generatePoints = (runs) => {
  const result = runs.reduce((acc, run, i5) => {
    return acc.concat([
      ["start", run.start, run.attributes, i5],
      ["end", run.end, run.attributes, i5]
    ]);
  }, []);
  return result.sort(sortPoints);
};
var mergeRuns = (runs) => {
  return runs.reduce((acc, run) => {
    const attributes2 = Object.assign({}, acc.attributes, run.attributes);
    return Object.assign({}, run, { attributes: attributes2 });
  }, {});
};
var groupEmptyRuns = (runs) => {
  const groups = runs.reduce((acc, run) => {
    if (!acc[run.start])
      acc[run.start] = [];
    acc[run.start].push(run);
    return acc;
  }, []);
  return Object.values(groups);
};
var flattenEmptyRuns = (runs) => {
  return groupEmptyRuns(runs).map(mergeRuns);
};
var flattenRegularRuns = (runs) => {
  const res = [];
  const points = generatePoints(runs);
  let start2 = -1;
  let attrs = {};
  const stack = [];
  for (let i5 = 0; i5 < points.length; i5 += 1) {
    const [type, offset2, attributes2] = points[i5];
    if (start2 !== -1 && start2 < offset2) {
      res.push({
        start: start2,
        end: offset2,
        attributes: attrs,
        glyphIndices: [],
        glyphs: [],
        positions: []
      });
    }
    if (type === "start") {
      stack.push(attributes2);
      attrs = Object.assign({}, attrs, attributes2);
    } else {
      attrs = {};
      for (let j = 0; j < stack.length; j += 1) {
        if (stack[j] === attributes2) {
          stack.splice(j--, 1);
        } else {
          attrs = Object.assign({}, attrs, stack[j]);
        }
      }
    }
    start2 = offset2;
  }
  return res;
};
var flatten2 = (runs = []) => {
  const emptyRuns = flattenEmptyRuns(runs.filter((run) => isEmpty(run)));
  const regularRuns = flattenRegularRuns(runs.filter((run) => !isEmpty(run)));
  return sort(emptyRuns.concat(regularRuns));
};
var empty = () => ({ string: "", runs: [] });
var omitFont = (attributedString) => {
  const runs = attributedString.runs.map((run) => omit2("font", run));
  return Object.assign({}, attributedString, { runs });
};
var preprocessRuns = (engines2) => {
  return (attributedString) => {
    if (isNil(attributedString))
      return empty();
    const { string } = attributedString;
    const { fontSubstitution: fontSubstitution2, scriptItemizer: scriptItemizer2, bidi: bidi2 } = engines2;
    const { runs: omittedFontRuns } = omitFont(attributedString);
    const { runs: itemizationRuns } = scriptItemizer2()(attributedString);
    const { runs: substitutedRuns } = fontSubstitution2()(attributedString);
    const { runs: bidiRuns } = bidi2()(attributedString);
    const runs = bidiRuns.concat(substitutedRuns).concat(itemizationRuns).concat(omittedFontRuns);
    return { string, runs: flatten2(runs) };
  };
};
var splitParagraphs = () => {
  return (attributedString) => {
    const paragraphs = [];
    let start2 = 0;
    let breakPoint = attributedString.string.indexOf("\n") + 1;
    while (breakPoint > 0) {
      paragraphs.push(slice(start2, breakPoint, attributedString));
      start2 = breakPoint;
      breakPoint = attributedString.string.indexOf("\n", breakPoint) + 1;
    }
    if (start2 === 0) {
      paragraphs.push(attributedString);
    } else if (start2 < attributedString.string.length) {
      paragraphs.push(slice(start2, length$1(attributedString), attributedString));
    }
    return paragraphs;
  };
};
var advanceWidth$2 = (positions) => {
  return positions.reduce((acc, pos) => acc + (pos.xAdvance || 0), 0);
};
var advanceWidth$1 = (run) => {
  return advanceWidth$2(run.positions || []);
};
var advanceWidth = (attributedString) => {
  const reducer = (acc, run) => acc + advanceWidth$1(run);
  return attributedString.runs.reduce(reducer, 0);
};
var WHITE_SPACES_CODE = 32;
var isWhiteSpace = (glyph) => {
  const codePoints = glyph?.codePoints || [];
  return codePoints.includes(WHITE_SPACES_CODE);
};
var leadingPositions = (run) => {
  const glyphs = run.glyphs || [];
  const positions = run.positions || [];
  const leadingWhitespaces = glyphs.findIndex((g3) => !isWhiteSpace(g3));
  return positions.slice(0, leadingWhitespaces);
};
var leadingOffset$1 = (run) => {
  const positions = leadingPositions(run);
  return positions.reduce((acc, pos) => acc + (pos.xAdvance || 0), 0);
};
var leadingOffset = (attributedString) => {
  const runs = attributedString.runs || [];
  return leadingOffset$1(runs[0]);
};
var trailingPositions = (run) => {
  const glyphs = reverse(run.glyphs || []);
  const positions = reverse(run.positions || []);
  const leadingWhitespaces = glyphs.findIndex((g3) => !isWhiteSpace(g3));
  return positions.slice(0, leadingWhitespaces);
};
var trailingOffset$1 = (run) => {
  const positions = trailingPositions(run);
  return positions.reduce((acc, pos) => acc + (pos.xAdvance || 0), 0);
};
var trailingOffset = (attributedString) => {
  const runs = attributedString.runs || [];
  return trailingOffset$1(last(runs));
};
var dropLast$1 = (run) => {
  return slice$1(0, run.end - run.start - 1, run);
};
var dropLast2 = (attributedString) => {
  const string = dropLast(attributedString.string);
  const runs = adjust(-1, dropLast$1, attributedString.runs);
  return Object.assign({}, attributedString, { string, runs });
};
var ALIGNMENT_FACTORS = { center: 0.5, right: 1 };
var removeNewLine = (line2) => {
  return last(line2.string) === "\n" ? dropLast2(line2) : line2;
};
var getOverflowLeft = (line2) => {
  return leadingOffset(line2) + (line2.overflowLeft || 0);
};
var getOverflowRight = (line2) => {
  return trailingOffset(line2) + (line2.overflowRight || 0);
};
var adjustOverflow = (line2) => {
  const overflowLeft = getOverflowLeft(line2);
  const overflowRight = getOverflowRight(line2);
  const x = line2.box.x - overflowLeft;
  const width = line2.box.width + overflowLeft + overflowRight;
  const box = Object.assign({}, line2.box, { x, width });
  return Object.assign({}, line2, { box, overflowLeft, overflowRight });
};
var justifyLine$1 = (engines2, options, align) => {
  return (line2) => {
    const lineWidth = advanceWidth(line2);
    const alignFactor = ALIGNMENT_FACTORS[align] || 0;
    const remainingWidth = Math.max(0, line2.box.width - lineWidth);
    const shouldJustify = align === "justify" || lineWidth > line2.box.width;
    const x = line2.box.x + remainingWidth * alignFactor;
    const box = Object.assign({}, line2.box, { x });
    const newLine = Object.assign({}, line2, { box });
    return shouldJustify ? engines2.justification(options)(newLine) : newLine;
  };
};
var finalizeLine = (line2) => {
  let lineAscent = 0;
  let lineDescent = 0;
  let lineHeight = 0;
  let lineXAdvance = 0;
  const runs = line2.runs.map((run) => {
    const height2 = height$1(run);
    const ascent2 = ascent$1(run);
    const descent$1 = descent(run);
    const xAdvance = advanceWidth$1(run);
    lineHeight = Math.max(lineHeight, height2);
    lineAscent = Math.max(lineAscent, ascent2);
    lineDescent = Math.max(lineDescent, descent$1);
    lineXAdvance += xAdvance;
    return Object.assign({}, run, { height: height2, ascent: ascent2, descent: descent$1, xAdvance });
  });
  return Object.assign({}, line2, {
    runs,
    height: lineHeight,
    ascent: lineAscent,
    descent: lineDescent,
    xAdvance: lineXAdvance
  });
};
var finalizeBlock = (engines2, options) => {
  return (line2, index2, lines) => {
    const isLastFragment = index2 === lines.length - 1;
    const style = line2.runs?.[0]?.attributes || {};
    const align = isLastFragment ? style.alignLastLine : style.align;
    return compose(finalizeLine, engines2.textDecoration(), justifyLine$1(engines2, options, align), adjustOverflow, removeNewLine)(line2);
  };
};
var finalizeFragments = (engines2, options) => {
  return (paragraphs) => {
    const blockFinalizer = finalizeBlock(engines2, options);
    return paragraphs.map((paragraph) => paragraph.map(blockFinalizer));
  };
};
var ATTACHMENT_CODE = 65532;
var isReplaceGlyph = (glyph) => glyph.codePoints.includes(ATTACHMENT_CODE);
var resolveRunAttachments = (run) => {
  if (!run.positions)
    return run;
  const glyphs = run.glyphs || [];
  const attachment = run.attributes?.attachment;
  if (!attachment)
    return run;
  const positions = run.positions.map((position, i5) => {
    const glyph = glyphs[i5];
    if (attachment.width && isReplaceGlyph(glyph)) {
      return Object.assign({}, position, { xAdvance: attachment.width });
    }
    return Object.assign({}, position);
  });
  return Object.assign({}, run, { positions });
};
var resolveAttachments = () => {
  return (attributedString) => {
    const runs = attributedString.runs.map(resolveRunAttachments);
    const res = Object.assign({}, attributedString, { runs });
    return res;
  };
};
var applyAttributes = (a5) => {
  return {
    align: a5.align || (a5.direction === "rtl" ? "right" : "left"),
    alignLastLine: a5.alignLastLine || (a5.align === "justify" ? "left" : a5.align || "left"),
    attachment: a5.attachment || null,
    backgroundColor: a5.backgroundColor || null,
    bullet: a5.bullet || null,
    characterSpacing: a5.characterSpacing || 0,
    color: a5.color || "black",
    direction: a5.direction || "ltr",
    features: a5.features || [],
    fill: a5.fill !== false,
    font: a5.font || [],
    fontSize: a5.fontSize || 12,
    hangingPunctuation: a5.hangingPunctuation || false,
    hyphenationFactor: a5.hyphenationFactor || 0,
    indent: a5.indent || 0,
    justificationFactor: a5.justificationFactor || 1,
    lineHeight: a5.lineHeight || null,
    lineSpacing: a5.lineSpacing || 0,
    link: a5.link || null,
    marginLeft: a5.marginLeft || a5.margin || 0,
    marginRight: a5.marginRight || a5.margin || 0,
    opacity: a5.opacity,
    paddingTop: a5.paddingTop || a5.padding || 0,
    paragraphSpacing: a5.paragraphSpacing || 0,
    script: a5.script || null,
    shrinkFactor: a5.shrinkFactor || 0,
    strike: a5.strike || false,
    strikeColor: a5.strikeColor || a5.color || "black",
    strikeStyle: a5.strikeStyle || "solid",
    stroke: a5.stroke || false,
    underline: a5.underline || false,
    underlineColor: a5.underlineColor || a5.color || "black",
    underlineStyle: a5.underlineStyle || "solid",
    verticalAlign: a5.verticalAlign || null,
    wordSpacing: a5.wordSpacing || 0,
    yOffset: a5.yOffset || 0
  };
};
var applyRunStyles = (run) => {
  const attributes2 = applyAttributes(run.attributes);
  return Object.assign({}, run, { attributes: attributes2 });
};
var applyDefaultStyles = () => {
  return (attributedString) => {
    const string = attributedString.string || "";
    const runs = (attributedString.runs || []).map(applyRunStyles);
    return { string, runs };
  };
};
var verticalAlignment = () => {
  return (attributedString) => {
    attributedString.runs.forEach((run) => {
      const { attributes: attributes2 } = run;
      const { verticalAlign } = attributes2;
      if (verticalAlign === "sub") {
        attributes2.yOffset = -0.2;
      } else if (verticalAlign === "super") {
        attributes2.yOffset = 0.4;
      }
    });
    return attributedString;
  };
};
var bidi$1 = (0, import_bidi_js.default)();
var getBidiLevels = (runs) => {
  return runs.reduce((acc, run) => {
    const length2 = run.end - run.start;
    const levels = repeat(run.attributes.bidiLevel, length2);
    return acc.concat(levels);
  }, []);
};
var mirrorString = () => {
  return (attributedString) => {
    const levels = getBidiLevels(attributedString.runs);
    let updatedString = "";
    attributedString.string.split("").forEach((char, index2) => {
      const isRTL = levels[index2] % 2 === 1;
      const mirroredChar = isRTL ? bidi$1.getMirroredCharacter(attributedString.string.charAt(index2)) : null;
      updatedString += mirroredChar || char;
    });
    const result = {
      ...attributedString,
      string: updatedString
    };
    return result;
  };
};
var layoutEngine = (engines2) => {
  return (attributedString, container, options = {}) => {
    const processParagraph = compose(resolveYOffset(), resolveAttachments(), verticalAlignment(), generateGlyphs(), wrapWords(engines2, options), mirrorString(), preprocessRuns(engines2));
    const processParagraphs = (paragraphs) => paragraphs.map(processParagraph);
    return compose(finalizeFragments(engines2, options), bidiReordering(), typesetter(engines2, options, container), processParagraphs, splitParagraphs(), applyDefaultStyles())(attributedString);
  };
};
var bidi = (0, import_bidi_js.default)();
var bidiEngine = () => {
  return (attributedString) => {
    const { string } = attributedString;
    const direction = attributedString.runs[0]?.attributes.direction;
    const { levels } = bidi.getEmbeddingLevels(string, direction);
    let lastLevel = null;
    let lastIndex = 0;
    let index2 = 0;
    const runs = [];
    for (let i5 = 0; i5 < levels.length; i5 += 1) {
      const level = levels[i5];
      if (level !== lastLevel) {
        if (lastLevel !== null) {
          runs.push({
            start: lastIndex,
            end: index2,
            attributes: { bidiLevel: lastLevel }
          });
        }
        lastIndex = index2;
        lastLevel = level;
      }
      index2 += 1;
    }
    if (lastIndex < string.length) {
      runs.push({
        start: lastIndex,
        end: string.length,
        attributes: { bidiLevel: lastLevel }
      });
    }
    const result = { string, runs };
    return result;
  };
};
var INFINITY2 = 1e4;
var skipPastGlueAndPenalty = (nodes, start2) => {
  let j = start2 + 1;
  for (; j < nodes.length; j++) {
    if (nodes[j].type !== "glue" && nodes[j].type !== "penalty") {
      break;
    }
  }
  return nodes[j - 1];
};
var getNextBreakpoint = (subnodes, widths, lineNumber) => {
  let position = null;
  let minimumBadness = Infinity;
  const sum = { width: 0, stretch: 0, shrink: 0 };
  const lineLength = widths[Math.min(lineNumber, widths.length - 1)];
  const calculateRatio = (node) => {
    const stretch = "stretch" in node ? node.stretch : null;
    if (sum.width < lineLength) {
      if (!stretch)
        return INFINITY2;
      return sum.stretch - stretch > 0 ? (lineLength - sum.width) / sum.stretch : INFINITY2;
    }
    const shrink = "shrink" in node ? node.shrink : null;
    if (sum.width > lineLength) {
      if (!shrink)
        return INFINITY2;
      return sum.shrink - shrink > 0 ? (lineLength - sum.width) / sum.shrink : INFINITY2;
    }
    return 0;
  };
  let hyphenWidth = 0;
  for (let i5 = 0; i5 < subnodes.length; i5 += 1) {
    const node = subnodes[i5];
    if (node.type === "box") {
      sum.width += node.width;
    }
    if (node.type === "glue") {
      sum.width += node.width;
      sum.stretch += node.stretch;
      sum.shrink += node.shrink;
    }
    const potentialEndOfLine = skipPastGlueAndPenalty(subnodes, i5);
    hyphenWidth = potentialEndOfLine.type === "penalty" ? potentialEndOfLine.width : 0;
    if (sum.width - sum.shrink + hyphenWidth > lineLength) {
      if (position === null) {
        let j = i5 === 0 ? i5 + 1 : i5;
        while (j < subnodes.length && (subnodes[j].type === "glue" || subnodes[j].type === "penalty")) {
          j++;
        }
        position = j - 1;
      }
      break;
    }
    if (node.type === "penalty" || node.type === "glue") {
      const ratio = calculateRatio(node);
      const penalty = node.type === "penalty" ? node.penalty : 0;
      const badness = 100 * Math.abs(ratio) ** 3 + penalty;
      if (minimumBadness >= badness) {
        position = i5;
        minimumBadness = badness;
      }
    }
  }
  return sum.width - sum.shrink + hyphenWidth > lineLength ? position : null;
};
var applyBestFit = (nodes, widths) => {
  let count = 0;
  let lineNumber = 0;
  let subnodes = nodes;
  const breakpoints = [0];
  while (subnodes.length > 0) {
    const breakpoint2 = getNextBreakpoint(subnodes, widths, lineNumber);
    if (breakpoint2 !== null) {
      count += breakpoint2;
      breakpoints.push(count);
      subnodes = subnodes.slice(breakpoint2 + 1, subnodes.length);
      count++;
      lineNumber++;
    } else {
      subnodes = [];
    }
  }
  return breakpoints;
};
var LinkedListNode = class {
  data;
  prev;
  next;
  constructor(data2) {
    this.data = data2;
    this.prev = null;
    this.next = null;
  }
};
var LinkedList = class {
  static Node = LinkedListNode;
  head;
  tail;
  listSize;
  listLength;
  constructor() {
    this.head = null;
    this.tail = null;
    this.listSize = 0;
    this.listLength = 0;
  }
  isLinked(node) {
    return !(node && node.prev === null && node.next === null && this.tail !== node && this.head !== node || this.isEmpty());
  }
  size() {
    return this.listSize;
  }
  isEmpty() {
    return this.listSize === 0;
  }
  first() {
    return this.head;
  }
  last() {
    return this.last;
  }
  forEach(callback) {
    let node = this.head;
    while (node !== null) {
      callback(node);
      node = node.next;
    }
  }
  at(i5) {
    let node = this.head;
    let index2 = 0;
    if (i5 >= this.listLength || i5 < 0) {
      return null;
    }
    while (node !== null) {
      if (i5 === index2) {
        return node;
      }
      node = node.next;
      index2 += 1;
    }
    return null;
  }
  insertAfter(node, newNode) {
    if (!this.isLinked(node))
      return this;
    newNode.prev = node;
    newNode.next = node.next;
    if (node.next === null) {
      this.tail = newNode;
    } else {
      node.next.prev = newNode;
    }
    node.next = newNode;
    this.listSize += 1;
    return this;
  }
  insertBefore(node, newNode) {
    if (!this.isLinked(node))
      return this;
    newNode.prev = node.prev;
    newNode.next = node;
    if (node.prev === null) {
      this.head = newNode;
    } else {
      node.prev.next = newNode;
    }
    node.prev = newNode;
    this.listSize += 1;
    return this;
  }
  push(node) {
    if (this.head === null) {
      this.unshift(node);
    } else {
      this.insertAfter(this.tail, node);
    }
    return this;
  }
  unshift(node) {
    if (this.head === null) {
      this.head = node;
      this.tail = node;
      node.prev = null;
      node.next = null;
      this.listSize += 1;
    } else {
      this.insertBefore(this.head, node);
    }
    return this;
  }
  remove(node) {
    if (!this.isLinked(node))
      return this;
    if (node.prev === null) {
      this.head = node.next;
    } else {
      node.prev.next = node.next;
    }
    if (node.next === null) {
      this.tail = node.prev;
    } else {
      node.next.prev = node.prev;
    }
    this.listSize -= 1;
    return this;
  }
};
function breakpoint(position, demerits, line2, fitnessClass, totals, previous) {
  return {
    position,
    demerits,
    line: line2,
    fitnessClass,
    totals: totals || {
      width: 0,
      stretch: 0,
      shrink: 0
    },
    previous
  };
}
function computeCost(nodes, lineLengths, sum, end2, active, currentLine) {
  let width = sum.width - active.totals.width;
  let stretch = 0;
  let shrink = 0;
  const lineLength = currentLine < lineLengths.length ? lineLengths[currentLine - 1] : lineLengths[lineLengths.length - 1];
  if (nodes[end2].type === "penalty") {
    width += nodes[end2].width;
  }
  if (width < lineLength) {
    stretch = sum.stretch - active.totals.stretch;
    if (stretch > 0) {
      return (lineLength - width) / stretch;
    }
    return linebreak.infinity;
  }
  if (width > lineLength) {
    shrink = sum.shrink - active.totals.shrink;
    if (shrink > 0) {
      return (lineLength - width) / shrink;
    }
    return linebreak.infinity;
  }
  return 0;
}
function computeSum(nodes, sum, breakPointIndex) {
  const result = {
    width: sum.width,
    stretch: sum.stretch,
    shrink: sum.shrink
  };
  for (let i5 = breakPointIndex; i5 < nodes.length; i5 += 1) {
    const node = nodes[i5];
    if (node.type === "glue") {
      result.width += node.width;
      result.stretch += node.stretch;
      result.shrink += node.shrink;
    } else if (node.type === "box" || node.type === "penalty" && node.penalty === -linebreak.infinity && i5 > breakPointIndex) {
      break;
    }
  }
  return result;
}
function findBestBreakpoints(activeNodes) {
  const breakpoints = [];
  if (activeNodes.size() === 0)
    return [];
  let tmp = { data: { demerits: Infinity } };
  activeNodes.forEach((node) => {
    if (node.data.demerits < tmp.data.demerits) {
      tmp = node;
    }
  });
  while (tmp !== null) {
    breakpoints.push(tmp.data.position);
    tmp = tmp.data.previous;
  }
  return breakpoints.reverse();
}
var linebreak = (nodes, availableWidths, tolerance) => {
  const options = {
    demerits: { line: 10, flagged: 100, fitness: 3e3 },
    tolerance: tolerance || 3
  };
  const activeNodes = new LinkedList();
  const sum = { width: 0, stretch: 0, shrink: 0 };
  const lineLengths = availableWidths;
  activeNodes.push(new LinkedList.Node(breakpoint(0, 0, 0, 0, void 0, null)));
  function mainLoop(node, index2, nodes2) {
    let active = activeNodes.first();
    while (active !== null) {
      let currentLine = 0;
      const candidates = [
        { active: void 0, demerits: Infinity },
        { active: void 0, demerits: Infinity },
        { active: void 0, demerits: Infinity },
        { active: void 0, demerits: Infinity }
      ];
      while (active !== null) {
        currentLine = active.data.line + 1;
        const ratio = computeCost(nodes2, lineLengths, sum, index2, active.data, currentLine);
        if (ratio < -1 || node.type === "penalty" && node.penalty === -linebreak.infinity) {
          activeNodes.remove(active);
        }
        if (ratio >= -1 && ratio <= options.tolerance) {
          const badness = 100 * Math.pow(Math.abs(ratio), 3);
          let demerits = 0;
          if (node.type === "penalty" && node.penalty >= 0) {
            demerits = Math.pow(options.demerits.line + badness, 2) + Math.pow(node.penalty, 2);
          } else if (node.type === "penalty" && node.penalty !== -linebreak.infinity) {
            demerits = Math.pow(options.demerits.line + badness, 2) - Math.pow(node.penalty, 2);
          } else {
            demerits = Math.pow(options.demerits.line + badness, 2);
          }
          if (node.type === "penalty" && nodes2[active.data.position].type === "penalty") {
            demerits += options.demerits.flagged * node.flagged * // @ts-expect-error node is penalty here
            nodes2[active.data.position].flagged;
          }
          let currentClass;
          if (ratio < -0.5) {
            currentClass = 0;
          } else if (ratio <= 0.5) {
            currentClass = 1;
          } else if (ratio <= 1) {
            currentClass = 2;
          } else {
            currentClass = 3;
          }
          if (Math.abs(currentClass - active.data.fitnessClass) > 1) {
            demerits += options.demerits.fitness;
          }
          demerits += active.data.demerits;
          if (demerits < candidates[currentClass].demerits) {
            candidates[currentClass] = { active, demerits };
          }
        }
        active = active.next;
        if (active !== null && active.data.line >= currentLine) {
          break;
        }
      }
      const tmpSum = computeSum(nodes2, sum, index2);
      for (let fitnessClass = 0; fitnessClass < candidates.length; fitnessClass += 1) {
        const candidate = candidates[fitnessClass];
        if (candidate.demerits === Infinity)
          continue;
        const newNode = new LinkedList.Node(breakpoint(index2, candidate.demerits, candidate.active.data.line + 1, fitnessClass, tmpSum, candidate.active));
        if (active !== null) {
          activeNodes.insertBefore(active, newNode);
        } else {
          activeNodes.push(newNode);
        }
      }
    }
  }
  nodes.forEach((node, index2, nodes2) => {
    if (node.type === "box") {
      sum.width += node.width;
      return;
    }
    if (node.type === "glue") {
      const precedesBox = index2 > 0 && nodes2[index2 - 1].type === "box";
      if (precedesBox)
        mainLoop(node, index2, nodes2);
      sum.width += node.width;
      sum.stretch += node.stretch;
      sum.shrink += node.shrink;
      return;
    }
    if (node.type === "penalty" && node.penalty !== linebreak.infinity) {
      mainLoop(node, index2, nodes2);
    }
  });
  return findBestBreakpoints(activeNodes);
};
linebreak.infinity = 1e4;
linebreak.glue = (width, start2, end2, stretch, shrink) => ({
  type: "glue",
  start: start2,
  end: end2,
  width,
  stretch,
  shrink
});
linebreak.box = (width, start2, end2, hyphenated = false) => ({
  type: "box",
  width,
  start: start2,
  end: end2,
  hyphenated
});
linebreak.penalty = (width, penalty, flagged) => ({
  type: "penalty",
  width,
  penalty,
  flagged
});
var add = (index2, run) => {
  const start2 = run.start + index2;
  const end2 = run.end + index2;
  return Object.assign({}, run, { start: start2, end: end2 });
};
var length = (run) => {
  return run.end - run.start;
};
var concat = (runA, runB) => {
  const end2 = runA.end + length(runB);
  const glyphs = (runA.glyphs || []).concat(runB.glyphs || []);
  const positions = (runA.positions || []).concat(runB.positions || []);
  const attributes2 = Object.assign({}, runA.attributes, runB.attributes);
  const runAIndices = runA.glyphIndices || [];
  const runALastIndex = last(runAIndices) || 0;
  const runBIndices = (runB.glyphIndices || []).map((i5) => i5 + runALastIndex + 1);
  const glyphIndices = normalize3(runAIndices.concat(runBIndices));
  return Object.assign({}, runA, {
    end: end2,
    glyphs,
    positions,
    attributes: attributes2,
    glyphIndices
  });
};
var insertGlyph$1 = (index2, glyph, run) => {
  if (!glyph)
    return run;
  const leadingRun = slice$1(0, index2, run);
  const trailingRun = slice$1(index2, Infinity, run);
  return concat(append$1(glyph, leadingRun), trailingRun);
};
var insert = (index2, value2, run) => {
  const font = getFont(run);
  const glyph = isNumber3(value2) ? fromCodePoint(value2, font) : value2;
  return insertGlyph$1(index2, glyph, run);
};
var runIndexAt = (index2, attributedString) => {
  return runIndexAt$1(index2, attributedString.runs);
};
var insertGlyph = (index2, glyph, attributedString) => {
  const runIndex = runIndexAt(index2, attributedString);
  if (runIndex === -1)
    return append2(glyph, attributedString);
  const codePoints = [glyph];
  const string = attributedString.string.slice(0, index2) + stringFromCodePoints(codePoints) + attributedString.string.slice(index2);
  const runs = attributedString.runs.map((run, i5) => {
    if (i5 === runIndex)
      return insert(index2 - run.start, glyph, run);
    if (i5 > runIndex)
      return add(codePoints.length, run);
    return run;
  });
  return Object.assign({}, attributedString, { string, runs });
};
var advanceWidthBetween$1 = (start2, end2, run) => {
  const runStart = run.start || 0;
  const glyphStartIndex = Math.max(0, glyphIndexAt(start2 - runStart, run));
  const glyphEndIndex = Math.max(0, glyphIndexAt(end2 - runStart, run));
  const positions = (run.positions || []).slice(glyphStartIndex, glyphEndIndex);
  return advanceWidth$2(positions);
};
var advanceWidthBetween = (start2, end2, attributedString) => {
  const runs = filter2(start2, end2, attributedString.runs);
  return runs.reduce((acc, run) => acc + advanceWidthBetween$1(start2, end2, run), 0);
};
var HYPHEN2 = 45;
var TOLERANCE_STEPS = 5;
var TOLERANCE_LIMIT = 50;
var opts = {
  width: 3,
  stretch: 6,
  shrink: 9
};
var breakLines = (attributedString, nodes, breaks) => {
  let start2 = 0;
  let end2 = null;
  const lines = breaks.reduce((acc, breakPoint) => {
    const node = nodes[breakPoint];
    const prevNode = nodes[breakPoint - 1];
    if (breakPoint === nodes.length - 1)
      return acc;
    let line2;
    if (node.type === "penalty") {
      end2 = prevNode.end;
      line2 = slice(start2, end2, attributedString);
      line2 = insertGlyph(line2.string.length, HYPHEN2, line2);
    } else {
      end2 = node.end;
      line2 = slice(start2, end2, attributedString);
    }
    start2 = end2;
    return [...acc, line2];
  }, []);
  lines.push(slice(start2, attributedString.string.length, attributedString));
  return lines;
};
var getNodes = (attributedString, { align }, options) => {
  let start2 = 0;
  const hyphenWidth = 5;
  const { syllables } = attributedString;
  const hyphenPenalty = options.hyphenationPenalty || (align === "justify" ? 100 : 600);
  const result = syllables.reduce((acc, s4, index2) => {
    const width = advanceWidthBetween(start2, start2 + s4.length, attributedString);
    if (s4.trim() === "") {
      const stretch = width * opts.width / opts.stretch;
      const shrink = width * opts.width / opts.shrink;
      const end2 = start2 + s4.length;
      acc.push(linebreak.glue(width, start2, end2, stretch, shrink));
    } else {
      const hyphenated = syllables[index2 + 1] !== " ";
      const end2 = start2 + s4.length;
      acc.push(linebreak.box(width, start2, end2, hyphenated));
      if (syllables[index2 + 1] && hyphenated) {
        acc.push(linebreak.penalty(hyphenWidth, hyphenPenalty, 1));
      }
    }
    start2 += s4.length;
    return acc;
  }, []);
  result.push(linebreak.glue(0, start2, start2, linebreak.infinity, 0));
  result.push(linebreak.penalty(0, -linebreak.infinity, 1));
  return result;
};
var getAttributes = (attributedString) => {
  return attributedString.runs?.[0]?.attributes || {};
};
var linebreaker = (options) => {
  return (attributedString, availableWidths) => {
    let tolerance = options.tolerance || 4;
    const attributes2 = getAttributes(attributedString);
    const nodes = getNodes(attributedString, attributes2, options);
    let breaks = linebreak(nodes, availableWidths, tolerance);
    while (breaks.length === 0 && tolerance < TOLERANCE_LIMIT) {
      tolerance += TOLERANCE_STEPS;
      breaks = linebreak(nodes, availableWidths, tolerance);
    }
    if (breaks.length === 0 || breaks.length === 1 && breaks[0] === 0) {
      breaks = applyBestFit(nodes, availableWidths);
    }
    return breakLines(attributedString, nodes, breaks.slice(1));
  };
};
var Direction;
(function(Direction3) {
  Direction3[Direction3["GROW"] = 0] = "GROW";
  Direction3[Direction3["SHRINK"] = 1] = "SHRINK";
})(Direction || (Direction = {}));
var WHITESPACE_PRIORITY = 1;
var LETTER_PRIORITY = 2;
var EXPAND_WHITESPACE_FACTOR = {
  before: 0.5,
  after: 0.5,
  priority: WHITESPACE_PRIORITY,
  unconstrained: false
};
var EXPAND_CHAR_FACTOR = {
  before: 0.14453125,
  // 37/256
  after: 0.14453125,
  priority: LETTER_PRIORITY,
  unconstrained: false
};
var SHRINK_WHITESPACE_FACTOR = {
  before: -0.04296875,
  // -11/256
  after: -0.04296875,
  priority: WHITESPACE_PRIORITY,
  unconstrained: false
};
var SHRINK_CHAR_FACTOR = {
  before: -0.04296875,
  after: -0.04296875,
  priority: LETTER_PRIORITY,
  unconstrained: false
};
var getCharFactor = (direction, options) => {
  const expandCharFactor = options.expandCharFactor || {};
  const shrinkCharFactor = options.shrinkCharFactor || {};
  return direction === Direction.GROW ? Object.assign({}, EXPAND_CHAR_FACTOR, expandCharFactor) : Object.assign({}, SHRINK_CHAR_FACTOR, shrinkCharFactor);
};
var getWhitespaceFactor = (direction, options) => {
  const expandWhitespaceFactor = options.expandWhitespaceFactor || {};
  const shrinkWhitespaceFactor2 = options.shrinkWhitespaceFactor || {};
  return direction === Direction.GROW ? Object.assign({}, EXPAND_WHITESPACE_FACTOR, expandWhitespaceFactor) : Object.assign({}, SHRINK_WHITESPACE_FACTOR, shrinkWhitespaceFactor2);
};
var factor = (direction, options) => (glyphs) => {
  const charFactor = getCharFactor(direction, options);
  const whitespaceFactor = getWhitespaceFactor(direction, options);
  const factors = [];
  for (let index2 = 0; index2 < glyphs.length; index2 += 1) {
    let f4;
    const glyph = glyphs[index2];
    if (isWhiteSpace(glyph)) {
      f4 = Object.assign({}, whitespaceFactor);
      if (index2 === glyphs.length - 1) {
        f4.before = 0;
        if (index2 > 0) {
          factors[index2 - 1].after = 0;
        }
      }
    } else if (glyph.isMark && index2 > 0) {
      f4 = Object.assign({}, factors[index2 - 1]);
      f4.before = 0;
      factors[index2 - 1].after = 0;
    } else {
      f4 = Object.assign({}, charFactor);
    }
    factors.push(f4);
  }
  return factors;
};
var getFactors = (gap, line2, options) => {
  const direction = gap > 0 ? Direction.GROW : Direction.SHRINK;
  const getFactor = factor(direction, options);
  const factors = line2.runs.reduce((acc, run) => {
    return acc.concat(getFactor(run.glyphs));
  }, []);
  factors[0].before = 0;
  factors[factors.length - 1].after = 0;
  return factors;
};
var KASHIDA_PRIORITY = 0;
var NULL_PRIORITY = 3;
var getDistances = (gap, factors) => {
  let total = 0;
  const priorities = [];
  const unconstrained = [];
  for (let priority2 = KASHIDA_PRIORITY; priority2 <= NULL_PRIORITY; priority2 += 1) {
    priorities[priority2] = unconstrained[priority2] = 0;
  }
  for (let j = 0; j < factors.length; j += 1) {
    const f4 = factors[j];
    const sum = f4.before + f4.after;
    total += sum;
    priorities[f4.priority] += sum;
    if (f4.unconstrained) {
      unconstrained[f4.priority] += sum;
    }
  }
  let highestPriority = -1;
  let highestPrioritySum = 0;
  let remainingGap = gap;
  let priority;
  for (priority = KASHIDA_PRIORITY; priority <= NULL_PRIORITY; priority += 1) {
    const prioritySum = priorities[priority];
    if (prioritySum !== 0) {
      if (highestPriority === -1) {
        highestPriority = priority;
        highestPrioritySum = prioritySum;
      }
      if (Math.abs(remainingGap) <= Math.abs(prioritySum)) {
        priorities[priority] = remainingGap / prioritySum;
        unconstrained[priority] = 0;
        remainingGap = 0;
        break;
      }
      priorities[priority] = 1;
      remainingGap -= prioritySum;
      if (unconstrained[priority] !== 0) {
        unconstrained[priority] = remainingGap / unconstrained[priority];
        remainingGap = 0;
        break;
      }
    }
  }
  for (let p3 = priority + 1; p3 <= NULL_PRIORITY; p3 += 1) {
    priorities[p3] = 0;
    unconstrained[p3] = 0;
  }
  if (remainingGap > 0 && highestPriority > -1) {
    priorities[highestPriority] = (highestPrioritySum + (gap - total)) / highestPrioritySum;
  }
  const distances = [];
  for (let index2 = 0; index2 < factors.length; index2 += 1) {
    const f4 = factors[index2];
    const next = factors[index2 + 1];
    let dist = f4.after * priorities[f4.priority];
    if (next) {
      dist += next.before * priorities[next.priority];
    }
    if (f4.unconstrained) {
      dist += f4.after * unconstrained[f4.priority];
      if (next) {
        dist += next.before * unconstrained[next.priority];
      }
    }
    distances.push(dist);
  }
  return distances;
};
var justifyLine = (distances, line2) => {
  let index2 = 0;
  for (const run of line2.runs) {
    for (const position of run.positions) {
      position.xAdvance += distances[index2++];
    }
  }
  return line2;
};
var justification = (options) => {
  return (line2) => {
    const gap = line2.box.width - advanceWidth(line2);
    if (gap === 0)
      return line2;
    const factors = getFactors(gap, line2, options);
    const distances = getDistances(gap, factors);
    return justifyLine(distances, line2);
  };
};
var ascent = (attributedString) => {
  const reducer = (acc, run) => Math.max(acc, ascent$1(run));
  return attributedString.runs.reduce(reducer, 0);
};
var BASE_FONT_SIZE = 12;
var textDecoration = () => (line2) => {
  let x = line2.overflowLeft || 0;
  const overflowRight = line2.overflowRight || 0;
  const maxX = advanceWidth(line2) - overflowRight;
  line2.decorationLines = [];
  for (let i5 = 0; i5 < line2.runs.length; i5 += 1) {
    const run = line2.runs[i5];
    const width = Math.min(maxX - x, advanceWidth$1(run));
    const thickness = Math.max(0.5, Math.floor(run.attributes.fontSize / BASE_FONT_SIZE));
    if (run.attributes.underline) {
      const rect = {
        x,
        y: ascent(line2) + thickness * 2,
        width,
        height: thickness
      };
      const decorationLine = {
        rect,
        opacity: run.attributes.opacity,
        color: run.attributes.underlineColor || "black",
        style: run.attributes.underlineStyle || "solid"
      };
      line2.decorationLines.push(decorationLine);
    }
    if (run.attributes.strike) {
      const y3 = ascent(line2) - ascent$1(run) / 3;
      const rect = { x, y: y3, width, height: thickness };
      const decorationLine = {
        rect,
        opacity: run.attributes.opacity,
        color: run.attributes.strikeColor || "black",
        style: run.attributes.strikeStyle || "solid"
      };
      line2.decorationLines.push(decorationLine);
    }
    x += width;
  }
  return line2;
};
var ignoredScripts = ["Common", "Inherited", "Unknown"];
var scriptItemizer = () => {
  return (attributedString) => {
    const { string } = attributedString;
    let lastScript = "Unknown";
    let lastIndex = 0;
    let index2 = 0;
    const runs = [];
    if (!string)
      return empty();
    for (let i5 = 0; i5 < string.length; i5 += 1) {
      const char = string[i5];
      const codePoint = char.codePointAt(0);
      const script = $747425b437e121da$export$2e2bcd8739ae039.getScript(codePoint);
      if (script !== lastScript && !ignoredScripts.includes(script)) {
        if (lastScript !== "Unknown") {
          runs.push({
            start: lastIndex,
            end: index2,
            attributes: { script: lastScript }
          });
        }
        lastIndex = index2;
        lastScript = script;
      }
      index2 += char.length;
    }
    if (lastIndex < string.length) {
      runs.push({
        start: lastIndex,
        end: string.length,
        attributes: { script: lastScript }
      });
    }
    const result = { string, runs };
    return result;
  };
};
var SOFT_HYPHEN2 = "\xAD";
var hyphenator = (0, import_hyphen.default)(import_en_us.default);
var splitHyphen = (word) => {
  return word.split(SOFT_HYPHEN2);
};
var cache = {};
var getParts = (word) => {
  const base = word.includes(SOFT_HYPHEN2) ? word : hyphenator(word);
  return splitHyphen(base);
};
var wordHyphenation = () => {
  return (word) => {
    const cacheKey = `_${word}`;
    if (isNil(word))
      return [];
    if (cache[cacheKey])
      return cache[cacheKey];
    cache[cacheKey] = getParts(word);
    return cache[cacheKey];
  };
};
var IGNORED_CODE_POINTS = [173];
var getFontSize = (run) => run.attributes.fontSize || 12;
var pickFontFromFontStack = (codePoint, fontStack, lastFont) => {
  if (IGNORED_CODE_POINTS.includes(codePoint))
    return lastFont;
  const fontStackWithFallback = [...fontStack, lastFont];
  for (let i5 = 0; i5 < fontStackWithFallback.length; i5 += 1) {
    const font = fontStackWithFallback[i5];
    if (font && font.hasGlyphForCodePoint && font.hasGlyphForCodePoint(codePoint)) {
      return font;
    }
  }
  return fontStack.at(-1);
};
var fontSubstitution = () => ({ string, runs }) => {
  let lastFont = null;
  let lastFontSize = null;
  let lastIndex = 0;
  let index2 = 0;
  const res = [];
  for (let i5 = 0; i5 < runs.length; i5 += 1) {
    const run = runs[i5];
    if (string.length === 0) {
      res.push({
        start: 0,
        end: 0,
        attributes: { font: run.attributes.font }
      });
      break;
    }
    const chars = string.slice(run.start, run.end);
    for (let j = 0; j < chars.length; j += 1) {
      const char = chars[j];
      const codePoint = char.codePointAt(0);
      const font = pickFontFromFontStack(codePoint, run.attributes.font, lastFont);
      const fontSize = getFontSize(run);
      if (font !== lastFont || fontSize !== lastFontSize || font.unitsPerEm !== lastFont.unitsPerEm) {
        if (lastFont) {
          res.push({
            start: lastIndex,
            end: index2,
            attributes: {
              font: [lastFont],
              scale: lastFontSize / lastFont.unitsPerEm
            }
          });
        }
        lastFont = font;
        lastFontSize = fontSize;
        lastIndex = index2;
      }
      index2 += char.length;
    }
  }
  if (lastIndex < string.length) {
    const fontSize = getFontSize(last(runs));
    res.push({
      start: lastIndex,
      end: string.length,
      attributes: {
        font: [lastFont],
        scale: fontSize / lastFont.unitsPerEm
      }
    });
  }
  return { string, runs: res };
};

// ../../node_modules/.pnpm/yoga-layout@3.2.1/node_modules/yoga-layout/dist/binaries/yoga-wasm-base64-esm.js
var loadYoga = (() => {
  var _scriptDir = import.meta.url;
  return (function(loadYoga4) {
    loadYoga4 = loadYoga4 || {};
    var h4;
    h4 || (h4 = typeof loadYoga4 !== "undefined" ? loadYoga4 : {});
    var aa, ca;
    h4.ready = new Promise(function(a5, b3) {
      aa = a5;
      ca = b3;
    });
    var da = Object.assign({}, h4), q = "";
    "undefined" != typeof document && document.currentScript && (q = document.currentScript.src);
    _scriptDir && (q = _scriptDir);
    0 !== q.indexOf("blob:") ? q = q.substr(0, q.replace(/[?#].*/, "").lastIndexOf("/") + 1) : q = "";
    var ea = h4.print || console.log.bind(console), v3 = h4.printErr || console.warn.bind(console);
    Object.assign(h4, da);
    da = null;
    var w;
    h4.wasmBinary && (w = h4.wasmBinary);
    var noExitRuntime = h4.noExitRuntime || true;
    "object" != typeof WebAssembly && x("no native wasm support detected");
    var fa, ha = false;
    function z(a5, b3, c6) {
      c6 = b3 + c6;
      for (var d3 = ""; !(b3 >= c6); ) {
        var e4 = a5[b3++];
        if (!e4) break;
        if (e4 & 128) {
          var f4 = a5[b3++] & 63;
          if (192 == (e4 & 224)) d3 += String.fromCharCode((e4 & 31) << 6 | f4);
          else {
            var g3 = a5[b3++] & 63;
            e4 = 224 == (e4 & 240) ? (e4 & 15) << 12 | f4 << 6 | g3 : (e4 & 7) << 18 | f4 << 12 | g3 << 6 | a5[b3++] & 63;
            65536 > e4 ? d3 += String.fromCharCode(e4) : (e4 -= 65536, d3 += String.fromCharCode(55296 | e4 >> 10, 56320 | e4 & 1023));
          }
        } else d3 += String.fromCharCode(e4);
      }
      return d3;
    }
    var ia, ja, A, C, ka, D, E, la, ma;
    function na() {
      var a5 = fa.buffer;
      ia = a5;
      h4.HEAP8 = ja = new Int8Array(a5);
      h4.HEAP16 = C = new Int16Array(a5);
      h4.HEAP32 = D = new Int32Array(a5);
      h4.HEAPU8 = A = new Uint8Array(a5);
      h4.HEAPU16 = ka = new Uint16Array(a5);
      h4.HEAPU32 = E = new Uint32Array(a5);
      h4.HEAPF32 = la = new Float32Array(a5);
      h4.HEAPF64 = ma = new Float64Array(a5);
    }
    var oa, pa = [], qa = [], ra = [];
    function sa() {
      var a5 = h4.preRun.shift();
      pa.unshift(a5);
    }
    var F = 0, ta = null, G2 = null;
    function x(a5) {
      if (h4.onAbort) h4.onAbort(a5);
      a5 = "Aborted(" + a5 + ")";
      v3(a5);
      ha = true;
      a5 = new WebAssembly.RuntimeError(a5 + ". Build with -sASSERTIONS for more info.");
      ca(a5);
      throw a5;
    }
    function ua(a5) {
      return a5.startsWith("data:application/octet-stream;base64,");
    }
    var H;
    H = "data:application/octet-stream;base64,[encoded data, 95648 characters]";
    if (!ua(H)) {
      var va = H;
      H = h4.locateFile ? h4.locateFile(va, q) : q + va;
    }
    function wa() {
      var a5 = H;
      try {
        if (a5 == H && w) return new Uint8Array(w);
        if (ua(a5)) try {
          var b3 = xa(a5.slice(37)), c6 = new Uint8Array(b3.length);
          for (a5 = 0; a5 < b3.length; ++a5) c6[a5] = b3.charCodeAt(a5);
          var d3 = c6;
        } catch (f4) {
          throw Error("Converting base64 string to bytes failed.");
        }
        else d3 = void 0;
        var e4 = d3;
        if (e4) return e4;
        throw "both async and sync fetching of the wasm failed";
      } catch (f4) {
        x(f4);
      }
    }
    function ya() {
      return w || "function" != typeof fetch ? Promise.resolve().then(function() {
        return wa();
      }) : fetch(H, { credentials: "same-origin" }).then(function(a5) {
        if (!a5.ok) throw "failed to load wasm binary file at '" + H + "'";
        return a5.arrayBuffer();
      }).catch(function() {
        return wa();
      });
    }
    function za(a5) {
      for (; 0 < a5.length; ) a5.shift()(h4);
    }
    function Aa(a5) {
      if (void 0 === a5) return "_unknown";
      a5 = a5.replace(/[^a-zA-Z0-9_]/g, "$");
      var b3 = a5.charCodeAt(0);
      return 48 <= b3 && 57 >= b3 ? "_" + a5 : a5;
    }
    function Ba(a5, b3) {
      a5 = Aa(a5);
      return function() {
        return b3.apply(this, arguments);
      };
    }
    var J = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }], Ca = [];
    function Da(a5) {
      var b3 = Error, c6 = Ba(a5, function(d3) {
        this.name = a5;
        this.message = d3;
        d3 = Error(d3).stack;
        void 0 !== d3 && (this.stack = this.toString() + "\n" + d3.replace(/^Error(:[^\n]*)?\n/, ""));
      });
      c6.prototype = Object.create(b3.prototype);
      c6.prototype.constructor = c6;
      c6.prototype.toString = function() {
        return void 0 === this.message ? this.name : this.name + ": " + this.message;
      };
      return c6;
    }
    var K = void 0;
    function L(a5) {
      throw new K(a5);
    }
    var M = (a5) => {
      a5 || L("Cannot use deleted val. handle = " + a5);
      return J[a5].value;
    }, Ea = (a5) => {
      switch (a5) {
        case void 0:
          return 1;
        case null:
          return 2;
        case true:
          return 3;
        case false:
          return 4;
        default:
          var b3 = Ca.length ? Ca.pop() : J.length;
          J[b3] = { ga: 1, value: a5 };
          return b3;
      }
    }, Fa = void 0, Ga = void 0;
    function N(a5) {
      for (var b3 = ""; A[a5]; ) b3 += Ga[A[a5++]];
      return b3;
    }
    var O = [];
    function Ha() {
      for (; O.length; ) {
        var a5 = O.pop();
        a5.M.$ = false;
        a5["delete"]();
      }
    }
    var P = void 0, Q = {};
    function Ia(a5, b3) {
      for (void 0 === b3 && L("ptr should not be undefined"); a5.R; ) b3 = a5.ba(b3), a5 = a5.R;
      return b3;
    }
    var R = {};
    function Ja(a5) {
      a5 = Ka(a5);
      var b3 = N(a5);
      S3(a5);
      return b3;
    }
    function La(a5, b3) {
      var c6 = R[a5];
      void 0 === c6 && L(b3 + " has unknown type " + Ja(a5));
      return c6;
    }
    function Ma() {
    }
    var Na = false;
    function Oa(a5) {
      --a5.count.value;
      0 === a5.count.value && (a5.T ? a5.U.W(a5.T) : a5.P.N.W(a5.O));
    }
    function Pa(a5, b3, c6) {
      if (b3 === c6) return a5;
      if (void 0 === c6.R) return null;
      a5 = Pa(a5, b3, c6.R);
      return null === a5 ? null : c6.na(a5);
    }
    var Qa = {};
    function Ra(a5, b3) {
      b3 = Ia(a5, b3);
      return Q[b3];
    }
    var Sa = void 0;
    function Ta(a5) {
      throw new Sa(a5);
    }
    function Ua(a5, b3) {
      b3.P && b3.O || Ta("makeClassHandle requires ptr and ptrType");
      !!b3.U !== !!b3.T && Ta("Both smartPtrType and smartPtr must be specified");
      b3.count = { value: 1 };
      return T(Object.create(a5, { M: { value: b3 } }));
    }
    function T(a5) {
      if ("undefined" === typeof FinalizationRegistry) return T = (b3) => b3, a5;
      Na = new FinalizationRegistry((b3) => {
        Oa(b3.M);
      });
      T = (b3) => {
        var c6 = b3.M;
        c6.T && Na.register(b3, { M: c6 }, b3);
        return b3;
      };
      Ma = (b3) => {
        Na.unregister(b3);
      };
      return T(a5);
    }
    var Va = {};
    function Wa(a5) {
      for (; a5.length; ) {
        var b3 = a5.pop();
        a5.pop()(b3);
      }
    }
    function Xa(a5) {
      return this.fromWireType(D[a5 >> 2]);
    }
    var U = {}, Ya = {};
    function V(a5, b3, c6) {
      function d3(k3) {
        k3 = c6(k3);
        k3.length !== a5.length && Ta("Mismatched type converter count");
        for (var m3 = 0; m3 < a5.length; ++m3) W(a5[m3], k3[m3]);
      }
      a5.forEach(function(k3) {
        Ya[k3] = b3;
      });
      var e4 = Array(b3.length), f4 = [], g3 = 0;
      b3.forEach((k3, m3) => {
        R.hasOwnProperty(k3) ? e4[m3] = R[k3] : (f4.push(k3), U.hasOwnProperty(k3) || (U[k3] = []), U[k3].push(() => {
          e4[m3] = R[k3];
          ++g3;
          g3 === f4.length && d3(e4);
        }));
      });
      0 === f4.length && d3(e4);
    }
    function Za(a5) {
      switch (a5) {
        case 1:
          return 0;
        case 2:
          return 1;
        case 4:
          return 2;
        case 8:
          return 3;
        default:
          throw new TypeError("Unknown type size: " + a5);
      }
    }
    function W(a5, b3, c6 = {}) {
      if (!("argPackAdvance" in b3)) throw new TypeError("registerType registeredInstance requires argPackAdvance");
      var d3 = b3.name;
      a5 || L('type "' + d3 + '" must have a positive integer typeid pointer');
      if (R.hasOwnProperty(a5)) {
        if (c6.ua) return;
        L("Cannot register type '" + d3 + "' twice");
      }
      R[a5] = b3;
      delete Ya[a5];
      U.hasOwnProperty(a5) && (b3 = U[a5], delete U[a5], b3.forEach((e4) => e4()));
    }
    function $a(a5) {
      L(a5.M.P.N.name + " instance already deleted");
    }
    function X() {
    }
    function ab(a5, b3, c6) {
      if (void 0 === a5[b3].S) {
        var d3 = a5[b3];
        a5[b3] = function() {
          a5[b3].S.hasOwnProperty(arguments.length) || L("Function '" + c6 + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + a5[b3].S + ")!");
          return a5[b3].S[arguments.length].apply(this, arguments);
        };
        a5[b3].S = [];
        a5[b3].S[d3.Z] = d3;
      }
    }
    function bb(a5, b3) {
      h4.hasOwnProperty(a5) ? (L("Cannot register public name '" + a5 + "' twice"), ab(h4, a5, a5), h4.hasOwnProperty(void 0) && L("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"), h4[a5].S[void 0] = b3) : h4[a5] = b3;
    }
    function cb(a5, b3, c6, d3, e4, f4, g3, k3) {
      this.name = a5;
      this.constructor = b3;
      this.X = c6;
      this.W = d3;
      this.R = e4;
      this.pa = f4;
      this.ba = g3;
      this.na = k3;
      this.ja = [];
    }
    function db(a5, b3, c6) {
      for (; b3 !== c6; ) b3.ba || L("Expected null or instance of " + c6.name + ", got an instance of " + b3.name), a5 = b3.ba(a5), b3 = b3.R;
      return a5;
    }
    function eb(a5, b3) {
      if (null === b3) return this.ea && L("null is not a valid " + this.name), 0;
      b3.M || L('Cannot pass "' + fb(b3) + '" as a ' + this.name);
      b3.M.O || L("Cannot pass deleted object as a pointer of type " + this.name);
      return db(b3.M.O, b3.M.P.N, this.N);
    }
    function gb(a5, b3) {
      if (null === b3) {
        this.ea && L("null is not a valid " + this.name);
        if (this.da) {
          var c6 = this.fa();
          null !== a5 && a5.push(this.W, c6);
          return c6;
        }
        return 0;
      }
      b3.M || L('Cannot pass "' + fb(b3) + '" as a ' + this.name);
      b3.M.O || L("Cannot pass deleted object as a pointer of type " + this.name);
      !this.ca && b3.M.P.ca && L("Cannot convert argument of type " + (b3.M.U ? b3.M.U.name : b3.M.P.name) + " to parameter type " + this.name);
      c6 = db(b3.M.O, b3.M.P.N, this.N);
      if (this.da) switch (void 0 === b3.M.T && L("Passing raw pointer to smart pointer is illegal"), this.Ba) {
        case 0:
          b3.M.U === this ? c6 = b3.M.T : L("Cannot convert argument of type " + (b3.M.U ? b3.M.U.name : b3.M.P.name) + " to parameter type " + this.name);
          break;
        case 1:
          c6 = b3.M.T;
          break;
        case 2:
          if (b3.M.U === this) c6 = b3.M.T;
          else {
            var d3 = b3.clone();
            c6 = this.xa(c6, Ea(function() {
              d3["delete"]();
            }));
            null !== a5 && a5.push(this.W, c6);
          }
          break;
        default:
          L("Unsupporting sharing policy");
      }
      return c6;
    }
    function hb(a5, b3) {
      if (null === b3) return this.ea && L("null is not a valid " + this.name), 0;
      b3.M || L('Cannot pass "' + fb(b3) + '" as a ' + this.name);
      b3.M.O || L("Cannot pass deleted object as a pointer of type " + this.name);
      b3.M.P.ca && L("Cannot convert argument of type " + b3.M.P.name + " to parameter type " + this.name);
      return db(b3.M.O, b3.M.P.N, this.N);
    }
    function Y(a5, b3, c6, d3) {
      this.name = a5;
      this.N = b3;
      this.ea = c6;
      this.ca = d3;
      this.da = false;
      this.W = this.xa = this.fa = this.ka = this.Ba = this.wa = void 0;
      void 0 !== b3.R ? this.toWireType = gb : (this.toWireType = d3 ? eb : hb, this.V = null);
    }
    function ib(a5, b3) {
      h4.hasOwnProperty(a5) || Ta("Replacing nonexistant public symbol");
      h4[a5] = b3;
      h4[a5].Z = void 0;
    }
    function jb(a5, b3) {
      var c6 = [];
      return function() {
        c6.length = 0;
        Object.assign(c6, arguments);
        if (a5.includes("j")) {
          var d3 = h4["dynCall_" + a5];
          d3 = c6 && c6.length ? d3.apply(null, [b3].concat(c6)) : d3.call(null, b3);
        } else d3 = oa.get(b3).apply(null, c6);
        return d3;
      };
    }
    function Z(a5, b3) {
      a5 = N(a5);
      var c6 = a5.includes("j") ? jb(a5, b3) : oa.get(b3);
      "function" != typeof c6 && L("unknown function pointer with signature " + a5 + ": " + b3);
      return c6;
    }
    var mb = void 0;
    function nb(a5, b3) {
      function c6(f4) {
        e4[f4] || R[f4] || (Ya[f4] ? Ya[f4].forEach(c6) : (d3.push(f4), e4[f4] = true));
      }
      var d3 = [], e4 = {};
      b3.forEach(c6);
      throw new mb(a5 + ": " + d3.map(Ja).join([", "]));
    }
    function ob(a5, b3, c6, d3, e4) {
      var f4 = b3.length;
      2 > f4 && L("argTypes array size mismatch! Must at least get return value and 'this' types!");
      var g3 = null !== b3[1] && null !== c6, k3 = false;
      for (c6 = 1; c6 < b3.length; ++c6) if (null !== b3[c6] && void 0 === b3[c6].V) {
        k3 = true;
        break;
      }
      var m3 = "void" !== b3[0].name, l4 = f4 - 2, n6 = Array(l4), p3 = [], r4 = [];
      return function() {
        arguments.length !== l4 && L("function " + a5 + " called with " + arguments.length + " arguments, expected " + l4 + " args!");
        r4.length = 0;
        p3.length = g3 ? 2 : 1;
        p3[0] = e4;
        if (g3) {
          var u5 = b3[1].toWireType(r4, this);
          p3[1] = u5;
        }
        for (var t4 = 0; t4 < l4; ++t4) n6[t4] = b3[t4 + 2].toWireType(r4, arguments[t4]), p3.push(n6[t4]);
        t4 = d3.apply(null, p3);
        if (k3) Wa(r4);
        else for (var y3 = g3 ? 1 : 2; y3 < b3.length; y3++) {
          var B = 1 === y3 ? u5 : n6[y3 - 2];
          null !== b3[y3].V && b3[y3].V(B);
        }
        u5 = m3 ? b3[0].fromWireType(t4) : void 0;
        return u5;
      };
    }
    function pb(a5, b3) {
      for (var c6 = [], d3 = 0; d3 < a5; d3++) c6.push(E[b3 + 4 * d3 >> 2]);
      return c6;
    }
    function qb(a5) {
      4 < a5 && 0 === --J[a5].ga && (J[a5] = void 0, Ca.push(a5));
    }
    function fb(a5) {
      if (null === a5) return "null";
      var b3 = typeof a5;
      return "object" === b3 || "array" === b3 || "function" === b3 ? a5.toString() : "" + a5;
    }
    function rb(a5, b3) {
      switch (b3) {
        case 2:
          return function(c6) {
            return this.fromWireType(la[c6 >> 2]);
          };
        case 3:
          return function(c6) {
            return this.fromWireType(ma[c6 >> 3]);
          };
        default:
          throw new TypeError("Unknown float type: " + a5);
      }
    }
    function sb(a5, b3, c6) {
      switch (b3) {
        case 0:
          return c6 ? function(d3) {
            return ja[d3];
          } : function(d3) {
            return A[d3];
          };
        case 1:
          return c6 ? function(d3) {
            return C[d3 >> 1];
          } : function(d3) {
            return ka[d3 >> 1];
          };
        case 2:
          return c6 ? function(d3) {
            return D[d3 >> 2];
          } : function(d3) {
            return E[d3 >> 2];
          };
        default:
          throw new TypeError("Unknown integer type: " + a5);
      }
    }
    function tb(a5, b3) {
      for (var c6 = "", d3 = 0; !(d3 >= b3 / 2); ++d3) {
        var e4 = C[a5 + 2 * d3 >> 1];
        if (0 == e4) break;
        c6 += String.fromCharCode(e4);
      }
      return c6;
    }
    function ub(a5, b3, c6) {
      void 0 === c6 && (c6 = 2147483647);
      if (2 > c6) return 0;
      c6 -= 2;
      var d3 = b3;
      c6 = c6 < 2 * a5.length ? c6 / 2 : a5.length;
      for (var e4 = 0; e4 < c6; ++e4) C[b3 >> 1] = a5.charCodeAt(e4), b3 += 2;
      C[b3 >> 1] = 0;
      return b3 - d3;
    }
    function vb(a5) {
      return 2 * a5.length;
    }
    function wb(a5, b3) {
      for (var c6 = 0, d3 = ""; !(c6 >= b3 / 4); ) {
        var e4 = D[a5 + 4 * c6 >> 2];
        if (0 == e4) break;
        ++c6;
        65536 <= e4 ? (e4 -= 65536, d3 += String.fromCharCode(55296 | e4 >> 10, 56320 | e4 & 1023)) : d3 += String.fromCharCode(e4);
      }
      return d3;
    }
    function xb(a5, b3, c6) {
      void 0 === c6 && (c6 = 2147483647);
      if (4 > c6) return 0;
      var d3 = b3;
      c6 = d3 + c6 - 4;
      for (var e4 = 0; e4 < a5.length; ++e4) {
        var f4 = a5.charCodeAt(e4);
        if (55296 <= f4 && 57343 >= f4) {
          var g3 = a5.charCodeAt(++e4);
          f4 = 65536 + ((f4 & 1023) << 10) | g3 & 1023;
        }
        D[b3 >> 2] = f4;
        b3 += 4;
        if (b3 + 4 > c6) break;
      }
      D[b3 >> 2] = 0;
      return b3 - d3;
    }
    function yb(a5) {
      for (var b3 = 0, c6 = 0; c6 < a5.length; ++c6) {
        var d3 = a5.charCodeAt(c6);
        55296 <= d3 && 57343 >= d3 && ++c6;
        b3 += 4;
      }
      return b3;
    }
    var zb = {};
    function Ab(a5) {
      var b3 = zb[a5];
      return void 0 === b3 ? N(a5) : b3;
    }
    var Bb = [];
    function Cb(a5) {
      var b3 = Bb.length;
      Bb.push(a5);
      return b3;
    }
    function Db(a5, b3) {
      for (var c6 = Array(a5), d3 = 0; d3 < a5; ++d3) c6[d3] = La(E[b3 + 4 * d3 >> 2], "parameter " + d3);
      return c6;
    }
    var Eb = [], Fb = [null, [], []];
    K = h4.BindingError = Da("BindingError");
    h4.count_emval_handles = function() {
      for (var a5 = 0, b3 = 5; b3 < J.length; ++b3) void 0 !== J[b3] && ++a5;
      return a5;
    };
    h4.get_first_emval = function() {
      for (var a5 = 5; a5 < J.length; ++a5) if (void 0 !== J[a5]) return J[a5];
      return null;
    };
    Fa = h4.PureVirtualError = Da("PureVirtualError");
    for (var Gb = Array(256), Hb = 0; 256 > Hb; ++Hb) Gb[Hb] = String.fromCharCode(Hb);
    Ga = Gb;
    h4.getInheritedInstanceCount = function() {
      return Object.keys(Q).length;
    };
    h4.getLiveInheritedInstances = function() {
      var a5 = [], b3;
      for (b3 in Q) Q.hasOwnProperty(b3) && a5.push(Q[b3]);
      return a5;
    };
    h4.flushPendingDeletes = Ha;
    h4.setDelayFunction = function(a5) {
      P = a5;
      O.length && P && P(Ha);
    };
    Sa = h4.InternalError = Da("InternalError");
    X.prototype.isAliasOf = function(a5) {
      if (!(this instanceof X && a5 instanceof X)) return false;
      var b3 = this.M.P.N, c6 = this.M.O, d3 = a5.M.P.N;
      for (a5 = a5.M.O; b3.R; ) c6 = b3.ba(c6), b3 = b3.R;
      for (; d3.R; ) a5 = d3.ba(a5), d3 = d3.R;
      return b3 === d3 && c6 === a5;
    };
    X.prototype.clone = function() {
      this.M.O || $a(this);
      if (this.M.aa) return this.M.count.value += 1, this;
      var a5 = T, b3 = Object, c6 = b3.create, d3 = Object.getPrototypeOf(this), e4 = this.M;
      a5 = a5(c6.call(b3, d3, { M: { value: { count: e4.count, $: e4.$, aa: e4.aa, O: e4.O, P: e4.P, T: e4.T, U: e4.U } } }));
      a5.M.count.value += 1;
      a5.M.$ = false;
      return a5;
    };
    X.prototype["delete"] = function() {
      this.M.O || $a(this);
      this.M.$ && !this.M.aa && L("Object already scheduled for deletion");
      Ma(this);
      Oa(this.M);
      this.M.aa || (this.M.T = void 0, this.M.O = void 0);
    };
    X.prototype.isDeleted = function() {
      return !this.M.O;
    };
    X.prototype.deleteLater = function() {
      this.M.O || $a(this);
      this.M.$ && !this.M.aa && L("Object already scheduled for deletion");
      O.push(this);
      1 === O.length && P && P(Ha);
      this.M.$ = true;
      return this;
    };
    Y.prototype.qa = function(a5) {
      this.ka && (a5 = this.ka(a5));
      return a5;
    };
    Y.prototype.ha = function(a5) {
      this.W && this.W(a5);
    };
    Y.prototype.argPackAdvance = 8;
    Y.prototype.readValueFromPointer = Xa;
    Y.prototype.deleteObject = function(a5) {
      if (null !== a5) a5["delete"]();
    };
    Y.prototype.fromWireType = function(a5) {
      function b3() {
        return this.da ? Ua(this.N.X, { P: this.wa, O: c6, U: this, T: a5 }) : Ua(this.N.X, { P: this, O: a5 });
      }
      var c6 = this.qa(a5);
      if (!c6) return this.ha(a5), null;
      var d3 = Ra(this.N, c6);
      if (void 0 !== d3) {
        if (0 === d3.M.count.value) return d3.M.O = c6, d3.M.T = a5, d3.clone();
        d3 = d3.clone();
        this.ha(a5);
        return d3;
      }
      d3 = this.N.pa(c6);
      d3 = Qa[d3];
      if (!d3) return b3.call(this);
      d3 = this.ca ? d3.la : d3.pointerType;
      var e4 = Pa(c6, this.N, d3.N);
      return null === e4 ? b3.call(this) : this.da ? Ua(d3.N.X, { P: d3, O: e4, U: this, T: a5 }) : Ua(d3.N.X, { P: d3, O: e4 });
    };
    mb = h4.UnboundTypeError = Da("UnboundTypeError");
    var xa = "function" == typeof atob ? atob : function(a5) {
      var b3 = "", c6 = 0;
      a5 = a5.replace(/[^A-Za-z0-9\+\/=]/g, "");
      do {
        var d3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a5.charAt(c6++));
        var e4 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a5.charAt(c6++));
        var f4 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a5.charAt(c6++));
        var g3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a5.charAt(c6++));
        d3 = d3 << 2 | e4 >> 4;
        e4 = (e4 & 15) << 4 | f4 >> 2;
        var k3 = (f4 & 3) << 6 | g3;
        b3 += String.fromCharCode(d3);
        64 !== f4 && (b3 += String.fromCharCode(e4));
        64 !== g3 && (b3 += String.fromCharCode(k3));
      } while (c6 < a5.length);
      return b3;
    }, Jb = {
      l: function(a5, b3, c6, d3) {
        x("Assertion failed: " + (a5 ? z(A, a5) : "") + ", at: " + [b3 ? b3 ? z(A, b3) : "" : "unknown filename", c6, d3 ? d3 ? z(A, d3) : "" : "unknown function"]);
      },
      q: function(a5, b3, c6) {
        a5 = N(a5);
        b3 = La(b3, "wrapper");
        c6 = M(c6);
        var d3 = [].slice, e4 = b3.N, f4 = e4.X, g3 = e4.R.X, k3 = e4.R.constructor;
        a5 = Ba(a5, function() {
          e4.R.ja.forEach(function(l4) {
            if (this[l4] === g3[l4]) throw new Fa("Pure virtual function " + l4 + " must be implemented in JavaScript");
          }.bind(this));
          Object.defineProperty(this, "__parent", { value: f4 });
          this.__construct.apply(this, d3.call(arguments));
        });
        f4.__construct = function() {
          this === f4 && L("Pass correct 'this' to __construct");
          var l4 = k3.implement.apply(void 0, [this].concat(d3.call(arguments)));
          Ma(l4);
          var n6 = l4.M;
          l4.notifyOnDestruction();
          n6.aa = true;
          Object.defineProperties(this, { M: { value: n6 } });
          T(this);
          l4 = n6.O;
          l4 = Ia(e4, l4);
          Q.hasOwnProperty(l4) ? L("Tried to register registered instance: " + l4) : Q[l4] = this;
        };
        f4.__destruct = function() {
          this === f4 && L("Pass correct 'this' to __destruct");
          Ma(this);
          var l4 = this.M.O;
          l4 = Ia(e4, l4);
          Q.hasOwnProperty(l4) ? delete Q[l4] : L("Tried to unregister unregistered instance: " + l4);
        };
        a5.prototype = Object.create(f4);
        for (var m3 in c6) a5.prototype[m3] = c6[m3];
        return Ea(a5);
      },
      j: function(a5) {
        var b3 = Va[a5];
        delete Va[a5];
        var c6 = b3.fa, d3 = b3.W, e4 = b3.ia, f4 = e4.map((g3) => g3.ta).concat(e4.map((g3) => g3.za));
        V([a5], f4, (g3) => {
          var k3 = {};
          e4.forEach((m3, l4) => {
            var n6 = g3[l4], p3 = m3.ra, r4 = m3.sa, u5 = g3[l4 + e4.length], t4 = m3.ya, y3 = m3.Aa;
            k3[m3.oa] = { read: (B) => n6.fromWireType(p3(r4, B)), write: (B, ba) => {
              var I = [];
              t4(
                y3,
                B,
                u5.toWireType(I, ba)
              );
              Wa(I);
            } };
          });
          return [{ name: b3.name, fromWireType: function(m3) {
            var l4 = {}, n6;
            for (n6 in k3) l4[n6] = k3[n6].read(m3);
            d3(m3);
            return l4;
          }, toWireType: function(m3, l4) {
            for (var n6 in k3) if (!(n6 in l4)) throw new TypeError('Missing field:  "' + n6 + '"');
            var p3 = c6();
            for (n6 in k3) k3[n6].write(p3, l4[n6]);
            null !== m3 && m3.push(d3, p3);
            return p3;
          }, argPackAdvance: 8, readValueFromPointer: Xa, V: d3 }];
        });
      },
      v: function() {
      },
      B: function(a5, b3, c6, d3, e4) {
        var f4 = Za(c6);
        b3 = N(b3);
        W(a5, {
          name: b3,
          fromWireType: function(g3) {
            return !!g3;
          },
          toWireType: function(g3, k3) {
            return k3 ? d3 : e4;
          },
          argPackAdvance: 8,
          readValueFromPointer: function(g3) {
            if (1 === c6) var k3 = ja;
            else if (2 === c6) k3 = C;
            else if (4 === c6) k3 = D;
            else throw new TypeError("Unknown boolean type size: " + b3);
            return this.fromWireType(k3[g3 >> f4]);
          },
          V: null
        });
      },
      f: function(a5, b3, c6, d3, e4, f4, g3, k3, m3, l4, n6, p3, r4) {
        n6 = N(n6);
        f4 = Z(e4, f4);
        k3 && (k3 = Z(g3, k3));
        l4 && (l4 = Z(m3, l4));
        r4 = Z(p3, r4);
        var u5 = Aa(n6);
        bb(u5, function() {
          nb("Cannot construct " + n6 + " due to unbound types", [d3]);
        });
        V([a5, b3, c6], d3 ? [d3] : [], function(t4) {
          t4 = t4[0];
          if (d3) {
            var y3 = t4.N;
            var B = y3.X;
          } else B = X.prototype;
          t4 = Ba(u5, function() {
            if (Object.getPrototypeOf(this) !== ba) throw new K("Use 'new' to construct " + n6);
            if (void 0 === I.Y) throw new K(n6 + " has no accessible constructor");
            var kb = I.Y[arguments.length];
            if (void 0 === kb) throw new K("Tried to invoke ctor of " + n6 + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(I.Y).toString() + ") parameters instead!");
            return kb.apply(this, arguments);
          });
          var ba = Object.create(B, { constructor: { value: t4 } });
          t4.prototype = ba;
          var I = new cb(n6, t4, ba, r4, y3, f4, k3, l4);
          y3 = new Y(n6, I, true, false);
          B = new Y(n6 + "*", I, false, false);
          var lb = new Y(n6 + " const*", I, false, true);
          Qa[a5] = {
            pointerType: B,
            la: lb
          };
          ib(u5, t4);
          return [y3, B, lb];
        });
      },
      d: function(a5, b3, c6, d3, e4, f4, g3) {
        var k3 = pb(c6, d3);
        b3 = N(b3);
        f4 = Z(e4, f4);
        V([], [a5], function(m3) {
          function l4() {
            nb("Cannot call " + n6 + " due to unbound types", k3);
          }
          m3 = m3[0];
          var n6 = m3.name + "." + b3;
          b3.startsWith("@@") && (b3 = Symbol[b3.substring(2)]);
          var p3 = m3.N.constructor;
          void 0 === p3[b3] ? (l4.Z = c6 - 1, p3[b3] = l4) : (ab(p3, b3, n6), p3[b3].S[c6 - 1] = l4);
          V([], k3, function(r4) {
            r4 = ob(n6, [r4[0], null].concat(r4.slice(1)), null, f4, g3);
            void 0 === p3[b3].S ? (r4.Z = c6 - 1, p3[b3] = r4) : p3[b3].S[c6 - 1] = r4;
            return [];
          });
          return [];
        });
      },
      p: function(a5, b3, c6, d3, e4, f4) {
        0 < b3 || x();
        var g3 = pb(
          b3,
          c6
        );
        e4 = Z(d3, e4);
        V([], [a5], function(k3) {
          k3 = k3[0];
          var m3 = "constructor " + k3.name;
          void 0 === k3.N.Y && (k3.N.Y = []);
          if (void 0 !== k3.N.Y[b3 - 1]) throw new K("Cannot register multiple constructors with identical number of parameters (" + (b3 - 1) + ") for class '" + k3.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!");
          k3.N.Y[b3 - 1] = () => {
            nb("Cannot construct " + k3.name + " due to unbound types", g3);
          };
          V([], g3, function(l4) {
            l4.splice(1, 0, null);
            k3.N.Y[b3 - 1] = ob(m3, l4, null, e4, f4);
            return [];
          });
          return [];
        });
      },
      a: function(a5, b3, c6, d3, e4, f4, g3, k3) {
        var m3 = pb(c6, d3);
        b3 = N(b3);
        f4 = Z(e4, f4);
        V([], [a5], function(l4) {
          function n6() {
            nb("Cannot call " + p3 + " due to unbound types", m3);
          }
          l4 = l4[0];
          var p3 = l4.name + "." + b3;
          b3.startsWith("@@") && (b3 = Symbol[b3.substring(2)]);
          k3 && l4.N.ja.push(b3);
          var r4 = l4.N.X, u5 = r4[b3];
          void 0 === u5 || void 0 === u5.S && u5.className !== l4.name && u5.Z === c6 - 2 ? (n6.Z = c6 - 2, n6.className = l4.name, r4[b3] = n6) : (ab(r4, b3, p3), r4[b3].S[c6 - 2] = n6);
          V([], m3, function(t4) {
            t4 = ob(p3, t4, l4, f4, g3);
            void 0 === r4[b3].S ? (t4.Z = c6 - 2, r4[b3] = t4) : r4[b3].S[c6 - 2] = t4;
            return [];
          });
          return [];
        });
      },
      A: function(a5, b3) {
        b3 = N(b3);
        W(
          a5,
          { name: b3, fromWireType: function(c6) {
            var d3 = M(c6);
            qb(c6);
            return d3;
          }, toWireType: function(c6, d3) {
            return Ea(d3);
          }, argPackAdvance: 8, readValueFromPointer: Xa, V: null }
        );
      },
      n: function(a5, b3, c6) {
        c6 = Za(c6);
        b3 = N(b3);
        W(a5, { name: b3, fromWireType: function(d3) {
          return d3;
        }, toWireType: function(d3, e4) {
          return e4;
        }, argPackAdvance: 8, readValueFromPointer: rb(b3, c6), V: null });
      },
      e: function(a5, b3, c6, d3, e4) {
        b3 = N(b3);
        -1 === e4 && (e4 = 4294967295);
        e4 = Za(c6);
        var f4 = (k3) => k3;
        if (0 === d3) {
          var g3 = 32 - 8 * c6;
          f4 = (k3) => k3 << g3 >>> g3;
        }
        c6 = b3.includes("unsigned") ? function(k3, m3) {
          return m3 >>> 0;
        } : function(k3, m3) {
          return m3;
        };
        W(a5, { name: b3, fromWireType: f4, toWireType: c6, argPackAdvance: 8, readValueFromPointer: sb(b3, e4, 0 !== d3), V: null });
      },
      b: function(a5, b3, c6) {
        function d3(f4) {
          f4 >>= 2;
          var g3 = E;
          return new e4(ia, g3[f4 + 1], g3[f4]);
        }
        var e4 = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array][b3];
        c6 = N(c6);
        W(a5, { name: c6, fromWireType: d3, argPackAdvance: 8, readValueFromPointer: d3 }, { ua: true });
      },
      o: function(a5, b3) {
        b3 = N(b3);
        var c6 = "std::string" === b3;
        W(a5, { name: b3, fromWireType: function(d3) {
          var e4 = E[d3 >> 2], f4 = d3 + 4;
          if (c6) for (var g3 = f4, k3 = 0; k3 <= e4; ++k3) {
            var m3 = f4 + k3;
            if (k3 == e4 || 0 == A[m3]) {
              g3 = g3 ? z(A, g3, m3 - g3) : "";
              if (void 0 === l4) var l4 = g3;
              else l4 += String.fromCharCode(0), l4 += g3;
              g3 = m3 + 1;
            }
          }
          else {
            l4 = Array(e4);
            for (k3 = 0; k3 < e4; ++k3) l4[k3] = String.fromCharCode(A[f4 + k3]);
            l4 = l4.join("");
          }
          S3(d3);
          return l4;
        }, toWireType: function(d3, e4) {
          e4 instanceof ArrayBuffer && (e4 = new Uint8Array(e4));
          var f4, g3 = "string" == typeof e4;
          g3 || e4 instanceof Uint8Array || e4 instanceof Uint8ClampedArray || e4 instanceof Int8Array || L("Cannot pass non-string to std::string");
          if (c6 && g3) {
            var k3 = 0;
            for (f4 = 0; f4 < e4.length; ++f4) {
              var m3 = e4.charCodeAt(f4);
              127 >= m3 ? k3++ : 2047 >= m3 ? k3 += 2 : 55296 <= m3 && 57343 >= m3 ? (k3 += 4, ++f4) : k3 += 3;
            }
            f4 = k3;
          } else f4 = e4.length;
          k3 = Ib(4 + f4 + 1);
          m3 = k3 + 4;
          E[k3 >> 2] = f4;
          if (c6 && g3) {
            if (g3 = m3, m3 = f4 + 1, f4 = A, 0 < m3) {
              m3 = g3 + m3 - 1;
              for (var l4 = 0; l4 < e4.length; ++l4) {
                var n6 = e4.charCodeAt(l4);
                if (55296 <= n6 && 57343 >= n6) {
                  var p3 = e4.charCodeAt(++l4);
                  n6 = 65536 + ((n6 & 1023) << 10) | p3 & 1023;
                }
                if (127 >= n6) {
                  if (g3 >= m3) break;
                  f4[g3++] = n6;
                } else {
                  if (2047 >= n6) {
                    if (g3 + 1 >= m3) break;
                    f4[g3++] = 192 | n6 >> 6;
                  } else {
                    if (65535 >= n6) {
                      if (g3 + 2 >= m3) break;
                      f4[g3++] = 224 | n6 >> 12;
                    } else {
                      if (g3 + 3 >= m3) break;
                      f4[g3++] = 240 | n6 >> 18;
                      f4[g3++] = 128 | n6 >> 12 & 63;
                    }
                    f4[g3++] = 128 | n6 >> 6 & 63;
                  }
                  f4[g3++] = 128 | n6 & 63;
                }
              }
              f4[g3] = 0;
            }
          } else if (g3) for (g3 = 0; g3 < f4; ++g3) l4 = e4.charCodeAt(g3), 255 < l4 && (S3(m3), L("String has UTF-16 code units that do not fit in 8 bits")), A[m3 + g3] = l4;
          else for (g3 = 0; g3 < f4; ++g3) A[m3 + g3] = e4[g3];
          null !== d3 && d3.push(S3, k3);
          return k3;
        }, argPackAdvance: 8, readValueFromPointer: Xa, V: function(d3) {
          S3(d3);
        } });
      },
      i: function(a5, b3, c6) {
        c6 = N(c6);
        if (2 === b3) {
          var d3 = tb;
          var e4 = ub;
          var f4 = vb;
          var g3 = () => ka;
          var k3 = 1;
        } else 4 === b3 && (d3 = wb, e4 = xb, f4 = yb, g3 = () => E, k3 = 2);
        W(a5, { name: c6, fromWireType: function(m3) {
          for (var l4 = E[m3 >> 2], n6 = g3(), p3, r4 = m3 + 4, u5 = 0; u5 <= l4; ++u5) {
            var t4 = m3 + 4 + u5 * b3;
            if (u5 == l4 || 0 == n6[t4 >> k3]) r4 = d3(r4, t4 - r4), void 0 === p3 ? p3 = r4 : (p3 += String.fromCharCode(0), p3 += r4), r4 = t4 + b3;
          }
          S3(m3);
          return p3;
        }, toWireType: function(m3, l4) {
          "string" != typeof l4 && L("Cannot pass non-string to C++ string type " + c6);
          var n6 = f4(l4), p3 = Ib(4 + n6 + b3);
          E[p3 >> 2] = n6 >> k3;
          e4(l4, p3 + 4, n6 + b3);
          null !== m3 && m3.push(S3, p3);
          return p3;
        }, argPackAdvance: 8, readValueFromPointer: Xa, V: function(m3) {
          S3(m3);
        } });
      },
      k: function(a5, b3, c6, d3, e4, f4) {
        Va[a5] = { name: N(b3), fa: Z(c6, d3), W: Z(e4, f4), ia: [] };
      },
      h: function(a5, b3, c6, d3, e4, f4, g3, k3, m3, l4) {
        Va[a5].ia.push({ oa: N(b3), ta: c6, ra: Z(d3, e4), sa: f4, za: g3, ya: Z(k3, m3), Aa: l4 });
      },
      C: function(a5, b3) {
        b3 = N(b3);
        W(a5, {
          va: true,
          name: b3,
          argPackAdvance: 0,
          fromWireType: function() {
          },
          toWireType: function() {
          }
        });
      },
      s: function(a5, b3, c6, d3, e4) {
        a5 = Bb[a5];
        b3 = M(b3);
        c6 = Ab(c6);
        var f4 = [];
        E[d3 >> 2] = Ea(f4);
        return a5(b3, c6, f4, e4);
      },
      t: function(a5, b3, c6, d3) {
        a5 = Bb[a5];
        b3 = M(b3);
        c6 = Ab(c6);
        a5(b3, c6, null, d3);
      },
      g: qb,
      m: function(a5, b3) {
        var c6 = Db(a5, b3), d3 = c6[0];
        b3 = d3.name + "_$" + c6.slice(1).map(function(g3) {
          return g3.name;
        }).join("_") + "$";
        var e4 = Eb[b3];
        if (void 0 !== e4) return e4;
        var f4 = Array(a5 - 1);
        e4 = Cb((g3, k3, m3, l4) => {
          for (var n6 = 0, p3 = 0; p3 < a5 - 1; ++p3) f4[p3] = c6[p3 + 1].readValueFromPointer(l4 + n6), n6 += c6[p3 + 1].argPackAdvance;
          g3 = g3[k3].apply(
            g3,
            f4
          );
          for (p3 = 0; p3 < a5 - 1; ++p3) c6[p3 + 1].ma && c6[p3 + 1].ma(f4[p3]);
          if (!d3.va) return d3.toWireType(m3, g3);
        });
        return Eb[b3] = e4;
      },
      D: function(a5) {
        4 < a5 && (J[a5].ga += 1);
      },
      r: function(a5) {
        var b3 = M(a5);
        Wa(b3);
        qb(a5);
      },
      c: function() {
        x("");
      },
      x: function(a5, b3, c6) {
        A.copyWithin(a5, b3, b3 + c6);
      },
      w: function(a5) {
        var b3 = A.length;
        a5 >>>= 0;
        if (2147483648 < a5) return false;
        for (var c6 = 1; 4 >= c6; c6 *= 2) {
          var d3 = b3 * (1 + 0.2 / c6);
          d3 = Math.min(d3, a5 + 100663296);
          var e4 = Math;
          d3 = Math.max(a5, d3);
          e4 = e4.min.call(e4, 2147483648, d3 + (65536 - d3 % 65536) % 65536);
          a: {
            try {
              fa.grow(e4 - ia.byteLength + 65535 >>> 16);
              na();
              var f4 = 1;
              break a;
            } catch (g3) {
            }
            f4 = void 0;
          }
          if (f4) return true;
        }
        return false;
      },
      z: function() {
        return 52;
      },
      u: function() {
        return 70;
      },
      y: function(a5, b3, c6, d3) {
        for (var e4 = 0, f4 = 0; f4 < c6; f4++) {
          var g3 = E[b3 >> 2], k3 = E[b3 + 4 >> 2];
          b3 += 8;
          for (var m3 = 0; m3 < k3; m3++) {
            var l4 = A[g3 + m3], n6 = Fb[a5];
            0 === l4 || 10 === l4 ? ((1 === a5 ? ea : v3)(z(n6, 0)), n6.length = 0) : n6.push(l4);
          }
          e4 += k3;
        }
        E[d3 >> 2] = e4;
        return 0;
      }
    };
    (function() {
      function a5(e4) {
        h4.asm = e4.exports;
        fa = h4.asm.E;
        na();
        oa = h4.asm.J;
        qa.unshift(h4.asm.F);
        F--;
        h4.monitorRunDependencies && h4.monitorRunDependencies(F);
        0 == F && (null !== ta && (clearInterval(ta), ta = null), G2 && (e4 = G2, G2 = null, e4()));
      }
      function b3(e4) {
        a5(e4.instance);
      }
      function c6(e4) {
        return ya().then(function(f4) {
          return WebAssembly.instantiate(f4, d3);
        }).then(function(f4) {
          return f4;
        }).then(e4, function(f4) {
          v3("failed to asynchronously prepare wasm: " + f4);
          x(f4);
        });
      }
      var d3 = { a: Jb };
      F++;
      h4.monitorRunDependencies && h4.monitorRunDependencies(F);
      if (h4.instantiateWasm) try {
        return h4.instantiateWasm(
          d3,
          a5
        );
      } catch (e4) {
        v3("Module.instantiateWasm callback failed with error: " + e4), ca(e4);
      }
      (function() {
        return w || "function" != typeof WebAssembly.instantiateStreaming || ua(H) || "function" != typeof fetch ? c6(b3) : fetch(H, { credentials: "same-origin" }).then(function(e4) {
          return WebAssembly.instantiateStreaming(e4, d3).then(b3, function(f4) {
            v3("wasm streaming compile failed: " + f4);
            v3("falling back to ArrayBuffer instantiation");
            return c6(b3);
          });
        });
      })().catch(ca);
      return {};
    })();
    h4.___wasm_call_ctors = function() {
      return (h4.___wasm_call_ctors = h4.asm.F).apply(null, arguments);
    };
    var Ka = h4.___getTypeName = function() {
      return (Ka = h4.___getTypeName = h4.asm.G).apply(null, arguments);
    };
    h4.__embind_initialize_bindings = function() {
      return (h4.__embind_initialize_bindings = h4.asm.H).apply(null, arguments);
    };
    var Ib = h4._malloc = function() {
      return (Ib = h4._malloc = h4.asm.I).apply(null, arguments);
    }, S3 = h4._free = function() {
      return (S3 = h4._free = h4.asm.K).apply(null, arguments);
    };
    h4.dynCall_jiji = function() {
      return (h4.dynCall_jiji = h4.asm.L).apply(null, arguments);
    };
    var Kb;
    G2 = function Lb() {
      Kb || Mb();
      Kb || (G2 = Lb);
    };
    function Mb() {
      function a5() {
        if (!Kb && (Kb = true, h4.calledRun = true, !ha)) {
          za(qa);
          aa(h4);
          if (h4.onRuntimeInitialized) h4.onRuntimeInitialized();
          if (h4.postRun) for ("function" == typeof h4.postRun && (h4.postRun = [h4.postRun]); h4.postRun.length; ) {
            var b3 = h4.postRun.shift();
            ra.unshift(b3);
          }
          za(ra);
        }
      }
      if (!(0 < F)) {
        if (h4.preRun) for ("function" == typeof h4.preRun && (h4.preRun = [h4.preRun]); h4.preRun.length; ) sa();
        za(pa);
        0 < F || (h4.setStatus ? (h4.setStatus("Running..."), setTimeout(function() {
          setTimeout(function() {
            h4.setStatus("");
          }, 1);
          a5();
        }, 1)) : a5());
      }
    }
    if (h4.preInit) for ("function" == typeof h4.preInit && (h4.preInit = [h4.preInit]); 0 < h4.preInit.length; ) h4.preInit.pop()();
    Mb();
    return loadYoga4.ready;
  });
})();
var yoga_wasm_base64_esm_default = loadYoga;

// ../../node_modules/.pnpm/yoga-layout@3.2.1/node_modules/yoga-layout/dist/src/generated/YGEnums.js
var Align = /* @__PURE__ */ (function(Align2) {
  Align2[Align2["Auto"] = 0] = "Auto";
  Align2[Align2["FlexStart"] = 1] = "FlexStart";
  Align2[Align2["Center"] = 2] = "Center";
  Align2[Align2["FlexEnd"] = 3] = "FlexEnd";
  Align2[Align2["Stretch"] = 4] = "Stretch";
  Align2[Align2["Baseline"] = 5] = "Baseline";
  Align2[Align2["SpaceBetween"] = 6] = "SpaceBetween";
  Align2[Align2["SpaceAround"] = 7] = "SpaceAround";
  Align2[Align2["SpaceEvenly"] = 8] = "SpaceEvenly";
  return Align2;
})({});
var BoxSizing = /* @__PURE__ */ (function(BoxSizing2) {
  BoxSizing2[BoxSizing2["BorderBox"] = 0] = "BorderBox";
  BoxSizing2[BoxSizing2["ContentBox"] = 1] = "ContentBox";
  return BoxSizing2;
})({});
var Dimension = /* @__PURE__ */ (function(Dimension2) {
  Dimension2[Dimension2["Width"] = 0] = "Width";
  Dimension2[Dimension2["Height"] = 1] = "Height";
  return Dimension2;
})({});
var Direction2 = /* @__PURE__ */ (function(Direction3) {
  Direction3[Direction3["Inherit"] = 0] = "Inherit";
  Direction3[Direction3["LTR"] = 1] = "LTR";
  Direction3[Direction3["RTL"] = 2] = "RTL";
  return Direction3;
})({});
var Display = /* @__PURE__ */ (function(Display2) {
  Display2[Display2["Flex"] = 0] = "Flex";
  Display2[Display2["None"] = 1] = "None";
  Display2[Display2["Contents"] = 2] = "Contents";
  return Display2;
})({});
var Edge = /* @__PURE__ */ (function(Edge2) {
  Edge2[Edge2["Left"] = 0] = "Left";
  Edge2[Edge2["Top"] = 1] = "Top";
  Edge2[Edge2["Right"] = 2] = "Right";
  Edge2[Edge2["Bottom"] = 3] = "Bottom";
  Edge2[Edge2["Start"] = 4] = "Start";
  Edge2[Edge2["End"] = 5] = "End";
  Edge2[Edge2["Horizontal"] = 6] = "Horizontal";
  Edge2[Edge2["Vertical"] = 7] = "Vertical";
  Edge2[Edge2["All"] = 8] = "All";
  return Edge2;
})({});
var Errata = /* @__PURE__ */ (function(Errata2) {
  Errata2[Errata2["None"] = 0] = "None";
  Errata2[Errata2["StretchFlexBasis"] = 1] = "StretchFlexBasis";
  Errata2[Errata2["AbsolutePositionWithoutInsetsExcludesPadding"] = 2] = "AbsolutePositionWithoutInsetsExcludesPadding";
  Errata2[Errata2["AbsolutePercentAgainstInnerSize"] = 4] = "AbsolutePercentAgainstInnerSize";
  Errata2[Errata2["All"] = 2147483647] = "All";
  Errata2[Errata2["Classic"] = 2147483646] = "Classic";
  return Errata2;
})({});
var ExperimentalFeature = /* @__PURE__ */ (function(ExperimentalFeature2) {
  ExperimentalFeature2[ExperimentalFeature2["WebFlexBasis"] = 0] = "WebFlexBasis";
  return ExperimentalFeature2;
})({});
var FlexDirection = /* @__PURE__ */ (function(FlexDirection2) {
  FlexDirection2[FlexDirection2["Column"] = 0] = "Column";
  FlexDirection2[FlexDirection2["ColumnReverse"] = 1] = "ColumnReverse";
  FlexDirection2[FlexDirection2["Row"] = 2] = "Row";
  FlexDirection2[FlexDirection2["RowReverse"] = 3] = "RowReverse";
  return FlexDirection2;
})({});
var Gutter = /* @__PURE__ */ (function(Gutter2) {
  Gutter2[Gutter2["Column"] = 0] = "Column";
  Gutter2[Gutter2["Row"] = 1] = "Row";
  Gutter2[Gutter2["All"] = 2] = "All";
  return Gutter2;
})({});
var Justify = /* @__PURE__ */ (function(Justify2) {
  Justify2[Justify2["FlexStart"] = 0] = "FlexStart";
  Justify2[Justify2["Center"] = 1] = "Center";
  Justify2[Justify2["FlexEnd"] = 2] = "FlexEnd";
  Justify2[Justify2["SpaceBetween"] = 3] = "SpaceBetween";
  Justify2[Justify2["SpaceAround"] = 4] = "SpaceAround";
  Justify2[Justify2["SpaceEvenly"] = 5] = "SpaceEvenly";
  return Justify2;
})({});
var LogLevel2 = /* @__PURE__ */ (function(LogLevel3) {
  LogLevel3[LogLevel3["Error"] = 0] = "Error";
  LogLevel3[LogLevel3["Warn"] = 1] = "Warn";
  LogLevel3[LogLevel3["Info"] = 2] = "Info";
  LogLevel3[LogLevel3["Debug"] = 3] = "Debug";
  LogLevel3[LogLevel3["Verbose"] = 4] = "Verbose";
  LogLevel3[LogLevel3["Fatal"] = 5] = "Fatal";
  return LogLevel3;
})({});
var MeasureMode = /* @__PURE__ */ (function(MeasureMode2) {
  MeasureMode2[MeasureMode2["Undefined"] = 0] = "Undefined";
  MeasureMode2[MeasureMode2["Exactly"] = 1] = "Exactly";
  MeasureMode2[MeasureMode2["AtMost"] = 2] = "AtMost";
  return MeasureMode2;
})({});
var NodeType = /* @__PURE__ */ (function(NodeType2) {
  NodeType2[NodeType2["Default"] = 0] = "Default";
  NodeType2[NodeType2["Text"] = 1] = "Text";
  return NodeType2;
})({});
var Overflow = /* @__PURE__ */ (function(Overflow2) {
  Overflow2[Overflow2["Visible"] = 0] = "Visible";
  Overflow2[Overflow2["Hidden"] = 1] = "Hidden";
  Overflow2[Overflow2["Scroll"] = 2] = "Scroll";
  return Overflow2;
})({});
var PositionType = /* @__PURE__ */ (function(PositionType2) {
  PositionType2[PositionType2["Static"] = 0] = "Static";
  PositionType2[PositionType2["Relative"] = 1] = "Relative";
  PositionType2[PositionType2["Absolute"] = 2] = "Absolute";
  return PositionType2;
})({});
var Unit = /* @__PURE__ */ (function(Unit2) {
  Unit2[Unit2["Undefined"] = 0] = "Undefined";
  Unit2[Unit2["Point"] = 1] = "Point";
  Unit2[Unit2["Percent"] = 2] = "Percent";
  Unit2[Unit2["Auto"] = 3] = "Auto";
  return Unit2;
})({});
var Wrap = /* @__PURE__ */ (function(Wrap2) {
  Wrap2[Wrap2["NoWrap"] = 0] = "NoWrap";
  Wrap2[Wrap2["Wrap"] = 1] = "Wrap";
  Wrap2[Wrap2["WrapReverse"] = 2] = "WrapReverse";
  return Wrap2;
})({});
var constants = {
  ALIGN_AUTO: Align.Auto,
  ALIGN_FLEX_START: Align.FlexStart,
  ALIGN_CENTER: Align.Center,
  ALIGN_FLEX_END: Align.FlexEnd,
  ALIGN_STRETCH: Align.Stretch,
  ALIGN_BASELINE: Align.Baseline,
  ALIGN_SPACE_BETWEEN: Align.SpaceBetween,
  ALIGN_SPACE_AROUND: Align.SpaceAround,
  ALIGN_SPACE_EVENLY: Align.SpaceEvenly,
  BOX_SIZING_BORDER_BOX: BoxSizing.BorderBox,
  BOX_SIZING_CONTENT_BOX: BoxSizing.ContentBox,
  DIMENSION_WIDTH: Dimension.Width,
  DIMENSION_HEIGHT: Dimension.Height,
  DIRECTION_INHERIT: Direction2.Inherit,
  DIRECTION_LTR: Direction2.LTR,
  DIRECTION_RTL: Direction2.RTL,
  DISPLAY_FLEX: Display.Flex,
  DISPLAY_NONE: Display.None,
  DISPLAY_CONTENTS: Display.Contents,
  EDGE_LEFT: Edge.Left,
  EDGE_TOP: Edge.Top,
  EDGE_RIGHT: Edge.Right,
  EDGE_BOTTOM: Edge.Bottom,
  EDGE_START: Edge.Start,
  EDGE_END: Edge.End,
  EDGE_HORIZONTAL: Edge.Horizontal,
  EDGE_VERTICAL: Edge.Vertical,
  EDGE_ALL: Edge.All,
  ERRATA_NONE: Errata.None,
  ERRATA_STRETCH_FLEX_BASIS: Errata.StretchFlexBasis,
  ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING: Errata.AbsolutePositionWithoutInsetsExcludesPadding,
  ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE: Errata.AbsolutePercentAgainstInnerSize,
  ERRATA_ALL: Errata.All,
  ERRATA_CLASSIC: Errata.Classic,
  EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: ExperimentalFeature.WebFlexBasis,
  FLEX_DIRECTION_COLUMN: FlexDirection.Column,
  FLEX_DIRECTION_COLUMN_REVERSE: FlexDirection.ColumnReverse,
  FLEX_DIRECTION_ROW: FlexDirection.Row,
  FLEX_DIRECTION_ROW_REVERSE: FlexDirection.RowReverse,
  GUTTER_COLUMN: Gutter.Column,
  GUTTER_ROW: Gutter.Row,
  GUTTER_ALL: Gutter.All,
  JUSTIFY_FLEX_START: Justify.FlexStart,
  JUSTIFY_CENTER: Justify.Center,
  JUSTIFY_FLEX_END: Justify.FlexEnd,
  JUSTIFY_SPACE_BETWEEN: Justify.SpaceBetween,
  JUSTIFY_SPACE_AROUND: Justify.SpaceAround,
  JUSTIFY_SPACE_EVENLY: Justify.SpaceEvenly,
  LOG_LEVEL_ERROR: LogLevel2.Error,
  LOG_LEVEL_WARN: LogLevel2.Warn,
  LOG_LEVEL_INFO: LogLevel2.Info,
  LOG_LEVEL_DEBUG: LogLevel2.Debug,
  LOG_LEVEL_VERBOSE: LogLevel2.Verbose,
  LOG_LEVEL_FATAL: LogLevel2.Fatal,
  MEASURE_MODE_UNDEFINED: MeasureMode.Undefined,
  MEASURE_MODE_EXACTLY: MeasureMode.Exactly,
  MEASURE_MODE_AT_MOST: MeasureMode.AtMost,
  NODE_TYPE_DEFAULT: NodeType.Default,
  NODE_TYPE_TEXT: NodeType.Text,
  OVERFLOW_VISIBLE: Overflow.Visible,
  OVERFLOW_HIDDEN: Overflow.Hidden,
  OVERFLOW_SCROLL: Overflow.Scroll,
  POSITION_TYPE_STATIC: PositionType.Static,
  POSITION_TYPE_RELATIVE: PositionType.Relative,
  POSITION_TYPE_ABSOLUTE: PositionType.Absolute,
  UNIT_UNDEFINED: Unit.Undefined,
  UNIT_POINT: Unit.Point,
  UNIT_PERCENT: Unit.Percent,
  UNIT_AUTO: Unit.Auto,
  WRAP_NO_WRAP: Wrap.NoWrap,
  WRAP_WRAP: Wrap.Wrap,
  WRAP_WRAP_REVERSE: Wrap.WrapReverse
};
var YGEnums_default = constants;

// ../../node_modules/.pnpm/yoga-layout@3.2.1/node_modules/yoga-layout/dist/src/wrapAssembly.js
function wrapAssembly(lib) {
  function patch(prototype2, name, fn) {
    const original = prototype2[name];
    prototype2[name] = function() {
      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
      return fn.call(this, original, ...args);
    };
  }
  for (const fnName of ["setPosition", "setMargin", "setFlexBasis", "setWidth", "setHeight", "setMinWidth", "setMinHeight", "setMaxWidth", "setMaxHeight", "setPadding", "setGap"]) {
    const methods = {
      [Unit.Point]: lib.Node.prototype[fnName],
      [Unit.Percent]: lib.Node.prototype[`${fnName}Percent`],
      [Unit.Auto]: lib.Node.prototype[`${fnName}Auto`]
    };
    patch(lib.Node.prototype, fnName, function(original) {
      for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
        args[_key2 - 1] = arguments[_key2];
      }
      const value2 = args.pop();
      let unit, asNumber;
      if (value2 === "auto") {
        unit = Unit.Auto;
        asNumber = void 0;
      } else if (typeof value2 === "object") {
        unit = value2.unit;
        asNumber = value2.valueOf();
      } else {
        unit = typeof value2 === "string" && value2.endsWith("%") ? Unit.Percent : Unit.Point;
        asNumber = parseFloat(value2);
        if (value2 !== void 0 && !Number.isNaN(value2) && Number.isNaN(asNumber)) {
          throw new Error(`Invalid value ${value2} for ${fnName}`);
        }
      }
      if (!methods[unit]) throw new Error(`Failed to execute "${fnName}": Unsupported unit '${value2}'`);
      if (asNumber !== void 0) {
        return methods[unit].call(this, ...args, asNumber);
      } else {
        return methods[unit].call(this, ...args);
      }
    });
  }
  function wrapMeasureFunction(measureFunction) {
    return lib.MeasureCallback.implement({
      measure: function() {
        const {
          width,
          height: height2
        } = measureFunction(...arguments);
        return {
          width: width ?? NaN,
          height: height2 ?? NaN
        };
      }
    });
  }
  patch(lib.Node.prototype, "setMeasureFunc", function(original, measureFunc) {
    if (measureFunc) {
      return original.call(this, wrapMeasureFunction(measureFunc));
    } else {
      return this.unsetMeasureFunc();
    }
  });
  function wrapDirtiedFunc(dirtiedFunction) {
    return lib.DirtiedCallback.implement({
      dirtied: dirtiedFunction
    });
  }
  patch(lib.Node.prototype, "setDirtiedFunc", function(original, dirtiedFunc) {
    original.call(this, wrapDirtiedFunc(dirtiedFunc));
  });
  patch(lib.Config.prototype, "free", function() {
    lib.Config.destroy(this);
  });
  patch(lib.Node, "create", (_, config) => {
    return config ? lib.Node.createWithConfig(config) : lib.Node.createDefault();
  });
  patch(lib.Node.prototype, "free", function() {
    lib.Node.destroy(this);
  });
  patch(lib.Node.prototype, "freeRecursive", function() {
    for (let t4 = 0, T = this.getChildCount(); t4 < T; ++t4) {
      this.getChild(0).freeRecursive();
    }
    this.free();
  });
  patch(lib.Node.prototype, "calculateLayout", function(original) {
    let width = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : NaN;
    let height2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : NaN;
    let direction = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : Direction2.LTR;
    return original.call(this, width, height2, direction);
  });
  return {
    Config: lib.Config,
    Node: lib.Node,
    ...YGEnums_default
  };
}

// ../../node_modules/.pnpm/yoga-layout@3.2.1/node_modules/yoga-layout/dist/src/load.js
async function loadYoga2() {
  return wrapAssembly(await yoga_wasm_base64_esm_default());
}

// ../../node_modules/.pnpm/@react-pdf+layout@4.4.2/node_modules/@react-pdf/layout/lib/index.js
var import_emoji_regex_xs = __toESM(require_emoji_regex_xs(), 1);

// ../../node_modules/.pnpm/@react-pdf+image@3.0.4/node_modules/@react-pdf/image/lib/index.js
import fs5 from "fs";
import url2 from "url";
import path2 from "path";
var PNG2 = class {
  data;
  width;
  height;
  format;
  constructor(data2) {
    const png = new PNG(data2);
    this.data = data2;
    this.width = png.width;
    this.height = png.height;
    this.format = "png";
  }
  static isValid(data2) {
    return data2 && Buffer.isBuffer(data2) && data2[0] === 137 && data2[1] === 80 && data2[2] === 78 && data2[3] === 71 && data2[4] === 13 && data2[5] === 10 && data2[6] === 26 && data2[7] === 10;
  }
};
var JPEG3 = class {
  data;
  width;
  height;
  format;
  constructor(data2) {
    this.data = data2;
    this.format = "jpeg";
    this.width = 0;
    this.height = 0;
    if (data2.readUInt16BE(0) !== 65496) {
      throw new Error("SOI not found in JPEG");
    }
    const markers = src_default.decode(this.data);
    let orientation;
    for (let i5 = 0; i5 < markers.length; i5 += 1) {
      const marker = markers[i5];
      if (marker.name === "EXIF" && marker.entries.orientation) {
        orientation = marker.entries.orientation;
      }
      if (marker.name === "SOF") {
        this.width ||= marker.width;
        this.height ||= marker.height;
      }
    }
    if (orientation > 4) {
      [this.width, this.height] = [this.height, this.width];
    }
  }
  static isValid(data2) {
    return data2 && Buffer.isBuffer(data2) && data2.readUInt16BE(0) === 65496;
  }
};
var createCache = ({ limit = 100 } = {}) => {
  let cache2 = /* @__PURE__ */ new Map();
  return {
    get: (key) => key ? cache2.get(key) ?? void 0 : null,
    set: (key, value2) => {
      cache2.delete(key);
      if (cache2.size >= limit) {
        const firstKey = cache2.keys().next().value;
        cache2.delete(firstKey);
      }
      cache2.set(key, value2);
    },
    reset: () => {
      cache2 = /* @__PURE__ */ new Map();
    },
    length: () => cache2.size
  };
};
var IMAGE_CACHE = createCache({ limit: 30 });
var isBuffer3 = Buffer.isBuffer;
var isBlob3 = (src) => {
  return typeof Blob !== "undefined" && src instanceof Blob;
};
var isDataImageSrc = (src) => {
  return "data" in src;
};
var isDataUri = (imageSrc) => "uri" in imageSrc && imageSrc.uri.startsWith("data:");
var getAbsoluteLocalPath = (src) => {
  const { protocol, auth, host, port, hostname, path: pathname } = url2.parse(src);
  const absolutePath = pathname ? path2.resolve(src) : void 0;
  if (protocol && protocol !== "file:" || auth || host || port || hostname) {
    return void 0;
  }
  return absolutePath;
};
var fetchLocalFile = (src) => new Promise((resolve4, reject) => {
  try {
    if (false) ;
    const absolutePath = getAbsoluteLocalPath(src.uri);
    if (!absolutePath) {
      reject(new Error(`Cannot fetch non-local path: ${src.uri}`));
      return;
    }
    fs5.readFile(absolutePath, (err2, data2) => err2 ? reject(err2) : resolve4(data2));
  } catch (err2) {
    reject(err2);
  }
});
var fetchRemoteFile = async (src) => {
  const { method = "GET", headers, body, credentials } = src;
  const response = await fetch(src.uri, {
    method,
    headers,
    body,
    credentials
  });
  const buffer = await response.arrayBuffer();
  return Buffer.from(buffer);
};
var isValidFormat = (format) => {
  const lower = format.toLowerCase();
  return lower === "jpg" || lower === "jpeg" || lower === "png";
};
var getImageFormat = (buffer) => {
  let format;
  if (JPEG3.isValid(buffer)) {
    format = "jpg";
  } else if (PNG2.isValid(buffer)) {
    format = "png";
  }
  return format;
};
function getImage(body, format) {
  switch (format.toLowerCase()) {
    case "jpg":
    case "jpeg":
      return new JPEG3(body);
    case "png":
      return new PNG2(body);
    default:
      return null;
  }
}
var resolveBase64Image = async ({ uri }) => {
  const match = /^data:image\/([a-zA-Z]*);base64,([^"]*)/g.exec(uri);
  if (!match)
    throw new Error(`Invalid base64 image: ${uri}`);
  const format = match[1];
  const data2 = match[2];
  if (!isValidFormat(format))
    throw new Error(`Base64 image invalid format: ${format}`);
  return getImage(Buffer.from(data2, "base64"), format);
};
var resolveImageFromData = async (src) => {
  if (src.data && src.format) {
    return getImage(src.data, src.format);
  }
  throw new Error(`Invalid data given for local file: ${JSON.stringify(src)}`);
};
var resolveBufferImage = async (buffer) => {
  const format = getImageFormat(buffer);
  if (format) {
    return getImage(buffer, format);
  }
  return null;
};
var resolveBlobImage = async (blob) => {
  const { type } = blob;
  if (!type || type === "application/octet-stream") {
    const arrayBuffer = await blob.arrayBuffer();
    const buffer2 = Buffer.from(arrayBuffer);
    return resolveBufferImage(buffer2);
  }
  if (!type.startsWith("image/")) {
    throw new Error(`Invalid blob type: ${type}`);
  }
  const format = type.replace("image/", "");
  if (!isValidFormat(format)) {
    throw new Error(`Invalid blob type: ${type}`);
  }
  const buffer = await blob.arrayBuffer();
  return getImage(Buffer.from(buffer), format);
};
var resolveImageFromUrl = async (src) => {
  const data2 = getAbsoluteLocalPath(src.uri) ? await fetchLocalFile(src) : await fetchRemoteFile(src);
  const format = getImageFormat(data2);
  if (!format) {
    throw new Error("Not valid image extension");
  }
  return getImage(data2, format);
};
var getCacheKey = (src) => {
  if (isBlob3(src) || isBuffer3(src))
    return null;
  if (isDataImageSrc(src))
    return src.data?.toString("base64") ?? null;
  return src.uri;
};
var resolveImage = (src, { cache: cache2 = true } = {}) => {
  let image;
  const cacheKey = getCacheKey(src);
  if (isBlob3(src)) {
    image = resolveBlobImage(src);
  } else if (isBuffer3(src)) {
    image = resolveBufferImage(src);
  } else if (cache2 && IMAGE_CACHE.get(cacheKey)) {
    return IMAGE_CACHE.get(cacheKey);
  } else if (isDataUri(src)) {
    image = resolveBase64Image(src);
  } else if (isDataImageSrc(src)) {
    image = resolveImageFromData(src);
  } else {
    image = resolveImageFromUrl(src);
  }
  if (cache2 && cacheKey) {
    IMAGE_CACHE.set(cacheKey, image);
  }
  return image;
};

// ../../node_modules/.pnpm/@react-pdf+layout@4.4.2/node_modules/@react-pdf/layout/lib/index.js
var transformText = (text, transformation) => {
  switch (transformation) {
    case "uppercase":
      return text.toUpperCase();
    case "lowercase":
      return text.toLowerCase();
    case "capitalize":
      return capitalize(text);
    case "upperfirst":
      return upperFirst(text);
    default:
      return text;
  }
};
var isTspan = (node) => node.type === Tspan;
var isTextInstance$4 = (node) => node.type === TextInstance;
var engines$1 = {
  bidi: bidiEngine,
  linebreaker,
  justification,
  textDecoration,
  scriptItemizer,
  wordHyphenation,
  fontSubstitution
};
var engine$1 = layoutEngine(engines$1);
var getFragments$1 = (fontStore2, instance) => {
  if (!instance)
    return [{ string: "" }];
  const fragments = [];
  const { fill = "black", fontFamily = "Helvetica", fontWeight, fontStyle, fontSize = 18, textDecorationColor, textDecorationStyle, textTransform, opacity } = instance.props;
  const _textDecoration = instance.props.textDecoration;
  const fontFamilies = typeof fontFamily === "string" ? [fontFamily] : [...fontFamily || []];
  fontFamilies.push("Helvetica");
  const font = fontFamilies.map((fontFamilyName) => {
    const opts2 = { fontFamily: fontFamilyName, fontWeight, fontStyle };
    const obj = fontStore2.getFont(opts2);
    return obj?.data;
  });
  const attributes2 = {
    font,
    opacity,
    fontSize,
    color: fill,
    underlineStyle: textDecorationStyle,
    underline: _textDecoration === "underline" || _textDecoration === "underline line-through" || _textDecoration === "line-through underline",
    underlineColor: textDecorationColor || fill,
    strike: _textDecoration === "line-through" || _textDecoration === "underline line-through" || _textDecoration === "line-through underline",
    strikeStyle: textDecorationStyle,
    strikeColor: textDecorationColor || fill
  };
  for (let i5 = 0; i5 < instance.children.length; i5 += 1) {
    const child = instance.children[i5];
    if (isTextInstance$4(child)) {
      fragments.push({
        string: transformText(child.value, textTransform),
        attributes: attributes2
      });
    } else if (child) {
      fragments.push(...getFragments$1(fontStore2, child));
    }
  }
  return fragments;
};
var getAttributedString$1 = (fontStore2, instance) => fromFragments(getFragments$1(fontStore2, instance));
var AlmostInfinity = 999999999999;
var shrinkWhitespaceFactor = { before: -0.5, after: -0.5 };
var layoutTspan = (fontStore2) => (node, xOffset) => {
  const attributedString = getAttributedString$1(fontStore2, node);
  const x = node.props.x === void 0 ? xOffset : node.props.x;
  const y3 = node.props?.y || 0;
  const container = { x, y: y3, width: AlmostInfinity, height: AlmostInfinity };
  const hyphenationCallback = node.props.hyphenationCallback || fontStore2?.getHyphenationCallback() || null;
  const layoutOptions = { hyphenationCallback, shrinkWhitespaceFactor };
  const lines = engine$1(attributedString, container, layoutOptions).flat();
  return Object.assign({}, node, { lines });
};
var joinTSpanLines = (node) => {
  const children = node.children.map((child, index2) => {
    if (!isTspan(child))
      return child;
    const textInstance = child.children[0];
    if (child.props.x === void 0 && index2 < node.children.length - 1 && textInstance?.value) {
      return Object.assign({}, child, {
        children: [{ ...textInstance, value: `${textInstance.value} ` }]
      });
    }
    return child;
  }, []);
  return Object.assign({}, node, { children });
};
var layoutText$1 = (fontStore2, node) => {
  if (!node.children)
    return node;
  let currentXOffset = node.props?.x || 0;
  const layoutFn = layoutTspan(fontStore2);
  const joinedNode = joinTSpanLines(node);
  const children = joinedNode.children.map((child) => {
    const childWithLayout = layoutFn(child, currentXOffset);
    currentXOffset += childWithLayout.lines[0].xAdvance;
    return childWithLayout;
  });
  return Object.assign({}, node, { children });
};
var isDefs = (node) => node.type === Defs;
var getDefs = (node) => {
  const children = node.children || [];
  const defs = children.find(isDefs);
  const values = defs?.children || [];
  return values.reduce((acc, value2) => {
    const id = value2.props?.id;
    if (id)
      acc[id] = value2;
    return acc;
  }, {});
};
var isNotDefs = (node) => node.type !== Defs;
var detachDefs = (node) => {
  if (!node.children)
    return node;
  const children = node.children.filter(isNotDefs);
  return Object.assign({}, node, { children });
};
var URL_REGEX = /url\(['"]?#([^'"]+)['"]?\)/;
var replaceDef = (defs, value2) => {
  if (!value2)
    return void 0;
  if (!URL_REGEX.test(value2))
    return value2;
  const match = value2.match(URL_REGEX);
  return defs[match[1]];
};
var parseNodeDefs = (defs) => (node) => {
  const props = node.props;
  const fill = `fill` in props ? replaceDef(defs, props?.fill) : void 0;
  const clipPath2 = `clipPath` in props ? replaceDef(defs, props?.clipPath) : void 0;
  const newProps = Object.assign({}, node.props, { fill, clipPath: clipPath2 });
  const children = node.children ? node.children.map(parseNodeDefs(defs)) : void 0;
  return Object.assign({}, node, { props: newProps, children });
};
var parseDefs = (root) => {
  if (!root.children)
    return root;
  const defs = getDefs(root);
  const children = root.children.map(parseNodeDefs(defs));
  return Object.assign({}, root, { children });
};
var replaceDefs = (node) => {
  return detachDefs(parseDefs(node));
};
var parseViewbox = (value2) => {
  if (!value2)
    return null;
  if (typeof value2 !== "string")
    return value2;
  const values = value2.split(/[,\s]+/).map(parseFloat$1);
  if (values.length !== 4)
    return null;
  return { minX: values[0], minY: values[1], maxX: values[2], maxY: values[3] };
};
var getContainer$1 = (node) => {
  const viewbox = parseViewbox(node.props.viewBox);
  if (viewbox) {
    return { width: viewbox.maxX, height: viewbox.maxY };
  }
  if (node.props.width && node.props.height) {
    return {
      width: parseFloat$1(node.props.width),
      height: parseFloat$1(node.props.height)
    };
  }
  return { width: 0, height: 0 };
};
var BASE_SVG_INHERITED_PROPS = [
  "x",
  "y",
  "clipPath",
  "clipRule",
  "opacity",
  "fill",
  "fillOpacity",
  "fillRule",
  "stroke",
  "strokeLinecap",
  "strokeLinejoin",
  "strokeOpacity",
  "strokeWidth",
  "textAnchor",
  "dominantBaseline",
  "color",
  "fontFamily",
  "fontSize",
  "fontStyle",
  "fontWeight",
  "letterSpacing",
  "opacity",
  "textDecoration",
  "lineHeight",
  "textAlign",
  "visibility",
  "wordSpacing"
];
var TEXT_SVG_INHERITED_PROPS = without(["x"], BASE_SVG_INHERITED_PROPS);
var SVG_INHERITED_PROPS = {
  [Text]: TEXT_SVG_INHERITED_PROPS
};
var getInheritProps = (node) => {
  const props = node.props || {};
  const svgInheritedProps = SVG_INHERITED_PROPS[node.type] ?? BASE_SVG_INHERITED_PROPS;
  return pick(svgInheritedProps, props);
};
var inheritProps = (node) => {
  if (!node.children)
    return node;
  const inheritedProps = getInheritProps(node);
  const children = node.children.map((child) => {
    const props = Object.assign({}, inheritedProps, child.props || {});
    const newChild = Object.assign({}, child, { props });
    return inheritProps(newChild);
  });
  return Object.assign({}, node, { children });
};
var parseAspectRatio = (value2) => {
  if (typeof value2 !== "string")
    return value2;
  const match = value2.replace(/[\s\r\t\n]+/gm, " ").replace(/^defer\s/, "").split(" ");
  const align = match[0] || "xMidYMid";
  const meetOrSlice = match[1] || "meet";
  return { align, meetOrSlice };
};
var STYLE_PROPS = [
  "width",
  "height",
  "color",
  "stroke",
  "strokeWidth",
  "opacity",
  "fillOpacity",
  "strokeOpacity",
  "fill",
  "fillRule",
  "clipPath",
  "offset",
  "transform",
  "strokeLinejoin",
  "strokeLinecap",
  "strokeDasharray",
  "gradientUnits",
  "gradientTransform"
];
var VERTICAL_PROPS = ["y", "y1", "y2", "height", "cy", "ry"];
var HORIZONTAL_PROPS = ["x", "x1", "x2", "width", "cx", "rx"];
var isSvg$3 = (node) => node.type === Svg;
var isText$5 = (node) => node.type === Text;
var isTextInstance$3 = (node) => node.type === TextInstance;
var transformPercent = (container) => (props) => mapValues(props, (value2, key) => {
  const match = matchPercent(value2);
  if (match && VERTICAL_PROPS.includes(key)) {
    return match.percent * container.height;
  }
  if (match && HORIZONTAL_PROPS.includes(key)) {
    return match.percent * container.width;
  }
  return value2;
});
var parsePercent = (value2) => {
  const match = matchPercent(value2);
  return match ? match.percent : parseFloat$1(value2);
};
var parseTransform = (container) => (value2) => {
  return resolveStyles(container, { transform: value2 }).transform;
};
var parseProps = (container) => (node) => {
  let props = transformPercent(container)(node.props);
  props = evolve({
    x: parseFloat$1,
    x1: parseFloat$1,
    x2: parseFloat$1,
    y: parseFloat$1,
    y1: parseFloat$1,
    y2: parseFloat$1,
    r: parseFloat$1,
    rx: parseFloat$1,
    ry: parseFloat$1,
    cx: parseFloat$1,
    cy: parseFloat$1,
    width: parseFloat$1,
    height: parseFloat$1,
    offset: parsePercent,
    fill: transformColor,
    opacity: parsePercent,
    stroke: transformColor,
    stopOpacity: parsePercent,
    stopColor: transformColor,
    transform: parseTransform(container),
    gradientTransform: parseTransform(container)
  }, props);
  return Object.assign({}, node, { props });
};
var mergeStyles$1 = (node) => {
  const style = node.style || {};
  const props = Object.assign({}, style, node.props);
  return Object.assign({}, node, { props });
};
var removeNoneValues = (node) => {
  const removeNone = (value2) => value2 === "none" ? null : value2;
  const props = mapValues(node.props, removeNone);
  return Object.assign({}, node, { props });
};
var pickStyleProps = (node) => {
  const props = node.props || {};
  const styleProps = pick(STYLE_PROPS, props);
  const style = Object.assign({}, styleProps, node.style || {});
  return Object.assign({}, node, { style });
};
var parseSvgProps = (node) => {
  const props = evolve({
    width: parseFloat$1,
    height: parseFloat$1,
    viewBox: parseViewbox,
    preserveAspectRatio: parseAspectRatio
  }, node.props);
  return Object.assign({}, node, { props });
};
var wrapBetweenTspan = (node) => ({
  type: Tspan,
  props: {},
  style: {},
  children: [node]
});
var addMissingTspan = (node) => {
  if (!isText$5(node))
    return node;
  if (!node.children)
    return node;
  const resolveChild = (child) => isTextInstance$3(child) ? wrapBetweenTspan(child) : child;
  const children = node.children.map(resolveChild);
  return Object.assign({}, node, { children });
};
var parseText = (fontStore2) => (node) => {
  if (isText$5(node))
    return layoutText$1(fontStore2, node);
  if (!node.children)
    return node;
  const children = node.children.map(parseText(fontStore2));
  return Object.assign({}, node, { children });
};
var resolveSvgNode = (container) => compose(parseProps(container), addMissingTspan, removeNoneValues, mergeStyles$1);
var resolveChildren = (container) => (node) => {
  if (!node.children)
    return node;
  const resolveChild = compose(resolveChildren(container), resolveSvgNode(container));
  const children = node.children.map(resolveChild);
  return Object.assign({}, node, { children });
};
var buildXLinksIndex = (node) => {
  const idIndex = {};
  const listToExplore = node.children?.slice(0) || [];
  while (listToExplore.length > 0) {
    const child = listToExplore.shift();
    if (child.props && "id" in child.props) {
      idIndex[child.props.id] = child;
    }
    if (child.children)
      listToExplore.push(...child.children);
  }
  return idIndex;
};
var replaceXLinks = (node, idIndex) => {
  if (node.props && "xlinkHref" in node.props) {
    const linkedNode = idIndex[node.props.xlinkHref.replace(/^#/, "")];
    if (!linkedNode)
      return node;
    const newProps = Object.assign({}, linkedNode.props, node.props);
    delete newProps.xlinkHref;
    return Object.assign({}, linkedNode, { props: newProps });
  }
  const children = node.children?.map((child) => replaceXLinks(child, idIndex));
  return Object.assign({}, node, { children });
};
var resolveXLinks = (node) => {
  const idIndex = buildXLinksIndex(node);
  return replaceXLinks(node, idIndex);
};
var resolveSvgRoot = (node, fontStore2) => {
  const container = getContainer$1(node);
  return compose(replaceDefs, parseText(fontStore2), parseSvgProps, pickStyleProps, inheritProps, resolveChildren(container), resolveXLinks)(node);
};
var resolveSvg = (node, fontStore2) => {
  if (!("children" in node))
    return node;
  const resolveChild = (child) => resolveSvg(child, fontStore2);
  const root = isSvg$3(node) ? resolveSvgRoot(node, fontStore2) : node;
  const children = root.children?.map(resolveChild);
  return Object.assign({}, root, { children });
};
var instancePromise;
var loadYoga3 = async () => {
  const instance = await (instancePromise ??= loadYoga2());
  const config = instance.Config.create();
  config.setPointScaleFactor(0);
  const node = { create: () => instance.Node.createWithConfig(config) };
  return { node };
};
var resolveYoga = async (root) => {
  const yoga = await loadYoga3();
  return Object.assign({}, root, { yoga });
};
var getZIndex = (node) => node.style.zIndex;
var shouldSort = (node) => node.type !== Document2 && node.type !== Svg;
var sortZIndex = (a5, b3) => {
  const za = getZIndex(a5);
  const zb = getZIndex(b3);
  if (!za && !zb)
    return 0;
  if (!za)
    return 1;
  if (!zb)
    return -1;
  return zb - za;
};
var resolveNodeZIndex = (node) => {
  if (!node.children)
    return node;
  const sortedChildren = shouldSort(node) ? node.children.sort(sortZIndex) : node.children;
  const children = sortedChildren.map(resolveNodeZIndex);
  return Object.assign({}, node, { children });
};
var resolveZIndex = (root) => resolveNodeZIndex(root);
var emojis = {};
var regex = (0, import_emoji_regex_xs.default)();
var removeVariationSelectors = (x) => x !== "\uFE0F";
var getCodePoints = (string, withVariationSelectors = false) => Array.from(string).filter(withVariationSelectors ? () => true : removeVariationSelectors).map((char) => char.codePointAt(0).toString(16)).join("-");
var buildEmojiUrl = (emoji, source) => {
  if ("builder" in source) {
    return source.builder(getCodePoints(emoji, source.withVariationSelectors));
  }
  const { url: url3, format = "png", withVariationSelectors } = source;
  return `${url3}${getCodePoints(emoji, withVariationSelectors)}.${format}`;
};
var fetchEmojis = (string, source) => {
  if (!source)
    return [];
  const promises = [];
  Array.from(string.matchAll(regex)).forEach((match) => {
    const emoji = match[0];
    if (!emojis[emoji] || emojis[emoji].loading) {
      const emojiUrl = buildEmojiUrl(emoji, source);
      emojis[emoji] = { loading: true };
      promises.push(resolveImage({ uri: emojiUrl }).then((image) => {
        emojis[emoji].loading = false;
        emojis[emoji].data = image.data;
      }).catch((e4) => {
        console.warn(e4, "Failed to load emoji image");
        emojis[emoji].loading = false;
      }));
    }
  });
  return promises;
};
var embedEmojis = (fragments) => {
  const result = [];
  for (let i5 = 0; i5 < fragments.length; i5 += 1) {
    const fragment = fragments[i5];
    let lastIndex = 0;
    Array.from(fragment.string.matchAll(regex)).forEach((match) => {
      const { index: index2 } = match;
      const emoji = match[0];
      const emojiSize = fragment.attributes.fontSize;
      const chunk3 = fragment.string.slice(lastIndex, index2 + match[0].length);
      if (emojis[emoji] && emojis[emoji].data) {
        result.push({
          string: chunk3.replace(match[0], String.fromCharCode(65532)),
          attributes: {
            ...fragment.attributes,
            attachment: {
              width: emojiSize,
              height: emojiSize,
              yOffset: Math.floor(emojiSize * 0.1),
              image: emojis[emoji].data
            }
          }
        });
      } else {
        result.push({
          string: chunk3,
          attributes: fragment.attributes
        });
      }
      lastIndex = index2 + emoji.length;
    });
    if (lastIndex < fragment.string.length) {
      result.push({
        string: fragment.string.slice(lastIndex),
        attributes: fragment.attributes
      });
    }
  }
  return result;
};
var getSource = (node) => {
  if (node.props.src)
    return node.props.src;
  if (node.props.source)
    return node.props.source;
};
var resolveSource = async (src) => {
  const source = typeof src === "function" ? await src() : await src;
  return typeof source === "string" ? { uri: source } : source;
};
var fetchImage = async (node) => {
  const src = getSource(node);
  const { cache: cache2 } = node.props;
  if (!src) {
    console.warn(false, 'Image should receive either a "src" or "source" prop');
    return;
  }
  try {
    const source = await resolveSource(src);
    if (!source) {
      throw new Error(`Image's "src" or "source" prop returned ${source}`);
    }
    node.image = await resolveImage(source, { cache: cache2 });
    if (Buffer.isBuffer(source) || source instanceof Blob)
      return;
    node.image.key = "data" in source ? source.data.toString() : source.uri;
  } catch (e4) {
    console.warn(e4.message);
  }
};
var isImage$2 = (node) => node.type === Image;
var fetchAssets = (fontStore2, node) => {
  const promises = [];
  const listToExplore = node.children?.slice(0) || [];
  const emojiSource = fontStore2 ? fontStore2.getEmojiSource() : null;
  while (listToExplore.length > 0) {
    const n6 = listToExplore.shift();
    if (isImage$2(n6)) {
      promises.push(fetchImage(n6));
    }
    if (fontStore2 && n6.style?.fontFamily) {
      const fontFamilies = castArray(n6.style.fontFamily);
      promises.push(...fontFamilies.map((fontFamily) => fontStore2.load({
        fontFamily,
        fontStyle: n6.style.fontStyle,
        fontWeight: n6.style.fontWeight
      })));
    }
    if (typeof n6 === "string") {
      promises.push(...fetchEmojis(n6, emojiSource));
    }
    if ("value" in n6 && typeof n6.value === "string") {
      promises.push(...fetchEmojis(n6.value, emojiSource));
    }
    if (n6.children) {
      n6.children.forEach((childNode) => {
        listToExplore.push(childNode);
      });
    }
  }
  return promises;
};
var resolveAssets = async (node, fontStore2) => {
  const promises = fetchAssets(fontStore2, node);
  await Promise.all(promises);
  return node;
};
var isLink$1 = (node) => node.type === Link;
var DEFAULT_LINK_STYLES = {
  color: "blue",
  textDecoration: "underline"
};
var computeStyle = (container, node) => {
  let baseStyle = [node.style];
  if (isLink$1(node)) {
    baseStyle = Array.isArray(node.style) ? [DEFAULT_LINK_STYLES, ...node.style] : [DEFAULT_LINK_STYLES, node.style];
  }
  return resolveStyles(container, baseStyle);
};
var resolveNodeStyles = (container) => (node) => {
  const style = computeStyle(container, node);
  if (!node.children)
    return Object.assign({}, node, { style });
  const children = node.children.map(resolveNodeStyles(container));
  return Object.assign({}, node, { style, children });
};
var resolvePageStyles = (page) => {
  const dpi = page.props?.dpi || 72;
  const style = page.style;
  const width = page.box?.width || style.width;
  const height2 = page.box?.height || style.height;
  const orientation = page.props?.orientation || "portrait";
  const remBase = style?.fontSize || 18;
  const container = { width, height: height2, orientation, dpi, remBase };
  return resolveNodeStyles(container)(page);
};
var resolveStyles2 = (root) => {
  if (!root.children)
    return root;
  const children = root.children.map(resolvePageStyles);
  return Object.assign({}, root, { children });
};
var getTransformStyle = (s4) => (node) => isNil(node.style?.[s4]) ? "50%" : node.style?.[s4] ?? null;
var getOrigin = (node) => {
  if (!node.box)
    return null;
  const { left, top, width, height: height2 } = node.box;
  const transformOriginX = getTransformStyle("transformOriginX")(node);
  const transformOriginY = getTransformStyle("transformOriginY")(node);
  const percentX = matchPercent(transformOriginX);
  const percentY = matchPercent(transformOriginY);
  const offsetX = percentX ? width * percentX.percent : transformOriginX;
  const offsetY = percentY ? height2 * percentY.percent : transformOriginY;
  if (isNil(offsetX) || typeof offsetX === "string")
    throw new Error(`Invalid origin offsetX: ${offsetX}`);
  if (isNil(offsetY) || typeof offsetY === "string")
    throw new Error(`Invalid origin offsetY: ${offsetY}`);
  return { left: left + offsetX, top: top + offsetY };
};
var resolveNodeOrigin = (node) => {
  const origin2 = getOrigin(node);
  const newNode = Object.assign({}, node, { origin: origin2 });
  if (!node.children)
    return newNode;
  const children = node.children.map(resolveNodeOrigin);
  return Object.assign({}, newNode, { children });
};
var resolveOrigin = (root) => {
  if (!root.children)
    return root;
  const children = root.children.map(resolveNodeOrigin);
  return Object.assign({}, root, { children });
};
var getBookmarkValue = (bookmark) => {
  return typeof bookmark === "string" ? { title: bookmark, fit: false, expanded: false } : bookmark;
};
var resolveBookmarks = (node) => {
  let refs = 0;
  const children = (node.children || []).slice(0);
  const listToExplore = children.map((value2) => ({
    value: value2,
    parent: null
  }));
  while (listToExplore.length > 0) {
    const element = listToExplore.shift();
    if (!element)
      break;
    const child = element.value;
    let parent = element.parent;
    if (child.props && "bookmark" in child.props && child.props.bookmark) {
      const bookmark = getBookmarkValue(child.props.bookmark);
      const ref = refs++;
      const newHierarchy = { ref, parent: parent?.ref, ...bookmark };
      child.props.bookmark = newHierarchy;
      parent = newHierarchy;
    }
    if (child.children) {
      child.children.forEach((childNode) => {
        listToExplore.push({ value: childNode, parent });
      });
    }
  }
  return node;
};
var VALID_ORIENTATIONS = ["portrait", "landscape"];
var getOrientation = (page) => {
  const value2 = page.props?.orientation || "portrait";
  return VALID_ORIENTATIONS.includes(value2) ? value2 : "portrait";
};
var isLandscape = (page) => getOrientation(page) === "landscape";
var PAGE_SIZES = {
  "4A0": [4767.87, 6740.79],
  "2A0": [3370.39, 4767.87],
  A0: [2383.94, 3370.39],
  A1: [1683.78, 2383.94],
  A2: [1190.55, 1683.78],
  A3: [841.89, 1190.55],
  A4: [595.28, 841.89],
  A5: [419.53, 595.28],
  A6: [297.64, 419.53],
  A7: [209.76, 297.64],
  A8: [147.4, 209.76],
  A9: [104.88, 147.4],
  A10: [73.7, 104.88],
  B0: [2834.65, 4008.19],
  B1: [2004.09, 2834.65],
  B2: [1417.32, 2004.09],
  B3: [1000.63, 1417.32],
  B4: [708.66, 1000.63],
  B5: [498.9, 708.66],
  B6: [354.33, 498.9],
  B7: [249.45, 354.33],
  B8: [175.75, 249.45],
  B9: [124.72, 175.75],
  B10: [87.87, 124.72],
  C0: [2599.37, 3676.54],
  C1: [1836.85, 2599.37],
  C2: [1298.27, 1836.85],
  C3: [918.43, 1298.27],
  C4: [649.13, 918.43],
  C5: [459.21, 649.13],
  C6: [323.15, 459.21],
  C7: [229.61, 323.15],
  C8: [161.57, 229.61],
  C9: [113.39, 161.57],
  C10: [79.37, 113.39],
  RA0: [2437.8, 3458.27],
  RA1: [1729.13, 2437.8],
  RA2: [1218.9, 1729.13],
  RA3: [864.57, 1218.9],
  RA4: [609.45, 864.57],
  SRA0: [2551.18, 3628.35],
  SRA1: [1814.17, 2551.18],
  SRA2: [1275.59, 1814.17],
  SRA3: [907.09, 1275.59],
  SRA4: [637.8, 907.09],
  EXECUTIVE: [521.86, 756],
  FOLIO: [612, 936],
  LEGAL: [612, 1008],
  LETTER: [612, 792],
  TABLOID: [792, 1224],
  ID1: [153, 243]
};
var parseValue2 = (value2) => {
  if (typeof value2 === "number")
    return { value: value2, unit: void 0 };
  const match = /^(-?\d*\.?\d+)(in|mm|cm|pt|px)?$/g.exec(value2);
  return match ? { value: parseFloat(match[1]), unit: match[2] || "pt" } : { value: value2, unit: void 0 };
};
var transformUnit2 = (value2, inputDpi) => {
  if (!value2)
    return 0;
  const scalar = parseValue2(value2);
  const outputDpi = 72;
  const mmFactor = 1 / 25.4 * outputDpi;
  const cmFactor = 1 / 2.54 * outputDpi;
  if (typeof scalar.value === "string")
    throw new Error(`Invalid page size: ${value2}`);
  switch (scalar.unit) {
    case "in":
      return scalar.value * outputDpi;
    case "mm":
      return scalar.value * mmFactor;
    case "cm":
      return scalar.value * cmFactor;
    case "px":
      return Math.round(scalar.value * (outputDpi / inputDpi));
    default:
      return scalar.value;
  }
};
var transformUnits = ({ width, height: height2 }, dpi) => ({
  width: transformUnit2(width, dpi),
  height: transformUnit2(height2, dpi)
});
var toSizeObject = (v3) => ({
  width: v3[0],
  height: v3[1]
});
var flipSizeObject = (v3) => ({
  width: v3.height,
  height: v3.width
});
var getStringSize = (v3) => {
  return toSizeObject(PAGE_SIZES[v3.toUpperCase()]);
};
var getNumberSize = (n6) => toSizeObject([n6, n6]);
var getSize = (page) => {
  const value2 = page.props?.size || "A4";
  const dpi = page.props?.dpi || 72;
  let size;
  if (typeof value2 === "string") {
    size = getStringSize(value2);
  } else if (Array.isArray(value2)) {
    size = transformUnits(toSizeObject(value2), dpi);
  } else if (typeof value2 === "number") {
    size = transformUnits(getNumberSize(value2), dpi);
  } else {
    size = transformUnits(value2, dpi);
  }
  return isLandscape(page) ? flipSizeObject(size) : size;
};
var resolvePageSize = (page) => {
  const size = getSize(page);
  const style = flatten(page.style || {});
  return { ...page, style: { ...style, ...size } };
};
var resolvePageSizes = (root) => {
  if (!root.children)
    return root;
  const children = root.children.map(resolvePageSize);
  return Object.assign({}, root, { children });
};
var isFixed = (node) => {
  if (!node.props)
    return false;
  return "fixed" in node.props ? node.props.fixed === true : false;
};
var lineIndexAtHeight = (node, height2) => {
  let y3 = 0;
  if (!node.lines)
    return 0;
  for (let i5 = 0; i5 < node.lines.length; i5 += 1) {
    const line2 = node.lines[i5];
    if (y3 + line2.box.height > height2)
      return i5;
    y3 += line2.box.height;
  }
  return node.lines.length;
};
var heightAtLineIndex = (node, index2) => {
  let counter = 0;
  if (!node.lines)
    return counter;
  for (let i5 = 0; i5 < index2; i5 += 1) {
    const line2 = node.lines[i5];
    if (!line2)
      break;
    counter += line2.box.height;
  }
  return counter;
};
var getLineBreak = (node, height2) => {
  const top = node.box?.top || 0;
  const widows = node.props.widows || 2;
  const orphans = node.props.orphans || 2;
  const linesQuantity = node.lines.length;
  const slicedLine = lineIndexAtHeight(node, height2 - top);
  if (slicedLine === 0) {
    return 0;
  }
  if (linesQuantity < orphans) {
    return linesQuantity;
  }
  if (slicedLine < orphans || linesQuantity < orphans + widows) {
    return 0;
  }
  if (linesQuantity === orphans + widows) {
    return orphans;
  }
  if (linesQuantity - slicedLine < widows) {
    return linesQuantity - widows;
  }
  return slicedLine;
};
var splitText = (node, height2) => {
  const slicedLineIndex = getLineBreak(node, height2);
  const currentHeight = heightAtLineIndex(node, slicedLineIndex);
  const nextHeight = node.box.height - currentHeight;
  const current = Object.assign({}, node, {
    box: {
      ...node.box,
      height: currentHeight,
      borderBottomWidth: 0
    },
    style: {
      ...node.style,
      marginBottom: 0,
      paddingBottom: 0,
      borderBottomWidth: 0,
      borderBottomLeftRadius: 0,
      borderBottomRightRadius: 0
    },
    lines: node.lines.slice(0, slicedLineIndex)
  });
  const next = Object.assign({}, node, {
    box: {
      ...node.box,
      top: 0,
      height: nextHeight,
      borderTopWidth: 0
    },
    style: {
      ...node.style,
      marginTop: 0,
      paddingTop: 0,
      borderTopWidth: 0,
      borderTopLeftRadius: 0,
      borderTopRightRadius: 0
    },
    lines: node.lines.slice(slicedLineIndex)
  });
  return [current, next];
};
var getTop$1 = (node) => node.box?.top || 0;
var hasFixedHeight = (node) => !isNil(node.style?.height);
var splitNode = (node, height2) => {
  if (!node)
    return [null, null];
  const nodeTop = getTop$1(node);
  const current = Object.assign({}, node, {
    box: {
      ...node.box,
      borderBottomWidth: 0
    },
    style: {
      ...node.style,
      marginBottom: 0,
      paddingBottom: 0,
      borderBottomWidth: 0,
      borderBottomLeftRadius: 0,
      borderBottomRightRadius: 0
    }
  });
  current.style.height = height2 - nodeTop;
  const nextHeight = hasFixedHeight(node) ? node.box.height - (height2 - nodeTop) : null;
  const next = Object.assign({}, node, {
    box: {
      ...node.box,
      top: 0,
      borderTopWidth: 0
    },
    style: {
      ...node.style,
      marginTop: 0,
      paddingTop: 0,
      borderTopWidth: 0,
      borderTopLeftRadius: 0,
      borderTopRightRadius: 0
    },
    props: {
      ...node.props,
      bookmark: null
    }
  });
  if (nextHeight) {
    next.style.height = nextHeight;
  }
  return [current, next];
};
var NON_WRAP_TYPES = [Svg, Note, Image, Canvas];
var getWrap = (node) => {
  if (NON_WRAP_TYPES.includes(node.type))
    return false;
  if (!node.props)
    return true;
  return "wrap" in node.props ? node.props.wrap : true;
};
var getComputedPadding = (node, edge) => {
  const { yogaNode } = node;
  return yogaNode ? yogaNode.getComputedPadding(edge) : null;
};
var getPadding = (node) => {
  const { style, box } = node;
  const paddingTop = getComputedPadding(node, Edge.Top) || box?.paddingTop || style?.paddingTop || 0;
  const paddingRight = getComputedPadding(node, Edge.Right) || box?.paddingRight || style?.paddingRight || 0;
  const paddingBottom = getComputedPadding(node, Edge.Bottom) || box?.paddingBottom || style?.paddingBottom || 0;
  const paddingLeft = getComputedPadding(node, Edge.Left) || box?.paddingLeft || style?.paddingLeft || 0;
  return { paddingTop, paddingRight, paddingBottom, paddingLeft };
};
var getWrapArea = (page) => {
  const height2 = page.style?.height;
  const { paddingBottom } = getPadding(page);
  return height2 - paddingBottom;
};
var getContentArea = (page) => {
  const height2 = page.style?.height;
  const { paddingTop, paddingBottom } = getPadding(page);
  return height2 - paddingBottom - paddingTop;
};
var isString4 = (value2) => typeof value2 === "string";
var isNumber4 = (value2) => typeof value2 === "number";
var isBoolean3 = (value2) => typeof value2 === "boolean";
var isFragment = (value2) => value2 && value2.type === Symbol.for("react.fragment");
var createInstances = (element) => {
  if (!element)
    return [];
  if (Array.isArray(element)) {
    return element.reduce((acc, el) => acc.concat(createInstances(el)), []);
  }
  if (isBoolean3(element)) {
    return [];
  }
  if (isString4(element) || isNumber4(element)) {
    return [{ type: TextInstance, value: `${element}` }];
  }
  if (isFragment(element)) {
    return createInstances(element.props.children);
  }
  if (!isString4(element.type)) {
    return createInstances(element.type(element.props));
  }
  const { type, props: { style = {}, children, ...props } } = element;
  const nextChildren = castArray(children).reduce((acc, child) => acc.concat(createInstances(child)), []);
  return [
    {
      type,
      style,
      props,
      children: nextChildren
    }
  ];
};
var getBreak = (node) => "break" in node.props ? node.props.break : false;
var getMinPresenceAhead = (node) => "minPresenceAhead" in node.props ? node.props.minPresenceAhead : 0;
var getFurthestEnd = (elements) => Math.max(...elements.map((node) => node.box.top + node.box.height));
var getEndOfMinPresenceAhead = (child) => {
  return child.box.top + child.box.height + child.box.marginBottom + getMinPresenceAhead(child);
};
var getEndOfPresence = (child, futureElements) => {
  const afterMinPresenceAhead = getEndOfMinPresenceAhead(child);
  const endOfFurthestFutureElement = getFurthestEnd(futureElements.filter((node) => !("fixed" in node.props)));
  return Math.min(afterMinPresenceAhead, endOfFurthestFutureElement);
};
var shouldBreak = (child, futureElements, height2, previousElements) => {
  if ("fixed" in child.props)
    return false;
  const shouldSplit = height2 < child.box.top + child.box.height;
  const canWrap = getWrap(child);
  const endOfPresence = getEndOfPresence(child, futureElements);
  const breakingImprovesPresence = previousElements.filter((node) => !isFixed(node)).length > 0;
  return getBreak(child) || shouldSplit && !canWrap || !shouldSplit && endOfPresence > height2 && breakingImprovesPresence;
};
var IGNORABLE_CODEPOINTS = [
  8232,
  // LINE_SEPARATOR
  8233
  // PARAGRAPH_SEPARATOR
];
var buildSubsetForFont = (font) => IGNORABLE_CODEPOINTS.reduce((acc, codePoint) => {
  if (font && font.hasGlyphForCodePoint && font.hasGlyphForCodePoint(codePoint)) {
    return acc;
  }
  return [...acc, String.fromCharCode(codePoint)];
}, []);
var ignoreChars = (fragments) => fragments.map((fragment) => {
  const charSubset = buildSubsetForFont(fragment.attributes.font[0]);
  const subsetRegex = new RegExp(charSubset.join("|"));
  return {
    string: fragment.string.replace(subsetRegex, ""),
    attributes: fragment.attributes
  };
});
var PREPROCESSORS = [ignoreChars, embedEmojis];
var isImage$1 = (node) => node.type === Image;
var isTextInstance$2 = (node) => node.type === TextInstance;
var getFragments = (fontStore2, instance, parentLink = null, level = 0) => {
  if (!instance)
    return [{ string: "" }];
  let fragments = [];
  const { color = "black", direction = "ltr", fontFamily = "Helvetica", fontWeight, fontStyle, fontSize = 18, textAlign, lineHeight, textDecoration: textDecoration2, textDecorationColor, textDecorationStyle, textTransform, letterSpacing, textIndent, opacity, verticalAlign } = instance.style;
  const fontFamilies = typeof fontFamily === "string" ? [fontFamily] : [...fontFamily || []];
  fontFamilies.push("Helvetica");
  const font = fontFamilies.map((fontFamilyName) => {
    const opts2 = { fontFamily: fontFamilyName, fontWeight, fontStyle };
    const obj = fontStore2.getFont(opts2);
    return obj?.data;
  });
  const backgroundColor = level === 0 ? null : instance.style.backgroundColor;
  const attributes2 = {
    font,
    color,
    opacity,
    fontSize,
    lineHeight,
    direction,
    verticalAlign,
    backgroundColor,
    indent: textIndent,
    characterSpacing: letterSpacing,
    strikeStyle: textDecorationStyle,
    underlineStyle: textDecorationStyle,
    underline: textDecoration2 === "underline" || textDecoration2 === "underline line-through" || textDecoration2 === "line-through underline",
    strike: textDecoration2 === "line-through" || textDecoration2 === "underline line-through" || textDecoration2 === "line-through underline",
    strikeColor: textDecorationColor || color,
    underlineColor: textDecorationColor || color,
    // @ts-expect-error allow this props access
    link: parentLink || instance.props?.src || instance.props?.href,
    align: textAlign || (direction === "rtl" ? "right" : "left")
  };
  for (let i5 = 0; i5 < instance.children.length; i5 += 1) {
    const child = instance.children[i5];
    if (isImage$1(child)) {
      fragments.push({
        string: String.fromCharCode(65532),
        attributes: {
          ...attributes2,
          attachment: {
            width: child.style.width || fontSize,
            height: child.style.height || fontSize,
            image: child.image.data
          }
        }
      });
    } else if (isTextInstance$2(child)) {
      fragments.push({
        string: transformText(child.value, textTransform),
        attributes: attributes2
      });
    } else if (child) {
      fragments.push(...getFragments(fontStore2, child, attributes2.link, level + 1));
    }
  }
  for (let i5 = 0; i5 < PREPROCESSORS.length; i5 += 1) {
    const preprocessor = PREPROCESSORS[i5];
    fragments = preprocessor(fragments);
  }
  return fragments;
};
var getAttributedString = (fontStore2, instance) => {
  const fragments = getFragments(fontStore2, instance);
  return fromFragments(fragments);
};
var engines = {
  bidi: bidiEngine,
  linebreaker,
  justification,
  textDecoration,
  scriptItemizer,
  wordHyphenation,
  fontSubstitution
};
var engine = layoutEngine(engines);
var getMaxLines = (node) => node.style?.maxLines;
var getTextOverflow = (node) => node.style?.textOverflow;
var getContainer = (width, height2, node) => {
  const maxLines = getMaxLines(node);
  const textOverflow = getTextOverflow(node);
  return {
    x: 0,
    y: 0,
    width,
    maxLines,
    height: height2 || Infinity,
    truncateMode: textOverflow
  };
};
var getLayoutOptions = (fontStore2, node) => ({
  hyphenationPenalty: node.props.hyphenationPenalty,
  shrinkWhitespaceFactor: { before: -0.5, after: -0.5 },
  hyphenationCallback: node.props.hyphenationCallback || fontStore2?.getHyphenationCallback() || null
});
var layoutText = (node, width, height2, fontStore2) => {
  const attributedString = getAttributedString(fontStore2, node);
  const container = getContainer(width, height2, node);
  const options = getLayoutOptions(fontStore2, node);
  const lines = engine(attributedString, container, options);
  return lines.reduce((acc, line2) => [...acc, ...line2], []);
};
var isSvg$2 = (node) => node.type === Svg;
var isText$4 = (node) => node.type === Text;
var shouldIterate = (node) => !isSvg$2(node) && !isText$4(node);
var shouldLayoutText = (node) => isText$4(node) && !node.lines;
var resolveTextLayout = (node, fontStore2) => {
  if (shouldLayoutText(node)) {
    const width = node.box.width - (node.box.paddingRight + node.box.paddingLeft);
    const height2 = node.box.height - (node.box.paddingTop + node.box.paddingBottom);
    node.lines = layoutText(node, width, height2, fontStore2);
  }
  if (shouldIterate(node)) {
    if (!node.children)
      return node;
    const mapChild = (child) => resolveTextLayout(child, fontStore2);
    const children = node.children.map(mapChild);
    return Object.assign({}, node, { children });
  }
  return node;
};
var BASE_INHERITABLE_PROPERTIES = [
  "color",
  "fontFamily",
  "fontSize",
  "fontStyle",
  "fontWeight",
  "letterSpacing",
  "opacity",
  "textDecoration",
  "textTransform",
  "lineHeight",
  "textAlign",
  "visibility",
  "wordSpacing"
];
var TEXT_INHERITABLE_PROPERTIES = [
  ...BASE_INHERITABLE_PROPERTIES,
  "backgroundColor"
];
var isType$2 = (type) => (node) => node.type === type;
var isSvg$1 = isType$2(Svg);
var isText$3 = isType$2(Text);
var mergeValues = (styleName, value2, inheritedValue) => {
  switch (styleName) {
    case "textDecoration": {
      return [inheritedValue, value2].filter((v3) => v3 && v3 !== "none").join(" ");
    }
    default:
      return value2;
  }
};
var merge2 = (inheritedStyles, style) => {
  const mergedStyles = { ...inheritedStyles };
  Object.entries(style).forEach(([styleName, value2]) => {
    mergedStyles[styleName] = mergeValues(styleName, value2, inheritedStyles[styleName]);
  });
  return mergedStyles;
};
var mergeStyles2 = (inheritedStyles) => (node) => {
  const style = merge2(inheritedStyles, node.style || {});
  return Object.assign({}, node, { style });
};
var resolveInheritance = (node) => {
  if (isSvg$1(node))
    return node;
  if (!("children" in node))
    return node;
  const inheritableProperties = isText$3(node) ? TEXT_INHERITABLE_PROPERTIES : BASE_INHERITABLE_PROPERTIES;
  const inheritStyles = pick(inheritableProperties, node.style || {});
  const resolveChild = compose(resolveInheritance, mergeStyles2(inheritStyles));
  const children = node.children.map(resolveChild);
  return Object.assign({}, node, { children });
};
var getComputedMargin = (node, edge) => {
  const { yogaNode } = node;
  return yogaNode ? yogaNode.getComputedMargin(edge) : null;
};
var getMargin = (node) => {
  const { style, box } = node;
  const marginTop = getComputedMargin(node, Edge.Top) || box?.marginTop || style?.marginTop || 0;
  const marginRight = getComputedMargin(node, Edge.Right) || box?.marginRight || style?.marginRight || 0;
  const marginBottom = getComputedMargin(node, Edge.Bottom) || box?.marginBottom || style?.marginBottom || 0;
  const marginLeft = getComputedMargin(node, Edge.Left) || box?.marginLeft || style?.marginLeft || 0;
  return { marginTop, marginRight, marginBottom, marginLeft };
};
var getPosition = (node) => {
  const { yogaNode } = node;
  return {
    top: yogaNode?.getComputedTop() || 0,
    right: yogaNode?.getComputedRight() || 0,
    bottom: yogaNode?.getComputedBottom() || 0,
    left: yogaNode?.getComputedLeft() || 0
  };
};
var DEFAULT_DIMENSION = {
  width: 0,
  height: 0
};
var getDimension = (node) => {
  const { yogaNode } = node;
  if (!yogaNode)
    return DEFAULT_DIMENSION;
  return {
    width: yogaNode.getComputedWidth(),
    height: yogaNode.getComputedHeight()
  };
};
var getComputedBorder = (yogaNode, edge) => yogaNode ? yogaNode.getComputedBorder(edge) : 0;
var getBorderWidth = (node) => {
  const { yogaNode } = node;
  return {
    borderTopWidth: getComputedBorder(yogaNode, Edge.Top),
    borderRightWidth: getComputedBorder(yogaNode, Edge.Right),
    borderBottomWidth: getComputedBorder(yogaNode, Edge.Bottom),
    borderLeftWidth: getComputedBorder(yogaNode, Edge.Left)
  };
};
var setDisplay = (value2) => (node) => {
  const { yogaNode } = node;
  if (yogaNode) {
    yogaNode.setDisplay(value2 === "none" ? Display.None : Display.Flex);
  }
  return node;
};
var OVERFLOW = {
  hidden: Overflow.Hidden,
  scroll: Overflow.Scroll
};
var setOverflow = (value2) => (node) => {
  const { yogaNode } = node;
  if (!isNil(value2) && yogaNode) {
    const overflow = OVERFLOW[value2] || Overflow.Visible;
    yogaNode.setOverflow(overflow);
  }
  return node;
};
var FLEX_WRAP = {
  wrap: Wrap.Wrap,
  "wrap-reverse": Wrap.WrapReverse
};
var setFlexWrap = (value2) => (node) => {
  const { yogaNode } = node;
  if (yogaNode) {
    const flexWrap = FLEX_WRAP[value2] || Wrap.NoWrap;
    yogaNode.setFlexWrap(flexWrap);
  }
  return node;
};
var setYogaValue = (attr, edge) => (value2) => (node) => {
  const { yogaNode } = node;
  if (!isNil(value2) && yogaNode) {
    const hasEdge = !isNil(edge);
    const fixedMethod = `set${upperFirst(attr)}`;
    const autoMethod = `${fixedMethod}Auto`;
    const percentMethod = `${fixedMethod}Percent`;
    const percent = matchPercent(value2);
    if (percent && !yogaNode[percentMethod]) {
      throw new Error(`You can't pass percentage values to ${attr} property`);
    }
    if (percent) {
      if (hasEdge) {
        yogaNode[percentMethod]?.(edge, percent.value);
      } else {
        yogaNode[percentMethod]?.(percent.value);
      }
    } else if (value2 === "auto") {
      if (hasEdge) {
        yogaNode[autoMethod]?.(edge);
      } else {
        yogaNode[autoMethod]?.();
      }
    } else if (hasEdge) {
      yogaNode[fixedMethod]?.(edge, value2);
    } else {
      yogaNode[fixedMethod]?.(value2);
    }
  }
  return node;
};
var setFlexGrow = (value2) => (node) => {
  return setYogaValue("flexGrow")(value2 || 0)(node);
};
var setFlexBasis = setYogaValue("flexBasis");
var ALIGN = {
  "flex-start": Align.FlexStart,
  center: Align.Center,
  "flex-end": Align.FlexEnd,
  stretch: Align.Stretch,
  baseline: Align.Baseline,
  "space-between": Align.SpaceBetween,
  "space-around": Align.SpaceAround,
  "space-evenly": Align.SpaceEvenly
};
var setAlign = (attr) => (value2) => (node) => {
  const { yogaNode } = node;
  const defaultValue = attr === "items" ? Align.Stretch : Align.Auto;
  if (yogaNode) {
    const align = ALIGN[value2] || defaultValue;
    yogaNode[`setAlign${upperFirst(attr)}`](align);
  }
  return node;
};
var setAlignSelf = setAlign("self");
var setAlignItems = setAlign("items");
var setFlexShrink = (value2) => (node) => {
  return setYogaValue("flexShrink")(value2 || 1)(node);
};
var setAspectRatio = (value2) => (node) => {
  const { yogaNode } = node;
  if (!isNil(value2) && yogaNode) {
    yogaNode.setAspectRatio(value2);
  }
  return node;
};
var setAlignContent = setAlign("content");
var POSITION = {
  absolute: PositionType.Absolute,
  relative: PositionType.Relative,
  static: PositionType.Static
};
var setPositionType = (value2) => (node) => {
  const { yogaNode } = node;
  if (!isNil(value2) && yogaNode) {
    yogaNode.setPositionType(POSITION[value2]);
  }
  return node;
};
var FLEX_DIRECTIONS = {
  row: FlexDirection.Row,
  "row-reverse": FlexDirection.RowReverse,
  "column-reverse": FlexDirection.ColumnReverse
};
var setFlexDirection = (value2) => (node) => {
  const { yogaNode } = node;
  if (yogaNode) {
    const flexDirection = FLEX_DIRECTIONS[value2] || FlexDirection.Column;
    yogaNode.setFlexDirection(flexDirection);
  }
  return node;
};
var JUSTIFY_CONTENT = {
  center: Justify.Center,
  "flex-end": Justify.FlexEnd,
  "space-between": Justify.SpaceBetween,
  "space-around": Justify.SpaceAround,
  "space-evenly": Justify.SpaceEvenly
};
var setJustifyContent = (value2) => (node) => {
  const { yogaNode } = node;
  if (!isNil(value2) && yogaNode) {
    const justifyContent = JUSTIFY_CONTENT[value2] || Justify.FlexStart;
    yogaNode.setJustifyContent(justifyContent);
  }
  return node;
};
var setMarginTop = setYogaValue("margin", Edge.Top);
var setMarginRight = setYogaValue("margin", Edge.Right);
var setMarginBottom = setYogaValue("margin", Edge.Bottom);
var setMarginLeft = setYogaValue("margin", Edge.Left);
var setPaddingTop = setYogaValue("padding", Edge.Top);
var setPaddingRight = setYogaValue("padding", Edge.Right);
var setPaddingBottom = setYogaValue("padding", Edge.Bottom);
var setPaddingLeft = setYogaValue("padding", Edge.Left);
var setBorderTop = setYogaValue("border", Edge.Top);
var setBorderRight = setYogaValue("border", Edge.Right);
var setBorderBottom = setYogaValue("border", Edge.Bottom);
var setBorderLeft = setYogaValue("border", Edge.Left);
var setPositionTop = setYogaValue("position", Edge.Top);
var setPositionRight = setYogaValue("position", Edge.Right);
var setPositionBottom = setYogaValue("position", Edge.Bottom);
var setPositionLeft = setYogaValue("position", Edge.Left);
var setWidth = setYogaValue("width");
var setMinWidth = setYogaValue("minWidth");
var setMaxWidth = setYogaValue("maxWidth");
var setHeight = setYogaValue("height");
var setMinHeight = setYogaValue("minHeight");
var setMaxHeight = setYogaValue("maxHeight");
var setRowGap = setYogaValue("gap", Gutter.Row);
var setColumnGap = setYogaValue("gap", Gutter.Column);
var getAspectRatio = (viewbox) => {
  if (!viewbox)
    return null;
  if (typeof viewbox === "string")
    return null;
  return (viewbox.maxX - viewbox.minX) / (viewbox.maxY - viewbox.minY);
};
var measureCanvas$1 = (page, node) => (width, widthMode, height2, heightMode) => {
  const aspectRatio = getAspectRatio(node.props.viewBox) || 1;
  if (widthMode === MeasureMode.Exactly || widthMode === MeasureMode.AtMost) {
    return { width, height: width / aspectRatio };
  }
  if (heightMode === MeasureMode.Exactly) {
    return { width: height2 * aspectRatio };
  }
  return {};
};
var linesWidth = (node) => {
  if (!node.lines)
    return 0;
  return Math.max(0, ...node.lines.map((line2) => line2.xAdvance));
};
var linesHeight = (node) => {
  if (!node.lines)
    return -1;
  return node.lines.reduce((acc, line2) => acc + line2.box.height, 0);
};
var ALIGNMENT_FACTORS2 = { center: 0.5, right: 1 };
var measureText = (page, node, fontStore2) => (width, widthMode, height2) => {
  if (widthMode === MeasureMode.Exactly) {
    if (!node.lines)
      node.lines = layoutText(node, width, height2, fontStore2);
    return { height: linesHeight(node), width };
  }
  if (widthMode === MeasureMode.AtMost) {
    const alignFactor = ALIGNMENT_FACTORS2[node.style?.textAlign] || 0;
    if (!node.lines) {
      node.lines = layoutText(node, width, height2, fontStore2);
      node.alignOffset = (width - linesWidth(node)) * alignFactor;
    }
    return {
      height: linesHeight(node),
      width: Math.min(width, linesWidth(node))
    };
  }
  return {};
};
var getRatio = (node) => {
  return node.image?.data ? node.image.width / node.image.height : 1;
};
var isHeightAuto = (page) => isNil(page.box?.height);
var SAFETY_HEIGHT$1 = 10;
var measureImage = (page, node) => (width, widthMode, height2, heightMode) => {
  const imageRatio = getRatio(node);
  const imageMargin = getMargin(node);
  const pagePadding = getPadding(page);
  const pageArea = isHeightAuto(page) ? Infinity : (page.box?.height || 0) - pagePadding.paddingTop - pagePadding.paddingBottom - imageMargin.marginTop - imageMargin.marginBottom - SAFETY_HEIGHT$1;
  if (!node.image)
    return { width: 0, height: 0 };
  if (widthMode === MeasureMode.Exactly && heightMode === MeasureMode.Undefined) {
    const scaledHeight = width / imageRatio;
    return { height: Math.min(pageArea, scaledHeight) };
  }
  if (heightMode === MeasureMode.Exactly && (widthMode === MeasureMode.AtMost || widthMode === MeasureMode.Undefined)) {
    return { width: Math.min(height2 * imageRatio, width) };
  }
  if (widthMode === MeasureMode.Exactly && heightMode === MeasureMode.AtMost) {
    const scaledHeight = width / imageRatio;
    return { height: Math.min(height2, pageArea, scaledHeight) };
  }
  if (widthMode === MeasureMode.AtMost && heightMode === MeasureMode.AtMost) {
    if (imageRatio > 1) {
      return {
        width,
        height: Math.min(width / imageRatio, height2)
      };
    }
    return {
      height: height2,
      width: Math.min(height2 * imageRatio, width)
    };
  }
  return { height: height2, width };
};
var SAFETY_HEIGHT = 10;
var getMax = (values) => Math.max(-Infinity, ...values);
var measureCtx = () => {
  const ctx = {};
  const points = [];
  const nil = () => ctx;
  const addPoint = (x, y3) => points.push([x, y3]);
  const moveTo = (x, y3) => {
    addPoint(x, y3);
    return ctx;
  };
  const rect = (x, y3, w, h4) => {
    addPoint(x, y3);
    addPoint(x + w, y3);
    addPoint(x, y3 + h4);
    addPoint(x + w, y3 + h4);
    return ctx;
  };
  const ellipse = (x, y3, rx, ry) => {
    ry = ry || rx;
    addPoint(x - rx, y3 - ry);
    addPoint(x + rx, y3 - ry);
    addPoint(x + rx, y3 + ry);
    addPoint(x - rx, y3 + ry);
    return ctx;
  };
  const polygon = (...pts) => {
    points.push(...pts);
    return ctx;
  };
  ctx.rect = rect;
  ctx.moveTo = moveTo;
  ctx.lineTo = moveTo;
  ctx.circle = ellipse;
  ctx.polygon = polygon;
  ctx.ellipse = ellipse;
  ctx.roundedRect = rect;
  ctx.text = nil;
  ctx.path = nil;
  ctx.lineWidth = nil;
  ctx.bezierCurveTo = nil;
  ctx.quadraticCurveTo = nil;
  ctx.scale = nil;
  ctx.rotate = nil;
  ctx.translate = nil;
  ctx.dash = nil;
  ctx.clip = nil;
  ctx.save = nil;
  ctx.fill = nil;
  ctx.font = nil;
  ctx.stroke = nil;
  ctx.lineCap = nil;
  ctx.opacity = nil;
  ctx.restore = nil;
  ctx.lineJoin = nil;
  ctx.fontSize = nil;
  ctx.fillColor = nil;
  ctx.miterLimit = nil;
  ctx.strokeColor = nil;
  ctx.fillOpacity = nil;
  ctx.strokeOpacity = nil;
  ctx.linearGradient = nil;
  ctx.radialGradient = nil;
  ctx.getWidth = () => getMax(points.map((p3) => p3[0]));
  ctx.getHeight = () => getMax(points.map((p3) => p3[1]));
  return ctx;
};
var measureCanvas = (page, node) => () => {
  const imageMargin = getMargin(node);
  const pagePadding = getPadding(page);
  const pageArea = isHeightAuto(page) ? Infinity : (page.box?.height || 0) - pagePadding.paddingTop - pagePadding.paddingBottom - imageMargin.marginTop - imageMargin.marginBottom - SAFETY_HEIGHT;
  const ctx = measureCtx();
  node.props.paint(ctx);
  const width = ctx.getWidth();
  const height2 = Math.min(pageArea, ctx.getHeight());
  return { width, height: height2 };
};
var isType$1 = (type) => (node) => node.type === type;
var isSvg = isType$1(Svg);
var isText$2 = isType$1(Text);
var isNote = isType$1(Note);
var isPage = isType$1(Page);
var isImage = isType$1(Image);
var isCanvas = isType$1(Canvas);
var isTextInstance$1 = isType$1(TextInstance);
var setNodeHeight = (node) => {
  const value2 = isPage(node) ? node.box?.height : node.style?.height;
  return setHeight(value2);
};
var setYogaValues = (node) => {
  compose(setNodeHeight(node), setWidth(node.style.width), setMinWidth(node.style.minWidth), setMaxWidth(node.style.maxWidth), setMinHeight(node.style.minHeight), setMaxHeight(node.style.maxHeight), setMarginTop(node.style.marginTop), setMarginRight(node.style.marginRight), setMarginBottom(node.style.marginBottom), setMarginLeft(node.style.marginLeft), setPaddingTop(node.style.paddingTop), setPaddingRight(node.style.paddingRight), setPaddingBottom(node.style.paddingBottom), setPaddingLeft(node.style.paddingLeft), setPositionType(node.style.position), setPositionTop(node.style.top), setPositionRight(node.style.right), setPositionBottom(node.style.bottom), setPositionLeft(node.style.left), setBorderTop(node.style.borderTopWidth), setBorderRight(node.style.borderRightWidth), setBorderBottom(node.style.borderBottomWidth), setBorderLeft(node.style.borderLeftWidth), setDisplay(node.style.display), setFlexDirection(node.style.flexDirection), setAlignSelf(node.style.alignSelf), setAlignContent(node.style.alignContent), setAlignItems(node.style.alignItems), setJustifyContent(node.style.justifyContent), setFlexWrap(node.style.flexWrap), setOverflow(node.style.overflow), setAspectRatio(node.style.aspectRatio), setFlexBasis(node.style.flexBasis), setFlexGrow(node.style.flexGrow), setFlexShrink(node.style.flexShrink), setRowGap(node.style.rowGap), setColumnGap(node.style.columnGap))(node);
};
var insertYogaNodes = (parent) => (child) => {
  parent.insertChild(child.yogaNode, parent.getChildCount());
  return child;
};
var setMeasureFunc = (node, page, fontStore2) => {
  const { yogaNode } = node;
  if (isText$2(node)) {
    yogaNode.setMeasureFunc(measureText(page, node, fontStore2));
  }
  if (isImage(node)) {
    yogaNode.setMeasureFunc(measureImage(page, node));
  }
  if (isCanvas(node)) {
    yogaNode.setMeasureFunc(measureCanvas(page, node));
  }
  if (isSvg(node)) {
    yogaNode.setMeasureFunc(measureCanvas$1(page, node));
  }
  return node;
};
var isLayoutElement = (node) => !isText$2(node) && !isNote(node) && !isSvg(node);
var createYogaNodes = (page, fontStore2, yoga) => (node) => {
  const yogaNode = yoga.node.create();
  const result = Object.assign({}, node, { yogaNode });
  setYogaValues(result);
  if (isLayoutElement(node) && node.children) {
    const resolveChild = compose(insertYogaNodes(yogaNode), createYogaNodes(page, fontStore2, yoga));
    result.children = node.children.map(resolveChild);
  }
  setMeasureFunc(result, page, fontStore2);
  return result;
};
var calculateLayout = (page) => {
  page.yogaNode.calculateLayout();
  return page;
};
var persistDimensions = (node) => {
  if (isTextInstance$1(node))
    return node;
  const box = Object.assign(getPadding(node), getMargin(node), getBorderWidth(node), getPosition(node), getDimension(node));
  const newNode = Object.assign({}, node, { box });
  if (!node.children)
    return newNode;
  const children = node.children.map(persistDimensions);
  return Object.assign({}, newNode, { children });
};
var destroyYogaNodes = (node) => {
  const newNode = Object.assign({}, node);
  delete newNode.yogaNode;
  if (!node.children)
    return newNode;
  const children = node.children.map(destroyYogaNodes);
  return Object.assign({}, newNode, { children });
};
var freeYogaNodes = (node) => {
  if (node.yogaNode)
    node.yogaNode.freeRecursive();
  return node;
};
var resolvePageDimensions = (page, fontStore2, yoga) => {
  if (isNil(page))
    return null;
  return compose(destroyYogaNodes, freeYogaNodes, persistDimensions, calculateLayout, createYogaNodes(page, fontStore2, yoga))(page);
};
var resolveDimensions = (node, fontStore2) => {
  if (!node.children)
    return node;
  const resolveChild = (child) => resolvePageDimensions(child, fontStore2, node.yoga);
  const children = node.children.map(resolveChild);
  return Object.assign({}, node, { children });
};
var isText$1 = (node) => node.type === Text;
var SAFETY_THRESHOLD = 1e-3;
var assingChildren = (children, node) => Object.assign({}, node, { children });
var getTop = (node) => node.box?.top || 0;
var allFixed = (nodes) => nodes.every(isFixed);
var isDynamic = (node) => node.props && "render" in node.props;
var relayoutPage = compose(resolveTextLayout, resolvePageDimensions, resolveInheritance, resolvePageStyles);
var warnUnavailableSpace = (node) => {
  console.warn(`Node of type ${node.type} can't wrap between pages and it's bigger than available page height`);
};
var splitNodes = (height2, contentArea, nodes) => {
  const currentChildren = [];
  const nextChildren = [];
  for (let i5 = 0; i5 < nodes.length; i5 += 1) {
    const child = nodes[i5];
    const futureNodes = nodes.slice(i5 + 1);
    const futureFixedNodes = futureNodes.filter(isFixed);
    const nodeTop = getTop(child);
    const nodeHeight = child.box.height;
    const isOutside = height2 <= nodeTop;
    const shouldBreak$1 = shouldBreak(child, futureNodes, height2, currentChildren);
    const shouldSplit = height2 + SAFETY_THRESHOLD < nodeTop + nodeHeight;
    const canWrap = getWrap(child);
    const fitsInsidePage = nodeHeight <= contentArea;
    if (isFixed(child)) {
      nextChildren.push(child);
      currentChildren.push(child);
      continue;
    }
    if (isOutside) {
      const box = Object.assign({}, child.box, { top: child.box.top - height2 });
      const next = Object.assign({}, child, { box });
      nextChildren.push(next);
      continue;
    }
    if (!fitsInsidePage && !canWrap) {
      currentChildren.push(child);
      nextChildren.push(...futureNodes);
      warnUnavailableSpace(child);
      break;
    }
    if (shouldBreak$1) {
      const box = Object.assign({}, child.box, { top: child.box.top - height2 });
      const props = Object.assign({}, child.props, {
        wrap: true,
        break: false
      });
      const next = Object.assign({}, child, { box, props });
      currentChildren.push(...futureFixedNodes);
      nextChildren.push(next, ...futureNodes);
      break;
    }
    if (shouldSplit) {
      const [currentChild, nextChild] = split(child, height2, contentArea);
      if (child.children.length > 0 && currentChild.children.length === 0) {
        if (currentChildren.length === 0) {
          currentChildren.push(child, ...futureFixedNodes);
          nextChildren.push(...futureNodes);
        } else {
          const box = Object.assign({}, child.box, {
            top: child.box.top - height2
          });
          const next = Object.assign({}, child, { box });
          currentChildren.push(...futureFixedNodes);
          nextChildren.push(next, ...futureNodes);
        }
        break;
      }
      if (currentChild)
        currentChildren.push(currentChild);
      if (nextChild)
        nextChildren.push(nextChild);
      continue;
    }
    currentChildren.push(child);
  }
  return [currentChildren, nextChildren];
};
var splitChildren = (height2, contentArea, node) => {
  const children = node.children || [];
  const availableHeight = height2 - getTop(node);
  return splitNodes(availableHeight, contentArea, children);
};
var splitView = (node, height2, contentArea) => {
  const [currentNode, nextNode] = splitNode(node, height2);
  const [currentChilds, nextChildren] = splitChildren(height2, contentArea, node);
  return [
    assingChildren(currentChilds, currentNode),
    assingChildren(nextChildren, nextNode)
  ];
};
var split = (node, height2, contentArea) => isText$1(node) ? splitText(node, height2) : splitView(node, height2, contentArea);
var shouldResolveDynamicNodes = (node) => {
  const children = node.children || [];
  return isDynamic(node) || children.some(shouldResolveDynamicNodes);
};
var resolveDynamicNodes = (props, node) => {
  const isNodeDynamic = isDynamic(node);
  const resolveChildren2 = (children2 = []) => {
    if (isNodeDynamic) {
      const res = node.props.render(props);
      return createInstances(res).filter(Boolean).map((n6) => resolveDynamicNodes(props, n6));
    }
    return children2.map((c6) => resolveDynamicNodes(props, c6));
  };
  const resetHeight = isNodeDynamic && isText$1(node);
  const box = resetHeight ? { ...node.box, height: 0 } : node.box;
  const children = resolveChildren2(node.children);
  const lines = isNodeDynamic ? null : node.lines;
  return Object.assign({}, node, { box, lines, children });
};
var resolveDynamicPage = (props, page, fontStore2, yoga) => {
  if (shouldResolveDynamicNodes(page)) {
    const resolvedPage = resolveDynamicNodes(props, page);
    return relayoutPage(resolvedPage, fontStore2, yoga);
  }
  return page;
};
var splitPage = (page, pageNumber, fontStore2, yoga) => {
  const wrapArea = getWrapArea(page);
  const contentArea = getContentArea(page);
  const dynamicPage = resolveDynamicPage({ pageNumber }, page, fontStore2, yoga);
  const height2 = page.style.height;
  const [currentChilds, nextChilds] = splitNodes(wrapArea, contentArea, dynamicPage.children);
  const relayout = (node) => (
    // @ts-expect-error rework pagination
    relayoutPage(node, fontStore2, yoga)
  );
  const currentBox = { ...page.box, height: height2 };
  const currentPage = relayout(Object.assign({}, page, { box: currentBox, children: currentChilds }));
  if (nextChilds.length === 0 || allFixed(nextChilds))
    return [currentPage, null];
  const nextBox = omit("height", page.box);
  const nextProps = omit("bookmark", page.props);
  const nextPage = relayout(Object.assign({}, page, {
    props: nextProps,
    box: nextBox,
    children: nextChilds
  }));
  return [currentPage, nextPage];
};
var resolvePageIndices = (fontStore2, yoga, page, pageNumber, pages) => {
  const totalPages = pages.length;
  const props = {
    totalPages,
    pageNumber: pageNumber + 1,
    subPageNumber: page.subPageNumber + 1,
    subPageTotalPages: page.subPageTotalPages
  };
  return resolveDynamicPage(props, page, fontStore2, yoga);
};
var assocSubPageData = (subpages) => {
  return subpages.map((page, i5) => ({
    ...page,
    subPageNumber: i5,
    subPageTotalPages: subpages.length
  }));
};
var dissocSubPageData = (page) => {
  return omit(["subPageNumber", "subPageTotalPages"], page);
};
var paginate = (page, pageNumber, fontStore2, yoga) => {
  if (!page)
    return [];
  if (page.props?.wrap === false)
    return [page];
  let splittedPage = splitPage(page, pageNumber, fontStore2, yoga);
  const pages = [splittedPage[0]];
  let nextPage = splittedPage[1];
  while (nextPage !== null) {
    splittedPage = splitPage(nextPage, pageNumber + pages.length, fontStore2, yoga);
    pages.push(splittedPage[0]);
    nextPage = splittedPage[1];
  }
  return pages;
};
var resolvePagination = (root, fontStore2) => {
  let pages = [];
  let pageNumber = 1;
  for (let i5 = 0; i5 < root.children.length; i5 += 1) {
    const page = root.children[i5];
    let subpages = paginate(page, pageNumber, fontStore2, root.yoga);
    subpages = assocSubPageData(subpages);
    pageNumber += subpages.length;
    pages = pages.concat(subpages);
  }
  pages = pages.map((...args) => dissocSubPageData(resolvePageIndices(fontStore2, root.yoga, ...args)));
  return assingChildren(pages, root);
};
var resolvePageHorizontalPadding = (container) => (value2) => {
  const match = matchPercent(value2);
  const width = container.width;
  return match ? match.percent * width : value2;
};
var resolvePageVerticalPadding = (container) => (value2) => {
  const match = matchPercent(value2);
  const height2 = container.height;
  return match ? match.percent * height2 : value2;
};
var resolvePagePaddings = (page) => {
  const container = page.style;
  const style = evolve({
    paddingTop: resolvePageVerticalPadding(container),
    paddingLeft: resolvePageHorizontalPadding(container),
    paddingRight: resolvePageHorizontalPadding(container),
    paddingBottom: resolvePageVerticalPadding(container)
  }, page.style);
  return Object.assign({}, page, { style });
};
var resolvePagesPaddings = (root) => {
  if (!root.children)
    return root;
  const children = root.children.map(resolvePagePaddings);
  return Object.assign({}, root, { children });
};
var resolveRadius = (box) => (value2) => {
  if (!value2)
    return void 0;
  const match = matchPercent(value2);
  return match ? match.percent * Math.min(box.width, box.height) : value2;
};
var resolvePercentRadius = (node) => {
  const style = evolve({
    borderTopLeftRadius: resolveRadius(node.box),
    borderTopRightRadius: resolveRadius(node.box),
    borderBottomRightRadius: resolveRadius(node.box),
    borderBottomLeftRadius: resolveRadius(node.box)
  }, node.style || {});
  const newNode = Object.assign({}, node, { style });
  if (!node.children)
    return newNode;
  const children = node.children.map(resolvePercentRadius);
  return Object.assign({}, newNode, { children });
};
var transformHeight = (pageArea, height2) => {
  const match = matchPercent(height2);
  return match ? match.percent * pageArea : height2;
};
var getPageArea = (page) => {
  const pageHeight = page.style.height;
  const pagePaddingTop = page.style?.paddingTop || 0;
  const pagePaddingBottom = page.style?.paddingBottom || 0;
  return pageHeight - pagePaddingTop - pagePaddingBottom;
};
var resolveNodePercentHeight = (page, node) => {
  if (isNil(page.style?.height))
    return node;
  if (isNil(node.style?.height))
    return node;
  const pageArea = getPageArea(page);
  const height2 = transformHeight(pageArea, node.style.height);
  const style = Object.assign({}, node.style, { height: height2 });
  return Object.assign({}, node, { style });
};
var resolvePagePercentHeight = (page) => {
  if (!page.children)
    return page;
  const resolveChild = (child) => resolveNodePercentHeight(page, child);
  const children = page.children.map(resolveChild);
  return Object.assign({}, page, { children });
};
var resolvePercentHeight = (root) => {
  if (!root.children)
    return root;
  const children = root.children.map(resolvePagePercentHeight);
  return Object.assign({}, root, { children });
};
var isType = (type) => (node) => node.type === type;
var isLink = isType(Link);
var isText = isType(Text);
var isTextInstance = isType(TextInstance);
var hasRenderProp = (node) => "render" in node.props;
var isTextType = (node) => isText(node) || isTextInstance(node);
var isTextLink = (node) => {
  const children = node.children || [];
  if (children.every(isTextInstance))
    return true;
  if (children.every(isText))
    return false;
  return children.every(isTextType);
};
var wrapText = (node) => {
  const textElement = {
    type: Text,
    props: {},
    style: {},
    box: {},
    children: node.children
  };
  return Object.assign({}, node, { children: [textElement] });
};
var transformLink = (node) => {
  if (!isLink(node))
    return node;
  if (hasRenderProp(node))
    return Object.assign({}, node, { type: Text });
  if (isTextLink(node))
    return wrapText(node);
  return node;
};
var resolveLinkSubstitution = (node) => {
  if (!node.children)
    return node;
  const resolveChild = compose(transformLink, resolveLinkSubstitution);
  const children = node.children.map(resolveChild);
  return Object.assign({}, node, { children });
};
var layout = asyncCompose(resolveZIndex, resolveOrigin, resolveAssets, resolvePagination, resolveTextLayout, resolvePercentRadius, resolveDimensions, resolveSvg, resolveAssets, resolveInheritance, resolvePercentHeight, resolvePagesPaddings, resolveStyles2, resolveLinkSubstitution, resolveBookmarks, resolvePageSizes, resolveYoga);

// ../../node_modules/.pnpm/@react-pdf+reconciler@2.0.0_react@19.2.4/node_modules/@react-pdf/reconciler/lib/index.js
var import_react4 = __toESM(require_react(), 1);

// ../../node_modules/.pnpm/@react-pdf+reconciler@2.0.0_react@19.2.4/node_modules/@react-pdf/reconciler/lib/reconciler-31.js
var import_react = __toESM(require_react(), 1);
var n2 = __toESM(require_scheduler(), 1);
function t(e4) {
  return e4 && e4.__esModule && Object.prototype.hasOwnProperty.call(e4, "default") ? e4.default : e4;
}
function r(e4) {
  if (e4.__esModule) return e4;
  var n6 = e4.default;
  if ("function" == typeof n6) {
    var t4 = function e5() {
      return this instanceof e5 ? Reflect.construct(n6, arguments, this.constructor) : n6.apply(this, arguments);
    };
    t4.prototype = n6.prototype;
  } else t4 = {};
  return Object.defineProperty(t4, "__esModule", { value: true }), Object.keys(e4).forEach((function(n7) {
    var r4 = Object.getOwnPropertyDescriptor(e4, n7);
    Object.defineProperty(t4, n7, r4.get ? r4 : { enumerable: true, get: function() {
      return e4[n7];
    } });
  })), t4;
}
var l;
var a2 = { exports: {} };
var o2 = { exports: {} };
var u2 = r(n2);
var i2;
var s;
var c3 = { exports: {} };
"production" === process.env.NODE_ENV ? a2.exports = (l || (l = 1, (s = o2).exports = function(n6) {
  function t4(e4, n7, t5, r5) {
    return new $r(e4, n7, t5, r5);
  }
  function r4(e4) {
    var n7 = "https://react.dev/errors/" + e4;
    if (1 < arguments.length) {
      n7 += "?args[]=" + encodeURIComponent(arguments[1]);
      for (var t5 = 2; t5 < arguments.length; t5++) n7 += "&args[]=" + encodeURIComponent(arguments[t5]);
    }
    return "Minified React error #" + e4 + "; visit " + n7 + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
  }
  function l4(e4) {
    return null === e4 || "object" != typeof e4 ? null : "function" == typeof (e4 = Cl && e4[Cl] || e4["@@iterator"]) ? e4 : null;
  }
  function a5(e4) {
    if (null == e4) return null;
    if ("function" == typeof e4) return e4.$$typeof === El ? null : e4.displayName || e4.name || null;
    if ("string" == typeof e4) return e4;
    switch (e4) {
      case dl:
        return "Fragment";
      case fl2:
        return "Portal";
      case ml:
        return "Profiler";
      case pl:
        return "StrictMode";
      case vl:
        return "Suspense";
      case Sl:
        return "SuspenseList";
    }
    if ("object" == typeof e4) switch (e4.$$typeof) {
      case yl:
        return (e4.displayName || "Context") + ".Provider";
      case gl:
        return (e4._context.displayName || "Context") + ".Consumer";
      case bl:
        var n7 = e4.render;
        return (e4 = e4.displayName) || (e4 = "" !== (e4 = n7.displayName || n7.name || "") ? "ForwardRef(" + e4 + ")" : "ForwardRef"), e4;
      case kl:
        return null !== (n7 = e4.displayName || null) ? n7 : a5(e4.type) || "Memo";
      case wl:
        n7 = e4._payload, e4 = e4._init;
        try {
          return a5(e4(n7));
        } catch (e5) {
        }
    }
    return null;
  }
  function o5(e4) {
    if (void 0 === rl) try {
      throw Error();
    } catch (e5) {
      var n7 = e5.stack.trim().match(/\n( *(at )?)/);
      rl = n7 && n7[1] || "", ll = -1 < e5.stack.indexOf("\n    at") ? " (<anonymous>)" : -1 < e5.stack.indexOf("@") ? "@unknown:0:0" : "";
    }
    return "\n" + rl + e4 + ll;
  }
  function i5(e4, n7) {
    if (!e4 || _l) return "";
    _l = true;
    var t5 = Error.prepareStackTrace;
    Error.prepareStackTrace = void 0;
    try {
      var r5 = { DetermineComponentFrameRoot: function() {
        try {
          if (n7) {
            var t6 = function() {
              throw Error();
            };
            if (Object.defineProperty(t6.prototype, "props", { set: function() {
              throw Error();
            } }), "object" == typeof Reflect && Reflect.construct) {
              try {
                Reflect.construct(t6, []);
              } catch (e5) {
                var r6 = e5;
              }
              Reflect.construct(e4, [], t6);
            } else {
              try {
                t6.call();
              } catch (e5) {
                r6 = e5;
              }
              e4.call(t6.prototype);
            }
          } else {
            try {
              throw Error();
            } catch (e5) {
              r6 = e5;
            }
            (t6 = e4()) && "function" == typeof t6.catch && t6.catch((function() {
            }));
          }
        } catch (e5) {
          if (e5 && r6 && "string" == typeof e5.stack) return [e5.stack, r6.stack];
        }
        return [null, null];
      } };
      r5.DetermineComponentFrameRoot.displayName = "DetermineComponentFrameRoot";
      var l5 = Object.getOwnPropertyDescriptor(r5.DetermineComponentFrameRoot, "name");
      l5 && l5.configurable && Object.defineProperty(r5.DetermineComponentFrameRoot, "name", { value: "DetermineComponentFrameRoot" });
      var a6 = r5.DetermineComponentFrameRoot(), u5 = a6[0], i6 = a6[1];
      if (u5 && i6) {
        var s5 = u5.split("\n"), c7 = i6.split("\n");
        for (l5 = r5 = 0; r5 < s5.length && !s5[r5].includes("DetermineComponentFrameRoot"); ) r5++;
        for (; l5 < c7.length && !c7[l5].includes("DetermineComponentFrameRoot"); ) l5++;
        if (r5 === s5.length || l5 === c7.length) for (r5 = s5.length - 1, l5 = c7.length - 1; 1 <= r5 && 0 <= l5 && s5[r5] !== c7[l5]; ) l5--;
        for (; 1 <= r5 && 0 <= l5; r5--, l5--) if (s5[r5] !== c7[l5]) {
          if (1 !== r5 || 1 !== l5) do {
            if (r5--, 0 > --l5 || s5[r5] !== c7[l5]) {
              var f5 = "\n" + s5[r5].replace(" at new ", " at ");
              return e4.displayName && f5.includes("<anonymous>") && (f5 = f5.replace("<anonymous>", e4.displayName)), f5;
            }
          } while (1 <= r5 && 0 <= l5);
          break;
        }
      }
    } finally {
      _l = false, Error.prepareStackTrace = t5;
    }
    return (t5 = e4 ? e4.displayName || e4.name : "") ? o5(t5) : "";
  }
  function s4(e4) {
    switch (e4.tag) {
      case 26:
      case 27:
      case 5:
        return o5(e4.type);
      case 16:
        return o5("Lazy");
      case 13:
        return o5("Suspense");
      case 19:
        return o5("SuspenseList");
      case 0:
      case 15:
        return i5(e4.type, false);
      case 11:
        return i5(e4.type.render, false);
      case 1:
        return i5(e4.type, true);
      default:
        return "";
    }
  }
  function c6(e4) {
    try {
      var n7 = "";
      do {
        n7 += s4(e4), e4 = e4.return;
      } while (e4);
      return n7;
    } catch (e5) {
      return "\nError generating stack: " + e5.message + "\n" + e5.stack;
    }
  }
  function f4(e4) {
    return { current: e4 };
  }
  function d3(e4) {
    0 > Na || (e4.current = Ta[Na], Ta[Na] = null, Na--);
  }
  function p3(e4, n7) {
    Na++, Ta[Na] = e4.current, e4.current = n7;
  }
  function m3(e4) {
    var n7 = 42 & e4;
    if (0 !== n7) return n7;
    switch (e4 & -e4) {
      case 1:
        return 1;
      case 2:
        return 2;
      case 4:
        return 4;
      case 8:
        return 8;
      case 16:
        return 16;
      case 32:
        return 32;
      case 64:
        return 64;
      case 128:
      case 256:
      case 512:
      case 1024:
      case 2048:
      case 4096:
      case 8192:
      case 16384:
      case 32768:
      case 65536:
      case 131072:
      case 262144:
      case 524288:
      case 1048576:
      case 2097152:
        return 4194176 & e4;
      case 4194304:
      case 8388608:
      case 16777216:
      case 33554432:
        return 62914560 & e4;
      case 67108864:
        return 67108864;
      case 134217728:
        return 134217728;
      case 268435456:
        return 268435456;
      case 536870912:
        return 536870912;
      case 1073741824:
        return 0;
      default:
        return e4;
    }
  }
  function h4(e4, n7) {
    var t5 = e4.pendingLanes;
    if (0 === t5) return 0;
    var r5 = 0, l5 = e4.suspendedLanes;
    e4 = e4.pingedLanes;
    var a6 = 134217727 & t5;
    return 0 !== a6 ? 0 != (t5 = a6 & ~l5) ? r5 = m3(t5) : 0 != (e4 &= a6) && (r5 = m3(e4)) : 0 != (t5 &= ~l5) ? r5 = m3(t5) : 0 !== e4 && (r5 = m3(e4)), 0 === r5 ? 0 : 0 !== n7 && n7 !== r5 && 0 == (n7 & l5) && ((l5 = r5 & -r5) >= (e4 = n7 & -n7) || 32 === l5 && 0 != (4194176 & e4)) ? n7 : r5;
  }
  function g3(e4, n7) {
    switch (e4) {
      case 1:
      case 2:
      case 4:
      case 8:
        return n7 + 250;
      case 16:
      case 32:
      case 64:
      case 128:
      case 256:
      case 512:
      case 1024:
      case 2048:
      case 4096:
      case 8192:
      case 16384:
      case 32768:
      case 65536:
      case 131072:
      case 262144:
      case 524288:
      case 1048576:
      case 2097152:
        return n7 + 5e3;
      default:
        return -1;
    }
  }
  function y3() {
    var e4 = Fa;
    return 0 == (4194176 & (Fa <<= 1)) && (Fa = 128), e4;
  }
  function b3() {
    var e4 = Ma;
    return 0 == (62914560 & (Ma <<= 1)) && (Ma = 4194304), e4;
  }
  function v3(e4) {
    for (var n7 = [], t5 = 0; 31 > t5; t5++) n7.push(e4);
    return n7;
  }
  function S3(e4, n7) {
    e4.pendingLanes |= n7, 268435456 !== n7 && (e4.suspendedLanes = 0, e4.pingedLanes = 0, e4.warmLanes = 0);
  }
  function k3(e4, n7, t5) {
    e4.pendingLanes |= n7, e4.suspendedLanes &= ~n7;
    var r5 = 31 - Ua(n7);
    e4.entangledLanes |= n7, e4.entanglements[r5] = 1073741824 | e4.entanglements[r5] | 4194218 & t5;
  }
  function w(e4, n7) {
    var t5 = e4.entangledLanes |= n7;
    for (e4 = e4.entanglements; t5; ) {
      var r5 = 31 - Ua(t5), l5 = 1 << r5;
      l5 & n7 | e4[r5] & n7 && (e4[r5] |= n7), t5 &= ~l5;
    }
  }
  function x(e4) {
    return 2 < (e4 &= -e4) ? 8 < e4 ? 0 != (134217727 & e4) ? 32 : 268435456 : 8 : 2;
  }
  function z(e4) {
    "function" == typeof qa && Ya(e4);
  }
  function C(e4, n7) {
    if ("object" == typeof e4 && null !== e4) {
      var t5 = Ka.get(e4);
      return void 0 !== t5 ? t5 : (n7 = { value: e4, source: n7, stack: c6(n7) }, Ka.set(e4, n7), n7);
    }
    return { value: e4, source: n7, stack: c6(n7) };
  }
  function E(e4) {
    for (; e4 === eo; ) eo = Xa[--Za], Xa[Za] = null, Xa[--Za], Xa[Za] = null;
    for (; e4 === ro; ) ro = no[--to], no[to] = null, no[--to], no[to] = null, no[--to], no[to] = null;
  }
  function P(e4, n7) {
    p3(oo, n7), p3(ao, e4), p3(lo, null), e4 = Nl(n7), d3(lo), p3(lo, e4);
  }
  function _() {
    d3(lo), d3(ao), d3(oo);
  }
  function R(e4) {
    null !== e4.memoizedState && p3(uo, e4);
    var n7 = lo.current, t5 = Ll(n7, e4.type);
    n7 !== t5 && (p3(ao, e4), p3(lo, t5));
  }
  function T(e4) {
    ao.current === e4 && (d3(lo), d3(ao)), uo.current === e4 && (d3(uo), ra._currentValue2 = ta);
  }
  function N() {
    for (var e4 = fo, n7 = po = fo = 0; n7 < e4; ) {
      var t5 = co[n7];
      co[n7++] = null;
      var r5 = co[n7];
      co[n7++] = null;
      var l5 = co[n7];
      co[n7++] = null;
      var a6 = co[n7];
      if (co[n7++] = null, null !== r5 && null !== l5) {
        var o6 = r5.pending;
        null === o6 ? l5.next = l5 : (l5.next = o6.next, o6.next = l5), r5.pending = l5;
      }
      0 !== a6 && I(t5, l5, a6);
    }
  }
  function L(e4, n7, t5, r5) {
    co[fo++] = e4, co[fo++] = n7, co[fo++] = t5, co[fo++] = r5, po |= r5, e4.lanes |= r5, null !== (e4 = e4.alternate) && (e4.lanes |= r5);
  }
  function U(e4, n7, t5, r5) {
    return L(e4, n7, t5, r5), F(e4);
  }
  function D(e4, n7) {
    return L(e4, null, null, n7), F(e4);
  }
  function I(e4, n7, t5) {
    e4.lanes |= t5;
    var r5 = e4.alternate;
    null !== r5 && (r5.lanes |= t5);
    for (var l5 = false, a6 = e4.return; null !== a6; ) a6.childLanes |= t5, null !== (r5 = a6.alternate) && (r5.childLanes |= t5), 22 === a6.tag && (null === (e4 = a6.stateNode) || 1 & e4._visibility || (l5 = true)), e4 = a6, a6 = a6.return;
    l5 && null !== n7 && 3 === e4.tag && (a6 = e4.stateNode, l5 = 31 - Ua(t5), null === (e4 = (a6 = a6.hiddenUpdates)[l5]) ? a6[l5] = [n7] : e4.push(n7), n7.lane = 536870912 | t5);
  }
  function F(e4) {
    if (50 < ti) throw ti = 0, ri = null, Error(r4(185));
    for (var n7 = e4.return; null !== n7; ) n7 = (e4 = n7).return;
    return 3 === e4.tag ? e4.stateNode : null;
  }
  function M(e4) {
    e4 !== ho && null === e4.next && (null === ho ? mo = ho = e4 : ho = ho.next = e4), yo = true, go || (go = true, Wa(Oa, H));
  }
  function W(e4, n7) {
    if (!bo && yo) {
      bo = true;
      do {
        for (var t5 = false, r5 = mo; null !== r5; ) {
          if (0 !== e4) {
            var l5 = r5.pendingLanes;
            if (0 === l5) var a6 = 0;
            else {
              var o6 = r5.suspendedLanes, u5 = r5.pingedLanes;
              a6 = (1 << 31 - Ua(42 | e4) + 1) - 1, a6 = 201326677 & (a6 &= l5 & ~(o6 & ~u5)) ? 201326677 & a6 | 1 : a6 ? 2 | a6 : 0;
            }
            0 !== a6 && (t5 = true, Q(r5, a6));
          } else a6 = Lu, 0 != (3 & (a6 = h4(r5, r5 === Tu ? a6 : 0))) && (t5 = true, Q(r5, a6));
          r5 = r5.next;
        }
      } while (t5);
      bo = false;
    }
  }
  function H() {
    yo = go = false;
    var e4 = 0;
    0 !== vo && (Gl() && (e4 = vo), vo = 0);
    for (var n7 = Qa(), t5 = null, r5 = mo; null !== r5; ) {
      var l5 = r5.next, a6 = j(r5, n7);
      0 === a6 ? (r5.next = null, null === t5 ? mo = l5 : t5.next = l5, null === l5 && (ho = t5)) : (t5 = r5, (0 !== e4 || 0 != (3 & a6)) && (yo = true)), r5 = l5;
    }
    W(e4);
  }
  function j(e4, n7) {
    for (var t5 = e4.suspendedLanes, r5 = e4.pingedLanes, l5 = e4.expirationTimes, a6 = -62914561 & e4.pendingLanes; 0 < a6; ) {
      var o6 = 31 - Ua(a6), u5 = 1 << o6, i6 = l5[o6];
      -1 === i6 ? 0 != (u5 & t5) && 0 == (u5 & r5) || (l5[o6] = g3(u5, n7)) : i6 <= n7 && (e4.expiredLanes |= u5), a6 &= ~u5;
    }
    if (t5 = Lu, t5 = h4(e4, e4 === (n7 = Tu) ? t5 : 0), r5 = e4.callbackNode, 0 === t5 || e4 === n7 && 2 === Uu || null !== e4.cancelPendingCommit) return null !== r5 && null !== r5 && Ha(r5), e4.callbackNode = null, e4.callbackPriority = 0;
    if (0 != (3 & t5)) return null !== r5 && null !== r5 && Ha(r5), e4.callbackPriority = 2, e4.callbackNode = null, 2;
    if ((n7 = t5 & -t5) === e4.callbackPriority) return n7;
    switch (null !== r5 && Ha(r5), x(t5)) {
      case 2:
        t5 = Oa;
        break;
      case 8:
        t5 = Ba;
        break;
      case 32:
      default:
        t5 = Va;
        break;
      case 268435456:
        t5 = $a;
    }
    return r5 = A.bind(null, e4), t5 = Wa(t5, r5), e4.callbackPriority = n7, e4.callbackNode = t5, n7;
  }
  function A(e4, n7) {
    var t5 = e4.callbackNode;
    if (Wr() && e4.callbackNode !== t5) return null;
    var r5 = Lu;
    return 0 === (r5 = h4(e4, e4 === Tu ? r5 : 0)) ? null : (gr(e4, r5, n7), j(e4, Qa()), e4.callbackNode === t5 ? A.bind(null, e4) : null);
  }
  function Q(e4, n7) {
    if (Wr()) return null;
    gr(e4, n7, true);
  }
  function O() {
    return 0 === vo && (vo = y3()), vo;
  }
  function B() {
    if (0 == --ko && null !== So) {
      null !== xo && (xo.status = "fulfilled");
      var e4 = So;
      So = null, wo = 0, xo = null;
      for (var n7 = 0; n7 < e4.length; n7++) (0, e4[n7])();
    }
  }
  function V(e4) {
    e4.updateQueue = { baseState: e4.memoizedState, firstBaseUpdate: null, lastBaseUpdate: null, shared: { pending: null, lanes: 0, hiddenCallbacks: null }, callbacks: null };
  }
  function $(e4, n7) {
    e4 = e4.updateQueue, n7.updateQueue === e4 && (n7.updateQueue = { baseState: e4.baseState, firstBaseUpdate: e4.firstBaseUpdate, lastBaseUpdate: e4.lastBaseUpdate, shared: e4.shared, callbacks: null });
  }
  function q(e4) {
    return { lane: e4, tag: 0, payload: null, callback: null, next: null };
  }
  function Y(e4, n7, t5) {
    var r5 = e4.updateQueue;
    if (null === r5) return null;
    if (r5 = r5.shared, 0 != (2 & Ru)) {
      var l5 = r5.pending;
      return null === l5 ? n7.next = n7 : (n7.next = l5.next, l5.next = n7), r5.pending = n7, n7 = F(e4), I(e4, null, t5), n7;
    }
    return L(e4, r5, n7, t5), F(e4);
  }
  function G2(e4, n7, t5) {
    if (null !== (n7 = n7.updateQueue) && (n7 = n7.shared, 0 != (4194176 & t5))) {
      var r5 = n7.lanes;
      t5 |= r5 &= e4.pendingLanes, n7.lanes = t5, w(e4, t5);
    }
  }
  function J(e4, n7) {
    var t5 = e4.updateQueue, r5 = e4.alternate;
    if (null !== r5 && t5 === (r5 = r5.updateQueue)) {
      var l5 = null, a6 = null;
      if (null !== (t5 = t5.firstBaseUpdate)) {
        do {
          var o6 = { lane: t5.lane, tag: t5.tag, payload: t5.payload, callback: null, next: null };
          null === a6 ? l5 = a6 = o6 : a6 = a6.next = o6, t5 = t5.next;
        } while (null !== t5);
        null === a6 ? l5 = a6 = n7 : a6 = a6.next = n7;
      } else l5 = a6 = n7;
      return t5 = { baseState: r5.baseState, firstBaseUpdate: l5, lastBaseUpdate: a6, shared: r5.shared, callbacks: r5.callbacks }, void (e4.updateQueue = t5);
    }
    null === (e4 = t5.lastBaseUpdate) ? t5.firstBaseUpdate = n7 : e4.next = n7, t5.lastBaseUpdate = n7;
  }
  function K() {
    if (Co && null !== xo) throw xo;
  }
  function X(e4, n7, t5, r5) {
    Co = false;
    var l5 = e4.updateQueue;
    zo = false;
    var a6 = l5.firstBaseUpdate, o6 = l5.lastBaseUpdate, u5 = l5.shared.pending;
    if (null !== u5) {
      l5.shared.pending = null;
      var i6 = u5, s5 = i6.next;
      i6.next = null, null === o6 ? a6 = s5 : o6.next = s5, o6 = i6;
      var c7 = e4.alternate;
      null !== c7 && (u5 = (c7 = c7.updateQueue).lastBaseUpdate) !== o6 && (null === u5 ? c7.firstBaseUpdate = s5 : u5.next = s5, c7.lastBaseUpdate = i6);
    }
    if (null !== a6) {
      var f5 = l5.baseState;
      for (o6 = 0, c7 = s5 = i6 = null, u5 = a6; ; ) {
        var d4 = -536870913 & u5.lane, p4 = d4 !== u5.lane;
        if (p4 ? (Lu & d4) === d4 : (r5 & d4) === d4) {
          0 !== d4 && d4 === wo && (Co = true), null !== c7 && (c7 = c7.next = { lane: 0, tag: u5.tag, payload: u5.payload, callback: null, next: null });
          e: {
            var m4 = e4, h5 = u5;
            d4 = n7;
            var g4 = t5;
            switch (h5.tag) {
              case 1:
                if ("function" == typeof (m4 = h5.payload)) {
                  f5 = m4.call(g4, f5, d4);
                  break e;
                }
                f5 = m4;
                break e;
              case 3:
                m4.flags = -65537 & m4.flags | 128;
              case 0:
                if (null == (d4 = "function" == typeof (m4 = h5.payload) ? m4.call(g4, f5, d4) : m4)) break e;
                f5 = il({}, f5, d4);
                break e;
              case 2:
                zo = true;
            }
          }
          null !== (d4 = u5.callback) && (e4.flags |= 64, p4 && (e4.flags |= 8192), null === (p4 = l5.callbacks) ? l5.callbacks = [d4] : p4.push(d4));
        } else p4 = { lane: d4, tag: u5.tag, payload: u5.payload, callback: u5.callback, next: null }, null === c7 ? (s5 = c7 = p4, i6 = f5) : c7 = c7.next = p4, o6 |= d4;
        if (null === (u5 = u5.next)) {
          if (null === (u5 = l5.shared.pending)) break;
          u5 = (p4 = u5).next, p4.next = null, l5.lastBaseUpdate = p4, l5.shared.pending = null;
        }
      }
      null === c7 && (i6 = f5), l5.baseState = i6, l5.firstBaseUpdate = s5, l5.lastBaseUpdate = c7, null === a6 && (l5.shared.lanes = 0), Hu |= o6, e4.lanes = o6, e4.memoizedState = f5;
    }
  }
  function Z(e4, n7) {
    if ("function" != typeof e4) throw Error(r4(191, e4));
    e4.call(n7);
  }
  function ee(e4, n7) {
    var t5 = e4.callbacks;
    if (null !== t5) for (e4.callbacks = null, e4 = 0; e4 < t5.length; e4++) Z(t5[e4], n7);
  }
  function ne(e4, n7) {
    if (Ja(e4, n7)) return true;
    if ("object" != typeof e4 || null === e4 || "object" != typeof n7 || null === n7) return false;
    var t5 = Object.keys(e4), r5 = Object.keys(n7);
    if (t5.length !== r5.length) return false;
    for (r5 = 0; r5 < t5.length; r5++) {
      var l5 = t5[r5];
      if (!Eo.call(n7, l5) || !Ja(e4[l5], n7[l5])) return false;
    }
    return true;
  }
  function te(e4) {
    return "fulfilled" === (e4 = e4.status) || "rejected" === e4;
  }
  function re() {
  }
  function le(e4, n7, t5) {
    switch (void 0 === (t5 = e4[t5]) ? e4.push(n7) : t5 !== n7 && (n7.then(re, re), n7 = t5), n7.status) {
      case "fulfilled":
        return n7.value;
      case "rejected":
        if ((e4 = n7.reason) === Po) throw Error(r4(483));
        throw e4;
      default:
        if ("string" == typeof n7.status) n7.then(re, re);
        else {
          if (null !== (e4 = Tu) && 100 < e4.shellSuspendCounter) throw Error(r4(482));
          (e4 = n7).status = "pending", e4.then((function(e5) {
            if ("pending" === n7.status) {
              var t6 = n7;
              t6.status = "fulfilled", t6.value = e5;
            }
          }), (function(e5) {
            if ("pending" === n7.status) {
              var t6 = n7;
              t6.status = "rejected", t6.reason = e5;
            }
          }));
        }
        switch (n7.status) {
          case "fulfilled":
            return n7.value;
          case "rejected":
            if ((e4 = n7.reason) === Po) throw Error(r4(483));
            throw e4;
        }
        throw To = n7, Po;
    }
  }
  function ae() {
    if (null === To) throw Error(r4(459));
    var e4 = To;
    return To = null, e4;
  }
  function oe(e4) {
    var n7 = Lo;
    return Lo += 1, null === No && (No = []), le(No, e4, n7);
  }
  function ue(e4, n7, t5, r5) {
    e4 = r5.props.ref, t5.ref = void 0 !== e4 ? e4 : null;
  }
  function ie(e4, n7) {
    if (n7.$$typeof === sl) throw Error(r4(525));
    throw e4 = Object.prototype.toString.call(n7), Error(r4(31, "[object Object]" === e4 ? "object with keys {" + Object.keys(n7).join(", ") + "}" : e4));
  }
  function se(e4) {
    return (0, e4._init)(e4._payload);
  }
  function ce(e4) {
    function n7(n8, t5) {
      if (e4) {
        var r5 = n8.deletions;
        null === r5 ? (n8.deletions = [t5], n8.flags |= 16) : r5.push(t5);
      }
    }
    function a6(t5, r5) {
      if (!e4) return null;
      for (; null !== r5; ) n7(t5, r5), r5 = r5.sibling;
      return null;
    }
    function o6(e5) {
      for (var n8 = /* @__PURE__ */ new Map(); null !== e5; ) null !== e5.key ? n8.set(e5.key, e5) : n8.set(e5.index, e5), e5 = e5.sibling;
      return n8;
    }
    function u5(e5, n8) {
      return (e5 = Yr(e5, n8)).index = 0, e5.sibling = null, e5;
    }
    function i6(n8, t5, r5) {
      return n8.index = r5, e4 ? null !== (r5 = n8.alternate) ? (r5 = r5.index) < t5 ? (n8.flags |= 33554434, t5) : r5 : (n8.flags |= 33554434, t5) : (n8.flags |= 1048576, t5);
    }
    function s5(n8) {
      return e4 && null === n8.alternate && (n8.flags |= 33554434), n8;
    }
    function c7(e5, n8, t5, r5) {
      return null === n8 || 6 !== n8.tag ? ((n8 = Zr(t5, e5.mode, r5)).return = e5, n8) : ((n8 = u5(n8, t5)).return = e5, n8);
    }
    function f5(e5, n8, t5, r5) {
      var l5 = t5.type;
      return l5 === dl ? p4(e5, n8, t5.props.children, r5, t5.key) : null !== n8 && (n8.elementType === l5 || "object" == typeof l5 && null !== l5 && l5.$$typeof === wl && se(l5) === n8.type) ? (ue(e5, 0, r5 = u5(n8, t5.props), t5), r5.return = e5, r5) : (ue(e5, 0, r5 = Jr(t5.type, t5.key, t5.props, null, e5.mode, r5), t5), r5.return = e5, r5);
    }
    function d4(e5, n8, t5, r5) {
      return null === n8 || 4 !== n8.tag || n8.stateNode.containerInfo !== t5.containerInfo || n8.stateNode.implementation !== t5.implementation ? ((n8 = el(t5, e5.mode, r5)).return = e5, n8) : ((n8 = u5(n8, t5.children || [])).return = e5, n8);
    }
    function p4(e5, n8, t5, r5, l5) {
      return null === n8 || 7 !== n8.tag ? ((n8 = Kr(t5, e5.mode, r5, l5)).return = e5, n8) : ((n8 = u5(n8, t5)).return = e5, n8);
    }
    function m4(e5, n8, t5) {
      if ("string" == typeof n8 && "" !== n8 || "number" == typeof n8 || "bigint" == typeof n8) return (n8 = Zr("" + n8, e5.mode, t5)).return = e5, n8;
      if ("object" == typeof n8 && null !== n8) {
        switch (n8.$$typeof) {
          case cl:
            return ue(e5, 0, t5 = Jr(n8.type, n8.key, n8.props, null, e5.mode, t5), n8), t5.return = e5, t5;
          case fl2:
            return (n8 = el(n8, e5.mode, t5)).return = e5, n8;
          case wl:
            return m4(e5, n8 = (0, n8._init)(n8._payload), t5);
        }
        if (Rl(n8) || l4(n8)) return (n8 = Kr(n8, e5.mode, t5, null)).return = e5, n8;
        if ("function" == typeof n8.then) return m4(e5, oe(n8), t5);
        if (n8.$$typeof === yl) return m4(e5, yt(e5, n8), t5);
        ie(e5, n8);
      }
      return null;
    }
    function h5(e5, n8, t5, r5) {
      var a7 = null !== n8 ? n8.key : null;
      if ("string" == typeof t5 && "" !== t5 || "number" == typeof t5 || "bigint" == typeof t5) return null !== a7 ? null : c7(e5, n8, "" + t5, r5);
      if ("object" == typeof t5 && null !== t5) {
        switch (t5.$$typeof) {
          case cl:
            return t5.key === a7 ? f5(e5, n8, t5, r5) : null;
          case fl2:
            return t5.key === a7 ? d4(e5, n8, t5, r5) : null;
          case wl:
            return h5(e5, n8, t5 = (a7 = t5._init)(t5._payload), r5);
        }
        if (Rl(t5) || l4(t5)) return null !== a7 ? null : p4(e5, n8, t5, r5, null);
        if ("function" == typeof t5.then) return h5(e5, n8, oe(t5), r5);
        if (t5.$$typeof === yl) return h5(e5, n8, yt(e5, t5), r5);
        ie(e5, t5);
      }
      return null;
    }
    function g4(e5, n8, t5, r5, a7) {
      if ("string" == typeof r5 && "" !== r5 || "number" == typeof r5 || "bigint" == typeof r5) return c7(n8, e5 = e5.get(t5) || null, "" + r5, a7);
      if ("object" == typeof r5 && null !== r5) {
        switch (r5.$$typeof) {
          case cl:
            return f5(n8, e5 = e5.get(null === r5.key ? t5 : r5.key) || null, r5, a7);
          case fl2:
            return d4(n8, e5 = e5.get(null === r5.key ? t5 : r5.key) || null, r5, a7);
          case wl:
            return g4(e5, n8, t5, r5 = (0, r5._init)(r5._payload), a7);
        }
        if (Rl(r5) || l4(r5)) return p4(n8, e5 = e5.get(t5) || null, r5, a7, null);
        if ("function" == typeof r5.then) return g4(e5, n8, t5, oe(r5), a7);
        if (r5.$$typeof === yl) return g4(e5, n8, t5, yt(n8, r5), a7);
        ie(n8, r5);
      }
      return null;
    }
    function y4(t5, c8, f6, d5) {
      if ("object" == typeof f6 && null !== f6 && f6.type === dl && null === f6.key && (f6 = f6.props.children), "object" == typeof f6 && null !== f6) {
        switch (f6.$$typeof) {
          case cl:
            e: {
              for (var p5 = f6.key, b4 = c8; null !== b4; ) {
                if (b4.key === p5) {
                  if ((p5 = f6.type) === dl) {
                    if (7 === b4.tag) {
                      a6(t5, b4.sibling), (c8 = u5(b4, f6.props.children)).return = t5, t5 = c8;
                      break e;
                    }
                  } else if (b4.elementType === p5 || "object" == typeof p5 && null !== p5 && p5.$$typeof === wl && se(p5) === b4.type) {
                    a6(t5, b4.sibling), ue(t5, 0, c8 = u5(b4, f6.props), f6), c8.return = t5, t5 = c8;
                    break e;
                  }
                  a6(t5, b4);
                  break;
                }
                n7(t5, b4), b4 = b4.sibling;
              }
              f6.type === dl ? ((c8 = Kr(f6.props.children, t5.mode, d5, f6.key)).return = t5, t5 = c8) : (ue(t5, 0, d5 = Jr(f6.type, f6.key, f6.props, null, t5.mode, d5), f6), d5.return = t5, t5 = d5);
            }
            return s5(t5);
          case fl2:
            e: {
              for (b4 = f6.key; null !== c8; ) {
                if (c8.key === b4) {
                  if (4 === c8.tag && c8.stateNode.containerInfo === f6.containerInfo && c8.stateNode.implementation === f6.implementation) {
                    a6(t5, c8.sibling), (c8 = u5(c8, f6.children || [])).return = t5, t5 = c8;
                    break e;
                  }
                  a6(t5, c8);
                  break;
                }
                n7(t5, c8), c8 = c8.sibling;
              }
              (c8 = el(f6, t5.mode, d5)).return = t5, t5 = c8;
            }
            return s5(t5);
          case wl:
            return y4(t5, c8, f6 = (b4 = f6._init)(f6._payload), d5);
        }
        if (Rl(f6)) return (function(t6, r5, l5, u6) {
          for (var s6 = null, c9 = null, f7 = r5, d6 = r5 = 0, p6 = null; null !== f7 && d6 < l5.length; d6++) {
            f7.index > d6 ? (p6 = f7, f7 = null) : p6 = f7.sibling;
            var y5 = h5(t6, f7, l5[d6], u6);
            if (null === y5) {
              null === f7 && (f7 = p6);
              break;
            }
            e4 && f7 && null === y5.alternate && n7(t6, f7), r5 = i6(y5, r5, d6), null === c9 ? s6 = y5 : c9.sibling = y5, c9 = y5, f7 = p6;
          }
          if (d6 === l5.length) return a6(t6, f7), s6;
          if (null === f7) {
            for (; d6 < l5.length; d6++) null !== (f7 = m4(t6, l5[d6], u6)) && (r5 = i6(f7, r5, d6), null === c9 ? s6 = f7 : c9.sibling = f7, c9 = f7);
            return s6;
          }
          for (f7 = o6(f7); d6 < l5.length; d6++) null !== (p6 = g4(f7, t6, d6, l5[d6], u6)) && (e4 && null !== p6.alternate && f7.delete(null === p6.key ? d6 : p6.key), r5 = i6(p6, r5, d6), null === c9 ? s6 = p6 : c9.sibling = p6, c9 = p6);
          return e4 && f7.forEach((function(e5) {
            return n7(t6, e5);
          })), s6;
        })(t5, c8, f6, d5);
        if (l4(f6)) {
          if ("function" != typeof (b4 = l4(f6))) throw Error(r4(150));
          return (function(t6, l5, u6, s6) {
            if (null == u6) throw Error(r4(151));
            for (var c9 = null, f7 = null, d6 = l5, p6 = l5 = 0, y5 = null, b5 = u6.next(); null !== d6 && !b5.done; p6++, b5 = u6.next()) {
              d6.index > p6 ? (y5 = d6, d6 = null) : y5 = d6.sibling;
              var v4 = h5(t6, d6, b5.value, s6);
              if (null === v4) {
                null === d6 && (d6 = y5);
                break;
              }
              e4 && d6 && null === v4.alternate && n7(t6, d6), l5 = i6(v4, l5, p6), null === f7 ? c9 = v4 : f7.sibling = v4, f7 = v4, d6 = y5;
            }
            if (b5.done) return a6(t6, d6), c9;
            if (null === d6) {
              for (; !b5.done; p6++, b5 = u6.next()) null !== (b5 = m4(t6, b5.value, s6)) && (l5 = i6(b5, l5, p6), null === f7 ? c9 = b5 : f7.sibling = b5, f7 = b5);
              return c9;
            }
            for (d6 = o6(d6); !b5.done; p6++, b5 = u6.next()) null !== (b5 = g4(d6, t6, p6, b5.value, s6)) && (e4 && null !== b5.alternate && d6.delete(null === b5.key ? p6 : b5.key), l5 = i6(b5, l5, p6), null === f7 ? c9 = b5 : f7.sibling = b5, f7 = b5);
            return e4 && d6.forEach((function(e5) {
              return n7(t6, e5);
            })), c9;
          })(t5, c8, f6 = b4.call(f6), d5);
        }
        if ("function" == typeof f6.then) return y4(t5, c8, oe(f6), d5);
        if (f6.$$typeof === yl) return y4(t5, c8, yt(t5, f6), d5);
        ie(t5, f6);
      }
      return "string" == typeof f6 && "" !== f6 || "number" == typeof f6 || "bigint" == typeof f6 ? (f6 = "" + f6, null !== c8 && 6 === c8.tag ? (a6(t5, c8.sibling), (c8 = u5(c8, f6)).return = t5, t5 = c8) : (a6(t5, c8), (c8 = Zr(f6, t5.mode, d5)).return = t5, t5 = c8), s5(t5)) : a6(t5, c8);
    }
    return function(e5, n8, r5, l5) {
      try {
        Lo = 0;
        var a7 = y4(e5, n8, r5, l5);
        return No = null, a7;
      } catch (n9) {
        if (n9 === Po) throw n9;
        var o7 = t4(29, n9, null, e5.mode);
        return o7.lanes = l5, o7.return = e5, o7;
      }
    };
  }
  function fe(e4, n7) {
    p3(Fo, e4 = Mu), p3(Io, n7), Mu = e4 | n7.baseLanes;
  }
  function de() {
    p3(Fo, Mu), p3(Io, Io.current);
  }
  function pe() {
    Mu = Fo.current, d3(Io), d3(Fo);
  }
  function me(e4) {
    var n7 = e4.alternate;
    p3(Ho, 1 & Ho.current), p3(Mo, e4), null === Wo && (null === n7 || null !== Io.current || null !== n7.memoizedState) && (Wo = e4);
  }
  function he(e4) {
    if (22 === e4.tag) {
      if (p3(Ho, Ho.current), p3(Mo, e4), null === Wo) {
        var n7 = e4.alternate;
        null !== n7 && null !== n7.memoizedState && (Wo = e4);
      }
    } else ge();
  }
  function ge() {
    p3(Ho, Ho.current), p3(Mo, Mo.current);
  }
  function ye(e4) {
    d3(Mo), Wo === e4 && (Wo = null), d3(Ho);
  }
  function be(e4) {
    for (var n7 = e4; null !== n7; ) {
      if (13 === n7.tag) {
        var t5 = n7.memoizedState;
        if (null !== t5 && (null === (t5 = t5.dehydrated) || Sa(t5) || ka(t5))) return n7;
      } else if (19 === n7.tag && void 0 !== n7.memoizedProps.revealOrder) {
        if (0 != (128 & n7.flags)) return n7;
      } else if (null !== n7.child) {
        n7.child.return = n7, n7 = n7.child;
        continue;
      }
      if (n7 === e4) break;
      for (; null === n7.sibling; ) {
        if (null === n7.return || n7.return === e4) return null;
        n7 = n7.return;
      }
      n7.sibling.return = n7.return, n7 = n7.sibling;
    }
    return null;
  }
  function ve() {
    throw Error(r4(321));
  }
  function Se(e4, n7) {
    if (null === n7) return false;
    for (var t5 = 0; t5 < n7.length && t5 < e4.length; t5++) if (!Ja(e4[t5], n7[t5])) return false;
    return true;
  }
  function ke(e4, n7, t5, r5, l5, a6) {
    return jo = a6, Ao = n7, n7.memoizedState = null, n7.updateQueue = null, n7.lanes = 0, Pl.H = null === e4 || null === e4.memoizedState ? Zo : eu, $o = false, a6 = t5(r5, l5), $o = false, Vo && (a6 = xe(n7, t5, r5, l5)), we(e4), a6;
  }
  function we(e4) {
    Pl.H = Xo;
    var n7 = null !== Qo && null !== Qo.next;
    if (jo = 0, Oo = Qo = Ao = null, Bo = false, Yo = 0, Go = null, n7) throw Error(r4(300));
    null === e4 || lu || null !== (e4 = e4.dependencies) && mt(e4) && (lu = true);
  }
  function xe(e4, n7, t5, l5) {
    Ao = e4;
    var a6 = 0;
    do {
      if (Vo && (Go = null), Yo = 0, Vo = false, 25 <= a6) throw Error(r4(301));
      if (a6 += 1, Oo = Qo = null, null != e4.updateQueue) {
        var o6 = e4.updateQueue;
        o6.lastEffect = null, o6.events = null, o6.stores = null, null != o6.memoCache && (o6.memoCache.index = 0);
      }
      Pl.H = nu, o6 = n7(t5, l5);
    } while (Vo);
    return o6;
  }
  function ze() {
    var e4 = Pl.H, n7 = e4.useState()[0];
    return n7 = "function" == typeof n7.then ? Te(n7) : n7, e4 = e4.useState()[0], (null !== Qo ? Qo.memoizedState : null) !== e4 && (Ao.flags |= 1024), n7;
  }
  function Ce() {
    var e4 = 0 !== qo;
    return qo = 0, e4;
  }
  function Ee(e4, n7, t5) {
    n7.updateQueue = e4.updateQueue, n7.flags &= -2053, e4.lanes &= ~t5;
  }
  function Pe(e4) {
    if (Bo) {
      for (e4 = e4.memoizedState; null !== e4; ) {
        var n7 = e4.queue;
        null !== n7 && (n7.pending = null), e4 = e4.next;
      }
      Bo = false;
    }
    jo = 0, Oo = Qo = Ao = null, Vo = false, Yo = qo = 0, Go = null;
  }
  function _e() {
    var e4 = { memoizedState: null, baseState: null, baseQueue: null, queue: null, next: null };
    return null === Oo ? Ao.memoizedState = Oo = e4 : Oo = Oo.next = e4, Oo;
  }
  function Re() {
    if (null === Qo) {
      var e4 = Ao.alternate;
      e4 = null !== e4 ? e4.memoizedState : null;
    } else e4 = Qo.next;
    var n7 = null === Oo ? Ao.memoizedState : Oo.next;
    if (null !== n7) Oo = n7, Qo = e4;
    else {
      if (null === e4) {
        if (null === Ao.alternate) throw Error(r4(467));
        throw Error(r4(310));
      }
      e4 = { memoizedState: (Qo = e4).memoizedState, baseState: Qo.baseState, baseQueue: Qo.baseQueue, queue: Qo.queue, next: null }, null === Oo ? Ao.memoizedState = Oo = e4 : Oo = Oo.next = e4;
    }
    return Oo;
  }
  function Te(e4) {
    var n7 = Yo;
    return Yo += 1, null === Go && (Go = []), e4 = le(Go, e4, n7), n7 = Ao, null === (null === Oo ? n7.memoizedState : Oo.next) && (n7 = n7.alternate, Pl.H = null === n7 || null === n7.memoizedState ? Zo : eu), e4;
  }
  function Ne(e4) {
    if (null !== e4 && "object" == typeof e4) {
      if ("function" == typeof e4.then) return Te(e4);
      if (e4.$$typeof === yl) return gt(e4);
    }
    throw Error(r4(438, String(e4)));
  }
  function Le(e4) {
    var n7 = null, t5 = Ao.updateQueue;
    if (null !== t5 && (n7 = t5.memoCache), null == n7) {
      var r5 = Ao.alternate;
      null !== r5 && null !== (r5 = r5.updateQueue) && null != (r5 = r5.memoCache) && (n7 = { data: r5.data.map((function(e5) {
        return e5.slice();
      })), index: 0 });
    }
    if (null == n7 && (n7 = { data: [], index: 0 }), null === t5 && (t5 = Ko(), Ao.updateQueue = t5), t5.memoCache = n7, void 0 === (t5 = n7.data[n7.index])) for (t5 = n7.data[n7.index] = Array(e4), r5 = 0; r5 < e4; r5++) t5[r5] = zl;
    return n7.index++, t5;
  }
  function Ue(e4, n7) {
    return "function" == typeof n7 ? n7(e4) : n7;
  }
  function De(e4) {
    return Ie(Re(), Qo, e4);
  }
  function Ie(e4, n7, t5) {
    var l5 = e4.queue;
    if (null === l5) throw Error(r4(311));
    l5.lastRenderedReducer = t5;
    var a6 = e4.baseQueue, o6 = l5.pending;
    if (null !== o6) {
      if (null !== a6) {
        var u5 = a6.next;
        a6.next = o6.next, o6.next = u5;
      }
      n7.baseQueue = a6 = o6, l5.pending = null;
    }
    if (o6 = e4.baseState, null === a6) e4.memoizedState = o6;
    else {
      var i6 = u5 = null, s5 = null, c7 = n7 = a6.next, f5 = false;
      do {
        var d4 = -536870913 & c7.lane;
        if (d4 !== c7.lane ? (Lu & d4) === d4 : (jo & d4) === d4) {
          var p4 = c7.revertLane;
          if (0 === p4) null !== s5 && (s5 = s5.next = { lane: 0, revertLane: 0, action: c7.action, hasEagerState: c7.hasEagerState, eagerState: c7.eagerState, next: null }), d4 === wo && (f5 = true);
          else {
            if ((jo & p4) === p4) {
              c7 = c7.next, p4 === wo && (f5 = true);
              continue;
            }
            d4 = { lane: 0, revertLane: c7.revertLane, action: c7.action, hasEagerState: c7.hasEagerState, eagerState: c7.eagerState, next: null }, null === s5 ? (i6 = s5 = d4, u5 = o6) : s5 = s5.next = d4, Ao.lanes |= p4, Hu |= p4;
          }
          d4 = c7.action, $o && t5(o6, d4), o6 = c7.hasEagerState ? c7.eagerState : t5(o6, d4);
        } else p4 = { lane: d4, revertLane: c7.revertLane, action: c7.action, hasEagerState: c7.hasEagerState, eagerState: c7.eagerState, next: null }, null === s5 ? (i6 = s5 = p4, u5 = o6) : s5 = s5.next = p4, Ao.lanes |= d4, Hu |= d4;
        c7 = c7.next;
      } while (null !== c7 && c7 !== n7);
      if (null === s5 ? u5 = o6 : s5.next = i6, !Ja(o6, e4.memoizedState) && (lu = true, f5 && null !== (t5 = xo))) throw t5;
      e4.memoizedState = o6, e4.baseState = u5, e4.baseQueue = s5, l5.lastRenderedState = o6;
    }
    return null === a6 && (l5.lanes = 0), [e4.memoizedState, l5.dispatch];
  }
  function Fe(e4) {
    var n7 = Re(), t5 = n7.queue;
    if (null === t5) throw Error(r4(311));
    t5.lastRenderedReducer = e4;
    var l5 = t5.dispatch, a6 = t5.pending, o6 = n7.memoizedState;
    if (null !== a6) {
      t5.pending = null;
      var u5 = a6 = a6.next;
      do {
        o6 = e4(o6, u5.action), u5 = u5.next;
      } while (u5 !== a6);
      Ja(o6, n7.memoizedState) || (lu = true), n7.memoizedState = o6, null === n7.baseQueue && (n7.baseState = o6), t5.lastRenderedState = o6;
    }
    return [o6, l5];
  }
  function Me(e4, n7, t5) {
    var l5 = Ao, a6 = Re();
    t5 = n7();
    var o6 = !Ja((Qo || a6).memoizedState, t5);
    if (o6 && (a6.memoizedState = t5, lu = true), a6 = a6.queue, sn(je.bind(null, l5, a6, e4), [e4]), a6.getSnapshot !== n7 || o6 || null !== Oo && 1 & Oo.memoizedState.tag) {
      if (l5.flags |= 2048, rn(9, He.bind(null, l5, a6, t5, n7), { destroy: void 0 }, null), null === Tu) throw Error(r4(349));
      0 != (60 & jo) || We(l5, n7, t5);
    }
    return t5;
  }
  function We(e4, n7, t5) {
    e4.flags |= 16384, e4 = { getSnapshot: n7, value: t5 }, null === (n7 = Ao.updateQueue) ? (n7 = Ko(), Ao.updateQueue = n7, n7.stores = [e4]) : null === (t5 = n7.stores) ? n7.stores = [e4] : t5.push(e4);
  }
  function He(e4, n7, t5, r5) {
    n7.value = t5, n7.getSnapshot = r5, Ae(n7) && Qe(e4);
  }
  function je(e4, n7, t5) {
    return t5((function() {
      Ae(n7) && Qe(e4);
    }));
  }
  function Ae(e4) {
    var n7 = e4.getSnapshot;
    e4 = e4.value;
    try {
      var t5 = n7();
      return !Ja(e4, t5);
    } catch (e5) {
      return true;
    }
  }
  function Qe(e4) {
    var n7 = D(e4, 2);
    null !== n7 && hr(n7, 0, 2);
  }
  function Oe(e4) {
    var n7 = _e();
    if ("function" == typeof e4) {
      var t5 = e4;
      if (e4 = t5(), $o) {
        z(true);
        try {
          t5();
        } finally {
          z(false);
        }
      }
    }
    return n7.memoizedState = n7.baseState = e4, n7.queue = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: Ue, lastRenderedState: e4 }, n7;
  }
  function Be(e4, n7, t5, r5) {
    return e4.baseState = t5, Ie(e4, Qo, "function" == typeof r5 ? r5 : Ue);
  }
  function Ve(e4, n7, t5, l5, a6) {
    if (_n(e4)) throw Error(r4(485));
    if (null !== (e4 = n7.action)) {
      var o6 = { payload: a6, action: e4, next: null, isTransition: true, status: "pending", value: null, reason: null, listeners: [], then: function(e5) {
        o6.listeners.push(e5);
      } };
      null !== Pl.T ? t5(true) : o6.isTransition = false, l5(o6), null === (t5 = n7.pending) ? (o6.next = n7.pending = o6, $e(n7, o6)) : (o6.next = t5.next, n7.pending = t5.next = o6);
    }
  }
  function $e(e4, n7) {
    var t5 = n7.action, r5 = n7.payload, l5 = e4.state;
    if (n7.isTransition) {
      var a6 = Pl.T, o6 = {};
      Pl.T = o6;
      try {
        var u5 = t5(l5, r5), i6 = Pl.S;
        null !== i6 && i6(o6, u5), qe(e4, n7, u5);
      } catch (t6) {
        Ge(e4, n7, t6);
      } finally {
        Pl.T = a6;
      }
    } else try {
      qe(e4, n7, a6 = t5(l5, r5));
    } catch (t6) {
      Ge(e4, n7, t6);
    }
  }
  function qe(e4, n7, t5) {
    null !== t5 && "object" == typeof t5 && "function" == typeof t5.then ? t5.then((function(t6) {
      Ye(e4, n7, t6);
    }), (function(t6) {
      return Ge(e4, n7, t6);
    })) : Ye(e4, n7, t5);
  }
  function Ye(e4, n7, t5) {
    n7.status = "fulfilled", n7.value = t5, Je(n7), e4.state = t5, null !== (n7 = e4.pending) && ((t5 = n7.next) === n7 ? e4.pending = null : (t5 = t5.next, n7.next = t5, $e(e4, t5)));
  }
  function Ge(e4, n7, t5) {
    var r5 = e4.pending;
    if (e4.pending = null, null !== r5) {
      r5 = r5.next;
      do {
        n7.status = "rejected", n7.reason = t5, Je(n7), n7 = n7.next;
      } while (n7 !== r5);
    }
    e4.action = null;
  }
  function Je(e4) {
    e4 = e4.listeners;
    for (var n7 = 0; n7 < e4.length; n7++) (0, e4[n7])();
  }
  function Ke(e4, n7) {
    return n7;
  }
  function Xe(e4, n7) {
    var t5, r5, l5;
    (t5 = _e()).memoizedState = t5.baseState = n7, r5 = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: Ke, lastRenderedState: n7 }, t5.queue = r5, t5 = Cn.bind(null, Ao, r5), r5.dispatch = t5, r5 = Oe(false);
    var a6 = Pn.bind(null, Ao, false, r5.queue);
    return l5 = { state: n7, dispatch: null, action: e4, pending: null }, (r5 = _e()).queue = l5, t5 = Ve.bind(null, Ao, l5, a6, t5), l5.dispatch = t5, r5.memoizedState = e4, [n7, t5, false];
  }
  function Ze(e4) {
    return en(Re(), Qo, e4);
  }
  function en(e4, n7, t5) {
    n7 = Ie(e4, n7, Ke)[0], e4 = De(Ue)[0], n7 = "object" == typeof n7 && null !== n7 && "function" == typeof n7.then ? Te(n7) : n7;
    var r5 = Re(), l5 = r5.queue, a6 = l5.dispatch;
    return t5 !== r5.memoizedState && (Ao.flags |= 2048, rn(9, nn.bind(null, l5, t5), { destroy: void 0 }, null)), [n7, a6, e4];
  }
  function nn(e4, n7) {
    e4.action = n7;
  }
  function tn(e4) {
    var n7 = Re(), t5 = Qo;
    if (null !== t5) return en(n7, t5, e4);
    Re(), n7 = n7.memoizedState;
    var r5 = (t5 = Re()).queue.dispatch;
    return t5.memoizedState = e4, [n7, r5, false];
  }
  function rn(e4, n7, t5, r5) {
    return e4 = { tag: e4, create: n7, inst: t5, deps: r5, next: null }, null === (n7 = Ao.updateQueue) && (n7 = Ko(), Ao.updateQueue = n7), null === (t5 = n7.lastEffect) ? n7.lastEffect = e4.next = e4 : (r5 = t5.next, t5.next = e4, e4.next = r5, n7.lastEffect = e4), e4;
  }
  function ln() {
    return Re().memoizedState;
  }
  function an(e4, n7, t5, r5) {
    var l5 = _e();
    Ao.flags |= e4, l5.memoizedState = rn(1 | n7, t5, { destroy: void 0 }, void 0 === r5 ? null : r5);
  }
  function on2(e4, n7, t5, r5) {
    var l5 = Re();
    r5 = void 0 === r5 ? null : r5;
    var a6 = l5.memoizedState.inst;
    null !== Qo && null !== r5 && Se(r5, Qo.memoizedState.deps) ? l5.memoizedState = rn(n7, t5, a6, r5) : (Ao.flags |= e4, l5.memoizedState = rn(1 | n7, t5, a6, r5));
  }
  function un(e4, n7) {
    an(8390656, 8, e4, n7);
  }
  function sn(e4, n7) {
    on2(2048, 8, e4, n7);
  }
  function cn(e4, n7) {
    return on2(4, 2, e4, n7);
  }
  function fn(e4, n7) {
    return on2(4, 4, e4, n7);
  }
  function dn(e4, n7) {
    if ("function" == typeof n7) {
      e4 = e4();
      var t5 = n7(e4);
      return function() {
        "function" == typeof t5 ? t5() : n7(null);
      };
    }
    if (null != n7) return e4 = e4(), n7.current = e4, function() {
      n7.current = null;
    };
  }
  function pn(e4, n7, t5) {
    t5 = null != t5 ? t5.concat([e4]) : null, on2(4, 4, dn.bind(null, n7, e4), t5);
  }
  function mn() {
  }
  function hn(e4, n7) {
    var t5 = Re();
    n7 = void 0 === n7 ? null : n7;
    var r5 = t5.memoizedState;
    return null !== n7 && Se(n7, r5[1]) ? r5[0] : (t5.memoizedState = [e4, n7], e4);
  }
  function gn(e4, n7) {
    var t5 = Re();
    n7 = void 0 === n7 ? null : n7;
    var r5 = t5.memoizedState;
    if (null !== n7 && Se(n7, r5[1])) return r5[0];
    if (r5 = e4(), $o) {
      z(true);
      try {
        e4();
      } finally {
        z(false);
      }
    }
    return t5.memoizedState = [r5, n7], r5;
  }
  function yn(e4, n7, t5) {
    return void 0 === t5 || 0 != (1073741824 & jo) ? e4.memoizedState = n7 : (e4.memoizedState = t5, e4 = mr(), Ao.lanes |= e4, Hu |= e4, t5);
  }
  function bn(e4, n7, t5, r5) {
    return Ja(t5, n7) ? t5 : null !== Io.current ? (e4 = yn(e4, t5, r5), Ja(e4, n7) || (lu = true), e4) : 0 == (42 & jo) ? (lu = true, e4.memoizedState = t5) : (e4 = mr(), Ao.lanes |= e4, Hu |= e4, n7);
  }
  function vn(e4, n7, t5, r5, l5) {
    var a6 = ql();
    $l(0 !== a6 && 8 > a6 ? a6 : 8);
    var o6, u5, i6, s5 = Pl.T, c7 = {};
    Pl.T = c7, Pn(e4, false, n7, t5);
    try {
      var f5 = l5(), d4 = Pl.S;
      null !== d4 && d4(c7, f5), null !== f5 && "object" == typeof f5 && "function" == typeof f5.then ? En(e4, n7, (o6 = r5, u5 = [], i6 = { status: "pending", value: null, reason: null, then: function(e5) {
        u5.push(e5);
      } }, f5.then((function() {
        i6.status = "fulfilled", i6.value = o6;
        for (var e5 = 0; e5 < u5.length; e5++) (0, u5[e5])(o6);
      }), (function(e5) {
        for (i6.status = "rejected", i6.reason = e5, e5 = 0; e5 < u5.length; e5++) (0, u5[e5])(void 0);
      })), i6), pr()) : En(e4, n7, r5, pr());
    } catch (t6) {
      En(e4, n7, { then: function() {
      }, status: "rejected", reason: t6 }, pr());
    } finally {
      $l(a6), Pl.T = s5;
    }
  }
  function Sn() {
    return gt(ra);
  }
  function kn() {
    return Re().memoizedState;
  }
  function wn() {
    return Re().memoizedState;
  }
  function xn(e4) {
    for (var n7 = e4.return; null !== n7; ) {
      switch (n7.tag) {
        case 24:
        case 3:
          var t5 = pr(), r5 = Y(n7, e4 = q(t5), t5);
          return null !== r5 && (hr(r5, 0, t5), G2(r5, n7, t5)), n7 = { cache: vt() }, void (e4.payload = n7);
      }
      n7 = n7.return;
    }
  }
  function zn(e4, n7, t5) {
    var r5 = pr();
    t5 = { lane: r5, revertLane: 0, action: t5, hasEagerState: false, eagerState: null, next: null }, _n(e4) ? Rn(n7, t5) : null !== (t5 = U(e4, n7, t5, r5)) && (hr(t5, 0, r5), Tn(t5, n7, r5));
  }
  function Cn(e4, n7, t5) {
    En(e4, n7, t5, pr());
  }
  function En(e4, n7, t5, r5) {
    var l5 = { lane: r5, revertLane: 0, action: t5, hasEagerState: false, eagerState: null, next: null };
    if (_n(e4)) Rn(n7, l5);
    else {
      var a6 = e4.alternate;
      if (0 === e4.lanes && (null === a6 || 0 === a6.lanes) && null !== (a6 = n7.lastRenderedReducer)) try {
        var o6 = n7.lastRenderedState, u5 = a6(o6, t5);
        if (l5.hasEagerState = true, l5.eagerState = u5, Ja(u5, o6)) return L(e4, n7, l5, 0), null === Tu && N(), false;
      } catch (e5) {
      }
      if (null !== (t5 = U(e4, n7, l5, r5))) return hr(t5, 0, r5), Tn(t5, n7, r5), true;
    }
    return false;
  }
  function Pn(e4, n7, t5, l5) {
    if (l5 = { lane: 2, revertLane: O(), action: l5, hasEagerState: false, eagerState: null, next: null }, _n(e4)) {
      if (n7) throw Error(r4(479));
    } else null !== (n7 = U(e4, t5, l5, 2)) && hr(n7, 0, 2);
  }
  function _n(e4) {
    var n7 = e4.alternate;
    return e4 === Ao || null !== n7 && n7 === Ao;
  }
  function Rn(e4, n7) {
    Vo = Bo = true;
    var t5 = e4.pending;
    null === t5 ? n7.next = n7 : (n7.next = t5.next, t5.next = n7), e4.pending = n7;
  }
  function Tn(e4, n7, t5) {
    if (0 != (4194176 & t5)) {
      var r5 = n7.lanes;
      t5 |= r5 &= e4.pendingLanes, n7.lanes = t5, w(e4, t5);
    }
  }
  function Nn(e4, n7, t5, r5) {
    t5 = null == (t5 = t5(r5, n7 = e4.memoizedState)) ? n7 : il({}, n7, t5), e4.memoizedState = t5, 0 === e4.lanes && (e4.updateQueue.baseState = t5);
  }
  function Ln(e4, n7, t5, r5, l5, a6, o6) {
    return "function" == typeof (e4 = e4.stateNode).shouldComponentUpdate ? e4.shouldComponentUpdate(r5, a6, o6) : !(n7.prototype && n7.prototype.isPureReactComponent && ne(t5, r5) && ne(l5, a6));
  }
  function Un(e4, n7, t5, r5) {
    e4 = n7.state, "function" == typeof n7.componentWillReceiveProps && n7.componentWillReceiveProps(t5, r5), "function" == typeof n7.UNSAFE_componentWillReceiveProps && n7.UNSAFE_componentWillReceiveProps(t5, r5), n7.state !== e4 && tu.enqueueReplaceState(n7, n7.state, null);
  }
  function Dn(e4, n7) {
    var t5 = n7;
    if ("ref" in n7) for (var r5 in t5 = {}, n7) "ref" !== r5 && (t5[r5] = n7[r5]);
    if (e4 = e4.defaultProps) for (var l5 in t5 === n7 && (t5 = il({}, t5)), e4) void 0 === t5[l5] && (t5[l5] = e4[l5]);
    return t5;
  }
  function In(e4, n7) {
    try {
      (0, e4.onUncaughtError)(n7.value, { componentStack: n7.stack });
    } catch (e5) {
      setTimeout((function() {
        throw e5;
      }));
    }
  }
  function Fn(e4, n7, t5) {
    try {
      (0, e4.onCaughtError)(t5.value, { componentStack: t5.stack, errorBoundary: 1 === n7.tag ? n7.stateNode : null });
    } catch (e5) {
      setTimeout((function() {
        throw e5;
      }));
    }
  }
  function Mn(e4, n7, t5) {
    return (t5 = q(t5)).tag = 3, t5.payload = { element: null }, t5.callback = function() {
      In(e4, n7);
    }, t5;
  }
  function Wn(e4) {
    return (e4 = q(e4)).tag = 3, e4;
  }
  function Hn(e4, n7, t5, r5) {
    var l5 = t5.type.getDerivedStateFromError;
    if ("function" == typeof l5) {
      var a6 = r5.value;
      e4.payload = function() {
        return l5(a6);
      }, e4.callback = function() {
        Fn(n7, t5, r5);
      };
    }
    var o6 = t5.stateNode;
    null !== o6 && "function" == typeof o6.componentDidCatch && (e4.callback = function() {
      Fn(n7, t5, r5), "function" != typeof l5 && (null === Ju ? Ju = /* @__PURE__ */ new Set([this]) : Ju.add(this));
      var e5 = r5.stack;
      this.componentDidCatch(r5.value, { componentStack: null !== e5 ? e5 : "" });
    });
  }
  function jn(e4, n7, t5, r5) {
    n7.child = null === e4 ? Do(n7, null, t5, r5) : Uo(n7, e4.child, t5, r5);
  }
  function An(e4, n7, t5, r5, l5) {
    t5 = t5.render;
    var a6 = n7.ref;
    if ("ref" in r5) {
      var o6 = {};
      for (var u5 in r5) "ref" !== u5 && (o6[u5] = r5[u5]);
    } else o6 = r5;
    return ht(n7), r5 = ke(e4, n7, t5, o6, a6, l5), u5 = Ce(), null === e4 || lu ? (n7.flags |= 1, jn(e4, n7, r5, l5), n7.child) : (Ee(e4, n7, l5), at(e4, n7, l5));
  }
  function Qn(e4, n7, t5, r5, l5) {
    if (null === e4) {
      var a6 = t5.type;
      return "function" != typeof a6 || qr(a6) || void 0 !== a6.defaultProps || null !== t5.compare ? ((e4 = Jr(t5.type, null, r5, n7, n7.mode, l5)).ref = n7.ref, e4.return = n7, n7.child = e4) : (n7.tag = 15, n7.type = a6, On(e4, n7, a6, r5, l5));
    }
    if (a6 = e4.child, !ot(e4, l5)) {
      var o6 = a6.memoizedProps;
      if ((t5 = null !== (t5 = t5.compare) ? t5 : ne)(o6, r5) && e4.ref === n7.ref) return at(e4, n7, l5);
    }
    return n7.flags |= 1, (e4 = Yr(a6, r5)).ref = n7.ref, e4.return = n7, n7.child = e4;
  }
  function On(e4, n7, t5, r5, l5) {
    if (null !== e4) {
      var a6 = e4.memoizedProps;
      if (ne(a6, r5) && e4.ref === n7.ref) {
        if (lu = false, n7.pendingProps = r5 = a6, !ot(e4, l5)) return n7.lanes = e4.lanes, at(e4, n7, l5);
        0 != (131072 & e4.flags) && (lu = true);
      }
    }
    return qn(e4, n7, t5, r5, l5);
  }
  function Bn(e4, n7, t5) {
    var r5 = n7.pendingProps, l5 = r5.children, a6 = 0 != (2 & n7.stateNode._pendingVisibility), o6 = null !== e4 ? e4.memoizedState : null;
    if ($n(e4, n7), "hidden" === r5.mode || a6) {
      if (0 != (128 & n7.flags)) {
        if (r5 = null !== o6 ? o6.baseLanes | t5 : t5, null !== e4) {
          for (l5 = n7.child = e4.child, a6 = 0; null !== l5; ) a6 = a6 | l5.lanes | l5.childLanes, l5 = l5.sibling;
          n7.childLanes = a6 & ~r5;
        } else n7.childLanes = 0, n7.child = null;
        return Vn(e4, n7, r5, t5);
      }
      if (0 == (536870912 & t5)) return n7.lanes = n7.childLanes = 536870912, Vn(e4, n7, null !== o6 ? o6.baseLanes | t5 : t5, t5);
      n7.memoizedState = { baseLanes: 0, cachePool: null }, null !== e4 && wt(0, null !== o6 ? o6.cachePool : null), null !== o6 ? fe(n7, o6) : de(), he(n7);
    } else null !== o6 ? (wt(0, o6.cachePool), fe(n7, o6), ge(), n7.memoizedState = null) : (null !== e4 && wt(0, null), de(), ge());
    return jn(e4, n7, l5, t5), n7.child;
  }
  function Vn(e4, n7, t5, r5) {
    var l5 = kt();
    return l5 = null === l5 ? null : { parent: pu._currentValue2, pool: l5 }, n7.memoizedState = { baseLanes: t5, cachePool: l5 }, null !== e4 && wt(0, null), de(), he(n7), null !== e4 && pt(e4, n7, r5, true), null;
  }
  function $n(e4, n7) {
    var t5 = n7.ref;
    if (null === t5) null !== e4 && null !== e4.ref && (n7.flags |= 2097664);
    else {
      if ("function" != typeof t5 && "object" != typeof t5) throw Error(r4(284));
      null !== e4 && e4.ref === t5 || (n7.flags |= 2097664);
    }
  }
  function qn(e4, n7, t5, r5, l5) {
    return ht(n7), t5 = ke(e4, n7, t5, r5, void 0, l5), r5 = Ce(), null === e4 || lu ? (n7.flags |= 1, jn(e4, n7, t5, l5), n7.child) : (Ee(e4, n7, l5), at(e4, n7, l5));
  }
  function Yn(e4, n7, t5, r5, l5, a6) {
    return ht(n7), n7.updateQueue = null, t5 = xe(n7, r5, t5, l5), we(e4), r5 = Ce(), null === e4 || lu ? (n7.flags |= 1, jn(e4, n7, t5, a6), n7.child) : (Ee(e4, n7, a6), at(e4, n7, a6));
  }
  function Gn(e4, n7, t5, r5, l5) {
    if (ht(n7), null === n7.stateNode) {
      var a6 = La, o6 = t5.contextType;
      "object" == typeof o6 && null !== o6 && (a6 = gt(o6)), a6 = new t5(r5, a6), n7.memoizedState = null !== a6.state && void 0 !== a6.state ? a6.state : null, a6.updater = tu, n7.stateNode = a6, a6._reactInternals = n7, (a6 = n7.stateNode).props = r5, a6.state = n7.memoizedState, a6.refs = {}, V(n7), o6 = t5.contextType, a6.context = "object" == typeof o6 && null !== o6 ? gt(o6) : La, a6.state = n7.memoizedState, "function" == typeof (o6 = t5.getDerivedStateFromProps) && (Nn(n7, t5, o6, r5), a6.state = n7.memoizedState), "function" == typeof t5.getDerivedStateFromProps || "function" == typeof a6.getSnapshotBeforeUpdate || "function" != typeof a6.UNSAFE_componentWillMount && "function" != typeof a6.componentWillMount || (o6 = a6.state, "function" == typeof a6.componentWillMount && a6.componentWillMount(), "function" == typeof a6.UNSAFE_componentWillMount && a6.UNSAFE_componentWillMount(), o6 !== a6.state && tu.enqueueReplaceState(a6, a6.state, null), X(n7, r5, a6, l5), K(), a6.state = n7.memoizedState), "function" == typeof a6.componentDidMount && (n7.flags |= 4194308), r5 = true;
    } else if (null === e4) {
      a6 = n7.stateNode;
      var u5 = n7.memoizedProps, i6 = Dn(t5, u5);
      a6.props = i6;
      var s5 = a6.context, c7 = t5.contextType;
      o6 = La, "object" == typeof c7 && null !== c7 && (o6 = gt(c7));
      var f5 = t5.getDerivedStateFromProps;
      c7 = "function" == typeof f5 || "function" == typeof a6.getSnapshotBeforeUpdate, u5 = n7.pendingProps !== u5, c7 || "function" != typeof a6.UNSAFE_componentWillReceiveProps && "function" != typeof a6.componentWillReceiveProps || (u5 || s5 !== o6) && Un(n7, a6, r5, o6), zo = false;
      var d4 = n7.memoizedState;
      a6.state = d4, X(n7, r5, a6, l5), K(), s5 = n7.memoizedState, u5 || d4 !== s5 || zo ? ("function" == typeof f5 && (Nn(n7, t5, f5, r5), s5 = n7.memoizedState), (i6 = zo || Ln(n7, t5, i6, r5, d4, s5, o6)) ? (c7 || "function" != typeof a6.UNSAFE_componentWillMount && "function" != typeof a6.componentWillMount || ("function" == typeof a6.componentWillMount && a6.componentWillMount(), "function" == typeof a6.UNSAFE_componentWillMount && a6.UNSAFE_componentWillMount()), "function" == typeof a6.componentDidMount && (n7.flags |= 4194308)) : ("function" == typeof a6.componentDidMount && (n7.flags |= 4194308), n7.memoizedProps = r5, n7.memoizedState = s5), a6.props = r5, a6.state = s5, a6.context = o6, r5 = i6) : ("function" == typeof a6.componentDidMount && (n7.flags |= 4194308), r5 = false);
    } else {
      a6 = n7.stateNode, $(e4, n7), c7 = Dn(t5, o6 = n7.memoizedProps), a6.props = c7, f5 = n7.pendingProps, d4 = a6.context, s5 = t5.contextType, i6 = La, "object" == typeof s5 && null !== s5 && (i6 = gt(s5)), (s5 = "function" == typeof (u5 = t5.getDerivedStateFromProps) || "function" == typeof a6.getSnapshotBeforeUpdate) || "function" != typeof a6.UNSAFE_componentWillReceiveProps && "function" != typeof a6.componentWillReceiveProps || (o6 !== f5 || d4 !== i6) && Un(n7, a6, r5, i6), zo = false, d4 = n7.memoizedState, a6.state = d4, X(n7, r5, a6, l5), K();
      var p4 = n7.memoizedState;
      o6 !== f5 || d4 !== p4 || zo || null !== e4 && null !== e4.dependencies && mt(e4.dependencies) ? ("function" == typeof u5 && (Nn(n7, t5, u5, r5), p4 = n7.memoizedState), (c7 = zo || Ln(n7, t5, c7, r5, d4, p4, i6) || null !== e4 && null !== e4.dependencies && mt(e4.dependencies)) ? (s5 || "function" != typeof a6.UNSAFE_componentWillUpdate && "function" != typeof a6.componentWillUpdate || ("function" == typeof a6.componentWillUpdate && a6.componentWillUpdate(r5, p4, i6), "function" == typeof a6.UNSAFE_componentWillUpdate && a6.UNSAFE_componentWillUpdate(r5, p4, i6)), "function" == typeof a6.componentDidUpdate && (n7.flags |= 4), "function" == typeof a6.getSnapshotBeforeUpdate && (n7.flags |= 1024)) : ("function" != typeof a6.componentDidUpdate || o6 === e4.memoizedProps && d4 === e4.memoizedState || (n7.flags |= 4), "function" != typeof a6.getSnapshotBeforeUpdate || o6 === e4.memoizedProps && d4 === e4.memoizedState || (n7.flags |= 1024), n7.memoizedProps = r5, n7.memoizedState = p4), a6.props = r5, a6.state = p4, a6.context = i6, r5 = c7) : ("function" != typeof a6.componentDidUpdate || o6 === e4.memoizedProps && d4 === e4.memoizedState || (n7.flags |= 4), "function" != typeof a6.getSnapshotBeforeUpdate || o6 === e4.memoizedProps && d4 === e4.memoizedState || (n7.flags |= 1024), r5 = false);
    }
    return a6 = r5, $n(e4, n7), r5 = 0 != (128 & n7.flags), a6 || r5 ? (a6 = n7.stateNode, t5 = r5 && "function" != typeof t5.getDerivedStateFromError ? null : a6.render(), n7.flags |= 1, null !== e4 && r5 ? (n7.child = Uo(n7, e4.child, null, l5), n7.child = Uo(n7, null, t5, l5)) : jn(e4, n7, t5, l5), n7.memoizedState = a6.state, e4 = n7.child) : e4 = at(e4, n7, l5), e4;
  }
  function Jn(e4) {
    return { baseLanes: e4, cachePool: xt() };
  }
  function Kn(e4, n7, t5) {
    return e4 = null !== e4 ? e4.childLanes & ~t5 : 0, n7 && (e4 |= Qu), e4;
  }
  function Xn(e4, n7, t5) {
    var l5, a6, o6, u5, i6 = n7.pendingProps, s5 = false, c7 = 0 != (128 & n7.flags);
    if ((l5 = c7) || (l5 = (null === e4 || null !== e4.memoizedState) && 0 != (2 & Ho.current)), l5 && (s5 = true, n7.flags &= -129), l5 = 0 != (32 & n7.flags), n7.flags &= -33, null === e4) return a6 = i6.children, i6 = i6.fallback, s5 ? (ge(), a6 = et2({ mode: "hidden", children: a6 }, s5 = n7.mode), i6 = Kr(i6, s5, t5, null), a6.return = n7, i6.return = n7, a6.sibling = i6, n7.child = a6, (s5 = n7.child).memoizedState = Jn(t5), s5.childLanes = Kn(e4, l5, t5), n7.memoizedState = au, i6) : (me(n7), Zn(n7, a6));
    if (null !== (o6 = e4.memoizedState) && null !== (a6 = o6.dehydrated)) {
      if (c7) 256 & n7.flags ? (me(n7), n7.flags &= -257, n7 = nt(e4, n7, t5)) : null !== n7.memoizedState ? (ge(), n7.child = e4.child, n7.flags |= 128, n7 = null) : (ge(), s5 = i6.fallback, a6 = n7.mode, i6 = et2({ mode: "visible", children: i6.children }, a6), (s5 = Kr(s5, a6, t5, null)).flags |= 2, i6.return = n7, s5.return = n7, i6.sibling = s5, n7.child = i6, Uo(n7, e4.child, null, t5), (i6 = n7.child).memoizedState = Jn(t5), i6.childLanes = Kn(e4, l5, t5), n7.memoizedState = au, n7 = s5);
      else if (me(n7), ka(a6)) l5 = wa(a6).digest, (i6 = Error(r4(419))).stack = "", i6.digest = l5, u5 = { value: i6, source: null, stack: null }, null === so ? so = [u5] : so.push(u5), n7 = nt(e4, n7, t5);
      else if (lu || pt(e4, n7, t5, false), l5 = 0 != (t5 & e4.childLanes), lu || l5) {
        if (null !== (l5 = Tu)) {
          if (0 != (42 & (i6 = t5 & -t5))) i6 = 1;
          else switch (i6) {
            case 2:
              i6 = 1;
              break;
            case 8:
              i6 = 4;
              break;
            case 32:
              i6 = 16;
              break;
            case 128:
            case 256:
            case 512:
            case 1024:
            case 2048:
            case 4096:
            case 8192:
            case 16384:
            case 32768:
            case 65536:
            case 131072:
            case 262144:
            case 524288:
            case 1048576:
            case 2097152:
            case 4194304:
            case 8388608:
            case 16777216:
            case 33554432:
              i6 = 64;
              break;
            case 268435456:
              i6 = 134217728;
              break;
            default:
              i6 = 0;
          }
          if (0 !== (i6 = 0 != (i6 & (l5.suspendedLanes | t5)) ? 0 : i6) && i6 !== o6.retryLane) throw o6.retryLane = i6, D(e4, i6), hr(l5, 0, i6), ru;
        }
        Sa(a6) || Pr(), n7 = nt(e4, n7, t5);
      } else Sa(a6) ? (n7.flags |= 128, n7.child = e4.child, n7 = Br.bind(null, e4), xa(a6, n7), n7 = null) : (e4 = o6.treeContext, (n7 = Zn(n7, i6.children)).flags |= 4096);
      return n7;
    }
    return s5 ? (ge(), s5 = i6.fallback, a6 = n7.mode, c7 = (o6 = e4.child).sibling, (i6 = Yr(o6, { mode: "hidden", children: i6.children })).subtreeFlags = 31457280 & o6.subtreeFlags, null !== c7 ? s5 = Yr(c7, s5) : (s5 = Kr(s5, a6, t5, null)).flags |= 2, s5.return = n7, i6.return = n7, i6.sibling = s5, n7.child = i6, i6 = s5, s5 = n7.child, null === (a6 = e4.child.memoizedState) ? a6 = Jn(t5) : (null !== (o6 = a6.cachePool) ? (c7 = pu._currentValue2, o6 = o6.parent !== c7 ? { parent: c7, pool: c7 } : o6) : o6 = xt(), a6 = { baseLanes: a6.baseLanes | t5, cachePool: o6 }), s5.memoizedState = a6, s5.childLanes = Kn(e4, l5, t5), n7.memoizedState = au, i6) : (me(n7), e4 = (t5 = e4.child).sibling, (t5 = Yr(t5, { mode: "visible", children: i6.children })).return = n7, t5.sibling = null, null !== e4 && (null === (l5 = n7.deletions) ? (n7.deletions = [e4], n7.flags |= 16) : l5.push(e4)), n7.child = t5, n7.memoizedState = null, t5);
  }
  function Zn(e4, n7) {
    return (n7 = et2({ mode: "visible", children: n7 }, e4.mode)).return = e4, e4.child = n7;
  }
  function et2(e4, n7) {
    return Xr(e4, n7, 0, null);
  }
  function nt(e4, n7, t5) {
    return Uo(n7, e4.child, null, t5), (e4 = Zn(n7, n7.pendingProps.children)).flags |= 2, n7.memoizedState = null, e4;
  }
  function tt(e4, n7, t5) {
    e4.lanes |= n7;
    var r5 = e4.alternate;
    null !== r5 && (r5.lanes |= n7), ft(e4.return, n7, t5);
  }
  function rt(e4, n7, t5, r5, l5) {
    var a6 = e4.memoizedState;
    null === a6 ? e4.memoizedState = { isBackwards: n7, rendering: null, renderingStartTime: 0, last: r5, tail: t5, tailMode: l5 } : (a6.isBackwards = n7, a6.rendering = null, a6.renderingStartTime = 0, a6.last = r5, a6.tail = t5, a6.tailMode = l5);
  }
  function lt(e4, n7, t5) {
    var r5 = n7.pendingProps, l5 = r5.revealOrder, a6 = r5.tail;
    if (jn(e4, n7, r5.children, t5), 0 != (2 & (r5 = Ho.current))) r5 = 1 & r5 | 2, n7.flags |= 128;
    else {
      if (null !== e4 && 0 != (128 & e4.flags)) e: for (e4 = n7.child; null !== e4; ) {
        if (13 === e4.tag) null !== e4.memoizedState && tt(e4, t5, n7);
        else if (19 === e4.tag) tt(e4, t5, n7);
        else if (null !== e4.child) {
          e4.child.return = e4, e4 = e4.child;
          continue;
        }
        if (e4 === n7) break e;
        for (; null === e4.sibling; ) {
          if (null === e4.return || e4.return === n7) break e;
          e4 = e4.return;
        }
        e4.sibling.return = e4.return, e4 = e4.sibling;
      }
      r5 &= 1;
    }
    switch (p3(Ho, r5), l5) {
      case "forwards":
        for (t5 = n7.child, l5 = null; null !== t5; ) null !== (e4 = t5.alternate) && null === be(e4) && (l5 = t5), t5 = t5.sibling;
        null === (t5 = l5) ? (l5 = n7.child, n7.child = null) : (l5 = t5.sibling, t5.sibling = null), rt(n7, false, l5, t5, a6);
        break;
      case "backwards":
        for (t5 = null, l5 = n7.child, n7.child = null; null !== l5; ) {
          if (null !== (e4 = l5.alternate) && null === be(e4)) {
            n7.child = l5;
            break;
          }
          e4 = l5.sibling, l5.sibling = t5, t5 = l5, l5 = e4;
        }
        rt(n7, true, t5, null, a6);
        break;
      case "together":
        rt(n7, false, null, null, void 0);
        break;
      default:
        n7.memoizedState = null;
    }
    return n7.child;
  }
  function at(e4, n7, t5) {
    if (null !== e4 && (n7.dependencies = e4.dependencies), Hu |= n7.lanes, 0 == (t5 & n7.childLanes)) {
      if (null === e4) return null;
      if (pt(e4, n7, t5, false), 0 == (t5 & n7.childLanes)) return null;
    }
    if (null !== e4 && n7.child !== e4.child) throw Error(r4(153));
    if (null !== n7.child) {
      for (t5 = Yr(e4 = n7.child, e4.pendingProps), n7.child = t5, t5.return = n7; null !== e4.sibling; ) e4 = e4.sibling, (t5 = t5.sibling = Yr(e4, e4.pendingProps)).return = n7;
      t5.sibling = null;
    }
    return n7.child;
  }
  function ot(e4, n7) {
    return 0 != (e4.lanes & n7) || !(null === (e4 = e4.dependencies) || !mt(e4));
  }
  function ut(e4, n7, t5) {
    if (null !== e4) if (e4.memoizedProps !== n7.pendingProps) lu = true;
    else {
      if (!ot(e4, t5) && 0 == (128 & n7.flags)) return lu = false, (function(e5, n8, t6) {
        switch (n8.tag) {
          case 3:
            P(n8, n8.stateNode.containerInfo), st(0, pu, e5.memoizedState.cache);
            break;
          case 27:
          case 5:
            R(n8);
            break;
          case 4:
            P(n8, n8.stateNode.containerInfo);
            break;
          case 10:
            st(0, n8.type, n8.memoizedProps.value);
            break;
          case 13:
            var r5 = n8.memoizedState;
            if (null !== r5) return null !== r5.dehydrated ? (me(n8), n8.flags |= 128, null) : 0 != (t6 & n8.child.childLanes) ? Xn(e5, n8, t6) : (me(n8), null !== (e5 = at(e5, n8, t6)) ? e5.sibling : null);
            me(n8);
            break;
          case 19:
            var l6 = 0 != (128 & e5.flags);
            if ((r5 = 0 != (t6 & n8.childLanes)) || (pt(e5, n8, t6, false), r5 = 0 != (t6 & n8.childLanes)), l6) {
              if (r5) return lt(e5, n8, t6);
              n8.flags |= 128;
            }
            if (null !== (l6 = n8.memoizedState) && (l6.rendering = null, l6.tail = null, l6.lastEffect = null), p3(Ho, Ho.current), r5) break;
            return null;
          case 22:
          case 23:
            return n8.lanes = 0, Bn(e5, n8, t6);
          case 24:
            st(0, pu, e5.memoizedState.cache);
        }
        return at(e5, n8, t6);
      })(e4, n7, t5);
      lu = 0 != (131072 & e4.flags);
    }
    else lu = false;
    switch (n7.lanes = 0, n7.tag) {
      case 16:
        e: {
          e4 = n7.pendingProps;
          var l5 = n7.elementType, o6 = l5._init;
          if (l5 = o6(l5._payload), n7.type = l5, "function" != typeof l5) {
            if (null != l5) {
              if ((o6 = l5.$$typeof) === bl) {
                n7.tag = 11, n7 = An(null, n7, l5, e4, t5);
                break e;
              }
              if (o6 === kl) {
                n7.tag = 14, n7 = Qn(null, n7, l5, e4, t5);
                break e;
              }
            }
            throw n7 = a5(l5) || l5, Error(r4(306, n7, ""));
          }
          qr(l5) ? (e4 = Dn(l5, e4), n7.tag = 1, n7 = Gn(null, n7, l5, e4, t5)) : (n7.tag = 0, n7 = qn(null, n7, l5, e4, t5));
        }
        return n7;
      case 0:
        return qn(e4, n7, n7.type, n7.pendingProps, t5);
      case 1:
        return Gn(e4, n7, l5 = n7.type, o6 = Dn(l5, n7.pendingProps), t5);
      case 3:
        if (P(n7, n7.stateNode.containerInfo), null === e4) throw Error(r4(387));
        var u5 = n7.pendingProps;
        l5 = (o6 = n7.memoizedState).element, $(e4, n7), X(n7, u5, null, t5);
        var i6 = n7.memoizedState;
        return u5 = i6.cache, st(0, pu, u5), u5 !== o6.cache && dt(n7, [pu], t5, true), K(), (u5 = i6.element) !== l5 ? (jn(e4, n7, u5, t5), n7 = n7.child) : n7 = at(e4, n7, t5), n7;
      case 26:
      case 27:
      case 5:
        return R(n7), o6 = n7.type, u5 = n7.pendingProps, i6 = null !== e4 ? e4.memoizedProps : null, l5 = u5.children, Wl(o6, u5) ? l5 = null : null !== i6 && Wl(o6, i6) && (n7.flags |= 32), null !== n7.memoizedState && (o6 = ke(e4, n7, ze, null, null, t5), ra._currentValue2 = o6), $n(e4, n7), jn(e4, n7, l5, t5), n7.child;
      case 6:
        return null;
      case 13:
        return Xn(e4, n7, t5);
      case 4:
        return P(n7, n7.stateNode.containerInfo), l5 = n7.pendingProps, null === e4 ? n7.child = Uo(n7, null, l5, t5) : jn(e4, n7, l5, t5), n7.child;
      case 11:
        return An(e4, n7, n7.type, n7.pendingProps, t5);
      case 7:
        return jn(e4, n7, n7.pendingProps, t5), n7.child;
      case 8:
      case 12:
        return jn(e4, n7, n7.pendingProps.children, t5), n7.child;
      case 10:
        return l5 = n7.pendingProps, st(0, n7.type, l5.value), jn(e4, n7, l5.children, t5), n7.child;
      case 9:
        return o6 = n7.type._context, l5 = n7.pendingProps.children, ht(n7), l5 = l5(o6 = gt(o6)), n7.flags |= 1, jn(e4, n7, l5, t5), n7.child;
      case 14:
        return Qn(e4, n7, n7.type, n7.pendingProps, t5);
      case 15:
        return On(e4, n7, n7.type, n7.pendingProps, t5);
      case 19:
        return lt(e4, n7, t5);
      case 22:
        return Bn(e4, n7, t5);
      case 24:
        return ht(n7), l5 = gt(pu), null === e4 ? (null === (o6 = kt()) && (o6 = Tu, u5 = vt(), o6.pooledCache = u5, u5.refCount++, null !== u5 && (o6.pooledCacheLanes |= t5), o6 = u5), n7.memoizedState = { parent: l5, cache: o6 }, V(n7), st(0, pu, o6)) : (0 != (e4.lanes & t5) && ($(e4, n7), X(n7, null, null, t5), K()), o6 = e4.memoizedState, u5 = n7.memoizedState, o6.parent !== l5 ? (o6 = { parent: l5, cache: l5 }, n7.memoizedState = o6, 0 === n7.lanes && (n7.memoizedState = n7.updateQueue.baseState = o6), st(0, pu, l5)) : (l5 = u5.cache, st(0, pu, l5), l5 !== o6.cache && dt(n7, [pu], t5, true))), jn(e4, n7, n7.pendingProps.children, t5), n7.child;
      case 29:
        throw n7.pendingProps;
    }
    throw Error(r4(156, n7.tag));
  }
  function it() {
    su = iu = uu = null;
  }
  function st(e4, n7, t5) {
    p3(ou, n7._currentValue2), n7._currentValue2 = t5;
  }
  function ct(e4) {
    var n7 = ou.current;
    e4._currentValue2 = n7, d3(ou);
  }
  function ft(e4, n7, t5) {
    for (; null !== e4; ) {
      var r5 = e4.alternate;
      if ((e4.childLanes & n7) !== n7 ? (e4.childLanes |= n7, null !== r5 && (r5.childLanes |= n7)) : null !== r5 && (r5.childLanes & n7) !== n7 && (r5.childLanes |= n7), e4 === t5) break;
      e4 = e4.return;
    }
  }
  function dt(e4, n7, t5, l5) {
    var a6 = e4.child;
    for (null !== a6 && (a6.return = e4); null !== a6; ) {
      var o6 = a6.dependencies;
      if (null !== o6) {
        var u5 = a6.child;
        o6 = o6.firstContext;
        e: for (; null !== o6; ) {
          var i6 = o6;
          o6 = a6;
          for (var s5 = 0; s5 < n7.length; s5++) if (i6.context === n7[s5]) {
            o6.lanes |= t5, null !== (i6 = o6.alternate) && (i6.lanes |= t5), ft(o6.return, t5, e4), l5 || (u5 = null);
            break e;
          }
          o6 = i6.next;
        }
      } else if (18 === a6.tag) {
        if (null === (u5 = a6.return)) throw Error(r4(341));
        u5.lanes |= t5, null !== (o6 = u5.alternate) && (o6.lanes |= t5), ft(u5, t5, e4), u5 = null;
      } else u5 = a6.child;
      if (null !== u5) u5.return = a6;
      else for (u5 = a6; null !== u5; ) {
        if (u5 === e4) {
          u5 = null;
          break;
        }
        if (null !== (a6 = u5.sibling)) {
          a6.return = u5.return, u5 = a6;
          break;
        }
        u5 = u5.return;
      }
      a6 = u5;
    }
  }
  function pt(e4, n7, t5, l5) {
    e4 = null;
    for (var a6 = n7, o6 = false; null !== a6; ) {
      if (!o6) {
        if (0 != (524288 & a6.flags)) o6 = true;
        else if (0 != (262144 & a6.flags)) break;
      }
      if (10 === a6.tag) {
        var u5 = a6.alternate;
        if (null === u5) throw Error(r4(387));
        if (null !== (u5 = u5.memoizedProps)) {
          var i6 = a6.type;
          Ja(a6.pendingProps.value, u5.value) || (null !== e4 ? e4.push(i6) : e4 = [i6]);
        }
      } else if (a6 === uo.current) {
        if (null === (u5 = a6.alternate)) throw Error(r4(387));
        u5.memoizedState.memoizedState !== a6.memoizedState.memoizedState && (null !== e4 ? e4.push(ra) : e4 = [ra]);
      }
      a6 = a6.return;
    }
    null !== e4 && dt(n7, e4, t5, l5), n7.flags |= 262144;
  }
  function mt(e4) {
    for (e4 = e4.firstContext; null !== e4; ) {
      var n7 = e4.context;
      if (!Ja(n7._currentValue2, e4.memoizedValue)) return true;
      e4 = e4.next;
    }
    return false;
  }
  function ht(e4) {
    uu = e4, su = iu = null, null !== (e4 = e4.dependencies) && (e4.firstContext = null);
  }
  function gt(e4) {
    return bt(uu, e4);
  }
  function yt(e4, n7) {
    return null === uu && ht(e4), bt(e4, n7);
  }
  function bt(e4, n7) {
    var t5 = n7._currentValue2;
    if (su !== n7) if (n7 = { context: n7, memoizedValue: t5, next: null }, null === iu) {
      if (null === e4) throw Error(r4(308));
      iu = n7, e4.dependencies = { lanes: 0, firstContext: n7 }, e4.flags |= 524288;
    } else iu = iu.next = n7;
    return t5;
  }
  function vt() {
    return { controller: new cu(), data: /* @__PURE__ */ new Map(), refCount: 0 };
  }
  function St(e4) {
    e4.refCount--, 0 === e4.refCount && fu(du, (function() {
      e4.controller.abort();
    }));
  }
  function kt() {
    var e4 = hu.current;
    return null !== e4 ? e4 : Tu.pooledCache;
  }
  function wt(e4, n7) {
    p3(hu, null === n7 ? hu.current : n7.pool);
  }
  function xt() {
    var e4 = kt();
    return null === e4 ? null : { parent: pu._currentValue2, pool: e4 };
  }
  function zt(e4) {
    e4.flags |= 4;
  }
  function Ct(e4, n7) {
    null !== n7 && (e4.flags |= 4), 16384 & e4.flags && (n7 = 22 !== e4.tag ? b3() : 536870912, e4.lanes |= n7);
  }
  function Et(e4, n7) {
    switch (e4.tailMode) {
      case "hidden":
        n7 = e4.tail;
        for (var t5 = null; null !== n7; ) null !== n7.alternate && (t5 = n7), n7 = n7.sibling;
        null === t5 ? e4.tail = null : t5.sibling = null;
        break;
      case "collapsed":
        t5 = e4.tail;
        for (var r5 = null; null !== t5; ) null !== t5.alternate && (r5 = t5), t5 = t5.sibling;
        null === r5 ? n7 || null === e4.tail ? e4.tail = null : e4.tail.sibling = null : r5.sibling = null;
    }
  }
  function Pt(e4) {
    var n7 = null !== e4.alternate && e4.alternate.child === e4.child, t5 = 0, r5 = 0;
    if (n7) for (var l5 = e4.child; null !== l5; ) t5 |= l5.lanes | l5.childLanes, r5 |= 31457280 & l5.subtreeFlags, r5 |= 31457280 & l5.flags, l5.return = e4, l5 = l5.sibling;
    else for (l5 = e4.child; null !== l5; ) t5 |= l5.lanes | l5.childLanes, r5 |= l5.subtreeFlags, r5 |= l5.flags, l5.return = e4, l5 = l5.sibling;
    return e4.subtreeFlags |= r5, e4.childLanes = t5, n7;
  }
  function _t(e4, n7, t5) {
    var l5 = n7.pendingProps;
    switch (E(n7), n7.tag) {
      case 16:
      case 15:
      case 0:
      case 11:
      case 7:
      case 8:
      case 12:
      case 9:
      case 14:
      case 1:
        return Pt(n7), null;
      case 3:
        return t5 = n7.stateNode, l5 = null, null !== e4 && (l5 = e4.memoizedState.cache), n7.memoizedState.cache !== l5 && (n7.flags |= 2048), ct(pu), _(), t5.pendingContext && (t5.context = t5.pendingContext, t5.pendingContext = null), null !== e4 && null !== e4.child || null === e4 || e4.memoizedState.isDehydrated && 0 == (256 & n7.flags) || (n7.flags |= 1024, null !== so && (yr(so), so = null)), Pt(n7), null;
      case 26:
        var a6;
      case 27:
      case 5:
        if (T(n7), t5 = n7.type, null !== e4 && null != n7.stateNode) !(function(e5, n8, t6, r5) {
          e5.memoizedProps !== r5 && zt(n8);
        })(e4, n7, 0, l5);
        else {
          if (!l5) {
            if (null === n7.stateNode) throw Error(r4(166));
            return Pt(n7), null;
          }
          e4 = lo.current, (function(e5, n8, t6, r5) {
            for (t6 = n8.child; null !== t6; ) {
              if (5 === t6.tag || 6 === t6.tag) Fl(e5, t6.stateNode);
              else if (4 !== t6.tag && !Ra && null !== t6.child) {
                t6.child.return = t6, t6 = t6.child;
                continue;
              }
              if (t6 === n8) break;
              for (; null === t6.sibling; ) {
                if (null === t6.return || t6.return === n8) return;
                t6 = t6.return;
              }
              t6.sibling.return = t6.return, t6 = t6.sibling;
            }
          })(a6 = Il(t5, l5, oo.current, e4, n7), n7, false), n7.stateNode = a6, Ml(a6, t5, l5, e4) && zt(n7);
        }
        return Pt(n7), (function(e5, n8, t6) {
          if (Kl(n8, t6)) {
            if (e5.flags |= 16777216, !Xl(n8, t6)) {
              if (!zr()) throw To = Ro, _o;
              e5.flags |= 8192;
            }
          } else e5.flags &= -16777217;
        })(n7, n7.type, n7.pendingProps), null;
      case 6:
        if (e4 && null != n7.stateNode) (t5 = e4.memoizedProps) !== l5 && zt(n7);
        else {
          if ("string" != typeof l5 && null === n7.stateNode) throw Error(r4(166));
          e4 = oo.current, t5 = lo.current, n7.stateNode = Hl(l5, e4, t5, n7);
        }
        return Pt(n7), null;
      case 13:
        if (l5 = n7.memoizedState, null === e4 || null !== e4.memoizedState && null !== e4.memoizedState.dehydrated) {
          if (a6 = false, null !== l5 && null !== l5.dehydrated) {
            if (null === e4) {
              if (!a6) throw Error(r4(318));
              throw Error(r4(344));
            }
            0 == (128 & n7.flags) && (n7.memoizedState = null), n7.flags |= 4, Pt(n7), a6 = false;
          } else null !== so && (yr(so), so = null), a6 = true;
          if (!a6) return 256 & n7.flags ? (ye(n7), n7) : (ye(n7), null);
        }
        if (ye(n7), 0 != (128 & n7.flags)) return n7.lanes = t5, n7;
        if (t5 = null !== l5, e4 = null !== e4 && null !== e4.memoizedState, t5) {
          a6 = null, null !== (l5 = n7.child).alternate && null !== l5.alternate.memoizedState && null !== l5.alternate.memoizedState.cachePool && (a6 = l5.alternate.memoizedState.cachePool.pool);
          var o6 = null;
          null !== l5.memoizedState && null !== l5.memoizedState.cachePool && (o6 = l5.memoizedState.cachePool.pool), o6 !== a6 && (l5.flags |= 2048);
        }
        return t5 !== e4 && t5 && (n7.child.flags |= 8192), Ct(n7, n7.updateQueue), Pt(n7), null;
      case 4:
        return _(), null === e4 && Vl(n7.stateNode.containerInfo), Pt(n7), null;
      case 10:
        return ct(n7.type), Pt(n7), null;
      case 19:
        if (d3(Ho), null === (a6 = n7.memoizedState)) return Pt(n7), null;
        if (l5 = 0 != (128 & n7.flags), null === (o6 = a6.rendering)) if (l5) Et(a6, false);
        else {
          if (0 !== Wu || null !== e4 && 0 != (128 & e4.flags)) for (e4 = n7.child; null !== e4; ) {
            if (null !== (o6 = be(e4))) {
              for (n7.flags |= 128, Et(a6, false), e4 = o6.updateQueue, n7.updateQueue = e4, Ct(n7, e4), n7.subtreeFlags = 0, e4 = t5, t5 = n7.child; null !== t5; ) Gr(t5, e4), t5 = t5.sibling;
              return p3(Ho, 1 & Ho.current | 2), n7.child;
            }
            e4 = e4.sibling;
          }
          null !== a6.tail && Qa() > Yu && (n7.flags |= 128, l5 = true, Et(a6, false), n7.lanes = 4194304);
        }
        else {
          if (!l5) if (null !== (e4 = be(o6))) {
            if (n7.flags |= 128, l5 = true, e4 = e4.updateQueue, n7.updateQueue = e4, Ct(n7, e4), Et(a6, true), null === a6.tail && "hidden" === a6.tailMode && !o6.alternate) return Pt(n7), null;
          } else 2 * Qa() - a6.renderingStartTime > Yu && 536870912 !== t5 && (n7.flags |= 128, l5 = true, Et(a6, false), n7.lanes = 4194304);
          a6.isBackwards ? (o6.sibling = n7.child, n7.child = o6) : (null !== (e4 = a6.last) ? e4.sibling = o6 : n7.child = o6, a6.last = o6);
        }
        return null !== a6.tail ? (n7 = a6.tail, a6.rendering = n7, a6.tail = n7.sibling, a6.renderingStartTime = Qa(), n7.sibling = null, e4 = Ho.current, p3(Ho, l5 ? 1 & e4 | 2 : 1 & e4), n7) : (Pt(n7), null);
      case 22:
      case 23:
        return ye(n7), pe(), l5 = null !== n7.memoizedState, null !== e4 ? null !== e4.memoizedState !== l5 && (n7.flags |= 8192) : l5 && (n7.flags |= 8192), l5 ? 0 != (536870912 & t5) && 0 == (128 & n7.flags) && (Pt(n7), 6 & n7.subtreeFlags && (n7.flags |= 8192)) : Pt(n7), null !== (t5 = n7.updateQueue) && Ct(n7, t5.retryQueue), t5 = null, null !== e4 && null !== e4.memoizedState && null !== e4.memoizedState.cachePool && (t5 = e4.memoizedState.cachePool.pool), l5 = null, null !== n7.memoizedState && null !== n7.memoizedState.cachePool && (l5 = n7.memoizedState.cachePool.pool), l5 !== t5 && (n7.flags |= 2048), null !== e4 && d3(hu), null;
      case 24:
        return t5 = null, null !== e4 && (t5 = e4.memoizedState.cache), n7.memoizedState.cache !== t5 && (n7.flags |= 2048), ct(pu), Pt(n7), null;
      case 25:
        return null;
    }
    throw Error(r4(156, n7.tag));
  }
  function Rt(e4, n7) {
    switch (E(n7), n7.tag) {
      case 1:
        return 65536 & (e4 = n7.flags) ? (n7.flags = -65537 & e4 | 128, n7) : null;
      case 3:
        return ct(pu), _(), 0 != (65536 & (e4 = n7.flags)) && 0 == (128 & e4) ? (n7.flags = -65537 & e4 | 128, n7) : null;
      case 26:
      case 27:
      case 5:
        return T(n7), null;
      case 13:
        if (ye(n7), null !== (e4 = n7.memoizedState) && null !== e4.dehydrated && null === n7.alternate) throw Error(r4(340));
        return 65536 & (e4 = n7.flags) ? (n7.flags = -65537 & e4 | 128, n7) : null;
      case 19:
        return d3(Ho), null;
      case 4:
        return _(), null;
      case 10:
        return ct(n7.type), null;
      case 22:
      case 23:
        return ye(n7), pe(), null !== e4 && d3(hu), 65536 & (e4 = n7.flags) ? (n7.flags = -65537 & e4 | 128, n7) : null;
      case 24:
        return ct(pu), null;
      default:
        return null;
    }
  }
  function Tt(e4, n7) {
    switch (E(n7), n7.tag) {
      case 3:
        ct(pu), _();
        break;
      case 26:
      case 27:
      case 5:
        T(n7);
        break;
      case 4:
        _();
        break;
      case 13:
        ye(n7);
        break;
      case 19:
        d3(Ho);
        break;
      case 10:
        ct(n7.type);
        break;
      case 22:
      case 23:
        ye(n7), pe(), null !== e4 && d3(hu);
        break;
      case 24:
        ct(pu);
    }
  }
  function Nt(e4, n7) {
    try {
      var t5 = n7.updateQueue, r5 = null !== t5 ? t5.lastEffect : null;
      if (null !== r5) {
        var l5 = r5.next;
        t5 = l5;
        do {
          if ((t5.tag & e4) === e4) {
            r5 = void 0;
            var a6 = t5.create, o6 = t5.inst;
            r5 = a6(), o6.destroy = r5;
          }
          t5 = t5.next;
        } while (t5 !== l5);
      }
    } catch (e5) {
      jr(n7, n7.return, e5);
    }
  }
  function Lt(e4, n7, t5) {
    try {
      var r5 = n7.updateQueue, l5 = null !== r5 ? r5.lastEffect : null;
      if (null !== l5) {
        var a6 = l5.next;
        r5 = a6;
        do {
          if ((r5.tag & e4) === e4) {
            var o6 = r5.inst, u5 = o6.destroy;
            if (void 0 !== u5) {
              o6.destroy = void 0, l5 = n7;
              var i6 = t5;
              try {
                u5();
              } catch (e5) {
                jr(l5, i6, e5);
              }
            }
          }
          r5 = r5.next;
        } while (r5 !== a6);
      }
    } catch (e5) {
      jr(n7, n7.return, e5);
    }
  }
  function Ut(e4) {
    var n7 = e4.updateQueue;
    if (null !== n7) {
      var t5 = e4.stateNode;
      try {
        ee(n7, t5);
      } catch (n8) {
        jr(e4, e4.return, n8);
      }
    }
  }
  function Dt(e4, n7, t5) {
    t5.props = Dn(e4.type, e4.memoizedProps), t5.state = e4.memoizedState;
    try {
      t5.componentWillUnmount();
    } catch (t6) {
      jr(e4, n7, t6);
    }
  }
  function It(e4, n7) {
    try {
      var t5 = e4.ref;
      if (null !== t5) {
        var r5 = e4.stateNode;
        switch (e4.tag) {
          case 26:
          case 27:
          case 5:
            var l5 = Tl(r5);
            break;
          default:
            l5 = r5;
        }
        "function" == typeof t5 ? e4.refCleanup = t5(l5) : t5.current = l5;
      }
    } catch (t6) {
      jr(e4, n7, t6);
    }
  }
  function Ft(e4, n7) {
    var t5 = e4.ref, r5 = e4.refCleanup;
    if (null !== t5) if ("function" == typeof r5) try {
      r5();
    } catch (t6) {
      jr(e4, n7, t6);
    } finally {
      e4.refCleanup = null, null != (e4 = e4.alternate) && (e4.refCleanup = null);
    }
    else if ("function" == typeof t5) try {
      t5(null);
    } catch (t6) {
      jr(e4, n7, t6);
    }
    else t5.current = null;
  }
  function Mt(e4) {
    var n7 = e4.type, t5 = e4.memoizedProps, r5 = e4.stateNode;
    try {
      ia(r5, n7, t5, e4);
    } catch (n8) {
      jr(e4, e4.return, n8);
    }
  }
  function Wt(e4) {
    return 5 === e4.tag || 3 === e4.tag || 4 === e4.tag;
  }
  function Ht(e4) {
    e: for (; ; ) {
      for (; null === e4.sibling; ) {
        if (null === e4.return || Wt(e4.return)) return null;
        e4 = e4.return;
      }
      for (e4.sibling.return = e4.return, e4 = e4.sibling; 5 !== e4.tag && 6 !== e4.tag && 18 !== e4.tag; ) {
        if (2 & e4.flags) continue e;
        if (null === e4.child || 4 === e4.tag) continue e;
        e4.child.return = e4, e4 = e4.child;
      }
      if (!(2 & e4.flags)) return e4.stateNode;
    }
  }
  function jt(e4, n7, t5) {
    var r5 = e4.tag;
    if (5 === r5 || 6 === r5) e4 = e4.stateNode, n7 ? fa(t5, e4, n7) : oa(t5, e4);
    else if (4 !== r5 && !Ra && null !== (e4 = e4.child)) for (jt(e4, n7, t5), e4 = e4.sibling; null !== e4; ) jt(e4, n7, t5), e4 = e4.sibling;
  }
  function At(e4, n7, t5) {
    var r5 = e4.tag;
    if (5 === r5 || 6 === r5) e4 = e4.stateNode, n7 ? ca(t5, e4, n7) : aa(t5, e4);
    else if (4 !== r5 && !Ra && null !== (e4 = e4.child)) for (At(e4, n7, t5), e4 = e4.sibling; null !== e4; ) At(e4, n7, t5), e4 = e4.sibling;
  }
  function Qt(e4, n7, t5) {
    var r5 = t5.flags;
    switch (t5.tag) {
      case 0:
      case 11:
      case 15:
        Kt(e4, t5), 4 & r5 && Nt(5, t5);
        break;
      case 1:
        if (Kt(e4, t5), 4 & r5) if (e4 = t5.stateNode, null === n7) try {
          e4.componentDidMount();
        } catch (e5) {
          jr(t5, t5.return, e5);
        }
        else {
          var l5 = Dn(t5.type, n7.memoizedProps);
          n7 = n7.memoizedState;
          try {
            e4.componentDidUpdate(l5, n7, e4.__reactInternalSnapshotBeforeUpdate);
          } catch (e5) {
            jr(t5, t5.return, e5);
          }
        }
        64 & r5 && Ut(t5), 512 & r5 && It(t5, t5.return);
        break;
      case 3:
        if (Kt(e4, t5), 64 & r5 && null !== (r5 = t5.updateQueue)) {
          if (e4 = null, null !== t5.child) switch (t5.child.tag) {
            case 27:
            case 5:
              e4 = Tl(t5.child.stateNode);
              break;
            case 1:
              e4 = t5.child.stateNode;
          }
          try {
            ee(r5, e4);
          } catch (e5) {
            jr(t5, t5.return, e5);
          }
        }
        break;
      case 26:
      case 27:
      case 5:
        Kt(e4, t5), null === n7 && 4 & r5 && Mt(t5), 512 & r5 && It(t5, t5.return);
        break;
      case 12:
      case 13:
      default:
        Kt(e4, t5);
        break;
      case 22:
        if (!(l5 = null !== t5.memoizedState || gu)) {
          n7 = null !== n7 && null !== n7.memoizedState || yu;
          var a6 = gu, o6 = yu;
          gu = l5, (yu = n7) && !o6 ? Zt(e4, t5, 0 != (8772 & t5.subtreeFlags)) : Kt(e4, t5), gu = a6, yu = o6;
        }
        512 & r5 && ("manual" === t5.memoizedProps.mode ? It(t5, t5.return) : Ft(t5, t5.return));
    }
  }
  function Ot(e4) {
    var n7 = e4.alternate;
    null !== n7 && (e4.alternate = null, Ot(n7)), e4.child = null, e4.deletions = null, e4.sibling = null, 5 === e4.tag && null !== (n7 = e4.stateNode) && Jl(n7), e4.stateNode = null, e4.return = null, e4.dependencies = null, e4.memoizedProps = null, e4.memoizedState = null, e4.pendingProps = null, e4.stateNode = null, e4.updateQueue = null;
  }
  function Bt(e4, n7, t5) {
    for (t5 = t5.child; null !== t5; ) Vt(e4, n7, t5), t5 = t5.sibling;
  }
  function Vt(e4, n7, t5) {
    switch (t5.tag) {
      case 26:
      case 27:
        var r5, l5;
      case 5:
        yu || Ft(t5, n7);
      case 6:
        if (r5 = wu, l5 = xu, wu = null, Bt(e4, n7, t5), xu = l5, null !== (wu = r5)) if (xu) try {
          pa(wu, t5.stateNode);
        } catch (e5) {
          jr(t5, n7, e5);
        }
        else try {
          da(wu, t5.stateNode);
        } catch (e5) {
          jr(t5, n7, e5);
        }
        break;
      case 18:
        null !== wu && (xu ? Ca(wu, t5.stateNode) : za(wu, t5.stateNode));
        break;
      case 4:
        r5 = wu, l5 = xu, wu = t5.stateNode.containerInfo, xu = true, Bt(e4, n7, t5), wu = r5, xu = l5;
        break;
      case 0:
      case 11:
      case 14:
      case 15:
        yu || Lt(2, t5, n7), yu || Lt(4, t5, n7), Bt(e4, n7, t5);
        break;
      case 1:
        yu || (Ft(t5, n7), "function" == typeof (r5 = t5.stateNode).componentWillUnmount && Dt(t5, n7, r5)), Bt(e4, n7, t5);
        break;
      case 21:
        Bt(e4, n7, t5);
        break;
      case 22:
        Ft(t5, n7), yu = (r5 = yu) || null !== t5.memoizedState, Bt(e4, n7, t5), yu = r5;
        break;
      default:
        Bt(e4, n7, t5);
    }
  }
  function $t(e4, n7) {
    var t5 = (function(e5) {
      switch (e5.tag) {
        case 13:
        case 19:
          var n8 = e5.stateNode;
          return null === n8 && (n8 = e5.stateNode = new vu()), n8;
        case 22:
          return null === (n8 = (e5 = e5.stateNode)._retryCache) && (n8 = e5._retryCache = new vu()), n8;
        default:
          throw Error(r4(435, e5.tag));
      }
    })(e4);
    n7.forEach((function(n8) {
      var r5 = Vr.bind(null, e4, n8);
      t5.has(n8) || (t5.add(n8), n8.then(r5, r5));
    }));
  }
  function qt(e4, n7) {
    var t5 = n7.deletions;
    if (null !== t5) for (var l5 = 0; l5 < t5.length; l5++) {
      var a6 = t5[l5], o6 = e4, u5 = n7, i6 = u5;
      e: for (; null !== i6; ) {
        switch (i6.tag) {
          case 27:
          case 5:
            wu = i6.stateNode, xu = false;
            break e;
          case 3:
          case 4:
            wu = i6.stateNode.containerInfo, xu = true;
            break e;
        }
        i6 = i6.return;
      }
      if (null === wu) throw Error(r4(160));
      Vt(o6, u5, a6), wu = null, xu = false, null !== (o6 = a6.alternate) && (o6.return = null), a6.return = null;
    }
    if (13878 & n7.subtreeFlags) for (n7 = n7.child; null !== n7; ) Yt(n7, e4), n7 = n7.sibling;
  }
  function Yt(e4, n7) {
    var t5 = e4.alternate, l5 = e4.flags;
    switch (e4.tag) {
      case 0:
      case 11:
      case 14:
      case 15:
        qt(n7, e4), Gt(e4), 4 & l5 && (Lt(3, e4, e4.return), Nt(3, e4), Lt(5, e4, e4.return));
        break;
      case 1:
        qt(n7, e4), Gt(e4), 512 & l5 && null !== t5 && Ft(t5, t5.return), 64 & l5 && gu && null !== (e4 = e4.updateQueue) && null !== (l5 = e4.callbacks) && (t5 = e4.shared.hiddenCallbacks, e4.shared.hiddenCallbacks = null === t5 ? l5 : t5.concat(l5));
        break;
      case 26:
        var a6;
      case 27:
        var o6;
      case 5:
        if (qt(n7, e4), Gt(e4), 512 & l5 && null !== t5 && Ft(t5, t5.return), 32 & e4.flags) {
          n7 = e4.stateNode;
          try {
            ma(n7);
          } catch (n8) {
            jr(e4, e4.return, n8);
          }
        }
        4 & l5 && null != e4.stateNode && (function(e5, n8, t6) {
          try {
            sa(e5.stateNode, e5.type, t6, n8, e5);
          } catch (n9) {
            jr(e5, e5.return, n9);
          }
        })(e4, n7 = e4.memoizedProps, null !== t5 ? t5.memoizedProps : n7), 1024 & l5 && (bu = true);
        break;
      case 6:
        if (qt(n7, e4), Gt(e4), 4 & l5 && Ol) {
          if (null === e4.stateNode) throw Error(r4(162));
          l5 = e4.memoizedProps, t5 = null !== t5 ? t5.memoizedProps : l5, n7 = e4.stateNode;
          try {
            ua(n7, t5, l5);
          } catch (n8) {
            jr(e4, e4.return, n8);
          }
        }
        break;
      case 3:
        qt(n7, e4), Gt(e4), bu && (bu = false, Jt(e4));
        break;
      case 4:
      case 12:
        qt(n7, e4), Gt(e4);
        break;
      case 13:
        qt(n7, e4), Gt(e4), 8192 & e4.child.flags && null !== e4.memoizedState != (null !== t5 && null !== t5.memoizedState) && (qu = Qa()), 4 & l5 && null !== (l5 = e4.updateQueue) && (e4.updateQueue = null, $t(e4, l5));
        break;
      case 22:
        512 & l5 && null !== t5 && Ft(t5, t5.return), a6 = null !== e4.memoizedState;
        var u5 = null !== t5 && null !== t5.memoizedState, i6 = gu, s5 = yu;
        if (gu = i6 || a6, yu = s5 || u5, qt(n7, e4), yu = s5, gu = i6, Gt(e4), (n7 = e4.stateNode)._current = e4, n7._visibility &= -3, n7._visibility |= 2 & n7._pendingVisibility, 8192 & l5 && (n7._visibility = a6 ? -2 & n7._visibility : 1 | n7._visibility, a6 && (n7 = gu || yu, null === t5 || u5 || n7 || Xt(e4)), null === e4.memoizedProps || "manual" !== e4.memoizedProps.mode)) {
          e: if (t5 = null, Ol) for (n7 = e4; ; ) {
            if (5 === n7.tag || Ea || Ra) {
              if (null === t5) {
                u5 = t5 = n7;
                try {
                  o6 = u5.stateNode, a6 ? ha(o6) : ya(u5.stateNode, u5.memoizedProps);
                } catch (e5) {
                  jr(u5, u5.return, e5);
                }
              }
            } else if (6 === n7.tag) {
              if (null === t5) {
                u5 = n7;
                try {
                  var c7 = u5.stateNode;
                  a6 ? ga(c7) : ba(c7, u5.memoizedProps);
                } catch (e5) {
                  jr(u5, u5.return, e5);
                }
              }
            } else if ((22 !== n7.tag && 23 !== n7.tag || null === n7.memoizedState || n7 === e4) && null !== n7.child) {
              n7.child.return = n7, n7 = n7.child;
              continue;
            }
            if (n7 === e4) break e;
            for (; null === n7.sibling; ) {
              if (null === n7.return || n7.return === e4) break e;
              t5 === n7 && (t5 = null), n7 = n7.return;
            }
            t5 === n7 && (t5 = null), n7.sibling.return = n7.return, n7 = n7.sibling;
          }
        }
        4 & l5 && null !== (l5 = e4.updateQueue) && null !== (t5 = l5.retryQueue) && (l5.retryQueue = null, $t(e4, t5));
        break;
      case 19:
        qt(n7, e4), Gt(e4), 4 & l5 && null !== (l5 = e4.updateQueue) && (e4.updateQueue = null, $t(e4, l5));
        break;
      case 21:
        break;
      default:
        qt(n7, e4), Gt(e4);
    }
  }
  function Gt(e4) {
    var n7 = e4.flags;
    if (2 & n7) {
      try {
        if (Ol && (!Ra || 27 !== e4.tag)) {
          e: {
            for (var t5 = e4.return; null !== t5; ) {
              if (Wt(t5)) {
                var l5 = t5;
                break e;
              }
              t5 = t5.return;
            }
            throw Error(r4(160));
          }
          switch (l5.tag) {
            case 27:
            case 5:
              var a6 = l5.stateNode;
              32 & l5.flags && (ma(a6), l5.flags &= -33), At(e4, Ht(e4), a6);
              break;
            case 3:
            case 4:
              var o6 = l5.stateNode.containerInfo;
              jt(e4, Ht(e4), o6);
              break;
            default:
              throw Error(r4(161));
          }
        }
      } catch (n8) {
        jr(e4, e4.return, n8);
      }
      e4.flags &= -3;
    }
    4096 & n7 && (e4.flags &= -4097);
  }
  function Jt(e4) {
    if (1024 & e4.subtreeFlags) for (e4 = e4.child; null !== e4; ) {
      var n7 = e4;
      Jt(n7), 5 === n7.tag && 1024 & n7.flags && la(n7.stateNode), e4 = e4.sibling;
    }
  }
  function Kt(e4, n7) {
    if (8772 & n7.subtreeFlags) for (n7 = n7.child; null !== n7; ) Qt(e4, n7.alternate, n7), n7 = n7.sibling;
  }
  function Xt(e4) {
    for (e4 = e4.child; null !== e4; ) {
      var n7 = e4;
      switch (n7.tag) {
        case 0:
        case 11:
        case 14:
        case 15:
          Lt(4, n7, n7.return), Xt(n7);
          break;
        case 1:
          Ft(n7, n7.return);
          var t5 = n7.stateNode;
          "function" == typeof t5.componentWillUnmount && Dt(n7, n7.return, t5), Xt(n7);
          break;
        case 26:
        case 27:
        case 5:
          Ft(n7, n7.return), Xt(n7);
          break;
        case 22:
          Ft(n7, n7.return), null === n7.memoizedState && Xt(n7);
          break;
        default:
          Xt(n7);
      }
      e4 = e4.sibling;
    }
  }
  function Zt(e4, n7, t5) {
    for (t5 = t5 && 0 != (8772 & n7.subtreeFlags), n7 = n7.child; null !== n7; ) {
      var r5 = n7.alternate, l5 = e4, a6 = n7, o6 = a6.flags;
      switch (a6.tag) {
        case 0:
        case 11:
        case 15:
          Zt(l5, a6, t5), Nt(4, a6);
          break;
        case 1:
          if (Zt(l5, a6, t5), "function" == typeof (l5 = (r5 = a6).stateNode).componentDidMount) try {
            l5.componentDidMount();
          } catch (e5) {
            jr(r5, r5.return, e5);
          }
          if (null !== (l5 = (r5 = a6).updateQueue)) {
            var u5 = r5.stateNode;
            try {
              var i6 = l5.shared.hiddenCallbacks;
              if (null !== i6) for (l5.shared.hiddenCallbacks = null, l5 = 0; l5 < i6.length; l5++) Z(i6[l5], u5);
            } catch (e5) {
              jr(r5, r5.return, e5);
            }
          }
          t5 && 64 & o6 && Ut(a6), It(a6, a6.return);
          break;
        case 26:
        case 27:
        case 5:
          Zt(l5, a6, t5), t5 && null === r5 && 4 & o6 && Mt(a6), It(a6, a6.return);
          break;
        case 12:
        case 13:
        default:
          Zt(l5, a6, t5);
          break;
        case 22:
          null === a6.memoizedState && Zt(l5, a6, t5), It(a6, a6.return);
      }
      n7 = n7.sibling;
    }
  }
  function er(e4, n7) {
    var t5 = null;
    null !== e4 && null !== e4.memoizedState && null !== e4.memoizedState.cachePool && (t5 = e4.memoizedState.cachePool.pool), e4 = null, null !== n7.memoizedState && null !== n7.memoizedState.cachePool && (e4 = n7.memoizedState.cachePool.pool), e4 !== t5 && (null != e4 && e4.refCount++, null != t5 && St(t5));
  }
  function nr(e4, n7) {
    e4 = null, null !== n7.alternate && (e4 = n7.alternate.memoizedState.cache), (n7 = n7.memoizedState.cache) !== e4 && (n7.refCount++, null != e4 && St(e4));
  }
  function tr(e4, n7, t5, r5) {
    if (10256 & n7.subtreeFlags) for (n7 = n7.child; null !== n7; ) rr(e4, n7, t5, r5), n7 = n7.sibling;
  }
  function rr(e4, n7, t5, r5) {
    var l5 = n7.flags;
    switch (n7.tag) {
      case 0:
      case 11:
      case 15:
        tr(e4, n7, t5, r5), 2048 & l5 && Nt(9, n7);
        break;
      case 3:
        tr(e4, n7, t5, r5), 2048 & l5 && (e4 = null, null !== n7.alternate && (e4 = n7.alternate.memoizedState.cache), (n7 = n7.memoizedState.cache) !== e4 && (n7.refCount++, null != e4 && St(e4)));
        break;
      case 12:
        if (2048 & l5) {
          tr(e4, n7, t5, r5), e4 = n7.stateNode;
          try {
            var a6 = n7.memoizedProps, o6 = a6.id, u5 = a6.onPostCommit;
            "function" == typeof u5 && u5(o6, null === n7.alternate ? "mount" : "update", e4.passiveEffectDuration, -0);
          } catch (e5) {
            jr(n7, n7.return, e5);
          }
        } else tr(e4, n7, t5, r5);
        break;
      case 23:
        break;
      case 22:
        a6 = n7.stateNode, null !== n7.memoizedState ? 4 & a6._visibility ? tr(e4, n7, t5, r5) : ar(e4, n7) : 4 & a6._visibility ? tr(e4, n7, t5, r5) : (a6._visibility |= 4, lr(e4, n7, t5, r5, 0 != (10256 & n7.subtreeFlags))), 2048 & l5 && er(n7.alternate, n7);
        break;
      case 24:
        tr(e4, n7, t5, r5), 2048 & l5 && nr(n7.alternate, n7);
        break;
      default:
        tr(e4, n7, t5, r5);
    }
  }
  function lr(e4, n7, t5, r5, l5) {
    for (l5 = l5 && 0 != (10256 & n7.subtreeFlags), n7 = n7.child; null !== n7; ) {
      var a6 = e4, o6 = n7, u5 = t5, i6 = r5, s5 = o6.flags;
      switch (o6.tag) {
        case 0:
        case 11:
        case 15:
          lr(a6, o6, u5, i6, l5), Nt(8, o6);
          break;
        case 23:
          break;
        case 22:
          var c7 = o6.stateNode;
          null !== o6.memoizedState ? 4 & c7._visibility ? lr(a6, o6, u5, i6, l5) : ar(a6, o6) : (c7._visibility |= 4, lr(a6, o6, u5, i6, l5)), l5 && 2048 & s5 && er(o6.alternate, o6);
          break;
        case 24:
          lr(a6, o6, u5, i6, l5), l5 && 2048 & s5 && nr(o6.alternate, o6);
          break;
        default:
          lr(a6, o6, u5, i6, l5);
      }
      n7 = n7.sibling;
    }
  }
  function ar(e4, n7) {
    if (10256 & n7.subtreeFlags) for (n7 = n7.child; null !== n7; ) {
      var t5 = e4, r5 = n7, l5 = r5.flags;
      switch (r5.tag) {
        case 22:
          ar(t5, r5), 2048 & l5 && er(r5.alternate, r5);
          break;
        case 24:
          ar(t5, r5), 2048 & l5 && nr(r5.alternate, r5);
          break;
        default:
          ar(t5, r5);
      }
      n7 = n7.sibling;
    }
  }
  function or(e4) {
    if (e4.subtreeFlags & Cu) for (e4 = e4.child; null !== e4; ) ur(e4), e4 = e4.sibling;
  }
  function ur(e4) {
    switch (e4.tag) {
      case 26:
        or(e4), e4.flags & Cu && (null !== e4.memoizedState ? _a2(zu, e4.memoizedState, e4.memoizedProps) : ea(e4.type, e4.memoizedProps));
        break;
      case 5:
        or(e4), e4.flags & Cu && ea(e4.type, e4.memoizedProps);
        break;
      case 3:
      case 4:
        var n7;
        or(e4);
        break;
      case 22:
        null === e4.memoizedState && (null !== (n7 = e4.alternate) && null !== n7.memoizedState ? (n7 = Cu, Cu = 16777216, or(e4), Cu = n7) : or(e4));
        break;
      default:
        or(e4);
    }
  }
  function ir(e4) {
    var n7 = e4.alternate;
    if (null !== n7 && null !== (e4 = n7.child)) {
      n7.child = null;
      do {
        n7 = e4.sibling, e4.sibling = null, e4 = n7;
      } while (null !== e4);
    }
  }
  function sr(e4) {
    var n7 = e4.deletions;
    if (0 != (16 & e4.flags)) {
      if (null !== n7) for (var t5 = 0; t5 < n7.length; t5++) {
        var r5 = n7[t5];
        Su = r5, dr(r5, e4);
      }
      ir(e4);
    }
    if (10256 & e4.subtreeFlags) for (e4 = e4.child; null !== e4; ) cr(e4), e4 = e4.sibling;
  }
  function cr(e4) {
    switch (e4.tag) {
      case 0:
      case 11:
      case 15:
        sr(e4), 2048 & e4.flags && Lt(9, e4, e4.return);
        break;
      case 3:
      case 12:
      default:
        sr(e4);
        break;
      case 22:
        var n7 = e4.stateNode;
        null !== e4.memoizedState && 4 & n7._visibility && (null === e4.return || 13 !== e4.return.tag) ? (n7._visibility &= -5, fr(e4)) : sr(e4);
    }
  }
  function fr(e4) {
    var n7 = e4.deletions;
    if (0 != (16 & e4.flags)) {
      if (null !== n7) for (var t5 = 0; t5 < n7.length; t5++) {
        var r5 = n7[t5];
        Su = r5, dr(r5, e4);
      }
      ir(e4);
    }
    for (e4 = e4.child; null !== e4; ) {
      switch ((n7 = e4).tag) {
        case 0:
        case 11:
        case 15:
          Lt(8, n7, n7.return), fr(n7);
          break;
        case 22:
          4 & (t5 = n7.stateNode)._visibility && (t5._visibility &= -5, fr(n7));
          break;
        default:
          fr(n7);
      }
      e4 = e4.sibling;
    }
  }
  function dr(e4, n7) {
    for (; null !== Su; ) {
      var t5 = Su;
      switch (t5.tag) {
        case 0:
        case 11:
        case 15:
          Lt(8, t5, n7);
          break;
        case 23:
        case 22:
          if (null !== t5.memoizedState && null !== t5.memoizedState.cachePool) {
            var r5 = t5.memoizedState.cachePool.pool;
            null != r5 && r5.refCount++;
          }
          break;
        case 24:
          St(t5.memoizedState.cache);
      }
      if (null !== (r5 = t5.child)) r5.return = t5, Su = r5;
      else e: for (t5 = e4; null !== Su; ) {
        var l5 = (r5 = Su).sibling, a6 = r5.return;
        if (Ot(r5), r5 === t5) {
          Su = null;
          break e;
        }
        if (null !== l5) {
          l5.return = a6, Su = l5;
          break e;
        }
        Su = a6;
      }
    }
  }
  function pr() {
    return 0 != (2 & Ru) && 0 !== Lu ? Lu & -Lu : null !== Pl.T ? 0 !== wo ? wo : O() : Yl();
  }
  function mr() {
    0 === Qu && (Qu = 0 == (536870912 & Lu) || io ? y3() : 536870912);
    var e4 = Mo.current;
    return null !== e4 && (e4.flags |= 32), Qu;
  }
  function hr(e4, n7, t5) {
    (e4 === Tu && 2 === Uu || null !== e4.cancelPendingCommit) && (wr(e4, 0), Sr(e4, Lu, Qu)), S3(e4, t5), 0 != (2 & Ru) && e4 === Tu || (e4 === Tu && (0 == (2 & Ru) && (ju |= t5), 4 === Wu && Sr(e4, Lu, Qu)), M(e4));
  }
  function gr(e4, n7, t5) {
    if (0 != (6 & Ru)) throw Error(r4(327));
    var l5 = (t5 = !t5 && 0 == (60 & n7) && 0 == (n7 & e4.expiredLanes)) ? (function(e5, n8) {
      var t6 = Ru;
      Ru |= 2;
      var l6 = Cr(), a7 = Er();
      Tu === e5 && Lu === n8 || (Gu = null, Yu = Qa() + 500, wr(e5, n8));
      e: for (; ; ) try {
        if (0 !== Uu && null !== Nu) {
          n8 = Nu;
          var o7 = Du;
          n: switch (Uu) {
            case 1:
            case 6:
              Uu = 0, Du = null, Ur(e5, n8, o7);
              break;
            case 2:
              if (te(o7)) {
                Uu = 0, Du = null, Lr(n8);
                break;
              }
              n8 = function() {
                2 === Uu && Tu === e5 && (Uu = 7), M(e5);
              }, o7.then(n8, n8);
              break e;
            case 3:
              Uu = 7;
              break e;
            case 4:
              Uu = 5;
              break e;
            case 7:
              te(o7) ? (Uu = 0, Du = null, Lr(n8)) : (Uu = 0, Du = null, Ur(e5, n8, o7));
              break;
            case 5:
              var u6 = null;
              switch (Nu.tag) {
                case 26:
                  u6 = Nu.memoizedState;
                case 5:
                case 27:
                  var i7 = Nu, s5 = i7.type, c7 = i7.pendingProps;
                  if (u6 ? Pa(u6) : Xl(s5, c7)) {
                    Uu = 0, Du = null;
                    var f5 = i7.sibling;
                    if (null !== f5) Nu = f5;
                    else {
                      var d4 = i7.return;
                      null !== d4 ? (Nu = d4, Dr(d4)) : Nu = null;
                    }
                    break n;
                  }
              }
              Uu = 0, Du = null, Ur(e5, n8, o7);
              break;
            case 8:
              kr(), Wu = 6;
              break e;
            default:
              throw Error(r4(462));
          }
        }
        Tr();
        break;
      } catch (n9) {
        xr(e5, n9);
      }
      return it(), Pl.H = l6, Pl.A = a7, Ru = t6, null !== Nu ? 0 : (Tu = null, Lu = 0, N(), Wu);
    })(e4, n7) : _r(e4, n7);
    if (0 !== l5) for (var a6 = t5; ; ) {
      if (6 === l5) Sr(e4, n7, 0);
      else {
        if (t5 = e4.current.alternate, a6 && !vr(t5)) {
          l5 = _r(e4, n7), a6 = false;
          continue;
        }
        if (2 === l5) {
          if (a6 = n7, e4.errorRecoveryDisabledLanes & a6) var o6 = 0;
          else o6 = 0 != (o6 = -536870913 & e4.pendingLanes) ? o6 : 536870912 & o6 ? 536870912 : 0;
          if (0 !== o6) {
            n7 = o6;
            e: {
              var u5 = e4;
              l5 = Bu;
              var i6 = Bl;
              if (i6 && (wr(u5, o6).flags |= 256), 2 !== (o6 = _r(u5, o6))) {
                if (Fu && !i6) {
                  u5.errorRecoveryDisabledLanes |= a6, ju |= a6, l5 = 4;
                  break e;
                }
                a6 = Vu, Vu = l5, null !== a6 && yr(a6);
              }
              l5 = o6;
            }
            if (a6 = false, 2 !== l5) continue;
          }
        }
        if (1 === l5) {
          wr(e4, 0), Sr(e4, n7, 0);
          break;
        }
        e: {
          switch (a6 = e4, l5) {
            case 0:
            case 1:
              throw Error(r4(345));
            case 4:
              if ((4194176 & n7) === n7) {
                Sr(a6, n7, Qu);
                break e;
              }
              break;
            case 2:
              Vu = null;
              break;
            case 3:
            case 5:
              break;
            default:
              throw Error(r4(329));
          }
          if (a6.finishedWork = t5, a6.finishedLanes = n7, (62914560 & n7) === n7 && 10 < (l5 = qu + 300 - Qa())) {
            if (Sr(a6, n7, Qu), 0 !== h4(a6, 0)) break e;
            a6.timeoutHandle = jl(br.bind(null, a6, t5, Vu, Gu, $u, n7, Qu, ju, Ou, Iu, 2, -0, 0), l5);
          } else br(a6, t5, Vu, Gu, $u, n7, Qu, ju, Ou, Iu, 0, -0, 0);
        }
      }
      break;
    }
    M(e4);
  }
  function yr(e4) {
    null === Vu ? Vu = e4 : Vu.push.apply(Vu, e4);
  }
  function br(e4, n7, t5, r5, l5, a6, o6, u5, i6, s5, c7, f5, d4) {
    if ((8192 & (s5 = n7.subtreeFlags) || 16785408 == (16785408 & s5)) && (Zl(), ur(n7), null !== (n7 = na()))) return e4.cancelPendingCommit = n7(Fr.bind(null, e4, t5, r5, l5, o6, u5, i6, 1, f5, d4)), void Sr(e4, a6, o6);
    Fr(e4, t5, r5, l5, o6);
  }
  function vr(e4) {
    for (var n7 = e4; ; ) {
      var t5 = n7.tag;
      if ((0 === t5 || 11 === t5 || 15 === t5) && 16384 & n7.flags && null !== (t5 = n7.updateQueue) && null !== (t5 = t5.stores)) for (var r5 = 0; r5 < t5.length; r5++) {
        var l5 = t5[r5], a6 = l5.getSnapshot;
        l5 = l5.value;
        try {
          if (!Ja(a6(), l5)) return false;
        } catch (e5) {
          return false;
        }
      }
      if (t5 = n7.child, 16384 & n7.subtreeFlags && null !== t5) t5.return = n7, n7 = t5;
      else {
        if (n7 === e4) break;
        for (; null === n7.sibling; ) {
          if (null === n7.return || n7.return === e4) return true;
          n7 = n7.return;
        }
        n7.sibling.return = n7.return, n7 = n7.sibling;
      }
    }
    return true;
  }
  function Sr(e4, n7, t5) {
    n7 &= ~Au, n7 &= ~ju, e4.suspendedLanes |= n7, e4.pingedLanes &= ~n7;
    for (var r5 = e4.expirationTimes, l5 = n7; 0 < l5; ) {
      var a6 = 31 - Ua(l5), o6 = 1 << a6;
      r5[a6] = -1, l5 &= ~o6;
    }
    0 !== t5 && k3(e4, t5, n7);
  }
  function kr() {
    if (null !== Nu) {
      if (0 === Uu) var e4 = Nu.return;
      else e4 = Nu, it(), Pe(e4), No = null, Lo = 0, e4 = Nu;
      for (; null !== e4; ) Tt(e4.alternate, e4), e4 = e4.return;
      Nu = null;
    }
  }
  function wr(e4, n7) {
    e4.finishedWork = null, e4.finishedLanes = 0;
    var t5 = e4.timeoutHandle;
    t5 !== Ql && (e4.timeoutHandle = Ql, Al(t5)), null !== (t5 = e4.cancelPendingCommit) && (e4.cancelPendingCommit = null, t5()), kr(), Tu = e4, Nu = t5 = Yr(e4.current, null), Lu = n7, Uu = 0, Du = null, Fu = Iu = false, Ou = Qu = Au = ju = Hu = Wu = 0, Vu = Bu = null, $u = false, 0 != (8 & n7) && (n7 |= 32 & n7);
    var r5 = e4.entangledLanes;
    if (0 !== r5) for (e4 = e4.entanglements, r5 &= n7; 0 < r5; ) {
      var l5 = 31 - Ua(r5), a6 = 1 << l5;
      n7 |= e4[l5], r5 &= ~a6;
    }
    return Mu = n7, N(), t5;
  }
  function xr(e4, n7) {
    Ao = null, Pl.H = Xo, n7 === Po ? (n7 = ae(), Uu = zr() && 0 == (134217727 & Hu) && 0 == (134217727 & ju) ? 2 : 3) : n7 === _o ? (n7 = ae(), Uu = 4) : Uu = n7 === ru ? 8 : null !== n7 && "object" == typeof n7 && "function" == typeof n7.then ? 6 : 1, Du = n7, null === Nu && (Wu = 1, In(e4, C(n7, e4.current)));
  }
  function zr() {
    var e4 = Mo.current;
    return null === e4 || ((4194176 & Lu) === Lu ? null === Wo : ((62914560 & Lu) === Lu || 0 != (536870912 & Lu)) && e4 === Wo);
  }
  function Cr() {
    var e4 = Pl.H;
    return Pl.H = Xo, null === e4 ? Xo : e4;
  }
  function Er() {
    var e4 = Pl.A;
    return Pl.A = Eu, e4;
  }
  function Pr() {
    Wu = 4, 0 == (134217727 & Hu) && 0 == (134217727 & ju) || null === Tu || Sr(Tu, Lu, Qu);
  }
  function _r(e4, n7) {
    var t5 = Ru;
    Ru |= 2;
    var l5 = Cr(), a6 = Er();
    Tu === e4 && Lu === n7 || (Gu = null, wr(e4, n7)), n7 = false;
    e: for (; ; ) try {
      if (0 !== Uu && null !== Nu) {
        var o6 = Nu, u5 = Du;
        switch (Uu) {
          case 8:
            kr(), Wu = 6;
            break e;
          case 3:
          case 2:
            n7 || null !== Mo.current || (n7 = true);
          default:
            Uu = 0, Du = null, Ur(e4, o6, u5);
        }
      }
      Rr();
      break;
    } catch (n8) {
      xr(e4, n8);
    }
    if (n7 && e4.shellSuspendCounter++, it(), Ru = t5, Pl.H = l5, Pl.A = a6, null !== Nu) throw Error(r4(261));
    return Tu = null, Lu = 0, N(), Wu;
  }
  function Rr() {
    for (; null !== Nu; ) Nr(Nu);
  }
  function Tr() {
    for (; null !== Nu && !ja(); ) Nr(Nu);
  }
  function Nr(e4) {
    var n7 = ut(e4.alternate, e4, Mu);
    e4.memoizedProps = e4.pendingProps, null === n7 ? Dr(e4) : Nu = n7;
  }
  function Lr(e4) {
    var n7 = e4, t5 = n7.alternate;
    switch (n7.tag) {
      case 15:
      case 0:
        n7 = Yn(t5, n7, n7.pendingProps, n7.type, void 0, Lu);
        break;
      case 11:
        n7 = Yn(t5, n7, n7.pendingProps, n7.type.render, n7.ref, Lu);
        break;
      case 5:
        Pe(n7);
      default:
        Tt(t5, n7), n7 = ut(t5, n7 = Nu = Gr(n7, Mu), Mu);
    }
    e4.memoizedProps = e4.pendingProps, null === n7 ? Dr(e4) : Nu = n7;
  }
  function Ur(e4, n7, t5) {
    it(), Pe(n7), No = null, Lo = 0;
    var l5 = n7.return;
    try {
      if ((function(e5, n8, t6, l6, a6) {
        if (t6.flags |= 32768, null !== l6 && "object" == typeof l6 && "function" == typeof l6.then) {
          if (null !== (n8 = t6.alternate) && pt(n8, t6, a6, true), null !== (t6 = Mo.current)) {
            switch (t6.tag) {
              case 13:
                return null === Wo ? Pr() : null === t6.alternate && 0 === Wu && (Wu = 3), t6.flags &= -257, t6.flags |= 65536, t6.lanes = a6, l6 === Ro ? t6.flags |= 16384 : (null === (n8 = t6.updateQueue) ? t6.updateQueue = /* @__PURE__ */ new Set([l6]) : n8.add(l6), Ar(e5, l6, a6)), false;
              case 22:
                return t6.flags |= 65536, l6 === Ro ? t6.flags |= 16384 : (null === (n8 = t6.updateQueue) ? (n8 = { transitions: null, markerInstances: null, retryQueue: /* @__PURE__ */ new Set([l6]) }, t6.updateQueue = n8) : null === (t6 = n8.retryQueue) ? n8.retryQueue = /* @__PURE__ */ new Set([l6]) : t6.add(l6), Ar(e5, l6, a6)), false;
            }
            throw Error(r4(435, t6.tag));
          }
          return Ar(e5, l6, a6), Pr(), false;
        }
        var o6 = Error(r4(520), { cause: l6 });
        if (o6 = C(o6, t6), null === Bu ? Bu = [o6] : Bu.push(o6), 4 !== Wu && (Wu = 2), null === n8) return true;
        l6 = C(l6, t6), t6 = n8;
        do {
          switch (t6.tag) {
            case 3:
              return t6.flags |= 65536, e5 = a6 & -a6, t6.lanes |= e5, J(t6, e5 = Mn(t6.stateNode, l6, e5)), false;
            case 1:
              if (n8 = t6.type, o6 = t6.stateNode, 0 == (128 & t6.flags) && ("function" == typeof n8.getDerivedStateFromError || null !== o6 && "function" == typeof o6.componentDidCatch && (null === Ju || !Ju.has(o6)))) return t6.flags |= 65536, a6 &= -a6, t6.lanes |= a6, Hn(a6 = Wn(a6), e5, t6, l6), J(t6, a6), false;
          }
          t6 = t6.return;
        } while (null !== t6);
        return false;
      })(e4, l5, n7, t5, Lu)) return Wu = 1, In(e4, C(t5, e4.current)), void (Nu = null);
    } catch (n8) {
      if (null !== l5) throw Nu = l5, n8;
      return Wu = 1, In(e4, C(t5, e4.current)), void (Nu = null);
    }
    32768 & n7.flags ? Ir(n7, true) : Dr(n7);
  }
  function Dr(e4) {
    var n7 = e4;
    do {
      if (0 != (32768 & n7.flags)) return void Ir(n7, Iu);
      e4 = n7.return;
      var t5 = _t(n7.alternate, n7, Mu);
      if (null !== t5) return void (Nu = t5);
      if (null !== (n7 = n7.sibling)) return void (Nu = n7);
      Nu = n7 = e4;
    } while (null !== n7);
    0 === Wu && (Wu = 5);
  }
  function Ir(e4, n7) {
    do {
      var t5 = Rt(e4.alternate, e4);
      if (null !== t5) return t5.flags &= 32767, void (Nu = t5);
      if (null !== (t5 = e4.return) && (t5.flags |= 32768, t5.subtreeFlags = 0, t5.deletions = null), !n7 && null !== (e4 = e4.sibling)) return void (Nu = e4);
      Nu = e4 = t5;
    } while (null !== e4);
    Wu = 6, Nu = null;
  }
  function Fr(e4, n7, t5, l5, a6, o6, u5, i6, s5, c7) {
    var f5 = Pl.T, d4 = ql();
    try {
      $l(2), Pl.T = null, (function(e5, n8, t6, l6, a7, o7) {
        do {
          Wr();
        } while (null !== Xu);
        if (0 != (6 & Ru)) throw Error(r4(327));
        var u6 = e5.finishedWork;
        if (l6 = e5.finishedLanes, null === u6) return null;
        if (e5.finishedWork = null, e5.finishedLanes = 0, u6 === e5.current) throw Error(r4(177));
        e5.callbackNode = null, e5.callbackPriority = 0, e5.cancelPendingCommit = null;
        var i7 = u6.lanes | u6.childLanes;
        if ((function(e6, n9, t7, r5) {
          var l7 = e6.pendingLanes;
          e6.pendingLanes = t7, e6.suspendedLanes = 0, e6.pingedLanes = 0, e6.warmLanes = 0, e6.expiredLanes &= t7, e6.entangledLanes &= t7, e6.errorRecoveryDisabledLanes &= t7, e6.shellSuspendCounter = 0, n9 = e6.entanglements;
          var a8 = e6.expirationTimes, o8 = e6.hiddenUpdates;
          for (t7 = l7 & ~t7; 0 < t7; ) {
            var u7 = 31 - Ua(t7);
            l7 = 1 << u7, n9[u7] = 0, a8[u7] = -1;
            var i8 = o8[u7];
            if (null !== i8) for (o8[u7] = null, u7 = 0; u7 < i8.length; u7++) {
              var s7 = i8[u7];
              null !== s7 && (s7.lane &= -536870913);
            }
            t7 &= ~l7;
          }
          0 !== r5 && k3(e6, r5, 0);
        })(e5, l6, i7 |= po, o7), e5 === Tu && (Nu = Tu = null, Lu = 0), 0 == (10256 & u6.subtreeFlags) && 0 == (10256 & u6.flags) || Ku || (Ku = true, ei = i7, ni = t6, Wa(Va, (function() {
          return Wr(), null;
        }))), t6 = 0 != (15990 & u6.flags), 0 != (15990 & u6.subtreeFlags) || t6) {
          t6 = Pl.T, Pl.T = null, o7 = ql(), $l(2);
          var s6 = Ru;
          Ru |= 4, (function(e6, n9) {
            for (Ul(e6.containerInfo), Su = n9; null !== Su; ) if (n9 = (e6 = Su).child, 0 != (1028 & e6.subtreeFlags) && null !== n9) n9.return = e6, Su = n9;
            else for (; null !== Su; ) {
              var t7 = (e6 = Su).alternate;
              switch (n9 = e6.flags, e6.tag) {
                case 0:
                case 11:
                case 15:
                case 5:
                case 26:
                case 27:
                case 6:
                case 4:
                case 17:
                  break;
                case 1:
                  if (0 != (1024 & n9) && null !== t7) {
                    n9 = void 0;
                    var l7 = e6, a8 = t7.memoizedProps;
                    t7 = t7.memoizedState;
                    var o8 = l7.stateNode;
                    try {
                      var u7 = Dn(l7.type, a8, (l7.elementType, l7.type));
                      n9 = o8.getSnapshotBeforeUpdate(u7, t7), o8.__reactInternalSnapshotBeforeUpdate = n9;
                    } catch (e7) {
                      jr(l7, l7.return, e7);
                    }
                  }
                  break;
                case 3:
                  0 != (1024 & n9) && Ol && va(e6.stateNode.containerInfo);
                  break;
                default:
                  if (0 != (1024 & n9)) throw Error(r4(163));
              }
              if (null !== (n9 = e6.sibling)) {
                n9.return = e6.return, Su = n9;
                break;
              }
              Su = e6.return;
            }
            u7 = ku, ku = false;
          })(e5, u6), Yt(u6, e5), Dl(e5.containerInfo), e5.current = u6, Qt(e5, u6.alternate, u6), Aa(), Ru = s6, $l(o7), Pl.T = t6;
        } else e5.current = u6;
        if (Ku ? (Ku = false, Xu = e5, Zu = l6) : Mr(e5, i7), 0 === (i7 = e5.pendingLanes) && (Ju = null), u6.stateNode, M(e5), null !== n8) for (a7 = e5.onRecoverableError, u6 = 0; u6 < n8.length; u6++) a7((i7 = n8[u6]).value, { componentStack: i7.stack });
        0 != (3 & Zu) && Wr(), i7 = e5.pendingLanes, 0 != (4194218 & l6) && 0 != (42 & i7) ? e5 === ri ? ti++ : (ti = 0, ri = e5) : ti = 0, W(0);
      })(e4, n7, t5, l5, d4, a6);
    } finally {
      Pl.T = f5, $l(d4);
    }
  }
  function Mr(e4, n7) {
    0 == (e4.pooledCacheLanes &= n7) && null != (n7 = e4.pooledCache) && (e4.pooledCache = null, St(n7));
  }
  function Wr() {
    if (null !== Xu) {
      var e4 = Xu, n7 = ei;
      ei = 0;
      var t5 = x(Zu), l5 = 32 > t5 ? 32 : t5;
      t5 = Pl.T;
      var a6 = ql();
      try {
        if ($l(l5), Pl.T = null, null === Xu) var o6 = false;
        else {
          l5 = ni, ni = null;
          var u5 = Xu, i6 = Zu;
          if (Xu = null, Zu = 0, 0 != (6 & Ru)) throw Error(r4(331));
          var s5 = Ru;
          Ru |= 4, cr(u5.current), rr(u5, u5.current, i6, l5), Ru = s5, W(0), Ga && Ga.onPostCommitFiberRoot, o6 = true;
        }
        return o6;
      } finally {
        $l(a6), Pl.T = t5, Mr(e4, n7);
      }
    }
    return false;
  }
  function Hr(e4, n7, t5) {
    n7 = C(t5, n7), null !== (e4 = Y(e4, n7 = Mn(e4.stateNode, n7, 2), 2)) && (S3(e4, 2), M(e4));
  }
  function jr(e4, n7, t5) {
    if (3 === e4.tag) Hr(e4, e4, t5);
    else for (; null !== n7; ) {
      if (3 === n7.tag) {
        Hr(n7, e4, t5);
        break;
      }
      if (1 === n7.tag) {
        var r5 = n7.stateNode;
        if ("function" == typeof n7.type.getDerivedStateFromError || "function" == typeof r5.componentDidCatch && (null === Ju || !Ju.has(r5))) {
          e4 = C(t5, e4), null !== (r5 = Y(n7, t5 = Wn(2), 2)) && (Hn(t5, r5, n7, e4), S3(r5, 2), M(r5));
          break;
        }
      }
      n7 = n7.return;
    }
  }
  function Ar(e4, n7, t5) {
    var r5 = e4.pingCache;
    if (null === r5) {
      r5 = e4.pingCache = new _u();
      var l5 = /* @__PURE__ */ new Set();
      r5.set(n7, l5);
    } else void 0 === (l5 = r5.get(n7)) && (l5 = /* @__PURE__ */ new Set(), r5.set(n7, l5));
    l5.has(t5) || (Fu = true, l5.add(t5), e4 = Qr.bind(null, e4, n7, t5), n7.then(e4, e4));
  }
  function Qr(e4, n7, t5) {
    var r5 = e4.pingCache;
    null !== r5 && r5.delete(n7), e4.pingedLanes |= e4.suspendedLanes & t5, e4.warmLanes &= ~t5, Tu === e4 && (Lu & t5) === t5 && (4 === Wu || 3 === Wu && (62914560 & Lu) === Lu && 300 > Qa() - qu ? 0 == (2 & Ru) && wr(e4, 0) : Au |= t5, Ou === Lu && (Ou = 0)), M(e4);
  }
  function Or(e4, n7) {
    0 === n7 && (n7 = b3()), null !== (e4 = D(e4, n7)) && (S3(e4, n7), M(e4));
  }
  function Br(e4) {
    var n7 = e4.memoizedState, t5 = 0;
    null !== n7 && (t5 = n7.retryLane), Or(e4, t5);
  }
  function Vr(e4, n7) {
    var t5 = 0;
    switch (e4.tag) {
      case 13:
        var l5 = e4.stateNode, a6 = e4.memoizedState;
        null !== a6 && (t5 = a6.retryLane);
        break;
      case 19:
        l5 = e4.stateNode;
        break;
      case 22:
        l5 = e4.stateNode._retryCache;
        break;
      default:
        throw Error(r4(314));
    }
    null !== l5 && l5.delete(n7), Or(e4, t5);
  }
  function $r(e4, n7, t5, r5) {
    this.tag = e4, this.key = t5, this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null, this.index = 0, this.refCleanup = this.ref = null, this.pendingProps = n7, this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null, this.mode = r5, this.subtreeFlags = this.flags = 0, this.deletions = null, this.childLanes = this.lanes = 0, this.alternate = null;
  }
  function qr(e4) {
    return !(!(e4 = e4.prototype) || !e4.isReactComponent);
  }
  function Yr(e4, n7) {
    var r5 = e4.alternate;
    return null === r5 ? ((r5 = t4(e4.tag, n7, e4.key, e4.mode)).elementType = e4.elementType, r5.type = e4.type, r5.stateNode = e4.stateNode, r5.alternate = e4, e4.alternate = r5) : (r5.pendingProps = n7, r5.type = e4.type, r5.flags = 0, r5.subtreeFlags = 0, r5.deletions = null), r5.flags = 31457280 & e4.flags, r5.childLanes = e4.childLanes, r5.lanes = e4.lanes, r5.child = e4.child, r5.memoizedProps = e4.memoizedProps, r5.memoizedState = e4.memoizedState, r5.updateQueue = e4.updateQueue, n7 = e4.dependencies, r5.dependencies = null === n7 ? null : { lanes: n7.lanes, firstContext: n7.firstContext }, r5.sibling = e4.sibling, r5.index = e4.index, r5.ref = e4.ref, r5.refCleanup = e4.refCleanup, r5;
  }
  function Gr(e4, n7) {
    e4.flags &= 31457282;
    var t5 = e4.alternate;
    return null === t5 ? (e4.childLanes = 0, e4.lanes = n7, e4.child = null, e4.subtreeFlags = 0, e4.memoizedProps = null, e4.memoizedState = null, e4.updateQueue = null, e4.dependencies = null, e4.stateNode = null) : (e4.childLanes = t5.childLanes, e4.lanes = t5.lanes, e4.child = t5.child, e4.subtreeFlags = 0, e4.deletions = null, e4.memoizedProps = t5.memoizedProps, e4.memoizedState = t5.memoizedState, e4.updateQueue = t5.updateQueue, e4.type = t5.type, n7 = t5.dependencies, e4.dependencies = null === n7 ? null : { lanes: n7.lanes, firstContext: n7.firstContext }), e4;
  }
  function Jr(e4, n7, l5, a6, o6, u5) {
    var i6 = 0;
    if (a6 = e4, "function" == typeof e4) qr(e4) && (i6 = 1);
    else if ("string" == typeof e4) i6 = 5;
    else e: switch (e4) {
      case dl:
        return Kr(l5.children, o6, u5, n7);
      case pl:
        i6 = 8, o6 |= 24;
        break;
      case ml:
        return (e4 = t4(12, l5, n7, 2 | o6)).elementType = ml, e4.lanes = u5, e4;
      case vl:
        return (e4 = t4(13, l5, n7, o6)).elementType = vl, e4.lanes = u5, e4;
      case Sl:
        return (e4 = t4(19, l5, n7, o6)).elementType = Sl, e4.lanes = u5, e4;
      case xl:
        return Xr(l5, o6, u5, n7);
      default:
        if ("object" == typeof e4 && null !== e4) switch (e4.$$typeof) {
          case hl:
          case yl:
            i6 = 10;
            break e;
          case gl:
            i6 = 9;
            break e;
          case bl:
            i6 = 11;
            break e;
          case kl:
            i6 = 14;
            break e;
          case wl:
            i6 = 16, a6 = null;
            break e;
        }
        i6 = 29, l5 = Error(r4(130, null === e4 ? "null" : typeof e4, "")), a6 = null;
    }
    return (n7 = t4(i6, l5, n7, o6)).elementType = e4, n7.type = a6, n7.lanes = u5, n7;
  }
  function Kr(e4, n7, r5, l5) {
    return (e4 = t4(7, e4, l5, n7)).lanes = r5, e4;
  }
  function Xr(e4, n7, l5, a6) {
    (e4 = t4(22, e4, a6, n7)).elementType = xl, e4.lanes = l5;
    var o6 = { _visibility: 1, _pendingVisibility: 1, _pendingMarkers: null, _retryCache: null, _transitions: null, _current: null, detach: function() {
      var e5 = o6._current;
      if (null === e5) throw Error(r4(456));
      if (0 == (2 & o6._pendingVisibility)) {
        var n8 = D(e5, 2);
        null !== n8 && (o6._pendingVisibility |= 2, hr(n8, 0, 2));
      }
    }, attach: function() {
      var e5 = o6._current;
      if (null === e5) throw Error(r4(456));
      if (0 != (2 & o6._pendingVisibility)) {
        var n8 = D(e5, 2);
        null !== n8 && (o6._pendingVisibility &= -3, hr(n8, 0, 2));
      }
    } };
    return e4.stateNode = o6, e4;
  }
  function Zr(e4, n7, r5) {
    return (e4 = t4(6, e4, null, n7)).lanes = r5, e4;
  }
  function el(e4, n7, r5) {
    return (n7 = t4(4, null !== e4.children ? e4.children : [], e4.key, n7)).lanes = r5, n7.stateNode = { containerInfo: e4.containerInfo, pendingChildren: null, implementation: e4.implementation }, n7;
  }
  function nl(e4, n7, t5, r5, l5, a6, o6, u5) {
    this.tag = 1, this.containerInfo = e4, this.finishedWork = this.pingCache = this.current = this.pendingChildren = null, this.timeoutHandle = Ql, this.callbackNode = this.next = this.pendingContext = this.context = this.cancelPendingCommit = null, this.callbackPriority = 0, this.expirationTimes = v3(-1), this.entangledLanes = this.shellSuspendCounter = this.errorRecoveryDisabledLanes = this.finishedLanes = this.expiredLanes = this.warmLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0, this.entanglements = v3(0), this.hiddenUpdates = v3(null), this.identifierPrefix = r5, this.onUncaughtError = l5, this.onCaughtError = a6, this.onRecoverableError = o6, this.pooledCache = null, this.pooledCacheLanes = 0, this.formState = u5, this.incompleteTransitions = /* @__PURE__ */ new Map();
  }
  function tl(e4, n7, t5, r5, l5, a6) {
    l5 = (function(e5) {
      return e5 ? e5 = La : La;
    })(l5), null === r5.context ? r5.context = l5 : r5.pendingContext = l5, (r5 = q(n7)).payload = { element: t5 }, null !== (a6 = void 0 === a6 ? null : a6) && (r5.callback = a6), null !== (t5 = Y(e4, r5, n7)) && (hr(t5, 0, n7), G2(t5, e4, n7));
  }
  var rl, ll, al = {}, ol = import_react.default, ul = u2, il = Object.assign, sl = Symbol.for("react.element"), cl = Symbol.for("react.transitional.element"), fl2 = Symbol.for("react.portal"), dl = Symbol.for("react.fragment"), pl = Symbol.for("react.strict_mode"), ml = Symbol.for("react.profiler"), hl = Symbol.for("react.provider"), gl = Symbol.for("react.consumer"), yl = Symbol.for("react.context"), bl = Symbol.for("react.forward_ref"), vl = Symbol.for("react.suspense"), Sl = Symbol.for("react.suspense_list"), kl = Symbol.for("react.memo"), wl = Symbol.for("react.lazy"), xl = Symbol.for("react.offscreen"), zl = Symbol.for("react.memo_cache_sentinel"), Cl = Symbol.iterator, El = Symbol.for("react.client.reference"), Pl = ol.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, _l = false, Rl = Array.isArray, Tl = n6.getPublicInstance, Nl = n6.getRootHostContext, Ll = n6.getChildHostContext, Ul = n6.prepareForCommit, Dl = n6.resetAfterCommit, Il = n6.createInstance, Fl = n6.appendInitialChild, Ml = n6.finalizeInitialChildren, Wl = n6.shouldSetTextContent, Hl = n6.createTextInstance, jl = null, Al = null, Ql = n6.noTimeout, Ol = true, Bl = null, Vl = null, $l = n6.setCurrentUpdatePriority, ql = n6.getCurrentUpdatePriority, Yl = n6.resolveUpdatePriority;
  n6.resolveEventType, n6.resolveEventTimeStamp;
  var Gl = n6.shouldAttemptEagerTransition, Jl = n6.detachDeletedInstance;
  n6.requestPostPaintCallback;
  var Kl = n6.maySuspendCommit, Xl = null, Zl = null, ea = null, na = null, ta = null, ra = null, la = null, aa = n6.appendChild, oa = n6.appendChildToContainer, ua = n6.commitTextUpdate, ia = null, sa = n6.commitUpdate, ca = n6.insertBefore, fa = null, da = n6.removeChild, pa = n6.removeChildFromContainer, ma = n6.resetTextContent, ha = null, ga = null, ya = null, ba = null, va = n6.clearContainer, Sa = null, ka = null, wa = null, xa = null, za = null, Ca = null, Ea = null, Pa = null, _a2 = null, Ra = null, Ta = [], Na = -1, La = {}, Ua = Math.clz32 ? Math.clz32 : function(e4) {
    return 0 == (e4 >>>= 0) ? 32 : 31 - (Da(e4) / Ia | 0) | 0;
  }, Da = Math.log, Ia = Math.LN2, Fa = 128, Ma = 4194304, Wa = ul.unstable_scheduleCallback, Ha = ul.unstable_cancelCallback, ja = ul.unstable_shouldYield, Aa = ul.unstable_requestPaint, Qa = ul.unstable_now, Oa = ul.unstable_ImmediatePriority, Ba = ul.unstable_UserBlockingPriority, Va = ul.unstable_NormalPriority, $a = ul.unstable_IdlePriority, qa = ul.log, Ya = ul.unstable_setDisableYieldValue, Ga = null, Ja = "function" == typeof Object.is ? Object.is : function(e4, n7) {
    return e4 === n7 && (0 !== e4 || 1 / e4 == 1 / n7) || e4 != e4 && n7 != n7;
  }, Ka = /* @__PURE__ */ new WeakMap(), Xa = [], Za = 0, eo = null, no = [], to = 0, ro = null, lo = f4(null), ao = f4(null), oo = f4(null), uo = f4(null), io = false, so = null;
  Error(r4(519));
  var co = [], fo = 0, po = 0, mo = null, ho = null, go = false, yo = false, bo = false, vo = 0, So = null, ko = 0, wo = 0, xo = null, zo = false, Co = false, Eo = Object.prototype.hasOwnProperty, Po = Error(r4(460)), _o = Error(r4(474)), Ro = { then: function() {
  } }, To = null, No = null, Lo = 0, Uo = ce(true), Do = ce(false), Io = f4(null), Fo = f4(0), Mo = f4(null), Wo = null, Ho = f4(0), jo = 0, Ao = null, Qo = null, Oo = null, Bo = false, Vo = false, $o = false, qo = 0, Yo = 0, Go = null, Jo = 0, Ko = function() {
    return { lastEffect: null, events: null, stores: null, memoCache: null };
  }, Xo = { readContext: gt, use: Ne, useCallback: ve, useContext: ve, useEffect: ve, useImperativeHandle: ve, useLayoutEffect: ve, useInsertionEffect: ve, useMemo: ve, useReducer: ve, useRef: ve, useState: ve, useDebugValue: ve, useDeferredValue: ve, useTransition: ve, useSyncExternalStore: ve, useId: ve };
  Xo.useCacheRefresh = ve, Xo.useMemoCache = ve, Xo.useHostTransitionStatus = ve, Xo.useFormState = ve, Xo.useActionState = ve, Xo.useOptimistic = ve;
  var Zo = { readContext: gt, use: Ne, useCallback: function(e4, n7) {
    return _e().memoizedState = [e4, void 0 === n7 ? null : n7], e4;
  }, useContext: gt, useEffect: un, useImperativeHandle: function(e4, n7, t5) {
    t5 = null != t5 ? t5.concat([e4]) : null, an(4194308, 4, dn.bind(null, n7, e4), t5);
  }, useLayoutEffect: function(e4, n7) {
    return an(4194308, 4, e4, n7);
  }, useInsertionEffect: function(e4, n7) {
    an(4, 2, e4, n7);
  }, useMemo: function(e4, n7) {
    var t5 = _e();
    n7 = void 0 === n7 ? null : n7;
    var r5 = e4();
    if ($o) {
      z(true);
      try {
        e4();
      } finally {
        z(false);
      }
    }
    return t5.memoizedState = [r5, n7], r5;
  }, useReducer: function(e4, n7, t5) {
    var r5 = _e();
    if (void 0 !== t5) {
      var l5 = t5(n7);
      if ($o) {
        z(true);
        try {
          t5(n7);
        } finally {
          z(false);
        }
      }
    } else l5 = n7;
    return r5.memoizedState = r5.baseState = l5, e4 = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: e4, lastRenderedState: l5 }, r5.queue = e4, e4 = e4.dispatch = zn.bind(null, Ao, e4), [r5.memoizedState, e4];
  }, useRef: function(e4) {
    return e4 = { current: e4 }, _e().memoizedState = e4;
  }, useState: function(e4) {
    var n7 = (e4 = Oe(e4)).queue, t5 = Cn.bind(null, Ao, n7);
    return n7.dispatch = t5, [e4.memoizedState, t5];
  }, useDebugValue: mn, useDeferredValue: function(e4, n7) {
    return yn(_e(), e4, n7);
  }, useTransition: function() {
    var e4 = Oe(false);
    return e4 = vn.bind(null, Ao, e4.queue, true, false), _e().memoizedState = e4, [false, e4];
  }, useSyncExternalStore: function(e4, n7, t5) {
    var l5 = Ao, a6 = _e();
    if (t5 = n7(), null === Tu) throw Error(r4(349));
    0 != (60 & Lu) || We(l5, n7, t5), a6.memoizedState = t5;
    var o6 = { value: t5, getSnapshot: n7 };
    return a6.queue = o6, un(je.bind(null, l5, o6, e4), [e4]), l5.flags |= 2048, rn(9, He.bind(null, l5, o6, t5, n7), { destroy: void 0 }, null), t5;
  }, useId: function() {
    var e4 = _e(), n7 = Tu.identifierPrefix;
    return n7 = ":" + n7 + "r" + (Jo++).toString(32) + ":", e4.memoizedState = n7;
  }, useCacheRefresh: function() {
    return _e().memoizedState = xn.bind(null, Ao);
  } };
  Zo.useMemoCache = Le, Zo.useHostTransitionStatus = Sn, Zo.useFormState = Xe, Zo.useActionState = Xe, Zo.useOptimistic = function(e4) {
    var n7 = _e();
    n7.memoizedState = n7.baseState = e4;
    var t5 = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: null, lastRenderedState: null };
    return n7.queue = t5, n7 = Pn.bind(null, Ao, true, t5), t5.dispatch = n7, [e4, n7];
  };
  var eu = { readContext: gt, use: Ne, useCallback: hn, useContext: gt, useEffect: sn, useImperativeHandle: pn, useInsertionEffect: cn, useLayoutEffect: fn, useMemo: gn, useReducer: De, useRef: ln, useState: function() {
    return De(Ue);
  }, useDebugValue: mn, useDeferredValue: function(e4, n7) {
    return bn(Re(), Qo.memoizedState, e4, n7);
  }, useTransition: function() {
    var e4 = De(Ue)[0], n7 = Re().memoizedState;
    return ["boolean" == typeof e4 ? e4 : Te(e4), n7];
  }, useSyncExternalStore: Me, useId: kn };
  eu.useCacheRefresh = wn, eu.useMemoCache = Le, eu.useHostTransitionStatus = Sn, eu.useFormState = Ze, eu.useActionState = Ze, eu.useOptimistic = function(e4, n7) {
    return Be(Re(), 0, e4, n7);
  };
  var nu = { readContext: gt, use: Ne, useCallback: hn, useContext: gt, useEffect: sn, useImperativeHandle: pn, useInsertionEffect: cn, useLayoutEffect: fn, useMemo: gn, useReducer: Fe, useRef: ln, useState: function() {
    return Fe(Ue);
  }, useDebugValue: mn, useDeferredValue: function(e4, n7) {
    var t5 = Re();
    return null === Qo ? yn(t5, e4, n7) : bn(t5, Qo.memoizedState, e4, n7);
  }, useTransition: function() {
    var e4 = Fe(Ue)[0], n7 = Re().memoizedState;
    return ["boolean" == typeof e4 ? e4 : Te(e4), n7];
  }, useSyncExternalStore: Me, useId: kn };
  nu.useCacheRefresh = wn, nu.useMemoCache = Le, nu.useHostTransitionStatus = Sn, nu.useFormState = tn, nu.useActionState = tn, nu.useOptimistic = function(e4, n7) {
    var t5 = Re();
    return null !== Qo ? Be(t5, 0, e4, n7) : (t5.baseState = e4, [e4, t5.queue.dispatch]);
  };
  var tu = { isMounted: function(e4) {
    return !!(e4 = e4._reactInternals) && (function(e5) {
      var n7 = e5, t5 = e5;
      if (e5.alternate) for (; n7.return; ) n7 = n7.return;
      else {
        e5 = n7;
        do {
          0 != (4098 & (n7 = e5).flags) && (t5 = n7.return), e5 = n7.return;
        } while (e5);
      }
      return 3 === n7.tag ? t5 : null;
    })(e4) === e4;
  }, enqueueSetState: function(e4, n7, t5) {
    e4 = e4._reactInternals;
    var r5 = pr(), l5 = q(r5);
    l5.payload = n7, null != t5 && (l5.callback = t5), null !== (n7 = Y(e4, l5, r5)) && (hr(n7, 0, r5), G2(n7, e4, r5));
  }, enqueueReplaceState: function(e4, n7, t5) {
    e4 = e4._reactInternals;
    var r5 = pr(), l5 = q(r5);
    l5.tag = 1, l5.payload = n7, null != t5 && (l5.callback = t5), null !== (n7 = Y(e4, l5, r5)) && (hr(n7, 0, r5), G2(n7, e4, r5));
  }, enqueueForceUpdate: function(e4, n7) {
    e4 = e4._reactInternals;
    var t5 = pr(), r5 = q(t5);
    r5.tag = 2, null != n7 && (r5.callback = n7), null !== (n7 = Y(e4, r5, t5)) && (hr(n7, 0, t5), G2(n7, e4, t5));
  } };
  "function" == typeof reportError && reportError;
  var ru = Error(r4(461)), lu = false, au = { dehydrated: null, treeContext: null, retryLane: 0 }, ou = f4(null), uu = null, iu = null, su = null, cu = "undefined" != typeof AbortController ? AbortController : function() {
    var e4 = [], n7 = this.signal = { aborted: false, addEventListener: function(n8, t5) {
      e4.push(t5);
    } };
    this.abort = function() {
      n7.aborted = true, e4.forEach((function(e5) {
        return e5();
      }));
    };
  }, fu = ul.unstable_scheduleCallback, du = ul.unstable_NormalPriority, pu = { $$typeof: yl, Consumer: null, Provider: null, _currentValue: null, _currentValue2: null, _threadCount: 0 }, mu = Pl.S;
  Pl.S = function(e4, n7) {
    "object" == typeof n7 && null !== n7 && "function" == typeof n7.then && (function(e5, n8) {
      if (null === So) {
        var t5 = So = [];
        ko = 0, wo = O(), xo = { status: "pending", value: void 0, then: function(e6) {
          t5.push(e6);
        } };
      }
      ko++, n8.then(B, B);
    })(0, n7), null !== mu && mu(e4, n7);
  };
  var hu = f4(null), gu = false, yu = false, bu = false, vu = "function" == typeof WeakSet ? WeakSet : Set, Su = null, ku = false, wu = null, xu = false, zu = null, Cu = 8192, Eu = { getCacheForType: function(e4) {
    var n7 = gt(pu), t5 = n7.data.get(e4);
    return void 0 === t5 && (t5 = e4(), n7.data.set(e4, t5)), t5;
  } };
  if ("function" == typeof Symbol && Symbol.for) {
    var Pu = Symbol.for;
    Pu("selector.component"), Pu("selector.has_pseudo_class"), Pu("selector.role"), Pu("selector.test_id"), Pu("selector.text");
  }
  var _u = "function" == typeof WeakMap ? WeakMap : Map, Ru = 0, Tu = null, Nu = null, Lu = 0, Uu = 0, Du = null, Iu = false, Fu = false, Mu = 0, Wu = 0, Hu = 0, ju = 0, Au = 0, Qu = 0, Ou = 0, Bu = null, Vu = null, $u = false, qu = 0, Yu = 1 / 0, Gu = null, Ju = null, Ku = false, Xu = null, Zu = 0, ei = 0, ni = null, ti = 0, ri = null;
  return al.createContainer = function(e4, n7, r5, l5, a6, o6, u5, i6, s5, c7) {
    return (function(e5, n8, r6, l6, a7, o7, u6, i7, s6, c8, f5, d4) {
      return e5 = new nl(e5, n8, r6, u6, i7, s6, c8, null), n8 = 1, true === o7 && (n8 |= 24), o7 = t4(3, null, null, n8), e5.current = o7, o7.stateNode = e5, (n8 = vt()).refCount++, e5.pooledCache = n8, n8.refCount++, o7.memoizedState = { element: l6, isDehydrated: r6, cache: n8 }, V(o7), e5;
    })(e4, n7, false, null, 0, l5, o6, u5, i6, s5);
  }, al.flushSyncWork = function() {
    return 0 != (6 & Ru) || (W(0), false);
  }, al.updateContainer = function(e4, n7, t5, r5) {
    var l5 = n7.current, a6 = pr();
    return tl(l5, a6, e4, n7, t5, r5), a6;
  }, al.updateContainerSync = function(e4, n7, t5, r5) {
    return 0 === n7.tag && Wr(), tl(n7.current, 2, e4, n7, t5, r5), 2;
  }, al;
}, s.exports.default = s.exports, Object.defineProperty(s.exports, "__esModule", { value: true })), o2.exports) : a2.exports = (function() {
  return i2 || (i2 = 1, n6 = c3, "production" !== process.env.NODE_ENV && (n6.exports = function(n7) {
    function t4(e4, n8, t5, r5) {
      return new sa(e4, n8, t5, r5);
    }
    function r4() {
      console.error("Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks");
    }
    function l4() {
      console.error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");
    }
    function a5() {
    }
    function o5(e4) {
      var n8 = [];
      return e4.forEach((function(e5) {
        n8.push(e5);
      })), n8.sort().join(", ");
    }
    function i5(e4) {
      return null === e4 || "object" != typeof e4 ? null : "function" == typeof (e4 = Ya && e4[Ya] || e4["@@iterator"]) ? e4 : null;
    }
    function s4(e4) {
      if (null == e4) return null;
      if ("function" == typeof e4) return e4.$$typeof === Ga ? null : e4.displayName || e4.name || null;
      if ("string" == typeof e4) return e4;
      switch (e4) {
        case Ia:
          return "Fragment";
        case Da:
          return "Portal";
        case Ma:
          return "Profiler";
        case Fa:
          return "StrictMode";
        case Qa:
          return "Suspense";
        case Oa:
          return "SuspenseList";
      }
      if ("object" == typeof e4) switch ("number" == typeof e4.tag && console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), e4.$$typeof) {
        case ja:
          return (e4.displayName || "Context") + ".Provider";
        case Ha:
          return (e4._context.displayName || "Context") + ".Consumer";
        case Aa:
          var n8 = e4.render;
          return (e4 = e4.displayName) || (e4 = "" !== (e4 = n8.displayName || n8.name || "") ? "ForwardRef(" + e4 + ")" : "ForwardRef"), e4;
        case Ba:
          return null !== (n8 = e4.displayName || null) ? n8 : s4(e4.type) || "Memo";
        case Va:
          n8 = e4._payload, e4 = e4._init;
          try {
            return s4(e4(n8));
          } catch (e5) {
          }
      }
      return null;
    }
    function c6(e4) {
      var n8 = e4.type;
      switch (e4.tag) {
        case 24:
          return "Cache";
        case 9:
          return (n8._context.displayName || "Context") + ".Consumer";
        case 10:
          return (n8.displayName || "Context") + ".Provider";
        case 18:
          return "DehydratedFragment";
        case 11:
          return e4 = (e4 = n8.render).displayName || e4.name || "", n8.displayName || ("" !== e4 ? "ForwardRef(" + e4 + ")" : "ForwardRef");
        case 7:
          return "Fragment";
        case 26:
        case 27:
        case 5:
          return n8;
        case 4:
          return "Portal";
        case 3:
          return "Root";
        case 6:
          return "Text";
        case 16:
          return s4(n8);
        case 8:
          return n8 === Fa ? "StrictMode" : "Mode";
        case 22:
          return "Offscreen";
        case 12:
          return "Profiler";
        case 21:
          return "Scope";
        case 13:
          return "Suspense";
        case 19:
          return "SuspenseList";
        case 25:
          return "TracingMarker";
        case 1:
        case 0:
        case 14:
        case 15:
          if ("function" == typeof n8) return n8.displayName || n8.name || null;
          if ("string" == typeof n8) return n8;
          break;
        case 29:
          if (null != (n8 = e4._debugInfo)) {
            for (var t5 = n8.length - 1; 0 <= t5; t5--) if ("string" == typeof n8[t5].name) return n8[t5].name;
          }
          if (null !== e4.return) return c6(e4.return);
      }
      return null;
    }
    function f4() {
    }
    function d3(e4) {
      if (void 0 === Xa) try {
        throw Error();
      } catch (e5) {
        var n8 = e5.stack.trim().match(/\n( *(at )?)/);
        Xa = n8 && n8[1] || "", Za = -1 < e5.stack.indexOf("\n    at") ? " (<anonymous>)" : -1 < e5.stack.indexOf("@") ? "@unknown:0:0" : "";
      }
      return "\n" + Xa + e4 + Za;
    }
    function p3(e4, n8) {
      if (!e4 || eo) return "";
      var t5, r5 = no.get(e4);
      if (void 0 !== r5) return r5;
      eo = true, r5 = Error.prepareStackTrace, Error.prepareStackTrace = void 0, t5 = Ja.H, Ja.H = null, (function() {
        if (0 === Ka) {
          ka = console.log, wa = console.info, xa = console.warn, za = console.error, Ca = console.group, Ea = console.groupCollapsed, Pa = console.groupEnd;
          var e5 = { configurable: true, enumerable: true, value: f4, writable: true };
          Object.defineProperties(console, { info: e5, log: e5, warn: e5, error: e5, group: e5, groupCollapsed: e5, groupEnd: e5 });
        }
        Ka++;
      })();
      try {
        var l5 = { DetermineComponentFrameRoot: function() {
          try {
            if (n8) {
              var t6 = function() {
                throw Error();
              };
              if (Object.defineProperty(t6.prototype, "props", { set: function() {
                throw Error();
              } }), "object" == typeof Reflect && Reflect.construct) {
                try {
                  Reflect.construct(t6, []);
                } catch (e5) {
                  var r6 = e5;
                }
                Reflect.construct(e4, [], t6);
              } else {
                try {
                  t6.call();
                } catch (e5) {
                  r6 = e5;
                }
                e4.call(t6.prototype);
              }
            } else {
              try {
                throw Error();
              } catch (e5) {
                r6 = e5;
              }
              (t6 = e4()) && "function" == typeof t6.catch && t6.catch((function() {
              }));
            }
          } catch (e5) {
            if (e5 && r6 && "string" == typeof e5.stack) return [e5.stack, r6.stack];
          }
          return [null, null];
        } };
        l5.DetermineComponentFrameRoot.displayName = "DetermineComponentFrameRoot";
        var a6 = Object.getOwnPropertyDescriptor(l5.DetermineComponentFrameRoot, "name");
        a6 && a6.configurable && Object.defineProperty(l5.DetermineComponentFrameRoot, "name", { value: "DetermineComponentFrameRoot" });
        var o6 = l5.DetermineComponentFrameRoot(), u5 = o6[0], i6 = o6[1];
        if (u5 && i6) {
          var s5 = u5.split("\n"), c7 = i6.split("\n");
          for (o6 = a6 = 0; a6 < s5.length && !s5[a6].includes("DetermineComponentFrameRoot"); ) a6++;
          for (; o6 < c7.length && !c7[o6].includes("DetermineComponentFrameRoot"); ) o6++;
          if (a6 === s5.length || o6 === c7.length) for (a6 = s5.length - 1, o6 = c7.length - 1; 1 <= a6 && 0 <= o6 && s5[a6] !== c7[o6]; ) o6--;
          for (; 1 <= a6 && 0 <= o6; a6--, o6--) if (s5[a6] !== c7[o6]) {
            if (1 !== a6 || 1 !== o6) do {
              if (a6--, 0 > --o6 || s5[a6] !== c7[o6]) {
                var p4 = "\n" + s5[a6].replace(" at new ", " at ");
                return e4.displayName && p4.includes("<anonymous>") && (p4 = p4.replace("<anonymous>", e4.displayName)), "function" == typeof e4 && no.set(e4, p4), p4;
              }
            } while (1 <= a6 && 0 <= o6);
            break;
          }
        }
      } finally {
        eo = false, Ja.H = t5, (function() {
          if (0 == --Ka) {
            var e5 = { configurable: true, enumerable: true, writable: true };
            Object.defineProperties(console, { log: Na({}, e5, { value: ka }), info: Na({}, e5, { value: wa }), warn: Na({}, e5, { value: xa }), error: Na({}, e5, { value: za }), group: Na({}, e5, { value: Ca }), groupCollapsed: Na({}, e5, { value: Ea }), groupEnd: Na({}, e5, { value: Pa }) });
          }
          0 > Ka && console.error("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
        })(), Error.prepareStackTrace = r5;
      }
      return s5 = (s5 = e4 ? e4.displayName || e4.name : "") ? d3(s5) : "", "function" == typeof e4 && no.set(e4, s5), s5;
    }
    function m3(e4) {
      switch (e4.tag) {
        case 26:
        case 27:
        case 5:
          return d3(e4.type);
        case 16:
          return d3("Lazy");
        case 13:
          return d3("Suspense");
        case 19:
          return d3("SuspenseList");
        case 0:
        case 15:
          return p3(e4.type, false);
        case 11:
          return p3(e4.type.render, false);
        case 1:
          return p3(e4.type, true);
        default:
          return "";
      }
    }
    function h4(e4) {
      try {
        var n8 = "";
        do {
          n8 += m3(e4);
          var t5 = e4._debugInfo;
          if (t5) for (var r5 = t5.length - 1; 0 <= r5; r5--) {
            var l5 = t5[r5];
            if ("string" == typeof l5.name) {
              var a6 = n8, o6 = l5.env;
              n8 = a6 + d3(l5.name + (o6 ? " [" + o6 + "]" : ""));
            }
          }
          e4 = e4.return;
        } while (e4);
        return n8;
      } catch (e5) {
        return "\nError generating stack: " + e5.message + "\n" + e5.stack;
      }
    }
    function g3() {
      return null === to ? "" : h4(to);
    }
    function y3(e4, n8, t5, r5, l5, a6, o6) {
      var u5 = to;
      Ja.getCurrentStack = null === e4 ? null : g3, ro = false, to = e4;
      try {
        return n8(t5, r5, l5, a6, o6);
      } finally {
        to = u5;
      }
      throw Error("runWithFiberInDEV should never be called in production. This is a bug in React.");
    }
    function b3(e4) {
      return { current: e4 };
    }
    function v3(e4, n8) {
      0 > iu ? console.error("Unexpected pop.") : (n8 !== uu[iu] && console.error("Unexpected Fiber popped."), e4.current = ou[iu], ou[iu] = null, uu[iu] = null, iu--);
    }
    function S3(e4, n8, t5) {
      iu++, ou[iu] = e4.current, uu[iu] = t5, e4.current = n8;
    }
    function k3(e4) {
      var n8 = 42 & e4;
      if (0 !== n8) return n8;
      switch (e4 & -e4) {
        case 1:
          return 1;
        case 2:
          return 2;
        case 4:
          return 4;
        case 8:
          return 8;
        case 16:
          return 16;
        case 32:
          return 32;
        case 64:
          return 64;
        case 128:
        case 256:
        case 512:
        case 1024:
        case 2048:
        case 4096:
        case 8192:
        case 16384:
        case 32768:
        case 65536:
        case 131072:
        case 262144:
        case 524288:
        case 1048576:
        case 2097152:
          return 4194176 & e4;
        case 4194304:
        case 8388608:
        case 16777216:
        case 33554432:
          return 62914560 & e4;
        case 67108864:
          return 67108864;
        case 134217728:
          return 134217728;
        case 268435456:
          return 268435456;
        case 536870912:
          return 536870912;
        case 1073741824:
          return 0;
        default:
          return console.error("Should have found matching lanes. This is a bug in React."), e4;
      }
    }
    function w(e4, n8) {
      var t5 = e4.pendingLanes;
      if (0 === t5) return 0;
      var r5 = 0, l5 = e4.suspendedLanes;
      e4 = e4.pingedLanes;
      var a6 = 134217727 & t5;
      return 0 !== a6 ? 0 != (t5 = a6 & ~l5) ? r5 = k3(t5) : 0 != (e4 &= a6) && (r5 = k3(e4)) : 0 != (t5 &= ~l5) ? r5 = k3(t5) : 0 !== e4 && (r5 = k3(e4)), 0 === r5 ? 0 : 0 !== n8 && n8 !== r5 && 0 == (n8 & l5) && ((l5 = r5 & -r5) >= (e4 = n8 & -n8) || 32 === l5 && 0 != (4194176 & e4)) ? n8 : r5;
    }
    function x(e4, n8) {
      switch (e4) {
        case 1:
        case 2:
        case 4:
        case 8:
          return n8 + 250;
        case 16:
        case 32:
        case 64:
        case 128:
        case 256:
        case 512:
        case 1024:
        case 2048:
        case 4096:
        case 8192:
        case 16384:
        case 32768:
        case 65536:
        case 131072:
        case 262144:
        case 524288:
        case 1048576:
        case 2097152:
          return n8 + 5e3;
        case 4194304:
        case 8388608:
        case 16777216:
        case 33554432:
        case 67108864:
        case 134217728:
        case 268435456:
        case 536870912:
        case 1073741824:
          return -1;
        default:
          return console.error("Should have found matching lanes. This is a bug in React."), -1;
      }
    }
    function z() {
      var e4 = pu;
      return 0 == (4194176 & (pu <<= 1)) && (pu = 128), e4;
    }
    function C() {
      var e4 = mu;
      return 0 == (62914560 & (mu <<= 1)) && (mu = 4194304), e4;
    }
    function E(e4) {
      for (var n8 = [], t5 = 0; 31 > t5; t5++) n8.push(e4);
      return n8;
    }
    function P(e4, n8) {
      e4.pendingLanes |= n8, 268435456 !== n8 && (e4.suspendedLanes = 0, e4.pingedLanes = 0, e4.warmLanes = 0);
    }
    function _(e4, n8, t5) {
      e4.pendingLanes |= n8, e4.suspendedLanes &= ~n8;
      var r5 = 31 - cu(n8);
      e4.entangledLanes |= n8, e4.entanglements[r5] = 1073741824 | e4.entanglements[r5] | 4194218 & t5;
    }
    function R(e4, n8) {
      var t5 = e4.entangledLanes |= n8;
      for (e4 = e4.entanglements; t5; ) {
        var r5 = 31 - cu(t5), l5 = 1 << r5;
        l5 & n8 | e4[r5] & n8 && (e4[r5] |= n8), t5 &= ~l5;
      }
    }
    function T(e4, n8, t5) {
      if (_u) for (e4 = e4.pendingUpdatersLaneMap; 0 < t5; ) {
        var r5 = 31 - cu(t5), l5 = 1 << r5;
        e4[r5].add(n8), t5 &= ~l5;
      }
    }
    function N(e4, n8) {
      if (_u) for (var t5 = e4.pendingUpdatersLaneMap, r5 = e4.memoizedUpdaters; 0 < n8; ) {
        var l5 = 31 - cu(n8);
        e4 = 1 << l5, 0 < (l5 = t5[l5]).size && (l5.forEach((function(e5) {
          var n9 = e5.alternate;
          null !== n9 && r5.has(n9) || r5.add(e5);
        })), l5.clear()), n8 &= ~e4;
      }
    }
    function L(e4) {
      return 2 < (e4 &= -e4) ? 8 < e4 ? 0 != (134217727 & e4) ? 32 : 268435456 : 8 : 2;
    }
    function U(e4) {
      "function" == typeof zu && Cu(e4);
    }
    function D(e4, n8) {
      if ("object" == typeof e4 && null !== e4) {
        var t5 = Tu.get(e4);
        return void 0 !== t5 ? t5 : (n8 = { value: e4, source: n8, stack: h4(n8) }, Tu.set(e4, n8), n8);
      }
      return { value: e4, source: n8, stack: h4(n8) };
    }
    function I(e4) {
      for (; e4 === Uu; ) Uu = Nu[--Lu], Nu[Lu] = null, Du = Nu[--Lu], Nu[Lu] = null;
      for (; e4 === Mu; ) Mu = Iu[--Fu], Iu[Fu] = null, Hu = Iu[--Fu], Iu[Fu] = null, Wu = Iu[--Fu], Iu[Fu] = null;
    }
    function F() {
      console.error("Expected to be hydrating. This is a bug in React. Please file an issue.");
    }
    function M(e4) {
      return null === e4 && console.error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."), e4;
    }
    function W(e4, n8) {
      S3(Qu, n8, e4), S3(Au, e4, e4), S3(ju, null, e4), n8 = oo(n8), v3(ju, e4), S3(ju, n8, e4);
    }
    function H(e4) {
      v3(ju, e4), v3(Au, e4), v3(Qu, e4);
    }
    function j() {
      return M(ju.current);
    }
    function A(e4) {
      null !== e4.memoizedState && S3(Ou, e4, e4);
      var n8 = M(ju.current), t5 = uo(n8, e4.type);
      n8 !== t5 && (S3(Au, e4, e4), S3(ju, t5, e4));
    }
    function Q(e4) {
      Au.current === e4 && (v3(ju, e4), v3(Au, e4)), Ou.current === e4 && (v3(Ou, e4), Uo._currentValue2 = Lo);
    }
    function O() {
      for (var e4 = Yu, n8 = Gu = Yu = 0; n8 < e4; ) {
        var t5 = qu[n8];
        qu[n8++] = null;
        var r5 = qu[n8];
        qu[n8++] = null;
        var l5 = qu[n8];
        qu[n8++] = null;
        var a6 = qu[n8];
        if (qu[n8++] = null, null !== r5 && null !== l5) {
          var o6 = r5.pending;
          null === o6 ? l5.next = l5 : (l5.next = o6.next, o6.next = l5), r5.pending = l5;
        }
        0 !== a6 && q(t5, l5, a6);
      }
    }
    function B(e4, n8, t5, r5) {
      qu[Yu++] = e4, qu[Yu++] = n8, qu[Yu++] = t5, qu[Yu++] = r5, Gu |= r5, e4.lanes |= r5, null !== (e4 = e4.alternate) && (e4.lanes |= r5);
    }
    function V(e4, n8, t5, r5) {
      return B(e4, n8, t5, r5), Y(e4);
    }
    function $(e4, n8) {
      return B(e4, null, null, n8), Y(e4);
    }
    function q(e4, n8, t5) {
      e4.lanes |= t5;
      var r5 = e4.alternate;
      null !== r5 && (r5.lanes |= t5);
      for (var l5 = false, a6 = e4.return; null !== a6; ) a6.childLanes |= t5, null !== (r5 = a6.alternate) && (r5.childLanes |= t5), 22 === a6.tag && (null === (e4 = a6.stateNode) || 1 & e4._visibility || (l5 = true)), e4 = a6, a6 = a6.return;
      l5 && null !== n8 && 3 === e4.tag && (a6 = e4.stateNode, l5 = 31 - cu(t5), null === (e4 = (a6 = a6.hiddenUpdates)[l5]) ? a6[l5] = [n8] : e4.push(n8), n8.lane = 536870912 | t5);
    }
    function Y(e4) {
      if (Yf > qf) throw Zf = Yf = 0, ed = Gf = null, Error("Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.");
      Zf > Xf && (Zf = 0, ed = null, console.error("Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render.")), null === e4.alternate && 0 != (4098 & e4.flags) && ua(e4);
      for (var n8 = e4, t5 = n8.return; null !== t5; ) null === n8.alternate && 0 != (4098 & n8.flags) && ua(e4), t5 = (n8 = t5).return;
      return 3 === n8.tag ? n8.stateNode : null;
    }
    function G2() {
      var e4 = Zu;
      return Zu = 0, e4;
    }
    function J(e4) {
      var n8 = Zu;
      return Zu = e4, n8;
    }
    function K(e4) {
      var n8 = Zu;
      return Zu += e4, n8;
    }
    function X(e4) {
      Xu = Ju(), 0 > e4.actualStartTime && (e4.actualStartTime = Xu);
    }
    function Z(e4) {
      if (0 <= Xu) {
        var n8 = Ju() - Xu;
        e4.actualDuration += n8, e4.selfBaseDuration = n8, Xu = -1;
      }
    }
    function ee(e4) {
      if (0 <= Xu) {
        var n8 = Ju() - Xu;
        e4.actualDuration += n8, Xu = -1;
      }
    }
    function ne() {
      if (0 <= Xu) {
        var e4 = Ju() - Xu;
        Xu = -1, Zu += e4;
      }
    }
    function te() {
      Xu = Ju();
    }
    function re(e4) {
      for (var n8 = e4.child; n8; ) e4.actualDuration += n8.actualDuration, n8 = n8.sibling;
    }
    function le(e4) {
      e4 !== ri && null === e4.next && (null === ri ? ti = ri = e4 : ri = ri.next = e4), oi = true, null !== Ja.actQueue ? ai || (ai = true, fe(oe)) : li || (li = true, fe(oe));
    }
    function ae(e4, n8) {
      if (!ui && oi) {
        ui = true;
        do {
          for (var t5 = false, r5 = ti; null !== r5; ) {
            if (0 !== e4) {
              var l5 = r5.pendingLanes;
              if (0 === l5) var a6 = 0;
              else {
                var o6 = r5.suspendedLanes, u5 = r5.pingedLanes;
                a6 = (1 << 31 - cu(42 | e4) + 1) - 1, a6 = 201326677 & (a6 &= l5 & ~(o6 & ~u5)) ? 201326677 & a6 | 1 : a6 ? 2 | a6 : 0;
              }
              0 !== a6 && (t5 = true, se(r5, a6));
            } else a6 = df, 0 != (3 & (a6 = w(r5, r5 === cf ? a6 : 0))) && (t5 = true, se(r5, a6));
            r5 = r5.next;
          }
        } while (t5);
        ui = false;
      }
    }
    function oe() {
      oi = ai = li = false;
      var e4 = 0;
      0 !== ii && (Co() && (e4 = ii), ii = 0);
      for (var n8 = vu(), t5 = null, r5 = ti; null !== r5; ) {
        var l5 = r5.next, a6 = ue(r5, n8);
        0 === a6 ? (r5.next = null, null === t5 ? ti = l5 : t5.next = l5, null === l5 && (ri = t5)) : (t5 = r5, (0 !== e4 || 0 != (3 & a6)) && (oi = true)), r5 = l5;
      }
      ae(e4);
    }
    function ue(e4, n8) {
      for (var t5 = e4.suspendedLanes, r5 = e4.pingedLanes, l5 = e4.expirationTimes, a6 = -62914561 & e4.pendingLanes; 0 < a6; ) {
        var o6 = 31 - cu(a6), u5 = 1 << o6, i6 = l5[o6];
        -1 === i6 ? 0 != (u5 & t5) && 0 == (u5 & r5) || (l5[o6] = x(u5, n8)) : i6 <= n8 && (e4.expiredLanes |= u5), a6 &= ~u5;
      }
      if (t5 = df, t5 = w(e4, e4 === (n8 = cf) ? t5 : 0), r5 = e4.callbackNode, 0 === t5 || e4 === n8 && wf === hf || null !== e4.cancelPendingCommit) return null !== r5 && ce(r5), e4.callbackNode = null, e4.callbackPriority = 0;
      if (0 != (3 & t5)) return null !== r5 && ce(r5), e4.callbackPriority = 2, e4.callbackNode = null, 2;
      if ((n8 = t5 & -t5) === e4.callbackPriority && (null === Ja.actQueue || r5 === si)) return n8;
      switch (ce(r5), L(t5)) {
        case 2:
          t5 = Su;
          break;
        case 8:
          t5 = ku;
          break;
        case 32:
        default:
          t5 = wu;
          break;
        case 268435456:
          t5 = xu;
      }
      return r5 = ie.bind(null, e4), null !== Ja.actQueue ? (Ja.actQueue.push(r5), t5 = si) : t5 = hu(t5, r5), e4.callbackPriority = n8, e4.callbackNode = t5, n8;
    }
    function ie(e4, n8) {
      ni = ei = false;
      var t5 = e4.callbackNode;
      if (Jl() && e4.callbackNode !== t5) return null;
      var r5 = df;
      return 0 === (r5 = w(e4, e4 === cf ? r5 : 0)) ? null : (El(e4, r5, n8), ue(e4, vu()), e4.callbackNode === t5 ? ie.bind(null, e4) : null);
    }
    function se(e4, n8) {
      if (Jl()) return null;
      ei = ni, ni = false, El(e4, n8, true);
    }
    function ce(e4) {
      e4 !== si && null !== e4 && gu(e4);
    }
    function fe(e4) {
      null !== Ja.actQueue && Ja.actQueue.push((function() {
        return e4(), null;
      })), hu(Su, e4);
    }
    function de() {
      return 0 === ii && (ii = z()), ii;
    }
    function pe() {
      if (0 == --fi && null !== ci) {
        null !== pi && (pi.status = "fulfilled");
        var e4 = ci;
        ci = null, di = 0, pi = null;
        for (var n8 = 0; n8 < e4.length; n8++) (0, e4[n8])();
      }
    }
    function me(e4) {
      e4.updateQueue = { baseState: e4.memoizedState, firstBaseUpdate: null, lastBaseUpdate: null, shared: { pending: null, lanes: 0, hiddenCallbacks: null }, callbacks: null };
    }
    function he(e4, n8) {
      e4 = e4.updateQueue, n8.updateQueue === e4 && (n8.updateQueue = { baseState: e4.baseState, firstBaseUpdate: e4.firstBaseUpdate, lastBaseUpdate: e4.lastBaseUpdate, shared: e4.shared, callbacks: null });
    }
    function ge(e4) {
      return { lane: e4, tag: mi, payload: null, callback: null, next: null };
    }
    function ye(e4, n8, t5) {
      var r5 = e4.updateQueue;
      if (null === r5) return null;
      if (r5 = r5.shared, Si === r5 && !vi) {
        var l5 = c6(e4);
        console.error("An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback.\n\nPlease update the following component: %s", l5), vi = true;
      }
      return (sf & Zc) !== Xc ? (null === (l5 = r5.pending) ? n8.next = n8 : (n8.next = l5.next, l5.next = n8), r5.pending = n8, n8 = Y(e4), q(e4, null, t5), n8) : (B(e4, r5, n8, t5), Y(e4));
    }
    function be(e4, n8, t5) {
      if (null !== (n8 = n8.updateQueue) && (n8 = n8.shared, 0 != (4194176 & t5))) {
        var r5 = n8.lanes;
        t5 |= r5 &= e4.pendingLanes, n8.lanes = t5, R(e4, t5);
      }
    }
    function ve(e4, n8) {
      var t5 = e4.updateQueue, r5 = e4.alternate;
      if (null !== r5 && t5 === (r5 = r5.updateQueue)) {
        var l5 = null, a6 = null;
        if (null !== (t5 = t5.firstBaseUpdate)) {
          do {
            var o6 = { lane: t5.lane, tag: t5.tag, payload: t5.payload, callback: null, next: null };
            null === a6 ? l5 = a6 = o6 : a6 = a6.next = o6, t5 = t5.next;
          } while (null !== t5);
          null === a6 ? l5 = a6 = n8 : a6 = a6.next = n8;
        } else l5 = a6 = n8;
        return t5 = { baseState: r5.baseState, firstBaseUpdate: l5, lastBaseUpdate: a6, shared: r5.shared, callbacks: r5.callbacks }, void (e4.updateQueue = t5);
      }
      null === (e4 = t5.lastBaseUpdate) ? t5.firstBaseUpdate = n8 : e4.next = n8, t5.lastBaseUpdate = n8;
    }
    function Se() {
      if (ki && null !== pi) throw pi;
    }
    function ke(e4, n8, t5, r5) {
      ki = false;
      var l5 = e4.updateQueue;
      bi = false, Si = l5.shared;
      var a6 = l5.firstBaseUpdate, o6 = l5.lastBaseUpdate, u5 = l5.shared.pending;
      if (null !== u5) {
        l5.shared.pending = null;
        var i6 = u5, s5 = i6.next;
        i6.next = null, null === o6 ? a6 = s5 : o6.next = s5, o6 = i6;
        var c7 = e4.alternate;
        null !== c7 && (u5 = (c7 = c7.updateQueue).lastBaseUpdate) !== o6 && (null === u5 ? c7.firstBaseUpdate = s5 : u5.next = s5, c7.lastBaseUpdate = i6);
      }
      if (null !== a6) {
        var f5 = l5.baseState;
        for (o6 = 0, c7 = s5 = i6 = null, u5 = a6; ; ) {
          var d4 = -536870913 & u5.lane, p4 = d4 !== u5.lane;
          if (p4 ? (df & d4) === d4 : (r5 & d4) === d4) {
            0 !== d4 && d4 === di && (ki = true), null !== c7 && (c7 = c7.next = { lane: 0, tag: u5.tag, payload: u5.payload, callback: null, next: null });
            e: {
              d4 = e4;
              var m4 = u5, h5 = n8, g4 = t5;
              switch (m4.tag) {
                case hi:
                  if ("function" == typeof (m4 = m4.payload)) {
                    Rc = true;
                    var y4 = m4.call(g4, f5, h5);
                    if (8 & d4.mode) {
                      U(true);
                      try {
                        m4.call(g4, f5, h5);
                      } finally {
                        U(false);
                      }
                    }
                    Rc = false, f5 = y4;
                    break e;
                  }
                  f5 = m4;
                  break e;
                case yi:
                  d4.flags = -65537 & d4.flags | 128;
                case mi:
                  if ("function" == typeof (y4 = m4.payload)) {
                    if (Rc = true, m4 = y4.call(g4, f5, h5), 8 & d4.mode) {
                      U(true);
                      try {
                        y4.call(g4, f5, h5);
                      } finally {
                        U(false);
                      }
                    }
                    Rc = false;
                  } else m4 = y4;
                  if (null == m4) break e;
                  f5 = Na({}, f5, m4);
                  break e;
                case gi:
                  bi = true;
              }
            }
            null !== (d4 = u5.callback) && (e4.flags |= 64, p4 && (e4.flags |= 8192), null === (p4 = l5.callbacks) ? l5.callbacks = [d4] : p4.push(d4));
          } else p4 = { lane: d4, tag: u5.tag, payload: u5.payload, callback: u5.callback, next: null }, null === c7 ? (s5 = c7 = p4, i6 = f5) : c7 = c7.next = p4, o6 |= d4;
          if (null === (u5 = u5.next)) {
            if (null === (u5 = l5.shared.pending)) break;
            u5 = (p4 = u5).next, p4.next = null, l5.lastBaseUpdate = p4, l5.shared.pending = null;
          }
        }
        null === c7 && (i6 = f5), l5.baseState = i6, l5.firstBaseUpdate = s5, l5.lastBaseUpdate = c7, null === a6 && (l5.shared.lanes = 0), _f |= o6, e4.lanes = o6, e4.memoizedState = f5;
      }
      Si = null;
    }
    function we(e4, n8) {
      if ("function" != typeof e4) throw Error("Invalid argument passed as callback. Expected a function. Instead received: " + e4);
      e4.call(n8);
    }
    function xe(e4, n8) {
      var t5 = e4.shared.hiddenCallbacks;
      if (null !== t5) for (e4.shared.hiddenCallbacks = null, e4 = 0; e4 < t5.length; e4++) we(t5[e4], n8);
    }
    function ze(e4, n8) {
      var t5 = e4.callbacks;
      if (null !== t5) for (e4.callbacks = null, e4 = 0; e4 < t5.length; e4++) we(t5[e4], n8);
    }
    function Ce(e4, n8) {
      if (Ru(e4, n8)) return true;
      if ("object" != typeof e4 || null === e4 || "object" != typeof n8 || null === n8) return false;
      var t5 = Object.keys(e4), r5 = Object.keys(n8);
      if (t5.length !== r5.length) return false;
      for (r5 = 0; r5 < t5.length; r5++) {
        var l5 = t5[r5];
        if (!wi.call(n8, l5) || !Ru(e4[l5], n8[l5])) return false;
      }
      return true;
    }
    function Ee(e4) {
      return "fulfilled" === (e4 = e4.status) || "rejected" === e4;
    }
    function Pe() {
    }
    function _e(e4, n8, t5) {
      null !== Ja.actQueue && (Ja.didUsePromise = true);
      var r5 = e4.thenables;
      switch (void 0 === (t5 = r5[t5]) ? r5.push(n8) : t5 !== n8 && (e4.didWarnAboutUncachedPromise || (e4.didWarnAboutUncachedPromise = true, console.error("A component was suspended by an uncached promise. Creating promises inside a Client Component or hook is not yet supported, except via a Suspense-compatible library or framework.")), n8.then(Pe, Pe), n8 = t5), n8.status) {
        case "fulfilled":
          return n8.value;
        case "rejected":
          throw Te(e4 = n8.reason), e4;
        default:
          if ("string" == typeof n8.status) n8.then(Pe, Pe);
          else {
            if (null !== (e4 = cf) && 100 < e4.shellSuspendCounter) throw Error("async/await is not yet supported in Client Components, only Server Components. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.");
            (e4 = n8).status = "pending", e4.then((function(e5) {
              if ("pending" === n8.status) {
                var t6 = n8;
                t6.status = "fulfilled", t6.value = e5;
              }
            }), (function(e5) {
              if ("pending" === n8.status) {
                var t6 = n8;
                t6.status = "rejected", t6.reason = e5;
              }
            }));
          }
          switch (n8.status) {
            case "fulfilled":
              return n8.value;
            case "rejected":
              throw Te(e4 = n8.reason), e4;
          }
          throw Mi = n8, Wi = true, Di;
      }
    }
    function Re() {
      if (null === Mi) throw Error("Expected a suspended thenable. This is a bug in React. Please file an issue.");
      var e4 = Mi;
      return Mi = null, Wi = false, e4;
    }
    function Te(e4) {
      if (e4 === Di) throw Error("Hooks are not supported inside an async component. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.");
    }
    function Ne(e4) {
      var n8 = as;
      return null != e4 && (as = null === n8 ? e4 : n8.concat(e4)), n8;
    }
    function Le(e4, n8, t5) {
      for (var r5 = Object.keys(e4.props), l5 = 0; l5 < r5.length; l5++) {
        var a6 = r5[l5];
        if ("children" !== a6 && "key" !== a6) {
          null === n8 && ((n8 = ma(e4, t5.mode, 0))._debugInfo = as, n8.return = t5), y3(n8, (function(e5) {
            console.error("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", e5);
          }), a6);
          break;
        }
      }
    }
    function Ue(e4) {
      var n8 = ls;
      return ls += 1, null === rs && (rs = { didWarnAboutUncachedPromise: false, thenables: [] }), _e(rs, e4, n8);
    }
    function De(e4, n8, t5, r5) {
      e4 = r5.props.ref, t5.ref = void 0 !== e4 ? e4 : null;
    }
    function Ie(e4, n8) {
      if (n8.$$typeof === La) throw Error('A React Element from an older version of React was rendered. This is not supported. It can happen if:\n- Multiple copies of the "react" package is used.\n- A library pre-bundled an old copy of "react" or "react/jsx-runtime".\n- A compiler tries to "inline" JSX instead of using the runtime.');
      throw e4 = Object.prototype.toString.call(n8), Error("Objects are not valid as a React child (found: " + ("[object Object]" === e4 ? "object with keys {" + Object.keys(n8).join(", ") + "}" : e4) + "). If you meant to render a collection of children, use an array instead.");
    }
    function Fe(e4, n8) {
      var t5 = c6(e4) || "Component";
      is3[t5] || (is3[t5] = true, n8 = n8.displayName || n8.name || "Component", 3 === e4.tag ? console.error("Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\n  root.render(%s)", n8, n8, n8) : console.error("Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\n  <%s>{%s}</%s>", n8, n8, t5, n8, t5));
    }
    function Me(e4, n8) {
      var t5 = c6(e4) || "Component";
      ss[t5] || (ss[t5] = true, n8 = String(n8), 3 === e4.tag ? console.error("Symbols are not valid as a React child.\n  root.render(%s)", n8) : console.error("Symbols are not valid as a React child.\n  <%s>%s</%s>", t5, n8, t5));
    }
    function We(e4) {
      function n8(n9, t5) {
        if (e4) {
          var r6 = n9.deletions;
          null === r6 ? (n9.deletions = [t5], n9.flags |= 16) : r6.push(t5);
        }
      }
      function r5(t5, r6) {
        if (!e4) return null;
        for (; null !== r6; ) n8(t5, r6), r6 = r6.sibling;
        return null;
      }
      function l5(e5) {
        for (var n9 = /* @__PURE__ */ new Map(); null !== e5; ) null !== e5.key ? n9.set(e5.key, e5) : n9.set(e5.index, e5), e5 = e5.sibling;
        return n9;
      }
      function o6(e5, n9) {
        return (e5 = fa(e5, n9)).index = 0, e5.sibling = null, e5;
      }
      function u5(n9, t5, r6) {
        return n9.index = r6, e4 ? null !== (r6 = n9.alternate) ? (r6 = r6.index) < t5 ? (n9.flags |= 33554434, t5) : r6 : (n9.flags |= 33554434, t5) : (n9.flags |= 1048576, t5);
      }
      function s5(n9) {
        return e4 && null === n9.alternate && (n9.flags |= 33554434), n9;
      }
      function c7(e5, n9, t5, r6) {
        return null === n9 || 6 !== n9.tag ? ((n9 = ya(t5, e5.mode, r6)).return = e5, n9._debugOwner = e5, n9._debugInfo = as, n9) : ((n9 = o6(n9, t5)).return = e5, n9._debugInfo = as, n9);
      }
      function f5(e5, n9, t5, r6) {
        var l6 = t5.type;
        return l6 === Ia ? (Le(t5, n9 = p4(e5, n9, t5.props.children, r6, t5.key), e5), n9) : null !== n9 && (n9.elementType === l6 || "object" == typeof l6 && null !== l6 && l6.$$typeof === Va && ts(l6) === n9.type) ? (De(e5, 0, r6 = o6(n9, t5.props), t5), r6.return = e5, r6._debugOwner = t5._owner, r6._debugInfo = as, r6) : (De(e5, 0, r6 = ma(t5, e5.mode, r6), t5), r6.return = e5, r6._debugInfo = as, r6);
      }
      function d4(e5, n9, t5, r6) {
        return null === n9 || 4 !== n9.tag || n9.stateNode.containerInfo !== t5.containerInfo || n9.stateNode.implementation !== t5.implementation ? ((n9 = ba(t5, e5.mode, r6)).return = e5, n9._debugInfo = as, n9) : ((n9 = o6(n9, t5.children || [])).return = e5, n9._debugInfo = as, n9);
      }
      function p4(e5, n9, t5, r6, l6) {
        return null === n9 || 7 !== n9.tag ? ((n9 = ha(t5, e5.mode, r6, l6)).return = e5, n9._debugOwner = e5, n9._debugInfo = as, n9) : ((n9 = o6(n9, t5)).return = e5, n9._debugInfo = as, n9);
      }
      function m4(e5, n9, t5) {
        if ("string" == typeof n9 && "" !== n9 || "number" == typeof n9 || "bigint" == typeof n9) return (n9 = ya("" + n9, e5.mode, t5)).return = e5, n9._debugOwner = e5, n9._debugInfo = as, n9;
        if ("object" == typeof n9 && null !== n9) {
          switch (n9.$$typeof) {
            case Ua:
              return De(e5, 0, t5 = ma(n9, e5.mode, t5), n9), t5.return = e5, e5 = Ne(n9._debugInfo), t5._debugInfo = as, as = e5, t5;
            case Da:
              return (n9 = ba(n9, e5.mode, t5)).return = e5, n9._debugInfo = as, n9;
            case Va:
              var r6 = Ne(n9._debugInfo);
              return e5 = m4(e5, n9 = ts(n9), t5), as = r6, e5;
          }
          if (lo(n9) || i5(n9)) return (t5 = ha(n9, e5.mode, t5, null)).return = e5, t5._debugOwner = e5, e5 = Ne(n9._debugInfo), t5._debugInfo = as, as = e5, t5;
          if ("function" == typeof n9.then) return r6 = Ne(n9._debugInfo), e5 = m4(e5, Ue(n9), t5), as = r6, e5;
          if (n9.$$typeof === ja) return m4(e5, cr(e5, n9), t5);
          Ie(e5, n9);
        }
        return "function" == typeof n9 && Fe(e5, n9), "symbol" == typeof n9 && Me(e5, n9), null;
      }
      function h5(e5, n9, t5, r6) {
        var l6 = null !== n9 ? n9.key : null;
        if ("string" == typeof t5 && "" !== t5 || "number" == typeof t5 || "bigint" == typeof t5) return null !== l6 ? null : c7(e5, n9, "" + t5, r6);
        if ("object" == typeof t5 && null !== t5) {
          switch (t5.$$typeof) {
            case Ua:
              return t5.key === l6 ? (l6 = Ne(t5._debugInfo), e5 = f5(e5, n9, t5, r6), as = l6, e5) : null;
            case Da:
              return t5.key === l6 ? d4(e5, n9, t5, r6) : null;
            case Va:
              return l6 = Ne(t5._debugInfo), e5 = h5(e5, n9, t5 = ts(t5), r6), as = l6, e5;
          }
          if (lo(t5) || i5(t5)) return null !== l6 ? null : (l6 = Ne(t5._debugInfo), e5 = p4(e5, n9, t5, r6, null), as = l6, e5);
          if ("function" == typeof t5.then) return l6 = Ne(t5._debugInfo), e5 = h5(e5, n9, Ue(t5), r6), as = l6, e5;
          if (t5.$$typeof === ja) return h5(e5, n9, cr(e5, t5), r6);
          Ie(e5, t5);
        }
        return "function" == typeof t5 && Fe(e5, t5), "symbol" == typeof t5 && Me(e5, t5), null;
      }
      function g4(e5, n9, t5, r6, l6) {
        if ("string" == typeof r6 && "" !== r6 || "number" == typeof r6 || "bigint" == typeof r6) return c7(n9, e5 = e5.get(t5) || null, "" + r6, l6);
        if ("object" == typeof r6 && null !== r6) {
          switch (r6.$$typeof) {
            case Ua:
              return t5 = e5.get(null === r6.key ? t5 : r6.key) || null, e5 = Ne(r6._debugInfo), n9 = f5(n9, t5, r6, l6), as = e5, n9;
            case Da:
              return d4(n9, e5 = e5.get(null === r6.key ? t5 : r6.key) || null, r6, l6);
            case Va:
              var a6 = Ne(r6._debugInfo);
              return n9 = g4(e5, n9, t5, r6 = ts(r6), l6), as = a6, n9;
          }
          if (lo(r6) || i5(r6)) return t5 = e5.get(t5) || null, e5 = Ne(r6._debugInfo), n9 = p4(n9, t5, r6, l6, null), as = e5, n9;
          if ("function" == typeof r6.then) return a6 = Ne(r6._debugInfo), n9 = g4(e5, n9, t5, Ue(r6), l6), as = a6, n9;
          if (r6.$$typeof === ja) return g4(e5, n9, t5, cr(n9, r6), l6);
          Ie(n9, r6);
        }
        return "function" == typeof r6 && Fe(n9, r6), "symbol" == typeof r6 && Me(n9, r6), null;
      }
      function b4(e5, n9, t5, r6) {
        if ("object" != typeof t5 || null === t5) return r6;
        switch (t5.$$typeof) {
          case Ua:
          case Da:
            a5(e5, n9, t5);
            var l6 = t5.key;
            if ("string" != typeof l6) break;
            if (null === r6) {
              (r6 = /* @__PURE__ */ new Set()).add(l6);
              break;
            }
            if (!r6.has(l6)) {
              r6.add(l6);
              break;
            }
            y3(n9, (function() {
              console.error("Encountered two children with the same key, `%s`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted \u2014 the behavior is unsupported and could change in a future version.", l6);
            }));
            break;
          case Va:
            b4(e5, n9, t5 = ts(t5), r6);
        }
        return r6;
      }
      function v4(t5, a6, c8, f6) {
        if ("object" == typeof c8 && null !== c8 && c8.type === Ia && null === c8.key && (Le(c8, null, t5), c8 = c8.props.children), "object" == typeof c8 && null !== c8) {
          switch (c8.$$typeof) {
            case Ua:
              var d5 = Ne(c8._debugInfo);
              e: {
                for (var p5 = c8.key, y4 = a6; null !== y4; ) {
                  if (y4.key === p5) {
                    if ((p5 = c8.type) === Ia) {
                      if (7 === y4.tag) {
                        r5(t5, y4.sibling), (a6 = o6(y4, c8.props.children)).return = t5, a6._debugOwner = c8._owner, a6._debugInfo = as, Le(c8, a6, t5), t5 = a6;
                        break e;
                      }
                    } else if (y4.elementType === p5 || "object" == typeof p5 && null !== p5 && p5.$$typeof === Va && ts(p5) === y4.type) {
                      r5(t5, y4.sibling), De(t5, 0, a6 = o6(y4, c8.props), c8), a6.return = t5, a6._debugOwner = c8._owner, a6._debugInfo = as, t5 = a6;
                      break e;
                    }
                    r5(t5, y4);
                    break;
                  }
                  n8(t5, y4), y4 = y4.sibling;
                }
                c8.type === Ia ? ((a6 = ha(c8.props.children, t5.mode, f6, c8.key)).return = t5, a6._debugOwner = t5, a6._debugInfo = as, Le(c8, a6, t5), t5 = a6) : (De(t5, 0, f6 = ma(c8, t5.mode, f6), c8), f6.return = t5, f6._debugInfo = as, t5 = f6);
              }
              return t5 = s5(t5), as = d5, t5;
            case Da:
              e: {
                for (c8 = (d5 = c8).key; null !== a6; ) {
                  if (a6.key === c8) {
                    if (4 === a6.tag && a6.stateNode.containerInfo === d5.containerInfo && a6.stateNode.implementation === d5.implementation) {
                      r5(t5, a6.sibling), (a6 = o6(a6, d5.children || [])).return = t5, t5 = a6;
                      break e;
                    }
                    r5(t5, a6);
                    break;
                  }
                  n8(t5, a6), a6 = a6.sibling;
                }
                (a6 = ba(d5, t5.mode, f6)).return = t5, t5 = a6;
              }
              return s5(t5);
            case Va:
              return d5 = Ne(c8._debugInfo), t5 = v4(t5, a6, c8 = ts(c8), f6), as = d5, t5;
          }
          if (lo(c8)) return d5 = Ne(c8._debugInfo), t5 = (function(t6, a7, o7, i6) {
            for (var s6 = null, c9 = null, f7 = null, d6 = a7, p6 = a7 = 0, y5 = null; null !== d6 && p6 < o7.length; p6++) {
              d6.index > p6 ? (y5 = d6, d6 = null) : y5 = d6.sibling;
              var v5 = h5(t6, d6, o7[p6], i6);
              if (null === v5) {
                null === d6 && (d6 = y5);
                break;
              }
              s6 = b4(t6, v5, o7[p6], s6), e4 && d6 && null === v5.alternate && n8(t6, d6), a7 = u5(v5, a7, p6), null === f7 ? c9 = v5 : f7.sibling = v5, f7 = v5, d6 = y5;
            }
            if (p6 === o7.length) return r5(t6, d6), c9;
            if (null === d6) {
              for (; p6 < o7.length; p6++) null !== (d6 = m4(t6, o7[p6], i6)) && (s6 = b4(t6, d6, o7[p6], s6), a7 = u5(d6, a7, p6), null === f7 ? c9 = d6 : f7.sibling = d6, f7 = d6);
              return c9;
            }
            for (d6 = l5(d6); p6 < o7.length; p6++) null !== (y5 = g4(d6, t6, p6, o7[p6], i6)) && (s6 = b4(t6, y5, o7[p6], s6), e4 && null !== y5.alternate && d6.delete(null === y5.key ? p6 : y5.key), a7 = u5(y5, a7, p6), null === f7 ? c9 = y5 : f7.sibling = y5, f7 = y5);
            return e4 && d6.forEach((function(e5) {
              return n8(t6, e5);
            })), c9;
          })(t5, a6, c8, f6), as = d5, t5;
          if (i5(c8)) {
            if (d5 = Ne(c8._debugInfo), "function" != typeof (y4 = i5(c8))) throw Error("An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.");
            return (p5 = y4.call(c8)) === c8 ? 0 === t5.tag && "[object GeneratorFunction]" === Object.prototype.toString.call(t5.type) && "[object Generator]" === Object.prototype.toString.call(p5) || (os2 || console.error("Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."), os2 = true) : c8.entries !== y4 || Ui || (console.error("Using Maps as children is not supported. Use an array of keyed ReactElements instead."), Ui = true), t5 = (function(t6, a7, o7, i6) {
              if (null == o7) throw Error("An iterable object provided no iterator.");
              for (var s6 = null, c9 = null, f7 = a7, d6 = a7 = 0, p6 = null, y5 = null, v5 = o7.next(); null !== f7 && !v5.done; d6++, v5 = o7.next()) {
                f7.index > d6 ? (p6 = f7, f7 = null) : p6 = f7.sibling;
                var S4 = h5(t6, f7, v5.value, i6);
                if (null === S4) {
                  null === f7 && (f7 = p6);
                  break;
                }
                y5 = b4(t6, S4, v5.value, y5), e4 && f7 && null === S4.alternate && n8(t6, f7), a7 = u5(S4, a7, d6), null === c9 ? s6 = S4 : c9.sibling = S4, c9 = S4, f7 = p6;
              }
              if (v5.done) return r5(t6, f7), s6;
              if (null === f7) {
                for (; !v5.done; d6++, v5 = o7.next()) null !== (f7 = m4(t6, v5.value, i6)) && (y5 = b4(t6, f7, v5.value, y5), a7 = u5(f7, a7, d6), null === c9 ? s6 = f7 : c9.sibling = f7, c9 = f7);
                return s6;
              }
              for (f7 = l5(f7); !v5.done; d6++, v5 = o7.next()) null !== (p6 = g4(f7, t6, d6, v5.value, i6)) && (y5 = b4(t6, p6, v5.value, y5), e4 && null !== p6.alternate && f7.delete(null === p6.key ? d6 : p6.key), a7 = u5(p6, a7, d6), null === c9 ? s6 = p6 : c9.sibling = p6, c9 = p6);
              return e4 && f7.forEach((function(e5) {
                return n8(t6, e5);
              })), s6;
            })(t5, a6, p5, f6), as = d5, t5;
          }
          if ("function" == typeof c8.then) return d5 = Ne(c8._debugInfo), t5 = v4(t5, a6, Ue(c8), f6), as = d5, t5;
          if (c8.$$typeof === ja) return v4(t5, a6, cr(t5, c8), f6);
          Ie(t5, c8);
        }
        return "string" == typeof c8 && "" !== c8 || "number" == typeof c8 || "bigint" == typeof c8 ? (d5 = "" + c8, null !== a6 && 6 === a6.tag ? (r5(t5, a6.sibling), (a6 = o6(a6, d5)).return = t5, t5 = a6) : (r5(t5, a6), (a6 = ya(d5, t5.mode, f6)).return = t5, a6._debugOwner = t5, a6._debugInfo = as, t5 = a6), s5(t5)) : ("function" == typeof c8 && Fe(t5, c8), "symbol" == typeof c8 && Me(t5, c8), r5(t5, a6));
      }
      return function(e5, n9, r6, l6) {
        var a6 = as;
        as = null;
        try {
          ls = 0;
          var o7 = v4(e5, n9, r6, l6);
          return rs = null, o7;
        } catch (n10) {
          if (n10 === Di) throw n10;
          var u6 = t4(29, n10, null, e5.mode);
          u6.lanes = l6, u6.return = e5;
          var i6 = u6._debugInfo = as;
          if (u6._debugOwner = e5._debugOwner, null != i6) {
            for (var s6 = i6.length - 1; 0 <= s6; s6--) if ("string" == typeof i6[s6].stack) {
              u6._debugOwner = i6[s6];
              break;
            }
          }
          return u6;
        } finally {
          as = a6;
        }
      };
    }
    function He(e4, n8) {
      var t5 = Ef;
      S3(ms, t5, e4), S3(ps, n8, e4), Ef = t5 | n8.baseLanes;
    }
    function je(e4) {
      S3(ms, Ef, e4), S3(ps, ps.current, e4);
    }
    function Ae(e4) {
      Ef = ms.current, v3(ps, e4), v3(ms, e4);
    }
    function Qe(e4) {
      var n8 = e4.alternate;
      S3(vs, vs.current & ys, e4), S3(hs, e4, e4), null === gs && (null === n8 || null !== ps.current || null !== n8.memoizedState) && (gs = e4);
    }
    function Oe(e4) {
      if (22 === e4.tag) {
        if (S3(vs, vs.current, e4), S3(hs, e4, e4), null === gs) {
          var n8 = e4.alternate;
          null !== n8 && null !== n8.memoizedState && (gs = e4);
        }
      } else Be(e4);
    }
    function Be(e4) {
      S3(vs, vs.current, e4), S3(hs, hs.current, e4);
    }
    function Ve(e4) {
      v3(hs, e4), gs === e4 && (gs = null), v3(vs, e4);
    }
    function $e(e4) {
      for (var n8 = e4; null !== n8; ) {
        if (13 === n8.tag) {
          var t5 = n8.memoizedState;
          if (null !== t5 && (null === (t5 = t5.dehydrated) || Jo(t5) || Ko(t5))) return n8;
        } else if (19 === n8.tag && void 0 !== n8.memoizedProps.revealOrder) {
          if (0 != (128 & n8.flags)) return n8;
        } else if (null !== n8.child) {
          n8.child.return = n8, n8 = n8.child;
          continue;
        }
        if (n8 === e4) break;
        for (; null === n8.sibling; ) {
          if (null === n8.return || n8.return === e4) return null;
          n8 = n8.return;
        }
        n8.sibling.return = n8.return, n8 = n8.sibling;
      }
      return null;
    }
    function qe() {
      var e4 = As;
      null === Qs ? Qs = [e4] : Qs.push(e4);
    }
    function Ye() {
      var e4 = As;
      if (null !== Qs && (Os++, Qs[Os] !== e4)) {
        var n8 = c6(Ts);
        if (!Cs.has(n8) && (Cs.add(n8), null !== Qs)) {
          for (var t5 = "", r5 = 0; r5 <= Os; r5++) {
            var l5 = Qs[r5], a6 = r5 === Os ? e4 : l5;
            for (l5 = r5 + 1 + ". " + l5; 30 > l5.length; ) l5 += " ";
            t5 += l5 += a6 + "\n";
          }
          console.error("React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://react.dev/link/rules-of-hooks\n\n   Previous render            Next render\n   ------------------------------------------------------\n%s   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", n8, t5);
        }
      }
    }
    function Ge(e4) {
      null == e4 || lo(e4) || console.error("%s received a final argument that is not an array (instead, received `%s`). When specified, the final argument must be an array.", As, typeof e4);
    }
    function Je() {
      var e4 = c6(Ts);
      _s.has(e4) || (_s.add(e4), console.error("ReactDOM.useFormState has been renamed to React.useActionState. Please update %s to use React.useActionState.", e4));
    }
    function Ke() {
      throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.");
    }
    function Xe(e4, n8) {
      if (Bs) return false;
      if (null === n8) return console.error("%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.", As), false;
      e4.length !== n8.length && console.error("The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\n\nPrevious: %s\nIncoming: %s", As, "[" + n8.join(", ") + "]", "[" + e4.join(", ") + "]");
      for (var t5 = 0; t5 < n8.length && t5 < e4.length; t5++) if (!Ru(e4[t5], n8[t5])) return false;
      return true;
    }
    function Ze(e4, n8, t5, r5, l5, a6) {
      Rs = a6, Ts = n8, Qs = null !== e4 ? e4._debugHookTypes : null, Os = -1, Bs = null !== e4 && e4.type !== n8.type, "[object AsyncFunction]" !== Object.prototype.toString.call(t5) && "[object AsyncGeneratorFunction]" !== Object.prototype.toString.call(t5) || (a6 = c6(Ts), Ps.has(a6) || (Ps.add(a6), console.error("async/await is not yet supported in Client Components, only Server Components. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server."))), n8.memoizedState = null, n8.updateQueue = null, n8.lanes = 0, Ja.H = null !== e4 && null !== e4.memoizedState ? Gs : null !== Qs ? Ys : qs, Is = a6 = (8 & n8.mode) !== $u;
      var o6 = ji(t5, r5, l5);
      if (Is = false, Ds && (o6 = nn(n8, t5, r5, l5)), a6) {
        U(true);
        try {
          o6 = nn(n8, t5, r5, l5);
        } finally {
          U(false);
        }
      }
      return en(e4, n8), o6;
    }
    function en(e4, n8) {
      n8._debugHookTypes = Qs, null === n8.dependencies ? null !== Ws && (n8.dependencies = { lanes: 0, firstContext: null, _debugThenableState: Ws }) : n8.dependencies._debugThenableState = Ws, Ja.H = $s;
      var t5 = null !== Ns && null !== Ns.next;
      if (Rs = 0, Qs = As = Ls = Ns = Ts = null, Os = -1, null !== e4 && (31457280 & e4.flags) != (31457280 & n8.flags) && console.error("Internal React error: Expected static flag was missing. Please notify the React team."), Us = false, Ms = 0, Ws = null, t5) throw Error("Rendered fewer hooks than expected. This may be caused by an accidental early return statement.");
      null === e4 || pc || null !== (e4 = e4.dependencies) && ur(e4) && (pc = true), Wi ? (Wi = false, e4 = true) : e4 = false, e4 && (n8 = c6(n8) || "Unknown", Es.has(n8) || Ps.has(n8) || (Es.add(n8), console.error("`use` was called from inside a try/catch block. This is not allowed and can lead to unexpected behavior. To handle errors triggered by `use`, wrap your component in a error boundary.")));
    }
    function nn(e4, n8, t5, r5) {
      Ts = e4;
      var l5 = 0;
      do {
        if (Ds && (Ws = null), Ms = 0, Ds = false, l5 >= js) throw Error("Too many re-renders. React limits the number of renders to prevent an infinite loop.");
        if (l5 += 1, Bs = false, Ls = Ns = null, null != e4.updateQueue) {
          var a6 = e4.updateQueue;
          a6.lastEffect = null, a6.events = null, a6.stores = null, null != a6.memoCache && (a6.memoCache.index = 0);
        }
        Os = -1, Ja.H = Js, a6 = ji(n8, t5, r5);
      } while (Ds);
      return a6;
    }
    function tn() {
      var e4 = Ja.H, n8 = e4.useState()[0];
      return n8 = "function" == typeof n8.then ? sn(n8) : n8, e4 = e4.useState()[0], (null !== Ns ? Ns.memoizedState : null) !== e4 && (Ts.flags |= 1024), n8;
    }
    function rn() {
      var e4 = 0 !== Fs;
      return Fs = 0, e4;
    }
    function ln(e4, n8, t5) {
      n8.updateQueue = e4.updateQueue, n8.flags = (16 & n8.mode) !== $u ? -201328645 & n8.flags : -2053 & n8.flags, e4.lanes &= ~t5;
    }
    function an(e4) {
      if (Us) {
        for (e4 = e4.memoizedState; null !== e4; ) {
          var n8 = e4.queue;
          null !== n8 && (n8.pending = null), e4 = e4.next;
        }
        Us = false;
      }
      Rs = 0, Qs = Ls = Ns = Ts = null, Os = -1, As = null, Ds = false, Ms = Fs = 0, Ws = null;
    }
    function on2() {
      var e4 = { memoizedState: null, baseState: null, baseQueue: null, queue: null, next: null };
      return null === Ls ? Ts.memoizedState = Ls = e4 : Ls = Ls.next = e4, Ls;
    }
    function un() {
      if (null === Ns) {
        var e4 = Ts.alternate;
        e4 = null !== e4 ? e4.memoizedState : null;
      } else e4 = Ns.next;
      var n8 = null === Ls ? Ts.memoizedState : Ls.next;
      if (null !== n8) Ls = n8, Ns = e4;
      else {
        if (null === e4) {
          if (null === Ts.alternate) throw Error("Update hook called on initial render. This is likely a bug in React. Please file an issue.");
          throw Error("Rendered more hooks than during the previous render.");
        }
        e4 = { memoizedState: (Ns = e4).memoizedState, baseState: Ns.baseState, baseQueue: Ns.baseQueue, queue: Ns.queue, next: null }, null === Ls ? Ts.memoizedState = Ls = e4 : Ls = Ls.next = e4;
      }
      return Ls;
    }
    function sn(e4) {
      var n8 = Ms;
      return Ms += 1, null === Ws && (Ws = { didWarnAboutUncachedPromise: false, thenables: [] }), e4 = _e(Ws, e4, n8), n8 = Ts, null === (null === Ls ? n8.memoizedState : Ls.next) && (n8 = n8.alternate, Ja.H = null !== n8 && null !== n8.memoizedState ? Gs : qs), e4;
    }
    function cn(e4) {
      if (null !== e4 && "object" == typeof e4) {
        if ("function" == typeof e4.then) return sn(e4);
        if (e4.$$typeof === ja) return sr(e4);
      }
      throw Error("An unsupported type was passed to use(): " + String(e4));
    }
    function fn(e4) {
      var n8 = null, t5 = Ts.updateQueue;
      if (null !== t5 && (n8 = t5.memoCache), null == n8) {
        var r5 = Ts.alternate;
        null !== r5 && null !== (r5 = r5.updateQueue) && null != (r5 = r5.memoCache) && (n8 = { data: r5.data.map((function(e5) {
          return e5.slice();
        })), index: 0 });
      }
      if (null == n8 && (n8 = { data: [], index: 0 }), null === t5 && (t5 = Vs(), Ts.updateQueue = t5), t5.memoCache = n8, void 0 === (t5 = n8.data[n8.index]) || Bs) for (t5 = n8.data[n8.index] = Array(e4), r5 = 0; r5 < e4; r5++) t5[r5] = qa;
      else t5.length !== e4 && console.error("Expected a constant size argument for each invocation of useMemoCache. The previous cache was allocated with size %s but size %s was requested.", t5.length, e4);
      return n8.index++, t5;
    }
    function dn(e4, n8) {
      return "function" == typeof n8 ? n8(e4) : n8;
    }
    function pn(e4, n8, t5) {
      var r5 = on2();
      if (void 0 !== t5) {
        var l5 = t5(n8);
        if (Is) {
          U(true);
          try {
            t5(n8);
          } finally {
            U(false);
          }
        }
      } else l5 = n8;
      return r5.memoizedState = r5.baseState = l5, e4 = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: e4, lastRenderedState: l5 }, r5.queue = e4, e4 = e4.dispatch = mt.bind(null, Ts, e4), [r5.memoizedState, e4];
    }
    function mn(e4) {
      return hn(un(), Ns, e4);
    }
    function hn(e4, n8, t5) {
      var r5 = e4.queue;
      if (null === r5) throw Error("Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)");
      r5.lastRenderedReducer = t5;
      var l5 = e4.baseQueue, a6 = r5.pending;
      if (null !== a6) {
        if (null !== l5) {
          var o6 = l5.next;
          l5.next = a6.next, a6.next = o6;
        }
        n8.baseQueue !== l5 && console.error("Internal error: Expected work-in-progress queue to be a clone. This is a bug in React."), n8.baseQueue = l5 = a6, r5.pending = null;
      }
      if (a6 = e4.baseState, null === l5) e4.memoizedState = a6;
      else {
        var u5 = o6 = null, i6 = null, s5 = n8 = l5.next, c7 = false;
        do {
          var f5 = -536870913 & s5.lane;
          if (f5 !== s5.lane ? (df & f5) === f5 : (Rs & f5) === f5) {
            var d4 = s5.revertLane;
            if (0 === d4) null !== i6 && (i6 = i6.next = { lane: 0, revertLane: 0, action: s5.action, hasEagerState: s5.hasEagerState, eagerState: s5.eagerState, next: null }), f5 === di && (c7 = true);
            else {
              if ((Rs & d4) === d4) {
                s5 = s5.next, d4 === di && (c7 = true);
                continue;
              }
              f5 = { lane: 0, revertLane: s5.revertLane, action: s5.action, hasEagerState: s5.hasEagerState, eagerState: s5.eagerState, next: null }, null === i6 ? (u5 = i6 = f5, o6 = a6) : i6 = i6.next = f5, Ts.lanes |= d4, _f |= d4;
            }
            f5 = s5.action, Is && t5(a6, f5), a6 = s5.hasEagerState ? s5.eagerState : t5(a6, f5);
          } else d4 = { lane: f5, revertLane: s5.revertLane, action: s5.action, hasEagerState: s5.hasEagerState, eagerState: s5.eagerState, next: null }, null === i6 ? (u5 = i6 = d4, o6 = a6) : i6 = i6.next = d4, Ts.lanes |= f5, _f |= f5;
          s5 = s5.next;
        } while (null !== s5 && s5 !== n8);
        if (null === i6 ? o6 = a6 : i6.next = u5, !Ru(a6, e4.memoizedState) && (pc = true, c7 && null !== (t5 = pi))) throw t5;
        e4.memoizedState = a6, e4.baseState = o6, e4.baseQueue = i6, r5.lastRenderedState = a6;
      }
      return null === l5 && (r5.lanes = 0), [e4.memoizedState, r5.dispatch];
    }
    function gn(e4) {
      var n8 = un(), t5 = n8.queue;
      if (null === t5) throw Error("Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)");
      t5.lastRenderedReducer = e4;
      var r5 = t5.dispatch, l5 = t5.pending, a6 = n8.memoizedState;
      if (null !== l5) {
        t5.pending = null;
        var o6 = l5 = l5.next;
        do {
          a6 = e4(a6, o6.action), o6 = o6.next;
        } while (o6 !== l5);
        Ru(a6, n8.memoizedState) || (pc = true), n8.memoizedState = a6, null === n8.baseQueue && (n8.baseState = a6), t5.lastRenderedState = a6;
      }
      return [a6, r5];
    }
    function yn(e4, n8, t5) {
      var r5, l5 = Ts, a6 = on2();
      if (r5 = n8(), cs || (t5 = n8(), Ru(r5, t5) || (console.error("The result of getSnapshot should be cached to avoid an infinite loop"), cs = true)), null === cf) throw Error("Expected a work-in-progress root. This is a bug in React. Please file an issue.");
      return 0 != (60 & df) || vn(l5, n8, r5), a6.memoizedState = r5, t5 = { value: r5, getSnapshot: n8 }, a6.queue = t5, $n(kn.bind(null, l5, t5, e4), [e4]), l5.flags |= 2048, Qn(ks | zs, Sn.bind(null, l5, t5, r5, n8), { destroy: void 0 }, null), r5;
    }
    function bn(e4, n8, t5) {
      var r5 = Ts, l5 = un();
      if (t5 = n8(), !cs) {
        var a6 = n8();
        Ru(t5, a6) || (console.error("The result of getSnapshot should be cached to avoid an infinite loop"), cs = true);
      }
      (a6 = !Ru((Ns || l5).memoizedState, t5)) && (l5.memoizedState = t5, pc = true), l5 = l5.queue;
      var o6 = kn.bind(null, r5, l5, e4);
      if (Vn(2048, zs, o6, [e4]), l5.getSnapshot !== n8 || a6 || null !== Ls && Ls.memoizedState.tag & ks) {
        if (r5.flags |= 2048, Qn(ks | zs, Sn.bind(null, r5, l5, t5, n8), { destroy: void 0 }, null), null === cf) throw Error("Expected a work-in-progress root. This is a bug in React. Please file an issue.");
        0 != (60 & Rs) || vn(r5, n8, t5);
      }
      return t5;
    }
    function vn(e4, n8, t5) {
      e4.flags |= 16384, e4 = { getSnapshot: n8, value: t5 }, null === (n8 = Ts.updateQueue) ? (n8 = Vs(), Ts.updateQueue = n8, n8.stores = [e4]) : null === (t5 = n8.stores) ? n8.stores = [e4] : t5.push(e4);
    }
    function Sn(e4, n8, t5, r5) {
      n8.value = t5, n8.getSnapshot = r5, wn(n8) && xn(e4);
    }
    function kn(e4, n8, t5) {
      return t5((function() {
        wn(n8) && xn(e4);
      }));
    }
    function wn(e4) {
      var n8 = e4.getSnapshot;
      e4 = e4.value;
      try {
        var t5 = n8();
        return !Ru(e4, t5);
      } catch (e5) {
        return true;
      }
    }
    function xn(e4) {
      var n8 = $(e4, 2);
      null !== n8 && Cl(n8, e4, 2);
    }
    function zn(e4) {
      var n8 = on2();
      if ("function" == typeof e4) {
        var t5 = e4;
        if (e4 = t5(), Is) {
          U(true);
          try {
            t5();
          } finally {
            U(false);
          }
        }
      }
      return n8.memoizedState = n8.baseState = e4, n8.queue = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: dn, lastRenderedState: e4 }, n8;
    }
    function Cn(e4) {
      var n8 = (e4 = zn(e4)).queue, t5 = ht.bind(null, Ts, n8);
      return n8.dispatch = t5, [e4.memoizedState, t5];
    }
    function En(e4) {
      var n8 = on2();
      n8.memoizedState = n8.baseState = e4;
      var t5 = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: null, lastRenderedState: null };
      return n8.queue = t5, n8 = yt.bind(null, Ts, true, t5), t5.dispatch = n8, [e4, n8];
    }
    function Pn(e4, n8) {
      return _n(un(), 0, e4, n8);
    }
    function _n(e4, n8, t5, r5) {
      return e4.baseState = t5, hn(e4, Ns, "function" == typeof r5 ? r5 : dn);
    }
    function Rn(e4, n8) {
      var t5 = un();
      return null !== Ns ? _n(t5, 0, e4, n8) : (t5.baseState = e4, [e4, t5.queue.dispatch]);
    }
    function Tn(e4, n8, t5, r5, l5) {
      if (bt(e4)) throw Error("Cannot update form state while rendering.");
      if (null !== (e4 = n8.action)) {
        var a6 = { payload: l5, action: e4, next: null, isTransition: true, status: "pending", value: null, reason: null, listeners: [], then: function(e5) {
          a6.listeners.push(e5);
        } };
        null !== Ja.T ? t5(true) : a6.isTransition = false, r5(a6), null === (t5 = n8.pending) ? (a6.next = n8.pending = a6, Nn(n8, a6)) : (a6.next = t5.next, n8.pending = t5.next = a6);
      }
    }
    function Nn(e4, n8) {
      var t5 = n8.action, r5 = n8.payload, l5 = e4.state;
      if (n8.isTransition) {
        var a6 = Ja.T, o6 = {};
        Ja.T = o6, Ja.T._updatedFibers = /* @__PURE__ */ new Set();
        try {
          var u5 = t5(l5, r5), i6 = Ja.S;
          null !== i6 && i6(o6, u5), Ln(e4, n8, u5);
        } catch (t6) {
          Dn(e4, n8, t6);
        } finally {
          Ja.T = a6, null === a6 && o6._updatedFibers && (e4 = o6._updatedFibers.size, o6._updatedFibers.clear(), 10 < e4 && console.warn("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."));
        }
      } else try {
        Ln(e4, n8, o6 = t5(l5, r5));
      } catch (t6) {
        Dn(e4, n8, t6);
      }
    }
    function Ln(e4, n8, t5) {
      null !== t5 && "object" == typeof t5 && "function" == typeof t5.then ? (t5.then((function(t6) {
        Un(e4, n8, t6);
      }), (function(t6) {
        return Dn(e4, n8, t6);
      })), n8.isTransition || console.error("An async function was passed to useActionState, but it was dispatched outside of an action context. This is likely not what you intended. Either pass the dispatch function to an `action` prop, or dispatch manually inside `startTransition`")) : Un(e4, n8, t5);
    }
    function Un(e4, n8, t5) {
      n8.status = "fulfilled", n8.value = t5, In(n8), e4.state = t5, null !== (n8 = e4.pending) && ((t5 = n8.next) === n8 ? e4.pending = null : (t5 = t5.next, n8.next = t5, Nn(e4, t5)));
    }
    function Dn(e4, n8, t5) {
      var r5 = e4.pending;
      if (e4.pending = null, null !== r5) {
        r5 = r5.next;
        do {
          n8.status = "rejected", n8.reason = t5, In(n8), n8 = n8.next;
        } while (n8 !== r5);
      }
      e4.action = null;
    }
    function In(e4) {
      e4 = e4.listeners;
      for (var n8 = 0; n8 < e4.length; n8++) (0, e4[n8])();
    }
    function Fn(e4, n8) {
      return n8;
    }
    function Mn(e4, n8) {
      var t5, r5, l5;
      (t5 = on2()).memoizedState = t5.baseState = n8, r5 = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: Fn, lastRenderedState: n8 }, t5.queue = r5, t5 = ht.bind(null, Ts, r5), r5.dispatch = t5, r5 = zn(false);
      var a6 = yt.bind(null, Ts, false, r5.queue);
      return l5 = { state: n8, dispatch: null, action: e4, pending: null }, (r5 = on2()).queue = l5, t5 = Tn.bind(null, Ts, l5, a6, t5), l5.dispatch = t5, r5.memoizedState = e4, [n8, t5, false];
    }
    function Wn(e4) {
      return Hn(un(), Ns, e4);
    }
    function Hn(e4, n8, t5) {
      n8 = hn(e4, n8, Fn)[0], e4 = mn(dn)[0], n8 = "object" == typeof n8 && null !== n8 && "function" == typeof n8.then ? sn(n8) : n8;
      var r5 = un(), l5 = r5.queue, a6 = l5.dispatch;
      return t5 !== r5.memoizedState && (Ts.flags |= 2048, Qn(ks | zs, jn.bind(null, l5, t5), { destroy: void 0 }, null)), [n8, a6, e4];
    }
    function jn(e4, n8) {
      e4.action = n8;
    }
    function An(e4) {
      var n8 = un(), t5 = Ns;
      if (null !== t5) return Hn(n8, t5, e4);
      un(), n8 = n8.memoizedState;
      var r5 = (t5 = un()).queue.dispatch;
      return t5.memoizedState = e4, [n8, r5, false];
    }
    function Qn(e4, n8, t5, r5) {
      return e4 = { tag: e4, create: n8, inst: t5, deps: r5, next: null }, null === (n8 = Ts.updateQueue) && (n8 = Vs(), Ts.updateQueue = n8), null === (t5 = n8.lastEffect) ? n8.lastEffect = e4.next = e4 : (r5 = t5.next, t5.next = e4, e4.next = r5, n8.lastEffect = e4), e4;
    }
    function On(e4) {
      return e4 = { current: e4 }, on2().memoizedState = e4;
    }
    function Bn(e4, n8, t5, r5) {
      var l5 = on2();
      Ts.flags |= e4, l5.memoizedState = Qn(ks | n8, t5, { destroy: void 0 }, void 0 === r5 ? null : r5);
    }
    function Vn(e4, n8, t5, r5) {
      var l5 = un();
      r5 = void 0 === r5 ? null : r5;
      var a6 = l5.memoizedState.inst;
      null !== Ns && null !== r5 && Xe(r5, Ns.memoizedState.deps) ? l5.memoizedState = Qn(n8, t5, a6, r5) : (Ts.flags |= e4, l5.memoizedState = Qn(ks | n8, t5, a6, r5));
    }
    function $n(e4, n8) {
      (16 & Ts.mode) !== $u && (64 & Ts.mode) === $u ? Bn(142608384, zs, e4, n8) : Bn(8390656, zs, e4, n8);
    }
    function qn(e4, n8) {
      var t5 = 4194308;
      return (16 & Ts.mode) !== $u && (t5 |= 67108864), Bn(t5, xs, e4, n8);
    }
    function Yn(e4, n8) {
      if ("function" == typeof n8) {
        e4 = e4();
        var t5 = n8(e4);
        return function() {
          "function" == typeof t5 ? t5() : n8(null);
        };
      }
      if (null != n8) return n8.hasOwnProperty("current") || console.error("Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.", "an object with keys {" + Object.keys(n8).join(", ") + "}"), e4 = e4(), n8.current = e4, function() {
        n8.current = null;
      };
    }
    function Gn(e4, n8, t5) {
      "function" != typeof n8 && console.error("Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.", null !== n8 ? typeof n8 : "null"), t5 = null != t5 ? t5.concat([e4]) : null;
      var r5 = 4194308;
      (16 & Ts.mode) !== $u && (r5 |= 67108864), Bn(r5, xs, Yn.bind(null, n8, e4), t5);
    }
    function Jn(e4, n8, t5) {
      "function" != typeof n8 && console.error("Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.", null !== n8 ? typeof n8 : "null"), t5 = null != t5 ? t5.concat([e4]) : null, Vn(4, xs, Yn.bind(null, n8, e4), t5);
    }
    function Kn(e4, n8) {
      return on2().memoizedState = [e4, void 0 === n8 ? null : n8], e4;
    }
    function Xn(e4, n8) {
      var t5 = un();
      n8 = void 0 === n8 ? null : n8;
      var r5 = t5.memoizedState;
      return null !== n8 && Xe(n8, r5[1]) ? r5[0] : (t5.memoizedState = [e4, n8], e4);
    }
    function Zn(e4, n8) {
      var t5 = on2();
      n8 = void 0 === n8 ? null : n8;
      var r5 = e4();
      if (Is) {
        U(true);
        try {
          e4();
        } finally {
          U(false);
        }
      }
      return t5.memoizedState = [r5, n8], r5;
    }
    function et2(e4, n8) {
      var t5 = un();
      n8 = void 0 === n8 ? null : n8;
      var r5 = t5.memoizedState;
      if (null !== n8 && Xe(n8, r5[1])) return r5[0];
      if (r5 = e4(), Is) {
        U(true);
        try {
          e4();
        } finally {
          U(false);
        }
      }
      return t5.memoizedState = [r5, n8], r5;
    }
    function nt(e4, n8) {
      return lt(on2(), e4, n8);
    }
    function tt(e4, n8) {
      return at(un(), Ns.memoizedState, e4, n8);
    }
    function rt(e4, n8) {
      var t5 = un();
      return null === Ns ? lt(t5, e4, n8) : at(t5, Ns.memoizedState, e4, n8);
    }
    function lt(e4, n8, t5) {
      return void 0 === t5 || 0 != (1073741824 & Rs) ? e4.memoizedState = n8 : (e4.memoizedState = t5, e4 = zl(), Ts.lanes |= e4, _f |= e4, t5);
    }
    function at(e4, n8, t5, r5) {
      return Ru(t5, n8) ? t5 : null !== ps.current ? (e4 = lt(e4, t5, r5), Ru(e4, n8) || (pc = true), e4) : 0 == (42 & Rs) ? (pc = true, e4.memoizedState = t5) : (e4 = zl(), Ts.lanes |= e4, _f |= e4, n8);
    }
    function ot(e4, n8, t5, r5, l5) {
      var a6 = xo();
      wo(0 !== a6 && 8 > a6 ? a6 : 8);
      var o6, u5, i6, s5 = Ja.T, c7 = {};
      Ja.T = c7, yt(e4, false, n8, t5), c7._updatedFibers = /* @__PURE__ */ new Set();
      try {
        var f5 = l5(), d4 = Ja.S;
        null !== d4 && d4(c7, f5), null !== f5 && "object" == typeof f5 && "function" == typeof f5.then ? gt(e4, n8, (o6 = r5, u5 = [], i6 = { status: "pending", value: null, reason: null, then: function(e5) {
          u5.push(e5);
        } }, f5.then((function() {
          i6.status = "fulfilled", i6.value = o6;
          for (var e5 = 0; e5 < u5.length; e5++) (0, u5[e5])(o6);
        }), (function(e5) {
          for (i6.status = "rejected", i6.reason = e5, e5 = 0; e5 < u5.length; e5++) (0, u5[e5])(void 0);
        })), i6), xl(e4)) : gt(e4, n8, r5, xl(e4));
      } catch (t6) {
        gt(e4, n8, { then: function() {
        }, status: "rejected", reason: t6 }, xl(e4));
      } finally {
        wo(a6), Ja.T = s5, null === s5 && c7._updatedFibers && (e4 = c7._updatedFibers.size, c7._updatedFibers.clear(), 10 < e4 && console.warn("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."));
      }
    }
    function ut() {
      var e4 = zn(false);
      return e4 = ot.bind(null, Ts, e4.queue, true, false), on2().memoizedState = e4, [false, e4];
    }
    function it() {
      var e4 = mn(dn)[0], n8 = un().memoizedState;
      return ["boolean" == typeof e4 ? e4 : sn(e4), n8];
    }
    function st() {
      var e4 = gn(dn)[0], n8 = un().memoizedState;
      return ["boolean" == typeof e4 ? e4 : sn(e4), n8];
    }
    function ct() {
      return sr(Uo);
    }
    function ft() {
      var e4 = on2(), n8 = cf.identifierPrefix;
      return n8 = ":" + n8 + "r" + (Hs++).toString(32) + ":", e4.memoizedState = n8;
    }
    function dt() {
      return on2().memoizedState = pt.bind(null, Ts);
    }
    function pt(e4, n8) {
      for (var t5 = e4.return; null !== t5; ) {
        switch (t5.tag) {
          case 24:
          case 3:
            var r5 = xl(t5), l5 = ye(t5, e4 = ge(r5), r5);
            return null !== l5 && (Cl(l5, t5, r5), be(l5, t5, r5)), t5 = dr(), null != n8 && null !== l5 && console.error("The seed argument is not enabled outside experimental channels."), void (e4.payload = { cache: t5 });
        }
        t5 = t5.return;
      }
    }
    function mt(e4, n8, t5, r5) {
      "function" == typeof r5 && console.error("State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect()."), t5 = { lane: r5 = xl(e4), revertLane: 0, action: t5, hasEagerState: false, eagerState: null, next: null }, bt(e4) ? vt(n8, t5) : null !== (t5 = V(e4, n8, t5, r5)) && (Cl(t5, e4, r5), St(t5, n8, r5));
    }
    function ht(e4, n8, t5, r5) {
      "function" == typeof r5 && console.error("State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect()."), gt(e4, n8, t5, r5 = xl(e4));
    }
    function gt(e4, n8, t5, r5) {
      var l5 = { lane: r5, revertLane: 0, action: t5, hasEagerState: false, eagerState: null, next: null };
      if (bt(e4)) vt(n8, l5);
      else {
        var a6 = e4.alternate;
        if (0 === e4.lanes && (null === a6 || 0 === a6.lanes) && null !== (a6 = n8.lastRenderedReducer)) {
          var o6 = Ja.H;
          Ja.H = Xs;
          try {
            var u5 = n8.lastRenderedState, i6 = a6(u5, t5);
            if (l5.hasEagerState = true, l5.eagerState = i6, Ru(i6, u5)) return B(e4, n8, l5, 0), null === cf && O(), false;
          } catch (e5) {
          } finally {
            Ja.H = o6;
          }
        }
        if (null !== (t5 = V(e4, n8, l5, r5))) return Cl(t5, e4, r5), St(t5, n8, r5), true;
      }
      return false;
    }
    function yt(e4, n8, t5, r5) {
      if (null === Ja.T && 0 === di && console.error("An optimistic state update occurred outside a transition or action. To fix, move the update to an action, or wrap with startTransition."), r5 = { lane: 2, revertLane: de(), action: r5, hasEagerState: false, eagerState: null, next: null }, bt(e4)) {
        if (n8) throw Error("Cannot update optimistic state while rendering.");
        console.error("Cannot call startTransition while rendering.");
      } else null !== (n8 = V(e4, t5, r5, 2)) && Cl(n8, e4, 2);
    }
    function bt(e4) {
      var n8 = e4.alternate;
      return e4 === Ts || null !== n8 && n8 === Ts;
    }
    function vt(e4, n8) {
      Ds = Us = true;
      var t5 = e4.pending;
      null === t5 ? n8.next = n8 : (n8.next = t5.next, t5.next = n8), e4.pending = n8;
    }
    function St(e4, n8, t5) {
      if (0 != (4194176 & t5)) {
        var r5 = n8.lanes;
        t5 |= r5 &= e4.pendingLanes, n8.lanes = t5, R(e4, t5);
      }
    }
    function kt(e4) {
      if (null !== e4 && "function" != typeof e4) {
        var n8 = String(e4);
        cc.has(n8) || (cc.add(n8), console.error("Expected the last optional `callback` argument to be a function. Instead received: %s.", e4));
      }
    }
    function wt(e4, n8, t5, r5) {
      var l5 = e4.memoizedState, a6 = t5(r5, l5);
      if (8 & e4.mode) {
        U(true);
        try {
          a6 = t5(r5, l5);
        } finally {
          U(false);
        }
      }
      void 0 === a6 && (n8 = s4(n8) || "Component", oc.has(n8) || (oc.add(n8), console.error("%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.", n8))), l5 = null == a6 ? l5 : Na({}, l5, a6), e4.memoizedState = l5, 0 === e4.lanes && (e4.updateQueue.baseState = l5);
    }
    function xt(e4, n8, t5, r5, l5, a6, o6) {
      var u5 = e4.stateNode;
      if ("function" == typeof u5.shouldComponentUpdate) {
        if (t5 = u5.shouldComponentUpdate(r5, a6, o6), 8 & e4.mode) {
          U(true);
          try {
            t5 = u5.shouldComponentUpdate(r5, a6, o6);
          } finally {
            U(false);
          }
        }
        return void 0 === t5 && console.error("%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.", s4(n8) || "Component"), t5;
      }
      return !(n8.prototype && n8.prototype.isPureReactComponent && Ce(t5, r5) && Ce(l5, a6));
    }
    function zt(e4, n8, t5, r5) {
      var l5 = n8.state;
      "function" == typeof n8.componentWillReceiveProps && n8.componentWillReceiveProps(t5, r5), "function" == typeof n8.UNSAFE_componentWillReceiveProps && n8.UNSAFE_componentWillReceiveProps(t5, r5), n8.state !== l5 && (e4 = c6(e4) || "Component", nc.has(e4) || (nc.add(e4), console.error("%s.componentWillReceiveProps(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.", e4)), fc.enqueueReplaceState(n8, n8.state, null));
    }
    function Ct(e4, n8) {
      var t5 = n8;
      if ("ref" in n8) for (var r5 in t5 = {}, n8) "ref" !== r5 && (t5[r5] = n8[r5]);
      if (e4 = e4.defaultProps) for (var l5 in t5 === n8 && (t5 = Na({}, t5)), e4) void 0 === t5[l5] && (t5[l5] = e4[l5]);
      return t5;
    }
    function Et(e4, n8) {
      try {
        n8.source && c6(n8.source);
        var t5 = n8.value;
        null !== Ja.actQueue ? Ja.thrownErrors.push(t5) : (0, e4.onUncaughtError)(t5, { componentStack: n8.stack });
      } catch (e5) {
        setTimeout((function() {
          throw e5;
        }));
      }
    }
    function Pt(e4, n8, t5) {
      try {
        t5.source && c6(t5.source), c6(n8), (0, e4.onCaughtError)(t5.value, { componentStack: t5.stack, errorBoundary: 1 === n8.tag ? n8.stateNode : null });
      } catch (e5) {
        setTimeout((function() {
          throw e5;
        }));
      }
    }
    function _t(e4, n8, t5) {
      return (t5 = ge(t5)).tag = yi, t5.payload = { element: null }, t5.callback = function() {
        y3(n8.source, Et, e4, n8);
      }, t5;
    }
    function Rt(e4) {
      return (e4 = ge(e4)).tag = yi, e4;
    }
    function Tt(e4, n8, t5, r5) {
      var l5 = t5.type.getDerivedStateFromError;
      if ("function" == typeof l5) {
        var a6 = r5.value;
        e4.payload = function() {
          return l5(a6);
        }, e4.callback = function() {
          y3(r5.source, Pt, n8, t5, r5);
        };
      }
      var o6 = t5.stateNode;
      null !== o6 && "function" == typeof o6.componentDidCatch && (e4.callback = function() {
        y3(r5.source, Pt, n8, t5, r5), "function" != typeof l5 && (null === Af ? Af = /* @__PURE__ */ new Set([this]) : Af.add(this)), Yi(this, r5), "function" == typeof l5 || 0 == (2 & t5.lanes) && console.error("%s: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.", c6(t5) || "Unknown");
      });
    }
    function Nt(e4, n8, t5, r5) {
      n8.child = null === e4 ? ds(n8, null, t5, r5) : fs7(n8, e4.child, t5, r5);
    }
    function Lt(e4, n8, t5, r5, l5) {
      t5 = t5.render;
      var a6 = n8.ref;
      if ("ref" in r5) {
        var o6 = {};
        for (var u5 in r5) "ref" !== u5 && (o6[u5] = r5[u5]);
      } else o6 = r5;
      return ir(n8), r5 = Ze(e4, n8, t5, o6, a6, l5), u5 = rn(), null === e4 || pc ? (n8.flags |= 1, Nt(e4, n8, r5, l5), n8.child) : (ln(e4, n8, l5), Xt(e4, n8, l5));
    }
    function Ut(e4, n8, t5, r5, l5) {
      if (null === e4) {
        var a6 = t5.type;
        return "function" != typeof a6 || ca(a6) || void 0 !== a6.defaultProps || null !== t5.compare ? ((e4 = pa(t5.type, null, r5, n8, n8.mode, l5)).ref = n8.ref, e4.return = n8, n8.child = e4) : (t5 = a6, n8.tag = 15, n8.type = t5, At(n8, a6), Dt(e4, n8, t5, r5, l5));
      }
      if (a6 = e4.child, !Zt(e4, l5)) {
        var o6 = a6.memoizedProps;
        if ((t5 = null !== (t5 = t5.compare) ? t5 : Ce)(o6, r5) && e4.ref === n8.ref) return Xt(e4, n8, l5);
      }
      return n8.flags |= 1, (e4 = fa(a6, r5)).ref = n8.ref, e4.return = n8, n8.child = e4;
    }
    function Dt(e4, n8, t5, r5, l5) {
      if (null !== e4) {
        var a6 = e4.memoizedProps;
        if (Ce(a6, r5) && e4.ref === n8.ref && n8.type === e4.type) {
          if (pc = false, n8.pendingProps = r5 = a6, !Zt(e4, l5)) return n8.lanes = e4.lanes, Xt(e4, n8, l5);
          0 != (131072 & e4.flags) && (pc = true);
        }
      }
      return Wt(e4, n8, t5, r5, l5);
    }
    function It(e4, n8, t5) {
      var r5 = n8.pendingProps, l5 = r5.children, a6 = 0 != (2 & n8.stateNode._pendingVisibility), o6 = null !== e4 ? e4.memoizedState : null;
      if (Mt(e4, n8), "hidden" === r5.mode || a6) {
        if (0 != (128 & n8.flags)) {
          if (r5 = null !== o6 ? o6.baseLanes | t5 : t5, null !== e4) {
            for (l5 = n8.child = e4.child, a6 = 0; null !== l5; ) a6 = a6 | l5.lanes | l5.childLanes, l5 = l5.sibling;
            n8.childLanes = a6 & ~r5;
          } else n8.childLanes = 0, n8.child = null;
          return Ft(e4, n8, r5, t5);
        }
        if (0 == (536870912 & t5)) return n8.lanes = n8.childLanes = 536870912, Ft(e4, n8, null !== o6 ? o6.baseLanes | t5 : t5, t5);
        n8.memoizedState = { baseLanes: 0, cachePool: null }, null !== e4 && gr(n8, null !== o6 ? o6.cachePool : null), null !== o6 ? He(n8, o6) : je(n8), Oe(n8);
      } else null !== o6 ? (gr(n8, o6.cachePool), He(n8, o6), Be(n8), n8.memoizedState = null) : (null !== e4 && gr(n8, null), je(n8), Be(n8));
      return Nt(e4, n8, l5, t5), n8.child;
    }
    function Ft(e4, n8, t5, r5) {
      var l5 = hr();
      return l5 = null === l5 ? null : { parent: Uc._currentValue2, pool: l5 }, n8.memoizedState = { baseLanes: t5, cachePool: l5 }, null !== e4 && gr(n8, null), je(n8), Oe(n8), null !== e4 && or(e4, n8, r5, true), null;
    }
    function Mt(e4, n8) {
      var t5 = n8.ref;
      if (null === t5) null !== e4 && null !== e4.ref && (n8.flags |= 2097664);
      else {
        if ("function" != typeof t5 && "object" != typeof t5) throw Error("Expected ref to be a function, an object returned by React.createRef(), or undefined/null.");
        null !== e4 && e4.ref === t5 || (n8.flags |= 2097664);
      }
    }
    function Wt(e4, n8, t5, r5, l5) {
      if (t5.prototype && "function" == typeof t5.prototype.render) {
        var a6 = s4(t5) || "Unknown";
        mc[a6] || (console.error("The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.", a6, a6), mc[a6] = true);
      }
      return 8 & n8.mode && xi.recordLegacyContextWarning(n8, null), null === e4 && (At(n8, n8.type), t5.contextTypes && (a6 = s4(t5) || "Unknown", gc[a6] || (gc[a6] = true, console.error("%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)", a6)))), ir(n8), t5 = Ze(e4, n8, t5, r5, void 0, l5), r5 = rn(), null === e4 || pc ? (n8.flags |= 1, Nt(e4, n8, t5, l5), n8.child) : (ln(e4, n8, l5), Xt(e4, n8, l5));
    }
    function Ht(e4, n8, t5, r5, l5, a6) {
      return ir(n8), Os = -1, Bs = null !== e4 && e4.type !== n8.type, n8.updateQueue = null, t5 = nn(n8, r5, t5, l5), en(e4, n8), r5 = rn(), null === e4 || pc ? (n8.flags |= 1, Nt(e4, n8, t5, a6), n8.child) : (ln(e4, n8, a6), Xt(e4, n8, a6));
    }
    function jt(e4, n8, t5, r5, l5) {
      var a6, o6, u5;
      if (ir(n8), null === n8.stateNode) {
        if (o6 = su, a6 = t5.contextType, "contextType" in t5 && null !== a6 && (void 0 === a6 || a6.$$typeof !== ja) && !sc.has(t5) && (sc.add(t5), u5 = void 0 === a6 ? " However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file." : "object" != typeof a6 ? " However, it is set to a " + typeof a6 + "." : a6.$$typeof === Ha ? " Did you accidentally pass the Context.Consumer instead?" : " However, it is set to an object with keys {" + Object.keys(a6).join(", ") + "}.", console.error("%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s", s4(t5) || "Component", u5)), "object" == typeof a6 && null !== a6 && (o6 = sr(a6)), a6 = new t5(r5, o6), 8 & n8.mode) {
          U(true);
          try {
            a6 = new t5(r5, o6);
          } finally {
            U(false);
          }
        }
        if (o6 = n8.memoizedState = null !== a6.state && void 0 !== a6.state ? a6.state : null, a6.updater = fc, n8.stateNode = a6, a6._reactInternals = n8, a6._reactInternalInstance = ec2, "function" == typeof t5.getDerivedStateFromProps && null === o6 && (o6 = s4(t5) || "Component", tc.has(o6) || (tc.add(o6), console.error("`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.", o6, null === a6.state ? "null" : "undefined", o6))), "function" == typeof t5.getDerivedStateFromProps || "function" == typeof a6.getSnapshotBeforeUpdate) {
          var i6 = u5 = o6 = null;
          if ("function" == typeof a6.componentWillMount && true !== a6.componentWillMount.__suppressDeprecationWarning ? o6 = "componentWillMount" : "function" == typeof a6.UNSAFE_componentWillMount && (o6 = "UNSAFE_componentWillMount"), "function" == typeof a6.componentWillReceiveProps && true !== a6.componentWillReceiveProps.__suppressDeprecationWarning ? u5 = "componentWillReceiveProps" : "function" == typeof a6.UNSAFE_componentWillReceiveProps && (u5 = "UNSAFE_componentWillReceiveProps"), "function" == typeof a6.componentWillUpdate && true !== a6.componentWillUpdate.__suppressDeprecationWarning ? i6 = "componentWillUpdate" : "function" == typeof a6.UNSAFE_componentWillUpdate && (i6 = "UNSAFE_componentWillUpdate"), null !== o6 || null !== u5 || null !== i6) {
            a6 = s4(t5) || "Component";
            var f5 = "function" == typeof t5.getDerivedStateFromProps ? "getDerivedStateFromProps()" : "getSnapshotBeforeUpdate()";
            lc.has(a6) || (lc.add(a6), console.error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://react.dev/link/unsafe-component-lifecycles", a6, f5, null !== o6 ? "\n  " + o6 : "", null !== u5 ? "\n  " + u5 : "", null !== i6 ? "\n  " + i6 : ""));
          }
        }
        a6 = n8.stateNode, o6 = s4(t5) || "Component", a6.render || (t5.prototype && "function" == typeof t5.prototype.render ? console.error("No `render` method found on the %s instance: did you accidentally return an object from the constructor?", o6) : console.error("No `render` method found on the %s instance: you may have forgotten to define `render`.", o6)), !a6.getInitialState || a6.getInitialState.isReactClassApproved || a6.state || console.error("getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?", o6), a6.getDefaultProps && !a6.getDefaultProps.isReactClassApproved && console.error("getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.", o6), a6.contextType && console.error("contextType was defined as an instance property on %s. Use a static property to define contextType instead.", o6), t5.childContextTypes && !ic.has(t5) && (ic.add(t5), console.error("%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)", o6)), t5.contextTypes && !uc.has(t5) && (uc.add(t5), console.error("%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)", o6)), "function" == typeof a6.componentShouldUpdate && console.error("%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.", o6), t5.prototype && t5.prototype.isPureReactComponent && void 0 !== a6.shouldComponentUpdate && console.error("%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.", s4(t5) || "A pure component"), "function" == typeof a6.componentDidUnmount && console.error("%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?", o6), "function" == typeof a6.componentDidReceiveProps && console.error("%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().", o6), "function" == typeof a6.componentWillRecieveProps && console.error("%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?", o6), "function" == typeof a6.UNSAFE_componentWillRecieveProps && console.error("%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?", o6), u5 = a6.props !== r5, void 0 !== a6.props && u5 && console.error("When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.", o6), a6.defaultProps && console.error("Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.", o6, o6), "function" != typeof a6.getSnapshotBeforeUpdate || "function" == typeof a6.componentDidUpdate || rc.has(t5) || (rc.add(t5), console.error("%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.", s4(t5))), "function" == typeof a6.getDerivedStateFromProps && console.error("%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.", o6), "function" == typeof a6.getDerivedStateFromError && console.error("%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.", o6), "function" == typeof t5.getSnapshotBeforeUpdate && console.error("%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.", o6), (u5 = a6.state) && ("object" != typeof u5 || lo(u5)) && console.error("%s.state: must be set to an object or null", o6), "function" == typeof a6.getChildContext && "object" != typeof t5.childContextTypes && console.error("%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().", o6), (a6 = n8.stateNode).props = r5, a6.state = n8.memoizedState, a6.refs = {}, me(n8), o6 = t5.contextType, a6.context = "object" == typeof o6 && null !== o6 ? sr(o6) : su, a6.state === r5 && (o6 = s4(t5) || "Component", ac.has(o6) || (ac.add(o6), console.error("%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.", o6))), 8 & n8.mode && xi.recordLegacyContextWarning(n8, a6), xi.recordUnsafeLifecycleWarnings(n8, a6), a6.state = n8.memoizedState, "function" == typeof (o6 = t5.getDerivedStateFromProps) && (wt(n8, t5, o6, r5), a6.state = n8.memoizedState), "function" == typeof t5.getDerivedStateFromProps || "function" == typeof a6.getSnapshotBeforeUpdate || "function" != typeof a6.UNSAFE_componentWillMount && "function" != typeof a6.componentWillMount || (o6 = a6.state, "function" == typeof a6.componentWillMount && a6.componentWillMount(), "function" == typeof a6.UNSAFE_componentWillMount && a6.UNSAFE_componentWillMount(), o6 !== a6.state && (console.error("%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.", c6(n8) || "Component"), fc.enqueueReplaceState(a6, a6.state, null)), ke(n8, r5, a6, l5), Se(), a6.state = n8.memoizedState), "function" == typeof a6.componentDidMount && (n8.flags |= 4194308), (16 & n8.mode) !== $u && (n8.flags |= 67108864), a6 = true;
      } else if (null === e4) {
        a6 = n8.stateNode;
        var d4 = n8.memoizedProps;
        u5 = Ct(t5, d4), a6.props = u5;
        var p4 = a6.context;
        i6 = t5.contextType, o6 = su, "object" == typeof i6 && null !== i6 && (o6 = sr(i6)), i6 = "function" == typeof (f5 = t5.getDerivedStateFromProps) || "function" == typeof a6.getSnapshotBeforeUpdate, d4 = n8.pendingProps !== d4, i6 || "function" != typeof a6.UNSAFE_componentWillReceiveProps && "function" != typeof a6.componentWillReceiveProps || (d4 || p4 !== o6) && zt(n8, a6, r5, o6), bi = false;
        var m4 = n8.memoizedState;
        a6.state = m4, ke(n8, r5, a6, l5), Se(), p4 = n8.memoizedState, d4 || m4 !== p4 || bi ? ("function" == typeof f5 && (wt(n8, t5, f5, r5), p4 = n8.memoizedState), (u5 = bi || xt(n8, t5, u5, r5, m4, p4, o6)) ? (i6 || "function" != typeof a6.UNSAFE_componentWillMount && "function" != typeof a6.componentWillMount || ("function" == typeof a6.componentWillMount && a6.componentWillMount(), "function" == typeof a6.UNSAFE_componentWillMount && a6.UNSAFE_componentWillMount()), "function" == typeof a6.componentDidMount && (n8.flags |= 4194308), (16 & n8.mode) !== $u && (n8.flags |= 67108864)) : ("function" == typeof a6.componentDidMount && (n8.flags |= 4194308), (16 & n8.mode) !== $u && (n8.flags |= 67108864), n8.memoizedProps = r5, n8.memoizedState = p4), a6.props = r5, a6.state = p4, a6.context = o6, a6 = u5) : ("function" == typeof a6.componentDidMount && (n8.flags |= 4194308), (16 & n8.mode) !== $u && (n8.flags |= 67108864), a6 = false);
      } else {
        a6 = n8.stateNode, he(e4, n8), i6 = Ct(t5, o6 = n8.memoizedProps), a6.props = i6, f5 = n8.pendingProps, m4 = a6.context, p4 = t5.contextType, u5 = su, "object" == typeof p4 && null !== p4 && (u5 = sr(p4)), (p4 = "function" == typeof (d4 = t5.getDerivedStateFromProps) || "function" == typeof a6.getSnapshotBeforeUpdate) || "function" != typeof a6.UNSAFE_componentWillReceiveProps && "function" != typeof a6.componentWillReceiveProps || (o6 !== f5 || m4 !== u5) && zt(n8, a6, r5, u5), bi = false, m4 = n8.memoizedState, a6.state = m4, ke(n8, r5, a6, l5), Se();
        var h5 = n8.memoizedState;
        o6 !== f5 || m4 !== h5 || bi || null !== e4 && null !== e4.dependencies && ur(e4.dependencies) ? ("function" == typeof d4 && (wt(n8, t5, d4, r5), h5 = n8.memoizedState), (i6 = bi || xt(n8, t5, i6, r5, m4, h5, u5) || null !== e4 && null !== e4.dependencies && ur(e4.dependencies)) ? (p4 || "function" != typeof a6.UNSAFE_componentWillUpdate && "function" != typeof a6.componentWillUpdate || ("function" == typeof a6.componentWillUpdate && a6.componentWillUpdate(r5, h5, u5), "function" == typeof a6.UNSAFE_componentWillUpdate && a6.UNSAFE_componentWillUpdate(r5, h5, u5)), "function" == typeof a6.componentDidUpdate && (n8.flags |= 4), "function" == typeof a6.getSnapshotBeforeUpdate && (n8.flags |= 1024)) : ("function" != typeof a6.componentDidUpdate || o6 === e4.memoizedProps && m4 === e4.memoizedState || (n8.flags |= 4), "function" != typeof a6.getSnapshotBeforeUpdate || o6 === e4.memoizedProps && m4 === e4.memoizedState || (n8.flags |= 1024), n8.memoizedProps = r5, n8.memoizedState = h5), a6.props = r5, a6.state = h5, a6.context = u5, a6 = i6) : ("function" != typeof a6.componentDidUpdate || o6 === e4.memoizedProps && m4 === e4.memoizedState || (n8.flags |= 4), "function" != typeof a6.getSnapshotBeforeUpdate || o6 === e4.memoizedProps && m4 === e4.memoizedState || (n8.flags |= 1024), a6 = false);
      }
      if (u5 = a6, Mt(e4, n8), o6 = 0 != (128 & n8.flags), u5 || o6) {
        if (u5 = n8.stateNode, Ja.getCurrentStack = null === n8 ? null : g3, ro = false, to = n8, o6 && "function" != typeof t5.getDerivedStateFromError) t5 = null, Xu = -1;
        else if (t5 = Qi(u5), 8 & n8.mode) {
          U(true);
          try {
            Qi(u5);
          } finally {
            U(false);
          }
        }
        n8.flags |= 1, null !== e4 && o6 ? (n8.child = fs7(n8, e4.child, null, l5), n8.child = fs7(n8, null, t5, l5)) : Nt(e4, n8, t5, l5), n8.memoizedState = u5.state, e4 = n8.child;
      } else e4 = Xt(e4, n8, l5);
      return l5 = n8.stateNode, a6 && l5.props !== r5 && (bc || console.error("It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.", c6(n8) || "a component"), bc = true), e4;
    }
    function At(e4, n8) {
      n8 && n8.childContextTypes && console.error("childContextTypes cannot be defined on a function component.\n  %s.childContextTypes = ...", n8.displayName || n8.name || "Component"), "function" == typeof n8.getDerivedStateFromProps && (e4 = s4(n8) || "Unknown", yc[e4] || (console.error("%s: Function components do not support getDerivedStateFromProps.", e4), yc[e4] = true)), "object" == typeof n8.contextType && null !== n8.contextType && (n8 = s4(n8) || "Unknown", hc[n8] || (console.error("%s: Function components do not support contextType.", n8), hc[n8] = true));
    }
    function Qt(e4) {
      return { baseLanes: e4, cachePool: yr() };
    }
    function Ot(e4, n8, t5) {
      return e4 = null !== e4 ? e4.childLanes & ~t5 : 0, n8 && (e4 |= Nf), e4;
    }
    function Bt(e4, n8, t5) {
      var r5, l5, a6, o6, u5 = n8.pendingProps, i6 = false, s5 = 0 != (128 & n8.flags);
      if ((r5 = s5) || (r5 = (null === e4 || null !== e4.memoizedState) && 0 != (vs.current & bs)), r5 && (i6 = true, n8.flags &= -129), r5 = 0 != (32 & n8.flags), n8.flags &= -33, null === e4) return l5 = u5.children, u5 = u5.fallback, i6 ? (Be(n8), l5 = $t({ mode: "hidden", children: l5 }, i6 = n8.mode), u5 = ha(u5, i6, t5, null), l5.return = n8, u5.return = n8, l5.sibling = u5, n8.child = l5, (i6 = n8.child).memoizedState = Qt(t5), i6.childLanes = Ot(e4, r5, t5), n8.memoizedState = kc, u5) : (Qe(n8), Vt(n8, l5));
      if (null !== (a6 = e4.memoizedState) && null !== (l5 = a6.dehydrated)) {
        if (s5) 256 & n8.flags ? (Qe(n8), n8.flags &= -257, n8 = qt(e4, n8, t5)) : null !== n8.memoizedState ? (Be(n8), n8.child = e4.child, n8.flags |= 128, n8 = null) : (Be(n8), i6 = u5.fallback, l5 = n8.mode, u5 = $t({ mode: "visible", children: u5.children }, l5), (i6 = ha(i6, l5, t5, null)).flags |= 2, u5.return = n8, i6.return = n8, u5.sibling = i6, n8.child = u5, fs7(n8, e4.child, null, t5), (u5 = n8.child).memoizedState = Qt(t5), u5.childLanes = Ot(e4, r5, t5), n8.memoizedState = kc, n8 = i6);
        else if (Qe(n8), Ko(l5)) r5 = (l5 = Xo(l5)).digest, i6 = l5.message, u5 = l5.stack, l5 = l5.componentStack, (i6 = i6 ? Error(i6) : Error("The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.")).stack = u5 || "", i6.digest = r5, u5 = { value: i6, source: null, stack: r5 = void 0 === l5 ? null : l5 }, "string" == typeof r5 && Tu.set(i6, u5), o6 = u5, null === Vu ? Vu = [o6] : Vu.push(o6), n8 = qt(e4, n8, t5);
        else if (pc || or(e4, n8, t5, false), r5 = 0 != (t5 & e4.childLanes), pc || r5) {
          if (null !== (r5 = cf)) {
            if (0 != (42 & (u5 = t5 & -t5))) u5 = 1;
            else switch (u5) {
              case 2:
                u5 = 1;
                break;
              case 8:
                u5 = 4;
                break;
              case 32:
                u5 = 16;
                break;
              case 128:
              case 256:
              case 512:
              case 1024:
              case 2048:
              case 4096:
              case 8192:
              case 16384:
              case 32768:
              case 65536:
              case 131072:
              case 262144:
              case 524288:
              case 1048576:
              case 2097152:
              case 4194304:
              case 8388608:
              case 16777216:
              case 33554432:
                u5 = 64;
                break;
              case 268435456:
                u5 = 134217728;
                break;
              default:
                u5 = 0;
            }
            if (0 !== (u5 = 0 != (u5 & (r5.suspendedLanes | t5)) ? 0 : u5) && u5 !== a6.retryLane) throw a6.retryLane = u5, $(e4, u5), Cl(r5, e4, u5), dc;
          }
          Jo(l5) || Ml(), n8 = qt(e4, n8, t5);
        } else Jo(l5) ? (n8.flags |= 128, n8.child = e4.child, n8 = ta.bind(null, e4), Zo(l5, n8), n8 = null) : (e4 = a6.treeContext, (n8 = Vt(n8, u5.children)).flags |= 4096);
        return n8;
      }
      return i6 ? (Be(n8), i6 = u5.fallback, l5 = n8.mode, s5 = (a6 = e4.child).sibling, (u5 = fa(a6, { mode: "hidden", children: u5.children })).subtreeFlags = 31457280 & a6.subtreeFlags, null !== s5 ? i6 = fa(s5, i6) : (i6 = ha(i6, l5, t5, null)).flags |= 2, i6.return = n8, u5.return = n8, u5.sibling = i6, n8.child = u5, u5 = i6, i6 = n8.child, null === (l5 = e4.child.memoizedState) ? l5 = Qt(t5) : (null !== (a6 = l5.cachePool) ? (s5 = Uc._currentValue2, a6 = a6.parent !== s5 ? { parent: s5, pool: s5 } : a6) : a6 = yr(), l5 = { baseLanes: l5.baseLanes | t5, cachePool: a6 }), i6.memoizedState = l5, i6.childLanes = Ot(e4, r5, t5), n8.memoizedState = kc, u5) : (Qe(n8), e4 = (t5 = e4.child).sibling, (t5 = fa(t5, { mode: "visible", children: u5.children })).return = n8, t5.sibling = null, null !== e4 && (null === (r5 = n8.deletions) ? (n8.deletions = [e4], n8.flags |= 16) : r5.push(e4)), n8.child = t5, n8.memoizedState = null, t5);
    }
    function Vt(e4, n8) {
      return (n8 = $t({ mode: "visible", children: n8 }, e4.mode)).return = e4, e4.child = n8;
    }
    function $t(e4, n8) {
      return ga(e4, n8, 0, null);
    }
    function qt(e4, n8, t5) {
      return fs7(n8, e4.child, null, t5), (e4 = Vt(n8, n8.pendingProps.children)).flags |= 2, n8.memoizedState = null, e4;
    }
    function Yt(e4, n8, t5) {
      e4.lanes |= n8;
      var r5 = e4.alternate;
      null !== r5 && (r5.lanes |= n8), lr(e4.return, n8, t5);
    }
    function Gt(e4, n8) {
      var t5 = lo(e4);
      return e4 = !t5 && "function" == typeof i5(e4), !t5 && !e4 || (t5 = t5 ? "array" : "iterable", console.error("A nested %s was passed to row #%s in <SuspenseList />. Wrap it in an additional SuspenseList to configure its revealOrder: <SuspenseList revealOrder=...> ... <SuspenseList revealOrder=...>{%s}</SuspenseList> ... </SuspenseList>", t5, n8, t5), false);
    }
    function Jt(e4, n8, t5, r5, l5) {
      var a6 = e4.memoizedState;
      null === a6 ? e4.memoizedState = { isBackwards: n8, rendering: null, renderingStartTime: 0, last: r5, tail: t5, tailMode: l5 } : (a6.isBackwards = n8, a6.rendering = null, a6.renderingStartTime = 0, a6.last = r5, a6.tail = t5, a6.tailMode = l5);
    }
    function Kt(e4, n8, t5) {
      var r5 = n8.pendingProps, l5 = r5.revealOrder, a6 = r5.tail;
      if (r5 = r5.children, void 0 !== l5 && "forwards" !== l5 && "backwards" !== l5 && "together" !== l5 && !vc[l5]) if (vc[l5] = true, "string" == typeof l5) switch (l5.toLowerCase()) {
        case "together":
        case "forwards":
        case "backwards":
          console.error('"%s" is not a valid value for revealOrder on <SuspenseList />. Use lowercase "%s" instead.', l5, l5.toLowerCase());
          break;
        case "forward":
        case "backward":
          console.error('"%s" is not a valid value for revealOrder on <SuspenseList />. React uses the -s suffix in the spelling. Use "%ss" instead.', l5, l5.toLowerCase());
          break;
        default:
          console.error('"%s" is not a supported revealOrder on <SuspenseList />. Did you mean "together", "forwards" or "backwards"?', l5);
      }
      else console.error('%s is not a supported value for revealOrder on <SuspenseList />. Did you mean "together", "forwards" or "backwards"?', l5);
      void 0 === a6 || Sc[a6] || ("collapsed" !== a6 && "hidden" !== a6 ? (Sc[a6] = true, console.error('"%s" is not a supported value for tail on <SuspenseList />. Did you mean "collapsed" or "hidden"?', a6)) : "forwards" !== l5 && "backwards" !== l5 && (Sc[a6] = true, console.error('<SuspenseList tail="%s" /> is only valid if revealOrder is "forwards" or "backwards". Did you mean to specify revealOrder="forwards"?', a6)));
      e: if (("forwards" === l5 || "backwards" === l5) && null != r5 && false !== r5) if (lo(r5)) {
        for (var o6 = 0; o6 < r5.length; o6++) if (!Gt(r5[o6], o6)) break e;
      } else if (o6 = i5(r5), "function" == typeof o6) {
        if (o6 = o6.call(r5)) for (var u5 = o6.next(), s5 = 0; !u5.done; u5 = o6.next()) {
          if (!Gt(u5.value, s5)) break e;
          s5++;
        }
      } else console.error('A single row was passed to a <SuspenseList revealOrder="%s" />. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?', l5);
      if (Nt(e4, n8, r5, t5), 0 != ((r5 = vs.current) & bs)) r5 = r5 & ys | bs, n8.flags |= 128;
      else {
        if (null !== e4 && 0 != (128 & e4.flags)) e: for (e4 = n8.child; null !== e4; ) {
          if (13 === e4.tag) null !== e4.memoizedState && Yt(e4, t5, n8);
          else if (19 === e4.tag) Yt(e4, t5, n8);
          else if (null !== e4.child) {
            e4.child.return = e4, e4 = e4.child;
            continue;
          }
          if (e4 === n8) break e;
          for (; null === e4.sibling; ) {
            if (null === e4.return || e4.return === n8) break e;
            e4 = e4.return;
          }
          e4.sibling.return = e4.return, e4 = e4.sibling;
        }
        r5 &= ys;
      }
      switch (S3(vs, r5, n8), l5) {
        case "forwards":
          for (t5 = n8.child, l5 = null; null !== t5; ) null !== (e4 = t5.alternate) && null === $e(e4) && (l5 = t5), t5 = t5.sibling;
          null === (t5 = l5) ? (l5 = n8.child, n8.child = null) : (l5 = t5.sibling, t5.sibling = null), Jt(n8, false, l5, t5, a6);
          break;
        case "backwards":
          for (t5 = null, l5 = n8.child, n8.child = null; null !== l5; ) {
            if (null !== (e4 = l5.alternate) && null === $e(e4)) {
              n8.child = l5;
              break;
            }
            e4 = l5.sibling, l5.sibling = t5, t5 = l5, l5 = e4;
          }
          Jt(n8, true, t5, null, a6);
          break;
        case "together":
          Jt(n8, false, null, null, void 0);
          break;
        default:
          n8.memoizedState = null;
      }
      return n8.child;
    }
    function Xt(e4, n8, t5) {
      if (null !== e4 && (n8.dependencies = e4.dependencies), Xu = -1, _f |= n8.lanes, 0 == (t5 & n8.childLanes)) {
        if (null === e4) return null;
        if (or(e4, n8, t5, false), 0 == (t5 & n8.childLanes)) return null;
      }
      if (null !== e4 && n8.child !== e4.child) throw Error("Resuming work not yet implemented.");
      if (null !== n8.child) {
        for (t5 = fa(e4 = n8.child, e4.pendingProps), n8.child = t5, t5.return = n8; null !== e4.sibling; ) e4 = e4.sibling, (t5 = t5.sibling = fa(e4, e4.pendingProps)).return = n8;
        t5.sibling = null;
      }
      return n8.child;
    }
    function Zt(e4, n8) {
      return 0 != (e4.lanes & n8) || !(null === (e4 = e4.dependencies) || !ur(e4));
    }
    function er(e4, n8, t5) {
      if (n8._debugNeedsRemount && null !== e4) {
        t5 = pa(n8.type, n8.key, n8.pendingProps, n8._debugOwner || null, n8.mode, n8.lanes);
        var r5 = n8.return;
        if (null === r5) throw Error("Cannot swap the root fiber.");
        if (e4.alternate = null, n8.alternate = null, t5.index = n8.index, t5.sibling = n8.sibling, t5.return = n8.return, t5.ref = n8.ref, t5._debugInfo = n8._debugInfo, n8 === r5.child) r5.child = t5;
        else {
          var l5 = r5.child;
          if (null === l5) throw Error("Expected parent to have a child.");
          for (; l5.sibling !== n8; ) if (null === (l5 = l5.sibling)) throw Error("Expected to find the previous sibling.");
          l5.sibling = t5;
        }
        return null === (n8 = r5.deletions) ? (r5.deletions = [e4], r5.flags |= 16) : n8.push(e4), t5.flags |= 2, t5;
      }
      if (null !== e4) if (e4.memoizedProps !== n8.pendingProps || n8.type !== e4.type) pc = true;
      else {
        if (!Zt(e4, t5) && 0 == (128 & n8.flags)) return pc = false, (function(e5, n9, t6) {
          switch (n9.tag) {
            case 3:
              W(n9, n9.stateNode.containerInfo), tr(n9, Uc, e5.memoizedState.cache);
              break;
            case 27:
            case 5:
              A(n9);
              break;
            case 4:
              W(n9, n9.stateNode.containerInfo);
              break;
            case 10:
              tr(n9, n9.type, n9.memoizedProps.value);
              break;
            case 12:
              0 != (t6 & n9.childLanes) && (n9.flags |= 4), n9.flags |= 2048;
              var r6 = n9.stateNode;
              r6.effectDuration = -0, r6.passiveEffectDuration = -0;
              break;
            case 13:
              if (null !== (r6 = n9.memoizedState)) return null !== r6.dehydrated ? (Qe(n9), n9.flags |= 128, null) : 0 != (t6 & n9.child.childLanes) ? Bt(e5, n9, t6) : (Qe(n9), null !== (e5 = Xt(e5, n9, t6)) ? e5.sibling : null);
              Qe(n9);
              break;
            case 19:
              var l6 = 0 != (128 & e5.flags);
              if ((r6 = 0 != (t6 & n9.childLanes)) || (or(e5, n9, t6, false), r6 = 0 != (t6 & n9.childLanes)), l6) {
                if (r6) return Kt(e5, n9, t6);
                n9.flags |= 128;
              }
              if (null !== (l6 = n9.memoizedState) && (l6.rendering = null, l6.tail = null, l6.lastEffect = null), S3(vs, vs.current, n9), r6) break;
              return null;
            case 22:
            case 23:
              return n9.lanes = 0, It(e5, n9, t6);
            case 24:
              tr(n9, Uc, e5.memoizedState.cache);
          }
          return Xt(e5, n9, t6);
        })(e4, n8, t5);
        pc = 0 != (131072 & e4.flags);
      }
      else pc = false, (r5 = Bu) && (F(), r5 = 0 != (1048576 & n8.flags)), r5 && (r5 = n8.index, F(), (function(e5, n9, t6) {
        F(), Iu[Fu++] = Wu, Iu[Fu++] = Hu, Iu[Fu++] = Mu, Mu = e5;
        var r6 = Wu;
        e5 = Hu;
        var l6 = 32 - cu(r6) - 1;
        r6 &= ~(1 << l6), t6 += 1;
        var a7 = 32 - cu(n9) + l6;
        if (30 < a7) {
          var o7 = l6 - l6 % 5;
          a7 = (r6 & (1 << o7) - 1).toString(32), r6 >>= o7, l6 -= o7, Wu = 1 << 32 - cu(n9) + l6 | t6 << l6 | r6, Hu = a7 + e5;
        } else Wu = 1 << a7 | t6 << l6 | r6, Hu = e5;
      })(n8, Du, r5));
      switch (n8.lanes = 0, n8.tag) {
        case 16:
          e: {
            if (r5 = n8.pendingProps, e4 = ts(n8.elementType), n8.type = e4, "function" != typeof e4) {
              if (null != e4) {
                if ((l5 = e4.$$typeof) === Aa) {
                  n8.tag = 11, n8.type = e4, n8 = Lt(null, n8, e4, r5, t5);
                  break e;
                }
                if (l5 === Ba) {
                  n8.tag = 14, n8 = Ut(null, n8, e4, r5, t5);
                  break e;
                }
              }
              throw n8 = "", null !== e4 && "object" == typeof e4 && e4.$$typeof === Va && (n8 = " Did you wrap a component in React.lazy() more than once?"), e4 = s4(e4) || e4, Error("Element type is invalid. Received a promise that resolves to: " + e4 + ". Lazy element type must resolve to a class or function." + n8);
            }
            ca(e4) ? (r5 = Ct(e4, r5), n8.tag = 1, n8.type = e4, n8 = jt(null, n8, e4, r5, t5)) : (n8.tag = 0, At(n8, e4), n8.type = e4, n8 = Wt(null, n8, e4, r5, t5));
          }
          return n8;
        case 0:
          return Wt(e4, n8, n8.type, n8.pendingProps, t5);
        case 1:
          return jt(e4, n8, r5 = n8.type, l5 = Ct(r5, n8.pendingProps), t5);
        case 3:
          if (W(n8, n8.stateNode.containerInfo), null === e4) throw Error("Should have a current fiber. This is a bug in React.");
          var a6 = n8.pendingProps;
          r5 = (l5 = n8.memoizedState).element, he(e4, n8), ke(n8, a6, null, t5);
          var o6 = n8.memoizedState;
          return a6 = o6.cache, tr(n8, Uc, a6), a6 !== l5.cache && ar(n8, [Uc], t5, true), Se(), (a6 = o6.element) !== r5 ? (Nt(e4, n8, a6, t5), n8 = n8.child) : n8 = Xt(e4, n8, t5), n8;
        case 26:
        case 27:
        case 5:
          return A(n8), l5 = n8.type, a6 = n8.pendingProps, o6 = null !== e4 ? e4.memoizedProps : null, r5 = a6.children, mo(l5, a6) ? r5 = null : null !== o6 && mo(l5, o6) && (n8.flags |= 32), null !== n8.memoizedState && (l5 = Ze(e4, n8, tn, null, null, t5), Uo._currentValue2 = l5), Mt(e4, n8), Nt(e4, n8, r5, t5), n8.child;
        case 6:
          return null;
        case 13:
          return Bt(e4, n8, t5);
        case 4:
          return W(n8, n8.stateNode.containerInfo), r5 = n8.pendingProps, null === e4 ? n8.child = fs7(n8, null, r5, t5) : Nt(e4, n8, r5, t5), n8.child;
        case 11:
          return Lt(e4, n8, n8.type, n8.pendingProps, t5);
        case 7:
          return Nt(e4, n8, n8.pendingProps, t5), n8.child;
        case 8:
          return Nt(e4, n8, n8.pendingProps.children, t5), n8.child;
        case 12:
          return n8.flags |= 4, n8.flags |= 2048, (r5 = n8.stateNode).effectDuration = -0, r5.passiveEffectDuration = -0, Nt(e4, n8, n8.pendingProps.children, t5), n8.child;
        case 10:
          return r5 = n8.type, a6 = (l5 = n8.pendingProps).value, "value" in l5 || wc || (wc = true, console.error("The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?")), tr(n8, r5, a6), Nt(e4, n8, l5.children, t5), n8.child;
        case 9:
          return l5 = n8.type._context, "function" != typeof (r5 = n8.pendingProps.children) && console.error("A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."), ir(n8), l5 = sr(l5), r5 = ji(r5, l5, void 0), n8.flags |= 1, Nt(e4, n8, r5, t5), n8.child;
        case 14:
          return Ut(e4, n8, n8.type, n8.pendingProps, t5);
        case 15:
          return Dt(e4, n8, n8.type, n8.pendingProps, t5);
        case 19:
          return Kt(e4, n8, t5);
        case 22:
          return It(e4, n8, t5);
        case 24:
          return ir(n8), r5 = sr(Uc), null === e4 ? (null === (l5 = hr()) && (l5 = cf, a6 = dr(), l5.pooledCache = a6, pr(a6), null !== a6 && (l5.pooledCacheLanes |= t5), l5 = a6), n8.memoizedState = { parent: r5, cache: l5 }, me(n8), tr(n8, Uc, l5)) : (0 != (e4.lanes & t5) && (he(e4, n8), ke(n8, null, null, t5), Se()), l5 = e4.memoizedState, a6 = n8.memoizedState, l5.parent !== r5 ? (l5 = { parent: r5, cache: r5 }, n8.memoizedState = l5, 0 === n8.lanes && (n8.memoizedState = n8.updateQueue.baseState = l5), tr(n8, Uc, r5)) : (r5 = a6.cache, tr(n8, Uc, r5), r5 !== l5.cache && ar(n8, [Uc], t5, true))), Nt(e4, n8, n8.pendingProps.children, t5), n8.child;
        case 29:
          throw n8.pendingProps;
      }
      throw Error("Unknown unit of work tag (" + n8.tag + "). This error is likely caused by a bug in React. Please file an issue.");
    }
    function nr() {
      _c = Pc = Ec = null, Rc = false;
    }
    function tr(e4, n8, t5) {
      S3(xc, n8._currentValue2, e4), n8._currentValue2 = t5, S3(zc, n8._currentRenderer2, e4), void 0 !== n8._currentRenderer2 && null !== n8._currentRenderer2 && n8._currentRenderer2 !== Cc && console.error("Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."), n8._currentRenderer2 = Cc;
    }
    function rr(e4, n8) {
      var t5 = xc.current;
      e4._currentValue2 = t5, t5 = zc.current, v3(zc, n8), e4._currentRenderer2 = t5, v3(xc, n8);
    }
    function lr(e4, n8, t5) {
      for (; null !== e4; ) {
        var r5 = e4.alternate;
        if ((e4.childLanes & n8) !== n8 ? (e4.childLanes |= n8, null !== r5 && (r5.childLanes |= n8)) : null !== r5 && (r5.childLanes & n8) !== n8 && (r5.childLanes |= n8), e4 === t5) break;
        e4 = e4.return;
      }
      e4 !== t5 && console.error("Expected to find the propagation root when scheduling context work. This error is likely caused by a bug in React. Please file an issue.");
    }
    function ar(e4, n8, t5, r5) {
      var l5 = e4.child;
      for (null !== l5 && (l5.return = e4); null !== l5; ) {
        var a6 = l5.dependencies;
        if (null !== a6) {
          var o6 = l5.child;
          a6 = a6.firstContext;
          e: for (; null !== a6; ) {
            var u5 = a6;
            a6 = l5;
            for (var i6 = 0; i6 < n8.length; i6++) if (u5.context === n8[i6]) {
              a6.lanes |= t5, null !== (u5 = a6.alternate) && (u5.lanes |= t5), lr(a6.return, t5, e4), r5 || (o6 = null);
              break e;
            }
            a6 = u5.next;
          }
        } else if (18 === l5.tag) {
          if (null === (o6 = l5.return)) throw Error("We just came from a parent so we must have had a parent. This is a bug in React.");
          o6.lanes |= t5, null !== (a6 = o6.alternate) && (a6.lanes |= t5), lr(o6, t5, e4), o6 = null;
        } else o6 = l5.child;
        if (null !== o6) o6.return = l5;
        else for (o6 = l5; null !== o6; ) {
          if (o6 === e4) {
            o6 = null;
            break;
          }
          if (null !== (l5 = o6.sibling)) {
            l5.return = o6.return, o6 = l5;
            break;
          }
          o6 = o6.return;
        }
        l5 = o6;
      }
    }
    function or(e4, n8, t5, r5) {
      e4 = null;
      for (var l5 = n8, a6 = false; null !== l5; ) {
        if (!a6) {
          if (0 != (524288 & l5.flags)) a6 = true;
          else if (0 != (262144 & l5.flags)) break;
        }
        if (10 === l5.tag) {
          var o6 = l5.alternate;
          if (null === o6) throw Error("Should have a current fiber. This is a bug in React.");
          if (null !== (o6 = o6.memoizedProps)) {
            var u5 = l5.type;
            Ru(l5.pendingProps.value, o6.value) || (null !== e4 ? e4.push(u5) : e4 = [u5]);
          }
        } else if (l5 === Ou.current) {
          if (null === (o6 = l5.alternate)) throw Error("Should have a current fiber. This is a bug in React.");
          o6.memoizedState.memoizedState !== l5.memoizedState.memoizedState && (null !== e4 ? e4.push(Uo) : e4 = [Uo]);
        }
        l5 = l5.return;
      }
      null !== e4 && ar(n8, e4, t5, r5), n8.flags |= 262144;
    }
    function ur(e4) {
      for (e4 = e4.firstContext; null !== e4; ) {
        var n8 = e4.context;
        if (!Ru(n8._currentValue2, e4.memoizedValue)) return true;
        e4 = e4.next;
      }
      return false;
    }
    function ir(e4) {
      Ec = e4, _c = Pc = null, null !== (e4 = e4.dependencies) && (e4.firstContext = null);
    }
    function sr(e4) {
      return Rc && console.error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."), fr(Ec, e4);
    }
    function cr(e4, n8) {
      return null === Ec && ir(e4), fr(e4, n8);
    }
    function fr(e4, n8) {
      var t5 = n8._currentValue2;
      if (_c !== n8) if (n8 = { context: n8, memoizedValue: t5, next: null }, null === Pc) {
        if (null === e4) throw Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");
        Pc = n8, e4.dependencies = { lanes: 0, firstContext: n8, _debugThenableState: null }, e4.flags |= 524288;
      } else Pc = Pc.next = n8;
      return t5;
    }
    function dr() {
      return { controller: new Tc(), data: /* @__PURE__ */ new Map(), refCount: 0 };
    }
    function pr(e4) {
      e4.controller.signal.aborted && console.warn("A cache instance was retained after it was already freed. This likely indicates a bug in React."), e4.refCount++;
    }
    function mr(e4) {
      e4.refCount--, 0 > e4.refCount && console.warn("A cache instance was released after it was already freed. This likely indicates a bug in React."), 0 === e4.refCount && Nc(Lc, (function() {
        e4.controller.abort();
      }));
    }
    function hr() {
      var e4 = Ic.current;
      return null !== e4 ? e4 : cf.pooledCache;
    }
    function gr(e4, n8) {
      S3(Ic, null === n8 ? Ic.current : n8.pool, e4);
    }
    function yr() {
      var e4 = hr();
      return null === e4 ? null : { parent: Uc._currentValue2, pool: e4 };
    }
    function br(e4) {
      e4.flags |= 4;
    }
    function vr(e4, n8) {
      null !== n8 && (e4.flags |= 4), 16384 & e4.flags && (n8 = 22 !== e4.tag ? C() : 536870912, e4.lanes |= n8);
    }
    function Sr(e4, n8) {
      switch (e4.tailMode) {
        case "hidden":
          n8 = e4.tail;
          for (var t5 = null; null !== n8; ) null !== n8.alternate && (t5 = n8), n8 = n8.sibling;
          null === t5 ? e4.tail = null : t5.sibling = null;
          break;
        case "collapsed":
          t5 = e4.tail;
          for (var r5 = null; null !== t5; ) null !== t5.alternate && (r5 = t5), t5 = t5.sibling;
          null === r5 ? n8 || null === e4.tail ? e4.tail = null : e4.tail.sibling = null : r5.sibling = null;
      }
    }
    function kr(e4) {
      var n8 = null !== e4.alternate && e4.alternate.child === e4.child, t5 = 0, r5 = 0;
      if (n8) if ((2 & e4.mode) !== $u) {
        for (var l5 = e4.selfBaseDuration, a6 = e4.child; null !== a6; ) t5 |= a6.lanes | a6.childLanes, r5 |= 31457280 & a6.subtreeFlags, r5 |= 31457280 & a6.flags, l5 += a6.treeBaseDuration, a6 = a6.sibling;
        e4.treeBaseDuration = l5;
      } else for (l5 = e4.child; null !== l5; ) t5 |= l5.lanes | l5.childLanes, r5 |= 31457280 & l5.subtreeFlags, r5 |= 31457280 & l5.flags, l5.return = e4, l5 = l5.sibling;
      else if ((2 & e4.mode) !== $u) {
        l5 = e4.actualDuration, a6 = e4.selfBaseDuration;
        for (var o6 = e4.child; null !== o6; ) t5 |= o6.lanes | o6.childLanes, r5 |= o6.subtreeFlags, r5 |= o6.flags, l5 += o6.actualDuration, a6 += o6.treeBaseDuration, o6 = o6.sibling;
        e4.actualDuration = l5, e4.treeBaseDuration = a6;
      } else for (l5 = e4.child; null !== l5; ) t5 |= l5.lanes | l5.childLanes, r5 |= l5.subtreeFlags, r5 |= l5.flags, l5.return = e4, l5 = l5.sibling;
      return e4.subtreeFlags |= r5, e4.childLanes = t5, n8;
    }
    function wr(e4, n8, t5) {
      var r5 = n8.pendingProps;
      switch (I(n8), n8.tag) {
        case 16:
        case 15:
        case 0:
        case 11:
        case 7:
        case 8:
        case 12:
        case 9:
        case 14:
        case 1:
          return kr(n8), null;
        case 3:
          return t5 = n8.stateNode, r5 = null, null !== e4 && (r5 = e4.memoizedState.cache), n8.memoizedState.cache !== r5 && (n8.flags |= 2048), rr(Uc, n8), H(n8), t5.pendingContext && (t5.context = t5.pendingContext, t5.pendingContext = null), null !== e4 && null !== e4.child || null === e4 || e4.memoizedState.isDehydrated && 0 == (256 & n8.flags) || (n8.flags |= 1024, null !== Vu && (Pl(Vu), Vu = null)), kr(n8), null;
        case 26:
          var l5;
        case 27:
        case 5:
          if (Q(n8), t5 = n8.type, null !== e4 && null != n8.stateNode) !(function(e5, n9, t6, r6) {
            e5.memoizedProps !== r6 && br(n9);
          })(e4, n8, 0, r5);
          else {
            if (!r5) {
              if (null === n8.stateNode) throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");
              return kr(n8), null;
            }
            e4 = j(), l5 = M(Qu.current), (function(e5, n9, t6, r6) {
              for (t6 = n9.child; null !== t6; ) {
                if (5 === t6.tag || 6 === t6.tag) fo(e5, t6.stateNode);
                else if (4 !== t6.tag && !au && null !== t6.child) {
                  t6.child.return = t6, t6 = t6.child;
                  continue;
                }
                if (t6 === n9) break;
                for (; null === t6.sibling; ) {
                  if (null === t6.return || t6.return === n9) return;
                  t6 = t6.return;
                }
                t6.sibling.return = t6.return, t6 = t6.sibling;
              }
            })(l5 = co(t5, r5, l5, e4, n8), n8, false), n8.stateNode = l5, po(l5, t5, r5, e4) && br(n8);
          }
          return kr(n8), (function(e5, n9, t6) {
            if (Po(n9, t6)) {
              if (e5.flags |= 16777216, !_o(n9, t6)) {
                if (!Dl()) throw Mi = Fi, Ii;
                e5.flags |= 8192;
              }
            } else e5.flags &= -16777217;
          })(n8, n8.type, n8.pendingProps), null;
        case 6:
          if (e4 && null != n8.stateNode) (t5 = e4.memoizedProps) !== r5 && br(n8);
          else {
            if ("string" != typeof r5 && null === n8.stateNode) throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");
            var a6;
            e4 = M(Qu.current), t5 = j(), n8.stateNode = ho(r5, e4, t5, n8);
          }
          return kr(n8), null;
        case 13:
          if (r5 = n8.memoizedState, null === e4 || null !== e4.memoizedState && null !== e4.memoizedState.dehydrated) {
            if (l5 = false, null !== r5 && null !== r5.dehydrated) {
              if (null === e4) {
                if (!l5) throw Error("A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.");
                throw Error("Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");
              }
              0 == (128 & n8.flags) && (n8.memoizedState = null), n8.flags |= 4, kr(n8), (2 & n8.mode) !== $u && null !== r5 && null !== (l5 = n8.child) && (n8.treeBaseDuration -= l5.treeBaseDuration), l5 = false;
            } else null !== Vu && (Pl(Vu), Vu = null), l5 = true;
            if (!l5) return 256 & n8.flags ? (Ve(n8), n8) : (Ve(n8), null);
          }
          return Ve(n8), 0 != (128 & n8.flags) ? (n8.lanes = t5, (2 & n8.mode) !== $u && re(n8), n8) : (t5 = null !== r5, e4 = null !== e4 && null !== e4.memoizedState, t5 && (l5 = null, null !== (r5 = n8.child).alternate && null !== r5.alternate.memoizedState && null !== r5.alternate.memoizedState.cachePool && (l5 = r5.alternate.memoizedState.cachePool.pool), a6 = null, null !== r5.memoizedState && null !== r5.memoizedState.cachePool && (a6 = r5.memoizedState.cachePool.pool), a6 !== l5 && (r5.flags |= 2048)), t5 !== e4 && t5 && (n8.child.flags |= 8192), vr(n8, n8.updateQueue), kr(n8), (2 & n8.mode) !== $u && t5 && null !== (e4 = n8.child) && (n8.treeBaseDuration -= e4.treeBaseDuration), null);
        case 4:
          return H(n8), null === e4 && ko(n8.stateNode.containerInfo), kr(n8), null;
        case 10:
          return rr(n8.type, n8), kr(n8), null;
        case 19:
          if (v3(vs, n8), null === (l5 = n8.memoizedState)) return kr(n8), null;
          if (r5 = 0 != (128 & n8.flags), null === (a6 = l5.rendering)) if (r5) Sr(l5, false);
          else {
            if (Pf !== nf || null !== e4 && 0 != (128 & e4.flags)) for (e4 = n8.child; null !== e4; ) {
              if (null !== (a6 = $e(e4))) {
                for (n8.flags |= 128, Sr(l5, false), e4 = a6.updateQueue, n8.updateQueue = e4, vr(n8, e4), n8.subtreeFlags = 0, e4 = t5, t5 = n8.child; null !== t5; ) da(t5, e4), t5 = t5.sibling;
                return S3(vs, vs.current & ys | bs, n8), n8.child;
              }
              e4 = e4.sibling;
            }
            null !== l5.tail && vu() > Wf && (n8.flags |= 128, r5 = true, Sr(l5, false), n8.lanes = 4194304);
          }
          else {
            if (!r5) if (null !== (e4 = $e(a6))) {
              if (n8.flags |= 128, r5 = true, e4 = e4.updateQueue, n8.updateQueue = e4, vr(n8, e4), Sr(l5, true), null === l5.tail && "hidden" === l5.tailMode && !a6.alternate) return kr(n8), null;
            } else 2 * vu() - l5.renderingStartTime > Wf && 536870912 !== t5 && (n8.flags |= 128, r5 = true, Sr(l5, false), n8.lanes = 4194304);
            l5.isBackwards ? (a6.sibling = n8.child, n8.child = a6) : (null !== (e4 = l5.last) ? e4.sibling = a6 : n8.child = a6, l5.last = a6);
          }
          return null !== l5.tail ? (e4 = l5.tail, l5.rendering = e4, l5.tail = e4.sibling, l5.renderingStartTime = vu(), e4.sibling = null, t5 = vs.current, S3(vs, t5 = r5 ? t5 & ys | bs : t5 & ys, n8), e4) : (kr(n8), null);
        case 22:
        case 23:
          return Ve(n8), Ae(n8), r5 = null !== n8.memoizedState, null !== e4 ? null !== e4.memoizedState !== r5 && (n8.flags |= 8192) : r5 && (n8.flags |= 8192), r5 ? 0 != (536870912 & t5) && 0 == (128 & n8.flags) && (kr(n8), 6 & n8.subtreeFlags && (n8.flags |= 8192)) : kr(n8), null !== (t5 = n8.updateQueue) && vr(n8, t5.retryQueue), t5 = null, null !== e4 && null !== e4.memoizedState && null !== e4.memoizedState.cachePool && (t5 = e4.memoizedState.cachePool.pool), r5 = null, null !== n8.memoizedState && null !== n8.memoizedState.cachePool && (r5 = n8.memoizedState.cachePool.pool), r5 !== t5 && (n8.flags |= 2048), null !== e4 && v3(Ic, n8), null;
        case 24:
          return t5 = null, null !== e4 && (t5 = e4.memoizedState.cache), n8.memoizedState.cache !== t5 && (n8.flags |= 2048), rr(Uc, n8), kr(n8), null;
        case 25:
          return null;
      }
      throw Error("Unknown unit of work tag (" + n8.tag + "). This error is likely caused by a bug in React. Please file an issue.");
    }
    function xr(e4, n8) {
      switch (I(n8), n8.tag) {
        case 1:
          return 65536 & (e4 = n8.flags) ? (n8.flags = -65537 & e4 | 128, (2 & n8.mode) !== $u && re(n8), n8) : null;
        case 3:
          return rr(Uc, n8), H(n8), 0 != (65536 & (e4 = n8.flags)) && 0 == (128 & e4) ? (n8.flags = -65537 & e4 | 128, n8) : null;
        case 26:
        case 27:
        case 5:
          return Q(n8), null;
        case 13:
          if (Ve(n8), null !== (e4 = n8.memoizedState) && null !== e4.dehydrated && null === n8.alternate) throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.");
          return 65536 & (e4 = n8.flags) ? (n8.flags = -65537 & e4 | 128, (2 & n8.mode) !== $u && re(n8), n8) : null;
        case 19:
          return v3(vs, n8), null;
        case 4:
          return H(n8), null;
        case 10:
          return rr(n8.type, n8), null;
        case 22:
        case 23:
          return Ve(n8), Ae(n8), null !== e4 && v3(Ic, n8), 65536 & (e4 = n8.flags) ? (n8.flags = -65537 & e4 | 128, (2 & n8.mode) !== $u && re(n8), n8) : null;
        case 24:
          return rr(Uc, n8), null;
        default:
          return null;
      }
    }
    function zr(e4, n8) {
      switch (I(n8), n8.tag) {
        case 3:
          rr(Uc, n8), H(n8);
          break;
        case 26:
        case 27:
        case 5:
          Q(n8);
          break;
        case 4:
          H(n8);
          break;
        case 13:
          Ve(n8);
          break;
        case 19:
          v3(vs, n8);
          break;
        case 10:
          rr(n8.type, n8);
          break;
        case 22:
        case 23:
          Ve(n8), Ae(n8), null !== e4 && v3(Ic, n8);
          break;
        case 24:
          rr(Uc, n8);
      }
    }
    function Cr(e4) {
      return (2 & e4.mode) !== $u;
    }
    function Er(e4, n8) {
      Cr(e4) ? (te(), _r(n8, e4), ne()) : _r(n8, e4);
    }
    function Pr(e4, n8, t5) {
      Cr(e4) ? (te(), Rr(t5, e4, n8), ne()) : Rr(t5, e4, n8);
    }
    function _r(e4, n8) {
      try {
        var t5 = n8.updateQueue, r5 = null !== t5 ? t5.lastEffect : null;
        if (null !== r5) {
          var l5 = r5.next;
          t5 = l5;
          do {
            var a6;
            (t5.tag & e4) === e4 && ((e4 & zs) !== Ss ? null !== Pu && "function" == typeof Pu.markComponentPassiveEffectMountStarted && Pu.markComponentPassiveEffectMountStarted(n8) : (e4 & xs) !== Ss && null !== Pu && "function" == typeof Pu.markComponentLayoutEffectMountStarted && Pu.markComponentLayoutEffectMountStarted(n8), r5 = void 0, (e4 & ws) !== Ss && (nd = true), r5 = y3(n8, Xi, t5), (e4 & ws) !== Ss && (nd = false), (e4 & zs) !== Ss ? null !== Pu && "function" == typeof Pu.markComponentPassiveEffectMountStopped && Pu.markComponentPassiveEffectMountStopped() : (e4 & xs) !== Ss && null !== Pu && "function" == typeof Pu.markComponentLayoutEffectMountStopped && Pu.markComponentLayoutEffectMountStopped(), void 0 !== r5 && "function" != typeof r5) && y3(n8, (function(e5, n9) {
              console.error("%s must not return anything besides a function, which is used for clean-up.%s", e5, n9);
            }), a6 = 0 != (t5.tag & xs) ? "useLayoutEffect" : 0 != (t5.tag & ws) ? "useInsertionEffect" : "useEffect", null === r5 ? " You returned null. If your effect does not require clean up, return undefined (or nothing)." : "function" == typeof r5.then ? "\n\nIt looks like you wrote " + a6 + "(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:\n\n" + a6 + "(() => {\n  async function fetchData() {\n    // You can await here\n    const response = await MyAPI.getData(someId);\n    // ...\n  }\n  fetchData();\n}, [someId]); // Or [] if effect doesn't need props or state\n\nLearn more about data fetching with Hooks: https://react.dev/link/hooks-data-fetching" : " You returned: " + r5), t5 = t5.next;
          } while (t5 !== l5);
        }
      } catch (e5) {
        Xl(n8, n8.return, e5);
      }
    }
    function Rr(e4, n8, t5) {
      try {
        var r5 = n8.updateQueue, l5 = null !== r5 ? r5.lastEffect : null;
        if (null !== l5) {
          var a6 = l5.next;
          r5 = a6;
          do {
            if ((r5.tag & e4) === e4) {
              var o6 = r5.inst, u5 = o6.destroy;
              void 0 !== u5 && (o6.destroy = void 0, (e4 & zs) !== Ss ? null !== Pu && "function" == typeof Pu.markComponentPassiveEffectUnmountStarted && Pu.markComponentPassiveEffectUnmountStarted(n8) : (e4 & xs) !== Ss && null !== Pu && "function" == typeof Pu.markComponentLayoutEffectUnmountStarted && Pu.markComponentLayoutEffectUnmountStarted(n8), (e4 & ws) !== Ss && (nd = true), y3(n8, es, n8, t5, u5), (e4 & ws) !== Ss && (nd = false), (e4 & zs) !== Ss ? null !== Pu && "function" == typeof Pu.markComponentPassiveEffectUnmountStopped && Pu.markComponentPassiveEffectUnmountStopped() : (e4 & xs) !== Ss && null !== Pu && "function" == typeof Pu.markComponentLayoutEffectUnmountStopped && Pu.markComponentLayoutEffectUnmountStopped());
            }
            r5 = r5.next;
          } while (r5 !== a6);
        }
      } catch (e5) {
        Xl(n8, n8.return, e5);
      }
    }
    function Tr(e4, n8) {
      Cr(e4) ? (te(), _r(n8, e4), ne()) : _r(n8, e4);
    }
    function Nr(e4, n8, t5) {
      Cr(e4) ? (te(), Rr(t5, e4, n8), ne()) : Rr(t5, e4, n8);
    }
    function Lr(e4) {
      var n8 = e4.updateQueue;
      if (null !== n8) {
        var t5 = e4.stateNode;
        e4.type.defaultProps || "ref" in e4.memoizedProps || bc || (t5.props !== e4.memoizedProps && console.error("Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", c6(e4) || "instance"), t5.state !== e4.memoizedState && console.error("Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", c6(e4) || "instance"));
        try {
          y3(e4, ze, n8, t5);
        } catch (n9) {
          Xl(e4, e4.return, n9);
        }
      }
    }
    function Ur(e4, n8, t5) {
      return e4.getSnapshotBeforeUpdate(n8, t5);
    }
    function Dr(e4, n8) {
      var t5 = n8.memoizedProps, r5 = n8.memoizedState;
      n8 = e4.stateNode, e4.type.defaultProps || "ref" in e4.memoizedProps || bc || (n8.props !== e4.memoizedProps && console.error("Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", c6(e4) || "instance"), n8.state !== e4.memoizedState && console.error("Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", c6(e4) || "instance"));
      try {
        var l5 = Ct(e4.type, t5, (e4.elementType, e4.type)), a6 = y3(e4, Ur, n8, l5, r5);
        t5 = Fc, void 0 !== a6 || t5.has(e4.type) || (t5.add(e4.type), y3(e4, (function() {
          console.error("%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.", c6(e4));
        }))), n8.__reactInternalSnapshotBeforeUpdate = a6;
      } catch (n9) {
        Xl(e4, e4.return, n9);
      }
    }
    function Ir(e4, n8, t5) {
      t5.props = Ct(e4.type, e4.memoizedProps), t5.state = e4.memoizedState, Cr(e4) ? (te(), y3(e4, Ji, e4, n8, t5), ne()) : y3(e4, Ji, e4, n8, t5);
    }
    function Fr(e4) {
      var n8 = e4.ref;
      if (null !== n8) {
        var t5 = e4.stateNode;
        switch (e4.tag) {
          case 26:
          case 27:
          case 5:
            t5 = ao(t5);
        }
        if ("function" == typeof n8) if (Cr(e4)) try {
          te(), e4.refCleanup = n8(t5);
        } finally {
          ne();
        }
        else e4.refCleanup = n8(t5);
        else "string" == typeof n8 ? console.error("String refs are no longer supported.") : n8.hasOwnProperty("current") || console.error("Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().", c6(e4)), n8.current = t5;
      }
    }
    function Mr(e4, n8) {
      try {
        y3(e4, Fr, e4);
      } catch (t5) {
        Xl(e4, n8, t5);
      }
    }
    function Wr(e4, n8) {
      var t5 = e4.ref, r5 = e4.refCleanup;
      if (null !== t5) if ("function" == typeof r5) try {
        if (Cr(e4)) try {
          te(), y3(e4, r5);
        } finally {
          ne();
        }
        else y3(e4, r5);
      } catch (t6) {
        Xl(e4, n8, t6);
      } finally {
        e4.refCleanup = null, null != (e4 = e4.alternate) && (e4.refCleanup = null);
      }
      else if ("function" == typeof t5) try {
        if (Cr(e4)) try {
          te(), y3(e4, t5, null);
        } finally {
          ne();
        }
        else y3(e4, t5, null);
      } catch (t6) {
        Xl(e4, n8, t6);
      }
      else t5.current = null;
    }
    function Hr(e4, n8, t5, r5) {
      var l5 = e4.memoizedProps, a6 = l5.id, o6 = l5.onCommit;
      l5 = l5.onRender, n8 = null === n8 ? "mount" : "update", ei && (n8 = "nested-update"), "function" == typeof l5 && l5(a6, n8, e4.actualDuration, e4.treeBaseDuration, e4.actualStartTime, t5), "function" == typeof o6 && o6(e4.memoizedProps.id, n8, r5, t5);
    }
    function jr(e4, n8, t5, r5) {
      var l5 = e4.memoizedProps;
      e4 = l5.id, l5 = l5.onPostCommit, n8 = null === n8 ? "mount" : "update", ei && (n8 = "nested-update"), "function" == typeof l5 && l5(e4, n8, r5, t5);
    }
    function Ar(e4) {
      var n8 = e4.type, t5 = e4.memoizedProps, r5 = e4.stateNode;
      try {
        y3(e4, Wo, r5, n8, t5, e4);
      } catch (n9) {
        Xl(e4, e4.return, n9);
      }
    }
    function Qr(e4) {
      return 5 === e4.tag || 3 === e4.tag || 4 === e4.tag;
    }
    function Or(e4) {
      e: for (; ; ) {
        for (; null === e4.sibling; ) {
          if (null === e4.return || Qr(e4.return)) return null;
          e4 = e4.return;
        }
        for (e4.sibling.return = e4.return, e4 = e4.sibling; 5 !== e4.tag && 6 !== e4.tag && 18 !== e4.tag; ) {
          if (2 & e4.flags) continue e;
          if (null === e4.child || 4 === e4.tag) continue e;
          e4.child.return = e4, e4 = e4.child;
        }
        if (!(2 & e4.flags)) return e4.stateNode;
      }
    }
    function Br(e4, n8, t5) {
      var r5 = e4.tag;
      if (5 === r5 || 6 === r5) e4 = e4.stateNode, n8 ? Ao(t5, e4, n8) : Fo(t5, e4);
      else if (4 !== r5 && !au && null !== (e4 = e4.child)) for (Br(e4, n8, t5), e4 = e4.sibling; null !== e4; ) Br(e4, n8, t5), e4 = e4.sibling;
    }
    function Vr(e4, n8, t5) {
      var r5 = e4.tag;
      if (5 === r5 || 6 === r5) e4 = e4.stateNode, n8 ? jo(t5, e4, n8) : Io(t5, e4);
      else if (4 !== r5 && !au && null !== (e4 = e4.child)) for (Vr(e4, n8, t5), e4 = e4.sibling; null !== e4; ) Vr(e4, n8, t5), e4 = e4.sibling;
    }
    function $r(e4) {
      e: {
        for (var n8 = e4.return; null !== n8; ) {
          if (Qr(n8)) {
            var t5 = n8;
            break e;
          }
          n8 = n8.return;
        }
        throw Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.");
      }
      switch (t5.tag) {
        case 27:
        case 5:
          n8 = t5.stateNode, 32 & t5.flags && (Bo(n8), t5.flags &= -33), Vr(e4, t5 = Or(e4), n8);
          break;
        case 3:
        case 4:
          n8 = t5.stateNode.containerInfo, Br(e4, t5 = Or(e4), n8);
          break;
        default:
          throw Error("Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.");
      }
    }
    function qr(e4, n8, t5) {
      var r5 = t5.flags;
      switch (t5.tag) {
        case 0:
        case 11:
        case 15:
          tl(e4, t5), 4 & r5 && Er(t5, xs | ks);
          break;
        case 1:
          if (tl(e4, t5), 4 & r5) if (e4 = t5.stateNode, null === n8) t5.type.defaultProps || "ref" in t5.memoizedProps || bc || (e4.props !== t5.memoizedProps && console.error("Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", c6(t5) || "instance"), e4.state !== t5.memoizedState && console.error("Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", c6(t5) || "instance")), Cr(t5) ? (te(), y3(t5, Bi, t5, e4), ne()) : y3(t5, Bi, t5, e4);
          else {
            var l5 = Ct(t5.type, n8.memoizedProps);
            n8 = n8.memoizedState, t5.type.defaultProps || "ref" in t5.memoizedProps || bc || (e4.props !== t5.memoizedProps && console.error("Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", c6(t5) || "instance"), e4.state !== t5.memoizedState && console.error("Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", c6(t5) || "instance")), Cr(t5) ? (te(), y3(t5, $i, t5, e4, l5, n8, e4.__reactInternalSnapshotBeforeUpdate), ne()) : y3(t5, $i, t5, e4, l5, n8, e4.__reactInternalSnapshotBeforeUpdate);
          }
          64 & r5 && Lr(t5), 512 & r5 && Mr(t5, t5.return);
          break;
        case 3:
          if (n8 = G2(), tl(e4, t5), 64 & r5 && null !== (r5 = t5.updateQueue)) {
            if (l5 = null, null !== t5.child) switch (t5.child.tag) {
              case 27:
              case 5:
                l5 = ao(t5.child.stateNode);
                break;
              case 1:
                l5 = t5.child.stateNode;
            }
            try {
              y3(t5, ze, r5, l5);
            } catch (e5) {
              Xl(t5, t5.return, e5);
            }
          }
          e4.effectDuration += J(n8);
          break;
        case 26:
        case 27:
        case 5:
          tl(e4, t5), null === n8 && 4 & r5 && Ar(t5), 512 & r5 && Mr(t5, t5.return);
          break;
        case 12:
          if (4 & r5) {
            r5 = G2(), tl(e4, t5), (e4 = t5.stateNode).effectDuration += K(r5);
            try {
              y3(t5, Hr, t5, n8, Ku, e4.effectDuration);
            } catch (e5) {
              Xl(t5, t5.return, e5);
            }
          } else tl(e4, t5);
          break;
        case 13:
        default:
          tl(e4, t5);
          break;
        case 22:
          if (!(l5 = null !== t5.memoizedState || Mc)) {
            n8 = null !== n8 && null !== n8.memoizedState || Wc;
            var a6 = Mc, o6 = Wc;
            Mc = l5, (Wc = n8) && !o6 ? ol(e4, t5, 0 != (8772 & t5.subtreeFlags)) : tl(e4, t5), Mc = a6, Wc = o6;
          }
          512 & r5 && ("manual" === t5.memoizedProps.mode ? Mr(t5, t5.return) : Wr(t5, t5.return));
      }
    }
    function Yr(e4) {
      var n8 = e4.alternate;
      null !== n8 && (e4.alternate = null, Yr(n8)), e4.child = null, e4.deletions = null, e4.sibling = null, 5 === e4.tag && null !== (n8 = e4.stateNode) && Eo(n8), e4.stateNode = null, e4._debugOwner = null, e4.return = null, e4.dependencies = null, e4.memoizedProps = null, e4.memoizedState = null, e4.pendingProps = null, e4.stateNode = null, e4.updateQueue = null;
    }
    function Gr(e4, n8, t5) {
      for (t5 = t5.child; null !== t5; ) Jr(e4, n8, t5), t5 = t5.sibling;
    }
    function Jr(e4, n8, t5) {
      switch (t5.tag) {
        case 26:
        case 27:
          var r5, l5;
        case 5:
          Wc || Wr(t5, n8);
        case 6:
          if (r5 = Vc, l5 = $c, Vc = null, Gr(e4, n8, t5), $c = l5, null !== (Vc = r5)) if ($c) try {
            y3(t5, Oo, Vc, t5.stateNode);
          } catch (e5) {
            Xl(t5, n8, e5);
          }
          else try {
            y3(t5, Qo, Vc, t5.stateNode);
          } catch (e5) {
            Xl(t5, n8, e5);
          }
          break;
        case 18:
          null !== Vc && ($c ? nu(Vc, t5.stateNode) : eu(Vc, t5.stateNode));
          break;
        case 4:
          r5 = Vc, l5 = $c, Vc = t5.stateNode.containerInfo, $c = true, Gr(e4, n8, t5), Vc = r5, $c = l5;
          break;
        case 0:
        case 11:
        case 14:
        case 15:
          Wc || Rr(ws, t5, n8), Wc || Pr(t5, n8, xs), Gr(e4, n8, t5);
          break;
        case 1:
          Wc || (Wr(t5, n8), "function" == typeof (r5 = t5.stateNode).componentWillUnmount && Ir(t5, n8, r5)), Gr(e4, n8, t5);
          break;
        case 21:
          Gr(e4, n8, t5);
          break;
        case 22:
          Wr(t5, n8), Wc = (r5 = Wc) || null !== t5.memoizedState, Gr(e4, n8, t5), Wc = r5;
          break;
        default:
          Gr(e4, n8, t5);
      }
    }
    function Kr(e4, n8) {
      var t5 = (function(e5) {
        switch (e5.tag) {
          case 13:
          case 19:
            var n9 = e5.stateNode;
            return null === n9 && (n9 = e5.stateNode = new jc()), n9;
          case 22:
            return null === (n9 = (e5 = e5.stateNode)._retryCache) && (n9 = e5._retryCache = new jc()), n9;
          default:
            throw Error("Unexpected Suspense handler tag (" + e5.tag + "). This is a bug in React.");
        }
      })(e4);
      n8.forEach((function(n9) {
        var r5 = ra.bind(null, e4, n9);
        if (!t5.has(n9)) {
          if (t5.add(n9), _u) {
            if (null === Qc || null === Oc) throw Error("Expected finished root and lanes to be set. This is a bug in React.");
            ia(Oc, Qc);
          }
          n9.then(r5, r5);
        }
      }));
    }
    function Xr(e4, n8) {
      var t5 = n8.deletions;
      if (null !== t5) for (var r5 = 0; r5 < t5.length; r5++) {
        var l5 = e4, a6 = n8, o6 = t5[r5], u5 = a6;
        e: for (; null !== u5; ) {
          switch (u5.tag) {
            case 27:
            case 5:
              Vc = u5.stateNode, $c = false;
              break e;
            case 3:
            case 4:
              Vc = u5.stateNode.containerInfo, $c = true;
              break e;
          }
          u5 = u5.return;
        }
        if (null === Vc) throw Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.");
        Jr(l5, a6, o6), Vc = null, $c = false, null !== (a6 = (l5 = o6).alternate) && (a6.return = null), l5.return = null;
      }
      if (13878 & n8.subtreeFlags) for (n8 = n8.child; null !== n8; ) Zr(n8, e4), n8 = n8.sibling;
    }
    function Zr(e4, n8) {
      var t5 = e4.alternate, r5 = e4.flags;
      switch (e4.tag) {
        case 0:
        case 11:
        case 14:
        case 15:
          Xr(n8, e4), el(e4), 4 & r5 && (Rr(ws | ks, e4, e4.return), _r(ws | ks, e4), Pr(e4, e4.return, xs | ks));
          break;
        case 1:
          Xr(n8, e4), el(e4), 512 & r5 && null !== t5 && Wr(t5, t5.return), 64 & r5 && Mc && null !== (e4 = e4.updateQueue) && null !== (r5 = e4.callbacks) && (t5 = e4.shared.hiddenCallbacks, e4.shared.hiddenCallbacks = null === t5 ? r5 : t5.concat(r5));
          break;
        case 26:
          var l5;
        case 27:
          var a6;
        case 5:
          if (Xr(n8, e4), el(e4), 512 & r5 && null !== t5 && Wr(t5, t5.return), 32 & e4.flags) {
            n8 = e4.stateNode;
            try {
              y3(e4, Bo, n8);
            } catch (n9) {
              Xl(e4, e4.return, n9);
            }
          }
          4 & r5 && null != e4.stateNode && (function(e5, n9, t6) {
            try {
              y3(e5, Ho, e5.stateNode, e5.type, t6, n9, e5);
            } catch (n10) {
              Xl(e5, e5.return, n10);
            }
          })(e4, n8 = e4.memoizedProps, null !== t5 ? t5.memoizedProps : n8), 1024 & r5 && (Hc = true, "form" !== e4.type && console.error("Unexpected host component type. Expected a form. This is a bug in React."));
          break;
        case 6:
          if (Xr(n8, e4), el(e4), 4 & r5 && vo) {
            if (null === e4.stateNode) throw Error("This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.");
            r5 = e4.memoizedProps, t5 = null !== t5 ? t5.memoizedProps : r5, n8 = e4.stateNode;
            try {
              y3(e4, Mo, n8, t5, r5);
            } catch (n9) {
              Xl(e4, e4.return, n9);
            }
          }
          break;
        case 3:
          l5 = G2(), Xr(n8, e4), el(e4), Hc && (Hc = false, nl(e4)), n8.effectDuration += J(l5);
          break;
        case 4:
          Xr(n8, e4), el(e4);
          break;
        case 12:
          r5 = G2(), Xr(n8, e4), el(e4), e4.stateNode.effectDuration += K(r5);
          break;
        case 13:
          Xr(n8, e4), el(e4), 8192 & e4.child.flags && null !== e4.memoizedState != (null !== t5 && null !== t5.memoizedState) && (Ff = vu()), 4 & r5 && null !== (r5 = e4.updateQueue) && (e4.updateQueue = null, Kr(e4, r5));
          break;
        case 22:
          512 & r5 && null !== t5 && Wr(t5, t5.return), l5 = null !== e4.memoizedState;
          var o6 = null !== t5 && null !== t5.memoizedState, u5 = Mc, i6 = Wc;
          if (Mc = u5 || l5, Wc = i6 || o6, Xr(n8, e4), Wc = i6, Mc = u5, el(e4), (n8 = e4.stateNode)._current = e4, n8._visibility &= -3, n8._visibility |= 2 & n8._pendingVisibility, 8192 & r5 && (n8._visibility = l5 ? -2 & n8._visibility : 1 | n8._visibility, l5 && (n8 = Mc || Wc, null === t5 || o6 || n8 || ll(e4)), null === e4.memoizedProps || "manual" !== e4.memoizedProps.mode)) {
            e: if (t5 = null, vo) for (n8 = e4; ; ) {
              if (5 === n8.tag || tu || au) {
                if (null === t5) {
                  o6 = t5 = n8;
                  try {
                    a6 = o6.stateNode, l5 ? y3(o6, Vo, a6) : y3(o6, qo, o6.stateNode, o6.memoizedProps);
                  } catch (e5) {
                    Xl(o6, o6.return, e5);
                  }
                }
              } else if (6 === n8.tag) {
                if (null === t5) {
                  o6 = n8;
                  try {
                    var s5 = o6.stateNode;
                    l5 ? y3(o6, $o, s5) : y3(o6, Yo, s5, o6.memoizedProps);
                  } catch (e5) {
                    Xl(o6, o6.return, e5);
                  }
                }
              } else if ((22 !== n8.tag && 23 !== n8.tag || null === n8.memoizedState || n8 === e4) && null !== n8.child) {
                n8.child.return = n8, n8 = n8.child;
                continue;
              }
              if (n8 === e4) break e;
              for (; null === n8.sibling; ) {
                if (null === n8.return || n8.return === e4) break e;
                t5 === n8 && (t5 = null), n8 = n8.return;
              }
              t5 === n8 && (t5 = null), n8.sibling.return = n8.return, n8 = n8.sibling;
            }
          }
          4 & r5 && null !== (r5 = e4.updateQueue) && null !== (t5 = r5.retryQueue) && (r5.retryQueue = null, Kr(e4, t5));
          break;
        case 19:
          Xr(n8, e4), el(e4), 4 & r5 && null !== (r5 = e4.updateQueue) && (e4.updateQueue = null, Kr(e4, r5));
          break;
        case 21:
          break;
        default:
          Xr(n8, e4), el(e4);
      }
    }
    function el(e4) {
      var n8 = e4.flags;
      if (2 & n8) {
        try {
          y3(e4, $r, e4);
        } catch (n9) {
          Xl(e4, e4.return, n9);
        }
        e4.flags &= -3;
      }
      4096 & n8 && (e4.flags &= -4097);
    }
    function nl(e4) {
      if (1024 & e4.subtreeFlags) for (e4 = e4.child; null !== e4; ) {
        var n8 = e4;
        nl(n8), 5 === n8.tag && 1024 & n8.flags && Do(n8.stateNode), e4 = e4.sibling;
      }
    }
    function tl(e4, n8) {
      if (8772 & n8.subtreeFlags) for (n8 = n8.child; null !== n8; ) qr(e4, n8.alternate, n8), n8 = n8.sibling;
    }
    function rl(e4) {
      switch (e4.tag) {
        case 0:
        case 11:
        case 14:
        case 15:
          Pr(e4, e4.return, xs), ll(e4);
          break;
        case 1:
          Wr(e4, e4.return);
          var n8 = e4.stateNode;
          "function" == typeof n8.componentWillUnmount && Ir(e4, e4.return, n8), ll(e4);
          break;
        case 26:
        case 27:
        case 5:
          Wr(e4, e4.return), ll(e4);
          break;
        case 22:
          Wr(e4, e4.return), null === e4.memoizedState && ll(e4);
          break;
        default:
          ll(e4);
      }
    }
    function ll(e4) {
      for (e4 = e4.child; null !== e4; ) rl(e4), e4 = e4.sibling;
    }
    function al(e4, n8, t5, r5) {
      var l5 = t5.flags;
      switch (t5.tag) {
        case 0:
        case 11:
        case 15:
          ol(e4, t5, r5), Er(t5, xs);
          break;
        case 1:
          if (ol(e4, t5, r5), "function" == typeof (n8 = t5.stateNode).componentDidMount && y3(t5, Bi, t5, n8), null !== (n8 = t5.updateQueue)) {
            e4 = t5.stateNode;
            try {
              y3(t5, xe, n8, e4);
            } catch (e5) {
              Xl(t5, t5.return, e5);
            }
          }
          r5 && 64 & l5 && Lr(t5), Mr(t5, t5.return);
          break;
        case 26:
        case 27:
        case 5:
          ol(e4, t5, r5), r5 && null === n8 && 4 & l5 && Ar(t5), Mr(t5, t5.return);
          break;
        case 12:
          if (r5 && 4 & l5) {
            l5 = G2(), ol(e4, t5, r5), (r5 = t5.stateNode).effectDuration += K(l5);
            try {
              y3(t5, Hr, t5, n8, Ku, r5.effectDuration);
            } catch (e5) {
              Xl(t5, t5.return, e5);
            }
          } else ol(e4, t5, r5);
          break;
        case 13:
        default:
          ol(e4, t5, r5);
          break;
        case 22:
          null === t5.memoizedState && ol(e4, t5, r5), Mr(t5, t5.return);
      }
    }
    function ol(e4, n8, t5) {
      for (t5 = t5 && 0 != (8772 & n8.subtreeFlags), n8 = n8.child; null !== n8; ) al(e4, n8.alternate, n8, t5), n8 = n8.sibling;
    }
    function ul(e4, n8) {
      var t5 = null;
      null !== e4 && null !== e4.memoizedState && null !== e4.memoizedState.cachePool && (t5 = e4.memoizedState.cachePool.pool), e4 = null, null !== n8.memoizedState && null !== n8.memoizedState.cachePool && (e4 = n8.memoizedState.cachePool.pool), e4 !== t5 && (null != e4 && pr(e4), null != t5 && mr(t5));
    }
    function il(e4, n8) {
      e4 = null, null !== n8.alternate && (e4 = n8.alternate.memoizedState.cache), (n8 = n8.memoizedState.cache) !== e4 && (pr(n8), null != e4 && mr(e4));
    }
    function sl(e4, n8, t5, r5) {
      if (10256 & n8.subtreeFlags) for (n8 = n8.child; null !== n8; ) cl(e4, n8, t5, r5), n8 = n8.sibling;
    }
    function cl(e4, n8, t5, r5) {
      var l5 = n8.flags;
      switch (n8.tag) {
        case 0:
        case 11:
        case 15:
          sl(e4, n8, t5, r5), 2048 & l5 && Tr(n8, zs | ks);
          break;
        case 3:
          var a6 = G2();
          sl(e4, n8, t5, r5), 2048 & l5 && (t5 = null, null !== n8.alternate && (t5 = n8.alternate.memoizedState.cache), (n8 = n8.memoizedState.cache) !== t5 && (pr(n8), null != t5 && mr(t5))), e4.passiveEffectDuration += J(a6);
          break;
        case 12:
          if (2048 & l5) {
            a6 = G2(), sl(e4, n8, t5, r5), (e4 = n8.stateNode).passiveEffectDuration += K(a6);
            try {
              y3(n8, jr, n8, n8.alternate, Ku, e4.passiveEffectDuration);
            } catch (e5) {
              Xl(n8, n8.return, e5);
            }
          } else sl(e4, n8, t5, r5);
          break;
        case 23:
          break;
        case 22:
          a6 = n8.stateNode, null !== n8.memoizedState ? 4 & a6._visibility ? sl(e4, n8, t5, r5) : pl(e4, n8) : 4 & a6._visibility ? sl(e4, n8, t5, r5) : (a6._visibility |= 4, fl2(e4, n8, t5, r5, 0 != (10256 & n8.subtreeFlags))), 2048 & l5 && ul(n8.alternate, n8);
          break;
        case 24:
          sl(e4, n8, t5, r5), 2048 & l5 && il(n8.alternate, n8);
          break;
        default:
          sl(e4, n8, t5, r5);
      }
    }
    function fl2(e4, n8, t5, r5, l5) {
      for (l5 = l5 && 0 != (10256 & n8.subtreeFlags), n8 = n8.child; null !== n8; ) dl(e4, n8, t5, r5, l5), n8 = n8.sibling;
    }
    function dl(e4, n8, t5, r5, l5) {
      var a6 = n8.flags;
      switch (n8.tag) {
        case 0:
        case 11:
        case 15:
          fl2(e4, n8, t5, r5, l5), Tr(n8, zs);
          break;
        case 23:
          break;
        case 22:
          var o6 = n8.stateNode;
          null !== n8.memoizedState ? 4 & o6._visibility ? fl2(e4, n8, t5, r5, l5) : pl(e4, n8) : (o6._visibility |= 4, fl2(e4, n8, t5, r5, l5)), l5 && 2048 & a6 && ul(n8.alternate, n8);
          break;
        case 24:
          fl2(e4, n8, t5, r5, l5), l5 && 2048 & a6 && il(n8.alternate, n8);
          break;
        default:
          fl2(e4, n8, t5, r5, l5);
      }
    }
    function pl(e4, n8) {
      if (10256 & n8.subtreeFlags) for (n8 = n8.child; null !== n8; ) {
        var t5 = e4, r5 = n8, l5 = r5.flags;
        switch (r5.tag) {
          case 22:
            pl(t5, r5), 2048 & l5 && ul(r5.alternate, r5);
            break;
          case 24:
            pl(t5, r5), 2048 & l5 && il(r5.alternate, r5);
            break;
          default:
            pl(t5, r5);
        }
        n8 = n8.sibling;
      }
    }
    function ml(e4) {
      if (e4.subtreeFlags & Yc) for (e4 = e4.child; null !== e4; ) hl(e4), e4 = e4.sibling;
    }
    function hl(e4) {
      switch (e4.tag) {
        case 26:
          ml(e4), e4.flags & Yc && (null !== e4.memoizedState ? lu(qc, e4.memoizedState, e4.memoizedProps) : To(e4.type, e4.memoizedProps));
          break;
        case 5:
          ml(e4), e4.flags & Yc && To(e4.type, e4.memoizedProps);
          break;
        case 3:
        case 4:
          var n8;
          ml(e4);
          break;
        case 22:
          null === e4.memoizedState && (null !== (n8 = e4.alternate) && null !== n8.memoizedState ? (n8 = Yc, Yc = 16777216, ml(e4), Yc = n8) : ml(e4));
          break;
        default:
          ml(e4);
      }
    }
    function gl(e4) {
      var n8 = e4.alternate;
      if (null !== n8 && null !== (e4 = n8.child)) {
        n8.child = null;
        do {
          n8 = e4.sibling, e4.sibling = null, e4 = n8;
        } while (null !== e4);
      }
    }
    function yl(e4) {
      var n8 = e4.deletions;
      if (0 != (16 & e4.flags)) {
        if (null !== n8) for (var t5 = 0; t5 < n8.length; t5++) {
          var r5 = n8[t5];
          Ac = r5, kl(r5, e4);
        }
        gl(e4);
      }
      if (10256 & e4.subtreeFlags) for (e4 = e4.child; null !== e4; ) bl(e4), e4 = e4.sibling;
    }
    function bl(e4) {
      switch (e4.tag) {
        case 0:
        case 11:
        case 15:
          yl(e4), 2048 & e4.flags && Nr(e4, e4.return, zs | ks);
          break;
        case 3:
          var n8 = G2();
          yl(e4), e4.stateNode.passiveEffectDuration += J(n8);
          break;
        case 12:
          n8 = G2(), yl(e4), e4.stateNode.passiveEffectDuration += K(n8);
          break;
        case 22:
          n8 = e4.stateNode, null !== e4.memoizedState && 4 & n8._visibility && (null === e4.return || 13 !== e4.return.tag) ? (n8._visibility &= -5, vl(e4)) : yl(e4);
          break;
        default:
          yl(e4);
      }
    }
    function vl(e4) {
      var n8 = e4.deletions;
      if (0 != (16 & e4.flags)) {
        if (null !== n8) for (var t5 = 0; t5 < n8.length; t5++) {
          var r5 = n8[t5];
          Ac = r5, kl(r5, e4);
        }
        gl(e4);
      }
      for (e4 = e4.child; null !== e4; ) Sl(e4), e4 = e4.sibling;
    }
    function Sl(e4) {
      switch (e4.tag) {
        case 0:
        case 11:
        case 15:
          Nr(e4, e4.return, zs), vl(e4);
          break;
        case 22:
          var n8 = e4.stateNode;
          4 & n8._visibility && (n8._visibility &= -5, vl(e4));
          break;
        default:
          vl(e4);
      }
    }
    function kl(e4, n8) {
      for (; null !== Ac; ) {
        var t5 = Ac, r5 = t5;
        switch (r5.tag) {
          case 0:
          case 11:
          case 15:
            Nr(r5, n8, zs);
            break;
          case 23:
          case 22:
            null !== r5.memoizedState && null !== r5.memoizedState.cachePool && null != (r5 = r5.memoizedState.cachePool.pool) && pr(r5);
            break;
          case 24:
            mr(r5.memoizedState.cache);
        }
        if (null !== (r5 = t5.child)) r5.return = t5, Ac = r5;
        else e: for (t5 = e4; null !== Ac; ) {
          var l5 = (r5 = Ac).sibling, a6 = r5.return;
          if (Yr(r5), r5 === t5) {
            Ac = null;
            break e;
          }
          if (null !== l5) {
            l5.return = a6, Ac = l5;
            break e;
          }
          Ac = a6;
        }
      }
    }
    function wl() {
      var e4 = "undefined" != typeof IS_REACT_ACT_ENVIRONMENT ? IS_REACT_ACT_ENVIRONMENT : void 0;
      return e4 || null === Ja.actQueue || console.error("The current testing environment is not configured to support act(...)"), e4;
    }
    function xl(e4) {
      if ((sf & Zc) !== Xc && 0 !== df) return df & -df;
      var n8 = Ja.T;
      return null !== n8 ? (n8._updatedFibers || (n8._updatedFibers = /* @__PURE__ */ new Set()), n8._updatedFibers.add(e4), 0 !== (e4 = di) ? e4 : de()) : zo();
    }
    function zl() {
      0 === Nf && (Nf = 0 == (536870912 & df) || Bu ? z() : 536870912);
      var e4 = hs.current;
      return null !== e4 && (e4.flags |= 32), Nf;
    }
    function Cl(e4, n8, t5) {
      if (nd && console.error("useInsertionEffect must not schedule updates."), Jf && (Kf = true), (e4 === cf && wf === hf || null !== e4.cancelPendingCommit) && (Ll(e4, 0), Tl(e4, df, Nf)), P(e4, t5), 0 != (sf & Zc) && e4 === cf) {
        if (ro) switch (n8.tag) {
          case 0:
          case 11:
          case 15:
            e4 = ff && c6(ff) || "Unknown", ud.has(e4) || (ud.add(e4), n8 = c6(n8) || "Unknown", console.error("Cannot update a component (`%s`) while rendering a different component (`%s`). To locate the bad setState() call inside `%s`, follow the stack trace as described in https://react.dev/link/setstate-in-render", n8, e4, e4));
            break;
          case 1:
            od || (console.error("Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state."), od = true);
        }
      } else _u && T(e4, n8, t5), (function(e5) {
        wl() && null === Ja.actQueue && y3(e5, (function() {
          console.error("An update to %s inside a test was not wrapped in act(...).\n\nWhen testing, code that causes React state updates should be wrapped into act(...):\n\nact(() => {\n  /* fire events that update state */\n});\n/* assert on the output */\n\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act", c6(e5));
        }));
      })(n8), e4 === cf && ((sf & Zc) === Xc && (Rf |= t5), Pf === af && Tl(e4, df, Nf)), le(e4);
    }
    function El(e4, n8, t5) {
      if ((sf & (Zc | ef)) !== Xc) throw Error("Should not already be working.");
      var r5 = (t5 = !t5 && 0 == (60 & n8) && 0 == (n8 & e4.expiredLanes)) ? (function(e5, n9) {
        var t6 = sf;
        sf |= Zc;
        var r6 = Il(), l6 = Fl();
        if (cf !== e5 || df !== n9) {
          if (_u) {
            var a7 = e5.memoizedUpdaters;
            0 < a7.size && (ia(e5, df), a7.clear()), N(e5, n9);
          }
          jf = null, Wf = vu() + Hf, Ll(e5, n9);
        }
        e: for (; ; ) try {
          if (wf !== pf && null !== ff) n: switch (n9 = ff, a7 = xf, wf) {
            case mf:
              wf = pf, xf = null, Bl(e5, n9, a7);
              break;
            case hf:
              if (Ee(a7)) {
                wf = pf, xf = null, Ql(n9);
                break;
              }
              n9 = function() {
                wf === hf && cf === e5 && (wf = Sf), le(e5);
              }, a7.then(n9, n9);
              break e;
            case gf:
              wf = Sf;
              break e;
            case yf:
              wf = bf;
              break e;
            case Sf:
              Ee(a7) ? (wf = pf, xf = null, Ql(n9)) : (wf = pf, xf = null, Bl(e5, n9, a7));
              break;
            case bf:
              var o7 = null;
              switch (ff.tag) {
                case 26:
                  o7 = ff.memoizedState;
                case 5:
                case 27:
                  var u6 = ff, i6 = u6.type, s5 = u6.pendingProps;
                  if (o7 ? ru(o7) : _o(i6, s5)) {
                    wf = pf, xf = null;
                    var c7 = u6.sibling;
                    if (null !== c7) ff = c7;
                    else {
                      var f5 = u6.return;
                      null !== f5 ? (ff = f5, Vl(f5)) : ff = null;
                    }
                    break n;
                  }
                  break;
                default:
                  console.error("Unexpected type of fiber triggered a suspensey commit. This is a bug in React.");
              }
              wf = pf, xf = null, Bl(e5, n9, a7);
              break;
            case vf:
              wf = pf, xf = null, Bl(e5, n9, a7);
              break;
            case kf:
              Nl(), Pf = uf;
              break e;
            default:
              throw Error("Unexpected SuspendedReason. This is a bug in React.");
          }
          null !== Ja.actQueue ? Hl() : jl();
          break;
        } catch (n10) {
          Ul(e5, n10);
        }
        return nr(), Ja.H = r6, Ja.A = l6, sf = t6, null !== ff ? nf : (cf = null, df = 0, O(), Pf);
      })(e4, n8) : Wl(e4, n8);
      if (r5 !== nf) for (var l5 = t5; ; ) {
        if (r5 === uf) Tl(e4, n8, 0);
        else {
          if (t5 = e4.current.alternate, l5 && !Rl(t5)) {
            r5 = Wl(e4, n8), l5 = false;
            continue;
          }
          if (r5 === rf) {
            if (l5 = n8, e4.errorRecoveryDisabledLanes & l5) var a6 = 0;
            else a6 = 0 != (a6 = -536870913 & e4.pendingLanes) ? a6 : 536870912 & a6 ? 536870912 : 0;
            if (0 !== a6) {
              n8 = a6;
              e: {
                r5 = e4;
                var o6 = a6;
                a6 = Uf;
                var u5 = So;
                if (u5 && (Ll(r5, o6).flags |= 256), (o6 = Wl(r5, o6)) !== rf) {
                  if (Cf && !u5) {
                    r5.errorRecoveryDisabledLanes |= l5, Rf |= l5, r5 = af;
                    break e;
                  }
                  r5 = Df, Df = a6, null !== r5 && Pl(r5);
                }
                r5 = o6;
              }
              if (l5 = false, r5 !== rf) continue;
            }
          }
          if (r5 === tf) {
            Ll(e4, 0), Tl(e4, n8, 0);
            break;
          }
          e: {
            switch (l5 = e4, r5) {
              case nf:
              case tf:
                throw Error("Root did not complete. This is a bug in React.");
              case af:
                if ((4194176 & n8) === n8) {
                  Tl(l5, n8, Nf);
                  break e;
                }
                break;
              case rf:
                Df = null;
                break;
              case lf:
              case of:
                break;
              default:
                throw Error("Unknown root exit status.");
            }
            if (l5.finishedWork = t5, l5.finishedLanes = n8, null !== Ja.actQueue) ql(l5, Df, jf, If, Nf);
            else {
              if ((62914560 & n8) === n8 && 10 < (r5 = Ff + Mf - vu())) {
                if (Tl(l5, n8, Nf), 0 !== w(l5, 0)) break e;
                l5.timeoutHandle = go(_l.bind(null, l5, t5, Df, jf, If, n8, Nf, Rf, Lf, zf, ld, -0, 0), r5);
                break e;
              }
              _l(l5, t5, Df, jf, If, n8, Nf, Rf, Lf, zf, td2, -0, 0);
            }
          }
        }
        break;
      }
      le(e4);
    }
    function Pl(e4) {
      null === Df ? Df = e4 : Df.push.apply(Df, e4);
    }
    function _l(e4, n8, t5, r5, l5, a6, o6, u5, i6, s5, c7, f5, d4) {
      if ((8192 & (s5 = n8.subtreeFlags) || 16785408 == (16785408 & s5)) && (Ro(), hl(n8), null !== (n8 = No()))) return e4.cancelPendingCommit = n8(ql.bind(null, e4, t5, r5, l5, o6, u5, i6, rd, f5, d4)), void Tl(e4, a6, o6);
      ql(e4, t5, r5, l5, o6);
    }
    function Rl(e4) {
      for (var n8 = e4; ; ) {
        var t5 = n8.tag;
        if ((0 === t5 || 11 === t5 || 15 === t5) && 16384 & n8.flags && null !== (t5 = n8.updateQueue) && null !== (t5 = t5.stores)) for (var r5 = 0; r5 < t5.length; r5++) {
          var l5 = t5[r5], a6 = l5.getSnapshot;
          l5 = l5.value;
          try {
            if (!Ru(a6(), l5)) return false;
          } catch (e5) {
            return false;
          }
        }
        if (t5 = n8.child, 16384 & n8.subtreeFlags && null !== t5) t5.return = n8, n8 = t5;
        else {
          if (n8 === e4) break;
          for (; null === n8.sibling; ) {
            if (null === n8.return || n8.return === e4) return true;
            n8 = n8.return;
          }
          n8.sibling.return = n8.return, n8 = n8.sibling;
        }
      }
      return true;
    }
    function Tl(e4, n8, t5) {
      n8 &= ~Tf, n8 &= ~Rf, e4.suspendedLanes |= n8, e4.pingedLanes &= ~n8;
      for (var r5 = e4.expirationTimes, l5 = n8; 0 < l5; ) {
        var a6 = 31 - cu(l5), o6 = 1 << a6;
        r5[a6] = -1, l5 &= ~o6;
      }
      0 !== t5 && _(e4, t5, n8);
    }
    function Nl() {
      if (null !== ff) {
        if (wf === pf) var e4 = ff.return;
        else e4 = ff, nr(), an(e4), rs = null, ls = 0, e4 = ff;
        for (; null !== e4; ) zr(e4.alternate, e4), e4 = e4.return;
        ff = null;
      }
    }
    function Ll(e4, n8) {
      e4.finishedWork = null, e4.finishedLanes = 0;
      var t5 = e4.timeoutHandle;
      t5 !== bo && (e4.timeoutHandle = bo, yo(t5)), null !== (t5 = e4.cancelPendingCommit) && (e4.cancelPendingCommit = null, t5()), Nl(), cf = e4, ff = t5 = fa(e4.current, null), df = n8, wf = pf, xf = null, Cf = zf = false, Pf = nf, Lf = Nf = Tf = Rf = _f = 0, Df = Uf = null, If = false, 0 != (8 & n8) && (n8 |= 32 & n8);
      var r5 = e4.entangledLanes;
      if (0 !== r5) for (e4 = e4.entanglements, r5 &= n8; 0 < r5; ) {
        var l5 = 31 - cu(r5), a6 = 1 << l5;
        n8 |= e4[l5], r5 &= ~a6;
      }
      return Ef = n8, O(), xi.discardPendingWarnings(), t5;
    }
    function Ul(e4, n8) {
      Ts = null, Ja.H = $s, Ja.getCurrentStack = null, ro = false, to = null, n8 === Di ? (n8 = Re(), wf = Dl() && 0 == (134217727 & _f) && 0 == (134217727 & Rf) ? hf : gf) : n8 === Ii ? (n8 = Re(), wf = yf) : wf = n8 === dc ? kf : null !== n8 && "object" == typeof n8 && "function" == typeof n8.then ? vf : mf, xf = n8;
      var t5 = ff;
      null === t5 ? (Pf = tf, Et(e4, D(n8, e4.current))) : 2 & t5.mode && Z(t5);
    }
    function Dl() {
      var e4 = hs.current;
      return null === e4 || ((4194176 & df) === df ? null === gs : ((62914560 & df) === df || 0 != (536870912 & df)) && e4 === gs);
    }
    function Il() {
      var e4 = Ja.H;
      return Ja.H = $s, null === e4 ? $s : e4;
    }
    function Fl() {
      var e4 = Ja.A;
      return Ja.A = Gc, e4;
    }
    function Ml() {
      Pf = af, 0 == (134217727 & _f) && 0 == (134217727 & Rf) || null === cf || Tl(cf, df, Nf);
    }
    function Wl(e4, n8) {
      var t5 = sf;
      sf |= Zc;
      var r5 = Il(), l5 = Fl();
      if (cf !== e4 || df !== n8) {
        if (_u) {
          var a6 = e4.memoizedUpdaters;
          0 < a6.size && (ia(e4, df), a6.clear()), N(e4, n8);
        }
        jf = null, Ll(e4, n8);
      }
      n8 = false;
      e: for (; ; ) try {
        if (wf !== pf && null !== ff) {
          a6 = ff;
          var o6 = xf;
          switch (wf) {
            case kf:
              Nl(), Pf = uf;
              break e;
            case gf:
            case hf:
              n8 || null !== hs.current || (n8 = true);
            default:
              wf = pf, xf = null, Bl(e4, a6, o6);
          }
        }
        Hl();
        break;
      } catch (n9) {
        Ul(e4, n9);
      }
      if (n8 && e4.shellSuspendCounter++, nr(), sf = t5, Ja.H = r5, Ja.A = l5, null !== ff) throw Error("Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.");
      return cf = null, df = 0, O(), Pf;
    }
    function Hl() {
      for (; null !== ff; ) Al(ff);
    }
    function jl() {
      for (; null !== ff && !yu(); ) Al(ff);
    }
    function Al(e4) {
      var n8 = e4.alternate;
      (2 & e4.mode) !== $u ? (X(e4), n8 = y3(e4, er, n8, e4, Ef), Z(e4)) : n8 = y3(e4, er, n8, e4, Ef), e4.memoizedProps = e4.pendingProps, null === n8 ? Vl(e4) : ff = n8;
    }
    function Ql(e4) {
      var n8 = y3(e4, Ol, e4);
      e4.memoizedProps = e4.pendingProps, null === n8 ? Vl(e4) : ff = n8;
    }
    function Ol(e4) {
      var n8 = e4.alternate, t5 = (2 & e4.mode) !== $u;
      switch (t5 && X(e4), e4.tag) {
        case 15:
        case 0:
          n8 = Ht(n8, e4, e4.pendingProps, e4.type, void 0, df);
          break;
        case 11:
          n8 = Ht(n8, e4, e4.pendingProps, e4.type.render, e4.ref, df);
          break;
        case 5:
          an(e4);
        default:
          zr(n8, e4), n8 = er(n8, e4 = ff = da(e4, Ef), Ef);
      }
      return t5 && Z(e4), n8;
    }
    function Bl(e4, n8, t5) {
      nr(), an(n8), rs = null, ls = 0;
      var r5 = n8.return;
      try {
        if ((function(e5, n9, t6, r6, l5) {
          if (t6.flags |= 32768, _u && ia(e5, l5), null !== r6 && "object" == typeof r6 && "function" == typeof r6.then) {
            if (null !== (n9 = t6.alternate) && or(n9, t6, l5, true), null !== (t6 = hs.current)) {
              switch (t6.tag) {
                case 13:
                  return null === gs ? Ml() : null === t6.alternate && Pf === nf && (Pf = lf), t6.flags &= -257, t6.flags |= 65536, t6.lanes = l5, r6 === Fi ? t6.flags |= 16384 : (null === (n9 = t6.updateQueue) ? t6.updateQueue = /* @__PURE__ */ new Set([r6]) : n9.add(r6), Zl(e5, r6, l5)), false;
                case 22:
                  return t6.flags |= 65536, r6 === Fi ? t6.flags |= 16384 : (null === (n9 = t6.updateQueue) ? (n9 = { transitions: null, markerInstances: null, retryQueue: /* @__PURE__ */ new Set([r6]) }, t6.updateQueue = n9) : null === (t6 = n9.retryQueue) ? n9.retryQueue = /* @__PURE__ */ new Set([r6]) : t6.add(r6), Zl(e5, r6, l5)), false;
              }
              throw Error("Unexpected Suspense handler tag (" + t6.tag + "). This is a bug in React.");
            }
            return Zl(e5, r6, l5), Ml(), false;
          }
          var a6 = D(Error("There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.", { cause: r6 }), t6);
          if (null === Uf ? Uf = [a6] : Uf.push(a6), Pf !== af && (Pf = rf), null === n9) return true;
          r6 = D(r6, t6), t6 = n9;
          do {
            switch (t6.tag) {
              case 3:
                return t6.flags |= 65536, e5 = l5 & -l5, t6.lanes |= e5, ve(t6, e5 = _t(t6.stateNode, r6, e5)), false;
              case 1:
                if (n9 = t6.type, a6 = t6.stateNode, 0 == (128 & t6.flags) && ("function" == typeof n9.getDerivedStateFromError || null !== a6 && "function" == typeof a6.componentDidCatch && (null === Af || !Af.has(a6)))) return t6.flags |= 65536, l5 &= -l5, t6.lanes |= l5, Tt(l5 = Rt(l5), e5, t6, r6), ve(t6, l5), false;
            }
            t6 = t6.return;
          } while (null !== t6);
          return false;
        })(e4, r5, n8, t5, df)) return Pf = tf, Et(e4, D(t5, e4.current)), void (ff = null);
      } catch (n9) {
        if (null !== r5) throw ff = r5, n9;
        return Pf = tf, Et(e4, D(t5, e4.current)), void (ff = null);
      }
      32768 & n8.flags ? $l(n8, true) : Vl(n8);
    }
    function Vl(e4) {
      var n8 = e4;
      do {
        if (0 != (32768 & n8.flags)) return void $l(n8, zf);
        var t5 = n8.alternate;
        if (e4 = n8.return, X(n8), t5 = y3(n8, wr, t5, n8, Ef), (2 & n8.mode) !== $u && ee(n8), null !== t5) return void (ff = t5);
        if (null !== (n8 = n8.sibling)) return void (ff = n8);
        ff = n8 = e4;
      } while (null !== n8);
      Pf === nf && (Pf = of);
    }
    function $l(e4, n8) {
      do {
        var t5 = xr(e4.alternate, e4);
        if (null !== t5) return t5.flags &= 32767, void (ff = t5);
        if ((2 & e4.mode) !== $u) {
          ee(e4), t5 = e4.actualDuration;
          for (var r5 = e4.child; null !== r5; ) t5 += r5.actualDuration, r5 = r5.sibling;
          e4.actualDuration = t5;
        }
        if (null !== (t5 = e4.return) && (t5.flags |= 32768, t5.subtreeFlags = 0, t5.deletions = null), !n8 && null !== (e4 = e4.sibling)) return void (ff = e4);
        ff = e4 = t5;
      } while (null !== e4);
      Pf = uf, ff = null;
    }
    function ql(e4, n8, t5, r5, l5, a6, o6, u5, i6, s5) {
      var c7 = Ja.T, f5 = xo();
      try {
        wo(2), Ja.T = null, (function(e5, n9, t6, r6, l6, a7) {
          do {
            Jl();
          } while (null !== Of);
          if (xi.flushLegacyContextWarning(), xi.flushPendingUnsafeLifecycleWarnings(), (sf & (Zc | ef)) !== Xc) throw Error("Should not already be working.");
          var o7 = e5.finishedWork;
          if (r6 = e5.finishedLanes, null === o7) return null;
          if (0 === r6 && console.error("root.finishedLanes should not be empty during a commit. This is a bug in React."), e5.finishedWork = null, e5.finishedLanes = 0, o7 === e5.current) throw Error("Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.");
          e5.callbackNode = null, e5.callbackPriority = 0, e5.cancelPendingCommit = null;
          var u6, i7, s6, c8 = o7.lanes | o7.childLanes;
          if ((function(e6, n10, t7, r7) {
            var l7 = e6.pendingLanes;
            e6.pendingLanes = t7, e6.suspendedLanes = 0, e6.pingedLanes = 0, e6.warmLanes = 0, e6.expiredLanes &= t7, e6.entangledLanes &= t7, e6.errorRecoveryDisabledLanes &= t7, e6.shellSuspendCounter = 0, n10 = e6.entanglements;
            var a8 = e6.expirationTimes, o8 = e6.hiddenUpdates;
            for (t7 = l7 & ~t7; 0 < t7; ) {
              var u7 = 31 - cu(t7);
              l7 = 1 << u7, n10[u7] = 0, a8[u7] = -1;
              var i8 = o8[u7];
              if (null !== i8) for (o8[u7] = null, u7 = 0; u7 < i8.length; u7++) {
                var s7 = i8[u7];
                null !== s7 && (s7.lane &= -536870913);
              }
              t7 &= ~l7;
            }
            0 !== r7 && _(e6, r7, 0);
          })(e5, r6, c8 |= Gu, a7), e5 === cf && (ff = cf = null, df = 0), 0 == (10256 & o7.subtreeFlags) && 0 == (10256 & o7.flags) || Qf || (Qf = true, Vf = c8, $f = t6, u6 = wu, i7 = function() {
            return Jl(), null;
          }, null !== (s6 = Ja.actQueue) ? s6.push(i7) : hu(u6, i7)), Ku = Ju(), t6 = 0 != (15990 & o7.flags), 0 != (15990 & o7.subtreeFlags) || t6) {
            t6 = Ja.T, Ja.T = null, a7 = xo(), wo(2);
            var f6 = sf;
            sf |= ef, (function(e6, n10) {
              for (io(e6.containerInfo), Ac = n10; null !== Ac; ) if (n10 = (e6 = Ac).child, 0 != (1028 & e6.subtreeFlags) && null !== n10) n10.return = e6, Ac = n10;
              else for (; null !== Ac; ) {
                var t7 = (n10 = e6 = Ac).alternate, r7 = n10.flags;
                switch (n10.tag) {
                  case 0:
                  case 11:
                  case 15:
                  case 5:
                  case 26:
                  case 27:
                  case 6:
                  case 4:
                  case 17:
                    break;
                  case 1:
                    0 != (1024 & r7) && null !== t7 && Dr(n10, t7);
                    break;
                  case 3:
                    0 != (1024 & r7) && vo && Go(n10.stateNode.containerInfo);
                    break;
                  default:
                    if (0 != (1024 & r7)) throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.");
                }
                if (null !== (n10 = e6.sibling)) {
                  n10.return = e6.return, Ac = n10;
                  break;
                }
                Ac = e6.return;
              }
              e6 = Bc, Bc = false;
            })(e5, o7), (function(e6, n10, t7) {
              Qc = t7, Oc = e6, Zr(n10, e6), Oc = Qc = null;
            })(e5, o7, r6), so(e5.containerInfo), e5.current = o7, (function(e6, n10, t7) {
              Qc = t7, Oc = n10, qr(n10, e6.alternate, e6), Oc = Qc = null;
            })(o7, e5, r6), bu(), sf = f6, wo(a7), Ja.T = t6;
          } else e5.current = o7;
          if ((t6 = Qf) ? (Qf = false, Of = e5, Bf = r6) : (Gl(e5, c8), Zf = 0, ed = null), 0 === (c8 = e5.pendingLanes) && (Af = null), t6 || oa(e5), o7.stateNode, _u && e5.memoizedUpdaters.clear(), le(e5), null !== n9) for (l6 = e5.onRecoverableError, o7 = 0; o7 < n9.length; o7++) t6 = Yl((c8 = n9[o7]).stack), y3(c8.source, l6, c8.value, t6);
          0 != (3 & Bf) && Jl(), c8 = e5.pendingLanes, 0 != (4194218 & r6) && 0 != (42 & c8) ? (ni = true, e5 === Gf ? Yf++ : (Yf = 0, Gf = e5)) : Yf = 0, ae(0);
        })(e4, n8, t5, r5, f5, l5);
      } finally {
        Ja.T = c7, wo(f5);
      }
    }
    function Yl(e4) {
      return e4 = { componentStack: e4 }, Object.defineProperty(e4, "digest", { get: function() {
        console.error('You are accessing "digest" from the errorInfo object passed to onRecoverableError. This property is no longer provided as part of errorInfo but can be accessed as a property of the Error instance itself.');
      } }), e4;
    }
    function Gl(e4, n8) {
      0 == (e4.pooledCacheLanes &= n8) && null != (n8 = e4.pooledCache) && (e4.pooledCache = null, mr(n8));
    }
    function Jl() {
      if (null !== Of) {
        var e4 = Of, n8 = Vf;
        Vf = 0;
        var t5 = L(Bf), r5 = 32 > t5 ? 32 : t5;
        t5 = Ja.T;
        var l5 = xo();
        try {
          if (wo(r5), Ja.T = null, null === Of) var a6 = false;
          else {
            r5 = $f, $f = null;
            var o6 = Of, u5 = Bf;
            if (Of = null, Bf = 0, (sf & (Zc | ef)) !== Xc) throw Error("Cannot flush passive effects while already rendering.");
            Jf = true, Kf = false, null !== Pu && "function" == typeof Pu.markPassiveEffectsStarted && Pu.markPassiveEffectsStarted(u5);
            var i6 = sf;
            sf |= ef, bl(o6.current), cl(o6, o6.current, u5, r5), null !== Pu && "function" == typeof Pu.markPassiveEffectsStopped && Pu.markPassiveEffectsStopped(), oa(o6), sf = i6, ae(0), Kf ? o6 === ed ? Zf++ : (Zf = 0, ed = o6) : Zf = 0, Kf = Jf = false, Eu && Eu.onPostCommitFiberRoot;
            var s5 = o6.current.stateNode;
            s5.effectDuration = 0, s5.passiveEffectDuration = 0, a6 = true;
          }
          return a6;
        } finally {
          wo(l5), Ja.T = t5, Gl(e4, n8);
        }
      }
      return false;
    }
    function Kl(e4, n8, t5) {
      n8 = D(t5, n8), null !== (e4 = ye(e4, n8 = _t(e4.stateNode, n8, 2), 2)) && (P(e4, 2), le(e4));
    }
    function Xl(e4, n8, t5) {
      if (nd = false, 3 === e4.tag) Kl(e4, e4, t5);
      else {
        for (; null !== n8; ) {
          if (3 === n8.tag) return void Kl(n8, e4, t5);
          if (1 === n8.tag) {
            var r5 = n8.stateNode;
            if ("function" == typeof n8.type.getDerivedStateFromError || "function" == typeof r5.componentDidCatch && (null === Af || !Af.has(r5))) return e4 = D(t5, e4), void (null !== (r5 = ye(n8, t5 = Rt(2), 2)) && (Tt(t5, r5, n8, e4), P(r5, 2), le(r5)));
          }
          n8 = n8.return;
        }
        console.error("Internal React error: Attempted to capture a commit phase error inside a detached tree. This indicates a bug in React. Potential causes include deleting the same fiber more than once, committing an already-finished tree, or an inconsistent return pointer.\n\nError message:\n\n%s", t5);
      }
    }
    function Zl(e4, n8, t5) {
      var r5 = e4.pingCache;
      if (null === r5) {
        r5 = e4.pingCache = new Kc();
        var l5 = /* @__PURE__ */ new Set();
        r5.set(n8, l5);
      } else void 0 === (l5 = r5.get(n8)) && (l5 = /* @__PURE__ */ new Set(), r5.set(n8, l5));
      l5.has(t5) || (Cf = true, l5.add(t5), r5 = ea.bind(null, e4, n8, t5), _u && ia(e4, t5), n8.then(r5, r5));
    }
    function ea(e4, n8, t5) {
      var r5 = e4.pingCache;
      null !== r5 && r5.delete(n8), e4.pingedLanes |= e4.suspendedLanes & t5, e4.warmLanes &= ~t5, wl() && null === Ja.actQueue && console.error("A suspended resource finished loading inside a test, but the event was not wrapped in act(...).\n\nWhen testing, code that resolves suspended data should be wrapped into act(...):\n\nact(() => {\n  /* finish loading suspended data */\n});\n/* assert on the output */\n\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act"), cf === e4 && (df & t5) === t5 && (Pf === af || Pf === lf && (62914560 & df) === df && vu() - Ff < Mf ? (sf & Zc) === Xc && Ll(e4, 0) : Tf |= t5, Lf === df && (Lf = 0)), le(e4);
    }
    function na(e4, n8) {
      0 === n8 && (n8 = C()), null !== (e4 = $(e4, n8)) && (P(e4, n8), le(e4));
    }
    function ta(e4) {
      var n8 = e4.memoizedState, t5 = 0;
      null !== n8 && (t5 = n8.retryLane), na(e4, t5);
    }
    function ra(e4, n8) {
      var t5 = 0;
      switch (e4.tag) {
        case 13:
          var r5 = e4.stateNode, l5 = e4.memoizedState;
          null !== l5 && (t5 = l5.retryLane);
          break;
        case 19:
          r5 = e4.stateNode;
          break;
        case 22:
          r5 = e4.stateNode._retryCache;
          break;
        default:
          throw Error("Pinged unknown suspense boundary type. This is probably a bug in React.");
      }
      null !== r5 && r5.delete(n8), na(e4, t5);
    }
    function la(e4, n8, t5) {
      if (0 != (33562624 & n8.subtreeFlags)) for (n8 = n8.child; null !== n8; ) {
        var r5 = e4, l5 = n8, a6 = l5.type === Fa;
        a6 = t5 || a6, 22 !== l5.tag ? 33554432 & l5.flags ? a6 && y3(l5, aa, r5, l5, (64 & l5.mode) === $u) : la(r5, l5, a6) : null === l5.memoizedState && (a6 && 8192 & l5.flags ? y3(l5, aa, r5, l5) : 33554432 & l5.subtreeFlags && y3(l5, la, r5, l5, a6)), n8 = n8.sibling;
      }
    }
    function aa(e4, n8) {
      var t5 = !(2 < arguments.length && void 0 !== arguments[2]) || arguments[2];
      U(true);
      try {
        rl(n8), t5 && Sl(n8), al(e4, n8.alternate, n8, false), t5 && dl(e4, n8, 0, null, false);
      } finally {
        U(false);
      }
    }
    function oa(e4) {
      var n8 = true;
      24 & e4.current.mode || (n8 = false), la(e4, e4.current, n8);
    }
    function ua(e4) {
      if ((sf & Zc) === Xc) {
        var n8 = e4.tag;
        if (3 === n8 || 1 === n8 || 0 === n8 || 11 === n8 || 14 === n8 || 15 === n8) {
          if (n8 = c6(e4) || "ReactComponent", null !== ad) {
            if (ad.has(n8)) return;
            ad.add(n8);
          } else ad = /* @__PURE__ */ new Set([n8]);
          y3(e4, (function() {
            console.error("Can't perform a React state update on a component that hasn't mounted yet. This indicates that you have a side-effect in your render function that asynchronously later calls tries to update the component. Move this work to useEffect instead.");
          }));
        }
      }
    }
    function ia(e4, n8) {
      _u && e4.memoizedUpdaters.forEach((function(t5) {
        T(e4, t5, n8);
      }));
    }
    function sa(e4, n8, t5, r5) {
      this.tag = e4, this.key = t5, this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null, this.index = 0, this.refCleanup = this.ref = null, this.pendingProps = n8, this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null, this.mode = r5, this.subtreeFlags = this.flags = 0, this.deletions = null, this.childLanes = this.lanes = 0, this.alternate = null, this.actualDuration = -0, this.actualStartTime = -1.1, this.treeBaseDuration = this.selfBaseDuration = -0, this._debugOwner = this._debugInfo = null, this._debugNeedsRemount = false, this._debugHookTypes = null, id || "function" != typeof Object.preventExtensions || Object.preventExtensions(this);
    }
    function ca(e4) {
      return !(!(e4 = e4.prototype) || !e4.isReactComponent);
    }
    function fa(e4, n8) {
      var r5 = e4.alternate;
      switch (null === r5 ? ((r5 = t4(e4.tag, n8, e4.key, e4.mode)).elementType = e4.elementType, r5.type = e4.type, r5.stateNode = e4.stateNode, r5._debugOwner = e4._debugOwner, r5._debugHookTypes = e4._debugHookTypes, r5.alternate = e4, e4.alternate = r5) : (r5.pendingProps = n8, r5.type = e4.type, r5.flags = 0, r5.subtreeFlags = 0, r5.deletions = null, r5.actualDuration = -0, r5.actualStartTime = -1.1), r5.flags = 31457280 & e4.flags, r5.childLanes = e4.childLanes, r5.lanes = e4.lanes, r5.child = e4.child, r5.memoizedProps = e4.memoizedProps, r5.memoizedState = e4.memoizedState, r5.updateQueue = e4.updateQueue, n8 = e4.dependencies, r5.dependencies = null === n8 ? null : { lanes: n8.lanes, firstContext: n8.firstContext, _debugThenableState: n8._debugThenableState }, r5.sibling = e4.sibling, r5.index = e4.index, r5.ref = e4.ref, r5.refCleanup = e4.refCleanup, r5.selfBaseDuration = e4.selfBaseDuration, r5.treeBaseDuration = e4.treeBaseDuration, r5._debugInfo = e4._debugInfo, r5._debugNeedsRemount = e4._debugNeedsRemount, r5.tag) {
        case 0:
        case 15:
        case 1:
        case 11:
          r5.type = e4.type;
      }
      return r5;
    }
    function da(e4, n8) {
      e4.flags &= 31457282;
      var t5 = e4.alternate;
      return null === t5 ? (e4.childLanes = 0, e4.lanes = n8, e4.child = null, e4.subtreeFlags = 0, e4.memoizedProps = null, e4.memoizedState = null, e4.updateQueue = null, e4.dependencies = null, e4.stateNode = null, e4.selfBaseDuration = 0, e4.treeBaseDuration = 0) : (e4.childLanes = t5.childLanes, e4.lanes = t5.lanes, e4.child = t5.child, e4.subtreeFlags = 0, e4.deletions = null, e4.memoizedProps = t5.memoizedProps, e4.memoizedState = t5.memoizedState, e4.updateQueue = t5.updateQueue, e4.type = t5.type, n8 = t5.dependencies, e4.dependencies = null === n8 ? null : { lanes: n8.lanes, firstContext: n8.firstContext, _debugThenableState: n8._debugThenableState }, e4.selfBaseDuration = t5.selfBaseDuration, e4.treeBaseDuration = t5.treeBaseDuration), e4;
    }
    function pa(e4, n8, r5, l5, a6, o6) {
      var u5 = 0, i6 = e4;
      if ("function" == typeof e4) ca(e4) && (u5 = 1);
      else if ("string" == typeof e4) u5 = 5;
      else e: switch (e4) {
        case Ia:
          return ha(r5.children, a6, o6, n8);
        case Fa:
          u5 = 8, a6 |= 24;
          break;
        case Ma:
          return l5 = a6, "string" != typeof (e4 = r5).id && console.error('Profiler must specify an "id" of type `string` as a prop. Received the type `%s` instead.', typeof e4.id), (n8 = t4(12, e4, n8, 2 | l5)).elementType = Ma, n8.lanes = o6, n8.stateNode = { effectDuration: 0, passiveEffectDuration: 0 }, n8;
        case Qa:
          return (n8 = t4(13, r5, n8, a6)).elementType = Qa, n8.lanes = o6, n8;
        case Oa:
          return (n8 = t4(19, r5, n8, a6)).elementType = Oa, n8.lanes = o6, n8;
        case $a:
          return ga(r5, a6, o6, n8);
        default:
          if ("object" == typeof e4 && null !== e4) switch (e4.$$typeof) {
            case Wa:
            case ja:
              u5 = 10;
              break e;
            case Ha:
              u5 = 9;
              break e;
            case Aa:
              u5 = 11;
              break e;
            case Ba:
              u5 = 14;
              break e;
            case Va:
              u5 = 16, i6 = null;
              break e;
          }
          i6 = "", (void 0 === e4 || "object" == typeof e4 && null !== e4 && 0 === Object.keys(e4).length) && (i6 += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."), null === e4 ? r5 = "null" : lo(e4) ? r5 = "array" : void 0 !== e4 && e4.$$typeof === Ua ? (r5 = "<" + (s4(e4.type) || "Unknown") + " />", i6 = " Did you accidentally export a JSX literal instead of a component?") : r5 = typeof e4, (u5 = l5 ? "number" == typeof l5.tag ? c6(l5) : "string" == typeof l5.name ? l5.name : null : null) && (i6 += "\n\nCheck the render method of `" + u5 + "`."), u5 = 29, r5 = Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " + r5 + "." + i6), i6 = null;
      }
      return (n8 = t4(u5, r5, n8, a6)).elementType = e4, n8.type = i6, n8.lanes = o6, n8._debugOwner = l5, n8;
    }
    function ma(e4, n8, t5) {
      return (n8 = pa(e4.type, e4.key, e4.props, e4._owner, n8, t5))._debugOwner = e4._owner, n8;
    }
    function ha(e4, n8, r5, l5) {
      return (e4 = t4(7, e4, l5, n8)).lanes = r5, e4;
    }
    function ga(e4, n8, r5, l5) {
      (e4 = t4(22, e4, l5, n8)).elementType = $a, e4.lanes = r5;
      var a6 = { _visibility: 1, _pendingVisibility: 1, _pendingMarkers: null, _retryCache: null, _transitions: null, _current: null, detach: function() {
        var e5 = a6, n9 = e5._current;
        if (null === n9) throw Error("Calling Offscreen.detach before instance handle has been set.");
        if (0 == (2 & e5._pendingVisibility)) {
          var t5 = $(n9, 2);
          null !== t5 && (e5._pendingVisibility |= 2, Cl(t5, n9, 2));
        }
      }, attach: function() {
        var e5 = a6, n9 = e5._current;
        if (null === n9) throw Error("Calling Offscreen.detach before instance handle has been set.");
        if (0 != (2 & e5._pendingVisibility)) {
          var t5 = $(n9, 2);
          null !== t5 && (e5._pendingVisibility &= -3, Cl(t5, n9, 2));
        }
      } };
      return e4.stateNode = a6, e4;
    }
    function ya(e4, n8, r5) {
      return (e4 = t4(6, e4, null, n8)).lanes = r5, e4;
    }
    function ba(e4, n8, r5) {
      return (n8 = t4(4, null !== e4.children ? e4.children : [], e4.key, n8)).lanes = r5, n8.stateNode = { containerInfo: e4.containerInfo, pendingChildren: null, implementation: e4.implementation }, n8;
    }
    function va(e4, n8, t5, r5, l5, a6, o6, u5) {
      for (this.tag = 1, this.containerInfo = e4, this.finishedWork = this.pingCache = this.current = this.pendingChildren = null, this.timeoutHandle = bo, this.callbackNode = this.next = this.pendingContext = this.context = this.cancelPendingCommit = null, this.callbackPriority = 0, this.expirationTimes = E(-1), this.entangledLanes = this.shellSuspendCounter = this.errorRecoveryDisabledLanes = this.finishedLanes = this.expiredLanes = this.warmLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0, this.entanglements = E(0), this.hiddenUpdates = E(null), this.identifierPrefix = r5, this.onUncaughtError = l5, this.onCaughtError = a6, this.onRecoverableError = o6, this.pooledCache = null, this.pooledCacheLanes = 0, this.formState = u5, this.incompleteTransitions = /* @__PURE__ */ new Map(), this.passiveEffectDuration = this.effectDuration = -0, this.memoizedUpdaters = /* @__PURE__ */ new Set(), e4 = this.pendingUpdatersLaneMap = [], n8 = 0; 31 > n8; n8++) e4.push(/* @__PURE__ */ new Set());
      this._debugRootType = t5 ? "hydrateRoot()" : "createRoot()";
    }
    function Sa(e4, n8, t5, r5, l5, a6) {
      l5 = (function(e5) {
        return e5 ? e5 = su : su;
      })(l5), null === r5.context ? r5.context = l5 : r5.pendingContext = l5, ro && null !== to && !cd && (cd = true, console.error("Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.\n\nCheck the render method of %s.", c6(to) || "Unknown")), (r5 = ge(n8)).payload = { element: t5 }, null !== (a6 = void 0 === a6 ? null : a6) && ("function" != typeof a6 && console.error("Expected the last optional `callback` argument to be a function. Instead received: %s.", a6), r5.callback = a6), null !== (t5 = ye(e4, r5, n8)) && (Cl(t5, e4, n8), be(t5, e4, n8));
    }
    var ka, wa, xa, za, Ca, Ea, Pa, _a2 = {}, Ra = import_react.default, Ta = u2, Na = Object.assign, La = Symbol.for("react.element"), Ua = Symbol.for("react.transitional.element"), Da = Symbol.for("react.portal"), Ia = Symbol.for("react.fragment"), Fa = Symbol.for("react.strict_mode"), Ma = Symbol.for("react.profiler"), Wa = Symbol.for("react.provider"), Ha = Symbol.for("react.consumer"), ja = Symbol.for("react.context"), Aa = Symbol.for("react.forward_ref"), Qa = Symbol.for("react.suspense"), Oa = Symbol.for("react.suspense_list"), Ba = Symbol.for("react.memo"), Va = Symbol.for("react.lazy"), $a = Symbol.for("react.offscreen"), qa = Symbol.for("react.memo_cache_sentinel"), Ya = Symbol.iterator, Ga = Symbol.for("react.client.reference"), Ja = Ra.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, Ka = 0;
    f4.__reactDisabledLog = true;
    var Xa, Za, eo = false, no = new ("function" == typeof WeakMap ? WeakMap : Map)(), to = null, ro = false, lo = Array.isArray, ao = n7.getPublicInstance, oo = n7.getRootHostContext, uo = n7.getChildHostContext, io = n7.prepareForCommit, so = n7.resetAfterCommit, co = n7.createInstance, fo = n7.appendInitialChild, po = n7.finalizeInitialChildren, mo = n7.shouldSetTextContent, ho = n7.createTextInstance, go = null, yo = null, bo = n7.noTimeout, vo = true, So = null, ko = null, wo = n7.setCurrentUpdatePriority, xo = n7.getCurrentUpdatePriority, zo = n7.resolveUpdatePriority;
    n7.resolveEventType, n7.resolveEventTimeStamp;
    var Co = n7.shouldAttemptEagerTransition, Eo = n7.detachDeletedInstance;
    n7.requestPostPaintCallback;
    var Po = n7.maySuspendCommit, _o = null, Ro = null, To = null, No = null, Lo = null, Uo = null, Do = null, Io = n7.appendChild, Fo = n7.appendChildToContainer, Mo = n7.commitTextUpdate, Wo = null, Ho = n7.commitUpdate, jo = n7.insertBefore, Ao = null, Qo = n7.removeChild, Oo = n7.removeChildFromContainer, Bo = n7.resetTextContent, Vo = null, $o = null, qo = null, Yo = null, Go = n7.clearContainer, Jo = null, Ko = null, Xo = null, Zo = null, eu = null, nu = null, tu = null, ru = null, lu = null, au = null, ou = [], uu = [], iu = -1, su = {};
    Object.freeze(su);
    var cu = Math.clz32 ? Math.clz32 : function(e4) {
      return 0 == (e4 >>>= 0) ? 32 : 31 - (fu(e4) / du | 0) | 0;
    }, fu = Math.log, du = Math.LN2, pu = 128, mu = 4194304, hu = Ta.unstable_scheduleCallback, gu = Ta.unstable_cancelCallback, yu = Ta.unstable_shouldYield, bu = Ta.unstable_requestPaint, vu = Ta.unstable_now, Su = Ta.unstable_ImmediatePriority, ku = Ta.unstable_UserBlockingPriority, wu = Ta.unstable_NormalPriority, xu = Ta.unstable_IdlePriority, zu = Ta.log, Cu = Ta.unstable_setDisableYieldValue, Eu = null, Pu = null, _u = "undefined" != typeof __REACT_DEVTOOLS_GLOBAL_HOOK__, Ru = "function" == typeof Object.is ? Object.is : function(e4, n8) {
      return e4 === n8 && (0 !== e4 || 1 / e4 == 1 / n8) || e4 != e4 && n8 != n8;
    }, Tu = /* @__PURE__ */ new WeakMap(), Nu = [], Lu = 0, Uu = null, Du = 0, Iu = [], Fu = 0, Mu = null, Wu = 1, Hu = "", ju = b3(null), Au = b3(null), Qu = b3(null), Ou = b3(null), Bu = false, Vu = null, $u = 0, qu = [], Yu = 0, Gu = 0, Ju = Ta.unstable_now, Ku = -0, Xu = -1.1, Zu = -0, ei = false, ni = false, ti = null, ri = null, li = false, ai = false, oi = false, ui = false, ii = 0, si = {}, ci = null, fi = 0, di = 0, pi = null, mi = 0, hi = 1, gi = 2, yi = 3, bi = false, vi = false, Si = null, ki = false, wi = Object.prototype.hasOwnProperty, xi = { recordUnsafeLifecycleWarnings: function() {
    }, flushPendingUnsafeLifecycleWarnings: function() {
    }, recordLegacyContextWarning: function() {
    }, flushLegacyContextWarning: function() {
    }, discardPendingWarnings: function() {
    } }, zi = [], Ci = [], Ei = [], Pi = [], _i = [], Ri = [], Ti = /* @__PURE__ */ new Set();
    xi.recordUnsafeLifecycleWarnings = function(e4, n8) {
      Ti.has(e4.type) || ("function" == typeof n8.componentWillMount && true !== n8.componentWillMount.__suppressDeprecationWarning && zi.push(e4), 8 & e4.mode && "function" == typeof n8.UNSAFE_componentWillMount && Ci.push(e4), "function" == typeof n8.componentWillReceiveProps && true !== n8.componentWillReceiveProps.__suppressDeprecationWarning && Ei.push(e4), 8 & e4.mode && "function" == typeof n8.UNSAFE_componentWillReceiveProps && Pi.push(e4), "function" == typeof n8.componentWillUpdate && true !== n8.componentWillUpdate.__suppressDeprecationWarning && _i.push(e4), 8 & e4.mode && "function" == typeof n8.UNSAFE_componentWillUpdate && Ri.push(e4));
    }, xi.flushPendingUnsafeLifecycleWarnings = function() {
      var e4 = /* @__PURE__ */ new Set();
      0 < zi.length && (zi.forEach((function(n9) {
        e4.add(c6(n9) || "Component"), Ti.add(n9.type);
      })), zi = []);
      var n8 = /* @__PURE__ */ new Set();
      0 < Ci.length && (Ci.forEach((function(e5) {
        n8.add(c6(e5) || "Component"), Ti.add(e5.type);
      })), Ci = []);
      var t5 = /* @__PURE__ */ new Set();
      0 < Ei.length && (Ei.forEach((function(e5) {
        t5.add(c6(e5) || "Component"), Ti.add(e5.type);
      })), Ei = []);
      var r5 = /* @__PURE__ */ new Set();
      0 < Pi.length && (Pi.forEach((function(e5) {
        r5.add(c6(e5) || "Component"), Ti.add(e5.type);
      })), Pi = []);
      var l5 = /* @__PURE__ */ new Set();
      0 < _i.length && (_i.forEach((function(e5) {
        l5.add(c6(e5) || "Component"), Ti.add(e5.type);
      })), _i = []);
      var a6 = /* @__PURE__ */ new Set();
      if (0 < Ri.length && (Ri.forEach((function(e5) {
        a6.add(c6(e5) || "Component"), Ti.add(e5.type);
      })), Ri = []), 0 < n8.size) {
        var u5 = o5(n8);
        console.error("Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\n\nPlease update the following components: %s", u5);
      }
      0 < r5.size && (u5 = o5(r5), console.error("Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\n\nPlease update the following components: %s", u5)), 0 < a6.size && (u5 = o5(a6), console.error("Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n\nPlease update the following components: %s", u5)), 0 < e4.size && (u5 = o5(e4), console.warn("componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\n* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s", u5)), 0 < t5.size && (u5 = o5(t5), console.warn("componentWillReceiveProps has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\n* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s", u5)), 0 < l5.size && (u5 = o5(l5), console.warn("componentWillUpdate has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s", u5));
    };
    var Ni = /* @__PURE__ */ new Map(), Li = /* @__PURE__ */ new Set();
    xi.recordLegacyContextWarning = function(e4, n8) {
      for (var t5 = null, r5 = e4; null !== r5; ) 8 & r5.mode && (t5 = r5), r5 = r5.return;
      null === t5 ? console.error("Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.") : !Li.has(e4.type) && (r5 = Ni.get(t5), null != e4.type.contextTypes || null != e4.type.childContextTypes || null !== n8 && "function" == typeof n8.getChildContext) && (void 0 === r5 && (r5 = [], Ni.set(t5, r5)), r5.push(e4));
    }, xi.flushLegacyContextWarning = function() {
      Ni.forEach((function(e4) {
        if (0 !== e4.length) {
          var n8 = e4[0], t5 = /* @__PURE__ */ new Set();
          e4.forEach((function(e5) {
            t5.add(c6(e5) || "Component"), Li.add(e5.type);
          }));
          var r5 = o5(t5);
          y3(n8, (function() {
            console.error("Legacy context API has been detected within a strict-mode tree.\n\nThe old API will be supported in all 16.x releases, but applications using it should migrate to the new version.\n\nPlease update the following components: %s\n\nLearn more about this warning here: https://react.dev/link/legacy-context", r5);
          }));
        }
      }));
    }, xi.discardPendingWarnings = function() {
      zi = [], Ci = [], Ei = [], Pi = [], _i = [], Ri = [], Ni = /* @__PURE__ */ new Map();
    };
    var Ui, Di = Error("Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`"), Ii = Error("Suspense Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React."), Fi = { then: function() {
      console.error('Internal React error: A listener was unexpectedly attached to a "noop" thenable. This is a bug in React. Please file an issue.');
    } }, Mi = null, Wi = false, Hi = { "react-stack-bottom-frame": function(e4, n8, t5) {
      var r5 = ro;
      ro = true;
      try {
        return e4(n8, t5);
      } finally {
        ro = r5;
      }
    } }, ji = Hi["react-stack-bottom-frame"].bind(Hi), Ai = { "react-stack-bottom-frame": function(e4) {
      var n8 = ro;
      ro = true;
      try {
        return e4.render();
      } finally {
        ro = n8;
      }
    } }, Qi = Ai["react-stack-bottom-frame"].bind(Ai), Oi = { "react-stack-bottom-frame": function(e4, n8) {
      try {
        n8.componentDidMount();
      } catch (n9) {
        Xl(e4, e4.return, n9);
      }
    } }, Bi = Oi["react-stack-bottom-frame"].bind(Oi), Vi = { "react-stack-bottom-frame": function(e4, n8, t5, r5, l5) {
      try {
        n8.componentDidUpdate(t5, r5, l5);
      } catch (n9) {
        Xl(e4, e4.return, n9);
      }
    } }, $i = Vi["react-stack-bottom-frame"].bind(Vi), qi = { "react-stack-bottom-frame": function(e4, n8) {
      var t5 = n8.stack;
      e4.componentDidCatch(n8.value, { componentStack: null !== t5 ? t5 : "" });
    } }, Yi = qi["react-stack-bottom-frame"].bind(qi), Gi = { "react-stack-bottom-frame": function(e4, n8, t5) {
      try {
        t5.componentWillUnmount();
      } catch (t6) {
        Xl(e4, n8, t6);
      }
    } }, Ji = Gi["react-stack-bottom-frame"].bind(Gi), Ki = { "react-stack-bottom-frame": function(e4) {
      var n8 = e4.create;
      return e4 = e4.inst, n8 = n8(), e4.destroy = n8;
    } }, Xi = Ki["react-stack-bottom-frame"].bind(Ki), Zi = { "react-stack-bottom-frame": function(e4, n8, t5) {
      try {
        t5();
      } catch (t6) {
        Xl(e4, n8, t6);
      }
    } }, es = Zi["react-stack-bottom-frame"].bind(Zi), ns = { "react-stack-bottom-frame": function(e4) {
      return (0, e4._init)(e4._payload);
    } }, ts = ns["react-stack-bottom-frame"].bind(ns), rs = null, ls = 0, as = null, os2 = Ui = false, us = {}, is3 = {}, ss = {};
    a5 = function(e4, n8, t5) {
      if (null !== t5 && "object" == typeof t5 && t5._store && (!t5._store.validated && null == t5.key || 2 === t5._store.validated)) {
        if ("object" != typeof t5._store) throw Error("React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.");
        t5._store.validated = 1;
        var r5 = c6(e4), l5 = r5 || "null";
        if (!us[l5]) {
          us[l5] = true, t5 = t5._owner, e4 = e4._debugOwner;
          var a6 = "";
          e4 && "number" == typeof e4.tag && (l5 = c6(e4)) && (a6 = "\n\nCheck the render method of `" + l5 + "`."), a6 || r5 && (a6 = "\n\nCheck the top-level render call using <" + r5 + ">.");
          var o6 = "";
          null != t5 && e4 !== t5 && (r5 = null, "number" == typeof t5.tag ? r5 = c6(t5) : "string" == typeof t5.name && (r5 = t5.name), r5 && (o6 = " It was passed a child from " + r5 + ".")), y3(n8, (function() {
            console.error('Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.', a6, o6);
          }));
        }
      }
    };
    var cs, fs7 = We(true), ds = We(false), ps = b3(null), ms = b3(0), hs = b3(null), gs = null, ys = 1, bs = 2, vs = b3(0), Ss = 0, ks = 1, ws = 2, xs = 4, zs = 8, Cs = /* @__PURE__ */ new Set(), Es = /* @__PURE__ */ new Set(), Ps = /* @__PURE__ */ new Set(), _s = /* @__PURE__ */ new Set(), Rs = 0, Ts = null, Ns = null, Ls = null, Us = false, Ds = false, Is = false, Fs = 0, Ms = 0, Ws = null, Hs = 0, js = 25, As = null, Qs = null, Os = -1, Bs = false, Vs = function() {
      return { lastEffect: null, events: null, stores: null, memoCache: null };
    }, $s = { readContext: sr, use: cn, useCallback: Ke, useContext: Ke, useEffect: Ke, useImperativeHandle: Ke, useLayoutEffect: Ke, useInsertionEffect: Ke, useMemo: Ke, useReducer: Ke, useRef: Ke, useState: Ke, useDebugValue: Ke, useDeferredValue: Ke, useTransition: Ke, useSyncExternalStore: Ke, useId: Ke };
    $s.useCacheRefresh = Ke, $s.useMemoCache = Ke, $s.useHostTransitionStatus = Ke, $s.useFormState = Ke, $s.useActionState = Ke, $s.useOptimistic = Ke;
    var qs = null, Ys = null, Gs = null, Js = null, Ks = null, Xs = null, Zs = null;
    (qs = { readContext: function(e4) {
      return sr(e4);
    }, use: cn, useCallback: function(e4, n8) {
      return As = "useCallback", qe(), Ge(n8), Kn(e4, n8);
    }, useContext: function(e4) {
      return As = "useContext", qe(), sr(e4);
    }, useEffect: function(e4, n8) {
      return As = "useEffect", qe(), Ge(n8), $n(e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return As = "useImperativeHandle", qe(), Ge(t5), Gn(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      As = "useInsertionEffect", qe(), Ge(n8), Bn(4, ws, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return As = "useLayoutEffect", qe(), Ge(n8), qn(e4, n8);
    }, useMemo: function(e4, n8) {
      As = "useMemo", qe(), Ge(n8);
      var t5 = Ja.H;
      Ja.H = Ks;
      try {
        return Zn(e4, n8);
      } finally {
        Ja.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      As = "useReducer", qe();
      var r5 = Ja.H;
      Ja.H = Ks;
      try {
        return pn(e4, n8, t5);
      } finally {
        Ja.H = r5;
      }
    }, useRef: function(e4) {
      return As = "useRef", qe(), On(e4);
    }, useState: function(e4) {
      As = "useState", qe();
      var n8 = Ja.H;
      Ja.H = Ks;
      try {
        return Cn(e4);
      } finally {
        Ja.H = n8;
      }
    }, useDebugValue: function() {
      As = "useDebugValue", qe();
    }, useDeferredValue: function(e4, n8) {
      return As = "useDeferredValue", qe(), nt(e4, n8);
    }, useTransition: function() {
      return As = "useTransition", qe(), ut();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return As = "useSyncExternalStore", qe(), yn(e4, n8, t5);
    }, useId: function() {
      return As = "useId", qe(), ft();
    }, useCacheRefresh: function() {
      return As = "useCacheRefresh", qe(), dt();
    } }).useMemoCache = fn, qs.useHostTransitionStatus = ct, qs.useFormState = function(e4, n8) {
      return As = "useFormState", qe(), Je(), Mn(e4, n8);
    }, qs.useActionState = function(e4, n8) {
      return As = "useActionState", qe(), Mn(e4, n8);
    }, qs.useOptimistic = function(e4) {
      return As = "useOptimistic", qe(), En(e4);
    }, (Ys = { readContext: function(e4) {
      return sr(e4);
    }, use: cn, useCallback: function(e4, n8) {
      return As = "useCallback", Ye(), Kn(e4, n8);
    }, useContext: function(e4) {
      return As = "useContext", Ye(), sr(e4);
    }, useEffect: function(e4, n8) {
      return As = "useEffect", Ye(), $n(e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return As = "useImperativeHandle", Ye(), Gn(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      As = "useInsertionEffect", Ye(), Bn(4, ws, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return As = "useLayoutEffect", Ye(), qn(e4, n8);
    }, useMemo: function(e4, n8) {
      As = "useMemo", Ye();
      var t5 = Ja.H;
      Ja.H = Ks;
      try {
        return Zn(e4, n8);
      } finally {
        Ja.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      As = "useReducer", Ye();
      var r5 = Ja.H;
      Ja.H = Ks;
      try {
        return pn(e4, n8, t5);
      } finally {
        Ja.H = r5;
      }
    }, useRef: function(e4) {
      return As = "useRef", Ye(), On(e4);
    }, useState: function(e4) {
      As = "useState", Ye();
      var n8 = Ja.H;
      Ja.H = Ks;
      try {
        return Cn(e4);
      } finally {
        Ja.H = n8;
      }
    }, useDebugValue: function() {
      As = "useDebugValue", Ye();
    }, useDeferredValue: function(e4, n8) {
      return As = "useDeferredValue", Ye(), nt(e4, n8);
    }, useTransition: function() {
      return As = "useTransition", Ye(), ut();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return As = "useSyncExternalStore", Ye(), yn(e4, n8, t5);
    }, useId: function() {
      return As = "useId", Ye(), ft();
    }, useCacheRefresh: function() {
      return As = "useCacheRefresh", Ye(), dt();
    } }).useMemoCache = fn, Ys.useHostTransitionStatus = ct, Ys.useFormState = function(e4, n8) {
      return As = "useFormState", Ye(), Je(), Mn(e4, n8);
    }, Ys.useActionState = function(e4, n8) {
      return As = "useActionState", Ye(), Mn(e4, n8);
    }, Ys.useOptimistic = function(e4) {
      return As = "useOptimistic", Ye(), En(e4);
    }, (Gs = { readContext: function(e4) {
      return sr(e4);
    }, use: cn, useCallback: function(e4, n8) {
      return As = "useCallback", Ye(), Xn(e4, n8);
    }, useContext: function(e4) {
      return As = "useContext", Ye(), sr(e4);
    }, useEffect: function(e4, n8) {
      As = "useEffect", Ye(), Vn(2048, zs, e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return As = "useImperativeHandle", Ye(), Jn(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      return As = "useInsertionEffect", Ye(), Vn(4, ws, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return As = "useLayoutEffect", Ye(), Vn(4, xs, e4, n8);
    }, useMemo: function(e4, n8) {
      As = "useMemo", Ye();
      var t5 = Ja.H;
      Ja.H = Xs;
      try {
        return et2(e4, n8);
      } finally {
        Ja.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      As = "useReducer", Ye();
      var r5 = Ja.H;
      Ja.H = Xs;
      try {
        return mn(e4);
      } finally {
        Ja.H = r5;
      }
    }, useRef: function() {
      return As = "useRef", Ye(), un().memoizedState;
    }, useState: function() {
      As = "useState", Ye();
      var e4 = Ja.H;
      Ja.H = Xs;
      try {
        return mn(dn);
      } finally {
        Ja.H = e4;
      }
    }, useDebugValue: function() {
      As = "useDebugValue", Ye();
    }, useDeferredValue: function(e4, n8) {
      return As = "useDeferredValue", Ye(), tt(e4, n8);
    }, useTransition: function() {
      return As = "useTransition", Ye(), it();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return As = "useSyncExternalStore", Ye(), bn(e4, n8, t5);
    }, useId: function() {
      return As = "useId", Ye(), un().memoizedState;
    }, useCacheRefresh: function() {
      return As = "useCacheRefresh", Ye(), un().memoizedState;
    } }).useMemoCache = fn, Gs.useHostTransitionStatus = ct, Gs.useFormState = function(e4) {
      return As = "useFormState", Ye(), Je(), Wn(e4);
    }, Gs.useActionState = function(e4) {
      return As = "useActionState", Ye(), Wn(e4);
    }, Gs.useOptimistic = function(e4, n8) {
      return As = "useOptimistic", Ye(), Pn(e4, n8);
    }, (Js = { readContext: function(e4) {
      return sr(e4);
    }, use: cn, useCallback: function(e4, n8) {
      return As = "useCallback", Ye(), Xn(e4, n8);
    }, useContext: function(e4) {
      return As = "useContext", Ye(), sr(e4);
    }, useEffect: function(e4, n8) {
      As = "useEffect", Ye(), Vn(2048, zs, e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return As = "useImperativeHandle", Ye(), Jn(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      return As = "useInsertionEffect", Ye(), Vn(4, ws, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return As = "useLayoutEffect", Ye(), Vn(4, xs, e4, n8);
    }, useMemo: function(e4, n8) {
      As = "useMemo", Ye();
      var t5 = Ja.H;
      Ja.H = Zs;
      try {
        return et2(e4, n8);
      } finally {
        Ja.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      As = "useReducer", Ye();
      var r5 = Ja.H;
      Ja.H = Zs;
      try {
        return gn(e4);
      } finally {
        Ja.H = r5;
      }
    }, useRef: function() {
      return As = "useRef", Ye(), un().memoizedState;
    }, useState: function() {
      As = "useState", Ye();
      var e4 = Ja.H;
      Ja.H = Zs;
      try {
        return gn(dn);
      } finally {
        Ja.H = e4;
      }
    }, useDebugValue: function() {
      As = "useDebugValue", Ye();
    }, useDeferredValue: function(e4, n8) {
      return As = "useDeferredValue", Ye(), rt(e4, n8);
    }, useTransition: function() {
      return As = "useTransition", Ye(), st();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return As = "useSyncExternalStore", Ye(), bn(e4, n8, t5);
    }, useId: function() {
      return As = "useId", Ye(), un().memoizedState;
    }, useCacheRefresh: function() {
      return As = "useCacheRefresh", Ye(), un().memoizedState;
    } }).useMemoCache = fn, Js.useHostTransitionStatus = ct, Js.useFormState = function(e4) {
      return As = "useFormState", Ye(), Je(), An(e4);
    }, Js.useActionState = function(e4) {
      return As = "useActionState", Ye(), An(e4);
    }, Js.useOptimistic = function(e4, n8) {
      return As = "useOptimistic", Ye(), Rn(e4, n8);
    }, (Ks = { readContext: function(e4) {
      return l4(), sr(e4);
    }, use: function(e4) {
      return r4(), cn(e4);
    }, useCallback: function(e4, n8) {
      return As = "useCallback", r4(), qe(), Kn(e4, n8);
    }, useContext: function(e4) {
      return As = "useContext", r4(), qe(), sr(e4);
    }, useEffect: function(e4, n8) {
      return As = "useEffect", r4(), qe(), $n(e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return As = "useImperativeHandle", r4(), qe(), Gn(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      As = "useInsertionEffect", r4(), qe(), Bn(4, ws, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return As = "useLayoutEffect", r4(), qe(), qn(e4, n8);
    }, useMemo: function(e4, n8) {
      As = "useMemo", r4(), qe();
      var t5 = Ja.H;
      Ja.H = Ks;
      try {
        return Zn(e4, n8);
      } finally {
        Ja.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      As = "useReducer", r4(), qe();
      var l5 = Ja.H;
      Ja.H = Ks;
      try {
        return pn(e4, n8, t5);
      } finally {
        Ja.H = l5;
      }
    }, useRef: function(e4) {
      return As = "useRef", r4(), qe(), On(e4);
    }, useState: function(e4) {
      As = "useState", r4(), qe();
      var n8 = Ja.H;
      Ja.H = Ks;
      try {
        return Cn(e4);
      } finally {
        Ja.H = n8;
      }
    }, useDebugValue: function() {
      As = "useDebugValue", r4(), qe();
    }, useDeferredValue: function(e4, n8) {
      return As = "useDeferredValue", r4(), qe(), nt(e4, n8);
    }, useTransition: function() {
      return As = "useTransition", r4(), qe(), ut();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return As = "useSyncExternalStore", r4(), qe(), yn(e4, n8, t5);
    }, useId: function() {
      return As = "useId", r4(), qe(), ft();
    }, useCacheRefresh: function() {
      return As = "useCacheRefresh", qe(), dt();
    }, useMemoCache: function(e4) {
      return r4(), fn(e4);
    } }).useHostTransitionStatus = ct, Ks.useFormState = function(e4, n8) {
      return As = "useFormState", r4(), qe(), Mn(e4, n8);
    }, Ks.useActionState = function(e4, n8) {
      return As = "useActionState", r4(), qe(), Mn(e4, n8);
    }, Ks.useOptimistic = function(e4) {
      return As = "useOptimistic", r4(), qe(), En(e4);
    }, (Xs = { readContext: function(e4) {
      return l4(), sr(e4);
    }, use: function(e4) {
      return r4(), cn(e4);
    }, useCallback: function(e4, n8) {
      return As = "useCallback", r4(), Ye(), Xn(e4, n8);
    }, useContext: function(e4) {
      return As = "useContext", r4(), Ye(), sr(e4);
    }, useEffect: function(e4, n8) {
      As = "useEffect", r4(), Ye(), Vn(2048, zs, e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return As = "useImperativeHandle", r4(), Ye(), Jn(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      return As = "useInsertionEffect", r4(), Ye(), Vn(4, ws, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return As = "useLayoutEffect", r4(), Ye(), Vn(4, xs, e4, n8);
    }, useMemo: function(e4, n8) {
      As = "useMemo", r4(), Ye();
      var t5 = Ja.H;
      Ja.H = Xs;
      try {
        return et2(e4, n8);
      } finally {
        Ja.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      As = "useReducer", r4(), Ye();
      var l5 = Ja.H;
      Ja.H = Xs;
      try {
        return mn(e4);
      } finally {
        Ja.H = l5;
      }
    }, useRef: function() {
      return As = "useRef", r4(), Ye(), un().memoizedState;
    }, useState: function() {
      As = "useState", r4(), Ye();
      var e4 = Ja.H;
      Ja.H = Xs;
      try {
        return mn(dn);
      } finally {
        Ja.H = e4;
      }
    }, useDebugValue: function() {
      As = "useDebugValue", r4(), Ye();
    }, useDeferredValue: function(e4, n8) {
      return As = "useDeferredValue", r4(), Ye(), tt(e4, n8);
    }, useTransition: function() {
      return As = "useTransition", r4(), Ye(), it();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return As = "useSyncExternalStore", r4(), Ye(), bn(e4, n8, t5);
    }, useId: function() {
      return As = "useId", r4(), Ye(), un().memoizedState;
    }, useCacheRefresh: function() {
      return As = "useCacheRefresh", Ye(), un().memoizedState;
    }, useMemoCache: function(e4) {
      return r4(), fn(e4);
    } }).useHostTransitionStatus = ct, Xs.useFormState = function(e4) {
      return As = "useFormState", r4(), Ye(), Wn(e4);
    }, Xs.useActionState = function(e4) {
      return As = "useActionState", r4(), Ye(), Wn(e4);
    }, Xs.useOptimistic = function(e4, n8) {
      return As = "useOptimistic", r4(), Ye(), Pn(e4, n8);
    }, (Zs = { readContext: function(e4) {
      return l4(), sr(e4);
    }, use: function(e4) {
      return r4(), cn(e4);
    }, useCallback: function(e4, n8) {
      return As = "useCallback", r4(), Ye(), Xn(e4, n8);
    }, useContext: function(e4) {
      return As = "useContext", r4(), Ye(), sr(e4);
    }, useEffect: function(e4, n8) {
      As = "useEffect", r4(), Ye(), Vn(2048, zs, e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return As = "useImperativeHandle", r4(), Ye(), Jn(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      return As = "useInsertionEffect", r4(), Ye(), Vn(4, ws, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return As = "useLayoutEffect", r4(), Ye(), Vn(4, xs, e4, n8);
    }, useMemo: function(e4, n8) {
      As = "useMemo", r4(), Ye();
      var t5 = Ja.H;
      Ja.H = Xs;
      try {
        return et2(e4, n8);
      } finally {
        Ja.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      As = "useReducer", r4(), Ye();
      var l5 = Ja.H;
      Ja.H = Xs;
      try {
        return gn(e4);
      } finally {
        Ja.H = l5;
      }
    }, useRef: function() {
      return As = "useRef", r4(), Ye(), un().memoizedState;
    }, useState: function() {
      As = "useState", r4(), Ye();
      var e4 = Ja.H;
      Ja.H = Xs;
      try {
        return gn(dn);
      } finally {
        Ja.H = e4;
      }
    }, useDebugValue: function() {
      As = "useDebugValue", r4(), Ye();
    }, useDeferredValue: function(e4, n8) {
      return As = "useDeferredValue", r4(), Ye(), rt(e4, n8);
    }, useTransition: function() {
      return As = "useTransition", r4(), Ye(), st();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return As = "useSyncExternalStore", r4(), Ye(), bn(e4, n8, t5);
    }, useId: function() {
      return As = "useId", r4(), Ye(), un().memoizedState;
    }, useCacheRefresh: function() {
      return As = "useCacheRefresh", Ye(), un().memoizedState;
    }, useMemoCache: function(e4) {
      return r4(), fn(e4);
    } }).useHostTransitionStatus = ct, Zs.useFormState = function(e4) {
      return As = "useFormState", r4(), Ye(), An(e4);
    }, Zs.useActionState = function(e4) {
      return As = "useActionState", r4(), Ye(), An(e4);
    }, Zs.useOptimistic = function(e4, n8) {
      return As = "useOptimistic", r4(), Ye(), Rn(e4, n8);
    };
    var ec2 = {}, nc = /* @__PURE__ */ new Set(), tc = /* @__PURE__ */ new Set(), rc = /* @__PURE__ */ new Set(), lc = /* @__PURE__ */ new Set(), ac = /* @__PURE__ */ new Set(), oc = /* @__PURE__ */ new Set(), uc = /* @__PURE__ */ new Set(), ic = /* @__PURE__ */ new Set(), sc = /* @__PURE__ */ new Set(), cc = /* @__PURE__ */ new Set();
    Object.freeze(ec2);
    var fc = { isMounted: function(e4) {
      var n8 = to;
      if (null !== n8 && ro && 1 === n8.tag) {
        var t5 = n8.stateNode;
        t5._warnedAboutRefsInRender || console.error("%s is accessing isMounted inside its render() function. render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.", c6(n8) || "A component"), t5._warnedAboutRefsInRender = true;
      }
      return !!(e4 = e4._reactInternals) && (function(e5) {
        var n9 = e5, t6 = e5;
        if (e5.alternate) for (; n9.return; ) n9 = n9.return;
        else {
          e5 = n9;
          do {
            0 != (4098 & (n9 = e5).flags) && (t6 = n9.return), e5 = n9.return;
          } while (e5);
        }
        return 3 === n9.tag ? t6 : null;
      })(e4) === e4;
    }, enqueueSetState: function(e4, n8, t5) {
      var r5 = xl(e4 = e4._reactInternals), l5 = ge(r5);
      l5.payload = n8, null != t5 && (kt(t5), l5.callback = t5), null !== (n8 = ye(e4, l5, r5)) && (Cl(n8, e4, r5), be(n8, e4, r5));
    }, enqueueReplaceState: function(e4, n8, t5) {
      var r5 = xl(e4 = e4._reactInternals), l5 = ge(r5);
      l5.tag = hi, l5.payload = n8, null != t5 && (kt(t5), l5.callback = t5), null !== (n8 = ye(e4, l5, r5)) && (Cl(n8, e4, r5), be(n8, e4, r5));
    }, enqueueForceUpdate: function(e4, n8) {
      var t5 = xl(e4 = e4._reactInternals), r5 = ge(t5);
      r5.tag = gi, null != n8 && (kt(n8), r5.callback = n8), null !== (n8 = ye(e4, r5, t5)) && (Cl(n8, e4, t5), be(n8, e4, t5));
    } };
    "function" == typeof reportError && reportError;
    var dc = Error("This is not a real error. It's an implementation detail of React's selective hydration feature. If this leaks into userspace, it's a bug in React. Please file an issue."), pc = false, mc = {}, hc = {}, gc = {}, yc = {}, bc = false, vc = {}, Sc = {}, kc = { dehydrated: null, treeContext: null, retryLane: 0 }, wc = false, xc = b3(null), zc = b3(null), Cc = {}, Ec = null, Pc = null, _c = null, Rc = false, Tc = "undefined" != typeof AbortController ? AbortController : function() {
      var e4 = [], n8 = this.signal = { aborted: false, addEventListener: function(n9, t5) {
        e4.push(t5);
      } };
      this.abort = function() {
        n8.aborted = true, e4.forEach((function(e5) {
          return e5();
        }));
      };
    }, Nc = Ta.unstable_scheduleCallback, Lc = Ta.unstable_NormalPriority, Uc = { $$typeof: ja, Consumer: null, Provider: null, _currentValue: null, _currentValue2: null, _threadCount: 0, _currentRenderer: null, _currentRenderer2: null }, Dc = Ja.S;
    Ja.S = function(e4, n8) {
      "object" == typeof n8 && null !== n8 && "function" == typeof n8.then && (function(e5, n9) {
        if (null === ci) {
          var t5 = ci = [];
          fi = 0, di = de(), pi = { status: "pending", value: void 0, then: function(e6) {
            t5.push(e6);
          } };
        }
        fi++, n9.then(pe, pe);
      })(0, n8), null !== Dc && Dc(e4, n8);
    };
    var Ic = b3(null), Fc = null;
    Fc = /* @__PURE__ */ new Set();
    var Mc = false, Wc = false, Hc = false, jc = "function" == typeof WeakSet ? WeakSet : Set, Ac = null, Qc = null, Oc = null, Bc = false, Vc = null, $c = false, qc = null, Yc = 8192, Gc = { getCacheForType: function(e4) {
      var n8 = sr(Uc), t5 = n8.data.get(e4);
      return void 0 === t5 && (t5 = e4(), n8.data.set(e4, t5)), t5;
    }, getOwner: function() {
      return to;
    } };
    if ("function" == typeof Symbol && Symbol.for) {
      var Jc = Symbol.for;
      Jc("selector.component"), Jc("selector.has_pseudo_class"), Jc("selector.role"), Jc("selector.test_id"), Jc("selector.text");
    }
    var Kc = "function" == typeof WeakMap ? WeakMap : Map, Xc = 0, Zc = 2, ef = 4, nf = 0, tf = 1, rf = 2, lf = 3, af = 4, of = 5, uf = 6, sf = Xc, cf = null, ff = null, df = 0, pf = 0, mf = 1, hf = 2, gf = 3, yf = 4, bf = 5, vf = 6, Sf = 7, kf = 8, wf = pf, xf = null, zf = false, Cf = false, Ef = 0, Pf = nf, _f = 0, Rf = 0, Tf = 0, Nf = 0, Lf = 0, Uf = null, Df = null, If = false, Ff = 0, Mf = 300, Wf = 1 / 0, Hf = 500, jf = null, Af = null, Qf = false, Of = null, Bf = 0, Vf = 0, $f = null, qf = 50, Yf = 0, Gf = null, Jf = false, Kf = false, Xf = 50, Zf = 0, ed = null, nd = false, td2 = 0, rd = 1, ld = 2, ad = null, od = false, ud = /* @__PURE__ */ new Set(), id = false;
    try {
      var sd = Object.preventExtensions({});
      /* @__PURE__ */ new Map([[sd, null]]), /* @__PURE__ */ new Set([sd]);
    } catch (e4) {
      id = true;
    }
    var cd = false;
    return _a2.createContainer = function(e4, n8, r5, l5, a6, o6, u5, i6, s5, c7) {
      return (function(e5, n9, r6, l6, a7, o7, u6, i7, s6, c8, f5, d4) {
        return e5 = new va(e5, n9, r6, u6, i7, s6, c8, null), n9 = 1, true === o7 && (n9 |= 24), _u && (n9 |= 2), o7 = t4(3, null, null, n9), e5.current = o7, o7.stateNode = e5, pr(n9 = dr()), e5.pooledCache = n9, pr(n9), o7.memoizedState = { element: l6, isDehydrated: r6, cache: n9 }, me(o7), e5;
      })(e4, n8, false, null, 0, l5, o6, u5, i6, s5);
    }, _a2.flushSyncWork = function() {
      return (sf & (Zc | ef)) !== Xc || (ae(0), false);
    }, _a2.updateContainer = function(e4, n8, t5, r5) {
      var l5 = n8.current, a6 = xl(l5);
      return Sa(l5, a6, e4, n8, t5, r5), a6;
    }, _a2.updateContainerSync = function(e4, n8, t5, r5) {
      return 0 === n8.tag && Jl(), Sa(n8.current, 2, e4, n8, t5, r5), 2;
    }, _a2;
  }, n6.exports.default = n6.exports, Object.defineProperty(n6.exports, "__esModule", { value: true }))), c3.exports;
  var n6;
})();
var f;
var d = t(a2.exports);
var p = { exports: {} };
var m = {};
var h2;
var g = {};
"production" === process.env.NODE_ENV ? p.exports = (f || (f = 1, m.ConcurrentRoot = 1, m.ContinuousEventPriority = 8, m.DefaultEventPriority = 32, m.DiscreteEventPriority = 2, m.IdleEventPriority = 268435456, m.LegacyRoot = 0, m.NoEventPriority = 0), m) : p.exports = (h2 || (h2 = 1, "production" !== process.env.NODE_ENV && (g.ConcurrentRoot = 1, g.ContinuousEventPriority = 8, g.DefaultEventPriority = 32, g.DiscreteEventPriority = 2, g.IdleEventPriority = 268435456, g.LegacyRoot = 0, g.NoEventPriority = 0)), g);
var y = p.exports;
var b = (e4, n6) => {
  const t4 = Object.keys(e4), r4 = Object.keys(n6);
  if (t4.length !== r4.length) return false;
  for (let r5 = 0; r5 < t4.length; r5 += 1) {
    const l4 = t4[r5];
    if ("render" === l4 && !e4[l4] != !n6[l4]) return false;
    if ("children" !== l4 && e4[l4] !== n6[l4]) {
      if ("object" == typeof e4[l4] && "object" == typeof n6[l4] && b(e4[l4], n6[l4])) continue;
      return false;
    }
    if ("children" === l4 && ("string" == typeof e4[l4] || "string" == typeof n6[l4])) return e4[l4] === n6[l4];
  }
  return true;
};
var v = {};
var S = console.error;
var k = ({ appendChild: e4, appendChildToContainer: n6, commitTextUpdate: t4, commitUpdate: r4, createInstance: l4, createTextInstance: a5, insertBefore: o5, removeChild: u5, removeChildFromContainer: i5, resetAfterCommit: s4 }) => {
  const c6 = d({ appendChild: e4, appendChildToContainer: n6, appendInitialChild: e4, createInstance: l4, createTextInstance: a5, insertBefore: o5, commitUpdate: (e5, n7, t5, l5) => {
    b(t5, l5) || r4(e5, null, n7, t5, l5);
  }, commitTextUpdate: t4, removeChild: u5, removeChildFromContainer: i5, resetAfterCommit: s4, noTimeout: -1, shouldSetTextContent: () => false, finalizeInitialChildren: () => false, getPublicInstance: (e5) => e5, getRootHostContext: () => v, getChildHostContext: () => v, prepareForCommit() {
  }, clearContainer() {
  }, resetTextContent() {
  }, getCurrentUpdatePriority: () => y.DefaultEventPriority, maySuspendCommit: () => false, requestPostPaintCallback: () => {
  }, resolveUpdatePriority: () => y.DefaultEventPriority, setCurrentUpdatePriority: () => {
  }, shouldAttemptEagerTransition: () => false, detachDeletedInstance: () => {
  } });
  return { createContainer: (e5) => c6.createContainer(e5, y.ConcurrentRoot, null, false, null, "", S, S, S, null), updateContainer: (e5, n7, t5, r5) => {
    c6.updateContainerSync(e5, n7, t5, r5), c6.flushSyncWork();
  } };
};

// ../../node_modules/.pnpm/@react-pdf+reconciler@2.0.0_react@19.2.4/node_modules/@react-pdf/reconciler/lib/reconciler-33.js
var import_react2 = __toESM(require_react(), 1);
var n3 = __toESM(require_scheduler(), 1);
function t2(e4) {
  return e4 && e4.__esModule && Object.prototype.hasOwnProperty.call(e4, "default") ? e4.default : e4;
}
function r2(e4) {
  if (e4.__esModule) return e4;
  var n6 = e4.default;
  if ("function" == typeof n6) {
    var t4 = function e5() {
      return this instanceof e5 ? Reflect.construct(n6, arguments, this.constructor) : n6.apply(this, arguments);
    };
    t4.prototype = n6.prototype;
  } else t4 = {};
  return Object.defineProperty(t4, "__esModule", { value: true }), Object.keys(e4).forEach((function(n7) {
    var r4 = Object.getOwnPropertyDescriptor(e4, n7);
    Object.defineProperty(t4, n7, r4.get ? r4 : { enumerable: true, get: function() {
      return e4[n7];
    } });
  })), t4;
}
var l2;
var a3 = { exports: {} };
var o3 = { exports: {} };
var u3 = r2(n3);
var i3;
var s2;
var c4 = { exports: {} };
"production" === process.env.NODE_ENV ? a3.exports = (l2 || (l2 = 1, (s2 = o3).exports = function(n6) {
  function t4(e4, n7, t5, r5) {
    return new tl(e4, n7, t5, r5);
  }
  function r4(e4) {
    var n7 = "https://react.dev/errors/" + e4;
    if (1 < arguments.length) {
      n7 += "?args[]=" + encodeURIComponent(arguments[1]);
      for (var t5 = 2; t5 < arguments.length; t5++) n7 += "&args[]=" + encodeURIComponent(arguments[t5]);
    }
    return "Minified React error #" + e4 + "; visit " + n7 + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
  }
  function l4(e4) {
    return null === e4 || "object" != typeof e4 ? null : "function" == typeof (e4 = Nl && e4[Nl] || e4["@@iterator"]) ? e4 : null;
  }
  function a5(e4) {
    if (null == e4) return null;
    if ("function" == typeof e4) return e4.$$typeof === Ll ? null : e4.displayName || e4.name || null;
    if ("string" == typeof e4) return e4;
    switch (e4) {
      case vl:
        return "Fragment";
      case kl:
        return "Profiler";
      case Sl:
        return "StrictMode";
      case El:
        return "Suspense";
      case Cl:
        return "SuspenseList";
      case Tl:
        return "Activity";
    }
    if ("object" == typeof e4) switch (e4.$$typeof) {
      case bl:
        return "Portal";
      case zl:
        return e4.displayName || "Context";
      case wl:
        return (e4._context.displayName || "Context") + ".Consumer";
      case xl:
        var n7 = e4.render;
        return (e4 = e4.displayName) || (e4 = "" !== (e4 = n7.displayName || n7.name || "") ? "ForwardRef(" + e4 + ")" : "ForwardRef"), e4;
      case Pl:
        return null !== (n7 = e4.displayName || null) ? n7 : a5(e4.type) || "Memo";
      case _l:
        n7 = e4._payload, e4 = e4._init;
        try {
          return a5(e4(n7));
        } catch (e5) {
        }
    }
    return null;
  }
  function o5(e4) {
    return { current: e4 };
  }
  function i5(e4) {
    0 > Ma || (e4.current = Oa[Ma], Oa[Ma] = null, Ma--);
  }
  function s4(e4, n7) {
    Ma++, Oa[Ma] = e4.current, e4.current = n7;
  }
  function c6(e4) {
    var n7 = 42 & e4;
    if (0 !== n7) return n7;
    switch (e4 & -e4) {
      case 1:
        return 1;
      case 2:
        return 2;
      case 4:
        return 4;
      case 8:
        return 8;
      case 16:
        return 16;
      case 32:
        return 32;
      case 64:
        return 64;
      case 128:
        return 128;
      case 256:
      case 512:
      case 1024:
      case 2048:
      case 4096:
      case 8192:
      case 16384:
      case 32768:
      case 65536:
      case 131072:
        return 261888 & e4;
      case 262144:
      case 524288:
      case 1048576:
      case 2097152:
        return 3932160 & e4;
      case 4194304:
      case 8388608:
      case 16777216:
      case 33554432:
        return 62914560 & e4;
      case 67108864:
        return 67108864;
      case 134217728:
        return 134217728;
      case 268435456:
        return 268435456;
      case 536870912:
        return 536870912;
      case 1073741824:
        return 0;
      default:
        return e4;
    }
  }
  function d3(e4, n7, t5) {
    var r5 = e4.pendingLanes;
    if (0 === r5) return 0;
    var l5 = 0, a6 = e4.suspendedLanes, o6 = e4.pingedLanes;
    e4 = e4.warmLanes;
    var u5 = 134217727 & r5;
    return 0 !== u5 ? 0 != (r5 = u5 & ~a6) ? l5 = c6(r5) : 0 != (o6 &= u5) ? l5 = c6(o6) : t5 || 0 != (t5 = u5 & ~e4) && (l5 = c6(t5)) : 0 != (u5 = r5 & ~a6) ? l5 = c6(u5) : 0 !== o6 ? l5 = c6(o6) : t5 || 0 != (t5 = r5 & ~e4) && (l5 = c6(t5)), 0 === l5 ? 0 : 0 !== n7 && n7 !== l5 && 0 == (n7 & a6) && ((a6 = l5 & -l5) >= (t5 = n7 & -n7) || 32 === a6 && 0 != (4194048 & t5)) ? n7 : l5;
  }
  function f4(e4, n7) {
    return 0 == (e4.pendingLanes & ~(e4.suspendedLanes & ~e4.pingedLanes) & n7);
  }
  function p3(e4, n7) {
    switch (e4) {
      case 1:
      case 2:
      case 4:
      case 8:
      case 64:
        return n7 + 250;
      case 16:
      case 32:
      case 128:
      case 256:
      case 512:
      case 1024:
      case 2048:
      case 4096:
      case 8192:
      case 16384:
      case 32768:
      case 65536:
      case 131072:
      case 262144:
      case 524288:
      case 1048576:
      case 2097152:
        return n7 + 5e3;
      default:
        return -1;
    }
  }
  function m3() {
    var e4 = Ya;
    return 0 == (62914560 & (Ya <<= 1)) && (Ya = 4194304), e4;
  }
  function h4(e4) {
    for (var n7 = [], t5 = 0; 31 > t5; t5++) n7.push(e4);
    return n7;
  }
  function g3(e4, n7) {
    e4.pendingLanes |= n7, 268435456 !== n7 && (e4.suspendedLanes = 0, e4.pingedLanes = 0, e4.warmLanes = 0);
  }
  function y3(e4, n7, t5) {
    e4.pendingLanes |= n7, e4.suspendedLanes &= ~n7;
    var r5 = 31 - Qa(n7);
    e4.entangledLanes |= n7, e4.entanglements[r5] = 1073741824 | e4.entanglements[r5] | 261930 & t5;
  }
  function b3(e4, n7) {
    var t5 = e4.entangledLanes |= n7;
    for (e4 = e4.entanglements; t5; ) {
      var r5 = 31 - Qa(t5), l5 = 1 << r5;
      l5 & n7 | e4[r5] & n7 && (e4[r5] |= n7), t5 &= ~l5;
    }
  }
  function v3(e4, n7) {
    var t5 = n7 & -n7;
    return 0 != ((t5 = 0 != (42 & t5) ? 1 : (function(e5) {
      switch (e5) {
        case 2:
          e5 = 1;
          break;
        case 8:
          e5 = 4;
          break;
        case 32:
          e5 = 16;
          break;
        case 256:
        case 512:
        case 1024:
        case 2048:
        case 4096:
        case 8192:
        case 16384:
        case 32768:
        case 65536:
        case 131072:
        case 262144:
        case 524288:
        case 1048576:
        case 2097152:
        case 4194304:
        case 8388608:
        case 16777216:
        case 33554432:
          e5 = 128;
          break;
        case 268435456:
          e5 = 134217728;
          break;
        default:
          e5 = 0;
      }
      return e5;
    })(t5)) & (e4.suspendedLanes | n7)) ? 0 : t5;
  }
  function S3(e4) {
    return 2 < (e4 &= -e4) ? 8 < e4 ? 0 != (134217727 & e4) ? 32 : 268435456 : 8 : 2;
  }
  function k3(e4) {
    "function" == typeof lo && ao(e4);
  }
  function w(e4) {
    if (void 0 === io) try {
      throw Error();
    } catch (e5) {
      var n7 = e5.stack.trim().match(/\n( *(at )?)/);
      io = n7 && n7[1] || "", so = -1 < e5.stack.indexOf("\n    at") ? " (<anonymous>)" : -1 < e5.stack.indexOf("@") ? "@unknown:0:0" : "";
    }
    return "\n" + io + e4 + so;
  }
  function z(e4, n7) {
    if (!e4 || fo) return "";
    fo = true;
    var t5 = Error.prepareStackTrace;
    Error.prepareStackTrace = void 0;
    try {
      var r5 = { DetermineComponentFrameRoot: function() {
        try {
          if (n7) {
            var t6 = function() {
              throw Error();
            };
            if (Object.defineProperty(t6.prototype, "props", { set: function() {
              throw Error();
            } }), "object" == typeof Reflect && Reflect.construct) {
              try {
                Reflect.construct(t6, []);
              } catch (e5) {
                var r6 = e5;
              }
              Reflect.construct(e4, [], t6);
            } else {
              try {
                t6.call();
              } catch (e5) {
                r6 = e5;
              }
              e4.call(t6.prototype);
            }
          } else {
            try {
              throw Error();
            } catch (e5) {
              r6 = e5;
            }
            (t6 = e4()) && "function" == typeof t6.catch && t6.catch((function() {
            }));
          }
        } catch (e5) {
          if (e5 && r6 && "string" == typeof e5.stack) return [e5.stack, r6.stack];
        }
        return [null, null];
      } };
      r5.DetermineComponentFrameRoot.displayName = "DetermineComponentFrameRoot";
      var l5 = Object.getOwnPropertyDescriptor(r5.DetermineComponentFrameRoot, "name");
      l5 && l5.configurable && Object.defineProperty(r5.DetermineComponentFrameRoot, "name", { value: "DetermineComponentFrameRoot" });
      var a6 = r5.DetermineComponentFrameRoot(), o6 = a6[0], u5 = a6[1];
      if (o6 && u5) {
        var i6 = o6.split("\n"), s5 = u5.split("\n");
        for (l5 = r5 = 0; r5 < i6.length && !i6[r5].includes("DetermineComponentFrameRoot"); ) r5++;
        for (; l5 < s5.length && !s5[l5].includes("DetermineComponentFrameRoot"); ) l5++;
        if (r5 === i6.length || l5 === s5.length) for (r5 = i6.length - 1, l5 = s5.length - 1; 1 <= r5 && 0 <= l5 && i6[r5] !== s5[l5]; ) l5--;
        for (; 1 <= r5 && 0 <= l5; r5--, l5--) if (i6[r5] !== s5[l5]) {
          if (1 !== r5 || 1 !== l5) do {
            if (r5--, 0 > --l5 || i6[r5] !== s5[l5]) {
              var c7 = "\n" + i6[r5].replace(" at new ", " at ");
              return e4.displayName && c7.includes("<anonymous>") && (c7 = c7.replace("<anonymous>", e4.displayName)), c7;
            }
          } while (1 <= r5 && 0 <= l5);
          break;
        }
      }
    } finally {
      fo = false, Error.prepareStackTrace = t5;
    }
    return (t5 = e4 ? e4.displayName || e4.name : "") ? w(t5) : "";
  }
  function x(e4, n7) {
    switch (e4.tag) {
      case 26:
      case 27:
      case 5:
        return w(e4.type);
      case 16:
        return w("Lazy");
      case 13:
        return e4.child !== n7 && null !== n7 ? w("Suspense Fallback") : w("Suspense");
      case 19:
        return w("SuspenseList");
      case 0:
      case 15:
        return z(e4.type, false);
      case 11:
        return z(e4.type.render, false);
      case 1:
        return z(e4.type, true);
      case 31:
        return w("Activity");
      default:
        return "";
    }
  }
  function E(e4) {
    try {
      var n7 = "", t5 = null;
      do {
        n7 += x(e4, t5), t5 = e4, e4 = e4.return;
      } while (e4);
      return n7;
    } catch (e5) {
      return "\nError generating stack: " + e5.message + "\n" + e5.stack;
    }
  }
  function C(e4, n7) {
    if ("object" == typeof e4 && null !== e4) {
      var t5 = po.get(e4);
      return void 0 !== t5 ? t5 : (n7 = { value: e4, source: n7, stack: E(n7) }, po.set(e4, n7), n7);
    }
    return { value: e4, source: n7, stack: E(n7) };
  }
  function P(e4) {
    for (; e4 === go; ) go = mo[--ho], mo[ho] = null, mo[--ho], mo[ho] = null;
    for (; e4 === vo; ) vo = yo[--bo], yo[bo] = null, yo[--bo], yo[bo] = null, yo[--bo], yo[bo] = null;
  }
  function _(e4, n7) {
    s4(wo, n7), s4(ko, e4), s4(So, null), e4 = Fl(n7), i5(So), s4(So, e4);
  }
  function T() {
    i5(So), i5(ko), i5(wo);
  }
  function R(e4) {
    null !== e4.memoizedState && s4(zo, e4);
    var n7 = So.current, t5 = jl(n7, e4.type);
    n7 !== t5 && (s4(ko, e4), s4(So, t5));
  }
  function N(e4) {
    ko.current === e4 && (i5(So), i5(ko)), zo.current === e4 && (i5(zo), ca._currentValue2 = sa);
  }
  function L() {
    var e4 = Eo;
    return null !== e4 && (null === li ? li = e4 : li.push.apply(li, e4), Eo = null), e4;
  }
  function U(e4, n7, t5) {
    s4(Co, n7._currentValue2), n7._currentValue2 = t5;
  }
  function D(e4) {
    var n7 = Co.current;
    e4._currentValue2 = n7, i5(Co);
  }
  function I(e4, n7, t5) {
    for (; null !== e4; ) {
      var r5 = e4.alternate;
      if ((e4.childLanes & n7) !== n7 ? (e4.childLanes |= n7, null !== r5 && (r5.childLanes |= n7)) : null !== r5 && (r5.childLanes & n7) !== n7 && (r5.childLanes |= n7), e4 === t5) break;
      e4 = e4.return;
    }
  }
  function F(e4, n7, t5, l5) {
    var a6 = e4.child;
    for (null !== a6 && (a6.return = e4); null !== a6; ) {
      var o6 = a6.dependencies;
      if (null !== o6) {
        var u5 = a6.child;
        o6 = o6.firstContext;
        e: for (; null !== o6; ) {
          var i6 = o6;
          o6 = a6;
          for (var s5 = 0; s5 < n7.length; s5++) if (i6.context === n7[s5]) {
            o6.lanes |= t5, null !== (i6 = o6.alternate) && (i6.lanes |= t5), I(o6.return, t5, e4), l5 || (u5 = null);
            break e;
          }
          o6 = i6.next;
        }
      } else if (18 === a6.tag) {
        if (null === (u5 = a6.return)) throw Error(r4(341));
        u5.lanes |= t5, null !== (o6 = u5.alternate) && (o6.lanes |= t5), I(u5, t5, e4), u5 = null;
      } else u5 = a6.child;
      if (null !== u5) u5.return = a6;
      else for (u5 = a6; null !== u5; ) {
        if (u5 === e4) {
          u5 = null;
          break;
        }
        if (null !== (a6 = u5.sibling)) {
          a6.return = u5.return, u5 = a6;
          break;
        }
        u5 = u5.return;
      }
      a6 = u5;
    }
  }
  function j(e4, n7, t5, l5) {
    e4 = null;
    for (var a6 = n7, o6 = false; null !== a6; ) {
      if (!o6) {
        if (0 != (524288 & a6.flags)) o6 = true;
        else if (0 != (262144 & a6.flags)) break;
      }
      if (10 === a6.tag) {
        var u5 = a6.alternate;
        if (null === u5) throw Error(r4(387));
        if (null !== (u5 = u5.memoizedProps)) {
          var i6 = a6.type;
          uo(a6.pendingProps.value, u5.value) || (null !== e4 ? e4.push(i6) : e4 = [i6]);
        }
      } else if (a6 === zo.current) {
        if (null === (u5 = a6.alternate)) throw Error(r4(387));
        u5.memoizedState.memoizedState !== a6.memoizedState.memoizedState && (null !== e4 ? e4.push(ca) : e4 = [ca]);
      }
      a6 = a6.return;
    }
    null !== e4 && F(n7, e4, t5, l5), n7.flags |= 262144;
  }
  function A(e4) {
    for (e4 = e4.firstContext; null !== e4; ) {
      var n7 = e4.context;
      if (!uo(n7._currentValue2, e4.memoizedValue)) return true;
      e4 = e4.next;
    }
    return false;
  }
  function H(e4) {
    Po = e4, _o = null, null !== (e4 = e4.dependencies) && (e4.firstContext = null);
  }
  function O(e4) {
    return W(Po, e4);
  }
  function M(e4, n7) {
    return null === Po && H(e4), W(e4, n7);
  }
  function W(e4, n7) {
    var t5 = n7._currentValue2;
    if (n7 = { context: n7, memoizedValue: t5, next: null }, null === _o) {
      if (null === e4) throw Error(r4(308));
      _o = n7, e4.dependencies = { lanes: 0, firstContext: n7 }, e4.flags |= 524288;
    } else _o = _o.next = n7;
    return t5;
  }
  function Q() {
    return { controller: new To(), data: /* @__PURE__ */ new Map(), refCount: 0 };
  }
  function B(e4) {
    e4.refCount--, 0 === e4.refCount && Ro(No, (function() {
      e4.controller.abort();
    }));
  }
  function $() {
  }
  function V(e4) {
    e4 !== Do && null === e4.next && (null === Do ? Uo = Do = e4 : Do = Do.next = e4), Fo = true, Io || (Io = true, Ga(eo, Y));
  }
  function q(e4, n7) {
    if (!jo && Fo) {
      jo = true;
      do {
        for (var t5 = false, r5 = Uo; null !== r5; ) {
          if (0 !== e4) {
            var l5 = r5.pendingLanes;
            if (0 === l5) var a6 = 0;
            else {
              var o6 = r5.suspendedLanes, u5 = r5.pingedLanes;
              a6 = (1 << 31 - Qa(42 | e4) + 1) - 1, a6 = 201326741 & (a6 &= l5 & ~(o6 & ~u5)) ? 201326741 & a6 | 1 : a6 ? 2 | a6 : 0;
            }
            0 !== a6 && (t5 = true, K(r5, a6));
          } else a6 = Bu, 0 == (3 & (a6 = d3(r5, r5 === Wu ? a6 : 0, null !== r5.cancelPendingCommit || r5.timeoutHandle !== ql))) || f4(r5, a6) || (t5 = true, K(r5, a6));
          r5 = r5.next;
        }
      } while (t5);
      jo = false;
    }
  }
  function Y() {
    !(function() {
      Fo = Io = false;
      var e4 = 0;
      0 !== Ao && ea() && (e4 = Ao);
      for (var n7 = Za(), t5 = null, r5 = Uo; null !== r5; ) {
        var l5 = r5.next, a6 = G2(r5, n7);
        0 === a6 ? (r5.next = null, null === t5 ? Uo = l5 : t5.next = l5, null === l5 && (Do = t5)) : (t5 = r5, (0 !== e4 || 0 != (3 & a6)) && (Fo = true)), r5 = l5;
      }
      0 !== di && 5 !== di || q(e4), 0 !== Ao && (Ao = 0);
    })();
  }
  function G2(e4, n7) {
    for (var t5 = e4.suspendedLanes, r5 = e4.pingedLanes, l5 = e4.expirationTimes, a6 = -62914561 & e4.pendingLanes; 0 < a6; ) {
      var o6 = 31 - Qa(a6), u5 = 1 << o6, i6 = l5[o6];
      -1 === i6 ? 0 != (u5 & t5) && 0 == (u5 & r5) || (l5[o6] = p3(u5, n7)) : i6 <= n7 && (e4.expiredLanes |= u5), a6 &= ~u5;
    }
    if (t5 = Bu, t5 = d3(e4, e4 === (n7 = Wu) ? t5 : 0, null !== e4.cancelPendingCommit || e4.timeoutHandle !== ql), r5 = e4.callbackNode, 0 === t5 || e4 === n7 && (2 === $u || 9 === $u) || null !== e4.cancelPendingCommit) return null !== r5 && null !== r5 && Ja(r5), e4.callbackNode = null, e4.callbackPriority = 0;
    if (0 == (3 & t5) || f4(e4, t5)) {
      if ((n7 = t5 & -t5) === e4.callbackPriority) return n7;
      switch (null !== r5 && Ja(r5), S3(t5)) {
        case 2:
        case 8:
          t5 = no;
          break;
        case 32:
        default:
          t5 = to;
          break;
        case 268435456:
          t5 = ro;
      }
      return r5 = J.bind(null, e4), t5 = Ga(t5, r5), e4.callbackPriority = n7, e4.callbackNode = t5, n7;
    }
    return null !== r5 && null !== r5 && Ja(r5), e4.callbackPriority = 2, e4.callbackNode = null, 2;
  }
  function J(e4, n7) {
    if (0 !== di && 5 !== di) return e4.callbackNode = null, e4.callbackPriority = 0, null;
    var t5 = e4.callbackNode;
    if (qr() && e4.callbackNode !== t5) return null;
    var r5 = Bu;
    return 0 === (r5 = d3(e4, e4 === Wu ? r5 : 0, null !== e4.cancelPendingCommit || e4.timeoutHandle !== ql)) ? null : (xr(e4, r5, n7), G2(e4, Za()), null != e4.callbackNode && e4.callbackNode === t5 ? J.bind(null, e4) : null);
  }
  function K(e4, n7) {
    if (qr()) return null;
    xr(e4, n7, true);
  }
  function X() {
    if (0 === Ao) {
      var e4 = Mo;
      0 === e4 && (e4 = Va, 0 == (261888 & (Va <<= 1)) && (Va = 256)), Ao = e4;
    }
    return Ao;
  }
  function Z() {
    if (0 == --Oo && null !== Ho) {
      null !== Wo && (Wo.status = "fulfilled");
      var e4 = Ho;
      Ho = null, Mo = 0, Wo = null;
      for (var n7 = 0; n7 < e4.length; n7++) (0, e4[n7])();
    }
  }
  function ee() {
    var e4 = Bo.current;
    return null !== e4 ? e4 : Wu.pooledCache;
  }
  function ne(e4, n7) {
    s4(Bo, null === n7 ? Bo.current : n7.pool);
  }
  function te() {
    var e4 = ee();
    return null === e4 ? null : { parent: Lo._currentValue2, pool: e4 };
  }
  function re(e4, n7) {
    if (uo(e4, n7)) return true;
    if ("object" != typeof e4 || null === e4 || "object" != typeof n7 || null === n7) return false;
    var t5 = Object.keys(e4), r5 = Object.keys(n7);
    if (t5.length !== r5.length) return false;
    for (r5 = 0; r5 < t5.length; r5++) {
      var l5 = t5[r5];
      if (!co.call(n7, l5) || !uo(e4[l5], n7[l5])) return false;
    }
    return true;
  }
  function le(e4) {
    return "fulfilled" === (e4 = e4.status) || "rejected" === e4;
  }
  function ae(e4, n7, t5) {
    switch (void 0 === (t5 = e4[t5]) ? e4.push(n7) : t5 !== n7 && (n7.then($, $), n7 = t5), n7.status) {
      case "fulfilled":
        return n7.value;
      case "rejected":
        throw ie(e4 = n7.reason), e4;
      default:
        if ("string" == typeof n7.status) n7.then($, $);
        else {
          if (null !== (e4 = Wu) && 100 < e4.shellSuspendCounter) throw Error(r4(482));
          (e4 = n7).status = "pending", e4.then((function(e5) {
            if ("pending" === n7.status) {
              var t6 = n7;
              t6.status = "fulfilled", t6.value = e5;
            }
          }), (function(e5) {
            if ("pending" === n7.status) {
              var t6 = n7;
              t6.status = "rejected", t6.reason = e5;
            }
          }));
        }
        switch (n7.status) {
          case "fulfilled":
            return n7.value;
          case "rejected":
            throw ie(e4 = n7.reason), e4;
        }
        throw Go = n7, $o;
    }
  }
  function oe(e4) {
    try {
      return (0, e4._init)(e4._payload);
    } catch (e5) {
      if (null !== e5 && "object" == typeof e5 && "function" == typeof e5.then) throw Go = e5, $o;
      throw e5;
    }
  }
  function ue() {
    if (null === Go) throw Error(r4(459));
    var e4 = Go;
    return Go = null, e4;
  }
  function ie(e4) {
    if (e4 === $o || e4 === qo) throw Error(r4(483));
  }
  function se(e4) {
    var n7 = Ko;
    return Ko += 1, null === Jo && (Jo = []), ae(Jo, e4, n7);
  }
  function ce(e4, n7) {
    n7 = n7.props.ref, e4.ref = void 0 !== n7 ? n7 : null;
  }
  function de(e4, n7) {
    if (n7.$$typeof === gl) throw Error(r4(525));
    throw e4 = Object.prototype.toString.call(n7), Error(r4(31, "[object Object]" === e4 ? "object with keys {" + Object.keys(n7).join(", ") + "}" : e4));
  }
  function fe(e4) {
    function n7(n8, t5) {
      if (e4) {
        var r5 = n8.deletions;
        null === r5 ? (n8.deletions = [t5], n8.flags |= 16) : r5.push(t5);
      }
    }
    function a6(t5, r5) {
      if (!e4) return null;
      for (; null !== r5; ) n7(t5, r5), r5 = r5.sibling;
      return null;
    }
    function o6(e5) {
      for (var n8 = /* @__PURE__ */ new Map(); null !== e5; ) null !== e5.key ? n8.set(e5.key, e5) : n8.set(e5.index, e5), e5 = e5.sibling;
      return n8;
    }
    function u5(e5, n8) {
      return (e5 = ll(e5, n8)).index = 0, e5.sibling = null, e5;
    }
    function i6(n8, t5, r5) {
      return n8.index = r5, e4 ? null !== (r5 = n8.alternate) ? (r5 = r5.index) < t5 ? (n8.flags |= 67108866, t5) : r5 : (n8.flags |= 67108866, t5) : (n8.flags |= 1048576, t5);
    }
    function s5(n8) {
      return e4 && null === n8.alternate && (n8.flags |= 67108866), n8;
    }
    function c7(e5, n8, t5, r5) {
      return null === n8 || 6 !== n8.tag ? ((n8 = il(t5, e5.mode, r5)).return = e5, n8) : ((n8 = u5(n8, t5)).return = e5, n8);
    }
    function d4(e5, n8, t5, r5) {
      var l5 = t5.type;
      return l5 === vl ? p4(e5, n8, t5.props.children, r5, t5.key) : null !== n8 && (n8.elementType === l5 || "object" == typeof l5 && null !== l5 && l5.$$typeof === _l && oe(l5) === n8.type) ? (ce(n8 = u5(n8, t5.props), t5), n8.return = e5, n8) : (ce(n8 = ol(t5.type, t5.key, t5.props, null, e5.mode, r5), t5), n8.return = e5, n8);
    }
    function f5(e5, n8, t5, r5) {
      return null === n8 || 4 !== n8.tag || n8.stateNode.containerInfo !== t5.containerInfo || n8.stateNode.implementation !== t5.implementation ? ((n8 = sl(t5, e5.mode, r5)).return = e5, n8) : ((n8 = u5(n8, t5.children || [])).return = e5, n8);
    }
    function p4(e5, n8, t5, r5, l5) {
      return null === n8 || 7 !== n8.tag ? ((n8 = ul(t5, e5.mode, r5, l5)).return = e5, n8) : ((n8 = u5(n8, t5)).return = e5, n8);
    }
    function m4(e5, n8, t5) {
      if ("string" == typeof n8 && "" !== n8 || "number" == typeof n8 || "bigint" == typeof n8) return (n8 = il("" + n8, e5.mode, t5)).return = e5, n8;
      if ("object" == typeof n8 && null !== n8) {
        switch (n8.$$typeof) {
          case yl:
            return ce(t5 = ol(n8.type, n8.key, n8.props, null, e5.mode, t5), n8), t5.return = e5, t5;
          case bl:
            return (n8 = sl(n8, e5.mode, t5)).return = e5, n8;
          case _l:
            return m4(e5, n8 = oe(n8), t5);
        }
        if (Ul(n8) || l4(n8)) return (n8 = ul(n8, e5.mode, t5, null)).return = e5, n8;
        if ("function" == typeof n8.then) return m4(e5, se(n8), t5);
        if (n8.$$typeof === zl) return m4(e5, M(e5, n8), t5);
        de(e5, n8);
      }
      return null;
    }
    function h5(e5, n8, t5, r5) {
      var a7 = null !== n8 ? n8.key : null;
      if ("string" == typeof t5 && "" !== t5 || "number" == typeof t5 || "bigint" == typeof t5) return null !== a7 ? null : c7(e5, n8, "" + t5, r5);
      if ("object" == typeof t5 && null !== t5) {
        switch (t5.$$typeof) {
          case yl:
            return t5.key === a7 ? d4(e5, n8, t5, r5) : null;
          case bl:
            return t5.key === a7 ? f5(e5, n8, t5, r5) : null;
          case _l:
            return h5(e5, n8, t5 = oe(t5), r5);
        }
        if (Ul(t5) || l4(t5)) return null !== a7 ? null : p4(e5, n8, t5, r5, null);
        if ("function" == typeof t5.then) return h5(e5, n8, se(t5), r5);
        if (t5.$$typeof === zl) return h5(e5, n8, M(e5, t5), r5);
        de(e5, t5);
      }
      return null;
    }
    function g4(e5, n8, t5, r5, a7) {
      if ("string" == typeof r5 && "" !== r5 || "number" == typeof r5 || "bigint" == typeof r5) return c7(n8, e5 = e5.get(t5) || null, "" + r5, a7);
      if ("object" == typeof r5 && null !== r5) {
        switch (r5.$$typeof) {
          case yl:
            return d4(n8, e5 = e5.get(null === r5.key ? t5 : r5.key) || null, r5, a7);
          case bl:
            return f5(n8, e5 = e5.get(null === r5.key ? t5 : r5.key) || null, r5, a7);
          case _l:
            return g4(e5, n8, t5, r5 = oe(r5), a7);
        }
        if (Ul(r5) || l4(r5)) return p4(n8, e5 = e5.get(t5) || null, r5, a7, null);
        if ("function" == typeof r5.then) return g4(e5, n8, t5, se(r5), a7);
        if (r5.$$typeof === zl) return g4(e5, n8, t5, M(n8, r5), a7);
        de(n8, r5);
      }
      return null;
    }
    function y4(t5, c8, d5, f6) {
      if ("object" == typeof d5 && null !== d5 && d5.type === vl && null === d5.key && (d5 = d5.props.children), "object" == typeof d5 && null !== d5) {
        switch (d5.$$typeof) {
          case yl:
            e: {
              for (var p5 = d5.key; null !== c8; ) {
                if (c8.key === p5) {
                  if ((p5 = d5.type) === vl) {
                    if (7 === c8.tag) {
                      a6(t5, c8.sibling), (f6 = u5(c8, d5.props.children)).return = t5, t5 = f6;
                      break e;
                    }
                  } else if (c8.elementType === p5 || "object" == typeof p5 && null !== p5 && p5.$$typeof === _l && oe(p5) === c8.type) {
                    a6(t5, c8.sibling), ce(f6 = u5(c8, d5.props), d5), f6.return = t5, t5 = f6;
                    break e;
                  }
                  a6(t5, c8);
                  break;
                }
                n7(t5, c8), c8 = c8.sibling;
              }
              d5.type === vl ? ((f6 = ul(d5.props.children, t5.mode, f6, d5.key)).return = t5, t5 = f6) : (ce(f6 = ol(d5.type, d5.key, d5.props, null, t5.mode, f6), d5), f6.return = t5, t5 = f6);
            }
            return s5(t5);
          case bl:
            e: {
              for (p5 = d5.key; null !== c8; ) {
                if (c8.key === p5) {
                  if (4 === c8.tag && c8.stateNode.containerInfo === d5.containerInfo && c8.stateNode.implementation === d5.implementation) {
                    a6(t5, c8.sibling), (f6 = u5(c8, d5.children || [])).return = t5, t5 = f6;
                    break e;
                  }
                  a6(t5, c8);
                  break;
                }
                n7(t5, c8), c8 = c8.sibling;
              }
              (f6 = sl(d5, t5.mode, f6)).return = t5, t5 = f6;
            }
            return s5(t5);
          case _l:
            return y4(t5, c8, d5 = oe(d5), f6);
        }
        if (Ul(d5)) return (function(t6, r5, l5, u6) {
          for (var s6 = null, c9 = null, d6 = r5, f7 = r5 = 0, p6 = null; null !== d6 && f7 < l5.length; f7++) {
            d6.index > f7 ? (p6 = d6, d6 = null) : p6 = d6.sibling;
            var y5 = h5(t6, d6, l5[f7], u6);
            if (null === y5) {
              null === d6 && (d6 = p6);
              break;
            }
            e4 && d6 && null === y5.alternate && n7(t6, d6), r5 = i6(y5, r5, f7), null === c9 ? s6 = y5 : c9.sibling = y5, c9 = y5, d6 = p6;
          }
          if (f7 === l5.length) return a6(t6, d6), s6;
          if (null === d6) {
            for (; f7 < l5.length; f7++) null !== (d6 = m4(t6, l5[f7], u6)) && (r5 = i6(d6, r5, f7), null === c9 ? s6 = d6 : c9.sibling = d6, c9 = d6);
            return s6;
          }
          for (d6 = o6(d6); f7 < l5.length; f7++) null !== (p6 = g4(d6, t6, f7, l5[f7], u6)) && (e4 && null !== p6.alternate && d6.delete(null === p6.key ? f7 : p6.key), r5 = i6(p6, r5, f7), null === c9 ? s6 = p6 : c9.sibling = p6, c9 = p6);
          return e4 && d6.forEach((function(e5) {
            return n7(t6, e5);
          })), s6;
        })(t5, c8, d5, f6);
        if (l4(d5)) {
          if ("function" != typeof (p5 = l4(d5))) throw Error(r4(150));
          return (function(t6, l5, u6, s6) {
            if (null == u6) throw Error(r4(151));
            for (var c9 = null, d6 = null, f7 = l5, p6 = l5 = 0, y5 = null, b4 = u6.next(); null !== f7 && !b4.done; p6++, b4 = u6.next()) {
              f7.index > p6 ? (y5 = f7, f7 = null) : y5 = f7.sibling;
              var v4 = h5(t6, f7, b4.value, s6);
              if (null === v4) {
                null === f7 && (f7 = y5);
                break;
              }
              e4 && f7 && null === v4.alternate && n7(t6, f7), l5 = i6(v4, l5, p6), null === d6 ? c9 = v4 : d6.sibling = v4, d6 = v4, f7 = y5;
            }
            if (b4.done) return a6(t6, f7), c9;
            if (null === f7) {
              for (; !b4.done; p6++, b4 = u6.next()) null !== (b4 = m4(t6, b4.value, s6)) && (l5 = i6(b4, l5, p6), null === d6 ? c9 = b4 : d6.sibling = b4, d6 = b4);
              return c9;
            }
            for (f7 = o6(f7); !b4.done; p6++, b4 = u6.next()) null !== (b4 = g4(f7, t6, p6, b4.value, s6)) && (e4 && null !== b4.alternate && f7.delete(null === b4.key ? p6 : b4.key), l5 = i6(b4, l5, p6), null === d6 ? c9 = b4 : d6.sibling = b4, d6 = b4);
            return e4 && f7.forEach((function(e5) {
              return n7(t6, e5);
            })), c9;
          })(t5, c8, d5 = p5.call(d5), f6);
        }
        if ("function" == typeof d5.then) return y4(t5, c8, se(d5), f6);
        if (d5.$$typeof === zl) return y4(t5, c8, M(t5, d5), f6);
        de(t5, d5);
      }
      return "string" == typeof d5 && "" !== d5 || "number" == typeof d5 || "bigint" == typeof d5 ? (d5 = "" + d5, null !== c8 && 6 === c8.tag ? (a6(t5, c8.sibling), (f6 = u5(c8, d5)).return = t5, t5 = f6) : (a6(t5, c8), (f6 = il(d5, t5.mode, f6)).return = t5, t5 = f6), s5(t5)) : a6(t5, c8);
    }
    return function(e5, n8, r5, l5) {
      try {
        Ko = 0;
        var a7 = y4(e5, n8, r5, l5);
        return Jo = null, a7;
      } catch (n9) {
        if (n9 === $o || n9 === qo) throw n9;
        var o7 = t4(29, n9, null, e5.mode);
        return o7.lanes = l5, o7.return = e5, o7;
      }
    };
  }
  function pe() {
    for (var e4 = nu, n7 = tu = nu = 0; n7 < e4; ) {
      var t5 = eu[n7];
      eu[n7++] = null;
      var r5 = eu[n7];
      eu[n7++] = null;
      var l5 = eu[n7];
      eu[n7++] = null;
      var a6 = eu[n7];
      if (eu[n7++] = null, null !== r5 && null !== l5) {
        var o6 = r5.pending;
        null === o6 ? l5.next = l5 : (l5.next = o6.next, o6.next = l5), r5.pending = l5;
      }
      0 !== a6 && ye(t5, l5, a6);
    }
  }
  function me(e4, n7, t5, r5) {
    eu[nu++] = e4, eu[nu++] = n7, eu[nu++] = t5, eu[nu++] = r5, tu |= r5, e4.lanes |= r5, null !== (e4 = e4.alternate) && (e4.lanes |= r5);
  }
  function he(e4, n7, t5, r5) {
    return me(e4, n7, t5, r5), be(e4);
  }
  function ge(e4, n7) {
    return me(e4, null, null, n7), be(e4);
  }
  function ye(e4, n7, t5) {
    e4.lanes |= t5;
    var r5 = e4.alternate;
    null !== r5 && (r5.lanes |= t5);
    for (var l5 = false, a6 = e4.return; null !== a6; ) a6.childLanes |= t5, null !== (r5 = a6.alternate) && (r5.childLanes |= t5), 22 === a6.tag && (null === (e4 = a6.stateNode) || 1 & e4._visibility || (l5 = true)), e4 = a6, a6 = a6.return;
    return 3 === e4.tag ? (a6 = e4.stateNode, l5 && null !== n7 && (l5 = 31 - Qa(t5), null === (r5 = (e4 = a6.hiddenUpdates)[l5]) ? e4[l5] = [n7] : r5.push(n7), n7.lane = 536870912 | t5), a6) : null;
  }
  function be(e4) {
    if (50 < bi) throw bi = 0, vi = null, Error(r4(185));
    for (var n7 = e4.return; null !== n7; ) n7 = (e4 = n7).return;
    return 3 === e4.tag ? e4.stateNode : null;
  }
  function ve(e4) {
    e4.updateQueue = { baseState: e4.memoizedState, firstBaseUpdate: null, lastBaseUpdate: null, shared: { pending: null, lanes: 0, hiddenCallbacks: null }, callbacks: null };
  }
  function Se(e4, n7) {
    e4 = e4.updateQueue, n7.updateQueue === e4 && (n7.updateQueue = { baseState: e4.baseState, firstBaseUpdate: e4.firstBaseUpdate, lastBaseUpdate: e4.lastBaseUpdate, shared: e4.shared, callbacks: null });
  }
  function ke(e4) {
    return { lane: e4, tag: 0, payload: null, callback: null, next: null };
  }
  function we(e4, n7, t5) {
    var r5 = e4.updateQueue;
    if (null === r5) return null;
    if (r5 = r5.shared, 0 != (2 & Mu)) {
      var l5 = r5.pending;
      return null === l5 ? n7.next = n7 : (n7.next = l5.next, l5.next = n7), r5.pending = n7, n7 = be(e4), ye(e4, null, t5), n7;
    }
    return me(e4, r5, n7, t5), be(e4);
  }
  function ze(e4, n7, t5) {
    if (null !== (n7 = n7.updateQueue) && (n7 = n7.shared, 0 != (4194048 & t5))) {
      var r5 = n7.lanes;
      t5 |= r5 &= e4.pendingLanes, n7.lanes = t5, b3(e4, t5);
    }
  }
  function xe(e4, n7) {
    var t5 = e4.updateQueue, r5 = e4.alternate;
    if (null !== r5 && t5 === (r5 = r5.updateQueue)) {
      var l5 = null, a6 = null;
      if (null !== (t5 = t5.firstBaseUpdate)) {
        do {
          var o6 = { lane: t5.lane, tag: t5.tag, payload: t5.payload, callback: null, next: null };
          null === a6 ? l5 = a6 = o6 : a6 = a6.next = o6, t5 = t5.next;
        } while (null !== t5);
        null === a6 ? l5 = a6 = n7 : a6 = a6.next = n7;
      } else l5 = a6 = n7;
      return t5 = { baseState: r5.baseState, firstBaseUpdate: l5, lastBaseUpdate: a6, shared: r5.shared, callbacks: r5.callbacks }, void (e4.updateQueue = t5);
    }
    null === (e4 = t5.lastBaseUpdate) ? t5.firstBaseUpdate = n7 : e4.next = n7, t5.lastBaseUpdate = n7;
  }
  function Ee() {
    if (lu && null !== Wo) throw Wo;
  }
  function Ce(e4, n7, t5, r5) {
    lu = false;
    var l5 = e4.updateQueue;
    ru = false;
    var a6 = l5.firstBaseUpdate, o6 = l5.lastBaseUpdate, u5 = l5.shared.pending;
    if (null !== u5) {
      l5.shared.pending = null;
      var i6 = u5, s5 = i6.next;
      i6.next = null, null === o6 ? a6 = s5 : o6.next = s5, o6 = i6;
      var c7 = e4.alternate;
      null !== c7 && (u5 = (c7 = c7.updateQueue).lastBaseUpdate) !== o6 && (null === u5 ? c7.firstBaseUpdate = s5 : u5.next = s5, c7.lastBaseUpdate = i6);
    }
    if (null !== a6) {
      var d4 = l5.baseState;
      for (o6 = 0, c7 = s5 = i6 = null, u5 = a6; ; ) {
        var f5 = -536870913 & u5.lane, p4 = f5 !== u5.lane;
        if (p4 ? (Bu & f5) === f5 : (r5 & f5) === f5) {
          0 !== f5 && f5 === Mo && (lu = true), null !== c7 && (c7 = c7.next = { lane: 0, tag: u5.tag, payload: u5.payload, callback: null, next: null });
          e: {
            var m4 = e4, h5 = u5;
            f5 = n7;
            var g4 = t5;
            switch (h5.tag) {
              case 1:
                if ("function" == typeof (m4 = h5.payload)) {
                  d4 = m4.call(g4, d4, f5);
                  break e;
                }
                d4 = m4;
                break e;
              case 3:
                m4.flags = -65537 & m4.flags | 128;
              case 0:
                if (null == (f5 = "function" == typeof (m4 = h5.payload) ? m4.call(g4, d4, f5) : m4)) break e;
                d4 = hl({}, d4, f5);
                break e;
              case 2:
                ru = true;
            }
          }
          null !== (f5 = u5.callback) && (e4.flags |= 64, p4 && (e4.flags |= 8192), null === (p4 = l5.callbacks) ? l5.callbacks = [f5] : p4.push(f5));
        } else p4 = { lane: f5, tag: u5.tag, payload: u5.payload, callback: u5.callback, next: null }, null === c7 ? (s5 = c7 = p4, i6 = d4) : c7 = c7.next = p4, o6 |= f5;
        if (null === (u5 = u5.next)) {
          if (null === (u5 = l5.shared.pending)) break;
          u5 = (p4 = u5).next, p4.next = null, l5.lastBaseUpdate = p4, l5.shared.pending = null;
        }
      }
      null === c7 && (i6 = d4), l5.baseState = i6, l5.firstBaseUpdate = s5, l5.lastBaseUpdate = c7, null === a6 && (l5.shared.lanes = 0), Xu |= o6, e4.lanes = o6, e4.memoizedState = d4;
    }
  }
  function Pe(e4, n7) {
    if ("function" != typeof e4) throw Error(r4(191, e4));
    e4.call(n7);
  }
  function _e(e4, n7) {
    var t5 = e4.callbacks;
    if (null !== t5) for (e4.callbacks = null, e4 = 0; e4 < t5.length; e4++) Pe(t5[e4], n7);
  }
  function Te(e4, n7) {
    s4(ou, e4 = Ju), s4(au, n7), Ju = e4 | n7.baseLanes;
  }
  function Re() {
    s4(ou, Ju), s4(au, au.current);
  }
  function Ne() {
    Ju = ou.current, i5(au), i5(ou);
  }
  function Le(e4) {
    var n7 = e4.alternate;
    s4(su, 1 & su.current), s4(uu, e4), null === iu && (null === n7 || null !== au.current || null !== n7.memoizedState) && (iu = e4);
  }
  function Ue(e4) {
    s4(su, su.current), s4(uu, e4), null === iu && (iu = e4);
  }
  function De(e4) {
    22 === e4.tag ? (s4(su, su.current), s4(uu, e4), null === iu && (iu = e4)) : Ie();
  }
  function Ie() {
    s4(su, su.current), s4(uu, uu.current);
  }
  function Fe(e4) {
    i5(uu), iu === e4 && (iu = null), i5(su);
  }
  function je(e4) {
    for (var n7 = e4; null !== n7; ) {
      if (13 === n7.tag) {
        var t5 = n7.memoizedState;
        if (null !== t5 && (null === (t5 = t5.dehydrated) || Pa(t5) || _a2(t5))) return n7;
      } else if (19 !== n7.tag || "forwards" !== n7.memoizedProps.revealOrder && "backwards" !== n7.memoizedProps.revealOrder && "unstable_legacy-backwards" !== n7.memoizedProps.revealOrder && "together" !== n7.memoizedProps.revealOrder) {
        if (null !== n7.child) {
          n7.child.return = n7, n7 = n7.child;
          continue;
        }
      } else if (0 != (128 & n7.flags)) return n7;
      if (n7 === e4) break;
      for (; null === n7.sibling; ) {
        if (null === n7.return || n7.return === e4) return null;
        n7 = n7.return;
      }
      n7.sibling.return = n7.return, n7 = n7.sibling;
    }
    return null;
  }
  function Ae() {
    throw Error(r4(321));
  }
  function He(e4, n7) {
    if (null === n7) return false;
    for (var t5 = 0; t5 < n7.length && t5 < e4.length; t5++) if (!uo(e4[t5], n7[t5])) return false;
    return true;
  }
  function Oe(e4, n7, t5, r5, l5, a6) {
    return cu = a6, du = n7, n7.memoizedState = null, n7.updateQueue = null, n7.lanes = 0, Dl.H = null === e4 || null === e4.memoizedState ? wu : zu, gu = false, a6 = t5(r5, l5), gu = false, hu && (a6 = We(n7, t5, r5, l5)), Me(e4), a6;
  }
  function Me(e4) {
    Dl.H = ku;
    var n7 = null !== fu && null !== fu.next;
    if (cu = 0, pu = fu = du = null, mu = false, bu = 0, vu = null, n7) throw Error(r4(300));
    null === e4 || Pu || null !== (e4 = e4.dependencies) && A(e4) && (Pu = true);
  }
  function We(e4, n7, t5, l5) {
    du = e4;
    var a6 = 0;
    do {
      if (hu && (vu = null), bu = 0, hu = false, 25 <= a6) throw Error(r4(301));
      if (a6 += 1, pu = fu = null, null != e4.updateQueue) {
        var o6 = e4.updateQueue;
        o6.lastEffect = null, o6.events = null, o6.stores = null, null != o6.memoCache && (o6.memoCache.index = 0);
      }
      Dl.H = xu, o6 = n7(t5, l5);
    } while (hu);
    return o6;
  }
  function Qe() {
    var e4 = Dl.H, n7 = e4.useState()[0];
    return n7 = "function" == typeof n7.then ? Ge(n7) : n7, e4 = e4.useState()[0], (null !== fu ? fu.memoizedState : null) !== e4 && (du.flags |= 1024), n7;
  }
  function Be() {
    var e4 = 0 !== yu;
    return yu = 0, e4;
  }
  function $e(e4, n7, t5) {
    n7.updateQueue = e4.updateQueue, n7.flags &= -2053, e4.lanes &= ~t5;
  }
  function Ve(e4) {
    if (mu) {
      for (e4 = e4.memoizedState; null !== e4; ) {
        var n7 = e4.queue;
        null !== n7 && (n7.pending = null), e4 = e4.next;
      }
      mu = false;
    }
    cu = 0, pu = fu = du = null, hu = false, bu = yu = 0, vu = null;
  }
  function qe() {
    var e4 = { memoizedState: null, baseState: null, baseQueue: null, queue: null, next: null };
    return null === pu ? du.memoizedState = pu = e4 : pu = pu.next = e4, pu;
  }
  function Ye() {
    if (null === fu) {
      var e4 = du.alternate;
      e4 = null !== e4 ? e4.memoizedState : null;
    } else e4 = fu.next;
    var n7 = null === pu ? du.memoizedState : pu.next;
    if (null !== n7) pu = n7, fu = e4;
    else {
      if (null === e4) {
        if (null === du.alternate) throw Error(r4(467));
        throw Error(r4(310));
      }
      e4 = { memoizedState: (fu = e4).memoizedState, baseState: fu.baseState, baseQueue: fu.baseQueue, queue: fu.queue, next: null }, null === pu ? du.memoizedState = pu = e4 : pu = pu.next = e4;
    }
    return pu;
  }
  function Ge(e4) {
    var n7 = bu;
    return bu += 1, null === vu && (vu = []), e4 = ae(vu, e4, n7), n7 = du, null === (null === pu ? n7.memoizedState : pu.next) && (n7 = n7.alternate, Dl.H = null === n7 || null === n7.memoizedState ? wu : zu), e4;
  }
  function Je(e4) {
    if (null !== e4 && "object" == typeof e4) {
      if ("function" == typeof e4.then) return Ge(e4);
      if (e4.$$typeof === zl) return O(e4);
    }
    throw Error(r4(438, String(e4)));
  }
  function Ke(e4) {
    var n7 = null, t5 = du.updateQueue;
    if (null !== t5 && (n7 = t5.memoCache), null == n7) {
      var r5 = du.alternate;
      null !== r5 && null !== (r5 = r5.updateQueue) && null != (r5 = r5.memoCache) && (n7 = { data: r5.data.map((function(e5) {
        return e5.slice();
      })), index: 0 });
    }
    if (null == n7 && (n7 = { data: [], index: 0 }), null === t5 && (t5 = { lastEffect: null, events: null, stores: null, memoCache: null }, du.updateQueue = t5), t5.memoCache = n7, void 0 === (t5 = n7.data[n7.index])) for (t5 = n7.data[n7.index] = Array(e4), r5 = 0; r5 < e4; r5++) t5[r5] = Rl;
    return n7.index++, t5;
  }
  function Xe(e4, n7) {
    return "function" == typeof n7 ? n7(e4) : n7;
  }
  function Ze(e4) {
    return en(Ye(), fu, e4);
  }
  function en(e4, n7, t5) {
    var l5 = e4.queue;
    if (null === l5) throw Error(r4(311));
    l5.lastRenderedReducer = t5;
    var a6 = e4.baseQueue, o6 = l5.pending;
    if (null !== o6) {
      if (null !== a6) {
        var u5 = a6.next;
        a6.next = o6.next, o6.next = u5;
      }
      n7.baseQueue = a6 = o6, l5.pending = null;
    }
    if (o6 = e4.baseState, null === a6) e4.memoizedState = o6;
    else {
      var i6 = u5 = null, s5 = null, c7 = n7 = a6.next, d4 = false;
      do {
        var f5 = -536870913 & c7.lane;
        if (f5 !== c7.lane ? (Bu & f5) === f5 : (cu & f5) === f5) {
          var p4 = c7.revertLane;
          if (0 === p4) null !== s5 && (s5 = s5.next = { lane: 0, revertLane: 0, gesture: null, action: c7.action, hasEagerState: c7.hasEagerState, eagerState: c7.eagerState, next: null }), f5 === Mo && (d4 = true);
          else {
            if ((cu & p4) === p4) {
              c7 = c7.next, p4 === Mo && (d4 = true);
              continue;
            }
            f5 = { lane: 0, revertLane: c7.revertLane, gesture: null, action: c7.action, hasEagerState: c7.hasEagerState, eagerState: c7.eagerState, next: null }, null === s5 ? (i6 = s5 = f5, u5 = o6) : s5 = s5.next = f5, du.lanes |= p4, Xu |= p4;
          }
          f5 = c7.action, gu && t5(o6, f5), o6 = c7.hasEagerState ? c7.eagerState : t5(o6, f5);
        } else p4 = { lane: f5, revertLane: c7.revertLane, gesture: c7.gesture, action: c7.action, hasEagerState: c7.hasEagerState, eagerState: c7.eagerState, next: null }, null === s5 ? (i6 = s5 = p4, u5 = o6) : s5 = s5.next = p4, du.lanes |= f5, Xu |= f5;
        c7 = c7.next;
      } while (null !== c7 && c7 !== n7);
      if (null === s5 ? u5 = o6 : s5.next = i6, !uo(o6, e4.memoizedState) && (Pu = true, d4 && null !== (t5 = Wo))) throw t5;
      e4.memoizedState = o6, e4.baseState = u5, e4.baseQueue = s5, l5.lastRenderedState = o6;
    }
    return null === a6 && (l5.lanes = 0), [e4.memoizedState, l5.dispatch];
  }
  function nn(e4) {
    var n7 = Ye(), t5 = n7.queue;
    if (null === t5) throw Error(r4(311));
    t5.lastRenderedReducer = e4;
    var l5 = t5.dispatch, a6 = t5.pending, o6 = n7.memoizedState;
    if (null !== a6) {
      t5.pending = null;
      var u5 = a6 = a6.next;
      do {
        o6 = e4(o6, u5.action), u5 = u5.next;
      } while (u5 !== a6);
      uo(o6, n7.memoizedState) || (Pu = true), n7.memoizedState = o6, null === n7.baseQueue && (n7.baseState = o6), t5.lastRenderedState = o6;
    }
    return [o6, l5];
  }
  function tn(e4, n7, t5) {
    var l5 = du, a6 = Ye();
    t5 = n7();
    var o6 = !uo((fu || a6).memoizedState, t5);
    if (o6 && (a6.memoizedState = t5, Pu = true), a6 = a6.queue, _n(an.bind(null, l5, a6, e4), [e4]), a6.getSnapshot !== n7 || o6 || null !== pu && 1 & pu.memoizedState.tag) {
      if (l5.flags |= 2048, zn(9, { destroy: void 0 }, ln.bind(null, l5, a6, t5, n7), null), null === Wu) throw Error(r4(349));
      0 != (127 & cu) || rn(l5, n7, t5);
    }
    return t5;
  }
  function rn(e4, n7, t5) {
    e4.flags |= 16384, e4 = { getSnapshot: n7, value: t5 }, null === (n7 = du.updateQueue) ? (n7 = { lastEffect: null, events: null, stores: null, memoCache: null }, du.updateQueue = n7, n7.stores = [e4]) : null === (t5 = n7.stores) ? n7.stores = [e4] : t5.push(e4);
  }
  function ln(e4, n7, t5, r5) {
    n7.value = t5, n7.getSnapshot = r5, on2(n7) && un(e4);
  }
  function an(e4, n7, t5) {
    return t5((function() {
      on2(n7) && un(e4);
    }));
  }
  function on2(e4) {
    var n7 = e4.getSnapshot;
    e4 = e4.value;
    try {
      var t5 = n7();
      return !uo(e4, t5);
    } catch (e5) {
      return true;
    }
  }
  function un(e4) {
    var n7 = ge(e4, 2);
    null !== n7 && zr(n7, 0, 2);
  }
  function sn(e4) {
    var n7 = qe();
    if ("function" == typeof e4) {
      var t5 = e4;
      if (e4 = t5(), gu) {
        k3(true);
        try {
          t5();
        } finally {
          k3(false);
        }
      }
    }
    return n7.memoizedState = n7.baseState = e4, n7.queue = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: Xe, lastRenderedState: e4 }, n7;
  }
  function cn(e4, n7, t5, r5) {
    return e4.baseState = t5, en(e4, fu, "function" == typeof r5 ? r5 : Xe);
  }
  function dn(e4, n7, t5, l5, a6) {
    if (Yn(e4)) throw Error(r4(485));
    if (null !== (e4 = n7.action)) {
      var o6 = { payload: a6, action: e4, next: null, isTransition: true, status: "pending", value: null, reason: null, listeners: [], then: function(e5) {
        o6.listeners.push(e5);
      } };
      null !== Dl.T ? t5(true) : o6.isTransition = false, l5(o6), null === (t5 = n7.pending) ? (o6.next = n7.pending = o6, fn(n7, o6)) : (o6.next = t5.next, n7.pending = t5.next = o6);
    }
  }
  function fn(e4, n7) {
    var t5 = n7.action, r5 = n7.payload, l5 = e4.state;
    if (n7.isTransition) {
      var a6 = Dl.T, o6 = {};
      Dl.T = o6;
      try {
        var u5 = t5(l5, r5), i6 = Dl.S;
        null !== i6 && i6(o6, u5), pn(e4, n7, u5);
      } catch (t6) {
        hn(e4, n7, t6);
      } finally {
        null !== a6 && null !== o6.types && (a6.types = o6.types), Dl.T = a6;
      }
    } else try {
      pn(e4, n7, a6 = t5(l5, r5));
    } catch (t6) {
      hn(e4, n7, t6);
    }
  }
  function pn(e4, n7, t5) {
    null !== t5 && "object" == typeof t5 && "function" == typeof t5.then ? t5.then((function(t6) {
      mn(e4, n7, t6);
    }), (function(t6) {
      return hn(e4, n7, t6);
    })) : mn(e4, n7, t5);
  }
  function mn(e4, n7, t5) {
    n7.status = "fulfilled", n7.value = t5, gn(n7), e4.state = t5, null !== (n7 = e4.pending) && ((t5 = n7.next) === n7 ? e4.pending = null : (t5 = t5.next, n7.next = t5, fn(e4, t5)));
  }
  function hn(e4, n7, t5) {
    var r5 = e4.pending;
    if (e4.pending = null, null !== r5) {
      r5 = r5.next;
      do {
        n7.status = "rejected", n7.reason = t5, gn(n7), n7 = n7.next;
      } while (n7 !== r5);
    }
    e4.action = null;
  }
  function gn(e4) {
    e4 = e4.listeners;
    for (var n7 = 0; n7 < e4.length; n7++) (0, e4[n7])();
  }
  function yn(e4, n7) {
    return n7;
  }
  function bn(e4, n7) {
    var t5, r5, l5;
    (t5 = qe()).memoizedState = t5.baseState = n7, r5 = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: yn, lastRenderedState: n7 }, t5.queue = r5, t5 = $n.bind(null, du, r5), r5.dispatch = t5, r5 = sn(false);
    var a6 = qn.bind(null, du, false, r5.queue);
    return l5 = { state: n7, dispatch: null, action: e4, pending: null }, (r5 = qe()).queue = l5, t5 = dn.bind(null, du, l5, a6, t5), l5.dispatch = t5, r5.memoizedState = e4, [n7, t5, false];
  }
  function vn(e4) {
    return Sn(Ye(), fu, e4);
  }
  function Sn(e4, n7, t5) {
    if (n7 = en(e4, n7, yn)[0], e4 = Ze(Xe)[0], "object" == typeof n7 && null !== n7 && "function" == typeof n7.then) try {
      var r5 = Ge(n7);
    } catch (e5) {
      if (e5 === $o) throw qo;
      throw e5;
    }
    else r5 = n7;
    var l5 = (n7 = Ye()).queue, a6 = l5.dispatch;
    return t5 !== n7.memoizedState && (du.flags |= 2048, zn(9, { destroy: void 0 }, kn.bind(null, l5, t5), null)), [r5, a6, e4];
  }
  function kn(e4, n7) {
    e4.action = n7;
  }
  function wn(e4) {
    var n7 = Ye(), t5 = fu;
    if (null !== t5) return Sn(n7, t5, e4);
    Ye(), n7 = n7.memoizedState;
    var r5 = (t5 = Ye()).queue.dispatch;
    return t5.memoizedState = e4, [n7, r5, false];
  }
  function zn(e4, n7, t5, r5) {
    return e4 = { tag: e4, create: t5, deps: r5, inst: n7, next: null }, null === (n7 = du.updateQueue) && (n7 = { lastEffect: null, events: null, stores: null, memoCache: null }, du.updateQueue = n7), null === (t5 = n7.lastEffect) ? n7.lastEffect = e4.next = e4 : (r5 = t5.next, t5.next = e4, e4.next = r5, n7.lastEffect = e4), e4;
  }
  function xn() {
    return Ye().memoizedState;
  }
  function En(e4, n7, t5, r5) {
    var l5 = qe();
    du.flags |= e4, l5.memoizedState = zn(1 | n7, { destroy: void 0 }, t5, void 0 === r5 ? null : r5);
  }
  function Cn(e4, n7, t5, r5) {
    var l5 = Ye();
    r5 = void 0 === r5 ? null : r5;
    var a6 = l5.memoizedState.inst;
    null !== fu && null !== r5 && He(r5, fu.memoizedState.deps) ? l5.memoizedState = zn(n7, a6, t5, r5) : (du.flags |= e4, l5.memoizedState = zn(1 | n7, a6, t5, r5));
  }
  function Pn(e4, n7) {
    En(8390656, 8, e4, n7);
  }
  function _n(e4, n7) {
    Cn(2048, 8, e4, n7);
  }
  function Tn(e4) {
    var n7 = Ye().memoizedState;
    return (function(e5) {
      du.flags |= 4;
      var n8 = du.updateQueue;
      if (null === n8) n8 = { lastEffect: null, events: null, stores: null, memoCache: null }, du.updateQueue = n8, n8.events = [e5];
      else {
        var t5 = n8.events;
        null === t5 ? n8.events = [e5] : t5.push(e5);
      }
    })({ ref: n7, nextImpl: e4 }), function() {
      if (0 != (2 & Mu)) throw Error(r4(440));
      return n7.impl.apply(void 0, arguments);
    };
  }
  function Rn(e4, n7) {
    return Cn(4, 2, e4, n7);
  }
  function Nn(e4, n7) {
    return Cn(4, 4, e4, n7);
  }
  function Ln(e4, n7) {
    if ("function" == typeof n7) {
      e4 = e4();
      var t5 = n7(e4);
      return function() {
        "function" == typeof t5 ? t5() : n7(null);
      };
    }
    if (null != n7) return e4 = e4(), n7.current = e4, function() {
      n7.current = null;
    };
  }
  function Un(e4, n7, t5) {
    t5 = null != t5 ? t5.concat([e4]) : null, Cn(4, 4, Ln.bind(null, n7, e4), t5);
  }
  function Dn() {
  }
  function In(e4, n7) {
    var t5 = Ye();
    n7 = void 0 === n7 ? null : n7;
    var r5 = t5.memoizedState;
    return null !== n7 && He(n7, r5[1]) ? r5[0] : (t5.memoizedState = [e4, n7], e4);
  }
  function Fn(e4, n7) {
    var t5 = Ye();
    n7 = void 0 === n7 ? null : n7;
    var r5 = t5.memoizedState;
    if (null !== n7 && He(n7, r5[1])) return r5[0];
    if (r5 = e4(), gu) {
      k3(true);
      try {
        e4();
      } finally {
        k3(false);
      }
    }
    return t5.memoizedState = [r5, n7], r5;
  }
  function jn(e4, n7, t5) {
    return void 0 === t5 || 0 != (1073741824 & cu) && 0 == (261930 & Bu) ? e4.memoizedState = n7 : (e4.memoizedState = t5, e4 = wr(), du.lanes |= e4, Xu |= e4, t5);
  }
  function An(e4, n7, t5, r5) {
    return uo(t5, n7) ? t5 : null !== au.current ? (e4 = jn(e4, t5, r5), uo(e4, n7) || (Pu = true), e4) : 0 == (42 & cu) || 0 != (1073741824 & cu) && 0 == (261930 & Bu) ? (Pu = true, e4.memoizedState = t5) : (e4 = wr(), du.lanes |= e4, Xu |= e4, n7);
  }
  function Hn(e4, n7, t5, r5, l5) {
    var a6 = Xl();
    Kl(0 !== a6 && 8 > a6 ? a6 : 8);
    var o6, u5, i6, s5 = Dl.T, c7 = {};
    Dl.T = c7, qn(e4, false, n7, t5);
    try {
      var d4 = l5(), f5 = Dl.S;
      null !== f5 && f5(c7, d4), null !== d4 && "object" == typeof d4 && "function" == typeof d4.then ? Vn(e4, n7, (o6 = r5, u5 = [], i6 = { status: "pending", value: null, reason: null, then: function(e5) {
        u5.push(e5);
      } }, d4.then((function() {
        i6.status = "fulfilled", i6.value = o6;
        for (var e5 = 0; e5 < u5.length; e5++) (0, u5[e5])(o6);
      }), (function(e5) {
        for (i6.status = "rejected", i6.reason = e5, e5 = 0; e5 < u5.length; e5++) (0, u5[e5])(void 0);
      })), i6), kr()) : Vn(e4, n7, r5, kr());
    } catch (t6) {
      Vn(e4, n7, { then: function() {
      }, status: "rejected", reason: t6 }, kr());
    } finally {
      Kl(a6), null !== s5 && null !== c7.types && (s5.types = c7.types), Dl.T = s5;
    }
  }
  function On() {
    return O(ca);
  }
  function Mn() {
    return Ye().memoizedState;
  }
  function Wn() {
    return Ye().memoizedState;
  }
  function Qn(e4) {
    for (var n7 = e4.return; null !== n7; ) {
      switch (n7.tag) {
        case 24:
        case 3:
          var t5 = kr(), r5 = we(n7, e4 = ke(t5), t5);
          return null !== r5 && (zr(r5, 0, t5), ze(r5, n7, t5)), n7 = { cache: Q() }, void (e4.payload = n7);
      }
      n7 = n7.return;
    }
  }
  function Bn(e4, n7, t5) {
    var r5 = kr();
    t5 = { lane: r5, revertLane: 0, gesture: null, action: t5, hasEagerState: false, eagerState: null, next: null }, Yn(e4) ? Gn(n7, t5) : null !== (t5 = he(e4, n7, t5, r5)) && (zr(t5, 0, r5), Jn(t5, n7, r5));
  }
  function $n(e4, n7, t5) {
    Vn(e4, n7, t5, kr());
  }
  function Vn(e4, n7, t5, r5) {
    var l5 = { lane: r5, revertLane: 0, gesture: null, action: t5, hasEagerState: false, eagerState: null, next: null };
    if (Yn(e4)) Gn(n7, l5);
    else {
      var a6 = e4.alternate;
      if (0 === e4.lanes && (null === a6 || 0 === a6.lanes) && null !== (a6 = n7.lastRenderedReducer)) try {
        var o6 = n7.lastRenderedState, u5 = a6(o6, t5);
        if (l5.hasEagerState = true, l5.eagerState = u5, uo(u5, o6)) return me(e4, n7, l5, 0), null === Wu && pe(), false;
      } catch (e5) {
      }
      if (null !== (t5 = he(e4, n7, l5, r5))) return zr(t5, 0, r5), Jn(t5, n7, r5), true;
    }
    return false;
  }
  function qn(e4, n7, t5, l5) {
    if (l5 = { lane: 2, revertLane: X(), gesture: null, action: l5, hasEagerState: false, eagerState: null, next: null }, Yn(e4)) {
      if (n7) throw Error(r4(479));
    } else null !== (n7 = he(e4, t5, l5, 2)) && zr(n7, 0, 2);
  }
  function Yn(e4) {
    var n7 = e4.alternate;
    return e4 === du || null !== n7 && n7 === du;
  }
  function Gn(e4, n7) {
    hu = mu = true;
    var t5 = e4.pending;
    null === t5 ? n7.next = n7 : (n7.next = t5.next, t5.next = n7), e4.pending = n7;
  }
  function Jn(e4, n7, t5) {
    if (0 != (4194048 & t5)) {
      var r5 = n7.lanes;
      t5 |= r5 &= e4.pendingLanes, n7.lanes = t5, b3(e4, t5);
    }
  }
  function Kn(e4, n7, t5, r5) {
    t5 = null == (t5 = t5(r5, n7 = e4.memoizedState)) ? n7 : hl({}, n7, t5), e4.memoizedState = t5, 0 === e4.lanes && (e4.updateQueue.baseState = t5);
  }
  function Xn(e4, n7, t5, r5, l5, a6, o6) {
    return "function" == typeof (e4 = e4.stateNode).shouldComponentUpdate ? e4.shouldComponentUpdate(r5, a6, o6) : !(n7.prototype && n7.prototype.isPureReactComponent && re(t5, r5) && re(l5, a6));
  }
  function Zn(e4, n7, t5, r5) {
    e4 = n7.state, "function" == typeof n7.componentWillReceiveProps && n7.componentWillReceiveProps(t5, r5), "function" == typeof n7.UNSAFE_componentWillReceiveProps && n7.UNSAFE_componentWillReceiveProps(t5, r5), n7.state !== e4 && Eu.enqueueReplaceState(n7, n7.state, null);
  }
  function et2(e4, n7) {
    var t5 = n7;
    if ("ref" in n7) for (var r5 in t5 = {}, n7) "ref" !== r5 && (t5[r5] = n7[r5]);
    if (e4 = e4.defaultProps) for (var l5 in t5 === n7 && (t5 = hl({}, t5)), e4) void 0 === t5[l5] && (t5[l5] = e4[l5]);
    return t5;
  }
  function nt(e4, n7) {
    try {
      (0, e4.onUncaughtError)(n7.value, { componentStack: n7.stack });
    } catch (e5) {
      setTimeout((function() {
        throw e5;
      }));
    }
  }
  function tt(e4, n7, t5) {
    try {
      (0, e4.onCaughtError)(t5.value, { componentStack: t5.stack, errorBoundary: 1 === n7.tag ? n7.stateNode : null });
    } catch (e5) {
      setTimeout((function() {
        throw e5;
      }));
    }
  }
  function rt(e4, n7, t5) {
    return (t5 = ke(t5)).tag = 3, t5.payload = { element: null }, t5.callback = function() {
      nt(e4, n7);
    }, t5;
  }
  function lt(e4) {
    return (e4 = ke(e4)).tag = 3, e4;
  }
  function at(e4, n7, t5, r5) {
    var l5 = t5.type.getDerivedStateFromError;
    if ("function" == typeof l5) {
      var a6 = r5.value;
      e4.payload = function() {
        return l5(a6);
      }, e4.callback = function() {
        tt(n7, t5, r5);
      };
    }
    var o6 = t5.stateNode;
    null !== o6 && "function" == typeof o6.componentDidCatch && (e4.callback = function() {
      tt(n7, t5, r5), "function" != typeof l5 && (null === ci ? ci = /* @__PURE__ */ new Set([this]) : ci.add(this));
      var e5 = r5.stack;
      this.componentDidCatch(r5.value, { componentStack: null !== e5 ? e5 : "" });
    });
  }
  function ot(e4, n7, t5, r5) {
    n7.child = null === e4 ? Zo(n7, null, t5, r5) : Xo(n7, e4.child, t5, r5);
  }
  function ut(e4, n7, t5, r5, l5) {
    t5 = t5.render;
    var a6 = n7.ref;
    if ("ref" in r5) {
      var o6 = {};
      for (var u5 in r5) "ref" !== u5 && (o6[u5] = r5[u5]);
    } else o6 = r5;
    return H(n7), r5 = Oe(e4, n7, t5, o6, a6, l5), u5 = Be(), null === e4 || Pu ? (n7.flags |= 1, ot(e4, n7, r5, l5), n7.child) : ($e(e4, n7, l5), _t(e4, n7, l5));
  }
  function it(e4, n7, t5, r5, l5) {
    if (null === e4) {
      var a6 = t5.type;
      return "function" != typeof a6 || rl(a6) || void 0 !== a6.defaultProps || null !== t5.compare ? ((e4 = ol(t5.type, null, r5, n7, n7.mode, l5)).ref = n7.ref, e4.return = n7, n7.child = e4) : (n7.tag = 15, n7.type = a6, st(e4, n7, a6, r5, l5));
    }
    if (a6 = e4.child, !Tt(e4, l5)) {
      var o6 = a6.memoizedProps;
      if ((t5 = null !== (t5 = t5.compare) ? t5 : re)(o6, r5) && e4.ref === n7.ref) return _t(e4, n7, l5);
    }
    return n7.flags |= 1, (e4 = ll(a6, r5)).ref = n7.ref, e4.return = n7, n7.child = e4;
  }
  function st(e4, n7, t5, r5, l5) {
    if (null !== e4) {
      var a6 = e4.memoizedProps;
      if (re(a6, r5) && e4.ref === n7.ref) {
        if (Pu = false, n7.pendingProps = r5 = a6, !Tt(e4, l5)) return n7.lanes = e4.lanes, _t(e4, n7, l5);
        0 != (131072 & e4.flags) && (Pu = true);
      }
    }
    return gt(e4, n7, t5, r5, l5);
  }
  function ct(e4, n7, t5, r5) {
    var l5 = r5.children, a6 = null !== e4 ? e4.memoizedState : null;
    if (null === e4 && null === n7.stateNode && (n7.stateNode = { _visibility: 1, _pendingMarkers: null, _retryCache: null, _transitions: null }), "hidden" === r5.mode) {
      if (0 != (128 & n7.flags)) {
        if (a6 = null !== a6 ? a6.baseLanes | t5 : t5, null !== e4) {
          for (r5 = n7.child = e4.child, l5 = 0; null !== r5; ) l5 = l5 | r5.lanes | r5.childLanes, r5 = r5.sibling;
          r5 = l5 & ~a6;
        } else r5 = 0, n7.child = null;
        return ft(e4, n7, a6, t5, r5);
      }
      if (0 == (536870912 & t5)) return r5 = n7.lanes = 536870912, ft(e4, n7, null !== a6 ? a6.baseLanes | t5 : t5, t5, r5);
      n7.memoizedState = { baseLanes: 0, cachePool: null }, null !== e4 && ne(0, null !== a6 ? a6.cachePool : null), null !== a6 ? Te(n7, a6) : Re(), De(n7);
    } else null !== a6 ? (ne(0, a6.cachePool), Te(n7, a6), Ie(), n7.memoizedState = null) : (null !== e4 && ne(0, null), Re(), Ie());
    return ot(e4, n7, l5, t5), n7.child;
  }
  function dt(e4, n7) {
    return null !== e4 && 22 === e4.tag || null !== n7.stateNode || (n7.stateNode = { _visibility: 1, _pendingMarkers: null, _retryCache: null, _transitions: null }), n7.sibling;
  }
  function ft(e4, n7, t5, r5, l5) {
    var a6 = ee();
    return a6 = null === a6 ? null : { parent: Lo._currentValue2, pool: a6 }, n7.memoizedState = { baseLanes: t5, cachePool: a6 }, null !== e4 && ne(0, null), Re(), De(n7), null !== e4 && j(e4, n7, r5, true), n7.childLanes = l5, null;
  }
  function pt(e4, n7) {
    return (n7 = zt({ mode: n7.mode, children: n7.children }, e4.mode)).ref = e4.ref, e4.child = n7, n7.return = e4, n7;
  }
  function mt(e4, n7, t5) {
    return Xo(n7, e4.child, null, t5), (e4 = pt(n7, n7.pendingProps)).flags |= 2, Fe(n7), n7.memoizedState = null, e4;
  }
  function ht(e4, n7) {
    var t5 = n7.ref;
    if (null === t5) null !== e4 && null !== e4.ref && (n7.flags |= 4194816);
    else {
      if ("function" != typeof t5 && "object" != typeof t5) throw Error(r4(284));
      null !== e4 && e4.ref === t5 || (n7.flags |= 4194816);
    }
  }
  function gt(e4, n7, t5, r5, l5) {
    return H(n7), t5 = Oe(e4, n7, t5, r5, void 0, l5), r5 = Be(), null === e4 || Pu ? (n7.flags |= 1, ot(e4, n7, t5, l5), n7.child) : ($e(e4, n7, l5), _t(e4, n7, l5));
  }
  function yt(e4, n7, t5, r5, l5, a6) {
    return H(n7), n7.updateQueue = null, t5 = We(n7, r5, t5, l5), Me(e4), r5 = Be(), null === e4 || Pu ? (n7.flags |= 1, ot(e4, n7, t5, a6), n7.child) : ($e(e4, n7, a6), _t(e4, n7, a6));
  }
  function bt(e4, n7, t5, r5, l5) {
    if (H(n7), null === n7.stateNode) {
      var a6 = Wa, o6 = t5.contextType;
      "object" == typeof o6 && null !== o6 && (a6 = O(o6)), a6 = new t5(r5, a6), n7.memoizedState = null !== a6.state && void 0 !== a6.state ? a6.state : null, a6.updater = Eu, n7.stateNode = a6, a6._reactInternals = n7, (a6 = n7.stateNode).props = r5, a6.state = n7.memoizedState, a6.refs = {}, ve(n7), o6 = t5.contextType, a6.context = "object" == typeof o6 && null !== o6 ? O(o6) : Wa, a6.state = n7.memoizedState, "function" == typeof (o6 = t5.getDerivedStateFromProps) && (Kn(n7, t5, o6, r5), a6.state = n7.memoizedState), "function" == typeof t5.getDerivedStateFromProps || "function" == typeof a6.getSnapshotBeforeUpdate || "function" != typeof a6.UNSAFE_componentWillMount && "function" != typeof a6.componentWillMount || (o6 = a6.state, "function" == typeof a6.componentWillMount && a6.componentWillMount(), "function" == typeof a6.UNSAFE_componentWillMount && a6.UNSAFE_componentWillMount(), o6 !== a6.state && Eu.enqueueReplaceState(a6, a6.state, null), Ce(n7, r5, a6, l5), Ee(), a6.state = n7.memoizedState), "function" == typeof a6.componentDidMount && (n7.flags |= 4194308), r5 = true;
    } else if (null === e4) {
      a6 = n7.stateNode;
      var u5 = n7.memoizedProps, i6 = et2(t5, u5);
      a6.props = i6;
      var s5 = a6.context, c7 = t5.contextType;
      o6 = Wa, "object" == typeof c7 && null !== c7 && (o6 = O(c7));
      var d4 = t5.getDerivedStateFromProps;
      c7 = "function" == typeof d4 || "function" == typeof a6.getSnapshotBeforeUpdate, u5 = n7.pendingProps !== u5, c7 || "function" != typeof a6.UNSAFE_componentWillReceiveProps && "function" != typeof a6.componentWillReceiveProps || (u5 || s5 !== o6) && Zn(n7, a6, r5, o6), ru = false;
      var f5 = n7.memoizedState;
      a6.state = f5, Ce(n7, r5, a6, l5), Ee(), s5 = n7.memoizedState, u5 || f5 !== s5 || ru ? ("function" == typeof d4 && (Kn(n7, t5, d4, r5), s5 = n7.memoizedState), (i6 = ru || Xn(n7, t5, i6, r5, f5, s5, o6)) ? (c7 || "function" != typeof a6.UNSAFE_componentWillMount && "function" != typeof a6.componentWillMount || ("function" == typeof a6.componentWillMount && a6.componentWillMount(), "function" == typeof a6.UNSAFE_componentWillMount && a6.UNSAFE_componentWillMount()), "function" == typeof a6.componentDidMount && (n7.flags |= 4194308)) : ("function" == typeof a6.componentDidMount && (n7.flags |= 4194308), n7.memoizedProps = r5, n7.memoizedState = s5), a6.props = r5, a6.state = s5, a6.context = o6, r5 = i6) : ("function" == typeof a6.componentDidMount && (n7.flags |= 4194308), r5 = false);
    } else {
      a6 = n7.stateNode, Se(e4, n7), c7 = et2(t5, o6 = n7.memoizedProps), a6.props = c7, d4 = n7.pendingProps, f5 = a6.context, s5 = t5.contextType, i6 = Wa, "object" == typeof s5 && null !== s5 && (i6 = O(s5)), (s5 = "function" == typeof (u5 = t5.getDerivedStateFromProps) || "function" == typeof a6.getSnapshotBeforeUpdate) || "function" != typeof a6.UNSAFE_componentWillReceiveProps && "function" != typeof a6.componentWillReceiveProps || (o6 !== d4 || f5 !== i6) && Zn(n7, a6, r5, i6), ru = false, f5 = n7.memoizedState, a6.state = f5, Ce(n7, r5, a6, l5), Ee();
      var p4 = n7.memoizedState;
      o6 !== d4 || f5 !== p4 || ru || null !== e4 && null !== e4.dependencies && A(e4.dependencies) ? ("function" == typeof u5 && (Kn(n7, t5, u5, r5), p4 = n7.memoizedState), (c7 = ru || Xn(n7, t5, c7, r5, f5, p4, i6) || null !== e4 && null !== e4.dependencies && A(e4.dependencies)) ? (s5 || "function" != typeof a6.UNSAFE_componentWillUpdate && "function" != typeof a6.componentWillUpdate || ("function" == typeof a6.componentWillUpdate && a6.componentWillUpdate(r5, p4, i6), "function" == typeof a6.UNSAFE_componentWillUpdate && a6.UNSAFE_componentWillUpdate(r5, p4, i6)), "function" == typeof a6.componentDidUpdate && (n7.flags |= 4), "function" == typeof a6.getSnapshotBeforeUpdate && (n7.flags |= 1024)) : ("function" != typeof a6.componentDidUpdate || o6 === e4.memoizedProps && f5 === e4.memoizedState || (n7.flags |= 4), "function" != typeof a6.getSnapshotBeforeUpdate || o6 === e4.memoizedProps && f5 === e4.memoizedState || (n7.flags |= 1024), n7.memoizedProps = r5, n7.memoizedState = p4), a6.props = r5, a6.state = p4, a6.context = i6, r5 = c7) : ("function" != typeof a6.componentDidUpdate || o6 === e4.memoizedProps && f5 === e4.memoizedState || (n7.flags |= 4), "function" != typeof a6.getSnapshotBeforeUpdate || o6 === e4.memoizedProps && f5 === e4.memoizedState || (n7.flags |= 1024), r5 = false);
    }
    return a6 = r5, ht(e4, n7), r5 = 0 != (128 & n7.flags), a6 || r5 ? (a6 = n7.stateNode, t5 = r5 && "function" != typeof t5.getDerivedStateFromError ? null : a6.render(), n7.flags |= 1, null !== e4 && r5 ? (n7.child = Xo(n7, e4.child, null, l5), n7.child = Xo(n7, null, t5, l5)) : ot(e4, n7, t5, l5), n7.memoizedState = a6.state, e4 = n7.child) : e4 = _t(e4, n7, l5), e4;
  }
  function vt(e4) {
    return { baseLanes: e4, cachePool: te() };
  }
  function St(e4, n7, t5) {
    return e4 = null !== e4 ? e4.childLanes & ~t5 : 0, n7 && (e4 |= ni), e4;
  }
  function kt(e4, n7, t5) {
    var l5, a6 = n7.pendingProps, o6 = false, u5 = 0 != (128 & n7.flags);
    if ((l5 = u5) || (l5 = (null === e4 || null !== e4.memoizedState) && 0 != (2 & su.current)), l5 && (o6 = true, n7.flags &= -129), l5 = 0 != (32 & n7.flags), n7.flags &= -33, null === e4) {
      var i6 = a6.children;
      return a6 = a6.fallback, o6 ? (Ie(), i6 = zt({ mode: "hidden", children: i6 }, o6 = n7.mode), a6 = ul(a6, o6, t5, null), i6.return = n7, a6.return = n7, i6.sibling = a6, n7.child = i6, (a6 = n7.child).memoizedState = vt(t5), a6.childLanes = St(e4, l5, t5), n7.memoizedState = _u, dt(null, a6)) : (Le(n7), wt(n7, i6));
    }
    var s5, c7 = e4.memoizedState;
    if (null !== c7 && null !== (i6 = c7.dehydrated)) {
      if (u5) 256 & n7.flags ? (Le(n7), n7.flags &= -257, n7 = xt(e4, n7, t5)) : null !== n7.memoizedState ? (Ie(), n7.child = e4.child, n7.flags |= 128, n7 = null) : (Ie(), i6 = a6.fallback, o6 = n7.mode, a6 = zt({ mode: "visible", children: a6.children }, o6), (i6 = ul(i6, o6, t5, null)).flags |= 2, a6.return = n7, i6.return = n7, a6.sibling = i6, n7.child = a6, Xo(n7, e4.child, null, t5), (a6 = n7.child).memoizedState = vt(t5), a6.childLanes = St(e4, l5, t5), n7.memoizedState = _u, n7 = dt(null, a6));
      else if (Le(n7), _a2(i6)) l5 = Ta(i6).digest, (a6 = Error(r4(419))).stack = "", a6.digest = l5, s5 = { value: a6, source: null, stack: null }, null === Eo ? Eo = [s5] : Eo.push(s5), n7 = xt(e4, n7, t5);
      else if (Pu || j(e4, n7, t5, false), l5 = 0 != (t5 & e4.childLanes), Pu || l5) {
        if (null !== (l5 = Wu) && 0 !== (a6 = v3(l5, t5)) && a6 !== c7.retryLane) throw c7.retryLane = a6, ge(e4, a6), zr(l5, 0, a6), Cu;
        Pa(i6) || Ur(), n7 = xt(e4, n7, t5);
      } else Pa(i6) ? (n7.flags |= 192, n7.child = e4.child, n7 = null) : (e4 = c7.treeContext, (n7 = wt(n7, a6.children)).flags |= 4096);
      return n7;
    }
    return o6 ? (Ie(), i6 = a6.fallback, o6 = n7.mode, u5 = (c7 = e4.child).sibling, (a6 = ll(c7, { mode: "hidden", children: a6.children })).subtreeFlags = 65011712 & c7.subtreeFlags, null !== u5 ? i6 = ll(u5, i6) : (i6 = ul(i6, o6, t5, null)).flags |= 2, i6.return = n7, a6.return = n7, a6.sibling = i6, n7.child = a6, dt(null, a6), a6 = n7.child, null === (i6 = e4.child.memoizedState) ? i6 = vt(t5) : (null !== (o6 = i6.cachePool) ? (c7 = Lo._currentValue2, o6 = o6.parent !== c7 ? { parent: c7, pool: c7 } : o6) : o6 = te(), i6 = { baseLanes: i6.baseLanes | t5, cachePool: o6 }), a6.memoizedState = i6, a6.childLanes = St(e4, l5, t5), n7.memoizedState = _u, dt(e4.child, a6)) : (Le(n7), e4 = (t5 = e4.child).sibling, (t5 = ll(t5, { mode: "visible", children: a6.children })).return = n7, t5.sibling = null, null !== e4 && (null === (l5 = n7.deletions) ? (n7.deletions = [e4], n7.flags |= 16) : l5.push(e4)), n7.child = t5, n7.memoizedState = null, t5);
  }
  function wt(e4, n7) {
    return (n7 = zt({ mode: "visible", children: n7 }, e4.mode)).return = e4, e4.child = n7;
  }
  function zt(e4, n7) {
    return (e4 = t4(22, e4, null, n7)).lanes = 0, e4;
  }
  function xt(e4, n7, t5) {
    return Xo(n7, e4.child, null, t5), (e4 = wt(n7, n7.pendingProps.children)).flags |= 2, n7.memoizedState = null, e4;
  }
  function Et(e4, n7, t5) {
    e4.lanes |= n7;
    var r5 = e4.alternate;
    null !== r5 && (r5.lanes |= n7), I(e4.return, n7, t5);
  }
  function Ct(e4, n7, t5, r5, l5, a6) {
    var o6 = e4.memoizedState;
    null === o6 ? e4.memoizedState = { isBackwards: n7, rendering: null, renderingStartTime: 0, last: r5, tail: t5, tailMode: l5, treeForkCount: a6 } : (o6.isBackwards = n7, o6.rendering = null, o6.renderingStartTime = 0, o6.last = r5, o6.tail = t5, o6.tailMode = l5, o6.treeForkCount = a6);
  }
  function Pt(e4, n7, t5) {
    var r5 = n7.pendingProps, l5 = r5.revealOrder, a6 = r5.tail;
    r5 = r5.children;
    var o6 = su.current, u5 = 0 != (2 & o6);
    if (u5 ? (o6 = 1 & o6 | 2, n7.flags |= 128) : o6 &= 1, s4(su, o6), ot(e4, n7, r5, t5), r5 = 0, !u5 && null !== e4 && 0 != (128 & e4.flags)) e: for (e4 = n7.child; null !== e4; ) {
      if (13 === e4.tag) null !== e4.memoizedState && Et(e4, t5, n7);
      else if (19 === e4.tag) Et(e4, t5, n7);
      else if (null !== e4.child) {
        e4.child.return = e4, e4 = e4.child;
        continue;
      }
      if (e4 === n7) break e;
      for (; null === e4.sibling; ) {
        if (null === e4.return || e4.return === n7) break e;
        e4 = e4.return;
      }
      e4.sibling.return = e4.return, e4 = e4.sibling;
    }
    switch (l5) {
      case "forwards":
        for (t5 = n7.child, l5 = null; null !== t5; ) null !== (e4 = t5.alternate) && null === je(e4) && (l5 = t5), t5 = t5.sibling;
        null === (t5 = l5) ? (l5 = n7.child, n7.child = null) : (l5 = t5.sibling, t5.sibling = null), Ct(n7, false, l5, t5, a6, r5);
        break;
      case "backwards":
      case "unstable_legacy-backwards":
        for (t5 = null, l5 = n7.child, n7.child = null; null !== l5; ) {
          if (null !== (e4 = l5.alternate) && null === je(e4)) {
            n7.child = l5;
            break;
          }
          e4 = l5.sibling, l5.sibling = t5, t5 = l5, l5 = e4;
        }
        Ct(n7, true, t5, null, a6, r5);
        break;
      case "together":
        Ct(n7, false, null, null, void 0, r5);
        break;
      default:
        n7.memoizedState = null;
    }
    return n7.child;
  }
  function _t(e4, n7, t5) {
    if (null !== e4 && (n7.dependencies = e4.dependencies), Xu |= n7.lanes, 0 == (t5 & n7.childLanes)) {
      if (null === e4) return null;
      if (j(e4, n7, t5, false), 0 == (t5 & n7.childLanes)) return null;
    }
    if (null !== e4 && n7.child !== e4.child) throw Error(r4(153));
    if (null !== n7.child) {
      for (t5 = ll(e4 = n7.child, e4.pendingProps), n7.child = t5, t5.return = n7; null !== e4.sibling; ) e4 = e4.sibling, (t5 = t5.sibling = ll(e4, e4.pendingProps)).return = n7;
      t5.sibling = null;
    }
    return n7.child;
  }
  function Tt(e4, n7) {
    return 0 != (e4.lanes & n7) || !(null === (e4 = e4.dependencies) || !A(e4));
  }
  function Rt(e4, n7, t5) {
    if (null !== e4) if (e4.memoizedProps !== n7.pendingProps) Pu = true;
    else {
      if (!Tt(e4, t5) && 0 == (128 & n7.flags)) return Pu = false, (function(e5, n8, t6) {
        switch (n8.tag) {
          case 3:
            _(n8, n8.stateNode.containerInfo), U(0, Lo, e5.memoizedState.cache);
            break;
          case 27:
          case 5:
            R(n8);
            break;
          case 4:
            _(n8, n8.stateNode.containerInfo);
            break;
          case 10:
            U(0, n8.type, n8.memoizedProps.value);
            break;
          case 31:
            if (null !== n8.memoizedState) return n8.flags |= 128, Ue(n8), null;
            break;
          case 13:
            var r5 = n8.memoizedState;
            if (null !== r5) return null !== r5.dehydrated ? (Le(n8), n8.flags |= 128, null) : 0 != (t6 & n8.child.childLanes) ? kt(e5, n8, t6) : (Le(n8), null !== (e5 = _t(e5, n8, t6)) ? e5.sibling : null);
            Le(n8);
            break;
          case 19:
            var l6 = 0 != (128 & e5.flags);
            if ((r5 = 0 != (t6 & n8.childLanes)) || (j(e5, n8, t6, false), r5 = 0 != (t6 & n8.childLanes)), l6) {
              if (r5) return Pt(e5, n8, t6);
              n8.flags |= 128;
            }
            if (null !== (l6 = n8.memoizedState) && (l6.rendering = null, l6.tail = null, l6.lastEffect = null), s4(su, su.current), r5) break;
            return null;
          case 22:
            return n8.lanes = 0, ct(e5, n8, t6, n8.pendingProps);
          case 24:
            U(0, Lo, e5.memoizedState.cache);
        }
        return _t(e5, n8, t6);
      })(e4, n7, t5);
      Pu = 0 != (131072 & e4.flags);
    }
    else Pu = false;
    switch (n7.lanes = 0, n7.tag) {
      case 16:
        e: {
          var l5 = n7.pendingProps;
          if (e4 = oe(n7.elementType), n7.type = e4, "function" != typeof e4) {
            if (null != e4) {
              var o6 = e4.$$typeof;
              if (o6 === xl) {
                n7.tag = 11, n7 = ut(null, n7, e4, l5, t5);
                break e;
              }
              if (o6 === Pl) {
                n7.tag = 14, n7 = it(null, n7, e4, l5, t5);
                break e;
              }
            }
            throw n7 = a5(e4) || e4, Error(r4(306, n7, ""));
          }
          rl(e4) ? (l5 = et2(e4, l5), n7.tag = 1, n7 = bt(null, n7, e4, l5, t5)) : (n7.tag = 0, n7 = gt(null, n7, e4, l5, t5));
        }
        return n7;
      case 0:
        return gt(e4, n7, n7.type, n7.pendingProps, t5);
      case 1:
        return bt(e4, n7, l5 = n7.type, o6 = et2(l5, n7.pendingProps), t5);
      case 3:
        if (_(n7, n7.stateNode.containerInfo), null === e4) throw Error(r4(387));
        var u5 = n7.pendingProps;
        l5 = (o6 = n7.memoizedState).element, Se(e4, n7), Ce(n7, u5, null, t5);
        var i6 = n7.memoizedState;
        return u5 = i6.cache, U(0, Lo, u5), u5 !== o6.cache && F(n7, [Lo], t5, true), Ee(), (u5 = i6.element) !== l5 ? (ot(e4, n7, u5, t5), n7 = n7.child) : n7 = _t(e4, n7, t5), n7;
      case 26:
      case 27:
      case 5:
        return R(n7), o6 = n7.type, u5 = n7.pendingProps, i6 = null !== e4 ? e4.memoizedProps : null, l5 = u5.children, Ql(o6, u5) ? l5 = null : null !== i6 && Ql(o6, i6) && (n7.flags |= 32), null !== n7.memoizedState && (o6 = Oe(e4, n7, Qe, null, null, t5), ca._currentValue2 = o6), ht(e4, n7), ot(e4, n7, l5, t5), n7.child;
      case 6:
        return null;
      case 13:
        return kt(e4, n7, t5);
      case 4:
        return _(n7, n7.stateNode.containerInfo), l5 = n7.pendingProps, null === e4 ? n7.child = Xo(n7, null, l5, t5) : ot(e4, n7, l5, t5), n7.child;
      case 11:
        return ut(e4, n7, n7.type, n7.pendingProps, t5);
      case 7:
        return ot(e4, n7, n7.pendingProps, t5), n7.child;
      case 8:
      case 12:
        return ot(e4, n7, n7.pendingProps.children, t5), n7.child;
      case 10:
        return l5 = n7.pendingProps, U(0, n7.type, l5.value), ot(e4, n7, l5.children, t5), n7.child;
      case 9:
        return o6 = n7.type._context, l5 = n7.pendingProps.children, H(n7), l5 = l5(o6 = O(o6)), n7.flags |= 1, ot(e4, n7, l5, t5), n7.child;
      case 14:
        return it(e4, n7, n7.type, n7.pendingProps, t5);
      case 15:
        return st(e4, n7, n7.type, n7.pendingProps, t5);
      case 19:
        return Pt(e4, n7, t5);
      case 31:
        return (function(e5, n8, t6) {
          var l6 = n8.pendingProps, a6 = 0 != (128 & n8.flags);
          if (n8.flags &= -129, null === e5) return pt(n8, l6);
          var o7 = e5.memoizedState;
          if (null !== o7) {
            var u6 = o7.dehydrated;
            if (Ue(n8), a6) if (256 & n8.flags) n8.flags &= -257, n8 = mt(e5, n8, t6);
            else {
              if (null === n8.memoizedState) throw Error(r4(558));
              n8.child = e5.child, n8.flags |= 128, n8 = null;
            }
            else if (Pu || j(e5, n8, t6, false), a6 = 0 != (t6 & e5.childLanes), Pu || a6) {
              if (null !== (l6 = Wu) && 0 !== (u6 = v3(l6, t6)) && u6 !== o7.retryLane) throw o7.retryLane = u6, ge(e5, u6), zr(l6, 0, u6), Cu;
              Ur(), n8 = mt(e5, n8, t6);
            } else e5 = o7.treeContext, (n8 = pt(n8, l6)).flags |= 4096;
            return n8;
          }
          return (e5 = ll(e5.child, { mode: l6.mode, children: l6.children })).ref = n8.ref, n8.child = e5, e5.return = n8, e5;
        })(e4, n7, t5);
      case 22:
        return ct(e4, n7, t5, n7.pendingProps);
      case 24:
        return H(n7), l5 = O(Lo), null === e4 ? (null === (o6 = ee()) && (o6 = Wu, u5 = Q(), o6.pooledCache = u5, u5.refCount++, null !== u5 && (o6.pooledCacheLanes |= t5), o6 = u5), n7.memoizedState = { parent: l5, cache: o6 }, ve(n7), U(0, Lo, o6)) : (0 != (e4.lanes & t5) && (Se(e4, n7), Ce(n7, null, null, t5), Ee()), o6 = e4.memoizedState, u5 = n7.memoizedState, o6.parent !== l5 ? (o6 = { parent: l5, cache: l5 }, n7.memoizedState = o6, 0 === n7.lanes && (n7.memoizedState = n7.updateQueue.baseState = o6), U(0, Lo, l5)) : (l5 = u5.cache, U(0, Lo, l5), l5 !== o6.cache && F(n7, [Lo], t5, true))), ot(e4, n7, n7.pendingProps.children, t5), n7.child;
      case 29:
        throw n7.pendingProps;
    }
    throw Error(r4(156, n7.tag));
  }
  function Nt(e4) {
    e4.flags |= 4;
  }
  function Lt(e4, n7, t5, r5, l5) {
    if (0 != (32 & e4.mode) && (null === t5 ? ta(n7, r5) : ra(n7, t5, r5))) {
      if (e4.flags |= 16777216, (335544128 & l5) === l5 || la(n7, r5)) if (aa(e4.stateNode, n7, r5)) e4.flags |= 8192;
      else {
        if (null !== (a6 = uu.current) && ((4194048 & Bu) === Bu ? null !== iu : (62914560 & Bu) !== Bu && 0 == (536870912 & Bu) || a6 !== iu)) throw Go = Yo, Vo;
        e4.flags |= 8192;
      }
    } else e4.flags &= -16777217;
    var a6;
  }
  function Ut(e4, n7) {
    null !== n7 && (e4.flags |= 4), 16384 & e4.flags && (n7 = 22 !== e4.tag ? m3() : 536870912, e4.lanes |= n7, ti |= n7);
  }
  function Dt(e4, n7) {
    switch (e4.tailMode) {
      case "hidden":
        n7 = e4.tail;
        for (var t5 = null; null !== n7; ) null !== n7.alternate && (t5 = n7), n7 = n7.sibling;
        null === t5 ? e4.tail = null : t5.sibling = null;
        break;
      case "collapsed":
        t5 = e4.tail;
        for (var r5 = null; null !== t5; ) null !== t5.alternate && (r5 = t5), t5 = t5.sibling;
        null === r5 ? n7 || null === e4.tail ? e4.tail = null : e4.tail.sibling = null : r5.sibling = null;
    }
  }
  function It(e4) {
    var n7 = null !== e4.alternate && e4.alternate.child === e4.child, t5 = 0, r5 = 0;
    if (n7) for (var l5 = e4.child; null !== l5; ) t5 |= l5.lanes | l5.childLanes, r5 |= 65011712 & l5.subtreeFlags, r5 |= 65011712 & l5.flags, l5.return = e4, l5 = l5.sibling;
    else for (l5 = e4.child; null !== l5; ) t5 |= l5.lanes | l5.childLanes, r5 |= l5.subtreeFlags, r5 |= l5.flags, l5.return = e4, l5 = l5.sibling;
    return e4.subtreeFlags |= r5, e4.childLanes = t5, n7;
  }
  function Ft(e4, n7, t5) {
    var l5 = n7.pendingProps;
    switch (P(n7), n7.tag) {
      case 16:
      case 15:
      case 0:
      case 11:
      case 7:
      case 8:
      case 12:
      case 9:
      case 14:
      case 1:
        return It(n7), null;
      case 3:
        return t5 = n7.stateNode, l5 = null, null !== e4 && (l5 = e4.memoizedState.cache), n7.memoizedState.cache !== l5 && (n7.flags |= 2048), D(Lo), T(), t5.pendingContext && (t5.context = t5.pendingContext, t5.pendingContext = null), null !== e4 && null !== e4.child || null === e4 || e4.memoizedState.isDehydrated && 0 == (256 & n7.flags) || (n7.flags |= 1024, L()), It(n7), null;
      case 26:
        var a6, o6;
      case 27:
      case 5:
        if (N(n7), a6 = n7.type, null !== e4 && null != n7.stateNode) !(function(e5, n8, t6, r5) {
          e5.memoizedProps !== r5 && Nt(n8);
        })(e4, n7, 0, l5);
        else {
          if (!l5) {
            if (null === n7.stateNode) throw Error(r4(166));
            return It(n7), null;
          }
          o6 = So.current;
          var u5 = Ol(a6, l5, wo.current, o6, n7);
          !(function(e5, n8, t6, r5) {
            for (t6 = n8.child; null !== t6; ) {
              if (5 === t6.tag || 6 === t6.tag) Ml(e5, t6.stateNode);
              else if (4 !== t6.tag && !Ha && null !== t6.child) {
                t6.child.return = t6, t6 = t6.child;
                continue;
              }
              if (t6 === n8) break;
              for (; null === t6.sibling; ) {
                if (null === t6.return || t6.return === n8) return;
                t6 = t6.return;
              }
              t6.sibling.return = t6.return, t6 = t6.sibling;
            }
          })(u5, n7, false), n7.stateNode = u5, Wl(u5, a6, l5, o6) && Nt(n7);
        }
        return It(n7), Lt(n7, n7.type, null === e4 ? null : e4.memoizedProps, n7.pendingProps, t5), null;
      case 6:
        if (e4 && null != n7.stateNode) (t5 = e4.memoizedProps) !== l5 && Nt(n7);
        else {
          if ("string" != typeof l5 && null === n7.stateNode) throw Error(r4(166));
          e4 = wo.current, t5 = So.current, n7.stateNode = Bl(l5, e4, t5, n7);
        }
        return It(n7), null;
      case 31:
        if (t5 = n7.memoizedState, null === e4 || null !== e4.memoizedState) {
          if (l5 = false, null !== t5) {
            if (null === e4) {
              if (!l5) throw Error(r4(318));
              throw Error(r4(556));
            }
            0 == (128 & n7.flags) && (n7.memoizedState = null), n7.flags |= 4, It(n7), e4 = false;
          } else t5 = L(), null !== e4 && null !== e4.memoizedState && (e4.memoizedState.hydrationErrors = t5), e4 = true;
          if (!e4) return 256 & n7.flags ? (Fe(n7), n7) : (Fe(n7), null);
          if (0 != (128 & n7.flags)) throw Error(r4(558));
        }
        return It(n7), null;
      case 13:
        if (l5 = n7.memoizedState, null === e4 || null !== e4.memoizedState && null !== e4.memoizedState.dehydrated) {
          if (a6 = false, null !== l5 && null !== l5.dehydrated) {
            if (null === e4) {
              if (!a6) throw Error(r4(318));
              throw Error(r4(344));
            }
            0 == (128 & n7.flags) && (n7.memoizedState = null), n7.flags |= 4, It(n7), a6 = false;
          } else a6 = L(), null !== e4 && null !== e4.memoizedState && (e4.memoizedState.hydrationErrors = a6), a6 = true;
          if (!a6) return 256 & n7.flags ? (Fe(n7), n7) : (Fe(n7), null);
        }
        return Fe(n7), 0 != (128 & n7.flags) ? (n7.lanes = t5, n7) : (t5 = null !== l5, e4 = null !== e4 && null !== e4.memoizedState, t5 && (a6 = null, null !== (l5 = n7.child).alternate && null !== l5.alternate.memoizedState && null !== l5.alternate.memoizedState.cachePool && (a6 = l5.alternate.memoizedState.cachePool.pool), o6 = null, null !== l5.memoizedState && null !== l5.memoizedState.cachePool && (o6 = l5.memoizedState.cachePool.pool), o6 !== a6 && (l5.flags |= 2048)), t5 !== e4 && t5 && (n7.child.flags |= 8192), Ut(n7, n7.updateQueue), It(n7), null);
      case 4:
        return T(), null === e4 && Jl(n7.stateNode.containerInfo), It(n7), null;
      case 10:
        return D(n7.type), It(n7), null;
      case 19:
        if (i5(su), null === (l5 = n7.memoizedState)) return It(n7), null;
        if (a6 = 0 != (128 & n7.flags), null === (o6 = l5.rendering)) if (a6) Dt(l5, false);
        else {
          if (0 !== Ku || null !== e4 && 0 != (128 & e4.flags)) for (e4 = n7.child; null !== e4; ) {
            if (null !== (o6 = je(e4))) {
              for (n7.flags |= 128, Dt(l5, false), e4 = o6.updateQueue, n7.updateQueue = e4, Ut(n7, e4), n7.subtreeFlags = 0, e4 = t5, t5 = n7.child; null !== t5; ) al(t5, e4), t5 = t5.sibling;
              return s4(su, 1 & su.current | 2), n7.child;
            }
            e4 = e4.sibling;
          }
          null !== l5.tail && Za() > ii && (n7.flags |= 128, a6 = true, Dt(l5, false), n7.lanes = 4194304);
        }
        else {
          if (!a6) if (null !== (e4 = je(o6))) {
            if (n7.flags |= 128, a6 = true, e4 = e4.updateQueue, n7.updateQueue = e4, Ut(n7, e4), Dt(l5, true), null === l5.tail && "hidden" === l5.tailMode && !o6.alternate) return It(n7), null;
          } else 2 * Za() - l5.renderingStartTime > ii && 536870912 !== t5 && (n7.flags |= 128, a6 = true, Dt(l5, false), n7.lanes = 4194304);
          l5.isBackwards ? (o6.sibling = n7.child, n7.child = o6) : (null !== (e4 = l5.last) ? e4.sibling = o6 : n7.child = o6, l5.last = o6);
        }
        return null !== l5.tail ? (e4 = l5.tail, l5.rendering = e4, l5.tail = e4.sibling, l5.renderingStartTime = Za(), e4.sibling = null, t5 = su.current, s4(su, a6 ? 1 & t5 | 2 : 1 & t5), e4) : (It(n7), null);
      case 22:
      case 23:
        return Fe(n7), Ne(), l5 = null !== n7.memoizedState, null !== e4 ? null !== e4.memoizedState !== l5 && (n7.flags |= 8192) : l5 && (n7.flags |= 8192), l5 ? 0 != (536870912 & t5) && 0 == (128 & n7.flags) && (It(n7), 6 & n7.subtreeFlags && (n7.flags |= 8192)) : It(n7), null !== (t5 = n7.updateQueue) && Ut(n7, t5.retryQueue), t5 = null, null !== e4 && null !== e4.memoizedState && null !== e4.memoizedState.cachePool && (t5 = e4.memoizedState.cachePool.pool), l5 = null, null !== n7.memoizedState && null !== n7.memoizedState.cachePool && (l5 = n7.memoizedState.cachePool.pool), l5 !== t5 && (n7.flags |= 2048), null !== e4 && i5(Bo), null;
      case 24:
        return t5 = null, null !== e4 && (t5 = e4.memoizedState.cache), n7.memoizedState.cache !== t5 && (n7.flags |= 2048), D(Lo), It(n7), null;
      case 25:
      case 30:
        return null;
    }
    throw Error(r4(156, n7.tag));
  }
  function jt(e4, n7) {
    switch (P(n7), n7.tag) {
      case 1:
        return 65536 & (e4 = n7.flags) ? (n7.flags = -65537 & e4 | 128, n7) : null;
      case 3:
        return D(Lo), T(), 0 != (65536 & (e4 = n7.flags)) && 0 == (128 & e4) ? (n7.flags = -65537 & e4 | 128, n7) : null;
      case 26:
      case 27:
      case 5:
        return N(n7), null;
      case 31:
        if (null !== n7.memoizedState && (Fe(n7), null === n7.alternate)) throw Error(r4(340));
        return 65536 & (e4 = n7.flags) ? (n7.flags = -65537 & e4 | 128, n7) : null;
      case 13:
        if (Fe(n7), null !== (e4 = n7.memoizedState) && null !== e4.dehydrated && null === n7.alternate) throw Error(r4(340));
        return 65536 & (e4 = n7.flags) ? (n7.flags = -65537 & e4 | 128, n7) : null;
      case 19:
        return i5(su), null;
      case 4:
        return T(), null;
      case 10:
        return D(n7.type), null;
      case 22:
      case 23:
        return Fe(n7), Ne(), null !== e4 && i5(Bo), 65536 & (e4 = n7.flags) ? (n7.flags = -65537 & e4 | 128, n7) : null;
      case 24:
        return D(Lo), null;
      default:
        return null;
    }
  }
  function At(e4, n7) {
    switch (P(n7), n7.tag) {
      case 3:
        D(Lo), T();
        break;
      case 26:
      case 27:
      case 5:
        N(n7);
        break;
      case 4:
        T();
        break;
      case 31:
        null !== n7.memoizedState && Fe(n7);
        break;
      case 13:
        Fe(n7);
        break;
      case 19:
        i5(su);
        break;
      case 10:
        D(n7.type);
        break;
      case 22:
      case 23:
        Fe(n7), Ne(), null !== e4 && i5(Bo);
        break;
      case 24:
        D(Lo);
    }
  }
  function Ht(e4, n7) {
    try {
      var t5 = n7.updateQueue, r5 = null !== t5 ? t5.lastEffect : null;
      if (null !== r5) {
        var l5 = r5.next;
        t5 = l5;
        do {
          if ((t5.tag & e4) === e4) {
            r5 = void 0;
            var a6 = t5.create, o6 = t5.inst;
            r5 = a6(), o6.destroy = r5;
          }
          t5 = t5.next;
        } while (t5 !== l5);
      }
    } catch (e5) {
      Jr(n7, n7.return, e5);
    }
  }
  function Ot(e4, n7, t5) {
    try {
      var r5 = n7.updateQueue, l5 = null !== r5 ? r5.lastEffect : null;
      if (null !== l5) {
        var a6 = l5.next;
        r5 = a6;
        do {
          if ((r5.tag & e4) === e4) {
            var o6 = r5.inst, u5 = o6.destroy;
            if (void 0 !== u5) {
              o6.destroy = void 0, l5 = n7;
              var i6 = t5, s5 = u5;
              try {
                s5();
              } catch (e5) {
                Jr(l5, i6, e5);
              }
            }
          }
          r5 = r5.next;
        } while (r5 !== a6);
      }
    } catch (e5) {
      Jr(n7, n7.return, e5);
    }
  }
  function Mt(e4) {
    var n7 = e4.updateQueue;
    if (null !== n7) {
      var t5 = e4.stateNode;
      try {
        _e(n7, t5);
      } catch (n8) {
        Jr(e4, e4.return, n8);
      }
    }
  }
  function Wt(e4, n7, t5) {
    t5.props = et2(e4.type, e4.memoizedProps), t5.state = e4.memoizedState;
    try {
      t5.componentWillUnmount();
    } catch (t6) {
      Jr(e4, n7, t6);
    }
  }
  function Qt(e4, n7) {
    try {
      var t5 = e4.ref;
      if (null !== t5) {
        switch (e4.tag) {
          case 26:
          case 27:
          case 5:
            var r5 = Il(e4.stateNode);
            break;
          default:
            r5 = e4.stateNode;
        }
        "function" == typeof t5 ? e4.refCleanup = t5(r5) : t5.current = r5;
      }
    } catch (t6) {
      Jr(e4, n7, t6);
    }
  }
  function Bt(e4, n7) {
    var t5 = e4.ref, r5 = e4.refCleanup;
    if (null !== t5) if ("function" == typeof r5) try {
      r5();
    } catch (t6) {
      Jr(e4, n7, t6);
    } finally {
      e4.refCleanup = null, null != (e4 = e4.alternate) && (e4.refCleanup = null);
    }
    else if ("function" == typeof t5) try {
      t5(null);
    } catch (t6) {
      Jr(e4, n7, t6);
    }
    else t5.current = null;
  }
  function $t(e4) {
    var n7 = e4.type, t5 = e4.memoizedProps, r5 = e4.stateNode;
    try {
      ha(r5, n7, t5, e4);
    } catch (n8) {
      Jr(e4, e4.return, n8);
    }
  }
  function Vt(e4) {
    return 5 === e4.tag || 3 === e4.tag || 4 === e4.tag;
  }
  function qt(e4) {
    e: for (; ; ) {
      for (; null === e4.sibling; ) {
        if (null === e4.return || Vt(e4.return)) return null;
        e4 = e4.return;
      }
      for (e4.sibling.return = e4.return, e4 = e4.sibling; 5 !== e4.tag && 6 !== e4.tag && 18 !== e4.tag; ) {
        if (2 & e4.flags) continue e;
        if (null === e4.child || 4 === e4.tag) continue e;
        e4.child.return = e4, e4 = e4.child;
      }
      if (!(2 & e4.flags)) return e4.stateNode;
    }
  }
  function Yt(e4, n7, t5) {
    var r5 = e4.tag;
    if (5 === r5 || 6 === r5) e4 = e4.stateNode, n7 ? ba(t5, e4, n7) : pa(t5, e4);
    else if (4 !== r5 && null !== (e4 = e4.child)) for (Yt(e4, n7, t5), e4 = e4.sibling; null !== e4; ) Yt(e4, n7, t5), e4 = e4.sibling;
  }
  function Gt(e4, n7, t5) {
    var r5 = e4.tag;
    if (5 === r5 || 6 === r5) e4 = e4.stateNode, n7 ? ya(t5, e4, n7) : fa(t5, e4);
    else if (4 !== r5 && null !== (e4 = e4.child)) for (Gt(e4, n7, t5), e4 = e4.sibling; null !== e4; ) Gt(e4, n7, t5), e4 = e4.sibling;
  }
  function Jt(e4, n7, t5) {
    var r5 = t5.flags;
    switch (t5.tag) {
      case 0:
      case 11:
      case 15:
        ar(e4, t5), 4 & r5 && Ht(5, t5);
        break;
      case 1:
        if (ar(e4, t5), 4 & r5) if (e4 = t5.stateNode, null === n7) try {
          e4.componentDidMount();
        } catch (e5) {
          Jr(t5, t5.return, e5);
        }
        else {
          var l5 = et2(t5.type, n7.memoizedProps);
          n7 = n7.memoizedState;
          try {
            e4.componentDidUpdate(l5, n7, e4.__reactInternalSnapshotBeforeUpdate);
          } catch (e5) {
            Jr(t5, t5.return, e5);
          }
        }
        64 & r5 && Mt(t5), 512 & r5 && Qt(t5, t5.return);
        break;
      case 3:
        if (ar(e4, t5), 64 & r5 && null !== (r5 = t5.updateQueue)) {
          if (e4 = null, null !== t5.child) switch (t5.child.tag) {
            case 27:
            case 5:
              e4 = Il(t5.child.stateNode);
              break;
            case 1:
              e4 = t5.child.stateNode;
          }
          try {
            _e(r5, e4);
          } catch (e5) {
            Jr(t5, t5.return, e5);
          }
        }
        break;
      case 27:
      case 26:
      case 5:
        if (ar(e4, t5), null === n7) {
          if (4 & r5) $t(t5);
          else if (64 & r5) {
            e4 = t5.type, n7 = t5.memoizedProps, l5 = t5.stateNode;
            try {
              Na(l5, e4, n7, t5);
            } catch (e5) {
              Jr(t5, t5.return, e5);
            }
          }
        }
        512 & r5 && Qt(t5, t5.return);
        break;
      case 12:
      case 31:
      default:
        ar(e4, t5);
        break;
      case 13:
        ar(e4, t5), 64 & r5 && null !== (r5 = t5.memoizedState) && null !== (r5 = r5.dehydrated) && (t5 = el.bind(null, t5), Ra(r5, t5));
        break;
      case 22:
        if (!(r5 = null !== t5.memoizedState || Tu)) {
          n7 = null !== n7 && null !== n7.memoizedState || Ru, l5 = Tu;
          var a6 = Ru;
          Tu = r5, (Ru = n7) && !a6 ? ur(e4, t5, 0 != (8772 & t5.subtreeFlags)) : ar(e4, t5), Tu = l5, Ru = a6;
        }
      case 30:
    }
  }
  function Kt(e4) {
    var n7 = e4.alternate;
    null !== n7 && (e4.alternate = null, Kt(n7)), e4.child = null, e4.deletions = null, e4.sibling = null, 5 === e4.tag && null !== (n7 = e4.stateNode) && na(n7), e4.stateNode = null, e4.return = null, e4.dependencies = null, e4.memoizedProps = null, e4.memoizedState = null, e4.pendingProps = null, e4.stateNode = null, e4.updateQueue = null;
  }
  function Xt(e4, n7, t5) {
    for (t5 = t5.child; null !== t5; ) Zt(e4, n7, t5), t5 = t5.sibling;
  }
  function Zt(e4, n7, t5) {
    switch (t5.tag) {
      case 26:
      case 27:
        var r5, l5;
      case 5:
        Ru || Bt(t5, n7);
      case 6:
        if (r5 = Du, l5 = Iu, Du = null, Xt(e4, n7, t5), Iu = l5, null !== (Du = r5)) if (Iu) try {
          Sa(Du, t5.stateNode);
        } catch (e5) {
          Jr(t5, n7, e5);
        }
        else try {
          va(Du, t5.stateNode);
        } catch (e5) {
          Jr(t5, n7, e5);
        }
        break;
      case 18:
        null !== Du && (Iu ? Ua(Du, t5.stateNode) : La(Du, t5.stateNode));
        break;
      case 4:
        r5 = Du, l5 = Iu, Du = t5.stateNode.containerInfo, Iu = true, Xt(e4, n7, t5), Du = r5, Iu = l5;
        break;
      case 0:
      case 11:
      case 14:
      case 15:
        Ot(2, t5, n7), Ru || Ot(4, t5, n7), Xt(e4, n7, t5);
        break;
      case 1:
        Ru || (Bt(t5, n7), "function" == typeof (r5 = t5.stateNode).componentWillUnmount && Wt(t5, n7, r5)), Xt(e4, n7, t5);
        break;
      case 21:
        Xt(e4, n7, t5);
        break;
      case 22:
        Ru = (r5 = Ru) || null !== t5.memoizedState, Xt(e4, n7, t5), Ru = r5;
        break;
      default:
        Xt(e4, n7, t5);
    }
  }
  function er(e4, n7) {
    var t5 = (function(e5) {
      switch (e5.tag) {
        case 31:
        case 13:
        case 19:
          var n8 = e5.stateNode;
          return null === n8 && (n8 = e5.stateNode = new Lu()), n8;
        case 22:
          return null === (n8 = (e5 = e5.stateNode)._retryCache) && (n8 = e5._retryCache = new Lu()), n8;
        default:
          throw Error(r4(435, e5.tag));
      }
    })(e4);
    n7.forEach((function(n8) {
      if (!t5.has(n8)) {
        t5.add(n8);
        var r5 = nl.bind(null, e4, n8);
        n8.then(r5, r5);
      }
    }));
  }
  function nr(e4, n7) {
    var t5 = n7.deletions;
    if (null !== t5) for (var l5 = 0; l5 < t5.length; l5++) {
      var a6 = t5[l5], o6 = e4, u5 = n7, i6 = u5;
      e: for (; null !== i6; ) {
        switch (i6.tag) {
          case 27:
          case 5:
            Du = i6.stateNode, Iu = false;
            break e;
          case 3:
          case 4:
            Du = i6.stateNode.containerInfo, Iu = true;
            break e;
        }
        i6 = i6.return;
      }
      if (null === Du) throw Error(r4(160));
      Zt(o6, u5, a6), Du = null, Iu = false, null !== (o6 = a6.alternate) && (o6.return = null), a6.return = null;
    }
    if (13886 & n7.subtreeFlags) for (n7 = n7.child; null !== n7; ) tr(n7, e4), n7 = n7.sibling;
  }
  function tr(e4, n7) {
    var t5 = e4.alternate, l5 = e4.flags;
    switch (e4.tag) {
      case 0:
      case 11:
      case 14:
      case 15:
        nr(n7, e4), rr(e4), 4 & l5 && (Ot(3, e4, e4.return), Ht(3, e4), Ot(5, e4, e4.return));
        break;
      case 1:
        nr(n7, e4), rr(e4), 512 & l5 && (Ru || null === t5 || Bt(t5, t5.return)), 64 & l5 && Tu && null !== (e4 = e4.updateQueue) && null !== (l5 = e4.callbacks) && (t5 = e4.shared.hiddenCallbacks, e4.shared.hiddenCallbacks = null === t5 ? l5 : t5.concat(l5));
        break;
      case 26:
        var a6, o6;
      case 27:
      case 5:
        if (nr(n7, e4), rr(e4), 512 & l5 && (Ru || null === t5 || Bt(t5, t5.return)), 32 & e4.flags) {
          a6 = e4.stateNode;
          try {
            ka(a6);
          } catch (n8) {
            Jr(e4, e4.return, n8);
          }
        }
        4 & l5 && null != e4.stateNode && (function(e5, n8, t6) {
          try {
            ga(e5.stateNode, e5.type, t6, n8, e5);
          } catch (n9) {
            Jr(e5, e5.return, n9);
          }
        })(e4, a6 = e4.memoizedProps, null !== t5 ? t5.memoizedProps : a6), 1024 & l5 && (Nu = true);
        break;
      case 6:
        if (nr(n7, e4), rr(e4), 4 & l5 && Yl) {
          if (null === e4.stateNode) throw Error(r4(162));
          l5 = e4.memoizedProps, t5 = null !== t5 ? t5.memoizedProps : l5, a6 = e4.stateNode;
          try {
            ma(a6, t5, l5);
          } catch (n8) {
            Jr(e4, e4.return, n8);
          }
        }
        break;
      case 3:
        nr(n7, e4), rr(e4), Nu && (Nu = false, lr(e4));
        break;
      case 4:
      case 12:
        nr(n7, e4), rr(e4);
        break;
      case 31:
        nr(n7, e4), rr(e4), 4 & l5 && null !== (l5 = e4.updateQueue) && (e4.updateQueue = null, er(e4, l5));
        break;
      case 13:
        nr(n7, e4), rr(e4), 8192 & e4.child.flags && null !== e4.memoizedState != (null !== t5 && null !== t5.memoizedState) && (oi = Za()), 4 & l5 && null !== (l5 = e4.updateQueue) && (e4.updateQueue = null, er(e4, l5));
        break;
      case 22:
        a6 = null !== e4.memoizedState;
        var u5 = null !== t5 && null !== t5.memoizedState, i6 = Tu, s5 = Ru;
        if (Tu = i6 || a6, Ru = s5 || u5, nr(n7, e4), Ru = s5, Tu = i6, rr(e4), 8192 & l5 && ((n7 = e4.stateNode)._visibility = a6 ? -2 & n7._visibility : 1 | n7._visibility, a6 && (null === t5 || u5 || Tu || Ru || or(e4)), Yl)) {
          e: if (t5 = null, Yl) for (n7 = e4; ; ) {
            if (5 === n7.tag || Fa) {
              if (null === t5) {
                u5 = t5 = n7;
                try {
                  o6 = u5.stateNode, a6 ? wa(o6) : xa(u5.stateNode, u5.memoizedProps);
                } catch (e5) {
                  Jr(u5, u5.return, e5);
                }
              }
            } else if (6 === n7.tag) {
              if (null === t5) {
                u5 = n7;
                try {
                  var c7 = u5.stateNode;
                  a6 ? za(c7) : Ea(c7, u5.memoizedProps);
                } catch (e5) {
                  Jr(u5, u5.return, e5);
                }
              }
            } else if (18 === n7.tag) {
              if (null === t5) {
                u5 = n7;
                try {
                  var d4 = u5.stateNode;
                  a6 ? Da(d4) : Ia(u5.stateNode);
                } catch (e5) {
                  Jr(u5, u5.return, e5);
                }
              }
            } else if ((22 !== n7.tag && 23 !== n7.tag || null === n7.memoizedState || n7 === e4) && null !== n7.child) {
              n7.child.return = n7, n7 = n7.child;
              continue;
            }
            if (n7 === e4) break e;
            for (; null === n7.sibling; ) {
              if (null === n7.return || n7.return === e4) break e;
              t5 === n7 && (t5 = null), n7 = n7.return;
            }
            t5 === n7 && (t5 = null), n7.sibling.return = n7.return, n7 = n7.sibling;
          }
        }
        4 & l5 && null !== (l5 = e4.updateQueue) && null !== (t5 = l5.retryQueue) && (l5.retryQueue = null, er(e4, t5));
        break;
      case 19:
        nr(n7, e4), rr(e4), 4 & l5 && null !== (l5 = e4.updateQueue) && (e4.updateQueue = null, er(e4, l5));
        break;
      case 30:
      case 21:
        break;
      default:
        nr(n7, e4), rr(e4);
    }
  }
  function rr(e4) {
    var n7 = e4.flags;
    if (2 & n7) {
      try {
        for (var t5, l5 = e4.return; null !== l5; ) {
          if (Vt(l5)) {
            t5 = l5;
            break;
          }
          l5 = l5.return;
        }
        if (Yl) {
          if (null == t5) throw Error(r4(160));
          switch (t5.tag) {
            case 27:
            case 5:
              var a6 = t5.stateNode;
              32 & t5.flags && (ka(a6), t5.flags &= -33), Gt(e4, qt(e4), a6);
              break;
            case 3:
            case 4:
              var o6 = t5.stateNode.containerInfo;
              Yt(e4, qt(e4), o6);
              break;
            default:
              throw Error(r4(161));
          }
        }
      } catch (n8) {
        Jr(e4, e4.return, n8);
      }
      e4.flags &= -3;
    }
    4096 & n7 && (e4.flags &= -4097);
  }
  function lr(e4) {
    if (1024 & e4.subtreeFlags) for (e4 = e4.child; null !== e4; ) {
      var n7 = e4;
      lr(n7), 5 === n7.tag && 1024 & n7.flags && da(n7.stateNode), e4 = e4.sibling;
    }
  }
  function ar(e4, n7) {
    if (8772 & n7.subtreeFlags) for (n7 = n7.child; null !== n7; ) Jt(e4, n7.alternate, n7), n7 = n7.sibling;
  }
  function or(e4) {
    for (e4 = e4.child; null !== e4; ) {
      var n7 = e4;
      switch (n7.tag) {
        case 0:
        case 11:
        case 14:
        case 15:
          Ot(4, n7, n7.return), or(n7);
          break;
        case 1:
          Bt(n7, n7.return);
          var t5 = n7.stateNode;
          "function" == typeof t5.componentWillUnmount && Wt(n7, n7.return, t5), or(n7);
          break;
        case 27:
        case 26:
        case 5:
          Bt(n7, n7.return), or(n7);
          break;
        case 22:
          null === n7.memoizedState && or(n7);
          break;
        default:
          or(n7);
      }
      e4 = e4.sibling;
    }
  }
  function ur(e4, n7, t5) {
    for (t5 = t5 && 0 != (8772 & n7.subtreeFlags), n7 = n7.child; null !== n7; ) {
      var r5 = n7.alternate, l5 = e4, a6 = n7, o6 = a6.flags;
      switch (a6.tag) {
        case 0:
        case 11:
        case 15:
          ur(l5, a6, t5), Ht(4, a6);
          break;
        case 1:
          if (ur(l5, a6, t5), "function" == typeof (l5 = (r5 = a6).stateNode).componentDidMount) try {
            l5.componentDidMount();
          } catch (e5) {
            Jr(r5, r5.return, e5);
          }
          if (null !== (l5 = (r5 = a6).updateQueue)) {
            var u5 = r5.stateNode;
            try {
              var i6 = l5.shared.hiddenCallbacks;
              if (null !== i6) for (l5.shared.hiddenCallbacks = null, l5 = 0; l5 < i6.length; l5++) Pe(i6[l5], u5);
            } catch (e5) {
              Jr(r5, r5.return, e5);
            }
          }
          t5 && 64 & o6 && Mt(a6), Qt(a6, a6.return);
          break;
        case 27:
        case 26:
        case 5:
          ur(l5, a6, t5), t5 && null === r5 && 4 & o6 && $t(a6), Qt(a6, a6.return);
          break;
        case 12:
        case 31:
        case 13:
        default:
          ur(l5, a6, t5);
          break;
        case 22:
          null === a6.memoizedState && ur(l5, a6, t5), Qt(a6, a6.return);
        case 30:
      }
      n7 = n7.sibling;
    }
  }
  function ir(e4, n7) {
    var t5 = null;
    null !== e4 && null !== e4.memoizedState && null !== e4.memoizedState.cachePool && (t5 = e4.memoizedState.cachePool.pool), e4 = null, null !== n7.memoizedState && null !== n7.memoizedState.cachePool && (e4 = n7.memoizedState.cachePool.pool), e4 !== t5 && (null != e4 && e4.refCount++, null != t5 && B(t5));
  }
  function sr(e4, n7) {
    e4 = null, null !== n7.alternate && (e4 = n7.alternate.memoizedState.cache), (n7 = n7.memoizedState.cache) !== e4 && (n7.refCount++, null != e4 && B(e4));
  }
  function cr(e4, n7, t5, r5) {
    if (10256 & n7.subtreeFlags) for (n7 = n7.child; null !== n7; ) dr(e4, n7, t5, r5), n7 = n7.sibling;
  }
  function dr(e4, n7, t5, r5) {
    var l5 = n7.flags;
    switch (n7.tag) {
      case 0:
      case 11:
      case 15:
        cr(e4, n7, t5, r5), 2048 & l5 && Ht(9, n7);
        break;
      case 1:
      case 31:
      case 13:
      default:
        cr(e4, n7, t5, r5);
        break;
      case 3:
        cr(e4, n7, t5, r5), 2048 & l5 && (e4 = null, null !== n7.alternate && (e4 = n7.alternate.memoizedState.cache), (n7 = n7.memoizedState.cache) !== e4 && (n7.refCount++, null != e4 && B(e4)));
        break;
      case 12:
        if (2048 & l5) {
          cr(e4, n7, t5, r5), e4 = n7.stateNode;
          try {
            var a6 = n7.memoizedProps, o6 = a6.id, u5 = a6.onPostCommit;
            "function" == typeof u5 && u5(o6, null === n7.alternate ? "mount" : "update", e4.passiveEffectDuration, -0);
          } catch (e5) {
            Jr(n7, n7.return, e5);
          }
        } else cr(e4, n7, t5, r5);
        break;
      case 23:
        break;
      case 22:
        a6 = n7.stateNode, o6 = n7.alternate, null !== n7.memoizedState ? 2 & a6._visibility ? cr(e4, n7, t5, r5) : pr(e4, n7) : 2 & a6._visibility ? cr(e4, n7, t5, r5) : (a6._visibility |= 2, fr(e4, n7, t5, r5, 0 != (10256 & n7.subtreeFlags) || false)), 2048 & l5 && ir(o6, n7);
        break;
      case 24:
        cr(e4, n7, t5, r5), 2048 & l5 && sr(n7.alternate, n7);
    }
  }
  function fr(e4, n7, t5, r5, l5) {
    for (l5 = l5 && (0 != (10256 & n7.subtreeFlags) || false), n7 = n7.child; null !== n7; ) {
      var a6 = e4, o6 = n7, u5 = t5, i6 = r5, s5 = o6.flags;
      switch (o6.tag) {
        case 0:
        case 11:
        case 15:
          fr(a6, o6, u5, i6, l5), Ht(8, o6);
          break;
        case 23:
          break;
        case 22:
          var c7 = o6.stateNode;
          null !== o6.memoizedState ? 2 & c7._visibility ? fr(a6, o6, u5, i6, l5) : pr(a6, o6) : (c7._visibility |= 2, fr(a6, o6, u5, i6, l5)), l5 && 2048 & s5 && ir(o6.alternate, o6);
          break;
        case 24:
          fr(a6, o6, u5, i6, l5), l5 && 2048 & s5 && sr(o6.alternate, o6);
          break;
        default:
          fr(a6, o6, u5, i6, l5);
      }
      n7 = n7.sibling;
    }
  }
  function pr(e4, n7) {
    if (10256 & n7.subtreeFlags) for (n7 = n7.child; null !== n7; ) {
      var t5 = e4, r5 = n7, l5 = r5.flags;
      switch (r5.tag) {
        case 22:
          pr(t5, r5), 2048 & l5 && ir(r5.alternate, r5);
          break;
        case 24:
          pr(t5, r5), 2048 & l5 && sr(r5.alternate, r5);
          break;
        default:
          pr(t5, r5);
      }
      n7 = n7.sibling;
    }
  }
  function mr(e4, n7, t5) {
    if (e4.subtreeFlags & ju) for (e4 = e4.child; null !== e4; ) hr(e4, n7, t5), e4 = e4.sibling;
  }
  function hr(e4, n7, t5) {
    switch (e4.tag) {
      case 26:
        if (mr(e4, n7, t5), e4.flags & ju) if (null !== e4.memoizedState) Aa(t5, Fu, e4.memoizedState, e4.memoizedProps);
        else {
          var r5 = e4.stateNode, l5 = e4.type;
          e4 = e4.memoizedProps, ((335544128 & n7) === n7 || la(l5, e4)) && ua(t5, r5, l5, e4);
        }
        break;
      case 5:
        mr(e4, n7, t5), e4.flags & ju && (r5 = e4.stateNode, l5 = e4.type, e4 = e4.memoizedProps, ((335544128 & n7) === n7 || la(l5, e4)) && ua(t5, r5, l5, e4));
        break;
      case 3:
      case 4:
      default:
        mr(e4, n7, t5);
        break;
      case 22:
        null === e4.memoizedState && (null !== (r5 = e4.alternate) && null !== r5.memoizedState ? (r5 = ju, ju = 16777216, mr(e4, n7, t5), ju = r5) : mr(e4, n7, t5));
    }
  }
  function gr(e4) {
    var n7 = e4.alternate;
    if (null !== n7 && null !== (e4 = n7.child)) {
      n7.child = null;
      do {
        n7 = e4.sibling, e4.sibling = null, e4 = n7;
      } while (null !== e4);
    }
  }
  function yr(e4) {
    var n7 = e4.deletions;
    if (0 != (16 & e4.flags)) {
      if (null !== n7) for (var t5 = 0; t5 < n7.length; t5++) {
        var r5 = n7[t5];
        Uu = r5, Sr(r5, e4);
      }
      gr(e4);
    }
    if (10256 & e4.subtreeFlags) for (e4 = e4.child; null !== e4; ) br(e4), e4 = e4.sibling;
  }
  function br(e4) {
    switch (e4.tag) {
      case 0:
      case 11:
      case 15:
        yr(e4), 2048 & e4.flags && Ot(9, e4, e4.return);
        break;
      case 3:
      case 12:
      default:
        yr(e4);
        break;
      case 22:
        var n7 = e4.stateNode;
        null !== e4.memoizedState && 2 & n7._visibility && (null === e4.return || 13 !== e4.return.tag) ? (n7._visibility &= -3, vr(e4)) : yr(e4);
    }
  }
  function vr(e4) {
    var n7 = e4.deletions;
    if (0 != (16 & e4.flags)) {
      if (null !== n7) for (var t5 = 0; t5 < n7.length; t5++) {
        var r5 = n7[t5];
        Uu = r5, Sr(r5, e4);
      }
      gr(e4);
    }
    for (e4 = e4.child; null !== e4; ) {
      switch ((n7 = e4).tag) {
        case 0:
        case 11:
        case 15:
          Ot(8, n7, n7.return), vr(n7);
          break;
        case 22:
          2 & (t5 = n7.stateNode)._visibility && (t5._visibility &= -3, vr(n7));
          break;
        default:
          vr(n7);
      }
      e4 = e4.sibling;
    }
  }
  function Sr(e4, n7) {
    for (; null !== Uu; ) {
      var t5 = Uu;
      switch (t5.tag) {
        case 0:
        case 11:
        case 15:
          Ot(8, t5, n7);
          break;
        case 23:
        case 22:
          if (null !== t5.memoizedState && null !== t5.memoizedState.cachePool) {
            var r5 = t5.memoizedState.cachePool.pool;
            null != r5 && r5.refCount++;
          }
          break;
        case 24:
          B(t5.memoizedState.cache);
      }
      if (null !== (r5 = t5.child)) r5.return = t5, Uu = r5;
      else e: for (t5 = e4; null !== Uu; ) {
        var l5 = (r5 = Uu).sibling, a6 = r5.return;
        if (Kt(r5), r5 === t5) {
          Uu = null;
          break e;
        }
        if (null !== l5) {
          l5.return = a6, Uu = l5;
          break e;
        }
        Uu = a6;
      }
    }
  }
  function kr() {
    return 0 != (2 & Mu) && 0 !== Bu ? Bu & -Bu : null !== Dl.T ? X() : Zl();
  }
  function wr() {
    if (0 === ni) if (0 == (536870912 & Bu) || xo) {
      var e4 = qa;
      0 == (3932160 & (qa <<= 1)) && (qa = 262144), ni = e4;
    } else ni = 536870912;
    return null !== (e4 = uu.current) && (e4.flags |= 32), ni;
  }
  function zr(e4, n7, t5) {
    (e4 !== Wu || 2 !== $u && 9 !== $u) && null === e4.cancelPendingCommit || (Tr(e4, 0), Pr(e4, Bu, ni, false)), g3(e4, t5), 0 != (2 & Mu) && e4 === Wu || (e4 === Wu && (0 == (2 & Mu) && (Zu |= t5), 4 === Ku && Pr(e4, Bu, ni, false)), V(e4));
  }
  function xr(e4, n7, t5) {
    if (0 != (6 & Mu)) throw Error(r4(327));
    for (var l5 = !t5 && 0 == (127 & n7) && 0 == (n7 & e4.expiredLanes) || f4(e4, n7), a6 = l5 ? (function(e5, n8) {
      var t6 = Mu;
      Mu |= 2;
      var l6 = Nr(), a7 = Lr();
      Wu !== e5 || Bu !== n8 ? (si = null, ii = Za() + 500, Tr(e5, n8)) : Yu = f4(e5, n8);
      e: for (; ; ) try {
        if (0 !== $u && null !== Qu) {
          n8 = Qu;
          var o7 = Vu;
          n: switch ($u) {
            case 1:
              $u = 0, Vu = null, Hr(e5, n8, o7, 1);
              break;
            case 2:
            case 9:
              if (le(o7)) {
                $u = 0, Vu = null, Ar(n8);
                break;
              }
              n8 = function() {
                2 !== $u && 9 !== $u || Wu !== e5 || ($u = 7), V(e5);
              }, o7.then(n8, n8);
              break e;
            case 3:
              $u = 7;
              break e;
            case 4:
              $u = 5;
              break e;
            case 7:
              le(o7) ? ($u = 0, Vu = null, Ar(n8)) : ($u = 0, Vu = null, Hr(e5, n8, o7, 7));
              break;
            case 5:
              var u6 = null;
              switch (Qu.tag) {
                case 26:
                  u6 = Qu.memoizedState;
                case 5:
                case 27:
                  var i7 = Qu, s6 = i7.type, c7 = i7.pendingProps;
                  if (u6 ? ja(u6) : aa(i7.stateNode, s6, c7)) {
                    $u = 0, Vu = null;
                    var d4 = i7.sibling;
                    if (null !== d4) Qu = d4;
                    else {
                      var p4 = i7.return;
                      null !== p4 ? (Qu = p4, Or(p4)) : Qu = null;
                    }
                    break n;
                  }
              }
              $u = 0, Vu = null, Hr(e5, n8, o7, 5);
              break;
            case 6:
              $u = 0, Vu = null, Hr(e5, n8, o7, 6);
              break;
            case 8:
              _r(), Ku = 6;
              break e;
            default:
              throw Error(r4(462));
          }
        }
        Fr();
        break;
      } catch (n9) {
        Rr(e5, n9);
      }
      return _o = Po = null, Dl.H = l6, Dl.A = a7, Mu = t6, null !== Qu ? 0 : (Wu = null, Bu = 0, pe(), Ku);
    })(e4, n7) : Dr(e4, n7, true), o6 = l5; ; ) {
      if (0 === a6) {
        Yu && !l5 && Pr(e4, n7, 0, false);
        break;
      }
      if (t5 = e4.current.alternate, !o6 || Cr(t5)) {
        if (2 === a6) {
          if (o6 = n7, e4.errorRecoveryDisabledLanes & o6) var u5 = 0;
          else u5 = 0 != (u5 = -536870913 & e4.pendingLanes) ? u5 : 536870912 & u5 ? 536870912 : 0;
          if (0 !== u5) {
            n7 = u5;
            e: {
              var i6 = e4;
              a6 = ri;
              var s5 = Gl;
              if (s5 && (Tr(i6, u5).flags |= 256), 2 !== (u5 = Dr(i6, u5, false))) {
                if (Gu && !s5) {
                  i6.errorRecoveryDisabledLanes |= o6, Zu |= o6, a6 = 4;
                  break e;
                }
                o6 = li, li = a6, null !== o6 && (null === li ? li = o6 : li.push.apply(li, o6));
              }
              a6 = u5;
            }
            if (o6 = false, 2 !== a6) continue;
          }
        }
        if (1 === a6) {
          Tr(e4, 0), Pr(e4, n7, 0, true);
          break;
        }
        e: {
          switch (l5 = e4, o6 = a6) {
            case 0:
            case 1:
              throw Error(r4(345));
            case 4:
              if ((4194048 & n7) !== n7) break;
            case 6:
              Pr(l5, n7, ni, !qu);
              break e;
            case 2:
              li = null;
              break;
            case 3:
            case 5:
              break;
            default:
              throw Error(r4(329));
          }
          if ((62914560 & n7) === n7 && 10 < (a6 = oi + 300 - Za())) {
            if (Pr(l5, n7, ni, !qu), 0 !== d3(l5, 0, true)) break e;
            mi = n7, l5.timeoutHandle = $l(Er.bind(null, l5, t5, li, si, ai, n7, ni, Zu, ti, qu, o6, "Throttled", -0, 0), a6);
          } else Er(l5, t5, li, si, ai, n7, ni, Zu, ti, qu, o6, null, -0, 0);
        }
        break;
      }
      a6 = Dr(e4, n7, false), o6 = false;
    }
    V(e4);
  }
  function Er(e4, n7, t5, r5, l5, a6, o6, u5, i6, s5, c7, d4, f5, p4) {
    if (e4.timeoutHandle = ql, 8192 & (d4 = n7.subtreeFlags) || 16785408 == (16785408 & d4)) {
      hr(n7, a6, d4 = oa());
      var m4 = (62914560 & a6) === a6 ? oi - Za() : (4194048 & a6) === a6 ? ui - Za() : 0;
      if (null !== (m4 = ia(d4, m4))) return mi = a6, e4.cancelPendingCommit = m4(Wr.bind(null, e4, n7, a6, t5, r5, l5, o6, u5, i6, c7, d4, null, f5, p4)), void Pr(e4, a6, o6, !s5);
    }
    Wr(e4, n7, a6, t5, r5, l5, o6, u5, i6);
  }
  function Cr(e4) {
    for (var n7 = e4; ; ) {
      var t5 = n7.tag;
      if ((0 === t5 || 11 === t5 || 15 === t5) && 16384 & n7.flags && null !== (t5 = n7.updateQueue) && null !== (t5 = t5.stores)) for (var r5 = 0; r5 < t5.length; r5++) {
        var l5 = t5[r5], a6 = l5.getSnapshot;
        l5 = l5.value;
        try {
          if (!uo(a6(), l5)) return false;
        } catch (e5) {
          return false;
        }
      }
      if (t5 = n7.child, 16384 & n7.subtreeFlags && null !== t5) t5.return = n7, n7 = t5;
      else {
        if (n7 === e4) break;
        for (; null === n7.sibling; ) {
          if (null === n7.return || n7.return === e4) return true;
          n7 = n7.return;
        }
        n7.sibling.return = n7.return, n7 = n7.sibling;
      }
    }
    return true;
  }
  function Pr(e4, n7, t5, r5) {
    n7 &= ~ei, n7 &= ~Zu, e4.suspendedLanes |= n7, e4.pingedLanes &= ~n7, r5 && (e4.warmLanes |= n7), r5 = e4.expirationTimes;
    for (var l5 = n7; 0 < l5; ) {
      var a6 = 31 - Qa(l5), o6 = 1 << a6;
      r5[a6] = -1, l5 &= ~o6;
    }
    0 !== t5 && y3(e4, t5, n7);
  }
  function _r() {
    if (null !== Qu) {
      if (0 === $u) var e4 = Qu.return;
      else _o = Po = null, Ve(e4 = Qu), Jo = null, Ko = 0, e4 = Qu;
      for (; null !== e4; ) At(e4.alternate, e4), e4 = e4.return;
      Qu = null;
    }
  }
  function Tr(e4, n7) {
    var t5 = e4.timeoutHandle;
    t5 !== ql && (e4.timeoutHandle = ql, Vl(t5)), null !== (t5 = e4.cancelPendingCommit) && (e4.cancelPendingCommit = null, t5()), mi = 0, _r(), Wu = e4, Qu = t5 = ll(e4.current, null), Bu = n7, $u = 0, Vu = null, qu = false, Yu = f4(e4, n7), Gu = false, ti = ni = ei = Zu = Xu = Ku = 0, li = ri = null, ai = false, 0 != (8 & n7) && (n7 |= 32 & n7);
    var r5 = e4.entangledLanes;
    if (0 !== r5) for (e4 = e4.entanglements, r5 &= n7; 0 < r5; ) {
      var l5 = 31 - Qa(r5), a6 = 1 << l5;
      n7 |= e4[l5], r5 &= ~a6;
    }
    return Ju = n7, pe(), t5;
  }
  function Rr(e4, n7) {
    du = null, Dl.H = ku, n7 === $o || n7 === qo ? (n7 = ue(), $u = 3) : n7 === Vo ? (n7 = ue(), $u = 4) : $u = n7 === Cu ? 8 : null !== n7 && "object" == typeof n7 && "function" == typeof n7.then ? 6 : 1, Vu = n7, null === Qu && (Ku = 1, nt(e4, C(n7, e4.current)));
  }
  function Nr() {
    var e4 = Dl.H;
    return Dl.H = ku, null === e4 ? ku : e4;
  }
  function Lr() {
    var e4 = Dl.A;
    return Dl.A = Au, e4;
  }
  function Ur() {
    Ku = 4, qu || (4194048 & Bu) !== Bu && null !== uu.current || (Yu = true), 0 == (134217727 & Xu) && 0 == (134217727 & Zu) || null === Wu || Pr(Wu, Bu, ni, false);
  }
  function Dr(e4, n7, t5) {
    var r5 = Mu;
    Mu |= 2;
    var l5 = Nr(), a6 = Lr();
    Wu === e4 && Bu === n7 || (si = null, Tr(e4, n7)), n7 = false;
    var o6 = Ku;
    e: for (; ; ) try {
      if (0 !== $u && null !== Qu) {
        var u5 = Qu, i6 = Vu;
        switch ($u) {
          case 8:
            _r(), o6 = 6;
            break e;
          case 3:
          case 2:
          case 9:
          case 6:
            null === uu.current && (n7 = true);
            var s5 = $u;
            if ($u = 0, Vu = null, Hr(e4, u5, i6, s5), t5 && Yu) {
              o6 = 0;
              break e;
            }
            break;
          default:
            s5 = $u, $u = 0, Vu = null, Hr(e4, u5, i6, s5);
        }
      }
      Ir(), o6 = Ku;
      break;
    } catch (n8) {
      Rr(e4, n8);
    }
    return n7 && e4.shellSuspendCounter++, _o = Po = null, Mu = r5, Dl.H = l5, Dl.A = a6, null === Qu && (Wu = null, Bu = 0, pe()), o6;
  }
  function Ir() {
    for (; null !== Qu; ) jr(Qu);
  }
  function Fr() {
    for (; null !== Qu && !Ka(); ) jr(Qu);
  }
  function jr(e4) {
    var n7 = Rt(e4.alternate, e4, Ju);
    e4.memoizedProps = e4.pendingProps, null === n7 ? Or(e4) : Qu = n7;
  }
  function Ar(e4) {
    var n7 = e4, t5 = n7.alternate;
    switch (n7.tag) {
      case 15:
      case 0:
        n7 = yt(t5, n7, n7.pendingProps, n7.type, void 0, Bu);
        break;
      case 11:
        n7 = yt(t5, n7, n7.pendingProps, n7.type.render, n7.ref, Bu);
        break;
      case 5:
        Ve(n7);
      default:
        At(t5, n7), n7 = Rt(t5, n7 = Qu = al(n7, Ju), Ju);
    }
    e4.memoizedProps = e4.pendingProps, null === n7 ? Or(e4) : Qu = n7;
  }
  function Hr(e4, n7, t5, l5) {
    _o = Po = null, Ve(n7), Jo = null, Ko = 0;
    var a6 = n7.return;
    try {
      if ((function(e5, n8, t6, l6, a7) {
        if (t6.flags |= 32768, null !== l6 && "object" == typeof l6 && "function" == typeof l6.then) {
          if (null !== (n8 = t6.alternate) && j(n8, t6, a7, true), null !== (t6 = uu.current)) {
            switch (t6.tag) {
              case 31:
              case 13:
                return null === iu ? Ur() : null === t6.alternate && 0 === Ku && (Ku = 3), t6.flags &= -257, t6.flags |= 65536, t6.lanes = a7, l6 === Yo ? t6.flags |= 16384 : (null === (n8 = t6.updateQueue) ? t6.updateQueue = /* @__PURE__ */ new Set([l6]) : n8.add(l6), Kr(e5, l6, a7)), false;
              case 22:
                return t6.flags |= 65536, l6 === Yo ? t6.flags |= 16384 : (null === (n8 = t6.updateQueue) ? (n8 = { transitions: null, markerInstances: null, retryQueue: /* @__PURE__ */ new Set([l6]) }, t6.updateQueue = n8) : null === (t6 = n8.retryQueue) ? n8.retryQueue = /* @__PURE__ */ new Set([l6]) : t6.add(l6), Kr(e5, l6, a7)), false;
            }
            throw Error(r4(435, t6.tag));
          }
          return Kr(e5, l6, a7), Ur(), false;
        }
        var o6 = Error(r4(520), { cause: l6 });
        if (o6 = C(o6, t6), null === ri ? ri = [o6] : ri.push(o6), 4 !== Ku && (Ku = 2), null === n8) return true;
        l6 = C(l6, t6), t6 = n8;
        do {
          switch (t6.tag) {
            case 3:
              return t6.flags |= 65536, e5 = a7 & -a7, t6.lanes |= e5, xe(t6, e5 = rt(t6.stateNode, l6, e5)), false;
            case 1:
              if (n8 = t6.type, o6 = t6.stateNode, 0 == (128 & t6.flags) && ("function" == typeof n8.getDerivedStateFromError || null !== o6 && "function" == typeof o6.componentDidCatch && (null === ci || !ci.has(o6)))) return t6.flags |= 65536, a7 &= -a7, t6.lanes |= a7, at(a7 = lt(a7), e5, t6, l6), xe(t6, a7), false;
          }
          t6 = t6.return;
        } while (null !== t6);
        return false;
      })(e4, a6, n7, t5, Bu)) return Ku = 1, nt(e4, C(t5, e4.current)), void (Qu = null);
    } catch (n8) {
      if (null !== a6) throw Qu = a6, n8;
      return Ku = 1, nt(e4, C(t5, e4.current)), void (Qu = null);
    }
    32768 & n7.flags ? (1 === l5 ? e4 = true : Yu || 0 != (536870912 & Bu) ? e4 = false : (qu = e4 = true, (2 === l5 || 9 === l5 || 3 === l5 || 6 === l5) && null !== (l5 = uu.current) && 13 === l5.tag && (l5.flags |= 16384)), Mr(n7, e4)) : Or(n7);
  }
  function Or(e4) {
    var n7 = e4;
    do {
      if (0 != (32768 & n7.flags)) return void Mr(n7, qu);
      e4 = n7.return;
      var t5 = Ft(n7.alternate, n7, Ju);
      if (null !== t5) return void (Qu = t5);
      if (null !== (n7 = n7.sibling)) return void (Qu = n7);
      Qu = n7 = e4;
    } while (null !== n7);
    0 === Ku && (Ku = 5);
  }
  function Mr(e4, n7) {
    do {
      var t5 = jt(e4.alternate, e4);
      if (null !== t5) return t5.flags &= 32767, void (Qu = t5);
      if (null !== (t5 = e4.return) && (t5.flags |= 32768, t5.subtreeFlags = 0, t5.deletions = null), !n7 && null !== (e4 = e4.sibling)) return void (Qu = e4);
      Qu = e4 = t5;
    } while (null !== e4);
    Ku = 6, Qu = null;
  }
  function Wr(e4, n7, t5, l5, a6, o6, u5, i6, s5) {
    e4.cancelPendingCommit = null;
    do {
      qr();
    } while (0 !== di);
    if (0 != (6 & Mu)) throw Error(r4(327));
    if (null !== n7) {
      if (n7 === e4.current) throw Error(r4(177));
      if (o6 = n7.lanes | n7.childLanes, (function(e5, n8, t6, r5, l6, a7) {
        var o7 = e5.pendingLanes;
        e5.pendingLanes = t6, e5.suspendedLanes = 0, e5.pingedLanes = 0, e5.warmLanes = 0, e5.expiredLanes &= t6, e5.entangledLanes &= t6, e5.errorRecoveryDisabledLanes &= t6, e5.shellSuspendCounter = 0;
        var u6 = e5.entanglements, i7 = e5.expirationTimes, s6 = e5.hiddenUpdates;
        for (t6 = o7 & ~t6; 0 < t6; ) {
          var c7 = 31 - Qa(t6), d4 = 1 << c7;
          u6[c7] = 0, i7[c7] = -1;
          var f5 = s6[c7];
          if (null !== f5) for (s6[c7] = null, c7 = 0; c7 < f5.length; c7++) {
            var p4 = f5[c7];
            null !== p4 && (p4.lane &= -536870913);
          }
          t6 &= ~d4;
        }
        0 !== r5 && y3(e5, r5, 0), 0 !== a7 && 0 === l6 && 0 !== e5.tag && (e5.suspendedLanes |= a7 & ~(o7 & ~n8));
      })(e4, t5, o6 |= tu, u5, i6, s5), e4 === Wu && (Qu = Wu = null, Bu = 0), pi = n7, fi = e4, mi = t5, hi = o6, gi = a6, yi = l5, 0 != (10256 & n7.subtreeFlags) || 0 != (10256 & n7.flags) ? (e4.callbackNode = null, e4.callbackPriority = 0, Ga(to, (function() {
        return Yr(), null;
      }))) : (e4.callbackNode = null, e4.callbackPriority = 0), l5 = 0 != (13878 & n7.flags), 0 != (13878 & n7.subtreeFlags) || l5) {
        l5 = Dl.T, Dl.T = null, a6 = Xl(), Kl(2), u5 = Mu, Mu |= 4;
        try {
          !(function(e5, n8) {
            for (Al(e5.containerInfo), Uu = n8; null !== Uu; ) if (n8 = (e5 = Uu).child, 0 != (1028 & e5.subtreeFlags) && null !== n8) n8.return = e5, Uu = n8;
            else for (; null !== Uu; ) {
              var t6 = (e5 = Uu).alternate;
              switch (n8 = e5.flags, e5.tag) {
                case 0:
                  if (0 != (4 & n8) && null !== (n8 = null !== (n8 = e5.updateQueue) ? n8.events : null)) for (var l6 = 0; l6 < n8.length; l6++) {
                    var a7 = n8[l6];
                    a7.ref.impl = a7.nextImpl;
                  }
                  break;
                case 11:
                case 15:
                case 5:
                case 26:
                case 27:
                case 6:
                case 4:
                case 17:
                  break;
                case 1:
                  if (0 != (1024 & n8) && null !== t6) {
                    n8 = void 0, l6 = e5, a7 = t6.memoizedProps, t6 = t6.memoizedState;
                    var o7 = l6.stateNode;
                    try {
                      var u6 = et2(l6.type, a7);
                      n8 = o7.getSnapshotBeforeUpdate(u6, t6), o7.__reactInternalSnapshotBeforeUpdate = n8;
                    } catch (e6) {
                      Jr(l6, l6.return, e6);
                    }
                  }
                  break;
                case 3:
                  0 != (1024 & n8) && Yl && Ca(e5.stateNode.containerInfo);
                  break;
                default:
                  if (0 != (1024 & n8)) throw Error(r4(163));
              }
              if (null !== (n8 = e5.sibling)) {
                n8.return = e5.return, Uu = n8;
                break;
              }
              Uu = e5.return;
            }
          })(e4, n7);
        } finally {
          Mu = u5, Kl(a6), Dl.T = l5;
        }
      }
      di = 1, Qr(), Br(), $r();
    }
  }
  function Qr() {
    if (1 === di) {
      di = 0;
      var e4 = fi, n7 = pi, t5 = 0 != (13878 & n7.flags);
      if (0 != (13878 & n7.subtreeFlags) || t5) {
        t5 = Dl.T, Dl.T = null;
        var r5 = Xl();
        Kl(2);
        var l5 = Mu;
        Mu |= 4;
        try {
          tr(n7, e4), Hl(e4.containerInfo);
        } finally {
          Mu = l5, Kl(r5), Dl.T = t5;
        }
      }
      e4.current = n7, di = 2;
    }
  }
  function Br() {
    if (2 === di) {
      di = 0;
      var e4 = fi, n7 = pi, t5 = 0 != (8772 & n7.flags);
      if (0 != (8772 & n7.subtreeFlags) || t5) {
        t5 = Dl.T, Dl.T = null;
        var r5 = Xl();
        Kl(2);
        var l5 = Mu;
        Mu |= 4;
        try {
          Jt(e4, n7.alternate, n7);
        } finally {
          Mu = l5, Kl(r5), Dl.T = t5;
        }
      }
      di = 3;
    }
  }
  function $r() {
    if (4 === di || 3 === di) {
      di = 0, Xa();
      var e4 = fi, n7 = pi, t5 = mi, r5 = yi;
      0 != (10256 & n7.subtreeFlags) || 0 != (10256 & n7.flags) ? di = 5 : (di = 0, pi = fi = null, Vr(e4, e4.pendingLanes));
      var l5 = e4.pendingLanes;
      if (0 === l5 && (ci = null), S3(t5), n7 = n7.stateNode, null !== r5) {
        n7 = Dl.T, l5 = Xl(), Kl(2), Dl.T = null;
        try {
          for (var a6 = e4.onRecoverableError, o6 = 0; o6 < r5.length; o6++) {
            var u5 = r5[o6];
            a6(u5.value, { componentStack: u5.stack });
          }
        } finally {
          Dl.T = n7, Kl(l5);
        }
      }
      0 != (3 & mi) && qr(), V(e4), l5 = e4.pendingLanes, 0 != (261930 & t5) && 0 != (42 & l5) ? e4 === vi ? bi++ : (bi = 0, vi = e4) : bi = 0, q(0);
    }
  }
  function Vr(e4, n7) {
    0 == (e4.pooledCacheLanes &= n7) && null != (n7 = e4.pooledCache) && (e4.pooledCache = null, B(n7));
  }
  function qr() {
    return Qr(), Br(), $r(), Yr();
  }
  function Yr() {
    if (5 !== di) return false;
    var e4 = fi, n7 = hi;
    hi = 0;
    var t5 = S3(mi), l5 = 32 > t5 ? 32 : t5;
    t5 = Dl.T;
    var a6 = Xl();
    try {
      Kl(l5), Dl.T = null, l5 = gi, gi = null;
      var o6 = fi, u5 = mi;
      if (di = 0, pi = fi = null, mi = 0, 0 != (6 & Mu)) throw Error(r4(331));
      var i6 = Mu;
      return Mu |= 4, br(o6.current), dr(o6, o6.current, u5, l5), Mu = i6, q(0), oo && oo.onPostCommitFiberRoot, true;
    } finally {
      Kl(a6), Dl.T = t5, Vr(e4, n7);
    }
  }
  function Gr(e4, n7, t5) {
    n7 = C(t5, n7), null !== (e4 = we(e4, n7 = rt(e4.stateNode, n7, 2), 2)) && (g3(e4, 2), V(e4));
  }
  function Jr(e4, n7, t5) {
    if (3 === e4.tag) Gr(e4, e4, t5);
    else for (; null !== n7; ) {
      if (3 === n7.tag) {
        Gr(n7, e4, t5);
        break;
      }
      if (1 === n7.tag) {
        var r5 = n7.stateNode;
        if ("function" == typeof n7.type.getDerivedStateFromError || "function" == typeof r5.componentDidCatch && (null === ci || !ci.has(r5))) {
          e4 = C(t5, e4), null !== (r5 = we(n7, t5 = lt(2), 2)) && (at(t5, r5, n7, e4), g3(r5, 2), V(r5));
          break;
        }
      }
      n7 = n7.return;
    }
  }
  function Kr(e4, n7, t5) {
    var r5 = e4.pingCache;
    if (null === r5) {
      r5 = e4.pingCache = new Ou();
      var l5 = /* @__PURE__ */ new Set();
      r5.set(n7, l5);
    } else void 0 === (l5 = r5.get(n7)) && (l5 = /* @__PURE__ */ new Set(), r5.set(n7, l5));
    l5.has(t5) || (Gu = true, l5.add(t5), e4 = Xr.bind(null, e4, n7, t5), n7.then(e4, e4));
  }
  function Xr(e4, n7, t5) {
    var r5 = e4.pingCache;
    null !== r5 && r5.delete(n7), e4.pingedLanes |= e4.suspendedLanes & t5, e4.warmLanes &= ~t5, Wu === e4 && (Bu & t5) === t5 && (4 === Ku || 3 === Ku && (62914560 & Bu) === Bu && 300 > Za() - oi ? 0 == (2 & Mu) && Tr(e4, 0) : ei |= t5, ti === Bu && (ti = 0)), V(e4);
  }
  function Zr(e4, n7) {
    0 === n7 && (n7 = m3()), null !== (e4 = ge(e4, n7)) && (g3(e4, n7), V(e4));
  }
  function el(e4) {
    var n7 = e4.memoizedState, t5 = 0;
    null !== n7 && (t5 = n7.retryLane), Zr(e4, t5);
  }
  function nl(e4, n7) {
    var t5 = 0;
    switch (e4.tag) {
      case 31:
      case 13:
        var l5 = e4.stateNode, a6 = e4.memoizedState;
        null !== a6 && (t5 = a6.retryLane);
        break;
      case 19:
        l5 = e4.stateNode;
        break;
      case 22:
        l5 = e4.stateNode._retryCache;
        break;
      default:
        throw Error(r4(314));
    }
    null !== l5 && l5.delete(n7), Zr(e4, t5);
  }
  function tl(e4, n7, t5, r5) {
    this.tag = e4, this.key = t5, this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null, this.index = 0, this.refCleanup = this.ref = null, this.pendingProps = n7, this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null, this.mode = r5, this.subtreeFlags = this.flags = 0, this.deletions = null, this.childLanes = this.lanes = 0, this.alternate = null;
  }
  function rl(e4) {
    return !(!(e4 = e4.prototype) || !e4.isReactComponent);
  }
  function ll(e4, n7) {
    var r5 = e4.alternate;
    return null === r5 ? ((r5 = t4(e4.tag, n7, e4.key, e4.mode)).elementType = e4.elementType, r5.type = e4.type, r5.stateNode = e4.stateNode, r5.alternate = e4, e4.alternate = r5) : (r5.pendingProps = n7, r5.type = e4.type, r5.flags = 0, r5.subtreeFlags = 0, r5.deletions = null), r5.flags = 65011712 & e4.flags, r5.childLanes = e4.childLanes, r5.lanes = e4.lanes, r5.child = e4.child, r5.memoizedProps = e4.memoizedProps, r5.memoizedState = e4.memoizedState, r5.updateQueue = e4.updateQueue, n7 = e4.dependencies, r5.dependencies = null === n7 ? null : { lanes: n7.lanes, firstContext: n7.firstContext }, r5.sibling = e4.sibling, r5.index = e4.index, r5.ref = e4.ref, r5.refCleanup = e4.refCleanup, r5;
  }
  function al(e4, n7) {
    e4.flags &= 65011714;
    var t5 = e4.alternate;
    return null === t5 ? (e4.childLanes = 0, e4.lanes = n7, e4.child = null, e4.subtreeFlags = 0, e4.memoizedProps = null, e4.memoizedState = null, e4.updateQueue = null, e4.dependencies = null, e4.stateNode = null) : (e4.childLanes = t5.childLanes, e4.lanes = t5.lanes, e4.child = t5.child, e4.subtreeFlags = 0, e4.deletions = null, e4.memoizedProps = t5.memoizedProps, e4.memoizedState = t5.memoizedState, e4.updateQueue = t5.updateQueue, e4.type = t5.type, n7 = t5.dependencies, e4.dependencies = null === n7 ? null : { lanes: n7.lanes, firstContext: n7.firstContext }), e4;
  }
  function ol(e4, n7, l5, a6, o6, u5) {
    var i6 = 0;
    if (a6 = e4, "function" == typeof e4) rl(e4) && (i6 = 1);
    else if ("string" == typeof e4) i6 = 5;
    else e: switch (e4) {
      case Tl:
        return (e4 = t4(31, l5, n7, o6)).elementType = Tl, e4.lanes = u5, e4;
      case vl:
        return ul(l5.children, o6, u5, n7);
      case Sl:
        i6 = 8, o6 |= 24;
        break;
      case kl:
        return (e4 = t4(12, l5, n7, 2 | o6)).elementType = kl, e4.lanes = u5, e4;
      case El:
        return (e4 = t4(13, l5, n7, o6)).elementType = El, e4.lanes = u5, e4;
      case Cl:
        return (e4 = t4(19, l5, n7, o6)).elementType = Cl, e4.lanes = u5, e4;
      default:
        if ("object" == typeof e4 && null !== e4) switch (e4.$$typeof) {
          case zl:
            i6 = 10;
            break e;
          case wl:
            i6 = 9;
            break e;
          case xl:
            i6 = 11;
            break e;
          case Pl:
            i6 = 14;
            break e;
          case _l:
            i6 = 16, a6 = null;
            break e;
        }
        i6 = 29, l5 = Error(r4(130, null === e4 ? "null" : typeof e4, "")), a6 = null;
    }
    return (n7 = t4(i6, l5, n7, o6)).elementType = e4, n7.type = a6, n7.lanes = u5, n7;
  }
  function ul(e4, n7, r5, l5) {
    return (e4 = t4(7, e4, l5, n7)).lanes = r5, e4;
  }
  function il(e4, n7, r5) {
    return (e4 = t4(6, e4, null, n7)).lanes = r5, e4;
  }
  function sl(e4, n7, r5) {
    return (n7 = t4(4, null !== e4.children ? e4.children : [], e4.key, n7)).lanes = r5, n7.stateNode = { containerInfo: e4.containerInfo, pendingChildren: null, implementation: e4.implementation }, n7;
  }
  function cl(e4, n7, t5, r5, l5, a6, o6, u5, i6) {
    this.tag = 1, this.containerInfo = e4, this.pingCache = this.current = this.pendingChildren = null, this.timeoutHandle = ql, this.callbackNode = this.next = this.pendingContext = this.context = this.cancelPendingCommit = null, this.callbackPriority = 0, this.expirationTimes = h4(-1), this.entangledLanes = this.shellSuspendCounter = this.errorRecoveryDisabledLanes = this.expiredLanes = this.warmLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0, this.entanglements = h4(0), this.hiddenUpdates = h4(null), this.identifierPrefix = r5, this.onUncaughtError = l5, this.onCaughtError = a6, this.onRecoverableError = o6, this.pooledCache = null, this.pooledCacheLanes = 0, this.formState = i6, this.incompleteTransitions = /* @__PURE__ */ new Map();
  }
  function dl(e4, n7, t5, r5, l5, a6) {
    l5 = (function(e5) {
      return e5 ? e5 = Wa : Wa;
    })(l5), null === r5.context ? r5.context = l5 : r5.pendingContext = l5, (r5 = ke(n7)).payload = { element: t5 }, null !== (a6 = void 0 === a6 ? null : a6) && (r5.callback = a6), null !== (t5 = we(e4, r5, n7)) && (zr(t5, 0, n7), ze(t5, e4, n7));
  }
  var fl2 = {}, pl = import_react2.default, ml = u3, hl = Object.assign, gl = Symbol.for("react.element"), yl = Symbol.for("react.transitional.element"), bl = Symbol.for("react.portal"), vl = Symbol.for("react.fragment"), Sl = Symbol.for("react.strict_mode"), kl = Symbol.for("react.profiler"), wl = Symbol.for("react.consumer"), zl = Symbol.for("react.context"), xl = Symbol.for("react.forward_ref"), El = Symbol.for("react.suspense"), Cl = Symbol.for("react.suspense_list"), Pl = Symbol.for("react.memo"), _l = Symbol.for("react.lazy"), Tl = Symbol.for("react.activity"), Rl = Symbol.for("react.memo_cache_sentinel"), Nl = Symbol.iterator, Ll = Symbol.for("react.client.reference"), Ul = Array.isArray, Dl = pl.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, Il = n6.getPublicInstance, Fl = n6.getRootHostContext, jl = n6.getChildHostContext, Al = n6.prepareForCommit, Hl = n6.resetAfterCommit, Ol = n6.createInstance, Ml = n6.appendInitialChild, Wl = n6.finalizeInitialChildren, Ql = n6.shouldSetTextContent, Bl = n6.createTextInstance, $l = null, Vl = null, ql = n6.noTimeout, Yl = true, Gl = null, Jl = null, Kl = n6.setCurrentUpdatePriority, Xl = n6.getCurrentUpdatePriority, Zl = n6.resolveUpdatePriority;
  n6.trackSchedulerEvent, n6.resolveEventType, n6.resolveEventTimeStamp;
  var ea = n6.shouldAttemptEagerTransition, na = n6.detachDeletedInstance;
  n6.requestPostPaintCallback;
  var ta = n6.maySuspendCommit, ra = null, la = null, aa = null, oa = null, ua = null, ia = null, sa = null, ca = null, da = null, fa = n6.appendChild, pa = n6.appendChildToContainer, ma = n6.commitTextUpdate, ha = null, ga = n6.commitUpdate, ya = n6.insertBefore, ba = null, va = n6.removeChild, Sa = n6.removeChildFromContainer, ka = n6.resetTextContent, wa = null, za = null, xa = null, Ea = null, Ca = n6.clearContainer, Pa = null, _a2 = null, Ta = null, Ra = null, Na = null, La = null, Ua = null, Da = null, Ia = null, Fa = null, ja = null, Aa = null, Ha = null, Oa = [], Ma = -1, Wa = {}, Qa = Math.clz32 ? Math.clz32 : function(e4) {
    return 0 == (e4 >>>= 0) ? 32 : 31 - (Ba(e4) / $a | 0) | 0;
  }, Ba = Math.log, $a = Math.LN2, Va = 256, qa = 262144, Ya = 4194304, Ga = ml.unstable_scheduleCallback, Ja = ml.unstable_cancelCallback, Ka = ml.unstable_shouldYield, Xa = ml.unstable_requestPaint, Za = ml.unstable_now, eo = ml.unstable_ImmediatePriority, no = ml.unstable_UserBlockingPriority, to = ml.unstable_NormalPriority, ro = ml.unstable_IdlePriority, lo = ml.log, ao = ml.unstable_setDisableYieldValue, oo = null, uo = "function" == typeof Object.is ? Object.is : function(e4, n7) {
    return e4 === n7 && (0 !== e4 || 1 / e4 == 1 / n7) || e4 != e4 && n7 != n7;
  };
  "function" == typeof reportError && reportError;
  var io, so, co = Object.prototype.hasOwnProperty, fo = false, po = /* @__PURE__ */ new WeakMap(), mo = [], ho = 0, go = null, yo = [], bo = 0, vo = null, So = o5(null), ko = o5(null), wo = o5(null), zo = o5(null), xo = false, Eo = null;
  Error(r4(519));
  var Co = o5(null), Po = null, _o = null, To = "undefined" != typeof AbortController ? AbortController : function() {
    var e4 = [], n7 = this.signal = { aborted: false, addEventListener: function(n8, t5) {
      e4.push(t5);
    } };
    this.abort = function() {
      n7.aborted = true, e4.forEach((function(e5) {
        return e5();
      }));
    };
  }, Ro = ml.unstable_scheduleCallback, No = ml.unstable_NormalPriority, Lo = { $$typeof: zl, Consumer: null, Provider: null, _currentValue: null, _currentValue2: null, _threadCount: 0 }, Uo = null, Do = null, Io = false, Fo = false, jo = false, Ao = 0, Ho = null, Oo = 0, Mo = 0, Wo = null, Qo = Dl.S;
  Dl.S = function(e4, n7) {
    ui = Za(), "object" == typeof n7 && null !== n7 && "function" == typeof n7.then && (function(e5, n8) {
      if (null === Ho) {
        var t5 = Ho = [];
        Oo = 0, Mo = X(), Wo = { status: "pending", value: void 0, then: function(e6) {
          t5.push(e6);
        } };
      }
      Oo++, n8.then(Z, Z);
    })(0, n7), null !== Qo && Qo(e4, n7);
  };
  var Bo = o5(null), $o = Error(r4(460)), Vo = Error(r4(474)), qo = Error(r4(542)), Yo = { then: function() {
  } }, Go = null, Jo = null, Ko = 0, Xo = fe(true), Zo = fe(false), eu = [], nu = 0, tu = 0, ru = false, lu = false, au = o5(null), ou = o5(0), uu = o5(null), iu = null, su = o5(0), cu = 0, du = null, fu = null, pu = null, mu = false, hu = false, gu = false, yu = 0, bu = 0, vu = null, Su = 0, ku = { readContext: O, use: Je, useCallback: Ae, useContext: Ae, useEffect: Ae, useImperativeHandle: Ae, useLayoutEffect: Ae, useInsertionEffect: Ae, useMemo: Ae, useReducer: Ae, useRef: Ae, useState: Ae, useDebugValue: Ae, useDeferredValue: Ae, useTransition: Ae, useSyncExternalStore: Ae, useId: Ae, useHostTransitionStatus: Ae, useFormState: Ae, useActionState: Ae, useOptimistic: Ae, useMemoCache: Ae, useCacheRefresh: Ae };
  ku.useEffectEvent = Ae;
  var wu = { readContext: O, use: Je, useCallback: function(e4, n7) {
    return qe().memoizedState = [e4, void 0 === n7 ? null : n7], e4;
  }, useContext: O, useEffect: Pn, useImperativeHandle: function(e4, n7, t5) {
    t5 = null != t5 ? t5.concat([e4]) : null, En(4194308, 4, Ln.bind(null, n7, e4), t5);
  }, useLayoutEffect: function(e4, n7) {
    return En(4194308, 4, e4, n7);
  }, useInsertionEffect: function(e4, n7) {
    En(4, 2, e4, n7);
  }, useMemo: function(e4, n7) {
    var t5 = qe();
    n7 = void 0 === n7 ? null : n7;
    var r5 = e4();
    if (gu) {
      k3(true);
      try {
        e4();
      } finally {
        k3(false);
      }
    }
    return t5.memoizedState = [r5, n7], r5;
  }, useReducer: function(e4, n7, t5) {
    var r5 = qe();
    if (void 0 !== t5) {
      var l5 = t5(n7);
      if (gu) {
        k3(true);
        try {
          t5(n7);
        } finally {
          k3(false);
        }
      }
    } else l5 = n7;
    return r5.memoizedState = r5.baseState = l5, e4 = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: e4, lastRenderedState: l5 }, r5.queue = e4, e4 = e4.dispatch = Bn.bind(null, du, e4), [r5.memoizedState, e4];
  }, useRef: function(e4) {
    return e4 = { current: e4 }, qe().memoizedState = e4;
  }, useState: function(e4) {
    var n7 = (e4 = sn(e4)).queue, t5 = $n.bind(null, du, n7);
    return n7.dispatch = t5, [e4.memoizedState, t5];
  }, useDebugValue: Dn, useDeferredValue: function(e4, n7) {
    return jn(qe(), e4, n7);
  }, useTransition: function() {
    var e4 = sn(false);
    return e4 = Hn.bind(null, du, e4.queue, true, false), qe().memoizedState = e4, [false, e4];
  }, useSyncExternalStore: function(e4, n7, t5) {
    var l5 = du, a6 = qe();
    if (t5 = n7(), null === Wu) throw Error(r4(349));
    0 != (127 & Bu) || rn(l5, n7, t5), a6.memoizedState = t5;
    var o6 = { value: t5, getSnapshot: n7 };
    return a6.queue = o6, Pn(an.bind(null, l5, o6, e4), [e4]), l5.flags |= 2048, zn(9, { destroy: void 0 }, ln.bind(null, l5, o6, t5, n7), null), t5;
  }, useId: function() {
    var e4 = qe(), n7 = Wu.identifierPrefix;
    return n7 = "_" + n7 + "r_" + (Su++).toString(32) + "_", e4.memoizedState = n7;
  }, useHostTransitionStatus: On, useFormState: bn, useActionState: bn, useOptimistic: function(e4) {
    var n7 = qe();
    n7.memoizedState = n7.baseState = e4;
    var t5 = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: null, lastRenderedState: null };
    return n7.queue = t5, n7 = qn.bind(null, du, true, t5), t5.dispatch = n7, [e4, n7];
  }, useMemoCache: Ke, useCacheRefresh: function() {
    return qe().memoizedState = Qn.bind(null, du);
  }, useEffectEvent: function(e4) {
    var n7 = qe(), t5 = { impl: e4 };
    return n7.memoizedState = t5, function() {
      if (0 != (2 & Mu)) throw Error(r4(440));
      return t5.impl.apply(void 0, arguments);
    };
  } }, zu = { readContext: O, use: Je, useCallback: In, useContext: O, useEffect: _n, useImperativeHandle: Un, useInsertionEffect: Rn, useLayoutEffect: Nn, useMemo: Fn, useReducer: Ze, useRef: xn, useState: function() {
    return Ze(Xe);
  }, useDebugValue: Dn, useDeferredValue: function(e4, n7) {
    return An(Ye(), fu.memoizedState, e4, n7);
  }, useTransition: function() {
    var e4 = Ze(Xe)[0], n7 = Ye().memoizedState;
    return ["boolean" == typeof e4 ? e4 : Ge(e4), n7];
  }, useSyncExternalStore: tn, useId: Mn, useHostTransitionStatus: On, useFormState: vn, useActionState: vn, useOptimistic: function(e4, n7) {
    return cn(Ye(), 0, e4, n7);
  }, useMemoCache: Ke, useCacheRefresh: Wn };
  zu.useEffectEvent = Tn;
  var xu = { readContext: O, use: Je, useCallback: In, useContext: O, useEffect: _n, useImperativeHandle: Un, useInsertionEffect: Rn, useLayoutEffect: Nn, useMemo: Fn, useReducer: nn, useRef: xn, useState: function() {
    return nn(Xe);
  }, useDebugValue: Dn, useDeferredValue: function(e4, n7) {
    var t5 = Ye();
    return null === fu ? jn(t5, e4, n7) : An(t5, fu.memoizedState, e4, n7);
  }, useTransition: function() {
    var e4 = nn(Xe)[0], n7 = Ye().memoizedState;
    return ["boolean" == typeof e4 ? e4 : Ge(e4), n7];
  }, useSyncExternalStore: tn, useId: Mn, useHostTransitionStatus: On, useFormState: wn, useActionState: wn, useOptimistic: function(e4, n7) {
    var t5 = Ye();
    return null !== fu ? cn(t5, 0, e4, n7) : (t5.baseState = e4, [e4, t5.queue.dispatch]);
  }, useMemoCache: Ke, useCacheRefresh: Wn };
  xu.useEffectEvent = Tn;
  var Eu = { enqueueSetState: function(e4, n7, t5) {
    e4 = e4._reactInternals;
    var r5 = kr(), l5 = ke(r5);
    l5.payload = n7, null != t5 && (l5.callback = t5), null !== (n7 = we(e4, l5, r5)) && (zr(n7, 0, r5), ze(n7, e4, r5));
  }, enqueueReplaceState: function(e4, n7, t5) {
    e4 = e4._reactInternals;
    var r5 = kr(), l5 = ke(r5);
    l5.tag = 1, l5.payload = n7, null != t5 && (l5.callback = t5), null !== (n7 = we(e4, l5, r5)) && (zr(n7, 0, r5), ze(n7, e4, r5));
  }, enqueueForceUpdate: function(e4, n7) {
    e4 = e4._reactInternals;
    var t5 = kr(), r5 = ke(t5);
    r5.tag = 2, null != n7 && (r5.callback = n7), null !== (n7 = we(e4, r5, t5)) && (zr(n7, 0, t5), ze(n7, e4, t5));
  } }, Cu = Error(r4(461)), Pu = false, _u = { dehydrated: null, treeContext: null, retryLane: 0, hydrationErrors: null }, Tu = false, Ru = false, Nu = false, Lu = "function" == typeof WeakSet ? WeakSet : Set, Uu = null, Du = null, Iu = false, Fu = null, ju = 8192, Au = { getCacheForType: function(e4) {
    var n7 = O(Lo), t5 = n7.data.get(e4);
    return void 0 === t5 && (t5 = e4(), n7.data.set(e4, t5)), t5;
  }, cacheSignal: function() {
    return O(Lo).controller.signal;
  } };
  if ("function" == typeof Symbol && Symbol.for) {
    var Hu = Symbol.for;
    Hu("selector.component"), Hu("selector.has_pseudo_class"), Hu("selector.role"), Hu("selector.test_id"), Hu("selector.text");
  }
  var Ou = "function" == typeof WeakMap ? WeakMap : Map, Mu = 0, Wu = null, Qu = null, Bu = 0, $u = 0, Vu = null, qu = false, Yu = false, Gu = false, Ju = 0, Ku = 0, Xu = 0, Zu = 0, ei = 0, ni = 0, ti = 0, ri = null, li = null, ai = false, oi = 0, ui = 0, ii = 1 / 0, si = null, ci = null, di = 0, fi = null, pi = null, mi = 0, hi = 0, gi = null, yi = null, bi = 0, vi = null;
  return fl2.createContainer = function(e4, n7, r5, l5, a6, o6, u5, i6, s5, c7) {
    return (function(e5, n8, r6, l6, a7, o7, u6, i7, s6, c8, d4, f5) {
      return e5 = new cl(e5, n8, r6, u6, s6, c8, d4, f5, null), n8 = 1, true === o7 && (n8 |= 24), o7 = t4(3, null, null, n8), e5.current = o7, o7.stateNode = e5, (n8 = Q()).refCount++, e5.pooledCache = n8, n8.refCount++, o7.memoizedState = { element: l6, isDehydrated: r6, cache: n8 }, ve(o7), e5;
    })(e4, n7, false, null, 0, l5, o6, 0, u5, i6, s5, c7);
  }, fl2.flushSyncWork = function() {
    return 0 != (6 & Mu) || (q(0), false);
  }, fl2.updateContainer = function(e4, n7, t5, r5) {
    var l5 = n7.current, a6 = kr();
    return dl(l5, a6, e4, n7, t5, r5), a6;
  }, fl2.updateContainerSync = function(e4, n7, t5, r5) {
    return dl(n7.current, 2, e4, n7, t5, r5), 2;
  }, fl2;
}, s2.exports.default = s2.exports, Object.defineProperty(s2.exports, "__esModule", { value: true })), o3.exports) : a3.exports = (function() {
  return i3 || (i3 = 1, n6 = c4, "production" !== process.env.NODE_ENV && (n6.exports = function(n7) {
    function t4(e4, n8, t5, r5) {
      return new eo(e4, n8, t5, r5);
    }
    function r4() {
      console.error("Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks");
    }
    function l4() {
      console.error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");
    }
    function a5() {
    }
    function o5(e4) {
      var n8 = [];
      return e4.forEach((function(e5) {
        n8.push(e5);
      })), n8.sort().join(", ");
    }
    function i5(e4) {
      return null === e4 || "object" != typeof e4 ? null : "function" == typeof (e4 = No && e4[No] || e4["@@iterator"]) ? e4 : null;
    }
    function s4(e4) {
      if (null == e4) return null;
      if ("function" == typeof e4) return e4.$$typeof === Lo ? null : e4.displayName || e4.name || null;
      if ("string" == typeof e4) return e4;
      switch (e4) {
        case vo:
          return "Fragment";
        case ko:
          return "Profiler";
        case So:
          return "StrictMode";
        case Eo:
          return "Suspense";
        case Co:
          return "SuspenseList";
        case To:
          return "Activity";
      }
      if ("object" == typeof e4) switch ("number" == typeof e4.tag && console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), e4.$$typeof) {
        case bo:
          return "Portal";
        case zo:
          return e4.displayName || "Context";
        case wo:
          return (e4._context.displayName || "Context") + ".Consumer";
        case xo:
          var n8 = e4.render;
          return (e4 = e4.displayName) || (e4 = "" !== (e4 = n8.displayName || n8.name || "") ? "ForwardRef(" + e4 + ")" : "ForwardRef"), e4;
        case Po:
          return null !== (n8 = e4.displayName || null) ? n8 : s4(e4.type) || "Memo";
        case _o:
          n8 = e4._payload, e4 = e4._init;
          try {
            return s4(e4(n8));
          } catch (e5) {
          }
      }
      return null;
    }
    function c6(e4) {
      var n8 = e4.type;
      switch (e4.tag) {
        case 31:
          return "Activity";
        case 24:
          return "Cache";
        case 9:
          return (n8._context.displayName || "Context") + ".Consumer";
        case 10:
          return n8.displayName || "Context";
        case 18:
          return "DehydratedFragment";
        case 11:
          return e4 = (e4 = n8.render).displayName || e4.name || "", n8.displayName || ("" !== e4 ? "ForwardRef(" + e4 + ")" : "ForwardRef");
        case 7:
          return "Fragment";
        case 26:
        case 27:
        case 5:
          return n8;
        case 4:
          return "Portal";
        case 3:
          return "Root";
        case 6:
          return "Text";
        case 16:
          return s4(n8);
        case 8:
          return n8 === So ? "StrictMode" : "Mode";
        case 22:
          return "Offscreen";
        case 12:
          return "Profiler";
        case 21:
          return "Scope";
        case 13:
          return "Suspense";
        case 19:
          return "SuspenseList";
        case 25:
          return "TracingMarker";
        case 1:
        case 0:
        case 14:
        case 15:
          if ("function" == typeof n8) return n8.displayName || n8.name || null;
          if ("string" == typeof n8) return n8;
          break;
        case 29:
          if (null != (n8 = e4._debugInfo)) {
            for (var t5 = n8.length - 1; 0 <= t5; t5--) if ("string" == typeof n8[t5].name) return n8[t5].name;
          }
          if (null !== e4.return) return c6(e4.return);
      }
      return null;
    }
    function d3(e4) {
      return { current: e4 };
    }
    function f4(e4, n8) {
      0 > Vu ? console.error("Unexpected pop.") : (n8 !== $u[Vu] && console.error("Unexpected Fiber popped."), e4.current = Bu[Vu], Bu[Vu] = null, $u[Vu] = null, Vu--);
    }
    function p3(e4, n8, t5) {
      Vu++, Bu[Vu] = e4.current, $u[Vu] = t5, e4.current = n8;
    }
    function m3(e4) {
      var n8 = 42 & e4;
      if (0 !== n8) return n8;
      switch (e4 & -e4) {
        case 1:
          return 1;
        case 2:
          return 2;
        case 4:
          return 4;
        case 8:
          return 8;
        case 16:
          return 16;
        case 32:
          return 32;
        case 64:
          return 64;
        case 128:
          return 128;
        case 256:
        case 512:
        case 1024:
        case 2048:
        case 4096:
        case 8192:
        case 16384:
        case 32768:
        case 65536:
        case 131072:
          return 261888 & e4;
        case 262144:
        case 524288:
        case 1048576:
        case 2097152:
          return 3932160 & e4;
        case 4194304:
        case 8388608:
        case 16777216:
        case 33554432:
          return 62914560 & e4;
        case 67108864:
          return 67108864;
        case 134217728:
          return 134217728;
        case 268435456:
          return 268435456;
        case 536870912:
          return 536870912;
        case 1073741824:
          return 0;
        default:
          return console.error("Should have found matching lanes. This is a bug in React."), e4;
      }
    }
    function h4(e4, n8, t5) {
      var r5 = e4.pendingLanes;
      if (0 === r5) return 0;
      var l5 = 0, a6 = e4.suspendedLanes, o6 = e4.pingedLanes;
      e4 = e4.warmLanes;
      var u5 = 134217727 & r5;
      return 0 !== u5 ? 0 != (r5 = u5 & ~a6) ? l5 = m3(r5) : 0 != (o6 &= u5) ? l5 = m3(o6) : t5 || 0 != (t5 = u5 & ~e4) && (l5 = m3(t5)) : 0 != (u5 = r5 & ~a6) ? l5 = m3(u5) : 0 !== o6 ? l5 = m3(o6) : t5 || 0 != (t5 = r5 & ~e4) && (l5 = m3(t5)), 0 === l5 ? 0 : 0 !== n8 && n8 !== l5 && 0 == (n8 & a6) && ((a6 = l5 & -l5) >= (t5 = n8 & -n8) || 32 === a6 && 0 != (4194048 & t5)) ? n8 : l5;
    }
    function g3(e4, n8) {
      return 0 == (e4.pendingLanes & ~(e4.suspendedLanes & ~e4.pingedLanes) & n8);
    }
    function y3(e4, n8) {
      switch (e4) {
        case 1:
        case 2:
        case 4:
        case 8:
        case 64:
          return n8 + 250;
        case 16:
        case 32:
        case 128:
        case 256:
        case 512:
        case 1024:
        case 2048:
        case 4096:
        case 8192:
        case 16384:
        case 32768:
        case 65536:
        case 131072:
        case 262144:
        case 524288:
        case 1048576:
        case 2097152:
          return n8 + 5e3;
        case 4194304:
        case 8388608:
        case 16777216:
        case 33554432:
        case 67108864:
        case 134217728:
        case 268435456:
        case 536870912:
        case 1073741824:
          return -1;
        default:
          return console.error("Should have found matching lanes. This is a bug in React."), -1;
      }
    }
    function b3() {
      var e4 = Zu;
      return 0 == (62914560 & (Zu <<= 1)) && (Zu = 4194304), e4;
    }
    function v3(e4) {
      for (var n8 = [], t5 = 0; 31 > t5; t5++) n8.push(e4);
      return n8;
    }
    function S3(e4, n8) {
      e4.pendingLanes |= n8, 268435456 !== n8 && (e4.suspendedLanes = 0, e4.pingedLanes = 0, e4.warmLanes = 0);
    }
    function k3(e4, n8, t5) {
      e4.pendingLanes |= n8, e4.suspendedLanes &= ~n8;
      var r5 = 31 - Yu(n8);
      e4.entangledLanes |= n8, e4.entanglements[r5] = 1073741824 | e4.entanglements[r5] | 261930 & t5;
    }
    function w(e4, n8) {
      var t5 = e4.entangledLanes |= n8;
      for (e4 = e4.entanglements; t5; ) {
        var r5 = 31 - Yu(t5), l5 = 1 << r5;
        l5 & n8 | e4[r5] & n8 && (e4[r5] |= n8), t5 &= ~l5;
      }
    }
    function z(e4, n8) {
      var t5 = n8 & -n8;
      return 0 != ((t5 = 0 != (42 & t5) ? 1 : (function(e5) {
        switch (e5) {
          case 2:
            e5 = 1;
            break;
          case 8:
            e5 = 4;
            break;
          case 32:
            e5 = 16;
            break;
          case 256:
          case 512:
          case 1024:
          case 2048:
          case 4096:
          case 8192:
          case 16384:
          case 32768:
          case 65536:
          case 131072:
          case 262144:
          case 524288:
          case 1048576:
          case 2097152:
          case 4194304:
          case 8388608:
          case 16777216:
          case 33554432:
            e5 = 128;
            break;
          case 268435456:
            e5 = 134217728;
            break;
          default:
            e5 = 0;
        }
        return e5;
      })(t5)) & (e4.suspendedLanes | n8)) ? 0 : t5;
    }
    function x(e4, n8, t5) {
      if (fi) for (e4 = e4.pendingUpdatersLaneMap; 0 < t5; ) {
        var r5 = 31 - Yu(t5), l5 = 1 << r5;
        e4[r5].add(n8), t5 &= ~l5;
      }
    }
    function E(e4, n8) {
      if (fi) for (var t5 = e4.pendingUpdatersLaneMap, r5 = e4.memoizedUpdaters; 0 < n8; ) {
        var l5 = 31 - Yu(n8);
        e4 = 1 << l5, 0 < (l5 = t5[l5]).size && (l5.forEach((function(e5) {
          var n9 = e5.alternate;
          null !== n9 && r5.has(n9) || r5.add(e5);
        })), l5.clear()), n8 &= ~e4;
      }
    }
    function C(e4) {
      return 2 < (e4 &= -e4) ? 8 < e4 ? 0 != (134217727 & e4) ? 32 : 268435456 : 8 : 2;
    }
    function P(e4) {
      "function" == typeof si && ci(e4);
    }
    function _(e4, n8, t5, r5) {
      for (var l5 in e4) Ei.call(e4, l5) && "_" !== l5[0] && T(l5, e4[l5], n8, t5, r5);
    }
    function T(e4, n8, t5, r5, l5) {
      switch (typeof n8) {
        case "object":
          if (null === n8) {
            n8 = "null";
            break;
          }
          if (n8.$$typeof === yo) {
            var a6 = s4(n8.type) || "\u2026", o6 = n8.key;
            n8 = n8.props;
            var u5 = Object.keys(n8), i6 = u5.length;
            if (null == o6 && 0 === i6) {
              n8 = "<" + a6 + " />";
              break;
            }
            if (3 > r5 || 1 === i6 && "children" === u5[0] && null == o6) {
              n8 = "<" + a6 + " \u2026 />";
              break;
            }
            for (var c7 in t5.push([l5 + "\xA0\xA0".repeat(r5) + e4, "<" + a6]), null !== o6 && T("key", o6, t5, r5 + 1, l5), e4 = false, n8) "children" === c7 ? null != n8.children && (!Uo(n8.children) || 0 < n8.children.length) && (e4 = true) : Ei.call(n8, c7) && "_" !== c7[0] && T(c7, n8[c7], t5, r5 + 1, l5);
            return void t5.push(["", e4 ? ">\u2026</" + a6 + ">" : "/>"]);
          }
          if ("Array" === (a6 = (a6 = Object.prototype.toString.call(n8)).slice(8, a6.length - 1))) {
            if (c7 = (function(e5) {
              for (var n9 = 0, t6 = 0; t6 < e5.length; t6++) {
                var r6 = e5[t6];
                if ("object" == typeof r6 && null !== r6) {
                  if (!Uo(r6) || 2 !== r6.length || "string" != typeof r6[0]) return 1;
                  if (0 !== n9 && 3 !== n9) return 1;
                  n9 = 3;
                } else {
                  if ("function" == typeof r6 || "string" == typeof r6 && 50 < r6.length || 0 !== n9 && 2 !== n9) return 1;
                  n9 = 2;
                }
              }
              return n9;
            })(n8), 2 === c7 || 0 === c7) {
              n8 = JSON.stringify(n8);
              break;
            }
            if (3 === c7) {
              for (t5.push([l5 + "\xA0\xA0".repeat(r5) + e4, ""]), e4 = 0; e4 < n8.length; e4++) T((a6 = n8[e4])[0], a6[1], t5, r5 + 1, l5);
              return;
            }
          }
          if ("Promise" === a6) {
            if ("fulfilled" === n8.status) {
              if (a6 = t5.length, T(e4, n8.value, t5, r5, l5), t5.length > a6) return void ((t5 = t5[a6])[1] = "Promise<" + (t5[1] || "Object") + ">");
            } else if ("rejected" === n8.status && (a6 = t5.length, T(e4, n8.reason, t5, r5, l5), t5.length > a6)) return void ((t5 = t5[a6])[1] = "Rejected Promise<" + t5[1] + ">");
            return void t5.push(["\xA0\xA0".repeat(r5) + e4, "Promise"]);
          }
          return "Object" === a6 && (c7 = Object.getPrototypeOf(n8)) && "function" == typeof c7.constructor && (a6 = c7.constructor.name), t5.push([l5 + "\xA0\xA0".repeat(r5) + e4, "Object" === a6 ? 3 > r5 ? "" : "\u2026" : a6]), void (3 > r5 && _(n8, t5, r5 + 1, l5));
        case "function":
          n8 = "" === n8.name ? "() => {}" : n8.name + "() {}";
          break;
        case "string":
          n8 = "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === n8 ? "\u2026" : JSON.stringify(n8);
          break;
        case "undefined":
          n8 = "undefined";
          break;
        case "boolean":
          n8 = n8 ? "true" : "false";
          break;
        default:
          n8 = String(n8);
      }
      t5.push([l5 + "\xA0\xA0".repeat(r5) + e4, n8]);
    }
    function R(e4, n8, t5, r5) {
      var l5 = true;
      for (o6 in e4) o6 in n8 || (t5.push(["\u2013\xA0" + "\xA0\xA0".repeat(r5) + o6, "\u2026"]), l5 = false);
      for (var a6 in n8) if (a6 in e4) {
        var o6 = e4[a6], u5 = n8[a6];
        if (o6 !== u5) {
          if (0 === r5 && "children" === a6) l5 = "\xA0\xA0".repeat(r5) + a6, t5.push(["\u2013\xA0" + l5, "\u2026"], ["+\xA0" + l5, "\u2026"]);
          else {
            if (!(3 <= r5)) {
              if ("object" == typeof o6 && "object" == typeof u5 && null !== o6 && null !== u5 && o6.$$typeof === u5.$$typeof) if (u5.$$typeof === yo) {
                if (o6.type === u5.type && o6.key === u5.key) {
                  o6 = s4(u5.type) || "\u2026", l5 = "\xA0\xA0".repeat(r5) + a6, o6 = "<" + o6 + " \u2026 />", t5.push(["\u2013\xA0" + l5, o6], ["+\xA0" + l5, o6]), l5 = false;
                  continue;
                }
              } else {
                var i6 = Object.prototype.toString.call(o6), c7 = Object.prototype.toString.call(u5);
                if (i6 === c7 && ("[object Object]" === c7 || "[object Array]" === c7)) {
                  i6 = ["\u2007\xA0" + "\xA0\xA0".repeat(r5) + a6, "[object Array]" === c7 ? "Array" : ""], t5.push(i6), c7 = t5.length, R(o6, u5, t5, r5 + 1) ? c7 === t5.length && (i6[1] = "Referentially unequal but deeply equal objects. Consider memoization.") : l5 = false;
                  continue;
                }
              }
              else if ("function" == typeof o6 && "function" == typeof u5 && o6.name === u5.name && o6.length === u5.length && (i6 = Function.prototype.toString.call(o6)) === (c7 = Function.prototype.toString.call(u5))) {
                o6 = "" === u5.name ? "() => {}" : u5.name + "() {}", t5.push(["\u2007\xA0" + "\xA0\xA0".repeat(r5) + a6, o6 + " Referentially unequal function closure. Consider memoization."]);
                continue;
              }
            }
            T(a6, o6, t5, r5, "\u2013\xA0"), T(a6, u5, t5, r5, "+\xA0");
          }
          l5 = false;
        }
      } else t5.push(["+\xA0" + "\xA0\xA0".repeat(r5) + a6, "\u2026"]), l5 = false;
      return l5;
    }
    function N(e4) {
      Pi = 63 & e4 ? "Blocking" : 64 & e4 ? "Gesture" : 4194176 & e4 ? "Transition" : 62914560 & e4 ? "Suspense" : 2080374784 & e4 ? "Idle" : "Other";
    }
    function L(e4, n8, t5, r5) {
      Ci && (Ri.start = n8, Ri.end = t5, Ti.color = "warning", Ti.tooltipText = r5, Ti.properties = null, (e4 = e4._debugTask) ? e4.run(performance.measure.bind(performance, r5, Ri)) : performance.measure(r5, Ri));
    }
    function U(e4, n8, t5) {
      L(e4, n8, t5, "Reconnect");
    }
    function D(e4, n8, t5, r5, l5) {
      var a6 = c6(e4);
      if (null !== a6 && Ci) {
        var o6 = e4.alternate, u5 = e4.actualDuration;
        if (null === o6 || o6.child !== e4.child) for (var i6 = e4.child; null !== i6; i6 = i6.sibling) u5 -= i6.actualDuration;
        r5 = 0.5 > u5 ? r5 ? "tertiary-light" : "primary-light" : 10 > u5 ? r5 ? "tertiary" : "primary" : 100 > u5 ? r5 ? "tertiary-dark" : "primary-dark" : "error";
        var s5 = e4.memoizedProps;
        u5 = e4._debugTask, null !== s5 && null !== o6 && o6.memoizedProps !== s5 ? (i6 = [Ni], s5 = R(o6.memoizedProps, s5, i6, 0), 1 < i6.length && (s5 && !_i && 0 == (o6.lanes & l5) && 100 < e4.actualDuration ? (_i = true, i6[0] = Li, Ti.color = "warning", Ti.tooltipText = "This component received deeply equal props. It might benefit from useMemo or the React Compiler in its owner.") : (Ti.color = r5, Ti.tooltipText = a6), Ti.properties = i6, Ri.start = n8, Ri.end = t5, null != u5 ? u5.run(performance.measure.bind(performance, "\u200B" + a6, Ri)) : performance.measure("\u200B" + a6, Ri))) : null != u5 ? u5.run(console.timeStamp.bind(console, a6, n8, t5, "Components \u269B", void 0, r5)) : console.timeStamp(a6, n8, t5, "Components \u269B", void 0, r5);
      }
    }
    function I(e4, n8, t5, r5) {
      if (Ci) {
        var l5 = c6(e4);
        if (null !== l5) {
          for (var a6 = null, o6 = [], u5 = 0; u5 < r5.length; u5++) {
            var i6 = r5[u5];
            null == a6 && null !== i6.source && (a6 = i6.source._debugTask), i6 = i6.value, o6.push(["Error", "object" == typeof i6 && null !== i6 && "string" == typeof i6.message ? String(i6.message) : String(i6)]);
          }
          null !== e4.key && T("key", e4.key, o6, 0, ""), null !== e4.memoizedProps && _(e4.memoizedProps, o6, 0, ""), null == a6 && (a6 = e4._debugTask), e4 = { start: n8, end: t5, detail: { devtools: { color: "error", track: "Components \u269B", tooltipText: 13 === e4.tag ? "Hydration failed" : "Error boundary caught an error", properties: o6 } } }, a6 ? a6.run(performance.measure.bind(performance, "\u200B" + l5, e4)) : performance.measure("\u200B" + l5, e4);
        }
      }
    }
    function F(e4, n8, t5, r5, l5) {
      if (null !== l5) {
        if (Ci) {
          var a6 = c6(e4);
          if (null !== a6) {
            r5 = [];
            for (var o6 = 0; o6 < l5.length; o6++) {
              var u5 = l5[o6].value;
              r5.push(["Error", "object" == typeof u5 && null !== u5 && "string" == typeof u5.message ? String(u5.message) : String(u5)]);
            }
            null !== e4.key && T("key", e4.key, r5, 0, ""), null !== e4.memoizedProps && _(e4.memoizedProps, r5, 0, ""), n8 = { start: n8, end: t5, detail: { devtools: { color: "error", track: "Components \u269B", tooltipText: "A lifecycle or effect errored", properties: r5 } } }, (e4 = e4._debugTask) ? e4.run(performance.measure.bind(performance, "\u200B" + a6, n8)) : performance.measure("\u200B" + a6, n8);
          }
        }
      } else null !== (a6 = c6(e4)) && Ci && (l5 = 1 > r5 ? "secondary-light" : 100 > r5 ? "secondary" : 500 > r5 ? "secondary-dark" : "error", (e4 = e4._debugTask) ? e4.run(console.timeStamp.bind(console, a6, n8, t5, "Components \u269B", void 0, l5)) : console.timeStamp(a6, n8, t5, "Components \u269B", void 0, l5));
    }
    function j(e4, n8, t5, r5) {
      !Ci || n8 <= e4 || (t5 = (738197653 & t5) === t5 ? "tertiary-dark" : "primary-dark", r5 ? r5.run(console.timeStamp.bind(console, "Prewarm", e4, n8, Pi, "Scheduler \u269B", t5)) : console.timeStamp("Prewarm", e4, n8, Pi, "Scheduler \u269B", t5));
    }
    function A(e4, n8, t5, r5) {
      !Ci || n8 <= e4 || (t5 = (738197653 & t5) === t5 ? "tertiary-dark" : "primary-dark", r5 ? r5.run(console.timeStamp.bind(console, "Suspended", e4, n8, Pi, "Scheduler \u269B", t5)) : console.timeStamp("Suspended", e4, n8, Pi, "Scheduler \u269B", t5));
    }
    function H(e4, n8, t5, r5) {
      !Ci || n8 <= e4 || (r5 ? r5.run(console.timeStamp.bind(console, "Errored", e4, n8, Pi, "Scheduler \u269B", "error")) : console.timeStamp("Errored", e4, n8, Pi, "Scheduler \u269B", "error"));
    }
    function O(e4, n8, t5, r5, l5) {
      if (Ci && !(n8 <= e4)) {
        for (var a6 = [], o6 = 0; o6 < t5.length; o6++) {
          var u5 = t5[o6].value;
          a6.push(["Error", "object" == typeof u5 && null !== u5 && "string" == typeof u5.message ? String(u5.message) : String(u5)]);
        }
        e4 = { start: e4, end: n8, detail: { devtools: { color: "error", track: Pi, trackGroup: "Scheduler \u269B", tooltipText: r5 ? "Remaining Effects Errored" : "Commit Errored", properties: a6 } } }, l5 ? l5.run(performance.measure.bind(performance, "Errored", e4)) : performance.measure("Errored", e4);
      }
    }
    function M() {
    }
    function W(e4) {
      var n8 = Error.prepareStackTrace;
      return Error.prepareStackTrace = void 0, e4 = e4.stack, Error.prepareStackTrace = n8, e4.startsWith("Error: react-stack-top-frame\n") && (e4 = e4.slice(29)), -1 !== (n8 = e4.indexOf("\n")) && (e4 = e4.slice(n8 + 1)), -1 !== (n8 = e4.indexOf("react_stack_bottom_frame")) && (n8 = e4.lastIndexOf("\n", n8)), -1 === n8 ? "" : e4 = e4.slice(0, n8);
    }
    function Q(e4) {
      if (void 0 === Di) try {
        throw Error();
      } catch (e5) {
        var n8 = e5.stack.trim().match(/\n( *(at )?)/);
        Di = n8 && n8[1] || "", Ii = -1 < e5.stack.indexOf("\n    at") ? " (<anonymous>)" : -1 < e5.stack.indexOf("@") ? "@unknown:0:0" : "";
      }
      return "\n" + Di + e4 + Ii;
    }
    function B(e4, n8) {
      if (!e4 || Fi) return "";
      var t5, r5 = ji.get(e4);
      if (void 0 !== r5) return r5;
      Fi = true, r5 = Error.prepareStackTrace, Error.prepareStackTrace = void 0, t5 = Do.H, Do.H = null, (function() {
        if (0 === Ui) {
          bi = console.log, vi = console.info, Si = console.warn, ki = console.error, wi = console.group, zi = console.groupCollapsed, xi = console.groupEnd;
          var e5 = { configurable: true, enumerable: true, value: M, writable: true };
          Object.defineProperties(console, { info: e5, log: e5, warn: e5, error: e5, group: e5, groupCollapsed: e5, groupEnd: e5 });
        }
        Ui++;
      })();
      try {
        var l5 = { DetermineComponentFrameRoot: function() {
          try {
            if (n8) {
              var t6 = function() {
                throw Error();
              };
              if (Object.defineProperty(t6.prototype, "props", { set: function() {
                throw Error();
              } }), "object" == typeof Reflect && Reflect.construct) {
                try {
                  Reflect.construct(t6, []);
                } catch (e5) {
                  var r6 = e5;
                }
                Reflect.construct(e4, [], t6);
              } else {
                try {
                  t6.call();
                } catch (e5) {
                  r6 = e5;
                }
                e4.call(t6.prototype);
              }
            } else {
              try {
                throw Error();
              } catch (e5) {
                r6 = e5;
              }
              (t6 = e4()) && "function" == typeof t6.catch && t6.catch((function() {
              }));
            }
          } catch (e5) {
            if (e5 && r6 && "string" == typeof e5.stack) return [e5.stack, r6.stack];
          }
          return [null, null];
        } };
        l5.DetermineComponentFrameRoot.displayName = "DetermineComponentFrameRoot";
        var a6 = Object.getOwnPropertyDescriptor(l5.DetermineComponentFrameRoot, "name");
        a6 && a6.configurable && Object.defineProperty(l5.DetermineComponentFrameRoot, "name", { value: "DetermineComponentFrameRoot" });
        var o6 = l5.DetermineComponentFrameRoot(), u5 = o6[0], i6 = o6[1];
        if (u5 && i6) {
          var s5 = u5.split("\n"), c7 = i6.split("\n");
          for (o6 = a6 = 0; a6 < s5.length && !s5[a6].includes("DetermineComponentFrameRoot"); ) a6++;
          for (; o6 < c7.length && !c7[o6].includes("DetermineComponentFrameRoot"); ) o6++;
          if (a6 === s5.length || o6 === c7.length) for (a6 = s5.length - 1, o6 = c7.length - 1; 1 <= a6 && 0 <= o6 && s5[a6] !== c7[o6]; ) o6--;
          for (; 1 <= a6 && 0 <= o6; a6--, o6--) if (s5[a6] !== c7[o6]) {
            if (1 !== a6 || 1 !== o6) do {
              if (a6--, 0 > --o6 || s5[a6] !== c7[o6]) {
                var d4 = "\n" + s5[a6].replace(" at new ", " at ");
                return e4.displayName && d4.includes("<anonymous>") && (d4 = d4.replace("<anonymous>", e4.displayName)), "function" == typeof e4 && ji.set(e4, d4), d4;
              }
            } while (1 <= a6 && 0 <= o6);
            break;
          }
        }
      } finally {
        Fi = false, Do.H = t5, (function() {
          if (0 == --Ui) {
            var e5 = { configurable: true, enumerable: true, writable: true };
            Object.defineProperties(console, { log: ho({}, e5, { value: bi }), info: ho({}, e5, { value: vi }), warn: ho({}, e5, { value: Si }), error: ho({}, e5, { value: ki }), group: ho({}, e5, { value: wi }), groupCollapsed: ho({}, e5, { value: zi }), groupEnd: ho({}, e5, { value: xi }) });
          }
          0 > Ui && console.error("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
        })(), Error.prepareStackTrace = r5;
      }
      return s5 = (s5 = e4 ? e4.displayName || e4.name : "") ? Q(s5) : "", "function" == typeof e4 && ji.set(e4, s5), s5;
    }
    function $(e4, n8) {
      switch (e4.tag) {
        case 26:
        case 27:
        case 5:
          return Q(e4.type);
        case 16:
          return Q("Lazy");
        case 13:
          return e4.child !== n8 && null !== n8 ? Q("Suspense Fallback") : Q("Suspense");
        case 19:
          return Q("SuspenseList");
        case 0:
        case 15:
          return B(e4.type, false);
        case 11:
          return B(e4.type.render, false);
        case 1:
          return B(e4.type, true);
        case 31:
          return Q("Activity");
        default:
          return "";
      }
    }
    function V(e4) {
      try {
        var n8 = "", t5 = null;
        do {
          n8 += $(e4, t5);
          var r5 = e4._debugInfo;
          if (r5) for (var l5 = r5.length - 1; 0 <= l5; l5--) {
            var a6 = r5[l5];
            if ("string" == typeof a6.name) {
              var o6 = n8;
              e: {
                var u5 = a6.name, i6 = a6.env, s5 = a6.debugLocation;
                if (null != s5) {
                  var c7 = W(s5), d4 = c7.lastIndexOf("\n"), f5 = -1 === d4 ? c7 : c7.slice(d4 + 1);
                  if (-1 !== f5.indexOf(u5)) {
                    var p4 = "\n" + f5;
                    break e;
                  }
                }
                p4 = Q(u5 + (i6 ? " [" + i6 + "]" : ""));
              }
              n8 = o6 + p4;
            }
          }
          t5 = e4, e4 = e4.return;
        } while (e4);
        return n8;
      } catch (e5) {
        return "\nError generating stack: " + e5.message + "\n" + e5.stack;
      }
    }
    function q(e4) {
      return (e4 = e4 ? e4.displayName || e4.name : "") ? Q(e4) : "";
    }
    function Y(e4, n8) {
      if ("object" == typeof e4 && null !== e4) {
        var t5 = Ai.get(e4);
        return void 0 !== t5 ? t5 : (n8 = { value: e4, source: n8, stack: V(n8) }, Ai.set(e4, n8), n8);
      }
      return { value: e4, source: n8, stack: V(n8) };
    }
    function G2(e4) {
      for (; e4 === Mi; ) Mi = Hi[--Oi], Hi[Oi] = null, Wi = Hi[--Oi], Hi[Oi] = null;
      for (; e4 === $i; ) $i = Qi[--Bi], Qi[Bi] = null, qi = Qi[--Bi], Qi[Bi] = null, Vi = Qi[--Bi], Qi[Bi] = null;
    }
    function J() {
      console.error("Expected to be hydrating. This is a bug in React. Please file an issue.");
    }
    function K(e4) {
      return null === e4 && console.error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."), e4;
    }
    function X(e4, n8) {
      p3(Ji, n8, e4), p3(Gi, e4, e4), p3(Yi, null, e4), n8 = Fo(n8), f4(Yi, e4), p3(Yi, n8, e4);
    }
    function Z(e4) {
      f4(Yi, e4), f4(Gi, e4), f4(Ji, e4);
    }
    function ee() {
      return K(Yi.current);
    }
    function ne(e4) {
      null !== e4.memoizedState && p3(Ki, e4, e4);
      var n8 = K(Yi.current), t5 = jo(n8, e4.type);
      n8 !== t5 && (p3(Gi, e4, e4), p3(Yi, t5, e4));
    }
    function te(e4) {
      Gi.current === e4 && (f4(Yi, e4), f4(Gi, e4)), Ki.current === e4 && (f4(Ki, e4), mu._currentValue2 = pu);
    }
    function re() {
      if (null === Xi) return "";
      var e4 = Xi;
      try {
        var n8 = "";
        switch (6 === e4.tag && (e4 = e4.return), e4.tag) {
          case 26:
          case 27:
          case 5:
            n8 += Q(e4.type);
            break;
          case 13:
            n8 += Q("Suspense");
            break;
          case 19:
            n8 += Q("SuspenseList");
            break;
          case 31:
            n8 += Q("Activity");
            break;
          case 30:
          case 0:
          case 15:
          case 1:
            e4._debugOwner || "" !== n8 || (n8 += q(e4.type));
            break;
          case 11:
            e4._debugOwner || "" !== n8 || (n8 += q(e4.type.render));
        }
        for (; e4; ) if ("number" == typeof e4.tag) {
          var t5 = e4;
          e4 = t5._debugOwner;
          var r5 = t5._debugStack;
          if (e4 && r5) {
            var l5 = W(r5);
            "" !== l5 && (n8 += "\n" + l5);
          }
        } else {
          if (null == e4.debugStack) break;
          var a6 = e4.debugStack;
          (e4 = e4.owner) && a6 && (n8 += "\n" + W(a6));
        }
        var o6 = n8;
      } catch (e5) {
        o6 = "\nError generating stack: " + e5.message + "\n" + e5.stack;
      }
      return o6;
    }
    function le(e4, n8, t5, r5, l5, a6, o6) {
      var u5 = Xi;
      ae(e4);
      try {
        return null !== e4 && e4._debugTask ? e4._debugTask.run(n8.bind(null, t5, r5, l5, a6, o6)) : n8(t5, r5, l5, a6, o6);
      } finally {
        ae(u5);
      }
      throw Error("runWithFiberInDEV should never be called in production. This is a bug in React.");
    }
    function ae(e4) {
      Do.getCurrentStack = null === e4 ? null : re, Zi = false, Xi = e4;
    }
    function oe() {
      var e4 = ns;
      return null !== e4 && (null === Ep ? Ep = e4 : Ep.push.apply(Ep, e4), ns = null), e4;
    }
    function ue() {
      us = os2 = null, is3 = false;
    }
    function ie(e4, n8, t5) {
      p3(rs, n8._currentValue2, e4), n8._currentValue2 = t5, p3(ls, n8._currentRenderer2, e4), void 0 !== n8._currentRenderer2 && null !== n8._currentRenderer2 && n8._currentRenderer2 !== as && console.error("Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."), n8._currentRenderer2 = as;
    }
    function se(e4, n8) {
      var t5 = rs.current;
      e4._currentValue2 = t5, t5 = ls.current, f4(ls, n8), e4._currentRenderer2 = t5, f4(rs, n8);
    }
    function ce(e4, n8, t5) {
      for (; null !== e4; ) {
        var r5 = e4.alternate;
        if ((e4.childLanes & n8) !== n8 ? (e4.childLanes |= n8, null !== r5 && (r5.childLanes |= n8)) : null !== r5 && (r5.childLanes & n8) !== n8 && (r5.childLanes |= n8), e4 === t5) break;
        e4 = e4.return;
      }
      e4 !== t5 && console.error("Expected to find the propagation root when scheduling context work. This error is likely caused by a bug in React. Please file an issue.");
    }
    function de(e4, n8, t5, r5) {
      var l5 = e4.child;
      for (null !== l5 && (l5.return = e4); null !== l5; ) {
        var a6 = l5.dependencies;
        if (null !== a6) {
          var o6 = l5.child;
          a6 = a6.firstContext;
          e: for (; null !== a6; ) {
            var u5 = a6;
            a6 = l5;
            for (var i6 = 0; i6 < n8.length; i6++) if (u5.context === n8[i6]) {
              a6.lanes |= t5, null !== (u5 = a6.alternate) && (u5.lanes |= t5), ce(a6.return, t5, e4), r5 || (o6 = null);
              break e;
            }
            a6 = u5.next;
          }
        } else if (18 === l5.tag) {
          if (null === (o6 = l5.return)) throw Error("We just came from a parent so we must have had a parent. This is a bug in React.");
          o6.lanes |= t5, null !== (a6 = o6.alternate) && (a6.lanes |= t5), ce(o6, t5, e4), o6 = null;
        } else o6 = l5.child;
        if (null !== o6) o6.return = l5;
        else for (o6 = l5; null !== o6; ) {
          if (o6 === e4) {
            o6 = null;
            break;
          }
          if (null !== (l5 = o6.sibling)) {
            l5.return = o6.return, o6 = l5;
            break;
          }
          o6 = o6.return;
        }
        l5 = o6;
      }
    }
    function fe(e4, n8, t5, r5) {
      e4 = null;
      for (var l5 = n8, a6 = false; null !== l5; ) {
        if (!a6) {
          if (0 != (524288 & l5.flags)) a6 = true;
          else if (0 != (262144 & l5.flags)) break;
        }
        if (10 === l5.tag) {
          var o6 = l5.alternate;
          if (null === o6) throw Error("Should have a current fiber. This is a bug in React.");
          if (null !== (o6 = o6.memoizedProps)) {
            var u5 = l5.type;
            yi(l5.pendingProps.value, o6.value) || (null !== e4 ? e4.push(u5) : e4 = [u5]);
          }
        } else if (l5 === Ki.current) {
          if (null === (o6 = l5.alternate)) throw Error("Should have a current fiber. This is a bug in React.");
          o6.memoizedState.memoizedState !== l5.memoizedState.memoizedState && (null !== e4 ? e4.push(mu) : e4 = [mu]);
        }
        l5 = l5.return;
      }
      null !== e4 && de(n8, e4, t5, r5), n8.flags |= 262144;
    }
    function pe(e4) {
      for (e4 = e4.firstContext; null !== e4; ) {
        var n8 = e4.context;
        if (!yi(n8._currentValue2, e4.memoizedValue)) return true;
        e4 = e4.next;
      }
      return false;
    }
    function me(e4) {
      os2 = e4, us = null, null !== (e4 = e4.dependencies) && (e4.firstContext = null);
    }
    function he(e4) {
      return is3 && console.error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."), ye(os2, e4);
    }
    function ge(e4, n8) {
      return null === os2 && me(e4), ye(e4, n8);
    }
    function ye(e4, n8) {
      var t5 = n8._currentValue2;
      if (n8 = { context: n8, memoizedValue: t5, next: null }, null === us) {
        if (null === e4) throw Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");
        us = n8, e4.dependencies = { lanes: 0, firstContext: n8, _debugThenableState: null }, e4.flags |= 524288;
      } else us = us.next = n8;
      return t5;
    }
    function be() {
      return { controller: new ss(), data: /* @__PURE__ */ new Map(), refCount: 0 };
    }
    function ve(e4) {
      e4.controller.signal.aborted && console.warn("A cache instance was retained after it was already freed. This likely indicates a bug in React."), e4.refCount++;
    }
    function Se(e4) {
      e4.refCount--, 0 > e4.refCount && console.warn("A cache instance was released after it was already freed. This likely indicates a bug in React."), 0 === e4.refCount && cs(ds, (function() {
        e4.controller.abort();
      }));
    }
    function ke(e4, n8, t5) {
      0 != (127 & e4) ? 0 > Ps && (Ps = ps(), _s = ms(n8), Rs = n8, null != t5 && (Ns = c6(t5)), (Xf & (Qf | Bf)) !== Wf && (Es = true, Ts = 1), e4 = tu(), n8 = nu(), e4 !== Ds || n8 !== Us ? Ds = -1.1 : null !== n8 && (Ts = 1), Ls = e4, Us = n8) : 0 != (4194048 & e4) && 0 > As && (As = ps(), Os = ms(n8), Ms = n8, null != t5 && (Ws = c6(t5)), 0 > js) && (e4 = tu(), n8 = nu(), e4 === $s && n8 === Bs || ($s = -1.1), Qs = e4, Bs = n8);
    }
    function we() {
      var e4 = Ss;
      return Ss = 0, e4;
    }
    function ze(e4) {
      var n8 = Ss;
      return Ss = e4, n8;
    }
    function xe(e4) {
      var n8 = Ss;
      return Ss += e4, n8;
    }
    function Ee() {
      zs = ws = -1.1;
    }
    function Ce() {
      var e4 = ws;
      return ws = -1.1, e4;
    }
    function Pe(e4) {
      0 <= e4 && (ws = e4);
    }
    function _e() {
      var e4 = ks;
      return ks = -0, e4;
    }
    function Te(e4) {
      0 <= e4 && (ks = e4);
    }
    function Re() {
      var e4 = xs;
      return xs = null, e4;
    }
    function Ne() {
      var e4 = Es;
      return Es = false, e4;
    }
    function Le(e4) {
      vs = ps(), 0 > e4.actualStartTime && (e4.actualStartTime = vs);
    }
    function Ue(e4) {
      if (0 <= vs) {
        var n8 = ps() - vs;
        e4.actualDuration += n8, e4.selfBaseDuration = n8, vs = -1;
      }
    }
    function De(e4) {
      if (0 <= vs) {
        var n8 = ps() - vs;
        e4.actualDuration += n8, vs = -1;
      }
    }
    function Ie() {
      if (0 <= vs) {
        var e4 = ps(), n8 = e4 - vs;
        vs = -1, Ss += n8, ks += n8, zs = e4;
      }
    }
    function Fe(e4) {
      null === xs && (xs = []), xs.push(e4), null === bs && (bs = []), bs.push(e4);
    }
    function je() {
      vs = ps(), 0 > ws && (ws = vs);
    }
    function Ae(e4) {
      for (var n8 = e4.child; n8; ) e4.actualDuration += n8.actualDuration, n8 = n8.sibling;
    }
    function He() {
    }
    function Oe(e4) {
      e4 !== Zs && null === e4.next && (null === Zs ? Xs = Zs = e4 : Zs = Zs.next = e4), tc = true, null !== Do.actQueue ? nc || (nc = true, Ye()) : ec2 || (ec2 = true, Ye());
    }
    function Me(e4, n8) {
      if (!rc && tc) {
        rc = true;
        do {
          for (var t5 = false, r5 = Xs; null !== r5; ) {
            if (0 !== e4) {
              var l5 = r5.pendingLanes;
              if (0 === l5) var a6 = 0;
              else {
                var o6 = r5.suspendedLanes, u5 = r5.pingedLanes;
                a6 = (1 << 31 - Yu(42 | e4) + 1) - 1, a6 = 201326741 & (a6 &= l5 & ~(o6 & ~u5)) ? 201326741 & a6 | 1 : a6 ? 2 | a6 : 0;
              }
              0 !== a6 && (t5 = true, Ve(r5, a6));
            } else a6 = np, 0 == (3 & (a6 = h4(r5, r5 === Zf ? a6 : 0, null !== r5.cancelPendingCommit || r5.timeoutHandle !== qo))) || g3(r5, a6) || (t5 = true, Ve(r5, a6));
            r5 = r5.next;
          }
        } while (t5);
        rc = false;
      }
    }
    function We() {
      eu(), Qe();
    }
    function Qe() {
      tc = nc = ec2 = false;
      var e4 = 0;
      0 !== lc && ru() && (e4 = lc);
      for (var n8 = li(), t5 = null, r5 = Xs; null !== r5; ) {
        var l5 = r5.next, a6 = Be(r5, n8);
        0 === a6 ? (r5.next = null, null === t5 ? Xs = l5 : t5.next = l5, null === l5 && (Zs = t5)) : (t5 = r5, (0 !== e4 || 0 != (3 & a6)) && (tc = true)), r5 = l5;
      }
      $p !== Hp && $p !== Bp || Me(e4), 0 !== lc && (lc = 0);
    }
    function Be(e4, n8) {
      for (var t5 = e4.suspendedLanes, r5 = e4.pingedLanes, l5 = e4.expirationTimes, a6 = -62914561 & e4.pendingLanes; 0 < a6; ) {
        var o6 = 31 - Yu(a6), u5 = 1 << o6, i6 = l5[o6];
        -1 === i6 ? 0 != (u5 & t5) && 0 == (u5 & r5) || (l5[o6] = y3(u5, n8)) : i6 <= n8 && (e4.expiredLanes |= u5), a6 &= ~u5;
      }
      if (t5 = np, t5 = h4(e4, e4 === (n8 = Zf) ? t5 : 0, null !== e4.cancelPendingCommit || e4.timeoutHandle !== qo), r5 = e4.callbackNode, 0 === t5 || e4 === n8 && (fp2 === lp || fp2 === dp) || null !== e4.cancelPendingCommit) return null !== r5 && qe(r5), e4.callbackNode = null, e4.callbackPriority = 0;
      if (0 == (3 & t5) || g3(e4, t5)) {
        if ((n8 = t5 & -t5) === e4.callbackPriority && (null === Do.actQueue || r5 === ac)) return n8;
        switch (qe(r5), C(t5)) {
          case 2:
          case 8:
            t5 = oi;
            break;
          case 32:
          default:
            t5 = ui;
            break;
          case 268435456:
            t5 = ii;
        }
        return r5 = $e.bind(null, e4), null !== Do.actQueue ? (Do.actQueue.push(r5), t5 = ac) : t5 = ei(t5, r5), e4.callbackPriority = n8, e4.callbackNode = t5, n8;
      }
      return null !== r5 && qe(r5), e4.callbackPriority = 2, e4.callbackNode = null, 2;
    }
    function $e(e4, n8) {
      if (Ks = Js = false, eu(), $p !== Hp && $p !== Bp) return e4.callbackNode = null, e4.callbackPriority = 0, null;
      var t5 = e4.callbackNode;
      if (em === Ip && (em = jp), Oa() && e4.callbackNode !== t5) return null;
      var r5 = np;
      return 0 === (r5 = h4(e4, e4 === Zf ? r5 : 0, null !== e4.cancelPendingCommit || e4.timeoutHandle !== qo)) ? null : (ma(e4, r5, n8), Be(e4, li()), null != e4.callbackNode && e4.callbackNode === t5 ? $e.bind(null, e4) : null);
    }
    function Ve(e4, n8) {
      if (Oa()) return null;
      Js = Ks, Ks = false, ma(e4, n8, true);
    }
    function qe(e4) {
      e4 !== ac && null !== e4 && ni(e4);
    }
    function Ye() {
      null !== Do.actQueue && Do.actQueue.push((function() {
        return Qe(), null;
      })), ei(ai, We);
    }
    function Ge() {
      if (0 === lc) {
        var e4 = ic;
        0 === e4 && (e4 = Ku, 0 == (261888 & (Ku <<= 1)) && (Ku = 256)), lc = e4;
      }
      return lc;
    }
    function Je() {
      if (0 == --uc && (-1 < As || (js = -1.1), null !== oc)) {
        null !== sc && (sc.status = "fulfilled");
        var e4 = oc;
        oc = null, ic = 0, sc = null;
        for (var n8 = 0; n8 < e4.length; n8++) (0, e4[n8])();
      }
    }
    function Ke() {
      var e4 = dc.current;
      return null !== e4 ? e4 : Zf.pooledCache;
    }
    function Xe(e4, n8) {
      p3(dc, null === n8 ? dc.current : n8.pool, e4);
    }
    function Ze() {
      var e4 = Ke();
      return null === e4 ? null : { parent: fs7._currentValue2, pool: e4 };
    }
    function en(e4, n8) {
      if (yi(e4, n8)) return true;
      if ("object" != typeof e4 || null === e4 || "object" != typeof n8 || null === n8) return false;
      var t5 = Object.keys(e4), r5 = Object.keys(n8);
      if (t5.length !== r5.length) return false;
      for (r5 = 0; r5 < t5.length; r5++) {
        var l5 = t5[r5];
        if (!Ei.call(n8, l5) || !yi(e4[l5], n8[l5])) return false;
      }
      return true;
    }
    function nn(e4) {
      return "fulfilled" === (e4 = e4.status) || "rejected" === e4;
    }
    function tn(e4, n8, t5) {
      null !== Do.actQueue && (Do.didUsePromise = true);
      var r5 = e4.thenables;
      if (void 0 === (t5 = r5[t5]) ? r5.push(n8) : t5 !== n8 && (e4.didWarnAboutUncachedPromise || (e4.didWarnAboutUncachedPromise = true, console.error("A component was suspended by an uncached promise. Creating promises inside a Client Component or hook is not yet supported, except via a Suspense-compatible library or framework.")), n8.then(He, He), n8 = t5), void 0 === n8._debugInfo) {
        e4 = performance.now();
        var l5 = { name: "string" == typeof (r5 = n8.displayName) ? r5 : "Promise", start: e4, end: e4, value: n8 };
        n8._debugInfo = [{ awaited: l5 }], "fulfilled" !== n8.status && "rejected" !== n8.status && (e4 = function() {
          l5.end = performance.now();
        }, n8.then(e4, e4));
      }
      switch (n8.status) {
        case "fulfilled":
          return n8.value;
        case "rejected":
          throw an(e4 = n8.reason), e4;
        default:
          if ("string" == typeof n8.status) n8.then(He, He);
          else {
            if (null !== (e4 = Zf) && 100 < e4.shellSuspendCounter) throw Error("An unknown Component is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.");
            (e4 = n8).status = "pending", e4.then((function(e5) {
              if ("pending" === n8.status) {
                var t6 = n8;
                t6.status = "fulfilled", t6.value = e5;
              }
            }), (function(e5) {
              if ("pending" === n8.status) {
                var t6 = n8;
                t6.status = "rejected", t6.reason = e5;
              }
            }));
          }
          switch (n8.status) {
            case "fulfilled":
              return n8.value;
            case "rejected":
              throw an(e4 = n8.reason), e4;
          }
          throw $c = n8, Vc = true, Mc;
      }
    }
    function rn(e4) {
      try {
        return Oc(e4);
      } catch (e5) {
        if (null !== e5 && "object" == typeof e5 && "function" == typeof e5.then) throw $c = e5, Vc = true, Mc;
        throw e5;
      }
    }
    function ln() {
      if (null === $c) throw Error("Expected a suspended thenable. This is a bug in React. Please file an issue.");
      var e4 = $c;
      return $c = null, Vc = false, e4;
    }
    function an(e4) {
      if (e4 === Mc || e4 === Qc) throw Error("Hooks are not supported inside an async component. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.");
    }
    function on2(e4) {
      var n8 = Gc;
      return null != e4 && (Gc = null === n8 ? e4 : n8.concat(e4)), n8;
    }
    function un() {
      var e4 = Gc;
      if (null != e4) {
        for (var n8 = e4.length - 1; 0 <= n8; n8--) if (null != e4[n8].name) {
          var t5 = e4[n8].debugTask;
          if (null != t5) return t5;
        }
      }
      return null;
    }
    function sn(e4, n8, t5) {
      for (var r5 = Object.keys(e4.props), l5 = 0; l5 < r5.length; l5++) {
        var a6 = r5[l5];
        if ("children" !== a6 && "key" !== a6) {
          null === n8 && ((n8 = ao(e4, t5.mode, 0))._debugInfo = Gc, n8.return = t5), le(n8, (function(e5) {
            console.error("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", e5);
          }), a6);
          break;
        }
      }
    }
    function cn(e4) {
      var n8 = Yc;
      return Yc += 1, null === qc && (qc = { didWarnAboutUncachedPromise: false, thenables: [] }), tn(qc, e4, n8);
    }
    function dn(e4, n8) {
      n8 = n8.props.ref, e4.ref = void 0 !== n8 ? n8 : null;
    }
    function fn(e4, n8) {
      if (n8.$$typeof === go) throw Error('A React Element from an older version of React was rendered. This is not supported. It can happen if:\n- Multiple copies of the "react" package is used.\n- A library pre-bundled an old copy of "react" or "react/jsx-runtime".\n- A compiler tries to "inline" JSX instead of using the runtime.');
      throw e4 = Object.prototype.toString.call(n8), Error("Objects are not valid as a React child (found: " + ("[object Object]" === e4 ? "object with keys {" + Object.keys(n8).join(", ") + "}" : e4) + "). If you meant to render a collection of children, use an array instead.");
    }
    function pn(e4, n8) {
      var t5 = un();
      null !== t5 ? t5.run(fn.bind(null, e4, n8)) : fn(e4, n8);
    }
    function mn(e4, n8) {
      var t5 = c6(e4) || "Component";
      Xc[t5] || (Xc[t5] = true, n8 = n8.displayName || n8.name || "Component", 3 === e4.tag ? console.error("Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\n  root.render(%s)", n8, n8, n8) : console.error("Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\n  <%s>{%s}</%s>", n8, n8, t5, n8, t5));
    }
    function hn(e4, n8) {
      var t5 = un();
      null !== t5 ? t5.run(mn.bind(null, e4, n8)) : mn(e4, n8);
    }
    function gn(e4, n8) {
      var t5 = c6(e4) || "Component";
      Zc[t5] || (Zc[t5] = true, n8 = String(n8), 3 === e4.tag ? console.error("Symbols are not valid as a React child.\n  root.render(%s)", n8) : console.error("Symbols are not valid as a React child.\n  <%s>%s</%s>", t5, n8, t5));
    }
    function yn(e4, n8) {
      var t5 = un();
      null !== t5 ? t5.run(gn.bind(null, e4, n8)) : gn(e4, n8);
    }
    function bn(e4) {
      function n8(n9, t5) {
        if (e4) {
          var r6 = n9.deletions;
          null === r6 ? (n9.deletions = [t5], n9.flags |= 16) : r6.push(t5);
        }
      }
      function r5(t5, r6) {
        if (!e4) return null;
        for (; null !== r6; ) n8(t5, r6), r6 = r6.sibling;
        return null;
      }
      function l5(e5) {
        for (var n9 = /* @__PURE__ */ new Map(); null !== e5; ) null !== e5.key ? n9.set(e5.key, e5) : n9.set(e5.index, e5), e5 = e5.sibling;
        return n9;
      }
      function o6(e5, n9) {
        return (e5 = to(e5, n9)).index = 0, e5.sibling = null, e5;
      }
      function u5(n9, t5, r6) {
        return n9.index = r6, e4 ? null !== (r6 = n9.alternate) ? (r6 = r6.index) < t5 ? (n9.flags |= 67108866, t5) : r6 : (n9.flags |= 67108866, t5) : (n9.flags |= 1048576, t5);
      }
      function s5(n9) {
        return e4 && null === n9.alternate && (n9.flags |= 67108866), n9;
      }
      function c7(e5, n9, t5, r6) {
        return null === n9 || 6 !== n9.tag ? ((n9 = uo(t5, e5.mode, r6)).return = e5, n9._debugOwner = e5, n9._debugTask = e5._debugTask, n9._debugInfo = Gc, n9) : ((n9 = o6(n9, t5)).return = e5, n9._debugInfo = Gc, n9);
      }
      function d4(e5, n9, t5, r6) {
        var l6 = t5.type;
        return l6 === vo ? (sn(t5, n9 = p4(e5, n9, t5.props.children, r6, t5.key), e5), n9) : null !== n9 && (n9.elementType === l6 || "object" == typeof l6 && null !== l6 && l6.$$typeof === _o && rn(l6) === n9.type) ? (dn(n9 = o6(n9, t5.props), t5), n9.return = e5, n9._debugOwner = t5._owner, n9._debugInfo = Gc, n9) : (dn(n9 = ao(t5, e5.mode, r6), t5), n9.return = e5, n9._debugInfo = Gc, n9);
      }
      function f5(e5, n9, t5, r6) {
        return null === n9 || 4 !== n9.tag || n9.stateNode.containerInfo !== t5.containerInfo || n9.stateNode.implementation !== t5.implementation ? ((n9 = io(t5, e5.mode, r6)).return = e5, n9._debugInfo = Gc, n9) : ((n9 = o6(n9, t5.children || [])).return = e5, n9._debugInfo = Gc, n9);
      }
      function p4(e5, n9, t5, r6, l6) {
        return null === n9 || 7 !== n9.tag ? ((n9 = oo(t5, e5.mode, r6, l6)).return = e5, n9._debugOwner = e5, n9._debugTask = e5._debugTask, n9._debugInfo = Gc, n9) : ((n9 = o6(n9, t5)).return = e5, n9._debugInfo = Gc, n9);
      }
      function m4(e5, n9, t5) {
        if ("string" == typeof n9 && "" !== n9 || "number" == typeof n9 || "bigint" == typeof n9) return (n9 = uo("" + n9, e5.mode, t5)).return = e5, n9._debugOwner = e5, n9._debugTask = e5._debugTask, n9._debugInfo = Gc, n9;
        if ("object" == typeof n9 && null !== n9) {
          switch (n9.$$typeof) {
            case yo:
              return dn(t5 = ao(n9, e5.mode, t5), n9), t5.return = e5, e5 = on2(n9._debugInfo), t5._debugInfo = Gc, Gc = e5, t5;
            case bo:
              return (n9 = io(n9, e5.mode, t5)).return = e5, n9._debugInfo = Gc, n9;
            case _o:
              var r6 = on2(n9._debugInfo);
              return e5 = m4(e5, n9 = rn(n9), t5), Gc = r6, e5;
          }
          if (Uo(n9) || i5(n9)) return (t5 = oo(n9, e5.mode, t5, null)).return = e5, t5._debugOwner = e5, t5._debugTask = e5._debugTask, e5 = on2(n9._debugInfo), t5._debugInfo = Gc, Gc = e5, t5;
          if ("function" == typeof n9.then) return r6 = on2(n9._debugInfo), e5 = m4(e5, cn(n9), t5), Gc = r6, e5;
          if (n9.$$typeof === zo) return m4(e5, ge(e5, n9), t5);
          pn(e5, n9);
        }
        return "function" == typeof n9 && hn(e5, n9), "symbol" == typeof n9 && yn(e5, n9), null;
      }
      function h5(e5, n9, t5, r6) {
        var l6 = null !== n9 ? n9.key : null;
        if ("string" == typeof t5 && "" !== t5 || "number" == typeof t5 || "bigint" == typeof t5) return null !== l6 ? null : c7(e5, n9, "" + t5, r6);
        if ("object" == typeof t5 && null !== t5) {
          switch (t5.$$typeof) {
            case yo:
              return t5.key === l6 ? (l6 = on2(t5._debugInfo), e5 = d4(e5, n9, t5, r6), Gc = l6, e5) : null;
            case bo:
              return t5.key === l6 ? f5(e5, n9, t5, r6) : null;
            case _o:
              return l6 = on2(t5._debugInfo), e5 = h5(e5, n9, t5 = rn(t5), r6), Gc = l6, e5;
          }
          if (Uo(t5) || i5(t5)) return null !== l6 ? null : (l6 = on2(t5._debugInfo), e5 = p4(e5, n9, t5, r6, null), Gc = l6, e5);
          if ("function" == typeof t5.then) return l6 = on2(t5._debugInfo), e5 = h5(e5, n9, cn(t5), r6), Gc = l6, e5;
          if (t5.$$typeof === zo) return h5(e5, n9, ge(e5, t5), r6);
          pn(e5, t5);
        }
        return "function" == typeof t5 && hn(e5, t5), "symbol" == typeof t5 && yn(e5, t5), null;
      }
      function g4(e5, n9, t5, r6, l6) {
        if ("string" == typeof r6 && "" !== r6 || "number" == typeof r6 || "bigint" == typeof r6) return c7(n9, e5 = e5.get(t5) || null, "" + r6, l6);
        if ("object" == typeof r6 && null !== r6) {
          switch (r6.$$typeof) {
            case yo:
              return t5 = e5.get(null === r6.key ? t5 : r6.key) || null, e5 = on2(r6._debugInfo), n9 = d4(n9, t5, r6, l6), Gc = e5, n9;
            case bo:
              return f5(n9, e5 = e5.get(null === r6.key ? t5 : r6.key) || null, r6, l6);
            case _o:
              var a6 = on2(r6._debugInfo);
              return n9 = g4(e5, n9, t5, r6 = rn(r6), l6), Gc = a6, n9;
          }
          if (Uo(r6) || i5(r6)) return t5 = e5.get(t5) || null, e5 = on2(r6._debugInfo), n9 = p4(n9, t5, r6, l6, null), Gc = e5, n9;
          if ("function" == typeof r6.then) return a6 = on2(r6._debugInfo), n9 = g4(e5, n9, t5, cn(r6), l6), Gc = a6, n9;
          if (r6.$$typeof === zo) return g4(e5, n9, t5, ge(n9, r6), l6);
          pn(n9, r6);
        }
        return "function" == typeof r6 && hn(n9, r6), "symbol" == typeof r6 && yn(n9, r6), null;
      }
      function y4(e5, n9, t5, r6) {
        if ("object" != typeof t5 || null === t5) return r6;
        switch (t5.$$typeof) {
          case yo:
          case bo:
            a5(e5, n9, t5);
            var l6 = t5.key;
            if ("string" != typeof l6) break;
            if (null === r6) {
              (r6 = /* @__PURE__ */ new Set()).add(l6);
              break;
            }
            if (!r6.has(l6)) {
              r6.add(l6);
              break;
            }
            le(n9, (function() {
              console.error("Encountered two children with the same key, `%s`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted \u2014 the behavior is unsupported and could change in a future version.", l6);
            }));
            break;
          case _o:
            y4(e5, n9, t5 = rn(t5), r6);
        }
        return r6;
      }
      function b4(t5, a6, c8, d5) {
        if ("object" == typeof c8 && null !== c8 && c8.type === vo && null === c8.key && (sn(c8, null, t5), c8 = c8.props.children), "object" == typeof c8 && null !== c8) {
          switch (c8.$$typeof) {
            case yo:
              var f6 = on2(c8._debugInfo);
              e: {
                for (var p5 = c8.key; null !== a6; ) {
                  if (a6.key === p5) {
                    if ((p5 = c8.type) === vo) {
                      if (7 === a6.tag) {
                        r5(t5, a6.sibling), (d5 = o6(a6, c8.props.children)).return = t5, d5._debugOwner = c8._owner, d5._debugInfo = Gc, sn(c8, d5, t5), t5 = d5;
                        break e;
                      }
                    } else if (a6.elementType === p5 || "object" == typeof p5 && null !== p5 && p5.$$typeof === _o && rn(p5) === a6.type) {
                      r5(t5, a6.sibling), dn(d5 = o6(a6, c8.props), c8), d5.return = t5, d5._debugOwner = c8._owner, d5._debugInfo = Gc, t5 = d5;
                      break e;
                    }
                    r5(t5, a6);
                    break;
                  }
                  n8(t5, a6), a6 = a6.sibling;
                }
                c8.type === vo ? ((d5 = oo(c8.props.children, t5.mode, d5, c8.key)).return = t5, d5._debugOwner = t5, d5._debugTask = t5._debugTask, d5._debugInfo = Gc, sn(c8, d5, t5), t5 = d5) : (dn(d5 = ao(c8, t5.mode, d5), c8), d5.return = t5, d5._debugInfo = Gc, t5 = d5);
              }
              return t5 = s5(t5), Gc = f6, t5;
            case bo:
              e: {
                for (c8 = (f6 = c8).key; null !== a6; ) {
                  if (a6.key === c8) {
                    if (4 === a6.tag && a6.stateNode.containerInfo === f6.containerInfo && a6.stateNode.implementation === f6.implementation) {
                      r5(t5, a6.sibling), (d5 = o6(a6, f6.children || [])).return = t5, t5 = d5;
                      break e;
                    }
                    r5(t5, a6);
                    break;
                  }
                  n8(t5, a6), a6 = a6.sibling;
                }
                (d5 = io(f6, t5.mode, d5)).return = t5, t5 = d5;
              }
              return s5(t5);
            case _o:
              return f6 = on2(c8._debugInfo), t5 = b4(t5, a6, c8 = rn(c8), d5), Gc = f6, t5;
          }
          if (Uo(c8)) return f6 = on2(c8._debugInfo), t5 = (function(t6, a7, o7, i6) {
            for (var s6 = null, c9 = null, d6 = null, f7 = a7, p6 = a7 = 0, b5 = null; null !== f7 && p6 < o7.length; p6++) {
              f7.index > p6 ? (b5 = f7, f7 = null) : b5 = f7.sibling;
              var v5 = h5(t6, f7, o7[p6], i6);
              if (null === v5) {
                null === f7 && (f7 = b5);
                break;
              }
              s6 = y4(t6, v5, o7[p6], s6), e4 && f7 && null === v5.alternate && n8(t6, f7), a7 = u5(v5, a7, p6), null === d6 ? c9 = v5 : d6.sibling = v5, d6 = v5, f7 = b5;
            }
            if (p6 === o7.length) return r5(t6, f7), c9;
            if (null === f7) {
              for (; p6 < o7.length; p6++) null !== (f7 = m4(t6, o7[p6], i6)) && (s6 = y4(t6, f7, o7[p6], s6), a7 = u5(f7, a7, p6), null === d6 ? c9 = f7 : d6.sibling = f7, d6 = f7);
              return c9;
            }
            for (f7 = l5(f7); p6 < o7.length; p6++) null !== (b5 = g4(f7, t6, p6, o7[p6], i6)) && (s6 = y4(t6, b5, o7[p6], s6), e4 && null !== b5.alternate && f7.delete(null === b5.key ? p6 : b5.key), a7 = u5(b5, a7, p6), null === d6 ? c9 = b5 : d6.sibling = b5, d6 = b5);
            return e4 && f7.forEach((function(e5) {
              return n8(t6, e5);
            })), c9;
          })(t5, a6, c8, d5), Gc = f6, t5;
          if (i5(c8)) {
            if (f6 = on2(c8._debugInfo), "function" != typeof (p5 = i5(c8))) throw Error("An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.");
            var v4 = p5.call(c8);
            return v4 === c8 ? 0 === t5.tag && "[object GeneratorFunction]" === Object.prototype.toString.call(t5.type) && "[object Generator]" === Object.prototype.toString.call(v4) || (Jc || console.error("Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."), Jc = true) : c8.entries !== p5 || wc || (console.error("Using Maps as children is not supported. Use an array of keyed ReactElements instead."), wc = true), t5 = (function(t6, a7, o7, i6) {
              if (null == o7) throw Error("An iterable object provided no iterator.");
              for (var s6 = null, c9 = null, d6 = a7, f7 = a7 = 0, p6 = null, b5 = null, v5 = o7.next(); null !== d6 && !v5.done; f7++, v5 = o7.next()) {
                d6.index > f7 ? (p6 = d6, d6 = null) : p6 = d6.sibling;
                var S4 = h5(t6, d6, v5.value, i6);
                if (null === S4) {
                  null === d6 && (d6 = p6);
                  break;
                }
                b5 = y4(t6, S4, v5.value, b5), e4 && d6 && null === S4.alternate && n8(t6, d6), a7 = u5(S4, a7, f7), null === c9 ? s6 = S4 : c9.sibling = S4, c9 = S4, d6 = p6;
              }
              if (v5.done) return r5(t6, d6), s6;
              if (null === d6) {
                for (; !v5.done; f7++, v5 = o7.next()) null !== (d6 = m4(t6, v5.value, i6)) && (b5 = y4(t6, d6, v5.value, b5), a7 = u5(d6, a7, f7), null === c9 ? s6 = d6 : c9.sibling = d6, c9 = d6);
                return s6;
              }
              for (d6 = l5(d6); !v5.done; f7++, v5 = o7.next()) null !== (p6 = g4(d6, t6, f7, v5.value, i6)) && (b5 = y4(t6, p6, v5.value, b5), e4 && null !== p6.alternate && d6.delete(null === p6.key ? f7 : p6.key), a7 = u5(p6, a7, f7), null === c9 ? s6 = p6 : c9.sibling = p6, c9 = p6);
              return e4 && d6.forEach((function(e5) {
                return n8(t6, e5);
              })), s6;
            })(t5, a6, v4, d5), Gc = f6, t5;
          }
          if ("function" == typeof c8.then) return f6 = on2(c8._debugInfo), t5 = b4(t5, a6, cn(c8), d5), Gc = f6, t5;
          if (c8.$$typeof === zo) return b4(t5, a6, ge(t5, c8), d5);
          pn(t5, c8);
        }
        return "string" == typeof c8 && "" !== c8 || "number" == typeof c8 || "bigint" == typeof c8 ? (f6 = "" + c8, null !== a6 && 6 === a6.tag ? (r5(t5, a6.sibling), (d5 = o6(a6, f6)).return = t5, t5 = d5) : (r5(t5, a6), (d5 = uo(f6, t5.mode, d5)).return = t5, d5._debugOwner = t5, d5._debugTask = t5._debugTask, d5._debugInfo = Gc, t5 = d5), s5(t5)) : ("function" == typeof c8 && hn(t5, c8), "symbol" == typeof c8 && yn(t5, c8), r5(t5, a6));
      }
      return function(e5, n9, r6, l6) {
        var a6 = Gc;
        Gc = null;
        try {
          Yc = 0;
          var o7 = b4(e5, n9, r6, l6);
          return qc = null, o7;
        } catch (n10) {
          if (n10 === Mc || n10 === Qc) throw n10;
          var u6 = t4(29, n10, null, e5.mode);
          u6.lanes = l6, u6.return = e5;
          var i6 = u6._debugInfo = Gc;
          if (u6._debugOwner = e5._debugOwner, u6._debugTask = e5._debugTask, null != i6) {
            for (var s6 = i6.length - 1; 0 <= s6; s6--) if ("string" == typeof i6[s6].stack) {
              u6._debugOwner = i6[s6], u6._debugTask = i6[s6].debugTask;
              break;
            }
          }
          return u6;
        } finally {
          Gc = a6;
        }
      };
    }
    function vn(e4, n8) {
      var t5 = Uo(e4);
      return e4 = !t5 && "function" == typeof i5(e4), !t5 && !e4 || (t5 = t5 ? "array" : "iterable", console.error("A nested %s was passed to row #%s in <SuspenseList />. Wrap it in an additional SuspenseList to configure its revealOrder: <SuspenseList revealOrder=...> ... <SuspenseList revealOrder=...>{%s}</SuspenseList> ... </SuspenseList>", t5, n8, t5), false);
    }
    function Sn() {
      for (var e4 = od, n8 = ud = od = 0; n8 < e4; ) {
        var t5 = ad[n8];
        ad[n8++] = null;
        var r5 = ad[n8];
        ad[n8++] = null;
        var l5 = ad[n8];
        ad[n8++] = null;
        var a6 = ad[n8];
        if (ad[n8++] = null, null !== r5 && null !== l5) {
          var o6 = r5.pending;
          null === o6 ? l5.next = l5 : (l5.next = o6.next, o6.next = l5), r5.pending = l5;
        }
        0 !== a6 && xn(t5, l5, a6);
      }
    }
    function kn(e4, n8, t5, r5) {
      ad[od++] = e4, ad[od++] = n8, ad[od++] = t5, ad[od++] = r5, ud |= r5, e4.lanes |= r5, null !== (e4 = e4.alternate) && (e4.lanes |= r5);
    }
    function wn(e4, n8, t5, r5) {
      return kn(e4, n8, t5, r5), En(e4);
    }
    function zn(e4, n8) {
      return kn(e4, null, null, n8), En(e4);
    }
    function xn(e4, n8, t5) {
      e4.lanes |= t5;
      var r5 = e4.alternate;
      null !== r5 && (r5.lanes |= t5);
      for (var l5 = false, a6 = e4.return; null !== a6; ) a6.childLanes |= t5, null !== (r5 = a6.alternate) && (r5.childLanes |= t5), 22 === a6.tag && (null === (e4 = a6.stateNode) || e4._visibility & rd || (l5 = true)), e4 = a6, a6 = a6.return;
      return 3 === e4.tag ? (a6 = e4.stateNode, l5 && null !== n8 && (l5 = 31 - Yu(t5), null === (r5 = (e4 = a6.hiddenUpdates)[l5]) ? e4[l5] = [n8] : r5.push(n8), n8.lane = 536870912 | t5), a6) : null;
    }
    function En(e4) {
      if (rm > tm) throw im = rm = 0, sm = lm = null, Error("Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.");
      im > um && (im = 0, sm = null, console.error("Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render.")), null === e4.alternate && 0 != (4098 & e4.flags) && Xa(e4);
      for (var n8 = e4, t5 = n8.return; null !== t5; ) null === n8.alternate && 0 != (4098 & n8.flags) && Xa(e4), t5 = (n8 = t5).return;
      return 3 === n8.tag ? n8.stateNode : null;
    }
    function Cn(e4) {
      e4.updateQueue = { baseState: e4.memoizedState, firstBaseUpdate: null, lastBaseUpdate: null, shared: { pending: null, lanes: 0, hiddenCallbacks: null }, callbacks: null };
    }
    function Pn(e4, n8) {
      e4 = e4.updateQueue, n8.updateQueue === e4 && (n8.updateQueue = { baseState: e4.baseState, firstBaseUpdate: e4.firstBaseUpdate, lastBaseUpdate: e4.lastBaseUpdate, shared: e4.shared, callbacks: null });
    }
    function _n(e4) {
      return { lane: e4, tag: id, payload: null, callback: null, next: null };
    }
    function Tn(e4, n8, t5) {
      var r5 = e4.updateQueue;
      if (null === r5) return null;
      if (r5 = r5.shared, md === r5 && !pd) {
        var l5 = c6(e4);
        console.error("An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback.\n\nPlease update the following component: %s", l5), pd = true;
      }
      return (Xf & Qf) !== Wf ? (null === (l5 = r5.pending) ? n8.next = n8 : (n8.next = l5.next, l5.next = n8), r5.pending = n8, n8 = En(e4), xn(e4, null, t5), n8) : (kn(e4, r5, n8, t5), En(e4));
    }
    function Rn(e4, n8, t5) {
      if (null !== (n8 = n8.updateQueue) && (n8 = n8.shared, 0 != (4194048 & t5))) {
        var r5 = n8.lanes;
        t5 |= r5 &= e4.pendingLanes, n8.lanes = t5, w(e4, t5);
      }
    }
    function Nn(e4, n8) {
      var t5 = e4.updateQueue, r5 = e4.alternate;
      if (null !== r5 && t5 === (r5 = r5.updateQueue)) {
        var l5 = null, a6 = null;
        if (null !== (t5 = t5.firstBaseUpdate)) {
          do {
            var o6 = { lane: t5.lane, tag: t5.tag, payload: t5.payload, callback: null, next: null };
            null === a6 ? l5 = a6 = o6 : a6 = a6.next = o6, t5 = t5.next;
          } while (null !== t5);
          null === a6 ? l5 = a6 = n8 : a6 = a6.next = n8;
        } else l5 = a6 = n8;
        return t5 = { baseState: r5.baseState, firstBaseUpdate: l5, lastBaseUpdate: a6, shared: r5.shared, callbacks: r5.callbacks }, void (e4.updateQueue = t5);
      }
      null === (e4 = t5.lastBaseUpdate) ? t5.firstBaseUpdate = n8 : e4.next = n8, t5.lastBaseUpdate = n8;
    }
    function Ln() {
      if (hd && null !== sc) throw sc;
    }
    function Un(e4, n8, t5, r5) {
      hd = false;
      var l5 = e4.updateQueue;
      fd2 = false, md = l5.shared;
      var a6 = l5.firstBaseUpdate, o6 = l5.lastBaseUpdate, u5 = l5.shared.pending;
      if (null !== u5) {
        l5.shared.pending = null;
        var i6 = u5, s5 = i6.next;
        i6.next = null, null === o6 ? a6 = s5 : o6.next = s5, o6 = i6;
        var c7 = e4.alternate;
        null !== c7 && (u5 = (c7 = c7.updateQueue).lastBaseUpdate) !== o6 && (null === u5 ? c7.firstBaseUpdate = s5 : u5.next = s5, c7.lastBaseUpdate = i6);
      }
      if (null !== a6) {
        var d4 = l5.baseState;
        for (o6 = 0, c7 = s5 = i6 = null, u5 = a6; ; ) {
          var f5 = -536870913 & u5.lane, p4 = f5 !== u5.lane;
          if (p4 ? (np & f5) === f5 : (r5 & f5) === f5) {
            0 !== f5 && f5 === ic && (hd = true), null !== c7 && (c7 = c7.next = { lane: 0, tag: u5.tag, payload: u5.payload, callback: null, next: null });
            e: {
              f5 = e4;
              var m4 = u5, h5 = n8, g4 = t5;
              switch (m4.tag) {
                case sd:
                  if ("function" == typeof (m4 = m4.payload)) {
                    is3 = true;
                    var y4 = m4.call(g4, d4, h5);
                    if (8 & f5.mode) {
                      P(true);
                      try {
                        m4.call(g4, d4, h5);
                      } finally {
                        P(false);
                      }
                    }
                    is3 = false, d4 = y4;
                    break e;
                  }
                  d4 = m4;
                  break e;
                case dd:
                  f5.flags = -65537 & f5.flags | 128;
                case id:
                  if ("function" == typeof (y4 = m4.payload)) {
                    if (is3 = true, m4 = y4.call(g4, d4, h5), 8 & f5.mode) {
                      P(true);
                      try {
                        y4.call(g4, d4, h5);
                      } finally {
                        P(false);
                      }
                    }
                    is3 = false;
                  } else m4 = y4;
                  if (null == m4) break e;
                  d4 = ho({}, d4, m4);
                  break e;
                case cd:
                  fd2 = true;
              }
            }
            null !== (f5 = u5.callback) && (e4.flags |= 64, p4 && (e4.flags |= 8192), null === (p4 = l5.callbacks) ? l5.callbacks = [f5] : p4.push(f5));
          } else p4 = { lane: f5, tag: u5.tag, payload: u5.payload, callback: u5.callback, next: null }, null === c7 ? (s5 = c7 = p4, i6 = d4) : c7 = c7.next = p4, o6 |= f5;
          if (null === (u5 = u5.next)) {
            if (null === (u5 = l5.shared.pending)) break;
            u5 = (p4 = u5).next, p4.next = null, l5.lastBaseUpdate = p4, l5.shared.pending = null;
          }
        }
        null === c7 && (i6 = d4), l5.baseState = i6, l5.firstBaseUpdate = s5, l5.lastBaseUpdate = c7, null === a6 && (l5.shared.lanes = 0), vp |= o6, e4.lanes = o6, e4.memoizedState = d4;
      }
      md = null;
    }
    function Dn(e4, n8) {
      if ("function" != typeof e4) throw Error("Invalid argument passed as callback. Expected a function. Instead received: " + e4);
      e4.call(n8);
    }
    function In(e4, n8) {
      var t5 = e4.shared.hiddenCallbacks;
      if (null !== t5) for (e4.shared.hiddenCallbacks = null, e4 = 0; e4 < t5.length; e4++) Dn(t5[e4], n8);
    }
    function Fn(e4, n8) {
      var t5 = e4.callbacks;
      if (null !== t5) for (e4.callbacks = null, e4 = 0; e4 < t5.length; e4++) Dn(t5[e4], n8);
    }
    function jn(e4, n8) {
      var t5 = yp;
      p3(yd, t5, e4), p3(gd, n8, e4), yp = t5 | n8.baseLanes;
    }
    function An(e4) {
      p3(yd, yp, e4), p3(gd, gd.current, e4);
    }
    function Hn(e4) {
      yp = yd.current, f4(gd, e4), f4(yd, e4);
    }
    function On(e4) {
      var n8 = e4.alternate;
      p3(wd, wd.current & Sd, e4), p3(bd, e4, e4), null === vd && (null === n8 || null !== gd.current || null !== n8.memoizedState) && (vd = e4);
    }
    function Mn(e4) {
      p3(wd, wd.current, e4), p3(bd, e4, e4), null === vd && (vd = e4);
    }
    function Wn(e4) {
      22 === e4.tag ? (p3(wd, wd.current, e4), p3(bd, e4, e4), null === vd && (vd = e4)) : Qn(e4);
    }
    function Qn(e4) {
      p3(wd, wd.current, e4), p3(bd, bd.current, e4);
    }
    function Bn(e4) {
      f4(bd, e4), vd === e4 && (vd = null), f4(wd, e4);
    }
    function $n(e4) {
      for (var n8 = e4; null !== n8; ) {
        if (13 === n8.tag) {
          var t5 = n8.memoizedState;
          if (null !== t5 && (null === (t5 = t5.dehydrated) || Nu(t5) || Lu(t5))) return n8;
        } else if (19 !== n8.tag || "forwards" !== n8.memoizedProps.revealOrder && "backwards" !== n8.memoizedProps.revealOrder && "unstable_legacy-backwards" !== n8.memoizedProps.revealOrder && "together" !== n8.memoizedProps.revealOrder) {
          if (null !== n8.child) {
            n8.child.return = n8, n8 = n8.child;
            continue;
          }
        } else if (0 != (128 & n8.flags)) return n8;
        if (n8 === e4) break;
        for (; null === n8.sibling; ) {
          if (null === n8.return || n8.return === e4) return null;
          n8 = n8.return;
        }
        n8.sibling.return = n8.return, n8 = n8.sibling;
      }
      return null;
    }
    function Vn() {
      var e4 = Bd;
      null === $d ? $d = [e4] : $d.push(e4);
    }
    function qn() {
      var e4 = Bd;
      if (null !== $d && (Vd++, $d[Vd] !== e4)) {
        var n8 = c6(Ud);
        if (!_d.has(n8) && (_d.add(n8), null !== $d)) {
          for (var t5 = "", r5 = 0; r5 <= Vd; r5++) {
            var l5 = $d[r5], a6 = r5 === Vd ? e4 : l5;
            for (l5 = r5 + 1 + ". " + l5; 30 > l5.length; ) l5 += " ";
            t5 += l5 += a6 + "\n";
          }
          console.error("React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://react.dev/link/rules-of-hooks\n\n   Previous render            Next render\n   ------------------------------------------------------\n%s   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", n8, t5);
        }
      }
    }
    function Yn(e4) {
      null == e4 || Uo(e4) || console.error("%s received a final argument that is not an array (instead, received `%s`). When specified, the final argument must be an array.", Bd, typeof e4);
    }
    function Gn() {
      var e4 = c6(Ud);
      Nd.has(e4) || (Nd.add(e4), console.error("ReactDOM.useFormState has been renamed to React.useActionState. Please update %s to use React.useActionState.", e4));
    }
    function Jn() {
      throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.");
    }
    function Kn(e4, n8) {
      if (qd) return false;
      if (null === n8) return console.error("%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.", Bd), false;
      e4.length !== n8.length && console.error("The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\n\nPrevious: %s\nIncoming: %s", Bd, "[" + n8.join(", ") + "]", "[" + e4.join(", ") + "]");
      for (var t5 = 0; t5 < n8.length && t5 < e4.length; t5++) if (!yi(e4[t5], n8[t5])) return false;
      return true;
    }
    function Xn(e4, n8, t5, r5, l5, a6) {
      Ld = a6, Ud = n8, $d = null !== e4 ? e4._debugHookTypes : null, Vd = -1, qd = null !== e4 && e4.type !== n8.type, "[object AsyncFunction]" !== Object.prototype.toString.call(t5) && "[object AsyncGeneratorFunction]" !== Object.prototype.toString.call(t5) || (a6 = c6(Ud), Rd.has(a6) || (Rd.add(a6), console.error("%s is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.", null === a6 ? "An unknown Component" : "<" + a6 + ">"))), n8.memoizedState = null, n8.updateQueue = null, n8.lanes = 0, Do.H = null !== e4 && null !== e4.memoizedState ? Kd : null !== $d ? Jd : Gd, Ad = a6 = (8 & n8.mode) !== ts;
      var o6 = xc(t5, r5, l5);
      if (Ad = false, jd && (o6 = et2(n8, t5, r5, l5)), a6) {
        P(true);
        try {
          o6 = et2(n8, t5, r5, l5);
        } finally {
          P(false);
        }
      }
      return Zn(e4, n8), o6;
    }
    function Zn(e4, n8) {
      n8._debugHookTypes = $d, null === n8.dependencies ? null !== Md && (n8.dependencies = { lanes: 0, firstContext: null, _debugThenableState: Md }) : n8.dependencies._debugThenableState = Md, Do.H = Yd;
      var t5 = null !== Dd && null !== Dd.next;
      if (Ld = 0, $d = Bd = Id = Dd = Ud = null, Vd = -1, null !== e4 && (65011712 & e4.flags) != (65011712 & n8.flags) && console.error("Internal React error: Expected static flag was missing. Please notify the React team."), Fd = false, Od = 0, Md = null, t5) throw Error("Rendered fewer hooks than expected. This may be caused by an accidental early return statement.");
      null === e4 || gf || null !== (e4 = e4.dependencies) && pe(e4) && (gf = true), Vc ? (Vc = false, e4 = true) : e4 = false, e4 && (n8 = c6(n8) || "Unknown", Td.has(n8) || Rd.has(n8) || (Td.add(n8), console.error("`use` was called from inside a try/catch block. This is not allowed and can lead to unexpected behavior. To handle errors triggered by `use`, wrap your component in a error boundary.")));
    }
    function et2(e4, n8, t5, r5) {
      Ud = e4;
      var l5 = 0;
      do {
        if (jd && (Md = null), Od = 0, jd = false, l5 >= Qd) throw Error("Too many re-renders. React limits the number of renders to prevent an infinite loop.");
        if (l5 += 1, qd = false, Id = Dd = null, null != e4.updateQueue) {
          var a6 = e4.updateQueue;
          a6.lastEffect = null, a6.events = null, a6.stores = null, null != a6.memoCache && (a6.memoCache.index = 0);
        }
        Vd = -1, Do.H = Xd, a6 = xc(n8, t5, r5);
      } while (jd);
      return a6;
    }
    function nt() {
      var e4 = Do.H, n8 = e4.useState()[0];
      return n8 = "function" == typeof n8.then ? ut(n8) : n8, e4 = e4.useState()[0], (null !== Dd ? Dd.memoizedState : null) !== e4 && (Ud.flags |= 1024), n8;
    }
    function tt() {
      var e4 = 0 !== Hd;
      return Hd = 0, e4;
    }
    function rt(e4, n8, t5) {
      n8.updateQueue = e4.updateQueue, n8.flags = (16 & n8.mode) !== ts ? -402655237 & n8.flags : -2053 & n8.flags, e4.lanes &= ~t5;
    }
    function lt(e4) {
      if (Fd) {
        for (e4 = e4.memoizedState; null !== e4; ) {
          var n8 = e4.queue;
          null !== n8 && (n8.pending = null), e4 = e4.next;
        }
        Fd = false;
      }
      Ld = 0, $d = Id = Dd = Ud = null, Vd = -1, Bd = null, jd = false, Od = Hd = 0, Md = null;
    }
    function at() {
      var e4 = { memoizedState: null, baseState: null, baseQueue: null, queue: null, next: null };
      return null === Id ? Ud.memoizedState = Id = e4 : Id = Id.next = e4, Id;
    }
    function ot() {
      if (null === Dd) {
        var e4 = Ud.alternate;
        e4 = null !== e4 ? e4.memoizedState : null;
      } else e4 = Dd.next;
      var n8 = null === Id ? Ud.memoizedState : Id.next;
      if (null !== n8) Id = n8, Dd = e4;
      else {
        if (null === e4) {
          if (null === Ud.alternate) throw Error("Update hook called on initial render. This is likely a bug in React. Please file an issue.");
          throw Error("Rendered more hooks than during the previous render.");
        }
        e4 = { memoizedState: (Dd = e4).memoizedState, baseState: Dd.baseState, baseQueue: Dd.baseQueue, queue: Dd.queue, next: null }, null === Id ? Ud.memoizedState = Id = e4 : Id = Id.next = e4;
      }
      return Id;
    }
    function ut(e4) {
      var n8 = Od;
      return Od += 1, null === Md && (Md = { didWarnAboutUncachedPromise: false, thenables: [] }), e4 = tn(Md, e4, n8), n8 = Ud, null === (null === Id ? n8.memoizedState : Id.next) && (n8 = n8.alternate, Do.H = null !== n8 && null !== n8.memoizedState ? Kd : Gd), e4;
    }
    function it(e4) {
      if (null !== e4 && "object" == typeof e4) {
        if ("function" == typeof e4.then) return ut(e4);
        if (e4.$$typeof === zo) return he(e4);
      }
      throw Error("An unsupported type was passed to use(): " + String(e4));
    }
    function st(e4) {
      var n8 = null, t5 = Ud.updateQueue;
      if (null !== t5 && (n8 = t5.memoCache), null == n8) {
        var r5 = Ud.alternate;
        null !== r5 && null !== (r5 = r5.updateQueue) && null != (r5 = r5.memoCache) && (n8 = { data: r5.data.map((function(e5) {
          return e5.slice();
        })), index: 0 });
      }
      if (null == n8 && (n8 = { data: [], index: 0 }), null === t5 && (t5 = { lastEffect: null, events: null, stores: null, memoCache: null }, Ud.updateQueue = t5), t5.memoCache = n8, void 0 === (t5 = n8.data[n8.index]) || qd) for (t5 = n8.data[n8.index] = Array(e4), r5 = 0; r5 < e4; r5++) t5[r5] = Ro;
      else t5.length !== e4 && console.error("Expected a constant size argument for each invocation of useMemoCache. The previous cache was allocated with size %s but size %s was requested.", t5.length, e4);
      return n8.index++, t5;
    }
    function ct(e4, n8) {
      return "function" == typeof n8 ? n8(e4) : n8;
    }
    function dt(e4, n8, t5) {
      var r5 = at();
      if (void 0 !== t5) {
        var l5 = t5(n8);
        if (Ad) {
          P(true);
          try {
            t5(n8);
          } finally {
            P(false);
          }
        }
      } else l5 = n8;
      return r5.memoizedState = r5.baseState = l5, e4 = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: e4, lastRenderedState: l5 }, r5.queue = e4, e4 = e4.dispatch = hr.bind(null, Ud, e4), [r5.memoizedState, e4];
    }
    function ft(e4) {
      return pt(ot(), Dd, e4);
    }
    function pt(e4, n8, t5) {
      var r5 = e4.queue;
      if (null === r5) throw Error("Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)");
      r5.lastRenderedReducer = t5;
      var l5 = e4.baseQueue, a6 = r5.pending;
      if (null !== a6) {
        if (null !== l5) {
          var o6 = l5.next;
          l5.next = a6.next, a6.next = o6;
        }
        n8.baseQueue !== l5 && console.error("Internal error: Expected work-in-progress queue to be a clone. This is a bug in React."), n8.baseQueue = l5 = a6, r5.pending = null;
      }
      if (a6 = e4.baseState, null === l5) e4.memoizedState = a6;
      else {
        var u5 = o6 = null, i6 = null, s5 = n8 = l5.next, c7 = false;
        do {
          var d4 = -536870913 & s5.lane;
          if (d4 !== s5.lane ? (np & d4) === d4 : (Ld & d4) === d4) {
            var f5 = s5.revertLane;
            if (0 === f5) null !== i6 && (i6 = i6.next = { lane: 0, revertLane: 0, gesture: null, action: s5.action, hasEagerState: s5.hasEagerState, eagerState: s5.eagerState, next: null }), d4 === ic && (c7 = true);
            else {
              if ((Ld & f5) === f5) {
                s5 = s5.next, f5 === ic && (c7 = true);
                continue;
              }
              d4 = { lane: 0, revertLane: s5.revertLane, gesture: null, action: s5.action, hasEagerState: s5.hasEagerState, eagerState: s5.eagerState, next: null }, null === i6 ? (u5 = i6 = d4, o6 = a6) : i6 = i6.next = d4, Ud.lanes |= f5, vp |= f5;
            }
            d4 = s5.action, Ad && t5(a6, d4), a6 = s5.hasEagerState ? s5.eagerState : t5(a6, d4);
          } else f5 = { lane: d4, revertLane: s5.revertLane, gesture: s5.gesture, action: s5.action, hasEagerState: s5.hasEagerState, eagerState: s5.eagerState, next: null }, null === i6 ? (u5 = i6 = f5, o6 = a6) : i6 = i6.next = f5, Ud.lanes |= d4, vp |= d4;
          s5 = s5.next;
        } while (null !== s5 && s5 !== n8);
        if (null === i6 ? o6 = a6 : i6.next = u5, !yi(a6, e4.memoizedState) && (gf = true, c7 && null !== (t5 = sc))) throw t5;
        e4.memoizedState = a6, e4.baseState = o6, e4.baseQueue = i6, r5.lastRenderedState = a6;
      }
      return null === l5 && (r5.lanes = 0), [e4.memoizedState, r5.dispatch];
    }
    function mt(e4) {
      var n8 = ot(), t5 = n8.queue;
      if (null === t5) throw Error("Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)");
      t5.lastRenderedReducer = e4;
      var r5 = t5.dispatch, l5 = t5.pending, a6 = n8.memoizedState;
      if (null !== l5) {
        t5.pending = null;
        var o6 = l5 = l5.next;
        do {
          a6 = e4(a6, o6.action), o6 = o6.next;
        } while (o6 !== l5);
        yi(a6, n8.memoizedState) || (gf = true), n8.memoizedState = a6, null === n8.baseQueue && (n8.baseState = a6), t5.lastRenderedState = a6;
      }
      return [a6, r5];
    }
    function ht(e4, n8, t5) {
      var r5, l5 = Ud, a6 = at();
      if (r5 = n8(), ed || (t5 = n8(), yi(r5, t5) || (console.error("The result of getSnapshot should be cached to avoid an infinite loop"), ed = true)), null === Zf) throw Error("Expected a work-in-progress root. This is a bug in React. Please file an issue.");
      return 0 != (127 & np) || yt(l5, n8, r5), a6.memoizedState = r5, t5 = { value: r5, getSnapshot: n8 }, a6.queue = t5, Bt(vt.bind(null, l5, t5, e4), [e4]), l5.flags |= 2048, Ot(xd | Pd, { destroy: void 0 }, bt.bind(null, l5, t5, r5, n8), null), r5;
    }
    function gt(e4, n8, t5) {
      var r5 = Ud, l5 = ot();
      if (t5 = n8(), !ed) {
        var a6 = n8();
        yi(t5, a6) || (console.error("The result of getSnapshot should be cached to avoid an infinite loop"), ed = true);
      }
      (a6 = !yi((Dd || l5).memoizedState, t5)) && (l5.memoizedState = t5, gf = true), l5 = l5.queue;
      var o6 = vt.bind(null, r5, l5, e4);
      if (Qt(2048, Pd, o6, [e4]), l5.getSnapshot !== n8 || a6 || null !== Id && Id.memoizedState.tag & xd) {
        if (r5.flags |= 2048, Ot(xd | Pd, { destroy: void 0 }, bt.bind(null, r5, l5, t5, n8), null), null === Zf) throw Error("Expected a work-in-progress root. This is a bug in React. Please file an issue.");
        0 != (127 & Ld) || yt(r5, n8, t5);
      }
      return t5;
    }
    function yt(e4, n8, t5) {
      e4.flags |= 16384, e4 = { getSnapshot: n8, value: t5 }, null === (n8 = Ud.updateQueue) ? (n8 = { lastEffect: null, events: null, stores: null, memoCache: null }, Ud.updateQueue = n8, n8.stores = [e4]) : null === (t5 = n8.stores) ? n8.stores = [e4] : t5.push(e4);
    }
    function bt(e4, n8, t5, r5) {
      n8.value = t5, n8.getSnapshot = r5, St(n8) && kt(e4);
    }
    function vt(e4, n8, t5) {
      return t5((function() {
        St(n8) && (ke(2, "updateSyncExternalStore()", e4), kt(e4));
      }));
    }
    function St(e4) {
      var n8 = e4.getSnapshot;
      e4 = e4.value;
      try {
        var t5 = n8();
        return !yi(e4, t5);
      } catch (e5) {
        return true;
      }
    }
    function kt(e4) {
      var n8 = zn(e4, 2);
      null !== n8 && pa(n8, e4, 2);
    }
    function wt(e4) {
      var n8 = at();
      if ("function" == typeof e4) {
        var t5 = e4;
        if (e4 = t5(), Ad) {
          P(true);
          try {
            t5();
          } finally {
            P(false);
          }
        }
      }
      return n8.memoizedState = n8.baseState = e4, n8.queue = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: ct, lastRenderedState: e4 }, n8;
    }
    function zt(e4) {
      var n8 = (e4 = wt(e4)).queue, t5 = gr.bind(null, Ud, n8);
      return n8.dispatch = t5, [e4.memoizedState, t5];
    }
    function xt(e4) {
      var n8 = at();
      n8.memoizedState = n8.baseState = e4;
      var t5 = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: null, lastRenderedState: null };
      return n8.queue = t5, n8 = br.bind(null, Ud, true, t5), t5.dispatch = n8, [e4, n8];
    }
    function Et(e4, n8) {
      return Ct(ot(), 0, e4, n8);
    }
    function Ct(e4, n8, t5, r5) {
      return e4.baseState = t5, pt(e4, Dd, "function" == typeof r5 ? r5 : ct);
    }
    function Pt(e4, n8) {
      var t5 = ot();
      return null !== Dd ? Ct(t5, 0, e4, n8) : (t5.baseState = e4, [e4, t5.queue.dispatch]);
    }
    function _t(e4, n8, t5, r5, l5) {
      if (vr(e4)) throw Error("Cannot update form state while rendering.");
      if (null !== (e4 = n8.action)) {
        var a6 = { payload: l5, action: e4, next: null, isTransition: true, status: "pending", value: null, reason: null, listeners: [], then: function(e5) {
          a6.listeners.push(e5);
        } };
        null !== Do.T ? t5(true) : a6.isTransition = false, r5(a6), null === (t5 = n8.pending) ? (a6.next = n8.pending = a6, Tt(n8, a6)) : (a6.next = t5.next, n8.pending = t5.next = a6);
      }
    }
    function Tt(e4, n8) {
      var t5 = n8.action, r5 = n8.payload, l5 = e4.state;
      if (n8.isTransition) {
        var a6 = Do.T, o6 = {};
        o6._updatedFibers = /* @__PURE__ */ new Set(), Do.T = o6;
        try {
          var u5 = t5(l5, r5), i6 = Do.S;
          null !== i6 && i6(o6, u5), Rt(e4, n8, u5);
        } catch (t6) {
          Lt(e4, n8, t6);
        } finally {
          null !== a6 && null !== o6.types && (null !== a6.types && a6.types !== o6.types && console.error("We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React."), a6.types = o6.types), Do.T = a6, null === a6 && o6._updatedFibers && (e4 = o6._updatedFibers.size, o6._updatedFibers.clear(), 10 < e4 && console.warn("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."));
        }
      } else try {
        Rt(e4, n8, o6 = t5(l5, r5));
      } catch (t6) {
        Lt(e4, n8, t6);
      }
    }
    function Rt(e4, n8, t5) {
      null !== t5 && "object" == typeof t5 && "function" == typeof t5.then ? (Do.asyncTransitions++, t5.then(or, or), t5.then((function(t6) {
        Nt(e4, n8, t6);
      }), (function(t6) {
        return Lt(e4, n8, t6);
      })), n8.isTransition || console.error("An async function with useActionState was called outside of a transition. This is likely not what you intended (for example, isPending will not update correctly). Either call the returned function inside startTransition, or pass it to an `action` or `formAction` prop.")) : Nt(e4, n8, t5);
    }
    function Nt(e4, n8, t5) {
      n8.status = "fulfilled", n8.value = t5, Ut(n8), e4.state = t5, null !== (n8 = e4.pending) && ((t5 = n8.next) === n8 ? e4.pending = null : (t5 = t5.next, n8.next = t5, Tt(e4, t5)));
    }
    function Lt(e4, n8, t5) {
      var r5 = e4.pending;
      if (e4.pending = null, null !== r5) {
        r5 = r5.next;
        do {
          n8.status = "rejected", n8.reason = t5, Ut(n8), n8 = n8.next;
        } while (n8 !== r5);
      }
      e4.action = null;
    }
    function Ut(e4) {
      e4 = e4.listeners;
      for (var n8 = 0; n8 < e4.length; n8++) (0, e4[n8])();
    }
    function Dt(e4, n8) {
      return n8;
    }
    function It(e4, n8) {
      var t5, r5, l5;
      (t5 = at()).memoizedState = t5.baseState = n8, r5 = { pending: null, lanes: 0, dispatch: null, lastRenderedReducer: Dt, lastRenderedState: n8 }, t5.queue = r5, t5 = gr.bind(null, Ud, r5), r5.dispatch = t5, r5 = wt(false);
      var a6 = br.bind(null, Ud, false, r5.queue);
      return l5 = { state: n8, dispatch: null, action: e4, pending: null }, (r5 = at()).queue = l5, t5 = _t.bind(null, Ud, l5, a6, t5), l5.dispatch = t5, r5.memoizedState = e4, [n8, t5, false];
    }
    function Ft(e4) {
      return jt(ot(), Dd, e4);
    }
    function jt(e4, n8, t5) {
      if (n8 = pt(e4, n8, Dt)[0], e4 = ft(ct)[0], "object" == typeof n8 && null !== n8 && "function" == typeof n8.then) try {
        var r5 = ut(n8);
      } catch (e5) {
        if (e5 === Mc) throw Qc;
        throw e5;
      }
      else r5 = n8;
      var l5 = (n8 = ot()).queue, a6 = l5.dispatch;
      return t5 !== n8.memoizedState && (Ud.flags |= 2048, Ot(xd | Pd, { destroy: void 0 }, At.bind(null, l5, t5), null)), [r5, a6, e4];
    }
    function At(e4, n8) {
      e4.action = n8;
    }
    function Ht(e4) {
      var n8 = ot(), t5 = Dd;
      if (null !== t5) return jt(n8, t5, e4);
      ot(), n8 = n8.memoizedState;
      var r5 = (t5 = ot()).queue.dispatch;
      return t5.memoizedState = e4, [n8, r5, false];
    }
    function Ot(e4, n8, t5, r5) {
      return e4 = { tag: e4, create: t5, deps: r5, inst: n8, next: null }, null === (n8 = Ud.updateQueue) && (n8 = { lastEffect: null, events: null, stores: null, memoCache: null }, Ud.updateQueue = n8), null === (t5 = n8.lastEffect) ? n8.lastEffect = e4.next = e4 : (r5 = t5.next, t5.next = e4, e4.next = r5, n8.lastEffect = e4), e4;
    }
    function Mt(e4) {
      return e4 = { current: e4 }, at().memoizedState = e4;
    }
    function Wt(e4, n8, t5, r5) {
      var l5 = at();
      Ud.flags |= e4, l5.memoizedState = Ot(xd | n8, { destroy: void 0 }, t5, void 0 === r5 ? null : r5);
    }
    function Qt(e4, n8, t5, r5) {
      var l5 = ot();
      r5 = void 0 === r5 ? null : r5;
      var a6 = l5.memoizedState.inst;
      null !== Dd && null !== r5 && Kn(r5, Dd.memoizedState.deps) ? l5.memoizedState = Ot(n8, a6, t5, r5) : (Ud.flags |= e4, l5.memoizedState = Ot(xd | n8, a6, t5, r5));
    }
    function Bt(e4, n8) {
      (16 & Ud.mode) !== ts ? Wt(276826112, Pd, e4, n8) : Wt(8390656, Pd, e4, n8);
    }
    function $t(e4) {
      var n8 = at(), t5 = { impl: e4 };
      return n8.memoizedState = t5, function() {
        if ((Xf & Qf) !== Wf) throw Error("A function wrapped in useEffectEvent can't be called during rendering.");
        return t5.impl.apply(void 0, arguments);
      };
    }
    function Vt(e4) {
      var n8 = ot().memoizedState;
      return (function(e5) {
        Ud.flags |= 4;
        var n9 = Ud.updateQueue;
        if (null === n9) n9 = { lastEffect: null, events: null, stores: null, memoCache: null }, Ud.updateQueue = n9, n9.events = [e5];
        else {
          var t5 = n9.events;
          null === t5 ? n9.events = [e5] : t5.push(e5);
        }
      })({ ref: n8, nextImpl: e4 }), function() {
        if ((Xf & Qf) !== Wf) throw Error("A function wrapped in useEffectEvent can't be called during rendering.");
        return n8.impl.apply(void 0, arguments);
      };
    }
    function qt(e4, n8) {
      var t5 = 4194308;
      return (16 & Ud.mode) !== ts && (t5 |= 134217728), Wt(t5, Cd, e4, n8);
    }
    function Yt(e4, n8) {
      if ("function" == typeof n8) {
        e4 = e4();
        var t5 = n8(e4);
        return function() {
          "function" == typeof t5 ? t5() : n8(null);
        };
      }
      if (null != n8) return n8.hasOwnProperty("current") || console.error("Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.", "an object with keys {" + Object.keys(n8).join(", ") + "}"), e4 = e4(), n8.current = e4, function() {
        n8.current = null;
      };
    }
    function Gt(e4, n8, t5) {
      "function" != typeof n8 && console.error("Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.", null !== n8 ? typeof n8 : "null"), t5 = null != t5 ? t5.concat([e4]) : null;
      var r5 = 4194308;
      (16 & Ud.mode) !== ts && (r5 |= 134217728), Wt(r5, Cd, Yt.bind(null, n8, e4), t5);
    }
    function Jt(e4, n8, t5) {
      "function" != typeof n8 && console.error("Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.", null !== n8 ? typeof n8 : "null"), t5 = null != t5 ? t5.concat([e4]) : null, Qt(4, Cd, Yt.bind(null, n8, e4), t5);
    }
    function Kt(e4, n8) {
      return at().memoizedState = [e4, void 0 === n8 ? null : n8], e4;
    }
    function Xt(e4, n8) {
      var t5 = ot();
      n8 = void 0 === n8 ? null : n8;
      var r5 = t5.memoizedState;
      return null !== n8 && Kn(n8, r5[1]) ? r5[0] : (t5.memoizedState = [e4, n8], e4);
    }
    function Zt(e4, n8) {
      var t5 = at();
      n8 = void 0 === n8 ? null : n8;
      var r5 = e4();
      if (Ad) {
        P(true);
        try {
          e4();
        } finally {
          P(false);
        }
      }
      return t5.memoizedState = [r5, n8], r5;
    }
    function er(e4, n8) {
      var t5 = ot();
      n8 = void 0 === n8 ? null : n8;
      var r5 = t5.memoizedState;
      if (null !== n8 && Kn(n8, r5[1])) return r5[0];
      if (r5 = e4(), Ad) {
        P(true);
        try {
          e4();
        } finally {
          P(false);
        }
      }
      return t5.memoizedState = [r5, n8], r5;
    }
    function nr(e4, n8) {
      return lr(at(), e4, n8);
    }
    function tr(e4, n8) {
      return ar(ot(), Dd.memoizedState, e4, n8);
    }
    function rr(e4, n8) {
      var t5 = ot();
      return null === Dd ? lr(t5, e4, n8) : ar(t5, Dd.memoizedState, e4, n8);
    }
    function lr(e4, n8, t5) {
      return void 0 === t5 || 0 != (1073741824 & Ld) && 0 == (261930 & np) ? e4.memoizedState = n8 : (e4.memoizedState = t5, e4 = fa(), Ud.lanes |= e4, vp |= e4, t5);
    }
    function ar(e4, n8, t5, r5) {
      return yi(t5, n8) ? t5 : null !== gd.current ? (e4 = lr(e4, t5, r5), yi(e4, n8) || (gf = true), e4) : 0 == (42 & Ld) || 0 != (1073741824 & Ld) && 0 == (261930 & np) ? (gf = true, e4.memoizedState = t5) : (e4 = fa(), Ud.lanes |= e4, vp |= e4, n8);
    }
    function or() {
      Do.asyncTransitions--;
    }
    function ur(e4, n8, t5, r5, l5) {
      var a6 = Xo();
      Ko(0 !== a6 && 8 > a6 ? a6 : 8);
      var o6, u5, i6, s5 = Do.T, c7 = {};
      c7._updatedFibers = /* @__PURE__ */ new Set(), Do.T = c7, br(e4, false, n8, t5);
      try {
        var d4 = l5(), f5 = Do.S;
        null !== f5 && f5(c7, d4), null !== d4 && "object" == typeof d4 && "function" == typeof d4.then ? (Do.asyncTransitions++, d4.then(or, or), yr(e4, n8, (o6 = r5, u5 = [], i6 = { status: "pending", value: null, reason: null, then: function(e5) {
          u5.push(e5);
        } }, d4.then((function() {
          i6.status = "fulfilled", i6.value = o6;
          for (var e5 = 0; e5 < u5.length; e5++) (0, u5[e5])(o6);
        }), (function(e5) {
          for (i6.status = "rejected", i6.reason = e5, e5 = 0; e5 < u5.length; e5++) (0, u5[e5])(void 0);
        })), i6), da(e4))) : yr(e4, n8, r5, da(e4));
      } catch (t6) {
        yr(e4, n8, { then: function() {
        }, status: "rejected", reason: t6 }, da(e4));
      } finally {
        Ko(a6), null !== s5 && null !== c7.types && (null !== s5.types && s5.types !== c7.types && console.error("We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React."), s5.types = c7.types), Do.T = s5, null === s5 && c7._updatedFibers && (e4 = c7._updatedFibers.size, c7._updatedFibers.clear(), 10 < e4 && console.warn("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."));
      }
    }
    function ir() {
      var e4 = wt(false);
      return e4 = ur.bind(null, Ud, e4.queue, true, false), at().memoizedState = e4, [false, e4];
    }
    function sr() {
      var e4 = ft(ct)[0], n8 = ot().memoizedState;
      return ["boolean" == typeof e4 ? e4 : ut(e4), n8];
    }
    function cr() {
      var e4 = mt(ct)[0], n8 = ot().memoizedState;
      return ["boolean" == typeof e4 ? e4 : ut(e4), n8];
    }
    function dr() {
      return he(mu);
    }
    function fr() {
      var e4 = at(), n8 = Zf.identifierPrefix;
      return n8 = "_" + n8 + "r_" + (Wd++).toString(32) + "_", e4.memoizedState = n8;
    }
    function pr() {
      return at().memoizedState = mr.bind(null, Ud);
    }
    function mr(e4, n8) {
      for (var t5 = e4.return; null !== t5; ) {
        switch (t5.tag) {
          case 24:
          case 3:
            var r5 = da(t5), l5 = _n(r5), a6 = Tn(t5, l5, r5);
            return null !== a6 && (ke(r5, "refresh()", e4), pa(a6, t5, r5), Rn(a6, t5, r5)), e4 = be(), null != n8 && null !== a6 && console.error("The seed argument is not enabled outside experimental channels."), void (l5.payload = { cache: e4 });
        }
        t5 = t5.return;
      }
    }
    function hr(e4, n8, t5) {
      var r5 = arguments;
      "function" == typeof r5[3] && console.error("State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect().");
      var l5 = { lane: r5 = da(e4), revertLane: 0, gesture: null, action: t5, hasEagerState: false, eagerState: null, next: null };
      vr(e4) ? Sr(n8, l5) : null !== (l5 = wn(e4, n8, l5, r5)) && (ke(r5, "dispatch()", e4), pa(l5, e4, r5), kr(l5, n8, r5));
    }
    function gr(e4, n8, t5) {
      var r5 = arguments;
      "function" == typeof r5[3] && console.error("State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect()."), yr(e4, n8, t5, r5 = da(e4)) && ke(r5, "setState()", e4);
    }
    function yr(e4, n8, t5, r5) {
      var l5 = { lane: r5, revertLane: 0, gesture: null, action: t5, hasEagerState: false, eagerState: null, next: null };
      if (vr(e4)) Sr(n8, l5);
      else {
        var a6 = e4.alternate;
        if (0 === e4.lanes && (null === a6 || 0 === a6.lanes) && null !== (a6 = n8.lastRenderedReducer)) {
          var o6 = Do.H;
          Do.H = ef;
          try {
            var u5 = n8.lastRenderedState, i6 = a6(u5, t5);
            if (l5.hasEagerState = true, l5.eagerState = i6, yi(i6, u5)) return kn(e4, n8, l5, 0), null === Zf && Sn(), false;
          } catch (e5) {
          } finally {
            Do.H = o6;
          }
        }
        if (null !== (t5 = wn(e4, n8, l5, r5))) return pa(t5, e4, r5), kr(t5, n8, r5), true;
      }
      return false;
    }
    function br(e4, n8, t5, r5) {
      if (null === Do.T && 0 === ic && console.error("An optimistic state update occurred outside a transition or action. To fix, move the update to an action, or wrap with startTransition."), r5 = { lane: 2, revertLane: Ge(), gesture: null, action: r5, hasEagerState: false, eagerState: null, next: null }, vr(e4)) {
        if (n8) throw Error("Cannot update optimistic state while rendering.");
        console.error("Cannot call startTransition while rendering.");
      } else null !== (n8 = wn(e4, t5, r5, 2)) && (ke(2, "setOptimistic()", e4), pa(n8, e4, 2));
    }
    function vr(e4) {
      var n8 = e4.alternate;
      return e4 === Ud || null !== n8 && n8 === Ud;
    }
    function Sr(e4, n8) {
      jd = Fd = true;
      var t5 = e4.pending;
      null === t5 ? n8.next = n8 : (n8.next = t5.next, t5.next = n8), e4.pending = n8;
    }
    function kr(e4, n8, t5) {
      if (0 != (4194048 & t5)) {
        var r5 = n8.lanes;
        t5 |= r5 &= e4.pendingLanes, n8.lanes = t5, w(e4, t5);
      }
    }
    function wr(e4) {
      if (null !== e4 && "function" != typeof e4) {
        var n8 = String(e4);
        pf.has(n8) || (pf.add(n8), console.error("Expected the last optional `callback` argument to be a function. Instead received: %s.", e4));
      }
    }
    function zr(e4, n8, t5, r5) {
      var l5 = e4.memoizedState, a6 = t5(r5, l5);
      if (8 & e4.mode) {
        P(true);
        try {
          a6 = t5(r5, l5);
        } finally {
          P(false);
        }
      }
      void 0 === a6 && (n8 = s4(n8) || "Component", sf.has(n8) || (sf.add(n8), console.error("%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.", n8))), l5 = null == a6 ? l5 : ho({}, l5, a6), e4.memoizedState = l5, 0 === e4.lanes && (e4.updateQueue.baseState = l5);
    }
    function xr(e4, n8, t5, r5, l5, a6, o6) {
      var u5 = e4.stateNode;
      if ("function" == typeof u5.shouldComponentUpdate) {
        if (t5 = u5.shouldComponentUpdate(r5, a6, o6), 8 & e4.mode) {
          P(true);
          try {
            t5 = u5.shouldComponentUpdate(r5, a6, o6);
          } finally {
            P(false);
          }
        }
        return void 0 === t5 && console.error("%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.", s4(n8) || "Component"), t5;
      }
      return !(n8.prototype && n8.prototype.isPureReactComponent && en(t5, r5) && en(l5, a6));
    }
    function Er(e4, n8, t5, r5) {
      var l5 = n8.state;
      "function" == typeof n8.componentWillReceiveProps && n8.componentWillReceiveProps(t5, r5), "function" == typeof n8.UNSAFE_componentWillReceiveProps && n8.UNSAFE_componentWillReceiveProps(t5, r5), n8.state !== l5 && (e4 = c6(e4) || "Component", rf.has(e4) || (rf.add(e4), console.error("%s.componentWillReceiveProps(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.", e4)), mf.enqueueReplaceState(n8, n8.state, null));
    }
    function Cr(e4, n8) {
      var t5 = n8;
      if ("ref" in n8) for (var r5 in t5 = {}, n8) "ref" !== r5 && (t5[r5] = n8[r5]);
      if (e4 = e4.defaultProps) for (var l5 in t5 === n8 && (t5 = ho({}, t5)), e4) void 0 === t5[l5] && (t5[l5] = e4[l5]);
      return t5;
    }
    function Pr(e4, n8) {
      try {
        n8.source && c6(n8.source);
        var t5 = n8.value;
        null !== Do.actQueue ? Do.thrownErrors.push(t5) : (0, e4.onUncaughtError)(t5, { componentStack: n8.stack });
      } catch (e5) {
        setTimeout((function() {
          throw e5;
        }));
      }
    }
    function _r(e4, n8, t5) {
      try {
        t5.source && c6(t5.source), c6(n8), (0, e4.onCaughtError)(t5.value, { componentStack: t5.stack, errorBoundary: 1 === n8.tag ? n8.stateNode : null });
      } catch (e5) {
        setTimeout((function() {
          throw e5;
        }));
      }
    }
    function Tr(e4, n8, t5) {
      return (t5 = _n(t5)).tag = dd, t5.payload = { element: null }, t5.callback = function() {
        le(n8.source, Pr, e4, n8);
      }, t5;
    }
    function Rr(e4) {
      return (e4 = _n(e4)).tag = dd, e4;
    }
    function Nr(e4, n8, t5, r5) {
      var l5 = t5.type.getDerivedStateFromError;
      if ("function" == typeof l5) {
        var a6 = r5.value;
        e4.payload = function() {
          return l5(a6);
        }, e4.callback = function() {
          le(r5.source, _r, n8, t5, r5);
        };
      }
      var o6 = t5.stateNode;
      null !== o6 && "function" == typeof o6.componentDidCatch && (e4.callback = function() {
        le(r5.source, _r, n8, t5, r5), "function" != typeof l5 && (null === Dp ? Dp = /* @__PURE__ */ new Set([this]) : Dp.add(this)), Lc(this, r5), "function" == typeof l5 || 0 == (2 & t5.lanes) && console.error("%s: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.", c6(t5) || "Unknown");
      });
    }
    function Lr(e4, n8, t5, r5) {
      n8.child = null === e4 ? td2(n8, null, t5, r5) : nd(n8, e4.child, t5, r5);
    }
    function Ur(e4, n8, t5, r5, l5) {
      t5 = t5.render;
      var a6 = n8.ref;
      if ("ref" in r5) {
        var o6 = {};
        for (var u5 in r5) "ref" !== u5 && (o6[u5] = r5[u5]);
      } else o6 = r5;
      return me(n8), r5 = Xn(e4, n8, t5, o6, a6, l5), u5 = tt(), null === e4 || gf ? (n8.flags |= 1, Lr(e4, n8, r5, l5), n8.child) : (rt(e4, n8, l5), nl(e4, n8, l5));
    }
    function Dr(e4, n8, t5, r5, l5) {
      if (null === e4) {
        var a6 = t5.type;
        return "function" != typeof a6 || no(a6) || void 0 !== a6.defaultProps || null !== t5.compare ? ((e4 = lo(t5.type, null, r5, n8, n8.mode, l5)).ref = n8.ref, e4.return = n8, n8.child = e4) : (t5 = a6, n8.tag = 15, n8.type = t5, $r(n8, a6), Ir(e4, n8, t5, r5, l5));
      }
      if (a6 = e4.child, !tl(e4, l5)) {
        var o6 = a6.memoizedProps;
        if ((t5 = null !== (t5 = t5.compare) ? t5 : en)(o6, r5) && e4.ref === n8.ref) return nl(e4, n8, l5);
      }
      return n8.flags |= 1, (e4 = to(a6, r5)).ref = n8.ref, e4.return = n8, n8.child = e4;
    }
    function Ir(e4, n8, t5, r5, l5) {
      if (null !== e4) {
        var a6 = e4.memoizedProps;
        if (en(a6, r5) && e4.ref === n8.ref && n8.type === e4.type) {
          if (gf = false, n8.pendingProps = r5 = a6, !tl(e4, l5)) return n8.lanes = e4.lanes, nl(e4, n8, l5);
          0 != (131072 & e4.flags) && (gf = true);
        }
      }
      return Wr(e4, n8, t5, r5, l5);
    }
    function Fr(e4, n8, t5, r5) {
      var l5 = r5.children, a6 = null !== e4 ? e4.memoizedState : null;
      if (null === e4 && null === n8.stateNode && (n8.stateNode = { _visibility: rd, _pendingMarkers: null, _retryCache: null, _transitions: null }), "hidden" === r5.mode) {
        if (0 != (128 & n8.flags)) {
          if (a6 = null !== a6 ? a6.baseLanes | t5 : t5, null !== e4) {
            for (r5 = n8.child = e4.child, l5 = 0; null !== r5; ) l5 = l5 | r5.lanes | r5.childLanes, r5 = r5.sibling;
            r5 = l5 & ~a6;
          } else r5 = 0, n8.child = null;
          return Ar(e4, n8, a6, t5, r5);
        }
        if (0 == (536870912 & t5)) return r5 = n8.lanes = 536870912, Ar(e4, n8, null !== a6 ? a6.baseLanes | t5 : t5, t5, r5);
        n8.memoizedState = { baseLanes: 0, cachePool: null }, null !== e4 && Xe(n8, null !== a6 ? a6.cachePool : null), null !== a6 ? jn(n8, a6) : An(n8), Wn(n8);
      } else null !== a6 ? (Xe(n8, a6.cachePool), jn(n8, a6), Qn(n8), n8.memoizedState = null) : (null !== e4 && Xe(n8, null), An(n8), Qn(n8));
      return Lr(e4, n8, l5, t5), n8.child;
    }
    function jr(e4, n8) {
      return null !== e4 && 22 === e4.tag || null !== n8.stateNode || (n8.stateNode = { _visibility: rd, _pendingMarkers: null, _retryCache: null, _transitions: null }), n8.sibling;
    }
    function Ar(e4, n8, t5, r5, l5) {
      var a6 = Ke();
      return a6 = null === a6 ? null : { parent: fs7._currentValue2, pool: a6 }, n8.memoizedState = { baseLanes: t5, cachePool: a6 }, null !== e4 && Xe(n8, null), An(n8), Wn(n8), null !== e4 && fe(e4, n8, r5, true), n8.childLanes = l5, null;
    }
    function Hr(e4, n8) {
      var t5 = n8.hidden;
      return void 0 !== t5 && console.error(`<Activity> doesn't accept a hidden prop. Use mode="hidden" instead.
- <Activity %s>
+ <Activity %s>`, true === t5 ? "hidden" : false === t5 ? "hidden={false}" : "hidden={...}", t5 ? 'mode="hidden"' : 'mode="visible"'), (n8 = Jr({ mode: n8.mode, children: n8.children }, e4.mode)).ref = e4.ref, e4.child = n8, n8.return = e4, n8;
    }
    function Or(e4, n8, t5) {
      return nd(n8, e4.child, null, t5), (e4 = Hr(n8, n8.pendingProps)).flags |= 2, Bn(n8), n8.memoizedState = null, e4;
    }
    function Mr(e4, n8) {
      var t5 = n8.ref;
      if (null === t5) null !== e4 && null !== e4.ref && (n8.flags |= 4194816);
      else {
        if ("function" != typeof t5 && "object" != typeof t5) throw Error("Expected ref to be a function, an object returned by React.createRef(), or undefined/null.");
        null !== e4 && e4.ref === t5 || (n8.flags |= 4194816);
      }
    }
    function Wr(e4, n8, t5, r5, l5) {
      if (t5.prototype && "function" == typeof t5.prototype.render) {
        var a6 = s4(t5) || "Unknown";
        yf[a6] || (console.error("The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.", a6, a6), yf[a6] = true);
      }
      return 8 & n8.mode && fc.recordLegacyContextWarning(n8, null), null === e4 && ($r(n8, n8.type), t5.contextTypes && (a6 = s4(t5) || "Unknown", vf[a6] || (vf[a6] = true, console.error("%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)", a6)))), me(n8), t5 = Xn(e4, n8, t5, r5, void 0, l5), r5 = tt(), null === e4 || gf ? (n8.flags |= 1, Lr(e4, n8, t5, l5), n8.child) : (rt(e4, n8, l5), nl(e4, n8, l5));
    }
    function Qr(e4, n8, t5, r5, l5, a6) {
      return me(n8), Vd = -1, qd = null !== e4 && e4.type !== n8.type, n8.updateQueue = null, t5 = et2(n8, r5, t5, l5), Zn(e4, n8), r5 = tt(), null === e4 || gf ? (n8.flags |= 1, Lr(e4, n8, t5, a6), n8.child) : (rt(e4, n8, a6), nl(e4, n8, a6));
    }
    function Br(e4, n8, t5, r5, l5) {
      var a6, o6, u5;
      if (me(n8), null === n8.stateNode) {
        if (o6 = qu, a6 = t5.contextType, "contextType" in t5 && null !== a6 && (void 0 === a6 || a6.$$typeof !== zo) && !ff.has(t5) && (ff.add(t5), u5 = void 0 === a6 ? " However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file." : "object" != typeof a6 ? " However, it is set to a " + typeof a6 + "." : a6.$$typeof === wo ? " Did you accidentally pass the Context.Consumer instead?" : " However, it is set to an object with keys {" + Object.keys(a6).join(", ") + "}.", console.error("%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s", s4(t5) || "Component", u5)), "object" == typeof a6 && null !== a6 && (o6 = he(a6)), a6 = new t5(r5, o6), 8 & n8.mode) {
          P(true);
          try {
            a6 = new t5(r5, o6);
          } finally {
            P(false);
          }
        }
        if (o6 = n8.memoizedState = null !== a6.state && void 0 !== a6.state ? a6.state : null, a6.updater = mf, n8.stateNode = a6, a6._reactInternals = n8, a6._reactInternalInstance = tf, "function" == typeof t5.getDerivedStateFromProps && null === o6 && (o6 = s4(t5) || "Component", lf.has(o6) || (lf.add(o6), console.error("`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.", o6, null === a6.state ? "null" : "undefined", o6))), "function" == typeof t5.getDerivedStateFromProps || "function" == typeof a6.getSnapshotBeforeUpdate) {
          var i6 = u5 = o6 = null;
          if ("function" == typeof a6.componentWillMount && true !== a6.componentWillMount.__suppressDeprecationWarning ? o6 = "componentWillMount" : "function" == typeof a6.UNSAFE_componentWillMount && (o6 = "UNSAFE_componentWillMount"), "function" == typeof a6.componentWillReceiveProps && true !== a6.componentWillReceiveProps.__suppressDeprecationWarning ? u5 = "componentWillReceiveProps" : "function" == typeof a6.UNSAFE_componentWillReceiveProps && (u5 = "UNSAFE_componentWillReceiveProps"), "function" == typeof a6.componentWillUpdate && true !== a6.componentWillUpdate.__suppressDeprecationWarning ? i6 = "componentWillUpdate" : "function" == typeof a6.UNSAFE_componentWillUpdate && (i6 = "UNSAFE_componentWillUpdate"), null !== o6 || null !== u5 || null !== i6) {
            a6 = s4(t5) || "Component";
            var d4 = "function" == typeof t5.getDerivedStateFromProps ? "getDerivedStateFromProps()" : "getSnapshotBeforeUpdate()";
            of.has(a6) || (of.add(a6), console.error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://react.dev/link/unsafe-component-lifecycles", a6, d4, null !== o6 ? "\n  " + o6 : "", null !== u5 ? "\n  " + u5 : "", null !== i6 ? "\n  " + i6 : ""));
          }
        }
        a6 = n8.stateNode, o6 = s4(t5) || "Component", a6.render || (t5.prototype && "function" == typeof t5.prototype.render ? console.error("No `render` method found on the %s instance: did you accidentally return an object from the constructor?", o6) : console.error("No `render` method found on the %s instance: you may have forgotten to define `render`.", o6)), !a6.getInitialState || a6.getInitialState.isReactClassApproved || a6.state || console.error("getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?", o6), a6.getDefaultProps && !a6.getDefaultProps.isReactClassApproved && console.error("getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.", o6), a6.contextType && console.error("contextType was defined as an instance property on %s. Use a static property to define contextType instead.", o6), t5.childContextTypes && !df.has(t5) && (df.add(t5), console.error("%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)", o6)), t5.contextTypes && !cf.has(t5) && (cf.add(t5), console.error("%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)", o6)), "function" == typeof a6.componentShouldUpdate && console.error("%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.", o6), t5.prototype && t5.prototype.isPureReactComponent && void 0 !== a6.shouldComponentUpdate && console.error("%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.", s4(t5) || "A pure component"), "function" == typeof a6.componentDidUnmount && console.error("%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?", o6), "function" == typeof a6.componentDidReceiveProps && console.error("%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().", o6), "function" == typeof a6.componentWillRecieveProps && console.error("%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?", o6), "function" == typeof a6.UNSAFE_componentWillRecieveProps && console.error("%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?", o6), u5 = a6.props !== r5, void 0 !== a6.props && u5 && console.error("When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.", o6), a6.defaultProps && console.error("Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.", o6, o6), "function" != typeof a6.getSnapshotBeforeUpdate || "function" == typeof a6.componentDidUpdate || af.has(t5) || (af.add(t5), console.error("%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.", s4(t5))), "function" == typeof a6.getDerivedStateFromProps && console.error("%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.", o6), "function" == typeof a6.getDerivedStateFromError && console.error("%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.", o6), "function" == typeof t5.getSnapshotBeforeUpdate && console.error("%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.", o6), (u5 = a6.state) && ("object" != typeof u5 || Uo(u5)) && console.error("%s.state: must be set to an object or null", o6), "function" == typeof a6.getChildContext && "object" != typeof t5.childContextTypes && console.error("%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().", o6), (a6 = n8.stateNode).props = r5, a6.state = n8.memoizedState, a6.refs = {}, Cn(n8), o6 = t5.contextType, a6.context = "object" == typeof o6 && null !== o6 ? he(o6) : qu, a6.state === r5 && (o6 = s4(t5) || "Component", uf.has(o6) || (uf.add(o6), console.error("%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.", o6))), 8 & n8.mode && fc.recordLegacyContextWarning(n8, a6), fc.recordUnsafeLifecycleWarnings(n8, a6), a6.state = n8.memoizedState, "function" == typeof (o6 = t5.getDerivedStateFromProps) && (zr(n8, t5, o6, r5), a6.state = n8.memoizedState), "function" == typeof t5.getDerivedStateFromProps || "function" == typeof a6.getSnapshotBeforeUpdate || "function" != typeof a6.UNSAFE_componentWillMount && "function" != typeof a6.componentWillMount || (o6 = a6.state, "function" == typeof a6.componentWillMount && a6.componentWillMount(), "function" == typeof a6.UNSAFE_componentWillMount && a6.UNSAFE_componentWillMount(), o6 !== a6.state && (console.error("%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.", c6(n8) || "Component"), mf.enqueueReplaceState(a6, a6.state, null)), Un(n8, r5, a6, l5), Ln(), a6.state = n8.memoizedState), "function" == typeof a6.componentDidMount && (n8.flags |= 4194308), (16 & n8.mode) !== ts && (n8.flags |= 134217728), a6 = true;
      } else if (null === e4) {
        a6 = n8.stateNode;
        var f5 = n8.memoizedProps;
        u5 = Cr(t5, f5), a6.props = u5;
        var p4 = a6.context;
        i6 = t5.contextType, o6 = qu, "object" == typeof i6 && null !== i6 && (o6 = he(i6)), i6 = "function" == typeof (d4 = t5.getDerivedStateFromProps) || "function" == typeof a6.getSnapshotBeforeUpdate, f5 = n8.pendingProps !== f5, i6 || "function" != typeof a6.UNSAFE_componentWillReceiveProps && "function" != typeof a6.componentWillReceiveProps || (f5 || p4 !== o6) && Er(n8, a6, r5, o6), fd2 = false;
        var m4 = n8.memoizedState;
        a6.state = m4, Un(n8, r5, a6, l5), Ln(), p4 = n8.memoizedState, f5 || m4 !== p4 || fd2 ? ("function" == typeof d4 && (zr(n8, t5, d4, r5), p4 = n8.memoizedState), (u5 = fd2 || xr(n8, t5, u5, r5, m4, p4, o6)) ? (i6 || "function" != typeof a6.UNSAFE_componentWillMount && "function" != typeof a6.componentWillMount || ("function" == typeof a6.componentWillMount && a6.componentWillMount(), "function" == typeof a6.UNSAFE_componentWillMount && a6.UNSAFE_componentWillMount()), "function" == typeof a6.componentDidMount && (n8.flags |= 4194308), (16 & n8.mode) !== ts && (n8.flags |= 134217728)) : ("function" == typeof a6.componentDidMount && (n8.flags |= 4194308), (16 & n8.mode) !== ts && (n8.flags |= 134217728), n8.memoizedProps = r5, n8.memoizedState = p4), a6.props = r5, a6.state = p4, a6.context = o6, a6 = u5) : ("function" == typeof a6.componentDidMount && (n8.flags |= 4194308), (16 & n8.mode) !== ts && (n8.flags |= 134217728), a6 = false);
      } else {
        a6 = n8.stateNode, Pn(e4, n8), i6 = Cr(t5, o6 = n8.memoizedProps), a6.props = i6, d4 = n8.pendingProps, m4 = a6.context, p4 = t5.contextType, u5 = qu, "object" == typeof p4 && null !== p4 && (u5 = he(p4)), (p4 = "function" == typeof (f5 = t5.getDerivedStateFromProps) || "function" == typeof a6.getSnapshotBeforeUpdate) || "function" != typeof a6.UNSAFE_componentWillReceiveProps && "function" != typeof a6.componentWillReceiveProps || (o6 !== d4 || m4 !== u5) && Er(n8, a6, r5, u5), fd2 = false, m4 = n8.memoizedState, a6.state = m4, Un(n8, r5, a6, l5), Ln();
        var h5 = n8.memoizedState;
        o6 !== d4 || m4 !== h5 || fd2 || null !== e4 && null !== e4.dependencies && pe(e4.dependencies) ? ("function" == typeof f5 && (zr(n8, t5, f5, r5), h5 = n8.memoizedState), (i6 = fd2 || xr(n8, t5, i6, r5, m4, h5, u5) || null !== e4 && null !== e4.dependencies && pe(e4.dependencies)) ? (p4 || "function" != typeof a6.UNSAFE_componentWillUpdate && "function" != typeof a6.componentWillUpdate || ("function" == typeof a6.componentWillUpdate && a6.componentWillUpdate(r5, h5, u5), "function" == typeof a6.UNSAFE_componentWillUpdate && a6.UNSAFE_componentWillUpdate(r5, h5, u5)), "function" == typeof a6.componentDidUpdate && (n8.flags |= 4), "function" == typeof a6.getSnapshotBeforeUpdate && (n8.flags |= 1024)) : ("function" != typeof a6.componentDidUpdate || o6 === e4.memoizedProps && m4 === e4.memoizedState || (n8.flags |= 4), "function" != typeof a6.getSnapshotBeforeUpdate || o6 === e4.memoizedProps && m4 === e4.memoizedState || (n8.flags |= 1024), n8.memoizedProps = r5, n8.memoizedState = h5), a6.props = r5, a6.state = h5, a6.context = u5, a6 = i6) : ("function" != typeof a6.componentDidUpdate || o6 === e4.memoizedProps && m4 === e4.memoizedState || (n8.flags |= 4), "function" != typeof a6.getSnapshotBeforeUpdate || o6 === e4.memoizedProps && m4 === e4.memoizedState || (n8.flags |= 1024), a6 = false);
      }
      if (u5 = a6, Mr(e4, n8), o6 = 0 != (128 & n8.flags), u5 || o6) {
        if (u5 = n8.stateNode, ae(n8), o6 && "function" != typeof t5.getDerivedStateFromError) t5 = null, vs = -1;
        else if (t5 = Cc(u5), 8 & n8.mode) {
          P(true);
          try {
            Cc(u5);
          } finally {
            P(false);
          }
        }
        n8.flags |= 1, null !== e4 && o6 ? (n8.child = nd(n8, e4.child, null, l5), n8.child = nd(n8, null, t5, l5)) : Lr(e4, n8, t5, l5), n8.memoizedState = u5.state, e4 = n8.child;
      } else e4 = nl(e4, n8, l5);
      return l5 = n8.stateNode, a6 && l5.props !== r5 && (kf || console.error("It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.", c6(n8) || "a component"), kf = true), e4;
    }
    function $r(e4, n8) {
      n8 && n8.childContextTypes && console.error("childContextTypes cannot be defined on a function component.\n  %s.childContextTypes = ...", n8.displayName || n8.name || "Component"), "function" == typeof n8.getDerivedStateFromProps && (e4 = s4(n8) || "Unknown", Sf[e4] || (console.error("%s: Function components do not support getDerivedStateFromProps.", e4), Sf[e4] = true)), "object" == typeof n8.contextType && null !== n8.contextType && (n8 = s4(n8) || "Unknown", bf[n8] || (console.error("%s: Function components do not support contextType.", n8), bf[n8] = true));
    }
    function Vr(e4) {
      return { baseLanes: e4, cachePool: Ze() };
    }
    function qr(e4, n8, t5) {
      return e4 = null !== e4 ? e4.childLanes & ~t5 : 0, n8 && (e4 |= wp), e4;
    }
    function Yr(e4, n8, t5) {
      var r5, l5 = n8.pendingProps, a6 = false, o6 = 0 != (128 & n8.flags);
      if ((r5 = o6) || (r5 = (null === e4 || null !== e4.memoizedState) && 0 != (wd.current & kd)), r5 && (a6 = true, n8.flags &= -129), r5 = 0 != (32 & n8.flags), n8.flags &= -33, null === e4) {
        var u5 = l5.children;
        return l5 = l5.fallback, a6 ? (Qn(n8), u5 = Jr({ mode: "hidden", children: u5 }, a6 = n8.mode), l5 = oo(l5, a6, t5, null), u5.return = n8, l5.return = n8, u5.sibling = l5, n8.child = u5, (l5 = n8.child).memoizedState = Vr(t5), l5.childLanes = qr(e4, r5, t5), n8.memoizedState = xf, jr(null, l5)) : (On(n8), Gr(n8, u5));
      }
      var i6, s5 = e4.memoizedState;
      if (null !== s5 && null !== (u5 = s5.dehydrated)) {
        if (o6) 256 & n8.flags ? (On(n8), n8.flags &= -257, n8 = Kr(e4, n8, t5)) : null !== n8.memoizedState ? (Qn(n8), n8.child = e4.child, n8.flags |= 128, n8 = null) : (Qn(n8), u5 = l5.fallback, a6 = n8.mode, l5 = Jr({ mode: "visible", children: l5.children }, a6), (u5 = oo(u5, a6, t5, null)).flags |= 2, l5.return = n8, u5.return = n8, l5.sibling = u5, n8.child = l5, nd(n8, e4.child, null, t5), (l5 = n8.child).memoizedState = Vr(t5), l5.childLanes = qr(e4, r5, t5), n8.memoizedState = xf, n8 = jr(null, l5));
        else if (On(n8), 0 != (536870912 & t5) && xa(n8), Lu(u5)) r5 = (a6 = Uu(u5)).digest, u5 = a6.message, l5 = a6.stack, a6 = a6.componentStack, (u5 = u5 ? Error(u5) : Error("The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.")).stack = l5 || "", u5.digest = r5, l5 = { value: u5, source: null, stack: r5 = void 0 === a6 ? null : a6 }, "string" == typeof r5 && Ai.set(u5, l5), i6 = l5, null === ns ? ns = [i6] : ns.push(i6), n8 = Kr(e4, n8, t5);
        else if (gf || fe(e4, n8, t5, false), r5 = 0 != (t5 & e4.childLanes), gf || r5) {
          if (null !== (r5 = Zf) && 0 !== (l5 = z(r5, t5)) && l5 !== s5.retryLane) throw s5.retryLane = l5, zn(e4, l5), pa(r5, e4, l5), hf;
          Nu(u5) || Ea(), n8 = Kr(e4, n8, t5);
        } else Nu(u5) ? (n8.flags |= 192, n8.child = e4.child, n8 = null) : (e4 = s5.treeContext, (n8 = Gr(n8, l5.children)).flags |= 4096);
        return n8;
      }
      return a6 ? (Qn(n8), u5 = l5.fallback, a6 = n8.mode, o6 = (s5 = e4.child).sibling, (l5 = to(s5, { mode: "hidden", children: l5.children })).subtreeFlags = 65011712 & s5.subtreeFlags, null !== o6 ? u5 = to(o6, u5) : (u5 = oo(u5, a6, t5, null)).flags |= 2, u5.return = n8, l5.return = n8, l5.sibling = u5, n8.child = l5, jr(null, l5), l5 = n8.child, null === (u5 = e4.child.memoizedState) ? u5 = Vr(t5) : (null !== (a6 = u5.cachePool) ? (s5 = fs7._currentValue2, a6 = a6.parent !== s5 ? { parent: s5, pool: s5 } : a6) : a6 = Ze(), u5 = { baseLanes: u5.baseLanes | t5, cachePool: a6 }), l5.memoizedState = u5, l5.childLanes = qr(e4, r5, t5), n8.memoizedState = xf, jr(e4.child, l5)) : (null !== s5 && (62914560 & t5) === t5 && 0 != (t5 & e4.lanes) && xa(n8), On(n8), e4 = (t5 = e4.child).sibling, (t5 = to(t5, { mode: "visible", children: l5.children })).return = n8, t5.sibling = null, null !== e4 && (null === (r5 = n8.deletions) ? (n8.deletions = [e4], n8.flags |= 16) : r5.push(e4)), n8.child = t5, n8.memoizedState = null, t5);
    }
    function Gr(e4, n8) {
      return (n8 = Jr({ mode: "visible", children: n8 }, e4.mode)).return = e4, e4.child = n8;
    }
    function Jr(e4, n8) {
      return (e4 = t4(22, e4, null, n8)).lanes = 0, e4;
    }
    function Kr(e4, n8, t5) {
      return nd(n8, e4.child, null, t5), (e4 = Gr(n8, n8.pendingProps.children)).flags |= 2, n8.memoizedState = null, e4;
    }
    function Xr(e4, n8, t5) {
      e4.lanes |= n8;
      var r5 = e4.alternate;
      null !== r5 && (r5.lanes |= n8), ce(e4.return, n8, t5);
    }
    function Zr(e4, n8, t5, r5, l5, a6) {
      var o6 = e4.memoizedState;
      null === o6 ? e4.memoizedState = { isBackwards: n8, rendering: null, renderingStartTime: 0, last: r5, tail: t5, tailMode: l5, treeForkCount: a6 } : (o6.isBackwards = n8, o6.rendering = null, o6.renderingStartTime = 0, o6.last = r5, o6.tail = t5, o6.tailMode = l5, o6.treeForkCount = a6);
    }
    function el(e4, n8, t5) {
      var r5 = n8.pendingProps, l5 = r5.revealOrder, a6 = r5.tail, o6 = r5.children, u5 = wd.current;
      if ((r5 = 0 != (u5 & kd)) ? (u5 = u5 & Sd | kd, n8.flags |= 128) : u5 &= Sd, p3(wd, u5, n8), u5 = null == l5 ? "null" : l5, "forwards" !== l5 && "unstable_legacy-backwards" !== l5 && "together" !== l5 && "independent" !== l5 && !wf[u5]) if (wf[u5] = true, null == l5) console.error('The default for the <SuspenseList revealOrder="..."> prop is changing. To be future compatible you must explictly specify either "independent" (the current default), "together", "forwards" or "legacy_unstable-backwards".');
      else if ("backwards" === l5) console.error('The rendering order of <SuspenseList revealOrder="backwards"> is changing. To be future compatible you must specify revealOrder="legacy_unstable-backwards" instead.');
      else if ("string" == typeof l5) switch (l5.toLowerCase()) {
        case "together":
        case "forwards":
        case "backwards":
        case "independent":
          console.error('"%s" is not a valid value for revealOrder on <SuspenseList />. Use lowercase "%s" instead.', l5, l5.toLowerCase());
          break;
        case "forward":
        case "backward":
          console.error('"%s" is not a valid value for revealOrder on <SuspenseList />. React uses the -s suffix in the spelling. Use "%ss" instead.', l5, l5.toLowerCase());
          break;
        default:
          console.error('"%s" is not a supported revealOrder on <SuspenseList />. Did you mean "independent", "together", "forwards" or "backwards"?', l5);
      }
      else console.error('%s is not a supported value for revealOrder on <SuspenseList />. Did you mean "independent", "together", "forwards" or "backwards"?', l5);
      zf[u5 = null == a6 ? "null" : a6] || (null == a6 ? "forwards" !== l5 && "backwards" !== l5 && "unstable_legacy-backwards" !== l5 || (zf[u5] = true, console.error('The default for the <SuspenseList tail="..."> prop is changing. To be future compatible you must explictly specify either "visible" (the current default), "collapsed" or "hidden".')) : "visible" !== a6 && "collapsed" !== a6 && "hidden" !== a6 ? (zf[u5] = true, console.error('"%s" is not a supported value for tail on <SuspenseList />. Did you mean "visible", "collapsed" or "hidden"?', a6)) : "forwards" !== l5 && "backwards" !== l5 && "unstable_legacy-backwards" !== l5 && (zf[u5] = true, console.error('<SuspenseList tail="%s" /> is only valid if revealOrder is "forwards" or "backwards". Did you mean to specify revealOrder="forwards"?', a6)));
      e: if (("forwards" === l5 || "backwards" === l5 || "unstable_legacy-backwards" === l5) && null != o6 && false !== o6) if (Uo(o6)) {
        for (u5 = 0; u5 < o6.length; u5++) if (!vn(o6[u5], u5)) break e;
      } else if (u5 = i5(o6), "function" == typeof u5) {
        if (u5 = u5.call(o6)) for (var s5 = u5.next(), c7 = 0; !s5.done; s5 = u5.next()) {
          if (!vn(s5.value, c7)) break e;
          c7++;
        }
      } else console.error('A single row was passed to a <SuspenseList revealOrder="%s" />. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?', l5);
      if (Lr(e4, n8, o6, t5), o6 = 0, !r5 && null !== e4 && 0 != (128 & e4.flags)) e: for (e4 = n8.child; null !== e4; ) {
        if (13 === e4.tag) null !== e4.memoizedState && Xr(e4, t5, n8);
        else if (19 === e4.tag) Xr(e4, t5, n8);
        else if (null !== e4.child) {
          e4.child.return = e4, e4 = e4.child;
          continue;
        }
        if (e4 === n8) break e;
        for (; null === e4.sibling; ) {
          if (null === e4.return || e4.return === n8) break e;
          e4 = e4.return;
        }
        e4.sibling.return = e4.return, e4 = e4.sibling;
      }
      switch (l5) {
        case "forwards":
          for (t5 = n8.child, l5 = null; null !== t5; ) null !== (e4 = t5.alternate) && null === $n(e4) && (l5 = t5), t5 = t5.sibling;
          null === (t5 = l5) ? (l5 = n8.child, n8.child = null) : (l5 = t5.sibling, t5.sibling = null), Zr(n8, false, l5, t5, a6, o6);
          break;
        case "backwards":
        case "unstable_legacy-backwards":
          for (t5 = null, l5 = n8.child, n8.child = null; null !== l5; ) {
            if (null !== (e4 = l5.alternate) && null === $n(e4)) {
              n8.child = l5;
              break;
            }
            e4 = l5.sibling, l5.sibling = t5, t5 = l5, l5 = e4;
          }
          Zr(n8, true, t5, null, a6, o6);
          break;
        case "together":
          Zr(n8, false, null, null, void 0, o6);
          break;
        default:
          n8.memoizedState = null;
      }
      return n8.child;
    }
    function nl(e4, n8, t5) {
      if (null !== e4 && (n8.dependencies = e4.dependencies), vs = -1, vp |= n8.lanes, 0 == (t5 & n8.childLanes)) {
        if (null === e4) return null;
        if (fe(e4, n8, t5, false), 0 == (t5 & n8.childLanes)) return null;
      }
      if (null !== e4 && n8.child !== e4.child) throw Error("Resuming work not yet implemented.");
      if (null !== n8.child) {
        for (t5 = to(e4 = n8.child, e4.pendingProps), n8.child = t5, t5.return = n8; null !== e4.sibling; ) e4 = e4.sibling, (t5 = t5.sibling = to(e4, e4.pendingProps)).return = n8;
        t5.sibling = null;
      }
      return n8.child;
    }
    function tl(e4, n8) {
      return 0 != (e4.lanes & n8) || !(null === (e4 = e4.dependencies) || !pe(e4));
    }
    function rl(e4, n8, t5) {
      if (n8._debugNeedsRemount && null !== e4) {
        (t5 = lo(n8.type, n8.key, n8.pendingProps, n8._debugOwner || null, n8.mode, n8.lanes))._debugStack = n8._debugStack, t5._debugTask = n8._debugTask;
        var r5 = n8.return;
        if (null === r5) throw Error("Cannot swap the root fiber.");
        if (e4.alternate = null, n8.alternate = null, t5.index = n8.index, t5.sibling = n8.sibling, t5.return = n8.return, t5.ref = n8.ref, t5._debugInfo = n8._debugInfo, n8 === r5.child) r5.child = t5;
        else {
          var l5 = r5.child;
          if (null === l5) throw Error("Expected parent to have a child.");
          for (; l5.sibling !== n8; ) if (null === (l5 = l5.sibling)) throw Error("Expected to find the previous sibling.");
          l5.sibling = t5;
        }
        return null === (n8 = r5.deletions) ? (r5.deletions = [e4], r5.flags |= 16) : n8.push(e4), t5.flags |= 2, t5;
      }
      if (null !== e4) if (e4.memoizedProps !== n8.pendingProps || n8.type !== e4.type) gf = true;
      else {
        if (!tl(e4, t5) && 0 == (128 & n8.flags)) return gf = false, (function(e5, n9, t6) {
          switch (n9.tag) {
            case 3:
              X(n9, n9.stateNode.containerInfo), ie(n9, fs7, e5.memoizedState.cache);
              break;
            case 27:
            case 5:
              ne(n9);
              break;
            case 4:
              X(n9, n9.stateNode.containerInfo);
              break;
            case 10:
              ie(n9, n9.type, n9.memoizedProps.value);
              break;
            case 12:
              0 != (t6 & n9.childLanes) && (n9.flags |= 4), n9.flags |= 2048;
              var r6 = n9.stateNode;
              r6.effectDuration = -0, r6.passiveEffectDuration = -0;
              break;
            case 31:
              if (null !== n9.memoizedState) return n9.flags |= 128, Mn(n9), null;
              break;
            case 13:
              if (null !== (r6 = n9.memoizedState)) return null !== r6.dehydrated ? (On(n9), n9.flags |= 128, null) : 0 != (t6 & n9.child.childLanes) ? Yr(e5, n9, t6) : (On(n9), null !== (e5 = nl(e5, n9, t6)) ? e5.sibling : null);
              On(n9);
              break;
            case 19:
              var l6 = 0 != (128 & e5.flags);
              if ((r6 = 0 != (t6 & n9.childLanes)) || (fe(e5, n9, t6, false), r6 = 0 != (t6 & n9.childLanes)), l6) {
                if (r6) return el(e5, n9, t6);
                n9.flags |= 128;
              }
              if (null !== (l6 = n9.memoizedState) && (l6.rendering = null, l6.tail = null, l6.lastEffect = null), p3(wd, wd.current, n9), r6) break;
              return null;
            case 22:
              return n9.lanes = 0, Fr(e5, n9, t6, n9.pendingProps);
            case 24:
              ie(n9, fs7, e5.memoizedState.cache);
          }
          return nl(e5, n9, t6);
        })(e4, n8, t5);
        gf = 0 != (131072 & e4.flags);
      }
      else gf = false, (r5 = es) && (J(), r5 = 0 != (1048576 & n8.flags)), r5 && (r5 = n8.index, J(), (function(e5, n9, t6) {
        J(), Qi[Bi++] = Vi, Qi[Bi++] = qi, Qi[Bi++] = $i, $i = e5;
        var r6 = Vi;
        e5 = qi;
        var l6 = 32 - Yu(r6) - 1;
        r6 &= ~(1 << l6), t6 += 1;
        var a7 = 32 - Yu(n9) + l6;
        if (30 < a7) {
          var o7 = l6 - l6 % 5;
          a7 = (r6 & (1 << o7) - 1).toString(32), r6 >>= o7, l6 -= o7, Vi = 1 << 32 - Yu(n9) + l6 | t6 << l6 | r6, qi = a7 + e5;
        } else Vi = 1 << a7 | t6 << l6 | r6, qi = e5;
      })(n8, Wi, r5));
      switch (n8.lanes = 0, n8.tag) {
        case 16:
          e: {
            if (r5 = n8.pendingProps, e4 = rn(n8.elementType), n8.type = e4, "function" != typeof e4) {
              if (null != e4) {
                if ((l5 = e4.$$typeof) === xo) {
                  n8.tag = 11, n8.type = e4, n8 = Ur(null, n8, e4, r5, t5);
                  break e;
                }
                if (l5 === Po) {
                  n8.tag = 14, n8 = Dr(null, n8, e4, r5, t5);
                  break e;
                }
              }
              throw n8 = "", null !== e4 && "object" == typeof e4 && e4.$$typeof === _o && (n8 = " Did you wrap a component in React.lazy() more than once?"), e4 = s4(e4) || e4, Error("Element type is invalid. Received a promise that resolves to: " + e4 + ". Lazy element type must resolve to a class or function." + n8);
            }
            no(e4) ? (r5 = Cr(e4, r5), n8.tag = 1, n8.type = e4, n8 = Br(null, n8, e4, r5, t5)) : (n8.tag = 0, $r(n8, e4), n8.type = e4, n8 = Wr(null, n8, e4, r5, t5));
          }
          return n8;
        case 0:
          return Wr(e4, n8, n8.type, n8.pendingProps, t5);
        case 1:
          return Br(e4, n8, r5 = n8.type, l5 = Cr(r5, n8.pendingProps), t5);
        case 3:
          if (X(n8, n8.stateNode.containerInfo), null === e4) throw Error("Should have a current fiber. This is a bug in React.");
          var a6 = n8.pendingProps;
          r5 = (l5 = n8.memoizedState).element, Pn(e4, n8), Un(n8, a6, null, t5);
          var o6 = n8.memoizedState;
          return a6 = o6.cache, ie(n8, fs7, a6), a6 !== l5.cache && de(n8, [fs7], t5, true), Ln(), (a6 = o6.element) !== r5 ? (Lr(e4, n8, a6, t5), n8 = n8.child) : n8 = nl(e4, n8, t5), n8;
        case 26:
        case 27:
        case 5:
          return ne(n8), l5 = n8.type, a6 = n8.pendingProps, o6 = null !== e4 ? e4.memoizedProps : null, r5 = a6.children, Qo(l5, a6) ? r5 = null : null !== o6 && Qo(l5, o6) && (n8.flags |= 32), null !== n8.memoizedState && (l5 = Xn(e4, n8, nt, null, null, t5), mu._currentValue2 = l5), Mr(e4, n8), Lr(e4, n8, r5, t5), n8.child;
        case 6:
          return null;
        case 13:
          return Yr(e4, n8, t5);
        case 4:
          return X(n8, n8.stateNode.containerInfo), r5 = n8.pendingProps, null === e4 ? n8.child = nd(n8, null, r5, t5) : Lr(e4, n8, r5, t5), n8.child;
        case 11:
          return Ur(e4, n8, n8.type, n8.pendingProps, t5);
        case 7:
          return Lr(e4, n8, n8.pendingProps, t5), n8.child;
        case 8:
          return Lr(e4, n8, n8.pendingProps.children, t5), n8.child;
        case 12:
          return n8.flags |= 4, n8.flags |= 2048, (r5 = n8.stateNode).effectDuration = -0, r5.passiveEffectDuration = -0, Lr(e4, n8, n8.pendingProps.children, t5), n8.child;
        case 10:
          return r5 = n8.type, a6 = (l5 = n8.pendingProps).value, "value" in l5 || Ef || (Ef = true, console.error("The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?")), ie(n8, r5, a6), Lr(e4, n8, l5.children, t5), n8.child;
        case 9:
          return l5 = n8.type._context, "function" != typeof (r5 = n8.pendingProps.children) && console.error("A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."), me(n8), l5 = he(l5), r5 = xc(r5, l5, void 0), n8.flags |= 1, Lr(e4, n8, r5, t5), n8.child;
        case 14:
          return Dr(e4, n8, n8.type, n8.pendingProps, t5);
        case 15:
          return Ir(e4, n8, n8.type, n8.pendingProps, t5);
        case 19:
          return el(e4, n8, t5);
        case 31:
          return (function(e5, n9, t6) {
            var r6 = n9.pendingProps, l6 = 0 != (128 & n9.flags);
            if (n9.flags &= -129, null === e5) return Hr(n9, r6);
            var a7 = e5.memoizedState;
            if (null !== a7) {
              var o7 = a7.dehydrated;
              if (Mn(n9), l6) if (256 & n9.flags) n9.flags &= -257, n9 = Or(e5, n9, t6);
              else {
                if (null === n9.memoizedState) throw Error("Client rendering an Activity suspended it again. This is a bug in React.");
                n9.child = e5.child, n9.flags |= 128, n9 = null;
              }
              else if (0 != (536870912 & t6) && xa(n9), gf || fe(e5, n9, t6, false), l6 = 0 != (t6 & e5.childLanes), gf || l6) {
                if (null !== (r6 = Zf) && 0 !== (o7 = z(r6, t6)) && o7 !== a7.retryLane) throw a7.retryLane = o7, zn(e5, o7), pa(r6, e5, o7), hf;
                Ea(), n9 = Or(e5, n9, t6);
              } else e5 = a7.treeContext, (n9 = Hr(n9, r6)).flags |= 4096;
              return n9;
            }
            return a7 = e5.child, r6 = { mode: r6.mode, children: r6.children }, 0 != (536870912 & t6) && 0 != (t6 & e5.lanes) && xa(n9), (e5 = to(a7, r6)).ref = n9.ref, n9.child = e5, e5.return = n9, e5;
          })(e4, n8, t5);
        case 22:
          return Fr(e4, n8, t5, n8.pendingProps);
        case 24:
          return me(n8), r5 = he(fs7), null === e4 ? (null === (l5 = Ke()) && (l5 = Zf, a6 = be(), l5.pooledCache = a6, ve(a6), null !== a6 && (l5.pooledCacheLanes |= t5), l5 = a6), n8.memoizedState = { parent: r5, cache: l5 }, Cn(n8), ie(n8, fs7, l5)) : (0 != (e4.lanes & t5) && (Pn(e4, n8), Un(n8, null, null, t5), Ln()), l5 = e4.memoizedState, a6 = n8.memoizedState, l5.parent !== r5 ? (l5 = { parent: r5, cache: r5 }, n8.memoizedState = l5, 0 === n8.lanes && (n8.memoizedState = n8.updateQueue.baseState = l5), ie(n8, fs7, r5)) : (r5 = a6.cache, ie(n8, fs7, r5), r5 !== l5.cache && de(n8, [fs7], t5, true))), Lr(e4, n8, n8.pendingProps.children, t5), n8.child;
        case 29:
          throw n8.pendingProps;
      }
      throw Error("Unknown unit of work tag (" + n8.tag + "). This error is likely caused by a bug in React. Please file an issue.");
    }
    function ll(e4) {
      e4.flags |= 4;
    }
    function al(e4, n8, t5, r5, l5) {
      if ((32 & e4.mode) !== ts && (null === t5 ? au(n8, r5) : ou(n8, t5, r5))) {
        if (e4.flags |= 16777216, (335544128 & l5) === l5 || uu(n8, r5)) if (iu(e4.stateNode, n8, r5)) e4.flags |= 8192;
        else {
          if (null !== (a6 = bd.current) && ((4194048 & np) === np ? null !== vd : (62914560 & np) !== np && 0 == (536870912 & np) || a6 !== vd)) throw $c = Bc, Wc;
          e4.flags |= 8192;
        }
      } else e4.flags &= -16777217;
      var a6;
    }
    function ol(e4, n8) {
      null !== n8 && (e4.flags |= 4), 16384 & e4.flags && (n8 = 22 !== e4.tag ? b3() : 536870912, e4.lanes |= n8, zp |= n8);
    }
    function ul(e4, n8) {
      switch (e4.tailMode) {
        case "hidden":
          n8 = e4.tail;
          for (var t5 = null; null !== n8; ) null !== n8.alternate && (t5 = n8), n8 = n8.sibling;
          null === t5 ? e4.tail = null : t5.sibling = null;
          break;
        case "collapsed":
          t5 = e4.tail;
          for (var r5 = null; null !== t5; ) null !== t5.alternate && (r5 = t5), t5 = t5.sibling;
          null === r5 ? n8 || null === e4.tail ? e4.tail = null : e4.tail.sibling = null : r5.sibling = null;
      }
    }
    function il(e4) {
      var n8 = null !== e4.alternate && e4.alternate.child === e4.child, t5 = 0, r5 = 0;
      if (n8) if ((2 & e4.mode) !== ts) {
        for (var l5 = e4.selfBaseDuration, a6 = e4.child; null !== a6; ) t5 |= a6.lanes | a6.childLanes, r5 |= 65011712 & a6.subtreeFlags, r5 |= 65011712 & a6.flags, l5 += a6.treeBaseDuration, a6 = a6.sibling;
        e4.treeBaseDuration = l5;
      } else for (l5 = e4.child; null !== l5; ) t5 |= l5.lanes | l5.childLanes, r5 |= 65011712 & l5.subtreeFlags, r5 |= 65011712 & l5.flags, l5.return = e4, l5 = l5.sibling;
      else if ((2 & e4.mode) !== ts) {
        l5 = e4.actualDuration, a6 = e4.selfBaseDuration;
        for (var o6 = e4.child; null !== o6; ) t5 |= o6.lanes | o6.childLanes, r5 |= o6.subtreeFlags, r5 |= o6.flags, l5 += o6.actualDuration, a6 += o6.treeBaseDuration, o6 = o6.sibling;
        e4.actualDuration = l5, e4.treeBaseDuration = a6;
      } else for (l5 = e4.child; null !== l5; ) t5 |= l5.lanes | l5.childLanes, r5 |= l5.subtreeFlags, r5 |= l5.flags, l5.return = e4, l5 = l5.sibling;
      return e4.subtreeFlags |= r5, e4.childLanes = t5, n8;
    }
    function sl(e4, n8, t5) {
      var r5 = n8.pendingProps;
      switch (G2(n8), n8.tag) {
        case 16:
        case 15:
        case 0:
        case 11:
        case 7:
        case 8:
        case 12:
        case 9:
        case 14:
        case 1:
          return il(n8), null;
        case 3:
          return t5 = n8.stateNode, r5 = null, null !== e4 && (r5 = e4.memoizedState.cache), n8.memoizedState.cache !== r5 && (n8.flags |= 2048), se(fs7, n8), Z(n8), t5.pendingContext && (t5.context = t5.pendingContext, t5.pendingContext = null), null !== e4 && null !== e4.child || null === e4 || e4.memoizedState.isDehydrated && 0 == (256 & n8.flags) || (n8.flags |= 1024, oe()), il(n8), null;
        case 26:
          var l5, a6;
        case 27:
        case 5:
          if (te(n8), l5 = n8.type, null !== e4 && null != n8.stateNode) !(function(e5, n9, t6, r6) {
            e5.memoizedProps !== r6 && ll(n9);
          })(e4, n8, 0, r5);
          else {
            if (!r5) {
              if (null === n8.stateNode) throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");
              return il(n8), null;
            }
            a6 = ee();
            var o6 = K(Ji.current);
            (function(e5, n9, t6, r6) {
              for (t6 = n9.child; null !== t6; ) {
                if (5 === t6.tag || 6 === t6.tag) Mo(e5, t6.stateNode);
                else if (4 !== t6.tag && !Qu && null !== t6.child) {
                  t6.child.return = t6, t6 = t6.child;
                  continue;
                }
                if (t6 === n9) break;
                for (; null === t6.sibling; ) {
                  if (null === t6.return || t6.return === n9) return;
                  t6 = t6.return;
                }
                t6.sibling.return = t6.return, t6 = t6.sibling;
              }
            })(o6 = Oo(l5, r5, o6, a6, n8), n8, false), n8.stateNode = o6, Wo(o6, l5, r5, a6) && ll(n8);
          }
          return il(n8), al(n8, n8.type, null === e4 ? null : e4.memoizedProps, n8.pendingProps, t5), null;
        case 6:
          if (e4 && null != n8.stateNode) (t5 = e4.memoizedProps) !== r5 && ll(n8);
          else {
            if ("string" != typeof r5 && null === n8.stateNode) throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");
            e4 = K(Ji.current), t5 = ee(), n8.stateNode = Bo(r5, e4, t5, n8);
          }
          return il(n8), null;
        case 31:
          if (t5 = n8.memoizedState, null === e4 || null !== e4.memoizedState) {
            if (r5 = false, null !== t5) {
              if (null === e4) {
                if (!r5) throw Error("A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.");
                throw Error("Expected prepareToHydrateHostActivityInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");
              }
              0 == (128 & n8.flags) && (t5 = n8.memoizedState = null), n8.flags |= 4, il(n8), (2 & n8.mode) !== ts && null !== t5 && null !== (e4 = n8.child) && (n8.treeBaseDuration -= e4.treeBaseDuration), e4 = false;
            } else t5 = oe(), null !== e4 && null !== e4.memoizedState && (e4.memoizedState.hydrationErrors = t5), e4 = true;
            if (!e4) return 256 & n8.flags ? (Bn(n8), n8) : (Bn(n8), null);
            if (0 != (128 & n8.flags)) throw Error("Client rendering an Activity suspended it again. This is a bug in React.");
          }
          return il(n8), null;
        case 13:
          if (r5 = n8.memoizedState, null === e4 || null !== e4.memoizedState && null !== e4.memoizedState.dehydrated) {
            if (a6 = false, null !== (l5 = r5) && null !== l5.dehydrated) {
              if (null === e4) {
                if (!a6) throw Error("A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.");
                throw Error("Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");
              }
              0 == (128 & n8.flags) && (l5 = n8.memoizedState = null), n8.flags |= 4, il(n8), (2 & n8.mode) !== ts && null !== l5 && null !== (l5 = n8.child) && (n8.treeBaseDuration -= l5.treeBaseDuration), l5 = false;
            } else l5 = oe(), null !== e4 && null !== e4.memoizedState && (e4.memoizedState.hydrationErrors = l5), l5 = true;
            if (!l5) return 256 & n8.flags ? (Bn(n8), n8) : (Bn(n8), null);
          }
          return Bn(n8), 0 != (128 & n8.flags) ? (n8.lanes = t5, (2 & n8.mode) !== ts && Ae(n8), n8) : (t5 = null !== r5, e4 = null !== e4 && null !== e4.memoizedState, t5 && (l5 = null, null !== (r5 = n8.child).alternate && null !== r5.alternate.memoizedState && null !== r5.alternate.memoizedState.cachePool && (l5 = r5.alternate.memoizedState.cachePool.pool), a6 = null, null !== r5.memoizedState && null !== r5.memoizedState.cachePool && (a6 = r5.memoizedState.cachePool.pool), a6 !== l5 && (r5.flags |= 2048)), t5 !== e4 && t5 && (n8.child.flags |= 8192), ol(n8, n8.updateQueue), il(n8), (2 & n8.mode) !== ts && t5 && null !== (e4 = n8.child) && (n8.treeBaseDuration -= e4.treeBaseDuration), null);
        case 4:
          return Z(n8), null === e4 && Jo(n8.stateNode.containerInfo), il(n8), null;
        case 10:
          return se(n8.type, n8), il(n8), null;
        case 19:
          if (f4(wd, n8), null === (r5 = n8.memoizedState)) return il(n8), null;
          if (l5 = 0 != (128 & n8.flags), null === (a6 = r5.rendering)) if (l5) ul(r5, false);
          else {
            if (bp !== $f || null !== e4 && 0 != (128 & e4.flags)) for (e4 = n8.child; null !== e4; ) {
              if (null !== (a6 = $n(e4))) {
                for (n8.flags |= 128, ul(r5, false), e4 = a6.updateQueue, n8.updateQueue = e4, ol(n8, e4), n8.subtreeFlags = 0, e4 = t5, t5 = n8.child; null !== t5; ) ro(t5, e4), t5 = t5.sibling;
                return p3(wd, wd.current & Sd | kd, n8), n8.child;
              }
              e4 = e4.sibling;
            }
            null !== r5.tail && li() > Rp && (n8.flags |= 128, l5 = true, ul(r5, false), n8.lanes = 4194304);
          }
          else {
            if (!l5) if (null !== (e4 = $n(a6))) {
              if (n8.flags |= 128, l5 = true, e4 = e4.updateQueue, n8.updateQueue = e4, ol(n8, e4), ul(r5, true), null === r5.tail && "hidden" === r5.tailMode && !a6.alternate) return il(n8), null;
            } else 2 * li() - r5.renderingStartTime > Rp && 536870912 !== t5 && (n8.flags |= 128, l5 = true, ul(r5, false), n8.lanes = 4194304);
            r5.isBackwards ? (a6.sibling = n8.child, n8.child = a6) : (null !== (e4 = r5.last) ? e4.sibling = a6 : n8.child = a6, r5.last = a6);
          }
          return null !== r5.tail ? (e4 = r5.tail, r5.rendering = e4, r5.tail = e4.sibling, r5.renderingStartTime = li(), e4.sibling = null, t5 = wd.current, p3(wd, t5 = l5 ? t5 & Sd | kd : t5 & Sd, n8), e4) : (il(n8), null);
        case 22:
        case 23:
          return Bn(n8), Hn(n8), r5 = null !== n8.memoizedState, null !== e4 ? null !== e4.memoizedState !== r5 && (n8.flags |= 8192) : r5 && (n8.flags |= 8192), r5 ? 0 != (536870912 & t5) && 0 == (128 & n8.flags) && (il(n8), 6 & n8.subtreeFlags && (n8.flags |= 8192)) : il(n8), null !== (t5 = n8.updateQueue) && ol(n8, t5.retryQueue), t5 = null, null !== e4 && null !== e4.memoizedState && null !== e4.memoizedState.cachePool && (t5 = e4.memoizedState.cachePool.pool), r5 = null, null !== n8.memoizedState && null !== n8.memoizedState.cachePool && (r5 = n8.memoizedState.cachePool.pool), r5 !== t5 && (n8.flags |= 2048), null !== e4 && f4(dc, n8), null;
        case 24:
          return t5 = null, null !== e4 && (t5 = e4.memoizedState.cache), n8.memoizedState.cache !== t5 && (n8.flags |= 2048), se(fs7, n8), il(n8), null;
        case 25:
        case 30:
          return null;
      }
      throw Error("Unknown unit of work tag (" + n8.tag + "). This error is likely caused by a bug in React. Please file an issue.");
    }
    function cl(e4, n8) {
      switch (G2(n8), n8.tag) {
        case 1:
          return 65536 & (e4 = n8.flags) ? (n8.flags = -65537 & e4 | 128, (2 & n8.mode) !== ts && Ae(n8), n8) : null;
        case 3:
          return se(fs7, n8), Z(n8), 0 != (65536 & (e4 = n8.flags)) && 0 == (128 & e4) ? (n8.flags = -65537 & e4 | 128, n8) : null;
        case 26:
        case 27:
        case 5:
          return te(n8), null;
        case 31:
          if (null !== n8.memoizedState && (Bn(n8), null === n8.alternate)) throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.");
          return 65536 & (e4 = n8.flags) ? (n8.flags = -65537 & e4 | 128, (2 & n8.mode) !== ts && Ae(n8), n8) : null;
        case 13:
          if (Bn(n8), null !== (e4 = n8.memoizedState) && null !== e4.dehydrated && null === n8.alternate) throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.");
          return 65536 & (e4 = n8.flags) ? (n8.flags = -65537 & e4 | 128, (2 & n8.mode) !== ts && Ae(n8), n8) : null;
        case 19:
          return f4(wd, n8), null;
        case 4:
          return Z(n8), null;
        case 10:
          return se(n8.type, n8), null;
        case 22:
        case 23:
          return Bn(n8), Hn(n8), null !== e4 && f4(dc, n8), 65536 & (e4 = n8.flags) ? (n8.flags = -65537 & e4 | 128, (2 & n8.mode) !== ts && Ae(n8), n8) : null;
        case 24:
          return se(fs7, n8), null;
        default:
          return null;
      }
    }
    function dl(e4, n8) {
      switch (G2(n8), n8.tag) {
        case 3:
          se(fs7, n8), Z(n8);
          break;
        case 26:
        case 27:
        case 5:
          te(n8);
          break;
        case 4:
          Z(n8);
          break;
        case 31:
          null !== n8.memoizedState && Bn(n8);
          break;
        case 13:
          Bn(n8);
          break;
        case 19:
          f4(wd, n8);
          break;
        case 10:
          se(n8.type, n8);
          break;
        case 22:
        case 23:
          Bn(n8), Hn(n8), null !== e4 && f4(dc, n8);
          break;
        case 24:
          se(fs7, n8);
      }
    }
    function fl2(e4) {
      return (2 & e4.mode) !== ts;
    }
    function pl(e4, n8) {
      fl2(e4) ? (je(), hl(n8, e4), Ie()) : hl(n8, e4);
    }
    function ml(e4, n8, t5) {
      fl2(e4) ? (je(), gl(t5, e4, n8), Ie()) : gl(t5, e4, n8);
    }
    function hl(e4, n8) {
      try {
        var t5 = n8.updateQueue, r5 = null !== t5 ? t5.lastEffect : null;
        if (null !== r5) {
          var l5 = r5.next;
          t5 = l5;
          do {
            var a6;
            (t5.tag & e4) === e4 && (r5 = void 0, (e4 & Ed) !== zd && (cm = true), r5 = le(n8, Fc, t5), (e4 & Ed) !== zd && (cm = false), void 0 !== r5 && "function" != typeof r5) && le(n8, (function(e5, n9) {
              console.error("%s must not return anything besides a function, which is used for clean-up.%s", e5, n9);
            }), a6 = 0 != (t5.tag & Cd) ? "useLayoutEffect" : 0 != (t5.tag & Ed) ? "useInsertionEffect" : "useEffect", null === r5 ? " You returned null. If your effect does not require clean up, return undefined (or nothing)." : "function" == typeof r5.then ? "\n\nIt looks like you wrote " + a6 + "(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:\n\n" + a6 + "(() => {\n  async function fetchData() {\n    // You can await here\n    const response = await MyAPI.getData(someId);\n    // ...\n  }\n  fetchData();\n}, [someId]); // Or [] if effect doesn't need props or state\n\nLearn more about data fetching with Hooks: https://react.dev/link/hooks-data-fetching" : " You returned: " + r5), t5 = t5.next;
          } while (t5 !== l5);
        }
      } catch (e5) {
        Qa(n8, n8.return, e5);
      }
    }
    function gl(e4, n8, t5) {
      try {
        var r5 = n8.updateQueue, l5 = null !== r5 ? r5.lastEffect : null;
        if (null !== l5) {
          var a6 = l5.next;
          r5 = a6;
          do {
            if ((r5.tag & e4) === e4) {
              var o6 = r5.inst, u5 = o6.destroy;
              void 0 !== u5 && (o6.destroy = void 0, (e4 & Ed) !== zd && (cm = true), le(l5 = n8, Ac, l5, t5, u5), (e4 & Ed) !== zd && (cm = false));
            }
            r5 = r5.next;
          } while (r5 !== a6);
        }
      } catch (e5) {
        Qa(n8, n8.return, e5);
      }
    }
    function yl(e4, n8) {
      fl2(e4) ? (je(), hl(n8, e4), Ie()) : hl(n8, e4);
    }
    function bl(e4, n8, t5) {
      fl2(e4) ? (je(), gl(t5, e4, n8), Ie()) : gl(t5, e4, n8);
    }
    function vl(e4) {
      var n8 = e4.updateQueue;
      if (null !== n8) {
        var t5 = e4.stateNode;
        e4.type.defaultProps || "ref" in e4.memoizedProps || kf || (t5.props !== e4.memoizedProps && console.error("Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", c6(e4) || "instance"), t5.state !== e4.memoizedState && console.error("Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", c6(e4) || "instance"));
        try {
          le(e4, Fn, n8, t5);
        } catch (n9) {
          Qa(e4, e4.return, n9);
        }
      }
    }
    function Sl(e4, n8, t5) {
      return e4.getSnapshotBeforeUpdate(n8, t5);
    }
    function kl(e4, n8) {
      var t5 = n8.memoizedProps, r5 = n8.memoizedState;
      n8 = e4.stateNode, e4.type.defaultProps || "ref" in e4.memoizedProps || kf || (n8.props !== e4.memoizedProps && console.error("Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", c6(e4) || "instance"), n8.state !== e4.memoizedState && console.error("Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", c6(e4) || "instance"));
      try {
        var l5 = Cr(e4.type, t5), a6 = le(e4, Sl, n8, l5, r5);
        t5 = Cf, void 0 !== a6 || t5.has(e4.type) || (t5.add(e4.type), le(e4, (function() {
          console.error("%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.", c6(e4));
        }))), n8.__reactInternalSnapshotBeforeUpdate = a6;
      } catch (n9) {
        Qa(e4, e4.return, n9);
      }
    }
    function wl(e4, n8, t5) {
      t5.props = Cr(e4.type, e4.memoizedProps), t5.state = e4.memoizedState, fl2(e4) ? (je(), le(e4, Dc, e4, n8, t5), Ie()) : le(e4, Dc, e4, n8, t5);
    }
    function zl(e4) {
      var n8 = e4.ref;
      if (null !== n8) {
        switch (e4.tag) {
          case 26:
          case 27:
          case 5:
            var t5 = Io(e4.stateNode);
            break;
          default:
            t5 = e4.stateNode;
        }
        if ("function" == typeof n8) if (fl2(e4)) try {
          je(), e4.refCleanup = n8(t5);
        } finally {
          Ie();
        }
        else e4.refCleanup = n8(t5);
        else "string" == typeof n8 ? console.error("String refs are no longer supported.") : n8.hasOwnProperty("current") || console.error("Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().", c6(e4)), n8.current = t5;
      }
    }
    function xl(e4, n8) {
      try {
        le(e4, zl, e4);
      } catch (t5) {
        Qa(e4, n8, t5);
      }
    }
    function El(e4, n8) {
      var t5 = e4.ref, r5 = e4.refCleanup;
      if (null !== t5) if ("function" == typeof r5) try {
        if (fl2(e4)) try {
          je(), le(e4, r5);
        } finally {
          Ie();
        }
        else le(e4, r5);
      } catch (t6) {
        Qa(e4, n8, t6);
      } finally {
        e4.refCleanup = null, null != (e4 = e4.alternate) && (e4.refCleanup = null);
      }
      else if ("function" == typeof t5) try {
        if (fl2(e4)) try {
          je(), le(e4, t5, null);
        } finally {
          Ie();
        }
        else le(e4, t5, null);
      } catch (t6) {
        Qa(e4, n8, t6);
      }
      else t5.current = null;
    }
    function Cl(e4, n8, t5, r5) {
      var l5 = e4.memoizedProps, a6 = l5.id, o6 = l5.onCommit;
      l5 = l5.onRender, n8 = null === n8 ? "mount" : "update", Js && (n8 = "nested-update"), "function" == typeof l5 && l5(a6, n8, e4.actualDuration, e4.treeBaseDuration, e4.actualStartTime, t5), "function" == typeof o6 && o6(a6, n8, r5, t5);
    }
    function Pl(e4, n8, t5, r5) {
      var l5 = e4.memoizedProps;
      e4 = l5.id, l5 = l5.onPostCommit, n8 = null === n8 ? "mount" : "update", Js && (n8 = "nested-update"), "function" == typeof l5 && l5(e4, n8, r5, t5);
    }
    function _l(e4) {
      var n8 = e4.type, t5 = e4.memoizedProps, r5 = e4.stateNode;
      try {
        le(e4, vu, r5, n8, t5, e4);
      } catch (n9) {
        Qa(e4, e4.return, n9);
      }
    }
    function Tl(e4) {
      return 5 === e4.tag || 3 === e4.tag || 4 === e4.tag;
    }
    function Rl(e4) {
      e: for (; ; ) {
        for (; null === e4.sibling; ) {
          if (null === e4.return || Tl(e4.return)) return null;
          e4 = e4.return;
        }
        for (e4.sibling.return = e4.return, e4 = e4.sibling; 5 !== e4.tag && 6 !== e4.tag && 18 !== e4.tag; ) {
          if (2 & e4.flags) continue e;
          if (null === e4.child || 4 === e4.tag) continue e;
          e4.child.return = e4, e4 = e4.child;
        }
        if (!(2 & e4.flags)) return e4.stateNode;
      }
    }
    function Nl(e4, n8, t5) {
      var r5 = e4.tag;
      if (5 === r5 || 6 === r5) e4 = e4.stateNode, n8 ? wu(t5, e4, n8) : yu(t5, e4);
      else if (4 !== r5 && null !== (e4 = e4.child)) for (Nl(e4, n8, t5), e4 = e4.sibling; null !== e4; ) Nl(e4, n8, t5), e4 = e4.sibling;
    }
    function Ll(e4, n8, t5) {
      var r5 = e4.tag;
      if (5 === r5 || 6 === r5) e4 = e4.stateNode, n8 ? ku(t5, e4, n8) : gu(t5, e4);
      else if (4 !== r5 && null !== (e4 = e4.child)) for (Ll(e4, n8, t5), e4 = e4.sibling; null !== e4; ) Ll(e4, n8, t5), e4 = e4.sibling;
    }
    function Ul(e4) {
      for (var n8, t5 = e4.return; null !== t5; ) {
        if (Tl(t5)) {
          n8 = t5;
          break;
        }
        t5 = t5.return;
      }
      if (null == n8) throw Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.");
      switch (n8.tag) {
        case 27:
        case 5:
          t5 = n8.stateNode, 32 & n8.flags && (Eu(t5), n8.flags &= -33), Ll(e4, n8 = Rl(e4), t5);
          break;
        case 3:
        case 4:
          n8 = n8.stateNode.containerInfo, Nl(e4, t5 = Rl(e4), n8);
          break;
        default:
          throw Error("Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.");
      }
    }
    function Dl(e4, n8) {
      return 31 === n8.tag ? (n8 = n8.memoizedState, null !== e4.memoizedState && null === n8) : 13 === n8.tag ? (e4 = e4.memoizedState, n8 = n8.memoizedState, null !== e4 && null !== e4.dehydrated && (null === n8 || null === n8.dehydrated)) : 3 === n8.tag && e4.memoizedState.isDehydrated && 0 == (256 & n8.flags);
    }
    function Il(e4, n8, t5) {
      var r5 = Ce(), l5 = _e(), a6 = Re(), o6 = Ne(), u5 = t5.flags;
      switch (t5.tag) {
        case 0:
        case 11:
        case 15:
          Bl(e4, t5), 4 & u5 && pl(t5, Cd | xd);
          break;
        case 1:
          if (Bl(e4, t5), 4 & u5) if (e4 = t5.stateNode, null === n8) t5.type.defaultProps || "ref" in t5.memoizedProps || kf || (e4.props !== t5.memoizedProps && console.error("Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", c6(t5) || "instance"), e4.state !== t5.memoizedState && console.error("Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", c6(t5) || "instance")), fl2(t5) ? (je(), le(t5, _c, t5, e4), Ie()) : le(t5, _c, t5, e4);
          else {
            var i6 = Cr(t5.type, n8.memoizedProps);
            n8 = n8.memoizedState, t5.type.defaultProps || "ref" in t5.memoizedProps || kf || (e4.props !== t5.memoizedProps && console.error("Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", c6(t5) || "instance"), e4.state !== t5.memoizedState && console.error("Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", c6(t5) || "instance")), fl2(t5) ? (je(), le(t5, Rc, t5, e4, i6, n8, e4.__reactInternalSnapshotBeforeUpdate), Ie()) : le(t5, Rc, t5, e4, i6, n8, e4.__reactInternalSnapshotBeforeUpdate);
          }
          64 & u5 && vl(t5), 512 & u5 && xl(t5, t5.return);
          break;
        case 3:
          if (n8 = we(), Bl(e4, t5), 64 & u5 && null !== (u5 = t5.updateQueue)) {
            if (i6 = null, null !== t5.child) switch (t5.child.tag) {
              case 27:
              case 5:
                i6 = Io(t5.child.stateNode);
                break;
              case 1:
                i6 = t5.child.stateNode;
            }
            try {
              le(t5, Fn, u5, i6);
            } catch (e5) {
              Qa(t5, t5.return, e5);
            }
          }
          e4.effectDuration += ze(n8);
          break;
        case 27:
        case 26:
        case 5:
          if (Bl(e4, t5), null === n8) {
            if (4 & u5) _l(t5);
            else if (64 & u5) {
              e4 = t5.type, n8 = t5.memoizedProps, i6 = t5.stateNode;
              try {
                le(t5, Iu, i6, e4, n8, t5);
              } catch (e5) {
                Qa(t5, t5.return, e5);
              }
            }
          }
          512 & u5 && xl(t5, t5.return);
          break;
        case 12:
          if (4 & u5) {
            u5 = we(), Bl(e4, t5), (e4 = t5.stateNode).effectDuration += xe(u5);
            try {
              le(t5, Cl, t5, n8, gs, e4.effectDuration);
            } catch (e5) {
              Qa(t5, t5.return, e5);
            }
          } else Bl(e4, t5);
          break;
        case 31:
        default:
          Bl(e4, t5);
          break;
        case 13:
          Bl(e4, t5), 64 & u5 && null !== (e4 = t5.memoizedState) && null !== (e4 = e4.dehydrated) && (u5 = qa.bind(null, t5), Du(e4, u5));
          break;
        case 22:
          if (!(u5 = null !== t5.memoizedState || Pf)) {
            n8 = null !== n8 && null !== n8.memoizedState || _f, i6 = Pf;
            var s5 = _f;
            Pf = u5, (_f = n8) && !s5 ? (Yl(e4, t5, 0 != (8772 & t5.subtreeFlags)), (2 & t5.mode) !== ts && 0 <= ws && 0 <= zs && 0.05 < zs - ws && U(t5, ws, zs)) : Bl(e4, t5), Pf = i6, _f = s5;
          }
        case 30:
      }
      (2 & t5.mode) !== ts && 0 <= ws && 0 <= zs && ((Es || 0.05 < ks) && F(t5, ws, zs, ks, xs), null === t5.alternate && null !== t5.return && null !== t5.return.alternate && 0.05 < zs - ws && (Dl(t5.return.alternate, t5.return) || L(t5, ws, zs, "Mount"))), Pe(r5), Te(l5), xs = a6, Es = o6;
    }
    function Fl(e4) {
      var n8 = e4.alternate;
      null !== n8 && (e4.alternate = null, Fl(n8)), e4.child = null, e4.deletions = null, e4.sibling = null, 5 === e4.tag && null !== (n8 = e4.stateNode) && lu(n8), e4.stateNode = null, e4._debugOwner = null, e4.return = null, e4.dependencies = null, e4.memoizedProps = null, e4.memoizedState = null, e4.pendingProps = null, e4.stateNode = null, e4.updateQueue = null;
    }
    function jl(e4, n8, t5) {
      for (t5 = t5.child; null !== t5; ) Al(e4, n8, t5), t5 = t5.sibling;
    }
    function Al(e4, n8, t5) {
      var r5 = Ce(), l5 = _e(), a6 = Re(), o6 = Ne();
      switch (t5.tag) {
        case 26:
        case 27:
          var u5, i6;
        case 5:
          _f || El(t5, n8);
        case 6:
          if (u5 = Df, i6 = If, Df = null, jl(e4, n8, t5), If = i6, null !== (Df = u5)) if (If) try {
            le(t5, xu, Df, t5.stateNode);
          } catch (e5) {
            Qa(t5, n8, e5);
          }
          else try {
            le(t5, zu, Df, t5.stateNode);
          } catch (e5) {
            Qa(t5, n8, e5);
          }
          break;
        case 18:
          null !== Df && (If ? ju(Df, t5.stateNode) : Fu(Df, t5.stateNode));
          break;
        case 4:
          u5 = Df, i6 = If, Df = t5.stateNode.containerInfo, If = true, jl(e4, n8, t5), Df = u5, If = i6;
          break;
        case 0:
        case 11:
        case 14:
        case 15:
          gl(Ed, t5, n8), _f || ml(t5, n8, Cd), jl(e4, n8, t5);
          break;
        case 1:
          _f || (El(t5, n8), "function" == typeof (u5 = t5.stateNode).componentWillUnmount && wl(t5, n8, u5)), jl(e4, n8, t5);
          break;
        case 21:
          jl(e4, n8, t5);
          break;
        case 22:
          _f = (u5 = _f) || null !== t5.memoizedState, jl(e4, n8, t5), _f = u5;
          break;
        default:
          jl(e4, n8, t5);
      }
      (2 & t5.mode) !== ts && 0 <= ws && 0 <= zs && (Es || 0.05 < ks) && F(t5, ws, zs, ks, xs), Pe(r5), Te(l5), xs = a6, Es = o6;
    }
    function Hl(e4, n8) {
      var t5 = (function(e5) {
        switch (e5.tag) {
          case 31:
          case 13:
          case 19:
            var n9 = e5.stateNode;
            return null === n9 && (n9 = e5.stateNode = new Rf()), n9;
          case 22:
            return null === (n9 = (e5 = e5.stateNode)._retryCache) && (n9 = e5._retryCache = new Rf()), n9;
          default:
            throw Error("Unexpected Suspense handler tag (" + e5.tag + "). This is a bug in React.");
        }
      })(e4);
      n8.forEach((function(n9) {
        if (!t5.has(n9)) {
          if (t5.add(n9), fi) {
            if (null === Lf || null === Uf) throw Error("Expected finished root and lanes to be set. This is a bug in React.");
            Za(Uf, Lf);
          }
          var r5 = Ya.bind(null, e4, n9);
          n9.then(r5, r5);
        }
      }));
    }
    function Ol(e4, n8) {
      var t5 = n8.deletions;
      if (null !== t5) for (var r5 = 0; r5 < t5.length; r5++) {
        var l5 = e4, a6 = n8, o6 = t5[r5], u5 = Ce(), i6 = a6;
        e: for (; null !== i6; ) {
          switch (i6.tag) {
            case 27:
            case 5:
              Df = i6.stateNode, If = false;
              break e;
            case 3:
            case 4:
              Df = i6.stateNode.containerInfo, If = true;
              break e;
          }
          i6 = i6.return;
        }
        if (null === Df) throw Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.");
        Al(l5, a6, o6), Df = null, If = false, (2 & o6.mode) !== ts && 0 <= ws && 0 <= zs && 0.05 < zs - ws && L(o6, ws, zs, "Unmount"), Pe(u5), null !== (a6 = (l5 = o6).alternate) && (a6.return = null), l5.return = null;
      }
      if (13886 & n8.subtreeFlags) for (n8 = n8.child; null !== n8; ) Ml(n8, e4), n8 = n8.sibling;
    }
    function Ml(e4, n8) {
      var t5 = Ce(), r5 = _e(), l5 = Re(), a6 = Ne(), o6 = e4.alternate, u5 = e4.flags;
      switch (e4.tag) {
        case 0:
        case 11:
        case 14:
        case 15:
          Ol(n8, e4), Wl(e4), 4 & u5 && (gl(Ed | xd, e4, e4.return), hl(Ed | xd, e4), ml(e4, e4.return, Cd | xd));
          break;
        case 1:
          Ol(n8, e4), Wl(e4), 512 & u5 && (_f || null === o6 || El(o6, o6.return)), 64 & u5 && Pf && null !== (u5 = e4.updateQueue) && null !== (o6 = u5.callbacks) && (n8 = u5.shared.hiddenCallbacks, u5.shared.hiddenCallbacks = null === n8 ? o6 : n8.concat(o6));
          break;
        case 26:
          var i6;
        case 27:
        case 5:
          if (Ol(n8, e4), Wl(e4), 512 & u5 && (_f || null === o6 || El(o6, o6.return)), 32 & e4.flags) {
            n8 = e4.stateNode;
            try {
              le(e4, Eu, n8);
            } catch (n9) {
              Qa(e4, e4.return, n9);
            }
          }
          4 & u5 && null != e4.stateNode && (function(e5, n9, t6) {
            try {
              le(e5, Su, e5.stateNode, e5.type, t6, n9, e5);
            } catch (n10) {
              Qa(e5, e5.return, n10);
            }
          })(e4, n8 = e4.memoizedProps, null !== o6 ? o6.memoizedProps : n8), 1024 & u5 && (Tf = true, "form" !== e4.type && console.error("Unexpected host component type. Expected a form. This is a bug in React."));
          break;
        case 6:
          if (Ol(n8, e4), Wl(e4), 4 & u5 && Yo) {
            if (null === e4.stateNode) throw Error("This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.");
            u5 = e4.memoizedProps, o6 = null !== o6 ? o6.memoizedProps : u5, n8 = e4.stateNode;
            try {
              le(e4, bu, n8, o6, u5);
            } catch (n9) {
              Qa(e4, e4.return, n9);
            }
          }
          break;
        case 3:
          var s5;
          i6 = we(), Ol(n8, e4), Wl(e4), Tf && (Tf = false, Ql(e4)), n8.effectDuration += ze(i6);
          break;
        case 4:
          Ol(n8, e4), Wl(e4);
          break;
        case 12:
          u5 = we(), Ol(n8, e4), Wl(e4), e4.stateNode.effectDuration += xe(u5);
          break;
        case 31:
          Ol(n8, e4), Wl(e4), 4 & u5 && null !== (u5 = e4.updateQueue) && (e4.updateQueue = null, Hl(e4, u5));
          break;
        case 13:
          Ol(n8, e4), Wl(e4), 8192 & e4.child.flags && null !== e4.memoizedState != (null !== o6 && null !== o6.memoizedState) && (Pp = li()), 4 & u5 && null !== (u5 = e4.updateQueue) && (e4.updateQueue = null, Hl(e4, u5));
          break;
        case 22:
          i6 = null !== e4.memoizedState;
          var c7 = null !== o6 && null !== o6.memoizedState, d4 = Pf, f5 = _f;
          if (Pf = d4 || i6, _f = f5 || c7, Ol(n8, e4), _f = f5, Pf = d4, c7 && !i6 && !d4 && !f5 && (2 & e4.mode) !== ts && 0 <= ws && 0 <= zs && 0.05 < zs - ws && U(e4, ws, zs), Wl(e4), 8192 & u5 && ((n8 = e4.stateNode)._visibility = i6 ? -2 & n8._visibility : n8._visibility | rd, !i6 || null === o6 || c7 || Pf || _f || (Vl(e4), (2 & e4.mode) !== ts && 0 <= ws && 0 <= zs && 0.05 < zs - ws && L(e4, ws, zs, "Disconnect")), Yo)) {
            e: if (o6 = null, Yo) for (n8 = e4; ; ) {
              if (5 === n8.tag || Ou) {
                if (null === o6) {
                  c7 = o6 = n8;
                  try {
                    s5 = c7.stateNode, i6 ? le(c7, Cu, s5) : le(c7, _u, c7.stateNode, c7.memoizedProps);
                  } catch (e5) {
                    Qa(c7, c7.return, e5);
                  }
                }
              } else if (6 === n8.tag) {
                if (null === o6) {
                  c7 = n8;
                  try {
                    var p4 = c7.stateNode;
                    i6 ? le(c7, Pu, p4) : le(c7, Tu, p4, c7.memoizedProps);
                  } catch (e5) {
                    Qa(c7, c7.return, e5);
                  }
                }
              } else if (18 === n8.tag) {
                if (null === o6) {
                  c7 = n8;
                  try {
                    var m4 = c7.stateNode;
                    i6 ? le(c7, Au, m4) : le(c7, Hu, c7.stateNode);
                  } catch (e5) {
                    Qa(c7, c7.return, e5);
                  }
                }
              } else if ((22 !== n8.tag && 23 !== n8.tag || null === n8.memoizedState || n8 === e4) && null !== n8.child) {
                n8.child.return = n8, n8 = n8.child;
                continue;
              }
              if (n8 === e4) break e;
              for (; null === n8.sibling; ) {
                if (null === n8.return || n8.return === e4) break e;
                o6 === n8 && (o6 = null), n8 = n8.return;
              }
              o6 === n8 && (o6 = null), n8.sibling.return = n8.return, n8 = n8.sibling;
            }
          }
          4 & u5 && null !== (u5 = e4.updateQueue) && null !== (o6 = u5.retryQueue) && (u5.retryQueue = null, Hl(e4, o6));
          break;
        case 19:
          Ol(n8, e4), Wl(e4), 4 & u5 && null !== (u5 = e4.updateQueue) && (e4.updateQueue = null, Hl(e4, u5));
          break;
        case 30:
        case 21:
          break;
        default:
          Ol(n8, e4), Wl(e4);
      }
      (2 & e4.mode) !== ts && 0 <= ws && 0 <= zs && ((Es || 0.05 < ks) && F(e4, ws, zs, ks, xs), null === e4.alternate && null !== e4.return && null !== e4.return.alternate && 0.05 < zs - ws && (Dl(e4.return.alternate, e4.return) || L(e4, ws, zs, "Mount"))), Pe(t5), Te(r5), xs = l5, Es = a6;
    }
    function Wl(e4) {
      var n8 = e4.flags;
      if (2 & n8) {
        try {
          le(e4, Ul, e4);
        } catch (n9) {
          Qa(e4, e4.return, n9);
        }
        e4.flags &= -3;
      }
      4096 & n8 && (e4.flags &= -4097);
    }
    function Ql(e4) {
      if (1024 & e4.subtreeFlags) for (e4 = e4.child; null !== e4; ) {
        var n8 = e4;
        Ql(n8), 5 === n8.tag && 1024 & n8.flags && hu(n8.stateNode), e4 = e4.sibling;
      }
    }
    function Bl(e4, n8) {
      if (8772 & n8.subtreeFlags) for (n8 = n8.child; null !== n8; ) Il(e4, n8.alternate, n8), n8 = n8.sibling;
    }
    function $l(e4) {
      var n8 = Ce(), t5 = _e(), r5 = Re(), l5 = Ne();
      switch (e4.tag) {
        case 0:
        case 11:
        case 14:
        case 15:
          ml(e4, e4.return, Cd), Vl(e4);
          break;
        case 1:
          El(e4, e4.return);
          var a6 = e4.stateNode;
          "function" == typeof a6.componentWillUnmount && wl(e4, e4.return, a6), Vl(e4);
          break;
        case 27:
        case 26:
        case 5:
          El(e4, e4.return), Vl(e4);
          break;
        case 22:
          null === e4.memoizedState && Vl(e4);
          break;
        default:
          Vl(e4);
      }
      (2 & e4.mode) !== ts && 0 <= ws && 0 <= zs && (Es || 0.05 < ks) && F(e4, ws, zs, ks, xs), Pe(n8), Te(t5), xs = r5, Es = l5;
    }
    function Vl(e4) {
      for (e4 = e4.child; null !== e4; ) $l(e4), e4 = e4.sibling;
    }
    function ql(e4, n8, t5, r5) {
      var l5 = Ce(), a6 = _e(), o6 = Re(), u5 = Ne(), i6 = t5.flags;
      switch (t5.tag) {
        case 0:
        case 11:
        case 15:
          Yl(e4, t5, r5), pl(t5, Cd);
          break;
        case 1:
          if (Yl(e4, t5, r5), "function" == typeof (n8 = t5.stateNode).componentDidMount && le(t5, _c, t5, n8), null !== (n8 = t5.updateQueue)) {
            e4 = t5.stateNode;
            try {
              le(t5, In, n8, e4);
            } catch (e5) {
              Qa(t5, t5.return, e5);
            }
          }
          r5 && 64 & i6 && vl(t5), xl(t5, t5.return);
          break;
        case 27:
        case 26:
        case 5:
          Yl(e4, t5, r5), r5 && null === n8 && 4 & i6 && _l(t5), xl(t5, t5.return);
          break;
        case 12:
          if (r5 && 4 & i6) {
            i6 = we(), Yl(e4, t5, r5), (r5 = t5.stateNode).effectDuration += xe(i6);
            try {
              le(t5, Cl, t5, n8, gs, r5.effectDuration);
            } catch (e5) {
              Qa(t5, t5.return, e5);
            }
          } else Yl(e4, t5, r5);
          break;
        case 31:
        case 13:
        default:
          Yl(e4, t5, r5);
          break;
        case 22:
          null === t5.memoizedState && Yl(e4, t5, r5), xl(t5, t5.return);
        case 30:
      }
      (2 & t5.mode) !== ts && 0 <= ws && 0 <= zs && (Es || 0.05 < ks) && F(t5, ws, zs, ks, xs), Pe(l5), Te(a6), xs = o6, Es = u5;
    }
    function Yl(e4, n8, t5) {
      for (t5 = t5 && 0 != (8772 & n8.subtreeFlags), n8 = n8.child; null !== n8; ) ql(e4, n8.alternate, n8, t5), n8 = n8.sibling;
    }
    function Gl(e4, n8) {
      var t5 = null;
      null !== e4 && null !== e4.memoizedState && null !== e4.memoizedState.cachePool && (t5 = e4.memoizedState.cachePool.pool), e4 = null, null !== n8.memoizedState && null !== n8.memoizedState.cachePool && (e4 = n8.memoizedState.cachePool.pool), e4 !== t5 && (null != e4 && ve(e4), null != t5 && Se(t5));
    }
    function Jl(e4, n8) {
      e4 = null, null !== n8.alternate && (e4 = n8.alternate.memoizedState.cache), (n8 = n8.memoizedState.cache) !== e4 && (ve(n8), null != e4 && Se(e4));
    }
    function Kl(e4, n8, t5, r5, l5) {
      if (10256 & n8.subtreeFlags || 0 !== n8.actualDuration && (null === n8.alternate || n8.alternate.child !== n8.child)) for (n8 = n8.child; null !== n8; ) {
        var a6 = n8.sibling;
        Xl(e4, n8, t5, r5, null !== a6 ? a6.actualStartTime : l5), n8 = a6;
      }
    }
    function Xl(e4, n8, t5, r5, l5) {
      var a6 = Ce(), o6 = _e(), u5 = Re(), i6 = Ne(), s5 = _i, c7 = n8.flags;
      switch (n8.tag) {
        case 0:
        case 11:
        case 15:
          (2 & n8.mode) !== ts && 0 < n8.actualStartTime && 0 != (1 & n8.flags) && D(n8, n8.actualStartTime, l5, jf, t5), Kl(e4, n8, t5, r5, l5), 2048 & c7 && yl(n8, Pd | xd);
          break;
        case 1:
          (2 & n8.mode) !== ts && 0 < n8.actualStartTime && (0 != (128 & n8.flags) ? I(n8, n8.actualStartTime, l5, []) : 0 != (1 & n8.flags) && D(n8, n8.actualStartTime, l5, jf, t5)), Kl(e4, n8, t5, r5, l5);
          break;
        case 3:
          var d4 = we(), f5 = jf;
          jf = null !== n8.alternate && n8.alternate.memoizedState.isDehydrated && 0 == (256 & n8.flags), Kl(e4, n8, t5, r5, l5), jf = f5, 2048 & c7 && (t5 = null, null !== n8.alternate && (t5 = n8.alternate.memoizedState.cache), (r5 = n8.memoizedState.cache) !== t5 && (ve(r5), null != t5 && Se(t5))), e4.passiveEffectDuration += ze(d4);
          break;
        case 12:
          if (2048 & c7) {
            c7 = we(), Kl(e4, n8, t5, r5, l5), (e4 = n8.stateNode).passiveEffectDuration += xe(c7);
            try {
              le(n8, Pl, n8, n8.alternate, gs, e4.passiveEffectDuration);
            } catch (e5) {
              Qa(n8, n8.return, e5);
            }
          } else Kl(e4, n8, t5, r5, l5);
          break;
        case 31:
          c7 = jf, d4 = null !== n8.alternate ? n8.alternate.memoizedState : null, f5 = n8.memoizedState, null !== d4 && null === f5 ? null !== (f5 = n8.deletions) && 0 < f5.length && 18 === f5[0].tag ? (jf = false, null !== (d4 = d4.hydrationErrors) && I(n8, n8.actualStartTime, l5, d4)) : jf = true : jf = false, Kl(e4, n8, t5, r5, l5), jf = c7;
          break;
        case 13:
          c7 = jf, d4 = null !== n8.alternate ? n8.alternate.memoizedState : null, f5 = n8.memoizedState, null === d4 || null === d4.dehydrated || null !== f5 && null !== f5.dehydrated ? jf = false : null !== (f5 = n8.deletions) && 0 < f5.length && 18 === f5[0].tag ? (jf = false, null !== (d4 = d4.hydrationErrors) && I(n8, n8.actualStartTime, l5, d4)) : jf = true, Kl(e4, n8, t5, r5, l5), jf = c7;
          break;
        case 23:
          break;
        case 22:
          f5 = n8.stateNode, d4 = n8.alternate, null !== n8.memoizedState ? f5._visibility & ld ? Kl(e4, n8, t5, r5, l5) : na(e4, n8, t5, r5, l5) : f5._visibility & ld ? Kl(e4, n8, t5, r5, l5) : (f5._visibility |= ld, Zl(e4, n8, t5, r5, 0 != (10256 & n8.subtreeFlags) || 0 !== n8.actualDuration && (null === n8.alternate || n8.alternate.child !== n8.child), l5), (2 & n8.mode) === ts || jf || (0 <= (e4 = n8.actualStartTime) && 0.05 < l5 - e4 && U(n8, e4, l5), 0 <= ws && 0 <= zs && 0.05 < zs - ws && U(n8, ws, zs))), 2048 & c7 && Gl(d4, n8);
          break;
        case 24:
          Kl(e4, n8, t5, r5, l5), 2048 & c7 && Jl(n8.alternate, n8);
          break;
        default:
          Kl(e4, n8, t5, r5, l5);
      }
      (2 & n8.mode) !== ts && ((e4 = !jf && null === n8.alternate && null !== n8.return && null !== n8.return.alternate) && 0 <= (t5 = n8.actualStartTime) && 0.05 < l5 - t5 && L(n8, t5, l5, "Mount"), 0 <= ws && 0 <= zs && ((Es || 0.05 < ks) && F(n8, ws, zs, ks, xs), e4 && 0.05 < zs - ws && L(n8, ws, zs, "Mount"))), Pe(a6), Te(o6), xs = u5, Es = i6, _i = s5;
    }
    function Zl(e4, n8, t5, r5, l5, a6) {
      for (l5 = l5 && (0 != (10256 & n8.subtreeFlags) || 0 !== n8.actualDuration && (null === n8.alternate || n8.alternate.child !== n8.child)), n8 = n8.child; null !== n8; ) {
        var o6 = n8.sibling;
        ea(e4, n8, t5, r5, l5, null !== o6 ? o6.actualStartTime : a6), n8 = o6;
      }
    }
    function ea(e4, n8, t5, r5, l5, a6) {
      var o6 = Ce(), u5 = _e(), i6 = Re(), s5 = Ne(), c7 = _i;
      l5 && (2 & n8.mode) !== ts && 0 < n8.actualStartTime && 0 != (1 & n8.flags) && D(n8, n8.actualStartTime, a6, jf, t5);
      var d4 = n8.flags;
      switch (n8.tag) {
        case 0:
        case 11:
        case 15:
          Zl(e4, n8, t5, r5, l5, a6), yl(n8, Pd);
          break;
        case 23:
          break;
        case 22:
          var f5 = n8.stateNode;
          null !== n8.memoizedState ? f5._visibility & ld ? Zl(e4, n8, t5, r5, l5, a6) : na(e4, n8, t5, r5, a6) : (f5._visibility |= ld, Zl(e4, n8, t5, r5, l5, a6)), l5 && 2048 & d4 && Gl(n8.alternate, n8);
          break;
        case 24:
          Zl(e4, n8, t5, r5, l5, a6), l5 && 2048 & d4 && Jl(n8.alternate, n8);
          break;
        default:
          Zl(e4, n8, t5, r5, l5, a6);
      }
      (2 & n8.mode) !== ts && 0 <= ws && 0 <= zs && (Es || 0.05 < ks) && F(n8, ws, zs, ks, xs), Pe(o6), Te(u5), xs = i6, Es = s5, _i = c7;
    }
    function na(e4, n8, t5, r5, l5) {
      if (10256 & n8.subtreeFlags || 0 !== n8.actualDuration && (null === n8.alternate || n8.alternate.child !== n8.child)) for (var a6 = n8.child; null !== a6; ) {
        var o6 = e4, u5 = t5, i6 = r5, s5 = null !== (n8 = a6.sibling) ? n8.actualStartTime : l5, c7 = _i;
        (2 & a6.mode) !== ts && 0 < a6.actualStartTime && 0 != (1 & a6.flags) && D(a6, a6.actualStartTime, s5, jf, u5);
        var d4 = a6.flags;
        switch (a6.tag) {
          case 22:
            na(o6, a6, u5, i6, s5), 2048 & d4 && Gl(a6.alternate, a6);
            break;
          case 24:
            na(o6, a6, u5, i6, s5), 2048 & d4 && Jl(a6.alternate, a6);
            break;
          default:
            na(o6, a6, u5, i6, s5);
        }
        _i = c7, a6 = n8;
      }
    }
    function ta(e4, n8, t5) {
      if (e4.subtreeFlags & Af) for (e4 = e4.child; null !== e4; ) ra(e4, n8, t5), e4 = e4.sibling;
    }
    function ra(e4, n8, t5) {
      switch (e4.tag) {
        case 26:
          if (ta(e4, n8, t5), e4.flags & Af) if (null !== e4.memoizedState) Wu(t5, Ff, e4.memoizedState, e4.memoizedProps);
          else {
            var r5 = e4.stateNode, l5 = e4.type;
            e4 = e4.memoizedProps, ((335544128 & n8) === n8 || uu(l5, e4)) && cu(t5, r5, l5, e4);
          }
          break;
        case 5:
          ta(e4, n8, t5), e4.flags & Af && (r5 = e4.stateNode, l5 = e4.type, e4 = e4.memoizedProps, ((335544128 & n8) === n8 || uu(l5, e4)) && cu(t5, r5, l5, e4));
          break;
        case 3:
        case 4:
        default:
          ta(e4, n8, t5);
          break;
        case 22:
          null === e4.memoizedState && (null !== (r5 = e4.alternate) && null !== r5.memoizedState ? (r5 = Af, Af = 16777216, ta(e4, n8, t5), Af = r5) : ta(e4, n8, t5));
      }
    }
    function la(e4) {
      var n8 = e4.alternate;
      if (null !== n8 && null !== (e4 = n8.child)) {
        n8.child = null;
        do {
          n8 = e4.sibling, e4.sibling = null, e4 = n8;
        } while (null !== e4);
      }
    }
    function aa(e4) {
      var n8 = e4.deletions;
      if (0 != (16 & e4.flags)) {
        if (null !== n8) for (var t5 = 0; t5 < n8.length; t5++) {
          var r5 = n8[t5], l5 = Ce();
          Nf = r5, sa(r5, e4), (2 & r5.mode) !== ts && 0 <= ws && 0 <= zs && 0.05 < zs - ws && L(r5, ws, zs, "Unmount"), Pe(l5);
        }
        la(e4);
      }
      if (10256 & e4.subtreeFlags) for (e4 = e4.child; null !== e4; ) oa(e4), e4 = e4.sibling;
    }
    function oa(e4) {
      var n8 = Ce(), t5 = _e(), r5 = Re(), l5 = Ne();
      switch (e4.tag) {
        case 0:
        case 11:
        case 15:
          aa(e4), 2048 & e4.flags && bl(e4, e4.return, Pd | xd);
          break;
        case 3:
          var a6 = we();
          aa(e4), e4.stateNode.passiveEffectDuration += ze(a6);
          break;
        case 12:
          a6 = we(), aa(e4), e4.stateNode.passiveEffectDuration += xe(a6);
          break;
        case 22:
          a6 = e4.stateNode, null !== e4.memoizedState && a6._visibility & ld && (null === e4.return || 13 !== e4.return.tag) ? (a6._visibility &= -3, ua(e4), (2 & e4.mode) !== ts && 0 <= ws && 0 <= zs && 0.05 < zs - ws && L(e4, ws, zs, "Disconnect")) : aa(e4);
          break;
        default:
          aa(e4);
      }
      (2 & e4.mode) !== ts && 0 <= ws && 0 <= zs && (Es || 0.05 < ks) && F(e4, ws, zs, ks, xs), Pe(n8), Te(t5), Es = l5, xs = r5;
    }
    function ua(e4) {
      var n8 = e4.deletions;
      if (0 != (16 & e4.flags)) {
        if (null !== n8) for (var t5 = 0; t5 < n8.length; t5++) {
          var r5 = n8[t5], l5 = Ce();
          Nf = r5, sa(r5, e4), (2 & r5.mode) !== ts && 0 <= ws && 0 <= zs && 0.05 < zs - ws && L(r5, ws, zs, "Unmount"), Pe(l5);
        }
        la(e4);
      }
      for (e4 = e4.child; null !== e4; ) ia(e4), e4 = e4.sibling;
    }
    function ia(e4) {
      var n8 = Ce(), t5 = _e(), r5 = Re(), l5 = Ne();
      switch (e4.tag) {
        case 0:
        case 11:
        case 15:
          bl(e4, e4.return, Pd), ua(e4);
          break;
        case 22:
          var a6 = e4.stateNode;
          a6._visibility & ld && (a6._visibility &= -3, ua(e4));
          break;
        default:
          ua(e4);
      }
      (2 & e4.mode) !== ts && 0 <= ws && 0 <= zs && (Es || 0.05 < ks) && F(e4, ws, zs, ks, xs), Pe(n8), Te(t5), Es = l5, xs = r5;
    }
    function sa(e4, n8) {
      for (; null !== Nf; ) {
        var t5 = Nf, r5 = t5, l5 = n8, a6 = Ce(), o6 = _e(), u5 = Re(), i6 = Ne();
        switch (r5.tag) {
          case 0:
          case 11:
          case 15:
            bl(r5, l5, Pd);
            break;
          case 23:
          case 22:
            null !== r5.memoizedState && null !== r5.memoizedState.cachePool && null != (l5 = r5.memoizedState.cachePool.pool) && ve(l5);
            break;
          case 24:
            Se(r5.memoizedState.cache);
        }
        if ((2 & r5.mode) !== ts && 0 <= ws && 0 <= zs && (Es || 0.05 < ks) && F(r5, ws, zs, ks, xs), Pe(a6), Te(o6), Es = i6, xs = u5, null !== (r5 = t5.child)) r5.return = t5, Nf = r5;
        else e: for (t5 = e4; null !== Nf; ) {
          if (a6 = (r5 = Nf).sibling, o6 = r5.return, Fl(r5), r5 === t5) {
            Nf = null;
            break e;
          }
          if (null !== a6) {
            a6.return = o6, Nf = a6;
            break e;
          }
          Nf = o6;
        }
      }
    }
    function ca() {
      var e4 = "undefined" != typeof IS_REACT_ACT_ENVIRONMENT ? IS_REACT_ACT_ENVIRONMENT : void 0;
      return e4 || null === Do.actQueue || console.error("The current testing environment is not configured to support act(...)"), e4;
    }
    function da(e4) {
      if ((Xf & Qf) !== Wf && 0 !== np) return np & -np;
      var n8 = Do.T;
      return null !== n8 ? (n8._updatedFibers || (n8._updatedFibers = /* @__PURE__ */ new Set()), n8._updatedFibers.add(e4), Ge()) : Zo();
    }
    function fa() {
      if (0 === wp) if (0 == (536870912 & np) || es) {
        var e4 = Xu;
        0 == (3932160 & (Xu <<= 1)) && (Xu = 262144), wp = e4;
      } else wp = 536870912;
      return null !== (e4 = bd.current) && (e4.flags |= 32), wp;
    }
    function pa(e4, n8, t5) {
      if (cm && console.error("useInsertionEffect must not schedule updates."), am && (om = true), (e4 !== Zf || fp2 !== lp && fp2 !== dp) && null === e4.cancelPendingCommit || (Sa(e4, 0), ya(e4, np, wp, false)), S3(e4, t5), (Xf & Qf) !== Wf && e4 === Zf) {
        if (Zi) switch (n8.tag) {
          case 0:
          case 11:
          case 15:
            e4 = ep && c6(ep) || "Unknown", pm.has(e4) || (pm.add(e4), n8 = c6(n8) || "Unknown", console.error("Cannot update a component (`%s`) while rendering a different component (`%s`). To locate the bad setState() call inside `%s`, follow the stack trace as described in https://react.dev/link/setstate-in-render", n8, e4, e4));
            break;
          case 1:
            fm || (console.error("Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state."), fm = true);
        }
      } else fi && x(e4, n8, t5), (function(e5) {
        ca() && null === Do.actQueue && le(e5, (function() {
          console.error("An update to %s inside a test was not wrapped in act(...).\n\nWhen testing, code that causes React state updates should be wrapped into act(...):\n\nact(() => {\n  /* fire events that update state */\n});\n/* assert on the output */\n\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act", c6(e5));
        }));
      })(n8), e4 === Zf && ((Xf & Qf) === Wf && (Sp |= t5), bp === Gf && ya(e4, np, wp, false)), Oe(e4);
    }
    function ma(e4, n8, t5) {
      if ((Xf & (Qf | Bf)) !== Wf) throw Error("Should not already be working.");
      if (0 !== np && null !== ep) {
        var r5 = ep, l5 = li();
        switch (Ys) {
          case ap:
          case lp:
            var a6 = Gs;
            Ci && ((r5 = r5._debugTask) ? r5.run(console.timeStamp.bind(console, "Suspended", a6, l5, "Components \u269B", void 0, "primary-light")) : console.timeStamp("Suspended", a6, l5, "Components \u269B", void 0, "primary-light"));
            break;
          case dp:
            a6 = Gs, Ci && ((r5 = r5._debugTask) ? r5.run(console.timeStamp.bind(console, "Action", a6, l5, "Components \u269B", void 0, "primary-light")) : console.timeStamp("Action", a6, l5, "Components \u269B", void 0, "primary-light"));
            break;
          default:
            Ci && (3 > (r5 = l5 - Gs) || console.timeStamp("Blocked", Gs, l5, "Components \u269B", void 0, 5 > r5 ? "primary-light" : 10 > r5 ? "primary" : 100 > r5 ? "primary-dark" : "error"));
        }
      }
      a6 = (t5 = !t5 && 0 == (127 & n8) && 0 == (n8 & e4.expiredLanes) || g3(e4, n8)) ? (function(e5, n9) {
        var t6 = Xf;
        Xf |= Qf;
        var r6 = wa(), l6 = za();
        if (Zf !== e5 || np !== n9) {
          if (fi) {
            var a7 = e5.memoizedUpdaters;
            0 < a7.size && (Za(e5, np), a7.clear()), E(e5, n9);
          }
          Lp = null, Rp = li() + Np, Sa(e5, n9);
        } else hp = g3(e5, n9);
        e: for (; ; ) try {
          if (fp2 !== tp && null !== ep) n: switch (n9 = ep, a7 = pp, fp2) {
            case rp:
              fp2 = tp, pp = null, La(e5, n9, a7, rp);
              break;
            case lp:
            case dp:
              if (nn(a7)) {
                fp2 = tp, pp = null, Ra(n9);
                break;
              }
              n9 = function() {
                fp2 !== lp && fp2 !== dp || Zf !== e5 || (fp2 = sp), Oe(e5);
              }, a7.then(n9, n9);
              break e;
            case ap:
              fp2 = sp;
              break e;
            case op:
              fp2 = up;
              break e;
            case sp:
              nn(a7) ? (fp2 = tp, pp = null, Ra(n9)) : (fp2 = tp, pp = null, La(e5, n9, a7, sp));
              break;
            case up:
              var o7 = null;
              switch (ep.tag) {
                case 26:
                  o7 = ep.memoizedState;
                case 5:
                case 27:
                  var u6 = ep, i7 = u6.type, s5 = u6.pendingProps;
                  if (o7 ? Mu(o7) : iu(u6.stateNode, i7, s5)) {
                    fp2 = tp, pp = null;
                    var c7 = u6.sibling;
                    if (null !== c7) ep = c7;
                    else {
                      var d4 = u6.return;
                      null !== d4 ? (ep = d4, Ua(d4)) : ep = null;
                    }
                    break n;
                  }
                  break;
                default:
                  console.error("Unexpected type of fiber triggered a suspensey commit. This is a bug in React.");
              }
              fp2 = tp, pp = null, La(e5, n9, a7, up);
              break;
            case ip:
              fp2 = tp, pp = null, La(e5, n9, a7, ip);
              break;
            case cp:
              ba(), bp = Jf;
              break e;
            default:
              throw Error("Unexpected SuspendedReason. This is a bug in React.");
          }
          null !== Do.actQueue ? Pa() : _a2();
          break;
        } catch (n10) {
          ka(e5, n10);
        }
        return ue(), Do.H = r6, Do.A = l6, Xf = t6, null !== ep ? $f : (Zf = null, np = 0, Sn(), bp);
      })(e4, n8) : Ca(e4, n8, true);
      for (var o6 = t5; ; ) {
        if (a6 === $f) {
          hp && !t5 && ya(e4, n8, 0, false), n8 = fp2, Gs = ps(), Ys = n8;
          break;
        }
        if (r5 = li(), l5 = e4.current.alternate, !o6 || ga(l5)) {
          if (a6 === qf) {
            if (o6 = n8, e4.errorRecoveryDisabledLanes & o6) var u5 = 0;
            else u5 = 0 != (u5 = -536870913 & e4.pendingLanes) ? u5 : 536870912 & u5 ? 536870912 : 0;
            if (0 !== u5) {
              N(n8), H(hs, r5, 0, Up), va(n8, r5), n8 = u5;
              e: {
                r5 = e4, a6 = o6, o6 = xp;
                var i6 = Go;
                if (i6 && (Sa(r5, u5).flags |= 256), (u5 = Ca(r5, u5, false)) !== qf) {
                  if (gp && !i6) {
                    r5.errorRecoveryDisabledLanes |= a6, Sp |= a6, a6 = Gf;
                    break e;
                  }
                  r5 = Ep, Ep = o6, null !== r5 && (null === Ep ? Ep = r5 : Ep.push.apply(Ep, r5));
                }
                a6 = u5;
              }
              if (o6 = false, a6 !== qf) continue;
              r5 = li();
            }
          }
          if (a6 === Vf) {
            N(n8), H(hs, r5, 0, Up), va(n8, r5), Sa(e4, 0), ya(e4, n8, 0, true);
            break;
          }
          e: {
            switch (t5 = e4, a6) {
              case $f:
              case Vf:
                throw Error("Root did not complete. This is a bug in React.");
              case Gf:
                if ((4194048 & n8) !== n8) break;
              case Jf:
                N(n8), j(hs, r5, n8, Up), va(n8, r5), 0 != (127 & (l5 = n8)) ? Is = r5 : 0 != (4194048 & l5) && (Vs = r5), ya(t5, n8, wp, !mp);
                break e;
              case qf:
                Ep = null;
                break;
              case Yf:
              case Kf:
                break;
              default:
                throw Error("Unknown root exit status.");
            }
            if (null !== Do.actQueue) Ia(t5, l5, n8, Ep, Lp, Cp, wp, Sp, zp, a6, 0, null, hs, r5);
            else {
              if ((62914560 & n8) === n8 && 10 < (o6 = Pp + Tp - li())) {
                if (ya(t5, n8, wp, !mp), 0 !== h4(t5, 0, true)) break e;
                Yp = n8, t5.timeoutHandle = $o(ha.bind(null, t5, l5, Ep, Lp, Cp, n8, wp, Sp, zp, mp, a6, "Throttled", hs, r5), o6);
                break e;
              }
              ha(t5, l5, Ep, Lp, Cp, n8, wp, Sp, zp, mp, a6, null, hs, r5);
            }
          }
          break;
        }
        N(n8), l5 = hs, a6 = r5, !Ci || a6 <= l5 || (Up ? Up.run(console.timeStamp.bind(console, "Teared Render", l5, a6, Pi, "Scheduler \u269B", "error")) : console.timeStamp("Teared Render", l5, a6, Pi, "Scheduler \u269B", "error")), va(n8, r5), a6 = Ca(e4, n8, false), o6 = false;
      }
      Oe(e4);
    }
    function ha(e4, n8, t5, r5, l5, a6, o6, u5, i6, s5, c7, d4, f5, p4) {
      e4.timeoutHandle = qo;
      var m4 = n8.subtreeFlags, h5 = null;
      if ((8192 & m4 || 16785408 == (16785408 & m4)) && (ra(n8, a6, h5 = su()), m4 = (62914560 & a6) === a6 ? Pp - li() : (4194048 & a6) === a6 ? _p - li() : 0, null !== (m4 = du(h5, m4)))) return Yp = a6, e4.cancelPendingCommit = m4(Ia.bind(null, e4, n8, a6, t5, r5, l5, o6, u5, i6, c7, h5, fu(h5, e4.containerInfo), f5, p4)), void ya(e4, a6, o6, !s5);
      Ia(e4, n8, a6, t5, r5, l5, o6, u5, i6, c7, 0, d4, f5, p4);
    }
    function ga(e4) {
      for (var n8 = e4; ; ) {
        var t5 = n8.tag;
        if ((0 === t5 || 11 === t5 || 15 === t5) && 16384 & n8.flags && null !== (t5 = n8.updateQueue) && null !== (t5 = t5.stores)) for (var r5 = 0; r5 < t5.length; r5++) {
          var l5 = t5[r5], a6 = l5.getSnapshot;
          l5 = l5.value;
          try {
            if (!yi(a6(), l5)) return false;
          } catch (e5) {
            return false;
          }
        }
        if (t5 = n8.child, 16384 & n8.subtreeFlags && null !== t5) t5.return = n8, n8 = t5;
        else {
          if (n8 === e4) break;
          for (; null === n8.sibling; ) {
            if (null === n8.return || n8.return === e4) return true;
            n8 = n8.return;
          }
          n8.sibling.return = n8.return, n8 = n8.sibling;
        }
      }
      return true;
    }
    function ya(e4, n8, t5, r5) {
      n8 &= ~kp, n8 &= ~Sp, e4.suspendedLanes |= n8, e4.pingedLanes &= ~n8, r5 && (e4.warmLanes |= n8), r5 = e4.expirationTimes;
      for (var l5 = n8; 0 < l5; ) {
        var a6 = 31 - Yu(l5), o6 = 1 << a6;
        r5[a6] = -1, l5 &= ~o6;
      }
      0 !== t5 && k3(e4, t5, n8);
    }
    function ba() {
      if (null !== ep) {
        if (fp2 === tp) var e4 = ep.return;
        else e4 = ep, ue(), lt(e4), qc = null, Yc = 0, e4 = ep;
        for (; null !== e4; ) dl(e4.alternate, e4), e4 = e4.return;
        ep = null;
      }
    }
    function va(e4, n8) {
      0 != (127 & e4) && (Cs = n8), 0 != (4194048 & e4) && (Fs = n8);
    }
    function Sa(e4, n8) {
      Ci && (console.timeStamp("Blocking Track", 3e-3, 3e-3, "Blocking", "Scheduler \u269B", "primary-light"), console.timeStamp("Transition Track", 3e-3, 3e-3, "Transition", "Scheduler \u269B", "primary-light"), console.timeStamp("Suspense Track", 3e-3, 3e-3, "Suspense", "Scheduler \u269B", "primary-light"), console.timeStamp("Idle Track", 3e-3, 3e-3, "Idle", "Scheduler \u269B", "primary-light"));
      var t5 = hs;
      if (hs = ps(), 0 !== np && 0 < t5) {
        if (N(np), bp === Yf || bp === Gf) j(t5, hs, n8, Up);
        else {
          var r5 = hs, l5 = Up;
          if (Ci && !(r5 <= t5)) {
            var a6 = (738197653 & n8) === n8 ? "tertiary-dark" : "primary-dark", o6 = (536870912 & n8) === n8 ? "Prewarm" : (201326741 & n8) === n8 ? "Interrupted Hydration" : "Interrupted Render";
            l5 ? l5.run(console.timeStamp.bind(console, o6, t5, r5, Pi, "Scheduler \u269B", a6)) : console.timeStamp(o6, t5, r5, Pi, "Scheduler \u269B", a6);
          }
        }
        va(np, hs);
      }
      if (t5 = Up, Up = null, 0 != (127 & n8)) {
        Up = _s, l5 = 0 <= Ps && Ps < Cs ? Cs : Ps, a6 = 0 <= (r5 = 0 <= Ls && Ls < Cs ? Cs : Ls) ? r5 : 0 <= l5 ? l5 : hs, 0 <= Is && (N(2), A(Is, a6, n8, t5)), t5 = l5;
        var u5 = r5, i6 = Us, s5 = 0 < Ds, c7 = 1 === Ts, d4 = 2 === Ts;
        if (l5 = hs, r5 = _s, a6 = Rs, o6 = Ns, Ci) {
          if (Pi = "Blocking", 0 < t5 ? t5 > l5 && (t5 = l5) : t5 = l5, 0 < u5 ? u5 > t5 && (u5 = t5) : u5 = t5, null !== i6 && t5 > u5) {
            var f5 = s5 ? "secondary-light" : "warning";
            r5 ? r5.run(console.timeStamp.bind(console, s5 ? "Consecutive" : "Event: " + i6, u5, t5, Pi, "Scheduler \u269B", f5)) : console.timeStamp(s5 ? "Consecutive" : "Event: " + i6, u5, t5, Pi, "Scheduler \u269B", f5);
          }
          l5 > t5 && (u5 = c7 ? "error" : (738197653 & n8) === n8 ? "tertiary-light" : "primary-light", c7 = d4 ? "Promise Resolved" : c7 ? "Cascading Update" : 5 < l5 - t5 ? "Update Blocked" : "Update", d4 = [], null != o6 && d4.push(["Component name", o6]), null != a6 && d4.push(["Method name", a6]), t5 = { start: t5, end: l5, detail: { devtools: { properties: d4, track: Pi, trackGroup: "Scheduler \u269B", color: u5 } } }, r5 ? r5.run(performance.measure.bind(performance, c7, t5)) : performance.measure(c7, t5));
        }
        Ps = -1.1, Ts = 0, Ns = Rs = null, Is = -1.1, Ds = Ls, Ls = -1.1, Cs = ps();
      }
      if (0 != (4194048 & n8) && (Up = Os, l5 = 0 <= js && js < Fs ? Fs : js, t5 = 0 <= As && As < Fs ? Fs : As, a6 = 0 <= (r5 = 0 <= Qs && Qs < Fs ? Fs : Qs) ? r5 : 0 <= t5 ? t5 : hs, 0 <= Vs && (N(256), A(Vs, a6, n8, Up)), d4 = r5, u5 = Bs, i6 = 0 < $s, s5 = 2 === Hs, a6 = hs, r5 = Os, o6 = Ms, c7 = Ws, Ci && (Pi = "Transition", 0 < t5 ? t5 > a6 && (t5 = a6) : t5 = a6, 0 < l5 ? l5 > t5 && (l5 = t5) : l5 = t5, 0 < d4 ? d4 > l5 && (d4 = l5) : d4 = l5, l5 > d4 && null !== u5 && (f5 = i6 ? "secondary-light" : "warning", r5 ? r5.run(console.timeStamp.bind(console, i6 ? "Consecutive" : "Event: " + u5, d4, l5, Pi, "Scheduler \u269B", f5)) : console.timeStamp(i6 ? "Consecutive" : "Event: " + u5, d4, l5, Pi, "Scheduler \u269B", f5)), t5 > l5 && (r5 ? r5.run(console.timeStamp.bind(console, "Action", l5, t5, Pi, "Scheduler \u269B", "primary-dark")) : console.timeStamp("Action", l5, t5, Pi, "Scheduler \u269B", "primary-dark")), a6 > t5 && (l5 = s5 ? "Promise Resolved" : 5 < a6 - t5 ? "Update Blocked" : "Update", d4 = [], null != c7 && d4.push(["Component name", c7]), null != o6 && d4.push(["Method name", o6]), t5 = { start: t5, end: a6, detail: { devtools: { properties: d4, track: Pi, trackGroup: "Scheduler \u269B", color: "primary-light" } } }, r5 ? r5.run(performance.measure.bind(performance, l5, t5)) : performance.measure(l5, t5))), As = js = -1.1, Hs = 0, Vs = -1.1, $s = Qs, Qs = -1.1, Fs = ps()), (t5 = e4.timeoutHandle) !== qo && (e4.timeoutHandle = qo, Vo(t5)), null !== (t5 = e4.cancelPendingCommit) && (e4.cancelPendingCommit = null, t5()), Yp = 0, ba(), Zf = e4, ep = t5 = to(e4.current, null), np = n8, fp2 = tp, pp = null, mp = false, hp = g3(e4, n8), gp = false, bp = $f, zp = wp = kp = Sp = vp = 0, Ep = xp = null, Cp = false, 0 != (8 & n8) && (n8 |= 32 & n8), 0 !== (r5 = e4.entangledLanes)) for (e4 = e4.entanglements, r5 &= n8; 0 < r5; ) a6 = 1 << (l5 = 31 - Yu(r5)), n8 |= e4[l5], r5 &= ~a6;
      return yp = n8, Sn(), 1e3 < (e4 = hi()) - pi && (Do.recentlyCreatedOwnerStacks = 0, pi = e4), fc.discardPendingWarnings(), t5;
    }
    function ka(e4, n8) {
      Ud = null, Do.H = Yd, Do.getCurrentStack = null, Zi = false, Xi = null, n8 === Mc || n8 === Qc ? (n8 = ln(), fp2 = ap) : n8 === Wc ? (n8 = ln(), fp2 = op) : fp2 = n8 === hf ? cp : null !== n8 && "object" == typeof n8 && "function" == typeof n8.then ? ip : rp, pp = n8;
      var t5 = ep;
      null === t5 ? (bp = Vf, Pr(e4, Y(n8, e4.current))) : 2 & t5.mode && Ue(t5);
    }
    function wa() {
      var e4 = Do.H;
      return Do.H = Yd, null === e4 ? Yd : e4;
    }
    function za() {
      var e4 = Do.A;
      return Do.A = Hf, e4;
    }
    function xa(e4) {
      null === Up && (Up = null == e4._debugTask ? null : e4._debugTask);
    }
    function Ea() {
      bp = Gf, mp || (4194048 & np) !== np && null !== bd.current || (hp = true), 0 == (134217727 & vp) && 0 == (134217727 & Sp) || null === Zf || ya(Zf, np, wp, false);
    }
    function Ca(e4, n8, t5) {
      var r5 = Xf;
      Xf |= Qf;
      var l5 = wa(), a6 = za();
      if (Zf !== e4 || np !== n8) {
        if (fi) {
          var o6 = e4.memoizedUpdaters;
          0 < o6.size && (Za(e4, np), o6.clear()), E(e4, n8);
        }
        Lp = null, Sa(e4, n8);
      }
      n8 = false, o6 = bp;
      e: for (; ; ) try {
        if (fp2 !== tp && null !== ep) {
          var u5 = ep, i6 = pp;
          switch (fp2) {
            case cp:
              ba(), o6 = Jf;
              break e;
            case ap:
            case lp:
            case dp:
            case ip:
              null === bd.current && (n8 = true);
              var s5 = fp2;
              if (fp2 = tp, pp = null, La(e4, u5, i6, s5), t5 && hp) {
                o6 = $f;
                break e;
              }
              break;
            default:
              s5 = fp2, fp2 = tp, pp = null, La(e4, u5, i6, s5);
          }
        }
        Pa(), o6 = bp;
        break;
      } catch (n9) {
        ka(e4, n9);
      }
      return n8 && e4.shellSuspendCounter++, ue(), Xf = r5, Do.H = l5, Do.A = a6, null === ep && (Zf = null, np = 0, Sn()), o6;
    }
    function Pa() {
      for (; null !== ep; ) Ta(ep);
    }
    function _a2() {
      for (; null !== ep && !ti(); ) Ta(ep);
    }
    function Ta(e4) {
      var n8 = e4.alternate;
      (2 & e4.mode) !== ts ? (Le(e4), n8 = le(e4, rl, n8, e4, yp), Ue(e4)) : n8 = le(e4, rl, n8, e4, yp), e4.memoizedProps = e4.pendingProps, null === n8 ? Ua(e4) : ep = n8;
    }
    function Ra(e4) {
      var n8 = le(e4, Na, e4);
      e4.memoizedProps = e4.pendingProps, null === n8 ? Ua(e4) : ep = n8;
    }
    function Na(e4) {
      var n8 = e4.alternate, t5 = (2 & e4.mode) !== ts;
      switch (t5 && Le(e4), e4.tag) {
        case 15:
        case 0:
          n8 = Qr(n8, e4, e4.pendingProps, e4.type, void 0, np);
          break;
        case 11:
          n8 = Qr(n8, e4, e4.pendingProps, e4.type.render, e4.ref, np);
          break;
        case 5:
          lt(e4);
        default:
          dl(n8, e4), n8 = rl(n8, e4 = ep = ro(e4, yp), yp);
      }
      return t5 && Ue(e4), n8;
    }
    function La(e4, n8, t5, r5) {
      ue(), lt(n8), qc = null, Yc = 0;
      var l5 = n8.return;
      try {
        if ((function(e5, n9, t6, r6, l6) {
          if (t6.flags |= 32768, fi && Za(e5, l6), null !== r6 && "object" == typeof r6 && "function" == typeof r6.then) {
            if (null !== (n9 = t6.alternate) && fe(n9, t6, l6, true), null !== (t6 = bd.current)) {
              switch (t6.tag) {
                case 31:
                case 13:
                  return null === vd ? Ea() : null === t6.alternate && bp === $f && (bp = Yf), t6.flags &= -257, t6.flags |= 65536, t6.lanes = l6, r6 === Bc ? t6.flags |= 16384 : (null === (n9 = t6.updateQueue) ? t6.updateQueue = /* @__PURE__ */ new Set([r6]) : n9.add(r6), Ba(e5, r6, l6)), false;
                case 22:
                  return t6.flags |= 65536, r6 === Bc ? t6.flags |= 16384 : (null === (n9 = t6.updateQueue) ? (n9 = { transitions: null, markerInstances: null, retryQueue: /* @__PURE__ */ new Set([r6]) }, t6.updateQueue = n9) : null === (t6 = n9.retryQueue) ? n9.retryQueue = /* @__PURE__ */ new Set([r6]) : t6.add(r6), Ba(e5, r6, l6)), false;
              }
              throw Error("Unexpected Suspense handler tag (" + t6.tag + "). This is a bug in React.");
            }
            return Ba(e5, r6, l6), Ea(), false;
          }
          var a6 = Y(Error("There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.", { cause: r6 }), t6);
          if (null === xp ? xp = [a6] : xp.push(a6), bp !== Gf && (bp = qf), null === n9) return true;
          r6 = Y(r6, t6), t6 = n9;
          do {
            switch (t6.tag) {
              case 3:
                return t6.flags |= 65536, e5 = l6 & -l6, t6.lanes |= e5, Nn(t6, e5 = Tr(t6.stateNode, r6, e5)), false;
              case 1:
                if (n9 = t6.type, a6 = t6.stateNode, 0 == (128 & t6.flags) && ("function" == typeof n9.getDerivedStateFromError || null !== a6 && "function" == typeof a6.componentDidCatch && (null === Dp || !Dp.has(a6)))) return t6.flags |= 65536, l6 &= -l6, t6.lanes |= l6, Nr(l6 = Rr(l6), e5, t6, r6), Nn(t6, l6), false;
            }
            t6 = t6.return;
          } while (null !== t6);
          return false;
        })(e4, l5, n8, t5, np)) return bp = Vf, Pr(e4, Y(t5, e4.current)), void (ep = null);
      } catch (n9) {
        if (null !== l5) throw ep = l5, n9;
        return bp = Vf, Pr(e4, Y(t5, e4.current)), void (ep = null);
      }
      32768 & n8.flags ? (r5 === rp ? e4 = true : hp || 0 != (536870912 & np) ? e4 = false : (mp = e4 = true, (r5 === lp || r5 === dp || r5 === ap || r5 === ip) && null !== (r5 = bd.current) && 13 === r5.tag && (r5.flags |= 16384)), Da(n8, e4)) : Ua(n8);
    }
    function Ua(e4) {
      var n8 = e4;
      do {
        if (0 != (32768 & n8.flags)) return void Da(n8, mp);
        var t5 = n8.alternate;
        if (e4 = n8.return, Le(n8), t5 = le(n8, sl, t5, n8, yp), (2 & n8.mode) !== ts && De(n8), null !== t5) return void (ep = t5);
        if (null !== (n8 = n8.sibling)) return void (ep = n8);
        ep = n8 = e4;
      } while (null !== n8);
      bp === $f && (bp = Kf);
    }
    function Da(e4, n8) {
      do {
        var t5 = cl(e4.alternate, e4);
        if (null !== t5) return t5.flags &= 32767, void (ep = t5);
        if ((2 & e4.mode) !== ts) {
          De(e4), t5 = e4.actualDuration;
          for (var r5 = e4.child; null !== r5; ) t5 += r5.actualDuration, r5 = r5.sibling;
          e4.actualDuration = t5;
        }
        if (null !== (t5 = e4.return) && (t5.flags |= 32768, t5.subtreeFlags = 0, t5.deletions = null), !n8 && null !== (e4 = e4.sibling)) return void (ep = e4);
        ep = e4 = t5;
      } while (null !== e4);
      bp = Jf, ep = null;
    }
    function Ia(e4, n8, t5, r5, l5, a6, o6, u5, i6, s5, c7, d4, f5, p4) {
      e4.cancelPendingCommit = null;
      do {
        Oa();
      } while ($p !== Hp);
      if (fc.flushLegacyContextWarning(), fc.flushPendingUnsafeLifecycleWarnings(), (Xf & (Qf | Bf)) !== Wf) throw Error("Should not already be working.");
      if (N(t5), s5 === qf ? H(f5, p4, 0, Up) : null !== r5 ? (function(e5, n9, t6, r6, l6, a7) {
        if (Ci && !(n9 <= e5)) {
          t6 = [];
          for (var o7 = 0; o7 < r6.length; o7++) {
            var u6 = r6[o7].value;
            t6.push(["Recoverable Error", "object" == typeof u6 && null !== u6 && "string" == typeof u6.message ? String(u6.message) : String(u6)]);
          }
          e5 = { start: e5, end: n9, detail: { devtools: { color: "primary-dark", track: Pi, trackGroup: "Scheduler \u269B", tooltipText: l6 ? "Hydration Failed" : "Recovered after Error", properties: t6 } } }, a7 ? a7.run(performance.measure.bind(performance, "Recovered", e5)) : performance.measure("Recovered", e5);
        }
      })(f5, p4, t5, r5, null !== n8 && null !== n8.alternate && n8.alternate.memoizedState.isDehydrated && 0 != (256 & n8.flags), Up) : (function(e5, n9, t6, r6) {
        if (Ci && !(n9 <= e5)) {
          var l6 = (738197653 & t6) === t6 ? "tertiary-dark" : "primary-dark";
          t6 = (536870912 & t6) === t6 ? "Prepared" : (201326741 & t6) === t6 ? "Hydrated" : "Render", r6 ? r6.run(console.timeStamp.bind(console, t6, e5, n9, Pi, "Scheduler \u269B", l6)) : console.timeStamp(t6, e5, n9, Pi, "Scheduler \u269B", l6);
        }
      })(f5, p4, t5, Up), null !== n8) {
        if (0 === t5 && console.error("finishedLanes should not be empty during a commit. This is a bug in React."), n8 === e4.current) throw Error("Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.");
        if (a6 = n8.lanes | n8.childLanes, (function(e5, n9, t6, r6, l6, a7) {
          var o7 = e5.pendingLanes;
          e5.pendingLanes = t6, e5.suspendedLanes = 0, e5.pingedLanes = 0, e5.warmLanes = 0, e5.expiredLanes &= t6, e5.entangledLanes &= t6, e5.errorRecoveryDisabledLanes &= t6, e5.shellSuspendCounter = 0;
          var u6 = e5.entanglements, i7 = e5.expirationTimes, s6 = e5.hiddenUpdates;
          for (t6 = o7 & ~t6; 0 < t6; ) {
            var c8 = 31 - Yu(t6), d5 = 1 << c8;
            u6[c8] = 0, i7[c8] = -1;
            var f6 = s6[c8];
            if (null !== f6) for (s6[c8] = null, c8 = 0; c8 < f6.length; c8++) {
              var p5 = f6[c8];
              null !== p5 && (p5.lane &= -536870913);
            }
            t6 &= ~d5;
          }
          0 !== r6 && k3(e5, r6, 0), 0 !== a7 && 0 === l6 && 0 !== e5.tag && (e5.suspendedLanes |= a7 & ~(o7 & ~n9));
        })(e4, t5, a6 |= ud, o6, u5, i6), e4 === Zf && (ep = Zf = null, np = 0), qp = n8, Vp = e4, Yp = t5, Gp = a6, Kp = l5, Xp = r5, Jp = p4, Zp = d4, em = Ip, nm = null, 0 !== n8.actualDuration || 0 != (10256 & n8.subtreeFlags) || 0 != (10256 & n8.flags) ? (e4.callbackNode = null, e4.callbackPriority = 0, b4 = ui, v4 = function() {
          return eu(), em === Ip && (em = jp), Ma(), null;
        }, null !== (S4 = Do.actQueue) ? S4.push(v4) : ei(b4, v4)) : (e4.callbackNode = null, e4.callbackPriority = 0), bs = null, gs = ps(), null !== d4 && (m4 = p4, h5 = gs, g4 = d4, y4 = Up, !Ci || h5 <= m4 || (y4 ? y4.run(console.timeStamp.bind(console, g4, m4, h5, Pi, "Scheduler \u269B", "secondary-light")) : console.timeStamp(g4, m4, h5, Pi, "Scheduler \u269B", "secondary-light"))), r5 = 0 != (13878 & n8.flags), 0 != (13878 & n8.subtreeFlags) || r5) {
          r5 = Do.T, Do.T = null, l5 = Xo(), Ko(2), o6 = Xf, Xf |= Bf;
          try {
            !(function(e5, n9) {
              for (Ao(e5.containerInfo), Nf = n9; null !== Nf; ) if (n9 = (e5 = Nf).child, 0 != (1028 & e5.subtreeFlags) && null !== n9) n9.return = e5, Nf = n9;
              else for (; null !== Nf; ) {
                var t6 = (n9 = e5 = Nf).alternate, r6 = n9.flags;
                switch (n9.tag) {
                  case 0:
                    if (0 != (4 & r6) && null !== (n9 = null !== (n9 = n9.updateQueue) ? n9.events : null)) for (t6 = 0; t6 < n9.length; t6++) (r6 = n9[t6]).ref.impl = r6.nextImpl;
                    break;
                  case 11:
                  case 15:
                  case 5:
                  case 26:
                  case 27:
                  case 6:
                  case 4:
                  case 17:
                    break;
                  case 1:
                    0 != (1024 & r6) && null !== t6 && kl(n9, t6);
                    break;
                  case 3:
                    0 != (1024 & r6) && Yo && Ru(n9.stateNode.containerInfo);
                    break;
                  default:
                    if (0 != (1024 & r6)) throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.");
                }
                if (null !== (n9 = e5.sibling)) {
                  n9.return = e5.return, Nf = n9;
                  break;
                }
                Nf = e5.return;
              }
            })(e4, n8);
          } finally {
            Xf = o6, Ko(l5), Do.T = r5;
          }
        }
        $p = Op, Fa(), ja(), Aa();
      }
      var m4, h5, g4, y4, b4, v4, S4;
    }
    function Fa() {
      if ($p === Op) {
        $p = Hp;
        var e4 = Vp, n8 = qp, t5 = Yp, r5 = 0 != (13878 & n8.flags);
        if (0 != (13878 & n8.subtreeFlags) || r5) {
          r5 = Do.T, Do.T = null;
          var l5 = Xo();
          Ko(2);
          var a6 = Xf;
          Xf |= Bf;
          try {
            Lf = t5, Uf = e4, Ee(), Ml(n8, e4), Uf = Lf = null, Ho(e4.containerInfo);
          } finally {
            Xf = a6, Ko(l5), Do.T = r5;
          }
        }
        e4.current = n8, $p = Mp;
      }
    }
    function ja() {
      if ($p === Mp) {
        $p = Hp;
        var e4 = nm;
        if (null !== e4) {
          gs = ps();
          var n8 = ys, t5 = gs;
          !Ci || t5 <= n8 || console.timeStamp(e4, n8, t5, Pi, "Scheduler \u269B", "secondary-light");
        }
        e4 = Vp, t5 = Yp;
        var r5 = 0 != (8772 & (n8 = qp).flags);
        if (0 != (8772 & n8.subtreeFlags) || r5) {
          r5 = Do.T, Do.T = null;
          var l5 = Xo();
          Ko(2);
          var a6 = Xf;
          Xf |= Bf;
          try {
            Lf = t5, Uf = e4, Ee(), Il(e4, n8.alternate, n8), Uf = Lf = null;
          } finally {
            Xf = a6, Ko(l5), Do.T = r5;
          }
        }
        e4 = Jp, n8 = Zp, ys = ps(), e4 = null === n8 ? e4 : gs, n8 = ys, t5 = em === Fp, r5 = Up, null !== bs ? O(e4, n8, bs, false, r5) : !Ci || n8 <= e4 || (r5 ? r5.run(console.timeStamp.bind(console, t5 ? "Commit Interrupted View Transition" : "Commit", e4, n8, Pi, "Scheduler \u269B", t5 ? "error" : "secondary-dark")) : console.timeStamp(t5 ? "Commit Interrupted View Transition" : "Commit", e4, n8, Pi, "Scheduler \u269B", t5 ? "error" : "secondary-dark")), $p = Wp;
      }
    }
    function Aa() {
      if ($p === Qp || $p === Wp) {
        if ($p === Qp) {
          var e4 = ys, n8 = ys = ps(), t5 = em === Fp;
          !Ci || n8 <= e4 || console.timeStamp(t5 ? "Interrupted View Transition" : "Starting Animation", e4, n8, Pi, "Scheduler \u269B", t5 ? " error" : "secondary-light"), em !== Fp && (em = Ap);
        }
        $p = Hp, ri(), e4 = Vp;
        var r5 = qp;
        n8 = Yp, t5 = Xp;
        var l5 = 0 !== r5.actualDuration || 0 != (10256 & r5.subtreeFlags) || 0 != (10256 & r5.flags);
        l5 ? $p = Bp : ($p = Hp, qp = Vp = null, Ha(e4, e4.pendingLanes), im = 0, sm = null);
        var a6, o6, u5 = e4.pendingLanes;
        if (0 === u5 && (Dp = null), l5 || Ka(e4), u5 = C(n8), r5 = r5.stateNode, fi && e4.memoizedUpdaters.clear(), null !== t5) {
          a6 = Do.T, o6 = Xo(), Ko(2), Do.T = null;
          try {
            var i6 = e4.onRecoverableError;
            for (r5 = 0; r5 < t5.length; r5++) {
              var s5 = t5[r5], c7 = (d4 = { componentStack: d4 = s5.stack }, Object.defineProperty(d4, "digest", { get: function() {
                console.error('You are accessing "digest" from the errorInfo object passed to onRecoverableError. This property is no longer provided as part of errorInfo but can be accessed as a property of the Error instance itself.');
              } }), d4);
              le(s5.source, i6, s5.value, c7);
            }
          } finally {
            Do.T = a6, Ko(o6);
          }
        }
        0 != (3 & Yp) && Oa(), Oe(e4), u5 = e4.pendingLanes, 0 != (261930 & n8) && 0 != (42 & u5) ? (Ks = true, e4 === lm ? rm++ : (rm = 0, lm = e4)) : rm = 0, l5 || va(n8, ys), Me(0);
      }
      var d4;
    }
    function Ha(e4, n8) {
      0 == (e4.pooledCacheLanes &= n8) && null != (n8 = e4.pooledCache) && (e4.pooledCache = null, Se(n8));
    }
    function Oa() {
      return Fa(), ja(), Aa(), Ma();
    }
    function Ma() {
      if ($p !== Bp) return false;
      var e4 = Vp, n8 = Gp;
      Gp = 0;
      var t5 = C(Yp), r5 = 32 > t5 ? 32 : t5;
      t5 = Do.T;
      var l5 = Xo();
      try {
        Ko(r5), Do.T = null;
        var a6 = Kp;
        Kp = null, r5 = Vp;
        var o6, u5 = Yp;
        if ($p = Hp, qp = Vp = null, Yp = 0, (Xf & (Qf | Bf)) !== Wf) throw Error("Cannot flush passive effects while already rendering.");
        if (N(u5), am = true, om = false, bs = null, o6 = li(), em === Ap) {
          var i6 = ys, s5 = o6;
          !Ci || s5 <= i6 || (qs ? qs.run(console.timeStamp.bind(console, "Animating", i6, s5, Pi, "Scheduler \u269B", "secondary-dark")) : console.timeStamp("Animating", i6, s5, Pi, "Scheduler \u269B", "secondary-dark"));
        } else {
          i6 = ys, s5 = o6;
          var c7 = em === jp;
          !Ci || s5 <= i6 || (Up ? Up.run(console.timeStamp.bind(console, c7 ? "Waiting for Paint" : "Waiting", i6, s5, Pi, "Scheduler \u269B", "secondary-light")) : console.timeStamp(c7 ? "Waiting for Paint" : "Waiting", i6, s5, Pi, "Scheduler \u269B", "secondary-light"));
        }
        i6 = Xf, Xf |= Bf;
        var d4 = r5.current;
        Ee(), oa(d4);
        var f5 = r5.current;
        d4 = Jp, Ee(), Xl(r5, f5, u5, a6, d4), Ka(r5), Xf = i6;
        var p4 = li();
        f5 = o6, d4 = Up, null !== bs ? O(f5, p4, bs, true, d4) : !Ci || p4 <= f5 || (d4 ? d4.run(console.timeStamp.bind(console, "Remaining Effects", f5, p4, Pi, "Scheduler \u269B", "secondary-dark")) : console.timeStamp("Remaining Effects", f5, p4, Pi, "Scheduler \u269B", "secondary-dark")), va(u5, p4), Me(0), om ? r5 === sm ? im++ : (im = 0, sm = r5) : im = 0, om = am = false, di && di.onPostCommitFiberRoot;
        var m4 = r5.current.stateNode;
        return m4.effectDuration = 0, m4.passiveEffectDuration = 0, true;
      } finally {
        Ko(l5), Do.T = t5, Ha(e4, n8);
      }
    }
    function Wa(e4, n8, t5) {
      Fe(n8 = Y(t5, n8)), null !== (e4 = Tn(e4, n8 = Tr(e4.stateNode, n8, 2), 2)) && (S3(e4, 2), Oe(e4));
    }
    function Qa(e4, n8, t5) {
      if (cm = false, 3 === e4.tag) Wa(e4, e4, t5);
      else {
        for (; null !== n8; ) {
          if (3 === n8.tag) return void Wa(n8, e4, t5);
          if (1 === n8.tag) {
            var r5 = n8.stateNode;
            if ("function" == typeof n8.type.getDerivedStateFromError || "function" == typeof r5.componentDidCatch && (null === Dp || !Dp.has(r5))) return Fe(e4 = Y(t5, e4)), void (null !== (r5 = Tn(n8, t5 = Rr(2), 2)) && (Nr(t5, r5, n8, e4), S3(r5, 2), Oe(r5)));
          }
          n8 = n8.return;
        }
        console.error("Internal React error: Attempted to capture a commit phase error inside a detached tree. This indicates a bug in React. Potential causes include deleting the same fiber more than once, committing an already-finished tree, or an inconsistent return pointer.\n\nError message:\n\n%s", t5);
      }
    }
    function Ba(e4, n8, t5) {
      var r5 = e4.pingCache;
      if (null === r5) {
        r5 = e4.pingCache = new Mf();
        var l5 = /* @__PURE__ */ new Set();
        r5.set(n8, l5);
      } else void 0 === (l5 = r5.get(n8)) && (l5 = /* @__PURE__ */ new Set(), r5.set(n8, l5));
      l5.has(t5) || (gp = true, l5.add(t5), r5 = $a.bind(null, e4, n8, t5), fi && Za(e4, t5), n8.then(r5, r5));
    }
    function $a(e4, n8, t5) {
      var r5 = e4.pingCache;
      null !== r5 && r5.delete(n8), e4.pingedLanes |= e4.suspendedLanes & t5, e4.warmLanes &= ~t5, 0 != (127 & t5) ? 0 > Ps && (Cs = Ps = ps(), _s = ms("Promise Resolved"), Ts = 2) : 0 != (4194048 & t5) && 0 > As && (Fs = As = ps(), Os = ms("Promise Resolved"), Hs = 2), ca() && null === Do.actQueue && console.error("A suspended resource finished loading inside a test, but the event was not wrapped in act(...).\n\nWhen testing, code that resolves suspended data should be wrapped into act(...):\n\nact(() => {\n  /* finish loading suspended data */\n});\n/* assert on the output */\n\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act"), Zf === e4 && (np & t5) === t5 && (bp === Gf || bp === Yf && (62914560 & np) === np && li() - Pp < Tp ? (Xf & Qf) === Wf && Sa(e4, 0) : kp |= t5, zp === np && (zp = 0)), Oe(e4);
    }
    function Va(e4, n8) {
      0 === n8 && (n8 = b3()), null !== (e4 = zn(e4, n8)) && (S3(e4, n8), Oe(e4));
    }
    function qa(e4) {
      var n8 = e4.memoizedState, t5 = 0;
      null !== n8 && (t5 = n8.retryLane), Va(e4, t5);
    }
    function Ya(e4, n8) {
      var t5 = 0;
      switch (e4.tag) {
        case 31:
        case 13:
          var r5 = e4.stateNode, l5 = e4.memoizedState;
          null !== l5 && (t5 = l5.retryLane);
          break;
        case 19:
          r5 = e4.stateNode;
          break;
        case 22:
          r5 = e4.stateNode._retryCache;
          break;
        default:
          throw Error("Pinged unknown suspense boundary type. This is probably a bug in React.");
      }
      null !== r5 && r5.delete(n8), Va(e4, t5);
    }
    function Ga(e4, n8, t5) {
      if (0 != (67117056 & n8.subtreeFlags)) for (n8 = n8.child; null !== n8; ) {
        var r5 = e4, l5 = n8, a6 = l5.type === So;
        a6 = t5 || a6, 22 !== l5.tag ? 67108864 & l5.flags ? a6 && le(l5, Ja, r5, l5) : Ga(r5, l5, a6) : null === l5.memoizedState && (a6 && 8192 & l5.flags ? le(l5, Ja, r5, l5) : 67108864 & l5.subtreeFlags && le(l5, Ga, r5, l5, a6)), n8 = n8.sibling;
      }
    }
    function Ja(e4, n8) {
      P(true);
      try {
        $l(n8), ia(n8), ql(e4, n8.alternate, n8, false), ea(e4, n8, 0, null, false, 0);
      } finally {
        P(false);
      }
    }
    function Ka(e4) {
      var n8 = true;
      24 & e4.current.mode || (n8 = false), Ga(e4, e4.current, n8);
    }
    function Xa(e4) {
      if ((Xf & Qf) === Wf) {
        var n8 = e4.tag;
        if (3 === n8 || 1 === n8 || 0 === n8 || 11 === n8 || 14 === n8 || 15 === n8) {
          if (n8 = c6(e4) || "ReactComponent", null !== dm) {
            if (dm.has(n8)) return;
            dm.add(n8);
          } else dm = /* @__PURE__ */ new Set([n8]);
          le(e4, (function() {
            console.error("Can't perform a React state update on a component that hasn't mounted yet. This indicates that you have a side-effect in your render function that asynchronously tries to update the component. Move this work to useEffect instead.");
          }));
        }
      }
    }
    function Za(e4, n8) {
      fi && e4.memoizedUpdaters.forEach((function(t5) {
        x(e4, t5, n8);
      }));
    }
    function eo(e4, n8, t5, r5) {
      this.tag = e4, this.key = t5, this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null, this.index = 0, this.refCleanup = this.ref = null, this.pendingProps = n8, this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null, this.mode = r5, this.subtreeFlags = this.flags = 0, this.deletions = null, this.childLanes = this.lanes = 0, this.alternate = null, this.actualDuration = -0, this.actualStartTime = -1.1, this.treeBaseDuration = this.selfBaseDuration = -0, this._debugTask = this._debugStack = this._debugOwner = this._debugInfo = null, this._debugNeedsRemount = false, this._debugHookTypes = null, mm || "function" != typeof Object.preventExtensions || Object.preventExtensions(this);
    }
    function no(e4) {
      return !(!(e4 = e4.prototype) || !e4.isReactComponent);
    }
    function to(e4, n8) {
      var r5 = e4.alternate;
      switch (null === r5 ? ((r5 = t4(e4.tag, n8, e4.key, e4.mode)).elementType = e4.elementType, r5.type = e4.type, r5.stateNode = e4.stateNode, r5._debugOwner = e4._debugOwner, r5._debugStack = e4._debugStack, r5._debugTask = e4._debugTask, r5._debugHookTypes = e4._debugHookTypes, r5.alternate = e4, e4.alternate = r5) : (r5.pendingProps = n8, r5.type = e4.type, r5.flags = 0, r5.subtreeFlags = 0, r5.deletions = null, r5.actualDuration = -0, r5.actualStartTime = -1.1), r5.flags = 65011712 & e4.flags, r5.childLanes = e4.childLanes, r5.lanes = e4.lanes, r5.child = e4.child, r5.memoizedProps = e4.memoizedProps, r5.memoizedState = e4.memoizedState, r5.updateQueue = e4.updateQueue, n8 = e4.dependencies, r5.dependencies = null === n8 ? null : { lanes: n8.lanes, firstContext: n8.firstContext, _debugThenableState: n8._debugThenableState }, r5.sibling = e4.sibling, r5.index = e4.index, r5.ref = e4.ref, r5.refCleanup = e4.refCleanup, r5.selfBaseDuration = e4.selfBaseDuration, r5.treeBaseDuration = e4.treeBaseDuration, r5._debugInfo = e4._debugInfo, r5._debugNeedsRemount = e4._debugNeedsRemount, r5.tag) {
        case 0:
        case 15:
        case 1:
        case 11:
          r5.type = e4.type;
      }
      return r5;
    }
    function ro(e4, n8) {
      e4.flags &= 65011714;
      var t5 = e4.alternate;
      return null === t5 ? (e4.childLanes = 0, e4.lanes = n8, e4.child = null, e4.subtreeFlags = 0, e4.memoizedProps = null, e4.memoizedState = null, e4.updateQueue = null, e4.dependencies = null, e4.stateNode = null, e4.selfBaseDuration = 0, e4.treeBaseDuration = 0) : (e4.childLanes = t5.childLanes, e4.lanes = t5.lanes, e4.child = t5.child, e4.subtreeFlags = 0, e4.deletions = null, e4.memoizedProps = t5.memoizedProps, e4.memoizedState = t5.memoizedState, e4.updateQueue = t5.updateQueue, e4.type = t5.type, n8 = t5.dependencies, e4.dependencies = null === n8 ? null : { lanes: n8.lanes, firstContext: n8.firstContext, _debugThenableState: n8._debugThenableState }, e4.selfBaseDuration = t5.selfBaseDuration, e4.treeBaseDuration = t5.treeBaseDuration), e4;
    }
    function lo(e4, n8, r5, l5, a6, o6) {
      var u5 = 0, i6 = e4;
      if ("function" == typeof e4) no(e4) && (u5 = 1);
      else if ("string" == typeof e4) u5 = 5;
      else e: switch (e4) {
        case To:
          return (n8 = t4(31, r5, n8, a6)).elementType = To, n8.lanes = o6, n8;
        case vo:
          return oo(r5.children, a6, o6, n8);
        case So:
          u5 = 8, a6 |= 24;
          break;
        case ko:
          return l5 = a6, "string" != typeof (e4 = r5).id && console.error('Profiler must specify an "id" of type `string` as a prop. Received the type `%s` instead.', typeof e4.id), (n8 = t4(12, e4, n8, 2 | l5)).elementType = ko, n8.lanes = o6, n8.stateNode = { effectDuration: 0, passiveEffectDuration: 0 }, n8;
        case Eo:
          return (n8 = t4(13, r5, n8, a6)).elementType = Eo, n8.lanes = o6, n8;
        case Co:
          return (n8 = t4(19, r5, n8, a6)).elementType = Co, n8.lanes = o6, n8;
        default:
          if ("object" == typeof e4 && null !== e4) switch (e4.$$typeof) {
            case zo:
              u5 = 10;
              break e;
            case wo:
              u5 = 9;
              break e;
            case xo:
              u5 = 11;
              break e;
            case Po:
              u5 = 14;
              break e;
            case _o:
              u5 = 16, i6 = null;
              break e;
          }
          i6 = "", (void 0 === e4 || "object" == typeof e4 && null !== e4 && 0 === Object.keys(e4).length) && (i6 += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."), null === e4 ? r5 = "null" : Uo(e4) ? r5 = "array" : void 0 !== e4 && e4.$$typeof === yo ? (r5 = "<" + (s4(e4.type) || "Unknown") + " />", i6 = " Did you accidentally export a JSX literal instead of a component?") : r5 = typeof e4, (u5 = l5 ? "number" == typeof l5.tag ? c6(l5) : "string" == typeof l5.name ? l5.name : null : null) && (i6 += "\n\nCheck the render method of `" + u5 + "`."), u5 = 29, r5 = Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " + r5 + "." + i6), i6 = null;
      }
      return (n8 = t4(u5, r5, n8, a6)).elementType = e4, n8.type = i6, n8.lanes = o6, n8._debugOwner = l5, n8;
    }
    function ao(e4, n8, t5) {
      return (n8 = lo(e4.type, e4.key, e4.props, e4._owner, n8, t5))._debugOwner = e4._owner, n8._debugStack = e4._debugStack, n8._debugTask = e4._debugTask, n8;
    }
    function oo(e4, n8, r5, l5) {
      return (e4 = t4(7, e4, l5, n8)).lanes = r5, e4;
    }
    function uo(e4, n8, r5) {
      return (e4 = t4(6, e4, null, n8)).lanes = r5, e4;
    }
    function io(e4, n8, r5) {
      return (n8 = t4(4, null !== e4.children ? e4.children : [], e4.key, n8)).lanes = r5, n8.stateNode = { containerInfo: e4.containerInfo, pendingChildren: null, implementation: e4.implementation }, n8;
    }
    function so(e4, n8, t5, r5, l5, a6, o6, u5, i6) {
      for (this.tag = 1, this.containerInfo = e4, this.pingCache = this.current = this.pendingChildren = null, this.timeoutHandle = qo, this.callbackNode = this.next = this.pendingContext = this.context = this.cancelPendingCommit = null, this.callbackPriority = 0, this.expirationTimes = v3(-1), this.entangledLanes = this.shellSuspendCounter = this.errorRecoveryDisabledLanes = this.expiredLanes = this.warmLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0, this.entanglements = v3(0), this.hiddenUpdates = v3(null), this.identifierPrefix = r5, this.onUncaughtError = l5, this.onCaughtError = a6, this.onRecoverableError = o6, this.pooledCache = null, this.pooledCacheLanes = 0, this.formState = i6, this.incompleteTransitions = /* @__PURE__ */ new Map(), this.passiveEffectDuration = this.effectDuration = -0, this.memoizedUpdaters = /* @__PURE__ */ new Set(), e4 = this.pendingUpdatersLaneMap = [], n8 = 0; 31 > n8; n8++) e4.push(/* @__PURE__ */ new Set());
      this._debugRootType = t5 ? "hydrateRoot()" : "createRoot()";
    }
    function co(e4, n8, t5, r5, l5, a6) {
      l5 = (function(e5) {
        return e5 ? e5 = qu : qu;
      })(l5), null === r5.context ? r5.context = l5 : r5.pendingContext = l5, Zi && null !== Xi && !gm && (gm = true, console.error("Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.\n\nCheck the render method of %s.", c6(Xi) || "Unknown")), (r5 = _n(n8)).payload = { element: t5 }, null !== (a6 = void 0 === a6 ? null : a6) && ("function" != typeof a6 && console.error("Expected the last optional `callback` argument to be a function. Instead received: %s.", a6), r5.callback = a6), null !== (t5 = Tn(e4, r5, n8)) && (ke(n8, "root.render()", null), pa(t5, e4, n8), Rn(t5, e4, n8));
    }
    var fo = {}, po = import_react2.default, mo = u3, ho = Object.assign, go = Symbol.for("react.element"), yo = Symbol.for("react.transitional.element"), bo = Symbol.for("react.portal"), vo = Symbol.for("react.fragment"), So = Symbol.for("react.strict_mode"), ko = Symbol.for("react.profiler"), wo = Symbol.for("react.consumer"), zo = Symbol.for("react.context"), xo = Symbol.for("react.forward_ref"), Eo = Symbol.for("react.suspense"), Co = Symbol.for("react.suspense_list"), Po = Symbol.for("react.memo"), _o = Symbol.for("react.lazy"), To = Symbol.for("react.activity"), Ro = Symbol.for("react.memo_cache_sentinel"), No = Symbol.iterator, Lo = Symbol.for("react.client.reference"), Uo = Array.isArray, Do = po.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, Io = n7.getPublicInstance, Fo = n7.getRootHostContext, jo = n7.getChildHostContext, Ao = n7.prepareForCommit, Ho = n7.resetAfterCommit, Oo = n7.createInstance, Mo = n7.appendInitialChild, Wo = n7.finalizeInitialChildren, Qo = n7.shouldSetTextContent, Bo = n7.createTextInstance, $o = null, Vo = null, qo = n7.noTimeout, Yo = true, Go = null, Jo = null, Ko = n7.setCurrentUpdatePriority, Xo = n7.getCurrentUpdatePriority, Zo = n7.resolveUpdatePriority, eu = n7.trackSchedulerEvent, nu = n7.resolveEventType, tu = n7.resolveEventTimeStamp, ru = n7.shouldAttemptEagerTransition, lu = n7.detachDeletedInstance;
    n7.requestPostPaintCallback;
    var au = n7.maySuspendCommit, ou = null, uu = null, iu = null, su = null, cu = null, du = null, fu = null, pu = null, mu = null, hu = null, gu = n7.appendChild, yu = n7.appendChildToContainer, bu = n7.commitTextUpdate, vu = null, Su = n7.commitUpdate, ku = n7.insertBefore, wu = null, zu = n7.removeChild, xu = n7.removeChildFromContainer, Eu = n7.resetTextContent, Cu = null, Pu = null, _u = null, Tu = null, Ru = n7.clearContainer, Nu = null, Lu = null, Uu = null, Du = null, Iu = null, Fu = null, ju = null, Au = null, Hu = null, Ou = null, Mu = null, Wu = null, Qu = null, Bu = [], $u = [], Vu = -1, qu = {};
    Object.freeze(qu);
    var Yu = Math.clz32 ? Math.clz32 : function(e4) {
      return 0 == (e4 >>>= 0) ? 32 : 31 - (Gu(e4) / Ju | 0) | 0;
    }, Gu = Math.log, Ju = Math.LN2, Ku = 256, Xu = 262144, Zu = 4194304, ei = mo.unstable_scheduleCallback, ni = mo.unstable_cancelCallback, ti = mo.unstable_shouldYield, ri = mo.unstable_requestPaint, li = mo.unstable_now, ai = mo.unstable_ImmediatePriority, oi = mo.unstable_UserBlockingPriority, ui = mo.unstable_NormalPriority, ii = mo.unstable_IdlePriority, si = mo.log, ci = mo.unstable_setDisableYieldValue, di = null, fi = "undefined" != typeof __REACT_DEVTOOLS_GLOBAL_HOOK__, pi = 0;
    if ("object" == typeof performance && "function" == typeof performance.now) var mi = performance, hi = function() {
      return mi.now();
    };
    else {
      var gi = Date;
      hi = function() {
        return gi.now();
      };
    }
    var yi = "function" == typeof Object.is ? Object.is : function(e4, n8) {
      return e4 === n8 && (0 !== e4 || 1 / e4 == 1 / n8) || e4 != e4 && n8 != n8;
    };
    "function" == typeof reportError && reportError;
    var bi, vi, Si, ki, wi, zi, xi, Ei = Object.prototype.hasOwnProperty, Ci = "undefined" != typeof console && "function" == typeof console.timeStamp && "undefined" != typeof performance && "function" == typeof performance.measure, Pi = "Blocking", _i = false, Ti = { color: "primary", properties: null, tooltipText: "", track: "Components \u269B" }, Ri = { start: -0, end: -0, detail: { devtools: Ti } }, Ni = ["Changed Props", ""], Li = ["Changed Props", "This component received deeply equal props. It might benefit from useMemo or the React Compiler in its owner."], Ui = 0;
    M.__reactDisabledLog = true;
    var Di, Ii, Fi = false, ji = new ("function" == typeof WeakMap ? WeakMap : Map)(), Ai = /* @__PURE__ */ new WeakMap(), Hi = [], Oi = 0, Mi = null, Wi = 0, Qi = [], Bi = 0, $i = null, Vi = 1, qi = "", Yi = d3(null), Gi = d3(null), Ji = d3(null), Ki = d3(null), Xi = null, Zi = false, es = false, ns = null, ts = 0, rs = d3(null), ls = d3(null), as = {}, os2 = null, us = null, is3 = false, ss = "undefined" != typeof AbortController ? AbortController : function() {
      var e4 = [], n8 = this.signal = { aborted: false, addEventListener: function(n9, t5) {
        e4.push(t5);
      } };
      this.abort = function() {
        n8.aborted = true, e4.forEach((function(e5) {
          return e5();
        }));
      };
    }, cs = mo.unstable_scheduleCallback, ds = mo.unstable_NormalPriority, fs7 = { $$typeof: zo, Consumer: null, Provider: null, _currentValue: null, _currentValue2: null, _threadCount: 0, _currentRenderer: null, _currentRenderer2: null }, ps = mo.unstable_now, ms = console.createTask ? console.createTask : function() {
      return null;
    }, hs = -0, gs = -0, ys = -0, bs = null, vs = -1.1, Ss = -0, ks = -0, ws = -1.1, zs = -1.1, xs = null, Es = false, Cs = -0, Ps = -1.1, _s = null, Ts = 0, Rs = null, Ns = null, Ls = -1.1, Us = null, Ds = -1.1, Is = -1.1, Fs = -0, js = -1.1, As = -1.1, Hs = 0, Os = null, Ms = null, Ws = null, Qs = -1.1, Bs = null, $s = -1.1, Vs = -1.1, qs = null, Ys = 0, Gs = -1.1, Js = false, Ks = false, Xs = null, Zs = null, ec2 = false, nc = false, tc = false, rc = false, lc = 0, ac = {}, oc = null, uc = 0, ic = 0, sc = null, cc = Do.S;
    Do.S = function(e4, n8) {
      if (_p = li(), "object" == typeof n8 && null !== n8 && "function" == typeof n8.then) {
        if (0 > js && 0 > As) {
          js = ps();
          var t5 = tu(), r5 = nu();
          t5 === $s && r5 === Bs || ($s = -1.1), Qs = t5, Bs = r5;
        }
        !(function(e5, n9) {
          if (null === oc) {
            var t6 = oc = [];
            uc = 0, ic = Ge(), sc = { status: "pending", value: void 0, then: function(e6) {
              t6.push(e6);
            } };
          }
          uc++, n9.then(Je, Je);
        })(0, n8);
      }
      null !== cc && cc(e4, n8);
    };
    var dc = d3(null), fc = { recordUnsafeLifecycleWarnings: function() {
    }, flushPendingUnsafeLifecycleWarnings: function() {
    }, recordLegacyContextWarning: function() {
    }, flushLegacyContextWarning: function() {
    }, discardPendingWarnings: function() {
    } }, pc = [], mc = [], hc = [], gc = [], yc = [], bc = [], vc = /* @__PURE__ */ new Set();
    fc.recordUnsafeLifecycleWarnings = function(e4, n8) {
      vc.has(e4.type) || ("function" == typeof n8.componentWillMount && true !== n8.componentWillMount.__suppressDeprecationWarning && pc.push(e4), 8 & e4.mode && "function" == typeof n8.UNSAFE_componentWillMount && mc.push(e4), "function" == typeof n8.componentWillReceiveProps && true !== n8.componentWillReceiveProps.__suppressDeprecationWarning && hc.push(e4), 8 & e4.mode && "function" == typeof n8.UNSAFE_componentWillReceiveProps && gc.push(e4), "function" == typeof n8.componentWillUpdate && true !== n8.componentWillUpdate.__suppressDeprecationWarning && yc.push(e4), 8 & e4.mode && "function" == typeof n8.UNSAFE_componentWillUpdate && bc.push(e4));
    }, fc.flushPendingUnsafeLifecycleWarnings = function() {
      var e4 = /* @__PURE__ */ new Set();
      0 < pc.length && (pc.forEach((function(n9) {
        e4.add(c6(n9) || "Component"), vc.add(n9.type);
      })), pc = []);
      var n8 = /* @__PURE__ */ new Set();
      0 < mc.length && (mc.forEach((function(e5) {
        n8.add(c6(e5) || "Component"), vc.add(e5.type);
      })), mc = []);
      var t5 = /* @__PURE__ */ new Set();
      0 < hc.length && (hc.forEach((function(e5) {
        t5.add(c6(e5) || "Component"), vc.add(e5.type);
      })), hc = []);
      var r5 = /* @__PURE__ */ new Set();
      0 < gc.length && (gc.forEach((function(e5) {
        r5.add(c6(e5) || "Component"), vc.add(e5.type);
      })), gc = []);
      var l5 = /* @__PURE__ */ new Set();
      0 < yc.length && (yc.forEach((function(e5) {
        l5.add(c6(e5) || "Component"), vc.add(e5.type);
      })), yc = []);
      var a6 = /* @__PURE__ */ new Set();
      if (0 < bc.length && (bc.forEach((function(e5) {
        a6.add(c6(e5) || "Component"), vc.add(e5.type);
      })), bc = []), 0 < n8.size) {
        var u5 = o5(n8);
        console.error("Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\n\nPlease update the following components: %s", u5);
      }
      0 < r5.size && (u5 = o5(r5), console.error("Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\n\nPlease update the following components: %s", u5)), 0 < a6.size && (u5 = o5(a6), console.error("Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n\nPlease update the following components: %s", u5)), 0 < e4.size && (u5 = o5(e4), console.warn("componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\n* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s", u5)), 0 < t5.size && (u5 = o5(t5), console.warn("componentWillReceiveProps has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\n* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s", u5)), 0 < l5.size && (u5 = o5(l5), console.warn("componentWillUpdate has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s", u5));
    };
    var Sc = /* @__PURE__ */ new Map(), kc = /* @__PURE__ */ new Set();
    fc.recordLegacyContextWarning = function(e4, n8) {
      for (var t5 = null, r5 = e4; null !== r5; ) 8 & r5.mode && (t5 = r5), r5 = r5.return;
      null === t5 ? console.error("Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.") : !kc.has(e4.type) && (r5 = Sc.get(t5), null != e4.type.contextTypes || null != e4.type.childContextTypes || null !== n8 && "function" == typeof n8.getChildContext) && (void 0 === r5 && (r5 = [], Sc.set(t5, r5)), r5.push(e4));
    }, fc.flushLegacyContextWarning = function() {
      Sc.forEach((function(e4) {
        if (0 !== e4.length) {
          var n8 = e4[0], t5 = /* @__PURE__ */ new Set();
          e4.forEach((function(e5) {
            t5.add(c6(e5) || "Component"), kc.add(e5.type);
          }));
          var r5 = o5(t5);
          le(n8, (function() {
            console.error("Legacy context API has been detected within a strict-mode tree.\n\nThe old API will be supported in all 16.x releases, but applications using it should migrate to the new version.\n\nPlease update the following components: %s\n\nLearn more about this warning here: https://react.dev/link/legacy-context", r5);
          }));
        }
      }));
    }, fc.discardPendingWarnings = function() {
      pc = [], mc = [], hc = [], gc = [], yc = [], bc = [], Sc = /* @__PURE__ */ new Map();
    };
    var wc, zc = { react_stack_bottom_frame: function(e4, n8, t5) {
      var r5 = Zi;
      Zi = true;
      try {
        return e4(n8, t5);
      } finally {
        Zi = r5;
      }
    } }, xc = zc.react_stack_bottom_frame.bind(zc), Ec = { react_stack_bottom_frame: function(e4) {
      var n8 = Zi;
      Zi = true;
      try {
        return e4.render();
      } finally {
        Zi = n8;
      }
    } }, Cc = Ec.react_stack_bottom_frame.bind(Ec), Pc = { react_stack_bottom_frame: function(e4, n8) {
      try {
        n8.componentDidMount();
      } catch (n9) {
        Qa(e4, e4.return, n9);
      }
    } }, _c = Pc.react_stack_bottom_frame.bind(Pc), Tc = { react_stack_bottom_frame: function(e4, n8, t5, r5, l5) {
      try {
        n8.componentDidUpdate(t5, r5, l5);
      } catch (n9) {
        Qa(e4, e4.return, n9);
      }
    } }, Rc = Tc.react_stack_bottom_frame.bind(Tc), Nc = { react_stack_bottom_frame: function(e4, n8) {
      var t5 = n8.stack;
      e4.componentDidCatch(n8.value, { componentStack: null !== t5 ? t5 : "" });
    } }, Lc = Nc.react_stack_bottom_frame.bind(Nc), Uc = { react_stack_bottom_frame: function(e4, n8, t5) {
      try {
        t5.componentWillUnmount();
      } catch (t6) {
        Qa(e4, n8, t6);
      }
    } }, Dc = Uc.react_stack_bottom_frame.bind(Uc), Ic = { react_stack_bottom_frame: function(e4) {
      var n8 = e4.create;
      return e4 = e4.inst, n8 = n8(), e4.destroy = n8;
    } }, Fc = Ic.react_stack_bottom_frame.bind(Ic), jc = { react_stack_bottom_frame: function(e4, n8, t5) {
      try {
        t5();
      } catch (t6) {
        Qa(e4, n8, t6);
      }
    } }, Ac = jc.react_stack_bottom_frame.bind(jc), Hc = { react_stack_bottom_frame: function(e4) {
      return (0, e4._init)(e4._payload);
    } }, Oc = Hc.react_stack_bottom_frame.bind(Hc), Mc = Error("Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."), Wc = Error("Suspense Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React."), Qc = Error("Suspense Exception: This is not a real error! It's an implementation detail of `useActionState` to interrupt the current render. You must either rethrow it immediately, or move the `useActionState` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary."), Bc = { then: function() {
      console.error('Internal React error: A listener was unexpectedly attached to a "noop" thenable. This is a bug in React. Please file an issue.');
    } }, $c = null, Vc = false, qc = null, Yc = 0, Gc = null, Jc = wc = false, Kc = {}, Xc = {}, Zc = {};
    a5 = function(e4, n8, t5) {
      if (null !== t5 && "object" == typeof t5 && t5._store && (!t5._store.validated && null == t5.key || 2 === t5._store.validated)) {
        if ("object" != typeof t5._store) throw Error("React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.");
        t5._store.validated = 1;
        var r5 = c6(e4), l5 = r5 || "null";
        if (!Kc[l5]) {
          Kc[l5] = true, t5 = t5._owner, e4 = e4._debugOwner;
          var a6 = "";
          e4 && "number" == typeof e4.tag && (l5 = c6(e4)) && (a6 = "\n\nCheck the render method of `" + l5 + "`."), a6 || r5 && (a6 = "\n\nCheck the top-level render call using <" + r5 + ">.");
          var o6 = "";
          null != t5 && e4 !== t5 && (r5 = null, "number" == typeof t5.tag ? r5 = c6(t5) : "string" == typeof t5.name && (r5 = t5.name), r5 && (o6 = " It was passed a child from " + r5 + ".")), le(n8, (function() {
            console.error('Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.', a6, o6);
          }));
        }
      }
    };
    var ed, nd = bn(true), td2 = bn(false), rd = 1, ld = 2, ad = [], od = 0, ud = 0, id = 0, sd = 1, cd = 2, dd = 3, fd2 = false, pd = false, md = null, hd = false, gd = d3(null), yd = d3(0), bd = d3(null), vd = null, Sd = 1, kd = 2, wd = d3(0), zd = 0, xd = 1, Ed = 2, Cd = 4, Pd = 8, _d = /* @__PURE__ */ new Set(), Td = /* @__PURE__ */ new Set(), Rd = /* @__PURE__ */ new Set(), Nd = /* @__PURE__ */ new Set(), Ld = 0, Ud = null, Dd = null, Id = null, Fd = false, jd = false, Ad = false, Hd = 0, Od = 0, Md = null, Wd = 0, Qd = 25, Bd = null, $d = null, Vd = -1, qd = false, Yd = { readContext: he, use: it, useCallback: Jn, useContext: Jn, useEffect: Jn, useImperativeHandle: Jn, useLayoutEffect: Jn, useInsertionEffect: Jn, useMemo: Jn, useReducer: Jn, useRef: Jn, useState: Jn, useDebugValue: Jn, useDeferredValue: Jn, useTransition: Jn, useSyncExternalStore: Jn, useId: Jn, useHostTransitionStatus: Jn, useFormState: Jn, useActionState: Jn, useOptimistic: Jn, useMemoCache: Jn, useCacheRefresh: Jn };
    Yd.useEffectEvent = Jn;
    var Gd = null, Jd = null, Kd = null, Xd = null, Zd = null, ef = null, nf = null;
    Gd = { readContext: function(e4) {
      return he(e4);
    }, use: it, useCallback: function(e4, n8) {
      return Bd = "useCallback", Vn(), Yn(n8), Kt(e4, n8);
    }, useContext: function(e4) {
      return Bd = "useContext", Vn(), he(e4);
    }, useEffect: function(e4, n8) {
      return Bd = "useEffect", Vn(), Yn(n8), Bt(e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return Bd = "useImperativeHandle", Vn(), Yn(t5), Gt(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      Bd = "useInsertionEffect", Vn(), Yn(n8), Wt(4, Ed, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return Bd = "useLayoutEffect", Vn(), Yn(n8), qt(e4, n8);
    }, useMemo: function(e4, n8) {
      Bd = "useMemo", Vn(), Yn(n8);
      var t5 = Do.H;
      Do.H = Zd;
      try {
        return Zt(e4, n8);
      } finally {
        Do.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      Bd = "useReducer", Vn();
      var r5 = Do.H;
      Do.H = Zd;
      try {
        return dt(e4, n8, t5);
      } finally {
        Do.H = r5;
      }
    }, useRef: function(e4) {
      return Bd = "useRef", Vn(), Mt(e4);
    }, useState: function(e4) {
      Bd = "useState", Vn();
      var n8 = Do.H;
      Do.H = Zd;
      try {
        return zt(e4);
      } finally {
        Do.H = n8;
      }
    }, useDebugValue: function() {
      Bd = "useDebugValue", Vn();
    }, useDeferredValue: function(e4, n8) {
      return Bd = "useDeferredValue", Vn(), nr(e4, n8);
    }, useTransition: function() {
      return Bd = "useTransition", Vn(), ir();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return Bd = "useSyncExternalStore", Vn(), ht(e4, n8, t5);
    }, useId: function() {
      return Bd = "useId", Vn(), fr();
    }, useFormState: function(e4, n8) {
      return Bd = "useFormState", Vn(), Gn(), It(e4, n8);
    }, useActionState: function(e4, n8) {
      return Bd = "useActionState", Vn(), It(e4, n8);
    }, useOptimistic: function(e4) {
      return Bd = "useOptimistic", Vn(), xt(e4);
    }, useHostTransitionStatus: dr, useMemoCache: st, useCacheRefresh: function() {
      return Bd = "useCacheRefresh", Vn(), pr();
    }, useEffectEvent: function(e4) {
      return Bd = "useEffectEvent", Vn(), $t(e4);
    } }, Jd = { readContext: function(e4) {
      return he(e4);
    }, use: it, useCallback: function(e4, n8) {
      return Bd = "useCallback", qn(), Kt(e4, n8);
    }, useContext: function(e4) {
      return Bd = "useContext", qn(), he(e4);
    }, useEffect: function(e4, n8) {
      return Bd = "useEffect", qn(), Bt(e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return Bd = "useImperativeHandle", qn(), Gt(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      Bd = "useInsertionEffect", qn(), Wt(4, Ed, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return Bd = "useLayoutEffect", qn(), qt(e4, n8);
    }, useMemo: function(e4, n8) {
      Bd = "useMemo", qn();
      var t5 = Do.H;
      Do.H = Zd;
      try {
        return Zt(e4, n8);
      } finally {
        Do.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      Bd = "useReducer", qn();
      var r5 = Do.H;
      Do.H = Zd;
      try {
        return dt(e4, n8, t5);
      } finally {
        Do.H = r5;
      }
    }, useRef: function(e4) {
      return Bd = "useRef", qn(), Mt(e4);
    }, useState: function(e4) {
      Bd = "useState", qn();
      var n8 = Do.H;
      Do.H = Zd;
      try {
        return zt(e4);
      } finally {
        Do.H = n8;
      }
    }, useDebugValue: function() {
      Bd = "useDebugValue", qn();
    }, useDeferredValue: function(e4, n8) {
      return Bd = "useDeferredValue", qn(), nr(e4, n8);
    }, useTransition: function() {
      return Bd = "useTransition", qn(), ir();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return Bd = "useSyncExternalStore", qn(), ht(e4, n8, t5);
    }, useId: function() {
      return Bd = "useId", qn(), fr();
    }, useActionState: function(e4, n8) {
      return Bd = "useActionState", qn(), It(e4, n8);
    }, useFormState: function(e4, n8) {
      return Bd = "useFormState", qn(), Gn(), It(e4, n8);
    }, useOptimistic: function(e4) {
      return Bd = "useOptimistic", qn(), xt(e4);
    }, useHostTransitionStatus: dr, useMemoCache: st, useCacheRefresh: function() {
      return Bd = "useCacheRefresh", qn(), pr();
    }, useEffectEvent: function(e4) {
      return Bd = "useEffectEvent", qn(), $t(e4);
    } }, Kd = { readContext: function(e4) {
      return he(e4);
    }, use: it, useCallback: function(e4, n8) {
      return Bd = "useCallback", qn(), Xt(e4, n8);
    }, useContext: function(e4) {
      return Bd = "useContext", qn(), he(e4);
    }, useEffect: function(e4, n8) {
      Bd = "useEffect", qn(), Qt(2048, Pd, e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return Bd = "useImperativeHandle", qn(), Jt(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      return Bd = "useInsertionEffect", qn(), Qt(4, Ed, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return Bd = "useLayoutEffect", qn(), Qt(4, Cd, e4, n8);
    }, useMemo: function(e4, n8) {
      Bd = "useMemo", qn();
      var t5 = Do.H;
      Do.H = ef;
      try {
        return er(e4, n8);
      } finally {
        Do.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      Bd = "useReducer", qn();
      var r5 = Do.H;
      Do.H = ef;
      try {
        return ft(e4);
      } finally {
        Do.H = r5;
      }
    }, useRef: function() {
      return Bd = "useRef", qn(), ot().memoizedState;
    }, useState: function() {
      Bd = "useState", qn();
      var e4 = Do.H;
      Do.H = ef;
      try {
        return ft(ct);
      } finally {
        Do.H = e4;
      }
    }, useDebugValue: function() {
      Bd = "useDebugValue", qn();
    }, useDeferredValue: function(e4, n8) {
      return Bd = "useDeferredValue", qn(), tr(e4, n8);
    }, useTransition: function() {
      return Bd = "useTransition", qn(), sr();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return Bd = "useSyncExternalStore", qn(), gt(e4, n8, t5);
    }, useId: function() {
      return Bd = "useId", qn(), ot().memoizedState;
    }, useFormState: function(e4) {
      return Bd = "useFormState", qn(), Gn(), Ft(e4);
    }, useActionState: function(e4) {
      return Bd = "useActionState", qn(), Ft(e4);
    }, useOptimistic: function(e4, n8) {
      return Bd = "useOptimistic", qn(), Et(e4, n8);
    }, useHostTransitionStatus: dr, useMemoCache: st, useCacheRefresh: function() {
      return Bd = "useCacheRefresh", qn(), ot().memoizedState;
    }, useEffectEvent: function(e4) {
      return Bd = "useEffectEvent", qn(), Vt(e4);
    } }, Xd = { readContext: function(e4) {
      return he(e4);
    }, use: it, useCallback: function(e4, n8) {
      return Bd = "useCallback", qn(), Xt(e4, n8);
    }, useContext: function(e4) {
      return Bd = "useContext", qn(), he(e4);
    }, useEffect: function(e4, n8) {
      Bd = "useEffect", qn(), Qt(2048, Pd, e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return Bd = "useImperativeHandle", qn(), Jt(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      return Bd = "useInsertionEffect", qn(), Qt(4, Ed, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return Bd = "useLayoutEffect", qn(), Qt(4, Cd, e4, n8);
    }, useMemo: function(e4, n8) {
      Bd = "useMemo", qn();
      var t5 = Do.H;
      Do.H = nf;
      try {
        return er(e4, n8);
      } finally {
        Do.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      Bd = "useReducer", qn();
      var r5 = Do.H;
      Do.H = nf;
      try {
        return mt(e4);
      } finally {
        Do.H = r5;
      }
    }, useRef: function() {
      return Bd = "useRef", qn(), ot().memoizedState;
    }, useState: function() {
      Bd = "useState", qn();
      var e4 = Do.H;
      Do.H = nf;
      try {
        return mt(ct);
      } finally {
        Do.H = e4;
      }
    }, useDebugValue: function() {
      Bd = "useDebugValue", qn();
    }, useDeferredValue: function(e4, n8) {
      return Bd = "useDeferredValue", qn(), rr(e4, n8);
    }, useTransition: function() {
      return Bd = "useTransition", qn(), cr();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return Bd = "useSyncExternalStore", qn(), gt(e4, n8, t5);
    }, useId: function() {
      return Bd = "useId", qn(), ot().memoizedState;
    }, useFormState: function(e4) {
      return Bd = "useFormState", qn(), Gn(), Ht(e4);
    }, useActionState: function(e4) {
      return Bd = "useActionState", qn(), Ht(e4);
    }, useOptimistic: function(e4, n8) {
      return Bd = "useOptimistic", qn(), Pt(e4, n8);
    }, useHostTransitionStatus: dr, useMemoCache: st, useCacheRefresh: function() {
      return Bd = "useCacheRefresh", qn(), ot().memoizedState;
    }, useEffectEvent: function(e4) {
      return Bd = "useEffectEvent", qn(), Vt(e4);
    } }, Zd = { readContext: function(e4) {
      return l4(), he(e4);
    }, use: function(e4) {
      return r4(), it(e4);
    }, useCallback: function(e4, n8) {
      return Bd = "useCallback", r4(), Vn(), Kt(e4, n8);
    }, useContext: function(e4) {
      return Bd = "useContext", r4(), Vn(), he(e4);
    }, useEffect: function(e4, n8) {
      return Bd = "useEffect", r4(), Vn(), Bt(e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return Bd = "useImperativeHandle", r4(), Vn(), Gt(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      Bd = "useInsertionEffect", r4(), Vn(), Wt(4, Ed, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return Bd = "useLayoutEffect", r4(), Vn(), qt(e4, n8);
    }, useMemo: function(e4, n8) {
      Bd = "useMemo", r4(), Vn();
      var t5 = Do.H;
      Do.H = Zd;
      try {
        return Zt(e4, n8);
      } finally {
        Do.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      Bd = "useReducer", r4(), Vn();
      var l5 = Do.H;
      Do.H = Zd;
      try {
        return dt(e4, n8, t5);
      } finally {
        Do.H = l5;
      }
    }, useRef: function(e4) {
      return Bd = "useRef", r4(), Vn(), Mt(e4);
    }, useState: function(e4) {
      Bd = "useState", r4(), Vn();
      var n8 = Do.H;
      Do.H = Zd;
      try {
        return zt(e4);
      } finally {
        Do.H = n8;
      }
    }, useDebugValue: function() {
      Bd = "useDebugValue", r4(), Vn();
    }, useDeferredValue: function(e4, n8) {
      return Bd = "useDeferredValue", r4(), Vn(), nr(e4, n8);
    }, useTransition: function() {
      return Bd = "useTransition", r4(), Vn(), ir();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return Bd = "useSyncExternalStore", r4(), Vn(), ht(e4, n8, t5);
    }, useId: function() {
      return Bd = "useId", r4(), Vn(), fr();
    }, useFormState: function(e4, n8) {
      return Bd = "useFormState", r4(), Vn(), It(e4, n8);
    }, useActionState: function(e4, n8) {
      return Bd = "useActionState", r4(), Vn(), It(e4, n8);
    }, useOptimistic: function(e4) {
      return Bd = "useOptimistic", r4(), Vn(), xt(e4);
    }, useMemoCache: function(e4) {
      return r4(), st(e4);
    }, useHostTransitionStatus: dr, useCacheRefresh: function() {
      return Bd = "useCacheRefresh", Vn(), pr();
    }, useEffectEvent: function(e4) {
      return Bd = "useEffectEvent", r4(), Vn(), $t(e4);
    } }, ef = { readContext: function(e4) {
      return l4(), he(e4);
    }, use: function(e4) {
      return r4(), it(e4);
    }, useCallback: function(e4, n8) {
      return Bd = "useCallback", r4(), qn(), Xt(e4, n8);
    }, useContext: function(e4) {
      return Bd = "useContext", r4(), qn(), he(e4);
    }, useEffect: function(e4, n8) {
      Bd = "useEffect", r4(), qn(), Qt(2048, Pd, e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return Bd = "useImperativeHandle", r4(), qn(), Jt(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      return Bd = "useInsertionEffect", r4(), qn(), Qt(4, Ed, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return Bd = "useLayoutEffect", r4(), qn(), Qt(4, Cd, e4, n8);
    }, useMemo: function(e4, n8) {
      Bd = "useMemo", r4(), qn();
      var t5 = Do.H;
      Do.H = ef;
      try {
        return er(e4, n8);
      } finally {
        Do.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      Bd = "useReducer", r4(), qn();
      var l5 = Do.H;
      Do.H = ef;
      try {
        return ft(e4);
      } finally {
        Do.H = l5;
      }
    }, useRef: function() {
      return Bd = "useRef", r4(), qn(), ot().memoizedState;
    }, useState: function() {
      Bd = "useState", r4(), qn();
      var e4 = Do.H;
      Do.H = ef;
      try {
        return ft(ct);
      } finally {
        Do.H = e4;
      }
    }, useDebugValue: function() {
      Bd = "useDebugValue", r4(), qn();
    }, useDeferredValue: function(e4, n8) {
      return Bd = "useDeferredValue", r4(), qn(), tr(e4, n8);
    }, useTransition: function() {
      return Bd = "useTransition", r4(), qn(), sr();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return Bd = "useSyncExternalStore", r4(), qn(), gt(e4, n8, t5);
    }, useId: function() {
      return Bd = "useId", r4(), qn(), ot().memoizedState;
    }, useFormState: function(e4) {
      return Bd = "useFormState", r4(), qn(), Ft(e4);
    }, useActionState: function(e4) {
      return Bd = "useActionState", r4(), qn(), Ft(e4);
    }, useOptimistic: function(e4, n8) {
      return Bd = "useOptimistic", r4(), qn(), Et(e4, n8);
    }, useMemoCache: function(e4) {
      return r4(), st(e4);
    }, useHostTransitionStatus: dr, useCacheRefresh: function() {
      return Bd = "useCacheRefresh", qn(), ot().memoizedState;
    }, useEffectEvent: function(e4) {
      return Bd = "useEffectEvent", r4(), qn(), Vt(e4);
    } }, nf = { readContext: function(e4) {
      return l4(), he(e4);
    }, use: function(e4) {
      return r4(), it(e4);
    }, useCallback: function(e4, n8) {
      return Bd = "useCallback", r4(), qn(), Xt(e4, n8);
    }, useContext: function(e4) {
      return Bd = "useContext", r4(), qn(), he(e4);
    }, useEffect: function(e4, n8) {
      Bd = "useEffect", r4(), qn(), Qt(2048, Pd, e4, n8);
    }, useImperativeHandle: function(e4, n8, t5) {
      return Bd = "useImperativeHandle", r4(), qn(), Jt(e4, n8, t5);
    }, useInsertionEffect: function(e4, n8) {
      return Bd = "useInsertionEffect", r4(), qn(), Qt(4, Ed, e4, n8);
    }, useLayoutEffect: function(e4, n8) {
      return Bd = "useLayoutEffect", r4(), qn(), Qt(4, Cd, e4, n8);
    }, useMemo: function(e4, n8) {
      Bd = "useMemo", r4(), qn();
      var t5 = Do.H;
      Do.H = ef;
      try {
        return er(e4, n8);
      } finally {
        Do.H = t5;
      }
    }, useReducer: function(e4, n8, t5) {
      Bd = "useReducer", r4(), qn();
      var l5 = Do.H;
      Do.H = ef;
      try {
        return mt(e4);
      } finally {
        Do.H = l5;
      }
    }, useRef: function() {
      return Bd = "useRef", r4(), qn(), ot().memoizedState;
    }, useState: function() {
      Bd = "useState", r4(), qn();
      var e4 = Do.H;
      Do.H = ef;
      try {
        return mt(ct);
      } finally {
        Do.H = e4;
      }
    }, useDebugValue: function() {
      Bd = "useDebugValue", r4(), qn();
    }, useDeferredValue: function(e4, n8) {
      return Bd = "useDeferredValue", r4(), qn(), rr(e4, n8);
    }, useTransition: function() {
      return Bd = "useTransition", r4(), qn(), cr();
    }, useSyncExternalStore: function(e4, n8, t5) {
      return Bd = "useSyncExternalStore", r4(), qn(), gt(e4, n8, t5);
    }, useId: function() {
      return Bd = "useId", r4(), qn(), ot().memoizedState;
    }, useFormState: function(e4) {
      return Bd = "useFormState", r4(), qn(), Ht(e4);
    }, useActionState: function(e4) {
      return Bd = "useActionState", r4(), qn(), Ht(e4);
    }, useOptimistic: function(e4, n8) {
      return Bd = "useOptimistic", r4(), qn(), Pt(e4, n8);
    }, useMemoCache: function(e4) {
      return r4(), st(e4);
    }, useHostTransitionStatus: dr, useCacheRefresh: function() {
      return Bd = "useCacheRefresh", qn(), ot().memoizedState;
    }, useEffectEvent: function(e4) {
      return Bd = "useEffectEvent", r4(), qn(), Vt(e4);
    } };
    var tf = {}, rf = /* @__PURE__ */ new Set(), lf = /* @__PURE__ */ new Set(), af = /* @__PURE__ */ new Set(), of = /* @__PURE__ */ new Set(), uf = /* @__PURE__ */ new Set(), sf = /* @__PURE__ */ new Set(), cf = /* @__PURE__ */ new Set(), df = /* @__PURE__ */ new Set(), ff = /* @__PURE__ */ new Set(), pf = /* @__PURE__ */ new Set();
    Object.freeze(tf);
    var mf = { enqueueSetState: function(e4, n8, t5) {
      var r5 = da(e4 = e4._reactInternals), l5 = _n(r5);
      l5.payload = n8, null != t5 && (wr(t5), l5.callback = t5), null !== (n8 = Tn(e4, l5, r5)) && (ke(r5, "this.setState()", e4), pa(n8, e4, r5), Rn(n8, e4, r5));
    }, enqueueReplaceState: function(e4, n8, t5) {
      var r5 = da(e4 = e4._reactInternals), l5 = _n(r5);
      l5.tag = sd, l5.payload = n8, null != t5 && (wr(t5), l5.callback = t5), null !== (n8 = Tn(e4, l5, r5)) && (ke(r5, "this.replaceState()", e4), pa(n8, e4, r5), Rn(n8, e4, r5));
    }, enqueueForceUpdate: function(e4, n8) {
      var t5 = da(e4 = e4._reactInternals), r5 = _n(t5);
      r5.tag = cd, null != n8 && (wr(n8), r5.callback = n8), null !== (n8 = Tn(e4, r5, t5)) && (ke(t5, "this.forceUpdate()", e4), pa(n8, e4, t5), Rn(n8, e4, t5));
    } }, hf = Error("This is not a real error. It's an implementation detail of React's selective hydration feature. If this leaks into userspace, it's a bug in React. Please file an issue."), gf = false, yf = {}, bf = {}, vf = {}, Sf = {}, kf = false, wf = {}, zf = {}, xf = { dehydrated: null, treeContext: null, retryLane: 0, hydrationErrors: null }, Ef = false, Cf = null;
    Cf = /* @__PURE__ */ new Set();
    var Pf = false, _f = false, Tf = false, Rf = "function" == typeof WeakSet ? WeakSet : Set, Nf = null, Lf = null, Uf = null, Df = null, If = false, Ff = null, jf = false, Af = 8192, Hf = { getCacheForType: function(e4) {
      var n8 = he(fs7), t5 = n8.data.get(e4);
      return void 0 === t5 && (t5 = e4(), n8.data.set(e4, t5)), t5;
    }, cacheSignal: function() {
      return he(fs7).controller.signal;
    }, getOwner: function() {
      return Xi;
    } };
    if ("function" == typeof Symbol && Symbol.for) {
      var Of = Symbol.for;
      Of("selector.component"), Of("selector.has_pseudo_class"), Of("selector.role"), Of("selector.test_id"), Of("selector.text");
    }
    var Mf = "function" == typeof WeakMap ? WeakMap : Map, Wf = 0, Qf = 2, Bf = 4, $f = 0, Vf = 1, qf = 2, Yf = 3, Gf = 4, Jf = 6, Kf = 5, Xf = Wf, Zf = null, ep = null, np = 0, tp = 0, rp = 1, lp = 2, ap = 3, op = 4, up = 5, ip = 6, sp = 7, cp = 8, dp = 9, fp2 = tp, pp = null, mp = false, hp = false, gp = false, yp = 0, bp = $f, vp = 0, Sp = 0, kp = 0, wp = 0, zp = 0, xp = null, Ep = null, Cp = false, Pp = 0, _p = 0, Tp = 300, Rp = 1 / 0, Np = 500, Lp = null, Up = null, Dp = null, Ip = 0, Fp = 1, jp = 2, Ap = 3, Hp = 0, Op = 1, Mp = 2, Wp = 3, Qp = 4, Bp = 5, $p = 0, Vp = null, qp = null, Yp = 0, Gp = 0, Jp = -0, Kp = null, Xp = null, Zp = null, em = Ip, nm = null, tm = 50, rm = 0, lm = null, am = false, om = false, um = 50, im = 0, sm = null, cm = false, dm = null, fm = false, pm = /* @__PURE__ */ new Set(), mm = false;
    try {
      var hm = Object.preventExtensions({});
      /* @__PURE__ */ new Map([[hm, null]]), /* @__PURE__ */ new Set([hm]);
    } catch (e4) {
      mm = true;
    }
    var gm = false;
    return fo.createContainer = function(e4, n8, r5, l5, a6, o6, u5, i6, s5, c7) {
      return (function(e5, n9, r6, l6, a7, o7, u6, i7, s6, c8, d4, f5) {
        return e5 = new so(e5, n9, r6, u6, s6, c8, d4, f5, null), n9 = 1, true === o7 && (n9 |= 24), o7 = t4(3, null, null, 2 | n9), e5.current = o7, o7.stateNode = e5, ve(n9 = be()), e5.pooledCache = n9, ve(n9), o7.memoizedState = { element: l6, isDehydrated: r6, cache: n9 }, Cn(o7), e5;
      })(e4, n8, false, null, 0, l5, o6, 0, u5, i6, s5, c7);
    }, fo.flushSyncWork = function() {
      return (Xf & (Qf | Bf)) !== Wf || (Me(0), false);
    }, fo.updateContainer = function(e4, n8, t5, r5) {
      var l5 = n8.current, a6 = da(l5);
      return co(l5, a6, e4, n8, t5, r5), a6;
    }, fo.updateContainerSync = function(e4, n8, t5, r5) {
      return co(n8.current, 2, e4, n8, t5, r5), 2;
    }, fo;
  }, n6.exports.default = n6.exports, Object.defineProperty(n6.exports, "__esModule", { value: true }))), c4.exports;
  var n6;
})();
var d2;
var f2 = t2(a3.exports);
var p2 = { exports: {} };
var m2 = {};
var h3;
var g2 = {};
"production" === process.env.NODE_ENV ? p2.exports = (d2 || (d2 = 1, m2.ConcurrentRoot = 1, m2.ContinuousEventPriority = 8, m2.DefaultEventPriority = 32, m2.DiscreteEventPriority = 2, m2.IdleEventPriority = 268435456, m2.LegacyRoot = 0, m2.NoEventPriority = 0), m2) : p2.exports = (h3 || (h3 = 1, "production" !== process.env.NODE_ENV && (g2.ConcurrentRoot = 1, g2.ContinuousEventPriority = 8, g2.DefaultEventPriority = 32, g2.DiscreteEventPriority = 2, g2.IdleEventPriority = 268435456, g2.LegacyRoot = 0, g2.NoEventPriority = 0)), g2);
var y2 = p2.exports;
var b2 = (e4, n6) => {
  const t4 = Object.keys(e4), r4 = Object.keys(n6);
  if (t4.length !== r4.length) return false;
  for (let r5 = 0; r5 < t4.length; r5 += 1) {
    const l4 = t4[r5];
    if ("render" === l4 && !e4[l4] != !n6[l4]) return false;
    if ("children" !== l4 && e4[l4] !== n6[l4]) {
      if ("object" == typeof e4[l4] && "object" == typeof n6[l4] && b2(e4[l4], n6[l4])) continue;
      return false;
    }
    if ("children" === l4 && ("string" == typeof e4[l4] || "string" == typeof n6[l4])) return e4[l4] === n6[l4];
  }
  return true;
};
var v2 = {};
var S2 = console.error;
var k2 = ({ appendChild: e4, appendChildToContainer: n6, commitTextUpdate: t4, commitUpdate: r4, createInstance: l4, createTextInstance: a5, insertBefore: o5, removeChild: u5, removeChildFromContainer: i5, resetAfterCommit: s4 }) => {
  const c6 = f2({ appendChild: e4, appendChildToContainer: n6, appendInitialChild: e4, createInstance: l4, createTextInstance: a5, insertBefore: o5, commitUpdate: (e5, n7, t5, l5) => {
    b2(t5, l5) || r4(e5, null, n7, t5, l5);
  }, commitTextUpdate: t4, removeChild: u5, removeChildFromContainer: i5, resetAfterCommit: s4, noTimeout: -1, shouldSetTextContent: () => false, finalizeInitialChildren: () => false, getPublicInstance: (e5) => e5, getRootHostContext: () => v2, getChildHostContext: () => v2, prepareForCommit() {
  }, clearContainer() {
  }, resetTextContent() {
  }, getCurrentUpdatePriority: () => y2.DefaultEventPriority, maySuspendCommit: () => false, requestPostPaintCallback: () => {
  }, resolveUpdatePriority: () => y2.DefaultEventPriority, setCurrentUpdatePriority: () => {
  }, shouldAttemptEagerTransition: () => false, detachDeletedInstance: () => {
  }, resolveEventTimeStamp: () => {
  }, resolveEventType: () => {
  }, trackSchedulerEvent: () => {
  } });
  return { createContainer: (e5) => c6.createContainer(e5, y2.ConcurrentRoot, null, false, null, "", S2, S2, S2, (() => {
  }), null), updateContainer: (e5, n7, t5, r5) => {
    c6.updateContainerSync(e5, n7, t5, r5), c6.flushSyncWork();
  } };
};

// ../../node_modules/.pnpm/@react-pdf+reconciler@2.0.0_react@19.2.4/node_modules/@react-pdf/reconciler/lib/reconciler-23.js
var import_object_assign = __toESM(require_object_assign(), 1);
var import_react3 = __toESM(require_react(), 1);
var n4 = __toESM(require_scheduler(), 1);
function r3(e4) {
  return e4 && e4.__esModule && Object.prototype.hasOwnProperty.call(e4, "default") ? e4.default : e4;
}
function l3(e4) {
  if (e4.__esModule) return e4;
  var t4 = e4.default;
  if ("function" == typeof t4) {
    var n6 = function e5() {
      return this instanceof e5 ? Reflect.construct(t4, arguments, this.constructor) : t4.apply(this, arguments);
    };
    n6.prototype = t4.prototype;
  } else n6 = {};
  return Object.defineProperty(n6, "__esModule", { value: true }), Object.keys(e4).forEach((function(t5) {
    var r4 = Object.getOwnPropertyDescriptor(e4, t5);
    Object.defineProperty(n6, t5, r4.get ? r4 : { enumerable: true, get: function() {
      return e4[t5];
    } });
  })), n6;
}
var i4;
var a4 = { exports: {} };
var u4 = l3(n4);
/** @license React v0.23.0
 * react-reconciler.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
(i4 = a4).exports = function n5(r4) {
  var l4 = import_object_assign.default, a5 = import_react3.default, o5 = u4;
  function f4(e4) {
    for (var t4 = "https://reactjs.org/docs/error-decoder.html?invariant=" + e4, n6 = 1; n6 < arguments.length; n6++) t4 += "&args[]=" + encodeURIComponent(arguments[n6]);
    return "Minified React error #" + e4 + "; visit " + t4 + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
  }
  var c6 = a5.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
  c6.hasOwnProperty("ReactCurrentDispatcher") || (c6.ReactCurrentDispatcher = { current: null }), c6.hasOwnProperty("ReactCurrentBatchConfig") || (c6.ReactCurrentBatchConfig = { suspense: null });
  var s4 = "function" == typeof Symbol && Symbol.for, d3 = s4 ? Symbol.for("react.element") : 60103, p3 = s4 ? Symbol.for("react.portal") : 60106, m3 = s4 ? Symbol.for("react.fragment") : 60107, h4 = s4 ? Symbol.for("react.strict_mode") : 60108, g3 = s4 ? Symbol.for("react.profiler") : 60114, b3 = s4 ? Symbol.for("react.provider") : 60109, y3 = s4 ? Symbol.for("react.context") : 60110, v3 = s4 ? Symbol.for("react.concurrent_mode") : 60111, T = s4 ? Symbol.for("react.forward_ref") : 60112, x = s4 ? Symbol.for("react.suspense") : 60113, E = s4 ? Symbol.for("react.suspense_list") : 60120, k3 = s4 ? Symbol.for("react.memo") : 60115, S3 = s4 ? Symbol.for("react.lazy") : 60116, C = "function" == typeof Symbol && Symbol.iterator;
  function w(e4) {
    return null === e4 || "object" != typeof e4 ? null : "function" == typeof (e4 = C && e4[C] || e4["@@iterator"]) ? e4 : null;
  }
  function z(e4) {
    if (null == e4) return null;
    if ("function" == typeof e4) return e4.displayName || e4.name || null;
    if ("string" == typeof e4) return e4;
    switch (e4) {
      case m3:
        return "Fragment";
      case p3:
        return "Portal";
      case g3:
        return "Profiler";
      case h4:
        return "StrictMode";
      case x:
        return "Suspense";
      case E:
        return "SuspenseList";
    }
    if ("object" == typeof e4) switch (e4.$$typeof) {
      case y3:
        return "Context.Consumer";
      case b3:
        return "Context.Provider";
      case T:
        var t4 = e4.render;
        return t4 = t4.displayName || t4.name || "", e4.displayName || ("" !== t4 ? "ForwardRef(" + t4 + ")" : "ForwardRef");
      case k3:
        return z(e4.type);
      case S3:
        if (e4 = 1 === e4._status ? e4._result : null) return z(e4);
    }
    return null;
  }
  function P(e4) {
    var t4 = e4, n6 = e4;
    if (e4.alternate) for (; t4.return; ) t4 = t4.return;
    else {
      e4 = t4;
      do {
        0 != (1026 & (t4 = e4).effectTag) && (n6 = t4.return), e4 = t4.return;
      } while (e4);
    }
    return 3 === t4.tag ? n6 : null;
  }
  function _(e4) {
    if (P(e4) !== e4) throw Error(f4(188));
  }
  function N(e4) {
    var t4 = e4.alternate;
    if (!t4) {
      if (null === (t4 = P(e4))) throw Error(f4(188));
      return t4 !== e4 ? null : e4;
    }
    for (var n6 = e4, r5 = t4; ; ) {
      var l5 = n6.return;
      if (null === l5) break;
      var i5 = l5.alternate;
      if (null === i5) {
        if (null !== (r5 = l5.return)) {
          n6 = r5;
          continue;
        }
        break;
      }
      if (l5.child === i5.child) {
        for (i5 = l5.child; i5; ) {
          if (i5 === n6) return _(l5), e4;
          if (i5 === r5) return _(l5), t4;
          i5 = i5.sibling;
        }
        throw Error(f4(188));
      }
      if (n6.return !== r5.return) n6 = l5, r5 = i5;
      else {
        for (var a6 = false, u5 = l5.child; u5; ) {
          if (u5 === n6) {
            a6 = true, n6 = l5, r5 = i5;
            break;
          }
          if (u5 === r5) {
            a6 = true, r5 = l5, n6 = i5;
            break;
          }
          u5 = u5.sibling;
        }
        if (!a6) {
          for (u5 = i5.child; u5; ) {
            if (u5 === n6) {
              a6 = true, n6 = i5, r5 = l5;
              break;
            }
            if (u5 === r5) {
              a6 = true, r5 = i5, n6 = l5;
              break;
            }
            u5 = u5.sibling;
          }
          if (!a6) throw Error(f4(189));
        }
      }
      if (n6.alternate !== r5) throw Error(f4(190));
    }
    if (3 !== n6.tag) throw Error(f4(188));
    return n6.stateNode.current === n6 ? e4 : t4;
  }
  function U(e4) {
    if (!(e4 = N(e4))) return null;
    for (var t4 = e4; ; ) {
      if (5 === t4.tag || 6 === t4.tag) return t4;
      if (t4.child) t4.child.return = t4, t4 = t4.child;
      else {
        if (t4 === e4) break;
        for (; !t4.sibling; ) {
          if (!t4.return || t4.return === e4) return null;
          t4 = t4.return;
        }
        t4.sibling.return = t4.return, t4 = t4.sibling;
      }
    }
    return null;
  }
  var R = r4.getPublicInstance, I = r4.getRootHostContext, M = r4.getChildHostContext, F = r4.prepareForCommit, Q = r4.resetAfterCommit, D = r4.createInstance, W = r4.appendInitialChild, j = r4.finalizeInitialChildren, O = r4.prepareUpdate, B = r4.shouldSetTextContent, H = r4.createTextInstance, A = null, L = null, $ = r4.noTimeout, q = true, V = null, K = r4.appendChild, G2 = r4.appendChildToContainer, Y = r4.commitTextUpdate, J = null, X = r4.commitUpdate, Z = r4.insertBefore, ee = null, te = r4.removeChild, ne = r4.removeChildFromContainer, re = r4.resetTextContent, le = null, ie = null, ae = null, ue = null, oe = null, fe = null, ce = /^(.*)[\\\/]/;
  function se(e4) {
    var t4 = "";
    do {
      e: switch (e4.tag) {
        case 3:
        case 4:
        case 6:
        case 7:
        case 10:
        case 9:
          var n6 = "";
          break e;
        default:
          var r5 = e4._debugOwner, l5 = e4._debugSource, i5 = z(e4.type);
          n6 = null, r5 && (n6 = z(r5.type)), r5 = i5, i5 = "", l5 ? i5 = " (at " + l5.fileName.replace(ce, "") + ":" + l5.lineNumber + ")" : n6 && (i5 = " (created by " + n6 + ")"), n6 = "\n    in " + (r5 || "Unknown") + i5;
      }
      t4 += n6, e4 = e4.return;
    } while (e4);
    return t4;
  }
  var de = [], pe = -1;
  function me(e4) {
    0 > pe || (e4.current = de[pe], de[pe] = null, pe--);
  }
  function he(e4, t4) {
    pe++, de[pe] = e4.current, e4.current = t4;
  }
  var ge = {}, be = { current: ge }, ye = { current: false }, ve = ge;
  function Te(e4, t4) {
    var n6 = e4.type.contextTypes;
    if (!n6) return ge;
    var r5 = e4.stateNode;
    if (r5 && r5.__reactInternalMemoizedUnmaskedChildContext === t4) return r5.__reactInternalMemoizedMaskedChildContext;
    var l5, i5 = {};
    for (l5 in n6) i5[l5] = t4[l5];
    return r5 && ((e4 = e4.stateNode).__reactInternalMemoizedUnmaskedChildContext = t4, e4.__reactInternalMemoizedMaskedChildContext = i5), i5;
  }
  function xe(e4) {
    return null != (e4 = e4.childContextTypes);
  }
  function Ee(e4) {
    me(ye), me(be);
  }
  function ke(e4) {
    me(ye), me(be);
  }
  function Se(e4, t4, n6) {
    if (be.current !== ge) throw Error(f4(168));
    he(be, t4), he(ye, n6);
  }
  function Ce(e4, t4, n6) {
    var r5 = e4.stateNode;
    if (e4 = t4.childContextTypes, "function" != typeof r5.getChildContext) return n6;
    for (var i5 in r5 = r5.getChildContext()) if (!(i5 in e4)) throw Error(f4(108, z(t4) || "Unknown", i5));
    return l4({}, n6, {}, r5);
  }
  function we(e4) {
    var t4 = e4.stateNode;
    return t4 = t4 && t4.__reactInternalMemoizedMergedChildContext || ge, ve = be.current, he(be, t4), he(ye, ye.current), true;
  }
  function ze(e4, t4, n6) {
    var r5 = e4.stateNode;
    if (!r5) throw Error(f4(169));
    n6 ? (t4 = Ce(e4, t4, ve), r5.__reactInternalMemoizedMergedChildContext = t4, me(ye), me(be), he(be, t4)) : me(ye), he(ye, n6);
  }
  var Pe = o5.unstable_runWithPriority, _e = o5.unstable_scheduleCallback, Ne = o5.unstable_cancelCallback, Ue = o5.unstable_shouldYield, Re = o5.unstable_requestPaint, Ie = o5.unstable_now, Me = o5.unstable_getCurrentPriorityLevel, Fe = o5.unstable_ImmediatePriority, Qe = o5.unstable_UserBlockingPriority, De = o5.unstable_NormalPriority, We = o5.unstable_LowPriority, je = o5.unstable_IdlePriority, Oe = {}, Be = void 0 !== Re ? Re : function() {
  }, He = null, Ae = null, Le = false, $e = Ie(), qe = 1e4 > $e ? Ie : function() {
    return Ie() - $e;
  };
  function Ve() {
    switch (Me()) {
      case Fe:
        return 99;
      case Qe:
        return 98;
      case De:
        return 97;
      case We:
        return 96;
      case je:
        return 95;
      default:
        throw Error(f4(332));
    }
  }
  function Ke(e4) {
    switch (e4) {
      case 99:
        return Fe;
      case 98:
        return Qe;
      case 97:
        return De;
      case 96:
        return We;
      case 95:
        return je;
      default:
        throw Error(f4(332));
    }
  }
  function Ge(e4, t4) {
    return e4 = Ke(e4), Pe(e4, t4);
  }
  function Ye(e4, t4, n6) {
    return e4 = Ke(e4), _e(e4, t4, n6);
  }
  function Je(e4) {
    return null === He ? (He = [e4], Ae = _e(Fe, Ze)) : He.push(e4), Oe;
  }
  function Xe() {
    if (null !== Ae) {
      var e4 = Ae;
      Ae = null, Ne(e4);
    }
    Ze();
  }
  function Ze() {
    if (!Le && null !== He) {
      Le = true;
      var e4 = 0;
      try {
        var t4 = He;
        Ge(99, (function() {
          for (; e4 < t4.length; e4++) {
            var n6 = t4[e4];
            do {
              n6 = n6(true);
            } while (null !== n6);
          }
        })), He = null;
      } catch (t5) {
        throw null !== He && (He = He.slice(e4 + 1)), _e(Fe, Xe), t5;
      } finally {
        Le = false;
      }
    }
  }
  var et2 = 3;
  function tt(e4, t4, n6) {
    return 1073741821 - (1 + ((1073741821 - e4 + t4 / 10) / (n6 /= 10) | 0)) * n6;
  }
  var nt = "function" == typeof Object.is ? Object.is : function(e4, t4) {
    return e4 === t4 && (0 !== e4 || 1 / e4 == 1 / t4) || e4 != e4 && t4 != t4;
  }, rt = Object.prototype.hasOwnProperty;
  function lt(e4, t4) {
    if (nt(e4, t4)) return true;
    if ("object" != typeof e4 || null === e4 || "object" != typeof t4 || null === t4) return false;
    var n6 = Object.keys(e4), r5 = Object.keys(t4);
    if (n6.length !== r5.length) return false;
    for (r5 = 0; r5 < n6.length; r5++) if (!rt.call(t4, n6[r5]) || !nt(e4[n6[r5]], t4[n6[r5]])) return false;
    return true;
  }
  function it(e4, t4) {
    if (e4 && e4.defaultProps) for (var n6 in t4 = l4({}, t4), e4 = e4.defaultProps) void 0 === t4[n6] && (t4[n6] = e4[n6]);
    return t4;
  }
  var at = { current: null }, ut = null, ot = null, ft = null;
  function ct() {
    ft = ot = ut = null;
  }
  function st(e4, t4) {
    var n6 = e4.type._context;
    he(at, n6._currentValue2), n6._currentValue2 = t4;
  }
  function dt(e4) {
    var t4 = at.current;
    me(at), (e4 = e4.type._context)._currentValue2 = t4;
  }
  function pt(e4, t4) {
    for (; null !== e4; ) {
      var n6 = e4.alternate;
      if (e4.childExpirationTime < t4) e4.childExpirationTime = t4, null !== n6 && n6.childExpirationTime < t4 && (n6.childExpirationTime = t4);
      else {
        if (!(null !== n6 && n6.childExpirationTime < t4)) break;
        n6.childExpirationTime = t4;
      }
      e4 = e4.return;
    }
  }
  function mt(e4, t4) {
    ut = e4, ft = ot = null, null !== (e4 = e4.dependencies) && null !== e4.firstContext && (e4.expirationTime >= t4 && (On = true), e4.firstContext = null);
  }
  function ht(e4, t4) {
    if (ft !== e4 && false !== t4 && 0 !== t4) if ("number" == typeof t4 && 1073741823 !== t4 || (ft = e4, t4 = 1073741823), t4 = { context: e4, observedBits: t4, next: null }, null === ot) {
      if (null === ut) throw Error(f4(308));
      ot = t4, ut.dependencies = { expirationTime: 0, firstContext: t4, responders: null };
    } else ot = ot.next = t4;
    return e4._currentValue2;
  }
  var gt = false;
  function bt(e4) {
    return { baseState: e4, firstUpdate: null, lastUpdate: null, firstCapturedUpdate: null, lastCapturedUpdate: null, firstEffect: null, lastEffect: null, firstCapturedEffect: null, lastCapturedEffect: null };
  }
  function yt(e4) {
    return { baseState: e4.baseState, firstUpdate: e4.firstUpdate, lastUpdate: e4.lastUpdate, firstCapturedUpdate: null, lastCapturedUpdate: null, firstEffect: null, lastEffect: null, firstCapturedEffect: null, lastCapturedEffect: null };
  }
  function vt(e4, t4) {
    return { expirationTime: e4, suspenseConfig: t4, tag: 0, payload: null, callback: null, next: null, nextEffect: null };
  }
  function Tt(e4, t4) {
    null === e4.lastUpdate ? e4.firstUpdate = e4.lastUpdate = t4 : (e4.lastUpdate.next = t4, e4.lastUpdate = t4);
  }
  function xt(e4, t4) {
    var n6 = e4.alternate;
    if (null === n6) {
      var r5 = e4.updateQueue, l5 = null;
      null === r5 && (r5 = e4.updateQueue = bt(e4.memoizedState));
    } else r5 = e4.updateQueue, l5 = n6.updateQueue, null === r5 ? null === l5 ? (r5 = e4.updateQueue = bt(e4.memoizedState), l5 = n6.updateQueue = bt(n6.memoizedState)) : r5 = e4.updateQueue = yt(l5) : null === l5 && (l5 = n6.updateQueue = yt(r5));
    null === l5 || r5 === l5 ? Tt(r5, t4) : null === r5.lastUpdate || null === l5.lastUpdate ? (Tt(r5, t4), Tt(l5, t4)) : (Tt(r5, t4), l5.lastUpdate = t4);
  }
  function Et(e4, t4) {
    var n6 = e4.updateQueue;
    null === (n6 = null === n6 ? e4.updateQueue = bt(e4.memoizedState) : kt(e4, n6)).lastCapturedUpdate ? n6.firstCapturedUpdate = n6.lastCapturedUpdate = t4 : (n6.lastCapturedUpdate.next = t4, n6.lastCapturedUpdate = t4);
  }
  function kt(e4, t4) {
    var n6 = e4.alternate;
    return null !== n6 && t4 === n6.updateQueue && (t4 = e4.updateQueue = yt(t4)), t4;
  }
  function St(e4, t4, n6, r5, i5, a6) {
    switch (n6.tag) {
      case 1:
        return "function" == typeof (e4 = n6.payload) ? e4.call(a6, r5, i5) : e4;
      case 3:
        e4.effectTag = -4097 & e4.effectTag | 64;
      case 0:
        if (null == (i5 = "function" == typeof (e4 = n6.payload) ? e4.call(a6, r5, i5) : e4)) break;
        return l4({}, r5, i5);
      case 2:
        gt = true;
    }
    return r5;
  }
  function Ct(e4, t4, n6, r5, l5) {
    gt = false;
    for (var i5 = (t4 = kt(e4, t4)).baseState, a6 = null, u5 = 0, o6 = t4.firstUpdate, f5 = i5; null !== o6; ) {
      var c7 = o6.expirationTime;
      c7 < l5 ? (null === a6 && (a6 = o6, i5 = f5), u5 < c7 && (u5 = c7)) : (El(c7, o6.suspenseConfig), f5 = St(e4, 0, o6, f5, n6, r5), null !== o6.callback && (e4.effectTag |= 32, o6.nextEffect = null, null === t4.lastEffect ? t4.firstEffect = t4.lastEffect = o6 : (t4.lastEffect.nextEffect = o6, t4.lastEffect = o6))), o6 = o6.next;
    }
    for (c7 = null, o6 = t4.firstCapturedUpdate; null !== o6; ) {
      var s5 = o6.expirationTime;
      s5 < l5 ? (null === c7 && (c7 = o6, null === a6 && (i5 = f5)), u5 < s5 && (u5 = s5)) : (f5 = St(e4, 0, o6, f5, n6, r5), null !== o6.callback && (e4.effectTag |= 32, o6.nextEffect = null, null === t4.lastCapturedEffect ? t4.firstCapturedEffect = t4.lastCapturedEffect = o6 : (t4.lastCapturedEffect.nextEffect = o6, t4.lastCapturedEffect = o6))), o6 = o6.next;
    }
    null === a6 && (t4.lastUpdate = null), null === c7 ? t4.lastCapturedUpdate = null : e4.effectTag |= 32, null === a6 && null === c7 && (i5 = f5), t4.baseState = i5, t4.firstUpdate = a6, t4.firstCapturedUpdate = c7, kl(u5), e4.expirationTime = u5, e4.memoizedState = f5;
  }
  function wt(e4, t4, n6) {
    null !== t4.firstCapturedUpdate && (null !== t4.lastUpdate && (t4.lastUpdate.next = t4.firstCapturedUpdate, t4.lastUpdate = t4.lastCapturedUpdate), t4.firstCapturedUpdate = t4.lastCapturedUpdate = null), zt(t4.firstEffect, n6), t4.firstEffect = t4.lastEffect = null, zt(t4.firstCapturedEffect, n6), t4.firstCapturedEffect = t4.lastCapturedEffect = null;
  }
  function zt(e4, t4) {
    for (; null !== e4; ) {
      var n6 = e4.callback;
      if (null !== n6) {
        e4.callback = null;
        var r5 = t4;
        if ("function" != typeof n6) throw Error(f4(191, n6));
        n6.call(r5);
      }
      e4 = e4.nextEffect;
    }
  }
  var Pt = c6.ReactCurrentBatchConfig, _t = new a5.Component().refs;
  function Nt(e4, t4, n6, r5) {
    n6 = null == (n6 = n6(r5, t4 = e4.memoizedState)) ? t4 : l4({}, t4, n6), e4.memoizedState = n6, null !== (r5 = e4.updateQueue) && 0 === e4.expirationTime && (r5.baseState = n6);
  }
  var Ut = { isMounted: function(e4) {
    return !!(e4 = e4._reactInternalFiber) && P(e4) === e4;
  }, enqueueSetState: function(e4, t4, n6) {
    e4 = e4._reactInternalFiber;
    var r5 = cl(), l5 = Pt.suspense;
    (l5 = vt(r5 = sl(r5, e4, l5), l5)).payload = t4, null != n6 && (l5.callback = n6), xt(e4, l5), dl(e4, r5);
  }, enqueueReplaceState: function(e4, t4, n6) {
    e4 = e4._reactInternalFiber;
    var r5 = cl(), l5 = Pt.suspense;
    (l5 = vt(r5 = sl(r5, e4, l5), l5)).tag = 1, l5.payload = t4, null != n6 && (l5.callback = n6), xt(e4, l5), dl(e4, r5);
  }, enqueueForceUpdate: function(e4, t4) {
    e4 = e4._reactInternalFiber;
    var n6 = cl(), r5 = Pt.suspense;
    (r5 = vt(n6 = sl(n6, e4, r5), r5)).tag = 2, null != t4 && (r5.callback = t4), xt(e4, r5), dl(e4, n6);
  } };
  function Rt(e4, t4, n6, r5, l5, i5, a6) {
    return "function" == typeof (e4 = e4.stateNode).shouldComponentUpdate ? e4.shouldComponentUpdate(r5, i5, a6) : !(t4.prototype && t4.prototype.isPureReactComponent && lt(n6, r5) && lt(l5, i5));
  }
  function It(e4, t4, n6) {
    var r5 = false, l5 = ge, i5 = t4.contextType;
    return "object" == typeof i5 && null !== i5 ? i5 = ht(i5) : (l5 = xe(t4) ? ve : be.current, i5 = (r5 = null != (r5 = t4.contextTypes)) ? Te(e4, l5) : ge), t4 = new t4(n6, i5), e4.memoizedState = null !== t4.state && void 0 !== t4.state ? t4.state : null, t4.updater = Ut, e4.stateNode = t4, t4._reactInternalFiber = e4, r5 && ((e4 = e4.stateNode).__reactInternalMemoizedUnmaskedChildContext = l5, e4.__reactInternalMemoizedMaskedChildContext = i5), t4;
  }
  function Mt(e4, t4, n6, r5) {
    e4 = t4.state, "function" == typeof t4.componentWillReceiveProps && t4.componentWillReceiveProps(n6, r5), "function" == typeof t4.UNSAFE_componentWillReceiveProps && t4.UNSAFE_componentWillReceiveProps(n6, r5), t4.state !== e4 && Ut.enqueueReplaceState(t4, t4.state, null);
  }
  function Ft(e4, t4, n6, r5) {
    var l5 = e4.stateNode;
    l5.props = n6, l5.state = e4.memoizedState, l5.refs = _t;
    var i5 = t4.contextType;
    "object" == typeof i5 && null !== i5 ? l5.context = ht(i5) : (i5 = xe(t4) ? ve : be.current, l5.context = Te(e4, i5)), null !== (i5 = e4.updateQueue) && (Ct(e4, i5, n6, l5, r5), l5.state = e4.memoizedState), "function" == typeof (i5 = t4.getDerivedStateFromProps) && (Nt(e4, t4, i5, n6), l5.state = e4.memoizedState), "function" == typeof t4.getDerivedStateFromProps || "function" == typeof l5.getSnapshotBeforeUpdate || "function" != typeof l5.UNSAFE_componentWillMount && "function" != typeof l5.componentWillMount || (t4 = l5.state, "function" == typeof l5.componentWillMount && l5.componentWillMount(), "function" == typeof l5.UNSAFE_componentWillMount && l5.UNSAFE_componentWillMount(), t4 !== l5.state && Ut.enqueueReplaceState(l5, l5.state, null), null !== (i5 = e4.updateQueue) && (Ct(e4, i5, n6, l5, r5), l5.state = e4.memoizedState)), "function" == typeof l5.componentDidMount && (e4.effectTag |= 4);
  }
  var Qt = Array.isArray;
  function Dt(e4, t4, n6) {
    if (null !== (e4 = n6.ref) && "function" != typeof e4 && "object" != typeof e4) {
      if (n6._owner) {
        if (n6 = n6._owner) {
          if (1 !== n6.tag) throw Error(f4(309));
          var r5 = n6.stateNode;
        }
        if (!r5) throw Error(f4(147, e4));
        var l5 = "" + e4;
        return null !== t4 && null !== t4.ref && "function" == typeof t4.ref && t4.ref._stringRef === l5 ? t4.ref : (t4 = function(e5) {
          var t5 = r5.refs;
          t5 === _t && (t5 = r5.refs = {}), null === e5 ? delete t5[l5] : t5[l5] = e5;
        }, t4._stringRef = l5, t4);
      }
      if ("string" != typeof e4) throw Error(f4(284));
      if (!n6._owner) throw Error(f4(290, e4));
    }
    return e4;
  }
  function Wt(e4, t4) {
    if ("textarea" !== e4.type) throw Error(f4(31, "[object Object]" === Object.prototype.toString.call(t4) ? "object with keys {" + Object.keys(t4).join(", ") + "}" : t4, ""));
  }
  function jt(e4) {
    function t4(t5, n7) {
      if (e4) {
        var r6 = t5.lastEffect;
        null !== r6 ? (r6.nextEffect = n7, t5.lastEffect = n7) : t5.firstEffect = t5.lastEffect = n7, n7.nextEffect = null, n7.effectTag = 8;
      }
    }
    function n6(n7, r6) {
      if (!e4) return null;
      for (; null !== r6; ) t4(n7, r6), r6 = r6.sibling;
      return null;
    }
    function r5(e5, t5) {
      for (e5 = /* @__PURE__ */ new Map(); null !== t5; ) null !== t5.key ? e5.set(t5.key, t5) : e5.set(t5.index, t5), t5 = t5.sibling;
      return e5;
    }
    function l5(e5, t5, n7) {
      return (e5 = Al(e5, t5)).index = 0, e5.sibling = null, e5;
    }
    function i5(t5, n7, r6) {
      return t5.index = r6, e4 ? null !== (r6 = t5.alternate) ? (r6 = r6.index) < n7 ? (t5.effectTag = 2, n7) : r6 : (t5.effectTag = 2, n7) : n7;
    }
    function a6(t5) {
      return e4 && null === t5.alternate && (t5.effectTag = 2), t5;
    }
    function u5(e5, t5, n7, r6) {
      return null === t5 || 6 !== t5.tag ? ((t5 = ql(n7, e5.mode, r6)).return = e5, t5) : ((t5 = l5(t5, n7)).return = e5, t5);
    }
    function o6(e5, t5, n7, r6) {
      return null !== t5 && t5.elementType === n7.type ? ((r6 = l5(t5, n7.props)).ref = Dt(e5, t5, n7), r6.return = e5, r6) : ((r6 = Ll(n7.type, n7.key, n7.props, null, e5.mode, r6)).ref = Dt(e5, t5, n7), r6.return = e5, r6);
    }
    function c7(e5, t5, n7, r6) {
      return null === t5 || 4 !== t5.tag || t5.stateNode.containerInfo !== n7.containerInfo || t5.stateNode.implementation !== n7.implementation ? ((t5 = Vl(n7, e5.mode, r6)).return = e5, t5) : ((t5 = l5(t5, n7.children || [])).return = e5, t5);
    }
    function s5(e5, t5, n7, r6, i6) {
      return null === t5 || 7 !== t5.tag ? ((t5 = $l(n7, e5.mode, r6, i6)).return = e5, t5) : ((t5 = l5(t5, n7)).return = e5, t5);
    }
    function h5(e5, t5, n7) {
      if ("string" == typeof t5 || "number" == typeof t5) return (t5 = ql("" + t5, e5.mode, n7)).return = e5, t5;
      if ("object" == typeof t5 && null !== t5) {
        switch (t5.$$typeof) {
          case d3:
            return (n7 = Ll(t5.type, t5.key, t5.props, null, e5.mode, n7)).ref = Dt(e5, null, t5), n7.return = e5, n7;
          case p3:
            return (t5 = Vl(t5, e5.mode, n7)).return = e5, t5;
        }
        if (Qt(t5) || w(t5)) return (t5 = $l(t5, e5.mode, n7, null)).return = e5, t5;
        Wt(e5, t5);
      }
      return null;
    }
    function g4(e5, t5, n7, r6) {
      var l6 = null !== t5 ? t5.key : null;
      if ("string" == typeof n7 || "number" == typeof n7) return null !== l6 ? null : u5(e5, t5, "" + n7, r6);
      if ("object" == typeof n7 && null !== n7) {
        switch (n7.$$typeof) {
          case d3:
            return n7.key === l6 ? n7.type === m3 ? s5(e5, t5, n7.props.children, r6, l6) : o6(e5, t5, n7, r6) : null;
          case p3:
            return n7.key === l6 ? c7(e5, t5, n7, r6) : null;
        }
        if (Qt(n7) || w(n7)) return null !== l6 ? null : s5(e5, t5, n7, r6, null);
        Wt(e5, n7);
      }
      return null;
    }
    function b4(e5, t5, n7, r6, l6) {
      if ("string" == typeof r6 || "number" == typeof r6) return u5(t5, e5 = e5.get(n7) || null, "" + r6, l6);
      if ("object" == typeof r6 && null !== r6) {
        switch (r6.$$typeof) {
          case d3:
            return e5 = e5.get(null === r6.key ? n7 : r6.key) || null, r6.type === m3 ? s5(t5, e5, r6.props.children, l6, r6.key) : o6(t5, e5, r6, l6);
          case p3:
            return c7(t5, e5 = e5.get(null === r6.key ? n7 : r6.key) || null, r6, l6);
        }
        if (Qt(r6) || w(r6)) return s5(t5, e5 = e5.get(n7) || null, r6, l6, null);
        Wt(t5, r6);
      }
      return null;
    }
    function y4(l6, a7, u6, o7) {
      for (var f5 = null, c8 = null, s6 = a7, d4 = a7 = 0, p4 = null; null !== s6 && d4 < u6.length; d4++) {
        s6.index > d4 ? (p4 = s6, s6 = null) : p4 = s6.sibling;
        var m4 = g4(l6, s6, u6[d4], o7);
        if (null === m4) {
          null === s6 && (s6 = p4);
          break;
        }
        e4 && s6 && null === m4.alternate && t4(l6, s6), a7 = i5(m4, a7, d4), null === c8 ? f5 = m4 : c8.sibling = m4, c8 = m4, s6 = p4;
      }
      if (d4 === u6.length) return n6(l6, s6), f5;
      if (null === s6) {
        for (; d4 < u6.length; d4++) null !== (s6 = h5(l6, u6[d4], o7)) && (a7 = i5(s6, a7, d4), null === c8 ? f5 = s6 : c8.sibling = s6, c8 = s6);
        return f5;
      }
      for (s6 = r5(l6, s6); d4 < u6.length; d4++) null !== (p4 = b4(s6, l6, d4, u6[d4], o7)) && (e4 && null !== p4.alternate && s6.delete(null === p4.key ? d4 : p4.key), a7 = i5(p4, a7, d4), null === c8 ? f5 = p4 : c8.sibling = p4, c8 = p4);
      return e4 && s6.forEach((function(e5) {
        return t4(l6, e5);
      })), f5;
    }
    function v4(l6, a7, u6, o7) {
      var c8 = w(u6);
      if ("function" != typeof c8) throw Error(f4(150));
      if (null == (u6 = c8.call(u6))) throw Error(f4(151));
      for (var s6 = c8 = null, d4 = a7, p4 = a7 = 0, m4 = null, y5 = u6.next(); null !== d4 && !y5.done; p4++, y5 = u6.next()) {
        d4.index > p4 ? (m4 = d4, d4 = null) : m4 = d4.sibling;
        var v5 = g4(l6, d4, y5.value, o7);
        if (null === v5) {
          null === d4 && (d4 = m4);
          break;
        }
        e4 && d4 && null === v5.alternate && t4(l6, d4), a7 = i5(v5, a7, p4), null === s6 ? c8 = v5 : s6.sibling = v5, s6 = v5, d4 = m4;
      }
      if (y5.done) return n6(l6, d4), c8;
      if (null === d4) {
        for (; !y5.done; p4++, y5 = u6.next()) null !== (y5 = h5(l6, y5.value, o7)) && (a7 = i5(y5, a7, p4), null === s6 ? c8 = y5 : s6.sibling = y5, s6 = y5);
        return c8;
      }
      for (d4 = r5(l6, d4); !y5.done; p4++, y5 = u6.next()) null !== (y5 = b4(d4, l6, p4, y5.value, o7)) && (e4 && null !== y5.alternate && d4.delete(null === y5.key ? p4 : y5.key), a7 = i5(y5, a7, p4), null === s6 ? c8 = y5 : s6.sibling = y5, s6 = y5);
      return e4 && d4.forEach((function(e5) {
        return t4(l6, e5);
      })), c8;
    }
    return function(e5, r6, i6, u6) {
      var o7 = "object" == typeof i6 && null !== i6 && i6.type === m3 && null === i6.key;
      o7 && (i6 = i6.props.children);
      var c8 = "object" == typeof i6 && null !== i6;
      if (c8) switch (i6.$$typeof) {
        case d3:
          e: {
            for (c8 = i6.key, o7 = r6; null !== o7; ) {
              if (o7.key === c8) {
                if (7 === o7.tag ? i6.type === m3 : o7.elementType === i6.type) {
                  n6(e5, o7.sibling), (r6 = l5(o7, i6.type === m3 ? i6.props.children : i6.props)).ref = Dt(e5, o7, i6), r6.return = e5, e5 = r6;
                  break e;
                }
                n6(e5, o7);
                break;
              }
              t4(e5, o7), o7 = o7.sibling;
            }
            i6.type === m3 ? ((r6 = $l(i6.props.children, e5.mode, u6, i6.key)).return = e5, e5 = r6) : ((u6 = Ll(i6.type, i6.key, i6.props, null, e5.mode, u6)).ref = Dt(e5, r6, i6), u6.return = e5, e5 = u6);
          }
          return a6(e5);
        case p3:
          e: {
            for (o7 = i6.key; null !== r6; ) {
              if (r6.key === o7) {
                if (4 === r6.tag && r6.stateNode.containerInfo === i6.containerInfo && r6.stateNode.implementation === i6.implementation) {
                  n6(e5, r6.sibling), (r6 = l5(r6, i6.children || [])).return = e5, e5 = r6;
                  break e;
                }
                n6(e5, r6);
                break;
              }
              t4(e5, r6), r6 = r6.sibling;
            }
            (r6 = Vl(i6, e5.mode, u6)).return = e5, e5 = r6;
          }
          return a6(e5);
      }
      if ("string" == typeof i6 || "number" == typeof i6) return i6 = "" + i6, null !== r6 && 6 === r6.tag ? (n6(e5, r6.sibling), (r6 = l5(r6, i6)).return = e5, e5 = r6) : (n6(e5, r6), (r6 = ql(i6, e5.mode, u6)).return = e5, e5 = r6), a6(e5);
      if (Qt(i6)) return y4(e5, r6, i6, u6);
      if (w(i6)) return v4(e5, r6, i6, u6);
      if (c8 && Wt(e5, i6), void 0 === i6 && !o7) switch (e5.tag) {
        case 1:
        case 0:
          throw e5 = e5.type, Error(f4(152, e5.displayName || e5.name || "Component"));
      }
      return n6(e5, r6);
    };
  }
  var Ot = jt(true), Bt = jt(false), Ht = {}, At = { current: Ht }, Lt = { current: Ht }, $t = { current: Ht };
  function qt(e4) {
    if (e4 === Ht) throw Error(f4(174));
    return e4;
  }
  function Vt(e4, t4) {
    he($t, t4), he(Lt, e4), he(At, Ht), t4 = I(t4), me(At), he(At, t4);
  }
  function Kt(e4) {
    me(At), me(Lt), me($t);
  }
  function Gt(e4) {
    var t4 = qt($t.current), n6 = qt(At.current);
    n6 !== (t4 = M(n6, e4.type, t4)) && (he(Lt, e4), he(At, t4));
  }
  function Yt(e4) {
    Lt.current === e4 && (me(At), me(Lt));
  }
  var Jt = { current: 0 };
  function Xt(e4) {
    for (var t4 = e4; null !== t4; ) {
      if (13 === t4.tag) {
        var n6 = t4.memoizedState;
        if (null !== n6 && (null === (n6 = n6.dehydrated) || oe(n6) || fe(n6))) return t4;
      } else if (19 === t4.tag && void 0 !== t4.memoizedProps.revealOrder) {
        if (0 != (64 & t4.effectTag)) return t4;
      } else if (null !== t4.child) {
        t4.child.return = t4, t4 = t4.child;
        continue;
      }
      if (t4 === e4) break;
      for (; null === t4.sibling; ) {
        if (null === t4.return || t4.return === e4) return null;
        t4 = t4.return;
      }
      t4.sibling.return = t4.return, t4 = t4.sibling;
    }
    return null;
  }
  function Zt(e4, t4) {
    return { responder: e4, props: t4 };
  }
  var en = c6.ReactCurrentDispatcher, tn = c6.ReactCurrentBatchConfig, nn = 0, rn = null, ln = null, an = null, un = null, on2 = null, fn = null, cn = 0, sn = null, dn = 0, pn = false, mn = null, hn = 0;
  function gn() {
    throw Error(f4(321));
  }
  function bn(e4, t4) {
    if (null === t4) return false;
    for (var n6 = 0; n6 < t4.length && n6 < e4.length; n6++) if (!nt(e4[n6], t4[n6])) return false;
    return true;
  }
  function yn(e4, t4, n6, r5, l5, i5) {
    if (nn = i5, rn = t4, an = null !== e4 ? e4.memoizedState : null, en.current = null === an ? Dn : Wn, t4 = n6(r5, l5), pn) {
      do {
        pn = false, hn += 1, an = null !== e4 ? e4.memoizedState : null, fn = un, sn = on2 = ln = null, en.current = Wn, t4 = n6(r5, l5);
      } while (pn);
      mn = null, hn = 0;
    }
    if (en.current = Qn, (e4 = rn).memoizedState = un, e4.expirationTime = cn, e4.updateQueue = sn, e4.effectTag |= dn, e4 = null !== ln && null !== ln.next, nn = 0, fn = on2 = un = an = ln = rn = null, cn = 0, sn = null, dn = 0, e4) throw Error(f4(300));
    return t4;
  }
  function vn() {
    en.current = Qn, nn = 0, fn = on2 = un = an = ln = rn = null, cn = 0, sn = null, dn = 0, pn = false, mn = null, hn = 0;
  }
  function Tn() {
    var e4 = { memoizedState: null, baseState: null, queue: null, baseUpdate: null, next: null };
    return null === on2 ? un = on2 = e4 : on2 = on2.next = e4, on2;
  }
  function xn() {
    if (null !== fn) fn = (on2 = fn).next, an = null !== (ln = an) ? ln.next : null;
    else {
      if (null === an) throw Error(f4(310));
      var e4 = { memoizedState: (ln = an).memoizedState, baseState: ln.baseState, queue: ln.queue, baseUpdate: ln.baseUpdate, next: null };
      on2 = null === on2 ? un = e4 : on2.next = e4, an = ln.next;
    }
    return on2;
  }
  function En(e4, t4) {
    return "function" == typeof t4 ? t4(e4) : t4;
  }
  function kn(e4) {
    var t4 = xn(), n6 = t4.queue;
    if (null === n6) throw Error(f4(311));
    if (n6.lastRenderedReducer = e4, 0 < hn) {
      var r5 = n6.dispatch;
      if (null !== mn) {
        var l5 = mn.get(n6);
        if (void 0 !== l5) {
          mn.delete(n6);
          var i5 = t4.memoizedState;
          do {
            i5 = e4(i5, l5.action), l5 = l5.next;
          } while (null !== l5);
          return nt(i5, t4.memoizedState) || (On = true), t4.memoizedState = i5, t4.baseUpdate === n6.last && (t4.baseState = i5), n6.lastRenderedState = i5, [i5, r5];
        }
      }
      return [t4.memoizedState, r5];
    }
    r5 = n6.last;
    var a6 = t4.baseUpdate;
    if (i5 = t4.baseState, null !== a6 ? (null !== r5 && (r5.next = null), r5 = a6.next) : r5 = null !== r5 ? r5.next : null, null !== r5) {
      var u5 = l5 = null, o6 = r5, c7 = false;
      do {
        var s5 = o6.expirationTime;
        s5 < nn ? (c7 || (c7 = true, u5 = a6, l5 = i5), s5 > cn && kl(cn = s5)) : (El(s5, o6.suspenseConfig), i5 = o6.eagerReducer === e4 ? o6.eagerState : e4(i5, o6.action)), a6 = o6, o6 = o6.next;
      } while (null !== o6 && o6 !== r5);
      c7 || (u5 = a6, l5 = i5), nt(i5, t4.memoizedState) || (On = true), t4.memoizedState = i5, t4.baseUpdate = u5, t4.baseState = l5, n6.lastRenderedState = i5;
    }
    return [t4.memoizedState, n6.dispatch];
  }
  function Sn(e4) {
    var t4 = Tn();
    return "function" == typeof e4 && (e4 = e4()), t4.memoizedState = t4.baseState = e4, e4 = (e4 = t4.queue = { last: null, dispatch: null, lastRenderedReducer: En, lastRenderedState: e4 }).dispatch = Fn.bind(null, rn, e4), [t4.memoizedState, e4];
  }
  function Cn(e4) {
    return kn(En);
  }
  function wn(e4, t4, n6, r5) {
    return e4 = { tag: e4, create: t4, destroy: n6, deps: r5, next: null }, null === sn ? (sn = { lastEffect: null }).lastEffect = e4.next = e4 : null === (t4 = sn.lastEffect) ? sn.lastEffect = e4.next = e4 : (n6 = t4.next, t4.next = e4, e4.next = n6, sn.lastEffect = e4), e4;
  }
  function zn(e4, t4, n6, r5) {
    var l5 = Tn();
    dn |= e4, l5.memoizedState = wn(t4, n6, void 0, void 0 === r5 ? null : r5);
  }
  function Pn(e4, t4, n6, r5) {
    var l5 = xn();
    r5 = void 0 === r5 ? null : r5;
    var i5 = void 0;
    if (null !== ln) {
      var a6 = ln.memoizedState;
      if (i5 = a6.destroy, null !== r5 && bn(r5, a6.deps)) return void wn(0, n6, i5, r5);
    }
    dn |= e4, l5.memoizedState = wn(t4, n6, i5, r5);
  }
  function _n(e4, t4) {
    return zn(516, 192, e4, t4);
  }
  function Nn(e4, t4) {
    return Pn(516, 192, e4, t4);
  }
  function Un(e4, t4) {
    return "function" == typeof t4 ? (e4 = e4(), t4(e4), function() {
      t4(null);
    }) : null != t4 ? (e4 = e4(), t4.current = e4, function() {
      t4.current = null;
    }) : void 0;
  }
  function Rn() {
  }
  function In(e4, t4) {
    return Tn().memoizedState = [e4, void 0 === t4 ? null : t4], e4;
  }
  function Mn(e4, t4) {
    var n6 = xn();
    t4 = void 0 === t4 ? null : t4;
    var r5 = n6.memoizedState;
    return null !== r5 && null !== t4 && bn(t4, r5[1]) ? r5[0] : (n6.memoizedState = [e4, t4], e4);
  }
  function Fn(e4, t4, n6) {
    if (!(25 > hn)) throw Error(f4(301));
    var r5 = e4.alternate;
    if (e4 === rn || null !== r5 && r5 === rn) if (pn = true, e4 = { expirationTime: nn, suspenseConfig: null, action: n6, eagerReducer: null, eagerState: null, next: null }, null === mn && (mn = /* @__PURE__ */ new Map()), void 0 === (n6 = mn.get(t4))) mn.set(t4, e4);
    else {
      for (t4 = n6; null !== t4.next; ) t4 = t4.next;
      t4.next = e4;
    }
    else {
      var l5 = cl(), i5 = Pt.suspense;
      i5 = { expirationTime: l5 = sl(l5, e4, i5), suspenseConfig: i5, action: n6, eagerReducer: null, eagerState: null, next: null };
      var a6 = t4.last;
      if (null === a6) i5.next = i5;
      else {
        var u5 = a6.next;
        null !== u5 && (i5.next = u5), a6.next = i5;
      }
      if (t4.last = i5, 0 === e4.expirationTime && (null === r5 || 0 === r5.expirationTime) && null !== (r5 = t4.lastRenderedReducer)) try {
        var o6 = t4.lastRenderedState, c7 = r5(o6, n6);
        if (i5.eagerReducer = r5, i5.eagerState = c7, nt(c7, o6)) return;
      } catch (e5) {
      }
      dl(e4, l5);
    }
  }
  var Qn = { readContext: ht, useCallback: gn, useContext: gn, useEffect: gn, useImperativeHandle: gn, useLayoutEffect: gn, useMemo: gn, useReducer: gn, useRef: gn, useState: gn, useDebugValue: gn, useResponder: gn, useDeferredValue: gn, useTransition: gn }, Dn = { readContext: ht, useCallback: In, useContext: ht, useEffect: _n, useImperativeHandle: function(e4, t4, n6) {
    return n6 = null != n6 ? n6.concat([e4]) : null, zn(4, 36, Un.bind(null, t4, e4), n6);
  }, useLayoutEffect: function(e4, t4) {
    return zn(4, 36, e4, t4);
  }, useMemo: function(e4, t4) {
    var n6 = Tn();
    return t4 = void 0 === t4 ? null : t4, e4 = e4(), n6.memoizedState = [e4, t4], e4;
  }, useReducer: function(e4, t4, n6) {
    var r5 = Tn();
    return t4 = void 0 !== n6 ? n6(t4) : t4, r5.memoizedState = r5.baseState = t4, e4 = (e4 = r5.queue = { last: null, dispatch: null, lastRenderedReducer: e4, lastRenderedState: t4 }).dispatch = Fn.bind(null, rn, e4), [r5.memoizedState, e4];
  }, useRef: function(e4) {
    return e4 = { current: e4 }, Tn().memoizedState = e4;
  }, useState: Sn, useDebugValue: Rn, useResponder: Zt, useDeferredValue: function(e4, t4) {
    var n6 = Sn(e4), r5 = n6[0], l5 = n6[1];
    return _n((function() {
      o5.unstable_next((function() {
        var n7 = tn.suspense;
        tn.suspense = void 0 === t4 ? null : t4;
        try {
          l5(e4);
        } finally {
          tn.suspense = n7;
        }
      }));
    }), [e4, t4]), r5;
  }, useTransition: function(e4) {
    var t4 = Sn(false), n6 = t4[0], r5 = t4[1];
    return [In((function(t5) {
      r5(true), o5.unstable_next((function() {
        var n7 = tn.suspense;
        tn.suspense = void 0 === e4 ? null : e4;
        try {
          r5(false), t5();
        } finally {
          tn.suspense = n7;
        }
      }));
    }), [e4, n6]), n6];
  } }, Wn = { readContext: ht, useCallback: Mn, useContext: ht, useEffect: Nn, useImperativeHandle: function(e4, t4, n6) {
    return n6 = null != n6 ? n6.concat([e4]) : null, Pn(4, 36, Un.bind(null, t4, e4), n6);
  }, useLayoutEffect: function(e4, t4) {
    return Pn(4, 36, e4, t4);
  }, useMemo: function(e4, t4) {
    var n6 = xn();
    t4 = void 0 === t4 ? null : t4;
    var r5 = n6.memoizedState;
    return null !== r5 && null !== t4 && bn(t4, r5[1]) ? r5[0] : (e4 = e4(), n6.memoizedState = [e4, t4], e4);
  }, useReducer: kn, useRef: function() {
    return xn().memoizedState;
  }, useState: Cn, useDebugValue: Rn, useResponder: Zt, useDeferredValue: function(e4, t4) {
    var n6 = Cn(), r5 = n6[0], l5 = n6[1];
    return Nn((function() {
      o5.unstable_next((function() {
        var n7 = tn.suspense;
        tn.suspense = void 0 === t4 ? null : t4;
        try {
          l5(e4);
        } finally {
          tn.suspense = n7;
        }
      }));
    }), [e4, t4]), r5;
  }, useTransition: function(e4) {
    var t4 = Cn(), n6 = t4[0], r5 = t4[1];
    return [Mn((function(t5) {
      r5(true), o5.unstable_next((function() {
        var n7 = tn.suspense;
        tn.suspense = void 0 === e4 ? null : e4;
        try {
          r5(false), t5();
        } finally {
          tn.suspense = n7;
        }
      }));
    }), [e4, n6]), n6];
  } }, jn = c6.ReactCurrentOwner, On = false;
  function Bn(e4, t4, n6, r5) {
    t4.child = null === e4 ? Bt(t4, null, n6, r5) : Ot(t4, e4.child, n6, r5);
  }
  function Hn(e4, t4, n6, r5, l5) {
    n6 = n6.render;
    var i5 = t4.ref;
    return mt(t4, l5), r5 = yn(e4, t4, n6, r5, i5, l5), null === e4 || On ? (t4.effectTag |= 1, Bn(e4, t4, r5, l5), t4.child) : (t4.updateQueue = e4.updateQueue, t4.effectTag &= -517, e4.expirationTime <= l5 && (e4.expirationTime = 0), ir(e4, t4, l5));
  }
  function An(e4, t4, n6, r5, l5, i5) {
    if (null === e4) {
      var a6 = n6.type;
      return "function" != typeof a6 || Hl(a6) || void 0 !== a6.defaultProps || null !== n6.compare || void 0 !== n6.defaultProps ? ((e4 = Ll(n6.type, null, r5, null, t4.mode, i5)).ref = t4.ref, e4.return = t4, t4.child = e4) : (t4.tag = 15, t4.type = a6, Ln(e4, t4, a6, r5, l5, i5));
    }
    return a6 = e4.child, l5 < i5 && (l5 = a6.memoizedProps, (n6 = null !== (n6 = n6.compare) ? n6 : lt)(l5, r5) && e4.ref === t4.ref) ? ir(e4, t4, i5) : (t4.effectTag |= 1, (e4 = Al(a6, r5)).ref = t4.ref, e4.return = t4, t4.child = e4);
  }
  function Ln(e4, t4, n6, r5, l5, i5) {
    return null !== e4 && lt(e4.memoizedProps, r5) && e4.ref === t4.ref && (On = false, l5 < i5) ? ir(e4, t4, i5) : qn(e4, t4, n6, r5, i5);
  }
  function $n(e4, t4) {
    var n6 = t4.ref;
    (null === e4 && null !== n6 || null !== e4 && e4.ref !== n6) && (t4.effectTag |= 128);
  }
  function qn(e4, t4, n6, r5, l5) {
    var i5 = xe(n6) ? ve : be.current;
    return i5 = Te(t4, i5), mt(t4, l5), n6 = yn(e4, t4, n6, r5, i5, l5), null === e4 || On ? (t4.effectTag |= 1, Bn(e4, t4, n6, l5), t4.child) : (t4.updateQueue = e4.updateQueue, t4.effectTag &= -517, e4.expirationTime <= l5 && (e4.expirationTime = 0), ir(e4, t4, l5));
  }
  function Vn(e4, t4, n6, r5, l5) {
    if (xe(n6)) {
      var i5 = true;
      we(t4);
    } else i5 = false;
    if (mt(t4, l5), null === t4.stateNode) null !== e4 && (e4.alternate = null, t4.alternate = null, t4.effectTag |= 2), It(t4, n6, r5), Ft(t4, n6, r5, l5), r5 = true;
    else if (null === e4) {
      var a6 = t4.stateNode, u5 = t4.memoizedProps;
      a6.props = u5;
      var o6 = a6.context, f5 = n6.contextType;
      f5 = "object" == typeof f5 && null !== f5 ? ht(f5) : Te(t4, f5 = xe(n6) ? ve : be.current);
      var c7 = n6.getDerivedStateFromProps, s5 = "function" == typeof c7 || "function" == typeof a6.getSnapshotBeforeUpdate;
      s5 || "function" != typeof a6.UNSAFE_componentWillReceiveProps && "function" != typeof a6.componentWillReceiveProps || (u5 !== r5 || o6 !== f5) && Mt(t4, a6, r5, f5), gt = false;
      var d4 = t4.memoizedState;
      o6 = a6.state = d4;
      var p4 = t4.updateQueue;
      null !== p4 && (Ct(t4, p4, r5, a6, l5), o6 = t4.memoizedState), u5 !== r5 || d4 !== o6 || ye.current || gt ? ("function" == typeof c7 && (Nt(t4, n6, c7, r5), o6 = t4.memoizedState), (u5 = gt || Rt(t4, n6, u5, r5, d4, o6, f5)) ? (s5 || "function" != typeof a6.UNSAFE_componentWillMount && "function" != typeof a6.componentWillMount || ("function" == typeof a6.componentWillMount && a6.componentWillMount(), "function" == typeof a6.UNSAFE_componentWillMount && a6.UNSAFE_componentWillMount()), "function" == typeof a6.componentDidMount && (t4.effectTag |= 4)) : ("function" == typeof a6.componentDidMount && (t4.effectTag |= 4), t4.memoizedProps = r5, t4.memoizedState = o6), a6.props = r5, a6.state = o6, a6.context = f5, r5 = u5) : ("function" == typeof a6.componentDidMount && (t4.effectTag |= 4), r5 = false);
    } else a6 = t4.stateNode, u5 = t4.memoizedProps, a6.props = t4.type === t4.elementType ? u5 : it(t4.type, u5), o6 = a6.context, f5 = "object" == typeof (f5 = n6.contextType) && null !== f5 ? ht(f5) : Te(t4, f5 = xe(n6) ? ve : be.current), (s5 = "function" == typeof (c7 = n6.getDerivedStateFromProps) || "function" == typeof a6.getSnapshotBeforeUpdate) || "function" != typeof a6.UNSAFE_componentWillReceiveProps && "function" != typeof a6.componentWillReceiveProps || (u5 !== r5 || o6 !== f5) && Mt(t4, a6, r5, f5), gt = false, o6 = t4.memoizedState, d4 = a6.state = o6, null !== (p4 = t4.updateQueue) && (Ct(t4, p4, r5, a6, l5), d4 = t4.memoizedState), u5 !== r5 || o6 !== d4 || ye.current || gt ? ("function" == typeof c7 && (Nt(t4, n6, c7, r5), d4 = t4.memoizedState), (c7 = gt || Rt(t4, n6, u5, r5, o6, d4, f5)) ? (s5 || "function" != typeof a6.UNSAFE_componentWillUpdate && "function" != typeof a6.componentWillUpdate || ("function" == typeof a6.componentWillUpdate && a6.componentWillUpdate(r5, d4, f5), "function" == typeof a6.UNSAFE_componentWillUpdate && a6.UNSAFE_componentWillUpdate(r5, d4, f5)), "function" == typeof a6.componentDidUpdate && (t4.effectTag |= 4), "function" == typeof a6.getSnapshotBeforeUpdate && (t4.effectTag |= 256)) : ("function" != typeof a6.componentDidUpdate || u5 === e4.memoizedProps && o6 === e4.memoizedState || (t4.effectTag |= 4), "function" != typeof a6.getSnapshotBeforeUpdate || u5 === e4.memoizedProps && o6 === e4.memoizedState || (t4.effectTag |= 256), t4.memoizedProps = r5, t4.memoizedState = d4), a6.props = r5, a6.state = d4, a6.context = f5, r5 = c7) : ("function" != typeof a6.componentDidUpdate || u5 === e4.memoizedProps && o6 === e4.memoizedState || (t4.effectTag |= 4), "function" != typeof a6.getSnapshotBeforeUpdate || u5 === e4.memoizedProps && o6 === e4.memoizedState || (t4.effectTag |= 256), r5 = false);
    return Kn(e4, t4, n6, r5, i5, l5);
  }
  function Kn(e4, t4, n6, r5, l5, i5) {
    $n(e4, t4);
    var a6 = 0 != (64 & t4.effectTag);
    if (!r5 && !a6) return l5 && ze(t4, n6, false), ir(e4, t4, i5);
    r5 = t4.stateNode, jn.current = t4;
    var u5 = a6 && "function" != typeof n6.getDerivedStateFromError ? null : r5.render();
    return t4.effectTag |= 1, null !== e4 && a6 ? (t4.child = Ot(t4, e4.child, null, i5), t4.child = Ot(t4, null, u5, i5)) : Bn(e4, t4, u5, i5), t4.memoizedState = r5.state, l5 && ze(t4, n6, true), t4.child;
  }
  function Gn(e4) {
    var t4 = e4.stateNode;
    t4.pendingContext ? Se(0, t4.pendingContext, t4.pendingContext !== t4.context) : t4.context && Se(0, t4.context, false), Vt(e4, t4.containerInfo);
  }
  var Yn, Jn, Xn, Zn, er = { dehydrated: null, retryTime: 0 };
  function tr(e4, t4, n6) {
    var r5, l5 = t4.mode, i5 = t4.pendingProps, a6 = Jt.current, u5 = false;
    if ((r5 = 0 != (64 & t4.effectTag)) || (r5 = 0 != (2 & a6) && (null === e4 || null !== e4.memoizedState)), r5 ? (u5 = true, t4.effectTag &= -65) : null !== e4 && null === e4.memoizedState || void 0 === i5.fallback || true === i5.unstable_avoidThisFallback || (a6 |= 1), he(Jt, 1 & a6), null === e4) {
      if (i5.fallback, u5) {
        if (u5 = i5.fallback, (i5 = $l(null, l5, 0, null)).return = t4, 0 == (2 & t4.mode)) for (e4 = null !== t4.memoizedState ? t4.child.child : t4.child, i5.child = e4; null !== e4; ) e4.return = i5, e4 = e4.sibling;
        return (n6 = $l(u5, l5, n6, null)).return = t4, i5.sibling = n6, t4.memoizedState = er, t4.child = i5, n6;
      }
      return l5 = i5.children, t4.memoizedState = null, t4.child = Bt(t4, null, l5, n6);
    }
    if (null !== e4.memoizedState) {
      if (l5 = (e4 = e4.child).sibling, u5) {
        if (i5 = i5.fallback, (n6 = Al(e4, e4.pendingProps)).return = t4, 0 == (2 & t4.mode) && (u5 = null !== t4.memoizedState ? t4.child.child : t4.child) !== e4.child) for (n6.child = u5; null !== u5; ) u5.return = n6, u5 = u5.sibling;
        return (l5 = Al(l5, i5, l5.expirationTime)).return = t4, n6.sibling = l5, n6.childExpirationTime = 0, t4.memoizedState = er, t4.child = n6, l5;
      }
      return n6 = Ot(t4, e4.child, i5.children, n6), t4.memoizedState = null, t4.child = n6;
    }
    if (e4 = e4.child, u5) {
      if (u5 = i5.fallback, (i5 = $l(null, l5, 0, null)).return = t4, i5.child = e4, null !== e4 && (e4.return = i5), 0 == (2 & t4.mode)) for (e4 = null !== t4.memoizedState ? t4.child.child : t4.child, i5.child = e4; null !== e4; ) e4.return = i5, e4 = e4.sibling;
      return (n6 = $l(u5, l5, n6, null)).return = t4, i5.sibling = n6, n6.effectTag |= 2, i5.childExpirationTime = 0, t4.memoizedState = er, t4.child = i5, n6;
    }
    return t4.memoizedState = null, t4.child = Ot(t4, e4, i5.children, n6);
  }
  function nr(e4, t4) {
    e4.expirationTime < t4 && (e4.expirationTime = t4);
    var n6 = e4.alternate;
    null !== n6 && n6.expirationTime < t4 && (n6.expirationTime = t4), pt(e4.return, t4);
  }
  function rr(e4, t4, n6, r5, l5, i5) {
    var a6 = e4.memoizedState;
    null === a6 ? e4.memoizedState = { isBackwards: t4, rendering: null, last: r5, tail: n6, tailExpiration: 0, tailMode: l5, lastEffect: i5 } : (a6.isBackwards = t4, a6.rendering = null, a6.last = r5, a6.tail = n6, a6.tailExpiration = 0, a6.tailMode = l5, a6.lastEffect = i5);
  }
  function lr(e4, t4, n6) {
    var r5 = t4.pendingProps, l5 = r5.revealOrder, i5 = r5.tail;
    if (Bn(e4, t4, r5.children, n6), 0 != (2 & (r5 = Jt.current))) r5 = 1 & r5 | 2, t4.effectTag |= 64;
    else {
      if (null !== e4 && 0 != (64 & e4.effectTag)) e: for (e4 = t4.child; null !== e4; ) {
        if (13 === e4.tag) null !== e4.memoizedState && nr(e4, n6);
        else if (19 === e4.tag) nr(e4, n6);
        else if (null !== e4.child) {
          e4.child.return = e4, e4 = e4.child;
          continue;
        }
        if (e4 === t4) break e;
        for (; null === e4.sibling; ) {
          if (null === e4.return || e4.return === t4) break e;
          e4 = e4.return;
        }
        e4.sibling.return = e4.return, e4 = e4.sibling;
      }
      r5 &= 1;
    }
    if (he(Jt, r5), 0 == (2 & t4.mode)) t4.memoizedState = null;
    else switch (l5) {
      case "forwards":
        for (n6 = t4.child, l5 = null; null !== n6; ) null !== (e4 = n6.alternate) && null === Xt(e4) && (l5 = n6), n6 = n6.sibling;
        null === (n6 = l5) ? (l5 = t4.child, t4.child = null) : (l5 = n6.sibling, n6.sibling = null), rr(t4, false, l5, n6, i5, t4.lastEffect);
        break;
      case "backwards":
        for (n6 = null, l5 = t4.child, t4.child = null; null !== l5; ) {
          if (null !== (e4 = l5.alternate) && null === Xt(e4)) {
            t4.child = l5;
            break;
          }
          e4 = l5.sibling, l5.sibling = n6, n6 = l5, l5 = e4;
        }
        rr(t4, true, n6, null, i5, t4.lastEffect);
        break;
      case "together":
        rr(t4, false, null, null, void 0, t4.lastEffect);
        break;
      default:
        t4.memoizedState = null;
    }
    return t4.child;
  }
  function ir(e4, t4, n6) {
    null !== e4 && (t4.dependencies = e4.dependencies);
    var r5 = t4.expirationTime;
    if (0 !== r5 && kl(r5), t4.childExpirationTime < n6) return null;
    if (null !== e4 && t4.child !== e4.child) throw Error(f4(153));
    if (null !== t4.child) {
      for (n6 = Al(e4 = t4.child, e4.pendingProps, e4.expirationTime), t4.child = n6, n6.return = t4; null !== e4.sibling; ) e4 = e4.sibling, (n6 = n6.sibling = Al(e4, e4.pendingProps, e4.expirationTime)).return = t4;
      n6.sibling = null;
    }
    return t4.child;
  }
  function ar(e4) {
    e4.effectTag |= 4;
  }
  function ur(e4, t4) {
    switch (e4.tailMode) {
      case "hidden":
        t4 = e4.tail;
        for (var n6 = null; null !== t4; ) null !== t4.alternate && (n6 = t4), t4 = t4.sibling;
        null === n6 ? e4.tail = null : n6.sibling = null;
        break;
      case "collapsed":
        n6 = e4.tail;
        for (var r5 = null; null !== n6; ) null !== n6.alternate && (r5 = n6), n6 = n6.sibling;
        null === r5 ? t4 || null === e4.tail ? e4.tail = null : e4.tail.sibling = null : r5.sibling = null;
    }
  }
  function or(e4) {
    switch (e4.tag) {
      case 1:
        xe(e4.type) && Ee();
        var t4 = e4.effectTag;
        return 4096 & t4 ? (e4.effectTag = -4097 & t4 | 64, e4) : null;
      case 3:
        if (Kt(), ke(), 0 != (64 & (t4 = e4.effectTag))) throw Error(f4(285));
        return e4.effectTag = -4097 & t4 | 64, e4;
      case 5:
        return Yt(e4), null;
      case 13:
        return me(Jt), 4096 & (t4 = e4.effectTag) ? (e4.effectTag = -4097 & t4 | 64, e4) : null;
      case 19:
        return me(Jt), null;
      case 4:
        return Kt(), null;
      case 10:
        return dt(e4), null;
      default:
        return null;
    }
  }
  function fr(e4, t4) {
    return { value: e4, source: t4, stack: se(t4) };
  }
  Yn = function(e4, t4) {
    for (var n6 = t4.child; null !== n6; ) {
      if (5 === n6.tag || 6 === n6.tag) W(e4, n6.stateNode);
      else if (4 !== n6.tag && null !== n6.child) {
        n6.child.return = n6, n6 = n6.child;
        continue;
      }
      if (n6 === t4) break;
      for (; null === n6.sibling; ) {
        if (null === n6.return || n6.return === t4) return;
        n6 = n6.return;
      }
      n6.sibling.return = n6.return, n6 = n6.sibling;
    }
  }, Jn = function() {
  }, Xn = function(e4, t4, n6, r5, l5) {
    if ((e4 = e4.memoizedProps) !== r5) {
      var i5 = t4.stateNode, a6 = qt(At.current);
      n6 = O(i5, n6, e4, r5, l5, a6), (t4.updateQueue = n6) && ar(t4);
    }
  }, Zn = function(e4, t4, n6, r5) {
    n6 !== r5 && ar(t4);
  };
  var cr = "function" == typeof WeakSet ? WeakSet : Set;
  function sr(e4, t4) {
    var n6 = t4.source, r5 = t4.stack;
    null === r5 && null !== n6 && (r5 = se(n6)), null !== n6 && z(n6.type), t4 = t4.value, null !== e4 && 1 === e4.tag && z(e4.type);
    try {
      console.error(t4);
    } catch (e5) {
      setTimeout((function() {
        throw e5;
      }));
    }
  }
  function dr(e4) {
    var t4 = e4.ref;
    if (null !== t4) if ("function" == typeof t4) try {
      t4(null);
    } catch (t5) {
      Fl(e4, t5);
    }
    else t4.current = null;
  }
  function pr(e4, t4) {
    switch (t4.tag) {
      case 0:
      case 11:
      case 15:
        mr(2, 0, t4);
        break;
      case 1:
        if (256 & t4.effectTag && null !== e4) {
          var n6 = e4.memoizedProps, r5 = e4.memoizedState;
          t4 = (e4 = t4.stateNode).getSnapshotBeforeUpdate(t4.elementType === t4.type ? n6 : it(t4.type, n6), r5), e4.__reactInternalSnapshotBeforeUpdate = t4;
        }
        break;
      case 3:
      case 5:
      case 6:
      case 4:
      case 17:
        break;
      default:
        throw Error(f4(163));
    }
  }
  function mr(e4, t4, n6) {
    if (null !== (n6 = null !== (n6 = n6.updateQueue) ? n6.lastEffect : null)) {
      var r5 = n6 = n6.next;
      do {
        if (0 != (r5.tag & e4)) {
          var l5 = r5.destroy;
          r5.destroy = void 0, void 0 !== l5 && l5();
        }
        0 != (r5.tag & t4) && (l5 = r5.create, r5.destroy = l5()), r5 = r5.next;
      } while (r5 !== n6);
    }
  }
  function hr(e4, t4, n6) {
    switch ("function" == typeof jl && jl(t4), t4.tag) {
      case 0:
      case 11:
      case 14:
      case 15:
        if (null !== (e4 = t4.updateQueue) && null !== (e4 = e4.lastEffect)) {
          var r5 = e4.next;
          Ge(97 < n6 ? 97 : n6, (function() {
            var e5 = r5;
            do {
              var n7 = e5.destroy;
              if (void 0 !== n7) {
                var l5 = t4;
                try {
                  n7();
                } catch (e6) {
                  Fl(l5, e6);
                }
              }
              e5 = e5.next;
            } while (e5 !== r5);
          }));
        }
        break;
      case 1:
        dr(t4), "function" == typeof (n6 = t4.stateNode).componentWillUnmount && (function(e5, t5) {
          try {
            t5.props = e5.memoizedProps, t5.state = e5.memoizedState, t5.componentWillUnmount();
          } catch (t6) {
            Fl(e5, t6);
          }
        })(t4, n6);
        break;
      case 5:
        dr(t4);
        break;
      case 4:
        Tr(e4, t4, n6);
    }
  }
  function gr(e4, t4, n6) {
    for (var r5 = t4; ; ) if (hr(e4, r5, n6), null === r5.child || 4 === r5.tag) {
      if (r5 === t4) break;
      for (; null === r5.sibling; ) {
        if (null === r5.return || r5.return === t4) return;
        r5 = r5.return;
      }
      r5.sibling.return = r5.return, r5 = r5.sibling;
    } else r5.child.return = r5, r5 = r5.child;
  }
  function br(e4) {
    var t4 = e4.alternate;
    e4.return = null, e4.child = null, e4.memoizedState = null, e4.updateQueue = null, e4.dependencies = null, e4.alternate = null, e4.firstEffect = null, e4.lastEffect = null, e4.pendingProps = null, e4.memoizedProps = null, null !== t4 && br(t4);
  }
  function yr(e4) {
    return 5 === e4.tag || 3 === e4.tag || 4 === e4.tag;
  }
  function vr(e4) {
    e: {
      for (var t4 = e4.return; null !== t4; ) {
        if (yr(t4)) {
          var n6 = t4;
          break e;
        }
        t4 = t4.return;
      }
      throw Error(f4(160));
    }
    switch (t4 = n6.stateNode, n6.tag) {
      case 5:
        var r5 = false;
        break;
      case 3:
      case 4:
        t4 = t4.containerInfo, r5 = true;
        break;
      default:
        throw Error(f4(161));
    }
    16 & n6.effectTag && (re(t4), n6.effectTag &= -17);
    e: t: for (n6 = e4; ; ) {
      for (; null === n6.sibling; ) {
        if (null === n6.return || yr(n6.return)) {
          n6 = null;
          break e;
        }
        n6 = n6.return;
      }
      for (n6.sibling.return = n6.return, n6 = n6.sibling; 5 !== n6.tag && 6 !== n6.tag && 18 !== n6.tag; ) {
        if (2 & n6.effectTag) continue t;
        if (null === n6.child || 4 === n6.tag) continue t;
        n6.child.return = n6, n6 = n6.child;
      }
      if (!(2 & n6.effectTag)) {
        n6 = n6.stateNode;
        break e;
      }
    }
    for (var l5 = e4; ; ) {
      var i5 = 5 === l5.tag || 6 === l5.tag;
      if (i5) i5 = i5 ? l5.stateNode : l5.stateNode.instance, n6 ? r5 ? ee(t4, i5, n6) : Z(t4, i5, n6) : r5 ? G2(t4, i5) : K(t4, i5);
      else if (4 !== l5.tag && null !== l5.child) {
        l5.child.return = l5, l5 = l5.child;
        continue;
      }
      if (l5 === e4) break;
      for (; null === l5.sibling; ) {
        if (null === l5.return || l5.return === e4) return;
        l5 = l5.return;
      }
      l5.sibling.return = l5.return, l5 = l5.sibling;
    }
  }
  function Tr(e4, t4, n6) {
    for (var r5, l5, i5 = t4, a6 = false; ; ) {
      if (!a6) {
        a6 = i5.return;
        e: for (; ; ) {
          if (null === a6) throw Error(f4(160));
          switch (r5 = a6.stateNode, a6.tag) {
            case 5:
              l5 = false;
              break e;
            case 3:
            case 4:
              r5 = r5.containerInfo, l5 = true;
              break e;
          }
          a6 = a6.return;
        }
        a6 = true;
      }
      if (5 === i5.tag || 6 === i5.tag) gr(e4, i5, n6), l5 ? ne(r5, i5.stateNode) : te(r5, i5.stateNode);
      else if (4 === i5.tag) {
        if (null !== i5.child) {
          r5 = i5.stateNode.containerInfo, l5 = true, i5.child.return = i5, i5 = i5.child;
          continue;
        }
      } else if (hr(e4, i5, n6), null !== i5.child) {
        i5.child.return = i5, i5 = i5.child;
        continue;
      }
      if (i5 === t4) break;
      for (; null === i5.sibling; ) {
        if (null === i5.return || i5.return === t4) return;
        4 === (i5 = i5.return).tag && (a6 = false);
      }
      i5.sibling.return = i5.return, i5 = i5.sibling;
    }
  }
  function xr(e4, t4) {
    switch (t4.tag) {
      case 0:
      case 11:
      case 14:
      case 15:
        mr(4, 8, t4);
        break;
      case 1:
      case 3:
      case 12:
      case 17:
      case 20:
      case 21:
        break;
      case 5:
        var n6 = t4.stateNode;
        if (null != n6) {
          var r5 = t4.memoizedProps;
          e4 = null !== e4 ? e4.memoizedProps : r5;
          var l5 = t4.type, i5 = t4.updateQueue;
          t4.updateQueue = null, null !== i5 && X(n6, i5, l5, e4, r5, t4);
        }
        break;
      case 6:
        if (null === t4.stateNode) throw Error(f4(162));
        n6 = t4.memoizedProps, Y(t4.stateNode, null !== e4 ? e4.memoizedProps : n6, n6);
        break;
      case 13:
        !(function(e5) {
          var t5 = e5;
          if (null === e5.memoizedState) var n7 = false;
          else n7 = true, t5 = e5.child, Jr = qe();
          if (null !== t5) {
            e: if (e5 = t5, q) for (t5 = e5; ; ) {
              if (5 === t5.tag) {
                var r6 = t5.stateNode;
                n7 ? le(r6) : ae(t5.stateNode, t5.memoizedProps);
              } else if (6 === t5.tag) r6 = t5.stateNode, n7 ? ie(r6) : ue(r6, t5.memoizedProps);
              else {
                if (13 === t5.tag && null !== t5.memoizedState && null === t5.memoizedState.dehydrated) {
                  (r6 = t5.child.sibling).return = t5, t5 = r6;
                  continue;
                }
                if (null !== t5.child) {
                  t5.child.return = t5, t5 = t5.child;
                  continue;
                }
              }
              if (t5 === e5) break e;
              for (; null === t5.sibling; ) {
                if (null === t5.return || t5.return === e5) break e;
                t5 = t5.return;
              }
              t5.sibling.return = t5.return, t5 = t5.sibling;
            }
          }
        })(t4), Er(t4);
        break;
      case 19:
        Er(t4);
        break;
      default:
        throw Error(f4(163));
    }
  }
  function Er(e4) {
    var t4 = e4.updateQueue;
    if (null !== t4) {
      e4.updateQueue = null;
      var n6 = e4.stateNode;
      null === n6 && (n6 = e4.stateNode = new cr()), t4.forEach((function(t5) {
        var r5 = Dl.bind(null, e4, t5);
        n6.has(t5) || (n6.add(t5), t5.then(r5, r5));
      }));
    }
  }
  var kr = "function" == typeof WeakMap ? WeakMap : Map;
  function Sr(e4, t4, n6) {
    (n6 = vt(n6, null)).tag = 3, n6.payload = { element: null };
    var r5 = t4.value;
    return n6.callback = function() {
      el || (el = true, tl = r5), sr(e4, t4);
    }, n6;
  }
  function Cr(e4, t4, n6) {
    (n6 = vt(n6, null)).tag = 3;
    var r5 = e4.type.getDerivedStateFromError;
    if ("function" == typeof r5) {
      var l5 = t4.value;
      n6.payload = function() {
        return sr(e4, t4), r5(l5);
      };
    }
    var i5 = e4.stateNode;
    return null !== i5 && "function" == typeof i5.componentDidCatch && (n6.callback = function() {
      "function" != typeof r5 && (null === nl ? nl = /* @__PURE__ */ new Set([this]) : nl.add(this), sr(e4, t4));
      var n7 = t4.stack;
      this.componentDidCatch(t4.value, { componentStack: null !== n7 ? n7 : "" });
    }), n6;
  }
  var wr, zr = Math.ceil, Pr = c6.ReactCurrentDispatcher, _r = c6.ReactCurrentOwner, Nr = 0, Ur = 8, Rr = 16, Ir = 32, Mr = 0, Fr = 1, Qr = 2, Dr = 3, Wr = 4, jr = 5, Or = Nr, Br = null, Hr = null, Ar = 0, Lr = Mr, $r = null, qr = 1073741823, Vr = 1073741823, Kr = null, Gr = 0, Yr = false, Jr = 0, Xr = 500, Zr = null, el = false, tl = null, nl = null, rl = false, ll = null, il = 90, al = null, ul = 0, ol = null, fl2 = 0;
  function cl() {
    return (Or & (Rr | Ir)) !== Nr ? 1073741821 - (qe() / 10 | 0) : 0 !== fl2 ? fl2 : fl2 = 1073741821 - (qe() / 10 | 0);
  }
  function sl(e4, t4, n6) {
    if (0 == (2 & (t4 = t4.mode))) return 1073741823;
    var r5 = Ve();
    if (0 == (4 & t4)) return 99 === r5 ? 1073741823 : 1073741822;
    if ((Or & Rr) !== Nr) return Ar;
    if (null !== n6) e4 = tt(e4, 0 | n6.timeoutMs || 5e3, 250);
    else switch (r5) {
      case 99:
        e4 = 1073741823;
        break;
      case 98:
        e4 = tt(e4, 150, 100);
        break;
      case 97:
      case 96:
        e4 = tt(e4, 5e3, 250);
        break;
      case 95:
        e4 = 2;
        break;
      default:
        throw Error(f4(326));
    }
    return null !== Br && e4 === Ar && --e4, e4;
  }
  function dl(e4, t4) {
    if (50 < ul) throw ul = 0, ol = null, Error(f4(185));
    if (null !== (e4 = pl(e4, t4))) {
      var n6 = Ve();
      1073741823 === t4 ? (Or & Ur) !== Nr && (Or & (Rr | Ir)) === Nr ? bl(e4) : (hl(e4), Or === Nr && Xe()) : hl(e4), (4 & Or) === Nr || 98 !== n6 && 99 !== n6 || (null === al ? al = /* @__PURE__ */ new Map([[e4, t4]]) : (void 0 === (n6 = al.get(e4)) || n6 > t4) && al.set(e4, t4));
    }
  }
  function pl(e4, t4) {
    e4.expirationTime < t4 && (e4.expirationTime = t4);
    var n6 = e4.alternate;
    null !== n6 && n6.expirationTime < t4 && (n6.expirationTime = t4);
    var r5 = e4.return, l5 = null;
    if (null === r5 && 3 === e4.tag) l5 = e4.stateNode;
    else for (; null !== r5; ) {
      if (n6 = r5.alternate, r5.childExpirationTime < t4 && (r5.childExpirationTime = t4), null !== n6 && n6.childExpirationTime < t4 && (n6.childExpirationTime = t4), null === r5.return && 3 === r5.tag) {
        l5 = r5.stateNode;
        break;
      }
      r5 = r5.return;
    }
    return null !== l5 && (Br === l5 && (kl(t4), Lr === Wr && Yl(l5, Ar)), Jl(l5, t4)), l5;
  }
  function ml(e4) {
    var t4 = e4.lastExpiredTime;
    return 0 !== t4 ? t4 : Gl(e4, t4 = e4.firstPendingTime) ? (t4 = e4.lastPingedTime) > (e4 = e4.nextKnownPendingLevel) ? t4 : e4 : t4;
  }
  function hl(e4) {
    if (0 !== e4.lastExpiredTime) e4.callbackExpirationTime = 1073741823, e4.callbackPriority = 99, e4.callbackNode = Je(bl.bind(null, e4));
    else {
      var t4 = ml(e4), n6 = e4.callbackNode;
      if (0 === t4) null !== n6 && (e4.callbackNode = null, e4.callbackExpirationTime = 0, e4.callbackPriority = 90);
      else {
        var r5 = cl();
        if (r5 = 1073741823 === t4 ? 99 : 1 === t4 || 2 === t4 ? 95 : 0 >= (r5 = 10 * (1073741821 - t4) - 10 * (1073741821 - r5)) ? 99 : 250 >= r5 ? 98 : 5250 >= r5 ? 97 : 95, null !== n6) {
          var l5 = e4.callbackPriority;
          if (e4.callbackExpirationTime === t4 && l5 >= r5) return;
          n6 !== Oe && Ne(n6);
        }
        e4.callbackExpirationTime = t4, e4.callbackPriority = r5, t4 = 1073741823 === t4 ? Je(bl.bind(null, e4)) : Ye(r5, gl.bind(null, e4), { timeout: 10 * (1073741821 - t4) - qe() }), e4.callbackNode = t4;
      }
    }
  }
  function gl(e4, t4) {
    if (fl2 = 0, t4) return Xl(e4, t4 = cl()), hl(e4), null;
    var n6 = ml(e4);
    if (0 !== n6) {
      if (t4 = e4.callbackNode, (Or & (Rr | Ir)) !== Nr) throw Error(f4(327));
      if (Rl(), e4 === Br && n6 === Ar || vl(e4, n6), null !== Hr) {
        var r5 = Or;
        Or |= Rr;
        for (var l5 = xl(); ; ) try {
          Cl();
          break;
        } catch (t5) {
          Tl(e4, t5);
        }
        if (ct(), Or = r5, Pr.current = l5, Lr === Fr) throw t4 = $r, vl(e4, n6), Yl(e4, n6), hl(e4), t4;
        if (null === Hr) switch (l5 = e4.finishedWork = e4.current.alternate, e4.finishedExpirationTime = n6, r5 = Lr, Br = null, r5) {
          case Mr:
          case Fr:
            throw Error(f4(345));
          case Qr:
            Xl(e4, 2 < n6 ? 2 : n6);
            break;
          case Dr:
            if (Yl(e4, n6), n6 === (r5 = e4.lastSuspendedTime) && (e4.nextKnownPendingLevel = Pl(l5)), 1073741823 === qr && 10 < (l5 = Jr + Xr - qe())) {
              if (Yr) {
                var i5 = e4.lastPingedTime;
                if (0 === i5 || i5 >= n6) {
                  e4.lastPingedTime = n6, vl(e4, n6);
                  break;
                }
              }
              if (0 !== (i5 = ml(e4)) && i5 !== n6) break;
              if (0 !== r5 && r5 !== n6) {
                e4.lastPingedTime = r5;
                break;
              }
              e4.timeoutHandle = A(_l.bind(null, e4), l5);
              break;
            }
            _l(e4);
            break;
          case Wr:
            if (Yl(e4, n6), n6 === (r5 = e4.lastSuspendedTime) && (e4.nextKnownPendingLevel = Pl(l5)), Yr && (0 === (l5 = e4.lastPingedTime) || l5 >= n6)) {
              e4.lastPingedTime = n6, vl(e4, n6);
              break;
            }
            if (0 !== (l5 = ml(e4)) && l5 !== n6) break;
            if (0 !== r5 && r5 !== n6) {
              e4.lastPingedTime = r5;
              break;
            }
            if (1073741823 !== Vr ? r5 = 10 * (1073741821 - Vr) - qe() : 1073741823 === qr ? r5 = 0 : (r5 = 10 * (1073741821 - qr) - 5e3, 0 > (r5 = (l5 = qe()) - r5) && (r5 = 0), (n6 = 10 * (1073741821 - n6) - l5) < (r5 = (120 > r5 ? 120 : 480 > r5 ? 480 : 1080 > r5 ? 1080 : 1920 > r5 ? 1920 : 3e3 > r5 ? 3e3 : 4320 > r5 ? 4320 : 1960 * zr(r5 / 1960)) - r5) && (r5 = n6)), 10 < r5) {
              e4.timeoutHandle = A(_l.bind(null, e4), r5);
              break;
            }
            _l(e4);
            break;
          case jr:
            if (1073741823 !== qr && null !== Kr) {
              i5 = qr;
              var a6 = Kr;
              if (0 >= (r5 = 0 | a6.busyMinDurationMs) ? r5 = 0 : (l5 = 0 | a6.busyDelayMs, r5 = (i5 = qe() - (10 * (1073741821 - i5) - (0 | a6.timeoutMs || 5e3))) <= l5 ? 0 : l5 + r5 - i5), 10 < r5) {
                Yl(e4, n6), e4.timeoutHandle = A(_l.bind(null, e4), r5);
                break;
              }
            }
            _l(e4);
            break;
          default:
            throw Error(f4(329));
        }
        if (hl(e4), e4.callbackNode === t4) return gl.bind(null, e4);
      }
    }
    return null;
  }
  function bl(e4) {
    var t4 = e4.lastExpiredTime;
    if (t4 = 0 !== t4 ? t4 : 1073741823, e4.finishedExpirationTime === t4) _l(e4);
    else {
      if ((Or & (Rr | Ir)) !== Nr) throw Error(f4(327));
      if (Rl(), e4 === Br && t4 === Ar || vl(e4, t4), null !== Hr) {
        var n6 = Or;
        Or |= Rr;
        for (var r5 = xl(); ; ) try {
          Sl();
          break;
        } catch (t5) {
          Tl(e4, t5);
        }
        if (ct(), Or = n6, Pr.current = r5, Lr === Fr) throw n6 = $r, vl(e4, t4), Yl(e4, t4), hl(e4), n6;
        if (null !== Hr) throw Error(f4(261));
        e4.finishedWork = e4.current.alternate, e4.finishedExpirationTime = t4, Br = null, _l(e4), hl(e4);
      }
    }
    return null;
  }
  function yl(e4, t4) {
    if ((Or & (Rr | Ir)) !== Nr) throw Error(f4(187));
    var n6 = Or;
    Or |= 1;
    try {
      return Ge(99, e4.bind(null, t4));
    } finally {
      Or = n6, Xe();
    }
  }
  function vl(e4, t4) {
    e4.finishedWork = null, e4.finishedExpirationTime = 0;
    var n6 = e4.timeoutHandle;
    if (n6 !== $ && (e4.timeoutHandle = $, L(n6)), null !== Hr) for (n6 = Hr.return; null !== n6; ) {
      var r5 = n6;
      switch (r5.tag) {
        case 1:
          var l5 = r5.type.childContextTypes;
          null != l5 && Ee();
          break;
        case 3:
          Kt(), ke();
          break;
        case 5:
          Yt(r5);
          break;
        case 4:
          Kt();
          break;
        case 13:
        case 19:
          me(Jt);
          break;
        case 10:
          dt(r5);
      }
      n6 = n6.return;
    }
    Br = e4, Hr = Al(e4.current, null), Ar = t4, Lr = Mr, $r = null, Vr = qr = 1073741823, Kr = null, Gr = 0, Yr = false;
  }
  function Tl(e4, t4) {
    for (; ; ) {
      try {
        if (ct(), vn(), null === Hr || null === Hr.return) return Lr = Fr, $r = t4, null;
        e: {
          var n6 = e4, r5 = Hr.return, l5 = Hr, i5 = t4;
          if (t4 = Ar, l5.effectTag |= 2048, l5.firstEffect = l5.lastEffect = null, null !== i5 && "object" == typeof i5 && "function" == typeof i5.then) {
            var a6 = i5, u5 = 0 != (1 & Jt.current), o6 = r5;
            do {
              var f5;
              if (f5 = 13 === o6.tag) {
                var c7 = o6.memoizedState;
                if (null !== c7) f5 = null !== c7.dehydrated;
                else {
                  var s5 = o6.memoizedProps;
                  f5 = void 0 !== s5.fallback && (true !== s5.unstable_avoidThisFallback || !u5);
                }
              }
              if (f5) {
                var d4 = o6.updateQueue;
                if (null === d4) {
                  var p4 = /* @__PURE__ */ new Set();
                  p4.add(a6), o6.updateQueue = p4;
                } else d4.add(a6);
                if (0 == (2 & o6.mode)) {
                  if (o6.effectTag |= 64, l5.effectTag &= -2981, 1 === l5.tag) if (null === l5.alternate) l5.tag = 17;
                  else {
                    var m4 = vt(1073741823, null);
                    m4.tag = 2, xt(l5, m4);
                  }
                  l5.expirationTime = 1073741823;
                  break e;
                }
                i5 = void 0, l5 = t4;
                var h5 = n6.pingCache;
                if (null === h5 ? (h5 = n6.pingCache = new kr(), i5 = /* @__PURE__ */ new Set(), h5.set(a6, i5)) : void 0 === (i5 = h5.get(a6)) && (i5 = /* @__PURE__ */ new Set(), h5.set(a6, i5)), !i5.has(l5)) {
                  i5.add(l5);
                  var g4 = Ql.bind(null, n6, a6, l5);
                  a6.then(g4, g4);
                }
                o6.effectTag |= 4096, o6.expirationTime = t4;
                break e;
              }
              o6 = o6.return;
            } while (null !== o6);
            i5 = Error((z(l5.type) || "A React component") + " suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display." + se(l5));
          }
          Lr !== jr && (Lr = Qr), i5 = fr(i5, l5), o6 = r5;
          do {
            switch (o6.tag) {
              case 3:
                a6 = i5, o6.effectTag |= 4096, o6.expirationTime = t4, Et(o6, Sr(o6, a6, t4));
                break e;
              case 1:
                a6 = i5;
                var b4 = o6.type, y4 = o6.stateNode;
                if (0 == (64 & o6.effectTag) && ("function" == typeof b4.getDerivedStateFromError || null !== y4 && "function" == typeof y4.componentDidCatch && (null === nl || !nl.has(y4)))) {
                  o6.effectTag |= 4096, o6.expirationTime = t4, Et(o6, Cr(o6, a6, t4));
                  break e;
                }
            }
            o6 = o6.return;
          } while (null !== o6);
        }
        Hr = zl(Hr);
      } catch (e5) {
        t4 = e5;
        continue;
      }
      break;
    }
  }
  function xl() {
    var e4 = Pr.current;
    return Pr.current = Qn, null === e4 ? Qn : e4;
  }
  function El(e4, t4) {
    e4 < qr && 2 < e4 && (qr = e4), null !== t4 && e4 < Vr && 2 < e4 && (Vr = e4, Kr = t4);
  }
  function kl(e4) {
    e4 > Gr && (Gr = e4);
  }
  function Sl() {
    for (; null !== Hr; ) Hr = wl(Hr);
  }
  function Cl() {
    for (; null !== Hr && !Ue(); ) Hr = wl(Hr);
  }
  function wl(e4) {
    var t4 = wr(e4.alternate, e4, Ar);
    return e4.memoizedProps = e4.pendingProps, null === t4 && (t4 = zl(e4)), _r.current = null, t4;
  }
  function zl(e4) {
    Hr = e4;
    do {
      var t4 = Hr.alternate;
      if (e4 = Hr.return, 0 == (2048 & Hr.effectTag)) {
        e: {
          var n6 = t4, r5 = Ar, l5 = (t4 = Hr).pendingProps;
          switch (t4.tag) {
            case 2:
            case 16:
            case 15:
            case 0:
            case 11:
            case 7:
            case 8:
            case 12:
            case 9:
            case 14:
            case 20:
            case 21:
              break;
            case 1:
            case 17:
              xe(t4.type) && Ee();
              break;
            case 3:
              Kt(), ke(), (l5 = t4.stateNode).pendingContext && (l5.context = l5.pendingContext, l5.pendingContext = null), null === n6 || n6.child, Jn(t4);
              break;
            case 5:
              Yt(t4);
              var i5 = qt($t.current);
              if (r5 = t4.type, null !== n6 && null != t4.stateNode) Xn(n6, t4, r5, l5, i5), n6.ref !== t4.ref && (t4.effectTag |= 128);
              else if (l5) {
                n6 = qt(At.current);
                var a6 = D(r5, l5, i5, n6, t4);
                Yn(a6, t4, false, false), t4.stateNode = a6, j(a6, r5, l5, i5, n6) && ar(t4), null !== t4.ref && (t4.effectTag |= 128);
              } else if (null === t4.stateNode) throw Error(f4(166));
              break;
            case 6:
              if (n6 && null != t4.stateNode) Zn(n6, t4, n6.memoizedProps, l5);
              else {
                if ("string" != typeof l5 && null === t4.stateNode) throw Error(f4(166));
                n6 = qt($t.current), i5 = qt(At.current), t4.stateNode = H(l5, n6, i5, t4);
              }
              break;
            case 13:
              if (me(Jt), l5 = t4.memoizedState, 0 != (64 & t4.effectTag)) {
                t4.expirationTime = r5;
                break e;
              }
              l5 = null !== l5, i5 = false, null === n6 ? t4.memoizedProps.fallback : (i5 = null !== (r5 = n6.memoizedState), l5 || null === r5 || null !== (r5 = n6.child.sibling) && (null !== (a6 = t4.firstEffect) ? (t4.firstEffect = r5, r5.nextEffect = a6) : (t4.firstEffect = t4.lastEffect = r5, r5.nextEffect = null), r5.effectTag = 8)), l5 && !i5 && 0 != (2 & t4.mode) && (null === n6 && true !== t4.memoizedProps.unstable_avoidThisFallback || 0 != (1 & Jt.current) ? Lr === Mr && (Lr = Dr) : (Lr !== Mr && Lr !== Dr || (Lr = Wr), 0 !== Gr && null !== Br && (Yl(Br, Ar), Jl(Br, Gr)))), (l5 || i5) && (t4.effectTag |= 4);
              break;
            case 4:
              Kt(), Jn(t4);
              break;
            case 10:
              dt(t4);
              break;
            case 19:
              if (me(Jt), null === (l5 = t4.memoizedState)) break;
              if (i5 = 0 != (64 & t4.effectTag), null === (a6 = l5.rendering)) {
                if (i5) ur(l5, false);
                else if (Lr !== Mr || null !== n6 && 0 != (64 & n6.effectTag)) for (n6 = t4.child; null !== n6; ) {
                  if (null !== (a6 = Xt(n6))) {
                    for (t4.effectTag |= 64, ur(l5, false), null !== (n6 = a6.updateQueue) && (t4.updateQueue = n6, t4.effectTag |= 4), null === l5.lastEffect && (t4.firstEffect = null), t4.lastEffect = l5.lastEffect, n6 = r5, l5 = t4.child; null !== l5; ) r5 = n6, (i5 = l5).effectTag &= 2, i5.nextEffect = null, i5.firstEffect = null, i5.lastEffect = null, null === (a6 = i5.alternate) ? (i5.childExpirationTime = 0, i5.expirationTime = r5, i5.child = null, i5.memoizedProps = null, i5.memoizedState = null, i5.updateQueue = null, i5.dependencies = null) : (i5.childExpirationTime = a6.childExpirationTime, i5.expirationTime = a6.expirationTime, i5.child = a6.child, i5.memoizedProps = a6.memoizedProps, i5.memoizedState = a6.memoizedState, i5.updateQueue = a6.updateQueue, r5 = a6.dependencies, i5.dependencies = null === r5 ? null : { expirationTime: r5.expirationTime, firstContext: r5.firstContext, responders: r5.responders }), l5 = l5.sibling;
                    he(Jt, 1 & Jt.current | 2), t4 = t4.child;
                    break e;
                  }
                  n6 = n6.sibling;
                }
              } else {
                if (!i5) if (null !== (n6 = Xt(a6))) {
                  if (t4.effectTag |= 64, i5 = true, null !== (n6 = n6.updateQueue) && (t4.updateQueue = n6, t4.effectTag |= 4), ur(l5, true), null === l5.tail && "hidden" === l5.tailMode) {
                    null !== (t4 = t4.lastEffect = l5.lastEffect) && (t4.nextEffect = null);
                    break;
                  }
                } else qe() > l5.tailExpiration && 1 < r5 && (t4.effectTag |= 64, i5 = true, ur(l5, false), t4.expirationTime = t4.childExpirationTime = r5 - 1);
                l5.isBackwards ? (a6.sibling = t4.child, t4.child = a6) : (null !== (n6 = l5.last) ? n6.sibling = a6 : t4.child = a6, l5.last = a6);
              }
              if (null !== l5.tail) {
                0 === l5.tailExpiration && (l5.tailExpiration = qe() + 500), n6 = l5.tail, l5.rendering = n6, l5.tail = n6.sibling, l5.lastEffect = t4.lastEffect, n6.sibling = null, l5 = Jt.current, he(Jt, l5 = i5 ? 1 & l5 | 2 : 1 & l5), t4 = n6;
                break e;
              }
              break;
            default:
              throw Error(f4(156, t4.tag));
          }
          t4 = null;
        }
        if (n6 = Hr, 1 === Ar || 1 !== n6.childExpirationTime) {
          for (l5 = 0, i5 = n6.child; null !== i5; ) (r5 = i5.expirationTime) > l5 && (l5 = r5), (a6 = i5.childExpirationTime) > l5 && (l5 = a6), i5 = i5.sibling;
          n6.childExpirationTime = l5;
        }
        if (null !== t4) return t4;
        null !== e4 && 0 == (2048 & e4.effectTag) && (null === e4.firstEffect && (e4.firstEffect = Hr.firstEffect), null !== Hr.lastEffect && (null !== e4.lastEffect && (e4.lastEffect.nextEffect = Hr.firstEffect), e4.lastEffect = Hr.lastEffect), 1 < Hr.effectTag && (null !== e4.lastEffect ? e4.lastEffect.nextEffect = Hr : e4.firstEffect = Hr, e4.lastEffect = Hr));
      } else {
        if (null !== (t4 = or(Hr))) return t4.effectTag &= 2047, t4;
        null !== e4 && (e4.firstEffect = e4.lastEffect = null, e4.effectTag |= 2048);
      }
      if (null !== (t4 = Hr.sibling)) return t4;
      Hr = e4;
    } while (null !== Hr);
    return Lr === Mr && (Lr = jr), null;
  }
  function Pl(e4) {
    var t4 = e4.expirationTime;
    return t4 > (e4 = e4.childExpirationTime) ? t4 : e4;
  }
  function _l(e4) {
    var t4 = Ve();
    return Ge(99, Nl.bind(null, e4, t4)), null;
  }
  function Nl(e4, t4) {
    if (Rl(), (Or & (Rr | Ir)) !== Nr) throw Error(f4(327));
    var n6 = e4.finishedWork, r5 = e4.finishedExpirationTime;
    if (null === n6) return null;
    if (e4.finishedWork = null, e4.finishedExpirationTime = 0, n6 === e4.current) throw Error(f4(177));
    e4.callbackNode = null, e4.callbackExpirationTime = 0, e4.callbackPriority = 90, e4.nextKnownPendingLevel = 0;
    var l5 = Pl(n6);
    if (e4.firstPendingTime = l5, r5 <= e4.lastSuspendedTime ? e4.firstSuspendedTime = e4.lastSuspendedTime = e4.nextKnownPendingLevel = 0 : r5 <= e4.firstSuspendedTime && (e4.firstSuspendedTime = r5 - 1), r5 <= e4.lastPingedTime && (e4.lastPingedTime = 0), r5 <= e4.lastExpiredTime && (e4.lastExpiredTime = 0), e4 === Br && (Hr = Br = null, Ar = 0), 1 < n6.effectTag ? null !== n6.lastEffect ? (n6.lastEffect.nextEffect = n6, l5 = n6.firstEffect) : l5 = n6 : l5 = n6.firstEffect, null !== l5) {
      var i5 = Or;
      Or |= Ir, _r.current = null, F(e4.containerInfo), Zr = l5;
      do {
        try {
          Ul();
        } catch (e5) {
          if (null === Zr) throw Error(f4(330));
          Fl(Zr, e5), Zr = Zr.nextEffect;
        }
      } while (null !== Zr);
      Zr = l5;
      do {
        try {
          for (var a6 = e4, u5 = t4; null !== Zr; ) {
            var o6 = Zr.effectTag;
            if (16 & o6 && q && re(Zr.stateNode), 128 & o6) {
              var c7 = Zr.alternate;
              if (null !== c7) {
                var s5 = c7.ref;
                null !== s5 && ("function" == typeof s5 ? s5(null) : s5.current = null);
              }
            }
            switch (1038 & o6) {
              case 2:
                vr(Zr), Zr.effectTag &= -3;
                break;
              case 6:
                vr(Zr), Zr.effectTag &= -3, xr(Zr.alternate, Zr);
                break;
              case 1024:
                Zr.effectTag &= -1025;
                break;
              case 1028:
                Zr.effectTag &= -1025, xr(Zr.alternate, Zr);
                break;
              case 4:
                xr(Zr.alternate, Zr);
                break;
              case 8:
                var d4 = a6, p4 = Zr, m4 = u5;
                q ? Tr(d4, p4, m4) : gr(d4, p4, m4), br(p4);
            }
            Zr = Zr.nextEffect;
          }
        } catch (e5) {
          if (null === Zr) throw Error(f4(330));
          Fl(Zr, e5), Zr = Zr.nextEffect;
        }
      } while (null !== Zr);
      Q(e4.containerInfo), e4.current = n6, Zr = l5;
      do {
        try {
          for (o6 = r5; null !== Zr; ) {
            var h5 = Zr.effectTag;
            if (36 & h5) {
              var g4 = Zr.alternate;
              switch (s5 = o6, (c7 = Zr).tag) {
                case 0:
                case 11:
                case 15:
                  mr(16, 32, c7);
                  break;
                case 1:
                  var b4 = c7.stateNode;
                  if (4 & c7.effectTag) if (null === g4) b4.componentDidMount();
                  else {
                    var y4 = c7.elementType === c7.type ? g4.memoizedProps : it(c7.type, g4.memoizedProps);
                    b4.componentDidUpdate(y4, g4.memoizedState, b4.__reactInternalSnapshotBeforeUpdate);
                  }
                  var v4 = c7.updateQueue;
                  null !== v4 && wt(0, v4, b4);
                  break;
                case 3:
                  var T2 = c7.updateQueue;
                  if (null !== T2) {
                    if (a6 = null, null !== c7.child) switch (c7.child.tag) {
                      case 5:
                        a6 = R(c7.child.stateNode);
                        break;
                      case 1:
                        a6 = c7.child.stateNode;
                    }
                    wt(0, T2, a6);
                  }
                  break;
                case 5:
                  var x2 = c7.stateNode;
                  null === g4 && 4 & c7.effectTag && J(x2, c7.type, c7.memoizedProps, c7);
                  break;
                case 6:
                case 4:
                case 12:
                case 19:
                case 17:
                case 20:
                case 21:
                  break;
                case 13:
                  V && c7.memoizedState;
                  break;
                default:
                  throw Error(f4(163));
              }
            }
            if (128 & h5) {
              c7 = void 0;
              var E2 = Zr.ref;
              if (null !== E2) {
                var k4 = Zr.stateNode;
                c7 = 5 === Zr.tag ? R(k4) : k4, "function" == typeof E2 ? E2(c7) : E2.current = c7;
              }
            }
            Zr = Zr.nextEffect;
          }
        } catch (e5) {
          if (null === Zr) throw Error(f4(330));
          Fl(Zr, e5), Zr = Zr.nextEffect;
        }
      } while (null !== Zr);
      Zr = null, Be(), Or = i5;
    } else e4.current = n6;
    if (rl) rl = false, ll = e4, il = t4;
    else for (Zr = l5; null !== Zr; ) t4 = Zr.nextEffect, Zr.nextEffect = null, Zr = t4;
    if (0 === (t4 = e4.firstPendingTime) && (nl = null), 1073741823 === t4 ? e4 === ol ? ul++ : (ul = 0, ol = e4) : ul = 0, "function" == typeof Wl && Wl(n6.stateNode, r5), hl(e4), el) throw el = false, e4 = tl, tl = null, e4;
    return (Or & Ur) !== Nr || Xe(), null;
  }
  function Ul() {
    for (; null !== Zr; ) {
      var e4 = Zr.effectTag;
      0 != (256 & e4) && pr(Zr.alternate, Zr), 0 == (512 & e4) || rl || (rl = true, Ye(97, (function() {
        return Rl(), null;
      }))), Zr = Zr.nextEffect;
    }
  }
  function Rl() {
    if (90 !== il) {
      var e4 = 97 < il ? 97 : il;
      return il = 90, Ge(e4, Il);
    }
  }
  function Il() {
    if (null === ll) return false;
    var e4 = ll;
    if (ll = null, (Or & (Rr | Ir)) !== Nr) throw Error(f4(331));
    var t4 = Or;
    for (Or |= Ir, e4 = e4.current.firstEffect; null !== e4; ) {
      try {
        var n6 = e4;
        if (0 != (512 & n6.effectTag)) switch (n6.tag) {
          case 0:
          case 11:
          case 15:
            mr(128, 0, n6), mr(0, 64, n6);
        }
      } catch (t5) {
        if (null === e4) throw Error(f4(330));
        Fl(e4, t5);
      }
      n6 = e4.nextEffect, e4.nextEffect = null, e4 = n6;
    }
    return Or = t4, Xe(), true;
  }
  function Ml(e4, t4, n6) {
    xt(e4, t4 = Sr(e4, t4 = fr(n6, t4), 1073741823)), null !== (e4 = pl(e4, 1073741823)) && hl(e4);
  }
  function Fl(e4, t4) {
    if (3 === e4.tag) Ml(e4, e4, t4);
    else for (var n6 = e4.return; null !== n6; ) {
      if (3 === n6.tag) {
        Ml(n6, e4, t4);
        break;
      }
      if (1 === n6.tag) {
        var r5 = n6.stateNode;
        if ("function" == typeof n6.type.getDerivedStateFromError || "function" == typeof r5.componentDidCatch && (null === nl || !nl.has(r5))) {
          xt(n6, e4 = Cr(n6, e4 = fr(t4, e4), 1073741823)), null !== (n6 = pl(n6, 1073741823)) && hl(n6);
          break;
        }
      }
      n6 = n6.return;
    }
  }
  function Ql(e4, t4, n6) {
    var r5 = e4.pingCache;
    null !== r5 && r5.delete(t4), Br === e4 && Ar === n6 ? Lr === Wr || Lr === Dr && 1073741823 === qr && qe() - Jr < Xr ? vl(e4, Ar) : Yr = true : Gl(e4, n6) && (0 !== (t4 = e4.lastPingedTime) && t4 < n6 || (e4.lastPingedTime = n6, e4.finishedExpirationTime === n6 && (e4.finishedExpirationTime = 0, e4.finishedWork = null), hl(e4)));
  }
  function Dl(e4, t4) {
    var n6 = e4.stateNode;
    null !== n6 && n6.delete(t4), 0 == (t4 = 0) && (t4 = sl(t4 = cl(), e4, null)), null !== (e4 = pl(e4, t4)) && hl(e4);
  }
  wr = function(e4, t4, n6) {
    var r5 = t4.expirationTime;
    if (null !== e4) {
      var l5 = t4.pendingProps;
      if (e4.memoizedProps !== l5 || ye.current) On = true;
      else {
        if (r5 < n6) {
          switch (On = false, t4.tag) {
            case 3:
              Gn(t4);
              break;
            case 5:
              if (Gt(t4), 4 & t4.mode && 1 !== n6 && null(t4.type, l5)) return t4.expirationTime = t4.childExpirationTime = 1, null;
              break;
            case 1:
              xe(t4.type) && we(t4);
              break;
            case 4:
              Vt(t4, t4.stateNode.containerInfo);
              break;
            case 10:
              st(t4, t4.memoizedProps.value);
              break;
            case 13:
              if (null !== t4.memoizedState) return 0 !== (r5 = t4.child.childExpirationTime) && r5 >= n6 ? tr(e4, t4, n6) : (he(Jt, 1 & Jt.current), null !== (t4 = ir(e4, t4, n6)) ? t4.sibling : null);
              he(Jt, 1 & Jt.current);
              break;
            case 19:
              if (r5 = t4.childExpirationTime >= n6, 0 != (64 & e4.effectTag)) {
                if (r5) return lr(e4, t4, n6);
                t4.effectTag |= 64;
              }
              if (null !== (l5 = t4.memoizedState) && (l5.rendering = null, l5.tail = null), he(Jt, Jt.current), !r5) return null;
          }
          return ir(e4, t4, n6);
        }
        On = false;
      }
    } else On = false;
    switch (t4.expirationTime = 0, t4.tag) {
      case 2:
        if (r5 = t4.type, null !== e4 && (e4.alternate = null, t4.alternate = null, t4.effectTag |= 2), e4 = t4.pendingProps, l5 = Te(t4, be.current), mt(t4, n6), l5 = yn(null, t4, r5, e4, l5, n6), t4.effectTag |= 1, "object" == typeof l5 && null !== l5 && "function" == typeof l5.render && void 0 === l5.$$typeof) {
          if (t4.tag = 1, vn(), xe(r5)) {
            var i5 = true;
            we(t4);
          } else i5 = false;
          t4.memoizedState = null !== l5.state && void 0 !== l5.state ? l5.state : null;
          var a6 = r5.getDerivedStateFromProps;
          "function" == typeof a6 && Nt(t4, r5, a6, e4), l5.updater = Ut, t4.stateNode = l5, l5._reactInternalFiber = t4, Ft(t4, r5, e4, n6), t4 = Kn(null, t4, r5, true, i5, n6);
        } else t4.tag = 0, Bn(null, t4, l5, n6), t4 = t4.child;
        return t4;
      case 16:
        if (l5 = t4.elementType, null !== e4 && (e4.alternate = null, t4.alternate = null, t4.effectTag |= 2), e4 = t4.pendingProps, (function(e5) {
          if (-1 === e5._status) {
            e5._status = 0;
            var t5 = e5._ctor;
            t5 = t5(), e5._result = t5, t5.then((function(t6) {
              0 === e5._status && (t6 = t6.default, e5._status = 1, e5._result = t6);
            }), (function(t6) {
              0 === e5._status && (e5._status = 2, e5._result = t6);
            }));
          }
        })(l5), 1 !== l5._status) throw l5._result;
        switch (l5 = l5._result, t4.type = l5, i5 = t4.tag = (function(e5) {
          if ("function" == typeof e5) return Hl(e5) ? 1 : 0;
          if (null != e5) {
            if ((e5 = e5.$$typeof) === T) return 11;
            if (e5 === k3) return 14;
          }
          return 2;
        })(l5), e4 = it(l5, e4), i5) {
          case 0:
            t4 = qn(null, t4, l5, e4, n6);
            break;
          case 1:
            t4 = Vn(null, t4, l5, e4, n6);
            break;
          case 11:
            t4 = Hn(null, t4, l5, e4, n6);
            break;
          case 14:
            t4 = An(null, t4, l5, it(l5.type, e4), r5, n6);
            break;
          default:
            throw Error(f4(306, l5, ""));
        }
        return t4;
      case 0:
        return r5 = t4.type, l5 = t4.pendingProps, qn(e4, t4, r5, l5 = t4.elementType === r5 ? l5 : it(r5, l5), n6);
      case 1:
        return r5 = t4.type, l5 = t4.pendingProps, Vn(e4, t4, r5, l5 = t4.elementType === r5 ? l5 : it(r5, l5), n6);
      case 3:
        if (Gn(t4), null === (r5 = t4.updateQueue)) throw Error(f4(282));
        if (l5 = null !== (l5 = t4.memoizedState) ? l5.element : null, Ct(t4, r5, t4.pendingProps, null, n6), (r5 = t4.memoizedState.element) === l5) t4 = ir(e4, t4, n6);
        else {
          if ((l5 = t4.stateNode.hydrate) && (l5 = false), l5) for (n6 = Bt(t4, null, r5, n6), t4.child = n6; n6; ) n6.effectTag = -3 & n6.effectTag | 1024, n6 = n6.sibling;
          else Bn(e4, t4, r5, n6);
          t4 = t4.child;
        }
        return t4;
      case 5:
        return Gt(t4), r5 = t4.type, l5 = t4.pendingProps, i5 = null !== e4 ? e4.memoizedProps : null, a6 = l5.children, B(r5, l5) ? a6 = null : null !== i5 && B(r5, i5) && (t4.effectTag |= 16), $n(e4, t4), 4 & t4.mode && 1 !== n6 && null(r5, l5) ? (t4.expirationTime = t4.childExpirationTime = 1, t4 = null) : (Bn(e4, t4, a6, n6), t4 = t4.child), t4;
      case 6:
        return null;
      case 13:
        return tr(e4, t4, n6);
      case 4:
        return Vt(t4, t4.stateNode.containerInfo), r5 = t4.pendingProps, null === e4 ? t4.child = Ot(t4, null, r5, n6) : Bn(e4, t4, r5, n6), t4.child;
      case 11:
        return r5 = t4.type, l5 = t4.pendingProps, Hn(e4, t4, r5, l5 = t4.elementType === r5 ? l5 : it(r5, l5), n6);
      case 7:
        return Bn(e4, t4, t4.pendingProps, n6), t4.child;
      case 8:
      case 12:
        return Bn(e4, t4, t4.pendingProps.children, n6), t4.child;
      case 10:
        e: {
          if (r5 = t4.type._context, l5 = t4.pendingProps, a6 = t4.memoizedProps, st(t4, i5 = l5.value), null !== a6) {
            var u5 = a6.value;
            if (0 == (i5 = nt(u5, i5) ? 0 : 0 | ("function" == typeof r5._calculateChangedBits ? r5._calculateChangedBits(u5, i5) : 1073741823))) {
              if (a6.children === l5.children && !ye.current) {
                t4 = ir(e4, t4, n6);
                break e;
              }
            } else for (null !== (u5 = t4.child) && (u5.return = t4); null !== u5; ) {
              var o6 = u5.dependencies;
              if (null !== o6) {
                a6 = u5.child;
                for (var c7 = o6.firstContext; null !== c7; ) {
                  if (c7.context === r5 && 0 != (c7.observedBits & i5)) {
                    1 === u5.tag && ((c7 = vt(n6, null)).tag = 2, xt(u5, c7)), u5.expirationTime < n6 && (u5.expirationTime = n6), null !== (c7 = u5.alternate) && c7.expirationTime < n6 && (c7.expirationTime = n6), pt(u5.return, n6), o6.expirationTime < n6 && (o6.expirationTime = n6);
                    break;
                  }
                  c7 = c7.next;
                }
              } else a6 = 10 === u5.tag && u5.type === t4.type ? null : u5.child;
              if (null !== a6) a6.return = u5;
              else for (a6 = u5; null !== a6; ) {
                if (a6 === t4) {
                  a6 = null;
                  break;
                }
                if (null !== (u5 = a6.sibling)) {
                  u5.return = a6.return, a6 = u5;
                  break;
                }
                a6 = a6.return;
              }
              u5 = a6;
            }
          }
          Bn(e4, t4, l5.children, n6), t4 = t4.child;
        }
        return t4;
      case 9:
        return l5 = t4.type, r5 = (i5 = t4.pendingProps).children, mt(t4, n6), r5 = r5(l5 = ht(l5, i5.unstable_observedBits)), t4.effectTag |= 1, Bn(e4, t4, r5, n6), t4.child;
      case 14:
        return i5 = it(l5 = t4.type, t4.pendingProps), An(e4, t4, l5, i5 = it(l5.type, i5), r5, n6);
      case 15:
        return Ln(e4, t4, t4.type, t4.pendingProps, r5, n6);
      case 17:
        return r5 = t4.type, l5 = t4.pendingProps, l5 = t4.elementType === r5 ? l5 : it(r5, l5), null !== e4 && (e4.alternate = null, t4.alternate = null, t4.effectTag |= 2), t4.tag = 1, xe(r5) ? (e4 = true, we(t4)) : e4 = false, mt(t4, n6), It(t4, r5, l5), Ft(t4, r5, l5, n6), Kn(null, t4, r5, true, e4, n6);
      case 19:
        return lr(e4, t4, n6);
    }
    throw Error(f4(156, t4.tag));
  };
  var Wl = null, jl = null;
  function Ol(e4, t4, n6, r5) {
    this.tag = e4, this.key = n6, this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null, this.index = 0, this.ref = null, this.pendingProps = t4, this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null, this.mode = r5, this.effectTag = 0, this.lastEffect = this.firstEffect = this.nextEffect = null, this.childExpirationTime = this.expirationTime = 0, this.alternate = null;
  }
  function Bl(e4, t4, n6, r5) {
    return new Ol(e4, t4, n6, r5);
  }
  function Hl(e4) {
    return !(!(e4 = e4.prototype) || !e4.isReactComponent);
  }
  function Al(e4, t4) {
    var n6 = e4.alternate;
    return null === n6 ? ((n6 = Bl(e4.tag, t4, e4.key, e4.mode)).elementType = e4.elementType, n6.type = e4.type, n6.stateNode = e4.stateNode, n6.alternate = e4, e4.alternate = n6) : (n6.pendingProps = t4, n6.effectTag = 0, n6.nextEffect = null, n6.firstEffect = null, n6.lastEffect = null), n6.childExpirationTime = e4.childExpirationTime, n6.expirationTime = e4.expirationTime, n6.child = e4.child, n6.memoizedProps = e4.memoizedProps, n6.memoizedState = e4.memoizedState, n6.updateQueue = e4.updateQueue, t4 = e4.dependencies, n6.dependencies = null === t4 ? null : { expirationTime: t4.expirationTime, firstContext: t4.firstContext, responders: t4.responders }, n6.sibling = e4.sibling, n6.index = e4.index, n6.ref = e4.ref, n6;
  }
  function Ll(e4, t4, n6, r5, l5, i5) {
    var a6 = 2;
    if (r5 = e4, "function" == typeof e4) Hl(e4) && (a6 = 1);
    else if ("string" == typeof e4) a6 = 5;
    else e: switch (e4) {
      case m3:
        return $l(n6.children, l5, i5, t4);
      case v3:
        a6 = 8, l5 |= 7;
        break;
      case h4:
        a6 = 8, l5 |= 1;
        break;
      case g3:
        return (e4 = Bl(12, n6, t4, 8 | l5)).elementType = g3, e4.type = g3, e4.expirationTime = i5, e4;
      case x:
        return (e4 = Bl(13, n6, t4, l5)).type = x, e4.elementType = x, e4.expirationTime = i5, e4;
      case E:
        return (e4 = Bl(19, n6, t4, l5)).elementType = E, e4.expirationTime = i5, e4;
      default:
        if ("object" == typeof e4 && null !== e4) switch (e4.$$typeof) {
          case b3:
            a6 = 10;
            break e;
          case y3:
            a6 = 9;
            break e;
          case T:
            a6 = 11;
            break e;
          case k3:
            a6 = 14;
            break e;
          case S3:
            a6 = 16, r5 = null;
            break e;
        }
        throw Error(f4(130, null == e4 ? e4 : typeof e4, ""));
    }
    return (t4 = Bl(a6, n6, t4, l5)).elementType = e4, t4.type = r5, t4.expirationTime = i5, t4;
  }
  function $l(e4, t4, n6, r5) {
    return (e4 = Bl(7, e4, r5, t4)).expirationTime = n6, e4;
  }
  function ql(e4, t4, n6) {
    return (e4 = Bl(6, e4, null, t4)).expirationTime = n6, e4;
  }
  function Vl(e4, t4, n6) {
    return (t4 = Bl(4, null !== e4.children ? e4.children : [], e4.key, t4)).expirationTime = n6, t4.stateNode = { containerInfo: e4.containerInfo, pendingChildren: null, implementation: e4.implementation }, t4;
  }
  function Kl(e4, t4, n6) {
    this.tag = t4, this.current = null, this.containerInfo = e4, this.pingCache = this.pendingChildren = null, this.finishedExpirationTime = 0, this.finishedWork = null, this.timeoutHandle = $, this.pendingContext = this.context = null, this.hydrate = n6, this.callbackNode = null, this.callbackPriority = 90, this.lastExpiredTime = this.lastPingedTime = this.nextKnownPendingLevel = this.lastSuspendedTime = this.firstSuspendedTime = this.firstPendingTime = 0;
  }
  function Gl(e4, t4) {
    var n6 = e4.firstSuspendedTime;
    return e4 = e4.lastSuspendedTime, 0 !== n6 && n6 >= t4 && e4 <= t4;
  }
  function Yl(e4, t4) {
    var n6 = e4.firstSuspendedTime, r5 = e4.lastSuspendedTime;
    n6 < t4 && (e4.firstSuspendedTime = t4), (r5 > t4 || 0 === n6) && (e4.lastSuspendedTime = t4), t4 <= e4.lastPingedTime && (e4.lastPingedTime = 0), t4 <= e4.lastExpiredTime && (e4.lastExpiredTime = 0);
  }
  function Jl(e4, t4) {
    t4 > e4.firstPendingTime && (e4.firstPendingTime = t4);
    var n6 = e4.firstSuspendedTime;
    0 !== n6 && (t4 >= n6 ? e4.firstSuspendedTime = e4.lastSuspendedTime = e4.nextKnownPendingLevel = 0 : t4 >= e4.lastSuspendedTime && (e4.lastSuspendedTime = t4 + 1), t4 > e4.nextKnownPendingLevel && (e4.nextKnownPendingLevel = t4));
  }
  function Xl(e4, t4) {
    var n6 = e4.lastExpiredTime;
    (0 === n6 || n6 > t4) && (e4.lastExpiredTime = t4);
  }
  function Zl(e4) {
    var t4 = e4._reactInternalFiber;
    if (void 0 === t4) {
      if ("function" == typeof e4.render) throw Error(f4(188));
      throw Error(f4(268, Object.keys(e4)));
    }
    return null === (e4 = U(t4)) ? null : e4.stateNode;
  }
  function ei(e4, t4) {
    null !== (e4 = e4.memoizedState) && null !== e4.dehydrated && e4.retryTime < t4 && (e4.retryTime = t4);
  }
  function ti(e4, t4) {
    ei(e4, t4), (e4 = e4.alternate) && ei(e4, t4);
  }
  var ni = { createContainer: function(e4, t4, n6) {
    return e4 = new Kl(e4, t4, n6), t4 = Bl(3, null, null, 2 === t4 ? 7 : 1 === t4 ? 3 : 0), e4.current = t4, t4.stateNode = e4;
  }, updateContainer: function(e4, t4, n6, r5) {
    var l5 = t4.current, i5 = cl(), a6 = Pt.suspense;
    i5 = sl(i5, l5, a6);
    e: if (n6) {
      t: {
        if (P(n6 = n6._reactInternalFiber) !== n6 || 1 !== n6.tag) throw Error(f4(170));
        var u5 = n6;
        do {
          switch (u5.tag) {
            case 3:
              u5 = u5.stateNode.context;
              break t;
            case 1:
              if (xe(u5.type)) {
                u5 = u5.stateNode.__reactInternalMemoizedMergedChildContext;
                break t;
              }
          }
          u5 = u5.return;
        } while (null !== u5);
        throw Error(f4(171));
      }
      if (1 === n6.tag) {
        var o6 = n6.type;
        if (xe(o6)) {
          n6 = Ce(n6, o6, u5);
          break e;
        }
      }
      n6 = u5;
    } else n6 = ge;
    return null === t4.context ? t4.context = n6 : t4.pendingContext = n6, (t4 = vt(i5, a6)).payload = { element: e4 }, null !== (r5 = void 0 === r5 ? null : r5) && (t4.callback = r5), xt(l5, t4), dl(l5, i5), i5;
  }, batchedEventUpdates: function(e4, t4) {
    var n6 = Or;
    Or |= 2;
    try {
      return e4(t4);
    } finally {
      (Or = n6) === Nr && Xe();
    }
  }, batchedUpdates: function(e4, t4) {
    var n6 = Or;
    Or |= 1;
    try {
      return e4(t4);
    } finally {
      (Or = n6) === Nr && Xe();
    }
  }, unbatchedUpdates: function(e4, t4) {
    var n6 = Or;
    Or &= -2, Or |= Ur;
    try {
      return e4(t4);
    } finally {
      (Or = n6) === Nr && Xe();
    }
  }, deferredUpdates: function(e4) {
    return Ge(97, e4);
  }, syncUpdates: function(e4, t4, n6, r5) {
    return Ge(99, e4.bind(null, t4, n6, r5));
  }, discreteUpdates: function(e4, t4, n6, r5) {
    var l5 = Or;
    Or |= 4;
    try {
      return Ge(98, e4.bind(null, t4, n6, r5));
    } finally {
      (Or = l5) === Nr && Xe();
    }
  }, flushDiscreteUpdates: function() {
    (Or & (1 | Rr | Ir)) === Nr && ((function() {
      if (null !== al) {
        var e4 = al;
        al = null, e4.forEach((function(e5, t4) {
          Xl(t4, e5), hl(t4);
        })), Xe();
      }
    })(), Rl());
  }, flushControlled: function(e4) {
    var t4 = Or;
    Or |= 1;
    try {
      Ge(99, e4);
    } finally {
      (Or = t4) === Nr && Xe();
    }
  }, flushSync: yl, flushPassiveEffects: Rl, IsThisRendererActing: { current: false }, getPublicRootInstance: function(e4) {
    return (e4 = e4.current).child ? 5 === e4.child.tag ? R(e4.child.stateNode) : e4.child.stateNode : null;
  }, attemptSynchronousHydration: function(e4) {
    switch (e4.tag) {
      case 3:
        var t4 = e4.stateNode;
        t4.hydrate && (function(e5, t5) {
          Xl(e5, t5), hl(e5), (Or & (Rr | Ir)) === Nr && Xe();
        })(t4, t4.firstPendingTime);
        break;
      case 13:
        yl((function() {
          return dl(e4, 1073741823);
        })), t4 = tt(cl(), 150, 100), ti(e4, t4);
    }
  }, attemptUserBlockingHydration: function(e4) {
    if (13 === e4.tag) {
      var t4 = tt(cl(), 150, 100);
      dl(e4, t4), ti(e4, t4);
    }
  }, attemptContinuousHydration: function(e4) {
    if (13 === e4.tag) {
      cl();
      var t4 = et2++;
      dl(e4, t4), ti(e4, t4);
    }
  }, attemptHydrationAtCurrentPriority: function(e4) {
    if (13 === e4.tag) {
      var t4 = cl();
      dl(e4, t4 = sl(t4, e4, null)), ti(e4, t4);
    }
  }, findHostInstance: Zl, findHostInstanceWithWarning: function(e4) {
    return Zl(e4);
  }, findHostInstanceWithNoPortals: function(e4) {
    return null === (e4 = (function(e5) {
      if (!(e5 = N(e5))) return null;
      for (var t4 = e5; ; ) {
        if (5 === t4.tag || 6 === t4.tag) return t4;
        if (t4.child && 4 !== t4.tag) t4.child.return = t4, t4 = t4.child;
        else {
          if (t4 === e5) break;
          for (; !t4.sibling; ) {
            if (!t4.return || t4.return === e5) return null;
            t4 = t4.return;
          }
          t4.sibling.return = t4.return, t4 = t4.sibling;
        }
      }
      return null;
    })(e4)) ? null : 20 === e4.tag ? e4.stateNode.instance : e4.stateNode;
  }, shouldSuspend: function() {
    return false;
  }, injectIntoDevTools: function(e4) {
    var t4 = e4.findFiberByHostInstance;
    return (function(e5) {
      if ("undefined" == typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) return false;
      var t5 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
      if (t5.isDisabled || !t5.supportsFiber) return true;
      try {
        var n6 = t5.inject(e5);
        Wl = function(e6) {
          try {
            t5.onCommitFiberRoot(n6, e6, void 0, 64 == (64 & e6.current.effectTag));
          } catch (e7) {
          }
        }, jl = function(e6) {
          try {
            t5.onCommitFiberUnmount(n6, e6);
          } catch (e7) {
          }
        };
      } catch (e6) {
      }
      return true;
    })(l4({}, e4, { overrideHookState: null, overrideProps: null, setSuspenseHandler: null, scheduleUpdate: null, currentDispatcherRef: c6.ReactCurrentDispatcher, findHostInstanceByFiber: function(e5) {
      return null === (e5 = U(e5)) ? null : e5.stateNode;
    }, findFiberByHostInstance: function(e5) {
      return t4 ? t4(e5) : null;
    }, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null }));
  } };
  i4.exports = ni.default || ni;
  var ri = i4.exports;
  return i4.exports = n5, ri;
};
var o4 = r3(a4.exports);
var f3 = (e4, t4) => {
  const n6 = Object.keys(e4), r4 = Object.keys(t4);
  if (n6.length !== r4.length) return false;
  for (let r5 = 0; r5 < n6.length; r5 += 1) {
    const l4 = n6[r5];
    if ("render" === l4 && !e4[l4] != !t4[l4]) return false;
    if ("children" !== l4 && e4[l4] !== t4[l4]) {
      if ("object" == typeof e4[l4] && "object" == typeof t4[l4] && f3(e4[l4], t4[l4])) continue;
      return false;
    }
    if ("children" === l4 && ("string" == typeof e4[l4] || "string" == typeof t4[l4])) return e4[l4] === t4[l4];
  }
  return true;
};
var c5 = {};
var s3 = ({ appendChild: e4, appendChildToContainer: t4, commitTextUpdate: n6, commitUpdate: r4, createInstance: l4, createTextInstance: i5, insertBefore: a5, removeChild: u5, removeChildFromContainer: s4, resetAfterCommit: d3 }) => o4({ appendChild: e4, appendChildToContainer: t4, appendInitialChild: e4, createInstance: l4, createTextInstance: i5, insertBefore: a5, commitUpdate: r4, commitTextUpdate: n6, removeChild: u5, removeChildFromContainer: s4, resetAfterCommit: d3, shouldSetTextContent: () => false, finalizeInitialChildren: () => false, getPublicInstance: (e5) => e5, getRootHostContext: () => c5, getChildHostContext: () => c5, prepareForCommit() {
}, clearContainer() {
}, resetTextContent() {
}, prepareUpdate: (e5, t5, n7, r5) => !f3(n7, r5) });

// ../../node_modules/.pnpm/@react-pdf+reconciler@2.0.0_react@19.2.4/node_modules/@react-pdf/reconciler/lib/index.js
var [major2, minor2] = import_react4.default.version.split(".").map((v3) => parseInt(v3, 10));
var renderer;
if (major2 >= 20 || major2 === 19 && minor2 >= 2) {
  renderer = k2;
} else if (major2 === 19) {
  renderer = k;
} else {
  renderer = s3;
}
var renderer$1 = renderer;

// ../../node_modules/.pnpm/@react-pdf+renderer@4.3.2_react@19.2.4/node_modules/@react-pdf/renderer/lib/react-pdf.js
var omitNils = (object) => Object.fromEntries(Object.entries(object).filter((_ref) => {
  let [, value2] = _ref;
  return value2 !== void 0;
}));
var createInstance2 = (type, _ref) => {
  let {
    style,
    children,
    ...props
  } = _ref;
  return {
    type,
    box: {},
    style: style || {},
    props: props || {},
    children: []
  };
};
var createTextInstance = (text) => ({
  type: "TEXT_INSTANCE",
  value: text
});
var appendChild = (parent, child) => {
  const isParentText = parent.type === "TEXT" || parent.type === "LINK" || parent.type === "TSPAN" || parent.type === "NOTE";
  const isChildTextInstance = child.type === "TEXT_INSTANCE";
  const isOrphanTextInstance = isChildTextInstance && !isParentText;
  if (isOrphanTextInstance) {
    console.warn(`Invalid '${child.value}' string child outside <Text> component`);
    return;
  }
  parent.children.push(child);
};
var appendChildToContainer = (parentInstance, child) => {
  if (parentInstance.type === "ROOT") {
    parentInstance.document = child;
  } else {
    appendChild(parentInstance, child);
  }
};
var insertBefore = (parentInstance, child, beforeChild) => {
  var _parentInstance$child;
  const index2 = (_parentInstance$child = parentInstance.children) === null || _parentInstance$child === void 0 ? void 0 : _parentInstance$child.indexOf(beforeChild);
  if (index2 === void 0) return;
  if (index2 !== -1 && child) parentInstance.children.splice(index2, 0, child);
};
var removeChild = (parentInstance, child) => {
  var _parentInstance$child2;
  const index2 = (_parentInstance$child2 = parentInstance.children) === null || _parentInstance$child2 === void 0 ? void 0 : _parentInstance$child2.indexOf(child);
  if (index2 === void 0) return;
  if (index2 !== -1) parentInstance.children.splice(index2, 1);
};
var removeChildFromContainer = (parentInstance, child) => {
  var _parentInstance$child3;
  const index2 = (_parentInstance$child3 = parentInstance.children) === null || _parentInstance$child3 === void 0 ? void 0 : _parentInstance$child3.indexOf(child);
  if (index2 === void 0) return;
  if (index2 !== -1) parentInstance.children.splice(index2, 1);
};
var commitTextUpdate = (textInstance, oldText, newText) => {
  textInstance.value = newText;
};
var commitUpdate = (instance, updatePayload, type, oldProps, newProps) => {
  const {
    style,
    ...props
  } = newProps;
  instance.props = props;
  instance.style = style;
};
var createRenderer = (_ref2) => {
  let {
    onChange = () => {
    }
  } = _ref2;
  return renderer$1({
    appendChild,
    appendChildToContainer,
    commitTextUpdate,
    commitUpdate,
    createInstance: createInstance2,
    createTextInstance,
    insertBefore,
    removeChild,
    removeChildFromContainer,
    resetAfterCommit: onChange
  });
};
var version$1 = "4.3.2";
var packageJson = {
  version: version$1
};
var {
  version
} = packageJson;
var fontStore = new FontStore();
var renderer2;
var events = {};
var pdf = (initialValue) => {
  const onChange = () => {
    var _events$change;
    const listeners = ((_events$change = events.change) === null || _events$change === void 0 ? void 0 : _events$change.slice()) || [];
    for (let i5 = 0; i5 < listeners.length; i5 += 1) listeners[i5]();
  };
  const container = {
    type: "ROOT",
    document: null
  };
  renderer2 = renderer2 || createRenderer({
    onChange
  });
  const mountNode = renderer2.createContainer(container);
  const updateContainer = (doc, callback) => {
    renderer2.updateContainer(doc, mountNode, null, callback);
  };
  if (initialValue) updateContainer(initialValue);
  const render3 = async function(compress) {
    if (compress === void 0) {
      compress = true;
    }
    const props = container.document.props || {};
    const {
      pdfVersion,
      language,
      pageLayout,
      pageMode,
      title,
      author,
      subject,
      keyboards,
      creator = "react-pdf",
      producer = "react-pdf",
      creationDate = /* @__PURE__ */ new Date(),
      modificationDate
    } = props;
    const ctx = new PDFDocument({
      compress,
      pdfVersion,
      lang: language,
      displayTitle: true,
      autoFirstPage: false,
      info: omitNils({
        Title: title,
        Author: author,
        Subject: subject,
        Keywords: keyboards,
        Creator: creator,
        Producer: producer,
        CreationDate: creationDate,
        ModificationDate: modificationDate
      })
    });
    if (pageLayout) {
      ctx._root.data.PageLayout = upperFirst(pageLayout);
    }
    if (pageMode) {
      ctx._root.data.PageMode = upperFirst(pageMode);
    }
    const layout2 = await layout(container.document, fontStore);
    const fileStream = render(ctx, layout2);
    return {
      layout: layout2,
      fileStream
    };
  };
  const callOnRender = function(params) {
    if (params === void 0) {
      params = {};
    }
    if (container.document.props.onRender) {
      container.document.props.onRender(params);
    }
  };
  const toBlob = async () => {
    const chunks = [];
    const {
      layout: _INTERNAL__LAYOUT__DATA_,
      fileStream: instance
    } = await render3();
    return new Promise((resolve4, reject) => {
      instance.on("data", (chunk3) => {
        chunks.push(chunk3 instanceof Uint8Array ? chunk3 : new Uint8Array(chunk3));
      });
      instance.on("end", () => {
        try {
          const blob = new Blob(chunks, {
            type: "application/pdf"
          });
          callOnRender({
            blob,
            _INTERNAL__LAYOUT__DATA_
          });
          resolve4(blob);
        } catch (error) {
          reject(error);
        }
      });
    });
  };
  const toBuffer = async () => {
    const {
      layout: _INTERNAL__LAYOUT__DATA_,
      fileStream
    } = await render3();
    callOnRender({
      _INTERNAL__LAYOUT__DATA_
    });
    return fileStream;
  };
  const toString5 = async () => {
    if (process.env.NODE_ENV === "development") {
      console.warn("`toString` is deprecated and will be removed in next major release");
    }
    let result = "";
    const {
      fileStream: instance
    } = await render3(false);
    return new Promise((resolve4, reject) => {
      try {
        instance.on("data", (buffer) => {
          result += buffer;
        });
        instance.on("end", () => {
          callOnRender();
          resolve4(result);
        });
      } catch (error) {
        reject(error);
      }
    });
  };
  const on2 = (event, listener) => {
    if (!events[event]) events[event] = [];
    events[event].push(listener);
  };
  const removeListener = (event, listener) => {
    if (!events[event]) return;
    const idx = events[event].indexOf(listener);
    if (idx > -1) events[event].splice(idx, 1);
  };
  return {
    on: on2,
    container,
    toBlob,
    toBuffer,
    toString: toString5,
    removeListener,
    updateContainer
  };
};
var Font = fontStore;
var StyleSheet = {
  create: (s4) => s4
};
var renderToStream = async (element) => {
  const instance = pdf(element);
  const stream7 = await instance.toBuffer();
  return stream7;
};
var renderToFile = async (element, filePath, callback) => {
  const output = await renderToStream(element);
  const stream7 = fs6.createWriteStream(filePath);
  output.pipe(stream7);
  return new Promise((resolve4, reject) => {
    stream7.on("finish", () => {
      if (callback) callback(output, filePath);
      resolve4(output);
    });
    stream7.on("error", reject);
  });
};
var renderToBuffer = (element) => renderToStream(element).then((stream7) => new Promise((resolve4, reject) => {
  const chunks = [];
  stream7.on("data", (chunk3) => chunks.push(chunk3));
  stream7.on("end", () => resolve4(Buffer4.concat(chunks)));
  stream7.on("error", (error) => reject(error));
}));
var renderToString = (element) => {
  if (process.env.NODE_ENV === "development") {
    console.warn("`renderToString` is deprecated and will be removed in next major release, use `renderToBuffer` instead");
  }
  return renderToBuffer(element).then((buffer) => buffer.toString());
};
var throwEnvironmentError = (name) => {
  throw new Error(`${name} is a web specific API. You're either using this component on Node, or your bundler is not loading react-pdf from the appropriate web build.`);
};
var usePDF = () => {
  throwEnvironmentError("usePDF");
};
var PDFViewer = () => {
  throwEnvironmentError("PDFViewer");
};
var PDFDownloadLink = () => {
  throwEnvironmentError("PDFDownloadLink");
};
var BlobProvider = () => {
  throwEnvironmentError("BlobProvider");
};
var render2 = renderToFile;
var index = {
  pdf,
  Font,
  version,
  StyleSheet,
  usePDF,
  PDFViewer,
  BlobProvider,
  PDFDownloadLink,
  renderToStream,
  renderToString,
  renderToFile,
  render: render2,
  ...lib_exports3
};

// src/services/PdfEngine.ts
var import_react5 = __toESM(require_react(), 1);

// src/components/EstimationPDF.tsx
var React10 = __toESM(require_react(), 1);

// src/components/pdf/SharedUI.tsx
var React2 = __toESM(require_react(), 1);
var COLORS = {
  CHARCOAL: "#0f172a",
  // Slate 900
  TEXT_MAIN: "#334155",
  // Slate 700
  TEXT_DIM: "#64748b",
  // Slate 500
  TEXT_LIGHT: "#94a3b8",
  // Slate 400
  DIVIDER: "#cbd5e1",
  // Slate 300
  GRID: "#f1f5f9",
  // Slate 100
  BLUEPRINT: "#e2e8f0",
  // Slate 200
  WHITE: "#ffffff"
};
var FONT_SIZES = {
  HERO: 24,
  // Main Page Titles
  HEADING: 14,
  // Section Headers
  BODY: 11,
  // Standard Content
  LABEL: 10,
  // Bold Labels / Keys
  SMALL: 9,
  // Descriptions / Footnotes
  TINY: 8
  // Metadata / Unit prices
};
var pdfStyles = StyleSheet.create({
  page: {
    paddingTop: 45,
    // DIN 5008
    paddingLeft: 70,
    // ~25mm
    paddingRight: 57,
    // ~20mm
    paddingBottom: 80,
    // Safe buffer for absolute footer
    backgroundColor: COLORS.WHITE,
    fontFamily: "Helvetica",
    fontSize: FONT_SIZES.BODY,
    color: COLORS.CHARCOAL
  },
  titlePage: {
    width: "100%",
    height: "100%",
    backgroundColor: COLORS.WHITE,
    fontFamily: "Helvetica",
    color: COLORS.CHARCOAL,
    padding: 0
  },
  header: {
    flexDirection: "row",
    justifyContent: "space-between",
    alignItems: "flex-start",
    marginBottom: 20,
    minHeight: 120
  },
  addressBlock: {
    width: "55%",
    marginTop: 45
  },
  senderLine: {
    fontSize: FONT_SIZES.TINY,
    textDecoration: "underline",
    color: COLORS.TEXT_DIM,
    marginBottom: 8
  },
  recipientAddress: {
    fontSize: FONT_SIZES.BODY,
    lineHeight: 1.4
  },
  brandLogoContainer: {
    width: "40%",
    alignItems: "flex-end"
  },
  brandIconContainer: {
    width: 40,
    height: 40,
    backgroundColor: "#0f172a",
    borderRadius: 8,
    alignItems: "center",
    justifyContent: "center",
    marginBottom: 12
  },
  brandIconText: {
    color: COLORS.WHITE,
    fontSize: 20,
    fontWeight: "bold"
  },
  titleInfo: {
    marginBottom: 24
  },
  mainTitle: {
    fontSize: FONT_SIZES.HEADING,
    fontWeight: "bold",
    marginBottom: 4,
    color: COLORS.CHARCOAL,
    letterSpacing: 0.5
  },
  subTitle: {
    fontSize: FONT_SIZES.BODY,
    color: COLORS.TEXT_DIM,
    marginTop: 2,
    lineHeight: 1.4
  },
  section: {
    marginBottom: 32
  },
  sectionTitle: {
    fontSize: FONT_SIZES.LABEL,
    fontWeight: "bold",
    textTransform: "uppercase",
    letterSpacing: 1,
    color: COLORS.TEXT_LIGHT,
    marginBottom: 8
  },
  footer: {
    position: "absolute",
    bottom: 32,
    left: 70,
    right: 57,
    borderTopWidth: 1,
    borderTopColor: COLORS.GRID,
    paddingTop: 16,
    flexDirection: "row",
    justifyContent: "space-between",
    alignItems: "flex-start"
  },
  footerColumn: {
    flex: 1,
    alignItems: "flex-start"
  },
  footerLogo: {
    height: 20,
    width: "auto",
    objectFit: "contain",
    marginBottom: 8
  },
  footerText: {
    fontSize: FONT_SIZES.TINY,
    color: COLORS.TEXT_LIGHT,
    lineHeight: 1.4
  },
  asymmetryContainer: {
    flexDirection: "row",
    gap: 32
  },
  asymmetryLeft: {
    width: "32%"
  },
  asymmetryRight: {
    width: "63%"
  },
  specRow: {
    flexDirection: "row",
    justifyContent: "space-between",
    paddingVertical: 6,
    borderBottomWidth: 1,
    borderBottomColor: COLORS.GRID
  },
  specLabel: {
    fontSize: FONT_SIZES.TINY,
    fontWeight: "bold",
    color: COLORS.TEXT_LIGHT,
    textTransform: "uppercase",
    letterSpacing: 0.5
  },
  specValue: {
    fontSize: FONT_SIZES.SMALL,
    color: COLORS.CHARCOAL,
    fontWeight: "bold"
  },
  blueprintBox: {
    borderWidth: 1,
    borderColor: COLORS.GRID,
    padding: 16,
    backgroundColor: "#fafafa"
  },
  footerLabel: {
    fontWeight: "bold",
    color: COLORS.TEXT_DIM
  },
  pageNumber: {
    fontSize: FONT_SIZES.TINY,
    color: COLORS.DIVIDER,
    fontWeight: "bold",
    marginTop: 8,
    textAlign: "right"
  },
  foldingMark: {
    position: "absolute",
    left: 20,
    width: 10,
    borderTopWidth: 0.5,
    borderTopColor: COLORS.DIVIDER
  },
  divider: {
    width: "100%",
    height: 1,
    backgroundColor: COLORS.DIVIDER,
    marginVertical: 12
  },
  industrialListItem: {
    flexDirection: "row",
    alignItems: "flex-start",
    marginBottom: 6
  },
  industrialBulletBox: {
    width: 6,
    height: 6,
    backgroundColor: COLORS.DIVIDER,
    marginRight: 8,
    marginTop: 5
  },
  industrialTitle: {
    fontSize: FONT_SIZES.HERO,
    fontWeight: "bold",
    color: COLORS.CHARCOAL,
    marginBottom: 6,
    letterSpacing: 0
  }
});
var IndustrialListItem = ({
  children
}) => /* @__PURE__ */ React2.createElement(View, { style: pdfStyles.industrialListItem }, /* @__PURE__ */ React2.createElement(View, { style: pdfStyles.industrialBulletBox }), children);
var Footer = ({
  logo,
  companyData,
  showDetails = true,
  showPageNumber = true
}) => /* @__PURE__ */ React2.createElement(View, { style: pdfStyles.footer }, /* @__PURE__ */ React2.createElement(View, { style: pdfStyles.footerColumn }, logo ? /* @__PURE__ */ React2.createElement(Image, { src: logo, style: pdfStyles.footerLogo }) : /* @__PURE__ */ React2.createElement(Text, { style: { fontSize: 12, fontWeight: "bold", marginBottom: 8 } }, "marc mintel")), showDetails && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(View, { style: pdfStyles.footerColumn }, /* @__PURE__ */ React2.createElement(Text, { style: pdfStyles.footerText }, /* @__PURE__ */ React2.createElement(Text, { style: pdfStyles.footerLabel }, companyData.name), "\n", companyData.address1, "\n", companyData.address2, "\n", "UST: ", companyData.ustId)), /* @__PURE__ */ React2.createElement(View, { style: [pdfStyles.footerColumn, { alignItems: "flex-end" }] }, showPageNumber && /* @__PURE__ */ React2.createElement(
  Text,
  {
    style: pdfStyles.pageNumber,
    render: ({ pageNumber, totalPages }) => `${pageNumber} / ${totalPages}`,
    fixed: true
  }
))));
var Header = ({
  sender,
  recipient,
  icon,
  showAddress = true
}) => /* @__PURE__ */ React2.createElement(
  View,
  {
    style: [
      pdfStyles.header,
      showAddress ? {} : { minHeight: 40, marginBottom: 0 }
    ]
  },
  /* @__PURE__ */ React2.createElement(View, { style: pdfStyles.addressBlock }, showAddress && sender && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Text, { style: pdfStyles.senderLine }, sender), recipient && /* @__PURE__ */ React2.createElement(View, { style: pdfStyles.recipientAddress }, /* @__PURE__ */ React2.createElement(Text, { style: { fontWeight: "bold" } }, recipient.title), recipient.subtitle && /* @__PURE__ */ React2.createElement(Text, null, recipient.subtitle), recipient.address && /* @__PURE__ */ React2.createElement(Text, null, recipient.address), recipient.phone && /* @__PURE__ */ React2.createElement(Text, null, recipient.phone), recipient.email && /* @__PURE__ */ React2.createElement(Text, null, recipient.email), recipient.taxId && /* @__PURE__ */ React2.createElement(Text, null, "USt-ID: ", recipient.taxId)))),
  /* @__PURE__ */ React2.createElement(View, { style: pdfStyles.brandLogoContainer }, /* @__PURE__ */ React2.createElement(View, { style: pdfStyles.brandIconContainer }, icon ? /* @__PURE__ */ React2.createElement(Image, { src: icon, style: { width: 24, height: 24 } }) : /* @__PURE__ */ React2.createElement(Text, { style: pdfStyles.brandIconText }, "M")))
);
var DocumentTitle = ({
  title,
  subLines,
  isHero = false
}) => /* @__PURE__ */ React2.createElement(View, { style: pdfStyles.titleInfo }, /* @__PURE__ */ React2.createElement(
  Text,
  {
    style: [
      pdfStyles.mainTitle,
      { fontSize: isHero ? FONT_SIZES.HERO : FONT_SIZES.HEADING }
    ]
  },
  title
), subLines?.map((line2, i5) => /* @__PURE__ */ React2.createElement(
  Text,
  {
    key: i5,
    style: [
      pdfStyles.subTitle,
      i5 === 1 ? { fontWeight: "bold", color: COLORS.CHARCOAL } : {}
    ]
  },
  line2
)));

// src/components/pdf/SimpleLayout.tsx
var React3 = __toESM(require_react(), 1);
var simpleStyles = StyleSheet.create({
  industrialPage: {
    padding: 30,
    paddingTop: 20,
    backgroundColor: "#ffffff"
  },
  industrialNumber: {
    fontSize: 60,
    fontWeight: "bold",
    color: "#f1f5f9",
    position: "absolute",
    top: -10,
    right: 0,
    zIndex: -1
  },
  industrialSection: {
    marginTop: 16,
    paddingTop: 12,
    flexDirection: "row",
    position: "relative"
  }
});
var SimpleLayout = ({
  children,
  pageNumber,
  icon,
  footerLogo,
  companyData,
  showPageNumber = true
}) => {
  return /* @__PURE__ */ React3.createElement(Page, { size: "A4", style: [pdfStyles.page, simpleStyles.industrialPage] }, /* @__PURE__ */ React3.createElement(Header, { icon, showAddress: false }), pageNumber && /* @__PURE__ */ React3.createElement(Text, { style: simpleStyles.industrialNumber }, pageNumber), /* @__PURE__ */ React3.createElement(View, { style: simpleStyles.industrialSection }, /* @__PURE__ */ React3.createElement(View, { style: { width: "100%" } }, children)), /* @__PURE__ */ React3.createElement(
    Footer,
    {
      logo: footerLogo,
      companyData,
      showDetails: false,
      showPageNumber
    }
  ));
};

// src/components/pdf/modules/FrontPageModule.tsx
var React4 = __toESM(require_react(), 1);
var styles = StyleSheet.create({
  titlePage: {
    flex: 1,
    padding: 60,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: COLORS.WHITE
  },
  titleBrandIcon: {
    width: 80,
    height: 80,
    backgroundColor: COLORS.CHARCOAL,
    borderRadius: 16,
    alignItems: "center",
    justifyContent: "center",
    marginBottom: 40
  },
  brandIconText: {
    fontSize: 40,
    color: COLORS.WHITE,
    fontWeight: "bold"
  },
  titleProjectName: {
    fontSize: FONT_SIZES.HERO,
    fontWeight: "bold",
    color: COLORS.CHARCOAL,
    marginBottom: 16,
    textAlign: "center",
    maxWidth: "85%",
    lineHeight: 1.2
  },
  titleDate: {
    fontSize: FONT_SIZES.BODY,
    color: COLORS.TEXT_LIGHT,
    marginTop: 40
  }
});
var FrontPageModule = ({ state, headerIcon, date }) => {
  const fullTitle = `Digitale Webpr\xE4senz f\xFCr
${state.companyName || "Ihr Projekt"}`;
  const fontSize = fullTitle.length > 60 ? 14 : fullTitle.length > 40 ? 18 : 22;
  return /* @__PURE__ */ React4.createElement(View, { style: styles.titlePage }, /* @__PURE__ */ React4.createElement(View, { style: styles.titleBrandIcon }, headerIcon ? /* @__PURE__ */ React4.createElement(Image, { src: headerIcon, style: { width: 40, height: 40 } }) : /* @__PURE__ */ React4.createElement(Text, { style: styles.brandIconText }, "M")), /* @__PURE__ */ React4.createElement(Text, { style: [styles.titleProjectName, { fontSize }] }, fullTitle), /* @__PURE__ */ React4.createElement(View, { style: { marginBottom: 40 } }), /* @__PURE__ */ React4.createElement(Text, { style: styles.titleDate }, date, " | Marc Mintel"));
};

// src/components/pdf/modules/BriefingModule.tsx
var React5 = __toESM(require_react(), 1);
var styles2 = StyleSheet.create({
  section: { marginBottom: 24 },
  sectionTitle: {
    fontSize: FONT_SIZES.LABEL,
    fontWeight: "bold",
    marginBottom: 8,
    color: COLORS.CHARCOAL
  },
  visionText: {
    fontSize: FONT_SIZES.BODY,
    color: COLORS.TEXT_MAIN,
    lineHeight: 1.4,
    textAlign: "justify"
  }
});
var BriefingModule = ({ state }) => /* @__PURE__ */ React5.createElement(React5.Fragment, null, /* @__PURE__ */ React5.createElement(DocumentTitle, { title: "Projektdetails", isHero: true }), state.briefingSummary && /* @__PURE__ */ React5.createElement(View, { style: styles2.section }, /* @__PURE__ */ React5.createElement(Text, { style: styles2.sectionTitle }, "Briefing Analyse"), /* @__PURE__ */ React5.createElement(
  Text,
  {
    style: {
      fontSize: FONT_SIZES.BODY,
      color: COLORS.TEXT_MAIN,
      lineHeight: 1.6,
      textAlign: "justify"
    }
  },
  state.briefingSummary
)), state.designVision && /* @__PURE__ */ React5.createElement(
  View,
  {
    style: [
      styles2.section,
      {
        padding: 12,
        borderLeftWidth: 2,
        borderLeftColor: COLORS.DIVIDER,
        backgroundColor: COLORS.GRID
      }
    ]
  },
  /* @__PURE__ */ React5.createElement(
    Text,
    {
      style: [
        styles2.sectionTitle,
        { color: COLORS.CHARCOAL, marginBottom: 4 }
      ]
    },
    "Strategische Vision"
  ),
  /* @__PURE__ */ React5.createElement(Text, { style: styles2.visionText }, state.designVision)
));

// src/components/pdf/modules/SitemapModule.tsx
var React6 = __toESM(require_react(), 1);
var styles3 = StyleSheet.create({
  section: { marginBottom: 24 },
  categoryBox: {
    marginBottom: 20,
    padding: 12,
    backgroundColor: COLORS.GRID,
    borderLeftWidth: 2,
    borderLeftColor: COLORS.DIVIDER
  },
  categoryTitle: {
    fontSize: FONT_SIZES.TINY,
    fontWeight: "bold",
    color: COLORS.TEXT_LIGHT,
    textTransform: "uppercase",
    marginBottom: 10,
    letterSpacing: 1
  },
  pageTitle: {
    fontSize: FONT_SIZES.LABEL,
    fontWeight: "bold",
    color: COLORS.CHARCOAL,
    marginBottom: 2
  },
  pageDesc: {
    fontSize: FONT_SIZES.TINY,
    color: COLORS.TEXT_DIM,
    lineHeight: 1.4
  }
});
var SitemapModule = ({ state }) => /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement(DocumentTitle, { title: "Informations-Architektur", isHero: true }), /* @__PURE__ */ React6.createElement(View, { style: styles3.section }, state.sitemap?.map((cat, i5) => /* @__PURE__ */ React6.createElement(View, { key: i5, style: styles3.categoryBox }, /* @__PURE__ */ React6.createElement(Text, { style: styles3.categoryTitle }, cat.category), cat.pages?.map((p3, j) => /* @__PURE__ */ React6.createElement(IndustrialListItem, { key: j }, /* @__PURE__ */ React6.createElement(View, { style: { marginBottom: 8 } }, /* @__PURE__ */ React6.createElement(Text, { style: styles3.pageTitle }, p3.title), /* @__PURE__ */ React6.createElement(Text, { style: styles3.pageDesc }, p3.desc))))))));

// src/components/pdf/modules/EstimationModule.tsx
var React7 = __toESM(require_react(), 1);
var styles4 = StyleSheet.create({
  table: { marginTop: 12 },
  tableHeader: {
    flexDirection: "row",
    paddingBottom: 8,
    borderBottomWidth: 1,
    borderBottomColor: COLORS.CHARCOAL,
    marginBottom: 12
  },
  tableRow: {
    flexDirection: "row",
    paddingVertical: 10,
    borderBottomWidth: 1,
    borderBottomColor: COLORS.GRID,
    alignItems: "flex-start"
  },
  colPos: { width: "8%" },
  colDesc: { width: "62%" },
  colQty: { width: "10%", textAlign: "center" },
  colPrice: { width: "20%", textAlign: "right" },
  headerText: {
    fontSize: FONT_SIZES.TINY,
    fontWeight: "bold",
    textTransform: "uppercase",
    letterSpacing: 1,
    color: COLORS.TEXT_DIM
  },
  posText: { fontSize: FONT_SIZES.TINY, color: COLORS.TEXT_LIGHT },
  itemTitle: {
    fontSize: FONT_SIZES.LABEL,
    fontWeight: "bold",
    color: COLORS.CHARCOAL,
    marginBottom: 4
  },
  itemDesc: {
    fontSize: FONT_SIZES.SMALL,
    color: COLORS.TEXT_DIM,
    lineHeight: 1.4
  },
  priceText: {
    fontSize: FONT_SIZES.BODY,
    fontWeight: "bold",
    color: COLORS.CHARCOAL
  },
  summaryContainer: {
    borderTopWidth: 1,
    borderTopColor: COLORS.CHARCOAL,
    paddingTop: 8
  },
  summaryRow: {
    flexDirection: "row",
    justifyContent: "flex-end",
    paddingVertical: 4,
    alignItems: "baseline"
  },
  summaryLabel: {
    fontSize: FONT_SIZES.TINY,
    color: COLORS.TEXT_DIM,
    textTransform: "uppercase",
    letterSpacing: 1,
    fontWeight: "bold",
    marginRight: 12
  },
  summaryValue: {
    fontSize: FONT_SIZES.BODY,
    fontWeight: "bold",
    width: 100,
    textAlign: "right",
    color: COLORS.CHARCOAL
  },
  totalRow: {
    flexDirection: "row",
    justifyContent: "flex-end",
    paddingTop: 12,
    marginTop: 8,
    borderTopWidth: 2,
    borderTopColor: COLORS.CHARCOAL,
    alignItems: "baseline"
  }
});
var EstimationModule = ({
  state,
  positions,
  totalPrice,
  date
}) => /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement(
  DocumentTitle,
  {
    title: "Kostensch\xE4tzung",
    subLines: [
      `Datum: ${date}`,
      `Projekt: ${state.projectType === "website" ? "Website" : "Web App"}`
    ],
    isHero: true
  }
), /* @__PURE__ */ React7.createElement(View, { style: styles4.table }, /* @__PURE__ */ React7.createElement(View, { style: styles4.tableHeader }, /* @__PURE__ */ React7.createElement(Text, { style: [styles4.headerText, styles4.colPos] }, "Pos"), /* @__PURE__ */ React7.createElement(Text, { style: [styles4.headerText, styles4.colDesc] }, "Beschreibung"), /* @__PURE__ */ React7.createElement(Text, { style: [styles4.headerText, styles4.colQty] }, "Menge"), /* @__PURE__ */ React7.createElement(Text, { style: [styles4.headerText, styles4.colPrice] }, "Betrag")), positions.map((item, i5) => /* @__PURE__ */ React7.createElement(View, { key: i5, style: styles4.tableRow, wrap: false }, /* @__PURE__ */ React7.createElement(Text, { style: [styles4.posText, styles4.colPos] }, item.pos.toString().padStart(2, "0")), /* @__PURE__ */ React7.createElement(View, { style: styles4.colDesc }, /* @__PURE__ */ React7.createElement(Text, { style: styles4.itemTitle }, item.title), /* @__PURE__ */ React7.createElement(Text, { style: styles4.itemDesc }, state.positionDescriptions?.[item.title] || item.desc)), /* @__PURE__ */ React7.createElement(Text, { style: [styles4.posText, styles4.colQty] }, item.qty), /* @__PURE__ */ React7.createElement(Text, { style: [styles4.priceText, styles4.colPrice] }, item.price > 0 ? `${item.price.toLocaleString("de-DE")} \u20AC` : "n. A.")))), /* @__PURE__ */ React7.createElement(View, { style: styles4.summaryContainer, wrap: false }, /* @__PURE__ */ React7.createElement(View, { style: styles4.summaryRow }, /* @__PURE__ */ React7.createElement(Text, { style: styles4.summaryLabel }, "Nettobetrag"), /* @__PURE__ */ React7.createElement(Text, { style: styles4.summaryValue }, totalPrice.toLocaleString("de-DE"), " \u20AC")), /* @__PURE__ */ React7.createElement(View, { style: styles4.summaryRow }, /* @__PURE__ */ React7.createElement(Text, { style: styles4.summaryLabel }, "Umsatzsteuer (19%)"), /* @__PURE__ */ React7.createElement(Text, { style: styles4.summaryValue }, (totalPrice * 0.19).toLocaleString("de-DE"), " \u20AC")), /* @__PURE__ */ React7.createElement(View, { style: styles4.totalRow }, /* @__PURE__ */ React7.createElement(Text, { style: styles4.summaryLabel }, "Gesamtbetrag (Brutto)"), /* @__PURE__ */ React7.createElement(
  Text,
  {
    style: [styles4.summaryValue, { fontSize: FONT_SIZES.HEADING }]
  },
  (totalPrice * 1.19).toLocaleString("de-DE"),
  " \u20AC"
))));

// src/components/pdf/modules/TransparenzModule.tsx
var React8 = __toESM(require_react(), 1);
var styles5 = StyleSheet.create({
  section: { marginBottom: 24 },
  ledgerRow: {
    paddingVertical: 14,
    borderBottomWidth: 1,
    borderBottomColor: COLORS.GRID,
    flexDirection: "row",
    alignItems: "flex-start"
  },
  moduleLabel: {
    fontSize: FONT_SIZES.LABEL,
    fontWeight: "bold",
    color: COLORS.CHARCOAL,
    letterSpacing: 0.5,
    marginBottom: 4
  },
  moduleDesc: {
    fontSize: FONT_SIZES.SMALL,
    color: COLORS.TEXT_DIM,
    lineHeight: 1.5
  },
  ledgerPrice: {
    fontSize: FONT_SIZES.BODY,
    fontWeight: "bold",
    color: COLORS.CHARCOAL
  },
  ledgerUnit: {
    fontSize: FONT_SIZES.TINY,
    color: COLORS.TEXT_LIGHT,
    marginLeft: 2
  }
});
var TransparenzModule = ({ pricing }) => {
  const sorglosPrice = (pricing.HOSTING_MONTHLY || 250) * 12;
  return /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(DocumentTitle, { title: "Preis-Transparenz & Modell", isHero: true }), /* @__PURE__ */ React8.createElement(View, { style: styles5.section }, /* @__PURE__ */ React8.createElement(View, { style: { borderTopWidth: 1, borderTopColor: COLORS.CHARCOAL } }, [
    {
      l: "Fundament",
      d: "Bereitstellung der techn. Infrastruktur & System-Umgebung.",
      p: pricing.BASE_WEBSITE
    },
    {
      l: "Einzelseiten",
      d: "Individuelle Gestaltung, Layout & responsive Struktur.",
      p: pricing.PAGE,
      unit: "/ Stk"
    },
    {
      l: "Core Features",
      d: "Geschlossene Datensysteme mit eigener Datenstruktur.",
      p: pricing.FEATURE,
      unit: "/ Stk"
    },
    {
      l: "Logik & Funktionen",
      d: "Interaktive Funktions-Bausteine & Prozess-Logik.",
      p: pricing.FUNCTION,
      unit: "/ Stk"
    },
    {
      l: "Schnittstellen",
      d: "Synchronisation mit externen Zielsystemen.",
      p: pricing.API_INTEGRATION,
      unit: "/ Stk"
    },
    {
      l: "Sprachversionen",
      d: "Skalierung der System-Architektur auf Zweit-Sprachen.",
      p: "+20%"
    },
    {
      l: "Initial-Pflege",
      d: "Konvertierung & Aufbereitung von Bestandsdaten.",
      p: pricing.NEW_DATASET,
      unit: "/ Stk"
    },
    {
      l: "Sorglos Betrieb",
      d: "Hosting, Instandhaltung, Security & techn. Support.",
      p: sorglosPrice,
      unit: "/ Jahr"
    }
  ].map((item, i5) => /* @__PURE__ */ React8.createElement(View, { key: i5, style: styles5.ledgerRow }, /* @__PURE__ */ React8.createElement(View, { style: { width: "25%" } }, /* @__PURE__ */ React8.createElement(Text, { style: styles5.moduleLabel }, item.l.toUpperCase())), /* @__PURE__ */ React8.createElement(View, { style: { width: "50%" } }, /* @__PURE__ */ React8.createElement(Text, { style: styles5.moduleDesc }, item.d)), /* @__PURE__ */ React8.createElement(View, { style: { width: "25%", alignItems: "flex-end" } }, /* @__PURE__ */ React8.createElement(Text, { style: styles5.ledgerPrice }, typeof item.p === "number" ? `${item.p.toLocaleString("de-DE")} \u20AC` : item.p, item.unit && /* @__PURE__ */ React8.createElement(Text, { style: styles5.ledgerUnit }, " ", item.unit))))))));
};

// src/components/pdf/modules/CommonModules.tsx
var React9 = __toESM(require_react(), 1);
var styles6 = StyleSheet.create({
  section: { marginBottom: 24 },
  moduleLabel: {
    fontSize: FONT_SIZES.LABEL,
    fontWeight: "bold",
    color: COLORS.CHARCOAL,
    letterSpacing: 0.5,
    marginBottom: 4
  },
  moduleDesc: {
    fontSize: FONT_SIZES.SMALL,
    color: COLORS.TEXT_DIM,
    lineHeight: 1.5
  },
  ledgerRow: {
    paddingVertical: 14,
    borderBottomWidth: 1,
    borderBottomColor: COLORS.GRID,
    flexDirection: "row",
    alignItems: "flex-start"
  },
  ledgerPrice: {
    fontSize: FONT_SIZES.BODY,
    fontWeight: "bold",
    color: COLORS.CHARCOAL
  },
  ledgerUnit: {
    fontSize: FONT_SIZES.TINY,
    color: COLORS.TEXT_LIGHT,
    marginLeft: 2
  }
});
var ClosingModule = () => /* @__PURE__ */ React9.createElement(React9.Fragment, null, /* @__PURE__ */ React9.createElement(DocumentTitle, { title: "Abschluss & Kontakt", isHero: true }), /* @__PURE__ */ React9.createElement(View, { style: styles6.section }, /* @__PURE__ */ React9.createElement(
  Text,
  {
    style: [
      styles6.moduleLabel,
      { fontSize: FONT_SIZES.HEADING, marginBottom: 12 }
    ]
  },
  "Vielen Dank f\xFCr Ihr Interesse!"
), /* @__PURE__ */ React9.createElement(Text, { style: styles6.moduleDesc }, "Die aufgef\xFChrten Positionen stellen eine detaillierte Sch\xE4tzung auf Basis unseres aktuellen Stands dar. Sollten sich Anforderungen \xE4ndern oder Sie Fragen zu einzelnen Details haben, lassen Sie uns die Positionen gerne gemeinsam besprechen."), /* @__PURE__ */ React9.createElement(
  View,
  {
    style: {
      marginTop: 24,
      padding: 16,
      backgroundColor: COLORS.GRID,
      borderLeftWidth: 2,
      borderLeftColor: COLORS.DIVIDER
    }
  },
  /* @__PURE__ */ React9.createElement(Text, { style: [styles6.moduleLabel, { marginBottom: 8 }] }, "Haben Sie Fragen?"),
  /* @__PURE__ */ React9.createElement(Text, { style: styles6.moduleDesc }, "Ich erkl\xE4re Ihnen gerne noch einmal pers\xF6nlich, was die technische Umsetzung f\xFCr Ihr Projekt bedeutet und wie wir die n\xE4chsten Schritte gemeinsam gehen k\xF6nnen."),
  /* @__PURE__ */ React9.createElement(View, { style: { marginTop: 16 } }, /* @__PURE__ */ React9.createElement(Text, { style: styles6.moduleLabel }, "Kontakt:"), /* @__PURE__ */ React9.createElement(
    Text,
    {
      style: [
        styles6.moduleDesc,
        { color: COLORS.CHARCOAL, fontWeight: "bold" }
      ]
    },
    "Marc Mintel \u2013 marc@mintel.me"
  ))
)));

// src/components/EstimationPDF.tsx
var EstimationPDF = ({
  state,
  totalPrice,
  pricing,
  headerIcon,
  footerLogo
}) => {
  const date = (/* @__PURE__ */ new Date()).toLocaleDateString("de-DE", {
    year: "numeric",
    month: "long",
    day: "numeric"
  });
  const positions = calculatePositions(state, pricing);
  const companyData = {
    name: "Marc Mintel",
    address1: "Georg-Meistermann-Stra\xDFe 7",
    address2: "54586 Sch\xFCller",
    ustId: "DE367588065"
  };
  const commonProps = {
    state,
    date,
    icon: headerIcon,
    footerLogo,
    companyData
  };
  let pageCounter = 1;
  const getPageNum = () => (pageCounter++).toString().padStart(2, "0");
  return /* @__PURE__ */ React10.createElement(Document2, { title: `Angebot - ${state.companyName || "Projekt"}` }, /* @__PURE__ */ React10.createElement(Page, { size: "A4", style: pdfStyles.titlePage }, /* @__PURE__ */ React10.createElement(FrontPageModule, { state, headerIcon, date })), /* @__PURE__ */ React10.createElement(SimpleLayout, { ...commonProps, pageNumber: getPageNum() }, /* @__PURE__ */ React10.createElement(BriefingModule, { state })), state.sitemap && state.sitemap.length > 0 && /* @__PURE__ */ React10.createElement(SimpleLayout, { ...commonProps, pageNumber: getPageNum() }, /* @__PURE__ */ React10.createElement(SitemapModule, { state })), /* @__PURE__ */ React10.createElement(SimpleLayout, { ...commonProps, pageNumber: getPageNum() }, /* @__PURE__ */ React10.createElement(
    EstimationModule,
    {
      state,
      positions,
      totalPrice,
      date
    }
  )), /* @__PURE__ */ React10.createElement(SimpleLayout, { ...commonProps, pageNumber: getPageNum() }, /* @__PURE__ */ React10.createElement(TransparenzModule, { pricing })), /* @__PURE__ */ React10.createElement(SimpleLayout, { ...commonProps, pageNumber: getPageNum() }, /* @__PURE__ */ React10.createElement(ClosingModule, null)));
};

// src/services/PdfEngine.ts
var PdfEngine = class {
  constructor() {
  }
  async generateEstimatePdf(state, outputPath) {
    const totals = calculateTotals(state, PRICING);
    await renderToFile(
      (0, import_react5.createElement)(EstimationPDF, {
        state,
        totalPrice: totals.totalPrice,
        pricing: PRICING
      }),
      outputPath
    );
    return outputPath;
  }
};
export {
  API_LABELS,
  API_OPTIONS,
  ASSET_LABELS,
  ASSET_OPTIONS,
  AcquisitionService,
  DEADLINE_LABELS,
  DESIGN_OPTIONS,
  EMPLOYEE_OPTIONS,
  EstimationPDF,
  FEATURE_LABELS,
  FEATURE_OPTIONS,
  FUNCTION_LABELS,
  FUNCTION_OPTIONS,
  PAGE_LABELS,
  PAGE_SAMPLES,
  PRICING,
  PdfEngine,
  SOCIAL_LABELS,
  SOCIAL_MEDIA_OPTIONS,
  VIBE_LABELS,
  calculatePositions,
  calculateTotals,
  initialState
};
/*! Bundled license information:

@apify/utilities/cjs/index.cjs:
  (*!
   * This module contains various server utility and helper functions.
   * Note that it automatically exports functions from utilities.client.js
   *
   * Author: Jan Curn (jan@apify.com)
   * Copyright(c) 2015 Apify. All rights reserved.
   *
   *)
  (*!
   * This module contains various client-side utility and helper functions.
   *
   * Author: Jan Curn (jan@apify.com)
   * Copyright(c) 2016 Apify. All rights reserved.
   *
   *)

@sapphire/shapeshift/dist/cjs/index.cjs:
  (**
   * @license MIT
   * @copyright 2020 Colin McDonnell
   * @see https://github.com/colinhacks/zod/blob/master/LICENSE
   *)

mime-db/index.js:
  (*!
   * mime-db
   * Copyright(c) 2014 Jonathan Ong
   * Copyright(c) 2015-2022 Douglas Christopher Wilson
   * MIT Licensed
   *)

mime-types/index.js:
  (*!
   * mime-types
   * Copyright(c) 2014 Jonathan Ong
   * Copyright(c) 2015 Douglas Christopher Wilson
   * MIT Licensed
   *)

content-type/index.js:
  (*!
   * content-type
   * Copyright(c) 2015 Douglas Christopher Wilson
   * MIT Licensed
   *)

@vladfrangu/async_event_emitter/dist/index.cjs:
  (*! Bundled license information:
  
  node-inspect-extracted/dist/inspect.js:
    (*! For license information please see inspect.js.LICENSE.txt *)
  *)

keyv/dist/index.js:
  (* v8 ignore next -- @preserve *)

cacheable-request/dist/index.js:
  (* c8 ignore next -- @preserve *)
  (* v8 ignore next -- @preserve *)

sax/lib/sax.js:
  (*! http://mths.be/fromcodepoint v0.1.0 by @mathias *)

ieee754/index.js:
  (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)

@apify/datastructures/cjs/index.cjs:
  (*!
   * This module defines the LinkedList class, which represents a doubly-linked list data structure.
   *
   * Author: Jan Curn (jan@apify.com)
   * Copyright(c) 2014 Apify. All rights reserved.
   *
   *)
  (*!
   * This module defines the ListDictionary class, a data structure
   * that combines a linked list and a dictionary.
   *
   * Author: Jan Curn (jan@apify.com)
   * Copyright(c) 2015 Apify. All rights reserved.
   *
   *)

tough-cookie/dist/index.cjs:
tough-cookie/dist/cookie/cookie.js:
  (*!
   * Copyright (c) 2015-2020, Salesforce.com, Inc.
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of source code must retain the above copyright notice,
   * this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   * this list of conditions and the following disclaimer in the documentation
   * and/or other materials provided with the distribution.
   *
   * 3. Neither the name of Salesforce.com nor the names of its contributors may
   * be used to endorse or promote products derived from this software without
   * specific prior written permission.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGE.
   *)

@csstools/color-helpers/dist/index.cjs:
  (**
   * Bradford chromatic adaptation from D50 to D65
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * Bradford chromatic adaptation from D65 to D50
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html
   *)
  (**
   * @param {number} hue - Hue as degrees 0..360
   * @param {number} sat - Saturation as percentage 0..100
   * @param {number} light - Lightness as percentage 0..100
   * @return {number[]} Array of sRGB components; in-gamut colors in range [0..1]
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hslToRgb.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hslToRgb.js
   *)
  (**
   * @param {number} hue -  Hue as degrees 0..360
   * @param {number} white -  Whiteness as percentage 0..100
   * @param {number} black -  Blackness as percentage 0..100
   * @return {number[]} Array of RGB components 0..1
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hwbToRgb.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hwbToRgb.js
   *)
  (**
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * Convert Lab to D50-adapted XYZ
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
   *)
  (**
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js
   *)
  (**
   * Given OKLab, convert to XYZ relative to D65
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js
   *)
  (**
   * Assuming XYZ is relative to D50, convert to CIE Lab
   * from CIE standard, which now defines these as a rational fraction
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *
   * XYZ <-> LMS matrices recalculated for consistent reference white
   * @see https://github.com/w3c/csswg-drafts/issues/6642#issuecomment-943521484
   *)
  (**
   * Convert XYZ to linear-light rec2020
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * Convert XYZ to linear-light P3
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * Convert D50 XYZ to linear-light prophoto-rgb
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
   *)
  (**
   * Convert XYZ to linear-light a98-rgb
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * Convert an array of linear-light rec2020 RGB  in the range 0.0-1.0
   * to gamma corrected form ITU-R BT.2020-2 p.4
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * Convert an array of linear-light sRGB values in the range 0.0-1.0 to gamma corrected form
   * Extended transfer function:
   *  For negative values, linear portion extends on reflection
   *  of axis, then uses reflected pow below that
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see https://en.wikipedia.org/wiki/SRGB
   *)
  (**
   * Convert an array of linear-light display-p3 RGB in the range 0.0-1.0
   * to gamma corrected form
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * Convert an array of linear-light prophoto-rgb in the range 0.0-1.0
   * to gamma corrected form.
   * Transfer curve is gamma 1.8 with a small linear portion.
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * Convert an array of linear-light a98-rgb in the range 0.0-1.0
   * to gamma corrected form. Negative values are also now accepted
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * Convert an array of rec2020 RGB values in the range 0.0 - 1.0
   * to linear light (un-companded) form.
   * ITU-R BT.2020-2 p.4
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * Convert an array of linear-light rec2020 values to CIE XYZ
   * using  D65 (no chromatic adaptation)
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
   *)
  (**
   * Convert an array of of sRGB values where in-gamut values are in the range
   * [0 - 1] to linear light (un-companded) form.
   * Extended transfer function:
   *  For negative values, linear portion is extended on reflection of axis,
   *  then reflected power function is used.
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see https://en.wikipedia.org/wiki/SRGB
   *)
  (**
   * Convert an array of display-p3 RGB values in the range 0.0 - 1.0
   * to linear light (un-companded) form.
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * Convert an array of linear-light display-p3 values to CIE XYZ
   * using D65 (no chromatic adaptation)
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
   *)
  (**
   * Convert an array of prophoto-rgb values where in-gamut Colors are in the
   * range [0.0 - 1.0] to linear light (un-companded) form. Transfer curve is
   * gamma 1.8 with a small linear portion. Extended transfer function
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * Convert an array of linear-light prophoto-rgb values to CIE D50 XYZ.
   * Matrix cannot be expressed in rational form, but is calculated to 64 bit accuracy.
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see see https://github.com/w3c/csswg-drafts/issues/7675
   *)
  (**
   * Convert an array of linear-light a98-rgb values to CIE XYZ
   * http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
   * has greater numerical precision than section 4.3.5.3 of
   * https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf
   * but the values below were calculated from first principles
   * from the chromaticity coordinates of R G B W
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
   * @see https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf
   * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/matrixmaker.html
   *)
  (**
   * Convert an array of linear-light sRGB values to CIE XYZ
   * using sRGB's own white, D65 (no chromatic adaptation)
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)
  (**
   * Convert an array of gamma-corrected sRGB values in the 0.0 to 1.0 range to HSL.
   *
   * @param {Color} RGB [r, g, b]
   * - Red component 0..1
   * - Green component 0..1
   * - Blue component 0..1
   * @return {number[]} Array of HSL values: Hue as degrees 0..360, Saturation and Lightness as percentages 0..100
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *
   * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/better-rgbToHsl.js
   *)
  (**
   * @description Calculate deltaE OK which is the simple root sum of squares
   * @param {number[]} reference - Array of OKLab values: L as 0..1, a and b as -1..1
   * @param {number[]} sample - Array of OKLab values: L as 0..1, a and b as -1..1
   * @return {number} How different a color sample is from reference
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js
   *)
  (**
   * Convert an array of a98-rgb values in the range 0.0 - 1.0
   * to linear light (un-companded) form. Negative values are also now accepted
   *
   * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
   * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
   *)

@asamuzakjp/css-color/dist/cjs/index.cjs:
  (*!
   * CSS color - Resolve, parse, convert CSS color.
   * @license MIT
   * @copyright asamuzaK (Kazz)
   * @see {@link https://github.com/asamuzaK/cssColor/blob/main/LICENSE}
   *)

xmlchars/xml/1.0/ed5.js:
  (**
   * Character classes and associated utilities for the 5th edition of XML 1.0.
   *
   * @author Louis-Dominique Dubeau
   * @license MIT
   * @copyright Louis-Dominique Dubeau
   *)

xmlchars/xml/1.1/ed2.js:
  (**
   * Character classes and associated utilities for the 2nd edition of XML 1.1.
   *
   * @author Louis-Dominique Dubeau
   * @license MIT
   * @copyright Louis-Dominique Dubeau
   *)

xmlchars/xmlns/1.0/ed3.js:
  (**
   * Character class utilities for XML NS 1.0 edition 3.
   *
   * @author Louis-Dominique Dubeau
   * @license MIT
   * @copyright Louis-Dominique Dubeau
   *)

decimal.js/decimal.js:
  (*!
   *  decimal.js v10.6.0
   *  An arbitrary-precision Decimal type for JavaScript.
   *  https://github.com/MikeMcl/decimal.js
   *  Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>
   *  MIT Licence
   *)

undici/lib/web/fetch/body.js:
  (*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *)

undici/lib/web/websocket/frame.js:
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)

crypto-js/ripemd160.js:
  (** @preserve
  	(c) 2012 by Cédric Mesnil. All rights reserved.
  
  	Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
  
  	    - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  	    - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  
  	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  	*)

crypto-js/mode-ctr-gladman.js:
  (** @preserve
   * Counter block mode compatible with  Dr Brian Gladman fileenc.c
   * derived from CryptoJS.mode.CTR
   * Jan Hruby jhruby.web@gmail.com
   *)

react/cjs/react.production.js:
  (**
   * @license React
   * react.production.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

react/cjs/react.development.js:
  (**
   * @license React
   * react.development.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

scheduler/cjs/scheduler.production.js:
  (**
   * @license React
   * scheduler.production.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

scheduler/cjs/scheduler.development.js:
  (**
   * @license React
   * scheduler.development.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

object-assign/index.js:
  (*
  object-assign
  (c) Sindre Sorhus
  @license MIT
  *)

@react-pdf/textkit/lib/textkit.js:
  (**
   * @param nodes
   * @param availableWidths
   * @param tolerance
   * @preserve Knuth and Plass line breaking algorithm in JavaScript
   *)

@react-pdf/reconciler/lib/reconciler-31.js:
@react-pdf/reconciler/lib/reconciler-33.js:
  (**
   * @license React
   * react-reconciler.development.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)
  (**
   * @license React
   * react-reconciler-constants.development.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)
*/
